diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f7bab3b85..09a923b7a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -30,6 +30,8 @@ jobs: - name: Install Protoc uses: arduino/setup-protoc@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Cache uses: actions/cache@v4 @@ -78,6 +80,8 @@ jobs: - name: Install Protoc uses: arduino/setup-protoc@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Clippy run: cargo clippy --all-targets -- -Dclippy::all -D warnings @@ -113,6 +117,8 @@ jobs: - name: Install Protoc uses: arduino/setup-protoc@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Cache uses: actions/cache@v4 @@ -149,6 +155,8 @@ jobs: - name: Install Protoc uses: arduino/setup-protoc@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Cache uses: actions/cache@v4 @@ -178,6 +186,8 @@ jobs: - name: Install Protoc uses: arduino/setup-protoc@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Cache uses: actions/cache@v4 diff --git a/.gitignore b/.gitignore index b78f821af..e29cb2f43 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ flamegraph.* !/minio/bucket-policy.json *.bak + +docker/mobile/verifier/data_sets_directory/* diff --git a/Cargo.lock b/Cargo.lock index 43726fc94..1d2e6a608 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7847,6 +7847,35 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "test-mobile" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-compression", + "backon", + "bs58 0.4.0", + "chrono", + "clap 4.4.8", + "custom-tracing", + "file-store", + "h3o", + "helium-crypto", + "helium-proto", + "hextree", + "prost", + "rand 0.8.5", + "serde", + "serde_json", + "sqlx", + "tokio", + "tonic", + "tracing", + "tracing-subscriber", + "triggered", + "uuid", +] + [[package]] name = "textwrap" version = "0.11.0" diff --git a/Cargo.toml b/Cargo.toml index a858438fa..69b6d3806 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,8 @@ members = [ "reward_scheduler", "solana", "task_manager", - "hex_assignments" + "hex_assignments", + "test_mobile", ] resolver = "2" diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index be3262481..000000000 --- a/docker-compose.yml +++ /dev/null @@ -1,160 +0,0 @@ -version: "2.4" -services: - - mobile-config: - image: mobile-config:latest - build: - context: . - dockerfile: mobile_config.Dockerfile - depends_on: - - postgres - ports: - - 8090:8090 - environment: - CFG__DATABASE__URL: postgres://postgres:postgres@postgres:5432/mobile_config_db - CFG__DATABASE__MAX_CONNECTIONS: 50 - CFG__METADATA__URL: postgres://postgres:postgres@postgres:5432/mobile_metadata_db - CFG__METADATA__MAX_CONNECTIONS: 50 - CFG__LISTEN: 0.0.0.0:8090 - CFG__METRICS__ENDPOINT: 0.0.0.0:19010 - CFG__ADMIN_PUBKEY: ${CONFIG_ADMIN_PUBKEY} - CFG__SIGNING_KEYPAIR: /config-signing-key.bin - CFG__LOG: debug - volumes: - - ${CONFIG_SIGNING_KEY}:/config-signing-key.bin:ro - - iot-config: - image: iot-config:latest - build: - context: . - dockerfile: iot_config.Dockerfile - depends_on: - - postgres - ports: - - "8080:8080" - environment: - CFG__DATABASE__URL: postgres://postgres:postgres@postgres:5432/iot_config_db - CFG__DATABASE__MAX_CONNECTIONS: 50 - CFG__METADATA__URL: postgres://postgres:postgres@postgres:5432/iot_metadata_db - CFG__METADATA__MAX_CONNECTIONS: 50 - CFG__LISTEN: 0.0.0.0:8080 - CFG__METRICS__ENDPOINT: 0.0.0.0:19000 - CFG__ADMIN: ${CONFIG_ADMIN_PUBKEY} - CFG__KEYPAIR: /config-signing-key.bin - CFG__LOG: info - volumes: - - ${CONFIG_SIGNING_KEY}:/config-signing-key.bin:ro - - postgres: - image: postgres:latest - environment: - POSTGRES_PASSWORD: postgres - POSTGRES_USER: postgres - POSTGRES_DBS: > - iot_config_db - iot_metadata_db - mobile_index_db - iot_index_db - mobile_verifier_db - iot_verifier_db - mobile_config_db - mobile_metadata_db - iot_packet_verifier_db - mobile_packet_verifier_db - PGDATA: /data - ports: - - "5432:5432" - entrypoint: - - /bin/bash - - -c - - | - for db in $${POSTGRES_DBS[@]} - do - cat > /docker-entrypoint-initdb.d/$${db}-setup.sql < - mobile-ingest - iot-ingest - iot-entropy - mobile-verifier - iot-verifier - mobile-packet-verifier - iot-packet-verifier - iot-price - mobile-price - ORACLE_ID: oraclesecretid - ORACLE_KEY: oraclesecretkey - entrypoint: - - /bin/bash - - -c - - | - cat > /bucket-policy.json < /dev/null 2>&1 ; then - echo "creating bucket $${bucket}" - /usr/bin/mc mb localminio/$${bucket} - fi - done - /usr/bin/mc admin policy add localminio fullaccess /bucket-policy.json - /usr/bin/mc admin user add localminio $${ORACLE_ID} $${ORACLE_KEY} - /usr/bin/mc admin policy set localminio fullaccess user=$${ORACLE_ID} - -volumes: - bucket-data: - db-data: diff --git a/docker/mobile/.env-mobile b/docker/mobile/.env-mobile new file mode 100644 index 000000000..22c3169a8 --- /dev/null +++ b/docker/mobile/.env-mobile @@ -0,0 +1,12 @@ +RUST_BACKTRACE=1 + +# As the be set for s3 file store +AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID +AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY +AWS_SESSION_TOKEN=AWS_SESSION_TOKEN + +# Ingest: use timestamps sent by client. This allows to send heartbeats from 24 hours ago. +HONOR_TIMESTAMP=0 + +# Mobile Verifier: Allow to process heartbeats that are more than 3 hours old. +PROCESS_FILE_EPOCH_MIN=48 diff --git a/docker/mobile/Dockerfile b/docker/mobile/Dockerfile new file mode 100644 index 000000000..ce3c3e98d --- /dev/null +++ b/docker/mobile/Dockerfile @@ -0,0 +1,60 @@ +FROM rust:latest AS builder + +RUN apt-get update && apt-get install -y \ + gcc \ + curl \ + protobuf-compiler \ + pkg-config \ + openssl \ + libssl-dev + +# Copy Deps +COPY custom_tracing custom_tracing/ +COPY db_store db_store/ +COPY file_store file_store/ +COPY hex_assignments hex_assignments/ +COPY metrics metrics/ +COPY price price/ +COPY reward_scheduler reward_scheduler/ +COPY solana solana/ +COPY task_manager task_manager/ +COPY Cargo.toml Cargo.toml +COPY Cargo.lock Cargo.lock + +# Copy mobile pakages +COPY ingest ingest/ +COPY mobile_config mobile_config/ +COPY mobile_packet_verifier mobile_packet_verifier/ +COPY mobile_verifier mobile_verifier/ +COPY reward_index reward_index/ + +# Remove useless packages from toml +RUN sed -i \ + -e '/denylist/d' \ + -e '/iot_config/d' \ + -e '/iot_packet_verifier/d' \ + -e '/iot_verifier/d' \ + -e '/poc_entropy/d' \ + -e '/mobile_config_cli/d' \ + -e '/boost_manager/d' \ + -e '/test_mobile/d' \ + Cargo.toml + +# Build releases +RUN cargo build --features "ingest/mobile-test,mobile-verifier/mobile-test" --release + +# Package Runners +FROM debian:bookworm-slim + +RUN apt-get update && apt-get install -y \ + libssl-dev \ + ca-certificates + +ARG PACKAGE + +# $PACKAGE via build args +COPY --from=builder ./target/release/$PACKAGE /opt/$PACKAGE/bin/$PACKAGE + +ENV PACKAGE=${PACKAGE} + +CMD /opt/$PACKAGE/bin/$PACKAGE -c /opt/$PACKAGE/etc/settings.toml server \ No newline at end of file diff --git a/docker/mobile/config/keypair.bin b/docker/mobile/config/keypair.bin new file mode 100644 index 000000000..c5538bc9e --- /dev/null +++ b/docker/mobile/config/keypair.bin @@ -0,0 +1 @@ +p2 }ghD(Zd CMW4nU"} լ+{S \ No newline at end of file diff --git a/docker/mobile/config/settings.toml b/docker/mobile/config/settings.toml new file mode 100644 index 000000000..6854ab978 --- /dev/null +++ b/docker/mobile/config/settings.toml @@ -0,0 +1,16 @@ +log = "mobile_config=debug,file_store=info,custom_tracing=info" +listen = "0.0.0.0:9081" +signing_keypair = "/opt/mobile-config/etc/keypair.bin" +admin_pubkey = "131kC5gTPFfTyzziHbh2PWz2VSdF4gDvhoC5vqCz25N7LFtDocF" +# ./target/release/mobile-config-cli env info --keypair=docker/mobile/config/keypair.bin + +[database] +url = "postgres://postgres:postgres@postgres:5432/mobile_config" +max_connections = 10 + +[metadata] +url = "postgres://postgres:postgres@postgres:5432/mobile_metadata" +max_connections = 10 + +[metrics] +endpoint = "0.0.0.0:19000" diff --git a/docker/mobile/docker-compose.yml b/docker/mobile/docker-compose.yml new file mode 100644 index 000000000..c19b1e733 --- /dev/null +++ b/docker/mobile/docker-compose.yml @@ -0,0 +1,137 @@ +name: mobile +services: + + postgres: + image: postgres:14-alpine + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 5s + timeout: 5s + retries: 5 + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + ports: + - 5432:5432 + volumes: + - postgres-data:/var/lib/postgresql/data + - ./postgres:/docker-entrypoint-initdb.d + + postgres_seeder: + build: + context: ../.. + dockerfile: ./docker/mobile/postgres_seeder/Dockerfile + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - POSTGRES_HOST=postgres + depends_on: + postgres: + condition: service_healthy + volumes: + - ./postgres_seeder/post_migration:/postgres_seeder/post_migration + + localstack: + image: localstack/localstack:stable + environment: + - AWS_DEFAULT_REGION=us-east-1 + - SERVICES=s3 + ports: + - 4566:4566 + volumes: + - localstack-data:/var/lib/localstack + - ./localstack/init-s3.sh:/etc/localstack/init/ready.d/init-s3.sh + - ./localstack/data:/tmp/data + + ingest: + build: + context: ../.. + dockerfile: ./docker/mobile/Dockerfile + args: + - PACKAGE=ingest + depends_on: + localstack: + condition: service_healthy + stop_grace_period: 1s + env_file: .env-mobile + ports: + - 9080:9080 + volumes: + - ./ingest/settings.toml:/opt/ingest/etc/settings.toml + + config: + build: + context: ../.. + dockerfile: ./docker/mobile/Dockerfile + args: + - PACKAGE=mobile-config + depends_on: + postgres_seeder: + condition: service_completed_successfully + stop_grace_period: 1s + environment: + - RUST_BACKTRACE=1 + ports: + - 9081:9081 + volumes: + - ./config/settings.toml:/opt/mobile-config/etc/settings.toml + - ./config/keypair.bin:/opt/mobile-config/etc/keypair.bin + + packet_verifier: + build: + context: ../.. + dockerfile: ./docker/mobile/Dockerfile + args: + - PACKAGE=mobile-packet-verifier + depends_on: + localstack: + condition: service_healthy + config: + condition: service_started + stop_grace_period: 1s + env_file: .env-mobile + volumes: + - ./packet_verifier/settings.toml:/opt/mobile-packet-verifier/etc/settings.toml + - ./packet_verifier/keypair.bin:/opt/mobile-packet-verifier/etc/keypair.bin + + verifier: + build: + context: ../.. + dockerfile: ./docker/mobile/Dockerfile + args: + - PACKAGE=mobile-verifier + depends_on: + localstack: + condition: service_healthy + config: + condition: service_started + stop_grace_period: 1s + env_file: .env-mobile + volumes: + - ./verifier/settings.toml:/opt/mobile-verifier/etc/settings.toml + - ./verifier/keypair.bin:/opt/mobile-verifier/etc/keypair.bin + - ./verifier/usa_and_mexico_geofence_regions/mexico.txt:/opt/mobile-verifier/usa_and_mexico_geofence_regions/mexico.txt + - ./verifier/usa_and_mexico_geofence_regions/us-territories.txt:/opt/mobile-verifier/usa_and_mexico_geofence_regions/us-territories.txt + - ./verifier/usa_geofence_regions/us-territories.txt:/opt/mobile-verifier/usa_geofence_regions/us-territories.txt + - ./verifier/data_sets_directory:/opt/mobile-verifier/data_sets_directory + + reward_index: + build: + context: ../.. + dockerfile: ./docker/mobile/Dockerfile + args: + - PACKAGE=reward-index + depends_on: + localstack: + condition: service_healthy + config: + condition: service_started + stop_grace_period: 1s + env_file: .env-mobile + volumes: + - ./reward_index/settings.toml:/opt/reward-index/etc/settings.toml + +volumes: + postgres-data: + localstack-data: \ No newline at end of file diff --git a/docker/mobile/ingest/settings.toml b/docker/mobile/ingest/settings.toml new file mode 100644 index 000000000..ca929240a --- /dev/null +++ b/docker/mobile/ingest/settings.toml @@ -0,0 +1,16 @@ +log = "ingest=debug,file_store=info,custom_tracing=info" +mode = "mobile" +listen_addr = "0.0.0.0:9080" +cache = "/opt/ingest/data" +network = "mainnet" +session_key_timeout = "30 minutes" +token = "api-token" +roll_time = "30 seconds" + +[output] +bucket = "mobile-ingest" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[metrics] +endpoint = "0.0.0.0:19000" diff --git a/docker/mobile/localstack/data/mobile-price/price_report.1717632204453.gz b/docker/mobile/localstack/data/mobile-price/price_report.1717632204453.gz new file mode 100644 index 000000000..747ae7ae4 Binary files /dev/null and b/docker/mobile/localstack/data/mobile-price/price_report.1717632204453.gz differ diff --git a/docker/mobile/localstack/data/mobile-verifier-data-sets/footfall.1716936346428.gz b/docker/mobile/localstack/data/mobile-verifier-data-sets/footfall.1716936346428.gz new file mode 100644 index 000000000..6539626be Binary files /dev/null and b/docker/mobile/localstack/data/mobile-verifier-data-sets/footfall.1716936346428.gz differ diff --git a/docker/mobile/localstack/data/mobile-verifier-data-sets/landtype.1716936346429.gz b/docker/mobile/localstack/data/mobile-verifier-data-sets/landtype.1716936346429.gz new file mode 100644 index 000000000..a51c938ed Binary files /dev/null and b/docker/mobile/localstack/data/mobile-verifier-data-sets/landtype.1716936346429.gz differ diff --git a/docker/mobile/localstack/data/mobile-verifier-data-sets/urbanization.1716936346427.gz b/docker/mobile/localstack/data/mobile-verifier-data-sets/urbanization.1716936346427.gz new file mode 100644 index 000000000..a73756622 Binary files /dev/null and b/docker/mobile/localstack/data/mobile-verifier-data-sets/urbanization.1716936346427.gz differ diff --git a/docker/mobile/localstack/init-s3.sh b/docker/mobile/localstack/init-s3.sh new file mode 100755 index 000000000..029d80864 --- /dev/null +++ b/docker/mobile/localstack/init-s3.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +echo "Init localstack s3" +awslocal s3 mb s3://mobile-ingest +awslocal s3 mb s3://mobile-verifier +awslocal s3 mb s3://mobile-packet-verifier +awslocal s3 mb s3://mobile-price +awslocal s3 mb s3://mobile-verifier-data-sets + +# This shell script automates the process of uploading files from local directories +# to S3 buckets using `awslocal` (typically used with LocalStack for local AWS service emulation). +# +# 1. Define Source Directories: The script begins by setting the `dirs` variable to include +# all directories under `/tmp/data/`. +# +# 2. Directory Iteration: It loops through each directory found in `/tmp/data/*`, +# processing one directory at a time. +# +# 3. Extract Bucket Name: For each directory, the script extracts the directory name +# (using `basename`) and assigns it as the S3 bucket name. +# +# 4. File Iteration: Within each directory, the script iterates over all files, +# checking if each item is a file (excluding subdirectories). +# +# 5. Upload to S3: For each file, the script uploads it to the corresponding S3 bucket +# using the `awslocal s3 cp` command. The file is placed in the S3 bucket with its original filename. +# +# 6. Debug Output: After each upload, the script prints the executed command for verification +# and debugging purposes, followed by a separator line for readability. +dirs=/tmp/data/* +for dir in $dirs; do + echo "Looking @ $dir" + bucket=$(basename "$dir") + + for file in "$dir"/*; do + if [[ -f "$file" ]]; then + echo "Uploading $file to bucket $bucket" + file_name=$(basename "$file") + + # Perform the upload + awslocal s3 cp "$file" "s3://$bucket/$file_name" + + # Debugging output to confirm upload command + echo "Executed: awslocal s3 cp \"$file\" \"s3://$bucket/$file_name\"" + echo "################################################################" + fi + done +done diff --git a/docker/mobile/packet_verifier/keypair.bin b/docker/mobile/packet_verifier/keypair.bin new file mode 100644 index 000000000..dbb756a39 --- /dev/null +++ b/docker/mobile/packet_verifier/keypair.bin @@ -0,0 +1,2 @@ +4lVkbEK9=ձ/ڽjdZ r1h- +[]h \ No newline at end of file diff --git a/docker/mobile/packet_verifier/settings.toml b/docker/mobile/packet_verifier/settings.toml new file mode 100644 index 000000000..14fb7cb76 --- /dev/null +++ b/docker/mobile/packet_verifier/settings.toml @@ -0,0 +1,27 @@ +log = "mobile_packet_verifier=debug,file_store=info,solana=info,custom_tracing=info" +cache = "/opt/mobile-packet-verifier/data" +enable_solana_integration = false + +[database] +url = "postgres://postgres:postgres@postgres:5432/mobile_packet_verifier" +max_connections = 10 + +[ingest] +bucket = "mobile-ingest" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[output] +bucket = "mobile-packet-verifier" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[metrics] +endpoint = "0.0.0.0:19000" + + +[config_client] +url = "http://config:9081/" +signing_keypair = "/opt/mobile-packet-verifier/etc/keypair.bin" +config_pubkey = "14c5dZUZgFEVcocB3mfcjhXEVqDuafnpzghgyr2i422okXVByPr" +# ./target/release/mobile-config-cli env info --keypair=docker/mobile/packet_verifier/keypair.bin diff --git a/docker/mobile/postgres/001-init-dbs.sql b/docker/mobile/postgres/001-init-dbs.sql new file mode 100644 index 000000000..0e6dc251e --- /dev/null +++ b/docker/mobile/postgres/001-init-dbs.sql @@ -0,0 +1,43 @@ +create database iot_config with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database iot_metadata with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database mobile_index with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database iot_index with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database mobile_verifier with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database iot_verifier with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database mobile_config with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database mobile_metadata with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database iot_packet_verifier with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database mobile_packet_verifier with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; + +create database mapperingestor with owner = postgres encoding = 'UTF8' lc_collate = 'en_US.utf8' lc_ctype = 'en_US.utf8' tablespace = pg_default connection +limit + = -1; \ No newline at end of file diff --git a/docker/mobile/postgres_seeder/Dockerfile b/docker/mobile/postgres_seeder/Dockerfile new file mode 100644 index 000000000..ada64b008 --- /dev/null +++ b/docker/mobile/postgres_seeder/Dockerfile @@ -0,0 +1,14 @@ +FROM rust:latest + +RUN apt-get update && apt-get install -y postgresql + +RUN cargo install sqlx-cli --no-default-features --features native-tls,postgres + +COPY ./mobile_config/migrations /mobile_config/migrations +COPY ./mobile_packet_verifier/migrations /mobile_packet_verifier/migrations +COPY ./mobile_verifier/migrations /mobile_verifier/migrations +COPY ./reward_index/migrations /reward_index/migrations + +COPY ./docker/mobile/postgres_seeder/run.sh /run.sh + +CMD ["/run.sh"] \ No newline at end of file diff --git a/docker/mobile/postgres_seeder/post_migration/mobile_config-pubkeys.sql b/docker/mobile/postgres_seeder/post_migration/mobile_config-pubkeys.sql new file mode 100644 index 000000000..88d2ac497 --- /dev/null +++ b/docker/mobile/postgres_seeder/post_migration/mobile_config-pubkeys.sql @@ -0,0 +1,55 @@ +INSERT INTO + registered_keys (pubkey, key_role, created_at, updated_at, name) +VALUES + ( + '131kC5gTPFfTyzziHbh2PWz2VSdF4gDvhoC5vqCz25N7LFtDocF', + 'administrator', + CURRENT_TIMESTAMP, + CURRENT_TIMESTAMP, + 'config' + ) ON CONFLICT (pubkey, key_role) DO +UPDATE +SET + updated_at = CURRENT_TIMESTAMP; + +INSERT INTO + registered_keys (pubkey, key_role, created_at, updated_at, name) +VALUES + ( + '14c5dZUZgFEVcocB3mfcjhXEVqDuafnpzghgyr2i422okXVByPr', + 'oracle', + CURRENT_TIMESTAMP, + CURRENT_TIMESTAMP, + 'packet_verifier' + ) ON CONFLICT (pubkey, key_role) DO +UPDATE +SET + updated_at = CURRENT_TIMESTAMP; + +INSERT INTO + registered_keys (pubkey, key_role, created_at, updated_at, name) +VALUES + ( + '14FGkBKPAdBuCtKGFkSnUmvoUBkJGjKVLrPrNLXKN3NgMiLTtwm', + 'oracle', + CURRENT_TIMESTAMP, + CURRENT_TIMESTAMP, + 'verifier' + ) ON CONFLICT (pubkey, key_role) DO +UPDATE +SET + updated_at = CURRENT_TIMESTAMP; + +INSERT INTO + registered_keys (pubkey, key_role, created_at, updated_at, name) +VALUES + ( + '13te9quF3s24VNrQmBRHnoNSwWPg48Jh2hfJdqFQoiFYiDcDAsp', + 'pcs', + CURRENT_TIMESTAMP, + CURRENT_TIMESTAMP, + 'Authorized Coverage Object Key' + ) ON CONFLICT (pubkey, key_role) DO +UPDATE +SET + updated_at = CURRENT_TIMESTAMP; \ No newline at end of file diff --git a/docker/mobile/postgres_seeder/post_migration/mobile_metadata-boosted_configs.sql b/docker/mobile/postgres_seeder/post_migration/mobile_metadata-boosted_configs.sql new file mode 100644 index 000000000..1546e52a9 --- /dev/null +++ b/docker/mobile/postgres_seeder/post_migration/mobile_metadata-boosted_configs.sql @@ -0,0 +1,19 @@ +CREATE TABLE public.boost_configs ( + address character varying(255) NOT NULL, + price_oracle character varying(255) NULL, + payment_mint character varying(255) NULL, + sub_dao character varying(255) NULL, + rent_reclaim_authority character varying(255) NULL, + boost_price numeric NULL, + period_length integer NULL, + minimum_periods integer NULL, + bump_seed integer NULL, + start_authority character varying(255) NULL, + refreshed_at timestamp with time zone NULL, + created_at timestamp with time zone NOT NULL +); + +ALTER TABLE + public.boost_configs +ADD + CONSTRAINT boost_configs_pkey PRIMARY KEY (address) \ No newline at end of file diff --git a/docker/mobile/postgres_seeder/post_migration/mobile_metadata-boosted_hexes.sql b/docker/mobile/postgres_seeder/post_migration/mobile_metadata-boosted_hexes.sql new file mode 100644 index 000000000..6fcebee0b --- /dev/null +++ b/docker/mobile/postgres_seeder/post_migration/mobile_metadata-boosted_hexes.sql @@ -0,0 +1,17 @@ +CREATE TABLE public.boosted_hexes ( + address character varying(255) NOT NULL, + boost_config character varying(255) NULL, + location numeric NULL, + start_ts numeric NULL, + reserved numeric [] NULL, + bump_seed integer NULL, + boosts_by_period bytea NULL, + version integer NULL, + refreshed_at timestamp with time zone NULL, + created_at timestamp with time zone NOT NULL +); + +ALTER TABLE + public.boosted_hexes +ADD + CONSTRAINT boosted_hexes_pkey PRIMARY KEY (address) \ No newline at end of file diff --git a/docker/mobile/postgres_seeder/post_migration/mobile_metadata-key_to_assets.sql b/docker/mobile/postgres_seeder/post_migration/mobile_metadata-key_to_assets.sql new file mode 100644 index 000000000..2a9812f0a --- /dev/null +++ b/docker/mobile/postgres_seeder/post_migration/mobile_metadata-key_to_assets.sql @@ -0,0 +1,15 @@ +CREATE TABLE IF NOT EXISTS public.key_to_assets ( + address character varying(255) NOT NULL, + dao character varying(255) NULL, + asset character varying(255) NULL, + entity_key bytea NULL, + bump_seed integer NULL, + refreshed_at timestamp with time zone NULL, + created_at timestamp with time zone NOT NULL, + key_serialization jsonb NULL +); + +ALTER TABLE + public.key_to_assets +ADD + CONSTRAINT key_to_assets_pkey PRIMARY KEY (address) \ No newline at end of file diff --git a/docker/mobile/postgres_seeder/post_migration/mobile_metadata-mobile_hotspot_infos.sql b/docker/mobile/postgres_seeder/post_migration/mobile_metadata-mobile_hotspot_infos.sql new file mode 100644 index 000000000..057df5533 --- /dev/null +++ b/docker/mobile/postgres_seeder/post_migration/mobile_metadata-mobile_hotspot_infos.sql @@ -0,0 +1,18 @@ +CREATE TABLE IF NOT EXISTS public.mobile_hotspot_infos ( + address character varying(255) NOT NULL, + asset character varying(255) NULL, + bump_seed integer NULL, + location numeric NULL, + is_full_hotspot boolean NULL, + num_location_asserts integer NULL, + refreshed_at timestamp with time zone NULL, + created_at timestamp with time zone NOT NULL, + is_active boolean NULL, + dc_onboarding_fee_paid numeric NULL, + device_type jsonb NOT NULL +); + +ALTER TABLE + public.mobile_hotspot_infos +ADD + CONSTRAINT mobile_hotspot_infos_pkey PRIMARY KEY (address) \ No newline at end of file diff --git a/docker/mobile/postgres_seeder/post_migration/mobile_verifier-meta.sql b/docker/mobile/postgres_seeder/post_migration/mobile_verifier-meta.sql new file mode 100644 index 000000000..04be4bd93 --- /dev/null +++ b/docker/mobile/postgres_seeder/post_migration/mobile_verifier-meta.sql @@ -0,0 +1,86 @@ +INSERT INTO + meta (key, value) +VALUES + ( + 'last_rewarded_end_time', + ( + SELECT + floor( + extract( + epoch + from + now() at time zone 'utc' + ) + ) - (24 * 60 * 60) + 180 + ) + ) ON CONFLICT (key) DO +UPDATE +SET + value = ( + SELECT + floor( + extract( + epoch + from + now() at time zone 'utc' + ) + ) - (24 * 60 * 60) + 180 + ); + +INSERT INTO + meta (key, value) +VALUES + ( + 'next_rewarded_end_time', + ( + SELECT + floor( + extract( + epoch + from + now() at time zone 'utc' + ) + 180 -- Adding 180 seconds + ) + ) + ) ON CONFLICT (key) DO +UPDATE +SET + value = ( + SELECT + floor( + extract( + epoch + from + now() at time zone 'utc' + ) + ) + 180 -- Adding 180 seconds + ); + +INSERT INTO + meta (key, value) +VALUES + ( + 'disable_complete_data_checks_until', + ( + SELECT + floor( + extract( + epoch + from + now() at time zone 'utc' + ) + (24 * 60 * 60) + ) + ) + ) ON CONFLICT (key) DO +UPDATE +SET + value = ( + SELECT + floor( + extract( + epoch + from + now() at time zone 'utc' + ) + ) + (24 * 60 * 60) + ); \ No newline at end of file diff --git a/docker/mobile/postgres_seeder/run.sh b/docker/mobile/postgres_seeder/run.sh new file mode 100755 index 000000000..2d9e5a26a --- /dev/null +++ b/docker/mobile/postgres_seeder/run.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# Description: +# This Bash script performs database migrations and seeding for multiple PostgreSQL databases. +# +# Script Overview: +# - Runs migrations for the 'mobile_config' database using sqlx migrate. +# - Runs migrations for the 'mobile_packet_verifier' database using sqlx migrate. +# - Runs migrations for the 'mobile_verifier' database using sqlx migrate. +# - Runs migrations for the 'mobile_index' database using sqlx migrate. +# - Executes SQL scripts for additional post-migration tasks in each database. +# 1. Define the path to SQL script files located in the /postgres_seeder/post_migration/ directory. +# 2. Iterate through each SQL script file found in the specified directory. +# 3. Extract the database name from the file path using delimiters and manipulation. +# 4. Output a message indicating the script being executed and the corresponding database. +# 5. Use psql to connect to the PostgreSQL database and execute the SQL script. +# +# Key Points: +# - Database Migration: The script uses sqlx migrate to apply database migrations from specified sources. +# - Database Seeding: It executes SQL scripts located in /postgres_seeder/post_migration/ directory for additional setup tasks. +# - Environment Variables: Requires environment variables POSTGRES_USER, POSTGRES_PASSWORD, and POSTGRES_HOST to connect to PostgreSQL databases. +# - Script Output: Displays status messages and execution results for each migration and seeding step. + +echo "#############################################" +echo "Running mobile-config migrations" +sqlx migrate run --database-url postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/mobile_config --source /mobile_config/migrations +echo "#############################################" + +echo "Running mobile-packet-verifier migrations" +sqlx migrate run --database-url postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/mobile_packet_verifier --source /mobile_packet_verifier/migrations +echo "#############################################" + +echo "Running mobile-verifier migrations" +sqlx migrate run --database-url postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/mobile_verifier --source /mobile_verifier/migrations +echo "#############################################" + +echo "Running mobile reward-index migrations" +sqlx migrate run --database-url postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/mobile_index --source /reward_index/migrations +echo "#############################################" + +export PGPASSWORD=$POSTGRES_PASSWORD + +FILES=/postgres_seeder/post_migration/* +for file in $FILES; do + readarray -d "-" -t array <<<"$file" + db=$(echo ${array[0]} | sed 's|/postgres_seeder/post_migration/||g') + echo "Running $file on db $db" + + psql -h $POSTGRES_HOST -U $POSTGRES_USER -d $db -f $file + echo "#############################################" +done diff --git a/docker/mobile/reward_index/settings.toml b/docker/mobile/reward_index/settings.toml new file mode 100644 index 000000000..ac596fd15 --- /dev/null +++ b/docker/mobile/reward_index/settings.toml @@ -0,0 +1,17 @@ +modelog = "reward_index=debug,file_store=info,custom_tracing=info" +interval = "10 seconds" +mode = "mobile" + +unallocated_reward_entity_key = "131kC5gTPFfTyzziHbh2PWz2VSdF4gDvhoC5vqCz25N7LFtDocF" + +[database] +url = "postgres://postgres:postgres@postgres:5432/mobile_index" +max_connections = 10 + +[verifier] +bucket = "mobile-verifier" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[metrics] +endpoint = "0.0.0.0:19000" diff --git a/docker/mobile/verifier/keypair.bin b/docker/mobile/verifier/keypair.bin new file mode 100644 index 000000000..2c0b017c3 Binary files /dev/null and b/docker/mobile/verifier/keypair.bin differ diff --git a/docker/mobile/verifier/settings.toml b/docker/mobile/verifier/settings.toml new file mode 100644 index 000000000..519256e6a --- /dev/null +++ b/docker/mobile/verifier/settings.toml @@ -0,0 +1,51 @@ +log = "price=debug,mobile_verifier=debug,file_store=info,custom_tracing=info" +cache = "/opt/mobile-verifier/data" +rewards = "24 hours" +reward_period_offset = "30 seconds" +modeled_coverage_start = "2023-08-20 00:00:00.000000000 UTC" +# This needs to be created +data_sets_directory = "/opt/mobile-verifier/data_sets_directory" +usa_and_mexico_geofence_regions = "/opt/mobile-verifier/usa_and_mexico_geofence_regions" +usa_geofence_regions = "/opt/mobile-verifier/usa_geofence_regions" +data_sets_poll_duration = "10 seconds" + +[database] +url = "postgres://postgres:postgres@postgres:5432/mobile_verifier" +max_connections = 10 + +[ingest] +bucket = "mobile-ingest" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[data_transfer_ingest] +bucket = "mobile-packet-verifier" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[output] +bucket = "mobile-verifier" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[data_sets] +bucket = "mobile-verifier-data-sets" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[metrics] +endpoint = "0.0.0.0:19000" + +[price_tracker] +price_duration_minutes = 999999999 + +[price_tracker.file_store] +bucket = "mobile-price" +region = "us-east-1" +endpoint = "http://localstack:4566" + +[config_client] +url = "http://config:9081/" +signing_keypair = "/opt/mobile-verifier/etc/keypair.bin" +# ./target/release/mobile-config-cli env info --keypair=docker/mobile/verifier/keypair.bin +config_pubkey = "131kC5gTPFfTyzziHbh2PWz2VSdF4gDvhoC5vqCz25N7LFtDocF" diff --git a/docker/mobile/verifier/usa_and_mexico_geofence_regions/mexico.txt b/docker/mobile/verifier/usa_and_mexico_geofence_regions/mexico.txt new file mode 100644 index 000000000..a19647d38 --- /dev/null +++ b/docker/mobile/verifier/usa_and_mexico_geofence_regions/mexico.txt @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docker/mobile/verifier/usa_and_mexico_geofence_regions/us-territories.txt b/docker/mobile/verifier/usa_and_mexico_geofence_regions/us-territories.txt new file mode 100644 index 000000000..0cd57bc57 --- /dev/null +++ b/docker/mobile/verifier/usa_and_mexico_geofence_regions/us-territories.txt @@ -0,0 +1 @@ +H4sIAAAAAAAC/zTZZ7hTZdowbGwERN2oQEDF2CMiRkTMqDPHEilREQMCxgIGRIwoGB1Lnvd9fmDDWNDYI7aAiLGAsWGmHrFvdXS2deKM+sS+rc+evn/m+95Z5/LPeVzXfd3XXdba2WHb7f7//y3bbdj/o3shi7yJL+wT+mLo6pfEXP2hmKvP3S+MuXq5OPI8+YL4v/h/5K/iPfJcvU7M1ffxUfnIxzjjgNCZoatPFkfO4Sm8gWvV3yxmzwuH/8cEA2aZZ/HV0J7X1DPFgFkWOcCeXvOYYpZ5FtnzR+PMs8jKO6E1Nthi5V3jbLHD1Af6MdV2DjYmTQ7nsee8I8L9M8WAeRbZuDi0xcoloTU22GLqMuPsY4c9l1ufKQbMs8IGW+zjQDR+hb7/pS9TDJhnz/9RxxQD5llk5f86DxtsRfFV9sPUNfqxyOzNYvZU1DNglsVo/F7jLLLCGhtscYCpDeYxtVHMnsfcB1MMmGeRPY+rZ4oBs8yzwYGofot+DJ52nl85D1vsRPnfWH/GkeH6TDFgPhqfaZwBK7NCa2ywxU40flJoHztMzAntOUXMFIMonw3NMnW9cVZYY4MtJm5Qz5618kwxYJ6VW/Rlgy1OfOG4/7iCF3IVp70YeiJn8wzu+nLo7oxzHPfkvtyfBzLJyZzCqUzzWP6C0zidJ3I253Ae5zPHM3gWF0d9XtGHc3gGz+JiFriKO7zqvDyQSU7gJE7jTGZ4IudwHuczx7O48DV5LubNfJW9bPPoXvfK+94MfZfv88/8mPG3PF9O4U/c9Y/eC47mOO7J8dyXB3ICJ3ISj+bNXMcN3MTH+CJfZS/f5uf8kv38jj9wWp/nwtmcw/k8g2dxyjveY77L9/kh2/yYn/NLfs1+/sCfuOHd0I3cxDof4xN8mb38A7/kD9zhg9AYd+ZkTuFUpnk0f8EN3MhNrHMLv2Y/t2mHbscdGONwjuCu3J2jGed4FrjuL957zps47T/ecWholRtZ59N8llvZ5G95zaTQNSzzNt7Bu1jlfXyAxx4d+gsu43ecft7x4ecIM5zNqy4OvYZrWOZtvItVruN9fIDvXhL6Pj9kmx/zS/Zz98tC92SGs7mUy7icBa7ghbyK17DMG3gTb+bTfJZN/pq/5e/5HX+I9nu5fXIZl7PAC7mKt/EO3sUqH+CHbPNTpq+wbx5YCp3C6f9lf1zKZVzOAi/ktP9jPmcyw9l89/963vyQbX7ML9nPKf9t/9z3SvtnkhM4iUu5nAWu4lVXee5cwzJv4M18mlvZ5O/5Il9lL9/mdteE7sAYd+ZoxjmT+651Li7nNjfryx0Y43DuzH05gRM5iUdzPs/i6EroeC7kYm5zr31wB8Y4gjtzV+7O0YxzT47nTGb4Il/mq+zlH/g2P2Q72t8G++FkTmWav+A0zmSGJ3I253CHjfoxzaP5C87kHE57zM8RZzLD2ZzDpY/7+WSBK3gh17DMdXyaz3Irm3yRr7KXb/APfJtt7vqE58vRjHMc9+SBnMwpTPNYzudybrPFfTPG4dyZU/kLTuN0zmSGJ3IO923YJ5OcwElc87TPC25inY9xCz/nl/ya/fyJG39lPp/gi3yZr7KXf+CX/IHVX3v+v/H8uZVN/pbv8n22+Wd+zP2nzQjviUlOZZobuIl1zpwRmuFSLmOBK3ghV3G7maExjuB85ngWX54V2ss/8HN+ya/Zzx+450mhN/AmbjcndDKncCrTPJrHch7nM8czeFY0fopxbpO1LodzBHfmZE7h0TyW8zifC5njWVzMFbyQG9d4rqzzWW5lkztc73lxKZdxOQtcxXf5Pj9km3/mx/ycX/Jr9vMnzrvB+XkGz+Lkm9wfj+XStfbN5SywfYt98Et+zX7uWwndnwcyyUmczCmcyjR/weUscN5bzhMa7PfC3P/narbYZbC/cXYPkj9YnsEEMYMlYgZLxWwxOEeeXQbL5Bmcax6D5cbZYrDbi2GeLXaj/O7iUaHBGHm22I3iuPE91B8hZovdKD9F3TFidhkcK8/geH0YTDfOVhTP4Ex1GTGDk8XsMpgjz2CRmC0Gi+XZYrD9y2HMLoPhoasZjBKzxW6UH83x6g8Ws8Uug0OMs8Uug4nyXH2ocQY/k2eL3Sh/tDxXzzBvppjBLDGDjJjBQjFbC6N7eiWMDwgNDhQzOFjMLoMJr/g5Mh55qDoGk9SxFcXHqWMwzThXT5efIc9gppjBXM6Tj1yiP4Ol8pHncJnxc63LFrtRfL66FeLICznk1XD+jqHBTqEtdhnsrI4tBiPF7DLYVX3kKHVx42Pl2WUwTp4tBntxvHG2Ivczvr+YwSFiBhPF7B4pPoppTlc/W8zVC7jQ+OlittiN8mfIc/Ui41y9WJ9N6iI3y899Laxji10G8+QZnCpmN4rn83R1V+nLFoM1vN44WwxuEDO4UR2Dm8QMHlPPYItxtiJfsF+2XlT/lphdBm/Lc/U7xrn6XePvid8Xc/UH6tn6Cz/W//DeMGYwWczgCE7p9XtJfKQ6dhlMVccWg2Pk2WVwrDyD4W96rqHBgje9j1wof5qYQU7M4HYxgzvEbN0tvsf4OjGDZ/kbebbYjfJ/Ypsj3/L58JbPhbd8n3jL9wjx7mKuHmseV4/j4eqPEbPFbpQ/lmeq/1Zd5He84e3QtaGrbxY/9rb3Vv6Ft72nxl8y/rKYwWvq2Y3iXr6pnl0GH/IT45Gfyn9jPlvsMhjzR9+3/uh7VmgQl2ewn5jB/mK2ojjJw9VNFjM4klN5rHG2GPxczOAX6tiK4quNXyvPYI2YwQ3q2Yq81fhtxtmK4juN3yVm6z75++XZYjeKH1C3UczgETGDuj5sMdgszy6DLfIMXjKPXQYvq2OLwevybLHL4A15Bm+K2WXwB33YYvCeOgZ/4l/UMfjY/K/UM/hansGPYnaj+Cfu2ud7Qp/PgT6fA/Lj5NlisKeYwXQxgxnmMZgpZjCLGXm2GMyVZ5fBPPnI07jI+GIxg1X6Mjj8HT9n7/i9E9plMNl45JHGI38mf4z5x5r3kjxb7Eb5l+VfkWfrVfNfU8cWu1Hca/wjMbsMPjHOFrtR/lN5Bt/Ks8Uug++MR25+189RaPDCuz6n3/W9wniUf5GvyEe+Lv8ZP+c37Nd/yAdhzBa7DLaRj9zWOFvbcZT6Y/Rji10Gx8ozmCFmN4pncpY8WxnzHhWzy+Ax+cjHjbP1hLrn7JMtdhlslY983jhbTX6m/kcxu1H8k/Gd2uF6bLHLYGfjDMaqYzeKx3EP9bOMM1ggzxa7DE4zzha7DHLyDM5Rzxa7UX6ZPFff81EYs8vg3tDVDO4Ts8Xg1r+EeQa3iSNvl79DHHk/Hwjt/kk8ZOK88O8SoavZZbCDPFtRPNz4jmK22GUwwjiDndQx2FnMYKSYwa7ms8VglDy7DEbLMxhrHrsMxslz9V7GuXq8ca4+xLzpYrYYzBCzG8UzOcu8jPgE8YliBifJs8tgtjyDkzlHni0Gp8qzxW4Uz1e3QB27DBbKsxXFpxnPiRksErPFLoPF8lx9jnGuXqbuAjFb7DK40Di7tx4axneGttjl6vXy7DJ42Dhb7DL4lXG22GXwO+NssRvlfy/P4MpJYZ4tdqP8jfLsMrjHOFvsRvl18ux+Yd43xtlil8G2R4fjbLEb5beT3547cKjxmJjBSHl2GeyqbjfuLj9KzC6D0fJcPYZx42ONR46T30sdWwzGy7MVxfvzYE5Qf4iY3SieaD6Do8TscnVansHRxk8TL1HHLoOl8mwxOF/MLoMV8pEX8ELjK/VjN4pXqbuWa4yvN77B/IfEDDaK2YriR8TsRnHd+GPmPy5mi10GT3CzcQZbxAyeE0du5e/4e3Wf8XN5Bl/YB7sMvpRnK4q/En+jrl/M4Hsxuwx+kOfqH+VXHRvmufq498J5DKbx+NDVbLHLYLo8gxnq2WIwU8wgo47BieLIkzjb+MlitthlMEeewXz1DBZwoTxbDHLyp8uzy9VnyJ/Js8xbYZzBiEmn/scDeGBoi6sPDe0yWGCcq880zuC488I8W+xG8cni6y8O628MXc0Wu1F8k7rbxewyuMN8ttj9k/gz8Rf8yrxvzGOLXQb98uz+yJcuCX2NH/ETfha6+itx5PehwfaXhX3ZZbBD6Gq2GOwkZpfBzvIMRprPLoNd5SPHMG7+4Zys/kjjbLEb5afKMzhKzC6DtDxX/5y/4HHquXqaecebx2C6cbaieIb5DE6Vj5wvfwbPlI88S36xvgxWGmeL3Si/Sp7BtfLsMlgjH/k4nzD+nJhdBlvlIz+T/1zM4Asxgy/FbB13ufsMXc0Wu1F+ujxXzzDO1vliBivkGdwjZpfBOvnIe42zdR/fkWfrXR5+RdjniNDVbLEb5afwSHm2rhWztYbXqX9K/+fk2WWwVZ6rnxezy+A38uxG8W+N/07MLoPfy7P7hfzX/Ma6bLEb+aP8T+JRpbB+NMeEdhnsE9pisK86tiKT5h0snig+1LyjzGOL3SifVneMPINjjR/3X97P//Lz/1/eO3l2I08KDc5Xxxa7DFYaZ4vdKL9KnsEJ/yfMs8Uug5ONs8VulJ8jz9Uv/d8wZpfBa6Gr2WI3yn8k5upP1LHL4DPjbLEb5T9X95WYLXaj/NfyDL6XZ4vdyMP/28/Xf/t98N9+zsTbX+n32JV+b4UG+4nZZbC/PINDxAwmihmcI2Y3ipcZP1/MLoMV8gxuvMr3i6t8vwgNbpKPfFb+V2J2Gfw6dDVbDF6SZ4tdBi/LM3hdzC6DN/RhK/JN/oEf8EPzhlwTzmOLXQbbyEcOk99RzG4UjxSztZeYrfHmHydmN4qn8XhO5yx1DDL2zVbkyerYmqN+v7Xeq7Xeq7XeK3kGB4SuZnCgmK0oTooP5gQuNe88dWyxy6Agz2ClmF0Gq+QZ7Hize7/ZvYcGI+QZjDTOYJRxdhmMlmcwLnQ1W3vJ7y/PFoMD5NlicKA8WwyOlWeLwc/lGfxCzBaDuWIG89SxxWCBmF0GC+W5+jT508XsMjhDnq1F8ovFkSMrobtyTMXv0Yp9yzOYJ2ZwmphdBjn5yNN5Bg+6Laxn60gxW0cxzYeNs7WJj7AeGgy7Nzw3W+wyGC7P1WPF7EbxcZwmf7L4NDGD1/Vhi90ofkPdO2J2o/hd4++J2Y3i941/Yh222GXwqTxXD9ngc3GDz0XxNhzKGIdtcD9iBjuKuXqEmMERYgZTxJE/sz5bR6s7Xsxguv5sRc6TX6APg8XGI4dsdM7QYGjoarbYZRCTZ7CTmF0GO8tHjjLO4HB5dhlMtj5bkVOMH8Nj5SOncRYzPEH9iWIGJzzme91j6h7zvU7+RHkG5z4e5tmN4uWP+zwXs8tglTxbDK4UsxvFV/Fq867nDebdKGaXwU3yDNbqwy6Dm9WxxeA2eXZvl79D3b28T/5+9WwxeECewa/4a3m2GPxGnq3I38r/TsxuFP/e/JfUscvgZXWR78l/oJ4tdhl8KM/gIzGDP4sZfMJP9WWLwV5PhHm22I3y4+WTocGhYnYZTJLn6iPF7HL1z3g0TzP/TDG7DM6SZ2uJ/HliBgVx5Ep92FqlbtstYcwug+3kGewoZjBCHPkz+aO3OI88g5Pk2WI3ys+WZzBPzGCBmF0GC81ni8HpYq5eJGaXwWJ5Bts3wnq22GWwgzyD/dSzxW4U76/uEDG7DCaazxaDw8UMJqtji8GRYgZT1bHF4Cgxuwx+Jmbwc/PZYjfK/0LdOWK22I3ic9UtV8cWg/Pk2WI3igvGV3ClPLsMtn06HGeL3Sje7mm/J9WxG8Ux46PUsxvFozlGnq24+ftxf30OEbPL1lW8njeoXy9ml8EGfdiKfIgb1T3OJ9Szxe5r4m/FbH1n3vfmscUugx/kuXr9r+zzV/YXGjwiZjeK68ZfF7PFbpR/g2/JM/hMnl0Gn8sz+EbMbhT3G/9WzG4Uf2f89l+HMVvsRvk75Ln6N8a5+re8+jeh1/zG71MxW+xG+V/zd/Jc/Sb/wA/4ob6fiNll8Kk8Wwz2mbYg/DthaDeK9w0NDhWzG8WHi9k6glP4c+NsPSRma6P+m0NXs8Uugy3ykc/JP28eW+wy+Mo4W+xG8dfqvhGzy6BfPvK4GeE4g+NDV7PFbpSfLs/VJxnn6tn6nCtml8FyebYYDJkZ5tllsI08g+3FbLHLYAd5rh5mnKvnirl6nniB+BwxVx81K+zHLle/IGbwojyDV8xjl8Hr6thil8EbxiO/Nc5gt0w4j90o3j109Rh5tg4PDY4wzi6DKfKRxxjn6mM58qTQXU+yDzG7DHaXjxzLcTw1tMUugyuNs8vgKnm2GFwtzy6Da+TZYrBWnsHNYrYY/FY+8lt+Z/x7MYMfxJFD5nh/Q4OhoavZYjfKx9TtKGaLXQYjjEfuJ/9zMVvsMviF8cgFxrl6obpFYnajeLG+x58SxrNCu5FzQ4MFxtliN4oXGj9HnquXmX+emC12o/z2WT/foasZDBWzyyAmz+AoMbsM0vKRv5A/XcwWuwzOkOfqpVzGVcavPtf7Gbr6s9AWu1x9+5owzy5X3y3PLoP1xtliN4o3qHtKHVvsRvmn5Rn8Rp4tdhn8Tp7dKP49h1zv/Q9tbRMabCtmN4q3407ybI0SszWaY/Q7P3Q1W+wyWCEfeYFxti4Uv6b+E/3YjeJP1X8rz+B742yxG8U/ROe+Iaxji90ovx2HykfuKL+fmKv3Dw1OE7PFbpTPyTN45sYwzxa7Ufzsjb5/qGM3ipvGx9zk98xNnsdNft+I48an3uTnTswug7Q8g5+J2WKXwc+Ns8VuFP9C3fFrfX9Z63Nrre8vocEs42yxG+UzPEn9BWK22I3yF8rz////JmHMbhSvUn/ELb5X3uL38C3u6Rb3ZJxdBq8ZZ4vdKO5V9546ttiN4vfVfaCOLXaj+EN136tji90o/4M8uz+ad3AlHGeLXQYT5Bkcop4tdhlMlI/8mXG2jhGzdSyXyLN1jn7z3wpjBgve8vvrLb+35BfKM8iZx+7pXGT8sT+G4ww2c0voarYYfCPPFrsMhry7MPxeEdplsK08W+wy2E6ewVD17DKIybMVOYqj1f1MzOBo89iK4p/zF/IZ8YWhxX1eWPL/zOwbmmWBRVb2D20wc5B65phnkRXW2HtwaB877OcAB1meoA/rbLDJ8pLQKmuss8Em+znA8jnWYY11Nlhepo51Nthk5lz3wxwLLLLEXrbZzwEORv3Oc88sspf9HGC6ENqz+4v/McEUK+wZZZwZZpljnkWWWGGNDcbi+jPOBNPMMsd8NG8P+2Uv+9hmh/0cYGxP6zLHPOuMTbEe40wwyRQrbDB7lL4ssnyMetbZiPLHipk53j5ZYIm9bLOfg4zNcA4mmGSK/RxgbKZ5TDLFdJSfJWY541xssMnyyc7JKmussxHVzREzOdc+GJ/nXEwzxwKLLJ9pXTYZO0s/JphkmmVWWWOdDTbZv8jzYG77l8Pnx8wOoTnmWWGN1aFiNtnLPrbZ4QCrMfOYHmZ9ZpljnvXhoQ02GdtRHxYYHxGaYIZZFlhkiXU22DM6tMwKa0zupS8LLLKXfexwgD3j9WGZNTaYmWAd5phnkZmJ6phjngWW2HOoczE7yb0ebZxxJpic8bKfW/c2U59Z9s1e9rHNfg5wkOWMPqyzwdgC6zPFNDPMMs8Ciyyxl30cYHzIK2FfVlhjg7FtQuNMMMU0K2xE9durZ5kV1lhng03GdgjtYYJJpphmjhVWWWOd8aH6MM0y64zF1DPBJNPMscIGe4bZJzPMMscCiyyxn/nhxtkcYb87WZc11pne2X73Vc86YwfYJ+NMMsU0c8yzyF622eEgMwfyYOdnjnkWWGJyon2wydih9ssEk0wxzQyzLLDIEnuO049JpllmlTXW2WRmmvWYY4FFlhg73nmYYJIpZphljgUWWWKZVQ4wNt15GWeSKaZZZpU11tlgk7kZnitL7GUf2+ywn4PMzHReFlhkiemMmGU2mZ1rHsuss8Em+znIzDx9mGOBRZYYm+8+mWKaBZaiugX6sMwaYws9LyaZYpoZ5lhgkSVWWGODsSXWYZwJJplmhlnmmGeRpWh8qZixc6zHOBNMMsUMc8yzxF622WE/B6P1llmPaeaYZ89y+2GSaWaYZY55FlhkmRVWWWODTcbOtw/GmWCSaWaYZZ4FFtnmYFS/Qh2LTF8gZpU1DjJ2oX0yzhTTUX7Iq+H+mWabg1F+m9AyK6yyxibjQ81jmVXW2WCTyZh5rLDKGpssDzPOGutsMj08tMQyq6yxziazI0LzLDKzU2iOeRZYZImZkeqZZ4FFllje1flZY4Pp3dWxyZ5Rob3sY4f9HGB2tP2wyFjcc2SSKaZZYInlsfbNGutssMnYHt4/JplmlTU22cvYns7NOJNMMc0yK6yyzgabzO3lfCyzwjobbLKX/RxkbD/7ZZwJJplmL9vscJC5/T0Hlpg7xHNlgSX2ss0O+znAQWYm6ss8CyyyxJ4jnYtZ5phnmRVWWWOdDcaPcj+Mp60T+XP1jB2vjmmWWWWNdTaj+un6nKQPE0wyxTTLrLLGOhtsMjfb/TG1wHNgz0LrMcXEGfa3SB3jTDDJFMussMoa62xEfRebz+p6+2dtg308rJ5xJplimhnmWGCRJZZZYZU11tlkL/vYZofZTdZlnkWWWK07x2Y/H6xsMe8r+2OVNdbZZC/72Inmf60vq6yxwdQ3xllnud98Vlljg01m5r3m+/Nrvj+H5llgiZlT1THPEmPzQ3sYZ4Jptk8P7XCQ5TNCK6yyxmaUP1OesStDk0wxzcwa52GRJZZZZZ0NNtl7vf2znwMcZOYG98oc8yyxcqO+7OcAB1m+ST3rbLDJ9Dr1rLLOJmMPeD5MMsU0Cyyxztij5jPJFNOsss4mM4+5FxZYZInJzfoyzQJLbHOQsRe8h4wzwXSUf9F9veR+WWWNdTbZjupeVscmM295/swxzwJL0fjbxhl7x/6ZYJIplllhlTU2oj7vOu975jPNDLMssMgS4+/bB1NMs+cD+2WZFVZZY4NNZj90D8x+FNrHDuN/sQ7T7GUf2+xwgIOMf2ydw3vD58BettnPAQ4yM9k85llgiZkj1LHAIkvsY4flKaEV1tlg5kh9mWeBRZaiuqPUsZd97HCAyXRomuVj7IdV1thg+Vh1rLLOBptRftjr4T5YHhFaZWzYm+F+mGKameGhORZYZIkV1tlgelxolTXW2WTleHWssck+ttlhdpb9sDrXPCZOtX/m2cs+ttnPAQ6yvsC52GQ/BzjI2MI3fa+0D6ZYZoVV1thg/TTrcIDlnPmssc4Gm8zc6r6YY54FFtnLgSh/m/63689+Vu6QZ+dO+6p6v+5xfvaynwMcZHWd/TP2lPtkkimmmWGWORZYZCnq93RonAlmmGWOeRbZYPIZ8541jzkWWGSJsd/aB+NMMMUMs8wxzyJLLLPCKmtssBmt/4F9ssgSsx8aZ5GxP5nPOJNMMc0+9nOAsbY+TDDJFNOssMHMJ/bJAovsY4eZT9UzzwKL7Bn5VrgfplhmhVXW2GCTPbuGJplibrfQAkvM7G6ceRZYYmZUaJY55llgkb3sY5sd9nOAsbH2zwSTTLES1Y3T/3B9mJ1sv0fZF4ssscwqm+xjh5m0vsyzwCJrjB1rf4wzwRQrrLHB9In6z9af1Tn2ycyp9sU8Cyyyjx0OMHOW+cyzwCJLrK+3jw3O87DzbXYeNthm6SXzXlH3unOz+Ybn/Jbzs8oaY29bjwkmmWaZVdbZYJOld5z7XfFn1vncOkwwyRTTLLHMKutssMnYV94PJphkimkW2MtBxr62TyaYZIpp5lhgiWVWWWeDTWa+1Yd5Flhim/0c4CBj3zk/40wwyTQzzDHPIkts/mD/V74dnuuq0AprTK4JTbN2nfj60BzzLLDMCutssp8DjN0QGmeCSaaYZs9a9cwwyxwLLLHnZn2ZYpplVlhljU2W1unzqH08Zl3mGXtcHVMssMgS8084zxZ1LLLEMquss8Eme15wLy/qz/hLzs0Ms8yzwCLbUf3L6llgkSVWXrM/NhjrtT8mmGSKFcbeVM84E0wyxcwf7I855llk4h3jzLPMCmuss8E2Oxxk7F37YpZ1Nhl7z7mYYI4Flthh9n37ZeUD/T+0PzaZbHveLDD2kfUZZ4JJplhmlTXW2WCTsT/rzwSTTDHNDHMssMgSK6yyxmbU5xN9mGeBRZbYyzY77OcgY586D+NMMM0Ms8wxzwKL0fwvzGeRFVbZyzb7OcieL/VjhlkWWYrG+40zxzwrrEV13xtnkZUxfwyfPyvx0CrrbLAZje8XWmOdTfaynwMcZPKg0BQLLLLEWDK0h0mmmGaTscPVM8kU0+znAMuTnZ91Npg78o/+bmV/rLPBXvaxw34OcJC5qfqxzAprrLPBZlSfVs8qa6yzydgxoXEmmGSKaZZZZY11Nthk9ufOxQKLLLGXbXbYzwEOMnaVfTPJNMussMoa62wyc439Ms8Ci8xda5wlttnPQWbWmMc8Cywxdr33lHEmmWKaBZZZZY11Npm90Tq3WodxJplimhnmWGCJvexjh/0c4CCbt1vvDuuxzCqbjN1pv0wyxTT7ORDV323/zLHAEvsZr+rHDLPMs8Aiy6ywzgabjN1r/0wzxwqrrLPBJvs5yNh99s8kU0yzwBJjD7gnxplghlnmWWCRsYfMZ5Jplllnk5lHnJ8FltjPAVYedz+sscEm24w9YV9MMsU0y6yyxjobbLKyWT1rbLC8RR3rbLDJzEvulznmWWCJmTfUMc8SM28aZ54FFllizzvmscAiS+xEde/aL/PMvCfPHPMssMgyK6yyxjobTLzv+THNHEussMYG4x9alxVWWWOdTWb/ZB3mWWSJDfaxn4PMtt0Di8x8ZJxF9rHwF+uwzX4OMvOxPswxzwJLLLPCKmussxGNf2Lep2I22fOV58QkUyz/aD3WWGeDsZ/0Y4JJplhhbGSfvx/3+ftxaJIpZphjngUWWWKFNfayj/0c4CBju9oPk0yxsHtoeax1WGOdDTYZ30M/pplhnlXW2WQv+zjA3J72xVIUj3cvjB1vH0wwyRTTLLPKOhtsMjM9NMscCyyyxP4Z7m2mvmywycIs81iPnKue5Xn6sc4Gm+w5zTnZyz72c4CZnHMxzwKLjC3Sn0mmmOYAq4vtj7GVngsTTDLFNMusssY6m8ytsv/d3gn3z172sc0OBzjI7JjQMiusssY6m+xjJ6qPq2d5sn6ssRHlj5Rndmpo4mdi5phnmRXWWGcjqjtGHausscle9rHNDgcYP9b+mGGWeRZYZOzl0B7GmWCZFdbYiOpfUc80M8wyxzxjr5rPBHt6xUwzwyxzzLPIEmMf6cc4E0wx/2f3zxpjn5rPOBNMsfyd+2GVNdbZYM/md8M+TLHCzJbQLPMssMjYi6E9jDPBJFOssMYGy68YZ5U1Zl+1zuv6M8UMs8wxzyJLrLDnM33Yyz522M8BDkZ138gz8619MMc8CyyyjwPMbPNBOI95lhjbNrSHcSaYZJq5qG47dSwPC62wyhqbUX64PNujQjscZHm0etbYjPJjPvB58IHPA/tjngWWmJmhnjnmWWJspnthnAkmmWaO+ah+lnqmWT3Zedhk5lH7Yo55lqL8Y/KMPW49JpiO8k/ov9V85lli7HnnZZwJJplmLqprqmOa5d95H1hljXU22Y7qfq+O8c/0Zy/72GaHgyx/bn1WWWOdzWj8C+NsMvej+2KJsZ/cF+NMMM3yzu1wH6yyxjobzI0NzbPE2LjQOBNMR/k92r7Ptn2fDW2zw0GW97QvVlljnc0of7y+bLPDnln2xQprbLA81zirrLHBNjtR3anuZaE+rLDKGjO5tu+Z7pV5FlhiZYn57GUf2+ywnwPsWeY5MMHMufbBHPMsssIae9nHNjsc4GDU/4LQ5G0fhb9/mGaGWRZYZCnK3y7P2D2hPYwzwSRTzKyzDnPMs8Ai6/d+5O94H/k73kf+jhc6wEEW7jef9Vv/Es5nP8u3hVZYZ4NNxm4P7WGSKaZZv8N89tyvjhX2so/9HOAgs+/9xd+BzGMf2+xwgD1/Ck0wwyxzzLPI5oGHLP3Pz8mhHDLxP/ZxgLFtQnuYZIppZplnfFv1TDHLAksss8Ia62ywj7Ht7ItxJplimlnmmGeBRZZYYYPNKL+9fbHBJotDnYdV1lhnk/FYaIYFllllnQ02GRvmHhhngkmmmGOJZVZYY4NN9rLNDvs5wEGmh5vP8gjrsM4GczvZF3vZxzY7Ud3O7mukmG32c5CVUdZlg5XRYsbi7pFJpphmmVXW2WCTubH2x8w4eeZZYInVPfVhbC/PmQkmmWKFVTYZH6+eaab2sS579lXHFHPMs8AiS4wfrD8zLLDEMiuss8E+tjnI+ATnZ4ppZphlngUWWWaFDfYc4vxMscFe9nOAsYnmM84Ek0wxwyxzzLPAEqtRn5/pw56jrcMkY8eKmWKOBZYY/4V7ZJl1Nhk7Tj2TTDPDHPMssMQy62ywyT622eEAY9OszxTTLLPCKmtsMHa88zDBJFNMM8Msc8yzwCLLrLLGOhtsspd97HAgWn+GdVhiz0znYII5FpmcpQ+zzLPAItvsybgPVllj/ATrMsMs8yywyF72sc0OBzjI1InWPck9ssHybM+ddTbYZOZk+2OBRZZYZ4NN9jM23/0wzgSTTDPLHPMsL7Bv1lhng03GTrMuE0wyxTTLrLDKGutsspd97LCfA1HfnL6sssY6m9H46cZZPVPMzGL3xBzzLDG2RJ4FFllhg73scICppeazyBJj57hnJphkimmWWWGNDTYZW6YvE0wyxTSbUXye/bLIEnsK+jHFPEuMna+eCaaYYZZ5FlhkiZ1o3grzmGeRlQvdC+tsMLFKv+sODfvcGppjnhVWWWPsztAexplg372hbXbYs14ds5usyzzLrLDKGhvMPm4eK6yxl31ss8MBDjLza32ZY55lVlhljQ3Gfu+8jDPBVDR+1aQwzwyzzDHPIsussMoaG2wydmNoD+NMsG9taJsdxtaZxzgTTLHznn3/yX5ZYZU19rKPbXY4wEEmvnA/zDLHPMussMoaG9H8fvNYYZU19mx3dLg+U6ywyhrj24em2ccOYzuoY4JpxoaGJplimlnmWGCRJfayj212OMhYLLSHcSaY2dG6zLPAInvZxzY7HOAgqzu5x5GhDeZ2tQ5LrLHBJmO72TcTTDLNXrbZYT8Hoz6768M0M6Psj3kWWGJmtPtijnkWWGJsjP0yxTSrbLKXfexwgLG458kEk0yxyhqbzI21DtvssJ8DHGRsnPtjgmn27qUfO+znAAdZ3Jf7Oc/+zsEUew6WZ4p97OcAYxPMY5Iplg/xXrLGOhtsMjZRP8aZYIppxg5XxyTTLLDICuuMTTafCSaZYppZ5llkmRVWWWeDTRaO8N6yzCrrbLKPbXY4yPgU+2aKGWaZZ4FFllhlLep3pPMzwyzzLLCXfWyzwwHGpnrOTDDJFNPMsMAiS9H4UfbFHPMssMRY2vqMM8EU04z9zP6YZoZZ5llgkSVWWGWNzajP0fbPAosssco6G8yeZh+ssMoay0uMs84Gmywstz6TBffDDLMssMhSVHe+czHPAkvMrNCPOeZZYvwC7xvb7HCQlZXOxwZ7VrkHVthg7FrrMME0e9nHNjvs5yBja/RjgmmW13pOrLEZ5W+WZ5OJ9Z4HM8wyxzwLLEbzNrifh5yfvexjmx32c4D5h81jHzvs5wAHGd/kvWKadTYZe8RzY5wJppiOxh81zgyzLLDIEhvsZR877OcABxl7zDmYYpqZJ6zPHPMssMQyK6yyxgab0bzN9s02O+znIHNbzGPvc87LNjvs5yBjWz0PxplgkmnmmGf1eTadg/HfWYflV9wDq6yxycxn7pd5FllhlTW2mfncPplngUWWWP5CX9ZYZ4NN9nzlvWCZVdbZZC/72GE/B9jztb7MMsc8S6yyxp5v3DsTTDLFNHMssY9tDnAwqu93f8x8L888S1H+B/v80X2wzQ4HmfnJuZlngUWWWGaVNdbZZHr5sWE9q6yzyfjK0DTLrLLGOpvs2365f5+G9jDOBNPMscwq62ywyX4OcDCaHwutsMoaG2yyONG+JpvHOhtssudKdayxzX7mrtH/2tDCrWKm77DvO/W7O7SXtar93yuOvD80+7m+w94Lnz8zw0OzLLDIEsusssY6m+w5LjTBJMussM4GM9PsgzkWWGKZVdbZYJOZ6foxxzyLLLF3Rmgf2+znAAeZn2l/LDE2yz0wzgSTTDHDHPMssMR+ljPOzSaTJ+jLDLMssMgSy6ywyhrb7LDnJOsxxTKrrLHJ2GzzmWCSKaaZmWP/zDHPIgtzxSyzyhqbjM2zD8aZZIppZphlgUWWovmnms8MS1G8QB/mWWCRJZZZYZV1NthkPwc4yORp9sU0CyyyxEzOfTPPEutssMnY6e6VcSaYZIqxM9QzziRTTLPKWlR/pv5Ms8Aie9nHNjscZPIs6zLNLIvMLJJngUVWWGWNTbbZYXyxvswyzyLrbDB5vvVZZH2FOiYv9D6d/3G4L8ZWfuz39cd+X4cWWGaNdWZWhWaZZ5Gd9Qee85/n+lBoinmW2cd+DkR1G0MrjD2sH+NMMMc8CyyxzCrrbLDJXrbZYT8HmX7EuerWY/0p620Vs8n8r+1j2KHnhL9fQ2tM7hSa2Tk0x+YkdfNC6wvkWVlonNkz9Wd+SWgfOxxg7LzQOBNMMsU0q6yzyVghtIcJpphjniVWWGODgxdYZ8ikcB0WtgmtsMoaE9uHppnYQcwMsyywyBJjw0J7GGeCKWaYZZ4FFllig31ss8OBqN9w/RjbMTTJFNPMjAjNMc8CiyyxwjqbjO3rvEyzyjqbLB0QWmaVdTaZOdD+mGeBJVYP9jwZO9RzYJwJplhhjQ1mJ1mPybn6zdOHGeZYYJEllllhlQ2m5uuzQB+W2Mc2O+xnbKH9McEMc8yzyBIrrLHBak7/M/VngilWWGOD2bOsy2oUn2Mee1l43vP6nfHfW/fKw8LzMMsc8yyyzAob7GWb/RzgIFPXhKaZvdY67FkTGmeCJdbZiOrK6phkmmXW2WDfjaEdxu7Rh0k22cs2Oxxkdp17Y5Gx+5ybyS32x+wXzs8BDrLyTWiNmWnnhfOYY54FFllmhVXWoj4nmM8ie08O7WObHQ6yPEd/Vlljk4nrLw73zyxzzLPMCmvsuSk0zgTTzDDLHPMsReNrQ4ussMY+ttlh5nZ9WWCJ2ff0YR/b7DD2J+dhnAkmmWaGWeaYZ5EllllhlTXW2Yjq2qG9n9kvOxxk+XP1rLLGJnu+cB5mmGWOeRZZZoVV1thgM+r7lb7MMc8Ci6ywxszX5jPPAossMdOvnjnmWYryP8oz89Il4TzmmGeRFdaYec085phnkRXWmPnIPOaYZ5EV1pj5xDzmmGeRFdaY+cw85phnkWVWWGWNPV+FJlhmhVXW2GDme+szxzyLrLDG0pDLwp9TDjC/TWhm+9Ac8yywxMxQdcyzwBKrrLHJPg4wEwvNMs8Ci6yyyZ5hl/keHFpnkwOMDQ+NM8kU08wwxwJLLLPCKmussxn12Ukflpjb2TlZYJEllkdaj3U22GR5V3Wssc4Ge8Y4P1PsZR877OcAe+LmM8X4WDHTzDDLPAsssswKq6yxzgZ72cc2OxxkfJx9MMsCi6ywweRe5jHLIlPj9T/cednLNjscZHyyevZMlWeCaeaO8j4wlxaz+jPvActHy7PGOptM/Vwda2yyl33scIDlX5jPGpuMHed8jDPBJFMss8IaG1F+mvMf7/mxxF72sc0O+znInhn2wzIrrLLGBpvMz/RenCBmkX0cYHwu51mHjchTnYN97LCfAxxkz3znYPY0+2DmDHnmWGCRJdbZYJPlM+2bdTbYx34OcJCxs+yXcSaYZIoVNhhbZB6TTLPMKutsMrbK+owzwSRTLF9rH6yzwfIa46yxzgabzD7kvpndKGbqCX2f05dV1lhnI6rbKs8GY585L5NMMc0BNj73/L6QZ/lL67DOBpvM/ORcLLDI0k/R58LlPg8u93lwuc+D0DQzzDLPXvaxzQ4HGZsW2sM4E0yxwhobjE03n3EmmGI6qpuhH7Mz7ZtFlk5Qx172c4CDzJykH/Msspd97HCAzZMv9+/Vy/071XlZZ5Ox852HcSaYZJpZ5piP4hXOy8w96pljngWWmFmnjnmWGL/Xvhh7R54JJplm7F3nY5wJJplm+T3Pi1XW2GQnGn/fvI/ErLHOJst/Vscam+w7/ArfJ67wfSK0Mjm0xtiU0B7GmWCKZVZYZY0NNqO6I40zOzW0yMwxoTnm2cs+djjA+LX2xyTTjK8xzvZ1+rBctj9WWWOTvU/ZB/s5wMzTzsU8i6wys9U5WWCJPc/bNxPMNPVnngUWWWXmN+qZY54lJn6r/vfqmGeJsc/ti0mmWGeTiS/0ZZY55llmhVXW2GAzmv+V58d+lr42n3U2mei3D+ZZZoVV1tiIxr+VZy/b7HCQiR+twzIrrLLGOpvsGVIKz8sSe9lmP7PblPz7O7TI3u3VMxYL7WGCKVZ3Lfn3XmiTtd3MH2U+40wwyRRzLLHCRtRnjPmssMYG+/bSZx/nYT8HWT7IOVhnk7GkfTPBJNPMHew+WWGNzUP0m6gfE0wyFY0fapxZ5llmhTU2mDncPOZZYJF9HGBP2rqssMHMMc7LPAssscwKq6yxzgYzx+rLPAssscIaG+w57r98v/sv3+9CYzP+y/ck40wwxTSzM//L96fQCmvMnKSOOeZZZJkVVlljgz0r7IcZZpljnkWWWWGVNTYYW2UdxplgitkT/0+4HvOssMaeOaEJ9h3xf8OfL3aYPSo0zwpr7GUf2+xwgLGXQnsYZ4IpZl+2HjO98swxzwpr7PlIX5ZZYZU1Nhj7xHzGmWAqGv9cnmVWWGWNDca+Np9xJphi5gfnZY55FllmhVXW2GDfj54HM4f/t8+T0BzzrLDKGnuODI0zwd5j/tv3tNA2O4xtf2U4n3EmmGY1dqW/y4Zm9gvNMc9SlN9fzNwhYvayzQ77OcBBZibqwzwLLLLE6lTzzjGPeZYYX+a8TDN3vjrmVuh7gb43XhU+J+aYZ4GlaPwm4yzfFVplnc0ofz8fMM4my8+EVlhljXU2mfmVfTDPAkus/sY8Vn+rL5vMvawPS8y87l6YY54Flhh/MzTBXrbZYT8HGf/APKbZ5iDjH6pjmtltrgn3xzzjw0JTzDDLHPPsZZuDTA7XhznmWWKZFVZZY5OZHe2DOeZZYImxEaE9jDPBHPMss8Ia62xEfUbqw/Ku5rHKGpss72acNdbZZHl3dayxyfhe1meamePcD3PMs8TENM/teM+NHQ4yNsv9Mc4Ek0wzxzxjJ5vHBNOMzTHOBJNMs3zA2vCe2GCT/RzgIAsHrfW9OrSHcSaZYpqxg9UxwTR72WaHg9G8CeYxzeohoTX2LDHOMiusssYme9nHNjuMLbUPJphmphCaZY55Flhic4X6leqZZ4ElZlapZ455lqLxHW/2c3yzn+PQzAh5FlhiZmRoljmWWGaT1V3FrO4e2mBuFEeHFllifMzN/h0YmmaZFVZZZ4NN9nMw6hPXhxVWWWODTSbHhqZYHmddNthkz17mMc0Mcyywl31ss8PBqN9467PCKmuss8nYfu6VSaaYZoEl9h5gP+znAAcZSzo340wyxTQLLLLEOpuMTdaPSaaYZoElxo5RzxTTLLD8c/fIKutssMl+DnCQmbl+PphngUWW2GaH/RyM6heoZ26hPEvsOc39MMU0K6yyxib72OYAYzl9mWCSKaaZYZY55llkiQ2WT7dP1thgk+Uz1LHKOhtsMrbI/plkimlmmGWOeRZYYh/7ORDNX2w+8yywxOQb8iwyPrIS7ovxXcWMjan4+5hxJphihjnG4uqZZIpp1lhnk9WxYlbHidk7t+J9rnifK97nivfZfuaFlpg5TZ55lpjJGWeeBZYYP909MM02Bxk7Qz0TTDLN7D63hesyz/IBoRVWWWMv+9hmh4PRvKR57D3EPLbZYezI2/w7+zb/zr7Nv7NDU8wwyxzzLLIU5afaB+NHhabZ5iDjaePMnWd/D9sf40wwzRzzUd0j6phmm4PMDL83PBdzzLPIEmNjQ3sYZ4IpZsfpwzIrrLLGJmPH6csE0+xlmx0ORvXT9D9efzaZOdn+mGOeZVZYZY0NxuaqX6CeVdbYZC/72GaHsdPcK+NMMMU0c8yzmrMuY2/oxzgTTDHDLHPMs8hSVP+OeuaYZ4Elxt+1LtPMvKcPc8yzxJ739WGC1Y+cl7lPzWdsyIZwHhNMMc3YNuqYYJJpZphlngUWGdtOPyaZZplV1tlkbKj5TDDJFNPMMs9e9rHNDgc4yFjMekwwyRTTzLDAIkuMDdOPCSaZ5iBLw7mj/bKfg4yN2ODvHvozwSRT7D3CPbDNDvs5yNjP9GecCSaZjsaPNs40y8eEVlhljXU2o/FjjbPJzPGhORZYYi/b7LCfg4zPtT+WWWWNdTbYZGyee2GcCaai8QXOzexC7wfTOeuyzib7T1d3hjzji9w/08yzyjqbzC12X6w+bJzVTfY9ZKPPiY0+J0IzzLHE8jahFVZZY53NqG7b0F72sc0OM7HQLHPMs8ASMzupY54lZnY2zjxL7BkZmmKGOZbYyzb7Ocj4rup2M84B9oxSxwSzzDHP8mj3yhqbjI/Z6O8V5rGXfexwgLG4+UwwyRTTLLPCOhtsMruX+ztczBzzLLDE+BHWY5lV1lhng032THEOJpli7hjrscIa62ywyV622c8BDjJzrHWYZ4Ello9zLtZYZ5Oxae6FSaaYZmyWOiaYZpudqC5jnLET3B/jTDDJNNscZOZE52aBJfac+FjYlwlWzn08vG/Glof2MMEkUyyvDK2wzgabzF2p71X6Ms4E08yyyMzVoQUW2cs+ttnhIJPX6M8Ms8yzyCprjF1v30wwyRSrbLKfA4zdoA8TTLHMKutssnKjfbHOBss3qWONdTbYZGate2COeRZYYuxW+2ecSaaYZoZZ5lhgkSVW2ct+Vm4zzjobbDJ2u/0xzgSTTDPHCutsRN7hXu9UxyrrbLDJQcbush8mmWKaWZZYZY1Nlu+2D1ZZY51NJqv2ca/7YIJp9rLNwaj+PvVMs+9+9eywn4MsP2C/rLHOBpvM/sr7wRKrrLHOPnbY+xt5ttlhPwcZ+63nwzgTzDDLHPMsRvN+Zx6TTDH2e+swzgSTTDHDHPMssMTKS+6DDeZeNo9Fllh9x32yw+y71mGR8ffcL/vYZoeDLL9vf6yyxsyH1mOOeZai/Edi9rKP/RzgIHN/No/Vj71nzHxifeZYYJEl1lhnZtsnwvnMMc8Ci+xjhwPR/O1CY+NDe5hgihU2WN0ntMnqvqHlg9SzyhrrbLKXfWyzwwHGk6Fp1ieEZg51fhZYYmaSczLHPAssMXake2CcCaaYmaovc8yzwCLLrLDKGnt+pj972cc2O+znALM/51z7YJE9p+nLPrbZYT8HmMnpyzwLLLJ8pvOxyhrrbER1Z4nZu8R+2OEgq0v1Y5OZ8+yPBRZZYi/72GaH/RxkpqAvc8yzwBJjK90z40wwzcy2W/y8bvHzGlpiZjvjzLPE3h23+DtQaIf9HGRuRGiBJdZHhTZZHr3Fvye3+Pek8Sh/uJjxyaFplllljXU2o/GjjLPJcto4a6yzydjPrM8Ek0wxzZ7Z6plgkmk257qfee5tgXtjib2nh/axzX4OMn6G9ZhijnmWWGGNPYv0YYJJZhbrxwJLrAxp+HtKw+d+w99TQgs7hBZZYnZoaJlV1tlkHzuMxRr+Ptrw99GGv4eGVlhljXU2WN5JPaussck2O4ztH9rDOBNMMs0sc8wzc4g88yywxMzh6phngSX2ss1+DnAw6nOkPiyyxF622c8BDjJ3lPOmnZcV1pj5mXrmWWKZFVZZY5Oxo90740wwzRzzrLDKRtTnF6EpVthgk9UZ9sMmqzPl2WTPEvtjgjnmWWaFVdbZYJO97GOb/RzgIGNL3QvLrLDKGhtsMrPM+8sc8yywyAobbDJ2rvtggkmmmGaGWeZZYC/72GaHAxxkT8H6TDDNDLPMMc8SU+erZ5Z5FlhkiVXW2LPC+Zli+gL7vNA+mWadDcZW6sc4E0wxtkod40wyxTTzLLHMCqussXfI0+HzYJsdDrBnu9A4E8wxz/LQ0AprrLPBnpg+TDEz6ml/z9afeZYYG20/TDDN2BjrMM4E08wxH9XF1bFnP/tjHwfYs79xNg4xf6KYPVfqzwSTTLPMKmuss8EmY1fpzzgTTDLN8nX6s8Y6m4yV9WOSaZZZZY11Nthk7Hr9mGCSafayzQ77ORjNv8H7st77whzzLLDE+EPmM80Ce9lmh/0c4CBjG/VlhlnmIx+3Dksss8o6G2yyl232c4CDUZ/f2c/vxWyy8ornxdxr9sca49+6J6aZZY55Zn6QZ54lZnb7VTifOeZZZC/72GaH/Rxgz/rQBJNMscLYBvVMMsU0y4+YxyprrLPBWF1fJphkioXNzsnYFvMYZ5IpppllgUWWGHtDP8aZYIplVlhjg7G39GGCKZZZYZU1Nph5276ZY55Flj/Tj3U2ovznYpa/kWeNdTYY63cOJphkihWWvxWzxjobjH2nLxNMMX/rr8P3mH1ss8MBxu4I7WGcCabYd2do5t7QLHPMs8he9rHNDvs5wOSz1mOGBRZZYuw39s04E0wyxTIrrLHB2NW/CfsxyRR72ccO+znA2DX6MMHsjaEFFtnLPnbYzwFmbwrNs8AiMw+pY55F9rKPbXY4wNiv7Z8JplhhjQ3GfmceE0yxzAprbDD7e/tmMfJlvq7uDTFjb1qXCSaZYi/72M8Bxv6gDxNMMsU0Yx+oZ4Ip9rKPHfZzgIOMfagfk0yx/In7Y50NNpnZZ9q5/7kn5phnkSXG9w1NMM/OIaGZQ/VjjnkWWGLPJP2YYZY55llihTU2GD9cP2aZY54FFlmerC+rrLHJ+BGhaWaYZYFFltjLPrbZ4SDjU+yfsZ+7J8aZYJo5ln/hHKyyxgYzS+ybOeZZYJEV9rKPbfZzgINsLnPOc+3/AvtklTXW2WTsIednnAkmmWZsozommGSasUf1ZZIppplhlnkWWGKZNfaxzQ5jj1mXCeaYZ/pxfVlhlTXW2WT8CfNYYZU11tlkZot9MM8CS+w84z14zjnZZoeDLG+1PmtsMtZ0H0wwzzIrrLLGBmNf68M4E0wzx3wUf+OcLDHT77kzxzxLjB83I6xnjnn2TAtNMcMCiyyxyhpj0/VhnAkmmWLnBPNOMo9JpphmZbZ1WT85tMk+tlk+1zzWWGeD5SEzwzpWWWODTWZ2CM0yxzwLLLFnmP6sssYGyzupY5U1NthkL9vscJA9c0PjTDDFMiusssY6G9H8Bc7PLHPMs8Aiy6ywyhobjJ1uv0wzyzyLbLCPHcbO0IcJJplimgWWWWGVdTbYjOYtsh/2nGM9Vlhjg9llzsPMefLMMc8ie9nHNjvs50DU74hZYR9WWGWNvexjmx0OcJCxo0J7GGeCKaaZT1ufNcZe0IcJJplimmVWWGP9xdDsK6E55qP41dASy6ywFsVviFlng4m37IsZZplngUWWOBjVv22cPd/qzxTLrLDKGhvMfKcv8ywy86Nx5phnkb3sY5sd9nMgmj8yE/bfLTTLHPMsssTM7uqYZ8+Y0ATLrLDKGhtsMhO3D+ZZYJGxw63HOBPMMMsc8yyyxH4OcJDVyfbL8hHOwyprrLMR1U1RxzobbDJ5ZGiKaRZYZImxqc7PBJNMMcMsc8yzFNUdpY55Fhk7xnpMMMkUK6yxwc7P1Y88Kaxnz65ilncLrbDGOhtssry7etZYZ4NNxsZal0mm2Ms+dtjPAcbG6cMkU0wzdqo6xplgipn5oVnmWWSZtSifk7/S+Vlng02Wr1bHOhtssrgmtFAWs75WPXvZx34OcJCZXzkX8yywyBIzv1bPPAssssTkb9wjMyywyBLrv/U8vjWfKQ4w9p06Jpli/Xv3wV72sZ8DHGT5B8+BNdbZYJM9Q+b4Xhua2SY0yzyLjMVCe5hgkilWmBmmH/MssjIitMYGe/bTj33s5wAz++vPPAssRh4yx98TrMsqa6yzwdgC+2GCSaaYZpkVVlljbKF+jDPBJFOssMHyInk2GFusL5NMscLOcaeE93R8aC/72GaHAxxkeXpolTXGZoX2MMEkUyyzwiprrLPBeCY0wyxzzLPAYlQ31zjLrLDKGhMLzWOO+Sh/pvtiH9vsMHaOe2CcCaZYZoVV1lhnI5q3zLxzzWOVNTbYZC/72GaHg8wX9GeFVdaYucB9MM8i+9hmhwOMbZ8N74dJpphmPwfY2CG0PDS0wjobLMeMs8Y6G2wye2TW9x/xVDErR5nPBitpeTaY+nlohlnmWWCRqV+oP0M9c8yzwFIUL9GHsaXulUmmmI7ic6zHLAssssTYMn2ZZIppFlaaz9gq85hkimnGrj43rGOcCSaZZo7Fcmjl9tAqa+xlm4Os3xnaZPkufVhljU3G7rYfplhgrhqaZ+zX6pligUWWGPvMPTDOBFMsf2mfbLL+lZjJfvNYiPxoefjc/xzac/uacB3G7g7tYZwJppitrnHe0BoTG4wzxzzLj6/x9981/v5rPnvZxzY7HOAgy5v1Y5U19rKPbXY4wEH2PO0crP4qNPNb52KOeRZZYZU1Zn5nHvMssMgSE7+3HnPMMzbket/fQuNMMM0c81G8rZglJraT3ym0unNojU3GRlmPCabZOya0j212OMhy3DqsscncCvth7ALnZZwJJplmjnnGLjSPCaaZeSk0yxzzLLLGPrbZ4QATr+nLLHPMs8gyK6yyxkZU94k61thg7FP3xASTTDH+rXFmmWOele/shzXGfzD/h+j9uiE8D/vYs11oimVWWGODsaHmMcEUK6yxwUwsNMsc8ywyvmNomhlmmWeRZVai+hH6s8AiY/vZP+NMMMkUy6ywxjobzB5kHWYPsV/2sThbvCC0zZ6F1mWGWeZZYJGxnPmMM8FUNL7I+ZhmhlnmmGeBRfayj/0c4CBji63LBJNMscAiS6w8dWO4HvvYZocDzD8bWnk+tMY6G4w1Q3uYYIoVVne7yd+fQvOjQiusssZe9rHNDgeYid/k75uhOeZZ3C80tf9N/p0szxKzh5jPPHvZxw4HmDrSPphlgUWW2MvY1Jv8vfEmf2fUj2mWj3JPrLLOBstpdayzwezRzsUKa+z5RWicCWaYZY55FqO66WvDOuaYZ4FFVlhj34zQDnsyoQmWWWGVNTYYO8l8Jphkimn2so8d9nMg6jdbP2aYZY55Flli7/nWYZsdxi60DuNMMMXMSusyxzyLLDG2Sl/GmWCasSNuCesYZ4LZdGiOeVZYY/kleVZZYy/72GaHAxyM6l4xzkSv/TDHPMvvWJ9V1tjLPrbZ4QAHmXjfeswxz8SHxpljPsp/K2aFNfayj212OMDYD54P40wwxXSU/zE0wyxzzLPIMiusssZGVLd9JaxjlbUoHipmH9vsMDMhNMsc8yywFI1PNM74z0ITrB5tXcaOCe1hnAmmmWGWOeYZW6IP40wwxzyrS+2D8XPUs5dtdjjI8jL3yyprrLMZ1a00zl72sc0Oe3Z4KzzXjqEp9owQM8Mc8yywyBKzx8szeap+TDMzX18WWGSJ9QWhDZYXvuXvw6FV1lhng7HTQuNMMs06m8zk7IsFFlli5nTnZY55FllhjZlF5jHHPIussMbklX8M75FpFli5NrSfg6zcGVpljeVH5Vlnk6XH9N8sZpl1Nthk6lfmscgSK19YlzW2o/ir0D622WGiPzTLHPMss8Iqa2ywyfgB3/j7e2hxZH+4/9v+Ge6biTv/6e9ooZ17QtP3hsbuC40zwTKrbLCyNbTGBitD3l3+nzwbjG8TmmCFdTaY2S40yxzzLEXj28uzPFRf1tlgbUfzdgqNjQrtYZwJJplmjiW22c9BxkbrxwSre+k7WV+WWWWdTWZ+Zt/MscAiS2yzn4NMHmtdxn7u/EwwyRTTbLCXfeznAAcZ+4X+TDLF/AznZ4VV1lhnk73sY5sdDkTzZ9rHLM+DCaZZZpV1Nthk7Hx9mGCadTaYXOG5scwKUxd4jqwzeaFx9hy3YcV/1mODlbt/9R9P2OeFi/+fJ3I2T+YcLuFSnsvlnLBv6CQu5sW8hJfyMl7OK/cPvYrXcA3v4Trey/t4Px/gem7gRm7i8INCR3Ac9+CeXMKlPIfLuJyX8FJeyat4Na/hGl7HW3kbb+cdvIt381E+xsf5BLfwSZ6Y9Hw5hyt488Huiw9zEx/lY3yCm7mF7/Bdvs8P+CFvmxB6J+/iOt7PB3jjktC1vIWv8FW+zb/xn/wXbz3H+rydd/AuPs1nuZV3LlPHe7iO9/F+PsDTzw09k4u4mGfzdb7FP/ITfsr/4YjzQsdyHPfgnhzPaTye0zmDMzmX83gq5/M0LuUyvs43+Bbf5h/5Dt/lB/yQf+Xf+A/+k//iqELofjyI+wx/8T8ewAN5EO8dGTpk99BtuC234w4cypHclbtzNPflOt7Hx/gEt3DIKOtzW27HXbkbd+cEHsKJPIfLeCWv4jVcww3cP64fJ/IwHsdpPJ7TOYsreAEv5MX8JS/lFTxhbOiJPImzOYfb7OF+uAPHcU+O51/5N/6D/+LwPUN35AjuwrHci+O5N/fj/pzMIziFU3kUj+M0Hs/pnMUTeBJn8xReyke5mVv4JO88MPRuPsVn+Cyf41Y+zxMPtz4nT3FOTuFUXsmreA2v5Rrew3W8l/fxAa7nBm7kJh53lPvk8ZzOGZzJeVzCpVzG5Xydb/BN/oFv8W1+xx/4E09Muz/O4YrIn4XedkzoXbyH63gf7+cDfJBP81lu5ZXHeh68hmt4D9fxPj7ADdzITVx0fOjZPJ8reAFXchUv4rf8nj/yJ/4vd53hc5Yv8EW+wlf5Ot/gW3ybf+Tf+C+OnGk9juJojuU47sXx3H6WzyUezAk8hIdyEg/jEi7lOTyXy3keV3IVL+PlXJsJvZm38E7exadO9v7wGT7LrbxqjveH93Ad7+cDXM8N3MiHuYmP8DluM9d9cgfuxKk8nyt4IVdyFbed5/cGh3IYh3NHjuBO3IX7cF/uxwN4IA/iBB7KSZzJE3giZ/NkzuHFvJSX8XJewfXcwIe5iY9wM7fwyPl+P/GAhfJnyvMe3sv7+QAf5Ho+xI18mI9w2FnunTtxFx7MQ3goJ/EwXs8beRPX8mbewhcWhb7EV/gqX+M7/IAf8k/8lt/xe/7In/i/fH7Iy+HvkW1D/8A/8y/8mCu2Cz1u+9DjOYOzeDrP5FlcxLO5hOdwGc/lcp7HYTuEDueOHMGxHMc9uCfH8wSexNk8mafwfK7gBbyQF/ES/pKX8kpexat5DdfwOt7K23g77+BdvJuP8jE+zie4hU9G5x4aeiJP4mzO4amcz9N5Bs/kWVzMs3klr+LVvIbX8jpezxt4I2/iLfyMn/MLfsm/8m/8O/8R7StmP7yW1/Fe3scH+RD3GRa6L/fjATyQB/FgTuChnMTDuJTLeD4v4IVcyYt4MS/hpbyc3/FH/sQrh3s+vJrXcg2v41rezDt5F4ft6OeSO3IEd+E4juc+3I8H8CDO5amcz9N4Os/kWTyb53MFV3IVL+JX/Jo/8iduOyJ0Ow7jjhzBXXgEp/AozuU8zudCns4zeBYXcTHP5pW8ilfzWq7hdVzLm3kXn+LTfJbPcSsP2Nl7znGjveecwImcxFt5G2/nHbyLd/MhbuSjfIyP8wk+ye33sh9O4KGcxMN4OCfzCB7JqTyKM3kqT+cZPJNncTEv4+V8ju/wXb7PD/kZP+cX/JJf8xv+lX/jP/gvbj8+dAcO5ViO4x7ck+N5MCdwIg/lJB7GyZzCIzmV1/NGruXNvIW38S6u5wY+xI18hE/xaT7L57iVwyf4OeY47sklXMpzuIzLeTEv4S95Ka/nDbyRN/FmruN9PH+izzFewAu5khdx7KHOwT24J8dzAifyHq7jvbyPD/AxPsHTJ/k54Jk8i4t5Ifc52u9R7sf9eTAn8BBO5KE8jIdzMo/gFE7lNjP8HHAHDuNw7sSdOZlHcip/4qMz3Qs3cwuf5FZeNcvnM9dzAzfyYW7iI/yEn3JdJvR+PsCn+DSf41YOW+Dc3JE7cWfuwpHclaM4mmO4F8dzLudxPhdwIdfzYW7iI3yKz/A5buXzfJcf8c/8Cz/mJ/yUn/FzfsEv+Q23HfJK+B5xKPfg3tyH+/EAHsQreRWv4Rqu5wZu5MPcxEf4Ht/nn/gX/p3/5rBtQnfkCO7EnbkL9+G+3I8H8Spex1t5O+/gnbyLd/MhbuJTfJrP8Fk+x63cdvvQ7TiMw7kjR3AX7sN9eQAP5EE8lJN4BI/kiZzNOZzLUzmfp3EFb+VtvJ138i6O3CF0V+7OURzN5fwlL+UVvJJX8Wpew+v4GLfwKT7N57iV2w7188EdOJR7cW8ezEN4KCfxMK7lLXyUj3Mzt/BJPsWn+Ry3cljMe8IdOYI7cRcezAk8hIdyEg/jlbyK13AN7+E63scN3MiHuYnPc5th3nvuwHEcz325P0/nGTyTZ3ERF/NevsG3+R1/4I/8if/LacNDp/MEnsTZPJlzeApP5XweMMLPJ4/kUbyW1/FO3sX1fIgP8xHutlPoGJ7AEzmbJ3MOz+L5XMELeCFX8Vbexjt4Fx/l49zMJ/kUn+azfI5b+Qb/wHf4Ht/nB/wT/85/c/ud/TxzFEdzPx7Eq3gN1/B63sibuJY38xbew3W8jw/wUT7OJ/gkb93HPfN23sG7eS8f5MN8hEP29XPHbbk9d+BQ7sbRHMODOYGH8FBO4mE8nJM5hVN5FM/jZbyc1/NG3sS1vJm38Fbeybt5D9fxPt7PB/goH+cT3Mwn+TSf4XPcyuc59gCfa9yTe3E89+bxnMlZXMKlXMZzuZzn8WL+kpfyMl7BP/ILfsmv+DW/4Xf8kT/xpAN9vvAUzuWpnM8FPI2n8wwu4mIu4TlcxnO5nOfxAl7Ei3kJf8nLeDmPTPp85SN8jlt5/sHW4YVcyYu4zUQ/XxzGnbgzd+FI7sbdOYpjeCSn8lyex8t4Ba/mtbyOt/I23sm7eDfXcwMf4sPcxEe4mTse6nsJd+LO3IXzuIALeTrP4FlcxMU8m0OOc+/clttxe+7K3bg7R3EMD+YEHsKJPJSP8XFu5hY+ydOnOQ/P5FlcxMUcdrzvedyRO3Fn7sLDOZlHcAqnchHP5vW8kWt5M2/hPbyX9/MBPsj13MCHuJGb+Cgf5xPczC18kk/zWb7IV/k5v+TXHDvd5zD35F4cz715PW/kWt7MW3jcDJ/bnM4ZnMUTOZtzuIRLeS6X83yu4IVcyVW8iN/ye/7AH/kT/5dzZ/p85nwu4EKextN5Bs/kIi7m2Vwyy/l4LpfzfK7gSq7irbyNt/MO3sN1vJf38UEOz/j55miO4UGcwEM5icdzFk/kbM7lPM7nAi7kaVzEJVzKc3gul/M8ns8VXMlVvIhreStv5528i3dzPTfwIW7kI3yUj3Mzn+Rxc/27idM5gzM5l6dyPhfwNC7mEi7lOVzGc7mcv+RlvILX8wau5c28hbfxTt7Fe3kf7+cLfIWv8jV+wG/5PX/kT/xfnj7PzxcX8WwOm+/3AHfmLhzJXbkbd+do7sXx3JszuIIruYoXcTO3cMgCv3+5LbfnDhzKYRzOHTmCozmW47gH9+R4HsJDeRgncwqP5FQexeM5k7N4MudwLufxVC7gQp7GS/hLXsrreSPX8mbewlt5G2/nHbyLD3EjH+YjfJSP8wk+yaf4NJ/hc9zK5/kVv+Y3/Dv/zZELvY/cjbtzFEdzLPfgntyL47k3T+CJPJlzeAoXcTHP5pW8ilfzGq7hbbyDD/PwnO9bPJJTeRQPXuL3DA/hRB7Kw7iES7mM53I5j1/qfeVsnsmzuIhn83yu4IVcyVWcfI7zcQqn8gSexNk8madwCZfyHC7juTyPK3gBV/Eivs43+Qe+xbf5R37L7/kDf+RP/F9us8znGLfj9hzKsRzHPTme+3A/HsCDeAgn8nhO5yyexF/y0mhfy+2LO3Aod+Vu3J2jOJoHcwIP5SQexot5CX/JS3k5r+B6buBD3MhNfCTax/nuhRN5KCfxMM7jqZzPhTyNF/MSXsrLeDmv4At8ia/wNb7Bt/kXfsxP+D/8jJ/zC37Fr/kNv+NPPG6F71c8ntM5gzM5l6dyPhdwIU/j6TyDZ/IsLuJiXsxf8lJexst5Bbe/wOc69+P+PIAH8iCeyJM5h0t5Fa/m9byBa3kz1/MhPsxNfISP8jE+zif4JJ/ic9zK5/kKX+MH/JBfRPdyoc8P7s19uB/35wE8iAt4GpfwXC7nefwlL+OQIa+Gn3fcjttzKPfjQXyJr0V124TuzlEczbEcxz24J/fmATyI6/kQN/JhPsJH+Rgf5xPcwid5wnahJ3I2T+YcLuf5XMELeCFXchW3HepeOJZ7cC/uzet5I9fyZt7Ce3gv7+cDfJBDYp4jd+BQ7sZRHM0x3IN7cm8ezEN4KA/jlbyKV/MaruF1XM8NfIgPcxMf4aN8jI/zCW7mFg4fFrozR3JX7sbdOZpjOIGTuIAX85e8jJfzCl7PG3kT1/IWPsrHuZlb+GS03+GeG8fwIB7H4zmdMziLczmPC7iQp/NMnsVFPJvncBmv5w28kTdxLW/h43ySw3cMfYNv81t+xx/4I3/icSNCp3E6Z3Aml3Apl/FcLucJO/mc4Ek8mXN4Ck8YqY4ncw5P4W27ht7OO3gXN/AhbuTD3MQhu/u84fYcypHclaM4mntxH+7HA3gQb+PtvJN38W7ez4e4kQ/zEW4zyu8bjuU47sm9OJ4TeAgnchLf5Yf8G//BA0aHHshpnM6ZXMohY+yX23I7DuNO3IWjOIZ7cTwP5xE8klN5FNdwAzfyYW7iI3yUj/MJbuaTfIrP8Dlu5fPR+eJ+LjmCO3Fn7sKx3IN7cTz35jTO4EzO4lwu4EKexvN5AVfyIt461nvLO3gXd9zDebgTd+FI7srdOIqjOYYH8xAeysN4Ja/i1byG1/I6rucGPsSHuYmPcjOf5Bf8kl/xG/6Vf+M/+E/+i2P39HPJPbkXx3NvzuWpXMDTeDF/yUt5GS/nFVzHe3kf7+cDfJAz9vIe8QSeyJM4m3O4hOfwXJ7H87mCF3IVb+VtvIN38i7ezXu4jvfzAT7Id/gu3+MH/JB/4vf8kf/Lift5LzmJh/FNvsU/8jN+wS/5Fb/h9zxufz/fPJ4zOJOzeDbP5wVcyVW8iMcdoi+ncwZnchZXchVf5xt8k3/gW/wjT5jo/eFJnM05PIVvHOF9muI94nKexyFH+r3Cbbkdd+BQjuSu3I27czQP4UQex2k8ntM5k7N4AS/kRfwlL+VTfJrP8Fk+x628b6pzH+W83I7bcyjHcg/uyb04nntzPx7EIWn3y225HbfnUA7jcO7IEdyFh/MITuFRfPkY7xnf4Jv8A//IP/NTzjnW+8OlPJfLeR5X8EKu5JCfOz+35XYcyh25C0dyV+7G3TmaG7iJX/Eb/pP/4r956y98j+QdvJvPcZfjPVcu50qu4mY+yZHT7Zu7cxRHcwz34EE8kbO540m+H3Bn7sLLeAWv541cy1s4a7Z/V/FsnsvzOGyB95E7cgR34s7clwfwQL7K1/kG/8C3+DY/4+f8kl/xaw5Z6P3i9tyBQ3k4J/NITuW2Z3gvOYzDuSNHcGfuwpHclbtxd47hwZzAiZzEwxfZJ4/gFB7JqXyKT/MZPsvnuJXbLPa5xnHck+N5A2/kTVzH+3j1et8beR3v5YNcz4f4MB/hjRu8n7ydYx+2T+7BvTiee/MEnsw5PIWncxEX82w+ysf4ODdzC5/kZ/yKX/Mbfsfv+QP/yr/x7/wH/8V/c9omvzc5nTM4k7O4lOdwGc/lcp7HIXXvB7fjLhzPwzmZR3AKj+RRfIrP8Fk+z6GbPWeO4x7ck+O5Nw/nZB7BKZzKoziXp3I+X+GrfIfv8j2+zw/4J/6Zf+HH/B9+zx/5v/wr/8a/85/8F//Nq7b4dzjv4Trey/v4AB/ko3ycT3Azn+SYrzwH7skjeBSv5428ibfwSb7Dd/ke3+eH/Iyf8wt+ya/4Db/ld/yeP/BH/i//xn9x5Nc+p7k7x3A9N/AhbuQmPsNnuc03fv9wJ+7MkdyNu3MUR3MM9+G+3J8H8EAezsk8glN4JI/itVzDR/k4N3MLn+TTfIbPcWt0vn6/B7kbd+cojuEe3JtzeSrn8zRu4EPcyE18hNf+5Hy8k3dzPTfwIW7ko3ycm7mFT/IpPsNnef6818LvxbyAF3IlL+IJp4aexNk8hedwn/mh+3F/HsCDeAgn8jDO5TyeyvlcwNN4Js/i2Rx5euhu3J2jOIZ7cE/uzRf4Il/iy3yFr/FN/oF/5PozQh/iRj7Cx3n1maHX8Sk+w2f5PG8/K3SnK0N35kiO4miO4RKey+U8jxfzMl7OK7ieD3MTH+Fz3MrnecA13o9rQ/flfjyAB/IgHs4jeCSn8iievMb7w3k8lQu4kKfxet7ItbyZt/AeruO9vJ8P8EG+fn3oW/wjP+Kf+Rd+zE/4P1xyg58vLuN5vIAX8iJedWPoNbyb93Ad7+cDfJSP8XE+wc3cwqf4DJ/jVj7Pt/g23+EH/JB/4u03hd7BO3kX7+G9vI8Pcvt1oUM5krtxd47iaI7hPtyPB/BAHsRH+Tg3cwuf5LAHQodzR+7EnbkLx3IP7sXx3JubuYVP8Tlu5fMc8rD74VDuw/24Pw/ggTyIkzmV22wK3Y47cBh35AjuxJ25C8dxPPfl/jyQB/MQTuShnMTDuNej7o1X8mpeyzW8jo9yM7fwSZ78mN+DPJ1nchEX82wO2ezeuD134FAO43DuyBHciTtzFEdzHPfgnjyO03g8Z3AmZ3EBF/I0ns8LuJKreBFv4Ho+xIf5CJ/jVr7Gz/gFv+LX/Ib7veB94UE8hHN5KufzNJ7Jszn2RffIPbgn9+LePIJTeBQffcnnKh/nE9zMJ/kSP+Kf+Rd+zE/4P/w7/8F/88qXve+8htfyOt7Im3gLz3/Lc+aFXMmLeNzb3idO5yyexIt5CX/JS3kZr+Cu73ivOZlT+RA38ik+zWf4LJ/nNu/6ueM4jufBnMBDOJGTeBi3eU8/DuNw7sSduQf35N7cl/vzQB7EuZzHBVzI03kGz+IiLuaf+Ff+nf/kv7nN+6HbcnvuwKEcxuHckSO4E3fmWI7jHtyTe3FvbveB3+fclbtxd+7LA3kwJ3AiD+UkHsb13MCHuJGb+Ainfei953TO5TyeyvlcyNN4+keeG8/kWVzMF/kyv+P3/IHb/sW9cShP4Ik8ibN5KufzdJ7BM3kWz+Zn/Jxf8Et+wz0+9py5N4/gtMN7w3V5Bs/kWVzMs3kez+cKXsALuZKreDF/yUt5GS/nFXyLb/OTaJ3J+vMinnBE6Ik8mXN4Cs/iIi7m2VzPDXyYm/gIN/MFvsiX+DJf5Wt8h+/yfX7Iz/g5v+LX/Ibf8wfeOiX0Nt7BO3kX7+E63sv7+QAf5FN8ms/yOT7PE45075zDUzj8qNARPJ7TOYsncTZP4S95Kd/hu3yfH/BDfsbP+QW/5Ff8mn/jP7h9OnQoD+VhPI7HczpncCZn8Rwu40qu4iV8js9z/THeSz7EjXyYm/g0n+U9x3rOfIAPcsk2r//HpVzGc7mc53G3YaFX8Vqu4fW8gWt5Mx/lY3ycT3Azn+RTfJpb+QJf5Et8ma/xHb7LD/ghP+Kf+TE/4af8H/6Vf+Pf+Q/+O7qX4aHX8XreyJu4ljfzFt7DdbyPD/AhPsIn+BSf5nPcypE7eo4cxTHcxOtHeI68kTdxLW/h/XyAT/MZPsvTZ4WewbM4bNib4fca7sSduQtHcleO4miO4V4cz8t4BU8YHnoiT+LJnMNTeDrP4JlcxMU8m1fyKl7LNXxurPOMC92NoziG+3Bf7scDeCAP4pW8mtfwWl7H88eHruBKruJFvPJ45+DVvIbX8jq+wBf5El/ma/w7/8HbpofewXt4L+/j/XyQx80KncbpnMkzuJhLuYzLeWLGc+cKXshVvHqu8/IeruO9vI/380G+yff4Pj/in/kXfsxP+T/ROvNCtzs1dBiHc0eO4C4cyV25G3fncZzG4zmds3gKP+Gn/B+um2+fvI9XLvA+8Vqu4XVcy5v5Al/kK3yVr/ENvsW3OXKhc3M37s7R3MCNfJrP8Fk+dlroZm7h09zKF/kKX+XrfIN/4Ft8m//kv3hrzs8L7+RdfHOR94of8c/8Cz/m//DiW0Mv4S95KS/n63yDb/Itvs0/8l1+wA/5CT/l5/yCX/Jr/pV/4z/4Lx53m/eWMziTJ/BEzubJnMNTuIRLeS6X85XbQ7/ld/yBP/In/i//yr/xn/wX/82r7vB5w2u4hrfxHq7jfbyfD/BBbuDD3MRH+BSf4XPcyuf5wp0+3/kyX+O7fJ8j7/bzx924O0dxDN/hu3yP7/NP/Av/h3/nv3lNNfR63sibeAtv45B7Qrfh9tyBQzmMw7kjR3BnjuU47sE9OZ5783BO5hQeyak8io/xCb7ON/gm/8C3+DY/5JXrvG+8htfyOt7D+/kg13MDH+LD3MRH+Cgf42Zu4ZNc8oCfQ57L5VzJVRz5lPeMu3EUR3MMx3Ic9+J47s3TeQbP4iIu5tn8jJ/zK37Nb/gjhzztveO23I5DeQgncinP4TJezEv4S17Ky3kFb+Ba3sz13MCNfJib+Ai3fyb0YB7KSTyMR3Iql3Apz+VynsfzuYIruYqnP+s5cREX82yu5wY+zE18hI/yMW7mFp74K79PeBbf4B/4Ng//rZ9vHsEpPIpLuJTncBnP5Xlczw18iBu5iY9wyAfeN27HHTie+3Bf7s8DeCAP5gQewomcxMN4HKdxBmdyFk/kyZzDuTyVC7iQp/Ezfs4v+RW/5o/8Xw770Oc6R/BgTuChnMTjOI0zOJOzeDrP4Jk8i4t5Ni/mJbyUl/FyXsGxf/K5xr04nntzPTfwYW7iC3yRL/MVvso/81OObPsc5m7cnaM4mlfyKl7Da7mG13EdH+AGbuSETzwXLuTpPIOLuJgX8xJeyst4Oa/gS3yZ7/I9vs95n4bO50Jewkt5ObcZ+Vb488h9uC/35wE8kAdxPTfwIW7kIxyya+g23JbbcXvuwHHci+N5D9fxXt7H43cLncVFPJ8ruJKreBHf4wf8E7/i1/yGf+Xf+U/+i//mibuHzubJPIXn8wJeyJVcxYs4fFToCF7MS/hLXsrL+Tf+g//iCaPtkydxNufwDI4cG7ord+doTuYUTuWjfIyP8wlu5haOGxd6MCdwIidx2OHuhSO4M1/gi3yZr/BVfsQ/82N+ys/4Ob/gl/yKX3Pa5NDpPJ1n8EyexUVczPO5ghfwQq7iTke5J07gRE7iCTyRJ3MOT+ECLuSZPIs3cC1v5i28h/fyPt7PB7meD3EjH+YjfJSP8wlu5pN8gS/yJb7M1/gO3+X7/IAf8lt+x+/5A//Of3BuOnQe53MhL+GlvJzX8wbeyJt4C+/gPsf6nOZ+3J8HcjKn8Epexat5Da/lGt7GDdzITRx1YugYTpsdOoMzeTIv585zvK+cwIk8lJN4HGdwJpfwHC7jebyc1/FBPsK5p3penM8FXMiLeQkv5eV8kS/zhPl+zngSZ/NkzuGEM52Xb/Btfsvv+AN/5E/c+Sz3ygmcyEM5iXM5j/O5gAu523rvD6/itVzD6/g4N/NJPs2tXLfB5wMf5FN8hs/yOT7P7R4O3ZG78DhO4/Gczlk8iadwHhdwIU/nIi7m2byEl3IL/8l9N/kexQN5BI/kUZzJJVzKZVzO83kBV3IVL+LYzaF7cE/uxb15OI/gFB7Jo3gVr+a1XMPbeAfv5j28l/fzQa7nBj7E/48GP43JMgsXRG2c2AhKHNkKSJxbRY2C0r337pMoKK2ihkHYCkoUlFZQoqB+w/nDJO18VISjDEZBPQhqFJQ+Q3dSjm1ZpZ9T2Q5VxqHKdipjjb+/pJ/LX1fgfYa17nXf91rv28bT/IZXeJXXeJO3+C2/4/e8w7v8ke/5gR/5hb/zD/7Jv7nrnPW+4rzMWZzNJA68qm45mfGcxlRms4gh15yv2Yd92Y9hDOcARnIUxzGDWVzOXOYxn6Ovy3eO5wRO5FRWsIo13MFatrKNF9nNS+xh2A3nQYYzgiM5kZnMYSOrb8ln1vEqb/IRf+Dv/IMh3/vew77sx1AO43BO4mRO4VRO43Qu5npuYDFLuJGbWMFKVrGaNazlbu7nRXaxm+F35BcncSqncTrTmcks5nMX97GZx9jrnvVnf0ZwAAdyEidzCuM5jXOYzHmcz1SmcxmzmcPVLGAhi76+5773MIWpTGcGs5jNkJfiwD7sx3BGcAAHMpIjOYqTOJlTGM/pnMUkprKGx9nKNp7mBV7kZf7Mea88l8tYwCLu5X42sZktPMbBP6s7zmEy53E+U7mSG1nKLdzKbdzOMzzHS+zhbX7Pu7zH+3zEH/iET/mMz/kjf+JLvuYb/sxf+JYf+Jlhv6gzhnMABzKSc5jMeZzPVK5gLvO5kZtYyr3cx/1sZBOPsfid57GUV3iVN3iTt/gtv+P3vMO7fMKnfMbn/JEvOPm9+mI8p3MBFzGNi7mES7maa1jAQlZ81O9ZzRrW8gAPso6HWc8GtvI0oyruBM/lBV7kJV5mVGXgaI7nBCYwiQd4kIdYx3oe5wm2so3t7GAnz/I8L7KbfXcE9mMoh3E4ozid67mBG7mJB2rNi4dYx5Cdgb3Zl6EMZwQHcTCHcThHMoaxHM2xHM+JXMQ0buYWbuU2HuAhHmY9G3iER9nMFrbzDDvYybM8z294nTd4k3f4iI/5hb/xd/7Bv/g3w3aJPyM4gAMZyYVcxDSuYB6H7AkcyiiO5wQe5wme5Cme5lme5wV2sZuXeJk97L03MJqjGMfRHMNxHM8JnMTJjOdUTuN0zmACE5nElVzFfK7nBhazhBtZyqu8yXu8z0f8gY/5I1/xZ/7CT/yVX/gbf+cf/JN/M2RfYC/2YV/2YyiPs5VtPMlTPM0OdnLyUevAVGazb7v3MoqTOIVTOY3TOYuzmcTVLOBaFnErt3E7j/MkT/E0L7CLl3iZPQw5I87szb7sx1CO4EhGM4axjONojuFYjuN4TuAkTuFUTuN0zuBMJjCRs5jEZKYwleUc0KFvMZLDOJyxHMWZTORszuN8pnJkp3gxk1kcfVZcOIETOYuzueCc/srFXMKlTGcGM7mM2czhSu7liG+Mn9GM4ShOZjx3chd3cw/3ce4V68MNLGYJe1+VnwxlNOM4mmM5nhM4kRnM5ha+4Ht+4e/8g3/yb6Zf81xmchmzmcOKm4GVrGYNd/AQ63iER9nIJrbwAi/xMgf9N+ckDuVwzmQiZ7OSR9nEFrbzDDvYybM8xxm3vY8JTORsJrH/d84bLOQWlnMnd3E393Af9/MIj7KRTWxhyD15yD4MZRj7M5wRjORgDuFwRnEOk5nCeUzlWq5jETdzC8tYzgM8yDoeZj0v8CK72M1LvMxveIVXeY3XeZO3eJvf8S5f8hV/5i98y09f431fP2ckh3A4R3AkYzmK0zmDM5nIWZzNJM7hXCYzhfO5nCuYx5VcxXxuYDFLWMEq1nAHa7mbe3iY9TzKJrazg2d5noMfiCfHchwncDKnMJ5TOY3TmcoFXMjFXML13MBilnAjN/EbXuFVXuN13uBdvuQrvuHP/IVv+Y4f+Im/8jP/YsRD+xXHcDwncCLnMJkpnMdUpjODmcxiNnO4mgUs5FoWcQvLuY2nv477kfFyBmdxNpO4gZtYyWoe4mE28Chb+ICP+Jibf9D/uJXbuJ0VrGINd7CWB3iQh1nPkP9uf2Af9mU/hnI4RzCaMYzlKE7iZMZzKqdxOudxPku5mVtYxq3cxu2c8UQfZAITOZtJXMYcbmYZy7mV27idO7mLu7mHe7mfj/mSr/kzf+Fb/sm/+DeHPbUuXM5c5nEl81nBSlaxmjWsZSs72Mndz+QZD/Iw69nAo2ziBXaxm5fYw9t8wqd8zp848Lm842TGcxqLuJll3Mpt3M4FP/o9iIu5hEt5h+/4nh/4ib/yMzf/JL9ZxnJu5Tb2fq1e2ZehDGN/hjOCkRzEwRzKYRzO0RzL8ZzAiZzDuZzH+VzAhUzjYi7hUqYzk1nMYT5Xcw0LuZbrWMRKHmEjm9jMY2znGXawk+fYxW7+yBd8xw/8xF/5mb3eWF9O5hTGM50ZzOQyZjOHy7mCK7mKq7mGBSzkOu5jO8+wk+cY9j/kIcMZwYGM5AiOZDRjOIpxXM9ilrCUZSxnJat5iHVs5xl2sJPnOPeD8wznM4Mn+T3v8B3f8wM/8lfu/Ki/cg/3cj9bWBl1N9j/eZQtPM4TbGUbT/IUL7CLl9jDin8MrGQVa7iDtTzCRjaxmcdYMdbzWM0a7mAt23mGZ3mO53mL3/I7fs87vMt7fMQf+JghEwN7sQ/7sh9D2Z8DOYMzOYuzOYdzOY/zuYALuZhLuJTL+IAP+YRP+ZyD/03gMA5nFEdwJGMYy1Gs5QEe4mHWs4HH2cqTPMXTHDTDODmMwxnFERzJGMZyFON4ktd5g7/xLx6Zqb7YzBYuTLAOXM8NLOFGbuL4xMCJnMEEzuJsJvEkT/MSL7OHc2YFJjOFqVzEStZwB3dyF/dyHy/zHu/zIR/xBz7mnNnynMlM4TymcjlzuZKrmM8CFvEAD7KOh1nPBiYlyUu28iRP8TQv8CIv8TJ72P5v9St2sJNneZ5h/6x/MJwDOJCRXMsybuV27uRu7uFe7uN+vuUX/sm/+Dfn/HvryBTO43ymcgVXMZ+3eJvf8w7vclBF4BAOYxQTeJwneJKneJqxlfoBp3Aqp7ODnTzLczzPyVWB03iHr/gL3/E9P/ITf2VGdWAWs1nOOTXqhymcx1SuZgHXch2L+A2v8Dpv8Caf8Tlf8B3f8wM/8Vd+5oId+hDTuJSbGLtT/2Ycy7iN27mbe7mf7ezgWZ7jeS7fLV+Zx1X8lrf5HUccsP8wmrEcxTgu4GIu4VKuYC7zuJL5XM9ilnAjN7GU93ifD/mIPzDqkH2dB3iIdTzMejbwOE/wJE+xV53zE/sxjP05gAMZyRmcyUTO4mxu5Xbu4V7u5xE2spktPMbjbGUbT7OD5zn4sPMKR3AkYxjLUfyGV3iV13idN3iL3/J73uFd/sa/eLzeOrGVJ3mKp9nOM+zkWZ7jeV7gJV5mD6MaAidxMqcwnlM5jbOYxOXM5UquYj5LeZwneJKneJ03eIvf8ja/5x3e5U98x/f8yE/8lZ8Z8r8H9mYf9mU/hrI/B3IEoxnLUYzjaI7lOI7nBE7kJE5mPKdyGjOYxWxuZhm3chu38zDr2cKwRvNlOCM4kIM4mEM4jMMZxREcyWjGcBSncCqncw6TmcqVzGcZy1nBSlazhjt4hEfZyCY2s4Xf8Cqv8wZv8h4f8CEf8Qc+5jN+4meGNVkXDuBARnIkoxnDWMZxDpOZwnmcz1RmchmzuZ7FLOFGbmIpR7cEjuFYjuMUxnM6Z3AmE5jIdGYwk1nMZg4HtIobd3Mv9/MAD7GOh1nPBrawg2e5rM37WcbtXHpaf2Uu87iSq5jPjSzlFV7nDX7PO7zH+3zAh3zMF/zC3/gn/+LfHNShL3AIh3I4RzCaMYxjBStZxWruYC1P8CRP8yqf8Bl/5At+4e/8k3/xbw7sNH5GM5ajGMcCbuYWlnErt3E7d3I393Av93E/K8+KE6u5g7U8zhNs40me4gV2sZuX2MMD53z/Zx0Ps54NPMpmtvAYN3TpG1x/1f9ZzBJuZCkXfOv7DtO4mEu5hgUs5FoWsZilXHDb87mYS7iUI+/ZzzmZUxjPaVzAhVzExVzCpUxnBjO5jNnMYS7zuJKreI23+R1f8hV/5i98y/dfx3XfuJjFbK7mGq7lOhZxPTewmCXcyE0s55YH6ovbuJ0XeJFd7OYlXmbIQ+dD9mU/hjKM/RnOCEZyMIdyGIdzEidzKqdxOpM5j6lcwIVcxDQu4QrmMo+rmM/VLOBaFnEDS7iJNdzBAzzIQ6xjA4/zBFvZxtO8wIu8xMtMeKQPsYHHeZKneYFd7GYPQ3/Q1zmDM5nARM5iEtvZwU6e5Tme55zHfvdjMlM4j6lcwwKu4y7u5T6e4Cle43Xe4CM+4VM+54/8iS/4ju/5gZ/4Kz8z/L+rF45kDOdxPtOZySzmcDlzmcd8buFWbuMu7uGyJ/oXl3MFc5nHfK7mGhawkGu5juV8yvf8lQufqmOu4Tqu5waWcCM3sZTpz/RpLmM2N/Iqr/MGb/I2n/Apn/E5f+QLrn+ur7OEG7mJpbzILnbzEi+z4kfnIFazhjtYy2Ye4wVeZBe7eYk9HP2T7zEczwmcyBmcyQTO4mwmcT8b2czjbGUbT/I0O9j3Z/sVZ3AmZ3E2d3Efz7CT59j+i895lud44JN+zzoeZj0v8CK7eZmDf7VfcjjbeYYd7ORZnuPgQf+/YH/kQi7iYi7hUlawklWs5g4e5CHW8QzP8Qf+xJGDA2M5ijM5mwlDA5M4h3OZzHmcz1SuZzFLuJGbWMot3MbT7OIlXmbP1+cN8zyu/cfAAyPEiYdZz5DowN7sy34M5VRO43QuZQYzmcU1LGQpt7KCVazhDtbyGM/yPJ/wKZ/zR/7EV3zDOTHWjymcx/lM5XLmMo8rmc9Szh3leZzPhVzMJdzGsOTAcA7gQEZyLbdyO/dyH/fzCJvZwmP8k39zeUrgCuZyJVcxn6fmqTue5Tne4re8ze94h+/4nh/5ib/yM//kX6yYr2+wmjXcwVrOSbVOnM9ULmM2c7ieG7mJpaxhO8/yHM/zAi/yEi+zhz+zMt08uJO7uId7uY/7eSBDP+Bh1vMIj7KJzWzhMfbKCezDERzJGI7ifT7iD3zCp3zOH/kTX/ALf+Mf/IvT/jUwnRnMYja3cCu3cfDKwOEcwZGM5Sge5gV28RJ7eIPf8nve4Uu+4hv+zF/4lo2rrAeP8wTbeJKneJoX2MVuXuJl9nDiusAZnMXZTOKaEn2K67ieG1jCjdzEUoZtDOzPARzISBawiJu5hWXcym3cznZ28CzP8TyXbtIfuYK5zOMq5rOM5dzOlCH3gvxkJrO4k7u4m3u4j0fZyCa+5Cu+5hu+5a1hgd/yNr/jXT7lc/7EIVGBUZzLFVzPDSxmCdvZwU6e5Xl+wyu8ymu8wXu8zwd8yEd8zA/8yN/5N6v+MbCaO7mbe7ifB2cGHucJtrKNJ3mKYbMC+zOcERzIERzJaMawktU8yEOs4xl2sJPnuGJ2YB43sISbGPbvjJvhjOAQDmUU53AuU1jCMh7gQdaxnhfZzcvc+U/qh7u5h2H/bNwcwIEcxGGM4iROZjyncQYTmMhZnM0kHmcr23iSp3iaHXzFN/yNfzDkXwJ7sw/7MpThjOQMzmQCEzmbScxgFjdzC8u5ldu44N8HLuQipnExl3A9N7CEm3jkG/2QjWxiC59zyjXrx+mcyUQeZB3reZwn2Mo2nuJpXmTIdevCPuzLUIaxP8MZwYGM5GiO5XhO5HpuYDFLuIml3MIyln8dxw31wkiO4yROYTyncwZnMoGJTGKv/yZO7MO+HMTBHMKhHMYojuVETmY8V3MNC1jIIi64LW+5iGlcwuVcwVzmcRVv8Vve5nf8nnf4lM/5ju/5kb9y9JPAMRzHGZzJRM5mxlPnEmaxgpWsYjVruZO7uYd7uZ9d7OaYn6wXx3EGZzKBiUzixfeey25eZg97nb0f5BX78QiPspFNbOEZdvIc088FZjCTWVzGbG7mFpZzG2dcCZzJBCZyFmezgpWs5g6eYNj1+/rLff3lvv5yX38JHMGRjGYM23mGHexkF7u54kZgHjewhCG3AnuxN/uwHwdzKFdzDQtYyCIeZRNb2M4z7GAnz/Ics74NzGUe8xny0jzYh/04giMZzRjGchTHcBwn8B7v8wEf8hF/YP9XfGudOYmTGc+pnMYrfMrnfMVfGPY/vIcRHMCBnMTJjOdUTuPmd+qEZSznNn7DK7zKa7zOG3zCp3zG5/yRP/EV3/AXLngfuJCLmMbveh4E7+EzPueCXo+C+5jGxVzKAhZxUu/AKYzndC5nLvO4kvks43aG9AnszT4MZThncCYTmMhZTOLxsMATbGUbT/I0O9jJ87zH+3zAh3zEx3zCZ3zOF/ydVf0Dq1nLC+xiNy+xh4fCA+vYwEHDAodwKKMYzW94ldd4k7d5lzuHB+7ibu7hXu5nK9t4mh2sigo8wqNsZBObeYxd7GYP1/9L4AYWs4QbWcrV8+Q5C1nEYpawlJPmB07mFMZzKqczmZtZxnJuZ0hqYC/2Zh/2ZSjDGM4IRnIsMznoPwQO5hAO5TBGMZoxjGPF4sBKVrGaNazlbu7hfj7ggSXymXVsYCOPcXV74BoWsJBrWcRilrCUyWcCU5jKzSxjObdyO8M6xJ8RHMBIjuVEZjKLOczliE7xZwzjmMADF8SNdWxgIxdcDlzIRUzjYi5lAQtZxGJO6pH/nMJ4TuV0JnM5VzCXeVzJfJaxnNsZ8p/VB/swlOGMYCTb/4v+w06e5xM+5TM+5498wd/5Nyv+q3pgNWu5mxd4kV3s5iX2sPdL+x8TmMgkvuRrvuHPfMsP/MjPHPJKnHiGHezkWZ5nxWv9gFWsZg1ruZO7uYf72coHfMwDbwIP8hDreJgNbGQTj3HOp8C5TGYK5zGVi5jGpRz9q/rmOE7kFKYzk1nMYS7zmM8LA/97kCfs5iVe5pwRgclMYSoXcSnDRgb2ZzgjOICRHMtxnMh0ZjKLOcxl7+jAERzJaMYwlnFMYCKT+JKv+YZv+YHtMYEd7ORZnmd1cuBO7uJu7uE+7ucBHuQh1vEbXuFVXuNN/s4/2CtV3NiHgzmUkziZUxjPaaxgJau5g7n/ITCPx9MDT7CVbbzAi+xiN6/yGm/yNr/wN/7OP/gn/+aRzMBGNrGZx9jFHkZkyzuOZDRjmMwULuBCLmIalzKdGcxkFrOZw1a2sZ1n2MFOnuN5XuBFdrGbPVz/r4HFLGEpI1aLBxdwEdO4lJnM4nKuYC7zuIr5rGQVq3mQh1jHTn7hb/ydf/Av/s2QQvXD3uzDUE5mPNesDSxkOat5kIdYx3aeYSfP8RVf8w2XF4sf87iKG1jCTfyOTxly8EkwX/ZlP4YyjP05gAMZyXRmcBmzuZKrOO1Q4FzO5wIu5GIu4VJu5bav19cFLmIaM5jF5VzBXOYxnyENgb3Zl6GccSRwJhOYyNnsfzQwgpu5hWUs5zbu4m7u4VE2saIxsJJVrOEO1nIv9/Ew69nAb3iF13mDNzm32fpxMZdwQYv14SKmcQkv8CK7eYmX2cMFDzyXi5jGJVzBPG5gCW/xW97md7zDp6w58CyIKy/zHd/zE3/lZ/7Jv/g3DxwMPMg6HmY9G3iER9nEZrbwGIcdChzOWI7iL/yVlXWBNdzBXdzLfbzIS7zMXs2B/TiS0YzhGE5gNY/wKBvZzBYe4xl28h7v8xF/4GP+yJ/YvyVwICdxMuM5ldM450HgXCYzhenMYCazmM0NLGYJd3IXd3MP9/EIj7KRTWzhMb7kK77mG/7CL/yNv/MP/sXejwP7cBAHcwiHspCbuYVlLOcutvMMO3mW5xg1YcqW/9mfOYtJrGEtD/AQD7OeDTzOVrbxJE/xNBunBjbzGC+wi928xB6GhcT/T/szggM5muM5gZO5m0d4lI1s4jFe4EV2sZuX2MNveIVXeY3XeYNP+JTP+SN/4ku+4hv+zF84qFfgYA7jcI5kLEdxDucymSnMYA43sIRl3M4KVrKaNdzBWu7lAR5iHQ+zgcfZyjaeZgfP8wIv8hIvM6R3YF/2Yyj7cwAHcgRHMpoxjGUcZ3AmE5jIWZzNOUzmPM5nKtO5jNlcwfXcwBJu5CaW8gAP8hDreJj1vMCLvMTLvMJ7fMCHfMQf+Jg/8S0/8CO/8Hf+wT/5F//+ul59rBdjGMtRjONcJjOFqaxkNQ/wEOt4mA08wqNsYjNbeJwn2MqTPMXTrOhrXKxiNXewlgd5mEd4lI1sZguPcUhoYBTncC5TOJ8LuJBpXMwlXMo87mcHz/I8Q/4hsDf7sC/7MZTRjGUcR3Msx3E8J3AiZ3AmE5jIWZzNbK7kRpZyM7ewnNu4m3u4l/t5hI1sYjNbeOzruMOMl7M5h8mcx/lM5QIu5CKmcQVXMp+rWcBCFnE9N7CEG7mJB1nHeh7nCbayjSd5ird4m9/zDu8ypL88Y1+GMoz9Gc4IDuBADuJgDuNwRnE0x3Icx3MiJ3Ey4zmV01jLXdzDRp7kaR6MEF8e4VE2sonNbGHyAHnDJVzOFcxlHlcynxtYwk18yVf8mb/wHd/zE3/lF/7G3/kH/+TfTB8YmMksLmM2c5jLPG7gvEHiwnRmchmzmcNveJXXeJ03eJPP+CNf8BM/s2KY/YNVrGYNd/AIj7KRTWxmCy9/vX+4+9jEFh7nCbbxJE9xwD8GRnIEoxnLUYzjXu5nM48xeYT1YSqXM5d5XMl8rmYB17KIC0bql0zjYi5lMUt5INr5gofZwAvsYjd7WBWj/tnIYxwca1/ncEZxJhOYyCRWsoo1rOVRNvEYj/MEW3mSp3ia7exgJ8/yPENGBfZib/ZlP4YyjP0ZwYGMZhwncTLjOY3Tv75ntHzlQI7hOE7gPKaygEUMGWNe7MO+7MdRnMnZnMO5TGYK5zGVC7iQi7mES7+OZ5JxsB9DGcb+jOAADmQkRzCaMYxlHMdyIidxMqcwntOYzgwuYzZzuJL53MBibmIp63mER9nEZrbwAi+ym5d5hdd5g0/4lM/4nD/yBV/yFV/zDX/hB37kZ4ZMVkfsw74M5WiO4ViO5wROZAazmM3N3MJybuU2HmQ9j/Aom9jMFh7jcZ5gK9t4kqcYMkW+sy/7MZRDOYIjGc0YxnEGZ3IWZzOJO3iYDbzALl5iD2/xW37PO/zC3/gH/+RfX8cZb5xM5GyuZzFLuJGbWMoKVrGatTzCRjbzGE/wFNt5hmd5jhd4kV3s5iX2cNBU+yKHchijWMkd3Mm93McTbGcHO3mW57lrmrz7d/KOvdmX/RjKAZzBmUzkLM5mEvv8k+eyH0M5iIM5hEM5jFGcwqmczhmcyUTO4mwmMZ2ZzOIyZjOHucznWq7jZm5hGcu5ncd5gq08yVM8zXae4Vme4+Wv8fhn++G/2A85gAMZycEcxuGM5SjO4EwmMJGzOJvJnMf5TOVKrudGbmIpe/8v8oQTeYCHWc8GtrODZ3mO5zlgjn7KaMYwlqMYx0mcwnhO5XQu5CKmcQmXcj03sIQbuYml3Mm93Mf9PMCDPMTDrGczv+EVXuU1XucNvuIb/sIv/J1/8i/+zQFz5SEHcxiHcySjGcNYzmEy53E+U7mY6cxgFpcxmzlcwTyuZD5Xcw0LuZbrWMT13MBilnATS7mF5dzK7TzBVrbxIrsZluz3Iw7gQEZyM7ewnFu5jdu5k7u5l/u4n/d4nw/5iD/wFV/zDX/mb/yDf/JvLpin3pjGxVzKTGZxGbOZwxXM5UquYj7Xs5gl3MhShsy337I3+zCU8UxgIudzARdyEdO4hMu5grnM52quYSHXsYzl3M6QVPs5+3EIp3I605nBZczmZm5hObdyG5/wGZ/zR77ge37h7/yDf/JvhvwH68I+7Mt+HMlRHM0xHMcJrGAlq1jNWu7mHu7nSZ7iBXaxmz0MWSCv2Id9GcoxnMDJnMppnMGZTGAik5jBLGZzM7dwK7fxJV/xNd/wLfst1MfYnxEcwIEcxCEcymGM4miO4TiO5wTOYAITOYtJrFhkvVnFau5gLXdxN/dwH/fzAA+yjodZzwu8yO6v96e5n4dYx3o28Cgb2cz0xdabmVzGbOZwJVexgjWs5QEeZj0beJ03eJOf+Jlf+Bv/4J/8i39zUpZzHOM5ldM5h3OZzBSmcgOLWcLN3MIylnM7Dy6zLjzMejZwcI5zEqPYzg528izP8x7v8yEf8Qc+5hf+xj/4J//6+v5/9T2FHezkOZ5nxXJ1wmrWcjf3cD8vsIvd7OE93ucDPuRjPuFTPuNz/sgXrMhV36xiNWu5k7u4m3u4j/t5gRfZxW5eYg8f8DEP5ckbrl7ld14WsojrWcwSljJytT7KIRzKYYxiNGMYy9Ecw7EcxwmcyEmcwnhO5TRO5wzO5CzOZgrncT4XchEXcwmXMoNZ3MYKVrKK1azhDh7kER5lM1t4jCfYxlu8ze95h3d5j/f5gA/5Ax/zNd/wC3/nH/yTf/Fv9ltjX2Z/DuBAxnAOk5nCeUzlAi5kGhdzCZcynRnM5DJmM4crmMeVHFwg3zmUwzicB3iQh1jHw6zncZ5gK9t4moMLvZfDOJyVrGI1a1jL/TzIOh7mER5lI5vZwmM8zla28SRP8TTPcNNa+VEkPxjBARzIYRzPiZzEyZzCeE7jHM5lMudxPlO5gAu5iGlczCVcxmyG/EffG9iH/TiaYziO4zmBc5nMFM7jAi5iGhdzKTOYxdUsYCHXch2LuIntPMNOnuOg9fKVQziUwxnF0RzDsRzHCZzJDC5jDitYxRrW8gAPso6HWc8GNvMYj/MEW9nG02znGXbyLM/xPC/wIrvYzcvs4W1+x7u8z4d8xJf8mb/wLd/xPT/yV37h7/yDf/Iv/s2EDfZbJjGdGcxkFnO4hgUs5Fqu4xaWcxtP8hRPs6JEn2Q1a7iDh1jHBl7iZfZw9EZ5y/GcwImcwZmcxdlMYq9NvqezD8PYn+GM4ABGcjBTmc5lzGYOV7OAa1nELSxjObfxDG/VTv2ffsvb/I53eJcPGXEgcCSjGcM5nMtkpnA+U7meG1jMElawklWs5g7Wsp1n2MFOTjocOJlTGM9pnM5ELqwPXMQ0LucK5jKPu7ibe3iER9nIpq/3N7qeR9nIJn7DK7zKa7zBm3zH9/zAjww5HtiLvdmHgziYQziUwxnFyZzCeOadMD8eZSOb2P9UYDgjOIIjGc0YzuFcJjOF85nK9dzAYpawnG28yC52f31+R2AGM5nFSlaxmgd4kIdYx06+5Cu+5huG/V/ixnBGcARHMpoxHMU4FnI9N7CYJdzEUm5hGcvZxovsYjfH/NfAsRzHGZzJBCayT+W0ID85mEM4lGtYwEJu5haWsZzHeYKtbOMpnuak3YGTOYXxnM5Epu0JXMFc5nEnd3E39/AIj7KRTWzhsa/37XUfj7KRTfyGV3iV1/ieH/iRo48GjuFYjuMMzmQCEzmbSbz1IPBb3uZ3vMuHTH4cmMJ0ZjCTWaxgJatYzTPsYCdf8hVf8w1/4VuGvQ7sz3BGcCjXcwOLWcJNLOUWlrGcx3mCrWzjBV5kF7t5mT389mfx53d8wqd8xud8wZj/ETiXyUxhOjOYySzmsIKVrGI1d7CW7TzDDnaym7dD/imYF5/wKZ/xOX/iC4b0CezF3uzDvuzHwRzK0RzDcZzASlaxmu08ww528izPMbRvYBwnMo15vMJrfMj3/Mi/GdkvcCwnMiw0sD8HcCAjOYhDOJTDOJxRjGYMYzmKc5jMFM7jfKZyJfP5kq/4mm/4lu/4nh/4kZ856R8CJ3MK4zmN07/+HR6YzgxmMovZ3MKt3MZd3MN9PMNXfM03XBgRuIhpXM4VzGUejwwIbGQTm3mMXexmDw8NDGxgxSB5zxrW8hAPs54NPMFWnuJpXuBFdrGbl3iZcwbLK6ZwHlO5mgUs5FquYxErWMVq1rCWO7mLe7iX+7ifB3mIdaxnA4/zBFt5kqcYNiQwnBEcwIGM5CROYTyncjpv8Ta/4/e8yw/8xM/sPVS/ZSjDGcFM5nDBMPnORUzjYi7hehazhKVfPx/uc5ZwI0sZFqUvMpwRHMCBHMTBHMphHM4RjGYsRzGOtWzkMZ7hOd7jfT7kD3zJV3zNN/yZv/BP/s2Kf5T3rGEtj7OVJ3mKp5k8Qv0xn5tZxnJu5Xbe5ve8y7CR1onhjOAARnIsx3EipzCTy5jDQ9Hqk0fYyCYe463YwG95m9/xe97lgjHynGlczCVcyjVcy3WcPFb9choXcglXcw3Xch2LuJUh45yf2Id92Y8zOYuzv943yXX8hld4jdd5gzf5G//i8MnqiSMZy1GcwZlM5CzOZhIPTNGXWcfDrGcDR8c7F3Isx3E8J3LEDPXPWI5iHKdxDucymfM4n6lcwIVM42IuYzY3cwvLWM5trOEBHmIDm9jOTp7lOZ7nBV7kJV7mLX7L2/yOd3iXj/iET/mMz/kTv/B3/sE/+Rf/ZthM/YURHMBIzmUK5zODWVzDIzzKJjazhcc4JMG+zcmcymmcw7lM4TzOZyoXcCEXcwmXcj2LWcKN3MRS7uQu7uYe7uN+HmUTm9nCY2xnB8/yPL/hFV7lNV7nTfZO1NfYj6EcwViOYhwTmMhZnM0kpjODmcziMmZzN/fwFC+wi93sYd9Zxs8MZjKL61nMEm5kKV/xNd/wC3/j7/yDg2Y7F3Eoh3E4o7iAi5jGxVzCpcxmDlfwDNcnmR83chNLOfrf6uMcy3GcyAH/Tr1zEAdzGIczlqM4iZM5hVM5jdOZzgxmcRmzWcFKVrGaNaxlK0/zW97hQz7jC77je37kJ/7Kuf+k73A+U7mcK5jLPK5iPqtYwx2s5S7u5T4e4VE2sonNPMYL7GI3e3honvMAG9jFHjZmeg/n5IgLk5nCdGYwk1nMZg7XcwOLWcIKVrKK1axlBzvZzQOrnYNYx8OsZwOP8Cib2MwWHuOYdc5HnMBJnMypnMY5nMt5nM9ULuBCLuYSLuVmbuFWbuPqIvs1C7mW61jE9dzAEm7kJpay13+03zCM/TmAA5nODGZxGbOZw+VcwTyu5Crmc8F6ceMipnExl7KYG1nKgg3ixSIWs4S9i+2vHMloxjCWcZzBBCYyibd4m9/xe97la77hWw4psV8xihUb1RWrWcMdbOFFXuagTfYLDuFQDmMUR3AkoxnDUYzjJE5mPKdyGqfzIOt5hEfZxGa28DhPsJVtPMXTvMCL7GI3LzOsxjmbERzASI7mWI7jeE7kFGYyh+/4gR/5iZ+/jmOH93I0x3Icx3MiD9TaL1jHw2xg19fr/pP/c/de52K28jSr9unj7H3c+ZX9GM4IDuRgDuVojuE4TuBmbmE5t3Ibt3Mnd3E393Av97GdZ9jBTp7lOYad0CcZwQEcyEOsYwMrWtUtd7CWu7ibe7iXh9jAi7zEy/zC3/g7/+Cf/Iv9T1o3RnAERzKaMRzFOC5iGtOZwUxmMYe7uI+NbGI7z7CDnTzHe7zPh3zEHxhySv6yL/sxlLGM4zRO5zyu5hoWsJDruJGlrGAVa7iDtTzAw6xnA8/yHM9z9Gn1xbEcx/GcyCH/h/pkFEdwJKMZwzhO4DQuYhozmcXlXMFc5jGfa7iW61jE9dzAjdzEUm7lNoa0ywP2YSjDGcFIjuYYTuAkTmY8p3IapzOR6cxkFrOZw+XMZR5XchXzWckd3Mld3MO93Mf9bOAJtvEUu9jDe7zPh3zEH/iY/c+ILwcykoM4mEM5jMM5giMZzViOYhwP8BAPs4EX2MVL7OH6TudKlnAjS3mCrWzjSZ7iaSaf9X2C6cxgJpcxmzlcx1u8ze95h3f5jh/4kZ/4mXPOGR9TOI+pXMCFTONiLuFy5jKPK5nP1VzDtVzH9dzAYpZwI0u57JJ4cTPLuJXb+Y7v+YEf+YmfOeeyODGFqVzKMpZzd4965BEeZSObeIwX2MVuXuJl9vAe7/MBH/IHPuYTPuUzPuePfMGK/2w/YzVruIO1PMJGNrGZx9j7v+jLHMFoxjCWcZzBmUxgImcxiTd5jw/4iD/wMQf9V/2JQziUwxjFaMYxgUlsve58w3t8wId8xMc8dMN5k43MeKlvMIvLmMM1LGAh17KMW7mdFaxkFatZw1oe5wme5CmeZjvP8CzPsYvd7OE3vMrrvMlb/Jbf8Xve4TO+4Eu+4s/8hW/5ju/5kb/yC3/j7/yDf3LBK+cnLuYSLuWB175Ps46HWc8Ghvzs9x/2YT+O4EjGcBRHcwzHcTwnsJktPMbzvMf7fMgf+Bv/4F9fx/2L8XI0x3Acx3MCk5nCeUxlAdeyiCXcyE2sYi13cw+72M1eb/Ux9mFf9mMok5nK5cxlHlcynxu4iVd4k8/4gq/4mr/w7df3/w/7ORdzCZczl3nM52quYSHXcTO3sIzl3MrtXPBBXTCNi7mUBSxkEZd/NF7mcSXzuZllLOd2hnyyruzDvuzHMPZnOCM4gJEczKEcyWjGcBTjOJbjOJGTOYMzOYuzWcEqVrOGtdzJXdzDfTzCZh7jcbayjSd5mu08w06e4ze8ymu8zpv8lrd5hy/5M9/yHd/zIz/xVw771X7OEYxmDCdzGmcwgbOYxHRmMIvLmM2d3M293M8OnmfD2n8J+hEvsYeD1gUO4TBGcSKPsJFNbGYLj/Esz7P3xsC+DGUcR3Msx3MCJ3Ind3Mv97OdHezkWZ7jeW7dFLiduX3XBX2B3/AKr/Iab/Am7/E+H/Ahf+BjPuGP/Ikv+I7v+YEf+ZmjQwPHchwncgqnczlzmceVzGcZy7mdO7mLe7mP+9nMY7zJR/yBjxn9D4ExPM4TbGUbT3NCfOBULuBCpnExl3Ap13At13HYjMAEzmISQ2YG9mJv9mEoIxnNWMYxkRWsZA13sJaHWc/+/y5wIJO5gAu5iGlcygwuYzZXchXLeOGfAi/xMnsY9S+BJ3mKaf9e3jGPV/g97/Ad3/MDP/JXjqyQN5zMeKYyk8uYzRxu5haWsZxbuZ3VvMKrvMbrvMm7fMIf+RNf8At/4+/8g39xQpV4cgM38RXf8T0/8hN/5Wf2rw6M4ECWsZzza+QXF3MJh/0n+cDxnMCJnMEEJnIWZzOJcw4EzmUK53E+U7mAC5nGxVzCpdzCYXX6K8dyPCdwIqMPy0PGsZ1n2Mlz/IZXeJXXeYM3eYvf8nve4Uu+4mu+4Vu+43t+4Ed+4meOrhcHjudEzuBMzuJsJvECL7KL3bzEHlY06Ius4Q4e5wm2so2n2c4OdvIsz/MiL/Eyv+dd3uMj/sDH/JFf+Bt/5x/8m1X/uz7PAzzIOh5mPbvYzR5WNHouq1nL3dzD/V+vb3Y9d/Mg63j4Q2ADuzgg7EHQNziZ8ZzDeZzPVG5kKS+xf3/P5RBGcTTHcwInchInM55TOY2zOJvpzOAyZnM5VzCPK7mK+dzPdnbwLM9zw8DATZw1MjCJIXMCe7E3+7AfB3Ewh3AooziZUxjPqZzGGZzF2UziAR7kIdaxng08wqNsZDNbeIwX2c3LXDFX/LmS+dzAEm5kKXdyD/dyH/fzKJvYzBYe4+qUwDUsYCHXsohP5gU+5Y/8iS84d7564QIuYhoXcwmXMp2ZzOIyZjOHxSzhRs5IDZzJBCZyNpO4gIuYxsVcyg0s5iaW8hTP8CzP8Rte5w1+y+94h+/4nh/5ib/yM7/wN/7Jv7jrP8gjHuRh1rOBzWznGXbwLM/xPEMWqH/2ZT+GMoz9OYADGckZnMlEzuJsJnEZs9nKNnbwAi+ym5fZw294ldd4k7d4m9/xLn/nH2xcGHiSp3iGZ3mOvRaJH2dzN/dwL/ezlW3s4D0+4EM+5hM+5TM+5wu+5Cv+zF/4ju/5ib/yMwelBQ7jcEbxEBu4eol+xbUs4haWcyu3cTtHpweO4XhO4FRO5zzO5wIuZBoXcwl3cw/3s5UP+JDPGJsROIpxTGcGM7mM2czhcq7gSq7iIdaxgY1s4in2y1SvHMhZnM3FXMZsruYaFrCQa1nE9SxmCUt5gIdYxwY28lSW+uI5pi8TT2ZyGbOZwyM8yma28Bi/4RVe5w3e5CM+ZkiOumdv9mU/hnIAB3IYh3MO53Ie5zOVC/5VPnMR07iYS1nAClayhjtYy13cy32csVx/ZwITOZsjVgRGM5ajGMcqVrOWO7mLu7mH+7ifx3mCJ3mKZ3mO3eyba30YzrGcy8Vcym18ydd8w5/5lh/4kZ8Zkid/2Jf9GMowDuBARnIIhzGK0YzhHM5lMlM4n8u5grnM40qu4nZmrwzczC0s51ZuYwUrWcVq1rCWV3mNt/kdZ6ySl0zkLCZxNdewgIVcy3XcwgpWsoY7WMu93M8LvMhuXuJl9rDvevsap3EGZ3IWZzOJ21ixwXhZwx3cy/28yMvsWyIfOZXTOYMzmchZnM0kTlz3PPicszlkfeBQ7uV+NvMEW9nGdnbwLM/xPC/wIrvYzUvs+Xr9Btexmz0cuDEwlnEczbEcx4mcxMmM51RO43TO42Zu4VZu43bu5l7u50HWsZ7t7OBZnuN5XmQ3LzNmU2A6M5jFbO7kLu7mHu7jGXbywPEJZf/z3MA6HmY9G3iBXexmD6/yGu/xPh/wIXu1BvZhP47gSEYzhrEcxRlMYBKTmcJ0ZjCTWVzGHK7mGhZwLdexiJtZxq3cxu3cy3aeYQc7eY7neYXXeJ03+IV/8i/+zTlt4sIUpnIBFzGNS5nBbG5hOStYySpW8wAP8hDrWM8GNrOF7TzDTp7j2JOB4ziJkzmF8ZzKaZzJRCZzHlO5kaXcyV3cy33cz2a28Bhv8y7f8T0/8BN/5eev4zxlPbmAC5nGJUxnBjOZxeXMZR5XchXzuYt7eJSNbGLv04GhHMTBHMbhjOJYjudEzuNqFrCIm7mF2xjyf+g/7M0+7Mt+DGM4B3AgIzmCIxnNGMZyFEdzDMdyHCcwjxu5mVtYxq3cxu3cyV3cw73cx/1s5xl28hyHXLA+rOEOnuV5XuRl9r0oDziWMziTiZzF2UziTu7mHh5lE1t4+LI+w3Z28CzPM+T/lCfszT7sx3AOYCRHcCRjGMtRjOMUFnEr5/5f6pwpXMSlXz//Lz7nIi5lBpdzJVcxnxtYwgM8xAaeDJsajK9/4AIu5GIuYQUrWcVq7uRu7uFe7udBdrDvgMB+HMyhHMFoxjCWcZzEqZzG6ZzBmZzF2Uziaq5hIddyHTdyE0u5l/vYzjPsYCfP8Spv8h7v8xF/4Bf+zj/4J/9mr4GBfRjG/gxnBCM5giMZzRjGchQXcCEXMY2LuZTLuZKrmM9iDpsWGMUZTOAsJvEwG3icrTzJUzz99fN0n/M0L/AiL/Eye7g7I3DQssAhHMYozmACEzmLSVzLItZwQbb4Mo0ruIobuIkHWcd2nmEn5+TqC0xmCudxPldxDQu/Xr/aeLmIaVzMJVzKDSzhN7zCq7zGG7zPh3zF8YWBEzmDszibSTzAw2zgSZ7iaV5gF7t5iZfZw7AidccBHMhIbuV21vAIG9nMFh7jWZ7jeQ76j/osh3Aoh3E4EzmHc5nMFM5jKpdyNQu4lutYxApWsorVrOEOnuCuYv2WR9nIJj7ia77lkJBpQX2yglWs4Q7W8gAP8hAPs54NPM+QXoG92Jt92I+hHMhIDuJgDmcsR3EMJ3Ey4zmV0zidcziPqdzCrdzG7axgJatYzQ52soshfcWDvdmHfRnKcA5gJAdxMIdwKIdxOEdzLMdxPCdyLddxB0+wje08y3M8/3U+/cyHYezPcEZwICM5jFEczbGcyHimM4PLmM3lXMlVrGAlq7mTu7ibe7mP+9nMFp7kGXby3Nf5hMlbjuU4JjKdGcxkFrNZwUpWs4Y7uJN7uY/72cLjPME2nuI3vMKrvMYbvMlX/Jl/8m/O6T/N+TwwmSlMZwYzmcX13MBilnAjN3FAuDriYA7hMA5nFGO5lcd5gid5igsiAhdxMZdwKWtYy3o28Chb2M4z7ORZnuN5fjsg8Ds+5XPGjgmM42iO4ViO43hOZBVruIO1PMtzPM/08daTy5jNHBaxmcfYzg6e5Tme50u+4mv+zF/4ln9x0QTrxqVcz2KWcCM3sZQVk8SJ1axhLXfzAi+yi93s4bDJ8pPjOYETeZwneYqnOXqq9eZYjuNMJrKClaxiNXewjnOnqWumMIOZzGLfdPs0Z3AmEziLs5nEDdzEQ2zgSV7gJfawV4b9mX04iIM5lMM5iZM5hfGcxsU8wqNsZDNbeIwn2MbRWdaN4zmBEzmLs5nEtUxe5hzE+VzJfG5kKa/yGq/zHT/yE3/lZ37hb/ydf/Iv/s3B2fo0h3I4J3EypzCeiVzAhVzENC7mUq7mGhawkOtYxApWsorV3MFaHuQh1rGeJ9jGU7yUI29Z9a/yio1sYjOPsYvd7OGt5fYN3uZ3/J53+JBP+JTP+JwvOCjXenIIh3I4oziG41jBSlazhjt4nCfYyjae4tw8dcAUZjCLG1jCTaxgJatYzVru5G7u5X4eYSOb2cJj7GI3v1sp7nzO5AL5zoVcxDRmMJNZzGYlq3mER9nEFnbyHu/zEX/gY77mG77nB37ir/zML/yNv/MP/sW/v8ahSBy4iGlcwTwe6rJvMKzH9xgO4EBO4mROYTyncR43spSbuYVl3Mpt3M5F/9n4uZwrmMs8rmQ+Q/6L/Y692YehDGM4IxnLUZzBmUxgIpN4nCd5iqd59L/KK3ayV8X04HdaxnAUC7mFZSznAR5kHQ+znkd4lE1sZguPsY1d7Ob3vMMn/JE/8QVDqgN7sS/7MZQDOIxRHM0xHMtxnMh13MpT7Pn6nJrA8ZzIqZzGWZzDuUzhfBazhO/5K0N2mDd7sw9DGc85nMtkpnAeU7mAC7mIaVzMpUxnBrO4jNnM4UquYj4LWMEa7mAtL/ASL7OHY2utA2dwJhM4i7OZxJD/JL7szT7sy1CGsT/DOYADGcl4LmM2c1jGcm7nTu7lPu5nPS/wIrt5iZfZwyO7AxvZxGO8wmt8wIccczBwAidxMqdyGqdzK8OPBEZwEAdzKIdxOCdxMuM5ldM4nTM4kwlM5GwmcTXXsIBruY5F3Mit3M4K1nAHa7mTu7ibe7iPh1nPVraxnWfYybM8x7t8ydd8w5/59uu6HA0cwZGM4VymcD6XcwVzuZKrmM9y7uI+NrKJA5rUE2M5imM4luM4k6tZwLUs4mZuYRm3chu3M6ZZ/+cX/sY/+Rf/ZniL+HIERzKGoziHc5nMFM5nKhdzKZcxm+u5gcXcxFKWsZwVrGQVa7iDtTzAw6xnA9vZwU6e5wVeZBe72fecfsxhjGLKa/sUM5jJLFawklWs5k7u4m7u5T7u5wEeZD2beYYd7OQ3vM4bvMlHfMlXfM03fPt1/G+Ng3V8wEd8zN/Zf25RkJ+M4WZuYRnLuZXb2MYOdvI8u9jNHs5ZEDiXKZzPNbzFb3mb3/EOn/I9P3LQ4sDBHMKhHMYojmA0YxjH13zDt/zAj2xdIj7sYNjOzUH8Gc4IDmQk47meG1jMEpZyC8tYzu08wIM8xDrWs43tPMMOdvIczzNkT2Av9mYfhnI0x3I8J3ISJ3MK4zmNq1nAQq5lEYtZwvl7A5dzBXOZx1VcwwpWsorVPMCDPMQ61rOdHezkFV7lNb7je37gR/7K3/kH/+bSQ+bLXK7kKuaz9Ov1D8SHuczjKq7nBhazhJtYxQM8yEOsYz2v8Brf8yOPPAo8ykY28Qmf8hmf8wUnPZZvnMJ4TudqrmEBC7mOReziyP8eGMM8VvMIj7KFZ9jJQS8DB3MIh3IYoxjNGMYxgbf5He/yNY+/CjzBVrbxJE+zg508z5DX+gJ7sw/7MZSDOJhDOJTDOJyTOIXxnM7VXMMCFnIdN3MLy1jObdzO4zzBVrbxFE+z/8/6PUcyhltYzq3cxkpW8yDreIadnPyLfskMLmM2V/8P8WEBC7mWRVzPDSxmCUvZ/5N9jhEcyRjOYTJTuIv72M4z7GAn+1/dEryHIxnDNSzkFpazktU8yDqeYSf73wwMZwRHMpoxXMNCbmEZy1nJKlbzIA+xjmfYwc6v43ni/SxkOatZx05G/Og+FrKc1axjJ8NeigvDGcGBjOQIjmQ0YziKcVzNNSxgIddxM7ewjOXcxu1s5xl2sJPneJ59fg4cynieYBsvspthH8SH4YzgCI5kNGO4mmtYwEJu5haWsZwVrGQVq7mDB3iQh1jHerbzDDvYyUkhW4M+xHhO5TTOYTJTmcks5rKARTzAQzzMBnaxh9/wCq/xBp/yOX/iK75hSq/ApVzNAhZyLYt4gIdYx8OsZwMvsIvdvMSer8/r7T52sYcH+riOdWxgIy+xhwv6Bi5iGhdzKdezmCXcyFL2Dw0cyPGczHhO4wIuYhoXcwmXspglLGUFq1jNGtZyN1vZxqd8zlf8hX3+ITCckRzBkYzlKKYzg1lcxmxu5haWsZzbWMEqVrOGO1jLI2xkE5t5jMfZyjae5CmeZq8wcWE/juQojuYYjuMEpjOTWcxhGbdyOytYxWrWcAdreYAHWcfDrGczj/E8b/AlX/ENf+YvfMuw/uqCERzIERzJaMZyFOOYy5XM50aWsp1n2MGzPMfzvBShL3DOAH2b8zifqczlSuZzzkD3M4XzOJ+pXMQlXMr6QfKYR9nEZrbwwGDrzEOsYz3XDw/cwBJu5CaWMiRK3rMP+7IfR3AkYxjLUbzPH/gb/2LIP3of+7Av+3EkR3EmZ3+9f0Rgb4YyjP0ZwQEcyBGMZgxjGccxHM8JzGAms5nDLSzjNm7nBV5kF7t5mT18xdd8w1/4lu/4nh/4kZ/4+Wv8RooXIxjNWMYxnZnM4XKuYB5XchW3cCu3sYKVrGI1a7iDR9nEZrbwOE+wjSd56ut4Y42Tq7iaa1jAQq7lOm7mFpZzGyNGySeO4wIu5CKmcTGXMJM53Myt3Mbt7D1DfXAEoxnDWMbxFm/zO37Pu3zNN3zLD/zM3jONgyMYzRjGMo4hs93PPuzLUI7lOE7kZE5jcpL+zOXMZR5XMp/J/9Z9XM5c5nElVzGfq1nAtSxixb+T96xmDWt5hI1sYjNbeIytPM2of9I//71+yf6M4AAOZCTHsIJVrGYNa3mcrTzJ07zPh/yBL/mKb/gzf/k67v9Ff+ZEzuAszmYSd3Mv9/M4T7CVbTzJ0+zgec6cE5jARCbxAA/yEOtYzwYe5wm2so2neJoXeZlhc8WJ4YzgQE5mJTvYyTnJ6oDzOJ+p3MhNLOUHfuJn9pqnrjmUkziZUxjPqZzGVrbxNFPm669cxDRmMIuHeISNbGIzj3HOgsC5TGYK5zODmcziN7zCa7zBJ3zKZ3zOH/kTX7F3uv7IaMYyjjOYwETOYhJPsI0neYrtPMMOnuU5nmdIhj7OfgzlWI7jTFZxBw/wIOtYzyNsZDOPsY0neYr7Mj2fh1jHYzzOEzzJU7zH+3zEH9grS/5zEidzCuO5k7u4h/t4hp08lG09c+Qp5/Me7/MBH/IZXzD0XwOHcChHMJoxjOMMzmQiz/Icxy93zuZEzuJCLmIaVzCPa7mOy1e4jiu5ivmsYCWrWMMdrOVeHuBh1rPh69+58o8tvMCL7OYlXuY3vMJrvM4bvMl7fMQf+JhP+JTP+Jw/8ifOzLNunMXZrGAlq7mDR3iUjWxiM1t4nCfYxpM8xdO8xLCV9jkOYCRHMJajGMdJnMKpnM4FXMhFTONu7ucRNrOFx9jODp7lOZ5n5iq/rzGHBVzLdSziZpZxK7dxO2dsss5MYCJncTaP1pgPL/AiL/EyD+zQp1nHw6xnA+e06ldM4TzO5wqu4mquYQELuZbruOmM81GH8xDHcAIncTLjOZXT+C3v8B3f8yM/8Vf26rQPMoz9GcEBHMjRHMNxHM8JvHDJ+rCL3bzEy6y4rJ5ZxWrWcAeP8Cib2MwWDnoZOJjDOJxRHMGRjOUoxvEOX/IV3/Bn/sK33PnKPsq93McTPPVaPfIKr/MGb/Fbfs87/Iv1b8SFLVz4yfd8ruFaruN6bmAJN3ITJ/8qTzmNYXO2BXnFcEYwkpM5ldM4nQUs5HpuYDFLWMotfMnXfMOf+Qvf8h3f8yN/5Zi5gWM5jjOZwEQmcQ7nMpkpnMdUZjCTWVzGbOYwlyuZz9VcwwIWci3XcTPLWM6t3MbtrGAlq1jNHTzIE2zjKY5OEV+O5TiOmBc4ktGM4SjGcTLjOY1H2cgmtvAMOzlnvnVjMlM4n2t4mA28wC5eYg+jF5gHkzmPqcxgNs+wk7d4m9/zDu/yHu/zAR/yEX/gMz7nj/yJL5i3MDB9kfEyk1lcxmyu5hoWsJDruIXlvM8HfMhXfMOFaYG1PMTDrGcrL/Aiu3mZCxZ7LhdzCUt4gId4mPVs4KAlgUM4jFGcwQQmchaTuJv72cGzPM9J6wOnMJ5TOY3TmcwUbmAJ52xwHecxlflczQIWci3XsYjrj+jvLGEpFx0NXMrVLGAh17KIvRvFlQlM5CwmcVBT4GAO4VAOYxSjGccEht2zDzKCAziQkZzC6cxkDifddx3jOZXTefyB/GYbT7OdHezked7mPd7nAz7kIz5m1UP7AGt5hI1sYjNbeIwX2MVuXmIPhzyxDtzJ3dzDvdzH/WxnBzt5lue/Pvdp4C7u5h7u5X62so2n2cFBM7YH4+dQDmMUo5nAJC5kGq/yGm/yI7/wN/7OP/gn//763pmBlaxmHdt5hh3s5DmOTQwcxxmcyQQmcjaTeJwn2Mo2nuQphs0K7M9wRnAgR3AkoxnDUZzMSlaxmgdZx3aeYQc7OXd2YAqXcwVzmcdV7P/PgYuYxqUsYCGLuJlbWMZybuN23uN9PuQj/sCXfMXXfMNf+JZf+Bv/4F/sXRPYh30ZyqmcxunMZBaXcwVzmceVzGfvHd7LUIYxnBGMZAITmcR0ZjKLOcznoFr1z6EcxigmMIlXeZNf+Bt/5x/8k3/z+H9SR2zjSZ5mBzt5nr0uiBfD2J8RHMCBjORIxjCWoziJkzmF8ZzKaXzCp/yRP/E3/sX0i4EZzGQWs7maa1jIdexiN3uYfslzmcVlzGEuy7idCy6rcy7mEi7lcq5gLldyFfNZzBJuZClDeqwve7MPJ3MK4zmNCcz4z+bNbG7mFpZzG3fxCI+ykU1s5jFeYBe7eYk9zPs/A79lwf9tXVnEYvb+f8yf4YzgIA7mEA5lFDOZxVzmMf/rdf/FdcxhEcu4ldu4nav/q3mxkEUc8EodMpYzOJMJTORsrmUNa3mYYa/1AYYzgoM5lAUs5HpuYDFLWMrN3MIylnMbT7CVbV/H97P+w/GcwIlMYjJzmc8KVrGaO1jLAzzIQzzMejbwKJvYzBNsYzvPsIOdPMvzvMAudvMSL7OH13idN3iL3/I2v+Nd3uN9PuBDvuMHfuKv/Mwv/I1/8i/+zZxf5CnXsYjVrOFO7uZe7uN+tvAY23mGnTzLczzP3v9DH2EYwxnBSA7iYA7hUM5lCjOZxRxuYDFLeJwn2Mo2nuIFXmQXu3mZFe+cj1nFau7gQR5iHdt5hh3s5C3e5nf8nnf5hu/4gZ8Z9kn9M5wRHMphHM4ozuBMJjCRs5jEZC7kIqYxnRnMZBazuZGb2M4z7GAnz/E8h/zq3BXy/wr6HiczntOYzHlM5WoWsJBruY5F3MU9vMXbvMsnfMpnfM4f+YKf+Jlf+Bt/5x/8k39xTq/AuUxmCudxPtewkHv6Gg9f8Q0/8TP/4PjQwAmcyMH/EDiaYziW4ziBOSziZpZxK7dxOxvCA6siAmt5gAd5iHWs5zFeGhTYw5DBgb3Yh5EcxCEcyijGMo4VrGQVa7iDtWxkOzt4lud4ntVDAndyF3dzD/fzAA/yEOvYwHt8wId8xMd8wqd8xud8wRnDAmcygYmcxdmcw2TOYypzmcd8rmYBC7mW61jESh7hUTaxhSd4imHDA/sznBEcwIEcyRhOZjx3sU+UPOMQDuUwRjGeFaxkNXfwBNuY94/Wn4fZwC5eYg/zYq07n/IZn/MnfuS80daP6czkMmYzh6tZwEKu5ToW8Rte5XXe4E2+4JCJ4soozmACEzmLs5nEI2xkE5vZwmM8zwH/Rn/hJE7hVE7jdPafJO8YwZGMYTJTmMoFXMhFTONSlrOTw6aIEydyBhM4i0k8wMNs4HG28iRP8TTD4s2XAxjJGZzJRM5m76nqi6EMYzgjmcg5nMtkpnAe5zOdGcxkFrNZyPXcwGKWcBNLeZB1rOdxnmAbT30dzwzjYDa3sJzbeIXX+IRP+YzP+SN/4sKZ8om9/q34czCHchIncwrjOY0VrGQ1d/AIj7KRTWxmCxf+O/Xwz/7mIqZxMZdyA4u5iRd4kV3s5iVe5oJ/8T4u5lKuZzFLuJGlrGAlq1jNGu7gcZ5gG08xZM7/O1g39mYf9mMoJ3EypzCeC+cGLmIal3MFc5nHJo6eFziGYzmOEziRc+YHzmUyU5jODGYyixtYzBJWspoHeYh17GTYosD+DGcEB3IERzKaMRzFOK5hAQu5mVtYxnJ2c+iGwNVcwwIWcjO3sIzl3MbtPMFWtvECL7KL3Ry3KXAmE5jIiIX/nyA+jGYM53Auk5nC+Uzlem5gMUtYwUpWsZo7WMsDPMhDrGM9G9jOM+xgJ0OWBPZib/bhIA7mEA7lcEZxMqcwngsS/r9BfXIR07icK5jLPO5hE7/hFV7lNd7gTb7je37gR/7Kz5yTFDiXyUxhOjOYySxuYDFLWM2DrONLvuJrvuEvfMsv/I2/8w/+xb85+mrgGI7lOM7gTCYwkXOviQNTmMFMZnEDS7iTu7ibe7iPR3iUjWxiC48x4r8FxnA9N7CYJdzEUlayitU8yEOs4xl2MuRJYC/2Zh8O4mAO4VBO4mROYTyP8wRb2cZTvMCL7GI3L7OHC5+qQ6ZxBXOZx8QfAxf85H4uYhqXcCmXcwVzmcdVzOceNjHklfiyN/twEAdzCIdyMqcwnsd5gq1s4yme5gVeZBe7eZk9HPOLOuM4zmQCE/ndu8CnfMbnDPsY2J/hjOBARnIERzKaMRzFOK7mGhawkJu5hWUsZzevfQp8yFtR/+v/9Fve5ne8w7t8wqd8xuf8iS++/n9iYP8ZgeGM4AiOZDRjuJ4bWMwSbmIpy1nBSlaxmjtYy3aeYQc7GTIrsBd7sw/7MZSTOJlTGM+02YErmMs87uFRNrKJC/75f/U95X/1PcVzuZwrmMs8rmI+d3E39/AIj7KRTXzH9/zAj/yVn/kHR/etCOqQYzmO4zmRkziZUxjPqZzOdGYyi8uYw1xuZhm3cjsH9QsczCEcyiiO4EhGM4axjOOxfwhcOjZwNQtYyCLOGReYzBTOYyqXM5d5XMl8rmYBC7mWRV/fN8V7mMp8rmYB17KIt3ib3/F73uFdLogPXMQ0LuYSLuWhWYEN7OGF2YFd7OYlXmYPFxR4L9O4lIUMKQzsxd7sw1CGMZwRjGQms5jDXM5ZL/5M4TymcjlzmceVzGfB1+s3uJ55XMl8bmYZy7mdR4oDG9nEZh5jF3t4oMS6sY6H2cBGXmAXu3mJl9nD9bsrg/2CJdzIUibvCUxhKjezjOXcyu08cDjwEA+zgRfYxW5eYg+H1AdG8Qgb2cRmtvAY29nBszzPC83GwW5e4mX2MKolMIEVrGI1a7iDtTzCRjaxmS08xiFd3ssEJrGdHezkWZ7noG7P41AOYxRnMIGJnMUkLvg/AxcxjYu5lOtZzI0sZdX/LT5s5DFW/D+uYzVruIO1PM5WtvEkT3POtUrfD+U7UziPqVzAhVzENC5lAYu4/pb5s4QbWcretwP7MJwRnMEEJnIWkzjoO+vMoRzGKIY88l72YV+Gciwn8iqv8yaf8Ue+4Gu+/fq+Hzyfhx7rFz8GHuQh1vEwG9jIY0zuVR2sH0tYxpCwwF7szT7sx1AO4EBGMpoxjGUcR3MMx3E8JzCBiUxiAQtZxGKWcDO3sJxbuY3beZvf8w7v8gmf8hl/5E98wdd8ww/8yM9f49o/MIz9GcEBHMhIzuQszmYS5zCZKZzHVBawiK1s42m2s4OdPM/14daBJdzIUk6JsL5MZBKTuYALuYhpXMoyHuRh1vMCL7KL3bzEy+w9KHAGE5jIJGby+GBxYxtPs50d7OR5DhoSOIRDOYxR3Mld3M093Mv9bGcHO3mW5/mAj7++Z6j3cDf3cC/3MyRW3NiHfRnKcEYwkmM5kZnMZR4HjRInDmUUV8+RzyxkMUtYyt5zjZdhDGcEIzmIgzmEQzmcUUxnJrOYw1zmMf/re5K9h0M4lMMYxWjGMYl3+ZqDUjyPQzmMUUxgEielBk7mFMZzKqczmSlM5WquYSHXch2LuJ4buJGbWMrNLGM5t3IbtzN8sfVlJEdzLMdxPCdwIjMZtsRzGcEBjOQkTmE8p3Iap/NATuAh1vEw69nAC+xiNy/xMnuYPnZvMA9mcRmzmcPNLGM5tzN9nOcxi8uYwzJu587xgbu4l/u4nwd4mPVsYAu/4RVe5w3e5Pd8xPETAydwKqdxIzdxK7dxxL8JHMlYjmIcj/MEW3mSp3iaZ3mOF3iJl9nD8EmBkRzNsRzH8ZzIW7zN7/g97/IlX/MNf+ZbfmDI5MDe7MO+DGU4K6YEVrGatdzJXdzNPdzPC7zILnbzEnv4gI95KJ6z9/od1XxWB/ZiX/bjMEZxNMdyHMdzIqdwOjOZwzae5Gm28ww72MnzfMlX/Jm/8B0/8CM/8TN/5x/8m+Fr5B3HchwPFIgn63iYDWxkE7u+3lfoOq7/j4HFLOFGlrJivXxiNWtYywY2spWneZGXeJkVGzyf1axhLQ/wMOt5hEfZxGa2sJUneZpzNwYmM4XzmMr13MBilnD1psACFnIt17GIxSzlnPB9wXiYzBTOYypXcw3Xch3XcwNLuJGbuJlbWMZybuV2LowIXMKlXM5crmQ+N7CYJdzEUq4Y5DlcyVXM52quYQELuZZFXM9ilnAjS7mLe7iPB3mY9WxkM1t4nK1sYzvPsJNneY7nOWJw4EhGM4aZzOJyrmAu85jPClayitWs5S7u5xEeZSOb2cJjPMNznDUkMInDhgZGMYFVPM4TbONJnuJpdvMSezhnmLpiClO5kEu4nLnM40quYj7XcwM3chM3cwvLWM6t3P51nMONk6lcxMVcwqVcyVVczTVcy3UMiQrsxd7sw74MZRjDOYCRHMuJzOQRHmUzW3iM3/AKr/I6b/AmH/EHPuYnfmbIP5of+7AvQzmQgziYQziUwzicIziS0YxhHEdzDMdzAqdyGudwLudxPlO5mGtZxGJu5haWsZzbeYKtbOPpr/EaEdiP/TmAAzmLs5nEtVzHzSzjVm7nITZw78jAAzzIQ6xjPY+wmS08xpBYecG+7MdQDuEwDmcUozmK07mcuczjSq5iPku5mVtYxnJu4yu+5hv+zF/4ju/5gR/5ib8yZJS+wN7sw1CGsT/DGcGBjOQQDmcURzKGsRzFSZzMeE7lNE7nDCYwkUmcw7lMZgrnMZULuJCLmMbFXMp0ZjCLy5jN5VzBPK7kKuZzLTdyEzezjOXcyu1sZwc7eZbnv67rWHXNgYxkLEdxHtdzIzexlMd5gid5iqd5iZfZw1vj9/n9IfAO7/JH/sQR/0Z+MZqxHMU4zuFczuN8pnIZs5nDGrbzLM/xPMNmqhsO4EBGMpajGMd5nM/13MCN3MRSHucJtvIkT/E0L/Eyezh+tnH/s3EzkoM4mMM4nFHcyE0s5WZu4VZu43ae5Cme5pF/77zBRjazhcf4Da/wKq/zBm/yez7iD3zM9HTnH2ZxGbOZw6u8xuu8wZu8xW/5Hb/nHb7je37kJ/7Kz1ywTH/jIqZxCdOZySwuYzZzmMt8ruE6JmerKy7gQqZxMZcwl3lczTUs5FquY0iOfY192Jf9GMpYjmIcR3MMx3IcJ3AiK1jJKlazlu3sYCe/4RVe5w0+4wu+4hv+zF/4O/9g2L/qRwxnBAcwkqu5hgUs5Fqu4w7u5C7u4V7uYwMb2cTjPME2nuQpXmAXL7GHB5c7N/Iw63mCrWzjSZ7iaR5Zod+wkU1s4TH2Xym+HMhIjmAsRzGO67mBxSzhRpbyG17hNV7nDd7jfT7gQz7iYz7jT3zBL/yNv/Mv/s05q+y3TGYK5zGV67mBxSzhRm7ipG+dGxnPqZzG6ZzFeZzPzdzCrdzG7ez93v7HwRzCoRzOKMYyjr0H/W9Bf2IoRzCWcbzHB3zIR3zMZ/ydf7P34MC+DOUIRjOGsYzj6KjAMRzLcZzJBCZyEZdyOVcwjyu5iqtZwEKu5ToWcTO3sIzl3Mrt7P+PgQM4kJGM5SjGMZkpTGUaM7iM2VzJzdzCMpZzK7ezitWs4S7u5h7u5wEe5CHW8TAbeJbnvr53RGAtj7CRzTzGipHuYzVruIO1PMJGNrGZLTzGVp5mevr/5vwl3sxhGbfzFm/zO37PO7zLd3zPD/zIT/zM5Az5wFzms4BFXJojz1nAQq5lEYu56F/dz5Dl6pt92Jf9GMrRHMtxHM+J/IZXeZNP+IzP+SNf8DXfMnyF+uJ0zhl9MNgfmMwUprKYJaziLh7gQR5iHY+wmS08xqu8zpu8x0f8gY/5kq/4mm/4C9/yHd/zE3/lZ37hb/ydf/Av/s1nYwOfc9C4wMEcwqEcxijGMo6jOYbjOYGTGc+pnMYEJnEti3icJ3iSp3iaZ3mJl7lxfGA7z7CDnbzAi+xiN1/yNd/wHd/zAz/yMwdNFGcO4VBGcQRHMpoxjOMCLuQipnEJM5nF5VzBXOZxFfNZ9W8Ca7mbe3iBXezmJfZw1xT38TXf8AM/8jO/8Df+zj94eFpgPS/wIrvYzcYZgU0cMytwLMdxJhOYyNVcwwIWsohZswN3chd3cw/38yAPsY6hSfKAMYzjVV7nTT7hM/7IF3zNtwz9t97DOI7lRM749+LDBM7ibCax4n8JrORO7uJe7uN+HmY9O9jJLnYzrCiwP8MZwZFM5krm8yVf8Wf+wk8cfVJcOI7jOZFTGM/pTGYKF3IR07iUZRx0St/gUA5jFEdwJKMZwzgmMOR0YG/2YSi/4RVe5TVe503e5ve8yyd8yuf8kT/xBV/zDX/mWw76P8SDQxnFEYxmDOO4un9jUMcsYCHXsoijRwSO4ViO4wzOZAITOZtJnDsyMIUZzGQWi3mcrWzjaXawk+cZPidwACM5mmM5juM5kVN4i9/yNr/j97zLl3zNN/yZb/mBIXMDe7E3+zCckRzEwRzCoRzGKFYkB1ayitWsYS13cjf3cD/v8QEf8jGf8Cmf8Tlf8FBKYB0bGLY4sD/DGcGBjOQIjmQ0YziKcVzDAhZyPYtZwo0s5WZuYRnL2cZuhqWbD8MZwQGM5CAO5lAO43BGcQRHMpajGMcxHMtxnMQpjOd0zuBMJjCRSUxmClOZzgxmcRmzmcOVXMWf+Qt3ZgTu4l7uYydbl1kPdrCTH/iFv/F3/sG/2Zgd2MTROeLKsRzHCZzIZBZxM8tYzq3cxu3M/Ffx43KuYC7zmM8qVnMnd3E393A/u9jN3sv1JYYynIM4mMM4nCM4kjGM5SjGcQYTmMgk/sy3rFihz7GGO1jLndzFvdzH4zzBVrbxNNt5hh3s5Fme5wVeZDcvs4ff5sqjb8WBM5nARCZxNdewgIUs4vp7gRtYzBJuZClD7lt/9mFf9mMowxnJ0RzLcRzPCZzIdGYwk1lczhXMZR5XMp8FD8SBRSxmCUsZ8tB+zN7sw34M5RTGcwYTmMgkpjOTWVzGHOYyj/ksY8UT9c1q1nInd3MP97OL3Uz+Sf/mAi7kIqZxCZdyM8tYzq3czgPrjgf7P+vYwL4bAsdwLMdxKqdxOk/zArt4iZfZ8/X+jYG9NwWGMoz9Gc4IDuQgDuYQDuVwjuZYjudETuY0zmQiZzOdy5jNHC5nLvO5lkXczDKWcyu3cTvP8tLX+IScCOLDcEZwAAdyDMdy4tf7egVGcirTmcEsLmM2N3MLy7mNsX0C4ziJUziV09nIZh5jOzt4lud4nmGh5sUIDuBARjKFGcziGq7nBm7kJpZyO1/yNX/mW4b9g3VjOCM4gJFczCVMZyazuIzZzOFKhoV5HyM5hVM5jdN5i9/yNr/jHd7jAz7kI/7Ax/yZb/meHzmvf2Aq05nJLC5jNnO4mgUs5FoWfX1+uOczk8uYzRyuZgHXsohXeZ03+YmfOSMicCYTOYuzmZ5gXMziMuawjNv5jh/4kZ/4Kz8zPdF7mMVlzGEZt3PSv5NHjOd0pjOTWVzGHOYynyH/FNibfdiXoQxnJNv/WZ9gJ8/zHh/wIR/xMX/n36z4l8AqVrOWu7ky2Ty4nsXcyE0s5S3e5ve8w7t8xw/8yE/8lZ8Zki6O7MtQxnE0x3Icx3MCJ3Ind3Mv9399XoZ9h2M5jonczhHLAkcymjEcxcmM5xEeZSOb2MwWnmEn52bbB7icK5jLPK7kKq5hT07goH8NHMJhjOJ4TmQFq1jNGu5gLY+wkc08xvPsv9y+wkzmcCd3cTf3cD8P8BAPs4FH2cIufsOrvMbrvMGbvM/HfMJn/JEvOGiF+DKKYzmeE7mG67iRpaxgJatYzR08xMNsYDNbeIKtPMnTPM+QleqTfdmPoYzjFE7ldM7hXCYzhfM4nwu4kIuYxsVcyjUs5DoWs5QVrGINd7CWzTzGdp7lOZ7/Ov5V9msu5GquYQHXch2LWHXSOHiEjWxiM499/fyUz3mMXQwJaQu+r7I3+7AvQzmDM5nARCYxlyuZz9UsYCHXch2LWMxSLuoVuJwrmMs8rmI7z7CDnTzL86zsHVjNAzzEOh5mPRt4lI1sYguPsYuX+JKv+Jpv+Jbv+J4f+JGf+Jlf+Bt/5x/8i39/nW8f82UdD7OeDWxkF7u5/h8CN7CYJdzIUi4aEJjGpVzNAhZyLYu4YKDncClXs4CFXMsi9hoUOIIjGc0YjuJojuF4TuBEzuICLmIaF3MpC1jIIu7iHh5lE+/yCZ/xOX/kT3zBd/zAT/yVn9l7sL7AUIYxnBGM5AiOZDRjOYpxTGAi05nJLOZwOXOZx3ye5Cme4Vme+zr+IcbPERzJWI5iHNOZySzmMJf5/J53eY/3+YAP+QOf8Ef+xBccMjTwBE/yFM/yPEOGyXv2Zh/2ZT9OYTynM5kp3MwylnM7dw4P3M093Mt93M/jPMFWtrGD5xkSZT7sy1CO5liO43hOZDIzmM1K7uRu7uV+NvAoW3icJ3iSp9jODnbyLM/zHu/zIR/xB77kK77mG77lF/7GP/gn/2LYP6oXRnAABzKSB3mIh1nPo2xmC+fGWgemMJ0ZzGQWV3IV83mDr/iG7/ieH/iRn/iZG2bYz1jCjdzEUoYkqDP2Zh/2ZSgjOYLRjOUoxnE0x3I8J3Aid3I393Av93E/b/Fb3uZ3/JshiebH3uzDfgzlIA7mEA7lMEYxgbO5jDlczbUsYhm3chu3c84/yy+mMJXLmcuVXMV8rmYB13IdK1jJKlazhrU8yEOs42HW8xZv8zt+z7t8wqd8xh/5E19wwb84pzCNi7mU61nMEpZyyBzryBlM4CwmcTf3cD8f8DHD5gb2ZwQHcCAjGc1YxnE7w1Pdz0iO5liO43hO5FVe403e5hf+xt/5B//k3wz5D+qIfRnKcEZwBEcymjGMZRxHcwzHcjwncCInLbD/cyqnM4fruZGb+A2v8iaf8QVf8jV/5lsuWCgvuZhLuYr53MhShiw8E/Qp9mYfhjKBiaxc2xHUK4/wKJvYwhM8xcHrAodyOGdyF/dwL/exnWfYwU6e44GNgQd5mPVs4BEeZROb2cKFFYFLmMt8ruFaruNGlrKM2zm2MnAcp3AO5zKF8zif6czkMuZwFVdzDQtYyCKWcUhVYBSncQEXMo2LuYRLmc0tLOc7vucHfuRnhlQH9mYf9mU/hjKSwziKUzmN05nODGYxm6tZwEKu5TqWs4JVrGYNa7mbe7ifXezmJfZw0E51xKEcxuGcwZlM5CzOZhVrWMtmHmMrr/A6b/AWv+V3/J53+JTP+YW/8U/+9XWeu+QjhzOKozmGYzmO4zmBCZzFJO7mfh5hI1t4jGd4judZtdu6cwcPsYFdvMQeHtzjetbxMOvZwPV7A4tZwo3cxFKOOBA4ktGM5SjGcQXzuJL5rGINd/AIj7KZx3icrWzjSZ7iaZ7hOXaxm5d5i7f5Hb/nHd7lU/7In/iOH/iRn/grP/MLf+Of/IsVB8WLNdzBWh7hUTaxhZMOBU7mFMZzKqczl3nMZxm3s4KVrOYOHmUL0+vsO8xiDsu4nTu5i7u5h3u5j0d5nCfYypM8xdO8yMscclif5AiOZDRjGMc1XMt1PMKjbGIzW3iM3/AKr/MGb/J73uFdPuAj/sDHfM03fMsP/MhB9foph3IYhzOKsRzFOM7lPM5nOpcxmzlczQIWci2LWMwSlrKK1axhLXdyN/dwP4c0mDej2M4O/v9rsNPgHvM3YfQIJhIUgkFQJOIgKAT/mXlmqiKRDAmeLJgspLKIyYLKglPnXRZMIjhZxIigSHAkESeLeGat6m7d/9Na6+q9ulvrsnT3WLq7ult3vz71zP3x6lPJ7/7d9/W9vtd1fe/kBvt5kx/yI37MT/gpP+dX/Iaj/jlwNMdyHEM5kZO4hMsYy+VcyXVMYCLTmcVs7uJu7mEjj7OJZ9nBc+zkBV7k5HPOZ0Yxmou4mF/zIb/hIz7hU37L7zmq03siQziW4xnGyYziYr51PvAO3+Y7/DOf8QVf8gf+yJ/YfMH5zlaeZjvPcPu/6B9mMZs5zOVu5rGcdaxnAxt5nE08wVO8zh7eYD9vcoBDHOYtjvA23+CbfIt3+CE/4sf8hJ/xc37L7/iMz/mCL/nj6+v+ze/5A3/kT1z0794juZjLGMs1jON6FrKIFaxkFat5mGP+Qz1zHMczlBMYxnBO5iquYRzXcv3r6/7T3w1cw3Vcz03czBSmcgu3spRlLOc+7mfNW95DWM8jPMpjPMcLvMgBDnKItzjC24y/Y34ykRuZxGSmMJVbuJX5LGAR97D49XUf+j2LWcNa1rGex9jARh5nE0/wFIc4zLd4h+/yLt/jPX7AD/kRP+Yn/JwzP3IOMIqLGMPFXMU1XMt1XM94bmAiNzKJyczmblbyEK/wKmd97D2RcxjJuZzPNXzEJ3zK7/mCL/kTuz7xdxB7mf+Z+cEi7mUZE76wXmYxh7ncxTx+yI/4KT/j5/yCX/IBv+ZDxn8pHiZyI5OZxRzmchfzmM9CFnEPi7mXrV85V3mGAxziMG/xNuse6C+e5Tl28jwvctfX6otHeJQNbORxNrGZLWxlG0/zDK+zh328wX7e5AAHeYsjvM0P+RE/5if8nF/wS37FB/ya3/ARH/MJv+V3/J6/sWJMX9CvrOYhvsE3+Rbv8G2+w8d8yuyQwFyWspxT5gVOZQRncAEXMorRjGEt63mUZ9nBc+zkeV5gzYLAOh7hMZ5lB8+xk+d5kV289vr7C32PnbzIAQ5xmLd4m1Oj5IuzOIeRnMv5TGM6M5jJPPawn2/xDt/lXb7He7zPD/gRv+CXfMCv+ZCP+ZI/8Ef+zF/4ir/xd85cHLiem5nCVGYxmznMZR6vs5d9vMlHfMwnfMpf+Ctf8Q+O+T8Cx3MxW5cEnuGUpYHTGMHpnMlVXMO1XM9aHuFRnuYZ3uAtjnDL8sBtzGIOd3E381jCMu7jgde/X6Hv1+p7RjOGq7iaaxjH9axYZ86xitU8xF72cYBDHOZtjv6rwHGcxdmM5DwuZAwb2MjjbOJJdrCTP/MX/spX/I2/c+lfB27428BEZjGbOczlbpayjOV8l3d5j/f5nC8ZnyYOJjKJBSziu7zLe7zPB3zOl5y9U/45j0u4lMsYy+VcwUb+zF/4K1/xN/7O9H8wV7mDFaxkNQ/yEDdnqb+cwEEOcZi3OMLaXOcgj7KDnbzAy7zKKfnmCiM4k7M4m3MYyfl8j/f4AR/xCZ/ye77gT6wpsC7WsZ5HeIwNbORxNvEUmwvNVbbxNM/wHId4m2l7nZ/czh3cySxmM5e7uJs/8CeW/KN+YzkPMGqf+mUaM5jJ7dzJHOYyj1P223dGcCbnMJLz2Vp8I8gXh3ibM/cHRnExV3EN13Id17OOR3iMzWxhG9t5kZfYxW5e4VVe4yCHmTKmPzjfWMi9r38fEpjPQhZxD/cyLSwwg9u5kxWs4kEe5rt8j/f4Pj/gM77gD/yJ8eGBCUzkRiYxmVnMYS53MY8HWDM98AiP8jSvs5c3eJMNMwKPs4kneIqX2MVuXuE19nLs6sDxXMAoRnMRY7iYp9jLG7zJmvWBdaznER7jJXbxCq9x2p8CZ3I9G3icJ3iK19nLPt7gTYb+VWAYJ3ISJ3MP9/IgD/Nz/sxf+Rv/4KjUwNEcwxCO5XguZSyXcwVXclGa/eEqruFaruN6NrOVp9nOM7zELl7hVV7jxnT9zHwWsJBF3MNilnIf9/MA47frVyZyI5OYzCzmcBfzeICt/2D9PMMBDvEWbzM+SzzcyGSmM4PbuYM7mcUc5nIX81jIPdzLSlbxIA/xML/kV3zAr/mQ3/AZX/Alf+BPHJOtfjmOoZzAMIZzEqO5hhuYwEQmMZkp3MJtLGAhi1jMMu7jAdaynq08zTO8zh72so832M8BDvEWb7/+PMfvOcJjufqULWzjabbzDM+xkxc5wEEO8xZHOGqXOcUxDOF4xnI5V3AV1zCOa7mO67l5d2AqtzKLu7ibeSzlAdaM+n+DfWQ9j/Aoj7GZrWzjGZ5jJy9ygIMc4i2O8DY/5Ef8hJ/yM37OL/glH/BrPuQ3r+MfHVgzxvpZzyM8ymNs4gmeZBe7eY3X2cNe9vEmBzjIYd7iCG/zC37Jr/mQ3/AFf+Yv/JWv+Bv/YGuI/WQn48cFbmACNzKJydzMVG5lOjOYye3cwZ3MZg5zOWV84DRO5wzO5AIuYgwXcw3Xch2zuZvlPM+LvMGbfINv8i3e4Tv8iJ/wOV/wJUP/InACwzmRkziZC7iQUYxmDBdzCZdyGWO5kvHcwAQmMpmbuJkp3MJtTOd27uBO7uJu5rOAe1jMvSxhKfdxPw+wgpWsYjUPs471PMKjPMYBDnKItzjC2+ydqD54h+/xV75i6yR9ySnT1T8jOJOzOIeRnM+r7OcbfJNv8x2+y7u8x/f5AZ/wKb/n76ybIZ9sYCOPs4mn2MzTbOcFDnGYdTPtD1t4mu08yw6eYyfP8yIHOMRh3uJttv6lc5JnuCRav3EZY7mcK5jAZO5hMUtZzgpWsZoHeZhblulHlrCM5dzH/TzATav0N1O5hdtYwjKWcx8P8H3e5wf8gl/xaz7kN0xY4zxiMtOYzkxu5w7mMI+F3MO9rGQ1D/Fd3uU93udXfMbnfMkf+CM3xMkzU7iF25jFbOZyN0tYxnLu434e4BXe4m3GrxUXE5jIJCZzEzczhancwm3MZwGLuIfF3Mt3eZfv8z4/4Bd8wK/5kN+8jnO9+JjDPFawigd5mGP/FDiO4xnKCQxjOKdwGmdyFmdzDiO5hMu4nCu4kmlMZwYzuZ07mcM81rCWdaxnM1vYyja28wwv8Qqv8hqvs4e97OMAh3iLI7zNTX+l7pjKLdzGfBayiHtYzL0sYzkPsIvdvMprvM4e3mA/o/7aexpjuIyxXMkEpjCfe1jMvaxgFat5iIdZw1oe4VGeYycv8hIvs4vdvMKrHOAQh3mbm//GvnErS1nOZrbyNM9wiLdZ8D/khyUs5T7uZzNb2cbTbOcZXmIXr/Aqr3GAQxzmLY7wNkf/nbnA2ZzDSM5jLet5lKfZzjM8yw6eYycvsIvXWLPRXGA9j/AYu3jt9fVJPueo/MAxDOFYjudiruIaxnEt13E947mBCUzkRiYzhdtYwUpWsZodPMfzvMCL/JoPObHA36+cwdmcw0guYBSjuYiLuYyXeJld7OYVXmNokfOKYQznJE5mBGdxNucwkvM4nxWsZBWreYh1PMZmtvA023mGnbzAS+ziFV7lNYbusX6GcSIncTLTmM4MZnIHS1jKcu7jfh5gBStZxYM8xMN8xMd8wqf8lt9z1D+aKxzDEI7leC5gFBcxhosZy0IWsYSlLGM59/EAJ5TIOydxARdyEWOYxnRmcjt3sI7P+SNHlcoLQziW4ziqTN44luM5hVMZwemcwZmcy/mM4iIuZj/f45d8wFHl4ucYhnAsxzOMkxnFxaxhLet5hEd5jA1sZBNP8CRPcYCDHOYtjvA2F+yz/4xiNGO4iqu5hnFcy/Wctd/cYiTnch7ncwMTmczNTOEWbmM6M5jJ7dzBfBayiHt5iZfZxW5e4VX2sJd9vMF+DnCQQxzmCDeNGgzWyxSmMpNZzGYOc7mbeWxgI5t4ko/4mE/4lD/zF/7KV/ydo0ICR3MMQxjPBCYymSlM5TZWsJJVrOZhNo8PbGEr29jOMxzkqL8QN8cwhOM4lRFcyEWMYQMbeZxNPMke9rNwemAR97KM5TzA0BmBExjGcE7kZKYxnRnM5E5mMYe5zOOCmdbPKEZzERdzCZdyGWO5kglMZDJTmMptrGAVq3mYY/4ycA1b56oHnuE5jo6y31zAhYzmIsbwTb7DR3zMp/yW33F0tOdxIaMZw4Zl6olNPMGTvMyrHB2rjhnKCQxjOCdyMqcygmnMYCZ3Moe5zGMDG9nEEzzJyxxVI36OYQjHcjyXMZYNPM4mnuBJnuK3/I5/cEmt+zOWK7mXB3mIh7nqWOBqrmEc13I9G3icJ3iSp9jLPt7kH5z1T4FzOJfzuZIneJKnGNqgPhjOiZzMJVzG5VzJD/gTxzTaR4YxnFM4ldMYwZlMYwZ3suSSecly7uN+HuCoLnExhGM5nhMYxnBOZgyTmMYMZnI7dzKHeSzhPu7nAR7ku3yP9/g+7/MDhnZbB8MYzomczFmcw0jO5TzO5wJGMZqLuJjLuJKruJprGMd1XM98FrKYe1nGclawkgd5iAm9gRuZzE3czBSmMo3pzGAmt3MnS1jKfdzPA2xgI5t4gid5ih3s5Hm+y7u8x/d5nw+46JZ9YhtDRtQLwzmZszibczmPAxziLd7mlP/Q54zgdM7kfK7lJV7mFV7ldd5gP29yiMMc9Z/mAEM4luM4nqGcyEmcxdmcw7mcx/lcwChGczFjuZpxXMsa1rKO9TzCY2zkcTbxFM+yg+d5gRfZxW5e4TX2sJf9r+N8W3z8kB/zU37Gzxn6Z/OLYQznZM7ibM5hJOdxPhOYwlRuYx0b2MjjbGIzW9jKNrbzDK+zh/0c/UwdMoTjGcZwTmY8NzCBiUxiMktYyjKWcz8PsIrVnPJc3zKCm17KJ1O5hduYz0IWcS/LeIDh0/4l+B4LWMgiFrOS1WxgI5v4M3/hr3zF3znqUuBohnAsx3Eda3mUHezkBV5nD3vZx37e5JTLgVM5nTM4k7M4m5Gcy3mcz4FrgYMc4jBHOOX/8XxOYwSncwZXcTXjuI4NbORxNvEET/I6e9jHG+xnyI3AUIYxnBM5iZM5i3MYybmcx4VcxBgu4TLGMp4buJFJTOYmbuYWbuV27mAFK1nFah7kodfr61cXnMO5nMf5jOcGJnAjk5jMNGZwO3dwJ7OYyx72c8FdeWYUoxnD1YxjM1vYyja28xIvs5tXOeV9dc5pjOAMLuBCRjGaMVzNS7zMLnbzKgc5zPz75h4LWcRiVrKaZx+ZP+zkeV7gIGsfm1vs4GVeZcv38spBjnDqf8kXZ3A147iOtexgJ6+zh73sYz9bntlfDnKEU5+LhzO4gAsZxWguYgxXM44NbORxNvEET7KD19nDXvbxBvu5+QdzgKXcz03N/xpcxxSmMp0ZzGQjm/iYT/kLX3FBW+BCRjGaixjD1YzjptPiZApTuZXZzOUX/JJf8QEf8iUnnAsMZz4LWMgiFrOClaxiNQ+xkU38mb/wV77i7xw1HDiaIRzLcZzAiZzEyZzHddzEzUzlFm7lNqYxnZnczh3cyV3czVX/Zn+5hnFcx2a2sJVtbOclXmYXu3mVgwz9d3liGMM5ibMZyaWMZSObuPkr+WIJS1nOfdzPWXX/FjyPkZzLeVzF1VzLdfyQH/FjfsLP+Dun1gcu4VIuYyxXsId9DD8uXq5gPDcwkRuZxGSmMZ0ZzOROZjGbOczlbubxIA/xI37GX/iKS5usgxuYwESmMZ2Z3MGDPPT6+i7XM4OZ3MECFvExn/Apf+ErTvlX+8lpjOAMLmQ0a1jLOtbzCI+yhW1s55T/8HxOYwRncCGj2cwWtrKN7bzMbsb/p/1hAhOZxHRmvr7+js+5iZu5hVtZwCLuYfHr773reuazgEXcw2JuuCsOZjOfBSziHhZz6nvyyxlcxdWM4zr2sJ8f8TN+wS/5NR/yG/7MX/iKv/F3TrknXk7nDC74VF0witFcxBj28EN+xI/5CT/lZ5z1mfnKuZzH+VzN5q/VJdt4mu3s4HleYP6CDQf/ex9ZyCLu4V6OWhg4mmMYwvEMZRjDOZGTuYprGMf1TGM6M5jJnWxdEniGzcsCW9jKNp5lB8+xkxf5Lu/yPd7jfX7AD/kRP+YnLFkeWMoylnMfD3D0CnlmCKcygku4lMsYy3wWsoh7WcIylvMAa1nPVra9jm+V+BjKCQxjOBO4kUlMZiVTVwd2sZvXOH6N53ASZ3EOIzmX87mAC7mIMVzMpYxlGtO5nTuYxWzmchd3M4/P+YJj4uST4zmBYQznZC7kIsZwKZdzBVdxDeO4lusZzw1M5EYmMZkpTOU2ZnAns5nDXO5mIfeygpU8yEM8zLq/Ua9s4HE28RSb2cJWtrGdZ3ieF3iRH/JjfsLP+RUf8BtG/a164zLGMos5zOUu5rGK1Zz2d+YE5zCS83mZVznEYZYmmgvczyvJ+pH1fy/fPM4mnuApnmUHO3meF3hrV+Btnt3tezzHTobm6xeGMZyzOJtzGMn5rGAlq1jNgzzEs+zgBV5nD/vYzy/4NR/yG24qCNzMFKZyK7OZy7VF+pin2cUrvMbMPeqNOczlLu5mHt/kHb7L9/g+7/MDPuNzvuBL/siv9uobLvpH843LuYK3eJsLysxHxnAV1zCO63mCp3idvezjDfbzJieUqztuZBKTmcYMbucO7mQ+C1nEClayitVsYCOPs4kneZYd7GTrEfOPy7oCVzKNGczkdu5kFrOZw1zuZh5Du/UvwzmZy7iSU657P2IEp3MGZ3IWZ3Mu53E+05jODGZyO3ewhGUs5z4eYAMbeZxNPMFTbGEr23iJl9nFbl5jL29ygIMc5i2O8Dbf4Jt8i3f4Zz7jc77gS/7AH/mKU3rsHyM4gwu4kFGM5iIu5jLGciXXMZ4bmMBEJnMTNzOFqdzCbaxiNRvZzFae5hn28Ab7OcAhDvMWR3ibo3q9R3Isx3Map3Mmo7iY19nLG7zJWX3OT0ZyPnvZx37eZEq/vLGMB3h8SD+wlW08w7Ps4Dl28i3e4Xv8gB/yI37MT/g5p92yXkbyGV/wJX9iw4j18ARPsYvdvMZeTv1f+oGJ3MQUpnIb05jODGZyJy+zm4McZvMj84etbONpnuFZdvAcO3meF/kVH/DIk8BjPMMOdnKAgxziMG9zwXfmBqMYzcVcwqVcxliuZDw3MIGJ3MhkbuJmpjCVW7iNFaxkFat5kIdfx/O9OLiRSUxmFnOYy13MY/5/+b8QC1nEvSxhKctYzn08wNYf1A3P8hw7eZHh8RuDfmMk53MR47iJm5nCVOazgIUsYjHLeICVrObsDYHzuIXbuYM7Wcd6HmMjj7OJQxzmqsTA1VzDOK7je5sC7/ETTk0JjOAMRnIu53E+G9jI42ziSV5haGrgBIYxnBM5ibMZyVjWsI71PMsOnuN5XuBF9r2+3xb3Yz2P8Bgb2MjjbOJJtvA023mG53ieX/BLfsUHfMiXfMWOre7HTjbvEQdb2cZ2nuEgR3hpVFIw99nFbl5l4+jAJp5kKy+xi1d4ldd4nT3s4w32s2RcYCnLWM59PMDRoYGzOYeRXMKljOUK1rCWdaznUR7jJV5mN69ygIMc4jBHOHpCYAhDGcaJnMTJnMdYbuJmpjCVWcxmDnOZx3wWs4JVPMjDrGU9T/AUW9jGszzPC7zI6+xhL/sYOTFwAaO4iDFczLVcx/XczK3MZgGLWcJSlnMf9/MSL7OL3bzGd/ke7/F93ucHfMQnfMrv+YIv+RMnTAoMZyTjuYEbmcTN3MLt3MkCFrGEZdzH/TzAKlazgcd5gid5imfZwXPs5AVeZN/r9STqC27mFm5lPgtYxD0sZhnLeYBvpthXvsd7fJ8f8Blf8CV/4ui0wDEM4ViO43gu4EJGMZqLGMNVXM01jOMABznEYY5wQrr6YgyXcgWPsZFNbGYrT7OdZzjMkO3mIycwjOGcxMmcxghWsJJVrOYhXuJldrGbgxx+HdcO8XAiJ3EyZ3MelzKWm5nKfBawmAd5mDWsZR3reZQneIrNbGEr23mG53mdvezjnKzAuZzPBYxiNBdxMeO5gQlM5EYmMZ8FLOIeFrOGtaxjPY/wKJvZwla2sZ0XeZndvMKrvMY3eYcf8mN+ys/5jM/5gi/5I3/jHwzLVn+czHhuYCKTmMoSlnEf9/MAD/IQD/MsO9jJ87zAi6/j2iUuJnIjk5jMFG7hNmYxm7nczQpWspqH2MwWnmY7z/A87/Ie43dbBxOYyCQmcxNTuIXbmMVs5nIXdzOfBSzkHhZzL0tYxn3czwOs5CGOKnQ+cQxDOI5TGcElXMpljOUKrmQNa1nHeh7lMTazha1sYzvPcEORfWEJS1nGcu5n/l55ZiGLWMxKVrORTexgJ3/mL/yVr/g7I9ckB3XGDUxgIpOYxnRmMJMlLGUZy7mfB1jDWtaxnkd5jD3sZR+H+YiP+YRP+R2/54O1gQvWBy5kFKMZw8WM/FPgJm5mClO5jenMYCZrWMs61rOZLWxlG9t5hj3sZR+nvBE4lRGczhlsYRvb2cVuXmcPe9nHG+znIIfZ+GbgSV5nD/t4g/28yUGOMP5t9csEJrKEpSxjOfezglWs5kEe5qh3AsdwLMdxPEM5gWEM5yRO4VROYwRncDYjOZfzuYALGcVoxnA5V3I145jAZOYwj/ks5F42s4WtbGM7L7Ob19nDXvbxBm+y5q6+YT2P8CiPsYVtPM0zHOAQb3GEtznq/cDRHMMQjmMYJ3ISJ3MqFzKaaUxnJrdzB3eykdfZw35+yI/5KT/nA37LHxl/Xz8xgRuZzDSmM4OZ3M4dzGI2c5jL3cxjPgtZxD0s5l5WspqjntkvjmEIx3EqpzGCl9nNQQ5xmOnPrZsFLGL4D9bDAhayiMWsZDUb2MjjbOJJnmUHz7GTF3iRP/MX/spX/J1/cPOPgW9M+fv/9i2+zXf4Z77Lu3yP93ifH/Ezfsmn/IE/MX9aYAELWcRi7mVoROAEhjGc0xjBWZzNOYzkPM7nJm5mKrdwK7exhKUsYzn38wCrWP36edM9j1uZw1ze4bt8j/f4Ab/gl/yKD/g1H/I5R88MHMMQTuNMLuQyxnI5V/ASL7OL3bzKsX8ZGMVoruJqrmEc1zON6cxgJnewgpWs5iE2sonNbGUbz7CL1zjAQd7iCG9zySr5YyxXcg3jmM8CFrKIxdzLN/gm7/BtvsM/813e5fu8zw/4KT/j58xdHVjDWtaxnsfYwEYeZxNP8BSHObjGz7zFEdbEeT7reIRHeYwdPMdOXuDotYHjOJGTOJ0bmcwdnLIucCojmM9CFnEP97KEpSxjOfdxPxt5gifZx35uX6+eWMgi7mEx97KClaxiNQ/yEN/gm7zDt/kO/8y7vMf7/IDP+Jwv+JI/ctGfAmO4mGu5npuZwlTmcjf3ccrf2E9OYwSncwZXM47rWMNa1rGeR9nMFrayje08w8sM/R/OR4YxnJO4lLGvr/9b1zGNGdzOnaxgFQ/zOJvYwTf4Jt/iHb7Nd/ge7/F9fsAP+TE/4ed8xMd8yu/4jC/4A3/i6CkpQf8zlBMYzomcxMm8y/t8zO/4jM/5kj/wR46aGjiaYxjCsRzH2ZzHBYxiNBdxMZunBbbwNNvZHOFztvE023mGpX8ZuJ8zZgXO4mxGci7ncTXXsYOd/Iif8FN+xp/5C1/xN/7OKbMDp3I6Z3AWZzOSczmP81nDOh7hMbawnWd5jud5kV28wmsc4CCHOcJNaYEp3MKt3MZslrCUZSznPu7nwgx1xWiuZhzTMgPTmcFM7mA+C1jIIlaymo08ziaeYjNb2Mo2nmY7L7GLV3iNAxzkMEcYvzNwAxO5kUnczBRu5TZmMZu53M18FrCIe1jMUpZxHw9w0z+Ih6ncwq2clqMvOJOLuJhruI41rOMRHmMzW9jGdp7nRV7iZXaxm1d4lYMMzQ0MYzhnM5LzuJQH2cgmnmR7jTh5ge11fubWo/aNBSziHhZzLxf9U2AMl3MFD7HmRGAtj/AoG9jIEzzJAQ7yFkf4IT/iJ/yUn/FzfsEv+YBf8yG/Yei/OFcZzklcyhVMYzozuZ07uPP1ff7VvOIixnAJlzKWy7mCK5nGdGZyO3dw7L85lzmJq7iaa7mO67mJm7mFW7mN1/89sIc32M+bHGH+U3XIPSxmCUu5j/s56pn3EYZwLMdxHldzHd/lXb7P+3zEx3zKb/kdZz3Xx4zkXM7jKq5mHNdyHY++0Cc8wZP8lJ/xS37Nh2x+aa6xjafZzjMcPWprkEeO4yzO5hxGch6XcCmXMZYruJK17GAne9jH9NGBmcxnAQtZxCl/ETiVEZzOGVzF1VzDOK7lOtaynmfZwXPs5AVeZw972ccb7Gd6qPVyB/NZwEIWcQ+LWclq/sjNEwJTWRNufaxjPY+ymS1sZRtPs52XeJndvMKrvMZbHB2lDjmOszibkZzLeVzIN/gm7/BtvsMv+ZC/My3afjCDmdzBClayitU8yEOMXxa4kUncxM1MYSq3cCvzWcBCFrGY7/Iu3+M93ucX/JJf8QEfvo4vNnDg7wIHOcRh3uaU7fqREZzOGZzJK7zK6+xhL/vYz5sc4CCHOMwRrt6h31nDWtbzKM+ygxd4md1s3qVP2MZ2nuV5XuBFXuJldrGbV3iVgxzmlN3yzQhO5wzO4mxGci7ncT5XcTXjuI4dvM4e9rKP78ZvC+qR7/EeP+YnHJUQOJpjGMKxHM/JnMYIzuJszmEk53IeV3E147iW65jCVGbyER/zCZ/y+9dxJoqTcxjJBh5nE0/xMrt5lT28wX7e5CCHOSU5cCqnMYIzOJOruJprGMd1HOAghzjMEY75e/vJcRzPCQznbC7gQkYxmjFcwqVczhVcydWMYwUrWc2DPMTDrGEdj/Aoj7GBjTzOJp5kM1vYxnZ28Dwv8jK7eYM3X+cvTb0xkvHcwAQmMo3pzGAmd3AnS1nGcnbzOnvYyz728yYHOMghDvM2Q3eoG4YxnJM5ldMYwZmM5wYmMJHJrGI1s3ICs5nDXO5mHjv5jM/5gi/5I3/igkL1zyhGcxFjuJpxHOAghzjMEY4u0pecwHBO5CQu4EJGMZqLGMMmztmjHnmZXezmNb7gS876R/XNOYzkJm5mClOZxnRmMJM72c3r7GEv+3iTAxzkEId5mxPK5JFLGct0ZnIH81nAQhaxmBWs4kEe4mG+wTf5Fu/wHW4ql0du4TZmMZs5zOVulrCUZSznPu7n1LH/M3iv4QzO4mzO5Ty+yXf4Lu/yfd7nyXGBl3iZ3bzCq7zGjvGBFzjIETb/RWALW3ma7TzD/LWBBdzDYu5l/LrADUzkRiaxgEUsZs36wFrW8wiP8hg72MkLHOQIa/7kvqznER7lWXawkxc46W8DFzKGaUxnJrdzBytZzYM8xMO8y/t8zh8Z+neBExjOiZzEhVzEGJZlB5bzAGPyA1dwI5O4hVt5iDMK1DknFf5P54M4GM1FjOFi7mA2d3E3pxbpO87gLM7mXM7jon2ex+VcwSRu5SFO2e+5nM4ZnMnZnMt5XFK3J/h/FGO5nCuZwBzuYh6rWM3DDKsPDOdsRjKDO9nARh5nE0/yLDt4jp0sPhZYwlLu434m/VPgJm5mKrdwK4tY0xpYyzrW8wiPsZd9HOAghzjMEX7Nb/iIj/mET/mML/gDf+KU04FTOY0RnMn5PMrr7OUN9vMmL7UHXmYXu9nLPt7gTU48EziJ0zmDq7iaaxjHdSxhKfdxPw+wggd5iIcZ+s+BExjGcE7mbM5jAhO5iZuZwlRu5TaG/qt8cBIncypncC7ncRVXM45ruY7ruZFJTOYWbuWCR4ELGcVoruJqrmEc1zHlcWAms5jNHOZyN/PYwEYeZxNP8iw7eI6dvMD1TwPP8yIvsYvdvMKrvMbp3+ojFrCYJSzlPu7nAdbwCI/yGJvZytNs5xne5Kbv1B9TuZUNbORxNvEkT7GDnRz9X4FjOY4TOYlruY4bmcQSlnEf9/MAK1jJKh7kIR5m64vANiZ9URzcj9lfBpaynKNajwbr4xiGcBzHcwqnchojOIMzuYRLuYyx3NwWmMJUZjOHuezkgjOBCxnFaK7iaq5hHNdxwz8fNc+OmmeB6cxgJsvZwEYeZxNP8hTbOOay/DKUExjGcE7mFE7lNEZwJuO5gQlMZDLLWcVqRvYGZjGbOcxlHrt5nT3sZR9vcoCDHOIwb/MRH/MJn/J7zrkhbqYwlRnMZBazmcNc5rGL3bzOHvayj/28yQEOcojDHOFtPuJjPuFTfsfvOXpQPTGEUziV0xjBpVzGWK7lep77l8CLHOAQh3mPDzjh39UxwzmLszmHkSxiJatYzRrWso71PMpjvM4e9rKP/dz0H+qGqdzCrdzG0P+0ToYxnJM5hVM5jRGcyXhuYAITWTWqIbjf6MCpnMYIzuQcRnI+48cEJjCRG5nMFE4N8RxGMIOZDJ0YOIFhDOdUTmMEZ3E25zCS8zifKUxlGtOZwUxu507WTAqsZR3reYTH2MDjbOIJnmIXrzF0ujwwnBM5mcuYwZ3MYS7zOG0GZ9pvzmEkH/EJn/J7vuBLNvyldbKJJ3iKXexmL5s3BrayjWd4lh08x05eZEKpumQyU5jKClayitU8yMNcUtbg/6jyzlgu50rGcwMTmMgkJrOClaxiNQ8ztFyfMIzhnMjJXMgoRnMxl3AZY7mSGdzJ0Lc8n+HMZwELWcQqVrORx9nEFrayjW/wTb7FO3yHj/mU3zH0z+JmGMMZwQIWsojFrGAlq1jNy+xiNwc4yCEOc4TNX8sDW9nGdl7iZXbzCq9yykPzkxGczhlcxdWM41quYwMb2cQTPMnr7GEfb7Cfo54FjmEIxzOUExjGcE7mKq7mGsZxPeO5gQlMZDLLWM4qVrPmuXOAdaznER7jAAc5xGGGvbQermEcNzOFqcxgFrOZw1zuZh43jGoM1s1NTOEWbuOXfMCHfM6XHB0SOI5TOI0RnMP5XMCFjOYixrCZLWxlG9t5iZfZxW5e5TUOcIi3OMLbnDreOriQ0YxhDWtZx3oeZf5fBBayiHu4lxWsZDUPcXxYYCgnMIzhnMxZnM05jORczuNCRnExl3ApY7mcK5jGdGYwkzu4k/ksYCGLWMxKHmYL29jOszzH87zAi7zEy+xiN6/wKnt4g/28yVHh+oIhHMcwTuRkzuJszmEk53IeF3AhoxnDJVzGWC7nCq7kZm7hVm5jFnO4i7uZxwpWsorVPMhDbGQTT7KHq6ICV3MN47iOzWxhK9vYzkEOMzRa/zCM4ZzE2WxkEzcsNleZxCxmM4e53MXdvMt7vM/n3LDMc1jCUpaxnPv5Bb/kV3zAh3zG53zBl/zx9fNS3J+bU9UL81nAPSzmqO2BYxjCsRzH8ZzKWZzDSM7lPM7nAkYxmosYw8VcwqVczhVczc1M5RZuZTZzmc8C7mEx97KEpSznPu7nATawkU08yR728w2+yTt8h3/mF/ySD/g1H/Ixn/IZn/MFX/IH/sSf+Qt/5Sv+xj84eoc+5ELGMI3pzOR27mAFK1nFah7kIS74B89jNBcxhosZx7Vcz9G71D1DOJ5TOJURnM4ZnM05jORczuN8LuFSLmMsV7CClaxiNQ/xMBt5ktfZwz7280N+zE/4KT/nF/ySX/EBv+bD13nbLW+M4HTO4CquYRzXcj3juZFJTOYmbmYKU7mV25jGDGZyO3dwJ7OYzRzmchfz2MP+198fOB58nznMZR4f8Qmf8mf+wl/5ir9z2nDgHEYygYlMYSrTmM4MZnIna24H1rKO9TzCo2zh1P8VGMEZXMCFjGI0FzGGtaznWXawk+d5gT3sZR/7X993WlOwHtbzGBt4nE08wVMc4BCHeYu3+THPRQR2MmV6YDprWMs61vMoj7GXfRziMB/zCZ/yZ/7CX/mKvzP0LwMnMIzhnMSpnMYIzuQszuYcRnIe57OEpSxjOfezitWMiQpcwqWM5XKuYAKTuJXp3M4dzGI2c7mLeSxgMStYxWoe5ujowHEM5QSGcyIncTIXcCGjGM0N3MgkbuJmpnILt3IbM5jJna/jXCZOTmI8NzCBiUxiMktYxnJWsJJVrOaH/Igf8xN+xqcctTZwDEM4iVM4ldMYwRmcyTmM5FzO5wIu5CLGcDHTmM7t3MEsZjOXu7ibeexhP9/le7zHD/iQT/gzf+Fv/P11ftYFTucMzuJszuU81vIIj7KBjWziCZ7kKV5iF7t5jb0cYcd6c5jneYEXOcghjvA2W/8UeIZn2cFOnucFDnKEc/5a3TCeG5jARKYxnRnM5A7uZC3r2cI29nHU35lDHMMQjuV4xnIVV3MN47ie+SxgIYtYwUpWsZqHeJgP4k8EcycxMIzhnM05jGQFK1nNgzzEGtayjvU8ymNsZgtb2cZ2nuF19rCXfbyzMfATjv77wDEM4RRO5TRGcCljeYmX2cVuXuUABznEYY7w9uvnpwTO4Ef8jD/zF77ib/ydIanuxwjms4CFLGIx97KH/dxUEriZKUxlFrOZw1zuZh4b2cSz7OA5dvIin/E5X/Alf+RPfMWF5YFRjOYqruYaxjF/n7yxkEXcy6j9gWlMZwYzuZ07mcUc5jKPS9acCuqQyxjLFVzJOG6KC9zMFKYyi9nMYS4b2cQOnmMnI/8UGM8NTGAik5jMEpayjOWsYS3rWM9mtrCVbexhL/s45y1xM4WpzGAms5jNHOZyN/PYxW5eZw972cebHOAghzjM23zEx3zCp/z+dXxvB77Jt3iHH/IjfsxP+Jwv+JJj/r/AEIZyAsMYzsmcwqmcxgjOZDw3MIGJTGYZy1nFas750D4zhanMYCazmM0c5nI389jFbl5nD3vZx37e5AAHOcRhjvA2H/Exn/Apv+P3HPOJfWIoJzCM4ZzEyZzCqZzGCM7gTMZzAxOYyCQms4zlrGI1x3wmfoZyAsMYzkmczCmcymmM4AzOZDw3MIGJTGIyy1jOKla/vs8z92Ei05nBTJaznm18xMd8wqf8mb/wV77i7/yDC14GLmQUoxnDxQz9Qd4ZxnBO4mQWsJBFrGAlq1jNbg5yiMMcGPt/B59ziMO8xdv8mJ/wc9aND6xnAxt5nE08xTf4Jt/iHZYsDSxlGcu5jwcYHxu4gQlMZDI3cTNTmMot3MYKVrGaB3mYY/4qMIQZzGI2c5jLPNb+tXyynsfYwEYeZxNPcZBDHGbU3wRGcxljuZJFLGEpy1jOA6xgJatYzcNcnR8Yx3gmMJHJTGEqt7GK1awpkDfW8xgb2MjjbOIpDnCQQxzmbY4qDBzNMQzheIZxMldxNdcwjmu5nu/yPd7j+/yAj/iYT/iU3/J7vuBPvF4U2MNe9vEGb7J+X2AzW9jKNp7hC77kz/yFv/IV/+Doce8H7+tcymWM5Qpu505WsIrVPMhDPMwpEwKnchojOJ8FLGYJS7mP+3mD/QwLC5zIyZzLeVzAhYzmIsZwMfeyggd5iIc5KjxwNEM4jrMZyXlcwIWM5iLGcBM3M4VbuJXb+NXEwAf8hvEJgRuYyI1MYjbzWcAiFvMu73FshnVzOmfyMBt5kpfYxSu8ymvsYR8HeIsjvM1f+Qc3ZcojU7mFW7mNOdzFPNZuDzzCo2xgI4+ziSd4krc4woEdgYMc4jBHOHen/uEyrmQNa3mER3mMp9nLG7zJTf+g3riFW7mNu7ibeQzPUv+cw0jms4CFLGIlq1nLevawl32csMvzGclCFrGS1axhLetYz6NsZgtb2cZ29rCXfQyp+SDoF47jeE7kJE7mdM5jPDcwgRuZzBLu435WsJIHeYiHGV7r/kzmJm5mClOZxnRmMJM7mMVs5jCXu5nHajawkU08yR72cfaRwDmMZBrTmcFM7mIea1jLOtazmS1sZRvPsoPneJ4XeJHX2cNe9vFt/pmf8nP+wJ84+mhgKCcwjOGcyEmMZwI3MonJTGM6t3MHd7KQRaxgJatYzUOsOS7/rGM9j/IYG9jI4zzBkzzFFrayjafZzjM8y/O8wIu8zh72so83OcRhfsrP+TN/4a/8jb/zD9aclifWsZ7X2cs+3mA/b/IJf+Yv/JW/8Xf+wSnXA6dxOmdyEWO4imu4luu4ngUsZglLuY/7eYCneJ4XeZ03eJMbe9Q3t3MH81nIIu5hMfdy4w19w2TuZAn3cT8PsJktPM12jv4X5wpDOYFhDOdETmI8E7iRSUzmFm7nDu7kt/yOm/7VecEUpjKL2cxhLncz8on6Zi3rWM8jPMYeDnGYb/EdfsEv+RUf8Gt+w0d8zKf8lt/xe/7En/krX/E3/s4/mPOtfLCBjTzOJp5iM1vYyja+wTf5Fu/wz3zG53zBl/yJrxj6X+qOYQznFE5lBOOZwEQm8xIvs4vdvPb6uuXfBtfxKm8XBGbtCcxmLnfz/X2B9/mMz/mSoxZ9H7zPcRzHcyGjuYzLuZKruYZxvMrGmMAVywMTVgSmMZ2Z3MU8TkoKjGUFq3iQh3iY05IDr/MGb7Lj7wM7mbQ5sISlLOM+7ucBPtgSmLhX/NzNN8oC3+Qdvs13GD/lv4L3YiYyiZuYwi3cym1c0vJb8H8SxnIF45nAjUxiMtOYzu3cwX08wDGnA0MYximcymmM4AzO5A328yab2gPvnA18l3f5Hu/xPj/g+HOB0zmDi7iYoZ3iZzgncjIXcCGjGM0YLuEyxnI5V3AlV3E11zCO69jARp7gSZ7ieV7iZXaxm1c5wEEOcZgjvM3Tg77HIQ5zwS15YhQXMYaLuYZruZ5XeI2hI4ETGMZwTuQkLuFSxnIFk5nGDG7nDu5kBatYzYM8xMOsYS3rWM8jPMYWtvHuf6hrfsGv+IDfsGbUR4f++3msYz2PsoVtvMyrHDU6cDTHMITjGcoJDGM4J3MV1zCO65nCVKYxnRnM5HbuZBazmcNc7mIea1jLeh7hURaGBBZxL8tYzgOMHxu4gQlMZAlLWcZy7uddvs/7fMbnfMkf2TI+sJ1n2cFOnucFXuQABznMWxxhc5jnsZVtPMOP+Qm/4Fd8wG+4ZHrgUi5jLJdzJeOZwI1M5i7m8Q2+xbf5Dv/MZ/yBP/Inhs1Q31zNNYzjep6bK88c4m2OXa2vOIXTGMHpnMGZXM6VPMFTPMtzPM8LvMjr7OUN9vMm96/Td3+l77iLu5nHN/gm3+LbfId/5jP+wB/5E8f+D/nidM7kcl7hlL8NnMppjOB0zmAjT/JDfsRP+RkfctbfBc7mHEZyLudxNdcxZaP5x3RmMJPX2cs+3uQjPuYTPuV3/Jm/8Fe+4u/8g8eT9DlDk/UDwzmRkziZUYzmMsZyJRt4gid5iuf5Lb/nz/yNv/MPlhaYtwwtET8ncjKjmM8C7mExS1jKcu7jfh5gLY/wKL/l9/yNf3BOqXricq7gWq7jBpawlGUs5z7uZzvP8wK7eZ097GUf+3mTg5xUph85jRGczplcyBjuYwUreZCHeJg32M+bHOAgh3iLI7zNseXqhRMYzomcxFVczbVcx/VsYCOPs4kdPMdOLnyw9v/877xwVPzl/+u/39c4hiEcxyVcymWM5Upu505WsJJVrOYhHmYNa1nHIzzKYzzBbg5wkMP8nj/zV/7G3/kHT5cGDjHlw97/NovZ3M3aM/8SxMt6tvAsO3iO53mBF9nLO3yXd/ke7/E+P+Dn/JIP+XZv4BM+/d/+/waq/mIgwwQA \ No newline at end of file diff --git a/docker/mobile/verifier/usa_geofence_regions/us-territories.txt b/docker/mobile/verifier/usa_geofence_regions/us-territories.txt new file mode 100644 index 000000000..0cd57bc57 --- /dev/null +++ b/docker/mobile/verifier/usa_geofence_regions/us-territories.txt @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/ingest/Cargo.toml b/ingest/Cargo.toml index b8df84ebe..8aa3cf9d3 100644 --- a/ingest/Cargo.toml +++ b/ingest/Cargo.toml @@ -41,3 +41,6 @@ humantime-serde = { workspace = true } [dev-dependencies] backon = "0" + +[features] +mobile-test = [] diff --git a/ingest/src/server_mobile.rs b/ingest/src/server_mobile.rs index 06d57d5d0..f1e806265 100644 --- a/ingest/src/server_mobile.rs +++ b/ingest/src/server_mobile.rs @@ -107,8 +107,8 @@ impl poc_mobile::PocMobile for GrpcServer { &self, request: Request, ) -> GrpcResult { - let timestamp: u64 = Utc::now().timestamp_millis() as u64; let event = request.into_inner(); + let timestamp = maybe_honor_timestamp(event.timestamp); custom_tracing::record_b58("pub_key", &event.pub_key); @@ -131,8 +131,8 @@ impl poc_mobile::PocMobile for GrpcServer { &self, request: Request, ) -> GrpcResult { - let timestamp: u64 = Utc::now().timestamp_millis() as u64; let event = request.into_inner(); + let timestamp = maybe_honor_timestamp(event.timestamp); custom_tracing::record_b58("pub_key", &event.pub_key); @@ -155,8 +155,8 @@ impl poc_mobile::PocMobile for GrpcServer { &self, request: Request, ) -> GrpcResult { - let timestamp: u64 = Utc::now().timestamp_millis() as u64; let event = request.into_inner(); + let timestamp = maybe_honor_timestamp(event.timestamp); custom_tracing::record_b58("pub_key", &event.pub_key); @@ -179,8 +179,8 @@ impl poc_mobile::PocMobile for GrpcServer { &self, request: Request, ) -> GrpcResult { - let timestamp = Utc::now().timestamp_millis() as u64; let event = request.into_inner(); + let timestamp = maybe_honor_timestamp(Utc::now().timestamp_millis() as u64); custom_tracing::record_b58("pub_key", &event.pub_key); @@ -204,8 +204,8 @@ impl poc_mobile::PocMobile for GrpcServer { &self, request: Request, ) -> GrpcResult { - let timestamp = Utc::now().timestamp_millis() as u64; let event = request.into_inner(); + let timestamp = maybe_honor_timestamp(event.timestamp); let subscriber_id = event.subscriber_id.clone(); let timestamp_millis = event.timestamp; @@ -243,8 +243,8 @@ impl poc_mobile::PocMobile for GrpcServer { &self, request: Request, ) -> GrpcResult { - let timestamp = Utc::now().timestamp_millis() as u64; let event = request.into_inner(); + let timestamp = maybe_honor_timestamp(Utc::now().timestamp_millis() as u64); let hotspot_pubkey = event.hotspot_pubkey.clone(); let cbsd_id = event.cbsd_id.clone(); let threshold_timestamp = event.threshold_timestamp; @@ -279,8 +279,8 @@ impl poc_mobile::PocMobile for GrpcServer { &self, request: Request, ) -> GrpcResult { - let timestamp = Utc::now().timestamp_millis() as u64; let event = request.into_inner(); + let timestamp = maybe_honor_timestamp(event.timestamp); let hotspot_pubkey = event.hotspot_pubkey.clone(); let cbsd_id = event.cbsd_id.clone(); let invalidated_timestamp = event.timestamp; @@ -318,8 +318,8 @@ impl poc_mobile::PocMobile for GrpcServer { &self, request: Request, ) -> GrpcResult { - let timestamp: u64 = Utc::now().timestamp_millis() as u64; let event = request.into_inner(); + let timestamp = maybe_honor_timestamp(Utc::now().timestamp_millis() as u64); custom_tracing::record_b58("pub_key", &event.pub_key); @@ -482,3 +482,29 @@ pub async fn grpc_server(settings: &Settings) -> Result<()> { .start() .await } + +/// Returns a timestamp based on certain conditions. +/// +/// If the `time` feature is enabled and the `HONOR_TIMESTAMP` environment variable is set, +/// the function will use the value of `HONOR_TIMESTAMP`. If `HONOR_TIMESTAMP` is "0", +/// it returns the input `timestamp`. Otherwise, it attempts to parse and return the value of `HONOR_TIMESTAMP`. +/// If parsing fails, it returns the input `timestamp`. +/// +/// If the `time` feature is not enabled or `HONOR_TIMESTAMP` is not set, +/// it returns the current time in milliseconds since the Unix epoch. +/// +fn maybe_honor_timestamp(timestamp: u64) -> u64 { + if cfg!(feature = "mobile-test") && std::env::var("HONOR_TIMESTAMP").is_ok() { + let str = std::env::var("HONOR_TIMESTAMP").unwrap(); + tracing::debug!("using HONOR_TIMESTAMP={str} and timestamp={timestamp}"); + match str.as_str() { + "0" => timestamp, + timestamp_str => match timestamp_str.parse::() { + Ok(t) => t, + Err(_e) => timestamp, + }, + } + } else { + Utc::now().timestamp_millis() as u64 + } +} diff --git a/iot_config.Dockerfile b/iot_config.Dockerfile deleted file mode 100644 index 4017826f9..000000000 --- a/iot_config.Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM rust:1.70 AS builder - -RUN apt-get update && apt-get install -y protobuf-compiler - -# Copy cargo file and workspace dependency crates to cache build -COPY Cargo.toml Cargo.lock ./ -COPY db_store ./db_store/ -COPY file_store ./file_store/ -COPY task_manager ./task_manager/ -COPY metrics ./metrics/ -COPY iot_config/Cargo.toml ./iot_config/Cargo.toml - -# Enable sparse registry to avoid crates indexing infinite loop -ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse - -RUN mkdir ./iot_config/src \ - # Create a dummy project file to build deps around - && echo "fn main() {}" > ./iot_config/src/main.rs \ - # Remove unused members of the workspace to avoid compile error on missing members - && sed -i -e '/ingest/d' -e '/mobile_config/d' -e '/mobile_verifier/d' \ - -e '/poc_entropy/d' -e '/iot_verifier/d' -e '/price/d' \ - -e '/reward_index/d' -e '/reward_scheduler/d' -e '/denylist/d' \ - -e '/iot_packet_verifier/d' -e '/solana/d' -e '/mobile_packet_verifier/d' \ - -e '/mobile_config_cli/d' -e '/boost_manager/d' \ - Cargo.toml \ - && cargo build --package iot-config --release - -COPY iot_config ./iot_config/ -RUN cargo build --package iot-config --release - -FROM debian:bullseye-slim - -COPY --from=builder ./target/release/iot-config /opt/iot_config/bin/iot-config - -EXPOSE 8080 - -CMD ["/opt/iot_config/bin/iot-config", "server"] diff --git a/mobile_config.Dockerfile b/mobile_config.Dockerfile deleted file mode 100644 index 1cc10c591..000000000 --- a/mobile_config.Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -FROM rust:1.70 as builder - -RUN apt-get update && apt-get install -y protobuf-compiler - -# Copy cargo file and workspace dependency crates to cache build -COPY Cargo.toml Cargo.lock ./ -COPY db_store ./db_store/ -COPY file_store ./file_store/ -COPY metrics ./metrics/ -COPY task_manager ./task_manager/ -COPY mobile_config/Cargo.toml ./mobile_config/Cargo.toml - -# Enable sparse registry to avoid crates indexing infinite loop -ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse - -RUN mkdir ./mobile_config/src \ - # Create a dummy project file to build deps around - && echo "fn main() {}" > ./mobile_config/src/main.rs \ - && sed -i -e '/ingest/d' -e '/iot_config/d' -e '/mobile_verifier/d' \ - -e '/poc_entropy/d' -e '/iot_verifier/d' -e '/price/d' \ - -e '/reward_index/d' -e '/reward_scheduler/d' -e '/denylist/d' \ - -e '/iot_packet_verifier/d' -e '/solana/d' -e '/mobile_packet_verifier/d' \ - -e '/mobile_config_cli/d' \ - Cargo.toml \ - && cargo build --package mobile-config --release - -COPY mobile_config ./mobile_config/ -RUN cargo build --package mobile-config --release - -FROM debian:bullseye-slim - -COPY --from=builder ./target/release/mobile-config /opt/mobile_config/bin/mobile-config - -EXPOSE 8090 - -CMD ["/opt/mobile_config/bin/mobile-config", "server"] diff --git a/mobile_config/src/gateway_service.rs b/mobile_config/src/gateway_service.rs index 048980d55..4ae55b691 100644 --- a/mobile_config/src/gateway_service.rs +++ b/mobile_config/src/gateway_service.rs @@ -81,7 +81,10 @@ impl mobile_config::Gateway for GatewayService { gateway_info::db::get_info(&self.metadata_pool, &pubkey) .await - .map_err(|_| Status::internal("error fetching gateway info"))? + .map_err(|err| { + tracing::error!("error fetching gateway info {:?}", err); + Status::internal("error fetching gateway info") + })? .map_or_else( || { telemetry::count_gateway_chain_lookup("not-found"); diff --git a/mobile_config/src/main.rs b/mobile_config/src/main.rs index d12fd5233..913404a27 100644 --- a/mobile_config/src/main.rs +++ b/mobile_config/src/main.rs @@ -102,6 +102,8 @@ impl Daemon { hex_boosting_svc, }; + tracing::info!("grpc listening on {listen_addr}"); + TaskManager::builder() .add_task(grpc_server) .build() diff --git a/mobile_verifier/Cargo.toml b/mobile_verifier/Cargo.toml index 75d86b1ec..d3834efd7 100644 --- a/mobile_verifier/Cargo.toml +++ b/mobile_verifier/Cargo.toml @@ -61,3 +61,6 @@ hex-assignments = { path = "../hex_assignments" } [dev-dependencies] backon = "0" + +[features] +mobile-test = [] diff --git a/mobile_verifier/src/heartbeats/wifi.rs b/mobile_verifier/src/heartbeats/wifi.rs index 295a1c8df..4be7919f1 100644 --- a/mobile_verifier/src/heartbeats/wifi.rs +++ b/mobile_verifier/src/heartbeats/wifi.rs @@ -17,6 +17,7 @@ use futures::{stream::StreamExt, TryFutureExt}; use retainer::Cache; use sqlx::{Pool, Postgres}; use std::{ + ops::Range, sync::Arc, time::{self, Instant}, }; @@ -153,8 +154,7 @@ where ) -> anyhow::Result<()> { tracing::info!("Processing WIFI heartbeat file {}", file.file_info.key); let mut transaction = self.pool.begin().await?; - let epoch = (file.file_info.timestamp - Duration::hours(3)) - ..(file.file_info.timestamp + Duration::minutes(30)); + let epoch = process_file_epoch(file.file_info.timestamp); let heartbeats = file .into_stream(&mut transaction) .await? @@ -202,3 +202,22 @@ where ) } } + +/// Generates a time range around a given timestamp. +/// +/// By default, the range is from 3 hours before the given timestamp to 30 minutes after it. +/// If the `test` feature is enabled and the `PROCESS_FILE_EPOCH_MIN` environment variable is set, +/// the starting point of the range can be adjusted based on the value of the environment variable. +fn process_file_epoch(timestamp: DateTime) -> Range> { + let default = (timestamp - Duration::hours(3))..(timestamp + Duration::minutes(30)); + if cfg!(feature = "mobile-test") && std::env::var("PROCESS_FILE_EPOCH_MIN").is_ok() { + let str = std::env::var("PROCESS_FILE_EPOCH_MIN").unwrap(); + tracing::debug!("using PROCESS_FILE_EPOCH_MIN={str} and timestamp={timestamp}"); + match str.parse::() { + Ok(t) => (timestamp - Duration::hours(t))..(timestamp + Duration::minutes(30)), + Err(_e) => default, + } + } else { + default + } +} diff --git a/test_mobile/Cargo.toml b/test_mobile/Cargo.toml new file mode 100644 index 000000000..cbc34e5a3 --- /dev/null +++ b/test_mobile/Cargo.toml @@ -0,0 +1,35 @@ +[package] +name = "test-mobile" +version = "0.1.0" +description = "Test Mobile Stack" +edition.workspace = true +authors.workspace = true +license.workspace = true + +[dependencies] +anyhow = { workspace = true } +async-compression = { version = "0", features = ["tokio", "gzip"] } +clap = { workspace = true } +custom-tracing = { path = "../custom_tracing" } +file-store = { path = "../file_store" } +h3o = { workspace = true, features = ["geo"] } +helium-proto = { workspace = true } +hextree = { workspace = true } +tokio = { workspace = true, features = ["io-util", "fs"] } +triggered = { workspace = true } + +[dev-dependencies] +backon = "0" +bs58 = { workspace = true } +custom-tracing = { path = "../custom_tracing" } +chrono = { workspace = true } +helium-crypto = { workspace = true } +prost = { workspace = true } +rand = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +sqlx = { workspace = true } +tonic = { workspace = true } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } +uuid = { workspace = true } diff --git a/test_mobile/README.md b/test_mobile/README.md new file mode 100644 index 000000000..0d6b3c288 --- /dev/null +++ b/test_mobile/README.md @@ -0,0 +1,33 @@ +# Mobile Stack Testing + +## Setup + +### 1. Generate Data + +**NOTE:** Data is auto-generated. If you do not wish to change it, skip these steps. The commands are here to show how the data is generated. + +- Run `test-mobile assignment` and move the generated files[^files] to `docker/mobile/localstack/data/mobile-verifier-data-sets/`. +- Run `AWS_ACCESS_KEY_ID=X AWS_SECRET_ACCESS_KEY=X AWS_SESSION_TOKEN=X test-mobile price` and move the generated file to `docker/mobile/localstack/data/mobile-price/`. This can also be run when LocalStack is up and will upload files. + +### 2. Build Docker Images + +- Navigate to the `docker` directory: `cd docker/mobile` +- Build the Docker images: `docker compose build` + +### 3. Run Tests + +- Run the integration tests: `cargo test --package test-mobile --test integration_test -- --nocapture` + +**NOTE:** The test will run `docker compose up` on start and `docker compose down -v` at the end (if the test is successful). + +[^files]: Maps of hexes used +![Hexes](docs/hexes.jpg "Hexes") + +## Others + +### Keypairs + +- `13te9quF3s24VNrQmBRHnoNSwWPg48Jh2hfJdqFQoiFYiDcDAsp` Coverage object +- `14FGkBKPAdBuCtKGFkSnUmvoUBkJGjKVLrPrNLXKN3NgMiLTtwm` Mobile Verifier +- `14c5dZUZgFEVcocB3mfcjhXEVqDuafnpzghgyr2i422okXVByPr` Mobile Packer Verifier +- `131kC5gTPFfTyzziHbh2PWz2VSdF4gDvhoC5vqCz25N7LFtDocF` Mobile Config \ No newline at end of file diff --git a/test_mobile/docs/hexes.jpg b/test_mobile/docs/hexes.jpg new file mode 100644 index 000000000..a71c7684d Binary files /dev/null and b/test_mobile/docs/hexes.jpg differ diff --git a/test_mobile/src/cli/assignment.rs b/test_mobile/src/cli/assignment.rs new file mode 100644 index 000000000..031259b90 --- /dev/null +++ b/test_mobile/src/cli/assignment.rs @@ -0,0 +1,149 @@ +use std::{ + io::Cursor, + time::{SystemTime, UNIX_EPOCH}, +}; + +use anyhow::Result; +use hextree::{Cell, HexTreeMap}; +use tokio::{fs::File, io::AsyncWriteExt}; + +pub const CENTER_CELL: u64 = 0x8a5d107916dffff; + +pub const INNER_1_CELL: u64 = 0x8a5d107916c7fff; +pub const INNER_2_CELL: u64 = 0x8a5d107916cffff; +pub const INNER_3_CELL: u64 = 0x8a5d1079ed67fff; +pub const INNER_4_CELL: u64 = 0x8a5d1079ed77fff; +pub const INNER_5_CELL: u64 = 0x8a5d1079ed2ffff; +pub const INNER_6_CELL: u64 = 0x8a5d107916d7fff; + +pub const OUTER_1_CELL: u64 = 0x8a5d107916e7fff; +pub const OUTER_2_CELL: u64 = 0x8a5d107916effff; +pub const OUTER_3_CELL: u64 = 0x8a5d1079e9b7fff; +pub const OUTER_4_CELL: u64 = 0x8a5d1079e997fff; +pub const OUTER_5_CELL: u64 = 0x8a5d1079ed6ffff; +pub const OUTER_6_CELL: u64 = 0x8a5d1079ed47fff; +pub const OUTER_7_CELL: u64 = 0x8a5d1079ed57fff; +pub const OUTER_8_CELL: u64 = 0x8a5d1079ed0ffff; +pub const OUTER_9_CELL: u64 = 0x8a5d1079ed07fff; +pub const OUTER_10_CELL: u64 = 0x8a5d1079ed27fff; +pub const OUTER_11_CELL: u64 = 0x8a5d1079168ffff; +pub const OUTER_12_CELL: u64 = 0x8a5d107916f7fff; + +/// Generate footfall, landtype and urbanization +#[derive(Debug, clap::Args)] +pub struct Cmd {} + +impl Cmd { + pub async fn run(self) -> Result<()> { + let center_cell = Cell::from_raw(CENTER_CELL)?; + + let inner_1_cell = Cell::from_raw(INNER_1_CELL)?; + let inner_2_cell = Cell::from_raw(INNER_2_CELL)?; + let inner_3_cell = Cell::from_raw(INNER_3_CELL)?; + let inner_4_cell = Cell::from_raw(INNER_4_CELL)?; + let inner_5_cell = Cell::from_raw(INNER_5_CELL)?; + let inner_6_cell = Cell::from_raw(INNER_6_CELL)?; + + let outer_1_cell = Cell::from_raw(OUTER_1_CELL)?; + let outer_2_cell = Cell::from_raw(OUTER_2_CELL)?; + let outer_3_cell = Cell::from_raw(OUTER_3_CELL)?; + let outer_4_cell = Cell::from_raw(OUTER_4_CELL)?; + let outer_5_cell = Cell::from_raw(OUTER_5_CELL)?; + let outer_6_cell = Cell::from_raw(OUTER_6_CELL)?; + let outer_7_cell = Cell::from_raw(OUTER_7_CELL)?; + let outer_8_cell = Cell::from_raw(OUTER_8_CELL)?; + let outer_9_cell = Cell::from_raw(OUTER_9_CELL)?; + let outer_10_cell = Cell::from_raw(OUTER_10_CELL)?; + let outer_11_cell = Cell::from_raw(OUTER_11_CELL)?; + let outer_12_cell = Cell::from_raw(OUTER_12_CELL)?; + + // Footfall Data + // POI - footfalls > 1 for a POI across hexes + // POI No Data - No footfalls for a POI across any hexes + // NO POI - Does not exist + let mut footfall = HexTreeMap::::new(); + footfall.insert(center_cell, 42); + footfall.insert(inner_1_cell, 42); + footfall.insert(inner_2_cell, 42); + footfall.insert(inner_3_cell, 42); + footfall.insert(inner_4_cell, 42); + footfall.insert(inner_5_cell, 42); + footfall.insert(inner_6_cell, 42); + footfall.insert(outer_1_cell, 0); + footfall.insert(outer_2_cell, 0); + footfall.insert(outer_3_cell, 0); + footfall.insert(outer_4_cell, 0); + footfall.insert(outer_5_cell, 0); + footfall.insert(outer_6_cell, 0); + // outer_7 to 12 = NO POI + + // Landtype Data + // Map to enum values for Landtype + // An unknown cell is considered Assignment::C + let mut landtype = HexTreeMap::::new(); + landtype.insert(center_cell, 50); + landtype.insert(inner_1_cell, 10); + landtype.insert(inner_2_cell, 10); + landtype.insert(inner_3_cell, 10); + landtype.insert(inner_4_cell, 10); + landtype.insert(inner_5_cell, 10); + landtype.insert(inner_6_cell, 10); + landtype.insert(outer_1_cell, 60); + landtype.insert(outer_2_cell, 60); + landtype.insert(outer_3_cell, 60); + landtype.insert(outer_4_cell, 60); + landtype.insert(outer_5_cell, 60); + landtype.insert(outer_6_cell, 60); + // outer_7 to 12 = unknown + + // Urbanized data + // Urban - something in the map, and in the geofence + // Not Urban - nothing in the map, but in the geofence + // Outside - not in the geofence, urbanized hex never considered + let mut urbanized = HexTreeMap::::new(); + urbanized.insert(center_cell, 1); + urbanized.insert(inner_1_cell, 1); + urbanized.insert(inner_2_cell, 1); + urbanized.insert(inner_3_cell, 1); + urbanized.insert(inner_4_cell, 1); + urbanized.insert(inner_5_cell, 1); + urbanized.insert(inner_6_cell, 1); + urbanized.insert(outer_1_cell, 1); + urbanized.insert(outer_2_cell, 1); + urbanized.insert(outer_3_cell, 1); + urbanized.insert(outer_4_cell, 1); + urbanized.insert(outer_5_cell, 1); + urbanized.insert(outer_6_cell, 1); + urbanized.insert(outer_7_cell, 0); + urbanized.insert(outer_8_cell, 0); + urbanized.insert(outer_9_cell, 0); + urbanized.insert(outer_10_cell, 0); + urbanized.insert(outer_11_cell, 0); + urbanized.insert(outer_12_cell, 0); + + hex_tree_map_to_file(urbanized, "urbanized").await?; + hex_tree_map_to_file(footfall, "footfall").await?; + hex_tree_map_to_file(landtype, "landtype").await?; + + Ok(()) + } +} + +async fn hex_tree_map_to_file(map: HexTreeMap, name: &str) -> anyhow::Result<()> { + let now = SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_millis(); + + let file_name = format!("{name}.{now}.gz"); + let disktree_file = File::create(file_name.clone()).await?; + + let mut data = vec![]; + map.to_disktree(Cursor::new(&mut data), |w, v| w.write_all(&[*v]))?; + + let mut writer = async_compression::tokio::write::GzipEncoder::new(disktree_file); + writer.write_all(&data).await?; + writer.shutdown().await?; + + Ok(()) +} diff --git a/test_mobile/src/cli/mod.rs b/test_mobile/src/cli/mod.rs new file mode 100644 index 000000000..dfa13c5d4 --- /dev/null +++ b/test_mobile/src/cli/mod.rs @@ -0,0 +1,2 @@ +pub mod assignment; +pub mod price; diff --git a/test_mobile/src/cli/price.rs b/test_mobile/src/cli/price.rs new file mode 100644 index 000000000..b871d3f81 --- /dev/null +++ b/test_mobile/src/cli/price.rs @@ -0,0 +1,91 @@ +use anyhow::Result; +use file_store::{file_sink, file_upload, FileType}; +use helium_proto::{BlockchainTokenTypeV1, PriceReportV1}; +use std::{ + path, + time::{Duration, SystemTime, UNIX_EPOCH}, +}; + +/// Generate Mobile price report +#[derive(Debug, clap::Args)] +pub struct Cmd { + #[clap(short, long, default_value = "1000000")] + pub price: u64, +} + +impl Cmd { + pub async fn run(self) -> Result<()> { + let settings = file_store::Settings { + bucket: "mobile-price".to_string(), + endpoint: Some("http://localhost:4566".to_string()), + region: "us-east-1".to_string(), + access_key_id: None, + secret_access_key: None, + }; + + let (shutdown_trigger1, shutdown_listener1) = triggered::trigger(); + + // Initialize uploader + let (file_upload, file_upload_server) = + file_upload::FileUpload::from_settings_tm(&settings).await?; + + let file_upload_thread = tokio::spawn(async move { + file_upload_server + .run(shutdown_listener1) + .await + .expect("failed to complete file_upload_server"); + }); + + let store_base_path = path::Path::new("."); + + let (price_sink, price_sink_server) = file_sink::FileSinkBuilder::new( + FileType::PriceReport, + store_base_path, + file_upload.clone(), + concat!(env!("CARGO_PKG_NAME"), "_report_submission"), + ) + .auto_commit(false) + .roll_time(Duration::from_millis(100)) + .create() + .await?; + + let (shutdown_trigger2, shutdown_listener2) = triggered::trigger(); + let price_sink_thread = tokio::spawn(async move { + price_sink_server + .run(shutdown_listener2) + .await + .expect("failed to complete price_sink_server"); + }); + + let now = SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_millis(); + + let price_report = PriceReportV1 { + price: 1000000, + timestamp: now as u64, + token_type: BlockchainTokenTypeV1::Mobile.into(), + }; + + price_sink.write(price_report, []).await?; + + let price_sink_rcv = price_sink.commit().await.expect("commit failed"); + let _ = price_sink_rcv + .await + .expect("commit didn't complete completed"); + + let _ = tokio::time::sleep(Duration::from_secs(1)).await; + + shutdown_trigger1.trigger(); + shutdown_trigger2.trigger(); + file_upload_thread + .await + .expect("file_upload_thread did not complete"); + price_sink_thread + .await + .expect("price_sink_thread did not complete"); + + Ok(()) + } +} diff --git a/test_mobile/src/lib.rs b/test_mobile/src/lib.rs new file mode 100644 index 000000000..4f773726a --- /dev/null +++ b/test_mobile/src/lib.rs @@ -0,0 +1 @@ +pub mod cli; diff --git a/test_mobile/src/main.rs b/test_mobile/src/main.rs new file mode 100644 index 000000000..9f61e83e1 --- /dev/null +++ b/test_mobile/src/main.rs @@ -0,0 +1,43 @@ +use anyhow::Result; +use clap::Parser; +use test_mobile::cli::{assignment, price}; + +#[derive(clap::Parser)] +pub struct Cli { + #[clap(subcommand)] + cmd: Cmd, +} + +impl Cli { + pub async fn run(self) -> Result<()> { + custom_tracing::init( + "info".to_string(), + custom_tracing::Settings { + tracing_cfg_file: "".to_string(), + }, + ) + .await?; + self.cmd.run().await + } +} + +#[derive(clap::Subcommand)] +pub enum Cmd { + Assignment(assignment::Cmd), + Price(price::Cmd), +} + +impl Cmd { + pub async fn run(self) -> Result<()> { + match self { + Self::Assignment(cmd) => cmd.run().await, + Self::Price(cmd) => cmd.run().await, + } + } +} + +#[tokio::main] +async fn main() -> Result<()> { + let cli = Cli::parse(); + cli.run().await +} diff --git a/test_mobile/tests/common/docker.rs b/test_mobile/tests/common/docker.rs new file mode 100644 index 000000000..01fd70aaf --- /dev/null +++ b/test_mobile/tests/common/docker.rs @@ -0,0 +1,44 @@ +use anyhow::{bail, Result}; +use std::process::Command; + +pub struct Docker; + +impl Docker { + pub fn new() -> Self { + Self + } + + pub fn up(&self) -> Result { + let up_output = Command::new("docker") + .current_dir("../docker/mobile/") + .arg("compose") + .arg("up") + .arg("-d") + .output()?; + + if up_output.status.success() { + let stdout = String::from_utf8(up_output.stdout)?; + Ok(stdout) + } else { + let stderr = String::from_utf8(up_output.stderr)?; + bail!(stderr) + } + } + + pub fn down(&self) -> Result { + let up_output = Command::new("docker") + .current_dir("../docker/mobile/") + .arg("compose") + .arg("down") + .arg("-v") + .output()?; + + if up_output.status.success() { + let stdout = String::from_utf8(up_output.stdout)?; + Ok(stdout) + } else { + let stderr = String::from_utf8(up_output.stderr)?; + bail!(stderr) + } + } +} diff --git a/test_mobile/tests/common/hotspot.rs b/test_mobile/tests/common/hotspot.rs new file mode 100644 index 000000000..a44656c56 --- /dev/null +++ b/test_mobile/tests/common/hotspot.rs @@ -0,0 +1,283 @@ +use anyhow::Result; +use backon::{ExponentialBuilder, Retryable}; +use chrono::Utc; +use h3o::CellIndex; +use helium_crypto::{Keypair, PublicKeyBinary, Sign}; +use helium_proto::services::poc_mobile::{ + coverage_object_req_v1::KeyType, Client as PocMobileClient, CoverageObjectReqV1, + RadioHexSignalLevel, SpeedtestReqV1, WifiHeartbeatReqV1, +}; +use prost::Message; +use sqlx::postgres::PgPoolOptions; +use std::{str::FromStr, sync::Arc}; +use tonic::{metadata::MetadataValue, transport::Channel, Request}; +use tracing::instrument; +use uuid::Uuid; + +use crate::common::{generate_keypair, hours_ago, now, TimestampToDateTime}; + +#[derive(Debug)] +pub struct Hotspot { + mobile_client: PocMobileClient, + api_token: String, + keypair: Keypair, + b58: String, + location: CellIndex, +} + +impl Hotspot { + #[instrument] + pub async fn new(api_token: String, index: u64) -> Result { + let endpoint = "http://127.0.0.1:9080"; + + let client = (|| PocMobileClient::connect(endpoint)) + .retry(&ExponentialBuilder::default()) + .await + .expect("client connect"); + + let keypair = generate_keypair(); + let wallet = generate_keypair(); + let b58 = keypair.public_key().to_string(); + + tracing::info!(hotspot = b58, "hotspot connected to ingester"); + + let location = h3o::CellIndex::try_from(index).unwrap(); + populate_mobile_metadata(&keypair, &wallet, location).await?; + + tracing::info!("metadata pupulated"); + + Ok(Self { + mobile_client: client, + api_token: format!("Bearer {api_token}"), + keypair, + b58, + location, + }) + } + + #[instrument(skip(self), fields(hotspot = %self.b58))] + pub async fn submit_speedtest( + &mut self, + when: u64, + upload_speed: u64, + download_speed: u64, + latency: u32, + ) -> Result<()> { + let timestamp = now() - when; + + let mut speedtest_req = SpeedtestReqV1 { + pub_key: self.keypair.public_key().to_vec(), + serial: self.b58.clone(), + timestamp: millis_to_seconds(timestamp), + upload_speed, + download_speed, + latency, + signature: vec![], + }; + + speedtest_req.signature = self + .keypair + .sign(&speedtest_req.encode_to_vec()) + .expect("sign"); + + let request = self.set_metadata(speedtest_req.clone()); + tracing::debug!( + "submitting speedtest @ {} = {:?}", + timestamp.to_datetime(), + speedtest_req + ); + + let res = self.mobile_client.submit_speedtest(request).await?; + tracing::debug!( + "submitted speedtest @ {} = {:?}", + timestamp.to_datetime(), + res + ); + + Ok(()) + } + + #[instrument(skip(self), fields(hotspot = %self.b58))] + pub async fn submit_coverage_object( + &mut self, + uuid: Uuid, + pcs_keypair: Arc, + ) -> Result<()> { + let coverage_claim_time = now() - hours_ago(24); + let pub_key = self.keypair.public_key().to_vec(); + + let mut coverage_object_req = CoverageObjectReqV1 { + pub_key: pcs_keypair.public_key().to_vec(), + uuid: uuid.as_bytes().to_vec(), + coverage_claim_time: millis_to_seconds(coverage_claim_time), + coverage: vec![RadioHexSignalLevel { + location: self.location.to_string(), + signal_level: 3, + signal_power: 1000, + }], + indoor: false, + trust_score: 1, + signature: vec![], + key_type: Some(KeyType::HotspotKey(pub_key)), + }; + + coverage_object_req.signature = pcs_keypair + .sign(&coverage_object_req.encode_to_vec()) + .expect("sign"); + + let request = self.set_metadata(coverage_object_req.clone()); + tracing::debug!( + "submitting coverage_object @ {} = {:?}", + coverage_claim_time.to_datetime(), + coverage_object_req + ); + + let res = self.mobile_client.submit_coverage_object(request).await?; + tracing::debug!( + "submitted coverage_object @ {} = {:?}", + coverage_claim_time.to_datetime(), + res + ); + + Ok(()) + } + + #[instrument(skip(self), fields(hotspot = %self.b58))] + pub async fn submit_wifi_heartbeat(&mut self, when: u64, coverage_object: Uuid) -> Result<()> { + let timestamp = now() - when; + + let center_loc = self + .location + .center_child(h3o::Resolution::Thirteen) + .expect("center child"); + + let lat_lon = h3o::LatLng::from(center_loc); + + let mut wifi_heartbeat_req = WifiHeartbeatReqV1 { + pub_key: self.keypair.public_key().to_vec(), + timestamp, + // lat: 19.642310, + // lon: -155.990626, + lat: lat_lon.lat(), + lon: lat_lon.lng(), + location_validation_timestamp: millis_to_seconds(timestamp), + operation_mode: true, + coverage_object: coverage_object.as_bytes().to_vec(), + signature: vec![], + }; + + wifi_heartbeat_req.signature = self + .keypair + .sign(&wifi_heartbeat_req.encode_to_vec()) + .expect("sign"); + + let request = self.set_metadata(wifi_heartbeat_req.clone()); + let res = self.mobile_client.submit_wifi_heartbeat(request).await?; + tracing::debug!( + "submitted wifi_heartbeat @ {} = {:?} {:?}", + timestamp.to_datetime(), + wifi_heartbeat_req, + res + ); + + Ok(()) + } + + pub fn set_metadata(&self, inner: T) -> Request { + let mut request = tonic::Request::new(inner); + let api_token = self.api_token.clone(); + let metadata_value = MetadataValue::from_str(api_token.as_str()).unwrap(); + + request + .metadata_mut() + .insert("authorization", metadata_value); + + request + } + + pub fn b58(&self) -> &str { + &self.b58 + } +} + +impl Drop for Hotspot { + fn drop(&mut self) { + tracing::debug!("Hotspot dropped") + } +} + +fn millis_to_seconds(milliseconds: u64) -> u64 { + milliseconds / 1000 +} + +#[instrument(skip_all)] +async fn populate_mobile_metadata( + keypair: &Keypair, + wallet: &Keypair, + location: CellIndex, +) -> Result<()> { + let database_url = "postgres://postgres:postgres@localhost:5432/mobile_metadata"; + + let pool = PgPoolOptions::new() + .max_connections(5) + .connect(database_url) + .await?; + + let uuid = Uuid::new_v4(); + let h3_index: u64 = location.into(); + let device_type = serde_json::to_value("wifiOutdoor")?; + + let wallet_b58 = wallet.public_key().to_string(); + + sqlx::query( + r#" + INSERT INTO mobile_hotspot_infos ( + address, asset, bump_seed, + location, is_full_hotspot, num_location_asserts, + refreshed_at, created_at, is_active, + dc_onboarding_fee_paid, device_type + ) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) + "#, + ) + .bind(wallet_b58.as_str()) // address + .bind(uuid.to_string()) // asset + .bind(254) // bump_seed + .bind(h3_index as i64) // location + .bind(true) // is_full_hotspot + .bind(1) // num_location_asserts + .bind(Utc::now()) // refreshed_at + .bind(Utc::now()) // created_at + .bind(true) // is_active + .bind(400000) // dc_onboarding_fee_paid + .bind(device_type) // device_type + .execute(&pool) + .await?; + + let pk_binary = PublicKeyBinary::from_str(keypair.public_key().to_string().as_str())?; + let entity_key = bs58::decode(pk_binary.to_string()).into_vec()?; + + sqlx::query( + r#" + INSERT INTO key_to_assets ( + address, asset, bump_seed, + created_at, dao, entity_key, + refreshed_at + ) + VALUES ($1, $2, $3, $4, $5, $6, $7) + "#, + ) + .bind(wallet_b58.as_str()) // address + .bind(uuid.to_string()) // asset + .bind(254) // bump_seed + .bind(Utc::now()) // created_at + .bind("BQ3MCuTT5zVBhNfQ4SjMh3NPVhFy73MPV8rjfq5d1zie") // dao + .bind(entity_key.clone()) // entity_key + .bind(Utc::now()) // refreshed_at + .execute(&pool) + .await?; + + pool.close().await; + + Ok(()) +} diff --git a/test_mobile/tests/common/mod.rs b/test_mobile/tests/common/mod.rs new file mode 100644 index 000000000..40e6243d9 --- /dev/null +++ b/test_mobile/tests/common/mod.rs @@ -0,0 +1,62 @@ +use anyhow::Result; +use chrono::{DateTime, NaiveDateTime, TimeZone, Utc}; +use helium_crypto::{KeyTag, Keypair}; +use rand::rngs::OsRng; +use sqlx::postgres::PgPoolOptions; +use std::{ + sync::Arc, + time::{SystemTime, UNIX_EPOCH}, +}; + +pub mod docker; +pub mod hotspot; + +trait TimestampToDateTime { + fn to_datetime(&self) -> DateTime; +} +impl TimestampToDateTime for u64 { + fn to_datetime(&self) -> DateTime { + // Convert the u64 timestamp in milliseconds to NaiveDateTime + let naive = NaiveDateTime::from_timestamp_millis(*self as i64).expect("Invalid timestamp"); + + // Convert NaiveDateTime to DateTime using Utc timestamp + Utc.from_utc_datetime(&naive) + } +} + +pub fn now() -> u64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_millis() as u64 +} + +pub fn hours_ago(hours: i64) -> u64 { + chrono::Duration::hours(hours).num_milliseconds() as u64 +} + +pub fn generate_keypair() -> Keypair { + Keypair::generate(KeyTag::default(), &mut OsRng) +} + +pub async fn load_pcs_keypair() -> Result> { + let data = std::fs::read("tests/pc_keypair.bin").map_err(helium_crypto::Error::from)?; + let pcs_keypair = Arc::new(helium_crypto::Keypair::try_from(&data[..])?); + Ok(pcs_keypair) +} + +pub async fn get_rewards(address: String) -> Result> { + let pool = PgPoolOptions::new() + .max_connections(5) + .connect("postgres://postgres:postgres@localhost/mobile_index") + .await?; + + let row: Option<(i64,)> = sqlx::query_as("SELECT rewards FROM reward_index WHERE address = $1") + .bind(address) + .fetch_optional(&pool) + .await?; + + pool.close().await; + + Ok(row.map(|r| r.0 as u64)) +} diff --git a/test_mobile/tests/integration_test.rs b/test_mobile/tests/integration_test.rs new file mode 100644 index 000000000..2040ada79 --- /dev/null +++ b/test_mobile/tests/integration_test.rs @@ -0,0 +1,121 @@ +use std::time::Duration; + +use anyhow::Result; +use common::{docker::Docker, get_rewards, hotspot::Hotspot, hours_ago, load_pcs_keypair}; +use test_mobile::cli::assignment::CENTER_CELL; +use uuid::Uuid; + +mod common; + +// struct TestGuard(Option); + +struct TestGuard { + success: bool, + fun: Option, +} + +impl TestGuard { + fn new(f: F) -> Self { + TestGuard { + success: false, + fun: Some(f), + } + } + + fn successful(&mut self) { + self.success = true + } +} + +impl Drop for TestGuard { + fn drop(&mut self) { + if self.success { + if let Some(f) = self.fun.take() { + f(); + } + } + } +} + +#[tokio::test] +async fn main() -> Result<()> { + let docker = Docker::new(); + + // Function to execute after the test if it's successful + let mut guard = TestGuard::new(|| { + tracing::info!("Test succeeded! Running cleanup..."); + docker.down().unwrap(); + }); + + custom_tracing::init( + "info,integration_test=debug".to_string(), + custom_tracing::Settings::default(), + ) + .await?; + + match docker.up() { + Ok(_) => { + tracing::info!("docker compose started") + } + Err(e) => panic!("docker::up failed: {:?}", e), + } + + let pcs_keypair = load_pcs_keypair().await?; + + let api_token = "api-token".to_string(); + + let mut hotspot1 = Hotspot::new(api_token, CENTER_CELL).await?; + let co_uuid = Uuid::new_v4(); + + hotspot1 + .submit_coverage_object(co_uuid, pcs_keypair.clone()) + .await?; + + hotspot1 + .submit_speedtest(hours_ago(2), 500_000_000, 500_000_000, 25) + .await?; + hotspot1 + .submit_speedtest(hours_ago(1), 500_000_000, 500_000_000, 25) + .await?; + + // FIXME: giving time for submit_coverage_object + let _ = tokio::time::sleep(Duration::from_secs(60)).await; + + for x in (1..=24).rev() { + hotspot1 + .submit_wifi_heartbeat(hours_ago(x), co_uuid) + .await?; + } + + let mut retry = 0; + const MAX_RETRIES: u32 = 6 * 5; + const RETRY_WAIT: Duration = Duration::from_secs(10); + while retry <= MAX_RETRIES { + match get_rewards(hotspot1.b58().to_string()).await { + Err(e) => { + tracing::error!("failed to get rewards for {} {e:?} ", hotspot1.b58()); + retry += 1; + tokio::time::sleep(RETRY_WAIT).await; + } + Ok(None) => { + tracing::debug!("no rewards for {}", hotspot1.b58()); + retry += 1; + tokio::time::sleep(RETRY_WAIT).await; + } + Ok(Some(reward)) => { + tracing::debug!("rewards for {} are {reward}", hotspot1.b58()); + let expected = 49180327868852; + assert_eq!( + expected, + reward, + "rewards for {} are wrong {reward} vs expected {expected}", + hotspot1.b58() + ); + guard.successful(); + return Ok(()); + } + } + } + + Ok(()) +} diff --git a/test_mobile/tests/pc_keypair.bin b/test_mobile/tests/pc_keypair.bin new file mode 100644 index 000000000..29d23f319 Binary files /dev/null and b/test_mobile/tests/pc_keypair.bin differ