diff --git a/.changelog/10996.txt b/.changelog/10996.txt new file mode 100644 index 0000000000..78a3c3c15c --- /dev/null +++ b/.changelog/10996.txt @@ -0,0 +1,3 @@ +```release-note:improvement +ui: removed external dependencies for serving UI assets in favor of Go's native embed capabilities +``` diff --git a/.changelog/12722.txt b/.changelog/12722.txt new file mode 100644 index 0000000000..6c42e79846 --- /dev/null +++ b/.changelog/12722.txt @@ -0,0 +1,3 @@ +```release-note:feature +checks: add UDP health checks.. +``` diff --git a/.changelog/12914.txt b/.changelog/12914.txt new file mode 100644 index 0000000000..f19bf013ce --- /dev/null +++ b/.changelog/12914.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +api: add the ability to specify a path prefix for when consul is behind a reverse proxy or API gateway +``` diff --git a/.changelog/13001.txt b/.changelog/13001.txt new file mode 100644 index 0000000000..0d47397a19 --- /dev/null +++ b/.changelog/13001.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +api: `merge-central-config` query parameter support added to some catalog and health endpoints to view a fully resolved service definition (especially when not written into the catalog that way). +``` diff --git a/.changelog/13012.txt b/.changelog/13012.txt new file mode 100644 index 0000000000..7fc66b49da --- /dev/null +++ b/.changelog/13012.txt @@ -0,0 +1,3 @@ +```release-note:bug +proxycfg: Fixed a minor bug that would cause configuring a terminating gateway to watch too many service resolvers and waste resources doing filtering. +``` \ No newline at end of file diff --git a/.changelog/13051.txt b/.changelog/13051.txt new file mode 100644 index 0000000000..61a7db951b --- /dev/null +++ b/.changelog/13051.txt @@ -0,0 +1,3 @@ +```release-note:bug +deps: Update go-grpc/grpc, resolving connection memory leak +``` diff --git a/.changelog/13062.txt b/.changelog/13062.txt new file mode 100644 index 0000000000..5bc01d6662 --- /dev/null +++ b/.changelog/13062.txt @@ -0,0 +1,3 @@ +```release-note:bug +serf: upgrade serf to v0.9.8 which fixes a bug that crashes Consul when serf keyrings are listed +``` diff --git a/.changelog/13071.txt b/.changelog/13071.txt new file mode 100644 index 0000000000..2493e5875b --- /dev/null +++ b/.changelog/13071.txt @@ -0,0 +1,3 @@ +```release-note:bug +Fix a bug when configuring an `add_headers` directive named `Host` the header is not set for `v1/internal/ui/metrics-proxy/` endpoint. +``` diff --git a/.changelog/13091.txt b/.changelog/13091.txt new file mode 100644 index 0000000000..54b642f3d8 --- /dev/null +++ b/.changelog/13091.txt @@ -0,0 +1,5 @@ +```release-note:improvement +config: introduce `telemetry.retry_failed_connection` in agent configuration to +retry on failed connection to any telemetry backend. This prevents the agent from +exiting if the given DogStatsD DNS name is unresolvable, for example. +``` \ No newline at end of file diff --git a/.changelog/13118.txt b/.changelog/13118.txt new file mode 100644 index 0000000000..c2119f9fbc --- /dev/null +++ b/.changelog/13118.txt @@ -0,0 +1,3 @@ +```release-note:bug +config: fix backwards compatibility bug where setting the (deprecated) top-level `verify_incoming` option would enable TLS client authentication on the gRPC port +``` diff --git a/.changelog/13127.txt b/.changelog/13127.txt new file mode 100644 index 0000000000..144cd2de59 --- /dev/null +++ b/.changelog/13127.txt @@ -0,0 +1,3 @@ +```release-note:bug +fix a bug that caused an error when creating `grpc` or `http2` ingress gateway listeners with multiple services +``` diff --git a/.changelog/13143.txt b/.changelog/13143.txt new file mode 100644 index 0000000000..4b0bf2388a --- /dev/null +++ b/.changelog/13143.txt @@ -0,0 +1,3 @@ +```release-note:improvement +connect: Added a `max_inbound_connections` setting to service-defaults for limiting the number of concurrent inbound connections to each service instance. +``` \ No newline at end of file diff --git a/.changelog/13183.txt b/.changelog/13183.txt new file mode 100644 index 0000000000..5753ca5986 --- /dev/null +++ b/.changelog/13183.txt @@ -0,0 +1,3 @@ +```release-note:bug +ui: Re-instate '...' icon for row actions +``` diff --git a/.changelog/13256.txt b/.changelog/13256.txt new file mode 100644 index 0000000000..cfc8096e31 --- /dev/null +++ b/.changelog/13256.txt @@ -0,0 +1,3 @@ +```release-note:bug +agent: Fixed a bug in HTTP handlers where URLs were being decoded twice +``` \ No newline at end of file diff --git a/.changelog/13304.txt b/.changelog/13304.txt new file mode 100644 index 0000000000..7fe9c1ef0d --- /dev/null +++ b/.changelog/13304.txt @@ -0,0 +1,3 @@ +```release-note:improvement +telemetry: Added a `consul.server.isLeader` metric to track if a server is a leader or not. +``` \ No newline at end of file diff --git a/.changelog/13344.txt b/.changelog/13344.txt new file mode 100644 index 0000000000..18569b40fb --- /dev/null +++ b/.changelog/13344.txt @@ -0,0 +1,3 @@ +```release-note:bug +kvs: Fixed a bug where query options were not being applied to KVS.Get RPC operations. +``` \ No newline at end of file diff --git a/.changelog/13357.txt b/.changelog/13357.txt new file mode 100644 index 0000000000..dcf1aabb1e --- /dev/null +++ b/.changelog/13357.txt @@ -0,0 +1,4 @@ +```release-note:feature +agent: Added information about build date alongside other version information for Consul. Extended /agent/self endpoint and `consul version` commands +to report this. Agent also reports build date in log on startup. +``` \ No newline at end of file diff --git a/.changelog/13394.txt b/.changelog/13394.txt new file mode 100644 index 0000000000..c00759f446 --- /dev/null +++ b/.changelog/13394.txt @@ -0,0 +1,3 @@ +```release-note:improvement +ui: upgrade ember-composable-helpers to v5.x +``` diff --git a/.changelog/13409.txt b/.changelog/13409.txt new file mode 100644 index 0000000000..b45b089ef5 --- /dev/null +++ b/.changelog/13409.txt @@ -0,0 +1,3 @@ +```release-note:bug +ui: Fix incorrect text on certain page empty states +``` diff --git a/.changelog/13421.txt b/.changelog/13421.txt new file mode 100644 index 0000000000..324e82d895 --- /dev/null +++ b/.changelog/13421.txt @@ -0,0 +1,3 @@ +```release-note:improvement +dns: Added support for specifying admin partition in node lookups. +``` diff --git a/.changelog/13431.txt b/.changelog/13431.txt new file mode 100644 index 0000000000..57704134a0 --- /dev/null +++ b/.changelog/13431.txt @@ -0,0 +1,3 @@ +```release-note:improvement +connect: Update Envoy support matrix to latest patch releases (1.22.2, 1.21.3, 1.20.4, 1.19.5) +``` diff --git a/.changelog/13450.txt b/.changelog/13450.txt new file mode 100644 index 0000000000..3346d69361 --- /dev/null +++ b/.changelog/13450.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +api: `merge-central-config` query parameter support added to `/catalog/node-services/:node-name` API, to view a fully resolved service definition (especially when not written into the catalog that way). +``` \ No newline at end of file diff --git a/.circleci/bash_env.sh b/.circleci/bash_env.sh index 8e19111654..69004e7c8d 100644 --- a/.circleci/bash_env.sh +++ b/.circleci/bash_env.sh @@ -4,4 +4,7 @@ export GIT_COMMIT=$(git rev-parse --short HEAD) export GIT_COMMIT_YEAR=$(git show -s --format=%cd --date=format:%Y HEAD) export GIT_DIRTY=$(test -n "`git status --porcelain`" && echo "+CHANGES" || true) export GIT_IMPORT=github.com/hashicorp/consul/version -export GOLDFLAGS="-X ${GIT_IMPORT}.GitCommit=${GIT_COMMIT}${GIT_DIRTY}" +# we're using this for build date because it's stable across platform builds +# the env -i and -noprofile are used to ensure we don't try to recursively call this profile when starting bash +export GIT_DATE=$(env -i /bin/bash --noprofile -norc ${CIRCLE_WORKING_DIRECTORY}/build-support/scripts/build-date.sh) +export GOLDFLAGS="-X ${GIT_IMPORT}.GitCommit=${GIT_COMMIT}${GIT_DIRTY} -X ${GIT_IMPORT}.BuildDate=${GIT_DATE}" diff --git a/.circleci/config.yml b/.circleci/config.yml index beab2b7c3c..c22d04fb89 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,8 +28,9 @@ references: # workflows section for go-test-lib jobs. go: &GOLANG_IMAGE docker.mirror.hashicorp.services/cimg/go:1.18.1 ember: &EMBER_IMAGE docker.mirror.hashicorp.services/circleci/node:14-browsers + ubuntu: &UBUNTU_CI_IMAGE ubuntu-2004:202201-02 cache: - yarn: &YARN_CACHE_KEY consul-ui-v7-{{ checksum "ui/yarn.lock" }} + yarn: &YARN_CACHE_KEY consul-ui-v8-{{ checksum "ui/yarn.lock" }} steps: install-gotestsum: &install-gotestsum @@ -167,6 +168,14 @@ jobs: - run: go install github.com/hashicorp/lint-consul-retry@master && lint-consul-retry - run: *notify-slack-failure + lint-enums: + docker: + - image: *GOLANG_IMAGE + steps: + - checkout + - run: go install github.com/reillywatson/enumcover/cmd/enumcover@master && enumcover ./... + - run: *notify-slack-failure + lint: description: "Run golangci-lint" parameters: @@ -184,9 +193,7 @@ jobs: - run: go env - run: name: Install golangci-lint - command: | - download=https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh - wget -O- -q $download | sh -x -s -- -d -b /home/circleci/go/bin v1.45.2 + command: make lint-tools - run: go mod download - run: name: lint @@ -238,10 +245,13 @@ jobs: echo "Generated code was not updated correctly" exit 1 fi + - run: + name: "Protobuf Lint" + command: make proto-lint go-test-arm64: machine: - image: ubuntu-2004:202101-01 + image: *UBUNTU_CI_IMAGE resource_class: arm.large parallelism: 4 environment: @@ -253,7 +263,7 @@ jobs: steps: - checkout - run: - command: | + command: | sudo rm -rf /usr/local/go wget https://dl.google.com/go/go${GO_VERSION}.linux-arm64.tar.gz sudo tar -C /usr/local -xzvf go${GO_VERSION}.linux-arm64.tar.gz @@ -547,17 +557,17 @@ jobs: # Run integration tests on nomad/v0.8.7 nomad-integration-0_8: docker: - - image: docker.mirror.hashicorp.services/circleci/golang:1.10 + - image: docker.mirror.hashicorp.services/cimg/go:1.10 environment: <<: *ENVIRONMENT - NOMAD_WORKING_DIR: &NOMAD_WORKING_DIR /go/src/github.com/hashicorp/nomad + NOMAD_WORKING_DIR: &NOMAD_WORKING_DIR /home/circleci/go/src/github.com/hashicorp/nomad NOMAD_VERSION: v0.8.7 steps: &NOMAD_INTEGRATION_TEST_STEPS - run: git clone https://github.com/hashicorp/nomad.git --branch ${NOMAD_VERSION} ${NOMAD_WORKING_DIR} # get consul binary - attach_workspace: - at: /go/bin + at: /home/circleci/go/bin # make dev build of nomad - run: @@ -587,10 +597,10 @@ jobs: # run integration tests on nomad/main nomad-integration-main: docker: - - image: docker.mirror.hashicorp.services/circleci/golang:1.17 # TODO: replace with cimg/go (requires steps update) + - image: docker.mirror.hashicorp.services/cimg/go:1.18 environment: <<: *ENVIRONMENT - NOMAD_WORKING_DIR: /go/src/github.com/hashicorp/nomad + NOMAD_WORKING_DIR: /home/circleci/go/src/github.com/hashicorp/nomad NOMAD_VERSION: main steps: *NOMAD_INTEGRATION_TEST_STEPS @@ -662,23 +672,6 @@ jobs: - packages/consul-ui/dist - run: *notify-slack-failure - # build static-assets file - build-static-assets: - docker: - - image: *GOLANG_IMAGE - steps: - - checkout - - attach_workspace: - at: ./pkg - - run: mv pkg/packages/consul-ui/dist pkg/web_ui # 'make static-assets' looks for the 'pkg/web_ui' path - - run: make tools - - run: make static-assets - - persist_to_workspace: - root: . - paths: - - ./agent/uiserver/bindata_assetfs.go - - run: *notify-slack-failure - # commits static assets to git publish-static-assets: docker: @@ -691,7 +684,12 @@ jobs: - attach_workspace: at: . - run: - name: commit agent/uiserver/bindata_assetfs.go if there are UI changes + name: move compiled ui files to agent/uiserver + command: | + rm -rf agent/uiserver/dist + mv packages/consul-ui/dist agent/uiserver + - run: + name: commit agent/uiserver/dist/ if there are UI changes command: | # check if there are any changes in ui/ # if there are, we commit the ui static asset file @@ -705,8 +703,8 @@ jobs: git checkout -B ci/main-assetfs-build main short_sha=$(git rev-parse --short HEAD) - git add agent/uiserver/bindata_assetfs.go - git commit -m "auto-updated agent/uiserver/bindata_assetfs.go from commit ${short_sha}" + git add agent/uiserver/dist/ + git commit -m "auto-updated agent/uiserver/dist/ from commit ${short_sha}" git push --force origin ci/main-assetfs-build else echo "no UI changes so no static assets to publish" @@ -800,10 +798,10 @@ jobs: working_directory: ui/packages/consul-ui command: make test-coverage-ci - run: *notify-slack-failure - + compatibility-integration-test: machine: - image: ubuntu-2004:202101-01 + image: *UBUNTU_CI_IMAGE docker_layer_caching: true parallelism: 1 steps: @@ -824,14 +822,19 @@ jobs: - run: name: Compatibility Integration Tests command: | - subtests=$(ls -d test/integration/consul-container/*/ | grep -v libs | xargs -n 1 basename | circleci tests split) - echo "Running $(echo $subtests | wc -w) subtests" - echo "$subtests" - subtests_pipe_sepr=$(echo "$subtests" | xargs | sed 's/ /|/g') mkdir -p /tmp/test-results/ - docker run consul:local consul version cd ./test/integration/consul-container - gotestsum -- -timeout=30m ./$subtests_pipe_sepr --target-version local --latest-version latest + docker run --rm consul:local consul version + gotestsum \ + --format=short-verbose \ + --debug \ + --rerun-fails=3 \ + --packages="./..." \ + -- \ + -timeout=30m \ + ./... \ + --target-version local \ + --latest-version latest ls -lrt environment: # this is needed because of incompatibility between RYUK container and circleci @@ -848,14 +851,14 @@ jobs: - store_artifacts: path: *TEST_RESULTS_DIR - run: *notify-slack-failure - - envoy-integration-test-1_19_3: &ENVOY_TESTS + + envoy-integration-test-1_19_5: &ENVOY_TESTS machine: - image: ubuntu-2004:202201-02 + image: *UBUNTU_CI_IMAGE parallelism: 4 resource_class: medium environment: - ENVOY_VERSION: "1.19.3" + ENVOY_VERSION: "1.19.5" steps: &ENVOY_INTEGRATION_TEST_STEPS - checkout # Get go binary from workspace @@ -888,20 +891,20 @@ jobs: path: *TEST_RESULTS_DIR - run: *notify-slack-failure - envoy-integration-test-1_20_2: + envoy-integration-test-1_20_4: <<: *ENVOY_TESTS environment: - ENVOY_VERSION: "1.20.2" + ENVOY_VERSION: "1.20.4" - envoy-integration-test-1_21_1: + envoy-integration-test-1_21_3: <<: *ENVOY_TESTS environment: - ENVOY_VERSION: "1.21.1" + ENVOY_VERSION: "1.21.3" - envoy-integration-test-1_22_0: + envoy-integration-test-1_22_2: <<: *ENVOY_TESTS environment: - ENVOY_VERSION: "1.22.0" + ENVOY_VERSION: "1.22.2" # run integration tests for the connect ca providers test-connect-ca-providers: @@ -927,19 +930,6 @@ jobs: path: *TEST_RESULTS_DIR - run: *notify-slack-failure - # only runs on main: checks latest commit to see if the PR associated has a backport/* or docs* label to cherry-pick - cherry-picker: - docker: - - image: docker.mirror.hashicorp.services/alpine:3.12 - steps: - - run: apk add --no-cache --no-progress git bash curl ncurses jq openssh-client - - checkout - - add_ssh_keys: # needs a key to push cherry-picked commits back to github - fingerprints: - - "fc:55:84:15:0a:1d:c8:e9:06:d0:e8:9c:7b:a9:b7:31" - - run: .circleci/scripts/cherry-picker.sh - - run: *notify-slack-failure - trigger-oss-merge: docker: - image: docker.mirror.hashicorp.services/alpine:3.12 @@ -987,6 +977,7 @@ jobs: LOCAL_COMMIT_SHA="<< pipeline.parameters.commit >>" fi echo "export LOCAL_COMMIT_SHA=${LOCAL_COMMIT_SHA}" >> $BASH_ENV + git checkout ${LOCAL_COMMIT_SHA} short_ref=$(git rev-parse --short ${LOCAL_COMMIT_SHA}) echo "export TF_VAR_ami_owners=$LOAD_TEST_AMI_OWNERS" >> $BASH_ENV @@ -1006,7 +997,8 @@ jobs: working_directory: .circleci/terraform/load-test name: terraform init command: | - echo "commit is ${LOCAL_COMMIT_SHA}" + short_ref=$(git rev-parse --short HEAD) + echo "Testing commit id: $short_ref" terraform init \ -backend-config="bucket=${BUCKET}" \ -backend-config="key=${LOCAL_COMMIT_SHA}" \ @@ -1022,7 +1014,7 @@ jobs: when: always name: terraform destroy command: | - terraform destroy -auto-approve + for i in $(seq 1 5); do terraform destroy -auto-approve && s=0 && break || s=$? && sleep 20; done; (exit $s) - run: *notify-slack-failure # The noop job is a used as a very fast job in the verify-ci workflow because every workflow @@ -1038,7 +1030,7 @@ workflows: # verify-ci is a no-op workflow that must run on every PR. It is used in a # branch protection rule to detect when CI workflows are not running. verify-ci: - jobs: [ noop ] + jobs: [noop] go-tests: unless: << pipeline.parameters.trigger-load-test >> @@ -1051,6 +1043,7 @@ workflows: - /^docs\/.*/ - /^ui\/.*/ - check-generated-protobuf: *filter-ignore-non-go-branches + - lint-enums: *filter-ignore-non-go-branches - lint-consul-retry: *filter-ignore-non-go-branches - lint: *filter-ignore-non-go-branches - lint: @@ -1061,17 +1054,17 @@ workflows: - go-test-arm64: *filter-ignore-non-go-branches - dev-build: *filter-ignore-non-go-branches - go-test: - requires: [ dev-build ] + requires: [dev-build] - go-test-lib: name: "go-test-api go1.17" path: api go-version: "1.17" - requires: [ dev-build ] + requires: [dev-build] - go-test-lib: name: "go-test-api go1.18" path: api go-version: "1.18" - requires: [ dev-build ] + requires: [dev-build] - go-test-lib: name: "go-test-sdk go1.17" path: sdk @@ -1084,6 +1077,7 @@ workflows: <<: *filter-ignore-non-go-branches - go-test-race: *filter-ignore-non-go-branches - go-test-32bit: *filter-ignore-non-go-branches + - noop build-distros: unless: << pipeline.parameters.trigger-load-test >> jobs: @@ -1102,20 +1096,12 @@ workflows: - ember-build-prod: requires: - frontend-cache - - build-static-assets: + - publish-static-assets: requires: - ember-build-prod - - publish-static-assets: - filters: - branches: - only: - - main - - /release\/\d+\.\d+\.x$/ - requires: - - build-static-assets - dev-build: requires: - - build-static-assets + - ember-build-prod - dev-upload-s3: requires: - dev-build @@ -1123,6 +1109,7 @@ workflows: requires: - dev-build context: consul-ci + - noop test-integrations: unless: << pipeline.parameters.trigger-load-test >> jobs: @@ -1144,22 +1131,22 @@ workflows: - nomad-integration-0_8: requires: - dev-build - - envoy-integration-test-1_19_3: + - envoy-integration-test-1_19_5: requires: - dev-build - - envoy-integration-test-1_20_2: + - envoy-integration-test-1_20_4: requires: - dev-build - - envoy-integration-test-1_21_1: + - envoy-integration-test-1_21_3: requires: - dev-build - - envoy-integration-test-1_22_0: + - envoy-integration-test-1_22_2: requires: - dev-build - compatibility-integration-test: requires: - dev-build - + - noop frontend: unless: << pipeline.parameters.trigger-load-test >> jobs: @@ -1192,6 +1179,7 @@ workflows: - ember-coverage: requires: - ember-build-ent + - noop workflow-automation: unless: << pipeline.parameters.trigger-load-test >> jobs: @@ -1202,13 +1190,7 @@ workflows: only: - main - /release\/\d+\.\d+\.x$/ - - cherry-picker: - context: team-consul - filters: - branches: - only: - - main - - /release\/\d+\.\d+\.x$/ + load-test: when: << pipeline.parameters.trigger-load-test >> jobs: diff --git a/.circleci/scripts/cherry-picker.sh b/.circleci/scripts/cherry-picker.sh deleted file mode 100755 index 18c2ec4a80..0000000000 --- a/.circleci/scripts/cherry-picker.sh +++ /dev/null @@ -1,195 +0,0 @@ -#!/usr/bin/env bash -# -# This script is meant to run on every new commit to main in CircleCI. If the commit comes from a PR, it will -# check the PR associated with the commit for labels. If the label matches `docs*` it will be cherry-picked -# to stable-website. If the label matches `backport/*`, it will be cherry-picked to the appropriate `release/*` -# branch. - -# Requires $CIRCLE_PROJECT_USERNAME, $CIRCLE_PROJECT_REPONAME, and $CIRCLE_SHA1 from CircleCI - -set -o pipefail - -# colorized status prompt -function status { - tput setaf 4 - echo "$@" - tput sgr0 -} - -# Returns the latest GitHub "backport/*" label -function get_latest_backport_label { - local resp - local ret - local latest_backport_label - - resp=$(curl -f -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/labels?per_page=100") - ret="$?" - if [[ "$ret" -ne 0 ]]; then - status "The GitHub API returned $ret which means it was probably rate limited." - exit $ret - fi - - latest_backport_label=$(echo "$resp" | jq -r '.[] | select(.name | startswith("backport/")) | .name' | sort -rV | head -n1) - echo "$latest_backport_label" - return 0 -} - -# This function will do the cherry-picking of a commit on a branch -# Exit 1 if cherry-picking fails -function cherry_pick_with_slack_notification { - # Arguments: - # $1 - branch to cherry-pick to - # $2 - commit to cherry-pick - # $3 - url to PR of commit - # - # Return: - # 0 for success - # 1 for error - - local branch="$1" - local commit="$2" - local pr_url="$3" - - git checkout "$branch" || exit 1 - # If git cherry-pick fails or it fails to push, we send a failure notification - if ! (git cherry-pick --mainline 1 "$commit" && git push origin "$branch"); then - status "🍒❌ Cherry pick of commit ${commit:0:7} from $pr_url onto $branch failed!" - - # send slack notification - curl -X POST -H 'Content-type: application/json' \ - --data \ - "{ \ - \"attachments\": [ \ - { \ - \"fallback\": \"Cherry pick failed!\", \ - \"text\": \"🍒❌ Cherry picking of <$pr_url|${commit:0:7}> to \`$branch\` failed!\n\nBuild Log: ${CIRCLE_BUILD_URL}\", \ - \"footer\": \"${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}\", \ - \"ts\": \"$(date +%s)\", \ - \"color\": \"danger\" \ - } \ - ] \ - }" "${CONSUL_SLACK_WEBHOOK_URL}" - - # post PR comment to GitHub - github_message=":cherries::x: Cherry pick of commit ${commit} onto \`$branch\` failed! [Build Log]($CIRCLE_BUILD_URL)" - pr_id=$(basename ${pr_url}) - curl -f -s -H "Authorization: token ${GITHUB_TOKEN}" \ - -X POST \ - -d "{ \"body\": \"${github_message}\"}" \ - "https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/issues/${pr_id}/comments" - - # run git status to leave error in CircleCI log - git status - return 1 - - # Else we send a success notification - else - status "🍒✅ Cherry picking of PR commit ${commit:0:7} from ${pr_url} succeeded!" - curl -X POST -H 'Content-type: application/json' \ - --data \ - "{ \ - \"attachments\": [ \ - { \ - \"fallback\": \"Cherry pick succeeded!\", \ - \"text\": \"🍒✅ Cherry picking of <$pr_url|${commit:0:7}> to \`$branch\` succeeded!\", \ - \"footer\": \"${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}\", \ - \"ts\": \"$(date +%s)\", \ - \"color\": \"good\" \ - } \ - ] \ - }" "${CONSUL_SLACK_WEBHOOK_URL}" - - # post PR comment to GitHub - github_message=":cherries::white_check_mark: Cherry pick of commit ${commit} onto \`$branch\` succeeded!" - pr_id=$(basename ${pr_url}) - curl -f -s -H "Authorization: token ${GITHUB_TOKEN}" \ - -X POST \ - -d "{ \"body\": \"${github_message}\"}" \ - "https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/issues/${pr_id}/comments" - fi - - return 0 -} - -# search for the PR labels applicable to the specified commit -resp=$(curl -f -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/search/issues?q=repo:${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}+sha:${CIRCLE_SHA1}") -ret="$?" -if [[ "$ret" -ne 0 ]]; then - status "The GitHub API returned $ret which means it was probably rate limited." - exit $ret -fi - -# get the count from the GitHub API to check if the commit matched a PR -count=$(echo "$resp" | jq '.total_count') -if [[ "$count" -eq 0 ]]; then - status "This commit was not associated with a PR" - exit 0 -fi - -# save PR number -pr_number=$(echo "$resp" | jq '.items[].number') - -# comment on the PR with the build number to make it easy to re-run the job when -# cherry-pick labels are added in the future -github_message=":cherries: If backport labels were added before merging, cherry-picking will start automatically.\n\nTo retroactively trigger a backport after merging, add backport labels and re-run ${CIRCLE_BUILD_URL}." -curl -f -s -H "Authorization: token ${GITHUB_TOKEN}" \ - -X POST \ - -d "{ \"body\": \"${github_message}\"}" \ - "https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/issues/${pr_number}/comments" - - - -# If the API returned a non-zero count, we have found a PR with that commit so we find -# the labels from the PR - -# Sorts the labels from a PR via version sort -labels=$(echo "$resp" | jq --raw-output '.items[].labels[] | .name' | sort -rV) -ret="$?" -pr_url=$(echo "$resp" | jq --raw-output '.items[].pull_request.html_url') -if [[ "$ret" -ne 0 ]]; then - status "jq exited with $ret when trying to find label names. Are there labels applied to the PR ($pr_url)?" - # This can be a valid error but usually this means we do not have any labels so it doesn't signal - # cherry-picking is possible. Exit 0 for now unless we run into cases where these failures are important. - exit 0 -fi - -# Attach label for latest release branch if 'docs-cherrypick' is present. Will noop if already applied. -latest_backport_label=$(get_latest_backport_label) -status "latest backport label is $latest_backport_label" -if echo "$resp" | jq -e '.items[].labels[] | select(.name | contains("docs-cherrypick"))'; then - labels=$(curl -f -s -H "Authorization: token ${GITHUB_TOKEN}" -X POST -d "{\"labels\":[\"$latest_backport_label\"]}" "https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/issues/${pr_number}/labels" | jq --raw-output '.[].name' | sort -rV) - ret="$?" - if [[ "$ret" -ne 0 ]]; then - status "Error applying $latest_backport_label to $pr_url" - exit $ret - fi -fi - -git config --local user.email "github-team-consul-core@hashicorp.com" -git config --local user.name "hc-github-team-consul-core" - -backport_failures=0 -# loop through all labels on the PR -for label in $labels; do - status "checking label: $label" - # if the label matches docs-cherrypick, it will attempt to cherry-pick to stable-website - if [[ $label =~ docs-cherrypick ]]; then - status "backporting to stable-website" - branch="stable-website" - cherry_pick_with_slack_notification "$branch" "$CIRCLE_SHA1" "$pr_url" - backport_failures=$((backport_failures + "$?")) - # else if the label matches backport/*, it will attempt to cherry-pick to the release branch - elif [[ $label =~ backport/* ]]; then - status "backporting to $label" - branch="${label/backport/release}.x" - cherry_pick_with_slack_notification "$branch" "$CIRCLE_SHA1" "$pr_url" - backport_failures=$((backport_failures + "$?")) - fi - # reset the working directory for the next label - git reset --hard -done - -if [ "$backport_failures" -ne 0 ]; then - echo "$backport_failures backports failed" - exit 1 -fi diff --git a/.circleci/terraform/load-test/main.tf b/.circleci/terraform/load-test/main.tf index 774e19c602..1a8865c065 100644 --- a/.circleci/terraform/load-test/main.tf +++ b/.circleci/terraform/load-test/main.tf @@ -10,15 +10,17 @@ provider "aws" { } module "load-test" { - source = "github.com/hashicorp/consul/test/load/terraform" + source = "../../../test/load/terraform" vpc_az = ["us-east-2a", "us-east-2b"] vpc_name = var.vpc_name vpc_cidr = "10.0.0.0/16" + vpc_allwed_ssh_cidr = "0.0.0.0/0" public_subnet_cidrs = ["10.0.1.0/24", "10.0.2.0/24"] private_subnet_cidrs = ["10.0.3.0/24"] test_public_ip = true ami_owners = var.ami_owners consul_download_url = var.consul_download_url cluster_name = var.cluster_name + cluster_tag_key = var.cluster_tag_key } diff --git a/.circleci/terraform/load-test/variables.tf b/.circleci/terraform/load-test/variables.tf index 9b3849e4ea..414cfa84e7 100644 --- a/.circleci/terraform/load-test/variables.tf +++ b/.circleci/terraform/load-test/variables.tf @@ -22,3 +22,9 @@ variable "cluster_name" { type = string default = "consul-example" } + +variable "cluster_tag_key" { + description = "The tag the EC2 Instances will look for to automatically discover each other and form a cluster." + type = string + default = "consul-ci-load-test" +} diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 839a65192f..31495d0649 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,3 +5,6 @@ /website/content/api-docs/ @hashicorp/consul-docs +# release configuration +/.release/ @hashicorp/release-engineering @hashicorp/github-consul-core +/.github/workflows/build.yml @hashicorp/release-engineering @hashicorp/github-consul-core diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c2b2b9b052..131d9057d2 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -156,12 +156,25 @@ When you're ready to submit a pull request: if your changes aren't finalized but would benefit from in-process feedback. 5. If there's any reason Consul users might need to know about this change, [add a changelog entry](../docs/contributing/add-a-changelog-entry.md). -6. After you submit, the Consul maintainers team needs time to carefully review your +6. Add labels to your pull request. A table of commonly use labels is below. + If you have any questions about which to apply, feel free to call it out in the PR or comments. + | Label | When to Use | + | --- | --- | + | `pr/no-changelog` | This PR does not have an intended changelog entry | + | `pr/no-metrics-test` | This PR does not require any testing for metrics | + | `backport/stable-website` | This PR contains documentation changes that are ready to be deployed immediately. Changes will also automatically get backported to the latest release branch | + | `backport/1.12.x` | Backport the changes in this PR to the targeted release branch. Consult the [Consul Release Notes](https://www.consul.io/docs/release-notes) page to view active releases. | + Other labels may automatically be added by the Github Action CI. +7. After you submit, the Consul maintainers team needs time to carefully review your contribution and ensure it is production-ready, considering factors such as: security, backwards-compatibility, potential regressions, etc. -7. After you address Consul maintainer feedback and the PR is approved, a Consul maintainer +8. After you address Consul maintainer feedback and the PR is approved, a Consul maintainer will merge it. Your contribution will be available from the next major release (e.g., 1.x) unless explicitly backported to an existing or previous major release by the maintainer. +9. Any backport labels will generate an additional PR to the targeted release branch. + These will be linked in the original PR. + Assuming the tests pass, the PR will be merged automatically. + If the tests fail, it is you responsibility to resolve the issues with backports and request another reviewer. #### Checklists diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 5c2b044e13..43b3ac7133 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -16,4 +16,3 @@ Please be mindful not to leak any customer or confidential information. HashiCor * [ ] updated test coverage * [ ] external facing docs updated * [ ] not a security concern -* [ ] checklist [folder](./../docs/config) consulted diff --git a/.github/scripts/metrics_checker.sh b/.github/scripts/metrics_checker.sh index 067fdd96a1..e9924b1c22 100755 --- a/.github/scripts/metrics_checker.sh +++ b/.github/scripts/metrics_checker.sh @@ -6,7 +6,7 @@ set -uo pipefail ### It is still up to the reviewer to make sure that any tests added are needed and meaningful. # search for any "new" or modified metric emissions -metrics_modified=$(git --no-pager diff HEAD origin/main | grep -i "SetGauge\|EmitKey\|IncrCounter\|AddSample\|MeasureSince\|UpdateFilter") +metrics_modified=$(git --no-pager diff origin/main...HEAD | grep -i "SetGauge\|EmitKey\|IncrCounter\|AddSample\|MeasureSince\|UpdateFilter") # search for PR body or title metric references metrics_in_pr_body=$(echo "${PR_BODY-""}" | grep -i "metric") metrics_in_pr_title=$(echo "${PR_TITLE-""}" | grep -i "metric") diff --git a/.github/scripts/verify_artifact.sh b/.github/scripts/verify_artifact.sh new file mode 100755 index 0000000000..71de52c38e --- /dev/null +++ b/.github/scripts/verify_artifact.sh @@ -0,0 +1,240 @@ +#!/bin/bash + +set -euo pipefail + +# verify_artifact.sh is the top-level script that implements the logic to decide +# which individual verification script to invoke. It decides which verification +# script to use based on artifact name it is given. By putting the logic in here, +# it keeps the workflow file simpler and easier to manage. It also doubles as a means +# to run verifications locally when necessary. + +# set this so we can locate and execute the individual verification scripts. +SCRIPT_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +function usage { + echo "verify_artifact.sh " +} + +# Arguments: +# $1 - artifact path (eg. /artifacts/consul-1.13.0~dev-1.i386.rpm) +# $2 - expected version to match against (eg. v1.13.0-dev) +function main { + local artifact_path="${1:-}" + local expect_version="${2:-}" + + if [[ -z "${artifact_path}" ]]; then + echo "ERROR: artifact path argument is required" + usage + exit 1 + fi + + if [[ -z "${expect_version}" ]]; then + echo "ERROR: expected version argument is required" + usage + exit 1 + fi + + if [[ ! -e "${artifact_path}" ]]; then + echo "ERROR: ${artifact_path} does not exist" + usage + exit 1 + fi + + # match against the various artifact names: + # deb packages: consul_${version}-1_${arch}.deb + # rpm packages: consul-${version}-1.${arch}.rpm + # zip packages: consul_${version}_${os}_${arch}.zip + case "${artifact_path}" in + *.rpm) verify_rpm "${artifact_path}" "${expect_version}";; + *.deb) verify_deb "${artifact_path}" "${expect_version}";; + *.zip) verify_zip "${artifact_path}" "${expect_version}";; + *) + echo "${artifact_path} did not match known patterns" + exit 1 + ;; + esac +} + +# Arguments: +# $1 - path to rpm (eg. consul-1.13.0~dev-1.aarch64.rpm) +# $2 - expected version to match against (eg. v1.13.0-dev) +function verify_rpm { + local artifact_path="${1:-}" + local expect_version="${2:-}" + local docker_image + local docker_platform + + case "${artifact_path}" in + *.i386.rpm) + docker_platform="linux/386" + docker_image="i386/centos:7" + ;; + *.x86_64.rpm) + docker_platform="linux/amd64" + docker_image="amd64/centos:7" + ;; + *.arm.rpm) + docker_platform="linux/arm/v7" + docker_image="arm32v7/fedora:36" + ;; + *.aarch64.rpm) + docker_platform="linux/arm64" + docker_image="arm64v8/fedora:36" + ;; + *) + echo "${artifact_path} did not match known patterns for rpms" + exit 1 + ;; + esac + + echo "executing RPM verification in Docker with these parameters:" + echo "PLATFORM=${docker_platform}" + echo "IMAGE=${docker_image}" + + docker run \ + --platform=${docker_platform} \ + -v $(pwd):/workdir \ + -v ${SCRIPT_DIR}:/scripts \ + -w /workdir \ + ${docker_image} \ + /scripts/verify_rpm.sh \ + "/workdir/${artifact_path}" \ + "${expect_version}" +} + +# Arguments: +# $1 - path to deb (eg. consul_1.13.0~dev-1_arm64.deb) +# $2 - expected version to match against (eg. v1.13.0-dev) +function verify_deb { + local artifact_path="${1:-}" + local expect_version="${2:-}" + local docker_image + local docker_platform + + case "${artifact_path}" in + *_i386.deb) + docker_platform="linux/386" + docker_image="i386/debian:bullseye" + ;; + *_amd64.deb) + docker_platform="linux/amd64" + docker_image="amd64/debian:bullseye" + ;; + *_arm.deb) + docker_platform="linux/arm/v7" + docker_image="arm32v7/debian:bullseye" + ;; + *_arm64.deb) + docker_platform="linux/arm64" + docker_image="arm64v8/debian:bullseye" + ;; + *) + echo "${artifact_path} did not match known patterns for debs" + exit 1 + ;; + esac + + echo "executing DEB verification in Docker with these parameters:" + echo "PLATFORM=${docker_platform}" + echo "IMAGE=${docker_image}" + + docker run \ + --platform=${docker_platform} \ + -v $(pwd):/workdir \ + -v ${SCRIPT_DIR}:/scripts \ + -w /workdir \ + ${docker_image} \ + /scripts/verify_deb.sh \ + "/workdir/${artifact_path}" \ + "${expect_version}" +} + +# Arguments: +# $1 - path to zip (eg. consul_1.13.0-dev_linux_amd64.zip) +# $2 - expected version to match against (eg. v1.13.0-dev) +function verify_zip { + local artifact_path="${1:-}" + local expect_version="${2:-}" + local machine_os=$(uname -s) + local machine_arch=$(uname -m) + + unzip "${artifact_path}" + + if [[ ! -e ./consul ]]; then + echo "ERROR: ${artifact_path} did not contain a consul binary" + exit 1 + fi + + case "${artifact_path}" in + + *_darwin_amd64.zip) + if [[ "${machine_os}" = 'Darwin' ]]; then + # run the darwin binary if the host is Darwin. + ${SCRIPT_DIR}/verify_bin.sh ./consul ${expect_version} + else + echo "cannot run darwin binary on a non-darwin host (${machine_os})" + fi + ;; + + *_linux_386.zip | *_linux_amd64.zip) + if [[ "${machine_os}" = 'Linux' && "${machine_arch}" = "x86_64" ]]; then + # run the binary directly on the host when it's x86_64 Linux + ${SCRIPT_DIR}/verify_bin.sh ./consul ${expect_version} + else + # otherwise, use Docker/QEMU + docker run \ + --platform=linux/amd64 \ + -v $(pwd):/workdir \ + -v ${SCRIPT_DIR}:/scripts \ + -w /workdir \ + amd64/debian \ + /scripts/verify_bin.sh \ + ./consul \ + "${expect_version}" + fi + ;; + + *_linux_arm.zip) + if [[ "${machine_os}" = 'Linux' && "${machine_arch}" = arm* ]]; then + # run the binary directly on the host when it's x86_64 Linux + ${SCRIPT_DIR}/verify_bin.sh ./consul ${expect_version} + else + # otherwise, use Docker/QEMU + docker run \ + --platform=linux/arm/v7 \ + -v $(pwd):/workdir \ + -v ${SCRIPT_DIR}:/scripts \ + -w /workdir \ + arm32v7/debian \ + /scripts/verify_bin.sh \ + ./consul \ + "${expect_version}" + fi + ;; + + *_linux_arm64.zip) + if [[ "${machine_os}" = 'Linux' && "${machine_arch}" = arm* ]]; then + # run the binary directly on the host when it's x86_64 Linux + ${SCRIPT_DIR}/verify_bin.sh ./consul ${expect_version} + else + # otherwise, use Docker/QEMU + docker run \ + --platform=linux/arm64 \ + -v $(pwd):/workdir \ + -v ${SCRIPT_DIR}:/scripts \ + -w /workdir \ + arm64v8/debian \ + /scripts/verify_bin.sh \ + ./consul \ + "${expect_version}" + fi + ;; + + *) + echo "${artifact_path} did not match known patterns for zips" + exit 1 + ;; + esac +} + +main "$@" diff --git a/.github/scripts/verify_bin.sh b/.github/scripts/verify_bin.sh new file mode 100755 index 0000000000..6f70172717 --- /dev/null +++ b/.github/scripts/verify_bin.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +set -euo pipefail + +# verify_bin.sh validates the file at the path given and then runs `./consul version` and inspects its output. If its +# output doesn't match the version given, the script will exit 1 and report why it failed. +# This is meant to be run as part of the build workflow to verify the built .zip meets some basic criteria for validity. + +function usage { + echo "./verify_bin.sh " +} + +function main { + local bin_path="${1:-}" + local expect_version="${2:-}" + local got_version + + if [[ -z "${bin_path}" ]]; then + echo "ERROR: path to binary argument is required" + usage + exit 1 + fi + + if [[ -z "${expect_version}" ]]; then + echo "ERROR: expected version argument is required" + usage + exit 1 + fi + + if [[ ! -e "${bin_path}" ]]; then + echo "ERROR: package at ${bin_path} does not exist." + exit 1 + fi + + got_version="$( awk '{print $2}' <(head -n1 <(${bin_path} version)) )" + if [ "${got_version}" != "${expect_version}" ]; then + echo "Test FAILED" + echo "Got: ${got_version}, Want: ${expect_version}" + exit 1 + fi + echo "Test PASSED" +} + +main "$@" diff --git a/.github/scripts/verify_deb.sh b/.github/scripts/verify_deb.sh new file mode 100755 index 0000000000..e4a22a2619 --- /dev/null +++ b/.github/scripts/verify_deb.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +set -euo pipefail + +# verify_deb.sh tries to install the .deb package at the path given before running `consul version` +# to inspect its output. If its output doesn't match the version given, the script will exit 1 and +# report why it failed. This is meant to be run as part of the build workflow to verify the built +# .deb meets some basic criteria for validity. + +# set this so we can locate and execute the verify_bin.sh script for verifying version output +SCRIPT_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +function usage { + echo "./verify_deb.sh " +} + +function main { + local deb_path="${1:-}" + local expect_version="${2:-}" + local got_version + + if [[ -z "${deb_path}" ]]; then + echo "ERROR: package path argument is required" + usage + exit 1 + fi + + if [[ -z "${expect_version}" ]]; then + echo "ERROR: expected version argument is required" + usage + exit 1 + fi + + # expand globs for path names, if this fails, the script will exit + deb_path=$(echo ${deb_path}) + + if [[ ! -e "${deb_path}" ]]; then + echo "ERROR: package at ${deb_path} does not exist." + usage + exit 1 + fi + + # we have to install the 'arm' architecture in order to install the 'arm' + # package, otherwise we will git a 'package architecture does not match system' error + if [[ ${deb_path} = *_arm.deb ]]; then + dpkg --add-architecture arm + fi + + apt -y update + apt -y install openssl + dpkg -i ${deb_path} + + # use the script that should be located next to this one for verifying the output + exec "${SCRIPT_DIR}/verify_bin.sh" $(which consul) "${expect_version}" +} + +main "$@" diff --git a/.github/scripts/verify_docker.sh b/.github/scripts/verify_docker.sh new file mode 100755 index 0000000000..725bf92b9f --- /dev/null +++ b/.github/scripts/verify_docker.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +set -euo pipefail + +# verify_docker.sh invokes the given Docker image to run `consul version` and inspect its output. +# If its output doesn't match the version given, the script will exit 1 and report why it failed. +# This is meant to be run as part of the build workflow to verify the built image meets some basic +# criteria for validity. +# +# Because this is meant to be run as the `smoke_test` for the docker-build workflow, the script expects +# the image name parameter to be provided by the `IMAGE_NAME` environment variable, rather than a +# positional argument. + +function usage { + echo "IMAGE_NAME= ./verify_docker.sh " +} + +function main { + local image_name="${IMAGE_NAME:-}" + local expect_version="${1:-}" + local got_version + + if [[ -z "${image_name}" ]]; then + echo "ERROR: IMAGE_NAME is not set" + usage + exit 1 + fi + + if [[ -z "${expect_version}" ]]; then + echo "ERROR: expected version argument is required" + usage + exit 1 + fi + + got_version="$( awk '{print $2}' <(head -n1 <(docker run "${image_name}" version)) )" + if [ "${got_version}" != "${expect_version}" ]; then + echo "Test FAILED" + echo "Got: ${got_version}, Want: ${expect_version}" + exit 1 + fi + echo "Test PASSED" +} + +main "$@" diff --git a/.github/scripts/verify_rpm.sh b/.github/scripts/verify_rpm.sh new file mode 100755 index 0000000000..75a63bcbc9 --- /dev/null +++ b/.github/scripts/verify_rpm.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +set -euo pipefail + +# verify_rpm.sh tries to install the .rpm package at the path given before running `consul version` +# to inspect its output. If its output doesn't match the version given, the script will exit 1 and +# report why it failed. This is meant to be run as part of the build workflow to verify the built +# .rpm meets some basic criteria for validity. + +# set this so we can locate and execute the verify_bin.sh script for verifying version output +SCRIPT_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +function usage { + echo "./verify_rpm.sh " +} + +function main { + local rpm_path="${1:-}" + local expect_version="${2:-}" + local got_version + + if [[ -z "${rpm_path}" ]]; then + echo "ERROR: package path argument is required" + usage + exit 1 + fi + + if [[ -z "${expect_version}" ]]; then + echo "ERROR: expected version argument is required" + usage + exit 1 + fi + + # expand globs for path names, if this fails, the script will exit + rpm_path=$(echo ${rpm_path}) + + if [[ ! -e "${rpm_path}" ]]; then + echo "ERROR: package at ${rpm_path} does not exist." + usage + exit 1 + fi + + yum -y clean all + yum -y update + yum -y install which openssl + rpm --ignorearch -i ${rpm_path} + + # use the script that should be located next to this one for verifying the output + exec "${SCRIPT_DIR}/verify_bin.sh" $(which consul) "${expect_version}" +} + +main "$@" diff --git a/.github/workflows/backport-assistant.yml b/.github/workflows/backport-assistant.yml index 91a9cf6ad4..f6738815b9 100644 --- a/.github/workflows/backport-assistant.yml +++ b/.github/workflows/backport-assistant.yml @@ -8,6 +8,9 @@ on: types: - closed - labeled + branches: + - main + - 'release/*.*.x' jobs: backport: @@ -16,17 +19,34 @@ jobs: container: hashicorpdev/backport-assistant:0.2.3 steps: - name: Run Backport Assistant for stable-website - # Update this to auto-merge when we have confidence in the process working and kill Circle run: | - backport-assistant backport -merge-method=rebase + backport-assistant backport -merge-method=squash -automerge env: BACKPORT_LABEL_REGEXP: "type/docs-(?Pcherrypick)" BACKPORT_TARGET_TEMPLATE: "stable-website" GITHUB_TOKEN: ${{ secrets.ELEVATED_GITHUB_TOKEN }} - - name: Run Backport Assistant for release branches - # Update this to auto-merge when we have confidence in the process working and kill Circle + - name: Backport changes to latest release branch run: | - backport-assistant backport -merge-method=rebase + # Use standard token here + resp=$(curl -f -s -H 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' "https://api.github.com/repos/$GITHUB_REPOSITORY/labels?per_page=100") + ret="$?" + if [[ "$ret" -ne 0 ]]; then + echo "The GitHub API returned $ret" + exit $ret + fi + # get the latest backport label excluding any website labels, ex: `backport/0.3.x` and not `backport/website` + latest_backport_label=$(echo "$resp" | jq -r '.[] | select(.name | (startswith("backport/") and (contains("website") | not))) | .name' | sort -rV | head -n1) + echo "Latest backport label: $latest_backport_label" + # set BACKPORT_TARGET_TEMPLATE for backport-assistant + # trims backport/ from the beginning with parameter substitution + export BACKPORT_TARGET_TEMPLATE="release/${latest_backport_label#backport/}.x" + backport-assistant backport -merge-method=squash -automerge + env: + BACKPORT_LABEL_REGEXP: "type/docs-(?Pcherrypick)" + GITHUB_TOKEN: ${{ secrets.ELEVATED_GITHUB_TOKEN }} + - name: Run Backport Assistant for release branches + run: | + backport-assistant backport -merge-method=squash -automerge env: BACKPORT_LABEL_REGEXP: "backport/(?P\\d+\\.\\d+)" BACKPORT_TARGET_TEMPLATE: "release/{{.target}}.x" diff --git a/.github/workflows/backport-reminder.yml b/.github/workflows/backport-reminder.yml index 323b90daf6..359451269d 100644 --- a/.github/workflows/backport-reminder.yml +++ b/.github/workflows/backport-reminder.yml @@ -1,6 +1,8 @@ # This workflow sends a reminder comment to PRs that have labels starting with # `backport/` to check that the backport has run successfully. +name: Backport Assistant Reminder + on: pull_request: types: [ labeled ] @@ -17,7 +19,7 @@ jobs: steps: - name: Comment on PR run: | - github_message="After merging, confirm that you see messages like: 🍒✅ Cherry pick of commit ... onto ... succeeded!" + github_message="After merging, confirm that you see linked PRs AND check them for CI errors." curl -s -H "Authorization: token ${{ secrets.PR_COMMENT_TOKEN }}" \ -X POST \ -d "{ \"body\": \"${github_message}\"}" \ diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a01c499c6d..c4c38efc3d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,6 +15,7 @@ jobs: runs-on: ubuntu-latest outputs: product-version: ${{ steps.get-product-version.outputs.product-version }} + product-date: ${{ steps.get-product-version.outputs.product-date }} pre-version: ${{ steps.get-product-version.outputs.pre-version }} pkg-version: ${{ steps.get-product-version.outputs.pkg-version }} shared-ldflags: ${{ steps.shared-ldflags.outputs.shared-ldflags }} @@ -24,6 +25,7 @@ jobs: id: get-product-version run: | CONSUL_VERSION=$(build-support/scripts/version.sh -r) + CONSUL_DATE=$(build-support/scripts/build-date.sh) ## TODO: This assumes `make version` outputs 1.1.1+ent-prerel IFS="+" read VERSION _other <<< "$CONSUL_VERSION" IFS="-" read _other PREREL_VERSION <<< "$CONSUL_VERSION" @@ -32,12 +34,15 @@ jobs: ## [version]{-prerelease}+ent before then, we'll need to add ## logic to handle presense/absence of the prerelease echo "::set-output name=product-version::${CONSUL_VERSION}" + echo "::set-output name=product-date::${CONSUL_DATE}" echo "::set-output name=pre-version::${PREREL_VERSION}" echo "::set-output name=pkg-version::${VERSION}" - name: Set shared -ldflags id: shared-ldflags - run: echo "::set-output name=shared-ldflags::-X github.com/hashicorp/consul/version.GitCommit=${GITHUB_SHA::8} -X github.com/hashicorp/consul/version.GitDescribe=${{ steps.get-product-version.outputs.product-version }}" + run: | + T="github.com/hashicorp/consul/version" + echo "::set-output name=shared-ldflags::-X ${T}.GitCommit=${GITHUB_SHA::8} -X ${T}.GitDescribe=${{ steps.get-product-version.outputs.product-version }} -X ${T}.BuildDate=${{ steps.get-product-version.outputs.product-date }}" generate-metadata-file: needs: get-product-version @@ -85,11 +90,6 @@ jobs: with: go-version: ${{ matrix.go }} - - name: Install project dependencies - run: | - go install github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs@38087fe - go install github.com/hashicorp/go-bindata/go-bindata@bf7910a - - name: Setup with node and yarn uses: actions/setup-node@v2 with: @@ -100,18 +100,16 @@ jobs: - name: Build UI run: | CONSUL_VERSION=${{ needs.get-product-version.outputs.product-version }} + CONSUL_DATE=${{ needs.get-product-version.outputs.product-date }} CONSUL_BINARY_TYPE=${CONSUL_BINARY_TYPE} CONSUL_COPYRIGHT_YEAR=$(git show -s --format=%cd --date=format:%Y HEAD) echo "consul_version is ${CONSUL_VERSION}" + echo "consul_date is ${CONSUL_DATE}" echo "consul binary type is ${CONSUL_BINARY_TYPE}" echo "consul copyright year is ${CONSUL_COPYRIGHT_YEAR}" cd ui && make && cd .. - mkdir pkg - mv ui/packages/consul-ui/dist pkg/web_ui - - - name: Build static-assets - run: make static-assets - + rm -rf agent/uiserver/dist + mv ui/packages/consul-ui/dist agent/uiserver/ - name: Build env: GOOS: ${{ matrix.goos }} @@ -185,11 +183,6 @@ jobs: with: go-version: ${{ matrix.go }} - - name: Install project dependencies - run: | - go install github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs@38087fe - go install github.com/hashicorp/go-bindata/go-bindata@bf7910a - - name: Setup with node and yarn uses: actions/setup-node@v2 with: @@ -206,11 +199,8 @@ jobs: echo "consul binary type is ${CONSUL_BINARY_TYPE}" echo "consul copyright year is ${CONSUL_COPYRIGHT_YEAR}" cd ui && make && cd .. - mkdir pkg - mv ui/packages/consul-ui/dist pkg/web_ui - - - name: Build static-assets - run: make static-assets + rm -rf agent/uiserver/dist + mv ui/packages/consul-ui/dist agent/uiserver/ - name: Build env: @@ -235,7 +225,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - arch: ["arm", "arm64", "386", "amd64"] + arch: ["386", "amd64", "arm", "arm64"] env: repo: ${{github.event.repository.name}} version: ${{needs.get-product-version.outputs.product-version}} @@ -251,3 +241,159 @@ jobs: tags: | docker.io/hashicorp/${{env.repo}}:${{env.version}} public.ecr.aws/hashicorp/${{env.repo}}:${{env.version}} + dev_tags: | + docker.io/hashicorppreview/${{ env.repo }}:${{ env.version }} + docker.io/hashicorppreview/${{ env.repo }}:${{ env.version }}-${{ github.sha }} + smoke_test: .github/scripts/verify_docker.sh v${{ env.version }} + + build-docker-redhat: + name: Docker Build UBI Image for RedHat + needs: + - get-product-version + - build + runs-on: ubuntu-latest + env: + repo: ${{github.event.repository.name}} + version: ${{needs.get-product-version.outputs.product-version}} + + steps: + - uses: actions/checkout@v2 + - uses: hashicorp/actions-docker-build@v1 + with: + version: ${{env.version}} + target: ubi + arch: amd64 + redhat_tag: scan.connect.redhat.com/ospid-60f9fdbec3a80eac643abedf/${{env.repo}}:${{env.version}}-ubi + smoke_test: .github/scripts/verify_docker.sh v${{ env.version }} + + verify-linux: + needs: + - get-product-version + - build + runs-on: ubuntu-latest + strategy: + matrix: + arch: ["386", "amd64", "arm", "arm64"] + fail-fast: true + env: + version: ${{ needs.get-product-version.outputs.product-version }} + zip_name: consul_${{ needs.get-product-version.outputs.product-version }}_linux_${{ matrix.arch }}.zip + + name: Verify ${{ matrix.arch }} linux binary + steps: + - uses: actions/checkout@v2 + + - name: Download ${{ matrix.arch }} zip + uses: actions/download-artifact@v3 + with: + name: ${{ env.zip_name }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + if: ${{ matrix.arch == 'arm' || matrix.arch == 'arm64' }} + with: + # this should be a comma-separated string as opposed to an array + platforms: arm,arm64 + + - name: Run verification for ${{ matrix.arch }} binary + run: .github/scripts/verify_artifact.sh ${{ env.zip_name }} v${{ env.version }} + + verify-darwin: + needs: + - get-product-version + - build-darwin + runs-on: macos-latest + strategy: + fail-fast: true + env: + version: ${{needs.get-product-version.outputs.product-version}} + zip_name: consul_${{ needs.get-product-version.outputs.product-version }}_darwin_amd64.zip + + name: Verify amd64 darwin binary + steps: + - uses: actions/checkout@v2 + + - name: Download amd64 darwin zip + uses: actions/download-artifact@v3 + with: + name: ${{ env.zip_name }} + + - name: Unzip amd64 darwin zip + run: unzip ${{ env.zip_name }} + + - name: Run verification for amd64 darwin binary + run: .github/scripts/verify_bin.sh ./consul v${{ env.version }} + + verify-linux-packages-deb: + needs: + - build + - get-product-version + runs-on: ubuntu-latest + strategy: + matrix: + arch: ["i386", "amd64", "arm", "arm64"] + # fail-fast: true + env: + version: ${{ needs.get-product-version.outputs.product-version }} + + name: Verify ${{ matrix.arch }} debian package + steps: + - uses: actions/checkout@v2 + + - name: Set package version + run: | + echo "pkg_version=$(echo ${{ needs.get-product-version.outputs.product-version }} | sed 's/\-/~/g')" >> $GITHUB_ENV + + - name: Set package name + run: | + echo "pkg_name=consul_${{ env.pkg_version }}-1_${{ matrix.arch }}.deb" >> $GITHUB_ENV + + - name: Download workflow artifacts + uses: actions/download-artifact@v3 + with: + name: ${{ env.pkg_name }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: all + + - name: Verify ${{ matrix.arch }} debian package + run: ./.github/scripts/verify_artifact.sh ${{ env.pkg_name }} v${{ env.version }} + + verify-linux-packages-rpm: + needs: + - build + - get-product-version + runs-on: ubuntu-latest + strategy: + matrix: + arch: ["i386", "x86_64", "arm", "aarch64"] + # fail-fast: true + env: + version: ${{ needs.get-product-version.outputs.product-version }} + + name: Verify ${{ matrix.arch }} rpm + steps: + - uses: actions/checkout@v2 + + - name: Set package version + run: | + echo "pkg_version=$(echo ${{ needs.get-product-version.outputs.product-version }} | sed 's/\-/~/g')" >> $GITHUB_ENV + + - name: Set package name + run: | + echo "pkg_name=consul-${{ env.pkg_version }}-1.${{ matrix.arch }}.rpm" >> $GITHUB_ENV + + - name: Download workflow artifacts + uses: actions/download-artifact@v3 + with: + name: ${{ env.pkg_name }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: all + + - name: Verify ${{ matrix.arch }} rpm + run: ./.github/scripts/verify_artifact.sh ${{ env.pkg_name }} v${{ env.version }} diff --git a/.github/workflows/changelog-checker.yml b/.github/workflows/changelog-checker.yml index c487cf759e..9ee065e101 100644 --- a/.github/workflows/changelog-checker.yml +++ b/.github/workflows/changelog-checker.yml @@ -1,6 +1,8 @@ # This workflow checks that there is either a 'pr/no-changelog' label applied to a PR # or there is a .changelog/.txt file associated with a PR for a changelog entry +name: Changelog Checker + on: pull_request: types: [opened, synchronize, labeled] diff --git a/.github/workflows/embedded-asset-checker.yml b/.github/workflows/embedded-asset-checker.yml new file mode 100644 index 0000000000..8eb60d70d0 --- /dev/null +++ b/.github/workflows/embedded-asset-checker.yml @@ -0,0 +1,37 @@ +# This workflow detects if there is a diff in the `agent/uiserver/dist` directory +# which is used by Consul to serve its embedded UI. +# `agent/uiserver/dist` should not be manually updated. + +name: Embedded Asset Checker + +on: + pull_request: + types: [opened, synchronize, labeled, unlabeled, reopened] + # Runs on PRs to main and all release branches + branches: + - main + - release/* + +jobs: + dist-check: + if: "! ( contains(github.event.pull_request.labels.*.name, 'pr/update-ui-assets') || github.event.pull_request.user.login == 'hc-github-team-consul-core' )" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 # by default the checkout action doesn't checkout all branches + - name: Check for agent/uiserver/dist dir change in diff + run: | + dist_files=$(git --no-pager diff --name-only HEAD "$(git merge-base HEAD "origin/${{ github.event.pull_request.base.ref }}")" -- agent/uiserver/dist) + if [[ -z "${dist_files}" ]]; then + exit 0 + fi + + echo "Found diffs in dir agent/uiserver/dist" + github_message="This PR has diffs in \`agent/uiserver/dist\`. If the changes are intentional, add the label \`pr/update-ui-assets\`. Otherwise, revert changes to \`agent/uiserver/dist\`." + curl -s -H "Authorization: token ${{ secrets.PR_COMMENT_TOKEN }}" \ + -X POST \ + -d "{ \"body\": \"${github_message}\"}" \ + "https://api.github.com/repos/${GITHUB_REPOSITORY}/issues/${{ github.event.pull_request.number }}/comments" + exit 1 diff --git a/.github/workflows/load-test.yml b/.github/workflows/load-test.yml index b603bf7e6c..ab7d793e79 100644 --- a/.github/workflows/load-test.yml +++ b/.github/workflows/load-test.yml @@ -1,8 +1,11 @@ +name: Load Test + on: pull_request: branches: - main types: [labeled] + workflow_dispatch: {} jobs: trigger-load-test: diff --git a/.github/workflows/nightly-test-1.10.x.yaml b/.github/workflows/nightly-test-1.10.x.yaml new file mode 100644 index 0000000000..75f9d039e4 --- /dev/null +++ b/.github/workflows/nightly-test-1.10.x.yaml @@ -0,0 +1,230 @@ +name: Nightly 1.10.x Test +on: + schedule: + - cron: '0 4 * * *' + workflow_dispatch: {} + +env: + EMBER_PARTITION_TOTAL: 4 # Has to be changed in tandem with the matrix.partition + BRANCH: "release/1.10.x" + BRANCH_NAME: "release-1.10.x" # Used for naming artifacts + +jobs: + frontend-test-workspace-node: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: yarn install + + - name: Workspace Tests + id: workspace-test + working-directory: ./ui + run: make test-workspace + + - name: Node Tests + id: node-test + working-directory: ./ui/packages/consul-ui + run: make test-node + + frontend-build-oss: + runs-on: ubuntu-latest + env: + JOBS: 2 + CONSUL_NSPACES_ENABLED: 0 + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: yarn install + + - name: Ember Build OSS + id: build-oss + working-directory: ./ui/packages/consul-ui + run: make build-ci + + - name: Upload OSS Frontend + uses: actions/upload-artifact@v3 + with: + name: frontend-oss-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + if-no-files-found: error + + frontend-test-oss: + runs-on: ubuntu-latest + needs: [frontend-build-oss] + strategy: + matrix: + partition: [ 1, 2, 3, 4 ] + env: + CONSUL_NSPACES_ENABLED: 0 + EMBER_TEST_REPORT: test-results/report-oss.xml #outputs test report for CircleCI test summary + EMBER_TEST_PARALLEL: true #enables test parallelization with ember-exam + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: yarn install + + - name: Download OSS Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-oss-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Ember Test OSS + id: cache + working-directory: ./ui/packages/consul-ui + run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit + + frontend-build-ent: + runs-on: ubuntu-latest + env: + JOBS: 2 + CONSUL_NSPACES_ENABLED: 1 + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: yarn install + + - name: Ember Build ENT + id: build-oss + working-directory: ./ui/packages/consul-ui + run: make build-ci + + - name: Upload ENT Frontend + uses: actions/upload-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + if-no-files-found: error + + frontend-test-ent: + runs-on: ubuntu-latest + needs: [frontend-build-ent] + strategy: + matrix: + partition: [ 1, 2, 3, 4 ] + env: + CONSUL_NSPACES_ENABLED: 1 + EMBER_TEST_REPORT: test-results/report-oss.xml #outputs test report for CircleCI test summary + EMBER_TEST_PARALLEL: true #enables test parallelization with ember-exam + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: yarn install + + - name: Download ENT Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Ember Test ENT + id: cache + working-directory: ./ui/packages/consul-ui + run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit + + frontend-test-coverage-ent: + runs-on: ubuntu-latest + needs: [frontend-build-ent] + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: yarn install + + - name: Download ENT Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Run ENT Code Coverage + working-directory: ./ui/packages/consul-ui + run: make test-coverage-ci + + slack-failure-notification: + runs-on: ubuntu-latest + needs: [frontend-test-oss, frontend-test-ent] + if: ${{ failure() }} + steps: + - name: Slack Notification + id: slack + uses: slackapi/slack-github-action@v1.19 + with: + payload: | + { + "message": "One or more nightly UI tests have failed on branch ${{ env.BRANCH }} for Consul. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.CONSUL_UI_SLACK_WEBHOOK }} diff --git a/.github/workflows/nightly-release-ui-test.yaml b/.github/workflows/nightly-test-1.11.x.yaml similarity index 64% rename from .github/workflows/nightly-release-ui-test.yaml rename to .github/workflows/nightly-test-1.11.x.yaml index 0e54a06876..cd913d4eca 100644 --- a/.github/workflows/nightly-release-ui-test.yaml +++ b/.github/workflows/nightly-test-1.11.x.yaml @@ -1,47 +1,21 @@ -name: nightly-release-ui-test +name: Nightly Test 1.11.x on: schedule: - cron: '0 4 * * *' workflow_dispatch: {} env: - EMBER_PARTITION_TOTAL: 4 # Has to be changed in tandem with the matrix.partion + EMBER_PARTITION_TOTAL: 4 # Has to be changed in tandem with the matrix.partition + BRANCH: "release/1.11.x" + BRANCH_NAME: "release-1.11.x" # Used for naming artifacts jobs: - frontend-cache: - runs-on: ubuntu-latest - strategy: - matrix: - branch: [ release/1.10.x, release/1.11.x, release/1.12.x ] - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - ref: ${{ matrix.branch }} - - # Not necessary to use yarn, but enables caching - - uses: actions/setup-node@v3 - with: - node-version: 14 - cache: 'yarn' - cache-dependency-path: ./ui/yarn.lock - - - name: Install - id: install - working-directory: ./ui - run: make deps - frontend-test-workspace-node: runs-on: ubuntu-latest - needs: [frontend-cache] - strategy: - matrix: - branch: [ release/1.10.x, release/1.11.x, release/1.12.x ] steps: - uses: actions/checkout@v2 with: - fetch-depth: 0 - ref: ${{ matrix.branch }} + ref: ${{ env.BRANCH }} # Not necessary to use yarn, but enables caching - uses: actions/setup-node@v3 @@ -67,18 +41,13 @@ jobs: frontend-build-oss: runs-on: ubuntu-latest - needs: [frontend-cache] - strategy: - matrix: - branch: [ release/1.10.x, release/1.11.x, release/1.12.x ] env: JOBS: 2 CONSUL_NSPACES_ENABLED: 0 steps: - uses: actions/checkout@v2 with: - fetch-depth: 0 - ref: ${{ matrix.branch }} + ref: ${{ env.BRANCH }} # Not necessary to use yarn, but enables caching - uses: actions/setup-node@v3 @@ -100,16 +69,16 @@ jobs: - name: Upload OSS Frontend uses: actions/upload-artifact@v3 with: - name: frontend-oss-${{ matrix.branch }} - path: .ui/packages/consul-ui/dist + name: frontend-oss-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + if-no-files-found: error frontend-test-oss: runs-on: ubuntu-latest needs: [frontend-build-oss] strategy: matrix: - branch: [ release/1.10.x, release/1.11.x, release/1.12.x ] - partion: [ 1, 2, 3, 4 ] + partition: [ 1, 2, 3, 4 ] env: CONSUL_NSPACES_ENABLED: 0 EMBER_TEST_REPORT: test-results/report-oss.xml #outputs test report for CircleCI test summary @@ -117,8 +86,7 @@ jobs: steps: - uses: actions/checkout@v2 with: - fetch-depth: 0 - ref: ${{ matrix.branch }} + ref: ${{ env.BRANCH }} # Not necessary to use yarn, but enables caching - uses: actions/setup-node@v3 @@ -133,32 +101,25 @@ jobs: run: make deps - name: Download OSS Frontend - uses: actions/upload-artifact@v3 + uses: actions/download-artifact@v3 with: - name: frontend-oss-${{ matrix.branch }} - path: .ui/packages/consul-ui/dist + name: frontend-oss-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist - name: Ember Test OSS id: cache working-directory: ./ui/packages/consul-ui run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit - # TODO: add test-reporter: https://github.com/marketplace/actions/test-reporter - frontend-build-ent: runs-on: ubuntu-latest - needs: [frontend-cache] - strategy: - matrix: - branch: [ release/1.10.x, release/1.11.x, release/1.12.x ] env: JOBS: 2 CONSUL_NSPACES_ENABLED: 1 steps: - uses: actions/checkout@v2 with: - fetch-depth: 0 - ref: ${{ matrix.branch }} + ref: ${{ env.BRANCH }} # Not necessary to use yarn, but enables caching - uses: actions/setup-node@v3 @@ -180,16 +141,16 @@ jobs: - name: Upload ENT Frontend uses: actions/upload-artifact@v3 with: - name: frontend-ent-${{ matrix.branch }} - path: .ui/packages/consul-ui/dist + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + if-no-files-found: error frontend-test-ent: runs-on: ubuntu-latest needs: [frontend-build-ent] strategy: matrix: - branch: [ release/1.10.x, release/1.11.x, release/1.12.x ] - partion: [ 1, 2, 3, 4 ] + partition: [ 1, 2, 3, 4 ] env: CONSUL_NSPACES_ENABLED: 1 EMBER_TEST_REPORT: test-results/report-oss.xml #outputs test report for CircleCI test summary @@ -197,8 +158,7 @@ jobs: steps: - uses: actions/checkout@v2 with: - fetch-depth: 0 - ref: ${{ matrix.branch }} + ref: ${{ env.BRANCH }} # Not necessary to use yarn, but enables caching - uses: actions/setup-node@v3 @@ -213,29 +173,23 @@ jobs: run: make deps - name: Download ENT Frontend - uses: actions/upload-artifact@v3 + uses: actions/download-artifact@v3 with: - name: frontend-ent-${{ matrix.branch }} - path: .ui/packages/consul-ui/dist + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist - name: Ember Test ENT id: cache working-directory: ./ui/packages/consul-ui run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit - # TODO: add test-reporter: https://github.com/marketplace/actions/test-reporter - frontend-test-coverage-ent: runs-on: ubuntu-latest needs: [frontend-build-ent] - strategy: - matrix: - branch: [ release/1.10.x, release/1.11.x, release/1.12.x ] steps: - uses: actions/checkout@v2 with: - fetch-depth: 0 - ref: ${{ matrix.branch }} + ref: ${{ env.BRANCH }} # Not necessary to use yarn, but enables caching - uses: actions/setup-node@v3 @@ -249,6 +203,12 @@ jobs: working-directory: ./ui run: make deps + - name: Download ENT Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + - name: Run ENT Code Coverage working-directory: ./ui/packages/consul-ui run: make test-coverage-ci @@ -260,8 +220,11 @@ jobs: steps: - name: Slack Notification id: slack - uses: slackapi/slack-github-action@main + uses: slackapi/slack-github-action@v1.19 with: - payload: "{\"message\":\"One or more nightly UI test have failed on a release branch for Consul. [Link to Failed Action](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}). \"}" + payload: | + { + "message": "One or more nightly UI tests have failed on branch ${{ env.BRANCH }} for Consul. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + } env: - SLACK_WEBHOOK_URL: ${{ secrets.CONSUL_CORE_SLACK_WEBHOOK }} + SLACK_WEBHOOK_URL: ${{ secrets.CONSUL_UI_SLACK_WEBHOOK }} diff --git a/.github/workflows/nightly-test-1.12.x.yaml b/.github/workflows/nightly-test-1.12.x.yaml new file mode 100644 index 0000000000..906f2ba8fb --- /dev/null +++ b/.github/workflows/nightly-test-1.12.x.yaml @@ -0,0 +1,230 @@ +name: Nightly Test 1.12.x +on: + schedule: + - cron: '0 4 * * *' + workflow_dispatch: {} + +env: + EMBER_PARTITION_TOTAL: 4 # Has to be changed in tandem with the matrix.partition + BRANCH: "release/1.12.x" + BRANCH_NAME: "release-1.12.x" # Used for naming artifacts + +jobs: + frontend-test-workspace-node: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Workspace Tests + id: workspace-test + working-directory: ./ui + run: make test-workspace + + - name: Node Tests + id: node-test + working-directory: ./ui/packages/consul-ui + run: make test-node + + frontend-build-oss: + runs-on: ubuntu-latest + env: + JOBS: 2 + CONSUL_NSPACES_ENABLED: 0 + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Ember Build OSS + id: build-oss + working-directory: ./ui/packages/consul-ui + run: make build-ci + + - name: Upload OSS Frontend + uses: actions/upload-artifact@v3 + with: + name: frontend-oss-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + if-no-files-found: error + + frontend-test-oss: + runs-on: ubuntu-latest + needs: [frontend-build-oss] + strategy: + matrix: + partition: [ 1, 2, 3, 4 ] + env: + CONSUL_NSPACES_ENABLED: 0 + EMBER_TEST_REPORT: test-results/report-oss.xml #outputs test report for CircleCI test summary + EMBER_TEST_PARALLEL: true #enables test parallelization with ember-exam + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Download OSS Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-oss-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Ember Test OSS + id: cache + working-directory: ./ui/packages/consul-ui + run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit + + frontend-build-ent: + runs-on: ubuntu-latest + env: + JOBS: 2 + CONSUL_NSPACES_ENABLED: 1 + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Ember Build ENT + id: build-oss + working-directory: ./ui/packages/consul-ui + run: make build-ci + + - name: Upload ENT Frontend + uses: actions/upload-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + if-no-files-found: error + + frontend-test-ent: + runs-on: ubuntu-latest + needs: [frontend-build-ent] + strategy: + matrix: + partition: [ 1, 2, 3, 4 ] + env: + CONSUL_NSPACES_ENABLED: 1 + EMBER_TEST_REPORT: test-results/report-oss.xml #outputs test report for CircleCI test summary + EMBER_TEST_PARALLEL: true #enables test parallelization with ember-exam + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Download ENT Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Ember Test ENT + id: cache + working-directory: ./ui/packages/consul-ui + run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit + + frontend-test-coverage-ent: + runs-on: ubuntu-latest + needs: [frontend-build-ent] + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Download ENT Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Run ENT Code Coverage + working-directory: ./ui/packages/consul-ui + run: make test-coverage-ci + + slack-failure-notification: + runs-on: ubuntu-latest + needs: [frontend-test-oss, frontend-test-ent] + if: ${{ failure() }} + steps: + - name: Slack Notification + id: slack + uses: slackapi/slack-github-action@v1.19 + with: + payload: | + { + "message": "One or more nightly UI tests have failed on branch ${{ env.BRANCH }} for Consul. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.CONSUL_UI_SLACK_WEBHOOK }} diff --git a/.github/workflows/nightly-test-main.yaml b/.github/workflows/nightly-test-main.yaml new file mode 100644 index 0000000000..e823bac7b5 --- /dev/null +++ b/.github/workflows/nightly-test-main.yaml @@ -0,0 +1,230 @@ +name: Nightly Test Main +on: + schedule: + - cron: '0 4 * * *' + workflow_dispatch: {} + +env: + EMBER_PARTITION_TOTAL: 4 # Has to be changed in tandem with the matrix.partition + BRANCH: "main" + BRANCH_NAME: "main" # Used for naming artifacts + +jobs: + frontend-test-workspace-node: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Workspace Tests + id: workspace-test + working-directory: ./ui + run: make test-workspace + + - name: Node Tests + id: node-test + working-directory: ./ui/packages/consul-ui + run: make test-node + + frontend-build-oss: + runs-on: ubuntu-latest + env: + JOBS: 2 + CONSUL_NSPACES_ENABLED: 0 + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Ember Build OSS + id: build-oss + working-directory: ./ui/packages/consul-ui + run: make build-ci + + - name: Upload OSS Frontend + uses: actions/upload-artifact@v3 + with: + name: frontend-oss-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + if-no-files-found: error + + frontend-test-oss: + runs-on: ubuntu-latest + needs: [frontend-build-oss] + strategy: + matrix: + partition: [ 1, 2, 3, 4 ] + env: + CONSUL_NSPACES_ENABLED: 0 + EMBER_TEST_REPORT: test-results/report-oss.xml #outputs test report for CircleCI test summary + EMBER_TEST_PARALLEL: true #enables test parallelization with ember-exam + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Download OSS Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-oss-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Ember Test OSS + id: cache + working-directory: ./ui/packages/consul-ui + run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit + + frontend-build-ent: + runs-on: ubuntu-latest + env: + JOBS: 2 + CONSUL_NSPACES_ENABLED: 1 + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Ember Build ENT + id: build-oss + working-directory: ./ui/packages/consul-ui + run: make build-ci + + - name: Upload ENT Frontend + uses: actions/upload-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + if-no-files-found: error + + frontend-test-ent: + runs-on: ubuntu-latest + needs: [frontend-build-ent] + strategy: + matrix: + partition: [ 1, 2, 3, 4 ] + env: + CONSUL_NSPACES_ENABLED: 1 + EMBER_TEST_REPORT: test-results/report-oss.xml #outputs test report for CircleCI test summary + EMBER_TEST_PARALLEL: true #enables test parallelization with ember-exam + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Download ENT Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Ember Test ENT + id: cache + working-directory: ./ui/packages/consul-ui + run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit + + frontend-test-coverage-ent: + runs-on: ubuntu-latest + needs: [frontend-build-ent] + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ env.BRANCH }} + + # Not necessary to use yarn, but enables caching + - uses: actions/setup-node@v3 + with: + node-version: 14 + cache: 'yarn' + cache-dependency-path: ./ui/yarn.lock + + - name: Install + id: install + working-directory: ./ui + run: make deps + + - name: Download ENT Frontend + uses: actions/download-artifact@v3 + with: + name: frontend-ent-${{ env.BRANCH_NAME }} + path: ./ui/packages/consul-ui/dist + + - name: Run ENT Code Coverage + working-directory: ./ui/packages/consul-ui + run: make test-coverage-ci + + slack-failure-notification: + runs-on: ubuntu-latest + needs: [frontend-test-oss, frontend-test-ent] + if: ${{ failure() }} + steps: + - name: Slack Notification + id: slack + uses: slackapi/slack-github-action@v1.19 + with: + payload: | + { + "message": "One or more nightly UI tests have failed on branch ${{ env.BRANCH }} for Consul. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.CONSUL_UI_SLACK_WEBHOOK }} diff --git a/.github/workflows/oss-merge-trigger.yml b/.github/workflows/oss-merge-trigger.yml new file mode 100644 index 0000000000..4d08442d90 --- /dev/null +++ b/.github/workflows/oss-merge-trigger.yml @@ -0,0 +1,26 @@ +name: Trigger OSS to Enterprise Merge +on: + pull_request_target: + types: + - closed + branches: + - main + - 'release/*.*.x' + +jobs: + trigger-oss-merge: + # run this only on merge events in OSS repo + if: ${{ github.event.pull_request.merged && github.repository == 'hashicorp/consul' }} + runs-on: ubuntu-latest + steps: + - name: Trigger Merge + env: + GIT_REF: ${{ github.ref_name }} + GIT_SHA: ${{ github.sha }} + GH_PAT: ${{ secrets.ELEVATED_GITHUB_TOKEN }} + GIT_ACTOR: ${{ github.actor }} + run: | + curl -H "Authorization: token $GH_PAT" \ + -H 'Accept: application/json' \ + -d "{\"event_type\": \"oss-merge\", \"client_payload\": {\"git-ref\": \"${GIT_REF}\", \"git-sha\": \"${GIT_SHA}\", \"git-actor\": \"${GIT_ACTOR}\" }}" \ + "https://api.github.com/repos/hashicorp/consul-enterprise/dispatches" \ No newline at end of file diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 1160711fbb..64d728084b 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -1,6 +1,6 @@ name: "Pull Request Labeler" on: - pull_request: + pull_request_target: types: [opened] jobs: diff --git a/.github/workflows/pr-metrics-test-checker.yml b/.github/workflows/pr-metrics-test-checker.yml index 3019d357c8..7c42da595b 100644 --- a/.github/workflows/pr-metrics-test-checker.yml +++ b/.github/workflows/pr-metrics-test-checker.yml @@ -8,7 +8,7 @@ on: jobs: metrics_test_check: - if: "!contains(github.event.pull_request.labels.*.name, 'pr/no-metrics-test')" + if: "! ( contains(github.event.pull_request.labels.*.name, 'pr/no-metrics-test') || github.event.pull_request.user.login == 'hc-github-team-consul-core' )" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/website-checker.yml b/.github/workflows/website-checker.yml index 17d69dc8ca..e5d628235d 100644 --- a/.github/workflows/website-checker.yml +++ b/.github/workflows/website-checker.yml @@ -10,6 +10,8 @@ # in the PR and if they need to be cherry-picked to the stable-website branch, the # 'type/docs-cherrypick' label needs to be applied. +name: Website Checker + on: pull_request_target: types: [opened] diff --git a/.golangci.yml b/.golangci.yml index 40936a6898..5dd9235837 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -26,6 +26,15 @@ issues: - linters: [staticcheck] text: 'SA1019: Package github.com/golang/protobuf/proto is deprecated' + - linters: [staticcheck] + text: 'SA1019: ptypes.MarshalAny is deprecated' + + - linters: [staticcheck] + text: 'SA1019: ptypes.UnmarshalAny is deprecated' + + - linters: [staticcheck] + text: 'SA1019: package github.com/golang/protobuf/ptypes is deprecated' + # An argument that always receives the same value is often not a problem. - linters: [unparam] text: 'always receives' diff --git a/.release/ci.hcl b/.release/ci.hcl index d762aa3e21..e422a9ce29 100644 --- a/.release/ci.hcl +++ b/.release/ci.hcl @@ -164,6 +164,20 @@ event "verify" { } } +event "promote-dev-docker" { + depends = ["verify"] + action "promote-dev-docker" { + organization = "hashicorp" + repository = "crt-workflows-common" + workflow = "promote-dev-docker" + depends = ["verify"] + } + + notification { + on = "fail" + } +} + ## These are promotion and post-publish events ## they should be added to the end of the file after the verify event stanza. diff --git a/.release/docker/docker-entrypoint-ubi.sh b/.release/docker/docker-entrypoint-ubi.sh new file mode 100755 index 0000000000..6ce389b274 --- /dev/null +++ b/.release/docker/docker-entrypoint-ubi.sh @@ -0,0 +1,82 @@ +#!/usr/bin/dumb-init /bin/sh +set -e + +# Note above that we run dumb-init as PID 1 in order to reap zombie processes +# as well as forward signals to all processes in its session. Normally, sh +# wouldn't do either of these functions so we'd leak zombies as well as do +# unclean termination of all our sub-processes. +# As of docker 1.13, using docker run --init achieves the same outcome. + +# You can set CONSUL_BIND_INTERFACE to the name of the interface you'd like to +# bind to and this will look up the IP and pass the proper -bind= option along +# to Consul. +CONSUL_BIND= +if [ -n "$CONSUL_BIND_INTERFACE" ]; then + CONSUL_BIND_ADDRESS=$(ip -o -4 addr list $CONSUL_BIND_INTERFACE | head -n1 | awk '{print $4}' | cut -d/ -f1) + if [ -z "$CONSUL_BIND_ADDRESS" ]; then + echo "Could not find IP for interface '$CONSUL_BIND_INTERFACE', exiting" + exit 1 + fi + + CONSUL_BIND="-bind=$CONSUL_BIND_ADDRESS" + echo "==> Found address '$CONSUL_BIND_ADDRESS' for interface '$CONSUL_BIND_INTERFACE', setting bind option..." +fi + +# You can set CONSUL_CLIENT_INTERFACE to the name of the interface you'd like to +# bind client intefaces (HTTP, DNS, and RPC) to and this will look up the IP and +# pass the proper -client= option along to Consul. +CONSUL_CLIENT= +if [ -n "$CONSUL_CLIENT_INTERFACE" ]; then + CONSUL_CLIENT_ADDRESS=$(ip -o -4 addr list $CONSUL_CLIENT_INTERFACE | head -n1 | awk '{print $4}' | cut -d/ -f1) + if [ -z "$CONSUL_CLIENT_ADDRESS" ]; then + echo "Could not find IP for interface '$CONSUL_CLIENT_INTERFACE', exiting" + exit 1 + fi + + CONSUL_CLIENT="-client=$CONSUL_CLIENT_ADDRESS" + echo "==> Found address '$CONSUL_CLIENT_ADDRESS' for interface '$CONSUL_CLIENT_INTERFACE', setting client option..." +fi + +# CONSUL_DATA_DIR is exposed as a volume for possible persistent storage. The +# CONSUL_CONFIG_DIR isn't exposed as a volume but you can compose additional +# config files in there if you use this image as a base, or use CONSUL_LOCAL_CONFIG +# below. +CONSUL_DATA_DIR=/consul/data +CONSUL_CONFIG_DIR=/consul/config + +# You can also set the CONSUL_LOCAL_CONFIG environemnt variable to pass some +# Consul configuration JSON without having to bind any volumes. +if [ -n "$CONSUL_LOCAL_CONFIG" ]; then + echo "$CONSUL_LOCAL_CONFIG" > "$CONSUL_CONFIG_DIR/local.json" +fi + +# If the user is trying to run Consul directly with some arguments, then +# pass them to Consul. +if [ "${1:0:1}" = '-' ]; then + set -- consul "$@" +fi + +# Look for Consul subcommands. +if [ "$1" = 'agent' ]; then + shift + set -- consul agent \ + -data-dir="$CONSUL_DATA_DIR" \ + -config-dir="$CONSUL_CONFIG_DIR" \ + $CONSUL_BIND \ + $CONSUL_CLIENT \ + "$@" +elif [ "$1" = 'version' ]; then + # This needs a special case because there's no help output. + set -- consul "$@" +elif consul --help "$1" 2>&1 | grep -q "consul $1"; then + # We can't use the return code to check for the existence of a subcommand, so + # we have to use grep to look for a pattern in the help output. + set -- consul "$@" +fi + +# NOTE: Unlike in the regular Consul Docker image, we don't have code here +# for changing data-dir directory ownership or using su-exec because OpenShift +# won't run this container as root and so we can't change data dir ownership, +# and there's no need to use su-exec. + +exec "$@" \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index cf503d1091..04ac1f240b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,45 @@ +## 1.12.2 (June 3, 2022) + +BUG FIXES: + +* kvs: Fixed a bug where query options were not being applied to KVS.Get RPC operations. [[GH-13344](https://github.com/hashicorp/consul/issues/13344)] + +## 1.12.1 (May 25, 2022) + +FEATURES: + +* xds: Add the ability to invoke AWS Lambdas through sidecar proxies. [[GH-12956](https://github.com/hashicorp/consul/issues/12956)] + +IMPROVEMENTS: + +* config: introduce `telemetry.retry_failed_connection` in agent configuration to +retry on failed connection to any telemetry backend. This prevents the agent from +exiting if the given DogStatsD DNS name is unresolvable, for example. [[GH-13091](https://github.com/hashicorp/consul/issues/13091)] +* sentinel: **(Enterprise Only)** Sentinel now uses SHA256 to generate policy ids +* xds: Envoy now inserts x-forwarded-client-cert for incoming proxy connections [[GH-12878](https://github.com/hashicorp/consul/issues/12878)] + +BUG FIXES: + +* Fix a bug when configuring an `add_headers` directive named `Host` the header is not set for `v1/internal/ui/metrics-proxy/` endpoint. [[GH-13071](https://github.com/hashicorp/consul/issues/13071)] +* api: Fix a bug that causes partition to be ignored when creating a namespace [[GH-12845](https://github.com/hashicorp/consul/issues/12845)] +* api: agent/self now returns version with +ent suffix for Enterprise Consul [[GH-12961](https://github.com/hashicorp/consul/issues/12961)] +* areas: **(Enterprise Only)** Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. [[GH-1368](https://github.com/hashicorp/consul/issues/1368)] +* ca: fix a bug that caused a non blocking leaf cert query after a blocking leaf cert query to block [[GH-12820](https://github.com/hashicorp/consul/issues/12820)] +* config: fix backwards compatibility bug where setting the (deprecated) top-level `verify_incoming` option would enable TLS client authentication on the gRPC port [[GH-13118](https://github.com/hashicorp/consul/issues/13118)] +* health: ensure /v1/health/service/:service endpoint returns the most recent results when a filter is used with streaming #12640 [[GH-12640](https://github.com/hashicorp/consul/issues/12640)] +* snapshot-agent: **(Enterprise only)** Fix a bug where providing the ACL token to the snapshot agent via a CLI or ENV variable without a license configured results in an error during license auto-retrieval. +* ui: Re-instate '...' icon for row actions [[GH-13183](https://github.com/hashicorp/consul/issues/13183)] + +NOTES: + +* ci: change action to pull v1 instead of main [[GH-12846](https://github.com/hashicorp/consul/issues/12846)] + ## 1.12.0 (April 20, 2022) BREAKING CHANGES: +* connect: Removes support for Envoy 1.17.4 [[GH-12777](https://github.com/hashicorp/consul/issues/12777)] +* connect: Removes support for Envoy 1.18.6 [[GH-12805](https://github.com/hashicorp/consul/issues/12805)] * sdk: several changes to the testutil configuration structs (removed `ACLMasterToken`, renamed `Master` to `InitialManagement`, and `AgentMaster` to `AgentRecovery`) [[GH-11827](https://github.com/hashicorp/consul/issues/11827)] * telemetry: the disable_compat_1.9 option now defaults to true. 1.9 style `consul.http...` metrics can still be enabled by setting `disable_compat_1.9 = false`. However, we will remove these metrics in 1.13. [[GH-12675](https://github.com/hashicorp/consul/issues/12675)] @@ -78,6 +116,24 @@ NOTES: * Forked net/rpc to add middleware support: https://github.com/hashicorp/consul-net-rpc/ . [[GH-12311](https://github.com/hashicorp/consul/issues/12311)] * dependency: Upgrade to use Go 1.18.1 [[GH-12808](https://github.com/hashicorp/consul/issues/12808)] +## 1.11.6 (May 25, 2022) + +IMPROVEMENTS: + +* sentinel: **(Enterprise Only)** Sentinel now uses SHA256 to generate policy ids + +BUG FIXES: + +* Fix a bug when configuring an `add_headers` directive named `Host` the header is not set for `v1/internal/ui/metrics-proxy/` endpoint. [[GH-13071](https://github.com/hashicorp/consul/issues/13071)] +* areas: **(Enterprise Only)** Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. [[GH-1368](https://github.com/hashicorp/consul/issues/1368)] +* ca: fix a bug that caused a non blocking leaf cert query after a blocking leaf cert query to block [[GH-12820](https://github.com/hashicorp/consul/issues/12820)] +* health: ensure /v1/health/service/:service endpoint returns the most recent results when a filter is used with streaming #12640 [[GH-12640](https://github.com/hashicorp/consul/issues/12640)] +* snapshot-agent: **(Enterprise only)** Fix a bug where providing the ACL token to the snapshot agent via a CLI or ENV variable without a license configured results in an error during license auto-retrieval. + +NOTES: + +* ci: change action to pull v1 instead of main [[GH-12846](https://github.com/hashicorp/consul/issues/12846)] + ## 1.11.5 (April 13, 2022) SECURITY: @@ -342,6 +398,50 @@ NOTES: * Renamed the `agent_master` field to `agent_recovery` in the `acl-tokens.json` file in which tokens are persisted on-disk (when `acl.enable_token_persistence` is enabled) [[GH-11744](https://github.com/hashicorp/consul/issues/11744)] +## 1.10.11 (May 25, 2022) + +SECURITY: + +* agent: Use SHA256 instead of MD5 to generate persistence file names. + +IMPROVEMENTS: + +* sentinel: **(Enterprise Only)** Sentinel now uses SHA256 to generate policy ids + +BUG FIXES: + +* Fix a bug when configuring an `add_headers` directive named `Host` the header is not set for `v1/internal/ui/metrics-proxy/` endpoint. [[GH-13071](https://github.com/hashicorp/consul/issues/13071)] +* areas: **(Enterprise Only)** Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. [[GH-1368](https://github.com/hashicorp/consul/issues/1368)] +* ca: fix a bug that caused a non blocking leaf cert query after a locking leaf cert query to block [[GH-12820](https://github.com/hashicorp/consul/issues/12820)] +* health: ensure /v1/health/service/:service endpoint returns the most recent results when a filter is used with streaming #12640 [[GH-12640](https://github.com/hashicorp/consul/issues/12640)] +* snapshot-agent: **(Enterprise only)** Fix a bug where providing the ACL token to the snapshot agent via a CLI or ENV variable without a license configured results in an error during license auto-retrieval. + +NOTES: + +* ci: change action to pull v1 instead of main [[GH-12846](https://github.com/hashicorp/consul/issues/12846)] + +## 1.10.10 (April 13, 2022) + +SECURITY: + +* agent: Added a new check field, `disable_redirects`, that allows for disabling the following of redirects for HTTP checks. The intention is to default this to true in a future release so that redirects must explicitly be enabled. [[GH-12685](https://github.com/hashicorp/consul/issues/12685)] +* connect: Properly set SNI when configured for services behind a terminating gateway. [[GH-12672](https://github.com/hashicorp/consul/issues/12672)] + +IMPROVEMENTS: + +* xds: ensure that all connect timeout configs can apply equally to tproxy direct dial connections [[GH-12711](https://github.com/hashicorp/consul/issues/12711)] + +DEPRECATIONS: + +* tls: With the upgrade to Go 1.17, the ordering of `tls_cipher_suites` will no longer be honored, and `tls_prefer_server_cipher_suites` is now ignored. [[GH-12766](https://github.com/hashicorp/consul/issues/12766)] + +BUG FIXES: + +* connect/ca: cancel old Vault renewal on CA configuration. Provide a 1 - 6 second backoff on repeated token renewal requests to prevent overwhelming Vault. [[GH-12607](https://github.com/hashicorp/consul/issues/12607)] +* raft: upgrade to v1.3.6 which fixes a bug where a read replica node could attempt bootstrapping raft and prevent other nodes from bootstrapping at all [[GH-12496](https://github.com/hashicorp/consul/issues/12496)] +* replication: Fixed a bug which could prevent ACL replication from continuing successfully after a leader election. [[GH-12565](https://github.com/hashicorp/consul/issues/12565)] +* server: fix spurious blocking query suppression for discovery chains [[GH-12512](https://github.com/hashicorp/consul/issues/12512)] + ## 1.10.9 (February 28, 2022) SECURITY: diff --git a/Dockerfile b/Dockerfile index 5f80272c9c..762471eb5a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -188,6 +188,99 @@ COPY .release/docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh ENTRYPOINT ["docker-entrypoint.sh"] +# By default you'll get an insecure single-node development server that stores +# everything in RAM, exposes a web UI and HTTP endpoints, and bootstraps itself. +# Don't use this configuration for production. +CMD ["agent", "-dev", "-client", "0.0.0.0"] + + +# Red Hat UBI-based image +# This target is used to build a Consul image for use on OpenShift. +FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6 as ubi + +ARG PRODUCT_NAME +ARG PRODUCT_VERSION +ARG PRODUCT_REVISION +ARG BIN_NAME + +# PRODUCT_NAME and PRODUCT_VERSION are the name of the software on releases.hashicorp.com +# and the version to download. Example: PRODUCT_NAME=consul PRODUCT_VERSION=1.2.3. +ENV BIN_NAME=$BIN_NAME +ENV PRODUCT_VERSION=$PRODUCT_VERSION + +ARG PRODUCT_NAME=$BIN_NAME + +# TARGETOS and TARGETARCH are set automatically when --platform is provided. +ARG TARGETOS TARGETARCH + +LABEL org.opencontainers.image.authors="Consul Team " \ + org.opencontainers.image.url="https://www.consul.io/" \ + org.opencontainers.image.documentation="https://www.consul.io/docs" \ + org.opencontainers.image.source="https://github.com/hashicorp/consul" \ + org.opencontainers.image.version=$VERSION \ + org.opencontainers.image.vendor="HashiCorp" \ + org.opencontainers.image.title="consul" \ + org.opencontainers.image.description="Consul is a datacenter runtime that provides service discovery, configuration, and orchestration." + +# Copy license for Red Hat certification. +COPY LICENSE /licenses/mozilla.txt + +# Set up certificates and base tools. +# dumb-init is downloaded directly from GitHub because there's no RPM package. +# Its shasum is hardcoded. If you upgrade the dumb-init verion you'll need to +# also update the shasum. +RUN set -eux && \ + microdnf install -y ca-certificates curl gnupg libcap openssl iputils jq iptables wget unzip tar && \ + wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64 && \ + echo 'e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df /usr/bin/dumb-init' > dumb-init-shasum && \ + sha256sum --check dumb-init-shasum && \ + chmod +x /usr/bin/dumb-init + +# Create a non-root user to run the software. On OpenShift, this +# will not matter since the container is run as a random user and group +# but this is kept for consistency with our other images. +RUN groupadd $BIN_NAME && \ + adduser --uid 100 --system -g $BIN_NAME $BIN_NAME +COPY dist/$TARGETOS/$TARGETARCH/$BIN_NAME /bin/ + +# The /consul/data dir is used by Consul to store state. The agent will be started +# with /consul/config as the configuration directory so you can add additional +# config files in that location. +# In addition, change the group of the /consul directory to 0 since OpenShift +# will always execute the container with group 0. +RUN mkdir -p /consul/data && \ + mkdir -p /consul/config && \ + chown -R consul /consul && \ + chgrp -R 0 /consul && chmod -R g+rwX /consul + +# set up nsswitch.conf for Go's "netgo" implementation which is used by Consul, +# otherwise DNS supercedes the container's hosts file, which we don't want. +RUN test -e /etc/nsswitch.conf || echo 'hosts: files dns' > /etc/nsswitch.conf + +# Expose the consul data directory as a volume since there's mutable state in there. +VOLUME /consul/data + +# Server RPC is used for communication between Consul clients and servers for internal +# request forwarding. +EXPOSE 8300 + +# Serf LAN and WAN (WAN is used only by Consul servers) are used for gossip between +# Consul agents. LAN is within the datacenter and WAN is between just the Consul +# servers in all datacenters. +EXPOSE 8301 8301/udp 8302 8302/udp + +# HTTP and DNS (both TCP and UDP) are the primary interfaces that applications +# use to interact with Consul. +EXPOSE 8500 8600 8600/udp + +COPY .release/docker/docker-entrypoint-ubi.sh /usr/local/bin/docker-entrypoint.sh +RUN chmod +x /usr/local/bin/docker-entrypoint.sh +ENTRYPOINT ["docker-entrypoint.sh"] + +# OpenShift by default will run containers with a random user, however their +# scanner requires that containers set a non-root user. +USER 100 + # By default you'll get an insecure single-node development server that stores # everything in RAM, exposes a web UI and HTTP endpoints, and bootstraps itself. # Don't use this configuration for production. diff --git a/GNUmakefile b/GNUmakefile index a0a640ab26..197a3186d8 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -2,24 +2,16 @@ # https://www.consul.io/docs/install#compiling-from-source SHELL = bash -GOTOOLS = \ - github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs@master \ - github.com/hashicorp/go-bindata/go-bindata@master \ - github.com/vektra/mockery/v2@latest \ - github.com/golangci/golangci-lint/cmd/golangci-lint@v1.45.2 \ - github.com/hashicorp/lint-consul-retry@master - -PROTOC_VERSION=3.15.8 ### -# MOG_VERSION can be either a valid string for "go install @" -# or the string @DEV to imply use whatever is currently installed locally. +# These version variables can either be a valid string for "go install @" +# or the string @DEV to imply use what is currently installed locally. ### +GOLANGCI_LINT_VERSION='v1.46.2' +MOCKERY_VERSION='v2.12.2' +BUF_VERSION='v1.4.0' +PROTOC_GEN_GO_GRPC_VERSION="v1.2.0" MOG_VERSION='v0.3.0' -### -# PROTOC_GO_INJECT_TAG_VERSION can be either a valid string for "go install @" -# or the string @DEV to imply use whatever is currently installed locally. -### PROTOC_GO_INJECT_TAG_VERSION='v1.3.0' GOTAGS ?= @@ -28,13 +20,14 @@ MAIN_GOPATH=$(shell go env GOPATH | cut -d: -f1) export PATH := $(PWD)/bin:$(GOPATH)/bin:$(PATH) -ASSETFS_PATH?=agent/uiserver/bindata_assetfs.go # Get the git commit GIT_COMMIT?=$(shell git rev-parse --short HEAD) GIT_COMMIT_YEAR?=$(shell git show -s --format=%cd --date=format:%Y HEAD) GIT_DIRTY?=$(shell test -n "`git status --porcelain`" && echo "+CHANGES" || true) GIT_IMPORT=github.com/hashicorp/consul/version -GOLDFLAGS=-X $(GIT_IMPORT).GitCommit=$(GIT_COMMIT)$(GIT_DIRTY) +DATE_FORMAT="%Y-%m-%dT%H:%M:%SZ" # it's tricky to do an RFC3339 format in a cross platform way, so we hardcode UTC +GIT_DATE=$(shell $(CURDIR)/build-support/scripts/build-date.sh) # we're using this for build date because it's stable across platform builds +GOLDFLAGS=-X $(GIT_IMPORT).GitCommit=$(GIT_COMMIT)$(GIT_DIRTY) -X $(GIT_IMPORT).BuildDate=$(GIT_DATE) ifeq ($(FORCE_REBUILD),1) NOCACHE=--no-cache @@ -273,34 +266,36 @@ other-consul: exit 1 ; \ fi -lint: - @echo "--> Running go golangci-lint" +lint: lint-tools + @echo "--> Running golangci-lint" @golangci-lint run --build-tags '$(GOTAGS)' && \ (cd api && golangci-lint run --build-tags '$(GOTAGS)') && \ (cd sdk && golangci-lint run --build-tags '$(GOTAGS)') + @echo "--> Running lint-consul-retry" + @lint-consul-retry + @echo "--> Running enumcover" + @enumcover ./... -# If you've run "make ui" manually then this will get called for you. This is -# also run as part of the release build script when it verifies that there are no -# changes to the UI assets that aren't checked in. -static-assets: - @go-bindata-assetfs -pkg uiserver -prefix pkg -o $(ASSETFS_PATH) ./pkg/web_ui/... - @go fmt $(ASSETFS_PATH) +# Build the static web ui inside a Docker container. For local testing only; do not commit these assets. +ui: ui-docker +# Build the static web ui with yarn. This is the version to commit. +.PHONY: ui-regen +ui-regen: + cd $(CURDIR)/ui && make && cd .. + rm -rf $(CURDIR)/agent/uiserver/dist + mv $(CURDIR)/ui/packages/consul-ui/dist $(CURDIR)/agent/uiserver/ -# Build the static web ui and build static assets inside a Docker container -ui: ui-docker static-assets-docker +tools: + @$(SHELL) $(CURDIR)/build-support/scripts/devtools.sh -tools: proto-tools - @if [[ -d .gotools ]]; then rm -rf .gotools ; fi - @for TOOL in $(GOTOOLS); do \ - echo "=== TOOL: $$TOOL" ; \ - go install -v $$TOOL ; \ - done +.PHONY: lint-tools +lint-tools: + @$(SHELL) $(CURDIR)/build-support/scripts/devtools.sh -lint +.PHONY: proto-tools proto-tools: - @$(SHELL) $(CURDIR)/build-support/scripts/protobuf.sh \ - --protoc-version "$(PROTOC_VERSION)" \ - --tools-only + @$(SHELL) $(CURDIR)/build-support/scripts/devtools.sh -protobuf version: @echo -n "Version: " @@ -317,15 +312,12 @@ docker-images: go-build-image ui-build-image go-build-image: @echo "Building Golang build container" - @docker build $(NOCACHE) $(QUIET) --build-arg 'GOTOOLS=$(GOTOOLS)' -t $(GO_BUILD_TAG) - < build-support/docker/Build-Go.dockerfile + @docker build $(NOCACHE) $(QUIET) -t $(GO_BUILD_TAG) - < build-support/docker/Build-Go.dockerfile ui-build-image: @echo "Building UI build container" @docker build $(NOCACHE) $(QUIET) -t $(UI_BUILD_TAG) - < build-support/docker/Build-UI.dockerfile -static-assets-docker: go-build-image - @$(SHELL) $(CURDIR)/build-support/scripts/build-docker.sh static-assets - consul-docker: go-build-image @$(SHELL) $(CURDIR)/build-support/scripts/build-docker.sh consul @@ -335,6 +327,27 @@ ui-docker: ui-build-image test-envoy-integ: $(ENVOY_INTEG_DEPS) @go test -v -timeout=30m -tags integration ./test/integration/connect/envoy +.PHONY: test-compat-integ +test-compat-integ: dev-docker +ifeq ("$(GOTAGS)","") + @docker tag consul-dev:latest consul:local + @docker run --rm -t consul:local consul version + @cd ./test/integration/consul-container && \ + go test -v -timeout=30m ./upgrade --target-version local --latest-version latest +else + @docker tag consul-dev:latest hashicorp/consul-enterprise:local + @docker run --rm -t hashicorp/consul-enterprise:local consul version + @cd ./test/integration/consul-container && \ + go test -v -timeout=30m ./upgrade --tags $(GOTAGS) --target-version local --latest-version latest +endif + +.PHONY: test-metrics-integ +test-metrics-integ: dev-docker + @docker tag consul-dev:latest consul:local + @docker run --rm -t consul:local consul version + @cd ./test/integration/consul-container && \ + go test -v -timeout=7m ./metrics --target-version local + test-connect-ca-providers: ifeq ("$(CIRCLECI)","true") # Run in CI @@ -352,9 +365,17 @@ else endif .PHONY: proto -proto: - @$(SHELL) $(CURDIR)/build-support/scripts/protobuf.sh \ - --protoc-version "$(PROTOC_VERSION)" +proto: proto-tools + @$(SHELL) $(CURDIR)/build-support/scripts/protobuf.sh + +.PHONY: proto-format +proto-format: proto-tools + @buf format -w + +.PHONY: proto-lint +proto-lint: proto-tools + @buf lint --config proto/buf.yaml --path proto + @buf lint --config proto-public/buf.yaml --path proto-public # utility to echo a makefile variable (i.e. 'make print-PROTOC_VERSION') print-% : ; @echo $($*) @@ -381,6 +402,12 @@ envoy-regen: @find "command/connect/envoy/testdata" -name '*.golden' -delete @go test -tags '$(GOTAGS)' ./command/connect/envoy -update -.PHONY: all bin dev dist cov test test-internal cover lint ui static-assets tools proto-tools -.PHONY: docker-images go-build-image ui-build-image static-assets-docker consul-docker ui-docker +.PHONY: help +help: + $(info available make targets) + $(info ----------------------) + @grep "^[a-z0-9-][a-z0-9.-]*:" GNUmakefile | cut -d':' -f1 | sort + +.PHONY: all bin dev dist cov test test-internal cover lint ui tools +.PHONY: docker-images go-build-image ui-build-image consul-docker ui-docker .PHONY: version test-envoy-integ diff --git a/acl/enterprisemeta_oss.go b/acl/enterprisemeta_oss.go index f0f15bc05f..97d01c10a6 100644 --- a/acl/enterprisemeta_oss.go +++ b/acl/enterprisemeta_oss.go @@ -58,6 +58,10 @@ func (m *EnterpriseMeta) NamespaceOrDefault() string { return DefaultNamespaceName } +func EqualNamespaces(_, _ string) bool { + return true +} + func NamespaceOrDefault(_ string) string { return DefaultNamespaceName } @@ -78,7 +82,9 @@ func (m *EnterpriseMeta) MergeNoWildcard(_ *EnterpriseMeta) { // do nothing } -func (_ *EnterpriseMeta) Normalize() {} +func (_ *EnterpriseMeta) Normalize() {} +func (_ *EnterpriseMeta) NormalizePartition() {} +func (_ *EnterpriseMeta) NormalizeNamespace() {} func (m *EnterpriseMeta) Matches(_ *EnterpriseMeta) bool { return true @@ -100,6 +106,10 @@ func (m *EnterpriseMeta) UnsetPartition() { // do nothing } +func (m *EnterpriseMeta) OverridePartition(_ string) { + // do nothing +} + func NewEnterpriseMetaWithPartition(_, _ string) EnterpriseMeta { return emptyEnterpriseMeta } diff --git a/acl/resolver/result.go b/acl/resolver/result.go new file mode 100644 index 0000000000..abf8505688 --- /dev/null +++ b/acl/resolver/result.go @@ -0,0 +1,27 @@ +package resolver + +import ( + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/agent/structs" +) + +type Result struct { + acl.Authorizer + // TODO: likely we can reduce this interface + ACLIdentity structs.ACLIdentity +} + +func (a Result) AccessorID() string { + if a.ACLIdentity == nil { + return "" + } + return a.ACLIdentity.ID() +} + +func (a Result) Identity() structs.ACLIdentity { + return a.ACLIdentity +} + +func (a Result) ToAllowAuthorizer() acl.AllowAuthorizer { + return acl.AllowAuthorizer{Authorizer: a, AccessorID: a.AccessorID()} +} diff --git a/agent/acl_endpoint.go b/agent/acl_endpoint.go index ef859f84e9..23e43ba5c4 100644 --- a/agent/acl_endpoint.go +++ b/agent/acl_endpoint.go @@ -122,10 +122,7 @@ func (s *HTTPHandlers) ACLPolicyCRUD(resp http.ResponseWriter, req *http.Request return nil, MethodNotAllowedError{req.Method, []string{"GET", "PUT", "DELETE"}} } - policyID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/acl/policy/") - if err != nil { - return nil, err - } + policyID := strings.TrimPrefix(req.URL.Path, "/v1/acl/policy/") if policyID == "" && req.Method != "PUT" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing policy ID"} } @@ -170,10 +167,7 @@ func (s *HTTPHandlers) ACLPolicyReadByName(resp http.ResponseWriter, req *http.R return nil, aclDisabled } - policyName, err := getPathSuffixUnescaped(req.URL.Path, "/v1/acl/policy/name/") - if err != nil { - return nil, err - } + policyName := strings.TrimPrefix(req.URL.Path, "/v1/acl/policy/name/") if policyName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing policy Name"} } @@ -308,10 +302,7 @@ func (s *HTTPHandlers) ACLTokenCRUD(resp http.ResponseWriter, req *http.Request) return nil, MethodNotAllowedError{req.Method, []string{"GET", "PUT", "DELETE"}} } - tokenID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/acl/token/") - if err != nil { - return nil, err - } + tokenID := strings.TrimPrefix(req.URL.Path, "/v1/acl/token/") if strings.HasSuffix(tokenID, "/clone") && req.Method == "PUT" { tokenID = tokenID[:len(tokenID)-6] fn = s.ACLTokenClone @@ -541,10 +532,7 @@ func (s *HTTPHandlers) ACLRoleCRUD(resp http.ResponseWriter, req *http.Request) return nil, MethodNotAllowedError{req.Method, []string{"GET", "PUT", "DELETE"}} } - roleID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/acl/role/") - if err != nil { - return nil, err - } + roleID := strings.TrimPrefix(req.URL.Path, "/v1/acl/role/") if roleID == "" && req.Method != "PUT" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing role ID"} } @@ -557,10 +545,7 @@ func (s *HTTPHandlers) ACLRoleReadByName(resp http.ResponseWriter, req *http.Req return nil, aclDisabled } - roleName, err := getPathSuffixUnescaped(req.URL.Path, "/v1/acl/role/name/") - if err != nil { - return nil, err - } + roleName := strings.TrimPrefix(req.URL.Path, "/v1/acl/role/name/") if roleName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing role Name"} } @@ -711,10 +696,7 @@ func (s *HTTPHandlers) ACLBindingRuleCRUD(resp http.ResponseWriter, req *http.Re return nil, MethodNotAllowedError{req.Method, []string{"GET", "PUT", "DELETE"}} } - bindingRuleID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/acl/binding-rule/") - if err != nil { - return nil, err - } + bindingRuleID := strings.TrimPrefix(req.URL.Path, "/v1/acl/binding-rule/") if bindingRuleID == "" && req.Method != "PUT" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing binding rule ID"} } @@ -857,10 +839,7 @@ func (s *HTTPHandlers) ACLAuthMethodCRUD(resp http.ResponseWriter, req *http.Req return nil, MethodNotAllowedError{req.Method, []string{"GET", "PUT", "DELETE"}} } - methodName, err := getPathSuffixUnescaped(req.URL.Path, "/v1/acl/auth-method/") - if err != nil { - return nil, err - } + methodName := strings.TrimPrefix(req.URL.Path, "/v1/acl/auth-method/") if methodName == "" && req.Method != "PUT" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing auth method name"} } diff --git a/agent/acl_test.go b/agent/acl_test.go index 995a3b6e6e..2e8664c9f2 100644 --- a/agent/acl_test.go +++ b/agent/acl_test.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/serf/serf" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/config" "github.com/hashicorp/consul/agent/consul" "github.com/hashicorp/consul/agent/local" @@ -71,7 +72,9 @@ func NewTestACLAgent(t *testing.T, name string, hcl string, resolveAuthz authzRe Output: logBuffer, TimeFormat: "04:05.000", }) - bd.MetricsHandler = metrics.NewInmemSink(1*time.Second, time.Minute) + bd.MetricsConfig = &lib.MetricsConfig{ + Handler: metrics.NewInmemSink(1*time.Second, time.Minute), + } agent, err := New(bd) require.NoError(t, err) @@ -92,15 +95,15 @@ func (a *TestACLAgent) ResolveToken(secretID string) (acl.Authorizer, error) { return authz, err } -func (a *TestACLAgent) ResolveTokenAndDefaultMeta(secretID string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (consul.ACLResolveResult, error) { +func (a *TestACLAgent) ResolveTokenAndDefaultMeta(secretID string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (resolver.Result, error) { authz, err := a.ResolveToken(secretID) if err != nil { - return consul.ACLResolveResult{}, err + return resolver.Result{}, err } identity, err := a.resolveIdentFn(secretID) if err != nil { - return consul.ACLResolveResult{}, err + return resolver.Result{}, err } // Default the EnterpriseMeta based on the Tokens meta or actual defaults @@ -114,7 +117,7 @@ func (a *TestACLAgent) ResolveTokenAndDefaultMeta(secretID string, entMeta *acl. // Use the meta to fill in the ACL authorization context entMeta.FillAuthzContext(authzContext) - return consul.ACLResolveResult{Authorizer: authz, ACLIdentity: identity}, err + return resolver.Result{Authorizer: authz, ACLIdentity: identity}, err } // All of these are stubs to satisfy the interface diff --git a/agent/agent.go b/agent/agent.go index 7b81821efb..d337f75f01 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -20,7 +20,6 @@ import ( "github.com/armon/go-metrics" "github.com/armon/go-metrics/prometheus" - "github.com/hashicorp/consul/proto/pbpeering" "github.com/hashicorp/go-connlimit" "github.com/hashicorp/go-hclog" "github.com/hashicorp/go-memdb" @@ -31,6 +30,7 @@ import ( "google.golang.org/grpc" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/ae" "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" @@ -41,6 +41,9 @@ import ( publicgrpc "github.com/hashicorp/consul/agent/grpc/public" "github.com/hashicorp/consul/agent/local" "github.com/hashicorp/consul/agent/proxycfg" + proxycfgglue "github.com/hashicorp/consul/agent/proxycfg-glue" + catalogproxycfg "github.com/hashicorp/consul/agent/proxycfg-sources/catalog" + localproxycfg "github.com/hashicorp/consul/agent/proxycfg-sources/local" "github.com/hashicorp/consul/agent/rpcclient/health" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/systemd" @@ -54,6 +57,7 @@ import ( "github.com/hashicorp/consul/lib/mutex" "github.com/hashicorp/consul/lib/routine" "github.com/hashicorp/consul/logging" + "github.com/hashicorp/consul/proto/pbpeering" "github.com/hashicorp/consul/tlsutil" "github.com/hashicorp/consul/types" ) @@ -174,7 +178,7 @@ type delegate interface { // actions based on the permissions granted to the token. // If either entMeta or authzContext are non-nil they will be populated with the // default partition and namespace from the token. - ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (consul.ACLResolveResult, error) + ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (resolver.Result, error) RPC(method string, args interface{}, reply interface{}) error SnapshotRPC(args *structs.SnapshotRequest, in io.Reader, out io.Writer, replyFn structs.SnapshotReplyFn) error @@ -245,6 +249,9 @@ type Agent struct { // checkTCPs maps the check ID to an associated TCP check checkTCPs map[structs.CheckID]*checks.CheckTCP + // checkUDPs maps the check ID to an associated UDP check + checkUDPs map[structs.CheckID]*checks.CheckUDP + // checkGRPCs maps the check ID to an associated GRPC check checkGRPCs map[structs.CheckID]*checks.CheckGRPC @@ -398,6 +405,7 @@ func New(bd BaseDeps) (*Agent, error) { checkHTTPs: make(map[structs.CheckID]*checks.CheckHTTP), checkH2PINGs: make(map[structs.CheckID]*checks.CheckH2PING), checkTCPs: make(map[structs.CheckID]*checks.CheckTCP), + checkUDPs: make(map[structs.CheckID]*checks.CheckUDP), checkGRPCs: make(map[structs.CheckID]*checks.CheckGRPC), checkDockers: make(map[structs.CheckID]*checks.CheckDocker), checkAliases: make(map[structs.CheckID]*checks.CheckAlias), @@ -625,12 +633,31 @@ func (a *Agent) Start(ctx context.Context) error { go a.baseDeps.ViewStore.Run(&lib.StopChannelContext{StopCh: a.shutdownCh}) // Start the proxy config manager. + proxyDataSources := proxycfg.DataSources{ + CARoots: proxycfgglue.CacheCARoots(a.cache), + CompiledDiscoveryChain: proxycfgglue.CacheCompiledDiscoveryChain(a.cache), + ConfigEntry: proxycfgglue.CacheConfigEntry(a.cache), + ConfigEntryList: proxycfgglue.CacheConfigEntryList(a.cache), + Datacenters: proxycfgglue.CacheDatacenters(a.cache), + FederationStateListMeshGateways: proxycfgglue.CacheFederationStateListMeshGateways(a.cache), + GatewayServices: proxycfgglue.CacheGatewayServices(a.cache), + Health: proxycfgglue.Health(a.rpcClientHealth), + HTTPChecks: proxycfgglue.CacheHTTPChecks(a.cache), + Intentions: proxycfgglue.CacheIntentions(a.cache), + IntentionUpstreams: proxycfgglue.CacheIntentionUpstreams(a.cache), + InternalServiceDump: proxycfgglue.CacheInternalServiceDump(a.cache), + LeafCertificate: proxycfgglue.CacheLeafCertificate(a.cache), + PreparedQuery: proxycfgglue.CachePrepraredQuery(a.cache), + ResolvedServiceConfig: proxycfgglue.CacheResolvedServiceConfig(a.cache), + ServiceList: proxycfgglue.CacheServiceList(a.cache), + TrustBundle: proxycfgglue.CacheTrustBundle(a.cache), + TrustBundleList: proxycfgglue.CacheTrustBundleList(a.cache), + ExportedPeeredServices: proxycfgglue.CacheExportedPeeredServices(a.cache), + } + a.fillEnterpriseProxyDataSources(&proxyDataSources) a.proxyConfig, err = proxycfg.NewManager(proxycfg.ManagerConfig{ - Cache: a.cache, - Health: a.rpcClientHealth, - Logger: a.logger.Named(logging.ProxyConfig), - State: a.State, - Tokens: a.baseDeps.Tokens, + DataSources: proxyDataSources, + Logger: a.logger.Named(logging.ProxyConfig), Source: &structs.QuerySource{ Datacenter: a.config.Datacenter, Segment: a.config.SegmentName, @@ -646,11 +673,17 @@ func (a *Agent) Start(ctx context.Context) error { if err != nil { return err } - go func() { - if err := a.proxyConfig.Run(); err != nil { - a.logger.Error("proxy config manager exited with error", "error", err) - } - }() + + go localproxycfg.Sync( + &lib.StopChannelContext{StopCh: a.shutdownCh}, + localproxycfg.SyncConfig{ + Manager: a.proxyConfig, + State: a.State, + Logger: a.proxyConfig.Logger.Named("agent-state"), + Tokens: a.baseDeps.Tokens, + NodeName: a.config.NodeName, + }, + ) // Start watching for critical services to deregister, based on their // checks. @@ -769,15 +802,34 @@ func (a *Agent) listenAndServeGRPC() error { return nil } + // TODO(agentless): rather than asserting the concrete type of delegate, we + // should add a method to the Delegate interface to build a ConfigSource. + var cfg xds.ProxyConfigSource = localproxycfg.NewConfigSource(a.proxyConfig) + if server, ok := a.delegate.(*consul.Server); ok { + catalogCfg := catalogproxycfg.NewConfigSource(catalogproxycfg.Config{ + NodeName: a.config.NodeName, + LocalState: a.State, + LocalConfigSource: cfg, + Manager: a.proxyConfig, + GetStore: func() catalogproxycfg.Store { return server.FSM().State() }, + Logger: a.proxyConfig.Logger.Named("server-catalog"), + }) + go func() { + <-a.shutdownCh + catalogCfg.Shutdown() + }() + cfg = catalogCfg + } + a.xdsServer = xds.NewServer( + a.config.NodeName, a.logger.Named(logging.Envoy), a.config.ConnectServerlessPluginEnabled, - a.proxyConfig, + cfg, func(id string) (acl.Authorizer, error) { return a.delegate.ResolveTokenAndDefaultMeta(id, nil, nil) }, a, - a, ) a.xdsServer.Register(a.publicGRPCServer) @@ -1429,6 +1481,7 @@ func (a *Agent) ShutdownAgent() error { // this would be cancelled anyways (by the closing of the shutdown ch) but // this should help them to be stopped more quickly a.baseDeps.AutoConfig.Stop() + a.baseDeps.MetricsConfig.Cancel() a.stateLock.Lock() defer a.stateLock.Unlock() @@ -1450,6 +1503,9 @@ func (a *Agent) ShutdownAgent() error { for _, chk := range a.checkTCPs { chk.Stop() } + for _, chk := range a.checkUDPs { + chk.Stop() + } for _, chk := range a.checkGRPCs { chk.Stop() } @@ -2749,6 +2805,31 @@ func (a *Agent) addCheck(check *structs.HealthCheck, chkType *structs.CheckType, tcp.Start() a.checkTCPs[cid] = tcp + case chkType.IsUDP(): + if existing, ok := a.checkUDPs[cid]; ok { + existing.Stop() + delete(a.checkUDPs, cid) + } + if chkType.Interval < checks.MinInterval { + a.logger.Warn("check has interval below minimum", + "check", cid.String(), + "minimum_interval", checks.MinInterval, + ) + chkType.Interval = checks.MinInterval + } + + udp := &checks.CheckUDP{ + CheckID: cid, + ServiceID: sid, + UDP: chkType.UDP, + Interval: chkType.Interval, + Timeout: chkType.Timeout, + Logger: a.logger, + StatusHandler: statusHandler, + } + udp.Start() + a.checkUDPs[cid] = udp + case chkType.IsGRPC(): if existing, ok := a.checkGRPCs[cid]; ok { existing.Stop() @@ -3048,6 +3129,10 @@ func (a *Agent) cancelCheckMonitors(checkID structs.CheckID) { check.Stop() delete(a.checkTCPs, checkID) } + if check, ok := a.checkUDPs[checkID]; ok { + check.Stop() + delete(a.checkUDPs, checkID) + } if check, ok := a.checkGRPCs[checkID]; ok { check.Stop() delete(a.checkGRPCs, checkID) @@ -3773,7 +3858,7 @@ func (a *Agent) reloadConfig(autoReload bool) error { // breaking some existing behavior. newCfg.NodeID = a.config.NodeID - //if auto reload is enabled, make sure we have the right certs file watched. + // if auto reload is enabled, make sure we have the right certs file watched. if autoReload { for _, f := range []struct { oldCfg tlsutil.ProtocolConfig @@ -4045,15 +4130,21 @@ func (a *Agent) registerCache() { a.cache.RegisterType(cachetype.GatewayServicesName, &cachetype.GatewayServices{RPC: a}) - a.cache.RegisterType(cachetype.ConfigEntriesName, &cachetype.ConfigEntries{RPC: a}) + a.cache.RegisterType(cachetype.ConfigEntryListName, &cachetype.ConfigEntryList{RPC: a}) a.cache.RegisterType(cachetype.ConfigEntryName, &cachetype.ConfigEntry{RPC: a}) a.cache.RegisterType(cachetype.ServiceHTTPChecksName, &cachetype.ServiceHTTPChecks{Agent: a}) + a.cache.RegisterType(cachetype.TrustBundleReadName, &cachetype.TrustBundle{Client: a.rpcClientPeering}) + + a.cache.RegisterType(cachetype.ExportedPeeredServicesName, &cachetype.ExportedPeeredServices{RPC: a}) + a.cache.RegisterType(cachetype.FederationStateListMeshGatewaysName, &cachetype.FederationStateListMeshGateways{RPC: a}) + a.cache.RegisterType(cachetype.TrustBundleListName, &cachetype.TrustBundles{Client: a.rpcClientPeering}) + a.registerEntCache() } diff --git a/agent/agent_endpoint.go b/agent/agent_endpoint.go index 385e08bfdb..11ec5f9ca7 100644 --- a/agent/agent_endpoint.go +++ b/agent/agent_endpoint.go @@ -91,6 +91,7 @@ func (s *HTTPHandlers) AgentSelf(resp http.ResponseWriter, req *http.Request) (i Revision string Server bool Version string + BuildDate string }{ Datacenter: s.agent.config.Datacenter, PrimaryDatacenter: s.agent.config.PrimaryDatacenter, @@ -100,8 +101,10 @@ func (s *HTTPHandlers) AgentSelf(resp http.ResponseWriter, req *http.Request) (i Revision: s.agent.config.Revision, Server: s.agent.config.ServerMode, // We expect the ent version to be part of the reported version string, and that's now part of the metadata, not the actual version. - Version: s.agent.config.VersionWithMetadata(), + Version: s.agent.config.VersionWithMetadata(), + BuildDate: s.agent.config.BuildDate.Format(time.RFC3339), } + return Self{ Config: config, DebugConfig: s.agent.config.Sanitized(), @@ -173,7 +176,7 @@ func (s *HTTPHandlers) AgentMetrics(resp http.ResponseWriter, req *http.Request) handler.ServeHTTP(resp, req) return nil, nil } - return s.agent.baseDeps.MetricsHandler.DisplayMetrics(resp, req) + return s.agent.baseDeps.MetricsConfig.Handler.DisplayMetrics(resp, req) } func (s *HTTPHandlers) AgentMetricsStream(resp http.ResponseWriter, req *http.Request) (interface{}, error) { @@ -210,7 +213,7 @@ func (s *HTTPHandlers) AgentMetricsStream(resp http.ResponseWriter, req *http.Re flusher: flusher, } enc.encoder.SetIndent("", " ") - s.agent.baseDeps.MetricsHandler.Stream(req.Context(), enc) + s.agent.baseDeps.MetricsConfig.Handler.Stream(req.Context(), enc) return nil, nil } @@ -382,10 +385,7 @@ func (s *HTTPHandlers) AgentServices(resp http.ResponseWriter, req *http.Request // blocking watch using hash-based blocking. func (s *HTTPHandlers) AgentService(resp http.ResponseWriter, req *http.Request) (interface{}, error) { // Get the proxy ID. Note that this is the ID of a proxy's service instance. - id, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/service/") - if err != nil { - return nil, err - } + id := strings.TrimPrefix(req.URL.Path, "/v1/agent/service/") // Maybe block var queryOpts structs.QueryOptions @@ -404,7 +404,7 @@ func (s *HTTPHandlers) AgentService(resp http.ResponseWriter, req *http.Request) } // need to resolve to default the meta - _, err = s.agent.delegate.ResolveTokenAndDefaultMeta(token, &entMeta, nil) + _, err := s.agent.delegate.ResolveTokenAndDefaultMeta(token, &entMeta, nil) if err != nil { return nil, err } @@ -640,10 +640,7 @@ func (s *HTTPHandlers) AgentJoin(resp http.ResponseWriter, req *http.Request) (i } // Get the address - addr, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/join/") - if err != nil { - return nil, err - } + addr := strings.TrimPrefix(req.URL.Path, "/v1/agent/join/") if wan { if s.agent.config.ConnectMeshGatewayWANFederationEnabled { @@ -703,10 +700,7 @@ func (s *HTTPHandlers) AgentForceLeave(resp http.ResponseWriter, req *http.Reque // Check if the WAN is being queried _, wan := req.URL.Query()["wan"] - addr, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/force-leave/") - if err != nil { - return nil, err - } + addr := strings.TrimPrefix(req.URL.Path, "/v1/agent/force-leave/") if wan { return nil, s.agent.ForceLeaveWAN(addr, prune, entMeta) } else { @@ -792,11 +786,8 @@ func (s *HTTPHandlers) AgentRegisterCheck(resp http.ResponseWriter, req *http.Re } func (s *HTTPHandlers) AgentDeregisterCheck(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - ID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/check/deregister/") - if err != nil { - return nil, err - } - checkID := structs.NewCheckID(types.CheckID(ID), nil) + id := strings.TrimPrefix(req.URL.Path, "/v1/agent/check/deregister/") + checkID := structs.NewCheckID(types.CheckID(id), nil) // Get the provided token, if any, and vet against any ACL policies. var token string @@ -829,21 +820,15 @@ func (s *HTTPHandlers) AgentDeregisterCheck(resp http.ResponseWriter, req *http. } func (s *HTTPHandlers) AgentCheckPass(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - ID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/check/pass/") - if err != nil { - return nil, err - } - checkID := types.CheckID(ID) + id := strings.TrimPrefix(req.URL.Path, "/v1/agent/check/pass/") + checkID := types.CheckID(id) note := req.URL.Query().Get("note") return s.agentCheckUpdate(resp, req, checkID, api.HealthPassing, note) } func (s *HTTPHandlers) AgentCheckWarn(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - ID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/check/warn/") - if err != nil { - return nil, err - } - checkID := types.CheckID(ID) + id := strings.TrimPrefix(req.URL.Path, "/v1/agent/check/warn/") + checkID := types.CheckID(id) note := req.URL.Query().Get("note") return s.agentCheckUpdate(resp, req, checkID, api.HealthWarning, note) @@ -851,11 +836,8 @@ func (s *HTTPHandlers) AgentCheckWarn(resp http.ResponseWriter, req *http.Reques } func (s *HTTPHandlers) AgentCheckFail(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - ID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/check/fail/") - if err != nil { - return nil, err - } - checkID := types.CheckID(ID) + id := strings.TrimPrefix(req.URL.Path, "/v1/agent/check/fail/") + checkID := types.CheckID(id) note := req.URL.Query().Get("note") return s.agentCheckUpdate(resp, req, checkID, api.HealthCritical, note) @@ -890,12 +872,8 @@ func (s *HTTPHandlers) AgentCheckUpdate(resp http.ResponseWriter, req *http.Requ return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: fmt.Sprintf("Invalid check status: '%s'", update.Status)} } - ID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/check/update/") - if err != nil { - return nil, err - } - - checkID := types.CheckID(ID) + id := strings.TrimPrefix(req.URL.Path, "/v1/agent/check/update/") + checkID := types.CheckID(id) return s.agentCheckUpdate(resp, req, checkID, update.Status, update.Output) } @@ -977,10 +955,7 @@ func returnTextPlain(req *http.Request) bool { // AgentHealthServiceByID return the local Service Health given its ID func (s *HTTPHandlers) AgentHealthServiceByID(resp http.ResponseWriter, req *http.Request) (interface{}, error) { // Pull out the service id (service id since there may be several instance of the same service on this host) - serviceID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/health/service/id/") - if err != nil { - return nil, err - } + serviceID := strings.TrimPrefix(req.URL.Path, "/v1/agent/health/service/id/") if serviceID == "" { return nil, &HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing serviceID"} } @@ -1038,11 +1013,7 @@ func (s *HTTPHandlers) AgentHealthServiceByID(resp http.ResponseWriter, req *htt // AgentHealthServiceByName return the worse status of all the services with given name on an agent func (s *HTTPHandlers) AgentHealthServiceByName(resp http.ResponseWriter, req *http.Request) (interface{}, error) { // Pull out the service name - serviceName, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/health/service/name/") - if err != nil { - return nil, err - } - + serviceName := strings.TrimPrefix(req.URL.Path, "/v1/agent/health/service/name/") if serviceName == "" { return nil, &HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing service Name"} } @@ -1247,11 +1218,7 @@ func (s *HTTPHandlers) AgentRegisterService(resp http.ResponseWriter, req *http. } func (s *HTTPHandlers) AgentDeregisterService(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - serviceID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/service/deregister/") - if err != nil { - return nil, err - } - + serviceID := strings.TrimPrefix(req.URL.Path, "/v1/agent/service/deregister/") sid := structs.NewServiceID(serviceID, nil) // Get the provided token, if any, and vet against any ACL policies. @@ -1287,11 +1254,7 @@ func (s *HTTPHandlers) AgentDeregisterService(resp http.ResponseWriter, req *htt func (s *HTTPHandlers) AgentServiceMaintenance(resp http.ResponseWriter, req *http.Request) (interface{}, error) { // Ensure we have a service ID - serviceID, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/service/maintenance/") - if err != nil { - return nil, err - } - + serviceID := strings.TrimPrefix(req.URL.Path, "/v1/agent/service/maintenance/") sid := structs.NewServiceID(serviceID, nil) if sid.ID == "" { @@ -1489,10 +1452,7 @@ func (s *HTTPHandlers) AgentToken(resp http.ResponseWriter, req *http.Request) ( } // Figure out the target token. - target, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/token/") - if err != nil { - return nil, err - } + target := strings.TrimPrefix(req.URL.Path, "/v1/agent/token/") err = s.agent.tokens.WithPersistenceLock(func() error { triggerAntiEntropySync := false @@ -1565,10 +1525,9 @@ func (s *HTTPHandlers) AgentConnectCARoots(resp http.ResponseWriter, req *http.R func (s *HTTPHandlers) AgentConnectCALeafCert(resp http.ResponseWriter, req *http.Request) (interface{}, error) { // Get the service name. Note that this is the name of the service, // not the ID of the service instance. - serviceName, err := getPathSuffixUnescaped(req.URL.Path, "/v1/agent/connect/ca/leaf/") - if err != nil { - return nil, err - } + serviceName := strings.TrimPrefix(req.URL.Path, "/v1/agent/connect/ca/leaf/") + + // TODO(peering): expose way to get kind=mesh-gateway type cert with appropriate ACLs args := cachetype.ConnectCALeafRequest{ Service: serviceName, // Need name not ID diff --git a/agent/agent_endpoint_test.go b/agent/agent_endpoint_test.go index 9aa0a17274..7bde623872 100644 --- a/agent/agent_endpoint_test.go +++ b/agent/agent_endpoint_test.go @@ -28,6 +28,7 @@ import ( "golang.org/x/time/rate" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/config" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/connect/ca" @@ -39,6 +40,7 @@ import ( tokenStore "github.com/hashicorp/consul/agent/token" "github.com/hashicorp/consul/agent/xds/proxysupport" "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/consul/testrpc" @@ -1563,7 +1565,9 @@ func TestHTTPHandlers_AgentMetricsStream_ACLDeny(t *testing.T) { bd := BaseDeps{} bd.Tokens = new(tokenStore.Store) sink := metrics.NewInmemSink(30*time.Millisecond, time.Second) - bd.MetricsHandler = sink + bd.MetricsConfig = &lib.MetricsConfig{ + Handler: sink, + } d := fakeResolveTokenDelegate{authorizer: acl.DenyAll()} agent := &Agent{ baseDeps: bd, @@ -1590,7 +1594,9 @@ func TestHTTPHandlers_AgentMetricsStream(t *testing.T) { bd := BaseDeps{} bd.Tokens = new(tokenStore.Store) sink := metrics.NewInmemSink(20*time.Millisecond, time.Second) - bd.MetricsHandler = sink + bd.MetricsConfig = &lib.MetricsConfig{ + Handler: sink, + } d := fakeResolveTokenDelegate{authorizer: acl.ManageAll()} agent := &Agent{ baseDeps: bd, @@ -1640,8 +1646,8 @@ type fakeResolveTokenDelegate struct { authorizer acl.Authorizer } -func (f fakeResolveTokenDelegate) ResolveTokenAndDefaultMeta(_ string, _ *acl.EnterpriseMeta, _ *acl.AuthorizerContext) (consul.ACLResolveResult, error) { - return consul.ACLResolveResult{Authorizer: f.authorizer}, nil +func (f fakeResolveTokenDelegate) ResolveTokenAndDefaultMeta(_ string, _ *acl.EnterpriseMeta, _ *acl.AuthorizerContext) (resolver.Result, error) { + return resolver.Result{Authorizer: f.authorizer}, nil } func TestAgent_Reload(t *testing.T) { @@ -1698,6 +1704,7 @@ func TestAgent_Reload(t *testing.T) { }) shim := &delegateConfigReloadShim{delegate: a.delegate} + // NOTE: this may require refactoring to remove a potential test race a.delegate = shim if err := a.reloadConfigInternal(cfg2); err != nil { t.Fatalf("got error %v want nil", err) @@ -2508,6 +2515,48 @@ func TestAgent_RegisterCheck(t *testing.T) { } } +func TestAgent_RegisterCheck_UDP(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + a := NewTestAgent(t, "") + defer a.Shutdown() + testrpc.WaitForTestAgent(t, a.RPC, "dc1") + + args := &structs.CheckDefinition{ + UDP: "1.1.1.1", + Name: "test", + Interval: 10 * time.Second, + } + req, _ := http.NewRequest("PUT", "/v1/agent/check/register?token=abc123", jsonReader(args)) + resp := httptest.NewRecorder() + a.srv.h.ServeHTTP(resp, req) + require.Equal(t, http.StatusOK, resp.Code) + + // Ensure we have a check mapping + checkID := structs.NewCheckID("test", nil) + if existing := a.State.Check(checkID); existing == nil { + t.Fatalf("missing test check") + } + + if _, ok := a.checkUDPs[checkID]; !ok { + t.Fatalf("missing test check udp") + } + + // Ensure the token was configured + if token := a.State.CheckToken(checkID); token == "" { + t.Fatalf("missing token") + } + + // By default, checks start in critical state. + state := a.State.Check(checkID) + if state.Status != api.HealthCritical { + t.Fatalf("bad: %v", state) + } +} + // This verifies all the forms of the new args-style check that we need to // support as a result of https://github.com/hashicorp/consul/issues/3587. func TestAgent_RegisterCheck_Scripts(t *testing.T) { @@ -3270,6 +3319,10 @@ func testAgent_RegisterService(t *testing.T, extraHCL string) { { TTL: 30 * time.Second, }, + { + UDP: "1.1.1.1", + Interval: 5 * time.Second, + }, }, Weights: &structs.Weights{ Passing: 100, @@ -3301,12 +3354,12 @@ func testAgent_RegisterService(t *testing.T, extraHCL string) { // Ensure we have a check mapping checks := a.State.Checks(structs.WildcardEnterpriseMetaInDefaultPartition()) - if len(checks) != 3 { + if len(checks) != 4 { t.Fatalf("bad: %v", checks) } for _, c := range checks { - if c.Type != "ttl" { - t.Fatalf("expected ttl check type, got %s", c.Type) + if c.Type != "ttl" && c.Type != "udp" { + t.Fatalf("expected ttl or udp check type, got %s", c.Type) } } @@ -3356,6 +3409,11 @@ func testAgent_RegisterService_ReRegister(t *testing.T, extraHCL string) { CheckID: types.CheckID("check_2"), TTL: 30 * time.Second, }, + { + CheckID: types.CheckID("check_3"), + UDP: "1.1.1.1", + Interval: 5 * time.Second, + }, }, Weights: &structs.Weights{ Passing: 100, @@ -3381,6 +3439,11 @@ func testAgent_RegisterService_ReRegister(t *testing.T, extraHCL string) { CheckID: types.CheckID("check_3"), TTL: 30 * time.Second, }, + { + CheckID: types.CheckID("check_3"), + UDP: "1.1.1.1", + Interval: 5 * time.Second, + }, }, Weights: &structs.Weights{ Passing: 100, @@ -3708,6 +3771,231 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) { } } +func TestAgent_RegisterService_TranslateKeys_UDP(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Run("normal", func(t *testing.T) { + t.Parallel() + testAgent_RegisterService_TranslateKeys(t, "enable_central_service_config = false") + }) + t.Run("service manager", func(t *testing.T) { + t.Parallel() + testAgent_RegisterService_TranslateKeys(t, "enable_central_service_config = true") + }) +} + +func testAgent_RegisterService_TranslateKeys_UDP(t *testing.T, extraHCL string) { + t.Helper() + + tests := []struct { + ip string + expectedUDPCheckStart string + }{ + {"127.0.0.1", "127.0.0.1:"}, // private network address + {"::1", "[::1]:"}, // shared address space + } + for _, tt := range tests { + t.Run(tt.ip, func(t *testing.T) { + a := NewTestAgent(t, ` + connect {} +`+extraHCL) + defer a.Shutdown() + testrpc.WaitForTestAgent(t, a.RPC, "dc1") + + json := ` + { + "name":"test", + "port":8000, + "enable_tag_override": true, + "tagged_addresses": { + "lan": { + "address": "1.2.3.4", + "port": 5353 + }, + "wan": { + "address": "2.3.4.5", + "port": 53 + } + }, + "meta": { + "some": "meta", + "enable_tag_override": "meta is 'opaque' so should not get translated" + }, + "kind": "connect-proxy",` + + // Note the uppercase P is important here - it ensures translation works + // correctly in case-insensitive way. Without it this test can pass even + // when translation is broken for other valid inputs. + `"Proxy": { + "destination_service_name": "web", + "destination_service_id": "web", + "local_service_port": 1234, + "local_service_address": "` + tt.ip + `", + "config": { + "destination_type": "proxy.config is 'opaque' so should not get translated" + }, + "upstreams": [ + { + "destination_type": "service", + "destination_namespace": "default", + "destination_partition": "default", + "destination_name": "db", + "local_bind_address": "` + tt.ip + `", + "local_bind_port": 1234, + "config": { + "destination_type": "proxy.upstreams.config is 'opaque' so should not get translated" + } + } + ] + }, + "connect": { + "sidecar_service": { + "name":"test-proxy", + "port":8001, + "enable_tag_override": true, + "meta": { + "some": "meta", + "enable_tag_override": "sidecar_service.meta is 'opaque' so should not get translated" + }, + "kind": "connect-proxy", + "proxy": { + "destination_service_name": "test", + "destination_service_id": "test", + "local_service_port": 4321, + "local_service_address": "` + tt.ip + `", + "upstreams": [ + { + "destination_type": "service", + "destination_namespace": "default", + "destination_partition": "default", + "destination_name": "db", + "local_bind_address": "` + tt.ip + `", + "local_bind_port": 1234, + "config": { + "destination_type": "sidecar_service.proxy.upstreams.config is 'opaque' so should not get translated" + } + } + ] + } + } + }, + "weights":{ + "passing": 16 + } + }` + req, _ := http.NewRequest("PUT", "/v1/agent/service/register", strings.NewReader(json)) + + rr := httptest.NewRecorder() + a.srv.h.ServeHTTP(rr, req) + require.Equal(t, 200, rr.Code, "body: %s", rr.Body) + + svc := &structs.NodeService{ + ID: "test", + Service: "test", + TaggedAddresses: map[string]structs.ServiceAddress{ + "lan": { + Address: "1.2.3.4", + Port: 5353, + }, + "wan": { + Address: "2.3.4.5", + Port: 53, + }, + }, + Meta: map[string]string{ + "some": "meta", + "enable_tag_override": "meta is 'opaque' so should not get translated", + }, + Port: 8000, + EnableTagOverride: true, + Weights: &structs.Weights{Passing: 16, Warning: 0}, + Kind: structs.ServiceKindConnectProxy, + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "web", + DestinationServiceID: "web", + LocalServiceAddress: tt.ip, + LocalServicePort: 1234, + Config: map[string]interface{}{ + "destination_type": "proxy.config is 'opaque' so should not get translated", + }, + Upstreams: structs.Upstreams{ + { + DestinationType: structs.UpstreamDestTypeService, + DestinationName: "db", + DestinationNamespace: "default", + DestinationPartition: "default", + LocalBindAddress: tt.ip, + LocalBindPort: 1234, + Config: map[string]interface{}{ + "destination_type": "proxy.upstreams.config is 'opaque' so should not get translated", + }, + }, + }, + }, + Connect: structs.ServiceConnect{ + // The sidecar service is nilled since it is only config sugar and + // shouldn't be represented in state. We assert that the translations + // there worked by inspecting the registered sidecar below. + SidecarService: nil, + }, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + } + + got := a.State.Service(structs.NewServiceID("test", nil)) + require.Equal(t, svc, got) + + sidecarSvc := &structs.NodeService{ + Kind: structs.ServiceKindConnectProxy, + ID: "test-sidecar-proxy", + Service: "test-proxy", + Meta: map[string]string{ + "some": "meta", + "enable_tag_override": "sidecar_service.meta is 'opaque' so should not get translated", + }, + TaggedAddresses: map[string]structs.ServiceAddress{}, + Port: 8001, + EnableTagOverride: true, + Weights: &structs.Weights{Passing: 1, Warning: 1}, + LocallyRegisteredAsSidecar: true, + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "test", + DestinationServiceID: "test", + LocalServiceAddress: tt.ip, + LocalServicePort: 4321, + Upstreams: structs.Upstreams{ + { + DestinationType: structs.UpstreamDestTypeService, + DestinationName: "db", + DestinationNamespace: "default", + DestinationPartition: "default", + LocalBindAddress: tt.ip, + LocalBindPort: 1234, + Config: map[string]interface{}{ + "destination_type": "sidecar_service.proxy.upstreams.config is 'opaque' so should not get translated", + }, + }, + }, + }, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + } + gotSidecar := a.State.Service(structs.NewServiceID("test-sidecar-proxy", nil)) + hasNoCorrectUDPCheck := true + for _, v := range a.checkUDPs { + if strings.HasPrefix(v.UDP, tt.expectedUDPCheckStart) { + hasNoCorrectUDPCheck = false + break + } + fmt.Println("UDP Check:= ", v) + } + if hasNoCorrectUDPCheck { + t.Fatalf("Did not find the expected UDP Healtcheck '%s' in %#v ", tt.expectedUDPCheckStart, a.checkUDPs) + } + require.Equal(t, sidecarSvc, gotSidecar) + }) + } +} + func TestAgent_RegisterService_ACLDeny(t *testing.T) { if testing.Short() { t.Skip("too slow for testing.Short") @@ -4457,6 +4745,503 @@ func testAgent_RegisterServiceDeregisterService_Sidecar(t *testing.T, extraHCL s } } +// This tests local agent service registration with a sidecar service. Note we +// only test simple defaults for the sidecar here since the actual logic for +// handling sidecar defaults and port assignment is tested thoroughly in +// TestAgent_sidecarServiceFromNodeService. Note it also tests Deregister +// explicitly too since setup is identical. +func TestAgent_RegisterServiceDeregisterService_Sidecar_UDP(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Run("normal", func(t *testing.T) { + t.Parallel() + testAgent_RegisterServiceDeregisterService_Sidecar_UDP(t, "enable_central_service_config = false") + }) + t.Run("service manager", func(t *testing.T) { + t.Parallel() + testAgent_RegisterServiceDeregisterService_Sidecar_UDP(t, "enable_central_service_config = true") + }) +} + +func testAgent_RegisterServiceDeregisterService_Sidecar_UDP(t *testing.T, extraHCL string) { + t.Helper() + + tests := []struct { + name string + preRegister, preRegister2 *structs.NodeService + // Use raw JSON payloads rather than encoding to avoid subtleties with some + // internal representations and different ways they encode and decode. We + // rely on the payload being Unmarshalable to structs.ServiceDefinition + // directly. + json string + enableACL bool + tokenRules string + wantNS *structs.NodeService + wantErr string + wantSidecarIDLeftAfterDereg bool + assertStateFn func(t *testing.T, state *local.State) + }{ + { + name: "sanity check no sidecar case", + json: ` + { + "name": "web", + "port": 1111 + } + `, + wantNS: nil, + wantErr: "", + }, + { + name: "default sidecar", + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": {} + } + } + `, + wantNS: testDefaultSidecar("web", 1111), + wantErr: "", + }, + { + name: "ACL OK defaults", + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": {} + } + } + `, + enableACL: true, + tokenRules: ` + service "web-sidecar-proxy" { + policy = "write" + } + service "web" { + policy = "write" + }`, + wantNS: testDefaultSidecar("web", 1111), + wantErr: "", + }, + { + name: "ACL denied", + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": {} + } + } + `, + enableACL: true, + tokenRules: ``, // No token rules means no valid token + wantNS: nil, + wantErr: "Permission denied", + }, + { + name: "ACL OK for service but not for sidecar", + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": {} + } + } + `, + enableACL: true, + // This will become more common/reasonable when ACLs support exact match. + tokenRules: ` + service "web-sidecar-proxy" { + policy = "deny" + } + service "web" { + policy = "write" + }`, + wantNS: nil, + wantErr: "Permission denied", + }, + { + name: "ACL OK for service and sidecar but not sidecar's overridden destination", + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": { + "proxy": { + "DestinationServiceName": "foo" + } + } + } + } + `, + enableACL: true, + tokenRules: ` + service "web-sidecar-proxy" { + policy = "write" + } + service "web" { + policy = "write" + }`, + wantNS: nil, + wantErr: "Permission denied", + }, + { + name: "ACL OK for service but not for overridden sidecar", + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": { + "name": "foo-sidecar-proxy" + } + } + } + `, + enableACL: true, + tokenRules: ` + service "web-sidecar-proxy" { + policy = "write" + } + service "web" { + policy = "write" + }`, + wantNS: nil, + wantErr: "Permission denied", + }, + { + name: "ACL OK for service but and overridden for sidecar", + // This test ensures that if the sidecar embeds it's own token with + // different privs from the main request token it will be honored for the + // sidecar registration. We use the test root token since that should have + // permission. + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": { + "name": "foo", + "token": "root" + } + } + } + `, + enableACL: true, + tokenRules: ` + service "web-sidecar-proxy" { + policy = "write" + } + service "web" { + policy = "write" + }`, + wantNS: testDefaultSidecar("web", 1111, func(ns *structs.NodeService) { + ns.Service = "foo" + }), + wantErr: "", + }, + { + name: "invalid check definition in sidecar", + // Note no interval in the UDP check should fail validation + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": { + "check": { + "UDP": "foo" + } + } + } + } + `, + wantNS: nil, + wantErr: "invalid check in sidecar_service", + }, + { + name: "invalid checks definitions in sidecar", + // Note no interval in the UDP check should fail validation + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": { + "checks": [{ + "UDP": "foo" + }] + } + } + } + `, + wantNS: nil, + wantErr: "invalid check in sidecar_service", + }, + { + name: "invalid check status in sidecar", + // Note no interval in the UDP check should fail validation + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": { + "check": { + "UDP": "foo", + "Interval": 10, + "Status": "unsupported-status" + } + } + } + } + `, + wantNS: nil, + wantErr: "Status for checks must 'passing', 'warning', 'critical'", + }, + { + name: "invalid checks status in sidecar", + // Note no interval in the UDP check should fail validation + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": { + "checks": [{ + "UDP": "foo", + "Interval": 10, + "Status": "unsupported-status" + }] + } + } + } + `, + wantNS: nil, + wantErr: "Status for checks must 'passing', 'warning', 'critical'", + }, + { + name: "another service registered with same ID as a sidecar should not be deregistered", + // Add another service with the same ID that a sidecar for web would have + preRegister: &structs.NodeService{ + ID: "web-sidecar-proxy", + Service: "fake-sidecar", + Port: 9999, + }, + // Register web with NO SIDECAR + json: ` + { + "name": "web", + "port": 1111 + } + `, + // Note here that although the registration here didn't register it, we + // should still see the NodeService we pre-registered here. + wantNS: &structs.NodeService{ + ID: "web-sidecar-proxy", + Service: "fake-sidecar", + Port: 9999, + TaggedAddresses: map[string]structs.ServiceAddress{}, + Weights: &structs.Weights{ + Passing: 1, + Warning: 1, + }, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + // After we deregister the web service above, the fake sidecar with + // clashing ID SHOULD NOT have been removed since it wasn't part of the + // original registration. + wantSidecarIDLeftAfterDereg: true, + }, + { + name: "updates to sidecar should work", + // Add a valid sidecar already registered + preRegister: &structs.NodeService{ + ID: "web-sidecar-proxy", + Service: "web-sidecar-proxy", + LocallyRegisteredAsSidecar: true, + Port: 9999, + }, + // Register web with Sidecar on different port + json: ` + { + "name": "web", + "port": 1111, + "connect": { + "SidecarService": { + "Port": 6666 + } + } + } + `, + // Note here that although the registration here didn't register it, we + // should still see the NodeService we pre-registered here. + wantNS: &structs.NodeService{ + Kind: "connect-proxy", + ID: "web-sidecar-proxy", + Service: "web-sidecar-proxy", + LocallyRegisteredAsSidecar: true, + Port: 6666, + TaggedAddresses: map[string]structs.ServiceAddress{}, + Weights: &structs.Weights{ + Passing: 1, + Warning: 1, + }, + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "web", + DestinationServiceID: "web", + LocalServiceAddress: "127.0.0.1", + LocalServicePort: 1111, + }, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + }, + { + name: "update that removes sidecar should NOT deregister it", + // Add web with a valid sidecar already registered + preRegister: &structs.NodeService{ + ID: "web", + Service: "web", + Port: 1111, + }, + preRegister2: testDefaultSidecar("web", 1111), + // Register (update) web and remove sidecar (and port for sanity check) + json: ` + { + "name": "web", + "port": 2222 + } + `, + // Sidecar should still be there such that API can update registration + // without accidentally removing a sidecar. This is equivalent to embedded + // checks which are not removed by just not being included in an update. + // We will document that sidecar registrations via API must be explicitiy + // deregistered. + wantNS: testDefaultSidecar("web", 1111), + // Sanity check the rest of the update happened though. + assertStateFn: func(t *testing.T, state *local.State) { + svc := state.Service(structs.NewServiceID("web", nil)) + require.NotNil(t, svc) + require.Equal(t, 2222, svc.Port) + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + + // Constrain auto ports to 1 available to make it deterministic + hcl := `ports { + sidecar_min_port = 2222 + sidecar_max_port = 2222 + } + ` + if tt.enableACL { + hcl = hcl + TestACLConfig() + } + + a := NewTestAgent(t, hcl+" "+extraHCL) + defer a.Shutdown() + testrpc.WaitForLeader(t, a.RPC, "dc1") + + if tt.preRegister != nil { + require.NoError(t, a.addServiceFromSource(tt.preRegister, nil, false, "", ConfigSourceLocal)) + } + if tt.preRegister2 != nil { + require.NoError(t, a.addServiceFromSource(tt.preRegister2, nil, false, "", ConfigSourceLocal)) + } + + // Create an ACL token with require policy + var token string + if tt.enableACL && tt.tokenRules != "" { + token = testCreateToken(t, a, tt.tokenRules) + } + + br := bytes.NewBufferString(tt.json) + + req, _ := http.NewRequest("PUT", "/v1/agent/service/register?token="+token, br) + resp := httptest.NewRecorder() + a.srv.h.ServeHTTP(resp, req) + if tt.wantErr != "" { + require.Contains(t, strings.ToLower(resp.Body.String()), strings.ToLower(tt.wantErr)) + return + } + require.Equal(t, 200, resp.Code, "request failed with body: %s", + resp.Body.String()) + + // Sanity the target service registration + svcs := a.State.AllServices() + + // Parse the expected definition into a ServiceDefinition + var sd structs.ServiceDefinition + err := json.Unmarshal([]byte(tt.json), &sd) + require.NoError(t, err) + require.NotEmpty(t, sd.Name) + + svcID := sd.ID + if svcID == "" { + svcID = sd.Name + } + sid := structs.NewServiceID(svcID, nil) + svc, ok := svcs[sid] + require.True(t, ok, "has service "+sid.String()) + assert.Equal(t, sd.Name, svc.Service) + assert.Equal(t, sd.Port, svc.Port) + // Ensure that the actual registered service _doesn't_ still have it's + // sidecar info since it's duplicate and we don't want that synced up to + // the catalog or included in responses particularly - it's just + // registration syntax sugar. + assert.Nil(t, svc.Connect.SidecarService) + + if tt.wantNS == nil { + // Sanity check that there was no service registered, we rely on there + // being no services at start of test so we can just use the count. + assert.Len(t, svcs, 1, "should be no sidecar registered") + return + } + + // Ensure sidecar + svc, ok = svcs[structs.NewServiceID(tt.wantNS.ID, nil)] + require.True(t, ok, "no sidecar registered at "+tt.wantNS.ID) + assert.Equal(t, tt.wantNS, svc) + + if tt.assertStateFn != nil { + tt.assertStateFn(t, a.State) + } + + // Now verify deregistration also removes sidecar (if there was one and it + // was added via sidecar not just coincidental ID clash) + { + req := httptest.NewRequest("PUT", + "/v1/agent/service/deregister/"+svcID+"?token="+token, nil) + resp := httptest.NewRecorder() + a.srv.h.ServeHTTP(resp, req) + require.Equal(t, http.StatusOK, resp.Code) + + svcs := a.State.AllServices() + _, ok = svcs[structs.NewServiceID(tt.wantNS.ID, nil)] + if tt.wantSidecarIDLeftAfterDereg { + require.True(t, ok, "removed non-sidecar service at "+tt.wantNS.ID) + } else { + require.False(t, ok, "sidecar not deregistered with service "+svcID) + } + } + }) + } +} + +// END HERE + // This tests that connect proxy validation is done for local agent // registration. This doesn't need to test validation exhaustively since // that is done via a table test in the structs package. @@ -6205,13 +6990,6 @@ func TestAgentConnectCALeafCert_goodNotLocal(t *testing.T) { func TestAgentConnectCALeafCert_nonBlockingQuery_after_blockingQuery_shouldNotBlock(t *testing.T) { // see: https://github.com/hashicorp/consul/issues/12048 - runStep := func(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } - } - if testing.Short() { t.Skip("too slow for testing.Short") } @@ -6246,7 +7024,7 @@ func TestAgentConnectCALeafCert_nonBlockingQuery_after_blockingQuery_shouldNotBl index string issued structs.IssuedCert ) - runStep(t, "do initial non-blocking query", func(t *testing.T) { + testutil.RunStep(t, "do initial non-blocking query", func(t *testing.T) { req := httptest.NewRequest("GET", "/v1/agent/connect/ca/leaf/test", nil) resp := httptest.NewRecorder() a.srv.h.ServeHTTP(resp, req) @@ -6278,7 +7056,7 @@ func TestAgentConnectCALeafCert_nonBlockingQuery_after_blockingQuery_shouldNotBl // in between both of these steps the data should still be there, causing // this to be a HIT that completes in less than 10m (the default inner leaf // cert blocking query timeout). - runStep(t, "do a non-blocking query that should not block", func(t *testing.T) { + testutil.RunStep(t, "do a non-blocking query that should not block", func(t *testing.T) { req := httptest.NewRequest("GET", "/v1/agent/connect/ca/leaf/test", nil) resp := httptest.NewRecorder() a.srv.h.ServeHTTP(resp, req) diff --git a/agent/agent_oss.go b/agent/agent_oss.go index 43de920a51..39adbef81e 100644 --- a/agent/agent_oss.go +++ b/agent/agent_oss.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/config" "github.com/hashicorp/consul/agent/consul" + "github.com/hashicorp/consul/agent/proxycfg" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" ) @@ -58,3 +59,5 @@ func (a *Agent) AgentEnterpriseMeta() *acl.EnterpriseMeta { } func (a *Agent) registerEntCache() {} + +func (*Agent) fillEnterpriseProxyDataSources(*proxycfg.DataSources) {} diff --git a/agent/cache-types/config_entry.go b/agent/cache-types/config_entry.go index a50c5c3821..d48572d7fb 100644 --- a/agent/cache-types/config_entry.go +++ b/agent/cache-types/config_entry.go @@ -9,17 +9,17 @@ import ( // Recommended name for registration. const ( - ConfigEntriesName = "config-entries" - ConfigEntryName = "config-entry" + ConfigEntryListName = "config-entries" + ConfigEntryName = "config-entry" ) -// ConfigEntries supports fetching discovering configuration entries -type ConfigEntries struct { +// ConfigEntryList supports fetching discovering configuration entries +type ConfigEntryList struct { RegisterOptionsBlockingRefresh RPC RPC } -func (c *ConfigEntries) Fetch(opts cache.FetchOptions, req cache.Request) (cache.FetchResult, error) { +func (c *ConfigEntryList) Fetch(opts cache.FetchOptions, req cache.Request) (cache.FetchResult, error) { var result cache.FetchResult // The request should be a ConfigEntryQuery. diff --git a/agent/cache-types/config_entry_test.go b/agent/cache-types/config_entry_test.go index 169022965a..19522b796f 100644 --- a/agent/cache-types/config_entry_test.go +++ b/agent/cache-types/config_entry_test.go @@ -12,7 +12,7 @@ import ( func TestConfigEntries(t *testing.T) { rpc := TestRPC(t) - typ := &ConfigEntries{RPC: rpc} + typ := &ConfigEntryList{RPC: rpc} // Expect the proper RPC call. This also sets the expected value // since that is return-by-pointer in the arguments. @@ -99,7 +99,7 @@ func TestConfigEntry(t *testing.T) { func TestConfigEntries_badReqType(t *testing.T) { rpc := TestRPC(t) - typ := &ConfigEntries{RPC: rpc} + typ := &ConfigEntryList{RPC: rpc} // Fetch _, err := typ.Fetch(cache.FetchOptions{}, cache.TestRequest( diff --git a/agent/cache-types/connect_ca_leaf.go b/agent/cache-types/connect_ca_leaf.go index 3b382573a5..8f98080adb 100644 --- a/agent/cache-types/connect_ca_leaf.go +++ b/agent/cache-types/connect_ca_leaf.go @@ -558,8 +558,19 @@ func (c *ConnectCALeaf) generateNewLeaf(req *ConnectCALeafRequest, } dnsNames = append([]string{"localhost"}, req.DNSSAN...) ipAddresses = append([]net.IP{net.ParseIP("127.0.0.1"), net.ParseIP("::1")}, req.IPSAN...) + } else if req.Kind != "" { + if req.Kind != structs.ServiceKindMeshGateway { + return result, fmt.Errorf("unsupported kind: %s", req.Kind) + } + + id = &connect.SpiffeIDMeshGateway{ + Host: roots.TrustDomain, + Datacenter: req.Datacenter, + Partition: req.TargetPartition(), + } + dnsNames = append(dnsNames, req.DNSSAN...) } else { - return result, errors.New("URI must be either service or agent") + return result, errors.New("URI must be either service, agent, or kind") } // Create a new private key @@ -665,8 +676,9 @@ func (c *ConnectCALeaf) generateNewLeaf(req *ConnectCALeafRequest, type ConnectCALeafRequest struct { Token string Datacenter string - Service string // Service name, not ID - Agent string // Agent name, not ID + Service string // Service name, not ID + Agent string // Agent name, not ID + Kind structs.ServiceKind // only mesh-gateway for now DNSSAN []string IPSAN []net.IP MinQueryIndex uint64 @@ -677,20 +689,38 @@ type ConnectCALeafRequest struct { } func (r *ConnectCALeafRequest) Key() string { - if len(r.Agent) > 0 { - return fmt.Sprintf("agent:%s", r.Agent) - } - r.EnterpriseMeta.Normalize() - v, err := hashstructure.Hash([]interface{}{ - r.Service, - r.EnterpriseMeta, - r.DNSSAN, - r.IPSAN, - }, nil) - if err == nil { - return fmt.Sprintf("service:%d", v) + switch { + case r.Agent != "": + v, err := hashstructure.Hash([]interface{}{ + r.Agent, + r.PartitionOrDefault(), + }, nil) + if err == nil { + return fmt.Sprintf("agent:%d", v) + } + case r.Kind == structs.ServiceKindMeshGateway: + v, err := hashstructure.Hash([]interface{}{ + r.PartitionOrDefault(), + r.DNSSAN, + r.IPSAN, + }, nil) + if err == nil { + return fmt.Sprintf("kind:%d", v) + } + case r.Kind != "": + // this is not valid + default: + v, err := hashstructure.Hash([]interface{}{ + r.Service, + r.EnterpriseMeta, + r.DNSSAN, + r.IPSAN, + }, nil) + if err == nil { + return fmt.Sprintf("service:%d", v) + } } // If there is an error, we don't set the key. A blank key forces diff --git a/agent/cache-types/connect_ca_leaf_test.go b/agent/cache-types/connect_ca_leaf_test.go index 92a215af8d..dc709f56a5 100644 --- a/agent/cache-types/connect_ca_leaf_test.go +++ b/agent/cache-types/connect_ca_leaf_test.go @@ -1104,29 +1104,64 @@ func (r *testGatedRootsRPC) RPC(method string, args interface{}, reply interface } func TestConnectCALeaf_Key(t *testing.T) { - r1 := ConnectCALeafRequest{Service: "web"} - r2 := ConnectCALeafRequest{Service: "api"} - - r3 := ConnectCALeafRequest{DNSSAN: []string{"a.com"}} - r4 := ConnectCALeafRequest{DNSSAN: []string{"b.com"}} - - r5 := ConnectCALeafRequest{IPSAN: []net.IP{net.ParseIP("192.168.4.139")}} - r6 := ConnectCALeafRequest{IPSAN: []net.IP{net.ParseIP("192.168.4.140")}} - // hashstructure will hash the service name + ent meta to produce this key - r1Key := r1.Key() - r2Key := r2.Key() - - r3Key := r3.Key() - r4Key := r4.Key() - - r5Key := r5.Key() - r6Key := r6.Key() - - require.True(t, strings.HasPrefix(r1Key, "service:"), "Key %s does not start with service:", r1Key) - require.True(t, strings.HasPrefix(r2Key, "service:"), "Key %s does not start with service:", r2Key) - require.NotEqual(t, r1Key, r2Key, "Cache keys for different services are not equal") - require.NotEqual(t, r3Key, r4Key, "Cache keys for different DNSSAN are not equal") - require.NotEqual(t, r5Key, r6Key, "Cache keys for different IPSAN are not equal") - r := ConnectCALeafRequest{Agent: "abc"} - require.Equal(t, "agent:abc", r.Key()) + key := func(r ConnectCALeafRequest) string { + return r.Key() + } + t.Run("service", func(t *testing.T) { + t.Run("name", func(t *testing.T) { + r1 := key(ConnectCALeafRequest{Service: "web"}) + r2 := key(ConnectCALeafRequest{Service: "api"}) + require.True(t, strings.HasPrefix(r1, "service:"), "Key %s does not start with service:", r1) + require.True(t, strings.HasPrefix(r2, "service:"), "Key %s does not start with service:", r2) + require.NotEqual(t, r1, r2, "Cache keys for different services should not be equal") + }) + t.Run("dns-san", func(t *testing.T) { + r3 := key(ConnectCALeafRequest{Service: "foo", DNSSAN: []string{"a.com"}}) + r4 := key(ConnectCALeafRequest{Service: "foo", DNSSAN: []string{"b.com"}}) + require.NotEqual(t, r3, r4, "Cache keys for different DNSSAN should not be equal") + }) + t.Run("ip-san", func(t *testing.T) { + r5 := key(ConnectCALeafRequest{Service: "foo", IPSAN: []net.IP{net.ParseIP("192.168.4.139")}}) + r6 := key(ConnectCALeafRequest{Service: "foo", IPSAN: []net.IP{net.ParseIP("192.168.4.140")}}) + require.NotEqual(t, r5, r6, "Cache keys for different IPSAN should not be equal") + }) + }) + t.Run("agent", func(t *testing.T) { + t.Run("name", func(t *testing.T) { + r1 := key(ConnectCALeafRequest{Agent: "abc"}) + require.True(t, strings.HasPrefix(r1, "agent:"), "Key %s does not start with agent:", r1) + }) + t.Run("dns-san ignored", func(t *testing.T) { + r3 := key(ConnectCALeafRequest{Agent: "foo", DNSSAN: []string{"a.com"}}) + r4 := key(ConnectCALeafRequest{Agent: "foo", DNSSAN: []string{"b.com"}}) + require.Equal(t, r3, r4, "DNSSAN is ignored for agent type") + }) + t.Run("ip-san ignored", func(t *testing.T) { + r5 := key(ConnectCALeafRequest{Agent: "foo", IPSAN: []net.IP{net.ParseIP("192.168.4.139")}}) + r6 := key(ConnectCALeafRequest{Agent: "foo", IPSAN: []net.IP{net.ParseIP("192.168.4.140")}}) + require.Equal(t, r5, r6, "IPSAN is ignored for agent type") + }) + }) + t.Run("kind", func(t *testing.T) { + t.Run("invalid", func(t *testing.T) { + r1 := key(ConnectCALeafRequest{Kind: "terminating-gateway"}) + require.Empty(t, r1) + }) + t.Run("mesh-gateway", func(t *testing.T) { + t.Run("normal", func(t *testing.T) { + r1 := key(ConnectCALeafRequest{Kind: "mesh-gateway"}) + require.True(t, strings.HasPrefix(r1, "kind:"), "Key %s does not start with kind:", r1) + }) + t.Run("dns-san", func(t *testing.T) { + r3 := key(ConnectCALeafRequest{Kind: "mesh-gateway", DNSSAN: []string{"a.com"}}) + r4 := key(ConnectCALeafRequest{Kind: "mesh-gateway", DNSSAN: []string{"b.com"}}) + require.NotEqual(t, r3, r4, "Cache keys for different DNSSAN should not be equal") + }) + t.Run("ip-san", func(t *testing.T) { + r5 := key(ConnectCALeafRequest{Kind: "mesh-gateway", IPSAN: []net.IP{net.ParseIP("192.168.4.139")}}) + r6 := key(ConnectCALeafRequest{Kind: "mesh-gateway", IPSAN: []net.IP{net.ParseIP("192.168.4.140")}}) + require.NotEqual(t, r5, r6, "Cache keys for different IPSAN should not be equal") + }) + }) + }) } diff --git a/agent/cache-types/exported_peered_services.go b/agent/cache-types/exported_peered_services.go new file mode 100644 index 0000000000..02bc46a4c2 --- /dev/null +++ b/agent/cache-types/exported_peered_services.go @@ -0,0 +1,51 @@ +package cachetype + +import ( + "fmt" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/structs" +) + +// Recommended name for registration. +const ExportedPeeredServicesName = "exported-peered-services" + +type ExportedPeeredServices struct { + RegisterOptionsBlockingRefresh + RPC RPC +} + +func (c *ExportedPeeredServices) Fetch(opts cache.FetchOptions, req cache.Request) (cache.FetchResult, error) { + var result cache.FetchResult + + // The request should be a DCSpecificRequest. + reqReal, ok := req.(*structs.DCSpecificRequest) + if !ok { + return result, fmt.Errorf( + "Internal cache failure: request wrong type: %T", req) + } + + // Lightweight copy this object so that manipulating QueryOptions doesn't race. + dup := *reqReal + reqReal = &dup + + // Set the minimum query index to our current index so we block + reqReal.QueryOptions.MinQueryIndex = opts.MinIndex + reqReal.QueryOptions.MaxQueryTime = opts.Timeout + + // Always allow stale - there's no point in hitting leader if the request is + // going to be served from cache and end up arbitrarily stale anyway. This + // allows cached service-discover to automatically read scale across all + // servers too. + reqReal.AllowStale = true + + // Fetch + var reply structs.IndexedExportedServiceList + if err := c.RPC.RPC("Internal.ExportedPeeredServices", reqReal, &reply); err != nil { + return result, err + } + + result.Value = &reply + result.Index = reply.QueryMeta.Index + return result, nil +} diff --git a/agent/cache-types/exported_peered_services_test.go b/agent/cache-types/exported_peered_services_test.go new file mode 100644 index 0000000000..74b0cd7b36 --- /dev/null +++ b/agent/cache-types/exported_peered_services_test.go @@ -0,0 +1,69 @@ +package cachetype + +import ( + "testing" + "time" + + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/structs" +) + +func TestExportedPeeredServices(t *testing.T) { + rpc := TestRPC(t) + typ := &ExportedPeeredServices{RPC: rpc} + + // Expect the proper RPC call. This also sets the expected value + // since that is return-by-pointer in the arguments. + var resp *structs.IndexedExportedServiceList + rpc.On("RPC", "Internal.ExportedPeeredServices", mock.Anything, mock.Anything).Return(nil). + Run(func(args mock.Arguments) { + req := args.Get(1).(*structs.DCSpecificRequest) + require.Equal(t, uint64(24), req.QueryOptions.MinQueryIndex) + require.Equal(t, 1*time.Second, req.QueryOptions.MaxQueryTime) + require.True(t, req.AllowStale) + + reply := args.Get(2).(*structs.IndexedExportedServiceList) + reply.Services = map[string]structs.ServiceList{ + "my-peer": { + structs.ServiceName{ + Name: "foo", + }, + structs.ServiceName{ + Name: "bar", + }, + }, + } + reply.QueryMeta.Index = 48 + resp = reply + }) + + // Fetch + resultA, err := typ.Fetch(cache.FetchOptions{ + MinIndex: 24, + Timeout: 1 * time.Second, + }, &structs.DCSpecificRequest{ + Datacenter: "dc1", + }) + require.NoError(t, err) + require.Equal(t, cache.FetchResult{ + Value: resp, + Index: 48, + }, resultA) + + rpc.AssertExpectations(t) +} + +func TestExportedPeeredServices_badReqType(t *testing.T) { + rpc := TestRPC(t) + typ := &ExportedPeeredServices{RPC: rpc} + + // Fetch + _, err := typ.Fetch(cache.FetchOptions{}, cache.TestRequest( + t, cache.RequestInfo{Key: "foo", MinIndex: 64})) + require.Error(t, err) + require.Contains(t, err.Error(), "wrong type") + rpc.AssertExpectations(t) +} diff --git a/agent/cache-types/intention_upstreams_destination.go b/agent/cache-types/intention_upstreams_destination.go new file mode 100644 index 0000000000..ae1012c354 --- /dev/null +++ b/agent/cache-types/intention_upstreams_destination.go @@ -0,0 +1,52 @@ +package cachetype + +import ( + "fmt" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/structs" +) + +// IntentionUpstreamsDestinationName Recommended name for registration. +const IntentionUpstreamsDestinationName = "intention-upstreams-destination" + +// IntentionUpstreamsDestination supports fetching upstreams for a given gateway name. +type IntentionUpstreamsDestination struct { + RegisterOptionsBlockingRefresh + RPC RPC +} + +func (i *IntentionUpstreamsDestination) Fetch(opts cache.FetchOptions, req cache.Request) (cache.FetchResult, error) { + var result cache.FetchResult + + // The request should be a ServiceSpecificRequest. + reqReal, ok := req.(*structs.ServiceSpecificRequest) + if !ok { + return result, fmt.Errorf( + "Internal cache failure: request wrong type: %T", req) + } + + // Lightweight copy this object so that manipulating QueryOptions doesn't race. + dup := *reqReal + reqReal = &dup + + // Set the minimum query index to our current index so we block + reqReal.QueryOptions.MinQueryIndex = opts.MinIndex + reqReal.QueryOptions.MaxQueryTime = opts.Timeout + + // Always allow stale - there's no point in hitting leader if the request is + // going to be served from cache and end up arbitrarily stale anyway. This + // allows cached service-discover to automatically read scale across all + // servers too. + reqReal.AllowStale = true + + // Fetch + var reply structs.IndexedServiceList + if err := i.RPC.RPC("Internal.IntentionUpstreamsDestination", reqReal, &reply); err != nil { + return result, err + } + + result.Value = &reply + result.Index = reply.QueryMeta.Index + return result, nil +} diff --git a/agent/cache-types/intention_upstreams_destination_test.go b/agent/cache-types/intention_upstreams_destination_test.go new file mode 100644 index 0000000000..7aa2d02ef1 --- /dev/null +++ b/agent/cache-types/intention_upstreams_destination_test.go @@ -0,0 +1,52 @@ +package cachetype + +import ( + "testing" + "time" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/structs" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" +) + +func TestIntentionUpstreamsDestination(t *testing.T) { + rpc := TestRPC(t) + typ := &IntentionUpstreamsDestination{RPC: rpc} + + // Expect the proper RPC call. This also sets the expected value + // since that is return-by-pointer in the arguments. + var resp *structs.IndexedServiceList + rpc.On("RPC", "Internal.IntentionUpstreamsDestination", mock.Anything, mock.Anything).Return(nil). + Run(func(args mock.Arguments) { + req := args.Get(1).(*structs.ServiceSpecificRequest) + require.Equal(t, uint64(24), req.QueryOptions.MinQueryIndex) + require.Equal(t, 1*time.Second, req.QueryOptions.MaxQueryTime) + require.True(t, req.AllowStale) + require.Equal(t, "foo", req.ServiceName) + + services := structs.ServiceList{ + {Name: "foo"}, + } + reply := args.Get(2).(*structs.IndexedServiceList) + reply.Services = services + reply.QueryMeta.Index = 48 + resp = reply + }) + + // Fetch + resultA, err := typ.Fetch(cache.FetchOptions{ + MinIndex: 24, + Timeout: 1 * time.Second, + }, &structs.ServiceSpecificRequest{ + Datacenter: "dc1", + ServiceName: "foo", + }) + require.NoError(t, err) + require.Equal(t, cache.FetchResult{ + Value: resp, + Index: 48, + }, resultA) + + rpc.AssertExpectations(t) +} diff --git a/agent/cache-types/mock_TrustBundleReader_test.go b/agent/cache-types/mock_TrustBundleReader_test.go new file mode 100644 index 0000000000..7ea636b3d7 --- /dev/null +++ b/agent/cache-types/mock_TrustBundleReader_test.go @@ -0,0 +1,60 @@ +// Code generated by mockery v2.12.2. DO NOT EDIT. + +package cachetype + +import ( + context "context" + + grpc "google.golang.org/grpc" + + mock "github.com/stretchr/testify/mock" + + pbpeering "github.com/hashicorp/consul/proto/pbpeering" + + testing "testing" +) + +// MockTrustBundleReader is an autogenerated mock type for the TrustBundleReader type +type MockTrustBundleReader struct { + mock.Mock +} + +// TrustBundleRead provides a mock function with given fields: ctx, in, opts +func (_m *MockTrustBundleReader) TrustBundleRead(ctx context.Context, in *pbpeering.TrustBundleReadRequest, opts ...grpc.CallOption) (*pbpeering.TrustBundleReadResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *pbpeering.TrustBundleReadResponse + if rf, ok := ret.Get(0).(func(context.Context, *pbpeering.TrustBundleReadRequest, ...grpc.CallOption) *pbpeering.TrustBundleReadResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*pbpeering.TrustBundleReadResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *pbpeering.TrustBundleReadRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewMockTrustBundleReader creates a new instance of MockTrustBundleReader. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. +func NewMockTrustBundleReader(t testing.TB) *MockTrustBundleReader { + mock := &MockTrustBundleReader{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/agent/cache-types/trust_bundle.go b/agent/cache-types/trust_bundle.go new file mode 100644 index 0000000000..6539a1ae87 --- /dev/null +++ b/agent/cache-types/trust_bundle.go @@ -0,0 +1,51 @@ +package cachetype + +import ( + "context" + "fmt" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/proto/pbpeering" + "google.golang.org/grpc" +) + +// Recommended name for registration. +const TrustBundleReadName = "peer-trust-bundle" + +// TrustBundle supports fetching discovering service instances via prepared +// queries. +type TrustBundle struct { + RegisterOptionsNoRefresh + Client TrustBundleReader +} + +//go:generate mockery --name TrustBundleReader --inpackage --testonly +type TrustBundleReader interface { + TrustBundleRead( + ctx context.Context, in *pbpeering.TrustBundleReadRequest, opts ...grpc.CallOption, + ) (*pbpeering.TrustBundleReadResponse, error) +} + +func (t *TrustBundle) Fetch(_ cache.FetchOptions, req cache.Request) (cache.FetchResult, error) { + var result cache.FetchResult + + // The request should be a TrustBundleReadRequest. + // We do not need to make a copy of this request type like in other cache types + // because the RequestInfo is synthetic. + reqReal, ok := req.(*pbpeering.TrustBundleReadRequest) + if !ok { + return result, fmt.Errorf( + "Internal cache failure: request wrong type: %T", req) + } + + // Fetch + reply, err := t.Client.TrustBundleRead(context.Background(), reqReal) + if err != nil { + return result, err + } + + result.Value = reply + result.Index = reply.Index + + return result, nil +} diff --git a/agent/cache-types/trust_bundle_test.go b/agent/cache-types/trust_bundle_test.go new file mode 100644 index 0000000000..fa3d016a29 --- /dev/null +++ b/agent/cache-types/trust_bundle_test.go @@ -0,0 +1,104 @@ +package cachetype + +import ( + "context" + "testing" + "time" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/proto/pbpeering" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" +) + +func TestTrustBundle(t *testing.T) { + client := NewMockTrustBundleReader(t) + typ := &TrustBundle{Client: client} + + resp := &pbpeering.TrustBundleReadResponse{ + Index: 48, + Bundle: &pbpeering.PeeringTrustBundle{ + PeerName: "peer1", + RootPEMs: []string{"peer1-roots"}, + }, + } + + // Expect the proper call. + // This also returns the canned response above. + client.On("TrustBundleRead", mock.Anything, mock.Anything). + Run(func(args mock.Arguments) { + req := args.Get(1).(*pbpeering.TrustBundleReadRequest) + require.Equal(t, "foo", req.Name) + }). + Return(resp, nil) + + // Fetch and assert against the result. + result, err := typ.Fetch(cache.FetchOptions{}, &pbpeering.TrustBundleReadRequest{ + Name: "foo", + }) + require.NoError(t, err) + require.Equal(t, cache.FetchResult{ + Value: resp, + Index: 48, + }, result) +} + +func TestTrustBundle_badReqType(t *testing.T) { + client := pbpeering.NewPeeringServiceClient(nil) + typ := &TrustBundle{Client: client} + + // Fetch + _, err := typ.Fetch(cache.FetchOptions{}, cache.TestRequest( + t, cache.RequestInfo{Key: "foo", MinIndex: 64})) + require.Error(t, err) + require.Contains(t, err.Error(), "wrong type") +} + +// This test asserts that we can continuously poll this cache type, given that it doesn't support blocking. +func TestTrustBundle_MultipleUpdates(t *testing.T) { + c := cache.New(cache.Options{}) + + client := NewMockTrustBundleReader(t) + + // On each mock client call to TrustBundleList by service we will increment the index by 1 + // to simulate new data arriving. + resp := &pbpeering.TrustBundleReadResponse{ + Index: uint64(0), + } + + client.On("TrustBundleRead", mock.Anything, mock.Anything). + Run(func(args mock.Arguments) { + req := args.Get(1).(*pbpeering.TrustBundleReadRequest) + require.Equal(t, "foo", req.Name) + + // Increment on each call. + resp.Index++ + }). + Return(resp, nil) + + c.RegisterType(TrustBundleReadName, &TrustBundle{Client: client}) + + ch := make(chan cache.UpdateEvent) + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + t.Cleanup(cancel) + + err := c.Notify(ctx, TrustBundleReadName, &pbpeering.TrustBundleReadRequest{Name: "foo"}, "updates", ch) + require.NoError(t, err) + + i := uint64(1) + for { + select { + case <-ctx.Done(): + return + case update := <-ch: + // Expect to receive updates for increasing indexes serially. + resp := update.Result.(*pbpeering.TrustBundleReadResponse) + require.Equal(t, i, resp.Index) + i++ + + if i > 3 { + return + } + } + } +} diff --git a/agent/cache-types/trust_bundles.go b/agent/cache-types/trust_bundles.go new file mode 100644 index 0000000000..f4cd2d3c18 --- /dev/null +++ b/agent/cache-types/trust_bundles.go @@ -0,0 +1,50 @@ +package cachetype + +import ( + "context" + "fmt" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/proto/pbpeering" + "google.golang.org/grpc" +) + +// Recommended name for registration. +const TrustBundleListName = "trust-bundles" + +// TrustBundles supports fetching discovering service instances via prepared +// queries. +type TrustBundles struct { + RegisterOptionsNoRefresh + Client TrustBundleLister +} + +type TrustBundleLister interface { + TrustBundleListByService( + ctx context.Context, in *pbpeering.TrustBundleListByServiceRequest, opts ...grpc.CallOption, + ) (*pbpeering.TrustBundleListByServiceResponse, error) +} + +func (t *TrustBundles) Fetch(_ cache.FetchOptions, req cache.Request) (cache.FetchResult, error) { + var result cache.FetchResult + + // The request should be a TrustBundleListByServiceRequest. + // We do not need to make a copy of this request type like in other cache types + // because the RequestInfo is synthetic. + reqReal, ok := req.(*pbpeering.TrustBundleListByServiceRequest) + if !ok { + return result, fmt.Errorf( + "Internal cache failure: request wrong type: %T", req) + } + + // Fetch + reply, err := t.Client.TrustBundleListByService(context.Background(), reqReal) + if err != nil { + return result, err + } + + result.Value = reply + result.Index = reply.Index + + return result, nil +} diff --git a/agent/cache-types/trust_bundles_test.go b/agent/cache-types/trust_bundles_test.go new file mode 100644 index 0000000000..451508b0d0 --- /dev/null +++ b/agent/cache-types/trust_bundles_test.go @@ -0,0 +1,152 @@ +package cachetype + +import ( + "context" + "testing" + "time" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/proto/pbpeering" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + "google.golang.org/grpc" +) + +func TestTrustBundles(t *testing.T) { + client := NewMockTrustBundleLister(t) + typ := &TrustBundles{Client: client} + + resp := &pbpeering.TrustBundleListByServiceResponse{ + Index: 48, + Bundles: []*pbpeering.PeeringTrustBundle{ + { + PeerName: "peer1", + RootPEMs: []string{"peer1-roots"}, + }, + }, + } + + // Expect the proper call. + // This also returns the canned response above. + client.On("TrustBundleListByService", mock.Anything, mock.Anything). + Run(func(args mock.Arguments) { + req := args.Get(1).(*pbpeering.TrustBundleListByServiceRequest) + require.Equal(t, "foo", req.ServiceName) + }). + Return(resp, nil) + + // Fetch and assert against the result. + result, err := typ.Fetch(cache.FetchOptions{}, &pbpeering.TrustBundleListByServiceRequest{ + ServiceName: "foo", + }) + require.NoError(t, err) + require.Equal(t, cache.FetchResult{ + Value: resp, + Index: 48, + }, result) +} + +func TestTrustBundles_badReqType(t *testing.T) { + client := pbpeering.NewPeeringServiceClient(nil) + typ := &TrustBundles{Client: client} + + // Fetch + _, err := typ.Fetch(cache.FetchOptions{}, cache.TestRequest( + t, cache.RequestInfo{Key: "foo", MinIndex: 64})) + require.Error(t, err) + require.Contains(t, err.Error(), "wrong type") +} + +// This test asserts that we can continuously poll this cache type, given that it doesn't support blocking. +func TestTrustBundles_MultipleUpdates(t *testing.T) { + c := cache.New(cache.Options{}) + + client := NewMockTrustBundleLister(t) + + // On each mock client call to TrustBundleList by service we will increment the index by 1 + // to simulate new data arriving. + resp := &pbpeering.TrustBundleListByServiceResponse{ + Index: uint64(0), + } + + client.On("TrustBundleListByService", mock.Anything, mock.Anything). + Run(func(args mock.Arguments) { + req := args.Get(1).(*pbpeering.TrustBundleListByServiceRequest) + require.Equal(t, "foo", req.ServiceName) + + // Increment on each call. + resp.Index++ + }). + Return(resp, nil) + + c.RegisterType(TrustBundleListName, &TrustBundles{Client: client}) + + ch := make(chan cache.UpdateEvent) + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + t.Cleanup(cancel) + + err := c.Notify(ctx, TrustBundleListName, &pbpeering.TrustBundleListByServiceRequest{ServiceName: "foo"}, "updates", ch) + require.NoError(t, err) + + i := uint64(1) + for { + select { + case <-ctx.Done(): + return + case update := <-ch: + // Expect to receive updates for increasing indexes serially. + resp := update.Result.(*pbpeering.TrustBundleListByServiceResponse) + require.Equal(t, i, resp.Index) + i++ + + if i > 3 { + return + } + } + } +} + +// MockTrustBundleLister is an autogenerated mock type for the TrustBundleLister type +type MockTrustBundleLister struct { + mock.Mock +} + +// TrustBundleListByService provides a mock function with given fields: ctx, in, opts +func (_m *MockTrustBundleLister) TrustBundleListByService(ctx context.Context, in *pbpeering.TrustBundleListByServiceRequest, opts ...grpc.CallOption) (*pbpeering.TrustBundleListByServiceResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *pbpeering.TrustBundleListByServiceResponse + if rf, ok := ret.Get(0).(func(context.Context, *pbpeering.TrustBundleListByServiceRequest, ...grpc.CallOption) *pbpeering.TrustBundleListByServiceResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*pbpeering.TrustBundleListByServiceResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *pbpeering.TrustBundleListByServiceRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewMockTrustBundleLister creates a new instance of MockTrustBundleLister. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. +func NewMockTrustBundleLister(t testing.TB) *MockTrustBundleLister { + mock := &MockTrustBundleLister{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/agent/cache/watch.go b/agent/cache/watch.go index f50e280783..f99f85c04b 100644 --- a/agent/cache/watch.go +++ b/agent/cache/watch.go @@ -23,6 +23,9 @@ type UpdateEvent struct { Err error } +// Callback is the function type accepted by NotifyCallback. +type Callback func(ctx context.Context, event UpdateEvent) + // Notify registers a desire to be updated about changes to a cache result. // // It is a helper that abstracts code from performing their own "blocking" query @@ -56,6 +59,24 @@ func (c *Cache) Notify( r Request, correlationID string, ch chan<- UpdateEvent, +) error { + return c.NotifyCallback(ctx, t, r, correlationID, func(ctx context.Context, event UpdateEvent) { + select { + case ch <- event: + case <-ctx.Done(): + } + }) +} + +// NotifyCallback allows you to receive notifications about changes to a cache +// result in the same way as Notify, but accepts a callback function instead of +// a channel. +func (c *Cache) NotifyCallback( + ctx context.Context, + t string, + r Request, + correlationID string, + cb Callback, ) error { c.typesLock.RLock() tEntry, ok := c.types[t] @@ -65,7 +86,7 @@ func (c *Cache) Notify( } if tEntry.Opts.SupportsBlocking { - go c.notifyBlockingQuery(ctx, newGetOptions(tEntry, r), correlationID, ch) + go c.notifyBlockingQuery(ctx, newGetOptions(tEntry, r), correlationID, cb) return nil } @@ -73,11 +94,11 @@ func (c *Cache) Notify( if info.MaxAge == 0 { return fmt.Errorf("Cannot use Notify for polling cache types without specifying the MaxAge") } - go c.notifyPollingQuery(ctx, newGetOptions(tEntry, r), correlationID, ch) + go c.notifyPollingQuery(ctx, newGetOptions(tEntry, r), correlationID, cb) return nil } -func (c *Cache) notifyBlockingQuery(ctx context.Context, r getOptions, correlationID string, ch chan<- UpdateEvent) { +func (c *Cache) notifyBlockingQuery(ctx context.Context, r getOptions, correlationID string, cb Callback) { // Always start at 0 index to deliver the initial (possibly currently cached // value). index := uint64(0) @@ -101,12 +122,7 @@ func (c *Cache) notifyBlockingQuery(ctx context.Context, r getOptions, correlati // Check the index of the value returned in the cache entry to be sure it // changed if index == 0 || index < meta.Index { - u := UpdateEvent{correlationID, res, meta, err} - select { - case ch <- u: - case <-ctx.Done(): - return - } + cb(ctx, UpdateEvent{correlationID, res, meta, err}) // Update index for next request index = meta.Index @@ -143,7 +159,7 @@ func (c *Cache) notifyBlockingQuery(ctx context.Context, r getOptions, correlati } } -func (c *Cache) notifyPollingQuery(ctx context.Context, r getOptions, correlationID string, ch chan<- UpdateEvent) { +func (c *Cache) notifyPollingQuery(ctx context.Context, r getOptions, correlationID string, cb Callback) { index := uint64(0) failures := uint(0) @@ -166,12 +182,7 @@ func (c *Cache) notifyPollingQuery(ctx context.Context, r getOptions, correlatio // Check for a change in the value or an index change if index < meta.Index || !reflect.DeepEqual(lastValue, res) { - u := UpdateEvent{correlationID, res, meta, err} - select { - case ch <- u: - case <-ctx.Done(): - return - } + cb(ctx, UpdateEvent{correlationID, res, meta, err}) // Update index and lastValue lastValue = res diff --git a/agent/catalog_endpoint.go b/agent/catalog_endpoint.go index b873b8b5ef..9623da6af4 100644 --- a/agent/catalog_endpoint.go +++ b/agent/catalog_endpoint.go @@ -3,6 +3,7 @@ package agent import ( "fmt" "net/http" + "strings" metrics "github.com/armon/go-metrics" "github.com/armon/go-metrics/prometheus" @@ -356,12 +357,12 @@ func (s *HTTPHandlers) catalogServiceNodes(resp http.ResponseWriter, req *http.R args.TagFilter = true } - // Pull out the service name - var err error - args.ServiceName, err = getPathSuffixUnescaped(req.URL.Path, pathPrefix) - if err != nil { - return nil, err + if _, ok := params["merge-central-config"]; ok { + args.MergeCentralConfig = true } + + // Pull out the service name + args.ServiceName = strings.TrimPrefix(req.URL.Path, pathPrefix) if args.ServiceName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing service name"} } @@ -432,11 +433,7 @@ func (s *HTTPHandlers) CatalogNodeServices(resp http.ResponseWriter, req *http.R } // Pull out the node name - var err error - args.Node, err = getPathSuffixUnescaped(req.URL.Path, "/v1/catalog/node/") - if err != nil { - return nil, err - } + args.Node = strings.TrimPrefix(req.URL.Path, "/v1/catalog/node/") if args.Node == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing node name"} } @@ -497,15 +494,15 @@ func (s *HTTPHandlers) CatalogNodeServiceList(resp http.ResponseWriter, req *htt } // Pull out the node name - var err error - args.Node, err = getPathSuffixUnescaped(req.URL.Path, "/v1/catalog/node-services/") - if err != nil { - return nil, err - } + args.Node = strings.TrimPrefix(req.URL.Path, "/v1/catalog/node-services/") if args.Node == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing node name"} } + if _, ok := req.URL.Query()["merge-central-config"]; ok { + args.MergeCentralConfig = true + } + // Make the RPC request var out structs.IndexedNodeServiceList defer setMeta(resp, &out.QueryMeta) @@ -548,11 +545,7 @@ func (s *HTTPHandlers) CatalogGatewayServices(resp http.ResponseWriter, req *htt } // Pull out the gateway's service name - var err error - args.ServiceName, err = getPathSuffixUnescaped(req.URL.Path, "/v1/catalog/gateway-services/") - if err != nil { - return nil, err - } + args.ServiceName = strings.TrimPrefix(req.URL.Path, "/v1/catalog/gateway-services/") if args.ServiceName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing gateway name"} } diff --git a/agent/catalog_endpoint_test.go b/agent/catalog_endpoint_test.go index f1e08c0761..d437d6e4d1 100644 --- a/agent/catalog_endpoint_test.go +++ b/agent/catalog_endpoint_test.go @@ -8,6 +8,7 @@ import ( "testing" "time" + "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/api" "github.com/hashicorp/serf/coordinate" @@ -602,6 +603,63 @@ func TestCatalogRegister_checkRegistration(t *testing.T) { }) } +func TestCatalogRegister_checkRegistration_UDP(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + a := NewTestAgent(t, "") + defer a.Shutdown() + + // Register node with a service and check + check := structs.HealthCheck{ + Node: "foo", + CheckID: "foo-check", + Name: "foo check", + ServiceID: "api", + Definition: structs.HealthCheckDefinition{ + UDP: "localhost:8888", + Interval: 5 * time.Second, + }, + } + + args := &structs.RegisterRequest{ + Datacenter: "dc1", + Node: "foo", + Address: "127.0.0.1", + Service: &structs.NodeService{ + Service: "api", + }, + Check: &check, + } + + var out struct{} + if err := a.RPC("Catalog.Register", args, &out); err != nil { + t.Fatalf("err: %v", err) + } + + retry.Run(t, func(r *retry.R) { + req, _ := http.NewRequest("GET", "/v1/health/checks/api", nil) + resp := httptest.NewRecorder() + obj, err := a.srv.HealthServiceChecks(resp, req) + if err != nil { + r.Fatalf("err: %v", err) + } + + checks := obj.(structs.HealthChecks) + if len(checks) != 1 { + r.Fatalf("expected 1 check, got: %d", len(checks)) + } + if checks[0].CheckID != check.CheckID { + r.Fatalf("expected check id %s, got %s", check.Type, checks[0].Type) + } + if checks[0].Type != "udp" { + r.Fatalf("expected check type udp, got %s", checks[0].Type) + } + }) +} + func TestCatalogServiceNodes(t *testing.T) { if testing.Short() { t.Skip("too slow for testing.Short") @@ -1052,6 +1110,249 @@ func TestCatalogServiceNodes_ConnectProxy(t *testing.T) { assert.Equal(t, args.Service.Proxy, nodes[0].ServiceProxy) } +func registerService(t *testing.T, a *TestAgent) (registerServiceReq *structs.RegisterRequest) { + t.Helper() + entMeta := acl.DefaultEnterpriseMeta() + registerServiceReq = structs.TestRegisterRequestProxy(t) + registerServiceReq.EnterpriseMeta = *entMeta + registerServiceReq.Service.EnterpriseMeta = *entMeta + registerServiceReq.Service.Proxy.Upstreams = structs.TestAddDefaultsToUpstreams(t, registerServiceReq.Service.Proxy.Upstreams, *entMeta) + registerServiceReq.Check = &structs.HealthCheck{ + Node: registerServiceReq.Node, + Name: "check1", + } + + var out struct{} + require.NoError(t, a.RPC("Catalog.Register", registerServiceReq, &out)) + + return +} + +func registerProxyDefaults(t *testing.T, a *TestAgent) (proxyGlobalEntry structs.ProxyConfigEntry) { + t.Helper() + // Register proxy-defaults + proxyGlobalEntry = structs.ProxyConfigEntry{ + Kind: structs.ProxyDefaults, + Name: structs.ProxyConfigGlobal, + Mode: structs.ProxyModeDirect, + Config: map[string]interface{}{ + "local_connect_timeout_ms": uint64(1000), + "handshake_timeout_ms": uint64(1000), + }, + EnterpriseMeta: *acl.DefaultEnterpriseMeta(), + } + proxyDefaultsConfigEntryReq := &structs.ConfigEntryRequest{ + Op: structs.ConfigEntryUpsert, + Datacenter: "dc1", + Entry: &proxyGlobalEntry, + } + var proxyDefaultsConfigEntryResp bool + require.NoError(t, a.RPC("ConfigEntry.Apply", &proxyDefaultsConfigEntryReq, &proxyDefaultsConfigEntryResp)) + return +} + +func registerServiceDefaults(t *testing.T, a *TestAgent, serviceName string) (serviceDefaultsConfigEntry structs.ServiceConfigEntry) { + t.Helper() + limits := 512 + serviceDefaultsConfigEntry = structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: serviceName, + Mode: structs.ProxyModeTransparent, + UpstreamConfig: &structs.UpstreamConfiguration{ + Defaults: &structs.UpstreamConfig{ + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeLocal, + }, + Limits: &structs.UpstreamLimits{ + MaxConnections: &limits, + }, + }, + }, + EnterpriseMeta: *acl.DefaultEnterpriseMeta(), + } + serviceDefaultsConfigEntryReq := &structs.ConfigEntryRequest{ + Op: structs.ConfigEntryUpsert, + Datacenter: "dc1", + Entry: &serviceDefaultsConfigEntry, + } + var serviceDefaultsConfigEntryResp bool + require.NoError(t, a.RPC("ConfigEntry.Apply", &serviceDefaultsConfigEntryReq, &serviceDefaultsConfigEntryResp)) + return +} + +func validateMergeCentralConfigResponse(t *testing.T, v *structs.ServiceNode, + registerServiceReq *structs.RegisterRequest, + proxyGlobalEntry structs.ProxyConfigEntry, + serviceDefaultsConfigEntry structs.ServiceConfigEntry) { + + t.Helper() + require.Equal(t, registerServiceReq.Service.Service, v.ServiceName) + // validate proxy global defaults are resolved in the merged service config + require.Equal(t, proxyGlobalEntry.Config, v.ServiceProxy.Config) + // validate service defaults override proxy-defaults/global + require.NotEqual(t, proxyGlobalEntry.Mode, v.ServiceProxy.Mode) + require.Equal(t, serviceDefaultsConfigEntry.Mode, v.ServiceProxy.Mode) + // validate service defaults are resolved in the merged service config + // expected number of upstreams = (number of upstreams defined in the register request proxy config + + // 1 centrally configured default from service defaults) + require.Equal(t, len(registerServiceReq.Service.Proxy.Upstreams)+1, len(v.ServiceProxy.Upstreams)) + for _, up := range v.ServiceProxy.Upstreams { + if up.DestinationType != "" && up.DestinationType != structs.UpstreamDestTypeService { + continue + } + require.Contains(t, up.Config, "limits") + upstreamLimits := up.Config["limits"].(*structs.UpstreamLimits) + require.Equal(t, serviceDefaultsConfigEntry.UpstreamConfig.Defaults.Limits.MaxConnections, upstreamLimits.MaxConnections) + require.Equal(t, serviceDefaultsConfigEntry.UpstreamConfig.Defaults.MeshGateway.Mode, up.MeshGateway.Mode) + } +} + +func TestListServiceNodes_MergeCentralConfig(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + + a := NewTestAgent(t, "") + defer a.Shutdown() + testrpc.WaitForLeader(t, a.RPC, "dc1") + + // Register the service + registerServiceReq := registerService(t, a) + // Register proxy-defaults + proxyGlobalEntry := registerProxyDefaults(t, a) + // Register service-defaults + serviceDefaultsConfigEntry := registerServiceDefaults(t, a, registerServiceReq.Service.Proxy.DestinationServiceName) + + type testCase struct { + testCaseName string + serviceName string + connect bool + } + + run := func(t *testing.T, tc testCase) { + url := fmt.Sprintf("/v1/catalog/service/%s?merge-central-config", tc.serviceName) + if tc.connect { + url = fmt.Sprintf("/v1/catalog/connect/%s?merge-central-config", tc.serviceName) + } + req, _ := http.NewRequest("GET", url, nil) + resp := httptest.NewRecorder() + var obj interface{} + var err error + if tc.connect { + obj, err = a.srv.CatalogConnectServiceNodes(resp, req) + } else { + obj, err = a.srv.CatalogServiceNodes(resp, req) + } + + require.NoError(t, err) + assertIndex(t, resp) + + serviceNodes := obj.(structs.ServiceNodes) + + // validate response + require.Len(t, serviceNodes, 1) + v := serviceNodes[0] + + validateMergeCentralConfigResponse(t, v, registerServiceReq, proxyGlobalEntry, serviceDefaultsConfigEntry) + } + testCases := []testCase{ + { + testCaseName: "List service instances with merge-central-config", + serviceName: registerServiceReq.Service.Service, + }, + { + testCaseName: "List connect capable service instances with merge-central-config", + serviceName: registerServiceReq.Service.Proxy.DestinationServiceName, + connect: true, + }, + } + for _, tc := range testCases { + t.Run(tc.testCaseName, func(t *testing.T) { + run(t, tc) + }) + } +} + +func TestCatalogServiceNodes_MergeCentralConfigBlocking(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + a := NewTestAgent(t, "") + defer a.Shutdown() + + testrpc.WaitForLeader(t, a.RPC, "dc1") + + // Register the service + registerServiceReq := registerService(t, a) + // Register proxy-defaults + proxyGlobalEntry := registerProxyDefaults(t, a) + + // Run the query + rpcReq := structs.ServiceSpecificRequest{ + Datacenter: "dc1", + ServiceName: registerServiceReq.Service.Service, + MergeCentralConfig: true, + } + var rpcResp structs.IndexedServiceNodes + require.NoError(t, a.RPC("Catalog.ServiceNodes", &rpcReq, &rpcResp)) + + require.Len(t, rpcResp.ServiceNodes, 1) + serviceNode := rpcResp.ServiceNodes[0] + require.Equal(t, registerServiceReq.Service.Service, serviceNode.ServiceName) + // validate proxy global defaults are resolved in the merged service config + require.Equal(t, proxyGlobalEntry.Config, serviceNode.ServiceProxy.Config) + require.Equal(t, proxyGlobalEntry.Mode, serviceNode.ServiceProxy.Mode) + + // Async cause a change - register service defaults + waitIndex := rpcResp.Index + start := time.Now() + var serviceDefaultsConfigEntry structs.ServiceConfigEntry + go func() { + time.Sleep(100 * time.Millisecond) + // Register service-defaults + serviceDefaultsConfigEntry = registerServiceDefaults(t, a, registerServiceReq.Service.Proxy.DestinationServiceName) + }() + + const waitDuration = 3 * time.Second +RUN_BLOCKING_QUERY: + url := fmt.Sprintf("/v1/catalog/service/%s?merge-central-config&wait=%s&index=%d", + registerServiceReq.Service.Service, waitDuration.String(), waitIndex) + req, _ := http.NewRequest("GET", url, nil) + resp := httptest.NewRecorder() + obj, err := a.srv.CatalogServiceNodes(resp, req) + + require.NoError(t, err) + assertIndex(t, resp) + + elapsed := time.Since(start) + idx := getIndex(t, resp) + if idx < waitIndex { + t.Fatalf("bad index returned: %v", idx) + } else if idx == waitIndex { + if elapsed > waitDuration { + // This should prevent the loop from running longer than the waitDuration + t.Fatalf("too slow: %v", elapsed) + } + goto RUN_BLOCKING_QUERY + } + // Should block at least 100ms before getting the changed results + if elapsed < 100*time.Millisecond { + t.Fatalf("too fast: %v", elapsed) + } + + serviceNodes := obj.(structs.ServiceNodes) + + // validate response + require.Len(t, serviceNodes, 1) + v := serviceNodes[0] + + validateMergeCentralConfigResponse(t, v, registerServiceReq, proxyGlobalEntry, serviceDefaultsConfigEntry) +} + // Test that the Connect-compatible endpoints can be queried for a // service via /v1/catalog/connect/:service. func TestCatalogConnectServiceNodes_good(t *testing.T) { @@ -1228,6 +1529,111 @@ func TestCatalogNodeServiceList(t *testing.T) { require.Equal(t, args.Service.Proxy, proxySvc.Proxy) } +func TestCatalogNodeServiceList_MergeCentralConfig(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + + a := NewTestAgent(t, "") + defer a.Shutdown() + testrpc.WaitForLeader(t, a.RPC, "dc1") + + // Register the service + registerServiceReq := registerService(t, a) + // Register proxy-defaults + proxyGlobalEntry := registerProxyDefaults(t, a) + // Register service-defaults + serviceDefaultsConfigEntry := registerServiceDefaults(t, a, registerServiceReq.Service.Proxy.DestinationServiceName) + + url := fmt.Sprintf("/v1/catalog/node-services/%s?merge-central-config", registerServiceReq.Node) + req, _ := http.NewRequest("GET", url, nil) + resp := httptest.NewRecorder() + obj, err := a.srv.CatalogNodeServiceList(resp, req) + require.NoError(t, err) + assertIndex(t, resp) + + nodeServices := obj.(*structs.NodeServiceList) + // validate response + require.Len(t, nodeServices.Services, 1) + validateMergeCentralConfigResponse(t, nodeServices.Services[0].ToServiceNode(nodeServices.Node.Node), registerServiceReq, proxyGlobalEntry, serviceDefaultsConfigEntry) +} + +func TestCatalogNodeServiceList_MergeCentralConfigBlocking(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + + a := NewTestAgent(t, "") + defer a.Shutdown() + testrpc.WaitForLeader(t, a.RPC, "dc1") + + // Register the service + registerServiceReq := registerService(t, a) + // Register proxy-defaults + proxyGlobalEntry := registerProxyDefaults(t, a) + + // Run the query + rpcReq := structs.NodeSpecificRequest{ + Datacenter: "dc1", + Node: registerServiceReq.Node, + MergeCentralConfig: true, + } + var rpcResp structs.IndexedNodeServiceList + require.NoError(t, a.RPC("Catalog.NodeServiceList", &rpcReq, &rpcResp)) + require.Len(t, rpcResp.NodeServices.Services, 1) + nodeService := rpcResp.NodeServices.Services[0] + require.Equal(t, registerServiceReq.Service.Service, nodeService.Service) + // validate proxy global defaults are resolved in the merged service config + require.Equal(t, proxyGlobalEntry.Config, nodeService.Proxy.Config) + require.Equal(t, proxyGlobalEntry.Mode, nodeService.Proxy.Mode) + + // Async cause a change - register service defaults + waitIndex := rpcResp.Index + start := time.Now() + var serviceDefaultsConfigEntry structs.ServiceConfigEntry + go func() { + time.Sleep(100 * time.Millisecond) + // Register service-defaults + serviceDefaultsConfigEntry = registerServiceDefaults(t, a, registerServiceReq.Service.Proxy.DestinationServiceName) + }() + + const waitDuration = 3 * time.Second +RUN_BLOCKING_QUERY: + + url := fmt.Sprintf("/v1/catalog/node-services/%s?merge-central-config&wait=%s&index=%d", + registerServiceReq.Node, waitDuration.String(), waitIndex) + req, _ := http.NewRequest("GET", url, nil) + resp := httptest.NewRecorder() + obj, err := a.srv.CatalogNodeServiceList(resp, req) + require.NoError(t, err) + assertIndex(t, resp) + + elapsed := time.Since(start) + idx := getIndex(t, resp) + if idx < waitIndex { + t.Fatalf("bad index returned: %v", idx) + } else if idx == waitIndex { + if elapsed > waitDuration { + // This should prevent the loop from running longer than the waitDuration + t.Fatalf("too slow: %v", elapsed) + } + goto RUN_BLOCKING_QUERY + } + // Should block at least 100ms before getting the changed results + if elapsed < 100*time.Millisecond { + t.Fatalf("too fast: %v", elapsed) + } + + nodeServices := obj.(*structs.NodeServiceList) + // validate response + require.Len(t, nodeServices.Services, 1) + validateMergeCentralConfigResponse(t, nodeServices.Services[0].ToServiceNode(nodeServices.Node.Node), registerServiceReq, proxyGlobalEntry, serviceDefaultsConfigEntry) +} + func TestCatalogNodeServices_Filter(t *testing.T) { if testing.Short() { t.Skip("too slow for testing.Short") diff --git a/agent/checks/check.go b/agent/checks/check.go index 3e3ce44f89..3712b31b82 100644 --- a/agent/checks/check.go +++ b/agent/checks/check.go @@ -1,6 +1,7 @@ package checks import ( + "bufio" "context" "crypto/tls" "fmt" @@ -703,6 +704,135 @@ func (c *CheckTCP) check() { c.StatusHandler.updateCheck(c.CheckID, api.HealthPassing, fmt.Sprintf("TCP connect %s: Success", c.TCP)) } +// CheckUDP is used to periodically send a UDP datagram to determine the health of a given check. +// The check is passing if the connection succeeds, the response is bytes.Equal to the bytes passed +// in or if the error returned is a timeout error +// The check is critical if: the connection succeeds but the response is not equal to the bytes passed in, +// the connection succeeds but the error returned is not a timeout error or the connection fails +type CheckUDP struct { + CheckID structs.CheckID + ServiceID structs.ServiceID + UDP string + Message string + Interval time.Duration + Timeout time.Duration + Logger hclog.Logger + StatusHandler *StatusHandler + + dialer *net.Dialer + stop bool + stopCh chan struct{} + stopLock sync.Mutex +} + +func (c *CheckUDP) Start() { + c.stopLock.Lock() + defer c.stopLock.Unlock() + + if c.dialer == nil { + // Create the socket dialer + c.dialer = &net.Dialer{ + Timeout: 10 * time.Second, + } + if c.Timeout > 0 { + c.dialer.Timeout = c.Timeout + } + } + + c.stop = false + c.stopCh = make(chan struct{}) + go c.run() +} + +func (c *CheckUDP) Stop() { + c.stopLock.Lock() + defer c.stopLock.Unlock() + if !c.stop { + c.stop = true + close(c.stopCh) + } +} + +func (c *CheckUDP) run() { + // Get the randomized initial pause time + initialPauseTime := lib.RandomStagger(c.Interval) + next := time.After(initialPauseTime) + for { + select { + case <-next: + c.check() + next = time.After(c.Interval) + case <-c.stopCh: + return + } + } + +} + +func (c *CheckUDP) check() { + + conn, err := c.dialer.Dial(`udp`, c.UDP) + + if err != nil { + if e, ok := err.(net.Error); ok && e.Timeout() { + c.StatusHandler.updateCheck(c.CheckID, api.HealthPassing, fmt.Sprintf("UDP connect %s: Success", c.UDP)) + return + } else { + c.Logger.Warn("Check socket connection failed", + "check", c.CheckID.String(), + "error", err, + ) + c.StatusHandler.updateCheck(c.CheckID, api.HealthCritical, err.Error()) + return + } + } + defer conn.Close() + + n, err := fmt.Fprintf(conn, c.Message) + if err != nil { + c.Logger.Warn("Check socket write failed", + "check", c.CheckID.String(), + "error", err, + ) + c.StatusHandler.updateCheck(c.CheckID, api.HealthCritical, err.Error()) + return + } + + if n != len(c.Message) { + c.Logger.Warn("Check socket short write", + "check", c.CheckID.String(), + "error", err, + ) + c.StatusHandler.updateCheck(c.CheckID, api.HealthCritical, err.Error()) + return + } + + if err != nil { + c.Logger.Warn("Check socket write failed", + "check", c.CheckID.String(), + "error", err, + ) + c.StatusHandler.updateCheck(c.CheckID, api.HealthCritical, err.Error()) + return + } + _, err = bufio.NewReader(conn).Read(make([]byte, 1)) + if err != nil { + if strings.Contains(err.Error(), "i/o timeout") { + c.StatusHandler.updateCheck(c.CheckID, api.HealthPassing, fmt.Sprintf("UDP connect %s: Success", c.UDP)) + return + } else { + c.Logger.Warn("Check socket read failed", + "check", c.CheckID.String(), + "error", err, + ) + c.StatusHandler.updateCheck(c.CheckID, api.HealthCritical, err.Error()) + return + } + } else if err == nil { + c.StatusHandler.updateCheck(c.CheckID, api.HealthPassing, fmt.Sprintf("UDP connect %s: Success", c.UDP)) + } +} + // CheckDocker is used to periodically invoke a script to // determine the health of an application running inside a // Docker Container. We assume that the script is compatible diff --git a/agent/checks/check_test.go b/agent/checks/check_test.go index caddee4245..b8f16d890f 100644 --- a/agent/checks/check_test.go +++ b/agent/checks/check_test.go @@ -2,20 +2,25 @@ package checks import ( "bytes" + "context" "fmt" + "log" "net" "net/http" "net/http/httptest" "os" "reflect" "regexp" + "strconv" "strings" + "sync" "testing" "time" "github.com/hashicorp/consul/agent/mock" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/sdk/freeport" "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/go-uuid" @@ -1141,6 +1146,152 @@ func TestCheckTCPPassing(t *testing.T) { tcpServer.Close() } +func sendResponse(conn *net.UDPConn, addr *net.UDPAddr) { + _, err := conn.WriteToUDP([]byte("healthy"), addr) + if err != nil { + fmt.Printf("Couldn't send response %v", err) + } +} + +func mockUDPServer(ctx context.Context, network string, port int) { + + b := make([]byte, 1024) + addr := fmt.Sprintf(`127.0.0.1:%d`, port) + + udpAddr, err := net.ResolveUDPAddr(network, addr) + if err != nil { + log.Fatal("Error resolving UDP address: ", err) + } + + ser, err := net.ListenUDP("udp", udpAddr) + if err != nil { + log.Fatal("Error listening UDP: ", err) + } + defer ser.Close() + + chClose := make(chan interface{}) + wg := sync.WaitGroup{} + wg.Add(1) + + go func() { + for { + log.Print("Waiting for UDP message") + _, remoteaddr, err := ser.ReadFromUDP(b) + log.Printf("Read a message from %v %s \n", remoteaddr, b) + if err != nil { + log.Fatalf("Error reading from UDP %s", err.Error()) + } + sendResponse(ser, remoteaddr) + select { + case <-chClose: + fmt.Println("cancelled") + wg.Done() + return + default: + } + } + }() + + select { + case <-ctx.Done(): + fmt.Println("cancelled") + close(chClose) + } + wg.Wait() + return +} + +func expectUDPStatus(t *testing.T, udp string, status string) { + notif := mock.NewNotify() + logger := testutil.Logger(t) + statusHandler := NewStatusHandler(notif, logger, 0, 0, 0) + cid := structs.NewCheckID("foo", nil) + + check := &CheckUDP{ + CheckID: cid, + UDP: udp, + Interval: 10 * time.Millisecond, + Logger: logger, + StatusHandler: statusHandler, + } + check.Start() + defer check.Stop() + retry.Run(t, func(r *retry.R) { + if got, want := notif.Updates(cid), 2; got < want { + r.Fatalf("got %d updates want at least %d", got, want) + } + if got, want := notif.State(cid), status; got != want { + r.Fatalf("got state %q want %q", got, want) + } + }) +} + +func expectUDPTimeout(t *testing.T, udp string, status string) { + notif := mock.NewNotify() + logger := testutil.Logger(t) + statusHandler := NewStatusHandler(notif, logger, 0, 0, 0) + cid := structs.NewCheckID("foo", nil) + + check := &CheckUDP{ + CheckID: cid, + UDP: udp, + Interval: 10 * time.Millisecond, + Timeout: 5 * time.Nanosecond, + Logger: logger, + StatusHandler: statusHandler, + } + check.Start() + defer check.Stop() + retry.Run(t, func(r *retry.R) { + if got, want := notif.Updates(cid), 2; got < want { + r.Fatalf("got %d updates want at least %d", got, want) + } + if got, want := notif.State(cid), status; got != want { + r.Fatalf("got state %q want %q", got, want) + } + }) +} + +func TestCheckUDPTimeoutPassing(t *testing.T) { + t.Parallel() + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + port := freeport.GetOne(t) + serverUrl := "127.0.0.1:" + strconv.Itoa(port) + + go mockUDPServer(ctx, `udp`, port) + expectUDPTimeout(t, serverUrl, api.HealthPassing) // Should pass since timeout is handled as success, from specification +} +func TestCheckUDPCritical(t *testing.T) { + t.Parallel() + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + port := freeport.GetOne(t) + notExistentPort := freeport.GetOne(t) + serverUrl := "127.0.0.1:" + strconv.Itoa(notExistentPort) + + go mockUDPServer(ctx, `udp`, port) + + expectUDPStatus(t, serverUrl, api.HealthCritical) // Should be unhealthy since we never connect to mocked udp server. +} + +func TestCheckUDPPassing(t *testing.T) { + t.Parallel() + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + port := freeport.GetOne(t) + serverUrl := "127.0.0.1:" + strconv.Itoa(port) + + go mockUDPServer(ctx, `udp`, port) + expectUDPStatus(t, serverUrl, api.HealthPassing) +} + func TestCheckH2PING(t *testing.T) { t.Parallel() diff --git a/agent/config/builder.go b/agent/config/builder.go index 76b41b113b..39c15c5d14 100644 --- a/agent/config/builder.go +++ b/agent/config/builder.go @@ -804,6 +804,8 @@ func (b *builder) build() (rt RuntimeConfig, err error) { Version: stringVal(c.Version), VersionPrerelease: stringVal(c.VersionPrerelease), VersionMetadata: stringVal(c.VersionMetadata), + // What is a sensible default for BuildDate? + BuildDate: timeValWithDefault(c.BuildDate, time.Date(1970, 1, 00, 00, 00, 01, 0, time.UTC)), // consul configuration ConsulCoordinateUpdateBatchSize: intVal(c.Consul.Coordinate.UpdateBatchSize), @@ -917,6 +919,7 @@ func (b *builder) build() (rt RuntimeConfig, err error) { DisableHostname: boolVal(c.Telemetry.DisableHostname), DogstatsdAddr: stringVal(c.Telemetry.DogstatsdAddr), DogstatsdTags: c.Telemetry.DogstatsdTags, + RetryFailedConfiguration: boolVal(c.Telemetry.RetryFailedConfiguration), FilterDefault: boolVal(c.Telemetry.FilterDefault), AllowedPrefixes: telemetryAllowedPrefixes, BlockedPrefixes: telemetryBlockedPrefixes, @@ -1945,6 +1948,13 @@ func stringVal(v *string) string { return *v } +func timeValWithDefault(v *time.Time, defaultVal time.Time) time.Time { + if v == nil { + return defaultVal + } + return *v +} + func float64ValWithDefault(v *float64, defaultVal float64) float64 { if v == nil { return defaultVal @@ -2522,7 +2532,7 @@ func (b *builder) buildTLSConfig(rt RuntimeConfig, t TLS) (tlsutil.Config, error // TLS is only enabled on the gRPC listener if there's an HTTPS port configured // for historic and backwards-compatibility reasons. - if rt.HTTPSPort <= 0 && (t.GRPC != TLSProtocolConfig{}) { + if rt.HTTPSPort <= 0 && (t.GRPC != TLSProtocolConfig{} && t.GRPCModifiedByDeprecatedConfig == nil) { b.warn("tls.grpc was provided but TLS will NOT be enabled on the gRPC listener without an HTTPS listener configured (e.g. via ports.https)") } diff --git a/agent/config/config.go b/agent/config/config.go index affcef6010..adef2e8772 100644 --- a/agent/config/config.go +++ b/agent/config/config.go @@ -3,6 +3,7 @@ package config import ( "encoding/json" "fmt" + "time" "github.com/hashicorp/consul/agent/consul" @@ -261,18 +262,19 @@ type Config struct { SnapshotAgent map[string]interface{} `mapstructure:"snapshot_agent"` // non-user configurable values - AEInterval *string `mapstructure:"ae_interval"` - CheckDeregisterIntervalMin *string `mapstructure:"check_deregister_interval_min"` - CheckReapInterval *string `mapstructure:"check_reap_interval"` - Consul Consul `mapstructure:"consul"` - Revision *string `mapstructure:"revision"` - SegmentLimit *int `mapstructure:"segment_limit"` - SegmentNameLimit *int `mapstructure:"segment_name_limit"` - SyncCoordinateIntervalMin *string `mapstructure:"sync_coordinate_interval_min"` - SyncCoordinateRateTarget *float64 `mapstructure:"sync_coordinate_rate_target"` - Version *string `mapstructure:"version"` - VersionPrerelease *string `mapstructure:"version_prerelease"` - VersionMetadata *string `mapstructure:"version_metadata"` + AEInterval *string `mapstructure:"ae_interval"` + CheckDeregisterIntervalMin *string `mapstructure:"check_deregister_interval_min"` + CheckReapInterval *string `mapstructure:"check_reap_interval"` + Consul Consul `mapstructure:"consul"` + Revision *string `mapstructure:"revision"` + SegmentLimit *int `mapstructure:"segment_limit"` + SegmentNameLimit *int `mapstructure:"segment_name_limit"` + SyncCoordinateIntervalMin *string `mapstructure:"sync_coordinate_interval_min"` + SyncCoordinateRateTarget *float64 `mapstructure:"sync_coordinate_rate_target"` + Version *string `mapstructure:"version"` + VersionPrerelease *string `mapstructure:"version_prerelease"` + VersionMetadata *string `mapstructure:"version_metadata"` + BuildDate *time.Time `mapstructure:"build_date"` // Enterprise Only Audit Audit `mapstructure:"audit"` @@ -403,6 +405,7 @@ type CheckDefinition struct { DisableRedirects *bool `mapstructure:"disable_redirects"` OutputMaxSize *int `mapstructure:"output_max_size"` TCP *string `mapstructure:"tcp"` + UDP *string `mapstructure:"udp"` Interval *string `mapstructure:"interval"` DockerContainerID *string `mapstructure:"docker_container_id" alias:"dockercontainerid"` Shell *string `mapstructure:"shell"` @@ -674,6 +677,7 @@ type Telemetry struct { DisableHostname *bool `mapstructure:"disable_hostname"` DogstatsdAddr *string `mapstructure:"dogstatsd_addr"` DogstatsdTags []string `mapstructure:"dogstatsd_tags"` + RetryFailedConfiguration *bool `mapstructure:"retry_failed_connection"` FilterDefault *bool `mapstructure:"filter_default"` PrefixFilter []string `mapstructure:"prefix_filter"` MetricsPrefix *string `mapstructure:"metrics_prefix"` @@ -870,4 +874,17 @@ type TLS struct { InternalRPC TLSProtocolConfig `mapstructure:"internal_rpc"` HTTPS TLSProtocolConfig `mapstructure:"https"` GRPC TLSProtocolConfig `mapstructure:"grpc"` + + // GRPCModifiedByDeprecatedConfig is a flag used to indicate that GRPC was + // modified by the deprecated field mapping (as apposed to a user-provided + // a grpc stanza). This prevents us from emitting a warning about an + // ineffectual grpc stanza when we modify GRPC to honor the legacy behaviour + // that setting `verify_incoming = true` at the top-level *does not* enable + // client certificate verification on the gRPC port. + // + // See: applyDeprecatedTLSConfig. + // + // Note: we use a *struct{} here because a simple bool isn't supported by our + // config merging logic. + GRPCModifiedByDeprecatedConfig *struct{} `mapstructure:"-"` } diff --git a/agent/config/default.go b/agent/config/default.go index 9355ec7ff0..951d9f1263 100644 --- a/agent/config/default.go +++ b/agent/config/default.go @@ -2,6 +2,7 @@ package config import ( "strconv" + "time" "github.com/hashicorp/raft" @@ -128,6 +129,7 @@ func DefaultSource() Source { metrics_prefix = "consul" filter_default = true prefix_filter = [] + retry_failed_connection = true } raft_snapshot_threshold = ` + strconv.Itoa(int(cfg.RaftConfig.SnapshotThreshold)) + ` raft_snapshot_interval = "` + cfg.RaftConfig.SnapshotInterval.String() + `" @@ -196,8 +198,8 @@ func NonUserSource() Source { # SegmentNameLimit is the maximum segment name length. segment_name_limit = 64 - - connect = { + + connect = { # 0s causes the value to be ignored and operate without capping # the max time before leaf certs can be generated after a roots change. test_ca_leaf_root_change_spread = "0s" @@ -209,7 +211,7 @@ func NonUserSource() Source { // versionSource creates a config source for the version parameters. // This should be merged in the tail since these values are not // user configurable. -func versionSource(rev, ver, verPre, meta string) Source { +func versionSource(rev, ver, verPre, meta string, buildDate time.Time) Source { return LiteralSource{ Name: "version", Config: Config{ @@ -217,6 +219,7 @@ func versionSource(rev, ver, verPre, meta string) Source { Version: &ver, VersionPrerelease: &verPre, VersionMetadata: &meta, + BuildDate: &buildDate, }, } } @@ -224,7 +227,8 @@ func versionSource(rev, ver, verPre, meta string) Source { // defaultVersionSource returns the version config source for the embedded // version numbers. func defaultVersionSource() Source { - return versionSource(version.GitCommit, version.Version, version.VersionPrerelease, version.VersionMetadata) + buildDate, _ := time.Parse(time.RFC3339, version.BuildDate) // This has been checked elsewhere + return versionSource(version.GitCommit, version.Version, version.VersionPrerelease, version.VersionMetadata, buildDate) } // DefaultConsulSource returns the default configuration for the consul agent. diff --git a/agent/config/deprecated.go b/agent/config/deprecated.go index b27150b518..ab43657086 100644 --- a/agent/config/deprecated.go +++ b/agent/config/deprecated.go @@ -180,9 +180,11 @@ func applyDeprecatedConfig(d *decodeTarget) (Config, []string) { func applyDeprecatedTLSConfig(dep DeprecatedConfig, cfg *Config) []string { var warns []string - defaults := &cfg.TLS.Defaults - internalRPC := &cfg.TLS.InternalRPC - https := &cfg.TLS.HTTPS + tls := &cfg.TLS + defaults := &tls.Defaults + internalRPC := &tls.InternalRPC + https := &tls.HTTPS + grpc := &tls.GRPC if v := dep.CAFile; v != nil { if defaults.CAFile == nil { @@ -239,6 +241,16 @@ func applyDeprecatedTLSConfig(dep DeprecatedConfig, cfg *Config) []string { if defaults.VerifyIncoming == nil { defaults.VerifyIncoming = v } + + // Prior to Consul 1.12 it was not possible to enable client certificate + // verification on the gRPC port. We must override GRPC.VerifyIncoming to + // prevent it from inheriting Defaults.VerifyIncoming when we've mapped the + // deprecated top-level verify_incoming field. + if grpc.VerifyIncoming == nil { + grpc.VerifyIncoming = pBool(false) + tls.GRPCModifiedByDeprecatedConfig = &struct{}{} + } + warns = append(warns, deprecationWarning("verify_incoming", "tls.defaults.verify_incoming")) } diff --git a/agent/config/deprecated_test.go b/agent/config/deprecated_test.go index 36dd869077..d3febea2b8 100644 --- a/agent/config/deprecated_test.go +++ b/agent/config/deprecated_test.go @@ -98,7 +98,7 @@ tls_prefer_server_cipher_suites = true require.False(t, rt.TLS.InternalRPC.VerifyIncoming) require.False(t, rt.TLS.HTTPS.VerifyIncoming) - require.True(t, rt.TLS.GRPC.VerifyIncoming) + require.False(t, rt.TLS.GRPC.VerifyIncoming) require.True(t, rt.TLS.InternalRPC.VerifyOutgoing) require.True(t, rt.TLS.HTTPS.VerifyOutgoing) require.True(t, rt.TLS.InternalRPC.VerifyServerHostname) diff --git a/agent/config/runtime.go b/agent/config/runtime.go index dd2a7cabf8..2ae9888ae0 100644 --- a/agent/config/runtime.go +++ b/agent/config/runtime.go @@ -62,6 +62,7 @@ type RuntimeConfig struct { Version string VersionPrerelease string VersionMetadata string + BuildDate time.Time // consul config ConsulCoordinateUpdateMaxBatches int @@ -1700,6 +1701,10 @@ func sanitize(name string, v reflect.Value) reflect.Value { x := v.Interface().(time.Duration) return reflect.ValueOf(x.String()) + case isTime(typ): + x := v.Interface().(time.Time) + return reflect.ValueOf(x.String()) + case isString(typ): if strings.HasPrefix(name, "RetryJoinLAN[") || strings.HasPrefix(name, "RetryJoinWAN[") { x := v.Interface().(string) @@ -1771,6 +1776,7 @@ func sanitize(name string, v reflect.Value) reflect.Value { } func isDuration(t reflect.Type) bool { return t == reflect.TypeOf(time.Second) } +func isTime(t reflect.Type) bool { return t == reflect.TypeOf(time.Time{}) } func isMap(t reflect.Type) bool { return t.Kind() == reflect.Map } func isNetAddr(t reflect.Type) bool { return t.Implements(reflect.TypeOf((*net.Addr)(nil)).Elem()) } func isPtr(t reflect.Type) bool { return t.Kind() == reflect.Ptr } diff --git a/agent/config/runtime_test.go b/agent/config/runtime_test.go index 719d8ddeba..9ca6cc5993 100644 --- a/agent/config/runtime_test.go +++ b/agent/config/runtime_test.go @@ -5661,6 +5661,7 @@ func TestLoad_FullConfig(t *testing.T) { Version: "R909Hblt", VersionPrerelease: "ZT1JOQLn", VersionMetadata: "GtTCa13", + BuildDate: time.Date(2019, 11, 20, 5, 0, 0, 0, time.UTC), // consul configuration ConsulCoordinateUpdateBatchSize: 128, @@ -6306,6 +6307,7 @@ func TestLoad_FullConfig(t *testing.T) { DisableHostname: true, DogstatsdAddr: "0wSndumK", DogstatsdTags: []string{"3N81zSUB", "Xtj8AnXZ"}, + RetryFailedConfiguration: true, FilterDefault: true, AllowedPrefixes: []string{"oJotS8XJ"}, BlockedPrefixes: []string{"cazlEhGn", "ftO6DySn.rpc.server.call"}, @@ -6446,7 +6448,8 @@ func TestLoad_FullConfig(t *testing.T) { ConfigFiles: []string{"testdata/full-config." + format}, HCL: []string{fmt.Sprintf(`data_dir = "%s"`, dataDir)}, } - opts.Overrides = append(opts.Overrides, versionSource("JNtPSav3", "R909Hblt", "ZT1JOQLn", "GtTCa13")) + opts.Overrides = append(opts.Overrides, versionSource("JNtPSav3", "R909Hblt", "ZT1JOQLn", "GtTCa13", + time.Date(2019, 11, 20, 5, 0, 0, 0, time.UTC))) r, err := Load(opts) require.NoError(t, err) prototest.AssertDeepEqual(t, expected, r.RuntimeConfig) @@ -6640,6 +6643,7 @@ func parseCIDR(t *testing.T, cidr string) *net.IPNet { func TestRuntimeConfig_Sanitize(t *testing.T) { rt := RuntimeConfig{ BindAddr: &net.IPAddr{IP: net.ParseIP("127.0.0.1")}, + BuildDate: time.Date(2019, 11, 20, 5, 0, 0, 0, time.UTC), CheckOutputMaxSize: checks.DefaultBufSize, SerfAdvertiseAddrLAN: &net.TCPAddr{IP: net.ParseIP("1.2.3.4"), Port: 5678}, DNSAddrs: []net.Addr{ diff --git a/agent/config/testdata/TestRuntimeConfig_Sanitize.golden b/agent/config/testdata/TestRuntimeConfig_Sanitize.golden index 6cff27c9b0..79f3cc25ee 100644 --- a/agent/config/testdata/TestRuntimeConfig_Sanitize.golden +++ b/agent/config/testdata/TestRuntimeConfig_Sanitize.golden @@ -76,6 +76,7 @@ "BindAddr": "127.0.0.1", "Bootstrap": false, "BootstrapExpect": 0, + "BuildDate": "2019-11-20 05:00:00 +0000 UTC", "Cache": { "EntryFetchMaxBurst": 42, "EntryFetchRate": 0.334, @@ -118,7 +119,8 @@ "TLSSkipVerify": false, "TTL": "0s", "Timeout": "0s", - "Token": "hidden" + "Token": "hidden", + "UDP": "" } ], "ClientAddrs": [], @@ -324,7 +326,8 @@ "TLSServerName": "", "TLSSkipVerify": false, "TTL": "0s", - "Timeout": "0s" + "Timeout": "0s", + "UDP": "" }, "Checks": [], "Connect": null, @@ -428,6 +431,7 @@ "Registerer": null, "SummaryDefinitions": [] }, + "RetryFailedConfiguration": false, "StatsdAddr": "", "StatsiteAddr": "" }, diff --git a/agent/config/testdata/full-config.hcl b/agent/config/testdata/full-config.hcl index c52488751c..670d30a16f 100644 --- a/agent/config/testdata/full-config.hcl +++ b/agent/config/testdata/full-config.hcl @@ -647,6 +647,7 @@ telemetry { disable_hostname = true dogstatsd_addr = "0wSndumK" dogstatsd_tags = [ "3N81zSUB","Xtj8AnXZ" ] + retry_failed_connection = true filter_default = true prefix_filter = [ "+oJotS8XJ","-cazlEhGn" ] metrics_prefix = "ftO6DySn" diff --git a/agent/config/testdata/full-config.json b/agent/config/testdata/full-config.json index f051b9d817..3b08e0f1c0 100644 --- a/agent/config/testdata/full-config.json +++ b/agent/config/testdata/full-config.json @@ -644,6 +644,7 @@ "disable_hostname": true, "dogstatsd_addr": "0wSndumK", "dogstatsd_tags": [ "3N81zSUB","Xtj8AnXZ" ], + "retry_failed_connection": true, "filter_default": true, "prefix_filter": [ "+oJotS8XJ","-cazlEhGn" ], "metrics_prefix": "ftO6DySn", diff --git a/agent/config_endpoint.go b/agent/config_endpoint.go index b51c1e273f..7e67d851ae 100644 --- a/agent/config_endpoint.go +++ b/agent/config_endpoint.go @@ -33,10 +33,7 @@ func (s *HTTPHandlers) configGet(resp http.ResponseWriter, req *http.Request) (i if done := s.parse(resp, req, &args.Datacenter, &args.QueryOptions); done { return nil, nil } - kindAndName, err := getPathSuffixUnescaped(req.URL.Path, "/v1/config/") - if err != nil { - return nil, err - } + kindAndName := strings.TrimPrefix(req.URL.Path, "/v1/config/") pathArgs := strings.SplitN(kindAndName, "/", 2) switch len(pathArgs) { @@ -84,10 +81,7 @@ func (s *HTTPHandlers) configDelete(resp http.ResponseWriter, req *http.Request) var args structs.ConfigEntryRequest s.parseDC(req, &args.Datacenter) s.parseToken(req, &args.Token) - kindAndName, err := getPathSuffixUnescaped(req.URL.Path, "/v1/config/") - if err != nil { - return nil, err - } + kindAndName := strings.TrimPrefix(req.URL.Path, "/v1/config/") pathArgs := strings.SplitN(kindAndName, "/", 2) if len(pathArgs) != 2 { diff --git a/agent/connect/ca/common.go b/agent/connect/ca/common.go index cef412bd3e..848a4fa7b1 100644 --- a/agent/connect/ca/common.go +++ b/agent/connect/ca/common.go @@ -4,7 +4,6 @@ import ( "bytes" "crypto/x509" "fmt" - "strings" "github.com/hashicorp/consul/agent/connect" ) @@ -92,15 +91,3 @@ func validateSignIntermediate(csr *x509.CertificateRequest, spiffeID *connect.Sp } return nil } - -// EnsureTrailingNewline this is used to fix a case where the provider do not return a new line after -// the certificate as per the specification see GH-8178 for more context -func EnsureTrailingNewline(cert string) string { - if cert == "" { - return cert - } - if strings.HasSuffix(cert, "\n") { - return cert - } - return fmt.Sprintf("%s\n", cert) -} diff --git a/agent/connect/ca/provider_aws.go b/agent/connect/ca/provider_aws.go index 25786ab409..cef0c7ddbe 100644 --- a/agent/connect/ca/provider_aws.go +++ b/agent/connect/ca/provider_aws.go @@ -18,6 +18,7 @@ import ( "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/lib" ) const ( @@ -363,15 +364,15 @@ func (a *AWSProvider) loadCACerts() error { if a.isPrimary { // Just use the cert as a root - a.rootPEM = EnsureTrailingNewline(*output.Certificate) + a.rootPEM = lib.EnsureTrailingNewline(*output.Certificate) } else { - a.intermediatePEM = EnsureTrailingNewline(*output.Certificate) + a.intermediatePEM = lib.EnsureTrailingNewline(*output.Certificate) // TODO(banks) support user-supplied CA being a Subordinate even in the // primary DC. For now this assumes there is only one cert in the chain if output.CertificateChain == nil { return fmt.Errorf("Subordinate CA %s returned no chain", a.arn) } - a.rootPEM = EnsureTrailingNewline(*output.CertificateChain) + a.rootPEM = lib.EnsureTrailingNewline(*output.CertificateChain) } return nil } @@ -489,7 +490,7 @@ func (a *AWSProvider) signCSR(csrPEM string, templateARN string, ttl time.Durati } if certOutput.Certificate != nil { - return true, EnsureTrailingNewline(*certOutput.Certificate), nil + return true, lib.EnsureTrailingNewline(*certOutput.Certificate), nil } return false, "", nil @@ -532,8 +533,8 @@ func (a *AWSProvider) SetIntermediate(intermediatePEM string, rootPEM string) er } // We successfully initialized, keep track of the root and intermediate certs. - a.rootPEM = EnsureTrailingNewline(rootPEM) - a.intermediatePEM = EnsureTrailingNewline(intermediatePEM) + a.rootPEM = lib.EnsureTrailingNewline(rootPEM) + a.intermediatePEM = lib.EnsureTrailingNewline(intermediatePEM) return nil } diff --git a/agent/connect/ca/provider_vault.go b/agent/connect/ca/provider_vault.go index 5c0c76608e..270d53a019 100644 --- a/agent/connect/ca/provider_vault.go +++ b/agent/connect/ca/provider_vault.go @@ -13,14 +13,15 @@ import ( "sync" "time" - "github.com/hashicorp/consul/lib/decode" - "github.com/hashicorp/consul/lib/retry" "github.com/hashicorp/go-hclog" vaultapi "github.com/hashicorp/vault/api" "github.com/mitchellh/mapstructure" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/lib" + "github.com/hashicorp/consul/lib/decode" + "github.com/hashicorp/consul/lib/retry" ) const ( @@ -506,7 +507,7 @@ func (v *VaultProvider) getCA(namespace, path string) (string, error) { return "", err } - root := EnsureTrailingNewline(string(bytes)) + root := lib.EnsureTrailingNewline(string(bytes)) if root == "" { return "", ErrBackendNotInitialized } @@ -535,7 +536,7 @@ func (v *VaultProvider) getCAChain(namespace, path string) (string, error) { return "", err } - root := EnsureTrailingNewline(string(raw)) + root := lib.EnsureTrailingNewline(string(raw)) return root, nil } @@ -600,7 +601,7 @@ func (v *VaultProvider) Sign(csr *x509.CertificateRequest) (string, error) { if !ok { return "", fmt.Errorf("certificate was not a string") } - return EnsureTrailingNewline(cert), nil + return lib.EnsureTrailingNewline(cert), nil } // SignIntermediate returns a signed CA certificate with a path length constraint @@ -637,7 +638,7 @@ func (v *VaultProvider) SignIntermediate(csr *x509.CertificateRequest) (string, return "", fmt.Errorf("signed intermediate result is not a string") } - return EnsureTrailingNewline(intermediate), nil + return lib.EnsureTrailingNewline(intermediate), nil } // CrossSignCA takes a CA certificate and cross-signs it to form a trust chain @@ -677,7 +678,7 @@ func (v *VaultProvider) CrossSignCA(cert *x509.Certificate) (string, error) { return "", fmt.Errorf("certificate was not a string") } - return EnsureTrailingNewline(xcCert), nil + return lib.EnsureTrailingNewline(xcCert), nil } // SupportsCrossSigning implements Provider diff --git a/agent/connect/sni.go b/agent/connect/sni.go index e693985b59..17fce7e27c 100644 --- a/agent/connect/sni.go +++ b/agent/connect/sni.go @@ -11,6 +11,7 @@ const ( internal = "internal" version = "v1" internalVersion = internal + "-" + version + external = "external" ) func UpstreamSNI(u *structs.Upstream, subset string, dc string, trustDomain string) string { @@ -64,6 +65,21 @@ func ServiceSNI(service string, subset string, namespace string, partition strin } } +func PeeredServiceSNI(service, namespace, partition, peerName, trustDomain string) string { + if peerName == "" { + panic("peer name is a requirement for this function and does not make sense without it") + } + if namespace == "" { + namespace = structs.IntentionDefaultNamespace + } + if partition == "" { + // TODO(partitions) Make default available in OSS as a constant for uses like this one + partition = "default" + } + + return dotJoin(service, namespace, partition, peerName, external, trustDomain) +} + func dotJoin(parts ...string) string { return strings.Join(parts, ".") } diff --git a/agent/connect/sni_test.go b/agent/connect/sni_test.go index 0ead8b485a..26fae1da72 100644 --- a/agent/connect/sni_test.go +++ b/agent/connect/sni_test.go @@ -3,8 +3,9 @@ package connect import ( "testing" - "github.com/hashicorp/consul/agent/structs" "github.com/stretchr/testify/require" + + "github.com/hashicorp/consul/agent/structs" ) const ( @@ -164,6 +165,11 @@ func TestServiceSNI(t *testing.T) { ServiceSNI("api", "canary", "neighbor", "part1", "foo", testTrustDomain2)) } +func TestPeeredServiceSNI(t *testing.T) { + require.Equal(t, "api.billing.default.webstuff.external."+testTrustDomainSuffix1, + PeeredServiceSNI("api", "billing", "", "webstuff", testTrustDomainSuffix1)) +} + func TestQuerySNI(t *testing.T) { require.Equal(t, "magicquery.default.foo.query."+testTrustDomain1, QuerySNI("magicquery", "foo", testTrustDomain1)) diff --git a/agent/connect/testing_ca.go b/agent/connect/testing_ca.go index 16ffb65361..343de77bc4 100644 --- a/agent/connect/testing_ca.go +++ b/agent/connect/testing_ca.go @@ -16,6 +16,7 @@ import ( "github.com/hashicorp/go-uuid" "github.com/mitchellh/go-testing-interface" + "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/structs" ) @@ -23,6 +24,7 @@ import ( // // NOTE: this is duplicated in the api package as testClusterID const TestClusterID = "11111111-2222-3333-4444-555555555555" +const TestTrustDomain = TestClusterID + ".consul" // testCACounter is just an atomically incremented counter for creating // unique names for the CA certs. @@ -295,6 +297,21 @@ func TestLeafWithNamespace(t testing.T, service, namespace string, root *structs return certPEM, keyPEM } +func TestMeshGatewayLeaf(t testing.T, partition string, root *structs.CARoot) (string, string) { + // Build the SPIFFE ID + spiffeId := &SpiffeIDMeshGateway{ + Host: fmt.Sprintf("%s.consul", TestClusterID), + Partition: acl.PartitionOrDefault(partition), + Datacenter: "dc1", + } + + certPEM, keyPEM, err := testLeafWithID(t, spiffeId, root, DefaultPrivateKeyType, DefaultPrivateKeyBits, 0) + if err != nil { + t.Fatalf(err.Error()) + } + return certPEM, keyPEM +} + // TestCSR returns a CSR to sign the given service along with the PEM-encoded // private key for this certificate. func TestCSR(t testing.T, uri CertURI) (string, string) { diff --git a/agent/connect/uri.go b/agent/connect/uri.go index fa13870867..18f888d25b 100644 --- a/agent/connect/uri.go +++ b/agent/connect/uri.go @@ -24,6 +24,8 @@ var ( `^(?:/ap/([^/]+))?/ns/([^/]+)/dc/([^/]+)/svc/([^/]+)$`) spiffeIDAgentRegexp = regexp.MustCompile( `^(?:/ap/([^/]+))?/agent/client/dc/([^/]+)/id/([^/]+)$`) + spiffeIDMeshGatewayRegexp = regexp.MustCompile( + `^(?:/ap/([^/]+))?/gateway/mesh/dc/([^/]+)$`) ) // ParseCertURIFromString attempts to parse a string representation of a @@ -117,6 +119,31 @@ func ParseCertURI(input *url.URL) (CertURI, error) { Datacenter: dc, Agent: agent, }, nil + } else if v := spiffeIDMeshGatewayRegexp.FindStringSubmatch(path); v != nil { + // Determine the values. We assume they're reasonable to save cycles, + // but if the raw path is not empty that means that something is + // URL encoded so we go to the slow path. + ap := v[1] + dc := v[2] + if input.RawPath != "" { + var err error + if ap, err = url.PathUnescape(v[1]); err != nil { + return nil, fmt.Errorf("Invalid admin partition: %s", err) + } + if dc, err = url.PathUnescape(v[2]); err != nil { + return nil, fmt.Errorf("Invalid datacenter: %s", err) + } + } + + if ap == "" { + ap = "default" + } + + return &SpiffeIDMeshGateway{ + Host: input.Host, + Partition: ap, + Datacenter: dc, + }, nil } // Test for signing ID diff --git a/agent/connect/uri_mesh_gateway.go b/agent/connect/uri_mesh_gateway.go new file mode 100644 index 0000000000..9358f7eaf6 --- /dev/null +++ b/agent/connect/uri_mesh_gateway.go @@ -0,0 +1,30 @@ +package connect + +import ( + "net/url" + + "github.com/hashicorp/consul/acl" +) + +type SpiffeIDMeshGateway struct { + Host string + Partition string + Datacenter string +} + +func (id SpiffeIDMeshGateway) MatchesPartition(partition string) bool { + return id.PartitionOrDefault() == acl.PartitionOrDefault(partition) +} + +func (id SpiffeIDMeshGateway) PartitionOrDefault() string { + return acl.PartitionOrDefault(id.Partition) +} + +// URI returns the *url.URL for this SPIFFE ID. +func (id SpiffeIDMeshGateway) URI() *url.URL { + var result url.URL + result.Scheme = "spiffe" + result.Host = id.Host + result.Path = id.uriPath() + return &result +} diff --git a/agent/connect/uri_mesh_gateway_oss.go b/agent/connect/uri_mesh_gateway_oss.go new file mode 100644 index 0000000000..8865b97f94 --- /dev/null +++ b/agent/connect/uri_mesh_gateway_oss.go @@ -0,0 +1,20 @@ +//go:build !consulent +// +build !consulent + +package connect + +import ( + "fmt" + + "github.com/hashicorp/consul/acl" +) + +// GetEnterpriseMeta will synthesize an EnterpriseMeta struct from the SpiffeIDAgent. +// in OSS this just returns an empty (but never nil) struct pointer +func (id SpiffeIDMeshGateway) GetEnterpriseMeta() *acl.EnterpriseMeta { + return &acl.EnterpriseMeta{} +} + +func (id SpiffeIDMeshGateway) uriPath() string { + return fmt.Sprintf("/gateway/mesh/dc/%s", id.Datacenter) +} diff --git a/agent/connect/uri_mesh_gateway_oss_test.go b/agent/connect/uri_mesh_gateway_oss_test.go new file mode 100644 index 0000000000..6ab1ede1fd --- /dev/null +++ b/agent/connect/uri_mesh_gateway_oss_test.go @@ -0,0 +1,31 @@ +//go:build !consulent +// +build !consulent + +package connect + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestSpiffeIDMeshGatewayURI(t *testing.T) { + t.Run("default partition", func(t *testing.T) { + mgw := &SpiffeIDMeshGateway{ + Host: "1234.consul", + Datacenter: "dc1", + } + + require.Equal(t, "spiffe://1234.consul/gateway/mesh/dc/dc1", mgw.URI().String()) + }) + + t.Run("partitions are ignored", func(t *testing.T) { + mgw := &SpiffeIDMeshGateway{ + Host: "1234.consul", + Partition: "foobar", + Datacenter: "dc1", + } + + require.Equal(t, "spiffe://1234.consul/gateway/mesh/dc/dc1", mgw.URI().String()) + }) +} diff --git a/agent/connect/uri_service.go b/agent/connect/uri_service.go index 34c55a92ce..685498b1af 100644 --- a/agent/connect/uri_service.go +++ b/agent/connect/uri_service.go @@ -1,6 +1,7 @@ package connect import ( + "fmt" "net/url" "github.com/hashicorp/consul/acl" @@ -23,10 +24,6 @@ func (id SpiffeIDService) MatchesPartition(partition string) bool { return id.PartitionOrDefault() == acl.PartitionOrDefault(partition) } -func (id SpiffeIDService) PartitionOrDefault() string { - return acl.PartitionOrDefault(id.Partition) -} - // URI returns the *url.URL for this SPIFFE ID. func (id SpiffeIDService) URI() *url.URL { var result url.URL @@ -35,3 +32,20 @@ func (id SpiffeIDService) URI() *url.URL { result.Path = id.uriPath() return &result } + +func (id SpiffeIDService) uriPath() string { + path := fmt.Sprintf("/ns/%s/dc/%s/svc/%s", + id.NamespaceOrDefault(), + id.Datacenter, + id.Service, + ) + + // Although OSS has no support for partitions, it still needs to be able to + // handle exportedPartition from peered Consul Enterprise clusters in order + // to generate the correct SpiffeID. + // We intentionally avoid using pbpartition.DefaultName here to be OSS friendly. + if ap := id.PartitionOrDefault(); ap != "" && ap != "default" { + return "/ap/" + ap + path + } + return path +} diff --git a/agent/connect/uri_service_oss.go b/agent/connect/uri_service_oss.go index a20074e847..63a51bf700 100644 --- a/agent/connect/uri_service_oss.go +++ b/agent/connect/uri_service_oss.go @@ -4,7 +4,7 @@ package connect import ( - "fmt" + "strings" "github.com/hashicorp/consul/acl" ) @@ -15,10 +15,14 @@ func (id SpiffeIDService) GetEnterpriseMeta() *acl.EnterpriseMeta { return &acl.EnterpriseMeta{} } -func (id SpiffeIDService) uriPath() string { - return fmt.Sprintf("/ns/%s/dc/%s/svc/%s", - id.NamespaceOrDefault(), - id.Datacenter, - id.Service, - ) +// PartitionOrDefault breaks from OSS's pattern of returning empty strings. +// Although OSS has no support for partitions, it still needs to be able to +// handle exportedPartition from peered Consul Enterprise clusters in order +// to generate the correct SpiffeID. +func (id SpiffeIDService) PartitionOrDefault() string { + if id.Partition == "" { + return "default" + } + + return strings.ToLower(id.Partition) } diff --git a/agent/connect/uri_service_oss_test.go b/agent/connect/uri_service_oss_test.go index 069df26168..31b504150b 100644 --- a/agent/connect/uri_service_oss_test.go +++ b/agent/connect/uri_service_oss_test.go @@ -19,16 +19,6 @@ func TestSpiffeIDServiceURI(t *testing.T) { require.Equal(t, "spiffe://1234.consul/ns/default/dc/dc1/svc/web", svc.URI().String()) }) - t.Run("partitions are ignored", func(t *testing.T) { - svc := &SpiffeIDService{ - Host: "1234.consul", - Partition: "other", - Datacenter: "dc1", - Service: "web", - } - require.Equal(t, "spiffe://1234.consul/ns/default/dc/dc1/svc/web", svc.URI().String()) - }) - t.Run("namespaces are ignored", func(t *testing.T) { svc := &SpiffeIDService{ Host: "1234.consul", diff --git a/agent/connect/uri_signing.go b/agent/connect/uri_signing.go index 84cd29cdec..926674880b 100644 --- a/agent/connect/uri_signing.go +++ b/agent/connect/uri_signing.go @@ -48,6 +48,12 @@ func (id SpiffeIDSigning) CanSign(cu CertURI) bool { // worry about Unicode domains if we start allowing customisation beyond the // built-in cluster ids. return strings.ToLower(other.Host) == id.Host() + case *SpiffeIDMeshGateway: + // The host component of the service must be an exact match for now under + // ascii case folding (since hostnames are case-insensitive). Later we might + // worry about Unicode domains if we start allowing customisation beyond the + // built-in cluster ids. + return strings.ToLower(other.Host) == id.Host() default: return false } diff --git a/agent/connect/uri_signing_test.go b/agent/connect/uri_signing_test.go index 36becc37b4..e09ac78c64 100644 --- a/agent/connect/uri_signing_test.go +++ b/agent/connect/uri_signing_test.go @@ -95,6 +95,30 @@ func TestSpiffeIDSigning_CanSign(t *testing.T) { input: &SpiffeIDService{Host: TestClusterID + ".fake", Namespace: "default", Datacenter: "dc1", Service: "web"}, want: false, }, + { + name: "mesh gateway - good", + id: testSigning, + input: &SpiffeIDMeshGateway{Host: TestClusterID + ".consul", Datacenter: "dc1"}, + want: true, + }, + { + name: "mesh gateway - good midex case", + id: testSigning, + input: &SpiffeIDMeshGateway{Host: strings.ToUpper(TestClusterID) + ".CONsuL", Datacenter: "dc1"}, + want: true, + }, + { + name: "mesh gateway - different cluster", + id: testSigning, + input: &SpiffeIDMeshGateway{Host: "55555555-4444-3333-2222-111111111111.consul", Datacenter: "dc1"}, + want: false, + }, + { + name: "mesh gateway - different TLD", + id: testSigning, + input: &SpiffeIDMeshGateway{Host: TestClusterID + ".fake", Datacenter: "dc1"}, + want: false, + }, } for _, tt := range tests { diff --git a/agent/connect/uri_test.go b/agent/connect/uri_test.go index 96b2b7a716..9c2849c4c3 100644 --- a/agent/connect/uri_test.go +++ b/agent/connect/uri_test.go @@ -70,6 +70,26 @@ func TestParseCertURIFromString(t *testing.T) { }, "", }, + { + "mesh-gateway with no partition", + "spiffe://1234.consul/gateway/mesh/dc/dc1", + &SpiffeIDMeshGateway{ + Host: "1234.consul", + Partition: "default", + Datacenter: "dc1", + }, + "", + }, + { + "mesh-gateway with partition", + "spiffe://1234.consul/ap/bizdev/gateway/mesh/dc/dc1", + &SpiffeIDMeshGateway{ + Host: "1234.consul", + Partition: "bizdev", + Datacenter: "dc1", + }, + "", + }, { "service with URL-encoded values", "spiffe://1234.consul/ns/foo%2Fbar/dc/bar%2Fbaz/svc/baz%2Fqux", diff --git a/agent/consul/acl.go b/agent/consul/acl.go index 8543b7f516..bd8c88bd97 100644 --- a/agent/consul/acl.go +++ b/agent/consul/acl.go @@ -13,6 +13,7 @@ import ( "golang.org/x/time/rate" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/token" "github.com/hashicorp/consul/logging" @@ -662,26 +663,6 @@ func (r *ACLResolver) synthesizePoliciesForNodeIdentities(nodeIdentities []*stru return syntheticPolicies } -// plainACLResolver wraps ACLResolver so that it can be used in other packages -// that cannot import agent/consul wholesale (e.g. because of import cycles). -// -// TODO(agentless): this pattern was copied from subscribeBackend for expediency -// but we should really refactor ACLResolver so it can be passed as a dependency -// to other packages. -type plainACLResolver struct { - resolver *ACLResolver -} - -func (r plainACLResolver) ResolveTokenAndDefaultMeta( - token string, - entMeta *acl.EnterpriseMeta, - authzContext *acl.AuthorizerContext, -) (acl.Authorizer, error) { - // ACLResolver.ResolveTokenAndDefaultMeta returns a ACLResolveResult which - // can't be used in other packages, but it embeds acl.Authorizer which can. - return r.resolver.ResolveTokenAndDefaultMeta(token, entMeta, authzContext) -} - func mergeStringSlice(a, b []string) []string { out := make([]string, 0, len(a)+len(b)) out = append(out, a...) @@ -1008,13 +989,13 @@ func (r *ACLResolver) resolveLocallyManagedToken(token string) (structs.ACLIdent // ResolveToken to an acl.Authorizer and structs.ACLIdentity. The acl.Authorizer // can be used to check permissions granted to the token, and the ACLIdentity // describes the token and any defaults applied to it. -func (r *ACLResolver) ResolveToken(token string) (ACLResolveResult, error) { +func (r *ACLResolver) ResolveToken(token string) (resolver.Result, error) { if !r.ACLsEnabled() { - return ACLResolveResult{Authorizer: acl.ManageAll()}, nil + return resolver.Result{Authorizer: acl.ManageAll()}, nil } if acl.RootAuthorizer(token) != nil { - return ACLResolveResult{}, acl.ErrRootDenied + return resolver.Result{}, acl.ErrRootDenied } // handle the anonymous token @@ -1023,7 +1004,7 @@ func (r *ACLResolver) ResolveToken(token string) (ACLResolveResult, error) { } if ident, authz, ok := r.resolveLocallyManagedToken(token); ok { - return ACLResolveResult{Authorizer: authz, ACLIdentity: ident}, nil + return resolver.Result{Authorizer: authz, ACLIdentity: ident}, nil } defer metrics.MeasureSince([]string{"acl", "ResolveToken"}, time.Now()) @@ -1034,10 +1015,10 @@ func (r *ACLResolver) ResolveToken(token string) (ACLResolveResult, error) { if IsACLRemoteError(err) { r.logger.Error("Error resolving token", "error", err) ident := &missingIdentity{reason: "primary-dc-down", token: token} - return ACLResolveResult{Authorizer: r.down, ACLIdentity: ident}, nil + return resolver.Result{Authorizer: r.down, ACLIdentity: ident}, nil } - return ACLResolveResult{}, err + return resolver.Result{}, err } // Build the Authorizer @@ -1050,7 +1031,7 @@ func (r *ACLResolver) ResolveToken(token string) (ACLResolveResult, error) { authz, err := policies.Compile(r.cache, &conf) if err != nil { - return ACLResolveResult{}, err + return resolver.Result{}, err } chain = append(chain, authz) @@ -1058,36 +1039,15 @@ func (r *ACLResolver) ResolveToken(token string) (ACLResolveResult, error) { if err != nil { if IsACLRemoteError(err) { r.logger.Error("Error resolving identity defaults", "error", err) - return ACLResolveResult{Authorizer: r.down, ACLIdentity: identity}, nil + return resolver.Result{Authorizer: r.down, ACLIdentity: identity}, nil } - return ACLResolveResult{}, err + return resolver.Result{}, err } else if authz != nil { chain = append(chain, authz) } chain = append(chain, acl.RootAuthorizer(r.config.ACLDefaultPolicy)) - return ACLResolveResult{Authorizer: acl.NewChainedAuthorizer(chain), ACLIdentity: identity}, nil -} - -type ACLResolveResult struct { - acl.Authorizer - // TODO: likely we can reduce this interface - ACLIdentity structs.ACLIdentity -} - -func (a ACLResolveResult) AccessorID() string { - if a.ACLIdentity == nil { - return "" - } - return a.ACLIdentity.ID() -} - -func (a ACLResolveResult) Identity() structs.ACLIdentity { - return a.ACLIdentity -} - -func (a ACLResolveResult) ToAllowAuthorizer() acl.AllowAuthorizer { - return acl.AllowAuthorizer{Authorizer: a, AccessorID: a.AccessorID()} + return resolver.Result{Authorizer: acl.NewChainedAuthorizer(chain), ACLIdentity: identity}, nil } func (r *ACLResolver) ACLsEnabled() bool { @@ -1111,7 +1071,7 @@ func (r *ACLResolver) ResolveTokenAndDefaultMeta( token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext, -) (ACLResolveResult, error) { +) (resolver.Result, error) { return r.ResolveTokenAndDefaultMetaWithPeerName(token, entMeta, structs.DefaultPeerKeyword, authzContext) } @@ -1120,10 +1080,10 @@ func (r *ACLResolver) ResolveTokenAndDefaultMetaWithPeerName( entMeta *acl.EnterpriseMeta, peerName string, authzContext *acl.AuthorizerContext, -) (ACLResolveResult, error) { +) (resolver.Result, error) { result, err := r.ResolveToken(token) if err != nil { - return ACLResolveResult{}, err + return resolver.Result{}, err } if entMeta == nil { @@ -1940,6 +1900,16 @@ func filterACLWithAuthorizer(logger hclog.Logger, authorizer acl.Authorizer, sub case *structs.IndexedServiceList: v.QueryMeta.ResultsFilteredByACLs = filt.filterServiceList(&v.Services) + case *structs.IndexedExportedServiceList: + for peer, peerServices := range v.Services { + v.QueryMeta.ResultsFilteredByACLs = filt.filterServiceList(&peerServices) + if len(peerServices) == 0 { + delete(v.Services, peer) + } else { + v.Services[peer] = peerServices + } + } + case *structs.IndexedGatewayServices: v.QueryMeta.ResultsFilteredByACLs = filt.filterGatewayServices(&v.Services) diff --git a/agent/consul/acl_endpoint.go b/agent/consul/acl_endpoint.go index 69908c055e..cd35e3667d 100644 --- a/agent/consul/acl_endpoint.go +++ b/agent/consul/acl_endpoint.go @@ -17,6 +17,7 @@ import ( uuid "github.com/hashicorp/go-uuid" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/consul/auth" "github.com/hashicorp/consul/agent/consul/authmethod" "github.com/hashicorp/consul/agent/consul/state" @@ -263,7 +264,7 @@ func (a *ACL) TokenRead(args *structs.ACLTokenGetRequest, reply *structs.ACLToke return err } - var authz ACLResolveResult + var authz resolver.Result if args.TokenIDType == structs.ACLTokenAccessor { var err error diff --git a/agent/consul/acl_test.go b/agent/consul/acl_test.go index 9fa551dcbb..b0d26831d7 100644 --- a/agent/consul/acl_test.go +++ b/agent/consul/acl_test.go @@ -17,6 +17,7 @@ import ( msgpackrpc "github.com/hashicorp/consul-net-rpc/net-rpc-msgpackrpc" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/token" "github.com/hashicorp/consul/api" @@ -47,7 +48,7 @@ type asyncResolutionResult struct { err error } -func verifyAuthorizerChain(t *testing.T, expected ACLResolveResult, actual ACLResolveResult) { +func verifyAuthorizerChain(t *testing.T, expected resolver.Result, actual resolver.Result) { t.Helper() expectedChainAuthz, ok := expected.Authorizer.(*acl.ChainedAuthorizer) require.True(t, ok, "expected Authorizer is not a ChainedAuthorizer") @@ -735,7 +736,7 @@ func TestACLResolver_Disabled(t *testing.T) { r := newTestACLResolver(t, delegate, nil) authz, err := r.ResolveToken("does not exist") - require.Equal(t, ACLResolveResult{Authorizer: acl.ManageAll()}, authz) + require.Equal(t, resolver.Result{Authorizer: acl.ManageAll()}, authz) require.Nil(t, err) } @@ -810,7 +811,7 @@ func TestACLResolver_DownPolicy(t *testing.T) { authz, err := r.ResolveToken("foo") require.NoError(t, err) require.NotNil(t, authz) - expected := ACLResolveResult{ + expected := resolver.Result{ Authorizer: acl.DenyAll(), ACLIdentity: &missingIdentity{reason: "primary-dc-down", token: "foo"}, } @@ -838,7 +839,7 @@ func TestACLResolver_DownPolicy(t *testing.T) { authz, err := r.ResolveToken("foo") require.NoError(t, err) require.NotNil(t, authz) - expected := ACLResolveResult{ + expected := resolver.Result{ Authorizer: acl.AllowAll(), ACLIdentity: &missingIdentity{reason: "primary-dc-down", token: "foo"}, } @@ -1524,7 +1525,7 @@ func TestACLResolver_Client(t *testing.T) { // then the policy will be resolved but resolution will return ACL not found // resolution will stop with the not found error (even though we still have the // policies within the cache) - authz, err = r.ResolveToken("a1a54629-5050-4d17-8a4e-560d2423f835") + _, err = r.ResolveToken("a1a54629-5050-4d17-8a4e-560d2423f835") require.EqualError(t, err, acl.ErrNotFound.Error()) require.True(t, modified) @@ -3944,14 +3945,14 @@ func TestACLResolver_ResolveToken_UpdatesPurgeTheCache(t *testing.T) { err = msgpackrpc.CallWithCodec(codec, "ACL.TokenSet", &reqToken, &respToken) require.NoError(t, err) - runStep(t, "first resolve", func(t *testing.T) { + testutil.RunStep(t, "first resolve", func(t *testing.T) { authz, err := srv.ACLResolver.ResolveToken(token) require.NoError(t, err) require.NotNil(t, authz) require.Equal(t, acl.Allow, authz.KeyRead("foo", nil)) }) - runStep(t, "update the policy and resolve again", func(t *testing.T) { + testutil.RunStep(t, "update the policy and resolve again", func(t *testing.T) { reqPolicy := structs.ACLPolicySetRequest{ Datacenter: "dc1", Policy: structs.ACLPolicy{ @@ -3970,7 +3971,7 @@ func TestACLResolver_ResolveToken_UpdatesPurgeTheCache(t *testing.T) { require.Equal(t, acl.Deny, authz.KeyRead("foo", nil)) }) - runStep(t, "delete the token", func(t *testing.T) { + testutil.RunStep(t, "delete the token", func(t *testing.T) { req := structs.ACLTokenDeleteRequest{ Datacenter: "dc1", TokenID: respToken.AccessorID, diff --git a/agent/consul/catalog_endpoint.go b/agent/consul/catalog_endpoint.go index 742ddd1b38..9fe11800b6 100644 --- a/agent/consul/catalog_endpoint.go +++ b/agent/consul/catalog_endpoint.go @@ -12,8 +12,10 @@ import ( "github.com/hashicorp/go-hclog" "github.com/hashicorp/go-memdb" "github.com/hashicorp/go-uuid" + hashstructure_v2 "github.com/mitchellh/hashstructure/v2" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/ipaddr" @@ -159,7 +161,7 @@ func nodePreApply(nodeName, nodeID string) error { return nil } -func servicePreApply(service *structs.NodeService, authz ACLResolveResult, authzCtxFill func(*acl.AuthorizerContext)) error { +func servicePreApply(service *structs.NodeService, authz resolver.Result, authzCtxFill func(*acl.AuthorizerContext)) error { // Validate the service. This is in addition to the below since // the above just hasn't been moved over yet. We should move it over // in time. @@ -229,7 +231,7 @@ func checkPreApply(check *structs.HealthCheck) { // worst let a service update revert a recent node update, so it doesn't open up // too much abuse). func vetRegisterWithACL( - authz ACLResolveResult, + authz resolver.Result, subj *structs.RegisterRequest, ns *structs.NodeServices, ) error { @@ -367,7 +369,7 @@ func (c *Catalog) Deregister(args *structs.DeregisterRequest, reply *struct{}) e var ns *structs.NodeService if args.ServiceID != "" { - _, ns, err = state.NodeService(args.Node, args.ServiceID, &args.EnterpriseMeta, args.PeerName) + _, ns, err = state.NodeService(nil, args.Node, args.ServiceID, &args.EnterpriseMeta, args.PeerName) if err != nil { return fmt.Errorf("Service lookup failed: %v", err) } @@ -395,7 +397,7 @@ func (c *Catalog) Deregister(args *structs.DeregisterRequest, reply *struct{}) e // endpoint. The NodeService for the referenced service must be supplied, and can // be nil; similar for the HealthCheck for the referenced health check. func vetDeregisterWithACL( - authz ACLResolveResult, + authz resolver.Result, subj *structs.DeregisterRequest, ns *structs.NodeService, nc *structs.HealthCheck, @@ -663,6 +665,11 @@ func (c *Catalog) ServiceNodes(args *structs.ServiceSpecificRequest, reply *stru return err } + var ( + priorMergeHash uint64 + ranMergeOnce bool + ) + err = c.srv.blockingQuery( &args.QueryOptions, &reply.QueryMeta, @@ -672,10 +679,53 @@ func (c *Catalog) ServiceNodes(args *structs.ServiceSpecificRequest, reply *stru return err } - reply.Index, reply.ServiceNodes = index, services + mergedServices := services + + if args.MergeCentralConfig { + var mergedServiceNodes structs.ServiceNodes + for _, sn := range services { + mergedsn := sn + ns := sn.ToNodeService() + if ns.IsSidecarProxy() || ns.IsGateway() { + cfgIndex, mergedns, err := mergeNodeServiceWithCentralConfig(ws, state, args, ns, c.logger) + if err != nil { + return err + } + if cfgIndex > index { + index = cfgIndex + } + mergedsn = mergedns.ToServiceNode(sn.Node) + } + mergedServiceNodes = append(mergedServiceNodes, mergedsn) + } + if len(mergedServiceNodes) > 0 { + mergedServices = mergedServiceNodes + } + + // Generate a hash of the mergedServices driving this response. + // Use it to determine if the response is identical to a prior wakeup. + newMergeHash, err := hashstructure_v2.Hash(mergedServices, hashstructure_v2.FormatV2, nil) + if err != nil { + return fmt.Errorf("error hashing reply for spurious wakeup suppression: %w", err) + } + if ranMergeOnce && priorMergeHash == newMergeHash { + // the below assignment is not required as the if condition already validates equality, + // but makes it more clear that prior value is being reset to the new hash on each run. + priorMergeHash = newMergeHash + reply.Index = index + // NOTE: the prior response is still alive inside of *reply, which is desirable + return errNotChanged + } else { + priorMergeHash = newMergeHash + ranMergeOnce = true + } + + } + + reply.Index, reply.ServiceNodes = index, mergedServices if len(args.NodeMetaFilters) > 0 { var filtered structs.ServiceNodes - for _, service := range services { + for _, service := range mergedServices { if structs.SatisfiesMetaFilters(service.NodeMeta, args.NodeMetaFilters) { filtered = append(filtered, service) } @@ -820,6 +870,11 @@ func (c *Catalog) NodeServiceList(args *structs.NodeSpecificRequest, reply *stru return err } + var ( + priorMergeHash uint64 + ranMergeOnce bool + ) + return c.srv.blockingQuery( &args.QueryOptions, &reply.QueryMeta, @@ -829,10 +884,55 @@ func (c *Catalog) NodeServiceList(args *structs.NodeSpecificRequest, reply *stru return err } + mergedServices := services + var cfgIndex uint64 + if services != nil && args.MergeCentralConfig { + var mergedNodeServices []*structs.NodeService + for _, ns := range services.Services { + mergedns := ns + if ns.IsSidecarProxy() || ns.IsGateway() { + serviceSpecificReq := structs.ServiceSpecificRequest{ + Datacenter: args.Datacenter, + QueryOptions: args.QueryOptions, + } + cfgIndex, mergedns, err = mergeNodeServiceWithCentralConfig(ws, state, &serviceSpecificReq, ns, c.logger) + if err != nil { + return err + } + if cfgIndex > index { + index = cfgIndex + } + } + mergedNodeServices = append(mergedNodeServices, mergedns) + } + if len(mergedNodeServices) > 0 { + mergedServices.Services = mergedNodeServices + } + + // Generate a hash of the mergedServices driving this response. + // Use it to determine if the response is identical to a prior wakeup. + newMergeHash, err := hashstructure_v2.Hash(mergedServices, hashstructure_v2.FormatV2, nil) + if err != nil { + return fmt.Errorf("error hashing reply for spurious wakeup suppression: %w", err) + } + if ranMergeOnce && priorMergeHash == newMergeHash { + // the below assignment is not required as the if condition already validates equality, + // but makes it more clear that prior value is being reset to the new hash on each run. + priorMergeHash = newMergeHash + reply.Index = index + // NOTE: the prior response is still alive inside of *reply, which is desirable + return errNotChanged + } else { + priorMergeHash = newMergeHash + ranMergeOnce = true + } + + } + reply.Index = index - if services != nil { - reply.NodeServices = *services + if mergedServices != nil { + reply.NodeServices = *mergedServices raw, err := filter.Execute(reply.NodeServices.Services) if err != nil { diff --git a/agent/consul/catalog_endpoint_test.go b/agent/consul/catalog_endpoint_test.go index 78ac4c36bd..bafdc6f322 100644 --- a/agent/consul/catalog_endpoint_test.go +++ b/agent/consul/catalog_endpoint_test.go @@ -16,6 +16,7 @@ import ( "github.com/hashicorp/consul-net-rpc/net/rpc" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" "github.com/hashicorp/consul/lib" @@ -3054,6 +3055,7 @@ func TestCatalog_GatewayServices_TerminatingGateway(t *testing.T) { CertFile: "api/client.crt", KeyFile: "api/client.key", SNI: "my-domain", + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -3062,6 +3064,7 @@ func TestCatalog_GatewayServices_TerminatingGateway(t *testing.T) { CAFile: "", CertFile: "", KeyFile: "", + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("redis", nil), @@ -3206,6 +3209,7 @@ func TestCatalog_GatewayServices_BothGateways(t *testing.T) { Service: structs.NewServiceName("api", nil), Gateway: structs.NewServiceName("gateway", nil), GatewayKind: structs.ServiceKindTerminatingGateway, + ServiceKind: structs.GatewayServiceKindService, }, } @@ -3428,11 +3432,13 @@ service "gateway" { Service: structs.NewServiceName("db", nil), Gateway: structs.NewServiceName("gateway", nil), GatewayKind: structs.ServiceKindTerminatingGateway, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db_replica", nil), Gateway: structs.NewServiceName("gateway", nil), GatewayKind: structs.ServiceKindTerminatingGateway, + ServiceKind: structs.GatewayServiceKindUnknown, }, } @@ -3462,11 +3468,11 @@ func TestVetRegisterWithACL(t *testing.T) { } // With an "allow all" authorizer the update should be allowed. - require.NoError(t, vetRegisterWithACL(ACLResolveResult{Authorizer: acl.ManageAll()}, args, nil)) + require.NoError(t, vetRegisterWithACL(resolver.Result{Authorizer: acl.ManageAll()}, args, nil)) }) var perms acl.Authorizer = acl.DenyAll() - var resolvedPerms ACLResolveResult + var resolvedPerms resolver.Result args := &structs.RegisterRequest{ Node: "nope", @@ -3478,7 +3484,7 @@ func TestVetRegisterWithACL(t *testing.T) { node "node" { policy = "write" } `) - resolvedPerms = ACLResolveResult{Authorizer: perms} + resolvedPerms = resolver.Result{Authorizer: perms} // With that policy, the update should now be blocked for node reasons. err := vetRegisterWithACL(resolvedPerms, args, nil) @@ -3509,7 +3515,7 @@ func TestVetRegisterWithACL(t *testing.T) { ID: "my-id", }, } - err = vetRegisterWithACL(ACLResolveResult{Authorizer: perms}, args, ns) + err = vetRegisterWithACL(resolver.Result{Authorizer: perms}, args, ns) require.True(t, acl.IsErrPermissionDenied(err)) // Chain on a basic service policy. @@ -3517,7 +3523,7 @@ func TestVetRegisterWithACL(t *testing.T) { service "service" { policy = "write" } `) - resolvedPerms = ACLResolveResult{Authorizer: perms} + resolvedPerms = resolver.Result{Authorizer: perms} // With the service ACL, the update should go through. require.NoError(t, vetRegisterWithACL(resolvedPerms, args, ns)) @@ -3544,7 +3550,7 @@ func TestVetRegisterWithACL(t *testing.T) { service "other" { policy = "write" } `) - resolvedPerms = ACLResolveResult{Authorizer: perms} + resolvedPerms = resolver.Result{Authorizer: perms} // Now it should go through. require.NoError(t, vetRegisterWithACL(resolvedPerms, args, ns)) @@ -3650,7 +3656,7 @@ func TestVetRegisterWithACL(t *testing.T) { service "other" { policy = "deny" } `) - resolvedPerms = ACLResolveResult{Authorizer: perms} + resolvedPerms = resolver.Result{Authorizer: perms} // This should get rejected. err = vetRegisterWithACL(resolvedPerms, args, ns) @@ -3677,7 +3683,7 @@ func TestVetRegisterWithACL(t *testing.T) { node "node" { policy = "deny" } `) - resolvedPerms = ACLResolveResult{Authorizer: perms} + resolvedPerms = resolver.Result{Authorizer: perms} // This should get rejected because there's a node-level check in here. err = vetRegisterWithACL(resolvedPerms, args, ns) @@ -3728,7 +3734,7 @@ func TestVetDeregisterWithACL(t *testing.T) { } // With an "allow all" authorizer the update should be allowed. - if err := vetDeregisterWithACL(ACLResolveResult{Authorizer: acl.ManageAll()}, args, nil, nil); err != nil { + if err := vetDeregisterWithACL(resolver.Result{Authorizer: acl.ManageAll()}, args, nil, nil); err != nil { t.Fatalf("err: %v", err) } @@ -3961,7 +3967,7 @@ node "node" { }, } { t.Run(args.Name, func(t *testing.T) { - err = vetDeregisterWithACL(ACLResolveResult{Authorizer: args.Perms}, &args.DeregisterRequest, args.Service, args.Check) + err = vetDeregisterWithACL(resolver.Result{Authorizer: args.Perms}, &args.DeregisterRequest, args.Service, args.Check) if !args.Expected { if err == nil { t.Errorf("expected error with %+v", args.DeregisterRequest) diff --git a/agent/consul/client_test.go b/agent/consul/client_test.go index d8f0fbd4df..5c35e3f338 100644 --- a/agent/consul/client_test.go +++ b/agent/consul/client_test.go @@ -510,7 +510,7 @@ func newDefaultDeps(t *testing.T, c *Config) Deps { logger := hclog.NewInterceptLogger(&hclog.LoggerOptions{ Name: c.NodeName, - Level: hclog.Trace, + Level: testutil.TestLogLevel, Output: testutil.NewLogBuffer(t), }) diff --git a/agent/consul/config_endpoint.go b/agent/consul/config_endpoint.go index 2e72f992ee..0926fe9f58 100644 --- a/agent/consul/config_endpoint.go +++ b/agent/consul/config_endpoint.go @@ -9,11 +9,9 @@ import ( "github.com/armon/go-metrics/prometheus" "github.com/hashicorp/go-hclog" memdb "github.com/hashicorp/go-memdb" - "github.com/mitchellh/copystructure" hashstructure_v2 "github.com/mitchellh/hashstructure/v2" "github.com/hashicorp/consul/acl" - "github.com/hashicorp/consul/agent/configentry" "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/structs" ) @@ -482,7 +480,6 @@ func (c *ConfigEntry) ResolveServiceConfig(args *structs.ServiceConfigRequest, r } // Fetch all relevant config entries. - index, entries, err := state.ReadResolvedServiceConfigEntries( ws, args.Name, @@ -513,11 +510,12 @@ func (c *ConfigEntry) ResolveServiceConfig(args *structs.ServiceConfigRequest, r ranOnce = true } - thisReply, err := c.computeResolvedServiceConfig( + thisReply, err := computeResolvedServiceConfig( args, upstreamIDs, legacyUpstreams, entries, + c.logger, ) if err != nil { return err @@ -534,214 +532,6 @@ func (c *ConfigEntry) ResolveServiceConfig(args *structs.ServiceConfigRequest, r }) } -func (c *ConfigEntry) computeResolvedServiceConfig( - args *structs.ServiceConfigRequest, - upstreamIDs []structs.ServiceID, - legacyUpstreams bool, - entries *configentry.ResolvedServiceConfigSet, -) (*structs.ServiceConfigResponse, error) { - var thisReply structs.ServiceConfigResponse - - thisReply.MeshGateway.Mode = structs.MeshGatewayModeDefault - - // TODO(freddy) Refactor this into smaller set of state store functions - // Pass the WatchSet to both the service and proxy config lookups. If either is updated during the - // blocking query, this function will be rerun and these state store lookups will both be current. - // We use the default enterprise meta to look up the global proxy defaults because they are not namespaced. - var proxyConfGlobalProtocol string - proxyConf := entries.GetProxyDefaults(args.PartitionOrDefault()) - if proxyConf != nil { - // Apply the proxy defaults to the sidecar's proxy config - mapCopy, err := copystructure.Copy(proxyConf.Config) - if err != nil { - return nil, fmt.Errorf("failed to copy global proxy-defaults: %v", err) - } - thisReply.ProxyConfig = mapCopy.(map[string]interface{}) - thisReply.Mode = proxyConf.Mode - thisReply.TransparentProxy = proxyConf.TransparentProxy - thisReply.MeshGateway = proxyConf.MeshGateway - thisReply.Expose = proxyConf.Expose - - // Extract the global protocol from proxyConf for upstream configs. - rawProtocol := proxyConf.Config["protocol"] - if rawProtocol != nil { - var ok bool - proxyConfGlobalProtocol, ok = rawProtocol.(string) - if !ok { - return nil, fmt.Errorf("invalid protocol type %T", rawProtocol) - } - } - } - - serviceConf := entries.GetServiceDefaults( - structs.NewServiceID(args.Name, &args.EnterpriseMeta), - ) - if serviceConf != nil { - if serviceConf.Expose.Checks { - thisReply.Expose.Checks = true - } - if len(serviceConf.Expose.Paths) >= 1 { - thisReply.Expose.Paths = serviceConf.Expose.Paths - } - if serviceConf.MeshGateway.Mode != structs.MeshGatewayModeDefault { - thisReply.MeshGateway.Mode = serviceConf.MeshGateway.Mode - } - if serviceConf.Protocol != "" { - if thisReply.ProxyConfig == nil { - thisReply.ProxyConfig = make(map[string]interface{}) - } - thisReply.ProxyConfig["protocol"] = serviceConf.Protocol - } - if serviceConf.TransparentProxy.OutboundListenerPort != 0 { - thisReply.TransparentProxy.OutboundListenerPort = serviceConf.TransparentProxy.OutboundListenerPort - } - if serviceConf.TransparentProxy.DialedDirectly { - thisReply.TransparentProxy.DialedDirectly = serviceConf.TransparentProxy.DialedDirectly - } - if serviceConf.Mode != structs.ProxyModeDefault { - thisReply.Mode = serviceConf.Mode - } - - thisReply.Meta = serviceConf.Meta - } - - // First collect all upstreams into a set of seen upstreams. - // Upstreams can come from: - // - Explicitly from proxy registrations, and therefore as an argument to this RPC endpoint - // - Implicitly from centralized upstream config in service-defaults - seenUpstreams := map[structs.ServiceID]struct{}{} - - var ( - noUpstreamArgs = len(upstreamIDs) == 0 && len(args.Upstreams) == 0 - - // Check the args and the resolved value. If it was exclusively set via a config entry, then args.Mode - // will never be transparent because the service config request does not use the resolved value. - tproxy = args.Mode == structs.ProxyModeTransparent || thisReply.Mode == structs.ProxyModeTransparent - ) - - // The upstreams passed as arguments to this endpoint are the upstreams explicitly defined in a proxy registration. - // If no upstreams were passed, then we should only return the resolved config if the proxy is in transparent mode. - // Otherwise we would return a resolved upstream config to a proxy with no configured upstreams. - if noUpstreamArgs && !tproxy { - return &thisReply, nil - } - - // First store all upstreams that were provided in the request - for _, sid := range upstreamIDs { - if _, ok := seenUpstreams[sid]; !ok { - seenUpstreams[sid] = struct{}{} - } - } - - // Then store upstreams inferred from service-defaults and mapify the overrides. - var ( - upstreamConfigs = make(map[structs.ServiceID]*structs.UpstreamConfig) - upstreamDefaults *structs.UpstreamConfig - // usConfigs stores the opaque config map for each upstream and is keyed on the upstream's ID. - usConfigs = make(map[structs.ServiceID]map[string]interface{}) - ) - if serviceConf != nil && serviceConf.UpstreamConfig != nil { - for i, override := range serviceConf.UpstreamConfig.Overrides { - if override.Name == "" { - c.logger.Warn( - "Skipping UpstreamConfig.Overrides entry without a required name field", - "entryIndex", i, - "kind", serviceConf.GetKind(), - "name", serviceConf.GetName(), - "namespace", serviceConf.GetEnterpriseMeta().NamespaceOrEmpty(), - ) - continue // skip this impossible condition - } - seenUpstreams[override.ServiceID()] = struct{}{} - upstreamConfigs[override.ServiceID()] = override - } - if serviceConf.UpstreamConfig.Defaults != nil { - upstreamDefaults = serviceConf.UpstreamConfig.Defaults - - // Store the upstream defaults under a wildcard key so that they can be applied to - // upstreams that are inferred from intentions and do not have explicit upstream configuration. - cfgMap := make(map[string]interface{}) - upstreamDefaults.MergeInto(cfgMap) - - wildcard := structs.NewServiceID(structs.WildcardSpecifier, args.WithWildcardNamespace()) - usConfigs[wildcard] = cfgMap - } - } - - for upstream := range seenUpstreams { - resolvedCfg := make(map[string]interface{}) - - // The protocol of an upstream is resolved in this order: - // 1. Default protocol from proxy-defaults (how all services should be addressed) - // 2. Protocol for upstream service defined in its service-defaults (how the upstream wants to be addressed) - // 3. Protocol defined for the upstream in the service-defaults.(upstream_config.defaults|upstream_config.overrides) of the downstream - // (how the downstream wants to address it) - protocol := proxyConfGlobalProtocol - - upstreamSvcDefaults := entries.GetServiceDefaults( - structs.NewServiceID(upstream.ID, &upstream.EnterpriseMeta), - ) - if upstreamSvcDefaults != nil { - if upstreamSvcDefaults.Protocol != "" { - protocol = upstreamSvcDefaults.Protocol - } - } - - if protocol != "" { - resolvedCfg["protocol"] = protocol - } - - // Merge centralized defaults for all upstreams before configuration for specific upstreams - if upstreamDefaults != nil { - upstreamDefaults.MergeInto(resolvedCfg) - } - - // The MeshGateway value from the proxy registration overrides the one from upstream_defaults - // because it is specific to the proxy instance. - // - // The goal is to flatten the mesh gateway mode in this order: - // 0. Value from centralized upstream_defaults - // 1. Value from local proxy registration - // 2. Value from centralized upstream_config - // 3. Value from local upstream definition. This last step is done in the client's service manager. - if !args.MeshGateway.IsZero() { - resolvedCfg["mesh_gateway"] = args.MeshGateway - } - - if upstreamConfigs[upstream] != nil { - upstreamConfigs[upstream].MergeInto(resolvedCfg) - } - - if len(resolvedCfg) > 0 { - usConfigs[upstream] = resolvedCfg - } - } - - // don't allocate the slices just to not fill them - if len(usConfigs) == 0 { - return &thisReply, nil - } - - if legacyUpstreams { - // For legacy upstreams we return a map that is only keyed on the string ID, since they precede namespaces - thisReply.UpstreamConfigs = make(map[string]map[string]interface{}) - - for us, conf := range usConfigs { - thisReply.UpstreamConfigs[us.ID] = conf - } - - } else { - thisReply.UpstreamIDConfigs = make(structs.OpaqueUpstreamConfigs, 0, len(usConfigs)) - - for us, conf := range usConfigs { - thisReply.UpstreamIDConfigs = append(thisReply.UpstreamIDConfigs, - structs.OpaqueUpstreamConfig{Upstream: us, Config: conf}) - } - } - - return &thisReply, nil -} - func gateWriteToSecondary(targetDC, localDC, primaryDC, kind string) error { // ExportedServices entries are gated from interactions from secondary DCs // because non-default partitions cannot be created in secondaries diff --git a/agent/consul/config_endpoint_test.go b/agent/consul/config_endpoint_test.go index 3c60818e4b..dc0c8d82f1 100644 --- a/agent/consul/config_endpoint_test.go +++ b/agent/consul/config_endpoint_test.go @@ -15,6 +15,7 @@ import ( "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/configentry" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/consul/testrpc" ) @@ -48,7 +49,7 @@ func TestConfigEntry_Apply(t *testing.T) { // wait for cross-dc queries to work testrpc.WaitForLeader(t, s2.RPC, "dc1") - runStep(t, "send the apply request to dc2 - it should get forwarded to dc1", func(t *testing.T) { + testutil.RunStep(t, "send the apply request to dc2 - it should get forwarded to dc1", func(t *testing.T) { updated := &structs.ServiceConfigEntry{ Name: "foo", } @@ -62,7 +63,7 @@ func TestConfigEntry_Apply(t *testing.T) { }) var originalModifyIndex uint64 - runStep(t, "verify the entry was updated in the primary and secondary", func(t *testing.T) { + testutil.RunStep(t, "verify the entry was updated in the primary and secondary", func(t *testing.T) { // the previous RPC should not return until the primary has been updated but will return // before the secondary has the data. _, entry, err := s1.fsm.State().ConfigEntry(nil, structs.ServiceDefaults, "foo", nil) @@ -83,7 +84,7 @@ func TestConfigEntry_Apply(t *testing.T) { originalModifyIndex = serviceConf.ModifyIndex }) - runStep(t, "update the entry again in the primary", func(t *testing.T) { + testutil.RunStep(t, "update the entry again in the primary", func(t *testing.T) { updated := &structs.ServiceConfigEntry{ Name: "foo", MeshGateway: structs.MeshGatewayConfig{ @@ -97,12 +98,12 @@ func TestConfigEntry_Apply(t *testing.T) { Entry: updated, } - runStep(t, "with the wrong CAS", func(t *testing.T) { + testutil.RunStep(t, "with the wrong CAS", func(t *testing.T) { var out bool require.NoError(t, msgpackrpc.CallWithCodec(codec, "ConfigEntry.Apply", &args, &out)) require.False(t, out) }) - runStep(t, "with the correct CAS", func(t *testing.T) { + testutil.RunStep(t, "with the correct CAS", func(t *testing.T) { var out bool args.Entry.GetRaftIndex().ModifyIndex = originalModifyIndex require.NoError(t, msgpackrpc.CallWithCodec(codec, "ConfigEntry.Apply", &args, &out)) @@ -110,7 +111,7 @@ func TestConfigEntry_Apply(t *testing.T) { }) }) - runStep(t, "verify the entry was updated in the state store", func(t *testing.T) { + testutil.RunStep(t, "verify the entry was updated in the state store", func(t *testing.T) { _, entry, err := s1.fsm.State().ConfigEntry(nil, structs.ServiceDefaults, "foo", nil) require.NoError(t, err) @@ -122,10 +123,10 @@ func TestConfigEntry_Apply(t *testing.T) { require.Equal(t, structs.ServiceDefaults, serviceConf.Kind) }) - runStep(t, "verify no-op updates do not advance the raft indexes", func(t *testing.T) { + testutil.RunStep(t, "verify no-op updates do not advance the raft indexes", func(t *testing.T) { var modifyIndex uint64 for i := 0; i < 3; i++ { - runStep(t, fmt.Sprintf("iteration %d", i), func(t *testing.T) { + testutil.RunStep(t, fmt.Sprintf("iteration %d", i), func(t *testing.T) { args := structs.ConfigEntryRequest{ Datacenter: "dc1", Op: structs.ConfigEntryUpsert, @@ -329,7 +330,7 @@ func TestConfigEntry_Get_BlockOnNonExistent(t *testing.T) { require.True(t, out) } - runStep(t, "test the errNotFound path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotFound path", func(t *testing.T) { rpcBlockingQueryTestHarness(t, func(minQueryIndex uint64) (*structs.QueryMeta, <-chan error) { args := structs.ConfigEntryQuery{ @@ -508,7 +509,7 @@ func TestConfigEntry_List_BlockOnNoChange(t *testing.T) { ) } - runStep(t, "test the errNotFound path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotFound path", func(t *testing.T) { run(t, "other") }) @@ -531,7 +532,7 @@ func TestConfigEntry_List_BlockOnNoChange(t *testing.T) { } } - runStep(t, "test the errNotChanged path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotChanged path", func(t *testing.T) { run(t, "completely-different-other") }) } @@ -801,7 +802,7 @@ func TestConfigEntry_Delete(t *testing.T) { // wait for cross-dc queries to work testrpc.WaitForLeader(t, s2.RPC, "dc1") - runStep(t, "create a dummy service in the state store to look up", func(t *testing.T) { + testutil.RunStep(t, "create a dummy service in the state store to look up", func(t *testing.T) { entry := &structs.ServiceConfigEntry{ Kind: structs.ServiceDefaults, Name: "foo", @@ -809,7 +810,7 @@ func TestConfigEntry_Delete(t *testing.T) { require.NoError(t, s1.fsm.State().EnsureConfigEntry(1, entry)) }) - runStep(t, "verify it exists in the primary and is replicated to the secondary", func(t *testing.T) { + testutil.RunStep(t, "verify it exists in the primary and is replicated to the secondary", func(t *testing.T) { // Verify it's there. _, existing, err := s1.fsm.State().ConfigEntry(nil, structs.ServiceDefaults, "foo", nil) require.NoError(t, err) @@ -827,7 +828,7 @@ func TestConfigEntry_Delete(t *testing.T) { }) }) - runStep(t, "send the delete request to dc2 - it should get forwarded to dc1", func(t *testing.T) { + testutil.RunStep(t, "send the delete request to dc2 - it should get forwarded to dc1", func(t *testing.T) { args := structs.ConfigEntryRequest{ Datacenter: "dc2", Entry: &structs.ServiceConfigEntry{ @@ -840,7 +841,7 @@ func TestConfigEntry_Delete(t *testing.T) { require.True(t, out.Deleted) }) - runStep(t, "verify the entry was deleted in the primary and secondary", func(t *testing.T) { + testutil.RunStep(t, "verify the entry was deleted in the primary and secondary", func(t *testing.T) { // Verify the entry was deleted. _, existing, err := s1.fsm.State().ConfigEntry(nil, structs.ServiceDefaults, "foo", nil) require.NoError(t, err) @@ -854,7 +855,7 @@ func TestConfigEntry_Delete(t *testing.T) { }) }) - runStep(t, "delete in dc1 again - should be fine", func(t *testing.T) { + testutil.RunStep(t, "delete in dc1 again - should be fine", func(t *testing.T) { args := structs.ConfigEntryRequest{ Datacenter: "dc1", Entry: &structs.ServiceConfigEntry{ @@ -1132,6 +1133,31 @@ func TestConfigEntry_ResolveServiceConfig_TransparentProxy(t *testing.T) { TransparentProxy: structs.TransparentProxyConfig{OutboundListenerPort: 808}, }, }, + { + name: "from service-defaults with endpoint", + entries: []structs.ConfigEntry{ + &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "foo", + Mode: structs.ProxyModeTransparent, + Destination: &structs.DestinationConfig{ + Address: "hello.world.com", + Port: 443, + }, + }, + }, + request: structs.ServiceConfigRequest{ + Name: "foo", + Datacenter: "dc1", + }, + expect: structs.ServiceConfigResponse{ + Mode: structs.ProxyModeTransparent, + Destination: structs.DestinationConfig{ + Address: "hello.world.com", + Port: 443, + }, + }, + }, { name: "service-defaults overrides proxy-defaults", entries: []structs.ConfigEntry{ @@ -1206,11 +1232,10 @@ func TestConfigEntry_ResolveServiceConfig_Upstreams(t *testing.T) { wildcard := structs.NewServiceID(structs.WildcardSpecifier, structs.WildcardEnterpriseMetaInDefaultPartition()) tt := []struct { - name string - entries []structs.ConfigEntry - request structs.ServiceConfigRequest - proxyCfg structs.ConnectProxyConfig - expect structs.ServiceConfigResponse + name string + entries []structs.ConfigEntry + request structs.ServiceConfigRequest + expect structs.ServiceConfigResponse }{ { name: "upstream config entries from Upstreams and service-defaults", @@ -1809,7 +1834,7 @@ func TestConfigEntry_ResolveServiceConfig_Upstreams_Blocking(t *testing.T) { var index uint64 - runStep(t, "foo and bar should be both http", func(t *testing.T) { + testutil.RunStep(t, "foo and bar should be both http", func(t *testing.T) { // Verify that we get the results of service-defaults for 'foo' and 'bar'. var out structs.ServiceConfigResponse require.NoError(t, msgpackrpc.CallWithCodec(codec, "ConfigEntry.ResolveServiceConfig", @@ -1843,7 +1868,7 @@ func TestConfigEntry_ResolveServiceConfig_Upstreams_Blocking(t *testing.T) { index = out.Index }) - runStep(t, "blocking query for foo wakes on bar entry delete", func(t *testing.T) { + testutil.RunStep(t, "blocking query for foo wakes on bar entry delete", func(t *testing.T) { // Now setup a blocking query for 'foo' while we erase the // service-defaults for bar. @@ -1896,7 +1921,7 @@ func TestConfigEntry_ResolveServiceConfig_Upstreams_Blocking(t *testing.T) { index = out.Index }) - runStep(t, "foo should be http and bar should be unset", func(t *testing.T) { + testutil.RunStep(t, "foo should be http and bar should be unset", func(t *testing.T) { // Verify that we get the results of service-defaults for just 'foo'. var out structs.ServiceConfigResponse require.NoError(t, msgpackrpc.CallWithCodec(codec, "ConfigEntry.ResolveServiceConfig", @@ -1922,7 +1947,7 @@ func TestConfigEntry_ResolveServiceConfig_Upstreams_Blocking(t *testing.T) { index = out.Index }) - runStep(t, "blocking query for foo wakes on foo entry delete", func(t *testing.T) { + testutil.RunStep(t, "blocking query for foo wakes on foo entry delete", func(t *testing.T) { // Now setup a blocking query for 'foo' while we erase the // service-defaults for foo. @@ -2183,7 +2208,7 @@ func TestConfigEntry_ResolveServiceConfig_BlockOnNoChange(t *testing.T) { require.True(t, out) } - runStep(t, "test the errNotFound path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotFound path", func(t *testing.T) { run(t, "other") }) @@ -2199,7 +2224,7 @@ func TestConfigEntry_ResolveServiceConfig_BlockOnNoChange(t *testing.T) { require.True(t, out) } - runStep(t, "test the errNotChanged path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotChanged path", func(t *testing.T) { run(t, "completely-different-other") }) } @@ -2343,13 +2368,6 @@ func TestConfigEntry_ProxyDefaultsExposeConfig(t *testing.T) { require.Equal(t, expose, proxyConf.Expose) } -func runStep(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } -} - func Test_gateWriteToSecondary(t *testing.T) { type args struct { targetDC string diff --git a/agent/consul/connect_ca_endpoint_test.go b/agent/consul/connect_ca_endpoint_test.go index f69960f5f5..ee7d34d4df 100644 --- a/agent/consul/connect_ca_endpoint_test.go +++ b/agent/consul/connect_ca_endpoint_test.go @@ -442,7 +442,7 @@ func TestConnectCAConfig_TriggerRotation(t *testing.T) { // Make sure the new root has been added along with an intermediate // cross-signed by the old root. var newRootPEM string - runStep(t, "ensure roots look correct", func(t *testing.T) { + testutil.RunStep(t, "ensure roots look correct", func(t *testing.T) { args := &structs.DCSpecificRequest{ Datacenter: "dc1", } @@ -483,7 +483,7 @@ func TestConnectCAConfig_TriggerRotation(t *testing.T) { } }) - runStep(t, "verify the new config was set", func(t *testing.T) { + testutil.RunStep(t, "verify the new config was set", func(t *testing.T) { args := &structs.DCSpecificRequest{ Datacenter: "dc1", } @@ -498,7 +498,7 @@ func TestConnectCAConfig_TriggerRotation(t *testing.T) { assert.Equal(t, actual, expected) }) - runStep(t, "verify that new leaf certs get the cross-signed intermediate bundled", func(t *testing.T) { + testutil.RunStep(t, "verify that new leaf certs get the cross-signed intermediate bundled", func(t *testing.T) { // Generate a CSR and request signing spiffeId := connect.TestSpiffeIDService(t, "web") csr, _ := connect.TestCSR(t, spiffeId) @@ -509,7 +509,7 @@ func TestConnectCAConfig_TriggerRotation(t *testing.T) { var reply structs.IssuedCert require.NoError(t, msgpackrpc.CallWithCodec(codec, "ConnectCA.Sign", args, &reply)) - runStep(t, "verify that the cert is signed by the new CA", func(t *testing.T) { + testutil.RunStep(t, "verify that the cert is signed by the new CA", func(t *testing.T) { roots := x509.NewCertPool() require.True(t, roots.AppendCertsFromPEM([]byte(newRootPEM))) leaf, err := connect.ParseCert(reply.CertPEM) @@ -520,7 +520,7 @@ func TestConnectCAConfig_TriggerRotation(t *testing.T) { require.NoError(t, err) }) - runStep(t, "and that it validates via the intermediate", func(t *testing.T) { + testutil.RunStep(t, "and that it validates via the intermediate", func(t *testing.T) { roots := x509.NewCertPool() assert.True(t, roots.AppendCertsFromPEM([]byte(oldRoot.RootCert))) leaf, err := connect.ParseCert(reply.CertPEM) @@ -540,7 +540,7 @@ func TestConnectCAConfig_TriggerRotation(t *testing.T) { require.NoError(t, err) }) - runStep(t, "verify other fields", func(t *testing.T) { + testutil.RunStep(t, "verify other fields", func(t *testing.T) { assert.Equal(t, "web", reply.Service) assert.Equal(t, spiffeId.URI().String(), reply.ServiceURI) }) diff --git a/agent/consul/discovery_chain_endpoint_test.go b/agent/consul/discovery_chain_endpoint_test.go index 97ae5b1243..21c34aa864 100644 --- a/agent/consul/discovery_chain_endpoint_test.go +++ b/agent/consul/discovery_chain_endpoint_test.go @@ -13,6 +13,7 @@ import ( "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/testrpc" ) @@ -313,7 +314,7 @@ func TestDiscoveryChainEndpoint_Get_BlockOnNoChange(t *testing.T) { ) } - runStep(t, "test the errNotFound path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotFound path", func(t *testing.T) { run(t, "other") }) @@ -329,7 +330,7 @@ func TestDiscoveryChainEndpoint_Get_BlockOnNoChange(t *testing.T) { require.True(t, out) } - runStep(t, "test the errNotChanged path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotChanged path", func(t *testing.T) { run(t, "completely-different-other") }) } diff --git a/agent/consul/enterprise_server_oss.go b/agent/consul/enterprise_server_oss.go index 187d59e97f..d6e07ddd8c 100644 --- a/agent/consul/enterprise_server_oss.go +++ b/agent/consul/enterprise_server_oss.go @@ -57,6 +57,12 @@ func (s *Server) revokeEnterpriseLeadership() error { return nil } +func (s *Server) startTenancyDeferredDeletion(ctx context.Context) { +} + +func (s *Server) stopTenancyDeferredDeletion() { +} + func (s *Server) validateEnterpriseRequest(entMeta *acl.EnterpriseMeta, write bool) error { return nil } diff --git a/agent/consul/fsm/snapshot_oss.go b/agent/consul/fsm/snapshot_oss.go index 3ee4c85580..a58f0cf1db 100644 --- a/agent/consul/fsm/snapshot_oss.go +++ b/agent/consul/fsm/snapshot_oss.go @@ -112,17 +112,7 @@ func (s *snapshot) persistNodes(sink raft.SnapshotSink, n := node.(*structs.Node) nodeEntMeta := n.GetEnterpriseMeta() - req := structs.RegisterRequest{ - ID: n.ID, - Node: n.Node, - Datacenter: n.Datacenter, - Address: n.Address, - TaggedAddresses: n.TaggedAddresses, - NodeMeta: n.Meta, - RaftIndex: n.RaftIndex, - EnterpriseMeta: *nodeEntMeta, - PeerName: n.PeerName, - } + req := n.ToRegisterRequest() // Register the node itself if _, err := sink.Write([]byte{byte(structs.RegisterRequestType)}); err != nil { diff --git a/agent/consul/health_endpoint.go b/agent/consul/health_endpoint.go index 5f38ba189d..ee8f328885 100644 --- a/agent/consul/health_endpoint.go +++ b/agent/consul/health_endpoint.go @@ -6,7 +6,9 @@ import ( "github.com/armon/go-metrics" bexpr "github.com/hashicorp/go-bexpr" + "github.com/hashicorp/go-hclog" "github.com/hashicorp/go-memdb" + hashstructure_v2 "github.com/mitchellh/hashstructure/v2" "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/consul/state" @@ -15,7 +17,8 @@ import ( // Health endpoint is used to query the health information type Health struct { - srv *Server + srv *Server + logger hclog.Logger } // ChecksInState is used to get all the checks in a given state @@ -232,6 +235,11 @@ func (h *Health) ServiceNodes(args *structs.ServiceSpecificRequest, reply *struc return err } + var ( + priorMergeHash uint64 + ranMergeOnce bool + ) + err = h.srv.blockingQuery( &args.QueryOptions, &reply.QueryMeta, @@ -243,7 +251,43 @@ func (h *Health) ServiceNodes(args *structs.ServiceSpecificRequest, reply *struc return err } - thisReply.Index, thisReply.Nodes = index, nodes + resolvedNodes := nodes + if args.MergeCentralConfig { + for _, node := range resolvedNodes { + ns := node.Service + if ns.IsSidecarProxy() || ns.IsGateway() { + cfgIndex, mergedns, err := mergeNodeServiceWithCentralConfig(ws, state, args, ns, h.logger) + if err != nil { + return err + } + if cfgIndex > index { + index = cfgIndex + } + *node.Service = *mergedns + } + } + + // Generate a hash of the resolvedNodes driving this response. + // Use it to determine if the response is identical to a prior wakeup. + newMergeHash, err := hashstructure_v2.Hash(resolvedNodes, hashstructure_v2.FormatV2, nil) + if err != nil { + return fmt.Errorf("error hashing reply for spurious wakeup suppression: %w", err) + } + if ranMergeOnce && priorMergeHash == newMergeHash { + // the below assignment is not required as the if condition already validates equality, + // but makes it more clear that prior value is being reset to the new hash on each run. + priorMergeHash = newMergeHash + reply.Index = index + // NOTE: the prior response is still alive inside of *reply, which is desirable + return errNotChanged + } else { + priorMergeHash = newMergeHash + ranMergeOnce = true + } + + } + + thisReply.Index, thisReply.Nodes = index, resolvedNodes if len(args.NodeMetaFilters) > 0 { thisReply.Nodes = nodeMetaFilter(args.NodeMetaFilters, thisReply.Nodes) diff --git a/agent/consul/health_endpoint_test.go b/agent/consul/health_endpoint_test.go index fbd6e4bcb3..ee13483e28 100644 --- a/agent/consul/health_endpoint_test.go +++ b/agent/consul/health_endpoint_test.go @@ -13,6 +13,7 @@ import ( "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" "github.com/hashicorp/consul/lib" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/consul/testrpc" "github.com/hashicorp/consul/types" @@ -694,7 +695,7 @@ func TestHealth_ServiceNodes_BlockingQuery_withFilter(t *testing.T) { register(t, "web", "foo") var lastIndex uint64 - runStep(t, "read original", func(t *testing.T) { + testutil.RunStep(t, "read original", func(t *testing.T) { var out structs.IndexedCheckServiceNodes req := structs.ServiceSpecificRequest{ Datacenter: "dc1", @@ -715,7 +716,7 @@ func TestHealth_ServiceNodes_BlockingQuery_withFilter(t *testing.T) { lastIndex = out.Index }) - runStep(t, "read blocking query result", func(t *testing.T) { + testutil.RunStep(t, "read blocking query result", func(t *testing.T) { req := structs.ServiceSpecificRequest{ Datacenter: "dc1", ServiceName: "web", diff --git a/agent/consul/helper_test.go b/agent/consul/helper_test.go index 807bb8be2b..75048b9138 100644 --- a/agent/consul/helper_test.go +++ b/agent/consul/helper_test.go @@ -1307,7 +1307,7 @@ func registerIntentionUpstreamEntries(t *testing.T, codec rpc.ClientCodec, token } registerTestCatalogEntriesMap(t, codec, registrations) - // Add intentions: deny all and web -> api + // Add intentions: deny all and web -> api and web -> api.example.com entries := []structs.ConfigEntryRequest{ { Datacenter: "dc1", @@ -1323,6 +1323,20 @@ func registerIntentionUpstreamEntries(t *testing.T, codec rpc.ClientCodec, token }, WriteRequest: structs.WriteRequest{Token: token}, }, + { + Datacenter: "dc1", + Entry: &structs.ServiceIntentionsConfigEntry{ + Kind: structs.ServiceIntentions, + Name: "api.example.com", + Sources: []*structs.SourceIntention{ + { + Name: "web", + Action: structs.IntentionActionAllow, + }, + }, + }, + WriteRequest: structs.WriteRequest{Token: token}, + }, { Datacenter: "dc1", Entry: &structs.ServiceIntentionsConfigEntry{ @@ -1342,4 +1356,36 @@ func registerIntentionUpstreamEntries(t *testing.T, codec rpc.ClientCodec, token var out bool require.NoError(t, msgpackrpc.CallWithCodec(codec, "ConfigEntry.Apply", &req, &out)) } + + // Add destinations + dests := []structs.ConfigEntryRequest{ + { + Datacenter: "dc1", + Entry: &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "api.example.com", + Destination: &structs.DestinationConfig{ + Address: "api.example.com", + Port: 443, + }, + }, + WriteRequest: structs.WriteRequest{Token: token}, + }, + { + Datacenter: "dc1", + Entry: &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "kafka.store.com", + Destination: &structs.DestinationConfig{ + Address: "172.168.2.1", + Port: 9003, + }, + }, + WriteRequest: structs.WriteRequest{Token: token}, + }, + } + for _, req := range dests { + var out bool + require.NoError(t, msgpackrpc.CallWithCodec(codec, "ConfigEntry.Apply", &req, &out)) + } } diff --git a/agent/consul/intention_endpoint.go b/agent/consul/intention_endpoint.go index fc6db87db9..a5e99f366a 100644 --- a/agent/consul/intention_endpoint.go +++ b/agent/consul/intention_endpoint.go @@ -77,6 +77,10 @@ func (s *Intention) Apply(args *structs.IntentionRequest, reply *string) error { return ErrConnectNotEnabled } + if args.Intention != nil && args.Intention.SourcePeer != "" { + return fmt.Errorf("SourcePeer field is not supported on this endpoint. Use config entries instead") + } + // Ensure that all service-intentions config entry writes go to the primary // datacenter. These will then be replicated to all the other datacenters. args.Datacenter = s.srv.config.PrimaryDatacenter @@ -432,7 +436,7 @@ func (s *Intention) Get(args *structs.IntentionQueryRequest, reply *structs.Inde } if args.Exact != nil { - // // Finish defaulting the namespace fields. + // Finish defaulting the namespace fields. if args.Exact.SourceNS == "" { args.Exact.SourceNS = entMeta.NamespaceOrDefault() } @@ -764,7 +768,7 @@ func (s *Intention) Check(args *structs.IntentionQueryRequest, reply *structs.In Partition: query.SourcePartition, Name: query.SourceName, } - _, intentions, err := store.IntentionMatchOne(nil, entry, structs.IntentionMatchSource) + _, intentions, err := store.IntentionMatchOne(nil, entry, structs.IntentionMatchSource, structs.IntentionTargetService) if err != nil { return fmt.Errorf("failed to query intentions for %s/%s", query.SourceNS, query.SourceName) } diff --git a/agent/consul/intention_endpoint_test.go b/agent/consul/intention_endpoint_test.go index 1fc0db35e9..199f3ede49 100644 --- a/agent/consul/intention_endpoint_test.go +++ b/agent/consul/intention_endpoint_test.go @@ -273,6 +273,41 @@ func TestIntentionApply_updateGood(t *testing.T) { } } +// TestIntentionApply_NoSourcePeer makes sure that no intention is created with a SourcePeer since this is not supported +func TestIntentionApply_NoSourcePeer(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + + _, s1 := testServer(t) + codec := rpcClient(t, s1) + + waitForLeaderEstablishment(t, s1) + + // Setup a basic record to create + ixn := structs.IntentionRequest{ + Datacenter: "dc1", + Op: structs.IntentionOpCreate, + Intention: &structs.Intention{ + SourceNS: structs.IntentionDefaultNamespace, + SourceName: "test", + SourcePeer: "peer1", + DestinationNS: structs.IntentionDefaultNamespace, + DestinationName: "test", + Action: structs.IntentionActionAllow, + SourceType: structs.IntentionSourceConsul, + Meta: map[string]string{}, + }, + } + var reply string + err := msgpackrpc.CallWithCodec(codec, "Intention.Apply", &ixn, &reply) + require.Error(t, err) + require.Contains(t, err, "SourcePeer field is not supported on this endpoint. Use config entries instead") + require.Empty(t, reply) +} + // Shouldn't be able to update a non-existent intention func TestIntentionApply_updateNonExist(t *testing.T) { if testing.Short() { @@ -1802,7 +1837,7 @@ func TestIntentionMatch_BlockOnNoChange(t *testing.T) { ) } - runStep(t, "test the errNotFound path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotFound path", func(t *testing.T) { run(t, "other", 0) }) @@ -1830,7 +1865,7 @@ func TestIntentionMatch_BlockOnNoChange(t *testing.T) { } } - runStep(t, "test the errNotChanged path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotChanged path", func(t *testing.T) { run(t, "completely-different-other", 2) }) } diff --git a/agent/consul/internal_endpoint.go b/agent/consul/internal_endpoint.go index 718002889c..f1fda470f2 100644 --- a/agent/consul/internal_endpoint.go +++ b/agent/consul/internal_endpoint.go @@ -224,6 +224,27 @@ func (m *Internal) IntentionUpstreams(args *structs.ServiceSpecificRequest, repl if done, err := m.srv.ForwardRPC("Internal.IntentionUpstreams", args, reply); done { return err } + return m.internalUpstreams(args, reply, structs.IntentionTargetService) +} + +// IntentionUpstreamsDestination returns the upstreams of a service. Upstreams are inferred from intentions. +// If intentions allow a connection from the target to some candidate destination, the candidate destination is considered +// an upstream of the target.this is performs the same logic as IntentionUpstreams endpoint but for destination upstreams only. +func (m *Internal) IntentionUpstreamsDestination(args *structs.ServiceSpecificRequest, reply *structs.IndexedServiceList) error { + // Exit early if Connect hasn't been enabled. + if !m.srv.config.ConnectEnabled { + return ErrConnectNotEnabled + } + if args.ServiceName == "" { + return fmt.Errorf("Must provide a service name") + } + if done, err := m.srv.ForwardRPC("Internal.IntentionUpstreamsDestination", args, reply); done { + return err + } + return m.internalUpstreams(args, reply, structs.IntentionTargetDestination) +} + +func (m *Internal) internalUpstreams(args *structs.ServiceSpecificRequest, reply *structs.IndexedServiceList, intentionTarget structs.IntentionTargetType) error { authz, err := m.srv.ResolveTokenAndDefaultMeta(args.Token, &args.EnterpriseMeta, nil) if err != nil { @@ -244,7 +265,7 @@ func (m *Internal) IntentionUpstreams(args *structs.ServiceSpecificRequest, repl defaultDecision := authz.IntentionDefaultAllow(nil) sn := structs.NewServiceName(args.ServiceName, &args.EnterpriseMeta) - index, services, err := state.IntentionTopology(ws, sn, false, defaultDecision) + index, services, err := state.IntentionTopology(ws, sn, false, defaultDecision, intentionTarget) if err != nil { return err } @@ -272,7 +293,7 @@ func (m *Internal) IntentionUpstreams(args *structs.ServiceSpecificRequest, repl }) } -// GatewayServiceNodes returns all the nodes for services associated with a gateway along with their gateway config +// GatewayServiceDump returns all the nodes for services associated with a gateway along with their gateway config func (m *Internal) GatewayServiceDump(args *structs.ServiceSpecificRequest, reply *structs.IndexedServiceDump) error { if done, err := m.srv.ForwardRPC("Internal.GatewayServiceDump", args, reply); done { return err @@ -350,7 +371,7 @@ func (m *Internal) GatewayServiceDump(args *structs.ServiceSpecificRequest, repl return err } -// Match returns the set of intentions that match the given source/destination. +// GatewayIntentions Match returns the set of intentions that match the given source/destination. func (m *Internal) GatewayIntentions(args *structs.IntentionQueryRequest, reply *structs.IndexedIntentions) error { // Forward if necessary if done, err := m.srv.ForwardRPC("Internal.GatewayIntentions", args, reply); done { @@ -405,7 +426,7 @@ func (m *Internal) GatewayIntentions(args *structs.IntentionQueryRequest, reply Partition: gs.Service.PartitionOrDefault(), Name: gs.Service.Name, } - idx, intentions, err := state.IntentionMatchOne(ws, entry, structs.IntentionMatchDestination) + idx, intentions, err := state.IntentionMatchOne(ws, entry, structs.IntentionMatchDestination, structs.IntentionTargetService) if err != nil { return err } @@ -435,6 +456,39 @@ func (m *Internal) GatewayIntentions(args *structs.IntentionQueryRequest, reply ) } +// ExportedPeeredServices is used to query the exported services for peers. +// Returns services as a map of ServiceNames by peer. +func (m *Internal) ExportedPeeredServices(args *structs.DCSpecificRequest, reply *structs.IndexedExportedServiceList) error { + if done, err := m.srv.ForwardRPC("Internal.ExportedPeeredServices", args, reply); done { + return err + } + + authz, err := m.srv.ResolveTokenAndDefaultMeta(args.Token, &args.EnterpriseMeta, nil) + if err != nil { + return err + } + + if err := m.srv.validateEnterpriseRequest(&args.EnterpriseMeta, false); err != nil { + return err + } + + // TODO(peering): acls: mesh gateway needs appropriate wildcard service:read + + return m.srv.blockingQuery( + &args.QueryOptions, + &reply.QueryMeta, + func(ws memdb.WatchSet, state *state.Store) error { + index, serviceMap, err := state.ExportedServicesForAllPeersByName(ws, args.EnterpriseMeta) + if err != nil { + return err + } + + reply.Index, reply.Services = index, serviceMap + m.srv.filterACLWithAuthorizer(authz, reply) + return nil + }) +} + // EventFire is a bit of an odd endpoint, but it allows for a cross-DC RPC // call to fire an event. The primary use case is to enable user events being // triggered in a remote DC. diff --git a/agent/consul/internal_endpoint_test.go b/agent/consul/internal_endpoint_test.go index 7f5e59a0af..3737f3a08d 100644 --- a/agent/consul/internal_endpoint_test.go +++ b/agent/consul/internal_endpoint_test.go @@ -17,6 +17,7 @@ import ( "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" "github.com/hashicorp/consul/lib/stringslice" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/consul/testrpc" "github.com/hashicorp/consul/types" @@ -1121,6 +1122,7 @@ func TestInternal_GatewayServiceDump_Terminating(t *testing.T) { Gateway: structs.NewServiceName("terminating-gateway", nil), Service: structs.NewServiceName("db", nil), GatewayKind: "terminating-gateway", + ServiceKind: structs.GatewayServiceKindService, }, }, { @@ -1154,6 +1156,7 @@ func TestInternal_GatewayServiceDump_Terminating(t *testing.T) { Gateway: structs.NewServiceName("terminating-gateway", nil), Service: structs.NewServiceName("db", nil), GatewayKind: "terminating-gateway", + ServiceKind: structs.GatewayServiceKindService, }, }, { @@ -2320,6 +2323,50 @@ func TestInternal_IntentionUpstreams(t *testing.T) { }) } +func TestInternal_IntentionUpstreamsDestination(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + dir1, s1 := testServer(t) + defer os.RemoveAll(dir1) + defer s1.Shutdown() + + testrpc.WaitForLeader(t, s1.RPC, "dc1") + + codec := rpcClient(t, s1) + defer codec.Close() + + // Services: + // api and api-proxy on node foo + // web and web-proxy on node foo + // + // Intentions + // * -> * (deny) intention + // web -> api (allow) + registerIntentionUpstreamEntries(t, codec, "") + + t.Run("api.example.com", func(t *testing.T) { + retry.Run(t, func(r *retry.R) { + args := structs.ServiceSpecificRequest{ + Datacenter: "dc1", + ServiceName: "web", + } + var out structs.IndexedServiceList + require.NoError(r, msgpackrpc.CallWithCodec(codec, "Internal.IntentionUpstreamsDestination", &args, &out)) + + // foo/api + require.Len(r, out.Services, 1) + + expectUp := structs.ServiceList{ + structs.NewServiceName("api.example.com", structs.DefaultEnterpriseMetaInDefaultPartition()), + } + require.Equal(r, expectUp, out.Services) + }) + }) +} + func TestInternal_IntentionUpstreams_BlockOnNoChange(t *testing.T) { if testing.Short() { t.Skip("too slow for testing.Short") @@ -2385,7 +2432,7 @@ func TestInternal_IntentionUpstreams_BlockOnNoChange(t *testing.T) { ) } - runStep(t, "test the errNotFound path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotFound path", func(t *testing.T) { run(t, "other", 0) }) @@ -2398,7 +2445,7 @@ func TestInternal_IntentionUpstreams_BlockOnNoChange(t *testing.T) { // web -> api (allow) registerIntentionUpstreamEntries(t, codec, "") - runStep(t, "test the errNotChanged path", func(t *testing.T) { + testutil.RunStep(t, "test the errNotChanged path", func(t *testing.T) { run(t, "completely-different-other", 1) }) } diff --git a/agent/consul/kvs_endpoint.go b/agent/consul/kvs_endpoint.go index 24ee58e7e3..434ebcadaa 100644 --- a/agent/consul/kvs_endpoint.go +++ b/agent/consul/kvs_endpoint.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/go-memdb" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" @@ -32,7 +33,7 @@ type KVS struct { // preApply does all the verification of a KVS update that is performed BEFORE // we submit as a Raft log entry. This includes enforcing the lock delay which // must only be done on the leader. -func kvsPreApply(logger hclog.Logger, srv *Server, authz ACLResolveResult, op api.KVOp, dirEnt *structs.DirEntry) (bool, error) { +func kvsPreApply(logger hclog.Logger, srv *Server, authz resolver.Result, op api.KVOp, dirEnt *structs.DirEntry) (bool, error) { // Verify the entry. if dirEnt.Key == "" && op != api.KVDeleteTree { return false, fmt.Errorf("Must provide key") diff --git a/agent/consul/leader.go b/agent/consul/leader.go index aedcb032f2..d38e5015a9 100644 --- a/agent/consul/leader.go +++ b/agent/consul/leader.go @@ -47,6 +47,9 @@ var LeaderSummaries = []prometheus.SummaryDefinition{ const ( newLeaderEvent = "consul:new-leader" barrierWriteTimeout = 2 * time.Minute + + defaultDeletionRoundBurst int = 5 // number replication round bursts + defaultDeletionApplyRate rate.Limit = 10 // raft applies per second ) var ( @@ -72,6 +75,12 @@ func (s *Server) monitorLeadership() { var leaderLoop sync.WaitGroup for { select { + case <-time.After(s.config.MetricsReportingInterval): + if s.IsLeader() { + metrics.SetGauge([]string{"server", "isLeader"}, float32(1)) + } else { + metrics.SetGauge([]string{"server", "isLeader"}, float32(0)) + } case isLeader := <-raftNotifyCh: switch { case isLeader: @@ -307,6 +316,8 @@ func (s *Server) establishLeadership(ctx context.Context) error { s.startPeeringStreamSync(ctx) + s.startDeferredDeletion(ctx) + if err := s.startConnectLeader(ctx); err != nil { return err } @@ -745,6 +756,16 @@ func (s *Server) stopACLReplication() { s.leaderRoutineManager.Stop(aclTokenReplicationRoutineName) } +func (s *Server) startDeferredDeletion(ctx context.Context) { + s.startPeeringDeferredDeletion(ctx) + s.startTenancyDeferredDeletion(ctx) +} + +func (s *Server) stopDeferredDeletion() { + s.leaderRoutineManager.Stop(peeringDeletionRoutineName) + s.stopTenancyDeferredDeletion() +} + func (s *Server) startConfigReplication(ctx context.Context) { if s.config.PrimaryDatacenter == "" || s.config.PrimaryDatacenter == s.config.Datacenter { // replication shouldn't run in the primary DC diff --git a/agent/consul/leader_connect_ca.go b/agent/consul/leader_connect_ca.go index 2239bc6fd4..5e22681645 100644 --- a/agent/consul/leader_connect_ca.go +++ b/agent/consul/leader_connect_ca.go @@ -22,6 +22,7 @@ import ( "github.com/hashicorp/consul/agent/connect/ca" "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/lib/routine" ) @@ -1411,6 +1412,20 @@ func (c *CAManager) AuthorizeAndSignCertificate(csr *x509.CertificateRequest, au if err := allow.NodeWriteAllowed(v.Agent, &authzContext); err != nil { return nil, err } + case *connect.SpiffeIDMeshGateway: + // TODO(peering): figure out what is appropriate here for ACLs + v.GetEnterpriseMeta().FillAuthzContext(&authzContext) + if err := allow.MeshWriteAllowed(&authzContext); err != nil { + return nil, err + } + + // Verify that the DC in the gateway URI matches us. We might relax this + // requirement later but being restrictive for now is safer. + dc := c.serverConf.Datacenter + if v.Datacenter != dc { + return nil, connect.InvalidCSRError("SPIFFE ID in CSR from a different datacenter: %s, "+ + "we are %s", v.Datacenter, dc) + } default: return nil, connect.InvalidCSRError("SPIFFE ID in CSR must be a service or agent ID") } @@ -1435,18 +1450,25 @@ func (c *CAManager) SignCertificate(csr *x509.CertificateRequest, spiffeID conne signingID := connect.SpiffeIDSigningForCluster(config.ClusterID) serviceID, isService := spiffeID.(*connect.SpiffeIDService) agentID, isAgent := spiffeID.(*connect.SpiffeIDAgent) - if !isService && !isAgent { - return nil, connect.InvalidCSRError("SPIFFE ID in CSR must be a service or agent ID") - } + mgwID, isMeshGateway := spiffeID.(*connect.SpiffeIDMeshGateway) var entMeta acl.EnterpriseMeta - if isService { + switch { + case isService: if !signingID.CanSign(spiffeID) { return nil, connect.InvalidCSRError("SPIFFE ID in CSR from a different trust domain: %s, "+ "we are %s", serviceID.Host, signingID.Host()) } entMeta.Merge(serviceID.GetEnterpriseMeta()) - } else { + + case isMeshGateway: + if !signingID.CanSign(spiffeID) { + return nil, connect.InvalidCSRError("SPIFFE ID in CSR from a different trust domain: %s, "+ + "we are %s", mgwID.Host, signingID.Host()) + } + entMeta.Merge(mgwID.GetEnterpriseMeta()) + + case isAgent: // isAgent - if we support more ID types then this would need to be an else if // here we are just automatically fixing the trust domain. For auto-encrypt and // auto-config they make certificate requests before learning about the roots @@ -1470,6 +1492,9 @@ func (c *CAManager) SignCertificate(csr *x509.CertificateRequest, spiffeID conne csr.URIs = uris } entMeta.Merge(agentID.GetEnterpriseMeta()) + + default: + return nil, connect.InvalidCSRError("SPIFFE ID in CSR must be a service, agent, or mesh gateway ID") } commonCfg, err := config.GetCommonConfig() @@ -1522,7 +1547,7 @@ func (c *CAManager) SignCertificate(csr *x509.CertificateRequest, spiffeID conne // Append any intermediates needed by this root. for _, p := range caRoot.IntermediateCerts { - pem = pem + ca.EnsureTrailingNewline(p) + pem = pem + lib.EnsureTrailingNewline(p) } modIdx, err := c.delegate.ApplyCALeafRequest() @@ -1547,12 +1572,19 @@ func (c *CAManager) SignCertificate(csr *x509.CertificateRequest, spiffeID conne CreateIndex: modIdx, }, } - if isService { + + switch { + case isService: reply.Service = serviceID.Service reply.ServiceURI = cert.URIs[0].String() - } else if isAgent { + case isMeshGateway: + reply.Kind = structs.ServiceKindMeshGateway + reply.KindURI = cert.URIs[0].String() + case isAgent: reply.Agent = agentID.Agent reply.AgentURI = cert.URIs[0].String() + default: + return nil, errors.New("not possible") } return &reply, nil diff --git a/agent/consul/leader_connect_ca_test.go b/agent/consul/leader_connect_ca_test.go index 1f2c964b8a..37756eb204 100644 --- a/agent/consul/leader_connect_ca_test.go +++ b/agent/consul/leader_connect_ca_test.go @@ -30,6 +30,7 @@ import ( "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/token" + "github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/consul/testrpc" @@ -58,7 +59,7 @@ func TestCAManager_Initialize_Vault_Secondary_SharedVault(t *testing.T) { } }) - runStep(t, "check primary DC", func(t *testing.T) { + testutil.RunStep(t, "check primary DC", func(t *testing.T) { testrpc.WaitForTestAgent(t, serverDC1.RPC, "dc1") codec := rpcClient(t, serverDC1) @@ -71,7 +72,7 @@ func TestCAManager_Initialize_Vault_Secondary_SharedVault(t *testing.T) { verifyLeafCert(t, roots.Roots[0], leafPEM) }) - runStep(t, "start secondary DC", func(t *testing.T) { + testutil.RunStep(t, "start secondary DC", func(t *testing.T) { _, serverDC2 := testServerWithConfig(t, func(c *Config) { c.Datacenter = "dc2" c.PrimaryDatacenter = "dc1" @@ -647,7 +648,7 @@ func TestCAManager_Initialize_Vault_WithIntermediateAsPrimaryCA(t *testing.T) { } }) - runStep(t, "check primary DC", func(t *testing.T) { + testutil.RunStep(t, "check primary DC", func(t *testing.T) { testrpc.WaitForTestAgent(t, s1.RPC, "dc1") codec := rpcClient(t, s1) @@ -664,7 +665,7 @@ func TestCAManager_Initialize_Vault_WithIntermediateAsPrimaryCA(t *testing.T) { // TODO: renew primary leaf signing cert // TODO: rotate root - runStep(t, "run secondary DC", func(t *testing.T) { + testutil.RunStep(t, "run secondary DC", func(t *testing.T) { _, sDC2 := testServerWithConfig(t, func(c *Config) { c.Datacenter = "dc2" c.PrimaryDatacenter = "dc1" @@ -797,7 +798,7 @@ func TestCAManager_Initialize_Vault_WithExternalTrustedCA(t *testing.T) { var origLeaf string roots := structs.IndexedCARoots{} - runStep(t, "verify primary DC", func(t *testing.T) { + testutil.RunStep(t, "verify primary DC", func(t *testing.T) { codec := rpcClient(t, serverDC1) err := msgpackrpc.CallWithCodec(codec, "ConnectCA.Roots", &structs.DCSpecificRequest{}, &roots) require.NoError(t, err) @@ -825,7 +826,7 @@ func TestCAManager_Initialize_Vault_WithExternalTrustedCA(t *testing.T) { }) var origLeafSecondary string - runStep(t, "start secondary DC", func(t *testing.T) { + testutil.RunStep(t, "start secondary DC", func(t *testing.T) { joinWAN(t, serverDC2, serverDC1) testrpc.WaitForActiveCARoot(t, serverDC2.RPC, "dc2", nil) @@ -840,7 +841,7 @@ func TestCAManager_Initialize_Vault_WithExternalTrustedCA(t *testing.T) { origLeafSecondary = leafPEM }) - runStep(t, "renew leaf signing CA in primary", func(t *testing.T) { + testutil.RunStep(t, "renew leaf signing CA in primary", func(t *testing.T) { previous := serverDC1.caManager.getLeafSigningCertFromRoot(roots.Active()) renewLeafSigningCert(t, serverDC1.caManager, serverDC1.caManager.primaryRenewIntermediate) @@ -862,7 +863,7 @@ func TestCAManager_Initialize_Vault_WithExternalTrustedCA(t *testing.T) { verifyLeafCert(t, roots.Roots[0], origLeaf) }) - runStep(t, "renew leaf signing CA in secondary", func(t *testing.T) { + testutil.RunStep(t, "renew leaf signing CA in secondary", func(t *testing.T) { previous := serverDC2.caManager.getLeafSigningCertFromRoot(roots.Active()) renewLeafSigningCert(t, serverDC2.caManager, serverDC2.caManager.secondaryRequestNewSigningCert) @@ -885,7 +886,7 @@ func TestCAManager_Initialize_Vault_WithExternalTrustedCA(t *testing.T) { verifyLeafCert(t, roots.Roots[0], origLeaf) }) - runStep(t, "rotate root by changing the provider", func(t *testing.T) { + testutil.RunStep(t, "rotate root by changing the provider", func(t *testing.T) { codec := rpcClient(t, serverDC1) req := &structs.CARequest{ Op: structs.CAOpSetConfig, @@ -919,7 +920,7 @@ func TestCAManager_Initialize_Vault_WithExternalTrustedCA(t *testing.T) { verifyLeafCertWithRoots(t, rootsSecondary, origLeafSecondary) }) - runStep(t, "rotate to a different external root", func(t *testing.T) { + testutil.RunStep(t, "rotate to a different external root", func(t *testing.T) { setupPrimaryCA(t, vclient, "pki-primary-2/", rootPEM) codec := rpcClient(t, serverDC1) @@ -1001,7 +1002,7 @@ func generateExternalRootCA(t *testing.T, client *vaultapi.Client) string { "ttl": "2400h", }) require.NoError(t, err, "failed to generate root") - return ca.EnsureTrailingNewline(resp.Data["certificate"].(string)) + return lib.EnsureTrailingNewline(resp.Data["certificate"].(string)) } func setupPrimaryCA(t *testing.T, client *vaultapi.Client, path string, rootPEM string) string { @@ -1033,12 +1034,12 @@ func setupPrimaryCA(t *testing.T, client *vaultapi.Client, path string, rootPEM require.NoError(t, err, "failed to sign intermediate") var buf strings.Builder - buf.WriteString(ca.EnsureTrailingNewline(intermediate.Data["certificate"].(string))) - buf.WriteString(ca.EnsureTrailingNewline(rootPEM)) + buf.WriteString(lib.EnsureTrailingNewline(intermediate.Data["certificate"].(string))) + buf.WriteString(lib.EnsureTrailingNewline(rootPEM)) _, err = client.Logical().Write(path+"/intermediate/set-signed", map[string]interface{}{ "certificate": buf.String(), }) require.NoError(t, err, "failed to set signed intermediate") - return ca.EnsureTrailingNewline(buf.String()) + return lib.EnsureTrailingNewline(buf.String()) } diff --git a/agent/consul/leader_connect_test.go b/agent/consul/leader_connect_test.go index bbb9bf4320..5e90de6b08 100644 --- a/agent/consul/leader_connect_test.go +++ b/agent/consul/leader_connect_test.go @@ -83,7 +83,7 @@ func TestConnectCA_ConfigurationSet_ChangeKeyConfig_Primary(t *testing.T) { require.Equal(r, src.keyBits, caRoot.PrivateKeyBits) }) - runStep(t, "sign leaf cert and make sure chain is correct", func(t *testing.T) { + testutil.RunStep(t, "sign leaf cert and make sure chain is correct", func(t *testing.T) { spiffeService := &connect.SpiffeIDService{ Host: "node1", Namespace: "default", @@ -103,14 +103,14 @@ func TestConnectCA_ConfigurationSet_ChangeKeyConfig_Primary(t *testing.T) { require.NoError(t, connect.ValidateLeaf(caRoot.RootCert, leafPEM, []string{})) }) - runStep(t, "verify persisted state is correct", func(t *testing.T) { + testutil.RunStep(t, "verify persisted state is correct", func(t *testing.T) { state := srv.fsm.State() _, caConfig, err := state.CAConfig(nil) require.NoError(t, err) require.Equal(t, providerState, caConfig.State) }) - runStep(t, "change roots", func(t *testing.T) { + testutil.RunStep(t, "change roots", func(t *testing.T) { // Update a config value newConfig := &structs.CAConfiguration{ Provider: "consul", @@ -145,7 +145,7 @@ func TestConnectCA_ConfigurationSet_ChangeKeyConfig_Primary(t *testing.T) { require.Equal(r, dst.keyBits, newCaRoot.PrivateKeyBits) }) - runStep(t, "sign leaf cert and make sure NEW chain is correct", func(t *testing.T) { + testutil.RunStep(t, "sign leaf cert and make sure NEW chain is correct", func(t *testing.T) { spiffeService := &connect.SpiffeIDService{ Host: "node1", Namespace: "default", @@ -165,7 +165,7 @@ func TestConnectCA_ConfigurationSet_ChangeKeyConfig_Primary(t *testing.T) { require.NoError(t, connect.ValidateLeaf(newCaRoot.RootCert, leafPEM, []string{})) }) - runStep(t, "verify persisted state is still correct", func(t *testing.T) { + testutil.RunStep(t, "verify persisted state is still correct", func(t *testing.T) { state := srv.fsm.State() _, caConfig, err := state.CAConfig(nil) require.NoError(t, err) diff --git a/agent/consul/leader_peering.go b/agent/consul/leader_peering.go index d1dfc8c432..f698e48ec8 100644 --- a/agent/consul/leader_peering.go +++ b/agent/consul/leader_peering.go @@ -12,11 +12,17 @@ import ( "github.com/hashicorp/go-memdb" "github.com/hashicorp/go-multierror" "github.com/hashicorp/go-uuid" + "golang.org/x/time/rate" "google.golang.org/grpc" "google.golang.org/grpc/credentials" + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/pool" + "github.com/hashicorp/consul/agent/rpc/peering" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/logging" "github.com/hashicorp/consul/proto/pbpeering" ) @@ -49,6 +55,39 @@ func (s *Server) stopPeeringStreamSync() { // syncPeeringsAndBlock is a long-running goroutine that is responsible for watching // changes to peerings in the state store and managing streams to those peers. func (s *Server) syncPeeringsAndBlock(ctx context.Context, logger hclog.Logger, cancelFns map[string]context.CancelFunc) error { + // We have to be careful not to introduce a data race here. We want to + // compare the current known peerings in the state store with known + // connected streams to know when we should TERMINATE stray peerings. + // + // If you read the current peerings from the state store, then read the + // current established streams you could lose the data race and have the + // sequence of events be: + // + // 1. list peerings [A,B,C] + // 2. persist new peering [D] + // 3. accept new stream for [D] + // 4. list streams [A,B,C,D] + // 5. terminate [D] + // + // Which is wrong. If we instead ensure that (4) happens before (1), given + // that you can't get an established stream without first passing a "does + // this peering exist in the state store?" inquiry then this happens: + // + // 1. list streams [A,B,C] + // 2. list peerings [A,B,C] + // 3. persist new peering [D] + // 4. accept new stream for [D] + // 5. terminate [] + // + // Or even this is fine: + // + // 1. list streams [A,B,C] + // 2. persist new peering [D] + // 3. accept new stream for [D] + // 4. list peerings [A,B,C,D] + // 5. terminate [] + connectedStreams := s.peeringService.ConnectedStreams() + state := s.fsm.State() // Pull the state store contents and set up to block for changes. @@ -80,18 +119,24 @@ func (s *Server) syncPeeringsAndBlock(ctx context.Context, logger hclog.Logger, for _, peer := range peers { logger.Trace("evaluating stored peer", "peer", peer.Name, "should_dial", peer.ShouldDial(), "sequence_id", seq) - if !peer.ShouldDial() { + if !peer.IsActive() { + // The peering was marked for deletion by ourselves or our peer, no need to dial or track them. continue } - // TODO(peering) Account for deleted peers that are still in the state store + // Track all active peerings,since the reconciliation loop below applies to the token generator as well. stored[peer.ID] = struct{}{} + if !peer.ShouldDial() { + // We do not need to dial peerings where we generated the peering token. + continue + } + status, found := s.peeringService.StreamStatus(peer.ID) // TODO(peering): If there is new peering data and a connected stream, should we tear down the stream? // If the data in the updated token is bad, the user wouldn't know until the old servers/certs become invalid. - // Alternatively we could do a basic Ping from the initiate peering endpoint to avoid dealing with that here. + // Alternatively we could do a basic Ping from the establish peering endpoint to avoid dealing with that here. if found && status.Connected { // Nothing to do when we already have an active stream to the peer. continue @@ -120,7 +165,7 @@ func (s *Server) syncPeeringsAndBlock(ctx context.Context, logger hclog.Logger, // Clean up active streams of peerings that were deleted from the state store. // TODO(peering): This is going to trigger shutting down peerings we generated a token for. Is that OK? - for stream, doneCh := range s.peeringService.ConnectedStreams() { + for stream, doneCh := range connectedStreams { if _, ok := stored[stream]; ok { // Active stream is in the state store, nothing to do. continue @@ -145,6 +190,8 @@ func (s *Server) syncPeeringsAndBlock(ctx context.Context, logger hclog.Logger, } func (s *Server) establishStream(ctx context.Context, logger hclog.Logger, peer *pbpeering.Peering, cancelFns map[string]context.CancelFunc) error { + logger = logger.With("peer_name", peer.Name, "peer_id", peer.ID) + tlsOption := grpc.WithInsecure() if len(peer.PeerCAPems) > 0 { var haveCerts bool @@ -174,7 +221,7 @@ func (s *Server) establishStream(ctx context.Context, logger hclog.Logger, peer buffer = buffer.Next() } - logger.Trace("establishing stream to peer", "peer_id", peer.ID) + logger.Trace("establishing stream to peer") retryCtx, cancel := context.WithCancel(ctx) cancelFns[peer.ID] = cancel @@ -190,7 +237,7 @@ func (s *Server) establishStream(ctx context.Context, logger hclog.Logger, peer return fmt.Errorf("peer server address type %T is not a string", buffer.Value) } - logger.Trace("dialing peer", "peer_id", peer.ID, "addr", addr) + logger.Trace("dialing peer", "addr", addr) conn, err := grpc.DialContext(retryCtx, addr, grpc.WithContextDialer(newPeerDialer(addr)), grpc.WithBlock(), @@ -207,10 +254,23 @@ func (s *Server) establishStream(ctx context.Context, logger hclog.Logger, peer return err } - err = s.peeringService.HandleStream(peer.ID, peer.PeerID, stream) + streamReq := peering.HandleStreamRequest{ + LocalID: peer.ID, + RemoteID: peer.PeerID, + PeerName: peer.Name, + Partition: peer.Partition, + Stream: stream, + } + err = s.peeringService.HandleStream(streamReq) + // A nil error indicates that the peering was deleted and the stream needs to be gracefully shutdown. if err == nil { + stream.CloseSend() + s.peeringService.DrainStream(streamReq) + // This will cancel the retry-er context, letting us break out of this loop when we want to shut down the stream. cancel() + + logger.Info("closed outbound stream") } return err @@ -242,3 +302,156 @@ func newPeerDialer(peerAddr string) func(context.Context, string) (net.Conn, err return conn, nil } } + +func (s *Server) startPeeringDeferredDeletion(ctx context.Context) { + s.leaderRoutineManager.Start(ctx, peeringDeletionRoutineName, s.runPeeringDeletions) +} + +// runPeeringDeletions watches for peerings marked for deletions and then cleans up data for them. +func (s *Server) runPeeringDeletions(ctx context.Context) error { + logger := s.loggers.Named(logging.Peering) + + // This limiter's purpose is to control the rate of raft applies caused by the deferred deletion + // process. This includes deletion of the peerings themselves in addition to any peering data + raftLimiter := rate.NewLimiter(defaultDeletionApplyRate, int(defaultDeletionApplyRate)) + for { + ws := memdb.NewWatchSet() + state := s.fsm.State() + _, peerings, err := s.fsm.State().PeeringListDeleted(ws) + if err != nil { + logger.Warn("encountered an error while searching for deleted peerings", "error", err) + continue + } + + if len(peerings) == 0 { + ws.Add(state.AbandonCh()) + + // wait for a peering to be deleted or the routine to be cancelled + if err := ws.WatchCtx(ctx); err != nil { + return err + } + continue + } + + for _, p := range peerings { + s.removePeeringAndData(ctx, logger, raftLimiter, p) + } + } +} + +// removepPeeringAndData removes data imported for a peering and the peering itself. +func (s *Server) removePeeringAndData(ctx context.Context, logger hclog.Logger, limiter *rate.Limiter, peer *pbpeering.Peering) { + logger = logger.With("peer_name", peer.Name, "peer_id", peer.ID) + entMeta := *structs.NodeEnterpriseMetaInPartition(peer.Partition) + + // First delete all imported data. + // By deleting all imported nodes we also delete all services and checks registered on them. + if err := s.deleteAllNodes(ctx, limiter, entMeta, peer.Name); err != nil { + logger.Error("Failed to remove Nodes for peer", "error", err) + return + } + if err := s.deleteTrustBundleFromPeer(ctx, limiter, entMeta, peer.Name); err != nil { + logger.Error("Failed to remove trust bundle for peer", "error", err) + return + } + + if err := limiter.Wait(ctx); err != nil { + return + } + + if peer.State == pbpeering.PeeringState_TERMINATED { + // For peerings terminated by our peer we only clean up the local data, we do not delete the peering itself. + // This is to avoid a situation where the peering disappears without the local operator's knowledge. + return + } + + // Once all imported data is deleted, the peering itself is also deleted. + req := &pbpeering.PeeringDeleteRequest{ + Name: peer.Name, + Partition: acl.PartitionOrDefault(peer.Partition), + } + _, err := s.raftApplyProtobuf(structs.PeeringDeleteType, req) + if err != nil { + logger.Error("failed to apply full peering deletion", "error", err) + return + } +} + +// deleteAllNodes will delete all nodes in a partition or all nodes imported from a given peer name. +func (s *Server) deleteAllNodes(ctx context.Context, limiter *rate.Limiter, entMeta acl.EnterpriseMeta, peerName string) error { + // Same as ACL batch upsert size + nodeBatchSizeBytes := 256 * 1024 + + _, nodes, err := s.fsm.State().NodeDump(nil, &entMeta, peerName) + if err != nil { + return err + } + if len(nodes) == 0 { + return nil + } + + i := 0 + for { + var ops structs.TxnOps + for batchSize := 0; batchSize < nodeBatchSizeBytes && i < len(nodes); i++ { + entry := nodes[i] + + op := structs.TxnOp{ + Node: &structs.TxnNodeOp{ + Verb: api.NodeDelete, + Node: structs.Node{ + Node: entry.Node, + Partition: entry.Partition, + PeerName: entry.PeerName, + }, + }, + } + ops = append(ops, &op) + + // Add entries to the transaction until it reaches the max batch size + batchSize += len(entry.Node) + len(entry.Partition) + len(entry.PeerName) + } + + // Send each batch as a TXN Req to avoid sending one at a time + req := structs.TxnRequest{ + Datacenter: s.config.Datacenter, + Ops: ops, + } + if len(req.Ops) > 0 { + if err := limiter.Wait(ctx); err != nil { + return err + } + + _, err := s.raftApplyMsgpack(structs.TxnRequestType, &req) + if err != nil { + return err + } + } else { + break + } + } + + return nil +} + +// deleteTrustBundleFromPeer deletes the trust bundle imported from a peer, if present. +func (s *Server) deleteTrustBundleFromPeer(ctx context.Context, limiter *rate.Limiter, entMeta acl.EnterpriseMeta, peerName string) error { + _, bundle, err := s.fsm.State().PeeringTrustBundleRead(nil, state.Query{Value: peerName, EnterpriseMeta: entMeta}) + if err != nil { + return err + } + if bundle == nil { + return nil + } + + if err := limiter.Wait(ctx); err != nil { + return err + } + + req := &pbpeering.PeeringTrustBundleDeleteRequest{ + Name: peerName, + Partition: entMeta.PartitionOrDefault(), + } + _, err = s.raftApplyProtobuf(structs.PeeringTrustBundleDeleteType, req) + return err +} diff --git a/agent/consul/leader_peering_test.go b/agent/consul/leader_peering_test.go index dd79529b38..3e2f6c8ff9 100644 --- a/agent/consul/leader_peering_test.go +++ b/agent/consul/leader_peering_test.go @@ -7,6 +7,8 @@ import ( "testing" "time" + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/api" "github.com/stretchr/testify/require" "google.golang.org/grpc" @@ -88,10 +90,12 @@ func TestLeader_PeeringSync_Lifecycle_ClientDeletion(t *testing.T) { require.True(r, status.Connected) }) - // Delete the peering to trigger the termination sequence - require.NoError(t, s2.fsm.State().PeeringDelete(2000, state.Query{ - Value: "my-peer-s1", - })) + // Delete the peering to trigger the termination sequence. + deleted := &pbpeering.Peering{ + Name: "my-peer-s1", + DeletedAt: structs.TimeToProto(time.Now()), + } + require.NoError(t, s2.fsm.State().PeeringWrite(2000, deleted)) s2.logger.Trace("deleted peering for my-peer-s1") retry.Run(t, func(r *retry.R) { @@ -175,10 +179,12 @@ func TestLeader_PeeringSync_Lifecycle_ServerDeletion(t *testing.T) { require.True(r, status.Connected) }) - // Delete the peering from the server peer to trigger the termination sequence - require.NoError(t, s1.fsm.State().PeeringDelete(2000, state.Query{ - Value: "my-peer-s2", - })) + // Delete the peering from the server peer to trigger the termination sequence. + deleted := &pbpeering.Peering{ + Name: "my-peer-s2", + DeletedAt: structs.TimeToProto(time.Now()), + } + require.NoError(t, s1.fsm.State().PeeringWrite(2000, deleted)) s2.logger.Trace("deleted peering for my-peer-s1") retry.Run(t, func(r *retry.R) { @@ -186,7 +192,7 @@ func TestLeader_PeeringSync_Lifecycle_ServerDeletion(t *testing.T) { require.False(r, found) }) - // s2 should have received the termination message and updated the peering state + // s2 should have received the termination message and updated the peering state. retry.Run(t, func(r *retry.R) { _, peering, err := s2.fsm.State().PeeringRead(nil, state.Query{ Value: "my-peer-s1", @@ -195,3 +201,159 @@ func TestLeader_PeeringSync_Lifecycle_ServerDeletion(t *testing.T) { require.Equal(r, pbpeering.PeeringState_TERMINATED, peering.State) }) } + +func TestLeader_Peering_DeferredDeletion(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + // TODO(peering): Configure with TLS + _, s1 := testServerWithConfig(t, func(c *Config) { + c.NodeName = "s1.dc1" + c.Datacenter = "dc1" + c.TLSConfig.Domain = "consul" + }) + testrpc.WaitForLeader(t, s1.RPC, "dc1") + + var ( + peerName = "my-peer-s2" + defaultMeta = acl.DefaultEnterpriseMeta() + lastIdx = uint64(0) + ) + + // Simulate a peering initiation event by writing a peering to the state store. + lastIdx++ + require.NoError(t, s1.fsm.State().PeeringWrite(lastIdx, &pbpeering.Peering{ + Name: peerName, + })) + + // Insert imported data: nodes, services, checks, trust bundle + lastIdx = insertTestPeeringData(t, s1.fsm.State(), peerName, lastIdx) + + // Mark the peering for deletion to trigger the termination sequence. + lastIdx++ + require.NoError(t, s1.fsm.State().PeeringWrite(lastIdx, &pbpeering.Peering{ + Name: peerName, + DeletedAt: structs.TimeToProto(time.Now()), + })) + + // Ensure imported data is gone: + retry.Run(t, func(r *retry.R) { + _, csn, err := s1.fsm.State().ServiceDump(nil, "", false, defaultMeta, peerName) + require.NoError(r, err) + require.Len(r, csn, 0) + + _, checks, err := s1.fsm.State().ChecksInState(nil, api.HealthAny, defaultMeta, peerName) + require.NoError(r, err) + require.Len(r, checks, 0) + + _, nodes, err := s1.fsm.State().NodeDump(nil, defaultMeta, peerName) + require.NoError(r, err) + require.Len(r, nodes, 0) + + _, tb, err := s1.fsm.State().PeeringTrustBundleRead(nil, state.Query{Value: peerName}) + require.NoError(r, err) + require.Nil(r, tb) + }) + + // The leader routine should pick up the deletion and finish deleting the peering. + retry.Run(t, func(r *retry.R) { + _, peering, err := s1.fsm.State().PeeringRead(nil, state.Query{ + Value: peerName, + }) + require.NoError(r, err) + require.Nil(r, peering) + }) +} + +func insertTestPeeringData(t *testing.T, store *state.Store, peer string, lastIdx uint64) uint64 { + lastIdx++ + require.NoError(t, store.PeeringTrustBundleWrite(lastIdx, &pbpeering.PeeringTrustBundle{ + TrustDomain: "952e6bd1-f4d6-47f7-83ff-84b31babaa17", + PeerName: peer, + RootPEMs: []string{"certificate bundle"}, + })) + + lastIdx++ + require.NoError(t, store.EnsureRegistration(lastIdx, &structs.RegisterRequest{ + Node: "aaa", + Address: "10.0.0.1", + PeerName: peer, + Service: &structs.NodeService{ + Service: "a-service", + ID: "a-service-1", + Port: 8080, + PeerName: peer, + }, + Checks: structs.HealthChecks{ + { + CheckID: "a-service-1-check", + ServiceName: "a-service", + ServiceID: "a-service-1", + Node: "aaa", + PeerName: peer, + }, + { + CheckID: structs.SerfCheckID, + Node: "aaa", + PeerName: peer, + }, + }, + })) + + lastIdx++ + require.NoError(t, store.EnsureRegistration(lastIdx, &structs.RegisterRequest{ + Node: "bbb", + Address: "10.0.0.2", + PeerName: peer, + Service: &structs.NodeService{ + Service: "b-service", + ID: "b-service-1", + Port: 8080, + PeerName: peer, + }, + Checks: structs.HealthChecks{ + { + CheckID: "b-service-1-check", + ServiceName: "b-service", + ServiceID: "b-service-1", + Node: "bbb", + PeerName: peer, + }, + { + CheckID: structs.SerfCheckID, + Node: "bbb", + PeerName: peer, + }, + }, + })) + + lastIdx++ + require.NoError(t, store.EnsureRegistration(lastIdx, &structs.RegisterRequest{ + Node: "ccc", + Address: "10.0.0.3", + PeerName: peer, + Service: &structs.NodeService{ + Service: "c-service", + ID: "c-service-1", + Port: 8080, + PeerName: peer, + }, + Checks: structs.HealthChecks{ + { + CheckID: "c-service-1-check", + ServiceName: "c-service", + ServiceID: "c-service-1", + Node: "ccc", + PeerName: peer, + }, + { + CheckID: structs.SerfCheckID, + Node: "ccc", + PeerName: peer, + }, + }, + })) + + return lastIdx +} diff --git a/agent/consul/leader_test.go b/agent/consul/leader_test.go index c043fa0f5b..7b04518fc4 100644 --- a/agent/consul/leader_test.go +++ b/agent/consul/leader_test.go @@ -402,7 +402,7 @@ func TestLeader_CheckServersMeta(t *testing.T) { } // s3 should be registered retry.Run(t, func(r *retry.R) { - _, service, err := state.NodeService(s3.config.NodeName, "consul", &consulService.EnterpriseMeta, "") + _, service, err := state.NodeService(nil, s3.config.NodeName, "consul", &consulService.EnterpriseMeta, "") if err != nil { r.Fatalf("err: %v", err) } @@ -438,7 +438,7 @@ func TestLeader_CheckServersMeta(t *testing.T) { if err != nil { r.Fatalf("Unexpected error :%v", err) } - _, service, err := state.NodeService(s3.config.NodeName, "consul", &consulService.EnterpriseMeta, "") + _, service, err := state.NodeService(nil, s3.config.NodeName, "consul", &consulService.EnterpriseMeta, "") if err != nil { r.Fatalf("err: %v", err) } @@ -2336,7 +2336,7 @@ func TestLeader_EnableVirtualIPs(t *testing.T) { }) require.NoError(t, err) - _, node, err := state.NodeService("bar", "tgate1", nil, "") + _, node, err := state.NodeService(nil, "bar", "tgate1", nil, "") require.NoError(t, err) sn := structs.ServiceName{Name: "api"} key := structs.ServiceGatewayVirtualIPTag(sn) diff --git a/agent/consul/merge_service_config.go b/agent/consul/merge_service_config.go new file mode 100644 index 0000000000..027a2d3f5c --- /dev/null +++ b/agent/consul/merge_service_config.go @@ -0,0 +1,411 @@ +package consul + +import ( + "fmt" + + "github.com/hashicorp/consul/agent/configentry" + "github.com/hashicorp/consul/agent/consul/state" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/go-hclog" + memdb "github.com/hashicorp/go-memdb" + "github.com/imdario/mergo" + "github.com/mitchellh/copystructure" +) + +// mergeNodeServiceWithCentralConfig merges a service instance (NodeService) with the +// proxy-defaults/global and service-defaults/:service config entries. +// This common helper is used by the blocking query function of different RPC endpoints +// that need to return a fully resolved service defintion. +func mergeNodeServiceWithCentralConfig( + ws memdb.WatchSet, + state *state.Store, + args *structs.ServiceSpecificRequest, + ns *structs.NodeService, + logger hclog.Logger) (uint64, *structs.NodeService, error) { + + serviceName := ns.Service + var upstreams []structs.ServiceID + if ns.IsSidecarProxy() { + // This is a sidecar proxy, ignore the proxy service's config since we are + // managed by the target service config. + serviceName = ns.Proxy.DestinationServiceName + + // Also if we have any upstreams defined, add them to the defaults lookup request + // so we can learn about their configs. + for _, us := range ns.Proxy.Upstreams { + if us.DestinationType == "" || us.DestinationType == structs.UpstreamDestTypeService { + sid := us.DestinationID() + sid.EnterpriseMeta.Merge(&ns.EnterpriseMeta) + upstreams = append(upstreams, sid) + } + } + } + + configReq := &structs.ServiceConfigRequest{ + Name: serviceName, + Datacenter: args.Datacenter, + QueryOptions: args.QueryOptions, + MeshGateway: ns.Proxy.MeshGateway, + Mode: ns.Proxy.Mode, + UpstreamIDs: upstreams, + EnterpriseMeta: ns.EnterpriseMeta, + } + + // prefer using this vs directly calling the ConfigEntry.ResolveServiceConfig RPC + // so as to pass down the same watch set to also watch on changes to + // proxy-defaults/global and service-defaults. + cfgIndex, configEntries, err := state.ReadResolvedServiceConfigEntries( + ws, + configReq.Name, + &configReq.EnterpriseMeta, + upstreams, + configReq.Mode, + ) + if err != nil { + return 0, nil, fmt.Errorf("Failure looking up service config entries for %s: %v", + ns.ID, err) + } + + defaults, err := computeResolvedServiceConfig( + configReq, + upstreams, + false, + configEntries, + logger, + ) + if err != nil { + return 0, nil, fmt.Errorf("Failure computing service defaults for %s: %v", + ns.ID, err) + } + + mergedns, err := MergeServiceConfig(defaults, ns) + if err != nil { + return 0, nil, fmt.Errorf("Failure merging service definition with config entry defaults for %s: %v", + ns.ID, err) + } + + return cfgIndex, mergedns, nil +} + +func computeResolvedServiceConfig( + args *structs.ServiceConfigRequest, + upstreamIDs []structs.ServiceID, + legacyUpstreams bool, + entries *configentry.ResolvedServiceConfigSet, + logger hclog.Logger, +) (*structs.ServiceConfigResponse, error) { + var thisReply structs.ServiceConfigResponse + + thisReply.MeshGateway.Mode = structs.MeshGatewayModeDefault + + // TODO(freddy) Refactor this into smaller set of state store functions + // Pass the WatchSet to both the service and proxy config lookups. If either is updated during the + // blocking query, this function will be rerun and these state store lookups will both be current. + // We use the default enterprise meta to look up the global proxy defaults because they are not namespaced. + var proxyConfGlobalProtocol string + proxyConf := entries.GetProxyDefaults(args.PartitionOrDefault()) + if proxyConf != nil { + // Apply the proxy defaults to the sidecar's proxy config + mapCopy, err := copystructure.Copy(proxyConf.Config) + if err != nil { + return nil, fmt.Errorf("failed to copy global proxy-defaults: %v", err) + } + thisReply.ProxyConfig = mapCopy.(map[string]interface{}) + thisReply.Mode = proxyConf.Mode + thisReply.TransparentProxy = proxyConf.TransparentProxy + thisReply.MeshGateway = proxyConf.MeshGateway + thisReply.Expose = proxyConf.Expose + + // Extract the global protocol from proxyConf for upstream configs. + rawProtocol := proxyConf.Config["protocol"] + if rawProtocol != nil { + var ok bool + proxyConfGlobalProtocol, ok = rawProtocol.(string) + if !ok { + return nil, fmt.Errorf("invalid protocol type %T", rawProtocol) + } + } + } + + serviceConf := entries.GetServiceDefaults( + structs.NewServiceID(args.Name, &args.EnterpriseMeta), + ) + if serviceConf != nil { + if serviceConf.Expose.Checks { + thisReply.Expose.Checks = true + } + if len(serviceConf.Expose.Paths) >= 1 { + thisReply.Expose.Paths = serviceConf.Expose.Paths + } + if serviceConf.MeshGateway.Mode != structs.MeshGatewayModeDefault { + thisReply.MeshGateway.Mode = serviceConf.MeshGateway.Mode + } + if serviceConf.Protocol != "" { + if thisReply.ProxyConfig == nil { + thisReply.ProxyConfig = make(map[string]interface{}) + } + thisReply.ProxyConfig["protocol"] = serviceConf.Protocol + } + if serviceConf.TransparentProxy.OutboundListenerPort != 0 { + thisReply.TransparentProxy.OutboundListenerPort = serviceConf.TransparentProxy.OutboundListenerPort + } + if serviceConf.TransparentProxy.DialedDirectly { + thisReply.TransparentProxy.DialedDirectly = serviceConf.TransparentProxy.DialedDirectly + } + if serviceConf.Mode != structs.ProxyModeDefault { + thisReply.Mode = serviceConf.Mode + } + if serviceConf.Destination != nil { + thisReply.Destination = *serviceConf.Destination + } + + thisReply.Meta = serviceConf.Meta + } + + // First collect all upstreams into a set of seen upstreams. + // Upstreams can come from: + // - Explicitly from proxy registrations, and therefore as an argument to this RPC endpoint + // - Implicitly from centralized upstream config in service-defaults + seenUpstreams := map[structs.ServiceID]struct{}{} + + var ( + noUpstreamArgs = len(upstreamIDs) == 0 && len(args.Upstreams) == 0 + + // Check the args and the resolved value. If it was exclusively set via a config entry, then args.Mode + // will never be transparent because the service config request does not use the resolved value. + tproxy = args.Mode == structs.ProxyModeTransparent || thisReply.Mode == structs.ProxyModeTransparent + ) + + // The upstreams passed as arguments to this endpoint are the upstreams explicitly defined in a proxy registration. + // If no upstreams were passed, then we should only return the resolved config if the proxy is in transparent mode. + // Otherwise we would return a resolved upstream config to a proxy with no configured upstreams. + if noUpstreamArgs && !tproxy { + return &thisReply, nil + } + + // First store all upstreams that were provided in the request + for _, sid := range upstreamIDs { + if _, ok := seenUpstreams[sid]; !ok { + seenUpstreams[sid] = struct{}{} + } + } + + // Then store upstreams inferred from service-defaults and mapify the overrides. + var ( + upstreamConfigs = make(map[structs.ServiceID]*structs.UpstreamConfig) + upstreamDefaults *structs.UpstreamConfig + // usConfigs stores the opaque config map for each upstream and is keyed on the upstream's ID. + usConfigs = make(map[structs.ServiceID]map[string]interface{}) + ) + if serviceConf != nil && serviceConf.UpstreamConfig != nil { + for i, override := range serviceConf.UpstreamConfig.Overrides { + if override.Name == "" { + logger.Warn( + "Skipping UpstreamConfig.Overrides entry without a required name field", + "entryIndex", i, + "kind", serviceConf.GetKind(), + "name", serviceConf.GetName(), + "namespace", serviceConf.GetEnterpriseMeta().NamespaceOrEmpty(), + ) + continue // skip this impossible condition + } + seenUpstreams[override.ServiceID()] = struct{}{} + upstreamConfigs[override.ServiceID()] = override + } + if serviceConf.UpstreamConfig.Defaults != nil { + upstreamDefaults = serviceConf.UpstreamConfig.Defaults + + // Store the upstream defaults under a wildcard key so that they can be applied to + // upstreams that are inferred from intentions and do not have explicit upstream configuration. + cfgMap := make(map[string]interface{}) + upstreamDefaults.MergeInto(cfgMap) + + wildcard := structs.NewServiceID(structs.WildcardSpecifier, args.WithWildcardNamespace()) + usConfigs[wildcard] = cfgMap + } + } + + for upstream := range seenUpstreams { + resolvedCfg := make(map[string]interface{}) + + // The protocol of an upstream is resolved in this order: + // 1. Default protocol from proxy-defaults (how all services should be addressed) + // 2. Protocol for upstream service defined in its service-defaults (how the upstream wants to be addressed) + // 3. Protocol defined for the upstream in the service-defaults.(upstream_config.defaults|upstream_config.overrides) of the downstream + // (how the downstream wants to address it) + protocol := proxyConfGlobalProtocol + + upstreamSvcDefaults := entries.GetServiceDefaults( + structs.NewServiceID(upstream.ID, &upstream.EnterpriseMeta), + ) + if upstreamSvcDefaults != nil { + if upstreamSvcDefaults.Protocol != "" { + protocol = upstreamSvcDefaults.Protocol + } + } + + if protocol != "" { + resolvedCfg["protocol"] = protocol + } + + // Merge centralized defaults for all upstreams before configuration for specific upstreams + if upstreamDefaults != nil { + upstreamDefaults.MergeInto(resolvedCfg) + } + + // The MeshGateway value from the proxy registration overrides the one from upstream_defaults + // because it is specific to the proxy instance. + // + // The goal is to flatten the mesh gateway mode in this order: + // 0. Value from centralized upstream_defaults + // 1. Value from local proxy registration + // 2. Value from centralized upstream_config + // 3. Value from local upstream definition. This last step is done in the client's service manager. + if !args.MeshGateway.IsZero() { + resolvedCfg["mesh_gateway"] = args.MeshGateway + } + + if upstreamConfigs[upstream] != nil { + upstreamConfigs[upstream].MergeInto(resolvedCfg) + } + + if len(resolvedCfg) > 0 { + usConfigs[upstream] = resolvedCfg + } + } + + // don't allocate the slices just to not fill them + if len(usConfigs) == 0 { + return &thisReply, nil + } + + if legacyUpstreams { + // For legacy upstreams we return a map that is only keyed on the string ID, since they precede namespaces + thisReply.UpstreamConfigs = make(map[string]map[string]interface{}) + + for us, conf := range usConfigs { + thisReply.UpstreamConfigs[us.ID] = conf + } + + } else { + thisReply.UpstreamIDConfigs = make(structs.OpaqueUpstreamConfigs, 0, len(usConfigs)) + + for us, conf := range usConfigs { + thisReply.UpstreamIDConfigs = append(thisReply.UpstreamIDConfigs, + structs.OpaqueUpstreamConfig{Upstream: us, Config: conf}) + } + } + + return &thisReply, nil +} + +// MergeServiceConfig merges the service into defaults to produce the final effective +// config for the specified service. +func MergeServiceConfig(defaults *structs.ServiceConfigResponse, service *structs.NodeService) (*structs.NodeService, error) { + if defaults == nil { + return service, nil + } + + // We don't want to change s.registration in place since it is our source of + // truth about what was actually registered before defaults applied. So copy + // it first. + nsRaw, err := copystructure.Copy(service) + if err != nil { + return nil, err + } + + // Merge proxy defaults + ns := nsRaw.(*structs.NodeService) + + if err := mergo.Merge(&ns.Proxy.Config, defaults.ProxyConfig); err != nil { + return nil, err + } + if err := mergo.Merge(&ns.Proxy.Expose, defaults.Expose); err != nil { + return nil, err + } + + if ns.Proxy.MeshGateway.Mode == structs.MeshGatewayModeDefault { + ns.Proxy.MeshGateway.Mode = defaults.MeshGateway.Mode + } + if ns.Proxy.Mode == structs.ProxyModeDefault { + ns.Proxy.Mode = defaults.Mode + } + if ns.Proxy.TransparentProxy.OutboundListenerPort == 0 { + ns.Proxy.TransparentProxy.OutboundListenerPort = defaults.TransparentProxy.OutboundListenerPort + } + if !ns.Proxy.TransparentProxy.DialedDirectly { + ns.Proxy.TransparentProxy.DialedDirectly = defaults.TransparentProxy.DialedDirectly + } + + // remoteUpstreams contains synthetic Upstreams generated from central config (service-defaults.UpstreamConfigs). + remoteUpstreams := make(map[structs.ServiceID]structs.Upstream) + + for _, us := range defaults.UpstreamIDConfigs { + parsed, err := structs.ParseUpstreamConfigNoDefaults(us.Config) + if err != nil { + return nil, fmt.Errorf("failed to parse upstream config map for %s: %v", us.Upstream.String(), err) + } + + remoteUpstreams[us.Upstream] = structs.Upstream{ + DestinationNamespace: us.Upstream.NamespaceOrDefault(), + DestinationPartition: us.Upstream.PartitionOrDefault(), + DestinationName: us.Upstream.ID, + Config: us.Config, + MeshGateway: parsed.MeshGateway, + CentrallyConfigured: true, + } + } + + // localUpstreams stores the upstreams seen from the local registration so that we can merge in the synthetic entries. + // In transparent proxy mode ns.Proxy.Upstreams will likely be empty because users do not need to define upstreams explicitly. + // So to store upstream-specific flags from central config, we add entries to ns.Proxy.Upstream with those values. + localUpstreams := make(map[structs.ServiceID]struct{}) + + // Merge upstream defaults into the local registration + for i := range ns.Proxy.Upstreams { + // Get a pointer not a value copy of the upstream struct + us := &ns.Proxy.Upstreams[i] + if us.DestinationType != "" && us.DestinationType != structs.UpstreamDestTypeService { + continue + } + localUpstreams[us.DestinationID()] = struct{}{} + + remoteCfg, ok := remoteUpstreams[us.DestinationID()] + if !ok { + // No config defaults to merge + continue + } + + // The local upstream config mode has the highest precedence, so only overwrite when it's set to the default + if us.MeshGateway.Mode == structs.MeshGatewayModeDefault { + us.MeshGateway.Mode = remoteCfg.MeshGateway.Mode + } + + // Merge in everything else that is read from the map + if err := mergo.Merge(&us.Config, remoteCfg.Config); err != nil { + return nil, err + } + + // Delete the mesh gateway key from opaque config since this is the value that was resolved from + // the servers and NOT the final merged value for this upstream. + // Note that we use the "mesh_gateway" key and not other variants like "MeshGateway" because + // UpstreamConfig.MergeInto and ResolveServiceConfig only use "mesh_gateway". + delete(us.Config, "mesh_gateway") + } + + // Ensure upstreams present in central config are represented in the local configuration. + // This does not apply outside of transparent mode because in that situation every possible upstream already exists + // inside of ns.Proxy.Upstreams. + if ns.Proxy.Mode == structs.ProxyModeTransparent { + for id, remote := range remoteUpstreams { + if _, ok := localUpstreams[id]; ok { + // Remote upstream is already present locally + continue + } + + ns.Proxy.Upstreams = append(ns.Proxy.Upstreams, remote) + } + } + + return ns, err +} diff --git a/agent/consul/merge_service_config_test.go b/agent/consul/merge_service_config_test.go new file mode 100644 index 0000000000..5a866dce2a --- /dev/null +++ b/agent/consul/merge_service_config_test.go @@ -0,0 +1,458 @@ +package consul + +import ( + "testing" + + "github.com/hashicorp/consul/agent/structs" + "github.com/mitchellh/copystructure" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func Test_MergeServiceConfig_TransparentProxy(t *testing.T) { + type args struct { + defaults *structs.ServiceConfigResponse + service *structs.NodeService + } + tests := []struct { + name string + args args + want *structs.NodeService + }{ + { + name: "inherit transparent proxy settings", + args: args{ + defaults: &structs.ServiceConfigResponse{ + Mode: structs.ProxyModeTransparent, + TransparentProxy: structs.TransparentProxyConfig{ + OutboundListenerPort: 10101, + DialedDirectly: true, + }, + }, + service: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Mode: structs.ProxyModeDefault, + TransparentProxy: structs.TransparentProxyConfig{}, + }, + }, + }, + want: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Mode: structs.ProxyModeTransparent, + TransparentProxy: structs.TransparentProxyConfig{ + OutboundListenerPort: 10101, + DialedDirectly: true, + }, + }, + }, + }, + { + name: "override transparent proxy settings", + args: args{ + defaults: &structs.ServiceConfigResponse{ + Mode: structs.ProxyModeTransparent, + TransparentProxy: structs.TransparentProxyConfig{ + OutboundListenerPort: 10101, + DialedDirectly: false, + }, + }, + service: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Mode: structs.ProxyModeDirect, + TransparentProxy: structs.TransparentProxyConfig{ + OutboundListenerPort: 808, + DialedDirectly: true, + }, + }, + }, + }, + want: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Mode: structs.ProxyModeDirect, + TransparentProxy: structs.TransparentProxyConfig{ + OutboundListenerPort: 808, + DialedDirectly: true, + }, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + defaultsCopy, err := copystructure.Copy(tt.args.defaults) + require.NoError(t, err) + + got, err := MergeServiceConfig(tt.args.defaults, tt.args.service) + require.NoError(t, err) + assert.Equal(t, tt.want, got) + + // The input defaults must not be modified by the merge. + // See PR #10647 + assert.Equal(t, tt.args.defaults, defaultsCopy) + }) + } +} + +func Test_MergeServiceConfig_UpstreamOverrides(t *testing.T) { + type args struct { + defaults *structs.ServiceConfigResponse + service *structs.NodeService + } + tests := []struct { + name string + args args + want *structs.NodeService + }{ + { + name: "new config fields", + args: args{ + defaults: &structs.ServiceConfigResponse{ + UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ + { + Upstream: structs.ServiceID{ + ID: "zap", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + Config: map[string]interface{}{ + "passive_health_check": map[string]interface{}{ + "Interval": int64(10), + "MaxFailures": int64(2), + }, + "mesh_gateway": map[string]interface{}{ + "Mode": "local", + }, + "protocol": "grpc", + }, + }, + }, + }, + service: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zap", + }, + }, + }, + }, + }, + want: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zap", + Config: map[string]interface{}{ + "passive_health_check": map[string]interface{}{ + "Interval": int64(10), + "MaxFailures": int64(2), + }, + "protocol": "grpc", + }, + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeLocal, + }, + }, + }, + }, + }, + }, + { + name: "remote upstream config expands local upstream list in transparent mode", + args: args{ + defaults: &structs.ServiceConfigResponse{ + UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ + { + Upstream: structs.ServiceID{ + ID: "zap", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + Config: map[string]interface{}{ + "protocol": "grpc", + }, + }, + }, + }, + service: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Mode: structs.ProxyModeTransparent, + TransparentProxy: structs.TransparentProxyConfig{ + OutboundListenerPort: 10101, + DialedDirectly: true, + }, + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zip", + LocalBindPort: 8080, + Config: map[string]interface{}{ + "protocol": "http", + }, + }, + }, + }, + }, + }, + want: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Mode: structs.ProxyModeTransparent, + TransparentProxy: structs.TransparentProxyConfig{ + OutboundListenerPort: 10101, + DialedDirectly: true, + }, + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zip", + LocalBindPort: 8080, + Config: map[string]interface{}{ + "protocol": "http", + }, + }, + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zap", + Config: map[string]interface{}{ + "protocol": "grpc", + }, + CentrallyConfigured: true, + }, + }, + }, + }, + }, + { + name: "remote upstream config not added to local upstream list outside of transparent mode", + args: args{ + defaults: &structs.ServiceConfigResponse{ + UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ + { + Upstream: structs.ServiceID{ + ID: "zap", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + Config: map[string]interface{}{ + "protocol": "grpc", + }, + }, + }, + }, + service: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Mode: structs.ProxyModeDirect, + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zip", + LocalBindPort: 8080, + Config: map[string]interface{}{ + "protocol": "http", + }, + }, + }, + }, + }, + }, + want: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + Mode: structs.ProxyModeDirect, + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zip", + LocalBindPort: 8080, + Config: map[string]interface{}{ + "protocol": "http", + }, + }, + }, + }, + }, + }, + { + name: "upstream mode from remote defaults overrides local default", + args: args{ + defaults: &structs.ServiceConfigResponse{ + UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ + { + Upstream: structs.ServiceID{ + ID: "zap", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + Config: map[string]interface{}{ + "mesh_gateway": map[string]interface{}{ + "Mode": "local", + }, + }, + }, + }, + }, + service: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeRemote, + }, + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zap", + }, + }, + }, + }, + }, + want: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeRemote, + }, + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zap", + Config: map[string]interface{}{}, + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeLocal, + }, + }, + }, + }, + }, + }, + { + name: "mode in local upstream config overrides all", + args: args{ + defaults: &structs.ServiceConfigResponse{ + UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ + { + Upstream: structs.ServiceID{ + ID: "zap", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + Config: map[string]interface{}{ + "mesh_gateway": map[string]interface{}{ + "Mode": "local", + }, + }, + }, + }, + }, + service: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeRemote, + }, + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zap", + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeNone, + }, + }, + }, + }, + }, + }, + want: &structs.NodeService{ + ID: "foo-proxy", + Service: "foo-proxy", + Proxy: structs.ConnectProxyConfig{ + DestinationServiceName: "foo", + DestinationServiceID: "foo", + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeRemote, + }, + Upstreams: structs.Upstreams{ + structs.Upstream{ + DestinationNamespace: "default", + DestinationPartition: "default", + DestinationName: "zap", + Config: map[string]interface{}{}, + MeshGateway: structs.MeshGatewayConfig{ + Mode: structs.MeshGatewayModeNone, + }, + }, + }, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + defaultsCopy, err := copystructure.Copy(tt.args.defaults) + require.NoError(t, err) + + got, err := MergeServiceConfig(tt.args.defaults, tt.args.service) + require.NoError(t, err) + assert.Equal(t, tt.want, got) + + // The input defaults must not be modified by the merge. + // See PR #10647 + assert.Equal(t, tt.args.defaults, defaultsCopy) + }) + } +} diff --git a/agent/consul/peering_backend.go b/agent/consul/peering_backend.go index 7e8c698c8e..0ba3463c88 100644 --- a/agent/consul/peering_backend.go +++ b/agent/consul/peering_backend.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "strconv" + "sync" "google.golang.org/grpc" @@ -15,9 +16,11 @@ import ( ) type peeringBackend struct { + // TODO(peering): accept a smaller interface; maybe just funcs from the server that we actually need: DC, IsLeader, etc srv *Server connPool GRPCClientConner apply *peeringApply + addr *leaderAddr } var _ peering.Backend = (*peeringBackend)(nil) @@ -28,9 +31,11 @@ func NewPeeringBackend(srv *Server, connPool GRPCClientConner) peering.Backend { srv: srv, connPool: connPool, apply: &peeringApply{srv: srv}, + addr: &leaderAddr{}, } } +// Forward should not be used to initiate forwarding over bidirectional streams func (b *peeringBackend) Forward(info structs.RPCInfo, f func(*grpc.ClientConn) error) (handled bool, err error) { // Only forward the request if the dc in the request matches the server's datacenter. if info.RequestDatacenter() != "" && info.RequestDatacenter() != b.srv.config.Datacenter { @@ -99,10 +104,41 @@ func (b *peeringBackend) Apply() peering.Apply { return b.apply } +func (b *peeringBackend) LeaderAddress() peering.LeaderAddress { + return b.addr +} + func (b *peeringBackend) EnterpriseCheckPartitions(partition string) error { return b.enterpriseCheckPartitions(partition) } +func (b *peeringBackend) EnterpriseCheckNamespaces(namespace string) error { + return b.enterpriseCheckNamespaces(namespace) +} + +func (b *peeringBackend) IsLeader() bool { + return b.srv.IsLeader() +} + +type leaderAddr struct { + lock sync.RWMutex + leaderAddr string +} + +func (m *leaderAddr) Set(addr string) { + m.lock.Lock() + defer m.lock.Unlock() + + m.leaderAddr = addr +} + +func (m *leaderAddr) Get() string { + m.lock.RLock() + defer m.lock.RUnlock() + + return m.leaderAddr +} + type peeringApply struct { srv *Server } @@ -112,15 +148,26 @@ func (a *peeringApply) PeeringWrite(req *pbpeering.PeeringWriteRequest) error { return err } -func (a *peeringApply) PeeringDelete(req *pbpeering.PeeringDeleteRequest) error { - _, err := a.srv.raftApplyProtobuf(structs.PeeringDeleteType, req) - return err -} - // TODO(peering): This needs RPC metrics interceptor since it's not triggered by an RPC. func (a *peeringApply) PeeringTerminateByID(req *pbpeering.PeeringTerminateByIDRequest) error { _, err := a.srv.raftApplyProtobuf(structs.PeeringTerminateByIDType, req) return err } +func (a *peeringApply) PeeringTrustBundleWrite(req *pbpeering.PeeringTrustBundleWriteRequest) error { + _, err := a.srv.raftApplyProtobuf(structs.PeeringTrustBundleWriteType, req) + return err +} + +func (a *peeringApply) CatalogRegister(req *structs.RegisterRequest) error { + _, err := a.srv.leaderRaftApply("Catalog.Register", structs.RegisterRequestType, req) + return err +} + +func (a *peeringApply) CatalogDeregister(req *structs.DeregisterRequest) error { + _, err := a.srv.leaderRaftApply("Catalog.Deregister", structs.DeregisterRequestType, req) + return err +} + var _ peering.Apply = (*peeringApply)(nil) +var _ peering.LeaderAddress = (*leaderAddr)(nil) diff --git a/agent/consul/peering_backend_oss.go b/agent/consul/peering_backend_oss.go index 5f5a117dba..412ce34a24 100644 --- a/agent/consul/peering_backend_oss.go +++ b/agent/consul/peering_backend_oss.go @@ -5,11 +5,19 @@ package consul import ( "fmt" + "strings" ) func (b *peeringBackend) enterpriseCheckPartitions(partition string) error { - if partition != "" { - return fmt.Errorf("Partitions are a Consul Enterprise feature") + if partition == "" || strings.EqualFold(partition, "default") { + return nil } - return nil + return fmt.Errorf("Partitions are a Consul Enterprise feature") +} + +func (b *peeringBackend) enterpriseCheckNamespaces(namespace string) error { + if namespace == "" || strings.EqualFold(namespace, "default") { + return nil + } + return fmt.Errorf("Namespaces are a Consul Enterprise feature") } diff --git a/agent/consul/peering_backend_oss_test.go b/agent/consul/peering_backend_oss_test.go index 75decc0a8c..5996690eae 100644 --- a/agent/consul/peering_backend_oss_test.go +++ b/agent/consul/peering_backend_oss_test.go @@ -49,3 +49,38 @@ func TestPeeringBackend_RejectsPartition(t *testing.T) { require.Error(t, err) require.Contains(t, err.Error(), "Partitions are a Consul Enterprise feature") } + +func TestPeeringBackend_IgnoresDefaultPartition(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + _, s1 := testServerWithConfig(t, func(c *Config) { + c.Datacenter = "dc1" + c.Bootstrap = true + }) + + testrpc.WaitForLeader(t, s1.RPC, "dc1") + + // make a grpc client to dial s1 directly + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) + t.Cleanup(cancel) + + conn, err := gogrpc.DialContext(ctx, s1.config.RPCAddr.String(), + gogrpc.WithContextDialer(newServerDialer(s1.config.RPCAddr.String())), + gogrpc.WithInsecure(), + gogrpc.WithBlock()) + require.NoError(t, err) + t.Cleanup(func() { conn.Close() }) + + peeringClient := pbpeering.NewPeeringServiceClient(conn) + + req := pbpeering.GenerateTokenRequest{ + Datacenter: "dc1", + PeerName: "my-peer", + Partition: "DeFaUlT", + } + _, err = peeringClient.GenerateToken(ctx, &req) + require.NoError(t, err) +} diff --git a/agent/consul/peering_backend_test.go b/agent/consul/peering_backend_test.go index eb89cd531e..6d6344a295 100644 --- a/agent/consul/peering_backend_test.go +++ b/agent/consul/peering_backend_test.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/consul/agent/pool" "github.com/hashicorp/consul/proto/pbpeering" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/testrpc" ) @@ -82,7 +83,7 @@ func TestPeeringBackend_ForwardToLeader(t *testing.T) { peeringClient := pbpeering.NewPeeringServiceClient(conn) - runStep(t, "forward a write", func(t *testing.T) { + testutil.RunStep(t, "forward a write", func(t *testing.T) { // Do the grpc Write call to server2 req := pbpeering.GenerateTokenRequest{ Datacenter: "dc1", diff --git a/agent/consul/rpc_test.go b/agent/consul/rpc_test.go index 4103be7467..75f9b96626 100644 --- a/agent/consul/rpc_test.go +++ b/agent/consul/rpc_test.go @@ -1145,7 +1145,7 @@ func TestRPC_LocalTokenStrippedOnForward_GRPC(t *testing.T) { }) require.NoError(t, err) - runStep(t, "Register a dummy node with a service", func(t *testing.T) { + testutil.RunStep(t, "Register a dummy node with a service", func(t *testing.T) { req := &structs.RegisterRequest{ Node: "node1", Address: "3.4.5.6", @@ -1183,7 +1183,7 @@ func TestRPC_LocalTokenStrippedOnForward_GRPC(t *testing.T) { } // Try to use it locally (it should work) - runStep(t, "token used locally should work", func(t *testing.T) { + testutil.RunStep(t, "token used locally should work", func(t *testing.T) { arg := &pbsubscribe.SubscribeRequest{ Topic: pbsubscribe.Topic_ServiceHealth, Key: "redis", @@ -1198,7 +1198,7 @@ func TestRPC_LocalTokenStrippedOnForward_GRPC(t *testing.T) { require.Equal(t, localToken2.SecretID, arg.Token, "token should not be stripped") }) - runStep(t, "token used remotely should not work", func(t *testing.T) { + testutil.RunStep(t, "token used remotely should not work", func(t *testing.T) { arg := &pbsubscribe.SubscribeRequest{ Topic: pbsubscribe.Topic_ServiceHealth, Key: "redis", @@ -1216,7 +1216,7 @@ func TestRPC_LocalTokenStrippedOnForward_GRPC(t *testing.T) { require.True(t, event.Payload.(*pbsubscribe.Event_EndOfSnapshot).EndOfSnapshot) }) - runStep(t, "update anonymous token to read services", func(t *testing.T) { + testutil.RunStep(t, "update anonymous token to read services", func(t *testing.T) { tokenUpsertReq := structs.ACLTokenSetRequest{ Datacenter: "dc1", ACLToken: structs.ACLToken{ @@ -1233,7 +1233,7 @@ func TestRPC_LocalTokenStrippedOnForward_GRPC(t *testing.T) { require.NotEmpty(t, token.SecretID) }) - runStep(t, "token used remotely should fallback on anonymous token now", func(t *testing.T) { + testutil.RunStep(t, "token used remotely should fallback on anonymous token now", func(t *testing.T) { arg := &pbsubscribe.SubscribeRequest{ Topic: pbsubscribe.Topic_ServiceHealth, Key: "redis", diff --git a/agent/consul/server.go b/agent/consul/server.go index 8468ab314a..371beb4f55 100644 --- a/agent/consul/server.go +++ b/agent/consul/server.go @@ -126,6 +126,7 @@ const ( backgroundCAInitializationRoutineName = "CA initialization" virtualIPCheckRoutineName = "virtual IP version check" peeringStreamsRoutineName = "streaming peering resources" + peeringDeletionRoutineName = "peering deferred deletion" ) var ( @@ -696,7 +697,7 @@ func NewServer(config *Config, flat Deps, publicGRPCServer *grpc.Server) (*Serve Publisher: s.publisher, GetStore: func() connectca.StateStore { return s.FSM().State() }, Logger: logger.Named("grpc-api.connect-ca"), - ACLResolver: plainACLResolver{s.ACLResolver}, + ACLResolver: s.ACLResolver, CAManager: s.caManager, ForwardRPC: func(info structs.RPCInfo, fn func(*grpc.ClientConn) error) (bool, error) { return s.ForwardGRPC(s.grpcConnPool, info, fn) @@ -708,13 +709,13 @@ func NewServer(config *Config, flat Deps, publicGRPCServer *grpc.Server) (*Serve dataplane.NewServer(dataplane.Config{ GetStore: func() dataplane.StateStore { return s.FSM().State() }, Logger: logger.Named("grpc-api.dataplane"), - ACLResolver: plainACLResolver{s.ACLResolver}, + ACLResolver: s.ACLResolver, Datacenter: s.config.Datacenter, }).Register(s.publicGRPCServer) serverdiscovery.NewServer(serverdiscovery.Config{ Publisher: s.publisher, - ACLResolver: plainACLResolver{s.ACLResolver}, + ACLResolver: s.ACLResolver, Logger: logger.Named("grpc-api.server-discovery"), }).Register(s.publicGRPCServer) @@ -760,6 +761,10 @@ func NewServer(config *Config, flat Deps, publicGRPCServer *grpc.Server) (*Serve func newGRPCHandlerFromConfig(deps Deps, config *Config, s *Server) connHandler { p := peering.NewService( deps.Logger.Named("grpc-api.peering"), + peering.Config{ + Datacenter: config.Datacenter, + ConnectEnabled: config.ConnectEnabled, + }, NewPeeringBackend(s, deps.GRPCConnPool), ) s.peeringService = p @@ -1655,6 +1660,7 @@ func (s *Server) trackLeaderChanges() { } s.grpcLeaderForwarder.UpdateLeaderAddr(s.config.Datacenter, string(leaderObs.LeaderAddr)) + s.peeringService.Backend.LeaderAddress().Set(string(leaderObs.LeaderAddr)) case <-s.shutdownCh: s.raft.DeregisterObserver(observer) return diff --git a/agent/consul/server_connect.go b/agent/consul/server_connect.go index 5010eda7fe..9193604d6a 100644 --- a/agent/consul/server_connect.go +++ b/agent/consul/server_connect.go @@ -6,9 +6,9 @@ import ( "github.com/hashicorp/go-memdb" "github.com/hashicorp/consul/agent/connect" - "github.com/hashicorp/consul/agent/connect/ca" "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/lib" ) func (s *Server) getCARoots(ws memdb.WatchSet, state *state.Store) (*structs.IndexedCARoots, error) { @@ -59,7 +59,7 @@ func (s *Server) getCARoots(ws memdb.WatchSet, state *state.Store) (*structs.Ind ExternalTrustDomain: r.ExternalTrustDomain, NotBefore: r.NotBefore, NotAfter: r.NotAfter, - RootCert: ca.EnsureTrailingNewline(r.RootCert), + RootCert: lib.EnsureTrailingNewline(r.RootCert), IntermediateCerts: intermediates, RaftIndex: r.RaftIndex, Active: r.Active, diff --git a/agent/consul/server_register.go b/agent/consul/server_register.go index 4f91a73e14..7268a39034 100644 --- a/agent/consul/server_register.go +++ b/agent/consul/server_register.go @@ -10,7 +10,7 @@ func init() { registerEndpoint(func(s *Server) interface{} { return &ConnectCA{srv: s, logger: s.loggers.Named(logging.Connect)} }) registerEndpoint(func(s *Server) interface{} { return &FederationState{s} }) registerEndpoint(func(s *Server) interface{} { return &DiscoveryChain{s} }) - registerEndpoint(func(s *Server) interface{} { return &Health{s} }) + registerEndpoint(func(s *Server) interface{} { return &Health{s, s.loggers.Named(logging.Health)} }) registerEndpoint(func(s *Server) interface{} { return &Intention{s, s.loggers.Named(logging.Intentions)} }) registerEndpoint(func(s *Server) interface{} { return &Internal{s, s.loggers.Named(logging.Internal)} }) registerEndpoint(func(s *Server) interface{} { return &KVS{s, s.loggers.Named(logging.KV)} }) diff --git a/agent/consul/server_test.go b/agent/consul/server_test.go index 995e03aacd..c2d9c96c2f 100644 --- a/agent/consul/server_test.go +++ b/agent/consul/server_test.go @@ -7,6 +7,7 @@ import ( "os" "reflect" "strings" + "sync" "sync/atomic" "testing" "time" @@ -18,9 +19,6 @@ import ( "github.com/hashicorp/raft" "google.golang.org/grpc" - "github.com/hashicorp/consul/agent/rpc/middleware" - "github.com/hashicorp/consul/ipaddr" - "github.com/hashicorp/go-uuid" "golang.org/x/time/rate" @@ -28,8 +26,10 @@ import ( "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/metadata" + "github.com/hashicorp/consul/agent/rpc/middleware" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/token" + "github.com/hashicorp/consul/ipaddr" "github.com/hashicorp/consul/sdk/freeport" "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" @@ -1167,7 +1167,7 @@ func TestServer_RPC_MetricsIntercept_Off(t *testing.T) { t.Skip("too slow for testing.Short") } - storage := make(map[string]float32) + storage := &sync.Map{} // string -> float32 keyMakingFunc := func(key []string, labels []metrics.Label) string { allKey := strings.Join(key, "+") @@ -1181,7 +1181,7 @@ func TestServer_RPC_MetricsIntercept_Off(t *testing.T) { } simpleRecorderFunc := func(key []string, val float32, labels []metrics.Label) { - storage[keyMakingFunc(key, labels)] = val + storage.Store(keyMakingFunc(key, labels), val) } t.Run("test no net/rpc interceptor metric with nil func", func(t *testing.T) { @@ -1215,7 +1215,7 @@ func TestServer_RPC_MetricsIntercept_Off(t *testing.T) { key := keyMakingFunc(middleware.OneTwelveRPCSummary[0].Name, []metrics.Label{{Name: "method", Value: "Status.Ping"}}) - if _, ok := storage[key]; ok { + if _, ok := storage.Load(key); ok { t.Fatalf("Did not expect to find key %s in the metrics log, ", key) } }) @@ -1256,7 +1256,7 @@ func TestServer_RPC_MetricsIntercept_Off(t *testing.T) { key := keyMakingFunc(middleware.OneTwelveRPCSummary[0].Name, []metrics.Label{{Name: "method", Value: "Status.Ping"}}) - if _, ok := storage[key]; ok { + if _, ok := storage.Load(key); ok { t.Fatalf("Did not expect to find key %s in the metrics log, ", key) } }) @@ -1316,9 +1316,8 @@ func TestServer_RPC_MetricsIntercept(t *testing.T) { deps := newDefaultDeps(t, conf) // The method used to record metric observations here is similar to that used in - // interceptors_test.go; at present, we don't have a need to lock yet but if we do - // we can imitate that set up further or just factor it out as a "mock" metrics backend - storage := make(map[string]float32) + // interceptors_test.go. + storage := &sync.Map{} // string -> float32 keyMakingFunc := func(key []string, labels []metrics.Label) string { allKey := strings.Join(key, "+") @@ -1330,7 +1329,7 @@ func TestServer_RPC_MetricsIntercept(t *testing.T) { } simpleRecorderFunc := func(key []string, val float32, labels []metrics.Label) { - storage[keyMakingFunc(key, labels)] = val + storage.Store(keyMakingFunc(key, labels), val) } deps.NewRequestRecorderFunc = func(logger hclog.Logger, isLeader func() bool, localDC string) *middleware.RequestRecorder { // for the purposes of this test, we don't need isLeader or localDC @@ -1374,7 +1373,7 @@ func TestServer_RPC_MetricsIntercept(t *testing.T) { key := keyMakingFunc(middleware.OneTwelveRPCSummary[0].Name, expectedLabels) - if _, ok := storage[key]; !ok { + if _, ok := storage.Load(key); !ok { // the compound key will look like: "rpc+server+call+Status.Ping+false+read+test+unreported" t.Fatalf("Did not find key %s in the metrics log, ", key) } @@ -1952,3 +1951,50 @@ func TestServer_RPC_RateLimit(t *testing.T) { } }) } + +// TestServer_Peering_LeadershipCheck tests that a peering service can receive the leader address +// through the LeaderAddress IRL. +func TestServer_Peering_LeadershipCheck(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + + // given two servers: s1 (leader), s2 (follower) + _, conf1 := testServerConfig(t) + s1, err := newServer(t, conf1) + if err != nil { + t.Fatalf("err: %v", err) + } + defer s1.Shutdown() + + _, conf2 := testServerConfig(t) + conf2.Bootstrap = false + s2, err := newServer(t, conf2) + if err != nil { + t.Fatalf("err: %v", err) + } + defer s2.Shutdown() + + // Try to join + joinLAN(t, s2, s1) + + // Verify Raft has established a peer + retry.Run(t, func(r *retry.R) { + r.Check(wantRaft([]*Server{s1, s2})) + }) + + testrpc.WaitForLeader(t, s1.RPC, "dc1") + testrpc.WaitForLeader(t, s2.RPC, "dc1") + waitForLeaderEstablishment(t, s1) + + // the actual tests + // when leadership has been established s2 should have the address of s1 + // in the peering service + peeringLeaderAddr := s2.peeringService.Backend.LeaderAddress().Get() + + require.Equal(t, s1.config.RPCAddr.String(), peeringLeaderAddr) + // test corollary by transitivity to future-proof against any setup bugs + require.NotEqual(t, s2.config.RPCAddr.String(), peeringLeaderAddr) +} diff --git a/agent/consul/state/catalog.go b/agent/consul/state/catalog.go index 97d9e81ebf..d76f87bf62 100644 --- a/agent/consul/state/catalog.go +++ b/agent/consul/state/catalog.go @@ -846,9 +846,16 @@ func ensureServiceTxn(tx WriteTxn, idx uint64, node string, preserveIndexes bool } if svc.PeerName == "" { - // Check if this service is covered by a gateway's wildcard specifier - if err = checkGatewayWildcardsAndUpdate(tx, idx, svc); err != nil { - return fmt.Errorf("failed updating gateway mapping: %s", err) + // Do not associate non-typical services with gateways or consul services + if svc.Kind == structs.ServiceKindTypical && svc.Service != "consul" { + // Check if this service is covered by a gateway's wildcard specifier, we force the service kind to a gateway-service here as that take precedence + sn := structs.NewServiceName(svc.Service, &svc.EnterpriseMeta) + if err = checkGatewayWildcardsAndUpdate(tx, idx, &sn, structs.GatewayServiceKindService); err != nil { + return fmt.Errorf("failed updating gateway mapping: %s", err) + } + if err = checkGatewayAndUpdate(tx, idx, &sn, structs.GatewayServiceKindService); err != nil { + return fmt.Errorf("failed updating gateway mapping: %s", err) + } } } if err := upsertKindServiceName(tx, idx, svc.Kind, svc.CompoundServiceName()); err != nil { @@ -1157,24 +1164,6 @@ func serviceListTxn(tx ReadTxn, ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, return idx, results, nil } -func serviceExists(tx ReadTxn, ws memdb.WatchSet, name string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, bool, error) { - idx := catalogServicesMaxIndex(tx, entMeta, peerName) - q := Query{ - Value: name, - EnterpriseMeta: *entMeta, - PeerName: peerName, - } - watchCh, existing, err := tx.FirstWatch(tableServices, indexService, q) - if err != nil { - return idx, false, fmt.Errorf("failed querying for service: %s", err) - } - ws.Add(watchCh) - if existing == nil { - return idx, false, nil - } - return idx, true, nil -} - // ServicesByNodeMeta returns all services, filtered by the given node metadata. func (s *Store) ServicesByNodeMeta(ws memdb.WatchSet, filters map[string]string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.Services, error) { tx := s.db.Txn(false) @@ -1595,7 +1584,7 @@ func parseServiceNodes(tx ReadTxn, ws memdb.WatchSet, services structs.ServiceNo // NodeService is used to retrieve a specific service associated with the given // node. -func (s *Store) NodeService(nodeName string, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.NodeService, error) { +func (s *Store) NodeService(ws memdb.WatchSet, nodeName string, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.NodeService, error) { tx := s.db.Txn(false) defer tx.Abort() @@ -1603,7 +1592,7 @@ func (s *Store) NodeService(nodeName string, serviceID string, entMeta *acl.Ente idx := catalogServicesMaxIndex(tx, entMeta, peerName) // Query the service - service, err := getNodeServiceTxn(tx, nodeName, serviceID, entMeta, peerName) + service, err := getNodeServiceTxn(tx, ws, nodeName, serviceID, entMeta, peerName) if err != nil { return 0, nil, fmt.Errorf("failed querying service for node %q: %s", nodeName, err) } @@ -1611,8 +1600,8 @@ func (s *Store) NodeService(nodeName string, serviceID string, entMeta *acl.Ente return idx, service, nil } -func getNodeServiceTxn(tx ReadTxn, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (*structs.NodeService, error) { - sn, err := getServiceNodeTxn(tx, nodeName, serviceID, entMeta, peerName) +func getNodeServiceTxn(tx ReadTxn, ws memdb.WatchSet, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (*structs.NodeService, error) { + sn, err := getServiceNodeTxn(tx, ws, nodeName, serviceID, entMeta, peerName) if err != nil { return nil, err } @@ -1622,14 +1611,14 @@ func getNodeServiceTxn(tx ReadTxn, nodeName, serviceID string, entMeta *acl.Ente return nil, nil } -func getServiceNodeTxn(tx ReadTxn, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (*structs.ServiceNode, error) { +func getServiceNodeTxn(tx ReadTxn, ws memdb.WatchSet, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (*structs.ServiceNode, error) { // TODO: pass non-pointer type for ent meta if entMeta == nil { entMeta = structs.DefaultEnterpriseMetaInDefaultPartition() } // Query the service - service, err := tx.First(tableServices, indexID, NodeServiceQuery{ + watch, service, err := tx.FirstWatch(tableServices, indexID, NodeServiceQuery{ EnterpriseMeta: *entMeta, Node: nodeName, Service: serviceID, @@ -1638,6 +1627,7 @@ func getServiceNodeTxn(tx ReadTxn, nodeName, serviceID string, entMeta *acl.Ente if err != nil { return nil, fmt.Errorf("failed querying service for node %q: %s", nodeName, err) } + ws.Add(watch) if service != nil { return service.(*structs.ServiceNode), nil @@ -1676,7 +1666,7 @@ func (s *Store) ServiceNode(nodeID, nodeName, serviceID string, entMeta *acl.Ent idx := catalogServicesMaxIndex(tx, entMeta, peerName) // Query the service - service, err := getServiceNodeTxn(tx, node.Node, serviceID, entMeta, peerName) + service, err := getServiceNodeTxn(tx, nil, node.Node, serviceID, entMeta, peerName) if err != nil { return 0, nil, fmt.Errorf("failed querying service for node %q: %w", node.Node, err) } @@ -1827,7 +1817,7 @@ func (s *Store) DeleteService(idx uint64, nodeName, serviceID string, entMeta *a // the given service, then the call is a noop, otherwise a normal delete is invoked. func (s *Store) deleteServiceCASTxn(tx WriteTxn, idx, cidx uint64, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (bool, error) { // Look up the service. - service, err := getNodeServiceTxn(tx, nodeName, serviceID, entMeta, peerName) + service, err := getNodeServiceTxn(tx, nil, nodeName, serviceID, entMeta, peerName) if err != nil { return false, fmt.Errorf("service lookup failed: %s", err) } @@ -3483,6 +3473,10 @@ func terminatingConfigGatewayServices( var gatewayServices structs.GatewayServices for _, svc := range entry.Services { + kind, err := GatewayServiceKind(tx, svc.Name, &svc.EnterpriseMeta) + if err != nil { + return false, nil, fmt.Errorf("failed to get gateway service kind for service %s: %v", svc.Name, err) + } mapping := &structs.GatewayService{ Gateway: gateway, Service: structs.NewServiceName(svc.Name, &svc.EnterpriseMeta), @@ -3491,6 +3485,7 @@ func terminatingConfigGatewayServices( CertFile: svc.CertFile, CAFile: svc.CAFile, SNI: svc.SNI, + ServiceKind: kind, } gatewayServices = append(gatewayServices, mapping) @@ -3498,6 +3493,34 @@ func terminatingConfigGatewayServices( return false, gatewayServices, nil } +func GatewayServiceKind(tx ReadTxn, name string, entMeta *acl.EnterpriseMeta) (structs.GatewayServiceKind, error) { + serviceIter, err := tx.First(tableServices, indexService, Query{ + Value: name, + EnterpriseMeta: *entMeta, + }) + if err != nil { + return structs.GatewayServiceKindUnknown, err + } + if serviceIter != nil { + return structs.GatewayServiceKindService, err + } + + _, entry, err := configEntryTxn(tx, nil, structs.ServiceDefaults, name, entMeta) + if err != nil { + return structs.GatewayServiceKindUnknown, err + } + if entry != nil { + sd, ok := entry.(*structs.ServiceConfigEntry) + if !ok { + return structs.GatewayServiceKindUnknown, fmt.Errorf("invalid config entry type %T", entry) + } + if sd.Destination != nil { + return structs.GatewayServiceKindDestination, nil + } + } + return structs.GatewayServiceKindUnknown, nil +} + // updateGatewayNamespace is used to target all services within a namespace func updateGatewayNamespace(tx WriteTxn, idx uint64, service *structs.GatewayService, entMeta *acl.EnterpriseMeta) error { if entMeta == nil { @@ -3538,6 +3561,41 @@ func updateGatewayNamespace(tx WriteTxn, idx uint64, service *structs.GatewaySer return err } } + entries, err := tx.Get(tableConfigEntries, indexID+"_prefix", ConfigEntryKindQuery{Kind: structs.ServiceDefaults, EnterpriseMeta: *entMeta}) + if err != nil { + return fmt.Errorf("failed querying entries: %s", err) + } + for entry := entries.Next(); entry != nil; entry = entries.Next() { + e := entry.(*structs.ServiceConfigEntry) + if e.Destination == nil { + continue + } + + sn := structs.ServiceName{ + Name: e.Name, + EnterpriseMeta: e.EnterpriseMeta, + } + existing, err := tx.First(tableGatewayServices, indexID, service.Gateway, sn, service.Port) + if err != nil { + return fmt.Errorf("gateway service lookup failed: %s", err) + } + if existing != nil { + // If there's an existing service associated with this gateway then we skip it. + // This means the service was specified on its own, and the service entry overrides the wildcard entry. + continue + } + + mapping := service.Clone() + + mapping.Service = structs.NewServiceName(e.Name, &service.Service.EnterpriseMeta) + mapping.ServiceKind = structs.GatewayServiceKindDestination + mapping.FromWildcard = true + + err = updateGatewayService(tx, idx, mapping) + if err != nil { + return err + } + } // Also store a mapping for the wildcard so that the TLS creds can be pulled // for new services registered in its namespace @@ -3585,16 +3643,11 @@ func updateGatewayService(tx WriteTxn, idx uint64, mapping *structs.GatewayServi // checkWildcardForGatewaysAndUpdate checks whether a service matches a // wildcard definition in gateway config entries and if so adds it the the // gateway-services table. -func checkGatewayWildcardsAndUpdate(tx WriteTxn, idx uint64, svc *structs.NodeService) error { - // Do not associate non-typical services with gateways or consul services - if svc.Kind != structs.ServiceKindTypical || svc.Service == "consul" { - return nil - } - +func checkGatewayWildcardsAndUpdate(tx WriteTxn, idx uint64, svc *structs.ServiceName, kind structs.GatewayServiceKind) error { sn := structs.ServiceName{Name: structs.WildcardSpecifier, EnterpriseMeta: svc.EnterpriseMeta} svcGateways, err := tx.Get(tableGatewayServices, indexService, sn) if err != nil { - return fmt.Errorf("failed gateway lookup for %q: %s", svc.Service, err) + return fmt.Errorf("failed gateway lookup for %q: %s", svc.Name, err) } for service := svcGateways.Next(); service != nil; service = svcGateways.Next() { if wildcardSvc, ok := service.(*structs.GatewayService); ok && wildcardSvc != nil { @@ -3602,8 +3655,9 @@ func checkGatewayWildcardsAndUpdate(tx WriteTxn, idx uint64, svc *structs.NodeSe // Copy the wildcard mapping and modify it gatewaySvc := wildcardSvc.Clone() - gatewaySvc.Service = structs.NewServiceName(svc.Service, &svc.EnterpriseMeta) + gatewaySvc.Service = structs.NewServiceName(svc.Name, &svc.EnterpriseMeta) gatewaySvc.FromWildcard = true + gatewaySvc.ServiceKind = kind if err = updateGatewayService(tx, idx, gatewaySvc); err != nil { return fmt.Errorf("Failed to associate service %q with gateway %q", gatewaySvc.Service.String(), gatewaySvc.Gateway.String()) @@ -3613,6 +3667,31 @@ func checkGatewayWildcardsAndUpdate(tx WriteTxn, idx uint64, svc *structs.NodeSe return nil } +// checkGatewayAndUpdate checks whether a service matches a +// wildcard definition in gateway config entries and if so adds it the the +// gateway-services table. +func checkGatewayAndUpdate(tx WriteTxn, idx uint64, svc *structs.ServiceName, kind structs.GatewayServiceKind) error { + sn := structs.ServiceName{Name: svc.Name, EnterpriseMeta: svc.EnterpriseMeta} + svcGateways, err := tx.First(tableGatewayServices, indexService, sn) + if err != nil { + return fmt.Errorf("failed gateway lookup for %q: %s", svc.Name, err) + } + + if service, ok := svcGateways.(*structs.GatewayService); ok && service != nil { + // Copy the wildcard mapping and modify it + gatewaySvc := service.Clone() + + gatewaySvc.Service = structs.NewServiceName(svc.Name, &svc.EnterpriseMeta) + gatewaySvc.ServiceKind = kind + + if err = updateGatewayService(tx, idx, gatewaySvc); err != nil { + return fmt.Errorf("Failed to associate service %q with gateway %q", gatewaySvc.Service.String(), gatewaySvc.Gateway.String()) + } + } + + return nil +} + func cleanupGatewayWildcards(tx WriteTxn, idx uint64, svc *structs.ServiceNode) error { // Clean up association between service name and gateways if needed sn := structs.ServiceName{Name: svc.ServiceName, EnterpriseMeta: svc.EnterpriseMeta} @@ -3643,6 +3722,12 @@ func cleanupGatewayWildcards(tx WriteTxn, idx uint64, svc *structs.ServiceNode) if err := deleteGatewayServiceTopologyMapping(tx, idx, m); err != nil { return fmt.Errorf("failed to reconcile mesh topology for gateway: %v", err) } + } else { + kind, err := GatewayServiceKind(tx, m.Service.Name, &m.Service.EnterpriseMeta) + if err != nil { + return fmt.Errorf("failed to get gateway service kind for service %s: %v", svc.ServiceName, err) + } + checkGatewayAndUpdate(tx, idx, &structs.ServiceName{Name: m.Service.Name, EnterpriseMeta: m.Service.EnterpriseMeta}, kind) } } return nil @@ -3890,7 +3975,7 @@ func (s *Store) ServiceTopology( // Only transparent proxies / connect native services have upstreams from intentions if hasTransparent || connectNative { - idx, intentionUpstreams, err := s.intentionTopologyTxn(tx, ws, sn, false, defaultAllow) + idx, intentionUpstreams, err := s.intentionTopologyTxn(tx, ws, sn, false, defaultAllow, structs.IntentionTargetService) if err != nil { return 0, nil, err } @@ -3924,14 +4009,7 @@ func (s *Store) ServiceTopology( Partition: entMeta.PartitionOrDefault(), Name: service, } - _, srcIntentions, err := compatIntentionMatchOneTxn( - tx, - ws, - matchEntry, - - // The given service is a source relative to its upstreams - structs.IntentionMatchSource, - ) + _, srcIntentions, err := compatIntentionMatchOneTxn(tx, ws, matchEntry, structs.IntentionMatchSource, structs.IntentionTargetService) if err != nil { return 0, nil, fmt.Errorf("failed to query intentions for %s", sn.String()) } @@ -4014,7 +4092,7 @@ func (s *Store) ServiceTopology( downstreamSources[dn.String()] = structs.TopologySourceRegistration } - idx, intentionDownstreams, err := s.intentionTopologyTxn(tx, ws, sn, true, defaultAllow) + idx, intentionDownstreams, err := s.intentionTopologyTxn(tx, ws, sn, true, defaultAllow, structs.IntentionTargetService) if err != nil { return 0, nil, err } @@ -4043,14 +4121,7 @@ func (s *Store) ServiceTopology( downstreamSources[svc.Name.String()] = source } - _, dstIntentions, err := compatIntentionMatchOneTxn( - tx, - ws, - matchEntry, - - // The given service is a destination relative to its downstreams - structs.IntentionMatchDestination, - ) + _, dstIntentions, err := compatIntentionMatchOneTxn(tx, ws, matchEntry, structs.IntentionMatchDestination, structs.IntentionTargetService) if err != nil { return 0, nil, fmt.Errorf("failed to query intentions for %s", sn.String()) } diff --git a/agent/consul/state/catalog_events.go b/agent/consul/state/catalog_events.go index ba80a2c740..42f1f5d3db 100644 --- a/agent/consul/state/catalog_events.go +++ b/agent/consul/state/catalog_events.go @@ -51,6 +51,7 @@ func (e EventPayloadCheckServiceNode) Subject() stream.Subject { return EventSubjectService{ Key: e.Value.Service.Service, EnterpriseMeta: e.Value.Service.EnterpriseMeta, + PeerName: e.Value.Service.PeerName, overrideKey: e.overrideKey, overrideNamespace: e.overrideNamespace, diff --git a/agent/consul/state/catalog_events_test.go b/agent/consul/state/catalog_events_test.go index 0b455543e3..129b834b82 100644 --- a/agent/consul/state/catalog_events_test.go +++ b/agent/consul/state/catalog_events_test.go @@ -1473,6 +1473,18 @@ func TestServiceHealthEventsFromChanges(t *testing.T) { }, WantEvents: []stream.Event{ testServiceHealthEvent(t, "srv1", evNodeUnchanged), + testServiceHealthDeregistrationEvent(t, + "tgate1", + evConnectTopic, + evServiceTermingGateway("srv1"), + evTerminatingGatewayVirtualIPs("srv1"), + ), + testServiceHealthEvent(t, + "tgate1", + evConnectTopic, + evNodeUnchanged, + evServiceUnchanged, + evServiceTermingGateway("srv1")), }, }) run(t, eventsTestCase{ @@ -1505,6 +1517,18 @@ func TestServiceHealthEventsFromChanges(t *testing.T) { }, WantEvents: []stream.Event{ testServiceHealthDeregistrationEvent(t, "srv1"), + testServiceHealthDeregistrationEvent(t, + "tgate1", + evConnectTopic, + evServiceTermingGateway("srv1"), + evTerminatingGatewayVirtualIPs("srv1"), + ), + testServiceHealthEvent(t, + "tgate1", + evConnectTopic, + evNodeUnchanged, + evServiceUnchanged, + evServiceTermingGateway("srv1")), }, }) run(t, eventsTestCase{ @@ -1625,6 +1649,92 @@ func TestServiceHealthEventsFromChanges(t *testing.T) { evTerminatingGatewayVirtualIPs("srv1", "srv2")), }, }) + run(t, eventsTestCase{ + Name: "terminating gateway destination service-defaults", + Setup: func(s *Store, tx *txn) error { + configEntry := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "tgate1", + Services: []structs.LinkedService{ + { + Name: "destination1", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + }, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + } + err := ensureConfigEntryTxn(tx, tx.Index, configEntry) + if err != nil { + return err + } + return s.ensureRegistrationTxn(tx, tx.Index, false, + testServiceRegistration(t, "tgate1", regTerminatingGateway), false) + }, + Mutate: func(s *Store, tx *txn) error { + configEntryDest := &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "destination1", + Destination: &structs.DestinationConfig{Port: 9000, Address: "kafka.test.com"}, + } + return ensureConfigEntryTxn(tx, tx.Index, configEntryDest) + }, + WantEvents: []stream.Event{ + testServiceHealthDeregistrationEvent(t, + "tgate1", + evConnectTopic, + evServiceTermingGateway("destination1"), + evTerminatingGatewayVirtualIPs("destination1")), + testServiceHealthEvent(t, + "tgate1", + evConnectTopic, + evNodeUnchanged, + evServiceUnchanged, + evServiceTermingGateway("destination1"), + evTerminatingGatewayVirtualIPs("destination1"), + ), + }, + }) + + run(t, eventsTestCase{ + Name: "terminating gateway destination service-defaults wildcard", + Setup: func(s *Store, tx *txn) error { + configEntry := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "tgate1", + Services: []structs.LinkedService{ + { + Name: "*", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + }, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + } + err := ensureConfigEntryTxn(tx, tx.Index, configEntry) + if err != nil { + return err + } + return s.ensureRegistrationTxn(tx, tx.Index, false, + testServiceRegistration(t, "tgate1", regTerminatingGateway), false) + }, + Mutate: func(s *Store, tx *txn) error { + configEntryDest := &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "destination1", + Destination: &structs.DestinationConfig{Port: 9000, Address: "kafka.test.com"}, + } + return ensureConfigEntryTxn(tx, tx.Index, configEntryDest) + }, + WantEvents: []stream.Event{ + testServiceHealthEvent(t, + "tgate1", + evConnectTopic, + evNodeUnchanged, + evServiceUnchanged, + evServiceTermingGateway("destination1"), + evTerminatingGatewayVirtualIPs("*"), + ), + }, + }) } func (tc eventsTestCase) run(t *testing.T) { diff --git a/agent/consul/state/catalog_test.go b/agent/consul/state/catalog_test.go index efd8628386..b48e0a04dc 100644 --- a/agent/consul/state/catalog_test.go +++ b/agent/consul/state/catalog_test.go @@ -1,12 +1,14 @@ package state import ( + "context" crand "crypto/rand" "fmt" "reflect" "sort" "strings" "testing" + "time" "github.com/hashicorp/go-memdb" uuid "github.com/hashicorp/go-uuid" @@ -261,7 +263,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { require.Equal(t, uint64(2), idx) require.Equal(t, svcmap, out.Services) - idx, r, err := s.NodeService("node1", "redis1", nil, peerName) + idx, r, err := s.NodeService(nil, "node1", "redis1", nil, peerName) require.NoError(t, err) require.Equal(t, uint64(2), idx) require.Equal(t, svcmap["redis1"], r) @@ -340,7 +342,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { require.Equal(t, checks, out) } - runStep(t, "add a node", func(t *testing.T) { + testutil.RunStep(t, "add a node", func(t *testing.T) { req := makeReq(nil) require.NoError(t, s.EnsureRegistration(1, req)) @@ -348,7 +350,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { verifyNode(t) }) - runStep(t, "add a node with invalid meta", func(t *testing.T) { + testutil.RunStep(t, "add a node with invalid meta", func(t *testing.T) { // Add in a invalid service definition with too long Key value for Meta req := makeReq(func(req *structs.RegisterRequest) { req.Service = &structs.NodeService{ @@ -365,7 +367,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { }) // Add in a service definition. - runStep(t, "add a service definition", func(t *testing.T) { + testutil.RunStep(t, "add a service definition", func(t *testing.T) { req := makeReq(func(req *structs.RegisterRequest) { req.Service = &structs.NodeService{ ID: "redis1", @@ -385,7 +387,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { }) // Add in a top-level check. - runStep(t, "add a top level check", func(t *testing.T) { + testutil.RunStep(t, "add a top level check", func(t *testing.T) { req := makeReq(func(req *structs.RegisterRequest) { req.Service = &structs.NodeService{ ID: "redis1", @@ -413,7 +415,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { // Add a service check which should populate the ServiceName // and ServiceTags fields in the response. - runStep(t, "add a service check", func(t *testing.T) { + testutil.RunStep(t, "add a service check", func(t *testing.T) { req := makeReq(func(req *structs.RegisterRequest) { req.Service = &structs.NodeService{ ID: "redis1", @@ -449,7 +451,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { }) // Try to register a check for some other node (top-level check). - runStep(t, "try to register a check for some other node via the top level check", func(t *testing.T) { + testutil.RunStep(t, "try to register a check for some other node via the top level check", func(t *testing.T) { req := makeReq(func(req *structs.RegisterRequest) { req.Service = &structs.NodeService{ ID: "redis1", @@ -482,7 +484,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { verifyChecks(t) }) - runStep(t, "try to register a check for some other node via the checks array", func(t *testing.T) { + testutil.RunStep(t, "try to register a check for some other node via the checks array", func(t *testing.T) { // Try to register a check for some other node (checks array). req := makeReq(func(req *structs.RegisterRequest) { req.Service = &structs.NodeService{ @@ -509,6 +511,32 @@ func TestStateStore_EnsureRegistration(t *testing.T) { verifyService(t) verifyChecks(t) }) + + testutil.RunStep(t, "NodeService with WatchSet", func(t *testing.T) { + ws := memdb.NewWatchSet() + + _, _, err := s.NodeService(ws, "node1", "watch1", nil, peerName) + require.NoError(t, err) + + req := makeReq(func(req *structs.RegisterRequest) { + req.Service = &structs.NodeService{ + ID: "watch1", + Service: "redis", + Address: "1.1.1.1", + Port: 8080, + Tags: []string{"primary"}, + Weights: &structs.Weights{Passing: 1, Warning: 1}, + PeerName: peerName, + } + }) + require.NoError(t, s.EnsureRegistration(7, req)) + + select { + case <-ws.WatchCh(context.Background()): + case <-time.After(100 * time.Millisecond): + t.Fatal("WatchSet did not trigger after service registration") + } + }) } t.Run("default peer", func(t *testing.T) { @@ -626,7 +654,7 @@ func TestStateStore_EnsureRegistration_Restore(t *testing.T) { s := testStateStore(t) // Start with just a node. - runStep(t, "add a node", func(t *testing.T) { + testutil.RunStep(t, "add a node", func(t *testing.T) { req := makeReq(nil) restore := s.Restore() require.NoError(t, restore.Registration(1, req)) @@ -638,7 +666,7 @@ func TestStateStore_EnsureRegistration_Restore(t *testing.T) { }) // Add in a service definition. - runStep(t, "add a service definition", func(t *testing.T) { + testutil.RunStep(t, "add a service definition", func(t *testing.T) { req := makeReq(func(req *structs.RegisterRequest) { req.Service = &structs.NodeService{ ID: "redis1", @@ -664,7 +692,7 @@ func TestStateStore_EnsureRegistration_Restore(t *testing.T) { verifyService(t, s, nodeName) }) - runStep(t, "add a top-level check", func(t *testing.T) { + testutil.RunStep(t, "add a top-level check", func(t *testing.T) { // Add in a top-level check. // // Verify that node name references in checks are case-insensitive during @@ -705,7 +733,7 @@ func TestStateStore_EnsureRegistration_Restore(t *testing.T) { verifyCheck(t, s) }) - runStep(t, "add another check via the slice", func(t *testing.T) { + testutil.RunStep(t, "add another check via the slice", func(t *testing.T) { // Add in another check via the slice. req := makeReq(func(req *structs.RegisterRequest) { req.Service = &structs.NodeService{ @@ -4898,7 +4926,7 @@ func TestStateStore_ensureServiceCASTxn(t *testing.T) { // ensure no update happened roTxn := s.db.Txn(false) - _, nsRead, err := s.NodeService("node1", "foo", nil, "") + _, nsRead, err := s.NodeService(nil, "node1", "foo", nil, "") require.NoError(t, err) require.NotNil(t, nsRead) require.Equal(t, uint64(2), nsRead.ModifyIndex) @@ -4913,7 +4941,7 @@ func TestStateStore_ensureServiceCASTxn(t *testing.T) { // ensure no update happened roTxn = s.db.Txn(false) - _, nsRead, err = s.NodeService("node1", "foo", nil, "") + _, nsRead, err = s.NodeService(nil, "node1", "foo", nil, "") require.NoError(t, err) require.NotNil(t, nsRead) require.Equal(t, uint64(2), nsRead.ModifyIndex) @@ -4928,7 +4956,7 @@ func TestStateStore_ensureServiceCASTxn(t *testing.T) { // ensure the update happened roTxn = s.db.Txn(false) - _, nsRead, err = s.NodeService("node1", "foo", nil, "") + _, nsRead, err = s.NodeService(nil, "node1", "foo", nil, "") require.NoError(t, err) require.NotNil(t, nsRead) require.Equal(t, uint64(7), nsRead.ModifyIndex) @@ -5010,6 +5038,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -5019,6 +5048,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -5052,6 +5082,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -5061,6 +5092,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -5111,6 +5143,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 22, ModifyIndex: 22, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -5120,6 +5153,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 22, ModifyIndex: 22, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -5147,6 +5181,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 22, ModifyIndex: 22, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -5156,6 +5191,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 22, ModifyIndex: 22, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("redis", nil), @@ -5170,6 +5206,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 23, ModifyIndex: 23, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -5197,6 +5234,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 22, ModifyIndex: 22, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -5206,6 +5244,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 22, ModifyIndex: 22, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -5237,6 +5276,7 @@ func TestStateStore_GatewayServices_Terminating(t *testing.T) { CreateIndex: 25, ModifyIndex: 25, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -5364,6 +5404,7 @@ func TestStateStore_GatewayServices_ServiceDeletion(t *testing.T) { CreateIndex: 19, ModifyIndex: 19, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -5402,8 +5443,8 @@ func TestStateStore_GatewayServices_ServiceDeletion(t *testing.T) { // Delete a service specified directly. assert.Nil(t, s.DeleteService(20, "foo", "db", nil, "")) - // Only the watch for other-gateway should fire, since its association to db came from a wildcard - assert.False(t, watchFired(ws)) + // The watch will fire because we need to update the gateway-services kind + assert.True(t, watchFired(ws)) assert.True(t, watchFired(otherWS)) // db should remain in the original gateway @@ -5420,7 +5461,7 @@ func TestStateStore_GatewayServices_ServiceDeletion(t *testing.T) { CAFile: "my_ca.pem", RaftIndex: structs.RaftIndex{ CreateIndex: 19, - ModifyIndex: 19, + ModifyIndex: 20, }, }, } @@ -6301,6 +6342,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -6310,6 +6352,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -6360,6 +6403,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -6369,6 +6413,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -6398,6 +6443,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -6407,6 +6453,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("redis", nil), @@ -6421,6 +6468,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 22, ModifyIndex: 22, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -6450,6 +6498,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("db", nil), @@ -6459,6 +6508,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 21, ModifyIndex: 21, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -6492,6 +6542,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 24, ModifyIndex: 24, }, + ServiceKind: structs.GatewayServiceKindService, }, } assert.Equal(t, expect, out) @@ -6549,6 +6600,7 @@ func TestStateStore_DumpGatewayServices(t *testing.T) { CreateIndex: 24, ModifyIndex: 24, }, + ServiceKind: structs.GatewayServiceKindService, }, { Service: structs.NewServiceName("api", nil), @@ -8146,13 +8198,6 @@ func TestStateStore_EnsureService_ServiceNames(t *testing.T) { require.Empty(t, got) } -func runStep(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } -} - func assertMaxIndexes(t *testing.T, tx ReadTxn, expect map[string]uint64, skip ...string) { t.Helper() diff --git a/agent/consul/state/config_entry.go b/agent/consul/state/config_entry.go index c54f6889c7..f0e4c069e8 100644 --- a/agent/consul/state/config_entry.go +++ b/agent/consul/state/config_entry.go @@ -12,6 +12,7 @@ import ( "github.com/hashicorp/consul/agent/consul/discoverychain" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/lib" + "github.com/hashicorp/consul/lib/maps" ) type ConfigEntryLinkIndex struct { @@ -137,6 +138,36 @@ func (s *Store) ConfigEntriesByKind(ws memdb.WatchSet, kind string, entMeta *acl return configEntriesByKindTxn(tx, ws, kind, entMeta) } +func listDiscoveryChainNamesTxn(tx ReadTxn, ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []structs.ServiceName, error) { + // Get the index and watch for updates + idx := maxIndexWatchTxn(tx, ws, tableConfigEntries) + + // List all discovery chain top nodes. + seen := make(map[structs.ServiceName]struct{}) + for _, kind := range []string{ + structs.ServiceRouter, + structs.ServiceSplitter, + structs.ServiceResolver, + } { + iter, err := getConfigEntryKindsWithTxn(tx, kind, &entMeta) + if err != nil { + return 0, nil, fmt.Errorf("failed config entry lookup: %s", err) + } + ws.Add(iter.WatchCh()) + + for v := iter.Next(); v != nil; v = iter.Next() { + entry := v.(structs.ConfigEntry) + sn := structs.NewServiceName(entry.GetName(), entry.GetEnterpriseMeta()) + seen[sn] = struct{}{} + } + } + + results := maps.SliceOfKeys(seen) + structs.ServiceList(results).Sort() + + return idx, results, nil +} + func configEntriesByKindTxn(tx ReadTxn, ws memdb.WatchSet, kind string, entMeta *acl.EnterpriseMeta) (uint64, []structs.ConfigEntry, error) { // Get the index and watch for updates idx := maxIndexWatchTxn(tx, ws, tableConfigEntries) @@ -313,6 +344,31 @@ func deleteConfigEntryTxn(tx WriteTxn, idx uint64, kind, name string, entMeta *a return fmt.Errorf("failed updating gateway-services index: %v", err) } } + + c := existing.(structs.ConfigEntry) + switch x := c.(type) { + case *structs.ServiceConfigEntry: + if x.Destination != nil { + gsKind, err := GatewayServiceKind(tx, sn.Name, &sn.EnterpriseMeta) + if err != nil { + return fmt.Errorf("failed to get gateway service kind for service %s: %v", sn.Name, err) + } + if gsKind == structs.GatewayServiceKindDestination { + gsKind = structs.GatewayServiceKindUnknown + } + serviceName := structs.NewServiceName(c.GetName(), c.GetEnterpriseMeta()) + if err := checkGatewayWildcardsAndUpdate(tx, idx, &serviceName, gsKind); err != nil { + return fmt.Errorf("failed updating gateway mapping: %s", err) + } + if err := checkGatewayAndUpdate(tx, idx, &serviceName, gsKind); err != nil { + return fmt.Errorf("failed updating gateway mapping: %s", err) + } + if err := cleanupKindServiceName(tx, idx, serviceName, structs.ServiceKindDestination); err != nil { + return fmt.Errorf("failed to cleanup service name: \"%s\"; err: %v", serviceName, err) + } + } + } + // Also clean up associations in the mesh topology table for ingress gateways if kind == structs.IngressGateway { if _, err := tx.DeleteAll(tableMeshTopology, indexDownstream, sn); err != nil { @@ -345,6 +401,7 @@ func insertConfigEntryWithTxn(tx WriteTxn, idx uint64, conf structs.ConfigEntry) } // If the config entry is for a terminating or ingress gateway we update the memdb table // that associates gateways <-> services. + if conf.GetKind() == structs.TerminatingGateway || conf.GetKind() == structs.IngressGateway { err := updateGatewayServices(tx, idx, conf, conf.GetEnterpriseMeta()) if err != nil { @@ -352,6 +409,30 @@ func insertConfigEntryWithTxn(tx WriteTxn, idx uint64, conf structs.ConfigEntry) } } + switch conf.GetKind() { + case structs.ServiceDefaults: + if conf.(*structs.ServiceConfigEntry).Destination != nil { + sn := structs.ServiceName{Name: conf.GetName(), EnterpriseMeta: *conf.GetEnterpriseMeta()} + gsKind, err := GatewayServiceKind(tx, sn.Name, &sn.EnterpriseMeta) + if gsKind == structs.GatewayServiceKindUnknown { + gsKind = structs.GatewayServiceKindDestination + } + if err != nil { + return fmt.Errorf("failed updating gateway mapping: %s", err) + } + if err := checkGatewayWildcardsAndUpdate(tx, idx, &sn, gsKind); err != nil { + return fmt.Errorf("failed updating gateway mapping: %s", err) + } + if err := checkGatewayAndUpdate(tx, idx, &sn, gsKind); err != nil { + return fmt.Errorf("failed updating gateway mapping: %s", err) + } + + if err := upsertKindServiceName(tx, idx, structs.ServiceKindDestination, sn); err != nil { + return fmt.Errorf("failed to persist service name: %v", err) + } + } + } + // Insert the config entry and update the index if err := tx.Insert(tableConfigEntries, conf); err != nil { return fmt.Errorf("failed inserting config entry: %s", err) @@ -530,6 +611,10 @@ func validateProposedConfigEntryInServiceGraph( wildcardEntMeta := kindName.WithWildcardNamespace() switch kindName.Kind { + case structs.ExportedServices, structs.MeshConfig: + // Exported services and mesh config do not influence discovery chains. + return nil + case structs.ProxyDefaults: // Check anything that has a discovery chain entry. In the future we could // somehow omit the ones that have a default protocol configured. @@ -1341,52 +1426,6 @@ func configEntryWithOverridesTxn( return configEntryTxn(tx, ws, kind, name, entMeta) } -// getExportedServicesConfigEntriesTxn fetches exported-service config entries and -// filters their exported services to only those that match serviceName and entMeta. -// Because the resulting config entries may have had their exported services modified, -// they *should not* be used in subsequent writes. -func getExportedServiceConfigEntriesTxn( - tx ReadTxn, - ws memdb.WatchSet, - serviceName string, - entMeta *acl.EnterpriseMeta, -) (uint64, []*structs.ExportedServicesConfigEntry, error) { - var exportedServicesEntries []*structs.ExportedServicesConfigEntry - // slice of names to match config entries against - matchCandidates := getExportedServicesMatchServiceNames(serviceName, entMeta) - // matcher func generator for currying the matcher func over EnterpriseMeta values - // from the associated config entry - matchFunc := func(matchMeta *acl.EnterpriseMeta) func(structs.ExportedService) bool { - return func(exportedService structs.ExportedService) bool { - matchSvcName := structs.NewServiceName(exportedService.Name, matchMeta) - for _, candidate := range matchCandidates { - if candidate.Matches(matchSvcName) { - return true - } - } - return false - } - } - idx, entries, err := configEntriesByKindTxn(tx, ws, structs.ExportedServices, entMeta) - if err != nil { - return 0, nil, err - } - for _, entry := range entries { - esEntry, ok := entry.(*structs.ExportedServicesConfigEntry) - if !ok { - return 0, nil, fmt.Errorf("type %T is not a %s config entry", esEntry, structs.ExportedServices) - } - // get a copy of the config entry with Services filtered to match serviceName - newEntry := filterExportedServices(esEntry, matchFunc(entry.GetEnterpriseMeta())) - // the filter will return a new entry, so checking to see if its services is empty says that there - // were matches and that we should include it in the results - if len(newEntry.Services) > 0 { - exportedServicesEntries = append(exportedServicesEntries, newEntry) - } - } - return idx, exportedServicesEntries, nil -} - // protocolForService returns the service graph protocol associated to the // provided service, checking all relevant config entries. func protocolForService( @@ -1429,23 +1468,6 @@ func protocolForService( return maxIdx, chain.Protocol, nil } -// filterExportedServices returns the slice of ExportedService that matc ffor matching service names -// returning a copy of entry with only the services that match one of the -// services in candidates. -func filterExportedServices( - entry *structs.ExportedServicesConfigEntry, - testFunc func(structs.ExportedService) bool, -) *structs.ExportedServicesConfigEntry { - newEntry := *entry - newEntry.Services = []structs.ExportedService{} - for _, ceSvc := range entry.Services { - if testFunc(ceSvc) { - newEntry.Services = append(newEntry.Services, ceSvc) - } - } - return &newEntry -} - func newConfigEntryQuery(c structs.ConfigEntry) configentry.KindName { return configentry.NewKindName(c.GetKind(), c.GetName(), c.GetEnterpriseMeta()) } diff --git a/agent/consul/state/config_entry_intention.go b/agent/consul/state/config_entry_intention.go index 27c4912e6e..17183e7cee 100644 --- a/agent/consul/state/config_entry_intention.go +++ b/agent/consul/state/config_entry_intention.go @@ -101,8 +101,17 @@ func (s *ServiceIntentionSourceIndex) FromObject(obj interface{}) (bool, [][]byt vals := make([][]byte, 0, len(ixnEntry.Sources)) for _, src := range ixnEntry.Sources { - sn := src.SourceServiceName() - vals = append(vals, []byte(sn.String()+"\x00")) + peer := src.Peer + if peer == "" { + peer = structs.LocalPeerKeyword + } + sn := src.SourceServiceName().String() + + // add 2 for null separator after each string + buf := newIndexBuilder(len(peer) + len(sn) + 2) + buf.String(peer) + buf.String(sn) + vals = append(vals, buf.Bytes()) } if len(vals) == 0 { @@ -120,8 +129,15 @@ func (s *ServiceIntentionSourceIndex) FromArgs(args ...interface{}) ([]byte, err if !ok { return nil, fmt.Errorf("argument must be a structs.ServiceID: %#v", args[0]) } + // Intention queries cannot use a peered service as a source + peer := structs.LocalPeerKeyword + sn := arg.String() + // add 2 for null separator after each string + buf := newIndexBuilder(len(peer) + len(sn) + 2) + buf.String(peer) + buf.String(sn) // Add the null character as a terminator - return []byte(arg.String() + "\x00"), nil + return buf.Bytes(), nil } func configIntentionsListTxn(tx ReadTxn, ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Intentions, bool, error) { @@ -186,10 +202,13 @@ func (s *Store) configIntentionGetExactTxn(tx ReadTxn, ws memdb.WatchSet, args * return idx, nil, nil, nil } - sn := structs.NewServiceName(args.SourceName, args.SourceEnterpriseMeta()) + psn := structs.PeeredServiceName{ + Peer: args.SourcePeer, + ServiceName: structs.NewServiceName(args.SourceName, args.SourceEnterpriseMeta()), + } for _, src := range entry.Sources { - if sn == src.SourceServiceName() { + if psn.Peer == src.Peer && psn.ServiceName == src.SourceServiceName() { return idx, entry, entry.ToIntention(src), nil } } @@ -208,7 +227,7 @@ func (s *Store) configIntentionMatchTxn(tx ReadTxn, ws memdb.WatchSet, args *str // improving that in the future, the test cases shouldn't have to // change for that. - index, ixns, err := configIntentionMatchOneTxn(tx, ws, entry, args.Type) + index, ixns, err := configIntentionMatchOneTxn(tx, ws, entry, args.Type, structs.IntentionTargetService) if err != nil { return 0, nil, err } @@ -224,14 +243,15 @@ func (s *Store) configIntentionMatchTxn(tx ReadTxn, ws memdb.WatchSet, args *str } func configIntentionMatchOneTxn( - tx ReadTxn, - ws memdb.WatchSet, + tx ReadTxn, ws memdb.WatchSet, matchEntry structs.IntentionMatchEntry, matchType structs.IntentionMatchType, + targetType structs.IntentionTargetType, ) (uint64, structs.Intentions, error) { switch matchType { + // targetType is only relevant for Source matches as egress Destinations can only be Intention Destinations in the mesh case structs.IntentionMatchSource: - return readSourceIntentionsFromConfigEntriesTxn(tx, ws, matchEntry.Name, matchEntry.GetEnterpriseMeta()) + return readSourceIntentionsFromConfigEntriesTxn(tx, ws, matchEntry.Name, matchEntry.GetEnterpriseMeta(), targetType) case structs.IntentionMatchDestination: return readDestinationIntentionsFromConfigEntriesTxn(tx, ws, matchEntry.Name, matchEntry.GetEnterpriseMeta()) default: @@ -239,7 +259,13 @@ func configIntentionMatchOneTxn( } } -func readSourceIntentionsFromConfigEntriesTxn(tx ReadTxn, ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta) (uint64, structs.Intentions, error) { +func readSourceIntentionsFromConfigEntriesTxn( + tx ReadTxn, + ws memdb.WatchSet, + serviceName string, + entMeta *acl.EnterpriseMeta, + targetType structs.IntentionTargetType, +) (uint64, structs.Intentions, error) { idx := maxIndexTxn(tx, tableConfigEntries) var ( @@ -249,9 +275,7 @@ func readSourceIntentionsFromConfigEntriesTxn(tx ReadTxn, ws memdb.WatchSet, ser names := getIntentionPrecedenceMatchServiceNames(serviceName, entMeta) for _, sn := range names { - results, err = readSourceIntentionsFromConfigEntriesForServiceTxn( - tx, ws, sn.Name, &sn.EnterpriseMeta, results, - ) + results, err = readSourceIntentionsFromConfigEntriesForServiceTxn(tx, ws, sn.Name, &sn.EnterpriseMeta, results, targetType) if err != nil { return 0, nil, err } @@ -263,7 +287,14 @@ func readSourceIntentionsFromConfigEntriesTxn(tx ReadTxn, ws memdb.WatchSet, ser return idx, results, nil } -func readSourceIntentionsFromConfigEntriesForServiceTxn(tx ReadTxn, ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, results structs.Intentions) (structs.Intentions, error) { +func readSourceIntentionsFromConfigEntriesForServiceTxn( + tx ReadTxn, + ws memdb.WatchSet, + serviceName string, + entMeta *acl.EnterpriseMeta, + results structs.Intentions, + targetType structs.IntentionTargetType, +) (structs.Intentions, error) { sn := structs.NewServiceName(serviceName, entMeta) iter, err := tx.Get(tableConfigEntries, indexSource, sn) @@ -274,9 +305,31 @@ func readSourceIntentionsFromConfigEntriesForServiceTxn(tx ReadTxn, ws memdb.Wat for v := iter.Next(); v != nil; v = iter.Next() { entry := v.(*structs.ServiceIntentionsConfigEntry) + entMeta := entry.DestinationServiceName().EnterpriseMeta + // if we have a wildcard namespace or partition assume we are querying a service intention + // as destination intentions will never be queried as wildcard + kind := structs.GatewayServiceKindService + if entMeta.NamespaceOrDefault() != acl.WildcardName && entMeta.PartitionOrDefault() != acl.WildcardName { + kind, err = GatewayServiceKind(tx, entry.DestinationServiceName().Name, &entMeta) + if err != nil { + return nil, err + } + } for _, src := range entry.Sources { if src.SourceServiceName() == sn { - results = append(results, entry.ToIntention(src)) + switch targetType { + case structs.IntentionTargetService: + if kind == structs.GatewayServiceKindService || kind == structs.GatewayServiceKindUnknown { + results = append(results, entry.ToIntention(src)) + } + case structs.IntentionTargetDestination: + // wildcard is needed here to be able to consider destinations in the wildcard intentions + if kind == structs.GatewayServiceKindDestination || entry.HasWildcardDestination() { + results = append(results, entry.ToIntention(src)) + } + default: + return nil, fmt.Errorf("invalid target type") + } } } } @@ -298,7 +351,6 @@ func readDestinationIntentionsFromConfigEntriesTxn(tx ReadTxn, ws memdb.WatchSet results = append(results, entry.ToIntentions()...) } } - // Sort the results by precedence sort.Sort(structs.IntentionPrecedenceSorter(results)) diff --git a/agent/consul/state/config_entry_oss_test.go b/agent/consul/state/config_entry_oss_test.go index 9f6a1ef44d..4d121ba32d 100644 --- a/agent/consul/state/config_entry_oss_test.go +++ b/agent/consul/state/config_entry_oss_test.go @@ -40,120 +40,124 @@ func testIndexerTableConfigEntries() map[string]indexerTestCase { } } -func TestStore_ExportedServices(t *testing.T) { +func TestStore_peersForService(t *testing.T) { + queryName := "foo" + type testCase struct { name string - write []structs.ConfigEntry - query string - expect []*structs.ExportedServicesConfigEntry + write structs.ConfigEntry + expect []string } cases := []testCase{ { name: "empty everything", - write: []structs.ConfigEntry{}, - query: "foo", - expect: []*structs.ExportedServicesConfigEntry{}, + expect: nil, }, { - name: "no matching exported services", - write: []structs.ConfigEntry{ - &structs.ProxyConfigEntry{Name: "foo"}, - &structs.ProxyConfigEntry{Name: "bar"}, - &structs.ExportedServicesConfigEntry{ - Name: "baz", - Services: []structs.ExportedService{ - {Name: "baz"}, + name: "service is not exported", + write: &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "not-" + queryName, + Consumers: []structs.ServiceConsumer{ + { + PeerName: "zip", + }, + }, }, }, }, - query: "foo", - expect: []*structs.ExportedServicesConfigEntry{}, + expect: nil, }, { - name: "exact match service name", - write: []structs.ConfigEntry{ - &structs.ExportedServicesConfigEntry{ - Name: "foo", - Services: []structs.ExportedService{ - {Name: "foo"}, + name: "wildcard name matches", + write: &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "not-" + queryName, + Consumers: []structs.ServiceConsumer{ + { + PeerName: "zip", + }, + }, }, - }, - &structs.ExportedServicesConfigEntry{ - Name: "bar", - Services: []structs.ExportedService{ - {Name: "bar"}, - }, - }, - }, - query: "bar", - expect: []*structs.ExportedServicesConfigEntry{ - { - Name: "bar", - Services: []structs.ExportedService{ - {Name: "bar"}, + { + Name: structs.WildcardSpecifier, + Consumers: []structs.ServiceConsumer{ + { + PeerName: "bar", + }, + { + PeerName: "baz", + }, + }, }, }, }, + expect: []string{"bar", "baz"}, }, { - name: "wildcard match on service name", - write: []structs.ConfigEntry{ - &structs.ExportedServicesConfigEntry{ - Name: "foo", - Services: []structs.ExportedService{ - {Name: "foo"}, + name: "exact name takes precedence over wildcard", + write: &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: queryName, + Consumers: []structs.ServiceConsumer{ + { + PeerName: "baz", + }, + }, }, - }, - &structs.ExportedServicesConfigEntry{ - Name: "wildcard", - Services: []structs.ExportedService{ - {Name: structs.WildcardSpecifier}, - }, - }, - }, - query: "foo", - expect: []*structs.ExportedServicesConfigEntry{ - { - Name: "foo", - Services: []structs.ExportedService{ - {Name: "foo"}, - }, - }, - { - Name: "wildcard", - Services: []structs.ExportedService{ - {Name: structs.WildcardSpecifier}, + { + Name: structs.WildcardSpecifier, + Consumers: []structs.ServiceConsumer{ + { + PeerName: "zip", + }, + }, }, }, }, + expect: []string{"baz"}, }, } for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { s := testStateStore(t) + var lastIdx uint64 - // Write the entries. - for idx, entry := range tc.write { - require.NoError(t, s.EnsureConfigEntry(uint64(idx+1), entry)) + // Write the entry. + if tc.write != nil { + require.NoError(t, tc.write.Normalize()) + require.NoError(t, tc.write.Validate()) + + lastIdx++ + require.NoError(t, s.EnsureConfigEntry(lastIdx, tc.write)) } // Read the entries back. tx := s.db.ReadTxn() defer tx.Abort() - idx, entries, err := getExportedServiceConfigEntriesTxn(tx, nil, tc.query, acl.DefaultEnterpriseMeta()) + + idx, peers, err := peersForServiceTxn(tx, nil, queryName, acl.DefaultEnterpriseMeta()) require.NoError(t, err) - require.Equal(t, uint64(len(tc.write)), idx) + + // This is a little weird, but when there are no results, the index returned should be the max index for the + // config entries table so that the caller can watch for changes to it + if len(peers) == 0 { + require.Equal(t, maxIndexTxn(tx, tableConfigEntries), idx) + } else { + require.Equal(t, lastIdx, idx) + } // Verify the result. - require.Len(t, entries, len(tc.expect)) - for idx, got := range entries { - // ignore raft fields - got.ModifyIndex = 0 - got.CreateIndex = 0 - require.Equal(t, tc.expect[idx], got) - } + require.Len(t, peers, len(tc.expect)) + require.Equal(t, tc.expect, peers) }) } } diff --git a/agent/consul/state/config_entry_test.go b/agent/consul/state/config_entry_test.go index 8cb4d8f51d..b874f41af5 100644 --- a/agent/consul/state/config_entry_test.go +++ b/agent/consul/state/config_entry_test.go @@ -73,8 +73,8 @@ func TestStore_ConfigEntry(t *testing.T) { serviceConf.Protocol = "http" require.NoError(t, s.EnsureConfigEntry(5, serviceConf)) require.True(t, watchFired(ws)) -} +} func TestStore_ConfigEntryCAS(t *testing.T) { s := testConfigStateStore(t) @@ -310,6 +310,536 @@ func TestStore_ConfigEntries(t *testing.T) { Protocol: "tcp", })) require.True(t, watchFired(ws)) + +} + +func TestStore_ServiceDefaults_Kind_Destination(t *testing.T) { + s := testConfigStateStore(t) + + Gtwy := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "Gtwy1", + Services: []structs.LinkedService{ + { + Name: "dest1", + }, + }, + } + + // Create + require.NoError(t, s.EnsureConfigEntry(0, Gtwy)) + + destination := &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "dest1", + Destination: &structs.DestinationConfig{}, + } + + _, gatewayServices, err := s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + + ws := memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + // Create + require.NoError(t, s.EnsureConfigEntry(0, destination)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindDestination) + + _, kindServices, err := s.ServiceNamesOfKind(ws, structs.ServiceKindDestination) + require.NoError(t, err) + require.Len(t, kindServices, 1) + require.Equal(t, kindServices[0].Kind, structs.ServiceKindDestination) + + ws = memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + require.NoError(t, s.DeleteConfigEntry(6, structs.ServiceDefaults, destination.Name, &destination.EnterpriseMeta)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + + _, kindServices, err = s.ServiceNamesOfKind(ws, structs.ServiceKindDestination) + require.NoError(t, err) + require.Len(t, kindServices, 0) + +} + +func TestStore_ServiceDefaults_Kind_NotDestination(t *testing.T) { + s := testConfigStateStore(t) + + Gtwy := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "Gtwy1", + Services: []structs.LinkedService{ + { + Name: "dest1", + }, + }, + } + + // Create + require.NoError(t, s.EnsureConfigEntry(0, Gtwy)) + + destination := &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "dest1", + } + + _, gatewayServices, err := s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + + ws := memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + // Create + require.NoError(t, s.EnsureConfigEntry(0, destination)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.False(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + + ws = memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + require.NoError(t, s.DeleteConfigEntry(6, structs.ServiceDefaults, destination.Name, &destination.EnterpriseMeta)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.False(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + +} + +func TestStore_Service_TerminatingGateway_Kind_Service_Destination(t *testing.T) { + s := testConfigStateStore(t) + + Gtwy := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "Gtwy1", + Services: []structs.LinkedService{ + { + Name: "web", + }, + }, + } + + // Create + require.NoError(t, s.EnsureConfigEntry(0, Gtwy)) + + service := &structs.NodeService{ + Kind: structs.ServiceKindTypical, + Service: "web", + } + destination := &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "web", + Destination: &structs.DestinationConfig{}, + } + + _, gatewayServices, err := s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + + ws := memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + // Create + require.NoError(t, s.EnsureNode(0, &structs.Node{Node: "node1"})) + require.NoError(t, s.EnsureService(0, "node1", service)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindService) + + _, kindServices, err := s.ServiceNamesOfKind(ws, structs.ServiceKindTypical) + require.NoError(t, err) + require.Len(t, kindServices, 1) + require.Equal(t, kindServices[0].Kind, structs.ServiceKindTypical) + + require.NoError(t, s.EnsureConfigEntry(0, destination)) + + _, gatewayServices, err = s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindService) + + _, kindServices, err = s.ServiceNamesOfKind(ws, structs.ServiceKindTypical) + require.NoError(t, err) + require.Len(t, kindServices, 1) + require.Equal(t, kindServices[0].Kind, structs.ServiceKindTypical) + + ws = memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + require.NoError(t, s.DeleteService(6, "node1", service.ID, &service.EnterpriseMeta, "")) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindDestination) + + _, kindServices, err = s.ServiceNamesOfKind(ws, structs.ServiceKindDestination) + require.NoError(t, err) + require.Len(t, kindServices, 1) + require.Equal(t, kindServices[0].Kind, structs.ServiceKindDestination) + +} + +func TestStore_Service_TerminatingGateway_Kind_Destination_Service(t *testing.T) { + s := testConfigStateStore(t) + + Gtwy := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "Gtwy1", + Services: []structs.LinkedService{ + { + Name: "web", + }, + }, + } + + // Create + require.NoError(t, s.EnsureConfigEntry(0, Gtwy)) + + service := &structs.NodeService{ + Kind: structs.ServiceKindTypical, + Service: "web", + } + destination := &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "web", + Destination: &structs.DestinationConfig{}, + } + + _, gatewayServices, err := s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + + ws := memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + // Create + require.NoError(t, s.EnsureConfigEntry(0, destination)) + + _, gatewayServices, err = s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindDestination) + + _, kindServices, err := s.ServiceNamesOfKind(ws, structs.ServiceKindDestination) + require.NoError(t, err) + require.Len(t, kindServices, 1) + require.Equal(t, kindServices[0].Kind, structs.ServiceKindDestination) + + require.NoError(t, s.EnsureNode(0, &structs.Node{Node: "node1"})) + require.NoError(t, s.EnsureService(0, "node1", service)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindService) + + _, kindServices, err = s.ServiceNamesOfKind(ws, structs.ServiceKindTypical) + require.NoError(t, err) + require.Len(t, kindServices, 1) + require.Equal(t, kindServices[0].Kind, structs.ServiceKindTypical) + + ws = memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + require.NoError(t, s.DeleteService(6, "node1", service.ID, &service.EnterpriseMeta, "")) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindDestination) + + _, kindServices, err = s.ServiceNamesOfKind(ws, structs.ServiceKindDestination) + require.NoError(t, err) + require.Len(t, kindServices, 1) + require.Equal(t, kindServices[0].Kind, structs.ServiceKindDestination) + +} + +func TestStore_Service_TerminatingGateway_Kind_Service(t *testing.T) { + s := testConfigStateStore(t) + + Gtwy := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "Gtwy1", + Services: []structs.LinkedService{ + { + Name: "web", + }, + }, + } + + // Create + require.NoError(t, s.EnsureConfigEntry(0, Gtwy)) + + service := &structs.NodeService{ + Kind: structs.ServiceKindTypical, + Service: "web", + } + + _, gatewayServices, err := s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + + ws := memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + // Create + require.NoError(t, s.EnsureNode(0, &structs.Node{Node: "node1"})) + require.NoError(t, s.EnsureService(0, "node1", service)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindService) + + ws = memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + require.NoError(t, s.DeleteService(6, "node1", service.ID, &service.EnterpriseMeta, "")) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) + +} + +func TestStore_ServiceDefaults_Kind_Destination_Wildcard(t *testing.T) { + s := testConfigStateStore(t) + + Gtwy := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "Gtwy1", + Services: []structs.LinkedService{ + { + Name: "*", + }, + }, + } + + // Create + require.NoError(t, s.EnsureConfigEntry(0, Gtwy)) + + destination := &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "dest1", + Destination: &structs.DestinationConfig{}, + } + + _, gatewayServices, err := s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 0) + + ws := memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + // Create + require.NoError(t, s.EnsureConfigEntry(0, destination)) + require.NoError(t, err) + + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindDestination) + + ws = memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + require.NoError(t, s.DeleteConfigEntry(6, structs.ServiceDefaults, destination.Name, &destination.EnterpriseMeta)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindUnknown) +} + +func TestStore_Service_TerminatingGateway_Kind_Service_Wildcard(t *testing.T) { + s := testConfigStateStore(t) + + Gtwy := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "Gtwy1", + Services: []structs.LinkedService{ + { + Name: "*", + }, + }, + } + + // Create + require.NoError(t, s.EnsureConfigEntry(0, Gtwy)) + + service := &structs.NodeService{ + Kind: structs.ServiceKindTypical, + Service: "web", + } + + _, gatewayServices, err := s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 0) + + ws := memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + // Create + require.NoError(t, s.EnsureNode(0, &structs.Node{Node: "node1"})) + require.NoError(t, s.EnsureService(0, "node1", service)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindService) + + ws = memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + require.NoError(t, s.DeleteService(6, "node1", service.ID, &service.EnterpriseMeta, "")) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 0) +} + +func TestStore_Service_TerminatingGateway_Kind_Service_Destination_Wildcard(t *testing.T) { + s := testConfigStateStore(t) + + Gtwy := &structs.TerminatingGatewayConfigEntry{ + Kind: structs.TerminatingGateway, + Name: "Gtwy1", + Services: []structs.LinkedService{ + { + Name: "*", + }, + }, + } + + // Create + require.NoError(t, s.EnsureConfigEntry(0, Gtwy)) + + service := &structs.NodeService{ + Kind: structs.ServiceKindTypical, + Service: "web", + } + destination := &structs.ServiceConfigEntry{ + Kind: structs.ServiceDefaults, + Name: "web", + Destination: &structs.DestinationConfig{}, + } + + _, gatewayServices, err := s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 0) + + ws := memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + // Create + require.NoError(t, s.EnsureConfigEntry(0, destination)) + + _, gatewayServices, err = s.GatewayServices(nil, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindDestination) + + require.NoError(t, s.EnsureNode(0, &structs.Node{Node: "node1"})) + require.NoError(t, s.EnsureService(0, "node1", service)) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 1) + require.Equal(t, gatewayServices[0].ServiceKind, structs.GatewayServiceKindService) + + ws = memdb.NewWatchSet() + _, _, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + + require.NoError(t, s.DeleteService(6, "node1", service.ID, &service.EnterpriseMeta, "")) + + //Watch is fired because we transitioned to a destination, by default we assume it's not. + require.True(t, watchFired(ws)) + + _, gatewayServices, err = s.GatewayServices(ws, "Gtwy1", nil) + require.NoError(t, err) + require.Len(t, gatewayServices, 0) + } func TestStore_ConfigEntry_GraphValidation(t *testing.T) { diff --git a/agent/consul/state/coordinate_test.go b/agent/consul/state/coordinate_test.go index 6b576a8b80..0335ac5f41 100644 --- a/agent/consul/state/coordinate_test.go +++ b/agent/consul/state/coordinate_test.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/lib" + "github.com/hashicorp/consul/sdk/testutil" ) // TODO(partitions): test partitioned nodes here @@ -254,7 +255,7 @@ func TestStateStore_Coordinate_Snapshot_Restore(t *testing.T) { // the read side. require.Equal(t, append(updates, badUpdate), dump) - runStep(t, "restore the values into a new state store", func(t *testing.T) { + testutil.RunStep(t, "restore the values into a new state store", func(t *testing.T) { s := testStateStore(t) restore := s.Restore() require.NoError(t, restore.Coordinates(6, dump)) diff --git a/agent/consul/state/intention.go b/agent/consul/state/intention.go index 821288f3bc..cff5ed3536 100644 --- a/agent/consul/state/intention.go +++ b/agent/consul/state/intention.go @@ -600,6 +600,7 @@ func legacyIntentionGetTxn(tx ReadTxn, ws memdb.WatchSet, id string) (uint64, *s // Convert the interface{} if it is non-nil var result *structs.Intention + if intention != nil { result = intention.(*structs.Intention) } @@ -842,11 +843,12 @@ func (s *Store) IntentionMatchOne( ws memdb.WatchSet, entry structs.IntentionMatchEntry, matchType structs.IntentionMatchType, + destinationType structs.IntentionTargetType, ) (uint64, structs.Intentions, error) { tx := s.db.Txn(false) defer tx.Abort() - return compatIntentionMatchOneTxn(tx, ws, entry, matchType) + return compatIntentionMatchOneTxn(tx, ws, entry, matchType, destinationType) } func compatIntentionMatchOneTxn( @@ -854,6 +856,7 @@ func compatIntentionMatchOneTxn( ws memdb.WatchSet, entry structs.IntentionMatchEntry, matchType structs.IntentionMatchType, + destinationType structs.IntentionTargetType, ) (uint64, structs.Intentions, error) { usingConfigEntries, err := areIntentionsInConfigEntries(tx, ws) @@ -863,7 +866,7 @@ func compatIntentionMatchOneTxn( if !usingConfigEntries { return legacyIntentionMatchOneTxn(tx, ws, entry, matchType) } - return configIntentionMatchOneTxn(tx, ws, entry, matchType) + return configIntentionMatchOneTxn(tx, ws, entry, matchType, destinationType) } func legacyIntentionMatchOneTxn( @@ -949,12 +952,17 @@ type ServiceWithDecision struct { // IntentionTopology returns the upstreams or downstreams of a service. Upstreams and downstreams are inferred from // intentions. If intentions allow a connection from the target to some candidate service, the candidate service is considered // an upstream of the target. -func (s *Store) IntentionTopology(ws memdb.WatchSet, - target structs.ServiceName, downstreams bool, defaultDecision acl.EnforcementDecision) (uint64, structs.ServiceList, error) { +func (s *Store) IntentionTopology( + ws memdb.WatchSet, + target structs.ServiceName, + downstreams bool, + defaultDecision acl.EnforcementDecision, + intentionTarget structs.IntentionTargetType, +) (uint64, structs.ServiceList, error) { tx := s.db.ReadTxn() defer tx.Abort() - idx, services, err := s.intentionTopologyTxn(tx, ws, target, downstreams, defaultDecision) + idx, services, err := s.intentionTopologyTxn(tx, ws, target, downstreams, defaultDecision, intentionTarget) if err != nil { requested := "upstreams" if downstreams { @@ -965,13 +973,18 @@ func (s *Store) IntentionTopology(ws memdb.WatchSet, resp := make(structs.ServiceList, 0) for _, svc := range services { - resp = append(resp, svc.Name) + resp = append(resp, structs.ServiceName{Name: svc.Name.Name, EnterpriseMeta: svc.Name.EnterpriseMeta}) } return idx, resp, nil } -func (s *Store) intentionTopologyTxn(tx ReadTxn, ws memdb.WatchSet, - target structs.ServiceName, downstreams bool, defaultDecision acl.EnforcementDecision) (uint64, []ServiceWithDecision, error) { +func (s *Store) intentionTopologyTxn( + tx ReadTxn, ws memdb.WatchSet, + target structs.ServiceName, + downstreams bool, + defaultDecision acl.EnforcementDecision, + intentionTarget structs.IntentionTargetType, +) (uint64, []ServiceWithDecision, error) { var maxIdx uint64 @@ -987,7 +1000,7 @@ func (s *Store) intentionTopologyTxn(tx ReadTxn, ws memdb.WatchSet, Partition: target.PartitionOrDefault(), Name: target.Name, } - index, intentions, err := compatIntentionMatchOneTxn(tx, ws, entry, intentionMatchType) + index, intentions, err := compatIntentionMatchOneTxn(tx, ws, entry, intentionMatchType, intentionTarget) if err != nil { return 0, nil, fmt.Errorf("failed to query intentions for %s", target.String()) } @@ -999,7 +1012,13 @@ func (s *Store) intentionTopologyTxn(tx ReadTxn, ws memdb.WatchSet, // Ideally those should be excluded as well, since they can't be upstreams/downstreams without a proxy. // Maybe narrow serviceNamesOfKindTxn to services represented by proxies? (ingress, sidecar- wildcardMeta := structs.WildcardEnterpriseMetaInPartition(structs.WildcardSpecifier) - index, services, err := serviceNamesOfKindTxn(tx, ws, structs.ServiceKindTypical, *wildcardMeta) + var services []*KindServiceName + if intentionTarget == structs.IntentionTargetService { + index, services, err = serviceNamesOfKindTxn(tx, ws, structs.ServiceKindTypical, *wildcardMeta) + } else { + // destinations can only ever be upstream, since they are only allowed as intention destination. + index, services, err = serviceNamesOfKindTxn(tx, ws, structs.ServiceKindDestination, *wildcardMeta) + } if err != nil { return index, nil, fmt.Errorf("failed to list ingress service names: %v", err) } @@ -1056,7 +1075,7 @@ func (s *Store) intentionTopologyTxn(tx ReadTxn, ws memdb.WatchSet, } result = append(result, ServiceWithDecision{ - Name: candidate, + Name: structs.ServiceName{Name: candidate.Name, EnterpriseMeta: candidate.EnterpriseMeta}, Decision: decision, }) } diff --git a/agent/consul/state/intention_test.go b/agent/consul/state/intention_test.go index fde26d1d9a..3c2dac3f28 100644 --- a/agent/consul/state/intention_test.go +++ b/agent/consul/state/intention_test.go @@ -1199,6 +1199,197 @@ func TestStore_IntentionsList(t *testing.T) { }) } +// TestStore_IntentionExact_ConfigEntries test that we can get a local config entry intention +// and a peered config entry intention with an IntentionGetExact call +func TestStore_IntentionExact_ConfigEntries(t *testing.T) { + s := testConfigStateStore(t) + inputs := []*structs.ServiceIntentionsConfigEntry{ + { + Kind: structs.ServiceIntentions, + Name: "foo", + Sources: []*structs.SourceIntention{ + { + Action: structs.IntentionActionAllow, + Name: "bar", + Peer: "peer1", + Description: "peered service intention", + }, + { + Action: structs.IntentionActionAllow, + Name: "bar", + Description: "local service intention", + }, + }, + }, + } + idx := uint64(0) + + for _, input := range inputs { + require.NoError(t, input.Normalize()) + require.NoError(t, input.Validate()) + idx++ + require.NoError(t, s.EnsureConfigEntry(idx, input)) + } + + t.Run("assert that we can get the peered intention", func(t *testing.T) { + idx, entry, ixn, err := s.IntentionGetExact(nil, &structs.IntentionQueryExact{ + SourceNS: "default", + SourceName: "bar", + SourcePeer: "peer1", + DestinationNS: "default", + DestinationName: "foo", + }) + + require.NoError(t, err) + require.NotNil(t, entry) + require.NotNil(t, ixn) + require.Equal(t, "peer1", ixn.SourcePeer) + require.Equal(t, "peered service intention", ixn.Description) + require.Equal(t, uint64(1), idx) + }) + + t.Run("assert that we can get the local intention", func(t *testing.T) { + idx, entry, ixn, err := s.IntentionGetExact(nil, &structs.IntentionQueryExact{ + SourceNS: "default", + SourceName: "bar", + DestinationNS: "default", + DestinationName: "foo", + }) + + require.NoError(t, err) + require.NotNil(t, entry) + require.NotNil(t, ixn) + require.Empty(t, ixn.SourcePeer) + require.Equal(t, "local service intention", ixn.Description) + require.Equal(t, uint64(1), idx) + }) +} + +func TestStore_IntentionMatch_ConfigEntries(t *testing.T) { + type testcase struct { + name string + input []*structs.ServiceIntentionsConfigEntry + query structs.IntentionQueryMatch + expect []structs.Intentions + } + run := func(t *testing.T, tc testcase) { + s := testConfigStateStore(t) + idx := uint64(0) + for _, conf := range tc.input { + require.NoError(t, conf.Normalize()) + require.NoError(t, conf.Validate()) + idx++ + require.NoError(t, s.EnsureConfigEntry(idx, conf)) + } + + _, matches, err := s.IntentionMatch(nil, &tc.query) + require.NoError(t, err) + + // clear raft indexes for easier comparison + for _, match := range matches { + for _, ixn := range match { + ixn.CreateIndex = 0 + ixn.ModifyIndex = 0 + } + } + require.Equal(t, tc.expect, matches) + } + tcs := []testcase{ + { + name: "peered intention matched with destination query", + input: []*structs.ServiceIntentionsConfigEntry{ + { + Kind: structs.ServiceIntentions, + Name: "foo", + Sources: []*structs.SourceIntention{ + { + Action: structs.IntentionActionAllow, + Name: "example", + Peer: "bar", + }, + { + Action: structs.IntentionActionAllow, + Name: "*", + Peer: "baz", + }, + }, + }, + }, + query: structs.IntentionQueryMatch{ + Type: structs.IntentionMatchDestination, + Entries: []structs.IntentionMatchEntry{ + { + Namespace: "default", + Name: "foo", + }, + }, + }, + expect: []structs.Intentions{ + { + { + Action: structs.IntentionActionAllow, + SourceType: structs.IntentionSourceConsul, + DestinationPartition: acl.DefaultPartitionName, + DestinationNS: "default", + DestinationName: "foo", + SourcePeer: "bar", + SourceNS: "default", + SourceName: "example", + SourcePartition: "", // note that SourcePartition does not get normalized + Precedence: 9, + }, + { + Action: structs.IntentionActionAllow, + SourceType: structs.IntentionSourceConsul, + DestinationPartition: acl.DefaultPartitionName, + DestinationNS: "default", + DestinationName: "foo", + SourcePeer: "baz", + SourceNS: "default", + SourceName: "*", + SourcePartition: "", // note that SourcePartition does not get normalized + Precedence: 8, + }, + }, + }, + }, + { + // This behavior may change in the future but this test is in place + // to ensure peered intentions cannot accidentally be queried by source + name: "peered intention cannot be queried by source", + input: []*structs.ServiceIntentionsConfigEntry{ + { + Kind: structs.ServiceIntentions, + Name: "foo", + Sources: []*structs.SourceIntention{ + { + Action: structs.IntentionActionAllow, + Name: "example", + Peer: "bar", + }, + }, + }, + }, + query: structs.IntentionQueryMatch{ + Type: structs.IntentionMatchSource, + Entries: []structs.IntentionMatchEntry{ + { + // We don't expose a Peer field + Namespace: "default", + Name: "example", + }, + }, + }, + expect: []structs.Intentions{nil}, + }, + } + for _, tc := range tcs { + t.Run(tc.name, func(t *testing.T) { + run(t, tc) + }) + } +} + // Test the matrix of match logic. // // Note that this doesn't need to test the intention sort logic exhaustively @@ -1533,7 +1724,7 @@ func TestStore_IntentionMatchOne_table(t *testing.T) { Namespace: "default", Name: query, } - _, matches, err := s.IntentionMatchOne(nil, entry, typ) + _, matches, err := s.IntentionMatchOne(nil, entry, typ, structs.IntentionTargetService) require.NoError(t, err) // Verify matches @@ -1873,7 +2064,7 @@ func TestStore_IntentionDecision(t *testing.T) { Partition: acl.DefaultPartitionName, Name: tc.src, } - _, intentions, err := s.IntentionMatchOne(nil, entry, structs.IntentionMatchSource) + _, intentions, err := s.IntentionMatchOne(nil, entry, structs.IntentionMatchSource, structs.IntentionTargetService) if err != nil { require.NoError(t, err) } @@ -2185,7 +2376,197 @@ func TestStore_IntentionTopology(t *testing.T) { idx++ } - idx, got, err := s.IntentionTopology(nil, tt.target, tt.downstreams, tt.defaultDecision) + idx, got, err := s.IntentionTopology(nil, tt.target, tt.downstreams, tt.defaultDecision, structs.IntentionTargetService) + require.NoError(t, err) + require.Equal(t, tt.expect.idx, idx) + + // ServiceList is from a map, so it is not deterministically sorted + sort.Slice(got, func(i, j int) bool { + return got[i].String() < got[j].String() + }) + require.Equal(t, tt.expect.services, got) + }) + } +} + +func TestStore_IntentionTopology_Destination(t *testing.T) { + node := structs.Node{ + Node: "foo", + Address: "127.0.0.1", + } + + services := []structs.NodeService{ + { + ID: structs.ConsulServiceID, + Service: structs.ConsulServiceName, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + { + ID: "web-1", + Service: "web", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + { + ID: "mysql-1", + Service: "mysql", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + } + destinations := []structs.ServiceConfigEntry{ + { + Name: "api.test.com", + Destination: &structs.DestinationConfig{}, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + { + Name: "kafka.store.org", + Destination: &structs.DestinationConfig{}, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + } + + type expect struct { + idx uint64 + services structs.ServiceList + } + tests := []struct { + name string + defaultDecision acl.EnforcementDecision + intentions []structs.ServiceIntentionsConfigEntry + target structs.ServiceName + downstreams bool + expect expect + }{ + { + name: "(upstream) acl allow all but intentions deny one, destination target", + defaultDecision: acl.Allow, + intentions: []structs.ServiceIntentionsConfigEntry{ + { + Kind: structs.ServiceIntentions, + Name: "api.test.com", + Sources: []*structs.SourceIntention{ + { + Name: "web", + Action: structs.IntentionActionDeny, + }, + }, + }, + }, + target: structs.NewServiceName("web", nil), + downstreams: false, + expect: expect{ + idx: 7, + services: structs.ServiceList{ + { + Name: "kafka.store.org", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + }, + }, + }, + { + name: "(upstream) acl deny all intentions allow one, destination target", + defaultDecision: acl.Deny, + intentions: []structs.ServiceIntentionsConfigEntry{ + { + Kind: structs.ServiceIntentions, + Name: "kafka.store.org", + Sources: []*structs.SourceIntention{ + { + Name: "web", + Action: structs.IntentionActionAllow, + }, + }, + }, + }, + target: structs.NewServiceName("web", nil), + downstreams: false, + expect: expect{ + idx: 7, + services: structs.ServiceList{ + { + Name: "kafka.store.org", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + }, + }, + }, + { + name: "(upstream) acl deny all check only destinations show, service target", + defaultDecision: acl.Deny, + intentions: []structs.ServiceIntentionsConfigEntry{ + { + Kind: structs.ServiceIntentions, + Name: "api", + Sources: []*structs.SourceIntention{ + { + Name: "web", + Action: structs.IntentionActionAllow, + }, + }, + }, + }, + target: structs.NewServiceName("web", nil), + downstreams: false, + expect: expect{ + idx: 7, + services: structs.ServiceList{}, + }, + }, + { + name: "(upstream) acl allow all check only destinations show, service target", + defaultDecision: acl.Allow, + intentions: []structs.ServiceIntentionsConfigEntry{ + { + Kind: structs.ServiceIntentions, + Name: "api", + Sources: []*structs.SourceIntention{ + { + Name: "web", + Action: structs.IntentionActionAllow, + }, + }, + }, + }, + target: structs.NewServiceName("web", nil), + downstreams: false, + expect: expect{ + idx: 7, + services: structs.ServiceList{ + { + Name: "api.test.com", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + { + Name: "kafka.store.org", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + }, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + s := testConfigStateStore(t) + + var idx uint64 = 1 + require.NoError(t, s.EnsureNode(idx, &node)) + idx++ + + for _, svc := range services { + require.NoError(t, s.EnsureService(idx, "foo", &svc)) + idx++ + } + for _, d := range destinations { + require.NoError(t, s.EnsureConfigEntry(idx, &d)) + idx++ + } + for _, ixn := range tt.intentions { + require.NoError(t, s.EnsureConfigEntry(idx, &ixn)) + idx++ + } + + idx, got, err := s.IntentionTopology(nil, tt.target, tt.downstreams, tt.defaultDecision, structs.IntentionTargetDestination) require.NoError(t, err) require.Equal(t, tt.expect.idx, idx) @@ -2211,7 +2592,7 @@ func TestStore_IntentionTopology_Watches(t *testing.T) { target := structs.NewServiceName("web", structs.DefaultEnterpriseMetaInDefaultPartition()) ws := memdb.NewWatchSet() - index, got, err := s.IntentionTopology(ws, target, false, acl.Deny) + index, got, err := s.IntentionTopology(ws, target, false, acl.Deny, structs.IntentionTargetService) require.NoError(t, err) require.Equal(t, uint64(0), index) require.Empty(t, got) @@ -2233,7 +2614,7 @@ func TestStore_IntentionTopology_Watches(t *testing.T) { // Reset the WatchSet ws = memdb.NewWatchSet() - index, got, err = s.IntentionTopology(ws, target, false, acl.Deny) + index, got, err = s.IntentionTopology(ws, target, false, acl.Deny, structs.IntentionTargetService) require.NoError(t, err) require.Equal(t, uint64(2), index) require.Empty(t, got) @@ -2255,7 +2636,7 @@ func TestStore_IntentionTopology_Watches(t *testing.T) { // require.False(t, watchFired(ws)) // Result should not have changed - index, got, err = s.IntentionTopology(ws, target, false, acl.Deny) + index, got, err = s.IntentionTopology(ws, target, false, acl.Deny, structs.IntentionTargetService) require.NoError(t, err) require.Equal(t, uint64(3), index) require.Empty(t, got) @@ -2270,7 +2651,7 @@ func TestStore_IntentionTopology_Watches(t *testing.T) { require.True(t, watchFired(ws)) // Reset the WatchSet - index, got, err = s.IntentionTopology(nil, target, false, acl.Deny) + index, got, err = s.IntentionTopology(nil, target, false, acl.Deny, structs.IntentionTargetService) require.NoError(t, err) require.Equal(t, uint64(4), index) diff --git a/agent/consul/state/peering.go b/agent/consul/state/peering.go index 11610ea108..3d115707d3 100644 --- a/agent/consul/state/peering.go +++ b/agent/consul/state/peering.go @@ -2,6 +2,7 @@ package state import ( "fmt" + "strings" "github.com/golang/protobuf/proto" "github.com/hashicorp/go-memdb" @@ -9,6 +10,7 @@ import ( "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/lib/maps" "github.com/hashicorp/consul/proto/pbpeering" ) @@ -40,6 +42,15 @@ func peeringTableSchema() *memdb.TableSchema { prefixIndex: prefixIndexFromQueryNoNamespace, }, }, + indexDeleted: { + Name: indexDeleted, + AllowMissing: false, + Unique: false, + Indexer: indexerSingle{ + readIndex: indexDeletedFromBoolQuery, + writeIndex: indexDeletedFromPeering, + }, + }, }, } } @@ -52,9 +63,10 @@ func peeringTrustBundlesTableSchema() *memdb.TableSchema { Name: indexID, AllowMissing: false, Unique: true, - Indexer: indexerSingle{ - readIndex: indexPeeringFromQuery, // same as peering table since we'll use the query.Value - writeIndex: indexFromPeeringTrustBundle, + Indexer: indexerSingleWithPrefix{ + readIndex: indexPeeringFromQuery, // same as peering table since we'll use the query.Value + writeIndex: indexFromPeeringTrustBundle, + prefixIndex: prefixIndexFromQueryNoNamespace, }, }, }, @@ -80,6 +92,17 @@ func indexIDFromPeering(raw interface{}) ([]byte, error) { return b.Bytes(), nil } +func indexDeletedFromPeering(raw interface{}) ([]byte, error) { + p, ok := raw.(*pbpeering.Peering) + if !ok { + return nil, fmt.Errorf("unexpected type %T for *pbpeering.Peering index", raw) + } + + var b indexBuilder + b.Bool(!p.IsActive()) + return b.Bytes(), nil +} + func (s *Store) PeeringReadByID(ws memdb.WatchSet, id string) (uint64, *pbpeering.Peering, error) { tx := s.db.ReadTxn() defer tx.Abort() @@ -140,7 +163,10 @@ func peeringReadTxn(tx ReadTxn, ws memdb.WatchSet, q Query) (uint64, *pbpeering. func (s *Store) PeeringList(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.Peering, error) { tx := s.db.ReadTxn() defer tx.Abort() + return s.peeringListTxn(ws, tx, entMeta) +} +func (s *Store) peeringListTxn(ws memdb.WatchSet, tx ReadTxn, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.Peering, error) { var ( iter memdb.ResultIterator err error @@ -200,10 +226,19 @@ func (s *Store) PeeringWrite(idx uint64, p *pbpeering.Peering) error { } if existing != nil { + // Prevent modifications to Peering marked for deletion + if !existing.IsActive() { + return fmt.Errorf("cannot write to peering that is marked for deletion") + } + p.CreateIndex = existing.CreateIndex p.ID = existing.ID } else { + if !p.IsActive() { + return fmt.Errorf("cannot create a new peering marked for deletion") + } + // TODO(peering): consider keeping PeeringState enum elsewhere? p.State = pbpeering.PeeringState_INITIAL p.CreateIndex = idx @@ -225,8 +260,6 @@ func (s *Store) PeeringWrite(idx uint64, p *pbpeering.Peering) error { return tx.Commit() } -// TODO(peering): replace with deferred deletion since this operation -// should involve cleanup of data associated with the peering. func (s *Store) PeeringDelete(idx uint64, q Query) error { tx := s.db.WriteTxn(idx) defer tx.Abort() @@ -240,6 +273,10 @@ func (s *Store) PeeringDelete(idx uint64, q Query) error { return nil } + if existing.(*pbpeering.Peering).IsActive() { + return fmt.Errorf("cannot delete a peering without first marking for deletion") + } + if err := tx.Delete(tablePeering, existing); err != nil { return fmt.Errorf("failed deleting peering: %v", err) } @@ -281,12 +318,16 @@ func (s *Store) PeeringTerminateByID(idx uint64, id string) error { return tx.Commit() } -// ExportedServicesForPeer returns the list of typical and proxy services exported to a peer. -// TODO(peering): What to do about terminating gateways? Sometimes terminating gateways are the appropriate destination -// to dial for an upstream mesh service. However, that information is handled by observing the terminating gateway's -// config entry, which we wouldn't want to replicate. How would client peers know to route through terminating gateways -// when they're not dialing through a remote mesh gateway? -func (s *Store) ExportedServicesForPeer(ws memdb.WatchSet, peerID string) (uint64, []structs.ServiceName, error) { +// ExportedServicesForPeer returns the list of typical and proxy services +// exported to a peer. +// +// TODO(peering): What to do about terminating gateways? Sometimes terminating +// gateways are the appropriate destination to dial for an upstream mesh +// service. However, that information is handled by observing the terminating +// gateway's config entry, which we wouldn't want to replicate. How would +// client peers know to route through terminating gateways when they're not +// dialing through a remote mesh gateway? +func (s *Store) ExportedServicesForPeer(ws memdb.WatchSet, peerID string) (uint64, *structs.ExportedServiceList, error) { tx := s.db.ReadTxn() defer tx.Abort() @@ -295,9 +336,40 @@ func (s *Store) ExportedServicesForPeer(ws memdb.WatchSet, peerID string) (uint6 return 0, nil, fmt.Errorf("failed to read peering: %w", err) } if peering == nil { - return 0, nil, nil + return 0, &structs.ExportedServiceList{}, nil } + return s.exportedServicesForPeerTxn(ws, tx, peering) +} + +func (s *Store) ExportedServicesForAllPeersByName(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, map[string]structs.ServiceList, error) { + tx := s.db.ReadTxn() + defer tx.Abort() + + maxIdx, peerings, err := s.peeringListTxn(ws, tx, entMeta) + if err != nil { + return 0, nil, fmt.Errorf("failed to list peerings: %w", err) + } + + out := make(map[string]structs.ServiceList) + for _, peering := range peerings { + idx, list, err := s.exportedServicesForPeerTxn(ws, tx, peering) + if err != nil { + return 0, nil, fmt.Errorf("failed to list exported services for peer %q: %w", peering.ID, err) + } + if idx > maxIdx { + maxIdx = idx + } + m := list.ListAllDiscoveryChains() + if len(m) > 0 { + out[peering.Name] = maps.SliceOfKeys(m) + } + } + + return maxIdx, out, nil +} + +func (s *Store) exportedServicesForPeerTxn(ws memdb.WatchSet, tx ReadTxn, peering *pbpeering.Peering) (uint64, *structs.ExportedServiceList, error) { maxIdx := peering.ModifyIndex entMeta := structs.NodeEnterpriseMetaInPartition(peering.Partition) @@ -309,14 +381,28 @@ func (s *Store) ExportedServicesForPeer(ws memdb.WatchSet, peerID string) (uint6 maxIdx = idx } if raw == nil { - return maxIdx, nil, nil + return maxIdx, &structs.ExportedServiceList{}, nil } + conf, ok := raw.(*structs.ExportedServicesConfigEntry) if !ok { return 0, nil, fmt.Errorf("expected type *structs.ExportedServicesConfigEntry, got %T", raw) } - set := make(map[structs.ServiceName]struct{}) + var ( + normalSet = make(map[structs.ServiceName]struct{}) + discoSet = make(map[structs.ServiceName]struct{}) + ) + + // TODO(peering): filter the disco chain portion of the results to only be + // things reachable over the mesh to avoid replicating some clutter. + // + // At least one of the following should be true for a name for it to + // replicate: + // + // - are a discovery chain by definition (service-router, service-splitter, service-resolver) + // - have an explicit sidecar kind=connect-proxy + // - use connect native mode for _, svc := range conf.Services { svcMeta := acl.NewEnterpriseMetaWithPartition(entMeta.PartitionOrDefault(), svc.Namespace) @@ -325,7 +411,7 @@ func (s *Store) ExportedServicesForPeer(ws memdb.WatchSet, peerID string) (uint6 for _, consumer := range svc.Consumers { name := structs.NewServiceName(svc.Name, &svcMeta) - if _, ok := set[name]; ok { + if _, ok := normalSet[name]; ok { // Service was covered by a wildcard that was already accounted for continue } @@ -335,89 +421,176 @@ func (s *Store) ExportedServicesForPeer(ws memdb.WatchSet, peerID string) (uint6 sawPeer = true if svc.Name != structs.WildcardSpecifier { - set[name] = struct{}{} + normalSet[name] = struct{}{} } } // If the target peer is a consumer, and all services in the namespace are exported, query those service names. if sawPeer && svc.Name == structs.WildcardSpecifier { - var typicalServices []*KindServiceName - idx, typicalServices, err = serviceNamesOfKindTxn(tx, ws, structs.ServiceKindTypical, svcMeta) + idx, typicalServices, err := serviceNamesOfKindTxn(tx, ws, structs.ServiceKindTypical, svcMeta) if err != nil { - return 0, nil, fmt.Errorf("failed to get service names: %w", err) + return 0, nil, fmt.Errorf("failed to get typical service names: %w", err) } if idx > maxIdx { maxIdx = idx } for _, s := range typicalServices { - set[s.Service] = struct{}{} + normalSet[s.Service] = struct{}{} } - var proxyServices []*KindServiceName - idx, proxyServices, err = serviceNamesOfKindTxn(tx, ws, structs.ServiceKindConnectProxy, svcMeta) + // list all config entries of kind service-resolver, service-router, service-splitter? + idx, discoChains, err := listDiscoveryChainNamesTxn(tx, ws, svcMeta) if err != nil { - return 0, nil, fmt.Errorf("failed to get service names: %w", err) + return 0, nil, fmt.Errorf("failed to get discovery chain names: %w", err) } if idx > maxIdx { maxIdx = idx } - for _, s := range proxyServices { - set[s.Service] = struct{}{} + for _, sn := range discoChains { + discoSet[sn] = struct{}{} } } } - var resp []structs.ServiceName - for svc := range set { - resp = append(resp, svc) + normal := maps.SliceOfKeys(normalSet) + disco := maps.SliceOfKeys(discoSet) + + structs.ServiceList(normal).Sort() + structs.ServiceList(disco).Sort() + + serviceProtocols := make(map[structs.ServiceName]string) + populateProtocol := func(svc structs.ServiceName) error { + if _, ok := serviceProtocols[svc]; ok { + return nil // already processed + } + + idx, protocol, err := protocolForService(tx, ws, svc) + if err != nil { + return fmt.Errorf("failed to get protocol for service: %w", err) + } + + if idx > maxIdx { + maxIdx = idx + } + + serviceProtocols[svc] = protocol + return nil } - return maxIdx, resp, nil + for _, svc := range normal { + if err := populateProtocol(svc); err != nil { + return 0, nil, err + } + } + for _, svc := range disco { + if err := populateProtocol(svc); err != nil { + return 0, nil, err + } + } + + list := &structs.ExportedServiceList{ + Services: normal, + DiscoChains: disco, + ConnectProtocol: serviceProtocols, + } + + return maxIdx, list, nil } // PeeringsForService returns the list of peerings that are associated with the service name provided in the query. // This is used to configure connect proxies for a given service. The result is generated by querying for exported // service config entries and filtering for those that match the given service. +// // TODO(peering): this implementation does all of the work on read to materialize this list of peerings, we should explore // writing to a separate index that has service peerings prepared ahead of time should this become a performance bottleneck. func (s *Store) PeeringsForService(ws memdb.WatchSet, serviceName string, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.Peering, error) { tx := s.db.ReadTxn() defer tx.Abort() - // short-circuit if the service does not exist in the context of the query -- this prevents "leaking" services - // when there are wildcard rules in place. - if svcIdx, svcExists, err := serviceExists(tx, ws, serviceName, &entMeta, ""); err != nil { - return 0, nil, fmt.Errorf("failed to check if service exists: %w", err) - } else if !svcExists { - // if the service does not exist, return the max index for the services table so caller can watch for changes - return svcIdx, nil, nil - } - // config entries must be defined in the default namespace, so we only need the partition here - meta := structs.DefaultEnterpriseMetaInPartition(entMeta.PartitionOrDefault()) - // return the idx of the config entry that was last modified so caller can watch for changes - idx, peeredServices, err := readPeeredServicesFromConfigEntriesTxn(tx, ws, serviceName, meta) + return peeringsForServiceTxn(tx, ws, serviceName, entMeta) +} + +func peeringsForServiceTxn(tx ReadTxn, ws memdb.WatchSet, serviceName string, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.Peering, error) { + // Return the idx of the config entry so the caller can watch for changes. + maxIdx, peerNames, err := peersForServiceTxn(tx, ws, serviceName, &entMeta) if err != nil { - return 0, nil, fmt.Errorf("failed to read peered services for service name: %w", err) + return 0, nil, fmt.Errorf("failed to read peers for service name %q: %w", serviceName, err) } var peerings []*pbpeering.Peering - // lookup the peering for each matching peered service - for _, peeredService := range peeredServices { + // Lookup and return the peering corresponding to each name. + for _, name := range peerNames { readQuery := Query{ - Value: peeredService.PeerName, - EnterpriseMeta: peeredService.Name.EnterpriseMeta, + Value: name, + EnterpriseMeta: *structs.NodeEnterpriseMetaInPartition(entMeta.PartitionOrDefault()), } - _, peering, err := peeringReadTxn(tx, ws, readQuery) + idx, peering, err := peeringReadTxn(tx, ws, readQuery) if err != nil { return 0, nil, fmt.Errorf("failed to read peering: %w", err) } - if peering == nil { + if idx > maxIdx { + maxIdx = idx + } + if peering == nil || !peering.IsActive() { continue } peerings = append(peerings, peering) } - // see note above about idx - return idx, peerings, nil + return maxIdx, peerings, nil +} + +// TrustBundleListByService returns the trust bundles for all peers that the given service is exported to. +func (s *Store) TrustBundleListByService(ws memdb.WatchSet, service string, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error) { + tx := s.db.ReadTxn() + defer tx.Abort() + + maxIdx, peers, err := peeringsForServiceTxn(tx, ws, service, entMeta) + if err != nil { + return 0, nil, fmt.Errorf("failed to get peers for service %s: %v", service, err) + } + + var resp []*pbpeering.PeeringTrustBundle + for _, peer := range peers { + pq := Query{ + Value: strings.ToLower(peer.Name), + EnterpriseMeta: *structs.NodeEnterpriseMetaInPartition(entMeta.PartitionOrDefault()), + } + idx, trustBundle, err := peeringTrustBundleReadTxn(tx, ws, pq) + if err != nil { + return 0, nil, fmt.Errorf("failed to read trust bundle for peer %s: %v", peer.Name, err) + } + if idx > maxIdx { + maxIdx = idx + } + if trustBundle != nil { + resp = append(resp, trustBundle) + } + } + return maxIdx, resp, nil +} + +// PeeringTrustBundleList returns the peering trust bundles for all peers. +func (s *Store) PeeringTrustBundleList(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error) { + tx := s.db.ReadTxn() + defer tx.Abort() + + return peeringTrustBundleListTxn(tx, ws, entMeta) +} + +func peeringTrustBundleListTxn(tx ReadTxn, ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error) { + iter, err := tx.Get(tablePeeringTrustBundles, indexID+"_prefix", entMeta) + if err != nil { + return 0, nil, fmt.Errorf("failed peering trust bundle lookup: %w", err) + } + + idx := maxIndexWatchTxn(tx, ws, partitionedIndexEntryName(tablePeeringTrustBundles, entMeta.PartitionOrDefault())) + + var result []*pbpeering.PeeringTrustBundle + for entry := iter.Next(); entry != nil; entry = iter.Next() { + result = append(result, entry.(*pbpeering.PeeringTrustBundle)) + } + + return idx, result, nil } // PeeringTrustBundleRead returns the peering trust bundle for the peer name given as the query value. @@ -425,6 +598,10 @@ func (s *Store) PeeringTrustBundleRead(ws memdb.WatchSet, q Query) (uint64, *pbp tx := s.db.ReadTxn() defer tx.Abort() + return peeringTrustBundleReadTxn(tx, ws, q) +} + +func peeringTrustBundleReadTxn(tx ReadTxn, ws memdb.WatchSet, q Query) (uint64, *pbpeering.PeeringTrustBundle, error) { watchCh, ptbRaw, err := tx.FirstWatch(tablePeeringTrustBundles, indexID, q) if err != nil { return 0, nil, fmt.Errorf("failed peering trust bundle lookup: %w", err) @@ -535,51 +712,106 @@ func (r *Restore) PeeringTrustBundle(ptb *pbpeering.PeeringTrustBundle) error { return nil } -// readPeeredServicesFromConfigEntriesTxn queries exported-service config entries to return peers for serviceName -// in the form of a []structs.PeeredService. -func readPeeredServicesFromConfigEntriesTxn( +// peersForServiceTxn returns the names of all peers that a service is exported to. +func peersForServiceTxn( tx ReadTxn, ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, -) (uint64, []structs.PeeredService, error) { - var results []structs.PeeredService +) (uint64, []string, error) { + // Exported service config entries are scoped to partitions so they are in the default namespace. + partitionMeta := structs.DefaultEnterpriseMetaInPartition(entMeta.PartitionOrDefault()) - // Get all exported-service config entries for that have exports for serviceName. This assumes the result - // has exported services filtered to only those matching serviceName so no futher filtering is needed. - idx, exportedServicesEntries, err := getExportedServiceConfigEntriesTxn(tx, ws, serviceName, entMeta) + idx, rawEntry, err := configEntryTxn(tx, ws, structs.ExportedServices, partitionMeta.PartitionOrDefault(), partitionMeta) if err != nil { return 0, nil, err } + if rawEntry == nil { + return idx, nil, err + } - // dedupe results by peer name - resultSet := make(map[string]struct{}) - // filter entries to only those that have a peer consumer defined - for _, entry := range exportedServicesEntries { - for _, service := range entry.Services { - // entries must have consumers - if service.Consumers == nil || len(service.Consumers) == 0 { - continue - } - for _, consumer := range service.Consumers { - // and consumers must have a peer - if consumer.PeerName == "" { - continue - } - // if we get here, we have a peer consumer, but we should dedupe peer names, so skip if it's already in the set - if _, ok := resultSet[consumer.PeerName]; ok { - continue - } + entry, ok := rawEntry.(*structs.ExportedServicesConfigEntry) + if !ok { + return 0, nil, fmt.Errorf("unexpected type %T for pbpeering.Peering index", rawEntry) + } - // if we got here, we can add to the result set - resultSet[consumer.PeerName] = struct{}{} - result := structs.PeeredService{ - Name: structs.NewServiceName(serviceName, entry.GetEnterpriseMeta()), - PeerName: consumer.PeerName, - } - results = append(results, result) - } + var ( + wildcardNamespaceIdx = -1 + wildcardServiceIdx = -1 + exactMatchIdx = -1 + ) + + // Ensure the metadata is defaulted since we make assertions against potentially empty values below. + // In OSS this is a no-op. + if entMeta == nil { + entMeta = acl.DefaultEnterpriseMeta() + } + entMeta.Normalize() + + // Services can be exported via wildcards or by their exact name: + // Namespace: *, Service: * + // Namespace: Exact, Service: * + // Namespace: Exact, Service: Exact + for i, service := range entry.Services { + switch { + case service.Namespace == structs.WildcardSpecifier: + wildcardNamespaceIdx = i + + case service.Name == structs.WildcardSpecifier && acl.EqualNamespaces(service.Namespace, entMeta.NamespaceOrDefault()): + wildcardServiceIdx = i + + case service.Name == serviceName && acl.EqualNamespaces(service.Namespace, entMeta.NamespaceOrDefault()): + exactMatchIdx = i + } + } + + var results []string + + // Prefer the exact match over the wildcard match. This matches how we handle intention precedence. + var targetIdx int + switch { + case exactMatchIdx >= 0: + targetIdx = exactMatchIdx + + case wildcardServiceIdx >= 0: + targetIdx = wildcardServiceIdx + + case wildcardNamespaceIdx >= 0: + targetIdx = wildcardNamespaceIdx + + default: + return idx, results, nil + } + + for _, c := range entry.Services[targetIdx].Consumers { + if c.PeerName != "" { + results = append(results, c.PeerName) } } return idx, results, nil } + +func (s *Store) PeeringListDeleted(ws memdb.WatchSet) (uint64, []*pbpeering.Peering, error) { + tx := s.db.ReadTxn() + defer tx.Abort() + + return peeringListDeletedTxn(tx, ws) +} + +func peeringListDeletedTxn(tx ReadTxn, ws memdb.WatchSet) (uint64, []*pbpeering.Peering, error) { + iter, err := tx.Get(tablePeering, indexDeleted, BoolQuery{Value: true}) + if err != nil { + return 0, nil, fmt.Errorf("failed peering lookup: %v", err) + } + + // Instead of watching iter.WatchCh() we only need to watch the index entry for the peering table + // This is sufficient to pick up any changes to peerings. + idx := maxIndexWatchTxn(tx, ws, tablePeering) + + var result []*pbpeering.Peering + for t := iter.Next(); t != nil; t = iter.Next() { + result = append(result, t.(*pbpeering.Peering)) + } + + return idx, result, nil +} diff --git a/agent/consul/state/peering_oss_test.go b/agent/consul/state/peering_oss_test.go new file mode 100644 index 0000000000..daea60c091 --- /dev/null +++ b/agent/consul/state/peering_oss_test.go @@ -0,0 +1,85 @@ +//go:build !consulent +// +build !consulent + +package state + +import ( + "time" + + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbpeering" +) + +func testIndexerTablePeering() map[string]indexerTestCase { + id := "432feb2f-5476-4ae2-b33c-e43640ca0e86" + encodedID := []byte{0x43, 0x2f, 0xeb, 0x2f, 0x54, 0x76, 0x4a, 0xe2, 0xb3, 0x3c, 0xe4, 0x36, 0x40, 0xca, 0xe, 0x86} + + obj := &pbpeering.Peering{ + Name: "TheName", + ID: id, + DeletedAt: structs.TimeToProto(time.Now()), + } + + return map[string]indexerTestCase{ + indexID: { + read: indexValue{ + source: "432feb2f-5476-4ae2-b33c-e43640ca0e86", + expected: encodedID, + }, + write: indexValue{ + source: obj, + expected: encodedID, + }, + }, + indexName: { + read: indexValue{ + source: Query{ + Value: "TheNAME", + EnterpriseMeta: *structs.DefaultEnterpriseMetaInPartition("pArTition"), + }, + expected: []byte("thename\x00"), + }, + write: indexValue{ + source: obj, + expected: []byte("thename\x00"), + }, + prefix: []indexValue{ + { + source: *structs.DefaultEnterpriseMetaInPartition("pArTition"), + expected: nil, + }, + }, + }, + indexDeleted: { + read: indexValue{ + source: BoolQuery{ + Value: true, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInPartition("partITION"), + }, + expected: []byte("\x01"), + }, + write: indexValue{ + source: obj, + expected: []byte("\x01"), + }, + extra: []indexerTestCase{ + { + read: indexValue{ + source: BoolQuery{ + Value: false, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInPartition("partITION"), + }, + expected: []byte("\x00"), + }, + write: indexValue{ + source: &pbpeering.Peering{ + Name: "TheName", + Partition: "PartItioN", + }, + expected: []byte("\x00"), + }, + }, + }, + }, + } +} diff --git a/agent/consul/state/peering_test.go b/agent/consul/state/peering_test.go index 459c478406..4aba5c3404 100644 --- a/agent/consul/state/peering_test.go +++ b/agent/consul/state/peering_test.go @@ -4,6 +4,7 @@ import ( "fmt" "math/rand" "testing" + "time" "github.com/hashicorp/go-memdb" "github.com/hashicorp/go-uuid" @@ -12,6 +13,8 @@ import ( "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/proto/pbpeering" + "github.com/hashicorp/consul/proto/prototest" + "github.com/hashicorp/consul/sdk/testutil" ) func insertTestPeerings(t *testing.T, s *Store) { @@ -234,8 +237,8 @@ func TestStore_Peering_Watch(t *testing.T) { // foo write should fire watch lastIdx++ err = s.PeeringWrite(lastIdx, &pbpeering.Peering{ - Name: "foo", - State: pbpeering.PeeringState_FAILING, + Name: "foo", + DeletedAt: structs.TimeToProto(time.Now()), }) require.NoError(t, err) require.True(t, watchFired(ws)) @@ -244,28 +247,36 @@ func TestStore_Peering_Watch(t *testing.T) { idx, p, err := s.PeeringRead(ws, Query{Value: "foo"}) require.NoError(t, err) require.Equal(t, lastIdx, idx) - require.Equal(t, pbpeering.PeeringState_FAILING, p.State) + require.False(t, p.IsActive()) }) t.Run("delete fires watch", func(t *testing.T) { // watch on existing foo - ws := newWatch(t, Query{Value: "foo"}) + ws := newWatch(t, Query{Value: "bar"}) - // delete on bar shouldn't fire watch lastIdx++ - require.NoError(t, s.PeeringWrite(lastIdx, &pbpeering.Peering{Name: "bar"})) - lastIdx++ - require.NoError(t, s.PeeringDelete(lastIdx, Query{Value: "bar"})) + require.NoError(t, s.PeeringDelete(lastIdx, Query{Value: "foo"})) require.False(t, watchFired(ws)) - // delete on foo should fire watch + // mark for deletion before actually deleting lastIdx++ - err := s.PeeringDelete(lastIdx, Query{Value: "foo"}) + err := s.PeeringWrite(lastIdx, &pbpeering.Peering{ + Name: "bar", + DeletedAt: structs.TimeToProto(time.Now()), + }) require.NoError(t, err) require.True(t, watchFired(ws)) - // check foo is gone - idx, p, err := s.PeeringRead(ws, Query{Value: "foo"}) + ws = newWatch(t, Query{Value: "bar"}) + + // delete on bar should fire watch + lastIdx++ + err = s.PeeringDelete(lastIdx, Query{Value: "bar"}) + require.NoError(t, err) + require.True(t, watchFired(ws)) + + // check bar is gone + idx, p, err := s.PeeringRead(ws, Query{Value: "bar"}) require.NoError(t, err) require.Equal(t, lastIdx, idx) require.Nil(t, p) @@ -319,13 +330,13 @@ func TestStore_PeeringList_Watch(t *testing.T) { return ws } - t.Run("insert fires watch", func(t *testing.T) { + testutil.RunStep(t, "insert fires watch", func(t *testing.T) { ws := newWatch(t, acl.EnterpriseMeta{}) lastIdx++ // insert a peering err := s.PeeringWrite(lastIdx, &pbpeering.Peering{ - Name: "bar", + Name: "foo", Partition: structs.NodeEnterpriseMetaInDefaultPartition().PartitionOrEmpty(), }) require.NoError(t, err) @@ -340,27 +351,16 @@ func TestStore_PeeringList_Watch(t *testing.T) { require.Len(t, pp, count) }) - t.Run("update fires watch", func(t *testing.T) { - // set up initial write - lastIdx++ - err := s.PeeringWrite(lastIdx, &pbpeering.Peering{ - Name: "foo", - Partition: structs.NodeEnterpriseMetaInDefaultPartition().PartitionOrEmpty(), - }) - require.NoError(t, err) - count++ - + testutil.RunStep(t, "update fires watch", func(t *testing.T) { ws := newWatch(t, acl.EnterpriseMeta{}) // update peering lastIdx++ - err = s.PeeringWrite(lastIdx, &pbpeering.Peering{ + require.NoError(t, s.PeeringWrite(lastIdx, &pbpeering.Peering{ Name: "foo", - State: pbpeering.PeeringState_FAILING, + DeletedAt: structs.TimeToProto(time.Now()), Partition: structs.NodeEnterpriseMetaInDefaultPartition().PartitionOrEmpty(), - }) - require.NoError(t, err) - + })) require.True(t, watchFired(ws)) idx, pp, err := s.PeeringList(ws, acl.EnterpriseMeta{}) @@ -369,21 +369,12 @@ func TestStore_PeeringList_Watch(t *testing.T) { require.Len(t, pp, count) }) - t.Run("delete fires watch", func(t *testing.T) { - // set up initial write - lastIdx++ - err := s.PeeringWrite(lastIdx, &pbpeering.Peering{ - Name: "baz", - Partition: structs.NodeEnterpriseMetaInDefaultPartition().PartitionOrEmpty(), - }) - require.NoError(t, err) - count++ - + testutil.RunStep(t, "delete fires watch", func(t *testing.T) { ws := newWatch(t, acl.EnterpriseMeta{}) // delete peering lastIdx++ - err = s.PeeringDelete(lastIdx, Query{Value: "baz"}) + err := s.PeeringDelete(lastIdx, Query{Value: "foo"}) require.NoError(t, err) count-- @@ -397,14 +388,22 @@ func TestStore_PeeringList_Watch(t *testing.T) { } func TestStore_PeeringWrite(t *testing.T) { + // Note that all test cases in this test share a state store and must be run sequentially. + // Each case depends on the previous. s := NewStateStore(nil) - insertTestPeerings(t, s) + type testcase struct { - name string - input *pbpeering.Peering + name string + input *pbpeering.Peering + expectErr string } run := func(t *testing.T, tc testcase) { - require.NoError(t, s.PeeringWrite(10, tc.input)) + err := s.PeeringWrite(10, tc.input) + if tc.expectErr != "" { + testutil.RequireErrorContains(t, err, tc.expectErr) + return + } + require.NoError(t, err) q := Query{ Value: tc.input.Name, @@ -413,6 +412,7 @@ func TestStore_PeeringWrite(t *testing.T) { _, p, err := s.PeeringRead(nil, q) require.NoError(t, err) require.NotNil(t, p) + if tc.input.State == 0 { require.Equal(t, pbpeering.PeeringState_INITIAL, p.State) } @@ -427,16 +427,46 @@ func TestStore_PeeringWrite(t *testing.T) { }, }, { - name: "update foo", + name: "update baz", input: &pbpeering.Peering{ - Name: "foo", + Name: "baz", State: pbpeering.PeeringState_FAILING, Partition: structs.NodeEnterpriseMetaInDefaultPartition().PartitionOrEmpty(), }, }, + { + name: "mark baz for deletion", + input: &pbpeering.Peering{ + Name: "baz", + State: pbpeering.PeeringState_TERMINATED, + DeletedAt: structs.TimeToProto(time.Now()), + Partition: structs.NodeEnterpriseMetaInDefaultPartition().PartitionOrEmpty(), + }, + }, + { + name: "cannot update peering marked for deletion", + input: &pbpeering.Peering{ + Name: "baz", + // Attempt to add metadata + Meta: map[string]string{ + "source": "kubernetes", + }, + Partition: structs.NodeEnterpriseMetaInDefaultPartition().PartitionOrEmpty(), + }, + expectErr: "cannot write to peering that is marked for deletion", + }, + { + name: "cannot create peering marked for deletion", + input: &pbpeering.Peering{ + Name: "foo", + DeletedAt: structs.TimeToProto(time.Now()), + Partition: structs.NodeEnterpriseMetaInDefaultPartition().PartitionOrEmpty(), + }, + expectErr: "cannot create a new peering marked for deletion", + }, } for _, tc := range tcs { - t.Run(tc.name, func(t *testing.T) { + testutil.RunStep(t, tc.name, func(t *testing.T) { run(t, tc) }) } @@ -494,13 +524,25 @@ func TestStore_PeeringDelete(t *testing.T) { s := NewStateStore(nil) insertTestPeerings(t, s) - q := Query{Value: "foo"} + testutil.RunStep(t, "cannot delete without marking for deletion", func(t *testing.T) { + q := Query{Value: "foo"} + err := s.PeeringDelete(10, q) + testutil.RequireErrorContains(t, err, "cannot delete a peering without first marking for deletion") + }) - require.NoError(t, s.PeeringDelete(10, q)) + testutil.RunStep(t, "can delete after marking for deletion", func(t *testing.T) { + require.NoError(t, s.PeeringWrite(11, &pbpeering.Peering{ + Name: "foo", + DeletedAt: structs.TimeToProto(time.Now()), + })) - _, p, err := s.PeeringRead(nil, q) - require.NoError(t, err) - require.Nil(t, p) + q := Query{Value: "foo"} + require.NoError(t, s.PeeringDelete(12, q)) + + _, p, err := s.PeeringRead(nil, q) + require.NoError(t, err) + require.Nil(t, p) + }) } func TestStore_PeeringTerminateByID(t *testing.T) { @@ -517,6 +559,42 @@ func TestStore_PeeringTerminateByID(t *testing.T) { require.Equal(t, pbpeering.PeeringState_TERMINATED, p.State) } +func TestStateStore_PeeringTrustBundleList(t *testing.T) { + s := NewStateStore(nil) + insertTestPeeringTrustBundles(t, s) + + type testcase struct { + name string + entMeta acl.EnterpriseMeta + expect []*pbpeering.PeeringTrustBundle + } + + entMeta := structs.NodeEnterpriseMetaInDefaultPartition() + + expect := []*pbpeering.PeeringTrustBundle{ + { + TrustDomain: "bar.com", + PeerName: "bar", + Partition: entMeta.PartitionOrEmpty(), + RootPEMs: []string{"bar certificate bundle"}, + CreateIndex: 2, + ModifyIndex: 2, + }, + { + TrustDomain: "foo.com", + PeerName: "foo", + Partition: entMeta.PartitionOrEmpty(), + RootPEMs: []string{"foo certificate bundle"}, + CreateIndex: 1, + ModifyIndex: 1, + }, + } + + _, bundles, err := s.PeeringTrustBundleList(nil, *entMeta) + require.NoError(t, err) + prototest.AssertDeepEqual(t, expect, bundles) +} + func TestStateStore_PeeringTrustBundleRead(t *testing.T) { s := NewStateStore(nil) insertTestPeeringTrustBundles(t, s) @@ -629,86 +707,106 @@ func TestStateStore_ExportedServicesForPeer(t *testing.T) { var lastIdx uint64 lastIdx++ - err := s.PeeringWrite(lastIdx, &pbpeering.Peering{ + require.NoError(t, s.PeeringWrite(lastIdx, &pbpeering.Peering{ Name: "my-peering", - }) - require.NoError(t, err) + })) - q := Query{Value: "my-peering"} - _, p, err := s.PeeringRead(nil, q) + _, p, err := s.PeeringRead(nil, Query{ + Value: "my-peering", + }) require.NoError(t, err) require.NotNil(t, p) id := p.ID + defaultEntMeta := structs.DefaultEnterpriseMetaInDefaultPartition() + + newSN := func(name string) structs.ServiceName { + return structs.NewServiceName(name, defaultEntMeta) + } + ws := memdb.NewWatchSet() - runStep(t, "no exported services", func(t *testing.T) { - idx, exported, err := s.ExportedServicesForPeer(ws, id) + ensureConfigEntry := func(t *testing.T, entry structs.ConfigEntry) { + t.Helper() + require.NoError(t, entry.Normalize()) + require.NoError(t, entry.Validate()) + + lastIdx++ + require.NoError(t, s.EnsureConfigEntry(lastIdx, entry)) + } + + testutil.RunStep(t, "no exported services", func(t *testing.T) { + expect := &structs.ExportedServiceList{} + + idx, got, err := s.ExportedServicesForPeer(ws, id) require.NoError(t, err) require.Equal(t, lastIdx, idx) - require.Empty(t, exported) + require.Equal(t, expect, got) }) - runStep(t, "config entry with exact service names", func(t *testing.T) { + testutil.RunStep(t, "config entry with exact service names", func(t *testing.T) { entry := &structs.ExportedServicesConfigEntry{ Name: "default", Services: []structs.ExportedService{ { Name: "mysql", Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-peering", - }, + {PeerName: "my-peering"}, }, }, { Name: "redis", Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-peering", - }, + {PeerName: "my-peering"}, }, }, { Name: "mongo", Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-other-peering", - }, + {PeerName: "my-other-peering"}, }, }, }, } - lastIdx++ - err = s.EnsureConfigEntry(lastIdx, entry) - require.NoError(t, err) + ensureConfigEntry(t, entry) require.True(t, watchFired(ws)) ws = memdb.NewWatchSet() - expect := []structs.ServiceName{ - { - Name: "mysql", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + expect := &structs.ExportedServiceList{ + Services: []structs.ServiceName{ + { + Name: "mysql", + EnterpriseMeta: *defaultEntMeta, + }, + { + Name: "redis", + EnterpriseMeta: *defaultEntMeta, + }, }, - { - Name: "redis", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + ConnectProtocol: map[structs.ServiceName]string{ + newSN("mysql"): "tcp", + newSN("redis"): "tcp", }, } + idx, got, err := s.ExportedServicesForPeer(ws, id) require.NoError(t, err) require.Equal(t, lastIdx, idx) - require.ElementsMatch(t, expect, got) + require.Equal(t, expect, got) }) - runStep(t, "config entry with wildcard service name picks up existing service", func(t *testing.T) { + testutil.RunStep(t, "config entry with wildcard service name picks up existing service", func(t *testing.T) { lastIdx++ - require.NoError(t, s.EnsureNode(lastIdx, &structs.Node{Node: "foo", Address: "127.0.0.1"})) + require.NoError(t, s.EnsureNode(lastIdx, &structs.Node{ + Node: "foo", Address: "127.0.0.1", + })) lastIdx++ - require.NoError(t, s.EnsureService(lastIdx, "foo", &structs.NodeService{ID: "billing", Service: "billing", Port: 5000})) + require.NoError(t, s.EnsureService(lastIdx, "foo", &structs.NodeService{ + ID: "billing", Service: "billing", Port: 5000, + })) entry := &structs.ExportedServicesConfigEntry{ Name: "default", @@ -716,24 +814,25 @@ func TestStateStore_ExportedServicesForPeer(t *testing.T) { { Name: "*", Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-peering", - }, + {PeerName: "my-peering"}, }, }, }, } - lastIdx++ - err = s.EnsureConfigEntry(lastIdx, entry) - require.NoError(t, err) + ensureConfigEntry(t, entry) require.True(t, watchFired(ws)) ws = memdb.NewWatchSet() - expect := []structs.ServiceName{ - { - Name: "billing", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + expect := &structs.ExportedServiceList{ + Services: []structs.ServiceName{ + { + Name: "billing", + EnterpriseMeta: *defaultEntMeta, + }, + }, + ConnectProtocol: map[structs.ServiceName]string{ + newSN("billing"): "tcp", }, } idx, got, err := s.ExportedServicesForPeer(ws, id) @@ -742,80 +841,154 @@ func TestStateStore_ExportedServicesForPeer(t *testing.T) { require.Equal(t, expect, got) }) - runStep(t, "config entry with wildcard service names picks up new registrations", func(t *testing.T) { + testutil.RunStep(t, "config entry with wildcard service names picks up new registrations", func(t *testing.T) { lastIdx++ - require.NoError(t, s.EnsureService(lastIdx, "foo", &structs.NodeService{ID: "payments", Service: "payments", Port: 5000})) + require.NoError(t, s.EnsureService(lastIdx, "foo", &structs.NodeService{ + ID: "payments", Service: "payments", Port: 5000, + })) + // The proxy will be ignored. lastIdx++ - proxy := structs.NodeService{ + require.NoError(t, s.EnsureService(lastIdx, "foo", &structs.NodeService{ Kind: structs.ServiceKindConnectProxy, ID: "payments-proxy", Service: "payments-proxy", Port: 5000, - } - require.NoError(t, s.EnsureService(lastIdx, "foo", &proxy)) + })) + + // Ensure everything is L7-capable. + ensureConfigEntry(t, &structs.ProxyConfigEntry{ + Kind: structs.ProxyDefaults, + Name: structs.ProxyConfigGlobal, + Config: map[string]interface{}{ + "protocol": "http", + }, + EnterpriseMeta: *defaultEntMeta, + }) + + ensureConfigEntry(t, &structs.ServiceRouterConfigEntry{ + Kind: structs.ServiceRouter, + Name: "router", + EnterpriseMeta: *defaultEntMeta, + }) + + ensureConfigEntry(t, &structs.ServiceSplitterConfigEntry{ + Kind: structs.ServiceSplitter, + Name: "splitter", + EnterpriseMeta: *defaultEntMeta, + Splits: []structs.ServiceSplit{{Weight: 100}}, + }) + + ensureConfigEntry(t, &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "resolver", + EnterpriseMeta: *defaultEntMeta, + }) require.True(t, watchFired(ws)) ws = memdb.NewWatchSet() - expect := []structs.ServiceName{ - { - Name: "billing", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + expect := &structs.ExportedServiceList{ + Services: []structs.ServiceName{ + { + Name: "billing", + EnterpriseMeta: *defaultEntMeta, + }, + { + Name: "payments", + EnterpriseMeta: *defaultEntMeta, + }, + // NOTE: no payments-proxy here }, - { - Name: "payments", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + DiscoChains: []structs.ServiceName{ + { + Name: "resolver", + EnterpriseMeta: *defaultEntMeta, + }, + { + Name: "router", + EnterpriseMeta: *defaultEntMeta, + }, + { + Name: "splitter", + EnterpriseMeta: *defaultEntMeta, + }, }, - { - Name: "payments-proxy", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + ConnectProtocol: map[structs.ServiceName]string{ + newSN("billing"): "http", + newSN("payments"): "http", + newSN("resolver"): "http", + newSN("router"): "http", + newSN("splitter"): "http", }, } idx, got, err := s.ExportedServicesForPeer(ws, id) require.NoError(t, err) require.Equal(t, lastIdx, idx) - require.ElementsMatch(t, expect, got) + require.Equal(t, expect, got) }) - runStep(t, "config entry with wildcard service names picks up service deletions", func(t *testing.T) { + testutil.RunStep(t, "config entry with wildcard service names picks up service deletions", func(t *testing.T) { lastIdx++ require.NoError(t, s.DeleteService(lastIdx, "foo", "billing", nil, "")) + lastIdx++ + require.NoError(t, s.DeleteConfigEntry(lastIdx, structs.ServiceSplitter, "splitter", nil)) + require.True(t, watchFired(ws)) ws = memdb.NewWatchSet() - expect := []structs.ServiceName{ - { - Name: "payments", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + expect := &structs.ExportedServiceList{ + Services: []structs.ServiceName{ + { + Name: "payments", + EnterpriseMeta: *defaultEntMeta, + }, + // NOTE: no payments-proxy here }, - { - Name: "payments-proxy", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), + DiscoChains: []structs.ServiceName{ + { + Name: "resolver", + EnterpriseMeta: *defaultEntMeta, + }, + { + Name: "router", + EnterpriseMeta: *defaultEntMeta, + }, + }, + ConnectProtocol: map[structs.ServiceName]string{ + newSN("payments"): "http", + newSN("resolver"): "http", + newSN("router"): "http", }, } idx, got, err := s.ExportedServicesForPeer(ws, id) require.NoError(t, err) require.Equal(t, lastIdx, idx) - require.ElementsMatch(t, expect, got) + require.Equal(t, expect, got) }) - runStep(t, "deleting the config entry clears exported services", func(t *testing.T) { - require.NoError(t, s.DeleteConfigEntry(lastIdx, structs.ExportedServices, "default", structs.DefaultEnterpriseMetaInDefaultPartition())) - idx, exported, err := s.ExportedServicesForPeer(ws, id) + testutil.RunStep(t, "deleting the config entry clears exported services", func(t *testing.T) { + expect := &structs.ExportedServiceList{} + + require.NoError(t, s.DeleteConfigEntry(lastIdx, structs.ExportedServices, "default", defaultEntMeta)) + idx, got, err := s.ExportedServicesForPeer(ws, id) require.NoError(t, err) require.Equal(t, lastIdx, idx) - require.Empty(t, exported) + require.Equal(t, expect, got) }) } func TestStateStore_PeeringsForService(t *testing.T) { + type testPeering struct { + peering *pbpeering.Peering + delete bool + } type testCase struct { name string services []structs.ServiceName - peerings []*pbpeering.Peering - entries []*structs.ExportedServicesConfigEntry + peerings []testPeering + entry *structs.ExportedServicesConfigEntry query []string expect [][]*pbpeering.Peering expectIdx uint64 @@ -826,12 +999,24 @@ func TestStateStore_PeeringsForService(t *testing.T) { var lastIdx uint64 // Create peerings - for _, peering := range tc.peerings { + for _, tp := range tc.peerings { lastIdx++ - require.NoError(t, s.PeeringWrite(lastIdx, peering)) + require.NoError(t, s.PeeringWrite(lastIdx, tp.peering)) + + // New peerings can't be marked for deletion so there is a two step process + // of first creating the peering and then marking it for deletion by setting DeletedAt. + if tp.delete { + lastIdx++ + + copied := pbpeering.Peering{ + Name: tp.peering.Name, + DeletedAt: structs.TimeToProto(time.Now()), + } + require.NoError(t, s.PeeringWrite(lastIdx, &copied)) + } // make sure it got created - q := Query{Value: peering.Name} + q := Query{Value: tp.peering.Name} _, p, err := s.PeeringRead(nil, q) require.NoError(t, err) require.NotNil(t, p) @@ -853,9 +1038,10 @@ func TestStateStore_PeeringsForService(t *testing.T) { } // Write the config entries. - for _, entry := range tc.entries { + if tc.entry != nil { lastIdx++ - require.NoError(t, s.EnsureConfigEntry(lastIdx, entry)) + require.NoError(t, tc.entry.Normalize()) + require.NoError(t, s.EnsureConfigEntry(lastIdx, tc.entry)) } // Query for peers. @@ -883,21 +1069,53 @@ func TestStateStore_PeeringsForService(t *testing.T) { services: []structs.ServiceName{ {Name: "foo"}, }, - peerings: []*pbpeering.Peering{}, - entries: []*structs.ExportedServicesConfigEntry{}, + peerings: []testPeering{}, + entry: nil, query: []string{"foo"}, expect: [][]*pbpeering.Peering{{}}, }, { - name: "service does not exist", + name: "peerings marked for deletion are excluded", services: []structs.ServiceName{ {Name: "foo"}, }, - peerings: []*pbpeering.Peering{}, - entries: []*structs.ExportedServicesConfigEntry{}, - query: []string{"bar"}, - expect: [][]*pbpeering.Peering{{}}, - expectIdx: uint64(2), // catalog services max index + peerings: []testPeering{ + { + peering: &pbpeering.Peering{ + Name: "peer1", + State: pbpeering.PeeringState_INITIAL, + }, + }, + { + peering: &pbpeering.Peering{ + Name: "peer2", + }, + delete: true, + }, + }, + entry: &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "foo", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "peer1", + }, + { + PeerName: "peer2", + }, + }, + }, + }, + }, + query: []string{"foo"}, + expect: [][]*pbpeering.Peering{ + { + {Name: "peer1", State: pbpeering.PeeringState_INITIAL}, + }, + }, + expectIdx: uint64(6), // config entries max index }, { name: "config entry with exact service name", @@ -905,28 +1123,36 @@ func TestStateStore_PeeringsForService(t *testing.T) { {Name: "foo"}, {Name: "bar"}, }, - peerings: []*pbpeering.Peering{ - {Name: "peer1", State: pbpeering.PeeringState_INITIAL}, - {Name: "peer2", State: pbpeering.PeeringState_INITIAL}, - }, - entries: []*structs.ExportedServicesConfigEntry{ + peerings: []testPeering{ { - Name: "ce1", - Services: []structs.ExportedService{ - { - Name: "foo", - Consumers: []structs.ServiceConsumer{ - { - PeerName: "peer1", - }, + peering: &pbpeering.Peering{ + Name: "peer1", + State: pbpeering.PeeringState_INITIAL, + }, + }, + { + peering: &pbpeering.Peering{ + Name: "peer2", + State: pbpeering.PeeringState_INITIAL, + }, + }, + }, + entry: &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "foo", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "peer1", }, }, - { - Name: "bar", - Consumers: []structs.ServiceConsumer{ - { - PeerName: "peer2", - }, + }, + { + Name: "bar", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "peer2", }, }, }, @@ -949,32 +1175,45 @@ func TestStateStore_PeeringsForService(t *testing.T) { {Name: "foo"}, {Name: "bar"}, }, - peerings: []*pbpeering.Peering{ - {Name: "peer1", State: pbpeering.PeeringState_INITIAL}, - {Name: "peer2", State: pbpeering.PeeringState_INITIAL}, - {Name: "peer3", State: pbpeering.PeeringState_INITIAL}, - }, - entries: []*structs.ExportedServicesConfigEntry{ + peerings: []testPeering{ { - Name: "ce1", - Services: []structs.ExportedService{ - { - Name: "*", - Consumers: []structs.ServiceConsumer{ - { - PeerName: "peer1", - }, - { - PeerName: "peer2", - }, + peering: &pbpeering.Peering{ + Name: "peer1", + State: pbpeering.PeeringState_INITIAL, + }, + }, + { + peering: &pbpeering.Peering{ + Name: "peer2", + State: pbpeering.PeeringState_INITIAL, + }, + }, + { + peering: &pbpeering.Peering{ + Name: "peer3", + State: pbpeering.PeeringState_INITIAL, + }, + }, + }, + entry: &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "*", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "peer1", + }, + { + PeerName: "peer2", }, }, - { - Name: "bar", - Consumers: []structs.ServiceConsumer{ - { - PeerName: "peer3", - }, + }, + { + Name: "bar", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "peer3", }, }, }, @@ -987,8 +1226,6 @@ func TestStateStore_PeeringsForService(t *testing.T) { {Name: "peer2", State: pbpeering.PeeringState_INITIAL}, }, { - {Name: "peer1", State: pbpeering.PeeringState_INITIAL}, - {Name: "peer2", State: pbpeering.PeeringState_INITIAL}, {Name: "peer3", State: pbpeering.PeeringState_INITIAL}, }, }, @@ -997,8 +1234,286 @@ func TestStateStore_PeeringsForService(t *testing.T) { } for _, tc := range cases { - runStep(t, tc.name, func(t *testing.T) { + testutil.RunStep(t, tc.name, func(t *testing.T) { run(t, tc) }) } } + +func TestStore_TrustBundleListByService(t *testing.T) { + store := testStateStore(t) + entMeta := *acl.DefaultEnterpriseMeta() + + var lastIdx uint64 + ws := memdb.NewWatchSet() + + testutil.RunStep(t, "no results on initial setup", func(t *testing.T) { + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx, idx) + require.Len(t, resp, 0) + }) + + testutil.RunStep(t, "registering service does not yield trust bundles", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.EnsureNode(lastIdx, &structs.Node{ + Node: "my-node", + Address: "127.0.0.1", + })) + + lastIdx++ + require.NoError(t, store.EnsureService(lastIdx, "my-node", &structs.NodeService{ + ID: "foo-1", + Service: "foo", + Port: 8000, + })) + + require.False(t, watchFired(ws)) + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Len(t, resp, 0) + require.Equal(t, lastIdx-2, idx) + }) + + testutil.RunStep(t, "creating peering does not yield trust bundles", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.PeeringWrite(lastIdx, &pbpeering.Peering{ + Name: "peer1", + })) + + // The peering is only watched after the service is exported via config entry. + require.False(t, watchFired(ws)) + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, uint64(0), idx) + require.Len(t, resp, 0) + }) + + testutil.RunStep(t, "exporting the service does not yield trust bundles", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.EnsureConfigEntry(lastIdx, &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "foo", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "peer1", + }, + }, + }, + }, + })) + + // The config entry is watched. + require.True(t, watchFired(ws)) + ws = memdb.NewWatchSet() + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx, idx) + require.Len(t, resp, 0) + }) + + testutil.RunStep(t, "trust bundles are returned after they are created", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.PeeringTrustBundleWrite(lastIdx, &pbpeering.PeeringTrustBundle{ + TrustDomain: "peer1.com", + PeerName: "peer1", + RootPEMs: []string{"peer-root-1"}, + })) + + require.True(t, watchFired(ws)) + ws = memdb.NewWatchSet() + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx, idx) + require.Len(t, resp, 1) + require.Equal(t, []string{"peer-root-1"}, resp[0].RootPEMs) + }) + + testutil.RunStep(t, "trust bundles are not returned after unexporting service", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.DeleteConfigEntry(lastIdx, structs.ExportedServices, "default", &entMeta)) + + require.True(t, watchFired(ws)) + ws = memdb.NewWatchSet() + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx, idx) + require.Len(t, resp, 0) + }) + + testutil.RunStep(t, "trust bundles are returned after config entry is restored", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.EnsureConfigEntry(lastIdx, &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "foo", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "peer1", + }, + }, + }, + }, + })) + + require.True(t, watchFired(ws)) + ws = memdb.NewWatchSet() + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx, idx) + require.Len(t, resp, 1) + require.Equal(t, []string{"peer-root-1"}, resp[0].RootPEMs) + }) + + testutil.RunStep(t, "bundles for other peers are ignored", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.PeeringWrite(lastIdx, &pbpeering.Peering{ + Name: "peer2", + })) + + lastIdx++ + require.NoError(t, store.PeeringTrustBundleWrite(lastIdx, &pbpeering.PeeringTrustBundle{ + TrustDomain: "peer2.com", + PeerName: "peer2", + RootPEMs: []string{"peer-root-2"}, + })) + + // No relevant changes. + require.False(t, watchFired(ws)) + ws = memdb.NewWatchSet() + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx-2, idx) + require.Len(t, resp, 1) + require.Equal(t, []string{"peer-root-1"}, resp[0].RootPEMs) + }) + + testutil.RunStep(t, "second bundle is returned when service is exported to that peer", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.EnsureConfigEntry(lastIdx, &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "foo", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "peer1", + }, + { + PeerName: "peer2", + }, + }, + }, + }, + })) + + require.True(t, watchFired(ws)) + ws = memdb.NewWatchSet() + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx, idx) + require.Len(t, resp, 2) + require.Equal(t, []string{"peer-root-1"}, resp[0].RootPEMs) + require.Equal(t, []string{"peer-root-2"}, resp[1].RootPEMs) + }) + + testutil.RunStep(t, "deleting the peering excludes its trust bundle", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.PeeringWrite(lastIdx, &pbpeering.Peering{ + Name: "peer1", + DeletedAt: structs.TimeToProto(time.Now()), + })) + + require.True(t, watchFired(ws)) + ws = memdb.NewWatchSet() + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx, idx) + require.Len(t, resp, 1) + require.Equal(t, []string{"peer-root-2"}, resp[0].RootPEMs) + }) + + testutil.RunStep(t, "deleting the service does not excludes its trust bundle", func(t *testing.T) { + lastIdx++ + require.NoError(t, store.DeleteService(lastIdx, "my-node", "foo-1", &entMeta, "")) + + require.False(t, watchFired(ws)) + + idx, resp, err := store.TrustBundleListByService(ws, "foo", entMeta) + require.NoError(t, err) + require.Equal(t, lastIdx-1, idx) + require.Len(t, resp, 1) + require.Equal(t, []string{"peer-root-2"}, resp[0].RootPEMs) + }) +} + +func TestStateStore_Peering_ListDeleted(t *testing.T) { + s := testStateStore(t) + + // Insert one active peering and two marked for deletion. + { + tx := s.db.WriteTxn(0) + defer tx.Abort() + + err := tx.Insert(tablePeering, &pbpeering.Peering{ + Name: "foo", + Partition: acl.DefaultPartitionName, + ID: "9e650110-ac74-4c5a-a6a8-9348b2bed4e9", + DeletedAt: structs.TimeToProto(time.Now()), + CreateIndex: 1, + ModifyIndex: 1, + }) + require.NoError(t, err) + + err = tx.Insert(tablePeering, &pbpeering.Peering{ + Name: "bar", + Partition: acl.DefaultPartitionName, + ID: "5ebcff30-5509-4858-8142-a8e580f1863f", + CreateIndex: 2, + ModifyIndex: 2, + }) + require.NoError(t, err) + + err = tx.Insert(tablePeering, &pbpeering.Peering{ + Name: "baz", + Partition: acl.DefaultPartitionName, + ID: "432feb2f-5476-4ae2-b33c-e43640ca0e86", + DeletedAt: structs.TimeToProto(time.Now()), + CreateIndex: 3, + ModifyIndex: 3, + }) + require.NoError(t, err) + + err = tx.Insert(tableIndex, &IndexEntry{ + Key: tablePeering, + Value: 3, + }) + require.NoError(t, err) + require.NoError(t, tx.Commit()) + + } + + idx, deleted, err := s.PeeringListDeleted(nil) + require.NoError(t, err) + require.Equal(t, uint64(3), idx) + require.Len(t, deleted, 2) + + var names []string + for _, peering := range deleted { + names = append(names, peering.Name) + } + + require.ElementsMatch(t, []string{"foo", "baz"}, names) +} diff --git a/agent/consul/state/schema.go b/agent/consul/state/schema.go index 28a690e48c..c60bea8563 100644 --- a/agent/consul/state/schema.go +++ b/agent/consul/state/schema.go @@ -64,7 +64,10 @@ type IndexEntry struct { Value uint64 } -const tableIndex = "index" +const ( + tableIndex = "index" + indexDeleted = "deleted" +) // indexTableSchema returns a new table schema used for tracking various the // latest raft index for a table or entities within a table. @@ -115,3 +118,14 @@ func indexFromString(raw interface{}) ([]byte, error) { b.String(strings.ToLower(q)) return b.Bytes(), nil } + +func indexDeletedFromBoolQuery(raw interface{}) ([]byte, error) { + q, ok := raw.(BoolQuery) + if !ok { + return nil, fmt.Errorf("unexpected type %T for BoolQuery index", raw) + } + + var b indexBuilder + b.Bool(q.Value) + return b.Bytes(), nil +} diff --git a/agent/consul/state/schema_test.go b/agent/consul/state/schema_test.go index 7ef17c8fda..90fc7cbe53 100644 --- a/agent/consul/state/schema_test.go +++ b/agent/consul/state/schema_test.go @@ -56,6 +56,8 @@ func TestNewDBSchema_Indexers(t *testing.T) { tableTombstones: testIndexerTableTombstones, // config tableConfigEntries: testIndexerTableConfigEntries, + // peerings + tablePeering: testIndexerTablePeering, } addEnterpriseIndexerTestCases(testcases) diff --git a/agent/consul/state/txn.go b/agent/consul/state/txn.go index 5faccadfbe..087bb4fe82 100644 --- a/agent/consul/state/txn.go +++ b/agent/consul/state/txn.go @@ -219,7 +219,7 @@ func (s *Store) txnNode(tx WriteTxn, idx uint64, op *structs.TxnNodeOp) (structs func (s *Store) txnService(tx WriteTxn, idx uint64, op *structs.TxnServiceOp) (structs.TxnResults, error) { switch op.Verb { case api.ServiceGet: - entry, err := getNodeServiceTxn(tx, op.Node, op.Service.ID, &op.Service.EnterpriseMeta, op.Service.PeerName) + entry, err := getNodeServiceTxn(tx, nil, op.Node, op.Service.ID, &op.Service.EnterpriseMeta, op.Service.PeerName) switch { case err != nil: return nil, err @@ -233,7 +233,7 @@ func (s *Store) txnService(tx WriteTxn, idx uint64, op *structs.TxnServiceOp) (s if err := ensureServiceTxn(tx, idx, op.Node, false, &op.Service); err != nil { return nil, err } - entry, err := getNodeServiceTxn(tx, op.Node, op.Service.ID, &op.Service.EnterpriseMeta, op.Service.PeerName) + entry, err := getNodeServiceTxn(tx, nil, op.Node, op.Service.ID, &op.Service.EnterpriseMeta, op.Service.PeerName) return newTxnResultFromNodeServiceEntry(entry), err case api.ServiceCAS: @@ -246,7 +246,7 @@ func (s *Store) txnService(tx WriteTxn, idx uint64, op *structs.TxnServiceOp) (s return nil, err } - entry, err := getNodeServiceTxn(tx, op.Node, op.Service.ID, &op.Service.EnterpriseMeta, op.Service.PeerName) + entry, err := getNodeServiceTxn(tx, nil, op.Node, op.Service.ID, &op.Service.EnterpriseMeta, op.Service.PeerName) return newTxnResultFromNodeServiceEntry(entry), err case api.ServiceDelete: diff --git a/agent/consul/stream/event_buffer_test.go b/agent/consul/stream/event_buffer_test.go index c9f737a7c9..afc9728b6f 100644 --- a/agent/consul/stream/event_buffer_test.go +++ b/agent/consul/stream/event_buffer_test.go @@ -22,6 +22,10 @@ func TestEventBufferFuzz(t *testing.T) { b := newEventBuffer() + // Load head here so all subscribers start from the same point or they might + // not run until several appends have already happened. + head := b.Head() + // Start a write goroutine that will publish 10000 messages with sequential // indexes and some jitter in timing (to allow clients to "catch up" and block // waiting for updates). @@ -50,10 +54,6 @@ func TestEventBufferFuzz(t *testing.T) { // Run n subscribers following and verifying errCh := make(chan error, nReaders) - // Load head here so all subscribers start from the same point or they might - // not run until several appends have already happened. - head := b.Head() - for i := 0; i < nReaders; i++ { go func(i int) { expect := uint64(0) diff --git a/agent/consul/stream/event_publisher.go b/agent/consul/stream/event_publisher.go index 2cd0564ff7..8e4f5b6edf 100644 --- a/agent/consul/stream/event_publisher.go +++ b/agent/consul/stream/event_publisher.go @@ -351,7 +351,7 @@ func (s *subscriptions) closeAll() { for _, byRequest := range s.byToken { for _, sub := range byRequest { - sub.forceClose() + sub.shutDown() } } } diff --git a/agent/consul/stream/event_publisher_test.go b/agent/consul/stream/event_publisher_test.go index 6d930691d2..28256fa113 100644 --- a/agent/consul/stream/event_publisher_test.go +++ b/agent/consul/stream/event_publisher_test.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/proto/pbsubscribe" + "github.com/hashicorp/consul/sdk/testutil" ) type intTopic int @@ -172,10 +173,10 @@ func TestEventPublisher_ShutdownClosesSubscriptions(t *testing.T) { cancel() // Shutdown err = consumeSub(context.Background(), sub1) - require.Equal(t, err, ErrSubForceClosed) + require.Equal(t, err, ErrShuttingDown) _, err = sub2.Next(context.Background()) - require.Equal(t, err, ErrSubForceClosed) + require.Equal(t, err, ErrShuttingDown) } func consumeSub(ctx context.Context, sub *Subscription) error { @@ -254,7 +255,7 @@ func TestEventPublisher_SubscribeWithIndexNotZero_CanResume(t *testing.T) { // splicing the topic buffer onto the snapshot. publisher.publishEvent([]Event{testSnapshotEvent}) - runStep(t, "start a subscription and unsub", func(t *testing.T) { + testutil.RunStep(t, "start a subscription and unsub", func(t *testing.T) { sub, err := publisher.Subscribe(req) require.NoError(t, err) defer sub.Unsubscribe() @@ -269,7 +270,7 @@ func TestEventPublisher_SubscribeWithIndexNotZero_CanResume(t *testing.T) { require.Equal(t, uint64(1), next.Index) }) - runStep(t, "resume the subscription", func(t *testing.T) { + testutil.RunStep(t, "resume the subscription", func(t *testing.T) { newReq := *req newReq.Index = 1 sub, err := publisher.Subscribe(&newReq) @@ -304,7 +305,7 @@ func TestEventPublisher_SubscribeWithIndexNotZero_NewSnapshot(t *testing.T) { // Include the same event in the topicBuffer publisher.publishEvent([]Event{testSnapshotEvent}) - runStep(t, "start a subscription and unsub", func(t *testing.T) { + testutil.RunStep(t, "start a subscription and unsub", func(t *testing.T) { sub, err := publisher.Subscribe(req) require.NoError(t, err) defer sub.Unsubscribe() @@ -325,11 +326,11 @@ func TestEventPublisher_SubscribeWithIndexNotZero_NewSnapshot(t *testing.T) { Payload: simplePayload{key: "sub-key", value: "event-3"}, } - runStep(t, "publish an event while unsubed", func(t *testing.T) { + testutil.RunStep(t, "publish an event while unsubed", func(t *testing.T) { publisher.publishEvent([]Event{nextEvent}) }) - runStep(t, "resume the subscription", func(t *testing.T) { + testutil.RunStep(t, "resume the subscription", func(t *testing.T) { newReq := *req newReq.Index = 1 sub, err := publisher.Subscribe(&newReq) @@ -365,7 +366,7 @@ func TestEventPublisher_SubscribeWithIndexNotZero_NewSnapshotFromCache(t *testin // splicing the topic buffer onto the snapshot. publisher.publishEvent([]Event{testSnapshotEvent}) - runStep(t, "start a subscription and unsub", func(t *testing.T) { + testutil.RunStep(t, "start a subscription and unsub", func(t *testing.T) { sub, err := publisher.Subscribe(req) require.NoError(t, err) defer sub.Unsubscribe() @@ -386,7 +387,7 @@ func TestEventPublisher_SubscribeWithIndexNotZero_NewSnapshotFromCache(t *testin Payload: simplePayload{key: "sub-key", value: "event-3"}, } - runStep(t, "publish an event while unsubed", func(t *testing.T) { + testutil.RunStep(t, "publish an event while unsubed", func(t *testing.T) { publisher.publishEvent([]Event{nextEvent}) }) @@ -394,7 +395,7 @@ func TestEventPublisher_SubscribeWithIndexNotZero_NewSnapshotFromCache(t *testin return 0, fmt.Errorf("error should not be seen, cache should have been used") } - runStep(t, "resume the subscription", func(t *testing.T) { + testutil.RunStep(t, "resume the subscription", func(t *testing.T) { newReq := *req newReq.Index = 1 sub, err := publisher.Subscribe(&newReq) @@ -452,7 +453,7 @@ func TestEventPublisher_SubscribeWithIndexNotZero_NewSnapshot_WithCache(t *testi publisher.publishEvent([]Event{testSnapshotEvent}) publisher.publishEvent([]Event{nextEvent}) - runStep(t, "start a subscription and unsub", func(t *testing.T) { + testutil.RunStep(t, "start a subscription and unsub", func(t *testing.T) { sub, err := publisher.Subscribe(req) require.NoError(t, err) defer sub.Unsubscribe() @@ -476,7 +477,7 @@ func TestEventPublisher_SubscribeWithIndexNotZero_NewSnapshot_WithCache(t *testi return 0, fmt.Errorf("error should not be seen, cache should have been used") } - runStep(t, "resume the subscription", func(t *testing.T) { + testutil.RunStep(t, "resume the subscription", func(t *testing.T) { newReq := *req newReq.Index = 0 sub, err := publisher.Subscribe(&newReq) @@ -494,13 +495,6 @@ func TestEventPublisher_SubscribeWithIndexNotZero_NewSnapshot_WithCache(t *testi }) } -func runStep(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } -} - func TestEventPublisher_Unsubscribe_ClosesSubscription(t *testing.T) { req := &SubscribeRequest{ Topic: testTopic, diff --git a/agent/consul/stream/subscription.go b/agent/consul/stream/subscription.go index 28ca50c3a1..9e6c47e6f0 100644 --- a/agent/consul/stream/subscription.go +++ b/agent/consul/stream/subscription.go @@ -21,12 +21,21 @@ const ( // subStateUnsub indicates the subscription was closed by the caller, and // will not return new events. subStateUnsub = 2 + + // subStateShutting down indicates the subscription was closed due to + // the server being shut down. + subStateShuttingDown = 3 ) // ErrSubForceClosed is a error signalling the subscription has been // closed. The client should Unsubscribe, then re-Subscribe. var ErrSubForceClosed = errors.New("subscription closed by server, client must reset state and resubscribe") +// ErrShuttingDown is an error to signal that the subscription has +// been closed because the server is shutting down. The client should +// subscribe to a different server to get streaming event updates. +var ErrShuttingDown = errors.New("subscription closed by server, server is shutting down") + // Subscription provides events on a Topic. Events may be filtered by Key. // Events are returned by Next(), and may start with a Snapshot of events. type Subscription struct { @@ -117,6 +126,8 @@ func (s *Subscription) requireStateOpen() error { switch atomic.LoadUint32(&s.state) { case subStateForceClosed: return ErrSubForceClosed + case subStateShuttingDown: + return ErrShuttingDown case subStateUnsub: return fmt.Errorf("subscription was closed by unsubscribe") default: @@ -145,6 +156,13 @@ func (s *Subscription) forceClose() { } } +// Close the subscription and indicate that the server is being shut down. +func (s *Subscription) shutDown() { + if atomic.CompareAndSwapUint32(&s.state, subStateOpen, subStateShuttingDown) { + close(s.closed) + } +} + // Unsubscribe the subscription, freeing resources. func (s *Subscription) Unsubscribe() { if atomic.CompareAndSwapUint32(&s.state, subStateOpen, subStateUnsub) { diff --git a/agent/consul/txn_endpoint.go b/agent/consul/txn_endpoint.go index 06b9280887..a1977b9196 100644 --- a/agent/consul/txn_endpoint.go +++ b/agent/consul/txn_endpoint.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/go-hclog" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" ) @@ -32,7 +33,7 @@ type Txn struct { // preCheck is used to verify the incoming operations before any further // processing takes place. This checks things like ACLs. -func (t *Txn) preCheck(authorizer ACLResolveResult, ops structs.TxnOps) structs.TxnErrors { +func (t *Txn) preCheck(authorizer resolver.Result, ops structs.TxnOps) structs.TxnErrors { var errors structs.TxnErrors // Perform the pre-apply checks for any KV operations. @@ -109,7 +110,7 @@ func (t *Txn) preCheck(authorizer ACLResolveResult, ops structs.TxnOps) structs. } // vetNodeTxnOp applies the given ACL policy to a node transaction operation. -func vetNodeTxnOp(op *structs.TxnNodeOp, authz ACLResolveResult) error { +func vetNodeTxnOp(op *structs.TxnNodeOp, authz resolver.Result) error { var authzContext acl.AuthorizerContext op.FillAuthzContext(&authzContext) @@ -120,7 +121,7 @@ func vetNodeTxnOp(op *structs.TxnNodeOp, authz ACLResolveResult) error { } // vetCheckTxnOp applies the given ACL policy to a check transaction operation. -func vetCheckTxnOp(op *structs.TxnCheckOp, authz ACLResolveResult) error { +func vetCheckTxnOp(op *structs.TxnCheckOp, authz resolver.Result) error { var authzContext acl.AuthorizerContext op.FillAuthzContext(&authzContext) diff --git a/agent/consul/txn_endpoint_test.go b/agent/consul/txn_endpoint_test.go index 7f8d09f32a..62aca0f7aa 100644 --- a/agent/consul/txn_endpoint_test.go +++ b/agent/consul/txn_endpoint_test.go @@ -242,7 +242,7 @@ func TestTxn_Apply(t *testing.T) { t.Fatalf("bad: %v", err) } - _, s, err := state.NodeService("foo", "svc-foo", nil, "") + _, s, err := state.NodeService(nil, "foo", "svc-foo", nil, "") if err != nil { t.Fatalf("err: %v", err) } diff --git a/agent/coordinate_endpoint.go b/agent/coordinate_endpoint.go index 14176ab1e1..bb4f328ede 100644 --- a/agent/coordinate_endpoint.go +++ b/agent/coordinate_endpoint.go @@ -4,6 +4,7 @@ import ( "fmt" "net/http" "sort" + "strings" "github.com/hashicorp/consul/agent/structs" ) @@ -99,10 +100,7 @@ func (s *HTTPHandlers) CoordinateNode(resp http.ResponseWriter, req *http.Reques return nil, err } - node, err := getPathSuffixUnescaped(req.URL.Path, "/v1/coordinate/node/") - if err != nil { - return nil, err - } + node := strings.TrimPrefix(req.URL.Path, "/v1/coordinate/node/") args := structs.NodeSpecificRequest{Node: node} if done := s.parse(resp, req, &args.Datacenter, &args.QueryOptions); done { return nil, nil diff --git a/agent/delegate_mock_test.go b/agent/delegate_mock_test.go index 5498e5f04d..23b93b829a 100644 --- a/agent/delegate_mock_test.go +++ b/agent/delegate_mock_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/mock" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/consul" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/lib" @@ -47,9 +48,9 @@ func (m *delegateMock) RemoveFailedNode(node string, prune bool, entMeta *acl.En return m.Called(node, prune, entMeta).Error(0) } -func (m *delegateMock) ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (consul.ACLResolveResult, error) { +func (m *delegateMock) ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (resolver.Result, error) { ret := m.Called(token, entMeta, authzContext) - return ret.Get(0).(consul.ACLResolveResult), ret.Error(1) + return ret.Get(0).(resolver.Result), ret.Error(1) } func (m *delegateMock) RPC(method string, args interface{}, reply interface{}) error { diff --git a/agent/discovery_chain_endpoint.go b/agent/discovery_chain_endpoint.go index 475ef02d6c..4f762faf04 100644 --- a/agent/discovery_chain_endpoint.go +++ b/agent/discovery_chain_endpoint.go @@ -3,6 +3,7 @@ package agent import ( "fmt" "net/http" + "strings" "time" "github.com/mitchellh/mapstructure" @@ -19,11 +20,7 @@ func (s *HTTPHandlers) DiscoveryChainRead(resp http.ResponseWriter, req *http.Re return nil, nil } - var err error - args.Name, err = getPathSuffixUnescaped(req.URL.Path, "/v1/discovery-chain/") - if err != nil { - return nil, err - } + args.Name = strings.TrimPrefix(req.URL.Path, "/v1/discovery-chain/") if args.Name == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing chain name"} } diff --git a/agent/dns.go b/agent/dns.go index a973056a1a..9d0d3b9a5b 100644 --- a/agent/dns.go +++ b/agent/dns.go @@ -107,6 +107,14 @@ type serviceLookup struct { acl.EnterpriseMeta } +type nodeLookup struct { + Datacenter string + Node string + Tag string + MaxRecursionLevel int + acl.EnterpriseMeta +} + // DNSServer is used to wrap an Agent and expose various // service discovery endpoints using a DNS interface. type DNSServer struct { @@ -846,13 +854,27 @@ func (d *DNSServer) dispatch(remoteAddr net.Addr, req, resp *dns.Msg, maxRecursi return invalid() } - if !d.parseDatacenter(querySuffixes, &datacenter) { + if !d.parseDatacenterAndEnterpriseMeta(querySuffixes, cfg, &datacenter, &entMeta) { + return invalid() + } + + // Namespace should not be set for node queries + ns := entMeta.NamespaceOrEmpty() + if ns != "" && ns != acl.DefaultNamespaceName { return invalid() } // Allow a "." in the node name, just join all the parts node := strings.Join(queryParts, ".") - return d.nodeLookup(cfg, datacenter, node, req, resp, maxRecursionLevel) + + lookup := nodeLookup{ + Datacenter: datacenter, + Node: node, + MaxRecursionLevel: maxRecursionLevel, + EnterpriseMeta: entMeta, + } + + return d.nodeLookup(cfg, lookup, req, resp) case "query": // ensure we have a query name @@ -959,7 +981,7 @@ func rCodeFromError(err error) int { } // nodeLookup is used to handle a node query -func (d *DNSServer) nodeLookup(cfg *dnsConfig, datacenter, node string, req, resp *dns.Msg, maxRecursionLevel int) error { +func (d *DNSServer) nodeLookup(cfg *dnsConfig, lookup nodeLookup, req, resp *dns.Msg) error { // Only handle ANY, A, AAAA, and TXT type requests qType := req.Question[0].Qtype if qType != dns.TypeANY && qType != dns.TypeA && qType != dns.TypeAAAA && qType != dns.TypeTXT { @@ -968,12 +990,13 @@ func (d *DNSServer) nodeLookup(cfg *dnsConfig, datacenter, node string, req, res // Make an RPC request args := &structs.NodeSpecificRequest{ - Datacenter: datacenter, - Node: node, + Datacenter: lookup.Datacenter, + Node: lookup.Node, QueryOptions: structs.QueryOptions{ Token: d.agent.tokens.UserToken(), AllowStale: cfg.AllowStale, }, + EnterpriseMeta: lookup.EnterpriseMeta, } out, err := d.lookupNode(cfg, args) if err != nil { @@ -996,7 +1019,7 @@ func (d *DNSServer) nodeLookup(cfg *dnsConfig, datacenter, node string, req, res q := req.Question[0] // Only compute A and CNAME record if query is not TXT type if qType != dns.TypeTXT { - records := d.makeRecordFromNode(n, q.Qtype, q.Name, cfg.NodeTTL, maxRecursionLevel) + records := d.makeRecordFromNode(n, q.Qtype, q.Name, cfg.NodeTTL, lookup.MaxRecursionLevel) resp.Answer = append(resp.Answer, records...) } diff --git a/agent/dns/dns_test.go b/agent/dns/dns_test.go index d401bf93bb..59d92efd0a 100644 --- a/agent/dns/dns_test.go +++ b/agent/dns/dns_test.go @@ -3,8 +3,9 @@ package dns import ( "testing" - "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/stretchr/testify/require" + + "github.com/hashicorp/consul/sdk/testutil/retry" ) func TestDNS_Recursor_StrategyRandom(t *testing.T) { @@ -18,7 +19,7 @@ func TestDNS_Recursor_StrategyRandom(t *testing.T) { } // Ensure the slices contain the same elements - require.ElementsMatch(t, configuredRecursors, recursorsToQuery) + require.ElementsMatch(r, configuredRecursors, recursorsToQuery) // Ensure the elements are not in the same order require.NotEqual(r, configuredRecursors, recursorsToQuery) diff --git a/agent/event_endpoint.go b/agent/event_endpoint.go index 78be383d87..971cb9deb8 100644 --- a/agent/event_endpoint.go +++ b/agent/event_endpoint.go @@ -5,6 +5,7 @@ import ( "io" "net/http" "strconv" + "strings" "time" "github.com/hashicorp/consul/acl" @@ -19,11 +20,7 @@ func (s *HTTPHandlers) EventFire(resp http.ResponseWriter, req *http.Request) (i s.parseDC(req, &dc) event := &UserEvent{} - var err error - event.Name, err = getPathSuffixUnescaped(req.URL.Path, "/v1/event/fire/") - if err != nil { - return nil, err - } + event.Name = strings.TrimPrefix(req.URL.Path, "/v1/event/fire/") if event.Name == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing name"} } diff --git a/agent/federation_state_endpoint.go b/agent/federation_state_endpoint.go index aecb58ff33..4b7757ef82 100644 --- a/agent/federation_state_endpoint.go +++ b/agent/federation_state_endpoint.go @@ -2,16 +2,14 @@ package agent import ( "net/http" + "strings" "github.com/hashicorp/consul/agent/structs" ) // GET /v1/internal/federation-state/ func (s *HTTPHandlers) FederationStateGet(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - datacenterName, err := getPathSuffixUnescaped(req.URL.Path, "/v1/internal/federation-state/") - if err != nil { - return nil, err - } + datacenterName := strings.TrimPrefix(req.URL.Path, "/v1/internal/federation-state/") if datacenterName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing datacenter name"} } diff --git a/agent/grpc/private/internal/testservice/simple.proto b/agent/grpc/private/internal/testservice/simple.proto index 9773df134c..31a53308fb 100644 --- a/agent/grpc/private/internal/testservice/simple.proto +++ b/agent/grpc/private/internal/testservice/simple.proto @@ -2,17 +2,19 @@ syntax = "proto3"; package testservice; +option go_package = "github.com/hashicorp/consul/agent/grpc/private/internal/testservice"; + // Simple service is used to test gRPC plumbing. service Simple { - rpc Something(Req) returns (Resp) {} - rpc Flow(Req) returns (stream Resp) {} + rpc Something(Req) returns (Resp) {} + rpc Flow(Req) returns (stream Resp) {} } message Req { - string Datacenter = 1; + string Datacenter = 1; } message Resp { - string ServerName = 1; - string Datacenter = 2; + string ServerName = 1; + string Datacenter = 2; } diff --git a/agent/grpc/private/services/subscribe/logger.go b/agent/grpc/private/services/subscribe/logger.go index 693c8604af..187f12d3b9 100644 --- a/agent/grpc/private/services/subscribe/logger.go +++ b/agent/grpc/private/services/subscribe/logger.go @@ -41,8 +41,10 @@ func newLoggerForRequest(l Logger, req *pbsubscribe.SubscribeRequest) Logger { return l.With( "topic", req.Topic.String(), "dc", req.Datacenter, + "peer", req.PeerName, "key", req.Key, "namespace", req.Namespace, + "partition", req.Partition, "request_index", req.Index, "stream_id", &streamID{}) } diff --git a/agent/grpc/private/services/subscribe/subscribe_test.go b/agent/grpc/private/services/subscribe/subscribe_test.go index c9afbe4952..0dffc2db8c 100644 --- a/agent/grpc/private/services/subscribe/subscribe_test.go +++ b/agent/grpc/private/services/subscribe/subscribe_test.go @@ -28,6 +28,7 @@ import ( "github.com/hashicorp/consul/proto/pbservice" "github.com/hashicorp/consul/proto/pbsubscribe" "github.com/hashicorp/consul/proto/prototest" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/types" ) @@ -63,7 +64,7 @@ func TestServer_Subscribe_IntegrationWithBackend(t *testing.T) { ids := newCounter() var req *structs.RegisterRequest - runStep(t, "register two instances of the redis service", func(t *testing.T) { + testutil.RunStep(t, "register two instances of the redis service", func(t *testing.T) { req = &structs.RegisterRequest{ Node: "node1", Address: "3.4.5.6", @@ -91,7 +92,7 @@ func TestServer_Subscribe_IntegrationWithBackend(t *testing.T) { require.NoError(t, backend.store.EnsureRegistration(ids.Next("reg3"), req)) }) - runStep(t, "register a service by a different name", func(t *testing.T) { + testutil.RunStep(t, "register a service by a different name", func(t *testing.T) { req := &structs.RegisterRequest{ Node: "other", Address: "2.3.4.5", @@ -116,7 +117,7 @@ func TestServer_Subscribe_IntegrationWithBackend(t *testing.T) { chEvents := make(chan eventOrError, 0) var snapshotEvents []*pbsubscribe.Event - runStep(t, "setup a client and subscribe to a topic", func(t *testing.T) { + testutil.RunStep(t, "setup a client and subscribe to a topic", func(t *testing.T) { streamClient := pbsubscribe.NewStateChangeSubscriptionClient(conn) streamHandle, err := streamClient.Subscribe(ctx, &pbsubscribe.SubscribeRequest{ Topic: pbsubscribe.Topic_ServiceHealth, @@ -131,7 +132,7 @@ func TestServer_Subscribe_IntegrationWithBackend(t *testing.T) { } }) - runStep(t, "receive the initial snapshot of events", func(t *testing.T) { + testutil.RunStep(t, "receive the initial snapshot of events", func(t *testing.T) { expected := []*pbsubscribe.Event{ { Index: ids.For("reg3"), @@ -207,7 +208,7 @@ func TestServer_Subscribe_IntegrationWithBackend(t *testing.T) { prototest.AssertDeepEqual(t, expected, snapshotEvents) }) - runStep(t, "update the registration by adding a check", func(t *testing.T) { + testutil.RunStep(t, "update the registration by adding a check", func(t *testing.T) { req.Check = &structs.HealthCheck{ Node: "node2", CheckID: "check1", @@ -440,7 +441,7 @@ func TestServer_Subscribe_IntegrationWithBackend_ForwardToDC(t *testing.T) { ids := newCounter() var req *structs.RegisterRequest - runStep(t, "register three services", func(t *testing.T) { + testutil.RunStep(t, "register three services", func(t *testing.T) { req = &structs.RegisterRequest{ Node: "other", Address: "2.3.4.5", @@ -486,7 +487,7 @@ func TestServer_Subscribe_IntegrationWithBackend_ForwardToDC(t *testing.T) { chEvents := make(chan eventOrError, 0) var snapshotEvents []*pbsubscribe.Event - runStep(t, "setup a client and subscribe to a topic", func(t *testing.T) { + testutil.RunStep(t, "setup a client and subscribe to a topic", func(t *testing.T) { streamClient := pbsubscribe.NewStateChangeSubscriptionClient(connLocal) streamHandle, err := streamClient.Subscribe(ctx, &pbsubscribe.SubscribeRequest{ Topic: pbsubscribe.Topic_ServiceHealth, @@ -502,7 +503,7 @@ func TestServer_Subscribe_IntegrationWithBackend_ForwardToDC(t *testing.T) { } }) - runStep(t, "receive the initial snapshot of events", func(t *testing.T) { + testutil.RunStep(t, "receive the initial snapshot of events", func(t *testing.T) { expected := []*pbsubscribe.Event{ { Index: ids.Last(), @@ -578,7 +579,7 @@ func TestServer_Subscribe_IntegrationWithBackend_ForwardToDC(t *testing.T) { prototest.AssertDeepEqual(t, expected, snapshotEvents) }) - runStep(t, "update the registration by adding a check", func(t *testing.T) { + testutil.RunStep(t, "update the registration by adding a check", func(t *testing.T) { req.Check = &structs.HealthCheck{ Node: "node2", CheckID: types.CheckID("check1"), @@ -657,7 +658,7 @@ func TestServer_Subscribe_IntegrationWithBackend_FilterEventsByACLToken(t *testi addr := runTestServer(t, NewServer(backend, hclog.New(nil))) token := "this-token-is-good" - runStep(t, "create an ACL policy", func(t *testing.T) { + testutil.RunStep(t, "create an ACL policy", func(t *testing.T) { rules := ` service "foo" { policy = "write" @@ -684,7 +685,7 @@ node "node1" { ids := newCounter() var req *structs.RegisterRequest - runStep(t, "register services", func(t *testing.T) { + testutil.RunStep(t, "register services", func(t *testing.T) { req = &structs.RegisterRequest{ Datacenter: "dc1", Node: "node1", @@ -743,7 +744,7 @@ node "node1" { chEvents := make(chan eventOrError, 0) - runStep(t, "setup a client, subscribe to a topic, and receive a snapshot", func(t *testing.T) { + testutil.RunStep(t, "setup a client, subscribe to a topic, and receive a snapshot", func(t *testing.T) { streamHandle, err := streamClient.Subscribe(ctx, &pbsubscribe.SubscribeRequest{ Topic: pbsubscribe.Topic_ServiceHealth, Key: "foo", @@ -761,7 +762,7 @@ node "node1" { require.True(t, getEvent(t, chEvents).GetEndOfSnapshot()) }) - runStep(t, "update the service to receive an event", func(t *testing.T) { + testutil.RunStep(t, "update the service to receive an event", func(t *testing.T) { req = &structs.RegisterRequest{ Datacenter: "dc1", Node: "node1", @@ -788,7 +789,7 @@ node "node1" { require.Equal(t, int32(1234), service.Port) }) - runStep(t, "updates to the service on the denied node, should not send an event", func(t *testing.T) { + testutil.RunStep(t, "updates to the service on the denied node, should not send an event", func(t *testing.T) { req = &structs.RegisterRequest{ Datacenter: "dc1", Node: "denied", @@ -812,7 +813,7 @@ node "node1" { assertNoEvents(t, chEvents) }) - runStep(t, "subscribe to a topic where events are not visible", func(t *testing.T) { + testutil.RunStep(t, "subscribe to a topic where events are not visible", func(t *testing.T) { streamHandle, err := streamClient.Subscribe(ctx, &pbsubscribe.SubscribeRequest{ Topic: pbsubscribe.Topic_ServiceHealth, Key: "bar", @@ -853,7 +854,7 @@ func TestServer_Subscribe_IntegrationWithBackend_ACLUpdate(t *testing.T) { addr := runTestServer(t, NewServer(backend, hclog.New(nil))) token := "this-token-is-good" - runStep(t, "create an ACL policy", func(t *testing.T) { + testutil.RunStep(t, "create an ACL policy", func(t *testing.T) { rules := ` service "foo" { policy = "write" @@ -886,7 +887,7 @@ node "node1" { chEvents := make(chan eventOrError, 0) - runStep(t, "setup a client and subscribe to a topic", func(t *testing.T) { + testutil.RunStep(t, "setup a client and subscribe to a topic", func(t *testing.T) { streamClient := pbsubscribe.NewStateChangeSubscriptionClient(conn) streamHandle, err := streamClient.Subscribe(ctx, &pbsubscribe.SubscribeRequest{ Topic: pbsubscribe.Topic_ServiceHealth, @@ -899,7 +900,7 @@ node "node1" { require.True(t, getEvent(t, chEvents).GetEndOfSnapshot()) }) - runStep(t, "updates to the token should close the stream", func(t *testing.T) { + testutil.RunStep(t, "updates to the token should close the stream", func(t *testing.T) { tokenID, err := uuid.GenerateUUID() require.NoError(t, err) @@ -940,13 +941,6 @@ func logError(t *testing.T, f func() error) func() { } } -func runStep(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } -} - func TestNewEventFromSteamEvent(t *testing.T) { type testCase struct { name string diff --git a/agent/grpc/public/services/acl/logout.go b/agent/grpc/public/services/acl/logout.go index db0e68ebce..4f7fc3767a 100644 --- a/agent/grpc/public/services/acl/logout.go +++ b/agent/grpc/public/services/acl/logout.go @@ -7,7 +7,6 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "google.golang.org/protobuf/types/known/emptypb" "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/consul/auth" @@ -16,7 +15,7 @@ import ( ) // Logout destroys the given ACL token once the caller is done with it. -func (s *Server) Logout(ctx context.Context, req *pbacl.LogoutRequest) (*emptypb.Empty, error) { +func (s *Server) Logout(ctx context.Context, req *pbacl.LogoutRequest) (*pbacl.LogoutResponse, error) { logger := s.Logger.Named("logout").With("request_id", public.TraceID()) logger.Trace("request received") @@ -29,7 +28,7 @@ func (s *Server) Logout(ctx context.Context, req *pbacl.LogoutRequest) (*emptypb } // Forward request to leader in the requested datacenter. - var rsp *emptypb.Empty + var rsp *pbacl.LogoutResponse handled, err := s.forwardWriteDC(req.Datacenter, func(conn *grpc.ClientConn) error { var err error rsp, err = pbacl.NewACLServiceClient(conn).Logout(ctx, req) @@ -57,7 +56,7 @@ func (s *Server) Logout(ctx context.Context, req *pbacl.LogoutRequest) (*emptypb return rsp, err case errors.Is(err, acl.ErrNotFound): // No token? Pretend the delete was successful (for idempotency). - return &emptypb.Empty{}, nil + return &pbacl.LogoutResponse{}, nil case errors.Is(err, acl.ErrPermissionDenied): return nil, status.Error(codes.PermissionDenied, err.Error()) case err != nil: @@ -65,5 +64,5 @@ func (s *Server) Logout(ctx context.Context, req *pbacl.LogoutRequest) (*emptypb return nil, status.Error(codes.Internal, "failed to delete token") } - return &emptypb.Empty{}, nil + return &pbacl.LogoutResponse{}, nil } diff --git a/agent/grpc/public/services/connectca/mock_ACLResolver.go b/agent/grpc/public/services/connectca/mock_ACLResolver.go index a1ff427964..24fb26a225 100644 --- a/agent/grpc/public/services/connectca/mock_ACLResolver.go +++ b/agent/grpc/public/services/connectca/mock_ACLResolver.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.11.0. DO NOT EDIT. +// Code generated by mockery v2.12.0. DO NOT EDIT. package connectca @@ -6,6 +6,8 @@ import ( acl "github.com/hashicorp/consul/acl" mock "github.com/stretchr/testify/mock" + resolver "github.com/hashicorp/consul/acl/resolver" + testing "testing" ) @@ -15,16 +17,14 @@ type MockACLResolver struct { } // ResolveTokenAndDefaultMeta provides a mock function with given fields: token, entMeta, authzContext -func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (acl.Authorizer, error) { +func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (resolver.Result, error) { ret := _m.Called(token, entMeta, authzContext) - var r0 acl.Authorizer - if rf, ok := ret.Get(0).(func(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) acl.Authorizer); ok { + var r0 resolver.Result + if rf, ok := ret.Get(0).(func(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) resolver.Result); ok { r0 = rf(token, entMeta, authzContext) } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(acl.Authorizer) - } + r0 = ret.Get(0).(resolver.Result) } var r1 error @@ -37,9 +37,10 @@ func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(token string, entMeta *acl return r0, r1 } -// NewMockACLResolver creates a new instance of MockACLResolver. It also registers a cleanup function to assert the mocks expectations. +// NewMockACLResolver creates a new instance of MockACLResolver. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. func NewMockACLResolver(t testing.TB) *MockACLResolver { mock := &MockACLResolver{} + mock.Mock.Test(t) t.Cleanup(func() { mock.AssertExpectations(t) }) diff --git a/agent/grpc/public/services/connectca/mock_CAManager.go b/agent/grpc/public/services/connectca/mock_CAManager.go index 8839344a2d..2667692c33 100644 --- a/agent/grpc/public/services/connectca/mock_CAManager.go +++ b/agent/grpc/public/services/connectca/mock_CAManager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.11.0. DO NOT EDIT. +// Code generated by mockery v2.12.0. DO NOT EDIT. package connectca @@ -41,9 +41,10 @@ func (_m *MockCAManager) AuthorizeAndSignCertificate(csr *x509.CertificateReques return r0, r1 } -// NewMockCAManager creates a new instance of MockCAManager. It also registers a cleanup function to assert the mocks expectations. +// NewMockCAManager creates a new instance of MockCAManager. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. func NewMockCAManager(t testing.TB) *MockCAManager { mock := &MockCAManager{} + mock.Mock.Test(t) t.Cleanup(func() { mock.AssertExpectations(t) }) diff --git a/agent/grpc/public/services/connectca/server.go b/agent/grpc/public/services/connectca/server.go index f9abd49ee4..fb09ab47fe 100644 --- a/agent/grpc/public/services/connectca/server.go +++ b/agent/grpc/public/services/connectca/server.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/go-memdb" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/consul/stream" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/proto-public/pbconnectca" @@ -41,7 +42,7 @@ type StateStore interface { //go:generate mockery --name ACLResolver --inpackage type ACLResolver interface { - ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (acl.Authorizer, error) + ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (resolver.Result, error) } //go:generate mockery --name CAManager --inpackage diff --git a/agent/grpc/public/services/connectca/sign_test.go b/agent/grpc/public/services/connectca/sign_test.go index a4f891b8ca..aa20458f89 100644 --- a/agent/grpc/public/services/connectca/sign_test.go +++ b/agent/grpc/public/services/connectca/sign_test.go @@ -14,6 +14,7 @@ import ( "github.com/stretchr/testify/require" acl "github.com/hashicorp/consul/acl" + resolver "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/grpc/public/testutils" "github.com/hashicorp/consul/agent/structs" @@ -32,7 +33,7 @@ func TestSign_ConnectDisabled(t *testing.T) { func TestSign_Validation(t *testing.T) { aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(acl.AllowAll(), nil) + Return(testutils.TestAuthorizerAllowAll(t), nil) server := NewServer(Config{ Logger: hclog.NewNullLogger(), @@ -68,7 +69,7 @@ func TestSign_Validation(t *testing.T) { func TestSign_Unauthenticated(t *testing.T) { aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(nil, acl.ErrNotFound) + Return(resolver.Result{}, acl.ErrNotFound) server := NewServer(Config{ Logger: hclog.NewNullLogger(), @@ -89,7 +90,7 @@ func TestSign_Unauthenticated(t *testing.T) { func TestSign_PermissionDenied(t *testing.T) { aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(acl.AllowAll(), nil) + Return(testutils.TestAuthorizerAllowAll(t), nil) caManager := &MockCAManager{} caManager.On("AuthorizeAndSignCertificate", mock.Anything, mock.Anything). @@ -115,7 +116,7 @@ func TestSign_PermissionDenied(t *testing.T) { func TestSign_InvalidCSR(t *testing.T) { aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(acl.AllowAll(), nil) + Return(testutils.TestAuthorizerAllowAll(t), nil) caManager := &MockCAManager{} caManager.On("AuthorizeAndSignCertificate", mock.Anything, mock.Anything). @@ -141,7 +142,7 @@ func TestSign_InvalidCSR(t *testing.T) { func TestSign_RateLimited(t *testing.T) { aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(acl.AllowAll(), nil) + Return(testutils.TestAuthorizerAllowAll(t), nil) caManager := &MockCAManager{} caManager.On("AuthorizeAndSignCertificate", mock.Anything, mock.Anything). @@ -167,7 +168,7 @@ func TestSign_RateLimited(t *testing.T) { func TestSign_InternalError(t *testing.T) { aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(acl.AllowAll(), nil) + Return(testutils.TestAuthorizerAllowAll(t), nil) caManager := &MockCAManager{} caManager.On("AuthorizeAndSignCertificate", mock.Anything, mock.Anything). @@ -193,7 +194,7 @@ func TestSign_InternalError(t *testing.T) { func TestSign_Success(t *testing.T) { aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(acl.AllowAll(), nil) + Return(testutils.TestAuthorizerAllowAll(t), nil) caManager := &MockCAManager{} caManager.On("AuthorizeAndSignCertificate", mock.Anything, mock.Anything). @@ -219,7 +220,7 @@ func TestSign_Success(t *testing.T) { func TestSign_RPCForwarding(t *testing.T) { aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(acl.AllowAll(), nil) + Return(testutils.TestAuthorizerAllowAll(t), nil) caManager := &MockCAManager{} caManager.On("AuthorizeAndSignCertificate", mock.Anything, mock.Anything). diff --git a/agent/grpc/public/services/connectca/watch_roots.go b/agent/grpc/public/services/connectca/watch_roots.go index cee37d7aa8..bf455ce278 100644 --- a/agent/grpc/public/services/connectca/watch_roots.go +++ b/agent/grpc/public/services/connectca/watch_roots.go @@ -7,7 +7,6 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "google.golang.org/protobuf/types/known/emptypb" "google.golang.org/protobuf/types/known/timestamppb" "github.com/hashicorp/go-hclog" @@ -24,7 +23,7 @@ import ( // WatchRoots provides a stream on which you can receive the list of active // Connect CA roots. Current roots are sent immediately at the start of the // stream, and new lists will be sent whenever the roots are rotated. -func (s *Server) WatchRoots(_ *emptypb.Empty, serverStream pbconnectca.ConnectCAService_WatchRootsServer) error { +func (s *Server) WatchRoots(_ *pbconnectca.WatchRootsRequest, serverStream pbconnectca.ConnectCAService_WatchRootsServer) error { if err := s.requireConnect(); err != nil { return err } diff --git a/agent/grpc/public/services/connectca/watch_roots_test.go b/agent/grpc/public/services/connectca/watch_roots_test.go index acaa349f17..b65bc014bf 100644 --- a/agent/grpc/public/services/connectca/watch_roots_test.go +++ b/agent/grpc/public/services/connectca/watch_roots_test.go @@ -11,11 +11,11 @@ import ( "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "google.golang.org/protobuf/types/known/emptypb" "github.com/hashicorp/go-uuid" "github.com/hashicorp/consul/acl" + resolver "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/grpc/public" "github.com/hashicorp/consul/agent/grpc/public/testutils" @@ -31,7 +31,7 @@ func TestWatchRoots_ConnectDisabled(t *testing.T) { // Begin the stream. client := testClient(t, server) - stream, err := client.WatchRoots(context.Background(), &emptypb.Empty{}) + stream, err := client.WatchRoots(context.Background(), &pbconnectca.WatchRootsRequest{}) require.NoError(t, err) rspCh := handleRootsStream(t, stream) @@ -68,7 +68,7 @@ func TestWatchRoots_Success(t *testing.T) { // Begin the stream. client := testClient(t, server) - stream, err := client.WatchRoots(ctx, &emptypb.Empty{}) + stream, err := client.WatchRoots(ctx, &pbconnectca.WatchRootsRequest{}) require.NoError(t, err) rspCh := handleRootsStream(t, stream) @@ -102,7 +102,7 @@ func TestWatchRoots_InvalidACLToken(t *testing.T) { // Mock the ACL resolver to return ErrNotFound. aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(nil, acl.ErrNotFound) + Return(resolver.Result{}, acl.ErrNotFound) ctx := public.ContextWithToken(context.Background(), testACLToken) @@ -116,7 +116,7 @@ func TestWatchRoots_InvalidACLToken(t *testing.T) { // Start the stream. client := testClient(t, server) - stream, err := client.WatchRoots(ctx, &emptypb.Empty{}) + stream, err := client.WatchRoots(ctx, &pbconnectca.WatchRootsRequest{}) require.NoError(t, err) rspCh := handleRootsStream(t, stream) @@ -154,7 +154,7 @@ func TestWatchRoots_ACLTokenInvalidated(t *testing.T) { // Start the stream. client := testClient(t, server) - stream, err := client.WatchRoots(ctx, &emptypb.Empty{}) + stream, err := client.WatchRoots(ctx, &pbconnectca.WatchRootsRequest{}) require.NoError(t, err) rspCh := handleRootsStream(t, stream) @@ -180,7 +180,7 @@ func TestWatchRoots_ACLTokenInvalidated(t *testing.T) { // Simulate removing the `service:write` permission. aclResolver.On("ResolveTokenAndDefaultMeta", testACLToken, mock.Anything, mock.Anything). - Return(acl.DenyAll(), nil) + Return(testutils.TestAuthorizerDenyAll(t), nil) // Update the ACL token to cause the subscription to be force-closed. err = fsm.GetStore().ACLTokenSet(1, &structs.ACLToken{ @@ -222,7 +222,7 @@ func TestWatchRoots_StateStoreAbandoned(t *testing.T) { // Begin the stream. client := testClient(t, server) - stream, err := client.WatchRoots(ctx, &emptypb.Empty{}) + stream, err := client.WatchRoots(ctx, &pbconnectca.WatchRootsRequest{}) require.NoError(t, err) rspCh := handleRootsStream(t, stream) diff --git a/agent/grpc/public/services/dataplane/get_envoy_boostrap_params_test.go b/agent/grpc/public/services/dataplane/get_envoy_boostrap_params_test.go index 072068861b..e3a9ce703c 100644 --- a/agent/grpc/public/services/dataplane/get_envoy_boostrap_params_test.go +++ b/agent/grpc/public/services/dataplane/get_envoy_boostrap_params_test.go @@ -4,18 +4,20 @@ import ( "context" "testing" - acl "github.com/hashicorp/consul/acl" - "github.com/hashicorp/consul/agent/grpc/public" - "github.com/hashicorp/consul/agent/grpc/public/testutils" - structs "github.com/hashicorp/consul/agent/structs" - "github.com/hashicorp/consul/proto-public/pbdataplane" - "github.com/hashicorp/consul/types" "github.com/hashicorp/go-hclog" mock "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/structpb" + + acl "github.com/hashicorp/consul/acl" + resolver "github.com/hashicorp/consul/acl/resolver" + "github.com/hashicorp/consul/agent/grpc/public" + "github.com/hashicorp/consul/agent/grpc/public/testutils" + structs "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto-public/pbdataplane" + "github.com/hashicorp/consul/types" ) const ( @@ -215,7 +217,7 @@ func TestGetEnvoyBootstrapParams_Unauthenticated(t *testing.T) { // Mock the ACL resolver to return ErrNotFound. aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(nil, acl.ErrNotFound) + Return(resolver.Result{}, acl.ErrNotFound) ctx := public.ContextWithToken(context.Background(), testToken) store := testutils.TestStateStore(t, nil) server := NewServer(Config{ @@ -234,7 +236,7 @@ func TestGetEnvoyBootstrapParams_PermissionDenied(t *testing.T) { // Mock the ACL resolver to return a deny all authorizer aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", testToken, mock.Anything, mock.Anything). - Return(acl.DenyAll(), nil) + Return(testutils.TestAuthorizerDenyAll(t), nil) ctx := public.ContextWithToken(context.Background(), testToken) store := testutils.TestStateStore(t, nil) registerReq := structs.TestRegisterRequestProxy(t) diff --git a/agent/grpc/public/services/dataplane/get_envoy_bootstrap_params.go b/agent/grpc/public/services/dataplane/get_envoy_bootstrap_params.go index c34289ff02..1b534672c5 100644 --- a/agent/grpc/public/services/dataplane/get_envoy_bootstrap_params.go +++ b/agent/grpc/public/services/dataplane/get_envoy_bootstrap_params.go @@ -74,15 +74,15 @@ func (s *Server) GetEnvoyBootstrapParams(ctx context.Context, req *pbdataplane.G func convertToResponseServiceKind(serviceKind structs.ServiceKind) (respKind pbdataplane.ServiceKind) { switch serviceKind { case structs.ServiceKindConnectProxy: - respKind = pbdataplane.ServiceKind_CONNECT_PROXY + respKind = pbdataplane.ServiceKind_SERVICE_KIND_CONNECT_PROXY case structs.ServiceKindMeshGateway: - respKind = pbdataplane.ServiceKind_MESH_GATEWAY + respKind = pbdataplane.ServiceKind_SERVICE_KIND_MESH_GATEWAY case structs.ServiceKindTerminatingGateway: - respKind = pbdataplane.ServiceKind_TERMINATING_GATEWAY + respKind = pbdataplane.ServiceKind_SERVICE_KIND_TERMINATING_GATEWAY case structs.ServiceKindIngressGateway: - respKind = pbdataplane.ServiceKind_INGRESS_GATEWAY + respKind = pbdataplane.ServiceKind_SERVICE_KIND_INGRESS_GATEWAY case structs.ServiceKindTypical: - respKind = pbdataplane.ServiceKind_TYPICAL + respKind = pbdataplane.ServiceKind_SERVICE_KIND_TYPICAL } return } diff --git a/agent/grpc/public/services/dataplane/get_supported_features.go b/agent/grpc/public/services/dataplane/get_supported_features.go index ffb3517e84..cb4eff1e77 100644 --- a/agent/grpc/public/services/dataplane/get_supported_features.go +++ b/agent/grpc/public/services/dataplane/get_supported_features.go @@ -32,15 +32,15 @@ func (s *Server) GetSupportedDataplaneFeatures(ctx context.Context, req *pbdatap supportedFeatures := []*pbdataplane.DataplaneFeatureSupport{ { - FeatureName: pbdataplane.DataplaneFeatures_WATCH_SERVERS, + FeatureName: pbdataplane.DataplaneFeatures_DATAPLANE_FEATURES_WATCH_SERVERS, Supported: true, }, { - FeatureName: pbdataplane.DataplaneFeatures_EDGE_CERTIFICATE_MANAGEMENT, + FeatureName: pbdataplane.DataplaneFeatures_DATAPLANE_FEATURES_EDGE_CERTIFICATE_MANAGEMENT, Supported: true, }, { - FeatureName: pbdataplane.DataplaneFeatures_ENVOY_BOOTSTRAP_CONFIGURATION, + FeatureName: pbdataplane.DataplaneFeatures_DATAPLANE_FEATURES_ENVOY_BOOTSTRAP_CONFIGURATION, Supported: true, }, } diff --git a/agent/grpc/public/services/dataplane/get_supported_features_test.go b/agent/grpc/public/services/dataplane/get_supported_features_test.go index b1f28af0e3..bdcd0d455d 100644 --- a/agent/grpc/public/services/dataplane/get_supported_features_test.go +++ b/agent/grpc/public/services/dataplane/get_supported_features_test.go @@ -11,6 +11,7 @@ import ( "google.golang.org/grpc/status" "github.com/hashicorp/consul/acl" + resolver "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/grpc/public" "github.com/hashicorp/consul/agent/grpc/public/testutils" "github.com/hashicorp/consul/proto-public/pbdataplane" @@ -35,11 +36,11 @@ func TestSupportedDataplaneFeatures_Success(t *testing.T) { for _, feature := range resp.SupportedDataplaneFeatures { switch feature.GetFeatureName() { - case pbdataplane.DataplaneFeatures_EDGE_CERTIFICATE_MANAGEMENT: + case pbdataplane.DataplaneFeatures_DATAPLANE_FEATURES_EDGE_CERTIFICATE_MANAGEMENT: require.True(t, feature.GetSupported()) - case pbdataplane.DataplaneFeatures_WATCH_SERVERS: + case pbdataplane.DataplaneFeatures_DATAPLANE_FEATURES_WATCH_SERVERS: require.True(t, feature.GetSupported()) - case pbdataplane.DataplaneFeatures_ENVOY_BOOTSTRAP_CONFIGURATION: + case pbdataplane.DataplaneFeatures_DATAPLANE_FEATURES_ENVOY_BOOTSTRAP_CONFIGURATION: require.True(t, feature.GetSupported()) default: require.False(t, feature.GetSupported()) @@ -51,7 +52,7 @@ func TestSupportedDataplaneFeatures_Unauthenticated(t *testing.T) { // Mock the ACL resolver to return ErrNotFound. aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", mock.Anything, mock.Anything, mock.Anything). - Return(nil, acl.ErrNotFound) + Return(resolver.Result{}, acl.ErrNotFound) ctx := public.ContextWithToken(context.Background(), testACLToken) server := NewServer(Config{ Logger: hclog.NewNullLogger(), @@ -68,7 +69,7 @@ func TestSupportedDataplaneFeatures_PermissionDenied(t *testing.T) { // Mock the ACL resolver to return a deny all authorizer aclResolver := &MockACLResolver{} aclResolver.On("ResolveTokenAndDefaultMeta", testACLToken, mock.Anything, mock.Anything). - Return(acl.DenyAll(), nil) + Return(testutils.TestAuthorizerDenyAll(t), nil) ctx := public.ContextWithToken(context.Background(), testACLToken) server := NewServer(Config{ Logger: hclog.NewNullLogger(), diff --git a/agent/grpc/public/services/dataplane/mock_ACLResolver.go b/agent/grpc/public/services/dataplane/mock_ACLResolver.go index 1a73abfc81..0408d3a50c 100644 --- a/agent/grpc/public/services/dataplane/mock_ACLResolver.go +++ b/agent/grpc/public/services/dataplane/mock_ACLResolver.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.11.0. DO NOT EDIT. +// Code generated by mockery v2.12.0. DO NOT EDIT. package dataplane @@ -6,6 +6,8 @@ import ( acl "github.com/hashicorp/consul/acl" mock "github.com/stretchr/testify/mock" + resolver "github.com/hashicorp/consul/acl/resolver" + testing "testing" ) @@ -15,16 +17,14 @@ type MockACLResolver struct { } // ResolveTokenAndDefaultMeta provides a mock function with given fields: _a0, _a1, _a2 -func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(_a0 string, _a1 *acl.EnterpriseMeta, _a2 *acl.AuthorizerContext) (acl.Authorizer, error) { +func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(_a0 string, _a1 *acl.EnterpriseMeta, _a2 *acl.AuthorizerContext) (resolver.Result, error) { ret := _m.Called(_a0, _a1, _a2) - var r0 acl.Authorizer - if rf, ok := ret.Get(0).(func(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) acl.Authorizer); ok { + var r0 resolver.Result + if rf, ok := ret.Get(0).(func(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) resolver.Result); ok { r0 = rf(_a0, _a1, _a2) } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(acl.Authorizer) - } + r0 = ret.Get(0).(resolver.Result) } var r1 error @@ -37,9 +37,10 @@ func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(_a0 string, _a1 *acl.Enter return r0, r1 } -// NewMockACLResolver creates a new instance of MockACLResolver. It also registers a cleanup function to assert the mocks expectations. +// NewMockACLResolver creates a new instance of MockACLResolver. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. func NewMockACLResolver(t testing.TB) *MockACLResolver { mock := &MockACLResolver{} + mock.Mock.Test(t) t.Cleanup(func() { mock.AssertExpectations(t) }) diff --git a/agent/grpc/public/services/dataplane/server.go b/agent/grpc/public/services/dataplane/server.go index b45f6f38ac..4b4aef061e 100644 --- a/agent/grpc/public/services/dataplane/server.go +++ b/agent/grpc/public/services/dataplane/server.go @@ -6,6 +6,7 @@ import ( "github.com/hashicorp/go-hclog" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/proto-public/pbdataplane" ) @@ -28,7 +29,7 @@ type StateStore interface { //go:generate mockery --name ACLResolver --inpackage type ACLResolver interface { - ResolveTokenAndDefaultMeta(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) (acl.Authorizer, error) + ResolveTokenAndDefaultMeta(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) (resolver.Result, error) } func NewServer(cfg Config) *Server { diff --git a/agent/grpc/public/services/serverdiscovery/mock_ACLResolver.go b/agent/grpc/public/services/serverdiscovery/mock_ACLResolver.go index 909e9c6172..850ec8bb95 100644 --- a/agent/grpc/public/services/serverdiscovery/mock_ACLResolver.go +++ b/agent/grpc/public/services/serverdiscovery/mock_ACLResolver.go @@ -1,10 +1,14 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. +// Code generated by mockery v2.12.0. DO NOT EDIT. package serverdiscovery import ( acl "github.com/hashicorp/consul/acl" mock "github.com/stretchr/testify/mock" + + resolver "github.com/hashicorp/consul/acl/resolver" + + testing "testing" ) // MockACLResolver is an autogenerated mock type for the ACLResolver type @@ -13,16 +17,14 @@ type MockACLResolver struct { } // ResolveTokenAndDefaultMeta provides a mock function with given fields: _a0, _a1, _a2 -func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(_a0 string, _a1 *acl.EnterpriseMeta, _a2 *acl.AuthorizerContext) (acl.Authorizer, error) { +func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(_a0 string, _a1 *acl.EnterpriseMeta, _a2 *acl.AuthorizerContext) (resolver.Result, error) { ret := _m.Called(_a0, _a1, _a2) - var r0 acl.Authorizer - if rf, ok := ret.Get(0).(func(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) acl.Authorizer); ok { + var r0 resolver.Result + if rf, ok := ret.Get(0).(func(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) resolver.Result); ok { r0 = rf(_a0, _a1, _a2) } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(acl.Authorizer) - } + r0 = ret.Get(0).(resolver.Result) } var r1 error @@ -34,3 +36,13 @@ func (_m *MockACLResolver) ResolveTokenAndDefaultMeta(_a0 string, _a1 *acl.Enter return r0, r1 } + +// NewMockACLResolver creates a new instance of MockACLResolver. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. +func NewMockACLResolver(t testing.TB) *MockACLResolver { + mock := &MockACLResolver{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/agent/grpc/public/services/serverdiscovery/server.go b/agent/grpc/public/services/serverdiscovery/server.go index ec82b47fa3..c7b2e0e1d4 100644 --- a/agent/grpc/public/services/serverdiscovery/server.go +++ b/agent/grpc/public/services/serverdiscovery/server.go @@ -6,6 +6,7 @@ import ( "github.com/hashicorp/go-hclog" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/consul/stream" "github.com/hashicorp/consul/proto-public/pbserverdiscovery" ) @@ -24,9 +25,9 @@ type EventPublisher interface { Subscribe(*stream.SubscribeRequest) (*stream.Subscription, error) } -//go:generate mockery -name ACLResolver -inpkg +//go:generate mockery --name ACLResolver --inpackage type ACLResolver interface { - ResolveTokenAndDefaultMeta(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) (acl.Authorizer, error) + ResolveTokenAndDefaultMeta(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) (resolver.Result, error) } func NewServer(cfg Config) *Server { diff --git a/agent/grpc/public/services/serverdiscovery/watch_servers_test.go b/agent/grpc/public/services/serverdiscovery/watch_servers_test.go index 1409431d94..a44520e558 100644 --- a/agent/grpc/public/services/serverdiscovery/watch_servers_test.go +++ b/agent/grpc/public/services/serverdiscovery/watch_servers_test.go @@ -7,7 +7,13 @@ import ( "testing" "time" + mock "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + acl "github.com/hashicorp/consul/acl" + resolver "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent/consul/autopilotevents" "github.com/hashicorp/consul/agent/consul/stream" "github.com/hashicorp/consul/agent/grpc/public" @@ -15,10 +21,6 @@ import ( "github.com/hashicorp/consul/proto-public/pbserverdiscovery" "github.com/hashicorp/consul/proto/prototest" "github.com/hashicorp/consul/sdk/testutil" - mock "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" ) const testACLToken = "eb61f1ed-65a4-4da6-8d3d-0564bd16c965" @@ -193,7 +195,7 @@ func TestWatchServers_ACLToken_PermissionDenied(t *testing.T) { resolver := newMockACLResolver(t) resolver.On("ResolveTokenAndDefaultMeta", testACLToken, mock.Anything, mock.Anything). - Return(acl.DenyAll(), nil).Once() + Return(testutils.TestAuthorizerDenyAll(t), nil).Once() // add the token to the requests context ctx := public.ContextWithToken(context.Background(), testACLToken) @@ -222,9 +224,9 @@ func TestWatchServers_ACLToken_Unauthenticated(t *testing.T) { // setup the event publisher and snapshot handler _, publisher := setupPublisher(t) - resolver := newMockACLResolver(t) - resolver.On("ResolveTokenAndDefaultMeta", testACLToken, mock.Anything, mock.Anything). - Return(nil, acl.ErrNotFound).Once() + aclResolver := newMockACLResolver(t) + aclResolver.On("ResolveTokenAndDefaultMeta", testACLToken, mock.Anything, mock.Anything). + Return(resolver.Result{}, acl.ErrNotFound).Once() // add the token to the requests context ctx := public.ContextWithToken(context.Background(), testACLToken) @@ -233,7 +235,7 @@ func TestWatchServers_ACLToken_Unauthenticated(t *testing.T) { server := NewServer(Config{ Publisher: publisher, Logger: testutil.Logger(t), - ACLResolver: resolver, + ACLResolver: aclResolver, }) // Run the server and get a test client for it diff --git a/agent/grpc/public/testutils/acl.go b/agent/grpc/public/testutils/acl.go index 8caacb1052..fab3646e73 100644 --- a/agent/grpc/public/testutils/acl.go +++ b/agent/grpc/public/testutils/acl.go @@ -6,9 +6,22 @@ import ( "github.com/stretchr/testify/require" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" ) -func TestAuthorizerServiceWriteAny(t *testing.T) acl.Authorizer { +func TestAuthorizerAllowAll(t *testing.T) resolver.Result { + t.Helper() + + return resolver.Result{Authorizer: acl.AllowAll()} +} + +func TestAuthorizerDenyAll(t *testing.T) resolver.Result { + t.Helper() + + return resolver.Result{Authorizer: acl.DenyAll()} +} + +func TestAuthorizerServiceWriteAny(t *testing.T) resolver.Result { t.Helper() policy, err := acl.NewPolicyFromSource(` @@ -21,10 +34,10 @@ func TestAuthorizerServiceWriteAny(t *testing.T) acl.Authorizer { authz, err := acl.NewPolicyAuthorizerWithDefaults(acl.DenyAll(), []*acl.Policy{policy}, nil) require.NoError(t, err) - return authz + return resolver.Result{Authorizer: authz} } -func TestAuthorizerServiceRead(t *testing.T, serviceName string) acl.Authorizer { +func TestAuthorizerServiceRead(t *testing.T, serviceName string) resolver.Result { t.Helper() aclRule := &acl.Policy{ @@ -40,5 +53,5 @@ func TestAuthorizerServiceRead(t *testing.T, serviceName string) acl.Authorizer authz, err := acl.NewPolicyAuthorizerWithDefaults(acl.DenyAll(), []*acl.Policy{aclRule}, nil) require.NoError(t, err) - return authz + return resolver.Result{Authorizer: authz} } diff --git a/agent/health_endpoint.go b/agent/health_endpoint.go index 656fc2a048..6ea64528b0 100644 --- a/agent/health_endpoint.go +++ b/agent/health_endpoint.go @@ -4,6 +4,7 @@ import ( "net/http" "net/url" "strconv" + "strings" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" @@ -28,11 +29,7 @@ func (s *HTTPHandlers) HealthChecksInState(resp http.ResponseWriter, req *http.R } // Pull out the service name - var err error - args.State, err = getPathSuffixUnescaped(req.URL.Path, "/v1/health/state/") - if err != nil { - return nil, err - } + args.State = strings.TrimPrefix(req.URL.Path, "/v1/health/state/") if args.State == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing check state"} } @@ -76,11 +73,7 @@ func (s *HTTPHandlers) HealthNodeChecks(resp http.ResponseWriter, req *http.Requ } // Pull out the service name - var err error - args.Node, err = getPathSuffixUnescaped(req.URL.Path, "/v1/health/node/") - if err != nil { - return nil, err - } + args.Node = strings.TrimPrefix(req.URL.Path, "/v1/health/node/") if args.Node == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing node name"} } @@ -126,11 +119,7 @@ func (s *HTTPHandlers) HealthServiceChecks(resp http.ResponseWriter, req *http.R } // Pull out the service name - var err error - args.ServiceName, err = getPathSuffixUnescaped(req.URL.Path, "/v1/health/checks/") - if err != nil { - return nil, err - } + args.ServiceName = strings.TrimPrefix(req.URL.Path, "/v1/health/checks/") if args.ServiceName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing service name"} } @@ -203,6 +192,10 @@ func (s *HTTPHandlers) healthServiceNodes(resp http.ResponseWriter, req *http.Re args.TagFilter = true } + if _, ok := params["merge-central-config"]; ok { + args.MergeCentralConfig = true + } + // Determine the prefix var prefix string switch healthType { @@ -218,11 +211,7 @@ func (s *HTTPHandlers) healthServiceNodes(resp http.ResponseWriter, req *http.Re } // Pull out the service name - var err error - args.ServiceName, err = getPathSuffixUnescaped(req.URL.Path, prefix) - if err != nil { - return nil, err - } + args.ServiceName = strings.TrimPrefix(req.URL.Path, prefix) if args.ServiceName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing service name"} } diff --git a/agent/health_endpoint_test.go b/agent/health_endpoint_test.go index c6b4472f39..a339331051 100644 --- a/agent/health_endpoint_test.go +++ b/agent/health_endpoint_test.go @@ -18,6 +18,7 @@ import ( "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/consul/testrpc" "github.com/hashicorp/consul/types" @@ -612,16 +613,8 @@ func TestHealthServiceNodes(t *testing.T) { testingPeerNames := []string{"", "my-peer"} - suffix := func(peerName string) string { - if peerName == "" { - return "" - } - // TODO(peering): after streaming works, remove the "&near=_agent" part - return "&peer=" + peerName + "&near=_agent" - } - for _, peerName := range testingPeerNames { - req, err := http.NewRequest("GET", "/v1/health/service/consul?dc=dc1"+suffix(peerName), nil) + req, err := http.NewRequest("GET", "/v1/health/service/consul?dc=dc1"+peerQuerySuffix(peerName), nil) require.NoError(t, err) resp := httptest.NewRecorder() obj, err := a.srv.HealthServiceNodes(resp, req) @@ -638,7 +631,7 @@ func TestHealthServiceNodes(t *testing.T) { require.Len(t, nodes, 0) } - req, err = http.NewRequest("GET", "/v1/health/service/nope?dc=dc1"+suffix(peerName), nil) + req, err = http.NewRequest("GET", "/v1/health/service/nope?dc=dc1"+peerQuerySuffix(peerName), nil) require.NoError(t, err) resp = httptest.NewRecorder() obj, err = a.srv.HealthServiceNodes(resp, req) @@ -683,7 +676,7 @@ func TestHealthServiceNodes(t *testing.T) { } for _, peerName := range testingPeerNames { - req, err := http.NewRequest("GET", "/v1/health/service/test?dc=dc1"+suffix(peerName), nil) + req, err := http.NewRequest("GET", "/v1/health/service/test?dc=dc1"+peerQuerySuffix(peerName), nil) require.NoError(t, err) resp := httptest.NewRecorder() obj, err := a.srv.HealthServiceNodes(resp, req) @@ -698,7 +691,7 @@ func TestHealthServiceNodes(t *testing.T) { // Test caching { // List instances with cache enabled - req, err := http.NewRequest("GET", "/v1/health/service/test?cached"+suffix(peerName), nil) + req, err := http.NewRequest("GET", "/v1/health/service/test?cached"+peerQuerySuffix(peerName), nil) require.NoError(t, err) resp := httptest.NewRecorder() obj, err := a.srv.HealthServiceNodes(resp, req) @@ -712,7 +705,7 @@ func TestHealthServiceNodes(t *testing.T) { { // List instances with cache enabled - req, err := http.NewRequest("GET", "/v1/health/service/test?cached"+suffix(peerName), nil) + req, err := http.NewRequest("GET", "/v1/health/service/test?cached"+peerQuerySuffix(peerName), nil) require.NoError(t, err) resp := httptest.NewRecorder() obj, err := a.srv.HealthServiceNodes(resp, req) @@ -741,7 +734,7 @@ func TestHealthServiceNodes(t *testing.T) { for _, peerName := range testingPeerNames { retry.Run(t, func(r *retry.R) { // List it again - req, err := http.NewRequest("GET", "/v1/health/service/test?cached"+suffix(peerName), nil) + req, err := http.NewRequest("GET", "/v1/health/service/test?cached"+peerQuerySuffix(peerName), nil) require.NoError(r, err) resp := httptest.NewRecorder() obj, err := a.srv.HealthServiceNodes(resp, req) @@ -769,6 +762,16 @@ func TestHealthServiceNodes(t *testing.T) { } func TestHealthServiceNodes_Blocking(t *testing.T) { + t.Run("local data", func(t *testing.T) { + testHealthServiceNodes_Blocking(t, structs.DefaultPeerKeyword) + }) + + t.Run("peered data", func(t *testing.T) { + testHealthServiceNodes_Blocking(t, "my-peer") + }) +} + +func testHealthServiceNodes_Blocking(t *testing.T, peerName string) { cases := []struct { name string hcl string @@ -791,10 +794,23 @@ use_streaming_backend = true }, } + verify := func(t *testing.T, expectN int, nodes structs.CheckServiceNodes) { + require.Len(t, nodes, expectN) + + for i, node := range nodes { + require.Equal(t, peerName, node.Node.PeerName) + if i == 2 { + require.Equal(t, "zoo", node.Node.Node) + } else { + require.Equal(t, "bar", node.Node.Node) + } + require.Equal(t, "test", node.Service.Service) + } + } + for _, tc := range cases { tc := tc t.Run(tc.name, func(t *testing.T) { - sink := metrics.NewInmemSink(5*time.Second, time.Minute) metrics.NewGlobal(&metrics.Config{ ServiceName: "testing", @@ -806,14 +822,17 @@ use_streaming_backend = true testrpc.WaitForTestAgent(t, a.RPC, "dc1") // Register some initial service instances + // TODO(peering): will have to seed this data differently in the future for i := 0; i < 2; i++ { args := &structs.RegisterRequest{ Datacenter: "dc1", Node: "bar", Address: "127.0.0.1", + PeerName: peerName, Service: &structs.NodeService{ - ID: fmt.Sprintf("test%03d", i), - Service: "test", + ID: fmt.Sprintf("test%03d", i), + Service: "test", + PeerName: peerName, }, } @@ -822,13 +841,13 @@ use_streaming_backend = true } // Initial request should return two instances - req, _ := http.NewRequest("GET", "/v1/health/service/test?dc=dc1", nil) + req, _ := http.NewRequest("GET", "/v1/health/service/test?dc=dc1"+peerQuerySuffix(peerName), nil) resp := httptest.NewRecorder() obj, err := a.srv.HealthServiceNodes(resp, req) require.NoError(t, err) nodes := obj.(structs.CheckServiceNodes) - require.Len(t, nodes, 2) + verify(t, 2, nodes) idx := getIndex(t, resp) require.True(t, idx > 0) @@ -858,13 +877,16 @@ use_streaming_backend = true go func() { time.Sleep(sleep) + // TODO(peering): will have to seed this data differently in the future args := &structs.RegisterRequest{ Datacenter: "dc1", Node: "zoo", Address: "127.0.0.3", + PeerName: peerName, Service: &structs.NodeService{ - ID: "test", - Service: "test", + ID: "test", + Service: "test", + PeerName: peerName, }, } @@ -874,7 +896,7 @@ use_streaming_backend = true { timeout := 30 * time.Second - url := fmt.Sprintf("/v1/health/service/test?dc=dc1&index=%d&wait=%s", idx, timeout) + url := fmt.Sprintf("/v1/health/service/test?dc=dc1&index=%d&wait=%s"+peerQuerySuffix(peerName), idx, timeout) req, _ := http.NewRequest("GET", url, nil) resp := httptest.NewRecorder() obj, err := a.srv.HealthServiceNodes(resp, req) @@ -887,7 +909,7 @@ use_streaming_backend = true " it timed out. timeout=%s, elapsed=%s", timeout, elapsed) nodes := obj.(structs.CheckServiceNodes) - require.Len(t, nodes, 3) + verify(t, 3, nodes) newIdx := getIndex(t, resp) require.True(t, idx < newIdx, "index should have increased."+ @@ -904,7 +926,7 @@ use_streaming_backend = true start = time.Now() { timeout := 200 * time.Millisecond - url := fmt.Sprintf("/v1/health/service/test?dc=dc1&index=%d&wait=%s", + url := fmt.Sprintf("/v1/health/service/test?dc=dc1&index=%d&wait=%s"+peerQuerySuffix(peerName), idx, timeout) req, _ := http.NewRequest("GET", url, nil) resp := httptest.NewRecorder() @@ -917,7 +939,7 @@ use_streaming_backend = true " least as long as timeout. timeout=%s, elapsed=%s", timeout, elapsed) nodes := obj.(structs.CheckServiceNodes) - require.Len(t, nodes, 3) + verify(t, 3, nodes) newIdx := getIndex(t, resp) require.Equal(t, idx, newIdx) @@ -938,6 +960,16 @@ use_streaming_backend = true } func TestHealthServiceNodes_Blocking_withFilter(t *testing.T) { + t.Run("local data", func(t *testing.T) { + testHealthServiceNodes_Blocking_withFilter(t, structs.DefaultPeerKeyword) + }) + + t.Run("peered data", func(t *testing.T) { + testHealthServiceNodes_Blocking_withFilter(t, "my-peer") + }) +} + +func testHealthServiceNodes_Blocking_withFilter(t *testing.T, peerName string) { cases := []struct { name string hcl string @@ -958,23 +990,19 @@ use_streaming_backend = true }, } - runStep := func(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } - } - + // TODO(peering): will have to seed this data differently in the future register := func(t *testing.T, a *TestAgent, name, tag string) { args := &structs.RegisterRequest{ Datacenter: "dc1", ID: types.NodeID("43d419c0-433b-42c3-bf8a-193eba0b41a3"), Node: "node1", Address: "127.0.0.1", + PeerName: peerName, Service: &structs.NodeService{ - ID: name, - Service: name, - Tags: []string{tag}, + ID: name, + Service: name, + PeerName: peerName, + Tags: []string{tag}, }, } @@ -998,8 +1026,8 @@ use_streaming_backend = true // Initial request with a filter should return one. var lastIndex uint64 - runStep(t, "read original", func(t *testing.T) { - req, err := http.NewRequest("GET", "/v1/health/service/web?dc=dc1&"+filterUrlPart, nil) + testutil.RunStep(t, "read original", func(t *testing.T) { + req, err := http.NewRequest("GET", "/v1/health/service/web?dc=dc1&"+filterUrlPart+peerQuerySuffix(peerName), nil) require.NoError(t, err) resp := httptest.NewRecorder() @@ -1024,7 +1052,7 @@ use_streaming_backend = true }) const timeout = 30 * time.Second - runStep(t, "read blocking query result", func(t *testing.T) { + testutil.RunStep(t, "read blocking query result", func(t *testing.T) { var ( // out and resp are not safe to read until reading from errCh out structs.CheckServiceNodes @@ -1032,7 +1060,7 @@ use_streaming_backend = true errCh = make(chan error, 1) ) go func() { - url := fmt.Sprintf("/v1/health/service/web?dc=dc1&index=%d&wait=%s&%s", lastIndex, timeout, filterUrlPart) + url := fmt.Sprintf("/v1/health/service/web?dc=dc1&index=%d&wait=%s&%s"+peerQuerySuffix(peerName), lastIndex, timeout, filterUrlPart) req, err := http.NewRequest("GET", url, nil) if err != nil { errCh <- err @@ -1853,3 +1881,156 @@ func TestFilterNonPassing(t *testing.T) { t.Fatalf("bad: %v", out) } } + +func TestListHealthyServiceNodes_MergeCentralConfig(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + + a := NewTestAgent(t, "") + defer a.Shutdown() + testrpc.WaitForLeader(t, a.RPC, "dc1") + + // Register the service + registerServiceReq := registerService(t, a) + // Register proxy-defaults + proxyGlobalEntry := registerProxyDefaults(t, a) + // Register service-defaults + serviceDefaultsConfigEntry := registerServiceDefaults(t, a, registerServiceReq.Service.Proxy.DestinationServiceName) + + type testCase struct { + testCaseName string + serviceName string + connect bool + } + + run := func(t *testing.T, tc testCase) { + url := fmt.Sprintf("/v1/health/service/%s?merge-central-config", tc.serviceName) + if tc.connect { + url = fmt.Sprintf("/v1/health/connect/%s?merge-central-config", tc.serviceName) + } + req, _ := http.NewRequest("GET", url, nil) + resp := httptest.NewRecorder() + var obj interface{} + var err error + if tc.connect { + obj, err = a.srv.HealthConnectServiceNodes(resp, req) + } else { + obj, err = a.srv.HealthServiceNodes(resp, req) + } + + require.NoError(t, err) + assertIndex(t, resp) + + checkServiceNodes := obj.(structs.CheckServiceNodes) + + // validate response + require.Len(t, checkServiceNodes, 1) + v := checkServiceNodes[0] + + validateMergeCentralConfigResponse(t, v.Service.ToServiceNode(registerServiceReq.Node), registerServiceReq, proxyGlobalEntry, serviceDefaultsConfigEntry) + } + testCases := []testCase{ + { + testCaseName: "List healthy service instances with merge-central-config", + serviceName: registerServiceReq.Service.Service, + }, + { + testCaseName: "List healthy connect capable service instances with merge-central-config", + serviceName: registerServiceReq.Service.Proxy.DestinationServiceName, + connect: true, + }, + } + for _, tc := range testCases { + t.Run(tc.testCaseName, func(t *testing.T) { + run(t, tc) + }) + } +} + +func TestHealthServiceNodes_MergeCentralConfigBlocking(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + a := NewTestAgent(t, "") + defer a.Shutdown() + + testrpc.WaitForLeader(t, a.RPC, "dc1") + + // Register the service + registerServiceReq := registerService(t, a) + // Register proxy-defaults + proxyGlobalEntry := registerProxyDefaults(t, a) + + // Run the query + rpcReq := structs.ServiceSpecificRequest{ + Datacenter: "dc1", + ServiceName: registerServiceReq.Service.Service, + MergeCentralConfig: true, + } + var rpcResp structs.IndexedCheckServiceNodes + require.NoError(t, a.RPC("Health.ServiceNodes", &rpcReq, &rpcResp)) + + require.Len(t, rpcResp.Nodes, 1) + nodeService := rpcResp.Nodes[0].Service + require.Equal(t, registerServiceReq.Service.Service, nodeService.Service) + // validate proxy global defaults are resolved in the merged service config + require.Equal(t, proxyGlobalEntry.Config, nodeService.Proxy.Config) + require.Equal(t, proxyGlobalEntry.Mode, nodeService.Proxy.Mode) + + // Async cause a change - register service defaults + waitIndex := rpcResp.Index + start := time.Now() + var serviceDefaultsConfigEntry structs.ServiceConfigEntry + go func() { + time.Sleep(100 * time.Millisecond) + // Register service-defaults + serviceDefaultsConfigEntry = registerServiceDefaults(t, a, registerServiceReq.Service.Proxy.DestinationServiceName) + }() + + const waitDuration = 3 * time.Second +RUN_BLOCKING_QUERY: + url := fmt.Sprintf("/v1/health/service/%s?merge-central-config&wait=%s&index=%d", + registerServiceReq.Service.Service, waitDuration.String(), waitIndex) + req, _ := http.NewRequest("GET", url, nil) + resp := httptest.NewRecorder() + obj, err := a.srv.HealthServiceNodes(resp, req) + + require.NoError(t, err) + assertIndex(t, resp) + + elapsed := time.Since(start) + idx := getIndex(t, resp) + if idx < waitIndex { + t.Fatalf("bad index returned: %v", idx) + } else if idx == waitIndex { + if elapsed > waitDuration { + // This should prevent the loop from running longer than the waitDuration + t.Fatalf("too slow: %v", elapsed) + } + goto RUN_BLOCKING_QUERY + } + // Should block at least 100ms before getting the changed results + if elapsed < 100*time.Millisecond { + t.Fatalf("too fast: %v", elapsed) + } + + checkServiceNodes := obj.(structs.CheckServiceNodes) + + // validate response + require.Len(t, checkServiceNodes, 1) + v := checkServiceNodes[0].Service.ToServiceNode(registerServiceReq.Node) + + validateMergeCentralConfigResponse(t, v, registerServiceReq, proxyGlobalEntry, serviceDefaultsConfigEntry) +} + +func peerQuerySuffix(peerName string) string { + if peerName == "" { + return "" + } + return "&peer=" + peerName +} diff --git a/agent/http.go b/agent/http.go index 9bb5ed3406..5dbcdf00bd 100644 --- a/agent/http.go +++ b/agent/http.go @@ -1139,18 +1139,6 @@ func (s *HTTPHandlers) parseFilter(req *http.Request, filter *string) { } } -func getPathSuffixUnescaped(path string, prefixToTrim string) (string, error) { - // The suffix may be URL-encoded, so attempt to decode - suffixRaw := strings.TrimPrefix(path, prefixToTrim) - suffixUnescaped, err := url.PathUnescape(suffixRaw) - - if err != nil { - return suffixRaw, fmt.Errorf("failure in unescaping path param %q: %v", suffixRaw, err) - } - - return suffixUnescaped, nil -} - func setMetaProtobuf(resp http.ResponseWriter, queryMeta *pbcommon.QueryMeta) { qm := new(structs.QueryMeta) pbcommon.QueryMetaToStructs(queryMeta, qm) diff --git a/agent/http_register.go b/agent/http_register.go index 854f8dccb3..cfd1dc0861 100644 --- a/agent/http_register.go +++ b/agent/http_register.go @@ -104,7 +104,7 @@ func init() { registerEndpoint("/v1/operator/autopilot/health", []string{"GET"}, (*HTTPHandlers).OperatorServerHealth) registerEndpoint("/v1/operator/autopilot/state", []string{"GET"}, (*HTTPHandlers).OperatorAutopilotState) registerEndpoint("/v1/peering/token", []string{"POST"}, (*HTTPHandlers).PeeringGenerateToken) - registerEndpoint("/v1/peering/initiate", []string{"POST"}, (*HTTPHandlers).PeeringInitiate) + registerEndpoint("/v1/peering/establish", []string{"POST"}, (*HTTPHandlers).PeeringEstablish) registerEndpoint("/v1/peering/", []string{"GET", "DELETE"}, (*HTTPHandlers).PeeringEndpoint) registerEndpoint("/v1/peerings", []string{"GET"}, (*HTTPHandlers).PeeringList) registerEndpoint("/v1/query", []string{"GET", "POST"}, (*HTTPHandlers).PreparedQueryGeneral) diff --git a/agent/http_test.go b/agent/http_test.go index 525c4675a1..a42a932303 100644 --- a/agent/http_test.go +++ b/agent/http_test.go @@ -1686,42 +1686,3 @@ func TestRPC_HTTPSMaxConnsPerClient(t *testing.T) { }) } } - -func TestGetPathSuffixUnescaped(t *testing.T) { - t.Parallel() - - cases := []struct { - name string - pathInput string - pathPrefix string - suffixResult string - errString string - }{ - // No decoding required (resource name must be unaffected by the decode) - {"Normal Valid", "/foo/bar/resource-1", "/foo/bar/", "resource-1", ""}, - // This function is not responsible for enforcing a valid URL, just for decoding escaped values. - // If there's an invalid URL segment in the path, it will be returned as is. - {"Unencoded Invalid", "/foo/bar/resource 1", "/foo/bar/", "resource 1", ""}, - // Decode the encoded value properly - {"Encoded Valid", "/foo/bar/re%2Fsource%201", "/foo/bar/", "re/source 1", ""}, - // Fail to decode an invalidly encoded input - {"Encoded Invalid", "/foo/bar/re%Fsource%201", "/foo/bar/", "re%Fsource%201", "failure in unescaping path param"}, - } - - for _, tc := range cases { - tc := tc - t.Run(tc.name, func(t *testing.T) { - - suffixResult, err := getPathSuffixUnescaped(tc.pathInput, tc.pathPrefix) - - require.Equal(t, suffixResult, tc.suffixResult) - - if tc.errString == "" { - require.NoError(t, err) - } else { - require.Error(t, err) - require.Contains(t, err.Error(), tc.errString) - } - }) - } -} diff --git a/agent/intentions_endpoint.go b/agent/intentions_endpoint.go index 7c9855a44d..d21833a8f5 100644 --- a/agent/intentions_endpoint.go +++ b/agent/intentions_endpoint.go @@ -324,7 +324,7 @@ func (s *HTTPHandlers) IntentionGetExact(resp http.ResponseWriter, req *http.Req var reply structs.IndexedIntentions if err := s.agent.RPC("Intention.Get", &args, &reply); err != nil { // We have to check the string since the RPC sheds the error type - if err.Error() == consul.ErrIntentionNotFound.Error() { + if strings.Contains(err.Error(), consul.ErrIntentionNotFound.Error()) { return nil, HTTPError{StatusCode: http.StatusNotFound, Reason: err.Error()} } @@ -486,10 +486,7 @@ func parseIntentionStringComponent(input string, entMeta *acl.EnterpriseMeta) (s // IntentionSpecific handles the endpoint for /v1/connect/intentions/:id. // Deprecated: use IntentionExact. func (s *HTTPHandlers) IntentionSpecific(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - id, err := getPathSuffixUnescaped(req.URL.Path, "/v1/connect/intentions/") - if err != nil { - return nil, err - } + id := strings.TrimPrefix(req.URL.Path, "/v1/connect/intentions/") switch req.Method { case "GET": diff --git a/agent/intentions_endpoint_test.go b/agent/intentions_endpoint_test.go index 1180a2c7dd..ef54ccce3e 100644 --- a/agent/intentions_endpoint_test.go +++ b/agent/intentions_endpoint_test.go @@ -62,6 +62,36 @@ func TestIntentionList(t *testing.T) { ids = append(ids, reply) } + // set up an intention for a peered service + // TODO(peering): when we handle Upserts, we can use the for loop above. But it may be that we + // rip out legacy intentions before supporting that use case so run a config entry request instead here. + { + configEntryIntention := structs.ServiceIntentionsConfigEntry{ + Kind: structs.ServiceIntentions, + Name: "bar", + Sources: []*structs.SourceIntention{ + { + Name: "peered", + Peer: "peer1", + Action: structs.IntentionActionAllow, + }, + }, + } + + req, err := http.NewRequest("PUT", "/v1/config", jsonReader(configEntryIntention)) + require.NoError(t, err) + resp := httptest.NewRecorder() + + obj, err := a.srv.ConfigApply(resp, req) + require.NoError(t, err) + + if applied, ok := obj.(bool); ok { + require.True(t, applied) + } else { + t.Fatal("ConfigApply returns a boolean type") + } + } + // Request req, err := http.NewRequest("GET", "/v1/connect/intentions", nil) require.NoError(t, err) @@ -71,22 +101,27 @@ func TestIntentionList(t *testing.T) { require.NoError(t, err) value := obj.(structs.Intentions) - require.Len(t, value, 4) + require.Len(t, value, 5) - require.Equal(t, []string{"bar->db", "foo->db", "zim->gir", "*->db"}, + require.Equal(t, []string{"bar->db", "foo->db", "zim->gir", "peered->bar", "*->db"}, []string{ value[0].SourceName + "->" + value[0].DestinationName, value[1].SourceName + "->" + value[1].DestinationName, value[2].SourceName + "->" + value[2].DestinationName, value[3].SourceName + "->" + value[3].DestinationName, + value[4].SourceName + "->" + value[4].DestinationName, }) - require.Equal(t, []string{ids[2], ids[1], "", ids[0]}, + require.Equal(t, []string{ids[2], ids[1], "", "", ids[0]}, []string{ value[0].ID, value[1].ID, value[2].ID, value[3].ID, + value[4].ID, }) + + // check that a source peer exists for the intention of the peered service + require.Equal(t, "peer1", value[3].SourcePeer) }) } @@ -314,6 +349,54 @@ func TestIntentionCheck(t *testing.T) { }) } +func TestIntentionGetExact(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + t.Parallel() + + hcl := ` + bootstrap = false + bootstrap_expect = 2 + server = true + ` + + a1 := NewTestAgent(t, hcl) + a2 := NewTestAgent(t, hcl) + + _, err := a1.JoinLAN([]string{ + fmt.Sprintf("127.0.0.1:%d", a2.Config.SerfPortLAN), + }, nil) + require.NoError(t, err) + + testrpc.WaitForTestAgent(t, a1.RPC, "dc1") + testrpc.WaitForTestAgent(t, a2.RPC, "dc1") + testrpc.WaitForLeader(t, a1.RPC, "dc1") + testrpc.WaitForLeader(t, a2.RPC, "dc1") + + run := func(t *testing.T, a *TestAgent) { + req, err := http.NewRequest("GET", "/v1/connect/intentions/exact?source=foo&destination=bar", nil) + require.NoError(t, err) + + resp := httptest.NewRecorder() + obj, err := a.srv.IntentionExact(resp, req) + testutil.RequireErrorContains(t, err, "Intention not found") + httpErr, ok := err.(HTTPError) + require.True(t, ok) + require.Equal(t, http.StatusNotFound, httpErr.StatusCode) + require.Nil(t, obj) + } + + // One of these will be the leader and the other will be a follower so we + // test direct RPC handling and RPC forwarding of errors at the same time. + for i, a := range []*TestAgent{a1, a2} { + t.Run(fmt.Sprintf("test agent %d of 2", i+1), func(t *testing.T) { + run(t, a) + }) + } +} + func TestIntentionPutExact(t *testing.T) { if testing.Short() { t.Skip("too slow for testing.Short") diff --git a/agent/kvs_endpoint.go b/agent/kvs_endpoint.go index 4ac9f4119f..1aed8178ad 100644 --- a/agent/kvs_endpoint.go +++ b/agent/kvs_endpoint.go @@ -6,6 +6,7 @@ import ( "io" "net/http" "strconv" + "strings" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" @@ -19,11 +20,7 @@ func (s *HTTPHandlers) KVSEndpoint(resp http.ResponseWriter, req *http.Request) } // Pull out the key name, validation left to each sub-handler - var err error - args.Key, err = getPathSuffixUnescaped(req.URL.Path, "/v1/kv/") - if err != nil { - return nil, err - } + args.Key = strings.TrimPrefix(req.URL.Path, "/v1/kv/") // Check for a key list keyList := false @@ -72,7 +69,7 @@ func (s *HTTPHandlers) KVSGet(resp http.ResponseWriter, req *http.Request, args // Make the RPC var out structs.IndexedDirEntries - if err := s.agent.RPC(method, &args, &out); err != nil { + if err := s.agent.RPC(method, args, &out); err != nil { return nil, err } setMeta(resp, &out.QueryMeta) diff --git a/agent/local/state.go b/agent/local/state.go index 9a2e00a943..74641a0683 100644 --- a/agent/local/state.go +++ b/agent/local/state.go @@ -9,6 +9,7 @@ import ( "sync/atomic" "time" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/lib/stringslice" "github.com/armon/go-metrics" @@ -17,7 +18,6 @@ import ( "github.com/mitchellh/copystructure" "github.com/hashicorp/consul/acl" - "github.com/hashicorp/consul/agent/consul" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/token" "github.com/hashicorp/consul/api" @@ -154,7 +154,7 @@ func (c *CheckState) CriticalFor() time.Duration { type rpc interface { RPC(method string, args interface{}, reply interface{}) error - ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (consul.ACLResolveResult, error) + ResolveTokenAndDefaultMeta(token string, entMeta *acl.EnterpriseMeta, authzContext *acl.AuthorizerContext) (resolver.Result, error) } // State is used to represent the node's services, diff --git a/agent/local/state_test.go b/agent/local/state_test.go index c75d0234c3..686c86a935 100644 --- a/agent/local/state_test.go +++ b/agent/local/state_test.go @@ -14,9 +14,9 @@ import ( "github.com/stretchr/testify/require" "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/acl/resolver" "github.com/hashicorp/consul/agent" "github.com/hashicorp/consul/agent/config" - "github.com/hashicorp/consul/agent/consul" "github.com/hashicorp/consul/agent/local" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/token" @@ -2421,6 +2421,6 @@ func (f *fakeRPC) RPC(method string, args interface{}, reply interface{}) error return nil } -func (f *fakeRPC) ResolveTokenAndDefaultMeta(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) (consul.ACLResolveResult, error) { - return consul.ACLResolveResult{}, nil +func (f *fakeRPC) ResolveTokenAndDefaultMeta(string, *acl.EnterpriseMeta, *acl.AuthorizerContext) (resolver.Result, error) { + return resolver.Result{}, nil } diff --git a/agent/metrics_test.go b/agent/metrics_test.go index 76b3fff287..c4364a677a 100644 --- a/agent/metrics_test.go +++ b/agent/metrics_test.go @@ -1,6 +1,7 @@ package agent import ( + "context" "crypto/x509" "fmt" "io/ioutil" @@ -9,12 +10,14 @@ import ( "path/filepath" "strings" "testing" + "time" + // "github.com/hashicorp/consul/agent/config" "github.com/hashicorp/consul/agent/rpc/middleware" + "github.com/hashicorp/consul/lib/retry" "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/testrpc" "github.com/hashicorp/consul/tlsutil" - "github.com/stretchr/testify/require" ) @@ -205,6 +208,52 @@ func TestAgent_OneTwelveRPCMetrics(t *testing.T) { }) } +func TestHTTPHandlers_AgentMetrics_LeaderShipMetrics(t *testing.T) { + skipIfShortTesting(t) + // This test cannot use t.Parallel() since we modify global state, ie the global metrics instance + + t.Run("check that metric isLeader is set properly on server", func(t *testing.T) { + hcl := ` + telemetry = { + prometheus_retention_time = "5s", + metrics_prefix = "agent_is_leader" + } + ` + + a := StartTestAgent(t, TestAgent{HCL: hcl}) + defer a.Shutdown() + + retryWithBackoff := func(expectedStr string) error { + waiter := &retry.Waiter{ + MaxWait: 1 * time.Minute, + } + ctx := context.Background() + for { + if waiter.Failures() > 7 { + return fmt.Errorf("reach max failure: %d", waiter.Failures()) + } + respRec := httptest.NewRecorder() + recordPromMetrics(t, a, respRec) + + out := respRec.Body.String() + if strings.Contains(out, expectedStr) { + return nil + } + waiter.Wait(ctx) + } + } + // agent hasn't become a leader + err := retryWithBackoff("isLeader 0") + require.NoError(t, err, "non-leader server should have isLeader 0") + + testrpc.WaitForLeader(t, a.RPC, "dc1") + + // Verify agent's isLeader metrics is 1 + err = retryWithBackoff("isLeader 1") + require.NoError(t, err, "leader should have isLeader 1") + }) +} + // TestHTTPHandlers_AgentMetrics_ConsulAutopilot_Prometheus adds testing around // the published autopilot metrics on https://www.consul.io/docs/agent/telemetry#autopilot func TestHTTPHandlers_AgentMetrics_ConsulAutopilot_Prometheus(t *testing.T) { diff --git a/agent/peering_endpoint.go b/agent/peering_endpoint.go index 54cb0c37a8..22f4fc1ae7 100644 --- a/agent/peering_endpoint.go +++ b/agent/peering_endpoint.go @@ -3,32 +3,27 @@ package agent import ( "fmt" "net/http" + "strings" + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/api" "github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/proto/pbpeering" ) // PeeringEndpoint handles GET, DELETE on v1/peering/name func (s *HTTPHandlers) PeeringEndpoint(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - name, err := getPathSuffixUnescaped(req.URL.Path, "/v1/peering/") - if err != nil { - return nil, err - } + name := strings.TrimPrefix(req.URL.Path, "/v1/peering/") if name == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Must specify a name to fetch."} } - entMeta := s.agent.AgentEnterpriseMeta() - if err := s.parseEntMetaPartition(req, entMeta); err != nil { - return nil, err - } - // Switch on the method switch req.Method { case "GET": - return s.peeringRead(resp, req, name, entMeta.PartitionOrEmpty()) + return s.peeringRead(resp, req, name) case "DELETE": - return s.peeringDelete(resp, req, name, entMeta.PartitionOrEmpty()) + return s.peeringDelete(resp, req, name) default: return nil, MethodNotAllowedError{req.Method, []string{"GET", "DELETE"}} } @@ -36,12 +31,16 @@ func (s *HTTPHandlers) PeeringEndpoint(resp http.ResponseWriter, req *http.Reque // peeringRead fetches a peering that matches the name and partition. // This assumes that the name and partition parameters are valid -func (s *HTTPHandlers) peeringRead(resp http.ResponseWriter, req *http.Request, name, partition string) (interface{}, error) { +func (s *HTTPHandlers) peeringRead(resp http.ResponseWriter, req *http.Request, name string) (interface{}, error) { args := pbpeering.PeeringReadRequest{ Name: name, Datacenter: s.agent.config.Datacenter, - Partition: partition, // should be "" in OSS } + var entMeta acl.EnterpriseMeta + if err := s.parseEntMetaPartition(req, &entMeta); err != nil { + return nil, err + } + args.Partition = entMeta.PartitionOrEmpty() result, err := s.agent.rpcClientPeering.PeeringRead(req.Context(), &args) if err != nil { @@ -51,100 +50,111 @@ func (s *HTTPHandlers) peeringRead(resp http.ResponseWriter, req *http.Request, return nil, HTTPError{StatusCode: http.StatusNotFound, Reason: fmt.Sprintf("Peering not found for %q", name)} } - // TODO(peering): replace with API types - return result.Peering, nil + return result.Peering.ToAPI(), nil } // PeeringList fetches all peerings in the datacenter in OSS or in a given partition in Consul Enterprise. func (s *HTTPHandlers) PeeringList(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - entMeta := s.agent.AgentEnterpriseMeta() - if err := s.parseEntMetaPartition(req, entMeta); err != nil { - return nil, err - } - args := pbpeering.PeeringListRequest{ Datacenter: s.agent.config.Datacenter, - Partition: entMeta.PartitionOrEmpty(), // should be "" in OSS } + var entMeta acl.EnterpriseMeta + if err := s.parseEntMetaPartition(req, &entMeta); err != nil { + return nil, err + } + args.Partition = entMeta.PartitionOrEmpty() pbresp, err := s.agent.rpcClientPeering.PeeringList(req.Context(), &args) if err != nil { return nil, err } - return pbresp.Peerings, nil + + return pbresp.ToAPI(), nil } // PeeringGenerateToken handles POSTs to the /v1/peering/token endpoint. The request // will always be forwarded via RPC to the local leader. func (s *HTTPHandlers) PeeringGenerateToken(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - args := pbpeering.GenerateTokenRequest{ - Datacenter: s.agent.config.Datacenter, - } - if req.Body == nil { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "The peering arguments must be provided in the body"} } - if err := lib.DecodeJSON(req.Body, &args); err != nil { + apiRequest := &api.PeeringGenerateTokenRequest{ + Datacenter: s.agent.config.Datacenter, + } + if err := lib.DecodeJSON(req.Body, apiRequest); err != nil { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: fmt.Sprintf("Body decoding failed: %v", err)} } + args := pbpeering.NewGenerateTokenRequestFromAPI(apiRequest) if args.PeerName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "PeerName is required in the payload when generating a new peering token."} } - entMeta := s.agent.AgentEnterpriseMeta() - if err := s.parseEntMetaPartition(req, entMeta); err != nil { + var entMeta acl.EnterpriseMeta + if err := s.parseEntMetaPartition(req, &entMeta); err != nil { return nil, err } - if args.Partition == "" { args.Partition = entMeta.PartitionOrEmpty() } - return s.agent.rpcClientPeering.GenerateToken(req.Context(), &args) -} - -// PeeringInitiate handles POSTs to the /v1/peering/initiate endpoint. The request -// will always be forwarded via RPC to the local leader. -func (s *HTTPHandlers) PeeringInitiate(resp http.ResponseWriter, req *http.Request) (interface{}, error) { - args := pbpeering.InitiateRequest{ - Datacenter: s.agent.config.Datacenter, - } - - if req.Body == nil { - return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "The peering arguments must be provided in the body"} - } - - if err := lib.DecodeJSON(req.Body, &args); err != nil { - return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: fmt.Sprintf("Body decoding failed: %v", err)} - } - - if args.PeerName == "" { - return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "PeerName is required in the payload when initiating a peering."} - } - - if args.PeeringToken == "" { - return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "PeeringToken is required in the payload when initiating a peering."} - } - - return s.agent.rpcClientPeering.Initiate(req.Context(), &args) -} - -// peeringDelete initiates a deletion for a peering that matches the name and partition. -// This assumes that the name and partition parameters are valid. -func (s *HTTPHandlers) peeringDelete(resp http.ResponseWriter, req *http.Request, name, partition string) (interface{}, error) { - args := pbpeering.PeeringDeleteRequest{ - Name: name, - Datacenter: s.agent.config.Datacenter, - Partition: partition, // should be "" in OSS - } - - result, err := s.agent.rpcClientPeering.PeeringDelete(req.Context(), &args) + out, err := s.agent.rpcClientPeering.GenerateToken(req.Context(), args) if err != nil { return nil, err } - // TODO(peering) -- today pbpeering.PeeringDeleteResponse is a {} so the result below is actually {} - return result, nil + return out.ToAPI(), nil +} + +// PeeringEstablish handles POSTs to the /v1/peering/establish endpoint. The request +// will always be forwarded via RPC to the local leader. +func (s *HTTPHandlers) PeeringEstablish(resp http.ResponseWriter, req *http.Request) (interface{}, error) { + if req.Body == nil { + return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "The peering arguments must be provided in the body"} + } + + apiRequest := &api.PeeringEstablishRequest{ + Datacenter: s.agent.config.Datacenter, + } + if err := lib.DecodeJSON(req.Body, apiRequest); err != nil { + return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: fmt.Sprintf("Body decoding failed: %v", err)} + } + args := pbpeering.NewEstablishRequestFromAPI(apiRequest) + + if args.PeerName == "" { + return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "PeerName is required in the payload when establishing a peering."} + } + + if args.PeeringToken == "" { + return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "PeeringToken is required in the payload when establishing a peering."} + } + + out, err := s.agent.rpcClientPeering.Establish(req.Context(), args) + if err != nil { + return nil, err + } + + return out.ToAPI(), nil +} + +// peeringDelete initiates a deletion for a peering that matches the name and partition. +// This assumes that the name and partition parameters are valid. +func (s *HTTPHandlers) peeringDelete(resp http.ResponseWriter, req *http.Request, name string) (interface{}, error) { + args := pbpeering.PeeringDeleteRequest{ + Name: name, + Datacenter: s.agent.config.Datacenter, + } + var entMeta acl.EnterpriseMeta + if err := s.parseEntMetaPartition(req, &entMeta); err != nil { + return nil, err + } + args.Partition = entMeta.PartitionOrEmpty() + + _, err := s.agent.rpcClientPeering.PeeringDelete(req.Context(), &args) + if err != nil { + return nil, err + } + + return nil, nil } diff --git a/agent/peering_endpoint_test.go b/agent/peering_endpoint_test.go index fb441d136a..b9974fd934 100644 --- a/agent/peering_endpoint_test.go +++ b/agent/peering_endpoint_test.go @@ -15,7 +15,9 @@ import ( "github.com/stretchr/testify/require" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/api" "github.com/hashicorp/consul/proto/pbpeering" + "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/consul/testrpc" ) @@ -113,7 +115,7 @@ func TestHTTP_Peering_GenerateToken(t *testing.T) { }) } -func TestHTTP_Peering_Initiate(t *testing.T) { +func TestHTTP_Peering_Establish(t *testing.T) { if testing.Short() { t.Skip("too slow for testing.Short") } @@ -124,7 +126,7 @@ func TestHTTP_Peering_Initiate(t *testing.T) { testrpc.WaitForTestAgent(t, a.RPC, "dc1") t.Run("No Body", func(t *testing.T) { - req, err := http.NewRequest("POST", "/v1/peering/initiate", nil) + req, err := http.NewRequest("POST", "/v1/peering/establish", nil) require.NoError(t, err) resp := httptest.NewRecorder() a.srv.h.ServeHTTP(resp, req) @@ -134,7 +136,7 @@ func TestHTTP_Peering_Initiate(t *testing.T) { }) t.Run("Body Invalid", func(t *testing.T) { - req, err := http.NewRequest("POST", "/v1/peering/initiate", bytes.NewReader([]byte("abc"))) + req, err := http.NewRequest("POST", "/v1/peering/establish", bytes.NewReader([]byte("abc"))) require.NoError(t, err) resp := httptest.NewRecorder() a.srv.h.ServeHTTP(resp, req) @@ -144,7 +146,7 @@ func TestHTTP_Peering_Initiate(t *testing.T) { }) t.Run("No Name", func(t *testing.T) { - req, err := http.NewRequest("POST", "/v1/peering/initiate", + req, err := http.NewRequest("POST", "/v1/peering/establish", bytes.NewReader([]byte(`{}`))) require.NoError(t, err) resp := httptest.NewRecorder() @@ -155,7 +157,7 @@ func TestHTTP_Peering_Initiate(t *testing.T) { }) t.Run("No Token", func(t *testing.T) { - req, err := http.NewRequest("POST", "/v1/peering/initiate", + req, err := http.NewRequest("POST", "/v1/peering/establish", bytes.NewReader([]byte(`{"PeerName": "peer1-usw1"}`))) require.NoError(t, err) resp := httptest.NewRecorder() @@ -176,7 +178,7 @@ func TestHTTP_Peering_Initiate(t *testing.T) { } tokenJSON, _ := json.Marshal(&token) tokenB64 := base64.StdEncoding.EncodeToString(tokenJSON) - body := &pbpeering.InitiateRequest{ + body := &pbpeering.EstablishRequest{ PeerName: "peering-a", PeeringToken: tokenB64, Meta: map[string]string{"foo": "bar"}, @@ -185,7 +187,7 @@ func TestHTTP_Peering_Initiate(t *testing.T) { bodyBytes, err := json.Marshal(body) require.NoError(t, err) - req, err := http.NewRequest("POST", "/v1/peering/initiate", bytes.NewReader(bodyBytes)) + req, err := http.NewRequest("POST", "/v1/peering/establish", bytes.NewReader(bodyBytes)) require.NoError(t, err) resp := httptest.NewRecorder() a.srv.h.ServeHTTP(resp, req) @@ -278,12 +280,11 @@ func TestHTTP_Peering_Read(t *testing.T) { a.srv.h.ServeHTTP(resp, req) require.Equal(t, http.StatusOK, resp.Code) - // TODO(peering): replace with API types - var pbresp pbpeering.Peering - require.NoError(t, json.NewDecoder(resp.Body).Decode(&pbresp)) + var apiResp api.Peering + require.NoError(t, json.NewDecoder(resp.Body).Decode(&apiResp)) - require.Equal(t, foo.Peering.Name, pbresp.Name) - require.Equal(t, foo.Peering.Meta, pbresp.Meta) + require.Equal(t, foo.Peering.Name, apiResp.Name) + require.Equal(t, foo.Peering.Meta, apiResp.Meta) }) t.Run("not found", func(t *testing.T) { @@ -328,11 +329,10 @@ func TestHTTP_Peering_Delete(t *testing.T) { a.srv.h.ServeHTTP(resp, req) require.Equal(t, http.StatusOK, resp.Code) - // TODO(peering): replace with API types - var pbresp pbpeering.Peering - require.NoError(t, json.NewDecoder(resp.Body).Decode(&pbresp)) + var apiResp api.Peering + require.NoError(t, json.NewDecoder(resp.Body).Decode(&apiResp)) - require.Equal(t, foo.Peering.Name, pbresp.Name) + require.Equal(t, foo.Peering.Name, apiResp.Name) }) t.Run("delete the existing token we just read", func(t *testing.T) { @@ -341,15 +341,17 @@ func TestHTTP_Peering_Delete(t *testing.T) { resp := httptest.NewRecorder() a.srv.h.ServeHTTP(resp, req) require.Equal(t, http.StatusOK, resp.Code) - require.Equal(t, "{}", resp.Body.String()) + require.Equal(t, "", resp.Body.String()) }) - t.Run("now the token is deleted, a read should 404", func(t *testing.T) { - req, err := http.NewRequest("GET", "/v1/peering/foo", nil) - require.NoError(t, err) - resp := httptest.NewRecorder() - a.srv.h.ServeHTTP(resp, req) - require.Equal(t, http.StatusNotFound, resp.Code) + t.Run("now the token is deleted and reads should yield a 404", func(t *testing.T) { + retry.Run(t, func(r *retry.R) { + req, err := http.NewRequest("GET", "/v1/peering/foo", nil) + require.NoError(r, err) + resp := httptest.NewRecorder() + a.srv.h.ServeHTTP(resp, req) + require.Equal(r, http.StatusNotFound, resp.Code) + }) }) t.Run("delete a token that does not exist", func(t *testing.T) { @@ -408,10 +410,9 @@ func TestHTTP_Peering_List(t *testing.T) { a.srv.h.ServeHTTP(resp, req) require.Equal(t, http.StatusOK, resp.Code) - // TODO(peering): replace with API types - var pbresp []*pbpeering.Peering - require.NoError(t, json.NewDecoder(resp.Body).Decode(&pbresp)) + var apiResp []*api.Peering + require.NoError(t, json.NewDecoder(resp.Body).Decode(&apiResp)) - require.Len(t, pbresp, 2) + require.Len(t, apiResp, 2) }) } diff --git a/agent/prepared_query_endpoint.go b/agent/prepared_query_endpoint.go index f6cbe64941..6f5e7a9c2e 100644 --- a/agent/prepared_query_endpoint.go +++ b/agent/prepared_query_endpoint.go @@ -309,10 +309,7 @@ func (s *HTTPHandlers) PreparedQuerySpecific(resp http.ResponseWriter, req *http } path := req.URL.Path - id, err := getPathSuffixUnescaped(path, "/v1/query/") - if err != nil { - return nil, err - } + id := strings.TrimPrefix(path, "/v1/query/") switch { case strings.HasSuffix(path, "/execute"): diff --git a/agent/proxycfg-glue/glue.go b/agent/proxycfg-glue/glue.go new file mode 100644 index 0000000000..c047da48f9 --- /dev/null +++ b/agent/proxycfg-glue/glue.go @@ -0,0 +1,172 @@ +package proxycfgglue + +import ( + "context" + + "github.com/hashicorp/consul/agent/cache" + cachetype "github.com/hashicorp/consul/agent/cache-types" + "github.com/hashicorp/consul/agent/proxycfg" + "github.com/hashicorp/consul/agent/rpcclient/health" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbpeering" +) + +// CacheCARoots satisfies the proxycfg.CARoots interface by sourcing data from +// the agent cache. +func CacheCARoots(c *cache.Cache) proxycfg.CARoots { + return &cacheProxyDataSource[*structs.DCSpecificRequest]{c, cachetype.ConnectCARootName} +} + +// CacheCompiledDiscoveryChain satisfies the proxycfg.CompiledDiscoveryChain +// interface by sourcing data from the agent cache. +func CacheCompiledDiscoveryChain(c *cache.Cache) proxycfg.CompiledDiscoveryChain { + return &cacheProxyDataSource[*structs.DiscoveryChainRequest]{c, cachetype.CompiledDiscoveryChainName} +} + +// CacheConfigEntry satisfies the proxycfg.ConfigEntry interface by sourcing +// data from the agent cache. +func CacheConfigEntry(c *cache.Cache) proxycfg.ConfigEntry { + return &cacheProxyDataSource[*structs.ConfigEntryQuery]{c, cachetype.ConfigEntryName} +} + +// CacheConfigEntryList satisfies the proxycfg.ConfigEntryList interface by +// sourcing data from the agent cache. +func CacheConfigEntryList(c *cache.Cache) proxycfg.ConfigEntryList { + return &cacheProxyDataSource[*structs.ConfigEntryQuery]{c, cachetype.ConfigEntryListName} +} + +// CacheDatacenters satisfies the proxycfg.Datacenters interface by sourcing +// data from the agent cache. +func CacheDatacenters(c *cache.Cache) proxycfg.Datacenters { + return &cacheProxyDataSource[*structs.DatacentersRequest]{c, cachetype.CatalogDatacentersName} +} + +// CacheFederationStateListMeshGateways satisfies the proxycfg.FederationStateListMeshGateways +// interface by sourcing data from the agent cache. +func CacheFederationStateListMeshGateways(c *cache.Cache) proxycfg.FederationStateListMeshGateways { + return &cacheProxyDataSource[*structs.DCSpecificRequest]{c, cachetype.FederationStateListMeshGatewaysName} +} + +// CacheGatewayServices satisfies the proxycfg.GatewayServices interface by +// sourcing data from the agent cache. +func CacheGatewayServices(c *cache.Cache) proxycfg.GatewayServices { + return &cacheProxyDataSource[*structs.ServiceSpecificRequest]{c, cachetype.GatewayServicesName} +} + +// CacheHTTPChecks satisifies the proxycfg.HTTPChecks interface by sourcing +// data from the agent cache. +func CacheHTTPChecks(c *cache.Cache) proxycfg.HTTPChecks { + return &cacheProxyDataSource[*cachetype.ServiceHTTPChecksRequest]{c, cachetype.ServiceHTTPChecksName} +} + +// CacheIntentions satisfies the proxycfg.Intentions interface by sourcing data +// from the agent cache. +func CacheIntentions(c *cache.Cache) proxycfg.Intentions { + return &cacheProxyDataSource[*structs.IntentionQueryRequest]{c, cachetype.IntentionMatchName} +} + +// CacheIntentionUpstreams satisfies the proxycfg.IntentionUpstreams interface +// by sourcing data from the agent cache. +func CacheIntentionUpstreams(c *cache.Cache) proxycfg.IntentionUpstreams { + return &cacheProxyDataSource[*structs.ServiceSpecificRequest]{c, cachetype.IntentionUpstreamsName} +} + +// CacheInternalServiceDump satisfies the proxycfg.InternalServiceDump +// interface by sourcing data from the agent cache. +func CacheInternalServiceDump(c *cache.Cache) proxycfg.InternalServiceDump { + return &cacheProxyDataSource[*structs.ServiceDumpRequest]{c, cachetype.InternalServiceDumpName} +} + +// CacheLeafCertificate satisifies the proxycfg.LeafCertificate interface by +// sourcing data from the agent cache. +func CacheLeafCertificate(c *cache.Cache) proxycfg.LeafCertificate { + return &cacheProxyDataSource[*cachetype.ConnectCALeafRequest]{c, cachetype.ConnectCALeafName} +} + +// CachePrepraredQuery satisfies the proxycfg.PreparedQuery interface by +// sourcing data from the agent cache. +func CachePrepraredQuery(c *cache.Cache) proxycfg.PreparedQuery { + return &cacheProxyDataSource[*structs.PreparedQueryExecuteRequest]{c, cachetype.PreparedQueryName} +} + +// CacheResolvedServiceConfig satisfies the proxycfg.ResolvedServiceConfig +// interface by sourcing data from the agent cache. +func CacheResolvedServiceConfig(c *cache.Cache) proxycfg.ResolvedServiceConfig { + return &cacheProxyDataSource[*structs.ServiceConfigRequest]{c, cachetype.ResolvedServiceConfigName} +} + +// CacheServiceList satisfies the proxycfg.ServiceList interface by sourcing +// data from the agent cache. +func CacheServiceList(c *cache.Cache) proxycfg.ServiceList { + return &cacheProxyDataSource[*structs.DCSpecificRequest]{c, cachetype.CatalogServiceListName} +} + +// CacheTrustBundle satisfies the proxycfg.TrustBundle interface by sourcing +// data from the agent cache. +func CacheTrustBundle(c *cache.Cache) proxycfg.TrustBundle { + return &cacheProxyDataSource[*pbpeering.TrustBundleReadRequest]{c, cachetype.TrustBundleReadName} +} + +// CacheTrustBundleList satisfies the proxycfg.TrustBundleList interface by sourcing +// data from the agent cache. +func CacheTrustBundleList(c *cache.Cache) proxycfg.TrustBundleList { + return &cacheProxyDataSource[*pbpeering.TrustBundleListByServiceRequest]{c, cachetype.TrustBundleListName} +} + +// CacheExportedPeeredServices satisfies the proxycfg.ExportedPeeredServices +// interface by sourcing data from the agent cache. +func CacheExportedPeeredServices(c *cache.Cache) proxycfg.ExportedPeeredServices { + return &cacheProxyDataSource[*structs.DCSpecificRequest]{c, cachetype.ExportedPeeredServicesName} +} + +// cacheProxyDataSource implements a generic wrapper around the agent cache to +// provide data to the proxycfg.Manager. +type cacheProxyDataSource[ReqType cache.Request] struct { + c *cache.Cache + t string +} + +// Notify satisfies the interfaces used by proxycfg.Manager to source data by +// subscribing to notifications from the agent cache. +func (c *cacheProxyDataSource[ReqType]) Notify( + ctx context.Context, + req ReqType, + correlationID string, + ch chan<- proxycfg.UpdateEvent, +) error { + return c.c.NotifyCallback(ctx, c.t, req, correlationID, dispatchCacheUpdate(ctx, ch)) +} + +// Health wraps health.Client so that the proxycfg package doesn't need to +// reference cache.UpdateEvent directly. +func Health(client *health.Client) proxycfg.Health { + return &healthWrapper{client} +} + +type healthWrapper struct { + client *health.Client +} + +func (h *healthWrapper) Notify( + ctx context.Context, + req *structs.ServiceSpecificRequest, + correlationID string, + ch chan<- proxycfg.UpdateEvent, +) error { + return h.client.Notify(ctx, *req, correlationID, dispatchCacheUpdate(ctx, ch)) +} + +func dispatchCacheUpdate(ctx context.Context, ch chan<- proxycfg.UpdateEvent) cache.Callback { + return func(ctx context.Context, e cache.UpdateEvent) { + u := proxycfg.UpdateEvent{ + CorrelationID: e.CorrelationID, + Result: e.Result, + Err: e.Err, + } + + select { + case ch <- u: + case <-ctx.Done(): + } + } +} diff --git a/agent/proxycfg-sources/catalog/config_source.go b/agent/proxycfg-sources/catalog/config_source.go new file mode 100644 index 0000000000..1ee3f7f909 --- /dev/null +++ b/agent/proxycfg-sources/catalog/config_source.go @@ -0,0 +1,259 @@ +package catalog + +import ( + "context" + "errors" + "sync" + + "github.com/hashicorp/go-hclog" + "github.com/hashicorp/go-memdb" + + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/agent/local" + "github.com/hashicorp/consul/agent/proxycfg" + "github.com/hashicorp/consul/agent/structs" +) + +const source proxycfg.ProxySource = "catalog" + +// ConfigSource wraps a proxycfg.Manager to register services with it, from the +// catalog, when they are requested by the xDS server. +type ConfigSource struct { + Config + + mu sync.Mutex + watches map[proxycfg.ProxyID]*watch + + shutdownCh chan struct{} +} + +type watch struct { + numWatchers int // guarded by ConfigSource.mu. + closeCh chan chan struct{} +} + +// NewConfigSource creates a ConfigSource with the given configuration. +func NewConfigSource(cfg Config) *ConfigSource { + return &ConfigSource{ + Config: cfg, + watches: make(map[proxycfg.ProxyID]*watch), + shutdownCh: make(chan struct{}), + } +} + +// Watch wraps the underlying proxycfg.Manager and dynamically registers +// services from the catalog with it when requested by the xDS server. +func (m *ConfigSource) Watch(serviceID structs.ServiceID, nodeName string, token string) (<-chan *proxycfg.ConfigSnapshot, proxycfg.CancelFunc, error) { + // If the service is registered to the local agent, use the LocalConfigSource + // rather than trying to configure it from the catalog. + if nodeName == m.NodeName && m.LocalState.ServiceExists(serviceID) { + return m.LocalConfigSource.Watch(serviceID, nodeName, token) + } + + proxyID := proxycfg.ProxyID{ + ServiceID: serviceID, + NodeName: nodeName, + Token: token, + } + + // Start the watch on the real proxycfg Manager. + snapCh, cancelWatch := m.Manager.Watch(proxyID) + + // Wrap the cancelWatch function with our bookkeeping. m.mu must be held when calling. + var cancelOnce sync.Once + cancel := func() { + cancelOnce.Do(func() { + cancelWatch() + m.cleanup(proxyID) + }) + } + + m.mu.Lock() + defer m.mu.Unlock() + + w, ok := m.watches[proxyID] + if ok { + w.numWatchers++ + } else { + w = &watch{closeCh: make(chan chan struct{}), numWatchers: 1} + m.watches[proxyID] = w + + if err := m.startSync(w.closeCh, proxyID); err != nil { + delete(m.watches, proxyID) + cancelWatch() + return nil, nil, err + } + } + + return snapCh, cancel, nil +} + +func (m *ConfigSource) Shutdown() { + close(m.shutdownCh) +} + +// startSync fetches a service from the state store's catalog tables and +// registers it with the proxycfg Manager. It spawns a goroutine to watch +// and re-register the service whenever it changes - this goroutine will +// run until a signal is sent on closeCh (at which point the service will +// be deregistered). +// +// If the first attempt to fetch and register the service fails, startSync +// will return an error (and no goroutine will be started). +func (m *ConfigSource) startSync(closeCh <-chan chan struct{}, proxyID proxycfg.ProxyID) error { + logger := m.Logger.With( + "proxy_service_id", proxyID.ServiceID.String(), + "node", proxyID.NodeName, + ) + + logger.Trace("syncing catalog service") + + fetchAndRegister := func() (memdb.WatchSet, error) { + store := m.GetStore() + ws := memdb.NewWatchSet() + + // Add the store's AbandonCh to the WatchSet so that if the store is abandoned + // during a snapshot restore we'll unblock and re-register the service. + ws.Add(store.AbandonCh()) + + _, ns, err := store.NodeService(ws, proxyID.NodeName, proxyID.ID, &proxyID.EnterpriseMeta, structs.DefaultPeerKeyword) + + switch { + case err != nil: + logger.Error("failed to read service from state store", "error", err.Error()) + return nil, err + case ns == nil: + m.Manager.Deregister(proxyID, source) + logger.Trace("service does not exist in catalog, de-registering it with proxycfg manager") + return nil, err + case !ns.Kind.IsProxy(): + err := errors.New("service must be a sidecar proxy or gateway") + logger.Error(err.Error()) + return nil, err + default: + err := m.Manager.Register(proxyID, ns, source, proxyID.Token, false) + if err != nil { + logger.Error("failed to register service", "error", err.Error()) + return nil, err + } + return ws, nil + } + } + + syncLoop := func(ws memdb.WatchSet) { + for { + select { + case <-ws.WatchCh(context.Background()): + // Something changed, unblock and re-run the query. + case doneCh := <-closeCh: + // All watchers of this service (xDS streams) have gone away, so it's time + // to free its resources. + // + // TODO(agentless): we should probably wait for a short grace period before + // de-registering the service to allow clients to reconnect after a network + // blip. + logger.Trace("de-registering service with proxycfg manager because all watchers have gone away") + m.Manager.Deregister(proxyID, source) + close(doneCh) + return + case <-m.shutdownCh: + // Manager is shutting down, stop the goroutine. + return + } + + var err error + ws, err = fetchAndRegister() + if err != nil { + return + } + } + } + + ws, err := fetchAndRegister() + if err != nil { + // Currently, only the first attempt's error is returned to the xDS server, + // which terminates the stream immediately. + // + // We don't (yet) have a way to surface subsequent errors to the xDS server. + // + // We could wrap ConfigSnapshot in a sum type (i.e. a struct that contains + // either a snapshot or an error) but given the relative unlikelihood of a + // query that succeeds once failing in the future, it doesn't seem worth it. + // + // Instead, we log the error and leave any watchers hanging. Perhaps another + // solution would be to close any watch channels when de-registering a service? + return err + } + go syncLoop(ws) + + return nil +} + +// cleanup decrements the watchers counter for the given proxy, and if it has +// reached zero, stops the sync goroutine (and de-registers the service). +func (m *ConfigSource) cleanup(id proxycfg.ProxyID) { + m.mu.Lock() + defer m.mu.Unlock() + + h := m.watches[id] + h.numWatchers-- + + if h.numWatchers == 0 { + // We wait for doneCh to be closed by the sync goroutine, so that the lock is + // held until after the service is de-registered - this prevents a potential + // race where another sync goroutine is started for the service and we undo + // its call to register the service. + // + // This cannot deadlock because closeCh is unbuffered. Sending will only + // succeed if the sync goroutine is ready to receive (which always closes + // doneCh). + doneCh := make(chan struct{}) + select { + case h.closeCh <- doneCh: + <-doneCh + case <-m.shutdownCh: + // ConfigSource is shutting down, so the goroutine will be stopped anyway. + } + + delete(m.watches, id) + } +} + +type Config struct { + // NodeName is the name of the local agent node. + NodeName string + + // Manager is the proxycfg Manager with which proxy services will be registered. + Manager ConfigManager + + // State is the agent's local state that will be used to check if a proxy is + // registered locally. + LocalState *local.State + + // LocalConfigSource is used to configure proxies registered in the agent's + // local state. + LocalConfigSource Watcher + + // GetStore is used to access the server's state store. + GetStore func() Store + + // Logger will be used to write log messages. + Logger hclog.Logger +} + +//go:generate mockery --name ConfigManager --inpackage +type ConfigManager interface { + Watch(req proxycfg.ProxyID) (<-chan *proxycfg.ConfigSnapshot, proxycfg.CancelFunc) + Register(proxyID proxycfg.ProxyID, service *structs.NodeService, source proxycfg.ProxySource, token string, overwrite bool) error + Deregister(proxyID proxycfg.ProxyID, source proxycfg.ProxySource) +} + +type Store interface { + NodeService(ws memdb.WatchSet, nodeName string, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.NodeService, error) + AbandonCh() <-chan struct{} +} + +//go:generate mockery --name Watcher --inpackage +type Watcher interface { + Watch(proxyID structs.ServiceID, nodeName string, token string) (<-chan *proxycfg.ConfigSnapshot, proxycfg.CancelFunc, error) +} diff --git a/agent/proxycfg-sources/catalog/config_source_test.go b/agent/proxycfg-sources/catalog/config_source_test.go new file mode 100644 index 0000000000..dffb0c2e57 --- /dev/null +++ b/agent/proxycfg-sources/catalog/config_source_test.go @@ -0,0 +1,266 @@ +package catalog + +import ( + "errors" + "testing" + "time" + + "github.com/hashicorp/go-hclog" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + + "github.com/hashicorp/consul/agent/consul/state" + "github.com/hashicorp/consul/agent/consul/stream" + "github.com/hashicorp/consul/agent/local" + "github.com/hashicorp/consul/agent/proxycfg" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/agent/token" +) + +func TestConfigSource_Success(t *testing.T) { + serviceID := structs.NewServiceID("web-sidecar-proxy-1", nil) + nodeName := "node-name" + token := "token" + + store := testStateStore(t) + + // Register the proxy in the catalog/state store at port 9999. + require.NoError(t, store.EnsureRegistration(0, &structs.RegisterRequest{ + Node: nodeName, + Service: &structs.NodeService{ + ID: serviceID.ID, + Service: "web-sidecar-proxy", + Port: 9999, + Kind: structs.ServiceKindConnectProxy, + }, + })) + + // testConfigManager builds a ConfigManager that emits a ConfigSnapshot whenever + // Register is called, and closes the watch channel when Deregister is called. + // + // Though a little odd, this allows us to make assertions on the sync goroutine's + // behavior without sleeping which leads to slow/racy tests. + cfgMgr := testConfigManager(t, serviceID, nodeName, token) + + mgr := NewConfigSource(Config{ + Manager: cfgMgr, + LocalState: testLocalState(t), + Logger: hclog.NewNullLogger(), + GetStore: func() Store { return store }, + }) + t.Cleanup(mgr.Shutdown) + + snapCh, cancelWatch1, err := mgr.Watch(serviceID, nodeName, token) + require.NoError(t, err) + + // Expect Register to have been called with the proxy's inital port. + select { + case snap := <-snapCh: + require.Equal(t, 9999, snap.Port) + require.Equal(t, token, snap.ProxyID.Token) + case <-time.After(100 * time.Millisecond): + t.Fatal("timeout waiting for snapshot") + } + + // Update the proxy's port to 8888. + require.NoError(t, store.EnsureRegistration(0, &structs.RegisterRequest{ + Node: nodeName, + Service: &structs.NodeService{ + ID: serviceID.ID, + Service: "web-sidecar-proxy", + Port: 8888, + Kind: structs.ServiceKindConnectProxy, + }, + })) + + // Expect Register to have been called again with the proxy's new port. + select { + case snap := <-snapCh: + require.Equal(t, 8888, snap.Port) + case <-time.After(100 * time.Millisecond): + t.Fatal("timeout waiting for snapshot") + } + + // Start another watch. + _, cancelWatch2, err := mgr.Watch(serviceID, nodeName, token) + require.NoError(t, err) + + // Expect the service to have not been re-registered by the second watch. + select { + case <-snapCh: + t.Fatal("service shouldn't have been re-registered") + case <-time.After(100 * time.Millisecond): + } + + // Expect cancelling the first watch to *not* de-register the service. + cancelWatch1() + select { + case <-snapCh: + t.Fatal("service shouldn't have been de-registered until other watch went away") + case <-time.After(100 * time.Millisecond): + } + + // Expect cancelling the other watch to de-register the service. + cancelWatch2() + select { + case _, ok := <-snapCh: + require.False(t, ok, "channel should've been closed") + case <-time.After(100 * time.Millisecond): + t.Fatal("timeout waiting for service to be de-registered") + } +} + +func TestConfigSource_LocallyManagedService(t *testing.T) { + serviceID := structs.NewServiceID("web-sidecar-proxy-1", nil) + nodeName := "node-1" + token := "token" + + localState := testLocalState(t) + localState.AddService(&structs.NodeService{ID: serviceID.ID}, "") + + localWatcher := NewMockWatcher(t) + localWatcher.On("Watch", serviceID, nodeName, token). + Return(make(<-chan *proxycfg.ConfigSnapshot), proxycfg.CancelFunc(func() {}), nil) + + mgr := NewConfigSource(Config{ + NodeName: nodeName, + LocalState: localState, + LocalConfigSource: localWatcher, + Logger: hclog.NewNullLogger(), + GetStore: func() Store { panic("state store shouldn't have been used") }, + }) + t.Cleanup(mgr.Shutdown) + + _, _, err := mgr.Watch(serviceID, nodeName, token) + require.NoError(t, err) +} + +func TestConfigSource_ErrorRegisteringService(t *testing.T) { + serviceID := structs.NewServiceID("web-sidecar-proxy-1", nil) + nodeName := "node-name" + token := "token" + + store := testStateStore(t) + + require.NoError(t, store.EnsureRegistration(0, &structs.RegisterRequest{ + Node: nodeName, + Service: &structs.NodeService{ + ID: serviceID.ID, + Service: "web-sidecar-proxy", + Port: 9999, + Kind: structs.ServiceKindConnectProxy, + }, + })) + + var canceledWatch bool + cancel := proxycfg.CancelFunc(func() { canceledWatch = true }) + + cfgMgr := NewMockConfigManager(t) + + cfgMgr.On("Watch", mock.Anything). + Return(make(<-chan *proxycfg.ConfigSnapshot), cancel) + + cfgMgr.On("Register", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). + Return(errors.New("KABOOM")) + + mgr := NewConfigSource(Config{ + Manager: cfgMgr, + LocalState: testLocalState(t), + Logger: hclog.NewNullLogger(), + GetStore: func() Store { return store }, + }) + t.Cleanup(mgr.Shutdown) + + _, _, err := mgr.Watch(serviceID, nodeName, token) + require.Error(t, err) + require.True(t, canceledWatch, "watch should've been canceled") +} + +func TestConfigSource_NotProxyService(t *testing.T) { + serviceID := structs.NewServiceID("web", nil) + nodeName := "node-name" + token := "token" + + store := testStateStore(t) + + require.NoError(t, store.EnsureRegistration(0, &structs.RegisterRequest{ + Node: nodeName, + Service: &structs.NodeService{ + ID: serviceID.ID, + Service: "web", + Port: 9999, + Kind: structs.ServiceKindTypical, + }, + })) + + var canceledWatch bool + cancel := proxycfg.CancelFunc(func() { canceledWatch = true }) + + cfgMgr := NewMockConfigManager(t) + + cfgMgr.On("Watch", mock.Anything). + Return(make(<-chan *proxycfg.ConfigSnapshot), cancel) + + mgr := NewConfigSource(Config{ + Manager: cfgMgr, + LocalState: testLocalState(t), + Logger: hclog.NewNullLogger(), + GetStore: func() Store { return store }, + }) + t.Cleanup(mgr.Shutdown) + + _, _, err := mgr.Watch(serviceID, nodeName, token) + require.Error(t, err) + require.Contains(t, err.Error(), "must be a sidecar proxy or gateway") + require.True(t, canceledWatch, "watch should've been canceled") +} + +func testConfigManager(t *testing.T, serviceID structs.ServiceID, nodeName string, token string) ConfigManager { + t.Helper() + + cfgMgr := NewMockConfigManager(t) + + proxyID := proxycfg.ProxyID{ + ServiceID: serviceID, + NodeName: nodeName, + Token: token, + } + + snapCh := make(chan *proxycfg.ConfigSnapshot, 1) + cfgMgr.On("Watch", proxyID). + Return((<-chan *proxycfg.ConfigSnapshot)(snapCh), proxycfg.CancelFunc(func() {}), nil) + + cfgMgr.On("Register", mock.Anything, mock.Anything, source, token, false). + Run(func(args mock.Arguments) { + id := args.Get(0).(proxycfg.ProxyID) + ns := args.Get(1).(*structs.NodeService) + + snapCh <- &proxycfg.ConfigSnapshot{ + ProxyID: id, + Port: ns.Port, + } + }). + Return(nil) + + cfgMgr.On("Deregister", proxyID, source). + Run(func(mock.Arguments) { close(snapCh) }). + Return() + + return cfgMgr +} + +func testStateStore(t *testing.T) *state.Store { + t.Helper() + + gc, err := state.NewTombstoneGC(time.Second, time.Millisecond) + require.NoError(t, err) + return state.NewStateStoreWithEventPublisher(gc, stream.NoOpEventPublisher{}) +} + +func testLocalState(t *testing.T) *local.State { + t.Helper() + + l := local.NewState(local.Config{}, hclog.NewNullLogger(), &token.Store{}) + l.TriggerSyncChanges = func() {} + return l +} diff --git a/agent/proxycfg-sources/catalog/mock_ConfigManager.go b/agent/proxycfg-sources/catalog/mock_ConfigManager.go new file mode 100644 index 0000000000..047b61c878 --- /dev/null +++ b/agent/proxycfg-sources/catalog/mock_ConfigManager.go @@ -0,0 +1,71 @@ +// Code generated by mockery v2.12.0. DO NOT EDIT. + +package catalog + +import ( + proxycfg "github.com/hashicorp/consul/agent/proxycfg" + mock "github.com/stretchr/testify/mock" + + structs "github.com/hashicorp/consul/agent/structs" + + testing "testing" +) + +// MockConfigManager is an autogenerated mock type for the ConfigManager type +type MockConfigManager struct { + mock.Mock +} + +// Deregister provides a mock function with given fields: proxyID, source +func (_m *MockConfigManager) Deregister(proxyID proxycfg.ProxyID, source proxycfg.ProxySource) { + _m.Called(proxyID, source) +} + +// Register provides a mock function with given fields: proxyID, service, source, token, overwrite +func (_m *MockConfigManager) Register(proxyID proxycfg.ProxyID, service *structs.NodeService, source proxycfg.ProxySource, token string, overwrite bool) error { + ret := _m.Called(proxyID, service, source, token, overwrite) + + var r0 error + if rf, ok := ret.Get(0).(func(proxycfg.ProxyID, *structs.NodeService, proxycfg.ProxySource, string, bool) error); ok { + r0 = rf(proxyID, service, source, token, overwrite) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// Watch provides a mock function with given fields: req +func (_m *MockConfigManager) Watch(req proxycfg.ProxyID) (<-chan *proxycfg.ConfigSnapshot, proxycfg.CancelFunc) { + ret := _m.Called(req) + + var r0 <-chan *proxycfg.ConfigSnapshot + if rf, ok := ret.Get(0).(func(proxycfg.ProxyID) <-chan *proxycfg.ConfigSnapshot); ok { + r0 = rf(req) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(<-chan *proxycfg.ConfigSnapshot) + } + } + + var r1 proxycfg.CancelFunc + if rf, ok := ret.Get(1).(func(proxycfg.ProxyID) proxycfg.CancelFunc); ok { + r1 = rf(req) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(proxycfg.CancelFunc) + } + } + + return r0, r1 +} + +// NewMockConfigManager creates a new instance of MockConfigManager. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. +func NewMockConfigManager(t testing.TB) *MockConfigManager { + mock := &MockConfigManager{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/agent/proxycfg-sources/catalog/mock_Watcher.go b/agent/proxycfg-sources/catalog/mock_Watcher.go new file mode 100644 index 0000000000..193b7d844f --- /dev/null +++ b/agent/proxycfg-sources/catalog/mock_Watcher.go @@ -0,0 +1,59 @@ +// Code generated by mockery v2.12.0. DO NOT EDIT. + +package catalog + +import ( + proxycfg "github.com/hashicorp/consul/agent/proxycfg" + mock "github.com/stretchr/testify/mock" + + structs "github.com/hashicorp/consul/agent/structs" + + testing "testing" +) + +// MockWatcher is an autogenerated mock type for the Watcher type +type MockWatcher struct { + mock.Mock +} + +// Watch provides a mock function with given fields: proxyID, nodeName, token +func (_m *MockWatcher) Watch(proxyID structs.ServiceID, nodeName string, token string) (<-chan *proxycfg.ConfigSnapshot, proxycfg.CancelFunc, error) { + ret := _m.Called(proxyID, nodeName, token) + + var r0 <-chan *proxycfg.ConfigSnapshot + if rf, ok := ret.Get(0).(func(structs.ServiceID, string, string) <-chan *proxycfg.ConfigSnapshot); ok { + r0 = rf(proxyID, nodeName, token) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(<-chan *proxycfg.ConfigSnapshot) + } + } + + var r1 proxycfg.CancelFunc + if rf, ok := ret.Get(1).(func(structs.ServiceID, string, string) proxycfg.CancelFunc); ok { + r1 = rf(proxyID, nodeName, token) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(proxycfg.CancelFunc) + } + } + + var r2 error + if rf, ok := ret.Get(2).(func(structs.ServiceID, string, string) error); ok { + r2 = rf(proxyID, nodeName, token) + } else { + r2 = ret.Error(2) + } + + return r0, r1, r2 +} + +// NewMockWatcher creates a new instance of MockWatcher. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. +func NewMockWatcher(t testing.TB) *MockWatcher { + mock := &MockWatcher{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/agent/proxycfg-sources/local/config_source.go b/agent/proxycfg-sources/local/config_source.go new file mode 100644 index 0000000000..b23316d536 --- /dev/null +++ b/agent/proxycfg-sources/local/config_source.go @@ -0,0 +1,31 @@ +package local + +import ( + "github.com/hashicorp/consul/agent/proxycfg" + structs "github.com/hashicorp/consul/agent/structs" +) + +// ConfigSource wraps a proxycfg.Manager to create watches on services +// local to the agent (pre-registered by Sync). +type ConfigSource struct { + manager ConfigManager +} + +// NewConfigSource builds a ConfigSource with the given proxycfg.Manager. +func NewConfigSource(cfgMgr ConfigManager) *ConfigSource { + return &ConfigSource{cfgMgr} +} + +func (m *ConfigSource) Watch(serviceID structs.ServiceID, nodeName string, _ string) (<-chan *proxycfg.ConfigSnapshot, proxycfg.CancelFunc, error) { + watchCh, cancelWatch := m.manager.Watch(proxycfg.ProxyID{ + ServiceID: serviceID, + NodeName: nodeName, + + // Note: we *intentionally* don't set Token here. All watches on local + // services use the same ACL token, regardless of whatever token is + // presented in the xDS stream (the token presented to the xDS server + // is checked before the watch is created). + Token: "", + }) + return watchCh, cancelWatch, nil +} diff --git a/agent/proxycfg-sources/local/local.go b/agent/proxycfg-sources/local/local.go new file mode 100644 index 0000000000..2cdc287516 --- /dev/null +++ b/agent/proxycfg-sources/local/local.go @@ -0,0 +1,2 @@ +// Package local integrates the proxycfg Manager with the agent's local state. +package local diff --git a/agent/proxycfg-sources/local/mock_ConfigManager.go b/agent/proxycfg-sources/local/mock_ConfigManager.go new file mode 100644 index 0000000000..0f77ce0651 --- /dev/null +++ b/agent/proxycfg-sources/local/mock_ConfigManager.go @@ -0,0 +1,87 @@ +// Code generated by mockery v2.12.0. DO NOT EDIT. + +package local + +import ( + proxycfg "github.com/hashicorp/consul/agent/proxycfg" + mock "github.com/stretchr/testify/mock" + + structs "github.com/hashicorp/consul/agent/structs" + + testing "testing" +) + +// MockConfigManager is an autogenerated mock type for the ConfigManager type +type MockConfigManager struct { + mock.Mock +} + +// Deregister provides a mock function with given fields: proxyID, source +func (_m *MockConfigManager) Deregister(proxyID proxycfg.ProxyID, source proxycfg.ProxySource) { + _m.Called(proxyID, source) +} + +// Register provides a mock function with given fields: proxyID, service, source, token, overwrite +func (_m *MockConfigManager) Register(proxyID proxycfg.ProxyID, service *structs.NodeService, source proxycfg.ProxySource, token string, overwrite bool) error { + ret := _m.Called(proxyID, service, source, token, overwrite) + + var r0 error + if rf, ok := ret.Get(0).(func(proxycfg.ProxyID, *structs.NodeService, proxycfg.ProxySource, string, bool) error); ok { + r0 = rf(proxyID, service, source, token, overwrite) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// RegisteredProxies provides a mock function with given fields: source +func (_m *MockConfigManager) RegisteredProxies(source proxycfg.ProxySource) []proxycfg.ProxyID { + ret := _m.Called(source) + + var r0 []proxycfg.ProxyID + if rf, ok := ret.Get(0).(func(proxycfg.ProxySource) []proxycfg.ProxyID); ok { + r0 = rf(source) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]proxycfg.ProxyID) + } + } + + return r0 +} + +// Watch provides a mock function with given fields: id +func (_m *MockConfigManager) Watch(id proxycfg.ProxyID) (<-chan *proxycfg.ConfigSnapshot, proxycfg.CancelFunc) { + ret := _m.Called(id) + + var r0 <-chan *proxycfg.ConfigSnapshot + if rf, ok := ret.Get(0).(func(proxycfg.ProxyID) <-chan *proxycfg.ConfigSnapshot); ok { + r0 = rf(id) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(<-chan *proxycfg.ConfigSnapshot) + } + } + + var r1 proxycfg.CancelFunc + if rf, ok := ret.Get(1).(func(proxycfg.ProxyID) proxycfg.CancelFunc); ok { + r1 = rf(id) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(proxycfg.CancelFunc) + } + } + + return r0, r1 +} + +// NewMockConfigManager creates a new instance of MockConfigManager. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. +func NewMockConfigManager(t testing.TB) *MockConfigManager { + mock := &MockConfigManager{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/agent/proxycfg-sources/local/sync.go b/agent/proxycfg-sources/local/sync.go new file mode 100644 index 0000000000..c6cee8c61d --- /dev/null +++ b/agent/proxycfg-sources/local/sync.go @@ -0,0 +1,125 @@ +package local + +import ( + "context" + + "github.com/hashicorp/go-hclog" + + "github.com/hashicorp/consul/agent/local" + "github.com/hashicorp/consul/agent/proxycfg" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/agent/token" +) + +const source proxycfg.ProxySource = "local" + +// SyncConfig contains the dependencies required by Sync. +type SyncConfig struct { + // Manager is the proxycfg Manager with which proxy services will be registered. + Manager ConfigManager + + // State is the agent's local state that will be watched for proxy registrations. + State *local.State + + // Tokens is used to retrieve a fallback ACL token if a service is registered + // without one. + Tokens *token.Store + + // NodeName is the name of the local agent node. + NodeName string + + // Logger will be used to write log messages. + Logger hclog.Logger +} + +// Sync watches the agent's local state and registers/deregisters services with +// the proxycfg Manager ahead-of-time so they're ready immediately when a proxy +// begins an xDS stream. +// +// It runs until the given context is canceled, so should be called it its own +// goroutine. +// +// Note: proxy service definitions from the agent's local state will always +// overwrite definitions of the same service from other sources (e.g. the +// catalog). +func Sync(ctx context.Context, cfg SyncConfig) { + // Single item buffer is enough since there is no data transferred so this is + // "level triggering" and we can't miss actual data. + stateCh := make(chan struct{}, 1) + + cfg.State.Notify(stateCh) + defer cfg.State.StopNotify(stateCh) + + for { + sync(cfg) + + select { + case <-stateCh: + // Wait for a state change. + case <-ctx.Done(): + return + } + } +} + +func sync(cfg SyncConfig) { + cfg.Logger.Trace("syncing proxy services from local state") + + services := cfg.State.AllServices() + + // Traverse the local state and ensure all proxy services are registered + for sid, svc := range services { + if !svc.Kind.IsProxy() { + continue + } + + // Retrieve the token used to register the service, or fallback to the + // default user token. This token is expected to match the token used in + // the xDS request for this data. + token := cfg.State.ServiceToken(sid) + if token == "" { + token = cfg.Tokens.UserToken() + } + + id := proxycfg.ProxyID{ + ServiceID: sid, + NodeName: cfg.NodeName, + + // Note: we *intentionally* don't set Token here. All watches on local + // services use the same ACL token, regardless of whatever token is + // presented in the xDS stream (the token presented to the xDS server + // is checked before the watch is created). + Token: "", + } + + // TODO(banks): need to work out when to default some stuff. For example + // Proxy.LocalServicePort is practically necessary for any sidecar and can + // default to the port of the sidecar service, but only if it's already + // registered and once we get past here, we don't have enough context to + // know that so we'd need to set it here if not during registration of the + // proxy service. Sidecar Service in the interim can do that, but we should + // validate more generally that that is always true. + err := cfg.Manager.Register(id, svc, source, token, true) + if err != nil { + cfg.Logger.Error("failed to watch proxy service", + "service", sid.String(), + "error", err, + ) + } + } + + // Now see if any proxies were removed + for _, proxyID := range cfg.Manager.RegisteredProxies(source) { + if _, ok := services[proxyID.ServiceID]; !ok { + cfg.Manager.Deregister(proxyID, source) + } + } +} + +//go:generate mockery --name ConfigManager --inpackage +type ConfigManager interface { + Watch(id proxycfg.ProxyID) (<-chan *proxycfg.ConfigSnapshot, proxycfg.CancelFunc) + Register(proxyID proxycfg.ProxyID, service *structs.NodeService, source proxycfg.ProxySource, token string, overwrite bool) error + Deregister(proxyID proxycfg.ProxyID, source proxycfg.ProxySource) + RegisteredProxies(source proxycfg.ProxySource) []proxycfg.ProxyID +} diff --git a/agent/proxycfg-sources/local/sync_test.go b/agent/proxycfg-sources/local/sync_test.go new file mode 100644 index 0000000000..b73c0e3b3e --- /dev/null +++ b/agent/proxycfg-sources/local/sync_test.go @@ -0,0 +1,111 @@ +package local + +import ( + "context" + "testing" + "time" + + "github.com/hashicorp/go-hclog" + mock "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + + "github.com/hashicorp/consul/agent/local" + "github.com/hashicorp/consul/agent/proxycfg" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/agent/token" +) + +func TestSync(t *testing.T) { + const ( + serviceID = "some-service" + serviceToken = "some-service-token" + otherServiceID = "other-service" + userToken = "user-token" + ) + + tokens := &token.Store{} + tokens.UpdateUserToken(userToken, token.TokenSourceConfig) + + state := local.NewState(local.Config{}, hclog.NewNullLogger(), tokens) + state.TriggerSyncChanges = func() {} + + state.AddService(&structs.NodeService{ + ID: serviceID, + Kind: structs.ServiceKindConnectProxy, + }, serviceToken) + + cfgMgr := NewMockConfigManager(t) + + type registration struct { + id proxycfg.ProxyID + service *structs.NodeService + token string + } + registerCh := make(chan registration) + cfgMgr.On("Register", mock.Anything, mock.Anything, source, mock.Anything, true). + Run(func(args mock.Arguments) { + id := args.Get(0).(proxycfg.ProxyID) + service := args.Get(1).(*structs.NodeService) + token := args.Get(3).(string) + registerCh <- registration{id, service, token} + }). + Return(nil) + + deregisterCh := make(chan proxycfg.ProxyID) + cfgMgr.On("Deregister", mock.Anything, source). + Run(func(args mock.Arguments) { + id := args.Get(0).(proxycfg.ProxyID) + deregisterCh <- id + }). + Return() + + cfgMgr.On("RegisteredProxies", source). + Return([]proxycfg.ProxyID{{ServiceID: structs.ServiceID{ID: otherServiceID}}}). + Once() + + ctx, cancel := context.WithCancel(context.Background()) + t.Cleanup(cancel) + + go Sync(ctx, SyncConfig{ + Manager: cfgMgr, + State: state, + Tokens: tokens, + Logger: hclog.NewNullLogger(), + }) + + // Expect the service in the local state to be registered. + select { + case reg := <-registerCh: + require.Equal(t, serviceID, reg.service.ID) + require.Equal(t, serviceToken, reg.token) + case <-time.After(100 * time.Millisecond): + t.Fatal("timeout waiting for service to be registered") + } + + // Expect the service not in the local state to be de-registered. + select { + case id := <-deregisterCh: + require.Equal(t, otherServiceID, id.ID) + case <-time.After(100 * time.Millisecond): + t.Fatal("timeout waiting for service to be de-registered") + } + + // Update the service (without a token) and expect it to be re-registered (with + // the user token). + cfgMgr.On("RegisteredProxies", source). + Return([]proxycfg.ProxyID{}). + Maybe() + + state.AddService(&structs.NodeService{ + ID: serviceID, + Kind: structs.ServiceKindConnectProxy, + }, "") + + select { + case reg := <-registerCh: + require.Equal(t, serviceID, reg.service.ID) + require.Equal(t, userToken, reg.token) + case <-time.After(100 * time.Millisecond): + t.Fatal("timeout waiting for service to be registered") + } +} diff --git a/agent/proxycfg/connect_proxy.go b/agent/proxycfg/connect_proxy.go index 260e46dcd7..0f62767c6b 100644 --- a/agent/proxycfg/connect_proxy.go +++ b/agent/proxycfg/connect_proxy.go @@ -5,11 +5,9 @@ import ( "fmt" "strings" - "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" - "github.com/hashicorp/consul/agent/configentry" - "github.com/hashicorp/consul/agent/consul/discoverychain" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbpeering" ) type handlerConnectProxy struct { @@ -24,6 +22,8 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e snap.ConnectProxy.WatchedDiscoveryChains = make(map[UpstreamID]context.CancelFunc) snap.ConnectProxy.WatchedUpstreams = make(map[UpstreamID]map[string]context.CancelFunc) snap.ConnectProxy.WatchedUpstreamEndpoints = make(map[UpstreamID]map[string]structs.CheckServiceNodes) + snap.ConnectProxy.WatchedPeerTrustBundles = make(map[string]context.CancelFunc) + snap.ConnectProxy.PeerTrustBundles = make(map[string]*pbpeering.PeeringTrustBundle) snap.ConnectProxy.WatchedGateways = make(map[UpstreamID]map[string]context.CancelFunc) snap.ConnectProxy.WatchedGatewayEndpoints = make(map[UpstreamID]map[string]structs.CheckServiceNodes) snap.ConnectProxy.WatchedServiceChecks = make(map[structs.ServiceID][]structs.CheckType) @@ -31,9 +31,11 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e snap.ConnectProxy.UpstreamConfig = make(map[UpstreamID]*structs.Upstream) snap.ConnectProxy.PassthroughUpstreams = make(map[UpstreamID]map[string]map[string]struct{}) snap.ConnectProxy.PassthroughIndices = make(map[string]indexedTarget) + snap.ConnectProxy.PeerUpstreamEndpoints = make(map[UpstreamID]structs.CheckServiceNodes) + snap.ConnectProxy.PeerUpstreamEndpointsUseHostnames = make(map[UpstreamID]struct{}) // Watch for root changes - err := s.cache.Notify(ctx, cachetype.ConnectCARootName, &structs.DCSpecificRequest{ + err := s.dataSources.CARoots.Notify(ctx, &structs.DCSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Source: *s.source, @@ -42,8 +44,18 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e return snap, err } + err = s.dataSources.TrustBundleList.Notify(ctx, &pbpeering.TrustBundleListByServiceRequest{ + // TODO(peering): Pass ACL token + ServiceName: s.proxyCfg.DestinationServiceName, + Namespace: s.proxyID.NamespaceOrDefault(), + Partition: s.proxyID.PartitionOrDefault(), + }, peeringTrustBundlesWatchID, s.ch) + if err != nil { + return snap, err + } + // Watch the leaf cert - err = s.cache.Notify(ctx, cachetype.ConnectCALeafName, &cachetype.ConnectCALeafRequest{ + err = s.dataSources.LeafCertificate.Notify(ctx, &cachetype.ConnectCALeafRequest{ Datacenter: s.source.Datacenter, Token: s.token, Service: s.proxyCfg.DestinationServiceName, @@ -54,7 +66,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e } // Watch for intention updates - err = s.cache.Notify(ctx, cachetype.IntentionMatchName, &structs.IntentionQueryRequest{ + err = s.dataSources.Intentions.Notify(ctx, &structs.IntentionQueryRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Match: &structs.IntentionQueryMatch{ @@ -73,7 +85,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e } // Get information about the entire service mesh. - err = s.cache.Notify(ctx, cachetype.ConfigEntryName, &structs.ConfigEntryQuery{ + err = s.dataSources.ConfigEntry.Notify(ctx, &structs.ConfigEntryQuery{ Kind: structs.MeshConfig, Name: structs.MeshConfigMesh, Datacenter: s.source.Datacenter, @@ -85,7 +97,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e } // Watch for service check updates - err = s.cache.Notify(ctx, cachetype.ServiceHTTPChecksName, &cachetype.ServiceHTTPChecksRequest{ + err = s.dataSources.HTTPChecks.Notify(ctx, &cachetype.ServiceHTTPChecksRequest{ ServiceID: s.proxyCfg.DestinationServiceID, EnterpriseMeta: s.proxyID.EnterpriseMeta, }, svcChecksWatchIDPrefix+structs.ServiceIDString(s.proxyCfg.DestinationServiceID, &s.proxyID.EnterpriseMeta), s.ch) @@ -95,7 +107,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e if s.proxyCfg.Mode == structs.ProxyModeTransparent { // When in transparent proxy we will infer upstreams from intentions with this source - err := s.cache.Notify(ctx, cachetype.IntentionUpstreamsName, &structs.ServiceSpecificRequest{ + err := s.dataSources.IntentionUpstreams.Notify(ctx, &structs.ServiceSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, ServiceName: s.proxyCfg.DestinationServiceName, @@ -157,7 +169,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e switch u.DestinationType { case structs.UpstreamDestTypePreparedQuery: - err = s.cache.Notify(ctx, cachetype.PreparedQueryName, &structs.PreparedQueryExecuteRequest{ + err = s.dataSources.PreparedQuery.Notify(ctx, &structs.PreparedQueryExecuteRequest{ Datacenter: dc, QueryOptions: structs.QueryOptions{Token: s.token, MaxAge: defaultPreparedQueryPollInterval}, QueryIDOrName: u.DestinationName, @@ -172,32 +184,50 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e fallthrough case "": - // If DestinationPeer is not empty, insert a default discovery chain directly to the snapshot if u.DestinationPeer != "" { - req := discoverychain.CompileRequest{ - ServiceName: u.DestinationName, - EvaluateInNamespace: u.DestinationNamespace, - EvaluateInPartition: u.DestinationPartition, - EvaluateInDatacenter: dc, - EvaluateInTrustDomain: "trustdomain.consul", // TODO(peering): where to evaluate this? - Entries: configentry.NewDiscoveryChainSet(), - } - chain, err := discoverychain.Compile(req) + // NOTE: An upstream that points to a peer by definition will + // only ever watch a single catalog query, so a map key of just + // "UID" is sufficient to cover the peer data watches here. + + s.logger.Trace("initializing watch of peered upstream", "upstream", uid) + + // TODO(peering): We'll need to track a CancelFunc for this + // once the tproxy support lands. + err := s.dataSources.Health.Notify(ctx, &structs.ServiceSpecificRequest{ + PeerName: uid.Peer, + Datacenter: dc, + QueryOptions: structs.QueryOptions{ + Token: s.token, + }, + ServiceName: u.DestinationName, + Connect: true, + // Note that Identifier doesn't type-prefix for service any more as it's + // the default and makes metrics and other things much cleaner. It's + // simpler for us if we have the type to make things unambiguous. + Source: *s.source, + EnterpriseMeta: uid.EnterpriseMeta, + }, upstreamPeerWatchIDPrefix+uid.String(), s.ch) if err != nil { - return snap, fmt.Errorf("error while compiling default discovery chain: %w", err) + return snap, err } - // Directly insert chain and empty function into the discovery chain maps - snap.ConnectProxy.ConfigSnapshotUpstreams.DiscoveryChain[uid] = chain - snap.ConnectProxy.ConfigSnapshotUpstreams.WatchedDiscoveryChains[uid] = func() {} + // Check whether a watch for this peer exists to avoid duplicates. + if _, ok := snap.ConnectProxy.WatchedPeerTrustBundles[uid.Peer]; !ok { + peerCtx, cancel := context.WithCancel(ctx) + if err := s.dataSources.TrustBundle.Notify(peerCtx, &pbpeering.TrustBundleReadRequest{ + Name: uid.Peer, + Partition: uid.PartitionOrDefault(), + }, peerTrustBundleIDPrefix+uid.Peer, s.ch); err != nil { + cancel() + return snap, fmt.Errorf("error while watching trust bundle for peer %q: %w", uid.Peer, err) + } - if err := (*handlerUpstreams)(s).resetWatchesFromChain(ctx, uid, chain, &snap.ConnectProxy.ConfigSnapshotUpstreams); err != nil { - return snap, fmt.Errorf("error while resetting watches from chain: %w", err) + snap.ConnectProxy.WatchedPeerTrustBundles[uid.Peer] = cancel } - return snap, nil + continue } - err = s.cache.Notify(ctx, cachetype.CompiledDiscoveryChainName, &structs.DiscoveryChainRequest{ + err = s.dataSources.CompiledDiscoveryChain.Notify(ctx, &structs.DiscoveryChainRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Name: u.DestinationName, @@ -220,7 +250,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e return snap, nil } -func (s *handlerConnectProxy) handleUpdate(ctx context.Context, u cache.UpdateEvent, snap *ConfigSnapshot) error { +func (s *handlerConnectProxy) handleUpdate(ctx context.Context, u UpdateEvent, snap *ConfigSnapshot) error { if u.Err != nil { return fmt.Errorf("error filling agent cache: %v", u.Err) } @@ -232,6 +262,27 @@ func (s *handlerConnectProxy) handleUpdate(ctx context.Context, u cache.UpdateEv return fmt.Errorf("invalid type for response: %T", u.Result) } snap.Roots = roots + + case strings.HasPrefix(u.CorrelationID, peerTrustBundleIDPrefix): + resp, ok := u.Result.(*pbpeering.TrustBundleReadResponse) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + peer := strings.TrimPrefix(u.CorrelationID, peerTrustBundleIDPrefix) + if resp.Bundle != nil { + snap.ConnectProxy.PeerTrustBundles[peer] = resp.Bundle + } + + case u.CorrelationID == peeringTrustBundlesWatchID: + resp, ok := u.Result.(*pbpeering.TrustBundleListByServiceResponse) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + if len(resp.Bundles) > 0 { + snap.ConnectProxy.PeeringTrustBundles = resp.Bundles + } + snap.ConnectProxy.PeeringTrustBundlesSet = true + case u.CorrelationID == intentionsWatchID: resp, ok := u.Result.(*structs.IndexedIntentionMatches) if !ok { diff --git a/agent/proxycfg/data_sources.go b/agent/proxycfg/data_sources.go new file mode 100644 index 0000000000..5e2da0ad26 --- /dev/null +++ b/agent/proxycfg/data_sources.go @@ -0,0 +1,207 @@ +package proxycfg + +import ( + "context" + + cachetype "github.com/hashicorp/consul/agent/cache-types" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbpeering" +) + +// UpdateEvent contains new data for a resource we are subscribed to (e.g. an +// agent cache entry). +type UpdateEvent struct { + CorrelationID string + Result interface{} + Err error +} + +// DataSources contains the dependencies used to consume data used to configure +// proxies. +type DataSources struct { + // CARoots provides updates about the CA root certificates on a notification + // channel. + CARoots CARoots + + // CompiledDiscoveryChain provides updates about a service's discovery chain + // on a notification channel. + CompiledDiscoveryChain CompiledDiscoveryChain + + // ConfigEntry provides updates about a single config entry on a notification + // channel. + ConfigEntry ConfigEntry + + // ConfigEntryList provides updates about a list of config entries on a + // notification channel. + ConfigEntryList ConfigEntryList + + // Datacenters provides updates about federated datacenters on a notification + // channel. + Datacenters Datacenters + + // FederationStateListMeshGateways is the interface used to consume updates + // about mesh gateways from the federation state. + FederationStateListMeshGateways FederationStateListMeshGateways + + // GatewayServices provides updates about a gateway's upstream services on a + // notification channel. + GatewayServices GatewayServices + + // Health provides service health updates on a notification channel. + Health Health + + // HTTPChecks provides updates about a service's HTTP and gRPC checks on a + // notification channel. + HTTPChecks HTTPChecks + + // Intentions provides intention updates on a notification channel. + Intentions Intentions + + // IntentionUpstreams provides intention-inferred upstream updates on a + // notification channel. + IntentionUpstreams IntentionUpstreams + + // InternalServiceDump provides updates about a (gateway) service on a + // notification channel. + InternalServiceDump InternalServiceDump + + // LeafCertificate provides updates about the service's leaf certificate on a + // notification channel. + LeafCertificate LeafCertificate + + // PreparedQuery provides updates about the results of a prepared query. + PreparedQuery PreparedQuery + + // ResolvedServiceConfig provides updates about a service's resolved config. + ResolvedServiceConfig ResolvedServiceConfig + + // ServiceList provides updates about the list of all services in a datacenter + // on a notification channel. + ServiceList ServiceList + + // TrustBundle provides updates about the trust bundle for a single peer. + TrustBundle TrustBundle + + // TrustBundleList provides updates about the list of trust bundles for + // peered clusters that the given proxy is exported to. + TrustBundleList TrustBundleList + + // ExportedPeeredServices provides updates about the list of all exported + // services in a datacenter on a notification channel. + ExportedPeeredServices ExportedPeeredServices + + DataSourcesEnterprise +} + +// CARoots is the interface used to consume updates about the CA root +// certificates. +type CARoots interface { + Notify(ctx context.Context, req *structs.DCSpecificRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// CompiledDiscoveryChain is the interface used to consume updates about the +// compiled discovery chain for a service. +type CompiledDiscoveryChain interface { + Notify(ctx context.Context, req *structs.DiscoveryChainRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// ConfigEntry is the interface used to consume updates about a single config +// entry. +type ConfigEntry interface { + Notify(ctx context.Context, req *structs.ConfigEntryQuery, correlationID string, ch chan<- UpdateEvent) error +} + +// ConfigEntry is the interface used to consume updates about a list of config +// entries. +type ConfigEntryList interface { + Notify(ctx context.Context, req *structs.ConfigEntryQuery, correlationID string, ch chan<- UpdateEvent) error +} + +// Datacenters is the interface used to consume updates about federated +// datacenters. +type Datacenters interface { + Notify(ctx context.Context, req *structs.DatacentersRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// FederationStateListMeshGateways is the interface used to consume updates +// about mesh gateways from the federation state. +type FederationStateListMeshGateways interface { + Notify(ctx context.Context, req *structs.DCSpecificRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// GatewayServices is the interface used to consume updates about a gateway's +// upstream services. +type GatewayServices interface { + Notify(ctx context.Context, req *structs.ServiceSpecificRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// Health is the interface used to consume service health updates. +type Health interface { + Notify(ctx context.Context, req *structs.ServiceSpecificRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// HTTPChecks is the interface used to consume updates about a service's HTTP +// and gRPC-based checks (in order to determine which paths to expose through +// the proxy). +type HTTPChecks interface { + Notify(ctx context.Context, req *cachetype.ServiceHTTPChecksRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// Intentions is the interface used to consume intention updates. +type Intentions interface { + Notify(ctx context.Context, req *structs.IntentionQueryRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// IntentionUpstreams is the interface used to consume updates about upstreams +// inferred from service intentions. +type IntentionUpstreams interface { + Notify(ctx context.Context, req *structs.ServiceSpecificRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// InternalServiceDump is the interface used to consume updates about a (gateway) +// service via the internal ServiceDump RPC. +type InternalServiceDump interface { + Notify(ctx context.Context, req *structs.ServiceDumpRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// LeafCertificate is the interface used to consume updates about a service's +// leaf certificate. +type LeafCertificate interface { + Notify(ctx context.Context, req *cachetype.ConnectCALeafRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// PreparedQuery is the interface used to consume updates about the results of +// a prepared query. +type PreparedQuery interface { + Notify(ctx context.Context, req *structs.PreparedQueryExecuteRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// ResolvedServiceConfig is the interface used to consume updates about a +// service's resolved config. +type ResolvedServiceConfig interface { + Notify(ctx context.Context, req *structs.ServiceConfigRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// ServiceList is the interface used to consume updates about the list of +// all services in a datacenter. +type ServiceList interface { + Notify(ctx context.Context, req *structs.DCSpecificRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// TrustBundle is the interface used to consume updates about a single +// peer's trust bundle. +type TrustBundle interface { + Notify(ctx context.Context, req *pbpeering.TrustBundleReadRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// TrustBundleList is the interface used to consume updates about trust bundles +// for peered clusters that the given proxy is exported to. +type TrustBundleList interface { + Notify(ctx context.Context, req *pbpeering.TrustBundleListByServiceRequest, correlationID string, ch chan<- UpdateEvent) error +} + +// ExportedPeeredServices is the interface used to consume updates about the +// list of all services exported to peers in a datacenter. +type ExportedPeeredServices interface { + Notify(ctx context.Context, req *structs.DCSpecificRequest, correlationID string, ch chan<- UpdateEvent) error +} diff --git a/agent/proxycfg/data_sources_oss.go b/agent/proxycfg/data_sources_oss.go new file mode 100644 index 0000000000..e5e23d1773 --- /dev/null +++ b/agent/proxycfg/data_sources_oss.go @@ -0,0 +1,6 @@ +//go:build !consulent +// +build !consulent + +package proxycfg + +type DataSourcesEnterprise struct{} diff --git a/agent/proxycfg/ingress_gateway.go b/agent/proxycfg/ingress_gateway.go index 311b5ca85b..3fb67ddabc 100644 --- a/agent/proxycfg/ingress_gateway.go +++ b/agent/proxycfg/ingress_gateway.go @@ -4,7 +4,6 @@ import ( "context" "fmt" - "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" "github.com/hashicorp/consul/agent/structs" ) @@ -16,7 +15,7 @@ type handlerIngressGateway struct { func (s *handlerIngressGateway) initialize(ctx context.Context) (ConfigSnapshot, error) { snap := newConfigSnapshotFromServiceInstance(s.serviceInstance, s.stateConfig) // Watch for root changes - err := s.cache.Notify(ctx, cachetype.ConnectCARootName, &structs.DCSpecificRequest{ + err := s.dataSources.CARoots.Notify(ctx, &structs.DCSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Source: *s.source, @@ -26,7 +25,7 @@ func (s *handlerIngressGateway) initialize(ctx context.Context) (ConfigSnapshot, } // Get information about the entire service mesh. - err = s.cache.Notify(ctx, cachetype.ConfigEntryName, &structs.ConfigEntryQuery{ + err = s.dataSources.ConfigEntry.Notify(ctx, &structs.ConfigEntryQuery{ Kind: structs.MeshConfig, Name: structs.MeshConfigMesh, Datacenter: s.source.Datacenter, @@ -38,7 +37,7 @@ func (s *handlerIngressGateway) initialize(ctx context.Context) (ConfigSnapshot, } // Watch this ingress gateway's config entry - err = s.cache.Notify(ctx, cachetype.ConfigEntryName, &structs.ConfigEntryQuery{ + err = s.dataSources.ConfigEntry.Notify(ctx, &structs.ConfigEntryQuery{ Kind: structs.IngressGateway, Name: s.service, Datacenter: s.source.Datacenter, @@ -50,7 +49,7 @@ func (s *handlerIngressGateway) initialize(ctx context.Context) (ConfigSnapshot, } // Watch the ingress-gateway's list of upstreams - err = s.cache.Notify(ctx, cachetype.GatewayServicesName, &structs.ServiceSpecificRequest{ + err = s.dataSources.GatewayServices.Notify(ctx, &structs.ServiceSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, ServiceName: s.service, @@ -70,7 +69,7 @@ func (s *handlerIngressGateway) initialize(ctx context.Context) (ConfigSnapshot, return snap, nil } -func (s *handlerIngressGateway) handleUpdate(ctx context.Context, u cache.UpdateEvent, snap *ConfigSnapshot) error { +func (s *handlerIngressGateway) handleUpdate(ctx context.Context, u UpdateEvent, snap *ConfigSnapshot) error { if u.Err != nil { return fmt.Errorf("error filling agent cache: %v", u.Err) } @@ -196,7 +195,7 @@ func (s *handlerIngressGateway) watchIngressLeafCert(ctx context.Context, snap * snap.IngressGateway.LeafCertWatchCancel() } ctx, cancel := context.WithCancel(ctx) - err := s.cache.Notify(ctx, cachetype.ConnectCALeafName, &cachetype.ConnectCALeafRequest{ + err := s.dataSources.LeafCertificate.Notify(ctx, &cachetype.ConnectCALeafRequest{ Datacenter: s.source.Datacenter, Token: s.token, Service: s.service, diff --git a/agent/proxycfg/manager.go b/agent/proxycfg/manager.go index d5d102b1ef..3de11b3f8a 100644 --- a/agent/proxycfg/manager.go +++ b/agent/proxycfg/manager.go @@ -6,50 +6,50 @@ import ( "github.com/hashicorp/go-hclog" - "github.com/hashicorp/consul/agent/cache" - "github.com/hashicorp/consul/agent/local" "github.com/hashicorp/consul/agent/structs" - "github.com/hashicorp/consul/agent/token" "github.com/hashicorp/consul/tlsutil" ) -var ( - // ErrStopped is returned from Run if the manager instance has already been - // stopped. - ErrStopped = errors.New("manager stopped") +// ProxyID is a handle on a proxy service instance being tracked by Manager. +type ProxyID struct { + structs.ServiceID - // ErrStarted is returned from Run if the manager instance has already run. - ErrStarted = errors.New("manager was already run") -) + // NodeName identifies the node to which the proxy is registered. + NodeName string + + // Token is used to track watches on the same proxy with different ACL tokens + // separately, to prevent accidental security bugs. + // + // Note: this can be different to the ACL token used for authorization that is + // passed to Register (e.g. agent-local services are registered ahead-of-time + // with a token that may be different to the one presented in the xDS stream). + Token string +} + +// ProxySource identifies where a proxy service tracked by Manager came from, +// such as the agent's local state or the catalog. It's used to prevent sources +// from overwriting each other's registrations. +type ProxySource string // CancelFunc is a type for a returned function that can be called to cancel a // watch. type CancelFunc func() -// Manager is a component that integrates into the agent and manages Connect -// proxy configuration state. This should not be confused with the deprecated -// "managed proxy" concept where the agent supervises the actual proxy process. -// proxycfg.Manager is oblivious to the distinction and manages state for any -// service registered with Kind == connect-proxy. +// Manager provides an API with which proxy services can be registered, and +// coordinates the fetching (and refreshing) of intentions, upstreams, discovery +// chain, certificates etc. // -// The Manager ensures that any Connect proxy registered on the agent has all -// the state it needs cached locally via the agent cache. State includes -// certificates, intentions, and service discovery results for any declared -// upstreams. See package docs for more detail. +// Consumers such as the xDS server can then subscribe to receive snapshots of +// this data whenever it changes. +// +// See package docs for more detail. type Manager struct { ManagerConfig - // stateCh is notified for any service changes in local state. We only use - // this to trigger on _new_ service addition since it has no data and we don't - // want to maintain a full copy of the state in order to diff and figure out - // what changed. Luckily each service has it's own WatchCh so we can figure - // out changes and removals with those efficiently. - stateCh chan struct{} - - mu sync.Mutex - started bool - proxies map[structs.ServiceID]*state - watchers map[structs.ServiceID]map[uint64]chan *ConfigSnapshot + mu sync.Mutex + proxies map[ProxyID]*state + watchers map[ProxyID]map[uint64]chan *ConfigSnapshot + maxWatchID uint64 } // ManagerConfig holds the required external dependencies for a Manager @@ -57,13 +57,9 @@ type Manager struct { // panic. The ManagerConfig is passed by value to NewManager so the passed value // can be mutated safely. type ManagerConfig struct { - // Cache is the agent's cache instance that can be used to retrieve, store and - // monitor state for the proxies. - Cache *cache.Cache - // Health provides service health updates on a notification channel. - Health Health - // state is the agent's local state to be watched for new proxy registrations. - State *local.State + // DataSources contains the dependencies used to consume data used to configure + // proxies. + DataSources DataSources // source describes the current agent's identity, it's used directly for // prepared query discovery but also indirectly as a way to pass current // Datacenter name into other request types that need it. This is sufficient @@ -74,9 +70,6 @@ type ManagerConfig struct { // logger is the agent's logger to be used for logging logs. Logger hclog.Logger TLSConfigurator *tlsutil.Configurator - // Tokens configured on the local agent. Used to look up the agent token if - // a service is registered without a token. - Tokens *token.Store // IntentionDefaultAllow is set by the agent so that we can pass this // information to proxies that need to make intention decisions on their @@ -84,114 +77,50 @@ type ManagerConfig struct { IntentionDefaultAllow bool } -// NewManager constructs a manager from the provided agent cache. +// NewManager constructs a Manager. func NewManager(cfg ManagerConfig) (*Manager, error) { - if cfg.Cache == nil || cfg.State == nil || cfg.Source == nil || - cfg.Logger == nil { + if cfg.Source == nil || cfg.Logger == nil { return nil, errors.New("all ManagerConfig fields must be provided") } m := &Manager{ ManagerConfig: cfg, - // Single item buffer is enough since there is no data transferred so this - // is "level triggering" and we can't miss actual data. - stateCh: make(chan struct{}, 1), - proxies: make(map[structs.ServiceID]*state), - watchers: make(map[structs.ServiceID]map[uint64]chan *ConfigSnapshot), + proxies: make(map[ProxyID]*state), + watchers: make(map[ProxyID]map[uint64]chan *ConfigSnapshot), } return m, nil } -// Run is the long-running method that handles state syncing. It should be run -// in it's own goroutine and will continue until a fatal error is hit or Close -// is called. Run will return an error if it is called more than once, or called -// after Close. -func (m *Manager) Run() error { - m.mu.Lock() - alreadyStarted := m.started - m.started = true - stateCh := m.stateCh - m.mu.Unlock() - - // Protect against multiple Run calls. - if alreadyStarted { - return ErrStarted - } - - // Protect against being run after Close. - if stateCh == nil { - return ErrStopped - } - - // Register for notifications about state changes - m.State.Notify(stateCh) - defer m.State.StopNotify(stateCh) - - for { - m.syncState(m.notifyBroadcast) - - // Wait for a state change - _, ok := <-stateCh - if !ok { - // Stopped - return nil - } - } -} - -// syncState is called whenever the local state notifies a change. It holds the -// lock while finding any new or updated proxies and removing deleted ones. -func (m *Manager) syncState(notifyBroadcast func(ch <-chan ConfigSnapshot)) { +// RegisteredProxies returns a list of the proxies tracked by Manager, filtered +// by source. +func (m *Manager) RegisteredProxies(source ProxySource) []ProxyID { m.mu.Lock() defer m.mu.Unlock() - // Traverse the local state and ensure all proxy services are registered - services := m.State.AllServices() - for sid, svc := range services { - if svc.Kind != structs.ServiceKindConnectProxy && - svc.Kind != structs.ServiceKindTerminatingGateway && - svc.Kind != structs.ServiceKindMeshGateway && - svc.Kind != structs.ServiceKindIngressGateway { + proxies := make([]ProxyID, 0, len(m.proxies)) + for id, state := range m.proxies { + if state.source != source { continue } - // TODO(banks): need to work out when to default some stuff. For example - // Proxy.LocalServicePort is practically necessary for any sidecar and can - // default to the port of the sidecar service, but only if it's already - // registered and once we get past here, we don't have enough context to - // know that so we'd need to set it here if not during registration of the - // proxy service. Sidecar Service in the interim can do that, but we should - // validate more generally that that is always true. - err := m.ensureProxyServiceLocked(svc, notifyBroadcast) - if err != nil { - m.Logger.Error("failed to watch proxy service", - "service", sid.String(), - "error", err, - ) - } - } - - // Now see if any proxies were removed - for proxyID := range m.proxies { - if _, ok := services[proxyID]; !ok { - // Remove them - m.removeProxyServiceLocked(proxyID) - } + proxies = append(proxies, id) } + return proxies } -// ensureProxyServiceLocked adds or changes the proxy to our state. -func (m *Manager) ensureProxyServiceLocked(ns *structs.NodeService, notifyBroadcast func(ch <-chan ConfigSnapshot)) error { - sid := ns.CompoundServiceID() +// Register and start fetching resources for the given proxy service. If the +// given service was already registered by a different source (e.g. we began +// tracking it from the catalog, but then it was registered to the server +// agent locally) the service will be left as-is unless overwrite is true. +func (m *Manager) Register(id ProxyID, ns *structs.NodeService, source ProxySource, token string, overwrite bool) error { + m.mu.Lock() + defer m.mu.Unlock() - // Retrieve the token used to register the service, or fallback to the - // default user token. This token is expected to match the token used in - // the xDS request for this data. - token := m.State.ServiceToken(sid) - if token == "" { - token = m.Tokens.UserToken() - } - - state, ok := m.proxies[sid] + state, ok := m.proxies[id] if ok { + if state.source != source && !overwrite { + // Registered by a different source, leave as-is. + return nil + } + if !state.Changed(ns, token) { // No change return nil @@ -203,9 +132,8 @@ func (m *Manager) ensureProxyServiceLocked(ns *structs.NodeService, notifyBroadc // TODO: move to a function that translates ManagerConfig->stateConfig stateConfig := stateConfig{ - logger: m.Logger.With("service_id", sid.String()), - cache: m.Cache, - health: m.Health, + logger: m.Logger.With("service_id", id.String()), + dataSources: m.DataSources, source: m.Source, dnsConfig: m.DNSConfig, intentionDefaultAllow: m.IntentionDefaultAllow, @@ -215,7 +143,7 @@ func (m *Manager) ensureProxyServiceLocked(ns *structs.NodeService, notifyBroadc } var err error - state, err = newState(ns, token, stateConfig) + state, err = newState(id, ns, source, token, stateConfig) if err != nil { return err } @@ -224,14 +152,40 @@ func (m *Manager) ensureProxyServiceLocked(ns *structs.NodeService, notifyBroadc if err != nil { return err } - m.proxies[sid] = state + m.proxies[id] = state // Start a goroutine that will wait for changes and broadcast them to watchers. - go notifyBroadcast(ch) - + go m.notifyBroadcast(ch) return nil } +// Deregister the given proxy service, but only if it was registered by the same +// source. +func (m *Manager) Deregister(id ProxyID, source ProxySource) { + m.mu.Lock() + defer m.mu.Unlock() + + state, ok := m.proxies[id] + if !ok { + return + } + + if state.source != source { + return + } + + // Closing state will let the goroutine we started in Register finish since + // watch chan is closed. + state.Close() + delete(m.proxies, id) + + // We intentionally leave potential watchers hanging here - there is no new + // config for them and closing their channels might be indistinguishable from + // an error that they should retry. We rely for them to eventually give up + // (because they are in fact not running any more) and so the watches be + // cleaned up naturally. +} + func (m *Manager) notifyBroadcast(ch <-chan ConfigSnapshot) { // Run until ch is closed for snap := range ch { @@ -239,26 +193,6 @@ func (m *Manager) notifyBroadcast(ch <-chan ConfigSnapshot) { } } -// removeProxyService is called when a service deregisters and frees all -// resources for that service. -func (m *Manager) removeProxyServiceLocked(proxyID structs.ServiceID) { - state, ok := m.proxies[proxyID] - if !ok { - return - } - - // Closing state will let the goroutine we started in Ensure finish since - // watch chan is closed. - state.Close() - delete(m.proxies, proxyID) - - // We intentionally leave potential watchers hanging here - there is no new - // config for them and closing their channels might be indistinguishable from - // an error that they should retry. We rely for them to eventually give up - // (because they are in fact not running any more) and so the watches be - // cleaned up naturally. -} - func (m *Manager) notify(snap *ConfigSnapshot) { m.mu.Lock() defer m.mu.Unlock() @@ -314,23 +248,24 @@ OUTER: // will not fail, but no updates will be delivered until the proxy is // registered. If there is already a valid snapshot in memory, it will be // delivered immediately. -func (m *Manager) Watch(proxyID structs.ServiceID) (<-chan *ConfigSnapshot, CancelFunc) { +func (m *Manager) Watch(id ProxyID) (<-chan *ConfigSnapshot, CancelFunc) { m.mu.Lock() defer m.mu.Unlock() // This buffering is crucial otherwise we'd block immediately trying to // deliver the current snapshot below if we already have one. ch := make(chan *ConfigSnapshot, 1) - watchers, ok := m.watchers[proxyID] + watchers, ok := m.watchers[id] if !ok { watchers = make(map[uint64]chan *ConfigSnapshot) } - idx := uint64(len(watchers)) - watchers[idx] = ch - m.watchers[proxyID] = watchers + watchID := m.maxWatchID + m.maxWatchID++ + watchers[watchID] = ch + m.watchers[id] = watchers // Deliver the current snapshot immediately if there is one ready - if state, ok := m.proxies[proxyID]; ok { + if state, ok := m.proxies[id]; ok { if snap := state.CurrentSnapshot(); snap != nil { // We rely on ch being buffered above and that it's not been passed // anywhere so we must be the only writer so this will never block and @@ -342,16 +277,16 @@ func (m *Manager) Watch(proxyID structs.ServiceID) (<-chan *ConfigSnapshot, Canc return ch, func() { m.mu.Lock() defer m.mu.Unlock() - m.closeWatchLocked(proxyID, idx) + m.closeWatchLocked(id, watchID) } } // closeWatchLocked cleans up state related to a single watcher. It assumes the // lock is held. -func (m *Manager) closeWatchLocked(proxyID structs.ServiceID, watchIdx uint64) { +func (m *Manager) closeWatchLocked(proxyID ProxyID, watchID uint64) { if watchers, ok := m.watchers[proxyID]; ok { - if ch, ok := watchers[watchIdx]; ok { - delete(watchers, watchIdx) + if ch, ok := watchers[watchID]; ok { + delete(watchers, watchID) close(ch) if len(watchers) == 0 { delete(m.watchers, proxyID) @@ -365,15 +300,10 @@ func (m *Manager) Close() error { m.mu.Lock() defer m.mu.Unlock() - if m.stateCh != nil { - close(m.stateCh) - m.stateCh = nil - } - // Close all current watchers first for proxyID, watchers := range m.watchers { - for idx := range watchers { - m.closeWatchLocked(proxyID, idx) + for watchID := range watchers { + m.closeWatchLocked(proxyID, watchID) } } diff --git a/agent/proxycfg/manager_test.go b/agent/proxycfg/manager_test.go index 9b62897033..08a54b11bf 100644 --- a/agent/proxycfg/manager_test.go +++ b/agent/proxycfg/manager_test.go @@ -1,28 +1,24 @@ package proxycfg import ( - "context" - "path" "testing" "time" "github.com/mitchellh/copystructure" "github.com/stretchr/testify/require" - "golang.org/x/time/rate" "github.com/hashicorp/consul/acl" - "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/discoverychain" - "github.com/hashicorp/consul/agent/local" - "github.com/hashicorp/consul/agent/rpcclient/health" "github.com/hashicorp/consul/agent/structs" - "github.com/hashicorp/consul/agent/token" "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/proto/pbpeering" "github.com/hashicorp/consul/sdk/testutil" ) +const testSource ProxySource = "test" + func mustCopyProxyConfig(t *testing.T, ns *structs.NodeService) structs.ConnectProxyConfig { cfg, err := copyProxyConfig(ns) require.NoError(t, err) @@ -31,25 +27,22 @@ func mustCopyProxyConfig(t *testing.T, ns *structs.NodeService) structs.ConnectP // assertLastReqArgs verifies that each request type had the correct source // parameters (e.g. Datacenter name) and token. -func assertLastReqArgs(t *testing.T, types *TestCacheTypes, token string, source *structs.QuerySource) { +func assertLastReqArgs(t *testing.T, dataSources *TestDataSources, token string, source *structs.QuerySource) { t.Helper() // Roots needs correct DC and token - rootReq := types.roots.lastReq.Load() - require.IsType(t, rootReq, &structs.DCSpecificRequest{}) - require.Equal(t, token, rootReq.(*structs.DCSpecificRequest).Token) - require.Equal(t, source.Datacenter, rootReq.(*structs.DCSpecificRequest).Datacenter) + rootReq := dataSources.CARoots.LastReq() + require.Equal(t, token, rootReq.Token) + require.Equal(t, source.Datacenter, rootReq.Datacenter) // Leaf needs correct DC and token - leafReq := types.leaf.lastReq.Load() - require.IsType(t, leafReq, &cachetype.ConnectCALeafRequest{}) - require.Equal(t, token, leafReq.(*cachetype.ConnectCALeafRequest).Token) - require.Equal(t, source.Datacenter, leafReq.(*cachetype.ConnectCALeafRequest).Datacenter) + leafReq := dataSources.LeafCertificate.LastReq() + require.Equal(t, token, leafReq.Token) + require.Equal(t, source.Datacenter, leafReq.Datacenter) // Intentions needs correct DC and token - intReq := types.intentions.lastReq.Load() - require.IsType(t, intReq, &structs.IntentionQueryRequest{}) - require.Equal(t, token, intReq.(*structs.IntentionQueryRequest).Token) - require.Equal(t, source.Datacenter, intReq.(*structs.IntentionQueryRequest).Datacenter) + intReq := dataSources.Intentions.LastReq() + require.Equal(t, token, intReq.Token) + require.Equal(t, source.Datacenter, intReq.Datacenter) } func TestManager_BasicLifecycle(t *testing.T) { @@ -125,16 +118,17 @@ func TestManager_BasicLifecycle(t *testing.T) { }, } - rootsCacheKey := testGenCacheKey(&structs.DCSpecificRequest{ + rootsReq := &structs.DCSpecificRequest{ Datacenter: "dc1", QueryOptions: structs.QueryOptions{Token: "my-token"}, - }) - leafCacheKey := testGenCacheKey(&cachetype.ConnectCALeafRequest{ + } + leafReq := &cachetype.ConnectCALeafRequest{ Datacenter: "dc1", Token: "my-token", Service: "web", - }) - intentionCacheKey := testGenCacheKey(&structs.IntentionQueryRequest{ + } + + intentionReq := &structs.IntentionQueryRequest{ Datacenter: "dc1", QueryOptions: structs.QueryOptions{Token: "my-token"}, Match: &structs.IntentionQueryMatch{ @@ -147,16 +141,17 @@ func TestManager_BasicLifecycle(t *testing.T) { }, }, }, - }) - meshCacheKey := testGenCacheKey(&structs.ConfigEntryQuery{ + } + + meshConfigReq := &structs.ConfigEntryQuery{ Datacenter: "dc1", QueryOptions: structs.QueryOptions{Token: "my-token"}, Kind: structs.MeshConfig, Name: structs.MeshConfigMesh, EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }) + } - dbChainCacheKey := testGenCacheKey(&structs.DiscoveryChainRequest{ + dbChainReq := &structs.DiscoveryChainRequest{ Name: "db", EvaluateInDatacenter: "dc1", EvaluateInNamespace: "default", @@ -166,16 +161,16 @@ func TestManager_BasicLifecycle(t *testing.T) { OverrideConnectTimeout: 1 * time.Second, Datacenter: "dc1", QueryOptions: structs.QueryOptions{Token: "my-token"}, - }) + } - dbHealthCacheKey := testGenCacheKey(&structs.ServiceSpecificRequest{ + dbHealthReq := &structs.ServiceSpecificRequest{ Datacenter: "dc1", QueryOptions: structs.QueryOptions{Token: "my-token", Filter: ""}, ServiceName: "db", Connect: true, EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }) - db_v1_HealthCacheKey := testGenCacheKey(&structs.ServiceSpecificRequest{ + } + db_v1_HealthReq := &structs.ServiceSpecificRequest{ Datacenter: "dc1", QueryOptions: structs.QueryOptions{Token: "my-token", Filter: "Service.Meta.version == v1", @@ -183,8 +178,8 @@ func TestManager_BasicLifecycle(t *testing.T) { ServiceName: "db", Connect: true, EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }) - db_v2_HealthCacheKey := testGenCacheKey(&structs.ServiceSpecificRequest{ + } + db_v2_HealthReq := &structs.ServiceSpecificRequest{ Datacenter: "dc1", QueryOptions: structs.QueryOptions{Token: "my-token", Filter: "Service.Meta.version == v2", @@ -192,7 +187,7 @@ func TestManager_BasicLifecycle(t *testing.T) { ServiceName: "db", Connect: true, EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }) + } db := structs.NewServiceName("db", nil) dbUID := NewUpstreamIDFromServiceName(db) @@ -201,19 +196,19 @@ func TestManager_BasicLifecycle(t *testing.T) { tests := []*testcase_BasicLifecycle{ { name: "simple-default-resolver", - setup: func(t *testing.T, types *TestCacheTypes) { + setup: func(t *testing.T, dataSources *TestDataSources) { // Note that we deliberately leave the 'geo-cache' prepared query to time out - types.health.Set(dbHealthCacheKey, &structs.IndexedCheckServiceNodes{ + dataSources.Health.Set(dbHealthReq, &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodes(t, db.Name), }) - types.compiledChain.Set(dbChainCacheKey, &structs.DiscoveryChainResponse{ + dataSources.CompiledDiscoveryChain.Set(dbChainReq, &structs.DiscoveryChainResponse{ Chain: dbDefaultChain(), }) }, expectSnap: &ConfigSnapshot{ Kind: structs.ServiceKindConnectProxy, Service: webProxy.Service, - ProxyID: webProxy.CompoundServiceID(), + ProxyID: ProxyID{ServiceID: webProxy.CompoundServiceID()}, Address: webProxy.Address, Port: webProxy.Port, Proxy: mustCopyProxyConfig(t, webProxy), @@ -227,8 +222,6 @@ func TestManager_BasicLifecycle(t *testing.T) { DiscoveryChain: map[UpstreamID]*structs.CompiledDiscoveryChain{ dbUID: dbDefaultChain(), }, - WatchedDiscoveryChains: map[UpstreamID]context.CancelFunc{}, - WatchedUpstreams: nil, // Clone() clears this out WatchedUpstreamEndpoints: map[UpstreamID]map[string]structs.CheckServiceNodes{ dbUID: { "db.default.default.dc1": TestUpstreamNodes(t, db.Name), @@ -243,8 +236,11 @@ func TestManager_BasicLifecycle(t *testing.T) { NewUpstreamID(&upstreams[1]): &upstreams[1], NewUpstreamID(&upstreams[2]): &upstreams[2], }, - PassthroughUpstreams: map[UpstreamID]map[string]map[string]struct{}{}, - PassthroughIndices: map[string]indexedTarget{}, + PassthroughUpstreams: map[UpstreamID]map[string]map[string]struct{}{}, + PassthroughIndices: map[string]indexedTarget{}, + PeerTrustBundles: map[string]*pbpeering.PeeringTrustBundle{}, + PeerUpstreamEndpoints: map[UpstreamID]structs.CheckServiceNodes{}, + PeerUpstreamEndpointsUseHostnames: map[UpstreamID]struct{}{}, }, PreparedQueryEndpoints: map[UpstreamID]structs.CheckServiceNodes{}, WatchedServiceChecks: map[structs.ServiceID][]structs.CheckType{}, @@ -257,22 +253,22 @@ func TestManager_BasicLifecycle(t *testing.T) { }, { name: "chain-resolver-with-version-split", - setup: func(t *testing.T, types *TestCacheTypes) { + setup: func(t *testing.T, dataSources *TestDataSources) { // Note that we deliberately leave the 'geo-cache' prepared query to time out - types.health.Set(db_v1_HealthCacheKey, &structs.IndexedCheckServiceNodes{ + dataSources.Health.Set(db_v1_HealthReq, &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodes(t, db.Name), }) - types.health.Set(db_v2_HealthCacheKey, &structs.IndexedCheckServiceNodes{ + dataSources.Health.Set(db_v2_HealthReq, &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesAlternate(t), }) - types.compiledChain.Set(dbChainCacheKey, &structs.DiscoveryChainResponse{ + dataSources.CompiledDiscoveryChain.Set(dbChainReq, &structs.DiscoveryChainResponse{ Chain: dbSplitChain(), }) }, expectSnap: &ConfigSnapshot{ Kind: structs.ServiceKindConnectProxy, Service: webProxy.Service, - ProxyID: webProxy.CompoundServiceID(), + ProxyID: ProxyID{ServiceID: webProxy.CompoundServiceID()}, Address: webProxy.Address, Port: webProxy.Port, Proxy: mustCopyProxyConfig(t, webProxy), @@ -286,8 +282,6 @@ func TestManager_BasicLifecycle(t *testing.T) { DiscoveryChain: map[UpstreamID]*structs.CompiledDiscoveryChain{ dbUID: dbSplitChain(), }, - WatchedDiscoveryChains: map[UpstreamID]context.CancelFunc{}, - WatchedUpstreams: nil, // Clone() clears this out WatchedUpstreamEndpoints: map[UpstreamID]map[string]structs.CheckServiceNodes{ dbUID: { "v1.db.default.default.dc1": TestUpstreamNodes(t, db.Name), @@ -303,8 +297,11 @@ func TestManager_BasicLifecycle(t *testing.T) { NewUpstreamID(&upstreams[1]): &upstreams[1], NewUpstreamID(&upstreams[2]): &upstreams[2], }, - PassthroughUpstreams: map[UpstreamID]map[string]map[string]struct{}{}, - PassthroughIndices: map[string]indexedTarget{}, + PassthroughUpstreams: map[UpstreamID]map[string]map[string]struct{}{}, + PassthroughIndices: map[string]indexedTarget{}, + PeerTrustBundles: map[string]*pbpeering.PeeringTrustBundle{}, + PeerUpstreamEndpoints: map[UpstreamID]structs.CheckServiceNodes{}, + PeerUpstreamEndpointsUseHostnames: map[UpstreamID]struct{}{}, }, PreparedQueryEndpoints: map[UpstreamID]structs.CheckServiceNodes{}, WatchedServiceChecks: map[structs.ServiceID][]structs.CheckType{}, @@ -322,28 +319,26 @@ func TestManager_BasicLifecycle(t *testing.T) { require.NotNil(t, tt.setup) require.NotNil(t, tt.expectSnap) - // Use a mocked cache to make life simpler - types := NewTestCacheTypes(t) - // Setup initial values - types.roots.Set(rootsCacheKey, roots) - types.leaf.Set(leafCacheKey, leaf) - types.intentions.Set(intentionCacheKey, TestIntentions()) - types.configEntry.Set(meshCacheKey, &structs.ConfigEntryResponse{Entry: nil}) - tt.setup(t, types) + dataSources := NewTestDataSources() + dataSources.LeafCertificate.Set(leafReq, leaf) + dataSources.CARoots.Set(rootsReq, roots) + dataSources.Intentions.Set(intentionReq, TestIntentions()) + dataSources.ConfigEntry.Set(meshConfigReq, &structs.ConfigEntryResponse{Entry: nil}) + tt.setup(t, dataSources) - expectSnapCopy, err := copystructure.Copy(tt.expectSnap) + expectSnapCopy, err := tt.expectSnap.Clone() require.NoError(t, err) webProxyCopy, err := copystructure.Copy(webProxy) require.NoError(t, err) - testManager_BasicLifecycle(t, types, - rootsCacheKey, leafCacheKey, + testManager_BasicLifecycle(t, + dataSources, + rootsReq, leafReq, roots, webProxyCopy.(*structs.NodeService), - local.Config{}, - expectSnapCopy.(*ConfigSnapshot), + expectSnapCopy, ) }) } @@ -351,53 +346,43 @@ func TestManager_BasicLifecycle(t *testing.T) { type testcase_BasicLifecycle struct { name string - setup func(t *testing.T, types *TestCacheTypes) + setup func(t *testing.T, dataSources *TestDataSources) webProxy *structs.NodeService expectSnap *ConfigSnapshot } func testManager_BasicLifecycle( t *testing.T, - types *TestCacheTypes, - rootsCacheKey, leafCacheKey string, + dataSources *TestDataSources, + rootsReq *structs.DCSpecificRequest, + leafReq *cachetype.ConnectCALeafRequest, roots *structs.IndexedCARoots, webProxy *structs.NodeService, - agentConfig local.Config, expectSnap *ConfigSnapshot, ) { - c := TestCacheWithTypes(t, types) - logger := testutil.Logger(t) - state := local.NewState(agentConfig, logger, &token.Store{}) source := &structs.QuerySource{Datacenter: "dc1"} - // Stub state syncing - state.TriggerSyncChanges = func() {} - // Create manager m, err := NewManager(ManagerConfig{ - Cache: c, - Health: &health.Client{Cache: c, CacheName: cachetype.HealthServicesName}, - State: state, - Source: source, - Logger: logger, + Source: source, + Logger: logger, + DataSources: dataSources.ToDataSources(), }) require.NoError(t, err) - // And run it - go func() { - err := m.Run() - require.NoError(t, err) - }() + webProxyID := ProxyID{ + ServiceID: webProxy.CompoundServiceID(), + } // BEFORE we register, we should be able to get a watch channel - wCh, cancel := m.Watch(webProxy.CompoundServiceID()) + wCh, cancel := m.Watch(webProxyID) defer cancel() // And it should block with nothing sent on it yet assertWatchChanBlocks(t, wCh) - require.NoError(t, state.AddService(webProxy, "my-token")) + require.NoError(t, m.Register(webProxyID, webProxy, testSource, "my-token", false)) // We should see the initial config delivered but not until after the // coalesce timeout @@ -405,35 +390,35 @@ func testManager_BasicLifecycle( assertWatchChanRecvs(t, wCh, expectSnap) require.True(t, time.Since(start) >= coalesceTimeout) - assertLastReqArgs(t, types, "my-token", source) + assertLastReqArgs(t, dataSources, "my-token", source) // Update NodeConfig webProxy.Port = 7777 - require.NoError(t, state.AddService(webProxy, "my-token")) + require.NoError(t, m.Register(webProxyID, webProxy, testSource, "my-token", false)) expectSnap.Port = 7777 assertWatchChanRecvs(t, wCh, expectSnap) // Register a second watcher - wCh2, cancel2 := m.Watch(webProxy.CompoundServiceID()) + wCh2, cancel2 := m.Watch(webProxyID) defer cancel2() // New watcher should immediately receive the current state assertWatchChanRecvs(t, wCh2, expectSnap) // Change token - require.NoError(t, state.AddService(webProxy, "other-token")) + require.NoError(t, m.Register(webProxyID, webProxy, testSource, "other-token", false)) assertWatchChanRecvs(t, wCh, expectSnap) assertWatchChanRecvs(t, wCh2, expectSnap) // This is actually sort of timing dependent - the cache background fetcher // will still be fetching with the old token, but we rely on the fact that our // mock type will have been blocked on those for a while. - assertLastReqArgs(t, types, "other-token", source) + assertLastReqArgs(t, dataSources, "other-token", source) // Update roots newRoots, newLeaf := TestCerts(t) newRoots.Roots = append(newRoots.Roots, roots.Roots...) - types.roots.Set(rootsCacheKey, newRoots) + dataSources.CARoots.Set(rootsReq, newRoots) // Expect new roots in snapshot expectSnap.Roots = newRoots @@ -441,7 +426,7 @@ func testManager_BasicLifecycle( assertWatchChanRecvs(t, wCh2, expectSnap) // Update leaf - types.leaf.Set(leafCacheKey, newLeaf) + dataSources.LeafCertificate.Set(leafReq, newLeaf) // Expect new roots in snapshot expectSnap.ConnectProxy.Leaf = newLeaf @@ -449,7 +434,7 @@ func testManager_BasicLifecycle( assertWatchChanRecvs(t, wCh2, expectSnap) // Remove the proxy - state.RemoveService(webProxy.CompoundServiceID()) + m.Deregister(webProxyID, testSource) // Chan should NOT close assertWatchChanBlocks(t, wCh) @@ -457,7 +442,7 @@ func testManager_BasicLifecycle( // Re-add the proxy with another new port webProxy.Port = 3333 - require.NoError(t, state.AddService(webProxy, "other-token")) + require.NoError(t, m.Register(webProxyID, webProxy, testSource, "other-token", false)) // Same watch chan should be notified again expectSnap.Port = 3333 @@ -509,8 +494,6 @@ func TestManager_deliverLatest(t *testing.T) { // None of these need to do anything to test this method just be valid logger := testutil.Logger(t) cfg := ManagerConfig{ - Cache: cache.New(cache.Options{EntryFetchRate: rate.Inf, EntryFetchMaxBurst: 2}), - State: local.NewState(local.Config{}, logger, &token.Store{}), Source: &structs.QuerySource{ Node: "node1", Datacenter: "dc1", @@ -522,11 +505,11 @@ func TestManager_deliverLatest(t *testing.T) { require.NoError(t, err) snap1 := &ConfigSnapshot{ - ProxyID: structs.NewServiceID("test-proxy", nil), + ProxyID: ProxyID{ServiceID: structs.NewServiceID("test-proxy", nil)}, Port: 1111, } snap2 := &ConfigSnapshot{ - ProxyID: structs.NewServiceID("test-proxy", nil), + ProxyID: ProxyID{ServiceID: structs.NewServiceID("test-proxy", nil)}, Port: 2222, } @@ -565,73 +548,14 @@ func TestManager_deliverLatest(t *testing.T) { require.Equal(t, snap2, <-ch5) } -func testGenCacheKey(req cache.Request) string { - info := req.CacheInfo() - return path.Join(info.Key, info.Datacenter) -} - -func TestManager_SyncState_DefaultToken(t *testing.T) { - types := NewTestCacheTypes(t) - c := TestCacheWithTypes(t, types) - logger := testutil.Logger(t) - tokens := new(token.Store) - tokens.UpdateUserToken("default-token", token.TokenSourceConfig) - - state := local.NewState(local.Config{}, logger, tokens) - state.TriggerSyncChanges = func() {} - - m, err := NewManager(ManagerConfig{ - Cache: c, - Health: &health.Client{Cache: c, CacheName: cachetype.HealthServicesName}, - State: state, - Tokens: tokens, - Source: &structs.QuerySource{Datacenter: "dc1"}, - Logger: logger, - }) - require.NoError(t, err) - defer m.Close() - - srv := &structs.NodeService{ - Kind: structs.ServiceKindConnectProxy, - ID: "web-sidecar-proxy", - Service: "web-sidecar-proxy", - Port: 9999, - Meta: map[string]string{}, - Proxy: structs.ConnectProxyConfig{ - DestinationServiceID: "web", - DestinationServiceName: "web", - LocalServiceAddress: "127.0.0.1", - LocalServicePort: 8080, - Config: map[string]interface{}{ - "foo": "bar", - }, - }, - } - - err = state.AddServiceWithChecks(srv, nil, "") - require.NoError(t, err) - m.syncState(m.notifyBroadcast) - - require.Equal(t, "default-token", m.proxies[srv.CompoundServiceID()].serviceInstance.token) -} - func TestManager_SyncState_No_Notify(t *testing.T) { - types := NewTestCacheTypes(t) - c := TestCacheWithTypes(t, types) + dataSources := NewTestDataSources() logger := testutil.Logger(t) - tokens := new(token.Store) - tokens.UpdateUserToken("default-token", token.TokenSourceConfig) - - state := local.NewState(local.Config{}, logger, tokens) - state.TriggerSyncChanges = func() {} m, err := NewManager(ManagerConfig{ - Cache: c, - Health: &health.Client{Cache: c, CacheName: cachetype.HealthServicesName}, - State: state, - Tokens: tokens, - Source: &structs.QuerySource{Datacenter: "dc1"}, - Logger: logger, + Source: &structs.QuerySource{Datacenter: "dc1"}, + Logger: logger, + DataSources: dataSources.ToDataSources(), }) require.NoError(t, err) defer m.Close() @@ -653,27 +577,21 @@ func TestManager_SyncState_No_Notify(t *testing.T) { }, } - err = state.AddServiceWithChecks(srv, nil, "") - require.NoError(t, err) + proxyID := ProxyID{ + ServiceID: srv.CompoundServiceID(), + } - readEvent := make(chan bool, 1) - snapSent := make(chan bool, 1) + require.NoError(t, m.Register(proxyID, srv, testSource, "", false)) - m.syncState(func(ch <-chan ConfigSnapshot) { - for { - <-readEvent - snap := <-ch - m.notify(&snap) - snapSent <- true - } - }) + watchCh, cancelWatch := m.Watch(proxyID) + t.Cleanup(cancelWatch) // Get the relevant notification Channel, should only have 1 - notifyCH := m.proxies[srv.CompoundServiceID()].ch + notifyCH := m.proxies[proxyID].ch // update the leaf certs roots, issuedCert := TestCerts(t) - notifyCH <- cache.UpdateEvent{ + notifyCH <- UpdateEvent{ CorrelationID: leafWatchID, Result: issuedCert, Err: nil, @@ -681,14 +599,14 @@ func TestManager_SyncState_No_Notify(t *testing.T) { // at this point the snapshot should not be valid and not be sent after := time.After(200 * time.Millisecond) select { - case <-snapSent: + case <-watchCh: t.Fatal("snap should not be valid") case <-after: } // update the root certs - notifyCH <- cache.UpdateEvent{ + notifyCH <- UpdateEvent{ CorrelationID: rootsWatchID, Result: roots, Err: nil, @@ -697,14 +615,14 @@ func TestManager_SyncState_No_Notify(t *testing.T) { // at this point the snapshot should not be valid and not be sent after = time.After(200 * time.Millisecond) select { - case <-snapSent: + case <-watchCh: t.Fatal("snap should not be valid") case <-after: } // update the mesh config entry - notifyCH <- cache.UpdateEvent{ + notifyCH <- UpdateEvent{ CorrelationID: meshConfigEntryID, Result: &structs.ConfigEntryResponse{}, Err: nil, @@ -713,17 +631,14 @@ func TestManager_SyncState_No_Notify(t *testing.T) { // at this point the snapshot should not be valid and not be sent after = time.After(200 * time.Millisecond) select { - case <-snapSent: + case <-watchCh: t.Fatal("snap should not be valid") case <-after: } - // prepare to read a snapshot update as the next update should make the snapshot valid - readEvent <- true - // update the intentions - notifyCH <- cache.UpdateEvent{ + notifyCH <- UpdateEvent{ CorrelationID: intentionsWatchID, Result: &structs.IndexedIntentionMatches{}, Err: nil, @@ -732,40 +647,9 @@ func TestManager_SyncState_No_Notify(t *testing.T) { // at this point we have a valid snapshot after = time.After(500 * time.Millisecond) select { - case <-snapSent: + case <-watchCh: case <-after: t.Fatal("snap should be valid") } - - // send two snapshots back to back without reading them to overflow the snapshot channel and get to the default use case - for i := 0; i < 2; i++ { - time.Sleep(250 * time.Millisecond) - notifyCH <- cache.UpdateEvent{ - CorrelationID: leafWatchID, - Result: issuedCert, - Err: nil, - } - } - - // make sure that we are not receiving any snapshot and wait for the snapshots to be processed - after = time.After(500 * time.Millisecond) - select { - case <-snapSent: - t.Fatal("snap should not be sent") - case <-after: - } - - // now make sure that both snapshots got propagated - for i := 0; i < 2; i++ { - - readEvent <- true - after = time.After(500 * time.Millisecond) - select { - case <-snapSent: - case <-after: - t.Fatal("snap should be valid") - - } - } } diff --git a/agent/proxycfg/mesh_gateway.go b/agent/proxycfg/mesh_gateway.go index 3bcce18e7a..5b59875161 100644 --- a/agent/proxycfg/mesh_gateway.go +++ b/agent/proxycfg/mesh_gateway.go @@ -3,13 +3,15 @@ package proxycfg import ( "context" "fmt" + "sort" "strings" "time" - "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/lib/maps" "github.com/hashicorp/consul/logging" + "github.com/hashicorp/consul/proto/pbpeering" ) type handlerMeshGateway struct { @@ -20,7 +22,7 @@ type handlerMeshGateway struct { func (s *handlerMeshGateway) initialize(ctx context.Context) (ConfigSnapshot, error) { snap := newConfigSnapshotFromServiceInstance(s.serviceInstance, s.stateConfig) // Watch for root changes - err := s.cache.Notify(ctx, cachetype.ConnectCARootName, &structs.DCSpecificRequest{ + err := s.dataSources.CARoots.Notify(ctx, &structs.DCSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Source: *s.source, @@ -29,13 +31,24 @@ func (s *handlerMeshGateway) initialize(ctx context.Context) (ConfigSnapshot, er return snap, err } + // Watch for all peer trust bundles we may need. + err = s.dataSources.TrustBundleList.Notify(ctx, &pbpeering.TrustBundleListByServiceRequest{ + // TODO(peering): Pass ACL token + Kind: string(structs.ServiceKindMeshGateway), + Namespace: s.proxyID.NamespaceOrDefault(), + Partition: s.proxyID.PartitionOrDefault(), + }, peeringTrustBundlesWatchID, s.ch) + if err != nil { + return snap, err + } + wildcardEntMeta := s.proxyID.WithWildcardNamespace() // Watch for all services. // Eventually we will have to watch connect enabled instances for each service as well as the // destination services themselves but those notifications will be setup later. // We cannot setup those watches until we know what the services are. - err = s.cache.Notify(ctx, cachetype.CatalogServiceListName, &structs.DCSpecificRequest{ + err = s.dataSources.ServiceList.Notify(ctx, &structs.DCSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Source: *s.source, @@ -47,7 +60,7 @@ func (s *handlerMeshGateway) initialize(ctx context.Context) (ConfigSnapshot, er } // Watch service-resolvers so we can setup service subset clusters - err = s.cache.Notify(ctx, cachetype.ConfigEntriesName, &structs.ConfigEntryQuery{ + err = s.dataSources.ConfigEntryList.Notify(ctx, &structs.ConfigEntryQuery{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Kind: structs.ServiceResolver, @@ -69,12 +82,38 @@ func (s *handlerMeshGateway) initialize(ctx context.Context) (ConfigSnapshot, er return snap, err } + // Get information about the entire service mesh. + err = s.dataSources.ConfigEntry.Notify(ctx, &structs.ConfigEntryQuery{ + Kind: structs.MeshConfig, + Name: structs.MeshConfigMesh, + Datacenter: s.source.Datacenter, + QueryOptions: structs.QueryOptions{Token: s.token}, + EnterpriseMeta: *structs.DefaultEnterpriseMetaInPartition(s.proxyID.PartitionOrDefault()), + }, meshConfigEntryID, s.ch) + if err != nil { + return snap, err + } + + // Watch for all exported services from this mesh gateway's partition in any peering. + err = s.dataSources.ExportedPeeredServices.Notify(ctx, &structs.DCSpecificRequest{ + Datacenter: s.source.Datacenter, + QueryOptions: structs.QueryOptions{Token: s.token}, + Source: *s.source, + EnterpriseMeta: s.proxyID.EnterpriseMeta, + }, exportedServiceListWatchID, s.ch) + if err != nil { + return snap, err + } + snap.MeshGateway.WatchedServices = make(map[structs.ServiceName]context.CancelFunc) snap.MeshGateway.WatchedGateways = make(map[string]context.CancelFunc) snap.MeshGateway.ServiceGroups = make(map[structs.ServiceName]structs.CheckServiceNodes) snap.MeshGateway.GatewayGroups = make(map[string]structs.CheckServiceNodes) snap.MeshGateway.ServiceResolvers = make(map[structs.ServiceName]*structs.ServiceResolverConfigEntry) snap.MeshGateway.HostnameDatacenters = make(map[string]structs.CheckServiceNodes) + snap.MeshGateway.ExportedServicesWithPeers = make(map[structs.ServiceName][]string) + snap.MeshGateway.DiscoveryChain = make(map[structs.ServiceName]*structs.CompiledDiscoveryChain) + snap.MeshGateway.WatchedDiscoveryChains = make(map[structs.ServiceName]context.CancelFunc) // there is no need to initialize the map of service resolvers as we // fully rebuild it every time we get updates @@ -86,7 +125,7 @@ func (s *handlerMeshGateway) initializeCrossDCWatches(ctx context.Context) error // Conveniently we can just use this service meta attribute in one // place here to set the machinery in motion and leave the conditional // behavior out of the rest of the package. - err := s.cache.Notify(ctx, cachetype.FederationStateListMeshGatewaysName, &structs.DCSpecificRequest{ + err := s.dataSources.FederationStateListMeshGateways.Notify(ctx, &structs.DCSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Source: *s.source, @@ -95,7 +134,7 @@ func (s *handlerMeshGateway) initializeCrossDCWatches(ctx context.Context) error return err } - err = s.health.Notify(ctx, structs.ServiceSpecificRequest{ + err = s.dataSources.Health.Notify(ctx, &structs.ServiceSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, ServiceName: structs.ConsulServiceName, @@ -105,7 +144,7 @@ func (s *handlerMeshGateway) initializeCrossDCWatches(ctx context.Context) error } } - err := s.cache.Notify(ctx, cachetype.CatalogDatacentersName, &structs.DatacentersRequest{ + err := s.dataSources.Datacenters.Notify(ctx, &structs.DatacentersRequest{ QueryOptions: structs.QueryOptions{Token: s.token, MaxAge: 30 * time.Second}, }, datacentersWatchID, s.ch) if err != nil { @@ -119,7 +158,7 @@ func (s *handlerMeshGateway) initializeCrossDCWatches(ctx context.Context) error return nil } -func (s *handlerMeshGateway) handleUpdate(ctx context.Context, u cache.UpdateEvent, snap *ConfigSnapshot) error { +func (s *handlerMeshGateway) handleUpdate(ctx context.Context, u UpdateEvent, snap *ConfigSnapshot) error { if u.Err != nil { return fmt.Errorf("error filling agent cache: %v", u.Err) } @@ -169,7 +208,7 @@ func (s *handlerMeshGateway) handleUpdate(ctx context.Context, u cache.UpdateEve if _, ok := snap.MeshGateway.WatchedServices[svc]; !ok { ctx, cancel := context.WithCancel(ctx) - err := s.health.Notify(ctx, structs.ServiceSpecificRequest{ + err := s.dataSources.Health.Notify(ctx, &structs.ServiceSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, ServiceName: svc.Name, @@ -221,7 +260,7 @@ func (s *handlerMeshGateway) handleUpdate(ctx context.Context, u cache.UpdateEve if _, ok := snap.MeshGateway.WatchedGateways[gk.String()]; !ok { ctx, cancel := context.WithCancel(ctx) - err := s.cache.Notify(ctx, cachetype.InternalServiceDumpName, &structs.ServiceDumpRequest{ + err := s.dataSources.InternalServiceDump.Notify(ctx, &structs.ServiceDumpRequest{ Datacenter: dc, QueryOptions: structs.QueryOptions{Token: s.token}, ServiceKind: structs.ServiceKindMeshGateway, @@ -297,6 +336,141 @@ func (s *handlerMeshGateway) handleUpdate(ctx context.Context, u cache.UpdateEve snap.MeshGateway.ConsulServers = resp.Nodes + case exportedServiceListWatchID: + exportedServices, ok := u.Result.(*structs.IndexedExportedServiceList) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + + seenServices := make(map[structs.ServiceName][]string) // svc -> peername slice + for peerName, services := range exportedServices.Services { + for _, svc := range services { + seenServices[svc] = append(seenServices[svc], peerName) + } + } + // Sort the peer names so ultimately xDS has a stable output. + for svc := range seenServices { + sort.Strings(seenServices[svc]) + } + peeredServiceList := maps.SliceOfKeys(seenServices) + structs.ServiceList(peeredServiceList).Sort() + + snap.MeshGateway.ExportedServicesSlice = peeredServiceList + snap.MeshGateway.ExportedServicesWithPeers = seenServices + snap.MeshGateway.ExportedServicesSet = true + + // Decide if we do or do not need our leaf. + hasExports := len(snap.MeshGateway.ExportedServicesSlice) > 0 + if hasExports && snap.MeshGateway.LeafCertWatchCancel == nil { + // no watch and we need one + ctx, cancel := context.WithCancel(ctx) + err := s.dataSources.LeafCertificate.Notify(ctx, &cachetype.ConnectCALeafRequest{ + Datacenter: s.source.Datacenter, + Token: s.token, + Kind: structs.ServiceKindMeshGateway, + EnterpriseMeta: s.proxyID.EnterpriseMeta, + }, leafWatchID, s.ch) + if err != nil { + cancel() + return err + } + snap.MeshGateway.LeafCertWatchCancel = cancel + } else if !hasExports && snap.MeshGateway.LeafCertWatchCancel != nil { + // has watch and shouldn't + snap.MeshGateway.LeafCertWatchCancel() + snap.MeshGateway.LeafCertWatchCancel = nil + snap.MeshGateway.Leaf = nil + } + + // For each service that we should be exposing, also watch disco chains + // in the same manner as an ingress gateway would. + + for _, svc := range snap.MeshGateway.ExportedServicesSlice { + if _, ok := snap.MeshGateway.WatchedDiscoveryChains[svc]; ok { + continue + } + + ctx, cancel := context.WithCancel(ctx) + err := s.dataSources.CompiledDiscoveryChain.Notify(ctx, &structs.DiscoveryChainRequest{ + Datacenter: s.source.Datacenter, + QueryOptions: structs.QueryOptions{Token: s.token}, + Name: svc.Name, + EvaluateInDatacenter: s.source.Datacenter, + EvaluateInNamespace: svc.NamespaceOrDefault(), + EvaluateInPartition: svc.PartitionOrDefault(), + }, "discovery-chain:"+svc.String(), s.ch) + if err != nil { + meshLogger.Error("failed to register watch for discovery chain", + "service", svc.String(), + "error", err, + ) + cancel() + return err + } + + snap.MeshGateway.WatchedDiscoveryChains[svc] = cancel + } + + // Clean up data from services that were not in the update + + for svc, cancelFn := range snap.MeshGateway.WatchedDiscoveryChains { + if _, ok := seenServices[svc]; !ok { + cancelFn() + delete(snap.MeshGateway.WatchedDiscoveryChains, svc) + } + } + + // These entries are intentionally handled separately from the + // WatchedDiscoveryChains above. There have been situations where a + // discovery watch was cancelled, then fired. That update event then + // re-populated the DiscoveryChain map entry, which wouldn't get + // cleaned up since there was no known watch for it. + + for svc := range snap.MeshGateway.DiscoveryChain { + if _, ok := seenServices[svc]; !ok { + delete(snap.MeshGateway.DiscoveryChain, svc) + } + } + + case leafWatchID: + leaf, ok := u.Result.(*structs.IssuedCert) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + + if hasExports := len(snap.MeshGateway.ExportedServicesSlice) > 0; !hasExports { + return nil // ignore this update, it's stale + } + + snap.MeshGateway.Leaf = leaf + + case peeringTrustBundlesWatchID: + resp, ok := u.Result.(*pbpeering.TrustBundleListByServiceResponse) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + if len(resp.Bundles) > 0 { + snap.MeshGateway.PeeringTrustBundles = resp.Bundles + } + snap.MeshGateway.PeeringTrustBundlesSet = true + + case meshConfigEntryID: + resp, ok := u.Result.(*structs.ConfigEntryResponse) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + + if resp.Entry != nil { + meshConf, ok := resp.Entry.(*structs.MeshConfigEntry) + if !ok { + return fmt.Errorf("invalid type for config entry: %T", resp.Entry) + } + snap.MeshGateway.MeshConfig = meshConf + } else { + snap.MeshGateway.MeshConfig = nil + } + snap.MeshGateway.MeshConfigSet = true + default: switch { case strings.HasPrefix(u.CorrelationID, "connect-service:"): @@ -332,6 +506,24 @@ func (s *handlerMeshGateway) handleUpdate(ctx context.Context, u cache.UpdateEve ) } + case strings.HasPrefix(u.CorrelationID, "discovery-chain:"): + resp, ok := u.Result.(*structs.DiscoveryChainResponse) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + svcString := strings.TrimPrefix(u.CorrelationID, "discovery-chain:") + svc := structs.ServiceNameFromString(svcString) + + if !snap.MeshGateway.IsServiceExported(svc) { + delete(snap.MeshGateway.DiscoveryChain, svc) + s.logger.Trace("discovery-chain watch fired for unknown service", "service", svc) + return nil + } + + snap.MeshGateway.DiscoveryChain[svc] = resp.Chain + + // TODO(peering): we need to do this if we are going to setup a cross-partition or cross-datacenter target + default: if err := s.handleEntUpdate(meshLogger, ctx, u, snap); err != nil { return err diff --git a/agent/proxycfg/mesh_gateway_oss.go b/agent/proxycfg/mesh_gateway_oss.go index b32884452e..143eff76fe 100644 --- a/agent/proxycfg/mesh_gateway_oss.go +++ b/agent/proxycfg/mesh_gateway_oss.go @@ -7,14 +7,12 @@ import ( "context" "github.com/hashicorp/go-hclog" - - "github.com/hashicorp/consul/agent/cache" ) func (s *handlerMeshGateway) initializeEntWatches(_ context.Context) error { return nil } -func (s *handlerMeshGateway) handleEntUpdate(_ hclog.Logger, _ context.Context, _ cache.UpdateEvent, _ *ConfigSnapshot) error { +func (s *handlerMeshGateway) handleEntUpdate(_ hclog.Logger, _ context.Context, _ UpdateEvent, _ *ConfigSnapshot) error { return nil } diff --git a/agent/proxycfg/proxycfg.go b/agent/proxycfg/proxycfg.go index f4a2f2499b..b19f20afc9 100644 --- a/agent/proxycfg/proxycfg.go +++ b/agent/proxycfg/proxycfg.go @@ -1,53 +1,53 @@ -// Package proxycfg provides a component that monitors local agent state for -// Connect proxy service registrations and maintains the necessary cache state -// for those proxies locally. Local cache state keeps pull based proxies (e.g. -// the built in one) performant even on first request/startup, and allows for -// push-based proxy APIs (e.g. xDS for Envoy) to be notified of updates to the -// proxy configuration. +// Package proxycfg contains components for sourcing the data required to +// configure Connect proxies. The Manager provides an API with which proxy +// services can be registered, and coordinates the fetching (and refreshing) +// of intentions, upstreams, discovery chain, certificates etc. Consumers +// such as the xDS server can then subscribe to receive snapshots of this +// data whenever it changes. // -// The relationship with other agent components looks like this: +// Consul client agents support the configuration of proxies locally +// registered to them, whereas Consul servers support both this and proxies +// in the catalog. // -// +------------------------------------------+ -// | AGENT | -// | | -// | +--------+ 1. +----------+ | -// | | local |<-----+ proxycfg |<--------+ | -// | | state +----->| Manager |<---+ | | -// | +--------+ 2. +^---+-----+ | | | -// | 5.| | | | | -// | +----------+ | +-------+--+ |4. | -// | | +->| proxycfg | | | -// | | 3.| | State | | | -// | | | +----------+ | | -// | | | | | -// | | | +----------+ | | -// | | +->| proxycfg +-+ | -// | | | State | | -// | | +----------+ | -// | |6. | -// | +----v---+ | -// | | xDS | | -// | | Server | | -// | +--------+ | -// | | -// +------------------------------------------+ +// The following diagram depicts the component relationships on a server, as +// this is the more complex mode of operation: // -// 1. Manager watches local state for changes. -// 2. On local state change manager is notified and iterates through state -// looking for proxy service registrations. -// 3. For each proxy service registered, the manager maintains a State -// instance, recreating on change, removing when deregistered. -// 4. State instance copies the parts of the the proxy service registration -// needed to configure proxy, and sets up blocking watches on the local -// agent cache for all remote state needed: root and leaf certs, intentions, -// and service discovery results for the specified upstreams. This ensures -// these results are always in local cache for "pull" based proxies like the -// built-in one. -// 5. If needed, pull-based proxy config APIs like the xDS server can Watch the -// config for a given proxy service. -// 6. Watchers get notified every time something changes the current snapshot -// of config for the proxy. That might be changes to the registration, -// certificate rotations, changes to the upstreams required (needing -// different listener config), or changes to the service discovery results -// for any upstream (e.g. new instance of upstream service came up). +// +-------+ 1. +------------+ +// | Local | ◀------------▶ | Local | +// | State | | State Sync | +// +-------+ +-----+------+ +// ▲ | +// | +---------------+ | 2. +// 4. | 4a. | Local | | +// | +-▶ | Config Source +-+ | +// | | +---------------+ | | +// | | ▼ ▼ +// +--------+ 3. +-+-+-----------+ 6. +----------+ 2a. +----------+ +// | xDS +---▶ | Catalog +-----▶ | proxycfg +----▶ | proxycfg | +// | Server | ◀---+ Config Source +-----▶ | Manager +--+ | State | +// +--------+ 8. +----+----------+ 7. +----------+ | +----------+ +// 5. | | +// ▼ 7a. | +----------+ +// +-------+ +-▶ | proxycfg | +// | State | | State | +// | Store | +----------+ +// +-------+ +// +// 1. local.Sync watches the agent's local state for changes. +// 2. If any sidecar proxy or gateway services are registered to the local agent +// they are sync'd to the proxycfg.Manager. +// 2a. proxycfg.Manager creates a state object for the service and begins +// pre-fetching data (go to 8). +// 3. Client begins a stream and the xDS server calls Watch on its ConfigSource - +// on a client agent this would be a local config source, on a server it would +// be a catalog config source. +// 4. The catalog config source will check if service is registered locally. +// 4a. If the service *is* registered locally it hands off the the local config +// source, which calls Watch on the proxycfg manager (and serves the pre- +// fetched data). +// 5. Otherwise, it fetches the service from the state store. +// 6. It calls Watch on the proxycfg manager. +// 7. It registers the service with the proxycfg manager. +// 7a. See: 2a. +// 8. xDS server receives snapshots of configuration data whenever it changes. package proxycfg diff --git a/agent/proxycfg/snapshot.go b/agent/proxycfg/snapshot.go index 7cf669a89d..e405dd369e 100644 --- a/agent/proxycfg/snapshot.go +++ b/agent/proxycfg/snapshot.go @@ -10,6 +10,8 @@ import ( "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/lib" + "github.com/hashicorp/consul/proto/pbpeering" ) // TODO(ingress): Can we think of a better for this bag of data? @@ -42,6 +44,14 @@ type ConfigSnapshotUpstreams struct { // endpoints of an upstream. WatchedUpstreamEndpoints map[UpstreamID]map[string]structs.CheckServiceNodes + // WatchedPeerTrustBundles is a map of (PeerName -> CancelFunc) in order to cancel + // watches for peer trust bundles any time the list of upstream peers changes. + WatchedPeerTrustBundles map[string]context.CancelFunc + + // PeerTrustBundles is a map of (PeerName -> PeeringTrustBundle). + // It is used to store trust bundles for upstream TLS transport sockets. + PeerTrustBundles map[string]*pbpeering.PeeringTrustBundle + // WatchedGateways is a map of UpstreamID -> (map of GatewayKey.String() -> // CancelFunc) in order to cancel watches for mesh gateways WatchedGateways map[UpstreamID]map[string]context.CancelFunc @@ -69,6 +79,12 @@ type ConfigSnapshotUpstreams struct { // // This list only applies to proxies registered in 'transparent' mode. IntentionUpstreams map[UpstreamID]struct{} + + // PeerUpstreamEndpoints is a map of UpstreamID -> (set of IP addresses) + // and used to determine the backing endpoints of an upstream in another + // peer. + PeerUpstreamEndpoints map[UpstreamID]structs.CheckServiceNodes + PeerUpstreamEndpointsUseHostnames map[UpstreamID]struct{} } // indexedTarget is used to associate the Raft modify index of a resource @@ -112,6 +128,9 @@ func gatewayKeyFromString(s string) GatewayKey { type configSnapshotConnectProxy struct { ConfigSnapshotUpstreams + PeeringTrustBundlesSet bool + PeeringTrustBundles []*pbpeering.PeeringTrustBundle + WatchedServiceChecks map[structs.ServiceID][]structs.CheckType // TODO: missing garbage collection PreparedQueryEndpoints map[UpstreamID]structs.CheckServiceNodes // DEPRECATED:see:WatchedUpstreamEndpoints @@ -133,6 +152,8 @@ func (c *configSnapshotConnectProxy) isEmpty() bool { len(c.WatchedDiscoveryChains) == 0 && len(c.WatchedUpstreams) == 0 && len(c.WatchedUpstreamEndpoints) == 0 && + len(c.WatchedPeerTrustBundles) == 0 && + len(c.PeerTrustBundles) == 0 && len(c.WatchedGateways) == 0 && len(c.WatchedGatewayEndpoints) == 0 && len(c.WatchedServiceChecks) == 0 && @@ -140,7 +161,10 @@ func (c *configSnapshotConnectProxy) isEmpty() bool { len(c.UpstreamConfig) == 0 && len(c.PassthroughUpstreams) == 0 && len(c.IntentionUpstreams) == 0 && - !c.MeshConfigSet + !c.PeeringTrustBundlesSet && + !c.MeshConfigSet && + len(c.PeerUpstreamEndpoints) == 0 && + len(c.PeerUpstreamEndpointsUseHostnames) == 0 } type configSnapshotTerminatingGateway struct { @@ -206,8 +230,14 @@ type configSnapshotTerminatingGateway struct { // GatewayServices is a map of service name to the config entry association // between the gateway and a service. TLS configuration stored here is // used for TLS origination from the gateway to the linked service. + // This map does not include GatewayServices that represent Endpoints to external + // destinations. GatewayServices map[structs.ServiceName]structs.GatewayService + // DestinationServices is a map of service name to GatewayServices that represent + // a destination to an external destination of the service mesh. + DestinationServices map[structs.ServiceName]structs.GatewayService + // HostnameServices is a map of service name to service instances with a hostname as the address. // If hostnames are configured they must be provided to Envoy via CDS not EDS. HostnameServices map[structs.ServiceName]structs.CheckServiceNodes @@ -245,6 +275,33 @@ func (c *configSnapshotTerminatingGateway) ValidServices() []structs.ServiceName return out } +// ValidDestinations returns the list of service keys (that represent exclusively endpoints) that have enough data to be emitted. +func (c *configSnapshotTerminatingGateway) ValidDestinations() []structs.ServiceName { + out := make([]structs.ServiceName, 0, len(c.DestinationServices)) + for svc := range c.DestinationServices { + // It only counts if ALL of our watches have come back (with data or not). + + // Skip the service if we don't have a cert to present for mTLS. + if cert, ok := c.ServiceLeaves[svc]; !ok || cert == nil { + continue + } + + // Skip the service if we haven't gotten our intentions yet. + if _, intentionsSet := c.Intentions[svc]; !intentionsSet { + continue + } + + // Skip the service if we haven't gotten our service config yet to know + // the protocol. + if _, ok := c.ServiceConfigs[svc]; !ok || c.ServiceConfigs[svc].Destination.Address == "" { + continue + } + + out = append(out, svc) + } + return out +} + // isEmpty is a test helper func (c *configSnapshotTerminatingGateway) isEmpty() bool { if c == nil { @@ -262,6 +319,7 @@ func (c *configSnapshotTerminatingGateway) isEmpty() bool { len(c.ServiceConfigs) == 0 && len(c.WatchedConfigs) == 0 && len(c.GatewayServices) == 0 && + len(c.DestinationServices) == 0 && len(c.HostnameServices) == 0 && !c.MeshConfigSet } @@ -309,6 +367,59 @@ type configSnapshotMeshGateway struct { // HostnameDatacenters is a map of datacenters to mesh gateway instances with a hostname as the address. // If hostnames are configured they must be provided to Envoy via CDS not EDS. HostnameDatacenters map[string]structs.CheckServiceNodes + + // ExportedServicesSlice is a sorted slice of services that are exported to + // connected peers. + ExportedServicesSlice []structs.ServiceName + + // ExportedServicesWithPeers is a map of exported service name to a sorted + // slice of peers that they are exported to. + ExportedServicesWithPeers map[structs.ServiceName][]string + + // ExportedServicesSet indicates that the watch on the list of + // peer-exported services has completed at least once. + ExportedServicesSet bool + + // DiscoveryChain is a map of the peer-exported service names to their + // local compiled discovery chain. This will be populated regardless of + // L4/L7 status of the chain. + DiscoveryChain map[structs.ServiceName]*structs.CompiledDiscoveryChain + + // WatchedDiscoveryChains is a map of peer-exported service names to a + // cancel function. + WatchedDiscoveryChains map[structs.ServiceName]context.CancelFunc + + // MeshConfig is the mesh config entry that should be used for services + // fronted by this mesh gateway. + MeshConfig *structs.MeshConfigEntry + + // MeshConfigSet indicates that the watch on the mesh config entry has + // completed at least once. + MeshConfigSet bool + + // Leaf is the leaf cert to be used by this mesh gateway. + Leaf *structs.IssuedCert + + // LeafCertWatchCancel is a CancelFunc to use when refreshing this gateway's + // leaf cert watch with different parameters. + LeafCertWatchCancel context.CancelFunc + + // PeeringTrustBundles is the list of trust bundles for peers where + // services have been exported to using this mesh gateway. + PeeringTrustBundles []*pbpeering.PeeringTrustBundle + + // PeeringTrustBundlesSet indicates that the watch on the peer trust + // bundles has completed at least once. + PeeringTrustBundlesSet bool +} + +func (c *configSnapshotMeshGateway) IsServiceExported(svc structs.ServiceName) bool { + if c == nil || len(c.ExportedServicesWithPeers) == 0 { + return false + } + + _, ok := c.ExportedServicesWithPeers[svc] + return ok } func (c *configSnapshotMeshGateway) GatewayKeys() []GatewayKey { @@ -354,7 +465,26 @@ func (c *configSnapshotMeshGateway) isEmpty() bool { len(c.GatewayGroups) == 0 && len(c.FedStateGateways) == 0 && len(c.ConsulServers) == 0 && - len(c.HostnameDatacenters) == 0 + len(c.HostnameDatacenters) == 0 && + c.isEmptyPeering() +} + +// isEmptyPeering is a test helper +func (c *configSnapshotMeshGateway) isEmptyPeering() bool { + if c == nil { + return true + } + + return len(c.ExportedServicesSlice) == 0 && + len(c.ExportedServicesWithPeers) == 0 && + !c.ExportedServicesSet && + len(c.DiscoveryChain) == 0 && + len(c.WatchedDiscoveryChains) == 0 && + !c.MeshConfigSet && + c.LeafCertWatchCancel == nil && + c.Leaf == nil && + len(c.PeeringTrustBundles) == 0 && + !c.PeeringTrustBundlesSet } type configSnapshotIngressGateway struct { @@ -425,7 +555,7 @@ func IngressListenerKeyFromListener(l structs.IngressListener) IngressListenerKe type ConfigSnapshot struct { Kind structs.ServiceKind Service string - ProxyID structs.ServiceID + ProxyID ProxyID Address string Port int ServiceMeta map[string]string @@ -474,7 +604,10 @@ func (s *ConfigSnapshot) Valid() bool { } } return s.Roots != nil && - (s.MeshGateway.WatchedServicesSet || len(s.MeshGateway.ServiceGroups) > 0) + (s.MeshGateway.WatchedServicesSet || len(s.MeshGateway.ServiceGroups) > 0) && + s.MeshGateway.ExportedServicesSet && + s.MeshGateway.MeshConfigSet && + s.MeshGateway.PeeringTrustBundlesSet case structs.ServiceKindIngressGateway: return s.Roots != nil && @@ -500,8 +633,11 @@ func (s *ConfigSnapshot) Clone() (*ConfigSnapshot, error) { // nil these out as anything receiving one of these clones does not need them and should never "cancel" our watches switch s.Kind { case structs.ServiceKindConnectProxy: + // common with connect-proxy and ingress-gateway snap.ConnectProxy.WatchedUpstreams = nil snap.ConnectProxy.WatchedGateways = nil + snap.ConnectProxy.WatchedDiscoveryChains = nil + snap.ConnectProxy.WatchedPeerTrustBundles = nil case structs.ServiceKindTerminatingGateway: snap.TerminatingGateway.WatchedServices = nil snap.TerminatingGateway.WatchedIntentions = nil @@ -512,9 +648,12 @@ func (s *ConfigSnapshot) Clone() (*ConfigSnapshot, error) { snap.MeshGateway.WatchedGateways = nil snap.MeshGateway.WatchedServices = nil case structs.ServiceKindIngressGateway: + // common with connect-proxy and ingress-gateway snap.IngressGateway.WatchedUpstreams = nil snap.IngressGateway.WatchedGateways = nil snap.IngressGateway.WatchedDiscoveryChains = nil + snap.IngressGateway.WatchedPeerTrustBundles = nil + // only ingress-gateway snap.IngressGateway.LeafCertWatchCancel = nil } @@ -527,11 +666,33 @@ func (s *ConfigSnapshot) Leaf() *structs.IssuedCert { return s.ConnectProxy.Leaf case structs.ServiceKindIngressGateway: return s.IngressGateway.Leaf + case structs.ServiceKindMeshGateway: + return s.MeshGateway.Leaf default: return nil } } +func (s *ConfigSnapshot) PeeringTrustBundles() []*pbpeering.PeeringTrustBundle { + switch s.Kind { + case structs.ServiceKindConnectProxy: + return s.ConnectProxy.PeeringTrustBundles + case structs.ServiceKindMeshGateway: + return s.MeshGateway.PeeringTrustBundles + default: + return nil + } +} + +// RootPEMs returns all PEM-encoded public certificates for the root CA. +func (s *ConfigSnapshot) RootPEMs() string { + var rootPEMs string + for _, root := range s.Roots.Roots { + rootPEMs += lib.EnsureTrailingNewline(root.RootCert) + } + return rootPEMs +} + func (s *ConfigSnapshot) MeshConfig() *structs.MeshConfigEntry { switch s.Kind { case structs.ServiceKindConnectProxy: @@ -540,6 +701,8 @@ func (s *ConfigSnapshot) MeshConfig() *structs.MeshConfigEntry { return s.IngressGateway.MeshConfig case structs.ServiceKindTerminatingGateway: return s.TerminatingGateway.MeshConfig + case structs.ServiceKindMeshGateway: + return s.MeshGateway.MeshConfig default: return nil } @@ -560,3 +723,44 @@ func (s *ConfigSnapshot) MeshConfigTLSOutgoing() *structs.MeshDirectionalTLSConf } return mesh.TLS.Outgoing } + +func (u *ConfigSnapshotUpstreams) UpstreamPeerMeta(uid UpstreamID) structs.PeeringServiceMeta { + nodes := u.PeerUpstreamEndpoints[uid] + if len(nodes) == 0 { + return structs.PeeringServiceMeta{} + } + + // In agent/rpc/peering/subscription_manager.go we denormalize the + // PeeringServiceMeta data onto each replicated service instance to convey + // this information back to the importing side of the peering. + // + // This data is guaranteed (subject to any eventual consistency lag around + // updates) to be the same across all instances, so we only need to take + // the first item. + // + // TODO(peering): consider replicating this "common to all instances" data + // using a different replication type and persist it separately in the + // catalog to avoid this weird construction. + csn := nodes[0] + if csn.Service == nil { + return structs.PeeringServiceMeta{} + } + return *csn.Service.Connect.PeerMeta +} + +func (u *ConfigSnapshotUpstreams) PeeredUpstreamIDs() []UpstreamID { + out := make([]UpstreamID, 0, len(u.UpstreamConfig)) + for uid := range u.UpstreamConfig { + if uid.Peer == "" { + continue + } + + if _, ok := u.PeerTrustBundles[uid.Peer]; uid.Peer != "" && !ok { + // The trust bundle for this upstream is not available yet, skip for now. + continue + } + + out = append(out, uid) + } + return out +} diff --git a/agent/proxycfg/state.go b/agent/proxycfg/state.go index eed26d2f90..9fc5c88f66 100644 --- a/agent/proxycfg/state.go +++ b/agent/proxycfg/state.go @@ -11,25 +11,17 @@ import ( "github.com/hashicorp/go-hclog" "github.com/mitchellh/copystructure" - "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/logging" ) -type CacheNotifier interface { - Notify(ctx context.Context, t string, r cache.Request, - correlationID string, ch chan<- cache.UpdateEvent) error -} - -type Health interface { - Notify(ctx context.Context, req structs.ServiceSpecificRequest, correlationID string, ch chan<- cache.UpdateEvent) error -} - const ( coalesceTimeout = 200 * time.Millisecond rootsWatchID = "roots" + peeringTrustBundlesWatchID = "peering-trust-bundles" leafWatchID = "leaf" + peerTrustBundleIDPrefix = "peer-trust-bundle:" intentionsWatchID = "intentions" serviceListWatchID = "service-list" federationStateListGatewaysWatchID = "federation-state-list-mesh-gateways" @@ -44,6 +36,8 @@ const ( serviceResolverIDPrefix = "service-resolver:" serviceIntentionsIDPrefix = "service-intentions:" intentionUpstreamsID = "intention-upstreams" + upstreamPeerWatchIDPrefix = "upstream-peer:" + exportedServiceListWatchID = "exported-service-list" meshConfigEntryID = "mesh" svcChecksWatchIDPrefix = cachetype.ServiceHTTPChecksName + ":" preparedQueryIDPrefix = string(structs.UpstreamDestTypePreparedQuery) + ":" @@ -53,8 +47,7 @@ const ( type stateConfig struct { logger hclog.Logger source *structs.QuerySource - cache CacheNotifier - health Health + dataSources DataSources dnsConfig DNSConfig serverSNIFn ServerSNIFunc intentionDefaultAllow bool @@ -64,6 +57,7 @@ type stateConfig struct { // connect-proxy service. When a proxy registration is changed, the entire state // is discarded and a new one created. type state struct { + source ProxySource logger hclog.Logger serviceInstance serviceInstance handler kindHandler @@ -72,7 +66,7 @@ type state struct { // in Watch. cancel func() - ch chan cache.UpdateEvent + ch chan UpdateEvent snapCh chan ConfigSnapshot reqCh chan chan *ConfigSnapshot } @@ -87,7 +81,7 @@ type ServerSNIFunc func(dc, nodeName string) string type serviceInstance struct { kind structs.ServiceKind service string - proxyID structs.ServiceID + proxyID ProxyID address string port int meta map[string]string @@ -145,7 +139,7 @@ func copyProxyConfig(ns *structs.NodeService) (structs.ConnectProxyConfig, error // // The returned state needs its required dependencies to be set before Watch // can be called. -func newState(ns *structs.NodeService, token string, config stateConfig) (*state, error) { +func newState(id ProxyID, ns *structs.NodeService, source ProxySource, token string, config stateConfig) (*state, error) { // 10 is fairly arbitrary here but allow for the 3 mandatory and a // reasonable number of upstream watches to all deliver their initial // messages in parallel without blocking the cache.Notify loops. It's not a @@ -153,9 +147,9 @@ func newState(ns *structs.NodeService, token string, config stateConfig) (*state // conservative to handle larger numbers of upstreams correctly but gives // some head room for normal operation to be non-blocking in most typical // cases. - ch := make(chan cache.UpdateEvent, 10) + ch := make(chan UpdateEvent, 10) - s, err := newServiceInstanceFromNodeService(ns, token) + s, err := newServiceInstanceFromNodeService(id, ns, token) if err != nil { return nil, err } @@ -166,6 +160,7 @@ func newState(ns *structs.NodeService, token string, config stateConfig) (*state } return &state{ + source: source, logger: config.logger.With("proxy", s.proxyID, "kind", s.kind), serviceInstance: s, handler: handler, @@ -175,7 +170,7 @@ func newState(ns *structs.NodeService, token string, config stateConfig) (*state }, nil } -func newKindHandler(config stateConfig, s serviceInstance, ch chan cache.UpdateEvent) (kindHandler, error) { +func newKindHandler(config stateConfig, s serviceInstance, ch chan UpdateEvent) (kindHandler, error) { var handler kindHandler h := handlerState{stateConfig: config, serviceInstance: s, ch: ch} @@ -197,7 +192,7 @@ func newKindHandler(config stateConfig, s serviceInstance, ch chan cache.UpdateE return handler, nil } -func newServiceInstanceFromNodeService(ns *structs.NodeService, token string) (serviceInstance, error) { +func newServiceInstanceFromNodeService(id ProxyID, ns *structs.NodeService, token string) (serviceInstance, error) { proxyCfg, err := copyProxyConfig(ns) if err != nil { return serviceInstance{}, err @@ -216,7 +211,7 @@ func newServiceInstanceFromNodeService(ns *structs.NodeService, token string) (s return serviceInstance{ kind: ns.Kind, service: ns.Service, - proxyID: ns.CompoundServiceID(), + proxyID: id, address: ns.Address, port: ns.Port, meta: meta, @@ -228,7 +223,7 @@ func newServiceInstanceFromNodeService(ns *structs.NodeService, token string) (s type kindHandler interface { initialize(ctx context.Context) (ConfigSnapshot, error) - handleUpdate(ctx context.Context, u cache.UpdateEvent, snap *ConfigSnapshot) error + handleUpdate(ctx context.Context, u UpdateEvent, snap *ConfigSnapshot) error } // Watch initialized watches on all necessary cache data for the current proxy @@ -261,7 +256,7 @@ func (s *state) Close() error { type handlerState struct { stateConfig // TODO: un-embed serviceInstance // TODO: un-embed - ch chan cache.UpdateEvent + ch chan UpdateEvent } func newConfigSnapshotFromServiceInstance(s serviceInstance, config stateConfig) ConfigSnapshot { @@ -410,7 +405,6 @@ func (s *state) Changed(ns *structs.NodeService, token string) bool { i := s.serviceInstance return ns.Kind != i.kind || - i.proxyID != ns.CompoundServiceID() || i.address != ns.Address || i.port != ns.Port || !reflect.DeepEqual(i.proxyCfg, proxyCfg) || @@ -449,16 +443,16 @@ func hostnameEndpoints(logger hclog.Logger, localKey GatewayKey, nodes structs.C } type gatewayWatchOpts struct { - notifier CacheNotifier - notifyCh chan cache.UpdateEvent - source structs.QuerySource - token string - key GatewayKey - upstreamID UpstreamID + internalServiceDump InternalServiceDump + notifyCh chan UpdateEvent + source structs.QuerySource + token string + key GatewayKey + upstreamID UpstreamID } func watchMeshGateway(ctx context.Context, opts gatewayWatchOpts) error { - return opts.notifier.Notify(ctx, cachetype.InternalServiceDumpName, &structs.ServiceDumpRequest{ + return opts.internalServiceDump.Notify(ctx, &structs.ServiceDumpRequest{ Datacenter: opts.key.Datacenter, QueryOptions: structs.QueryOptions{Token: opts.token}, ServiceKind: structs.ServiceKindMeshGateway, diff --git a/agent/proxycfg/state_oss_test.go b/agent/proxycfg/state_oss_test.go new file mode 100644 index 0000000000..0034041f74 --- /dev/null +++ b/agent/proxycfg/state_oss_test.go @@ -0,0 +1,6 @@ +//go:build !consulent +// +build !consulent + +package proxycfg + +func recordWatchesEnterprise(*stateConfig, *watchRecorder) {} diff --git a/agent/proxycfg/state_test.go b/agent/proxycfg/state_test.go index fcff78d926..667946283d 100644 --- a/agent/proxycfg/state_test.go +++ b/agent/proxycfg/state_test.go @@ -11,11 +11,11 @@ import ( "github.com/stretchr/testify/require" "github.com/hashicorp/consul/acl" - "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" "github.com/hashicorp/consul/agent/consul/discoverychain" - "github.com/hashicorp/consul/agent/rpcclient/health" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbpeering" + "github.com/hashicorp/consul/proto/prototest" "github.com/hashicorp/consul/sdk/testutil" ) @@ -51,16 +51,6 @@ func TestStateChanged(t *testing.T) { }, want: true, }, - { - name: "different service ID", - ns: structs.TestNodeServiceProxy(t), - token: "foo", - mutate: func(ns structs.NodeService, token string) (*structs.NodeService, string) { - ns.ID = "badger" - return &ns, token - }, - want: true, - }, { name: "different address", ns: structs.TestNodeServiceProxy(t), @@ -115,7 +105,8 @@ func TestStateChanged(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - state, err := newState(tt.ns, tt.token, stateConfig{logger: hclog.New(nil)}) + proxyID := ProxyID{ServiceID: tt.ns.CompoundServiceID()} + state, err := newState(proxyID, tt.ns, testSource, tt.token, stateConfig{logger: hclog.New(nil)}) require.NoError(t, err) otherNS, otherToken := tt.mutate(*tt.ns, tt.token) require.Equal(t, tt.want, state.Changed(otherNS, otherToken)) @@ -123,90 +114,100 @@ func TestStateChanged(t *testing.T) { } } -type testCacheNotifierRequest struct { - cacheType string - request cache.Request - ch chan<- cache.UpdateEvent +func recordWatches(sc *stateConfig) *watchRecorder { + wr := newWatchRecorder() + + sc.dataSources = DataSources{ + CARoots: typedWatchRecorder[*structs.DCSpecificRequest]{wr}, + CompiledDiscoveryChain: typedWatchRecorder[*structs.DiscoveryChainRequest]{wr}, + ConfigEntry: typedWatchRecorder[*structs.ConfigEntryQuery]{wr}, + ConfigEntryList: typedWatchRecorder[*structs.ConfigEntryQuery]{wr}, + Datacenters: typedWatchRecorder[*structs.DatacentersRequest]{wr}, + FederationStateListMeshGateways: typedWatchRecorder[*structs.DCSpecificRequest]{wr}, + GatewayServices: typedWatchRecorder[*structs.ServiceSpecificRequest]{wr}, + Health: typedWatchRecorder[*structs.ServiceSpecificRequest]{wr}, + HTTPChecks: typedWatchRecorder[*cachetype.ServiceHTTPChecksRequest]{wr}, + Intentions: typedWatchRecorder[*structs.IntentionQueryRequest]{wr}, + IntentionUpstreams: typedWatchRecorder[*structs.ServiceSpecificRequest]{wr}, + InternalServiceDump: typedWatchRecorder[*structs.ServiceDumpRequest]{wr}, + LeafCertificate: typedWatchRecorder[*cachetype.ConnectCALeafRequest]{wr}, + PreparedQuery: typedWatchRecorder[*structs.PreparedQueryExecuteRequest]{wr}, + ResolvedServiceConfig: typedWatchRecorder[*structs.ServiceConfigRequest]{wr}, + ServiceList: typedWatchRecorder[*structs.DCSpecificRequest]{wr}, + TrustBundle: typedWatchRecorder[*pbpeering.TrustBundleReadRequest]{wr}, + TrustBundleList: typedWatchRecorder[*pbpeering.TrustBundleListByServiceRequest]{wr}, + ExportedPeeredServices: typedWatchRecorder[*structs.DCSpecificRequest]{wr}, + } + recordWatchesEnterprise(sc, wr) + + return wr } -type testCacheNotifier struct { - lock sync.RWMutex - notifiers map[string]testCacheNotifierRequest -} - -func newTestCacheNotifier() *testCacheNotifier { - return &testCacheNotifier{ - notifiers: make(map[string]testCacheNotifierRequest), +func newWatchRecorder() *watchRecorder { + return &watchRecorder{ + watches: make(map[string]any), } } -func (cn *testCacheNotifier) Notify(ctx context.Context, t string, r cache.Request, correlationId string, ch chan<- cache.UpdateEvent) error { - cn.lock.Lock() - cn.notifiers[correlationId] = testCacheNotifierRequest{t, r, ch} - cn.lock.Unlock() +type watchRecorder struct { + mu sync.Mutex + watches map[string]any +} + +func (r *watchRecorder) record(correlationID string, req any) { + r.mu.Lock() + r.watches[correlationID] = req + r.mu.Unlock() +} + +func (r *watchRecorder) verify(t *testing.T, correlationID string, verifyFn verifyWatchRequest) { + t.Helper() + + r.mu.Lock() + req, ok := r.watches[correlationID] + r.mu.Unlock() + + require.True(t, ok, "No such watch for Correlation ID: %q", correlationID) + + if verifyFn != nil { + verifyFn(t, req) + } +} + +type typedWatchRecorder[ReqType any] struct { + recorder *watchRecorder +} + +func (r typedWatchRecorder[ReqType]) Notify(_ context.Context, req ReqType, correlationID string, _ chan<- UpdateEvent) error { + r.recorder.record(correlationID, req) return nil } -func (cn *testCacheNotifier) Get(ctx context.Context, t string, r cache.Request) (interface{}, cache.ResultMeta, error) { - panic("Get: not implemented") -} - -func (cn *testCacheNotifier) getNotifierRequest(t testing.TB, correlationId string) testCacheNotifierRequest { - cn.lock.RLock() - req, ok := cn.notifiers[correlationId] - cn.lock.RUnlock() - require.True(t, ok, "Correlation ID: %s is missing", correlationId) - return req -} - -func (cn *testCacheNotifier) getChanForCorrelationId(t testing.TB, correlationId string) chan<- cache.UpdateEvent { - req := cn.getNotifierRequest(t, correlationId) - require.NotNil(t, req.ch) - return req.ch -} - -func (cn *testCacheNotifier) sendNotification(t testing.TB, correlationId string, event cache.UpdateEvent) { - cn.getChanForCorrelationId(t, correlationId) <- event -} - -func (cn *testCacheNotifier) verifyWatch(t testing.TB, correlationId string) (string, cache.Request) { - // t.Logf("Watches: %+v", cn.notifiers) - req := cn.getNotifierRequest(t, correlationId) - require.NotNil(t, req.ch) - return req.cacheType, req.request -} - -type verifyWatchRequest func(t testing.TB, cacheType string, request cache.Request) - -func genVerifyDCSpecificWatch(expectedCacheType string, expectedDatacenter string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, expectedCacheType, cacheType) +type verifyWatchRequest func(t testing.TB, request any) +func genVerifyDCSpecificWatch(expectedDatacenter string) verifyWatchRequest { + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.DCSpecificRequest) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) } } -func genVerifyRootsWatch(expectedDatacenter string) verifyWatchRequest { - return genVerifyDCSpecificWatch(cachetype.ConnectCARootName, expectedDatacenter) -} - -func genVerifyListServicesWatch(expectedDatacenter string) verifyWatchRequest { - return genVerifyDCSpecificWatch(cachetype.CatalogServiceListName, expectedDatacenter) -} - -func verifyDatacentersWatch(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.CatalogDatacentersName, cacheType) - +func verifyDatacentersWatch(t testing.TB, request any) { _, ok := request.(*structs.DatacentersRequest) require.True(t, ok) } -func genVerifyLeafWatchWithDNSSANs(expectedService string, expectedDatacenter string, expectedDNSSANs []string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.ConnectCALeafName, cacheType) +func genVerifyTrustBundleReadWatch(peer string) verifyWatchRequest { + return func(t testing.TB, request any) { + reqReal, ok := request.(*pbpeering.TrustBundleReadRequest) + require.True(t, ok) + require.Equal(t, peer, reqReal.Name) + } +} +func genVerifyLeafWatchWithDNSSANs(expectedService string, expectedDatacenter string, expectedDNSSANs []string) verifyWatchRequest { + return func(t testing.TB, request any) { reqReal, ok := request.(*cachetype.ConnectCALeafRequest) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) @@ -219,10 +220,26 @@ func genVerifyLeafWatch(expectedService string, expectedDatacenter string) verif return genVerifyLeafWatchWithDNSSANs(expectedService, expectedDatacenter, nil) } -func genVerifyResolverWatch(expectedService, expectedDatacenter, expectedKind string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.ConfigEntriesName, cacheType) +func genVerifyTrustBundleListWatch(service string) verifyWatchRequest { + return func(t testing.TB, request any) { + reqReal, ok := request.(*pbpeering.TrustBundleListByServiceRequest) + require.True(t, ok) + require.Equal(t, service, reqReal.ServiceName) + } +} +func genVerifyTrustBundleListWatchForMeshGateway(partition string) verifyWatchRequest { + return func(t testing.TB, request any) { + reqReal, ok := request.(*pbpeering.TrustBundleListByServiceRequest) + require.True(t, ok) + require.Equal(t, string(structs.ServiceKindMeshGateway), reqReal.Kind) + require.True(t, acl.EqualPartitions(partition, reqReal.Partition), "%q != %q", partition, reqReal.Partition) + require.Empty(t, reqReal.ServiceName) + } +} + +func genVerifyResolverWatch(expectedService, expectedDatacenter, expectedKind string) verifyWatchRequest { + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.ConfigEntryQuery) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) @@ -232,9 +249,7 @@ func genVerifyResolverWatch(expectedService, expectedDatacenter, expectedKind st } func genVerifyResolvedConfigWatch(expectedService string, expectedDatacenter string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.ResolvedServiceConfigName, cacheType) - + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.ServiceConfigRequest) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) @@ -243,9 +258,7 @@ func genVerifyResolvedConfigWatch(expectedService string, expectedDatacenter str } func genVerifyIntentionWatch(expectedService string, expectedDatacenter string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.IntentionMatchName, cacheType) - + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.IntentionQueryRequest) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) @@ -257,21 +270,8 @@ func genVerifyIntentionWatch(expectedService string, expectedDatacenter string) } } -func genVerifyIntentionUpstreamsWatch(expectedService string, expectedDatacenter string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.IntentionUpstreamsName, cacheType) - - reqReal, ok := request.(*structs.ServiceSpecificRequest) - require.True(t, ok) - require.Equal(t, expectedDatacenter, reqReal.Datacenter) - require.Equal(t, expectedService, reqReal.ServiceName) - } -} - func genVerifyPreparedQueryWatch(expectedName string, expectedDatacenter string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.PreparedQueryName, cacheType) - + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.PreparedQueryExecuteRequest) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) @@ -281,9 +281,7 @@ func genVerifyPreparedQueryWatch(expectedName string, expectedDatacenter string) } func genVerifyDiscoveryChainWatch(expected *structs.DiscoveryChainRequest) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.CompiledDiscoveryChainName, cacheType) - + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.DiscoveryChainRequest) require.True(t, ok) require.Equal(t, expected, reqReal) @@ -291,9 +289,7 @@ func genVerifyDiscoveryChainWatch(expected *structs.DiscoveryChainRequest) verif } func genVerifyMeshConfigWatch(expectedDatacenter string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.ConfigEntryName, cacheType) - + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.ConfigEntryQuery) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) @@ -303,9 +299,7 @@ func genVerifyMeshConfigWatch(expectedDatacenter string) verifyWatchRequest { } func genVerifyGatewayWatch(expectedDatacenter string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.InternalServiceDumpName, cacheType) - + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.ServiceDumpRequest) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) @@ -315,31 +309,28 @@ func genVerifyGatewayWatch(expectedDatacenter string) verifyWatchRequest { } } -func genVerifyServiceSpecificRequest(expectedCacheType, expectedService, expectedFilter, expectedDatacenter string, connect bool) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, expectedCacheType, cacheType) +func genVerifyServiceSpecificRequest(expectedService, expectedFilter, expectedDatacenter string, connect bool) verifyWatchRequest { + return genVerifyServiceSpecificPeeredRequest(expectedService, expectedFilter, expectedDatacenter, "", connect) +} +func genVerifyServiceSpecificPeeredRequest(expectedService, expectedFilter, expectedDatacenter, expectedPeer string, connect bool) verifyWatchRequest { + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.ServiceSpecificRequest) require.True(t, ok) require.Equal(t, expectedDatacenter, reqReal.Datacenter) + require.Equal(t, expectedPeer, reqReal.PeerName) require.Equal(t, expectedService, reqReal.ServiceName) require.Equal(t, expectedFilter, reqReal.QueryOptions.Filter) require.Equal(t, connect, reqReal.Connect) } } -func genVerifyServiceWatch(expectedService, expectedFilter, expectedDatacenter string, connect bool) verifyWatchRequest { - return genVerifyServiceSpecificRequest(cachetype.HealthServicesName, expectedService, expectedFilter, expectedDatacenter, connect) -} - func genVerifyGatewayServiceWatch(expectedService, expectedDatacenter string) verifyWatchRequest { - return genVerifyServiceSpecificRequest(cachetype.GatewayServicesName, expectedService, "", expectedDatacenter, false) + return genVerifyServiceSpecificRequest(expectedService, "", expectedDatacenter, false) } func genVerifyConfigEntryWatch(expectedKind, expectedName, expectedDatacenter string) verifyWatchRequest { - return func(t testing.TB, cacheType string, request cache.Request) { - require.Equal(t, cachetype.ConfigEntryName, cacheType) - + return func(t testing.TB, request any) { reqReal, ok := request.(*structs.ConfigEntryQuery) require.True(t, ok) require.Equal(t, expectedKind, reqReal.Kind) @@ -348,7 +339,7 @@ func genVerifyConfigEntryWatch(expectedKind, expectedName, expectedDatacenter st } } -func ingressConfigWatchEvent(gwTLS bool, mixedTLS bool) cache.UpdateEvent { +func ingressConfigWatchEvent(gwTLS bool, mixedTLS bool) UpdateEvent { e := &structs.IngressGatewayConfigEntry{ TLS: structs.GatewayTLSConfig{ Enabled: gwTLS, @@ -371,7 +362,7 @@ func ingressConfigWatchEvent(gwTLS bool, mixedTLS bool) cache.UpdateEvent { } } - return cache.UpdateEvent{ + return UpdateEvent{ CorrelationID: gatewayConfigWatchID, Result: &structs.ConfigEntryResponse{ Entry: e, @@ -404,6 +395,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { t.Parallel() indexedRoots, issuedCert := TestCerts(t) + peerTrustBundles := TestPeerTrustBundles(t) // Used to account for differences in OSS/ent implementations of ServiceID.String() var ( @@ -420,8 +412,10 @@ func TestState_WatchesAndUpdates(t *testing.T) { // TODO(peering): NewUpstreamIDFromServiceName should take a PeerName extApiUID.Peer = "peer-a" - rootWatchEvent := func() cache.UpdateEvent { - return cache.UpdateEvent{ + const peerTrustDomain = "1c053652-8512-4373-90cf-5a7f6263a994.consul" + + rootWatchEvent := func() UpdateEvent { + return UpdateEvent{ CorrelationID: rootsWatchID, Result: indexedRoots, Err: nil, @@ -430,7 +424,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { type verificationStage struct { requiredWatches map[string]verifyWatchRequest - events []cache.UpdateEvent + events []UpdateEvent verifySnapshot func(t testing.TB, snap *ConfigSnapshot) } @@ -506,11 +500,8 @@ func TestState_WatchesAndUpdates(t *testing.T) { stage0 := verificationStage{ requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - leafWatchID: genVerifyLeafWatch("web", "dc1"), - intentionsWatchID: genVerifyIntentionWatch("web", "dc1"), - meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), - "upstream:" + pqUID.String(): genVerifyPreparedQueryWatch("query", "dc1"), + intentionsWatchID: genVerifyIntentionWatch("web", "dc1"), + meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), fmt.Sprintf("discovery-chain:%s", apiUID.String()): genVerifyDiscoveryChainWatch(&structs.DiscoveryChainRequest{ Name: "api", EvaluateInDatacenter: "dc1", @@ -561,8 +552,11 @@ func TestState_WatchesAndUpdates(t *testing.T) { Mode: meshGatewayProxyConfigValue, }, }), + "upstream:" + pqUID.String(): genVerifyPreparedQueryWatch("query", "dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + leafWatchID: genVerifyLeafWatch("web", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: leafWatchID, @@ -659,10 +653,10 @@ func TestState_WatchesAndUpdates(t *testing.T) { stage1 := verificationStage{ requiredWatches: map[string]verifyWatchRequest{ - fmt.Sprintf("upstream-target:api.default.default.dc1:%s", apiUID.String()): genVerifyServiceWatch("api", "", "dc1", true), - fmt.Sprintf("upstream-target:api-failover-remote.default.default.dc2:%s-failover-remote?dc=dc2", apiUID.String()): genVerifyServiceWatch("api-failover-remote", "", "dc2", true), - fmt.Sprintf("upstream-target:api-failover-local.default.default.dc2:%s-failover-local?dc=dc2", apiUID.String()): genVerifyServiceWatch("api-failover-local", "", "dc2", true), - fmt.Sprintf("upstream-target:api-failover-direct.default.default.dc2:%s-failover-direct?dc=dc2", apiUID.String()): genVerifyServiceWatch("api-failover-direct", "", "dc2", true), + fmt.Sprintf("upstream-target:api.default.default.dc1:%s", apiUID.String()): genVerifyServiceSpecificRequest("api", "", "dc1", true), + fmt.Sprintf("upstream-target:api-failover-remote.default.default.dc2:%s-failover-remote?dc=dc2", apiUID.String()): genVerifyServiceSpecificRequest("api-failover-remote", "", "dc2", true), + fmt.Sprintf("upstream-target:api-failover-local.default.default.dc2:%s-failover-local?dc=dc2", apiUID.String()): genVerifyServiceSpecificRequest("api-failover-local", "", "dc2", true), + fmt.Sprintf("upstream-target:api-failover-direct.default.default.dc2:%s-failover-direct?dc=dc2", apiUID.String()): genVerifyServiceSpecificRequest("api-failover-direct", "", "dc2", true), fmt.Sprintf("mesh-gateway:dc2:%s-failover-remote?dc=dc2", apiUID.String()): genVerifyGatewayWatch("dc2"), fmt.Sprintf("mesh-gateway:dc1:%s-failover-local?dc=dc2", apiUID.String()): genVerifyGatewayWatch("dc1"), }, @@ -718,16 +712,13 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, } - dbResolver := &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Name: "db", - Kind: structs.ServiceResolver, - Redirect: &structs.ServiceResolverRedirect{ - Service: "db", - Datacenter: "dc2", - }, + dbResolver := &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Name: "db", + Kind: structs.ServiceResolver, + Redirect: &structs.ServiceResolverRedirect{ + Service: "db", + Datacenter: "dc2", }, }, } @@ -745,9 +736,12 @@ func TestState_WatchesAndUpdates(t *testing.T) { stages: []verificationStage{ { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - serviceListWatchID: genVerifyListServicesWatch("dc1"), - datacentersWatchID: verifyDatacentersWatch, + datacentersWatchID: verifyDatacentersWatch, + serviceListWatchID: genVerifyDCSpecificWatch("dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + exportedServiceListWatchID: genVerifyDCSpecificWatch("dc1"), + meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + peeringTrustBundlesWatchID: genVerifyTrustBundleListWatchForMeshGateway(""), }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { require.False(t, snap.Valid(), "gateway without root is not valid") @@ -755,8 +749,24 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), + { + CorrelationID: exportedServiceListWatchID, + Result: &structs.IndexedExportedServiceList{ + Services: nil, + }, + }, + { + CorrelationID: meshConfigEntryID, + Result: &structs.ConfigEntryResponse{}, + }, + { + CorrelationID: peeringTrustBundlesWatchID, + Result: &pbpeering.TrustBundleListByServiceResponse{ + Bundles: nil, + }, + }, }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { require.False(t, snap.Valid(), "gateway without services is valid") @@ -771,7 +781,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: serviceListWatchID, Result: &structs.IndexedServiceList{ @@ -806,12 +816,21 @@ func TestState_WatchesAndUpdates(t *testing.T) { stages: []verificationStage{ { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - serviceListWatchID: genVerifyListServicesWatch("dc1"), - datacentersWatchID: verifyDatacentersWatch, + datacentersWatchID: verifyDatacentersWatch, + serviceListWatchID: genVerifyDCSpecificWatch("dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + exportedServiceListWatchID: genVerifyDCSpecificWatch("dc1"), + meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + peeringTrustBundlesWatchID: genVerifyTrustBundleListWatchForMeshGateway(""), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), + { + CorrelationID: exportedServiceListWatchID, + Result: &structs.IndexedExportedServiceList{ + Services: nil, + }, + }, { CorrelationID: serviceListWatchID, Result: &structs.IndexedServiceList{ @@ -819,7 +838,16 @@ func TestState_WatchesAndUpdates(t *testing.T) { {Name: "web"}, }, }, - Err: nil, + }, + { + CorrelationID: meshConfigEntryID, + Result: &structs.ConfigEntryResponse{}, + }, + { + CorrelationID: peeringTrustBundlesWatchID, + Result: &pbpeering.TrustBundleListByServiceResponse{ + Bundles: nil, + }, }, }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { @@ -829,7 +857,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: serviceListWatchID, Result: &structs.IndexedServiceList{ @@ -848,7 +876,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "mesh-gateway:dc4", Result: &structs.IndexedNodesWithGateways{ @@ -892,7 +920,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: federationStateListGatewaysWatchID, Result: &structs.DatacenterIndexedCheckServiceNodes{ @@ -950,9 +978,9 @@ func TestState_WatchesAndUpdates(t *testing.T) { stages: []verificationStage{ { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), gatewayConfigWatchID: genVerifyConfigEntryWatch(structs.IngressGateway, "ingress-gateway", "dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), gatewayServicesWatchID: genVerifyGatewayServiceWatch("ingress-gateway", "dc1"), }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { @@ -961,7 +989,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: meshConfigEntryID, @@ -974,7 +1002,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ ingressConfigWatchEvent(false, false), }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { @@ -984,7 +1012,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -1025,7 +1053,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { requiredWatches: map[string]verifyWatchRequest{ leafWatchID: genVerifyLeafWatch("ingress-gateway", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: leafWatchID, Result: issuedCert, @@ -1047,7 +1075,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { Datacenter: "dc1", }), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "discovery-chain:" + apiUID.String(), Result: &structs.DiscoveryChainResponse{ @@ -1063,9 +1091,9 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, { requiredWatches: map[string]verifyWatchRequest{ - "upstream-target:api.default.default.dc1:" + apiUID.String(): genVerifyServiceWatch("api", "", "dc1", true), + "upstream-target:api.default.default.dc1:" + apiUID.String(): genVerifyServiceSpecificRequest("api", "", "dc1", true), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "upstream-target:api.default.default.dc1:" + apiUID.String(), Result: &structs.IndexedCheckServiceNodes{ @@ -1119,12 +1147,12 @@ func TestState_WatchesAndUpdates(t *testing.T) { stages: []verificationStage{ { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), gatewayConfigWatchID: genVerifyConfigEntryWatch(structs.IngressGateway, "ingress-gateway", "dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), gatewayServicesWatchID: genVerifyGatewayServiceWatch("ingress-gateway", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: meshConfigEntryID, @@ -1172,7 +1200,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { "*.ingress.dc1.alt.consul.", }), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{}, @@ -1199,12 +1227,12 @@ func TestState_WatchesAndUpdates(t *testing.T) { stages: []verificationStage{ { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), gatewayConfigWatchID: genVerifyConfigEntryWatch(structs.IngressGateway, "ingress-gateway", "dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), gatewayServicesWatchID: genVerifyGatewayServiceWatch("ingress-gateway", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: meshConfigEntryID, @@ -1265,7 +1293,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { "*.ingress.dc1.alt.consul.", }), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{}, @@ -1292,10 +1320,9 @@ func TestState_WatchesAndUpdates(t *testing.T) { stages: []verificationStage{ { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), - gatewayServicesWatchID: genVerifyServiceSpecificRequest(gatewayServicesWatchID, - "terminating-gateway", "", "dc1", false), + meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + gatewayServicesWatchID: genVerifyGatewayServiceWatch("terminating-gateway", "dc1"), }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { require.False(t, snap.Valid(), "gateway without root is not valid") @@ -1305,7 +1332,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: meshConfigEntryID, @@ -1335,12 +1362,11 @@ func TestState_WatchesAndUpdates(t *testing.T) { stages: []verificationStage{ { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), - gatewayServicesWatchID: genVerifyServiceSpecificRequest(gatewayServicesWatchID, - "terminating-gateway", "", "dc1", false), + meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + gatewayServicesWatchID: genVerifyGatewayServiceWatch("terminating-gateway", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: meshConfigEntryID, @@ -1368,7 +1394,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -1427,9 +1453,9 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, { requiredWatches: map[string]verifyWatchRequest{ - "external-service:" + db.String(): genVerifyServiceWatch("db", "", "dc1", false), + "external-service:" + db.String(): genVerifyServiceSpecificRequest("db", "", "dc1", false), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "external-service:" + db.String(), Result: &structs.IndexedCheckServiceNodes{ @@ -1472,9 +1498,9 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, { requiredWatches: map[string]verifyWatchRequest{ - "external-service:" + api.String(): genVerifyServiceWatch("api", "", "dc1", false), + "external-service:" + api.String(): genVerifyServiceSpecificRequest("api", "", "dc1", false), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "external-service:" + api.String(), Result: &structs.IndexedCheckServiceNodes{ @@ -1567,7 +1593,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { requiredWatches: map[string]verifyWatchRequest{ "service-leaf:" + db.String(): genVerifyLeafWatch("db", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "service-leaf:" + db.String(), Result: issuedCert, @@ -1585,7 +1611,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { requiredWatches: map[string]verifyWatchRequest{ serviceIntentionsIDPrefix + db.String(): genVerifyIntentionWatch("db", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: serviceIntentionsIDPrefix + db.String(), Result: dbIxnMatch, @@ -1606,7 +1632,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { requiredWatches: map[string]verifyWatchRequest{ serviceConfigIDPrefix + db.String(): genVerifyResolvedConfigWatch("db", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: serviceConfigIDPrefix + db.String(), Result: dbConfig, @@ -1625,7 +1651,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { requiredWatches: map[string]verifyWatchRequest{ "service-resolver:" + db.String(): genVerifyResolverWatch("db", "dc1", structs.ServiceResolver), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "service-resolver:" + db.String(), Result: dbResolver, @@ -1641,11 +1667,11 @@ func TestState_WatchesAndUpdates(t *testing.T) { require.True(t, snap.TerminatingGateway.ServiceResolversSet[db]) require.Len(t, snap.TerminatingGateway.ServiceResolvers, 1) - require.Equal(t, dbResolver.Entries[0], snap.TerminatingGateway.ServiceResolvers[db]) + require.Equal(t, dbResolver.Entry, snap.TerminatingGateway.ServiceResolvers[db]) }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -1708,12 +1734,11 @@ func TestState_WatchesAndUpdates(t *testing.T) { stages: []verificationStage{ { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - intentionUpstreamsID: genVerifyServiceSpecificRequest(intentionUpstreamsID, - "api", "", "dc1", false), - leafWatchID: genVerifyLeafWatch("api", "dc1"), - intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), - meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionUpstreamsID: genVerifyServiceSpecificRequest("api", "", "dc1", false), + meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + leafWatchID: genVerifyLeafWatch("api", "dc1"), }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { require.False(t, snap.Valid(), "proxy without roots/leaf/intentions is not valid") @@ -1733,7 +1758,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, }, { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: leafWatchID, @@ -1794,12 +1819,11 @@ func TestState_WatchesAndUpdates(t *testing.T) { // Empty on initialization { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - intentionUpstreamsID: genVerifyServiceSpecificRequest(intentionUpstreamsID, - "api", "", "dc1", false), - leafWatchID: genVerifyLeafWatch("api", "dc1"), - intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), - meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionUpstreamsID: genVerifyServiceSpecificRequest("api", "", "dc1", false), + meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + leafWatchID: genVerifyLeafWatch("api", "dc1"), }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { require.False(t, snap.Valid(), "proxy without roots/leaf/intentions is not valid") @@ -1817,7 +1841,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, // Valid snapshot after roots, leaf, and intentions { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: leafWatchID, @@ -1854,13 +1878,12 @@ func TestState_WatchesAndUpdates(t *testing.T) { // Receiving an intention should lead to spinning up a discovery chain watch { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - intentionUpstreamsID: genVerifyServiceSpecificRequest(intentionUpstreamsID, - "api", "", "dc1", false), - leafWatchID: genVerifyLeafWatch("api", "dc1"), - intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionUpstreamsID: genVerifyServiceSpecificRequest("api", "", "dc1", false), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + leafWatchID: genVerifyLeafWatch("api", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: intentionUpstreamsID, Result: &structs.IndexedServiceList{ @@ -1903,7 +1926,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { OverrideMeshGateway: structs.MeshGatewayConfig{Mode: structs.MeshGatewayModeRemote}, }), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "discovery-chain:" + dbUID.String(), Result: &structs.DiscoveryChainResponse{ @@ -1919,9 +1942,9 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, { requiredWatches: map[string]verifyWatchRequest{ - "upstream-target:db.default.default.dc1:" + dbUID.String(): genVerifyServiceWatch("db", "", "dc1", true), + "upstream-target:db.default.default.dc1:" + dbUID.String(): genVerifyServiceSpecificRequest("db", "", "dc1", true), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "upstream-target:db.default.default.dc1:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ @@ -2072,7 +2095,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { OverrideMeshGateway: structs.MeshGatewayConfig{Mode: structs.MeshGatewayModeRemote}, }), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "discovery-chain:" + dbUID.String(), Result: &structs.DiscoveryChainResponse{ @@ -2099,7 +2122,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, { // Receive a new upstream target event without proxy1. - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "upstream-target:db.default.default.dc1:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ @@ -2180,7 +2203,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, { // Receive a new upstream target event with a conflicting passthrough address - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "upstream-target:api.default.default.dc1:" + apiUID.String(), Result: &structs.IndexedCheckServiceNodes{ @@ -2262,7 +2285,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, { // Event with no nodes should clean up addrs - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "upstream-target:api.default.default.dc1:" + apiUID.String(), Result: &structs.IndexedCheckServiceNodes{ @@ -2286,13 +2309,12 @@ func TestState_WatchesAndUpdates(t *testing.T) { { // Empty list of upstreams should clean up map keys requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - intentionUpstreamsID: genVerifyServiceSpecificRequest(intentionUpstreamsID, - "api", "", "dc1", false), - leafWatchID: genVerifyLeafWatch("api", "dc1"), - intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionUpstreamsID: genVerifyServiceSpecificRequest("api", "", "dc1", false), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + leafWatchID: genVerifyLeafWatch("api", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: intentionUpstreamsID, Result: &structs.IndexedServiceList{ @@ -2353,12 +2375,9 @@ func TestState_WatchesAndUpdates(t *testing.T) { // Empty on initialization { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - intentionUpstreamsID: genVerifyServiceSpecificRequest(intentionUpstreamsID, - "api", "", "dc1", false), - leafWatchID: genVerifyLeafWatch("api", "dc1"), - intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), - meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), + intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionUpstreamsID: genVerifyServiceSpecificRequest("api", "", "dc1", false), + meshConfigEntryID: genVerifyMeshConfigWatch("dc1"), "discovery-chain:" + upstreamIDForDC2(dbUID).String(): genVerifyDiscoveryChainWatch(&structs.DiscoveryChainRequest{ Name: "db", EvaluateInDatacenter: "dc2", @@ -2367,6 +2386,8 @@ func TestState_WatchesAndUpdates(t *testing.T) { Datacenter: "dc1", OverrideMeshGateway: structs.MeshGatewayConfig{Mode: structs.MeshGatewayModeLocal}, }), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + leafWatchID: genVerifyLeafWatch("api", "dc1"), }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { require.False(t, snap.Valid(), "proxy without roots/leaf/intentions is not valid") @@ -2385,7 +2406,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, // Valid snapshot after roots, leaf, and intentions { - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), { CorrelationID: leafWatchID, @@ -2431,7 +2452,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { OverrideMeshGateway: structs.MeshGatewayConfig{Mode: structs.MeshGatewayModeLocal}, }), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: "discovery-chain:" + upstreamIDForDC2(dbUID).String(), Result: &structs.DiscoveryChainResponse{ @@ -2454,11 +2475,8 @@ func TestState_WatchesAndUpdates(t *testing.T) { // be deleted from the snapshot. { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - intentionUpstreamsID: genVerifyServiceSpecificRequest(intentionUpstreamsID, - "api", "", "dc1", false), - leafWatchID: genVerifyLeafWatch("api", "dc1"), - intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionsWatchID: genVerifyIntentionWatch("api", "dc1"), + intentionUpstreamsID: genVerifyServiceSpecificRequest("api", "", "dc1", false), "discovery-chain:" + upstreamIDForDC2(dbUID).String(): genVerifyDiscoveryChainWatch(&structs.DiscoveryChainRequest{ Name: "db", EvaluateInDatacenter: "dc2", @@ -2467,8 +2485,10 @@ func TestState_WatchesAndUpdates(t *testing.T) { Datacenter: "dc1", OverrideMeshGateway: structs.MeshGatewayConfig{Mode: structs.MeshGatewayModeLocal}, }), + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + leafWatchID: genVerifyLeafWatch("api", "dc1"), }, - events: []cache.UpdateEvent{ + events: []UpdateEvent{ { CorrelationID: intentionUpstreamsID, Result: &structs.IndexedServiceList{ @@ -2528,8 +2548,6 @@ func TestState_WatchesAndUpdates(t *testing.T) { // First evaluate peered upstream { requiredWatches: map[string]verifyWatchRequest{ - rootsWatchID: genVerifyRootsWatch("dc1"), - leafWatchID: genVerifyLeafWatch("web", "dc1"), fmt.Sprintf("discovery-chain:%s", apiUID.String()): genVerifyDiscoveryChainWatch(&structs.DiscoveryChainRequest{ Name: "api", EvaluateInDatacenter: "dc1", @@ -2537,31 +2555,42 @@ func TestState_WatchesAndUpdates(t *testing.T) { EvaluateInPartition: "default", Datacenter: "dc1", }), - // No Peering watch + rootsWatchID: genVerifyDCSpecificWatch("dc1"), + leafWatchID: genVerifyLeafWatch("web", "dc1"), + peeringTrustBundlesWatchID: genVerifyTrustBundleListWatch("web"), + peerTrustBundleIDPrefix + "peer-a": genVerifyTrustBundleReadWatch("peer-a"), + upstreamPeerWatchIDPrefix + extApiUID.String(): genVerifyServiceSpecificPeeredRequest("api-a", "", "dc1", "peer-a", true), }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { require.False(t, snap.Valid(), "should not be valid") require.True(t, snap.MeshGateway.isEmpty()) - // Even though there were no events to trigger the watches, - // the peered upstream is written to the maps - require.Len(t, snap.ConnectProxy.DiscoveryChain, 1, "%+v", snap.ConnectProxy.DiscoveryChain) - require.NotNil(t, snap.ConnectProxy.DiscoveryChain[extApiUID]) - require.Len(t, snap.ConnectProxy.WatchedDiscoveryChains, 1, "%+v", snap.ConnectProxy.WatchedDiscoveryChains) - require.NotNil(t, snap.ConnectProxy.WatchedDiscoveryChains[extApiUID]) - require.Len(t, snap.ConnectProxy.WatchedUpstreams, 1, "%+v", snap.ConnectProxy.WatchedUpstreams) - require.Len(t, snap.ConnectProxy.WatchedUpstreamEndpoints, 1, "%+v", snap.ConnectProxy.WatchedUpstreamEndpoints) - require.Len(t, snap.ConnectProxy.WatchedGateways, 1, "%+v", snap.ConnectProxy.WatchedGateways) - require.Len(t, snap.ConnectProxy.WatchedGatewayEndpoints, 1, "%+v", snap.ConnectProxy.WatchedGatewayEndpoints) + require.Len(t, snap.ConnectProxy.DiscoveryChain, 0, "%+v", snap.ConnectProxy.DiscoveryChain) + require.Len(t, snap.ConnectProxy.WatchedDiscoveryChains, 0, "%+v", snap.ConnectProxy.WatchedDiscoveryChains) + require.Len(t, snap.ConnectProxy.WatchedUpstreams, 0, "%+v", snap.ConnectProxy.WatchedUpstreams) + require.Len(t, snap.ConnectProxy.WatchedUpstreamEndpoints, 0, "%+v", snap.ConnectProxy.WatchedUpstreamEndpoints) + require.Len(t, snap.ConnectProxy.WatchedGateways, 0, "%+v", snap.ConnectProxy.WatchedGateways) + require.Len(t, snap.ConnectProxy.WatchedGatewayEndpoints, 0, "%+v", snap.ConnectProxy.WatchedGatewayEndpoints) + + require.Contains(t, snap.ConnectProxy.WatchedPeerTrustBundles, "peer-a", "%+v", snap.ConnectProxy.WatchedPeerTrustBundles) + require.Len(t, snap.ConnectProxy.PeerTrustBundles, 0, "%+v", snap.ConnectProxy.PeerTrustBundles) + + require.Len(t, snap.ConnectProxy.PeerUpstreamEndpoints, 0, "%+v", snap.ConnectProxy.PeerUpstreamEndpoints) require.Len(t, snap.ConnectProxy.WatchedServiceChecks, 0, "%+v", snap.ConnectProxy.WatchedServiceChecks) require.Len(t, snap.ConnectProxy.PreparedQueryEndpoints, 0, "%+v", snap.ConnectProxy.PreparedQueryEndpoints) + require.Len(t, snap.ConnectProxy.PeeringTrustBundles, 0, "%+v", snap.ConnectProxy.PeeringTrustBundles) + require.False(t, snap.ConnectProxy.PeeringTrustBundlesSet) }, }, { // This time add the events - events: []cache.UpdateEvent{ + events: []UpdateEvent{ rootWatchEvent(), + { + CorrelationID: peeringTrustBundlesWatchID, + Result: peerTrustBundles, + }, { CorrelationID: leafWatchID, Result: issuedCert, @@ -2583,18 +2612,62 @@ func TestState_WatchesAndUpdates(t *testing.T) { }, Err: nil, }, + { + CorrelationID: peerTrustBundleIDPrefix + "peer-a", + Result: &pbpeering.TrustBundleReadResponse{ + Bundle: peerTrustBundles.Bundles[0], + }, + }, + { + CorrelationID: upstreamPeerWatchIDPrefix + extApiUID.String(), + Result: &structs.IndexedCheckServiceNodes{ + Nodes: structs.CheckServiceNodes{ + { + Node: &structs.Node{ + Node: "node1", + Address: "127.0.0.1", + PeerName: "peer-a", + }, + Service: &structs.NodeService{ + ID: "api-a-1", + Service: "api-a", + PeerName: "peer-a", + Connect: structs.ServiceConnect{ + PeerMeta: &structs.PeeringServiceMeta{ + SNI: []string{ + "payments.default.default.cloud.external." + peerTrustDomain, + }, + SpiffeID: []string{ + "spiffe://" + peerTrustDomain + "/ns/default/dc/cloud-dc/svc/payments", + }, + Protocol: "tcp", + }, + }, + }, + }, + }, + }, + }, }, verifySnapshot: func(t testing.TB, snap *ConfigSnapshot) { require.True(t, snap.Valid()) require.True(t, snap.MeshGateway.isEmpty()) + require.Equal(t, indexedRoots, snap.Roots) require.Equal(t, issuedCert, snap.ConnectProxy.Leaf) + prototest.AssertDeepEqual(t, peerTrustBundles.Bundles, snap.ConnectProxy.PeeringTrustBundles) - require.Len(t, snap.ConnectProxy.DiscoveryChain, 2, "%+v", snap.ConnectProxy.DiscoveryChain) - require.Len(t, snap.ConnectProxy.WatchedUpstreams, 2, "%+v", snap.ConnectProxy.WatchedUpstreams) - require.Len(t, snap.ConnectProxy.WatchedUpstreamEndpoints, 2, "%+v", snap.ConnectProxy.WatchedUpstreamEndpoints) - require.Len(t, snap.ConnectProxy.WatchedGateways, 2, "%+v", snap.ConnectProxy.WatchedGateways) - require.Len(t, snap.ConnectProxy.WatchedGatewayEndpoints, 2, "%+v", snap.ConnectProxy.WatchedGatewayEndpoints) + require.Len(t, snap.ConnectProxy.DiscoveryChain, 1, "%+v", snap.ConnectProxy.DiscoveryChain) + require.Len(t, snap.ConnectProxy.WatchedUpstreams, 1, "%+v", snap.ConnectProxy.WatchedUpstreams) + require.Len(t, snap.ConnectProxy.WatchedUpstreamEndpoints, 1, "%+v", snap.ConnectProxy.WatchedUpstreamEndpoints) + require.Len(t, snap.ConnectProxy.WatchedGateways, 1, "%+v", snap.ConnectProxy.WatchedGateways) + require.Len(t, snap.ConnectProxy.WatchedGatewayEndpoints, 1, "%+v", snap.ConnectProxy.WatchedGatewayEndpoints) + + require.Contains(t, snap.ConnectProxy.WatchedPeerTrustBundles, "peer-a", "%+v", snap.ConnectProxy.WatchedPeerTrustBundles) + require.Equal(t, peerTrustBundles.Bundles[0], snap.ConnectProxy.PeerTrustBundles["peer-a"], "%+v", snap.ConnectProxy.WatchedPeerTrustBundles) + + require.Len(t, snap.ConnectProxy.PeerUpstreamEndpoints, 1, "%+v", snap.ConnectProxy.PeerUpstreamEndpoints) + require.NotNil(t, snap.ConnectProxy.PeerUpstreamEndpoints[extApiUID]) require.Len(t, snap.ConnectProxy.WatchedServiceChecks, 0, "%+v", snap.ConnectProxy.WatchedServiceChecks) require.Len(t, snap.ConnectProxy.PreparedQueryEndpoints, 0, "%+v", snap.ConnectProxy.PreparedQueryEndpoints) @@ -2606,11 +2679,10 @@ func TestState_WatchesAndUpdates(t *testing.T) { for name, tc := range cases { t.Run(name, func(t *testing.T) { - cn := newTestCacheNotifier() - state, err := newState(&tc.ns, "", stateConfig{ + proxyID := ProxyID{ServiceID: tc.ns.CompoundServiceID()} + + sc := stateConfig{ logger: testutil.Logger(t), - cache: cn, - health: &health.Client{Cache: cn, CacheName: cachetype.HealthServicesName}, source: &structs.QuerySource{ Datacenter: tc.sourceDC, }, @@ -2618,7 +2690,10 @@ func TestState_WatchesAndUpdates(t *testing.T) { Domain: "consul.", AltDomain: "alt.consul.", }, - }) + } + wr := recordWatches(&sc) + + state, err := newState(proxyID, &tc.ns, testSource, "", sc) // verify building the initial state worked require.NoError(t, err) @@ -2645,13 +2720,7 @@ func TestState_WatchesAndUpdates(t *testing.T) { require.True(t, t.Run(fmt.Sprintf("stage-%d", idx), func(t *testing.T) { for correlationId, verifier := range stage.requiredWatches { require.True(t, t.Run(correlationId, func(t *testing.T) { - // verify that the watch was initiated - cacheType, request := cn.verifyWatch(t, correlationId) - - // run the verifier if any - if verifier != nil { - verifier(t, cacheType, request) - } + wr.verify(t, correlationId, verifier) })) } diff --git a/agent/proxycfg/terminating_gateway.go b/agent/proxycfg/terminating_gateway.go index 73b968272f..f12acdb9c5 100644 --- a/agent/proxycfg/terminating_gateway.go +++ b/agent/proxycfg/terminating_gateway.go @@ -5,7 +5,6 @@ import ( "fmt" "strings" - "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" "github.com/hashicorp/consul/agent/structs" ) @@ -18,7 +17,7 @@ type handlerTerminatingGateway struct { func (s *handlerTerminatingGateway) initialize(ctx context.Context) (ConfigSnapshot, error) { snap := newConfigSnapshotFromServiceInstance(s.serviceInstance, s.stateConfig) // Watch for root changes - err := s.cache.Notify(ctx, cachetype.ConnectCARootName, &structs.DCSpecificRequest{ + err := s.dataSources.CARoots.Notify(ctx, &structs.DCSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Source: *s.source, @@ -29,7 +28,7 @@ func (s *handlerTerminatingGateway) initialize(ctx context.Context) (ConfigSnaps } // Get information about the entire service mesh. - err = s.cache.Notify(ctx, cachetype.ConfigEntryName, &structs.ConfigEntryQuery{ + err = s.dataSources.ConfigEntry.Notify(ctx, &structs.ConfigEntryQuery{ Kind: structs.MeshConfig, Name: structs.MeshConfigMesh, Datacenter: s.source.Datacenter, @@ -41,7 +40,7 @@ func (s *handlerTerminatingGateway) initialize(ctx context.Context) (ConfigSnaps } // Watch for the terminating-gateway's linked services - err = s.cache.Notify(ctx, cachetype.GatewayServicesName, &structs.ServiceSpecificRequest{ + err = s.dataSources.GatewayServices.Notify(ctx, &structs.ServiceSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, ServiceName: s.service, @@ -64,11 +63,12 @@ func (s *handlerTerminatingGateway) initialize(ctx context.Context) (ConfigSnaps snap.TerminatingGateway.ServiceResolversSet = make(map[structs.ServiceName]bool) snap.TerminatingGateway.ServiceGroups = make(map[structs.ServiceName]structs.CheckServiceNodes) snap.TerminatingGateway.GatewayServices = make(map[structs.ServiceName]structs.GatewayService) + snap.TerminatingGateway.DestinationServices = make(map[structs.ServiceName]structs.GatewayService) snap.TerminatingGateway.HostnameServices = make(map[structs.ServiceName]structs.CheckServiceNodes) return snap, nil } -func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.UpdateEvent, snap *ConfigSnapshot) error { +func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u UpdateEvent, snap *ConfigSnapshot) error { if u.Err != nil { return fmt.Errorf("error filling agent cache: %v", u.Err) } @@ -112,12 +112,17 @@ func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.Up svcMap[svc.Service] = struct{}{} // Store the gateway <-> service mapping for TLS origination - snap.TerminatingGateway.GatewayServices[svc.Service] = *svc + if svc.ServiceKind == structs.GatewayServiceKindDestination { + snap.TerminatingGateway.DestinationServices[svc.Service] = *svc + } else { + snap.TerminatingGateway.GatewayServices[svc.Service] = *svc + } // Watch the health endpoint to discover endpoints for the service - if _, ok := snap.TerminatingGateway.WatchedServices[svc.Service]; !ok { + if _, ok := snap.TerminatingGateway.WatchedServices[svc.Service]; !ok && !(svc.ServiceKind == structs.GatewayServiceKindDestination) { + ctx, cancel := context.WithCancel(ctx) - err := s.health.Notify(ctx, structs.ServiceSpecificRequest{ + err := s.dataSources.Health.Notify(ctx, &structs.ServiceSpecificRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, ServiceName: svc.Service.Name, @@ -142,7 +147,7 @@ func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.Up // The gateway will enforce intentions for connections to the service if _, ok := snap.TerminatingGateway.WatchedIntentions[svc.Service]; !ok { ctx, cancel := context.WithCancel(ctx) - err := s.cache.Notify(ctx, cachetype.IntentionMatchName, &structs.IntentionQueryRequest{ + err := s.dataSources.Intentions.Notify(ctx, &structs.IntentionQueryRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Match: &structs.IntentionQueryMatch{ @@ -172,7 +177,7 @@ func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.Up // This cert is used to terminate mTLS connections on the service's behalf if _, ok := snap.TerminatingGateway.WatchedLeaves[svc.Service]; !ok { ctx, cancel := context.WithCancel(ctx) - err := s.cache.Notify(ctx, cachetype.ConnectCALeafName, &cachetype.ConnectCALeafRequest{ + err := s.dataSources.LeafCertificate.Notify(ctx, &cachetype.ConnectCALeafRequest{ Datacenter: s.source.Datacenter, Token: s.token, Service: svc.Service.Name, @@ -194,7 +199,7 @@ func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.Up // These are used to determine the protocol for the target service. if _, ok := snap.TerminatingGateway.WatchedConfigs[svc.Service]; !ok { ctx, cancel := context.WithCancel(ctx) - err := s.cache.Notify(ctx, cachetype.ResolvedServiceConfigName, &structs.ServiceConfigRequest{ + err := s.dataSources.ResolvedServiceConfig.Notify(ctx, &structs.ServiceConfigRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Name: svc.Service.Name, @@ -214,9 +219,10 @@ func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.Up // Watch service resolvers for the service // These are used to create clusters and endpoints for the service subsets - if _, ok := snap.TerminatingGateway.WatchedResolvers[svc.Service]; !ok { + if _, ok := snap.TerminatingGateway.WatchedResolvers[svc.Service]; !ok && !(svc.ServiceKind == structs.GatewayServiceKindDestination) { + ctx, cancel := context.WithCancel(ctx) - err := s.cache.Notify(ctx, cachetype.ConfigEntriesName, &structs.ConfigEntryQuery{ + err := s.dataSources.ConfigEntry.Notify(ctx, &structs.ConfigEntryQuery{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Kind: structs.ServiceResolver, @@ -243,6 +249,13 @@ func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.Up } } + // Delete endpoint service mapping for services that were not in the update + for sn := range snap.TerminatingGateway.DestinationServices { + if _, ok := svcMap[sn]; !ok { + delete(snap.TerminatingGateway.DestinationServices, sn) + } + } + // Clean up services with hostname mapping for services that were not in the update for sn := range snap.TerminatingGateway.HostnameServices { if _, ok := svcMap[sn]; !ok { @@ -340,16 +353,15 @@ func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.Up snap.TerminatingGateway.ServiceConfigs[sn] = serviceConfig case strings.HasPrefix(u.CorrelationID, serviceResolverIDPrefix): - configEntries, ok := u.Result.(*structs.IndexedConfigEntries) + resp, ok := u.Result.(*structs.ConfigEntryResponse) if !ok { return fmt.Errorf("invalid type for response: %T", u.Result) } + sn := structs.ServiceNameFromString(strings.TrimPrefix(u.CorrelationID, serviceResolverIDPrefix)) // There should only ever be one entry for a service resolver within a namespace - if len(configEntries.Entries) == 1 { - if resolver, ok := configEntries.Entries[0].(*structs.ServiceResolverConfigEntry); ok { - snap.TerminatingGateway.ServiceResolvers[sn] = resolver - } + if resolver, ok := resp.Entry.(*structs.ServiceResolverConfigEntry); ok { + snap.TerminatingGateway.ServiceResolvers[sn] = resolver } snap.TerminatingGateway.ServiceResolversSet[sn] = true diff --git a/agent/proxycfg/testing.go b/agent/proxycfg/testing.go index eb2ebfb0b2..ef6102818e 100644 --- a/agent/proxycfg/testing.go +++ b/agent/proxycfg/testing.go @@ -20,53 +20,54 @@ import ( "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/proto/pbpeering" ) -// TestCacheTypes encapsulates all the different cache types proxycfg.State will -// watch/request for controlling one during testing. -type TestCacheTypes struct { - roots *ControllableCacheType - leaf *ControllableCacheType - intentions *ControllableCacheType - health *ControllableCacheType - query *ControllableCacheType - compiledChain *ControllableCacheType - serviceHTTPChecks *ControllableCacheType - configEntry *ControllableCacheType -} - -// NewTestCacheTypes creates a set of ControllableCacheTypes for all types that -// proxycfg will watch suitable for testing a proxycfg.State or Manager. -func NewTestCacheTypes(t testing.T) *TestCacheTypes { - t.Helper() - ct := &TestCacheTypes{ - roots: NewControllableCacheType(t), - leaf: NewControllableCacheType(t), - intentions: NewControllableCacheType(t), - health: NewControllableCacheType(t), - query: NewControllableCacheType(t), - compiledChain: NewControllableCacheType(t), - serviceHTTPChecks: NewControllableCacheType(t), - configEntry: NewControllableCacheType(t), +func TestPeerTrustBundles(t testing.T) *pbpeering.TrustBundleListByServiceResponse { + return &pbpeering.TrustBundleListByServiceResponse{ + Bundles: []*pbpeering.PeeringTrustBundle{ + { + PeerName: "peer-a", + TrustDomain: "1c053652-8512-4373-90cf-5a7f6263a994.consul", + RootPEMs: []string{`-----BEGIN CERTIFICATE----- +MIICczCCAdwCCQC3BLnEmLCrSjANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV +UzELMAkGA1UECAwCQVoxEjAQBgNVBAcMCUZsYWdzdGFmZjEMMAoGA1UECgwDRm9v +MRAwDgYDVQQLDAdleGFtcGxlMQ8wDQYDVQQDDAZwZWVyLWExHTAbBgkqhkiG9w0B +CQEWDmZvb0BwZWVyLWEuY29tMB4XDTIyMDUyNjAxMDQ0NFoXDTIzMDUyNjAxMDQ0 +NFowfjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkFaMRIwEAYDVQQHDAlGbGFnc3Rh +ZmYxDDAKBgNVBAoMA0ZvbzEQMA4GA1UECwwHZXhhbXBsZTEPMA0GA1UEAwwGcGVl +ci1hMR0wGwYJKoZIhvcNAQkBFg5mb29AcGVlci1hLmNvbTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEA2zFYGTbXDAntT5pLTpZ2+VTiqx4J63VRJH1kdu11f0FV +c2jl1pqCuYDbQXknDU0Pv1Q5y0+nSAihD2KqGS571r+vHQiPtKYPYRqPEe9FzAhR +2KhWH6v/tk5DG1HqOjV9/zWRKB12gdFNZZqnw/e7NjLNq3wZ2UAwxXip5uJ8uwMC +AwEAATANBgkqhkiG9w0BAQsFAAOBgQC/CJ9Syf4aL91wZizKTejwouRYoWv4gRAk +yto45ZcNMHfJ0G2z+XAMl9ZbQsLgXmzAx4IM6y5Jckq8pKC4PEijCjlKTktLHlEy +0ggmFxtNB1tid2NC8dOzcQ3l45+gDjDqdILhAvLDjlAIebdkqVqb2CfFNW/I2CQH +ZAuKN1aoKA== +-----END CERTIFICATE-----`}, + }, + { + PeerName: "peer-b", + TrustDomain: "d89ac423-e95a-475d-94f2-1c557c57bf31.consul", + RootPEMs: []string{`-----BEGIN CERTIFICATE----- +MIICcTCCAdoCCQDyGxC08cD0BDANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJV +UzELMAkGA1UECAwCQ0ExETAPBgNVBAcMCENhcmxzYmFkMQwwCgYDVQQKDANGb28x +EDAOBgNVBAsMB2V4YW1wbGUxDzANBgNVBAMMBnBlZXItYjEdMBsGCSqGSIb3DQEJ +ARYOZm9vQHBlZXItYi5jb20wHhcNMjIwNTI2MDExNjE2WhcNMjMwNTI2MDExNjE2 +WjB9MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExETAPBgNVBAcMCENhcmxzYmFk +MQwwCgYDVQQKDANGb28xEDAOBgNVBAsMB2V4YW1wbGUxDzANBgNVBAMMBnBlZXIt +YjEdMBsGCSqGSIb3DQEJARYOZm9vQHBlZXItYi5jb20wgZ8wDQYJKoZIhvcNAQEB +BQADgY0AMIGJAoGBAL4i5erdZ5vKk3mzW9Qt6Wvw/WN/IpMDlL0a28wz9oDCtMLN +cD/XQB9yT5jUwb2s4mD1lCDZtee8MHeD8zygICozufWVB+u2KvMaoA50T9GMQD0E +z/0nz/Z703I4q13VHeTpltmEpYcfxw/7nJ3leKA34+Nj3zteJ70iqvD/TNBBAgMB +AAEwDQYJKoZIhvcNAQELBQADgYEAbL04gicH+EIznDNhZJEb1guMBtBBJ8kujPyU +ao8xhlUuorDTLwhLpkKsOhD8619oSS8KynjEBichidQRkwxIaze0a2mrGT+tGBMf +pVz6UeCkqpde6bSJ/ozEe/2seQzKqYvRT1oUjLwYvY7OIh2DzYibOAxh6fewYAmU +5j5qNLc= +-----END CERTIFICATE-----`}, + }, + }, } - ct.query.blocking = false - return ct -} - -// TestCacheWithTypes registers ControllableCacheTypes for all types that -// proxycfg will watch suitable for testing a proxycfg.State or Manager. -func TestCacheWithTypes(t testing.T, types *TestCacheTypes) *cache.Cache { - c := cache.New(cache.Options{}) - c.RegisterType(cachetype.ConnectCARootName, types.roots) - c.RegisterType(cachetype.ConnectCALeafName, types.leaf) - c.RegisterType(cachetype.IntentionMatchName, types.intentions) - c.RegisterType(cachetype.HealthServicesName, types.health) - c.RegisterType(cachetype.PreparedQueryName, types.query) - c.RegisterType(cachetype.CompiledDiscoveryChainName, types.compiledChain) - c.RegisterType(cachetype.ServiceHTTPChecksName, types.serviceHTTPChecks) - c.RegisterType(cachetype.ConfigEntryName, types.configEntry) - - return c } // TestCerts generates a CA and Leaf suitable for returning as mock CA @@ -102,6 +103,39 @@ func TestLeafForCA(t testing.T, ca *structs.CARoot) *structs.IssuedCert { } } +// TestCertsForMeshGateway generates a CA and Leaf suitable for returning as +// mock CA root/leaf cache requests in a mesh-gateway for peering. +func TestCertsForMeshGateway(t testing.T) (*structs.IndexedCARoots, *structs.IssuedCert) { + t.Helper() + + ca := connect.TestCA(t, nil) + roots := &structs.IndexedCARoots{ + ActiveRootID: ca.ID, + TrustDomain: fmt.Sprintf("%s.consul", connect.TestClusterID), + Roots: []*structs.CARoot{ca}, + } + return roots, TestMeshGatewayLeafForCA(t, ca) +} + +// TestMeshGatewayLeafForCA generates new mesh-gateway Leaf suitable for returning as mock CA +// leaf cache response, signed by an existing CA. +func TestMeshGatewayLeafForCA(t testing.T, ca *structs.CARoot) *structs.IssuedCert { + leafPEM, pkPEM := connect.TestMeshGatewayLeaf(t, "default", ca) + + leafCert, err := connect.ParseCert(leafPEM) + require.NoError(t, err) + + return &structs.IssuedCert{ + SerialNumber: connect.EncodeSerialNumber(leafCert.SerialNumber), + CertPEM: leafPEM, + PrivateKeyPEM: pkPEM, + Kind: structs.ServiceKindMeshGateway, + KindURI: leafCert.URIs[0].String(), + ValidAfter: leafCert.NotBefore, + ValidBefore: leafCert.NotAfter, + } +} + // TestIntentions returns a sample intentions match result useful to // mocking service discovery cache results. func TestIntentions() *structs.IndexedIntentionMatches { @@ -668,19 +702,9 @@ func TestGatewayServiceGroupFooDC1(t testing.T) structs.CheckServiceNodes { } } -type noopCacheNotifier struct{} +type noopDataSource[ReqType any] struct{} -var _ CacheNotifier = (*noopCacheNotifier)(nil) - -func (*noopCacheNotifier) Notify(_ context.Context, _ string, _ cache.Request, _ string, _ chan<- cache.UpdateEvent) error { - return nil -} - -type noopHealth struct{} - -var _ Health = (*noopHealth)(nil) - -func (*noopHealth) Notify(_ context.Context, _ structs.ServiceSpecificRequest, _ string, _ chan<- cache.UpdateEvent) error { +func (*noopDataSource[ReqType]) Notify(context.Context, ReqType, string, chan<- UpdateEvent) error { return nil } @@ -698,7 +722,7 @@ func testConfigSnapshotFixture( ns *structs.NodeService, nsFn func(ns *structs.NodeService), serverSNIFn ServerSNIFunc, - updates []cache.UpdateEvent, + updates []UpdateEvent, ) *ConfigSnapshot { const token = "" @@ -711,8 +735,27 @@ func testConfigSnapshotFixture( source: &structs.QuerySource{ Datacenter: "dc1", }, - cache: &noopCacheNotifier{}, - health: &noopHealth{}, + dataSources: DataSources{ + CARoots: &noopDataSource[*structs.DCSpecificRequest]{}, + CompiledDiscoveryChain: &noopDataSource[*structs.DiscoveryChainRequest]{}, + ConfigEntry: &noopDataSource[*structs.ConfigEntryQuery]{}, + ConfigEntryList: &noopDataSource[*structs.ConfigEntryQuery]{}, + Datacenters: &noopDataSource[*structs.DatacentersRequest]{}, + FederationStateListMeshGateways: &noopDataSource[*structs.DCSpecificRequest]{}, + GatewayServices: &noopDataSource[*structs.ServiceSpecificRequest]{}, + Health: &noopDataSource[*structs.ServiceSpecificRequest]{}, + HTTPChecks: &noopDataSource[*cachetype.ServiceHTTPChecksRequest]{}, + Intentions: &noopDataSource[*structs.IntentionQueryRequest]{}, + IntentionUpstreams: &noopDataSource[*structs.ServiceSpecificRequest]{}, + InternalServiceDump: &noopDataSource[*structs.ServiceDumpRequest]{}, + LeafCertificate: &noopDataSource[*cachetype.ConnectCALeafRequest]{}, + PreparedQuery: &noopDataSource[*structs.PreparedQueryExecuteRequest]{}, + ResolvedServiceConfig: &noopDataSource[*structs.ServiceConfigRequest]{}, + ServiceList: &noopDataSource[*structs.DCSpecificRequest]{}, + TrustBundle: &noopDataSource[*pbpeering.TrustBundleReadRequest]{}, + TrustBundleList: &noopDataSource[*pbpeering.TrustBundleListByServiceRequest]{}, + ExportedPeeredServices: &noopDataSource[*structs.DCSpecificRequest]{}, + }, dnsConfig: DNSConfig{ // TODO: make configurable Domain: "consul", AltDomain: "", @@ -720,7 +763,8 @@ func testConfigSnapshotFixture( serverSNIFn: serverSNIFn, intentionDefaultAllow: false, // TODO: make configurable } - s, err := newServiceInstanceFromNodeService(ns, token) + testConfigSnapshotFixtureEnterprise(&config) + s, err := newServiceInstanceFromNodeService(ProxyID{ServiceID: ns.CompoundServiceID()}, ns, token) if err != nil { t.Fatalf("err: %v", err) return nil @@ -750,15 +794,15 @@ func testConfigSnapshotFixture( return &snap } -func testSpliceEvents(base, extra []cache.UpdateEvent) []cache.UpdateEvent { +func testSpliceEvents(base, extra []UpdateEvent) []UpdateEvent { if len(extra) == 0 { return base } var ( - hasExtra = make(map[string]cache.UpdateEvent) + hasExtra = make(map[string]UpdateEvent) completeExtra = make(map[string]struct{}) - allEvents []cache.UpdateEvent + allEvents []UpdateEvent ) for _, e := range extra { @@ -889,3 +933,165 @@ func projectRoot() string { _, base, _, _ := runtime.Caller(0) return filepath.Dir(base) } + +// NewTestDataSources creates a set of data sources that can be used to provide +// the Manager with data in tests. +func NewTestDataSources() *TestDataSources { + srcs := &TestDataSources{ + CARoots: NewTestDataSource[*structs.DCSpecificRequest, *structs.IndexedCARoots](), + CompiledDiscoveryChain: NewTestDataSource[*structs.DiscoveryChainRequest, *structs.DiscoveryChainResponse](), + ConfigEntry: NewTestDataSource[*structs.ConfigEntryQuery, *structs.ConfigEntryResponse](), + ConfigEntryList: NewTestDataSource[*structs.ConfigEntryQuery, *structs.IndexedConfigEntries](), + Datacenters: NewTestDataSource[*structs.DatacentersRequest, *[]string](), + FederationStateListMeshGateways: NewTestDataSource[*structs.DCSpecificRequest, *structs.DatacenterIndexedCheckServiceNodes](), + GatewayServices: NewTestDataSource[*structs.ServiceSpecificRequest, *structs.IndexedGatewayServices](), + Health: NewTestDataSource[*structs.ServiceSpecificRequest, *structs.IndexedCheckServiceNodes](), + HTTPChecks: NewTestDataSource[*cachetype.ServiceHTTPChecksRequest, []structs.CheckType](), + Intentions: NewTestDataSource[*structs.IntentionQueryRequest, *structs.IndexedIntentionMatches](), + IntentionUpstreams: NewTestDataSource[*structs.ServiceSpecificRequest, *structs.IndexedServiceList](), + InternalServiceDump: NewTestDataSource[*structs.ServiceDumpRequest, *structs.IndexedNodesWithGateways](), + LeafCertificate: NewTestDataSource[*cachetype.ConnectCALeafRequest, *structs.IssuedCert](), + PreparedQuery: NewTestDataSource[*structs.PreparedQueryExecuteRequest, *structs.PreparedQueryExecuteResponse](), + ResolvedServiceConfig: NewTestDataSource[*structs.ServiceConfigRequest, *structs.ServiceConfigResponse](), + ServiceList: NewTestDataSource[*structs.DCSpecificRequest, *structs.IndexedServiceList](), + TrustBundle: NewTestDataSource[*pbpeering.TrustBundleReadRequest, *pbpeering.TrustBundleReadResponse](), + TrustBundleList: NewTestDataSource[*pbpeering.TrustBundleListByServiceRequest, *pbpeering.TrustBundleListByServiceResponse](), + } + srcs.buildEnterpriseSources() + return srcs +} + +type TestDataSources struct { + CARoots *TestDataSource[*structs.DCSpecificRequest, *structs.IndexedCARoots] + CompiledDiscoveryChain *TestDataSource[*structs.DiscoveryChainRequest, *structs.DiscoveryChainResponse] + ConfigEntry *TestDataSource[*structs.ConfigEntryQuery, *structs.ConfigEntryResponse] + ConfigEntryList *TestDataSource[*structs.ConfigEntryQuery, *structs.IndexedConfigEntries] + FederationStateListMeshGateways *TestDataSource[*structs.DCSpecificRequest, *structs.DatacenterIndexedCheckServiceNodes] + Datacenters *TestDataSource[*structs.DatacentersRequest, *[]string] + GatewayServices *TestDataSource[*structs.ServiceSpecificRequest, *structs.IndexedGatewayServices] + Health *TestDataSource[*structs.ServiceSpecificRequest, *structs.IndexedCheckServiceNodes] + HTTPChecks *TestDataSource[*cachetype.ServiceHTTPChecksRequest, []structs.CheckType] + Intentions *TestDataSource[*structs.IntentionQueryRequest, *structs.IndexedIntentionMatches] + IntentionUpstreams *TestDataSource[*structs.ServiceSpecificRequest, *structs.IndexedServiceList] + InternalServiceDump *TestDataSource[*structs.ServiceDumpRequest, *structs.IndexedNodesWithGateways] + LeafCertificate *TestDataSource[*cachetype.ConnectCALeafRequest, *structs.IssuedCert] + PreparedQuery *TestDataSource[*structs.PreparedQueryExecuteRequest, *structs.PreparedQueryExecuteResponse] + ResolvedServiceConfig *TestDataSource[*structs.ServiceConfigRequest, *structs.ServiceConfigResponse] + ServiceList *TestDataSource[*structs.DCSpecificRequest, *structs.IndexedServiceList] + TrustBundle *TestDataSource[*pbpeering.TrustBundleReadRequest, *pbpeering.TrustBundleReadResponse] + TrustBundleList *TestDataSource[*pbpeering.TrustBundleListByServiceRequest, *pbpeering.TrustBundleListByServiceResponse] + + TestDataSourcesEnterprise +} + +func (t *TestDataSources) ToDataSources() DataSources { + ds := DataSources{ + CARoots: t.CARoots, + CompiledDiscoveryChain: t.CompiledDiscoveryChain, + ConfigEntry: t.ConfigEntry, + ConfigEntryList: t.ConfigEntryList, + Datacenters: t.Datacenters, + GatewayServices: t.GatewayServices, + Health: t.Health, + HTTPChecks: t.HTTPChecks, + Intentions: t.Intentions, + IntentionUpstreams: t.IntentionUpstreams, + InternalServiceDump: t.InternalServiceDump, + LeafCertificate: t.LeafCertificate, + PreparedQuery: t.PreparedQuery, + ResolvedServiceConfig: t.ResolvedServiceConfig, + ServiceList: t.ServiceList, + TrustBundle: t.TrustBundle, + TrustBundleList: t.TrustBundleList, + } + t.fillEnterpriseDataSources(&ds) + return ds +} + +// NewTestDataSource creates a test data source that accepts requests to Notify +// of type RequestType and dispatches UpdateEvents with a result of type ValType. +// +// TODO(agentless): we still depend on cache.Request here because it provides the +// CacheInfo method used for hashing the request - this won't work when we extract +// this package into a shared library. +func NewTestDataSource[ReqType cache.Request, ValType any]() *TestDataSource[ReqType, ValType] { + return &TestDataSource[ReqType, ValType]{ + data: make(map[string]ValType), + trigger: make(chan struct{}), + } +} + +type TestDataSource[ReqType cache.Request, ValType any] struct { + mu sync.Mutex + data map[string]ValType + lastReq ReqType + + // Note: trigger is currently global for all requests of the given type, so + // Manager may receive duplicate events - as the dispatch goroutine will be + // woken up whenever *any* requested data changes. + trigger chan struct{} +} + +// Notify satisfies the interfaces used by Manager to subscribe to data. +func (t *TestDataSource[ReqType, ValType]) Notify(ctx context.Context, req ReqType, correlationID string, ch chan<- UpdateEvent) error { + t.mu.Lock() + t.lastReq = req + t.mu.Unlock() + + go t.dispatch(ctx, correlationID, t.reqKey(req), ch) + + return nil +} + +func (t *TestDataSource[ReqType, ValType]) dispatch(ctx context.Context, correlationID, key string, ch chan<- UpdateEvent) { + for { + t.mu.Lock() + val, ok := t.data[key] + trigger := t.trigger + t.mu.Unlock() + + if ok { + event := UpdateEvent{ + CorrelationID: correlationID, + Result: val, + } + + select { + case ch <- event: + case <-ctx.Done(): + } + } + + select { + case <-trigger: + case <-ctx.Done(): + return + } + } +} + +func (t *TestDataSource[ReqType, ValType]) reqKey(req ReqType) string { + return req.CacheInfo().Key +} + +// Set broadcasts the given value to consumers that subscribed with the given +// request. +func (t *TestDataSource[ReqType, ValType]) Set(req ReqType, val ValType) error { + t.mu.Lock() + t.data[t.reqKey(req)] = val + oldTrigger := t.trigger + t.trigger = make(chan struct{}) + t.mu.Unlock() + + close(oldTrigger) + + return nil +} + +// LastReq returns the request from the last call to Notify that was received. +func (t *TestDataSource[ReqType, ValType]) LastReq() ReqType { + t.mu.Lock() + defer t.mu.Unlock() + + return t.lastReq +} diff --git a/agent/proxycfg/testing_connect_proxy.go b/agent/proxycfg/testing_connect_proxy.go index 61db728c2f..297208c8bd 100644 --- a/agent/proxycfg/testing_connect_proxy.go +++ b/agent/proxycfg/testing_connect_proxy.go @@ -1,17 +1,19 @@ package proxycfg import ( + "time" + "github.com/mitchellh/go-testing-interface" "github.com/stretchr/testify/assert" - "github.com/hashicorp/consul/agent/cache" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/discoverychain" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/types" ) // TestConfigSnapshot returns a fully populated snapshot -func TestConfigSnapshot(t testing.T, nsFn func(ns *structs.NodeService), extraUpdates []cache.UpdateEvent) *ConfigSnapshot { +func TestConfigSnapshot(t testing.T, nsFn func(ns *structs.NodeService), extraUpdates []UpdateEvent) *ConfigSnapshot { roots, leaf := TestCerts(t) // no entries implies we'll get a default chain @@ -29,7 +31,7 @@ func TestConfigSnapshot(t testing.T, nsFn func(ns *structs.NodeService), extraUp webSN = structs.ServiceIDString("web", nil) ) - baseEvents := []cache.UpdateEvent{ + baseEvents := []UpdateEvent{ { CorrelationID: rootsWatchID, Result: roots, @@ -94,7 +96,7 @@ func TestConfigSnapshotDiscoveryChain( t testing.T, variation string, nsFn func(ns *structs.NodeService), - extraUpdates []cache.UpdateEvent, + extraUpdates []UpdateEvent, additionalEntries ...structs.ConfigEntry, ) *ConfigSnapshot { roots, leaf := TestCerts(t) @@ -108,7 +110,7 @@ func TestConfigSnapshotDiscoveryChain( webSN = structs.ServiceIDString("web", nil) ) - baseEvents := testSpliceEvents([]cache.UpdateEvent{ + baseEvents := testSpliceEvents([]UpdateEvent{ { CorrelationID: rootsWatchID, Result: roots, @@ -171,7 +173,7 @@ func TestConfigSnapshotExposeConfig(t testing.T, nsFn func(ns *structs.NodeServi webSN = structs.ServiceIDString("web", nil) ) - baseEvents := []cache.UpdateEvent{ + baseEvents := []UpdateEvent{ { CorrelationID: rootsWatchID, Result: roots, @@ -223,6 +225,33 @@ func TestConfigSnapshotExposeConfig(t testing.T, nsFn func(ns *structs.NodeServi }, nsFn, nil, baseEvents) } +func TestConfigSnapshotExposeChecks(t testing.T) *ConfigSnapshot { + return TestConfigSnapshot(t, + func(ns *structs.NodeService) { + ns.Address = "1.2.3.4" + ns.Port = 8080 + ns.Proxy.Upstreams = nil + ns.Proxy.Expose = structs.ExposeConfig{ + Checks: true, + } + }, + []UpdateEvent{ + { + CorrelationID: svcChecksWatchIDPrefix + structs.ServiceIDString("web", nil), + Result: []structs.CheckType{{ + CheckID: types.CheckID("http"), + Name: "http", + HTTP: "http://127.0.0.1:8181/debug", + ProxyHTTP: "http://:21500/debug", + Method: "GET", + Interval: 10 * time.Second, + Timeout: 1 * time.Second, + }}, + }, + }, + ) +} + func TestConfigSnapshotGRPCExposeHTTP1(t testing.T) *ConfigSnapshot { roots, leaf := TestCerts(t) @@ -252,7 +281,7 @@ func TestConfigSnapshotGRPCExposeHTTP1(t testing.T) *ConfigSnapshot { }, Meta: nil, TaggedAddresses: nil, - }, nil, nil, []cache.UpdateEvent{ + }, nil, nil, []UpdateEvent{ { CorrelationID: rootsWatchID, Result: roots, diff --git a/agent/proxycfg/testing_ingress_gateway.go b/agent/proxycfg/testing_ingress_gateway.go index b0f09449df..6846bb8a31 100644 --- a/agent/proxycfg/testing_ingress_gateway.go +++ b/agent/proxycfg/testing_ingress_gateway.go @@ -7,7 +7,6 @@ import ( "github.com/stretchr/testify/require" "github.com/hashicorp/consul/acl" - "github.com/hashicorp/consul/agent/cache" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/discoverychain" "github.com/hashicorp/consul/agent/structs" @@ -21,7 +20,7 @@ func TestConfigSnapshotIngressGateway( variation string, nsFn func(ns *structs.NodeService), configFn func(entry *structs.IngressGatewayConfigEntry), - extraUpdates []cache.UpdateEvent, + extraUpdates []UpdateEvent, additionalEntries ...structs.ConfigEntry, ) *ConfigSnapshot { roots, placeholderLeaf := TestCerts(t) @@ -47,7 +46,7 @@ func TestConfigSnapshotIngressGateway( configFn(entry) } - baseEvents := []cache.UpdateEvent{ + baseEvents := []UpdateEvent{ { CorrelationID: rootsWatchID, Result: roots, @@ -71,7 +70,7 @@ func TestConfigSnapshotIngressGateway( } if populateServices { - baseEvents = testSpliceEvents(baseEvents, []cache.UpdateEvent{{ + baseEvents = testSpliceEvents(baseEvents, []UpdateEvent{{ CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ Services: []*structs.GatewayService{ @@ -155,7 +154,7 @@ func TestConfigSnapshotIngressGatewaySDS_GatewayLevel_MixedTLS(t testing.T) *Con }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -270,7 +269,7 @@ func TestConfigSnapshotIngressGatewaySDS_GatewayAndListenerLevel_HTTP(t testing. }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -344,7 +343,7 @@ func TestConfigSnapshotIngressGatewaySDS_ServiceLevel(t testing.T) *ConfigSnapsh }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -434,7 +433,7 @@ func TestConfigSnapshotIngressGatewaySDS_ListenerAndServiceLevel(t testing.T) *C }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -519,7 +518,7 @@ func TestConfigSnapshotIngressGatewaySDS_MixedNoTLS(t testing.T) *ConfigSnapshot }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -601,7 +600,7 @@ func TestConfigSnapshotIngressGateway_MixedListeners(t testing.T) *ConfigSnapsho }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -717,7 +716,7 @@ func TestConfigSnapshotIngress_HTTPMultipleServices(t testing.T) *ConfigSnapshot }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -801,6 +800,109 @@ func TestConfigSnapshotIngress_HTTPMultipleServices(t testing.T) *ConfigSnapshot }) } +func TestConfigSnapshotIngress_GRPCMultipleServices(t testing.T) *ConfigSnapshot { + // We do not add baz/qux here so that we test the chain.IsDefault() case + entries := []structs.ConfigEntry{ + &structs.ProxyConfigEntry{ + Kind: structs.ProxyDefaults, + Name: structs.ProxyConfigGlobal, + Config: map[string]interface{}{ + "protocol": "http", + }, + }, + &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "foo", + ConnectTimeout: 22 * time.Second, + }, + &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "bar", + ConnectTimeout: 22 * time.Second, + }, + } + + var ( + foo = structs.NewServiceName("foo", nil) + fooUID = NewUpstreamIDFromServiceName(foo) + fooChain = discoverychain.TestCompileConfigEntries(t, "foo", "default", "default", "dc1", connect.TestClusterID+".consul", nil, entries...) + + bar = structs.NewServiceName("bar", nil) + barUID = NewUpstreamIDFromServiceName(bar) + barChain = discoverychain.TestCompileConfigEntries(t, "bar", "default", "default", "dc1", connect.TestClusterID+".consul", nil, entries...) + ) + + require.False(t, fooChain.Default) + require.False(t, barChain.Default) + + return TestConfigSnapshotIngressGateway(t, false, "http", "default", nil, func(entry *structs.IngressGatewayConfigEntry) { + entry.Listeners = []structs.IngressListener{ + { + Port: 8080, + Protocol: "grpc", + Services: []structs.IngressService{ + { + Name: "foo", + Hosts: []string{ + "test1.example.com", + "test2.example.com", + "test2.example.com:8080", + }, + }, + {Name: "bar"}, + }, + }, + } + }, []UpdateEvent{ + { + CorrelationID: gatewayServicesWatchID, + Result: &structs.IndexedGatewayServices{ + Services: []*structs.GatewayService{ + { + Service: foo, + Port: 8080, + Protocol: "grpc", + Hosts: []string{ + "test1.example.com", + "test2.example.com", + "test2.example.com:8080", + }, + }, + { + Service: bar, + Port: 8080, + Protocol: "grpc", + }, + }, + }, + }, + { + CorrelationID: "discovery-chain:" + fooUID.String(), + Result: &structs.DiscoveryChainResponse{ + Chain: fooChain, + }, + }, + { + CorrelationID: "upstream-target:" + fooChain.ID() + ":" + fooUID.String(), + Result: &structs.IndexedCheckServiceNodes{ + Nodes: TestUpstreamNodes(t, "foo"), + }, + }, + { + CorrelationID: "discovery-chain:" + barUID.String(), + Result: &structs.DiscoveryChainResponse{ + Chain: barChain, + }, + }, + { + CorrelationID: "upstream-target:" + barChain.ID() + ":" + barUID.String(), + Result: &structs.IndexedCheckServiceNodes{ + Nodes: TestUpstreamNodes(t, "bar"), + }, + }, + }) +} + func TestConfigSnapshotIngress_MultipleListenersDuplicateService(t testing.T) *ConfigSnapshot { var ( foo = structs.NewServiceName("foo", nil) @@ -830,7 +932,7 @@ func TestConfigSnapshotIngress_MultipleListenersDuplicateService(t testing.T) *C }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -893,7 +995,7 @@ func TestConfigSnapshotIngressGatewayWithChain( } var ( - updates []cache.UpdateEvent + updates []UpdateEvent configFn func(entry *structs.IngressGatewayConfigEntry) populateServices bool @@ -1088,7 +1190,7 @@ func TestConfigSnapshotIngressGatewayWithChain( fooEntMeta.PartitionOrDefault(), "dc1", connect.TestClusterID+".consul", nil, entries...) - updates = []cache.UpdateEvent{ + updates = []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -1218,7 +1320,7 @@ func TestConfigSnapshotIngressGateway_TLSMinVersionListenersGatewayDefaults(t te }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -1336,7 +1438,7 @@ func TestConfigSnapshotIngressGateway_SingleTLSListener(t testing.T) *ConfigSnap }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ @@ -1436,7 +1538,7 @@ func TestConfigSnapshotIngressGateway_TLSMixedMinVersionListeners(t testing.T) * }, }, } - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ diff --git a/agent/proxycfg/testing_mesh_gateway.go b/agent/proxycfg/testing_mesh_gateway.go index c374a9aad2..82f4ff0bfd 100644 --- a/agent/proxycfg/testing_mesh_gateway.go +++ b/agent/proxycfg/testing_mesh_gateway.go @@ -5,13 +5,16 @@ import ( "time" "github.com/mitchellh/go-testing-interface" + "github.com/stretchr/testify/assert" - "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/connect" + "github.com/hashicorp/consul/agent/consul/discoverychain" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbpeering" ) -func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *structs.NodeService), extraUpdates []cache.UpdateEvent) *ConfigSnapshot { - roots, _ := TestCerts(t) +func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *structs.NodeService), extraUpdates []UpdateEvent) *ConfigSnapshot { + roots, leaf := TestCertsForMeshGateway(t) var ( populateServices = true @@ -21,6 +24,58 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st switch variant { case "default": + case "peered-services": + var ( + fooSN = structs.NewServiceName("foo", nil) + barSN = structs.NewServiceName("bar", nil) + girSN = structs.NewServiceName("gir", nil) + + fooChain = discoverychain.TestCompileConfigEntries(t, "foo", "default", "default", "dc1", connect.TestClusterID+".consul", nil) + barChain = discoverychain.TestCompileConfigEntries(t, "bar", "default", "default", "dc1", connect.TestClusterID+".consul", nil) + girChain = discoverychain.TestCompileConfigEntries(t, "gir", "default", "default", "dc1", connect.TestClusterID+".consul", nil) + ) + + assert.True(t, fooChain.Default) + assert.True(t, barChain.Default) + assert.True(t, girChain.Default) + + extraUpdates = append(extraUpdates, + UpdateEvent{ + CorrelationID: exportedServiceListWatchID, + Result: &structs.IndexedExportedServiceList{ + Services: map[string]structs.ServiceList{ + "peer-a": []structs.ServiceName{fooSN, barSN}, + "peer-b": []structs.ServiceName{girSN}, + }, + }, + }, + UpdateEvent{ + CorrelationID: "discovery-chain:" + fooSN.String(), + Result: &structs.DiscoveryChainResponse{ + Chain: fooChain, + }, + }, + UpdateEvent{ + CorrelationID: "discovery-chain:" + barSN.String(), + Result: &structs.DiscoveryChainResponse{ + Chain: barChain, + }, + }, + UpdateEvent{ + CorrelationID: "discovery-chain:" + girSN.String(), + Result: &structs.DiscoveryChainResponse{ + Chain: girChain, + }, + }, + UpdateEvent{ + CorrelationID: peeringTrustBundlesWatchID, + Result: TestPeerTrustBundles(t), + }, + UpdateEvent{ + CorrelationID: leafWatchID, + Result: leaf, + }, + ) case "federation-states": populateServices = true useFederationStates = true @@ -38,7 +93,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st useFederationStates = false deleteCrossDCEntry = false case "service-subsets": - extraUpdates = append(extraUpdates, cache.UpdateEvent{ + extraUpdates = append(extraUpdates, UpdateEvent{ CorrelationID: serviceResolversWatchID, Result: &structs.IndexedConfigEntries{ Kind: structs.ServiceResolver, @@ -60,7 +115,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st }, }) case "service-subsets2": // TODO(rb): make this merge with 'service-subsets' - extraUpdates = append(extraUpdates, cache.UpdateEvent{ + extraUpdates = append(extraUpdates, UpdateEvent{ CorrelationID: serviceResolversWatchID, Result: &structs.IndexedConfigEntries{ Kind: structs.ServiceResolver, @@ -95,7 +150,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st }, }) case "default-service-subsets2": // TODO(rb): rename to strip the 2 when the prior is merged with 'service-subsets' - extraUpdates = append(extraUpdates, cache.UpdateEvent{ + extraUpdates = append(extraUpdates, UpdateEvent{ CorrelationID: serviceResolversWatchID, Result: &structs.IndexedConfigEntries{ Kind: structs.ServiceResolver, @@ -132,7 +187,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st }, }) case "ignore-extra-resolvers": - extraUpdates = append(extraUpdates, cache.UpdateEvent{ + extraUpdates = append(extraUpdates, UpdateEvent{ CorrelationID: serviceResolversWatchID, Result: &structs.IndexedConfigEntries{ Kind: structs.ServiceResolver, @@ -169,7 +224,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st }, }) case "service-timeouts": - extraUpdates = append(extraUpdates, cache.UpdateEvent{ + extraUpdates = append(extraUpdates, UpdateEvent{ CorrelationID: serviceResolversWatchID, Result: &structs.IndexedConfigEntries{ Kind: structs.ServiceResolver, @@ -192,7 +247,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st }, }) case "non-hash-lb-injected": - extraUpdates = append(extraUpdates, cache.UpdateEvent{ + extraUpdates = append(extraUpdates, UpdateEvent{ CorrelationID: "service-resolvers", // serviceResolversWatchID Result: &structs.IndexedConfigEntries{ Kind: structs.ServiceResolver, @@ -220,7 +275,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st }, }) case "hash-lb-ignored": - extraUpdates = append(extraUpdates, cache.UpdateEvent{ + extraUpdates = append(extraUpdates, UpdateEvent{ CorrelationID: "service-resolvers", // serviceResolversWatchID Result: &structs.IndexedConfigEntries{ Kind: structs.ServiceResolver, @@ -253,11 +308,17 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st return nil } - baseEvents := []cache.UpdateEvent{ + baseEvents := []UpdateEvent{ { CorrelationID: rootsWatchID, Result: roots, }, + { + CorrelationID: exportedServiceListWatchID, + Result: &structs.IndexedExportedServiceList{ + Services: nil, + }, + }, { CorrelationID: serviceListWatchID, Result: &structs.IndexedServiceList{ @@ -275,10 +336,22 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st CorrelationID: datacentersWatchID, Result: &[]string{"dc1"}, }, + { + CorrelationID: peeringTrustBundlesWatchID, + Result: &pbpeering.TrustBundleListByServiceResponse{ + Bundles: nil, + }, + }, + { + CorrelationID: meshConfigEntryID, + Result: &structs.ConfigEntryResponse{ + Entry: nil, + }, + }, } if populateServices || useFederationStates { - baseEvents = testSpliceEvents(baseEvents, []cache.UpdateEvent{ + baseEvents = testSpliceEvents(baseEvents, []UpdateEvent{ { CorrelationID: datacentersWatchID, Result: &[]string{"dc1", "dc2", "dc4", "dc6"}, @@ -291,7 +364,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st foo = structs.NewServiceName("foo", nil) bar = structs.NewServiceName("bar", nil) ) - baseEvents = testSpliceEvents(baseEvents, []cache.UpdateEvent{ + baseEvents = testSpliceEvents(baseEvents, []UpdateEvent{ { CorrelationID: "mesh-gateway:dc2", Result: &structs.IndexedNodesWithGateways{ @@ -349,7 +422,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st }) if deleteCrossDCEntry { - baseEvents = testSpliceEvents(baseEvents, []cache.UpdateEvent{ + baseEvents = testSpliceEvents(baseEvents, []UpdateEvent{ { // Have the cross-dc query mechanism not work for dc2 so // fedstates will infill. @@ -399,7 +472,7 @@ func TestConfigSnapshotMeshGateway(t testing.T, variant string, nsFn func(ns *st } } - baseEvents = testSpliceEvents(baseEvents, []cache.UpdateEvent{ + baseEvents = testSpliceEvents(baseEvents, []UpdateEvent{ { CorrelationID: federationStateListGatewaysWatchID, Result: &structs.DatacenterIndexedCheckServiceNodes{ diff --git a/agent/proxycfg/testing_oss.go b/agent/proxycfg/testing_oss.go new file mode 100644 index 0000000000..11f9a6adeb --- /dev/null +++ b/agent/proxycfg/testing_oss.go @@ -0,0 +1,12 @@ +//go:build !consulent +// +build !consulent + +package proxycfg + +type TestDataSourcesEnterprise struct{} + +func (*TestDataSources) buildEnterpriseSources() {} + +func (*TestDataSources) fillEnterpriseDataSources(*DataSources) {} + +func testConfigSnapshotFixtureEnterprise(*stateConfig) {} diff --git a/agent/proxycfg/testing_peering.go b/agent/proxycfg/testing_peering.go new file mode 100644 index 0000000000..9b1973c9a6 --- /dev/null +++ b/agent/proxycfg/testing_peering.go @@ -0,0 +1,110 @@ +package proxycfg + +import ( + "github.com/mitchellh/go-testing-interface" + + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbpeering" +) + +func TestConfigSnapshotPeering(t testing.T) *ConfigSnapshot { + var ( + paymentsUpstream = structs.Upstream{ + DestinationName: "payments", + DestinationPeer: "cloud", + LocalBindPort: 9090, + } + paymentsUID = NewUpstreamID(&paymentsUpstream) + + refundsUpstream = structs.Upstream{ + DestinationName: "refunds", + DestinationPeer: "cloud", + LocalBindPort: 9090, + } + refundsUID = NewUpstreamID(&refundsUpstream) + ) + + const peerTrustDomain = "1c053652-8512-4373-90cf-5a7f6263a994.consul" + + return TestConfigSnapshot(t, func(ns *structs.NodeService) { + ns.Proxy.Upstreams = structs.Upstreams{ + paymentsUpstream, + refundsUpstream, + } + }, []UpdateEvent{ + { + CorrelationID: peerTrustBundleIDPrefix + "cloud", + Result: &pbpeering.TrustBundleReadResponse{ + Bundle: TestPeerTrustBundles(t).Bundles[0], + }, + }, + { + CorrelationID: upstreamPeerWatchIDPrefix + paymentsUID.String(), + Result: &structs.IndexedCheckServiceNodes{ + Nodes: []structs.CheckServiceNode{ + { + Node: &structs.Node{ + Address: "85.252.102.31", + Datacenter: "cloud-dc", + }, + Service: &structs.NodeService{ + Service: "payments-sidecar-proxy", + Kind: structs.ServiceKindConnectProxy, + Port: 443, + TaggedAddresses: map[string]structs.ServiceAddress{ + structs.TaggedAddressLAN: { + Address: "85.252.102.31", + Port: 443, + }, + structs.TaggedAddressWAN: { + Address: "123.us-east-1.elb.notaws.com", + Port: 8443, + }, + }, + Connect: structs.ServiceConnect{ + PeerMeta: &structs.PeeringServiceMeta{ + SNI: []string{ + "payments.default.default.cloud.external." + peerTrustDomain, + }, + SpiffeID: []string{ + "spiffe://" + peerTrustDomain + "/ns/default/dc/cloud-dc/svc/payments", + }, + Protocol: "tcp", + }, + }, + }, + }, + }, + }, + }, + { + CorrelationID: upstreamPeerWatchIDPrefix + refundsUID.String(), + Result: &structs.IndexedCheckServiceNodes{ + Nodes: []structs.CheckServiceNode{ + { + Node: &structs.Node{ + Address: "106.96.90.233", + Datacenter: "cloud-dc", + }, + Service: &structs.NodeService{ + Service: "refunds-sidecar-proxy", + Kind: structs.ServiceKindConnectProxy, + Port: 443, + Connect: structs.ServiceConnect{ + PeerMeta: &structs.PeeringServiceMeta{ + SNI: []string{ + "refunds.default.default.cloud.external." + peerTrustDomain, + }, + SpiffeID: []string{ + "spiffe://" + peerTrustDomain + "/ns/default/dc/cloud-dc/svc/refunds", + }, + Protocol: "tcp", + }, + }, + }, + }, + }, + }, + }, + }) +} diff --git a/agent/proxycfg/testing_terminating_gateway.go b/agent/proxycfg/testing_terminating_gateway.go index 38c0245a2b..c3f135cc41 100644 --- a/agent/proxycfg/testing_terminating_gateway.go +++ b/agent/proxycfg/testing_terminating_gateway.go @@ -3,17 +3,10 @@ package proxycfg import ( "github.com/mitchellh/go-testing-interface" - "github.com/hashicorp/consul/agent/cache" - agentcache "github.com/hashicorp/consul/agent/cache" "github.com/hashicorp/consul/agent/structs" ) -func TestConfigSnapshotTerminatingGateway( - t testing.T, - populateServices bool, - nsFn func(ns *structs.NodeService), - extraUpdates []agentcache.UpdateEvent, -) *ConfigSnapshot { +func TestConfigSnapshotTerminatingGateway(t testing.T, populateServices bool, nsFn func(ns *structs.NodeService), extraUpdates []UpdateEvent) *ConfigSnapshot { roots, _ := TestCerts(t) var ( @@ -23,7 +16,7 @@ func TestConfigSnapshotTerminatingGateway( cache = structs.NewServiceName("cache", nil) ) - baseEvents := []agentcache.UpdateEvent{ + baseEvents := []UpdateEvent{ { CorrelationID: rootsWatchID, Result: roots, @@ -36,6 +29,7 @@ func TestConfigSnapshotTerminatingGateway( }, } + tgtwyServices := []*structs.GatewayService{} if populateServices { webNodes := TestUpstreamNodes(t, web.Name) webNodes[0].Service.Meta = map[string]string{"version": "1"} @@ -158,28 +152,30 @@ func TestConfigSnapshotTerminatingGateway( }, } - baseEvents = testSpliceEvents(baseEvents, []agentcache.UpdateEvent{ + tgtwyServices = append(tgtwyServices, + &structs.GatewayService{ + Service: web, + CAFile: "ca.cert.pem", + }, + &structs.GatewayService{ + Service: api, + CAFile: "ca.cert.pem", + CertFile: "api.cert.pem", + KeyFile: "api.key.pem", + }, + &structs.GatewayService{ + Service: db, + }, + &structs.GatewayService{ + Service: cache, + }, + ) + + baseEvents = testSpliceEvents(baseEvents, []UpdateEvent{ { CorrelationID: gatewayServicesWatchID, Result: &structs.IndexedGatewayServices{ - Services: []*structs.GatewayService{ - { - Service: web, - CAFile: "ca.cert.pem", - }, - { - Service: api, - CAFile: "ca.cert.pem", - CertFile: "api.cert.pem", - KeyFile: "api.key.pem", - }, - { - Service: db, - }, - { - Service: cache, - }, - }, + Services: tgtwyServices, }, }, { @@ -297,30 +293,34 @@ func TestConfigSnapshotTerminatingGateway( // ======== { CorrelationID: serviceResolverIDPrefix + web.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: nil, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + }, }, }, { CorrelationID: serviceResolverIDPrefix + api.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: nil, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + }, }, }, { CorrelationID: serviceResolverIDPrefix + db.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: nil, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + }, }, }, { CorrelationID: serviceResolverIDPrefix + cache.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: nil, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + }, }, }, }) @@ -340,6 +340,123 @@ func TestConfigSnapshotTerminatingGateway( }, nsFn, nil, testSpliceEvents(baseEvents, extraUpdates)) } +func TestConfigSnapshotTerminatingGatewayDestinations(t testing.T, populateDestinations bool, extraUpdates []UpdateEvent) *ConfigSnapshot { + roots, _ := TestCerts(t) + + var ( + externalIPTCP = structs.NewServiceName("external-IP-TCP", nil) + externalHostnameTCP = structs.NewServiceName("external-hostname-TCP", nil) + ) + + baseEvents := []UpdateEvent{ + { + CorrelationID: rootsWatchID, + Result: roots, + }, + { + CorrelationID: gatewayServicesWatchID, + Result: &structs.IndexedGatewayServices{ + Services: nil, + }, + }, + } + + tgtwyServices := []*structs.GatewayService{} + + if populateDestinations { + tgtwyServices = append(tgtwyServices, + &structs.GatewayService{ + Service: externalIPTCP, + ServiceKind: structs.GatewayServiceKindDestination, + }, + &structs.GatewayService{ + Service: externalHostnameTCP, + ServiceKind: structs.GatewayServiceKindDestination, + }, + ) + + baseEvents = testSpliceEvents(baseEvents, []UpdateEvent{ + { + CorrelationID: gatewayServicesWatchID, + Result: &structs.IndexedGatewayServices{ + Services: tgtwyServices, + }, + }, + // no intentions defined for these services + { + CorrelationID: serviceIntentionsIDPrefix + externalIPTCP.String(), + Result: &structs.IndexedIntentionMatches{ + Matches: []structs.Intentions{ + nil, + }, + }, + }, + { + CorrelationID: serviceIntentionsIDPrefix + externalHostnameTCP.String(), + Result: &structs.IndexedIntentionMatches{ + Matches: []structs.Intentions{ + nil, + }, + }, + }, + // ======== + { + CorrelationID: serviceLeafIDPrefix + externalIPTCP.String(), + Result: &structs.IssuedCert{ + CertPEM: "placeholder.crt", + PrivateKeyPEM: "placeholder.key", + }, + }, + { + CorrelationID: serviceLeafIDPrefix + externalHostnameTCP.String(), + Result: &structs.IssuedCert{ + CertPEM: "placeholder.crt", + PrivateKeyPEM: "placeholder.key", + }, + }, + // ======== + { + CorrelationID: serviceConfigIDPrefix + externalIPTCP.String(), + Result: &structs.ServiceConfigResponse{ + Mode: structs.ProxyModeTransparent, + ProxyConfig: map[string]interface{}{"protocol": "tcp"}, + Destination: structs.DestinationConfig{ + Address: "192.168.0.1", + Port: 80, + }, + }, + }, + { + CorrelationID: serviceConfigIDPrefix + externalHostnameTCP.String(), + Result: &structs.ServiceConfigResponse{ + Mode: structs.ProxyModeTransparent, + ProxyConfig: map[string]interface{}{"protocol": "tcp"}, + Destination: structs.DestinationConfig{ + Address: "*.hashicorp.com", + Port: 8089, + }, + }, + }, + }) + } + + return testConfigSnapshotFixture(t, &structs.NodeService{ + Kind: structs.ServiceKindTerminatingGateway, + Service: "terminating-gateway", + Address: "1.2.3.4", + Port: 8443, + Proxy: structs.ConnectProxyConfig{ + Mode: structs.ProxyModeTransparent, + }, + TaggedAddresses: map[string]structs.ServiceAddress{ + structs.TaggedAddressWAN: { + Address: "198.18.0.1", + Port: 443, + }, + }, + }, nil, nil, testSpliceEvents(baseEvents, extraUpdates)) +} + func TestConfigSnapshotTerminatingGatewayServiceSubsets(t testing.T) *ConfigSnapshot { return testConfigSnapshotTerminatingGatewayServiceSubsets(t, false) } @@ -352,23 +469,20 @@ func testConfigSnapshotTerminatingGatewayServiceSubsets(t testing.T, alsoAdjustC cache = structs.NewServiceName("cache", nil) ) - events := []agentcache.UpdateEvent{ + events := []UpdateEvent{ { CorrelationID: serviceResolverIDPrefix + web.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: "web", - Subsets: map[string]structs.ServiceResolverSubset{ - "v1": { - Filter: "Service.Meta.version == 1", - }, - "v2": { - Filter: "Service.Meta.version == 2", - OnlyPassing: true, - }, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "web", + Subsets: map[string]structs.ServiceResolverSubset{ + "v1": { + Filter: "Service.Meta.version == 1", + }, + "v2": { + Filter: "Service.Meta.version == 2", + OnlyPassing: true, }, }, }, @@ -383,19 +497,16 @@ func testConfigSnapshotTerminatingGatewayServiceSubsets(t testing.T, alsoAdjustC } if alsoAdjustCache { - events = testSpliceEvents(events, []agentcache.UpdateEvent{ + events = testSpliceEvents(events, []UpdateEvent{ { CorrelationID: serviceResolverIDPrefix + cache.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: "cache", - Subsets: map[string]structs.ServiceResolverSubset{ - "prod": { - Filter: "Service.Meta.Env == prod", - }, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "cache", + Subsets: map[string]structs.ServiceResolverSubset{ + "prod": { + Filter: "Service.Meta.Env == prod", }, }, }, @@ -416,24 +527,21 @@ func testConfigSnapshotTerminatingGatewayServiceSubsets(t testing.T, alsoAdjustC func TestConfigSnapshotTerminatingGatewayDefaultServiceSubset(t testing.T) *ConfigSnapshot { web := structs.NewServiceName("web", nil) - return TestConfigSnapshotTerminatingGateway(t, true, nil, []agentcache.UpdateEvent{ + return TestConfigSnapshotTerminatingGateway(t, true, nil, []UpdateEvent{ { CorrelationID: serviceResolverIDPrefix + web.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: "web", - DefaultSubset: "v2", - Subsets: map[string]structs.ServiceResolverSubset{ - "v1": { - Filter: "Service.Meta.version == 1", - }, - "v2": { - Filter: "Service.Meta.version == 2", - OnlyPassing: true, - }, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "web", + DefaultSubset: "v2", + Subsets: map[string]structs.ServiceResolverSubset{ + "v1": { + Filter: "Service.Meta.version == 1", + }, + "v2": { + Filter: "Service.Meta.version == 2", + OnlyPassing: true, }, }, }, @@ -503,7 +611,7 @@ func testConfigSnapshotTerminatingGatewayLBConfig(t testing.T, variant string) * return nil } - return TestConfigSnapshotTerminatingGateway(t, true, nil, []cache.UpdateEvent{ + return TestConfigSnapshotTerminatingGateway(t, true, nil, []UpdateEvent{ { CorrelationID: serviceConfigIDPrefix + web.String(), Result: &structs.ServiceConfigResponse{ @@ -512,9 +620,8 @@ func testConfigSnapshotTerminatingGatewayLBConfig(t testing.T, variant string) * }, { CorrelationID: serviceResolverIDPrefix + web.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{entry}, + Result: &structs.ConfigEntryResponse{ + Entry: entry, }, }, { @@ -527,7 +634,7 @@ func testConfigSnapshotTerminatingGatewayLBConfig(t testing.T, variant string) * } func TestConfigSnapshotTerminatingGatewaySNI(t testing.T) *ConfigSnapshot { - return TestConfigSnapshotTerminatingGateway(t, true, nil, []cache.UpdateEvent{ + return TestConfigSnapshotTerminatingGateway(t, true, nil, []UpdateEvent{ { CorrelationID: "gateway-services", Result: &structs.IndexedGatewayServices{ @@ -556,19 +663,16 @@ func TestConfigSnapshotTerminatingGatewayHostnameSubsets(t testing.T) *ConfigSna cache = structs.NewServiceName("cache", nil) ) - return TestConfigSnapshotTerminatingGateway(t, true, nil, []agentcache.UpdateEvent{ + return TestConfigSnapshotTerminatingGateway(t, true, nil, []UpdateEvent{ { CorrelationID: serviceResolverIDPrefix + api.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: "api", - Subsets: map[string]structs.ServiceResolverSubset{ - "alt": { - Filter: "Service.Meta.domain == alt", - }, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "api", + Subsets: map[string]structs.ServiceResolverSubset{ + "alt": { + Filter: "Service.Meta.domain == alt", }, }, }, @@ -576,16 +680,13 @@ func TestConfigSnapshotTerminatingGatewayHostnameSubsets(t testing.T) *ConfigSna }, { CorrelationID: serviceResolverIDPrefix + cache.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: "cache", - Subsets: map[string]structs.ServiceResolverSubset{ - "prod": { - Filter: "Service.Meta.Env == prod", - }, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "cache", + Subsets: map[string]structs.ServiceResolverSubset{ + "prod": { + Filter: "Service.Meta.Env == prod", }, }, }, @@ -612,24 +713,21 @@ func TestConfigSnapshotTerminatingGatewayIgnoreExtraResolvers(t testing.T) *Conf notfound = structs.NewServiceName("notfound", nil) ) - return TestConfigSnapshotTerminatingGateway(t, true, nil, []agentcache.UpdateEvent{ + return TestConfigSnapshotTerminatingGateway(t, true, nil, []UpdateEvent{ { CorrelationID: serviceResolverIDPrefix + web.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: "web", - DefaultSubset: "v2", - Subsets: map[string]structs.ServiceResolverSubset{ - "v1": { - Filter: "Service.Meta.Version == 1", - }, - "v2": { - Filter: "Service.Meta.Version == 2", - OnlyPassing: true, - }, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "web", + DefaultSubset: "v2", + Subsets: map[string]structs.ServiceResolverSubset{ + "v1": { + Filter: "Service.Meta.Version == 1", + }, + "v2": { + Filter: "Service.Meta.Version == 2", + OnlyPassing: true, }, }, }, @@ -637,21 +735,18 @@ func TestConfigSnapshotTerminatingGatewayIgnoreExtraResolvers(t testing.T) *Conf }, { CorrelationID: serviceResolverIDPrefix + notfound.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: "notfound", - DefaultSubset: "v2", - Subsets: map[string]structs.ServiceResolverSubset{ - "v1": { - Filter: "Service.Meta.Version == 1", - }, - "v2": { - Filter: "Service.Meta.Version == 2", - OnlyPassing: true, - }, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: "notfound", + DefaultSubset: "v2", + Subsets: map[string]structs.ServiceResolverSubset{ + "v1": { + Filter: "Service.Meta.Version == 1", + }, + "v2": { + Filter: "Service.Meta.Version == 2", + OnlyPassing: true, }, }, }, @@ -666,9 +761,9 @@ func TestConfigSnapshotTerminatingGatewayIgnoreExtraResolvers(t testing.T) *Conf }) } -func TestConfigSnapshotTerminatingGatewayWithLambdaService(t testing.T, extraUpdateEvents ...agentcache.UpdateEvent) *ConfigSnapshot { +func TestConfigSnapshotTerminatingGatewayWithLambdaService(t testing.T, extraUpdateEvents ...UpdateEvent) *ConfigSnapshot { web := structs.NewServiceName("web", nil) - updateEvents := append(extraUpdateEvents, agentcache.UpdateEvent{ + updateEvents := append(extraUpdateEvents, UpdateEvent{ CorrelationID: serviceConfigIDPrefix + web.String(), Result: &structs.ServiceConfigResponse{ ProxyConfig: map[string]interface{}{"protocol": "http"}, @@ -687,18 +782,15 @@ func TestConfigSnapshotTerminatingGatewayWithLambdaServiceAndServiceResolvers(t web := structs.NewServiceName("web", nil) return TestConfigSnapshotTerminatingGatewayWithLambdaService(t, - agentcache.UpdateEvent{ + UpdateEvent{ CorrelationID: serviceResolverIDPrefix + web.String(), - Result: &structs.IndexedConfigEntries{ - Kind: structs.ServiceResolver, - Entries: []structs.ConfigEntry{ - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: web.String(), - Subsets: map[string]structs.ServiceResolverSubset{ - "canary1": {}, - "canary2": {}, - }, + Result: &structs.ConfigEntryResponse{ + Entry: &structs.ServiceResolverConfigEntry{ + Kind: structs.ServiceResolver, + Name: web.String(), + Subsets: map[string]structs.ServiceResolverSubset{ + "canary1": {}, + "canary2": {}, }, }, }, diff --git a/agent/proxycfg/testing_tproxy.go b/agent/proxycfg/testing_tproxy.go index e593a51e93..b93e6c970b 100644 --- a/agent/proxycfg/testing_tproxy.go +++ b/agent/proxycfg/testing_tproxy.go @@ -5,7 +5,6 @@ import ( "github.com/mitchellh/go-testing-interface" - "github.com/hashicorp/consul/agent/cache" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/discoverychain" "github.com/hashicorp/consul/agent/structs" @@ -28,7 +27,7 @@ func TestConfigSnapshotTransparentProxy(t testing.T) *ConfigSnapshot { return TestConfigSnapshot(t, func(ns *structs.NodeService) { ns.Proxy.Mode = structs.ProxyModeTransparent - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: meshConfigEntryID, Result: &structs.ConfigEntryResponse{ @@ -141,7 +140,7 @@ func TestConfigSnapshotTransparentProxyHTTPUpstream(t testing.T) *ConfigSnapshot return TestConfigSnapshot(t, func(ns *structs.NodeService) { ns.Proxy.Mode = structs.ProxyModeTransparent - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: meshConfigEntryID, Result: &structs.ConfigEntryResponse{ @@ -245,7 +244,7 @@ func TestConfigSnapshotTransparentProxyCatalogDestinationsOnly(t testing.T) *Con return TestConfigSnapshot(t, func(ns *structs.NodeService) { ns.Proxy.Mode = structs.ProxyModeTransparent - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: meshConfigEntryID, Result: &structs.ConfigEntryResponse{ @@ -335,7 +334,7 @@ func TestConfigSnapshotTransparentProxyDialDirectly(t testing.T) *ConfigSnapshot return TestConfigSnapshot(t, func(ns *structs.NodeService) { ns.Proxy.Mode = structs.ProxyModeTransparent - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: meshConfigEntryID, Result: &structs.ConfigEntryResponse{ @@ -473,7 +472,7 @@ func TestConfigSnapshotTransparentProxyTerminatingGatewayCatalogDestinationsOnly return TestConfigSnapshot(t, func(ns *structs.NodeService) { ns.Proxy.Mode = structs.ProxyModeTransparent - }, []cache.UpdateEvent{ + }, []UpdateEvent{ { CorrelationID: meshConfigEntryID, Result: &structs.ConfigEntryResponse{ diff --git a/agent/proxycfg/testing_upstreams.go b/agent/proxycfg/testing_upstreams.go index c97ac7a4ff..2d80c0968d 100644 --- a/agent/proxycfg/testing_upstreams.go +++ b/agent/proxycfg/testing_upstreams.go @@ -5,7 +5,6 @@ import ( "github.com/mitchellh/go-testing-interface" - "github.com/hashicorp/consul/agent/cache" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/discoverychain" "github.com/hashicorp/consul/agent/structs" @@ -16,7 +15,7 @@ func setupTestVariationConfigEntriesAndSnapshot( variation string, upstreams structs.Upstreams, additionalEntries ...structs.ConfigEntry, -) []cache.UpdateEvent { +) []UpdateEvent { var ( dbUpstream = upstreams[0] @@ -25,7 +24,7 @@ func setupTestVariationConfigEntriesAndSnapshot( dbChain := setupTestVariationDiscoveryChain(t, variation, additionalEntries...) - events := []cache.UpdateEvent{ + events := []UpdateEvent{ { CorrelationID: "discovery-chain:" + dbUID.String(), Result: &structs.DiscoveryChainResponse{ @@ -46,14 +45,14 @@ func setupTestVariationConfigEntriesAndSnapshot( case "simple": case "external-sni": case "failover": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:fail.default.default.dc1:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesAlternate(t), }, }) case "failover-through-remote-gateway-triggered": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc1:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesInStatus(t, "critical"), @@ -61,26 +60,26 @@ func setupTestVariationConfigEntriesAndSnapshot( }) fallthrough case "failover-through-remote-gateway": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc2:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesDC2(t), }, }) - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "mesh-gateway:dc2:" + dbUID.String(), Result: &structs.IndexedNodesWithGateways{ Nodes: TestGatewayNodesDC2(t), }, }) case "failover-through-double-remote-gateway-triggered": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc1:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesInStatus(t, "critical"), }, }) - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc2:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesInStatusDC2(t, "critical"), @@ -88,26 +87,26 @@ func setupTestVariationConfigEntriesAndSnapshot( }) fallthrough case "failover-through-double-remote-gateway": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc3:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesDC2(t), }, }) - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "mesh-gateway:dc2:" + dbUID.String(), Result: &structs.IndexedNodesWithGateways{ Nodes: TestGatewayNodesDC2(t), }, }) - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "mesh-gateway:dc3:" + dbUID.String(), Result: &structs.IndexedNodesWithGateways{ Nodes: TestGatewayNodesDC3(t), }, }) case "failover-through-local-gateway-triggered": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc1:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesInStatus(t, "critical"), @@ -115,26 +114,26 @@ func setupTestVariationConfigEntriesAndSnapshot( }) fallthrough case "failover-through-local-gateway": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc2:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesDC2(t), }, }) - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "mesh-gateway:dc1:" + dbUID.String(), Result: &structs.IndexedNodesWithGateways{ Nodes: TestGatewayNodesDC1(t), }, }) case "failover-through-double-local-gateway-triggered": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc1:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesInStatus(t, "critical"), }, }) - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc2:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesInStatusDC2(t, "critical"), @@ -142,26 +141,26 @@ func setupTestVariationConfigEntriesAndSnapshot( }) fallthrough case "failover-through-double-local-gateway": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:db.default.default.dc3:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesDC2(t), }, }) - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "mesh-gateway:dc1:" + dbUID.String(), Result: &structs.IndexedNodesWithGateways{ Nodes: TestGatewayNodesDC1(t), }, }) case "splitter-with-resolver-redirect-multidc": - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:v1.db.default.default.dc1:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodes(t, "db"), }, }) - events = append(events, cache.UpdateEvent{ + events = append(events, UpdateEvent{ CorrelationID: "upstream-target:v2.db.default.default.dc2:" + dbUID.String(), Result: &structs.IndexedCheckServiceNodes{ Nodes: TestUpstreamNodesDC2(t), diff --git a/agent/proxycfg/upstreams.go b/agent/proxycfg/upstreams.go index c256cee1bd..1f1251c42c 100644 --- a/agent/proxycfg/upstreams.go +++ b/agent/proxycfg/upstreams.go @@ -9,8 +9,6 @@ import ( "github.com/mitchellh/mapstructure" "github.com/hashicorp/consul/acl" - "github.com/hashicorp/consul/agent/cache" - cachetype "github.com/hashicorp/consul/agent/cache-types" "github.com/hashicorp/consul/agent/structs" ) @@ -18,7 +16,7 @@ type handlerUpstreams struct { handlerState } -func (s *handlerUpstreams) handleUpdateUpstreams(ctx context.Context, u cache.UpdateEvent, snap *ConfigSnapshot) error { +func (s *handlerUpstreams) handleUpdateUpstreams(ctx context.Context, u UpdateEvent, snap *ConfigSnapshot) error { if u.Err != nil { return fmt.Errorf("error filling agent cache: %v", u.Err) } @@ -90,6 +88,34 @@ func (s *handlerUpstreams) handleUpdateUpstreams(ctx context.Context, u cache.Up return err } + case strings.HasPrefix(u.CorrelationID, upstreamPeerWatchIDPrefix): + resp, ok := u.Result.(*structs.IndexedCheckServiceNodes) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + uidString := strings.TrimPrefix(u.CorrelationID, upstreamPeerWatchIDPrefix) + + uid := UpstreamIDFromString(uidString) + + filteredNodes := hostnameEndpoints( + s.logger, + GatewayKey{ /*empty so it never matches*/ }, + resp.Nodes, + ) + if len(filteredNodes) > 0 { + upstreamsSnapshot.PeerUpstreamEndpoints[uid] = filteredNodes + upstreamsSnapshot.PeerUpstreamEndpointsUseHostnames[uid] = struct{}{} + } else { + upstreamsSnapshot.PeerUpstreamEndpoints[uid] = resp.Nodes + delete(upstreamsSnapshot.PeerUpstreamEndpointsUseHostnames, uid) + } + + if s.kind != structs.ServiceKindConnectProxy || s.proxyCfg.Mode != structs.ProxyModeTransparent { + return nil + } + + s.logger.Warn("skipping transparent proxy update for peered upstream") + case strings.HasPrefix(u.CorrelationID, "upstream-target:"): resp, ok := u.Result.(*structs.IndexedCheckServiceNodes) if !ok { @@ -315,12 +341,12 @@ func (s *handlerUpstreams) resetWatchesFromChain( ctx, cancel := context.WithCancel(ctx) opts := gatewayWatchOpts{ - notifier: s.cache, - notifyCh: s.ch, - source: *s.source, - token: s.token, - key: gwKey, - upstreamID: uid, + internalServiceDump: s.dataSources.InternalServiceDump, + notifyCh: s.ch, + source: *s.source, + token: s.token, + key: gwKey, + upstreamID: uid, } err := watchMeshGateway(ctx, opts) if err != nil { @@ -373,7 +399,7 @@ func (s *handlerUpstreams) watchUpstreamTarget(ctx context.Context, snap *Config correlationID := "upstream-target:" + opts.chainID + ":" + opts.upstreamID.String() ctx, cancel := context.WithCancel(ctx) - err := s.health.Notify(ctx, structs.ServiceSpecificRequest{ + err := s.dataSources.Health.Notify(ctx, &structs.ServiceSpecificRequest{ PeerName: opts.upstreamID.Peer, Datacenter: opts.datacenter, QueryOptions: structs.QueryOptions{ @@ -414,7 +440,7 @@ func (s *handlerUpstreams) watchDiscoveryChain(ctx context.Context, snap *Config } ctx, cancel := context.WithCancel(ctx) - err := s.cache.Notify(ctx, cachetype.CompiledDiscoveryChainName, &structs.DiscoveryChainRequest{ + err := s.dataSources.CompiledDiscoveryChain.Notify(ctx, &structs.DiscoveryChainRequest{ Datacenter: s.source.Datacenter, QueryOptions: structs.QueryOptions{Token: s.token}, Name: opts.name, diff --git a/agent/rpc/peering/health_snapshot.go b/agent/rpc/peering/health_snapshot.go new file mode 100644 index 0000000000..8d73dcea45 --- /dev/null +++ b/agent/rpc/peering/health_snapshot.go @@ -0,0 +1,82 @@ +package peering + +import ( + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/types" +) + +// healthSnapshot represents a normalized view of a set of CheckServiceNodes +// meant for easy comparison to aid in differential synchronization +type healthSnapshot struct { + Nodes map[types.NodeID]*nodeSnapshot +} + +type nodeSnapshot struct { + Node *structs.Node + Services map[structs.ServiceID]*serviceSnapshot +} + +type serviceSnapshot struct { + Service *structs.NodeService + Checks map[types.CheckID]*structs.HealthCheck +} + +func newHealthSnapshot(all []structs.CheckServiceNode, partition, peerName string) *healthSnapshot { + // For all nodes, services, and checks we override the peer name and + // partition to be the local partition and local name for the peer. + for _, instance := range all { + // For all nodes, services, and checks we override the peer name and partition to be + // the local partition and local name for the peer. + instance.Node.PeerName = peerName + instance.Node.OverridePartition(partition) + + instance.Service.PeerName = peerName + instance.Service.OverridePartition(partition) + + for _, chk := range instance.Checks { + chk.PeerName = peerName + chk.OverridePartition(partition) + } + } + + snap := &healthSnapshot{ + Nodes: make(map[types.NodeID]*nodeSnapshot), + } + + for _, instance := range all { + if instance.Node.ID == "" { + panic("TODO(peering): data should always have a node ID") + } + nodeSnap, ok := snap.Nodes[instance.Node.ID] + if !ok { + nodeSnap = &nodeSnapshot{ + Node: instance.Node, + Services: make(map[structs.ServiceID]*serviceSnapshot), + } + snap.Nodes[instance.Node.ID] = nodeSnap + } + + if instance.Service.ID == "" { + panic("TODO(peering): data should always have a service ID") + } + sid := instance.Service.CompoundServiceID() + + svcSnap, ok := nodeSnap.Services[sid] + if !ok { + svcSnap = &serviceSnapshot{ + Service: instance.Service, + Checks: make(map[types.CheckID]*structs.HealthCheck), + } + nodeSnap.Services[sid] = svcSnap + } + + for _, c := range instance.Checks { + if c.CheckID == "" { + panic("TODO(peering): data should always have a check ID") + } + svcSnap.Checks[c.CheckID] = c + } + } + + return snap +} diff --git a/agent/rpc/peering/health_snapshot_test.go b/agent/rpc/peering/health_snapshot_test.go new file mode 100644 index 0000000000..33f662750d --- /dev/null +++ b/agent/rpc/peering/health_snapshot_test.go @@ -0,0 +1,152 @@ +package peering + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/types" +) + +func TestHealthSnapshot(t *testing.T) { + type testcase struct { + name string + in []structs.CheckServiceNode + expect *healthSnapshot + } + + entMeta := acl.DefaultEnterpriseMeta() + + run := func(t *testing.T, tc testcase) { + snap := newHealthSnapshot(tc.in, entMeta.PartitionOrEmpty(), "my-peer") + require.Equal(t, tc.expect, snap) + } + + newNode := func(id, name, peerName string) *structs.Node { + return &structs.Node{ + ID: types.NodeID(id), + Node: name, + Partition: entMeta.PartitionOrEmpty(), + PeerName: peerName, + } + } + + newService := func(id string, port int, peerName string) *structs.NodeService { + return &structs.NodeService{ + ID: id, + Service: "xyz", + EnterpriseMeta: *entMeta, + PeerName: peerName, + Port: port, + } + } + + newCheck := func(node, svcID, peerName string) *structs.HealthCheck { + return &structs.HealthCheck{ + Node: node, + ServiceID: svcID, + ServiceName: "xyz", + CheckID: types.CheckID(svcID + ":check"), + Name: "check", + EnterpriseMeta: *entMeta, + PeerName: peerName, + Status: "passing", + } + } + + cases := []testcase{ + { + name: "single", + in: []structs.CheckServiceNode{ + { + Node: newNode("abc-123", "abc", ""), + Service: newService("xyz-123", 8080, ""), + Checks: structs.HealthChecks{ + newCheck("abc", "xyz-123", ""), + }, + }, + }, + expect: &healthSnapshot{ + Nodes: map[types.NodeID]*nodeSnapshot{ + "abc-123": { + Node: newNode("abc-123", "abc", "my-peer"), + Services: map[structs.ServiceID]*serviceSnapshot{ + structs.NewServiceID("xyz-123", nil): { + Service: newService("xyz-123", 8080, "my-peer"), + Checks: map[types.CheckID]*structs.HealthCheck{ + "xyz-123:check": newCheck("abc", "xyz-123", "my-peer"), + }, + }, + }, + }, + }, + }, + }, + { + name: "multiple", + in: []structs.CheckServiceNode{ + { + Node: newNode("abc-123", "abc", ""), + Service: newService("xyz-123", 8080, ""), + Checks: structs.HealthChecks{ + newCheck("abc", "xyz-123", ""), + }, + }, + { + Node: newNode("abc-123", "abc", ""), + Service: newService("xyz-789", 8181, ""), + Checks: structs.HealthChecks{ + newCheck("abc", "xyz-789", ""), + }, + }, + { + Node: newNode("def-456", "def", ""), + Service: newService("xyz-456", 9090, ""), + Checks: structs.HealthChecks{ + newCheck("def", "xyz-456", ""), + }, + }, + }, + expect: &healthSnapshot{ + Nodes: map[types.NodeID]*nodeSnapshot{ + "abc-123": { + Node: newNode("abc-123", "abc", "my-peer"), + Services: map[structs.ServiceID]*serviceSnapshot{ + structs.NewServiceID("xyz-123", nil): { + Service: newService("xyz-123", 8080, "my-peer"), + Checks: map[types.CheckID]*structs.HealthCheck{ + "xyz-123:check": newCheck("abc", "xyz-123", "my-peer"), + }, + }, + structs.NewServiceID("xyz-789", nil): { + Service: newService("xyz-789", 8181, "my-peer"), + Checks: map[types.CheckID]*structs.HealthCheck{ + "xyz-789:check": newCheck("abc", "xyz-789", "my-peer"), + }, + }, + }, + }, + "def-456": { + Node: newNode("def-456", "def", "my-peer"), + Services: map[structs.ServiceID]*serviceSnapshot{ + structs.NewServiceID("xyz-456", nil): { + Service: newService("xyz-456", 9090, "my-peer"), + Checks: map[types.CheckID]*structs.HealthCheck{ + "xyz-456:check": newCheck("def", "xyz-456", "my-peer"), + }, + }, + }, + }, + }, + }, + }, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + run(t, tc) + }) + } +} diff --git a/agent/rpc/peering/replication.go b/agent/rpc/peering/replication.go new file mode 100644 index 0000000000..aef8b45255 --- /dev/null +++ b/agent/rpc/peering/replication.go @@ -0,0 +1,479 @@ +package peering + +import ( + "errors" + "fmt" + "strings" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" + "github.com/hashicorp/consul/types" + "github.com/hashicorp/go-hclog" + "google.golang.org/genproto/googleapis/rpc/code" + "google.golang.org/protobuf/types/known/anypb" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbpeering" + "github.com/hashicorp/consul/proto/pbservice" + "github.com/hashicorp/consul/proto/pbstatus" +) + +/* + TODO(peering): + + At the start of each peering stream establishment (not initiation, but the + thing that reconnects) we need to do a little bit of light differential + snapshot correction to initially synchronize the local state store. + + Then if we ever fail to apply a replication message we should either tear + down the entire connection (and thus force a resync on reconnect) or + request a resync operation. +*/ + +// makeServiceResponse handles preparing exported service instance updates to the peer cluster. +// Each cache.UpdateEvent will contain all instances for a service name. +// If there are no instances in the event, we consider that to be a de-registration. +func makeServiceResponse( + logger hclog.Logger, + update cache.UpdateEvent, +) *pbpeering.ReplicationMessage { + any, csn, err := marshalToProtoAny[*pbservice.IndexedCheckServiceNodes](update.Result) + if err != nil { + // Log the error and skip this response to avoid locking up peering due to a bad update event. + logger.Error("failed to marshal", "error", err) + return nil + } + + serviceName := strings.TrimPrefix(update.CorrelationID, subExportedService) + + // If no nodes are present then it's due to one of: + // 1. The service is newly registered or exported and yielded a transient empty update. + // 2. All instances of the service were de-registered. + // 3. The service was un-exported. + // + // We don't distinguish when these three things occurred, but it's safe to send a DELETE Op in all cases, so we do that. + // Case #1 is a no-op for the importing peer. + if len(csn.Nodes) == 0 { + resp := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Response_{ + Response: &pbpeering.ReplicationMessage_Response{ + ResourceURL: pbpeering.TypeURLService, + // TODO(peering): Nonce management + Nonce: "", + ResourceID: serviceName, + Operation: pbpeering.ReplicationMessage_Response_DELETE, + }, + }, + } + return resp + } + + // If there are nodes in the response, we push them as an UPSERT operation. + resp := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Response_{ + Response: &pbpeering.ReplicationMessage_Response{ + ResourceURL: pbpeering.TypeURLService, + // TODO(peering): Nonce management + Nonce: "", + ResourceID: serviceName, + Operation: pbpeering.ReplicationMessage_Response_UPSERT, + Resource: any, + }, + }, + } + return resp +} + +func makeCARootsResponse( + logger hclog.Logger, + update cache.UpdateEvent, +) *pbpeering.ReplicationMessage { + any, _, err := marshalToProtoAny[*pbpeering.PeeringTrustBundle](update.Result) + if err != nil { + // Log the error and skip this response to avoid locking up peering due to a bad update event. + logger.Error("failed to marshal", "error", err) + return nil + } + + resp := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Response_{ + Response: &pbpeering.ReplicationMessage_Response{ + ResourceURL: pbpeering.TypeURLRoots, + // TODO(peering): Nonce management + Nonce: "", + ResourceID: "roots", + Operation: pbpeering.ReplicationMessage_Response_UPSERT, + Resource: any, + }, + }, + } + return resp +} + +// marshalToProtoAny takes any input and returns: +// the protobuf.Any type, the asserted T type, and any errors +// during marshalling or type assertion. +// `in` MUST be of type T or it returns an error. +func marshalToProtoAny[T proto.Message](in any) (*anypb.Any, T, error) { + typ, ok := in.(T) + if !ok { + var outType T + return nil, typ, fmt.Errorf("input type is not %T: %T", outType, in) + } + any, err := ptypes.MarshalAny(typ) + if err != nil { + return nil, typ, err + } + return any, typ, nil +} + +func (s *Service) processResponse( + peerName string, + partition string, + resp *pbpeering.ReplicationMessage_Response, +) (*pbpeering.ReplicationMessage, error) { + if !pbpeering.KnownTypeURL(resp.ResourceURL) { + err := fmt.Errorf("received response for unknown resource type %q", resp.ResourceURL) + return makeReply( + resp.ResourceURL, + resp.Nonce, + code.Code_INVALID_ARGUMENT, + err.Error(), + ), err + } + + switch resp.Operation { + case pbpeering.ReplicationMessage_Response_UPSERT: + if resp.Resource == nil { + err := fmt.Errorf("received upsert response with no content") + return makeReply( + resp.ResourceURL, + resp.Nonce, + code.Code_INVALID_ARGUMENT, + err.Error(), + ), err + } + + if err := s.handleUpsert(peerName, partition, resp.ResourceURL, resp.ResourceID, resp.Resource); err != nil { + return makeReply( + resp.ResourceURL, + resp.Nonce, + code.Code_INTERNAL, + fmt.Sprintf("upsert error, ResourceURL: %q, ResourceID: %q: %v", resp.ResourceURL, resp.ResourceID, err), + ), fmt.Errorf("upsert error: %w", err) + } + + return makeReply(resp.ResourceURL, resp.Nonce, code.Code_OK, ""), nil + + case pbpeering.ReplicationMessage_Response_DELETE: + if err := s.handleDelete(peerName, partition, resp.ResourceURL, resp.ResourceID); err != nil { + return makeReply( + resp.ResourceURL, + resp.Nonce, + code.Code_INTERNAL, + fmt.Sprintf("delete error, ResourceURL: %q, ResourceID: %q: %v", resp.ResourceURL, resp.ResourceID, err), + ), fmt.Errorf("delete error: %w", err) + } + return makeReply(resp.ResourceURL, resp.Nonce, code.Code_OK, ""), nil + + default: + var errMsg string + if op := pbpeering.ReplicationMessage_Response_Operation_name[int32(resp.Operation)]; op != "" { + errMsg = fmt.Sprintf("unsupported operation: %q", op) + } else { + errMsg = fmt.Sprintf("unsupported operation: %d", resp.Operation) + } + return makeReply( + resp.ResourceURL, + resp.Nonce, + code.Code_INVALID_ARGUMENT, + errMsg, + ), errors.New(errMsg) + } +} + +func (s *Service) handleUpsert( + peerName string, + partition string, + resourceURL string, + resourceID string, + resource *anypb.Any, +) error { + switch resourceURL { + case pbpeering.TypeURLService: + sn := structs.ServiceNameFromString(resourceID) + sn.OverridePartition(partition) + + csn := &pbservice.IndexedCheckServiceNodes{} + if err := ptypes.UnmarshalAny(resource, csn); err != nil { + return fmt.Errorf("failed to unmarshal resource: %w", err) + } + + return s.handleUpdateService(peerName, partition, sn, csn) + + case pbpeering.TypeURLRoots: + roots := &pbpeering.PeeringTrustBundle{} + if err := ptypes.UnmarshalAny(resource, roots); err != nil { + return fmt.Errorf("failed to unmarshal resource: %w", err) + } + + return s.handleUpsertRoots(peerName, partition, roots) + + default: + return fmt.Errorf("unexpected resourceURL: %s", resourceURL) + } +} + +// handleUpdateService handles both deletion and upsert events for a service. +// On an UPSERT event: +// - All nodes, services, checks in the input pbNodes are re-applied through Raft. +// - Any nodes, services, or checks in the catalog that were not in the input pbNodes get deleted. +// +// On a DELETE event: +// - A reconciliation against nil or empty input pbNodes leads to deleting all stored catalog resources +// associated with the service name. +func (s *Service) handleUpdateService( + peerName string, + partition string, + sn structs.ServiceName, + pbNodes *pbservice.IndexedCheckServiceNodes, +) error { + // Capture instances in the state store for reconciliation later. + _, storedInstances, err := s.Backend.Store().CheckServiceNodes(nil, sn.Name, &sn.EnterpriseMeta, peerName) + if err != nil { + return fmt.Errorf("failed to read imported services: %w", err) + } + + structsNodes, err := pbNodes.CheckServiceNodesToStruct() + if err != nil { + return fmt.Errorf("failed to convert protobuf instances to structs: %w", err) + } + + // Normalize the data into a convenient form for operation. + snap := newHealthSnapshot(structsNodes, partition, peerName) + + for _, nodeSnap := range snap.Nodes { + // First register the node + req := nodeSnap.Node.ToRegisterRequest() + if err := s.Backend.Apply().CatalogRegister(&req); err != nil { + return fmt.Errorf("failed to register node: %w", err) + } + + // Then register all services on that node + for _, svcSnap := range nodeSnap.Services { + req.Service = svcSnap.Service + if err := s.Backend.Apply().CatalogRegister(&req); err != nil { + return fmt.Errorf("failed to register service: %w", err) + } + } + req.Service = nil + + // Then register all checks on that node + var chks structs.HealthChecks + for _, svcSnap := range nodeSnap.Services { + for _, c := range svcSnap.Checks { + chks = append(chks, c) + } + } + + req.Checks = chks + if err := s.Backend.Apply().CatalogRegister(&req); err != nil { + return fmt.Errorf("failed to register check: %w", err) + } + } + + // + // Now that the data received has been stored in the state store, the rest of this + // function is responsible for cleaning up data in the catalog that wasn't in the snapshot. + // + + // nodeCheckTuple uniquely identifies a node check in the catalog. + // The partition is not needed because we are only operating on one partition's catalog. + type nodeCheckTuple struct { + checkID types.CheckID + node string + } + + var ( + // unusedNodes tracks node names that were not present in the latest response. + // Missing nodes are not assumed to be deleted because there may be other service names + // registered on them. + // Inside we also track a map of node checks associated with the node. + unusedNodes = make(map[string]struct{}) + + // deletedNodeChecks tracks node checks that were not present in the latest response. + // A single node check will be attached to all service instances of a node, so this + // deduplication prevents issuing multiple deregistrations for a single check. + deletedNodeChecks = make(map[nodeCheckTuple]struct{}) + ) + for _, csn := range storedInstances { + if _, ok := snap.Nodes[csn.Node.ID]; !ok { + unusedNodes[string(csn.Node.ID)] = struct{}{} + + // Since the node is not in the snapshot we can know the associated service + // instance is not in the snapshot either, since a service instance can't + // exist without a node. + // This will also delete all service checks. + err := s.Backend.Apply().CatalogDeregister(&structs.DeregisterRequest{ + Node: csn.Node.Node, + ServiceID: csn.Service.ID, + EnterpriseMeta: csn.Service.EnterpriseMeta, + PeerName: peerName, + }) + if err != nil { + return fmt.Errorf("failed to deregister service %q: %w", csn.Service.CompoundServiceID(), err) + } + + // We can't know if a node check was deleted from the exporting cluster + // (but not the node itself) if the node wasn't in the snapshot, + // so we do not loop over checks here. + // If the unusedNode gets deleted below that will also delete node checks. + continue + } + + // Delete the service instance if not in the snapshot. + sid := csn.Service.CompoundServiceID() + if _, ok := snap.Nodes[csn.Node.ID].Services[sid]; !ok { + err := s.Backend.Apply().CatalogDeregister(&structs.DeregisterRequest{ + Node: csn.Node.Node, + ServiceID: csn.Service.ID, + EnterpriseMeta: csn.Service.EnterpriseMeta, + PeerName: peerName, + }) + if err != nil { + ident := fmt.Sprintf("partition:%s/peer:%s/node:%s/ns:%s/service_id:%s", + csn.Service.PartitionOrDefault(), peerName, csn.Node.Node, csn.Service.NamespaceOrDefault(), csn.Service.ID) + return fmt.Errorf("failed to deregister service %q: %w", ident, err) + } + + // When a service is deleted all associated checks also get deleted as a side effect. + continue + } + + // Reconcile checks. + for _, chk := range csn.Checks { + if _, ok := snap.Nodes[csn.Node.ID].Services[sid].Checks[chk.CheckID]; !ok { + // Checks without a ServiceID are node checks. + // If the node exists but the check does not then the check was deleted. + if chk.ServiceID == "" { + // Deduplicate node checks to avoid deregistering a check multiple times. + tuple := nodeCheckTuple{ + checkID: chk.CheckID, + node: chk.Node, + } + deletedNodeChecks[tuple] = struct{}{} + continue + } + + // If the check isn't a node check then it's a service check. + // Service checks that were not present can be deleted immediately because + // checks for a given service ID will only be attached to a single CheckServiceNode. + err := s.Backend.Apply().CatalogDeregister(&structs.DeregisterRequest{ + Node: chk.Node, + CheckID: chk.CheckID, + EnterpriseMeta: chk.EnterpriseMeta, + PeerName: peerName, + }) + if err != nil { + ident := fmt.Sprintf("partition:%s/peer:%s/node:%s/ns:%s/check_id:%s", + chk.PartitionOrDefault(), peerName, chk.Node, chk.NamespaceOrDefault(), chk.CheckID) + return fmt.Errorf("failed to deregister check %q: %w", ident, err) + } + } + } + } + + // Delete all deduplicated node checks. + for chk := range deletedNodeChecks { + nodeMeta := structs.NodeEnterpriseMetaInPartition(sn.PartitionOrDefault()) + err := s.Backend.Apply().CatalogDeregister(&structs.DeregisterRequest{ + Node: chk.node, + CheckID: chk.checkID, + EnterpriseMeta: *nodeMeta, + PeerName: peerName, + }) + if err != nil { + ident := fmt.Sprintf("partition:%s/peer:%s/node:%s/check_id:%s", nodeMeta.PartitionOrDefault(), peerName, chk.node, chk.checkID) + return fmt.Errorf("failed to deregister node check %q: %w", ident, err) + } + } + + // Delete any nodes that do not have any other services registered on them. + for node := range unusedNodes { + nodeMeta := structs.NodeEnterpriseMetaInPartition(sn.PartitionOrDefault()) + _, ns, err := s.Backend.Store().NodeServices(nil, node, nodeMeta, peerName) + if err != nil { + return fmt.Errorf("failed to query services on node: %w", err) + } + if ns != nil && len(ns.Services) >= 1 { + // At least one service is still registered on this node, so we keep it. + continue + } + + // All services on the node were deleted, so the node is also cleaned up. + err = s.Backend.Apply().CatalogDeregister(&structs.DeregisterRequest{ + Node: node, + PeerName: peerName, + EnterpriseMeta: *nodeMeta, + }) + if err != nil { + ident := fmt.Sprintf("partition:%s/peer:%s/node:%s", nodeMeta.PartitionOrDefault(), peerName, node) + return fmt.Errorf("failed to deregister node %q: %w", ident, err) + } + } + return nil +} + +func (s *Service) handleUpsertRoots( + peerName string, + partition string, + trustBundle *pbpeering.PeeringTrustBundle, +) error { + // We override the partition and peer name so that the trust bundle gets stored + // in the importing partition with a reference to the peer it was imported from. + trustBundle.Partition = partition + trustBundle.PeerName = peerName + req := &pbpeering.PeeringTrustBundleWriteRequest{ + PeeringTrustBundle: trustBundle, + } + return s.Backend.Apply().PeeringTrustBundleWrite(req) +} + +func (s *Service) handleDelete( + peerName string, + partition string, + resourceURL string, + resourceID string, +) error { + switch resourceURL { + case pbpeering.TypeURLService: + sn := structs.ServiceNameFromString(resourceID) + sn.OverridePartition(partition) + return s.handleUpdateService(peerName, partition, sn, nil) + + default: + return fmt.Errorf("unexpected resourceURL: %s", resourceURL) + } +} + +func makeReply(resourceURL, nonce string, errCode code.Code, errMsg string) *pbpeering.ReplicationMessage { + var rpcErr *pbstatus.Status + if errCode != code.Code_OK || errMsg != "" { + rpcErr = &pbstatus.Status{ + Code: int32(errCode), + Message: errMsg, + } + } + + // TODO: shouldn't this be response? + return &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Request_{ + Request: &pbpeering.ReplicationMessage_Request{ + ResourceURL: resourceURL, + Nonce: nonce, + Error: rpcErr, + }, + }, + } +} diff --git a/agent/rpc/peering/service.go b/agent/rpc/peering/service.go index a2dbf53c77..6d8de85d32 100644 --- a/agent/rpc/peering/service.go +++ b/agent/rpc/peering/service.go @@ -5,42 +5,36 @@ import ( "errors" "fmt" "io" - "strconv" "strings" "time" "github.com/armon/go-metrics" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" - "github.com/golang/protobuf/ptypes" "github.com/hashicorp/go-hclog" "github.com/hashicorp/go-memdb" "google.golang.org/genproto/googleapis/rpc/code" "google.golang.org/grpc" "google.golang.org/grpc/codes" grpcstatus "google.golang.org/grpc/status" - "google.golang.org/protobuf/types/known/anypb" "github.com/hashicorp/consul/acl" - "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/consul/stream" "github.com/hashicorp/consul/agent/dns" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/proto/pbpeering" - "github.com/hashicorp/consul/proto/pbservice" - "github.com/hashicorp/consul/proto/pbstatus" ) var ( - errPeeringTokenEmptyCA = errors.New("peering token CA value is empty") errPeeringTokenInvalidCA = errors.New("peering token CA value is invalid") errPeeringTokenEmptyServerAddresses = errors.New("peering token server addresses value is empty") errPeeringTokenEmptyServerName = errors.New("peering token server name value is empty") errPeeringTokenEmptyPeerID = errors.New("peering token peer ID value is empty") ) -// errPeeringInvalidServerAddress is returned when an initiate request contains +// errPeeringInvalidServerAddress is returned when an establish request contains // an invalid server address. type errPeeringInvalidServerAddress struct { addr string @@ -51,18 +45,25 @@ func (e *errPeeringInvalidServerAddress) Error() string { return fmt.Sprintf("%s is not a valid peering server address", e.addr) } +type Config struct { + Datacenter string + ConnectEnabled bool +} + // Service implements pbpeering.PeeringService to provide RPC operations for // managing peering relationships. type Service struct { Backend Backend logger hclog.Logger + config Config streams *streamTracker } -func NewService(logger hclog.Logger, backend Backend) *Service { +func NewService(logger hclog.Logger, cfg Config, backend Backend) *Service { return &Service{ Backend: backend, logger: logger, + config: cfg, streams: newStreamTracker(), } } @@ -96,25 +97,54 @@ type Backend interface { EnterpriseCheckPartitions(partition string) error + EnterpriseCheckNamespaces(namespace string) error + Subscribe(req *stream.SubscribeRequest) (*stream.Subscription, error) + // IsLeader indicates whether the consul server is in a leader state or not. + IsLeader() bool + Store() Store Apply() Apply + LeaderAddress() LeaderAddress +} + +// LeaderAddress provides a way for the consul server to update the peering service about +// the server's leadership status. +// Server addresses should look like: ip:port +type LeaderAddress interface { + // Set is called on a raft.LeaderObservation in a go routine in the consul server; + // see trackLeaderChanges() + Set(leaderAddr string) + + // Get provides the best hint for the current address of the leader. + // There is no guarantee that this is the actual address of the leader. + Get() string } // Store provides a read-only interface for querying Peering data. type Store interface { PeeringRead(ws memdb.WatchSet, q state.Query) (uint64, *pbpeering.Peering, error) + PeeringReadByID(ws memdb.WatchSet, id string) (uint64, *pbpeering.Peering, error) PeeringList(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.Peering, error) - ExportedServicesForPeer(ws memdb.WatchSet, peerID string) (uint64, []structs.ServiceName, error) + PeeringTrustBundleRead(ws memdb.WatchSet, q state.Query) (uint64, *pbpeering.PeeringTrustBundle, error) + PeeringTrustBundleList(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error) + ExportedServicesForPeer(ws memdb.WatchSet, peerID string) (uint64, *structs.ExportedServiceList, error) + ServiceDump(ws memdb.WatchSet, kind structs.ServiceKind, useKind bool, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.CheckServiceNodes, error) + CheckServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.CheckServiceNodes, error) + NodeServices(ws memdb.WatchSet, nodeNameOrID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.NodeServices, error) + CAConfig(ws memdb.WatchSet) (uint64, *structs.CAConfiguration, error) + TrustBundleListByService(ws memdb.WatchSet, service string, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error) AbandonCh() <-chan struct{} } // Apply provides a write-only interface for persisting Peering data. type Apply interface { PeeringWrite(req *pbpeering.PeeringWriteRequest) error - PeeringDelete(req *pbpeering.PeeringDeleteRequest) error PeeringTerminateByID(req *pbpeering.PeeringTerminateByIDRequest) error + PeeringTrustBundleWrite(req *pbpeering.PeeringTrustBundleWriteRequest) error + CatalogRegister(req *structs.RegisterRequest) error + CatalogDeregister(req *structs.DeregisterRequest) error } // GenerateToken implements the PeeringService RPC method to generate a @@ -199,13 +229,13 @@ func (s *Service) GenerateToken( return resp, err } -// Initiate implements the PeeringService RPC method to finalize peering +// Establish implements the PeeringService RPC method to finalize peering // registration. Given a valid token output from a peer's GenerateToken endpoint, // a peering is registered. -func (s *Service) Initiate( +func (s *Service) Establish( ctx context.Context, - req *pbpeering.InitiateRequest, -) (*pbpeering.InitiateResponse, error) { + req *pbpeering.EstablishRequest, +) (*pbpeering.EstablishResponse, error) { // validate prior to forwarding to the leader, this saves a network hop if err := dns.ValidateLabel(req.PeerName); err != nil { return nil, fmt.Errorf("%s is not a valid peer name: %w", req.PeerName, err) @@ -222,17 +252,17 @@ func (s *Service) Initiate( return nil, fmt.Errorf("meta tags failed validation: %w", err) } - resp := &pbpeering.InitiateResponse{} + resp := &pbpeering.EstablishResponse{} handled, err := s.Backend.Forward(req, func(conn *grpc.ClientConn) error { var err error - resp, err = pbpeering.NewPeeringServiceClient(conn).Initiate(ctx, req) + resp, err = pbpeering.NewPeeringServiceClient(conn).Establish(ctx, req) return err }) if handled || err != nil { return resp, err } - defer metrics.MeasureSince([]string{"peering", "initiate"}, time.Now()) + defer metrics.MeasureSince([]string{"peering", "establish"}, time.Now()) // convert ServiceAddress values to strings serverAddrs := make([]string, len(tok.ServerAddresses)) @@ -241,17 +271,19 @@ func (s *Service) Initiate( } // as soon as a peering is written with a list of ServerAddresses that is - // non-empty, the leader routine will see the peering and attempt to establish - // a connection with the remote peer. + // non-empty, the leader routine will see the peering and attempt to + // establish a connection with the remote peer. + // + // This peer now has a record of both the LocalPeerID(ID) and + // RemotePeerID(PeerID) but at this point the other peer does not. writeReq := &pbpeering.PeeringWriteRequest{ Peering: &pbpeering.Peering{ Name: req.PeerName, PeerCAPems: tok.CA, PeerServerAddresses: serverAddrs, PeerServerName: tok.ServerName, - // uncomment once #1613 lands - // PeerID: tok.PeerID, - Meta: req.Meta, + PeerID: tok.PeerID, + Meta: req.Meta, }, } if err = s.Backend.Apply().PeeringWrite(writeReq); err != nil { @@ -363,13 +395,123 @@ func (s *Service) PeeringDelete(ctx context.Context, req *pbpeering.PeeringDelet // TODO(peering): ACL check request token // TODO(peering): handle blocking queries - err = s.Backend.Apply().PeeringDelete(req) + + q := state.Query{ + Value: strings.ToLower(req.Name), + EnterpriseMeta: *structs.NodeEnterpriseMetaInPartition(req.Partition), + } + _, existing, err := s.Backend.Store().PeeringRead(nil, q) + if err != nil { + return nil, err + } + + if existing == nil || !existing.IsActive() { + // Return early when the Peering doesn't exist or is already marked for deletion. + // We don't return nil because the pb will fail to marshal. + return &pbpeering.PeeringDeleteResponse{}, nil + } + // We are using a write request due to needing to perform a deferred deletion. + // The peering gets marked for deletion by setting the DeletedAt field, + // and a leader routine will handle deleting the peering. + writeReq := &pbpeering.PeeringWriteRequest{ + Peering: &pbpeering.Peering{ + // We only need to include the name and partition for the peering to be identified. + // All other data associated with the peering can be discarded because once marked + // for deletion the peering is effectively gone. + Name: req.Name, + Partition: req.Partition, + DeletedAt: structs.TimeToProto(time.Now().UTC()), + }, + } + err = s.Backend.Apply().PeeringWrite(writeReq) if err != nil { return nil, err } return &pbpeering.PeeringDeleteResponse{}, nil } +func (s *Service) TrustBundleRead(ctx context.Context, req *pbpeering.TrustBundleReadRequest) (*pbpeering.TrustBundleReadResponse, error) { + if err := s.Backend.EnterpriseCheckPartitions(req.Partition); err != nil { + return nil, grpcstatus.Error(codes.InvalidArgument, err.Error()) + } + + var resp *pbpeering.TrustBundleReadResponse + handled, err := s.Backend.Forward(req, func(conn *grpc.ClientConn) error { + var err error + resp, err = pbpeering.NewPeeringServiceClient(conn).TrustBundleRead(ctx, req) + return err + }) + if handled || err != nil { + return resp, err + } + + defer metrics.MeasureSince([]string{"peering", "trust_bundle_read"}, time.Now()) + // TODO(peering): ACL check request token + + // TODO(peering): handle blocking queries + + idx, trustBundle, err := s.Backend.Store().PeeringTrustBundleRead(nil, state.Query{ + Value: req.Name, + EnterpriseMeta: *structs.NodeEnterpriseMetaInPartition(req.Partition), + }) + if err != nil { + return nil, fmt.Errorf("failed to read trust bundle for peer %s: %w", req.Name, err) + } + + return &pbpeering.TrustBundleReadResponse{ + Index: idx, + Bundle: trustBundle, + }, nil +} + +// TODO(peering): rename rpc & request/response to drop the "service" part +func (s *Service) TrustBundleListByService(ctx context.Context, req *pbpeering.TrustBundleListByServiceRequest) (*pbpeering.TrustBundleListByServiceResponse, error) { + if err := s.Backend.EnterpriseCheckPartitions(req.Partition); err != nil { + return nil, grpcstatus.Error(codes.InvalidArgument, err.Error()) + } + if err := s.Backend.EnterpriseCheckNamespaces(req.Namespace); err != nil { + return nil, grpcstatus.Error(codes.InvalidArgument, err.Error()) + } + + var resp *pbpeering.TrustBundleListByServiceResponse + handled, err := s.Backend.Forward(req, func(conn *grpc.ClientConn) error { + var err error + resp, err = pbpeering.NewPeeringServiceClient(conn).TrustBundleListByService(ctx, req) + return err + }) + if handled || err != nil { + return resp, err + } + + defer metrics.MeasureSince([]string{"peering", "trust_bundle_list_by_service"}, time.Now()) + // TODO(peering): ACL check request token for service:write on the service name + + // TODO(peering): handle blocking queries + + entMeta := acl.NewEnterpriseMetaWithPartition(req.Partition, req.Namespace) + + var ( + idx uint64 + bundles []*pbpeering.PeeringTrustBundle + ) + + switch { + case req.ServiceName != "": + idx, bundles, err = s.Backend.Store().TrustBundleListByService(nil, req.ServiceName, entMeta) + case req.Kind == string(structs.ServiceKindMeshGateway): + idx, bundles, err = s.Backend.Store().PeeringTrustBundleList(nil, entMeta) + case req.Kind != "": + return nil, grpcstatus.Error(codes.InvalidArgument, "kind must be mesh-gateway if set") + default: + return nil, grpcstatus.Error(codes.InvalidArgument, "one of service or kind is required") + } + + if err != nil { + return nil, err + } + return &pbpeering.TrustBundleListByServiceResponse{Index: idx, Bundles: bundles}, nil +} + type BidirectionalStream interface { Send(*pbpeering.ReplicationMessage) error Recv() (*pbpeering.ReplicationMessage, error) @@ -378,6 +520,22 @@ type BidirectionalStream interface { // StreamResources handles incoming streaming connections. func (s *Service) StreamResources(stream pbpeering.PeeringService_StreamResourcesServer) error { + if !s.Backend.IsLeader() { + // we are not the leader so we will hang up on the dialer + + s.logger.Error("cannot establish a peering stream on a follower node") + + st, err := grpcstatus.New(codes.FailedPrecondition, + "cannot establish a peering stream on a follower node").WithDetails( + &pbpeering.LeaderAddress{Address: s.Backend.LeaderAddress().Get()}) + if err != nil { + s.logger.Error(fmt.Sprintf("failed to marshal the leader address in response; err: %v", err)) + return grpcstatus.Error(codes.FailedPrecondition, "cannot establish a peering stream on a follower node") + } else { + return st.Err() + } + } + // Initial message on a new stream must be a new subscription request. first, err := stream.Recv() if err != nil { @@ -401,48 +559,120 @@ func (s *Service) StreamResources(stream pbpeering.PeeringService_StreamResource if req.Nonce != "" { return grpcstatus.Error(codes.InvalidArgument, "initial subscription request must not contain a nonce") } - if req.ResourceURL != pbpeering.TypeURLService { + if !pbpeering.KnownTypeURL(req.ResourceURL) { return grpcstatus.Error(codes.InvalidArgument, fmt.Sprintf("subscription request to unknown resource URL: %s", req.ResourceURL)) } - // TODO(peering): Validate that a peering exists for this peer + _, p, err := s.Backend.Store().PeeringReadByID(nil, req.PeerID) + if err != nil { + s.logger.Error("failed to look up peer", "peer_id", req.PeerID, "error", err) + return grpcstatus.Error(codes.Internal, "failed to find PeerID: "+req.PeerID) + } + if p == nil { + return grpcstatus.Error(codes.InvalidArgument, "initial subscription for unknown PeerID: "+req.PeerID) + } + // TODO(peering): If the peering is marked as deleted, send a Terminated message and return // TODO(peering): Store subscription request so that an event publisher can separately handle pushing messages for it - s.logger.Info("accepted initial replication request from peer", "peer_id", req.PeerID) + s.logger.Info("accepted initial replication request from peer", "peer_id", p.ID) - // For server peers both of these ID values are the same, because we generated a token with a local ID, - // and the client peer dials using that same ID. - return s.HandleStream(req.PeerID, req.PeerID, stream) + streamReq := HandleStreamRequest{ + LocalID: p.ID, + RemoteID: p.PeerID, + PeerName: p.Name, + Partition: p.Partition, + Stream: stream, + } + err = s.HandleStream(streamReq) + // A nil error indicates that the peering was deleted and the stream needs to be gracefully shutdown. + if err == nil { + s.DrainStream(streamReq) + return nil + } + + s.logger.Error("error handling stream", "peer_name", p.Name, "peer_id", req.PeerID, "error", err) + return err +} + +type HandleStreamRequest struct { + // LocalID is the UUID for the peering in the local Consul datacenter. + LocalID string + + // RemoteID is the UUID for the peering from the perspective of the peer. + RemoteID string + + // PeerName is the name of the peering. + PeerName string + + // Partition is the local partition associated with the peer. + Partition string + + // Stream is the open stream to the peer cluster. + Stream BidirectionalStream +} + +// DrainStream attempts to gracefully drain the stream when the connection is going to be torn down. +// Tearing down the connection too quickly can lead our peer receiving a context cancellation error before the stream termination message. +// Handling the termination message is important to set the expectation that the peering will not be reestablished unless recreated. +func (s *Service) DrainStream(req HandleStreamRequest) { + for { + // Ensure that we read until an error, or the peer has nothing more to send. + if _, err := req.Stream.Recv(); err != nil { + if err != io.EOF { + s.logger.Warn("failed to tear down stream gracefully: peer may not have received termination message", + "peer_name", req.PeerName, "peer_id", req.LocalID, "error", err) + } + break + } + // Since the peering is being torn down we discard all replication messages without an error. + // We want to avoid importing new data at this point. + } } // The localID provided is the locally-generated identifier for the peering. // The remoteID is an identifier that the remote peer recognizes for the peering. -func (s *Service) HandleStream(localID, remoteID string, stream BidirectionalStream) error { - logger := s.logger.Named("stream").With("peer_id", localID) +func (s *Service) HandleStream(req HandleStreamRequest) error { + logger := s.logger.Named("stream").With("peer_name", req.PeerName, "peer_id", req.LocalID) logger.Trace("handling stream for peer") - status, err := s.streams.connected(localID) + status, err := s.streams.connected(req.LocalID) if err != nil { return fmt.Errorf("failed to register stream: %v", err) } // TODO(peering) Also need to clear subscriptions associated with the peer - defer s.streams.disconnected(localID) + defer s.streams.disconnected(req.LocalID) - mgr := newSubscriptionManager(stream.Context(), logger, s.Backend) - subCh := mgr.subscribe(stream.Context(), localID) + var trustDomain string + if s.config.ConnectEnabled { + // Read the TrustDomain up front - we do not allow users to change the ClusterID + // so reading it once at the beginning of the stream is sufficient. + trustDomain, err = getTrustDomain(s.Backend.Store(), logger) + if err != nil { + return err + } + } + + mgr := newSubscriptionManager( + req.Stream.Context(), + logger, + s.config, + trustDomain, + s.Backend, + ) + subCh := mgr.subscribe(req.Stream.Context(), req.LocalID, req.PeerName, req.Partition) sub := &pbpeering.ReplicationMessage{ Payload: &pbpeering.ReplicationMessage_Request_{ Request: &pbpeering.ReplicationMessage_Request{ ResourceURL: pbpeering.TypeURLService, - PeerID: remoteID, + PeerID: req.RemoteID, }, }, } logTraceSend(logger, sub) - if err := stream.Send(sub); err != nil { + if err := req.Stream.Send(sub); err != nil { if err == io.EOF { logger.Info("stream ended by peer") status.trackReceiveError(err.Error()) @@ -458,26 +688,21 @@ func (s *Service) HandleStream(localID, remoteID string, stream BidirectionalStr go func() { defer close(recvChan) for { - msg, err := stream.Recv() + msg, err := req.Stream.Recv() + if err == nil { + logTraceRecv(logger, msg) + recvChan <- msg + continue + } + if err == io.EOF { logger.Info("stream ended by peer") status.trackReceiveError(err.Error()) return } - if e, ok := grpcstatus.FromError(err); ok { - // Cancelling the stream is not an error, that means we or our peer intended to terminate the peering. - if e.Code() == codes.Canceled { - return - } - } - if err != nil { - logger.Error("failed to receive from stream", "error", err) - status.trackReceiveError(err.Error()) - return - } - - logTraceRecv(logger, msg) - recvChan <- msg + logger.Error("failed to receive from stream", "error", err) + status.trackReceiveError(err.Error()) + return } }() @@ -494,22 +719,37 @@ func (s *Service) HandleStream(localID, remoteID string, stream BidirectionalStr } logTraceSend(logger, term) - if err := stream.Send(term); err != nil { + if err := req.Stream.Send(term); err != nil { status.trackSendError(err.Error()) return fmt.Errorf("failed to send to stream: %v", err) } logger.Trace("deleting stream status") - s.streams.deleteStatus(localID) + s.streams.deleteStatus(req.LocalID) return nil case msg, open := <-recvChan: if !open { - // No longer receiving data on the stream. + logger.Trace("no longer receiving data on the stream") return nil } + if !s.Backend.IsLeader() { + // we are not the leader anymore so we will hang up on the dialer + logger.Error("node is not a leader anymore; cannot continue streaming") + + st, err := grpcstatus.New(codes.FailedPrecondition, + "node is not a leader anymore; cannot continue streaming").WithDetails( + &pbpeering.LeaderAddress{Address: s.Backend.LeaderAddress().Get()}) + if err != nil { + s.logger.Error(fmt.Sprintf("failed to marshal the leader address in response; err: %v", err)) + return grpcstatus.Error(codes.FailedPrecondition, "node is not a leader anymore; cannot continue streaming") + } else { + return st.Err() + } + } + if req := msg.GetRequest(); req != nil { switch { case req.Nonce == "": @@ -528,7 +768,8 @@ func (s *Service) HandleStream(localID, remoteID string, stream BidirectionalStr } if resp := msg.GetResponse(); resp != nil { - req, err := processResponse(resp) + // TODO(peering): Ensure there's a nonce + reply, err := s.processResponse(req.PeerName, req.Partition, resp) if err != nil { logger.Error("failed to persist resource", "resourceURL", resp.ResourceURL, "resourceID", resp.ResourceID) status.trackReceiveError(err.Error()) @@ -536,8 +777,8 @@ func (s *Service) HandleStream(localID, remoteID string, stream BidirectionalStr status.trackReceiveSuccess() } - logTraceSend(logger, req) - if err := stream.Send(req); err != nil { + logTraceSend(logger, reply) + if err := req.Stream.Send(reply); err != nil { status.trackSendError(err.Error()) return fmt.Errorf("failed to send to stream: %v", err) } @@ -546,95 +787,54 @@ func (s *Service) HandleStream(localID, remoteID string, stream BidirectionalStr } if term := msg.GetTerminated(); term != nil { - logger.Info("received peering termination message, cleaning up imported resources") + logger.Info("peering was deleted by our peer: marking peering as terminated and cleaning up imported resources") // Once marked as terminated, a separate deferred deletion routine will clean up imported resources. - if err := s.Backend.Apply().PeeringTerminateByID(&pbpeering.PeeringTerminateByIDRequest{ID: localID}); err != nil { - return err + if err := s.Backend.Apply().PeeringTerminateByID(&pbpeering.PeeringTerminateByIDRequest{ID: req.LocalID}); err != nil { + logger.Error("failed to mark peering as terminated: %w", err) } return nil } case update := <-subCh: + var resp *pbpeering.ReplicationMessage switch { case strings.HasPrefix(update.CorrelationID, subExportedService): - if err := pushServiceResponse(logger, stream, status, update); err != nil { - return fmt.Errorf("failed to push data for %q: %w", update.CorrelationID, err) - } + resp = makeServiceResponse(logger, update) + + case strings.HasPrefix(update.CorrelationID, subMeshGateway): + // TODO(Peering): figure out how to sync this separately + + case update.CorrelationID == subCARoot: + resp = makeCARootsResponse(logger, update) default: logger.Warn("unrecognized update type from subscription manager: " + update.CorrelationID) continue } + if resp == nil { + continue + } + logTraceSend(logger, resp) + if err := req.Stream.Send(resp); err != nil { + status.trackSendError(err.Error()) + return fmt.Errorf("failed to push data for %q: %w", update.CorrelationID, err) + } } } } -// pushService response handles sending exported service instance updates to the peer cluster. -// Each cache.UpdateEvent will contain all instances for a service name. -// If there are no instances in the event, we consider that to be a de-registration. -func pushServiceResponse(logger hclog.Logger, stream BidirectionalStream, status *lockableStreamStatus, update cache.UpdateEvent) error { - csn, ok := update.Result.(*pbservice.IndexedCheckServiceNodes) - if !ok { - logger.Error(fmt.Sprintf("invalid type for response: %T, expected *pbservice.IndexedCheckServiceNodes", update.Result)) - - // Skip this update to avoid locking up peering due to a bad service update. - return nil +func getTrustDomain(store Store, logger hclog.Logger) (string, error) { + _, cfg, err := store.CAConfig(nil) + switch { + case err != nil: + logger.Error("failed to read Connect CA Config", "error", err) + return "", grpcstatus.Error(codes.Internal, "failed to read Connect CA Config") + case cfg == nil: + logger.Warn("cannot begin stream because Connect CA is not yet initialized") + return "", grpcstatus.Error(codes.FailedPrecondition, "Connect CA is not yet initialized") } - serviceName := strings.TrimPrefix(update.CorrelationID, subExportedService) - - // If no nodes are present then it's due to one of: - // 1. The service is newly registered or exported and yielded a transient empty update. - // 2. All instances of the service were de-registered. - // 3. The service was un-exported. - // - // We don't distinguish when these three things occurred, but it's safe to send a DELETE Op in all cases, so we do that. - // Case #1 is a no-op for the importing peer. - if len(csn.Nodes) == 0 { - resp := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Response_{ - Response: &pbpeering.ReplicationMessage_Response{ - ResourceURL: pbpeering.TypeURLService, - // TODO(peering): Nonce management - Nonce: "", - ResourceID: serviceName, - Operation: pbpeering.ReplicationMessage_Response_DELETE, - }, - }, - } - logTraceSend(logger, resp) - if err := stream.Send(resp); err != nil { - status.trackSendError(err.Error()) - return fmt.Errorf("failed to send to stream: %v", err) - } - return nil - } - - // If there are nodes in the response, we push them as an UPSERT operation. - any, err := ptypes.MarshalAny(csn) - if err != nil { - // Log the error and skip this response to avoid locking up peering due to a bad update event. - logger.Error("failed to marshal service endpoints", "error", err) - return nil - } - resp := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Response_{ - Response: &pbpeering.ReplicationMessage_Response{ - ResourceURL: pbpeering.TypeURLService, - // TODO(peering): Nonce management - Nonce: "", - ResourceID: serviceName, - Operation: pbpeering.ReplicationMessage_Response_UPSERT, - Resource: any, - }, - }, - } - logTraceSend(logger, resp) - if err := stream.Send(resp); err != nil { - status.trackSendError(err.Error()) - return fmt.Errorf("failed to send to stream: %v", err) - } - return nil + return connect.SpiffeIDSigningForCluster(cfg.ClusterID).Host(), nil } func (s *Service) StreamStatus(peer string) (resp StreamStatus, found bool) { @@ -646,80 +846,6 @@ func (s *Service) ConnectedStreams() map[string]chan struct{} { return s.streams.connectedStreams() } -func makeReply(resourceURL, nonce string, errCode code.Code, errMsg string) *pbpeering.ReplicationMessage { - var rpcErr *pbstatus.Status - if errCode != code.Code_OK || errMsg != "" { - rpcErr = &pbstatus.Status{ - Code: int32(errCode), - Message: errMsg, - } - } - - msg := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Request_{ - Request: &pbpeering.ReplicationMessage_Request{ - ResourceURL: resourceURL, - Nonce: nonce, - Error: rpcErr, - }, - }, - } - return msg -} - -func processResponse(resp *pbpeering.ReplicationMessage_Response) (*pbpeering.ReplicationMessage, error) { - var ( - err error - errCode code.Code - errMsg string - ) - - if resp.ResourceURL != pbpeering.TypeURLService { - errCode = code.Code_INVALID_ARGUMENT - err = fmt.Errorf("received response for unknown resource type %q", resp.ResourceURL) - return makeReply(resp.ResourceURL, resp.Nonce, errCode, err.Error()), err - } - - switch resp.Operation { - case pbpeering.ReplicationMessage_Response_UPSERT: - err = handleUpsert(resp.ResourceURL, resp.Resource) - if err != nil { - errCode = code.Code_INTERNAL - errMsg = err.Error() - } - - case pbpeering.ReplicationMessage_Response_DELETE: - err = handleDelete(resp.ResourceURL, resp.ResourceID) - if err != nil { - errCode = code.Code_INTERNAL - errMsg = err.Error() - } - - default: - errCode = code.Code_INVALID_ARGUMENT - - op := pbpeering.ReplicationMessage_Response_Operation_name[int32(resp.Operation)] - if op == "" { - op = strconv.FormatInt(int64(resp.Operation), 10) - } - errMsg = fmt.Sprintf("unsupported operation: %q", op) - - err = errors.New(errMsg) - } - - return makeReply(resp.ResourceURL, resp.Nonce, errCode, errMsg), err -} - -func handleUpsert(resourceURL string, resource *anypb.Any) error { - // TODO(peering): implement - return nil -} - -func handleDelete(resourceURL string, resourceID string) error { - // TODO(peering): implement - return nil -} - func logTraceRecv(logger hclog.Logger, pb proto.Message) { logTraceProto(logger, pb, true) } diff --git a/agent/rpc/peering/service_oss_test.go b/agent/rpc/peering/service_oss_test.go index 8c7633639a..173e018897 100644 --- a/agent/rpc/peering/service_oss_test.go +++ b/agent/rpc/peering/service_oss_test.go @@ -21,7 +21,7 @@ func TestPeeringService_RejectsPartition(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) t.Cleanup(cancel) - req := &pbpeering.PeeringReadRequest{Name: "foo", Partition: "default"} + req := &pbpeering.PeeringReadRequest{Name: "foo", Partition: "test"} resp, err := client.PeeringRead(ctx, req) require.Contains(t, err.Error(), "Partitions are a Consul Enterprise feature") require.Nil(t, resp) @@ -31,9 +31,32 @@ func TestPeeringService_RejectsPartition(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) t.Cleanup(cancel) - req := &pbpeering.PeeringListRequest{Partition: "default"} + req := &pbpeering.PeeringListRequest{Partition: "test"} resp, err := client.PeeringList(ctx, req) require.Contains(t, err.Error(), "Partitions are a Consul Enterprise feature") require.Nil(t, resp) }) } + +func TestPeeringService_IgnoresDefaultPartition(t *testing.T) { + s := newTestServer(t, nil) + client := pbpeering.NewPeeringServiceClient(s.ClientConn(t)) + + t.Run("read", func(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + t.Cleanup(cancel) + + req := &pbpeering.PeeringReadRequest{Name: "foo", Partition: "DeFaUlT"} + _, err := client.PeeringRead(ctx, req) + require.NoError(t, err) + }) + + t.Run("list", func(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + t.Cleanup(cancel) + + req := &pbpeering.PeeringListRequest{Partition: "DeFaUlT"} + _, err := client.PeeringList(ctx, req) + require.NoError(t, err) + }) +} diff --git a/agent/rpc/peering/service_test.go b/agent/rpc/peering/service_test.go index a5045bd504..aba7973d00 100644 --- a/agent/rpc/peering/service_test.go +++ b/agent/rpc/peering/service_test.go @@ -16,21 +16,26 @@ import ( "github.com/stretchr/testify/require" "golang.org/x/sync/errgroup" gogrpc "google.golang.org/grpc" - - grpc "github.com/hashicorp/consul/agent/grpc/private" - "github.com/hashicorp/consul/agent/grpc/private/resolver" - "github.com/hashicorp/consul/proto/prototest" + "google.golang.org/protobuf/types/known/anypb" "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/consul" + "github.com/hashicorp/consul/agent/consul/state" + grpc "github.com/hashicorp/consul/agent/grpc/private" + "github.com/hashicorp/consul/agent/grpc/private/resolver" "github.com/hashicorp/consul/agent/pool" "github.com/hashicorp/consul/agent/router" "github.com/hashicorp/consul/agent/rpc/middleware" "github.com/hashicorp/consul/agent/rpc/peering" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/token" + "github.com/hashicorp/consul/api" "github.com/hashicorp/consul/proto/pbpeering" + "github.com/hashicorp/consul/proto/pbservice" + "github.com/hashicorp/consul/proto/prototest" + "github.com/hashicorp/consul/sdk/freeport" "github.com/hashicorp/consul/sdk/testutil" + "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/hashicorp/consul/testrpc" "github.com/hashicorp/consul/tlsutil" "github.com/hashicorp/consul/types" @@ -63,6 +68,8 @@ func TestPeeringService_GenerateToken(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) t.Cleanup(cancel) + expectedAddr := s.Server.Listener.Addr().String() + // TODO(peering): for more failure cases, consider using a table test // check meta tags reqE := pbpeering.GenerateTokenRequest{PeerName: "peerB", Datacenter: "dc1", Meta: generateTooManyMetaKeys()} @@ -81,7 +88,7 @@ func TestPeeringService_GenerateToken(t *testing.T) { require.NoError(t, json.Unmarshal(tokenJSON, token)) require.Equal(t, "server.dc1.consul", token.ServerName) require.Len(t, token.ServerAddresses, 1) - require.Equal(t, "127.0.0.1:2345", token.ServerAddresses[0]) + require.Equal(t, expectedAddr, token.ServerAddresses[0]) require.Equal(t, []string{ca}, token.CA) require.NotEmpty(t, token.PeerID) @@ -105,7 +112,7 @@ func TestPeeringService_GenerateToken(t *testing.T) { require.Equal(t, expect, peers[0]) } -func TestPeeringService_Initiate(t *testing.T) { +func TestPeeringService_Establish(t *testing.T) { validToken := peering.TestPeeringToken("83474a06-cca4-4ff4-99a4-4152929c8160") validTokenJSON, _ := json.Marshal(&validToken) validTokenB64 := base64.StdEncoding.EncodeToString(validTokenJSON) @@ -116,8 +123,8 @@ func TestPeeringService_Initiate(t *testing.T) { type testcase struct { name string - req *pbpeering.InitiateRequest - expectResp *pbpeering.InitiateResponse + req *pbpeering.EstablishRequest + expectResp *pbpeering.EstablishResponse expectPeering *pbpeering.Peering expectErr string } @@ -125,7 +132,7 @@ func TestPeeringService_Initiate(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) t.Cleanup(cancel) - resp, err := client.Initiate(ctx, tc.req) + resp, err := client.Establish(ctx, tc.req) if tc.expectErr != "" { require.Contains(t, err.Error(), tc.expectErr) return @@ -153,12 +160,12 @@ func TestPeeringService_Initiate(t *testing.T) { tcs := []testcase{ { name: "invalid peer name", - req: &pbpeering.InitiateRequest{PeerName: "--AA--"}, + req: &pbpeering.EstablishRequest{PeerName: "--AA--"}, expectErr: "--AA-- is not a valid peer name", }, { name: "invalid token (base64)", - req: &pbpeering.InitiateRequest{ + req: &pbpeering.EstablishRequest{ PeerName: "peer1-usw1", PeeringToken: "+++/+++", }, @@ -166,7 +173,7 @@ func TestPeeringService_Initiate(t *testing.T) { }, { name: "invalid token (JSON)", - req: &pbpeering.InitiateRequest{ + req: &pbpeering.EstablishRequest{ PeerName: "peer1-usw1", PeeringToken: "Cg==", // base64 of "-" }, @@ -174,15 +181,15 @@ func TestPeeringService_Initiate(t *testing.T) { }, { name: "invalid token (empty)", - req: &pbpeering.InitiateRequest{ + req: &pbpeering.EstablishRequest{ PeerName: "peer1-usw1", PeeringToken: "e30K", // base64 of "{}" }, - expectErr: "peering token CA value is empty", + expectErr: "peering token server addresses value is empty", }, { name: "too many meta tags", - req: &pbpeering.InitiateRequest{ + req: &pbpeering.EstablishRequest{ PeerName: "peer1-usw1", PeeringToken: validTokenB64, Meta: generateTooManyMetaKeys(), @@ -191,12 +198,12 @@ func TestPeeringService_Initiate(t *testing.T) { }, { name: "success", - req: &pbpeering.InitiateRequest{ + req: &pbpeering.EstablishRequest{ PeerName: "peer1-usw1", PeeringToken: validTokenB64, Meta: map[string]string{"foo": "bar"}, }, - expectResp: &pbpeering.InitiateResponse{}, + expectResp: &pbpeering.EstablishResponse{}, expectPeering: peering.TestPeering( "peer1-usw1", pbpeering.PeeringState_INITIAL, @@ -210,6 +217,7 @@ func TestPeeringService_Initiate(t *testing.T) { }) } } + func TestPeeringService_Read(t *testing.T) { // TODO(peering): see note on newTestServer, refactor to not use this s := newTestServer(t, nil) @@ -266,6 +274,40 @@ func TestPeeringService_Read(t *testing.T) { } } +func TestPeeringService_Delete(t *testing.T) { + // TODO(peering): see note on newTestServer, refactor to not use this + s := newTestServer(t, nil) + + p := &pbpeering.Peering{ + Name: "foo", + State: pbpeering.PeeringState_INITIAL, + PeerCAPems: nil, + PeerServerName: "test", + PeerServerAddresses: []string{"addr1"}, + } + err := s.Server.FSM().State().PeeringWrite(10, p) + require.NoError(t, err) + require.Nil(t, p.DeletedAt) + require.True(t, p.IsActive()) + + client := pbpeering.NewPeeringServiceClient(s.ClientConn(t)) + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + t.Cleanup(cancel) + + _, err = client.PeeringDelete(ctx, &pbpeering.PeeringDeleteRequest{Name: "foo"}) + require.NoError(t, err) + + retry.Run(t, func(r *retry.R) { + _, resp, err := s.Server.FSM().State().PeeringRead(nil, state.Query{Value: "foo"}) + require.NoError(r, err) + + // Initially the peering will be marked for deletion but eventually the leader + // routine will clean it up. + require.Nil(r, resp) + }) +} + func TestPeeringService_List(t *testing.T) { // TODO(peering): see note on newTestServer, refactor to not use this s := newTestServer(t, nil) @@ -304,6 +346,507 @@ func TestPeeringService_List(t *testing.T) { prototest.AssertDeepEqual(t, expect, resp) } +func TestPeeringService_TrustBundleRead(t *testing.T) { + srv := newTestServer(t, nil) + store := srv.Server.FSM().State() + client := pbpeering.NewPeeringServiceClient(srv.ClientConn(t)) + + var lastIdx uint64 = 1 + _ = setupTestPeering(t, store, "my-peering", lastIdx) + + mysql := &structs.CheckServiceNode{ + Node: &structs.Node{ + Node: "node1", + Address: "10.0.0.1", + PeerName: "my-peering", + }, + Service: &structs.NodeService{ + ID: "mysql-1", + Service: "mysql", + Port: 5000, + PeerName: "my-peering", + }, + } + + lastIdx++ + require.NoError(t, store.EnsureNode(lastIdx, mysql.Node)) + lastIdx++ + require.NoError(t, store.EnsureService(lastIdx, mysql.Node.Node, mysql.Service)) + + bundle := &pbpeering.PeeringTrustBundle{ + TrustDomain: "peer1.com", + PeerName: "my-peering", + RootPEMs: []string{"peer1-root-1"}, + } + lastIdx++ + require.NoError(t, store.PeeringTrustBundleWrite(lastIdx, bundle)) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + resp, err := client.TrustBundleRead(ctx, &pbpeering.TrustBundleReadRequest{ + Name: "my-peering", + }) + require.NoError(t, err) + require.Equal(t, lastIdx, resp.Index) + require.NotNil(t, resp.Bundle) + prototest.AssertDeepEqual(t, bundle, resp.Bundle) +} + +// Setup: +// - Peerings "foo" and "bar" with trust bundles saved +// - "api" service exported to both "foo" and "bar" +// - "web" service exported to "baz" +func TestPeeringService_TrustBundleListByService(t *testing.T) { + s := newTestServer(t, nil) + store := s.Server.FSM().State() + + var lastIdx uint64 = 10 + + lastIdx++ + require.NoError(t, s.Server.FSM().State().PeeringWrite(lastIdx, &pbpeering.Peering{ + Name: "foo", + State: pbpeering.PeeringState_INITIAL, + PeerServerName: "test", + PeerServerAddresses: []string{"addr1"}, + })) + + lastIdx++ + require.NoError(t, s.Server.FSM().State().PeeringWrite(lastIdx, &pbpeering.Peering{ + Name: "bar", + State: pbpeering.PeeringState_INITIAL, + PeerServerName: "test-bar", + PeerServerAddresses: []string{"addr2"}, + })) + + lastIdx++ + require.NoError(t, store.PeeringTrustBundleWrite(lastIdx, &pbpeering.PeeringTrustBundle{ + TrustDomain: "foo.com", + PeerName: "foo", + RootPEMs: []string{"foo-root-1"}, + })) + + lastIdx++ + require.NoError(t, store.PeeringTrustBundleWrite(lastIdx, &pbpeering.PeeringTrustBundle{ + TrustDomain: "bar.com", + PeerName: "bar", + RootPEMs: []string{"bar-root-1"}, + })) + + lastIdx++ + require.NoError(t, store.EnsureNode(lastIdx, &structs.Node{ + Node: "my-node", Address: "127.0.0.1", + })) + + lastIdx++ + require.NoError(t, store.EnsureService(lastIdx, "my-node", &structs.NodeService{ + ID: "api", + Service: "api", + Port: 8000, + })) + + entry := structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "api", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "foo", + }, + { + PeerName: "bar", + }, + }, + }, + { + Name: "web", + Consumers: []structs.ServiceConsumer{ + { + PeerName: "baz", + }, + }, + }, + }, + } + require.NoError(t, entry.Normalize()) + require.NoError(t, entry.Validate()) + + lastIdx++ + require.NoError(t, store.EnsureConfigEntry(lastIdx, &entry)) + + client := pbpeering.NewPeeringServiceClient(s.ClientConn(t)) + + req := pbpeering.TrustBundleListByServiceRequest{ + ServiceName: "api", + } + resp, err := client.TrustBundleListByService(context.Background(), &req) + require.NoError(t, err) + require.Len(t, resp.Bundles, 2) + require.Equal(t, []string{"foo-root-1"}, resp.Bundles[0].RootPEMs) + require.Equal(t, []string{"bar-root-1"}, resp.Bundles[1].RootPEMs) +} + +func Test_StreamHandler_UpsertServices(t *testing.T) { + if testing.Short() { + t.Skip("too slow for testing.Short") + } + + type testCase struct { + name string + msg *pbpeering.ReplicationMessage_Response + input structs.CheckServiceNodes + expect structs.CheckServiceNodes + } + + s := newTestServer(t, nil) + testrpc.WaitForLeader(t, s.Server.RPC, "dc1") + testrpc.WaitForActiveCARoot(t, s.Server.RPC, "dc1", nil) + + srv := peering.NewService( + testutil.Logger(t), + peering.Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, + consul.NewPeeringBackend(s.Server, nil), + ) + + require.NoError(t, s.Server.FSM().State().PeeringWrite(0, &pbpeering.Peering{ + Name: "my-peer", + })) + + _, p, err := s.Server.FSM().State().PeeringRead(nil, state.Query{Value: "my-peer"}) + require.NoError(t, err) + + client := peering.NewMockClient(context.Background()) + + errCh := make(chan error, 1) + client.ErrCh = errCh + + go func() { + // Pass errors from server handler into ErrCh so that they can be seen by the client on Recv(). + // This matches gRPC's behavior when an error is returned by a server. + err := srv.StreamResources(client.ReplicationStream) + if err != nil { + errCh <- err + } + }() + + sub := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Request_{ + Request: &pbpeering.ReplicationMessage_Request{ + PeerID: p.ID, + ResourceURL: pbpeering.TypeURLService, + }, + }, + } + require.NoError(t, client.Send(sub)) + + // Receive subscription request from peer for our services + _, err = client.Recv() + require.NoError(t, err) + + // Receive first roots replication message + receiveRoots, err := client.Recv() + require.NoError(t, err) + require.NotNil(t, receiveRoots.GetResponse()) + require.Equal(t, pbpeering.TypeURLRoots, receiveRoots.GetResponse().ResourceURL) + + remoteEntMeta := structs.DefaultEnterpriseMetaInPartition("remote-partition") + localEntMeta := acl.DefaultEnterpriseMeta() + localPeerName := "my-peer" + + // Scrub data we don't need for the assertions below. + scrubCheckServiceNodes := func(instances structs.CheckServiceNodes) { + for _, csn := range instances { + csn.Node.RaftIndex = structs.RaftIndex{} + + csn.Service.TaggedAddresses = nil + csn.Service.Weights = nil + csn.Service.RaftIndex = structs.RaftIndex{} + csn.Service.Proxy = structs.ConnectProxyConfig{} + + for _, c := range csn.Checks { + c.RaftIndex = structs.RaftIndex{} + c.Definition = structs.HealthCheckDefinition{} + } + } + } + + run := func(t *testing.T, tc testCase) { + pbCSN := &pbservice.IndexedCheckServiceNodes{} + for _, csn := range tc.input { + pbCSN.Nodes = append(pbCSN.Nodes, pbservice.NewCheckServiceNodeFromStructs(&csn)) + } + + any, err := anypb.New(pbCSN) + require.NoError(t, err) + tc.msg.Resource = any + + resp := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Response_{ + Response: tc.msg, + }, + } + require.NoError(t, client.Send(resp)) + + msg, err := client.RecvWithTimeout(1 * time.Second) + require.NoError(t, err) + + req := msg.GetRequest() + require.NotNil(t, req) + require.Equal(t, tc.msg.Nonce, req.Nonce) + require.Nil(t, req.Error) + + _, got, err := s.Server.FSM().State().CombinedCheckServiceNodes(nil, structs.NewServiceName("api", nil), localPeerName) + require.NoError(t, err) + + scrubCheckServiceNodes(got) + require.Equal(t, tc.expect, got) + } + + // NOTE: These test cases do not run against independent state stores, they show sequential updates for a given service. + // Every new upsert must replace the data from the previous case. + tt := []testCase{ + { + name: "upsert an instance on a node", + msg: &pbpeering.ReplicationMessage_Response{ + ResourceURL: pbpeering.TypeURLService, + ResourceID: "api", + Nonce: "1", + Operation: pbpeering.ReplicationMessage_Response_UPSERT, + }, + input: structs.CheckServiceNodes{ + { + Node: &structs.Node{ + ID: "112e2243-ab62-4e8a-9317-63306972183c", + Node: "node-1", + Address: "10.0.0.1", + Datacenter: "dc1", + Partition: remoteEntMeta.PartitionOrEmpty(), + }, + Service: &structs.NodeService{ + Kind: "", + ID: "api-1", + Service: "api", + Port: 8080, + EnterpriseMeta: *remoteEntMeta, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-1-check", + Node: "node-1", + Status: api.HealthPassing, + EnterpriseMeta: *remoteEntMeta, + }, + { + CheckID: "api-1-check", + ServiceID: "api-1", + ServiceName: "api", + Node: "node-1", + Status: api.HealthCritical, + EnterpriseMeta: *remoteEntMeta, + }, + }, + }, + }, + expect: structs.CheckServiceNodes{ + { + Node: &structs.Node{ + ID: "112e2243-ab62-4e8a-9317-63306972183c", + Node: "node-1", + Address: "10.0.0.1", + Datacenter: "dc1", + Partition: localEntMeta.PartitionOrEmpty(), + PeerName: localPeerName, + }, + Service: &structs.NodeService{ + Kind: "", + ID: "api-1", + Service: "api", + Port: 8080, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-1-check", + Node: "node-1", + Status: api.HealthPassing, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + { + CheckID: "api-1-check", + ServiceID: "api-1", + ServiceName: "api", + Node: "node-1", + Status: api.HealthCritical, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + }, + }, + }, + }, + { + name: "upsert two instances on the same node", + msg: &pbpeering.ReplicationMessage_Response{ + ResourceURL: pbpeering.TypeURLService, + ResourceID: "api", + Nonce: "2", + Operation: pbpeering.ReplicationMessage_Response_UPSERT, + }, + input: structs.CheckServiceNodes{ + { + Node: &structs.Node{ + ID: "112e2243-ab62-4e8a-9317-63306972183c", + Node: "node-1", + Address: "10.0.0.1", + Datacenter: "dc1", + Partition: remoteEntMeta.PartitionOrEmpty(), + }, + Service: &structs.NodeService{ + Kind: "", + ID: "api-1", + Service: "api", + Port: 8080, + EnterpriseMeta: *remoteEntMeta, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-1-check", + Node: "node-1", + Status: api.HealthPassing, + EnterpriseMeta: *remoteEntMeta, + }, + { + CheckID: "api-1-check", + ServiceID: "api-1", + ServiceName: "api", + Node: "node-1", + Status: api.HealthCritical, + EnterpriseMeta: *remoteEntMeta, + }, + }, + }, + { + Node: &structs.Node{ + ID: "112e2243-ab62-4e8a-9317-63306972183c", + Node: "node-1", + Address: "10.0.0.1", + Datacenter: "dc1", + Partition: remoteEntMeta.PartitionOrEmpty(), + }, + Service: &structs.NodeService{ + Kind: "", + ID: "api-2", + Service: "api", + Port: 9090, + EnterpriseMeta: *remoteEntMeta, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-1-check", + Node: "node-1", + Status: api.HealthPassing, + EnterpriseMeta: *remoteEntMeta, + }, + { + CheckID: "api-2-check", + ServiceID: "api-2", + ServiceName: "api", + Node: "node-1", + Status: api.HealthWarning, + EnterpriseMeta: *remoteEntMeta, + }, + }, + }, + }, + expect: structs.CheckServiceNodes{ + { + Node: &structs.Node{ + ID: "112e2243-ab62-4e8a-9317-63306972183c", + Node: "node-1", + Address: "10.0.0.1", + Datacenter: "dc1", + Partition: localEntMeta.PartitionOrEmpty(), + PeerName: localPeerName, + }, + Service: &structs.NodeService{ + Kind: "", + ID: "api-1", + Service: "api", + Port: 8080, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-1-check", + Node: "node-1", + Status: api.HealthPassing, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + { + CheckID: "api-1-check", + ServiceID: "api-1", + ServiceName: "api", + Node: "node-1", + Status: api.HealthCritical, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + }, + }, + { + Node: &structs.Node{ + ID: "112e2243-ab62-4e8a-9317-63306972183c", + Node: "node-1", + Address: "10.0.0.1", + Datacenter: "dc1", + Partition: localEntMeta.PartitionOrEmpty(), + PeerName: localPeerName, + }, + Service: &structs.NodeService{ + Kind: "", + ID: "api-2", + Service: "api", + Port: 9090, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-1-check", + Node: "node-1", + Status: api.HealthPassing, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + { + CheckID: "api-2-check", + ServiceID: "api-2", + ServiceName: "api", + Node: "node-1", + Status: api.HealthWarning, + EnterpriseMeta: *localEntMeta, + PeerName: localPeerName, + }, + }, + }, + }, + }, + } + for _, tc := range tt { + testutil.RunStep(t, tc.name, func(t *testing.T) { + run(t, tc) + }) + } +} + // newTestServer is copied from partition/service_test.go, with the addition of certs/cas. // TODO(peering): these are endpoint tests and should live in the agent/consul // package. Instead, these can be written around a mock client (see testing.go) @@ -313,15 +856,27 @@ func newTestServer(t *testing.T, cb func(conf *consul.Config)) testingServer { conf := consul.DefaultConfig() dir := testutil.TempDir(t, "consul") + ports := freeport.GetN(t, 3) // {rpc, serf_lan, serf_wan} + conf.Bootstrap = true conf.Datacenter = "dc1" conf.DataDir = dir - conf.RPCAddr = &net.TCPAddr{IP: []byte{127, 0, 0, 1}, Port: 2345} + conf.RPCAddr = &net.TCPAddr{IP: []byte{127, 0, 0, 1}, Port: ports[0]} conf.RaftConfig.ElectionTimeout = 200 * time.Millisecond conf.RaftConfig.LeaderLeaseTimeout = 100 * time.Millisecond conf.RaftConfig.HeartbeatTimeout = 200 * time.Millisecond conf.TLSConfig.Domain = "consul" + conf.SerfLANConfig.MemberlistConfig.BindAddr = "127.0.0.1" + conf.SerfLANConfig.MemberlistConfig.BindPort = ports[1] + conf.SerfLANConfig.MemberlistConfig.AdvertisePort = ports[1] + conf.SerfWANConfig.MemberlistConfig.BindAddr = "127.0.0.1" + conf.SerfWANConfig.MemberlistConfig.BindPort = ports[2] + conf.SerfWANConfig.MemberlistConfig.AdvertisePort = ports[2] + + conf.PrimaryDatacenter = "dc1" + conf.ConnectEnabled = true + nodeID, err := uuid.GenerateUUID() if err != nil { t.Fatal(err) @@ -441,3 +996,16 @@ func newDefaultDeps(t *testing.T, c *consul.Config) consul.Deps { GetNetRPCInterceptorFunc: middleware.GetNetRPCInterceptor, } } + +func setupTestPeering(t *testing.T, store *state.Store, name string, index uint64) string { + err := store.PeeringWrite(index, &pbpeering.Peering{ + Name: name, + }) + require.NoError(t, err) + + _, p, err := store.PeeringRead(nil, state.Query{Value: name}) + require.NoError(t, err) + require.NotNil(t, p) + + return p.ID +} diff --git a/agent/rpc/peering/stream_test.go b/agent/rpc/peering/stream_test.go index 65aa4c0f8b..dc30fa6868 100644 --- a/agent/rpc/peering/stream_test.go +++ b/agent/rpc/peering/stream_test.go @@ -2,28 +2,185 @@ package peering import ( "context" + "fmt" "io" + "sort" "testing" "time" + "github.com/golang/protobuf/proto" "github.com/golang/protobuf/ptypes" + "github.com/golang/protobuf/ptypes/any" + "github.com/hashicorp/go-uuid" "github.com/stretchr/testify/require" "google.golang.org/genproto/googleapis/rpc/code" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/consul/stream" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbcommon" "github.com/hashicorp/consul/proto/pbpeering" "github.com/hashicorp/consul/proto/pbservice" "github.com/hashicorp/consul/proto/pbstatus" "github.com/hashicorp/consul/proto/prototest" "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" + "github.com/hashicorp/consul/types" ) +func TestStreamResources_Server_Follower(t *testing.T) { + publisher := stream.NewEventPublisher(10 * time.Second) + store := newStateStore(t, publisher) + + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, + &testStreamBackend{ + store: store, + pub: publisher, + leader: func() bool { + return false + }, + leaderAddress: &leaderAddress{ + addr: "expected:address", + }, + }) + + client := NewMockClient(context.Background()) + + errCh := make(chan error, 1) + client.ErrCh = errCh + + go func() { + // Pass errors from server handler into ErrCh so that they can be seen by the client on Recv(). + // This matches gRPC's behavior when an error is returned by a server. + err := srv.StreamResources(client.ReplicationStream) + if err != nil { + errCh <- err + } + }() + + // expect error + msg, err := client.Recv() + require.Nil(t, msg) + require.Error(t, err) + require.EqualError(t, err, "rpc error: code = FailedPrecondition desc = cannot establish a peering stream on a follower node") + + // expect a status error + st, ok := status.FromError(err) + require.True(t, ok, "need to get back a grpc status error") + deets := st.Details() + + // expect a LeaderAddress message + exp := []interface{}{&pbpeering.LeaderAddress{Address: "expected:address"}} + prototest.AssertDeepEqual(t, exp, deets) +} + +// TestStreamResources_Server_LeaderBecomesFollower simulates a srv that is a leader when the +// subscription request is sent but loses leadership status for subsequent messages. +func TestStreamResources_Server_LeaderBecomesFollower(t *testing.T) { + publisher := stream.NewEventPublisher(10 * time.Second) + store := newStateStore(t, publisher) + + first := true + leaderFunc := func() bool { + if first { + first = false + return true + } + return false + } + + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, + &testStreamBackend{ + store: store, + pub: publisher, + leader: leaderFunc, + leaderAddress: &leaderAddress{ + addr: "expected:address", + }, + }) + + client := NewMockClient(context.Background()) + + errCh := make(chan error, 1) + client.ErrCh = errCh + + go func() { + err := srv.StreamResources(client.ReplicationStream) + if err != nil { + errCh <- err + } + }() + + p := writeEstablishedPeering(t, store, 1, "my-peer") + peerID := p.ID + + // Set the initial roots and CA configuration. + _, _ = writeInitialRootsAndCA(t, store) + + // Receive a subscription from a peer + sub := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Request_{ + Request: &pbpeering.ReplicationMessage_Request{ + PeerID: peerID, + ResourceURL: pbpeering.TypeURLService, + }, + }, + } + err := client.Send(sub) + require.NoError(t, err) + + msg, err := client.Recv() + require.NoError(t, err) + require.NotEmpty(t, msg) + + receiveRoots, err := client.Recv() + require.NoError(t, err) + require.NotNil(t, receiveRoots.GetResponse()) + require.Equal(t, pbpeering.TypeURLRoots, receiveRoots.GetResponse().ResourceURL) + + input2 := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Request_{ + Request: &pbpeering.ReplicationMessage_Request{ + ResourceURL: pbpeering.TypeURLService, + Nonce: "1", + }, + }, + } + + err2 := client.Send(input2) + require.NoError(t, err2) + + // expect error + msg2, err2 := client.Recv() + require.Nil(t, msg2) + require.Error(t, err2) + require.EqualError(t, err2, "rpc error: code = FailedPrecondition desc = node is not a leader anymore; cannot continue streaming") + + // expect a status error + st, ok := status.FromError(err2) + require.True(t, ok, "need to get back a grpc status error") + deets := st.Details() + + // expect a LeaderAddress message + exp := []interface{}{&pbpeering.LeaderAddress{Address: "expected:address"}} + prototest.AssertDeepEqual(t, exp, deets) +} + func TestStreamResources_Server_FirstRequest(t *testing.T) { type testCase struct { name string @@ -32,16 +189,28 @@ func TestStreamResources_Server_FirstRequest(t *testing.T) { } run := func(t *testing.T, tc testCase) { - srv := NewService(testutil.Logger(t), nil) - client := newMockClient(context.Background()) + publisher := stream.NewEventPublisher(10 * time.Second) + store := newStateStore(t, publisher) + + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, &testStreamBackend{ + store: store, + pub: publisher, + }) + + client := NewMockClient(context.Background()) errCh := make(chan error, 1) - client.errCh = errCh + client.ErrCh = errCh go func() { - // Pass errors from server handler into errCh so that they can be seen by the client on Recv(). + // Pass errors from server handler into ErrCh so that they can be seen by the client on Recv(). // This matches gRPC's behavior when an error is returned by a server. - err := srv.StreamResources(client.replicationStream) + err := srv.StreamResources(client.ReplicationStream) if err != nil { errCh <- err } @@ -103,6 +272,18 @@ func TestStreamResources_Server_FirstRequest(t *testing.T) { }, wantErr: status.Error(codes.InvalidArgument, "subscription request to unknown resource URL: nomad.Job"), }, + { + name: "unknown peer", + input: &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Request_{ + Request: &pbpeering.ReplicationMessage_Request{ + PeerID: "63b60245-c475-426b-b314-4588d210859d", + ResourceURL: pbpeering.TypeURLService, + }, + }, + }, + wantErr: status.Error(codes.InvalidArgument, "initial subscription for unknown PeerID: 63b60245-c475-426b-b314-4588d210859d"), + }, } for _, tc := range tt { @@ -117,43 +298,41 @@ func TestStreamResources_Server_Terminate(t *testing.T) { publisher := stream.NewEventPublisher(10 * time.Second) store := newStateStore(t, publisher) - srv := NewService(testutil.Logger(t), &testStreamBackend{ - store: store, - pub: publisher, - }) + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, &testStreamBackend{ + store: store, + pub: publisher, + }) it := incrementalTime{ base: time.Date(2000, time.January, 1, 0, 0, 0, 0, time.UTC), } srv.streams.timeNow = it.Now - client := newMockClient(context.Background()) + p := writeEstablishedPeering(t, store, 1, "my-peer") + var ( + peerID = p.ID // for Send + remotePeerID = p.PeerID // for Recv + ) - errCh := make(chan error, 1) - client.errCh = errCh + // Set the initial roots and CA configuration. + _, _ = writeInitialRootsAndCA(t, store) - go func() { - // Pass errors from server handler into errCh so that they can be seen by the client on Recv(). - // This matches gRPC's behavior when an error is returned by a server. - if err := srv.StreamResources(client.replicationStream); err != nil { - errCh <- err - } - }() + client := makeClient(t, srv, peerID, remotePeerID) - // Receive a subscription from a peer - peerID := "63b60245-c475-426b-b314-4588d210859d" - sub := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Request_{ - Request: &pbpeering.ReplicationMessage_Request{ - PeerID: peerID, - ResourceURL: pbpeering.TypeURLService, - }, - }, - } - err := client.Send(sub) + // TODO(peering): test fails if we don't drain the stream with this call because the + // server gets blocked sending the termination message. Figure out a way to let + // messages queue and filter replication messages. + receiveRoots, err := client.Recv() require.NoError(t, err) + require.NotNil(t, receiveRoots.GetResponse()) + require.Equal(t, pbpeering.TypeURLRoots, receiveRoots.GetResponse().ResourceURL) - runStep(t, "new stream gets tracked", func(t *testing.T) { + testutil.RunStep(t, "new stream gets tracked", func(t *testing.T) { retry.Run(t, func(r *retry.R) { status, ok := srv.StreamStatus(peerID) require.True(r, ok) @@ -161,21 +340,7 @@ func TestStreamResources_Server_Terminate(t *testing.T) { }) }) - // Receive subscription to my-peer-B's resources - receivedSub, err := client.Recv() - require.NoError(t, err) - - expect := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Request_{ - Request: &pbpeering.ReplicationMessage_Request{ - ResourceURL: pbpeering.TypeURLService, - PeerID: peerID, - }, - }, - } - prototest.AssertDeepEqual(t, expect, receivedSub) - - runStep(t, "terminate the stream", func(t *testing.T) { + testutil.RunStep(t, "terminate the stream", func(t *testing.T) { done := srv.ConnectedStreams()[peerID] close(done) @@ -187,7 +352,7 @@ func TestStreamResources_Server_Terminate(t *testing.T) { receivedTerm, err := client.Recv() require.NoError(t, err) - expect = &pbpeering.ReplicationMessage{ + expect := &pbpeering.ReplicationMessage{ Payload: &pbpeering.ReplicationMessage_Terminated_{ Terminated: &pbpeering.ReplicationMessage_Terminated{}, }, @@ -199,36 +364,33 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { publisher := stream.NewEventPublisher(10 * time.Second) store := newStateStore(t, publisher) - srv := NewService(testutil.Logger(t), &testStreamBackend{ - store: store, - pub: publisher, - }) + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, &testStreamBackend{ + store: store, + pub: publisher, + }) it := incrementalTime{ base: time.Date(2000, time.January, 1, 0, 0, 0, 0, time.UTC), } srv.streams.timeNow = it.Now - client := newMockClient(context.Background()) + // Set the initial roots and CA configuration. + _, rootA := writeInitialRootsAndCA(t, store) - errCh := make(chan error, 1) - go func() { - errCh <- srv.StreamResources(client.replicationStream) - }() + p := writeEstablishedPeering(t, store, 1, "my-peer") + var ( + peerID = p.ID // for Send + remotePeerID = p.PeerID // for Recv + ) - peerID := "63b60245-c475-426b-b314-4588d210859d" - sub := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Request_{ - Request: &pbpeering.ReplicationMessage_Request{ - PeerID: peerID, - ResourceURL: pbpeering.TypeURLService, - }, - }, - } - err := client.Send(sub) - require.NoError(t, err) + client := makeClient(t, srv, peerID, remotePeerID) - runStep(t, "new stream gets tracked", func(t *testing.T) { + testutil.RunStep(t, "new stream gets tracked", func(t *testing.T) { retry.Run(t, func(r *retry.R) { status, ok := srv.StreamStatus(peerID) require.True(r, ok) @@ -236,26 +398,10 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { }) }) - runStep(t, "client receives initial subscription", func(t *testing.T) { - ack, err := client.Recv() - require.NoError(t, err) - - expectAck := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Request_{ - Request: &pbpeering.ReplicationMessage_Request{ - ResourceURL: pbpeering.TypeURLService, - PeerID: peerID, - Nonce: "", - }, - }, - } - prototest.AssertDeepEqual(t, expectAck, ack) - }) - var sequence uint64 var lastSendSuccess time.Time - runStep(t, "ack tracked as success", func(t *testing.T) { + testutil.RunStep(t, "ack tracked as success", func(t *testing.T) { ack := &pbpeering.ReplicationMessage{ Payload: &pbpeering.ReplicationMessage_Request_{ Request: &pbpeering.ReplicationMessage_Request{ @@ -288,7 +434,7 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { var lastNack time.Time var lastNackMsg string - runStep(t, "nack tracked as error", func(t *testing.T) { + testutil.RunStep(t, "nack tracked as error", func(t *testing.T) { nack := &pbpeering.ReplicationMessage{ Payload: &pbpeering.ReplicationMessage_Request_{ Request: &pbpeering.ReplicationMessage_Request{ @@ -325,7 +471,7 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { var lastRecvSuccess time.Time - runStep(t, "response applied locally", func(t *testing.T) { + testutil.RunStep(t, "response applied locally", func(t *testing.T) { resp := &pbpeering.ReplicationMessage{ Payload: &pbpeering.ReplicationMessage_Response_{ Response: &pbpeering.ReplicationMessage_Response{ @@ -333,6 +479,7 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { ResourceID: "api", Nonce: "21", Operation: pbpeering.ReplicationMessage_Response_UPSERT, + Resource: makeAnyPB(t, &pbservice.IndexedCheckServiceNodes{}), }, }, } @@ -340,6 +487,24 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { require.NoError(t, err) sequence++ + expectRoots := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Response_{ + Response: &pbpeering.ReplicationMessage_Response{ + ResourceURL: pbpeering.TypeURLRoots, + ResourceID: "roots", + Resource: makeAnyPB(t, &pbpeering.PeeringTrustBundle{ + TrustDomain: connect.TestTrustDomain, + RootPEMs: []string{rootA.RootCert}, + }), + Operation: pbpeering.ReplicationMessage_Response_UPSERT, + }, + }, + } + + roots, err := client.Recv() + require.NoError(t, err) + prototest.AssertDeepEqual(t, expectRoots, roots) + ack, err := client.Recv() require.NoError(t, err) @@ -373,7 +538,7 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { var lastRecvError time.Time var lastRecvErrorMsg string - runStep(t, "response fails to apply locally", func(t *testing.T) { + testutil.RunStep(t, "response fails to apply locally", func(t *testing.T) { resp := &pbpeering.ReplicationMessage{ Payload: &pbpeering.ReplicationMessage_Response_{ Response: &pbpeering.ReplicationMessage_Response{ @@ -427,7 +592,7 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { }) }) - runStep(t, "client disconnect marks stream as disconnected", func(t *testing.T) { + testutil.RunStep(t, "client disconnect marks stream as disconnected", func(t *testing.T) { client.Close() sequence++ @@ -453,14 +618,6 @@ func TestStreamResources_Server_StreamTracker(t *testing.T) { require.Equal(r, expect, status) }) }) - - select { - case err := <-errCh: - // Client disconnect is not an error, but should make the handler return. - require.NoError(t, err) - case <-time.After(50 * time.Millisecond): - t.Fatalf("timed out waiting for handler to finish") - } } func TestStreamResources_Server_ServiceUpdates(t *testing.T) { @@ -469,57 +626,21 @@ func TestStreamResources_Server_ServiceUpdates(t *testing.T) { // Create a peering var lastIdx uint64 = 1 - err := store.PeeringWrite(lastIdx, &pbpeering.Peering{ - Name: "my-peering", - }) - require.NoError(t, err) + p := writeEstablishedPeering(t, store, lastIdx, "my-peering") - _, p, err := store.PeeringRead(nil, state.Query{Value: "my-peering"}) - require.NoError(t, err) - require.NotNil(t, p) + // Set the initial roots and CA configuration. + _, _ = writeInitialRootsAndCA(t, store) - srv := NewService(testutil.Logger(t), &testStreamBackend{ - store: store, - pub: publisher, - }) - - client := newMockClient(context.Background()) - - errCh := make(chan error, 1) - client.errCh = errCh - - go func() { - // Pass errors from server handler into errCh so that they can be seen by the client on Recv(). - // This matches gRPC's behavior when an error is returned by a server. - if err := srv.StreamResources(client.replicationStream); err != nil { - errCh <- err - } - }() - - // Issue a services subscription to server - init := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Request_{ - Request: &pbpeering.ReplicationMessage_Request{ - PeerID: p.ID, - ResourceURL: pbpeering.TypeURLService, - }, - }, - } - require.NoError(t, client.Send(init)) - - // Receive a services subscription from server - receivedSub, err := client.Recv() - require.NoError(t, err) - - expect := &pbpeering.ReplicationMessage{ - Payload: &pbpeering.ReplicationMessage_Request_{ - Request: &pbpeering.ReplicationMessage_Request{ - ResourceURL: pbpeering.TypeURLService, - PeerID: p.ID, - }, - }, - } - prototest.AssertDeepEqual(t, expect, receivedSub) + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, &testStreamBackend{ + store: store, + pub: publisher, + }) + client := makeClient(t, srv, p.ID, p.PeerID) // Register a service that is not yet exported mysql := &structs.CheckServiceNode{ @@ -533,43 +654,111 @@ func TestStreamResources_Server_ServiceUpdates(t *testing.T) { lastIdx++ require.NoError(t, store.EnsureService(lastIdx, "foo", mysql.Service)) - runStep(t, "exporting mysql leads to an UPSERT event", func(t *testing.T) { + var ( + mongoSN = structs.NewServiceName("mongo", nil).String() + mongoProxySN = structs.NewServiceName("mongo-sidecar-proxy", nil).String() + mysqlSN = structs.NewServiceName("mysql", nil).String() + mysqlProxySN = structs.NewServiceName("mysql-sidecar-proxy", nil).String() + ) + + testutil.RunStep(t, "exporting mysql leads to an UPSERT event", func(t *testing.T) { entry := &structs.ExportedServicesConfigEntry{ Name: "default", Services: []structs.ExportedService{ { Name: "mysql", Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-peering", - }, + {PeerName: "my-peering"}, }, }, { // Mongo does not get pushed because it does not have instances registered. Name: "mongo", Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-peering", - }, + {PeerName: "my-peering"}, }, }, }, } lastIdx++ - err = store.EnsureConfigEntry(lastIdx, entry) - require.NoError(t, err) + require.NoError(t, store.EnsureConfigEntry(lastIdx, entry)) - retry.Run(t, func(r *retry.R) { - msg, err := client.RecvWithTimeout(100 * time.Millisecond) - require.NoError(r, err) - require.Equal(r, pbpeering.ReplicationMessage_Response_UPSERT, msg.GetResponse().Operation) - require.Equal(r, mysql.Service.CompoundServiceName().String(), msg.GetResponse().ResourceID) + expectReplEvents(t, client, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + require.Equal(t, pbpeering.TypeURLRoots, msg.GetResponse().ResourceURL) + // Roots tested in TestStreamResources_Server_CARootUpdates + }, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + // no mongo instances exist + require.Equal(t, pbpeering.TypeURLService, msg.GetResponse().ResourceURL) + require.Equal(t, mongoSN, msg.GetResponse().ResourceID) + require.Equal(t, pbpeering.ReplicationMessage_Response_DELETE, msg.GetResponse().Operation) + require.Nil(t, msg.GetResponse().Resource) + }, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + // proxies can't export because no mesh gateway exists yet + require.Equal(t, pbpeering.TypeURLService, msg.GetResponse().ResourceURL) + require.Equal(t, mongoProxySN, msg.GetResponse().ResourceID) + require.Equal(t, pbpeering.ReplicationMessage_Response_DELETE, msg.GetResponse().Operation) + require.Nil(t, msg.GetResponse().Resource) + }, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + require.Equal(t, pbpeering.TypeURLService, msg.GetResponse().ResourceURL) + require.Equal(t, mysqlSN, msg.GetResponse().ResourceID) + require.Equal(t, pbpeering.ReplicationMessage_Response_UPSERT, msg.GetResponse().Operation) - var nodes pbservice.IndexedCheckServiceNodes - require.NoError(r, ptypes.UnmarshalAny(msg.GetResponse().Resource, &nodes)) - require.Len(r, nodes.Nodes, 1) - }) + var nodes pbservice.IndexedCheckServiceNodes + require.NoError(t, ptypes.UnmarshalAny(msg.GetResponse().Resource, &nodes)) + require.Len(t, nodes.Nodes, 1) + }, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + // proxies can't export because no mesh gateway exists yet + require.Equal(t, pbpeering.TypeURLService, msg.GetResponse().ResourceURL) + require.Equal(t, mysqlProxySN, msg.GetResponse().ResourceID) + require.Equal(t, pbpeering.ReplicationMessage_Response_DELETE, msg.GetResponse().Operation) + require.Nil(t, msg.GetResponse().Resource) + }, + ) + }) + + testutil.RunStep(t, "register mesh gateway to send proxy updates", func(t *testing.T) { + gateway := &structs.CheckServiceNode{Node: &structs.Node{Node: "mgw", Address: "10.1.1.1"}, + Service: &structs.NodeService{ID: "gateway-1", Kind: structs.ServiceKindMeshGateway, Service: "gateway", Port: 8443}, + // TODO: checks + } + + lastIdx++ + require.NoError(t, store.EnsureNode(lastIdx, gateway.Node)) + + lastIdx++ + require.NoError(t, store.EnsureService(lastIdx, "mgw", gateway.Service)) + + expectReplEvents(t, client, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + require.Equal(t, pbpeering.TypeURLService, msg.GetResponse().ResourceURL) + require.Equal(t, mongoProxySN, msg.GetResponse().ResourceID) + require.Equal(t, pbpeering.ReplicationMessage_Response_UPSERT, msg.GetResponse().Operation) + + var nodes pbservice.IndexedCheckServiceNodes + require.NoError(t, ptypes.UnmarshalAny(msg.GetResponse().Resource, &nodes)) + require.Len(t, nodes.Nodes, 1) + + svid := "spiffe://11111111-2222-3333-4444-555555555555.consul/ns/default/dc/dc1/svc/mongo" + require.Equal(t, []string{svid}, nodes.Nodes[0].Service.Connect.PeerMeta.SpiffeID) + }, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + require.Equal(t, pbpeering.TypeURLService, msg.GetResponse().ResourceURL) + require.Equal(t, mysqlProxySN, msg.GetResponse().ResourceID) + require.Equal(t, pbpeering.ReplicationMessage_Response_UPSERT, msg.GetResponse().Operation) + + var nodes pbservice.IndexedCheckServiceNodes + require.NoError(t, ptypes.UnmarshalAny(msg.GetResponse().Resource, &nodes)) + require.Len(t, nodes.Nodes, 1) + + svid := "spiffe://11111111-2222-3333-4444-555555555555.consul/ns/default/dc/dc1/svc/mysql" + require.Equal(t, []string{svid}, nodes.Nodes[0].Service.Connect.PeerMeta.SpiffeID) + }, + ) }) mongo := &structs.CheckServiceNode{ @@ -577,7 +766,7 @@ func TestStreamResources_Server_ServiceUpdates(t *testing.T) { Service: &structs.NodeService{ID: "mongo-1", Service: "mongo", Port: 5000}, } - runStep(t, "registering mongo instance leads to an UPSERT event", func(t *testing.T) { + testutil.RunStep(t, "registering mongo instance leads to an UPSERT event", func(t *testing.T) { lastIdx++ require.NoError(t, store.EnsureNode(lastIdx, mongo.Node)) @@ -596,7 +785,7 @@ func TestStreamResources_Server_ServiceUpdates(t *testing.T) { }) }) - runStep(t, "un-exporting mysql leads to a DELETE event for mysql", func(t *testing.T) { + testutil.RunStep(t, "un-exporting mysql leads to a DELETE event for mysql", func(t *testing.T) { entry := &structs.ExportedServicesConfigEntry{ Name: "default", Services: []structs.ExportedService{ @@ -611,7 +800,7 @@ func TestStreamResources_Server_ServiceUpdates(t *testing.T) { }, } lastIdx++ - err = store.EnsureConfigEntry(lastIdx, entry) + err := store.EnsureConfigEntry(lastIdx, entry) require.NoError(t, err) retry.Run(t, func(r *retry.R) { @@ -623,9 +812,9 @@ func TestStreamResources_Server_ServiceUpdates(t *testing.T) { }) }) - runStep(t, "deleting the config entry leads to a DELETE event for mongo", func(t *testing.T) { + testutil.RunStep(t, "deleting the config entry leads to a DELETE event for mongo", func(t *testing.T) { lastIdx++ - err = store.DeleteConfigEntry(lastIdx, structs.ExportedServices, "default", nil) + err := store.DeleteConfigEntry(lastIdx, structs.ExportedServices, "default", nil) require.NoError(t, err) retry.Run(t, func(r *retry.R) { @@ -638,9 +827,159 @@ func TestStreamResources_Server_ServiceUpdates(t *testing.T) { }) } +func TestStreamResources_Server_CARootUpdates(t *testing.T) { + publisher := stream.NewEventPublisher(10 * time.Second) + + store := newStateStore(t, publisher) + + // Create a peering + var lastIdx uint64 = 1 + p := writeEstablishedPeering(t, store, lastIdx, "my-peering") + + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, &testStreamBackend{ + store: store, + pub: publisher, + }) + + // Set the initial roots and CA configuration. + clusterID, rootA := writeInitialRootsAndCA(t, store) + + client := makeClient(t, srv, p.ID, p.PeerID) + + testutil.RunStep(t, "initial CA Roots replication", func(t *testing.T) { + expectReplEvents(t, client, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + require.Equal(t, pbpeering.TypeURLRoots, msg.GetResponse().ResourceURL) + require.Equal(t, "roots", msg.GetResponse().ResourceID) + require.Equal(t, pbpeering.ReplicationMessage_Response_UPSERT, msg.GetResponse().Operation) + + var trustBundle pbpeering.PeeringTrustBundle + require.NoError(t, ptypes.UnmarshalAny(msg.GetResponse().Resource, &trustBundle)) + + require.ElementsMatch(t, []string{rootA.RootCert}, trustBundle.RootPEMs) + expect := connect.SpiffeIDSigningForCluster(clusterID).Host() + require.Equal(t, expect, trustBundle.TrustDomain) + }, + ) + }) + + testutil.RunStep(t, "CA root rotation sends upsert event", func(t *testing.T) { + // get max index for CAS operation + cidx, _, err := store.CARoots(nil) + require.NoError(t, err) + + rootB := connect.TestCA(t, nil) + rootC := connect.TestCA(t, nil) + rootC.Active = false // there can only be one active root + lastIdx++ + set, err := store.CARootSetCAS(lastIdx, cidx, []*structs.CARoot{rootB, rootC}) + require.True(t, set) + require.NoError(t, err) + + expectReplEvents(t, client, + func(t *testing.T, msg *pbpeering.ReplicationMessage) { + require.Equal(t, pbpeering.TypeURLRoots, msg.GetResponse().ResourceURL) + require.Equal(t, "roots", msg.GetResponse().ResourceID) + require.Equal(t, pbpeering.ReplicationMessage_Response_UPSERT, msg.GetResponse().Operation) + + var trustBundle pbpeering.PeeringTrustBundle + require.NoError(t, ptypes.UnmarshalAny(msg.GetResponse().Resource, &trustBundle)) + + require.ElementsMatch(t, []string{rootB.RootCert, rootC.RootCert}, trustBundle.RootPEMs) + expect := connect.SpiffeIDSigningForCluster(clusterID).Host() + require.Equal(t, expect, trustBundle.TrustDomain) + }, + ) + }) +} + +// makeClient sets up a *MockClient with the initial subscription +// message handshake. +func makeClient( + t *testing.T, + srv pbpeering.PeeringServiceServer, + peerID string, + remotePeerID string, +) *MockClient { + t.Helper() + + client := NewMockClient(context.Background()) + + errCh := make(chan error, 1) + client.ErrCh = errCh + + go func() { + // Pass errors from server handler into ErrCh so that they can be seen by the client on Recv(). + // This matches gRPC's behavior when an error is returned by a server. + if err := srv.StreamResources(client.ReplicationStream); err != nil { + errCh <- srv.StreamResources(client.ReplicationStream) + } + }() + + // Issue a services subscription to server + init := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Request_{ + Request: &pbpeering.ReplicationMessage_Request{ + PeerID: peerID, + ResourceURL: pbpeering.TypeURLService, + }, + }, + } + require.NoError(t, client.Send(init)) + + // Receive a services subscription from server + receivedSub, err := client.Recv() + require.NoError(t, err) + + expect := &pbpeering.ReplicationMessage{ + Payload: &pbpeering.ReplicationMessage_Request_{ + Request: &pbpeering.ReplicationMessage_Request{ + ResourceURL: pbpeering.TypeURLService, + PeerID: remotePeerID, + }, + }, + } + prototest.AssertDeepEqual(t, expect, receivedSub) + + return client +} + type testStreamBackend struct { - pub state.EventPublisher - store *state.Store + pub state.EventPublisher + store *state.Store + applier *testApplier + leader func() bool + leaderAddress *leaderAddress +} + +var _ LeaderAddress = (*leaderAddress)(nil) + +type leaderAddress struct { + addr string +} + +func (l *leaderAddress) Set(addr string) { + // noop +} + +func (l *leaderAddress) Get() string { + return l.addr +} + +func (b *testStreamBackend) LeaderAddress() LeaderAddress { + return b.leaderAddress +} + +func (b *testStreamBackend) IsLeader() bool { + if b.leader != nil { + return b.leader() + } + return true } func (b *testStreamBackend) Subscribe(req *stream.SubscribeRequest) (*stream.Subscription, error) { @@ -675,15 +1014,62 @@ func (b *testStreamBackend) DecodeToken([]byte) (*structs.PeeringToken, error) { return nil, nil } -func (b *testStreamBackend) EnterpriseCheckPartitions(partition string) error { +func (b *testStreamBackend) EnterpriseCheckPartitions(_ string) error { + return nil +} + +func (b *testStreamBackend) EnterpriseCheckNamespaces(_ string) error { return nil } func (b *testStreamBackend) Apply() Apply { + return b.applier +} + +type testApplier struct { + store *state.Store +} + +func (a *testApplier) PeeringWrite(req *pbpeering.PeeringWriteRequest) error { + panic("not implemented") +} + +func (a *testApplier) PeeringDelete(req *pbpeering.PeeringDeleteRequest) error { + panic("not implemented") +} + +func (a *testApplier) PeeringTerminateByID(req *pbpeering.PeeringTerminateByIDRequest) error { + panic("not implemented") +} + +func (a *testApplier) PeeringTrustBundleWrite(req *pbpeering.PeeringTrustBundleWriteRequest) error { + panic("not implemented") +} + +// CatalogRegister mocks catalog registrations through Raft by copying the logic of FSM.applyRegister. +func (a *testApplier) CatalogRegister(req *structs.RegisterRequest) error { + return a.store.EnsureRegistration(1, req) +} + +// CatalogDeregister mocks catalog de-registrations through Raft by copying the logic of FSM.applyDeregister. +func (a *testApplier) CatalogDeregister(req *structs.DeregisterRequest) error { + if req.ServiceID != "" { + if err := a.store.DeleteService(1, req.Node, req.ServiceID, &req.EnterpriseMeta, req.PeerName); err != nil { + return err + } + } else if req.CheckID != "" { + if err := a.store.DeleteCheck(1, req.Node, req.CheckID, &req.EnterpriseMeta, req.PeerName); err != nil { + return err + } + } else { + if err := a.store.DeleteNode(1, req.Node, &req.EnterpriseMeta, req.PeerName); err != nil { + return err + } + } return nil } -func Test_processResponse(t *testing.T) { +func Test_processResponse_Validation(t *testing.T) { type testCase struct { name string in *pbpeering.ReplicationMessage_Response @@ -691,8 +1077,21 @@ func Test_processResponse(t *testing.T) { wantErr bool } + publisher := stream.NewEventPublisher(10 * time.Second) + store := newStateStore(t, publisher) + + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, &testStreamBackend{ + store: store, + pub: publisher, + }) + run := func(t *testing.T, tc testCase) { - reply, err := processResponse(tc.in) + reply, err := srv.processResponse("", "", tc.in) if tc.wantErr { require.Error(t, err) } else { @@ -709,6 +1108,7 @@ func Test_processResponse(t *testing.T) { ResourceID: "api", Nonce: "1", Operation: pbpeering.ReplicationMessage_Response_UPSERT, + Resource: makeAnyPB(t, &pbservice.IndexedCheckServiceNodes{}), }, expect: &pbpeering.ReplicationMessage{ Payload: &pbpeering.ReplicationMessage_Request_{ @@ -794,7 +1194,7 @@ func Test_processResponse(t *testing.T) { Nonce: "1", Error: &pbstatus.Status{ Code: int32(code.Code_INVALID_ARGUMENT), - Message: `unsupported operation: "100000"`, + Message: `unsupported operation: 100000`, }, }, }, @@ -808,3 +1208,966 @@ func Test_processResponse(t *testing.T) { }) } } + +// writeEstablishedPeering creates a peering with the provided name and ensures +// the PeerID field is set for the ID of the remote peer. +func writeEstablishedPeering(t *testing.T, store *state.Store, idx uint64, peerName string) *pbpeering.Peering { + remotePeerID, err := uuid.GenerateUUID() + require.NoError(t, err) + + peering := pbpeering.Peering{ + Name: peerName, + PeerID: remotePeerID, + } + require.NoError(t, store.PeeringWrite(idx, &peering)) + + _, p, err := store.PeeringRead(nil, state.Query{Value: peerName}) + require.NoError(t, err) + + return p +} + +func writeInitialRootsAndCA(t *testing.T, store *state.Store) (string, *structs.CARoot) { + const clusterID = connect.TestClusterID + + rootA := connect.TestCA(t, nil) + _, err := store.CARootSetCAS(1, 0, structs.CARoots{rootA}) + require.NoError(t, err) + + err = store.CASetConfig(0, &structs.CAConfiguration{ClusterID: clusterID}) + require.NoError(t, err) + + return clusterID, rootA +} + +func makeAnyPB(t *testing.T, pb proto.Message) *any.Any { + any, err := ptypes.MarshalAny(pb) + require.NoError(t, err) + return any +} + +func expectReplEvents(t *testing.T, client *MockClient, checkFns ...func(t *testing.T, got *pbpeering.ReplicationMessage)) { + t.Helper() + + num := len(checkFns) + + if num == 0 { + // No updates should be received. + msg, err := client.RecvWithTimeout(100 * time.Millisecond) + if err == io.EOF && msg == nil { + return + } else if err != nil { + t.Fatalf("received unexpected update error: %v", err) + } else { + t.Fatalf("received unexpected update: %+v", msg) + } + } + + const timeout = 10 * time.Second + + var out []*pbpeering.ReplicationMessage + for len(out) < num { + msg, err := client.RecvWithTimeout(timeout) + if err == io.EOF && msg == nil { + t.Fatalf("timed out with %d of %d events", len(out), num) + } + require.NoError(t, err) + out = append(out, msg) + } + + if msg, err := client.RecvWithTimeout(100 * time.Millisecond); err != io.EOF || msg != nil { + t.Fatalf("expected only %d events but got more; prev %+v; next %+v", num, out, msg) + } + + require.Len(t, out, num) + + sort.SliceStable(out, func(i, j int) bool { + a, b := out[i], out[j] + + typeA := fmt.Sprintf("%T", a.GetPayload()) + typeB := fmt.Sprintf("%T", b.GetPayload()) + if typeA != typeB { + return typeA < typeB + } + + switch a.GetPayload().(type) { + case *pbpeering.ReplicationMessage_Request_: + reqA, reqB := a.GetRequest(), b.GetRequest() + if reqA.ResourceURL != reqB.ResourceURL { + return reqA.ResourceURL < reqB.ResourceURL + } + return reqA.Nonce < reqB.Nonce + + case *pbpeering.ReplicationMessage_Response_: + respA, respB := a.GetResponse(), b.GetResponse() + if respA.ResourceURL != respB.ResourceURL { + return respA.ResourceURL < respB.ResourceURL + } + if respA.ResourceID != respB.ResourceID { + return respA.ResourceID < respB.ResourceID + } + return respA.Nonce < respB.Nonce + + case *pbpeering.ReplicationMessage_Terminated_: + return false + + default: + panic("unknown type") + } + }) + + for i := 0; i < num; i++ { + checkFns[i](t, out[i]) + } +} + +func TestHandleUpdateService(t *testing.T) { + publisher := stream.NewEventPublisher(10 * time.Second) + store := newStateStore(t, publisher) + + srv := NewService( + testutil.Logger(t), + Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, + &testStreamBackend{ + store: store, + applier: &testApplier{store: store}, + pub: publisher, + leader: func() bool { + return false + }, + }, + ) + + type testCase struct { + name string + seed []*structs.RegisterRequest + input *pbservice.IndexedCheckServiceNodes + expect map[string]structs.CheckServiceNodes + } + + peerName := "billing" + remoteMeta := pbcommon.NewEnterpriseMetaFromStructs(*structs.DefaultEnterpriseMetaInPartition("billing-ap")) + + // "api" service is imported from the billing-ap partition, corresponding to the billing peer. + // Locally it is stored to the default partition. + defaultMeta := *acl.DefaultEnterpriseMeta() + apiSN := structs.NewServiceName("api", &defaultMeta) + + run := func(t *testing.T, tc testCase) { + // Seed the local catalog with some data to reconcile against. + for _, reg := range tc.seed { + require.NoError(t, srv.Backend.Apply().CatalogRegister(reg)) + } + + // Simulate an update arriving for billing/api. + require.NoError(t, srv.handleUpdateService(peerName, acl.DefaultPartitionName, apiSN, tc.input)) + + for svc, expect := range tc.expect { + t.Run(svc, func(t *testing.T) { + _, got, err := srv.Backend.Store().CheckServiceNodes(nil, svc, &defaultMeta, peerName) + require.NoError(t, err) + requireEqualInstances(t, expect, got) + }) + } + } + + tt := []testCase{ + { + name: "upsert two service instances to the same node", + input: &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + { + Node: &pbservice.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: remoteMeta.Partition, + PeerName: peerName, + }, + Service: &pbservice.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + Checks: []*pbservice.HealthCheck{ + { + CheckID: "node-foo-check", + Node: "node-foo", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + { + CheckID: "api-1-check", + ServiceID: "api-1", + Node: "node-foo", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + }, + }, + { + Node: &pbservice.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: remoteMeta.Partition, + PeerName: peerName, + }, + Service: &pbservice.NodeService{ + ID: "api-2", + Service: "api", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + Checks: []*pbservice.HealthCheck{ + { + CheckID: "node-foo-check", + Node: "node-foo", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + { + CheckID: "api-2-check", + ServiceID: "api-2", + Node: "node-foo", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + }, + }, + }, + }, + expect: map[string]structs.CheckServiceNodes{ + "api": { + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + + // The remote billing-ap partition is overwritten for all resources with the local default. + Partition: defaultMeta.PartitionOrEmpty(), + + // The name of the peer "billing" is attached as well. + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-foo-check", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + { + CheckID: "api-1-check", + ServiceID: "api-1", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: defaultMeta.PartitionOrEmpty(), + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "api-2", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-foo-check", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + { + CheckID: "api-2-check", + ServiceID: "api-2", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + }, + }, + }, + { + name: "upsert two service instances to different nodes", + input: &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + { + Node: &pbservice.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: remoteMeta.Partition, + PeerName: peerName, + }, + Service: &pbservice.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + Checks: []*pbservice.HealthCheck{ + { + CheckID: "node-foo-check", + Node: "node-foo", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + { + CheckID: "api-1-check", + ServiceID: "api-1", + Node: "node-foo", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + }, + }, + { + Node: &pbservice.Node{ + ID: "c0f97de9-4e1b-4e80-a1c6-cd8725835ab2", + Node: "node-bar", + Partition: remoteMeta.Partition, + PeerName: peerName, + }, + Service: &pbservice.NodeService{ + ID: "api-2", + Service: "api", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + Checks: []*pbservice.HealthCheck{ + { + CheckID: "node-bar-check", + Node: "node-bar", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + { + CheckID: "api-2-check", + ServiceID: "api-2", + Node: "node-bar", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + }, + }, + }, + }, + expect: map[string]structs.CheckServiceNodes{ + "api": { + { + Node: &structs.Node{ + ID: "c0f97de9-4e1b-4e80-a1c6-cd8725835ab2", + Node: "node-bar", + Partition: defaultMeta.PartitionOrEmpty(), + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "api-2", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-bar-check", + Node: "node-bar", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + { + CheckID: "api-2-check", + ServiceID: "api-2", + Node: "node-bar", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + + // The remote billing-ap partition is overwritten for all resources with the local default. + Partition: defaultMeta.PartitionOrEmpty(), + + // The name of the peer "billing" is attached as well. + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-foo-check", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + { + CheckID: "api-1-check", + ServiceID: "api-1", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + }, + }, + }, + { + name: "receiving a nil input leads to deleting data in the catalog", + seed: []*structs.RegisterRequest{ + { + ID: types.NodeID("c0f97de9-4e1b-4e80-a1c6-cd8725835ab2"), + Node: "node-bar", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "api-2", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-bar", + ServiceID: "api-2", + CheckID: types.CheckID("api-2-check"), + PeerName: peerName, + }, + { + Node: "node-bar", + CheckID: types.CheckID("node-bar-check"), + PeerName: peerName, + }, + }, + }, + { + ID: types.NodeID("af913374-68ea-41e5-82e8-6ffd3dffc461"), + Node: "node-foo", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-foo", + ServiceID: "api-1", + CheckID: types.CheckID("api-1-check"), + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: types.CheckID("node-foo-check"), + PeerName: peerName, + }, + }, + }, + }, + input: nil, + expect: map[string]structs.CheckServiceNodes{ + "api": {}, + }, + }, + { + name: "deleting one service name from a node does not delete other service names", + seed: []*structs.RegisterRequest{ + { + ID: types.NodeID("af913374-68ea-41e5-82e8-6ffd3dffc461"), + Node: "node-foo", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "redis-2", + Service: "redis", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-foo", + ServiceID: "redis-2", + CheckID: types.CheckID("redis-2-check"), + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: types.CheckID("node-foo-check"), + PeerName: peerName, + }, + }, + }, + { + ID: types.NodeID("af913374-68ea-41e5-82e8-6ffd3dffc461"), + Node: "node-foo", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-foo", + ServiceID: "api-1", + CheckID: types.CheckID("api-1-check"), + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: types.CheckID("node-foo-check"), + PeerName: peerName, + }, + }, + }, + }, + // Nil input is for the "api" service. + input: nil, + expect: map[string]structs.CheckServiceNodes{ + "api": {}, + // Existing redis service was not affected by deletion. + "redis": { + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: defaultMeta.PartitionOrEmpty(), + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "redis-2", + Service: "redis", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "node-foo-check", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + { + CheckID: "redis-2-check", + ServiceID: "redis-2", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + }, + }, + }, + { + name: "service checks are cleaned up when not present in a response", + seed: []*structs.RegisterRequest{ + { + ID: types.NodeID("af913374-68ea-41e5-82e8-6ffd3dffc461"), + Node: "node-foo", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-foo", + ServiceID: "api-1", + CheckID: types.CheckID("api-1-check"), + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: types.CheckID("node-foo-check"), + PeerName: peerName, + }, + }, + }, + }, + input: &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + { + Node: &pbservice.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: remoteMeta.Partition, + PeerName: peerName, + }, + Service: &pbservice.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + Checks: []*pbservice.HealthCheck{ + // Service check was deleted + }, + }, + }, + }, + expect: map[string]structs.CheckServiceNodes{ + // Service check should be gone + "api": { + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: defaultMeta.PartitionOrEmpty(), + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{}, + }, + }, + }, + }, + { + name: "node checks are cleaned up when not present in a response", + seed: []*structs.RegisterRequest{ + { + ID: types.NodeID("af913374-68ea-41e5-82e8-6ffd3dffc461"), + Node: "node-foo", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "redis-2", + Service: "redis", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-foo", + ServiceID: "redis-2", + CheckID: types.CheckID("redis-2-check"), + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: types.CheckID("node-foo-check"), + PeerName: peerName, + }, + }, + }, + { + ID: types.NodeID("af913374-68ea-41e5-82e8-6ffd3dffc461"), + Node: "node-foo", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-foo", + ServiceID: "api-1", + CheckID: types.CheckID("api-1-check"), + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: types.CheckID("node-foo-check"), + PeerName: peerName, + }, + }, + }, + }, + input: &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + { + Node: &pbservice.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: remoteMeta.Partition, + PeerName: peerName, + }, + Service: &pbservice.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + Checks: []*pbservice.HealthCheck{ + // Node check was deleted + { + CheckID: "api-1-check", + ServiceID: "api-1", + Node: "node-foo", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + }, + }, + }, + }, + expect: map[string]structs.CheckServiceNodes{ + // Node check should be gone + "api": { + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: defaultMeta.PartitionOrEmpty(), + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "api-1-check", + ServiceID: "api-1", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + }, + "redis": { + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: defaultMeta.PartitionOrEmpty(), + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "redis-2", + Service: "redis", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + CheckID: "redis-2-check", + ServiceID: "redis-2", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + }, + }, + }, + { + name: "replacing a service instance on a node cleans up the old instance", + seed: []*structs.RegisterRequest{ + { + ID: types.NodeID("af913374-68ea-41e5-82e8-6ffd3dffc461"), + Node: "node-foo", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "redis-2", + Service: "redis", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-foo", + ServiceID: "redis-2", + CheckID: types.CheckID("redis-2-check"), + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: types.CheckID("node-foo-check"), + PeerName: peerName, + }, + }, + }, + { + ID: types.NodeID("af913374-68ea-41e5-82e8-6ffd3dffc461"), + Node: "node-foo", + PeerName: peerName, + Service: &structs.NodeService{ + ID: "api-1", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: structs.HealthChecks{ + { + Node: "node-foo", + ServiceID: "api-1", + CheckID: types.CheckID("api-1-check"), + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: types.CheckID("node-foo-check"), + PeerName: peerName, + }, + }, + }, + }, + input: &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + { + Node: &pbservice.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: remoteMeta.Partition, + PeerName: peerName, + }, + // New service ID and checks for the api service. + Service: &pbservice.NodeService{ + ID: "new-api-v2", + Service: "api", + EnterpriseMeta: remoteMeta, + PeerName: peerName, + }, + Checks: []*pbservice.HealthCheck{ + { + Node: "node-foo", + ServiceID: "new-api-v2", + CheckID: "new-api-v2-check", + PeerName: peerName, + }, + { + Node: "node-foo", + CheckID: "node-foo-check", + PeerName: peerName, + }, + }, + }, + }, + }, + expect: map[string]structs.CheckServiceNodes{ + "api": { + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: defaultMeta.PartitionOrEmpty(), + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "new-api-v2", + Service: "api", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + Node: "node-foo", + CheckID: "node-foo-check", + PeerName: peerName, + }, + { + CheckID: "new-api-v2-check", + ServiceID: "new-api-v2", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + }, + "redis": { + { + Node: &structs.Node{ + ID: "af913374-68ea-41e5-82e8-6ffd3dffc461", + Node: "node-foo", + Partition: defaultMeta.PartitionOrEmpty(), + PeerName: peerName, + }, + Service: &structs.NodeService{ + ID: "redis-2", + Service: "redis", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + Checks: []*structs.HealthCheck{ + { + Node: "node-foo", + CheckID: "node-foo-check", + PeerName: peerName, + }, + { + CheckID: "redis-2-check", + ServiceID: "redis-2", + Node: "node-foo", + EnterpriseMeta: defaultMeta, + PeerName: peerName, + }, + }, + }, + }, + }, + }, + } + + for _, tc := range tt { + t.Run(tc.name, func(t *testing.T) { + run(t, tc) + }) + } +} + +func requireEqualInstances(t *testing.T, expect, got structs.CheckServiceNodes) { + t.Helper() + + require.Equal(t, len(expect), len(got), "got differing number of instances") + + for i := range expect { + // Node equality + require.Equal(t, expect[i].Node.ID, got[i].Node.ID, "node mismatch") + require.Equal(t, expect[i].Node.Partition, got[i].Node.Partition, "partition mismatch") + require.Equal(t, expect[i].Node.PeerName, got[i].Node.PeerName, "peer name mismatch") + + // Service equality + require.Equal(t, expect[i].Service.ID, got[i].Service.ID, "service id mismatch") + require.Equal(t, expect[i].Service.PeerName, got[i].Service.PeerName, "peer name mismatch") + require.Equal(t, expect[i].Service.PartitionOrDefault(), got[i].Service.PartitionOrDefault(), "partition mismatch") + + // Check equality + require.Equal(t, len(expect[i].Checks), len(got[i].Checks), "got differing number of check") + + for j := range expect[i].Checks { + require.Equal(t, expect[i].Checks[j].CheckID, got[i].Checks[j].CheckID, "check id mismatch") + require.Equal(t, expect[i].Checks[j].PeerName, got[i].Checks[j].PeerName, "peer name mismatch") + require.Equal(t, expect[i].Checks[j].PartitionOrDefault(), got[i].Checks[j].PartitionOrDefault(), "partition mismatch") + } + } + +} diff --git a/agent/rpc/peering/stream_tracker_test.go b/agent/rpc/peering/stream_tracker_test.go index 2c055865b4..d6b49ef917 100644 --- a/agent/rpc/peering/stream_tracker_test.go +++ b/agent/rpc/peering/stream_tracker_test.go @@ -5,6 +5,7 @@ import ( "testing" "time" + "github.com/hashicorp/consul/sdk/testutil" "github.com/stretchr/testify/require" ) @@ -22,7 +23,7 @@ func TestStreamTracker_EnsureConnectedDisconnected(t *testing.T) { err error ) - runStep(t, "new stream", func(t *testing.T) { + testutil.RunStep(t, "new stream", func(t *testing.T) { statusPtr, err = tracker.connected(peerID) require.NoError(t, err) @@ -35,7 +36,7 @@ func TestStreamTracker_EnsureConnectedDisconnected(t *testing.T) { require.Equal(t, expect, status) }) - runStep(t, "duplicate gets rejected", func(t *testing.T) { + testutil.RunStep(t, "duplicate gets rejected", func(t *testing.T) { _, err := tracker.connected(peerID) require.Error(t, err) require.Contains(t, err.Error(), `there is an active stream for the given PeerID "63b60245-c475-426b-b314-4588d210859d"`) @@ -44,7 +45,7 @@ func TestStreamTracker_EnsureConnectedDisconnected(t *testing.T) { var sequence uint64 var lastSuccess time.Time - runStep(t, "stream updated", func(t *testing.T) { + testutil.RunStep(t, "stream updated", func(t *testing.T) { statusPtr.trackAck() sequence++ @@ -59,7 +60,7 @@ func TestStreamTracker_EnsureConnectedDisconnected(t *testing.T) { require.Equal(t, expect, status) }) - runStep(t, "disconnect", func(t *testing.T) { + testutil.RunStep(t, "disconnect", func(t *testing.T) { tracker.disconnected(peerID) sequence++ @@ -73,7 +74,7 @@ func TestStreamTracker_EnsureConnectedDisconnected(t *testing.T) { require.Equal(t, expect, status) }) - runStep(t, "re-connect", func(t *testing.T) { + testutil.RunStep(t, "re-connect", func(t *testing.T) { _, err := tracker.connected(peerID) require.NoError(t, err) @@ -89,7 +90,7 @@ func TestStreamTracker_EnsureConnectedDisconnected(t *testing.T) { require.Equal(t, expect, status) }) - runStep(t, "delete", func(t *testing.T) { + testutil.RunStep(t, "delete", func(t *testing.T) { tracker.deleteStatus(peerID) status, ok := tracker.streamStatus(peerID) diff --git a/agent/rpc/peering/subscription_blocking.go b/agent/rpc/peering/subscription_blocking.go new file mode 100644 index 0000000000..0a8a07d9b4 --- /dev/null +++ b/agent/rpc/peering/subscription_blocking.go @@ -0,0 +1,108 @@ +package peering + +import ( + "context" + "errors" + "fmt" + "time" + + "github.com/hashicorp/go-memdb" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/lib/retry" + "github.com/hashicorp/consul/proto/pbservice" +) + +// This file contains direct state store functions that need additional +// management to have them emit events. Ideally these would go through +// streaming machinery instead to be cheaper. + +func (m *subscriptionManager) notifyExportedServicesForPeerID(ctx context.Context, state *subscriptionState, peerID string) { + // syncSubscriptionsAndBlock ensures that the subscriptions to the subscription backend + // match the list of services exported to the peer. + m.syncViaBlockingQuery(ctx, "exported-services", func(ctx context.Context, store Store, ws memdb.WatchSet) (interface{}, error) { + // Get exported services for peer id + _, list, err := store.ExportedServicesForPeer(ws, peerID) + if err != nil { + return nil, fmt.Errorf("failed to watch exported services for peer %q: %w", peerID, err) + } + + return list, nil + }, subExportedServiceList, state.updateCh) +} + +// TODO: add a new streaming subscription type to list-by-kind-and-partition since we're getting evictions +func (m *subscriptionManager) notifyMeshGatewaysForPartition(ctx context.Context, state *subscriptionState, partition string) { + m.syncViaBlockingQuery(ctx, "mesh-gateways", func(ctx context.Context, store Store, ws memdb.WatchSet) (interface{}, error) { + // Fetch our current list of all mesh gateways. + entMeta := structs.DefaultEnterpriseMetaInPartition(partition) + idx, nodes, err := store.ServiceDump(ws, structs.ServiceKindMeshGateway, true, entMeta, structs.DefaultPeerKeyword) + if err != nil { + return nil, fmt.Errorf("failed to watch mesh gateways services for partition %q: %w", partition, err) + } + if idx == 0 { + idx = 1 + } + + // convert back to a protobuf flavor + result := &pbservice.IndexedCheckServiceNodes{ + Index: idx, + Nodes: make([]*pbservice.CheckServiceNode, len(nodes)), + } + for i, csn := range nodes { + result.Nodes[i] = pbservice.NewCheckServiceNodeFromStructs(&csn) + } + + return result, nil + }, subMeshGateway+partition, state.updateCh) +} + +func (m *subscriptionManager) syncViaBlockingQuery( + ctx context.Context, + queryType string, + queryFn func(ctx context.Context, store Store, ws memdb.WatchSet) (interface{}, error), + correlationID string, + updateCh chan<- cache.UpdateEvent, +) { + waiter := &retry.Waiter{ + MinFailures: 1, + Factor: 500 * time.Millisecond, + MaxWait: 60 * time.Second, + Jitter: retry.NewJitter(100), + } + + logger := m.logger + if queryType != "" { + logger = m.logger.With("queryType", queryType) + } + + store := m.backend.Store() + + for { + ws := memdb.NewWatchSet() + ws.Add(store.AbandonCh()) + ws.Add(ctx.Done()) + + if result, err := queryFn(ctx, store, ws); err != nil { + logger.Error("failed to sync from query", "error", err) + } else { + // Block for any changes to the state store. + updateCh <- cache.UpdateEvent{ + CorrelationID: correlationID, + Result: result, + } + ws.WatchCtx(ctx) + } + + if err := waiter.Wait(ctx); err != nil && !errors.Is(err, context.Canceled) && !errors.Is(err, context.DeadlineExceeded) { + logger.Error("failed to wait before re-trying sync", "error", err) + } + + select { + case <-ctx.Done(): + return + default: + } + } +} diff --git a/agent/rpc/peering/subscription_manager.go b/agent/rpc/peering/subscription_manager.go index bd90168d7c..cfccdeb75a 100644 --- a/agent/rpc/peering/subscription_manager.go +++ b/agent/rpc/peering/subscription_manager.go @@ -4,15 +4,21 @@ import ( "context" "errors" "fmt" - "time" + "strings" + "github.com/golang/protobuf/proto" "github.com/hashicorp/go-hclog" - "github.com/hashicorp/go-memdb" + "github.com/hashicorp/consul/acl" "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/connect" + "github.com/hashicorp/consul/agent/consul/state" + "github.com/hashicorp/consul/agent/consul/stream" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/agent/submatview" - "github.com/hashicorp/consul/lib/retry" + "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/proto/pbcommon" + "github.com/hashicorp/consul/proto/pbpeering" "github.com/hashicorp/consul/proto/pbservice" ) @@ -28,51 +34,281 @@ type SubscriptionBackend interface { // subscriptionManager handlers requests to subscribe to events from an events publisher. type subscriptionManager struct { - logger hclog.Logger - viewStore MaterializedViewStore - backend SubscriptionBackend - - // watchedServices is a map of exported services to a cancel function for their subscription notifier. - watchedServices map[structs.ServiceName]context.CancelFunc + logger hclog.Logger + config Config + trustDomain string + viewStore MaterializedViewStore + backend SubscriptionBackend } // TODO(peering): Maybe centralize so that there is a single manager per datacenter, rather than per peering. -func newSubscriptionManager(ctx context.Context, logger hclog.Logger, backend SubscriptionBackend) *subscriptionManager { +func newSubscriptionManager( + ctx context.Context, + logger hclog.Logger, + config Config, + trustDomain string, + backend SubscriptionBackend, +) *subscriptionManager { logger = logger.Named("subscriptions") store := submatview.NewStore(logger.Named("viewstore")) go store.Run(ctx) return &subscriptionManager{ - logger: logger, - viewStore: store, - backend: backend, - watchedServices: make(map[structs.ServiceName]context.CancelFunc), + logger: logger, + config: config, + trustDomain: trustDomain, + viewStore: store, + backend: backend, } } // subscribe returns a channel that will contain updates to exported service instances for a given peer. -func (m *subscriptionManager) subscribe(ctx context.Context, peerID string) <-chan cache.UpdateEvent { - updateCh := make(chan cache.UpdateEvent, 1) - go m.syncSubscriptions(ctx, peerID, updateCh) +func (m *subscriptionManager) subscribe(ctx context.Context, peerID, peerName, partition string) <-chan cache.UpdateEvent { + var ( + updateCh = make(chan cache.UpdateEvent, 1) + publicUpdateCh = make(chan cache.UpdateEvent, 1) + ) - return updateCh -} + state := newSubscriptionState(peerName, partition) + state.publicUpdateCh = publicUpdateCh + state.updateCh = updateCh -func (m *subscriptionManager) syncSubscriptions(ctx context.Context, peerID string, updateCh chan<- cache.UpdateEvent) { - waiter := &retry.Waiter{ - MinFailures: 1, - Factor: 500 * time.Millisecond, - MaxWait: 60 * time.Second, - Jitter: retry.NewJitter(100), + // Wrap our bare state store queries in goroutines that emit events. + go m.notifyExportedServicesForPeerID(ctx, state, peerID) + if m.config.ConnectEnabled { + go m.notifyMeshGatewaysForPartition(ctx, state, state.partition) + // If connect is enabled, watch for updates to CA roots. + go m.notifyRootCAUpdatesForPartition(ctx, state.updateCh, state.partition) } + // This goroutine is the only one allowed to manipulate protected + // subscriptionManager fields. + go m.handleEvents(ctx, state, updateCh) + + return publicUpdateCh +} + +func (m *subscriptionManager) handleEvents(ctx context.Context, state *subscriptionState, updateCh <-chan cache.UpdateEvent) { for { - if err := m.syncSubscriptionsAndBlock(ctx, peerID, updateCh); err != nil { - m.logger.Error("failed to sync subscriptions", "error", err) + // TODO(peering): exponential backoff + + select { + case <-ctx.Done(): + return + case update := <-updateCh: + if err := m.handleEvent(ctx, state, update); err != nil { + m.logger.Error("Failed to handle update from watch", + "id", update.CorrelationID, "error", err, + ) + continue + } + } + } +} + +func (m *subscriptionManager) handleEvent(ctx context.Context, state *subscriptionState, u cache.UpdateEvent) error { + if u.Err != nil { + return fmt.Errorf("received error event: %w", u.Err) + } + + // TODO(peering): on initial stream setup, transmit the list of exported + // services for use in differential DELETE/UPSERT. Akin to streaming's snapshot start/end. + switch { + case u.CorrelationID == subExportedServiceList: + // Everything starts with the exported service list coming from + // our state store watchset loop. + evt, ok := u.Result.(*structs.ExportedServiceList) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) } - if err := waiter.Wait(ctx); err != nil && !errors.Is(err, context.Canceled) && !errors.Is(err, context.DeadlineExceeded) { - m.logger.Error("failed to wait before re-trying sync", "error", err) + state.exportList = evt + + pending := &pendingPayload{} + m.syncNormalServices(ctx, state, pending, evt.Services) + if m.config.ConnectEnabled { + m.syncDiscoveryChains(ctx, state, pending, evt.ListAllDiscoveryChains()) + } + state.sendPendingEvents(ctx, m.logger, pending) + + // cleanup event versions too + state.cleanupEventVersions(m.logger) + + case strings.HasPrefix(u.CorrelationID, subExportedService): + csn, ok := u.Result.(*pbservice.IndexedCheckServiceNodes) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + + // TODO(peering): is it safe to edit these protobufs in place? + + // Clear this raft index before exporting. + csn.Index = 0 + + // Ensure that connect things are scrubbed so we don't mix-and-match + // with the synthetic entries that point to mesh gateways. + filterConnectReferences(csn) + + // Flatten health checks + for _, instance := range csn.Nodes { + instance.Checks = flattenChecks( + instance.Node.Node, + instance.Service.ID, + instance.Service.Service, + instance.Service.EnterpriseMeta, + instance.Checks, + ) + } + + // Scrub raft indexes + for _, instance := range csn.Nodes { + instance.Node.RaftIndex = nil + instance.Service.RaftIndex = nil + // skip checks since we just generated one from scratch + } + + // Scrub raft indexes + for _, instance := range csn.Nodes { + instance.Node.RaftIndex = nil + instance.Service.RaftIndex = nil + // skip checks since we just generated one from scratch + } + + id := servicePayloadIDPrefix + strings.TrimPrefix(u.CorrelationID, subExportedService) + + // Just ferry this one directly along to the destination. + pending := &pendingPayload{} + if err := pending.Add(id, u.CorrelationID, csn); err != nil { + return err + } + state.sendPendingEvents(ctx, m.logger, pending) + + case strings.HasPrefix(u.CorrelationID, subMeshGateway): + csn, ok := u.Result.(*pbservice.IndexedCheckServiceNodes) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + + partition := strings.TrimPrefix(u.CorrelationID, subMeshGateway) + + if !m.config.ConnectEnabled { + return nil // ignore event + } + + if !acl.EqualPartitions(partition, state.partition) { + return nil // ignore event + } + + // Clear this raft index before exporting. + csn.Index = 0 + + // Flatten health checks + for _, instance := range csn.Nodes { + instance.Checks = flattenChecks( + instance.Node.Node, + instance.Service.ID, + instance.Service.Service, + instance.Service.EnterpriseMeta, + instance.Checks, + ) + } + + // Scrub raft indexes + for _, instance := range csn.Nodes { + instance.Node.RaftIndex = nil + instance.Service.RaftIndex = nil + // skip checks since we just generated one from scratch + + // Remove connect things like native mode. + if instance.Service.Connect != nil || instance.Service.Proxy != nil { + instance.Service.Connect = nil + instance.Service.Proxy = nil + } + } + + state.meshGateway = csn + + pending := &pendingPayload{} + + // Directly replicate information about our mesh gateways to the consuming side. + // TODO(peering): should we scrub anything before replicating this? + if err := pending.Add(meshGatewayPayloadID, u.CorrelationID, csn); err != nil { + return err + } + + if state.exportList != nil { + // Trigger public events for all synthetic discovery chain replies. + for chainName, protocol := range state.connectServices { + m.emitEventForDiscoveryChain(ctx, state, pending, chainName, protocol) + } + } + + // TODO(peering): should we ship this down verbatim to the consumer? + state.sendPendingEvents(ctx, m.logger, pending) + + case u.CorrelationID == subCARoot: + roots, ok := u.Result.(*pbpeering.PeeringTrustBundle) + if !ok { + return fmt.Errorf("invalid type for response: %T", u.Result) + } + pending := &pendingPayload{} + if err := pending.Add(caRootsPayloadID, u.CorrelationID, roots); err != nil { + return err + } + + state.sendPendingEvents(ctx, m.logger, pending) + + default: + return fmt.Errorf("unknown correlation ID: %s", u.CorrelationID) + } + return nil +} + +func filterConnectReferences(orig *pbservice.IndexedCheckServiceNodes) { + newNodes := make([]*pbservice.CheckServiceNode, 0, len(orig.Nodes)) + for i := range orig.Nodes { + csn := orig.Nodes[i] + + if csn.Service.Kind != string(structs.ServiceKindTypical) { + continue // skip non-typical services + } + + if strings.HasSuffix(csn.Service.Service, syntheticProxyNameSuffix) { + // Skip things that might LOOK like a proxy so we don't get a + // collision with the ones we generate. + continue + } + + // Remove connect things like native mode. + if csn.Service.Connect != nil || csn.Service.Proxy != nil { + csn = proto.Clone(csn).(*pbservice.CheckServiceNode) + csn.Service.Connect = nil + csn.Service.Proxy = nil + } + + newNodes = append(newNodes, csn) + } + orig.Nodes = newNodes +} + +func (m *subscriptionManager) notifyRootCAUpdatesForPartition( + ctx context.Context, + updateCh chan<- cache.UpdateEvent, + partition string, +) { + var idx uint64 + // TODO(peering): retry logic; fail past a threshold + for { + var err error + // Typically, this function will block inside `m.subscribeCARoots` and only return on error. + // Errors are logged and the watch is retried. + idx, err = m.subscribeCARoots(ctx, idx, updateCh, partition) + if errors.Is(err, stream.ErrSubForceClosed) { + m.logger.Trace("subscription force-closed due to an ACL change or snapshot restore, will attempt resume") + } else if !errors.Is(err, context.Canceled) && !errors.Is(err, context.DeadlineExceeded) { + m.logger.Warn("failed to subscribe to CA roots, will attempt resume", "error", err.Error()) + } else { + m.logger.Trace(err.Error()) } select { @@ -83,21 +319,95 @@ func (m *subscriptionManager) syncSubscriptions(ctx context.Context, peerID stri } } -// syncSubscriptionsAndBlock ensures that the subscriptions to the subscription backend -// match the list of services exported to the peer. -func (m *subscriptionManager) syncSubscriptionsAndBlock(ctx context.Context, peerID string, updateCh chan<- cache.UpdateEvent) error { - store := m.backend.Store() - - ws := memdb.NewWatchSet() - ws.Add(store.AbandonCh()) - ws.Add(ctx.Done()) - - // Get exported services for peer id - _, services, err := store.ExportedServicesForPeer(ws, peerID) +// subscribeCARoots subscribes to state.EventTopicCARoots for changes to CA roots. +// Upon receiving an event it will send the payload in updateCh. +func (m *subscriptionManager) subscribeCARoots( + ctx context.Context, + idx uint64, + updateCh chan<- cache.UpdateEvent, + partition string, +) (uint64, error) { + // following code adapted from connectca/watch_roots.go + sub, err := m.backend.Subscribe(&stream.SubscribeRequest{ + Topic: state.EventTopicCARoots, + Subject: stream.SubjectNone, + Token: "", // using anonymous token for now + Index: idx, + }) if err != nil { - return fmt.Errorf("failed to watch exported services for peer %q: %w", peerID, err) + return 0, fmt.Errorf("failed to subscribe to CA Roots events: %w", err) } + defer sub.Unsubscribe() + for { + event, err := sub.Next(ctx) + switch { + case errors.Is(err, stream.ErrSubForceClosed): + // If the subscription was closed because the state store was abandoned (e.g. + // following a snapshot restore) reset idx to ensure we don't skip over the + // new store's events. + select { + case <-m.backend.Store().AbandonCh(): + idx = 0 + default: + } + return idx, err + case errors.Is(err, context.Canceled): + return 0, err + case errors.Is(err, context.DeadlineExceeded): + return 0, err + case err != nil: + return idx, fmt.Errorf("failed to read next event: %w", err) + } + + // Note: this check isn't strictly necessary because the event publishing + // machinery will ensure the index increases monotonically, but it can be + // tricky to faithfully reproduce this in tests (e.g. the EventPublisher + // garbage collects topic buffers and snapshots aggressively when streams + // disconnect) so this avoids a bunch of confusing setup code. + if event.Index <= idx { + continue + } + + idx = event.Index + + // We do not send framing events (e.g. EndOfSnapshot, NewSnapshotToFollow) + // because we send a full list of roots on every event, rather than expecting + // clients to maintain a state-machine in the way they do for service health. + if event.IsFramingEvent() { + continue + } + + payload, ok := event.Payload.(state.EventPayloadCARoots) + if !ok { + return 0, fmt.Errorf("unexpected event payload type: %T", payload) + } + + var rootPems []string + for _, root := range payload.CARoots { + rootPems = append(rootPems, root.RootCert) + } + + updateCh <- cache.UpdateEvent{ + CorrelationID: subCARoot, + Result: &pbpeering.PeeringTrustBundle{ + TrustDomain: m.trustDomain, + RootPEMs: rootPems, + ExportedPartition: partition, + // TODO(peering): revisit decision not to validate datacenter in RBAC + }, + } + } +} + +const subCARoot = "roots" + +func (m *subscriptionManager) syncNormalServices( + ctx context.Context, + state *subscriptionState, + pending *pendingPayload, + services []structs.ServiceName, +) { // seen contains the set of exported service names and is used to reconcile the list of watched services. seen := make(map[structs.ServiceName]struct{}) @@ -105,45 +415,267 @@ func (m *subscriptionManager) syncSubscriptionsAndBlock(ctx context.Context, pee for _, svc := range services { seen[svc] = struct{}{} - if _, ok := m.watchedServices[svc]; ok { + if _, ok := state.watchedServices[svc]; ok { // Exported service is already being watched, nothing to do. continue } notifyCtx, cancel := context.WithCancel(ctx) - m.watchedServices[svc] = cancel - - if err := m.Notify(notifyCtx, svc, updateCh); err != nil { + if err := m.NotifyStandardService(notifyCtx, svc, state.updateCh); err != nil { + cancel() m.logger.Error("failed to subscribe to service", "service", svc.String()) continue } + + state.watchedServices[svc] = cancel } // For every subscription without an exported service, call the associated cancel fn. - for svc, cancel := range m.watchedServices { + for svc, cancel := range state.watchedServices { if _, ok := seen[svc]; !ok { cancel() + delete(state.watchedServices, svc) + // Send an empty event to the stream handler to trigger sending a DELETE message. // Cancelling the subscription context above is necessary, but does not yield a useful signal on its own. - updateCh <- cache.UpdateEvent{ - CorrelationID: subExportedService + svc.String(), - Result: &pbservice.IndexedCheckServiceNodes{}, + err := pending.Add( + servicePayloadIDPrefix+svc.String(), + subExportedService+svc.String(), + &pbservice.IndexedCheckServiceNodes{}, + ) + if err != nil { + m.logger.Error("failed to send event for service", "service", svc.String(), "error", err) + continue } } } +} - // Block for any changes to the state store. - ws.WatchCh(ctx) - return nil +func (m *subscriptionManager) syncDiscoveryChains( + ctx context.Context, + state *subscriptionState, + pending *pendingPayload, + chainsByName map[structs.ServiceName]string, // TODO(peering):rename variable +) { + // if it was newly added, then try to emit an UPDATE event + for chainName, protocol := range chainsByName { + if oldProtocol, ok := state.connectServices[chainName]; ok && protocol == oldProtocol { + continue + } + + state.connectServices[chainName] = protocol + + m.emitEventForDiscoveryChain(ctx, state, pending, chainName, protocol) + } + + // if it was dropped, try to emit an DELETE event + for chainName := range state.connectServices { + if _, ok := chainsByName[chainName]; ok { + continue + } + + delete(state.connectServices, chainName) + + if state.meshGateway != nil { + // Only need to clean this up if we know we may have ever sent it in the first place. + proxyName := generateProxyNameForDiscoveryChain(chainName) + err := pending.Add( + discoveryChainPayloadIDPrefix+chainName.String(), + subExportedService+proxyName.String(), + &pbservice.IndexedCheckServiceNodes{}, + ) + if err != nil { + m.logger.Error("failed to send event for discovery chain", "service", chainName.String(), "error", err) + continue + } + } + } +} + +func (m *subscriptionManager) emitEventForDiscoveryChain( + ctx context.Context, + state *subscriptionState, + pending *pendingPayload, + chainName structs.ServiceName, + protocol string, +) { + if _, ok := state.connectServices[chainName]; !ok { + return // not found + } + + if state.exportList == nil || state.meshGateway == nil { + return // skip because we don't have the data to do it yet + } + + // Emit event with fake data + proxyName := generateProxyNameForDiscoveryChain(chainName) + + err := pending.Add( + discoveryChainPayloadIDPrefix+chainName.String(), + subExportedService+proxyName.String(), + createDiscoChainHealth( + state.peerName, + m.config.Datacenter, + m.trustDomain, + chainName, + protocol, + state.meshGateway, + ), + ) + if err != nil { + m.logger.Error("failed to send event for discovery chain", "service", chainName.String(), "error", err) + } +} + +func createDiscoChainHealth( + peerName string, + datacenter, trustDomain string, + sn structs.ServiceName, + protocol string, + pb *pbservice.IndexedCheckServiceNodes, +) *pbservice.IndexedCheckServiceNodes { + fakeProxyName := sn.Name + syntheticProxyNameSuffix + + var peerMeta *pbservice.PeeringServiceMeta + { + spiffeID := connect.SpiffeIDService{ + Host: trustDomain, + Partition: sn.PartitionOrDefault(), + Namespace: sn.NamespaceOrDefault(), + Datacenter: datacenter, + Service: sn.Name, + } + + sni := connect.PeeredServiceSNI( + sn.Name, + sn.NamespaceOrDefault(), + sn.PartitionOrDefault(), + peerName, + trustDomain, + ) + + // Create common peer meta. + // + // TODO(peering): should this be replicated by service and not by instance? + peerMeta = &pbservice.PeeringServiceMeta{ + SNI: []string{sni}, + SpiffeID: []string{spiffeID.URI().String()}, + Protocol: protocol, + } + } + + newNodes := make([]*pbservice.CheckServiceNode, 0, len(pb.Nodes)) + for i := range pb.Nodes { + gwNode := pb.Nodes[i].Node + gwService := pb.Nodes[i].Service + gwChecks := pb.Nodes[i].Checks + + pbEntMeta := pbcommon.NewEnterpriseMetaFromStructs(sn.EnterpriseMeta) + + fakeProxyID := fakeProxyName + destServiceID := sn.Name + if gwService.ID != "" { + // This is only going to be relevant if multiple mesh gateways are + // on the same exporting node. + fakeProxyID = fmt.Sprintf("%s-instance-%d", fakeProxyName, i) + destServiceID = fmt.Sprintf("%s-instance-%d", sn.Name, i) + } + + csn := &pbservice.CheckServiceNode{ + Node: gwNode, + Service: &pbservice.NodeService{ + Kind: string(structs.ServiceKindConnectProxy), + Service: fakeProxyName, + ID: fakeProxyID, + EnterpriseMeta: pbEntMeta, + PeerName: structs.DefaultPeerKeyword, + Proxy: &pbservice.ConnectProxyConfig{ + DestinationServiceName: sn.Name, + DestinationServiceID: destServiceID, + }, + // direct + Address: gwService.Address, + TaggedAddresses: gwService.TaggedAddresses, + Port: gwService.Port, + SocketPath: gwService.SocketPath, + Weights: gwService.Weights, + Connect: &pbservice.ServiceConnect{ + PeerMeta: peerMeta, + }, + }, + Checks: flattenChecks(gwNode.Node, fakeProxyID, fakeProxyName, pbEntMeta, gwChecks), + } + newNodes = append(newNodes, csn) + } + + return &pbservice.IndexedCheckServiceNodes{ + Index: 0, + Nodes: newNodes, + } +} + +func flattenChecks( + nodeName string, + serviceID string, + serviceName string, + entMeta *pbcommon.EnterpriseMeta, + checks []*pbservice.HealthCheck, +) []*pbservice.HealthCheck { + if len(checks) == 0 { + return nil + } + + healthStatus := api.HealthPassing + for _, chk := range checks { + if chk.Status != api.HealthPassing { + healthStatus = chk.Status + } + } + + if serviceID == "" { + serviceID = serviceName + } + + return []*pbservice.HealthCheck{ + { + CheckID: serviceID + ":overall-check", + Name: "overall-check", + Status: healthStatus, + Node: nodeName, + ServiceID: serviceID, + ServiceName: serviceName, + EnterpriseMeta: entMeta, + PeerName: structs.DefaultPeerKeyword, + }, + } } const ( - subExportedService = "exported-service:" + subExportedServiceList = "exported-service-list" + subExportedService = "exported-service:" + subMeshGateway = "mesh-gateway:" ) -// Notify the given channel when there are updates to the requested service. -func (m *subscriptionManager) Notify(ctx context.Context, svc structs.ServiceName, updateCh chan<- cache.UpdateEvent) error { - sr := newExportedServiceRequest(m.logger, svc, m.backend) +// NotifyStandardService will notify the given channel when there are updates +// to the requested service of the same name in the catalog. +func (m *subscriptionManager) NotifyStandardService( + ctx context.Context, + svc structs.ServiceName, + updateCh chan<- cache.UpdateEvent, +) error { + sr := newExportedStandardServiceRequest(m.logger, svc, m.backend) return m.viewStore.Notify(ctx, sr, subExportedService+svc.String(), updateCh) } + +// syntheticProxyNameSuffix is the suffix to add to synthetic proxies we +// replicate to route traffic to an exported discovery chain through the mesh +// gateways. +// +// This name was chosen to match existing "sidecar service" generation logic +// and similar logic in the Service Identity synthetic ACL policies. +const syntheticProxyNameSuffix = "-sidecar-proxy" + +func generateProxyNameForDiscoveryChain(sn structs.ServiceName) structs.ServiceName { + return structs.NewServiceName(sn.Name+syntheticProxyNameSuffix, &sn.EnterpriseMeta) +} diff --git a/agent/rpc/peering/subscription_manager_test.go b/agent/rpc/peering/subscription_manager_test.go index b8b06be6d0..a7c49090b5 100644 --- a/agent/rpc/peering/subscription_manager_test.go +++ b/agent/rpc/peering/subscription_manager_test.go @@ -2,80 +2,83 @@ package peering import ( "context" + "sort" "testing" "time" - "github.com/hashicorp/go-hclog" "github.com/stretchr/testify/require" + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/state" "github.com/hashicorp/consul/agent/consul/stream" "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbcommon" "github.com/hashicorp/consul/proto/pbpeering" "github.com/hashicorp/consul/proto/pbservice" - "github.com/hashicorp/consul/sdk/testutil/retry" + "github.com/hashicorp/consul/proto/prototest" + "github.com/hashicorp/consul/sdk/testutil" ) -type testSubscriptionBackend struct { - state.EventPublisher - store *state.Store -} - -func (b *testSubscriptionBackend) Store() Store { - return b.store -} - func TestSubscriptionManager_RegisterDeregister(t *testing.T) { - publisher := stream.NewEventPublisher(10 * time.Second) - store := newStateStore(t, publisher) + backend := newTestSubscriptionBackend(t) + // initialCatalogIdx := backend.lastIdx - backend := testSubscriptionBackend{ - EventPublisher: publisher, - store: store, - } - - ctx := context.Background() - mgr := newSubscriptionManager(ctx, hclog.New(nil), &backend) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() // Create a peering - var lastIdx uint64 = 1 - err := store.PeeringWrite(lastIdx, &pbpeering.Peering{ - Name: "my-peering", + _, id := backend.ensurePeering(t, "my-peering") + partition := acl.DefaultEnterpriseMeta().PartitionOrEmpty() + + mgr := newSubscriptionManager(ctx, testutil.Logger(t), Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, connect.TestTrustDomain, backend) + subCh := mgr.subscribe(ctx, id, "my-peering", partition) + + var ( + gatewayCorrID = subMeshGateway + partition + + mysqlCorrID = subExportedService + structs.NewServiceName("mysql", nil).String() + + mysqlProxyCorrID = subExportedService + structs.NewServiceName("mysql-sidecar-proxy", nil).String() + ) + + // Expect just the empty mesh gateway event to replicate. + expectEvents(t, subCh, func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, gatewayCorrID, 0) }) - require.NoError(t, err) - _, p, err := store.PeeringRead(nil, state.Query{Value: "my-peering"}) - require.NoError(t, err) - require.NotNil(t, p) - - id := p.ID - - subCh := mgr.subscribe(ctx, id) - - entry := &structs.ExportedServicesConfigEntry{ - Name: "default", - Services: []structs.ExportedService{ - { - Name: "mysql", - Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-peering", + testutil.RunStep(t, "initial export syncs empty instance lists", func(t *testing.T) { + backend.ensureConfigEntry(t, &structs.ExportedServicesConfigEntry{ + Name: "default", + Services: []structs.ExportedService{ + { + Name: "mysql", + Consumers: []structs.ServiceConsumer{ + {PeerName: "my-peering"}, + }, + }, + { + Name: "mongo", + Consumers: []structs.ServiceConsumer{ + {PeerName: "my-other-peering"}, }, }, }, - { - Name: "mongo", - Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-other-peering", - }, - }, + }) + + expectEvents(t, subCh, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, mysqlCorrID, 0) }, - }, - } - lastIdx++ - err = store.EnsureConfigEntry(lastIdx, entry) - require.NoError(t, err) + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, mysqlProxyCorrID, 0) + }, + ) + }) mysql1 := &structs.CheckServiceNode{ Node: &structs.Node{Node: "foo", Address: "10.0.0.1"}, @@ -85,35 +88,41 @@ func TestSubscriptionManager_RegisterDeregister(t *testing.T) { }, } - runStep(t, "registering exported service instance yields update", func(t *testing.T) { + testutil.RunStep(t, "registering exported service instance yields update", func(t *testing.T) { + backend.ensureNode(t, mysql1.Node) + backend.ensureService(t, "foo", mysql1.Service) - lastIdx++ - require.NoError(t, store.EnsureNode(lastIdx, mysql1.Node)) + // We get one update for the service + expectEvents(t, subCh, func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, mysqlCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) - lastIdx++ - require.NoError(t, store.EnsureService(lastIdx, "foo", mysql1.Service)) + require.Len(t, res.Nodes, 1) - lastIdx++ - require.NoError(t, store.EnsureCheck(lastIdx, mysql1.Checks[0])) + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("foo", "10.0.0.1", partition), + Service: pbService("", "mysql-1", "mysql", 5000, nil), + }, res.Nodes[0]) + }) - // Receive in a retry loop so that eventually we converge onto the expected CheckServiceNode. - retry.Run(t, func(r *retry.R) { - select { - case update := <-subCh: - nodes, ok := update.Result.(*pbservice.IndexedCheckServiceNodes) - require.True(r, ok) - require.Equal(r, uint64(5), nodes.Index) + backend.ensureCheck(t, mysql1.Checks[0]) - require.Len(r, nodes.Nodes, 1) - require.Equal(r, "foo", nodes.Nodes[0].Node.Node) - require.Equal(r, "mysql-1", nodes.Nodes[0].Service.ID) + // and one for the check + expectEvents(t, subCh, func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, mysqlCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) - require.Len(r, nodes.Nodes[0].Checks, 1) - require.Equal(r, "mysql-check", nodes.Nodes[0].Checks[0].CheckID) + require.Len(t, res.Nodes, 1) - default: - r.Fatalf("invalid update") - } + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("foo", "10.0.0.1", partition), + Service: pbService("", "mysql-1", "mysql", 5000, nil), + Checks: []*pbservice.HealthCheck{ + pbCheck("foo", "mysql-1", "mysql", "critical", nil), + }, + }, res.Nodes[0]) }) }) @@ -125,238 +134,600 @@ func TestSubscriptionManager_RegisterDeregister(t *testing.T) { }, } - runStep(t, "additional instances are returned when registered", func(t *testing.T) { - lastIdx++ - require.NoError(t, store.EnsureNode(lastIdx, mysql2.Node)) + testutil.RunStep(t, "additional instances are returned when registered", func(t *testing.T) { + backend.ensureNode(t, mysql2.Node) + backend.ensureService(t, "bar", mysql2.Service) - lastIdx++ - require.NoError(t, store.EnsureService(lastIdx, "bar", mysql2.Service)) + // We get one update for the service + expectEvents(t, subCh, func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, mysqlCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) - lastIdx++ - require.NoError(t, store.EnsureCheck(lastIdx, mysql2.Checks[0])) + require.Len(t, res.Nodes, 2) - retry.Run(t, func(r *retry.R) { - select { - case update := <-subCh: - nodes, ok := update.Result.(*pbservice.IndexedCheckServiceNodes) - require.True(r, ok) - require.Equal(r, uint64(8), nodes.Index) + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("bar", "10.0.0.2", partition), + Service: pbService("", "mysql-2", "mysql", 5000, nil), + }, res.Nodes[0]) + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("foo", "10.0.0.1", partition), + Service: pbService("", "mysql-1", "mysql", 5000, nil), + Checks: []*pbservice.HealthCheck{ + pbCheck("foo", "mysql-1", "mysql", "critical", nil), + }, + }, res.Nodes[1]) + }) - require.Len(r, nodes.Nodes, 2) - require.Equal(r, "bar", nodes.Nodes[0].Node.Node) - require.Equal(r, "mysql-2", nodes.Nodes[0].Service.ID) + backend.ensureCheck(t, mysql2.Checks[0]) - require.Len(r, nodes.Nodes[0].Checks, 1) - require.Equal(r, "mysql-2-check", nodes.Nodes[0].Checks[0].CheckID) + // and one for the check + expectEvents(t, subCh, func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, mysqlCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) - require.Equal(r, "foo", nodes.Nodes[1].Node.Node) - require.Equal(r, "mysql-1", nodes.Nodes[1].Service.ID) - - require.Len(r, nodes.Nodes[1].Checks, 1) - require.Equal(r, "mysql-check", nodes.Nodes[1].Checks[0].CheckID) - - default: - r.Fatalf("invalid update") - } + require.Len(t, res.Nodes, 2) + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("bar", "10.0.0.2", partition), + Service: pbService("", "mysql-2", "mysql", 5000, nil), + Checks: []*pbservice.HealthCheck{ + pbCheck("bar", "mysql-2", "mysql", "critical", nil), + }, + }, res.Nodes[0]) + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("foo", "10.0.0.1", partition), + Service: pbService("", "mysql-1", "mysql", 5000, nil), + Checks: []*pbservice.HealthCheck{ + pbCheck("foo", "mysql-1", "mysql", "critical", nil), + }, + }, res.Nodes[1]) }) }) - runStep(t, "no updates are received for services not exported to my-peering", func(t *testing.T) { - mongo := &structs.CheckServiceNode{ - Node: &structs.Node{Node: "zip", Address: "10.0.0.3"}, - Service: &structs.NodeService{ID: "mongo", Service: "mongo", Port: 5000}, - Checks: structs.HealthChecks{ - &structs.HealthCheck{CheckID: "mongo-check", ServiceID: "mongo", Node: "zip"}, + mongo := &structs.CheckServiceNode{ + Node: &structs.Node{Node: "zip", Address: "10.0.0.3"}, + Service: &structs.NodeService{ID: "mongo", Service: "mongo", Port: 5000}, + Checks: structs.HealthChecks{ + &structs.HealthCheck{CheckID: "mongo-check", ServiceID: "mongo", Node: "zip"}, + }, + } + + testutil.RunStep(t, "no updates are received for services not exported to my-peering", func(t *testing.T) { + backend.ensureNode(t, mongo.Node) + backend.ensureService(t, "zip", mongo.Service) + backend.ensureCheck(t, mongo.Checks[0]) + + // Receive from subCh times out. + expectEvents(t, subCh) + }) + + testutil.RunStep(t, "deregister an instance and it gets removed from the output", func(t *testing.T) { + backend.deleteService(t, "foo", mysql1.Service.ID) + + expectEvents(t, subCh, func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, mysqlCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) + + require.Len(t, res.Nodes, 1) + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("bar", "10.0.0.2", partition), + Service: pbService("", "mysql-2", "mysql", 5000, nil), + Checks: []*pbservice.HealthCheck{ + pbCheck("bar", "mysql-2", "mysql", "critical", nil), + }, + }, res.Nodes[0]) + }) + }) + + testutil.RunStep(t, "register mesh gateway to send proxy updates", func(t *testing.T) { + gateway := &structs.CheckServiceNode{ + Node: &structs.Node{Node: "mgw", Address: "10.1.1.1"}, + Service: &structs.NodeService{ID: "gateway-1", Kind: structs.ServiceKindMeshGateway, Service: "gateway", Port: 8443}, + // TODO: checks + } + backend.ensureNode(t, gateway.Node) + backend.ensureService(t, "mgw", gateway.Service) + + expectEvents(t, subCh, + func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, mysqlProxyCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) + + require.Len(t, res.Nodes, 1) + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("mgw", "10.1.1.1", partition), + Service: &pbservice.NodeService{ + Kind: "connect-proxy", + ID: "mysql-sidecar-proxy-instance-0", + Service: "mysql-sidecar-proxy", + Port: 8443, + Weights: &pbservice.Weights{ + Passing: 1, + Warning: 1, + }, + EnterpriseMeta: pbcommon.DefaultEnterpriseMeta, + Proxy: &pbservice.ConnectProxyConfig{ + DestinationServiceID: "mysql-instance-0", + DestinationServiceName: "mysql", + }, + Connect: &pbservice.ServiceConnect{ + PeerMeta: &pbservice.PeeringServiceMeta{ + SNI: []string{ + "mysql.default.default.my-peering.external.11111111-2222-3333-4444-555555555555.consul", + }, + SpiffeID: []string{ + "spiffe://11111111-2222-3333-4444-555555555555.consul/ns/default/dc/dc1/svc/mysql", + }, + Protocol: "tcp", + }, + }, + }, + }, res.Nodes[0]) }, - } + func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, gatewayCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) - lastIdx++ - require.NoError(t, store.EnsureNode(lastIdx, mongo.Node)) - - lastIdx++ - require.NoError(t, store.EnsureService(lastIdx, "zip", mongo.Service)) - - lastIdx++ - require.NoError(t, store.EnsureCheck(lastIdx, mongo.Checks[0])) - - // Receive from subCh times out. The retry in the last step already consumed all the mysql events. - select { - case update := <-subCh: - nodes, ok := update.Result.(*pbservice.IndexedCheckServiceNodes) - - if ok && len(nodes.Nodes) > 0 && nodes.Nodes[0].Node.Node == "zip" { - t.Fatalf("received update for mongo node zip") - } - - case <-time.After(100 * time.Millisecond): - // Expect this to fire - } + require.Len(t, res.Nodes, 1) + prototest.AssertDeepEqual(t, &pbservice.CheckServiceNode{ + Node: pbNode("mgw", "10.1.1.1", partition), + Service: pbService("mesh-gateway", "gateway-1", "gateway", 8443, nil), + }, res.Nodes[0]) + }, + ) }) - runStep(t, "deregister an instance and it gets removed from the output", func(t *testing.T) { - lastIdx++ - require.NoError(t, store.DeleteService(lastIdx, "foo", mysql1.Service.ID, nil, "")) + testutil.RunStep(t, "deregister the last instance and the output is empty", func(t *testing.T) { + backend.deleteService(t, "bar", mysql2.Service.ID) - select { - case update := <-subCh: - nodes, ok := update.Result.(*pbservice.IndexedCheckServiceNodes) - require.True(t, ok) - require.Equal(t, uint64(12), nodes.Index) + expectEvents(t, subCh, func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, mysqlCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) - require.Len(t, nodes.Nodes, 1) - require.Equal(t, "bar", nodes.Nodes[0].Node.Node) - require.Equal(t, "mysql-2", nodes.Nodes[0].Service.ID) - - require.Len(t, nodes.Nodes[0].Checks, 1) - require.Equal(t, "mysql-2-check", nodes.Nodes[0].Checks[0].CheckID) - - case <-time.After(100 * time.Millisecond): - t.Fatalf("timed out waiting for update") - } + require.Len(t, res.Nodes, 0) + }) }) - runStep(t, "deregister the last instance and the output is empty", func(t *testing.T) { - lastIdx++ - require.NoError(t, store.DeleteService(lastIdx, "bar", mysql2.Service.ID, nil, "")) + testutil.RunStep(t, "deregister mesh gateway to send proxy removals", func(t *testing.T) { + backend.deleteService(t, "mgw", "gateway-1") - select { - case update := <-subCh: - nodes, ok := update.Result.(*pbservice.IndexedCheckServiceNodes) - require.True(t, ok) - require.Equal(t, uint64(13), nodes.Index) - require.Len(t, nodes.Nodes, 0) + expectEvents(t, subCh, + func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, mysqlProxyCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) - case <-time.After(100 * time.Millisecond): - t.Fatalf("timed out waiting for update") - } + require.Len(t, res.Nodes, 0) + }, + func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, gatewayCorrID, got.CorrelationID) + res := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), res.Index) + + require.Len(t, res.Nodes, 0) + }, + ) }) } func TestSubscriptionManager_InitialSnapshot(t *testing.T) { - publisher := stream.NewEventPublisher(10 * time.Second) - store := newStateStore(t, publisher) + backend := newTestSubscriptionBackend(t) + // initialCatalogIdx := backend.lastIdx - backend := testSubscriptionBackend{ - EventPublisher: publisher, - store: store, - } - - ctx := context.Background() - mgr := newSubscriptionManager(ctx, hclog.New(nil), &backend) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() // Create a peering - var lastIdx uint64 = 1 - err := store.PeeringWrite(lastIdx, &pbpeering.Peering{ - Name: "my-peering", - }) - require.NoError(t, err) + _, id := backend.ensurePeering(t, "my-peering") + partition := acl.DefaultEnterpriseMeta().PartitionOrEmpty() - _, p, err := store.PeeringRead(nil, state.Query{Value: "my-peering"}) - require.NoError(t, err) - require.NotNil(t, p) - - id := p.ID - - subCh := mgr.subscribe(ctx, id) + mgr := newSubscriptionManager(ctx, testutil.Logger(t), Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, connect.TestTrustDomain, backend) + subCh := mgr.subscribe(ctx, id, "my-peering", partition) // Register two services that are not yet exported mysql := &structs.CheckServiceNode{ Node: &structs.Node{Node: "foo", Address: "10.0.0.1"}, Service: &structs.NodeService{ID: "mysql-1", Service: "mysql", Port: 5000}, } - - lastIdx++ - require.NoError(t, store.EnsureNode(lastIdx, mysql.Node)) - - lastIdx++ - require.NoError(t, store.EnsureService(lastIdx, "foo", mysql.Service)) + backend.ensureNode(t, mysql.Node) + backend.ensureService(t, "foo", mysql.Service) mongo := &structs.CheckServiceNode{ Node: &structs.Node{Node: "zip", Address: "10.0.0.3"}, Service: &structs.NodeService{ID: "mongo-1", Service: "mongo", Port: 5000}, } + backend.ensureNode(t, mongo.Node) + backend.ensureService(t, "zip", mongo.Service) - lastIdx++ - require.NoError(t, store.EnsureNode(lastIdx, mongo.Node)) + var ( + gatewayCorrID = subMeshGateway + partition - lastIdx++ - require.NoError(t, store.EnsureService(lastIdx, "zip", mongo.Service)) + mysqlCorrID = subExportedService + structs.NewServiceName("mysql", nil).String() + mongoCorrID = subExportedService + structs.NewServiceName("mongo", nil).String() + chainCorrID = subExportedService + structs.NewServiceName("chain", nil).String() - // No updates should be received, because neither service is exported. - select { - case update := <-subCh: - nodes, ok := update.Result.(*pbservice.IndexedCheckServiceNodes) + mysqlProxyCorrID = subExportedService + structs.NewServiceName("mysql-sidecar-proxy", nil).String() + mongoProxyCorrID = subExportedService + structs.NewServiceName("mongo-sidecar-proxy", nil).String() + chainProxyCorrID = subExportedService + structs.NewServiceName("chain-sidecar-proxy", nil).String() + ) - if ok && len(nodes.Nodes) > 0 { - t.Fatalf("received unexpected update") - } + // Expect just the empty mesh gateway event to replicate. + expectEvents(t, subCh, func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, gatewayCorrID, 0) + }) - case <-time.After(100 * time.Millisecond): - // Expect this to fire - } - - runStep(t, "exporting the two services yields an update for both", func(t *testing.T) { - entry := &structs.ExportedServicesConfigEntry{ + // At this point in time we'll have a mesh-gateway notification with no + // content stored and handled. + testutil.RunStep(t, "exporting the two services yields an update for both", func(t *testing.T) { + backend.ensureConfigEntry(t, &structs.ExportedServicesConfigEntry{ Name: "default", Services: []structs.ExportedService{ { Name: "mysql", Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-peering", - }, + {PeerName: "my-peering"}, }, }, { Name: "mongo", Consumers: []structs.ServiceConsumer{ - { - PeerName: "my-peering", - }, + {PeerName: "my-peering"}, + }, + }, + { + Name: "chain", + Consumers: []structs.ServiceConsumer{ + {PeerName: "my-peering"}, }, }, }, - } - lastIdx++ - err = store.EnsureConfigEntry(lastIdx, entry) - require.NoError(t, err) - - var ( - sawMySQL bool - sawMongo bool - ) - - retry.Run(t, func(r *retry.R) { - select { - case update := <-subCh: - nodes, ok := update.Result.(*pbservice.IndexedCheckServiceNodes) - require.True(r, ok) - require.Len(r, nodes.Nodes, 1) - - switch nodes.Nodes[0].Service.Service { - case "mongo": - sawMongo = true - case "mysql": - sawMySQL = true - } - if !sawMySQL || !sawMongo { - r.Fatalf("missing an update") - } - default: - r.Fatalf("invalid update") - } }) + + expectEvents(t, subCh, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, chainCorrID, 0) + }, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, chainProxyCorrID, 0) + }, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, mongoCorrID, 1, "mongo", string(structs.ServiceKindTypical)) + }, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, mongoProxyCorrID, 0) + }, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, mysqlCorrID, 1, "mysql", string(structs.ServiceKindTypical)) + }, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, mysqlProxyCorrID, 0) + }, + ) + }) + + testutil.RunStep(t, "registering a mesh gateway triggers connect replies", func(t *testing.T) { + gateway := &structs.CheckServiceNode{ + Node: &structs.Node{Node: "mgw", Address: "10.1.1.1"}, + Service: &structs.NodeService{ID: "gateway-1", Kind: structs.ServiceKindMeshGateway, Service: "gateway", Port: 8443}, + // TODO: checks + } + backend.ensureNode(t, gateway.Node) + backend.ensureService(t, "mgw", gateway.Service) + + expectEvents(t, subCh, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, chainProxyCorrID, 1, "chain-sidecar-proxy", string(structs.ServiceKindConnectProxy)) + }, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, mongoProxyCorrID, 1, "mongo-sidecar-proxy", string(structs.ServiceKindConnectProxy)) + }, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, mysqlProxyCorrID, 1, "mysql-sidecar-proxy", string(structs.ServiceKindConnectProxy)) + }, + func(t *testing.T, got cache.UpdateEvent) { + checkEvent(t, got, gatewayCorrID, 1, "gateway", string(structs.ServiceKindMeshGateway)) + }, + ) }) } +func TestSubscriptionManager_CARoots(t *testing.T) { + backend := newTestSubscriptionBackend(t) + + // Setup CA-related configs in the store + clusterID, rootA := writeInitialRootsAndCA(t, backend.store) + trustDomain := connect.SpiffeIDSigningForCluster(clusterID).Host() + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + // Create a peering + _, id := backend.ensurePeering(t, "my-peering") + partition := acl.DefaultEnterpriseMeta().PartitionOrEmpty() + + mgr := newSubscriptionManager(ctx, testutil.Logger(t), Config{ + Datacenter: "dc1", + ConnectEnabled: true, + }, connect.TestTrustDomain, backend) + subCh := mgr.subscribe(ctx, id, "my-peering", partition) + + testutil.RunStep(t, "initial events contain trust bundle", func(t *testing.T) { + // events are ordered so we can expect a deterministic list + expectEvents(t, subCh, + func(t *testing.T, got cache.UpdateEvent) { + // mesh-gateway assertions are done in other tests + require.Equal(t, subMeshGateway+partition, got.CorrelationID) + }, + func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, subCARoot, got.CorrelationID) + roots, ok := got.Result.(*pbpeering.PeeringTrustBundle) + require.True(t, ok) + + require.ElementsMatch(t, []string{rootA.RootCert}, roots.RootPEMs) + + require.Equal(t, trustDomain, roots.TrustDomain) + }, + ) + }) + + testutil.RunStep(t, "updating CA roots triggers event", func(t *testing.T) { + rootB := connect.TestCA(t, nil) + rootC := connect.TestCA(t, nil) + rootC.Active = false // there can only be one active root + backend.ensureCARoots(t, rootB, rootC) + + expectEvents(t, subCh, + func(t *testing.T, got cache.UpdateEvent) { + require.Equal(t, subCARoot, got.CorrelationID) + roots, ok := got.Result.(*pbpeering.PeeringTrustBundle) + require.True(t, ok) + + require.ElementsMatch(t, []string{rootB.RootCert, rootC.RootCert}, roots.RootPEMs) + + require.Equal(t, trustDomain, roots.TrustDomain) + }, + ) + }) +} + +type testSubscriptionBackend struct { + state.EventPublisher + store *state.Store + + lastIdx uint64 +} + +func newTestSubscriptionBackend(t *testing.T) *testSubscriptionBackend { + publisher := stream.NewEventPublisher(10 * time.Second) + store := newStateStore(t, publisher) + + backend := &testSubscriptionBackend{ + EventPublisher: publisher, + store: store, + } + + // Create some placeholder data to ensure raft index > 0 + // + // TODO(peering): is there some extremely subtle max-index table reading bug in play? + placeholder := &structs.CheckServiceNode{ + Node: &structs.Node{Node: "placeholder", Address: "10.0.0.1"}, + Service: &structs.NodeService{ID: "placeholder-1", Service: "placeholder", Port: 5000}, + } + backend.ensureNode(t, placeholder.Node) + backend.ensureService(t, "placeholder", placeholder.Service) + + return backend +} + +func (b *testSubscriptionBackend) Store() Store { + return b.store +} + +func (b *testSubscriptionBackend) ensurePeering(t *testing.T, name string) (uint64, string) { + b.lastIdx++ + return b.lastIdx, setupTestPeering(t, b.store, name, b.lastIdx) +} + +func (b *testSubscriptionBackend) ensureConfigEntry(t *testing.T, entry structs.ConfigEntry) uint64 { + require.NoError(t, entry.Normalize()) + require.NoError(t, entry.Validate()) + + b.lastIdx++ + require.NoError(t, b.store.EnsureConfigEntry(b.lastIdx, entry)) + return b.lastIdx +} + +func (b *testSubscriptionBackend) ensureNode(t *testing.T, node *structs.Node) uint64 { + b.lastIdx++ + require.NoError(t, b.store.EnsureNode(b.lastIdx, node)) + return b.lastIdx +} + +func (b *testSubscriptionBackend) ensureService(t *testing.T, node string, svc *structs.NodeService) uint64 { + b.lastIdx++ + require.NoError(t, b.store.EnsureService(b.lastIdx, node, svc)) + return b.lastIdx +} + +func (b *testSubscriptionBackend) ensureCheck(t *testing.T, hc *structs.HealthCheck) uint64 { + b.lastIdx++ + require.NoError(t, b.store.EnsureCheck(b.lastIdx, hc)) + return b.lastIdx +} + +func (b *testSubscriptionBackend) deleteService(t *testing.T, nodeName, serviceID string) uint64 { + b.lastIdx++ + require.NoError(t, b.store.DeleteService(b.lastIdx, nodeName, serviceID, nil, "")) + return b.lastIdx +} + +func (b *testSubscriptionBackend) ensureCAConfig(t *testing.T, config *structs.CAConfiguration) uint64 { + b.lastIdx++ + require.NoError(t, b.store.CASetConfig(b.lastIdx, config)) + return b.lastIdx +} + +func (b *testSubscriptionBackend) ensureCARoots(t *testing.T, roots ...*structs.CARoot) uint64 { + // Get the max index for Check-and-Set operation + cidx, _, err := b.store.CARoots(nil) + require.NoError(t, err) + + b.lastIdx++ + set, err := b.store.CARootSetCAS(b.lastIdx, cidx, roots) + require.True(t, set) + require.NoError(t, err) + return b.lastIdx +} + +func setupTestPeering(t *testing.T, store *state.Store, name string, index uint64) string { + err := store.PeeringWrite(index, &pbpeering.Peering{ + Name: name, + }) + require.NoError(t, err) + + _, p, err := store.PeeringRead(nil, state.Query{Value: name}) + require.NoError(t, err) + require.NotNil(t, p) + + return p.ID +} + func newStateStore(t *testing.T, publisher *stream.EventPublisher) *state.Store { + ctx, cancel := context.WithCancel(context.Background()) + t.Cleanup(cancel) + gc, err := state.NewTombstoneGC(time.Second, time.Millisecond) require.NoError(t, err) store := state.NewStateStoreWithEventPublisher(gc, publisher) require.NoError(t, publisher.RegisterHandler(state.EventTopicServiceHealth, store.ServiceHealthSnapshot)) require.NoError(t, publisher.RegisterHandler(state.EventTopicServiceHealthConnect, store.ServiceHealthSnapshot)) - go publisher.Run(context.Background()) + require.NoError(t, publisher.RegisterHandler(state.EventTopicCARoots, store.CARootsSnapshot)) + go publisher.Run(ctx) return store } + +func expectEvents( + t *testing.T, + ch <-chan cache.UpdateEvent, + checkFns ...func(t *testing.T, got cache.UpdateEvent), +) { + t.Helper() + + num := len(checkFns) + + var out []cache.UpdateEvent + + if num == 0 { + // No updates should be received. + select { + case <-ch: + t.Fatalf("received unexpected update") + case <-time.After(100 * time.Millisecond): + // Expect this to fire + } + return + } + + const timeout = 10 * time.Second + timeoutCh := time.After(timeout) + + for len(out) < num { + select { + case <-timeoutCh: + t.Fatalf("timed out with %d of %d events after %v", len(out), num, timeout) + case evt := <-ch: + out = append(out, evt) + } + } + + select { + case <-time.After(100 * time.Millisecond): + case evt := <-ch: + t.Fatalf("expected only %d events but got more; prev %+v; next %+v;", num, out, evt) + } + + require.Len(t, out, num) + + sort.SliceStable(out, func(i, j int) bool { + return out[i].CorrelationID < out[j].CorrelationID + }) + + for i := 0; i < num; i++ { + checkFns[i](t, out[i]) + } +} + +func checkEvent( + t *testing.T, + got cache.UpdateEvent, + correlationID string, + expectNodes int, + serviceKindPairs ...string) { + t.Helper() + + require.True(t, len(serviceKindPairs) == 2*expectNodes, "sanity check") + + require.Equal(t, correlationID, got.CorrelationID) + + evt := got.Result.(*pbservice.IndexedCheckServiceNodes) + require.Equal(t, uint64(0), evt.Index) + + if expectNodes == 0 { + require.Len(t, evt.Nodes, 0) + } else { + require.Len(t, evt.Nodes, expectNodes) + + for i := 0; i < expectNodes; i++ { + expectName := serviceKindPairs[i*2] + expectKind := serviceKindPairs[i*2+1] + require.Equal(t, expectName, evt.Nodes[i].Service.Service) + require.Equal(t, expectKind, evt.Nodes[i].Service.Kind) + } + } +} + +func pbNode(node, addr, partition string) *pbservice.Node { + return &pbservice.Node{Node: node, Partition: partition, Address: addr} +} + +func pbService(kind, id, name string, port int32, entMeta *pbcommon.EnterpriseMeta) *pbservice.NodeService { + if entMeta == nil { + entMeta = pbcommon.DefaultEnterpriseMeta + } + return &pbservice.NodeService{ + ID: id, + Kind: kind, + Service: name, + Port: port, + Weights: &pbservice.Weights{ + Passing: 1, + Warning: 1, + }, + EnterpriseMeta: entMeta, + } +} + +func pbCheck(node, svcID, svcName, status string, entMeta *pbcommon.EnterpriseMeta) *pbservice.HealthCheck { + if entMeta == nil { + entMeta = pbcommon.DefaultEnterpriseMeta + } + return &pbservice.HealthCheck{ + Node: node, + CheckID: svcID + ":overall-check", + Name: "overall-check", + Status: status, + ServiceID: svcID, + ServiceName: svcName, + EnterpriseMeta: entMeta, + } +} diff --git a/agent/rpc/peering/subscription_state.go b/agent/rpc/peering/subscription_state.go new file mode 100644 index 0000000000..bd9da52e8e --- /dev/null +++ b/agent/rpc/peering/subscription_state.go @@ -0,0 +1,172 @@ +package peering + +import ( + "context" + "crypto/sha256" + "encoding/hex" + "fmt" + "strings" + + "github.com/golang/protobuf/proto" + "github.com/hashicorp/go-hclog" + + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbservice" +) + +// subscriptionState is a collection of working state tied to a peerID subscription. +type subscriptionState struct { + // peerName is immutable and is the LOCAL name for the peering + peerName string + // partition is immutable + partition string + + // plain data + exportList *structs.ExportedServiceList + + watchedServices map[structs.ServiceName]context.CancelFunc + connectServices map[structs.ServiceName]string // value:protocol + + // eventVersions is a duplicate event suppression system keyed by the "id" + // not the "correlationID" + eventVersions map[string]string + + meshGateway *pbservice.IndexedCheckServiceNodes + + // updateCh is an internal implementation detail for the machinery of the + // manager. + updateCh chan<- cache.UpdateEvent + + // publicUpdateCh is the channel the manager uses to pass data back to the + // caller. + publicUpdateCh chan<- cache.UpdateEvent +} + +func newSubscriptionState(peerName, partition string) *subscriptionState { + return &subscriptionState{ + peerName: peerName, + partition: partition, + watchedServices: make(map[structs.ServiceName]context.CancelFunc), + connectServices: make(map[structs.ServiceName]string), + eventVersions: make(map[string]string), + } +} + +func (s *subscriptionState) sendPendingEvents( + ctx context.Context, + logger hclog.Logger, + pending *pendingPayload, +) { + for _, pendingEvt := range pending.Events { + cID := pendingEvt.CorrelationID + newVersion := pendingEvt.Version + + oldVersion, ok := s.eventVersions[pendingEvt.ID] + if ok && newVersion == oldVersion { + logger.Trace("skipping send of duplicate public event", "correlationID", cID) + continue + } + + logger.Trace("sending public event", "correlationID", cID) + s.eventVersions[pendingEvt.ID] = newVersion + + evt := cache.UpdateEvent{ + CorrelationID: cID, + Result: pendingEvt.Result, + } + + select { + case s.publicUpdateCh <- evt: + case <-ctx.Done(): + } + } +} + +func (s *subscriptionState) cleanupEventVersions(logger hclog.Logger) { + for id := range s.eventVersions { + keep := false + switch { + case id == meshGatewayPayloadID: + keep = true + + case id == caRootsPayloadID: + keep = true + + case strings.HasPrefix(id, servicePayloadIDPrefix): + name := strings.TrimPrefix(id, servicePayloadIDPrefix) + sn := structs.ServiceNameFromString(name) + + if _, ok := s.watchedServices[sn]; ok { + keep = true + } + + case strings.HasPrefix(id, discoveryChainPayloadIDPrefix): + name := strings.TrimPrefix(id, discoveryChainPayloadIDPrefix) + sn := structs.ServiceNameFromString(name) + + if _, ok := s.connectServices[sn]; ok { + keep = true + } + } + + if !keep { + logger.Trace("cleaning up unreferenced event id version", "id", id) + delete(s.eventVersions, id) + } + } +} + +type pendingPayload struct { + Events []pendingEvent +} + +type pendingEvent struct { + ID string + CorrelationID string + Result proto.Message + Version string +} + +const ( + caRootsPayloadID = "roots" + meshGatewayPayloadID = "mesh-gateway" + servicePayloadIDPrefix = "service:" + discoveryChainPayloadIDPrefix = "chain:" +) + +func (p *pendingPayload) Add(id string, correlationID string, raw interface{}) error { + result, ok := raw.(proto.Message) + if !ok { + return fmt.Errorf("invalid type for %q event: %T", correlationID, raw) + } + + version, err := hashProtobuf(result) + if err != nil { + return fmt.Errorf("error hashing %q event: %w", correlationID, err) + } + + p.Events = append(p.Events, pendingEvent{ + ID: id, + CorrelationID: correlationID, + Result: result, + Version: version, + }) + + return nil +} + +func hashProtobuf(res proto.Message) (string, error) { + h := sha256.New() + buffer := proto.NewBuffer(nil) + buffer.SetDeterministic(true) + + err := buffer.Marshal(res) + if err != nil { + return "", err + } + h.Write(buffer.Bytes()) + buffer.Reset() + + return hex.EncodeToString(h.Sum(nil)), nil +} diff --git a/agent/rpc/peering/subscription_state_test.go b/agent/rpc/peering/subscription_state_test.go new file mode 100644 index 0000000000..e94459ac66 --- /dev/null +++ b/agent/rpc/peering/subscription_state_test.go @@ -0,0 +1,200 @@ +package peering + +import ( + "context" + "testing" + "time" + + "github.com/golang/protobuf/proto" + "github.com/hashicorp/go-hclog" + "github.com/stretchr/testify/require" + + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/agent/cache" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/pbservice" + "github.com/hashicorp/consul/sdk/testutil" +) + +func TestSubscriptionState_Events(t *testing.T) { + logger := hclog.NewNullLogger() + + partition := acl.DefaultEnterpriseMeta().PartitionOrEmpty() + + state := newSubscriptionState("my-peering", partition) + + testutil.RunStep(t, "empty", func(t *testing.T) { + pending := &pendingPayload{} + + ch := make(chan cache.UpdateEvent, 1) + state.publicUpdateCh = ch + go func() { + state.sendPendingEvents(context.Background(), logger, pending) + close(ch) + }() + + got := drainEvents(t, ch) + require.Len(t, got, 0) + }) + + meshNode1 := &pbservice.CheckServiceNode{ + Node: &pbservice.Node{Node: "foo"}, + Service: &pbservice.NodeService{ID: "mgw-1", Service: "mgw", Kind: "mesh-gateway"}, + } + + testutil.RunStep(t, "one", func(t *testing.T) { + pending := &pendingPayload{} + require.NoError(t, pending.Add( + meshGatewayPayloadID, + subMeshGateway+partition, + &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + proto.Clone(meshNode1).(*pbservice.CheckServiceNode), + }, + }, + )) + + ch := make(chan cache.UpdateEvent, 1) + state.publicUpdateCh = ch + go func() { + state.sendPendingEvents(context.Background(), logger, pending) + close(ch) + }() + + got := drainEvents(t, ch) + require.Len(t, got, 1) + + evt := got[0] + require.Equal(t, subMeshGateway+partition, evt.CorrelationID) + require.Len(t, evt.Result.(*pbservice.IndexedCheckServiceNodes).Nodes, 1) + }) + + testutil.RunStep(t, "a duplicate is omitted", func(t *testing.T) { + pending := &pendingPayload{} + require.NoError(t, pending.Add( + meshGatewayPayloadID, + subMeshGateway+partition, + &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + proto.Clone(meshNode1).(*pbservice.CheckServiceNode), + }, + }, + )) + + ch := make(chan cache.UpdateEvent, 1) + state.publicUpdateCh = ch + go func() { + state.sendPendingEvents(context.Background(), logger, pending) + close(ch) + }() + + got := drainEvents(t, ch) + require.Len(t, got, 0) + }) + + webNode1 := &pbservice.CheckServiceNode{ + Node: &pbservice.Node{Node: "zim"}, + Service: &pbservice.NodeService{ID: "web-1", Service: "web"}, + } + + webSN := structs.NewServiceName("web", nil) + + testutil.RunStep(t, "a duplicate is omitted even if mixed", func(t *testing.T) { + pending := &pendingPayload{} + require.NoError(t, pending.Add( + meshGatewayPayloadID, + subMeshGateway+partition, + &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + proto.Clone(meshNode1).(*pbservice.CheckServiceNode), + }, + }, + )) + require.NoError(t, pending.Add( + servicePayloadIDPrefix+webSN.String(), + subExportedService+webSN.String(), + &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + proto.Clone(webNode1).(*pbservice.CheckServiceNode), + }, + }, + )) + + ch := make(chan cache.UpdateEvent, 1) + state.publicUpdateCh = ch + go func() { + state.sendPendingEvents(context.Background(), logger, pending) + close(ch) + }() + + got := drainEvents(t, ch) + require.Len(t, got, 1) + + evt := got[0] + require.Equal(t, subExportedService+webSN.String(), evt.CorrelationID) + require.Len(t, evt.Result.(*pbservice.IndexedCheckServiceNodes).Nodes, 1) + }) + + meshNode2 := &pbservice.CheckServiceNode{ + Node: &pbservice.Node{Node: "bar"}, + Service: &pbservice.NodeService{ID: "mgw-2", Service: "mgw", Kind: "mesh-gateway"}, + } + + testutil.RunStep(t, "an update to an existing item is published", func(t *testing.T) { + pending := &pendingPayload{} + require.NoError(t, pending.Add( + meshGatewayPayloadID, + subMeshGateway+partition, + &pbservice.IndexedCheckServiceNodes{ + Nodes: []*pbservice.CheckServiceNode{ + proto.Clone(meshNode1).(*pbservice.CheckServiceNode), + proto.Clone(meshNode2).(*pbservice.CheckServiceNode), + }, + }, + )) + + ch := make(chan cache.UpdateEvent, 1) + state.publicUpdateCh = ch + go func() { + state.sendPendingEvents(context.Background(), logger, pending) + close(ch) + }() + + got := drainEvents(t, ch) + require.Len(t, got, 1) + + evt := got[0] + require.Equal(t, subMeshGateway+partition, evt.CorrelationID) + require.Len(t, evt.Result.(*pbservice.IndexedCheckServiceNodes).Nodes, 2) + }) +} + +func drainEvents(t *testing.T, ch <-chan cache.UpdateEvent) []cache.UpdateEvent { + var out []cache.UpdateEvent + + for { + select { + case evt, ok := <-ch: + if !ok { + return out + } + out = append(out, evt) + case <-time.After(100 * time.Millisecond): + t.Fatalf("channel did not close in time") + } + } +} + +func testNewSubscriptionState(partition string) ( + *subscriptionState, + chan cache.UpdateEvent, +) { + var ( + publicUpdateCh = make(chan cache.UpdateEvent, 1) + ) + + state := newSubscriptionState("my-peering", partition) + state.publicUpdateCh = publicUpdateCh + + return state, publicUpdateCh +} diff --git a/agent/rpc/peering/subscription_view.go b/agent/rpc/peering/subscription_view.go index d6b48e923b..e002565f7b 100644 --- a/agent/rpc/peering/subscription_view.go +++ b/agent/rpc/peering/subscription_view.go @@ -24,12 +24,10 @@ type exportedServiceRequest struct { sub Subscriber } -func newExportedServiceRequest(logger hclog.Logger, svc structs.ServiceName, sub Subscriber) *exportedServiceRequest { +func newExportedStandardServiceRequest(logger hclog.Logger, svc structs.ServiceName, sub Subscriber) *exportedServiceRequest { req := structs.ServiceSpecificRequest{ - // TODO(peering): Need to subscribe to both Connect and not - Connect: false, - ServiceName: svc.Name, + Connect: false, EnterpriseMeta: svc.EnterpriseMeta, } return &exportedServiceRequest{ @@ -44,11 +42,23 @@ func (e *exportedServiceRequest) CacheInfo() cache.RequestInfo { return e.req.CacheInfo() } +func (e *exportedServiceRequest) getTopic() pbsubscribe.Topic { + if e.req.Connect { + return pbsubscribe.Topic_ServiceHealthConnect + } + // Using the Topic_ServiceHealth will ignore proxies unless the ServiceName is a proxy name. + return pbsubscribe.Topic_ServiceHealth +} + // NewMaterializer implements submatview.Request func (e *exportedServiceRequest) NewMaterializer() (submatview.Materializer, error) { + // TODO(peering): reinstate this + // if e.req.Connect { + // return nil, fmt.Errorf("connect views are not supported") + // } reqFn := func(index uint64) *pbsubscribe.SubscribeRequest { - r := &pbsubscribe.SubscribeRequest{ - Topic: pbsubscribe.Topic_ServiceHealth, + return &pbsubscribe.SubscribeRequest{ + Topic: e.getTopic(), Key: e.req.ServiceName, Token: e.req.Token, Datacenter: e.req.Datacenter, @@ -56,10 +66,6 @@ func (e *exportedServiceRequest) NewMaterializer() (submatview.Materializer, err Namespace: e.req.EnterpriseMeta.NamespaceOrEmpty(), Partition: e.req.EnterpriseMeta.PartitionOrEmpty(), } - if e.req.Connect { - r.Topic = pbsubscribe.Topic_ServiceHealthConnect - } - return r } deps := submatview.Deps{ View: newExportedServicesView(), diff --git a/agent/rpc/peering/subscription_view_test.go b/agent/rpc/peering/subscription_view_test.go index cbb9d071f3..6165545645 100644 --- a/agent/rpc/peering/subscription_view_test.go +++ b/agent/rpc/peering/subscription_view_test.go @@ -2,6 +2,7 @@ package peering import ( "context" + "fmt" "math/rand" "sort" "sync" @@ -38,87 +39,36 @@ func TestExportedServiceSubscription(t *testing.T) { apiSN := structs.NewServiceName("api", nil) webSN := structs.NewServiceName("web", nil) + newRegisterHealthEvent := func(id, service string) stream.Event { + return stream.Event{ + Topic: pbsubscribe.Topic_ServiceHealth, + Payload: state.EventPayloadCheckServiceNode{ + Op: pbsubscribe.CatalogOp_Register, + Value: &structs.CheckServiceNode{ + Service: &structs.NodeService{ + ID: id, + Service: service, + }, + }, + }, + } + } + // List of updates to the state store: // - api: {register api-1, register api-2, register api-3} // - web: {register web-1, deregister web-1, register web-2}1 events := []map[string]stream.Event{ { - apiSN.String(): stream.Event{ - Topic: pbsubscribe.Topic_ServiceHealth, - Payload: state.EventPayloadCheckServiceNode{ - Op: pbsubscribe.CatalogOp_Register, - Value: &structs.CheckServiceNode{ - Service: &structs.NodeService{ - ID: "api-1", - Service: "api", - }, - }, - }, - }, - webSN.String(): stream.Event{ - Topic: pbsubscribe.Topic_ServiceHealth, - Payload: state.EventPayloadCheckServiceNode{ - Op: pbsubscribe.CatalogOp_Register, - Value: &structs.CheckServiceNode{ - Service: &structs.NodeService{ - ID: "web-1", - Service: "web", - }, - }, - }, - }, + apiSN.String(): newRegisterHealthEvent("api-1", "api"), + webSN.String(): newRegisterHealthEvent("web-1", "web"), }, { - apiSN.String(): stream.Event{ - Topic: pbsubscribe.Topic_ServiceHealth, - Payload: state.EventPayloadCheckServiceNode{ - Op: pbsubscribe.CatalogOp_Register, - Value: &structs.CheckServiceNode{ - Service: &structs.NodeService{ - ID: "api-2", - Service: "api", - }, - }, - }, - }, - webSN.String(): stream.Event{ - Topic: pbsubscribe.Topic_ServiceHealth, - Payload: state.EventPayloadCheckServiceNode{ - Op: pbsubscribe.CatalogOp_Deregister, - Value: &structs.CheckServiceNode{ - Service: &structs.NodeService{ - ID: "web-1", - Service: "web", - }, - }, - }, - }, + apiSN.String(): newRegisterHealthEvent("api-2", "api"), + webSN.String(): newRegisterHealthEvent("web-1", "web"), }, { - apiSN.String(): stream.Event{ - Topic: pbsubscribe.Topic_ServiceHealth, - Payload: state.EventPayloadCheckServiceNode{ - Op: pbsubscribe.CatalogOp_Register, - Value: &structs.CheckServiceNode{ - Service: &structs.NodeService{ - ID: "api-3", - Service: "api", - }, - }, - }, - }, - webSN.String(): stream.Event{ - Topic: pbsubscribe.Topic_ServiceHealth, - Payload: state.EventPayloadCheckServiceNode{ - Op: pbsubscribe.CatalogOp_Register, - Value: &structs.CheckServiceNode{ - Service: &structs.NodeService{ - ID: "web-2", - Service: "web", - }, - }, - }, - }, + apiSN.String(): newRegisterHealthEvent("api-3", "api"), + webSN.String(): newRegisterHealthEvent("web-2", "web"), }, } @@ -224,9 +174,10 @@ func (s *store) simulateUpdates(ctx context.Context, events []map[string]stream. switch payload.Op { case pbsubscribe.CatalogOp_Register: svcState.current[payload.Value.Service.ID] = payload.Value - default: - // If not a registration it must be a deregistration: + case pbsubscribe.CatalogOp_Deregister: delete(svcState.current, payload.Value.Service.ID) + default: + panic(fmt.Sprintf("unable to handle op type %v", payload.Op)) } svcState.idsByIndex[idx] = serviceIDsFromMap(svcState.current) @@ -305,7 +256,11 @@ func (c *consumer) consume(ctx context.Context, service string, countExpected in updateCh := make(chan cache.UpdateEvent, 10) group.Go(func() error { - sr := newExportedServiceRequest(hclog.New(nil), structs.NewServiceName(service, nil), c.publisher) + sr := newExportedStandardServiceRequest( + hclog.New(nil), + structs.NewServiceName(service, nil), + c.publisher, + ) return c.viewStore.Notify(gctx, sr, "", updateCh) }) group.Go(func() error { diff --git a/agent/rpc/peering/testing.go b/agent/rpc/peering/testing.go index 01dae91ee7..312b927206 100644 --- a/agent/rpc/peering/testing.go +++ b/agent/rpc/peering/testing.go @@ -4,7 +4,6 @@ import ( "context" "io" "sync" - "testing" "time" "google.golang.org/grpc/metadata" @@ -59,9 +58,8 @@ func TestPeering(peerName string, state pbpeering.PeeringState, meta map[string] PeerServerAddresses: []string{validAddress}, PeerServerName: validServerName, State: state, - // uncomment once #1613 lands - // PeerID: validPeerID - Meta: meta, + PeerID: validPeerID, + Meta: meta, } } @@ -76,52 +74,52 @@ func TestPeeringToken(peerID string) structs.PeeringToken { } } -type mockClient struct { - mu sync.Mutex - errCh chan error +type MockClient struct { + mu sync.Mutex - replicationStream *mockStream + ErrCh chan error + ReplicationStream *MockStream } -func (c *mockClient) Send(r *pbpeering.ReplicationMessage) error { - c.replicationStream.recvCh <- r +func (c *MockClient) Send(r *pbpeering.ReplicationMessage) error { + c.ReplicationStream.recvCh <- r return nil } -func (c *mockClient) Recv() (*pbpeering.ReplicationMessage, error) { +func (c *MockClient) Recv() (*pbpeering.ReplicationMessage, error) { select { - case err := <-c.errCh: + case err := <-c.ErrCh: return nil, err - case r := <-c.replicationStream.sendCh: + case r := <-c.ReplicationStream.sendCh: return r, nil case <-time.After(10 * time.Millisecond): return nil, io.EOF } } -func (c *mockClient) RecvWithTimeout(dur time.Duration) (*pbpeering.ReplicationMessage, error) { +func (c *MockClient) RecvWithTimeout(dur time.Duration) (*pbpeering.ReplicationMessage, error) { select { - case err := <-c.errCh: + case err := <-c.ErrCh: return nil, err - case r := <-c.replicationStream.sendCh: + case r := <-c.ReplicationStream.sendCh: return r, nil case <-time.After(dur): return nil, io.EOF } } -func (c *mockClient) Close() { - close(c.replicationStream.recvCh) +func (c *MockClient) Close() { + close(c.ReplicationStream.recvCh) } -func newMockClient(ctx context.Context) *mockClient { - return &mockClient{ - replicationStream: newTestReplicationStream(ctx), +func NewMockClient(ctx context.Context) *MockClient { + return &MockClient{ + ReplicationStream: newTestReplicationStream(ctx), } } -// mockStream mocks peering.PeeringService_StreamResourcesServer -type mockStream struct { +// MockStream mocks peering.PeeringService_StreamResourcesServer +type MockStream struct { sendCh chan *pbpeering.ReplicationMessage recvCh chan *pbpeering.ReplicationMessage @@ -129,10 +127,10 @@ type mockStream struct { mu sync.Mutex } -var _ pbpeering.PeeringService_StreamResourcesServer = (*mockStream)(nil) +var _ pbpeering.PeeringService_StreamResourcesServer = (*MockStream)(nil) -func newTestReplicationStream(ctx context.Context) *mockStream { - return &mockStream{ +func newTestReplicationStream(ctx context.Context) *MockStream { + return &MockStream{ sendCh: make(chan *pbpeering.ReplicationMessage, 1), recvCh: make(chan *pbpeering.ReplicationMessage, 1), ctx: ctx, @@ -140,13 +138,13 @@ func newTestReplicationStream(ctx context.Context) *mockStream { } // Send implements pbpeering.PeeringService_StreamResourcesServer -func (s *mockStream) Send(r *pbpeering.ReplicationMessage) error { +func (s *MockStream) Send(r *pbpeering.ReplicationMessage) error { s.sendCh <- r return nil } // Recv implements pbpeering.PeeringService_StreamResourcesServer -func (s *mockStream) Recv() (*pbpeering.ReplicationMessage, error) { +func (s *MockStream) Recv() (*pbpeering.ReplicationMessage, error) { r := <-s.recvCh if r == nil { return nil, io.EOF @@ -155,32 +153,32 @@ func (s *mockStream) Recv() (*pbpeering.ReplicationMessage, error) { } // Context implements grpc.ServerStream and grpc.ClientStream -func (s *mockStream) Context() context.Context { +func (s *MockStream) Context() context.Context { return s.ctx } // SendMsg implements grpc.ServerStream and grpc.ClientStream -func (s *mockStream) SendMsg(m interface{}) error { +func (s *MockStream) SendMsg(m interface{}) error { return nil } // RecvMsg implements grpc.ServerStream and grpc.ClientStream -func (s *mockStream) RecvMsg(m interface{}) error { +func (s *MockStream) RecvMsg(m interface{}) error { return nil } // SetHeader implements grpc.ServerStream -func (s *mockStream) SetHeader(metadata.MD) error { +func (s *MockStream) SetHeader(metadata.MD) error { return nil } // SendHeader implements grpc.ServerStream -func (s *mockStream) SendHeader(metadata.MD) error { +func (s *MockStream) SendHeader(metadata.MD) error { return nil } // SetTrailer implements grpc.ServerStream -func (s *mockStream) SetTrailer(metadata.MD) {} +func (s *MockStream) SetTrailer(metadata.MD) {} type incrementalTime struct { base time.Time @@ -191,10 +189,3 @@ func (t *incrementalTime) Now() time.Time { t.next++ return t.base.Add(time.Duration(t.next) * time.Second) } - -func runStep(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } -} diff --git a/agent/rpc/peering/validate.go b/agent/rpc/peering/validate.go index 466b61a6e3..32a3d5d298 100644 --- a/agent/rpc/peering/validate.go +++ b/agent/rpc/peering/validate.go @@ -3,21 +3,15 @@ package peering import ( "fmt" "net" + "net/netip" "strconv" "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/structs" - - // TODO: replace this with net/netip when we upgrade to go1.18 - "inet.af/netaddr" ) // validatePeeringToken ensures that the token has valid values. func validatePeeringToken(tok *structs.PeeringToken) error { - if len(tok.CA) == 0 { - return errPeeringTokenEmptyCA - } - // the CA values here should be valid x509 certs for _, certStr := range tok.CA { // TODO(peering): should we put these in a cert pool on the token? @@ -43,7 +37,7 @@ func validatePeeringToken(tok *structs.PeeringToken) error { if port < 1 || port > 65535 { return &errPeeringInvalidServerAddress{addr} } - if _, err := netaddr.ParseIP(host); err != nil { + if _, err := netip.ParseAddr(host); err != nil { return &errPeeringInvalidServerAddress{addr} } } diff --git a/agent/rpc/peering/validate_test.go b/agent/rpc/peering/validate_test.go index e3b1cbf7d2..1f0660c8f9 100644 --- a/agent/rpc/peering/validate_test.go +++ b/agent/rpc/peering/validate_test.go @@ -4,8 +4,9 @@ import ( "errors" "testing" - "github.com/hashicorp/consul/agent/structs" "github.com/stretchr/testify/require" + + "github.com/hashicorp/consul/agent/structs" ) func TestValidatePeeringToken(t *testing.T) { @@ -19,14 +20,14 @@ func TestValidatePeeringToken(t *testing.T) { { name: "empty", token: &structs.PeeringToken{}, - wantErr: errPeeringTokenEmptyCA, + wantErr: errPeeringTokenEmptyServerAddresses, }, { name: "empty CA", token: &structs.PeeringToken{ CA: []string{}, }, - wantErr: errPeeringTokenEmptyCA, + wantErr: errPeeringTokenEmptyServerAddresses, }, { name: "invalid CA", diff --git a/agent/rpcclient/health/health.go b/agent/rpcclient/health/health.go index 828e284945..dd4be64cef 100644 --- a/agent/rpcclient/health/health.go +++ b/agent/rpcclient/health/health.go @@ -26,19 +26,21 @@ type NetRPC interface { type CacheGetter interface { Get(ctx context.Context, t string, r cache.Request) (interface{}, cache.ResultMeta, error) - Notify(ctx context.Context, t string, r cache.Request, cID string, ch chan<- cache.UpdateEvent) error + NotifyCallback(ctx context.Context, t string, r cache.Request, cID string, cb cache.Callback) error } type MaterializedViewStore interface { Get(ctx context.Context, req submatview.Request) (submatview.Result, error) - Notify(ctx context.Context, req submatview.Request, cID string, ch chan<- cache.UpdateEvent) error + NotifyCallback(ctx context.Context, req submatview.Request, cID string, cb cache.Callback) error } func (c *Client) ServiceNodes( ctx context.Context, req structs.ServiceSpecificRequest, ) (structs.IndexedCheckServiceNodes, cache.ResultMeta, error) { - if c.useStreaming(req) && (req.QueryOptions.UseCache || req.QueryOptions.MinQueryIndex > 0) { + // Note: if MergeCentralConfig is requested, default to using the RPC backend for now + // as the streaming backend and materializer does not have support for merging yet. + if c.useStreaming(req) && (req.QueryOptions.UseCache || req.QueryOptions.MinQueryIndex > 0) && !req.MergeCentralConfig { c.QueryOptionDefaults(&req.QueryOptions) result, err := c.ViewStore.Get(ctx, c.newServiceRequest(req)) @@ -91,14 +93,14 @@ func (c *Client) Notify( ctx context.Context, req structs.ServiceSpecificRequest, correlationID string, - ch chan<- cache.UpdateEvent, + cb cache.Callback, ) error { if c.useStreaming(req) { sr := c.newServiceRequest(req) - return c.ViewStore.Notify(ctx, sr, correlationID, ch) + return c.ViewStore.NotifyCallback(ctx, sr, correlationID, cb) } - return c.Cache.Notify(ctx, c.CacheName, &req, correlationID, ch) + return c.Cache.NotifyCallback(ctx, c.CacheName, &req, correlationID, cb) } func (c *Client) useStreaming(req structs.ServiceSpecificRequest) bool { diff --git a/agent/rpcclient/health/health_test.go b/agent/rpcclient/health/health_test.go index 9ac67805fd..00bc224b7a 100644 --- a/agent/rpcclient/health/health_test.go +++ b/agent/rpcclient/health/health_test.go @@ -82,6 +82,16 @@ func TestClient_ServiceNodes_BackendRouting(t *testing.T) { }, expected: useCache, }, + { + name: "rpc if merge-central-config", + req: structs.ServiceSpecificRequest{ + Datacenter: "dc1", + ServiceName: "web1", + MergeCentralConfig: true, + QueryOptions: structs.QueryOptions{MinQueryIndex: 22}, + }, + expected: useRPC, + }, } for _, tc := range testCases { @@ -152,7 +162,7 @@ func (f *fakeCache) Get(_ context.Context, t string, _ cache.Request) (interface return result, cache.ResultMeta{}, nil } -func (f *fakeCache) Notify(_ context.Context, t string, _ cache.Request, _ string, _ chan<- cache.UpdateEvent) error { +func (f *fakeCache) NotifyCallback(_ context.Context, t string, _ cache.Request, _ string, _ cache.Callback) error { f.calls = append(f.calls, t) return nil } @@ -175,7 +185,7 @@ func (f *fakeViewStore) Get(_ context.Context, req submatview.Request) (submatvi return submatview.Result{Value: &structs.IndexedCheckServiceNodes{}}, nil } -func (f *fakeViewStore) Notify(_ context.Context, req submatview.Request, _ string, _ chan<- cache.UpdateEvent) error { +func (f *fakeViewStore) NotifyCallback(_ context.Context, req submatview.Request, _ string, _ cache.Callback) error { f.calls = append(f.calls, req) return nil } diff --git a/agent/rpcclient/health/view.go b/agent/rpcclient/health/view.go index 8c9e6d469c..fcea750d7b 100644 --- a/agent/rpcclient/health/view.go +++ b/agent/rpcclient/health/view.go @@ -31,6 +31,7 @@ func newMaterializerRequest(srvReq structs.ServiceSpecificRequest) func(index ui Index: index, Namespace: srvReq.EnterpriseMeta.NamespaceOrEmpty(), Partition: srvReq.EnterpriseMeta.PartitionOrEmpty(), + PeerName: srvReq.PeerName, } if srvReq.Connect { req.Topic = pbsubscribe.Topic_ServiceHealthConnect diff --git a/agent/rpcclient/health/view_test.go b/agent/rpcclient/health/view_test.go index 137a9986a0..50d33d1bb7 100644 --- a/agent/rpcclient/health/view_test.go +++ b/agent/rpcclient/health/view_test.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/consul/proto/pbservice" "github.com/hashicorp/consul/proto/pbsubscribe" "github.com/hashicorp/consul/proto/prototest" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/types" ) @@ -75,6 +76,16 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { t.Skip("too slow for testing.Short") } + t.Run("local data", func(t *testing.T) { + testHealthView_IntegrationWithStore_WithEmptySnapshot(t, structs.DefaultPeerKeyword) + }) + + t.Run("peered data", func(t *testing.T) { + testHealthView_IntegrationWithStore_WithEmptySnapshot(t, "my-peer") + }) +} + +func testHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T, peerName string) { namespace := getNamespace(pbcommon.DefaultEnterpriseMeta.Namespace) streamClient := newStreamClient(validateNamespace(namespace)) @@ -91,6 +102,7 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { req := serviceRequestStub{ serviceRequest: serviceRequest{ ServiceSpecificRequest: structs.ServiceSpecificRequest{ + PeerName: peerName, Datacenter: "dc1", ServiceName: "web", EnterpriseMeta: structs.NewEnterpriseMetaInDefaultPartition(namespace), @@ -107,7 +119,7 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { }, } - runStep(t, "empty snapshot returned", func(t *testing.T) { + testutil.RunStep(t, "empty snapshot returned", func(t *testing.T) { result, err := store.Get(ctx, req) require.NoError(t, err) @@ -117,7 +129,7 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { req.QueryOptions.MinQueryIndex = result.Index }) - runStep(t, "blocks for timeout", func(t *testing.T) { + testutil.RunStep(t, "blocks for timeout", func(t *testing.T) { // Subsequent fetch should block for the timeout start := time.Now() req.QueryOptions.MaxQueryTime = 200 * time.Millisecond @@ -135,13 +147,13 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { var lastResultValue structs.CheckServiceNodes - runStep(t, "blocks until update", func(t *testing.T) { + testutil.RunStep(t, "blocks until update", func(t *testing.T) { // Make another blocking query with a longer timeout and trigger an update // event part way through. start := time.Now() go func() { time.Sleep(200 * time.Millisecond) - streamClient.QueueEvents(newEventServiceHealthRegister(4, 1, "web")) + streamClient.QueueEvents(newEventServiceHealthRegister(4, 1, "web", peerName)) }() req.QueryOptions.MaxQueryTime = time.Second @@ -158,10 +170,13 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { require.Len(t, lastResultValue, 1, "result value should contain the new registration") + require.Equal(t, peerName, lastResultValue[0].Node.PeerName) + require.Equal(t, peerName, lastResultValue[0].Service.PeerName) + req.QueryOptions.MinQueryIndex = result.Index }) - runStep(t, "reconnects and resumes after temporary error", func(t *testing.T) { + testutil.RunStep(t, "reconnects and resumes after temporary error", func(t *testing.T) { streamClient.QueueErr(tempError("broken pipe")) // Next fetch will continue to block until timeout and receive the same @@ -182,7 +197,7 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { req.QueryOptions.MinQueryIndex = result.Index // But an update should still be noticed due to reconnection - streamClient.QueueEvents(newEventServiceHealthRegister(10, 2, "web")) + streamClient.QueueEvents(newEventServiceHealthRegister(10, 2, "web", peerName)) start = time.Now() req.QueryOptions.MaxQueryTime = time.Second @@ -197,10 +212,15 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { require.Len(t, lastResultValue, 2, "result value should contain the new registration") + require.Equal(t, peerName, lastResultValue[0].Node.PeerName) + require.Equal(t, peerName, lastResultValue[0].Service.PeerName) + require.Equal(t, peerName, lastResultValue[1].Node.PeerName) + require.Equal(t, peerName, lastResultValue[1].Service.PeerName) + req.QueryOptions.MinQueryIndex = result.Index }) - runStep(t, "returns non-temporary error to watchers", func(t *testing.T) { + testutil.RunStep(t, "returns non-temporary error to watchers", func(t *testing.T) { // Wait and send the error while fetcher is waiting go func() { time.Sleep(200 * time.Millisecond) @@ -224,7 +244,7 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { req.QueryOptions.MinQueryIndex = result.Index // But an update should still be noticed due to reconnection - streamClient.QueueEvents(newEventServiceHealthRegister(req.QueryOptions.MinQueryIndex+5, 3, "web")) + streamClient.QueueEvents(newEventServiceHealthRegister(req.QueryOptions.MinQueryIndex+5, 3, "web", peerName)) req.QueryOptions.MaxQueryTime = time.Second result, err = store.Get(ctx, req) @@ -233,9 +253,17 @@ func TestHealthView_IntegrationWithStore_WithEmptySnapshot(t *testing.T) { require.True(t, elapsed < time.Second, "Fetch should have returned before the timeout") require.Equal(t, req.QueryOptions.MinQueryIndex+5, result.Index, "result index should not have changed") - require.Len(t, result.Value.(*structs.IndexedCheckServiceNodes).Nodes, 3, + lastResultValue = result.Value.(*structs.IndexedCheckServiceNodes).Nodes + require.Len(t, lastResultValue, 3, "result value should contain the new registration") + require.Equal(t, peerName, lastResultValue[0].Node.PeerName) + require.Equal(t, peerName, lastResultValue[0].Service.PeerName) + require.Equal(t, peerName, lastResultValue[1].Node.PeerName) + require.Equal(t, peerName, lastResultValue[1].Service.PeerName) + require.Equal(t, peerName, lastResultValue[2].Node.PeerName) + require.Equal(t, peerName, lastResultValue[2].Service.PeerName) + req.QueryOptions.MinQueryIndex = result.Index }) } @@ -255,6 +283,16 @@ func TestHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T) { t.Skip("too slow for testing.Short") } + t.Run("local data", func(t *testing.T) { + testHealthView_IntegrationWithStore_WithFullSnapshot(t, structs.DefaultPeerKeyword) + }) + + t.Run("peered data", func(t *testing.T) { + testHealthView_IntegrationWithStore_WithFullSnapshot(t, "my-peer") + }) +} + +func testHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T, peerName string) { namespace := getNamespace("ns2") client := newStreamClient(validateNamespace(namespace)) @@ -265,7 +303,7 @@ func TestHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T) { // Create an initial snapshot of 3 instances on different nodes registerServiceWeb := func(index uint64, nodeNum int) *pbsubscribe.Event { - return newEventServiceHealthRegister(index, nodeNum, "web") + return newEventServiceHealthRegister(index, nodeNum, "web", peerName) } client.QueueEvents( registerServiceWeb(5, 1), @@ -276,6 +314,7 @@ func TestHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T) { req := serviceRequestStub{ serviceRequest: serviceRequest{ ServiceSpecificRequest: structs.ServiceSpecificRequest{ + PeerName: peerName, Datacenter: "dc1", ServiceName: "web", EnterpriseMeta: structs.NewEnterpriseMetaInDefaultPartition(namespace), @@ -285,19 +324,19 @@ func TestHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T) { streamClient: client, } - runStep(t, "full snapshot returned", func(t *testing.T) { + testutil.RunStep(t, "full snapshot returned", func(t *testing.T) { result, err := store.Get(ctx, req) require.NoError(t, err) require.Equal(t, uint64(5), result.Index) - expected := newExpectedNodes("node1", "node2", "node3") + expected := newExpectedNodesInPeer(peerName, "node1", "node2", "node3") expected.Index = 5 prototest.AssertDeepEqual(t, expected, result.Value, cmpCheckServiceNodeNames) req.QueryOptions.MinQueryIndex = result.Index }) - runStep(t, "blocks until deregistration", func(t *testing.T) { + testutil.RunStep(t, "blocks until deregistration", func(t *testing.T) { // Make another blocking query with a longer timeout and trigger an update // event part way through. start := time.Now() @@ -305,7 +344,7 @@ func TestHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T) { time.Sleep(200 * time.Millisecond) // Deregister instance on node1 - client.QueueEvents(newEventServiceHealthDeregister(20, 1, "web")) + client.QueueEvents(newEventServiceHealthDeregister(20, 1, "web", peerName)) }() req.QueryOptions.MaxQueryTime = time.Second @@ -318,14 +357,14 @@ func TestHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T) { "Fetch should have returned before the timeout") require.Equal(t, uint64(20), result.Index) - expected := newExpectedNodes("node2", "node3") + expected := newExpectedNodesInPeer(peerName, "node2", "node3") expected.Index = 20 prototest.AssertDeepEqual(t, expected, result.Value, cmpCheckServiceNodeNames) req.QueryOptions.MinQueryIndex = result.Index }) - runStep(t, "server reload is respected", func(t *testing.T) { + testutil.RunStep(t, "server reload is respected", func(t *testing.T) { // Simulates the server noticing the request's ACL token privs changing. To // detect this we'll queue up the new snapshot as a different set of nodes // to the first. @@ -348,14 +387,14 @@ func TestHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T) { "Fetch should have returned before the timeout") require.Equal(t, uint64(50), result.Index) - expected := newExpectedNodes("node3", "node4", "node5") + expected := newExpectedNodesInPeer(peerName, "node3", "node4", "node5") expected.Index = 50 prototest.AssertDeepEqual(t, expected, result.Value, cmpCheckServiceNodeNames) req.QueryOptions.MinQueryIndex = result.Index }) - runStep(t, "reconnects and receives new snapshot when server state has changed", func(t *testing.T) { + testutil.RunStep(t, "reconnects and receives new snapshot when server state has changed", func(t *testing.T) { client.QueueErr(tempError("temporary connection error")) client.QueueEvents( @@ -375,18 +414,21 @@ func TestHealthView_IntegrationWithStore_WithFullSnapshot(t *testing.T) { "Fetch should have returned before the timeout") require.Equal(t, uint64(50), result.Index) - expected := newExpectedNodes("node3", "node4", "node5") + expected := newExpectedNodesInPeer(peerName, "node3", "node4", "node5") expected.Index = 50 prototest.AssertDeepEqual(t, expected, result.Value, cmpCheckServiceNodeNames) }) } -func newExpectedNodes(nodes ...string) *structs.IndexedCheckServiceNodes { +func newExpectedNodesInPeer(peerName string, nodes ...string) *structs.IndexedCheckServiceNodes { result := &structs.IndexedCheckServiceNodes{} result.QueryMeta.Backend = structs.QueryBackendStreaming for _, node := range nodes { result.Nodes = append(result.Nodes, structs.CheckServiceNode{ - Node: &structs.Node{Node: node}, + Node: &structs.Node{ + Node: node, + PeerName: peerName, + }, }) } return result @@ -401,6 +443,16 @@ var cmpCheckServiceNodeNames = cmp.Options{ } func TestHealthView_IntegrationWithStore_EventBatches(t *testing.T) { + t.Run("local data", func(t *testing.T) { + testHealthView_IntegrationWithStore_EventBatches(t, structs.DefaultPeerKeyword) + }) + + t.Run("peered data", func(t *testing.T) { + testHealthView_IntegrationWithStore_EventBatches(t, "my-peer") + }) +} + +func testHealthView_IntegrationWithStore_EventBatches(t *testing.T, peerName string) { namespace := getNamespace("ns3") client := newStreamClient(validateNamespace(namespace)) @@ -411,9 +463,9 @@ func TestHealthView_IntegrationWithStore_EventBatches(t *testing.T) { // Create an initial snapshot of 3 instances but in a single event batch batchEv := newEventBatchWithEvents( - newEventServiceHealthRegister(5, 1, "web"), - newEventServiceHealthRegister(5, 2, "web"), - newEventServiceHealthRegister(5, 3, "web")) + newEventServiceHealthRegister(5, 1, "web", peerName), + newEventServiceHealthRegister(5, 2, "web", peerName), + newEventServiceHealthRegister(5, 3, "web", peerName)) client.QueueEvents( batchEv, newEndOfSnapshotEvent(5)) @@ -421,6 +473,7 @@ func TestHealthView_IntegrationWithStore_EventBatches(t *testing.T) { req := serviceRequestStub{ serviceRequest: serviceRequest{ ServiceSpecificRequest: structs.ServiceSpecificRequest{ + PeerName: peerName, Datacenter: "dc1", ServiceName: "web", EnterpriseMeta: structs.NewEnterpriseMetaInDefaultPartition(namespace), @@ -430,26 +483,26 @@ func TestHealthView_IntegrationWithStore_EventBatches(t *testing.T) { streamClient: client, } - runStep(t, "full snapshot returned", func(t *testing.T) { + testutil.RunStep(t, "full snapshot returned", func(t *testing.T) { result, err := store.Get(ctx, req) require.NoError(t, err) require.Equal(t, uint64(5), result.Index) - expected := newExpectedNodes("node1", "node2", "node3") + expected := newExpectedNodesInPeer(peerName, "node1", "node2", "node3") expected.Index = 5 prototest.AssertDeepEqual(t, expected, result.Value, cmpCheckServiceNodeNames) req.QueryOptions.MinQueryIndex = result.Index }) - runStep(t, "batched updates work too", func(t *testing.T) { + testutil.RunStep(t, "batched updates work too", func(t *testing.T) { // Simulate multiple registrations happening in one Txn (so all have same // index) batchEv := newEventBatchWithEvents( // Deregister an existing node - newEventServiceHealthDeregister(20, 1, "web"), + newEventServiceHealthDeregister(20, 1, "web", peerName), // Register another - newEventServiceHealthRegister(20, 4, "web"), + newEventServiceHealthRegister(20, 4, "web", peerName), ) client.QueueEvents(batchEv) req.QueryOptions.MaxQueryTime = time.Second @@ -457,7 +510,7 @@ func TestHealthView_IntegrationWithStore_EventBatches(t *testing.T) { require.NoError(t, err) require.Equal(t, uint64(20), result.Index) - expected := newExpectedNodes("node2", "node3", "node4") + expected := newExpectedNodesInPeer(peerName, "node2", "node3", "node4") expected.Index = 20 prototest.AssertDeepEqual(t, expected, result.Value, cmpCheckServiceNodeNames) @@ -466,6 +519,16 @@ func TestHealthView_IntegrationWithStore_EventBatches(t *testing.T) { } func TestHealthView_IntegrationWithStore_Filtering(t *testing.T) { + t.Run("local data", func(t *testing.T) { + testHealthView_IntegrationWithStore_Filtering(t, structs.DefaultPeerKeyword) + }) + + t.Run("peered data", func(t *testing.T) { + testHealthView_IntegrationWithStore_Filtering(t, "my-peer") + }) +} + +func testHealthView_IntegrationWithStore_Filtering(t *testing.T, peerName string) { namespace := getNamespace("ns3") streamClient := newStreamClient(validateNamespace(namespace)) @@ -478,6 +541,7 @@ func TestHealthView_IntegrationWithStore_Filtering(t *testing.T) { req := serviceRequestStub{ serviceRequest: serviceRequest{ ServiceSpecificRequest: structs.ServiceSpecificRequest{ + PeerName: peerName, Datacenter: "dc1", ServiceName: "web", EnterpriseMeta: structs.NewEnterpriseMetaInDefaultPartition(namespace), @@ -492,39 +556,39 @@ func TestHealthView_IntegrationWithStore_Filtering(t *testing.T) { // Create an initial snapshot of 3 instances but in a single event batch batchEv := newEventBatchWithEvents( - newEventServiceHealthRegister(5, 1, "web"), - newEventServiceHealthRegister(5, 2, "web"), - newEventServiceHealthRegister(5, 3, "web")) + newEventServiceHealthRegister(5, 1, "web", peerName), + newEventServiceHealthRegister(5, 2, "web", peerName), + newEventServiceHealthRegister(5, 3, "web", peerName)) streamClient.QueueEvents( batchEv, newEndOfSnapshotEvent(5)) - runStep(t, "filtered snapshot returned", func(t *testing.T) { + testutil.RunStep(t, "filtered snapshot returned", func(t *testing.T) { result, err := store.Get(ctx, req) require.NoError(t, err) require.Equal(t, uint64(5), result.Index) - expected := newExpectedNodes("node2") + expected := newExpectedNodesInPeer(peerName, "node2") expected.Index = 5 prototest.AssertDeepEqual(t, expected, result.Value, cmpCheckServiceNodeNames) req.QueryOptions.MinQueryIndex = result.Index }) - runStep(t, "filtered updates work too", func(t *testing.T) { + testutil.RunStep(t, "filtered updates work too", func(t *testing.T) { // Simulate multiple registrations happening in one Txn (all have same index) batchEv := newEventBatchWithEvents( // Deregister an existing node - newEventServiceHealthDeregister(20, 1, "web"), + newEventServiceHealthDeregister(20, 1, "web", peerName), // Register another - newEventServiceHealthRegister(20, 4, "web"), + newEventServiceHealthRegister(20, 4, "web", peerName), ) streamClient.QueueEvents(batchEv) result, err := store.Get(ctx, req) require.NoError(t, err) require.Equal(t, uint64(20), result.Index) - expected := newExpectedNodes("node2") + expected := newExpectedNodesInPeer(peerName, "node2") expected.Index = 20 prototest.AssertDeepEqual(t, expected, result.Value, cmpCheckServiceNodeNames) }) @@ -550,7 +614,7 @@ func (r serviceRequestStub) NewMaterializer() (submatview.Materializer, error) { return submatview.NewRPCMaterializer(r.streamClient, deps), nil } -func newEventServiceHealthRegister(index uint64, nodeNum int, svc string) *pbsubscribe.Event { +func newEventServiceHealthRegister(index uint64, nodeNum int, svc string, peerName string) *pbsubscribe.Event { node := fmt.Sprintf("node%d", nodeNum) nodeID := types.NodeID(fmt.Sprintf("11111111-2222-3333-4444-%012d", nodeNum)) addr := fmt.Sprintf("10.10.%d.%d", nodeNum/256, nodeNum%256) @@ -566,15 +630,17 @@ func newEventServiceHealthRegister(index uint64, nodeNum int, svc string) *pbsub Node: node, Address: addr, Datacenter: "dc1", + PeerName: peerName, RaftIndex: &pbcommon.RaftIndex{ CreateIndex: index, ModifyIndex: index, }, }, Service: &pbservice.NodeService{ - ID: svc, - Service: svc, - Port: 8080, + ID: svc, + Service: svc, + PeerName: peerName, + Port: 8080, RaftIndex: &pbcommon.RaftIndex{ CreateIndex: index, ModifyIndex: index, @@ -586,7 +652,7 @@ func newEventServiceHealthRegister(index uint64, nodeNum int, svc string) *pbsub } } -func newEventServiceHealthDeregister(index uint64, nodeNum int, svc string) *pbsubscribe.Event { +func newEventServiceHealthDeregister(index uint64, nodeNum int, svc string, peerName string) *pbsubscribe.Event { node := fmt.Sprintf("node%d", nodeNum) return &pbsubscribe.Event{ @@ -596,12 +662,14 @@ func newEventServiceHealthDeregister(index uint64, nodeNum int, svc string) *pbs Op: pbsubscribe.CatalogOp_Deregister, CheckServiceNode: &pbservice.CheckServiceNode{ Node: &pbservice.Node{ - Node: node, + Node: node, + PeerName: peerName, }, Service: &pbservice.NodeService{ - ID: svc, - Service: svc, - Port: 8080, + ID: svc, + Service: svc, + PeerName: peerName, + Port: 8080, Weights: &pbservice.Weights{ Passing: 1, Warning: 1, @@ -666,13 +734,6 @@ func validateNamespace(ns string) func(request *pbsubscribe.SubscribeRequest) er } } -func runStep(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } -} - func TestNewFilterEvaluator(t *testing.T) { type testCase struct { name string diff --git a/agent/service_manager.go b/agent/service_manager.go index 29c538e88e..f9f449874b 100644 --- a/agent/service_manager.go +++ b/agent/service_manager.go @@ -4,12 +4,11 @@ import ( "fmt" "sync" - "github.com/imdario/mergo" - "github.com/mitchellh/copystructure" "golang.org/x/net/context" "github.com/hashicorp/consul/agent/cache" cachetype "github.com/hashicorp/consul/agent/cache-types" + "github.com/hashicorp/consul/agent/consul" "github.com/hashicorp/consul/agent/structs" ) @@ -146,7 +145,7 @@ func (w *serviceConfigWatch) register(ctx context.Context) error { // Merge the local registration with the central defaults and update this service // in the local state. - merged, err := mergeServiceConfig(serviceDefaults, w.registration.Service) + merged, err := consul.MergeServiceConfig(serviceDefaults, w.registration.Service) if err != nil { return err } @@ -276,7 +275,7 @@ func (w *serviceConfigWatch) handleUpdate(ctx context.Context, event cache.Updat // Merge the local registration with the central defaults and update this service // in the local state. - merged, err := mergeServiceConfig(serviceDefaults, w.registration.Service) + merged, err := consul.MergeServiceConfig(serviceDefaults, w.registration.Service) if err != nil { return err } @@ -348,114 +347,3 @@ func makeConfigRequest(bd BaseDeps, addReq AddServiceRequest) *structs.ServiceCo } return req } - -// mergeServiceConfig from service into defaults to produce the final effective -// config for the watched service. -func mergeServiceConfig(defaults *structs.ServiceConfigResponse, service *structs.NodeService) (*structs.NodeService, error) { - if defaults == nil { - return service, nil - } - - // We don't want to change s.registration in place since it is our source of - // truth about what was actually registered before defaults applied. So copy - // it first. - nsRaw, err := copystructure.Copy(service) - if err != nil { - return nil, err - } - - // Merge proxy defaults - ns := nsRaw.(*structs.NodeService) - - if err := mergo.Merge(&ns.Proxy.Config, defaults.ProxyConfig); err != nil { - return nil, err - } - if err := mergo.Merge(&ns.Proxy.Expose, defaults.Expose); err != nil { - return nil, err - } - - if ns.Proxy.MeshGateway.Mode == structs.MeshGatewayModeDefault { - ns.Proxy.MeshGateway.Mode = defaults.MeshGateway.Mode - } - if ns.Proxy.Mode == structs.ProxyModeDefault { - ns.Proxy.Mode = defaults.Mode - } - if ns.Proxy.TransparentProxy.OutboundListenerPort == 0 { - ns.Proxy.TransparentProxy.OutboundListenerPort = defaults.TransparentProxy.OutboundListenerPort - } - if !ns.Proxy.TransparentProxy.DialedDirectly { - ns.Proxy.TransparentProxy.DialedDirectly = defaults.TransparentProxy.DialedDirectly - } - - // remoteUpstreams contains synthetic Upstreams generated from central config (service-defaults.UpstreamConfigs). - remoteUpstreams := make(map[structs.ServiceID]structs.Upstream) - - for _, us := range defaults.UpstreamIDConfigs { - parsed, err := structs.ParseUpstreamConfigNoDefaults(us.Config) - if err != nil { - return nil, fmt.Errorf("failed to parse upstream config map for %s: %v", us.Upstream.String(), err) - } - - remoteUpstreams[us.Upstream] = structs.Upstream{ - DestinationNamespace: us.Upstream.NamespaceOrDefault(), - DestinationPartition: us.Upstream.PartitionOrDefault(), - DestinationName: us.Upstream.ID, - Config: us.Config, - MeshGateway: parsed.MeshGateway, - CentrallyConfigured: true, - } - } - - // localUpstreams stores the upstreams seen from the local registration so that we can merge in the synthetic entries. - // In transparent proxy mode ns.Proxy.Upstreams will likely be empty because users do not need to define upstreams explicitly. - // So to store upstream-specific flags from central config, we add entries to ns.Proxy.Upstream with those values. - localUpstreams := make(map[structs.ServiceID]struct{}) - - // Merge upstream defaults into the local registration - for i := range ns.Proxy.Upstreams { - // Get a pointer not a value copy of the upstream struct - us := &ns.Proxy.Upstreams[i] - if us.DestinationType != "" && us.DestinationType != structs.UpstreamDestTypeService { - continue - } - localUpstreams[us.DestinationID()] = struct{}{} - - remoteCfg, ok := remoteUpstreams[us.DestinationID()] - if !ok { - // No config defaults to merge - continue - } - - // The local upstream config mode has the highest precedence, so only overwrite when it's set to the default - if us.MeshGateway.Mode == structs.MeshGatewayModeDefault { - us.MeshGateway.Mode = remoteCfg.MeshGateway.Mode - } - - // Merge in everything else that is read from the map - if err := mergo.Merge(&us.Config, remoteCfg.Config); err != nil { - return nil, err - } - - // Delete the mesh gateway key from opaque config since this is the value that was resolved from - // the servers and NOT the final merged value for this upstream. - // Note that we use the "mesh_gateway" key and not other variants like "MeshGateway" because - // UpstreamConfig.MergeInto and ResolveServiceConfig only use "mesh_gateway". - delete(us.Config, "mesh_gateway") - } - - // Ensure upstreams present in central config are represented in the local configuration. - // This does not apply outside of transparent mode because in that situation every possible upstream already exists - // inside of ns.Proxy.Upstreams. - if ns.Proxy.Mode == structs.ProxyModeTransparent { - for id, remote := range remoteUpstreams { - if _, ok := localUpstreams[id]; ok { - // Remote upstream is already present locally - continue - } - - ns.Proxy.Upstreams = append(ns.Proxy.Upstreams, remote) - } - } - - return ns, err -} diff --git a/agent/service_manager_test.go b/agent/service_manager_test.go index b215977737..cbbd9e5e9d 100644 --- a/agent/service_manager_test.go +++ b/agent/service_manager_test.go @@ -8,9 +8,6 @@ import ( "path/filepath" "testing" - "github.com/mitchellh/copystructure" - - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/hashicorp/consul/agent/structs" @@ -860,451 +857,3 @@ func convertToMap(v interface{}) (map[string]interface{}, error) { return raw, nil } - -func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) { - type args struct { - defaults *structs.ServiceConfigResponse - service *structs.NodeService - } - tests := []struct { - name string - args args - want *structs.NodeService - }{ - { - name: "new config fields", - args: args{ - defaults: &structs.ServiceConfigResponse{ - UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ - { - Upstream: structs.ServiceID{ - ID: "zap", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }, - Config: map[string]interface{}{ - "passive_health_check": map[string]interface{}{ - "Interval": int64(10), - "MaxFailures": int64(2), - }, - "mesh_gateway": map[string]interface{}{ - "Mode": "local", - }, - "protocol": "grpc", - }, - }, - }, - }, - service: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zap", - }, - }, - }, - }, - }, - want: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zap", - Config: map[string]interface{}{ - "passive_health_check": map[string]interface{}{ - "Interval": int64(10), - "MaxFailures": int64(2), - }, - "protocol": "grpc", - }, - MeshGateway: structs.MeshGatewayConfig{ - Mode: structs.MeshGatewayModeLocal, - }, - }, - }, - }, - }, - }, - { - name: "remote upstream config expands local upstream list in transparent mode", - args: args{ - defaults: &structs.ServiceConfigResponse{ - UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ - { - Upstream: structs.ServiceID{ - ID: "zap", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }, - Config: map[string]interface{}{ - "protocol": "grpc", - }, - }, - }, - }, - service: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Mode: structs.ProxyModeTransparent, - TransparentProxy: structs.TransparentProxyConfig{ - OutboundListenerPort: 10101, - DialedDirectly: true, - }, - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zip", - LocalBindPort: 8080, - Config: map[string]interface{}{ - "protocol": "http", - }, - }, - }, - }, - }, - }, - want: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Mode: structs.ProxyModeTransparent, - TransparentProxy: structs.TransparentProxyConfig{ - OutboundListenerPort: 10101, - DialedDirectly: true, - }, - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zip", - LocalBindPort: 8080, - Config: map[string]interface{}{ - "protocol": "http", - }, - }, - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zap", - Config: map[string]interface{}{ - "protocol": "grpc", - }, - CentrallyConfigured: true, - }, - }, - }, - }, - }, - { - name: "remote upstream config not added to local upstream list outside of transparent mode", - args: args{ - defaults: &structs.ServiceConfigResponse{ - UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ - { - Upstream: structs.ServiceID{ - ID: "zap", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }, - Config: map[string]interface{}{ - "protocol": "grpc", - }, - }, - }, - }, - service: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Mode: structs.ProxyModeDirect, - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zip", - LocalBindPort: 8080, - Config: map[string]interface{}{ - "protocol": "http", - }, - }, - }, - }, - }, - }, - want: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Mode: structs.ProxyModeDirect, - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zip", - LocalBindPort: 8080, - Config: map[string]interface{}{ - "protocol": "http", - }, - }, - }, - }, - }, - }, - { - name: "upstream mode from remote defaults overrides local default", - args: args{ - defaults: &structs.ServiceConfigResponse{ - UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ - { - Upstream: structs.ServiceID{ - ID: "zap", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }, - Config: map[string]interface{}{ - "mesh_gateway": map[string]interface{}{ - "Mode": "local", - }, - }, - }, - }, - }, - service: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - MeshGateway: structs.MeshGatewayConfig{ - Mode: structs.MeshGatewayModeRemote, - }, - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zap", - }, - }, - }, - }, - }, - want: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - MeshGateway: structs.MeshGatewayConfig{ - Mode: structs.MeshGatewayModeRemote, - }, - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zap", - Config: map[string]interface{}{}, - MeshGateway: structs.MeshGatewayConfig{ - Mode: structs.MeshGatewayModeLocal, - }, - }, - }, - }, - }, - }, - { - name: "mode in local upstream config overrides all", - args: args{ - defaults: &structs.ServiceConfigResponse{ - UpstreamIDConfigs: structs.OpaqueUpstreamConfigs{ - { - Upstream: structs.ServiceID{ - ID: "zap", - EnterpriseMeta: *structs.DefaultEnterpriseMetaInDefaultPartition(), - }, - Config: map[string]interface{}{ - "mesh_gateway": map[string]interface{}{ - "Mode": "local", - }, - }, - }, - }, - }, - service: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - MeshGateway: structs.MeshGatewayConfig{ - Mode: structs.MeshGatewayModeRemote, - }, - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zap", - MeshGateway: structs.MeshGatewayConfig{ - Mode: structs.MeshGatewayModeNone, - }, - }, - }, - }, - }, - }, - want: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - MeshGateway: structs.MeshGatewayConfig{ - Mode: structs.MeshGatewayModeRemote, - }, - Upstreams: structs.Upstreams{ - structs.Upstream{ - DestinationNamespace: "default", - DestinationPartition: "default", - DestinationName: "zap", - Config: map[string]interface{}{}, - MeshGateway: structs.MeshGatewayConfig{ - Mode: structs.MeshGatewayModeNone, - }, - }, - }, - }, - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - defaultsCopy, err := copystructure.Copy(tt.args.defaults) - require.NoError(t, err) - - got, err := mergeServiceConfig(tt.args.defaults, tt.args.service) - require.NoError(t, err) - assert.Equal(t, tt.want, got) - - // The input defaults must not be modified by the merge. - // See PR #10647 - assert.Equal(t, tt.args.defaults, defaultsCopy) - }) - } -} - -func Test_mergeServiceConfig_TransparentProxy(t *testing.T) { - type args struct { - defaults *structs.ServiceConfigResponse - service *structs.NodeService - } - tests := []struct { - name string - args args - want *structs.NodeService - }{ - { - name: "inherit transparent proxy settings", - args: args{ - defaults: &structs.ServiceConfigResponse{ - Mode: structs.ProxyModeTransparent, - TransparentProxy: structs.TransparentProxyConfig{ - OutboundListenerPort: 10101, - DialedDirectly: true, - }, - }, - service: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Mode: structs.ProxyModeDefault, - TransparentProxy: structs.TransparentProxyConfig{}, - }, - }, - }, - want: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Mode: structs.ProxyModeTransparent, - TransparentProxy: structs.TransparentProxyConfig{ - OutboundListenerPort: 10101, - DialedDirectly: true, - }, - }, - }, - }, - { - name: "override transparent proxy settings", - args: args{ - defaults: &structs.ServiceConfigResponse{ - Mode: structs.ProxyModeTransparent, - TransparentProxy: structs.TransparentProxyConfig{ - OutboundListenerPort: 10101, - DialedDirectly: false, - }, - }, - service: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Mode: structs.ProxyModeDirect, - TransparentProxy: structs.TransparentProxyConfig{ - OutboundListenerPort: 808, - DialedDirectly: true, - }, - }, - }, - }, - want: &structs.NodeService{ - ID: "foo-proxy", - Service: "foo-proxy", - Proxy: structs.ConnectProxyConfig{ - DestinationServiceName: "foo", - DestinationServiceID: "foo", - Mode: structs.ProxyModeDirect, - TransparentProxy: structs.TransparentProxyConfig{ - OutboundListenerPort: 808, - DialedDirectly: true, - }, - }, - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - defaultsCopy, err := copystructure.Copy(tt.args.defaults) - require.NoError(t, err) - - got, err := mergeServiceConfig(tt.args.defaults, tt.args.service) - require.NoError(t, err) - assert.Equal(t, tt.want, got) - - // The input defaults must not be modified by the merge. - // See PR #10647 - assert.Equal(t, tt.args.defaults, defaultsCopy) - }) - } -} diff --git a/agent/session_endpoint.go b/agent/session_endpoint.go index 74228cbb19..d1b6dd7cf1 100644 --- a/agent/session_endpoint.go +++ b/agent/session_endpoint.go @@ -3,6 +3,7 @@ package agent import ( "fmt" "net/http" + "strings" "time" "github.com/hashicorp/consul/agent/structs" @@ -69,11 +70,7 @@ func (s *HTTPHandlers) SessionDestroy(resp http.ResponseWriter, req *http.Reques } // Pull out the session id - var err error - args.Session.ID, err = getPathSuffixUnescaped(req.URL.Path, "/v1/session/destroy/") - if err != nil { - return nil, err - } + args.Session.ID = strings.TrimPrefix(req.URL.Path, "/v1/session/destroy/") if args.Session.ID == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing session"} } @@ -96,11 +93,7 @@ func (s *HTTPHandlers) SessionRenew(resp http.ResponseWriter, req *http.Request) } // Pull out the session id - var err error - args.SessionID, err = getPathSuffixUnescaped(req.URL.Path, "/v1/session/renew/") - if err != nil { - return nil, err - } + args.SessionID = strings.TrimPrefix(req.URL.Path, "/v1/session/renew/") args.Session = args.SessionID if args.SessionID == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing session"} @@ -127,11 +120,7 @@ func (s *HTTPHandlers) SessionGet(resp http.ResponseWriter, req *http.Request) ( } // Pull out the session id - var err error - args.SessionID, err = getPathSuffixUnescaped(req.URL.Path, "/v1/session/info/") - if err != nil { - return nil, err - } + args.SessionID = strings.TrimPrefix(req.URL.Path, "/v1/session/info/") args.Session = args.SessionID if args.SessionID == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing session"} @@ -184,11 +173,7 @@ func (s *HTTPHandlers) SessionsForNode(resp http.ResponseWriter, req *http.Reque } // Pull out the node name - var err error - args.Node, err = getPathSuffixUnescaped(req.URL.Path, "/v1/session/node/") - if err != nil { - return nil, err - } + args.Node = strings.TrimPrefix(req.URL.Path, "/v1/session/node/") if args.Node == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing node name"} } diff --git a/agent/setup.go b/agent/setup.go index bbe54ae06e..b09537a1e2 100644 --- a/agent/setup.go +++ b/agent/setup.go @@ -1,15 +1,12 @@ package agent import ( - "context" "fmt" "io" "net" - "net/http" "sync" "time" - "github.com/armon/go-metrics" "github.com/armon/go-metrics/prometheus" "github.com/hashicorp/go-hclog" "google.golang.org/grpc/grpclog" @@ -41,18 +38,12 @@ import ( type BaseDeps struct { consul.Deps // TODO: un-embed - RuntimeConfig *config.RuntimeConfig - MetricsHandler MetricsHandler - AutoConfig *autoconf.AutoConfig // TODO: use an interface - Cache *cache.Cache - ViewStore *submatview.Store - WatchedFiles []string -} - -// MetricsHandler provides an http.Handler for displaying metrics. -type MetricsHandler interface { - DisplayMetrics(resp http.ResponseWriter, req *http.Request) (interface{}, error) - Stream(ctx context.Context, encoder metrics.Encoder) + RuntimeConfig *config.RuntimeConfig + MetricsConfig *lib.MetricsConfig + AutoConfig *autoconf.AutoConfig // TODO: use an interface + Cache *cache.Cache + ViewStore *submatview.Store + WatchedFiles []string } type ConfigLoader func(source config.Source) (config.LoadResult, error) @@ -90,7 +81,8 @@ func NewBaseDeps(configLoader ConfigLoader, logOut io.Writer) (BaseDeps, error) cfg.Telemetry.PrometheusOpts.GaugeDefinitions = gauges cfg.Telemetry.PrometheusOpts.CounterDefinitions = counters cfg.Telemetry.PrometheusOpts.SummaryDefinitions = summaries - d.MetricsHandler, err = lib.InitTelemetry(cfg.Telemetry) + + d.MetricsConfig, err = lib.InitTelemetry(cfg.Telemetry, d.Logger) if err != nil { return d, fmt.Errorf("failed to initialize telemetry: %w", err) } @@ -210,6 +202,13 @@ func getPrometheusDefs(cfg lib.TelemetryConfig, isServer bool) ([]prometheus.Gau }, } + serverGauges := []prometheus.GaugeDefinition{ + { + Name: []string{"server", "isLeader"}, + Help: "Tracks if the server is a leader.", + }, + } + // Build slice of slices for all gauge definitions var gauges = [][]prometheus.GaugeDefinition{ cache.Gauges, @@ -222,6 +221,7 @@ func getPrometheusDefs(cfg lib.TelemetryConfig, isServer bool) ([]prometheus.Gau CertExpirationGauges, Gauges, raftGauges, + serverGauges, } // TODO(ffmmm): conditionally add only leader specific metrics to gauges, counters, summaries, etc diff --git a/agent/structs/check_definition.go b/agent/structs/check_definition.go index c991c993ca..5f204ebf61 100644 --- a/agent/structs/check_definition.go +++ b/agent/structs/check_definition.go @@ -33,6 +33,7 @@ type CheckDefinition struct { Body string DisableRedirects bool TCP string + UDP string Interval time.Duration DockerContainerID string Shell string @@ -215,6 +216,7 @@ func (c *CheckDefinition) CheckType() *CheckType { DisableRedirects: c.DisableRedirects, OutputMaxSize: c.OutputMaxSize, TCP: c.TCP, + UDP: c.UDP, Interval: c.Interval, DockerContainerID: c.DockerContainerID, Shell: c.Shell, diff --git a/agent/structs/check_type.go b/agent/structs/check_type.go index 0c89a00f22..7978955039 100644 --- a/agent/structs/check_type.go +++ b/agent/structs/check_type.go @@ -39,6 +39,7 @@ type CheckType struct { Body string DisableRedirects bool TCP string + UDP string Interval time.Duration AliasNode string AliasService string @@ -179,13 +180,13 @@ func (t *CheckType) UnmarshalJSON(data []byte) (err error) { // Validate returns an error message if the check is invalid func (c *CheckType) Validate() error { - intervalCheck := c.IsScript() || c.HTTP != "" || c.TCP != "" || c.GRPC != "" || c.H2PING != "" + intervalCheck := c.IsScript() || c.HTTP != "" || c.TCP != "" || c.UDP != "" || c.GRPC != "" || c.H2PING != "" if c.Interval > 0 && c.TTL > 0 { return fmt.Errorf("Interval and TTL cannot both be specified") } if intervalCheck && c.Interval <= 0 { - return fmt.Errorf("Interval must be > 0 for Script, HTTP, H2PING, or TCP checks") + return fmt.Errorf("Interval must be > 0 for Script, HTTP, H2PING, TCP or UDP checks") } if intervalCheck && c.IsAlias() { return fmt.Errorf("Interval cannot be set for Alias checks") @@ -241,6 +242,10 @@ func (c *CheckType) IsTCP() bool { return c.TCP != "" && c.Interval > 0 } +func (c *CheckType) IsUDP() bool { + return c.UDP != "" && c.Interval > 0 +} + // IsDocker returns true when checking a docker container. func (c *CheckType) IsDocker() bool { return c.IsScript() && c.DockerContainerID != "" && c.Interval > 0 @@ -266,6 +271,8 @@ func (c *CheckType) Type() string { return "ttl" case c.IsTCP(): return "tcp" + case c.IsUDP(): + return "udp" case c.IsAlias(): return "alias" case c.IsDocker(): diff --git a/agent/structs/config_entry.go b/agent/structs/config_entry.go index fabb5dae91..05d7480cbb 100644 --- a/agent/structs/config_entry.go +++ b/agent/structs/config_entry.go @@ -1,7 +1,9 @@ package structs import ( + "errors" "fmt" + "net" "strconv" "strings" "time" @@ -61,7 +63,7 @@ type ConfigEntry interface { // CanRead and CanWrite return whether or not the given Authorizer // has permission to read or write to the config entry, respectively. - // TODO(acl-error-enhancements) This should be ACLResolveResult or similar but we have to wait until we move things to the acl package + // TODO(acl-error-enhancements) This should be resolver.Result or similar but we have to wait until we move things to the acl package CanRead(acl.Authorizer) error CanWrite(acl.Authorizer) error @@ -94,15 +96,17 @@ type WarningConfigEntry interface { // ServiceConfiguration is the top-level struct for the configuration of a service // across the entire cluster. type ServiceConfigEntry struct { - Kind string - Name string - Protocol string - Mode ProxyMode `json:",omitempty"` - TransparentProxy TransparentProxyConfig `json:",omitempty" alias:"transparent_proxy"` - MeshGateway MeshGatewayConfig `json:",omitempty" alias:"mesh_gateway"` - Expose ExposeConfig `json:",omitempty"` - ExternalSNI string `json:",omitempty" alias:"external_sni"` - UpstreamConfig *UpstreamConfiguration `json:",omitempty" alias:"upstream_config"` + Kind string + Name string + Protocol string + Mode ProxyMode `json:",omitempty"` + TransparentProxy TransparentProxyConfig `json:",omitempty" alias:"transparent_proxy"` + MeshGateway MeshGatewayConfig `json:",omitempty" alias:"mesh_gateway"` + Expose ExposeConfig `json:",omitempty"` + ExternalSNI string `json:",omitempty" alias:"external_sni"` + UpstreamConfig *UpstreamConfiguration `json:",omitempty" alias:"upstream_config"` + Destination *DestinationConfig `json:",omitempty"` + MaxInboundConnections int `json:",omitempty" alias:"max_inbound_connections"` Meta map[string]string `json:",omitempty"` acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` @@ -175,6 +179,12 @@ func (e *ServiceConfigEntry) Validate() error { validationErr := validateConfigEntryMeta(e.Meta) + // External endpoints are invalid with an existing service's upstream configuration + if e.UpstreamConfig != nil && e.Destination != nil { + validationErr = multierror.Append(validationErr, errors.New("UpstreamConfig and Destination are mutually exclusive for service defaults")) + return validationErr + } + if e.UpstreamConfig != nil { for _, override := range e.UpstreamConfig.Overrides { err := override.ValidateWithName() @@ -190,9 +200,38 @@ func (e *ServiceConfigEntry) Validate() error { } } + if e.Destination != nil { + if err := validateEndpointAddress(e.Destination.Address); err != nil { + validationErr = multierror.Append(validationErr, fmt.Errorf("Destination address is invalid %w", err)) + } + + if e.Destination.Port < 1 || e.Destination.Port > 65535 { + validationErr = multierror.Append(validationErr, fmt.Errorf("Invalid Port number %d", e.Destination.Port)) + } + } + return validationErr } +func validateEndpointAddress(address string) error { + var valid bool + + ip := net.ParseIP(address) + valid = ip != nil + + _, _, err := net.ParseCIDR(address) + valid = valid || err == nil + + // Since we don't know if this will be a TLS connection, setting tlsEnabled to false will be more permissive with wildcards + err = validateHost(false, address) + valid = valid || err == nil + + if !valid { + return fmt.Errorf("Could not validate address %s as an IP, CIDR block or Hostname", address) + } + return nil +} + func (e *ServiceConfigEntry) CanRead(authz acl.Authorizer) error { var authzContext acl.AuthorizerContext e.FillAuthzContext(&authzContext) @@ -253,6 +292,25 @@ func (c *UpstreamConfiguration) Clone() *UpstreamConfiguration { return &c2 } +// DestinationConfig represents a virtual service, i.e. one that is external to Consul +type DestinationConfig struct { + // Address of the endpoint; hostname, IP, or CIDR + Address string `json:",omitempty"` + + // Port allowed within this endpoint + Port int `json:",omitempty"` +} + +func (d *DestinationConfig) HasHostname() bool { + ip := net.ParseIP(d.Address) + return ip == nil +} + +func (d *DestinationConfig) HasIP() bool { + ip := net.ParseIP(d.Address) + return ip != nil +} + // ProxyConfigEntry is the top-level struct for global proxy configuration defaults. type ProxyConfigEntry struct { Kind string @@ -995,6 +1053,7 @@ type ServiceConfigResponse struct { Expose ExposeConfig `json:",omitempty"` TransparentProxy TransparentProxyConfig `json:",omitempty"` Mode ProxyMode `json:",omitempty"` + Destination DestinationConfig `json:",omitempty"` Meta map[string]string `json:",omitempty"` QueryMeta } diff --git a/agent/structs/config_entry_gateways.go b/agent/structs/config_entry_gateways.go index 4aadd8ef9a..c0abcd59db 100644 --- a/agent/structs/config_entry_gateways.go +++ b/agent/structs/config_entry_gateways.go @@ -275,8 +275,8 @@ func (e *IngressGatewayConfigEntry) Validate() error { } // Validate that http features aren't being used with tcp or another non-supported protocol. - if listener.Protocol != "http" && len(listener.Services) > 1 { - return fmt.Errorf("Multiple services per listener are only supported for protocol = 'http' (listener on port %d)", + if !IsProtocolHTTPLike(listener.Protocol) && len(listener.Services) > 1 { + return fmt.Errorf("Multiple services per listener are only supported for L7 protocols, 'http', 'grpc' and 'http2' (listener on port %d)", listener.Port) } @@ -586,19 +586,28 @@ func (e *TerminatingGatewayConfigEntry) Warnings() []string { return warnings } +type GatewayServiceKind string + +const ( + GatewayServiceKindUnknown GatewayServiceKind = "" + GatewayServiceKindDestination GatewayServiceKind = "destination" + GatewayServiceKindService GatewayServiceKind = "service" +) + // GatewayService is used to associate gateways with their linked services. type GatewayService struct { Gateway ServiceName Service ServiceName GatewayKind ServiceKind - Port int `json:",omitempty"` - Protocol string `json:",omitempty"` - Hosts []string `json:",omitempty"` - CAFile string `json:",omitempty"` - CertFile string `json:",omitempty"` - KeyFile string `json:",omitempty"` - SNI string `json:",omitempty"` - FromWildcard bool `json:",omitempty"` + Port int `json:",omitempty"` + Protocol string `json:",omitempty"` + Hosts []string `json:",omitempty"` + CAFile string `json:",omitempty"` + CertFile string `json:",omitempty"` + KeyFile string `json:",omitempty"` + SNI string `json:",omitempty"` + FromWildcard bool `json:",omitempty"` + ServiceKind GatewayServiceKind `json:",omitempty"` RaftIndex } @@ -635,6 +644,7 @@ func (g *GatewayService) IsSame(o *GatewayService) bool { g.CertFile == o.CertFile && g.KeyFile == o.KeyFile && g.SNI == o.SNI && + g.ServiceKind == o.ServiceKind && g.FromWildcard == o.FromWildcard } @@ -653,5 +663,6 @@ func (g *GatewayService) Clone() *GatewayService { SNI: g.SNI, FromWildcard: g.FromWildcard, RaftIndex: g.RaftIndex, + ServiceKind: g.ServiceKind, } } diff --git a/agent/structs/config_entry_gateways_test.go b/agent/structs/config_entry_gateways_test.go index 3afc7cb03e..c494979c29 100644 --- a/agent/structs/config_entry_gateways_test.go +++ b/agent/structs/config_entry_gateways_test.go @@ -135,6 +135,26 @@ func TestIngressGatewayConfigEntry(t *testing.T) { validateErr: "Wildcard service name is only valid for protocol", }, "http features: multiple services": { + entry: &IngressGatewayConfigEntry{ + Kind: "ingress-gateway", + Name: "ingress-web", + Listeners: []IngressListener{ + { + Port: 1111, + Protocol: "http", + Services: []IngressService{ + { + Name: "db1", + }, + { + Name: "db2", + }, + }, + }, + }, + }, + }, + "http features: multiple services on tcp listener": { entry: &IngressGatewayConfigEntry{ Kind: "ingress-gateway", Name: "ingress-web", @@ -153,7 +173,7 @@ func TestIngressGatewayConfigEntry(t *testing.T) { }, }, }, - validateErr: "Multiple services per listener are only supported for protocol", + validateErr: "Multiple services per listener are only supported for L7", }, // ========================== "tcp listener requires a defined service": { diff --git a/agent/structs/config_entry_intentions.go b/agent/structs/config_entry_intentions.go index 8f7cd81233..205fa33694 100644 --- a/agent/structs/config_entry_intentions.go +++ b/agent/structs/config_entry_intentions.go @@ -123,6 +123,7 @@ func (e *ServiceIntentionsConfigEntry) ToIntention(src *SourceIntention) *Intent ixn := &Intention{ ID: src.LegacyID, Description: src.Description, + SourcePeer: src.Peer, SourcePartition: src.PartitionOrEmpty(), SourceNS: src.NamespaceOrDefault(), SourceName: src.Name, @@ -259,6 +260,9 @@ type SourceIntention struct { // formerly Intention.SourceNS acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` + + // Peer is the name of the remote peer of the source service, if applicable. + Peer string `json:",omitempty"` } type IntentionPermission struct { @@ -361,11 +365,11 @@ func (e *ServiceIntentionsConfigEntry) UpdateOver(rawPrev ConfigEntry) error { } var ( - prevSourceByName = make(map[ServiceName]*SourceIntention) + prevSourceByName = make(map[PeeredServiceName]*SourceIntention) prevSourceByLegacyID = make(map[string]*SourceIntention) ) for _, src := range prev.Sources { - prevSourceByName[src.SourceServiceName()] = src + prevSourceByName[PeeredServiceName{Peer: src.Peer, ServiceName: src.SourceServiceName()}] = src if src.LegacyID != "" { prevSourceByLegacyID[src.LegacyID] = src } @@ -377,7 +381,7 @@ func (e *ServiceIntentionsConfigEntry) UpdateOver(rawPrev ConfigEntry) error { } // Check that the LegacyID fields are handled correctly during updates. - if prevSrc, ok := prevSourceByName[src.SourceServiceName()]; ok { + if prevSrc, ok := prevSourceByName[PeeredServiceName{Peer: src.Peer, ServiceName: src.SourceServiceName()}]; ok { if prevSrc.LegacyID == "" { return fmt.Errorf("Sources[%d].LegacyID: cannot set this field", i) } else if src.LegacyID != prevSrc.LegacyID { @@ -423,10 +427,17 @@ func (e *ServiceIntentionsConfigEntry) normalize(legacyWrite bool) error { src.Type = IntentionSourceConsul } - // If the source namespace is omitted it inherits that of the - // destination. - src.EnterpriseMeta.MergeNoWildcard(&e.EnterpriseMeta) - src.EnterpriseMeta.Normalize() + // Normalize the source's namespace and partition. + // If the source is not peered, it inherits the destination's + // EnterpriseMeta. + if src.Peer == "" { + src.EnterpriseMeta.MergeNoWildcard(&e.EnterpriseMeta) + src.EnterpriseMeta.Normalize() + } else { + // If the source is peered, normalize the namespace only, + // since peer is mutually exclusive with partition. + src.EnterpriseMeta.NormalizeNamespace() + } // Compute the precedence only AFTER normalizing namespaces since the // namespaces are factored into the calculation. @@ -542,7 +553,7 @@ func (e *ServiceIntentionsConfigEntry) validate(legacyWrite bool) error { return fmt.Errorf("Name is required") } - if err := validateIntentionWildcards(e.Name, &e.EnterpriseMeta); err != nil { + if err := validateIntentionWildcards(e.Name, &e.EnterpriseMeta, ""); err != nil { return err } @@ -562,13 +573,13 @@ func (e *ServiceIntentionsConfigEntry) validate(legacyWrite bool) error { return fmt.Errorf("At least one source is required") } - seenSources := make(map[ServiceName]struct{}) + seenSources := make(map[PeeredServiceName]struct{}) for i, src := range e.Sources { if src.Name == "" { return fmt.Errorf("Sources[%d].Name is required", i) } - if err := validateIntentionWildcards(src.Name, &src.EnterpriseMeta); err != nil { + if err := validateIntentionWildcards(src.Name, &src.EnterpriseMeta, src.Peer); err != nil { return fmt.Errorf("Sources[%d].%v", i, err) } @@ -576,6 +587,10 @@ func (e *ServiceIntentionsConfigEntry) validate(legacyWrite bool) error { return fmt.Errorf("Sources[%d].%v", i, err) } + if src.Peer != "" && src.PartitionOrEmpty() != "" { + return fmt.Errorf("Sources[%d].Peer: cannot set Peer and Partition at the same time.", i) + } + // Length of opaque values if len(src.Description) > metaValueMaxLength { return fmt.Errorf( @@ -583,6 +598,10 @@ func (e *ServiceIntentionsConfigEntry) validate(legacyWrite bool) error { } if legacyWrite { + if src.Peer != "" { + return fmt.Errorf("Sources[%d].Peer cannot be set by legacy intentions", i) + } + if len(src.LegacyMeta) > metaMaxKeyPairs { return fmt.Errorf( "Sources[%d].Meta exceeds maximum element count %d", i, metaMaxKeyPairs) @@ -742,18 +761,22 @@ func (e *ServiceIntentionsConfigEntry) validate(legacyWrite bool) error { } } - serviceName := src.SourceServiceName() - if _, exists := seenSources[serviceName]; exists { - return fmt.Errorf("Sources[%d] defines %q more than once", i, serviceName.String()) + psn := PeeredServiceName{Peer: src.Peer, ServiceName: src.SourceServiceName()} + if _, exists := seenSources[psn]; exists { + if psn.Peer != "" { + return fmt.Errorf("Sources[%d] defines peer(%q) %q more than once", i, psn.Peer, psn.ServiceName.String()) + } else { + return fmt.Errorf("Sources[%d] defines %q more than once", i, psn.ServiceName.String()) + } } - seenSources[serviceName] = struct{}{} + seenSources[psn] = struct{}{} } return nil } // Wildcard usage verification -func validateIntentionWildcards(name string, entMeta *acl.EnterpriseMeta) error { +func validateIntentionWildcards(name string, entMeta *acl.EnterpriseMeta, peerName string) error { ns := entMeta.NamespaceOrDefault() if ns != WildcardSpecifier { if strings.Contains(ns, WildcardSpecifier) { @@ -772,6 +795,9 @@ func validateIntentionWildcards(name string, entMeta *acl.EnterpriseMeta) error if strings.Contains(entMeta.PartitionOrDefault(), WildcardSpecifier) { return fmt.Errorf("Partition: cannot use wildcard '*' in partition") } + if strings.Contains(peerName, WildcardSpecifier) { + return fmt.Errorf("Peer: cannot use wildcard '*' in peer") + } return nil } diff --git a/agent/structs/config_entry_intentions_test.go b/agent/structs/config_entry_intentions_test.go index f2add552b3..233ecebede 100644 --- a/agent/structs/config_entry_intentions_test.go +++ b/agent/structs/config_entry_intentions_test.go @@ -1226,6 +1226,42 @@ func TestServiceIntentionsConfigEntry(t *testing.T) { }, entry.Sources) }, }, + "local and peer intentions are different": { + entry: &ServiceIntentionsConfigEntry{ + Kind: ServiceIntentions, + Name: "test", + Sources: []*SourceIntention{ + { + Name: "foo", + Action: IntentionActionAllow, + }, + { + Name: "foo", + Peer: "peer1", + Action: IntentionActionAllow, + }, + }, + }, + }, + "already have a peer intention for source": { + entry: &ServiceIntentionsConfigEntry{ + Kind: ServiceIntentions, + Name: "test", + Sources: []*SourceIntention{ + { + Name: "foo", + Peer: "peer1", + Action: IntentionActionAllow, + }, + { + Name: "foo", + Peer: "peer1", + Action: IntentionActionAllow, + }, + }, + }, + validateErr: `Sources[1] defines peer("peer1") "` + fooName.String() + `" more than once`, + }, } for name, tc := range cases { tc := tc diff --git a/agent/structs/config_entry_test.go b/agent/structs/config_entry_test.go index 3814dd4c53..afbd737f89 100644 --- a/agent/structs/config_entry_test.go +++ b/agent/structs/config_entry_test.go @@ -427,6 +427,36 @@ func TestDecodeConfigEntry(t *testing.T) { }, }, }, + { + name: "service-defaults-with-destination", + snake: ` + kind = "service-defaults" + name = "external" + protocol = "tcp" + destination { + address = "1.2.3.4/24" + port = 8080 + } + `, + camel: ` + Kind = "service-defaults" + Name = "external" + Protocol = "tcp" + Destination { + Address = "1.2.3.4/24" + Port = 8080 + } + `, + expect: &ServiceConfigEntry{ + Kind: "service-defaults", + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "1.2.3.4/24", + Port: 8080, + }, + }, + }, { name: "service-router: kitchen sink", snake: ` @@ -2391,6 +2421,119 @@ func TestServiceConfigEntry(t *testing.T) { EnterpriseMeta: *DefaultEnterpriseMetaInDefaultPartition(), }, }, + "validate: missing destination address": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "", + Port: 443, + }, + }, + validateErr: "Could not validate address", + }, + "validate: destination ipv4 address": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "1.2.3.4", + Port: 443, + }, + }, + }, + "validate: destination ipv4 CIDR address": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "10.0.0.1/16", + Port: 8080, + }, + }, + }, + "validate: destination ipv6 address": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "2001:0db8:0000:8a2e:0370:7334:1234:5678", + Port: 443, + }, + }, + }, + "valid destination shortened ipv6 address": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "2001:db8::8a2e:370:7334", + Port: 443, + }, + }, + }, + "validate: destination ipv6 CIDR address": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "2001:db8::8a2e:370:7334/64", + Port: 443, + }, + }, + }, + "validate: invalid destination port": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "2001:db8::8a2e:370:7334/64", + }, + }, + validateErr: "Invalid Port number", + }, + "validate: invalid hostname 1": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "*external.com", + Port: 443, + }, + }, + validateErr: "Could not validate address", + }, + "validate: invalid hostname 2": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "tcp", + Destination: &DestinationConfig{ + Address: "..hello.", + Port: 443, + }, + }, + validateErr: "Could not validate address", + }, + "validate: all web traffic allowed": { + entry: &ServiceConfigEntry{ + Kind: ServiceDefaults, + Name: "external", + Protocol: "http", + Destination: &DestinationConfig{ + Address: "*", + Port: 443, + }, + }, + }, } testConfigEntryNormalizeAndValidate(t, cases) } diff --git a/agent/structs/connect_ca.go b/agent/structs/connect_ca.go index 58cda04f7e..dfb0c9ab43 100644 --- a/agent/structs/connect_ca.go +++ b/agent/structs/connect_ca.go @@ -215,15 +215,20 @@ type IssuedCert struct { PrivateKeyPEM string `json:",omitempty"` // Service is the name of the service for which the cert was issued. + Service string `json:",omitempty"` // ServiceURI is the cert URI value. - Service string `json:",omitempty"` ServiceURI string `json:",omitempty"` // Agent is the name of the node for which the cert was issued. + Agent string `json:",omitempty"` // AgentURI is the cert URI value. - Agent string `json:",omitempty"` AgentURI string `json:",omitempty"` + // Kind is the kind of service for which the cert was issued. + Kind ServiceKind `json:",omitempty"` + // KindURI is the cert URI value. + KindURI string `json:",omitempty"` + // ValidAfter and ValidBefore are the validity periods for the // certificate. ValidAfter time.Time diff --git a/agent/structs/intention.go b/agent/structs/intention.go index feefc56726..eb70ba1ee8 100644 --- a/agent/structs/intention.go +++ b/agent/structs/intention.go @@ -57,6 +57,11 @@ type Intention struct { SourcePartition string `json:",omitempty"` DestinationPartition string `json:",omitempty"` + // SourcePeer cannot be a wildcard "*" and is not compatible with legacy + // intentions. Cannot be used with SourcePartition, as both represent the + // same level of tenancy (partition is local to cluster, peer is remote). + SourcePeer string `json:",omitempty"` + // SourceType is the type of the value for the source. SourceType IntentionSourceType @@ -311,7 +316,9 @@ func (ixn *Intention) CanRead(authz acl.Authorizer) bool { // complete intention. This is so that both ends can be aware of why // something does or does not work. - if ixn.SourceName != "" { + // If SourcePeer is set, tenancy is irrelevant in the context of the local cluster + // so we skip authorizing on the Source end. + if ixn.SourceName != "" && ixn.SourcePeer == "" { ixn.FillAuthzContext(&authzContext, false) if authz.IntentionRead(ixn.SourceName, &authzContext) == acl.Allow { return true @@ -394,9 +401,13 @@ func (x *Intention) String() string { idPart = "ID: " + x.ID + ", " } - var srcPartitionPart string + // Cluster may be either partition (local) or peer (remote) + var srcClusterPart string if x.SourcePartition != "" { - srcPartitionPart = x.SourcePartition + "/" + srcClusterPart = x.SourcePartition + "/" + } + if x.SourcePeer != "" { + srcClusterPart = "peer(" + x.SourcePeer + ")/" } var dstPartitionPart string @@ -412,7 +423,7 @@ func (x *Intention) String() string { } return fmt.Sprintf("%s%s/%s => %s%s/%s (%sPrecedence: %d, %s)", - srcPartitionPart, x.SourceNS, x.SourceName, + srcClusterPart, x.SourceNS, x.SourceName, dstPartitionPart, x.DestinationNS, x.DestinationName, idPart, x.Precedence, @@ -461,6 +472,7 @@ func (x *Intention) ToSourceIntention(legacy bool) *SourceIntention { src := &SourceIntention{ Name: x.SourceName, EnterpriseMeta: *x.SourceEnterpriseMeta(), + Peer: x.SourcePeer, Action: x.Action, Permissions: nil, // explicitly not symmetric with the old APIs Precedence: 0, // Ignore, let it be computed. @@ -494,6 +506,15 @@ const ( IntentionSourceConsul IntentionSourceType = "consul" ) +type IntentionTargetType string + +const ( + // IntentionTargetService is a service within the Consul catalog. + IntentionTargetService IntentionTargetType = "service" + // IntentionTargetDestination is a destination defined through a service-default config entry. + IntentionTargetDestination IntentionTargetType = "destination" +) + // Intentions is a list of intentions. type Intentions []*Intention @@ -561,7 +582,8 @@ type IntentionMutation struct { ID string Destination ServiceName Source ServiceName - Value *SourceIntention + // TODO(peering): check if this needs peer field + Value *SourceIntention } // RequestDatacenter returns the datacenter for a given request. @@ -707,6 +729,8 @@ type IntentionQueryExact struct { // TODO(partitions): check query works with partitions SourcePartition string `json:",omitempty"` DestinationPartition string `json:",omitempty"` + + SourcePeer string `json:",omitempty"` } // Validate is used to ensure all 4 required parameters are specified. @@ -727,6 +751,7 @@ func (q *IntentionQueryExact) Validate() error { return err } +// TODO(peering): add support for listing peer type IntentionListRequest struct { Datacenter string Legacy bool `json:"-"` @@ -755,12 +780,18 @@ func (s IntentionPrecedenceSorter) Less(i, j int) bool { return a.Precedence > b.Precedence } - // Tie break on lexicographic order of the tuple in canonical form (SrcPxn, - // SrcNS, Src, DstPxn, DstNS, Dst). This is arbitrary but it keeps sorting - // deterministic which is a nice property for consistency. It is arguably - // open to abuse if implementations rely on this however by definition the - // order among same-precedence rules is arbitrary and doesn't affect whether - // an allow or deny rule is acted on since all applicable rules are checked. + // Tie break on lexicographic order of the tuple in canonical form: + // + // (SrcPeer, SrcPxn, SrcNS, Src, DstPxn, DstNS, Dst) + // + // This is arbitrary but it keeps sorting deterministic which is a nice + // property for consistency. It is arguably open to abuse if implementations + // rely on this however by definition the order among same-precedence rules + // is arbitrary and doesn't affect whether an allow or deny rule is acted on + // since all applicable rules are checked. + if a.SourcePeer != b.SourcePeer { + return a.SourcePeer < b.SourcePeer + } if a.SourcePartition != b.SourcePartition { return a.SourcePartition < b.SourcePartition } diff --git a/agent/structs/intention_test.go b/agent/structs/intention_test.go index 247bbe284f..f5aac91ca7 100644 --- a/agent/structs/intention_test.go +++ b/agent/structs/intention_test.go @@ -242,58 +242,85 @@ func TestIntentionValidate(t *testing.T) { } func TestIntentionPrecedenceSorter(t *testing.T) { + type fields struct { + SrcPeer string + SrcNS string + SrcN string + DstNS string + DstN string + } cases := []struct { Name string - Input [][]string // SrcNS, SrcN, DstNS, DstN - Expected [][]string // Same structure as Input + Input []fields + Expected []fields }{ { "exhaustive list", - [][]string{ - {"*", "*", "exact", "*"}, - {"*", "*", "*", "*"}, - {"exact", "*", "exact", "exact"}, - {"*", "*", "exact", "exact"}, - {"exact", "exact", "*", "*"}, - {"exact", "exact", "exact", "exact"}, - {"exact", "exact", "exact", "*"}, - {"exact", "*", "exact", "*"}, - {"exact", "*", "*", "*"}, + []fields{ + // Peer fields + {SrcPeer: "peer", SrcNS: "*", SrcN: "*", DstNS: "exact", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "*", SrcN: "*", DstNS: "*", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "*", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "peer", SrcNS: "*", SrcN: "*", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "exact", DstNS: "*", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "exact", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "exact", DstNS: "exact", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "*", DstNS: "exact", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "*", DstNS: "*", DstN: "*"}, + + {SrcNS: "*", SrcN: "*", DstNS: "exact", DstN: "*"}, + {SrcNS: "*", SrcN: "*", DstNS: "*", DstN: "*"}, + {SrcNS: "exact", SrcN: "*", DstNS: "exact", DstN: "exact"}, + {SrcNS: "*", SrcN: "*", DstNS: "exact", DstN: "exact"}, + {SrcNS: "exact", SrcN: "exact", DstNS: "*", DstN: "*"}, + {SrcNS: "exact", SrcN: "exact", DstNS: "exact", DstN: "exact"}, + {SrcNS: "exact", SrcN: "exact", DstNS: "exact", DstN: "*"}, + {SrcNS: "exact", SrcN: "*", DstNS: "exact", DstN: "*"}, + {SrcNS: "exact", SrcN: "*", DstNS: "*", DstN: "*"}, }, - [][]string{ - {"exact", "exact", "exact", "exact"}, - {"exact", "*", "exact", "exact"}, - {"*", "*", "exact", "exact"}, - {"exact", "exact", "exact", "*"}, - {"exact", "*", "exact", "*"}, - {"*", "*", "exact", "*"}, - {"exact", "exact", "*", "*"}, - {"exact", "*", "*", "*"}, - {"*", "*", "*", "*"}, + []fields{ + {SrcPeer: "", SrcNS: "exact", SrcN: "exact", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "exact", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "", SrcNS: "exact", SrcN: "*", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "*", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "", SrcNS: "*", SrcN: "*", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "peer", SrcNS: "*", SrcN: "*", DstNS: "exact", DstN: "exact"}, + {SrcPeer: "", SrcNS: "exact", SrcN: "exact", DstNS: "exact", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "exact", DstNS: "exact", DstN: "*"}, + {SrcPeer: "", SrcNS: "exact", SrcN: "*", DstNS: "exact", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "*", DstNS: "exact", DstN: "*"}, + {SrcPeer: "", SrcNS: "*", SrcN: "*", DstNS: "exact", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "*", SrcN: "*", DstNS: "exact", DstN: "*"}, + {SrcPeer: "", SrcNS: "exact", SrcN: "exact", DstNS: "*", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "exact", DstNS: "*", DstN: "*"}, + {SrcPeer: "", SrcNS: "exact", SrcN: "*", DstNS: "*", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "exact", SrcN: "*", DstNS: "*", DstN: "*"}, + {SrcPeer: "", SrcNS: "*", SrcN: "*", DstNS: "*", DstN: "*"}, + {SrcPeer: "peer", SrcNS: "*", SrcN: "*", DstNS: "*", DstN: "*"}, }, }, { "tiebreak deterministically", - [][]string{ - {"a", "*", "a", "b"}, - {"a", "*", "a", "a"}, - {"b", "a", "a", "a"}, - {"a", "b", "a", "a"}, - {"a", "a", "b", "a"}, - {"a", "a", "a", "b"}, - {"a", "a", "a", "a"}, + []fields{ + {SrcNS: "a", SrcN: "*", DstNS: "a", DstN: "b"}, + {SrcNS: "a", SrcN: "*", DstNS: "a", DstN: "a"}, + {SrcNS: "b", SrcN: "a", DstNS: "a", DstN: "a"}, + {SrcNS: "a", SrcN: "b", DstNS: "a", DstN: "a"}, + {SrcNS: "a", SrcN: "a", DstNS: "b", DstN: "a"}, + {SrcNS: "a", SrcN: "a", DstNS: "a", DstN: "b"}, + {SrcNS: "a", SrcN: "a", DstNS: "a", DstN: "a"}, }, - [][]string{ + []fields{ // Exact matches first in lexicographical order (arbitrary but // deterministic) - {"a", "a", "a", "a"}, - {"a", "a", "a", "b"}, - {"a", "a", "b", "a"}, - {"a", "b", "a", "a"}, - {"b", "a", "a", "a"}, + {SrcNS: "a", SrcN: "a", DstNS: "a", DstN: "a"}, + {SrcNS: "a", SrcN: "a", DstNS: "a", DstN: "b"}, + {SrcNS: "a", SrcN: "a", DstNS: "b", DstN: "a"}, + {SrcNS: "a", SrcN: "b", DstNS: "a", DstN: "a"}, + {SrcNS: "b", SrcN: "a", DstNS: "a", DstN: "a"}, // Wildcards next, lexicographical - {"a", "*", "a", "a"}, - {"a", "*", "a", "b"}, + {SrcNS: "a", SrcN: "*", DstNS: "a", DstN: "a"}, + {SrcNS: "a", SrcN: "*", DstNS: "a", DstN: "b"}, }, }, } @@ -304,10 +331,11 @@ func TestIntentionPrecedenceSorter(t *testing.T) { var input Intentions for _, v := range tc.Input { input = append(input, &Intention{ - SourceNS: v[0], - SourceName: v[1], - DestinationNS: v[2], - DestinationName: v[3], + SourcePeer: v.SrcPeer, + SourceNS: v.SrcNS, + SourceName: v.SrcN, + DestinationNS: v.DstNS, + DestinationName: v.DstN, }) } @@ -320,13 +348,14 @@ func TestIntentionPrecedenceSorter(t *testing.T) { sort.Sort(IntentionPrecedenceSorter(input)) // Get back into a comparable form - var actual [][]string + var actual []fields for _, v := range input { - actual = append(actual, []string{ - v.SourceNS, - v.SourceName, - v.DestinationNS, - v.DestinationName, + actual = append(actual, fields{ + SrcPeer: v.SourcePeer, + SrcNS: v.SourceNS, + SrcN: v.SourceName, + DstNS: v.DestinationNS, + DstN: v.DestinationName, }) } assert.Equal(t, tc.Expected, actual) @@ -443,6 +472,15 @@ func TestIntention_String(t *testing.T) { }, partitionPrefix + `default/foo => ` + partitionPrefix + `default/bar (Precedence: 9, Permissions: 2)`, }, + "L4 allow with source peer": { + &Intention{ + SourceName: "foo", + SourcePeer: "billing", + DestinationName: "bar", + Action: IntentionActionAllow, + }, + `peer(billing)/default/foo => ` + partitionPrefix + `default/bar (Precedence: 9, Action: ALLOW)`, + }, } for name, tc := range cases { diff --git a/agent/structs/peering.go b/agent/structs/peering.go index ac7828ad57..70a59c486a 100644 --- a/agent/structs/peering.go +++ b/agent/structs/peering.go @@ -8,8 +8,37 @@ type PeeringToken struct { PeerID string } -// PeeredService is a service that has been configured with an exported-service config entry to be exported to a peer. -type PeeredService struct { - Name ServiceName - PeerName string +type IndexedExportedServiceList struct { + Services map[string]ServiceList + QueryMeta +} + +// NOTE: this is not serialized via msgpack so it can be changed without concern. +type ExportedServiceList struct { + // Services is a list of exported services that apply to both standard + // service discovery and service mesh. + Services []ServiceName + + // DiscoChains is a list of exported service that ONLY apply to service mesh. + DiscoChains []ServiceName + + // TODO(peering): reduce duplication here in the response + ConnectProtocol map[ServiceName]string +} + +// ListAllDiscoveryChains returns all discovery chains (union of Services and +// DiscoChains). +func (list *ExportedServiceList) ListAllDiscoveryChains() map[ServiceName]string { + chainsByName := make(map[ServiceName]string) + if list == nil { + return chainsByName + } + + for _, svc := range list.Services { + chainsByName[svc] = list.ConnectProtocol[svc] + } + for _, chainName := range list.DiscoChains { + chainsByName[chainName] = list.ConnectProtocol[chainName] + } + return chainsByName } diff --git a/agent/structs/structs.go b/agent/structs/structs.go index 1edf14a996..918597b8d4 100644 --- a/agent/structs/structs.go +++ b/agent/structs/structs.go @@ -15,12 +15,13 @@ import ( "time" "github.com/golang/protobuf/proto" - "github.com/golang/protobuf/ptypes" "github.com/golang/protobuf/ptypes/duration" "github.com/golang/protobuf/ptypes/timestamp" "github.com/hashicorp/go-multierror" "github.com/hashicorp/serf/coordinate" "github.com/mitchellh/hashstructure" + "google.golang.org/protobuf/types/known/durationpb" + "google.golang.org/protobuf/types/known/timestamppb" "github.com/hashicorp/consul-net-rpc/go-msgpack/codec" @@ -705,6 +706,12 @@ type ServiceSpecificRequest struct { // Ingress if true will only search for Ingress gateways for the given service. Ingress bool + // MergeCentralConfig when set to true returns a service definition merged with + // the proxy-defaults/global and service-defaults/:service config entries. + // This can be used to ensure a full service definition is returned in the response + // especially when the service might not be written into the catalog that way. + MergeCentralConfig bool + acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` QueryOptions } @@ -751,6 +758,7 @@ func (r *ServiceSpecificRequest) CacheInfo() cache.RequestInfo { r.PeerName, r.Ingress, r.ServiceKind, + r.MergeCentralConfig, }, nil) if err == nil { // If there is an error, we don't set the key. A blank key forces @@ -768,9 +776,15 @@ func (r *ServiceSpecificRequest) CacheMinIndex() uint64 { // NodeSpecificRequest is used to request the information about a single node type NodeSpecificRequest struct { - Datacenter string - Node string - PeerName string + Datacenter string + Node string + PeerName string + // MergeCentralConfig when set to true returns a service definition merged with + // the proxy-defaults/global and service-defaults/:service config entries. + // This can be used to ensure a full service definition is returned in the response + // especially when the service might not be written into the catalog that way. + MergeCentralConfig bool + acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` QueryOptions } @@ -793,6 +807,7 @@ func (r *NodeSpecificRequest) CacheInfo() cache.RequestInfo { r.Node, r.Filter, r.EnterpriseMeta, + r.MergeCentralConfig, }, nil) if err == nil { // If there is an error, we don't set the key. A blank key forces @@ -855,6 +870,20 @@ func (n *Node) BestAddress(wan bool) string { return n.Address } +func (n *Node) ToRegisterRequest() RegisterRequest { + return RegisterRequest{ + ID: n.ID, + Node: n.Node, + Datacenter: n.Datacenter, + Address: n.Address, + TaggedAddresses: n.TaggedAddresses, + NodeMeta: n.Meta, + RaftIndex: n.RaftIndex, + EnterpriseMeta: *n.GetEnterpriseMeta(), + PeerName: n.PeerName, + } +} + type Nodes []*Node // IsSame return whether nodes are similar without taking into account @@ -1119,6 +1148,18 @@ func (k ServiceKind) Normalized() string { return string(k) } +// IsProxy returns whether the ServiceKind is a connect proxy or gateway. +func (k ServiceKind) IsProxy() bool { + switch k { + case ServiceKindConnectProxy, + ServiceKindMeshGateway, + ServiceKindTerminatingGateway, + ServiceKindIngressGateway: + return true + } + return false +} + const ( // ServiceKindTypical is a typical, classic Consul service. This is // represented by the absence of a value. This was chosen for ease of @@ -1144,6 +1185,11 @@ const ( // This service allows external traffic to enter the mesh based on // centralized configuration. ServiceKindIngressGateway ServiceKind = "ingress-gateway" + + // ServiceKindDestination is a Destination for the Connect feature. + // This service allows external traffic to exit the mesh through a terminating gateway + // based on centralized configuration. + ServiceKindDestination ServiceKind = "destination" ) // Type to hold a address and port of a service @@ -1212,6 +1258,20 @@ type NodeService struct { RaftIndex `bexpr:"-"` } +// PeeringServiceMeta is read-only information provided from an exported peer. +type PeeringServiceMeta struct { + SNI []string `json:",omitempty"` + SpiffeID []string `json:",omitempty"` + Protocol string `json:",omitempty"` +} + +func (m *PeeringServiceMeta) PrimarySNI() string { + if m == nil || len(m.SNI) == 0 { + return "" + } + return m.SNI[0] +} + func (ns *NodeService) BestAddress(wan bool) (string, int) { addr := ns.Address port := ns.Port @@ -1282,6 +1342,8 @@ type ServiceConnect struct { // result is identical to just making a second service registration via any // other means. SidecarService *ServiceDefinition `json:",omitempty" bexpr:"-"` + + PeerMeta *PeeringServiceMeta `json:",omitempty" bexpr:"-"` } func (t *ServiceConnect) UnmarshalJSON(data []byte) (err error) { @@ -1306,7 +1368,8 @@ func (t *ServiceConnect) UnmarshalJSON(data []byte) (err error) { // IsSidecarProxy returns true if the NodeService is a sidecar proxy. func (s *NodeService) IsSidecarProxy() bool { - return s.Kind == ServiceKindConnectProxy && s.Proxy.DestinationServiceID != "" + return s.Kind == ServiceKindConnectProxy && + (s.Proxy.DestinationServiceID != "" || s.Proxy.DestinationServiceName != "") } func (s *NodeService) IsGateway() bool { @@ -1619,7 +1682,7 @@ type HealthCheck struct { ServiceID string // optional associated service ServiceName string // optional service name ServiceTags []string // optional service tags - Type string // Check type: http/ttl/tcp/etc + Type string // Check type: http/ttl/tcp/udp/etc Interval string // from definition Timeout string // from definition @@ -1684,6 +1747,7 @@ type HealthCheckDefinition struct { Body string `json:",omitempty"` DisableRedirects bool `json:",omitempty"` TCP string `json:",omitempty"` + UDP string `json:",omitempty"` H2PING string `json:",omitempty"` H2PingUseTLS bool `json:",omitempty"` Interval time.Duration `json:",omitempty"` @@ -1834,6 +1898,7 @@ func (c *HealthCheck) CheckType() *CheckType { Body: c.Definition.Body, DisableRedirects: c.Definition.DisableRedirects, TCP: c.Definition.TCP, + UDP: c.Definition.UDP, H2PING: c.Definition.H2PING, H2PingUseTLS: c.Definition.H2PingUseTLS, Interval: c.Definition.Interval, @@ -2096,6 +2161,12 @@ type IndexedServices struct { QueryMeta } +// PeeredServiceName is a basic tuple of ServiceName and peer +type PeeredServiceName struct { + ServiceName ServiceName + Peer string +} + type ServiceName struct { Name string acl.EnterpriseMeta @@ -2127,6 +2198,14 @@ func ServiceGatewayVirtualIPTag(sn ServiceName) string { type ServiceList []ServiceName +// Len implements sort.Interface. +func (s ServiceList) Len() int { return len(s) } + +// Swap implements sort.Interface. +func (s ServiceList) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +func (s ServiceList) Sort() { sort.Sort(s) } + type IndexedServiceList struct { Services ServiceList QueryMeta @@ -2793,23 +2872,19 @@ func (m MessageType) String() string { } func DurationToProto(d time.Duration) *duration.Duration { - return ptypes.DurationProto(d) + return durationpb.New(d) } func DurationFromProto(d *duration.Duration) time.Duration { - ret, _ := ptypes.Duration(d) - return ret - + return d.AsDuration() } func TimeFromProto(s *timestamp.Timestamp) time.Time { - ret, _ := ptypes.Timestamp(s) - return ret + return s.AsTime() } func TimeToProto(s time.Time) *timestamp.Timestamp { - ret, _ := ptypes.TimestampProto(s) - return ret + return timestamppb.New(s) } // IsZeroProtoTime returns true if the time is the minimum protobuf timestamp diff --git a/agent/structs/structs_filtering_test.go b/agent/structs/structs_filtering_test.go index 6b111ea2cc..6b0541e57d 100644 --- a/agent/structs/structs_filtering_test.go +++ b/agent/structs/structs_filtering_test.go @@ -682,6 +682,11 @@ var expectedFieldConfigIntention bexpr.FieldConfigurations = bexpr.FieldConfigur CoerceFn: bexpr.CoerceString, SupportedOperations: []bexpr.MatchOperator{bexpr.MatchEqual, bexpr.MatchNotEqual, bexpr.MatchIn, bexpr.MatchNotIn, bexpr.MatchMatches, bexpr.MatchNotMatches}, }, + "SourcePeer": &bexpr.FieldConfiguration{ + StructFieldName: "SourcePeer", + CoerceFn: bexpr.CoerceString, + SupportedOperations: []bexpr.MatchOperator{bexpr.MatchEqual, bexpr.MatchNotEqual, bexpr.MatchIn, bexpr.MatchNotIn, bexpr.MatchMatches, bexpr.MatchNotMatches}, + }, "SourcePartition": &bexpr.FieldConfiguration{ StructFieldName: "SourcePartition", CoerceFn: bexpr.CoerceString, diff --git a/agent/structs/structs_oss.go b/agent/structs/structs_oss.go index bf911f5a8c..87f1b54579 100644 --- a/agent/structs/structs_oss.go +++ b/agent/structs/structs_oss.go @@ -57,6 +57,10 @@ func NodeEnterpriseMetaInDefaultPartition() *acl.EnterpriseMeta { // FillAuthzContext stub func (_ *Node) FillAuthzContext(_ *acl.AuthorizerContext) {} +func (n *Node) OverridePartition(_ string) { + n.Partition = "" +} + func (_ *Coordinate) FillAuthzContext(_ *acl.AuthorizerContext) {} func (_ *NodeInfo) FillAuthzContext(_ *acl.AuthorizerContext) {} @@ -114,6 +118,12 @@ func ServiceNameFromString(input string) ServiceName { return ServiceName{Name: id} } +// Less implements sort.Interface. +func (s ServiceList) Less(i, j int) bool { + a, b := s[i], s[j] + return a.Name < b.Name +} + func (cid CheckID) String() string { return string(cid.ID) } diff --git a/agent/structs/structs_test.go b/agent/structs/structs_test.go index 2164b10992..0b6efb3309 100644 --- a/agent/structs/structs_test.go +++ b/agent/structs/structs_test.go @@ -3,6 +3,7 @@ package structs import ( "encoding/json" "fmt" + "math/rand" "reflect" "strings" "testing" @@ -2856,3 +2857,82 @@ func TestGatewayService_IsSame(t *testing.T) { t.Fatalf("should be equal, was %#v VS %#v", g, other) } } + +func TestServiceList_Sort(t *testing.T) { + type testcase struct { + name string + list []ServiceName + expect []ServiceName + } + + run := func(t *testing.T, tc testcase) { + t.Run("written order", func(t *testing.T) { + ServiceList(tc.list).Sort() + require.Equal(t, tc.expect, tc.list) + }) + t.Run("random order", func(t *testing.T) { + rand.Shuffle(len(tc.list), func(i, j int) { + tc.list[i], tc.list[j] = tc.list[j], tc.list[i] + }) + ServiceList(tc.list).Sort() + require.Equal(t, tc.expect, tc.list) + }) + } + + sn := func(name string) ServiceName { + return NewServiceName(name, nil) + } + + cases := []testcase{ + { + name: "nil", + list: nil, + expect: nil, + }, + { + name: "empty", + list: []ServiceName{}, + expect: []ServiceName{}, + }, + { + name: "one", + list: []ServiceName{sn("foo")}, + expect: []ServiceName{sn("foo")}, + }, + { + name: "multiple", + list: []ServiceName{ + sn("food"), + sn("zip"), + sn("Bar"), + sn("ba"), + sn("foo"), + sn("bar"), + sn("Foo"), + sn("Zip"), + sn("foo"), + sn("bar"), + sn("barrier"), + }, + expect: []ServiceName{ + sn("Bar"), + sn("Foo"), + sn("Zip"), + sn("ba"), + sn("bar"), + sn("bar"), + sn("barrier"), + sn("foo"), + sn("foo"), + sn("food"), + sn("zip"), + }, + }, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + run(t, tc) + }) + } +} diff --git a/agent/submatview/store.go b/agent/submatview/store.go index 0b27347934..242a0d70d7 100644 --- a/agent/submatview/store.go +++ b/agent/submatview/store.go @@ -149,6 +149,23 @@ func (s *Store) Notify( req Request, correlationID string, updateCh chan<- cache.UpdateEvent, +) error { + return s.NotifyCallback(ctx, req, correlationID, func(ctx context.Context, event cache.UpdateEvent) { + select { + case updateCh <- event: + case <-ctx.Done(): + return + } + }) +} + +// NotifyCallback subscribes to updates of the entry identified by req in the +// same way as Notify, but accepts a callback function instead of a channel. +func (s *Store) NotifyCallback( + ctx context.Context, + req Request, + correlationID string, + cb cache.Callback, ) error { info := req.CacheInfo() key, materializer, err := s.readEntry(req) @@ -174,16 +191,11 @@ func (s *Store) Notify( } index = result.Index - u := cache.UpdateEvent{ + cb(ctx, cache.UpdateEvent{ CorrelationID: correlationID, Result: result.Value, Meta: cache.ResultMeta{Index: result.Index, Hit: result.Cached}, - } - select { - case updateCh <- u: - case <-ctx.Done(): - return - } + }) } }() return nil diff --git a/agent/submatview/store_integration_test.go b/agent/submatview/store_integration_test.go index 72eed5a5f9..b0efb91cbe 100644 --- a/agent/submatview/store_integration_test.go +++ b/agent/submatview/store_integration_test.go @@ -320,7 +320,12 @@ func (c *consumer) Consume(ctx context.Context, maxIndex uint64) error { group, cctx := errgroup.WithContext(ctx) group.Go(func() error { - return c.healthClient.Notify(cctx, req, "", updateCh) + return c.healthClient.Notify(cctx, req, "", func(ctx context.Context, event cache.UpdateEvent) { + select { + case updateCh <- event: + case <-ctx.Done(): + } + }) }) group.Go(func() error { var idx uint64 diff --git a/agent/submatview/store_test.go b/agent/submatview/store_test.go index bdbc576c78..78d7b1aa17 100644 --- a/agent/submatview/store_test.go +++ b/agent/submatview/store_test.go @@ -14,6 +14,7 @@ import ( "github.com/hashicorp/consul/proto/pbcommon" "github.com/hashicorp/consul/proto/pbservice" "github.com/hashicorp/consul/proto/pbsubscribe" + "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" ) @@ -32,7 +33,7 @@ func TestStore_Get(t *testing.T) { newEventServiceHealthRegister(10, 1, "srv1"), newEventServiceHealthRegister(22, 2, "srv1")) - runStep(t, "from empty store, starts materializer", func(t *testing.T) { + testutil.RunStep(t, "from empty store, starts materializer", func(t *testing.T) { var result Result retry.Run(t, func(r *retry.R) { var err error @@ -56,7 +57,7 @@ func TestStore_Get(t *testing.T) { require.Equal(t, store.expiryHeap.Next().Entry, e.expiry) }) - runStep(t, "with an index that already exists in the view", func(t *testing.T) { + testutil.RunStep(t, "with an index that already exists in the view", func(t *testing.T) { req.index = 21 result, err := store.Get(ctx, req) require.NoError(t, err) @@ -84,7 +85,7 @@ func TestStore_Get(t *testing.T) { chResult <- resultOrError{Result: result, Err: err} }() - runStep(t, "blocks with an index that is not yet in the view", func(t *testing.T) { + testutil.RunStep(t, "blocks with an index that is not yet in the view", func(t *testing.T) { select { case <-chResult: t.Fatalf("expected Get to block") @@ -97,7 +98,7 @@ func TestStore_Get(t *testing.T) { require.Equal(t, 1, e.requests) }) - runStep(t, "blocks when an event is received but the index is still below minIndex", func(t *testing.T) { + testutil.RunStep(t, "blocks when an event is received but the index is still below minIndex", func(t *testing.T) { req.client.QueueEvents(newEventServiceHealthRegister(24, 1, "srv1")) select { @@ -112,7 +113,7 @@ func TestStore_Get(t *testing.T) { require.Equal(t, 1, e.requests) }) - runStep(t, "unblocks when an event with index past minIndex", func(t *testing.T) { + testutil.RunStep(t, "unblocks when an event with index past minIndex", func(t *testing.T) { req.client.QueueEvents(newEventServiceHealthRegister(41, 1, "srv1")) var getResult resultOrError select { @@ -139,7 +140,7 @@ func TestStore_Get(t *testing.T) { require.Equal(t, store.expiryHeap.Next().Entry, e.expiry) }) - runStep(t, "with no index returns latest value", func(t *testing.T) { + testutil.RunStep(t, "with no index returns latest value", func(t *testing.T) { req.index = 0 result, err := store.Get(ctx, req) require.NoError(t, err) @@ -160,7 +161,7 @@ func TestStore_Get(t *testing.T) { require.Equal(t, store.expiryHeap.Next().Entry, e.expiry) }) - runStep(t, "blocks until timeout", func(t *testing.T) { + testutil.RunStep(t, "blocks until timeout", func(t *testing.T) { req.index = 50 req.timeout = 25 * time.Millisecond @@ -304,7 +305,7 @@ func TestStore_Notify(t *testing.T) { err := store.Notify(ctx, req, cID, ch) require.NoError(t, err) - runStep(t, "from empty store, starts materializer", func(t *testing.T) { + testutil.RunStep(t, "from empty store, starts materializer", func(t *testing.T) { store.lock.Lock() defer store.lock.Unlock() require.Len(t, store.byKey, 1) @@ -313,7 +314,7 @@ func TestStore_Notify(t *testing.T) { require.Equal(t, 1, e.requests) }) - runStep(t, "updates are received", func(t *testing.T) { + testutil.RunStep(t, "updates are received", func(t *testing.T) { retry.Run(t, func(r *retry.R) { select { case update := <-ch: @@ -339,7 +340,7 @@ func TestStore_Notify(t *testing.T) { } }) - runStep(t, "closing the notify starts the expiry counter", func(t *testing.T) { + testutil.RunStep(t, "closing the notify starts the expiry counter", func(t *testing.T) { cancel() retry.Run(t, func(r *retry.R) { @@ -395,7 +396,7 @@ func TestStore_Notify_ManyRequests(t *testing.T) { var req2 *fakeRPCRequest - runStep(t, "Get and Notify with a different key", func(t *testing.T) { + testutil.RunStep(t, "Get and Notify with a different key", func(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -414,7 +415,7 @@ func TestStore_Notify_ManyRequests(t *testing.T) { }) }) - runStep(t, "end all the requests", func(t *testing.T) { + testutil.RunStep(t, "end all the requests", func(t *testing.T) { req.client.QueueEvents( newEventServiceHealthRegister(10, 1, "srv1"), newEventServiceHealthRegister(12, 2, "srv1"), @@ -433,7 +434,7 @@ func TestStore_Notify_ManyRequests(t *testing.T) { }) }) - runStep(t, "the expiry heap should contain two entries", func(t *testing.T) { + testutil.RunStep(t, "the expiry heap should contain two entries", func(t *testing.T) { store.lock.Lock() defer store.lock.Unlock() e := store.byKey[makeEntryKey(req.Type(), req.CacheInfo())] @@ -504,10 +505,3 @@ func TestStore_Run_ExpiresEntries(t *testing.T) { require.Len(t, store.byKey, 0) require.Equal(t, ttlcache.NotIndexed, e.expiry.Index()) } - -func runStep(t *testing.T, name string, fn func(t *testing.T)) { - t.Helper() - if !t.Run(name, fn) { - t.FailNow() - } -} diff --git a/agent/testagent.go b/agent/testagent.go index 4dbf859bc8..6b1c2ed518 100644 --- a/agent/testagent.go +++ b/agent/testagent.go @@ -25,6 +25,7 @@ import ( "github.com/hashicorp/consul/agent/consul" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/sdk/freeport" "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/sdk/testutil/retry" @@ -216,7 +217,9 @@ func (a *TestAgent) Start(t *testing.T) error { bd.Logger = logger // if we are not testing telemetry things, let's use a "mock" sink for metrics if bd.RuntimeConfig.Telemetry.Disable { - bd.MetricsHandler = metrics.NewInmemSink(1*time.Second, time.Minute) + bd.MetricsConfig = &lib.MetricsConfig{ + Handler: metrics.NewInmemSink(1*time.Second, time.Minute), + } } if a.Config != nil && bd.RuntimeConfig.AutoReloadConfigCoalesceInterval == 0 { diff --git a/agent/ui_endpoint.go b/agent/ui_endpoint.go index c9fb82d086..70d5d9def9 100644 --- a/agent/ui_endpoint.go +++ b/agent/ui_endpoint.go @@ -134,11 +134,7 @@ func (s *HTTPHandlers) UINodeInfo(resp http.ResponseWriter, req *http.Request) ( } // Verify we have some DC, or use the default - var err error - args.Node, err = getPathSuffixUnescaped(req.URL.Path, "/v1/internal/ui/node/") - if err != nil { - return nil, err - } + args.Node = strings.TrimPrefix(req.URL.Path, "/v1/internal/ui/node/") if args.Node == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing node name"} } @@ -266,11 +262,7 @@ func (s *HTTPHandlers) UIGatewayServicesNodes(resp http.ResponseWriter, req *htt } // Pull out the service name - var err error - args.ServiceName, err = getPathSuffixUnescaped(req.URL.Path, "/v1/internal/ui/gateway-services-nodes/") - if err != nil { - return nil, err - } + args.ServiceName = strings.TrimPrefix(req.URL.Path, "/v1/internal/ui/gateway-services-nodes/") if args.ServiceName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing gateway name"} } @@ -310,11 +302,7 @@ func (s *HTTPHandlers) UIServiceTopology(resp http.ResponseWriter, req *http.Req return nil, err } - var err error - args.ServiceName, err = getPathSuffixUnescaped(req.URL.Path, "/v1/internal/ui/service-topology/") - if err != nil { - return nil, err - } + args.ServiceName = strings.TrimPrefix(req.URL.Path, "/v1/internal/ui/service-topology/") if args.ServiceName == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing service name"} } @@ -588,11 +576,7 @@ func (s *HTTPHandlers) UIGatewayIntentions(resp http.ResponseWriter, req *http.R } // Pull out the service name - var err error - name, err := getPathSuffixUnescaped(req.URL.Path, "/v1/internal/ui/gateway-intentions/") - if err != nil { - return nil, err - } + name := strings.TrimPrefix(req.URL.Path, "/v1/internal/ui/gateway-intentions/") if name == "" { return nil, HTTPError{StatusCode: http.StatusBadRequest, Reason: "Missing gateway name"} } @@ -674,10 +658,7 @@ func (s *HTTPHandlers) UIMetricsProxy(resp http.ResponseWriter, req *http.Reques // here. // Replace prefix in the path - subPath, err := getPathSuffixUnescaped(req.URL.Path, "/v1/internal/ui/metrics-proxy") - if err != nil { - return nil, err - } + subPath := strings.TrimPrefix(req.URL.Path, "/v1/internal/ui/metrics-proxy") // Append that to the BaseURL (which might contain a path prefix component) newURL := cfg.BaseURL + subPath @@ -740,7 +721,11 @@ func (s *HTTPHandlers) UIMetricsProxy(resp http.ResponseWriter, req *http.Reques // Add any configured headers for _, h := range cfg.AddHeaders { - req.Header.Set(h.Name, h.Value) + if strings.ToLower(h.Name) == "host" { + req.Host = h.Value + } else { + req.Header.Set(h.Name, h.Value) + } } log.Debug("proxying request", "to", u.String()) diff --git a/agent/uiserver/README.md b/agent/uiserver/README.md new file mode 100644 index 0000000000..ee698a5bdf --- /dev/null +++ b/agent/uiserver/README.md @@ -0,0 +1,7 @@ +# uiserver + +The contents of `dist/` are generated by `make ui` in the root of this repo +which compiles `ui` assets and copies them here. + +A CI job (`publish-static-assets`) will detect any diffs in `ui` files and +commit the compiled files. Avoid committing files manually to `dist/`. \ No newline at end of file diff --git a/agent/uiserver/bindata_assetfs.go b/agent/uiserver/bindata_assetfs.go deleted file mode 100644 index 04c749595a..0000000000 --- a/agent/uiserver/bindata_assetfs.go +++ /dev/null @@ -1,986 +0,0 @@ -// Code generated by go-bindata. -// sources: -// pkg/web_ui/assets/apple-touch-icon-01cd4680782fbb5bc02301347df9903d.png -// pkg/web_ui/assets/codemirror/mode/javascript/javascript-77218cd1268ea6df75775114ae086566.js -// pkg/web_ui/assets/codemirror/mode/ruby/ruby-ea43ca3a3bdd63a52811e8464d66134b.js -// pkg/web_ui/assets/codemirror/mode/xml/xml-10ec8b8cc61ef0fbd25b27a599fdcd60.js -// pkg/web_ui/assets/codemirror/mode/yaml/yaml-3f129a000349e3075be0f65719884b61.js -// pkg/web_ui/assets/consul-acls/routes-75a2ac7d38caf09cfee2a4e2bc49dcf7.js -// pkg/web_ui/assets/consul-acls/services-8b6b2b2bea3add7709b8075a5ed5652b.js -// pkg/web_ui/assets/consul-nspaces/routes-f939ed42e9b83f9d1bbc5256be68e77c.js -// pkg/web_ui/assets/consul-nspaces/services-8b6b2b2bea3add7709b8075a5ed5652b.js -// pkg/web_ui/assets/consul-partitions/routes-cba490481425519435d142c743bbc3d3.js -// pkg/web_ui/assets/consul-partitions/services-85621f245f195fe1ce177064bfb04504.js -// pkg/web_ui/assets/consul-ui/routes-7726cc49168b83dcd93c923c97ebe93d.js -// pkg/web_ui/assets/consul-ui/routes-debug-8f884a3e3f7105d43b7b4024db9b4c99.js -// pkg/web_ui/assets/consul-ui/services-a17470cdfbd4a4096117ac0103802226.js -// pkg/web_ui/assets/consul-ui/services-debug-5a3f1d2e3954a05aa8383f02db31b8e6.js -// pkg/web_ui/assets/consul-ui-1931ddc38430fffd3fdb3a7ec5b01c18.css -// pkg/web_ui/assets/consul-ui-60e32dd57229711d8752c463a9d423d3.js -// pkg/web_ui/assets/css.escape-851839b3ea1d0b4eb4c7089446df5e9f.js -// pkg/web_ui/assets/encoding-cdb50fbdab6d4d3fdf574dd784f77d27.js -// pkg/web_ui/assets/encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js -// pkg/web_ui/assets/favicon.ico -// pkg/web_ui/assets/favicon.svg -// pkg/web_ui/assets/init-21ea65714d133467454b601efc15e2dd.js -// pkg/web_ui/assets/loading-cylon-pink.svg -// pkg/web_ui/assets/metrics-providers/consul-31d7e3b0ef7c58d62338c7d7aeaaf545.js -// pkg/web_ui/assets/metrics-providers/prometheus-5f31ba3b7ffd850fa916a0a76933e968.js -// pkg/web_ui/assets/vendor-69ef69e98b7d14d1513f8056b6c6b48d.css -// pkg/web_ui/assets/vendor-a8ab945788d03426b8cd1080cb42495f.js -// pkg/web_ui/index.html -// pkg/web_ui/oidc/callback -// pkg/web_ui/robots.txt -// pkg/web_ui/torii/redirect.html -// DO NOT EDIT! - -package uiserver - -import ( - "bytes" - "compress/gzip" - "fmt" - "github.com/elazarl/go-bindata-assetfs" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -func (fi bindataFileInfo) Name() string { - return fi.name -} -func (fi bindataFileInfo) Size() int64 { - return fi.size -} -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} -func (fi bindataFileInfo) IsDir() bool { - return false -} -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var _web_uiAssetsAppleTouchIcon01cd4680782fbb5bc02301347df9903dPng = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x8b\x67\x34\x1b\x0e\xd4\xb8\x13\x7b\xaf\xda\xbb\xa8\xbd\xc5\x5e\x41\xec\x59\xb3\xa5\x5a\x6a\xc5\x1e\x55\xbb\x84\xda\x45\x51\xbb\x45\x8a\xd8\xa3\x2a\x76\x51\xa3\x66\x11\xb3\xb5\xd5\x4c\x62\xef\xcd\xff\xfc\xfe\x1f\xde\xf7\xf3\x7b\xcf\xb9\xe7\xdc\xf3\x3c\xcf\x4d\x30\x31\xd2\x26\x27\x61\x26\x01\x00\x00\xe4\xba\x3a\x10\x53\x00\x00\x80\xfc\x6f\x89\x08\x00\x00\x80\xf2\x28\x81\x24\x00\x00\x00\xbe\x31\xd5\x56\x07\xd4\x8e\xb1\x62\x00\x00\x00\xc4\xe9\x99\xae\xb3\xa1\x21\x40\x10\x00\x00\x10\x01\x80\x71\xae\x00\xbc\xff\x12\x00\x00\xc0\x0c\xf8\x6f\x70\xe1\x40\x00\xee\xff\x27\x40\x00\x00\x8e\xf3\x3f\x16\x09\xc7\xfd\xdf\xfb\xbf\xd0\x72\x26\x2b\x18\x00\x60\x69\xd4\x85\xa8\x99\x07\x01\xf7\x6c\x09\x33\xcc\x35\x67\x3b\xf3\x4b\xdb\xcb\xf8\x5c\xa8\x9e\x76\x47\x73\x0a\x6a\x41\xf0\xe9\x9c\x92\x39\x05\xb1\xc3\x79\xe2\x30\x57\x89\xdd\xfb\xfe\x57\x17\xd5\x6d\xec\xd3\xca\x82\x9c\xb1\x6f\x2f\x5e\x3d\xf5\x7f\x9b\x29\x6d\x0f\xa6\x15\x87\x11\xab\xfd\xe6\xe2\xa2\x71\xce\x51\x9a\x92\x62\x2b\xbb\xe9\xba\xe8\xfe\x36\x8a\xfa\xd7\x11\x5e\x87\x45\xb4\x6d\x9f\x62\xf6\x2f\xb0\x1d\x6d\x6f\x77\x76\xb0\x21\x16\x17\xe1\x7f\xd2\x20\xc0\xc7\x3d\x38\xf4\xf5\xb0\x29\xae\x3d\xaa\x51\x2a\xfa\x54\x61\x4e\x80\x08\xcc\x4e\x80\x94\x08\x6c\x53\xa9\xa8\xe9\x80\x07\xc7\x27\x10\x76\x02\x02\xa1\xfa\x6f\xcb\xa0\x49\x00\xe4\x4f\x18\x42\x98\x13\xe0\x59\xb1\x4f\x9b\x4c\x0d\xa3\x67\xfc\x96\x81\x8f\x07\x17\x99\xc9\x2f\x92\xc0\x41\xe1\xe0\x66\x7d\x87\x01\x90\x88\x36\x33\x90\x16\xc0\xda\xee\xa7\x29\x3d\x15\xac\xc9\x3c\x30\xb1\x9f\x08\x4c\x4a\xf6\x6c\x18\x07\x07\x95\x85\x35\x9a\x60\x6c\x16\x57\x0b\xa7\xd7\x41\x06\x6a\x84\x39\x48\xf5\xc9\x82\x34\xc8\x56\x42\x99\xe7\xe1\x65\x35\xa4\xe8\x96\xd3\xe5\x09\xf2\xa1\x67\xac\x70\x3e\xa0\x6e\xd8\x84\xa2\x1c\xeb\xaa\xb0\x30\x20\x8e\xf2\x55\xb8\x98\x1c\xee\x4b\x1f\x0b\xda\xf7\x55\xa5\xb4\x8b\x33\x4f\x56\x2b\xfb\x2f\x6c\x05\x7f\x36\x68\xb3\xc9\xe9\xdf\x5e\x09\x38\x9f\x54\xb1\xf6\x74\xab\xca\xe2\x84\x60\x6d\x1e\x1f\xef\x11\xc4\x87\x6b\xd7\x25\x53\xdd\x85\xe3\x9e\x72\xfa\x3c\x4f\x6c\xaf\xc4\x53\x7a\xef\xd6\x2d\xd5\xc2\x11\x14\x47\x8e\x77\x70\xb8\xd4\x1d\x33\x10\xed\xd8\x0c\x03\xf8\x33\xdf\xf0\x58\xbf\xa7\xba\xf7\x27\x8f\x56\xb1\xc1\xfd\x37\x1e\x1e\x7d\xb9\x35\x0b\x42\x5c\x72\x1c\x9f\xd6\xa5\xc2\xf6\x14\xc3\xbc\x0f\x3f\x2e\x32\x7c\x41\xc4\xdc\x66\x8a\x07\x25\xe3\xa0\x16\x14\xf8\x3b\x2b\xf0\xdb\x56\x6c\x93\xeb\xc4\x7c\x41\xf7\x33\xab\x4b\xb1\x0d\x0c\x65\x66\xcc\xad\x77\xc5\xb1\xe0\x7f\x68\xfb\xd5\xe5\x9a\xf9\x43\x85\x13\x13\xd4\x2c\xcc\x68\xf5\x8b\xec\xe5\xb5\x0b\xea\x6e\x4c\x30\x7e\xd5\xbf\xe7\xf7\x1a\xdb\x77\x21\x3c\x23\x66\x60\xe4\x23\x0a\x3c\x97\xe7\x3f\x7f\x1b\x3e\x45\xb4\x8b\x00\xd9\xfa\x2b\x20\x87\x9b\x1f\xbf\x86\x1e\x59\xa5\x26\x5d\x94\x4b\xc2\x27\x44\x03\x5a\x6c\x57\x55\xfd\x5e\xf1\xab\x84\xd2\x5e\x52\xcc\x4d\x41\xb1\x12\x7f\x06\x54\x60\x5a\xab\x04\x0c\x61\x14\x6c\xe3\xc2\x91\x7f\xaf\xb5\xb6\x62\xa5\xd5\xf1\xf1\xdf\xef\xc0\x83\x26\x9f\x52\x31\xca\xe2\xb0\xbe\x0c\x15\x86\x3e\x67\x47\x0d\x99\xd0\x46\x3d\x3c\xa7\x60\x1b\xef\xa4\x3c\xea\x0f\xe0\x5e\x4d\x6a\xa7\xa8\x3d\xe6\xe2\xcf\x55\x22\x48\x1c\x57\x9a\x3c\xfe\xd9\x24\x0a\xf7\x85\xec\x87\xb9\x32\x21\x1f\xde\x51\x8b\xd6\xbf\xf5\x25\x4c\xa3\x16\xf2\xb7\xa0\xd7\xc0\xe0\x0f\xa8\x1f\x45\x73\x03\x48\xaa\xe5\x5f\xdb\xd0\xa0\x96\x3e\x58\xaa\x2d\x7c\x91\x45\x90\x53\x72\xe3\xe8\x7b\xe7\x2f\xbe\xdd\x34\xf1\xed\xc5\x3b\xe4\x90\x86\x78\x5b\x80\xea\x56\x4c\x61\x29\x77\xe6\x94\xa3\x17\x9d\x44\x69\x75\xe1\x13\x8b\x26\x96\x3f\xec\x57\xff\xde\x7d\xbd\xbd\x3e\xca\x9a\xff\x56\x8f\x07\xff\x94\xc6\x88\x54\x6d\x35\xc9\xe3\xb3\xf1\x9c\x89\x3a\xa3\x1c\x62\x3a\x54\xbb\xca\xe4\x53\x9b\x60\x92\x23\xef\xae\x09\x6e\xf8\x80\x01\xb2\x3d\x3f\x7a\x04\x5a\xb9\xc3\xe9\xf3\x71\x80\xe8\xdc\xd3\x1f\xee\x77\xb1\x98\x2f\xfb\x67\x21\x97\x0a\x1e\x6c\x4f\xbb\x26\xa7\x61\xfb\x97\xdb\xed\xa8\xf3\xbe\x05\x9b\xfc\x88\xd3\x66\x04\x46\x1a\x2e\xbd\x9b\x7e\xa2\xad\x31\xf7\xc4\xc1\xf0\x06\x05\xd5\x03\xf3\x29\xa8\xa3\xfc\xb7\x1b\xa8\xac\xcf\xf3\x31\x6a\x8e\x7d\x04\x41\x17\x6c\x80\x19\x29\xd1\x8c\x1f\x0f\x49\xe5\xaf\x64\xf2\x0d\x08\xd1\x68\xd9\x2e\xf5\xf5\x1a\x63\x0d\x56\xe5\xd5\xe8\x6f\x0d\x80\xd6\x46\xcb\x95\x50\x20\xca\xbc\xcf\xe0\xb5\x20\x38\xb0\xf3\x90\x1a\x39\x16\xe6\x59\x55\x58\x9f\x5b\xed\x61\x6a\xcb\xc6\x2e\x6b\x7e\xfb\x8f\x8c\x5f\x61\xcf\x64\x0a\xf9\x93\x16\x66\x14\xa0\x0d\xbf\x12\x7b\x88\x15\xf5\xe7\xa2\xe9\x59\xc1\x79\x82\x66\x30\xbd\xbf\x99\x02\xbc\xe8\xa7\xf4\x91\x54\x82\x0b\xe0\x94\xfc\x9b\x1f\x78\x7c\xdd\xcb\x7b\xaf\x2c\xe0\xb6\xe8\x05\x5c\xe9\x0e\x55\x3f\x53\xfe\x24\x91\xde\xff\x57\xe5\x6f\x2c\x81\x7f\x51\x23\x29\x73\x6d\x30\x59\x51\x8b\x3d\x17\x24\x82\x94\x96\xac\xf2\x7d\xb8\xb1\xa1\xec\xa9\x8e\xe7\x5f\xf2\x3b\x88\x3e\x15\xb6\x2e\x84\xec\xf5\x0e\xf3\xe9\x81\xee\x57\x20\x2a\xac\xed\x76\xde\x8c\x9c\xdc\x19\xcb\xab\x81\xd3\x56\x56\x8f\xcb\x5c\xab\x25\xbe\xd0\x37\x3a\x85\xee\x62\xb0\x2e\xac\xed\xdc\x09\x83\xa3\xc4\x8a\x3f\xfc\x03\x18\x4e\x4c\xd1\xe4\x48\xe4\x59\xc7\xdf\xd3\xc3\x4d\xea\x2a\x17\xc6\x81\x0f\x12\x1a\x67\x56\x5a\xb1\x04\xb1\x38\x20\xfc\x62\x99\x55\x10\x77\xe7\x73\x0f\x87\x11\xb4\xa2\xa8\xa6\xe0\xbd\x0b\x17\x6d\x41\x10\x67\x76\x1b\xb2\xbc\x4f\x1c\x56\x2a\xff\xa6\x17\x29\x4f\x35\x40\x6d\x1d\x2f\x21\x6c\x22\x71\xe7\xcf\xaf\x70\x27\xee\xc0\xcf\x6d\x46\xea\x00\x60\xd6\x7d\xc6\xec\x1d\x3c\x3c\x6d\x17\x00\x2f\xcb\xab\xaa\x25\x5b\x94\x76\x42\xa7\x24\x6c\x48\xa0\x0d\x0e\x84\x89\x57\x7b\x33\xf4\x43\x80\x63\x1a\x9f\xd2\xe4\x50\x79\x21\x5c\xd1\x62\x5c\x95\xdd\x1c\x62\x77\x2c\x13\x52\xef\x27\x7e\xe0\x8d\x94\xdd\x13\x24\x8e\xcb\xeb\xf1\x26\x25\x99\xfd\xa6\x82\x79\x5d\xed\x8c\x50\xbd\x6c\x1c\x93\xb3\x4c\xfb\x9a\xe0\x62\x27\x7d\x49\xc1\xcc\xe3\x49\x1e\x7a\x0e\x56\x67\x0c\x93\xbf\xc5\x97\xac\x35\x30\xc3\x8b\x40\xd5\xbf\xb5\x49\xfd\xe9\x2c\x94\x60\xe8\x78\x16\x82\x79\x23\x19\xe9\xa1\xaf\x40\xa4\xd9\x98\xf1\x22\xe8\x0b\x85\x74\x55\x9d\xe9\xc5\x5b\xf4\xaa\x50\xa1\x4e\x3b\x0c\xfb\xb9\xe7\x9c\xc2\xa8\x90\x30\x2c\x6e\x8f\x3c\xc6\xe1\x9c\x50\x55\x65\x4f\x51\x28\x31\xc7\x32\x07\x2c\x28\x91\xb0\x4b\xc0\xf6\xad\x6d\xc5\x86\x9c\x98\x75\x2e\x38\x1e\x29\x14\x6f\xf4\xe0\x4c\x67\x0b\x64\xbb\x0b\x51\x9e\x36\x0e\x9d\xfe\xd6\xc9\x04\x4a\xe6\x14\x84\x15\x1d\xc5\x45\x46\x4c\x87\x0f\xea\x6e\x4f\x20\x0a\x05\x50\xd9\x4d\x77\x09\x21\x8f\xa3\x64\x1c\x9e\x68\x96\xb1\x93\x64\x36\x17\x8c\x62\xcf\x5f\xec\x57\xb1\xc0\x31\x8f\x7d\x4e\x34\x29\x99\x24\x69\x16\x12\xcc\xe2\x8a\xa4\xb4\xd4\x25\xb4\x7c\x5b\x08\xcd\xfd\x30\x44\xad\x99\x7d\xb3\x32\x3a\x3f\xf7\x43\xdc\x63\x4a\x6f\x43\x22\xeb\x09\xc1\x33\x85\xe1\xa4\xab\xa0\xc0\xe9\x44\x15\x58\x7f\xbc\x87\x75\x01\x69\x44\xab\x91\x97\xaa\x9f\x80\x36\x0b\xd1\xa9\xf9\x2b\x99\x4d\xbc\x2d\x33\x92\x19\xf2\x44\x7b\xf3\x9b\xb0\x24\xb7\x88\x63\x36\x74\x37\x26\x81\x59\x40\xc9\x4d\x75\xc8\x62\x9a\x6c\x4c\xbb\x75\xbe\x82\x14\x6e\xc3\x11\x4e\xbe\xfe\x90\xb5\x35\x99\xbc\x10\x9c\x67\x4d\xbb\x46\x64\x11\xf0\xcb\x9b\x47\xc1\xc6\x8b\xce\xdd\x84\x1a\x5f\x11\xa9\x7a\x25\x63\x2a\x23\x3c\xee\x8e\xe8\x8b\x40\xbf\x34\x79\xf3\xf0\xab\x34\xd9\x04\xe3\xae\xbe\x0f\x2b\xe5\xbb\xba\x16\x90\x22\x7f\x24\xa3\x49\x19\xb4\x69\x55\x40\x56\xd0\x71\x73\xd1\x98\x5c\xd1\x39\x10\xe1\x1a\x4d\xcf\xca\xaf\xce\xf1\x4e\xc8\xc6\x9b\xc3\xf4\x74\x56\xc9\x3f\xd7\x6b\x9c\xe0\x3b\x9d\x85\x49\xaa\x18\xfc\x93\x6e\x79\x97\x3f\x3d\x44\x1c\x0b\xf1\xf6\xe5\xc2\x04\xfd\x22\x5f\x7f\x0c\xa3\x54\xb7\x4c\x3f\x1c\x50\x05\x8f\xbc\x3b\x79\xe3\x97\x6e\x92\x63\xb1\x57\x3d\xd2\x1d\xf9\x74\xc5\x92\xa6\x16\xb6\x1f\xe6\xcb\x84\x5c\x54\x7d\x15\x78\x43\xb7\x3b\x67\xec\xd7\xe4\x7b\x60\x59\xdc\x2e\x2a\x4c\xab\xe3\x1f\x0b\xbf\x32\x1e\x57\xbb\x88\xc3\x68\xbb\xfb\xe1\xd6\xe4\x4b\xcd\x1c\x76\x8e\x5e\xfd\x8d\x65\x81\x87\xe6\x29\xda\x4f\xb5\x5e\x68\x70\x31\x0e\x6b\x1b\x8f\xd6\x0a\x14\xc8\xd1\x08\xf2\x5f\xf7\x14\x99\x3f\xab\x88\x75\x7b\x18\xe0\x82\x3e\x2c\xa8\xeb\x2c\xc1\x8f\x76\xad\x63\xec\x0a\x78\xf7\x1c\x4b\xb3\x1a\x87\x5d\xbc\x60\x5e\x6d\xef\xd8\x6b\x11\xb5\xd3\xa3\x5e\x63\x5c\xaa\xe6\xcb\x7e\xf4\xb4\x5c\x36\xa9\xf9\xd1\xa5\x9c\x86\x81\x4a\x42\x47\x37\xd4\xf8\xcf\x96\x8a\x89\xb6\xe6\x25\x47\xf2\x60\xa4\xf0\xa1\x72\xf2\xa9\x87\xd2\xcf\xd4\x02\xaf\x74\xf7\xaa\x85\x3c\x46\xfc\x56\xcc\x56\x78\x0d\xcf\x86\xcb\x0a\x63\x77\xb0\x16\xbf\xaf\x23\x6f\xcd\xf8\x71\xd5\x93\x5e\x44\xf8\x2a\x76\xd9\x0d\x02\x0c\xf2\xeb\x29\xff\x54\x90\x87\x82\xb5\xd7\xbf\x61\x6e\x09\x9b\x64\xd2\x73\x05\xa4\x56\xfe\x26\xe7\x22\xdc\x5c\xb8\x73\x8e\xea\x2c\x89\x14\x49\xfd\x95\xce\x96\x2d\x27\x39\x16\x1d\x74\xe8\x5c\xea\x39\x86\xcb\x3c\x8b\x99\xf5\x95\xbb\xd1\x52\x6f\xb6\x79\x8a\x90\x99\xe1\xf5\x49\xcc\xa9\x7b\x4d\x1b\x57\xbc\x91\x73\x76\xed\xef\xe6\xfc\x65\xd6\x5b\xb3\x98\xc4\xfe\xf1\x8e\x1f\x23\x2b\xf5\x29\xcb\x83\x54\xa8\xc9\x34\x86\x0e\xfa\x4b\x44\x8a\x37\xd5\x4a\x7d\x31\x1b\xa2\x73\x2a\x81\xf5\x59\xd7\xc3\x9d\x0c\xa3\x0c\x18\xdd\x65\xa8\xcd\x9f\xef\x2c\x76\xe9\x51\x5f\x29\x3b\x87\x88\xb6\xa6\x79\x91\x2a\xdf\x01\xaf\x55\xbd\x8c\x94\xfb\x36\xa4\xcc\xc0\x84\xbe\xee\x4d\x65\x88\x4f\x09\x6b\x73\x5e\xd8\xfd\x38\xbb\x70\xbc\xee\x24\x57\x54\xf4\xb7\x46\x40\xda\xc3\x60\x66\x4a\xb0\xfe\x06\xfd\x68\x3b\xab\x14\x78\x47\x5a\x61\x2a\x56\x77\x14\x37\x1b\x10\x69\x4d\xe4\x40\xba\xaa\xf5\xfc\xf2\x44\xfa\xbb\x50\x42\xf5\xbd\x66\xc0\x5c\x18\xa9\x24\xae\xff\x1f\x96\xc2\x1d\x49\x05\xab\x5b\xdf\xa2\x0d\x8f\xc2\x3a\xb5\xbe\xb7\xc7\x22\x60\xaf\x1a\xd3\x79\x97\xdc\xec\xc3\xcb\x66\x67\x02\xf4\x18\x83\x4a\xc6\x9c\xc1\x5e\x22\x5d\x71\x19\xeb\x26\xf6\x51\xcf\x00\x0e\x45\x1d\xe1\x49\xe6\xc8\x8a\x42\x59\x39\xfb\x6c\x0f\x1e\x0a\xa2\xce\x6e\x3b\x92\xbd\x17\xdf\xd4\x30\x52\x57\xf8\x73\xfe\xe5\xda\x7d\x05\x3d\xb8\x56\x71\x25\x32\xb4\x84\x7d\xe8\x7a\x4e\xd1\xdf\x6e\xf6\xc4\xfa\x8b\x23\x0e\x9a\x62\xac\x58\x2a\x99\x66\xe6\xe2\x76\xec\x58\x60\x04\x89\xf6\xa9\x39\x78\x9a\xd8\xb9\xde\xb7\x94\xa6\x0f\x55\x6e\xc3\x73\xa0\x7b\xae\xef\x65\x48\xeb\x06\x4e\xe3\xff\x7a\xd1\xf5\x34\x28\xb3\x6d\x0d\x72\x25\x28\x63\x34\x3d\x27\xbe\x52\xe5\x2a\xfb\x8d\x8c\xbb\xaf\x21\x01\x57\xfb\x58\x6f\x97\x9b\x61\xff\xef\x77\xfa\x51\x59\xcb\xc1\x57\x1a\x43\xef\xa3\xe6\x09\x68\x1e\x07\xda\x2d\xaa\xb9\x79\x73\xd7\x5a\xd9\x03\xe7\xc5\x7d\x67\x32\xd4\x17\x8a\xbd\xf7\x21\x90\x83\xb9\x0e\xfa\xdc\x6c\x5e\xb5\xee\xf0\xf6\xca\x72\xb5\x7b\xc4\x3c\xee\x75\x8d\xd8\xc6\x9f\x5a\xb5\xa1\x63\xf7\x54\xb0\x49\xfc\x3e\x3d\x5c\x2d\x66\x8d\xa6\x57\x68\x56\x7d\x37\x5b\x64\x55\xf8\x54\xbd\x5b\xa5\xdd\xc3\xd6\x77\x8d\xb1\xac\x5c\x00\xbe\xce\x92\xd7\xa2\x70\x60\x56\xa0\xdc\x80\x30\x40\xb1\x05\x0b\xd3\xc1\xe3\xfa\x34\x2e\x32\x5e\x0a\x57\x0d\x05\x78\x1b\x6e\xa3\x6c\x49\xaf\x24\x76\xcd\xc0\xee\x4c\xb1\x46\xc4\xd4\xf4\x3a\x8d\xb0\x52\x18\xc5\xbb\x3e\x31\x21\x8b\x23\xc8\xfa\x53\xb2\x12\x66\xcb\xb0\xd9\x01\x9c\x3c\x60\x5e\x98\xbd\x80\x06\x1d\xe5\x57\xa7\xb6\x49\x7d\xa3\xd5\xa7\x99\xe5\xbd\x8e\xf4\x28\x32\xd4\xd7\xcd\x95\x03\x2a\x6c\xef\x24\x85\x26\x1f\x07\xd9\x98\xa9\xc3\xf6\xb5\xdd\x5c\xb8\xef\xc1\xef\xff\x9c\x3d\x1e\x48\x4c\x40\xe5\x0d\x4f\x5d\x25\x44\x99\xb7\x01\x16\x00\x7b\x79\x25\x95\x5d\x7a\x93\xe6\x3e\x56\x39\x31\xff\x82\x0c\x7a\xa4\x07\x7a\xde\xb4\xe3\x8a\xfd\xeb\xaa\x96\x9f\xb9\x84\xc3\xc7\xd1\x83\x9d\x5d\xeb\x4c\x12\x01\x2b\xfd\xed\xab\xc4\x0a\x1f\x4b\x90\x4e\xcf\xe0\xa1\x94\x6e\x5f\x0c\xcd\x66\x24\x54\x1c\xe6\xdc\x31\x7e\xb6\x5d\xda\x73\xc8\x89\x4a\x29\xe0\x83\xbe\x8f\x9c\xdd\x44\x24\xe1\x0d\x6a\x10\xea\x84\xed\x0b\x92\xc3\x5c\x7c\x44\xbc\xe4\xc8\x7e\x06\x90\x65\x46\xe9\xcc\xcc\xf4\xdf\x63\xd9\x0d\xd4\xd8\xac\xcf\xef\x2c\x39\x5f\xa7\xa8\xaf\xc4\xab\x25\x3e\x3c\x6e\xf7\x69\x48\xfe\x72\x63\xf6\xc6\x30\x44\xfc\xb2\xc8\xf1\x98\x91\x3f\xcf\x47\x2e\xa0\x5a\xa3\x21\x16\x4a\xc3\x33\xf2\xa1\xaa\xf6\x10\xca\x43\xf7\xc5\x37\xcd\x39\xf9\xcf\xae\x16\x1a\xbd\xdc\x81\xd6\x4f\xa8\x33\x26\x16\x9a\x3e\x37\x42\x4c\xf7\xb6\xd4\x7a\xf1\x3c\x1e\x53\x1a\x5e\x66\xb1\x3e\xa6\xe3\xa9\x7f\x57\x61\x2a\x17\xc2\x68\xce\x19\x07\xf2\x0c\xdc\x4e\xcf\x0a\x7d\x15\x6d\x54\x02\x1c\xe3\xb9\xe7\x8e\x03\x8f\x26\x91\x4a\xeb\x33\x94\x0d\xb1\xe6\x5d\x62\x83\x88\x92\xdd\xb4\x1e\x25\x7e\xaa\x2a\x94\x24\x65\xf6\x8e\xd0\x3a\x12\x75\xf5\x30\x23\x05\x39\x00\x30\xfd\x0d\x2e\xe0\xcb\x4f\x1c\xe4\x53\x20\x9c\x37\x77\x4f\x28\x35\x2e\xd6\x66\x14\x23\x73\x33\x76\xb5\x52\xff\x18\xe7\xe3\x42\xd8\x33\x0c\x15\x1e\xce\xd4\x2c\xc5\xa7\x1a\xfb\x7e\xfd\xb9\x46\x55\xcd\x79\x15\xa3\xbf\xf0\xc2\x4a\xfd\x49\x94\xa2\x07\x07\x92\x79\xd4\x92\xa0\x2b\x49\x6c\x1c\x57\x96\x4b\xd7\xa1\xac\x0f\xb3\xcd\x9c\xde\xc4\x77\x53\x6a\xaf\x07\x26\x4c\x3e\x9e\x37\x2d\xde\x1c\x7c\x59\x0c\xca\x60\x29\xbd\x1a\x7f\x18\xae\x66\x9f\xb4\x42\x3e\x76\xff\xc4\xfa\x35\xfe\xa8\x40\x64\xcf\x2f\x71\x4b\xb8\x98\x19\x45\x5b\x3a\xc6\x8d\x8c\xbd\x2f\xb0\x65\x1c\xf2\xa4\x75\xfd\x7c\xa6\x00\xe2\x16\x28\xb2\x1c\x0a\x47\x7b\xe7\xf3\xc7\x7e\xde\xcf\xe1\x4b\x43\xa2\x67\x8c\xb8\x10\x98\x97\xb7\x99\xd5\x58\x0d\x1d\x4e\xda\x91\xd4\xf7\xf9\x63\x43\x88\x77\xdc\x2c\x01\x62\x77\xd6\x96\xf9\xad\x24\x15\x04\xa0\xba\x89\xb9\x0f\x43\x53\xc9\x5c\x90\xca\xc9\xfb\xdf\x34\xbc\x58\x13\x6c\x02\x2f\x8f\xf5\xb4\x7e\x09\xf9\x77\x95\x37\x5b\x1e\x6d\xd1\x56\xb5\x86\xa1\xd6\xae\x21\x9d\x97\x75\x86\xae\x07\xc5\xa7\x70\x37\xf0\x80\x3c\x42\x8c\xd7\x0a\xc2\x4d\x84\x2f\x96\xba\x22\xa6\x8f\xb1\x6e\xa1\x51\x28\x0c\x2d\x74\xa2\x63\x3a\x30\x7c\x68\xd1\x8b\xce\x5a\x9b\x4c\xec\xc9\x24\xcd\xd6\xd2\xcd\x99\xc6\x6d\x7b\xfa\xb9\xd5\xd8\xba\xb8\x84\x55\xf8\x6f\xd5\xab\x61\xd9\x77\x2a\xbc\xed\x3d\x60\x61\xb5\x77\x85\xd7\xcf\xa1\x53\x0a\xa1\xc0\x43\x66\x61\xd3\xb3\x32\x13\x81\x27\x6b\xfd\xa7\x01\x98\xbe\xb8\x48\x06\xbd\x12\xc0\x55\x65\x23\xd5\x0c\x6c\xec\x92\x74\x46\xbd\x3d\x23\xd4\x84\xaa\x7a\x79\xf2\xbc\x4f\x3d\x7e\x9d\x97\x86\xf2\x6b\xb0\xd3\xce\xef\x3f\xc1\xe6\x8d\x1a\x6c\x9d\xef\x09\x0f\x0e\x95\xff\x30\x88\xc5\xda\x21\x1e\x51\x52\x80\xfd\x1e\x2c\x94\x75\x66\xb6\x2c\xa8\x3c\x3e\xd7\x76\x2e\x3b\x60\x81\xf9\x0e\x98\xd2\x66\x2e\xe9\x83\x8c\xcc\x99\x48\x6a\xaa\x10\x92\x3b\x3a\x33\x6b\xe9\x82\xc9\x64\x90\xcd\xc4\x81\xcc\x61\xb5\x69\xe2\x68\xc9\x4f\x62\x79\x53\x39\x67\xc6\x20\x49\x72\x90\xdc\x66\x39\x24\x85\x56\x9b\x82\xdd\x6b\xd8\xdb\x2c\x78\x87\x87\xcc\xe7\x7c\xb0\x42\xd2\x85\xe9\x0c\xb6\x25\xfe\x9a\x1a\x53\xb4\xac\x4e\xac\xfe\xe8\x1f\x7f\xa0\x74\x54\x5d\xf8\x70\xc7\xd8\xf1\x4e\xff\x7b\x97\xec\x5d\xcc\x2e\x34\xb5\xe2\x76\x3d\xf7\xf9\xdb\x62\xb9\x9e\x79\x42\x31\x7c\x86\x7d\xf1\xd2\x47\x79\xb2\x56\x0f\x9b\x38\xa3\x5a\x2e\x95\x1a\xd2\xf0\x4c\x15\x48\x89\xfb\xb3\x5a\x87\x5a\xb7\xf3\x89\x9e\x56\xff\x55\xb6\xa1\xe5\x2a\x63\xd9\xda\x90\xd5\x92\x8e\x0b\xa1\xec\xc0\xef\x81\x4b\x8f\xac\x80\x7b\x6b\x88\x47\xc3\xa5\x0b\x11\xfb\x67\xab\xc2\x94\x25\x8a\x1d\xbd\x12\x62\xa5\x1f\x97\x37\x11\x9f\xe1\xb7\x95\x9f\xba\x23\xfa\x54\x4c\x60\x8e\x52\xc8\x29\x9d\xd6\xbe\x9b\xf1\x76\xea\xdb\xe2\xc6\x25\x61\xb3\xbd\x91\x34\xb2\x81\x00\x28\xe0\x83\x98\x52\xcf\x4a\x03\xc6\x90\x78\xfb\xb9\xb3\xcf\xa8\xa5\xec\x26\x67\x89\xe3\xe7\x82\xee\xb7\x73\x89\xae\xe1\x63\xcf\x5f\x46\xb3\x46\x32\xe0\x5e\x95\x46\x77\x3d\x13\xf2\x0c\x0b\x0a\xa8\x22\x08\x09\x32\xab\x24\x7d\xc2\xcb\xd5\x45\x1e\x52\x4f\x7f\x06\x4b\xf9\x46\x08\xd2\xa4\xda\x11\xa8\x2f\x64\x01\x2d\x80\x87\xca\xd8\x4e\x1d\x4c\x49\x8a\xc2\xb0\xba\x81\xe4\x33\x55\x56\x4b\x98\xd3\xa1\xb7\x06\x67\x19\xdc\x4c\xf6\xaa\x75\xd3\xd8\xc8\xc7\xd9\x12\x92\xf9\x1f\xbd\xbd\x46\xfd\x13\x47\x7c\x5f\x0a\xe9\xbe\x60\xee\x6d\xa1\x39\x83\xa5\xec\xe7\x44\xc1\x62\x3a\x43\x9e\x24\x1f\x78\xea\x1b\xdb\x58\x1d\x68\xdb\x2e\x3f\x62\xbb\x9e\xad\xd3\x2f\x3e\xa9\x36\x97\x86\xd7\xa4\x72\x28\x64\xef\xb1\xa2\x47\xaa\xab\x06\x57\x53\xa6\x2c\x54\x71\x2d\x6a\x99\x51\x4a\x0a\x8a\x43\xf6\x05\x05\x35\xc6\xac\x3a\x45\xb5\x65\xe8\x3b\x93\x6a\x97\x85\xcc\x59\x11\x80\x48\xef\xeb\x8c\x6a\x53\x63\x6a\x58\x96\xf7\xbb\x99\x2a\xd6\xd5\xd7\x0f\x81\x06\x06\x47\x21\x24\xd4\x6f\xa7\x52\xe8\x29\x39\x52\xfc\xf7\x84\x57\x7f\x38\x66\x57\x6a\xb0\xbe\xa7\x8a\x07\xc7\x9f\xb3\x0c\x8e\xf7\xca\xbe\x16\x0f\x22\xa8\xe7\x13\x35\x9e\x51\x1b\x72\x99\x81\x95\xc2\xb4\x67\xef\x51\x47\xa5\xbb\x69\xd4\x7a\xcc\x5f\x8c\x9f\xc7\x75\x81\xd7\x50\xa4\x11\xad\xa2\x85\x23\x16\xb6\xeb\xfd\xd5\x75\x4c\xcd\xd9\x16\x4b\xf2\x37\xbf\x68\x7f\xcf\x87\x5d\x90\xba\xde\x65\x08\xd0\xd6\xae\xc5\x12\x7f\xc7\xb5\xc5\x0c\xa0\xce\xce\xf5\xe0\x49\xcf\x3b\xd4\xbe\x9f\xf6\xf2\x33\x47\xc8\xc9\x8d\xf8\x79\x8f\x39\xfe\xf1\x1f\x68\xa8\x04\xee\xf5\xe0\x5f\x32\x3a\x30\x4c\xb2\x1b\xb1\xbf\x53\xcc\x73\x1e\xf0\xce\x30\x7d\x4e\x09\xbe\xf9\xb8\xc6\x41\x6b\x00\x5f\x08\x9b\xe8\x05\x3f\x15\xc0\x94\xb0\xd8\x42\x8b\xdd\x65\x34\x96\xd6\xad\x36\x37\xc2\x52\x56\x4b\x0d\xa6\x1e\xc6\x16\x86\x2a\x84\xa2\x1f\xbb\x6c\x98\x19\xdd\xb3\xc7\x0c\x5a\x57\x66\x96\x17\x68\x8c\xcc\xdd\x9b\x57\x55\x5b\xfe\x93\x77\x3b\x25\x4a\x62\x01\x66\xd8\x7f\x28\x43\x81\xca\xe2\x71\xa0\xf2\xa4\xf8\x03\xce\x38\x6f\xea\x04\x91\x32\x2b\xb7\xdb\xdb\xa1\x5d\xa5\xef\x3e\x3e\x46\xb3\xd4\x86\xfa\xf1\x89\x5f\xd0\x97\xa6\xb5\x63\xc6\x5c\x1e\x9f\xfe\x6b\xee\x88\x33\xef\xaa\x22\x00\x25\xa3\xaa\x63\x82\x54\x83\x3c\xea\x5d\xdc\x09\xef\x7c\x82\xa5\x64\xe8\xd8\x55\x5f\x34\x91\x3a\xcb\x2c\x65\x7e\x29\xa6\xaa\x46\xa5\xd7\x39\xd9\xd2\x5c\x6f\x10\x0e\xd2\x73\x2e\x45\x4b\xc4\xb5\x5a\x96\xc7\xb3\x76\x39\xf5\x87\x8d\xf6\x8c\x4d\xe3\x32\x77\xd4\x3e\x23\x55\x4e\xfa\x15\xfe\xba\x30\x06\x64\xa5\xc8\xaf\x1d\x5f\x15\xf5\x2e\x54\x97\x32\x41\xf4\x32\xd1\xb7\xd5\x7c\xf2\x36\x0c\x3a\x17\x98\xc8\x1e\xce\x5d\x15\x6e\x54\x85\xfb\x8b\xb9\xf4\xd8\xa7\x44\x04\xb9\x67\x17\x46\xda\x2f\xf1\x9a\xa7\x95\xbe\x88\x19\xb5\x0f\x0c\xcb\x42\x16\xb1\x4e\x62\xb7\x24\xcb\x1f\x2d\x71\x56\x79\x29\x2a\x5a\x49\x18\x8e\x65\x1b\xab\xb2\x4d\x29\x9c\xd4\x7b\x56\xf6\x64\x7c\xb2\x49\x70\x9c\xcf\xb2\xea\x31\x56\x3f\xfb\x35\x0b\xfd\x24\x6d\x28\x0d\x0f\xae\x99\xd0\x8a\x58\xed\xbd\x4b\xab\x92\x7a\xc7\x7d\x11\xf3\x5d\xdf\xf8\xb7\x85\xc1\xcc\xd5\x1a\xb1\xb6\x4f\xe1\xf2\xa9\xe0\xae\xf0\x04\x2f\x9e\x50\x05\x2a\xf0\x85\xd0\xab\x37\x33\xb0\x2d\xe9\x44\xaa\xc6\xac\xa7\x25\xfe\xc3\xcf\xf8\x95\x23\x40\x8f\xde\xe2\x0c\x90\xc7\x25\xb2\x9c\x8d\x34\x97\xcb\xe1\x09\x69\x48\x72\xfa\x49\x5b\x70\xf9\xf5\x36\xfa\x2d\x99\x49\xc3\x31\x0c\x86\x5f\x3c\xab\x63\x68\x26\x50\xbd\x5f\x9f\x96\xec\x62\xcd\x4a\xcc\x9d\xfa\x9a\xcb\x62\x50\x89\x04\xc9\xb7\x16\x81\xc6\xb3\x49\xf4\x42\x1c\x1d\x50\x18\xc9\x6a\x6f\x39\xeb\x57\x93\x1a\x83\x5a\xc4\x32\xee\x79\x6a\xbe\x53\x56\x01\x43\xd8\xb3\x97\xa4\x4f\xc9\xa1\xa6\x51\x56\x90\x80\xcb\x93\x42\x24\xb4\xc1\xf9\x82\x3f\x4f\x8e\x06\xcb\xde\x4e\xf3\x43\x63\x1a\x21\x7c\xb2\xfb\x92\x5b\x7e\x6a\x6a\xd0\x1b\xef\xeb\x55\x68\x6d\x45\x09\xcb\x1b\x0a\xcb\x5b\xfb\xd7\x5a\x6f\x05\x08\x90\x06\xce\xa1\x7a\x62\x2a\xec\xba\xd1\x48\xe2\x86\x29\x02\x94\xa0\x22\xa8\xd8\xe2\xfa\x0b\x51\x87\x98\xb7\x7c\xc5\xb8\x93\x41\x97\xe9\xda\x50\x5b\xd7\x2b\x5c\x8b\xc0\x02\xc2\x65\xb2\x88\xae\x5c\x5a\x78\x4b\xc7\xf0\xe7\xf1\xa8\xfb\xf1\x45\x00\x48\x56\x36\x31\xf5\x40\x67\xc9\xc1\x0a\xb8\x47\x54\xfa\x88\xb9\xfb\x66\xb4\x43\xd4\x85\xc8\xf2\x48\x5e\x1b\x77\xf3\xd5\x38\xaf\xb9\x36\x26\x66\xc0\x49\xa8\x08\xfd\x85\x77\xb7\x18\xc2\x36\x13\x74\x62\x96\x28\x38\x56\x26\xee\xe9\x41\x16\xb4\x4e\x81\x5a\x50\x55\xf8\xbc\x4f\x93\x2f\x7a\xad\x02\xb1\xac\xeb\x5d\x42\x86\xe8\x20\x03\xd5\x70\x34\x5a\xbe\x68\xca\x49\x57\x09\x12\x04\xbe\x15\x08\x4a\x4b\x6f\x3a\x44\x7f\x65\x7a\xa8\x6d\x58\x2a\xbc\x90\x27\x79\x28\x42\xb4\xca\xf9\x8d\x4f\x94\x1b\x46\xd6\x9d\x7e\x2c\x82\xb4\xd1\x87\x51\xec\x3d\x84\x05\xc6\xb1\x39\x15\x05\x14\x23\x87\x81\x06\x62\x45\x08\x28\x0e\xba\x20\x56\xe6\xaf\xf8\x3f\x76\x91\xb3\xe1\xa0\x3a\x6c\x3b\x2f\xae\xa7\x5c\x8e\x5e\x3c\x2c\xcd\xe1\x58\xb7\x78\x3e\x36\xeb\x32\xc4\x67\x34\x77\xf2\xd9\x14\x0d\x3f\xe9\x84\xe3\xf0\x3f\x75\x42\xe6\x66\xb2\x5a\x3b\x11\x66\xd4\xd9\x16\x89\x88\x57\xef\x05\x3b\xce\xef\xf4\x0e\x81\xbc\x1f\x76\x68\xb0\xb3\x5d\xa9\x1e\x08\x08\x5a\x1a\x0c\x44\xbf\x3c\xed\x7f\x31\x98\xf9\xf4\x80\x51\x75\x2b\x99\x96\x6e\xc3\x13\x38\x0a\xd8\x53\x0d\x3b\xf8\x91\x69\xe2\x67\x2f\x99\x06\x5b\xbd\x75\xd2\x13\xa5\x76\xf2\x74\x04\x8e\x02\x0c\xb9\x41\x35\x88\xe3\xd4\x55\xa1\x42\x1c\x5f\x27\x22\x6a\x7a\xb4\xfb\x7f\x30\x65\xde\x7a\xef\xfc\xd4\xe2\xfb\xc1\x05\xfb\x0b\x79\x68\x61\x7b\xcb\x81\xfd\x91\xed\x33\x70\xbb\x3c\x68\x2e\xfd\xcb\x6a\xb0\xee\xf6\x1b\xfd\x6e\xa2\x94\x87\x1f\xf3\x42\xd8\x34\x17\xe0\xa8\x16\xb4\xd2\x68\x64\xf0\xfd\x0b\x2c\x5f\x6a\x54\xf5\x5e\x7d\xb3\x1f\xdd\xa3\x6d\x4f\x67\xa0\x21\x70\xaf\xff\x97\x5f\xe3\xc2\x4f\xbd\xdd\x95\xb3\x7e\x12\x7f\xc5\xe9\x15\x63\xeb\x84\xb1\x2c\xb1\x0f\x14\x37\xb4\x3d\x08\x2b\x70\xac\x4c\x81\xb4\x40\x07\xa4\x18\x39\x5f\x6d\x22\xd0\x3c\x72\x9d\x66\xa9\x64\x2d\x11\x6c\x4c\x6e\xda\x44\x32\xf1\x07\x87\xda\x20\xd9\x70\x48\x5a\x40\x97\x2f\xad\xf1\x53\x2f\x35\xb5\x62\x16\xdc\x8a\xeb\x48\xe7\x84\xc6\x30\x80\xc4\x2c\xd3\x10\x89\x67\xdf\x7b\xd9\xde\x9a\xce\x32\xbb\x18\x21\x71\xa9\x8d\x28\x0b\x37\x9c\x31\x0c\x73\x76\x88\xa4\x58\x9c\xf5\x0a\xbd\xf5\x84\x03\x79\xf3\xf1\xfa\xd9\xf0\x2c\x02\xbf\x54\xb9\xf6\xff\xf5\x3f\x43\x49\x18\x96\xb1\x4e\x92\xa7\xf5\xb5\x99\x38\x8c\xad\x18\x0c\x5f\xb0\x7b\x77\xee\x04\x1f\xc1\xfe\xba\x93\x8d\x1d\x2c\x1d\xd4\xc4\x5a\x1a\x14\x65\x10\xff\x2e\xa1\x40\x68\x79\x85\x6e\x90\x8b\xe6\xb9\x52\x40\x27\xdb\x18\x97\x04\x83\x49\xd2\x04\x64\xec\x79\xad\x7e\x5e\x7d\xa6\x4a\xa1\xff\xf9\x6c\x7c\x96\xf0\x55\x9a\x85\x3d\xa1\x73\xe6\xe6\xbf\xf1\x31\x3c\xd4\xcb\xd7\x7f\xe6\x0c\x73\xb5\xb3\x84\xab\x1c\x05\x68\x5f\x36\x52\xcc\x6f\x1d\x32\xe1\x7f\x2f\xb7\xaf\x32\x03\x79\xf3\x8a\x29\xc9\xa7\x27\xfd\x42\x84\xa1\xfd\x86\x2b\x05\x7a\xf1\x50\x25\x26\x43\xad\xda\x55\x13\x42\x75\xee\x8a\x5b\x22\x9a\x01\xec\x7b\x72\xec\xc7\xa6\x3d\x5a\x0c\xbf\x64\x65\x84\xdc\x44\xdc\xd5\xb9\x4c\x63\x99\xe0\x1f\x8c\xe4\x21\xc7\x77\x16\xd3\xaf\x33\x63\x12\xf6\x61\xc7\xc6\x17\x76\xfb\x1e\x8f\x77\x45\x52\xcd\x73\xb2\x17\x99\x0e\x25\xad\x12\x99\xe0\x40\xf9\x4c\xfd\xf0\x50\xb2\x13\x82\xd3\x1a\x98\x5f\xba\x47\xeb\x11\x47\x2a\x2a\xb7\xe4\x47\xdd\x4b\xcb\xdb\x5a\x90\x7a\x99\x5d\xe1\xa9\x3c\x79\x23\x92\x5c\x11\x5c\x9c\xa5\xc9\x98\x72\x30\x99\x93\x64\x6c\xb4\x5e\x9c\x83\x2e\xfd\x37\xac\xfd\x78\x82\x39\xc3\xec\x45\xc6\xd0\x14\x0e\x2d\xa7\x50\x36\x53\x26\x4e\xc5\xbb\xb8\xdd\x5c\x17\xc3\x63\x31\x07\x12\x28\x49\xa6\xa0\x66\xd3\x63\x65\x9e\xc4\x84\x70\x2c\xf5\xb4\x32\x2b\xcd\x7b\xec\x84\x8a\xc6\x74\xc2\x72\x26\x9d\x6c\x01\x90\xc2\xca\x8b\x91\x5a\xfa\x7d\x43\x86\x61\x86\x5e\xa5\x88\x9f\x7b\xba\xb5\xc2\xc7\xf1\x5f\x2e\x1f\x87\x73\xfb\x24\x3e\x2e\x0c\xb7\xf1\x34\x79\x7d\x00\x99\x9e\x3c\x13\x4d\x47\xa4\xe2\x93\x3e\xd5\x73\xd0\x2b\xc0\xf4\x75\x0b\xe5\x9b\xf4\x94\x25\xba\x1b\x6f\x6e\x6d\x17\x5f\x19\xd9\xb7\x69\xbd\xed\xba\x79\x02\x5a\xbe\xf6\x6f\x33\x7b\x91\xf2\xd4\xc7\x65\x6f\x57\xe8\x67\x0c\xb0\x32\x80\xf6\xb8\x06\xfa\xb9\x03\xa0\x27\xa6\x28\xc1\x77\xe7\xd9\x79\xfe\x35\xa8\x3b\xc5\x25\x5b\xfd\xb2\x41\x9a\x6a\x20\xce\x2f\x11\x5a\x16\x7f\x49\x93\x74\x1b\x20\xc4\x93\x3f\x64\x45\xd8\x96\x42\x0a\xaf\x28\xba\x1e\x71\x71\xe0\x39\x15\x3b\x7d\xca\xf0\x35\x47\x3b\xc1\x0d\x20\xf5\x79\x5e\x97\xdf\x2a\x68\x5d\xe4\x0d\xe2\x9b\xf4\xf8\x7e\xa3\x89\xac\x4b\xe5\x16\xcf\xba\xd6\x77\x3e\x59\xf0\x23\x96\xcd\x2d\x01\xa9\xd6\xeb\xa0\x53\x69\xd0\xe8\x99\x9e\x98\x16\xb3\x18\x8f\x4c\xbd\x06\xad\xcc\x26\x9f\x77\xf0\xaa\x6a\x6a\x52\x7f\xf3\xe7\x22\xbb\x83\x7b\x13\xd9\x50\x41\x39\xf1\x93\x28\xba\x18\x16\xf8\x50\x90\xe7\x47\x61\x71\x48\x09\x31\x42\x03\x3e\x31\x4f\x24\xdf\x97\x0b\x23\x01\x2e\x86\xad\x84\x11\x75\x9e\xbb\xce\x2f\x84\x4a\x1c\xb7\x05\x6c\x6d\x82\x2b\x64\xaa\x79\x5f\x00\xf3\x93\xfa\xec\x4f\x36\x08\x39\x9b\xd4\xe6\x28\x1e\x91\x16\x4f\xf9\xbd\xde\xdc\xdb\xb6\x8b\x0a\x58\x17\xa7\x77\x9d\x30\xba\xe6\xf3\x68\xdb\x8e\xa9\x86\x6c\x98\x53\xde\x95\xbb\xdf\x2b\xe0\xb3\xbe\x1c\x55\x8e\x6f\x84\x6a\x2d\x5f\xac\x92\x40\x27\xd3\x2f\x31\x4d\x2f\x4e\x5a\xb8\x4c\xf7\x7e\xd8\x64\xaf\xab\x93\x60\xc9\xbf\x80\x70\x86\x45\x59\xca\x98\x9a\xad\x53\x04\x73\xf3\x79\x9b\x97\x2c\x4f\x9d\x1e\x67\x15\x79\x14\x78\x57\x90\x5c\x7e\xfc\x4b\xe8\xb6\xdf\x4e\x04\x78\x97\x5d\xc3\xb5\x08\x34\x8c\x2d\x46\x55\x9c\x3f\xd8\x38\x32\xb2\x28\x90\x2c\xa6\xc7\xd9\x61\x34\x07\xde\x3c\x17\x9a\x41\xfe\x93\xeb\x80\xcf\xc4\x9c\x97\x2d\x7f\xe2\x1f\xc8\x58\x6e\xf7\x39\x15\x2f\x9f\xcd\x3d\x32\xaf\x18\x9b\x1b\xde\xc1\x81\xb2\x16\xd8\x8f\x9c\xf2\x45\xfa\xf9\x33\xea\x7e\x01\x16\xd2\xda\xab\xa5\x58\x38\xe7\xbc\x0a\x10\xb3\xc6\xaf\x69\x61\x2d\xcb\x0a\xe2\xf3\xe1\x52\x58\x5d\x19\x1a\x00\x16\xbe\x8d\xd8\xc1\x85\x7a\x58\x14\xb1\x99\xc5\xd9\x5e\x72\xf6\xa5\x31\x8c\x43\xd7\x7a\x38\x63\xd2\x4f\x06\xc0\x13\x15\x71\xe2\x88\x9a\xe1\xb2\x25\xe4\xc9\xdc\xd9\xb5\x0b\x55\xd8\xd9\x23\xc3\x42\xcd\xf8\x27\x48\x9c\x5c\x93\x51\xd1\x36\x60\x1e\x19\xc3\xdd\x96\x55\x79\xa1\x02\xe1\xa0\xd5\x6c\xbc\xba\x19\xf5\xeb\x69\xb1\x9e\xb1\x52\x36\x09\xc7\xc9\x09\x6d\xc3\x53\xb7\x62\x47\x15\x24\x99\xb6\x39\x94\xb6\x61\x40\x5d\x8f\x37\x39\xea\x78\xa7\xbf\xa1\x45\xba\x39\x14\x4b\x02\x75\x73\xf2\xb9\xf7\x83\x16\x1c\xd1\x34\x13\x6c\xdb\x50\x3b\x75\x15\xa1\xbe\xf7\x48\xdc\xbc\xff\x28\xe3\x82\xfa\x9c\x5a\x61\x77\x4a\xee\x09\xa1\x4e\x4d\x80\x9b\xd6\x72\x77\x58\xe7\x0f\x5e\x94\x7a\xcc\xeb\xba\x79\x17\x2f\x9c\xb5\xe1\xe6\x59\x1b\xa9\xfc\x56\x0b\x53\x90\xfd\x80\x1a\x34\x74\x6f\xed\xc4\x25\xb4\x1f\xde\x88\xcc\xb9\x69\x33\x0a\xc8\x5b\x35\xf0\xe4\x09\xfc\x83\x0e\x64\xf1\x6d\xf5\xc4\x85\x74\x5a\x53\xfe\xa3\x53\xdd\x3c\x4b\xcd\xc6\xdc\xeb\xa5\x64\xdb\x2b\xc8\x87\x80\x65\x8a\x19\x71\x50\x48\x15\xdb\x88\x39\xe1\xf8\xfb\x96\xa1\x24\x99\x0c\xff\x52\x42\x3d\x2e\x9c\xb2\xc5\x45\x88\x87\x11\x77\xdb\x23\x5b\x5e\x36\x50\xfa\xfa\x77\xc6\x98\xb3\xa9\x14\xb6\xb4\x42\x3e\x0d\x6a\x0c\x13\x57\x8a\xae\xa8\x80\x83\x90\xf2\x74\xfd\x58\x76\xed\xf4\x37\xba\x2e\x55\xf2\xc4\xb7\xf1\x0a\xa6\x95\x2e\x2b\xc7\xb1\x00\x90\x80\xe6\x4e\xf9\xc6\xbe\xee\x50\x64\x34\x63\x2f\x4e\xa6\x6c\xbe\xc0\x93\x1c\xd9\x58\x99\x63\xa4\xdd\xbe\x8a\xa0\x31\xb9\x7f\xcd\xcf\x4c\xfc\xe3\xf8\x13\x32\xf3\x2c\x0a\x83\xfd\x3b\x4d\xf9\x4d\x7a\x78\xc6\x2f\x88\x9a\x1d\xaf\x04\x19\x7c\x08\x2a\x6a\xd0\x20\x1c\x19\x62\x05\x74\xe3\x86\xc5\x07\xb0\x62\xae\x62\xfd\xd0\x39\x9a\x64\xf8\x50\x49\x66\x27\xbb\x79\x12\xac\x60\xc3\x5f\xd4\x64\x88\xa9\x5f\xf0\x9a\x12\xf1\xba\xdb\x07\xa6\x3e\x1f\x18\x6f\x71\x1a\xc3\x0b\x91\x36\xb9\x10\x02\xf3\xbc\xee\xd8\xac\x3f\x69\xb3\x1d\xcd\x8b\x4a\x56\xc7\xbd\x12\x21\x0e\xe4\xc4\x50\xc9\x3c\x3c\xac\x36\xd5\x34\xe3\x15\x27\x24\x82\x94\x87\x5b\x02\xda\x1a\xd1\xf9\x6f\xae\x82\x8c\x14\x8a\x55\x27\xc9\xad\xcc\x97\x32\xf4\x55\xd7\xbf\x6b\x5f\x09\x61\x46\xb5\x29\xe2\x13\xc0\x92\x60\xcf\x94\x6d\xbc\x73\x9c\xda\xab\xb5\xe2\xcf\x74\x8a\x35\xf8\xbc\xee\x48\xfe\x79\x47\xfe\xfc\x8b\xfb\xf5\xb8\x49\xb7\xf4\x30\x5f\x86\x10\xde\x7c\x66\x7f\xb8\xf9\x51\xa2\x04\xed\xd4\x7b\x1d\x7e\x18\xc7\x7c\xc3\x3c\x22\xaa\xac\x36\x7c\x39\xdc\xc9\xeb\xe9\x26\x4e\x07\xaf\x18\xda\x40\x4d\xc7\x53\xf2\xfb\xfe\xd6\x11\x8c\xce\xc7\x8f\xcf\x82\x1f\xcf\xea\x2e\xa2\x09\x91\x6e\x09\x18\x80\x21\xb9\x31\x32\x40\x6d\xdd\xd3\x58\xff\x9e\xc2\x9a\x49\x7d\x71\xbb\x8b\xfe\x90\xeb\x24\xfc\x09\x4d\x86\xd0\x28\xe6\x6e\x45\x11\x7d\x31\x94\x01\xcb\xfa\x1d\xb3\x53\x5c\xa3\x53\xb4\x94\x30\xc1\x0c\x99\xe4\x87\x74\xe0\x97\x94\x5f\x92\xa6\xf4\x0a\xf4\x3f\xeb\x55\xbd\x75\x72\xab\x09\x06\x76\xd4\x68\x4e\xd4\xfd\xd1\xa7\x1e\x9b\x38\x90\x75\x76\x2b\x96\x13\xed\xc5\x61\x5f\xcc\x47\x94\x67\x46\xdd\x05\x64\x3e\x9d\x6f\xd1\x34\xa0\x84\x0e\x21\xd1\x80\x95\xab\x35\xc9\xdf\x27\x47\xf4\x3c\x51\x8f\xd7\xad\x17\x60\x79\x4f\xe1\x3e\xd4\xce\x2f\xf8\xbb\xb6\x68\x5f\xfc\xd2\x31\xde\x76\x02\x37\x4a\x55\x3a\x92\x83\xbd\xdd\x0b\x68\xaf\x94\x4e\xa4\x89\x8a\x34\x7e\xa4\x2e\xd2\x73\x0a\xbe\xf7\xdb\xc8\x5f\xcf\x04\xca\x35\x6b\x61\xf5\x9f\x91\xa0\x3a\xb6\xe2\xc3\xea\xe9\x8b\xed\xb6\x34\x3c\x6c\x35\x0e\x1e\x1f\x15\xbc\x06\xe6\xbd\xcc\x78\xf5\x4e\xf2\xf2\x23\x53\x9e\xdf\x34\x33\x87\x08\x31\xb4\xc2\xfd\xf0\x6b\xfd\xc9\x15\x25\xfc\x0e\xf3\x0b\xad\x24\x16\x54\x34\xc4\x2b\x5a\xd2\x20\xd2\xe1\x28\x4c\x5b\x18\x5c\xe2\xca\x71\xed\x77\xb7\x5b\x4d\x8a\xf6\x14\xe1\xe3\xc0\x4b\xb4\xd9\x0d\x72\x26\xee\xfb\xac\xe0\x37\xd7\x9b\xbe\xbd\x84\xee\x7e\x16\x36\x9b\x46\x93\x5a\x33\xec\xfa\x67\xc1\x37\x8b\xd0\xdf\x5b\x03\xd8\x5b\x18\xc5\x78\xbf\x72\x74\x1b\xd7\x94\x9b\x48\x25\xe1\x30\x14\x3c\x00\x06\x34\xdc\x58\x27\xb0\xb9\x86\x16\x96\x5e\xd9\x71\x80\xcb\x40\x2a\x51\xc0\x72\xa4\xe0\x64\xc7\xa9\xbb\x73\x06\x40\x60\xc6\xf7\x4e\xa7\x8a\x3e\xc3\xa2\x79\xe3\x47\x71\xe4\xe4\xce\x9c\xa1\x07\x31\x7a\xd9\x88\x77\x32\x6b\x3f\x46\xe8\x2b\xe9\x2b\xea\x45\x53\xd9\x2a\xaa\x78\xd2\x58\xf2\x0c\xad\xb5\x1e\x87\x38\x9b\x6c\x0b\x0b\x2d\xc2\x39\x66\x54\xc5\x79\x82\xb7\x47\xe4\x7e\xa0\xa5\x5e\xb1\xcc\x04\xf1\xe0\x13\x25\x83\x0e\xc2\x83\xf1\x8d\x49\x26\xb9\x70\x39\x5a\xf6\x08\x40\x4b\x2a\xca\x96\x48\x9b\x20\x42\x8a\xe9\x33\x74\xb8\x67\xb0\x9d\xc1\xfa\xfe\x6e\x96\x96\x54\xb2\x01\xf1\xdd\x8b\xfb\xca\xf2\x92\xe2\x2f\xee\x8f\xcb\xe3\x64\xc6\x92\x3c\xd2\xe8\xc6\xce\x90\xc5\x57\x49\x28\xc9\x6a\xa3\x2b\x0d\xae\x96\x5f\x46\x0b\xbb\x20\xe9\x04\xfb\xd8\x1a\xf6\x7e\x81\x75\x7e\xbb\x9c\xd9\x0f\x02\xc6\x09\x94\xae\x83\x3f\x7a\x03\x9b\xfd\x05\x89\x99\x96\x38\xab\xe2\x01\x48\x61\xa9\xbd\x17\xfc\x13\x4c\x51\x97\xd7\x5a\x1b\xd4\xae\x8b\x46\xb4\x1a\x8e\x12\x48\x1b\x5d\x3b\xe3\x58\x07\x9a\x7a\x03\xc9\xc4\x03\x46\x38\x78\x4d\xf8\x34\xaa\xd7\x0a\x90\xd2\x83\xe3\x73\x7d\x24\x25\x89\x56\x3c\xd2\x8c\xec\xf6\x4a\x2a\xf4\xa7\x2c\x4f\x5f\xe3\x5f\x62\x0c\x70\x26\x38\x9f\xca\xaf\x29\x7a\xa0\x06\x42\xef\x6e\xc0\x50\xf8\x57\x7c\x32\x36\xb3\x72\x7b\xc5\x5f\x35\x1e\xaf\x81\x40\xe8\x67\x7f\xa4\x6d\x9e\x00\xc0\x33\xbb\xa0\x49\x57\x11\x1f\xee\x39\x39\x11\xe0\x5a\x0a\x40\xda\x86\xcc\xf3\xee\xd1\xc2\x9a\x74\xb5\x17\x10\xb9\x38\xa8\x00\x8c\xeb\x67\xa4\x19\x60\x9e\x97\xcd\x33\xdb\x99\x04\xbc\x80\x28\xf3\x9c\x34\xfa\x3f\x3d\x9f\x3c\x00\x7f\x6e\x67\x5f\x91\x84\x51\xcd\x00\x00\x00\x80\xae\xa6\x11\xa4\x56\xdd\x2e\xea\xff\x05\x00\x00\xff\xff\x09\xac\x53\x20\x4b\x1c\x00\x00") - -func web_uiAssetsAppleTouchIcon01cd4680782fbb5bc02301347df9903dPngBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsAppleTouchIcon01cd4680782fbb5bc02301347df9903dPng, - "web_ui/assets/apple-touch-icon-01cd4680782fbb5bc02301347df9903d.png", - ) -} - -func web_uiAssetsAppleTouchIcon01cd4680782fbb5bc02301347df9903dPng() (*asset, error) { - bytes, err := web_uiAssetsAppleTouchIcon01cd4680782fbb5bc02301347df9903dPngBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/apple-touch-icon-01cd4680782fbb5bc02301347df9903d.png", size: 7243, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsCodemirrorModeJavascriptJavascript77218cd1268ea6df75775114ae086566Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x7c\x7b\x7f\xdb\x38\xae\xe8\xff\xf9\x14\x36\x6f\xae\x86\xac\xe1\x87\x9c\xbe\xc2\x0c\xeb\xd3\xdd\x4d\x77\x3b\xdb\x69\xe7\x4c\xd3\xee\xce\xda\x9a\xae\x22\xd3\x89\x52\x59\xf2\x48\x72\x12\xd7\xd2\xfd\xec\xf7\xc7\xa7\x28\xdb\xe9\x74\xce\xd9\x7f\x6a\x0a\x04\x41\x10\x04\x40\x00\x64\x7a\x1b\xe6\x9d\x9b\x22\x4b\x93\x38\x2d\xd9\x62\x9d\x46\x65\x9c\xa5\x98\x6c\x05\x9c\xb3\x6d\x99\x87\x11\xa7\x0e\xbc\x86\xcd\x86\x6e\x6b\x28\x36\xcb\xcb\x2c\x29\x3e\xd1\x2d\xcf\xf3\x2c\xa7\x63\xf8\xe1\xfd\xbb\xb7\xef\xcb\x3c\x4e\xaf\xe8\x09\xbc\xbf\xf8\xf9\xf5\xdb\xbf\xd2\xc7\x12\xfa\x76\xbd\xbc\xe4\x39\x7d\x02\x6f\x3f\xfc\xf8\xa7\xf3\x9f\xe9\x53\x0d\x4d\x92\x37\x71\xc9\xf3\x30\xa1\xcf\xe0\xed\x87\x37\x6f\xe8\x73\xd9\xf1\xa7\x2c\x4b\x78\x98\x9a\xbe\x53\xb8\xf8\xf9\xc3\x39\xf5\x47\xf0\xea\xe5\x9b\xf7\xe7\xd4\xf7\x25\xd6\x05\xbf\x2f\xa9\xaf\xa6\xfd\x18\x26\x6b\x4e\xfd\x13\x38\x7f\xf7\x8a\xfa\x6a\xd2\x77\x97\x37\x3c\x2a\xa9\xff\x44\x7e\xbd\xcc\xf3\x70\x43\xfd\xa7\x80\xb6\x88\xfa\xcf\x00\xd5\x88\xfa\x6a\xba\x1f\xb9\xe0\xee\x4d\x5c\x94\xd4\x3f\x75\x20\x74\x3c\x02\x44\x11\x1d\xfb\x80\x00\xd1\xf1\x18\xd0\x14\xd1\xf1\x09\xa0\x00\xd1\xb1\x9a\xe4\x3c\xe1\x4b\x9e\x96\x72\xf0\xf8\x09\x1c\x87\x51\xc4\x57\x25\x1d\xc1\x31\x4f\xe7\xd4\xaf\xa1\xe4\xf9\x32\x4e\x43\x29\xa8\x31\x45\x52\x56\x08\x1e\x53\xa4\x04\x84\xe0\x29\x45\x4a\x2a\x08\x9e\x8b\xe6\x9b\x37\x08\xfc\x11\x45\x62\xcd\x08\x7c\x9f\x22\xb9\x6a\x04\xfe\x63\x8a\xce\xdf\xbd\x42\xe0\x3f\xa3\x68\x8b\xc0\x7f\x4e\x51\x8d\x60\xec\x53\x44\x11\x8c\xc7\x14\x01\x82\xf1\x09\x45\x53\x04\xe3\xc7\x14\x05\xa8\x86\x55\x9e\xcd\xd7\x72\xe7\x8a\x4f\x74\x3a\x82\xe9\x09\xf8\x01\x4c\x9f\xc8\x7f\x9f\xc9\x7f\x4f\x9d\x7f\xfd\x31\x8c\xc5\x8f\xc2\xfa\x96\x9f\x27\x6a\xc0\x13\x38\x09\x60\x3a\x1e\xc9\x1f\x5f\x13\x3b\x55\x5f\x4f\x15\xca\x53\x85\xa2\xa6\x1e\x8b\x01\x01\xac\x78\xbe\xc8\xf2\xe5\x4b\xc9\x61\xa3\x64\x1c\x4a\xc8\x21\x85\x18\x42\xa5\x87\x05\x0b\x07\x09\x4f\xaf\xca\xeb\xbe\x7f\x54\xdc\xc5\x65\x74\x8d\x63\xb2\x8d\xc2\x82\x77\x7c\x5a\x5e\xc7\xc5\xe0\x98\xf1\x41\xce\x57\x49\x18\x71\x3c\x9c\xcd\xf0\x6c\x56\x21\x32\xbc\x02\x74\xec\x23\xe2\xf6\xa4\x02\x38\x4b\xdb\xc0\x5c\x02\xf3\x36\xb0\x94\xc0\xb2\x0d\xbc\x95\xc0\xdb\x36\x70\x21\x81\x8b\x36\xf0\x52\x02\x2f\x11\x39\xba\xcc\x79\xf8\xf9\x48\x72\x3b\x36\xdc\x2a\x93\xc0\xbc\xd5\x7b\x62\x7a\xd3\x75\x92\xb8\x1d\x8f\x4d\x47\x77\xe4\x82\x9f\x58\xb0\xef\x82\x9f\xd2\x9c\x97\xeb\x3c\xed\xe8\xde\x70\x5a\xf4\xfd\x40\xf5\xf9\x76\x8e\x6d\xed\x8e\xf1\xed\x14\x1a\xdb\xed\xb3\xf3\x4c\x45\xe7\x38\x80\x70\x5a\x04\x6d\x94\xa7\x0d\x59\x50\x2d\x81\x1b\x4c\x47\x41\xc0\x64\x63\x87\xe4\x33\x77\x3a\x45\xb1\x3f\x0e\xbe\x3e\xe6\xb9\x65\xa3\x0d\x3f\x7d\x98\xf5\xf1\xc8\x65\xbd\xcd\xf3\xd8\x3f\xc8\xc3\x60\xb5\x2e\xae\xb1\xc0\x26\x75\x0d\x65\x78\x99\x70\x3a\xdd\x9e\xd0\x27\xf0\x98\x4e\x7d\xf0\xc7\x01\x3c\xa1\x4f\xe1\xa9\xfc\x38\x09\xe0\x19\x3d\x81\xe7\xe2\xe3\x34\x80\x53\xfa\x58\x18\xaf\xe8\x19\x05\xc2\x78\x45\xcb\x0f\xc0\x1f\x53\x81\x4c\xc7\xe0\x3f\xa1\xcf\xc0\x7f\x4a\x9f\x0b\x33\x16\xbd\x8f\x03\x61\xb4\xa2\xf5\x24\xa8\x61\xeb\xd3\xe9\x89\xfc\x55\x93\x3d\x35\xed\x31\x3c\x0b\x84\xc9\xab\xc6\x78\x6c\x1a\xba\xcb\x62\x3d\x37\x58\xcf\x0d\xd6\x73\x83\xf5\xbc\xc1\x3a\x35\x58\xa7\x06\xeb\xd4\x60\x9d\x36\x58\x72\x0d\xcf\x4d\x4b\xe1\xc9\x96\xe9\x6d\x30\x7d\x8b\xe9\x5b\x4c\xdf\x62\xfa\x0e\xe6\xd8\x62\x8e\x2d\xe6\xd8\x62\x8e\x1b\xcc\x13\x83\x78\x62\xf0\x4e\x0c\xda\x49\x83\xf5\xd8\x60\x3d\x36\x58\x8f\x0d\xd6\xe3\x06\xeb\x89\xc1\x7a\x62\xb0\x9e\x18\xac\x27\x0e\x6f\x96\xb5\x40\xb8\x55\xdd\x18\x9b\x86\xc6\xb1\xe8\x76\x25\x76\x21\x76\x1d\x72\x19\x27\xe2\x00\xb1\x3a\xe3\x4b\x1d\xf1\xc5\x2e\x9e\x8a\x93\x67\x3c\xa2\xfe\xa9\xc4\xfa\x5f\x29\xd6\x89\x38\x90\xbe\xaa\x54\x92\x25\x1f\xc6\x62\x09\x4f\xe8\x78\xac\x94\x6c\x0c\x8e\x6a\xf9\x56\xd6\xbe\x15\xb6\x6f\xa5\xed\x2b\x71\x4b\x56\xc6\x5a\xcc\x3e\x8c\x9f\x18\xe8\x58\xa8\xa9\x19\x25\xa9\x8e\x25\x7f\x63\x77\x06\xab\x97\xbe\x55\x4c\xdf\x6a\xa6\x2f\x55\x53\xd3\x7d\x6e\x39\x7e\x66\xa0\x63\x18\x5b\xb5\x1b\xbb\x6a\x67\x77\xdf\xb7\xdb\xef\xdb\xfd\xf7\x1f\xef\xef\xc2\x78\x44\xc7\xff\x11\xa9\x9f\x8c\x7e\xdf\x94\x15\x17\xd6\xd6\x7c\x6b\x6c\xbe\xb5\x36\xff\x34\xf8\x8f\x70\xe3\xff\x3e\x37\x8a\x07\xeb\x3c\xfc\x67\x0e\xd4\x9a\x85\xc2\xd5\x32\xb7\x4a\x3f\xf6\x83\x3a\x80\x39\x5f\x84\xeb\xa4\x54\xa7\x75\x41\xb7\xfe\x53\xa3\x46\xab\x30\x2f\xf8\xb9\x0c\x03\x9b\x43\x9c\x6c\xcb\xeb\x3c\xbb\xeb\xa4\xfc\xae\x23\xfb\x30\x27\x1a\xb5\x85\x25\x0e\xf8\x92\x09\x4f\x0c\x39\x9b\x8e\x02\x48\xd9\x54\x9c\x7f\x01\xc4\x6c\x1a\x40\x28\xbb\x06\xd2\x0f\x43\xc1\x10\x82\x8c\x8d\x20\x61\x23\x88\xd8\xe8\x48\xf6\x25\xfc\x9e\xe7\x83\x82\x97\xaf\xd3\xd5\xba\xc4\x9c\x80\x03\xde\x6c\x14\x81\xcd\x06\xf4\xaf\xea\x60\x0d\x0e\xdc\x66\xf1\xbc\x33\x62\x8c\xb5\xc6\x25\x49\x16\x79\x1e\xde\x83\xb1\x6d\x4d\x8e\x04\xd7\xeb\x7d\xfc\x23\xb3\xb2\xce\xc2\xc4\xd0\x47\xea\x30\x46\xa9\x3c\xf1\x51\x97\x95\x9b\x15\xcf\x16\x98\xb3\x52\x0f\x4d\xf8\x3d\x26\x55\xe5\x13\xcf\x93\x50\x13\x5a\x4f\x79\x50\x55\x9c\x00\xaf\x63\x75\x28\xad\x09\x20\x33\x01\x62\x9a\x50\xc7\x2c\xab\xd9\x05\xc3\x75\x03\x61\xfb\x48\xe4\x68\x91\xe5\x58\xb0\x78\x0d\x2b\x98\xc3\x06\x96\x70\x0b\x57\x70\x09\xf7\xf0\x19\xee\xd8\xb6\x3e\x3b\x23\xdb\x78\x81\xe7\x2c\x9f\xe6\x36\xfe\x0a\x94\x18\xdb\xca\x30\x9d\x07\x13\x2d\xe7\xbd\x0e\x8a\xc5\x6e\x32\x76\xed\x79\xf8\x9a\x2d\x30\x21\xb0\x61\xe1\x74\x1e\x78\x9e\xf8\x77\x7a\x1d\x90\x66\x03\x36\x55\xd5\xdd\xe8\xb9\x44\x73\x3a\x0a\x24\x0f\xdd\x88\x6c\x25\xbb\x9d\x38\xed\xdc\x4b\xbd\x98\xce\x03\xa2\x54\xc3\x86\xd8\xd3\xdb\xc0\xf3\x6e\x5f\x8c\x3d\xef\x5e\x09\x0c\x7d\x87\x7a\xfb\x38\x3d\xf4\x1d\x52\x3b\xf8\x89\x21\x74\xf4\xc9\xdd\xc6\xe2\x3a\xbb\xfb\x29\x2b\x62\xc1\xfd\x04\xfd\x24\xa4\xd5\x91\x41\x7b\x27\x4b\x3b\x49\x9c\xf2\x0e\xea\xe1\xac\xe7\x93\x1e\xa2\xb3\x54\x53\xdf\x1f\x8a\x49\x0f\xcd\xd2\xf3\xfb\x15\x8f\xca\x38\xbd\xea\xa0\xde\xfd\xe0\x26\x8b\x53\x8c\xa0\x83\x48\x0f\x41\xe7\x2a\x2b\x3b\x07\xb8\xbb\x96\xdc\xd1\xdf\x99\xb9\xf3\x21\xe5\x92\x36\x9f\x0b\xa8\xcf\xd8\xf5\x04\xf1\x74\xde\xc9\x16\x9d\x58\x18\x01\xa2\x62\xe9\x78\x9f\x7a\x55\x5d\x13\xb9\x7e\xd8\xd1\x10\xfc\x09\xb6\xa5\x48\xa9\x9c\x15\x2d\xc3\x32\xba\x86\x32\xfb\xcc\x53\x7a\x90\x14\x08\xbe\x68\xdb\x0a\xe2\x94\xa7\x19\x24\x59\x44\xd7\x60\x98\xa4\xf7\x35\xa9\xe3\x05\x3e\x61\x2c\x92\xfb\x29\x38\x26\xbb\xfe\xe1\x53\x55\xc9\x75\x0b\x81\x5d\x87\x49\xc9\xe7\x03\x44\x8e\x92\x1d\x2b\xe3\xe9\x15\x14\x6d\x98\xe0\x1b\x32\x76\x88\x8f\x03\x36\x0a\x52\x0b\x6b\xa1\x4e\x67\x5d\x3c\x1e\x0c\xca\x4c\xa5\xad\x98\xc4\x69\x47\xea\x95\x52\xfc\x11\x63\xf3\x6f\x64\xf2\x33\xf3\xc1\xd8\x08\xb3\xc6\x32\x7e\xf4\x19\x52\x03\x35\x8d\xfe\x67\x88\x0d\x2c\x6e\x60\x3b\x56\x56\xaf\xd8\x35\x5c\xb3\xb1\xb2\x95\x76\x9f\xb1\x9c\x71\x00\x11\x3b\x11\x72\x15\x76\x12\xa7\x45\x19\xa6\x91\xf0\x08\x32\xd9\xf5\x3c\x63\x48\x2f\xfc\xbd\x55\x68\xfd\x52\x3e\xbb\xb3\x5c\x27\x65\xbc\x4a\x78\x27\x54\x56\xdb\x59\x65\x45\x11\x5f\x0a\x40\xd9\x29\xca\xb0\xe4\xb4\x83\x7a\x73\xa1\xb6\x4a\x19\x3a\xa8\x77\x4d\x4c\x26\xa6\x8c\x54\x27\x63\xb9\x32\xbc\x6b\x02\xa9\x6a\xed\x6d\x14\x81\xf8\x40\x8f\xd8\x18\x02\x7a\xf4\x66\xea\x07\x04\xae\x65\x1a\x04\xab\x09\xbe\x66\x2b\x58\xc9\x2f\x42\xf1\x7f\x5e\x1f\xa2\x17\x23\xcf\x8b\xfa\xfd\x9d\x4c\x2d\x5e\xe0\x2b\x85\xed\xa6\xd1\x53\xc1\x9c\x48\x4d\xe0\x4e\x24\x6a\x53\xbb\xad\x57\x02\xf2\xe9\x98\x6d\x17\x71\x5e\x94\x9f\xa4\x65\xc4\x53\xbb\xc3\xf8\x4a\x78\xf8\x60\xd0\xf4\x42\x12\x1e\xc0\xf3\x83\x81\x85\x83\x42\x8e\xb2\x64\xbd\x4c\x1f\x26\xa6\xfa\x15\xb9\x7d\x5c\x43\x50\xf5\xd4\xda\xd7\x76\x19\xc3\x4b\xbd\x3a\x37\x0b\x1f\x44\x61\x92\xe0\x3b\x28\x20\x81\xcc\x9c\x98\x20\xd6\x2c\x12\x72\x42\x88\x4e\x2d\x97\x47\x57\x9e\x87\x73\x96\x0f\x8a\x24\x8e\x38\x1e\x41\xdf\x7f\x74\xf5\x68\x4c\x20\x65\x69\x0b\x46\x20\x66\x71\x1b\x62\x37\xfa\x21\xe9\x8e\x02\xab\x3f\x77\x83\x63\xab\x31\x42\xbe\x04\x2e\x59\x38\x75\xec\x61\x1c\x04\xd3\xb6\x79\x18\xea\x97\x3b\xc9\xb5\x62\xbd\x3b\xaa\xeb\xa6\x05\x87\x8a\x5e\xb2\x8a\x74\x38\xaa\x81\x52\x9d\x47\x07\xce\xd3\xfd\x70\xe7\x68\x1f\x4b\x52\xa8\xc1\x04\x2b\xad\x48\xc8\xcd\xda\x3f\x49\x37\xce\xb8\xda\x82\x4f\xcb\x2c\xe7\x6a\xb7\x3e\x25\xbc\xd0\xea\x3e\xcf\x52\xce\xba\xbe\xd9\x25\xa5\xe1\xe6\xa4\x17\xe2\x60\x23\xd3\x27\x2c\x42\xf5\x48\x9f\xce\xe7\xce\x87\x88\xa9\xe4\x57\x94\xa5\x73\x79\x7a\xbd\x2f\xc3\xe8\x33\x9b\xa2\xd7\x6f\x5f\x5f\xbc\x7e\xf9\x06\x05\x76\x0a\x19\xfe\x38\x0a\xee\xb7\x55\x74\xe4\xe8\xb4\xdf\x52\xc8\x91\x2a\x0b\xd4\x10\xb7\x97\x6d\x64\xee\x2c\x7a\x3a\x0a\x8e\x5c\x51\x28\xee\x7b\x46\x16\x6a\x69\xbd\x1e\x34\x2b\xb0\x7d\x7a\x71\xe2\x9b\xab\x0f\x3c\x9c\xa5\x43\xe2\x79\x2d\x19\x99\xc1\x5a\xc8\x4e\x5b\xeb\xa9\x2f\x82\x2e\x58\x7f\xd3\x0e\xf5\x9c\x2f\xbd\x46\xb1\x5b\xee\x12\x5b\xc3\xe4\x56\x76\x47\x1a\x55\xec\xe6\x4e\xd0\xbc\xc3\x98\x5c\x86\xe6\x8b\x13\x77\x36\x11\x4d\x17\xbb\x7a\xd4\x12\xa8\x96\xc7\xa0\x58\x5f\x16\x65\x8e\x47\x2d\x29\x19\x8b\x71\x66\x51\x10\xa2\xc5\x8f\xb9\x39\x40\xc6\xa3\x09\x1a\x0c\x06\x88\x22\x44\x7a\xdc\x90\xeb\x8f\x47\x6e\xc5\x4b\x56\xd6\x10\xa9\x61\xbd\x8a\xb2\x65\x9c\x5e\xfd\x2e\x67\x66\x9b\xcd\x3c\xdf\x8f\x47\x22\x04\xee\xb5\x77\xc4\xf0\x3e\x1e\xf5\x0d\x22\x21\x80\xb9\xdb\x43\x7a\x87\x99\x3d\xc8\x9f\x1b\xa8\x3d\xc0\x9e\x15\x2c\x26\x50\x32\x61\xd3\xf2\x4c\xb5\x93\xf4\x7c\xa2\xe3\xb9\x3e\x22\x76\x19\x6a\x73\x5a\xcb\x57\x81\x20\xea\x95\x3d\xf4\x2b\xaa\x21\x15\x11\x96\x33\x65\xbc\xc0\xd6\x94\x89\xab\x26\xe7\xef\x5e\xc9\x08\xd5\xd6\x42\x8f\x1c\x99\x54\x15\x76\x1c\xc0\x88\x38\x4e\xc2\x74\x69\x93\x37\xa6\x6d\x0c\xbd\x09\xfa\x75\x5e\xf5\x29\x5a\xe7\x39\x4f\xcb\x9f\xd7\x09\x2f\x30\x81\x82\x8d\xce\x8a\xef\x4d\xb9\xd5\xf3\x70\x17\xe7\xad\xed\x50\x56\x25\x21\xb9\x18\xa3\xea\x6a\x84\x54\x55\xe9\x79\x5d\x9c\x4f\x47\x81\xd9\x88\xb2\x69\x13\xc1\x17\xcb\x21\x65\x85\x62\x28\x5b\x49\x87\x3f\x58\x24\xfc\x9e\x90\xb3\xa2\xd7\x23\x67\x66\xfd\x13\x8c\x63\x26\x07\x5b\x13\x1e\x3c\x1a\x5e\x11\x62\xf2\x1a\x6b\xc7\x36\x80\x22\x0f\x7a\x28\x07\xee\x1c\xac\x8d\x9b\x6a\x13\xdc\xf1\x67\x7b\x83\x0f\x1d\xb5\x93\x9d\xc3\x56\xb7\x1e\x1a\xdc\x73\xc4\x52\x43\xcb\xc3\x89\x9e\x96\x5b\x6b\x00\xda\xa1\x3b\xe8\x9a\x84\x7b\x40\x98\xb3\xe0\x41\xbf\xe6\xee\xc8\x8e\xc7\x94\x53\xf1\x07\x23\x02\x99\x9f\xbb\x89\x34\x84\xd3\x34\x38\x74\x6e\x4c\x0f\xc0\x1a\xf1\xe8\x69\x85\xe6\x6a\xa7\xac\x18\x34\x5b\xab\xcf\x34\x02\xbc\xaa\x54\xa4\x42\x28\x42\x26\x35\x57\xb8\x13\x63\x21\x54\x62\xec\x26\x32\xe8\x0d\xbf\x8f\xa3\x30\xd9\xcf\x9e\x76\xf6\x9a\xf4\xd0\xa0\xf3\x21\xcd\x79\x94\x5d\xa5\xf1\x17\x3e\xef\x48\xb9\xda\xb4\xae\x9d\xd0\xe9\xf4\x48\x58\x94\x8c\x81\x65\x70\xba\xaf\x42\x35\x11\x4e\xfd\xfe\x01\xbf\x22\xec\x1f\x5b\x87\x61\x43\x31\x3e\x69\xb2\x28\x4c\x6a\xb8\xe4\x57\x71\xba\x7f\x2c\xec\x08\x55\x06\x39\xb2\xa8\x92\xad\xde\xcb\x28\xfd\x81\x33\x67\x77\x5c\xb6\x12\x93\xb4\x4c\xff\x77\x87\x16\x87\xf6\xf5\xeb\x7b\x1d\x28\x0f\x51\x43\xf9\x87\xf8\xfb\x1a\xd1\x71\x50\x83\x58\xf6\x0e\x39\x23\x20\x29\x37\x29\x12\xed\x5f\xe8\xb6\xfe\xea\x2d\x13\xd9\xea\x24\x26\xd7\x19\xcc\x88\xba\x37\x0b\xe6\x22\xe5\xa9\xc9\x09\x0c\xd7\x36\xa4\x32\xc6\xa8\xcf\x22\x1f\x4a\x6d\xaa\xfd\x31\x81\xc7\xed\xc8\xb3\xe3\x3f\x33\xd7\x39\x06\xf0\xdc\x5c\xe4\x68\xc0\xf8\x64\xe7\x0a\x67\xac\x69\x3c\xb3\x80\xb1\x02\x3c\xb7\x00\x5f\x01\x4e\x2d\xd1\x91\xe6\x7e\x64\x21\x1a\xc5\xb7\x0b\xd2\xf3\xfa\x76\x45\xfe\x63\x7b\x3f\xa4\xeb\x55\xaf\xdf\x7e\x7c\xf9\xe6\xf5\x5f\x50\x5d\x83\xdc\x46\x3a\x1d\xfe\x8a\x27\x74\x56\xf4\xc8\x10\x64\x13\xf7\x27\x78\x3a\xea\x9f\x06\xd5\xd4\xef\x9f\x06\xb2\xd9\x23\x04\xcf\x06\xba\x39\xc1\x53\x7e\x1e\x4c\xfb\xbd\x60\x62\x20\xb3\x4b\x33\x1a\x09\x62\xb3\xe9\x6c\x86\x2e\x17\x69\x5e\x0e\x83\x6a\x36\x5b\x4f\xc3\xfe\xe2\x65\xff\x95\x40\xde\x3e\xae\xab\xe9\xaf\xb3\xd9\x6c\xd4\x9f\xdd\x8f\x4e\x67\xf7\xa3\xb0\x3f\xbb\xf7\x17\x28\x20\x8f\x90\x21\x32\xdb\xda\x56\x6d\x5b\x53\xdb\x0a\x4c\x0b\x4c\x83\x9a\x46\x99\xaf\x79\xc3\xcc\x22\x4c\x0a\xe7\x53\xd8\x76\xf3\x75\x6c\x1a\x03\x32\x0c\xa0\xb1\x08\xba\xd5\x01\x32\xdd\x6a\x09\x8d\xc0\x87\x31\x9c\xc0\x63\x78\x02\x4f\xe1\x19\x3c\x87\x53\xf0\x47\xe0\xfb\xe0\xab\x8a\x7a\x9c\x46\xc9\xba\x88\x6f\x39\x15\xc9\x47\x6d\x23\x87\xba\x71\x0a\xdc\xd4\x27\x41\x42\xd1\x3a\x9d\xf3\x45\x9c\xf2\xb9\x2d\x1d\x76\x72\xfe\xdb\x3a\xce\xb9\xe7\x1d\xea\xe4\xf7\xab\x2c\x2f\x0b\x11\x48\xa9\x96\xf2\x8d\x39\x33\xb7\xfc\xd0\x82\xb3\x7d\x9b\x34\x88\x0a\x61\x10\xae\x56\xc9\x06\xdb\xd1\x61\x7e\xb5\x5e\xf2\xb4\x2c\x48\x6d\x29\x2d\xc3\x38\x65\xae\x35\x8a\x14\x89\x8b\x2c\x7e\xaf\xf0\xf0\xa1\x08\xaf\x64\x39\x81\x4f\x47\x41\x0f\x75\x5e\xbd\x7e\x73\x8e\xc8\x51\xbc\xc0\x87\x16\xb3\xca\xb3\x88\x17\x05\x51\x45\x62\xbd\x6e\x8c\x16\x85\xbc\x6b\x0d\xe7\xaf\xe2\x84\xbf\xdf\xa4\x11\xb6\x5d\xab\xb0\xbc\x46\x3a\x38\xd3\xa3\x07\xd1\xdd\x1c\x13\x90\xfc\x00\x5a\x97\x8b\xe7\x88\x1c\xf1\xa4\xe0\x2d\x92\x71\xc2\x11\x19\x88\xe1\x78\x17\x28\xc7\x6b\x9a\x92\x8a\x9c\x1b\x6f\xa3\x6b\x21\xa0\x92\x0a\x9a\xfd\xe7\xa8\x6e\xf6\xb0\x25\x79\xf5\x83\x45\xde\x77\x68\x8d\xcb\x6c\xbe\x4e\xb8\xe7\xe9\x59\x95\x30\x19\x33\x60\x57\xc6\x5f\x93\xd1\xc4\xac\x36\xcc\xaf\x6e\x6d\x1e\x43\xed\x5a\x8a\x4d\x51\xf2\x25\x22\xa2\xbf\x20\x04\xdc\xed\x42\x99\x7c\x2c\xd1\xd4\x94\xad\x12\xed\xf5\x28\xb6\x26\xbc\x11\xd2\x60\x30\x1c\x0c\x86\x49\x7c\x39\x8c\xb2\x39\x5f\xc6\xf2\x89\x03\x21\xf4\x40\xa9\x5a\xf1\xee\x79\xea\x77\x10\x2e\xe7\x13\xd5\xc4\xd3\xc3\x64\x02\xe0\x84\x72\xfc\xe7\x6c\xce\x7f\x94\x10\x52\x63\xdc\xe2\x7c\x5d\xf0\x4e\x51\xe6\x71\x54\xa2\xa6\xf8\x5e\x1a\xef\xae\xf6\x43\x1a\x6f\xb6\xe2\x79\x58\x66\x79\x55\x64\x8b\xea\x33\xdf\xdc\x65\xf9\xbc\x13\x55\xc2\xeb\x55\x29\xbf\xab\xa6\xb3\xe9\xb6\x9e\x61\x38\xa3\x41\xc5\x5e\x90\xe3\xe1\xa0\xe4\x45\x89\x4b\x19\xbb\x5d\x6c\x56\x9c\x54\x15\xfa\x6d\x1d\x16\xb1\x58\x8f\x85\x7a\xde\x70\xb6\x9d\x15\x8f\x0c\x3e\x1f\x14\xb2\x98\x68\x2b\x1e\x7c\xb0\xca\x8a\x3e\xce\xab\x6a\x44\x08\xa9\xf9\x40\xad\xf8\xc7\x6c\xce\x31\xba\x09\x6f\xc3\x22\xca\xe3\x55\x89\xa0\x59\x57\x0e\xa9\x8a\x1a\x62\x08\xa1\x60\xf9\x20\x4e\xe7\x3c\x2d\x3f\xa4\x71\x09\x19\x4b\x07\xb2\x24\x27\x6c\xf0\xb5\x84\x43\xc2\xd2\x81\xb4\xcf\x39\x44\xba\x59\x55\x09\xac\x59\x3a\x10\x82\x57\x13\xc0\x82\xa5\x03\xb1\xe8\x3f\x5f\x87\x79\x18\x95\x3c\x2f\xaa\x6a\x38\x9d\xdd\x1d\xcf\xee\x43\xbf\x3f\x5b\x2f\x16\x8b\x45\x30\x84\x6b\xd7\x23\x58\x89\xf2\x26\xfd\xdd\x0a\x9a\x94\x43\x51\x6e\x12\x4e\x91\x16\x25\xaa\x6b\x65\xa4\x1c\x1b\x50\x27\x44\x04\x72\x17\x70\x89\x08\xa4\x2e\x20\x42\x04\x62\x01\x30\xbb\x83\x08\x84\x4c\xcd\x80\xc2\x32\x5b\x22\x33\x8d\xfc\xa8\xa1\x60\xdb\x78\x41\x39\x46\xf1\x02\x11\xb8\xbb\x8e\x13\x4e\x4b\xb8\x8b\xcb\x6b\x5a\x82\xb0\x69\x9a\xc3\x3c\xa3\x39\x94\xf9\x86\xe6\xb0\x88\xd3\x30\x49\x44\x4b\xf1\x4e\x53\x90\xe7\x3b\x4d\x85\x1f\x2f\xe3\x74\xcd\x69\x0a\x29\xbf\x13\x24\x53\x7e\x87\x08\xcc\x79\xc2\x4b\x01\x95\xae\x8b\xa6\x30\xe7\x97\xeb\xab\x2b\x9e\xd3\x14\x6e\xc3\x5c\x20\xde\x86\x82\xcf\x28\x4b\x8b\xb2\xf9\x4c\xb8\xf3\x61\xe4\x26\x20\xd6\x0c\x08\x44\x22\xda\x16\x30\xd9\x10\x78\x99\x24\xb8\x90\x0b\x57\xa1\x88\xf8\x56\x2d\x39\xa0\xe0\x0a\xbf\xe0\x92\x37\x79\xb9\x22\x20\xba\x29\xe4\x97\xd2\x18\x94\x81\xd1\x18\x9a\x32\xb0\x80\xe6\x6b\x4e\x43\x90\xa7\x1b\x0d\x41\x1c\x6b\x34\x04\xeb\x43\x68\x08\x6f\xc3\xb7\x34\x84\xd7\xe9\x22\x4e\xe3\x72\x43\x43\x19\x9e\x0b\xfa\xe2\x57\x30\x90\x84\x85\xfc\x96\x0d\xc1\xe4\x7a\xc5\x25\xcf\x72\x43\x08\x6c\x62\x9e\xcc\x69\xaa\x8f\x02\xd1\xa1\x5a\x82\xb1\xa5\x01\xa9\x16\x22\xc0\xef\x4b\x9e\xce\x0b\x9a\x42\x78\x17\xc6\xa5\xf8\x2d\x36\x69\x24\xe9\x89\x06\x22\xb5\x38\x0a\xd6\x4a\xfd\x33\xa3\x09\xb7\x61\x1e\x87\x97\x09\xb7\xda\x60\x00\xfd\x13\x54\x43\xc2\xb6\x71\x5a\xf2\x7c\x11\x46\xdc\x65\x35\x5e\xae\xd4\xf3\x2c\x31\x5f\x1a\x2e\x79\xb1\x12\x18\x29\x28\x1f\x26\x50\x55\x4b\x30\x96\xae\x97\x2d\xc0\x6a\x7d\x99\xc4\x91\x06\xc5\x8b\x98\x8b\x1d\x5a\xe5\xf1\xad\x08\x3c\x77\xa1\x59\xa9\xae\x39\xda\xf0\x50\x84\x84\x61\x54\xee\x82\x0b\x1a\x83\x72\x12\x34\x03\x75\x2d\x48\x33\xb8\x54\xaf\xde\x68\x06\x61\xba\xa1\x59\x6d\x33\xf5\xa8\x13\xa7\x9d\x84\x14\xd3\x28\x60\xc9\x34\x0a\x74\xf5\xb2\x53\xd4\x98\xc0\x8a\x0d\xa7\xbd\x59\xff\x91\xf7\x7f\xd9\xf7\x2f\xba\x93\xea\xff\xfd\x1a\x0c\x61\xce\x86\xbf\xfe\x17\x16\x0a\xce\xef\xcb\x2a\x9e\x57\xb7\x61\xb2\xe6\x55\x12\xa6\x57\xeb\xf0\x8a\x57\x42\xa8\x95\xe8\x0e\xe3\x94\xe7\x55\x12\x17\x65\x55\xf0\xb2\xca\xf9\x2d\xcf\x0b\x5e\x09\x77\x73\x5f\x5d\x0a\xcf\x78\x9b\x45\xe1\x65\x75\x95\x87\xab\x6b\x82\x86\x8d\x87\xdd\xb4\x3d\x6c\x27\x66\x1c\x42\x96\x43\x59\x5b\x94\x25\xe6\x02\x41\x2c\x21\x15\x46\x6e\x92\x9f\x78\x81\xbf\x43\xdf\x31\x16\x57\x15\xfa\x0e\x31\x16\x9b\xc2\x47\x3e\x90\x99\x55\xfc\x85\x33\x9c\xb2\x18\xda\x55\x57\x41\x27\x87\x98\x75\x7d\x41\x21\xf1\x3c\xf4\x5f\x88\x31\x3e\x58\x71\xfe\x19\x13\xcf\x33\x05\xbf\xb9\xad\x51\x97\x0d\xbd\x25\x6c\x30\x52\x2e\xb2\x6f\x1c\x16\xa0\x25\x2f\x43\x5d\x12\x39\x13\xb6\xd1\x65\x38\xb7\x7c\x12\xcf\xc3\x79\x97\xa5\x55\x15\x93\x33\x12\xb3\x6e\xec\x79\x68\x36\x43\x8c\xe5\xe6\x98\x8f\xab\x0a\xbb\x93\x10\x31\x8b\xda\x59\x04\xa6\x41\x6a\x02\xcd\xca\xa4\x4c\x64\xb4\x33\x10\x4b\x6f\xd8\x1e\xfe\x3a\x9b\xf7\xf0\x84\xca\x88\xb9\x37\xeb\x07\x93\xd9\xbc\x47\x26\x43\xbb\x9a\x0d\x36\x57\xc8\x60\x1a\x07\x09\xa1\xc1\x00\xb9\x83\x8a\x95\x08\x56\x9a\xd5\xc6\x0b\x3c\x9c\xce\xa6\xb3\x40\x9c\x76\x33\x02\x67\x33\x3a\x1b\x04\xfa\xf4\x8a\x9d\x91\xb1\x22\xcf\x0c\x79\x1e\x96\x18\xbd\x68\xd1\x66\x2f\x10\x38\xae\x5b\xe2\x8f\x5c\xfc\xe1\xfd\xb0\x21\x29\x41\xff\x10\x2e\x5b\x70\x30\x0f\xfb\x8b\x60\x18\x4b\x99\x1d\x5e\x58\x9b\x52\xf6\x10\xa5\x51\xff\xd9\x1f\xa1\x73\xf9\x20\x1d\xff\xab\x64\x86\xb3\xf9\x9e\x90\xdc\xcd\x7b\x24\x12\x8e\xc1\x6c\xfe\x88\x4c\x0e\x6d\xe3\xc3\xec\x0d\x5d\x1b\xd0\x62\x7e\x84\xc8\x04\x3b\xf6\x70\x0b\xb7\x52\x73\x08\xd5\x08\x43\x81\xc0\x07\xc5\xe7\x78\x75\x91\x9d\xa7\x22\xbe\xdd\x60\x14\x65\x4b\xe1\xef\x10\xd8\x16\x21\x54\x04\x43\x39\xf8\x64\xd2\x0a\x9c\x8c\x77\x29\x21\x67\x5d\x1f\x52\xd6\xf5\x8d\x0d\x94\x8d\x0d\xa8\x8b\xd0\x6e\x2e\x7f\x24\xa7\xa5\xe7\x75\x53\xcd\xed\x11\x9a\x0a\xc8\x24\x65\xdd\x11\x4d\x3d\x0f\x05\x0a\x01\x0b\x6a\xa4\xce\x59\x37\x37\x36\x53\xd6\x35\xe6\x04\x1c\x81\x5d\x62\x3c\xbd\x8a\x97\x9b\x75\x40\xf0\xa4\xab\x9b\x8f\x66\x63\x42\x7a\xb3\x4b\x25\xaf\x9c\x5f\xf1\xfb\x95\x35\xa5\xfe\x58\x2c\x07\x3b\x9b\xb6\x92\x68\x56\x01\x1d\x5d\x04\x3e\xd0\xe5\x0d\x4c\x88\x92\xf3\xbf\x1f\xf0\x35\x57\x70\xd5\x58\xe5\xff\x69\x6f\xc6\x8e\x7c\xf5\xf3\x5d\xfd\x2b\x47\xac\xf6\x75\xe2\x8f\xb2\x27\xc8\x2c\x2c\x99\xad\x43\x60\xa1\x9e\x29\x84\xcc\x41\x87\x82\x5d\x0f\x56\xb9\x20\x55\x6e\x5e\x17\xe7\xe9\x7a\xc9\x73\x71\x16\xe2\x90\x78\xde\xf5\x34\xb4\xb7\x27\x22\x7c\x1f\xa0\x2e\xcb\x6d\xb0\x3a\xd9\xe0\x42\x86\x84\x50\x0c\xe4\x49\x0a\x21\xa1\x1b\xec\x9c\xaf\x4e\x33\x24\x75\xe3\xcc\x6f\x95\x13\x36\x5a\x93\x2b\x85\x69\xbc\xe5\x59\xa3\x21\xb9\xe7\xa5\x64\xeb\xfa\x45\x75\x0d\x57\xa7\x0c\x3d\x12\xfd\x75\xe3\x40\x0e\x28\x6c\x33\xe7\xd5\xc1\x39\xf7\x1d\xb5\x56\xd2\xd4\xf3\xd4\x26\xe7\x55\x85\x8e\x15\x23\xda\x5a\xb6\x88\x90\x07\x58\x12\xc3\xb4\x5b\x77\xf8\x52\x71\xbe\xa3\x78\xad\x0d\x6b\x58\xbc\x54\x2c\x96\x83\x45\x58\xbe\xcc\xf3\xec\xee\xa5\xac\x64\x3a\x9f\xea\xda\x5a\x6e\xa3\x60\x59\x27\x07\xf2\x84\x7d\xb7\x50\x1e\x54\x40\xc3\xbc\x94\x7a\xd0\xc5\xf9\xf7\x23\xd2\x2c\x3a\x65\x23\x79\xe6\x89\xc3\xb5\xef\x9f\x85\x2f\xd8\xe8\xac\xdf\xb7\xef\xa2\x2d\x41\x91\x8a\xbe\x2c\x71\x48\x20\x63\x08\x4f\xb7\x75\x40\x90\x9d\xa5\x90\xa4\xb3\x17\x6c\xe4\x79\xd9\xf7\x27\x5a\x5c\x64\xdb\xeb\x85\x5a\x0e\xea\xb5\x43\xbf\x9f\x12\xf5\x2d\xb3\x63\x35\xe6\x44\x8c\x79\x4a\x7a\xbd\xf4\xc8\x40\xb5\xb2\x16\x44\x1c\x8b\x23\x09\xde\xca\x63\x05\x7d\x37\x1b\x9a\xa3\xa4\x30\x16\x21\xe6\x8e\xa5\xd7\x70\x26\xac\x6b\x09\xda\x15\x96\xd0\x39\xb1\xb2\x7b\xb6\x15\xf1\x25\xed\x8e\x4c\x80\xd4\x1d\x81\x51\x4d\xd1\xd6\xf1\x53\x77\x04\xca\x49\x50\x7d\xa3\x26\x7e\x77\x0f\x7a\xda\x1d\xd5\x4d\xe4\xf2\xb9\xfd\xbe\x5c\xd6\x0d\x55\x7e\xc5\xe7\xe6\x1e\x51\x55\xea\x99\xba\xcf\x93\x06\x23\x42\x1b\x75\x59\xcd\x6f\x59\x0c\x7a\xd4\x22\x63\x2a\xaa\xee\xb2\xd4\x54\xb0\xc3\x24\xbe\x4a\x59\xea\x28\xc9\xdd\x8e\x1e\x33\x3e\x48\xb2\x28\x4c\x3e\x86\x79\x71\x96\x9f\xe5\x2c\x97\x9a\x4c\xe2\x05\xce\x07\x22\x4e\x65\xac\x24\xe6\x8a\xfa\xa8\xd1\x04\x3e\xd0\x21\xdd\x59\x7a\x96\xb2\x54\xf2\x42\x44\x77\xce\xd2\xc1\xed\xb7\x10\xab\xd5\xa3\xa7\xad\x7a\xd3\x21\x2b\xd8\xfa\x16\x43\xb6\x97\x61\xfe\x99\xcf\x35\x3c\x92\xbf\x8e\xe0\xce\x71\xb3\x06\xce\x6c\x19\xc8\xd6\x7b\xcf\xb8\x50\x4e\xde\xef\x93\x4f\x83\x28\xd2\xcf\xa8\x0d\xd6\x94\x07\x8e\x44\x6e\x9a\x62\xd3\xb9\xae\x2f\xc9\x49\x9b\xda\x12\x74\x47\x0d\xfa\x7b\x79\x60\x35\xc9\x7d\x4b\x98\xe5\x03\xab\xe6\x8d\x08\x75\xc3\xaf\xd5\x88\x4f\x2a\x81\x16\x7a\xf9\x69\xa0\xd6\xcc\x44\x3e\x85\x20\x37\x12\x56\x37\x73\x38\x6f\x36\xca\x6a\xb3\x03\x63\x5b\x31\x15\xe5\xea\x5a\xcf\xe9\xa8\x6b\x63\x13\x82\xc6\x55\x92\x5d\xee\x10\x49\x1d\xa0\x88\x33\x9d\xcf\x5d\xa2\x4d\x4f\xad\x8d\xe3\xb5\x46\x51\x39\x9a\xc2\xd3\x10\x2b\x40\x54\x3b\x3b\x77\x8c\xc9\x56\x2f\xda\x2c\x90\x6d\x85\xf6\xd0\x1d\xa8\x30\xb1\xc2\x02\x9b\xe5\xc0\x1e\x88\xbd\x6e\xb6\xe7\xa5\x43\xbe\x41\xd8\x21\x2d\x15\x14\x76\xb9\xd8\x45\x12\x4c\x35\x84\x7f\x74\x22\xff\xdd\x67\x1a\x76\x1b\x21\xb5\x05\x12\x3e\x97\x67\xb8\x00\x0b\x7f\x3e\x48\xd4\x45\x90\x34\x60\x92\x3a\x00\x8b\x2e\x3d\x9a\xd1\xa5\xb8\xc1\x38\x13\xc1\x3e\x11\xb1\x80\x1c\xec\x79\xb1\xb2\xeb\xb3\x98\xc5\xca\xee\x52\x16\x37\x64\xec\x38\x79\x55\xfc\x19\xa7\x72\xa1\x39\x0f\x97\xda\x95\x60\x02\x5c\x3a\x0a\xb0\xa8\x50\x12\x5b\xff\x95\x40\x26\x9c\x59\xb3\xf8\xb7\xf6\xe6\xc8\xe8\x2b\xb7\xfc\x0b\x0e\xc4\x69\x47\x64\x06\xe4\x2e\xd3\xf3\x30\x77\xdc\xd9\xde\x8a\x45\x08\x66\x78\x6d\xd3\x73\xcc\xf3\x9d\xf3\xd6\xc1\x31\xbb\x26\xdb\xcb\x19\xe3\x93\x1b\x4c\x28\x3a\x13\x1c\x4c\xce\x31\xa1\x37\xb8\x74\x03\x86\x8f\x6a\xef\xf4\x65\xc2\x6d\x98\x23\x35\xe6\x47\x19\x6d\x48\x6b\x2b\xed\x55\x64\xc8\xe1\x1d\x46\x67\x88\xc0\x5b\x42\x9d\xf2\x91\x1d\xb2\xc8\xf2\x25\x22\x70\x01\x1f\x5b\x18\x97\x7b\x18\xaa\x7f\xdb\xc0\x6b\x91\xdc\x73\x09\x3d\x43\x96\xed\x78\x21\xdb\x18\x09\x05\x40\xcc\xea\x61\x23\xae\x45\xe6\x79\x56\x3b\xa3\x69\xd3\x6c\xee\xb7\x18\x7b\xeb\xe2\xa8\x7b\x35\x4c\x60\x8f\x63\x58\xf3\x9d\x7a\xa8\x60\x63\xc9\x05\x2c\xcb\xf7\xd6\xb0\xe0\x7a\x19\x36\x16\xb3\x18\x52\xb5\x09\xfc\x85\x50\x53\x23\xda\x17\x91\x5c\x34\x34\x35\xa4\x77\x32\xfe\x91\x42\x90\x54\x65\x2d\x49\x0d\xbb\x10\x9d\x54\x16\x6b\x4d\x3d\x49\x75\x58\xb0\x2a\x54\xed\x4e\x72\x2c\xc6\x61\x44\xe0\x56\x6e\x1c\x51\x82\x87\x97\x62\x80\x2c\xbe\xec\x0e\xb8\x52\x3b\xa0\x4b\x43\xbb\xcb\xb9\x53\xbd\xba\x4a\xb4\xdb\xfb\x49\xf5\xea\xca\xcc\x2e\xe5\x82\x83\xde\xe5\xdd\x75\xaa\x82\x92\xc2\xff\x48\xe8\xb9\x43\xf2\xa2\x51\xb7\x46\x63\x2f\x1c\xad\x7f\x83\x39\x88\x14\xc6\x76\x7e\xd9\xed\x1c\x39\x9d\x6f\xec\xbb\x30\xa3\x0d\x4e\x48\xc3\xac\x2b\x50\x51\x9e\xf6\x5e\xe5\xe4\x1f\xf4\xcf\xd2\x5d\x61\xd4\x1c\x56\x9d\x1b\x7c\x2c\xd6\x23\x24\xfa\x0b\x2e\x38\xc8\xd6\x5b\xc1\x2e\x7b\x81\x08\xe4\xf0\x52\xe5\x29\xae\x6a\x98\xb1\xe7\xf8\x58\x88\xc3\xc5\xad\x55\xe4\x50\x4e\x5e\xd1\x1f\x8c\xb3\xb9\x1f\x5c\x87\xc5\xbb\xbb\xf4\x27\x9d\x43\x60\x4e\x26\x37\x38\x3d\xa4\xa0\x90\x3a\xc6\x66\x64\x59\x4e\x7e\xa2\xbf\x11\xaa\xf8\x56\x7b\x21\x98\xfc\x0d\x5e\x5a\x65\x78\x2b\x07\xda\x6c\x87\x31\x5e\x55\xa6\x10\x61\x88\x7c\xa1\x17\x84\xca\x04\x52\x13\x09\x10\x81\xd7\x5c\x8f\x55\x16\xfc\x2f\xfc\x77\x10\xca\x2c\x3d\xa7\x00\x9b\xfa\xbb\x70\x39\x1f\x24\x24\xe5\x77\x9a\xc4\x81\x87\x5a\x16\xd4\x78\xa2\x81\xcc\x58\x6f\x30\x9f\xfc\x95\xfe\x49\x68\x05\x97\x9c\xd4\x35\x2e\x89\x70\x62\xce\xb6\xfe\xe6\x50\xb2\x89\xeb\xf4\x6c\x56\xcf\xc8\x2c\x80\x60\x48\xa4\xdf\x3b\xc7\x17\xce\x98\x9f\xbe\x71\xcc\x17\x67\xcc\x0f\x2d\x57\x09\xc6\x36\x09\x7d\x25\x43\xd5\x96\x1e\xbe\x32\x75\x37\x9d\x1c\x30\x96\x4f\x7e\xa0\xaf\x20\x56\xcd\x0b\xfa\xc5\xfc\xbd\x01\x7b\xa1\x09\x1d\x43\x2e\x74\x4d\x5a\xa7\xbb\x25\x93\xe1\xac\x37\xeb\x55\xfd\xbe\xb9\xe9\x30\x6a\x30\xd1\x22\x32\xde\x01\x62\x21\x98\xf8\xa0\xf8\xcf\x50\x97\xf1\x89\xd6\x85\x7f\xe1\x2f\x42\x61\x01\x45\x61\x92\x20\xd9\x3f\xd0\x4c\xfc\x4d\x7e\xed\xec\xf6\x6f\x62\x82\xc0\xe8\x8b\x7a\x0d\xa1\x7f\x9a\x15\x7f\x68\x49\x47\x71\xd0\xd5\x67\x0e\x3a\xde\xa2\x2e\xb3\xaf\x5b\xec\x2b\x01\xb1\x92\x0f\x82\xe9\x0b\xf8\xd9\x11\xde\xcf\xfa\x6a\x12\xd5\xae\xd9\x34\x31\x60\x93\xed\x19\x3b\x76\x8a\x04\x82\x62\x43\xea\xcf\xce\x3e\x5f\x62\x63\xe2\x66\x1c\x81\x73\xac\x55\xf8\x23\x75\xd5\xe3\x1f\xdf\x3e\xcc\xd5\x90\x3f\x59\x07\x83\xca\x30\xbf\xe2\xf2\x3e\x6e\x9f\x7f\x5b\xd9\xbc\xc1\x3f\x38\xa3\xff\xfa\x87\x47\xbf\x72\x46\xff\xa5\x61\x19\x51\xbd\x7f\x6f\x41\x3a\xd4\x1f\x0e\xb9\xd1\xbf\x19\x21\x1f\x72\x51\xcd\x6c\xa6\x82\x21\xa6\x73\x46\xff\x7d\x37\x6c\xb0\x24\xaa\xca\x72\xa8\x7c\xea\x26\xe1\x13\x7c\x98\x20\xd2\x8b\x14\x5e\x47\xb5\x26\xff\x4d\xff\x29\xce\x33\x5d\x79\xd3\x1e\x49\x55\x68\x65\x24\x60\x09\x25\x93\x86\x14\xd5\xf3\xf4\x50\xc7\x25\x2f\x29\xed\x24\x99\x4a\x30\xff\x54\x07\x95\x2a\xf5\x2b\xd0\xdf\x1d\xbd\xbf\x30\x0a\x2f\xf0\x5a\xfe\xf0\x82\xec\x29\xfe\x7f\x3b\x82\xb7\x82\x50\x9a\xff\x4f\x42\x1f\x58\xf9\x92\xbb\xe5\x89\x7f\x1e\xd8\xbb\x2f\xd6\x75\x9f\xcb\x10\x64\x77\xda\x5f\x74\xb6\x6a\xbe\x73\x9c\x42\xac\x76\x54\xb8\x26\x7d\x33\x19\xee\x86\x4c\xc6\xed\x48\xd3\x67\x2c\xd4\x21\x14\x0e\x07\xab\xac\x60\xea\xa7\xaa\x46\xa4\xe7\x8b\x00\x89\x43\x4e\x4c\xb9\x25\x95\x1b\x15\x2b\x9f\x23\x8c\xf6\x9d\x70\xc5\xf5\xae\x0b\x97\x5c\x1c\x1e\x72\xae\xe8\x35\x6b\xf8\x97\xf1\x92\x4d\xf2\x7c\x72\x96\x7e\xbf\x9b\xb3\x9e\xa5\xbd\xde\xc1\x64\x35\x0d\xec\x55\xbe\x70\x56\x82\x14\x28\xb9\xb4\x54\x9d\x3b\xb7\xa2\xca\xa7\x68\x76\x3e\x02\xe7\x0e\x5e\xc9\xb5\x4d\xac\x3d\x4f\xed\x43\x73\xdc\xa7\x2e\x62\xce\x1b\x53\x65\xae\x95\xde\xb4\x0e\x8c\x94\x7f\x9b\x8d\x39\xb7\x64\x70\x83\x63\x77\xa6\x98\xb7\x0c\xed\x7b\xed\xf2\x7f\xc1\x29\x07\x24\xa2\x87\x98\x3b\x7a\xab\xb5\x36\x3e\xa0\x2e\x21\x77\x72\x79\x11\xb1\x94\x1c\x12\x0e\x91\x3b\x59\xd1\x9e\x6c\xc7\x40\x0a\xbe\x1b\xea\xe2\xf7\xb8\x14\x5a\x42\x76\xad\xa4\x68\x98\xfa\x97\x8c\x8e\x02\xe4\xc4\x0a\x19\x17\xc1\xc2\x3e\x8b\x19\x3f\xec\x54\xba\xc2\x09\xd8\xe8\xcc\x16\xa6\x8b\x47\x74\x28\x0e\xdd\x49\x5b\xbc\x9e\x77\xc8\xe4\x08\x1c\xe0\xb0\x76\x92\x22\x7d\x84\x16\x42\x2a\x84\x50\xb3\xb4\xa4\x65\xa7\xc9\xb7\xed\x7b\x64\xf7\x1d\xda\x4a\x14\xba\xd2\x5e\x3b\xc4\x5a\x89\x92\xe7\x99\x74\xc7\xa1\x6f\x22\x69\x50\x7d\x2a\x83\x6a\x88\x2d\xec\x94\x3b\x61\xaa\x8e\xfa\xae\x9b\x98\xcf\x19\x75\xcd\xdb\xbe\x4b\x0b\xa7\x49\xf3\xe6\xdc\xc9\xc7\xe6\x7b\x0a\x70\x83\x57\x5c\x46\x56\x0e\x7e\x43\x7d\xd5\xde\xcf\x38\xd5\xae\x3e\x5b\x48\x2d\xc6\x07\x8f\xb4\x0b\x19\xdd\xfd\xd0\xa6\x34\x6f\x53\x32\x0c\x6d\x04\x43\xdf\x4e\xd6\xe1\x73\xe3\x52\xdf\x48\x29\x20\x22\x14\xcd\xf3\x6e\x5a\x71\xe2\xb2\x3d\xf3\xa3\xaf\x4c\xb1\x94\xc9\xe3\x41\x03\x51\x5d\xd8\x06\x7a\x36\x73\xb8\xb5\x99\x43\x29\x92\xc9\x97\xfb\x46\x71\xeb\x6e\x51\x4b\x85\x6f\xa5\xe8\x95\x25\xe7\xee\x7a\xae\x1c\xc5\x3a\xe4\x78\x34\x53\x97\xee\x98\xcb\xf6\x3a\xf5\xfd\xbf\x0d\x30\x2f\xf9\x7e\xb6\x7e\x2f\xf3\xbd\x5d\x7e\xef\x1f\x30\xe2\x87\x22\x03\x99\xea\xc5\xd1\x57\xe4\x7a\x2f\xed\xf1\xd0\x31\x7a\x20\x7c\xb8\xc1\x9f\x39\x2c\x39\xdc\x73\xa1\x46\xaa\x41\xe8\x57\xf7\x4d\x61\x18\x9d\xba\x6f\x1c\x83\x38\x23\x76\x97\xf7\x99\x3f\x7c\xda\x3f\x78\xd8\xbb\x2e\xe4\xee\xdb\x15\xea\xbd\x31\xc3\x76\xde\xff\xa0\x8a\x37\xd8\xe7\xf8\xa3\x33\xe5\xa7\x96\x0a\x35\xb1\x94\x3a\x03\xcf\x39\xbc\x77\x35\xe1\xbc\xcd\xa0\x71\xda\xe7\xda\x69\xef\x3a\x5b\xa9\x4c\x6a\x19\x2d\xcf\x6b\x18\x13\x9a\x76\xd3\x72\xa2\x37\x8e\x7a\x86\xc5\xef\xc6\xb8\xe7\x2e\x73\xef\x9d\xb1\x8b\x3c\x5b\xfe\xee\x68\xd7\x96\x5f\xbb\x72\x08\x1c\x11\x7c\x81\x63\x77\x92\x63\x17\xcf\x14\x7e\xce\xb1\x4a\x9b\x03\x59\x6e\x31\xc9\xdf\x2f\xf8\x27\x50\xa0\x73\xfc\x8b\xc8\xaa\x44\xdb\xa9\xb8\x1e\xa2\x74\x83\x17\x1c\x5e\xf2\xa6\xba\x25\xb6\xee\x65\x73\x64\xeb\xe5\xbc\x35\xb5\xc6\xad\xac\x47\xec\xbf\xa4\x56\xcf\xb8\xb6\x26\xf5\xa1\x4b\x30\xd7\x87\x14\x15\xd9\x02\x41\x14\xd1\x69\x00\x3a\xee\xa3\xaa\xe2\x89\xb9\x08\xee\xfa\x05\x8c\x00\x5d\x26\x59\xf4\x19\x89\x23\x14\x6c\x39\x98\xa6\x4d\x69\x18\x74\xb5\xd7\x85\x79\xde\xf6\x76\x07\xad\x06\x53\xb4\xa4\x82\xb8\x2d\x96\xb6\x6b\xe7\x7b\x0f\x14\x77\x4a\xeb\xa5\x5b\x5a\x77\xfb\x08\x94\xb5\x7e\xca\xbf\xf7\xe7\x7d\x7c\x50\x64\x09\x96\x7f\x6f\x62\x4b\x82\x3b\x45\x13\x24\xeb\xc1\x48\xfe\x61\x8b\xc5\x51\x77\x3f\x62\xe1\xa5\x5b\x84\x55\xcd\x50\xff\x1d\x81\xba\x33\x14\x28\x46\xc4\x5d\x76\xab\xaf\x2a\xdf\xaf\xc2\x88\x63\x7b\x97\x2c\xff\x1f\x20\x5d\x2f\x72\x9f\x90\x94\xc4\x86\xdb\xfa\xda\x94\xb1\x78\x92\x53\xe7\xb5\x22\x6b\x72\xfd\xae\x7c\x6a\xd3\xeb\xa1\x2e\x0b\x3d\x0f\xf5\xfb\xa2\x31\x89\xc5\x11\x17\xcd\x79\x84\x60\xff\x7f\x5e\x32\x41\x3e\x1f\x44\x91\xbc\x81\xd2\xd1\x3e\xe3\xb6\xb2\xcd\x62\xb0\x96\x21\xeb\x33\x22\x90\x66\x21\x68\x07\xcc\xca\xa6\xd2\xfc\x15\xd9\xf1\x5d\xd9\x8d\x88\xfe\x6f\x07\xb0\xf9\x23\xa4\x49\xa8\x2a\xab\x34\x9a\x5c\xd0\x8f\x44\xbe\x8e\x54\x91\xfd\x59\xf3\x77\x4a\xe1\x34\x6c\xfd\x0d\xce\xfd\x19\x09\x4d\x41\xf6\x68\xc7\x90\x27\xa6\xd1\x3a\x55\x73\xcf\xbb\xc3\x1c\x52\x32\x69\xe2\xe6\x31\xa2\x65\x5d\xd7\x22\x01\x80\x18\x42\x10\xfe\x46\x6b\x65\xa3\x34\x32\xd1\x88\x17\xee\x4b\x20\x76\xdb\xbc\x06\xf8\x29\x2c\x8a\xa3\x56\x77\x97\x2d\x4d\xf7\xe8\x48\x5f\x3c\x78\x5e\x6e\xee\x70\x47\x04\x42\x66\x75\x4a\x5e\x0a\xcb\xa8\x94\xcb\x27\xea\xba\x58\x93\x13\x62\x72\x9b\x84\x95\x6e\x59\xfa\x2c\x51\x77\xc4\x89\xda\xc3\x48\xf6\x4e\x93\x40\x10\x8a\x18\x7b\x4b\x42\x16\xca\x82\xbf\xbd\xce\x8d\xba\x6c\xcd\xf5\xc5\xaf\xb9\x3c\x09\xf5\x6d\x82\x3c\xb2\x62\x91\xc7\xe9\x51\x04\x32\x7d\x35\x62\x51\xec\x10\xd1\x6f\x6e\x21\x2c\xbe\xfe\xaf\x32\x14\x36\x2c\x58\xcc\xd8\xfa\xa8\x39\xe8\xe6\x5c\x38\xab\xf5\x24\xb4\x06\xd3\xc3\x6e\x99\xaa\xd1\xe8\xaa\x92\xee\xb1\x01\x4c\x54\x92\xd9\xf3\xe9\x48\x55\xd2\x85\xdb\x16\x29\xd6\x56\x9a\x43\x43\xb1\xe9\x74\xa7\x29\xa8\xe1\xbc\x3d\x7b\xdb\x1b\x68\x4e\xdd\xc2\xd9\x2e\x47\x2e\x60\x65\x5e\x0d\xdb\xcd\x24\x55\x35\x9c\x82\x7d\x61\xe5\xf6\x48\xc5\x22\x93\xac\xaa\x0a\xb9\x04\x5d\xb2\xef\xea\xec\xb9\xaa\x16\x55\x35\x62\x2c\x1d\xcc\xb3\xf5\x65\xc2\xd5\x6b\xdf\xf7\x12\x69\x12\x2a\x83\x99\x84\xfa\x86\xa9\x87\x17\x93\x11\xf5\x09\x6d\x2d\x65\x32\xa2\x45\x1b\x24\xdf\x42\xcb\x47\xcf\xfa\xe4\x27\x8e\x4e\x4d\x0a\x3a\x7e\x24\x1f\xf6\x27\x3c\x2a\xf3\x38\x52\x7f\xc2\x29\xd5\x4f\x0f\xeb\x0c\x1e\x4d\xa8\x19\x4b\xab\xd9\xb6\x9a\xd5\xe4\x78\x08\xd2\xe9\xff\x59\x79\xa3\xf7\xe2\x60\xa1\xd1\x44\xbe\x37\x45\xc3\x47\xa8\xd5\x7b\x9e\xce\x6d\xdf\xa3\x21\x92\x7f\x43\xa5\xbb\x9a\x31\x43\x04\x8b\x2c\x99\x53\x74\x99\x87\x11\x47\x10\x25\x59\xc1\xff\x94\x87\xd1\x67\x5e\x16\x14\x61\x32\x0d\xb6\xf5\x77\xdf\xcd\xd0\x0c\xfd\xfb\xdf\x08\xae\x79\xb2\xe2\xb9\x3c\xa3\xa2\x89\x2c\xcd\x20\xda\x7a\x5c\xad\xaa\x35\x3f\x66\x73\x4e\x13\xf9\x21\x9b\x11\xf0\xfb\x55\xce\x8b\x22\xce\xd2\x97\x49\x92\xdd\xf1\x39\x2d\xa1\xf8\x1c\xaf\xce\x2d\xfc\xc0\xd9\x28\x6f\x84\xda\x77\x41\x47\x65\x97\x5d\x78\x5e\xd9\x65\x5f\xaa\xaa\xb9\x0d\xaa\xeb\x9a\x10\xe0\x83\x9c\x5f\xc5\x45\xc9\xf3\xbf\x49\x3e\x31\x32\xef\xb0\x0b\x04\x2d\x36\xe5\x7b\xec\x60\x28\x86\xe8\x67\xe2\xaf\x7f\x3c\xc7\x48\x9c\x96\x43\x17\xcf\x1d\x74\x10\x99\x47\xcb\x6f\x42\x0e\x57\xab\x24\x8e\xe4\xd1\xf4\xcd\x13\xb8\x63\xee\xfb\xff\x93\x51\xff\x23\xee\xc4\xa6\x82\xbe\xe7\xde\xdd\x5a\xda\x1d\xd5\xbf\xc3\xe6\xff\x66\x78\x32\xef\x7d\x75\x7c\x32\x3f\x44\x41\x6e\x44\xf3\x00\xff\xe0\xe8\xa6\xfb\xf7\x78\xf8\x63\x84\x6a\x42\x8e\xfe\x7f\x00\x00\x00\xff\xff\x55\x91\x60\x5f\xdb\x53\x00\x00") - -func web_uiAssetsCodemirrorModeJavascriptJavascript77218cd1268ea6df75775114ae086566JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsCodemirrorModeJavascriptJavascript77218cd1268ea6df75775114ae086566Js, - "web_ui/assets/codemirror/mode/javascript/javascript-77218cd1268ea6df75775114ae086566.js", - ) -} - -func web_uiAssetsCodemirrorModeJavascriptJavascript77218cd1268ea6df75775114ae086566Js() (*asset, error) { - bytes, err := web_uiAssetsCodemirrorModeJavascriptJavascript77218cd1268ea6df75775114ae086566JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/codemirror/mode/javascript/javascript-77218cd1268ea6df75775114ae086566.js", size: 21467, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsCodemirrorModeRubyRubyEa43ca3a3bdd63a52811e8464d66134bJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x58\xdd\x73\xdb\x36\x12\x7f\xf7\x5f\x11\x6d\x5d\x1a\x88\x21\x52\xca\x3d\xdc\x0c\x6d\x84\xc9\xa5\xee\x8d\x67\x92\xcc\xdc\xb4\x9d\xce\x94\xa4\x5d\x58\x84\x62\x9e\x29\x50\x01\x41\x7f\x54\xe4\xfd\xed\x37\x0b\xf0\x4b\xb2\x2f\xbd\xe9\x8b\x04\x62\x17\xfb\xf1\xdb\xc5\xee\x92\x64\x5d\xab\x95\xc9\x4b\x45\x24\xdd\x41\x79\xf3\x6f\xb9\x32\xc0\xb9\x79\xda\xca\x72\xfd\x4a\x3e\x6e\x4b\x6d\x2a\xcf\x7b\x46\xd9\x94\x59\x5d\xc8\x48\x12\x2d\xbf\xd6\xb9\x96\x04\x7c\x3f\xf0\xfd\xa0\xc8\x6f\x82\x55\x99\xc9\x4d\xae\x75\xa9\x81\xd2\x10\x7a\x0d\xe3\xe1\x4c\xae\x73\x25\x3d\xcf\xfd\xfb\x62\x93\x45\x6e\x49\xe2\x97\xc5\xa4\x4c\xd2\x50\x92\x0f\x65\x26\x3f\xd9\x1d\xda\x52\xb2\x6f\x7a\x5d\xc9\x57\x95\xd1\xf9\xca\xc0\x91\xf4\x9d\xb8\x4f\x65\x26\x09\xe8\xfa\xe6\x09\xd8\x1e\x77\xbf\x7e\x65\xec\x53\xa9\xc9\xbd\xd0\xaf\x0c\xdf\xb5\x4c\xf1\x05\xd3\x5c\xfa\x85\x54\x5f\xcc\xed\x99\x3a\xd7\x67\xa7\xa7\x8a\x9a\x58\xc6\x2a\x4d\xf9\x6c\x71\xa4\xa5\xa9\xb5\x7a\x65\x5a\x3c\xa3\x98\xe6\x86\xc4\x20\x8a\x5c\x54\xc0\x40\xa8\x0c\x18\xfc\xe3\xe2\x9f\x97\x9f\x81\xc1\x8d\xfc\x92\x2b\xfc\xd7\x52\xdc\x01\x83\x95\xa8\x24\xfe\x15\xa2\x42\xe6\x4c\xae\xdd\x6f\xae\x64\x16\xe1\xb2\x04\x06\xb2\xb0\x4c\xb2\xa8\x72\x24\x5f\x7c\xfe\x01\x9f\xac\x5c\xa9\xaa\x5a\x23\x71\x2d\x1c\xd3\xba\xd4\xc0\xc0\xf2\x59\x45\x2e\x2c\xc0\x40\xc9\x47\x83\x7f\x25\xfe\x5a\x26\x2d\xad\x74\x2d\xab\x55\x2d\xed\xc2\xe8\x27\xf7\x5f\x6b\x3c\x5b\xc9\x02\xe5\x54\xf5\x56\x22\xbf\xb9\x95\xb8\x6b\xb4\xe5\xae\x95\x33\xb6\x56\x85\xb4\xb6\xd7\xca\xe4\x05\x30\x78\x70\x6c\x0f\xb7\xb9\xd5\xfb\x94\xcb\x02\x2d\x55\x96\xa8\x45\x6e\xcd\x34\xb7\xba\x7c\xb0\xfe\x9b\xd5\xad\x35\xdf\x92\x8b\xb2\xdc\xda\xdd\xa2\x58\xad\xba\x85\xd5\x5d\x88\xcd\x4d\x26\x80\xc1\x56\x97\x48\xd8\xd6\x37\x45\xbe\x72\xcf\x46\xae\x8c\xcc\xec\x3a\xbf\x17\xc6\xb9\x62\x73\xd0\x4a\x14\xd9\xb8\x71\xad\x65\x21\x4c\x7e\x6f\xe1\x7c\x34\x0e\x43\x51\x9b\xb2\x63\xbb\xbe\xbe\xf8\xfc\xc3\xf5\xb5\x5d\xfd\x78\xf9\xf1\xa2\x5b\x7e\xbc\xfc\xdc\x2f\xb3\x5c\x5f\x5f\x43\x4a\x59\x6e\xa3\xec\x30\xe8\xc3\xd7\x45\xd3\xc5\xa0\x07\xa0\xc7\x65\x88\x44\x87\x63\xef\x7a\xe7\x73\xe7\x98\x4b\x90\x94\xb2\xd2\xca\x77\x16\x3a\x11\x29\x65\x82\xef\x20\x86\x10\x52\x60\xb0\x83\x10\x5a\x60\x40\x20\x04\x0a\xed\xd1\x90\xc2\x35\x91\xcc\x30\x45\x77\x5d\x5e\x2a\xdf\x94\x77\x52\xe5\x7f\x48\x7f\x5b\x57\xb7\x44\x52\x26\x09\x32\xb4\xc3\x91\x35\x1e\xa1\xbb\x7c\x4d\xa4\x5f\x95\x05\xa1\x9e\x27\xfd\x0d\x1a\x48\x80\x3b\x93\xec\x96\x44\x1a\xed\xf3\xfd\x40\x6e\x45\x19\xac\xca\xcd\x46\x2a\x03\x47\x56\x94\x14\xe6\xa7\xad\x58\xc9\xf1\x8c\xaa\x8b\xe2\x08\xaf\x89\x66\x39\x2b\xb9\xf4\x31\x2d\x09\x45\x76\xf8\x1d\x38\x2f\x9b\x06\x4e\xdc\xff\x09\x9c\x70\x5e\xf6\x07\x6b\xb2\x22\x25\x03\xbc\xd0\xea\x0b\x30\x47\x6c\x1a\x77\x88\x32\x34\xdf\x0a\x09\xec\xf3\x0e\x55\xac\xb9\xf4\x57\xb5\xd6\x52\x19\x42\xbb\xeb\xeb\xec\xaa\xee\xf2\xed\xcf\x25\x32\x53\xc7\x5a\xbc\xc4\x2a\xfd\x1b\xb1\xba\xfb\x65\x4b\x9e\xd3\xe6\x6b\x7a\xd4\x17\x89\x8c\x2f\xce\x9e\x73\x9c\x17\x67\x4e\xf4\x76\xdf\x49\x02\x9c\x6f\xa3\xec\x94\x2f\x31\x6a\x9c\x6f\x3d\x8f\x64\x73\xbe\xa4\x2c\x3b\x5f\x50\x5b\x16\x5a\x6b\xe3\xb7\x74\xb3\x05\xe7\xd9\x8b\xc8\xcc\xdf\x00\x9b\x2d\x1c\x1e\x6d\x77\x91\xcb\xad\xd4\xc2\x94\x1a\x50\x30\x7c\x3f\x02\x74\xc7\x07\x3c\x6f\xb1\x8e\xd9\x80\x11\xa8\x80\x46\x77\x1c\x84\x29\x37\x10\xba\xbd\x20\xfe\xf5\x5f\x69\x60\xb7\xbb\x13\x03\x41\xef\xed\xcf\xdf\x8c\x94\x87\xc7\xaf\x69\x40\x3d\x8f\xec\xeb\x59\x52\x9b\x00\x1b\xde\xf3\x5d\x25\x0f\x49\xc5\xd3\x80\xf6\x85\x74\x13\x11\xe1\x6f\x35\xda\x6d\x9e\x2e\xab\x0b\x55\x6f\xa4\x16\x37\x85\x24\x1b\x14\xb7\xe1\x22\xde\xa4\x94\xa1\xe3\x1b\x76\xc7\x6e\x07\x8f\x69\x78\xe0\xec\x77\x30\x49\xa1\x3e\xee\x17\x2a\x23\x07\xa9\x0a\xe7\xc8\xe8\x79\x04\x0b\xbd\xcb\xfb\xe0\xea\x7c\x1e\xc5\xc9\xef\x09\x24\x27\x69\x44\x62\x31\xff\xe3\xfd\xfc\xb7\xeb\x28\x4d\x1e\x5e\xd3\x71\x3f\x0a\xcf\x9a\x63\x1a\x50\x3a\x86\x83\xe4\x5c\xc7\xcb\x94\x8d\xfd\x05\xef\xd6\x60\x84\x13\x9f\xd3\x68\x7a\x7f\xca\x2d\xa1\xe1\x81\x81\x1d\x66\xed\x24\xbb\x17\xfb\xfe\xd8\x70\x3d\x02\x8d\xec\xf2\x57\x2c\x38\x24\x88\x93\x4c\xcc\xd7\xef\xe7\x3f\xa6\x01\xed\x62\x01\x37\x87\x3c\x8b\xe5\x40\x1d\xb6\xe6\x7f\x4f\x03\xca\x40\xd5\x9b\x1b\xa9\x2d\x2c\x41\x92\x05\xbe\x91\x95\x21\x25\xa5\x07\x0e\x04\x57\x71\x92\x5d\xa7\xaf\x49\x14\x26\xbe\x5d\x9e\x52\x84\x23\x96\x17\x69\x7c\x9a\xcc\xd3\xa8\xdf\x3c\x10\x0a\x91\xcb\x40\xbc\x3f\x67\xa3\xb4\x24\x89\x3f\x7c\x4a\xe7\x01\x3d\xa3\x67\xfb\x0e\x26\xc9\x81\xf5\xc9\x83\xb5\xdd\xdd\xaa\x11\x27\x94\x1d\xbe\x00\xd0\x09\xd0\x08\x73\x05\x4e\xb0\xd8\x63\x56\xb3\xd9\xd2\x81\xda\xe1\x73\x02\x27\x8e\xe5\x04\x4e\x06\x96\xc5\x1e\x4b\x10\x27\xe7\xc9\x5b\xcc\x75\x72\xb0\xd1\x1d\x98\x30\x9e\x26\xf3\xe4\x75\x12\x24\x5e\xd2\x24\x61\x32\xc3\x43\x07\xb7\xc9\x25\xd3\xf1\xbb\xeb\xe4\x51\x2c\xe7\x49\xbd\x5e\xaf\xd7\xa3\xec\x21\x90\x0f\xc7\xfb\x74\x36\xa8\x88\x92\x59\xc2\xa7\xca\xc7\xc4\xb7\x18\xbf\x73\xf9\x3c\xc2\xfb\x2e\xea\x33\x78\x5f\xe4\x01\x56\xef\xa0\x53\x32\xda\x70\x60\x02\xdc\x0b\x9d\xe3\x65\x9c\xbf\x71\xaa\x8e\x9f\x43\xde\x3b\x78\x8d\x3e\x1d\x88\x1b\xb3\x12\xb3\xab\x23\xbb\xf5\x24\xa6\x83\x92\xbf\xb9\x44\x7c\xd1\xf8\xe7\xa9\xf9\x2d\xc3\xa7\xd8\x8d\xcf\xd8\x3c\xfb\xe8\x40\x9e\x0d\x05\xa1\x81\x19\xf6\x97\x99\xf1\xef\x85\xfe\x98\x57\xc6\xf3\x60\x07\x33\x6e\xfc\x42\x54\xe6\xe7\xf2\xce\xf3\x70\x38\x9b\x6c\xd8\xf6\x19\xc4\x09\x49\x68\x12\x27\xe9\xae\x4d\x92\xb3\xe7\x36\x2a\x5e\x32\xdb\x04\x51\xc9\xbc\x8f\x92\xb5\xe4\x2d\xf4\x5c\x20\x34\x8e\x47\xce\x73\x8e\xe9\x14\xbc\x0e\x13\xff\xea\xfb\xf3\xb7\xff\x69\x26\x32\x6d\x15\x7f\xe4\x7b\x7e\x3f\x67\xef\xeb\x2a\xf8\xce\xa7\xc7\xa6\x21\x8a\x83\x0f\x94\x4d\xca\xe5\xa4\x41\x0f\x6b\x0e\x0d\x58\x6b\xc7\x49\xa1\xc0\xf9\xb8\xc7\xbb\x69\x88\xc4\xd6\x35\x54\x3a\x3b\x76\xa0\x67\x2d\xce\xf6\xfe\x56\xca\x3b\x42\xed\xce\x92\x73\x49\x5f\x18\x48\xb0\xf0\xb1\x71\x23\x9e\xd0\xba\x76\xb7\x4c\xad\xd8\xa3\x3f\x61\xe2\x05\x91\xf3\x25\x6d\xed\xb0\xbc\x9b\xa8\xf7\x3c\xf2\x7f\x1c\x3d\x5d\xd2\xa1\xff\xac\xdd\x74\x34\x3a\x9d\x11\x07\xb5\xe4\xb3\xe5\xc0\xb4\xe7\x73\x8f\x48\x44\xfe\x92\x73\x34\x24\x92\xcf\x16\xcc\x69\x9e\xaa\x5e\xb9\x61\x8e\xe9\x41\xc7\xa0\x38\x67\x5d\x1f\x17\xac\x46\xc3\xb0\xa0\x82\x96\x22\x9b\x7f\xad\x4b\x23\xb3\xf9\x56\xd4\x95\xcc\x80\x73\x5e\xfa\xab\x52\x19\xf9\x68\x7c\x7c\xe1\xf2\x3c\x32\x6c\x4c\x48\x5b\x2d\xef\x59\xee\x72\xb1\x05\x4a\xcf\x30\xf2\x33\x4e\x04\xcf\xbb\x7b\x49\xcf\x6c\x2c\x05\xe7\x28\x43\x37\xcd\xac\xa6\x74\x57\x1e\x78\x7c\x34\x4c\x31\xca\xf3\x6c\x0b\x16\x9e\x37\xab\xed\xd1\x4e\xfc\x0e\x07\x2f\x9b\x24\xfb\xc6\xec\xd0\x86\x70\x78\x66\x68\x6d\xf8\x92\x4f\x2d\x65\xe5\xc1\xf8\x89\x93\xe9\xa8\x3a\x88\xdf\x25\xc7\xfd\x55\xc9\xfb\x4c\xdc\x37\x16\x4f\x65\xe3\xa9\xb6\xe6\xb3\xda\xf3\xb0\xdf\x70\x2e\xda\xe1\xad\x6e\x0c\x46\x75\xd0\xca\x9f\x8d\xca\x38\xae\x8f\x83\xb2\xe7\x1d\xb6\x78\xf6\x3f\x66\x90\x4e\xd9\xae\x32\x42\x9b\x9f\x8c\x30\x32\x1c\xc2\xdc\xeb\xdb\xf5\xa2\xc2\x78\x9d\xb2\x5c\x61\xad\x92\x59\xb8\x60\x1d\x58\xe1\xce\xa1\x65\xf0\x75\x62\x20\xcf\xa5\xef\xd6\xbf\xa8\xdc\xb4\x96\x37\x57\xb5\xcc\x3e\xe6\x4a\x86\xb3\x25\xeb\x8a\x57\x88\xb1\x66\x5d\xa9\x0b\x67\xcb\xb6\x65\x56\x5d\xb8\x3f\xc4\x28\x6e\xf9\x06\xcf\x89\xf1\x7b\x4d\xbc\x57\x24\x9c\xd5\x6e\xca\xc3\xd4\x1c\x41\x88\xcd\x4b\x17\x00\x25\xb3\x35\x57\xb6\x24\xba\x12\xcc\x79\xfd\xc2\x60\x7e\x04\x77\xf2\xe9\xa1\xd4\x98\xd2\xa4\xc6\x0a\xc6\xc7\xf2\x1b\x41\x3f\x31\x42\xa8\x5f\x9e\x1e\x27\xa2\x68\x34\xc8\x0a\x83\xab\xf8\xfd\xfc\xb7\x3e\x57\x0a\x1a\x81\x11\x5f\x20\xb4\xef\x76\x13\x05\x4d\xd3\xbd\xe7\xed\xed\x0d\xfd\x21\xb2\xfc\xe1\xd0\xb9\x30\x0f\xc8\x9a\x17\x2c\x7f\xd9\x98\x82\x46\x82\x83\x83\x0c\xc2\xf2\x5b\x4c\x99\x74\x4c\xf8\x5a\x3f\xe3\x85\xe7\xf5\x2f\xdd\x33\x5e\x34\x8d\xf4\x57\x65\x51\x6f\x14\xa1\xb3\xc3\x18\x44\xd8\xa2\x38\x9e\x30\xc3\x2d\xef\xe3\x75\x3e\x2e\x3d\x8f\x8c\xa6\xd0\x70\xb2\xee\xf2\x92\xa8\xa6\xc1\x9b\xd1\xa7\xeb\x8c\xd7\x2e\xf8\x1d\x0c\x7c\x4d\x19\x34\xc0\xb9\xb2\xbb\x1d\x22\x7c\x6c\x9e\x94\xf5\x22\x39\x17\x4d\x63\xbb\x64\x9c\xec\x7a\xcc\x15\x0e\xc3\xfb\x35\xc0\xec\xd7\x00\x34\x60\x4c\xea\xd1\xf4\x36\x24\x3d\x3c\xbd\x64\x9a\xa4\x49\x3b\x4a\xa6\x53\xe7\x51\xb4\x35\xb1\x57\xb6\x4f\xb2\x43\xc1\x90\xd9\x7b\x77\x85\xbb\xb2\xa0\x9a\x66\xec\x99\x98\xa5\xac\x6e\x3b\xbb\xc2\x67\x5d\xf0\x4f\x12\x7f\xc6\xd7\x7d\x47\x5c\xb8\x77\x62\xc4\x4f\xf9\xab\x5b\xa1\xdf\x1b\xb2\xb0\xdf\x18\x06\x18\x4a\x9e\xdb\xe2\xcd\xb9\x88\x75\xda\x34\x93\xbb\x90\x77\x55\x3d\xb8\x22\x51\x28\x55\xd6\xd8\xef\x05\x0d\x76\xc2\xc6\x7e\x34\x6a\x1e\x6e\xa5\x6a\xdc\x87\x1e\x9a\xdc\x0c\xd8\xf4\xbd\x2c\x1f\xf0\x3c\x25\x65\xb4\x08\xa7\x35\x83\x9e\x1e\x42\x11\x4d\xc9\xe1\x82\xb6\x4c\x16\x72\x65\x74\xbe\xba\x54\xdb\xda\x84\xc1\x55\x52\xbd\xee\x2c\x71\x3a\x9b\xa4\xa5\xc7\x01\x2b\x72\x25\x3f\xb8\x14\x0a\xe1\x3b\x68\x5b\x8a\x80\x77\x5f\xe6\x2e\x3f\x5d\x10\x40\x4f\x83\xc7\xb9\xfb\x40\xe7\xbe\xd3\xd1\x96\xd2\xa3\xff\x06\x00\x00\xff\xff\x95\xbb\x19\x0f\x95\x14\x00\x00") - -func web_uiAssetsCodemirrorModeRubyRubyEa43ca3a3bdd63a52811e8464d66134bJsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsCodemirrorModeRubyRubyEa43ca3a3bdd63a52811e8464d66134bJs, - "web_ui/assets/codemirror/mode/ruby/ruby-ea43ca3a3bdd63a52811e8464d66134b.js", - ) -} - -func web_uiAssetsCodemirrorModeRubyRubyEa43ca3a3bdd63a52811e8464d66134bJs() (*asset, error) { - bytes, err := web_uiAssetsCodemirrorModeRubyRubyEa43ca3a3bdd63a52811e8464d66134bJsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/codemirror/mode/ruby/ruby-ea43ca3a3bdd63a52811e8464d66134b.js", size: 5269, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsCodemirrorModeXmlXml10ec8b8cc61ef0fbd25b27a599fdcd60Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x38\xdb\x6e\xdb\x38\xda\xf7\x79\x0a\x8b\xff\x0f\x0d\xd9\xd0\xb2\x3d\xb3\xbb\x17\x4a\x58\xa3\xc8\xb4\x8b\x02\xdb\x03\xd0\x0c\x16\x0b\xcb\x1d\xd0\x12\x6d\x73\x23\x93\x2e\x45\x25\x4e\x2d\xbd\xfb\x82\x1f\x75\xb2\x9d\x76\x6e\x44\x8a\xfc\xce\x67\x09\xaf\x4b\x95\x5a\xa9\x15\xb6\xe4\x88\xf4\xea\xbf\x22\xb5\x88\x31\xfb\xbc\x17\x7a\x3d\x12\x87\xbd\x36\xb6\x08\xc3\x8b\x9b\x9d\xce\xca\x5c\xcc\x2d\x36\xe2\x5b\x29\x8d\xc0\x28\x8a\x26\x51\x34\xc9\xe5\x6a\x92\xea\x4c\xec\xa4\x31\xda\x20\x42\x62\xd4\x72\xe8\x91\x33\xb1\x96\x4a\x84\xa1\x5f\x23\xbe\xcb\xe6\x7e\x8b\x17\x2f\x93\x59\x52\x4b\x62\x8b\xef\x74\x26\x3e\xc0\x09\xa9\x09\x3e\x15\xbd\x2c\xc4\xa8\xb0\x46\xa6\x16\x5d\x3d\x72\x33\x12\xec\xc8\x4b\xab\xbf\x88\x7c\x7d\x97\xeb\x42\x98\x22\x3e\x72\x23\x78\x1c\x4c\xe9\x8a\x17\x02\x56\xe3\x9e\xa9\xce\xfd\xb2\xdb\x71\x95\xb9\xad\xd8\xad\x04\x6c\xd6\x86\xef\x00\x72\x0b\x90\x72\xb7\x81\x45\xed\x4b\xeb\x36\x0f\xe2\x79\x23\x94\xdb\xe5\x52\x3d\xb8\x75\x27\x2c\x70\xd8\x73\xc3\x77\x6e\x53\xe8\xd2\xa4\x40\xc2\x1a\x9e\x02\xcc\x93\x67\xbb\x13\xaa\x94\x56\x38\xa8\x9a\xca\xdd\x3e\x97\xa9\xb4\xf9\x33\x08\x9b\xc5\xc7\x2c\xf3\x74\xdd\x53\xef\xed\xc6\xe8\x72\xdf\xec\xa5\x06\x9e\xf0\x6a\xfc\x13\xc4\xb1\x2b\x9d\x3d\xc3\x06\x70\xed\x5a\x6b\x7f\xbe\xf5\xfc\x81\x53\xaa\x95\x15\x07\xfb\x4f\xc3\x57\x2b\x30\x4a\xd6\x31\xcb\x2c\x40\x64\xf6\xec\x20\x97\xf1\x11\x04\xa9\x5b\xee\xc7\x5e\x8a\x81\x6c\x75\xff\x72\x3c\x39\xde\xc7\x47\x9e\x65\x46\x14\x85\xc3\xe0\xc6\xca\x34\x07\x9b\xf0\x42\x66\xde\x13\xb9\x4e\x1f\xbe\x95\xda\xc2\x5b\x26\x8d\x5f\x1e\x61\x01\xf7\xac\xa5\xc8\xb3\x42\x80\x42\x4e\x31\x61\xfc\xce\x80\x99\xb7\x33\x78\xfe\x0a\xcf\xdf\xe0\xf9\x37\x78\xfe\x1d\x9e\xff\x80\xa7\xe0\x99\xc7\xda\x76\xd6\xdc\x76\xae\x70\xab\xe2\xc0\xd0\xc7\x03\xdc\xef\x0d\x08\x54\x88\xb4\xd5\xd7\xf2\x95\x97\xbd\xcc\x41\x37\xb3\x8f\x8f\x03\x27\xd4\x6e\x39\x3d\xf0\x6e\x39\xf6\xde\x69\xfc\x52\x3b\x3f\x1d\x1b\x5f\x6d\xfd\x01\x5c\x75\xa0\xb5\x3b\x3f\x83\x70\x5a\xbc\x4c\xcc\xc4\x47\xef\xe3\x9a\x66\xfa\xa3\xb6\xef\x55\x26\x94\x8d\x8f\x5e\x87\x9a\xf2\x3c\xd7\x4f\x7f\x28\xb0\x32\x90\x84\x83\x0f\xb2\x28\xa4\x82\xb8\x4e\x79\x21\xde\xe9\x3c\x03\x68\xf5\x42\xfe\xbc\x14\xa7\x2f\x44\xd4\x19\xff\x0b\xce\xb3\x33\xce\xb3\x01\xe7\x59\x7d\x65\x23\x5f\x0c\x3e\xe8\x4c\x60\x74\xd8\xe5\x88\xf6\xa9\x6e\xa8\x26\x47\x97\xdf\x9c\x4a\x9a\x33\x13\x49\xe0\xf2\x87\x92\x96\x96\xcc\xb1\x66\x3a\xda\xda\x5d\xee\xb0\xe7\x22\x56\x57\x6b\x6d\xb0\x43\x48\x47\x52\x8d\x32\x52\x2e\xd2\x25\xcb\x16\xe9\xf2\xf4\x42\xfb\x0b\x0d\x17\x0d\xb3\x51\x81\x2d\x15\xe4\xd8\xbd\x2b\xac\xc8\xd1\x08\x5b\x1a\x35\x12\x91\xd5\x0f\x42\xc9\xef\x82\x29\xaa\x00\xb0\x76\xd4\x0c\xb3\x91\x12\x07\x8b\xc9\x95\x87\x44\xb7\x88\x31\x33\xb7\x91\xe0\x16\xa3\x00\x91\x76\xbb\x80\xed\x8e\xdb\x74\x8b\xd1\xdd\xef\x6f\xee\xdf\xb8\x13\x85\x77\x18\x71\xab\x77\x88\xa2\xe5\xf2\xb5\xab\xa0\xaa\xcc\xf3\xb8\x83\x1c\x8f\x5b\x28\x57\xb1\x84\xb2\x88\xa2\xf1\x38\x39\xfc\x26\x1c\x6c\x07\xf6\xfb\xa7\xbb\xfb\xff\x7c\x7e\x8b\x68\x30\xa5\xc1\x94\xcc\x31\x70\xfd\xf7\x56\xe6\x02\x4f\x16\xc9\x53\x12\xfd\x99\x8c\x97\x13\x42\x55\x67\xdc\x91\xc5\xa2\xd3\xaf\xb3\xb8\xa2\x86\x1c\x5b\x5b\xe9\x1b\x27\x4c\xc0\xb0\x66\xaa\x51\x93\xdc\x90\xa3\x5c\x63\x50\x53\x93\x06\xdb\xf4\xd6\xb1\x58\x5c\xcf\x08\xed\x4f\x80\xe2\x95\x43\x79\x0d\x28\x0e\x7b\xc6\x98\x63\xdd\x63\x15\x57\x2b\x23\xf8\x43\xfd\x22\xbd\xf1\x25\xbd\xba\x81\x44\xae\x02\xa3\xba\xc6\x33\xd2\x5b\x0e\xcc\x3d\x47\x3f\x31\xc2\xc0\x9b\x3b\xec\x69\x50\x34\x7f\x8d\x08\xf5\x2f\x24\xc6\x9c\x35\x84\x26\x88\xcc\x51\xea\xc2\xff\x9e\x6f\x50\x8c\xf4\x5e\x28\xb7\x1b\x12\x59\x53\x64\xf9\x66\xb4\x72\x35\x5f\x58\x44\x62\x14\x42\x14\xe0\x86\xc6\xff\xf5\x61\x70\x68\xb7\xad\x58\x7c\xbc\x7e\x33\x7e\x97\x64\xcb\x09\x09\xc3\x06\xe8\x06\x91\xf8\x54\xf6\xbf\xb8\x7e\x4a\xa2\x64\x1c\x9f\xc1\x90\xb9\x8f\xac\x18\x09\x68\xab\xf1\xa9\x3d\xbe\x86\xb7\x10\x10\x65\x9e\x93\xba\x0b\x8a\xb5\x4f\x02\xe7\x7d\x45\x0d\xd5\x7d\x7c\x77\x2e\xac\x2a\x34\x71\x6b\xc7\xcb\x85\xed\x65\x9e\x14\x94\x33\x8f\x30\x47\x42\x65\xde\x7a\x85\xc8\xd7\x9d\x31\x4f\xad\x06\x0c\xd8\x30\xac\x38\x43\xe2\x5b\xc9\xf3\x02\x81\x94\x57\x7d\xdc\x1d\x4f\xf8\x88\xa8\xb0\xdc\x0a\x76\x70\x3e\xe1\x9b\x8f\x7c\x27\x18\xec\xbe\x58\x6e\x2c\x03\x5c\xa7\x90\x64\x3d\x1a\xa8\xd9\xe4\xec\x48\xce\xe5\x35\x1a\x39\x61\x1a\x4b\xa1\x7e\xdf\x44\xda\x64\x91\xfc\x92\xa0\xe5\x24\xb2\xa2\xb0\x58\x93\x39\x1e\x88\x80\x15\xd3\x14\x1b\xd6\x8f\x28\x50\x48\xb4\xc1\x37\x81\x8d\x84\xce\x31\xb9\x21\x72\x8d\x5b\x5b\x32\xa6\x4e\x54\x58\x9f\x84\x3f\x72\x83\x8d\xda\xa0\x9a\x44\xb2\x78\xaf\xde\x58\x6b\xe4\xaa\xb4\x82\xb9\x26\x43\x40\x5b\x77\x0f\xca\xdd\xe9\x9c\xd9\x28\xd5\x79\xb9\x53\x78\x18\xd8\x20\x02\x71\x2e\xf7\x15\x62\xf2\x75\xf1\x35\x29\x92\x72\x3a\xe5\x53\x76\xfb\x3a\x41\xc9\x2f\xcb\x57\x17\x47\xc9\xc4\x85\x04\x7a\xd2\x26\x43\x83\xa0\xd8\x79\x85\x7e\x58\x2b\x6e\x02\xd5\x6a\xe9\xd2\x5b\x35\x3c\x05\x79\x31\xc9\xdb\x52\xd2\x66\xbb\xad\x7b\x4e\x1b\xc7\x89\x2a\x72\xb4\x5b\x59\x44\x7b\x23\x1e\x41\x3d\x68\x39\x14\xce\x3a\x07\xfb\x57\xdf\x10\x98\x6d\x36\x22\xf3\xc7\x85\x33\xce\xa7\xf5\xbf\xa4\x72\x05\x1b\x97\xd1\xa0\x47\x45\x5b\x5e\x7c\x7a\x52\x9f\x8d\xde\x0b\x63\x9f\xb1\x20\x55\xd5\x31\x71\x41\xdd\x6c\x23\xa5\x3d\x02\x09\x43\x0c\x54\xdb\x03\x16\x4c\x07\xd6\xd9\xbb\x89\x74\x40\x00\x77\xfb\x5e\x76\x50\x65\x80\xb3\xed\x43\x04\x52\xed\xc6\x5b\x2e\xe8\x10\x9a\x1c\x70\x31\xaf\x06\x64\x1a\xed\x69\x50\x46\x67\x8d\xf8\x5c\x2b\x45\xaa\xea\x12\x6a\xa1\x96\x97\xea\xb7\xbc\x9c\x22\x03\x5f\x1c\x5a\x5f\x34\x61\xd9\x56\x3e\xc6\xec\x1c\xab\x3e\xbf\x44\x1f\x7f\x2b\x12\xf7\xb5\xd2\xc1\x3d\xc4\x87\x9e\xe0\xea\x8c\x20\x84\x59\x4f\xad\xc9\xdb\xb4\x34\x46\x28\x8b\x09\x95\xcc\xe5\x21\xa2\xcf\x24\xc6\x92\x35\x55\x8c\xae\x06\x66\x7c\x68\x29\xba\xd2\xd0\x92\xf3\xd5\xcb\x0c\x49\xb5\x89\xae\x7a\x2f\xa9\x73\x9b\x06\xcc\x84\x61\x19\x9d\xcf\x3c\x17\x76\x3d\xc7\x23\x61\xb8\xc7\x8a\xd0\x9f\xd1\x66\xcc\x54\x55\x30\x63\x8c\x95\x3e\x37\x1c\x6d\xa9\x36\x73\xdc\xea\xf8\xe4\x75\xec\xeb\x0e\x7d\xec\x12\xa4\xd7\xfd\xb1\x57\xfd\xe9\xcc\x98\x4d\x89\x0d\x9c\x39\x7b\x04\x47\x16\xa4\x3b\x0c\xac\xf6\x78\x8a\x3a\xa0\xef\x88\x4e\xa9\x1a\xc0\x3e\xbf\x68\xe1\x1e\x91\xb7\xd5\x09\xd1\xef\x50\xa0\x1b\x39\x18\xb3\x55\x75\x5a\xee\x07\xae\xe9\xfc\x4d\x35\xeb\x23\xa9\xf7\x52\x6b\x36\x75\x5a\xc5\xe9\x05\xc1\xaa\x2a\xa3\xb3\xc1\xf5\xdc\x61\x86\xcc\xb7\x50\xaa\x62\xec\xd7\xde\x53\x4c\x89\xa7\xd1\x06\xfb\x46\xc7\x54\x57\x43\x08\xa1\x87\x4b\xe3\x3f\xf7\x56\xf9\x7e\x6e\x7c\xdf\xa6\x5c\x2c\x7f\x8c\x71\x19\x0d\x27\xde\xaa\xea\xfd\x41\xe8\x73\x63\xe1\x81\x89\x3f\x9e\x11\x6b\xca\xbf\x23\x76\x1f\x77\x36\x77\xb1\x79\x32\x59\x83\x9b\x1b\xd8\xb3\x14\x79\x81\xc9\xfd\xcf\x98\xb4\xf0\xad\xce\x05\x34\x9e\x7b\x67\xa1\x60\x4a\x8f\x50\x4c\xbf\xb8\x16\x1b\x0f\x3f\xc2\x9b\xef\xee\xb6\xbe\xc7\x05\x85\x36\x1c\x1f\x68\x6b\xc7\xd8\x56\x95\xfb\x86\x02\x67\xc2\x78\x46\x5b\x7f\xfa\xb7\xc6\x0f\xf0\x52\x77\xee\x87\x99\xd3\x15\x52\x11\xb9\x6f\xf7\xa6\xe6\x5a\x42\x45\x4d\x81\x5b\x7c\xda\x68\x5d\xe1\xec\x3a\xbf\x2b\xe0\x85\xeb\x45\x80\xdf\x4a\xd2\x35\x08\x0e\x68\x84\x50\x98\x5d\xbe\xec\x79\x2a\x70\x37\xbd\xc0\xa4\xc0\xfb\x81\x41\xfd\x60\x60\xc0\xaa\xaa\x38\x09\xc3\x6e\x26\x0f\x98\x0a\x43\x2c\x7d\x90\xb6\xe3\x48\xb3\x62\x5e\x55\x8a\x3a\x6c\x2a\xc3\x10\xab\xd6\x4b\x8c\xc9\xb9\xba\x46\xed\xc8\x21\x09\xa1\xaa\x6e\x4c\xd7\x2b\x28\x28\x74\x59\x98\xc6\xa1\xd2\x82\xc1\x5c\xa6\xf5\xa2\x9d\x8e\x09\x83\x51\xac\xcd\x1d\xd6\x1b\x62\x7e\x3e\x3e\x5c\xcf\xe2\xfe\xf6\x1a\x86\x2c\x1d\x86\xba\x6f\x7e\x6d\x97\x8e\x3e\xf3\xa2\x38\x65\x1c\xb0\x75\x18\x0e\x5f\x8b\xee\x8b\x60\x6e\xba\xc1\x03\x27\xc5\x2b\x32\x21\x8b\xe9\x32\xca\x85\xda\xd8\x6d\x3c\x6d\xc8\x34\x05\xd4\xe3\x04\xb3\x00\xca\x63\x99\x5b\x99\x4b\xe5\x32\xdc\x4b\xf0\x99\x17\xf6\x9e\x6f\xe6\xbd\x42\xd7\x1d\x6e\x43\xf1\xfa\xd7\x78\x70\x9b\xbf\xc2\x2f\xd1\x79\xc7\x53\xab\x4d\x55\xcd\x60\x96\x75\xd9\x24\x37\x0a\xbe\xc4\xc2\x70\x72\x1b\x24\x0b\xd8\x27\x8b\x66\xc6\x53\x5d\x58\x4c\x21\x18\xb8\xf3\xf1\xe4\xeb\x2d\x4e\x26\x64\x8e\x17\xc9\xd3\x9f\x71\x12\x8d\x97\xaf\xc8\x24\x12\x07\x91\x62\x05\x64\x79\x18\xf2\xc5\x6c\x49\x60\x2c\xd2\xbe\xab\xeb\xbe\x0d\xf0\xc5\xaf\x4b\x72\xd4\x4c\xc3\x40\xd0\x0c\x44\x2e\x7e\xff\xba\xf1\x74\x54\x08\x01\xb4\xab\x96\x4a\x2d\xf2\x42\x8c\x1c\xef\x9e\xab\x1f\x77\x2f\xdb\x7f\x47\x64\xe9\x84\x0d\x64\x55\x05\xf2\x9c\x11\xc8\x78\xce\xc3\x53\x76\x81\xe1\x5e\xc3\x30\xd0\xc3\x19\xeb\x86\x74\x2a\x35\x36\xd3\x73\xdd\x44\xd5\x75\x1e\x0f\xf3\xb8\xaa\xa6\x35\x15\xb9\x48\xad\x91\xe9\x7b\xf8\xb7\x36\xb9\x4d\x26\x8b\xa4\x48\x9e\xe2\xe5\xf5\xeb\xff\x9f\xf8\xdf\x43\x77\x3e\xb5\x7c\xb1\x40\xc9\xe1\xb7\x34\x18\x8f\xd1\xc9\xdd\x5b\x95\xc5\xed\xc7\xb0\x2b\x25\x6b\xb9\x29\x0d\x24\x78\x5c\xf6\x7f\x05\x90\xdb\xa1\xd8\xff\x5a\xd8\x8a\x7c\x2f\xcc\xfd\xf3\x5e\xfc\x10\xa4\x78\x90\xfb\x2e\x99\x4e\x0a\x9e\x6d\x12\x9b\x7d\x84\x21\xcf\xbf\x3c\x93\xba\xae\xa1\x9e\x34\xff\x31\xde\x7f\x78\x8b\x91\x33\xfa\x04\xc8\x01\xd1\xf3\x6b\xbe\x77\xbe\x06\x51\xcf\xa0\x76\x72\x07\xbf\x42\x2e\xda\x98\x27\x09\x82\xc2\xbc\x7a\xc1\x0d\xae\xe8\x51\xb9\x52\xdb\x28\xdb\xe8\x17\x07\xd3\x9a\xd4\x84\x5c\xfd\x2f\x00\x00\xff\xff\xc4\xe8\x95\x55\xff\x15\x00\x00") - -func web_uiAssetsCodemirrorModeXmlXml10ec8b8cc61ef0fbd25b27a599fdcd60JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsCodemirrorModeXmlXml10ec8b8cc61ef0fbd25b27a599fdcd60Js, - "web_ui/assets/codemirror/mode/xml/xml-10ec8b8cc61ef0fbd25b27a599fdcd60.js", - ) -} - -func web_uiAssetsCodemirrorModeXmlXml10ec8b8cc61ef0fbd25b27a599fdcd60Js() (*asset, error) { - bytes, err := web_uiAssetsCodemirrorModeXmlXml10ec8b8cc61ef0fbd25b27a599fdcd60JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/codemirror/mode/xml/xml-10ec8b8cc61ef0fbd25b27a599fdcd60.js", size: 5631, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsCodemirrorModeYamlYaml3f129a000349e3075be0f65719884b61Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\xbd\xeb\x76\xdb\x36\xd7\x20\xfc\xf3\x5b\xcb\xb7\xf0\xfd\xa1\xf0\xb4\x34\x11\x42\x32\x29\x1f\x62\xd3\x86\xf5\xa6\x69\xd2\xc7\x6d\xe2\xb4\x4d\xd2\x3e\x8d\xc4\x64\x68\x0a\xb2\xd9\x50\xa0\x4a\x42\x89\x5d\x53\xef\xbf\x99\x0b\x98\x2b\x98\x6b\x99\x4b\x99\x2b\x99\x85\x23\x41\x1d\x6c\xa7\x4f\xdf\xb5\xa6\x07\x8b\x38\x6f\x60\x6f\x6c\xec\xbd\xb1\x01\xec\x3c\xea\x38\xbf\x57\xdd\x9b\x64\x9a\x3b\x7b\xbd\xa0\x17\x38\x57\x8c\xcd\xaa\x68\x67\xe7\x32\x63\x57\xf3\x8b\x5e\x5a\x4c\x77\x68\x31\x26\x69\xb2\xa3\xf3\xfd\x47\x9e\xa5\x84\x56\xc4\x79\x79\xf6\xc6\x79\xb4\xb3\xe5\x4d\xe6\x34\x65\x59\x41\x3d\x82\x18\xbc\x05\xc5\xc5\xef\x24\x65\x00\x63\x76\x33\x23\xc5\xc4\x21\xd7\xb3\xa2\x64\x95\xeb\x82\x39\x1d\x93\x49\x46\xc9\x18\x74\x74\xe2\xb4\x18\xcf\x73\x32\x60\x9e\xca\x05\x23\xa0\xab\x6b\x6a\x90\xa5\x5c\x57\xfe\xf6\x92\xe9\x78\x20\x3f\xbd\x21\x50\xe5\x40\x8c\x18\x8c\x98\xe7\x11\xbc\xae\x99\xcb\xbc\xb8\x48\xf2\x37\x57\x59\x35\x68\x3e\x23\x52\xd7\x15\xc9\x27\xb0\xf7\x7b\xc5\x7b\x86\x6f\x17\x70\x01\x3d\x76\x95\x55\xc8\xea\x14\xbc\x05\xf3\x8a\x38\x15\x2b\xb3\x94\x81\x2d\x9d\xe0\x30\x9e\x54\x12\x36\x2f\xa9\x43\xe7\x79\x8e\x31\x59\x7c\x4a\x4a\x87\xe2\xdb\xac\x3a\x2f\xd8\x55\x46\x2f\x23\x86\xb2\xea\x95\x18\x90\xc8\xae\x51\x16\x5b\x1d\x2a\xd7\xe5\x35\x75\x78\x55\x88\x15\x4f\xca\x32\xb9\x59\x53\xce\x11\x09\xbd\xac\x12\xbf\x1e\x81\x03\x12\x71\x68\x06\xc3\x38\x1a\x92\x78\x81\x4a\x32\x23\x89\xdd\x22\x47\x8c\x80\x0d\x65\x18\x80\xad\x49\x51\x7a\x14\x07\xc7\xf4\x84\x1d\x53\x1f\x87\x30\xf3\x31\xd9\x52\x95\x67\x0b\x94\x55\xe7\xe4\x32\x61\xd9\x27\xf2\x8e\x94\xc5\x3a\x08\x02\x8c\x31\x71\xdd\xf3\xf9\xf4\x82\x94\xbd\xf3\x67\xdf\x3d\x79\x73\xf6\xcb\xb3\x0f\x67\xe7\xcf\xcf\xce\xcf\xde\xfc\x86\x31\x0e\x77\xc8\x02\x91\x6b\x46\xe8\x78\x3d\x20\xa8\x44\xc5\x56\x36\xf1\x18\x54\xe0\xa0\x0c\x7b\x05\x96\xa3\xd5\xfb\x48\x6e\x2a\x8f\x41\xd8\xcb\x09\xbd\x64\x57\xc7\xf4\x24\x93\xa0\x92\x61\x89\x8b\x21\x8d\x63\xcc\x86\x65\xac\x81\x26\x8b\x45\x83\x99\xcc\x6a\x07\x03\x80\x32\x4c\x7a\x25\x49\xaa\x82\xd6\x35\xf0\xe6\xf4\x23\x2d\x3e\x53\x47\xc6\x40\x60\xaa\xe8\x4d\x93\xf2\xe3\xc0\x93\xbf\x3d\x9a\x4c\x89\xeb\x7a\xd4\xc7\xdb\x19\x75\xc0\xb6\x6f\xc5\xfb\xdb\xc0\xd9\x86\x88\xfa\x18\x78\xc0\xd7\x25\xf2\x8c\x12\x3f\x84\x3e\x88\x9a\xb8\xb4\xc8\xe7\x53\x2a\x62\x21\x40\x1d\xe6\xba\x2a\xa1\xa2\xd9\x6c\x46\x98\x6c\x01\x8c\xe8\x88\x02\xbf\x9d\x04\x51\xe6\x03\x07\xf8\x14\x46\xd9\xc2\xf4\xad\x94\x7d\x7b\x56\x96\x45\xd9\x4b\x93\x3c\x17\xf4\x0a\x11\xff\x2b\x60\xc3\xe0\xb7\x27\x2f\x5f\x3c\xbb\x4e\xc9\x4c\xcc\x22\x99\x22\x3b\x8b\x89\x0c\xf1\x66\x30\x53\xdf\xa4\xaa\x92\x4b\x82\x33\x49\xf8\x9d\x10\x22\x5d\xf9\x8c\xcd\x4b\xf2\x9a\x25\xe9\xc7\x37\x65\x92\x92\xc1\x86\x78\x59\x50\x54\x96\x16\xb4\x62\xe5\x3c\x65\x45\x09\x23\x11\x53\xf1\x6c\xd8\xa3\xe4\xb3\x23\x8a\x43\x19\x53\xd7\x00\x2c\xca\xde\xac\x2c\x58\xc1\x89\x5f\xa3\x3d\x2d\x49\xc2\x88\x27\x5b\x32\xa9\x10\x59\x01\xbb\x11\x5c\xb6\x52\x58\xf1\x9a\x95\x19\xbd\xc4\x6b\x28\xd6\x0c\x90\x0f\x22\x07\xf8\xaa\xbb\x04\x2e\xb6\x38\x9d\x14\xb8\x6c\xe8\x27\xe1\x63\x8c\x04\x89\x4a\x2a\x2a\x38\x15\x25\xfc\x4f\x8e\x5f\x26\xec\xaa\x37\xc9\x8b\xa2\xf4\xca\x9d\x3e\xec\x86\x66\xde\x74\xd9\x69\xee\xba\x1e\xc3\x59\x37\xf7\xbd\x02\x03\xa7\xd7\xeb\x39\x40\x93\x30\x44\xb4\x9b\x89\x1c\x14\x67\x7e\xde\xf5\x12\x99\xc3\xca\x70\x5b\xb1\x32\x2a\x7c\xd2\xab\x38\x8f\xf5\x18\xa2\xb0\x57\x92\x59\xce\x07\x79\x67\xc4\x76\x2e\x11\xf8\x3f\xff\xe3\x7f\x02\xe8\x27\x68\x56\x54\x51\xd6\x65\x7e\xa1\x0a\x2f\x1a\x12\xc9\x25\x89\x68\xd6\xd4\x93\xdc\xc0\x03\x0e\x40\xac\x4b\x74\x63\xbe\xe4\x56\x29\x6e\x4f\x4e\x3e\x21\x97\x90\xc1\xea\x9a\x73\x25\x88\x3a\xa4\x77\x31\x9f\x4c\x48\x09\x2d\xb6\xb7\xc5\x7a\xd3\xe4\xfa\x85\xa8\xb4\xae\x3d\x2b\x84\x1f\x1f\x41\x04\xa8\x60\x11\x0d\x2b\x66\xbd\x8c\x8e\x09\xe5\x94\xaf\x3f\x71\xb8\x36\x1f\x9f\x4f\xd5\x37\x64\x52\x94\x44\x64\xb6\xc2\x78\x77\x73\x89\x27\x13\x46\xca\xa6\x80\x08\xe2\x3e\x14\x4c\x8f\xf7\x38\x43\x25\xde\x19\x95\x83\x11\xad\x47\x65\x3d\x0a\x76\x2e\x51\x81\x87\x41\x8c\x52\x3c\x8c\x51\x85\xbb\xe1\x71\x86\xcb\x1e\xb9\x26\xa9\x67\x3a\x7c\x0c\xd3\xde\x6c\x5e\x5d\x79\x99\x80\xf9\x1a\xa2\xa2\x15\xf6\xb3\x61\x10\x1b\x3c\x92\xde\xac\xa8\x32\x3e\xa8\x27\x58\x65\x70\xdd\xea\x24\x70\x5d\xaf\xc2\x1a\x63\xdd\x3e\xdc\x5a\x89\x0b\xa1\x20\xc7\x39\x9a\xa1\x09\xa7\xb7\xb1\xa4\xb7\x69\x46\x3d\x22\x19\x8c\xdd\x2d\x94\xea\x26\x0d\xe9\x7b\x9a\x9a\xd0\x15\xb6\x70\xd1\x35\x83\xed\x8f\xfd\x5d\x39\x18\x73\x1c\x1e\xcf\x4f\xf0\xd2\x40\x77\xbc\xaa\x3b\x3f\x09\xe0\xf1\xdc\xf7\xe1\x0c\x27\x66\x0c\x50\x31\xac\xba\xf3\x18\xa5\xf2\xa7\xe9\x63\xd7\x2b\x86\x55\xdc\x95\xc9\x10\x5d\x41\x34\xc1\x6d\xaa\x53\x4d\x43\x3f\xf7\x54\x37\xba\x73\x3f\xb4\x81\x46\x63\xe8\x03\xa7\x76\x80\x3f\xeb\x55\xac\xf4\x01\xe7\x87\x13\x01\xe6\x32\x0c\x02\x02\xbb\x7d\xd1\xa2\x7f\x6f\x93\xf7\x37\xd8\xae\xa5\xdb\xd4\xc2\xc7\xcc\x9f\xf1\x06\xa1\x0f\xde\xf3\x9c\xed\xb1\x53\x24\xd7\xf1\x2a\x7f\x7e\x8a\x0d\x52\xd6\x0e\xa1\x2f\x87\xd0\xdf\x30\x84\xbe\x1e\xc2\x07\x74\xe8\x01\x63\xa8\x99\xd3\xc4\xe2\x23\xf4\xab\x1d\x04\x00\x5c\xa0\x0a\x0f\xc1\xc7\x8c\x8e\x01\x02\xd3\x79\xce\x32\x80\x40\x49\xaa\x22\xff\x44\x00\x02\x86\xcb\x02\x04\x32\x5a\xb1\x84\xa6\xe4\xd5\x04\x20\x30\x2b\xc9\x38\x4b\x13\x46\x44\xf6\x59\x49\x2a\x42\x99\xfd\x7d\x9e\x4c\x79\xda\x98\x4c\x92\x79\xce\x5e\xb3\x9b\x9c\x07\x2b\xfe\xfb\x24\xcf\x92\x8a\x70\x69\x6d\x8e\x87\xa0\x4a\x93\x3c\x29\x79\x1a\xf9\x63\x4e\x68\xca\xb3\x4d\x93\xd9\x2c\xa3\x97\x20\x16\xf3\x60\xb6\x8e\x3b\xb1\xba\xbe\x5d\xa0\xb6\x9c\xd0\x9b\x14\xe5\xb3\x24\xbd\xf2\x1a\xc1\x4d\x66\xef\x86\x18\xe3\x4a\xce\xc1\x57\x5c\xd8\x80\xec\xaa\x2c\x3e\x3b\x7c\x41\x2a\xbc\xed\xb7\x4a\x18\x28\xc4\x62\xc9\x97\x79\xc6\x17\xf7\xac\x72\xa6\x84\x39\x19\x95\xb2\xa7\xc0\x91\x53\x4c\x84\x18\xc0\xd3\xf9\x12\xeb\x88\x25\x67\x1b\x2e\xa0\x5a\x7d\x59\x72\xa9\x17\x58\x3e\xaa\x98\x89\x1f\xc9\x3c\xf5\x2a\x2c\x46\x17\x33\xfd\x55\xd7\x06\x5c\xcd\xb0\x3b\xc1\x62\x69\x2d\xc5\xac\xf9\xb6\x0a\x34\x4b\x1b\x51\x25\x1a\x34\x61\x66\x05\x6c\x08\x0c\xf2\x30\x6b\xbe\xdb\x20\x2a\x2c\x0a\x20\xd5\xf7\xda\x0c\x1c\xcd\x76\x26\x1e\xb6\x33\xda\xf8\xc7\xac\x15\xb4\xb3\x09\xca\xe3\xac\x8a\xff\xd6\x75\x27\x44\x4a\x6e\x68\xc8\xa5\xb5\x9c\x73\xb2\x60\xf8\x76\xb1\x65\xad\x41\x1d\x21\x8c\xda\x14\x41\xd6\x51\x04\x85\xb7\x64\x48\xe3\x35\x29\x04\xde\xb2\xa1\x9a\x47\x04\xc6\x98\x2e\xa0\xc4\xeb\xc2\x63\x2d\x50\xf4\x52\x28\xc8\x6a\xde\x90\x95\x46\xfa\x06\xf2\xe2\x49\x82\xb8\x74\x3e\x45\x64\xd5\x8c\xa4\xd9\x24\x23\x63\x67\x52\x94\xeb\xa9\xab\x11\x4b\x26\x52\x2c\x91\x43\x90\xe1\x61\x23\xfc\x0e\xd9\x86\x4e\xd1\x75\xf3\x82\x57\xc1\x04\xb5\x62\x4c\xf8\xaf\xeb\x4a\x52\x15\x61\xfe\xc1\x23\x24\x5e\x78\x8c\xf8\x72\xdd\x4c\x2e\x78\x54\x0c\x0c\x95\x01\xa2\x02\x93\x2c\x67\xa4\xf4\x96\x54\x41\x09\x9e\x18\xaa\xcc\x9a\x81\x7c\x6c\x4d\xa7\xc6\xcb\x22\x9a\x54\x19\x78\xcd\x63\x4b\xb2\x93\xb1\x6b\x08\x61\x18\x23\xca\x87\x22\x9b\x78\xc4\xd1\x34\x5f\x4c\x9c\x19\x34\x20\x6e\x91\xbc\x22\x4e\x36\xf1\x96\xd5\x26\x48\x31\xe5\x53\x2b\x4d\x98\xce\xc6\x59\x46\x87\xd4\x75\x67\x29\x6f\x2f\x9b\xce\xf2\x2c\xcd\x18\x74\xdd\x95\x34\x72\xad\xd2\x5a\xc8\x07\xaf\xd3\x2b\x32\x4d\x14\xe8\x4e\x52\x5e\xce\xa7\x84\x32\xa7\xba\x2a\xe6\xf9\xd8\xb9\x20\x4e\xe2\xbc\xb9\x99\x11\xe4\x0c\xc5\xaf\x13\x23\xa7\x28\x9d\xc4\xa9\x44\x39\x9b\xf3\x78\xb7\x8e\x6e\x3f\x72\x86\xbd\x5e\x2f\x46\x8e\x6e\x54\x45\x38\x0b\x08\xe0\x56\x03\xa7\x10\x44\x99\xe9\x5d\x03\x3f\x97\x4e\x74\x59\x21\x8b\x36\x43\x60\x75\x64\xc1\xd6\x13\x14\x1f\x9e\xe5\x81\x5e\xea\xb5\x21\xe9\x3c\xab\x18\x67\x9a\x86\x9c\x2b\xc7\x93\x1d\xcc\xe8\x65\x4e\x64\xa7\xa5\x0a\x0c\x9d\xb4\xa0\x2c\xc9\x68\xe5\x24\x0e\x2d\x68\xd7\x4a\xeb\x01\x28\xb0\xdb\xcb\x8b\x64\xfc\x83\xa0\x4e\xbd\x72\xf0\x79\x6f\xa2\xdb\x60\xbc\xb9\x22\x25\xe1\x53\x4c\xd6\x27\x0b\x08\x28\x38\x57\x67\x57\xc4\x8c\xa8\x81\x53\x8f\x7c\xcf\x39\xd3\x49\x92\x4d\x67\xf4\x92\xa7\x57\xf3\xf4\x4a\xf5\x23\xab\x1c\x5a\x30\xa7\x9a\xcf\x66\x45\xc9\xc8\xd8\xc0\x28\xe6\xca\x46\x48\x44\xea\x43\x81\x78\x29\x33\x27\x97\x95\x93\x26\xd4\x29\x68\x7e\xc3\x89\x86\x67\x24\x63\x27\xa9\x0c\x05\xf4\x80\x9e\x85\xff\xef\x60\x6c\x01\xa5\x20\x9b\x2d\xe9\x12\xd6\x9c\x86\x46\x71\x32\xc4\x89\x25\x23\xd5\xc1\xba\x1e\xc6\x50\x53\x27\xd7\x87\x0d\x81\xaa\x8c\x3a\xd8\xca\x48\x79\xc6\xb4\x98\xce\xb2\x9c\x8c\x35\x26\xf1\xc4\xcb\x10\xd0\x15\x03\x34\x8c\xed\x5c\xcf\xae\xed\x5c\xba\xd6\xe5\x5c\xbc\x87\x2f\x13\x4b\x24\x91\x3c\x48\x30\x65\x7c\x2b\x29\x2c\xba\x5d\x20\x2d\xcd\xf0\x6f\x25\xce\xf0\xcf\x49\x92\xe7\x17\x49\xfa\x51\x44\x73\xdc\x46\xba\x0c\x57\x3b\x74\x99\x61\x6c\xca\x0c\xe3\xa6\xcc\x30\x5e\x32\x70\xc0\x5b\x45\x6c\x03\x8f\xca\x8f\xa1\xe4\xdd\xb1\x66\x7b\x48\xc5\xf7\x74\x25\x3a\x01\x46\x54\xe7\x1d\x0a\xfe\x1f\x63\x6a\x32\xe9\x18\xb2\xe0\xb2\x37\xc1\x01\x62\x58\xb3\xae\x4a\x1b\x63\xc8\x09\x3b\x26\x3e\x0e\xa1\x49\x19\x92\x66\x05\xca\x0c\x66\xe9\xc2\x5b\x45\xc5\x9a\x71\x87\x28\x93\x6a\xf8\x15\x1e\xa3\x29\xe6\x74\x79\xe5\xdd\x1a\x0e\x37\xe4\x11\x33\x0f\xb0\xe4\x32\xba\x49\xa6\x79\xaf\x28\x2f\x51\x3f\x08\xfa\x51\xc5\x4a\x80\x6e\x79\x57\x22\x23\x4d\x1a\x59\x69\x9d\xdd\x4a\x4b\x0b\x03\x12\x01\xb0\x58\x40\xb4\xb9\x6a\xf2\x47\x53\xb5\x91\x4f\x1f\x5a\x39\xc7\xd7\x1d\x95\x4f\x93\x99\xa9\x5c\x4b\xbc\x0f\xae\xfb\x76\xb1\x58\xc0\x78\x21\x27\xd8\x25\xde\xd8\x08\x2f\xb2\x32\x3a\x4a\xf0\x8c\x96\x58\x84\x34\x60\x62\x02\xb5\x10\xba\x25\x97\x57\x6d\x2e\xd0\x18\xe5\x6b\x39\x73\x5d\xf0\x9f\x80\xe7\xae\xeb\x3d\x19\xf6\x80\x68\x4c\xc6\x81\x73\xfb\xfb\xed\x8b\x17\xe2\x1b\x2e\xd6\x75\xb0\xd5\xbf\x05\x32\x22\xe9\xa6\x21\xc0\xc2\x34\x6a\x64\xce\xe8\x36\x4d\x68\x41\xb3\x34\xc9\x57\xeb\x04\xff\x09\x16\x28\x2f\x3e\x93\x32\x4d\x2a\xb2\x26\x5d\xc0\xbc\x40\xf3\xd9\x6c\x63\x16\x01\xfe\x02\xa5\xc9\x94\xe4\x9b\xb2\xc8\x5a\xc8\x74\xc6\x6e\xd6\x24\x83\xc5\x02\xd9\xb2\x6f\x04\x0c\x48\x40\xe1\xf0\x66\x33\x0e\x2f\x8a\xe2\x2f\xe3\x30\xdc\x80\x43\x83\x33\x56\xce\x89\xc6\xd3\x1b\xfb\xfb\xe7\xb7\xcf\x24\xce\xea\x7a\x5f\x67\x9e\x24\x79\x65\x72\x3c\x6f\x05\x9e\xbc\x78\xfd\xec\x0e\x1c\x37\xf6\xee\x7b\x1b\xbc\x9b\x02\xc0\x50\xae\x2f\xce\x37\x45\x91\x93\x84\xc6\xbc\x8c\x5a\x5f\x56\x8d\x80\xd2\x3a\xca\x61\xb2\xc8\x65\x0d\x39\x58\x7a\xd4\x40\x42\x18\xa9\xce\xae\x25\x8d\x56\x76\x01\x78\xa4\x46\x60\x2d\x99\xb4\xb3\xcb\xda\xe5\xe8\xdd\x4d\x17\x86\xd7\x5f\x58\x55\xec\x1d\x9e\x70\x45\x87\x9c\xe0\xfd\xfd\x46\x84\x7e\xb2\x3e\xc7\x63\x61\xdf\xfb\xb4\x99\xb6\x32\xae\xb6\xff\x5b\xa4\x85\xa8\xb0\xad\x2b\x83\x53\x89\x03\x54\xe0\x4e\xc8\x25\xa1\x4e\xd6\x64\xcd\x26\x1e\xe8\x72\x59\xcd\x63\x98\x0c\xcb\x18\xba\x2e\xf0\x79\x98\xd5\xb5\x88\xf2\xfd\x32\x86\x08\x04\x1c\x9d\x52\x6b\x2f\x7d\xa1\x34\x34\xdc\x88\xd7\x71\xc1\xd3\x9b\x02\xf0\x96\xaf\x50\xa5\xef\x1f\x97\x27\xd9\x71\xe9\xfb\x90\x67\xfa\x60\x37\x24\xea\x02\x81\x68\xcb\x75\x41\x28\x3e\x1a\xc0\x0a\xdc\x09\x16\x6a\xe0\x0a\xd7\x95\x65\xd9\x82\x97\xb9\x56\xb0\x3c\xac\x89\x8e\xc7\xc7\xdd\xa3\x98\xf4\xd2\xab\xa4\x7c\x5a\x8c\xc9\x13\xe6\x95\x10\xba\x2e\xe5\x98\xa8\xeb\x83\xfd\x13\x4c\x45\xe8\x71\x50\xd7\x47\x8f\x75\x28\x0c\xfa\xf0\x41\x00\x15\x5f\x06\xd0\x85\xb7\x0c\xca\xbd\xad\x2c\x64\x55\xb8\x35\x44\xbc\xb9\xfb\xda\x7a\xf2\xb0\xb6\x3a\x5e\xa7\xa8\x6b\xdd\xc2\x26\x4e\xa1\xe8\x0a\x13\x94\x61\x41\x3a\xdd\xb0\x83\x31\x35\xea\x23\xf8\x00\xa0\x52\x5b\x8c\x45\xeb\xc3\xce\x25\x02\x00\x42\x64\xc8\x8c\x0e\x83\x36\x99\x81\x2e\x50\x8c\x2c\xc3\xdd\x10\x22\x86\x45\x15\xd2\xce\x1e\x42\xc8\xf3\x2b\x0a\xa4\xda\xba\x2d\xa9\xce\xa2\x4a\x49\x81\x74\x18\xc6\x3a\x4b\xf6\x68\x96\x94\x15\x39\xa3\xcc\xd3\x95\xf5\x21\xea\x0b\x65\x40\xd2\xd0\xfd\xb9\xc3\x03\x99\xbd\x78\x58\xf6\x43\xb8\x58\x93\x8e\xc2\x00\x3e\x90\x79\xca\x3d\xbb\x87\xf1\x4e\xd7\x25\x5f\x87\x18\x07\xae\xdb\xa1\xbd\xf6\xae\xe0\x32\x67\xbd\xc8\x68\x52\xae\xdd\xad\x24\xa7\x38\x18\x80\xe0\x02\xf8\x4d\x03\x5e\x1f\x46\xa0\xbb\x12\x67\x10\xb2\x40\x45\xca\xec\x45\x7d\xa5\xba\xa2\x55\xf4\x50\x54\xb7\x1c\x67\x55\x37\x26\x69\x36\xdd\x50\x61\x53\x44\x8c\xe2\x15\xb9\x4e\xee\xca\x2e\xdb\xbf\x6e\xb5\x15\x1e\xc0\x1e\x2b\xde\xf2\xe5\xe2\x69\x52\x11\x4f\x80\x73\x4f\x96\x06\xba\xe5\x95\x40\xb5\x0e\x90\x6d\x7a\x32\x43\x3c\xec\x23\x70\x91\x51\x10\xab\x31\x1a\x1e\x22\x50\xa4\x0c\xc4\xa6\x93\xc3\x30\x40\xbc\x12\x10\xb7\x3a\x33\x0c\x0f\x10\xb8\x22\xd7\x40\x08\xa7\x1f\xc5\xca\xf0\x33\xb9\x7c\x76\x3d\xf3\xc0\x7b\x6f\x10\x0d\xbb\x7e\x3c\xe0\xbf\x41\xf7\x28\xe6\x7f\x3e\xc4\x8f\xa0\x37\x88\x46\xa3\x9e\x0e\x89\x64\xf2\x2c\x16\x59\x45\x3e\x1f\x0e\x6a\x93\xc1\x5f\x9b\x2c\x42\xa3\x51\xcf\x1b\x44\x19\x9d\xd4\x67\xfc\xff\xf3\xe7\xb0\x96\x51\x34\xa1\xf5\x79\x72\x5e\x9f\x3f\x39\x87\xf0\x2b\x20\x45\xa2\xcf\x78\xe7\xbd\x55\x09\xd9\x11\xb1\x4f\x37\x2f\x66\x93\xbc\x48\x1e\xb6\x9c\xad\xd8\x0d\x3b\x5e\xe7\x63\x8f\x91\x8a\x79\x5c\xe0\x91\x0c\x8a\x0c\x89\xd9\x92\x89\xef\x63\x56\x46\xdd\xc1\x92\xcd\x70\xf6\xb8\xc2\x9d\x7a\xac\x78\xc1\x17\x78\x89\x7b\xce\x70\x06\xdd\x30\x0a\x11\xf0\xbb\xa0\x31\x8e\x71\x3e\x74\xca\xe7\x9b\xb0\xde\x18\xf6\x84\x78\x96\x89\xe0\x44\x03\xbe\x32\xd2\x81\xda\x79\xff\xf1\xd5\xeb\xb3\xd6\xce\x7b\xb4\x69\x4b\x3e\x02\x3d\x9a\x50\x59\xc5\x79\x72\x1e\x51\xc9\x3d\x9e\xf3\x71\xf3\xd8\x7f\x19\xff\xf0\xc8\xd7\x61\x07\x07\x75\xbd\x86\x7f\xb4\x18\xc8\xaa\x8f\x40\xc6\xd9\x62\x56\x9d\x27\xe7\x3c\x6f\xf5\x39\x63\xe9\x95\xc7\xe0\xad\x10\x91\x1a\x61\x29\x52\xf0\x89\xee\x6d\x89\x28\x23\xb6\x35\x89\xe7\x4f\xce\x55\xa2\x11\xd2\xac\xc4\xe4\x1c\x2c\xb4\x95\x70\xd3\xc8\x0a\xf9\xe7\x7e\x28\x38\x9e\x36\x42\x71\x76\xfe\x7c\x33\x14\x67\x74\xb2\x02\xc5\x3a\xcf\x8a\x07\x40\xd1\xbd\x13\x8c\xee\x9d\x70\x74\xdb\x80\xac\xc3\x9b\xce\x19\xf4\x02\xb3\xc3\xc4\x05\x41\x9b\x8f\xa2\xcf\x72\x4e\x65\x70\x90\x99\xc9\x00\x08\x40\xa0\x47\x00\x8c\xb2\xbb\xa4\x5f\x74\x8d\xa7\xda\x10\x7c\x6b\x2c\x9f\xc3\x4b\x74\x83\x3e\xa1\xa7\xf1\x02\xa2\x33\x7c\x8d\x5e\x2f\x31\x30\xc3\xb6\xac\x3f\xb0\xeb\x6d\x0a\x7c\x05\x20\x7a\xf5\xa5\x55\x0c\x96\x42\x9c\xdf\xbd\x61\x71\x3d\x74\x46\x23\x16\xfb\xb0\x95\x18\xd9\xcd\xb5\x02\x92\xa9\xca\x98\x47\x50\x72\x55\x51\xc3\x23\xef\x5d\xed\x71\xc6\x07\x97\x9b\x69\x95\x87\x03\x08\x07\x9a\x57\xfe\xbe\x99\x2b\xb2\x6c\x4a\x2a\x96\x4c\x67\x7f\x8d\x33\x7a\xea\xf3\xb5\xda\x0d\x87\x72\xfb\xa3\x83\xf1\x2b\x1d\x73\x1f\x6f\x94\x7e\x3e\x28\x41\x39\x4a\x51\x85\x03\x34\xc7\xc2\x6b\xa0\x51\x2a\x3c\xd6\xd4\x0f\x05\xe3\x6b\x2a\x47\x2a\x0f\xb3\x2c\x96\xc2\x37\xc4\x03\xdf\x26\x8c\x28\xfb\x2c\x71\x08\x8f\x93\x36\x58\x8a\x7d\x36\x0c\x63\x94\xf1\xdf\x7e\xdc\x0d\x51\xc9\xbf\x76\x63\xd4\x61\xc3\x3d\x23\x5c\xf1\x9a\x78\x15\x1e\xff\xd3\x7b\xfb\xe6\xa9\x27\xfd\x3d\x44\x1d\x05\x2f\xb1\x17\xa3\x84\xff\xee\xc7\x28\xe7\xbf\x07\x31\x62\xc3\xc7\xb1\x14\xc1\x2b\xcc\xbf\x15\x83\x0e\xd0\x2e\x3c\xd6\xc6\xb1\x93\xdd\x63\x58\xf9\x18\x04\x60\xab\xc2\x7e\xa5\x85\x35\x36\x3c\x8a\x5d\xd7\x9b\xe3\x03\xb2\xf7\xc8\x3b\x08\x1e\x71\x28\x83\xd8\x77\x7c\x8f\x0d\xc3\x30\xae\xeb\x40\x0a\xb0\xbc\xb7\x3a\x6f\x77\x0e\x21\x4a\xf1\x06\x58\xd5\xb0\x56\x10\xa2\xb9\xeb\xa6\xbd\x8a\xb0\x37\xd9\x94\x78\x69\xef\x52\x7d\xc1\xee\x1c\xa2\x74\x81\x9a\xbd\xc0\x88\x57\xb1\x96\xeb\xb6\xc4\xa1\xb3\xd7\xaf\xf4\xae\xf2\x42\x19\x29\xde\x6c\xa6\xb2\x29\x29\x2f\xc9\x17\x50\x18\x38\x39\x51\x9a\xbf\x31\xe9\x2c\x20\x7a\x86\xc1\x93\x6f\x9e\x7e\xfb\xec\xf9\x77\xff\x3c\xfb\xfe\x87\x17\x2f\xcf\x5f\xfd\xf8\xd3\xcf\xaf\xdf\xbc\xfd\xe5\xd7\x7f\xfd\xf6\x2e\xb9\x48\xc7\x64\x72\x79\x95\xfd\xfe\x31\x9f\xd2\x62\xf6\x47\x59\xb1\xf9\xa7\xcf\xd7\x37\x7f\x06\x61\x7f\x77\x6f\xff\xe0\xf1\xe1\x91\xbf\x83\x47\x74\x54\x02\x01\xee\xcb\x3b\x6c\x2a\x42\x8c\xfa\x3b\x54\xdf\x00\x95\x8d\xfa\x5b\xe0\x67\x96\x63\x5d\x79\x4c\xa5\xc6\xd4\xf1\x3c\x86\x0b\xb3\xc2\x4b\x55\xe9\x09\xf3\x28\x84\xf0\xf4\x60\x4f\xea\x50\xec\x24\xb0\xf4\x65\x1f\x1f\x18\x19\xff\xeb\x43\x8c\x83\x7b\xe7\x98\x2d\x6f\x0c\x47\xe5\x88\xe2\x58\x4a\x1d\xa8\xc4\x99\x05\x20\x4a\x70\x80\x72\x3c\x8c\x05\xa4\x0c\x07\xc7\xec\xa4\x3c\x66\xbe\x0f\xd9\xd7\x7b\x42\xce\xe7\x2a\x52\x2e\x2d\xc5\xc9\xe9\x69\x78\xe0\xf6\xf7\xf7\x21\x6a\x62\x0e\x5b\x11\xfd\xfd\x7d\x37\x81\x10\x25\x38\x39\x39\x39\xa8\x9b\x6e\x66\xba\x9b\x0c\x1a\x6b\x70\xc0\x27\x3b\xc5\xe5\xd7\x7b\x8f\x0e\xe0\xe0\xcb\x5b\x89\xc2\x43\x21\xfa\xd8\x25\x83\xe5\x92\x7d\x11\x01\xa3\xb0\xcf\xf3\xba\x6e\x93\xb2\x27\xb3\x72\xb2\x78\x9b\x51\x76\x28\x77\xef\xf2\x87\x8a\x3d\x4d\x99\x2f\x37\x3b\xad\xc7\x19\x00\xca\x64\x62\x48\x28\x51\x24\x24\x11\x53\x28\xc4\xec\x1a\xc4\x64\x3e\x4e\x86\xe5\xe9\x69\x78\xe8\x1e\xec\xc6\xc8\x04\xfb\xad\xe0\x41\x13\x3a\xd8\x75\xcb\x98\x13\x81\x57\x9e\x9c\x1c\x42\x9f\x0c\x59\xbc\x84\x8e\xe2\xeb\x5d\x38\xf8\xab\x35\x47\x7d\x89\x11\x93\x3f\x68\xe5\xdf\xb3\x42\x27\x27\x56\x5d\x07\x7b\x31\x8c\x42\x89\x21\x53\xb8\xdf\xca\xbd\xd7\xca\xdd\x14\x43\x19\x67\x16\x2f\x56\x11\x70\x95\x54\xaf\x3e\xd3\x1f\xcb\x62\x46\x4a\x76\x83\xce\x37\xa3\x48\xcc\xe0\xe7\x9b\x19\x44\x61\x9b\xe7\x1b\xdb\xff\x97\x99\xce\x9b\xa5\x0f\x0f\xf9\x0a\x42\x34\x66\x11\xc5\xb9\xde\x48\x61\x27\xf4\x98\xf9\x38\x14\x15\x65\x38\x1f\xb2\x58\x98\xd0\x90\x21\x3b\xd9\x89\x18\x74\x30\x3e\x97\xa4\x95\xc1\xb6\x79\xa6\x74\x32\xea\x64\x9c\xd5\xbc\x50\x19\xf8\x32\xc6\x2b\x2c\x96\xec\x30\x9c\x1b\x15\x2d\xbb\x9c\x30\xae\x24\x66\xd6\x96\x56\xd5\x89\x9c\x38\xa5\x36\x37\x74\x36\x72\xa1\x4d\xbb\x1f\x1f\xee\xc1\xc0\xb7\x9b\x31\x30\x4b\xb2\xb2\xfa\x3b\x51\x20\x47\xbf\x10\x2d\xca\x89\x9f\x18\x6f\x3d\x89\x93\x64\x03\x4e\x12\x8e\x93\x75\xe8\xf8\xb0\x8a\x8e\x6c\xe2\xf1\x01\xf5\xca\x96\x17\x73\x66\xbc\x98\x2d\x7c\x0c\x59\x8c\x87\xe5\x30\x88\x51\x26\x7e\xe2\xf8\xde\x71\x5e\xed\xe8\x30\xfe\x5b\x3a\xaa\x3a\xb9\x0c\x35\x5a\x03\xa4\x66\x1e\x05\x47\xf0\xdb\xfb\x26\xa1\x80\xee\x8f\xcd\x68\xae\x08\x5b\xdd\x06\xfb\x52\x1c\xeb\x99\xc5\xa7\x01\xe5\xd3\xe0\xad\x44\x0c\x45\x0c\x1a\x7f\x7a\x3a\x64\x71\x33\xfa\x5f\x4e\xd1\x62\xcf\x0d\xfd\x86\xcf\xd6\xa8\x25\xbf\xa3\x37\x31\x6a\x36\x2b\x5f\xa2\xe7\xe8\x5b\xf4\x07\xd7\x52\x7e\xbc\x97\x4b\xfd\x8c\x77\x86\xa3\xeb\x20\xe8\x8e\xae\x83\xc3\xd1\x75\xf0\xcd\xe8\x3a\x78\x3a\xba\x0e\x9e\x75\x47\xd7\xe1\xf3\xd1\xf5\xe3\xe7\xdd\xd1\xf5\xe1\xde\xe8\xfa\xf0\xa0\x3b\xba\x3e\x7a\x3e\x9a\x3f\x7f\xfe\xfc\x99\xf8\xfb\x3c\xae\x87\xa3\xf9\xb7\x87\xbc\xf0\xfc\xdb\x6f\x9e\x3f\x8f\xbd\x41\x87\xc7\x3c\x95\x31\x3c\x07\xac\xb9\x66\xf1\xbe\x9d\xad\x7e\x0f\x97\xb2\xed\xa0\xaf\x04\x1c\x87\xfb\xa3\x79\x3f\xe8\x1f\x8a\xbf\x47\xf1\x0e\xfa\x06\xef\x0c\xd1\x68\x38\x8a\x47\xb7\xa3\x45\xbc\x83\x7e\xc0\x3b\xef\xbd\x41\xd4\xa9\x3b\x9d\xba\x33\x4c\xba\x7f\x8e\xba\xb1\xdf\x81\x5f\xed\x64\xe8\x57\x9d\x34\x7c\xdf\x94\xe0\x8a\xcb\xd7\x5c\x65\x49\xba\x93\xf8\xb6\xbf\xa8\xe5\xf7\x9f\xa3\xee\x3f\x8e\x47\x3b\xa3\x41\xf4\x1f\x2e\x1e\xf9\xa3\xaf\xd0\x87\x51\xaf\xf3\x9f\xa3\x47\xdb\x23\x6f\x04\x79\xe9\x18\x3e\xfa\x6a\x27\x6b\x76\x41\xfe\x69\xa1\xe5\xfe\xa5\xd7\x14\xfb\xce\x2a\x16\x06\x52\xe6\x0c\x77\x85\xc4\x69\xf2\xfc\x62\xe5\x39\x92\x59\x76\xfb\xed\x2c\xef\x36\x65\xa9\xeb\x4d\xb5\xfe\x69\x6f\xca\xec\xc9\x3c\x47\xa1\xfa\xdd\x55\x65\xfa\xe6\x63\xbf\x5d\xfa\x7b\x23\x29\x6c\xad\xd9\xd8\x19\x90\xee\xde\x61\x74\xf4\xf8\x84\xeb\x4e\xbb\xfd\x9a\x40\xd7\x65\x62\x2f\x61\xc0\xba\x47\x8f\xfd\x30\x88\xba\x61\x53\xd9\x4f\xad\xfd\x21\xde\xd0\x00\x8c\x02\x10\x1d\x3d\x96\xdf\xff\x1f\x88\x8e\x74\xf4\x05\x88\xc2\xf0\x40\x81\xa9\xe2\x18\x8f\x0b\x54\x80\xf2\x80\xce\xfd\x09\x44\x61\xd0\x57\x81\x09\x4f\xd9\x53\x81\x92\xa7\x84\x32\xf0\xff\x83\x68\x57\x65\x72\x40\xb4\x2b\xb3\x6c\x83\xed\x68\x4f\x01\xb0\x03\xa2\x23\x5d\xcb\x08\x44\x8f\x55\xf5\xff\xfb\xbf\x83\xe8\x68\x5f\x7d\xff\x2f\x10\x3d\x3e\x50\x79\x04\x8d\x82\xe8\x30\xb0\xc2\x47\x20\x02\xa0\xe9\xf3\xbf\x6c\x85\xe6\x04\x1f\xec\xef\xef\xee\x0f\x14\x95\x4c\xca\x62\xfa\x54\xed\x57\x78\x04\x46\xeb\xa2\xf7\xf7\xfb\x47\x07\xbe\x47\xba\xbc\xe4\x01\x17\x6c\x20\xda\x3f\xd8\xed\x07\x26\xce\x0d\x83\xfe\x2e\x84\x0b\xed\x56\x4e\x88\xc5\x73\xfb\xfb\x07\x10\xb1\x95\x18\x4a\xb8\x6e\x40\x4e\xfa\xfb\x07\xc7\x94\xf8\x3e\x24\x64\x48\x49\x8c\x7f\xf2\x28\x81\x83\x30\x0a\x10\xb3\x22\x2c\x7f\x0f\x22\xad\x62\xca\xcb\x73\x36\x67\xda\xd1\x74\x92\xe5\x84\x4a\x47\x4c\xfd\x69\x3b\x57\x4a\x5f\x22\xcc\xd4\x47\x5d\xff\x26\xe3\x0b\xfa\x6b\x52\xd2\x8c\x5e\x62\xd6\x7c\xdb\x05\x73\x72\x99\xa4\x37\x98\xa9\x8f\xc6\x2f\xf3\xf7\xaa\xa0\x98\x89\x9f\x26\x52\xf8\x24\x51\x52\x0a\x7f\x68\xf9\x69\x57\xa6\x59\xe5\x9b\x9b\x19\xa9\xb0\x05\xd8\xaa\x6f\x88\x74\xa4\x55\x8e\x36\xeb\x72\x2a\x27\x1c\x0d\xa5\x38\x67\x60\xe4\x67\xe9\xe2\xaa\x7c\xaa\x71\xa0\x81\xa3\xc4\xfe\x7e\xcd\x92\x92\xd9\x11\x67\xf2\x10\x42\xa0\x47\xb4\xac\xd8\x9b\xe4\xe2\x8c\xbe\xe0\x05\xbb\xaa\x8b\xe3\x22\x95\x9e\x2e\x78\x18\x5b\xa7\x71\x88\x7d\xd4\xe8\x96\x0f\x7f\x44\x0c\x26\x90\xf4\xfa\x8e\x88\xc4\x99\xb1\x16\x74\x43\x88\x34\x94\x91\xe5\xc7\xce\x81\x89\xa4\x6f\x37\x92\x07\x87\xac\xd4\x2e\x69\xa0\x6f\x9c\x5f\xf5\x61\x21\x9c\x7a\x54\xea\x36\x85\x70\xf0\x6c\x40\x2c\x0c\xed\x94\xc5\x67\x0d\x70\x93\x9c\xa8\x64\xd2\xd0\x81\xeb\x5a\x01\xb5\x96\x72\x5c\xaa\xb2\x50\xec\x2b\xe7\x04\xdf\xfe\xf6\xe4\xe5\x8b\x96\xdd\xd6\x38\xa7\x8a\xb3\x5d\x7a\xf9\xec\x7d\x22\x65\x95\x15\xd4\x75\x05\x2c\x60\x3c\xe7\xc8\x4e\xb4\x4f\xf5\xd7\xc2\xdb\x6c\x9c\x95\x24\x65\xd9\x27\x02\x20\x92\x3b\x7e\x12\xa7\xba\x50\x3b\x93\x93\xa4\x29\x99\xb1\xca\x21\xd7\x49\xca\xf2\x1b\xa7\xa0\xc4\x78\x58\x02\x63\x36\xf2\x32\xbe\x28\xa9\x7d\x08\x6d\x6f\xf3\xe1\x57\x3b\xd2\xc0\x24\x76\x09\xa1\x6e\x21\xcb\xf3\xee\xa4\x28\xa7\xc4\xf2\xd5\x2c\x26\xc2\x4b\x6f\x05\xc2\x12\x9b\xad\xb7\x6c\x18\xc6\x88\xb3\x87\xc2\x8e\xeb\xcb\x38\xde\x93\x52\x37\x30\xa7\x12\xea\xe4\x22\x57\x55\xaa\x81\xd1\xcd\x68\x1a\x03\x10\x99\x41\x13\x5b\x99\x88\xf4\xd2\x2b\x92\x7e\xe4\x14\xf9\x4d\x49\x92\x8f\x15\x2e\x4e\xfa\xa2\xf6\xc2\x75\xfb\xf2\x27\x51\x8d\x18\xa7\xc4\x7b\xda\x58\xa0\x37\x4f\xbe\xdb\x84\xbe\xad\xfe\x1a\x1c\xbc\x79\xf2\xdd\x1d\x28\x60\x9f\x0b\x33\x70\x15\x80\x28\x93\xa0\x97\x62\x4f\x13\xfd\xa0\xad\xc1\x75\xbd\x32\xdc\x2c\xb9\x74\xae\x12\x3a\xce\x89\xe3\x89\xe9\x67\xea\x81\x1a\xec\x56\xd3\x00\xa2\x1f\xd5\x5a\xdf\x63\xc9\x25\x67\x07\x99\x46\xe3\x36\x6b\xdc\x2d\x67\x25\xf9\x94\x15\xf3\x2a\xbf\x71\xc6\x24\xcd\x93\x92\x8c\x9d\x6a\x3e\x99\x64\xd7\xda\xdd\x3a\xf3\xb7\x81\xd5\xfc\x36\x44\xbf\x4a\x38\xcb\x4d\x70\xce\x4a\xc2\xcb\x7b\x15\x49\x0b\xcb\xab\x77\x13\xa0\x5b\xac\xbc\xb9\x2d\xf1\x98\xa4\xc5\x98\xbc\xfd\xf9\xec\x69\x31\x9d\x15\x94\x50\xde\xc2\x22\x4d\x58\x7a\xe5\x15\xf0\x56\xb6\x64\x55\x9f\x55\xce\x34\xc9\x65\xb3\x91\x03\xfc\x12\x2e\x74\x57\x87\x59\x8c\x4b\xdb\x19\x30\x25\xfa\xb8\x9a\xc4\x9e\xb2\x0b\x8a\xa3\x95\x27\x54\xc8\xce\x39\x6e\xb3\x20\x8e\x69\x94\x89\x73\x97\xd2\x02\x61\x14\xd2\xf2\xa4\x38\x2e\xb9\x4e\xc0\x17\x7f\x2f\xc1\xf9\xd2\xce\x3e\x17\x7c\x4e\x70\xe2\xba\xc9\x09\x0e\xc3\x70\x2f\x0c\x43\x3d\x50\xe4\x7a\x46\x52\x4e\x76\x9f\x92\x3c\x1b\x3b\xdf\xbf\x7e\x75\xee\xf0\xc2\x49\xca\x48\x09\x94\x17\xf6\xcf\x72\x78\x73\x33\xeb\xf8\x98\x55\xac\x24\xc9\xb4\x71\x28\xa5\x05\xed\xce\xca\x8c\xca\x99\x62\xea\xa8\x84\x83\x73\x49\xaa\x79\xce\x7c\x9c\x5b\x27\xde\x2a\x39\x04\xcd\x79\x3d\x69\x6f\x96\xe6\xb8\x9e\x3e\x81\x6b\x11\x5f\x9a\x50\x5a\x30\x47\x18\x2e\x1d\xa5\x79\x54\xc7\x02\x81\xb3\xb2\xf8\x94\x8d\x39\xa5\x14\xf3\x32\xd5\x2e\xad\x1c\x23\xf6\xfc\x05\x10\xe5\x38\x40\xe9\xf2\x89\xd5\x46\xd7\x3b\xce\x4f\xd2\xe3\x5c\x38\x49\xe2\x62\x98\xc7\x9a\x64\x19\x4a\x60\x5d\x7b\x6c\x98\xc4\x38\x1b\x26\x31\x2a\xf9\x57\x27\xb0\x78\xf2\x9c\x34\x07\x10\xb5\xed\x5c\x76\xac\x42\xf3\xad\x15\x47\xf6\x12\x42\x69\x92\x0e\xd0\x9c\xeb\x9e\x32\xb5\x11\x8f\x05\xce\x65\xe3\x65\x03\x5e\x75\x32\x3f\xae\x38\x78\x4b\x95\x0d\xab\xd8\x20\x87\x12\xe9\x6b\xcc\x53\x2a\x27\x29\x49\xdb\xeb\xd9\xc9\x68\x95\x8d\x89\xc3\x7b\x0e\x20\x5a\x39\xce\x5c\xba\xee\x8a\xe2\x8c\x31\xfe\xa7\x6e\x44\xfc\xe2\x95\x2c\xca\x1d\xe2\xc1\x95\x89\x9a\xd6\x54\x83\x4a\xac\x8c\xd8\x65\xb3\x91\x20\x36\x18\x6e\x17\x10\x6d\xb4\x63\x0b\xc7\xa3\x95\x41\x2e\xec\x41\x2e\x56\x06\x51\x51\xa0\x38\x9e\x46\x15\xad\xeb\x38\x13\x41\x94\xd8\xf4\xa3\x56\x50\x39\x97\xe9\x18\xba\xe0\x21\x75\xb4\x0b\x27\x75\xad\x04\x01\x6b\xd9\xc7\xb9\x8e\x15\x41\xeb\xfc\x18\x4e\x79\x8a\x11\x24\xda\xeb\x2c\x19\x6b\x12\xe7\x98\x12\x7e\x32\x1f\x3e\x08\xf2\xf8\x20\xf6\xba\xcb\x81\xa2\x60\x79\x6c\x5e\xeb\xa6\x1c\x22\x74\x9b\x16\x74\x92\x5d\xce\x4b\x4e\xf4\x51\x27\x40\x84\xce\xa7\xc4\x84\x3e\x97\x19\xd3\xdf\x9f\x92\x7c\x4e\xa2\x62\x01\x23\x36\x2c\x63\x5c\xa0\x31\xc9\x09\x23\x0e\xb5\x8e\x69\xb3\x86\xc8\x67\xa4\xd1\x71\x84\x76\x21\x76\xcd\x25\x97\xb2\x78\x4e\xd3\x2b\x08\x07\x4d\xc0\xf7\x23\xa1\x71\xb1\x81\x67\x47\x22\xa9\xa7\xdc\x59\x0d\x17\x6f\x9a\x12\x30\x92\x83\x95\x38\x7c\x5c\x9d\x0b\xbe\xba\xf2\xc9\xae\xb9\x99\x58\x8b\xc5\x69\x3b\x1c\xb6\x70\x61\x0d\x37\x59\x15\x1a\x9b\x7e\x4e\x88\x5e\x5a\xcd\x01\x54\xb5\x6f\x70\x17\x90\xc7\x01\x97\x1c\x8e\x65\xa1\xe3\x5f\xbc\x12\x1e\x0b\x96\x5c\xba\xae\x38\x4f\xb3\xdc\xa4\xeb\x7a\x2b\x50\x58\xd5\xad\x6f\xcf\xf7\xad\x2c\x62\xbd\x70\xdd\x5d\xae\x70\x95\x70\x5c\xdc\xde\x5f\x64\xf1\xf9\x2a\xcb\x89\x17\x06\x52\xca\x09\x77\xe5\xaf\x08\x8a\xfa\x3a\xdf\x71\x8e\x23\xc6\x54\x1e\xe5\xe4\x38\xbf\xb7\xef\x28\xf3\x7d\x35\xd4\x5a\x34\x3f\x16\x0a\x64\x79\x0c\xed\x68\xdf\x7f\x40\xb7\x16\xfa\x10\x52\x47\x18\x9b\x39\x6c\x19\xa7\x80\xa6\x9a\x13\xaa\x65\x27\x4e\xff\x69\xc6\xe5\x3e\x79\xd6\x52\x88\xa8\x5c\x92\xb1\x8e\x2b\x91\x96\x93\x9a\x69\x47\x9b\x94\xbc\xbd\xfd\xce\x26\x52\xa6\x5c\xd6\xdc\x3b\x90\x1e\x69\xac\xb3\x96\x4e\xa9\x1f\xc2\x3b\x12\xfb\x9c\x45\x50\x1f\xef\xa2\xe0\xee\x66\x3a\xef\x3c\x06\xed\x73\x56\x57\x4a\xce\x17\x0e\xdc\x83\x66\x19\xe5\x2a\x39\x3b\x0d\x05\xfd\xe8\xb8\xe6\xe0\xe9\x88\x02\xc4\xba\xa1\x5d\xd1\x94\x2c\xdd\xe2\x20\xcf\x90\x89\x6d\x8c\x84\xa6\x57\x45\xa9\x2d\xde\x96\x89\x79\x99\x36\xdb\x16\x6c\xa3\x28\xc8\xf2\x02\x16\xf9\xc9\xe5\x1d\xfd\x1d\xe3\x04\x8a\x9d\xae\x7b\xe7\x4d\xe6\xba\xeb\x9b\x15\x35\x1b\x9e\xb9\x9c\x8a\xb4\x18\x76\x61\xc9\x1c\xce\x74\x5e\x31\xb1\xec\x5d\x10\x67\x5e\x89\x45\xaf\x4d\x1e\x10\xed\xed\x8b\x35\xc3\x75\xdf\x79\x77\x42\xe7\x87\x10\x1e\x43\x21\x8f\x71\x4e\x6a\xf3\x2d\xc1\x25\x3a\x42\x35\x5c\xa2\x4e\xcc\xa0\x32\xc5\xcb\x93\x87\xf7\x8d\x80\x39\xed\xc6\x3b\x28\x56\x90\x0b\xc9\x81\x76\x51\x27\x44\x9d\x00\x22\x55\x9d\xc6\x37\xb4\x1b\xbf\xb7\x7a\xa4\x57\x28\x8c\xa9\x5e\x8d\x24\xa4\xa7\x0c\xaa\xf9\x05\xe5\x40\x5e\x24\x63\x7b\xa4\xd4\xe9\x26\x65\xcb\x77\x08\x65\xe5\x0d\x68\xc0\x6d\x75\x9a\x29\xa6\xa1\xc8\xa4\x93\x0b\xcc\xb1\xe4\x12\x97\x48\xd3\x03\x2e\x90\x3c\xc5\x82\xad\x0d\x02\xdd\x29\x9c\xa0\x96\x48\x75\x49\x56\x7c\x12\x70\x27\x44\x89\x22\xd2\xdd\x5d\x69\xb6\xbf\x67\x01\x6a\x59\xfa\x0d\xd5\x8a\x13\x94\x6b\x55\xdb\x44\xa9\x0c\x72\x41\x05\x10\x1d\x88\x85\xee\x7e\xae\x05\x07\x5e\xc1\x69\xe4\x01\x39\xa3\xdd\x5d\xb1\x86\x7b\x09\x2f\x40\x31\xe8\x74\xc0\x83\xca\xf1\xac\x00\xb5\x16\xb2\x02\xde\x7e\x09\xe3\x57\x7c\xff\xa0\x2f\x19\xbe\x75\xeb\x81\xb6\xc8\x0c\xbc\x6c\x45\xf5\xf8\xb2\x65\x49\xaf\xcf\x73\x6a\xf4\x0b\x42\xc7\x5a\xdb\x52\x9a\xc3\xe7\x8c\x5d\x65\xd4\x49\xb8\xb2\x7b\x91\xb0\x6c\xca\xc7\x1d\x40\xe1\xc3\x24\x57\x50\x05\x6a\xe7\x9d\x58\x49\xe5\x90\xb9\xae\x97\x0c\x1a\xd5\x4b\x69\x86\x4a\x35\x50\xca\x88\x43\xae\xd3\x3c\x99\x4a\x8c\x4e\x93\xf2\x63\x05\x60\x24\xa6\x56\xab\x53\xdd\x10\xb5\xa6\xb9\x56\x77\xa9\xd1\x38\x68\xb2\xa4\xe9\x2e\xb5\x23\x0e\x17\xda\xaa\x0e\x12\xf8\xb4\xd1\xc3\xd9\xc7\x83\x16\xf2\x3b\x87\xfc\x1b\xad\x88\x1b\x0d\x6c\x63\xdf\x27\x79\xf1\x99\xcf\x60\x4e\xd1\x45\xd9\x82\x6e\x91\xb9\x6e\xe7\xd7\x75\x55\xf1\x8e\xde\xd3\x39\x71\xff\x8a\x54\x8d\xb3\x75\xaa\x71\xa6\x55\xe3\xdc\x56\x8d\x45\xc5\xcb\x8a\x71\x66\xbc\xa1\x8b\x81\x64\x10\x59\xb4\x6c\x1b\xa0\x50\x25\x19\x15\x9a\xc6\x7e\x16\x81\x8e\x70\xb8\x56\x69\xa0\x03\x44\x5c\x3b\x72\x55\x47\xe0\xb9\xa4\xa1\x61\x4e\x8d\x51\xc1\x42\x2b\xd8\xf6\xa9\xbf\x0d\xb6\x21\xea\x04\x0d\xfb\xb9\xb1\xd9\x8f\x60\x38\x87\x1d\x8c\x2d\x3a\xba\x97\xe1\xac\x5d\x27\xd7\x33\x1d\xea\xc8\x74\x9b\xf1\xac\x6d\xa9\x45\x36\x2d\x52\x13\xf3\x85\x8a\xf9\xc2\x05\xe6\xce\x9f\x1e\x85\xc7\xf0\xfe\x4a\x9a\xbb\x94\xcc\x2a\x2b\x74\xae\x66\x0e\xb4\x21\xa4\xc5\x98\xc8\x15\x56\x93\x4a\xc2\x9c\x9c\x24\x15\x13\x16\x3d\xcb\x7c\xd0\xb0\xfd\xbb\x88\xdb\x1e\xf3\x0b\x63\x14\xe0\x7c\x8d\x8f\xbd\x72\x42\x43\xe2\x76\x15\x34\x46\x57\x68\x8a\x43\x74\xc9\x17\x82\x1b\xbc\xc4\xd4\xb5\x1d\x5b\xae\xc6\xf2\xdb\x03\xc5\x8c\x50\x80\x08\x87\x86\xd3\x87\x30\x8b\x1a\xc0\x54\x48\x2c\x49\xea\x5b\x2d\x46\x22\x94\xe0\x1c\xa7\x78\x8f\x8b\x0a\x75\xcd\x19\x50\x86\x4a\xd7\x6d\x2d\xfc\xde\xa5\x14\x0c\xec\x45\x75\x30\xc5\x61\xd4\x92\x86\xb9\x00\x37\xc5\x41\xd4\x5e\x31\x5d\xd7\x9b\x62\x2e\xaa\x21\x2e\xe2\x4d\x85\xb6\x7a\x2c\x96\xbd\xba\x16\xe4\x77\x0c\xad\xb6\x06\xb2\xa9\x14\x27\xff\x6e\x73\x51\xaa\x86\x2e\x75\x5d\x2f\xc5\x97\x75\x5d\x48\xbb\xe7\xd4\x75\xf7\x3a\xa2\xb3\xde\x18\x87\xb2\xdb\x5c\x8a\xcf\x06\x2c\x62\x7e\x88\xae\xf0\x7a\xe3\xb6\x84\x7f\xc0\xab\x13\xb2\xe6\x15\xb4\x2f\xbd\x58\x32\x32\x23\x83\x53\x25\x86\xce\x1a\x31\x74\x82\x6f\x17\x68\xbc\x74\x00\x59\x0a\x51\x57\x12\x25\x53\xf9\xa3\x10\xc9\x69\x00\x5d\xfc\xfd\x62\xeb\x04\xa2\xea\x21\x62\x6b\x75\x2c\x8c\x75\x37\x75\xbd\x56\xc5\x13\xc6\x81\xbf\x5f\x78\xbd\x47\xe0\xe3\x8b\x59\xa1\x25\xc9\x03\x2e\x26\x55\xae\xbb\xcf\xb9\x57\x55\xd7\x9d\x77\x5e\x26\x5d\x4d\x12\x9d\x25\xc7\x36\x2a\x53\x5b\xba\xe8\x88\x19\x49\x51\x5f\x09\xa2\x4a\xc6\x33\xb2\x1f\xc6\xb8\xd0\xde\x95\xf7\x0c\xd7\x2f\x5e\x05\x8f\xe1\xda\x6c\x2b\x4a\xed\xfe\x21\xc6\xb8\x82\xef\xd6\xd7\xda\x16\x36\xf4\x6a\x9d\x38\x9f\xaf\x32\x46\xaa\x59\x92\x5a\x5c\xc8\xb6\x0b\x38\xc9\x84\xc7\x70\x21\xe4\x23\xb9\xe9\x0a\xe3\x87\x53\x91\x59\x52\x8a\xb5\xd2\x48\x24\x17\x79\x91\x7e\xd4\xf6\x17\x00\xd1\x8d\xeb\x7a\xc2\xbe\xa7\x18\x10\x92\xbc\x41\x98\xf8\xd0\x15\x9e\x62\x49\x8c\x90\x13\x62\x20\x49\xb2\xe4\x7f\xae\x14\x7d\x4f\xb1\xe6\x2a\xcd\x7d\x15\x17\xb0\x71\xdd\x4c\x2e\xf1\xbc\x61\x49\x33\xd4\x09\xb6\x8c\xc9\x53\x50\x42\x49\x92\x31\xe7\xc0\xe6\xe6\x01\x6d\x1b\x9a\x25\x59\x79\xec\x24\x4e\x5a\xe4\x05\x15\x0b\x6d\x56\x55\x64\x0c\xe0\x62\xf1\xef\xb4\xd4\x1e\x01\x29\xf6\x1f\xeb\xbb\x10\x84\xcd\xe5\x23\xb9\x71\xa6\xc9\x8d\xa6\x53\x1b\x36\x61\xaf\x92\xed\x3b\x07\x9c\x67\x56\x03\xef\x8b\x47\x90\x8b\xd1\x9d\x00\x46\x37\x03\x4f\x8f\x67\xa0\xc5\xca\x8c\xa6\xc5\x74\x26\xec\x54\xda\x83\x63\x65\x40\x38\x7c\x62\xa1\x32\x63\x72\xec\x14\xa5\x33\x29\xf2\xbc\xf8\x4c\xc6\xce\xc5\x8d\xba\x02\x81\x25\x17\xf3\x5c\xd8\xdb\xc4\x61\x60\x61\x51\x02\xf6\x6d\x60\x3e\x0e\x51\x85\xc5\xb9\x06\x8b\xe6\xd7\xa8\x51\xa2\x93\x0f\x98\x53\x50\x2b\x77\x7b\x9c\xaf\x0b\x4b\xe8\xcd\xa0\x21\x91\xe8\x12\x37\x5a\xde\x4d\x5d\xb7\xc7\xed\x72\xdd\xa0\xd9\xba\xe0\x7d\xd3\xd0\x56\x06\xd7\xf5\x42\x30\xb5\xbb\x94\xc1\x16\x51\xdc\xa3\x0b\x6a\x39\xef\xc6\x75\x37\x62\xff\xc2\xa8\x89\x2d\xca\xd4\x6a\xa2\x71\x31\x32\x0b\xf3\x04\xa2\x8b\x05\x5f\x63\xd0\x18\x2e\x2d\x33\xad\x7b\x2a\xd1\x8a\xe8\xc0\xc9\x6a\xaa\xe6\xe4\x65\xb3\xe6\xdc\xac\x5b\x6e\x38\xbe\x85\xef\x87\x37\xbe\x57\xe0\x4b\xf0\xd1\x2e\xaa\x38\x99\x16\x78\x18\x9b\x39\x1e\xf6\x39\xeb\x1d\x5b\xee\x79\x38\xec\xef\xf3\x8c\x01\x2a\xf0\xed\x62\xf1\x25\x0b\x52\x01\xd1\x5a\x40\x5a\xbc\x50\x2c\x49\x63\xb9\x24\x69\xa2\x60\x10\xdd\xdf\x05\x8c\x71\x02\x57\xe4\x40\x61\xd2\xe3\x98\x99\x36\x98\xb9\xd4\x98\xa9\x06\x06\x37\xd1\x3a\x65\xbe\xe0\xcc\xe5\x6a\x20\xfc\x68\xc6\x5a\x9a\x34\x9c\x98\xf3\x60\x31\x3f\xb9\x0c\x49\x28\x43\xce\xc5\x9c\x39\x93\x62\x4e\xc7\xce\x36\xda\x06\x7a\xae\xcb\xb9\xeb\xa4\xc5\x74\x9a\x38\x17\x84\x7d\x26\x44\xe9\x38\x69\x91\xe7\x44\x4a\x8d\x9c\x14\x33\xc2\xf5\xaf\x89\x94\x0a\xb8\xd0\xd6\x09\x91\xe0\x3e\xe3\x07\x99\x78\x5c\xd7\x13\x85\x36\x98\x78\x18\x94\xe2\xb8\x98\xda\x59\x6b\x6a\x97\xf6\x72\xa9\x66\x76\xa8\xcd\x36\x33\x45\x6d\x73\x33\xa7\xad\x2a\xd7\x23\xb4\x25\x1a\xa7\xda\xb0\xd4\x11\xa6\x1b\xb1\x86\x8f\xeb\x5a\x1a\xa3\xee\xa7\x07\xbb\xb1\x65\xd0\x26\x16\x9b\xa9\x06\x62\x7a\x16\xe8\x06\xcd\xd0\x1c\x4d\xd4\x3d\x9a\x51\x3e\x50\x37\x26\x8a\x64\x29\x70\xb5\x72\xc0\x48\x67\x68\xb5\x25\x90\x7e\x3f\xd5\x0d\xbc\xab\x87\xf5\x03\x46\x57\xb8\x13\x2e\xbe\xc4\xaa\xb0\x44\x23\x00\x72\x96\x31\x86\x03\xbe\xb6\x44\x5e\xee\xba\x6b\xce\xae\x35\x5c\x43\xf0\xfc\x4e\x88\xe6\xfc\xcf\x0c\x33\x34\xc1\x1c\x4e\xe5\x2e\xda\xdf\x93\x1b\xad\xf7\x2a\x82\xbc\x80\xe6\x06\xc2\xe2\x92\x58\xfe\x8c\x98\x2b\x3e\x45\xe9\x19\x83\x98\x3a\xd3\x60\x66\x10\x00\x62\x3e\x27\xc2\xfc\xb8\xb7\xbb\xb1\xcd\x65\x71\x48\x98\x36\x13\xc8\x99\x57\x3a\x48\xb1\x28\x99\x0c\x76\xa3\xbe\x9a\x53\xd2\x50\x2c\xb9\x79\x7a\x55\x4c\x05\x3b\x9f\x8a\xc5\x92\x33\xef\x6c\x92\x99\xbd\x5f\x79\x50\xde\x2b\xb0\x38\x2b\x9f\xe3\x04\xba\x6e\x2e\xdc\xd9\xf2\xee\xde\x61\xd4\x0d\xe1\x29\x36\x42\x61\xc0\x97\x94\x41\xb3\x74\x98\xc5\xd9\x5e\x43\x3e\x67\x63\x76\x25\xdb\x96\x42\x86\xec\xf6\xb1\x93\x31\x6d\x81\xb8\x20\x4e\x4e\xaa\xca\x61\x57\xe2\x0a\x25\x02\x60\x34\x1f\xac\x80\x4e\xd7\x54\x6b\xc3\x1f\x79\x33\xcc\xfc\xa2\x2b\x90\x18\xc0\x45\x36\xf1\x7e\xf1\x12\x28\xac\x65\xf7\x0f\xa3\xb2\x96\x89\x12\x42\xf7\x97\x63\xfa\x25\x65\x3b\xdf\x79\x89\x5a\x50\x13\xe9\x72\xa6\xd1\x79\xdb\xec\xab\xb4\xb7\x4c\xd0\x7d\x34\x75\xec\x75\xe6\xed\x45\xfb\x64\x06\x5d\x57\xec\xb4\x24\x2b\x3b\x2d\xf7\x83\x2a\x36\x7c\xe6\x6d\xeb\xf5\xe9\xcc\x75\xbd\x19\xb6\xa3\x20\xe2\x7d\x81\x13\xdf\x37\x54\xb1\x04\xc3\xed\xae\xa0\xb6\x4d\xfb\x11\xd5\x20\xf4\x27\xd1\x44\x9e\x1f\x48\x5d\xb7\x6a\xed\x5d\xf0\x2c\x70\x4b\x4a\x0c\xc2\xbf\x61\xc0\xc7\x7d\xe0\x8d\x25\x3f\xbe\xbb\x4a\x18\x8d\x45\xce\x70\x63\xce\x09\x67\xf0\x11\xa7\xce\xc9\x60\xa9\x61\x07\xc0\x68\x63\xb1\xcd\x49\xba\x6d\xb9\x96\x73\xfa\x12\x0c\x22\xb3\xad\x31\x36\xfa\x8f\xe1\x03\x50\x21\x7c\x42\x32\xfb\x8e\xd4\x4e\x08\x17\x8d\x87\xb9\xe0\x5f\x1b\xe5\x1d\x41\xa4\x47\x7f\xc1\x40\x75\x07\xfb\x69\xaf\x85\x19\x2e\x97\xad\x4d\xf7\xb7\x25\x78\xd7\xee\x91\xb8\xa2\x81\x93\xcd\x9a\x4e\x06\x10\xdd\x01\x78\x9b\xb9\x59\x97\x8b\xb4\x37\x73\x2d\x38\x6d\x28\xa5\x16\xf2\x9d\x47\xe1\x40\x37\x5d\x8a\x16\xc5\xd6\x9a\x5c\xb1\x42\xb1\xba\xb7\x7b\x07\xa3\x96\x35\xcc\x5a\xef\x5d\x57\x6c\x27\x0e\xee\x5a\x8b\xb4\xbf\x56\xb3\x1a\xa9\xbb\xd8\xfe\x98\x17\x3c\xab\x1a\x6a\x18\x79\x1b\x01\x87\x5b\x5f\xb2\xd8\xad\xaf\xfe\x1e\x8a\xd1\x6b\x9d\xa0\x9c\x3d\x8e\x80\xfc\xbf\x88\x72\x28\xce\x56\x28\xe7\xde\xb6\xa4\x14\x2b\x3c\x8f\x73\x2d\x9a\xa6\xd2\x18\xb1\x44\x3d\xad\xb6\xe4\xbd\x33\xc2\x35\x39\x6f\x28\x6e\xa5\xcc\x77\xeb\x01\x58\xa2\xb6\x86\x40\x8c\x9a\x93\x9f\xf4\xf7\x0f\x5c\x97\x90\x61\x1e\xc3\x86\x3f\x30\x1e\x6e\x41\x62\x4a\x78\x5c\xec\x17\x7b\x48\x29\xce\xe1\xa0\x1f\x85\xe1\x63\xc1\x2c\xf7\xa2\xc3\x7d\xf1\x71\x18\x05\xf0\x34\x50\xf7\xc4\xe0\x04\x15\x38\x38\x2e\x4f\x83\xe3\xb2\xdb\x85\x5e\x82\xbf\x7f\x10\xac\xa7\x38\x18\x14\xd8\x2b\x4e\x4e\xf6\xa0\x9f\x44\x4b\xf2\xb6\x75\xa5\x44\xdb\xc1\xcb\xf4\xe0\x5f\x5e\xd1\x1e\x4a\x39\x77\x34\x19\xca\x3b\x51\x49\x95\x26\x33\x62\x36\x04\x01\xdc\x6a\xe3\x56\xcf\xb7\x5c\xcf\x37\x4e\x69\x6b\xe7\x5b\xbb\xdc\xdf\x3d\xdf\xc6\xc5\xfc\xe2\xde\xf9\xd6\x02\xe0\x8b\x84\xcb\xf5\xd5\xdb\x12\x66\x67\xed\xf1\x41\x4e\x9a\x7b\x5c\x0e\xf4\xee\xdb\xb2\x5d\x9a\x6a\x6b\xb3\xdf\xb3\x15\x90\x89\xad\x80\x4c\x6e\x05\x64\x9c\x13\xff\x8d\x5b\x01\x79\x96\x54\x5f\xb2\x13\xb0\xb2\xfb\xd6\xda\x02\x30\xbb\x3f\x46\xf3\x45\x66\x17\x6e\x7b\x4e\x8d\x58\x37\x56\x0d\x37\x1b\x36\x86\xe7\xd8\x5a\x33\x8d\x5b\x26\x11\xb1\x76\xc2\xc1\x03\xec\xd1\x42\x5f\xe3\x4c\xcd\xd2\x8e\x38\xce\xde\x79\xf3\xfb\xf0\x55\xd7\x7f\x7a\x73\x58\xd7\x42\x50\x9c\xd7\xf5\xee\xa1\xfc\xdd\xeb\xab\xf0\xae\xfc\x95\xca\xc3\xbc\xae\x0f\x74\xc2\x91\xfa\x55\xf1\xbb\x8f\x55\xba\x0a\x1f\x1d\xf0\xdf\xd6\x2e\xb6\x77\xa0\x2a\x13\x92\xfe\x9c\x2b\xaf\xef\xee\xa3\x28\x2e\x03\xd5\x35\x75\x5d\x4e\x0b\x5f\xc0\xc8\x4b\x5c\xd8\x2b\x6d\x82\x3b\xa1\xa0\xae\xb9\xe4\xcf\xc2\x50\x3b\x17\x9f\x5f\x08\x82\x14\xf7\x34\x93\x94\xc3\xa6\xea\xb9\xb3\x96\x6e\x08\xed\xc2\x52\x16\xbd\x93\x77\xa8\x36\xe7\x96\xf1\xfa\x3b\x1e\xd2\x5e\xb6\xd2\x77\xbf\xa5\xd4\x57\x2d\xf1\xd7\x30\x2e\x4e\x4d\x2d\x51\x19\x33\x78\x9b\x48\x19\xf0\x1e\x0f\x0f\x3e\x43\x32\x3a\x27\x0b\x0b\xd8\x42\x55\x86\xf3\x96\x97\x5a\xda\xd6\x0a\x2a\x25\x19\x2f\x12\xd7\x95\x4c\x95\xd3\x6c\x27\x54\x4c\x55\xdd\xcd\x9f\xc3\x75\xa8\x82\xe8\x17\x41\x95\x5e\xd1\xde\x93\x5e\x0f\xef\x3a\x27\x2c\xa7\xd5\x62\xa7\xa3\x69\x43\xec\x6c\x08\xb2\x99\x59\xa6\x39\x21\xb2\x72\x36\x88\x42\xe5\x5e\xe3\x09\x63\xae\x3e\x08\x28\xfd\x2e\x94\xbd\x0f\x0c\x00\x84\xd1\xba\x0c\x26\x24\xe7\xb4\xb1\xf0\x37\x5c\x47\x5d\xc8\xcc\xd5\xc5\xab\xe4\x13\x71\x12\x7a\xa3\xb7\x4e\x85\x25\x48\x3a\x8f\x3e\xc4\xb0\x66\xac\x20\x52\x45\x98\x0a\x90\x53\xd7\x55\xfb\x58\xcd\x7d\x16\x02\x36\xf8\xc5\xd5\x1a\x39\x00\x0c\x80\xa9\xe5\xb6\x65\xfa\x93\x39\x97\xae\x48\x96\x77\x7a\x6b\x16\x68\x9d\x42\x10\xfd\x17\x97\x93\x4f\x8a\xd2\xe9\x9c\x0c\x4e\x1d\x96\x5c\x0a\x05\xba\xb9\xa6\xda\xcc\x65\x31\x44\xe2\x25\x1c\x75\x85\xf9\x36\x54\x57\x7a\x90\xf6\x19\x9f\x15\xf7\x58\xce\x68\x26\xcb\xb9\x86\x55\x0c\xf5\x45\xf8\x8d\x37\x12\xbc\x6d\x48\xa0\xb9\xf7\xde\xf2\x56\x92\x08\x9f\x08\x5b\xd8\x97\x8f\xa0\xa2\x7f\x33\x90\x1d\xd0\x31\x03\x99\x4d\xbc\xc6\x77\x40\x9e\x33\x52\x17\xe5\xd6\x35\xd0\x17\xe4\x82\x58\x42\x00\x21\xef\xd0\x1d\xd9\xd4\x4d\xba\x12\x67\x1c\x47\xca\xa0\xa8\xfc\xb4\x67\x4d\xe9\xd6\xfd\xbd\xad\x3a\x56\xbd\xb5\x05\x8b\x62\xc9\xa5\x39\x4c\x34\x1b\x56\xb1\x88\x50\xa7\x7c\x31\xc6\x3a\x0a\xde\x4e\xc4\xb7\x56\x87\x35\xed\x6b\x09\x8c\x25\x97\x4e\xe7\x44\x5c\x52\x96\x5c\xfa\xe0\x14\x58\x94\xae\xe9\x68\x22\x80\x5a\xa6\x22\x70\x27\x15\xe9\x1a\xb7\xd7\x52\xd3\xb6\x3f\xd1\xf4\xb3\x96\xa2\x26\x2b\x34\xa1\x06\x7c\xe0\xdd\x49\x19\x2a\xd7\x5f\x99\xac\xad\x43\x01\xfa\x4e\x99\x44\xf6\x8b\x0b\x6a\xad\x51\x6a\x6c\x51\xd2\xc9\x68\xe9\xb0\xf0\x06\xcf\x81\x34\x2f\x2a\x22\x5c\x07\x6c\xbf\x31\x73\x9f\x4e\xc3\x9e\x6e\xac\x8b\x3d\xd7\x38\xad\x2d\x31\x65\xb5\xe6\x9a\xc3\x42\xd2\xed\x60\xf9\xb0\x10\x51\xc7\xf8\x90\xf6\x80\x59\xbb\x29\x6e\x0d\xd3\xba\x74\xa9\x6b\xdd\xeb\x23\xe7\xba\x9e\x2d\x30\xdd\xeb\xec\xdb\x69\x99\x7f\x4e\x03\x2e\xb5\x08\x7f\x32\xa8\x8c\x5b\xc9\xc3\x1c\xe1\x56\x85\xd6\xc6\xdf\xeb\x01\x4e\x53\x52\x32\x1e\xc6\x68\xd5\xb9\xcb\x16\x2f\xf5\x84\x3c\x09\x8d\xf7\x8d\x39\x10\x25\x64\x5a\x7b\xc7\xbd\x65\x79\xb4\xb7\x91\xa9\x23\x6b\x01\x6b\xfd\xbc\x1f\xe6\xab\xad\x1c\xb5\xff\x8a\xc3\x9e\x74\xcb\x56\x5c\x41\x48\x30\x2d\x2f\xed\x7f\x6f\x20\x33\xed\x5d\xba\x79\x0c\x17\xaa\x52\x69\xb6\x54\x2c\x37\x27\x88\xc2\x41\x4e\x86\x34\x96\xba\x1e\x8c\x12\xb5\x60\x49\x6e\x65\x34\xb3\x66\xc4\x8d\xec\xbe\xb0\x49\x2e\x30\x92\xdb\x99\x7a\x69\x4a\xc8\xb6\xf7\x9d\x0a\xb8\x3f\x93\x1f\x3e\x2c\x5b\x1f\xb6\x4e\x25\xe0\x5d\x5b\x85\x80\x51\xb2\x42\x3a\x95\x50\x10\xa7\x49\xb9\x7c\xf4\xe0\xa2\x91\xca\x64\x5f\xba\x21\xda\x33\xbb\x2e\x56\x9f\x57\xe6\xbc\xeb\x7e\xa5\xee\x34\x6c\x21\xa2\x40\xed\xb9\x2a\x1d\xdf\x69\x41\xbb\x4f\x5e\x3f\x3d\x3b\xb3\x0e\x41\xc8\xf3\x3e\x19\x65\xa4\x9c\x95\x44\x3d\x39\xa0\x76\xd8\xc4\xa6\xb6\x39\x11\xbb\xec\x4e\x7c\x9f\xfa\xbd\x77\xf0\x00\x6c\xdc\x35\x80\x6b\x1c\x4d\xbb\x66\x3e\xae\xaa\xda\xe2\x05\x03\x43\x3d\x8d\x8f\x46\x6b\xa8\x1b\xae\xfb\x49\x1f\x98\x55\x0f\x0d\x09\xb6\x47\xb0\x79\x1d\x06\x9a\x53\x91\xf2\xe4\x03\x69\xf7\xc1\x3c\xe4\xa5\x0e\x44\x6c\x4e\xf6\x88\x32\x57\xa3\x83\xfd\xfe\x63\x71\xda\xde\xce\x1b\x88\x2c\x98\x34\xb7\x40\xca\x8b\xb8\xa8\x38\x55\xae\x8e\x84\x2b\xf7\x1d\x75\x37\xee\x28\x00\x92\x93\x09\xef\xa5\xcc\x75\x3d\xda\xe0\x22\x43\x05\xf1\x28\x12\xb7\x9e\x3b\x17\x37\x8c\xe8\x57\x2c\x12\xe5\xc7\x20\x7c\x83\x66\x73\x26\x24\x5e\x89\x1e\x0e\x60\x00\xe4\xe9\x0b\xba\xe6\xa8\x81\xb5\x9b\x00\xa9\xbd\x61\x80\x43\x44\x6d\xb7\x07\x79\x91\x70\x13\x75\x42\xcd\x48\x1c\xc3\x27\xc4\x6b\xec\x05\xb4\x21\x2c\x71\xd0\xf8\x23\xc1\xb7\x79\x91\x8c\x9f\xe4\xf9\xca\x61\x55\xb5\x78\x72\x71\x77\xf9\xb8\x18\x73\xdd\x4f\x45\x36\x16\xb7\x1c\x51\x71\x61\x30\x43\xd2\x11\x4f\x3f\x4c\x21\xf0\x2c\x79\x69\xf3\xe6\x68\xf3\x98\x9c\xb9\x85\xd7\x3c\x1c\x27\x8f\x4a\x66\x2b\x47\x25\x99\x97\x0d\xcb\x18\x2e\x10\x07\x73\xdd\x5b\x97\x58\x91\x14\x6f\x2a\xb0\xce\xd5\x0a\x89\x53\xdc\x82\xd4\xbe\x1f\xc6\xa1\xc3\x20\xde\x6a\xbd\xd1\xd1\xb8\x1d\x69\x03\xad\x21\x68\xf5\x92\x88\x24\x76\x7b\xef\x7b\x5a\x94\x04\xc0\xc5\x62\x81\x3e\x93\xcd\x57\xf1\xa0\xa7\x6b\x12\x97\x6e\x29\xb9\x26\xf8\x36\x88\xc0\x68\x14\x00\xf4\x98\xff\x26\x00\x1d\xf2\xdf\x0b\x80\x8e\xf8\x2f\x03\x28\x14\x19\x28\x40\x61\xc8\x3f\x3e\x01\x14\xf6\xf9\xc7\x04\xa0\x70\x97\x7f\x94\x00\xf5\x45\x61\x02\xd0\xee\x5e\xb4\x3d\x1a\x81\x6d\x74\x24\xf2\x8c\x46\x3c\x93\xc8\x75\x0e\x50\x78\x20\xaa\xfa\x00\xd0\x61\x7f\x57\xa4\xbf\x10\x9f\x22\xfd\x47\xb0\x40\x67\x04\x0f\xc1\x0d\x40\xe0\x37\x80\xc0\x0d\xa9\xf8\x97\xfc\xfb\xec\x35\x40\xa0\xa0\x00\x81\x57\xe2\xcf\x39\x40\x80\x7f\x88\xdf\x82\x7f\x88\x3f\xaf\x78\xae\xc9\x84\xe7\x90\x7f\x9f\x3f\x07\x31\x7a\x4d\xec\x4b\x67\xe5\x65\xb6\x91\xfa\x84\x3c\x60\x5d\x83\xfb\xd5\x4e\x73\x00\xf7\x95\x25\xa6\xa9\xdd\x13\x86\xef\xba\xf8\x17\x91\x13\xdc\xdf\xdf\x87\x19\x06\xd7\x00\x95\xb8\xdf\x38\xbe\xa8\xab\x2a\x78\xd2\x9c\x27\xed\x59\x5b\xa7\xe4\x04\xef\xf5\x8f\xf6\x8e\x0e\x1e\xf7\x8f\xf6\x97\xde\x70\x49\xb9\xa8\x3a\x2b\xb2\xd6\x46\x81\x68\xde\x76\xad\xba\x14\xe2\x5c\x29\x65\x92\xe0\xfa\xb9\xfa\x07\xc0\xad\x0c\x83\xb7\xbc\xbd\x43\x25\xce\x82\xd1\x08\xf8\x99\xdf\x6c\x55\x05\x00\x95\x5d\x66\x1e\x8f\xb4\x0e\xf2\xfd\x2e\xba\x6f\x5f\x37\x41\x96\xaf\x9b\x50\xcf\x3c\xca\xa7\x0c\x93\x6b\x2f\x44\x44\xc5\xd5\x75\x5f\xbf\x5d\x2a\x9f\xbb\x55\x86\x0a\xd2\x0e\x5b\xef\x82\x7d\xcc\x66\x67\x54\x1c\x31\xe6\xed\x34\xa1\x26\xcb\x24\x2f\x3e\xbf\x20\x9f\x48\x8e\xc5\xdd\xa5\xf2\x25\x5e\x8f\x34\xf1\x70\xd0\x0d\x23\x2b\x6c\xbd\x38\xd6\x7a\xdf\x65\xf3\x1e\x87\xb9\x96\x52\x8e\xd6\xed\x42\xdd\xfc\x77\xbb\x50\x57\xba\x79\xd9\xa6\x87\x6c\x0d\xdb\x48\x30\x67\x1b\x28\xd7\x2b\x0b\x1b\x26\x31\x44\xca\x03\x3d\x31\xfa\x5d\x1f\x0a\x57\xb0\xb5\xae\xe8\x89\xb9\x16\x1c\x22\x2f\xe5\xcb\x47\xfb\x96\x8c\xe6\x55\x97\x24\x86\xae\xfb\x54\x9d\x02\x4e\x5b\x4f\x9a\xa1\x5c\x79\xac\xb4\x62\x87\x79\x0c\x11\x1d\x26\x31\xce\xad\xd7\x5c\x2c\x2c\x23\x22\xf3\x9b\x27\xd1\x64\x5a\x51\xb2\x1f\xc8\x0d\x57\x39\xf4\xa7\x7d\x4d\x08\x25\xbf\x66\x63\x79\x63\x87\xfe\xae\xeb\xc3\x40\x53\xc0\xcf\x64\x52\x09\xd4\xf3\x8f\xa6\x1c\x2d\x9e\x16\xd3\x59\xc2\x5e\x16\x63\x22\x92\x9b\x60\x93\x29\x2d\x38\xa5\x88\x0b\x8d\x3f\x8b\x91\x68\x82\x4d\xa6\x3f\xe6\x05\xcb\xe8\x25\x1f\x1e\xbc\x0d\xb6\xc5\x92\x6b\xc5\x0d\xfa\x91\xa6\xa1\xa2\x4c\xc9\x4f\xf3\x82\x11\x0e\x90\x15\x6a\xea\x52\x17\x2e\x96\x78\xcd\x8b\xd5\xe6\x3a\xc6\x72\xd0\x7c\x46\x7f\xfd\x46\x14\xad\x72\x6e\xce\xaf\x9f\xd2\x69\x9e\x22\x6c\x3d\x3b\xa8\x2c\xb0\xf2\x2a\x13\x7d\x2e\xb8\xe2\xfa\x8e\x88\x9a\x57\x64\xfc\x6d\x13\x2d\x1e\x63\x31\x13\xfc\x8d\x12\x88\xec\x07\x54\xdb\x6f\x53\x42\x54\x08\x87\x83\x6e\x88\x72\xde\x4c\x6a\xae\x64\x39\x2e\x4e\xd2\x63\x28\xfc\x99\x95\xc3\x89\x16\x55\x28\x40\x05\x84\xf2\x80\x90\x92\x4d\x79\x35\x29\x8c\xec\x28\x94\x48\x07\x64\xf1\x93\x19\xc9\x8b\x17\x57\x12\x4e\xee\xe3\x12\xa2\xdc\xc7\x99\xa6\x53\x0b\xf4\x67\xc4\x7e\x89\x4e\x3c\x2a\xda\x82\x5c\xb3\xa1\x47\xf6\x95\x28\x2f\x89\x75\x79\x90\xbe\xe7\xe9\xa8\x7d\x41\xd3\x8b\x76\x1e\x7d\x37\x53\xd8\x3f\xa8\xeb\xf0\x20\x6c\x9e\xe9\xe8\x1f\xed\xbb\x2e\x5f\xc7\xe4\x8d\xba\x7c\x19\xeb\x88\x0a\xf7\x1f\xef\xee\xed\xe9\x7c\x9c\xe9\xef\xba\xae\x90\x03\x65\xb2\xb8\x63\xc8\x54\x2b\x6f\x5a\x68\x9a\x3f\xb7\x9b\x17\xb0\x58\x85\xb5\xe0\xe9\xba\x52\x3e\x6d\x8a\x3d\x27\xed\x27\x04\xcf\xd5\x79\xdc\xcc\x75\x3b\xa2\xd7\x6a\x08\x3d\x3a\xc8\xa2\xcc\x75\xf7\xf6\x64\x3d\x47\xa1\xfa\xd5\xf5\xf6\xcd\xc7\x3e\xff\x80\xae\xbb\xbb\xaf\x2f\x53\x17\x66\x7c\xe6\xba\x9d\x12\xd6\xf5\x39\xf1\xc4\x93\x79\x2f\xe5\xaf\x50\x5a\x79\xe7\x55\x9e\xb2\x81\xed\x43\xfb\x5c\x69\x5b\x16\x66\xcd\x63\x61\xa7\x62\x50\x0f\x5c\x37\x3b\xc1\xfb\x07\xbb\xe1\x91\xeb\x32\x3f\x34\x8a\x80\x10\xf5\xda\x65\xfd\x10\xc2\x53\x2c\x6e\x6f\x52\xef\x71\xec\xee\xed\x0e\xc2\xa0\xbf\xf7\xc8\xcb\xba\xa2\x36\xe8\xd3\xae\xbc\xde\x49\x8c\xbb\xfd\xe0\xf6\xb7\xd6\x50\xef\xbc\x1f\xd1\x47\xce\x8e\xbe\x2c\xbe\xc9\xf4\x76\xe5\xc6\x06\xd9\x11\x79\x32\x21\x40\x33\x39\x1b\x27\xb8\x13\x0a\xd7\x2f\x74\x85\xa5\x88\x8e\xa6\x7c\xd2\x5c\xe2\x17\xc4\xab\xb0\x18\x82\x00\x5a\xb8\xac\xe4\xd0\x55\x42\xef\x94\xe1\xb6\x0f\xbe\xc2\x51\xa5\x70\x54\x29\x1c\x55\x1a\x47\x95\xc6\x51\xa5\x50\xc4\x7f\x75\xc9\xbe\x0a\x9b\x8c\xaa\xaa\x03\x55\xd5\x81\xce\xa0\x40\xd9\x55\xe9\xc2\x40\xc3\xd3\x75\xd3\x07\xf2\x77\xf5\x0a\x3d\x49\x55\x0a\x58\xb2\xf0\x3e\x28\x7d\x56\x2b\x41\xf2\xd4\x79\x5d\x27\xe2\xb8\x4a\x8a\x83\xe3\xd4\x60\xf2\x78\x7e\x2a\xe6\xc5\xc1\x20\xf5\x71\x3f\x4a\x7d\x5f\x3e\x37\xf2\x82\x78\x73\x39\x54\xa9\xd9\x7c\x72\xf6\xb7\x2e\xf1\xa5\xeb\x3e\x27\xde\x1c\xcd\x50\x0e\xd1\x0c\xcf\x9b\xe3\x7f\x0f\xaa\x58\x5e\x42\x60\x55\x3d\xc1\x9d\x00\x71\x82\x1a\xe3\x71\x5d\xa7\xdd\x69\x37\x3c\xcd\x5c\x17\x38\xc2\x64\x3c\x9c\xfa\x61\x8c\xa6\x38\x6d\xac\xf2\x02\xb4\xbb\x41\x12\x55\x5d\xb9\xee\xda\xda\xb4\x29\x71\x52\xd7\xe3\x01\x3d\x3d\x72\x5d\x41\x7c\x83\xfd\x28\x19\xf4\x85\x43\xdc\x7e\xd4\x8f\xc6\x83\xbd\x68\x37\xea\x5c\xd6\x75\x52\xd7\x25\x4f\x6f\xd2\x2c\x16\xf1\x07\xb1\x5f\x31\x27\xbd\xf1\x7c\xda\x7a\xba\x8e\xeb\x22\x7c\x12\x2e\xa9\x1e\xfd\x95\x35\x71\x1b\x80\xed\x08\x6c\x6f\x03\xe1\xe0\xd5\x5e\x7e\xf5\x41\xeb\x33\x62\xbd\xef\x59\xd7\xaf\x89\x9c\x22\xac\x41\xd0\xba\x7a\xe5\x63\xbb\xbc\x72\xe0\x33\x1f\x6c\xcb\x9b\x9b\xf5\x32\x41\xd9\x23\x4b\x60\xa4\x10\xe5\x58\x9d\x8b\x31\xb2\x03\x97\xe3\x4c\x9e\xa5\x87\xb2\x45\x06\xb4\x17\xe8\x5d\x36\x11\xee\x26\x10\xa5\x38\xab\x6b\x4b\xfa\x3b\xed\x86\xae\x4b\x4f\xb1\x15\xb5\xa5\x2e\xd8\x7f\x4b\x3c\x86\x52\xb3\x4a\xa0\x1c\xb5\x9e\x17\xd6\xe8\x5a\x27\x2f\xea\xab\xa0\xa5\x82\xbe\x6e\x73\x84\x9e\x64\xc7\xd4\x98\xf4\xdb\x3b\x23\x34\x36\x46\x70\x66\x39\x2a\xe9\x9d\xd6\x85\xbc\xc4\x8b\x77\xcd\x1a\x51\xd4\x12\x54\x5c\xb7\x23\x2f\x82\x4d\x93\x8a\x38\x61\xa4\x6f\xe0\x10\xd7\xfe\x3b\x7d\x7d\xdb\x3f\x1f\xfa\xe6\xee\xe8\xed\x9d\x4b\xc4\x51\x0d\x05\x36\x44\xce\x5d\x9d\xb3\x06\xfe\x6f\xd2\x92\xa7\x5f\xa2\xfe\x91\x78\x6f\x88\xb8\xd0\x06\xca\xbc\x7b\x3a\xef\xe9\x86\xbc\x1b\x44\x6b\xbc\xe3\x8d\xa8\x0f\xbd\xe1\xfb\x11\x8d\x1f\x41\xf1\x22\xbb\x72\x54\x69\xc4\x05\x49\x00\x1d\x8c\xf3\x41\x1e\x35\x8f\x4e\xf5\xf2\xa4\x62\x5c\x4b\xb8\xc6\x39\xfa\x99\x78\xc4\x48\xce\x5c\x26\x15\x77\x53\xf3\xd2\xe2\x4d\x8f\x20\xae\x6b\xe0\xe8\x6f\x41\x6d\xb9\xb4\x4c\x34\x2f\xbe\xc3\x63\xc5\xba\xb1\xb8\xd9\xab\xc2\xd9\xb0\x1f\x6f\x51\x2c\xcb\x55\xc3\x20\x46\x85\x8f\x53\xdf\x4b\xea\x9a\xd6\x35\x10\xb1\x03\x00\x22\x01\xa3\xff\x33\xf1\x2a\x2e\x10\x25\x98\x9a\x93\xa9\x0b\x8f\x71\x60\xcc\x30\xed\xab\x61\xe2\x33\xc0\xe6\x99\x5a\xc0\x62\x88\x72\x29\x4a\xde\x13\x12\x1c\x97\x0d\xe7\xca\x34\xe7\x2a\x39\xe7\x12\x6f\x32\x49\x7e\x55\x42\xd4\xf1\x18\xbe\x26\xc3\x8c\x4b\xfa\x2f\x88\x97\xc1\x81\x47\x7d\xf1\x4e\x13\xd2\xc5\xf8\xe2\x28\xa2\xfc\x30\x86\x30\xa2\x3e\x66\x75\xfd\x8a\xb4\x5f\x6c\x64\x90\x4f\xca\x2d\xf5\x3a\x43\xd4\x52\x33\xb3\xe9\xac\xa8\xaa\xec\x22\x57\x57\xee\x47\x4e\x26\xb5\x2f\xe5\xb8\xe2\x08\x95\x00\xc0\xc5\xc2\xb3\x56\xc7\xdf\xec\xa5\x1d\x4b\x9e\xa6\x95\x1e\x18\x89\x9e\x1a\x14\x59\xcf\xae\x18\x98\x7c\x8f\x0b\x7a\xab\x59\xfa\x1c\x9d\x2a\x16\x0e\x80\x0f\xa2\x4c\x20\xa2\xcb\xe9\x77\x44\xad\xeb\x20\x7f\xb4\x16\xf1\x75\x4d\x0d\x88\x7d\x39\x5f\x64\x89\x4c\x3f\x13\xf3\xf2\x38\xd0\xcf\xd5\x19\x0a\x32\xc7\x1c\x8c\x8d\x48\x91\xb3\x33\x7c\xef\xc4\x82\x8c\x03\x75\xe5\x7a\x80\x52\x0c\xc0\x31\xb5\xe9\xcc\xcb\xf5\xc3\x56\xb0\x5b\x9c\xca\xc7\xa9\x92\xd3\x62\x90\x44\x39\x4a\xa5\x6d\xd0\x6f\x24\xe1\x8c\xcb\xc1\x19\x97\x83\x93\x46\x27\x53\xd9\x9a\x35\x55\xd4\xc3\x2b\x49\x7d\x5b\x8a\x96\x03\x62\x6a\xe3\xe2\x74\x64\xe7\x80\x28\x6d\x9e\x23\x32\x9d\xff\x6a\xfd\xd5\x62\x5a\xc4\x67\xc9\xe5\x56\x73\x87\x18\x5d\xa3\xe1\x52\x4e\x7d\x8d\x06\xa4\x0e\x35\xe9\xa0\xbe\x06\xa9\xb9\xa5\x29\xe1\x8a\xec\x0f\xa2\x55\x3f\x44\x09\xea\x04\xe2\x3f\x61\xef\xae\x6b\x63\xd0\x4b\x5c\xd7\x64\x12\x82\x95\x9d\x8f\x6b\xb3\x7c\x61\xe5\x48\xca\xeb\x9a\x2b\x08\x4a\x0d\x10\x56\xeb\xf9\x74\xc6\x05\x63\xb1\x90\xf0\x40\xdb\xe4\x3a\xc8\x7d\x0c\xba\x20\x12\x3f\x0e\xe0\x7a\x85\xcc\x06\xb7\xe4\xbe\x73\xaa\xea\xe0\x55\x83\x61\x6c\xd1\xd8\x37\x64\xd9\x1b\x48\xf9\x02\x6d\xc9\x5d\x2c\x4e\x05\x5e\x29\xce\x96\xb7\xd4\xb9\x68\x89\xf9\x1b\x4b\x41\x72\x92\x1f\x27\x7a\xf7\xdc\x4b\x71\xc9\xb5\xf8\xd6\xbb\xee\x69\xf3\x86\x3b\xef\x75\x27\x6d\xa5\xae\xb3\x89\x32\xfb\x21\x60\x3b\xbb\x2a\x6f\xbd\x09\x6f\x05\xc4\x42\x2e\x2e\x61\x1e\xa4\xfa\x39\xf0\xb4\xfd\xf2\xbb\x3a\x31\xbf\x14\xcb\xe7\xb7\x4e\x60\xc9\x65\x64\x9c\x35\x90\x95\x51\xd4\x2c\x2c\x06\xca\x02\x33\x14\x99\x63\x0e\x82\xfd\x46\x4c\x73\x0b\xf7\x73\x35\xe6\xe2\x06\xb0\xcf\xc6\xaa\xd1\xd4\x08\x33\x1b\x12\x8f\xa1\xca\x3a\x83\xf0\x74\xb5\x00\xaa\x96\xec\x69\x9d\x13\xe0\xa7\xd6\x26\xb6\xde\x15\x2e\xcd\xb5\x87\x6a\xe7\xba\xf2\xb7\x81\xe4\x7a\xdb\x70\xab\xd5\xea\xb0\x8a\x45\xc3\x0b\x45\x30\x59\xe3\x7e\x6d\xd6\x71\x43\x3c\x3f\xd8\x0a\x84\x50\x1f\x5a\x27\xcc\x45\x05\x14\x7d\x23\xdd\x20\x3b\x21\xac\x6b\xfd\x1d\x48\x7b\x76\x8a\x2a\x33\x12\x8a\x62\xd1\x1c\x67\x5b\x99\xe0\x2a\x96\x6c\x73\x12\xb4\xa5\x1f\x26\xcb\x8b\x63\x6d\xab\x97\xa8\x61\x71\xce\xd7\x44\x37\xef\x1f\x54\x5c\x1a\x1c\xbb\xae\x37\x91\x8b\xb2\xf0\x67\x68\x2c\x0b\x66\xe5\xa6\x90\x4f\xe9\xf6\x5d\x29\x60\x00\x9a\x0d\xf0\x49\x5d\xf7\xd5\x75\x47\x72\xb3\x8e\x9d\x06\xf2\x46\xb7\x4e\x08\xd1\xc4\x75\xc9\x92\x75\x62\x38\x8b\xa1\x1a\x11\xf0\xa8\x24\x93\x0f\xc0\x9f\x19\xe4\x8e\x5d\x77\xe2\xba\x9d\x35\x65\xc4\x96\xd2\x4a\x2c\xee\x04\x70\xf5\x76\x77\x71\x60\x38\x93\x0e\xf7\xb6\x19\x4f\x0d\xac\xb9\xdc\xa4\xbd\x1f\xd1\x70\x49\xdb\x09\x10\x00\xe1\x00\xc8\x92\xcb\xe6\x2c\xba\xa8\x4c\x9d\x98\x90\x9c\x48\x1b\xcb\xe0\x58\x7c\x7a\x96\xab\xcf\x3a\xeb\xd2\x72\x76\x2b\xc6\x3a\x44\x69\xe2\x5a\xa4\xad\x63\xe5\x56\xb5\x78\x86\xfe\x42\xbe\xa7\x2a\x77\xca\x4c\x7b\xd0\x30\xf7\x04\x8f\x1b\xe6\x9e\x48\xe6\x3e\x17\x22\x8a\xe2\xb3\xb3\xba\xf6\xe6\x16\x9f\x4d\x31\x1d\xe6\x78\x3c\x2c\xe3\x25\xf6\x9f\xae\x61\xff\x39\xd7\xb6\x90\x61\xe8\x86\x9b\x0b\x32\xf0\xa4\x35\x6a\x03\xf1\x68\x7e\xae\x58\xb9\x84\xf1\x94\xab\xf6\x72\x0b\xf1\x3e\x6e\x3f\xf7\x39\x33\x8a\xc4\x8f\x03\x20\x9a\x6b\x76\x8f\x2a\xd7\x6d\xf5\xc8\x80\x97\x72\xd8\xaa\x87\x57\x1f\xc9\xea\x23\x07\xa0\x99\x8f\x4d\x03\x50\x2f\x28\x13\x3d\xbd\x67\x75\x0d\x6e\x17\x40\xc8\xf6\x2a\x8e\x8b\x75\x13\xd3\x12\x06\xae\x22\x77\x5f\xd7\x11\x79\xf7\x78\xa2\x72\x24\x55\xe6\xe0\xe0\x12\xf9\x49\x9f\x07\x2e\x64\xce\x8d\x80\x79\x52\x1e\x67\x1c\xbd\x62\x91\x07\x7c\xa8\x53\x69\x64\x03\xc8\x11\xdb\xbe\xb6\x61\x55\xa6\x08\xaf\x1d\xbe\xd6\x17\x78\x3e\xcc\x96\x31\xbe\x6e\xc1\x2f\xc4\x42\xff\x83\xbe\x1f\x91\xaf\xdb\x61\x33\xa2\x36\x1a\x55\xdb\x02\x39\x66\x2d\xf6\xbd\x36\x18\xe2\x32\x71\xc0\x85\xbe\x08\xac\xa4\x71\x81\x90\x97\x56\xad\x25\x4d\x6b\xa9\x8f\xf3\x15\x74\x54\x1a\x1d\xe0\x16\xf8\xa9\x0f\xda\x08\xd9\x80\x0e\xe0\x00\xbf\xa9\x47\x4f\xdc\x35\x4c\x53\x33\x95\x56\x47\x07\xde\xd2\x6e\x87\xeb\x76\x72\xc1\x07\x07\x52\x00\x13\xb7\x0b\x29\x7a\x88\x94\x4c\xf6\x77\x10\x08\x47\x71\x6e\xc9\x71\x92\x16\xe8\x0a\x2d\x14\x98\x0e\xb3\x25\xb4\x16\x9b\xe5\x38\x2e\xa8\x36\x72\x9c\xc1\xaf\x25\xbf\x15\x5a\x7e\x53\xd2\x9b\x48\xe7\x28\x11\x04\x97\x70\xaa\xe1\x04\xb7\x11\x99\x10\x25\xcb\x72\x99\x59\x25\xc1\x10\xf8\x89\x0f\xe2\xbf\x84\xb7\x5b\x1b\x6f\xb2\x3b\xe2\xad\x8f\x0a\xb6\x52\xde\x52\x79\x55\xe6\x58\x61\xd5\x76\xa8\x6e\x6d\x4a\x35\x29\x2d\x16\xdc\xf2\x9e\x13\x8e\x73\xd2\x15\x5e\x55\xcf\x0a\x87\xc3\xe4\x00\xbf\x82\x0b\x8b\xdf\xb9\xee\x1f\xd2\x7e\x26\x50\xcf\x69\x79\x0e\x17\x1b\xb9\xa3\xe4\xb6\x54\xdd\xae\xe4\xc9\xeb\x8e\x44\xca\x30\x88\x07\xb6\x13\x61\xa8\x84\x34\xd8\x18\x02\x3a\x3b\x97\x08\x7c\xdd\x0f\x01\xe7\xe5\x4b\x45\x41\x07\xf8\x69\xb4\x6e\x43\x0a\x63\x9c\x1a\x45\x2a\x3c\x84\x03\xd0\xe1\x79\x75\x33\x87\x30\x92\x82\x95\x0f\x4e\x81\xc6\x57\x6a\x63\xa1\x11\x91\x8c\x64\xf4\xeb\xca\x7d\x83\xc3\x58\x9e\x8d\x17\x3e\x95\x3a\x9b\xb8\xd4\xb8\xa5\xa7\x58\xd7\xf9\xac\x75\x10\x80\xfa\x96\x17\xaf\xb0\xde\x17\xe6\x92\xae\x30\x33\x65\x26\xaa\x80\xae\xab\xbc\x9a\x0a\xeb\x7a\x3d\x19\xc3\x20\x6a\x5f\x14\xcb\xe4\x45\xb1\x52\xf3\x63\xcd\x36\x48\x72\x5c\xf0\xb9\x44\x3c\x36\x2c\x62\x01\x6a\xe3\x19\x5a\x2e\x6d\x16\x2a\xbd\xb1\x5c\x5b\xba\x1c\x16\xb1\xac\x60\x21\xbd\xa9\x21\x92\x76\xa6\x62\xc5\xb2\xc4\x6c\x89\x4c\x3e\xe7\x33\x2c\x86\x34\x8e\xe1\x16\x5b\xd9\xf3\x31\x4f\x15\x64\x96\x06\xf8\xcf\xd6\x06\x8a\x63\xd9\x0f\x57\x1e\xe4\x7b\x6e\x2e\xbb\xe2\x44\x01\x7c\xe2\x03\x27\xab\x9c\x92\x4c\x8b\x4f\xd2\xbb\xe4\xf7\xaa\xcb\xd3\x9c\xbd\x9e\xf3\xb6\x22\x3a\x1f\xe3\xf9\x68\xc5\x48\x32\x46\xce\xe7\xab\x2c\xbd\x92\x8e\x29\x9f\x9d\x2a\x99\x10\xe7\xe2\xc6\x51\x4a\x40\x0f\xc0\x85\x70\x09\xf9\x8e\xe0\x19\xfa\x85\xe0\x2b\xf4\x8e\xe0\x29\xfa\x93\xe0\x6b\xf4\x3d\xc1\x67\xe8\x27\x82\x7f\x43\xff\x22\xf8\x23\xe9\xe5\x45\x32\x46\x84\xe9\xcf\x27\x79\x8e\x18\xc3\xb7\x9c\xca\xd6\xba\x68\xf0\x8e\xfc\x4e\x3c\xe5\xf4\x03\xb7\xa8\xd9\x85\xfc\x55\xf9\x89\xc8\x2d\x13\xd2\xf8\xa9\x58\xdc\x30\x6b\x9e\xa3\x56\xdc\xf0\x16\x80\x28\x5b\x20\x2e\x23\xc9\xa5\x8e\xa2\x40\x9c\x5f\xe2\x72\xcd\x80\xca\x75\x4c\x3c\xa7\x01\xc0\x62\x21\x67\x34\x65\xb8\x40\x19\xc3\xff\x24\x1e\xe0\x7d\x7f\x51\x24\x63\x80\x00\x87\x1f\x40\x54\xb6\x13\x9e\xe4\xb9\x4a\xe3\x5f\x10\x15\x4d\xf2\xb7\xf3\xe9\x0c\x20\xc0\xeb\x04\x10\x25\x0c\xdf\x72\xc5\x32\xfa\x8e\xa0\xd7\x62\xd3\x30\xfa\x85\xa0\xe7\x4f\xce\x5e\xbc\x7e\xf2\xfc\xd9\x87\xd7\x4f\xff\xf9\xec\xe5\x93\xe8\x1d\x41\xdf\xbf\x7e\x75\xae\x83\x7f\x12\xf4\xf4\xd5\xcf\x26\xf5\x7b\x82\xbe\x7d\xf6\xfc\xc9\xdb\x17\x6f\x74\xcc\x4f\x44\xba\xbb\xfc\x4b\xfe\x3e\xc9\xf3\x88\x30\x24\x86\x97\x31\xf4\xdb\x93\x97\x2f\x9e\x5d\x73\x16\x97\x15\x34\xe2\xfa\x95\x82\x3a\xca\x9a\x6f\x5e\xa6\x94\x41\x0e\x71\x54\xb0\xc5\x16\xe9\x59\xcd\xe2\xef\x39\xb3\x6b\x37\x8c\x7f\xe2\x71\x4b\xd0\xe3\x77\x3c\xd2\x82\x1f\xff\xc9\x23\x64\x6f\xf1\x2f\xfc\x5b\x6c\xf9\x7e\xc7\xbf\x5a\xb0\x61\x2a\x96\x08\x49\x60\x38\xd1\xeb\x05\x66\xfc\x8b\x77\x0c\xff\x8b\x20\x43\x42\x98\xf0\x68\x0d\x30\x2e\x74\x88\xf7\x06\x67\x76\x88\x67\x2e\x19\x5a\x7f\xb1\x32\x41\xe0\xc3\x07\x52\xbd\x2c\xc6\xf3\x9c\x00\x74\x2b\x6f\x4e\xee\x04\x0b\xb8\x80\x10\xd9\x16\xc1\x15\xae\x45\xae\x67\x45\xc9\xaa\x35\xfc\x6c\x2a\x6a\x1b\x10\xaf\x24\x7f\xcc\xb3\x92\x78\xa0\xd7\xdb\xe9\xf5\x76\xf2\xec\x62\x87\xaf\x01\xd3\x4c\xbe\x91\x09\xa3\x35\x1a\x85\x04\xd0\x75\xe5\x6f\x2f\x99\x8e\x07\xf2\xd3\x1b\xae\xaf\x26\x46\x04\x46\xc4\xe3\xa2\xee\x4b\x11\x03\x17\x9e\xd7\x82\x7c\x5e\x09\x9f\xa4\x2c\x65\x60\x8b\xa8\x11\x78\x59\x8c\x89\x07\xf8\xbc\x07\x96\x25\x5d\x4e\x41\xd2\x7a\x8a\x75\x34\xba\xf0\x3c\xe0\x0f\x01\x2b\xe7\x04\x20\x30\x49\xf2\x8a\x68\xdf\x1e\xe9\xba\x23\x1d\x7f\x68\x01\xe2\xde\xef\x45\x46\x3d\x00\x6b\x8f\xcb\x80\x10\x7e\x05\x10\xc8\x80\xb6\x69\xde\xb2\xe2\x23\xa1\xcd\xa4\xb7\xf6\x3f\x59\x6f\x46\xc8\x47\x0f\x0a\xa9\x47\x9e\x47\x1c\x8b\x65\x43\x07\xc4\x53\x6c\xff\x00\x72\xa7\x39\xc0\xbc\x40\x51\xd5\xf5\xce\xa8\x52\x9b\x80\xac\x57\xa9\xa7\x87\xd4\x73\x87\x3c\x83\x38\x56\xa4\x6d\x83\x4c\xc8\x03\x6f\x8a\x67\x74\xec\x41\x04\xd2\x62\x2a\x9e\x5f\x10\x1b\x5f\xbd\xa9\xb8\xe6\x70\xe7\xbd\xb7\xed\x0d\xdf\x6f\xc7\xf5\x68\xd4\x83\x8f\xb6\x07\x35\xf0\x86\xef\x81\x0a\x82\x01\xdc\x31\x4f\xee\xca\xd6\x80\x04\x32\xcf\x18\x29\x13\x2e\x2a\xf6\xac\xfb\x0b\x3c\x78\x4a\xf9\x42\xf2\xb4\xc8\x37\xc0\xb0\xbe\x92\xe6\x5b\x68\xde\xac\x57\x15\xb9\xa7\xcc\x3e\xaa\x3e\x1c\x20\xda\x9b\x25\x99\xb8\x91\x4a\x7e\xc9\x63\x46\x9d\x10\x99\xce\x74\xbb\xdd\x06\xde\x31\x99\xb4\xbb\x3a\xea\xf1\x7f\xef\xca\x50\x3d\xea\x8e\x2a\xbf\xc9\x31\x25\x2c\x01\x8b\xf6\x70\x8d\x6e\xeb\xd1\xa2\x1e\x0d\xeb\x51\x6c\x0d\xce\x2d\x47\xd4\x80\xaf\xe5\x39\x9f\x6e\x49\x56\x56\xbe\x1f\x81\xc5\x6a\x74\xb7\x1b\x81\x61\x2b\xfa\x45\x56\x31\xdf\x8f\xec\x60\xb7\x8b\x64\xe3\x72\xa0\x9a\x84\xd3\xc0\x75\x3b\xa5\xeb\x02\xc4\xab\x68\x06\x99\x92\x6b\xc6\xc7\x77\xa5\x90\x68\x73\x7d\xa9\x87\x0d\xed\x9a\x9a\x4d\x0e\xf9\x80\xa8\x19\x9b\x51\xf5\xc8\x1b\xd5\xf5\xe8\x14\x8e\xaa\x47\x66\x6c\x1c\x0b\xb9\x81\x55\xcf\x52\x39\xb7\x1e\x3d\x82\xc3\xa4\xfb\x67\xd0\x3d\x1a\xf5\x3e\x74\x63\x7f\x74\xb1\x63\x5e\xb8\x03\x9f\x92\x32\xe3\x32\x6b\xb7\x2f\x0a\x07\xd2\x29\xd4\xf4\x90\x13\xa2\x55\x5d\x57\xf8\xd1\x8d\x7a\x23\x14\xfb\xa3\x6a\xf0\x55\x83\x28\x2a\x1e\xb7\x5e\x3f\x44\x77\x55\xe1\x0d\xb0\x87\xea\x05\x84\x6b\xab\xd2\x25\x9b\x07\xaa\x3f\x92\x9b\xcf\x45\x39\x06\x5a\xac\x94\xa3\xb6\xd4\x86\x37\x88\xe4\x1b\x67\xb7\x0b\xf7\x51\xa7\x3e\xdd\x06\x5f\xff\xc7\x7f\x8b\x87\xef\x47\xd5\x36\x88\x62\xfd\x9c\xd9\xed\xe2\x1f\x56\x2a\x1c\xbe\xff\x47\xfc\x88\xc3\x33\xaa\x1e\x45\xde\x57\xf5\xa8\xe2\x40\x0d\x3c\x8d\x43\x8e\x4d\x85\xd8\xa5\xc9\x89\x40\xc2\x8a\x29\x80\xd1\x2a\x30\x91\xc0\xd8\xc0\x6b\xa1\x5f\x63\x0b\x46\xde\x12\x59\x34\x5c\x0a\x8c\x46\x9c\xa6\x1a\x42\x11\x1e\x59\x0b\x54\xf1\xac\xaf\x59\xeb\x65\x53\x2d\xcb\xdd\xf2\xba\xa2\x4e\x88\x4c\x9d\x3c\x20\x61\x8e\x02\x64\x61\xc5\x84\x38\xed\x47\x01\x52\x84\xc4\xb3\x2b\x00\xa2\x4e\xb8\x58\x2c\x16\xd2\xc0\x2e\x39\xfd\xd9\xcb\x67\x1e\x60\xe4\x9a\xed\x5c\x77\x25\xc3\x97\x7c\x9f\x2f\x71\x5b\xff\x37\x00\x00\xff\xff\xa8\xf9\x23\x3a\x77\xa0\x00\x00") - -func web_uiAssetsCodemirrorModeYamlYaml3f129a000349e3075be0f65719884b61JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsCodemirrorModeYamlYaml3f129a000349e3075be0f65719884b61Js, - "web_ui/assets/codemirror/mode/yaml/yaml-3f129a000349e3075be0f65719884b61.js", - ) -} - -func web_uiAssetsCodemirrorModeYamlYaml3f129a000349e3075be0f65719884b61Js() (*asset, error) { - bytes, err := web_uiAssetsCodemirrorModeYamlYaml3f129a000349e3075be0f65719884b61JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/codemirror/mode/yaml/yaml-3f129a000349e3075be0f65719884b61.js", size: 41079, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulAclsRoutes75a2ac7d38caf09cfee2a4e2bc49dcf7Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\xca\xb1\x8a\x02\x31\x10\x80\xe1\xfe\x9e\x62\x2f\x55\x02\x47\x1e\x20\x90\xb3\xb7\xd0\x62\x4b\x11\x89\xc9\xac\x0c\xee\x66\x42\x66\x02\x2e\x61\xdf\x5d\x16\xf1\xaf\xbe\xe2\xd7\x1a\xfe\xc4\x6b\xd5\x72\x82\x09\x33\x24\xf5\xeb\x65\x2d\x40\xd3\x90\x28\xb6\x05\xb2\x1c\xbe\xb0\xb1\xd5\x0a\x59\xc6\x58\xb1\x88\x4d\x41\x02\x83\xb8\x85\x52\x9b\xc1\xc2\xab\x50\x15\x36\xc6\xff\x77\xb1\x95\x9a\x00\xfb\xe3\x78\x3e\x59\x96\x8a\xf9\x81\xd3\xaa\xc1\x6c\x46\xf7\x14\x5d\x0f\x71\x66\xd7\x85\x9e\x90\xd9\xf5\x1b\x15\x41\xda\x15\xee\x38\xa3\x20\xb0\xbb\xa8\x0a\x21\x0d\x9f\x45\x5d\xb7\x3d\xf3\xf3\x0e\x00\x00\xff\xff\x79\xde\x72\x20\xb0\x00\x00\x00") - -func web_uiAssetsConsulAclsRoutes75a2ac7d38caf09cfee2a4e2bc49dcf7JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulAclsRoutes75a2ac7d38caf09cfee2a4e2bc49dcf7Js, - "web_ui/assets/consul-acls/routes-75a2ac7d38caf09cfee2a4e2bc49dcf7.js", - ) -} - -func web_uiAssetsConsulAclsRoutes75a2ac7d38caf09cfee2a4e2bc49dcf7Js() (*asset, error) { - bytes, err := web_uiAssetsConsulAclsRoutes75a2ac7d38caf09cfee2a4e2bc49dcf7JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-acls/routes-75a2ac7d38caf09cfee2a4e2bc49dcf7.js", size: 176, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulAclsServices8b6b2b2bea3add7709b8075a5ed5652bJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\xc6\x31\x0a\xc2\x30\x14\x06\xe0\xdd\x53\x68\xa7\x04\x24\x07\x10\xa2\xbb\x83\x0e\x3d\x41\x49\xfe\x4a\xc0\xbe\x84\xf7\xfe\x88\xa5\xf4\xee\x4e\x6e\x9f\x73\x38\x33\xba\xa1\x4b\xc6\x5c\x04\x79\x38\x45\xae\x0d\x75\x3e\xe6\x9a\xfa\x02\xe1\xed\x8f\x90\xba\x2a\x84\x63\xd2\xd2\x18\xf2\xc4\xc9\xc0\xcb\x52\x73\x7f\x23\xe0\xdb\xaa\xd2\xbc\x8f\xd7\x8d\xc1\xa0\x9f\x92\x60\xf1\x3e\x3e\x1f\xc1\xa8\x45\x5e\x65\x5e\x1d\xfc\xee\xdd\xb6\xfb\xc3\x2f\x00\x00\xff\xff\x04\xfb\x62\x34\x79\x00\x00\x00") - -func web_uiAssetsConsulAclsServices8b6b2b2bea3add7709b8075a5ed5652bJsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulAclsServices8b6b2b2bea3add7709b8075a5ed5652bJs, - "web_ui/assets/consul-acls/services-8b6b2b2bea3add7709b8075a5ed5652b.js", - ) -} - -func web_uiAssetsConsulAclsServices8b6b2b2bea3add7709b8075a5ed5652bJs() (*asset, error) { - bytes, err := web_uiAssetsConsulAclsServices8b6b2b2bea3add7709b8075a5ed5652bJsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-acls/services-8b6b2b2bea3add7709b8075a5ed5652b.js", size: 121, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulNspacesRoutesF939ed42e9b83f9d1bbc5256be68e77cJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\xc1\x8a\xdb\x30\x10\x86\xef\x7d\x8a\x64\x4e\x36\x08\xa7\x67\x81\x5b\x28\x3d\xf5\x90\x86\xcd\x31\x84\x45\x2b\xfd\xde\x08\x6c\x49\x3b\x1a\x43\x8c\xd1\xbb\x2f\x5e\x67\x21\x81\xe8\x22\xf1\x69\xbe\x61\xe6\xaf\x2a\x28\x69\x2b\x1a\x83\x43\xe7\x03\x1c\x6d\x5b\x99\x12\x62\xb7\x71\xd1\x8e\x03\x82\xfc\xfe\x7e\x34\x76\x64\x46\x90\xa3\x65\x9f\xa4\x71\x46\x4c\x86\xe8\x21\xba\xb1\x47\x83\x6b\x8a\x2c\xb9\xae\xdb\x5f\xb3\x34\x1c\x47\x41\x6e\xff\x1d\xff\xef\x9b\x2c\xec\xc3\xbb\xef\xa6\x0a\x75\xa9\xab\xd9\x59\x3d\x87\x9c\x8c\x45\xd6\xf3\x6b\x4c\xe2\x63\xc8\x7a\x4e\x46\x2e\x9a\x76\xc1\x0c\x58\x3f\x49\x99\x37\xdf\x7b\xf1\xc8\xfa\x44\x0c\xe3\x36\x37\x8d\xce\x45\xf9\xe0\x70\x7d\xe2\x93\xfa\x18\xc1\xd3\xc1\xb0\x19\xb2\x9e\x73\x64\xf9\x33\x69\x5a\x6e\x52\x19\x86\xed\x25\x71\x4c\x60\x99\xf4\x6c\xb2\xa6\x47\x46\x0a\x43\x92\x49\x9f\x4e\xb4\x37\x03\x48\xd1\x5f\xe4\xaf\x85\x7d\x0c\xa4\xe8\x25\xf6\x0b\x3c\xc4\xde\xdb\x89\xce\xe7\x72\xeb\xb9\xf6\xea\x7c\x2f\x60\x52\x8c\xd4\x1b\x0b\xbd\xfd\x59\x4a\x29\x0a\xce\xcb\x93\x51\xf5\xb2\x2b\x95\xa2\x2c\xc3\x08\xee\x2b\x04\x43\xea\x17\x46\x4d\xb3\x5b\x74\x52\x37\x69\xad\x7d\xcc\x66\x65\x77\xe9\x2c\xa7\xfe\xf1\x19\x00\x00\xff\xff\x08\x5a\x9e\xe0\xdd\x01\x00\x00") - -func web_uiAssetsConsulNspacesRoutesF939ed42e9b83f9d1bbc5256be68e77cJsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulNspacesRoutesF939ed42e9b83f9d1bbc5256be68e77cJs, - "web_ui/assets/consul-nspaces/routes-f939ed42e9b83f9d1bbc5256be68e77c.js", - ) -} - -func web_uiAssetsConsulNspacesRoutesF939ed42e9b83f9d1bbc5256be68e77cJs() (*asset, error) { - bytes, err := web_uiAssetsConsulNspacesRoutesF939ed42e9b83f9d1bbc5256be68e77cJsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-nspaces/routes-f939ed42e9b83f9d1bbc5256be68e77c.js", size: 477, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulNspacesServices8b6b2b2bea3add7709b8075a5ed5652bJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\xc6\x31\x0a\xc2\x30\x14\x06\xe0\xdd\x53\x68\xa7\x04\x24\x07\x10\xa2\xbb\x83\x0e\x3d\x41\x49\xfe\x4a\xc0\xbe\x84\xf7\xfe\x88\xa5\xf4\xee\x4e\x6e\x9f\x73\x38\x33\xba\xa1\x4b\xc6\x5c\x04\x79\x38\x45\xae\x0d\x75\x3e\xe6\x9a\xfa\x02\xe1\xed\x8f\x90\xba\x2a\x84\x63\xd2\xd2\x18\xf2\xc4\xc9\xc0\xcb\x52\x73\x7f\x23\xe0\xdb\xaa\xd2\xbc\x8f\xd7\x8d\xc1\xa0\x9f\x92\x60\xf1\x3e\x3e\x1f\xc1\xa8\x45\x5e\x65\x5e\x1d\xfc\xee\xdd\xb6\xfb\xc3\x2f\x00\x00\xff\xff\x04\xfb\x62\x34\x79\x00\x00\x00") - -func web_uiAssetsConsulNspacesServices8b6b2b2bea3add7709b8075a5ed5652bJsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulNspacesServices8b6b2b2bea3add7709b8075a5ed5652bJs, - "web_ui/assets/consul-nspaces/services-8b6b2b2bea3add7709b8075a5ed5652b.js", - ) -} - -func web_uiAssetsConsulNspacesServices8b6b2b2bea3add7709b8075a5ed5652bJs() (*asset, error) { - bytes, err := web_uiAssetsConsulNspacesServices8b6b2b2bea3add7709b8075a5ed5652bJsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-nspaces/services-8b6b2b2bea3add7709b8075a5ed5652b.js", size: 121, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulPartitionsRoutesCba490481425519435d142c743bbc3d3Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x50\xbd\x6a\xf3\x30\x14\xdd\xbf\xa7\x48\xee\x64\x83\x70\xbe\x59\xe0\x16\x4a\xa7\x0e\x69\x21\x63\x08\x45\x95\x8e\x1b\x81\x2d\xa9\x57\xd7\x10\x63\xf4\xee\xc5\x4d\x4a\x13\x88\x16\x1d\xce\x1f\xd2\xa9\x2a\x51\x68\x2b\x1a\x83\x43\xe7\x03\x1c\xad\x5b\x99\x12\x62\xb7\x72\xd1\x8e\x03\x82\x3c\xfe\x82\xc6\x8e\xcc\x08\xb2\xb3\xec\x93\x34\xce\x88\xc9\x10\x3d\x44\x37\xf6\x68\x70\x4a\x91\x25\xd7\x75\xfb\x30\xa3\xe1\x38\x0a\x72\xfb\xb2\x7b\xdd\x36\x59\xd8\x87\x4f\xdf\x4d\x95\xd4\xa5\xae\x66\x67\xf5\x9c\x0c\x8b\x17\x1f\x43\xd6\xf3\x7b\x4c\x17\x94\x8c\x1c\x35\x6d\xfe\x44\x52\xe6\xc3\xf7\x5e\x3c\xb2\xde\x13\xc3\xb8\xd5\x95\x78\x28\xca\x07\x87\xd3\x9d\x0a\x52\x5f\x23\x78\x7a\x33\x6c\x86\xac\xe7\x1c\x59\x9e\x26\x4d\xcb\x4d\x2a\xc3\xb0\x3d\x26\x8e\x09\x2c\x93\x9e\x4d\xd6\x74\xcb\x91\xc2\x90\x64\xd2\xfb\x3d\x6d\xcd\x00\x52\xf4\x8c\xfc\xf3\x6d\x1f\x03\x1d\x0e\xe5\xd2\x71\xce\x76\xbe\x17\x30\x29\x46\xea\x8d\x85\x5e\xff\x2f\xa5\x14\x05\xe7\xe5\xce\xd3\x74\x58\x1a\x4b\x51\x96\x61\x04\xd7\x0e\xc1\x90\xfa\x85\xa3\xa6\xd9\x2c\x71\x52\x97\xd0\xd9\x7b\x3b\xc7\x99\xbb\x1d\x64\x39\xf5\xbf\xef\x00\x00\x00\xff\xff\x83\x8b\x62\x16\xd6\x01\x00\x00") - -func web_uiAssetsConsulPartitionsRoutesCba490481425519435d142c743bbc3d3JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulPartitionsRoutesCba490481425519435d142c743bbc3d3Js, - "web_ui/assets/consul-partitions/routes-cba490481425519435d142c743bbc3d3.js", - ) -} - -func web_uiAssetsConsulPartitionsRoutesCba490481425519435d142c743bbc3d3Js() (*asset, error) { - bytes, err := web_uiAssetsConsulPartitionsRoutesCba490481425519435d142c743bbc3d3JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-partitions/routes-cba490481425519435d142c743bbc3d3.js", size: 470, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulPartitionsServices85621f245f195fe1ce177064bfb04504Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\xcb\x31\x4e\xc6\x30\x0c\x40\xe1\x9d\x53\x40\xa6\x44\x82\x74\xaf\x14\xd8\x19\x60\xf8\x4f\x10\x39\x2e\xb2\x94\xda\x91\xed\x20\xaa\xaa\x77\x67\x40\xb0\xb1\xbd\xe1\x7d\x31\xe2\xa3\x97\x18\x26\x37\xdc\x88\xb1\x85\x87\xe2\xc7\x40\xd9\xee\x9b\xc0\xdc\x91\xfd\xe5\x37\x32\x4c\x55\x64\xbf\x81\xd2\xf0\xdc\xaa\x57\x43\x5f\x77\x69\xb3\x63\xc6\xaf\x21\xea\x96\x52\x79\x3e\x3d\x1b\xea\x27\x01\x5a\x79\xbd\xbd\xbf\x65\x73\x25\xfe\xa0\xed\x88\x98\xae\x14\xcf\x00\xb2\x0f\x61\x64\x5f\x41\xd8\x66\x5f\x46\x55\x27\x27\xe1\xc5\xb0\x23\xb8\x68\x58\x4f\xe8\xd5\x6c\x0d\x3f\xcb\xd3\xa4\xe5\x8f\xd9\xf2\xbf\xbb\xae\x74\xf7\x1d\x00\x00\xff\xff\xda\xe8\x51\xaf\xd7\x00\x00\x00") - -func web_uiAssetsConsulPartitionsServices85621f245f195fe1ce177064bfb04504JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulPartitionsServices85621f245f195fe1ce177064bfb04504Js, - "web_ui/assets/consul-partitions/services-85621f245f195fe1ce177064bfb04504.js", - ) -} - -func web_uiAssetsConsulPartitionsServices85621f245f195fe1ce177064bfb04504Js() (*asset, error) { - bytes, err := web_uiAssetsConsulPartitionsServices85621f245f195fe1ce177064bfb04504JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-partitions/services-85621f245f195fe1ce177064bfb04504.js", size: 215, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulUiRoutes7726cc49168b83dcd93c923c97ebe93dJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x57\x4b\x8f\xe3\x36\x0c\xbe\xf7\x57\xcc\xf2\x34\x59\xd8\x49\xcf\x02\xa6\x45\xb7\x7b\x69\xd1\xce\x2e\x30\xbd\x0d\x82\x85\x56\x62\x12\x21\x8e\xe4\x4a\xf4\x74\x82\xc0\xff\xbd\xa0\x64\xe7\xb1\xa3\x38\xc9\x3c\xfa\xb8\xc4\x8e\x3e\x92\x22\x29\xf2\x13\x7d\x7d\x4d\x05\xde\x5c\x43\x63\x35\xce\x8c\x45\x0d\xef\x6e\x68\x5d\xa3\x9b\x5d\x69\xa7\x9a\x15\x5a\xfa\xb1\x7f\x19\xab\xc6\x7b\xb4\x74\xa7\xbc\xa9\x69\xac\x25\xc9\x80\x24\x56\x4e\x37\x15\x8e\xf1\xb1\x76\x9e\xc2\x68\x74\xf3\xc3\x06\xc7\xde\x35\x84\xe1\xe6\xd7\xbb\x4f\xb7\xe3\x40\xde\xd8\xb9\x99\xad\xaf\x69\xd4\x8e\xae\x37\x5a\x89\xcd\x17\x57\x93\x71\x36\x88\x4d\x2d\x69\x21\x60\x22\xb4\x82\xb6\x30\x56\xe3\x63\x06\x85\xc2\xa3\x36\x1e\x15\x09\x18\x8f\x27\x01\xfd\x83\x51\x18\xa0\x6d\x8b\xfe\x3d\xa3\xb5\x13\x1b\x30\xfc\x67\x83\x7e\xfd\x59\x7a\xb9\x0a\x62\x13\x9c\xa7\x0f\x6b\x01\xfc\x84\x22\x90\xa4\x26\x08\x48\x4f\x28\x82\x6b\xbc\x42\x46\xf9\x09\xc5\xd2\x58\x2d\x80\x7f\xa1\x08\x28\xbd\x5a\xd4\xde\xd5\xe8\x69\x2d\x36\x92\xf5\x0e\xd6\xa0\xc0\x55\x4d\x6b\x71\x7f\x0f\xb7\x72\x85\x50\xc0\x1f\x72\x1e\x60\x3a\x6d\x3b\xe5\xa4\x34\x33\x15\xa1\xe7\x80\xeb\x4a\x2a\x14\xef\xbe\x6f\x5b\x0e\x73\xe1\xfe\xca\xa5\xcd\xb2\x29\x8e\x2f\x90\xb4\xf9\x34\x6c\xb1\x17\x05\xfb\x9c\x00\x6f\x9d\xde\xc6\x59\xc0\x2f\x1f\xa1\x80\x9f\xb4\xf6\x18\xf8\xef\xe7\xb8\x2d\xdc\xa5\x43\x1a\xff\x8e\x24\x3b\x95\xf4\x7e\x66\x62\x8c\x25\xb4\x5d\xc0\x99\xd0\x7b\xf0\x78\x0d\x0c\x66\x45\x2a\x85\x21\x08\x48\xcf\x0b\xb3\x70\x17\x53\xd7\xe5\xe2\x23\x06\x32\x56\xf2\xd6\x71\xe5\xcc\xf0\x50\x1b\xca\x9d\xfb\x36\xb2\x2f\x46\x73\x1b\x28\x8f\x92\x70\x5f\x92\x70\x55\x57\xbc\xc6\x1d\xc3\x66\xa0\xe8\x94\x93\x2c\xb0\x79\x72\xb5\xab\xdc\x7c\x9d\xd9\xa2\x87\xce\x6d\xb2\xa1\x34\xf6\x25\x28\xa0\x7f\x7b\xfb\x8e\x69\xea\x40\x1e\xa3\x33\x4f\x9c\xde\x62\xff\x39\xaf\x99\x38\x8d\x9d\x67\x7c\xee\x10\x3e\x0e\x92\xf3\x5c\x54\xbc\x0c\xa9\x27\x3a\xc7\x8f\x10\xc6\x8e\x12\x26\xc2\x3a\x8d\x13\x61\xf4\x01\xc5\x4e\x16\x28\x2b\x5a\xa8\x05\xaa\x25\xb7\xce\xfe\xdf\x8c\xd1\x04\x97\x9d\xf8\x25\x2c\x13\x55\x04\xc4\xc7\x8b\x38\xe6\x67\xb6\x10\x19\xe6\xd6\x11\x57\x23\x7c\x6a\xa8\x6e\xf6\x18\xe6\x9f\xad\x9d\x13\x9b\x5c\x16\xea\xb7\xdc\x51\xc0\x6f\x4e\xc9\xea\x83\xb1\x7a\xc7\xa7\xdb\xa5\x48\xac\xd3\x69\xa2\x8f\xc7\xda\x05\xd4\xec\x7a\x2e\x96\x0e\x2e\x23\xce\x95\x25\x93\xb9\x6c\xa7\x6f\x31\x16\x5c\x21\x49\x9e\x00\x32\x72\x3d\x14\x4b\xd1\x3a\x9a\xb9\xc6\xea\xa3\xa5\xb8\x2b\xc0\x24\xae\xb3\x7b\xc7\xf5\x67\x72\xf8\x93\x9b\xed\xa2\x2a\x4b\xe5\xb5\x4b\xf3\x25\x77\xd3\x89\x4b\xfb\xcd\xba\x6a\x7f\x30\x79\x79\x87\x75\xfd\xf3\xea\x4d\x76\xfa\x52\x29\xff\xbd\xd1\xe5\xfc\x99\xe5\x5c\x62\xa7\xdc\x3d\xee\xb9\x37\x4a\xf2\xa6\x2e\xc9\x70\x51\xb0\xad\x10\x8e\x8c\x33\x95\x53\xcb\xb2\xc7\x2f\xe8\xc2\x57\x98\x92\x86\x27\xe5\xff\xc7\x98\x54\xc8\xaf\xa6\x32\x64\x30\x88\x7b\xf0\x28\xf5\xd5\x5e\xe4\xd3\xe7\x0d\x51\x07\x36\xd3\xda\x37\x56\xdb\x62\xf9\x90\x71\x6d\xf9\xf0\xdc\x64\x3f\xfd\xec\x18\x4c\xcd\xcc\x55\x1a\xfd\xd1\xa0\xa2\x0b\xdb\xa8\xde\x2f\x31\x0e\x7c\x47\xf2\xc9\x70\x4a\xc3\x85\xd9\x8a\x8a\x03\x29\x5b\x3e\xa4\x13\x00\xef\x1c\x95\x9d\xe0\x8b\x0f\xa2\xb3\xda\x16\x52\x55\xd9\x1b\x4d\x55\xe1\x50\x31\x15\xf0\x55\x04\xa6\x6d\x51\xbb\xca\x28\x93\xa5\xa8\x1e\xca\x54\xd5\x16\x9a\x0e\x14\xe6\x91\xa9\xfd\x74\x50\x7b\xd6\xe3\xbc\x58\x65\xdd\x8b\xeb\x19\xdf\xd2\xfa\x9b\x38\xd6\x9b\x8e\x9f\x15\x4b\xcc\x52\x4d\x02\x06\x73\xfe\xfa\x8e\x75\x9b\x46\xcf\x40\x36\xb4\x28\x57\x48\x0b\xa7\x03\xe4\x6a\x62\x1f\x7f\x9a\xbf\x03\x78\x7a\xfc\x8a\x67\x6f\x0f\x36\x3b\xb1\x17\xc7\x06\x5f\x8d\xd5\xc6\xce\x4b\xdf\x70\x26\x33\x0a\x87\x02\xac\x62\x43\x2d\x15\x1e\xd7\x38\xc0\xdb\x48\x08\xd0\x7d\x49\x94\xca\xd9\x99\x99\xe7\xb4\x0e\x25\xfa\x81\xa5\x1d\x20\xac\x78\x71\x11\x2b\xe5\xef\x73\xea\xbf\x5d\x06\x06\xc2\xf7\x3d\xc6\x5b\x8d\xbe\xfb\x3b\x00\x00\xff\xff\x32\x1b\x83\x1f\x9c\x12\x00\x00") - -func web_uiAssetsConsulUiRoutes7726cc49168b83dcd93c923c97ebe93dJsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulUiRoutes7726cc49168b83dcd93c923c97ebe93dJs, - "web_ui/assets/consul-ui/routes-7726cc49168b83dcd93c923c97ebe93d.js", - ) -} - -func web_uiAssetsConsulUiRoutes7726cc49168b83dcd93c923c97ebe93dJs() (*asset, error) { - bytes, err := web_uiAssetsConsulUiRoutes7726cc49168b83dcd93c923c97ebe93dJsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-ui/routes-7726cc49168b83dcd93c923c97ebe93d.js", size: 4764, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulUiRoutesDebug8f884a3e3f7105d43b7b4024db9b4c99Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8f\xb1\x4a\x35\x31\x14\x84\xfb\xff\x29\x7e\x53\x25\xb0\x37\xf6\x81\xd5\xde\x42\x85\xfb\x00\x4b\x4c\x66\xef\x0d\xb8\x39\xf1\xe4\x44\x5c\x42\xde\x5d\x56\x10\x6e\x61\x35\xf3\xcd\x4c\x33\x5a\x63\xe2\x59\xab\x96\x23\xd6\x94\x11\xd5\xdd\x2c\x7b\x01\xad\xff\x23\x85\xb6\x21\xcb\xe3\xaf\xb1\xa1\x31\x23\xcb\x39\x70\x2a\x62\xa3\x17\x5f\x21\x6e\xa3\xd8\xde\x61\xf1\x55\x88\xa5\x1a\x33\x3f\x74\xb6\x4c\x4d\x50\xe7\xa7\xf3\xcb\xb3\xad\xc2\x29\x5f\xd2\xba\x6b\x98\x61\x74\x57\xe4\x9b\x5c\x4f\x85\xe9\x33\x45\xf0\x29\xe2\xad\x5d\x94\xeb\x0b\x15\x49\x94\xab\xeb\xc5\xcb\xd5\xa9\xfb\x3f\x77\xd3\x47\x03\xef\xaf\x9e\xfd\x56\x5d\x67\xc4\xc4\x08\xb2\x34\x4e\x4e\xdd\x92\x9a\x18\xb5\x50\xae\x58\x8e\x43\x47\x79\x83\x6a\xaa\x81\x8e\xf4\x47\xd4\x18\x63\x98\x7f\xdf\x01\x00\x00\xff\xff\x40\xb4\x4e\x1f\x0d\x01\x00\x00") - -func web_uiAssetsConsulUiRoutesDebug8f884a3e3f7105d43b7b4024db9b4c99JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulUiRoutesDebug8f884a3e3f7105d43b7b4024db9b4c99Js, - "web_ui/assets/consul-ui/routes-debug-8f884a3e3f7105d43b7b4024db9b4c99.js", - ) -} - -func web_uiAssetsConsulUiRoutesDebug8f884a3e3f7105d43b7b4024db9b4c99Js() (*asset, error) { - bytes, err := web_uiAssetsConsulUiRoutesDebug8f884a3e3f7105d43b7b4024db9b4c99JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-ui/routes-debug-8f884a3e3f7105d43b7b4024db9b4c99.js", size: 269, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulUiServicesA17470cdfbd4a4096117ac0103802226Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x8d\xc1\x4e\xeb\x30\x10\x45\xf7\xef\x2b\x1e\x5e\x25\x52\x93\x08\x56\xc8\x52\x80\x35\x0b\x58\xf4\x0b\x8c\x3d\x6d\x47\x4a\x66\xac\x99\x71\xa1\xaa\xf2\xef\x28\x2d\x0d\x20\xa1\xae\xec\xd1\xbd\xe7\x9e\xaa\x82\x95\xf6\x95\x2b\x94\x60\x83\x04\xc9\xdd\xf4\x76\xc8\xc0\x9b\xff\x89\x63\x19\x81\xec\xf1\xf2\x69\x63\x11\x01\xb2\x75\x14\xcc\xd6\xa6\x60\x41\xc1\xfc\xc8\xa9\x0c\xd0\xc2\x47\x66\x31\xad\xeb\xfe\xe1\xa8\xad\x82\xec\x31\x82\xf6\xcf\xeb\xd7\x97\x56\x4d\x90\xb6\xb8\x39\x54\x50\x4f\x75\x75\x74\xc2\xc5\xc0\xbf\x05\xc5\xe8\xfc\x31\x0e\x41\xd5\xbb\xc8\xa4\x65\x68\x0a\x76\x73\x8c\xb4\x3d\xbd\xe0\xa6\x95\xfb\x9a\xf3\x48\x36\xfc\x05\x5c\x74\x1d\xde\xde\xd3\x4f\x40\x2d\x18\x5c\x25\x4e\x8d\xe6\x1d\x6d\xd7\xc4\x5d\x10\xd3\x19\x0f\xc5\x76\x4d\x16\xde\x63\x02\xf1\x8c\x29\x9e\x1b\x45\xae\xeb\x7f\x71\xda\xf1\x7c\xdf\x35\x91\x13\x2c\xfc\x12\xcf\x9e\xc8\x63\x66\x02\x32\x7f\x1e\xeb\x72\x10\x43\x43\xa6\x4e\x61\x80\x68\x2c\xdf\xbe\xa7\xed\x80\xe3\x08\xd2\x2d\x94\x9b\xa6\xfa\xdf\x67\x00\x00\x00\xff\xff\x07\x44\x38\x12\xc3\x01\x00\x00") - -func web_uiAssetsConsulUiServicesA17470cdfbd4a4096117ac0103802226JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulUiServicesA17470cdfbd4a4096117ac0103802226Js, - "web_ui/assets/consul-ui/services-a17470cdfbd4a4096117ac0103802226.js", - ) -} - -func web_uiAssetsConsulUiServicesA17470cdfbd4a4096117ac0103802226Js() (*asset, error) { - bytes, err := web_uiAssetsConsulUiServicesA17470cdfbd4a4096117ac0103802226JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-ui/services-a17470cdfbd4a4096117ac0103802226.js", size: 451, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulUiServicesDebug5a3f1d2e3954a05aa8383f02db31b8e6Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8e\xb1\x4a\x04\x31\x10\x86\x7b\x9f\x42\x53\x25\x70\x97\xc5\x4e\x02\xd1\xde\x42\x8b\x7b\x82\x98\xcc\x2e\x03\xb9\x49\xc8\xcc\x88\xcb\xb2\xef\x2e\x82\x2b\x16\xd7\xfd\xc5\xf7\xf1\x7f\xd6\xc2\x09\xa3\x35\x4a\x05\x66\x24\x28\xe6\x21\xca\xda\xa1\xcd\xf7\xa5\x65\xbd\x02\xc9\xcb\x31\x7c\xd6\x31\x80\xe4\x92\x07\x76\xf1\x25\x49\x62\x90\x70\x6d\x45\x2b\x78\xf8\xea\x6d\x08\x3b\x17\x9f\x37\xf4\x0c\xe3\x13\x33\x70\x7c\xbd\xbc\xbf\x79\x96\x81\xb4\xe0\xbc\x5a\x70\xbb\xb3\x9b\x19\x4d\x05\x42\xea\xbd\x62\x4e\x82\x8d\x4c\xd8\x72\x4d\xcc\xc1\xe4\x46\xac\xf5\xac\x38\xfd\x40\x48\xcb\xf4\x0f\x3b\x17\xf8\xd0\xc5\xec\x27\xf3\x7b\x10\x90\xa4\xde\x92\x8f\x80\x09\x1f\x9f\xfe\xb4\xdd\xdd\x7d\x07\x00\x00\xff\xff\xed\x8b\xd6\xb0\xf1\x00\x00\x00") - -func web_uiAssetsConsulUiServicesDebug5a3f1d2e3954a05aa8383f02db31b8e6JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulUiServicesDebug5a3f1d2e3954a05aa8383f02db31b8e6Js, - "web_ui/assets/consul-ui/services-debug-5a3f1d2e3954a05aa8383f02db31b8e6.js", - ) -} - -func web_uiAssetsConsulUiServicesDebug5a3f1d2e3954a05aa8383f02db31b8e6Js() (*asset, error) { - bytes, err := web_uiAssetsConsulUiServicesDebug5a3f1d2e3954a05aa8383f02db31b8e6JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-ui/services-debug-5a3f1d2e3954a05aa8383f02db31b8e6.js", size: 241, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulUi1931ddc38430fffd3fdb3a7ec5b01c18Css = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x6f\x1c\x47\x92\x28\x8a\x7f\x95\x04\x8d\xc1\x5a\x33\xcc\x70\xbe\x1f\x94\x25\x1c\x8d\x76\x0d\xfd\x00\xf9\x77\x81\xbb\x67\xfd\xcf\x40\xf7\xa2\xd8\x5d\x64\xf7\xa8\xd8\xd5\xa7\xbb\x49\x49\xd4\xe1\xf9\xec\x17\x11\x59\xd5\x5d\xaf\x7e\x92\x1a\xcb\x5e\xc2\x66\x89\xcc\x8c\x8c\x7c\x47\x46\x44\x46\x44\xfe\x8f\xd1\x24\x5b\x2c\xf3\x15\x3b\xfb\xaf\xff\xf9\x0b\x0f\x67\x2f\x7f\x28\xca\xeb\xe9\x8c\xaf\xca\xeb\xeb\x22\xff\xdb\x78\x7a\xc7\xae\xca\x72\x95\x2f\xd8\xe5\xed\x6a\x55\xce\xce\x61\x54\xce\x96\xb7\x05\x9f\xce\x56\xf9\x6c\x35\x2d\x67\xfc\x6a\x9a\x17\xe3\x65\xbe\x5a\x32\x98\xe7\x8b\x9b\xe9\x72\x39\x2d\x67\xcb\xd7\x35\x7c\x7e\x33\x5f\x7d\xe1\xcb\x55\xb6\xca\x5f\xdf\x16\xaf\x8b\xe9\xeb\xbf\x0e\x25\x5e\x64\xa3\xd5\xf4\x2e\x1f\xca\x2a\xb2\xcb\xbc\xd8\x81\xaf\x99\xbf\x46\x73\x53\x8e\xb3\x82\x8f\xa7\x59\x51\x5e\xb3\x7f\x2c\xca\x22\x7f\x35\x2e\x47\xb7\x37\xf9\x6c\xf5\x81\x8d\xc7\x2c\xdb\x03\x32\x47\x88\x72\x3a\x1e\xf1\x65\x5e\xe4\xa3\x55\xd5\x7f\x58\xe4\xcb\x7c\x75\x0e\xcb\x3c\x5b\x8c\x26\xfc\x32\x5b\x50\x53\x6e\x97\x0c\x16\xf9\x4d\x79\x97\xf3\xac\x28\xea\xb1\xca\xce\xa9\x69\xb0\xfa\x32\xcf\xab\x7a\xfa\x29\x75\x8b\x6f\xb2\xe9\x2c\x35\x6c\xfd\x5b\x2b\x6b\x5e\xe7\xcc\xd7\x19\x5f\x57\xf9\xe7\x15\x1f\xe7\xa3\x72\x91\xe1\x54\x5c\xcc\xca\x59\xfe\x50\xcf\xc7\xf9\x64\xf1\xf5\xb2\x5c\x8c\xf3\x45\x4a\xcf\x16\xab\xe9\xa8\xc8\xcf\xb3\xe5\x74\x9c\x9f\x5f\x4d\xaf\x6f\x17\xf9\x79\x9a\xdc\xf3\x49\x9e\x8d\xf1\x9f\xeb\x45\x79\x3b\x3f\x9f\x2c\xce\x97\xf9\x08\x31\x7e\x1d\x4f\x97\xf3\x22\xfb\x72\x71\x59\x94\xa3\x8f\x0f\xf4\xfd\x5f\xb7\xe5\x2a\x3f\xbf\x2c\xc7\x5f\xce\xc7\xe3\xf3\x71\x71\x3e\x5e\x9d\xaf\xeb\xac\xd0\x4e\xe4\xf9\x44\x9d\x4f\xf4\xf9\xc4\x9c\x4f\xec\xf9\xc4\x21\xce\xc9\xea\xa6\x38\x9f\x5e\x2d\xb2\x9b\xfc\xbc\xc8\xaf\xf3\xd9\xf8\xbc\x98\x9e\x97\xc5\xf9\xfc\x7c\xbe\xc8\xcf\xb1\x33\xd9\x22\xcf\xce\x6f\x8b\xaf\x37\xd9\xe2\x7a\x3a\xbb\x10\x2f\xe7\xd9\x78\x3c\x9d\x5d\x5f\x88\x87\x1e\xca\xaf\x57\xe5\x6c\xc5\x97\xd3\xfb\xfc\x42\x0a\xf1\x97\x97\xf4\xe7\xa7\x7c\x7a\x3d\x59\x5d\x18\x21\x1e\x6e\x8b\xaf\xc5\x74\xb9\xe2\xcb\xd5\x97\x22\x4f\x43\xb0\xca\x2e\x8b\xbc\x1a\x14\x3e\x2a\x8b\x22\x9b\x2f\xf3\x8b\xfa\x97\x97\x55\xc6\x72\x9e\x8d\x52\x9d\x04\xcf\x56\xe3\xf3\xea\x97\xc9\xd7\x75\x7b\x5e\xd2\xd8\x67\xc5\xf4\x7a\x76\x51\xe4\x57\xab\x87\xec\x76\x3c\x2d\xcf\xf3\x9b\xcb\x7c\x7c\x3e\xbd\xb9\x3e\x2f\x2f\xff\x99\x8f\x56\xe7\x77\xd3\x71\x5e\x7e\x9d\xa4\x66\x65\xb7\xab\xf2\xe5\x4d\xf6\x99\x7f\x9a\x8e\x57\x13\x6a\xf6\x03\x64\xf3\x39\xbf\x9b\xe6\x9f\x5e\xa7\xcd\xb6\xb8\xa9\x96\xcf\x3f\x70\x91\xbc\x4a\xbf\x7f\xa8\x56\x4c\x5e\xe4\xab\x7c\x60\x0f\x66\x34\x5b\xfc\x53\xb6\x98\x71\x5a\xd6\xf5\x72\x1d\x67\xb3\xeb\x7c\x51\xde\x2e\xb1\xd0\xfc\x0b\x4f\xc9\xeb\xcd\x3c\x9e\x2e\x47\x45\xb9\xbc\x5d\xe4\xfc\x26\x9f\xdd\xb2\x7f\x64\x8b\x69\xc6\xf3\xcf\xf3\x6c\x36\xce\xc7\x1f\xfe\xcf\x5f\x71\x8b\xa5\xad\xb1\x5a\xe4\xf9\x74\x95\xdf\x7c\x38\xb0\x54\x31\xad\x0a\x22\xc8\x49\x05\xcb\x39\x76\xea\x43\x6b\xcb\xb3\xf1\xf4\x6e\x4d\x0a\x26\xd9\x72\x32\x1d\x95\x8b\x39\x4f\x03\xc2\x66\xd9\x1d\x2b\xa6\x30\xc3\x19\xcc\x97\xac\x5b\xdf\xde\x82\x73\xdc\x23\x58\xe9\x8e\xb2\xd3\x19\xce\x51\x3e\xae\xc6\x7c\x43\xd3\x10\x8a\xcf\xb3\x59\x5e\x0c\x0e\x5a\x3b\x7b\x68\x74\xb6\x40\xac\x87\xa1\x45\xaf\xda\x0b\xe2\xa6\x5c\xe4\x7c\x5e\xce\xcb\xbb\x7c\x91\x9a\x9b\x56\xcf\x68\x92\x8f\x3e\x5e\x96\x9f\x3f\xfc\x8d\xe8\x0e\xd2\xf3\xe1\xc6\x1d\x57\x7e\xb0\xf5\x27\xa2\x58\x77\xaf\x4f\x6c\x2f\x66\xe5\xea\xc7\x44\x71\x5f\x9c\xc3\x23\xba\xf7\xb8\x9e\x3d\xa6\x53\x75\xd9\xaa\x5f\xe9\xa8\xfa\xeb\x39\xac\xca\x79\x59\x94\xd7\x5f\xf8\xac\x5c\x4d\x71\xad\xd6\xcb\x8b\xa6\x75\x59\x2e\x56\x5b\x8b\x7e\x9a\xae\x26\xb8\x6e\xaf\xa6\x8b\x1b\x22\xfb\xed\xb5\x90\xa5\xbf\x46\x8b\x3c\x43\x32\x9d\xc8\x40\x4a\xca\x66\xa3\xbc\x68\x25\x2d\x6f\x2f\x6f\xa6\xab\xf3\x26\xc1\xa1\xe1\xfe\xd0\x4a\x4a\x50\x1f\xaa\x53\x82\x41\x5a\xf9\xcb\x21\x3a\x95\xa6\x2c\x91\x9a\xd5\xec\x45\x3a\xee\xd8\x72\x9e\xcd\x12\x0d\xc5\xad\xc7\xeb\xf2\xab\xc5\xeb\x1a\xd7\x71\x13\xfa\x08\x54\x03\x13\xfc\x14\xd8\xea\x09\x4f\xb8\x68\x8a\xc6\xf9\x2a\x9b\x16\x8f\xee\xe5\x69\xb8\xb6\x76\xf3\x91\xe8\xaa\x7e\x7e\xe5\x9f\xf2\xcb\x8f\xd3\x15\x5f\x95\xb7\xa3\x09\x1f\x65\x45\x51\xde\xae\xe8\x90\x7d\x59\x67\xdd\x2e\xd7\x8b\xb7\xca\xb8\x29\xef\x87\x52\x97\xfd\xc4\x6e\xc2\x43\x5a\xae\x8b\xfc\x2e\xcf\x0a\x36\x9d\xcd\x6f\x57\x17\xd4\xd4\x7c\xfc\x7f\xf2\x9b\x2d\xad\x19\xe7\x57\xd9\x6d\xb1\x1a\x6c\x10\x9e\xde\xfd\x06\x55\xa9\xcb\x7e\x62\x37\xe1\x21\xfb\x3a\x2a\x8b\x72\x71\xb1\xb8\xbe\xfc\xf1\x2e\x5b\xfc\xc8\x39\xfd\x5d\x2d\xa1\x17\x2f\x1e\x68\xcd\x2f\x57\x8b\x72\x76\x7d\x8e\x1c\xc4\xa4\x2a\x30\x9d\x4d\xf2\xc5\x74\xf5\x80\x0c\x54\x0f\xc7\xaa\x9c\xe5\xfc\x7a\x91\x7d\xe1\x51\x88\x17\x2f\x1e\x90\x65\xfa\x7a\x99\x8d\x3e\x22\x63\x36\x1b\xf3\xed\xf0\x02\xe1\x5f\x6e\x58\xa2\x2a\xff\xcb\xbc\xa4\xbf\x29\x3f\xf1\x2c\x8b\x7c\x36\xce\x17\xc8\xc4\xe0\x64\xde\x4c\xef\xf3\xf7\xf9\xf5\xf4\x72\x5a\x4c\x57\x5f\x12\x04\x15\xc8\xc6\xff\xbc\x5d\xae\x12\x6b\x45\x03\x55\x2e\x3f\xf3\x84\xff\xa6\x2c\x57\x13\x44\x80\x35\x2f\x47\x59\xb1\x99\xf4\x0e\x40\x36\x5b\x4d\xb3\x62\x9a\x2d\xf3\xf1\x4b\x24\x66\x57\x45\xf9\x89\x7f\xbe\x98\x4c\xc7\xe3\x7c\xb6\x49\xf9\x72\xb1\x1c\x2d\xca\xa2\x78\x79\x59\x7e\xc6\xda\xb1\x68\xc5\x8c\x5d\x96\x9f\x5f\xde\x4c\x67\x15\xc7\xa4\x85\x98\x7f\x7e\x40\xc6\xf6\x90\x31\x51\x34\x26\x15\xef\x25\xe7\x9f\x5f\x56\x6c\xa5\x04\xbb\xc8\x6f\x98\x78\x48\x44\xab\x8f\xac\x42\xb4\xc8\x90\x93\x58\xe4\xb3\xd5\x0b\x9a\xae\x8a\x28\x9e\xd3\xfa\x3b\x4f\xab\x61\xcd\xb6\x26\x76\xf4\x2a\xbb\x99\x16\x5f\x9a\xa3\x9f\x52\xf8\x32\x9b\x2d\x5f\x3c\xc0\xdb\x72\x9c\xff\x3a\x5d\x2c\xca\x05\x2f\xa6\x33\x5c\xb1\x65\xb1\x9a\xce\xcf\x61\x74\xc3\x97\x9c\xf8\x92\x06\xcc\xf9\xa8\x1c\xe7\xc8\x1c\xef\x41\x7e\x53\xce\xca\x17\x0f\x69\xb1\x55\x6c\x31\x31\xbd\xd5\x5a\x6b\xb1\xc6\x8d\xd2\x29\x85\x5f\x96\xc5\xf8\xc5\xc3\xba\xaa\x6d\x93\x4d\xcc\xeb\xb6\x79\xbe\x5d\x95\x0f\x54\xb8\xca\x5f\x4f\x6d\x9a\x58\x84\xa1\xcd\xd9\x5c\x05\x84\xf0\xd3\x64\xba\xca\x89\xe5\xce\x2f\xe6\x8b\xfc\xe5\xa7\x72\x31\xe6\x9f\x16\xd9\xfc\x62\x56\x2e\x6e\xb2\xe2\xe1\xaf\xe7\x17\x17\xd9\x15\x0a\x29\x17\x17\x97\xf9\x55\xb9\x40\x06\x7e\xbd\x4a\xea\xdd\x54\x0b\x20\x5f\x1b\x9c\x75\x96\x26\xaa\x43\xd8\x9a\x89\x8b\x6c\x3c\x2d\x3f\x7c\x1d\xdd\x2e\x96\xe5\xe2\x62\x5e\x22\x43\xbd\x78\x38\xb0\xd4\x5d\x8e\x02\x55\x56\x54\x42\xc0\x65\xb6\xcc\x8b\x29\x0a\x19\xb4\xd9\x3b\xe2\xc1\xcb\x0e\xf4\xaa\x9c\x3f\xec\x5c\x4d\xb5\x04\xf4\x90\x04\xa6\x5a\x92\x13\x0f\x17\x8b\xb2\x5c\x7d\xe5\x49\xec\xe3\xd8\x96\xdb\x25\xee\xee\x0b\xf1\xb2\x93\x28\x85\xb8\x50\xf3\xcf\xdd\x64\x25\xc4\x85\xe9\x27\x6b\x21\x2e\x7c\x3f\xf9\xea\xb6\x28\x2a\x22\x50\x65\x54\x1b\x13\xab\x4c\x04\xbc\x9d\x8e\xb5\xca\xf9\x67\xb6\x2c\x8b\xe9\xb8\x9b\xa9\x52\x93\x86\x33\xb1\x05\x7a\x5b\xa6\x49\xad\xee\x64\xe6\x45\x7e\x47\x3c\x10\x55\x2b\x18\x16\x47\xfc\x1b\x6a\x70\x59\x64\xa3\x8f\x2f\xd8\x4f\xcc\xfd\xe5\xc5\x40\x31\x45\xc5\xb0\x88\x19\x2e\x26\xc5\x60\x39\x4d\xe5\xec\xfc\x33\xc3\xbe\xf2\x2d\x75\x4a\x35\x58\xd8\x50\x61\x37\xff\xcc\xc2\x8e\xc2\xf6\x2f\x2f\xce\x05\x41\x60\xd3\xf8\x71\xed\x73\x54\x85\x44\xd4\xd8\x48\xee\x87\x4b\x07\xaa\x43\x62\x1f\xa4\x40\x38\x7d\x54\x2d\x21\xd5\x82\x3d\xc1\x1f\x4e\x38\x86\xc7\xfe\xbc\x82\xa3\xcf\xb6\xce\xa8\x54\xcd\x72\x95\xe7\x05\x17\x56\x5c\x28\x63\x99\x32\x8e\x29\xe3\xd7\xe9\xb4\xac\x95\x65\x4a\x05\xa6\xb4\x5c\xa7\xd3\xda\x12\x96\x29\x29\x99\x92\x76\x9d\x8e\x53\x25\x83\x65\x32\x6a\x26\x63\x5c\xa7\xe3\x2c\x48\x67\x99\xf4\x8e\xc9\xa0\xd7\xe9\x16\xd3\x8d\x65\xd2\x46\x26\x5d\x58\xa7\xe3\x90\x4a\x19\x99\xd4\x92\x49\xbd\x49\xf7\x42\x5c\x20\x6a\xa1\x98\x14\x9b\x66\xe2\xd8\x38\xc7\xbc\x66\x7e\x93\x18\x71\x15\x0b\x66\x0c\x33\xee\x25\xe7\x45\x7e\x53\xce\x52\x47\x2d\x36\xdc\x31\x25\xd6\xc9\xd4\xcf\x7e\xb2\x1a\x4e\xd6\xc3\xc9\x66\x38\xd9\x0e\x27\xbb\xe1\x64\x3f\x9c\x1c\x86\x93\x63\x37\xf9\x26\xbb\xce\x67\xab\xac\x9a\xd0\xc8\x94\xc6\x49\x55\x8d\x1c\xea\xaa\x8e\x4c\x46\x87\xc5\x1a\x39\xd4\x5b\x15\x99\xb4\x81\xc9\xd8\xc4\x46\x1d\x96\x81\xd1\x94\x38\xd3\xc8\xa1\x3e\x8b\xc0\x82\xa8\xe6\xa9\xce\xa0\x99\x8d\x81\x19\xc5\xa4\xd4\x8d\x0c\x9a\x5a\x1b\x98\xd6\x2c\xc4\x46\x3a\x76\x5c\xe2\x52\x73\xcc\xcb\x46\x3a\xf6\x3c\x0a\xa6\x04\xb3\xcd\x6e\x60\xcf\xad\x61\x52\xb1\x6a\x59\x2e\xb2\x4f\x97\xf9\x62\xf1\x85\x0b\x59\x8d\x89\x51\x4c\x99\xd0\xc9\xb4\x3b\x32\x69\x68\x4c\x60\x4a\xfa\xf5\x6a\x5f\x67\xaa\x5d\x99\x34\x40\x0a\x9b\xe3\x98\xf4\xaa\x9d\x69\x76\x65\xd2\xea\x10\x0a\x87\x23\x8d\x53\x23\x8f\x86\x0a\x07\x30\x32\x6f\xda\x59\x7e\x7b\x16\x0e\x98\x14\xb8\x6f\xd2\x88\x35\xb2\x62\x27\x6b\x54\x5e\x66\xc5\xaa\x5a\x2c\x82\x11\x05\xb0\x76\x93\x41\xe7\x4b\xc4\x2d\xae\xda\x19\x38\x18\x52\x07\x26\xbd\x6f\x67\xe0\x40\x44\xc9\x24\xd2\x91\x66\x3a\x8e\x81\x75\x4c\xaa\x0e\x22\xea\xbe\x64\x31\xb6\x93\xd3\x22\x61\x3e\x32\x25\xe2\x26\x39\xf5\x9a\x39\xc3\xa4\xd3\x9b\xe4\xd4\x63\x86\x74\x84\x16\x74\x95\x8c\xbd\x75\x4c\x79\xe6\x71\x2d\x4f\x67\xe3\xe9\x75\x99\xfa\xaa\x91\x9a\x61\xcb\xd5\x26\x83\x26\x5f\x6a\xa6\xa4\xa8\x48\x60\x95\x41\x7d\xf5\x58\xa5\xaf\xb6\x52\x95\x41\xc4\xce\x48\x22\x52\x4a\x37\x4a\x10\xb5\x93\x9e\x49\x61\x98\xd2\x8d\x12\xd8\xdb\xa8\x98\x0f\x4c\xa9\xb8\x49\xc6\xde\x7a\x47\xdd\x0a\x61\x93\x8c\xbd\xb5\x91\x59\x81\xc3\xb9\x49\xc6\xde\x1a\xc5\xb4\x63\x52\xd8\x4d\x32\x91\x02\xc7\x94\x62\x34\x34\xab\x3c\xab\xc8\x3a\x51\x80\xc0\x94\x59\x27\xa7\x69\xb5\x4c\x69\x84\x17\x75\x32\x75\x14\xf7\x86\x42\xe2\xed\xeb\x64\xea\x26\xd2\x17\x29\x99\xa4\xc5\x46\xc9\x26\x35\x1a\xf7\xb8\xb4\xb2\x4e\xc5\x1e\x6a\xcf\x64\xc0\xb9\x8e\x75\x2a\x76\x10\x29\xb9\x45\xd2\xed\xea\x54\x22\x75\x86\x88\x4a\x58\xb7\x8d\xe6\xd2\xb3\x60\x99\x5d\x17\xa7\x65\x2b\x99\x95\x4c\xd3\xf4\x7e\xc9\x2a\x42\x8e\x03\x8f\x5d\x4b\x4b\x07\x93\x65\x75\x00\x51\xd7\x36\xc9\x69\xbd\x46\x86\xdb\xb0\x91\xac\xd3\x7c\xd0\x29\xb6\x49\x25\xf6\x07\x7b\x16\x9b\xa9\x36\x9d\xbf\xc1\x37\x13\xab\xa3\xdf\x46\x24\x0b\x75\xa2\x4f\x89\x44\x2b\x75\x9d\x98\x8e\xef\xb0\x5e\xa2\x98\x16\x13\x63\x23\xd3\x02\x4d\xa2\x25\x11\x2f\x6c\x8e\xac\x96\x67\x4a\xa6\x1d\xea\xab\xde\xae\xa1\x13\x2d\xc7\xde\x86\x6a\x69\xa6\x64\x3b\x98\x9c\xe8\xbb\x48\x83\xa0\xd7\x48\xd2\x99\xed\xe8\xcc\x56\xc2\xd4\xc9\xa6\xa6\x30\xb8\xfe\xa8\x1f\x94\x4c\x74\x1d\x57\x02\x1e\x07\x1b\x24\x38\x10\xb8\x12\x04\xce\xa7\xad\x53\x71\x24\x82\x62\xc1\x33\x5a\x4e\x94\x86\x03\x61\x2d\xb3\x81\x39\xb7\x4e\xb3\xe2\x82\xce\x69\x46\x2b\xa9\x16\xca\x71\xcd\x68\x9d\x26\x3d\xa5\x59\xa2\x16\x4a\x33\x15\x28\x2d\xcf\xeb\x95\x40\x7c\x4b\xb5\x0d\x53\xba\xac\x4e\x20\xa5\xb1\x5f\x72\x9d\x4e\x6b\xc1\x09\xa6\x68\x82\xec\x3a\x9d\xc6\x01\xe9\x13\xf6\x81\xd6\x6e\x4a\xc7\x81\x08\x06\x4f\x44\x16\xf5\x3a\xd5\x56\x8b\xc4\x3b\x66\x37\x75\xd2\x42\x0f\x0c\x59\x1a\xb3\x49\xc5\x61\xd0\xb8\x22\x34\x6b\xb4\x2f\x24\xd2\x17\x04\x53\x6e\x9d\x48\x4b\x5d\x33\x13\x18\x2d\x93\xcb\xe2\x36\x6f\xac\x89\x9a\x78\xa6\xe4\x1e\xd5\xa6\xe4\x3e\xcd\xa6\xe4\x3e\xc5\xa6\xe4\x1e\xbd\xa6\xd4\x1e\xb5\xa6\xd4\x2e\xad\xa6\xc4\x2e\xa5\xa6\xc4\x2e\x9d\xa6\xc4\x2e\x95\xa6\xc4\x36\x8d\x5e\xe4\xe3\xaa\xb7\x1a\x97\x39\xee\x82\x3a\x75\xcd\xcf\x38\x5c\xd6\x55\xea\x86\x97\x89\xd5\xd2\xc5\xd4\x35\x1f\xe3\x14\x93\x6b\xbc\x89\x87\x89\x0c\x79\x0c\x49\x4b\x0a\x53\x13\xff\x12\x59\xc0\xb5\xab\xaa\xc4\xc4\xbb\x44\x66\x15\x73\xb1\x4a\xa3\x7e\x3a\xcd\x8c\x4e\xf3\x8d\x69\x89\x65\xf1\x4c\x1b\x66\xea\xca\x43\x1a\x50\x65\x98\xae\xd1\xc5\xb4\xe2\x25\xb2\xc5\x2f\x39\x2f\x17\xd9\xec\xba\x9a\x3e\x6b\x98\x32\xb8\x1b\xdd\x26\x23\xf1\xa2\x3a\x6d\x53\x21\x36\x19\x89\x1b\xad\x16\x28\x71\x61\x55\x46\xe2\x47\x25\x72\xd6\x4c\x2a\xbf\xc9\x48\x1c\x29\xed\x5f\x16\xe5\x26\xdd\xd6\xe9\xd8\x1b\xbb\x49\x77\x15\x5b\x8f\x9b\xdb\x34\x9a\xe4\xab\x2d\x13\x15\xd3\x0d\x70\x9a\x51\x9c\x67\x5c\x80\x9b\x64\x9a\xd3\xc8\x70\x5e\x30\xf5\x4b\x5e\x14\xe5\xa7\x0d\xe7\x65\xeb\xd3\xb2\xca\x58\xf7\x17\x57\x67\x70\x9b\x8c\x75\x7f\x15\xee\x28\xb1\xc9\xa8\xfb\x8b\xac\x58\x34\x9b\xf4\xba\xbb\x4a\x38\x46\xbc\x5d\x95\xbe\xee\x2e\xb2\xbc\x9b\xe4\x75\x6f\x9d\x6c\x26\xd7\x9d\x25\x66\x74\x93\x5c\x77\x36\x0a\x26\x37\xa9\x55\x5f\x91\x13\x7d\xd9\xd2\x62\x5d\x34\x7e\x7f\xc9\x39\xa9\x5e\xaa\xfe\x6f\xb6\x6b\x36\xfa\x78\x21\x98\x60\xe2\x65\xad\xd2\x9c\x2f\xa6\x37\xd9\x62\xad\x77\x2a\x67\xf9\x7a\xef\xbd\x58\x03\xad\x2f\x1a\x9b\x60\xd5\xc2\x7d\xd1\x45\xc5\xc7\xd3\x65\x76\x59\xe4\xe3\xdd\x38\x67\xf9\xed\x6a\x91\x15\x17\x5d\xbd\x5e\x0b\x28\x29\x5c\x77\x23\x9a\xce\xae\xca\xdd\x10\xcb\xdb\xd1\x28\x5f\x2e\xdb\x55\x55\x34\x75\x03\x75\x95\x4d\x8b\xdb\x45\xbe\xb3\x8b\x69\x20\x76\x82\x7c\xca\x16\xb3\xe9\xec\xba\x09\xb3\x59\x15\x8d\x9e\x15\xf9\x62\xd5\x04\xda\xec\x14\x04\xea\x6a\x17\x2f\xfe\x5e\x4c\x67\x1f\x7f\xcd\x46\xff\xf9\x65\xb9\xca\x6f\x7e\x29\x67\xab\x73\x9e\xcd\xe7\x45\xce\x97\x94\x72\x7e\xf6\x9f\xf9\x75\x99\xb3\xff\xfa\xff\x9d\x9d\x9f\xfd\xdf\xe5\x65\xb9\x2a\xcf\xce\xcf\xfe\xaf\xcf\x5f\xae\xf3\xd9\xd9\xf9\xd9\x7f\x5d\xde\xce\x56\xb7\x67\xe7\x67\x6f\xb3\xd9\x2a\x5b\xe4\x45\x71\x76\x7e\xf6\xcb\x74\x91\xb1\xff\xcc\x66\xcb\xb3\xf3\xb3\x7f\x5f\x94\xd3\x71\xfd\xc7\xbb\xbc\xb8\xcb\x57\xd3\x51\xc6\xfe\xff\xf9\x6d\xde\x4c\x38\x3b\x3f\x7b\xb3\x98\x66\xc5\xd9\x39\xb6\x8a\x2f\xf3\xc5\xf4\xea\x65\x5f\x5f\x79\x81\x1f\xd2\xfb\xbd\xec\xe8\xa9\x2f\xa4\x23\x3d\xd4\x26\x11\xb7\xa3\x26\xa5\x6d\x2b\x99\xce\x0f\x08\xdd\x64\x3a\x34\x41\x77\x93\x89\x79\x00\xd5\x4b\xb6\x98\x2c\x55\x0f\x3b\x51\xdc\x6e\x22\x31\x57\x10\x7c\x0f\xda\xa7\x8c\x01\x3c\xc4\x65\x41\xab\x44\xa5\x78\x2d\x48\x21\xab\x89\x9e\x36\xd3\x93\xe6\xf3\xc2\xf4\x32\x6e\xf2\xf1\xf4\xf6\xe6\xc2\xf6\x32\x96\xf9\xcd\xf4\xb2\x2c\xc6\x17\xae\x97\x45\xc9\x7e\x93\x5c\xe4\xd9\x78\xad\x2f\x6c\xa4\xe0\x30\xb4\x52\x64\x1a\xaf\x56\x5a\x1a\x71\x22\xac\x9b\xc4\x34\xde\xc4\xfd\x6c\x12\x6d\x9a\x04\xdd\x4a\xa4\x03\x0b\x4c\x2b\x8d\x48\x1b\xb4\x31\x12\x5d\x03\x62\x5e\x27\x8b\xf2\x26\x6f\x6a\xff\x37\x89\x95\x62\xdf\x25\x65\x66\xda\xd8\x8b\x6c\x96\xfa\xd2\xd8\x36\x0d\xfd\xc3\x8b\x36\x20\x76\xb1\x01\xd8\x16\xbb\x3b\xb0\xae\x92\x98\x91\x07\x21\xbe\xba\x91\x17\xc4\x60\x85\xa1\xb1\x51\x2b\x0b\x0d\x1c\x96\xce\x55\xc5\x9a\x18\x35\x34\x6c\x74\x41\x30\x00\x5b\x93\x92\x35\xda\x51\x39\x5b\x2d\xb2\xe5\x8a\xc7\x18\x87\xef\x91\x62\xdc\x40\x6f\x86\xa7\xdb\x86\x3a\xa3\x0b\xeb\x06\xda\x5b\x67\x34\x1a\x7c\x20\xf0\xf2\x53\xb6\x1a\x4d\x4e\x82\x0e\xdb\xa0\x43\x0d\xfd\x65\xb6\xca\x3e\xa7\x3d\x85\xb4\xfb\xcb\xc5\x0f\xe3\x71\xae\x73\xdf\xcf\xcb\xbe\x5c\xfc\x90\x19\xfc\x6f\xa8\x1c\x4d\xc8\xc5\x0f\x6e\xe4\x2f\x83\xdc\x00\x8c\xb3\xc5\xc7\x0a\xaf\x0f\x41\x91\x2e\xaa\xca\xba\xca\xc6\xf9\xb8\xc2\x9b\x67\xf8\xdf\x26\x2f\x5b\x15\xd9\xf2\xe2\x07\xa9\x7c\x7e\x75\xb5\x49\xbe\xcb\xae\x17\xd9\x6c\x75\xf1\x83\xba\x0a\xe1\xaa\xd1\xc6\x64\x90\x72\xf1\x83\x8b\x26\xc6\x06\x9e\x55\xbe\x58\x64\x57\xe5\xe2\xe6\xe2\x87\xa0\xd4\x55\xb3\xc8\x32\x5f\x5c\x61\x67\x4d\x6e\xc3\x26\x75\x9e\x8d\x3e\xe6\x8b\x8b\x1f\xe4\x78\x7c\x99\xe9\x4d\x3a\x35\x93\x7a\x9b\xcf\x7e\xfc\x41\x08\x71\xce\x42\xfc\x4b\x63\x04\x17\xf9\xf8\xe2\x87\xab\x2b\x3d\xd6\xe3\x66\xa9\x3c\x9f\x5d\xfc\xa0\xe3\xa5\x35\x59\x6f\x50\xb0\xe3\x56\xdb\x2b\xdf\xac\xe7\x76\xb5\xca\x17\xd5\x88\xa9\x4c\x5d\x11\x3f\x59\x65\xa6\xe3\xae\x3b\xa1\x8d\x43\x10\xdb\x33\x29\x17\xd3\xfb\x72\xb6\xca\x0a\xfe\xf1\x8e\x27\x5b\xae\x7c\x9e\x2d\xb2\x15\x9e\xa1\xe9\x9e\x27\xd0\xde\x1f\x80\xfc\x98\x7f\xd9\x40\x5f\x9c\x5d\x9c\x6d\x07\xfb\xb4\xc8\xe6\xf3\x9c\x0c\xf9\x16\xab\x8b\xb3\x1f\x0f\x00\xcd\x67\xe3\x8b\xb3\x17\x08\x38\x5a\x76\x9b\x76\x71\x76\x7e\xf6\x50\x9b\x68\x5d\xde\x8e\x3e\xe6\x2b\x82\x60\xb0\xcc\x17\x77\xd3\xd1\xc6\x7e\xab\x91\x49\x76\x13\xff\x18\x15\xd9\x72\xf9\xe1\x05\x1b\xb7\xff\x5e\x17\xc8\x3f\xcf\xcb\x65\x3e\xe6\xf3\x6c\x35\xa1\x62\xd5\xdd\x3c\xa4\x0b\x7d\x36\x2e\x0e\xc3\x33\x9d\x2d\x57\xd9\x6c\x94\x73\xba\xdf\x5a\x1e\x56\xa8\x28\x47\x1f\xf9\x32\x27\xf3\xce\xd4\xa1\x43\xab\xbb\x9d\x2f\x57\x8b\x3c\xbb\xd9\xd4\x5b\x15\x87\xa2\x1c\x65\x05\xbf\x9c\xce\xc6\x3c\x1b\x8f\x17\xf9\x72\xc9\xc6\xab\xe3\xca\x2d\x4b\x1a\x44\x1c\x92\x83\xca\xee\x69\x32\xcd\xe5\xa8\x2c\x8a\xbc\x61\xde\x45\x30\x17\x57\xd3\x05\xe6\x4d\xa6\xc5\xf8\xc5\xe1\x43\xbe\x28\x6f\x57\x39\x5f\x4d\x57\x45\x7e\x0e\xab\xec\xfa\x80\xe9\x5e\x8d\x11\x70\xf7\xb4\x7c\x9d\x97\x4b\x32\x55\xbb\xc8\x2e\x97\x65\x71\xbb\xca\xd7\x57\xab\xf5\xf5\xfa\xa8\x98\xce\x2f\x16\xf9\x68\xf5\x23\xf1\xf3\x4c\xbc\x78\x59\xed\x9a\xf9\xe7\x81\x5b\x71\x8e\xbf\x6f\xec\x1b\xd7\x17\x8e\xa7\xcc\xc6\x4d\x39\xce\xd9\x78\xb5\x69\xe4\x72\x95\xad\xa6\xa3\xd4\xa4\xdb\xd9\x32\x5f\x55\x4d\xa1\x3b\xe0\xb6\x75\x64\xcf\xf2\x13\xb2\xd9\xf4\x26\x4b\xe6\x2b\xab\xec\x92\xcf\xb2\x3b\x76\x5b\xd4\xb7\xc2\xa7\xd8\x4f\x1e\x5d\xe4\x62\x82\x83\x9b\x96\x41\x2d\xbb\xbc\x48\x7f\x26\x53\xdc\xcd\x62\xcf\x6e\x57\x13\x7e\x93\xaf\x26\xe5\x18\x0f\xd2\xbc\xb1\x79\x57\xf9\x62\x96\x15\x7c\x59\xde\x2e\x46\xa7\x5b\x71\x1e\x5d\x68\xdd\xe2\xd3\x4a\x5f\x95\xa3\x53\x2b\x4e\xa3\x56\x9b\x64\x9f\x8e\xe1\x90\x71\xdf\xa0\xa5\x65\xb9\x1a\x43\x4a\xe1\xac\x32\xc2\xe9\x03\x6e\xcc\xd5\x79\x63\x11\xb4\x2c\xe3\x4e\x29\xb4\x6b\xbc\x0f\x28\x4d\xe3\xdd\xe9\xf2\x69\x98\x86\x06\x6f\x00\xd3\xc6\x96\x9d\xc1\x5d\x86\xdc\x68\x32\xd8\xab\x21\x3f\x4e\x67\x9b\xae\x74\x16\x6f\x43\xa3\xc0\xe7\x8b\xf2\xf3\x97\x83\x8d\x7c\x37\x93\xfc\xba\x49\x59\x4f\x2b\x4f\x43\xf6\x58\x2c\x69\xb8\x7a\x58\x30\xf5\x0b\x1f\x4d\xb2\xe9\x8c\x55\xd4\x7c\x94\x2d\xc6\xaf\x2b\x6b\xc8\xdb\x82\x15\xd3\xed\x36\xca\xc3\xe9\x8d\x25\xb2\x05\xa0\xda\x75\x5b\x72\xdb\x1b\x6b\x27\xd0\xce\xbd\x33\x60\xcc\xdc\x18\x91\xbf\xee\x03\xa8\x5b\xb9\x07\x8a\x1a\x72\x0e\x45\x72\x32\xe8\xd9\x39\x6f\x5d\x09\x3b\x01\xfb\x53\xbe\x0b\x7c\x60\x6e\x77\x9a\x53\x6f\xc9\xea\x0c\xfc\x3e\xb8\x9d\x63\xbf\xcb\xfd\xe4\x75\xe5\x97\xb1\x1b\x68\x52\x0f\xe8\xb1\xa6\xd7\xdb\x47\xfc\x51\x98\x06\xa6\xe4\x31\xf8\x06\xe6\x6c\xc0\x46\x7c\xad\x4a\x6c\x19\x8b\x0f\x00\x6e\xe8\xea\x2e\xa8\xe6\x04\x1f\x08\xbc\x63\x96\xf7\x62\x38\xd1\xc2\x7d\xc7\x14\x3e\xe1\xec\x3d\xe1\xc4\xd5\x7c\x1b\xa4\xee\xe7\xe3\x96\x11\xfc\x4d\xbe\x5a\x4c\x47\xcb\xea\x70\xa9\xd8\xa6\x3d\x76\xee\x7b\xf2\x3b\x3b\xf5\x20\xe0\x5d\xdb\xb5\x6d\x56\xdf\xfa\x6b\x43\xcc\xdb\xc9\x89\x38\xb6\xd3\x5a\xad\x1a\xca\xda\xd5\x86\x3d\xc6\xfc\x29\xa9\x46\x3e\x90\x93\x1a\x34\x90\x71\x5c\xd5\x2d\xa7\x81\x61\xc6\x67\x1b\x5b\x33\x94\xd1\x1a\x92\x03\xb9\x98\xa1\xc6\x6d\x75\x5f\x48\x49\xed\x1a\x5a\x39\xcd\xa6\xb5\x32\x8e\xab\xba\x76\x93\x18\x48\xeb\x8e\x4c\x3b\xb3\x5f\x7f\x9d\x33\x30\x36\x43\x00\xbb\x5a\x78\x88\xd3\xc6\x81\x74\x6c\xe3\xd6\x71\x82\x27\xc8\x64\x75\x53\xfc\x63\x9c\xad\x32\x4e\x3c\xd4\xff\xf3\xea\x6c\x3c\x82\x6c\x54\x2c\x61\x3a\x1b\xe7\x9f\xcf\x3e\x30\xf2\x6e\x5c\x8d\x6b\x7e\x1d\x79\x50\x98\x97\xc5\x74\xf4\x85\xcf\xca\x71\xce\xa7\x63\x64\x58\x57\x5f\x5a\x39\x95\x4e\x65\x93\xf9\x28\x6f\x8e\x6d\x54\xf5\xe9\x90\xf6\xa8\xec\x93\xa1\xee\x53\xdd\xc7\x79\x7c\xec\x1e\x8b\x27\xc1\xba\x65\x30\x9e\x02\x77\x6f\x34\x6a\xb7\xcf\x64\x19\x4f\x66\xc4\x07\x68\x16\x18\xcc\xca\xd5\xf4\x6a\x3a\xca\x2a\xb7\xc0\x6c\x3e\xe7\xcd\xa4\xcd\xd1\x56\x4c\x5f\xff\xf5\x2b\xc9\x43\xa4\xf2\xe0\xe3\xdb\xca\x2b\x17\xa4\x5d\xbe\x6c\x64\xac\xa6\x37\xd3\xd9\x35\xbf\xba\x9d\xa5\xab\xcb\x3c\x5b\xe6\xbc\xbc\x5d\x3d\x24\xfe\xee\x32\x9b\xcd\xf2\xc5\x07\x36\xcb\xee\xaa\xf6\x97\x57\xe9\x48\x4c\xf9\xa3\x32\x49\x6e\xb3\xab\xf2\x03\xed\x2a\x76\x59\x8e\xbf\xbc\x86\xa4\x0e\x2f\x4a\xe2\x09\x71\x2f\x7d\xdd\x51\xe7\xe8\xf6\x72\x3a\xe2\x97\xf9\xfd\x34\x5f\xfc\x08\xf2\x1c\xff\x57\xf6\x1c\xe2\x8b\x97\xc3\x5d\x58\x3e\x6c\x36\x30\x49\x1a\xd5\x06\xcf\x6f\x2e\xf3\x05\xd5\x3a\x9d\x5d\xbf\x18\x68\xca\xd7\x34\xc6\x47\x36\x62\x53\xa8\xd9\x86\x46\xf2\x2c\xbb\xc9\x2f\x2a\x97\xeb\xab\x45\x79\xc3\xaf\x8a\xf2\x53\x23\xff\x6a\x5a\x14\xa4\x86\xba\xb8\x2a\x17\x9f\xb2\xc5\x78\xf9\xf0\x3f\x3e\xe6\x5f\xc8\x98\x7e\xc9\xba\x05\xbf\x4a\x21\xfe\xf2\xf5\x6e\xba\xac\xfc\x60\xba\x1e\x2a\xdb\x55\x6a\x0f\x0f\x5d\xe9\x87\x25\xe2\xf8\xfa\xaf\x0d\x07\xe5\x21\x47\x8c\x3a\xad\x98\xce\xd6\x77\x59\x2d\xb8\x96\x0f\xc7\x80\x9f\x70\x9a\x80\xab\x69\xb1\xca\x17\x28\xbd\xbf\xa8\x04\x04\xf2\x4f\x20\x4f\xee\x0f\xc9\x6b\x90\xa5\x7d\x33\xcf\x96\xcb\x4f\xe5\x62\xfc\x61\x40\x01\x76\x2c\xae\x55\xfe\x79\xf5\x38\x3c\x6b\x77\xef\xdd\x7e\xf8\x89\x15\xa8\x9b\xde\xef\xc9\xf1\x85\xab\xa6\x1f\x53\xf0\xa8\xb6\x56\x0c\xfe\x29\x2d\x6d\x15\x3d\xbc\x9d\x55\xb1\xa3\x5a\x89\xc0\x27\xb5\xb1\x51\xf0\xf0\x16\x52\xa1\x03\xdb\x77\xf0\x22\x7e\x04\x96\x43\x5a\xbe\x7f\xe1\x36\xe5\xb9\x2d\x6d\xdc\x06\x52\x35\xa0\x9f\xbd\xc1\x9e\x06\x8e\xe2\x70\xf4\xf1\xf6\x33\x2b\x8c\xcd\x8c\x35\x2e\x72\x5e\x23\xf6\x6a\xcf\x76\xda\x0e\x93\xd0\x0f\xe5\xaf\x6b\x69\x64\x6e\xd9\x03\xdb\x20\x7a\xc8\xbb\x2b\xba\x91\x35\xb8\x70\x87\xf3\x7b\x68\x5b\xcb\xf0\xeb\x76\x67\x49\x27\x44\xe5\x4b\xb9\xdb\x9f\xaf\x45\xbb\x1b\x30\xb5\x61\xc3\x8b\xc7\x50\xed\xd7\x49\x09\xbb\x46\x50\xf3\xdc\x74\x95\xd4\x11\xfa\x07\xee\x1e\x2e\xa7\x33\x3c\x92\x93\x36\x7c\xa2\x06\x61\x10\x2f\xab\x42\x7d\x34\x61\x26\x79\x56\xa0\xbc\x8c\x8c\x56\x75\x77\xd9\x4a\x2a\x6f\x57\xf3\xdb\x55\xf3\xba\xed\xc0\x12\xf5\xd1\xb8\x4d\x6b\x0f\xc9\x1d\x1e\xb2\xa2\x28\x3f\x1d\x0c\x3d\xce\x67\x5f\x0e\x06\x6e\xc4\xa8\xd9\x5b\x66\x35\x86\x71\xbe\x5c\x4d\x67\x15\xab\xb7\x15\x6a\xeb\x95\x4e\x57\x4b\x8f\x83\x3c\xce\xaf\xa6\xb3\x8a\x2d\xa3\xb8\x22\x38\x8e\x7f\xbc\x48\x1c\xd5\x7a\x6c\x2f\xc4\xc1\xc8\x1a\x30\x1e\x2d\xbb\x35\x7c\x1f\xd1\x3b\x58\xad\x42\xfd\x4e\xa2\x7a\xec\xe6\x43\x2a\x8a\x70\x30\x47\x70\x38\x3c\xd2\xc4\x43\xa0\x77\x93\xaa\x9d\x45\xd7\xcb\x7f\x27\x54\xda\x10\xa3\x6c\x9e\x36\xdc\x01\xb0\x1b\x85\xc1\x61\xd0\x3b\x2e\x01\xb6\x14\x99\x1c\xa4\x86\xa7\xc5\xf2\x27\x08\xc3\x52\x91\x49\x32\x41\x6b\x10\xc8\x2a\x79\x32\xbd\x9e\x90\xf1\x50\x3f\x0b\xb7\x50\x3f\xb5\x52\xd3\xdc\x64\xb3\xec\x3a\xc7\xf1\xea\x83\x54\xb6\xb7\xfd\x8c\xca\x4e\xb6\x91\xd1\xe3\x97\xaa\x95\xf7\x87\x8c\x0d\x43\xdb\x88\xee\x12\xd7\x64\xa8\xd2\x25\xb4\xd9\xb8\x46\x0c\x95\x66\x7a\xea\x7a\x5f\x67\x50\x64\x1b\x95\x41\x8f\xea\xee\x06\xaf\xcd\x89\x5a\xbd\x6a\x85\x5f\x3b\xa8\x7c\x76\x18\xd8\x31\x28\xa9\xaf\xb5\x93\x7f\x7d\xf1\x35\xa8\x52\xfc\x78\x07\xf9\x78\xba\x3a\xfb\x80\xc4\x66\x10\xa2\x52\x19\x2e\xa1\x36\x64\x81\x9b\x7c\x95\x21\xd4\x19\xd2\xc3\xec\x92\xd7\x2c\x51\x83\x35\x1a\xe0\x7c\x53\xa3\x7a\x5c\x6b\x2f\x79\x43\x5c\x29\xb1\x26\x84\xf4\x47\x75\x88\x6e\x74\x3d\x44\x97\x58\x59\x90\x3a\x29\xc1\xb4\x69\x62\x23\x69\x43\xfa\x5a\x89\x2d\x0a\xd7\xcc\x99\x3c\xc7\xe0\xf9\x33\xc5\xe0\xd9\x25\x7c\xa8\xb6\xf0\xb1\x5d\x76\xf8\x7a\x40\x6c\x90\x1d\x61\x65\xd4\xd3\x08\x39\xbf\x8f\xfc\xf2\x2c\x8d\x6c\x93\x46\x9e\x92\xcf\xdf\xc6\x72\x3f\x33\xbe\x8f\x65\x7c\x0f\x67\x65\x5f\xf7\x78\xab\x3f\x16\x7f\x37\xc4\x2a\x3d\x73\x42\x7f\x2a\x4e\x68\x07\x97\x73\xc4\x79\x55\x3b\x42\xbd\x78\x38\x41\x97\xf5\xc7\xd0\xc1\x7c\x0f\x7a\x93\xef\x45\x3f\x72\x92\x0a\x60\xf2\xe7\x10\xd4\xff\x90\x32\xef\x3e\x01\xf7\x48\xa1\x68\x58\x02\x7a\x96\x73\xfe\x54\x72\xce\x6e\x8a\x9f\x7c\x62\x37\xf4\xfe\xa9\x64\x88\xdd\x5c\xf3\x5e\x06\xf9\xf1\x2c\xe1\x86\x67\xdb\x7f\xba\x37\x8f\xd3\x1d\xf7\x5a\x9a\xa4\xb5\x3f\x89\x90\xf4\x3d\x33\xb2\x4f\xc6\x6d\xed\x98\x4c\xfb\xa4\xa2\xf7\x63\x65\xcd\x3f\xf0\xa5\xd6\xf3\x9d\xd5\xf3\x9d\xd5\xb7\x13\xca\xff\xf8\x8c\xe6\x7f\xc7\x4b\x97\x67\x95\xc2\xd3\x89\xf9\x8f\xbc\xe3\x78\x2a\x6b\xe9\x67\xc6\xfe\xbb\x64\xec\xb7\x1a\x60\x9d\xa2\xc1\xf9\x26\xca\x82\x5d\xa2\xea\x4e\x31\x74\x47\x07\xdb\xc6\x61\x6c\x22\x09\x27\x7c\x9c\xce\xc6\xb5\x1f\xed\x53\xf8\xb5\x1f\xce\x0c\xe6\x37\x8f\x2a\x5e\xd9\xaa\xa1\x5c\x45\x4d\x25\x74\xf8\xd7\x7c\x51\x5e\x4d\x8b\x7c\xaf\xe8\xb5\xd7\x4d\xfe\xd0\x55\x50\xbc\x1e\x9f\xe6\xe8\x7e\xfc\xd3\x66\x07\x08\x44\x87\x49\x4d\xd5\x13\x6b\x07\xca\x58\xf3\x43\x84\xab\x83\x04\xb0\x43\xeb\x25\xe0\xbd\xd5\x36\x86\xe8\x18\x89\xee\xd0\x46\x34\xcb\x0c\xb5\xa5\x21\xa6\xa7\x13\xa7\x11\x21\x85\x0d\xae\x89\x46\x89\x61\xd0\x2d\x9e\xef\x27\xbc\xa3\x55\x6d\x9c\x75\x90\x98\x83\xa4\x95\xf1\xf4\x6e\xc8\x05\x3d\x5f\x96\xc5\x5d\xbe\x58\x36\x2e\x75\x86\xfd\xd4\x77\x42\x2c\xe7\xc5\x74\xb5\x6a\xa3\x39\xc4\x89\xbd\xd6\x76\xcc\x68\xe7\x4d\x8b\xf1\x8f\xea\x45\x1b\x62\x7e\xf0\xa3\x7f\xed\x97\xfd\xf0\xf0\x24\x69\xfe\x75\x4d\xa0\xbb\x92\xcf\xbc\x29\x9a\x0c\x0c\x69\x43\x6e\xa1\xb1\x3b\xd4\xc5\x7b\x8f\x08\x83\xc4\xec\x5b\x8a\x3c\x07\xe2\x3f\x49\x40\x3a\x10\xf7\x63\x85\xa9\xbd\xd5\x3c\xf6\x02\x35\x2d\x92\xbf\xed\xad\x67\x7e\x20\x13\x70\x28\xaf\x30\x3f\x4a\x80\x1a\x5a\x93\x47\x88\x5f\xb4\x68\x9b\x7a\xad\x8e\x96\x6b\x43\x2a\x5b\xc9\xf3\xbe\xd6\x6b\x40\x0f\xd6\x2b\xbc\xc9\x9a\xb7\x74\x63\x6d\x45\x59\xaf\x18\xa5\xce\xb7\xeb\xcd\x76\x68\xd4\x7a\xb8\xfa\x20\xf3\xae\xb6\xad\xa7\x7d\xeb\x21\xa9\x33\xe6\x5d\x7d\x5c\x4f\x3f\xd7\x2b\x5a\x67\xcc\x77\xbd\xf5\xb9\xcf\x6d\xbf\x2f\x1f\xe3\x2a\x7d\x9c\xd4\x3c\xb0\x90\x8e\x59\x43\x5b\x9f\x9d\x9b\xce\xf1\xf0\x2a\x3f\x27\xe5\xe4\x6a\x92\xdf\xe4\xff\xe7\x55\xf5\x08\x11\xd2\x02\xca\xaf\x3c\x0c\xf7\xbd\x52\x57\xbd\x68\x7a\xc0\x93\x75\x4d\xc1\x1a\xc7\xa6\x27\x68\xef\x73\xf6\xef\x8b\xb1\x2d\xcf\xc8\xfe\x68\xed\x29\xb0\x43\x96\x1e\x82\xa3\x8e\x0c\xb9\x5f\x7e\x5f\x8f\xed\x0d\x89\xec\xf9\xcd\x31\x92\x7c\x1b\x7a\x97\x78\xdf\x86\x1c\xba\xd8\xdf\x50\xec\xf4\x6c\x6d\x5b\x60\xea\x88\x4f\xf4\x04\x2c\xa3\x37\xa8\x48\x10\x4a\x23\x7e\xa2\x50\xdd\x5f\x0e\xa7\x4a\xe7\xb8\x99\x4e\x15\x79\xb7\xb5\xe2\x04\xe1\x79\x3c\xbd\xfb\xba\xdd\x4d\xb4\xe1\x60\x3a\x78\x0b\x76\x94\x98\xf5\x78\x61\xe6\xe9\xc4\x93\x6f\x25\x71\xcc\x77\x33\xf8\x3b\x0e\xe0\xc3\x4e\xda\x5d\xc7\xe9\x69\x07\xe7\xfe\x53\x71\xff\xe1\x37\xff\x26\x44\xb1\xde\xb6\x7b\x95\x39\xc7\xe9\x3a\x4e\xd2\x3c\x74\x75\x0d\x8f\x54\x19\x1c\x2b\xfd\x3f\xa5\x00\x7a\xa0\x70\x78\x92\x9c\xb5\x53\xaa\x1a\x10\x9c\xfe\xf4\x17\x3c\xdf\x4a\x1a\x48\x63\xf9\xc8\xeb\x13\xc2\xd1\xe7\xb7\xfa\xd7\x14\x2d\xc6\xe4\xe9\xb4\xf7\x5b\x0f\xec\xc7\x9f\xd3\x8f\x3a\x5e\xe9\x50\x3c\x54\xc1\xfa\x2f\xd4\xa1\xb6\x54\xa0\x4f\xa3\x86\x7c\x84\xc6\xf0\x28\x35\xdf\x36\xad\xdc\xd3\xe9\xbb\xfe\x70\x8a\xac\xbe\x4e\x6a\xb7\x02\xea\x5f\xaa\x70\x3a\x4e\x7d\x74\x98\x3a\xe8\x64\x05\xcf\xf1\x5a\x9a\xc7\x68\x55\x76\xab\x45\x76\x28\x3d\x86\x75\x1a\x07\xa8\x2a\xb6\xaa\x1f\xfa\xca\x85\xa7\x56\x25\x3c\x5a\x65\xf0\x4d\xd5\x00\x47\x49\xfe\x4f\x2d\xe7\xff\xd1\x04\xf0\x41\x39\xbb\x25\x50\x0f\xcb\xce\x4f\x2c\x09\x3f\x81\x34\xbb\xe3\xec\x0d\x74\xf6\xf6\x69\xed\xfa\x01\x67\x9e\xde\xb6\xe1\xa3\xe9\x62\x54\xe4\x5c\x3a\xbe\xbc\xbb\xbe\xb8\x5d\x14\x3f\xfe\x1b\x2e\xc8\x8b\xe9\x4d\x76\x9d\xff\xb4\xbc\xbb\xfe\xdb\xe7\x9b\xe2\xe5\x68\x92\x2d\x96\xf9\xea\xd5\x7f\xfd\xcf\x5f\x78\x38\xff\x79\x79\x77\xcd\x3e\xdf\x14\xb3\xe5\xab\xb3\xc9\x6a\x35\xbf\xf8\xe9\xa7\x4f\x9f\x3e\xc1\x27\x0d\xe5\xe2\xfa\x27\x25\x84\xc0\x82\x67\xec\x6a\x5a\x14\xaf\xce\x66\xe5\x2c\x3f\x63\x78\x9e\xff\xbd\xfc\xfc\xea\x4c\x30\xc1\xa4\x63\xd2\x9d\xbd\xfe\xf9\xba\x02\xf9\x8b\xd2\x42\x88\xb3\xd7\x3f\xa7\x10\xf2\xaf\xce\x7e\x0d\xcc\x64\xe0\x2d\x78\xcb\x04\x13\x32\xfd\x7a\xa7\xc1\x36\x53\xb9\x04\xcb\xc4\x1d\xd7\x60\xdf\x34\x92\x03\x33\xf7\xbf\x06\x26\x45\x26\x99\xc4\xda\x84\x60\x6a\x02\x42\xf8\x4d\x02\x57\xef\xc2\xfd\xd9\x4f\x55\x8d\x14\xa9\x6a\x71\x5b\xe4\xaf\xce\xf2\xbb\x7c\x56\x8e\xc7\x67\xd4\x0a\xc1\x42\x16\x58\xc0\x22\x52\x3a\x26\xde\xa4\x3f\x84\x14\x2c\xdc\xdf\x04\xee\xc0\x66\x0e\x2c\xc3\x9f\x54\x8f\xd4\x6c\x93\x20\x84\xe0\x52\xdf\x9f\xb1\x51\x31\x9d\x77\xf0\xff\xf4\xfa\xe7\x9f\xae\x5f\xff\x8c\x03\xf5\xfa\xdf\x5e\xac\x1f\xf5\xbe\xc9\x96\x1f\x39\x8d\x7d\x35\xa5\x03\xb3\xf4\xe2\xe5\x41\x50\x0f\x87\x5b\xd5\xad\xc3\xad\x9d\x68\x5c\xb7\xb7\xfc\x7e\x1b\xbb\x35\x8a\x6e\xf4\xff\x8a\x7a\x60\x91\x7c\xbc\x86\x3a\xf0\xe8\x7a\xbd\x2e\x70\x0c\xec\x16\x62\x5b\xef\x9d\x23\x6d\x92\x6a\xb4\x27\xd0\x8f\xd7\xed\xb2\x6d\x92\x31\xbe\x28\x67\xc5\x97\xc4\x37\x21\xa7\x9c\x44\xcc\x75\x23\x07\x8b\x1c\x00\x73\x68\x9b\xbe\x72\x14\xe1\xef\x16\xe5\x8c\x8f\xcb\x4f\xb3\xdf\x89\x82\xac\xb7\xef\x9a\x88\x6c\xdd\xcc\x1a\x94\xb6\xcc\x82\x12\x2d\x22\x22\x41\x38\x10\xfa\x7d\x60\x11\xa4\x0d\x85\x06\x2f\x2c\xd7\x10\x95\xee\x80\x45\x26\x41\xe8\x82\x1b\x50\x96\x99\x1e\x29\x12\x91\x89\x94\xc9\x3b\x99\x20\x34\xe6\xbb\xed\x94\x20\x51\x81\x87\x1f\xea\x28\xbc\x78\xee\x67\xd3\x19\x9e\x7d\xc5\x74\xf6\x91\x41\x9d\x81\x7f\xad\xa7\x2f\xfb\xc7\x22\x2f\xfe\xfa\xaa\xd6\x23\x7e\xd8\xcc\xcc\x5a\xb5\x88\xf0\xdf\x1d\x71\x8f\x0c\x7c\x8b\x62\x47\xfa\x65\x62\xc0\x8e\x40\x09\xc7\x04\x03\x1d\x35\x88\xa0\xc1\xaa\x08\x4a\x86\x02\x04\x8e\xa3\x50\xd5\x8f\x7c\x03\xde\x04\xfc\x49\xb3\x63\x11\xe5\x5d\x7f\x52\x2c\x13\xbf\x29\xb0\xee\xbd\x07\x15\x58\x00\x1f\xba\xb3\xe6\xe8\x53\x38\x50\x8a\xe3\xe7\x5d\xec\x36\x0e\x51\x6f\xce\x8a\x6a\x29\x59\xd6\x3e\x8c\x04\xaf\xce\x28\x0f\x76\x24\x18\x18\x69\x40\x6b\x97\x12\xc1\xdb\x89\x6f\x83\x83\xb7\x58\xe2\x8e\x9b\xf6\x2a\xc3\x03\xcd\xbc\x51\x58\x01\x7d\x28\x15\xa1\x99\x34\x13\xee\xc1\x76\xf3\x98\x94\x84\xa7\x9f\x45\xad\x54\x93\x56\x05\x82\x49\xb0\x13\x6e\xee\x3b\x07\xd0\x03\x8c\xf2\x45\x15\x52\x33\xaf\x39\xe6\xe5\xa4\xfc\xb4\x5e\x6c\x89\x4f\x5a\xe4\x77\x79\x96\xac\xaf\x1a\xac\x44\xfe\xe5\x3b\xe1\x20\x06\x37\xff\xc0\x9e\x6b\x71\x1a\x36\xd3\x4c\x57\xe7\xb7\x63\xe9\x77\x3c\xba\xdd\xfd\xaf\x78\x8e\x87\x0c\x67\x45\xa6\x23\x5e\x12\xe0\xfa\x6f\x21\xb9\x66\xa2\xbd\x38\x02\x53\x6f\x2d\x18\xa5\x98\x62\x1a\x8c\x66\x1a\xb4\x62\x0a\xa4\x54\xcc\x80\xb3\x6f\xa4\x80\x68\x90\x3f\xa1\x7f\x68\x31\xd8\xe8\x90\x67\x70\x66\xc4\x41\x7a\x0d\x2a\x70\xd0\x12\xac\x76\x1c\x8c\xf0\xe0\xeb\x36\xe2\x3a\x93\x4a\x81\x96\x6f\x41\x18\xe6\x91\x58\x31\xc1\x3c\x04\x83\xdb\x26\x2c\x41\x18\x09\x2a\x3a\x10\xce\x83\x6e\x94\xab\x8a\x8d\x40\x44\x0f\x4a\x5a\x50\xda\x80\xf1\xb2\xc2\x2f\x41\x1b\x6c\x01\x04\x6b\x98\x04\x65\x1c\x76\x11\x87\x19\xa2\x34\x6f\xa9\x23\x52\x81\x0b\x2c\xf5\x4d\x1a\x16\x98\x34\x4b\x03\xd6\x73\x89\x3d\xb4\x10\x42\xe0\x0a\x9c\xcd\xb0\x6b\x56\xb1\xea\x1f\xac\x9d\x70\x71\xc2\x35\xc2\x1e\x72\x50\x01\xb4\xe4\xd8\x45\x6c\x01\xed\x1e\x61\x02\x07\x29\x3c\x88\xc8\x41\x49\x85\x4d\xa6\x71\x10\xca\x71\x10\x01\xfb\xc4\x41\x29\x99\x7e\xd1\xde\x2d\x39\xf6\x97\x63\x87\x79\x9d\x68\x33\x05\xd1\x07\x96\xbe\xeb\x21\x43\x44\xcc\x81\xf7\xbe\xfa\xa6\x9c\xaa\x6e\xc9\xfa\x6d\xe6\x8d\x46\xbf\x95\x0a\xac\x4f\x53\x29\x05\x58\xc4\xcf\x02\x53\xf7\xbf\x4a\xb0\xd6\x31\x0f\x51\xeb\x0c\x07\xd8\xb0\xf4\x4d\xe8\x85\xc6\x66\x15\xd5\xbf\x23\x10\xce\x82\x34\x16\xa4\x07\x6d\x0c\x68\xe9\xc0\x86\x2c\x82\xb1\x8c\x3e\x69\xac\xb4\xc0\x71\x77\xc6\xbf\x45\x22\xa2\x70\x8b\x1b\x8b\x23\x1f\x9d\xc1\x59\xb0\x38\xf6\x0a\xec\x52\x83\x73\x01\x09\x98\xc1\xb5\x15\x94\xe2\x0a\x09\xe8\x10\x42\x8e\x08\xdd\x1b\x8b\x54\x89\xa5\x2f\xe5\xe1\x22\xd0\x2c\x64\x98\x64\x59\xfa\xa6\xb6\x6b\xe3\x38\x38\x13\x08\x91\xaa\xbe\xd5\xc0\x68\x61\x13\xc2\xb7\x52\x62\x1b\xf0\x3c\x34\x34\x34\x42\x3b\x24\x8d\x2c\xe0\xf7\x3f\x53\xfb\x53\xa6\x06\xe9\xb1\x13\xbe\xd7\x40\xbe\xe9\x32\xb5\x4d\xd6\xdf\xaa\x21\x34\x4a\x07\x91\xac\xc9\x74\x9c\x0f\x93\xac\xe9\x6c\x7e\xbb\xba\x20\x66\x26\x1f\xff\x6d\x80\x80\x95\x57\x57\x7f\x58\x22\xa6\xf0\x74\x93\xa0\x54\xeb\x44\xc2\x7d\xc2\xe8\x74\xc3\x39\xc2\x6d\xed\x2a\xf2\x13\x59\xfa\x12\x61\x88\xde\xe3\xd2\x8a\x48\x7c\x54\xb4\x80\x1b\xca\x2a\x03\x3e\x4a\x0e\x2e\x68\x26\x41\x0a\x9d\x19\x90\x8e\xd1\xa7\xda\x53\xd1\x80\xd1\xf2\x8d\x04\xc4\x9c\x16\xbc\x60\x01\x0f\x3f\x69\xed\xbf\x98\x0e\x8d\x24\x18\xec\x8e\x02\x1f\x90\x66\xd2\x72\x0b\x69\x6f\x78\x59\x48\x08\xb8\xb7\x21\x58\xb9\x19\x21\x29\x36\xc7\x3f\x37\xe0\x8c\xa5\xaf\xcb\x40\x07\x8d\x3f\xf5\x1e\x16\x01\x3f\xfe\x0e\xbf\xb2\xe0\x1a\x64\xa4\x4f\x06\xd6\x5a\xfc\xa9\x01\xa5\xa1\xcf\xfb\xf5\x74\xdc\xdf\x68\x90\x0a\x87\x57\x99\xf0\x5e\x43\xc4\x1d\x26\x24\x2e\x7f\x63\x58\xfa\x56\x53\xe5\xa9\xbf\xc1\x7a\xe6\x41\x3b\x55\x7d\x13\x62\xeb\x1c\x44\x29\x47\x48\xed\x1c\x51\x47\x11\x40\x3a\x83\xd4\xd2\x20\x41\xfc\x56\x04\x66\x84\xb4\x97\xe4\x5f\x88\x96\x83\x72\x48\xdd\xbc\xd3\x1c\x9c\xf7\x05\x97\xa0\x34\x7d\xde\x46\x10\x9e\x8e\xb4\x60\x91\xcd\xb2\x38\xda\x12\x91\xc8\x7a\xe2\x25\xd7\x5c\x8f\xb0\x33\x56\x83\x34\x8a\x66\x26\x12\xfd\xc5\x83\x4e\xdd\xdf\x28\x88\x01\xd9\x97\x18\xec\x7b\x07\xd6\xe0\x48\x38\x11\xde\x48\x70\x38\x77\xd5\x68\xb8\xd4\xb8\xcd\x11\x2c\x90\x40\xd9\x11\x48\x8d\x34\x1d\x94\xc3\xe1\x91\x0e\x74\x54\x38\x5e\xfe\xfe\x57\x22\x45\x23\x4e\xbd\x16\x1c\x1c\x72\x90\x4a\x73\x08\xc1\xe3\xa0\x35\x56\x04\x1e\x25\x0a\x97\x84\x09\xfa\xad\x07\x7a\x3b\x1e\x84\x8a\xd8\x12\xe9\x13\xc9\x1f\x29\x22\xff\x02\xa9\x9a\x67\x9b\xa3\x8f\xe1\xd1\x07\xce\x29\xa2\x87\x12\x24\x65\xd2\xac\xae\xd7\x6f\x75\xb8\x57\x67\x7b\xb5\xe4\xf1\xdc\xab\x8e\xbd\xfa\xd4\xab\x0e\xbd\xea\xcc\xab\x8f\x3c\x3c\xf1\xa8\x8b\x92\xa7\xb1\x53\x78\xb2\x39\xb0\xda\x67\x06\xb7\xb3\xa9\xf6\x34\x76\xc3\x4a\xdc\xc4\xb8\xa5\x25\xe8\x60\x38\x58\x69\x71\x79\x71\x88\x24\xc9\x68\x6b\x5b\x1d\xc7\x06\x3b\x0e\x51\x8f\x40\x1b\xcd\xc1\x68\x03\x8e\x43\x40\x1e\x96\xf6\x91\x34\x06\x27\x99\x83\x34\x1a\xa4\xc6\x23\xdc\xe2\x2a\x44\x56\xc5\xa8\xac\x7b\xb0\xec\x3b\x3f\xdc\x21\xe7\xc7\xfd\x8d\x03\x2b\x25\xf2\x4d\xc2\x14\xb8\xff\x14\xed\xc7\x4a\x1a\xb0\xd5\xbf\xba\x77\x36\xfc\x80\x32\x69\xf5\x58\xde\x5a\x98\x42\x29\xb9\xe5\xff\xd2\x3c\x05\xce\xfb\xc2\x57\x8a\x60\xcf\x60\x39\xcf\x16\x1f\xc9\xf8\xe3\x63\xfe\xa5\x2d\x82\xed\x75\x79\x1e\x17\x6c\xbc\xa2\x83\xe8\x6f\xe3\x4e\x85\x5b\x0d\x45\x0e\x28\xb3\xff\x19\x4a\xb8\xcc\x27\xd9\xdd\xb4\x5c\xb0\xf1\xaa\x57\x7c\xff\xed\x53\xaf\x48\xff\xed\xc9\xfd\xef\x32\xee\x6c\xc3\x96\xc7\x0c\x0f\xe8\xc4\xde\x6b\xac\x6a\xcc\x2a\x75\xce\xee\x0b\xad\x3d\xb0\xdd\xab\xad\x36\xf8\x74\x76\x55\x6e\x71\x0e\xdd\x34\xf7\xf8\xf7\x2c\x87\xbb\xbd\xf3\x3a\xa7\xd2\x05\x4c\xf2\x62\xfe\xa1\xa1\x25\x3b\xc0\xbb\xa6\xdd\xa3\xc6\x1d\xcd\xa6\xe6\xd6\x06\x60\x13\xdd\xe0\xb0\x7a\xef\x07\xad\xb2\xd5\x6d\x75\x61\xd7\x59\xba\xdb\x60\xd3\x23\x05\x6d\x60\xd2\xb9\x0f\xf5\xa9\xe5\xdd\xd3\x6c\xfa\x57\x4e\x6f\xcc\x7f\x1f\x2c\x5c\x4b\x1c\xf4\x8f\xd0\x64\xd3\xe9\x65\x2a\xbd\xb5\xe8\x2a\xb2\xc5\x77\xa7\xc8\x7e\x38\xf4\x2d\xc8\x1d\x24\x69\xcb\x63\x88\x3b\x16\x52\xa5\xdc\x85\xc2\xd7\x17\x67\xd9\x62\x51\x7e\xea\x2b\x74\xfb\x05\x5e\xb7\x75\xbb\x5f\x39\x2f\xb2\x2f\xf9\x62\xf9\x5d\xad\xa3\x6d\xd3\xea\xc1\x59\x64\x12\xda\x77\x25\x2e\x44\x26\x0a\x9f\x74\x54\xde\x76\xd5\x3f\x5a\xab\x82\x0f\xe6\x72\x70\xa4\xc3\xc4\x4c\xde\x2b\xca\x53\xd1\x75\xe6\xfd\xaf\x8a\x98\x64\x03\xf6\x7d\x60\x1e\x8c\xb0\x4c\x6a\xe2\x93\x4c\xcd\xa3\x45\x92\x86\x13\xd0\xd6\xe5\xb3\xde\x2a\x20\xa2\x26\x1e\x32\xf8\x8e\xea\x55\xa1\x64\x62\xde\x23\xa7\x0f\x3a\xea\xc2\x21\x0c\xd7\x10\x9a\x2c\x0c\x78\x85\x4c\xa1\x96\xba\xea\x9f\x69\x77\xce\x2b\xb3\xee\x5d\x27\x4b\x45\x14\x67\x85\x8c\x6d\x55\x8e\x24\xa5\x0d\x32\x66\xba\x29\x36\x24\x54\xa9\xa6\x5e\x45\xa2\xaa\xa7\x5b\x4d\x2a\x86\xd5\x68\xa9\xdf\x27\x5e\x39\xea\x82\x3b\x52\x9b\x68\x18\x90\x6f\xe7\x8b\xf2\x7a\x91\x2f\xd3\xf3\x4c\x2b\x3c\x9b\x67\xd9\xaa\xb2\xce\xdd\x4d\x4c\x37\x34\xb1\x7a\x16\xe6\x1b\xac\x65\x02\xb9\xf8\x8c\xec\xd0\x10\xa0\x8c\x31\xfe\x44\xb9\x38\xef\xd9\x72\xf9\xea\x6c\xb9\x5a\xdc\x8e\x56\xb7\x8b\x9c\x4f\x47\x48\x18\x52\xd3\xce\x5e\xff\x4c\xcf\xac\xbc\x86\xe1\x7c\x7e\x99\x2d\xf3\xaf\xe5\x3c\x1b\x4d\x57\x5f\x2e\x40\x3e\x6c\x83\xab\x87\x6b\xf3\xdc\xcd\xc5\x16\xc8\xab\x6c\x36\xfa\xc2\x97\xf3\xe9\x8c\xe9\x25\x9b\xce\x28\x6e\x46\xce\xf0\x84\xcb\x16\x2f\xd7\x55\x29\xfb\x12\x89\xd5\xc7\x9c\x8f\xb3\xe5\x24\x5b\x2c\xb2\x2f\x17\x82\x19\xd3\x4c\x2d\xaf\xae\x96\xf9\xea\x42\xd4\x69\x88\x63\x94\xcd\x2f\x16\xe5\xed\x6c\x9c\x1e\xf2\x41\xee\x80\x97\x8b\xe9\xf5\x74\x76\x61\xc5\x5f\x98\x15\x7f\x69\x3e\x84\xb3\xb7\x8d\x5f\xc5\x5f\xbe\x1e\xdc\x8e\x07\x65\x07\xa0\xb5\x66\x52\x0e\x80\x73\x23\x1e\xec\x11\xe8\xb9\x94\xe2\xc1\x1f\x55\x83\xb4\xe2\x61\x55\x1e\x5e\x83\x52\xe2\xe1\x80\xe1\x59\x4e\x6f\xe6\x45\xbe\x1e\x9f\xf5\x40\x5f\x2c\xca\x55\xb6\xca\x7f\x14\xe3\xfc\xfa\x05\x56\xdc\xcb\xd1\x2e\xe5\x3d\xfc\xfc\x53\x5a\x77\x3f\x8f\xf3\xab\x65\xb5\xeb\x53\x83\x36\xaa\x98\xaa\x81\xf4\x52\xf6\xab\x33\xdd\xa6\xe0\xd3\xf1\xab\xb3\x2c\x51\x62\xa9\x98\x2d\x1c\xd3\x77\xa1\xe0\x8e\x69\xee\xb8\xfe\xad\xda\xd1\x09\xfb\xed\x32\x67\xb4\x1b\x2e\x26\x8b\xfc\x8a\x2a\xc8\xf6\x6c\x0c\x5a\xf8\x88\xe2\x94\xb2\xf5\x66\x68\x5e\x2f\xed\x3d\x9b\xc9\x54\x6d\xef\xf9\xdc\x31\x99\x65\xcd\xd2\x47\x1d\xeb\xa9\xba\xd6\xd1\x5e\x51\x31\x23\xf4\x6e\xe3\x85\xe5\xc7\xe9\xfc\xfb\xbf\x72\x0c\x4c\xd4\x6c\x17\xb2\x54\xae\x66\xbb\x44\x60\x82\x34\xc7\x2c\x34\xd8\x2e\xba\xe8\xb1\xda\x72\x0b\x22\xba\x82\x47\x90\x5a\x32\xfa\xbe\x71\x60\xbc\x62\xe9\x5b\x5f\x14\x85\xfb\x1b\x05\xc6\x91\x4a\x29\xba\x26\x22\x41\x85\x12\x82\x16\x9e\xbd\x37\x90\x87\x84\xc3\x62\xc9\x64\x29\x93\xf2\x4b\x05\xc8\x27\xd3\x71\xfe\xe1\x1c\x36\x53\x5c\x1d\x47\xac\x12\x74\xa0\x7a\xed\x2b\x2b\x8a\x17\xac\xc7\x71\x7d\xfe\x7e\x66\x32\xed\x65\xf0\x81\x19\x50\xa1\xa7\x4d\xa5\xcf\xfb\xc0\x1c\x44\x43\x10\x4c\x6f\x55\xba\xbe\x27\xa0\x50\x20\xb3\xa4\x90\xd7\x52\x5d\xd5\x23\xab\xb0\x45\x10\xae\xd8\x0a\x95\xea\x44\x18\x46\xb7\xd3\x8a\x10\xde\x37\x67\xed\x62\x51\x96\xab\x34\xd0\xf3\x45\x7e\x85\xec\xeb\xa8\x2c\xca\x05\x5f\x8e\x26\xf9\x0d\xd2\xd7\xc5\xc7\x17\x5f\x79\xb2\x32\xe3\x64\x96\xc7\x71\x5c\x2e\x28\x5e\x54\x56\xbc\xe4\x7c\x55\xce\x72\x7e\xbd\xc8\xbe\x70\x21\x44\x65\x55\xf2\x69\x32\x5d\xe5\x2f\xda\x99\xb6\xce\xac\xff\x6c\xe7\x4b\xd1\xca\x97\xa2\x9b\xdf\x2e\x2f\xbb\xe5\x55\xbb\xbc\xea\x96\xd7\xed\x7c\xdd\xcd\x37\xed\x7c\xd3\xcd\xb7\xed\x7c\xdb\xcd\x77\xed\x7c\xd7\xcd\xf7\xed\x7c\xdf\xcd\x0f\xed\xfc\xd0\xcb\x6f\xf7\x3f\x74\xfb\x1f\xdb\xe5\x63\xb7\x7c\x6c\x97\x8f\xbd\xf2\x31\x56\xf9\x97\x45\x36\xfa\xd8\xc8\xcc\xf3\xd9\x8e\xa9\xa5\xdc\x06\xee\xea\xef\x0e\x44\x73\x76\xab\xbf\xbb\x10\x1d\x1c\xb2\x87\x43\x75\x70\xa8\x1e\x0e\xdd\x81\xd0\x3d\x08\xd3\x81\x30\x3d\x08\xdb\x81\xb0\x3d\x08\xd7\x81\x70\x3d\x08\xdf\x81\xf0\x3d\x88\xd0\x81\x08\x7d\x88\xce\x78\x84\xde\x78\xc4\x0e\x8e\xd8\xc3\x11\x3b\x38\x62\x1f\xc7\x96\x59\xbf\xc4\x53\x76\xdb\xa4\xa7\xcc\x35\xee\xfa\xcf\x76\xfe\x66\xc6\xeb\x3f\x3b\xf9\xed\xf2\xb2\x5b\x5e\xb5\xcb\xab\x6e\x79\xdd\xce\xd7\xdd\x7c\xd3\xce\x37\xdd\x7c\xdb\xce\xb7\xdd\x7c\xd7\xce\x77\xdd\x7c\xdf\xce\xf7\xdd\xfc\xd0\xce\x0f\xbd\xfc\x76\xff\x43\xb7\xff\xb1\x5d\x3e\x76\xcb\xc7\x76\xf9\xd8\x2b\xbf\x65\x66\x17\xf9\x78\xeb\xc4\x52\xde\x1a\x6f\xf5\x57\x2b\x77\x33\xab\xd5\x5f\xed\xdc\x56\x59\xd9\x29\xab\x5a\x65\x55\xa7\xac\x6e\xe5\xea\x4e\xae\x69\xe5\x9a\x4e\xae\x6d\xe5\xda\x4e\xae\x6b\xe5\xba\x4e\xae\x6f\xe5\xfa\x4e\x6e\x68\xe5\x86\x6e\x6e\xab\xbf\xa1\xd3\xdf\xd8\x2a\x1b\x3b\x65\x63\xab\x6c\xec\x96\xdd\x32\x7b\xe5\x22\x9b\x5d\x6f\xdf\x99\x75\xf6\x1a\xf7\x26\xa1\x0b\xb3\x99\xc9\x4d\x42\x0f\xa6\x8b\x47\xf6\xf1\xa8\x2e\x1e\xd5\xc7\xa3\xbb\x30\xba\x0f\x63\xba\x30\xa6\x0f\x63\xbb\x30\xb6\x0f\xe3\xba\x30\xae\x0f\xe3\xbb\x30\xbe\x0f\x13\xba\x30\x61\x00\xa6\x3b\x3e\xa1\x3f\x3e\xb1\x8b\x27\xf6\xf1\xc4\x2e\x9e\x38\x80\x67\xcb\x8a\xf8\x92\x17\x45\xf9\x69\xeb\x8a\xa8\xb3\xd7\x35\x6c\x12\xba\x30\x9b\x15\xb1\x49\xe8\xc1\x74\xf1\xc8\x3e\x1e\xd5\xc5\xa3\xfa\x78\x74\x17\x46\xf7\x61\x4c\x17\xc6\xf4\x61\x6c\x17\xc6\xf6\x61\x5c\x17\xc6\xf5\x61\x7c\x17\xc6\xf7\x61\x42\x17\x26\x0c\xc0\x74\xc7\x27\xf4\xc7\x27\x76\xf1\xc4\x3e\x9e\xd8\xc5\x13\x07\xf0\x6c\x59\x11\xa4\xb7\x98\x67\x8b\x7c\xb6\x0e\xb9\xbc\x49\x59\x43\xdd\x65\xb7\xc5\xaa\x75\x0a\x22\x8e\x24\x10\x6c\x97\x05\xda\x16\xcc\xfb\x5c\x3e\xf6\xd8\x3b\xaf\xe5\x0a\xc4\x7c\x88\x58\xd1\xe5\x4c\xfb\x62\x45\x8f\xad\x95\x7b\xd8\x62\xb9\x87\xad\x56\x7b\xd8\x72\xbd\x87\xad\x37\x7b\xc4\x82\x23\xc5\x8a\x9e\x58\xe2\xf7\x88\x35\x61\x8f\x58\xd4\x11\x2b\xd4\x1e\xb1\xa2\x27\x96\xc5\x3d\x62\xdd\x66\x91\x0e\x0a\x0e\xcf\x62\xc5\xb3\x58\xf1\x2c\x56\x3c\x8b\x15\xcf\x62\xc5\xb3\x58\xf1\x2c\x56\x7c\xcf\x62\xc5\x70\xf6\x76\x6a\xb1\x4d\xa8\x18\x60\x76\x7b\x42\xc5\x00\xd3\xdc\x13\x2a\x06\x98\xef\x9e\x50\x31\xc0\xc4\xf7\x84\x8a\x01\x61\xe0\x24\xa1\x62\x40\x38\xe9\x09\x15\x03\x42\x4e\x4f\xa8\x18\x10\x96\x7a\x42\x85\x3a\x40\xa8\x18\x10\xde\x7a\x42\xc5\x80\x10\xb8\x8d\x5f\x3b\x4d\xa8\x28\xf2\x9b\x72\x56\x3d\x76\xb1\xd7\xe6\x7e\xaf\x1f\xd1\x70\xf4\x2b\xc8\x3e\xf5\x6d\x0e\xbb\x30\xb5\xc1\xe4\x7c\xca\xaf\xb3\x55\xfe\x29\xeb\xdf\x37\x0e\x17\xd9\x0b\xf6\xcf\x4f\x7d\x03\xc5\x2e\xcc\xc7\xdb\xcb\x7c\x31\xcb\x57\xf9\xfe\x86\xce\xca\x9b\x6c\xbc\x17\xaa\x9c\x8e\x47\x7b\x81\x56\xf9\x62\x91\xd1\xfd\xf5\x7e\xfb\xc7\x14\x54\x7f\x5c\xc0\x55\x36\x2d\xc8\x76\xb5\x7e\x02\x64\x37\xf8\x22\x1f\x4f\x17\xf9\x68\xb5\x1b\xfc\x5f\x6e\x5d\xb9\x19\xf0\xbd\x36\x96\x4f\x6b\x1b\xb9\xf7\xa2\xb3\xb2\x92\x1c\x2d\x1a\x93\xdc\x0c\x1c\x41\x31\x68\x04\xa7\xa4\xf9\xa2\xbc\x9b\xb6\x1a\xdb\x82\xbc\x2e\xcb\xeb\x22\x3f\x08\xf4\x66\x3a\x5a\x94\xcb\xf2\x6a\x75\x10\x74\xf9\x71\x95\x6d\x03\xec\xc4\x8a\xc0\xcd\xd7\x75\x72\xee\xc1\x54\x1e\xdd\x87\x81\x35\xf7\xe8\xde\x22\xff\xfc\xb4\xda\x0b\xb3\x59\x0b\x7b\x41\x69\xf3\xed\x85\xc2\x91\xd9\x0b\xb4\xde\x7c\x3d\x17\xf0\xab\x72\x41\xd1\x3a\x2e\xb3\x45\x15\x5c\xe3\xc3\x36\x7f\xdc\xed\xc6\xac\x87\x5b\x72\x7d\x23\x0f\xf0\xaf\x97\xd9\xe8\xe3\x35\xd9\x2a\xf1\x45\x3e\xcf\xb3\xd5\xc5\xac\xac\x7e\x7b\xd9\xc8\x9b\x97\x4b\x72\xdf\xbf\x18\xe5\xb3\x55\xbe\x18\x36\xaf\x67\xfd\xae\x10\x81\x81\xba\x76\xa0\x70\x36\x1d\xab\xfb\x63\x30\x8d\xa7\x77\x0c\x46\x8b\xe9\x6a\x3a\xca\x8a\x47\xa0\x20\xd3\x92\x47\x94\x4f\x21\xec\x9a\xc6\xd9\xc7\xe3\x48\x21\x15\x1e\x87\x63\x1d\x56\xe1\xb1\x68\x96\xcb\x69\xc3\xe4\xe7\x78\x0c\x55\x00\x9e\xdd\x18\xf6\xb8\x5f\x14\xe5\xf5\x74\x56\xed\xa5\xbf\xa5\xc8\x5f\x14\xcd\xa7\x1d\x1f\x62\xbb\x8b\x3c\x85\xb4\xb9\x6e\xbb\x67\x1c\xe9\x50\x7f\x92\x0b\xc8\x0f\x6b\x47\x86\x47\xee\x84\xc3\xf1\x6c\xd9\x07\x47\x22\xe8\xec\x82\x23\x4b\x0f\xec\x81\x23\x31\x0c\xec\x80\x23\x31\x0c\xaf\xff\xa3\x91\x74\x56\xff\x91\xe5\xbb\x6b\xff\xa9\x5d\x82\x2a\x5f\x1b\x06\x45\x39\xca\x8a\xe9\xaa\xcf\xf3\x9e\xe2\x40\xb4\xf5\xfd\xc5\x03\xca\x5e\xde\x8e\x3e\xe6\xab\xda\x75\x88\x66\x71\x37\xcc\x7a\x9e\x8e\xf6\x63\xea\x87\x05\x3b\x15\xc5\xf1\xe5\x90\x27\x3c\xc5\xf1\x2a\x1b\x8f\x17\xf9\x72\x39\xe4\xf3\xf4\x48\xb7\xad\x03\x8a\x93\x83\xf3\xa9\x75\xd7\x24\xe5\xc4\xe2\xc8\x2d\x27\x06\xe1\x44\x04\x44\x91\x4e\x2c\x4b\xfe\x69\xe3\xbc\xc8\x4e\x45\x70\x93\x2f\x27\x27\x16\x9d\x95\xe3\xfc\xd4\xa2\x3d\x22\x78\x44\xe1\x8a\x74\x9d\x5c\x7a\x75\x6a\x87\xe7\xe5\x62\x75\x6a\xd1\x45\xb9\x2a\x47\xe5\xa9\x6b\x6c\x59\x22\x5d\x39\xb1\xf0\x6a\x75\x6a\xb5\x75\x84\xc1\x63\x4a\xd7\xd1\xeb\x36\xbb\x6a\x48\x25\xb0\xa7\x70\xb5\x25\x4e\x28\xb9\x5e\x1c\xa7\x94\xed\x05\x63\x3c\x05\xcb\x7a\xd0\x8e\x2f\x8b\xc2\xd2\xab\x9b\xfc\xc3\x70\xd9\xb6\x86\xa4\xe8\xe8\x02\xb6\x80\x91\x56\xab\x07\x35\x10\xa0\xba\x9e\xaf\xa1\x48\xd5\x87\x94\xaf\x06\xfe\xd4\xe2\xd5\xa8\x1d\x54\x7c\xed\x3a\x9b\xc8\xfe\x4e\x02\xde\x85\xdd\x4a\x6c\xbb\x80\x3b\xa8\x4c\x17\x74\xc7\x36\x19\x0c\xea\x9d\xfc\x00\x5e\x27\x7b\x02\x12\x0a\x8e\x29\x47\x71\x78\x4f\x2d\x3c\xce\x67\x5f\x0e\x2c\xdb\x0f\xfe\x7b\x28\xf0\x1e\x97\x88\x83\x9d\xaf\x3b\x45\x90\x2b\xfb\x07\xf9\x7f\xfc\xef\x57\xe9\x00\xf9\x70\x4c\x91\x35\x3b\xb6\xb7\xd4\x31\x6e\x9b\x9d\x02\x29\x48\xf2\xb1\xa5\x1e\xe7\x81\xb2\x6f\x6e\x9e\xcc\x73\x65\x98\x2f\xde\x55\xa2\x1a\x8e\x63\x8b\x0d\xb8\xc8\x34\xde\x4d\x78\x02\x27\xfd\x03\x18\xec\x93\x91\x3e\x05\xa6\x41\x26\xfc\xa4\x58\x04\x3b\xd8\xf2\x27\x8f\x6d\x70\x12\xc2\xed\xac\xfb\x69\xe8\x76\x9c\x05\x27\x21\xdc\xcd\xde\x9f\x84\x72\xeb\x19\x74\x12\xb6\xdd\x22\xc0\x49\x28\xb7\x09\x05\x27\x21\xdb\x26\x26\x9c\x86\x6c\xab\xe0\x70\x12\xba\x1d\x87\xfc\x89\xf8\x86\x85\x8b\xd3\x90\x6d\x11\x37\x4e\x43\xb6\x43\x00\x39\x09\xe1\x76\x91\xe4\x24\x74\x5b\x84\x94\x93\x70\xed\xe0\xc7\x8e\xc0\x77\x88\x20\x73\x02\xba\xad\xa2\xcd\x09\xb8\x76\x08\x3b\xa7\x60\x3b\x44\xfc\x39\x01\xef\x0e\x81\xe8\x78\x6c\xbb\x44\xa4\x2d\xb1\x75\xf6\x12\xf1\xed\xe5\xb6\x93\x9b\xed\x65\x06\xd5\xb3\x87\x87\xff\x39\x80\x35\x39\x18\xc9\x29\x25\x07\x59\x8f\x83\xa2\x16\xed\x60\x35\x4e\x8f\x7a\x74\x0c\x82\xed\xac\xc4\x61\xc5\x77\xb0\x0e\x07\x21\x38\x69\x95\x1d\xa8\x0b\x3c\xa8\xf4\x6e\x56\xe0\x20\x14\xdb\x8e\xfe\x83\x0a\x6f\x3b\xea\x0f\x2b\x7c\xec\x5e\x3b\x58\x2b\x78\x60\xf9\xe1\xa3\xfb\xb0\xc2\x5b\x8e\xea\xc3\x0a\xef\x38\x9a\x0f\x42\xb0\xfd\x28\x3e\xa8\xf8\x96\xa3\xf7\xa0\xb2\x3b\x8e\xda\x1d\xe5\x0f\x39\x5a\x0f\x28\xbe\xf5\x28\x3d\xa0\xec\x8e\xa3\xf3\x90\xd2\x87\x1c\x95\x07\xe0\xd9\x71\x34\xee\x2f\x7d\xd0\x51\xb8\xef\x54\xea\x3e\xb1\xb4\xc9\x5b\x3f\x0c\xb5\xd7\x0c\x69\xff\x9b\x71\x74\xaa\xc3\x34\x3d\x02\x70\x97\xbf\x6e\xd9\x46\x1d\x50\x34\x25\x57\x61\x6c\x3f\x9c\x5a\xfc\x76\xb1\x20\x3b\xa7\xd3\x8a\x27\xeb\x98\x56\xf5\xcd\x60\x1d\x70\x99\x91\x32\x73\xf6\x71\x4b\xfe\xb8\xac\x2e\xde\xb7\xe4\x17\x79\xb6\x98\xed\x00\xe8\x8e\xfa\xd5\x22\xcf\x57\xf9\xe7\x15\x4f\x2f\x84\xfd\xbf\x95\x89\xcb\xe6\x4d\x8a\xd6\xfb\x51\x9b\x72\xbd\xd7\x2a\x36\x2d\x63\xd9\xf6\x37\x2d\xe0\x2a\xcf\xc7\xeb\x3e\xee\x84\xdc\xf4\x64\x17\xd8\x96\x67\x39\x5e\xad\x16\xb7\xf9\x87\xa3\x9e\xea\xf8\x5d\x1e\xf7\xd8\x53\x7e\xa8\x53\x4f\xf9\x60\xc8\xe9\x28\x76\xb6\xec\xa4\xd0\x8e\xc3\x8f\x95\x0c\x43\x6d\xcd\x7e\x8c\xca\xee\x44\x5c\x8f\x40\xd0\xe6\x92\x4f\x88\x75\x39\xc4\x2c\x3f\x55\xc8\xcc\x13\xf0\x0c\xb0\xce\xa7\x60\x19\xe2\xa0\x4f\xc0\xb3\x85\x91\x3e\x01\x53\x9f\x9f\x3e\x01\xc9\x16\xb6\xfa\x04\x4c\x3d\xee\xfa\x04\x1c\x3d\x26\xfb\x14\x1c\x7d\x5e\xfb\x04\x2c\x43\x2c\xf7\x49\x68\x56\x8f\x1e\x94\x1e\x03\x7e\x0a\x8e\x21\x3e\xfc\x04\x3c\x03\xec\xf8\x09\x58\xba\x5c\xf9\x09\x28\x86\x98\xf3\x83\xd1\xec\xe4\xd1\x8f\xc6\xd2\x67\xd5\x8f\x46\x31\xc4\xb1\x1f\x8f\x64\x27\xe3\x7e\x34\xba\x21\xfe\xfd\x58\x24\x83\x6c\x7c\xe3\x5d\xe4\xad\xbc\x73\x17\x66\x1b\x93\xbc\x05\xae\xc7\x0d\x0f\xc3\x0d\xb0\xbd\x07\x3d\x59\x0c\x57\x65\x71\xb8\xb3\xc2\x70\x58\xe6\xde\x7b\x67\xec\xa8\x17\xcd\x8e\x79\x31\x79\xfb\x28\x1f\x8b\x64\xeb\x34\x9c\x88\xa8\x3f\x4f\xa7\x21\x1a\x9c\xc8\x23\xdf\x93\xdb\x5b\x60\xfd\xd4\x48\xa7\x60\xf3\xd9\xd4\xcd\x92\xe8\xbe\x9a\xda\xcb\x69\x07\xe4\xde\xf6\x66\x6a\x0f\xa2\x7a\x32\xb5\x97\xde\x33\x5a\x7d\xec\xe2\x78\x8a\x75\xf1\x14\x4b\xe2\x49\x56\xc3\x53\x3d\x2c\xb8\x6d\x0d\x74\xdd\x4c\xd2\x5d\xff\xfa\x7c\xd9\xe7\x95\x92\xc0\xd3\x41\x72\x18\x6c\x7d\x62\x1c\x06\x5d\xd3\xf2\xfd\xd0\xb7\x45\xdf\x73\xe7\x94\x20\x90\xbb\x42\xcc\x1f\x14\x12\xb4\x01\x66\x76\x82\xad\xb2\xda\x0a\xbb\xb1\x59\xb6\xc6\x07\x27\xf3\x8b\xe3\x42\x8a\x93\x5d\x51\xb7\x77\xdf\x30\x62\xf9\x0e\xd8\x59\xb9\xe2\xe3\xfc\x6a\x3a\xcb\xc7\x47\xd6\xd2\x28\xb9\xbf\xba\x27\x0a\xf9\xbf\xf7\xd9\xcd\x6d\x00\xc3\x62\xfc\xba\xd0\x41\x6f\x40\x6d\x7f\xde\x6e\xef\x13\xcb\x3d\x40\xb2\x36\xec\x82\x36\xf4\x11\xbd\x7e\xd5\x16\x7f\xfb\xb4\x0d\x35\x5c\x8b\x7f\xe8\x00\x1d\xf5\x36\xe9\x4e\x0d\xd3\x69\xaf\x9c\xb6\x4a\x75\x1c\xd2\xc8\x0f\xae\xe2\xf5\x36\x51\x86\x92\x2f\x50\x59\x20\x99\x68\xa6\x64\xed\x72\xdb\xb8\xa9\xad\x0f\x42\xec\x7e\x70\xf5\x28\xfe\xe9\xc4\xa7\x9f\xb7\x9e\x96\x8f\xc2\xb7\xe5\xf4\x7c\x0a\x9c\xdd\xd3\xf4\x09\x70\xf6\x4f\xd7\xc7\xbf\x83\x7b\x60\xd9\x2d\xa7\xef\xee\x47\x6f\x4f\x58\x17\xc7\xbf\xe4\xbd\x67\x61\x9c\x8a\x70\xe7\xca\x78\x24\xd2\xe1\xa5\xf1\x38\xa4\xdb\xd6\xc6\x69\x0f\x12\x1f\x59\x78\xdb\xea\x18\x23\x8b\xd0\xd4\xff\x7d\x6d\xbd\xcd\xdd\xf3\x92\x6d\xe5\x76\xfc\x64\x5f\x0e\x17\x19\x04\x6d\x78\xdb\x52\xbc\xb6\x8b\x6a\xc8\xdf\xe2\x1f\x03\xa1\xdb\x1b\xb6\xac\x89\xa4\xf6\xd9\x9a\xbd\xf6\xaf\x07\x3d\xaa\x54\xb9\xba\x0d\x46\x06\x28\x6f\x57\x79\xca\xaf\xdd\xc7\x52\x5b\xd6\x87\x62\x7a\xa2\xfe\x53\x4e\x32\x4d\x15\x71\xe2\xcb\xbc\xac\x52\xf8\xac\x5c\xdc\x64\xc5\x8b\x7e\xe7\x17\xd7\x97\x3f\x56\xe0\xcd\x20\x70\x2f\x5e\xbc\xbc\x9b\x2e\xa7\x97\x53\xf2\x83\xa3\x5f\x8b\xfc\xe5\x3c\x1b\x8f\x51\x98\x11\xcc\xcc\x3f\x3f\xfb\x26\x3f\xfb\x26\x3f\xfb\x26\xd7\x85\x9e\x7d\x93\x4f\xc3\xf0\x67\xf5\x4d\x4e\x4f\xe3\xd0\x41\xb9\xca\x2e\xf9\x2c\xbb\x63\xb7\x9b\xab\xf2\x27\x0b\xee\xf3\xec\xfb\xfc\xec\xfb\x7c\x42\xe9\x67\xdf\xe7\x67\xdf\xe7\x67\xdf\xe7\x67\xdf\xe7\x67\xdf\xe7\x43\x7d\x9f\xff\x54\x51\xf3\x0e\x74\xe4\xfe\xb6\xc1\xf5\xb6\x40\x1e\xec\x3d\x7e\x82\xdb\xf6\xb3\xbb\xf4\xb7\x75\x97\xce\x6f\xf6\x39\xde\x3e\x3b\x3b\x3f\x3b\x3b\x3f\x12\xe9\x53\x60\x7a\x76\x76\x7e\x76\x76\x7e\x76\x76\x7e\x76\x76\x7e\x76\x76\x7e\x76\x76\x7e\x76\x76\x7e\x76\x76\x3e\x11\xc9\x29\x25\x9f\x9d\x9d\x9f\x9d\x9d\x9f\x9d\x9d\x9f\x9d\x9d\x9f\x9d\x9d\x9f\x9d\x9d\x9f\x9d\x9d\x77\x9b\x87\x3f\xc9\x0b\x19\x74\x4b\xdb\x1e\xcc\x47\x3f\xa3\xb1\x0f\xe7\xee\xe7\x36\x9a\x66\xd3\xc5\x34\x05\x0b\xfc\xeb\x2b\x32\x28\x68\x74\xfe\x4f\xea\x6c\xfd\xed\xdd\xa4\x8f\x70\x69\x3e\xc8\xf7\xf8\x88\xd7\x51\x9e\x1d\x90\x9f\x1d\x90\x4f\xc4\xf3\xec\x80\xfc\xec\x80\xfc\xec\x80\xfc\xec\x80\xfc\xec\x80\xfc\xc7\x73\x40\x3e\xfa\xdd\xb3\x67\x97\xe5\x3f\xb3\xcb\xf2\x77\xea\x79\xfc\x47\x7c\x37\xef\xd9\x4b\xfa\x44\x2f\xe9\xe7\x07\x07\x4f\x7c\x70\xf0\xd9\x67\xfc\x18\x9f\xf1\x2d\x5e\xde\x65\xb1\x9a\xce\xd3\xb9\xca\xc6\xf4\x64\x62\x33\xf7\xd9\x07\xfc\x8f\xe0\x03\xfe\x27\x71\xd3\xae\xb4\x6b\xd5\x58\x7c\xd8\x15\xb3\xe0\xe9\x1d\xb1\x8f\x7e\xa8\xf4\x5f\xec\xb9\x7d\xf4\xbb\xa8\xcf\x4e\xde\x7f\x3a\x27\xef\xa7\x7e\xea\xf6\xd9\xef\xfb\x4f\xeb\xf7\xdd\x77\xd9\x1e\x4f\x97\xf3\x22\xfb\x72\x31\x9d\x11\x7b\x70\x59\x94\xa3\x8f\x2f\x47\x25\xd9\x9e\x5e\x9c\x9d\x0d\x39\x11\x37\x5c\x90\x97\xd3\xfb\xfc\xa2\x72\xb0\x7b\xf9\x69\x3a\x5e\x4d\x2e\xe4\x22\xbf\x79\x39\x49\x6e\xcc\xf4\xfb\x5d\xbe\x20\xc6\x8b\x67\xc5\xf4\x7a\x76\x41\x37\x22\xab\x72\xfe\x30\x70\x2f\x91\x8d\x8a\x25\x5f\xe6\xf3\x6c\x91\xad\xaa\xd3\xf1\xeb\x65\xf9\x19\xab\x41\x41\xe8\xb2\x5c\x8c\xf3\x05\xbf\x2c\x3f\xd7\x75\xa9\xf9\xe7\x75\x5d\x6a\xfe\xf9\x40\x9c\x3b\x6e\x46\x06\xa1\xab\xa1\x6a\x8c\x4a\x3d\x6a\x69\xb8\xaa\xc6\x08\xf1\x97\x75\x63\xf0\xf7\xaa\xb9\x8b\x6c\x3c\xbd\x5d\x52\xd2\xc1\xed\xab\x6a\x4c\x18\x2e\xe4\xfc\x33\x5b\x96\xc5\x74\xcc\x9a\x9e\xee\x2f\xcb\x79\x36\xc2\x79\x01\xfb\x00\xf9\xcd\x65\xbe\xe0\xf3\xf2\xd3\xfa\x84\xe6\xab\xc5\xf4\xfa\x3a\xdd\x56\x6d\xcb\xe3\xd5\xee\xda\x05\x73\x71\x55\x8e\x6e\x97\x55\x53\x70\xe2\x1a\xcd\xf9\x21\xcb\xb2\x97\xeb\x59\x59\xad\xca\x9b\x2d\x99\x8b\x34\x2a\x83\x79\x45\x7e\xd5\xcd\x3a\x6e\x1e\xbf\xae\x03\x04\x64\x97\xcb\xb2\xb8\x5d\xe5\x2f\xb1\x99\xb8\x36\x08\x37\xfe\x92\xa6\x68\x94\x15\xa3\x1f\x71\x22\x18\x67\x66\xfe\xf9\x45\x3d\x5d\xbd\xf4\xdd\x21\x06\x9e\xc0\xb3\xfa\x89\x5e\xce\xfd\xc6\x3e\x49\x3b\x6e\xdf\x9f\xf8\x39\xbe\xa7\xb1\x48\xfc\x56\x16\x8e\xa7\x59\x21\x3c\x95\x11\xc8\x50\xed\x87\xdb\x1e\xfc\x5e\x2a\xf8\xa1\x56\xef\x0b\xa9\x77\x98\xa0\xfc\x2f\x96\xe0\x9e\x50\x98\xf9\xca\x79\x56\xe4\x0b\xa2\xad\xd9\xec\xba\xc8\xb9\x74\x7c\x79\x77\x7d\x71\xbb\x28\x7e\xfc\xb7\x71\xb6\xca\x2e\xa6\x37\xd9\x75\xfe\xd3\xf2\xee\xfa\x6f\x9f\x6f\x8a\x97\xa3\x49\xb6\x58\xe6\xab\x57\xff\xf5\x3f\x7f\xe1\xe1\xfc\xe7\xe5\xdd\x35\xfb\x7c\x53\xcc\x96\xaf\xce\x26\xab\xd5\xfc\xe2\xa7\x9f\x3e\x7d\xfa\x04\x9f\x34\x94\x8b\xeb\x9f\x94\x10\x02\x0b\x9e\xb1\xab\x69\x51\xbc\x3a\x9b\x95\xb3\xfc\x8c\xdd\x4d\xf3\x4f\x7f\x2f\x3f\xbf\x3a\x13\x4c\x30\xe9\x98\x74\x67\xaf\x7f\xbe\xae\x40\xfe\xa2\xb4\x10\xe2\xec\xf5\xcf\xe9\x36\xeb\xd5\xd9\xaf\x9e\x49\x99\x49\x26\x99\x60\x42\x4a\x2e\x27\x20\x84\xaf\x12\xa4\x14\x4c\xbd\x0b\xeb\x6c\x2e\xb9\xbc\xff\x35\x80\xb7\xcc\x82\xb7\x19\x78\xfc\x07\xb3\x04\x97\x60\x99\xb8\x53\xd0\x4a\x4d\x89\x5c\x81\xbd\x3f\xfb\xa9\xaa\x14\x1b\xc2\x17\xb7\x45\xfe\xea\x2c\xbf\xcb\x67\xe5\x78\x7c\x46\x0d\x71\x10\xad\x66\x12\x94\xd7\x99\x02\x69\x34\x4b\x5f\xac\x58\x41\xf0\x06\xbc\x95\x05\x08\xa1\x40\x08\xc3\x2c\x84\x60\x58\x04\xef\x0d\x82\x2b\xc7\xd2\x97\xda\x09\xde\x05\xa6\x20\x0a\x3b\xe2\xa0\x95\x02\x19\x02\x07\x17\x3c\xa8\x10\xb9\x04\xe1\x40\x45\xfd\x4e\x81\x94\xb6\x57\x19\x97\x10\xb4\x46\x28\x6f\x08\xa9\xad\xbe\x98\x09\x42\x38\x8e\x7f\x9a\x82\x7e\x05\x21\xb1\x29\x3e\xf0\x08\xde\x19\x6c\x1e\xc7\xf6\x8d\x40\x46\xc9\x41\x4b\x0d\xc6\x71\xb0\x5e\x82\x0f\x1c\xbc\xbd\xbf\x01\x2b\x14\x93\x60\x75\x81\x90\x92\x8a\x20\x0a\x85\xbd\xb1\x26\x03\xa7\x1c\xfe\xd0\x08\x82\xd2\x12\x82\xd5\xe0\x8c\xc1\x9f\x94\xa8\xa5\x01\x11\xc2\x44\x4a\xf0\xc6\x65\xe0\x0c\x02\xe8\x94\x69\x8d\xc1\x4e\xb7\xd0\x08\x0e\x4e\x15\x54\x0d\x36\xd4\x5a\x5e\xb7\x54\xbe\x01\xa7\x2d\xfe\x10\x20\x0e\x9b\x6d\x23\xe4\x60\x8d\x05\x2d\xcc\xfd\x19\x1b\x15\xd3\x79\x67\xf2\x7e\x7a\xfd\xf3\x4f\xd7\xaf\x7f\xc6\x85\xf8\xfa\xdf\x5e\xb4\x63\xfe\xd0\xda\xae\x62\xdb\x0c\xee\x83\x17\x2f\x0f\x84\x1b\x88\xf2\x73\x9a\x9f\xd9\xa9\x2e\x63\x87\x78\x72\xe1\x6e\x47\xf2\x93\xb8\x9f\xdf\x69\xab\xaf\x37\xd9\x7a\xb7\xd3\xf6\x0a\xa0\xb4\x65\x06\x84\x69\xec\x50\x29\x25\x08\x5a\xea\xb1\x30\x80\xd9\xaa\xb9\x7f\xa5\x60\x94\xc5\x87\xf2\xf8\xba\xe8\x7b\x29\x41\x3b\xc3\x02\xd8\x77\xaa\x4d\x17\x24\x11\x86\x49\x00\x27\xcd\xfb\x46\x13\x88\x1c\xec\x5f\x32\xbd\xc1\x1c\x5a\x2f\x7d\xa0\x81\xc5\x72\xb8\xc7\x67\x67\x12\x95\xf9\x57\x4e\xa2\x32\x4c\x99\xed\x93\x28\x15\x28\x15\x99\x05\x61\x9a\x83\x2c\x41\x18\x85\x53\x11\x0a\x0f\x96\xf9\xa1\x59\x0c\x05\xef\xe7\x49\x9a\xc5\xba\xac\x03\xe9\x1c\xb7\x10\xdd\x3b\x3d\x38\x8d\x12\x49\x90\x2d\xf8\x06\xf0\xf8\x79\x4c\xe3\xb9\x67\x1e\x2b\xa0\x87\x9d\x77\xab\xb5\xa1\xde\x3f\x70\x5a\x78\x26\xe5\x97\x0a\x90\x4f\xa6\xe3\xfc\xc3\xd7\x06\x4b\xdf\xac\xe7\xf3\x66\x95\x9c\xa2\x5a\xff\xba\xb5\x97\x9f\xb7\xaf\xd1\x4d\x9d\x4f\x11\x37\xeb\xb1\x01\x87\xbe\x75\xe4\x8f\x43\x6c\x99\x1f\xfb\xb6\xf8\x71\xaf\x7b\x1f\xee\x51\xfd\x7b\x7a\x58\x3e\xd2\x06\xfc\xd1\x6e\x1b\x3b\xeb\xdf\x6e\xbd\xfa\x2f\xb7\xc0\xdb\xd9\xce\xe1\x9b\xfc\x23\x6f\x08\xbf\xf1\x85\xd7\x57\xa4\x08\xcb\xff\x75\x9b\x2d\x72\x4e\xec\xf0\x77\xc3\x29\x6c\x63\xce\x25\xd3\x20\x75\x7c\x2b\x99\x84\x68\x43\xfd\x4d\xa9\x4c\x4e\x22\x78\xa5\xde\x22\x57\x6a\x14\x93\x4c\xda\x1a\xc2\x26\x90\x3b\x02\x78\xa3\x08\x3c\x7d\xe9\xe0\x52\x10\x1c\x82\xbf\xd3\x20\x4d\x3f\x9b\x25\x80\xdf\x30\xf7\xfe\xc6\x80\x0a\x74\x94\xbd\x69\x88\x18\x06\x94\x62\x16\x54\x78\xef\x20\x1a\x16\x0a\xae\xc0\x2b\x86\x9f\xc6\x39\x87\x6c\xb6\xc3\xb2\xee\x7d\x60\x11\x84\x2b\xb6\x42\x91\x78\xf0\x1e\x61\x58\x20\x28\xde\x86\x22\x59\xa7\x06\x0b\x8c\x6a\xc5\xfa\x91\x41\x52\xdb\x59\xe4\x7d\x67\xe4\xd0\x82\x18\x3c\x49\x06\xc0\x4e\x38\x55\x1e\x1b\x3d\xad\x5b\xfe\x1b\x47\x27\x7a\x82\xe0\x35\xbb\x7c\x43\x06\x4e\xa3\xaa\xa6\x93\x0e\xa3\x1d\x3d\x3c\x2a\x14\xc8\xef\xe8\xc0\xfd\x4d\xfc\x69\x4f\xf0\x54\x7d\x0a\x8f\xb6\x27\x71\x70\x1a\x6c\xfb\xbf\xda\x1a\xf9\x29\x8d\x4c\x07\x3b\xb4\xcd\x40\xed\x18\x33\x98\xaf\xbc\xda\x2d\xa3\xe9\x62\x54\xfc\x51\x4e\xb8\xc0\x44\x16\x58\xa0\x63\x00\x11\xbc\x49\x7f\x08\x11\x98\xb8\xbf\xa1\xd3\xc2\x82\x52\x1d\xd9\x39\x9d\x29\xb5\x80\xdc\x93\x8f\x1d\x13\x05\x57\x5c\x75\x84\xb5\x74\x78\x14\x12\x8c\x67\xf4\xd1\x10\x3d\xc7\xcf\xe9\xe7\xc7\xb6\x21\x1f\x38\x43\xb6\x82\x3e\xfc\xf7\xf5\x5b\xfb\xce\x2d\x99\x9f\xed\x7d\x1f\x69\x6e\xf9\xdf\xc7\xf6\xf4\xd9\x56\xe7\xc9\x6d\x75\x9e\xad\x59\x9e\xca\x9a\x65\xcd\x1b\x7c\x37\xfc\x00\x49\xb7\x06\x3c\xc9\x6f\x61\x58\xcc\x2b\xb8\x87\xe8\x99\x4f\xa7\xb4\x49\x9f\x1e\x68\x62\x05\x0c\x33\xed\x1b\x30\x62\x02\x02\x58\x1e\xe0\x40\xb5\x77\x73\x84\xb6\x1e\xdf\xf5\x91\xfd\x6d\x2c\xc2\xb6\x29\x4f\x47\x93\xfc\x6e\x51\xce\x38\xca\x9b\x1b\xae\xe1\x0f\xe9\x48\x3c\xec\xf8\xdb\x7d\x9f\xf8\x68\x4f\x92\x63\x60\xf7\x59\xf4\x9e\x66\xdd\xfa\xd4\xf6\x85\x87\x16\xde\xae\x19\x1f\x5a\x35\x83\xeb\x7a\x60\x6d\xed\x79\x3d\xfd\x44\xeb\xdb\xaf\x9b\xea\x8a\xfc\xea\x3b\xba\xaa\xdb\xaa\x80\x13\xe0\xa3\x65\x1a\x94\x6e\x4b\x19\x20\x74\xd2\x6b\x39\x08\x46\xb1\x50\x68\x88\x4a\x33\x0d\x5e\xf4\xaf\xeb\x36\xd7\x79\xbc\x77\xd5\xb7\xbe\x05\xec\x65\xd1\x7d\xb9\xd0\x8f\x92\x4d\xba\x43\xbd\x63\xfe\x9b\x50\x0f\x87\x3d\x2f\xd1\x98\xce\xef\xec\xea\x75\xdb\x7c\x5a\x50\xa2\x3f\x9d\x62\x3d\x9b\x11\xa4\x0d\x2c\x14\x7c\x78\x3a\xc5\x66\x36\x07\x66\x4c\x54\x93\x39\x34\xd1\xe9\xac\x7a\x92\xe9\xdc\x73\x31\x3b\x08\x76\xf8\x61\x71\xc2\x13\xff\xbf\xdb\x83\xfb\x3b\xd1\xee\x89\x30\x71\xf2\x6b\xa9\xa7\x94\x39\xe5\x99\xc0\xa7\x7b\x36\xef\xdb\x3f\x51\x76\x18\x92\x06\xb9\xb8\x9d\x7f\xff\xb4\x82\xa8\x04\x4b\x27\x40\x97\xb7\x44\xfa\x4f\xb7\x10\xc1\xa8\x82\xa8\x04\x23\x8a\xd1\x81\x23\xa3\x27\x5d\x10\x31\xe0\x6d\x45\x55\xa2\x15\x4c\xa4\xcc\x8e\x16\x6b\x4d\x90\x1e\x4f\x2d\xd6\x23\xbd\x83\x54\x6c\x60\x1e\xf6\x3e\xba\x55\xc0\x55\x36\x2d\xe8\x99\x9f\xf1\x0a\x67\xb4\x28\x6f\xc7\x7c\xb4\x28\x97\xcb\x63\xe7\xb3\x6d\x82\xa1\x99\x12\x67\x07\xcc\x71\xc3\x88\x4e\x2a\x26\x35\xd8\xe0\x0a\xcd\xf5\x7b\xe9\xc0\x48\xc3\xa4\x2a\xb8\x66\xf4\xdf\x7b\x69\x99\x8c\x98\x5a\x70\x8d\xff\x31\xfd\xde\x23\x3c\x93\x01\x8b\x70\x05\xde\xd2\x87\x49\x84\xe2\xf4\x65\x94\x80\x9f\xfb\x5f\xa5\x86\x28\x2c\x04\xeb\x46\x0a\xbc\x70\x60\x22\x4a\x2c\x36\x22\x80\x35\x86\x19\x08\xd2\x31\x0b\xce\x14\xa0\xb4\x01\xe1\x10\xd2\x38\xf0\xd6\x30\x4d\xc6\x72\x0a\x7c\x64\x1a\x2c\xb3\x20\xb4\xe3\x60\x0c\x15\x8e\x8a\x2b\x10\x41\x33\x03\xda\x4b\xb2\x11\x73\xe9\xf7\x3b\xae\x46\x16\x84\x35\x4c\x20\x7e\x17\xb8\x45\x8c\x4a\x73\x07\xd2\x2a\x50\x06\x8b\x2a\xef\xb9\x04\xe5\x03\x37\xe0\x54\xe0\x1a\x94\xf3\xdc\x40\x8c\x96\x4b\xf0\x21\x72\xd0\x9a\x6b\xf0\xd6\x83\x75\x06\x97\x1f\x5d\xbd\x49\x87\xfd\x74\x2a\x72\xf0\xca\x73\x05\x4e\x58\x0e\xda\x58\x14\xaf\x8c\x02\xed\x14\x87\xa0\x1d\x76\x97\x83\x55\x1e\xcb\x44\xc3\x41\x91\x45\x5e\x50\x64\x7d\x14\x22\x44\x89\x15\x45\x21\x99\x02\x21\x71\x30\xa5\xc5\x0a\x62\xf0\x1c\xa4\x90\xa0\xa3\xe5\x20\xa2\xc4\x95\x2c\xb1\x33\x12\x94\x54\x60\x54\x80\x98\xae\x14\x71\x57\x02\xf6\xda\xd0\x7a\x77\x77\x6a\xc4\x0d\x48\xe9\x99\xe0\x16\x9c\x57\x1c\xa2\xe3\x0e\x8c\x09\x9c\x8c\x11\x39\x38\xab\xb0\xf9\x12\xa4\x26\x81\xd0\x7a\x26\x21\x04\xc5\x2d\x48\x19\x38\x99\xe1\x49\xf0\x38\x15\x12\xc7\x24\x62\xbe\x8e\x12\xb7\x99\xf3\x99\x81\x10\x19\x7d\x90\xc5\xd2\xe0\x70\x9c\xbc\x7f\x1b\x41\x29\x85\x0d\x74\x4c\x4a\x70\x42\x83\xd1\x92\xad\xa7\xdf\xde\x9f\x6d\xa8\x86\xfb\xc5\xbb\xa0\x5a\x84\x63\x56\xce\xee\xf3\x45\xd9\xdc\x99\xdb\x44\xb9\xf6\x7e\x21\xa3\xa9\x6d\xa1\xcf\x68\x7b\x4d\xe7\x97\x65\xb6\x18\x73\x02\xfb\x9e\xcc\x58\x77\xd0\x4d\x5a\xe0\xef\xcc\x1d\x28\xfb\x16\xb7\x01\x6d\x14\xeb\x18\x5d\xd9\x5a\x66\x26\x16\xec\x5b\x29\x29\x9d\x49\x95\x20\x24\x5d\x0c\xdb\xdf\x14\xd8\x49\xc7\x0e\x2a\xfd\x7a\xa7\x07\x8c\x5c\xf5\x1b\x95\xea\x53\x55\x72\xda\xce\x13\x9c\x55\x3b\xe2\x20\x25\xd9\x81\x72\x70\x8a\x23\x37\xae\x94\xe5\x72\xc2\x2d\x60\xa6\x13\x96\x21\x21\xc6\xa6\xe8\x94\xc9\xe4\x3b\xec\x40\x17\x2b\xf2\x8c\xf6\x4e\x0a\xe8\xe6\x50\x6f\xa5\x9b\xc4\x5e\x0e\x12\x1f\xdc\x7e\x77\x5c\x0e\x98\xec\xca\xb6\x38\x41\xbf\x4f\x78\xec\x5c\x66\x20\x7d\xc2\x31\xd1\x1d\xd9\xa0\x4a\xbf\xbf\xc1\xda\xb8\xbc\x93\x13\xac\x66\xc2\xed\xd6\x03\x63\x4d\x34\x4d\xb2\x23\x6e\x33\xae\x4c\x82\x9d\xe8\x2e\x2f\x6b\x27\x5c\xdf\xff\x8a\x33\x33\x5c\x7d\xab\x84\x4c\x48\xb8\x1e\xea\xc0\x7d\xaa\x36\x0c\x55\xab\x06\xaa\x55\xf7\xbf\x4a\xc7\x62\xd7\xf6\xb1\x1e\x26\x03\x32\x16\x38\x5d\xb8\x63\x55\xd7\xb0\xae\xbe\x1d\x52\x80\xc4\x9d\x30\xe0\xa2\x50\x1b\x81\xcb\x15\x8d\xbc\xde\xbd\xd2\xfb\xf4\x6b\x00\x3b\xc1\x8a\xfa\x0b\xf1\xfe\x60\xeb\xdb\xc1\xed\x3b\x74\x12\x0f\xc2\x3d\x1c\x71\xbd\xff\x0d\x82\xaf\x3f\x41\x10\xd7\xa7\x0b\x8e\x35\x88\xe9\x2b\x4f\x49\xdf\x15\x5d\x24\xce\x04\x2c\x0b\x99\x03\xcb\xf0\x07\x57\x8e\x03\x6f\x0c\x1e\x65\xd1\x35\x2c\x5f\x40\x58\x3c\x44\x4d\x8c\xac\xbe\x05\xf5\xc8\x25\xe0\x21\x24\xa3\x6e\x93\x0d\x8d\x7b\xc9\x31\x07\x5e\xa9\xea\x9b\x76\x85\x52\x60\xac\x7e\xd3\xac\x8e\x1a\x70\x4f\xfa\x0b\x3c\xd2\x40\xe9\xd0\xd1\x2d\x48\xcd\x41\x4b\x35\x02\xe9\x3d\x88\x68\x40\x5b\x3c\xe7\xc1\xca\x00\xdd\x3d\x1c\x23\x79\x08\x20\x76\xa9\xaa\x6f\xb2\x51\x37\x8a\x83\x32\xa6\x05\xae\x25\x59\xb6\x4a\x43\xfc\x93\xc7\x03\xc0\x8a\x6e\xf5\xda\x20\x7b\x3d\x02\x29\x1c\x48\x17\x40\x09\x07\xda\x80\xc6\xfa\x3b\x1b\x5a\x2b\x64\x46\xb0\x5e\x63\xeb\x6f\xaa\x5d\x19\x8d\x4d\x90\xcd\x1d\xaa\xb4\x25\xae\x1b\x6b\xb7\xa0\x24\xb6\x3a\xfa\xce\x2e\xf6\x9e\x86\x2f\x20\x5c\xf5\xad\xdc\x0c\x14\x58\xa2\x16\x0d\x05\x0e\x72\x31\x06\xd1\x78\xa9\xab\x6f\x65\xdc\x6f\x6c\x0b\xab\xc2\xb1\xf2\xfe\xbe\x45\x6f\x3d\xe6\xeb\xa1\xd3\x0c\x7c\x40\x42\x24\x02\xb2\x9f\xc2\xe8\x56\xb7\xc1\x11\xe3\x62\x54\xa2\x63\x12\xcf\xa4\x06\x0e\xcf\xc2\x6f\xb8\x3c\x5a\x69\x54\xd3\xe1\xc4\xa9\xb9\x75\x06\x68\x52\x2b\xfb\x01\x2a\x5f\x77\x23\xf4\x8e\xc8\x00\xdb\x95\x91\xcb\x8f\xd3\x1d\x92\x48\x33\xf7\xe1\xb8\x47\x4b\xdb\xaa\xca\x75\x04\xcf\xd7\x3b\x9c\x4f\xfb\x61\x3e\x91\x90\xd4\x89\xdf\x15\x31\xd9\xce\x64\x91\x1a\x6b\xe8\x54\x7e\xd7\x32\xd4\x0b\x4c\xbe\x33\x7d\x86\x46\x25\x86\xa6\xcf\xb5\x90\x34\x2a\xed\x24\x80\x1d\x81\x8b\x89\x6b\xb7\x1c\xb9\x37\xfa\x05\x3f\xbf\x75\x6f\x61\x90\xa1\xd1\x54\xcd\x88\x83\x72\x9a\x09\x0e\x56\x5a\x10\x86\x5a\x04\x52\x05\x62\x61\xee\x6f\x04\x8b\x77\x60\x47\x82\xa1\xa4\x05\x5a\x57\xc4\x10\x4f\xf5\x80\x0d\xe2\xea\x5d\x4f\x73\x56\x1f\xba\xfb\x38\x1b\xa9\x68\x50\xac\xbb\x03\x17\x87\xfd\xa1\xba\x78\x89\x8b\xe9\x66\x24\xb6\x04\x5c\x7c\x1f\xc1\x78\x94\x4e\x7c\xef\x6e\xa9\xb2\x24\x89\x28\x83\x45\x7f\xc4\x9e\xeb\xac\xb2\xa1\x7d\xd7\x05\x79\xd8\x12\x1c\x63\xdb\x6d\xd1\xfa\xa1\xb0\x16\x92\xe3\x1e\xf7\xdd\xbe\x91\x07\xb1\xf7\x7b\x31\xdc\x88\x43\x19\x9a\x27\x7c\xc1\xe8\xf4\x07\x08\x1e\x1d\x07\xb6\x8d\xe0\x2b\xe7\x57\xd3\xdf\xcd\x15\xf1\x38\xc5\x97\x65\xa2\x27\x01\x29\x92\x80\xe4\x09\x12\xd0\x6f\x16\xe5\xf4\x91\xe0\xa0\xb5\xe4\x20\xb5\x42\x39\x9e\x83\x76\x8e\x43\x08\xe6\xbd\x14\x60\x94\xc7\xbf\xdf\x48\xc2\x56\x63\x88\x60\x8d\x66\x82\x44\xb2\xfb\x5f\x71\x7f\x6f\x11\x45\xde\x45\x3c\x4f\x87\x09\x0b\x09\x61\xbe\x23\x52\xee\x15\xb9\x14\xd1\xab\x08\xd1\x50\x9d\xd8\x46\x12\x6b\xdd\x6f\x06\xec\x44\x42\xdc\xe1\x98\xb7\x8f\x0a\x34\xd6\xc1\xc0\xd6\x69\xe6\x9e\x60\x63\xfc\xf8\x87\xa2\xb7\x3f\x80\x70\xc8\x5b\xc3\x8f\x7a\x66\xb5\x63\xa8\xbb\x9c\x67\xb3\x14\x98\xe8\x7f\xbf\x4a\x85\x3e\x3c\x8d\x6c\x73\xca\x7b\x2a\x4f\x13\x17\x77\x00\xcb\x49\x01\x30\x77\x05\x32\x42\x52\x43\x09\xdf\x3f\xb1\x21\x62\x21\x3b\x84\x43\x6c\xe3\x4e\x54\xc5\x9d\x0c\x90\x21\xac\x5b\x91\xba\xc5\xf7\xf3\x34\xb1\xc6\xef\x22\x04\xdf\x51\xbc\x58\x8d\xf2\xd3\xfb\x90\x94\x09\xce\x75\x4a\x3a\x70\x2a\x32\xf9\x8e\xa8\x01\x89\x75\x5b\xb8\xae\x89\x01\xdd\x91\x32\xac\xae\x30\x07\xa6\x21\x98\xac\xd3\x26\xb0\x51\x82\xb3\x71\xa2\x21\x74\xe5\x13\x9b\x48\xd6\x10\xc5\x7a\xd7\xa5\x80\x6b\x8a\xe5\x27\x28\xee\xf5\x6e\x24\xed\x3b\x09\x49\x83\xf4\x08\x82\xd5\x5c\x4d\x43\x24\xab\x95\xff\x30\xf4\x48\xe2\x57\x5e\x07\x43\xfc\xae\x18\xec\x8a\x99\xd6\x9e\x59\xd0\xd6\x8c\xc0\x90\x5a\x5b\x5a\x0d\xd1\x4b\xf2\x39\xc7\x75\x11\xe9\x9e\x20\x9a\xb7\x16\xa2\x26\x47\x1c\x81\xb2\x60\xd0\x8c\x24\x6d\xfc\x8e\xf0\xd4\x92\x4c\x30\xf2\x7b\x07\xe3\x98\x82\xa8\x24\x69\xbd\x93\x0a\xca\x21\x9c\xc6\x94\xe0\xf0\x90\xf3\xe4\xc9\x63\x1c\x04\xa1\xe8\x68\x71\xa4\x4e\xb7\xe0\x74\x80\xe0\x14\xf3\x60\x9d\xe6\x28\xab\x83\x8d\x86\xa3\x18\x4d\x9e\x38\x28\x95\x92\xee\x5c\x04\xf9\x4e\x83\x73\x61\x84\x27\xaa\x4e\xca\x4c\x13\x38\x98\xe0\x09\x86\x74\xf5\x84\x42\x91\x43\x79\xfa\x4d\x82\x0c\xb1\xfa\x2d\xc4\xa6\x2b\x4e\x52\x46\x70\x10\x56\x33\x6d\xc1\xf9\x50\xff\x93\x58\x66\x21\xb1\xc7\xd1\x9b\xb7\x28\x63\x07\x26\x0d\x44\xe9\x68\x55\xe3\x30\x33\x6a\x0c\x72\x03\x01\x9c\xc3\x21\x31\x69\x44\x5c\xba\x35\xc0\x6e\x3a\x87\x0c\x37\x0a\x07\xc8\x3b\xbb\x80\x95\x19\x6e\x41\xe9\xc0\x21\x6a\x1e\x40\x18\xc9\xc1\xe8\x80\x8d\x21\x28\x11\x71\xf4\x8d\xe7\x0a\x84\xe7\x1a\xbc\x89\x6f\xa5\x80\x18\x0d\x38\xc3\x22\x38\xef\x99\x20\xfd\x89\x03\x43\x5e\x4c\x16\x64\xb0\x60\xad\x61\x06\x68\x0e\x8c\x53\x23\x0e\xd1\x41\x88\x9a\xee\x3f\xe8\x2e\x84\xae\x60\x0c\xd3\xa0\x83\x69\x7b\x24\x19\x24\x31\x22\xb4\x65\x79\x87\x54\xa2\x23\x0f\xc8\xca\xd6\x8c\xd8\x20\xfc\x80\x10\x01\x7f\x3a\xf6\x22\x69\xea\xac\x2a\xf8\x1a\xb2\x67\xb7\x5e\x79\x37\x81\x8c\x2c\xbe\x93\x7d\x4f\x60\x0f\x32\xbe\x77\xc9\xf5\xca\xea\x9e\x1d\x89\x3b\x5c\x0e\x69\x6f\xc5\x81\x1d\xdd\x01\x38\x46\x15\xf9\xb4\xef\x2c\x3e\xea\x25\xa7\xa7\x88\x86\xdf\xc6\x81\x64\x6c\x8a\x38\x6e\x6e\xa6\x7f\x00\x83\x17\xdc\x25\xc2\x32\x9f\x69\x48\xb7\x18\xf8\xa5\xad\x6c\x21\x48\x26\xba\x91\x03\x6a\x9d\x3c\x68\x63\x7b\x65\x52\x91\x2a\x73\x40\x69\x8f\xe9\xf7\xbf\x06\xe6\x70\x6d\x23\x5d\x24\xc1\x9b\x3c\x3b\x12\x9d\x4c\x7f\x63\x81\x47\xd8\xc1\xf4\x86\x7f\x68\xf5\xf6\x60\x8e\x59\xc0\x4f\xfd\x12\xec\x23\x5f\x83\x7b\x9a\xd7\x37\xba\x58\xbe\x56\x41\xc9\xa6\xab\xdf\xeb\x40\x3e\x62\x19\xbb\x74\x57\xdc\x62\x92\x5c\x0c\x60\x95\x2c\x34\x68\xe1\x98\x14\xa0\x35\xb9\xf5\x70\x03\xda\xc8\xa6\x62\x54\x2a\x50\xcc\xbf\x93\xbd\xf0\x0c\xb4\x68\x95\x23\x1d\xab\x50\x81\x59\x88\xb1\x43\x94\x8d\x32\x78\xea\xc9\xf7\x16\xa2\x45\xe2\x2f\x1c\x33\x60\x05\xa9\x8d\x5b\x3e\xb1\x52\x43\xa0\x60\x1c\x8d\xba\xa5\x94\xcc\x4f\x14\x28\x4f\x9a\x5e\xc5\x2d\x1e\x2a\x23\x90\x92\x83\xc6\x53\x86\xe3\x71\x0b\x5e\xe1\xbf\x8f\x70\x63\xed\xcc\xe4\x50\x9c\x87\x0e\xc4\x09\x82\x65\xf2\xc9\x7c\x8c\x60\xd9\xc7\xb0\x51\x2b\x9b\x9d\x6a\x65\x3e\xc9\x8b\xdf\xcb\x66\xe8\x38\xcd\x2c\x9e\xde\x1e\x97\x88\xd2\x48\x03\x75\x0a\x3a\xa4\xd6\x36\x3f\x56\x82\x8c\x6e\xc4\x41\x4b\x04\xe5\xc8\xe2\x81\x89\x29\x4e\x52\xe8\xf2\x04\x46\x22\x33\x17\x47\xa0\x34\x82\x44\xf0\x74\x89\xed\x0d\x72\x92\x74\xd3\xe1\x4c\x40\x42\xad\x15\x4b\xdf\x14\xb8\x49\xf8\xc8\x41\x07\x64\xc8\x84\xf5\xd5\x37\x71\x2b\x01\x05\x1a\x10\x2e\xf9\x88\xa7\x4f\x92\x3a\x90\x91\x23\x0d\x4a\xf0\x1c\x44\xa4\x48\x4e\x1c\x14\x99\xc7\x28\xe7\x38\xc8\xa0\x80\x4c\x58\x34\x72\x50\x1c\x9c\x8f\x10\xa4\xe7\x74\x71\x24\x2d\xe6\x48\x50\x11\xc5\xaa\x20\x41\xc7\x50\x20\x1e\x07\xc2\x65\x0a\xac\xf0\x2c\x7d\xab\xab\x23\x8b\x07\x46\x27\xe6\x91\xf4\x0a\x54\xec\x5c\xc0\x24\x8e\x54\xeb\x11\x02\x38\xec\xa6\xe5\xa0\x95\x01\x11\xb0\x4a\x1f\x41\x04\xba\x0c\x02\xa5\x89\xcd\xd5\x60\xa5\xe5\x10\xb4\x4a\xe3\x86\x59\x16\xfb\x62\x64\xda\x6c\xd6\x1a\x10\x06\x77\xb6\x8a\x09\x8b\xb0\x0e\xa4\xc2\x5f\x02\x48\x17\x39\x5d\x4c\xa9\x48\x9d\x76\x24\x14\x80\x0a\x2a\x83\xe8\x1d\xfe\x54\x51\xa2\x68\x94\x95\x1e\x81\xb0\x58\x44\x7a\x90\x12\x05\xca\xe8\xd2\x2f\x36\xde\x51\xc8\xa7\x4c\x82\x23\x0b\x97\xba\x9f\xda\xd3\x1d\x99\x91\x23\x6c\x1d\x96\x48\x56\x0a\x26\x48\x64\x82\x25\x19\xb2\xec\x57\x79\x87\x4d\x18\x31\x3c\x65\x55\x2b\x8c\x98\x10\x5c\xbd\x0b\xfb\x43\x80\x09\x16\x6a\x1f\x4c\x29\x1d\x13\xb5\x0f\xa6\x14\x2c\xdc\xdf\x04\xee\xc0\x36\xae\x32\xc9\x4f\x53\xb3\xc6\x65\x23\xae\xeb\x1d\xe7\xf9\x21\xec\x68\x63\x77\x0f\xd0\xae\x66\xee\x31\xe7\xf8\x53\x3e\xe5\xfc\x98\xb7\x29\x9f\xe0\xb5\x9e\x36\x0a\xa4\x87\xd3\xe5\xaa\x5c\x7c\x7f\xb2\x74\x62\xf3\xba\x96\xec\x64\xf1\x02\xc1\xca\x37\x9e\xf9\xea\x5c\x0c\x3d\x10\x94\x6a\xe8\x27\x89\x60\x5e\x59\x6e\xde\xd9\x6e\x4c\xa4\xca\xcc\x64\x58\x6d\x7b\x87\x19\x6d\xa1\x2d\x90\xc9\xd1\xf0\x05\xac\xd3\x85\x84\x80\x8c\xad\x50\x6d\x74\x0e\x85\x46\xed\x91\x33\x50\x96\xcb\xf6\x3d\xab\x65\xf1\x37\xd3\xb9\x7d\x4d\xd5\x1c\x2e\x81\xb5\x27\x70\x68\xd5\xb7\x01\x06\x2e\x70\x2e\x26\x64\x87\xd9\x7e\x75\xa0\x73\x3b\xba\x3b\x00\xc2\x26\x2c\x5b\xc3\xeb\xfc\xa0\xb7\xfe\x06\x9f\x62\xd9\xf6\xfc\xc1\xf6\xdb\x24\x2c\xbf\x7d\x08\x9a\xb9\x3b\x4c\x53\x8f\x79\xe4\xf2\xc8\xf7\x2b\x87\xc1\x8f\x7e\xe3\x68\x5b\x18\xfb\x6d\x57\x78\xed\x8e\xcf\x17\xe5\xf5\x22\x5f\x2e\x61\x3a\x1b\xe7\x2b\x9c\xb2\x59\xb6\xca\x8f\x88\x49\xbf\xad\x1a\x04\x9a\xce\xae\x77\x30\x84\xf4\x22\x45\xd3\x97\xa7\xfd\xc2\x41\xfd\xd2\xc9\xed\x6a\x82\x0d\x98\x94\x63\x7e\x39\x9d\x11\xce\x4a\x6b\xce\xc6\x2b\x7a\xde\xe0\x6f\xe3\x03\xca\x22\xad\x39\xa4\xcc\x01\xb4\x7f\xd7\x1b\xde\x27\x1d\x00\x8f\x7e\x14\xfc\xa9\x5e\x63\x1c\xc4\x73\xc2\x6b\x58\xdf\xea\xc5\x8c\xad\x8f\x28\x3c\x0d\x15\xd8\x17\x90\x72\x7f\x2c\xca\x7e\x4c\xc9\x4e\x38\xc9\x6d\xcd\x2c\xb2\x2f\xf9\x62\xb9\xbd\xa1\xed\xfc\x43\xc2\x21\x6e\x89\x84\x58\x21\xfa\x7d\x82\x20\x1e\x27\xee\x48\x09\xce\x26\xad\xb4\x6a\x8b\xe7\xc1\x30\x51\x48\x81\xc7\xa2\x1d\x08\x8d\xa8\xb5\x2b\xf8\x70\x36\xaf\x0a\xa7\x6c\xde\x2b\xcd\x53\xe9\x4d\xee\xfd\xaf\x1a\x74\xb4\xcc\xbf\x97\x8a\x49\x09\x06\x45\x0d\x41\xe6\xbd\x3e\xd9\x15\xdb\x88\x92\x0e\xc1\x1c\x60\x48\x02\x22\x44\x26\x1d\xc2\x77\xad\xe6\x1c\x0a\xee\x0e\xeb\x51\x28\xe1\xc4\x22\x42\x88\xd8\x0a\xdd\xd6\x4e\x78\xe2\x1f\x94\xda\xf4\xb1\xcb\xaf\xc8\x66\x0f\x3b\x99\x3a\xe9\x82\xa5\x6b\xb3\x32\x0a\xa4\xb0\xd8\x41\x11\x62\xc7\x94\xa5\xae\x6e\xa8\x36\x91\x2a\x1b\xaa\x8b\x8a\x92\x8d\x9d\xa2\xb1\x73\xd4\x27\xbe\xe9\xd4\xe1\x0c\x4d\x6b\xd1\x6e\xdf\x1d\xeb\x20\x93\xdf\xf0\xf5\xa1\xa7\xdb\xc2\x2d\xe3\xb2\xcd\x73\xce\xbb\xac\xcb\x06\x1e\x7d\xc6\x2d\x4d\xa9\xdf\xbd\xa2\x2d\x80\xa6\xeb\x1c\xd1\x36\xf1\x02\xa7\x15\x2e\x57\xdf\xbd\xb7\x20\x7d\xb1\xa6\xa0\x3a\x28\xcb\x3b\xf7\x06\xbc\x71\xf8\x53\x99\x99\x79\xf0\xf6\x37\xd9\xb2\x80\x07\x69\x03\x18\xf7\x3e\x59\xea\xcb\x02\xc5\x64\xf2\x99\xa9\xc2\x32\x57\xff\xe2\x8f\x06\x21\x4c\xba\x50\x91\x19\xf9\x79\x24\x6f\x8f\x0a\x8f\xd0\x20\xd5\x08\x84\x0b\x20\xbc\x03\xe9\x2c\x48\x1f\x48\x81\xa0\x62\x04\x65\x0d\x28\x03\x4e\x83\xb5\x28\x95\x48\xad\x20\x38\xf7\xd6\x80\x17\x8e\x49\x0d\x3a\x90\xb2\x5a\x7a\x26\x0d\x23\x06\x5e\x9a\x91\x02\xa1\x51\x46\xd1\x60\x0c\xca\x01\x96\x19\x72\x8f\x21\x1d\x48\x66\x41\x2b\x46\x1f\x6a\x42\xf4\x9e\x43\x24\x73\xba\x48\xd7\x5f\xf8\x4d\xc1\xa2\x95\xe2\x60\x4c\x28\x50\x24\xa7\x6b\x37\xec\x0f\x45\xa9\x4e\x3a\x01\x94\xd5\xe5\x48\xf0\xa4\x5e\xaf\x22\x43\x3b\x9b\xec\x62\x0a\xfc\x0d\xb4\x23\x11\xc3\x90\x37\x11\x5d\x1a\x1b\x26\xe5\x6f\x95\x2d\x8b\xf1\xf8\x53\x2b\x4e\x48\x51\x24\x4c\x9a\x09\x8e\x53\xd1\x55\xd1\x23\xc1\xf5\x3c\x99\xd2\x90\xad\x9c\x87\x18\xc2\xfb\x34\xe5\x11\x62\xc7\xea\x97\xa6\xfc\xbd\xae\xe1\xee\x14\x78\xa5\x33\x0b\x36\x10\x7d\x09\xd5\x64\xc6\x08\xde\xbb\x11\x04\x61\xc8\x40\x46\x18\x72\x5d\x23\xcd\x92\x77\xd5\xaf\xb2\xb2\x9a\x55\x10\x24\x07\x2b\x71\x70\x5d\xe0\x10\x83\xc9\x34\x04\x72\x01\x09\x95\x51\x31\xf8\xa0\x38\x78\x63\x7f\xa3\x7a\xef\x7f\x0d\x2c\x80\x51\x1a\xd7\x4b\x90\xcc\xb1\xc0\x34\x58\xef\x71\x02\x95\x8c\x94\x40\x00\xa7\xab\x4f\x9b\x9b\x73\x88\x28\x34\xb3\x1f\x0e\x7e\x1e\xf2\x2b\xe7\x29\x97\x9e\xb6\xf8\x7e\xf6\x7e\x6d\x2b\x69\x22\x93\x13\x6e\xc0\xda\x22\x1d\x99\x06\x74\x98\x18\xb0\x86\x1c\xa0\x29\x96\x3b\x89\xc1\x46\x24\x1f\x2d\x3b\x52\xa0\x3d\x27\xc9\x9c\x6e\xae\x35\x27\x53\x2b\xa6\x40\x79\xc3\x3d\x1e\x58\xef\x11\xb3\x65\xf2\xfe\x57\x5c\x0a\xb8\x52\x12\x4e\xfb\x3e\x90\x6b\x8d\xb1\xef\x37\x19\x23\x0e\x21\x55\x13\x38\x88\x14\xd1\x31\x12\x36\x5c\x74\x42\xda\xf7\x96\xea\xf2\x80\x87\x12\x36\x89\x63\x93\x14\xf9\xbd\xac\x61\x02\x93\xb6\xa8\x33\x85\xa5\x50\x93\xde\xd8\x4d\x1f\xda\x01\x40\xb6\xc8\x42\xfd\xa9\x6a\xea\x9a\x2a\x63\xc6\xea\x8d\xb6\xfe\x03\x8f\x03\x22\xca\x50\x91\xed\xa1\xdd\x9e\xea\x69\xc9\xaf\xbc\x3a\x88\x7e\xd7\x55\xd7\xe0\x21\xff\x43\xe8\xe0\xed\x59\x4b\x21\x23\x90\xfc\xda\x8d\x2e\x48\x01\xc5\xfc\x0f\xb6\xe0\x12\x1c\x12\x0d\xaf\x43\x66\xc8\x35\xd0\x55\x3a\x47\x07\x41\x85\x62\x9d\xed\xdf\x38\x88\x14\x07\x34\x54\xea\x97\x84\x94\x7c\x0e\x9c\x0e\xc4\x06\xc6\x98\x81\xf5\x48\x2d\x74\x7a\x57\x81\xcc\x23\x7c\x23\x2d\xf1\xa2\xd2\xf4\x8c\xf6\x23\x92\x44\x2b\x7d\x26\xf1\xcb\xd2\x37\x59\xe6\x0b\xa9\xb8\x26\x9f\x81\x76\x9e\xa8\xc9\x5e\x72\x3e\x30\xa0\x12\x12\x63\xb0\x15\x06\x7f\x1a\xad\x08\x8d\xb4\xba\x15\x21\x11\xe6\xc8\x22\x18\xaf\x8e\x29\x95\x2a\xf3\xe0\xe4\x50\x29\x3f\x50\xca\xd7\x75\x79\x70\x78\x9c\x1c\x5e\x97\x06\x47\x61\xf9\x5c\x68\x97\xe2\x74\xc0\xf5\xeb\xc3\xe4\xaa\x70\x97\x99\xdc\xe6\x24\xd9\x5f\xc1\x43\x21\x0c\xe0\x2a\xcf\xc7\xeb\xe0\x24\x4d\x6e\xeb\x7a\xba\x9a\xdc\x5e\x7e\x3f\x24\x77\x7b\xf8\x43\xf9\xd6\x80\xd4\x9a\x49\x26\x19\xfe\xc6\x24\x51\x3b\x3d\x42\x06\x44\x20\x31\xc4\x75\x6d\x91\x83\x37\xe0\x83\x67\x8e\x1e\x8e\xd0\x16\x84\x33\x60\x7c\xe0\xe4\x13\x4c\xbf\x68\xe4\x5b\x38\x45\x89\x4f\xaf\x64\xb8\xf4\x54\x06\xce\x49\xe4\x12\xa2\xf1\x78\x4e\x72\x05\xda\x22\xdb\xa2\x7d\xf3\x57\xd0\x32\x72\x08\x22\x70\xf0\x3e\xa0\xf8\xa1\x74\xeb\x57\xa7\x2d\x27\x36\x4f\x90\x85\x91\xb2\x9b\x5f\x3c\x72\x6a\xe4\xc6\xe2\x35\x78\xb5\xfe\x05\x9c\x32\xf4\x07\xdd\x7d\x04\x64\x08\x88\xbd\x02\x1b\x14\x08\xa7\xd3\x2d\x90\x42\x46\xcb\x3b\x30\xf8\x6f\xa4\x5b\x2d\x6b\x0d\x07\xe9\x1d\xd7\xe9\x11\x11\xbf\xfe\x15\x8f\x10\x87\xdd\xf4\x4e\x83\xf2\xb8\xe0\x74\x08\x40\xf7\x29\xc1\x63\x7f\xbd\xc2\xa2\x3e\x39\x22\x41\x08\xc8\x1c\x62\x26\x31\x2c\x0c\x6c\xa0\x4b\x9d\xc8\x24\x44\x65\xc0\x4b\xf7\xc6\x81\x97\x92\xa5\x2f\x11\x13\x3a\x0a\xe5\x08\x6c\xb4\xf5\xea\x8d\x06\xc8\x84\xc7\x5b\x0d\x4a\xbb\x24\xc1\x72\xb2\xae\x40\x44\x38\x54\x44\x0b\xea\x5f\x41\x07\x05\xd1\xe1\x31\x49\x16\x64\xde\xa4\x61\x08\x16\xb9\x42\x30\x31\x8d\x93\x94\x26\xfd\x12\xc8\x86\x09\x8f\x42\x14\xfd\x90\x82\x69\xf2\xee\xd6\x74\x9f\x88\xbd\x06\x65\x25\x28\xe9\xc0\x78\x4b\xd7\x66\x26\xdd\xcc\x45\x24\x91\x10\x91\xeb\x13\x02\xbb\xe5\x70\xc4\xd2\xaf\x51\x22\x79\x04\x19\x3c\x48\xe5\x91\x41\x04\x13\x14\x36\x1d\xe9\x67\x74\x2c\x7d\x2b\x6b\x6d\x5a\x79\x94\xe4\xab\x6f\xe5\x42\xf2\x28\x6b\x8d\xcd\x4e\x1c\xb6\xd4\x68\xe4\x3f\x1c\xfe\xa2\x36\xee\xf2\x94\xfd\xfd\xb0\x57\x46\x05\xfb\x8b\x59\x47\x37\x8b\x2c\x80\x74\xc4\xe3\x1b\x5a\x99\x3a\x72\x88\xb4\xb2\x55\xb2\x2d\x50\x13\xee\xc0\x99\x3b\x05\x2e\xda\x89\xa6\x6b\x08\x0d\xca\x30\xfa\xd4\xd7\x9f\x74\x71\x2a\x95\xbf\xc3\xd5\x37\x51\xa0\x5c\x1c\xe1\xf2\x53\xe4\xb2\x8c\x3b\x8a\x22\xa4\x89\xfa\x57\x0b\xb2\xf3\xf2\x0f\xb5\x4e\x9b\x37\xc1\xea\xf5\x2d\xb5\x61\xd2\x8e\x24\x04\x3a\x40\x75\xba\x64\x75\x0a\x4f\x5c\x47\xf7\xca\x91\xee\x3e\x1c\x6e\x7f\x6f\xe2\x08\xf7\x3f\x36\x19\xb7\x92\x31\x0e\x9c\x8b\x48\x3d\xa2\xa5\xdf\x24\x04\x8d\xbb\x52\x83\x26\xfb\x3a\xa5\xf1\x8c\x8c\x56\x71\x85\x3b\xf0\x1d\xae\xfb\x3b\x09\x41\xe8\x37\x1e\x84\x31\x2c\x7d\x69\x79\xa5\xa6\x0c\x34\xf8\x97\xbf\xff\xfd\xad\xa8\x86\xd3\xe0\x1a\x66\x11\xb4\x91\x99\x01\x89\xcc\x6a\x75\xe8\x0a\x64\xfb\xc2\x6f\x06\x82\xa5\x7a\x4c\xcc\x1c\xa4\x05\xec\x2b\x11\xd5\x81\x0a\xbe\xc0\x65\x8f\xbd\x09\x42\x0f\x54\xf6\x1f\x6f\x8c\xd6\xb6\x31\x3a\x1a\xbc\x47\xe1\x44\xe3\xee\x0b\xda\x57\x37\xeb\x9e\xcc\xf8\x0a\x95\xe8\x6a\x8c\x58\x9b\x0f\xe4\x96\x19\xd2\x46\xe2\x26\xe9\x54\x82\xa2\x5e\xd6\x5f\xca\x72\xc8\xe0\x6a\x6c\xea\x7b\xec\x11\x16\x73\x6e\x04\xd6\xd2\xa6\xb7\xc8\xae\x4a\xe9\x70\xd0\x10\xac\x1a\xbf\x78\x08\xff\x3a\xb0\x19\xb6\x33\xb0\xff\xfc\xb4\xda\xce\x63\xf6\xdf\x22\xff\xca\x79\x51\x5e\x97\xfc\x9f\x9f\x56\x55\x05\x47\x6e\x35\x7a\x16\xf0\xd5\x99\x54\x67\x2c\x3d\x05\xf8\xea\x4c\xea\xf6\xf6\x3a\x38\xf2\xc7\xd0\x59\x3a\x40\x9c\x2a\xbb\xa1\xe0\x90\x23\x0b\xc2\xfe\x06\xce\xf9\x09\x2e\x66\x7b\xa7\x41\xea\x50\x40\x48\xf4\x53\x28\xfc\x8d\xd3\x6f\xf7\xbf\x5a\x90\x52\xb3\x08\x32\x56\x70\x13\x2c\xf2\x1b\x25\x14\x7c\x03\xc9\x37\xc5\x9b\xc1\x21\xae\xae\xae\x76\x5e\xb8\xef\x6e\x69\xaa\x05\x17\xb1\xa1\x00\x23\xfa\xbd\x14\xc4\x14\x08\xf0\x2c\x90\xcc\x83\x24\x25\x14\x64\x1a\xa2\x38\x18\xe7\xee\x90\xd1\xd5\x75\xc3\xa9\xaf\xef\xf1\xe8\x20\xa3\x0d\x3a\x59\x0c\xd2\x0f\xba\xe9\xb4\xe4\xc2\x42\x36\x29\x06\x19\x64\xe7\x7e\xa3\x02\xcd\x1e\x08\xf1\x8b\xfa\x0f\x77\x52\x27\x34\xf9\xe9\x1a\x08\x5a\xbd\x07\x4f\xaf\x10\x04\x3c\x01\x9d\x27\x83\x55\x55\x28\x88\xc1\x41\x24\x43\x68\xb2\xac\x32\xd6\xae\xc7\x54\xea\xfb\x5f\x3d\x18\xdc\xb8\xd6\xae\x67\x47\xea\x14\x53\x04\xa2\x43\x5e\x3a\x90\x84\x10\xdf\x07\x08\x2a\x59\x21\xac\x8b\xb4\x3b\xf1\xf7\xf8\x8b\x3c\xa9\x13\x6b\xcc\x45\x15\xcb\x84\x6c\x94\xd7\x35\xf3\x75\x6b\xde\xa7\x9a\x85\x21\xf9\x59\xe1\x11\x4d\x9a\x68\x69\x53\x71\xbe\xee\x2d\x96\x26\xef\x82\xc8\xd6\x38\xe3\xa6\xdb\xef\xd7\x65\x9a\x5d\xf8\x77\xa7\xdf\xfc\xf2\xcb\x23\xe6\x81\x56\xca\xfb\x34\xff\xb8\x80\x52\x2b\x59\x65\xb8\x0d\xc1\x20\x27\x68\x8d\xfe\xcd\x23\x78\x5a\x52\xb4\x26\xee\x7f\x4d\x4b\x2d\x4d\x64\x5a\x81\x0a\x34\x0b\xe0\x45\xbd\xac\x1a\x3b\x2b\x2d\xc0\x62\xb3\x22\x9b\xbd\xf8\xe5\xef\x42\xda\xbf\x1f\x40\xbf\xfa\x04\x66\x3b\xf9\xfa\x78\x7b\x99\x2f\x66\xf9\x2a\x6f\xdc\x5a\x6f\xd2\x0e\xbd\xbb\x1e\x2d\xc6\xdb\x89\xe0\x06\x5d\x9f\x16\x6e\xf2\xbe\x23\xde\x43\x2b\xf7\xef\xff\xe1\xea\xc3\xd2\x32\x69\xc0\xba\x38\x02\x85\xb2\xa1\x0f\x60\x75\x24\xbb\xad\xe0\x0d\xfe\x3b\x21\x76\x72\x04\x9a\x5e\xa0\x03\xb2\xee\x72\x96\xd6\x24\xf2\xf8\x64\xce\x1e\x38\x1e\xb2\x81\x70\x70\x42\xa2\xe8\x41\x3f\xad\x53\x4a\xf4\x44\x88\xa4\xa3\x5b\x18\x81\xb2\xb2\xa4\xc0\x3e\xf8\xad\xf4\xc6\x28\x81\x78\xef\x0b\x3a\x14\x0d\x72\x0c\xf2\x8d\x04\x41\x84\x09\xbf\x89\x03\x10\x42\x31\x39\xc2\x26\x04\x46\x6e\x82\x16\x17\x29\x07\x13\x90\xaa\xd9\x54\x1a\x69\x97\x56\x54\x49\x64\xe9\x5b\x57\x62\xb1\x8e\xf7\x92\x0c\xe0\x22\x18\x35\xe2\x20\x02\xa9\x6d\xb1\x73\x9e\x06\x21\x7a\x3c\x73\xab\x81\x09\x03\x1c\x00\x92\xee\xed\xf7\x5c\x0a\xbc\x91\x48\xa0\x55\x18\x81\x88\x81\xb4\xd3\x32\x3a\x10\xc8\x82\x23\xf7\x65\x0a\x10\x36\x90\xb7\x86\xd0\x32\xb9\x00\x68\x11\xf0\xa7\x0a\x4d\xe0\x40\x7b\x09\x5a\x38\x32\x59\xad\xae\x7a\xa2\x03\xa5\xf4\x84\x34\xc3\x05\xaf\x95\xc4\x72\xf3\x5b\x26\x81\x6e\xd8\xec\xda\x09\x03\xd9\x7b\x49\xd6\x74\x36\x7d\xaa\x38\x10\xde\x90\xdd\x1a\x53\x10\x9c\xaf\xbe\xd5\x5b\x82\x5a\xa3\xa0\xe8\x92\x95\x5c\xc3\xdc\x0e\x67\x41\x23\xd3\x67\x5d\xf5\xad\x72\x34\xb6\x80\x62\x20\x46\xf2\x53\xc1\x6f\xc5\x90\x7a\x47\x3e\x91\xa4\x7a\x27\x2f\x6f\x94\xe9\x28\x98\x55\x32\x6f\x54\x3a\x03\xa5\x23\xfe\xd4\x2d\x56\x28\xbc\x8d\x40\x78\x5c\x51\xb4\xd2\xb4\x56\xa0\xbc\x04\x13\x0c\x45\x46\xf4\x81\x64\x21\xe9\x40\x3a\x83\x22\x61\x01\x42\x05\x10\xd6\x27\xdd\xb9\xb2\x38\x9a\x16\x7f\xaa\xee\x4a\xad\x48\x1c\xd5\xe4\x54\x53\x8d\x26\x72\xd7\xc2\xe1\x00\x7b\xfc\xa9\xbd\x2f\x1c\xc5\xa4\xf2\x05\x89\xc3\x20\x14\x0d\x2a\xa9\x6e\xd6\x20\x8a\x3c\x51\xe8\x25\x46\xab\xab\x6f\x95\x15\x22\x07\x85\x39\x41\x9b\xea\x5b\x05\xa0\x20\x6d\x36\x85\xe4\xc2\x9f\x7a\xec\x2c\x32\xfb\xd1\x32\x07\x32\xc6\xea\x5b\x87\x0d\x25\xdf\x1a\x6c\x07\x4a\xd3\xc2\x99\x0c\x87\x96\xc6\x37\x81\xa4\x10\x5b\x20\x52\x63\x51\x6c\xb3\x19\x28\x13\xf1\x67\x3d\x37\x28\x3c\xd3\x2b\x99\x3a\x7d\xaa\xd6\xa0\x60\x6d\xa8\x07\xb2\xfe\xd6\x3d\xc0\xbd\x8b\x08\x51\x6a\xb7\xc9\xa5\x48\x28\x7f\x47\xeb\xab\xb3\x22\x8d\x92\x20\xbd\xee\x0c\x21\x79\xed\x22\x65\x00\x81\x7b\x1f\x05\x7e\x32\x97\xb4\xb8\x0a\x10\x23\x6e\x55\x61\x48\xfd\x40\x41\xc6\x28\x2e\x88\x14\xa1\x5a\x77\xe9\x45\x50\x85\x72\xb9\x89\x0e\xeb\x54\xf8\xb3\x5e\x20\x08\xe7\x35\x6e\x21\x24\x45\x5a\xbf\xc1\x21\xa1\x7b\x15\x9f\x8c\x5a\xe9\xc9\xa1\x48\x6c\x04\x02\x18\x5c\x54\x19\xc5\x0c\x31\xeb\xd5\x8c\x0d\x72\x28\x06\x05\x5f\x7f\xd7\xeb\x1f\x9b\x81\x74\x21\x02\xb5\x32\x48\x10\x9e\xcc\x5b\xb1\x95\xc8\xda\x09\x0b\x82\xb4\x58\x1a\x47\xff\x1d\x76\x90\xf6\xa3\xa2\xdb\x1a\xfc\xcd\xb6\x37\x34\x6e\x5e\xcf\x41\x9b\xd8\x1a\x41\x50\x0e\x37\xa3\xb1\x05\x16\xa1\x2d\x3c\x41\x14\xf5\xd3\xa5\x02\x47\x8c\xcc\xca\x71\xdd\xd3\x82\x95\x06\x04\x35\x5e\x06\x92\xe0\x68\x7e\x24\xc5\x4f\x53\x44\x5e\xea\x2d\xe4\x52\x96\x46\x10\xa3\xc1\x9a\x88\x3d\xca\x50\x94\xc4\x9f\xea\x5e\x2c\x79\x59\xeb\x02\x89\x15\xf6\x07\xe5\x98\x48\x1a\x05\xfc\xa6\xeb\x79\x95\x22\xdf\x51\x17\x23\x42\x05\x9f\xa1\x80\x84\x3f\xf5\xa4\x38\xd2\xa4\x10\x3d\xb1\xa6\xfa\xd6\xc6\xbb\x96\x14\x46\xb4\x4f\x7c\xf5\xad\xa8\x10\x09\xb8\x86\x56\x9b\xa1\xea\x89\x5c\x55\xae\x67\x48\xe5\xe8\x93\x81\x56\x1a\x7f\xea\x25\x8a\xfd\x37\x16\x54\xa4\x9f\x6a\x24\x0d\x51\x34\x0f\xda\xd1\x6d\x58\x95\x8a\x8b\x37\x20\x7d\x40\x29\xcc\x23\x15\x72\x15\xd9\xc5\x55\x81\x2c\x99\x23\x2d\x93\xf0\xb8\x51\x3c\x48\x1d\xe9\x07\x59\x7d\x2c\x2c\x95\x05\xa9\x3d\x28\xa7\x91\x99\x41\xc6\x05\x34\xc2\x5a\x2c\x87\xd2\x39\x08\xed\xc8\xdc\x59\xc8\x50\x80\xc4\xb5\x12\x7a\x83\x48\xb1\x62\x48\x06\xa7\x67\x69\x71\x05\xab\x98\x11\x65\xd3\xf5\x05\xa1\x40\xb1\x5a\xd2\x10\x25\xa6\x3e\x98\x7a\x0c\x85\x36\x64\x89\x4c\xae\x7f\xe9\x53\x0d\x05\x45\xd5\x21\xd3\xe1\x90\x46\xec\x4d\x6b\x81\x11\x25\x52\x9d\xc3\x85\x00\x34\xee\xe8\xe0\x33\x05\x96\x2e\x52\xac\x5a\x13\x1e\xb2\xcc\xa6\x39\x4c\x9f\xba\x0d\x16\x09\x5d\x8b\x80\x01\xb9\x3f\xde\x11\x09\xc2\x0f\x48\x3d\x82\xe8\x3c\x62\x26\x45\x15\x58\xd2\x3a\x58\x43\xe1\xb7\x70\x99\x49\x32\x9c\x6e\x6d\xc7\x6a\xb1\xaa\x11\x48\x43\xb6\xd1\x28\x83\x23\x8d\xb2\x89\x4f\xd4\x5e\x27\x0d\x20\x9d\x09\x78\x3a\x19\x97\xe4\x2a\x25\x89\x0c\x50\xa3\x71\x7e\x69\x7f\x64\x0d\x72\x24\x25\xe8\x20\xc1\x78\x22\x91\x0a\xe7\x7c\xc4\xd3\x51\x44\x2b\x0c\x77\xae\x4d\x1b\x44\x68\x83\x83\xa1\x69\x89\xea\xc6\x12\xc5\x15\x4a\x14\x22\x7d\xd6\xab\x1a\xf0\x58\xc2\xb1\x32\xb2\x1e\x22\x1b\x40\x7a\x55\x11\x08\x32\x1a\xc7\x53\xde\xea\x11\x58\xa3\x20\x08\x07\x1e\xc7\xc5\x07\x0d\x8e\x2a\xf2\xb8\xf5\xa5\xc2\xda\xdd\x28\xf1\x02\xb8\xb0\xbc\xa7\xb0\x88\x12\x49\x91\x56\x20\x3d\x52\xa2\x00\xda\x69\x3a\xfd\xac\xc1\xbd\x8f\x22\x90\x8a\x92\x59\x50\x66\x84\x4b\x3f\xf5\x50\xd1\x08\x1b\xdc\x30\xc9\x58\x9d\xb6\x2d\xca\x14\xbc\xf2\x37\x34\x19\x28\x17\xf0\xa7\xee\x64\x44\x1e\xce\x81\xf2\x28\x0c\xd6\x44\x1c\xc7\xc5\xae\xc9\x1a\x99\x7e\x20\xea\xa8\x47\x60\x64\x24\x03\xfe\x68\x2c\x07\x17\x1d\x5d\x6c\x04\x0e\x41\xd9\xfb\x1b\x09\x4e\x26\xf5\x67\x81\x6b\x2d\x70\x88\x0a\xcf\x2e\x19\x90\x46\xcb\xb0\x76\x70\x08\xc8\x69\x84\x80\xd4\x0e\xdb\x67\x63\x20\xe2\xd7\x6a\x9d\x00\x15\x4d\xbb\x71\x62\xdd\xb6\xea\xca\x3f\x5d\xf2\x25\xb9\x09\xbb\x2b\x49\x04\x03\x63\x36\x8f\x28\xbb\xac\xdd\xb9\x40\x81\x2c\x75\x23\x11\xd2\xa6\x7c\x1f\x49\x4e\xf4\x28\xa4\x48\x8a\x8f\x29\x9c\x1f\x81\x76\x0e\x6c\x34\x14\xe4\x12\x77\x07\x18\xec\x73\x0c\xfa\xfe\xd7\x08\x22\x5d\xde\x14\x55\xbf\x4d\xc4\xce\x9a\xc0\xd2\x37\x79\x70\x2b\x92\xe0\x6c\x24\x36\xd8\x22\x95\x56\x2e\xd6\x63\x4b\x13\x02\x6a\xcd\x50\x39\x47\x04\x6b\xd3\x63\x9c\x0e\xd0\x89\x50\x52\x09\x7d\x7f\xc3\x41\x53\x38\xa8\xf4\x86\xb6\xf5\xb8\x54\x90\xc5\xf6\x40\x8c\x97\xf2\x74\x96\x17\xc8\xee\xa2\xbc\x36\x49\xe7\x77\xa3\xc3\xc6\x6f\x4e\x1c\x87\x70\x91\x2e\x70\x49\xad\x48\xee\x20\x2a\xac\x39\x4f\x32\x24\xf2\xf7\x37\x5c\x55\x7e\x26\x4a\x61\x77\x49\xe7\xe8\xcd\x9a\x54\xbb\xf6\xdc\xe1\xca\xc2\x53\xcf\xbf\x77\x80\x43\x24\x35\xf5\xde\x47\x0a\xb0\x89\xd2\x3e\xa3\x4f\x3d\x44\xe4\x00\x13\x1c\xf6\x2d\x46\xf2\xce\x52\x85\x04\x25\x28\x2e\xa8\x97\xf5\x6b\xdc\x1e\x6b\x41\x1c\x35\xc5\x92\xc2\x81\x71\x6a\xfd\x5c\x37\x0d\xb5\x01\x63\x34\x56\xa2\x0d\x4b\xdf\xd4\x6b\x43\x81\x78\x42\xc0\x45\x13\xc9\xd6\xc3\x9a\x09\x39\x55\x15\x3c\x51\x8e\x40\x51\x1e\xe9\x96\x41\xd3\x21\x60\x88\xca\x4a\x45\xce\x58\xa4\x9f\xd5\x78\x3c\xeb\xb0\x5f\xdb\xbd\x45\x84\xdd\x22\x17\x76\xb5\xda\x37\xd3\xd1\xa2\x5c\x96\x57\xab\xad\x8a\xed\x0d\xc4\xf7\x23\x5f\xfe\xa2\xad\x56\xb6\x7e\x97\x52\x4e\x1c\xd8\x3b\x07\xf6\x9d\xfc\x4d\x0e\xc8\x52\x41\xfe\xfd\xad\x70\xb5\x42\xc5\x32\xf9\x4e\x26\xf0\x00\x76\xb0\x80\xb0\x6f\xdc\x2f\xb5\x71\x02\xc5\x5e\x74\x08\x89\xf8\x43\xf7\x1d\xfb\xd4\x9e\x5f\xfe\xfe\x46\x84\x4d\x0d\xe4\x79\x47\x25\xb0\x8a\xee\xab\x1f\x5b\x66\x6c\x78\xa0\xb7\x2b\x1e\x66\xe5\x4d\xb6\x43\x69\x40\xd9\x7d\x7d\x01\x25\x7f\x47\x53\x29\xdc\xbf\x8b\xa8\xd6\x0f\xb0\xbd\x97\xcc\xdc\x85\xc2\x33\xc3\x3c\x37\xbf\x99\xf7\xf4\xf6\x9a\x06\x29\x23\x0b\xe0\xa3\x7f\x4f\xa6\x54\x2c\x92\xca\xc7\x93\xbd\x52\x00\x67\xef\xc8\x86\xa4\xe0\xb8\x83\x28\xb2\x81\xbe\xe3\x28\xd7\x15\x12\xe8\xd6\x20\x31\x2a\x9a\xb4\x8d\x4a\xba\xdf\x0c\xf8\x68\x0a\x05\x14\x41\x98\xcc\xa3\xd2\xd5\xa6\x56\x07\xcd\x55\x7f\x14\xb7\xcf\x13\x6e\xac\xed\xd3\x84\xb9\x5b\x34\xdc\xb4\x23\x4f\x52\x71\xe3\xb8\x5f\xb6\x6d\x69\x4f\xd3\x6f\x57\xda\x86\xa0\x35\x0b\xa0\x3d\x1e\xd6\x2a\xa2\x5c\x88\x2c\x3b\x04\xe3\x90\x67\x1c\x71\xf0\x81\x5c\x03\x1d\x45\x7b\xa6\x8c\x74\xd7\x42\xd7\xb5\x48\x16\x79\x75\x8b\x2a\x29\x50\x74\xd0\xe9\x57\xf0\x29\x4c\x84\x41\xda\xbf\xfe\x17\xeb\x03\x6d\xb9\x59\xbf\x33\x6b\xaa\xdf\x35\x04\x72\x0d\xc3\x73\x91\x42\x5b\xa0\xb0\xea\x28\xe8\xb5\x35\xa4\x18\x10\xe1\x0e\x8f\x28\x1d\x46\x1c\x45\x3a\x83\x92\x1e\xd7\xe0\x1d\xf2\xc6\xa6\xfa\x4d\x21\x93\x24\xa8\x21\xe4\xbb\x68\xb0\x47\x9a\x54\x88\xd2\x53\x78\x87\x24\xc6\x32\x0a\xc5\x0b\x5a\x49\xba\x0b\xd5\xc4\x6c\x39\x49\x71\x32\x90\xac\x3b\x0f\xda\xd2\x6d\xb2\x01\x67\x48\x6b\x29\x45\x04\x87\xad\xb2\x60\x83\x69\x2a\x1f\xe3\x7f\xe0\x7f\x9d\x10\x0e\x5e\x24\x49\x5e\xdf\x49\x01\x4a\xc4\x22\x85\x70\x09\xde\xfe\x46\xaf\xe7\x16\x74\x47\x80\x7f\xb7\x15\xca\xe2\x49\xf0\xfc\xf2\x4b\x0c\x09\xd5\x21\xfa\xd0\xf6\x72\xec\x1e\x24\xe5\xc7\x55\xb6\xf5\x0c\xa1\xcc\xef\x88\xe6\x08\xff\xef\x6f\x65\xcb\xea\xc1\xac\xad\x1e\x14\x93\x2c\x2c\x49\xf0\x62\x3e\xfd\xc7\xab\xbf\xc8\x62\x51\x1a\xcd\xf1\x37\x7f\x7f\x43\x51\x53\xed\x88\xac\x19\xe8\xbe\x91\xd8\x02\x47\xbf\x68\xb0\xff\xe9\x2a\x07\x6d\x46\x71\xda\x97\x3a\x45\x1d\x70\x2c\x05\x4c\x4c\xc0\xac\x02\x66\xfa\xb0\x53\xa2\x37\x94\xdb\x09\xcf\x2a\x5f\x2c\xb2\xab\x72\x71\xb3\x9d\xfa\xac\x41\xfa\x24\x68\x9d\xf5\xbd\x18\x6f\xf9\xbf\x1b\xf5\xf7\xb7\xc3\x5a\xd1\x01\x16\xa9\xb1\x3f\x2c\x8a\x0d\x24\xa7\x16\x06\x77\x2c\xca\xa2\xe6\xce\x82\xb0\xea\x7d\xca\xf3\x10\xfc\x6f\x08\x40\x61\x6a\x9d\x45\x99\x47\x9b\x1a\x46\x36\x00\x0a\x72\xe9\x4f\xf2\xac\xb9\xff\x55\x32\x41\x40\xc5\x26\x15\xe1\xac\x72\xef\x25\x13\xf7\x55\xd5\xc8\xe1\x79\x0a\x2d\x27\xbd\x61\xd2\xe1\xd9\x24\xac\xac\x2a\x27\x83\x51\xc2\xd2\xb7\x70\xdf\xb2\x0a\x86\x27\xe7\xc5\x43\xeb\xa1\x8e\xce\x7b\x5e\x9c\x9e\x09\xf9\xfd\xe7\xb1\xeb\xa4\xc9\xba\xb1\x63\x25\x05\xc8\x9a\xc8\x76\x28\xcc\xe4\x6c\xf9\x4e\x76\x81\xa9\x38\x4e\x84\x1f\x42\xe3\x0f\x46\xe3\x13\x9a\x64\x07\xde\x8f\x42\x22\xbb\x81\x39\x79\x8d\xe6\x70\xaf\x84\xc6\xf8\x0f\x58\x9f\x34\x73\x8f\xf1\x2c\xbe\xc9\x97\x93\x27\xf3\x2c\xdb\x86\xec\x20\xaf\xb2\x5e\xe1\x13\x3c\xca\x3a\x38\x68\xd5\x2e\x27\xdf\xc9\xb1\xb1\x2b\xb8\x8d\x05\x17\x24\x1e\x08\xca\xe8\x37\xa1\x62\x4c\xeb\x68\x35\xd2\xb1\x90\xad\x5f\x10\x4c\xa2\xab\x02\x61\x3c\x32\xa9\xc6\xbe\xa1\xa0\x5c\x4c\xd6\x91\xe1\x05\x45\xb9\x07\x4b\x8a\x5e\x3f\x4a\x2c\x88\xe0\xe0\x94\x26\x0e\x09\x42\x40\xd6\x35\xbc\x69\xa3\x0c\x4c\x60\x25\xc4\x18\xc7\xda\xbd\xdf\x50\x61\x72\x18\xc0\x6a\xc8\x00\xcc\x57\xda\xb5\xf5\xfb\x04\xe4\xa9\x9f\xde\x1e\xd9\x44\xd2\x35\xc9\x1a\xda\xbc\xe9\xe2\x14\xa9\x33\x21\x59\xe3\xd7\xd1\xf0\x62\x34\xcc\x01\xd9\xd8\x35\x11\xd5\x7f\x25\x2d\xc0\x08\x34\x5d\x65\xe0\x60\xa1\x58\x8d\x7c\x9d\xe3\xc8\x88\xd1\x98\xa5\x48\x26\xa6\x36\xf5\x72\xbd\x6a\xb0\x02\xcb\xf5\x84\x14\xe0\xdd\x8a\x8c\x96\xa4\x47\xf6\x14\x9e\xd3\x6b\x66\x50\xe8\x26\xb0\xa4\x2e\x5a\x5f\x41\x18\xba\xd5\xb0\x6f\x1c\x50\x30\xed\xca\x73\x81\xc2\xa7\x8d\x44\x32\x55\x83\x80\xfc\xa0\x33\x14\x9b\xcb\x56\x96\x04\x20\x49\xa9\x17\x41\x69\x93\x2e\x29\x29\x6e\xa8\x22\x15\x9f\x8a\x5c\xa7\x8b\x32\xa3\x2d\xb7\xc8\x25\x92\x7d\x92\xe5\x28\xef\xdb\xfb\x5f\x5d\xba\xf1\xa3\xb8\x16\xa4\x57\x25\x65\x42\x48\xda\x0d\x52\x04\x9b\xa0\xe8\xe6\x29\x06\x07\x92\x3a\x67\x31\xc7\xdb\xcc\x81\x09\x38\xbe\xf8\x4d\xb1\x91\x83\x0d\x28\xee\xe0\xa2\x6b\x4f\x2b\x29\xfc\x91\xdf\x45\x36\x56\x2b\x64\x8a\xeb\x7f\xaa\x85\xa7\x05\xf2\xe7\xd2\xc7\x11\x4f\x3a\x69\x49\xf7\x1c\x2e\xc5\xac\x50\x02\x17\xa5\xe7\x10\x09\xab\x25\xd8\x14\x7c\x89\x6c\x00\xc9\xfc\x33\xa8\x48\xbe\x2e\x12\x5b\x8a\x05\x82\xa7\x7f\x6d\xf4\xf7\x37\x1e\x82\x72\xdc\x80\x8b\x01\x47\x9f\x5c\x2f\xbc\xaf\xb5\x4f\xe9\x76\xa1\xba\xc6\xe8\xad\x3b\xb0\x9a\x82\xb3\x69\xe4\xe6\x5d\xfd\x4f\xd5\x70\x47\x6f\xe4\x58\xa1\x47\x38\x10\x9c\x34\xc1\x51\x06\x0a\x7c\x4c\x66\x90\x96\xcc\xa1\x03\xad\x0d\x5a\x89\x95\x02\xd8\x91\x16\xc7\x06\x0a\x18\x5f\x7f\xd3\x29\xa1\xb5\x65\x16\x1c\x99\x1a\x50\xec\xbc\xf4\x22\x0b\xd9\x7d\xe3\x18\xd1\xe5\x15\xd6\x49\x2d\x4d\x4d\xad\xfc\x4d\x0c\x55\x6a\x1c\x8a\x40\xda\x47\x88\xce\xf0\xd4\x9b\xa0\x1d\x45\xee\x4b\x41\xe6\xd4\xdb\x74\x95\x61\xc9\x28\xdb\x81\x23\xef\x9c\x60\x68\x81\xc6\xf4\x92\x0d\x62\x27\x71\xc4\x87\xb5\x52\x3e\xc5\xef\x50\xed\x65\x4a\xf2\x2d\xbd\x62\x21\x22\x62\xd0\x22\x8e\x20\x26\xad\xbe\x27\xd9\xd7\x23\xfb\x22\xc8\x3f\xc9\xd4\x81\xe5\x71\x21\x92\x62\x10\x65\x19\x43\xd1\x04\x23\xb6\x02\x97\x02\xf2\x2e\x74\xf1\xc4\x91\x3f\x01\x25\x02\x07\x6d\x02\x68\xe1\x39\xb2\x39\x64\x8d\x81\xa2\x9c\x57\x64\x47\x82\x22\x92\xb0\x0e\x99\x18\x7a\xd6\x47\xba\x47\x3c\x0e\xd5\x20\xef\x83\x87\xe2\x26\xf7\x84\x30\x41\xe4\x32\x77\x72\x88\xa0\x76\xe9\x23\x8e\x64\x2a\x38\x74\x8c\x6e\x2d\x5b\x3f\xeb\x5f\x95\x1c\x0f\xb8\x0c\x57\xe7\x6e\x0a\x9e\xb5\xbd\x8a\x93\x8e\xfd\xa7\xc0\xb6\xb7\x0b\x07\xf1\x10\x5b\x5b\xb2\xa3\xf4\xf6\x9a\x4f\x60\x40\xfa\x0d\x38\x18\xc9\xf6\x76\x74\xe5\xae\xe4\x71\x9d\xe0\x7a\x92\xd7\xcd\x74\x76\xbb\xe4\xcb\xff\x75\x9b\x2d\x7e\xaf\x08\xdd\xdb\xd9\x75\x7a\x34\xc9\xf7\xf9\xe3\xee\x2b\x3e\x29\x0c\x9f\xed\xaa\x4b\xb7\xc6\xf8\xee\x86\xdd\x95\xdb\xc2\xee\xea\x2a\xec\xee\x70\x88\xef\x14\x75\x77\x20\xaf\x66\x75\x22\x54\xc1\xbb\xb7\xc5\xce\xed\xc4\xe0\xae\xe2\xb3\x0c\x44\xe6\xde\x15\xb1\x9b\x9a\xf0\xb8\x30\x44\x03\xab\x60\x88\x3e\x0e\x40\x3d\xf4\x1f\x94\x64\xc7\x3c\x4a\xbc\xf3\x8d\xc6\x13\x30\x6d\x7b\xa9\xf1\x18\x54\xb8\x2d\xb0\x53\x93\x72\x31\xbd\x47\xe2\x5d\x7c\x77\x3b\x43\xa7\x28\x54\x7b\x83\x4d\x52\x50\xca\x03\xc0\xc8\x2d\xf6\x10\xc8\xc3\x97\xd4\xe0\x08\x0e\xad\xaa\x61\xc0\x63\xa4\xd2\x34\x2c\x4f\x74\x3c\x6d\x43\x76\xd0\x89\xd2\x2b\x7c\xc2\xa1\xd0\xc1\xf1\x95\xa7\xae\x7f\xff\x52\xa9\x66\x22\xd3\x4c\xd7\x22\x9d\x23\x77\x69\xe1\x98\x27\x7e\xd4\xd7\x06\x36\x48\xb8\xd2\xcd\xb2\x1e\xd1\x1b\x4e\x64\x60\xe5\x55\xf2\xb3\xa2\x90\x1a\x29\x8c\x6a\xba\x47\x17\xb5\xf5\x57\xd0\xd5\x9b\x41\x8a\xde\x30\xaa\xfe\xa9\x2a\xf3\xe4\x10\x25\x15\x72\xc7\x28\x25\x69\x43\x8e\xdf\x8e\x83\x23\xb7\x02\x45\x71\xf1\xbc\x6c\x2d\x70\x14\xe0\xc8\xb7\x49\x09\x2c\x47\x7e\x43\xe4\x85\xa5\x34\x45\x74\x26\xf7\x29\x23\x22\xb3\x10\x74\x68\x15\xc5\xe6\x7b\x10\xd1\x8e\x40\x92\x96\x5f\x78\xe4\xcd\xb9\x26\x27\xe0\x3a\x3e\x87\x06\x1d\xc8\xc4\x8e\x62\x7a\x81\x0c\x1a\xa2\x8f\x24\xb3\x25\x37\x2e\x4d\x51\x04\x3c\x32\xc9\x24\x09\x46\xf0\xd6\x65\x52\x92\xed\xbb\xac\x23\x14\x4a\xb0\xda\x41\xf4\xcd\xed\x28\x85\x82\x10\x23\xc5\xdc\x1b\x21\x07\xcd\xc1\x48\x0b\x24\x14\xf8\x08\x21\x9a\xff\x8f\xbd\xb7\xdd\x8d\x1c\x57\x16\x04\x5f\x45\x53\x77\x0a\x68\xbb\x2c\x1d\x7d\xa7\x94\x46\x1b\xf7\xc0\xfb\xa3\x16\xe8\x5a\x60\x31\x40\x63\xd1\x0d\xcf\x40\x4e\xd1\x4e\x4d\x29\x53\x1a\x49\x69\xa7\x2b\xb7\xfa\x31\xf6\xf7\x3e\xdb\x3e\xc9\x82\x41\x4a\x22\x25\x52\xa2\x3e\x5c\xa7\xfb\xde\xc6\xbd\xa7\xda\x29\x92\xc1\x60\x30\x18\x0c\x06\x83\x11\xf4\x2d\x23\x64\xcf\xf2\xdc\x80\x3e\x6f\xb1\x4c\x07\x8e\x0e\x96\x11\x78\x9b\x7f\x92\xe9\xb2\xf0\x49\xc1\xfc\x76\x80\x8c\x36\x0e\x3b\x4e\x40\x80\x91\x01\x96\x8e\x2b\xce\xd6\xbf\x19\x46\x16\x48\x02\xb6\x74\xd2\xf2\xcf\x8a\x6a\xbd\xe5\x2f\x01\xa6\xb6\xfc\xbb\x8d\xe7\x2c\x7f\x1e\x06\x5e\xfe\x59\x51\x2d\xcb\x31\xbb\xe0\x56\x6e\xda\x0b\x02\xc7\x83\xb0\xc9\xa6\x69\xdd\x07\xc4\xfa\x6d\x06\xc1\xc6\xd5\x42\xf8\x2f\x70\xbb\x87\xf5\x2d\x12\x09\x07\xff\xf9\xd9\x72\xef\x21\x98\xba\xc5\x94\x7a\x58\x78\xd4\x6d\xc9\x2f\x0a\xf6\xd7\x0d\x05\x4f\xbe\xe2\x13\x39\xb8\x5e\x53\x08\x81\xe1\x13\x08\x6e\xfd\xe7\x67\xbc\xb5\x05\x8e\x7b\x4f\xfe\xeb\xe3\xef\xbe\x89\x97\x5b\xfb\x7b\x63\xb9\x1b\xfa\x1b\x40\x04\xb6\x1d\xc2\x7b\x7e\xc7\x0e\xe1\x05\xc1\x2f\xb6\x65\xd0\x9c\xc8\xf7\xb6\x65\x6c\x4c\xf2\x59\xc3\x62\xc8\x34\x42\x7c\xce\x85\xf8\x3b\x8e\x77\x4f\xfe\xc0\x35\xea\x8a\x24\x62\x0e\x96\x5b\x9f\x2d\x78\x00\xea\xdf\xe3\xff\x86\x90\x5f\xd2\x74\xf1\xd1\x79\x63\x40\x12\x07\x13\x1f\xd3\xeb\x1f\x96\xf7\xab\xe5\x1a\x8e\xf7\xd9\x0a\xef\xad\x90\x12\x88\x5c\x29\x98\x78\xe8\x96\x07\xf4\xa9\x7f\xf9\xbf\xda\xe6\x3d\xf9\xdb\x36\x69\x6d\xda\xca\x06\x59\x6c\x85\xe4\x8f\xcf\x96\x87\x09\x4e\xda\x92\x12\x87\x42\x25\xad\xe8\xaf\x5f\x2d\xff\x9e\xfc\x5d\xf7\x54\xb7\x22\x58\x58\x9e\x46\xf1\xf3\x0d\xe7\x57\x40\xf8\x1e\xff\xd9\x0e\x84\x38\xee\x35\x83\xf4\x0d\x07\x6e\x24\x6c\x3c\x25\xa6\x65\xdf\x5b\x96\x11\x92\x72\x12\xbd\x28\x34\x3d\xfa\x73\x03\x89\x00\x03\x37\x0c\xc8\x6f\x1f\x2a\x07\xa6\x47\xa0\x5b\x9e\x05\x44\xf6\x61\x17\x30\xcd\x10\xaa\x6f\x6c\x13\xff\xfe\x4c\x68\x6c\xdd\x63\x1a\x3b\x14\x82\x0b\x6f\xd2\x5a\x22\x77\x69\x1c\xde\x03\xad\xec\x66\x70\x1c\x89\x2d\x86\xc4\x16\x47\xe2\xba\x15\x21\x64\x4d\x61\xef\xde\xa5\xfc\x4e\xbe\x73\xf4\x65\xc8\xcb\x51\xb7\x6e\x42\x10\xa8\x89\xdb\xd2\x96\x25\x2d\x50\xd6\xb4\x9b\xa1\x01\x69\x1d\xcc\x6b\x9f\x6d\xc3\xf7\xee\x6d\xc3\x0e\x2d\x28\xd7\x5a\x76\xac\x19\xb4\x61\x59\xa8\x64\x51\x4e\x86\x11\x62\x56\xb7\xe0\x11\x23\xf3\x23\x70\x82\x76\x31\x99\xf7\xf5\x52\xae\x97\x1a\xac\xf3\x7a\x1d\xd2\x1f\x64\xa9\xd2\x25\xfb\xdb\x17\x0b\xde\xf7\xe2\xda\xf7\xa1\x11\x98\xfe\xa6\xfe\xa9\x85\x64\xa1\xe3\x6f\xf4\x47\x77\x9d\x87\x64\x99\x5b\xa1\xe3\xe0\x1a\xd0\x7a\xd3\x4a\x91\x0d\x27\x45\x70\xad\xb6\xd4\x25\xc8\x90\xa6\xf5\x2f\x0e\xb5\x7b\xba\xa0\x28\x02\x35\x04\xbb\x95\x22\x76\x33\xf0\xdf\xbe\x78\x44\x14\xdd\xbb\x04\x0b\x22\x81\x5c\xca\x28\xf0\xc9\x6d\xf9\xc4\xa5\x6c\x02\x00\x69\x0b\xdb\x24\x53\x0b\xff\x05\x9e\x23\xdd\xc1\xe7\x90\x32\x09\x7c\x0a\x5b\x26\x09\x29\x93\x00\x04\xda\x82\x74\x1d\x92\xff\x7e\xf6\x7e\xfb\x62\xd1\x9e\xef\x2d\x0e\x1f\x8b\x43\xd5\xa2\x03\xa0\x12\x85\x81\x64\x71\x9d\xd0\x5f\x84\xdd\x39\xb4\x2c\x0e\x63\x2c\x51\x60\x24\x44\xa2\x30\x43\xb4\xb8\xd1\xd7\xbf\x7e\xb5\xfc\xdf\xfa\xe9\xa4\x95\xf4\x06\xba\x03\x8a\x94\x86\xba\x68\x92\xc6\x50\x64\x55\xb6\xcb\xd6\x8b\x92\x3b\x04\x50\x4d\x73\x10\x01\x98\xa3\x3d\xf4\xe1\x60\x0d\x82\x7e\xfd\x4b\x68\x11\xa0\xdb\xc3\x3e\x0a\x0e\xd7\x41\xf3\x5f\x9b\x08\x34\xfb\xde\x37\xdc\x0d\x3c\x8b\x02\xf1\x56\x97\x42\x2b\xad\x2e\x6b\xea\x40\x9b\xfb\xb6\x96\xdd\xd6\x01\x80\xbf\x7d\xc1\x5b\x8b\x65\xba\xb0\x5f\x86\x9b\x00\xf6\x25\xdb\x0f\xf1\xef\xc0\xf6\xc8\x06\xe2\x3b\xf0\xdb\xb7\x2c\xd0\x14\x6c\xbc\x63\xe1\xa5\xb1\xb1\x41\xb1\xb0\x2c\x4b\xb3\x02\x23\x80\xe4\xe9\xf0\x5e\xc0\xc5\xbf\x2d\xdf\x83\x70\x4d\x96\xef\x3b\x18\x51\xc7\x09\xa0\x7e\x18\x6c\x42\xf8\x6d\x3b\x20\xd4\x03\x93\x6c\xfc\x0e\xc8\x63\xdb\xf0\xed\x0d\x0c\xdb\x0e\x83\x0d\xa0\xe3\x39\x3e\xfc\xf6\x7c\x10\xe3\x36\xc6\x1e\xff\x86\xfd\xcd\x34\xbc\xd0\x0e\x69\xb9\x83\x77\xa8\xc0\xc7\xe8\x07\x86\xe5\x38\x10\x36\xcf\xb6\xfc\x00\xe3\x6b\xba\x3e\x9c\x2b\x7c\xcf\xa3\xc3\xb5\x01\xfe\xc6\x24\xc3\x0d\x43\x37\x84\xfd\xc2\x0b\x7c\xf2\xdb\x27\x3b\x31\x43\x9e\xdf\xbe\xe0\xd3\x05\x48\x89\x8d\x6d\x6e\xee\x43\xc3\xf3\x02\xd7\xc6\xdd\x85\x66\x10\x6a\xa1\x61\x07\xa6\x45\xba\xb7\x42\x2c\xd7\x4c\xcf\xc3\xe4\xc1\x72\xd9\xbd\x0f\x0c\xcf\x71\x02\xf8\xe9\xe2\xea\x81\x61\x5a\x61\x08\xd4\x71\x83\x8d\xa5\x6d\x0c\xcf\x0a\x42\x32\xad\xa1\xe5\xdd\x6f\x8c\x8d\x03\x6e\x76\x81\x61\x6e\x6c\x72\x01\xe9\x92\xdf\x9e\xef\x39\x10\xbd\xcc\x24\xd8\x9a\x7e\x10\xde\x07\xc6\xc6\x0f\x00\x59\xc7\xc5\x7a\xa7\x63\x85\x1b\x98\x2b\xcf\x77\x02\x8d\x43\xfd\xb7\x2f\x9e\xe1\x7a\x90\xd6\xc8\xc7\x87\xbd\xcd\xbd\x67\xb8\x64\xa8\xf8\x37\x64\x24\xf2\x4c\x1b\xef\xc9\x3e\x26\x31\x9c\x67\x6d\xd7\xf5\xe0\x77\x80\x37\x02\xd7\xf7\x6d\xa2\x32\x05\x20\xe6\x7d\xdb\x21\x8f\x4e\x7d\xd7\x83\xa8\x4e\xd6\xc6\xdc\x68\x01\x06\x63\xbb\xf7\x9e\x61\x86\xb6\x0b\x4e\x18\xfe\xc6\x09\x34\xd7\x08\x37\x96\x8f\xcb\x5d\xc7\xf6\xe0\xa6\xcb\x73\x43\xac\x92\x3a\xe1\x66\xb3\xb9\x77\x0d\xc7\x0c\x4c\x2c\xf5\xdd\xc0\x84\x94\xf1\xa6\xb1\x31\x5d\x1b\x92\xc7\xdf\xbb\x90\x64\xd0\x82\xf7\x6b\x9e\x0b\xd1\x3a\xe0\x95\x18\x46\x9b\x1b\x16\x1e\xa7\x1f\x3a\xe0\x77\x60\x6e\x36\x1b\xfb\x1e\xff\xf6\x2d\x08\x46\xb0\x09\x3c\x5f\xc3\xbf\x43\x2b\x80\xdf\xa1\x83\xcf\xbb\x1b\xd3\xb6\xa1\x7e\x60\xda\xce\x3d\xfe\x8d\x07\x8a\xcb\x4d\x52\x6e\x99\xe0\xca\x62\xfa\xa6\x47\xc2\xb4\xb8\x30\x39\xa6\x67\x6e\x7c\xa8\xbf\x81\xf7\xff\x1e\x3e\xb5\xe2\x9f\x24\xcc\x86\xe9\x07\x24\x84\x0e\x8b\xce\x6f\x5f\x02\x23\xf4\x03\xb8\x60\xf2\x42\xd7\xda\xdc\x07\x46\xe8\x58\x76\x88\x09\xea\xb8\x2e\x26\x50\xb0\x21\x7b\x6d\xe8\x6e\xb0\x96\x11\x98\x81\x85\xe9\xbd\xd9\xb8\x9e\x77\x8f\x55\x7a\xcb\xc5\xe5\xa1\xeb\xf9\x10\x15\xcd\xb3\x43\xdc\x8f\x6d\x7a\x3e\xf0\x88\xb5\x71\x5d\xf0\xdc\x0b\xb1\x62\x18\x84\x26\xbc\x60\xb6\x7d\x8b\x70\x9c\xe3\x59\x70\x55\x66\x99\x78\x10\xd6\x66\xb3\xc1\x83\x75\x5d\xd3\xb6\xef\x37\x86\x1f\x60\x0e\x83\x37\x66\xa0\xe3\xd8\x56\xe8\x81\x0e\xe9\x86\x01\x9e\xad\x4d\xe0\x84\xe0\xd4\xe1\x04\x1b\xef\x97\xc0\xd8\x84\x81\x8b\x89\xe9\x07\x8e\x8d\x37\x70\x2b\xb0\x5c\x08\xb8\xe7\xb8\xe0\x5c\xbf\x31\xbd\x00\x13\xd1\xf4\xbd\x10\xb8\x05\xb0\x73\x0d\xdb\x0c\x6d\xef\x3e\x34\x36\x5e\x68\x5b\x70\xdb\xe6\x5b\x44\x31\xf0\x5d\x88\x44\xe6\x78\x0e\x5e\x31\x1c\xb1\x7e\xfb\x82\xe5\x93\xe7\x62\x76\xc2\x3a\x0d\x91\x5f\xc0\x5d\xd6\xc6\xc6\xeb\x1c\x6b\xce\x26\x44\xf3\x0b\x36\x76\x48\xd6\xbf\x05\xc4\x75\xed\x0d\xac\x7f\x1b\x2b\xa6\x9e\xe1\x9a\x70\x13\x6e\x1a\xfe\xc6\x25\x49\xaf\x2d\x48\x30\x62\x07\x2e\x44\xe7\x71\x3c\x2c\x2e\x30\x73\x03\xef\x84\x1b\x1b\x33\xbb\x65\x98\xa6\x1b\xc0\x65\x3a\x28\x5a\x96\xe1\xd0\x1c\xd3\xb6\xef\x86\x58\xdc\x59\xb6\x85\x99\xde\xdc\x38\xa0\xff\x1b\x41\x60\xc2\xef\x20\xf0\x61\xf1\xf8\x0e\x9c\xc3\x4c\x1f\xcb\x13\xbc\x98\x1c\x10\xe0\x9b\xd0\x74\xc1\xdc\x13\x6c\x4c\xbc\xf6\x5c\x38\x44\x19\xb6\x09\xd1\x3a\x4c\x3c\x7b\x00\xdd\xf3\x42\xf8\x6d\x11\x61\x6a\x99\x90\xfd\xca\x34\x4d\x8f\x68\xc8\x0c\x6d\x7e\xfb\x82\xd5\x6d\xcc\x7b\x56\x68\xb8\xa6\x17\x60\xc5\xc5\x0b\x89\x34\xf4\x02\x17\x94\x15\xcb\x35\x7d\x22\x23\x3c\x38\x1c\xf9\xb8\x7b\xb2\x19\x38\x70\x74\x32\x37\x20\x4d\x6d\xcb\x26\x6a\xfa\x06\x4b\x79\xbc\x88\x7d\xa2\xfa\x84\x21\xd9\xb4\xcc\x30\xc0\xe7\x54\x1b\x1f\x2b\x36\xe4\x74\x69\x79\xc6\xc6\xf1\xc8\x29\xcf\x0f\x60\x89\xda\x70\xf9\xbe\x31\x36\xbe\xb5\xc1\x27\x28\xd3\x0f\x40\x9a\x82\x10\xf5\x8c\xd0\x36\x41\x98\xda\x6e\x08\x27\xe3\x4d\x60\xfb\xd0\x9b\x67\x86\x18\xba\x07\xb6\x23\xcc\x74\x2e\x9c\x95\x1d\x87\x4a\x43\xcf\x85\xee\xac\xd0\x02\xd9\x6e\xdb\x9e\x87\xeb\x5b\xb6\x43\x14\x3e\x20\x8f\x07\x4b\x12\x7e\xfb\x1e\x39\x8c\x30\xd4\xf9\xed\x0b\xe9\x08\xf0\xdc\x38\xb6\x87\xf5\x41\x17\x66\x1d\x73\xcb\xc6\xd6\x6c\x13\xa4\x10\xf8\x84\x9a\xb0\x03\x83\xa3\xe2\x06\xbc\x9f\x81\xd3\xe1\x35\x89\xe3\xd9\xd0\x29\x5e\x09\x78\x79\x62\xf1\x70\x0f\x22\xdb\xc6\x33\xef\xd9\x70\xf4\x0b\x8c\xd0\x85\x05\xe6\xf9\x30\x15\x81\x11\x60\x29\x14\x18\xbe\xe5\x3a\x01\xae\xef\x39\x4e\x48\x22\x9c\x01\x38\x7b\x63\x02\x03\x85\x9e\x07\x3b\x82\xef\xe3\x93\xa3\x67\x04\x01\xa6\x7c\x60\x78\x1b\xbc\xd3\xf8\x86\x05\x29\xe8\x02\x2c\xdd\x41\xb8\xbb\x9e\x05\xdd\x39\x1b\xbc\xfe\x20\xb5\x39\xd4\x77\x4d\x50\x7c\x21\x30\x51\x60\xb8\xf0\x86\x03\xff\xf2\x6d\xad\x43\x08\x60\xa4\x0d\x9e\x12\x17\xcb\x2a\x3c\x15\xbe\x61\xfb\x90\x4e\x2f\xf0\x37\x00\xd5\xf7\x21\x09\xfb\x06\x0b\x27\xfc\x3b\x24\x22\xd4\xb7\x5d\x0b\x4e\xca\x1b\x37\xc4\x42\xc3\x0f\x5d\x40\x7a\xe3\xfb\x01\xf8\xfe\x79\x01\x4c\x84\xe5\xc2\x6e\xe7\x06\x3e\x70\x69\x10\x90\xec\xf7\x1b\x3b\x74\x31\x97\xb9\xa1\x03\xc1\x25\x5c\xbc\x75\x63\x12\x40\x04\x0a\xdb\x09\x1d\xc2\xd4\x81\x03\x22\x24\xdc\x84\x30\xcd\x56\xe0\x5b\x20\x4f\xad\x80\xf4\xc6\xe0\xfe\xdb\x17\xdf\xf0\x37\x0e\x1c\xe6\x02\xdf\x73\xc2\x7b\xac\x5a\x38\xb0\x3b\x87\x41\xe8\xe3\xc5\x1e\x38\x9b\x0d\xde\x3f\x2d\xd3\x07\x81\xec\x6e\xf0\x8e\x15\x1a\xb6\x19\x98\x78\xd7\xb5\x7c\x0b\x82\x74\x82\xf7\x06\xd6\x3c\x4c\xb2\x78\x1c\xd7\xdb\x80\x4d\x05\xef\x5b\x30\x35\x3e\x56\x02\x2c\xd3\x25\x1b\x56\xe8\x81\x6c\xf1\x1c\x8b\x90\xde\xc4\x78\x61\x5a\x41\x0a\x41\x98\xba\x7b\xcf\x08\x37\x34\x72\xa9\x6d\x79\xf0\xb0\xd8\x05\x93\x82\x69\x6c\xf0\xf0\x3b\xd8\x63\x0d\x25\xf4\x40\xd2\xba\x66\x08\x47\x48\xdf\x21\x76\x19\x6b\x13\x60\x81\xea\x3b\x16\x5e\x34\x8e\xe1\x58\x1e\x80\xb1\x42\x3c\xb5\x78\x0e\x88\xc2\x65\x12\x16\xdf\x60\xc1\x64\x41\xac\x20\x9b\x12\x6d\x43\x0d\xcf\x64\x30\xa6\x05\x02\xcb\xb4\x03\x58\x9b\x01\xac\x55\x10\x60\x30\xb8\xc0\xf5\xa8\x80\x23\xe0\x83\x8d\x13\x82\x04\x81\xd1\xb8\x86\x85\xe7\x14\x4b\x10\x70\xb4\x00\x51\x05\x68\x85\xb6\x83\x75\x17\xcf\xb3\x3c\x9b\xc2\xc7\xb4\xf7\x42\xfc\x5f\x2c\xe2\x9c\x00\xca\x37\xf0\xcc\x09\xeb\x83\x30\x37\x9e\xed\x78\x16\xe8\x7f\x8e\x05\x5a\x43\xe8\x39\x20\xcf\x9d\xd0\x82\xf8\x00\x9e\x0f\xcb\x91\x21\xce\x6f\x5f\x30\x63\x9a\x90\xc9\xd8\x70\xb0\x02\x85\xff\x8b\x95\x17\xcc\xcf\x78\xbb\xc1\xc3\x86\x68\x7f\x98\xea\xc4\x1c\x67\x39\x16\x84\x89\x36\x3d\xdf\x05\x11\x14\xd8\x70\x78\xb6\x1d\x42\xa5\xd0\xf7\x88\x61\x86\xd8\xf2\x5c\x1b\x2c\x25\x2e\xd9\x0e\x7c\xc3\x0c\xbc\x00\x22\x1a\xb9\x64\xf1\xe1\xff\x62\xf9\xe4\xdb\x44\x4b\x0c\x36\xf8\xb7\xe9\x3b\x78\x2e\xf0\xb6\xe2\x11\xa5\x95\xca\xcd\x0d\xde\xbc\xb0\xd0\x09\x7c\x97\x28\xc1\x44\x70\xb9\xae\xe3\x61\x3d\xdf\x72\x1c\x32\x79\x20\x1c\x36\x86\x69\x93\x00\xcf\xe6\x86\x04\xb7\x66\x47\x3b\xf7\x3c\xca\x9c\xa7\x44\x67\x52\xb6\xf8\xbb\x28\xe0\x3f\x3d\x57\x6a\x46\x9a\xed\xa2\x34\x99\xe7\xf9\x11\xc5\x71\x81\xca\xf5\xf2\xb5\x0d\xc0\x53\x3a\xc3\x8a\xda\xcf\x38\xc2\xf6\xc1\x5c\x74\xfd\x39\xcd\x1e\xff\x02\x29\xc4\x03\xcd\xac\x53\x0a\x99\x18\x40\x9d\x52\xc8\x0c\x34\xf3\xdb\x17\x9f\x86\x09\xd9\x6c\xdc\x7f\xfa\x90\xd4\x94\xfc\x4b\xfd\x01\x37\xbe\xb6\xf9\x8c\x85\x43\x84\x25\x50\x48\x02\x9e\xd3\x17\xe1\xf8\x08\xaa\x63\x55\xc2\xff\x76\x70\xf0\x92\xd1\xcc\x7f\x42\xb1\xaf\xd1\xff\xc0\x45\x11\xd6\xfc\x6c\xc8\xbc\xe6\x86\x76\xd4\xed\x03\x62\xde\xda\x14\xcc\x17\x48\x3e\xae\x81\x42\x67\xc1\x5d\x9d\x65\xc3\x81\xc9\x01\x1b\xa5\x43\xb2\xbb\x06\x0e\x09\xd5\xb5\xa1\xdf\x3c\x23\x70\xea\xba\x78\xe1\x6b\x9b\xbd\x6b\x04\xee\xb7\x2f\x1e\xbc\x26\x0d\x0c\x6f\x8f\xb5\x70\x1f\x43\x75\xc0\xb6\xe8\x79\x20\x8a\x3c\x62\x71\x77\x1c\x0d\xac\xf5\x96\x8f\x15\x70\xcf\xab\x3f\xe2\x23\x41\x53\xbd\x81\x45\xae\xa4\x4c\x4f\x33\x3f\x5b\x86\x47\x06\x04\xf7\xd4\x24\x16\x86\xe9\x1a\x3e\x3e\xed\x6c\x6c\xff\xde\x35\x02\x62\x4c\xc6\x9a\x06\x86\xef\x10\x68\xf8\x87\x09\x4a\x84\xf7\xed\xe0\x19\x10\xc3\x79\x63\xfb\x3b\xcb\xb0\x1d\x78\x5a\x0a\xef\x31\x43\xb8\xba\xf3\x37\x96\x86\xf5\x47\x4c\xe9\x8d\xed\xef\xc1\xfb\xaf\xdb\xa9\xa5\xb7\xbd\x2e\x08\x0f\xc8\xf0\xb3\x28\x3a\x20\x5b\x3c\x90\x01\x86\x3a\x90\xa5\x46\x81\xe2\xa4\x40\xbb\x4a\x8b\xab\x8b\xae\xd7\xbf\xfe\x0a\x0b\xc6\x21\xd1\x66\x35\x8b\x5e\x75\xfa\xb6\x6e\x6c\x02\x37\xf5\x0c\x07\xf4\x76\xdb\x71\x9a\x52\xb8\x8b\xf4\x83\x5f\x42\x83\x98\xfe\x37\xfe\xe6\x9f\x75\x19\x44\xbe\x0d\x03\xe7\x05\x9e\xcb\x7a\x3b\xdd\xd8\x90\xa7\xe3\x3a\x8d\xb5\x62\x3a\x90\xd3\xc8\x35\x6c\x2b\xd0\x21\x87\xae\x0d\x0f\xb0\x2c\xac\x67\x7a\x1b\xdd\x81\x1c\x6d\x16\xa4\x42\x0c\x43\x07\x42\x42\xd2\xc0\x2f\x96\x1d\x40\x3e\xb7\xd0\xb7\xf1\xff\xea\x78\x21\x10\x1c\xdd\x0c\xc3\x3a\x79\xb2\x07\x4e\x90\x1e\x3c\xdc\xb1\xc0\xaa\x1c\xe8\xae\xe1\xe2\xb3\xba\x01\x6a\x0a\x56\x91\x7c\xc3\x86\xa3\xa8\xed\x5a\x1a\x78\x69\xba\xf6\xaf\x40\x83\x6f\x07\x02\xc1\x74\xdc\x17\xcb\xb0\x05\x2e\x40\x3b\x1d\x5e\x14\xc3\xf3\x1f\xd3\x87\xf3\xa6\xee\x1a\x36\xc4\xaa\x0e\x1c\x2f\x0a\x20\xa6\x65\xd0\x44\xb6\x84\x78\x9a\x70\x91\x66\xb9\x3b\x23\xd8\x04\x3a\x5e\xff\x34\xad\x33\xcd\x5f\xec\xc2\xc3\x39\x0b\x22\x63\xd9\xee\x46\x27\xf6\x70\x07\xc2\x88\x3a\x1a\xc9\xd0\x67\x73\x51\xf1\x2d\x7c\x72\x31\x36\xae\x87\xb1\x4c\x5d\xf0\x2e\x76\x0c\xf2\xd6\x1c\x0b\x98\xb9\xaf\x88\x3b\x4c\x7b\xf5\xfd\xf7\xa7\xac\xf8\xb9\xca\xb2\xf4\x31\x2a\xf4\x2a\x7b\x7e\x4e\xd1\xc3\x45\xaf\xd3\x98\xcc\x7e\xac\xd8\x35\x68\x4e\x7b\xa0\xe8\x81\x5f\xf5\x5e\x37\x36\x61\xaa\x1b\x76\xa0\x1b\xf6\x06\x7c\x66\x2d\x8d\xfc\x6b\x6a\x74\x29\x84\x34\x53\x1c\x4d\x1f\xa7\x99\xf0\xc5\xc2\xa2\xc7\xb7\x34\x12\xe6\x56\x37\xe0\xec\x0a\x2f\x43\xbd\x4d\x0a\x0f\xda\x83\x17\x0c\x1b\xac\x19\xe1\x2f\xb6\x69\xb8\xf8\xf8\x96\xea\xf8\xa7\x8e\x25\xa2\xaf\x99\xf7\x1b\x83\x5c\x4f\xc0\x1e\x11\x86\x1a\x56\x6a\xbd\xff\x06\x5f\xe1\x4f\xb8\x3f\xd2\xea\x5a\xd0\x2f\xd4\xab\x7f\x70\xaf\x05\x2d\xcf\x77\x48\xf4\xbe\x91\x19\xea\x52\xfe\xea\xbb\xf1\x54\x20\x54\xa1\x73\xa5\x3f\x25\x69\x85\x8a\xff\x41\x9f\x01\xd5\x7e\x54\xb4\xc5\x9f\x5e\x0c\x6d\xc0\x81\x2f\xf2\xea\xac\x2c\xb0\x81\xe3\x65\xec\xc2\xde\xe5\xa5\xb6\xe1\xd8\x3e\xc4\xe1\xf2\xf8\x7c\xd9\x34\x79\x75\xaa\x43\x19\xfc\xeb\xff\x93\x85\x63\x9a\x04\xf8\xb7\x2f\x24\xa5\x80\xed\x45\x24\x2b\x7f\x9d\x29\x75\x03\xfc\xc1\x7e\x33\x2d\x1d\x3e\xce\xdf\x5e\x38\xba\x0b\xf6\x17\xbe\x7c\x3c\xb9\x50\x8c\x8e\x6f\xe3\x09\x86\xda\xac\x6a\x34\xdb\x1a\xd3\x7a\x52\x5e\x22\xd2\x9d\x52\x6e\xa2\xf2\x6b\x32\x90\x41\x91\x2d\x55\xc9\x4b\x84\x3b\x96\xe4\x26\x02\x50\xff\x9a\xcc\x44\x13\x18\x19\x8c\x7e\xc4\x78\x15\x44\x58\x4f\x24\xba\x22\x8d\x6e\xf3\x4f\xcb\x34\x42\x72\xd1\x1b\xfa\xb5\xb3\xaa\x66\x3b\x3b\x7c\x3a\x22\xdc\x88\xe5\x0c\x3e\x1f\x59\xba\x65\x91\x8d\x06\xb2\xe5\xdb\x16\xd6\x89\x40\xd2\x5b\x1b\x5b\xdf\x50\xf8\x7e\x88\xff\x57\x47\xf5\xd0\x65\x3d\x58\xf8\x08\x8f\xa1\x6a\x58\x71\xa2\x7f\xd9\x24\xd4\xb7\x45\x9e\xc9\x6b\x00\x1e\x5e\x45\x43\xf2\x14\x3b\x20\xae\xb3\x96\xfd\x4f\x2c\xb1\x42\xa3\x4e\x69\xac\xd9\x06\xe4\x63\x80\xa7\x3d\x2e\xde\xb3\x8d\xc0\xc3\x4a\xaa\xe5\x93\x84\x0c\xce\x2f\xae\xb1\xd9\x38\xe4\xfe\xc5\xff\x67\x68\xb8\x3e\x1c\x7e\xfd\x3a\x47\x2c\x06\xfa\xed\x00\x86\x9d\x8d\xee\x8b\x2b\xc1\x56\x6c\x47\x6c\xd7\x7a\xfd\xa3\x5b\x99\xc0\xd0\x49\xdf\x60\x69\x03\x2b\x90\x23\xcf\x63\x3a\xbe\x7e\x5b\x66\x93\x71\x75\x93\x4f\x48\xfd\xc0\x58\x66\xbb\xaf\x68\x3d\x57\x29\x39\x38\xa5\xe3\xa2\xa0\xf9\x8c\xd3\x62\x0f\x0a\x5e\xaa\xf0\xed\x2f\x71\xd9\x89\xf9\xd9\xbc\xb7\x7c\xc3\xb5\x02\x47\xb3\x4d\xb0\xa2\xb6\xbf\x88\x41\x75\x63\x78\x81\x45\x6c\x91\x50\xe0\x6a\x96\xad\xb9\xf7\xf5\x67\x57\x73\xb5\xf6\x6f\x72\x33\x44\x6b\xd6\x9f\x01\x94\x66\x9b\xbf\x7d\x21\x37\xa8\xcc\x95\x2a\x73\xd1\xda\xdc\xbc\xd6\x17\xa4\xec\xdd\xaa\xc6\xdc\xbb\x6a\x36\x77\xbf\x7a\xdf\x82\xe0\xae\x56\x35\xdb\xfe\xed\xcb\x46\xb3\xac\x7b\xb8\xe5\x70\xdd\xcd\x06\x6e\x55\x36\x78\x2c\x26\x3e\x08\x9a\x9f\x2d\x70\xa9\xf1\x3c\xdb\x01\xa7\x30\xab\xa9\x88\xff\xb4\x7e\xb5\x9c\x7b\x0b\x4c\x62\xb4\x06\xfd\xaf\x0b\x95\xdd\xcf\xc1\x7d\x03\xcf\xd5\x36\x4d\x3d\xfc\xd7\xaf\x96\xf5\xdb\x17\xa8\x78\x0f\x41\x6f\x30\x48\xc8\xe0\xdb\x74\xe0\xd4\x1d\x38\x6d\x07\x75\x4d\x97\xfc\xff\x67\xcb\xc7\x93\xd3\x74\xda\x76\x61\xd1\x3e\xee\xad\x76\x6c\x4d\x4d\xa2\x83\x98\x9f\x2d\xf7\xb7\x7e\x28\x85\xf1\xc5\xdf\xb0\xaf\x68\xed\xb7\x85\xdf\x21\x59\xa4\x5e\x66\x45\xd5\x7d\xf4\x51\xfb\xb3\x33\x4b\xa2\xc0\xfb\x70\xb9\xfb\xd3\xb9\xb2\xc3\xb3\x89\xee\xb3\x6c\x47\x73\xf6\x96\xd9\x7f\x4a\xed\x88\x1e\x40\x7c\xfb\xe2\x68\x7e\xff\x95\x88\xcf\x00\x34\x43\xcd\xff\xec\x7c\xfb\x02\x2e\x67\xe4\xca\xc0\x75\xf8\x54\x52\x34\xa1\xb7\xef\xa4\x8e\xee\xb0\x3a\x9e\xde\x28\x79\xbf\x10\xaf\x5c\xd7\xfd\xd5\xe7\x93\xf3\xc2\x0b\x14\xcd\x7c\xc1\xc7\xbc\x5f\x42\x03\x8c\xb1\x1b\xbb\x53\xc1\x84\xa4\x50\x7e\xea\x68\xd0\x33\x3e\x42\xd5\x41\xc1\x5c\x07\x77\x8c\xc7\x11\xf6\xc7\xe1\xb0\xe3\xf0\xb5\x10\x8f\x03\x88\x06\xef\x4c\x78\xaa\x59\xf6\xde\x51\xa5\x9a\xb2\x2b\x7f\x97\x77\x84\x5c\xd9\xa9\xa2\xbc\x2d\x19\x79\x96\x26\xbb\x37\xfd\x10\x1d\xa3\x67\x74\x40\xc7\x19\x0f\xd9\x7a\x20\x44\x2f\xc2\xa6\x6f\x71\x0a\xa8\xcd\x78\xb2\xa6\x84\xec\xf8\x06\xaa\x80\x9c\xc2\x2b\xb6\x61\x64\xa6\x6e\xc7\x43\x38\x4d\x7e\xd8\x36\x8c\x1a\x0d\x65\xbd\x4f\x9e\xf7\x69\xf2\xbc\xaf\x7a\x25\x52\x54\xb0\x30\xac\xa2\x42\x87\x5d\xfa\x4f\x73\x30\x25\xee\xd3\xf0\xc2\xb8\x2b\x37\x1c\x57\x33\x7f\xf1\x0c\xdb\xf7\x35\x0f\x82\xdb\xe9\xae\xe1\xdb\xf0\xd4\x97\xcf\x55\xe8\x12\x55\x3a\xf0\x52\x62\xab\x75\x0c\x2b\xd0\x21\x3b\x83\x6b\xb8\x01\x9b\x76\x1c\x9e\x82\xdb\xc6\x26\xf4\x7f\x09\xe0\x56\x2d\xd8\xa4\xae\x61\x41\x10\x47\xcb\xe9\x55\xd4\x71\xcd\x14\x40\xe9\x18\x54\x48\x8c\xc1\x90\x98\xa6\x87\x02\x09\x75\x44\x91\xd4\x31\x96\xbf\xd4\x03\xfb\xa6\xb6\xfd\x75\x66\x47\x24\x6e\xba\x55\xa4\x71\x69\x52\x2e\x04\x7a\x3d\xf7\x7f\x9a\x69\x97\x9b\x45\x3b\x2f\x03\xfd\x0d\xa6\x6d\x4a\xe2\x1f\xd7\xaf\xb1\xfb\x5c\x60\x31\x4c\xa0\xb7\x5c\x20\x64\x02\x78\x65\xdd\xe5\x02\x5d\xc8\x06\xb4\x2a\xe1\x83\x96\x0d\x74\x21\x1b\x58\x0c\x17\x30\x4c\xb0\x31\x1c\x07\x33\x01\x97\x3b\x5e\x33\xbc\x6f\x07\x53\xb3\x0d\xd7\xf2\x7f\xf1\x0d\xd7\xd1\x7c\xc3\xec\x6c\x57\x9e\x0f\x39\xf8\xf0\x78\x20\x7f\x10\x44\x78\x86\xd4\x30\x4e\xc8\x75\x8b\xa9\x01\xf1\x4a\xbd\xd0\x85\xa4\xb7\x10\x90\x11\x52\x9f\xf8\x96\xdf\x49\xd2\xeb\x6b\x66\xea\x50\xbb\xa7\x6f\xf9\xb8\x91\x07\x59\x5c\xfc\x0e\x4c\x4b\x07\xa8\xd0\x27\x24\x7e\x01\x3c\x74\x8c\x48\x17\x4f\x47\xc7\x88\xfe\x82\x11\x0c\xad\x05\x97\x03\x0c\x8f\xca\x98\xbf\xe1\xfb\x2a\xaa\x53\x8e\xb7\x32\xb0\x8a\xf1\xe7\xce\x0d\x1a\xae\xf8\x67\xd3\xfd\x3c\xcd\xad\x6d\xfb\xa6\xa9\x41\x66\x50\xbf\xfd\xa0\xdb\x9f\x15\x5e\xf4\x12\x55\xe8\x1e\xe2\x5b\xe1\xa6\xf4\x0f\xfc\xf9\xc5\x33\x6c\xd7\xdf\x99\x9a\xe1\x85\xbe\x61\x3b\x1b\x08\xa4\x16\x1a\xbe\x47\x22\xb4\xa6\x9e\xe1\x04\x0e\x64\x64\x74\xa3\xee\xcb\x5f\x08\xed\x9a\xba\x18\x82\x0e\xff\x76\x6a\x98\xc0\xf7\xf6\x2f\x21\x0d\x0f\xec\xfb\x9d\x67\xc0\x1b\xc3\x0d\x7d\xcd\xfa\x8c\x3f\x7c\x3b\xe0\xaf\x3e\xfe\xf2\xab\x4d\xee\xc8\x3a\x8c\xe6\x39\x86\x6d\x33\x08\xf5\xd4\x38\xd3\xff\x25\x24\xd7\x5a\x8e\xe1\x5a\xdd\xc5\xe9\x6b\xe6\x2f\xb6\xb1\xa1\x6e\x57\x3c\x63\xe2\x15\xe8\x0d\x64\x09\x55\xd1\x01\x5b\xee\x11\x70\x24\x53\x38\x2d\x6e\x82\x51\xbf\xd4\x35\x9e\x8b\xec\x94\xf3\xf9\xd4\x27\x44\x50\x18\x82\x73\xd1\xf5\xd3\x11\xcc\x8c\xff\x42\x89\xaf\x6a\x0e\x30\x35\xf3\xd7\xf0\x57\x7c\x72\xfc\x1c\xfe\x1a\x7e\xb6\x7e\xb1\x34\xf3\xb3\x39\xe7\x10\xd9\x8c\x59\x30\x5f\x6d\xd9\x14\xeb\x11\x26\xdb\x0e\x1d\x2b\x54\xac\x66\x41\x1a\x06\x29\xd1\x5f\xe5\xed\x66\x98\x8f\x84\x90\x2e\xba\x9e\x15\x7f\x2e\x69\x29\x7d\x74\x0b\xb1\x05\x78\xc9\x63\x91\xb0\x05\x7b\xbf\x1b\x99\xc0\x82\x7c\xc3\xb6\xf7\x02\xb1\x85\xb0\x32\x01\x37\x96\x9e\xd3\xad\xe6\x91\x38\xa7\x9e\x61\x61\xe1\xe9\x87\x3a\xc8\x54\xc3\x86\xb7\xb1\xe4\x7d\xeb\x5e\x27\x41\xca\xda\x73\x6c\x73\xb2\xb4\x5e\x74\x3e\xaa\x59\x5d\xb0\xd7\xfd\x5e\x12\x76\x88\x78\x60\x75\xe5\x19\x3e\x4c\xeb\x96\xf5\xed\x0b\xd6\x66\x1c\xc3\xfb\x75\x63\xd8\xa9\x65\x58\x81\x6b\x04\x9d\x5d\xdf\xb1\x7c\xc3\xb7\xec\x17\xd7\x08\xbc\xcf\x58\xc7\x1c\xcb\x72\xef\x42\x74\x06\xd3\xf0\x30\x2a\x46\x1d\x92\x7a\x63\x6c\x5e\x9c\xfa\x03\xbc\xef\xc5\x28\xd8\x86\xb3\xb7\x0d\xeb\xc5\x36\xfa\x65\x0e\xd7\x5c\x37\x36\x7b\xdd\x21\xb1\x72\xc0\x03\x81\x3f\x9a\x7b\x9a\xbb\xef\xa6\xf3\x87\xb3\xb9\x30\xa4\xc3\xb7\x2f\x1b\xfc\xc9\xed\x19\x03\x3e\x07\xac\x31\x20\xd0\xdc\xbd\x0e\x69\xad\x5d\xb2\xbd\x74\xfb\xf4\xa7\xf7\xd9\x37\xa4\x74\xfb\xf4\xd9\x3e\x83\x5e\x9f\xc1\xf4\x3e\x83\xd1\x3e\x03\xd2\xa7\xf2\x76\xd5\x2e\x5f\x81\xf8\x63\x0a\xd5\xcd\x14\x45\x96\xa2\x35\x6c\x0a\x42\x38\x0a\xc7\x7d\xbe\xdd\xe4\x93\x39\xdb\x1c\xef\x88\x25\xfa\x13\x44\xd9\x54\x90\x6f\x81\x66\x45\xae\xe6\x52\x87\xaa\x40\x23\x7f\x63\xed\x2b\x00\x9f\x23\xcd\x8b\x6c\x48\xbf\x4e\x6e\xaf\x3c\x48\x25\x5a\xff\x36\x2d\x7d\xe8\x16\x95\x8f\x33\x63\x99\xdc\xbd\x2c\xe8\x77\xf4\xe7\x0b\x2f\xb5\xa8\x78\x32\x3c\x5e\x23\x84\x38\x7a\xe0\x62\xb2\xf7\xfa\x92\x17\xf4\x36\x39\xa8\x7f\xf2\x7d\x5b\x26\x11\x52\x6d\x54\x1b\x25\xb6\x67\xa6\x55\xb4\xed\x33\xa5\x33\xe2\x5b\xe5\x51\x51\x25\x90\x57\x8c\xd9\x73\xa7\x86\xb9\x12\x02\xa9\x97\xc1\xe3\x09\x6c\xdb\xe4\xee\xb8\xa9\x39\x70\x73\x0c\x35\xb1\xb2\xf7\xfb\x2e\x8d\xca\xf2\xff\xfe\xb9\x69\xf4\x30\x41\x9b\x18\xc4\xa9\x69\x36\x5c\x9b\x5a\xe2\xc1\xe6\xd0\xb5\xc5\x27\x4c\x9b\x5e\x00\x26\x3c\x29\xe5\x5f\x62\x29\xfa\x9a\x1d\xd1\xe0\xc1\x74\x39\x6e\xb4\xf6\x37\x5e\x92\x9b\x6f\x5f\xc0\x2b\x30\xb2\x35\x1b\x96\x23\x5e\xab\xe4\x6f\xd3\xd2\x5d\x95\xa5\xe8\x92\xa5\xd8\x59\x0e\x86\x37\xbc\x7a\xa4\x0b\xd1\xe9\x2f\x44\x73\xd2\x42\xdc\xd4\xeb\x10\xb6\x76\x8b\xa8\x3f\x66\x37\xa0\xab\x8d\xab\x10\xcf\x0e\x9b\x44\x7b\x6a\xf5\x30\x50\xb8\xc4\xfa\x4d\x3f\x0c\x26\xe4\xd5\xd8\x60\x3d\x46\xbc\x5d\x82\xaf\xb7\x83\x47\xe3\xf2\x7a\x94\x07\x51\xc2\x9d\x10\xf2\x4c\x9b\x16\xfd\x97\x6c\xbf\x8e\xb1\xb1\x03\xa6\x76\x53\x19\xe6\x0f\xa2\x5f\x79\x66\x7d\xe6\xf6\x0d\xcf\xb6\xa7\x49\x9c\x72\x58\xe4\x94\xa3\x46\xba\x97\xe8\x94\x0e\xe4\x65\x85\xe2\xfe\xca\x81\xcf\x7f\x1e\x53\x1e\x3d\xbe\xa5\x1b\xc8\x18\x67\x79\x86\x67\xf9\xbf\x58\x3e\x3e\xbf\x7d\x3b\xc0\xa3\x11\xf0\x51\xd8\x63\x15\x7a\xf3\xab\x6b\x04\xe1\x1e\xff\xf5\x82\xff\xf9\x76\xc0\x93\x1f\x9a\x75\xa9\x6d\x84\x81\xd7\x14\xfb\xe1\xb7\x03\x2e\x75\x35\xc7\x08\x2c\x52\xe5\x05\xfe\xed\x43\xf0\x06\xe1\x7b\x03\xf0\x83\xd0\x25\xf9\x57\x3e\x87\x86\xed\x77\x01\x7c\xc1\x1f\x35\xbc\x3a\xdd\x5e\x6b\x68\xa0\x66\xdb\x65\xe7\x4c\xc0\x2e\x5c\xf1\x77\x63\x87\x8a\x2a\x79\x4a\x76\x51\x85\xe8\xf4\x1b\xfb\x24\x6e\xf5\x18\x89\x9b\x1a\x7a\x43\x7a\xf6\xf4\xc4\xd8\xc8\xb0\x70\x2e\xd0\x0b\x8a\x52\x2d\x39\xe6\xa7\x6a\x0b\x91\xbf\x50\xfc\x49\xcd\xc7\xa8\x03\xb0\x8f\x77\xaf\x47\x01\xe6\xe5\x3e\x7b\x55\xc1\x5c\x88\xb5\x3a\x9e\x83\x38\x36\xb0\x95\x93\x86\x8a\x3a\xc3\xeb\xe2\xb6\xfb\x9b\x19\x11\xf8\x07\xd6\xa6\xa1\x22\x3a\x96\x79\x54\xa0\x63\x75\xf5\x5f\x92\x43\x9e\x15\x55\x74\xac\xbe\x1b\xe8\xf0\x88\x0a\xfd\x31\x2a\x93\x9d\x1e\x17\x59\x8e\xb5\x91\x4b\x9e\x95\x64\xc7\x2f\x50\x1a\x55\xc9\x0b\x12\xd7\xbb\x11\x7e\x05\x05\x04\x1d\xab\xe1\x52\xed\xfa\xf2\x98\x9d\xf5\x32\xf9\x96\x1c\x9f\xb7\x8f\x59\x11\xe3\xaa\xd9\x59\xdc\x53\xdd\xaa\xc5\x2c\x7a\x2c\xb3\xf4\x54\xa1\x5b\xc8\xec\xbc\x8d\x4e\x55\x76\xfb\x4d\x4f\x8e\x31\x3a\x6f\x2d\xd3\x34\xfb\x74\xf8\xb7\xa7\xa7\xa7\x61\xe8\xba\x9e\xa2\xa7\xea\x82\xff\xd9\x9a\x63\x55\x8b\xe4\x79\x5f\x5d\xe0\x5f\x69\x65\x2c\x3d\xd3\xe8\xad\xc5\xfa\x29\x39\xa3\x98\x41\x6d\x5b\x3c\x3f\x46\x3f\x99\x37\xf8\xff\x0c\xef\x8a\x0e\xc6\x32\xcd\x8f\xb7\x24\x4d\x35\xf9\xbb\x1d\xd8\x6d\x95\xe5\x5b\xf3\x96\xa0\x78\x9b\x67\x58\x05\x2b\x74\xbc\x81\x57\x25\xcc\xff\x08\xda\xaf\x59\x71\xd8\x67\x29\xd2\xb3\x22\x79\x4e\x8e\x97\x38\x29\xf3\x34\x7a\xdb\x26\xc7\x34\x69\x1b\xe7\xd9\x6b\x23\xf6\x1b\x18\x63\x33\xc6\x35\xaa\x8a\xe4\xf9\x19\x15\x7d\x4e\xba\xa5\x0d\x8b\x28\x4e\x4e\xe5\xd6\xcd\xcf\xe2\x99\xba\xc5\xf8\xe8\x35\x11\x8c\x8d\x77\x8b\x89\xf9\x94\x66\xaf\xfa\x79\xbb\x4f\xe2\x18\x1d\x6f\xc1\xdf\xb5\xfe\xbc\x45\x69\x9a\xe4\x65\x52\xde\x1e\x92\x23\xdb\x10\x1d\x6e\x41\xe1\x26\x98\x91\x45\x52\x2f\xa6\x5e\x01\x41\x20\x39\xee\x51\x91\x54\x43\x23\xa3\x9e\xb5\x94\xae\xdb\x0f\x1f\x6e\x6b\x52\x42\xfc\xc3\xdb\x5d\x8a\xa2\x62\xfb\x98\x55\xfb\x21\x28\x3a\x2c\xf6\x17\x74\x33\xd4\xd3\x53\xb6\x3b\x95\x84\xf6\xfb\x28\xce\x5e\x87\xe6\xb9\x81\xfb\x88\xd2\xec\x75\x00\xea\xef\x51\x91\x44\xf8\xb4\x1d\x1d\x63\x14\xff\x5c\x15\x27\xf4\x20\x59\xb1\x0d\xcc\xe4\xa8\xe7\x69\xb4\x43\x13\xc1\x5e\x1a\x5e\xa9\xaa\xec\x00\x6b\xac\x9e\x7e\xf3\x96\x2f\x83\xe5\xd4\x14\x8e\x8d\x31\x7a\xcc\x5e\xe6\x22\x53\x65\xb9\x18\x13\x5c\x20\x46\x83\xeb\x02\x08\xb1\xcf\xd2\x18\x98\x00\xb8\x36\x0c\xc3\x86\x09\x1e\xd3\x6c\xf7\x55\xc0\xb2\xaf\xfb\xa4\x42\x7a\x99\x47\x3b\x2c\xae\x5f\x8b\x28\x97\x70\xb1\xb0\xd3\xb2\x8a\xaa\x53\xa9\x27\xbb\xec\x28\x90\x84\xfc\x5a\xd6\x09\x0a\x44\xa2\x98\xb5\x38\xa9\x05\x08\xa1\xf7\xd6\xbc\x3d\x44\xc5\x73\x72\x24\xf2\x93\x52\xa0\xac\xde\x52\xb4\x2d\xb3\x34\x89\xeb\x4f\x04\xca\x26\x3f\x6b\x6e\x7e\xd6\x1a\x5a\xd1\x81\x47\x51\xa4\x31\xfb\x0b\xfb\xf7\x2d\x11\x90\x5e\x2e\x13\xec\x03\x53\xa5\x8d\x91\x00\xfa\x81\x5c\x27\x45\x56\x45\x15\xfa\xc9\x0a\xcc\x18\xe1\x6d\x55\xd0\x10\x16\xa4\xfe\x58\x89\x28\xb7\x3b\x15\x65\x56\x6c\xa9\x38\xa5\x38\xdb\x0c\xd2\xc2\xb5\x7b\x38\xa5\x55\x92\xa7\x48\x07\x55\xe6\xf2\x94\x1d\x2b\xfd\x29\x3a\x24\xe9\x5b\x2d\x40\x6e\xe1\x5b\x99\x7c\x43\xcd\x17\x42\x39\x22\x6c\x84\x13\xc6\xca\xbd\xba\x51\x2d\xae\xa2\x3c\x47\x51\x81\xcf\xcc\x04\x40\x76\xaa\x70\x75\xbc\x13\x44\x71\x8c\xc5\xb2\x79\xfb\x94\x66\x51\xb5\xc5\xac\xdd\x17\xac\xec\xc4\x00\xdb\xe1\x6d\xe5\x58\x6d\xed\x49\x23\xdd\xc6\x49\x89\x65\x5c\x7c\xe9\x4b\x6e\x84\xc4\x9b\x88\x04\xd2\x96\x5d\x46\x59\x1e\xed\x92\xea\x6d\x6b\xdd\xb6\x0b\x6a\x12\xb0\x9a\x4c\xf0\x53\x5f\x17\xf4\x21\xfb\xb6\x36\xc4\x52\x19\x51\xb2\x49\xf4\x5e\x9f\xfd\x9e\xc4\xd7\x3f\x7f\xd8\x7e\x78\xb8\xe9\x15\xe1\x73\x91\x70\x53\x69\xd0\x28\xd0\x21\x7b\x41\x78\x41\x10\x73\xe5\x1e\x37\xbf\x6a\x10\x30\x3c\xe1\x68\x9a\xe6\x59\x0e\xe1\x7c\x2f\x2d\xe3\x51\x49\x22\x16\x97\x9d\x76\x54\x0a\x6f\xad\xfc\xac\x81\xa0\xd1\x9e\x8b\xe8\x4d\xa0\x1b\x50\x2a\x38\x8e\x23\x50\x13\x90\x8b\xff\xaf\xe5\x7d\x2c\x9c\xc6\x17\x95\x65\xb8\x1e\xbb\x4a\x28\xde\x36\x16\x6c\x1a\xfe\xd7\x91\xac\x06\x01\xe9\x2e\xbc\xe4\x10\x0b\x6d\x78\x55\xd1\x10\xca\x95\x40\xa7\x8f\x2f\x88\x2c\xe9\x91\x07\xcb\xd8\x0e\x79\x4c\x56\x5b\xec\x0b\x1a\x91\x1c\x69\x29\x25\x93\x6d\x2c\x16\x8d\xe2\x21\xc6\x45\xa8\x8e\x08\x35\xc7\x7a\xcf\x05\xad\x55\x32\x26\x32\x35\x7c\x59\x4f\x05\x14\xe8\x8e\x3c\x1a\xcd\x8e\x5b\xef\xb7\xe3\xfa\x5c\x8d\xe4\x88\xba\x0f\xba\x06\xa3\x3c\x48\xc6\x41\xf7\x55\x72\x12\x5b\xa8\xf6\xcc\x41\x13\xd4\x3e\xe1\xc2\x57\x04\x50\xeb\x78\xec\x50\xfb\xa3\x91\x8c\x7e\xa9\x52\x35\x15\xc7\x76\x01\x08\xc1\xd5\x32\x0a\x2e\x69\x88\x56\x43\x8f\xcc\x44\x52\x31\xbb\xa6\xf2\x09\x61\x4c\x19\x14\xd2\x9e\xfc\x07\xc5\x7a\x52\xa1\xc3\x4d\xf4\x7b\x81\xd2\xeb\x9f\x6b\xe3\xdb\x43\xfd\x4a\x8f\xa0\x45\x56\x49\x20\x59\x9f\x74\x48\x24\xe5\x17\x1e\xd7\x63\x76\x7e\xb8\x34\x7a\xe6\x1b\x51\xe4\x6a\xe4\x9b\xef\xe5\xae\xc8\xd2\x14\x0f\xb5\xca\x4e\xbb\xfd\xed\x21\x3a\x37\x0b\xcb\x36\x6c\x0f\x1d\x06\x7a\xeb\x08\x39\x46\x8a\xc8\xb0\x04\xe7\x0f\xa2\xd2\xd5\xba\x02\xd5\xbe\x19\x55\x99\x42\x3d\x66\x95\x1e\xa5\x69\xf6\x8a\xe2\x69\xb0\x84\xea\x21\xc1\x58\x38\x09\xa4\x68\x0c\x2b\xc1\x91\x5a\x15\x53\xb6\x83\x7a\xc6\xeb\x43\x47\x6f\xef\x8a\xe3\x71\x20\xbb\x53\x81\x55\x35\x29\x0c\x2f\x08\x37\x4f\x8f\xb7\x7d\xf3\x46\x9f\x80\xfa\x31\x3a\xa0\x7a\x22\x63\xf4\x14\x9d\x52\xaa\x9d\xbe\x12\x36\xd8\x98\xe2\x25\xc9\xe9\xe7\x1d\xb2\x4d\x56\xff\x5a\x6d\x41\xb3\x7c\xd8\x6f\xc5\x9d\x12\xe7\xa1\x19\x25\x64\x98\xb4\x17\xb2\x92\x6c\xd9\x86\x3b\xa7\x13\xba\x20\xb8\x0e\x5c\x73\x72\x07\x22\x30\x73\xf1\x14\x0c\x59\xb6\x2c\xeb\xb9\x8c\x93\xe2\xe7\xa2\x4a\x1f\x98\xe9\x20\x36\x75\xc5\x76\x42\x64\xc6\x64\xa0\x12\x10\x4e\x50\xd6\x02\x91\xe8\x06\xaa\x83\x12\xc2\xed\xa8\x9f\xf3\x11\x94\x9d\xfd\x40\x9d\x04\x44\xe7\x23\xc9\x1e\x6d\x61\x1e\xbd\xfc\x4c\xcf\xa2\xc9\x31\xa9\x92\x28\x9d\x0f\xbb\x3d\xfd\x12\x66\x53\x03\x5d\x6f\xbd\xc3\xb0\x57\x5a\xad\xf4\xd4\x2d\x5b\x06\xef\x87\x4b\x67\x35\x12\x3c\xa4\xab\x7a\x29\x1e\xc2\xde\xde\x77\xd4\x22\x3a\xe3\xe5\xf4\x6f\x69\x86\xd7\x17\x89\xe8\xf0\x29\x4e\x5e\xb4\xa7\x2c\xab\x50\x51\x5f\xf1\x81\xfe\x7f\x33\x56\x0b\x0e\x8e\x02\x9f\x00\xe6\x4d\x77\xfb\x1e\xbd\xbc\xe3\x60\x4f\x6d\x45\xfb\x82\x1c\x4a\xb0\x5e\x10\x75\x0f\xaa\xe1\x09\x4a\xa4\x6d\xc8\xdb\x3c\x1e\x9f\x91\x5a\x14\xd6\x21\x8b\xa3\x54\x8f\x93\x28\xcd\x9e\x35\xa2\x8b\xc5\xd9\xee\x74\x40\xc7\xea\x41\x8b\x63\x2d\xaa\xc1\x8d\x57\x54\x81\x98\x2b\x02\xcc\x5b\x78\x6c\x9a\x66\x7a\xef\x55\xa0\x12\x55\x35\x1c\x69\x39\x6d\xdf\x86\x02\xa0\x62\x49\x33\xe8\xa9\x37\x4a\x53\x9e\x3f\xd4\xea\x12\xb8\x40\x4c\x72\xa1\x46\xc6\x40\x61\xf4\xbf\x93\xfa\x87\x28\x39\xb2\x04\x6d\x7f\x33\xe5\x39\x5f\xdc\x50\xe1\x02\x26\xae\x18\xed\xb2\x22\x02\x7b\xdf\xe9\x18\xa3\x02\xee\x39\x46\x78\x7a\x2a\x5f\x8a\xf8\xe6\x5a\xc8\x8c\xad\xb9\x7f\x6d\x0e\x1e\xe5\x5d\x79\xd7\xef\xb8\x10\xc6\x39\x56\xce\x8b\x6a\x9c\xd5\xe7\x1d\x01\x37\xd1\xb1\xcf\x66\x3f\x86\xf1\x28\x28\x55\xce\x6c\x79\x92\x6d\x28\x65\x59\xa2\x47\x17\xcf\x8f\x3f\x91\x6b\x5b\x12\xe2\x85\xdc\x08\x5f\x41\x92\xaf\x01\x6a\xc2\x30\x34\x7a\xbc\xdc\xa3\x34\x7f\xb8\x89\x93\x17\x92\x8a\x6b\x97\x1d\x9f\x92\xe2\x00\x0b\x41\xcb\x49\xb7\xfd\xfa\xbd\xfe\xab\xec\x88\xf4\xe7\x22\x7a\xd3\x5d\xd3\xbc\xba\xfa\x97\x2d\x1c\x9e\xd3\xff\x9c\x6c\xd7\xe1\x96\x5c\x8b\xba\x27\x67\x85\xbb\xf9\xd1\x4d\xb9\x5e\xc6\x13\x77\xce\x01\xc1\xa3\x28\x18\xea\x6a\xe3\x7b\x9a\x52\x4d\x66\x49\xc8\x77\xa3\xba\x82\xd2\x16\x23\x5d\xe4\xbd\x25\xdb\x5d\x8a\xe4\xf7\xa5\xb9\x4e\x19\x59\x67\xec\x8a\xa9\xb3\xde\x01\x2c\x41\x41\x6b\x50\x77\x47\xa0\xee\xed\x9a\x73\xf0\x5f\x03\x2b\x31\x84\x95\x38\x0e\x4c\x86\xa5\xb8\xec\xd2\x9a\x90\x0d\xdf\x43\x07\x6a\x25\x03\x03\xa0\x61\xb7\xbf\xe1\xfc\x80\x3f\x7c\x37\xaa\xe8\x51\x2f\xa9\xe3\x73\xbe\xcd\x8e\xe9\x1b\x71\x77\xd6\x04\xd0\xeb\x8b\x72\x62\x43\x83\x10\x9c\x4f\x59\x71\xa0\x26\x3c\xc7\x36\xf3\x73\x6d\x97\xd3\xf1\x0f\x0d\x1f\x51\x34\x93\xa9\xaa\xa1\xc3\x00\x51\x3c\x4c\x14\x6a\x06\xa7\x96\xbe\xe2\x10\xa5\xe2\xeb\x00\x66\x68\x16\x1e\x48\xdb\x07\xcb\x8a\x37\xcc\x77\xc0\xb5\xd6\xa0\x05\xed\xa0\x9c\x82\xad\xef\x56\x59\x37\x1b\xa6\x87\xa1\x6b\x50\xb6\x4b\xca\xd5\xc7\xac\xfa\x89\xac\x86\x2b\xce\xde\xc9\x40\xcc\x8b\xec\xb9\x40\x65\x79\xa9\x0d\x9b\x5a\x74\xaa\xb2\x51\x49\xd2\x9b\x77\xcb\x36\x3f\xde\xf6\x3d\x36\xf0\x70\x75\x2b\x3f\x13\xaf\x13\xdd\x19\x38\x39\xb0\x56\xe3\xd6\xbc\x6a\xe1\xf9\x74\x6d\x3c\xa9\xa6\xc8\xdf\x43\x45\x0a\xde\x31\xff\x6b\x26\xa2\xa6\x34\xa5\x46\x5e\x64\x4f\x49\xda\x9c\x74\xb6\x46\x88\x0e\x5a\x3b\x51\xb4\x58\x8b\x89\xab\xf2\x85\x35\x7f\x51\x14\xde\xf2\x8c\x7e\xd1\x09\xff\x5c\xf5\xda\x8e\x34\x7b\xcc\xd2\xb8\xd7\x28\xbe\xe9\x41\x91\x73\x72\x40\x96\xb7\x10\x65\x79\x2b\x1f\x5a\x91\xf5\x4d\x1e\xee\x1f\xa3\x17\xf6\x0d\x82\x96\xa5\x5a\x9a\x0c\x0a\x16\xb2\x86\xba\x5a\x33\xac\x58\x05\xc0\x12\x0d\x06\xc0\x3f\xa6\x27\x24\x01\xdf\x2a\xe5\x2a\x7d\xd4\xde\x70\x33\x90\xbc\x4b\x13\xe6\x26\x00\x4f\x1a\x12\x5e\xc3\x3f\xa5\xe8\x3c\x8e\x0b\xf7\x25\x12\xf9\x13\x8e\xd1\x99\xb3\x6e\xc9\x6e\x2e\x15\x10\xe9\x3d\x36\xd1\x22\xee\x2a\xc1\xcf\x55\x86\x23\x80\xd2\x0c\xaa\x71\x72\xfa\xc7\x87\xdb\x49\xa3\x0a\x66\x8c\x4a\xe0\x9e\x01\xf2\x16\x7c\x14\xa2\x3c\xd7\x5f\x12\xf4\x7a\x47\x44\x4e\x23\x25\x49\x1a\x59\xf2\xf7\x03\xdd\xfb\x51\x8a\x2a\x91\x9e\x44\x94\x69\xfd\x35\x2a\x8e\x3a\xec\xa1\xb5\xca\x11\x47\xc7\x67\x54\x64\xc4\x2c\x91\xbf\xe9\xe4\x73\xa3\xd9\xc6\x49\xb9\x4b\xb3\xf2\x54\x20\x92\x5d\x97\x77\x59\x79\xf8\xe3\x1a\x2b\x4d\x64\x1f\xae\x0a\x84\x92\x0a\x1d\x1e\x14\x5b\xa5\x09\x6d\x88\xab\xcc\x6a\x48\xac\x4a\x0f\x9c\x12\xa7\x61\x71\x59\x63\xbf\x8f\xca\x7d\xb2\xcb\x8a\x5c\x27\x04\xc1\x64\xd7\xd2\xc4\x38\x82\x2f\x52\xa9\x75\xfb\x1b\x6d\xd8\x3c\xa5\x18\x68\xdb\x71\x69\x6d\x15\x7c\x5c\x4b\xcf\xa3\x23\x4a\x85\x44\xe3\x8b\x45\xd4\x91\xd4\x68\xc8\xc0\x29\x47\x3c\x43\xf4\xf2\x24\x8b\x93\x10\xc3\xa6\x23\x44\x6e\x5a\x7b\x21\xf6\x33\x41\x34\xc3\xeb\x2b\xcc\xac\x9e\x70\xa3\x90\x63\x59\x3a\xbc\x65\x23\x5b\x32\x28\x61\xe8\xac\xeb\x9b\xf6\x15\x13\x89\x28\x53\x36\x2b\x72\x24\xea\xd6\xf5\x8d\xe0\xe8\xcb\xf1\x42\x44\x7e\xed\x0a\x14\x55\xe8\x86\x8a\x01\xf2\x29\x3a\xee\x50\xca\x7d\x2a\x4f\x8f\x87\xa4\xba\x61\x05\x0e\x90\xfb\x81\xfb\x44\x6a\x3d\xdc\xd4\xd1\x73\xea\xb4\xd7\x02\x39\x45\xa6\x8c\x88\x9a\xea\x78\x35\x9c\x82\x7b\xda\x2c\x2e\x00\x25\x98\xd5\x35\xa0\xd5\xb3\x3c\x9c\x1d\x7c\xce\x28\xe7\xc1\x92\x0e\x73\x21\x38\x3a\xce\xee\xc9\x5f\xe6\xf7\xd9\x55\x61\xa6\xef\x70\x8d\x37\xde\xac\xad\x8e\x6b\xdd\xdd\xf3\x98\xc2\x39\x9b\xdf\xd4\xe6\xfd\x29\x99\x0d\x81\xce\x02\xd3\x5e\xbc\x2f\x32\x15\x66\x6e\x90\x0a\x10\xc6\x77\x4a\x06\x88\x78\xcb\x64\x2a\x0c\x6e\x9d\xd2\x7a\x83\xb4\x1d\xde\x4c\xd9\x8a\xb2\x5d\x95\xab\xb3\x64\x7b\x9d\x0f\x68\x78\x84\xcb\x36\x5c\x06\x92\x60\xe7\xad\x0b\x57\xda\x82\x99\xce\x56\x1a\xfd\x2a\x03\x17\x07\xb6\x6c\xcb\x25\xbb\x34\x53\x63\x78\x33\x6e\x2b\x72\xbb\x72\xfb\xb9\xbf\x3d\x8b\xcb\xc8\x0e\xdc\x2d\x63\x37\x6c\x71\x19\xdd\xb9\xdb\x42\x95\x2d\x9c\x9f\xfb\xf7\xd8\xcb\x5b\x7c\x56\xdd\xd4\xd7\x05\xdb\x63\x97\x15\xb7\xf9\x75\x80\x8e\x53\x60\x9d\x8d\xbf\x75\x8e\xef\x38\x5b\xf5\x1c\x66\x6b\x80\xf4\xf6\x1e\xa0\x2a\x48\xaa\x3f\x68\x45\x85\x3a\xfb\xea\x90\xfe\x1e\x47\x55\xa4\x17\xd9\xa9\x42\xff\xfd\xe7\x0f\xf1\xce\x88\x76\x69\x69\xc0\x73\xb2\x0f\x0f\x9a\x41\xb2\x05\x40\xc8\x77\x32\x8c\x22\x8a\x93\x0c\x30\xa2\xf7\x49\xd3\xf8\xe3\x0f\xb6\x8d\x2a\x45\x49\xa3\x9e\x2f\xf5\x8f\x3a\xec\xcb\x8e\xcc\x03\x67\xc8\xb1\xf3\xd7\x5f\xe9\xdc\x71\xe1\xde\xf8\x58\xe0\x54\xcd\xba\x59\x13\x3b\x0f\x28\xaa\xf4\x93\x6e\x99\xe6\x15\xcb\xd0\x6c\x15\x94\xa2\x17\x18\xb2\xee\x98\xe6\xd5\xf7\x71\xa9\x2d\x96\xcc\x0b\x84\xef\xa8\x95\xf4\x2f\x62\xca\xf9\x4f\x67\xb2\xf9\xeb\xdb\x65\xfe\x8a\x76\x97\xbf\xcd\x0e\xff\x91\xcc\x0e\xc3\xb7\xc6\xfd\xbb\x37\x51\x55\x73\xbe\x94\xac\xdd\x87\x66\xb5\xa5\x4e\x45\x73\x8d\x05\x53\xba\x16\x34\x9f\xd5\x7b\xad\xf5\xcd\xea\xbb\x6e\x4c\x7b\x9e\x6b\x81\xa0\x7d\xcf\x6d\x3e\xd2\xbb\x82\xf5\x62\x04\x01\x05\x08\x14\x07\x89\xf1\x83\xc2\x97\x94\xd6\xae\x68\x83\x76\x91\xda\x7d\x72\xb0\x92\x10\x92\x9c\xd1\x46\xeb\x0d\xc3\xeb\xb0\xce\x48\xad\xc6\xe1\x6e\x91\x75\xa5\xf1\x22\x5d\x04\x65\x1e\x2e\x03\x84\x5c\x0c\x68\x21\x46\xdd\xa9\x58\x08\x86\x62\xb3\x78\x9a\x16\xcf\xd0\x1a\x93\xb3\xc6\xbc\x2c\x9f\x92\xc5\xb3\xb1\xa2\x41\x86\xa0\xb4\x22\xc0\xc5\x18\x4a\x67\x6f\x5d\x98\xeb\xe1\xc9\xcf\xee\x9a\x10\x59\x1c\xd7\x31\x3f\xb1\x38\xae\x03\x71\x39\x8e\x23\x13\xbe\x1a\xd0\x15\x31\x15\x4d\xf9\x4a\x20\x89\xe3\x91\x9a\x6a\xeb\x81\x6a\xab\x9a\xaf\xa9\xef\x0c\x47\xad\x24\x7e\x7e\x6e\x22\x34\xc1\xb3\xb9\x51\x88\xc4\xd9\x0e\x1c\xe3\x38\xc7\xc0\x7f\xa1\x47\xcb\x3b\x18\xbe\xfe\x93\xdf\xe1\x8b\x22\xa7\x4d\x9e\xe1\xd6\xa1\x13\xec\xb4\x15\x2a\x0e\xc9\x31\x9a\x39\xf3\x43\xc0\xba\x1c\x21\xaf\x2b\xe6\x14\x79\x7d\x29\x07\xc9\x9b\x0c\x73\x96\xbc\x9d\x98\x6d\xe4\xf5\x25\x9c\x28\x6f\x30\xcc\x7f\xd2\x76\x1c\x5f\x4a\x6b\xf5\xf9\x55\xa9\x2a\xe1\xd0\x91\xaa\x2c\x7f\x2b\x55\xa5\x7c\x2f\xad\x3b\x7d\x3d\xc8\x40\x49\x9c\xfc\x3c\xf3\x23\x71\x32\xc6\x7f\xb0\x3e\x8c\xba\x65\x37\xfe\xe1\x3a\xf1\x47\x9e\xe7\x0f\xd8\xd8\x8c\x5b\xcc\x3e\x5d\x2f\xf3\x9c\xe8\x42\x92\x7a\x51\xf0\x15\x47\x1c\x12\xf8\xca\xe3\x17\xef\x7c\x7d\xc5\x5b\x6a\xbe\xd1\xf0\x0d\x2f\x5f\x77\xec\xb6\x97\xaf\xad\x78\xf3\xcb\x35\x12\xdf\x02\x73\x55\x06\xee\x16\xa4\xf5\x3a\xb7\xc3\x82\x7a\xc2\xfb\x08\x69\xbd\xee\xad\x31\x57\x71\xc1\x25\x06\x0b\xe7\xf2\x92\x94\xc9\x63\x92\x26\xd5\x1b\x8d\x6b\x33\x87\xf3\x81\xe1\xe6\xb1\x7a\xd3\xb4\xc7\xdb\xb4\x44\xc2\xcc\xb4\x54\xce\xbd\xb4\x82\x80\x5d\xa1\x44\x41\xb7\xa8\x41\xc8\x18\x92\x16\x8f\x70\x20\xa9\xc5\xb3\x1c\xf9\x26\xe0\xb1\x7e\x01\x65\x2a\xb6\x80\xe3\xa2\x7e\x41\xcd\x36\xa4\x44\x85\x4f\x18\x82\x30\xea\x06\xf7\xa6\x9b\x51\x2c\x6f\xb9\x80\x10\x56\x90\x9f\x99\x32\xce\x47\xdb\x9b\x27\x47\x09\x3a\xf2\x88\xf0\xaa\x5c\xc5\x82\x10\x73\x57\x5b\x63\x88\xcb\xda\x5a\x23\xdc\xd6\x56\x54\xe1\x3a\x69\x30\x6c\x96\xfb\x98\xe8\xf3\x43\x5c\xd8\x56\x53\xe1\xc6\xa6\xb6\x80\x2b\x9b\x32\x19\x77\x0a\x2b\xb0\x5c\xda\xa9\xd0\xe7\x56\x61\x05\x8e\x6b\x9b\x1a\x73\xb9\xb7\x39\x65\xd5\x71\xc1\xe6\xf0\x21\xbc\x5b\x00\xe8\x57\xf3\xb8\xb0\x03\xa0\xc7\x83\x5c\xb9\x84\x03\xb9\x3a\x72\xfe\xe3\xaa\x49\xf4\x5d\x5a\xae\x22\xf9\x38\x70\x32\xce\xe3\x2a\x8d\xf0\x1d\x5b\x97\xe7\x3a\xb6\x44\xc0\x73\xb2\x62\xca\x71\xfd\x62\x8e\xdf\x64\xc5\x35\xb7\xb1\xe5\xaa\x2a\x28\x47\xc6\x56\x5e\x0a\x9e\xfa\x10\x3f\xdc\x28\x4d\x9e\x8f\x5b\x92\x80\xea\xf6\x7f\x9e\xca\x2a\x79\x7a\xab\x03\x8e\xd5\x9f\xa1\x0e\x44\xa6\x29\xeb\x4f\xf5\x4b\xb3\x5d\x94\xee\x7e\x32\x3c\x74\xd0\x74\xcd\xca\xcf\x57\x1a\x7c\xb0\x0d\xbb\xf9\x02\x51\x89\x9b\xf7\x7b\x0b\x78\x3d\x8d\x9a\x27\x3a\x0b\x18\xbe\x03\x45\xcc\xf5\x5c\xa5\x21\xd6\xe7\x2a\x8e\xf0\x3f\x57\x57\xb6\x08\x98\x4a\xca\x2b\x81\x03\x3c\xb8\x1c\xb8\x9a\x2a\x6b\x82\x6d\x20\x58\x18\x6c\xb1\x6c\x75\xc8\xea\xb0\x4b\xa4\x5f\xa7\xbf\x4e\x64\x75\xb8\xc5\xc2\x56\x52\x5e\x31\x3d\x9a\xb7\xcb\xa6\x1f\x88\xa9\x61\xde\x2e\xf8\xe8\x46\x5e\x46\xba\xe3\x9e\xd1\x92\x85\xe3\x36\xcb\x44\xa0\xc1\xd0\x47\x9e\xf2\x9a\x7f\xfb\xf3\xfc\xed\xcf\xf3\xb7\x3f\xcf\xdf\xfe\x3c\xff\x11\xfd\x79\xba\x4f\xd9\x05\xda\x8a\x30\xc2\x81\x24\x53\xc3\x98\xb5\xfd\x42\xef\x34\x1c\x8f\x3d\x30\x7e\xef\x85\x97\xc6\xfb\x71\x96\xe2\xf6\xbb\xa8\x88\xfb\xe1\xa7\x0d\x70\x38\x96\x15\x96\x79\x9a\x54\x15\x6d\x5c\xc7\x17\x66\x7d\x48\x29\xca\xd4\xcd\x54\xc9\x19\x55\xd5\xaf\x49\xfb\x47\x68\x7e\xbc\xea\xc4\xe9\x17\x58\xed\x87\x47\x7c\x47\xc3\x5e\x88\x46\xce\xd5\x83\x39\x1d\xa4\xcf\x10\xa8\xb6\x92\x0c\x0e\x47\xca\x01\x50\x7c\x3d\x80\xc6\xc6\x6a\x90\x10\x7f\xce\xc4\xbf\x13\x99\x7e\x14\x0d\xdf\x87\xc6\x72\x9e\xb4\x5b\x5f\x3b\x39\x7d\x58\xf7\xb2\x81\x5a\x8c\x07\x9b\x84\x06\x72\x40\x6d\x15\x19\x14\x6e\x78\x52\x40\x7c\x2d\x7a\x33\x3b\xe6\x29\xee\x2a\xf0\x1a\xd5\x26\x87\xa7\x58\x5a\x87\x9f\x1b\x52\xed\xc2\xc6\x27\xf9\x4f\xb1\xe2\xeb\x01\x7b\xf9\x59\x53\x19\xb4\x76\x4a\x07\x91\x14\x97\x73\x3d\x6b\xa7\x54\x1c\x75\xa3\x1f\x84\x5b\xfc\x24\x86\x3f\x7c\x60\xac\x05\x8f\x69\x7b\x4d\x21\x5a\xca\x50\xec\x1f\x62\x73\x82\xa8\x43\xcd\xc1\xdc\x03\x92\xdc\x67\x31\xfa\x92\x14\x45\x56\x5c\x0e\xd1\xb9\x3e\xb3\xdb\x7e\x5d\xb7\xde\x22\xf1\x29\xbe\xf6\x01\x80\xa8\xdb\x9d\x03\x8b\xdd\x81\x46\x83\x70\xb7\xc1\xba\xeb\xa4\x30\xec\x46\xcb\x54\x4f\x93\x63\xa5\x57\x59\x96\x56\x49\x2e\x08\xb5\xfc\x14\x3e\x85\x4f\x75\xe4\x75\x26\x1e\x3b\x59\x61\xe5\xdb\xb1\x8a\xce\x7a\x0a\x31\x69\xb0\xa0\xe9\x6e\xa4\x66\x1d\x36\xda\xb6\xf0\xff\x31\x09\x04\x2c\x27\x3f\x37\x93\xb2\xc9\xcf\x5a\x90\x9f\xb5\x10\x8f\x65\x77\xd0\x4b\x1d\x0e\x23\x2c\x91\x98\x2c\x04\x4a\xbb\x70\x18\x86\x57\xec\x39\x8f\xe2\xb1\x7b\x8a\xed\xd8\x62\xbe\xb3\x99\x52\xea\x80\xe6\x04\xcb\x43\x96\x55\x7b\x8c\x1d\x90\xbd\x93\xdb\x81\x45\x53\x63\xe9\xf9\x7c\xc2\x4c\x59\x5e\xd8\x98\x43\x94\x4c\x71\x54\x7c\xd5\x9f\x0b\xf4\x26\x50\x24\xb8\x8a\x04\x46\x5d\xb5\x45\x50\xda\x29\x79\xd3\xc4\x25\x40\x20\xd3\x84\x07\xa0\xfd\xdb\x53\xf0\x14\x3c\x99\xd2\xd6\x78\x68\xc7\xd3\xe1\xb1\xcd\x31\xe4\xc7\x41\x14\x04\x92\xa9\xd0\x41\x28\x23\xc8\xf0\xca\x31\x1e\x8d\xaa\xcc\x70\x11\x9e\x77\xd7\x0e\x9c\xc1\xae\xb7\x5b\xd2\x12\x04\xcc\x40\xbd\x3b\x92\x15\x6f\x42\xe5\x6e\x8b\xe9\x98\x41\x42\x96\x49\xe8\x4d\x6d\x21\x6c\x76\xe1\x73\xb7\x49\x54\x4c\xcb\xfc\x78\xc5\xe1\x8f\x41\xe1\xdf\xbb\xec\x70\x40\xc7\x4a\xc4\x83\xf5\x52\x45\x6f\xe2\xa6\x65\x55\x24\xc7\xe7\x1b\x79\x91\x6e\x8b\xc0\xe6\xd1\xee\x2b\x2a\xc4\x20\x39\xd6\xe2\x5a\x95\xa8\x78\x12\xb7\x79\x89\x8a\x04\x1f\x70\x84\x88\xd4\x85\x0d\x2a\xff\x16\xa2\xc0\xdd\x79\x42\x48\x31\x7a\x9a\x8a\x70\x96\xa3\x22\xaa\x32\x21\xca\x20\xe4\x84\xad\xbe\xa2\xb7\xd7\xac\x88\x45\x8d\xde\x50\x9a\x66\xaf\xe2\x66\x51\x95\x1d\xa6\xd1\xe6\x80\xaa\x48\x48\x97\x2a\x7a\x9e\x3a\x54\x04\xb2\x55\xd0\xa8\x40\xb1\x0c\xdf\xaa\x48\x1e\x4f\x95\x78\x6a\xfe\xd7\x29\x4a\x93\xa7\x84\xc9\x56\xf6\xb4\x8b\x3c\x5f\x08\x29\x2f\x30\xa1\xab\x37\x85\x49\x7c\x3c\x25\x69\x95\x1c\x87\xb9\xc1\x19\xe8\x93\x5d\x7a\x24\x0c\x23\xd9\xab\x9b\x65\xc6\x89\x06\xcb\xb4\x6c\x4b\x2e\x1a\x0e\x51\xb5\xc3\x1b\xc3\x63\x81\x29\x5b\xc9\x03\x00\x0f\x84\xb1\x82\xc7\x2f\xec\x96\x5c\xa0\x28\x26\xb1\x0d\xb3\x18\x1d\xa0\x23\x81\x88\x2f\x1b\x6d\x83\xec\x07\xc2\x56\x1d\x22\x8d\x8a\x01\x15\x20\xac\x6c\x98\x56\x5f\x2c\x30\x9e\xa2\x18\xc5\xf5\x6a\x52\x05\xc8\x6f\x52\x91\x13\xed\x1e\x77\xea\xad\x3b\xfc\x36\xf0\x24\x49\x15\x62\x4f\x10\x49\x68\x0c\x81\xe9\x20\x1f\x72\x8c\x74\x14\x27\x55\x06\x59\xd3\xb3\xf4\x31\x2a\xda\x44\xea\xa3\x42\xdf\xe3\x9f\x56\x6d\x31\x8b\x45\x58\x4d\x88\xe2\x04\x1d\x2b\x9a\x97\xee\x46\xda\x56\xf3\xcc\x8f\xc2\x52\x0b\x4a\xb1\x6e\x75\xd5\xd3\xf4\x3a\x39\x84\x46\x1e\xbd\xb2\x99\x78\xc6\x82\xfc\x8e\x90\xa3\xf9\xa4\x19\x55\x52\xa5\x68\xf4\xd1\x19\xa3\x5b\xba\xf9\xb9\x9b\x76\xa4\x9b\x4f\x46\xbd\x73\x5a\x56\xa2\x3c\x22\xdb\x82\x24\x99\x94\x08\x33\x47\x6d\xa4\x03\xb9\x4c\xd4\x9f\xd2\x0d\x48\x1b\x50\x86\x95\x1f\x5c\xab\x18\xca\xe4\x7d\x6d\x7a\x43\xbe\xf0\x66\xb0\x9a\xc3\xf0\xc1\x26\xeb\x24\xd2\xea\x7b\x42\xb3\x19\x4e\x19\x98\xb5\xa7\x73\xdf\xc3\xaf\xc9\x39\xd9\xcf\x72\x0b\xf9\x28\xd4\x4f\x0f\xb7\x82\xb4\xab\x24\xb0\x20\x8b\xc9\x5d\x5e\xa0\x8e\x54\x1e\x9e\xee\x1b\x55\xde\xbb\x08\xae\x82\xbb\x97\xc6\x70\x3c\xd5\x1f\x51\xf5\x8a\xd0\xb1\xc1\x12\x82\x4b\x8e\x89\x9b\x3e\xad\x19\xcf\x47\xb7\x3d\x75\xba\xee\x84\xf5\x72\xc1\x5d\x6f\x2d\xf1\xe1\x79\xfe\x92\xab\x4f\xc3\xad\x7f\x26\xcd\xc3\x47\x13\x8f\x4e\x04\xde\x6e\xa3\x70\x37\x8f\xff\xd1\xe3\xa4\x20\xca\xf7\xb6\xc8\x5e\xdb\x4e\x80\x4d\xfb\x13\x31\xb5\x43\x8d\xbd\xfe\xbe\x74\xad\x03\xaa\x12\x42\x1c\xce\xb7\x0d\xc8\x1b\x34\x14\xb1\x6c\xc6\x6e\x00\x64\xe3\x46\x2c\xe0\xac\x3e\x11\x98\x04\xfe\x79\x56\xa2\x58\xcf\xa3\x6a\xaf\xa7\x49\x59\xd5\x66\x23\x5a\x8e\xd7\x84\x5e\x22\x08\x05\x0e\xe5\x1a\x94\xf7\xa3\x7d\x36\x2d\x4e\x79\x59\x15\x28\x3a\xe8\xc9\xb1\xac\xa2\xe3\x0e\x91\x66\x18\x26\x98\x71\x76\x59\x4a\x8f\x42\x77\x12\x50\xcd\x0c\x3e\x17\x49\x7c\x8b\xff\xd1\x2b\x74\xc8\xd3\xa8\x42\xb8\xf5\xe9\x70\x2c\xb7\xd6\x53\x01\x31\x8a\x3b\xc5\x45\xf6\x5a\x6e\x3d\xf3\x23\xde\x0f\x3b\x45\x51\x81\xa2\x72\xfb\x81\x5e\x29\xd3\xcb\x94\x0f\xda\x07\x72\xc5\xd2\x7c\x18\xa3\xcc\x9d\x51\x9b\x08\xa7\x52\xa8\xd7\x52\x4a\xa9\xb6\xa6\x22\xc5\xea\x06\x17\x18\x32\x1e\xe9\x96\x7c\xa0\xdc\x50\xa2\xf4\x69\x5b\x56\x51\x51\x8d\x0f\x8f\xd0\x63\xce\xf0\x3a\x2d\x07\x86\x57\xd7\x54\x1e\x1e\x69\xc0\x0c\x8f\x7c\x60\x87\x87\x8e\xb1\xea\xe0\xb4\xeb\xf9\xc3\x63\xda\x8e\x0e\x10\xd7\x9d\x38\x44\xed\x1a\xc4\xac\x8e\xc5\x2a\x95\xae\xec\x51\x62\x6c\x7c\x94\x8b\xe7\x0c\xaf\xdb\x74\x60\x74\x4d\x55\xe5\xc1\xd1\x16\xcc\x04\xd2\x2f\xc2\xd8\xc9\x35\x0a\xc4\xaf\x81\x19\xa0\x20\xc8\x70\x5c\x35\x18\xe7\x59\x9a\xec\xde\xea\xea\xe2\x98\xc4\x31\xf1\xa6\x31\xe2\xa8\x8a\x88\x74\xe4\x40\x14\x59\xaa\xde\x5f\x89\x8a\x97\x64\x87\x3a\x04\x32\xf0\x64\xa9\x57\xeb\x79\xc0\x56\xd9\x57\x74\x1c\xc3\xa1\xa7\x95\xa8\x88\xac\xed\x11\x7f\x6e\x9c\x74\x7e\xb2\xaf\xe6\x0b\xb1\x01\x58\xa3\x62\x4d\xd4\x76\xa2\xa0\xeb\x83\x20\xac\x45\xb6\x07\x1d\x44\x5d\x2d\x02\xd9\x02\x74\x8c\x6b\xce\x53\x15\x16\x8c\x5b\xd3\x7c\xa9\x21\x02\x32\x2a\x3e\xb8\x46\x13\xe5\x08\xd3\x56\x40\x19\x2a\x3d\xc7\x28\xa3\xb6\xfe\x3e\xc5\xf1\x0a\x4b\x90\x85\xa2\xb2\x0a\xd9\xfa\x4a\x4b\xe6\x53\x1c\x73\xca\x99\x29\x90\xab\x0c\xfa\x5a\x9c\x32\x18\x8a\xd6\x73\x3d\x5b\x71\xc2\x85\x1f\xbf\x8b\x53\x2e\x3a\x7a\xdb\x2d\x4d\xfa\x2b\x70\xdc\x24\x04\x69\x43\xa9\x5d\xc9\x62\xa9\xdd\xa1\xc3\x8d\xea\x26\xc7\xaa\xa5\x0b\xf6\x3b\x21\x98\xf1\xad\x8f\x6f\x36\x75\x17\xe4\x5b\x0f\x26\x2a\x21\x2e\x29\x79\x54\x96\xaf\x59\x11\x03\x81\x14\xea\x93\xa3\xb8\x6a\xed\x0a\x9d\x15\xea\x0e\xcd\xd9\x60\x43\xc6\x77\xf7\x13\xae\xcc\x3a\xb5\xb6\x20\x08\x26\x90\xcf\x02\xff\x86\x08\xf8\xfd\xc1\x33\x9f\xdb\x31\x32\x1f\xeb\xa1\xc0\x27\xbe\x63\x96\x4f\xed\xbc\xdd\x86\x25\x1b\x58\x47\xdd\xe3\x96\x45\xad\xb0\x31\x57\x95\xf0\x04\x29\x45\x82\x55\xd7\x3a\x1f\xb7\x69\x87\x6a\x86\x16\x27\xcc\x1e\xf0\x83\x50\xd8\x74\x45\xe7\x35\xfa\xfe\x65\x6c\x53\x58\xb8\xa8\x26\x2e\xa6\x79\x8b\x88\x1f\xdf\x90\x7e\x35\xa2\x2f\x2c\x96\x20\x43\x60\x46\xb5\x84\xb9\x12\x44\xd0\x9a\x93\xfb\x6e\x3e\x4a\x00\x4d\xf8\xd8\x7d\xd1\x64\x77\xa1\xa8\xcd\xb9\xb6\x64\xea\x3b\xde\xd2\xdc\xe3\xae\xda\xac\x30\xe5\x6c\x21\x20\xec\x6c\xda\x28\x41\x9b\xc6\x22\x53\x69\x35\x04\x64\x9e\x7a\x0d\xbe\x4a\xeb\xd2\x47\x01\xe6\xb8\xba\x3d\x00\x63\xaa\xda\x2d\x05\x75\xe9\x59\x51\xa7\x2e\xb0\x4e\x1a\xd8\x45\xcb\xac\x03\x6b\xd2\x62\xab\xdb\x2e\x58\x72\xb2\x78\x22\x4c\x82\xaa\x29\x0b\x8f\xec\xa5\x77\x6d\x3d\x92\xf6\x5f\x2f\xb3\x53\xb1\x43\x2c\x36\xaa\xba\x61\x03\xeb\x6b\x72\x8c\x85\x00\x26\xeb\x89\x93\xd0\x9b\x0f\x5d\x8a\xf0\xa8\x46\x3a\x09\x41\x75\x68\x7d\x84\x26\xea\xba\x6a\x78\xcd\x05\xda\x45\x8f\xdb\x0a\x75\x6f\x7c\x2f\x6c\x55\x72\x7a\x38\x3a\x44\xc7\xe8\x19\x61\xc5\xb5\x67\xba\x50\x04\x31\xbd\x1d\xd6\x97\x7b\xad\x66\x1c\x65\xc6\x87\x30\x1b\xe8\x1a\x90\x84\xc3\x54\x38\x6a\x8d\x0f\x4b\x19\xc8\x9c\x96\x3c\xda\x93\x8f\x7a\x03\xd8\xcf\x84\xb5\x00\x00\x3b\x16\xfe\x6c\xe0\xfc\xa0\xb5\x52\x6b\x25\x3d\x10\x5a\x1c\xff\xe9\xd6\xc0\x24\x64\xdf\x9b\x93\xd5\x90\xf9\x97\xf0\xa7\x0a\x6a\xa3\xfe\x00\x8f\x45\x74\x8c\x69\x04\x72\x78\x23\xa4\x09\x93\x33\x1b\xf4\x47\x72\x7c\x9e\xe0\x62\xf0\x5d\x92\xe8\xb9\xe3\x3d\x6d\xb7\xae\xbd\xf4\x8e\x93\x89\xab\x23\xc8\x5b\x2a\x84\x7a\x79\x4a\xb3\xa8\xda\x02\xc8\xb1\xcb\x4b\x3a\xd2\x2a\xbe\x1b\x1d\x6c\xdf\x61\xa0\x3e\xd5\xff\xfb\x01\xc5\x49\xa4\xfd\xd4\xba\x63\xbb\xb6\x99\x9f\xaf\x2e\x43\xe8\x31\x4e\xe6\x75\xc2\xd6\x8e\xaf\xc0\x08\xc9\x28\x39\x2c\x74\xf8\xfe\x5d\xa4\x32\x8f\x25\xba\x54\x48\x73\xca\xfa\x93\x5b\x1b\x22\xa1\x7a\xda\xe8\xf4\xd4\x92\x62\x30\xc4\x2d\x63\x4a\x94\x3c\x01\x14\xfa\xec\x43\xa6\x34\x93\xc5\x53\x87\xb4\x21\xef\x88\x69\x76\x65\x49\x58\xfe\x21\x82\x4d\x43\x8d\x20\xa0\xbc\x1a\x9b\x7e\x85\xc0\x68\x46\x68\x25\x94\x6c\x29\x14\x78\x33\x3f\x70\x82\xaf\xed\x56\x4d\x8a\x5d\x39\x94\x6e\x1e\x65\xc6\xf3\x05\x38\x5d\x1c\x50\x4b\xb7\xd9\xb4\xbd\xd4\x03\x81\x75\x40\xb0\xed\xc1\x4e\x29\x4d\x49\xd7\xbd\x33\xe2\x70\xbc\x16\x81\x1b\xcb\x37\x1d\x12\x8f\x6c\x2d\x61\x6b\x36\x6e\x83\x70\x0f\x67\x6d\x3f\x8f\xa7\xdd\x57\x54\x51\xbb\xa0\xc8\x42\x35\xb6\xc9\xc7\x12\xdb\x78\xb3\x31\xc1\x8b\x92\x52\xd5\x8a\x26\x03\x37\x7d\x8b\x97\x41\x92\x6c\x9d\xbd\xea\x53\x77\xc8\x1e\x80\x2a\x7a\x16\xd0\xb5\x8a\x71\x81\xd8\x5d\xa6\x17\xd5\x52\x3e\x49\xd5\x9c\x19\xaa\x46\xa7\xa7\x52\x9b\x9b\xc1\x6a\xea\x84\xaa\x26\xcc\x4a\xb5\x68\x4a\x2a\xc1\x7c\x54\xbd\xc9\xa8\x8e\xfd\xc0\xa2\x43\x53\x20\x89\xde\x34\x65\x42\xa4\x01\xa0\x24\xd3\x23\xa9\x3f\x3c\x59\x92\x46\x0a\x34\xef\xb6\x5c\x32\x03\xbd\x20\x4f\xbd\xf9\xe8\xd4\xe8\xcd\x4e\x47\x30\xf6\x2f\x30\x63\xf4\x94\x1c\x41\x58\xea\xa0\x30\xdd\xc5\xa9\x92\x1b\x95\x6b\xe6\x67\xc6\x91\xea\x39\xca\xb7\x10\x22\x83\x49\xa7\xdf\xe8\x31\xb8\x40\xd8\xd3\x5d\x1c\x93\x10\x2a\x71\xda\x8b\x90\x43\x65\x7d\x27\xba\x84\x28\xcc\xe9\x68\xac\x05\x95\xdc\x56\xe4\x26\x35\x3a\x26\x58\x19\x3b\x3e\x13\x05\x02\xee\xd0\x46\x32\xea\x8d\xe4\xc3\x1a\x82\x3b\x29\x2c\xc1\xc4\x6c\x58\xe3\xfd\xaa\xc6\x09\x98\x9a\x52\x6b\xa0\xe7\x8e\x79\x7c\x74\x56\xb6\xf0\x17\x8a\xff\x50\x9e\x0d\x61\x8b\x49\x94\x1b\x80\xa0\x4a\x02\x11\x88\x8e\x0e\x43\x00\xc6\xd9\x41\x2f\xd0\xee\x6d\x97\x72\xc7\x90\x86\xb5\x05\xb5\x70\xbf\xd7\x97\x8e\x8f\xf4\xf7\xae\x94\xa1\x2f\x3e\xf5\x97\xa4\xa8\x4e\x51\x7a\x77\xaa\x13\xa3\x75\x60\x3d\x66\xf1\xdb\xe0\xb3\x50\x51\xab\x38\xee\xb9\x9a\x49\xea\xdd\x5d\x77\x8e\x34\xe6\x77\x36\x9a\x13\x17\xda\x09\x1f\xd3\x06\x5d\x70\x89\xe8\xe1\x00\xd4\x89\xdc\xf9\x2c\xee\xb5\xd2\xdb\x5c\x56\x71\x6d\x24\x9a\x43\xef\x0d\xad\x11\xa0\xc3\x68\xce\x79\xb5\x83\x83\x05\x5a\x3a\x3b\xd6\x6b\xfa\x76\xd5\xd9\x98\xac\xf7\x32\x96\xa7\xfc\x00\x39\x6d\x87\xd6\xe8\xb8\xbe\x8d\x53\x84\x9f\x03\xd0\xc7\xb9\x17\x1c\x74\x39\xf6\xc1\x70\x0e\x28\x40\x10\x1e\x94\xe1\x61\xc1\xce\x0e\xec\x94\xf2\x73\x38\xec\x9b\xce\x1f\x92\xbb\x90\x68\xb8\xa0\xfe\x47\xe2\xda\x20\xbf\xa7\x16\xfa\x66\x77\x58\x6d\x4b\x1e\xf3\x70\x1c\xe3\xe1\x3d\x8d\xba\x77\xf7\xa2\x9d\x88\xe8\xd3\xec\xab\xed\x3b\x13\xdb\xf0\xd1\x41\xf0\x66\x01\xce\x44\x98\xf2\xc4\x46\x80\x37\xe2\xdb\xde\xfb\x72\x11\x05\x84\x41\x28\x05\x84\xe8\x1e\x5c\xea\x83\x1d\xdf\x0b\x9e\x31\xe6\x55\x8c\x11\x76\xc8\xae\xa5\xc9\xef\xbb\x34\x2a\xcb\xeb\x9f\xf5\x34\x39\x7e\x7d\x68\xe2\xc7\xb3\xf6\x7f\x2f\x3f\x7f\x5f\x98\xe2\x51\x31\xf8\x8a\x7c\x55\x39\xec\xdb\xa2\xe1\xf7\x2b\x4b\x71\xd5\x92\x63\x7e\xaa\x68\x44\x34\xfc\xb9\x91\xf0\x9f\xae\x17\xa7\xba\xec\xc3\x06\x4b\xc7\xbb\x40\x86\x43\xf5\xa7\xeb\xf1\xb0\x18\xce\xa4\xc8\x36\x57\xad\x9d\xac\x89\x68\x10\x86\x7e\x7e\xbe\xba\x2c\xe5\x12\xee\xf5\xca\x2a\x59\x45\xc9\xde\xf5\x5c\x64\xaf\x5b\xeb\xfb\xfa\x9c\xd1\x51\x71\xe6\x7b\xec\xdd\x2c\x68\xab\x61\xe9\x15\x15\x28\x5a\x02\x04\x7c\xc7\x16\x34\x2f\xf3\x68\x9a\x0b\xde\xa4\xca\xcc\x10\xdf\xc1\xcb\xaf\xa9\xaf\x3c\x08\xe2\x33\x37\xa1\xea\xb4\x01\x4c\x73\x3b\xa4\xb5\x95\x91\xc7\xa8\x28\x57\x9c\x86\xb8\x9a\x07\x24\x53\x57\x01\x69\xe9\x8a\x99\xd3\x4a\x75\x38\xb3\x9d\x34\x17\xac\x8f\x51\xff\x4e\xc1\x27\x66\x3c\x62\x77\xd0\xfe\x57\x82\x09\xe3\x26\xca\xfd\x60\x00\x76\x3c\x49\xb9\xdf\x00\x64\x9d\xbc\xcf\xab\x40\x81\x17\xd9\x22\x67\x57\xd1\xb7\x76\x8c\xe3\xde\xb1\xbc\x6c\xe8\xb9\xcd\xf6\xbf\x08\x81\x0b\x7d\x6c\xd9\x75\xdb\x71\xbd\xed\xfe\x16\x02\xe5\x7c\x74\xbb\x6b\x4a\xe0\xb8\x7b\x03\xaf\xd6\xc9\xb6\xc8\x9f\x4f\x17\x4e\xc1\x9f\x8e\x11\xea\xd7\xa2\x96\x69\x7e\x5c\x47\x8f\x20\x60\xb9\xb8\x56\xee\x32\x1f\x7d\x8d\xe8\x11\x35\x7f\x3d\x2c\xd2\x00\x08\x2c\x3c\xfb\xcb\xe0\xcc\xda\x66\xfb\x23\x99\xde\x98\xa2\xfe\x6e\x2a\x01\x5d\x9b\x73\x30\xe5\x9a\xaa\xe3\x39\x67\xdf\x87\xa5\x3e\x07\x47\xa6\xa1\x3a\x86\x53\xb6\x77\x65\x26\x5e\x00\x45\x05\xf3\x71\xc6\xed\x6f\x91\x3d\x1c\x65\x55\x28\x02\x43\x9b\x2c\xbb\x53\xf6\xe0\xf6\x0b\x29\x44\xe1\xfe\x2a\xda\x98\xba\x20\xe5\x75\x08\x64\xd5\xcd\x4d\xc2\xfe\xb2\x1a\x3d\xe0\x03\x5b\x9b\x90\x67\xc5\xe5\x3d\xb0\x1c\x07\x5e\x20\x02\x56\x94\xe7\x28\x2a\xa2\xe3\x0e\xf1\x11\xd9\xba\xdf\x99\x43\x6d\x72\x2c\x51\xa5\x89\x8f\xb6\x53\x42\xbb\x0e\x9b\x28\xb2\x53\x05\x11\xc1\xcc\x35\x85\x7e\xe3\xc2\xb0\x82\xf4\x6f\x81\x16\x28\x8a\xf5\xec\x98\xbe\xad\xb5\xa7\xac\x89\x26\x01\xb8\x0e\x8a\x35\xeb\xac\x83\x5f\x03\x8d\x41\x6e\xc1\x36\xc8\x20\xb5\x04\xca\x22\x64\xba\xb3\x37\x17\xc2\x4c\x24\x04\xf3\x33\xab\xf9\xb4\xee\xc5\xc2\x6e\x1a\x0e\x12\x18\x0b\x10\x99\x31\x15\x82\xf6\xb3\x10\x98\x37\x0d\xdd\xc6\xd3\xba\x16\x6d\x0b\xd3\xfa\x17\x42\x98\x8d\xc4\x0c\xf2\xf7\x5a\xcf\xe8\x7c\x1e\xe9\xf9\xa6\xaa\xdd\x4e\xdf\x73\x56\x01\xb7\x0e\x7a\x93\xe6\x67\xe2\x0e\xb3\x48\xa3\x5c\x8a\x93\x68\x1a\x47\x75\x54\xa6\xd3\xf1\xba\x0a\x80\xbb\xd4\x1d\xae\x37\x08\x50\x40\x97\x81\x4a\x0c\xa8\x01\xd5\x99\x81\x35\x54\x6b\x10\x58\x77\x88\xb2\x1a\x12\x20\x82\x61\x09\x8b\xdb\xe6\x0a\xfa\x7b\x0b\x4c\xa5\xb2\x0a\xe8\xce\x28\xc7\x2a\x0e\x83\xec\x8f\x79\xb0\x96\x10\xd8\xd8\x66\x3b\x5e\x75\x1c\xac\x7c\xd0\x83\x3b\xa4\xfc\xfc\x32\x04\x6b\x78\xb8\xc3\xdb\xda\x58\xc5\x31\x90\xf2\x81\x0e\xec\x45\xb2\xf3\x94\x1c\x8e\x60\x88\xbd\x46\x9f\xd8\xd0\xdb\x24\xf4\x28\xd6\xa4\xf5\x28\x4d\xb3\x57\x14\xaf\x7a\x08\xda\xe6\x69\xb4\x43\xfb\x2c\x85\x60\x56\x2b\x9d\x30\x56\x03\xda\x90\x66\x2d\x88\x53\xaf\xa5\x46\xe8\x35\x57\xa7\x9f\x0f\x45\x42\x91\x77\x8b\xbf\xb1\x9c\x00\x02\x39\x31\x17\xc6\xfc\xc1\x4f\x0f\x26\xb2\x7c\xe0\x3d\xb9\x31\x0f\xc2\xfc\x41\x2f\x8a\x89\xb2\x64\xfc\xd3\x65\xc4\x32\xf5\x6e\x39\xac\xe9\x11\x60\xc6\x2b\x3f\x25\x28\x8d\x4b\x54\xdd\xe5\x2a\x9a\x24\x3f\x86\x61\x25\x71\xac\xae\x84\x30\xa3\x41\x6b\x46\x90\x92\xa9\x75\xf2\x5a\x12\x44\xaa\xd1\x38\x39\xc3\x98\x8c\xa9\x5e\xa3\x95\xc5\x78\xa9\xc6\xeb\x51\x46\x6e\x4c\xf4\x0d\x68\x40\xc3\xf5\x04\x57\x8f\xca\x48\x0d\x8b\x25\xa9\xbe\x32\x54\x4b\x12\xad\x88\xf9\xd6\xae\x85\x81\x48\xd2\x34\x32\xf5\x3e\x2a\x49\x68\xfc\x3b\xf0\xf9\xb9\x61\x3e\x34\xf6\x6a\xce\x69\x8d\x33\x3f\x43\xbc\x76\xcf\x34\xbb\xb1\xb6\x0b\x14\x13\x57\x52\x2e\xf0\xfb\xdf\x77\x88\x7f\xdf\x21\xfe\x7d\x87\xf8\xf7\x1d\xe2\xdf\x77\x88\xcb\xef\x10\x47\x5d\xf8\x95\x1c\x8d\x57\x3d\xdd\xd2\x40\x41\x2b\x1d\x6b\x97\x43\x6b\x76\x53\x0a\x6a\xc9\x49\x74\x36\x08\x6e\x30\xb3\xce\x9e\xea\x6d\x25\x0a\xd3\x4c\x00\x53\x31\xef\x2a\x55\xea\x2d\x85\x1a\xd5\xac\xe6\x53\x71\xe6\xb5\x2e\x95\x76\x13\x17\xc3\xe2\x93\xdb\x12\x38\xdd\x81\x8d\x9f\x8b\x46\x2a\x72\x28\x0d\x9c\x84\x68\x8d\xa1\xc3\x8e\xb4\x0a\xd7\x87\xf0\x78\x43\xca\x54\xce\x31\x63\x35\xd9\xbe\x06\x4f\x2e\xbd\x2a\x83\x4b\x6d\xf8\x50\x22\xab\x23\xef\x6c\x60\x7d\x0c\x1d\x35\xc4\x35\xf8\x6e\xc6\xf3\xa9\x7a\xab\xef\x13\x34\xe4\xc5\x4a\xfb\xc4\x72\x68\x0d\x45\x28\xa8\x25\xfb\xc4\x6c\x10\xdc\x60\x66\xed\x13\xea\x6d\x25\xcc\x3b\x13\xc0\x54\xcc\xbb\xec\xae\xde\x52\xb8\x0e\x66\x35\x9f\x8a\x33\xbf\x72\x54\xda\x4d\x5c\x0c\x8b\xf7\x89\x25\x70\xba\x03\x1b\xdf\x27\x46\x2a\x72\x28\x0d\xec\x13\xb4\xc6\xd0\x3e\x21\xad\xc2\xf5\x21\xdc\x27\x48\x99\xca\x3e\x31\x56\x93\xed\x6b\x70\x9f\xe8\x55\x19\x5c\x6a\xc3\xfb\x84\xac\x8e\xbc\xb3\x81\xf5\x31\xb4\x4f\x88\x6b\xf0\xdd\x88\x6c\x40\xd5\x5b\x9e\xd1\xa7\xe7\x22\x1b\x50\x1b\x10\x68\xd9\xf6\x31\xd1\xbe\x32\xc9\xc4\x31\xc1\xd2\x30\xf7\xd0\x2f\x3c\x65\x77\x0e\xc7\xe2\xf3\xad\xe8\x50\xda\x3f\x4d\x46\x97\xee\xbb\xe9\x3f\xa3\x99\xed\x4f\x6b\x21\xfb\xf1\xb6\xae\x1f\x65\xb7\xfa\x81\x56\xa8\xe5\x66\xa4\x59\xa6\xa2\x95\x8d\x42\x4b\xed\x3e\x53\x8d\x3b\xc2\x37\xfe\xdd\xc8\x02\xf0\xac\x17\xb2\x94\xdc\x32\xc9\xd3\x4d\xf3\xa3\x20\xe9\x5f\x9b\xf9\xd1\xda\xe4\x67\xcd\x72\x16\x3e\xdc\x99\x67\xe0\x9e\x63\x6a\x9e\x6e\xf8\x5d\x68\x8a\x1d\x32\x81\x8a\x0d\x98\x83\xa6\xc8\x01\x33\xa2\xd4\x0c\xd8\x98\xf2\x0a\x04\x41\x0b\x5e\x50\x51\x25\xbb\x28\xed\xce\x73\xfb\xf8\xbc\xf9\xb9\xaf\x73\x7d\x32\x89\xe5\xfd\x45\x33\xbe\x44\xd2\xdf\x18\x75\x88\x18\x1d\x3e\xaf\xff\x3a\x7a\xc2\x2b\xe4\x6a\xfc\xcd\xaf\x60\xf0\xef\xf0\x2e\x17\x6e\xe2\x2a\x92\xd9\x5b\xf0\xc0\x95\x61\xad\xb1\xd7\x9c\xfd\x07\x98\x55\xf3\x72\xb2\xed\xa5\x1b\x65\x93\x44\xa7\xfa\x91\x0f\xdd\xa7\xbe\x2a\x9f\xf6\x90\x7b\xc1\x0b\x6a\xda\x54\xe1\x85\x70\xef\x8d\x2a\x3f\x36\xb5\x37\xad\xe4\x23\xf3\x06\xb5\xa7\x34\x63\xe1\x5e\x44\x65\xa5\x87\x61\x78\x93\x1c\xf7\xa8\x48\xaa\xab\x6e\x10\x1a\x67\x85\xf9\x1b\x77\x9e\x10\x0c\x53\xb5\x11\x43\x02\xd5\x26\x0d\x79\xc6\x1b\x8c\x0e\x4b\x3c\x9d\x9f\x44\x0f\xb8\x3f\x0d\x3c\x75\xfe\x24\x7d\xab\xfc\x49\xf2\xe4\x98\x7f\x61\xdc\x49\x14\xa4\x43\x28\x1a\x41\x3c\x21\xa8\x4c\x20\x91\x11\xd7\xce\x86\x79\x96\xd0\xac\xa4\x4d\x10\xe0\xef\xec\x08\x3e\x75\xc4\x2b\x1f\x09\x07\x33\x89\x62\xee\x52\x61\x5e\x21\x12\xf1\x47\xb9\xfa\x9f\x25\x25\x2a\xd4\x2b\xab\xb7\x14\xe1\x15\xd5\x3c\x95\x53\x89\xbd\xd3\x26\xec\x16\xc4\x0f\x56\x4d\x01\x6e\x73\x61\x7a\x20\xfd\xf9\x18\xcc\x14\x3d\x0d\x54\xd2\xf5\x7d\x56\x24\xdf\xb2\x63\x15\xa5\x7a\xa3\xc6\xd9\xf9\xf9\x56\xd7\x6b\xcd\xa0\xfd\xce\x6e\xfc\x04\x58\xb7\xce\x95\x66\xf2\x81\xa9\x49\xb5\x7e\x27\x6d\x8e\xa8\xe8\x54\xed\xf5\x03\xaa\xf6\x59\xcc\x26\x8f\x23\x91\x7b\x07\xa6\x53\xd2\x0e\xec\x06\xd3\x9b\x31\x61\x8f\x85\xcd\x24\x5c\x6e\xa4\xc9\xf1\x2b\xde\x07\x29\xbe\xea\xf5\x9b\x08\xcc\x6a\xd5\xf9\x54\x2a\xd2\x45\x42\xe4\x74\x9d\x5e\xff\x8a\xa3\xe5\xdc\xd6\x3c\xa6\x13\x1b\x2b\xa5\x93\xe9\x52\x71\x60\x1e\x46\x21\x8c\xcd\xff\x28\x80\x31\x4e\x38\x66\x31\x9a\xc4\xa8\xdd\x06\x63\x18\x76\xeb\x8f\x21\xc4\x67\x7b\x54\x42\xa9\xdf\x64\x0c\xa9\x7e\x8b\x31\xb4\x8a\x4e\xfa\xc8\x51\xa4\xba\x0d\xc6\x50\xea\xd6\x1f\x43\x48\x98\x8c\x4e\x15\xb9\xa1\xc6\x63\x88\x0e\xb5\x1d\x43\xba\x97\x54\x73\x14\xd3\x5e\x8b\x31\xf4\x7a\x0d\xc6\x70\x92\x6e\xa4\x52\x69\xa8\xd0\x82\x97\x32\x0a\x0d\x86\x12\x44\xa9\x08\x94\x91\x86\x52\xaa\x8d\xb4\x93\x10\x6f\xfc\xc6\xb3\xde\xdb\x9b\x77\xf7\xa6\x66\xe7\x67\xcd\xcd\xcf\x4c\xa2\xc5\xc7\x34\xda\x7d\xbd\xd2\xfe\x61\x99\x1f\xd5\x34\x0b\x5e\xdb\xfb\x6e\x80\x66\xab\xef\x22\x7c\x04\xae\x92\x3c\x7f\xd3\x1f\xb3\xf3\x78\x08\x3b\xd7\x34\xaf\xfe\xda\x39\xd9\xe5\x84\x0f\xc3\xf0\x4a\x79\x70\xf3\x92\x96\xf7\xda\x8e\xe7\x4f\x99\x92\xb4\xbc\x6e\x42\x07\x49\x8f\x76\x7f\xe9\x24\xf3\x37\x0c\xa7\x8e\x79\x9d\x29\x27\x04\x8a\x16\x44\x8d\x8f\x26\x24\xd0\x89\xa6\x07\x2a\x8f\xe6\xcd\x9d\x16\xcd\x4d\xd8\x27\x85\xa0\x30\xbc\x89\xc9\xf9\xba\x0d\x7b\xf3\x09\xbf\xe9\x9d\xde\xd5\x15\x89\x16\x0b\x12\x08\x84\xcf\xf6\x74\x8c\x51\x41\x2e\x99\x26\x72\xf4\xc8\x62\xee\x24\x89\x5e\x61\x21\x4c\x96\x09\x32\x14\x14\x56\x94\xaa\x28\xe9\x75\x31\x79\x29\x4e\x14\x44\x9d\x0e\xf9\xe4\x1f\xbe\x4a\x02\x2f\x2a\xd0\x98\x74\xdf\xd3\x85\x2d\xd3\x78\x5c\xda\xe2\xca\x53\xc5\xed\xcc\xfc\xff\x0b\x13\x88\xc9\x81\x28\x8c\x72\x4e\x02\xae\x5e\xdb\x4b\x37\xe2\xf1\xba\x8b\xf2\x5f\xb1\x0a\xdf\x63\xd9\xbd\xff\x3a\x13\x04\x78\x67\xa2\xc8\xdf\xf6\x22\xd1\x2b\x6f\x2a\xd7\xca\xf9\xf1\x66\x69\x43\xbd\x5e\xde\x49\x93\xea\xf5\xb3\xae\xd6\xd5\x82\x9f\xae\xa8\xbd\xee\x93\x0a\xe9\x10\xbf\xbd\x9e\xae\x5e\x16\x00\xd5\x2c\xb2\xe4\x3a\x61\x76\x4e\x57\xae\xf9\x78\xc6\x55\x52\x7d\x22\x91\xa0\x55\x27\x87\x5d\xc0\x6c\x04\xeb\xda\x88\xeb\x38\x92\x63\x59\x09\x44\x79\x76\xd4\x30\xe9\xa5\xdd\x1f\xc1\xa8\xc9\xc4\x0f\xe9\x5d\x8a\xec\x95\xdc\xad\x6f\x09\x60\x06\xc3\xa6\x1c\x1d\xe3\x2d\x69\xc3\x94\x92\x48\xfc\x25\x4a\x9f\x68\x18\xfd\xfe\xd8\x20\x76\xa6\x39\x79\x38\x43\x59\x40\x3e\xd5\xd7\xad\x8a\x43\x1d\x87\xd5\x66\x95\x78\x07\x44\x3f\xc5\xc9\x0b\xcd\x9a\xf2\x98\xbd\xa0\xab\x35\x11\xef\xc2\x86\x74\x4d\x0e\xe4\x1a\x68\x1f\x30\x96\x55\x91\x1d\x9f\xe9\x2e\x59\xbd\xa5\x78\x85\x17\x87\x28\x25\x99\x02\x5e\xc9\x25\xba\x6b\x9a\xb7\x9c\xc6\xdf\xcb\x8e\x41\x94\xe2\xa7\x28\x49\x4f\x05\xba\xba\x12\x64\x41\xe0\x0c\xed\xb6\x10\x0b\xc1\x9e\x6d\xb9\xf9\x59\x9c\x8a\xa3\x79\x3e\x29\xc9\x42\xe7\x99\x1f\x49\x12\x3a\x93\xcd\x35\xa1\xc3\x42\xee\x65\x9f\x51\xe2\xa9\xc1\x5c\x32\x13\x20\xc8\x72\xc9\x4c\x62\xc6\xcd\xec\x71\xdc\x5d\x2f\x1f\x49\x03\x63\xc9\x58\xee\xae\xfb\xa9\x0e\xe5\x57\x43\x23\x01\x1b\x69\x52\x15\x26\xcb\x20\xfc\xdd\x72\x92\x39\x97\x5c\x34\x0b\xc6\x0a\x44\xe3\x21\x2d\x22\xdd\xa4\xcc\x9a\x21\x2c\x13\xea\x1f\xe3\xb7\x14\x82\xbf\x47\x56\x0f\xfe\xa3\xb3\x7e\x6e\xb9\x7c\xe0\xf3\x17\xd4\x5d\x6d\x78\x5d\x81\xb2\x1c\xa4\x65\x94\x9d\x92\x85\xd3\x22\x16\x9d\x99\xc3\x6f\xfc\xd1\x67\xb5\xa6\x66\x8d\xd6\xf2\x74\xc7\x1d\x9c\x57\x20\x2a\xc1\x6f\x05\x40\x04\xd5\x35\x26\x87\x45\x69\x19\x24\xfa\xb4\x67\x42\xfa\x57\xd6\x99\x82\x64\xca\xf9\xaf\x3f\xeb\xf0\x31\x2f\xb2\x97\x24\x46\xc5\x43\xb3\x83\xd1\xa4\xa7\x36\x9f\xf4\x14\xd4\xe6\xad\xa9\xd1\x64\x4e\x82\x24\x40\x6c\x1f\x06\x3a\x3c\xa2\x42\xcf\xb3\x57\x54\xd0\x6f\x7a\x55\x24\xcf\xcf\xbd\x97\x65\x89\x20\x7d\xb0\x2a\xa8\x4b\xeb\x37\xc7\xb7\x21\x51\x13\x8c\x02\x95\xa8\xba\x70\x8e\x17\x8c\xb1\x53\xcd\x9d\x40\x29\xd8\xee\xe8\x6d\x83\xd0\x17\xe4\x98\x1d\x91\x34\xc5\x2d\x53\xc0\x9e\x3e\x39\x4d\x9a\x64\xf3\xe9\x8f\x49\x21\x83\x6f\xaf\x29\xb7\x02\xd5\xb2\x01\x53\xde\x6a\x61\x74\xf2\x6f\x31\xee\x31\x03\x29\xc9\xf8\x5b\x81\x56\x77\xac\xa3\x5c\x94\x1a\x87\x65\x1a\x75\x53\xa6\x11\x61\xee\x6e\xd8\x0d\xa1\x4d\xb3\x38\x1d\x6e\x3f\x1f\x6f\xb3\xbd\x90\x14\xe0\x2e\xb7\x39\x5b\x05\xe6\x58\x19\x21\x39\x97\x0e\x2e\x43\x65\x3f\xdb\x57\xe3\x1c\xcc\xa7\x00\x1b\x1e\x3d\x3d\xdf\x75\x12\x4e\x6a\xbf\x47\x45\x12\xe1\x13\x6d\x74\x8c\x51\xfc\xf0\xc7\xf5\x8d\x81\xbf\xeb\x79\x74\x24\xae\x8d\x23\x39\x0c\x5b\x35\x7c\x38\x73\x21\x53\x6f\x52\xbe\xc2\x5e\x3b\xd5\x2c\x85\x6d\xc3\x4b\xcd\x8b\xec\x3a\xe6\x1f\xc0\x2b\xba\x0c\xc9\xd7\xb8\x4d\x6a\x8d\x5c\xda\xf9\xb8\xd6\x98\x0e\xa3\x9e\x97\xea\x56\xaf\x9d\x77\xf4\x33\xe1\xb6\xf6\xc3\x1b\xf9\x20\x67\x74\xd6\xed\xe6\x48\xf2\xd6\x81\x65\x01\x92\x26\x6a\x55\xd1\xb9\x84\x60\xab\xbf\x24\xe8\x55\x2b\x89\xa1\x41\xa3\x79\xe8\xf9\x56\x64\xaa\x68\xd3\x03\xaa\x22\x48\x47\x21\x80\xcf\x5e\x74\x12\x9b\xed\x28\x83\x52\x8f\xc0\x12\xe5\x51\x11\x55\x59\xf1\xc0\x72\xac\xa8\x50\x9d\x85\x05\xad\xe7\x36\x9c\xc9\xe4\x32\x40\xd3\xb9\xbe\x07\xe9\xd2\xde\x4e\x4b\xf9\xbc\x4d\x29\xa9\x20\x27\x96\xcd\xd4\x7a\xb3\xf6\x63\xa6\xf8\x87\xb3\xc2\xbf\x9e\x85\xd6\xe7\x3d\xb1\x8e\x00\x65\x57\x62\x07\x44\xdc\x05\x63\xfc\xae\x50\x71\x8c\x52\xbd\xcc\x4e\xc5\xae\xfd\xbe\x47\x51\x5a\xed\x49\x6a\x6c\x9a\x41\x9a\xfb\x94\x9d\xaa\xfc\x54\x69\x71\xac\xa1\x83\xc0\xfa\x44\xe4\x52\xac\x11\x0b\xcd\xb8\x79\x4a\x5e\xb1\x44\x51\xb1\xdb\x43\x5e\x9d\x34\xa1\xda\xa5\xc6\xd9\x73\xbf\x26\xc7\xf6\x4e\xb1\x33\x0c\xc6\x24\x80\xd5\xed\xf3\x9b\xc2\x1a\xa3\xa6\x32\xd2\x07\xae\x8d\x59\xf4\x4d\xdf\xed\xc1\x61\x19\x12\x00\x11\x95\x80\x5a\xba\x4f\x29\xf1\xaf\xa5\x37\x22\xed\x1a\xe4\x00\x4d\x58\x50\x5c\xbb\x19\x4d\x5a\x92\x41\x8a\xce\x53\xa9\x51\xbb\xb5\x51\xa0\x43\xf6\x82\xf4\x28\x4d\xaf\x6e\x8c\x2a\xcb\xb3\x34\x7b\x7e\xc3\x7c\x51\x24\xbb\x92\xd2\x8e\xf0\xc7\x78\xc6\x23\xf0\xdf\x6e\xa7\x18\xdc\xb6\xa9\x07\x1d\x78\xf7\x25\x31\x9e\xc1\xea\x8d\x2b\x69\xdc\xc4\xea\xc2\x99\x2b\x92\x1d\xef\xdc\x25\xc5\xc0\xb8\xa8\x9d\x38\x44\xaf\xca\xfa\x26\x4b\x81\x76\xd9\xbf\x0a\x91\xae\x4c\x41\xa6\x7b\x6e\x85\xf6\xca\xa7\xac\x54\x41\x0e\x7c\xf1\x8a\x1d\xa8\x28\x5e\xb9\x03\x0d\xa4\x2b\xb8\xd7\x06\xaf\xe4\xde\x47\xc9\xb0\x7b\x2b\xbb\xad\x31\x65\x85\xf3\xad\x54\x56\x3a\x73\xbd\xcc\xa5\xf4\x95\xac\x7c\xa6\x78\x96\x04\x68\xdb\x2f\x68\xaa\x24\x11\xda\xea\x43\x92\xa1\xa9\x35\x55\x42\x34\x0d\xa5\x92\x42\x58\xa3\x2b\x31\x9a\x4a\xcb\x25\x47\x07\xd4\x22\x09\xd2\x4d\xa6\x4c\x4c\x09\xf8\xbc\x40\x0c\x25\xc6\xc6\x2b\xd0\x81\xb1\x2c\x50\xfb\x4e\xf7\xfb\xfc\x1d\x7b\xe2\x36\x58\x6f\x57\x6b\x6c\x16\xf3\x64\x7f\x7b\x43\xa6\x8d\xde\x93\x72\x3a\x82\xf2\x9e\x3c\x95\x45\xdb\x83\x7d\x7e\xd6\x3c\x21\x4e\xa3\x8a\x8d\x54\xda\x35\xc0\xdd\xfc\x0c\x03\x5e\x67\x1d\x50\x43\x1c\x58\x06\x99\xbb\x53\xf2\xae\xb9\x35\x95\xd4\x3e\x77\xa3\x9d\x5e\xea\xe7\xd1\x1f\xfe\x8f\x2c\x46\xda\xff\x5e\x17\x6b\x1f\xbe\x2b\xa1\xd3\x34\xff\x6f\xa4\x06\x07\x41\x55\x06\xde\x5d\xab\x88\xbb\xb1\x2b\xa9\x99\x97\x50\xd2\x6b\xa7\xae\x9f\xb1\xea\x60\xea\x0b\x9c\xd5\xae\x8d\x16\x5d\x14\x8d\x5c\x0d\x8d\xdd\xf7\xb4\x56\x8f\xde\xf0\xf9\x01\x0e\x0f\x61\x04\xc9\x8b\x4a\x7f\xb2\x4b\xfc\xa5\x97\xb2\xb3\xae\x61\x25\x17\xaf\x7c\x92\xd4\xff\x18\xc6\x3f\xe6\xd9\x7c\x68\x0b\xef\xf1\x54\xbd\x16\x66\xb4\x99\x39\x5a\x01\x8c\xe9\x23\xef\xbb\x45\x88\xaf\x31\xc7\x20\xa4\xe8\xa9\x9a\x38\x7a\xd2\x64\xd1\xe0\x59\x10\x73\xc7\x0e\x30\x2e\x44\xb9\x81\x0d\x92\xbf\x80\x6c\x35\xe0\xbe\x05\x9f\xd5\x71\xe0\x0d\x6e\x81\x5e\x50\xc4\xbf\xd7\xa7\x09\xf7\x05\x8b\xbf\xee\x87\x7d\x95\xcc\xa5\xe8\x15\xd6\xb8\xbb\xe6\x95\x8c\xbe\xfe\x85\xdb\x32\x5f\xbb\x31\x42\x88\x15\xf7\x11\x55\xaf\x08\x1d\xd9\x0b\xa3\x66\x09\xe0\x8d\x97\x1d\x9a\x10\x8d\x5a\xb8\xb2\x57\xe0\x3e\x4b\x3e\xee\xf2\x4c\xac\x4b\x92\x9b\xbe\x4e\x03\xe3\x25\x4a\x4f\xe4\xd9\x75\x72\x7c\xee\xb6\x97\x18\xbb\x11\x3a\xd6\x97\x51\x62\x70\xaf\x51\x71\x54\x05\x97\x15\xd1\xf1\x19\x0d\xc3\xdb\x15\x09\xbc\xa0\x55\x02\xd8\x78\xe8\xc8\xa0\xa1\x43\x5e\xbd\x29\x0e\xb5\x8d\xc6\x4e\x9e\xa0\x83\xd2\xda\x9b\x23\xaa\xf0\xe6\x51\x51\x01\xdf\x5d\x51\xe8\x17\xf0\xd2\x07\xe5\x19\x02\x04\xec\xa2\x3c\xa9\xa2\x34\xf9\x86\x46\xe0\x19\xd1\x6b\x29\x81\x71\xca\x73\x54\xec\xa2\x72\x14\x44\x83\x8d\xfa\x50\x6b\xb2\x15\xd9\x73\x81\x4a\xa2\xe5\x56\x58\x89\x3e\x46\x15\xe7\x9a\xd0\x2c\x30\x6a\x9f\x60\x8a\x0a\x94\x23\xb8\x20\xa5\x7f\xf5\x2f\x4f\x98\xc3\x44\x73\x4b\xdd\x1e\x74\xec\xd9\x39\xad\xa7\x46\x2d\xb8\xd4\xce\xbf\xd4\xf5\x97\xf7\x15\xb3\x96\x45\xe8\x99\x17\x42\x81\x5e\x78\x63\x04\xde\x3b\x40\xc8\x50\x53\xf6\xde\x9d\x73\xbb\xb1\x96\x05\xbe\x20\xce\xaf\xed\x45\xe8\xd5\x3c\x1c\x7b\x60\x78\x41\x67\x7b\x4b\xa7\xee\x5f\x42\xf9\x25\xf3\xc5\xdf\xda\x9b\x92\xad\xb2\x77\x00\x61\xca\x34\xc8\x31\xd1\x79\xac\xd1\x2b\xff\x03\x1d\x2e\x2f\x49\x99\x3c\x26\x29\x3e\x91\xd1\x75\xd3\xf3\xe2\x14\xb4\xdc\x52\xb7\x85\x0e\x04\xf8\x33\x45\xb5\x93\x05\xde\x0c\xc5\xdd\x36\xd2\x8b\xb7\xa1\xde\x8a\x60\xd5\x27\xc8\xff\xef\xff\xf9\x7f\xb5\x09\xff\xfb\x30\x8c\x36\x63\xde\x62\x14\x8e\x31\xb2\x01\x3f\x90\xb9\x7b\x8c\x8e\x47\x54\x3c\x68\xc7\x88\x2a\x43\xc9\x11\xb8\x0c\x4f\xd5\x15\xf5\x3c\xc8\x9e\xc0\x22\xd2\x27\x72\x1f\x6a\x5f\x43\xe2\xeb\xb4\xc1\x4f\x88\xef\x2b\x68\xda\x5d\x20\x0d\x59\x95\xae\xb8\x3d\x66\x2b\x64\x15\x2e\x82\x8f\x90\xbb\x7a\xd5\x1a\x17\xc2\x31\x8b\xf9\xd3\x29\x4d\xa5\x9d\xb5\x78\x73\x60\x36\xf9\xb9\xf6\xbe\x6d\x77\x93\x46\x55\xb3\x5b\x27\x42\x70\x2a\xf4\x1a\x8a\x1c\xd1\x33\xe8\x89\x6c\x6f\xb5\x93\x11\x9b\x6c\x9b\x5a\x87\x8c\x2a\xa9\x52\x34\xb2\x60\xe9\x2d\xfc\x58\x18\x2d\x5a\x6d\x4f\xe2\xd9\x34\x8d\xd8\x5f\xfb\x0b\x17\xfb\x44\x76\x55\x3c\x4a\x71\x75\x2f\x06\x96\x4a\x4e\xb3\x35\x07\x2d\x2d\x83\x41\xd2\xd1\xce\x61\x6d\x7c\xe2\x2d\xc9\x92\x5a\xf5\x3a\xfb\x34\x89\x29\x59\xb7\x28\x25\x64\x84\xdd\x88\x90\x9a\xbe\x36\x9c\xe1\xb5\x31\xe2\x61\xd2\xb9\x19\x82\xd3\x3e\xaf\x8f\x38\x6e\x43\x72\xd9\x0c\x8f\x0e\xa4\xef\x15\xc5\x99\x17\x5a\xc9\xf9\xa1\xf6\xc6\x9d\x36\xc9\x52\x2c\x44\xc4\x27\x4c\xd9\xb8\x65\xcd\x9b\xc1\x91\x71\x33\x7d\x50\x43\xc3\xd4\x95\xb8\x1f\x0f\x4a\xe0\x90\xe7\x00\xf4\x9c\x68\xf8\xe8\xa0\x99\x6a\x5d\xf1\xcb\x7c\xd8\x05\x90\xf5\x48\x1c\x49\x30\x42\xd7\xa8\x67\xe6\xe7\xdb\x26\xf8\x10\xd8\x76\xb7\x87\x24\x8e\x53\xa4\x88\x5d\x63\xa4\x9e\x21\xc0\xea\xb6\x3c\x2d\xe5\x98\xfb\xdc\x23\xf5\x9e\xbd\xdc\x88\x51\x59\xe1\x63\x48\x92\x1d\xe5\x97\x8f\x46\x7d\x6d\xa1\x80\xf0\x58\x78\xca\x7a\x20\x9c\x77\x33\x33\x9a\x88\x1f\x2f\xe7\x39\x38\xb2\xda\x55\xc8\xcf\x40\x67\x5c\x65\x19\x9f\xd5\x34\xca\x4b\xb4\xad\xff\xf8\x4e\xcc\x32\x71\x76\xd0\x0b\xb4\x7b\xdb\xa5\xf8\xf8\x5d\xf1\xaf\x1f\x25\x75\xee\xae\x2f\xe0\x1f\x6c\x69\x16\xf1\x0f\x16\xdd\x52\xf7\xef\xa4\x95\x78\x68\x17\xe5\x64\xc6\x94\x38\x08\x45\x71\x87\x8f\xea\xf6\x1c\x17\x91\x6a\xe4\x5c\x4c\xb8\x9a\x9c\x97\x94\xfa\x68\xbc\xb5\x49\x4e\x35\x0e\x30\x5f\xd6\x51\xea\x26\x41\x17\xc3\x65\x51\xa6\x3e\xcd\x6a\xeb\xb0\xc3\x6b\x4c\x60\xe9\xc6\x2c\xac\x00\xc6\x38\xd6\x31\xc1\xcb\x3f\x84\x88\x0a\x6b\xcc\x20\x43\x4c\xed\x9c\x04\xc0\xd5\xdd\x36\x3b\xa6\x6f\xfd\x15\x34\x54\xaf\x77\x36\x07\xd2\x35\x1f\x51\x9a\x26\x79\x99\x94\xf3\xf0\xb9\x1e\xc4\x42\xf4\xf0\x74\x12\xb3\xf7\xf9\xb7\xeb\x55\x1d\xe0\x63\xb4\xea\xd4\xcf\x19\xa2\xe2\x82\xeb\x34\xea\x30\xd9\x10\x95\x78\x06\xe7\xcb\x1a\xe7\x6e\x72\x1c\x27\xef\xdf\x55\xf0\x21\x6e\xa8\xe0\x11\xc6\x82\x6f\x3f\xf3\x6c\xdf\x3f\x77\x4a\x5e\x0f\xca\x8f\x32\x8b\xae\x98\x88\x58\xf6\x4d\xce\x2c\xdc\xb0\x28\x3d\x8d\x0e\x77\xb1\xe6\x4d\x51\x5f\xb9\x6b\xcd\xec\x0a\xce\xbf\xf5\xf1\x2d\x46\x4f\xd1\x29\x55\x15\xa7\x9c\xfa\xc9\xf1\x04\xa7\x81\x8d\x69\x2c\xec\x41\xd5\x55\x55\xd4\x28\xe2\x02\x5e\x29\x04\x57\xad\x0b\xb6\xfa\xce\xee\xce\x3c\xcc\x9d\x80\x26\x9b\xf3\x47\x54\x32\x1e\x5f\xca\x81\x33\x9e\x9a\xa8\x7f\x82\xfc\xa4\xcd\x09\x87\x97\xf2\x7c\xe1\x84\xe3\x0d\x7b\x2e\xb4\xda\xc3\x74\xcb\x67\xff\x7e\x40\x71\x12\x69\x3f\xb5\x71\xb2\x5d\xdb\xcc\xcf\x57\x17\x99\xca\x56\xdc\x6d\x8f\xd5\x5e\x6f\x6d\x79\x3f\xd9\x8a\xc2\x8b\x59\xa7\xec\xe8\x98\xf5\xc9\x6d\x5c\xdf\x45\x6b\x2a\x66\x76\x9c\xbb\x38\x79\xb9\x93\x2f\xbf\x98\x94\x29\x3a\xfa\x75\xde\x0c\xb5\xb7\x3d\xf0\x3a\x94\x89\x13\xee\xb0\x6f\x4b\x86\x15\xae\xde\xdd\x12\xd5\xc3\xd4\x07\x36\xf0\x8c\x4d\xd2\x40\xfe\x82\x2e\x1e\x07\xc9\xc2\x98\xf2\xe2\x6d\x02\x7e\x03\xef\x2f\x63\xae\xca\x94\x77\x95\x9c\xb5\x6e\xd0\xc7\xab\x8b\xd5\xa4\xca\x77\xb2\x3b\x74\xf1\x58\x27\x98\x6f\xc4\x8a\x3e\x96\x36\xe4\xd2\xd9\xe1\x76\x2c\xe6\x21\x9e\xa8\x1d\x55\x61\xfe\x68\xdb\x7b\x1b\xb6\xfd\xf7\x66\xe1\xf5\x57\x72\xff\x65\xe8\x78\xbd\x3f\xae\xe9\xc6\xba\x8b\xd2\xdd\x4f\x18\x2d\xed\x1f\x9a\x7d\x25\xef\xc6\x51\xec\xc6\x19\xef\xc6\x19\xe8\xc6\x55\xec\xc6\x1d\xef\xc6\x1d\xe8\xc6\x53\xec\xc6\x1b\xef\xc6\x93\xe8\x37\x2a\xf3\x34\xad\x8d\xa0\x7b\x5d\xc3\x8a\x91\x22\x06\xa2\x29\x9c\xd6\x86\xc7\xc0\x03\x04\x1c\x75\x04\x44\x93\x3b\xad\x0d\x8f\x80\xe3\x60\x04\x6c\x75\x04\x44\xd3\x3e\xad\x0d\x8f\x80\xed\x61\x04\x2c\x0f\x23\x20\xf7\x62\x04\x5f\xbc\x04\x95\x1f\xea\xeb\x25\xb2\xe5\x32\x7b\x2c\x68\xf6\xec\x85\x9d\x12\xb0\x39\xcd\x71\xff\xeb\x20\x52\x43\x6a\xd5\x02\xa3\x0d\xdf\x2a\x82\x55\x1b\x58\x20\x3c\xc8\xc4\x01\xb6\x60\x16\x8c\x6d\x12\x10\xf9\xb0\x98\x17\xa6\xfd\xe5\x68\xbb\x98\x1b\xbb\x72\x7b\x60\xeb\xe9\x1c\x08\x6e\x9b\xeb\x90\x09\xfb\x73\xad\x62\xb6\xee\x0b\x45\x56\x45\x15\xfa\xc9\x0a\xcc\x18\x3d\xab\xed\xf5\x02\x45\x75\xd0\x38\xda\xd8\xb0\xf9\xd3\x62\x7d\x0b\x24\x0c\x3e\x41\x4f\xe6\x3a\x66\x01\xfa\x54\xd8\x6c\xee\x3d\x38\x32\x32\x6b\x7a\x82\xf3\xe1\x4a\xda\x27\x55\x28\x75\xf4\x82\x8e\x55\x49\x9c\x76\xc5\x91\x34\x82\xe6\xd4\xa7\xd2\xa9\xfc\x21\x4c\xcc\x54\xe0\x35\xea\x21\x3c\xe9\x45\xbc\x04\x87\x02\x24\x19\x11\x62\x78\x24\x57\x5a\x15\xd7\xbe\x58\xfc\x90\x9a\x37\x31\x75\xcf\x00\x4e\xdf\xa1\x34\x55\x86\x7c\x77\xad\x80\xb7\x58\xe5\xa2\x8e\x53\xd6\x84\x71\xdc\xf1\xb7\x14\xd7\x1d\x4b\xdd\xe8\xa2\xeb\xda\x0f\xfa\xea\xd9\x30\xe6\xf5\xad\xa5\x95\x9f\xb5\x32\x4b\x93\x58\x39\x18\x82\xca\x43\x69\xde\x8e\x05\x8b\xa5\x3f\x57\x24\x40\x0b\xac\x1f\x42\x40\x5d\xb8\x96\x3e\x91\xb5\xc4\xdf\xc8\x92\xd5\xc9\x31\x39\xe4\x8f\x60\xdf\xe2\x2b\x0a\x8d\xda\xf2\x20\x11\x07\xbb\x14\x45\xc5\xf6\x31\xab\xf6\x6a\x1c\x81\x69\x2b\x5a\x7e\x0c\xfa\x0e\x1b\xb7\x93\x7d\x7f\xf1\x98\x1c\xc9\x45\x1e\x96\xd4\x71\x2a\x7f\xc1\x3d\x54\x56\xbf\xee\x8e\x53\x59\x4c\x43\xe9\xbb\xb0\x4e\xff\x5a\x1c\x0b\xbb\xe9\x55\xab\x86\x30\x95\x41\x69\x8a\xab\x0b\x9b\x2c\x43\x33\x9b\xa7\xcc\x4c\x50\xee\x96\x4f\x47\x9e\xb0\x4c\xc5\xad\xaa\x63\xa1\x98\x1f\x39\xab\x20\x93\xea\x87\x7c\xd1\x1f\xb3\x34\x16\x3f\x74\x55\x24\x5b\x4b\x0f\xce\xe1\x02\xb8\x83\x5e\x9c\x9b\x1f\xb9\x48\x20\x8a\xbd\xdd\xd1\x97\xa1\x83\x7d\x92\x4a\x97\xd9\xe0\x19\x67\x2a\xea\x7c\x22\xce\x03\xd2\xed\x51\xd0\xee\xd2\x89\x1d\x68\xd9\x6a\xeb\x41\x8b\x63\xcd\xd8\x65\xf9\x9b\x4e\x9f\xbb\x90\xff\x8c\xa0\x21\x6a\xd2\xda\xe6\x7a\xc1\x59\xb6\x26\x84\x89\x37\x35\x51\x44\xc3\x61\x4e\x23\x21\x57\x3e\x8d\xf2\x7b\x53\x8f\x0b\xae\x68\x29\x4a\x85\xbb\x38\xe6\xc8\xa9\xb2\x44\xef\xe2\x6a\xbc\x0d\x45\x50\x09\x7e\x53\x57\x15\x6e\x2b\x95\xd4\xe1\xb3\x6d\xf8\x7e\x3a\x8e\x2e\x02\xe1\x30\x1e\xb5\x07\x2c\x95\x53\xe7\xf8\x07\x09\xc4\xa9\xc8\x8f\xc5\xde\x99\x3c\x4c\xd1\xa2\xe9\x3d\x8d\x55\x5f\x6f\xd3\x6c\xc8\x7c\xb8\xa0\x91\x35\x87\xd9\xe1\x53\x1c\x8b\x1f\xfa\x4a\xd6\x9f\xa8\xcd\xa5\x73\xb7\xa0\x16\xcc\xa5\x76\x2a\xca\xb2\xb4\x4a\x72\x1a\x12\x23\xae\xfa\x3e\x6e\x7c\x05\xfe\xbc\x52\x1f\x2b\x3b\x2e\x68\xcc\x31\xe6\xdf\x9e\x9e\x9e\x84\xbb\xa1\x26\xb7\xc1\xb3\x99\xad\x94\x1a\xf4\x0e\x5f\xba\xeb\xe1\xc3\x97\xe0\xe4\x40\x4e\x3e\x7e\x7e\x86\x33\x84\x0e\xd1\x1e\xb9\x21\xde\xf4\x49\xd2\x57\x46\xe2\xa4\x20\x2b\x7c\xbb\xcb\xd2\xd3\xe1\x28\x26\x13\xfb\xd8\x03\xf7\x06\xfb\x65\xef\xfa\xac\xd7\x94\x53\xe6\x05\xda\xe7\x37\x1d\xde\x66\x6e\xad\x5b\x4e\x08\x9b\xed\x75\x45\x7d\xd6\x23\x0f\x22\x38\xf8\xc4\x58\xcd\xf6\x42\x2f\xd8\x45\x03\xa8\x35\x0c\xcf\xe4\xfc\x8d\x39\x1f\x41\x9e\x3a\x4a\x2f\xfb\x07\xc6\xe4\x75\xa3\xf3\x1a\xb6\xa2\x43\x76\x1d\x39\x6b\xdc\x93\xd0\x86\x5b\xa6\xee\x68\xf6\xd6\x1d\x3a\x8c\xbb\xef\x74\x9b\xc5\xf1\x5d\x34\x9e\x55\x84\xc3\x1f\x74\x6d\xbc\x99\x50\xaf\x59\xaa\xc0\x27\xc7\xa7\xec\x61\xfc\x95\xc6\x04\x52\xdc\xc8\xa6\x4c\xcd\x0b\x4b\x30\xe3\xdd\x8b\xa7\xde\x9c\x73\x19\x83\x3b\x9a\x22\x73\x8e\x08\xe5\xfc\x74\x37\xe2\xfb\x1e\x28\xba\xbe\x37\xfc\xd0\x65\x28\xa7\x97\x22\x11\xb3\xd8\xef\x4f\x59\xf1\x33\x5e\x03\x8f\x51\x41\xfd\xec\x1e\x84\xef\x41\x40\xc9\x12\x7b\x33\xd2\xd5\xc2\x3c\x0c\x85\xbf\x3b\x57\x65\x63\x7e\x9e\xff\xc6\x63\xc1\x1f\xed\xfb\xd7\x8f\x81\x1b\xc2\xf5\xa3\x74\xae\x3a\x64\x6f\x41\x34\x57\x76\x61\xe8\x63\x10\x42\x12\xf0\x57\x8c\xfd\xee\xc3\xd0\x13\x76\xbf\xb7\xba\x19\xa6\x89\x9c\xe9\x58\xff\xfe\x2b\x58\xff\xe8\x53\xe9\xd2\xa8\xe3\x8d\x1b\xe5\x3e\x7b\xfd\xf0\xc0\x42\x21\xcd\x3b\xc4\xf9\xd4\xb1\x7c\x74\x8a\x05\x46\x0a\x38\x3d\x7c\x37\x1e\x8b\xe8\x18\xeb\x69\x06\x11\x01\xe5\x91\x5a\xd9\x93\x3b\xcc\x65\x1d\xba\x15\x58\x50\x33\xca\xaf\x49\xae\xa7\xc9\xf1\x6b\x79\xc9\x4e\x15\x1e\xe6\x96\xec\x55\x96\x2c\xba\x32\xe3\x82\xac\xee\xfb\x7b\x3b\xbe\x03\x09\xb6\xba\x66\x9f\x30\xdb\x88\xb3\xf5\xe9\x01\x0c\x1b\x24\x89\xa7\x09\x7f\x36\x3b\x28\xfc\x95\x46\x15\xfa\xbf\x7e\xd2\x3d\xf3\xe3\x55\x6f\xa4\x5a\x74\xd3\xfb\x44\xcf\x26\x9d\xe4\x35\xca\x0d\xfb\xdf\xf1\xe6\xc3\x5b\x33\x18\x17\x41\xc6\xc9\xac\x7e\x9d\x95\x9d\xf5\x32\xf9\x86\x47\xd6\x88\xff\x73\x0f\x01\x72\x95\xab\xbf\x26\xd5\x3e\x39\xc2\x8e\x6c\xd2\x3a\xc7\xac\x4a\x9e\x92\x5d\x24\x90\x6e\x62\x6a\x0b\xf6\xb9\x66\x02\x9e\x92\x33\x8a\xdb\x1d\xcd\x24\x74\x76\xbd\xd6\x73\x5f\x60\xff\x11\x21\xa2\xc1\xaa\x62\x3f\xdd\x5d\x33\x4f\x8b\x5d\xb3\xde\x96\x47\xdb\x11\xf3\x74\x42\x62\x46\x14\x59\x8e\x8a\xea\x6d\x9b\xe5\xd1\x2e\xa9\xde\x28\x65\x9f\x92\xaa\xbe\x77\x67\x92\x80\xe3\x73\xbd\xc0\x26\xf4\xbd\xff\xde\x83\x3b\xe4\x74\x65\x3f\x84\x24\xdf\x27\xbb\xac\xc8\x75\xa2\xe0\xe2\x36\x9a\x11\xef\x4a\x98\x07\x12\x26\x52\x5a\x87\xc6\xa7\x01\x93\xe5\x43\xef\x9d\x0c\x1f\xa9\x74\x04\x35\x0a\x6a\x1f\x95\x79\x96\x9f\xf2\x9f\xb1\x8a\xf6\xf0\xc7\xb5\xd4\xb7\xc8\xbc\xed\xbe\xe5\x16\x6c\xda\xf2\xa9\x6f\xc3\x4b\x30\x66\x19\xfc\x5b\x0f\xda\xe0\xda\xa0\x5f\x75\xe2\xb8\x7b\x74\x7d\xd6\xd6\xc4\x97\xbd\xa6\x6b\xae\x9d\x9f\xaf\xda\xcf\x87\xe8\x4c\x8a\x6e\x5c\xb8\x8a\xac\x6b\x80\x90\x85\xbb\xb5\xe6\x85\x64\x09\x3f\x49\xc8\x45\xc2\x1f\x9a\x60\x1c\xea\x1d\xfa\x2e\xd7\x61\x9f\xe6\xfc\x63\x9f\x56\x14\x8d\x55\x15\xe9\x44\x22\xe6\x6d\x1e\x10\x76\x78\x1f\x5c\x65\xd8\x3d\x8f\x86\xd1\xdf\x17\xd9\x01\x51\x9f\x94\x1b\xdf\x85\x61\x09\xc0\x32\x8c\x2b\x14\x0d\x23\x6d\x6e\x60\x42\x45\x5b\xac\x69\xd6\xdb\x24\xb1\x9f\xff\x9e\xc4\x0f\x7f\x90\x04\xcf\x7c\x0f\xfd\x0b\x19\x6e\x04\x50\x4c\x75\xb3\x16\x52\xf3\x88\x4b\x0e\x91\x3c\x01\xe7\x5a\x7d\xaa\x13\x35\x25\x2f\x77\xfd\x89\xe8\xe0\xfa\x94\x65\xcd\x4b\x03\x53\xd2\xfd\x14\x80\x0d\xca\x2c\x60\x18\x76\x7f\xbc\x37\x0e\x90\x4f\xbb\xd6\x74\xab\x3b\x74\x18\x72\x17\x59\x11\x19\x58\x99\x24\xed\x62\x88\xae\xb2\x01\x8c\x75\x66\x8a\xf4\xa6\x20\x0c\x27\x31\x84\x60\xfa\x56\xa3\x7a\x77\x3a\x67\xf3\xc5\x8f\x9a\x3e\xf3\xbb\xd8\x85\x89\xbd\x0b\x91\xeb\x43\xba\xc5\xbf\xa0\xc3\x12\xed\x95\x07\xc8\xab\x00\x72\xf1\x5e\xef\xe7\x4d\x04\x05\x90\xdb\xfd\x25\xec\xc1\x3d\x90\xe0\x89\x01\xd7\xeb\x8d\x78\x50\x7b\xd6\xae\xcf\x09\xb2\x8e\xe0\xbd\xeb\x78\xcd\xdf\x82\xde\x4d\x9b\x9b\x7c\xca\x86\xb1\xbd\xb6\x89\x05\x77\x17\x09\x1e\x77\x0a\x76\x54\xf5\x06\x75\xe2\x22\x2e\xb8\x07\x79\xea\x4b\xd4\x41\x55\x08\x91\x6a\xc5\x69\x60\xcb\x3c\x3a\xde\xf5\x32\x31\x2a\x13\xac\xf6\x15\x9e\x46\xb5\xe9\xc1\x85\xb8\x25\xd3\x79\xc3\xa0\x14\xdf\x8f\x20\x58\x15\x08\x61\x96\x7c\x50\x8e\x0a\x48\x1b\xe2\x2a\xb3\x1a\x66\xe0\x6e\xf7\xd0\x8d\x06\xd8\x43\xa7\x1b\x2c\xb0\xdf\xaf\xa4\x46\xdb\xc1\xb4\x78\x82\x7d\x0c\xa6\xc6\x23\x14\xa0\x38\x13\x44\x33\x86\x05\xe8\x2f\xc3\x7c\x01\xd2\xa3\xcb\x8c\xaf\x01\x7e\xa2\xfc\x97\xd9\x31\xa8\x64\xc4\x58\x00\x4a\x40\x9c\x35\xa0\xd5\xc4\x9a\x1b\x6e\x48\x3e\xca\xb9\x61\x1a\x25\xc3\x5c\x08\x8e\x8e\x93\xb7\xc0\x08\x66\x5b\x94\xa4\xca\xb0\xd1\xa1\x6b\x3f\x53\xba\xdd\x08\x88\x01\x53\x59\x68\x8f\x49\x6b\x3e\x8a\x53\x67\xe0\x8d\x22\x56\x47\xcf\x9b\x26\xfa\x97\x6e\x97\x8a\x9b\xe5\x94\xad\x52\x7d\xa3\x1c\xb5\x98\x0b\x66\xfa\x22\xb0\x9e\x30\xc1\xa6\x18\x75\xca\x2a\xd0\x41\x33\x21\xd0\x64\x4f\x62\x5c\x06\x23\x51\x11\xbb\xcd\x73\x91\xbd\x6e\xad\x31\x93\x40\x1b\xb7\xad\x56\xed\x5c\xb3\xd1\xed\x8a\xd6\x69\x0b\x1f\x27\x6d\x2e\x46\xd6\x8a\x1c\xf6\x1f\x8a\x29\xd4\x52\x57\x74\x16\x36\xaf\xbb\xb2\x99\x0c\xe1\x52\x51\xf0\x66\x71\xca\xa2\xad\xfd\x0b\xb9\x97\x7b\x3d\xc6\x52\x02\xd2\xc6\x4c\x6b\x83\xd8\xaa\x1b\xa0\xe4\x73\x56\xeb\x80\xc0\x67\xa3\x98\x71\x8b\x90\x7f\xd9\x36\x62\x63\x19\x54\x9f\x45\x35\x09\x92\x1d\x95\x58\x10\x3a\x55\xb1\x5f\xfa\xa4\x46\xb5\x36\x79\xa2\x33\x01\xd3\x49\xf0\xd9\x27\x3c\x03\x29\xc7\xab\xe8\x51\xc7\x4b\x3b\x4d\x84\xf2\x5d\x00\xd9\x48\x88\x76\xf0\x82\xea\x11\x93\x9b\x2d\xf2\xed\x6a\x06\x10\x40\x92\x03\xd2\xc3\x18\xd4\xff\x31\x6b\x9c\xfa\x4b\xa5\x81\x3b\x8c\x4d\x5f\xba\xf7\xbb\xaa\xbd\xa8\xba\xa9\x19\xae\xc6\xf6\x0e\x47\x09\x7a\x2f\xe3\x83\x2c\x92\xdc\x88\x83\xdc\x01\xc5\xc9\xe9\x30\x34\x5a\xc1\x5e\x26\xe7\xd8\x29\x9c\x77\xe9\x6a\x37\xac\xef\x83\xe0\xf2\xda\xed\xe5\xf5\x12\x64\x76\x1c\xd3\x8b\x26\xb3\x9e\xf2\x5a\xfd\x93\xae\x6c\xb5\x16\xec\x2d\xc3\xe8\x9d\xfe\x64\x1a\x2a\x3e\xd0\xf3\x18\x0f\x98\x85\x38\x88\xaf\x4d\x46\x96\x74\xf3\xbc\x20\xaa\xaa\xe2\xa7\x16\xc0\x55\x67\x7f\x66\xaf\x46\x0d\xaf\xe8\x5d\xaa\xc3\x37\x89\x7e\x94\x26\x46\x73\x15\xd1\xb1\x1d\xd4\xba\x86\xb4\x61\x7b\xa5\x21\x6b\xab\x98\x3b\x6f\xec\xc5\xb6\x9a\x57\x39\x2b\x58\xea\x8d\x71\x15\xf9\x4a\x3d\x47\x66\xd2\x8f\xd7\x26\x7f\xae\x8a\x13\x7a\x58\x42\x53\x11\x3c\xde\xd3\x06\x2c\xb3\x03\xd4\x32\x19\xd2\xd3\x16\x20\xe4\x46\x9a\xcc\xa6\x40\x13\x39\x69\xfe\xa0\xa7\xda\xe4\x6e\xd9\x64\x8e\x63\x9b\xb0\xc4\x35\x8d\xdc\x16\x8b\x2e\xad\xdc\x4d\x7e\xae\x6f\x0c\xa5\x36\xf6\x1a\x41\xee\x16\x4f\x0a\x4d\xd3\x35\xc7\xc3\xad\x58\x47\x32\xfc\xa5\xf5\x52\x93\xdc\xf6\x76\x77\xf9\x7a\x36\xc6\x04\x2d\x47\xf8\x49\x95\xcb\x4e\x88\x11\xb0\xb4\x33\x86\x77\x5f\xa8\x30\xf7\xe0\xc5\xbb\x92\x09\x78\x0c\xf7\xce\x6a\x5a\x46\x63\x15\xe9\x9d\x3b\x5b\x9f\xa7\xc1\x43\xc0\x20\x50\x8d\x0d\x72\x09\x8c\x40\xe4\xe7\x54\x0d\x48\x81\xa4\x03\x0a\x99\xea\xc6\x3d\x49\xc1\x11\x1f\xeb\x36\xf9\x19\x2e\x4b\xa6\xeb\x78\xcc\xc6\x63\x6c\xf0\xbe\xd3\xcd\xe7\x3f\x49\x64\x4c\x95\x0f\xa2\xc8\xdb\xff\x8a\x3d\x4e\xec\x0e\x83\x39\x87\x7f\x49\x34\x19\x39\xea\x92\xf3\xe9\x7a\x16\x7a\x4d\x6b\x26\xf1\xdf\x94\x9d\x01\x57\x57\xd9\x16\x6e\x87\xf3\x0a\x42\x95\x01\x8f\x28\xd1\xb3\x47\xb8\xfd\x95\xbb\xa9\x08\xc2\xb0\x4a\xee\x05\x6b\x7f\x2b\xcb\x94\x4f\x00\x58\x88\x58\xff\xe0\xd6\x55\x80\x7a\xdb\xf6\x9a\xf1\x0b\x25\xd2\xca\x97\xe7\xcb\x53\x92\xa6\x3d\xb7\x31\x70\x6d\xf3\x25\x06\x50\x78\x69\xab\x37\xcb\x69\x20\x76\x63\x13\x65\x5c\x12\xba\xb1\xb7\xfb\x51\xb3\x05\xe7\xf8\x69\x2b\xa5\x7f\xbd\x8b\x93\x97\x4f\x27\x2e\x3b\x63\xfb\x69\xc2\x05\x4a\xdd\x66\x5a\xf5\xb9\xc6\x7c\xae\xf9\x0c\x23\x39\x69\xaf\x92\x21\x73\x3c\x91\xe1\x8d\xf0\x00\x7d\x35\x27\xb3\x29\xfb\xe4\x9e\x18\x1b\x20\x9c\xfc\xd5\x60\xee\xcc\x81\x46\x0b\xd2\x64\xca\xa1\xae\x0d\x70\x26\x0f\x4c\xed\x60\x85\xac\x96\xb2\x1e\xea\x53\xcf\xdf\x09\x6d\xdf\x37\xa1\xed\x3b\x9b\x98\x54\xef\xd2\xfb\x97\xdf\x33\xee\x9a\xa7\x5d\xf2\x2e\xbb\xf5\x5c\x78\x99\x78\x49\x93\x92\x86\xc2\x23\x49\xf6\xd4\x1d\x1d\x34\x23\x39\xe2\xb9\x42\x31\xc5\xbb\x43\x3b\x51\xf9\x24\x4a\x0a\x00\x2c\x68\x3b\x9f\xca\x32\x58\xb3\x68\xde\x03\xd6\x44\x0b\x67\xaf\xbf\x94\xb6\xf6\xee\xbe\x3e\x79\x53\x9f\xb2\xa3\x2f\xd9\xce\x17\xed\xe5\x97\x36\x3e\xb2\x8d\xcf\x6e\xf4\xd8\xdd\x24\x4b\xbf\xea\xdc\x60\x41\x38\xc7\xd6\x21\x90\xf1\xbf\xfe\xfe\xef\xe5\x29\xc7\x24\x2e\xb5\x63\x56\xb1\x5e\x83\x4c\xa5\xab\xcb\xdf\xc4\x67\x88\xdf\xd2\xc8\x06\xb5\x5b\x91\x35\x85\xa9\x49\xf9\xef\xd3\xa8\x35\x39\x19\x69\x3f\xa8\xda\x2c\xea\x2d\xcf\xd4\xc9\xbe\xeb\x94\xbd\x9b\xec\x78\xa5\xe7\x67\xed\x93\x66\x58\xe8\xa0\xba\x6f\x75\xfc\x55\x3e\xa9\x24\x74\x17\xfb\xa6\x4c\x6f\x4a\xfd\x50\x70\xc3\x76\xae\xf5\x18\xe5\x05\xda\x45\x15\x8a\x69\xe5\x38\x79\x69\xbb\x1a\x73\x52\xe3\x81\xc9\x31\x1d\x76\x54\x83\x1a\x8b\x5c\xd5\x66\x40\x90\x20\xba\xcc\x5d\xed\x93\x52\x56\xca\x81\x41\x2c\xc5\x7f\x11\xea\xeb\xb9\x9b\x2d\x03\x26\x1c\xda\x8a\x2e\x67\x9f\xe6\xe5\xf7\x1c\x1b\xeb\x5a\x6e\x67\x6b\x01\x6c\x46\x2b\x79\xe0\x47\xcd\x34\x6c\xbc\x1e\x8b\xbc\x01\x50\x11\x2c\x9d\x45\x3d\x75\xe9\x4c\x60\xd5\x05\x53\xbf\x84\x90\x97\x26\x98\x4d\xad\xd8\x30\xee\xfd\xb5\x56\xf3\x76\xa5\xe9\x1a\x55\x78\xae\x34\x93\x79\x53\xb3\x6d\xce\x48\x9a\xe5\x99\x87\x52\x95\xaa\xca\xe7\x1f\x55\xe9\xdf\x15\xbf\xc2\x93\x53\x57\x3e\x4f\x16\x85\xb3\x4e\x5f\xd3\xa5\xed\x14\x11\x37\xf1\x74\x37\x4d\x76\x2e\x11\x48\xab\x1c\x24\xe7\x4a\xc2\x45\xc2\x65\xa1\x60\x5a\x2a\xd7\xae\xb9\xc7\x40\xef\xea\xe4\xff\xa7\x7f\x0d\xf0\x97\x7c\x1f\xf0\x9f\xea\x49\xc1\xbf\xf0\x01\xc2\x9f\xe5\xe1\xc0\xdf\xcf\x0e\x7e\x80\x54\x7c\xd7\x57\x0b\xbd\x1c\x3c\x8a\xd2\x4d\xa3\x69\x32\x3b\x12\xa8\xfe\x3c\x75\x09\xd3\x76\xd3\x9b\x2c\x62\x19\x79\xd0\xd4\x89\x30\x06\x9c\xce\xd4\x62\x61\x30\x7e\x59\x5c\xba\xea\xdb\xbe\xcb\xc4\xac\x7d\xb1\xf1\x16\x9a\xb9\xeb\xcd\x6c\x4f\xb9\xac\x69\x3d\xb8\x07\x4a\x6a\x0d\x20\x33\xbc\xff\xb5\xd5\x16\x6d\x83\x73\xc1\x0c\xe1\xbd\x6c\x87\x6b\xe0\x2c\x1f\xd3\x2a\xc3\x59\x3e\x92\xf5\xf6\xb3\x15\x20\xca\x47\xba\xe2\xfe\xc4\x83\x5c\x65\x9b\x5a\x03\xe4\xd8\xd8\xd7\xd9\x75\x44\xc9\xf0\x49\xd8\x68\xee\xd9\x49\xef\x82\x41\x10\xc5\xe7\x27\xc1\xa1\xfd\x7c\xf5\x0f\xcd\xbe\xba\x31\x67\xb9\x07\xfc\x7d\x4f\xac\x76\x4f\xcc\xba\x54\x1a\xce\x46\x71\x6b\xea\x5f\xf7\xc3\x15\x3f\x73\xe7\x3f\xe2\x87\x21\xaa\xbe\xc4\x03\x43\x00\x6f\x3d\x50\xab\x79\x5d\xc8\x40\xaf\xe1\x6f\xd1\x83\xcd\x79\x20\xda\x0b\x67\x56\xc5\xb7\x66\x3d\x7f\x9a\x55\x7c\x68\xde\xc5\x6f\xe6\x7d\x7c\x65\x58\xff\x18\x2e\xbe\x52\x4f\x74\x8e\x48\xd6\x6e\x10\x41\xcb\x56\x9b\x76\xf6\xaa\x69\x97\x1d\x9f\x92\xe2\x90\x40\xbe\x59\xd1\x67\xe6\xeb\xa4\x79\x96\x75\xb2\xa8\xf5\xcc\x99\x1d\x84\x36\x7d\x4a\xc5\xe0\xba\xb9\x33\xe7\xce\x43\xc7\x1a\x2c\x9e\x8a\xa9\xc6\xdd\x81\xae\x96\x02\x58\x75\x4e\x96\x98\x33\xa5\x10\x2f\xc2\x40\x82\xa0\x83\xe8\xd4\xd1\x16\xee\x58\x54\x54\x8f\x9b\xb9\xeb\x41\x95\xd0\x73\xe9\x39\x9b\x6c\x7d\xbe\x15\xde\x44\x8b\xee\xab\xda\x7b\x95\x36\xb7\x1e\xb9\x58\xb9\x39\x44\x67\xee\x03\x9b\x7d\xcf\x94\x74\xd1\x0d\x61\xd0\xcd\x81\x2b\x6a\x43\x62\xac\xd2\xe9\x86\xe7\xa6\x57\x5d\x30\x7f\x5c\x5f\x86\x6e\x80\xd8\xb6\x32\xbc\xda\xbb\xf7\x0b\x33\x0e\xdb\xf4\xf8\x77\xf7\x4a\xa3\x6a\xa2\x5d\x5d\x2b\xf3\x25\x4b\x3c\xcb\x75\xc0\xc2\x70\xe6\x3e\x48\xfb\x4e\xe2\xff\xfa\xf3\x07\xfd\x03\xef\xa1\x59\x63\x70\x4a\x49\x98\x81\xdf\x9f\xb2\x82\x54\xd3\xae\x35\x89\xa3\xc1\x14\xa8\xfc\x89\xe4\xa1\x97\x36\x79\xc0\xd3\x01\xe6\x93\x77\x77\xb8\xba\x31\xaa\x24\xcf\xdf\xf4\xc7\xec\x2c\x7a\xe9\x30\xc0\x17\x78\x5b\xbd\xa2\xf9\x64\xd8\xdc\x04\xcd\xe1\x85\x9d\x3d\xfc\x51\xc2\xfb\x75\x44\xb2\x81\xae\xa2\xc7\x0c\xde\x3e\xd3\x70\x0c\xdf\xc9\x07\x09\x3c\xba\x63\xbb\x6c\xa6\x86\x53\x5e\x56\x05\x8a\x0e\x7a\x1d\x6f\xb6\x0e\xcb\x6e\xa4\xd9\x2e\x4a\x21\x58\xbb\x5e\x66\xbb\xaf\xa8\xd2\x0f\x59\x8c\xb4\xb8\xaa\x8f\x64\xbc\x2f\x7c\xf3\x58\x92\x28\x0c\xfb\xac\x48\xbe\x65\xc7\x2a\x4a\xf5\xaf\x2f\x00\x53\xff\x8a\xde\x5a\x6f\xfb\x36\x34\xfc\xe3\x09\x80\xe3\x2a\x4d\xc8\x77\x74\xce\xb3\x12\xc5\x7a\x1e\x55\x7b\x28\xa9\x83\x3c\x10\x19\xc3\xa6\x4e\x69\xf0\x06\x46\x28\x9b\xef\x78\xd2\xf5\x12\x95\x65\x93\x7f\x94\x69\xd4\x2f\x04\xf8\x7d\x05\x57\xd4\xa3\x94\x64\x63\x35\x3a\x03\x00\xa2\xec\xb2\x34\x25\xf1\x54\xef\x54\x50\xa8\x22\x12\x37\xff\xa6\x8a\xf1\xdf\x65\x37\xb2\x70\x27\x49\x4c\x9d\xd0\xba\x4f\x6a\xa2\x0a\x4e\x20\x78\xa7\x41\x87\xec\x9d\x52\x11\xf1\x47\xab\x8c\x8f\xbf\x03\x42\x3a\x11\x75\xbd\xe9\x14\xae\x5b\xd6\x74\xa6\xbf\x29\xb5\xc9\xaf\xce\x06\xd1\xa7\xed\xdd\xf5\xdd\xf5\x04\xca\x72\xd5\x3b\x74\xe5\xca\x44\x54\x1d\xa9\x30\x3e\x62\x0e\x80\x94\xa2\x2a\xb5\x04\x83\x9a\x3e\x01\xa4\x5d\x4d\x7e\xf8\x45\x89\x8f\xff\x16\x07\xd2\x16\x4e\xc1\xa4\x09\x90\x93\x7f\x84\xf8\x0b\x49\xaf\x42\xf8\x89\x64\x9f\x47\x74\x96\xe4\x2d\xc1\x85\xc9\xf1\x05\xc4\x66\x72\xa1\x28\x50\x9b\xa9\xdd\x25\x37\x53\x24\xa4\xf7\x60\xb9\xc2\x38\x99\xf6\x72\x8a\x8f\x57\xea\x8f\x67\x06\xcd\x71\xb3\x86\xe8\x71\xdc\x50\x3d\x8e\x2f\x92\x2c\x5f\x33\xf6\x6a\xe1\xfe\xc0\x84\x71\x0e\xd8\x07\xce\xb5\x26\xde\x9f\x61\x6d\xc2\x3e\x01\x6f\x6a\x77\x69\x54\x96\x0f\x57\x5a\x1c\x7f\x8a\x2b\xee\x13\x9b\x59\x49\xd4\xc3\xac\x7d\x61\x61\x9f\x4a\x84\x8d\xe2\xb8\x40\x65\x49\xc0\xaf\x02\x91\x4e\x15\xa6\xe5\x22\xa8\xeb\xd0\x7f\xc6\x66\x39\xb7\xab\x66\x77\x9d\x09\x00\x6a\x0a\x4b\xea\x8d\x7a\x1e\xe0\x4f\x22\x45\x89\xa1\x40\x2f\x67\x9a\xa8\x6d\x57\x33\x52\x6e\xcf\x51\x45\xa5\x05\x3b\x58\x85\xfa\x3c\x51\xd4\x57\xb4\x3a\xfd\xc4\x3d\xcc\x59\xd1\x4b\xfb\x54\x59\x29\xb3\xfb\x98\xbe\x52\x66\x77\x55\xf3\xc4\x5c\x00\x33\x9b\x51\xce\x1a\x69\x3e\xc6\x3a\x22\x9e\xa5\x52\x43\xc6\xae\xaa\x20\x3b\x8b\x6c\x2d\xb0\x22\xa5\x63\x2d\xd8\xd2\x2d\xe1\xdd\x3b\x50\xda\xc5\x56\xed\x65\x70\x67\x1b\xed\xe9\x7d\x77\xa2\xd1\xee\xeb\x35\xb7\x74\x5e\x62\xe1\x0a\x58\x13\xd5\x58\xba\x20\xde\xa9\x17\xe1\xb9\xfe\x7d\xba\x92\x1f\xee\x57\xee\x6f\x8e\x32\xa2\xba\x69\x4e\x69\x30\x43\x75\x19\x87\x3a\x59\xa3\x99\x00\x72\x8a\xa2\xa3\x02\x56\x49\xff\x51\x00\xb4\x78\xd9\x2a\x29\x56\x53\x4f\x42\x52\x3d\x76\xc1\xec\x8a\x7b\xe8\xcc\xcb\x3b\xf5\x22\x12\x05\xef\xd4\x95\x54\x14\xac\xdd\x9f\xa2\xb6\xb5\xee\x21\x78\x2a\xb4\x75\x74\x33\x0a\x65\x6c\xb1\x74\x79\xe9\x7d\x48\x20\xeb\xe5\xbd\x6d\x01\xb2\x7e\x97\x69\x52\x8b\xa0\x0e\x6a\x4e\x13\x21\xaf\x37\x1f\xef\xab\x91\xf5\xba\x9b\xb3\x25\x0b\xa5\x9e\xb4\x74\xc6\x66\xdb\x3d\x72\x4c\xdd\x59\x65\xed\xa7\x6c\xa3\x3d\x18\x4a\x7b\x66\xb7\x95\xca\xf6\x36\xa8\x4f\xae\x66\x3b\x50\xea\xe5\x1d\xec\x07\x4a\xfd\xae\x60\x43\x18\xee\x67\x75\x3b\xc2\x70\x77\x8a\xbb\xdb\x82\x93\xc4\x60\x53\xb5\x7d\xab\x3f\xd9\x22\xc5\x69\x5d\xf9\xa3\xd4\xe7\xd8\x4e\xa9\x04\x84\xc7\x6a\xf1\x7c\xcb\xfb\x54\x59\x99\x2b\xd1\x68\xb9\x46\xbe\x04\x76\x67\x0c\xf3\x29\xd6\xdd\x21\x7e\x14\x8b\x4d\xb4\x64\x29\x03\xfa\x61\xac\x26\xd7\xce\x67\xeb\x1f\x73\x3a\xfb\x51\xf3\x35\xdb\x8c\x37\x03\xa4\x50\xdd\x4c\xfb\x7a\xe1\x42\xd0\x9c\xce\xb9\x0e\x78\x9e\xd6\x53\xb6\xcc\xc5\x9d\xfd\x78\x56\x7f\x1f\xb9\xaa\xd2\xd9\xea\x3c\xf7\x3e\xb2\x55\xd2\x99\xca\x4c\xbd\x2f\x31\xc7\x31\x58\x9d\xc2\xe3\x5d\x2a\x1d\x32\xdf\xb9\xdf\xc1\x63\xe8\x3b\xf4\xbd\x9c\xd5\xe6\x28\xd3\x4b\x99\x6b\x7a\x9f\x33\xd8\x69\xf1\xd9\xfb\x07\x10\xf3\xdd\x37\xdf\xf6\xec\xb2\x1a\xa4\x1f\x86\xf3\x8c\x39\x97\x18\x40\x66\xcc\xa4\x18\xd2\x3b\xec\x91\xcc\xd5\xcd\xba\xc6\xc1\xc1\xae\xde\xdb\x42\x38\xd8\xf9\x32\x33\xe1\x72\xd0\x13\x85\xf4\x38\xf8\x95\xe7\xe8\x7d\xad\x86\xe2\x3e\xe7\x98\x0e\xe5\x57\x19\xc3\x55\x66\x18\x11\x85\x70\xde\x9f\x2e\x93\x8d\x95\x83\x40\xa6\x58\x2c\xc5\x80\x94\xcc\x96\x73\x9c\x31\x84\x6d\x54\xec\x9d\xe3\x37\xdb\xab\x19\x3d\xd5\xbb\x7a\x07\xcb\xa7\x7a\xe7\x2b\x98\x3f\x15\x3a\x5b\xdd\x06\xaa\xd0\xa7\xa2\x21\x74\xa9\xb3\xc3\x78\xfb\xb9\x26\xd1\x1f\x70\xe4\x6d\x50\x5b\x38\xe4\x1a\xce\x7b\xcb\x38\xc5\xfb\x4c\x69\xc3\xc5\x9a\x96\x10\xce\x3b\x4c\xcc\x18\xc8\x55\x4c\xd7\xaa\x9d\x2c\x36\x5e\xaa\x76\xb4\xa2\xd5\x6d\x71\x97\x33\xb5\xbb\x55\xfb\x9d\xa8\xfa\x8d\xf6\xfd\xa3\x55\xb5\x51\x84\xe6\x1f\x9e\x14\xd6\xdc\xe8\xcd\xcc\xda\xc3\x59\xc7\x51\x6f\x51\xbf\xab\xf8\xd3\xcd\xc3\x60\x1d\x9d\x5c\x55\x96\x2e\x04\xf1\xfe\xf4\x58\xe5\xd8\xa0\x60\x6a\x5a\xae\xf3\x4f\xe8\x64\xd9\x99\x40\xa5\xa3\x99\x67\x86\xf7\xb0\xc9\x29\xc0\x9c\x77\xe6\x98\x2a\x76\x45\x77\xe3\xeb\x73\x92\xb8\xcf\x69\x6e\x86\xeb\xf5\x3b\xd7\x1b\x70\x05\x0c\x66\x1f\x1c\xfe\xd5\xdb\xe9\x0a\x36\xe1\xa9\x5d\xcc\x3d\xdb\x8c\xf5\xa3\xa8\xe8\x4b\xb8\x44\xb4\x60\x66\x5b\xbd\xd4\xfb\x58\x0f\x5b\x1e\xbf\x29\x87\xf1\x91\x3e\x56\xf7\x18\x59\xdc\xdf\x42\xa2\x8d\x77\xa0\xa4\xc8\xaf\xda\xcb\xa0\xda\xbe\xb8\xa7\x89\x6b\x7c\xa4\xbf\xae\x7c\x7f\xaf\x65\x32\xf1\x0c\x39\x0d\xda\xbb\x2d\x17\xa1\x21\xf7\xbd\x48\x34\xc7\x12\x3a\x03\xe4\x0f\x24\xd6\xea\x9a\xf8\x3b\x60\xb0\x3a\x85\x57\xba\xfa\x7f\xe7\x7e\x97\xc8\xa8\x1f\xa0\x99\xc8\x30\x98\x63\x48\x5e\x85\xc3\xa6\x77\x3c\x97\xb1\xa6\xf7\xb4\x88\x9f\x96\x75\x37\x8b\x8d\x16\x9b\xa1\x7e\x14\xf7\xac\x2e\xe9\x67\x3a\x38\x8c\x82\x7b\x37\x44\xe7\x32\xf1\x4c\xd7\x86\x69\xe0\x56\xd8\xbb\xde\xcd\x9f\x61\xbc\xbf\xf7\x3e\x3f\x8e\x63\xb0\xb6\x7f\xc0\x40\x8f\xef\x6b\x79\x1e\xe8\x78\x8e\x55\x72\xc4\xf6\xa0\x50\xef\x1d\x48\x38\xc3\x9e\x28\xbf\x4e\x99\x6a\x34\x1c\x87\x34\xc5\x32\x38\x00\x4d\xc9\xfc\x37\xfb\x9a\x48\xde\x50\xc5\x90\x37\xe9\xaa\x48\x6a\xb3\x53\x9a\xa0\x21\x88\x42\x8b\xdc\x62\xa8\x72\xef\x98\xf9\xa0\x79\x43\xda\x6c\x38\xcb\x5a\x73\x16\xaa\xc9\x50\x58\xfd\x66\xbd\x29\x15\x41\x5d\x67\x5a\x45\x90\x57\x9c\x5a\x0e\xfc\xc2\xe9\x9d\xa3\x3a\xca\x21\x4c\x9f\x66\xb1\xdd\x79\xb1\xdf\xcf\xc4\xfe\xde\xc1\xf9\x67\x22\x06\x2b\x78\x00\xa9\xf6\x38\xe7\xf4\xb6\x4a\xc7\x8a\x26\xfd\x55\x6e\x4f\xdf\xe1\xb5\x8c\x22\x48\x35\x63\xfc\xf8\x7c\xaf\x67\xda\x5e\x1e\xd3\x49\x1d\xf0\x8a\xe6\xb3\x1f\x17\xa6\x48\x01\x81\x85\x47\xb1\x55\x43\x15\x4d\xea\x63\x81\x0f\xc4\xa4\x7e\x96\x7a\xf0\xa9\x75\xb6\xe2\x41\x62\x28\x84\xd0\x3b\x3c\x3e\x53\x02\xb9\xde\xf1\x62\x59\x64\xa2\x49\x40\x57\x38\x74\xcc\x89\x4e\xb4\xc6\x9b\x3d\x25\x18\x0b\x4e\x25\xab\x5d\x81\xad\x7a\xcb\xb5\x6a\xe4\xa4\xf9\x7d\x4c\x73\x6a\x98\xdf\xcf\x8c\xe8\x49\x33\x3a\x5b\xa6\xdc\xac\x6d\xaa\x78\x87\xbb\xca\xc5\x61\x92\xc6\xe1\x2e\xf3\x37\x98\xe7\x46\x3d\x02\x6c\xed\x89\x59\x65\x88\xeb\x4c\xa8\x10\x98\x92\x42\x3c\x55\x1b\x9b\xa2\xca\xce\x85\xbd\x92\xe1\x78\x6e\xf7\xaa\x0a\xf5\x5c\xf8\x93\xf4\xea\xf5\x3a\x59\x49\xcf\x9e\x8b\xd0\x74\x1b\xe3\xea\x3d\x0d\xef\xda\xef\xda\x9d\x78\x6f\x5f\xb9\xcb\x1f\xb0\x44\x46\xcf\x4e\x33\x2c\x12\x73\x8f\x50\x0b\xba\x9a\x73\x92\x5a\xd0\xdd\xec\x03\xd5\x82\x3e\x97\x99\x5e\xe6\x74\x3c\xe9\x40\x37\xd7\x72\x35\xab\xe5\x94\xb3\xd8\x74\xf0\xea\x47\xb2\x05\xb0\x95\x4e\x66\x73\xe0\x0f\x1f\xd0\x66\x40\x5c\x4f\x32\x0c\x1f\xd7\x96\xda\x91\x26\x9c\x8f\xd6\xea\x4a\xf1\x98\xb4\x56\x77\x53\x4e\x4b\x6b\xf5\x39\xd9\xcd\x7c\x71\xc7\x63\xa7\xb5\x77\xb2\x37\x2e\x05\x3b\x72\xd0\x9a\x0a\x7e\xec\x30\xd2\x50\x69\xee\x6e\xdb\x03\xb0\x92\x96\xde\x83\x3b\x67\x6f\xee\x01\x99\xbd\xe3\x2a\x40\x5a\x89\x81\x7a\x3d\xcd\xd4\x5b\xe7\xc1\x11\x2b\xa4\xea\xb0\x56\x1d\xe2\x12\xae\x79\xa7\xe5\xcd\x4b\x15\xe6\xf7\x14\x5d\xa2\xd1\x96\x95\x35\x84\x5e\x0b\xa5\x7d\xbf\x6d\x35\xbc\x9b\x37\xf5\x06\x37\x56\xb1\x1e\x37\x61\xbb\x1c\x06\x30\xff\x42\x78\x18\xae\xe2\xe6\x3a\x0c\x64\xca\x96\x39\x15\xd2\xfc\xcb\xd9\xe1\x9e\x26\x6f\xb9\xb3\xc0\x2d\x99\xa1\xb9\xca\xbe\x6a\x07\x93\x2a\x0f\x6f\xbc\x75\xe9\xcc\x6d\xb2\xdb\x7c\x9d\x4d\xb2\x0b\x75\xc6\x16\xd9\x05\x31\x77\x83\x1c\x87\xb3\x8e\x00\xee\xf6\x33\x6f\x73\x9c\x05\x45\xb8\x35\x2a\x43\x5a\x71\x70\xf3\xf9\xe4\x7d\x36\xc5\x06\xfc\x94\x55\xc8\x2d\xb7\xfa\x97\xf2\x86\xd8\xad\xaf\xb2\x1d\x36\x6d\x06\x37\xc3\xba\xd6\xd0\x56\x28\xdc\xeb\xd5\x37\xc2\xc1\xe6\xb3\xb7\xc1\x41\xa8\x6a\x9b\xe0\x20\x88\x09\x5b\xe0\x44\x38\xb3\xc5\xfe\x60\x3f\x53\xb7\xbf\x39\xc0\xe6\xcf\xcb\x6a\x5b\x9f\x18\xfc\xc8\xe1\x57\x5d\x59\xbd\x1c\xa2\xe2\x39\x39\xea\x90\x3c\x5d\x9a\x8b\xbc\xc9\x43\x4e\x12\xa1\x0a\xb3\x91\x6b\xd3\xd2\x96\xe1\x01\x0f\x66\xeb\x50\x88\xcf\xb7\x34\x8e\x4b\x0f\xc4\x00\x4f\x4d\xbe\x95\xd7\x66\x1a\xfb\xdb\x96\xed\x24\x73\x5b\x11\xfc\xe2\xe6\xcd\x65\x32\xd4\xcb\x15\x17\xf9\xed\xe2\x64\x6d\x45\x0e\x6a\x58\x45\x91\xb7\x53\xd0\x4b\x66\xb8\xf5\x09\x95\x84\x85\x1e\xb6\x73\x9c\x62\xdf\xc5\x3e\xa5\xae\x26\xab\x0a\x88\x61\xe9\x60\xfe\x97\xe4\x90\x67\x45\x15\x1d\xab\xef\xf2\x69\x33\x9a\x1d\x88\x3b\x4c\x33\xfa\x40\x93\x64\xf9\x29\x45\x67\x25\x48\x77\x84\x2c\x69\xd4\x50\x65\xbb\x8d\x9e\x2a\x54\x70\x5d\xc8\x6b\xb5\x7d\x4b\xeb\x74\x32\x3f\xdf\xee\xb2\x63\x85\x8e\xb5\x48\xdc\x95\x5d\x41\x78\x75\x4b\x49\x53\x24\xcf\xfb\x6a\x6b\x38\xe8\xf0\x9d\x5d\xb0\xdb\xed\x23\x7a\xca\x0a\xc4\xac\xda\xfa\xd3\x65\x97\xa5\x59\xb1\x4d\x8e\x7b\x54\x24\xd5\x2d\xf9\x55\x3c\x3f\xfe\x44\xfa\xaa\xb2\x23\xd2\x9f\x8b\xe8\x4d\xf7\x4c\xf3\xaa\x15\xb5\x2a\xa9\xc2\xab\xa5\x29\xd6\x39\x08\x2a\x52\x8e\xb6\x98\xce\xcc\xd0\xb0\xa1\xfa\x31\x3b\xa2\x09\x23\x35\xf2\xa8\x2c\x93\xe3\x33\x4b\xe8\xd1\xd6\x7b\x14\xc5\xa8\xd0\xda\xb6\x71\xaf\xed\xac\xc7\xc0\x03\xb8\x4c\x80\xa7\x80\x9d\x92\x63\xd9\x00\x36\x03\xed\x87\x7a\x9f\x3e\xb7\x42\x24\x94\xc1\xc8\x71\xb9\x48\xd6\x0a\x42\xc7\xc9\x8b\xc5\x78\x8d\x8a\xe3\x5c\x16\x6a\xda\xae\xc4\x42\x03\xb8\xcc\x60\xa1\x01\xec\x94\x58\x68\x00\x1b\x05\x16\x12\xf5\x3e\x83\x85\x44\x48\x4c\x66\xa1\x3e\x2e\x62\x16\xca\x8a\xe8\xf8\x8c\xa6\xf3\xd0\xae\x48\xaa\x64\x17\xa5\xb3\x98\xa8\x6d\xbc\x12\x17\x0d\x61\x33\x83\x8d\x86\xf0\x53\xe2\xa3\x21\x7c\x14\x18\x49\xd8\xff\x0c\x4e\x12\xa2\x31\x99\x95\x04\xd8\x88\x79\xa9\x40\xf1\x74\x46\x42\x87\xbc\x7a\x9b\xc5\x45\xb4\xe5\x4a\x2c\x24\xc5\x63\x06\xff\x48\x31\x53\x62\x1e\x29\x26\x0a\x9c\xd3\xef\x79\x06\xdb\xf4\x11\x98\xcc\x33\x5d\x3c\x64\xfb\x97\xba\xae\x47\x21\xff\x5e\xa0\xf4\xe7\x03\x7a\x58\x38\xef\x0a\xd0\xc6\xa9\x2d\x6c\x3d\x95\x54\x02\x20\x62\x62\x3d\xa6\xa7\x46\x4e\x47\x79\xae\xbf\x24\xe8\xf5\x2e\x4e\x5e\xb4\xa7\xac\x38\x40\x07\xc6\x53\x92\x56\xa8\xd0\x1f\xa3\xe2\x4a\xfb\xbd\xc8\x52\xf4\x73\x11\xc5\x49\xf6\x5c\x64\xa7\xfc\x41\x4b\xa3\x47\x94\xde\xa1\xc3\xdd\x2e\x8b\xd1\x8d\x71\xc8\xe2\x28\xd5\xe3\x24\x4a\xb3\x67\x5a\x3b\xce\x76\xa7\x03\x3a\x56\x0f\x9a\x51\xbd\xe5\x48\xc7\x7a\xc8\x6b\x56\xc4\x93\x1a\x95\x08\x0f\x7d\x52\x93\x0a\x9d\x55\x1b\x2c\x1b\x16\x26\x95\xf6\x78\xaa\xaa\xec\xf8\x49\xad\x45\xae\x91\x4a\x59\x12\xef\xe8\xd0\xba\x3d\x92\x21\x64\xcf\xcf\x29\x6a\x3e\x1e\xa2\xe4\x28\x23\x22\x53\xd6\xa1\x15\x53\xc2\x91\x04\xbe\x8b\x70\x87\x02\x82\xe2\xe5\x31\x2b\x62\x54\x6c\xad\xfc\xac\x95\x59\x9a\xc4\xe2\xe3\xd5\x63\x11\x1d\x63\xdd\xc7\x6c\x74\xfb\x18\xed\xbe\x62\x22\x1e\x63\x5d\xbe\x3c\x4d\x0f\xaa\x02\xf0\x81\x6a\x36\x40\xe4\x8f\x92\xfa\x23\x5e\x91\xb7\x79\x14\xc7\xc9\xf1\x79\x6b\x6a\x6e\x7e\xfe\xfe\x7b\x1c\x55\x91\x5e\x25\x79\xfe\xa6\x17\x59\x56\x3d\x5c\x0e\xd1\x99\x18\xd7\xb6\xbb\x28\xdd\xfd\x64\x99\xe6\xcb\xab\xa6\x6b\x96\x99\x9f\xaf\xbe\x1b\xa4\xe6\x63\x76\xbe\x64\xa7\x0a\x43\xdd\x9a\xb7\x55\x11\x1d\xcb\x04\x2f\x2f\x3d\x2f\xb2\x1c\x15\xd5\xdb\x16\xbe\x61\x1a\xdd\xbc\x24\x65\xf2\x98\xa4\x49\xf5\x76\x93\xe5\xd1\x2e\xa9\xde\x14\x47\x6a\x32\x23\xc5\x1c\x76\x2a\xe9\x21\x38\x46\xbb\xac\xfe\xa4\x5b\xa6\x79\x45\x47\x11\x1d\x93\x43\x84\xd1\xf8\xf9\x29\x8a\xd1\x03\xf9\x58\x56\x51\x85\x7e\xde\x27\x71\x8c\x8e\x0f\x2c\xfa\x04\x97\xad\x49\x1b\x27\x47\x54\x54\x49\xc4\xb5\x02\xd4\x53\xc4\x36\x63\xc6\x5a\x25\x87\xe4\xf8\xac\x3f\x9d\x8e\x20\x5a\xb6\xbb\xd3\x63\xb2\xd3\x1f\xd1\xb7\x04\x15\x3f\x19\x9e\x7b\x63\x19\xde\x8d\xe1\x04\x37\x96\x61\x59\x2c\xe9\x34\xfa\x67\x54\x14\xd9\xeb\x45\xd7\xcb\xe4\x1b\xda\x7a\xf9\x59\x56\x85\x11\x44\xc4\x16\xf0\xe1\xc3\x6d\x9e\x11\x2c\xb6\xd1\x63\x99\xa5\xa7\x0a\xd1\x61\xe4\x69\xb4\x43\x78\xad\xfc\xf7\x9f\xab\x2c\x67\x30\xbf\xe3\x3a\x7d\xcc\xaa\x2a\x3b\x34\x83\x57\x6b\xd5\xe0\x41\xac\x30\xb7\x14\x08\xb0\x89\x99\x9f\x35\x5d\x23\xf3\x83\xc7\x73\x75\x75\xdb\xb0\x80\x9e\x15\xc9\x73\x72\xdc\xee\xd0\xb1\x42\x85\x56\x65\x79\xbf\x5b\x02\x4b\x8a\x6f\x95\xe5\x22\x64\x87\x5b\x75\xf1\xc5\x40\xa6\x22\x4b\x7a\xe8\xf7\x8c\x41\x4a\xb1\x25\xa6\x18\x01\xbe\x43\xad\x1a\x6c\x49\xeb\xa9\x88\x62\xd0\xfd\x0e\x01\x96\x14\x4f\x42\x97\x89\xad\x78\xaa\x4e\x45\x13\x40\xd7\x52\x67\x8f\x0e\xe8\x8f\x9f\xcb\xff\x75\x8a\x0a\xa4\x63\x75\xe7\x41\xb8\x34\xac\x20\x3f\xdf\x76\x7b\xfb\x89\xe9\xee\x1f\x9a\x7d\x75\xc5\x18\x05\xd5\xc0\x37\x03\x99\x20\x8e\x58\xc1\x98\x9f\xb5\x4f\xfc\xa0\xf7\xa8\x9d\x3a\x41\x31\xdd\x12\x58\x21\x46\xc5\x1b\x16\x62\xe3\x42\xdd\x01\x6d\x43\x75\x70\xc4\x9a\xd8\x93\x13\x84\x90\x56\x2b\xfa\xfb\x80\x84\x32\xa1\x16\x19\x3a\xde\x08\x26\xb6\xd5\x8c\xe4\x88\x79\x01\xc5\x7a\x04\xb2\x92\xee\x8e\x3a\x81\x09\x56\xdd\x5a\xc4\x9b\x2a\xf3\x28\xe9\x45\x38\xb9\xd2\x9e\x04\x9b\x89\xcd\xcc\x03\x6d\x01\x0c\xab\xd8\x04\xa4\xd4\x5a\xf8\x93\xf9\x1b\x96\xb1\x13\x7a\xa0\xa2\x12\x24\xe9\xd4\x39\xa4\x6d\xa5\xd3\x58\x65\xf9\x0a\x73\xd8\xf4\x32\x30\x8d\xdd\x9e\xc6\x27\x64\xd2\x04\xd6\xdb\xe2\x8a\xf8\x93\x69\x1c\xd8\x7a\x98\x5d\x9f\xeb\xab\xca\xb2\xb4\x4a\x5a\xb6\xa0\x9b\xff\xa5\xd6\xdf\x2c\x3b\x3f\xdf\xb6\xca\x9a\x6d\xbb\xf9\xb9\x55\x0b\x0a\x94\x46\x55\xf2\x82\x6e\xbf\xe9\xc9\x31\x46\xe7\xad\x35\xd6\x8f\x9a\x18\xdc\x80\x18\x1c\x11\x93\xaa\x43\xea\x2a\x40\x03\x70\x37\x5d\xf1\xcb\x90\x50\xbb\xd6\x6c\x5e\xf8\x76\x0b\x27\x21\xd4\xe5\x39\x82\x14\x45\x08\x6f\x6b\x79\x54\xa0\x63\xd5\x30\x4d\x59\xbd\xa5\x68\x0b\x4a\xfe\x58\x3f\xc2\x75\x2f\xde\x5d\x29\x70\x32\x62\x76\x3c\xec\xdf\x26\xcb\xe8\xf5\x6d\x4e\x52\x25\x51\x3a\x19\x13\xca\xbd\x0a\xc8\x98\x9a\x04\x9d\x8e\xe4\x5c\x86\x0f\xa8\x4a\x13\x49\x33\x8a\x19\x88\x8e\x65\x78\x11\xdd\x68\xc1\x9c\x09\xe7\x8f\x08\xa9\x0e\x66\xcd\x4d\x36\x5e\xf7\xed\x6d\xe4\x31\xab\x92\x1d\x32\xa2\x34\xcd\x5e\x6f\x46\x2a\xc5\xe8\xf8\x36\x56\x27\x47\xc5\x21\x01\x2b\x4d\x79\x53\x7f\x43\x45\x91\x15\xcd\xaf\x7d\xf2\xbc\x4f\x31\x86\xcd\x17\xbc\x11\x34\x3f\xf2\x2c\x4d\x76\x6f\xfa\x21\x3a\x46\xcf\x40\xa5\xa6\xa4\x3c\xed\x76\xa8\x6c\xc1\x52\x33\xf8\x45\xe9\x54\x37\xa6\x2f\xc9\x85\x45\x18\x86\x8c\x0d\x6b\x88\x7e\xda\x53\x96\x61\xb5\xf4\x5a\x85\x90\xca\x95\x19\x8a\x32\x6d\x58\xd2\xf6\x3f\x37\x34\xee\x17\x61\x62\xf7\xbf\xf6\xa8\xde\xaf\x42\xc9\xdf\x2f\xa8\xaf\x23\xea\x82\xcb\x53\x76\xac\xf4\x57\x22\x41\x29\x35\xdf\xf2\x8c\x7e\xd1\x1f\xb3\x34\x56\xa3\x67\xb7\x6b\x85\x4d\x05\xa1\xa3\x92\x55\xa3\x7f\xb7\x36\x38\xb1\xd4\x9e\xd7\x27\x46\x5d\x30\x74\x87\x17\xa8\xf4\x23\x5a\x37\x78\xaa\x2e\x43\xe3\x00\xb3\xa1\xa5\x64\xef\x81\xaa\xa6\x05\x98\x48\x17\x62\x8f\x0b\x14\x4f\x33\x6a\x66\x24\x67\x22\x1d\xfa\x54\x07\xde\x1d\x26\x39\x8c\x73\x63\xb2\xe3\xec\xc8\x09\x61\xb3\x37\x84\xe7\x59\x91\x96\xb4\x32\x0c\xbb\xdb\xcb\x08\x7a\xb4\xa9\x12\x4b\x10\x71\xcb\x2e\xf4\xd1\xe9\x28\x50\xac\x30\x1b\xfd\xbb\x9c\x21\x39\xd5\x9b\x05\x22\x73\x86\xc7\xd9\xef\x62\x8f\xa2\xb4\xda\x13\x07\x2a\xda\x0b\xbd\x0a\x37\xb8\xa2\xec\x54\xe5\xa7\xfe\xfd\xc8\xd0\xf2\x6c\x2b\xf3\xab\x73\xfa\x05\xfb\x38\x53\xf6\xfa\xc2\x3c\xa9\x6e\xdc\xef\x2e\xbd\x1e\xb8\xde\x12\x1c\x86\x4d\xf9\xc9\x13\x31\xfc\x8c\xcb\xe1\x01\x3e\xe8\x61\x0a\x6c\x30\xf5\xd2\x50\x41\xca\x2a\x6d\x9e\x6a\x55\xfb\xc2\x44\xc8\xc4\x82\x6d\xb3\x53\xc0\x08\x9e\x81\x2d\xb3\x53\x81\xdf\x23\x7a\xdb\x25\xf9\x5c\xfb\xa2\xd1\xc3\xa2\x61\x15\xe8\x30\x85\x5a\x77\x6a\xca\x86\x6a\xe5\x3e\xc5\xee\xc4\x0b\xff\x4e\xa4\x6c\xf4\x8a\x18\xba\xdd\x0d\x29\x1b\xbd\x2a\x3c\xed\xee\xfa\xca\x46\x5d\xd0\xa1\x9f\xa9\x46\xbb\x5c\x89\x68\xa3\xb5\x58\x6a\xe5\x1d\x32\xe5\x02\xfa\xe4\x3c\x61\xf2\x01\x8a\xe4\x3d\x52\xe4\x3d\x1a\xe4\x5d\xe6\x71\x0a\x74\xb8\x85\xdb\x19\x7a\x7e\xb5\x0c\xf7\x3f\xb2\xe6\xdf\x37\x50\xd4\xf6\x0c\x23\xc0\xa4\xa0\xbf\xf4\xd6\xdc\x0b\xdf\xb5\x4f\x9a\x65\xb8\x05\x3a\xd4\xee\x8e\x5b\x0b\x1d\x34\x35\xd6\x51\xdd\x98\x78\x91\x39\x7f\x7b\xe1\xa4\x6c\x9f\x92\x83\xdb\xd1\xf8\xa6\x22\xdb\x31\xbb\x94\x6e\xc4\x7c\xdf\x02\x5c\x65\x39\xa5\x36\x50\xd9\xf0\xf1\x9f\x70\x02\x20\xe6\x76\x90\x67\x14\xda\xae\x68\xef\xc1\xf5\x57\xf4\xf8\x35\xa9\xf4\x43\x54\x7e\xd5\x93\x43\xf4\x8c\xc0\x5d\xf2\xb6\xfb\xbb\xa7\xf2\x30\x56\x93\xef\x35\x7e\xfc\x3d\x2f\x95\xac\x53\xd4\xb8\x41\x7d\x89\xdd\x64\xc5\x07\x45\x5e\xad\x1b\x40\x8a\x78\xea\xc2\x25\xf3\xd5\xa5\xa5\x12\x73\x4a\xc2\xbf\xa1\xab\xdb\xe1\x63\x54\x89\x0e\x09\x3d\x4a\x0d\xf4\xa7\xae\x3d\xdc\x3e\xa5\x59\x54\x6d\xf1\x24\xd6\x4e\xc0\x78\x6a\x89\x5d\x90\xf1\x09\x76\xf2\xf3\x77\xae\xa7\xbb\x38\x79\x61\xdd\x1f\xd4\x6f\x40\xb4\x7f\x84\xe6\xc7\xab\xef\x83\x97\xf4\x97\xc7\xec\xac\x97\xfb\x28\xce\x5e\xb9\xb3\x3b\x4a\xd1\x0b\x5c\xcf\x02\xd1\x27\x5c\x02\x0f\x77\x77\x47\x0e\xb1\xc3\x8e\x03\x77\xf5\x8e\xce\x56\xd2\x1f\xb3\xf8\x6d\xf0\x8c\xc1\x1e\x82\xa4\x2d\x19\xfb\x1f\x67\x67\x22\x66\x20\x2b\x3f\xf3\x46\x9e\xe6\x73\x0d\x32\x8d\xde\x50\x71\xa1\xe2\xdf\x1c\x1e\xac\x56\x45\x8f\x29\xaa\x2b\x5b\x9e\x99\x9f\x59\x67\xf8\xe1\xa6\x80\xf4\x21\x3a\x37\x5b\x8d\x69\x76\x39\x83\xc2\x3f\x24\xc7\xa6\x92\x1b\x76\x2b\xdd\x0c\x33\x53\x23\x70\x9e\x92\x33\x8a\x41\xda\x98\xb7\xf4\x4a\xb4\xbe\x33\x36\x6f\xe9\xdd\x23\x07\xea\x52\x1b\xab\x3d\xd3\xbc\x65\x9d\xf3\x6f\xa3\x34\x79\x3e\xea\x49\x85\x0e\x25\xbd\x49\xbc\xfd\x9f\xa7\xb2\x4a\x9e\x1a\xbb\x78\xfd\xb9\x1d\xdb\xc7\xef\xbf\x47\x45\x12\xe9\xe4\xee\xff\xe7\xaa\x38\xa1\x07\xbe\x3b\xde\xe9\x7b\x90\xa7\xe9\xae\x13\x9d\xaa\xac\x31\xa9\xdb\x8c\xf9\x3d\xf0\x3c\x91\xf9\x7d\x84\x75\xaf\x2f\xdc\x7e\x67\x01\x0c\xfa\xa5\xa0\x53\xdc\x9b\xa2\x2e\x90\x38\x79\xb9\x64\x2f\xa8\x78\xc2\x82\xe1\x8d\xa0\xc8\xcc\x72\x60\xbe\xec\x9b\x4d\xd6\x36\xf3\xb3\x66\xf7\x04\xc2\x92\x35\xc5\x5b\x3d\x2d\x66\x04\x78\xe6\xe1\x96\xa2\xfe\x40\x27\xdf\xea\xb3\x9d\x04\xf4\x54\x7a\xd6\x4e\x5c\xc4\x1d\xc4\xb2\xde\xea\xf5\xba\x4f\x62\xf4\x70\xd9\x9d\x8a\x32\x2b\xb6\x79\x96\x00\xab\x8c\xdd\xc7\xae\x6d\x48\x51\x73\x66\xa1\x52\x1d\xa6\xff\xb6\x42\xe7\x0a\xb8\xed\x58\x6d\xf5\xd0\xc4\x0b\x96\x5e\x82\xc0\x75\x0f\x9d\x62\xf8\x9b\xd9\x01\x74\x98\xe0\xbe\xeb\x1b\x73\x8b\xc6\x38\x26\xa9\x39\x13\xf5\xe1\x11\xe7\xa7\x1e\x51\xd5\xa9\x36\x72\xf4\xa6\x03\xc5\x2b\xb9\xe1\x5f\xb2\x1c\x3a\x98\xe8\xe5\xae\xc8\xd2\x54\x7f\x49\x8a\xea\x14\xa5\x12\xa7\x3f\x11\x33\x0d\x03\xaa\xc5\xac\x47\xe4\x64\xeb\xce\xa7\xb8\x5f\x5a\xcc\x9c\x53\xd6\x9f\x7d\xf7\x4f\x1c\xba\x6a\x32\xb8\xf9\x59\x0b\x78\x9c\x34\xfa\x77\xa9\x19\x79\x96\x63\x79\xa0\x1f\xd0\xf1\x74\xf7\x7b\xf5\x96\xa3\x9f\xc1\x50\xf3\x98\x9d\x1f\xb6\xf0\x17\x8a\x3f\x81\x42\x43\x1d\xd8\x6e\x38\x38\x65\x56\x54\x33\x80\x8c\x59\x52\xd4\x38\xc3\x22\xbc\xd6\xe2\xc3\xe2\x06\xa2\x8e\x7f\xb4\xd5\x45\x9c\x7b\x28\x86\x45\x21\x5f\xa5\x1e\x15\xf1\xf4\x13\x9c\x46\x6a\xd9\xee\x88\xdb\x89\xa8\xc1\x53\x81\x17\xe8\x86\x57\xa0\x43\xbb\x43\x77\x85\x7b\xa7\x58\xde\x27\x95\x74\xf8\x4f\xbc\x09\x3e\x5c\xba\xbb\xdf\x31\x2b\x0e\x51\xca\x80\xfa\xf7\x03\x8a\x93\x48\xfb\xa9\xdd\xa2\x2c\x67\x13\xe6\xe7\xab\xcb\x10\x71\x31\x51\xf5\xd7\x22\xca\xb7\xf8\x9f\x0e\x79\x51\x54\xec\xf6\x03\x34\x73\xd9\x15\x2b\x38\xe7\x7e\x17\x20\x15\x86\x5e\x07\xa7\x86\x91\xfb\x5c\xc9\x6f\xd8\xdf\xf7\xd5\x21\x25\xa2\xbe\xc8\x4e\x15\xfa\xef\x3f\x7f\x88\x77\x46\xb4\x4b\x4b\x03\xf0\xf9\xf0\xa0\xb1\x6b\x96\x7b\xec\xf6\xdd\x78\x2a\x10\x02\xe9\x4a\xaa\x5c\xd4\x9c\x73\xc6\x6e\xac\x26\x3b\x36\x8e\xad\x78\x79\xb9\x4b\x57\x0a\x3f\x8e\xed\x1e\xf3\xcc\x8d\xf8\xb3\x76\x3d\xae\xed\x8a\xc1\x6a\xd7\x3d\x90\xff\x23\x39\x82\xd5\x17\xee\x46\xf7\x59\x8a\xf7\x6b\xba\x17\xf0\x2f\x0a\xeb\x5f\x5c\xd7\xb2\x79\x20\x50\x9b\xa3\x66\x94\xe7\x28\x2a\xa2\xe3\xae\x3e\x5a\x92\x59\x22\x0a\x5b\xb7\x29\xac\x43\xb9\xe3\x13\xde\xf5\x3c\xf3\x23\xd1\x3c\xf1\x1f\x94\x5b\xfd\x76\x23\x85\xbf\x59\x09\xa2\x07\x9d\x9d\x95\x48\xdd\x0e\x71\xb8\xa5\x3a\xe5\x02\x46\x5e\x1e\xb0\x4c\x52\xbb\x6c\x89\x36\x6c\x19\x21\xe7\x48\x70\x25\xcc\x6d\x21\x83\x5c\xf4\x5a\xdf\xb4\x0d\xbb\x40\x07\x5e\x7d\xef\xcb\x8c\x3d\x7b\x48\x26\x3f\xd8\x0d\xbf\x07\xff\x0e\x10\x95\x30\x21\x11\x5b\xcf\x45\xf6\xba\xb5\x24\x1c\xd5\x6f\x09\x00\x2f\xec\x71\x41\x02\xbc\xde\x74\x83\xfc\x0c\x5e\xd0\xbc\x8d\x8a\x1f\x01\x3e\x38\xd1\x51\xd8\xc6\x06\xd3\x61\x60\x4c\x14\x85\xd6\x41\x7a\x4b\x8e\x2a\x7d\xe7\xde\xd6\x8b\xe7\x96\x75\x2e\xa0\xbd\x7e\x97\xf9\x65\x29\x39\x3d\x2d\xf4\x47\x9c\x22\xf3\x18\xea\x84\xa0\x52\x75\xf0\x86\x2d\xe8\x9d\x3d\xbd\xa8\x88\x8a\xd1\x53\x74\x4a\xab\x56\xb1\x04\xa3\x57\x07\x1f\x2d\x1f\x78\x28\x43\x9d\x0c\xba\x43\x20\xef\x63\xb6\x4f\xd9\xee\x54\xde\xc8\x4a\x41\x1a\xab\x2d\x37\xaa\x10\x61\x40\x3d\xf4\xe8\x29\x69\xf4\x56\x75\xa0\xb1\xb2\x13\x2c\xa3\xc8\x71\xc6\x25\xaf\x9e\x47\xf1\x64\x4e\xb8\xe3\x8e\xa3\xe3\x33\x2a\xb2\x53\x39\x69\x9c\x05\x8a\xeb\x61\x8e\x01\x50\x1e\x2b\x73\x09\x26\x85\xa9\x34\x3c\xb8\xdc\xb5\x38\x0b\xe3\x94\xb1\xd1\x0b\xbf\x8d\xa9\x00\x41\x79\x70\x9c\x05\xb1\x3f\x95\x92\x5e\x94\x86\xcb\xdf\xb2\x0b\x78\xdf\xa0\x7f\x0e\x79\x02\xd4\x84\xa7\x87\x7a\xb0\x18\xf6\x04\x5c\x2b\x49\xec\x8d\x48\x92\x48\xae\xea\x3c\xd1\x22\xef\xd0\xaf\x6f\x54\xed\x30\x3a\x3f\xa6\x0b\x09\xc7\x00\x36\x40\x50\x51\xb8\x8d\x8f\x9a\x8d\x4c\xf6\xe4\x26\x91\x19\x17\x32\x1e\x0f\x6f\x14\x62\xb1\x71\x7d\x61\x37\x93\x2a\x7a\xd4\x8f\xd1\x8b\xc6\xa1\x00\x71\xa3\x78\x3c\xe8\xe3\x1f\x99\x19\x4d\x7e\x21\x63\x36\xd8\xb7\x9d\x61\xe1\x05\x8f\xe7\xe2\xa4\x8c\x1e\x53\x14\x5f\x75\xce\xff\x4d\xd5\x8b\xd2\xc1\xf7\xbb\x41\x1e\xed\x60\x58\xcc\x88\x98\xa8\x1a\x4d\xbf\xd7\xe3\x10\x1d\x80\xd8\x41\x60\x54\xc3\x4e\x51\x54\x6c\x1f\xb3\x6a\x7f\x5b\x5b\xd1\x88\x0d\x2d\x45\x15\x3e\x3b\x94\x79\xb4\x83\xfb\x29\x93\x86\xd6\x60\x30\x7a\xdd\x27\x15\x82\x1a\x98\xe8\xf8\xc8\x24\x7c\x0c\xd5\x5d\x37\x37\x2c\x6a\xb7\x63\x6e\xa6\x23\x6f\x35\x87\x5f\x79\x61\x8d\x56\xb3\xc0\x1e\xd4\x62\x4e\x9e\x27\x92\x33\x30\x8a\xaf\xee\xb6\x98\xcd\x5e\xd0\xcd\x50\x15\xba\xa1\x0d\xd4\x98\xbe\xa9\xad\xd1\x9d\xa2\xf5\x5e\xc0\x66\x0d\x30\x2d\x1a\x73\xf5\x65\x8f\xe8\x43\x0c\x2b\x38\x75\x34\x06\xef\xda\xc0\xcf\x3d\x16\x10\x78\x34\x53\xa4\x88\x78\xbb\x31\xaf\xb4\x6b\xcd\xca\xcf\xcc\x8b\x1a\x72\x9d\x96\x46\x15\xfa\x49\xd4\x0e\x4b\xae\xb6\xd9\x8d\x79\x35\xf2\x3e\x0f\xfa\xf9\x4e\x4f\xf7\xf8\xa4\x0c\x8f\xdf\x4e\xa5\xda\x02\x16\xfa\xfc\x8e\x1b\xb0\xc0\xf0\xa1\x99\x1a\xf9\x2f\xfc\x2b\x40\xa1\x99\xf6\x02\x1d\xb2\x17\xa4\x47\x69\x7a\x45\xcf\x2a\x0a\x2f\x99\x7d\x76\x87\xa3\x26\xcf\x4e\xb0\x1c\x5b\xd2\x6f\x5c\xd5\x13\xda\x3c\xb9\xdb\x7e\xe8\x18\x6f\x88\x49\xa3\xdf\xf8\x0e\x42\xca\x30\xdb\x88\xb8\x03\x81\xec\x10\x53\xe0\x22\x10\xe4\x03\xb4\x62\x43\x0a\x5d\x3a\xa1\x81\xf0\x79\x44\x64\x97\x51\xa3\xbc\xa2\x89\x64\xbe\x45\xc3\xe7\x58\xc4\xd4\xa4\xd3\x23\x62\x8b\x38\xed\x58\x06\xa7\x70\x53\xd7\x88\xdd\xe0\xf0\xdd\xd8\xa1\xa2\x4a\x9e\x92\x5d\x54\xa1\x6e\xbc\xa8\xb6\x84\x82\x31\xda\xa3\x5c\x7d\xb0\x7c\x4a\xaa\xda\x46\xc7\xdd\x8b\xb8\x5d\x5e\xc4\x1f\xba\x5b\x29\xdb\x03\x79\x54\xac\x6e\x5a\x68\x6e\x84\xc0\x9a\xf7\x58\xa0\xe8\xab\xfe\x9a\x15\x31\x73\x67\x85\x95\xa8\x0e\x6e\x5b\x53\xb3\xec\xbc\x33\xb8\x7d\x63\x1d\x73\xf2\xb3\x16\x47\xe5\x1e\xc5\x53\x8e\x7d\x54\x6b\xf1\xcc\x66\xcc\xdb\x30\x3f\x6b\x78\x93\xd5\x88\x89\xb6\x89\x18\x00\xd7\x37\xbb\xa4\xd8\xa5\xe8\xf2\x94\xa4\xa9\xf8\xbd\x34\xf1\xf9\x6c\x9e\xfb\x6e\x49\xbb\xf6\xfd\xaf\x66\x19\x5e\xa9\x25\xc7\xa7\xe4\x98\x54\x48\x43\x51\x89\xf4\xe4\xa8\x67\xa7\xaa\xff\x2e\xd1\x33\x3f\x6a\xa0\x73\xf1\x38\x3c\x6f\x8f\xd5\x5e\x6f\xd7\xd2\x4f\xf6\x55\x8d\x57\xd3\x8d\x1e\x23\xcc\x0d\x86\x5d\x8e\xb6\x76\xe4\xad\x9d\xf1\xd6\xae\xbc\xb5\x3b\xde\xda\x93\xb7\xf6\xca\xef\xff\xfe\x15\xbd\x3d\x15\xd1\x01\x95\x5a\x97\x8c\x17\xf3\xe3\x0d\xd6\x35\x2f\xed\xd6\x53\xee\xa2\x14\x39\xff\xdb\x4f\xd6\x8d\x75\x63\x5d\x7d\x77\x1c\x51\xa1\x79\x63\xe2\xc2\x0e\x62\x97\xe5\x17\xba\x02\xc3\x08\x63\x71\x26\x1b\x2a\x23\xef\xb9\x38\x71\x55\x76\xc8\x9e\x8b\x28\xdf\xbf\xe9\xf0\x1f\xcd\x68\x39\x58\xc8\x6a\xed\x5a\x12\x35\x8e\xce\x49\x49\x9a\x81\xb2\x5d\x56\x45\xf6\x15\x0d\x58\x49\x48\x05\x1d\x2f\x9e\xa8\x28\xa2\xb7\xad\xab\xb9\x42\xa4\x60\xa1\x4d\x80\x2c\x02\x02\x02\xe4\x32\xd0\xd2\x25\xee\x23\x82\x51\x1f\xa2\x67\x7c\xe8\x22\xb2\x58\x04\x1b\xef\x41\xa5\x56\xa0\x5d\x25\xa4\x1a\xd7\xbe\x46\x9e\x51\xa5\x6a\x42\xd0\xc3\x0e\xe8\xa5\x03\x7d\x50\x2d\x4f\x3a\x3f\x84\xb8\x94\x45\x9c\xfc\x7c\xfb\xb6\xd5\x2d\x31\xd0\x2a\xd9\x7d\xd5\x30\xe4\x21\xc2\x48\x49\x0a\xad\x2b\x74\xae\x06\x5c\x80\xf0\x98\xc9\x8d\x6d\x74\xdc\xed\xb3\x62\x5b\x56\x51\x31\x14\x57\x2f\xa4\x47\xdd\xa4\xdc\xe1\x61\xbe\xe9\xbb\x3d\x84\x9c\x28\x50\x99\xa5\x2f\x78\x2f\x8d\x8a\xf8\x46\x50\x9e\x9d\x2a\x24\x2b\x2c\xf3\x34\x81\x83\x8b\xb8\x3c\x8f\xaa\x3d\x1b\xc5\x20\x3e\x15\x44\x88\x1a\x56\x79\x3b\x10\xdd\x00\x53\x2e\x2a\x7a\x5b\xd4\x18\xf8\x46\xe1\x24\x44\xbf\x55\x62\x6c\x97\x5d\x32\xf4\x98\x7f\xfb\x82\x76\x55\x56\xe8\xe8\xe9\x09\xf3\xc5\x11\x6e\x6b\xa3\x14\xe3\x48\x2a\xce\xa1\x23\x5b\xae\x45\x53\x29\xdd\x16\x0a\xdb\x8e\x4c\x04\x5f\xae\x45\x43\xa6\x46\x4c\x0f\x56\x98\x89\xa8\x5e\x1f\x99\x84\x65\x64\x19\x0d\x90\x7c\x8c\x15\x05\x80\xc9\xf8\x45\x05\xf5\xc8\xca\x69\x0f\xbd\xa6\xba\x24\x4c\xb8\x51\xbe\xa5\x0c\xab\xa3\x17\x74\xac\x4a\x7a\x81\x34\x9b\x61\xca\xda\xd3\xa4\xcc\xa3\xe3\x2c\xb6\x19\x83\xa0\xca\x3c\x1c\x9c\x4b\x67\x94\x51\x9a\x0e\x4d\xe9\x5d\xeb\xaa\x3d\x8c\xa4\xb0\x46\x17\x83\xbb\xeb\x0b\xc8\xbe\x56\x1f\x38\xe5\x39\x2a\x76\x51\x39\x44\x69\x0e\xff\xc6\xec\xa3\x40\x33\x79\x5d\x21\x69\xea\xf3\x1c\xd5\x17\x0c\x1b\x1d\x1a\xcd\x02\x7e\xd4\xf1\x60\x0c\xff\x5d\x05\xb2\x50\x36\xd2\xbe\xb5\x2e\x3f\x6b\x9c\x9d\x48\xa6\xd9\x74\x3b\xfc\x3d\x89\xaf\x7f\xfe\xb0\xfd\xf0\x00\xa7\x1d\xbc\xfc\xaf\xe8\xfa\xaf\xc7\x68\xad\x7a\x51\xed\xc9\x44\x47\x2b\x1e\xa9\x89\x95\x98\x70\xf6\x59\x51\x5d\x69\x71\xdc\x38\xad\xd5\xd7\x5e\x22\x6b\x1a\xe6\xa8\xa6\x1e\x4a\xd3\x24\x2f\x93\x72\xb8\xb3\x12\xb1\x76\xdd\xbb\xeb\xfe\x05\xdb\x70\x7b\xe3\x10\x55\xbb\xbd\x4e\x9a\x37\x4f\xda\xfa\x41\x78\x3e\x7f\x50\x82\xf3\xbf\x4e\xa8\x78\xcb\xa3\x22\x3a\x34\x6f\x23\xfa\xb0\xfe\x4f\x01\x2c\xaa\xb4\x77\xb6\xc1\x59\x5a\x1d\xeb\x4b\xdb\xe9\x46\xe0\xcf\xc1\x29\xea\x5d\xad\x1c\xa6\x47\x7f\x44\xd5\x2b\x12\x11\xb2\x7c\x79\xee\x1b\xc1\xd6\xdf\x57\x1a\xf3\xa6\x99\x9f\x35\xab\xbe\xca\x77\xec\x8f\x0a\xa2\x66\x4c\xbc\x28\x88\x94\xe6\xda\x18\xdc\x01\x96\x6d\x13\xaa\x3b\x41\x57\xd2\x4b\x03\x3d\x70\x0e\x0c\xf6\x30\x82\xd4\xaf\x88\xc4\x6e\x93\x62\x38\x56\xab\x41\x91\xab\x38\x88\x23\xc7\x63\x70\x7d\x1f\x27\x05\xa2\x81\xb4\xb2\xf4\x74\x38\x4a\x38\x2f\x02\xa9\xc5\xb9\xf9\x8e\x29\x76\x71\x3a\xac\xbc\x09\xcb\x79\xed\x2c\x4e\x2f\xcd\x55\x0e\xb1\xec\xcd\xd5\x20\xd4\x77\x0a\xde\x52\x67\x9b\xe2\x99\xec\x0a\x59\x22\x5f\xfb\xe6\x30\xf5\x96\x7d\xdb\xa7\xf6\x41\x78\xc9\x30\x08\xb4\xe6\xd6\x53\x7a\x61\x1d\x5a\x59\x5f\x1a\x09\x6f\x0a\x40\x68\x69\xc2\x39\xf6\x79\x63\xb4\xa0\x7b\xc0\x04\x1a\xf0\xbb\x46\xd3\x90\xdc\xa6\xd4\x4e\x0b\x5d\xa3\x9d\xe5\x0e\x2e\xaf\x5a\xb3\xe7\x80\x29\xb0\xeb\xa5\xbf\x3a\x1a\x9f\x3c\x96\x82\x12\x32\xf0\xd0\xd8\x13\xab\xc9\x6e\xfc\xf0\x25\x30\x3f\x6a\x41\xeb\xae\x47\x86\xe5\xf3\x4e\x4f\x56\xeb\x74\xec\x30\x4e\xc7\x12\x86\xe4\x7a\xcf\x86\xc7\x22\xba\xb8\x54\x80\x29\xb2\x75\x8b\xc3\xe7\xd3\xdb\xb0\x86\x93\x6f\x3e\x74\x6f\x00\x5a\x93\x38\x71\xf8\x22\x01\xf4\x97\xac\x5b\x81\x9f\xf1\x00\xb8\xf6\xfd\xd6\x30\xd8\x39\xd1\xca\x46\x4f\x5f\x4f\xa7\x34\x6d\x8e\x5f\xb6\xfa\xf1\xcb\xa5\x67\x2a\xb9\x9b\x12\x21\xaf\xee\xe5\xe7\xc6\xef\x8e\x5d\xfa\x5e\xc3\x52\xe0\x51\xd5\x48\xf3\x61\x96\x4a\x8e\x29\xaa\x86\x14\x03\x5a\xe3\x22\x02\x6d\x7e\x64\x63\x21\x8d\x82\x68\xbc\x04\x59\xee\x80\xfb\x36\xf8\x47\x77\xec\x8f\xda\x3f\x34\xfb\x4a\xfb\xa4\x59\x1f\x35\x5d\x73\x20\x3c\xe6\x18\xee\x6c\x70\x3f\x0c\x41\x27\x8d\x37\xd0\x58\x90\xca\xc6\x28\x51\xf1\x92\xec\xd0\xa7\x38\x1e\x89\xd1\xc1\x3c\x2e\x13\xe6\x87\x9a\xb9\x60\xfe\xf1\xa1\xf1\x02\xd0\xfc\xfc\xac\x99\x9a\x23\xce\xf1\xc2\xa2\x7a\x23\x4d\x51\x35\x9a\xc7\x63\x4a\x1a\x94\x43\x16\x23\x2c\xdf\x3a\xc7\xce\x34\x7b\x25\xc7\x4e\xf5\xe7\x78\xf2\x80\x07\x03\x81\x0e\x58\x27\x14\xb8\xda\x68\x1f\x4d\xd9\x66\x6f\xa7\xc0\xb2\xba\xef\xfe\xec\x7b\x26\xb8\x3f\x2f\x45\x00\x42\x24\xb2\xaf\xb6\x82\x2e\x02\x58\x53\x9d\x38\x50\x2d\x8e\x35\x74\x98\x70\xa3\xdf\x75\xae\x23\x1b\x0f\x75\x8d\x29\x0e\x51\xda\xdd\xfe\xb9\xc5\x45\xbc\x73\xe4\x18\xd6\x9e\x49\x43\x14\x51\x8f\x9b\x20\xe8\xa0\x8e\xac\x3e\xbd\x07\xa5\xd8\x19\x02\xa8\x37\x13\x27\x24\x6f\x83\x4c\x8d\x44\xc4\x9d\x3c\xd3\x7c\xea\xb9\x01\x63\xa4\x3b\x63\x9c\x04\xf1\x35\xfc\xa2\xfd\x19\xbd\xf7\x5e\xa8\x69\xf5\xff\xdc\xc1\x98\x73\xe1\x14\x47\x7d\xc1\x63\x50\xde\x05\x9a\x7b\x81\xe7\xe2\x7f\xe0\xec\xea\x33\xe2\x74\x5a\xc0\x95\x4b\x3f\xa8\x99\x42\xbc\x94\x69\x0b\x6b\xbc\x0f\x3e\x9c\xc9\xbc\xc5\x35\xde\xcb\xdc\x05\x26\x75\x89\xa8\x4f\x55\xee\x30\xf9\x85\x6b\x25\x25\x00\xe9\x52\x99\xba\x86\xe9\x01\x83\x75\xe5\x9b\x05\xa0\xe3\xc8\x11\x0e\x0b\x4f\x01\xa0\xe6\xc1\xcf\xd6\xd2\x2c\xb8\x88\xbf\xe5\xe3\x7e\x63\xcd\xc4\xf6\xf3\xf3\x95\xe0\xb4\xde\xea\xf0\x23\x06\xa2\xa9\xb4\x65\x37\x35\xa2\x0f\x4e\x85\xc0\x64\x73\x62\x4f\x6f\x30\xc0\x46\x65\x2d\xab\xa8\x4a\x76\xbc\x2b\xbf\x39\xb9\xaf\x4a\x1a\xcb\x44\x59\xee\x8a\x8e\x0b\x93\xf9\xb1\xb9\xf1\xa7\x3c\xf9\x93\x7d\xc5\xba\x93\x2e\xe2\xef\x0b\x7b\x12\xec\x39\x10\x4d\x1f\x31\x0f\xfd\xff\x27\xef\x59\x76\x1b\xd7\x95\xfc\x15\x21\xe7\x5e\xdc\xe3\xee\x88\x2d\x3e\xf4\x4a\x9f\xce\x62\x80\xb9\x98\xc5\x5c\x60\x16\x33\xb3\x39\xc8\x42\xb1\x94\xc4\xd3\xb6\x65\xc8\x4a\xd2\x7d\x82\xcc\xb7\x0f\xaa\x48\x49\x24\x45\xbd\x6c\xf7\xb9\x0d\xcc\x22\x8e\x2d\x15\x8b\xc5\x2a\xb2\xf8\xaa\x47\x9f\x87\x72\x03\xb6\x7c\x7a\xd1\xe3\xa2\x7a\x02\x75\x2b\x53\x1f\xc6\xc9\xf2\xa1\x2a\xb0\xf7\xba\x9c\xb5\x17\xd7\x2a\xcd\x72\x5e\xcb\x2a\xb7\xed\x6c\x96\x22\x23\xeb\xf2\xf0\xdd\x6f\x9c\x08\x7b\x3b\x2b\xb5\x5d\x0d\x8b\x9d\x0c\xdf\x11\x17\xbb\xf7\x5f\xf2\xf2\x75\xaf\x96\xcb\x78\x65\x7e\xfd\xcb\xae\xa8\xab\xcd\xfa\x88\x83\x31\xdb\xec\x8b\xca\xcb\x37\x2f\xb0\xb9\xc9\xaa\xaf\xb8\xbc\x07\x2a\x0f\x45\x75\xfd\x4b\xbb\xd0\x96\x25\x1b\x6a\xb3\xe7\xfa\xc9\xdf\x15\xf5\x53\x99\x63\x4a\x8b\xe6\x5c\x04\x73\x1b\x38\xfa\xea\x85\x96\xb4\x6f\xba\x83\xaf\x47\x53\xf8\xc0\x6f\xcb\xf5\x73\xb7\x3a\xb6\x97\xbf\x97\x1c\x57\xa7\x28\x6e\x95\x38\xd1\xe8\xff\x96\x8d\x5e\xf0\xfe\x3e\x90\xc0\xd2\x91\xca\x6c\x49\x90\x34\x13\x57\x3f\xa7\xd5\xa2\x88\x63\x26\x32\x47\x5a\xa3\xf9\xb1\xc5\x4c\x54\x76\xaa\x9b\xb3\xf2\xd4\x38\xbd\xdd\xbd\x11\x97\x36\x77\xc8\x9f\x3a\x27\xf2\x89\xef\x1d\xeb\xaa\xec\x22\xeb\x0c\xc5\x08\xea\x0a\xc8\xc8\x55\x4b\x4b\x61\x20\xab\xc9\x42\x5d\x04\x22\xd5\xe3\xf4\x3a\x4f\x28\x37\x11\xfd\xa8\xb3\xa6\xf4\xc8\x4b\xb6\x7d\x2e\x7c\x75\xad\xba\xa0\x84\x62\xc7\xd2\x62\x92\x1f\x5a\xa9\xb7\xbe\x5f\xc6\x4c\xd1\x2d\x13\xd9\x22\x51\x2d\x15\xd1\x42\xd1\xcc\x17\xc9\x42\x51\x2c\x13\x81\xfb\xb4\x68\xfc\x9c\x45\x6e\xfd\x57\x9f\xc7\x0d\xa7\xa6\x65\x38\x21\x9a\xa5\xdc\x1e\x63\xca\x64\x6c\xd8\x19\x17\xe8\x00\x4b\xe7\x29\x96\xd3\xba\xd1\xec\x6e\xd1\x49\x6f\x50\x2d\xcf\x6b\x14\x40\x4e\x35\x49\x8b\x8c\x36\xed\xe4\xe5\xc6\x52\xec\xde\x7c\x5c\x43\xb5\xbe\x37\x01\x61\xe1\x48\x94\xc5\x62\x37\xa5\x55\x0c\x30\x3d\x58\x91\xa1\x4a\x24\x95\x7a\xcd\x23\x34\x4a\x5c\xdd\xd6\xd2\x91\xc0\x7c\x16\xa6\x3a\x6f\xe3\x8c\xa4\x23\xaa\xac\xba\xc5\xd5\x88\x34\xe9\xa5\xcd\x32\x44\x1e\x24\xe3\x4e\x2d\x0c\xf4\x43\xe4\xd1\xe2\xdd\x2a\x86\x05\x73\xab\xe4\xe7\x55\x29\x8c\xe2\x42\xee\x2d\xc5\xfc\xf2\x61\x4b\x72\x34\x41\xb2\x26\x11\xb5\x20\x1d\x29\x40\x76\xc5\xfe\xd9\x3f\x64\xfb\x62\x0b\x10\x0f\x9b\x4a\x99\x3e\x37\xe7\xba\x81\xf3\xd8\x36\x11\xa9\xbe\xc6\x75\x51\x8e\xa6\x2e\xe5\x73\xb5\x2e\x56\xf2\x47\x5e\x1c\xeb\xcd\x1e\xb1\xab\x27\xb2\xd8\xca\x8a\x6a\xd1\x47\x2a\x9d\x00\x7d\x58\xb4\xf9\x18\xfe\xc8\x33\x83\x91\xbd\x6e\xf6\x79\xf9\xaa\x25\xee\x12\xa1\xbb\xc9\x53\x88\xee\xcb\xfc\xbb\x77\x98\xb0\x70\x75\xe0\x7d\xd8\x14\xdb\xfc\x58\xd4\xc7\x7e\x3e\xb8\xce\xc8\x47\x25\xd3\xd2\x82\xa1\x34\xed\x7e\xac\x36\xf9\x67\xf8\xf0\x1f\x33\x15\x31\x0a\x7f\xd5\xc5\xee\xb0\xcd\xea\xc2\x97\x06\x01\xc7\x9b\xaa\x38\x14\x59\xfd\x2b\xec\xe4\xfd\x87\x4d\x7d\xbd\xdb\xec\x77\xd9\xb7\x5f\xd1\x05\xf4\x1a\x9e\x3a\x75\x4a\x47\x1d\x41\xc2\xf4\x3b\x6f\xed\xac\x40\xce\x68\xe3\xe5\x35\xe5\xd6\x84\x3f\xd2\x2e\xb7\x1d\x65\x35\xdd\x2d\x19\xae\x22\x56\x21\xbf\xef\x5c\x7b\x89\x61\xbd\x9f\x6f\x89\x8e\x0e\xf7\x68\x56\x3a\x6f\x75\x69\xf3\x8f\xab\xc5\xe8\x54\x4a\xf9\x3e\xae\xff\x98\xc0\x25\xf9\xa8\x50\x8e\x05\x81\x1e\xaf\x5f\x5d\xf5\xbb\x28\xf8\xb7\x39\xad\x51\xf9\x32\x7b\x11\x82\x3e\x2f\x62\xb1\x9c\x83\x87\x77\x8e\xce\x92\x98\x09\xf0\x89\xcd\xda\x6e\x68\x5e\xf4\x46\x94\x34\x22\xba\x93\x15\xdc\xdf\xb3\xbe\xab\x56\xe4\x9c\x00\x6d\x42\xe6\x08\x0b\x00\x8d\x63\x1d\xb7\xba\x38\x15\xb5\xd7\x8c\x18\x90\xc6\x78\x4f\x30\xc0\x8d\x19\xca\x90\x64\xa7\x21\xe6\xea\x04\x9c\x26\xae\xe9\x43\xb5\x5a\x99\xaa\x65\x46\x3b\x07\xe9\x91\xa9\x26\xf5\x19\x06\x51\x4b\x52\x6e\x60\x3d\xe0\xb1\x39\x7c\x2c\x76\xf7\x18\x94\xe8\xb8\x59\xfb\x79\x55\x1e\xf2\xf2\x75\xef\xd7\xd5\xe6\xf1\xb1\xa8\xda\x93\x10\x7d\x5f\xa3\x9f\xca\xdc\x6f\xf6\xf2\xc8\x12\x3a\xec\x13\x9b\x3c\xb9\x81\xae\x69\x07\xe0\x9b\xc7\x07\xd2\x84\x8b\xf1\x51\x97\xbf\x39\xcd\xb4\x66\x6b\x07\x3d\xf2\x24\xce\xab\xa6\xbb\xb5\xe6\x2d\x64\xa7\x8d\x55\x9a\xd6\xb1\x54\x7b\x2a\xab\xcd\x1f\xe5\xbe\xce\xb6\xbe\x6a\xe2\xca\x8d\x07\x7b\xbc\x65\x6f\xea\xe4\xae\xca\x53\xeb\xc9\xeb\xe6\x4d\xfd\xdd\xbd\xe9\x14\x03\xc2\x01\xc6\x5b\xe7\x99\x9c\x8d\xc0\xb6\x86\x4a\x9a\x1f\x93\x15\xcb\x71\xb2\xac\x8c\xd9\xe9\xd5\xc0\x6b\x58\x4d\x4e\xf9\x8b\xcf\xbc\x15\x1f\xd9\xaf\xc5\xfa\x32\x60\x8a\x2c\x5c\x54\xd4\xf9\x94\xdf\xcc\xdc\x6c\x2e\xf3\xaa\x6b\x43\x51\xa9\xab\xe8\xe9\x91\x64\x47\xe6\x16\x66\x64\xd5\xa9\xe2\x4b\xdd\x33\x7b\xfe\x96\x7d\xfc\x7b\x79\x93\x22\x97\x94\x33\x85\xab\xad\xae\x66\x8a\xd9\x2e\x31\x28\xf0\x09\x6e\x18\xd4\xfe\x40\x99\x3b\xea\xe9\x0b\x1b\x16\x59\xca\x23\xbe\xac\xbc\xdf\xf7\xd9\xae\xf8\x72\x05\x0f\x7f\xc7\xc4\xae\x77\x57\x77\xd7\x33\x60\x3e\x7e\xb0\x22\xc4\x4e\x17\x69\xe3\x6a\x7d\xb0\x8d\xfe\xea\xf2\x50\x6e\xcb\xc7\xef\xbe\x0c\xac\x7d\x9c\x1b\x35\x71\xc0\x78\x52\x8f\x54\xa6\x2b\x1a\xc7\x0d\x00\xd9\x6e\xf6\x5f\xbd\xec\xba\x23\xa1\x7d\x37\xd2\x9d\x64\xd0\x19\xfd\x8a\x41\xc3\xd8\x62\x6a\x6b\xcb\xaa\xbe\x85\x91\x76\xc9\x20\xe7\x0a\x4f\x7f\xa0\x90\x8d\x97\x5a\x58\xa3\x35\x86\x61\xe9\xe6\x6c\x81\xe3\xa2\xc4\x55\xed\x8f\x75\x5f\x1a\x22\xcd\x45\xc7\x02\x47\x27\xed\x1a\xcc\x5d\x43\x2f\x60\xb3\x2b\xc0\xc0\xac\x92\xe6\xa9\xec\x2c\x22\xe5\xc1\x8f\xfb\x9e\xea\xb4\x90\xe4\x66\x93\xf5\x08\x81\x7a\x4c\x7b\x18\x2e\xba\x46\x8c\x83\x60\x70\xac\x9c\xc4\xee\x64\x74\xf0\x29\x07\x1c\x1b\x1b\xfe\x56\xdb\x72\xab\x43\x48\x1f\xd8\xe3\xcb\x23\x3a\xf0\xd9\xf7\x75\xed\x0b\xe9\x1a\xdb\x8f\x58\x32\x80\x4b\xfa\x94\x38\xb1\x8d\x78\xdd\x6b\xee\x23\x6e\xb4\x32\xd1\x82\xcc\x86\xe7\x44\xae\x03\x4c\x79\xf3\x2a\x87\x17\x28\xfc\x3f\xe5\x66\x7f\x83\x82\x98\x55\xf1\x18\x48\x5e\xd6\x03\x00\x83\xfc\x9d\xdb\x2a\x44\x3d\x24\x9f\xb9\x9e\xe1\xea\xc0\x69\xa4\x0f\xa8\x54\x84\xed\xe2\xfa\x0b\xde\x96\xdd\x8d\xb4\xaa\x57\x62\x5f\xd6\x7e\x5e\x3c\x6c\xf6\x45\x7e\x37\x48\xf2\x60\x3d\x73\xe1\xf5\x5a\xde\xfa\x8e\xef\x4b\x9a\x98\x17\xfb\x25\x35\x23\xf8\x00\xcb\xbb\xdb\xc7\x81\x7e\x02\x85\x07\x65\xd9\xbe\x9d\xc2\x3e\x4f\x9e\x12\xdd\x48\xcf\xea\xde\x3b\x87\x8b\x5d\xdd\x24\x39\xd6\x68\xea\x2d\x47\xb4\x43\x93\xf2\xd5\xaf\xca\xb2\x7e\x77\xad\x17\x8c\x0d\xb9\x6e\x5a\xad\xc7\x73\x90\x6e\xef\xee\xed\x3a\x7b\xa8\x3c\xfa\x50\x79\xda\x7f\x0b\xb2\x2a\x5f\x8f\x37\x21\xda\x6f\x3c\x54\x78\xc4\x6c\x01\x64\x55\x91\x1d\x6f\xae\x70\xd3\x0c\xab\x80\xa3\x87\x5f\x25\xf3\x88\xf7\x7c\x50\x5f\x9f\x0f\xf2\xf5\x95\x37\x00\xab\xb4\xf5\x82\x12\x2e\xec\xee\xa9\x52\x9e\x0c\x00\xa9\x37\x1d\xaa\x7e\x67\xb0\xc1\xf0\xa1\xe9\x90\x80\x47\xf4\x56\x1f\xd1\x8a\x35\x04\x99\xd6\xbe\x76\x29\xc9\x7e\xb3\x98\x22\xa9\x37\x67\x69\x50\xea\xdd\xd8\xc4\xb6\x7c\xf6\xef\xc5\xbd\x59\xb4\xca\x5c\xb0\x3c\xb4\xcc\xc0\xa6\x92\x0b\xdb\xee\xa8\x97\x74\xb4\xb8\xfc\x3a\x71\xa0\xcd\xde\x61\x01\x83\xbc\x83\x69\x35\x85\x1f\xc1\xc8\x3e\x70\x49\x92\x1b\xdb\x50\x4c\xdb\x3f\x2e\x6b\x90\xb4\x0a\x59\xd4\x2c\x59\xc4\x68\xdc\xa9\xd5\xe7\x9b\x17\x2f\xdf\x2e\xa9\x5d\x96\x70\xad\xaa\xfb\x16\xf9\xcb\x49\x59\x32\x00\x54\x89\x8b\xee\xf2\x10\x27\x1a\x0e\x2c\xa4\x03\x2f\xa0\x2f\xc0\x80\xee\x8e\xe1\x24\xb2\xbb\xd2\x0b\xd9\x58\x9f\x5a\x72\xd8\x74\x65\xa9\xee\x93\xc6\x7c\xd2\xb4\xec\x2c\x46\x10\x79\x8a\x72\x46\xa3\x5c\x54\x2c\xc4\xd0\xa3\xe1\xcd\x4c\x62\xf5\xf3\xb0\x66\x31\x8e\x43\x56\xd5\x68\x28\xf9\x93\x71\x78\x31\x06\x57\x43\x16\x6d\xf4\x4f\x60\x1d\x9a\x39\x9e\x41\xb1\x51\x7e\x66\x02\xea\x53\xa9\xb5\x92\xed\x2d\xa6\xd6\x4e\xd6\x37\x45\xad\x61\x90\xb9\x9c\xdc\xc6\x54\xf3\x64\x7a\x6d\x04\x0b\x42\x69\x2f\xa7\x16\x27\xf1\x93\x49\x35\x4a\x4f\x1a\x92\x2e\xa2\x4e\x5d\x36\x1f\x97\xd0\xd4\x94\x79\x33\x4f\xfe\xbd\xe1\x73\xba\x29\x4c\xb7\xe7\x1c\x9d\x8e\x60\xb1\x6f\x0b\xa3\x53\x09\xf4\x08\xde\x1b\x9e\x42\x95\x2a\x3a\xe7\x02\x98\xa9\xad\xa2\x6b\x1b\xa9\x2e\x87\x19\x5e\x04\xbb\xb7\x91\x9d\x86\x6b\xbf\x5d\x79\x57\xcf\x7b\x78\xb2\xcf\x76\x05\xaa\xd0\x81\x4d\xde\xcc\x56\x2c\x5e\x2e\xb9\xca\xbb\x2d\x2f\xb5\x0d\x1d\x50\x6c\xfa\xb3\xc4\xb6\x0f\x68\x70\x7e\x33\x4e\x19\x8e\x63\x78\x2c\xf3\xf7\x79\x9b\xae\x33\x86\x6c\x43\x43\xbe\xd5\x4f\x9b\xcf\x69\x8d\x89\x49\xdb\x3c\xb7\xfd\xc9\xce\x7f\x77\xee\x80\x6a\x3c\x13\x1a\xd3\x84\x33\xa9\x37\xec\x02\x3b\xf2\xdb\xce\xff\xde\x47\x25\x0d\xdb\x74\xf7\xa0\x1b\xe9\x1c\x1e\x35\x1e\x37\x4d\x6f\xc5\x5b\x59\x07\x06\x95\x9c\xe6\x76\xd0\xe1\xc5\x15\xee\xda\x0f\x83\xbf\x5e\xc3\xc7\xa2\xac\x23\xed\x2e\x50\xc6\x85\x1c\x25\xa4\x39\xa7\xb7\x63\xda\x4f\x94\x6a\xa2\xe1\x5f\x3b\x53\x52\xed\xcb\xbc\x38\x92\xe3\x53\xf9\x4a\x76\x45\x9d\xc1\xeb\xab\xbb\xe6\xbe\xba\x7f\x79\x39\x55\x59\x1b\xac\x7d\x02\x0e\xe3\x01\xbe\x95\xcf\x35\xe8\x0b\x0c\xe2\x3f\x50\x40\xa6\xce\x9e\xca\x8b\x60\x5e\x85\x4e\xe0\xaa\x37\x87\x83\x3a\xbf\xec\x62\xf9\x8f\x15\xb9\xb5\xc2\x7a\x2f\x48\xd1\x31\x88\x77\x1b\x2f\x24\x64\x1b\x2f\x25\xc3\x0c\x1a\x3a\x80\x56\x3b\x0f\x5f\x48\x90\x56\xd2\xa6\x6c\xda\x19\xd7\x75\x68\xd7\x73\x04\xb3\x2f\x2a\xd4\xb9\xb5\xfb\x72\xac\x5f\x9a\xd4\x65\xb9\xad\x37\x07\x6d\x55\x13\xc8\x24\x49\xdd\x21\x12\x49\xe2\xb0\x97\xe4\x3c\x6c\x52\x4e\xab\x83\x24\x11\x04\x8e\xf3\xb1\x96\xfb\x37\xbf\x3c\x3c\x3c\x58\xc7\x6c\xf2\xb6\xef\x1b\x54\x02\x35\xb7\x81\xe8\xd5\x53\x99\x80\x38\xf0\x54\xae\x44\xaf\x7a\xbc\xcf\x30\x34\x71\x70\x4d\x82\x70\x75\x2d\xdf\x08\xeb\x0d\x9d\xcb\xb7\xa6\xe5\xfa\xbb\x7a\xb3\x2b\xfa\xe9\xa2\xac\x6b\x47\xfd\x56\xb2\xf3\x3f\xff\x25\x68\x19\xd0\x5a\x69\x4d\xfb\x2c\x7d\xee\xd9\xac\xa8\xf8\xb3\xdb\xcd\xe3\x5e\x05\x50\x3e\xa7\x3d\xb5\xbf\x2d\x1e\x8b\x7d\xee\x72\x2c\x9c\x8f\xe3\xf8\xbc\x6b\x02\x88\x77\x89\x50\xb8\x62\x8f\xb7\xb4\xab\x0d\x22\x9f\xeb\xe8\xa5\x9b\x51\x88\x2e\x9d\x57\x2b\xb0\x73\x29\x92\x2c\x93\xfa\xa2\xb5\xb3\xd7\x22\xd1\x30\x2d\x23\x74\xd7\x93\xdb\x28\x2b\x21\x4e\xa4\x81\x16\x83\xfe\x12\xd4\xa0\x27\xc8\xd9\x62\x94\x68\x0c\x9b\xe7\x79\x28\xf3\xcd\x4b\x83\xb5\x67\xdf\xdb\x05\x17\x53\xa9\x4b\x86\x82\x7c\xdb\x4c\xec\x72\x26\xab\xfe\xef\xc7\x9d\x01\x40\xef\x94\x5d\x86\x07\xd7\x33\xea\x05\x3d\x05\xd3\x2d\x3a\xaa\xb2\x86\x15\x87\x08\xf3\xe2\x71\xf5\xae\xb5\xe8\x6b\xf1\xdd\x7b\xe2\xd6\xf2\x15\x63\x27\x71\x25\x38\x73\x7c\xf7\xcb\x4e\x05\xfa\xb5\xcc\x16\x6c\x04\xe6\xcf\xc6\xed\xde\xcb\xf3\x6b\xeb\x0d\x9a\x32\x4c\x3a\x50\xf6\xcb\x0c\xd8\x2a\xd8\xce\x3b\x7d\xc1\xab\x24\x93\x2e\x94\x16\xbb\xa8\x9b\x5d\x03\x06\x4c\x43\x2e\xcc\x73\x21\x61\x8e\xeb\x9e\xea\xa6\x96\x4f\x8d\x56\xd6\xd4\x80\x96\xf6\x68\x7e\x0d\xed\x3c\xb8\x28\x99\x5f\x9b\x0e\x3d\x4e\xba\x10\x6b\x34\x5e\xc2\x85\x31\xdd\xe3\x8c\xd9\xb7\xa8\x4d\xd6\xb2\xa4\xa8\xaa\x72\x09\xdf\xfb\x18\x54\x2a\x00\xc3\xf6\x3d\x9c\xdb\xc7\xdb\x90\x06\x56\xb4\x25\x95\xc7\x7e\xde\x30\xd9\x9a\xb1\x43\x03\x2f\x98\x5b\xb2\x36\x22\x70\x45\x41\xd0\xea\x25\x50\x41\x46\xbe\x97\x79\x03\xb6\x0d\x29\xe9\x35\x67\x41\xbc\xcf\x0b\x39\x8c\xfb\xdd\x6a\x28\xa8\x22\xa0\xb0\x42\x4f\xb9\x87\xd5\xf0\x68\xd5\x6b\x53\x5e\x3b\xae\x3d\x60\x9d\xd5\x47\xe7\xfd\x61\x3f\x5a\x08\x5e\xab\x56\xe5\xab\x37\x1d\x31\xc4\xb2\x24\xa8\x8a\x7a\xfd\xa4\x67\x79\x58\xea\xd4\xed\xa6\xbb\x17\x64\xd1\x69\x21\x3f\x54\xb6\xee\x79\x20\xf7\x57\xb7\x66\xee\x09\x37\x9e\xb1\x9b\x39\x61\xc7\x7c\x1f\x40\x22\xa3\xc1\xce\xa6\xfe\xb9\x19\xc5\x83\xaf\xd5\x10\xb5\x17\xe7\xe6\x7a\xbe\x2a\x76\x93\x79\xc9\x7a\x2b\xd1\x6e\x8d\x93\x3d\xd7\xa5\xc3\x11\xcc\x36\x95\x75\x11\x6e\x79\x7a\x8e\xb7\xe2\x64\x03\x45\x82\xbb\x2e\x95\x09\x01\x37\xea\x79\xfd\xa6\xcb\x58\xbb\xf8\xde\x16\x59\xae\x4c\xe2\xb3\xc3\x01\x8d\xd2\xd1\x59\x04\xd7\x11\xe8\xe8\xd7\x65\xa1\x5e\xf5\x3d\xe4\x3c\x95\xd9\x56\xf7\xc4\x6b\xdc\xc4\x54\x0e\xc4\xbb\xa1\x52\xa3\x24\x31\x37\x49\xca\xf0\x58\x26\x04\x96\xdf\xef\x08\xfc\xf0\xf3\x62\x5b\xd4\xc5\xf5\x19\xad\xb8\x1d\xf0\x28\xef\x3b\x1e\xaa\x84\x49\x6d\x7a\xcd\x6b\x3d\xfe\x49\x9b\x96\x1e\xcf\xf0\x51\xa4\x05\xcc\x31\xb7\xcd\x73\x83\x57\x26\xf1\xa3\x6c\x94\xa0\x87\xec\x78\x7c\x2d\xab\x5c\x51\x3b\xa3\x84\xb4\xf9\x9e\x0f\x0f\x5d\x7f\x0e\xf4\x38\x1b\xcb\x4d\xbe\x56\x55\x37\x59\xcf\x54\xfe\xaa\x63\x51\xaf\xcc\xf7\x7a\x39\x33\xc9\xbd\x7a\xf5\xe1\x7a\xc8\x04\xfd\x5a\xb5\xb1\xac\xea\xe1\xa2\xd8\xaa\xf2\xf1\x71\x5b\xa8\x4a\x5e\x37\xf5\x93\xaf\xbb\xcc\x9a\x72\xc8\xe4\xaf\x75\x55\x64\x75\x71\xad\xa4\x2d\x1f\x65\xfb\x75\xb1\x35\x1e\x1d\x9f\xef\x77\x9b\xfa\x5a\xef\x98\xd8\xc6\x3b\xe3\x91\x84\xba\xbb\x56\xae\x82\x2a\x97\xe8\xd1\xd5\x9f\x25\x9f\x64\x8f\xaa\xf7\x2b\x0c\x5e\xe3\x14\xbe\xf6\x42\x97\xb1\xf6\xb8\x13\x25\x7c\x10\x39\xec\x66\x07\x96\x5c\x1c\x14\x7f\x3c\x52\x75\xe3\xeb\x92\xd7\x53\xe1\x62\x9b\x40\xe5\xe3\x94\x2a\x2a\x9b\x01\xef\x3d\x51\xaf\xd8\x9d\xa7\x00\xcc\x28\x06\xba\xe7\x86\x11\x2c\xad\xf8\x56\x17\xd5\x3e\xdb\xaa\xa3\xe4\xa5\x41\xd4\x30\x32\xe5\x70\x7c\x8e\xe9\x00\x1e\x9a\x37\xf6\x28\x26\xe5\xc3\xed\x86\x71\xbb\x8f\x8e\xc7\x64\xd8\x6e\x54\x87\x35\xa3\x6f\x7c\xdd\xec\xbb\xb0\xa9\x16\x4f\x34\xbb\x6e\xff\x50\x95\xdf\xbe\x4b\xe1\x6f\xcb\xe3\x73\x55\x60\x7a\x77\xef\xf7\xac\xda\x64\x7e\xf1\xed\x90\xed\xf3\x22\xbf\xfb\xdf\x0f\x32\x65\xec\x74\x7e\x12\xaf\x75\xbc\x1d\x05\x33\x42\x71\x9b\x7a\xb9\xc9\x8f\x60\xdc\x48\x90\xad\x0a\xa5\xdf\xf9\xd7\x1b\x14\x2d\xd2\xd2\x8a\xab\x0b\xf4\xf4\xfc\x12\x72\x78\xcf\x81\x9f\xea\xf1\xa3\x85\x65\x9a\xfd\xec\xf7\xaa\xd8\x7e\xf8\xf2\x54\x6c\x0f\x77\x13\x05\xd4\xed\x40\x6e\xb8\x5b\x40\x27\xdc\x95\x55\xe1\x8f\xa5\xf6\x97\x29\xfd\x3f\xc2\x74\xa9\x73\xdc\x31\x59\x28\xc2\x4f\x40\x36\x2b\xb7\xa2\x6b\x71\xd6\xdd\x1b\x59\x73\x8a\xa4\xc5\x79\x7d\x92\xad\xb7\x47\x82\x3b\xe6\xab\x3b\x0f\x35\x73\x37\xc0\x9d\x8a\xbd\xf7\xca\xec\x16\x3d\xe5\xae\x3d\x76\xc8\x49\xd6\x38\x20\x0e\x9c\x13\x0e\xe5\x76\xb3\x86\x59\x35\x2f\xfc\x4d\x0e\x43\xbe\xfe\x6e\xbc\x51\x91\x91\xbb\x97\x32\x7d\xec\x53\x76\xf4\x9b\x49\xac\xae\x9a\xe4\xd8\xc7\x79\x32\x90\x28\x70\x16\x6e\xae\xf4\x96\xe2\x98\x98\x1c\x54\xdc\x9e\x8b\x4e\x0f\xa3\xaa\xf6\x14\x9d\xbc\x44\x91\xcc\x84\x57\xbd\x65\x26\x34\x76\xa1\x49\xd8\x31\x7e\x8c\x16\xd4\x56\xec\x1f\x27\x81\x07\x95\x46\x7f\xf0\xc3\x53\x7d\x00\x16\x3b\xe7\x58\x32\x1f\x77\x9c\xb1\xc7\x50\xf3\xc8\x22\x77\x6c\xec\xbc\xf5\xa2\x43\x8f\x46\x73\xbb\xdd\x6e\x6e\x49\x93\xa0\x65\xd0\x55\x1c\xe1\xa4\x45\x8b\x56\xdb\xaa\x57\x72\x20\xcc\xb8\x5e\x07\xe6\x26\x58\x97\xdb\x6d\xa1\xe5\x60\x1f\x46\x3d\xe2\xeb\x2a\xc2\x49\xab\xe9\x5d\x91\x6f\x9e\x77\xe3\xf1\xec\x34\x0e\x78\x48\x87\xe4\xf3\xea\x74\x76\xb8\xd1\x4c\xf2\xc6\x2a\xb6\x90\x51\x46\x69\x8d\x6b\x9b\xfd\x53\x51\x6d\x4c\xbf\x65\xf5\xcc\x56\x41\x23\xbc\x86\xed\xbb\x23\x60\x8f\x60\xc1\xe1\xdb\xca\xcb\xf6\xb9\xf7\xab\xff\x5a\xdc\x7f\xdd\xd4\xfe\x6e\xb3\xf7\xf3\x02\x15\xf3\x61\xf3\xad\xd8\xfa\x98\x08\xf1\x26\x58\xbd\x6d\xf6\x87\x67\x3d\x6d\x06\x8d\x0c\xfb\xf1\xf7\x5f\xd4\x01\xe7\x9b\x76\xfd\xa8\x0e\xb3\xfc\xfb\xf2\x5b\xfb\xfe\xf6\xa1\x2c\x6b\x99\x3e\x4d\x1f\xb7\xb7\x1f\x70\x60\x60\x46\x7b\xc7\xf5\xe5\xbb\x35\x0b\xfe\xe5\x8b\xdc\x45\xc9\xc9\xcf\x9e\x23\xff\xf2\xa5\xc8\x37\xb5\x7c\xa7\x85\x00\xa2\x0c\xc3\x1e\x35\xa1\x2c\xcc\xc4\x3c\x63\xe1\x7c\xad\x20\x0f\x55\xf9\xfa\x4e\xca\xe7\x7a\x5b\xd4\xb2\x52\x5c\xf4\x7d\xd9\x96\x59\xbe\xd9\x3f\xde\x21\x35\x2a\x9e\x85\x7a\xe6\x11\x10\x94\x3a\x80\xc1\xf7\x72\x7a\x80\xd9\x4e\x1a\xa4\x1e\x57\xde\xef\xeb\x6d\x76\x3c\x7e\xf8\xa2\xbc\xb9\xef\x2c\xb8\xd6\x74\x46\x03\x6d\x9f\x29\x68\x9d\x9c\x4d\xbe\x2d\xee\x8c\x8a\x4d\x73\x05\xbd\xf5\x6d\x78\x0f\x2d\x42\xae\xf3\xbd\xde\x85\xdb\x68\x9d\x86\x81\x15\x86\xf9\xd7\x6f\x94\x7a\x97\x4e\xf8\x74\xf8\x98\x69\xa4\x5e\x33\x48\xa8\x99\x7a\x5c\x46\xed\x6a\xc6\x84\x6e\x36\x1d\x8e\xc6\xab\xea\x98\x8c\xeb\x86\xfb\xaa\xc8\xf2\x75\xf5\xbc\xbb\x3f\xae\x3c\x27\x3a\x0c\x0c\x83\xfd\xd1\xbb\x2f\xf3\xef\xb7\x44\xe6\x5f\x56\x2c\x1e\xcf\x2b\xaf\x92\xcd\x39\x0d\x79\x82\xeb\x60\xd5\x66\xdc\xa3\xef\x96\x38\xd5\xf6\xdd\xe8\x55\x2b\x17\x01\x0d\x86\xa0\x6b\x72\x1b\x3c\x3a\x0d\x82\xa6\xc9\x3a\xea\xc1\x76\x0c\x67\xd6\x5f\x3f\x55\xe5\x4e\x19\x46\xac\x3e\x79\x6c\x75\x1d\xac\xde\x87\x07\x69\xb7\x3c\x92\xfa\x0e\x17\x5d\x86\xb1\xd9\xc0\x08\x9e\x2c\x68\x48\x86\x24\xc5\xce\x3a\xdd\x23\x9d\x13\xb9\xf5\xa2\xce\xee\xfd\xe6\xec\x60\x70\xa7\x3d\x52\xe8\x56\x5b\xf1\x7f\x3c\x8c\x01\xea\xf4\xf6\x96\x85\xf8\x00\x97\x03\x2b\xb3\x2d\x4c\x4f\xfd\xe0\x9e\x7f\x26\x4d\xab\xd4\xc4\x77\xbc\xba\xf3\x06\x27\xc4\xb7\xa1\x1c\x8a\xc3\x91\x60\xda\x69\x11\x97\xf7\xbd\x87\x5a\x34\x0a\xed\xb1\x5a\xf7\xdb\x8f\x31\x7e\x84\xfd\xb0\xdd\x1c\x18\xb3\xad\x06\x50\x97\x5f\x8b\x76\x3e\xb7\xd9\x80\x5c\x50\x28\xba\x5d\x92\x8d\x7b\xa0\xf0\x49\x3c\xf4\x8c\xc8\xba\x8d\xbd\x90\xce\x4c\x79\xbc\xf8\xd1\x49\x7f\xbf\x28\x35\x7d\xb3\x9a\xa9\xd5\x54\xb4\x61\x77\x41\xdb\xe8\xc0\x50\xb3\x32\x94\xce\x55\xc6\x8d\xe0\xcb\x93\x3b\xad\xdc\x3b\x4e\x94\x32\xec\xfd\x7b\xab\x10\x8d\xe1\x88\x5c\xbc\x5b\xb9\x5e\x48\x11\x1d\xef\x56\xcd\x7c\x6b\x24\x13\x28\x76\x23\xb1\x02\xcd\xe3\xca\xf6\x70\xf2\xcd\x48\x8b\x14\xe9\x17\xd1\xef\xef\xe3\xcb\xfd\x43\xdf\x00\x1c\x17\xdc\xfd\xe7\x16\xa1\x14\x46\xdb\xe4\xb6\xe3\xa3\xf4\x50\xb0\xcf\x79\x67\x6c\x58\x7a\x03\xbf\xdb\x1c\x0c\x21\x6d\x01\x7a\x65\x67\x31\x59\xae\xef\xde\xba\x3d\x88\x7e\x8a\xec\x4a\x40\xa7\xec\x8d\xf5\x55\x9d\x73\x70\xb4\x43\x0b\xc6\xc7\x95\xa6\xa4\xbb\xf3\x67\xd2\x9e\x65\xe6\xd9\xf1\xe9\xbe\x34\x72\x80\x75\xf6\xac\x6a\x76\xfe\xdc\x98\x62\x8f\x57\xd7\x74\xb5\xab\xfe\xbc\xe0\xe5\x4d\x4a\x3d\x18\x1b\x46\x50\x98\xb4\x17\x14\x06\x33\xb6\x99\xb7\x95\x30\xa7\x9f\x51\x79\x3d\xeb\x4c\x79\x7e\x05\x30\x7b\xec\xb3\x17\xdd\x88\x4b\x77\xa0\x55\x8f\x31\xa9\xcd\x32\xa4\xcd\x84\xa7\xfe\xf7\x07\x85\x69\x6e\x37\x50\xa9\x7d\x33\x8c\x19\x43\x16\xb7\xce\xad\x79\xcf\x26\x7d\xca\x73\x78\x5e\xad\xba\x55\xb2\xab\x7a\xef\x89\xb5\x76\x4e\x02\x6d\x26\xf0\x82\xd9\x89\xfc\xeb\xcb\x55\x7b\x32\x82\x27\x0b\xae\xc1\xe7\x70\x09\x1e\x40\x46\x60\x69\x74\x75\xa7\x85\x57\x1c\x96\x16\xeb\x7c\xac\x27\xb3\xf5\x58\x42\x75\x85\x5b\x84\x25\xc9\xd2\xf3\x48\xd3\x2e\x80\x3b\xd7\xe2\x4a\x55\x0d\xa3\x96\x0b\xc9\x06\xb7\x75\xdb\x35\x72\x44\xaa\x58\xe5\x2a\xf5\xd6\xe5\x2c\x5d\x90\xdd\xf7\x73\x7f\xd6\x38\x91\x6a\xa5\xf1\x1f\x8a\x22\xbf\xcf\xd6\x5f\x4f\x6b\x84\x85\x64\x30\x49\xc6\x80\x6a\x9d\x4d\xa5\x31\x2f\x9d\x43\xa9\x11\x50\x58\x5f\x79\x0e\xcc\x35\xed\x41\x67\x8b\xbc\x67\x86\xe0\x9a\xc8\xdd\x37\x6a\xe4\x25\x7b\xde\x6a\xf1\x58\xad\x9b\x5d\xf9\xda\x9b\x63\x54\x8e\x90\xbd\x7c\x0b\x66\x65\xd9\xeb\x71\xb8\xaa\xec\xf5\x68\x57\xe4\xfb\xd9\xeb\x51\x85\x3f\xa2\x91\x7f\x7c\x79\xbc\x79\xae\xb6\xbf\xfe\x0d\x58\x72\xb3\xd9\x65\x8f\xc5\xa7\xe3\xcb\xe3\xc7\x6f\xbb\xed\xe7\xf5\x53\x56\x1d\x8b\xfa\xcb\x7f\xfd\xe7\xdf\xfd\xe4\xfa\xb7\xe3\xcb\xa3\xf7\x6d\xb7\xdd\x1f\xbf\x5c\x3d\xd5\xf5\xe1\xe6\xd3\xa7\xd7\xd7\x57\xf2\xca\x49\x59\x3d\x7e\x62\x41\x10\x40\xc1\x2b\xef\x61\xb3\xdd\x7e\xb9\x82\x0e\x7f\xe5\xc1\xf4\xf5\x2f\xe5\xb7\x2f\x57\x68\x68\x15\x79\x34\xba\xba\xfd\x0d\x03\xde\x4a\xa8\xbf\x32\xce\x42\xf6\x77\xfe\xaf\x57\x5e\xfe\xe5\xea\x1f\x82\x84\xd4\x8b\x49\x94\xc4\xeb\xc0\x23\x34\x8d\x49\xc0\x08\x0f\x63\x12\x84\x09\x11\x71\x48\x02\xc1\x08\xa5\x31\x09\xd2\x88\x30\x11\x12\x1a\x13\x9e\x88\x8c\x30\xce\xe1\xcf\x0b\xbc\x80\x92\x80\xc7\x84\x32\x0e\x28\x82\x90\xfb\x24\xe0\x8c\xd0\x20\xf6\x09\x25\x34\xda\xfa\x84\xf3\x88\x30\x06\xa5\xc2\x10\xfe\xb0\x94\x4f\x28\x4f\x48\x20\x92\xb5\x4f\x82\x50\x78\x81\x2f\xcb\x04\x2c\xf2\x09\x8d\x7c\x12\xc4\x22\xa3\x24\x0a\x99\x27\x3f\x55\xa1\x94\xf9\x84\x85\xd4\x13\x84\xf2\x58\x7d\xaa\x57\x51\xe8\x13\x4e\xc3\xb5\x4f\x04\x0d\x89\x48\xa9\x4f\x52\x1e\x91\x98\xc7\x3e\x25\x61\x24\xf0\x1b\x11\x22\x86\xca\x92\x40\xf8\x84\xb2\xd4\xa7\x24\x88\x84\x4f\x78\x12\xfa\x84\x45\x14\xb0\x47\x3e\xe1\xa9\xf0\x49\x98\x26\xf2\x1b\x25\x01\x0b\xa1\x94\x08\x05\x12\x97\x30\x46\x44\x02\x2f\x28\xe1\x0c\x4a\xc6\x09\x89\xa1\xa0\x00\xae\x13\x0e\xd8\x05\x8d\x08\x4d\xbc\xc0\x23\x3c\x8a\x49\x40\x23\x24\x02\x59\x8a\x9c\x8e\x89\x20\x41\x4c\x22\x0a\x3c\x4e\x5e\xa0\xaa\x35\xd4\x11\x40\xeb\x81\x9c\x28\x49\x81\x1c\x9f\x24\x21\x10\x0b\x1c\x8d\xa0\x8a\x30\xf1\x09\x13\x40\x46\xd4\x7c\xa3\x49\x04\xf4\xf1\x18\x10\x33\x9f\x84\x31\xe0\xce\x04\x61\xdc\xc3\x8f\xc0\x0b\x02\x78\x1c\x12\x9a\x50\x8f\x92\x90\x85\xea\x53\x71\x2f\x89\x80\x18\xce\x22\xf8\x53\x0f\x83\x24\x04\xba\x41\x44\x31\xb6\x9f\x52\x86\xe2\x52\xdf\x68\x14\xbd\x00\xd7\x18\xd0\x2d\x81\x7d\x42\x43\xe8\x11\x88\x31\x23\x3c\x4d\xe1\x4f\x76\x14\x1a\x42\x39\xbe\x26\x14\x5a\x07\x7d\x4a\x04\x29\x34\x2c\x22\x51\x0c\x0d\x21\x0c\x05\x4f\x42\x2c\x1f\x50\x92\x70\xf9\x3f\xc2\xbe\x46\xb1\x0c\x15\x02\x38\x9c\x0a\x22\x38\x23\x2c\xe5\x84\x25\x09\x11\x82\x91\x98\x45\xf0\x1f\xde\x52\xf1\x42\x49\xcc\x9f\x48\x40\xff\xd8\xf9\x8c\xd0\x88\x92\x84\xd2\x35\xa1\xd0\x10\x8f\x70\x90\x15\x74\xd4\x50\x24\x92\x14\x0a\xfd\x25\x88\x04\xe1\x11\xb4\x2c\x61\x24\x0c\xa0\x43\x09\x96\x91\x44\x24\xf0\x87\x4c\x04\xfe\xc1\x63\xba\x86\xf2\xd8\x87\x24\x47\x58\xc2\xe5\x17\x11\x85\xff\x1d\x93\x80\x67\x40\xa1\x87\x1f\x92\xfb\x22\x85\xaa\x3c\x4e\xd2\x34\x52\x9f\x4a\x2c\x40\x0b\x5f\xfb\x30\xf6\x80\xcd\x11\x4d\x08\x0c\x86\x18\x1a\x47\x85\x64\x11\x15\x50\x49\x44\xb8\x88\xf1\x7f\x44\x05\xb4\x84\x85\x24\x88\x38\x11\x30\x08\x53\xe8\x62\x11\xa1\x2c\x21\x94\x73\xe0\x02\x76\xb5\x30\x4c\xe1\xff\x1f\x3b\x41\x58\xcc\x49\x18\xc7\x6b\x6c\x33\x4a\x14\xf8\x00\x1f\x2c\x68\x44\x1b\x08\x39\x88\x41\xa4\xc0\xfe\x48\x49\x9b\x05\xc9\xd6\xa7\xd0\x21\x05\xa1\x2c\xce\x48\xca\x13\xf8\x6b\x3a\x0b\x34\x8f\x51\xd1\xf6\x05\x40\x03\x64\x50\x96\xe0\x97\x27\x12\x32\xb6\x26\x14\xa8\xa6\x72\x40\xb0\x00\x74\x0d\x07\x58\x94\x46\x00\xfd\x33\x88\xf1\x0f\xaa\x23\x49\x2a\x3c\x4e\x42\x1e\x42\x57\xc0\x2f\x6b\xa5\x22\x82\x08\xb4\x94\x62\x0d\x12\x97\x11\x1e\x85\xf0\x27\x7b\x1b\x32\x2e\x08\xf9\x13\x11\x2c\x5c\x13\x1a\x30\xbd\x62\xca\xcd\x8a\x13\x55\x2f\x55\xf5\x0a\x0a\xf5\xc6\x09\x49\x99\x8f\x5f\x32\x18\x77\xf0\xa7\xfa\x32\xc8\x87\x05\x09\xe1\x02\x44\x12\xa9\x3a\x81\x63\xb2\xce\x14\x28\x4d\xb0\xb3\x01\x13\xa0\x22\x64\x06\xf6\x64\x18\xfd\x3e\x09\xb0\x0d\x40\x25\x25\x01\x8c\x96\x38\x22\x71\x3b\xf6\x38\x0a\x11\x39\x9e\x40\x37\xa2\x0c\xc5\xd6\x28\xd7\x20\x4a\x09\x8d\x61\x9c\x50\xa8\x37\xcd\x08\x17\x84\x0b\x55\x9a\x05\xd8\xbe\x27\xd0\x16\x50\x8c\x06\x14\xa5\x1d\x37\xd2\xa6\xdc\x57\xda\x5a\x4a\x3b\x69\xa4\x2d\x47\x1e\x4a\xf2\xdf\x13\x80\xf3\x42\xc2\xe3\x2d\xe8\x3c\x0f\xba\x59\xba\x46\x25\xad\x88\x08\x13\x10\x00\xa8\x7a\x89\x11\xd9\x09\x78\xa0\x07\xe3\xa8\x40\x46\x0b\x24\x24\xf9\x63\x17\x91\x04\xda\x25\x44\xc6\x61\xee\xc1\x0f\x49\x71\xc2\xb0\x4f\xae\xa1\x6f\x47\xbe\x54\xca\x22\xc6\x2e\x24\x60\x44\x30\x5f\x49\x14\x75\x07\x8c\x5a\x2a\xb8\xa2\x15\x55\x3f\x0d\x33\xc2\xe3\x04\xfe\x5a\x16\xc2\x3b\x91\x82\x8e\x8a\x51\x47\x51\xca\x40\x01\xa3\xe6\x22\x94\xc9\x2f\x19\xe1\xa4\x99\xca\xd2\x08\x15\x9e\xec\x13\x14\xc4\x22\x39\xce\xb1\x15\x04\x5a\x85\x35\x40\x13\x48\x98\x80\x36\x8d\x65\x1b\x05\x23\x82\xa1\x02\x89\x00\x18\x14\x09\x07\x59\x92\x30\x85\xe6\x84\x29\x89\x51\x5a\x71\x94\xa1\x1a\x0e\x51\x11\x05\x01\x61\xf0\x38\x0c\x12\x12\x32\x22\xe7\x39\x20\x14\x06\x3b\x8f\x39\x0e\x54\x68\x1c\x8c\x4e\x86\x9c\x4e\xb9\x2f\x15\x24\x8b\x93\xad\x4f\xe2\x18\xde\x08\x50\x1e\x09\x30\x85\x71\x9f\x44\x00\xc8\x03\x9c\x39\xa8\x4f\x42\x11\x66\x94\xb0\x18\x34\x3e\x8b\x1b\x8d\x8f\x6c\x8e\x63\x1c\xaf\x8c\x09\xc9\x53\xc1\x98\xe4\x6b\x98\x72\xe0\x06\x10\x0c\x6f\x7d\xc2\x19\x4c\xfd\x3e\x11\x20\x3f\x78\xce\x18\xe1\x4a\xc0\x21\x74\x24\x16\xc7\xaa\x13\x44\xa0\xf3\xa0\xd1\x29\x45\xc5\x0e\xff\xa9\x9c\x09\xa1\x9e\x20\x94\x6b\x0c\x46\x11\x09\x0e\x47\x2e\xb0\xc3\xc3\x60\x0a\x22\x39\xb8\x59\x84\xe3\x2b\x08\x19\xe1\xd0\x9b\x41\xa5\x80\x78\x40\x1c\x31\x56\x82\x54\xa7\x51\x46\x44\x44\x9a\x11\x08\x73\x2e\x2c\x4e\x92\x14\xfe\x94\x54\x45\x0c\x7c\x7f\x81\x85\x03\x2e\x74\x70\x16\x83\x79\x38\xa6\xb2\x21\x34\xa6\x19\x09\x41\x00\xed\x4a\x43\xea\xc3\x48\x78\x20\xd7\x58\x7d\xa2\x70\xa8\x9c\x62\x59\x00\x6b\x17\x1e\x70\x18\x58\x21\x74\x7c\x60\x60\x0c\x9a\x24\xc4\x2e\x89\x6a\x29\x94\xeb\x09\x16\xc2\x7a\x0a\x95\x81\x48\x51\xf3\x00\xbb\x68\x44\x78\x9c\x62\x73\x41\xf3\x40\x33\x59\xc0\xb0\x5f\xb1\x94\x6f\x61\x45\x01\xa2\x25\x3c\x01\x2d\xca\x49\x14\x11\x96\x0a\x92\xb0\x90\x84\x94\x63\x1d\x8c\xa6\x84\x09\x41\x44\x8c\xff\x62\x21\xd9\x8c\x63\x31\x86\x59\x41\x2e\xb4\x22\x9a\x66\x14\xa4\xe2\xc9\x4f\xd9\x46\x0e\x13\x27\xaa\x07\xa0\x96\x73\x1f\x26\x3f\x2c\x1c\xa6\x94\xb0\x34\xc5\x49\x39\x88\x43\x98\xbb\x24\xdb\xe2\x08\x64\xc9\xfe\xb8\xfa\x74\xfb\xdb\x63\xb7\xaa\xfc\x7b\x1a\xc8\x95\xa8\x5f\x3d\x6f\x8b\x2f\x57\xc5\x4b\xb1\x2f\xf3\xfc\xca\x5b\x6f\x37\x07\xeb\x99\x5a\x91\xc2\x02\x94\x0a\x98\x2d\x3d\x0a\x93\x33\x5f\xfb\x94\xc8\x3e\x9a\xc6\xbe\x80\x96\x7a\x94\xa4\x49\xe4\x47\x44\xe0\x9a\x05\xbe\xc3\xd0\x82\xa5\x48\x48\x12\x06\xeb\x3a\xca\x63\x3f\x26\x29\x85\xd9\x01\x95\xaa\xd2\x05\x4a\xcf\xf1\x90\x13\x0a\x8b\x24\x1e\x7a\x8c\xb0\x30\xc6\xc5\x01\xe8\xb4\x00\x24\x4b\x83\xd4\x8b\x49\xca\xd4\x57\x4a\x52\x01\xfa\xa8\x69\x73\x10\x79\xd0\xe1\x60\x91\xc8\x78\x0a\x32\x91\x33\x1a\x48\x9b\xa6\x0c\x17\xb4\x22\x88\x90\x19\x5d\x9b\x42\x42\x81\xf4\x80\xa4\xd0\x41\x18\xb0\x93\x25\x40\xab\x88\x53\x94\x86\xcf\x64\x5f\x09\x22\x5c\xfd\xc8\xee\x44\x53\x20\x1e\xa6\x4a\xd4\xc8\x4c\x78\x14\x7a\x13\x90\x1d\x89\x10\x34\x04\x50\x99\xc0\xb8\x62\x51\x2c\xab\x97\x13\x9c\x47\x09\x2c\x14\xd3\x14\x40\xa5\x5e\x94\x6a\x80\x25\xb0\xb8\x85\x21\x9a\xb4\x1a\x3a\xe4\xb0\xdc\x07\x4e\x33\x22\x22\x0e\xa4\x04\x1c\x1b\xf0\xe9\xf1\xf6\x37\xd8\x51\xdc\xfe\xcd\xf0\x39\xc7\x2d\x4a\x73\xf8\xf5\x54\xec\x0a\x3f\xcf\xaa\xaf\x3e\xec\x37\x56\x9e\x7c\x6c\x6f\x70\x56\x9f\xdb\x8b\xe7\xec\xf8\xd5\x81\x61\xab\xac\x6e\x66\xa3\x90\xd1\x2d\x06\x71\xec\x4b\x05\x61\x96\x6a\xb7\xcd\x43\xe5\x5a\x63\xfd\x93\xa9\x5c\x46\xdd\x22\xaa\x7a\x36\xfc\x43\xf0\xdd\x26\x16\x93\x7f\xce\xdd\xbb\xce\xd9\x4c\xab\x8b\x63\x22\xdd\x20\xd4\x95\x83\xfc\x35\x9e\x3e\x46\xa6\xe3\xd2\x53\x14\x8d\xe4\x4b\xe9\x95\xc3\x60\xb3\xa7\x16\x46\x1f\x7b\x47\xd9\xc6\x1b\x4e\x26\xd8\x6a\xdd\x2b\x07\xf3\x6d\x9d\x45\xd5\x69\xe9\x11\x4f\xcd\x74\x38\x27\x01\xe1\x92\x14\x9a\x8b\x79\xfb\xa3\x53\x3d\x2e\x4e\xd9\xd8\xcf\xa4\x38\x11\x5b\xe1\x83\x99\x3a\x3d\x78\x27\xd9\x7e\xb3\xcb\xa4\xed\xa1\x3a\xda\xf6\x9e\xb7\x6d\x20\x83\x4b\x38\x9b\x4c\x15\xe9\x82\x6d\x9c\x50\x16\x63\x62\x9c\x52\x10\x9d\xe5\xda\xd0\x1b\xa7\x96\xc7\x73\xfc\x86\x7e\x79\xc1\xa8\x70\xae\x4e\x37\x99\x5f\xea\x66\xb3\xb8\x90\xc6\xf1\x53\x4a\x2b\x9e\x9f\x52\xd4\xe4\xfa\xe9\x18\xe6\xf0\xfd\x84\xdc\xa1\x76\xc2\x1c\x87\x4f\xcb\x29\x85\xc6\xf8\x3d\xa3\x34\xf2\xdb\x6a\xf2\x69\x98\x5c\xcc\x3b\x21\x11\xe9\x8f\xf1\x6d\xe8\x84\x6c\x5a\xd7\x9c\x54\x1e\x59\x76\x2e\x16\xc9\xae\x1e\x96\xe5\x2e\x15\xba\xab\x9b\xfb\xb9\xd6\x45\x06\x00\xd4\xa8\x1b\x78\x6b\x0e\xac\x51\xa0\xd1\xb1\x63\xc5\x0c\x02\x9e\x68\x1c\xf9\x30\x05\xd0\x50\x39\x01\x85\x84\x0c\xfb\x94\x0c\xf6\x84\x51\xc0\xbe\xc8\xc7\xc0\x1d\xb2\x9d\xeb\x84\x38\x30\x79\x0d\xc3\x28\xa6\x0c\x03\x98\xd2\x9b\x82\x1b\x15\xe0\x98\x2d\x87\x32\x5f\x9d\x00\x6a\xec\xa5\x17\x3b\xa6\x0c\x8b\xed\x2c\x4c\x0e\xb9\x9e\x83\xcf\x21\x78\x87\x5f\x66\xc3\xde\x61\x07\x4d\x7d\x58\x4e\x42\xe9\x02\x9e\x09\x3c\x22\xe5\x49\x0c\xc6\xfb\x8b\x88\xf0\x82\xd2\xbb\xa0\xe0\x9a\x15\x2b\x91\xcd\x2f\x72\xc3\x2b\xd6\xe9\xa4\x34\xe1\xe6\x3a\xf1\x5e\x1b\xee\x13\x80\x6a\xcc\x4f\x40\x99\x03\x7f\x16\xf0\xd8\xe8\x37\x9d\x74\x8d\x5f\x1d\xe5\xe6\x63\x49\xa7\xf9\xcc\xa0\xca\xf5\x6a\x8c\x86\x09\xd7\x60\xf9\xa8\x41\xee\x78\x23\x09\x72\xbc\x58\x56\xb5\xe1\x82\xec\x5e\x8c\x0d\x2d\xb5\x5c\x2f\x0c\x96\xcc\x5c\x59\xb9\x88\x1b\x74\x86\x96\x8f\xcc\x1a\x8c\x37\x3a\x69\xc6\x8b\x65\x55\x37\x4e\xd7\x8e\x67\x36\x67\xcc\x97\xfd\xfa\x9b\x37\x0e\xde\xb8\x00\xc6\x28\x9c\xe3\x02\xae\x6b\xcf\xce\x13\x7c\x4e\x49\x4d\x47\x2f\x2b\x38\x53\x13\x2f\x43\x6a\x17\x59\xea\x22\xf9\xcf\x70\x51\x1c\x9a\x17\x2e\x87\xb4\x37\x4f\x5c\x0c\x75\x7f\xde\x38\xcf\xd5\x72\x9c\x17\x17\xc1\x3a\xc0\x8c\x4b\xe0\xee\x71\xa3\x39\x11\x92\x8e\x7b\xe8\xec\xf2\xfe\x23\xd4\xf2\xa5\x94\xd9\x4f\x35\xe0\x97\x64\xb5\x9b\xb4\x64\x94\x59\x6b\x86\xdf\x27\x78\x84\x37\x38\xbf\x1a\x53\xcb\x72\x45\xb4\x24\xd9\xe9\x64\x53\xf8\xac\xa6\x9c\x7c\x42\xb6\xf0\x00\xa2\xd9\x67\x8e\xae\x0c\x4f\x53\xab\x4b\x52\x0b\x4e\x72\x2d\x9c\xe0\x5a\x38\xd0\x01\x46\x56\x0d\xea\xcd\xc9\xf3\xeb\xbc\xf6\xb1\x4b\x76\xf0\x8b\x6d\x61\xff\xd4\x1e\x9d\x0e\x5c\x2e\xcc\x3e\x7b\x1c\x3c\x74\x9b\x7d\xe4\xb4\xd8\xb8\xf9\x92\x7d\xf7\x54\xfe\x2c\x38\x3d\xbd\x94\xb2\xc5\x98\x97\x23\xf4\x76\xef\xa7\xae\x47\x4e\x3a\x40\x76\x6c\x5a\x2f\xda\xb2\x11\x2d\xa2\x45\xfb\xfc\x09\x4f\xa2\x27\xb9\x80\xe4\x4f\x8f\xd7\x59\x5c\x50\xba\x66\xf2\x34\x76\xee\xd9\xd0\xc0\x66\x7b\x7a\xff\xe9\xde\x82\xcd\xe3\xc5\x4c\xbd\x2b\x26\x78\x81\x2c\x1d\xe4\xc5\x9c\x83\xe7\xd1\x23\xc9\x33\x4f\xcd\xe6\x1e\x84\xcd\x3d\xd7\x58\x76\x82\x30\x75\x24\xb0\x70\xdf\x3d\xb9\x8d\x1e\xc1\x37\xaf\x4f\x88\x79\x5a\x22\x99\xd0\xd7\xc1\xd8\xf8\x98\x3c\x74\x1c\x8e\x16\xe7\x08\x0d\xa7\x18\x30\xaf\x79\xe1\x9f\xd0\x3c\xeb\x58\x6e\xc9\x79\xee\xc8\x41\xda\xbc\x53\xa5\xe1\xa3\x95\x79\xfc\x89\x2f\xca\x9f\x13\xee\xff\x4f\xba\xc4\x3e\xf7\x8a\x70\xf2\xda\x6a\xfe\x15\xd3\xd8\x25\xd0\xa5\x2e\x44\x2e\x82\x64\xe2\x24\xfb\x07\x9e\xf7\x5c\xf8\xe4\xa4\xdf\xb1\xfb\xe9\xcf\x47\x7b\x74\x97\x1c\x79\x2a\xb5\xc8\x39\xc6\x29\xe7\x19\x5a\xcc\xb9\x41\x9c\x79\xf7\x30\x2b\x97\xca\xf9\x4b\x83\xb3\xf4\xc0\xb9\x86\x39\xcb\x0c\x3c\xfe\x0c\xa3\x95\x51\x8a\x7e\x26\x13\x85\x4b\xde\xd0\xff\x93\x2e\xdc\xe7\xde\x98\x4f\xdc\x84\xff\xdc\xb7\xce\x3f\xe7\x95\xea\x05\xaf\x35\xc7\xa4\xf3\xff\xfe\xe2\xe0\xcf\x3d\xe2\x9f\x9b\x7c\x6b\x72\x9a\xfd\x51\xeb\xc6\x8b\x59\x06\xce\x35\xa2\x59\x74\xe7\x3e\x73\x01\x0e\x0c\x9a\x5e\x7f\xcf\x67\xe3\x4d\x55\x96\x35\x39\x54\xc5\x43\x51\x35\x26\xf9\xc7\x75\xeb\x9d\x70\x8d\xef\xe5\xf6\x63\x10\x68\x75\x2d\x0f\x47\xef\xb3\xfd\xbe\xa8\xee\xcc\x5f\xde\x3e\x7b\x31\x03\xa2\x39\xde\xeb\x81\xcb\xde\x14\x91\xbb\xec\xb1\xd8\xd7\x19\xd0\x79\xa3\x1b\xe5\x7f\xb6\xdf\x87\xcd\x7b\xed\x49\x0f\x8a\x06\x36\x14\x06\xea\xb0\xa1\x7a\xb8\xa8\x03\x17\xeb\xe1\x62\x0e\x5c\xbc\x07\xc5\x1d\x50\xa2\x07\x25\x1c\x50\x61\x0f\x2a\x74\x40\x45\x3d\xa8\xc8\x01\x15\xf7\xa0\x62\x07\x54\xd2\x83\x4a\x5c\x50\x3d\x7e\x25\x0e\x7e\xa5\x3d\x5c\xa9\x03\x57\xda\xc3\x95\xba\x70\xa5\xa9\x82\xba\xdf\x66\xeb\xaf\xed\xfb\x63\x5d\x65\xaf\xf7\x45\x55\x7d\x1f\xec\x30\x3a\x48\x5b\x97\xf9\xd0\x05\xdb\xf5\x1c\xf3\xa1\x13\xd6\x85\x97\xba\xf1\x32\x17\x5e\xe6\xc6\xcb\x5d\xb0\xdc\x0d\x2b\x5c\xb0\xc2\x0d\x1b\xba\x60\x43\x37\x6c\xe4\x82\x8d\xdc\xb0\xb1\x0b\x36\x76\xc3\x26\x2e\xd8\x64\x00\xd6\xc5\xdf\xc4\xcd\xdf\xd4\x85\x37\x75\xe3\x4d\x5d\x78\xd3\x01\xbc\x03\x3d\x70\x5b\xec\xca\xfd\x60\xe7\x53\x6f\xdb\x7a\xda\xdf\x16\x44\xd7\xdb\xda\xdf\x36\x84\x85\x83\xf6\x70\x30\x0b\x07\xeb\xe1\xe0\x16\x04\xef\x41\x08\x0b\x42\xf4\x20\x42\x0b\x22\xec\x41\x44\x16\x44\xd4\x83\x88\x2d\x88\xb8\x07\x91\x58\x10\x49\x1f\xc2\xe2\x47\xd2\xe3\x47\x6a\xe1\x48\x7b\x38\x52\x0b\x47\xda\xc7\x61\x49\xfd\x7d\x7c\x12\xf3\xba\x45\x83\x71\x1e\x3d\x31\xf7\x39\x8a\xb9\x13\xab\x29\xff\x34\x2d\x18\xd2\xc4\xa4\xeb\x69\x1b\x27\x2f\x1b\x24\x66\xac\x8c\xa4\x64\xfe\x09\xea\xfb\xff\x05\x00\x00\xff\xff\xf1\x19\x38\x18\x02\x83\x05\x00") - -func web_uiAssetsConsulUi1931ddc38430fffd3fdb3a7ec5b01c18CssBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulUi1931ddc38430fffd3fdb3a7ec5b01c18Css, - "web_ui/assets/consul-ui-1931ddc38430fffd3fdb3a7ec5b01c18.css", - ) -} - -func web_uiAssetsConsulUi1931ddc38430fffd3fdb3a7ec5b01c18Css() (*asset, error) { - bytes, err := web_uiAssetsConsulUi1931ddc38430fffd3fdb3a7ec5b01c18CssBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-ui-1931ddc38430fffd3fdb3a7ec5b01c18.css", size: 361218, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsConsulUi60e32dd57229711d8752c463a9d423d3Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x7b\xdb\x46\x92\x28\x8c\xff\xef\x4f\x41\xe3\xe4\x78\xc9\x33\x50\xbb\xef\x17\xed\x8f\x93\x38\xb2\x67\xd6\xbf\x75\x2e\xc7\x76\x76\xde\x1d\x1d\xbd\x59\x88\x84\x24\xac\x21\x80\x03\x80\x76\x34\x32\xbf\xfb\xfb\x54\x77\x03\x04\x40\x90\x22\x65\x27\xb1\x73\x3c\xcf\x33\xb1\x58\xe8\x4b\x75\x75\x75\xdd\xba\xba\x3b\x58\x96\xf1\xa8\xac\x8a\x64\x56\x05\x0f\xe6\xf1\x45\x92\xc5\xe3\x60\x96\x67\xe5\x32\x3d\x5a\x26\x8f\xa3\xf3\x24\x4d\xaa\x24\x2e\x1f\x47\xb3\x34\x08\x4f\x83\xf8\x97\x45\x5e\x54\x65\x10\x0e\x16\x3a\x8f\xca\x38\x38\x0b\xc7\x17\xcb\x6c\x56\x25\x79\x36\x8e\xc3\x6a\x72\xfb\x36\x2a\x46\x59\x58\x84\xd1\x83\x1a\x3e\x4a\xe1\x4b\x98\x4d\x6e\x8b\xb8\x5a\x16\xd9\xa8\x1a\x25\xd9\x28\xfe\xfa\x87\xf3\xff\x8e\x67\x15\x72\x78\xfc\x58\xe4\x8b\xb8\xa8\x6e\x6c\xd1\xdb\xb7\x51\xba\x8c\x8f\xb3\x30\xce\x96\xd7\x71\x11\x9d\xa7\xf1\xf1\x43\x1c\xce\xf2\xec\x22\xb9\x5c\x36\xbf\xdf\x15\x49\xe5\xff\x5e\x4d\x8e\xe3\xd3\xea\x6c\x9a\x85\xf1\x6a\x5b\xbb\xc1\xcf\x3f\xc7\xe5\x77\xf9\x7c\x99\xc6\x41\xdd\x05\xd4\x0c\x63\x28\x1b\x2d\xd3\x6a\xfa\x36\x4f\xe6\x23\xfc\x20\x8d\xab\x51\x39\x1d\x67\xd3\x67\xd7\xe7\x71\x81\x92\xcc\x36\x58\xc6\xc5\xdb\x64\x16\x8f\x83\x38\x7b\x1b\x4c\xc2\x62\x3a\x4b\xa3\xb2\x1c\xc5\xbf\x54\x71\x36\x2f\x47\x55\xdd\xca\x2d\x10\xab\x2a\x96\xb3\x2a\x2f\xc6\x08\xa1\xd8\x11\xa5\x0a\x81\x2c\xe5\x83\x72\xb9\x88\x3d\x3c\xac\xa6\xd5\x55\x52\x86\xd9\xd4\xb6\x19\x96\xee\xe7\xb8\x98\x46\x93\x47\x8f\x86\xc7\x01\xcd\xdc\xb6\xe8\x52\xa0\xf5\x8f\x2e\x85\x0a\xd4\xfe\xb9\xa6\x56\x81\xea\x3f\x43\x47\x04\x18\x61\x52\x25\x51\x9a\xfc\x33\x2e\xbe\xee\xfc\x42\xb3\x28\x4d\xc7\xe5\xe4\xd8\x51\x66\x35\x09\xd3\xb1\xc5\x31\x28\xe2\x32\x5f\x16\xb3\x38\x08\x03\xe0\x96\xf5\x87\x32\xbe\xbc\x8e\xb3\x2a\x9e\x07\xe1\x43\x32\x59\x5d\xc6\xd5\x68\x16\x65\x4f\x66\xb3\xb8\x2c\xc7\x35\x0f\x3c\x84\xb2\x28\xce\xde\xa2\xb7\x51\x31\x0e\x4e\x7e\xf8\xfe\xd5\x4f\x2f\x7e\x7e\x72\xf2\xe2\xd5\xcf\xcf\xbe\x7f\xf2\xed\x8b\x67\x4f\x83\xc9\xfb\xf7\xb6\xd0\x2c\xca\x5e\xc6\xd1\xbc\x6e\x08\xfe\x1e\xaf\x59\xe9\xee\x66\x1e\x3d\xb2\x14\xef\xb7\xf3\x74\xb9\x48\x93\x59\x54\xc5\xf7\x6d\xec\x6f\x45\x52\xc5\x4d\x6b\x71\x1a\x1f\xdc\x54\x10\x65\x79\x76\x73\x9d\x2f\xcb\xe0\xe1\xd4\x4e\x3d\x4a\xaa\xf8\x1a\x3d\x7f\xba\xad\x9b\x9f\xca\xc3\xfa\x58\xad\xc2\x64\x5a\xa0\x45\x91\x57\x79\x75\xb3\x88\xc3\xdc\x73\xda\x72\x7a\x9a\x9d\x85\xb3\xe9\x6d\x7f\x4d\x75\x57\x5c\x6b\x85\x85\x2d\xae\x38\xce\x96\x69\xba\x0a\xaf\xa7\xb7\xab\xd0\x73\xe9\x9b\xf8\xa6\x1c\xcf\x26\xe8\x22\x2f\x9e\x45\xb3\xab\x71\x4b\x2a\x4c\x6e\xaf\x4f\xe3\xb3\xe9\xec\x34\x3e\x5b\x4d\x26\xe1\x75\x8b\x61\xa7\x0f\x1f\xb6\x7f\x86\xd7\x1d\x96\xb5\x5f\x3b\x3c\x3c\x0e\x2c\xc7\x06\x49\x36\xba\x7e\xff\xfe\xba\xcd\xa9\x93\x47\x8f\xc6\xd7\x0d\x67\x4f\x1f\xe2\x49\x78\x3d\x5d\xa2\x32\x85\x25\x3b\x41\x45\xfc\x36\x2e\x4a\xf7\xd7\x7c\x39\x8b\xc7\x3d\xb1\x55\xd3\x74\x9c\x84\x79\x18\x4f\xde\xbf\x8f\x57\x93\xf0\x7a\x12\xce\x1f\x3d\x72\xac\xff\x70\x3a\xed\xf4\x67\xbb\xb3\xd8\x74\xe1\x5f\x5f\x6f\xae\x9f\x79\xbd\x7e\xc2\xce\x47\x2f\x6e\x26\xa1\xfb\x77\xba\xd9\xc3\xb0\x08\x00\x14\xaf\x61\x78\x30\x0d\x93\x30\x9a\x5e\x87\xc5\xe4\x01\xc8\x18\xf8\xb2\x0c\x67\xe1\x3c\xbc\x7e\xb0\x96\x6a\x25\x90\x7d\xa7\xb8\x5f\x56\x57\x47\xd7\x71\x75\x95\xcf\xbf\x88\xfd\x2f\x62\xff\x23\x8a\xfd\x8f\x25\xad\x4f\x8a\xf8\x03\x44\xb5\xab\xfd\x41\xb2\xba\x69\xcb\xd5\xde\x5f\x20\xbf\x7a\xf5\xc3\x17\x79\xfc\x45\x1e\x1f\x24\x8f\xad\x88\xed\x08\xe2\x18\x24\xd2\xd1\x2c\xca\xfe\x60\x92\x37\x46\x4f\x4e\x4e\x9e\xbd\x7a\xf5\xf3\x8b\xe7\xaf\x5e\xaf\x7f\xfd\xed\xe5\xf3\xd7\xcf\xd6\x3f\x5f\x3e\x7b\xf2\xb4\x16\xd2\x5d\x60\x50\xc4\xd1\x3c\x78\xd0\xab\x18\x00\xa2\x71\x0b\x6c\x5b\x0f\xd2\xa4\xac\x82\xbb\xa4\x7c\x11\x2f\xf2\x32\xa9\xf2\xe2\xe6\xf1\x22\x2e\xae\x93\xb2\x4c\xf2\x6c\x50\xee\x3f\xb1\xf3\x75\x73\x2f\xb9\xbf\x6e\xba\xfc\x6c\xe5\xff\x16\xe1\x8f\x41\xf8\x67\x71\x01\xf2\x3a\xee\xca\xc6\xd6\xa8\x51\x53\xc6\x7e\xa9\x9b\x0d\xe3\x75\xed\xbf\xe4\xc5\x2b\xd7\x6e\xbf\x9d\xa6\xbb\xaf\x4f\xf7\x6d\xd7\x31\x4a\x08\x93\xb0\x6f\x0d\xc7\x44\x61\x3c\x39\x3b\x3e\x3d\xb3\x02\x3f\x29\x5f\x24\xd9\x1b\x20\xe1\xda\x91\xc1\xfe\xcb\xf7\xf1\xbb\x9e\x26\xb0\xb6\xbc\xfd\xe0\x8b\xfc\x58\x24\x65\x05\x8b\x7e\xb0\x5c\xfd\xb5\xa7\x3a\x93\x8b\x71\x23\xf0\x9a\xe2\x13\xc7\x74\xa3\x78\x3a\x76\x5c\x7c\x19\x57\x7e\x2a\x6c\x6b\x2f\xfd\x20\x4a\xf0\xa2\x4e\xcf\x26\xe8\x22\xc9\xe6\xe3\x78\xfa\x67\x47\x86\xe9\x14\xd6\x96\xf5\xc8\x26\x0f\x92\x8b\x71\x3c\xf1\xf8\xc4\xe8\x49\x9a\xe6\xef\x56\xdb\x26\xed\x2a\x2a\x1d\x95\x1a\x9a\xb9\x06\x27\x8d\xc2\x7f\x91\x94\xd5\xc7\xc7\xda\xae\xdc\x8f\x89\xb5\x6d\x70\x8d\xb5\x75\xb2\x3e\x3e\xda\x8e\x83\x3e\x26\xde\xae\xc5\x35\xe2\x83\x76\xd1\x5e\xce\xe9\x86\x6b\xb9\x98\xef\x68\x69\xc0\x6e\xe9\x88\xb0\x2f\xf6\xcb\x17\xfb\x65\x6d\xbf\x24\x59\x15\x67\x40\x8b\xfb\x7a\x93\x1f\xee\xcb\x39\x65\x9d\x1d\xe6\xa6\x75\x94\x75\x31\x0d\x5a\xe3\x18\x67\xd3\xb5\xee\x9b\x24\xd9\xd8\xe9\xf2\xc9\x16\xa3\xca\xaa\x6b\xaf\x66\x0f\x32\xaa\xaa\xd3\xec\x6c\x5a\xf4\xe5\x92\xe7\xa6\x6e\x50\xe8\xd1\xa3\x71\x33\xd1\x8d\xb0\x7a\xff\xfe\x61\xbd\x72\xff\x23\x89\xdf\x9d\xbc\x7c\xda\xc8\x0a\xff\x7b\xdd\xdc\xa6\xa8\x7b\xf4\xa8\x15\x85\x2a\xbf\x8b\xb2\xe8\x32\x9e\x7f\x7b\x73\xf2\xf2\xe9\x6a\xb5\x26\x71\x76\xd7\xfc\xbf\x79\xfb\x99\x4f\xfc\x9b\xf8\xe6\x77\x98\xf2\x21\xb3\x07\xac\xd5\x6c\xea\x26\x7e\xb0\xc4\x83\x46\x99\xc0\x70\xff\x96\x54\x57\xe3\xe0\x31\x78\xac\xe3\x6c\x9a\x81\xb4\x9b\x45\x4e\x5b\xed\x63\xf3\x54\x6d\x83\x39\x8c\x27\x93\x49\x98\x0d\xba\xf2\xde\xec\x59\x2b\xfc\x3e\xb8\xcb\xb9\x0f\xf1\x41\xfc\x93\xe5\xf3\xf8\x33\xe7\x20\x37\x84\xdf\x98\x85\x0e\xa2\x71\xb9\x88\x66\xf7\xa6\xf2\x67\xed\x74\x7e\x09\xf7\xdd\xc7\xdd\x03\xcc\xa2\x2a\x2f\x76\xc7\xfc\x86\x5c\xa4\xb5\x4e\x71\x96\xe8\xfc\x49\x55\x8b\x09\xa7\x62\x36\xad\xce\x9d\x11\xbb\xc0\x4f\x41\x77\xd7\xe4\xfb\xe8\x3a\xde\x1a\xa7\x3b\xb9\xca\xf3\x8d\x50\x9d\x8b\xdf\xed\x1f\xca\xfb\xfe\xd5\x8f\x4f\x4e\x9e\x7d\xd9\x5e\xf9\x62\x0e\x1f\x66\x0e\x2f\xa2\xa2\x4a\x3e\xc4\x1c\x6e\xa4\x6d\x98\x86\xe5\x5a\xe2\x26\x4e\xe2\x86\xc5\xe4\x36\xdb\x26\x48\xac\xa0\x6d\x71\x5d\xb6\x55\x90\x64\x5b\x04\x49\xd6\x17\x24\x59\x67\x3e\xb2\xcd\xf9\x28\xd6\x82\x64\xd5\x20\x9b\xff\xb6\xea\xa1\xe9\x77\x59\x13\x29\x8c\x1c\x21\xd3\xe9\xed\xaa\x36\x9a\xda\xab\xab\xd8\xb2\xba\x52\x58\x5d\x85\x5f\x5d\x69\x77\x75\xb5\x7f\x86\x69\x7f\x75\xa5\x5b\x57\x57\xfa\xfe\x7d\xda\x5f\x5d\x69\x77\x75\xa5\xd3\x6c\x9f\xd5\x65\x67\xdf\x8f\xa6\xf0\x24\x7e\xff\x3e\x03\x11\x3e\x09\xa3\xd6\xea\x4a\x7b\xbc\x9f\xfa\xd5\xd5\x81\x7f\x9d\x6e\xce\x66\xd4\xac\xae\x74\xf7\xea\xea\xf7\xb0\x7d\x6a\x53\x3b\x3c\xbb\xba\xd2\x8f\xa4\xc8\x67\x77\x2b\xf2\x3b\xe3\xbd\xf3\x59\x00\xcb\x7d\x7f\x85\xdf\x56\xf2\x89\xd7\x89\x56\xfe\xa7\x36\xca\xb8\x06\xce\x67\x65\x10\x96\x1e\x98\xef\xd4\xad\xf9\xaf\xae\x5b\x3b\x61\x9f\x5e\x00\xe9\xa1\x73\x08\xe6\x33\x70\x17\xe2\x37\x4f\xd2\x74\x3c\x41\x69\x9c\x5d\x56\x57\x7f\x26\x7b\x6f\xa9\x7d\x04\x05\xdd\xf5\x4d\xe7\xb3\x47\x8f\xc6\x2d\x9d\xed\xfd\xd4\xf9\x0c\xfd\x58\x24\xd7\x51\x71\x33\xd9\x5f\x8b\xff\xf8\xe4\xe5\xeb\xe7\xaf\x9f\xff\xf0\x7d\x57\x91\xa7\xd3\xe5\x38\x6a\xa9\x72\x37\x91\xa0\xc6\x3f\x44\x89\x4f\xc2\xb2\xdf\xae\xe5\x85\xd3\xe2\x43\xdb\x8d\x26\x2d\x15\x34\xbb\x53\x05\xad\xb7\x32\x3e\x41\xbf\x6a\xfb\x66\x71\xdb\x67\x6d\xff\xed\x59\xf2\x30\xb7\x72\x91\xa7\xc9\xec\x66\x4f\x02\xb4\x3f\x5d\xc5\xe9\x22\x2e\xea\x06\x1e\xc3\x3c\xe6\x17\x7d\x12\x81\x6e\x03\xfd\x62\xd5\xf4\x5a\x49\x97\x9f\xa3\x5b\x94\x4c\xc7\xdb\xe4\xa5\x93\xa6\x87\x48\xc9\xb5\x5b\x14\xed\x72\x8b\xa2\xc6\x2d\x4a\x3f\x29\xb7\x28\x6a\xb9\x45\xe5\xb6\x2c\x88\xf2\x37\xc9\x82\xe8\x85\x03\xf7\x6a\x68\x30\x46\x18\x38\x4e\x3e\xba\xb6\x2a\x02\x30\x06\x51\x3d\xc6\x61\x86\x80\xb9\x7f\xb8\x98\x8c\x4f\x9b\xe2\x67\x93\xad\x69\x6f\xbf\x7b\x5a\xc6\xc7\x1e\x9d\x57\x4a\xab\x30\x9f\xb6\x85\xf6\xd2\xf3\xe8\x6c\x0a\x82\x7b\xfe\x61\x7e\xdd\xa2\xef\xd7\xcd\xb7\x58\x9e\x0b\xb0\x3c\xe7\xde\xf2\x5c\x74\x2d\xcf\xf6\xcf\x70\xd1\xb7\x3c\x17\x5b\x2d\xcf\xc5\xfb\xf7\x8b\xbe\xe5\xb9\xe8\x5a\x9e\x8b\xe9\xec\x70\xbf\x0e\x1c\xa3\xda\xaf\x5b\x4c\xc2\xeb\x96\xe5\xb9\xe8\xd9\x85\x0b\x6f\x79\x76\xe0\x5f\x2f\x36\x57\xde\x75\x63\x79\x2e\x76\x5b\x9e\xfd\x1e\x86\x85\x07\xa0\xb8\x80\xe1\x79\xcb\x73\xba\x00\x25\x0a\xd2\xa9\xf1\xea\xc2\x45\x4b\xa9\x26\x77\xe9\x93\x22\x4f\xbf\x04\xd0\xbe\x04\xd0\xbe\xe4\xcb\xed\x91\x2f\xf7\x25\x52\xf6\x25\x52\x76\x77\xa4\xcc\xcb\x8e\xa3\x24\x2b\xab\x28\xbb\xff\xf6\xc4\x27\xb2\x09\xe4\x87\xf3\x89\x6c\x25\x76\x36\x91\x07\x8a\x20\x84\xa2\xe2\x72\x09\x7f\x97\x93\x7a\xe7\x70\x47\x82\x55\x7b\x7b\xbc\x6a\x67\xe5\xed\xce\xb2\x1a\xac\x66\xf3\xf6\xc2\x78\x72\x36\x39\xc8\xa3\x6b\x08\xfc\x85\x4d\xee\x99\x64\x30\x10\x53\x6a\x65\xa5\x3d\xf7\xeb\xf0\x24\x5f\x66\xd5\x9f\x71\x5b\x4b\x3d\xaf\x67\xb1\x9d\x36\xd5\xb5\xc3\x37\x61\xeb\x5c\x29\x9f\x03\xf5\x90\x3c\xd8\x9a\x8c\xb0\x2e\xbc\xce\xa8\x5a\xf3\x8e\xcd\xaa\xaa\x4b\x3c\x7a\xb4\x91\xd8\xf6\xe8\xd1\x43\xec\x7e\xa6\x69\xfe\xae\x9b\xe9\xf5\xa9\xe1\xbe\x91\x27\xb6\x05\x79\xa7\x97\xdb\xd8\x0f\x85\xf6\x9a\xef\xdd\xd4\xae\xfd\xab\x1d\xb6\x02\x3f\xd9\xa8\xd2\x41\x2b\xd0\x8f\xe2\x13\xde\xb0\xaf\xf2\x37\xf1\xbe\x74\x1e\x0a\x5e\xd9\xfa\x8f\x93\xf2\x28\x8d\x2f\xa3\xd9\xcd\xee\x32\xeb\x93\x69\x1b\x51\xae\xb0\x70\x84\x1c\xde\x8c\xfa\xbc\xbc\x97\x7c\x3a\x8e\x76\x7a\x2f\xe9\xaf\x19\xe7\x2a\x3f\x29\xef\xa5\x1d\xe7\x4a\xb6\x79\x2f\xc9\xff\x1d\xde\xcb\xc3\x31\x0e\x0b\x94\x94\x4f\xea\x65\xd0\x8d\x18\xb5\xd3\xe4\x9c\xc0\xce\x8b\xe7\x4f\x6b\xf9\x6f\x17\x51\x0b\xbe\x75\xcf\xe3\xbe\x47\x50\x1f\xda\x50\x56\x52\xbe\xb0\x0b\xb9\x8f\x5a\x2f\x52\xb7\x0a\x97\xd3\xb4\xe5\x78\xcd\x3c\x1b\xce\xa7\xa7\xd1\x19\x78\x4e\x1f\xe2\x78\x5d\xf4\x1d\xaf\xeb\x2d\x8e\xd7\x05\x38\x5e\xd7\xde\xf1\xba\xe8\x3a\x5e\xed\x9f\xe1\x45\xdf\xf1\xba\xd8\xea\x78\x5d\xbc\x7f\x7f\xd1\x77\xbc\x2e\xba\x8e\xd7\xc5\x74\x7e\xb8\xe3\x05\x7e\x4b\xed\x78\x5d\x4c\xc2\x45\xcb\xf1\xba\xe8\xb9\x45\x17\xde\xf1\xea\xc0\xbf\xbe\xd8\x5c\x5c\x8b\xc6\xf1\xba\xd8\xed\x78\xf5\x7b\x18\x96\x0f\x80\xe2\x05\x0c\xcf\x39\x5e\xe5\xf4\x22\x4c\x9d\xe3\xd5\x04\xb2\xc2\x8b\x96\xe3\x95\xdf\xa5\x5c\x96\x8b\xb2\x2a\xe2\xe8\xfa\x33\xd7\xe3\xeb\x61\x7c\xf2\xa6\xf4\x1e\xaa\x7f\x1e\x2d\x2a\xd0\xca\x47\xff\x5d\xe6\xd9\x51\xb4\x48\xba\xb3\xf3\x8d\x3b\x14\x36\x8f\xaa\xa8\x2e\xfb\xb8\x29\xf9\xe1\x33\xb4\xb5\x42\xbd\xb9\xdb\xd1\x50\x0f\x71\x78\x19\x57\xc7\x4d\x9f\x6b\x0a\xd4\xc3\x5c\xad\x26\x77\x8c\x33\x5a\x38\x79\xb8\xcb\x9e\xac\xcb\x5e\x55\xd5\xe2\x0f\x9d\x28\xf3\x25\x61\xe5\x0f\x98\xb0\x12\x23\x97\x43\xf8\xf3\xff\xfe\xe9\xd9\xcb\xff\xfc\xf9\xc7\x27\x2f\x9f\x7c\x37\x8d\xd1\xd3\x27\xaf\x9f\x9c\x3c\xfb\xfe\xf5\xb3\x97\x9d\x0f\xcd\x89\xc7\x2d\xdf\x83\xf9\x2c\x78\x30\xd8\x64\x90\x95\xee\xa0\xe3\x72\x7b\x78\x7e\x96\x26\x71\x56\xb9\x85\xb4\x3d\x3d\xe6\xf0\xed\xde\xa1\xa4\x18\xd7\xd7\x66\x5e\x8c\x0b\xe7\x3b\xe0\xea\x22\x2f\xae\xa3\xea\x7b\x9b\x97\x0c\x7c\x9c\x5c\x8c\xf7\x4b\xc3\xf4\xfe\x78\x10\x3c\x9c\x4e\xe3\xaf\x6f\xb3\xf2\x38\x5e\xd5\x0b\xcb\x35\xfa\x34\xaa\xa2\x19\xd8\xab\xc5\x3a\x10\x76\x3b\x9f\x1d\xc7\x2b\x9b\xf9\x91\x77\x33\x34\x6a\x6c\x3f\x46\xf2\x47\x3e\x94\x54\xf2\x71\x93\x3f\x96\x77\x89\xd5\x3d\x6e\x77\x18\x12\xc1\xbf\xa9\x92\x2f\xe2\x7f\x2c\xe3\xb2\xfa\x4b\x5e\xfc\xef\x65\x5c\x40\xab\x30\x3f\x55\x98\x95\xc7\x59\xd8\x24\x50\x1e\x17\x61\x92\xcd\xe3\x5f\x8e\xa3\x30\x99\x1f\xa7\xab\x46\x92\xc4\xff\xf5\x60\x64\xff\xf7\xd7\x67\xaf\x47\x8f\xdf\x92\xc7\xd1\x2c\x6d\x0f\xbc\xfc\xfa\xab\x5b\xdb\xe0\x6a\xf5\xc0\x97\xfc\xea\xf6\x76\x5b\xe3\xab\x95\x2d\xf3\x5f\xab\x1e\x56\x2f\xe3\x59\x5e\xcc\xf7\xc6\xad\x1d\x5a\x4a\x27\xd5\x55\x91\xbf\x1b\x65\xf1\xbb\xd1\xb3\xa2\xc8\x8b\x71\xf0\x9f\xf9\x72\x74\xbd\x2c\xab\x51\xb9\x88\x67\xc9\xc5\xcd\x28\xca\x46\xc9\x3c\x58\x9f\xe8\xb8\x63\x4c\x8f\xbf\xba\x4d\x57\xf7\x1b\xd7\x01\xc6\xc7\x79\x92\xcd\x93\xec\xf2\xa8\x58\xee\xd8\xec\xfc\x7c\xd8\x07\xe8\xe7\xc8\x07\xf3\x64\xc9\x72\x17\x1b\xb5\x29\xd0\xf0\x51\xa7\xa1\x7d\x88\x9f\xde\x87\xf8\xb3\x3c\x2f\xe6\x49\x16\x55\x9f\x21\xe9\xd7\x24\xc8\x3c\x09\x8a\x70\x59\x24\xc7\xd1\x0e\x72\xaf\xc7\x6b\xcf\x00\xb5\x57\xad\x2b\xf8\xff\x1c\xbd\x74\xdd\x1d\x3d\x7f\x7a\x3c\xfa\xea\x36\x6a\x53\x7e\xa0\xc7\xfb\x10\x7d\x3e\xfb\x8c\x88\xbd\x83\x96\x51\x15\xa5\xf9\xe5\xe3\x79\xa3\xfb\xca\x7b\xd0\x22\x29\x67\xf9\xdb\xb8\xb8\x39\x9a\x5d\x45\xc9\xdd\x66\xf9\xa7\x42\x98\x43\x24\xb5\xe5\xca\xf2\x57\x90\xd7\x3d\xe2\xf5\xe5\xf5\x30\x47\x97\xbf\x96\x20\xb7\x86\xde\x5d\x0e\xe4\x16\xb7\x32\x06\x0a\xec\x4e\x78\xfc\x08\x93\x6b\x4f\xd9\x97\xd3\x7e\xb8\x79\x7a\xdb\x92\x18\xa8\x58\xcc\x3a\x91\x1b\x84\xd0\x3a\x78\x13\x9f\x06\x6b\x46\x08\xfe\x94\x9d\x8d\xed\xe7\xd5\x24\xdc\x5d\xa5\x5c\xe4\xd9\xbc\x5f\xa5\x08\xab\xc9\x2a\x4c\x36\xf0\xf9\xfd\x90\xa9\x63\xd6\xdb\x8c\xf5\xae\x49\xff\x71\x73\x34\x6b\xa3\xf8\x33\x48\xd3\x5c\xc1\xb4\x34\x93\xe5\xd8\xca\xa1\x8d\xdc\x28\xc2\xd4\xfd\x2a\xab\xbc\x88\x7d\x3a\x91\xcb\x7b\x0d\x73\xcf\x86\xcb\x69\x0a\x74\xf5\x5d\xfc\x25\x2f\xc6\xc5\x24\x9c\x4d\x53\x74\x9d\xcf\xe3\xd4\xfd\xf6\x0b\x3f\xa8\x67\x33\x98\x4e\x5d\x6a\xf0\x28\x43\x51\x55\x15\xc9\xf9\xb2\x8a\xcb\xaf\xc7\xc9\xb4\xfd\x7b\x3c\x09\xf3\xe9\x72\xdd\xf8\x38\x0b\x6f\x57\x93\xc9\x31\x14\x0b\xf3\x69\x32\x09\x23\xe4\xf9\xa6\xc5\x5b\x2d\x1e\x19\x97\x61\x15\xe6\x61\x12\xce\x26\xab\xc9\x04\xcd\xa2\xaa\x1f\x01\xa8\x77\xfa\x91\x5d\xb7\xe3\xd8\x96\xab\xae\xe2\x6c\xb0\x58\x35\x5e\x86\xf1\xba\xc1\x55\x5d\x09\xe4\x61\x3c\xaa\x53\x31\xf2\x8b\xd1\xeb\x9b\x45\x6c\x65\xa1\x97\x8d\xb1\xa7\x55\x35\x3d\xbd\x2d\xab\xa8\x5a\x96\xc7\x41\xf0\xa7\x18\xb9\xbf\x4f\xf2\x79\x1c\x56\x49\x95\xc6\xc7\xc1\xeb\xab\x78\x74\x1e\xcd\xde\xc4\xd9\x7c\xe4\x19\x3c\x9e\x8f\xde\x25\xd5\x15\x08\x51\x27\x5d\xc2\x79\x5c\x45\x49\x7a\x1c\xa3\xeb\xb8\x2c\xa3\xcb\x78\x75\x66\xe7\xa4\x78\x50\x15\x37\xb7\xe5\xbb\x04\x86\xd9\x6e\x7c\x72\x3b\x8b\xca\x78\x84\x8f\x8b\x29\x48\xe9\x0c\x3d\x39\xcf\x8b\xca\x22\x18\x16\x6e\xe8\xe5\x29\x3e\xf3\x35\xa6\x01\x0e\x1e\x9c\x17\x71\xf4\xe6\x81\xad\xc6\x31\x69\x2a\xfe\x94\x81\x35\x97\x17\xc9\x3f\xe3\xb9\x13\xf6\x55\x18\x04\x93\x6e\x71\xd6\x14\xff\x4b\x5e\x9c\x27\xf3\x79\x9c\x6d\x2d\xcb\x9b\xb2\xdf\xe7\xd5\x5f\xf2\x65\xb6\xbd\x59\xdd\x14\x7d\x9d\x5c\xc7\xf9\xd2\x0d\xa0\x5b\xc6\x34\x65\x4e\xf2\xec\x22\x4d\x66\xd5\xb6\xe6\x28\x6d\x8a\x3e\xcf\xde\x46\x69\x52\x77\x5c\x17\xf3\x22\xe0\xb8\x98\xb6\x49\xf9\xe7\xa9\xc0\xf8\x6b\x57\xef\x55\x5c\xbc\x8d\x8b\x56\x07\xc7\x0e\xee\x6b\x3a\xd8\x6a\xe5\xd8\x2e\x9a\xdc\x16\xd3\x68\xe5\xf8\xa1\x58\xfd\xc3\x5b\x80\xed\x8d\x40\x9f\x1a\x5d\xb9\x95\xf3\x7d\x74\x1d\x87\x81\xd5\xd1\x41\x98\x4d\x5c\x8d\x46\x5b\xef\x55\xcf\x95\xb6\xb5\x2f\x92\x6c\xfe\x24\x4d\x3b\x01\xfc\xa1\x7a\x7f\x71\xe5\x82\xc9\x6a\x66\x37\x87\x06\x3b\x4c\x06\x2a\x9e\xb4\x8a\xdb\x1e\x97\x76\x2f\x7d\xef\xfa\x3f\xb5\x8a\xdb\xfa\x73\xbb\x03\xb4\x77\xfd\xa7\xad\xe2\xb6\xfe\x2a\x5c\x76\x32\x93\x67\x6b\xc9\x3c\xb7\xc9\xc9\x5f\x76\x74\xfe\x08\x3b\x3a\xe9\xf4\xa2\x4e\x4e\x3e\x6c\x47\xa7\xb6\xf6\xee\xbe\x82\xe5\x53\x33\xd9\xb7\x1b\xeb\x17\x49\x5a\xc5\xc5\xda\x5f\x6f\x0c\xf6\xed\x6e\x64\x96\xc5\xb3\x6a\x4d\x84\xbb\x1d\xc9\x72\xf5\xd5\x6d\xc3\x14\xd1\xd7\xc1\xff\xc9\x9a\x72\x51\x76\x19\x1f\x8f\x82\x3f\x45\xc7\x41\x30\xec\x6e\x16\x80\x73\xf0\xbf\x82\x06\xc1\x1a\xe3\x3d\x03\x49\xae\x5a\x06\xde\x48\xd1\xf3\x43\x8a\x03\xfc\x10\xab\x8d\x4f\xed\xde\x47\x68\x13\x30\xcf\xa6\x05\x2a\x17\x69\x52\x8d\x83\xe3\x60\x82\xae\xa3\xc5\x78\x1e\xcf\xf2\x79\xfc\xd3\xcb\xe7\x27\xf9\xf5\x22\xcf\xe2\xac\xda\xee\xbf\x6c\x92\xf1\x71\xfc\x4b\x34\xab\x80\x98\x6e\x67\xed\xf8\xbf\xc0\x05\xb7\x8e\xcd\x63\xa0\xe1\x7f\x85\xf3\xb8\xac\xc0\x81\x07\xb2\xfc\xd7\x57\xb7\x09\xc0\x73\xf8\xcf\x12\x3e\xb6\x67\xe0\x24\x9a\x5d\xc5\x47\x27\x79\x56\x15\x79\x7a\x3c\xca\xf2\x23\x6b\x8e\xb5\x08\xec\xc9\x32\x40\xc4\x93\x01\x29\xee\x6c\x91\x62\x7a\xfb\xca\xa2\x06\xf2\xf3\xb8\x42\xeb\x1f\xe1\xd3\x35\x6a\xfe\x63\x0f\x12\xfa\xc2\xaf\xd6\xf5\x5e\x75\x6a\xbd\xea\xd5\x79\xe5\x6b\xfc\xd8\x70\x42\x5d\xb1\x81\xb4\xeb\xb7\x8b\x0d\x81\x7d\x6b\x60\x66\x35\x0d\xc1\x8f\xf0\xbb\xb8\x8a\x8e\x2b\x04\xff\x40\x7b\xb3\x22\x59\xac\x9b\xa9\x7f\x35\x7b\x44\xad\x4b\xca\xc2\xe0\x89\x5d\xcc\xfe\xbc\x5c\x30\xf9\xba\x40\x0e\x32\xad\xfc\x1f\xc7\x15\xfa\x71\x9d\xa6\xf9\xe8\xd1\xb8\x68\xff\x9e\x76\xbe\x4e\xc2\x86\x47\x7e\xfc\xe9\x10\x1e\xc9\xfa\x64\x01\x8e\xc8\x1a\x22\x77\x7e\x45\xd7\xf1\x26\x1f\x65\x83\x04\x73\xf5\x3a\x33\xb2\x09\xf2\xed\xcd\x8e\x33\xb4\xde\x06\x68\x47\xec\x8a\x4d\xfe\xfa\x69\xbb\x96\x77\x0a\x7c\xb4\xc9\x3c\x83\x1f\x5e\x0d\x82\xd7\x33\xee\xaf\xdf\x19\xe4\xeb\x4e\x3e\x6e\x0b\xb9\xa7\xdb\x4d\x88\x66\x7a\x9e\x3e\x7b\xf1\xec\xf5\xb3\xcf\x7c\x86\x0e\x0e\x71\xec\xb8\x77\x6a\x70\x8f\xb9\x55\x60\x59\x25\x69\xf9\x38\x29\xff\x92\xa7\x73\x1b\x06\xe9\x7f\x7a\x13\xdf\xbc\xce\x9f\x14\x45\xd4\xcd\x9c\xb3\xb6\x9a\xed\x79\x20\x51\x2e\x8c\x3e\x9e\x06\x4d\x07\x34\x68\x54\xde\x64\xb3\xd1\x9e\x7a\x74\xad\x3e\x93\xf9\x71\x19\x96\xf1\x22\xb2\x67\xce\x8f\x93\x9e\xca\x29\x0f\x55\x39\xa3\x7c\x1a\xbd\x8b\x92\x6a\xbc\xa1\x41\xde\xbc\x7d\xfc\xd5\xad\xcd\xa5\xf2\x28\x4f\xc6\xe5\xc4\xc6\xc0\xc0\xb6\xb4\x26\xa7\x55\x0a\x1d\x6c\x76\x04\xc0\xa2\x7e\x30\xbd\x51\x5e\x16\x81\x51\x3e\x8e\xa7\x7f\xf6\x2b\x2e\x3e\x0d\x7e\x39\xf2\x13\x65\x6b\x05\x67\x93\x30\x5f\x0d\xd2\x6c\x77\xb8\xb0\x4b\xb9\x0f\xa6\x56\x72\x38\xb5\xee\xda\xe1\xb9\x8b\x2e\xc9\x5d\x74\x49\xf6\x52\xae\xe9\xf4\xb6\xb7\x4a\x2d\xa9\xec\xc9\x7e\xbb\x6d\xdb\x0e\xfa\xa3\xb5\x10\xd8\xb0\x30\x6a\xed\x31\x30\xe2\xec\x34\x42\xaf\x5e\xfc\xf4\xd7\x9f\xff\xfd\xd9\x7f\x9e\xd9\xd1\xa7\x8d\xc5\x90\x5b\x11\x76\x64\x15\xe4\xa8\x8a\x7f\xa9\x1e\x2f\xd2\x28\xc9\xfe\x75\x34\xbb\x8a\x8a\x32\xae\xa6\xcb\xea\xe2\x48\xaf\xc9\x54\xed\x27\xd9\x3f\x68\x70\xe1\x45\x1a\x5d\x42\xb9\xbf\xc0\xbf\x9f\xd2\x50\x37\xf4\x44\xea\xae\x93\x2b\xff\xd5\xe6\x0f\x36\x68\xa4\x1d\x34\x1e\x3d\x1a\x97\xce\x09\x69\xd8\x15\xe8\x92\xf6\xe8\x92\x0e\xd2\x25\x6d\xd1\xa5\x88\x67\xcb\xa2\x8c\x8f\x07\x68\xd2\xd2\x4e\x03\x64\x49\x37\xc8\x92\x0c\xe8\x82\xf4\x0e\x5d\xb0\xf3\x0e\xb9\xcf\xc7\xf7\x19\xdc\xa8\xd8\x66\xb0\x83\x8a\x2f\xb2\x28\x7d\xbc\x4c\xf6\xdc\x3f\x3b\x6c\xb7\xe1\x53\xdc\x64\xe9\x8f\xf9\xd7\xd8\x65\xe9\x8d\xfb\x45\x1c\xcd\xe3\xa2\x19\x37\x8c\x2c\xdb\x31\x2b\x2e\xcc\xf6\x38\xb5\xb5\xee\xc4\x2c\xab\x3f\xbc\x8c\x2f\x8a\xb8\xbc\x3a\x1e\x31\xec\xd1\xf8\x47\xa7\xf3\xee\x5e\x84\x33\x24\x7b\xdb\x11\x1b\xdb\x15\x83\xe3\x70\xa5\x7a\xdb\x12\x9b\x55\xeb\x6d\x89\xc1\xaa\x45\x3b\x6c\xb5\xd7\x19\xae\x66\x9d\xee\xbe\x87\xf0\x2e\xbb\xcd\xdb\x5f\xbe\x95\x81\x1d\xaa\x8f\xb5\x8a\x8b\x5f\x79\xeb\x3b\xab\xc5\xe9\x47\xdc\xf4\xde\xbd\x5e\x87\xb0\x4c\xe6\x16\xc9\xf6\x22\x8d\xf6\x5b\xa4\x80\xff\x8e\x65\xda\x0c\xef\x31\xe0\x3f\x68\xd3\xec\x37\x92\x0d\xeb\xa4\xd8\xa4\x69\xad\x73\xdb\x9d\x16\xa7\xd9\x5a\xab\xd4\x08\x14\x6d\xad\xd6\x92\x00\x2d\xdb\xa5\x8d\xa1\x0f\x1b\xd4\xd1\x84\x61\x3f\x3c\x7c\x72\xf2\xa2\x3c\xbe\xfd\xd1\xde\x41\xf1\xd4\x71\x4a\x79\x5c\x21\x00\xa3\x2e\xd4\x46\x64\xe2\xe9\x9f\xc7\xb7\xcf\x9f\x1e\xc7\xe8\xf9\x53\x58\x2b\x2f\xf3\x34\xee\x57\x6b\xc3\x86\x2a\xad\x06\x08\xb5\x61\xe9\xfc\x86\x84\xfa\xe4\x89\xb3\x61\x1b\x0d\x10\xa7\x65\xa5\x7c\x1c\xfa\x6c\xd8\x30\xc5\x1d\xb2\x31\x4f\xe6\xb3\xa3\x45\x91\xbf\x4d\xac\x4f\xfa\x21\xc6\xcc\xfa\xbe\x89\x8f\x73\x72\x2a\xfd\x75\xee\x7d\x48\x77\x9d\x9c\x4a\x3f\xd1\x7b\x1f\xd2\xf6\xd6\xf3\xa1\x86\x1d\xe8\x85\x5d\x19\x68\x6d\xfb\xc6\xf2\xc3\x96\xac\xc6\x61\x55\x91\xfe\xaa\xf6\xdd\xbd\x95\xc5\xa0\x45\xf7\xe3\x0f\xaf\xd6\x49\x77\x30\x54\x97\xec\xb8\x2c\xd2\x26\xe9\xae\x8f\xc2\x01\xc1\xe4\x27\xcb\xea\xea\xbb\x3a\xf1\xef\x65\x3c\x4f\x8a\x78\x56\xfd\xf4\xf2\xf9\xf1\x60\x8e\xf1\xb7\x4f\x5e\x3d\xfb\xf9\xa7\xe7\x3f\xff\xf4\xf2\x45\x30\xf9\x53\xe0\xd0\x81\xc9\x3e\x8f\x66\x6f\x82\x01\x82\x3d\xa9\x37\x90\x77\x93\x2b\x9c\xe5\xf3\xf8\x38\x0d\xc1\x26\x8c\x37\xec\xe1\x43\xa8\x77\x0f\x3b\x1a\xfa\xee\xd5\xdc\x33\x7a\x61\xd1\xdd\x6b\xca\x6a\x1a\x7d\xf4\x29\x3b\x71\x84\x7b\xe5\x09\xb7\x39\x03\x2f\xf2\xcb\x7c\x59\x01\xf9\x93\xf9\x71\xd5\xa3\x6c\xf5\xb1\xf8\x32\xb5\xbd\xdc\x31\x84\x7a\x2d\x9e\x38\x21\xfd\x3a\x7f\x13\x67\xc7\x6d\x27\x3d\x6a\x71\xcb\x07\xd9\xf1\x6b\xb6\x3b\xd0\x8a\x1f\xa8\xd8\xb3\xe1\xd3\x9a\x9e\x1f\x84\xa0\x9f\x95\x01\xec\x9a\x3c\xfc\xd5\x80\xff\x10\x96\x9d\xdb\x62\x12\xaf\x01\x72\x7b\x5b\xcc\xf2\xc3\xb6\xb8\xe7\xfd\x2d\xee\xe5\x96\x2d\xee\xf9\x69\x7c\x36\x5d\xfa\x2d\xee\x79\x77\x8b\xbb\xfd\x33\x9c\xf7\xb7\xb8\xe7\x5b\xb7\xb8\xe7\xef\xdf\xcf\xfb\x5b\xdc\xf3\xee\x16\xf7\x7c\x9a\x1f\xbe\xc5\x5d\x86\x49\xb3\xc5\x3d\x9f\x84\xb3\xd6\x16\xf7\xbc\xb7\x01\x3d\xf7\x5b\xdc\x1d\xf8\xd7\xf3\x4d\xbd\x36\x6b\xb6\xb8\xe7\xbb\xb7\xb8\xfb\x3d\x0c\xab\x66\x40\x71\x0e\xc3\xab\x6f\x8b\x99\xd7\xb7\xc5\xf8\xed\xca\x70\x16\xce\x1f\xec\x1f\xe1\xb9\xfb\x5a\xe5\x3d\x9d\xc7\x75\x43\xbf\xb1\xff\xb8\x35\x7e\x9f\x95\xc7\x95\xdd\x10\x69\x1c\xa1\x75\x1e\xdb\x96\xe0\x71\x33\x88\xda\x28\xe8\x5a\xe4\x3d\x87\xaa\x17\x1f\x8e\xee\x8a\x0f\x47\x77\xc5\xcd\x37\x30\xfe\x50\xeb\xa0\x0e\xca\xde\x35\xdc\xb6\x3f\x79\xc8\x90\xd3\xbb\x86\x9c\x6e\x0c\xf9\x10\xd7\xb3\x8d\xdf\x9d\x1e\xc3\xe1\x4e\x66\xa3\xff\xfa\x38\x1e\xe2\xf5\xdd\x1f\xc7\xc3\xf1\x3a\xd0\xe1\x3a\x14\xb5\x41\xd7\x6a\xe8\x89\xf3\x46\x78\xdc\x7d\x21\xee\x61\x7e\xd5\xc0\x89\x53\xff\x75\xda\xd6\x35\xb1\xb5\xbf\x3c\xe4\x32\xae\x7e\x78\x97\xd5\x42\xe5\xd5\xcd\xf5\x79\x9e\x96\x3e\xa9\x7a\xba\xab\x0c\x34\x53\x3d\x7a\x34\x2e\xa6\x05\x72\xb9\x26\x83\xa9\xa2\x83\x4d\xd4\xb3\x95\xdb\x20\xe2\xa4\xa5\xc7\x56\xf6\xbd\x17\xb4\x58\x96\x57\x08\x06\x7d\x63\x0f\x6b\xd6\xcf\x93\x65\x9d\x23\xaa\x93\xdb\x8b\xbc\x18\x5b\xc7\x6d\x4a\xfe\xb5\xfa\xff\x35\x3b\xd5\x3e\xd5\xe0\x5f\xab\x3f\xfd\xa9\x1e\x3f\xc8\xfb\x87\xd3\xa6\xc4\x69\x75\xf6\x75\xfb\xc7\xf1\xed\xea\x41\xf5\x3f\xe9\xd7\x89\x27\xcb\x38\x9b\x84\x0f\xf1\x90\x4e\xae\x26\xb7\x3e\xb1\xf7\xb4\x3a\x9b\xac\x26\x93\xe3\x3b\x46\x58\x0e\x1e\xf7\x4e\xe2\x72\x1c\x87\x77\x55\x1d\x67\x93\xc9\x71\x0b\xa7\x2d\x08\x6d\x3f\x34\x7a\x17\xf5\xb3\xb0\x9a\xd8\x84\xdb\x7a\x1d\x0c\x5c\x5a\xff\x39\x1c\x58\x9e\xfd\x4e\x37\xfb\xcf\xbf\x1c\x94\xfe\xc3\x1e\x94\x6e\x45\x9a\xae\xef\x7b\xb3\x7f\x19\x57\x55\x92\x5d\x96\x1f\x70\x7e\x79\x39\x74\xa9\xff\xb2\xb9\x03\xc7\xb7\xdf\x9c\x60\x3e\x28\x1c\x50\xdf\x4e\x51\x1e\x47\xd3\xd3\xb3\xcd\xb3\x88\xfb\x9d\x7d\x7e\xf4\x68\x1c\x4d\xa3\x3a\xec\x99\x8f\xf3\xf1\xed\x2a\x8c\x27\xe1\xed\x2a\xbc\x6d\x76\x68\x8f\x33\x2b\xda\xf7\xbe\x0e\x7f\x57\xa3\x3f\xb6\x5c\x79\x68\x74\xd3\x4d\x6e\x22\x56\xf5\x79\x55\x4b\x88\xa1\x90\x7f\x74\x80\x3f\x6c\x0d\x0a\xbf\x0c\xa6\x7f\x6e\xb2\xfd\xf6\xa3\x92\x3f\xb5\xb2\xd7\xe0\x41\x3f\x17\xef\xdf\x47\xeb\x67\x3f\x9d\xc1\xe8\x4e\x8c\xf8\x39\xb7\xb7\xba\x7d\x7b\xf3\x2a\x5d\x5e\x8e\x03\x77\x33\xd7\xe4\x41\xd1\xdc\x47\xfd\x70\x3a\xcd\x50\x56\x3e\x7a\x54\xff\xe5\xb5\xe2\xfb\xf7\x63\xf8\x35\x8d\xd7\xbb\xe7\x13\xbb\x98\xdb\xf5\x1a\x26\xa9\xab\x37\x80\x76\x2b\x0d\x70\x1a\xaf\x83\xcc\x2d\x65\xb2\x2d\x48\x30\x59\xf5\x4d\x98\xc6\x87\xdc\x02\x07\x15\x35\xe0\xa1\xa7\xd3\xf9\xaf\xf4\x60\x42\xaf\xdd\xf5\x3a\xfb\xc8\x07\xe7\xaf\xef\x72\x30\x77\xbf\x17\xb0\xaf\x77\xe9\x5a\x19\x70\x2d\x1b\x4d\x56\xfc\xa1\xad\xc5\xe8\x57\xb1\x16\x8b\x7d\xac\xc5\xf4\xb7\xb5\x16\x8b\xdf\xc7\x5a\xfc\xec\x2e\x0e\x77\xca\x78\x48\x1d\xff\x1a\xd7\x40\xd8\x05\x98\xc4\x7f\x98\x2b\x20\xfc\x2b\x24\xf7\xbf\xfd\x61\x77\xaa\xdf\xb6\x68\xc1\xba\xeb\xaf\xbf\xba\x8d\xc6\x11\xd8\x04\x56\x27\x6e\x5c\xb1\xd2\xce\xa1\x9b\x38\xab\x61\xaf\x34\xc1\xc9\xe1\x7b\xed\x2f\x97\x69\x5c\x1e\x57\xc8\xfe\x1b\xae\xbb\x05\x58\xeb\xd7\x9e\xdb\xe3\x4d\xcc\x69\xd7\xe8\x8a\xc1\xd1\x15\x83\xa3\x6b\xef\xff\x0e\x6c\x2c\x6c\x50\x76\x28\xda\x91\xfe\x96\x54\x19\x0a\xd3\xfc\xc6\x54\x69\x45\x81\xee\x24\xcc\x46\xd8\x67\xdb\x0d\xe3\x8d\x4a\x2f\xf2\x5f\x0e\xd3\xe8\x9f\x51\x5a\xe0\xc7\x16\x36\xf5\x0d\x12\xf5\x09\x82\x7d\x33\xeb\x9a\x0f\xee\xe4\xd4\xa1\xbb\xd0\x07\x24\x8f\xed\x7c\x81\x63\x4f\xfb\xcc\xb6\xf1\xc5\x3a\xfb\x62\x9d\x7d\xb1\xce\x7e\x0f\xeb\x0c\x96\xdf\x1f\xc6\x34\x83\xc1\xfc\x2e\x86\x19\x74\xfc\x09\x99\x65\x3f\x7a\x93\xfb\xb8\x42\xf5\x9f\xe1\x2b\x17\x97\x7b\x3e\x8f\xb3\xca\x5e\x25\x7b\x5c\xa1\x0d\x58\xf8\x7d\x3e\xef\x16\xe9\x02\x3e\x7d\x43\xce\xb3\xc0\xc7\x30\xe3\x7e\x4b\x2a\x7e\x7a\x86\xdf\x0e\x42\x1e\x6c\xf6\xed\xfd\xae\xcc\x17\x0b\xb0\x23\xd3\xae\xe2\x28\xad\xae\x6a\xf2\xfd\x56\x06\xe0\xb0\x5c\xef\x85\x84\x7b\x74\xea\x1e\x96\x3d\xc0\x84\xbc\xeb\x09\x99\xcf\x8f\x23\x2e\xa3\x2a\x7e\x17\xdd\x6c\x9e\x17\x5a\xef\x18\x7d\xdd\xcc\xf4\x70\xa2\xa9\x6f\xe2\xc8\x13\xa7\x3c\xb2\xa7\x89\x86\xe7\xbf\x3f\xd1\x2d\xe8\x96\x23\x37\xfb\x70\xc1\x68\xf4\x5f\xc7\x77\x20\x59\x23\x37\x8c\xd1\x07\xf4\xfd\x69\x1e\x74\xba\xe7\x5a\xfc\x75\x1c\xaf\xbb\x9e\x7d\xd9\xd3\xf7\xaa\x9b\xf9\x44\xce\xed\xfc\x3e\x13\xeb\x89\xf0\x5b\x9d\x5e\xfb\x9d\xcd\xe4\x7a\xb4\x49\x76\x91\x7f\x14\x53\x79\xbb\xe5\x12\x4d\x37\x8e\x66\xec\x65\x9a\x6c\xb5\xef\x6a\xdc\xe7\x71\x59\x15\xf9\x60\x50\x2a\xba\xc7\x31\x8f\xdd\x2f\xfb\xec\xb9\x94\x5c\x23\x07\xbc\x49\xfd\x87\x8d\x68\x24\xbf\x4a\x44\xa3\xdc\x27\xa2\x91\xff\xb6\x11\x8d\xf2\xf7\x89\x68\xe4\x9f\x5b\x44\xc3\xdf\x84\xbf\x35\x51\xa4\xca\x8b\xf8\xa3\x5f\x98\xe9\x5a\xfd\x3c\xee\xcb\x3c\x54\x1f\x82\x6f\x76\x9c\x86\x2e\x36\xbf\xf3\x48\x3a\x78\x72\x56\x34\x59\x33\xad\x57\x2f\x3c\x5c\xee\xdf\xe3\xfa\x8e\x8f\xa6\xd2\xea\x0b\x6a\xb7\xa4\x24\x37\x43\x1d\x56\xe2\x77\x9f\x77\xb9\x6b\xf0\x8d\x52\x2d\xef\xca\x5d\x2e\x3f\x20\x94\x64\x87\xf0\xf5\x57\xb7\xc9\x38\xf9\x95\x63\x49\x87\x45\x3e\x5e\xe6\x7e\x53\x0b\xfe\xfd\x38\x71\x90\xf0\x45\x3e\x8b\xd2\xe3\x0a\xd9\x7f\xf7\x8c\x2d\x35\xdc\xf3\x70\x3a\x2d\xdc\x16\xdb\xa4\x4f\xcf\x2e\x45\xdd\x9d\x91\x5f\x7f\x75\xbb\x47\x04\xa5\xe3\xa8\x54\x8d\x2f\xf4\xa0\xb6\x68\x76\xce\xca\xaf\x13\xd1\xaa\x79\x7a\xc8\xd6\xf9\x9c\x26\xf3\x37\x30\x14\x7b\x21\xac\x5d\x94\xeb\x63\xf7\x2a\x4e\x2f\x9c\xb2\xec\x9c\xa2\x28\xe3\x59\x11\x57\x3b\x6f\x0e\x58\xf7\x54\xc6\xe9\x45\xeb\x28\x44\xed\x3c\xf4\x8f\xa1\x45\x87\x5e\xc1\x37\x78\x0e\x3f\xcd\xb3\x2d\xc4\xec\x0c\xf7\xc1\x47\x3b\x1e\x3a\xc0\x92\xd1\xea\xf1\x0c\xf0\x18\x3a\x85\xbd\xd7\x0c\xd6\xe3\x2a\x6b\xea\x7f\xc0\x51\x37\x3b\x83\x07\x1e\xc3\xeb\xd6\xe9\xe5\xd8\xd9\xa1\x7d\x28\x56\xed\x79\x5a\x23\x57\xd7\x68\x32\x29\x3f\x78\x09\xf4\x6f\x08\x69\xba\x8c\x26\xab\xcd\xe4\xc1\x59\xe7\x12\xdb\x79\x63\x2d\x5d\xdb\x3b\x6c\x17\x1f\x76\xc0\xef\xbc\x7f\xc0\x6f\xb1\x25\x01\xfc\xfc\x34\x3e\x9b\x2e\x7c\x02\xf8\x79\x37\x01\xbc\xfd\x33\x3c\xef\x27\x80\x9f\x6f\x4d\x00\x3f\x7f\xff\xfe\xbc\x9f\x00\x7e\xde\x4d\x00\x3f\x9f\x5e\x1f\x7e\xc0\x6f\x16\xce\x9b\x03\x7e\xe7\x93\xf0\xa2\x95\x00\x7e\xde\x4b\xcf\x3e\xf7\x09\xe0\x1d\xf8\xd7\xe7\x9b\x36\xe0\x45\x93\x00\x7e\xbe\x3b\x01\xbc\xdf\xc3\xb0\x19\x0b\x28\x9e\xc3\xf0\xea\x3b\x6c\xcf\xeb\x3b\x6c\x9b\x1b\x6c\xc3\xf3\x03\x1e\x2e\xaa\xf2\x45\x9e\xe6\x97\x9f\x4f\xbe\xc6\x5d\x76\xe8\x9b\x24\x9b\xf7\xef\xe1\x5b\x16\xc9\x07\xdd\xc0\xb7\xcf\xbd\x01\xf5\xf6\x47\x4d\x50\x7b\x57\x6b\x73\x42\xdb\x61\xb5\x35\xd8\x94\x7c\xec\xc7\x6d\x16\xbd\x67\x28\xdc\x7b\x13\x45\x5c\xe6\xe9\x5b\x7b\xf5\xa2\x03\xa4\x79\x34\x3f\x6a\xb1\x5d\x77\xee\xdd\xf2\x7b\x1c\x67\x6f\x93\x22\xcf\xc0\x59\x1f\x7e\xa9\xb8\x9d\xe7\xf0\x79\x39\xad\xfd\x6b\x1f\x9d\xef\xfa\x64\xcd\xea\x77\x9c\x5d\x88\xfc\x31\x85\x6b\xdb\xd9\x8f\x45\x7c\x91\xfc\x12\xac\xef\x59\x43\x6d\xf8\xba\xf4\x22\x9f\x7f\xb7\xa5\x42\xef\xd3\xba\xce\xcb\x66\xea\x9a\x95\xd1\xd9\x82\x49\xc3\xde\x85\x73\xdb\xb0\x18\x66\x98\x59\x7d\x53\xf1\xd1\x75\x94\x45\x97\xb0\xe0\x2f\xd3\xe4\xfa\xba\x7f\x25\xca\x37\x1e\xba\xae\xf0\xf8\x68\x51\x24\x6f\xa3\x2a\x7e\xec\x58\x6a\xa3\xa5\xcf\xe9\x99\xcc\x06\xf9\xf2\xf1\xd1\xfc\x26\x8b\xae\x93\xd9\x51\x9c\xc6\xc0\xfa\x47\x11\xf4\xb3\xa6\x45\x67\x54\x1f\x43\x02\xba\x48\x9a\xe3\xc0\xe6\xe2\x68\xe4\x38\x73\xdc\x4e\xa9\xaf\x0e\xc6\xfd\x73\xc1\x3b\xb2\x68\x3d\x76\x2e\xf6\xaf\x89\x73\xfd\xa6\x86\xc3\xfa\xdf\x5e\x7f\xf7\xe2\xdb\xa8\x28\x51\x15\x5f\x2f\xd2\xa8\x8a\xc7\xb7\xc9\xfc\x38\xf8\xfb\x0f\x7f\xfd\xfe\xdf\xfe\xf4\xef\xef\x82\xf0\x3c\xcd\x67\x6f\x8e\xff\xe5\x36\x28\x5d\xf0\x35\x38\x3e\x0d\xbe\xa9\xa2\x73\x8f\x68\xf0\x28\xaa\x2a\x2b\x3b\xbf\x01\x53\x0b\xfe\xcd\xb3\x59\x9a\xcc\xde\xc0\xb7\x86\x47\x83\x6f\xae\x8a\xf8\xc2\xbe\xfe\xf3\x8b\xd3\x1b\xf0\xf7\x85\x7d\xf4\x27\xb0\xb7\x7f\xd8\x78\x68\x70\x7c\x7a\x2a\xc3\x53\xa6\x42\x76\x16\x9e\x9e\x32\x1a\xea\xb3\xb3\xd0\x5e\xe3\x7a\x7a\xba\xe6\xf8\x20\x4e\xed\x23\xc1\xa7\xb7\xbd\xba\x84\x84\x41\x1a\x9d\xc7\x29\x7c\x24\x32\x0c\xa0\x87\xb0\x6e\xe7\x94\xa8\x90\xc2\x3f\xf6\x3f\x3a\x14\xb6\x65\xf8\x9b\x9d\x9d\x85\xc1\x22\x2a\xa2\xeb\x18\x14\x7e\x70\x7c\x7a\xb6\x0a\xfb\x8d\x77\x11\x93\x07\x21\xd6\xad\xab\x0e\x1e\x54\xe4\x07\x24\xc3\xba\xef\x53\xca\xc3\xa0\x8a\x8a\xcb\x18\xea\xfe\x7c\x9e\x46\xd9\x9b\xc0\x83\x8b\x18\xc8\x9b\xe5\xf9\x22\xce\xe2\x62\x94\xe5\x45\x7c\x11\x17\x85\x95\x47\x1f\x48\x84\x2d\xc8\x1c\xd4\xe8\xd9\xd9\xbe\x3d\x9d\x2f\xab\xca\xda\x5c\x76\x32\xd7\x5c\x07\xfd\x92\x76\xbf\x32\xe4\xe1\x29\xc3\xe1\x29\x93\x21\xf6\x54\x66\x67\xad\x06\x2c\x3e\x67\xe1\x29\x14\xd3\xb6\x4e\xe0\xb9\xb4\xae\x46\x7c\x35\x7e\xd6\x94\xae\x07\x71\xff\x51\x39\xe0\x55\x54\x3e\x7b\x1b\xa5\xc1\xf1\x45\x94\x96\x71\x18\x2c\x17\x6f\x23\x5b\x20\x00\xf6\x0c\x72\x1b\xc7\xb0\x4b\xc2\xee\xbd\x24\x17\xc1\xd9\xea\x5f\xc2\xeb\xb8\x8a\x8e\x6f\x9d\x02\xb3\x09\x3d\x77\x0b\x0e\x74\x75\x5e\x06\xab\x95\x33\x8a\xeb\x53\x8d\x3f\x97\x71\xd5\x08\xa7\xd7\xf5\x32\xaf\x42\xff\xb5\x5e\xf8\x3f\x64\xe9\x4d\x53\x6c\x3c\x69\x4b\xaf\x2d\x96\x56\x1b\x89\xfa\x21\xfb\x4f\x45\x80\xfd\xa4\x7e\xf9\xfe\xea\xbb\x2c\x1e\x16\x60\x8d\x60\xda\x90\x3e\x44\x87\xa4\x9e\xfe\xed\xf3\x76\xc8\xf4\x74\x29\x73\x8f\x19\xda\x50\x2c\xb7\x55\x74\xe9\x7a\x0c\x56\x87\xce\xd3\x62\x71\x64\x5f\x2e\xfa\x54\xe6\x69\xfe\x9f\xff\x11\xfd\xf3\x46\x14\x5b\x14\x8d\x7f\xba\x29\xf8\x26\xcd\x2f\x93\x6c\x73\xba\x74\x18\xc0\x90\xde\x26\xf1\xbb\x20\x3c\x85\x15\x7c\x16\x9e\xc2\x3a\x5f\x0b\xd6\x01\x89\x4a\xc3\xe0\xff\xfc\x9f\x6c\x34\x82\x6f\x3a\x0c\x6c\xcf\x47\x65\x9a\x57\xbe\x8d\xe0\x1b\x7b\xdb\x24\x08\x89\x2b\x7b\x11\x69\xb0\x77\x93\xae\x51\x82\xc3\xe0\x8a\x04\xb5\xec\x58\x7f\x1c\x39\x7f\xcb\x15\x72\x62\x2c\x3c\x0d\xdc\x0d\xae\xc1\xd9\x59\xa7\x6c\xe0\x24\x4d\xd8\x42\x77\x50\xc0\x84\x87\x8c\x67\xe6\x2e\x7e\x3e\x74\x40\x3a\x0c\xec\x54\x1c\xb9\x9b\xba\xea\x66\x37\xa6\xe7\xd4\x49\xe6\x9e\x50\xed\xca\xe5\xce\x88\xc3\x80\x63\x16\x34\xa2\x96\xd1\x90\x36\xf2\xb7\x81\xee\x49\x80\x7d\x3e\x6f\x17\xc5\xf1\x3f\x0e\x17\xbd\xdd\xd5\xf4\xfb\x49\x5f\xbf\x04\x36\x17\x75\x9b\x19\xca\x5f\x25\x76\x61\x17\x79\xb6\x7b\x91\xff\xf2\x4f\xfe\xd7\x44\xbe\x79\xbb\x45\x18\xd7\x16\xe4\x0e\xa9\x4c\xc2\x60\x9e\xbc\xf5\xf6\x0d\x6e\x2d\x7a\x67\x03\x90\xfe\x4a\x0b\x9c\xc6\xa6\x9b\x1c\xe4\x17\xa7\x5f\xd6\x03\x0b\xb4\x2e\xe2\xfb\xdb\xf8\xbe\x6f\x99\x76\xb9\x2c\x72\xe5\x78\x18\x44\x45\x12\x1d\x39\x1b\x35\x0c\xbe\x2d\xe2\x68\x3e\x2b\x96\xd7\xe7\x3b\x9b\x69\xad\xc2\x9b\x24\x4e\xe7\x5b\xd6\xf6\x79\xd3\x5a\x79\xc8\xfa\x1e\xea\x89\xb4\xad\xa9\xda\x54\xb5\x11\x03\xdb\xd3\xbb\xa4\xba\x3a\xea\x76\x77\xb6\x03\xf7\xed\xf3\xb1\x59\xee\x0e\x11\xb7\xd1\x28\xbb\x83\xf4\xf5\x14\x59\xb6\xb1\xcf\x05\xde\x41\xea\x3d\x08\x7d\xb8\x52\xb8\x1f\x3d\x0e\xa2\xc6\x96\x21\x3b\xf3\xb0\xbc\x93\xbf\xf6\x1a\x78\xd3\xd8\xfd\x47\xde\xf4\x03\x02\x2a\x4a\x8f\x6a\x17\x66\xa3\x2b\xbf\xc2\x8f\x5a\x7d\xde\xc1\x3c\xfb\x13\xf6\xbe\xc4\xdd\xc9\x6c\xbb\x3e\xde\x41\x57\x2b\x1f\xee\x47\xd3\x7d\x06\xbc\xf7\x50\x07\xc7\xb1\x15\x78\xc7\xa0\xaa\x3c\x4f\xcf\xa3\x83\x97\x49\xcd\xc5\x49\xb6\x58\x56\x9e\x8f\x49\x58\xb7\x76\x54\xe5\x97\x97\x7e\x0d\xf3\x90\x87\xc1\xec\x2a\x9e\xbd\x39\xcf\x7f\x69\x18\x7c\x60\x1e\x76\xd1\x68\x2f\xa3\xaa\x67\x86\xed\x12\xfe\x7b\x10\x66\x6f\x1b\x6c\x8d\xf3\x61\x38\x6e\xfc\xdc\x69\xf8\xcc\xf3\xd9\xd2\x45\xf9\xac\x1e\x3e\xd0\xfe\x59\xdb\x1d\x1d\xf3\xa7\xd8\x69\xfe\x64\xdb\x5c\x9b\x26\x4c\x19\x6e\x75\x72\xb6\x64\x3b\x76\xd1\x1a\xb2\x84\x36\xe3\xb7\x77\x5c\xb7\x16\x26\x0f\xfa\x39\x69\x5f\x2e\x83\xfa\xe3\x5e\x06\x55\x3f\xcc\xbc\xd3\x94\x7d\xfc\xdf\xdf\xe9\x85\xfe\xf6\xfb\x61\x53\xd6\x31\x5b\x3c\x6f\xc7\x45\xb7\x5b\xb5\x2e\x28\x48\x70\xcb\x47\x92\x6b\x6b\xeb\xda\xbe\x87\x1f\x7c\x9f\x57\xc9\xc5\x7a\xf3\xf1\xb4\xeb\x59\x09\x1b\xe5\x3a\xb2\x65\xd7\x4e\x94\x2b\x61\xbc\x1a\x7d\x9c\x75\x9b\xf0\xce\xd5\x40\x0c\x72\xab\x6c\xb6\x02\x65\xc0\x06\xef\xc7\x13\x5d\xe9\xb5\x48\xea\x57\x29\xdf\x24\x8b\xa3\x34\xc9\xde\x58\x7b\xc4\xc5\xe2\x70\x27\x16\x47\x43\x1c\x9e\x06\x17\xf9\xcc\xfb\xc3\xed\x10\xdc\x86\x90\xdd\x61\x42\x84\xc1\x37\xd7\xcb\xb4\x4a\x16\xe9\xda\x9c\x38\x8f\x2f\xf2\x22\x3e\x6a\x21\x11\x56\xc5\x32\xbe\x4b\x0c\xdf\xa9\x3b\x6b\x85\xe0\xe2\xa2\xc2\xc6\x45\xd7\x93\x14\xfc\x8f\xa0\x71\xf4\xdd\x3c\xad\x03\x8c\x5e\x63\x35\xe5\x5d\x5c\xb2\x91\x64\x28\x5a\x2c\x10\xa0\xfb\x73\x95\xff\xdc\x68\x8d\x75\xe5\xae\xc4\xa7\x61\x70\x7f\xda\x44\x17\x55\x5c\x7c\x6c\xd2\xf4\xf4\x50\x3b\x46\x71\x9d\xcf\xa3\xf4\x28\x8d\x6e\xec\x2e\xdb\x3a\x70\xd3\xd1\xd0\x1d\x75\xbb\xb6\x07\x44\x48\xc2\xad\xcb\xe0\x28\x8b\xde\xae\x8d\x84\x86\x54\x7b\xd8\x0a\x03\xbe\x21\x0f\x03\x77\x05\x40\x70\x1e\x65\xd9\xa0\xc3\x58\xf3\x79\xb3\xed\xe0\xe2\xf2\xcd\xfe\x08\xee\x6d\x45\x1c\x86\xb6\xec\x3a\x8c\xbb\xf8\xc4\x55\xfe\xf9\x3a\xce\x96\x1b\xf1\x6e\xbb\xc6\xde\xc4\x37\x8b\x22\x2e\xcb\xf5\x32\xab\x21\x27\x76\xf5\xb5\x96\x5b\xab\xd6\x75\xbe\x2c\xe3\xe5\x62\x5d\x69\x99\x0d\xaf\xce\x61\xbb\x51\x87\x6c\x2d\xb3\xb8\x75\x9e\xf2\xeb\xf8\xc8\x39\xc4\xeb\xa0\x0f\xd9\x30\x47\xb7\x5b\x59\x2d\x5e\x6f\x4f\x40\xed\x63\x1f\x40\xb2\xb6\xd8\x74\x55\x71\x53\x5e\xf8\x68\x15\x76\xe6\xf9\xf3\xec\x3f\x92\xf8\x1d\x2c\x2a\x6b\x4d\x25\x99\x35\x7c\xdc\xef\x1e\xb1\xf5\x5a\xb0\xe6\xd9\xb3\xac\xb2\x39\x07\x79\xf6\xec\x97\xa4\x0a\xc2\xa0\xae\xf6\x3a\x4f\xe3\xc2\x9e\x15\x6d\x09\x75\x55\x77\x7a\x16\xf6\x3a\x75\xcb\xb1\x27\xe1\x77\x14\xb7\x56\x5e\xbf\x7c\x4b\xbb\x54\xf9\x02\xb8\x3a\xaf\xaa\xfc\x3a\x08\x83\x34\xbe\x00\xe4\x8a\xe4\xf2\xca\xae\xb1\x23\x82\xc3\xd6\xff\xcf\x9c\xbe\xd8\x11\x0c\xd9\x9c\xe7\x9a\xab\xef\x98\xe7\x41\xe3\xb5\x3f\xbd\xad\x10\x8a\xd8\x7f\x7a\xe1\xa7\xdb\x04\x8e\x8a\x9b\xa0\x27\x74\xf7\x1c\x45\xa7\x8d\xfb\x0c\x67\xbb\x1b\xb5\xd5\xb1\xf0\x6c\x79\x87\xa0\xdb\x3e\xa0\xc1\x38\x40\xdb\x08\x18\x8e\x06\x6c\xa1\x40\xbf\xe2\x5d\x8b\xf6\x70\xdd\xd3\xed\xe1\x23\xea\x64\xb6\x09\x1a\xe6\xd3\x1d\xc3\xda\x3a\x4b\x17\x79\x5e\x6d\xa8\x09\xaf\xa4\x93\xec\x22\xdf\xa6\x2b\x86\x78\xcc\x3d\xc6\xe8\x6b\xed\x89\xc9\x26\x9f\x6d\xba\xb2\x64\x8f\x1d\x48\x7f\xda\x6b\x16\x81\x00\x80\xff\x5f\x2e\x13\x30\x60\x8f\x60\xbe\xe6\x47\x2e\x7e\x9c\x64\x6f\xf3\xe6\x6c\x58\x72\x11\xd8\x16\xaf\x02\x7b\x79\x62\xd0\x15\x87\xe1\x7a\x19\x5a\xc1\x52\x1d\xe8\x51\xf6\x9c\xc9\x34\xae\x46\xb3\xed\x57\xb4\xce\xf3\xeb\xd6\x15\xad\x3f\xbb\x60\x51\x18\xf5\x7e\xa7\xbd\xdf\xe5\x5e\x27\x71\xfa\x1e\xe1\xfa\x20\xce\xfa\x28\x78\x98\xb9\xf3\x37\xc5\xd4\xa2\xd2\xbc\x21\x14\x4d\x93\xad\xc7\x71\xa0\xb9\x76\xd2\x4e\xb4\xf5\x38\x4e\xb4\xe5\x38\x4e\xd4\x3f\x8e\x13\x75\xdc\xaf\x68\xe7\x1b\x42\x2e\xb9\x1f\x66\xd9\x5d\x5a\x3a\xcf\xaf\xed\xaf\xb1\xbb\x64\xb6\x63\x14\x80\xe7\x1a\x23\xb7\x90\xd1\x3c\x29\x17\x51\x35\xbb\x7a\xf6\x36\xce\xaa\x71\x16\xbf\x1b\x7d\x07\xc6\x81\xfb\xe9\x4d\xf8\xc9\x64\x65\xcd\x03\xa8\x58\x6f\x00\x36\x0d\x5c\xc6\xd5\x93\xaa\x2a\x92\xf3\x65\x15\x8f\x03\x9b\x11\x32\x79\x50\xa1\xb2\x8a\x8a\xaa\xfc\x5b\x52\x5d\x8d\x83\xff\x61\x6f\x87\x8d\xd1\x02\x9c\xd5\xac\xf2\xef\x6e\x8d\x3d\xd2\x80\xaa\x6b\xbe\x9a\x4c\x56\xde\x12\xe9\xe0\x78\x9e\x2e\x8b\xf1\x64\xb5\x0a\x93\x69\x3e\x2e\xdb\xd7\x7c\xda\xe9\xf9\xf0\xeb\x43\x7b\xad\x76\x4d\x28\x7b\x83\xe8\x5d\x27\xdf\x76\xd4\x9f\x84\xad\x8f\x1b\x7d\x39\xbb\x2b\x3c\x8d\x0e\xec\xc3\xd5\xdb\xdd\x76\x6d\xd5\x85\xa7\xe9\x81\xad\xd7\x35\x7b\xed\x97\xed\x98\xcd\x2c\xdc\x15\x0d\x5a\x86\xb3\xbb\x73\xd2\xfa\x8e\xec\xa7\xb2\x81\x9d\x26\xd5\xab\xbf\xfd\xf3\x87\x1f\xee\xd8\xdb\xfa\x66\x1e\xa7\xf6\x69\xef\x6f\xca\x2a\x99\xbd\xb9\x39\x7c\xbb\xab\xe7\xc5\xd7\xdb\x5e\xeb\x84\x96\xa1\x3d\x57\xeb\x80\xe6\x8b\x68\x96\x54\xd0\x25\xd9\x08\x12\xd8\x02\x55\x11\x65\xa5\xcd\xb8\x3d\xf2\x68\xf6\xf7\x6c\xe9\x59\x18\x5c\x97\x41\x37\x33\xa6\x9f\x27\x73\x08\x2a\x35\x94\xb5\x92\x75\x88\x77\x97\x06\xfb\xb0\xe6\x00\xe0\x76\x16\x9e\xe2\x4d\x63\xd4\xab\x56\xde\x75\x20\xb7\xe8\xc8\xed\xda\xb0\x51\x84\x91\x7f\x89\xbd\xac\x6e\xac\x62\x3f\x78\x63\x78\x80\x59\x7f\xbf\xfd\x61\x30\x98\xc1\x31\xfc\x54\x16\xcd\xf3\x1f\xfe\xb6\x48\xf2\xe7\x3f\xde\x2b\x3b\xe7\x74\xc3\x45\x3b\x03\xd7\x3e\xca\x2e\xe3\x0d\xf6\x6e\x17\x69\xfc\xdf\x7d\x0a\x79\x97\xb8\x57\x92\xaf\x1d\x28\xeb\x7f\xa4\xf1\xfc\x5b\xff\x5e\x7f\x55\x00\xf6\x21\x10\x36\xca\xe6\xf1\xbc\xed\xd6\xb1\x8e\x73\x72\xd4\x4c\xc7\x51\x55\x24\x97\x97\x71\x71\x04\xeb\x41\xac\x33\x1f\xc2\x3b\x2b\xda\xff\x6c\xab\x55\xbb\x0a\x30\x1e\x30\xa6\x83\xf0\x94\x9a\xb3\x56\xe0\xef\x8e\x44\x88\x7a\x04\xde\xd2\xf3\xf6\x60\xb3\x34\xbc\xe5\xe7\x4c\xa9\x83\x56\x45\x97\x0d\xeb\xe5\x10\x66\x53\xc2\xc2\x62\xca\x68\x18\x4d\x99\x0e\xd3\x29\xc7\x61\x39\xbd\x7d\x1b\x17\x55\x32\x8b\xd2\xe3\xdb\xd3\xf4\xec\xb8\x1d\xa7\x9f\x1e\x91\x3a\x5a\x3d\xae\xfe\x44\x26\xff\x33\xf6\xe7\xee\x57\xa0\x1c\xbb\x45\x71\x13\xd7\xb6\xef\xb4\x7d\x5d\x17\x3d\x22\xc7\xd5\x11\x59\x85\x4c\x0e\x64\x4b\xe3\x55\xc8\xc4\x71\x7b\x61\x34\xc7\x90\xea\xda\xab\x55\x68\x2f\x3d\xcf\xb3\x0a\x50\x5c\xad\xec\xaa\x4e\x3e\x38\xa3\x2b\x9c\xe7\xd7\xc7\xbb\x6c\x5d\x98\x0e\x28\x57\x4f\xd3\xf1\x43\x12\xe6\x45\x02\x1e\xaa\x3d\x33\x11\xd4\x74\x0b\xc2\x37\xf1\xcd\x79\x1e\x15\xf3\x27\xb3\x59\x5c\x96\xb5\x41\xd3\x1e\xaf\xb5\xaa\x7e\x1e\xb2\x6b\x1d\x0a\x65\x5c\xf9\x24\x7c\xc7\x05\x03\x06\xa3\x37\xcd\x7e\x4e\x93\xb2\x8a\xb3\xb8\x28\xd7\x56\x65\x03\xaa\xed\xb7\x9f\x8b\x7c\x59\xc5\xbb\x4b\xae\xc2\x79\x32\x7f\x9e\x95\x71\x51\x3d\x73\x9e\xf7\x06\xc2\x5f\x01\x13\xad\x2b\xfb\x4c\xef\x71\xf0\x3f\xb6\x2f\x95\x3f\x35\x46\x6f\x7d\xce\x3a\x9e\xae\xdb\xea\x59\xa6\xeb\x00\x43\x1a\xcf\xcf\x6f\xc0\x48\xb5\x45\xfd\x72\x1d\xea\x39\xf8\x53\x3c\x59\x85\xef\x92\x34\x7d\xea\x2e\xef\xd8\x86\xfb\x20\xb1\x7b\x14\x44\x45\x7c\x9d\xbf\x8d\xb7\x50\xad\xf9\xba\x0a\xfd\xde\xf8\xf1\x6d\x47\x6c\x75\x18\xf7\x50\xeb\x3d\xac\x9b\xea\xb4\x92\x5c\x8c\x1f\x9e\x7a\x37\xe8\x0c\x25\xd9\x2c\x5d\xce\xe3\x72\x1c\xa3\x37\xf1\xcd\x49\x3e\x8f\x27\xfe\x88\xf2\x83\x18\x95\x55\xbe\x00\xcd\x11\x5d\x46\x6e\xdc\x8d\x4a\x38\x45\x08\xf5\x49\x57\x8e\xff\xe5\x14\x7c\xe7\xff\x77\x1a\xc0\x44\x24\x55\x7c\x1d\x9c\xfd\x4b\xb8\x9e\x9a\x89\x3d\xe1\xd9\x74\x34\x9d\x4e\xb3\xf7\xef\xdb\x3f\x8b\xc9\x2d\xf8\x88\x7e\x3a\xeb\x55\xf1\xb5\x53\x47\xc7\xd5\x29\x3e\x7b\xe0\x78\xb9\x58\x66\x28\x8b\x7f\xa9\xc6\xe3\xc9\xf4\xcf\xb7\xfd\xf2\xf1\x71\x67\x8e\xc3\x66\xc7\x2b\x7e\xf4\x28\xf6\x4e\xc7\x64\x35\x59\x75\xce\x51\x9d\xda\x3a\xad\xd5\x77\x76\xda\xa0\x76\xb6\x26\x49\xdf\x99\xf1\x14\x49\x36\x19\x69\x80\x18\xc7\xb6\xef\x0e\x49\xac\x53\x9c\x3f\x48\x1e\x3d\x1a\xe7\xd3\xca\xbe\x15\xf1\x1c\x24\x6a\x77\xc7\xb1\x16\x59\xd3\xe9\x34\x59\x4d\x26\x93\x07\xd5\xe9\x6e\x84\xc7\x55\x98\x4f\xce\x9a\xb1\x86\x4e\xa7\x0e\x73\x93\x0d\xa5\xc7\xf3\xaf\x6d\x7b\x9e\x0d\x51\xbe\x88\x33\x7f\x77\x8a\x15\x1a\xa7\xf1\xd9\xe4\xb8\x53\x62\x96\xe6\x65\xdc\x2f\xb2\x0a\x2d\x78\x73\xa9\x0c\x2c\x88\xbe\x58\x5a\x2b\xab\x87\xa4\xfe\xda\x9d\xe8\xce\xb4\xfa\x86\x5a\x6b\xbd\x09\xd5\xc3\xe4\x86\x30\x82\x36\x1e\x3b\xba\xc3\x93\x07\xc0\x03\xf7\x64\x6a\xaf\x47\x1e\x3d\xda\x64\x01\xbb\xd1\x71\x0a\x5e\xd4\xb4\xb5\x63\xd1\xae\x8e\x16\x51\x11\x67\xb5\x78\x9c\xec\xb9\xb4\xc3\x2e\x25\xca\x8e\xc8\x6b\xed\x58\x1c\x91\x60\x53\x22\x45\x73\x27\xee\x2d\xaa\x75\xc6\xc0\x78\x12\x82\xe4\x99\xe7\xef\xb2\xe3\x78\xfa\xe7\x5b\xaa\xa6\xd3\x69\xc3\x4f\x7e\x6c\x4d\x87\x9e\xaf\x42\xf3\xb0\x53\x88\xaa\xf6\x6f\xc7\x50\x5d\xc5\xe5\x1b\xaa\x79\xa8\x16\x50\xc3\x9c\xd6\x74\xb7\xa7\xbc\x5b\x4d\x56\xab\x6e\x82\x41\x72\xb7\x3d\xbd\xac\xae\x8e\xe6\x89\xbb\xbc\xfa\x2a\x2a\x2a\xf4\x4b\x9d\x17\xfb\xeb\x19\xd6\x6b\x80\x35\xa1\x5b\x38\x04\x75\x9c\xe2\x38\x48\xe6\xd0\x4e\x9e\x1d\xdf\x9e\xfc\xdb\x93\xef\xff\xfa\xec\xf8\xf4\xd6\x2d\x58\x57\xc1\xbe\xd2\x32\x0f\xc2\x59\x9e\xcd\x8f\xc1\x90\x7b\xed\xae\x86\xaa\xf5\xc8\x69\xe0\x13\x79\x57\x61\x53\x6f\x99\xb5\x6b\x76\x4a\xe6\xcb\x2a\x38\x5b\x9d\xad\xdc\x73\xc3\xe5\xf1\x2d\x74\x7f\x7c\x7b\x68\xf7\xdb\x3a\x5b\x9d\xad\x56\x61\x1b\x72\x7c\xbb\x0a\x3b\xbf\xec\xd4\xed\x3f\x57\xfb\x25\x85\x84\x07\x4e\xfa\xae\x3b\xb1\x42\xfb\xf4\xe8\x83\xcd\x87\xd7\xbe\xa4\x91\xfc\xb1\xd3\x48\x66\xbb\x1d\xe0\xab\x3f\xfd\xfb\xbf\x5d\xe3\x7f\x7c\x37\xec\x00\xbf\x72\xc2\x24\xf8\xeb\x32\x2a\xc0\xf5\x7a\x32\xf3\x91\xf7\x5a\xa6\x05\xde\x31\x86\x7f\x93\xec\x0d\x78\x63\x8b\xa4\x77\xe0\xae\x2c\x66\xf6\x9f\xc4\x9e\x0b\xdb\x3c\x37\x61\x01\x47\x96\x93\x9b\x2d\x1a\xa8\x63\x9d\x47\xee\xf7\x1e\xf6\xc8\x0d\x69\xed\xea\xfb\x48\x51\x6f\xbf\x07\x56\xbb\x4b\x9b\x6d\xe4\x4d\x7b\xd7\xae\xf6\xbc\x9b\xaf\x3b\xd2\xff\xeb\x4e\xd8\x46\x27\xf1\x2f\xb1\x45\xdd\x0b\xb0\xc1\x1e\xea\x43\x0a\x1f\xd8\x3c\x48\xbd\x6d\xed\x5b\x89\x38\xdc\x41\x7b\x6b\xd3\xef\x93\xcd\xa3\x2a\x3a\x72\xaf\xb4\x75\xa6\xc0\x1d\xa2\xac\x23\x1a\xb6\x7d\xd3\xd9\xc5\x3d\x1d\xe8\xbe\xbd\xa5\x04\xde\xbf\xe8\xc4\xce\xdc\x62\x87\x11\x40\xa7\xee\xa8\xc9\x50\x1b\x14\xea\x07\x4e\x7a\x6f\x84\x3f\x76\xf4\xc6\xee\xe8\x6d\x0b\x51\x86\x29\x62\x59\xba\xa6\x87\xe3\x5f\x77\x72\x04\xef\xcb\x94\xf0\xc5\xa5\x57\xe9\xee\xf6\x7a\x13\xbe\x71\x6c\xd2\xcc\x67\x50\xdf\x6f\x38\x4c\x5a\x1a\x4a\x1b\xbd\x8c\xb3\x76\xde\xc3\x9d\x25\x7d\xc1\xba\xb8\x9d\x94\x83\x12\xaf\xda\xdb\xaa\xf5\xd1\x1a\x47\x97\x6b\x90\x03\xb1\x4b\xc7\x6f\xe9\xcc\xfb\x24\xdb\xea\x50\x77\x4f\xe9\x74\x1a\x6c\xed\x47\xaa\x81\x0d\xdf\x9d\x3b\xb1\x7b\x8f\xa0\xa3\xf7\x3f\xce\x18\xba\x4d\x7e\xe0\x28\x36\x4b\xa8\x75\x91\xa1\x06\xe4\x1d\x27\x93\x48\x48\x43\x16\xf2\x50\x1c\x72\x44\x69\xfb\x96\xac\x17\xe3\x75\x50\x2e\x0c\xc0\xe5\x4c\xf2\x65\x2d\x70\x83\xeb\x16\x93\x87\xc1\x3f\x96\xf1\x32\x5e\x87\xf2\x0e\xdd\xa4\xed\x9b\x54\x9d\xcd\xda\xf9\xf6\x8b\x10\x8b\x78\x91\x97\x49\x95\x17\x37\x8f\xf3\x64\x3e\x3b\x5a\x14\xf9\xdb\x64\x1e\x17\xf6\x6e\xc4\xbb\x76\x6c\xbb\xbf\x93\xbd\x76\x70\x9d\x8d\x65\xaf\x8f\x6a\xdf\xa3\xd8\x8a\xbc\xb8\x30\x40\x58\x4d\x2d\x72\xed\xeb\x14\xf3\xad\xfb\xb7\xfd\x97\x71\x7f\xe3\xeb\x14\x9d\x6f\x66\x67\x7c\xda\xdc\x7a\xb1\xaa\xd5\xe7\x78\xf3\x3a\x6e\x5b\xde\x4e\x3d\x72\x0e\x55\x5e\x3c\x7f\xba\xb2\x12\x70\x5c\x07\x4f\x1c\x75\x2f\x1b\x47\xb7\xc3\x3f\xad\x6a\xe0\x1a\x6e\x14\xee\xb7\x1d\x4c\x1e\xc0\x72\x9b\xda\xe0\xc9\xf8\xae\xc6\x5f\xd9\x2b\xc8\xa0\xd6\x24\xf4\xd5\xaa\x47\x8f\xc6\xdb\xba\x69\x15\xb7\xfc\x96\x4d\xd7\xe2\x2a\x78\xd0\x09\xdb\x3c\x74\x2d\x65\xd3\x60\x59\xc6\xb5\x53\x1b\x15\x97\x25\xaa\xd5\xeb\xf8\x16\x34\xce\xf1\x60\x4f\x50\xe1\x66\x61\x1f\x37\x5d\x39\x35\x01\xfc\x54\xb7\x7f\x07\xc1\x96\xd5\xd5\x77\x71\x75\x95\xcf\x83\x89\x77\x5f\x81\xbf\x90\x6f\x67\x7f\x82\xd8\xaa\x9d\xcf\xd6\x54\xdd\x3e\x14\xf7\x15\xf0\xae\x75\x1b\x78\xb8\x61\x3e\x5d\x8e\x93\xf6\xb6\xad\x63\xf7\x0f\x7f\xf1\xb2\xd7\x6c\xcb\xc6\xdb\x63\x9b\x7a\xb8\xea\x24\x4c\xda\x3b\xc9\xbd\x1e\x6a\x03\x6f\x8f\x7d\xea\x81\x7a\x77\xb6\xed\xac\xbb\xf2\xf0\xc6\xa1\x62\xaf\xf5\xa4\x1d\x56\x98\xef\xdc\x03\x9f\x85\xf3\x3d\xf6\xc0\x41\xf0\x5e\xe4\xc5\xf5\xef\x1b\x75\x00\x0c\x06\x63\x0e\x2f\x9f\xbd\x7a\xf6\xba\xe5\xf3\xdb\x2f\xab\xb3\xf0\xd9\xcb\x97\x3f\xbc\x6c\xc1\xdd\xb1\xe1\xcd\xc0\x41\x9c\x55\xc5\xcd\xf1\x69\x30\x4b\xe3\xa8\xb0\x07\xa5\x83\x33\xdb\xf0\xab\x9f\xbe\xfd\xee\x79\xbb\xe5\x34\x8f\xe6\x49\x76\xd9\x0a\x25\xfc\x87\x35\x39\x5b\xa1\x84\xa6\x93\x55\xe8\x4b\x1f\xdf\xae\x42\x0b\x3d\xbe\x8d\x7f\x49\xaa\xa1\x8e\x5e\xff\xe7\x8f\xcf\xbf\xff\xeb\xc0\x10\x3e\x0c\x83\x7d\xe3\x14\x76\x6e\x3f\x3c\x4a\x31\xc0\x22\x77\x95\xae\xa2\xf3\x72\x6b\x40\x03\xbc\x7a\x50\xa4\x36\xa0\xf1\xa0\x7d\x11\xf6\x97\x60\xc6\xff\x0d\xc1\x8c\x7c\x77\x30\x83\x55\xf9\x7f\xbf\xfe\x2e\xfb\xcf\xfd\x82\x19\x27\xc0\x97\xbb\x22\x1a\xb5\x2d\xdb\x3a\x4c\xf3\x3a\x3a\xaf\x9b\x79\x7e\x99\xe5\x45\x3c\xaf\x5b\xf3\x3f\x9b\xf6\xaa\xe8\xfc\xe9\xba\xc9\x6a\x5d\x2f\xcb\x2b\xfb\x0c\xcb\xc0\xc1\x9c\x30\xf8\x66\x6e\x9d\xee\xcc\xde\x44\x09\x7f\x35\x57\xd0\x39\x5f\xbc\x5c\x9e\x5f\x27\x03\xf9\x08\x77\x85\x51\x5c\xfa\xb8\xfb\x78\x76\xb8\xef\x4a\x54\x37\x89\xa0\x76\x1b\xf7\x8f\x0f\xb5\x6f\x64\x70\xb1\x19\x1f\xde\x70\x8e\x3e\xfc\xb3\xbf\x4b\xba\x1b\xa9\x22\x76\xb9\xa0\x3e\x8f\x0c\x70\x81\x15\x07\xf8\xd5\xd7\x44\x34\x64\x1c\x4a\xe1\xa8\x63\x0f\x56\x89\x74\x1c\xb6\xf6\x89\xa0\x0d\xa7\x5b\xd8\xc0\x8b\x93\xc5\x03\xf9\xee\xbb\x7a\xb2\x6a\x69\x57\x36\xc8\x46\x9e\x3d\x08\x65\xa7\x2d\xb6\x84\x3b\xec\x57\x64\xff\x5b\xa2\x8b\xa4\x28\x2b\xb7\x06\x5b\x21\x90\xbb\xb1\xdb\xec\xd4\x77\xb0\x91\x71\xb5\x7d\x6c\x4e\x5f\xf5\x93\xa9\xf6\x8f\x3d\xec\x1f\xd2\x73\x6a\xaf\x99\xa8\x06\x72\x76\x57\xb0\xa7\x8e\x95\x78\xee\x3d\xdb\x1e\x74\x6b\xa9\xe9\xfb\x50\xaf\x37\x65\xed\x6c\x98\x7d\x67\xdd\x5d\x93\x3c\xdc\xc6\xce\x80\xe2\x66\x2a\x5f\x63\x41\xf9\x1c\x3e\xbe\x79\xba\x65\x3f\xb1\x02\x2a\xfb\xe4\xde\xa2\xa5\x45\x3e\x6d\xc3\x25\x65\x3c\x7a\xf5\xea\x87\x2e\xc7\xec\xc3\x27\x4d\xec\xae\x8a\xce\xed\x01\x89\x1a\xdd\xa4\x8a\xaf\xcb\xf6\x85\x70\x67\xdd\xbc\xf7\x01\x19\x52\xdf\x8b\x51\xc6\x69\x3c\xab\x5c\x12\x55\xb0\x25\x66\x0c\x34\x6b\xa2\x76\x35\x7b\x87\xfb\x36\x0a\x43\x1d\x6e\xb2\x2c\xf3\x8d\x43\x92\x7b\x89\x14\x42\xf6\x59\x98\x1d\xf1\xb6\x35\x2a\xba\x3d\x1e\xb5\x4f\x34\xad\x66\xf8\x7b\xf1\x44\x7b\xcd\x84\xed\xab\x89\xf6\x67\x88\x16\x53\xd4\x6a\xf7\xd4\x5d\x4c\xe7\x4e\x49\x44\x69\x5c\xd4\xc7\xdf\xdd\xb5\x81\x07\x63\xdd\x3d\xb8\xe3\x89\xc1\xc2\xd3\xe0\xdb\x7c\x7e\xd3\xc8\x92\x43\x2e\x83\xea\x1d\x05\xc2\x61\xb0\x18\x38\x78\xb6\x49\x29\x27\x9b\xc3\xe0\x7b\x7b\xbc\xff\x1e\xb7\x02\x0e\xdd\x91\x34\x38\x05\x9d\xbb\x92\x0e\xe9\xa7\x35\x2d\x9b\xa3\x2c\xab\x22\xb7\xba\xb3\x19\xaa\xbb\xcf\x7d\x64\x1d\xe6\xd1\x45\x94\xa4\x6e\xcd\xd8\x44\x5a\xa8\x71\x5e\x0c\x1f\xa0\xec\xff\xef\x6f\xf1\xa8\x88\x67\x71\xf2\x36\x9e\x8f\xa2\x91\x5d\xaa\xa3\x8b\x22\xbf\x1e\xdd\xe4\xcb\x62\xf4\xc3\xf3\xa7\x27\xa3\x3a\x02\x38\x3a\x5f\x56\xa3\x59\xbe\x4c\xe7\xa3\x2c\xaf\xa0\xeb\x51\x92\x8d\xaa\x7c\xe4\x71\x79\x97\x54\x57\xa3\xa4\x42\x5b\x16\xc7\x96\xbb\x1a\x0f\xa2\x2c\xf9\x4d\x28\xbb\x39\xc2\x26\x08\x7a\x1f\x12\xbf\xbe\x8a\x7b\x84\xbc\x8a\xca\x51\x11\xff\xb7\x95\x74\xf6\x2e\xf7\x51\x64\xe3\x72\x8e\xfe\x68\xf4\x63\x1a\x47\x65\x3c\xba\x8a\xde\xc6\xa3\x28\x1b\x45\xf3\xeb\x24\x4b\xca\xaa\x88\xaa\xbc\x18\xd9\x74\x13\x37\x3d\xa0\xa7\x46\xd7\x36\x84\x35\x6a\x7c\x2d\x50\xd4\xbf\xe2\x1c\x18\xf3\x1b\xcc\xc1\xab\x57\x3f\xd4\xd4\x7f\x97\x64\xf3\xfc\xdd\xc8\x66\x1f\xdd\x8f\xc5\x37\xe9\xef\xdb\x7c\x17\x95\xbe\xdd\x86\xe4\x55\x71\x33\x8a\x2e\xa3\x64\x7f\x0a\x1e\x38\xb2\x3a\x90\x71\xf8\x30\x82\xb3\xfa\x3a\xba\xf6\xd4\xcc\xe3\x2a\x4a\xd2\xfe\xb5\x74\xdd\x7a\x07\xdd\x83\x79\xaf\x7b\x40\x3f\x51\x21\xf9\x3c\x7b\x1b\xa5\xc9\x7c\xd4\xec\x1b\xde\x8b\x77\x9c\x50\xb4\xef\x21\xc4\xf3\xd1\x3c\x8f\x4b\x2b\x1d\xe2\x5f\x92\xb2\x6a\x18\xc7\x7e\x1e\x45\xa3\x56\x87\x20\x38\x1c\x13\xff\x9a\x22\x91\xff\x06\x74\xfc\x7e\x2d\x01\xcb\x7b\x91\xf1\xfb\x1c\xec\xd6\x75\x23\xa3\xa8\x88\x1b\x89\x15\xcf\x47\x17\x79\x31\xaa\xae\xa2\x6a\xd4\x3c\x2a\xf1\x65\xfd\x6d\x9a\x94\x1d\x4c\x86\x50\xdd\xf3\x0e\xa9\x81\x9d\x4e\xb6\xf7\x25\x8d\x7b\xf4\xb3\xb6\xf6\xf4\xa0\xe9\xeb\x97\xe3\xfe\x46\xdf\xfa\x38\xaf\x77\xc9\x44\x18\x34\x01\x9f\x43\x3c\xec\xed\x37\x09\x5e\x24\x71\x3a\x2f\xe3\x6a\xe0\x44\x70\xbb\xd8\xfa\xe2\x6a\xd1\xba\x87\x80\xb8\x13\x5a\x37\x8b\xf8\x68\x11\x95\xe5\xbb\xbc\x98\xf7\xaf\x91\xf0\x7f\xe3\x81\xe4\x05\x71\x56\x47\x5f\x86\x6e\x87\xb9\xc3\xd8\x6f\xdc\x92\x00\xac\x8a\xa3\x4e\x3b\xfb\x9c\xa6\x87\x45\xb2\x88\xb2\xf6\xb0\x5f\xd4\x8a\xb7\xba\xaa\x4d\xc2\xa1\x33\x5a\x3d\xb6\xac\x1d\xe9\xf5\x15\x20\xb2\x1d\x5f\xda\x23\x24\xe4\xdc\x6f\xe6\xdc\xef\xd3\x7a\x83\xed\xcc\xbb\xe5\xc1\x22\x8d\x66\xf1\x55\x9e\xce\xed\x5d\x0d\xcd\xfe\x9b\xeb\x89\x86\x03\x51\x00\x8b\x42\x9e\x39\x8c\xee\x13\x94\xe8\x47\x14\x7a\x81\x24\x9f\x66\xbd\x0e\xfc\xdc\x37\x52\x74\x8f\x56\x1d\x7f\xbb\xad\x90\x81\xf9\x6e\xdf\xb5\xbd\xa9\x4e\x3c\xdc\xde\xc7\xd0\x7d\x3d\xc3\xf3\x52\x15\x97\x55\x3b\x58\x17\x54\xf1\x2f\xa0\x4f\x1a\xee\xee\xdf\xa7\x41\xda\xc1\x02\xc2\x5a\x09\x57\x35\x3f\x64\x03\xd7\x75\x0f\xcb\xb0\x5f\xd1\x6f\x3e\x74\x59\xed\xef\x4a\x6f\xd5\x3b\x1b\x1e\xf5\xce\x3b\x1e\x3b\xd6\x84\xb5\xf1\x1d\x0f\xde\x75\x9b\xe1\x5d\x12\xfb\x40\xfd\x70\xe0\x0d\x83\x75\x46\xcb\xe9\x3d\x16\x7d\x2f\xc0\x50\x87\x9f\x0f\x8b\x08\x38\x91\xb5\xff\x7d\x81\x07\xd1\x6f\x2d\xf0\x88\x0e\x89\x68\xf1\x79\xbd\x22\xd5\x60\x4c\xcb\xe7\x16\x9c\x35\x8f\x24\xb4\x33\xec\x06\x6f\x1e\xc1\x61\x10\x5f\x6f\xe1\x90\x93\x3c\xab\xa2\x59\xe5\x1d\xbf\x8e\x47\x08\xd6\x93\x0b\x04\xcc\x8a\xd8\xbe\x85\x17\xa5\x25\xda\x36\x73\x9b\x43\xd5\xa1\x09\x09\x0e\x09\x01\x91\xd0\x1b\xf6\xf6\xfb\x35\x76\x2d\xd2\x66\x92\x0f\xd3\xf1\xda\x07\x0b\xfb\xf9\x96\x3b\x77\x7e\xea\x27\x2d\xea\x18\xcf\x3a\x2d\xd3\xfe\x5d\x6b\x44\x17\x3c\x94\xad\x13\x98\x72\x4b\x80\xc8\x75\x73\xe6\x03\x86\x6a\xf3\xe8\xe6\x50\xc5\xc6\x70\x6d\x2a\xea\x2d\x67\x3e\x07\x23\x52\x61\x90\x27\x76\x94\xb5\xca\xe9\x6d\xad\xd4\xda\x60\xdf\x6d\x93\xcd\x0d\x1a\xb2\x19\x4f\xbf\x7f\x78\xfe\x80\x1d\x95\x5d\xea\xab\xb3\xb9\xb3\x23\x44\x7f\xe0\x8d\xe2\x6a\xd0\x96\x96\x83\xd0\x6e\x8e\xdf\x5e\x97\x8f\xd7\x81\xff\x9a\xe1\xd7\xa7\x6d\xfd\x79\xf4\x26\xc1\xaf\x4e\xe1\x73\x89\x7d\xb3\x28\x73\x7b\x9c\x50\x24\xeb\x1c\xd7\x8d\xb3\xb7\xcd\x3d\x2d\xf3\x64\x7e\x94\xd8\xa3\x95\x50\xae\x2c\x93\x4b\xa8\x66\x95\xd4\x7d\x72\x00\xd7\xe9\x0a\x9d\x0c\xc0\xe5\x74\x7c\x57\x3a\x5f\x32\x1e\xef\x77\x07\x4b\xeb\xcd\xa9\xfe\x79\xc9\x5e\x06\x9c\x03\x36\x9b\x22\xd3\xa2\x9d\x1a\x67\xb7\xa4\xba\x2f\x74\x05\x41\x9d\x1a\x67\x99\xad\xb5\x9f\xbf\x06\xfa\xbb\x4c\xfc\x79\x34\x6b\x6e\x34\xc7\xe3\x56\x93\x5e\xf2\x52\xbd\x11\x76\xe8\xf5\x1c\x4d\xd5\xde\x0d\x1a\xc9\xf0\xed\x1f\x87\xde\xcf\x71\xf7\xed\x1c\xcb\x9d\x99\x49\x79\xb8\x3c\x24\x33\xa9\x9d\x48\xf2\x7b\x24\x26\x1d\x01\x02\xad\xec\x24\x9f\xf2\x6a\x93\x7b\x7e\xf8\xf7\x67\xdf\xb7\x52\x78\xdc\xa7\xd5\x59\xf8\xea\xd5\x0f\x2d\x70\x59\xe6\x9d\xdc\x24\x5b\xec\xf8\x76\x15\x96\x65\x7e\xc0\x99\xa3\x45\x91\x5f\x24\x69\xfc\xa9\x5c\xb9\xf0\x7d\xf9\xe6\xcd\xdf\x79\xba\xed\xca\x85\xe6\x9e\x12\x77\x58\x71\xf0\x46\x92\xb4\xb7\x8b\xe9\x47\x18\x9c\x0d\xdf\xc1\xdf\xba\x88\x6c\xd8\x34\xdd\xe6\x24\x7e\x77\x33\x7a\x72\xf2\x62\xf4\xfa\xa0\xc8\xda\x3a\xfb\xf4\x8e\x1b\xc0\x00\x9f\xf9\x76\x7c\x36\x34\x2a\xb5\x5b\xd4\x4d\x6a\x6b\x4b\xeb\xe0\xe1\x12\x20\x4b\xb3\xcb\xea\x0a\x8a\xea\x0d\xf7\x69\x87\x99\x58\x3f\x2c\xb4\x5d\x4d\x94\xcb\x73\xab\x22\x8a\x24\xbb\x3c\x2a\x97\xe7\xee\xaf\x83\xe5\x76\x87\x35\x7f\xb7\x5b\x49\xce\xa3\x32\x99\x1d\xcd\x8b\x7c\x31\xcf\xdf\x65\x47\xf5\xfd\xa6\x03\x6f\x37\x76\x4b\xee\xd1\xc6\xe7\xf9\xec\x5e\x6f\x30\xf5\xb3\x50\x47\x55\x74\xf9\x41\x54\xe9\x34\xf4\x87\x20\x8d\x3f\xe3\xfb\x41\x54\xa9\xdb\xf8\x23\x10\xe4\x43\x08\xf1\xc9\x12\xe0\xc1\x6e\x02\xb4\x1f\x39\x1a\x7e\xef\x66\x4b\xf1\x4f\x75\xbc\x77\x4c\x78\x11\x65\x73\xfb\x68\x6d\x5c\x3c\xb6\x31\x9c\x45\x91\x94\xbf\xae\x8d\xb5\x97\x61\xc1\xfe\xed\xc5\xdb\x4a\xbe\x4a\x07\x0d\x8b\x4d\x43\x02\x83\x93\x04\xca\xd1\xc5\xaf\xec\x81\xbf\xf5\x70\x8e\xd2\xfc\x32\x0f\xc2\xa0\xf9\x1c\x84\xc1\x77\x8c\x52\x84\x8d\x09\x89\x46\x98\x73\x81\x31\x19\x9d\x30\x62\x10\xa5\xc2\xc2\x28\x65\x00\x63\x44\x22\x4e\x15\x80\x8c\xc4\xc6\x81\x38\x22\x5c\x87\x14\x23\x45\x08\x05\xd0\x0b\x80\x61\x22\x01\xa6\x89\x32\x1e\xc6\x90\xd4\x50\x53\x30\xa9\x3d\x08\x23\x66\x7d\xed\x4d\x98\x60\x08\xdb\xff\xf9\xe6\x18\xa1\xa1\xa0\x88\x33\xa6\x3b\x30\x4e\x11\x23\x92\x37\x30\xce\x44\x1b\x76\x02\x18\x2b\x6c\x61\x4a\x1a\x3f\x08\x83\x30\x54\x65\x80\xa4\x1d\x2b\xa3\x04\x31\xaa\x2c\x48\x70\xe3\x6a\x52\x89\x84\xe0\x6d\x18\xa3\x06\x61\xa3\x43\x8e\x91\xc0\xb4\x03\x62\x02\x51\xce\xfc\xf0\x3d\x8c\x0a\xc4\x34\xa6\xbe\x35\x83\xb0\x62\x40\x12\x2e\xa4\xaf\x2a\x91\xc6\x1d\x9a\x0f\x4c\xc3\xdf\x47\xdf\x51\xc9\x91\x51\x24\x24\x04\x19\x45\x5d\x1f\x54\x62\x64\x0c\x09\x09\x45\x82\x4b\xd9\x85\x69\x24\xa8\x76\x34\xa1\x02\xc6\xaf\x07\x61\x94\x20\x4d\x70\xb7\xee\x10\x8c\x29\x24\xb5\x66\x2d\x18\xe3\x1c\xa0\x86\x49\xa1\xa8\x19\x9d\x50\x49\x10\x96\x52\x71\x1e\x72\x82\x24\xa1\x14\x0b\x39\xa2\x92\x22\x65\x94\x00\x12\x12\x42\x39\x66\x6c\x44\xa5\x44\x86\x74\x40\x27\x54\x6a\x24\x0c\x71\x30\x65\xe7\x9c\x2a\x8c\xa8\xb0\xd3\xa6\x99\x91\x0e\x44\xe0\x6f\x00\x51\x43\x84\xc3\x46\x11\xc4\x24\x0b\x99\x41\x44\x43\x55\x0b\xc3\x48\x1b\x49\xa9\x01\x30\xc3\x52\x4a\x6e\x3b\x31\x48\x63\x86\x0d\x07\xb0\xd0\x58\x2a\x62\x46\xd0\xb5\xd4\x54\x2b\x01\x50\xc5\x5c\xbb\x54\x2a\x24\x84\x03\x09\x69\x11\x3a\xa1\x52\x20\x41\xa5\xa4\x1d\x30\x40\xb1\x26\x82\xab\x90\xc1\x9a\x50\x9c\x50\x3d\xb2\x13\x66\x88\xd1\x96\x76\x0a\x0b\x29\x38\x05\xda\xc1\x3c\x2a\xce\x00\xca\x89\x92\x98\xaa\x1a\x4a\x84\x01\x28\x21\x5c\x71\xaa\x1b\xa8\x9b\x0f\xad\x9b\xd1\x72\xc3\x37\x60\x9a\xf9\x25\x54\x4f\x9b\x67\x97\x21\xd8\x9a\x85\x80\xb1\x34\x43\x42\x48\xcb\x6e\x4a\xf9\x71\x2a\x65\x17\x56\x0b\x46\x15\x2c\x71\xdb\x2f\xd6\x8e\x87\x1a\x90\x42\x98\x29\xcf\x56\x1e\xc6\x38\x62\x58\x09\xdf\x9a\x83\x71\x8c\x18\xe1\xbe\x35\x85\x88\xe4\x35\x07\x68\xc3\x47\x80\x87\x14\xa2\x0d\x3a\xa1\x5a\x02\xbd\x1d\xcc\x58\x8c\xa9\x36\x88\x69\x60\x00\x29\xa9\x6b\xcb\x50\x44\xb0\x04\xa6\x53\x42\x13\x87\x86\x21\x48\x68\x03\xf3\x21\x89\x70\x52\x00\x6a\x12\x22\x1d\x43\x30\x57\x15\xda\x97\x16\x24\x95\x93\x51\x80\x86\x31\xc6\x73\x82\xaf\xa9\x0c\x52\x5a\x68\xce\xda\x60\xaa\x34\x12\x18\x6b\xcc\xa0\x1b\xae\x14\x95\x5c\x5b\x28\xc5\x84\x51\x0a\xe2\x40\x4b\xac\x31\xcc\xa4\xd2\x88\x48\xa1\x18\x07\x28\xd7\x52\x4b\xad\x3c\x18\x98\x40\x01\x18\x1b\x41\x34\xb1\xfd\x69\x44\x98\x96\xc0\x90\x02\x61\xaa\x39\x51\x74\xe4\xa0\x12\x13\x03\xd4\x05\xd1\x4b\x08\xf1\x50\xa6\x94\xa5\xb9\x36\x54\x4a\xc2\x7d\xcb\x54\x60\xa6\x00\x0c\xfc\x44\x4d\x0d\xe5\x21\xa3\x08\x5b\xee\xb5\xa4\xa2\x48\x68\x3a\x08\xa3\x0a\x11\xcc\x88\x23\x42\x0d\x23\x08\x63\x27\x58\x81\xa2\x92\x75\x58\x67\x80\x9b\xfe\x3e\xfa\x8e\x69\x8e\x24\x23\x0e\xea\x84\xfc\x09\x53\x1a\x71\xcf\x63\xdc\x71\x05\x53\x02\x51\xd7\x83\x70\x93\x56\x43\x14\xc2\x14\x7b\xa1\xef\x40\x8c\x23\x6a\xb0\x97\xd2\x0e\xc4\x31\xa2\x46\x39\xf1\x0e\xb3\x00\x72\x82\x01\x55\x85\xd1\x7a\x04\x38\x28\xd6\x86\x9c\x30\xad\x90\x30\xb6\x14\xc1\xcc\x55\x34\x20\x9b\x2d\x7b\x71\xb7\xba\x99\x61\x88\x40\x45\x82\x14\xf7\x22\x87\x19\x60\x3f\x01\xf3\x0e\x2d\x39\x24\x0c\x46\x44\x6b\xe0\x10\xaa\x5d\x39\x68\x5f\x32\x2b\x2b\xa4\xf0\x9a\x52\x0b\x10\x92\x16\x64\x9c\x38\x3d\x61\x1a\x23\x0d\x82\x99\xb5\xc1\x4c\x19\x24\xa4\xaa\xd9\x8b\x73\xca\x84\xb1\x50\x2a\x75\xcd\x5e\x54\x69\x0c\xd3\x6d\xc1\x8c\xd6\xfc\x25\x98\x96\xdc\x78\x30\xd6\x35\x7f\x49\x4a\x14\x2c\x2b\x07\x16\x96\xbf\x40\x48\x09\x4e\x84\x76\x4d\x63\x56\xf3\x17\x55\x06\x1b\xdf\x21\xc6\x35\x7f\x09\x23\x25\xf6\x1d\xc2\x8a\xf4\xfc\xc5\x09\xa5\xda\xd4\x60\xe2\x99\xc9\x6b\x64\x03\x0b\x5b\x0d\xc2\x2c\x83\x51\x3f\x8b\x35\xcc\x32\x18\xad\x67\x43\xd5\x72\xc8\xf1\xcd\x00\x2b\x01\x83\x49\x80\x72\xcf\x4c\x8e\x61\x99\x64\x48\x6b\x42\xbc\xf5\xe2\xc1\x00\x25\x5a\xd5\x5c\x4b\xa8\x26\x6c\xc4\x24\x68\x50\x23\xad\xd2\x25\x54\x19\xcd\x60\x8c\x92\x82\x71\xa0\x9c\x68\x25\x9a\x69\x69\xc4\xe8\x84\x09\x85\x0c\xd7\x5a\x58\x13\x48\x2a\x43\x18\xb4\x2b\x24\x62\x20\xab\x31\x12\x4c\x30\x25\xf5\x1a\xc4\x11\x97\x35\xf7\x3a\x98\x00\xa6\xe6\x48\x11\x21\x30\x61\x35\x58\x12\x2e\xc0\x60\xa0\x58\x50\x50\x8a\x0e\xac\xa5\xa0\x0a\xc0\x52\x1a\x2e\xb9\x83\x72\xcc\xb4\xa0\x21\x95\x88\x60\x43\x15\x97\x80\x17\x80\x15\xd3\xdc\x82\x35\x16\x86\x19\x8b\x04\x07\x22\x58\x28\x15\xd8\x30\xa1\x3c\x54\x70\xad\x01\xca\x28\x66\x14\xc4\x94\x05\x73\xc1\x05\x01\xb0\xa2\x82\x11\x5e\x77\xa8\x05\x23\xc6\x4d\x98\x66\xd0\x86\xed\x50\x09\x29\x01\x6c\x10\xe3\x54\x50\xcd\x46\x40\x1e\x49\xa5\xe6\x22\x64\x18\x71\xce\x14\x23\x66\xc4\x24\x46\x94\x2b\x0d\x1a\x8e\x20\xa6\x04\xc3\x12\xc8\x21\x31\x52\x98\x10\x60\x72\x82\x04\x35\x44\x32\x98\x39\x8c\x94\x32\x9c\x10\x0b\x15\x5c\x18\x43\x6c\x13\x5a\x18\x42\x2d\x50\x19\xc3\x61\x20\x60\x8a\x70\x4c\x85\x6d\x40\x62\x41\x29\xa3\xd0\x2e\x81\x25\xc3\x1c\x58\x09\x49\xa9\x94\x0e\x6c\x34\xd3\x4c\x02\xd8\x60\x29\xa4\xf4\x13\x0d\x22\xc1\x58\x1e\x15\x8a\x32\x06\xc4\x90\x0c\x71\x30\x1d\x18\x80\xa9\xa2\x9c\x4a\x60\x71\x09\xfc\x8e\x89\xb0\x60\x41\x8d\x21\xd4\x83\xb5\xe6\x4c\xda\x46\xa4\xc0\xd2\x28\x3b\x40\x01\x72\x8a\x5b\xa8\x92\xca\x18\x4a\x1d\x54\x4a\x4c\x89\x6d\x43\x6b\x46\x24\x56\x0e\x6c\x8c\xa0\x16\x6a\x8c\x12\x52\x58\x3e\x56\xb0\xe4\x89\x08\x19\x43\x5c\x08\xae\x2c\xc7\x2a\xa4\xb8\xd6\x44\x01\xd4\x50\xa5\x38\x96\x16\x6a\xa8\xa0\xc4\xae\x4a\x30\x6f\x34\x70\x11\x40\x25\xa3\x92\x58\x29\xc0\x04\xe5\x82\xba\x76\x8d\xe2\x98\x58\xe1\x40\x08\x67\x4a\x70\xd7\x84\xa6\x06\x84\x91\x40\xc4\x48\x21\x94\x6f\xd8\x60\x46\x6d\x13\x54\x53\x4c\xb4\x45\x58\x23\xd0\x80\xc6\x4a\x23\xc1\x35\x97\x92\x7a\x30\xd1\x14\x68\x21\x90\x66\xc2\x08\x5c\x83\x61\x70\x12\x31\xec\xec\xb9\x93\x36\x4c\x6a\xc6\x19\x1d\x39\x10\x95\x20\x71\xc0\xd3\x90\x44\x4a\xe5\xa1\xc4\x4e\x12\x70\x23\xc3\x9a\x98\xba\x2b\xc6\x98\x6d\x42\x13\xa6\xa4\x10\xbe\x59\xb0\x53\x14\x80\x0d\xc5\x9c\x12\xee\xda\xc0\x54\x2a\x09\x66\x16\xa6\x4c\x58\x91\x6a\xc7\xc6\x85\xd4\xd6\xf8\xa2\x60\xc0\x9b\x9a\x6a\x9c\x28\xe5\x2c\x35\x62\x98\x66\x8e\x6a\x4a\x71\x41\xac\x58\xd6\x82\x50\x2a\x1d\xd5\xb0\xd0\x92\x5a\xc9\xce\x35\x53\x52\x01\xc7\x72\xa4\x41\xe4\x71\xa7\x02\x08\xd8\x9b\x9e\x83\x18\xb8\x50\xce\xee\x50\xcc\x31\x9b\x11\xdc\x28\x57\xd4\x30\x46\x39\x73\x32\x4c\x69\x2d\xb5\x83\x4a\xc5\xb4\xb2\x22\x4c\x12\xa1\x54\xad\x2f\x78\x2d\xd8\x38\x93\x6d\xd0\x09\xf0\x3b\x71\x38\x49\xe9\x9c\x26\x26\x34\xd8\x8a\x60\x04\x31\xed\xb4\x94\x90\x48\x62\x02\xc3\x51\x0c\xd3\x46\x4c\x61\x41\xac\xd2\x33\x2d\xd1\x25\x89\xe1\x52\x03\xd8\x28\x82\xa5\x06\x65\x22\x34\x32\x40\x6b\x6f\x94\x71\xa1\x28\x4c\x22\x41\x54\x61\x43\x9d\xc6\xa5\xd2\x10\xcb\x5c\x20\xe2\xb5\x05\x71\xe9\xb5\x9f\x34\x48\x18\xe6\x2c\xbf\x1a\xca\xc0\xca\x05\xc5\x60\xf5\x2e\x93\x54\x68\xe9\xa0\x9a\x50\x6b\x26\x83\x44\xc7\x82\x5b\x1e\x00\xb0\xe0\x98\x38\x2f\x85\x53\x22\x14\xd0\xce\x82\x8d\x01\x3d\xad\x90\x50\x5c\xf8\x86\x35\x58\xe2\xb6\xac\x00\x95\x28\x84\x83\x2a\xcc\xb1\x85\x82\xc8\xc2\x84\xfa\x86\x0d\x57\xd4\xb6\x80\x89\xa4\x8a\x08\x07\x36\x18\x54\x21\x30\x97\xd0\xe0\x40\x4a\xd7\x9f\x21\x44\x68\xcb\x73\x9c\x51\xaa\x25\x1d\x39\xa8\xe5\x4e\xaa\x89\x36\xc0\xca\x6b\x10\x01\xdd\xe7\xac\x1a\x80\x71\xee\x16\xa3\x60\x44\x31\x4a\x7d\x9b\x98\x08\x98\x31\x86\x38\xd5\x86\x69\x63\x1b\x90\xca\x6a\x54\x2a\xb9\xa1\x02\xc6\x85\xc1\xcd\xb2\xc2\x55\x9a\xda\xc2\xc2\x08\x0b\x86\xa1\x24\x46\x12\x53\xaa\x18\xb1\x8b\x40\x69\x65\xb8\x85\x62\x6e\xb8\xb2\xac\x2a\x81\x02\xd8\x48\x90\xe5\x5c\x73\x4c\x38\x0c\x55\x4a\x04\x72\x0f\x1c\x45\x30\x9b\xb9\x92\xc4\xce\x99\x44\x84\x01\xb7\x51\x83\xa8\xe2\x0a\x24\x23\x00\x31\x14\x16\x16\xca\xb9\x30\x76\xcd\x09\x64\x08\x65\x98\x5b\x28\xe1\x8c\x5a\x85\x07\x72\x91\xd8\x56\x31\xc3\x9a\x62\x2f\x42\x29\x91\x04\xd3\x90\x6a\xa4\x94\xe6\x8c\xd6\x72\xd8\x08\x70\xa4\x28\xd8\x5b\x0c\xdb\x49\x90\x0c\x61\xa9\xad\xc6\x04\xeb\x9b\x31\x2a\x85\x13\xe5\x52\x19\xad\x00\xca\x84\x20\x92\x72\xb7\x0e\x40\x62\x01\x6a\x0a\x69\xca\x15\x08\x46\xd0\x1d\x02\x13\x2c\x24\x40\xa9\xd1\x12\xa4\x17\x40\x19\xc7\x56\x43\x4b\x44\xb1\xe1\x58\x78\x4d\xc5\x08\xe6\xd8\xaa\x62\x23\x94\xe6\x52\x38\x55\xc5\xb0\xa4\x92\x5a\x30\xe1\xd4\x68\xdf\x06\xa6\xe0\xba\x50\x70\x02\xc0\x0f\x74\xba\x0a\xd4\x85\x03\x52\x2e\x35\x65\xae\x61\x0a\xe2\xcc\x00\x58\x70\xaa\x88\xa9\xc1\x8a\x19\xd0\xe6\x02\x51\xa6\x95\x50\x1e\x0d\x2a\x8d\x01\x8b\x80\x03\xbb\x71\xcb\xa8\xb6\x30\xa6\xd4\x1a\x1b\x4c\x6b\xc1\x8c\xae\x9b\xc6\xd2\x15\xc6\x92\x09\xa9\x8d\xc7\x59\x4a\x05\x60\x6a\x4b\x83\x49\x67\x35\x29\xb8\xef\xd6\x02\x93\x4c\x61\xad\x8c\x5d\xb1\x94\x6b\xec\xa0\x1c\x56\xb7\xe0\x8e\xfa\xd2\x08\xa5\x6c\x00\x81\x33\x6d\xa8\xf1\x33\x48\x34\x07\xff\x18\xc0\x54\x32\xde\x68\x4c\x0f\xe2\x9e\x37\xa5\x44\x52\x73\xd7\xa8\x13\x30\xc0\x98\x96\x38\x04\x49\x2d\x4c\x2d\x06\x08\xb1\x68\x62\xa3\x64\xb3\x52\x98\xb1\xe6\x9b\xb6\x36\xba\x85\x61\x90\x5d\x46\x58\xbb\x50\x61\x61\x6d\x03\xab\x05\x14\xc3\xce\x0d\xa6\x42\x30\x66\x1c\xa7\x4b\xed\xcc\x3f\xc6\x08\xc5\x4e\x4e\xf7\xac\x47\xb0\x29\x05\x41\x0c\xd7\x2e\xb4\x8b\x7c\x30\xae\x10\x28\xc1\x21\x18\x48\xbf\x26\xf8\xe5\xeb\x0e\xc1\x5a\x75\xa1\x17\xac\x10\x63\xce\x44\x05\x79\x6c\x4b\x62\x89\x60\x2d\x5a\x03\x93\x49\xa6\x0d\x83\xd1\x60\x0e\xde\x86\x02\x2b\xd5\x20\x46\xa4\xa1\x46\x8f\x18\x86\x2e\x30\x36\xce\xf4\xc4\x8c\x30\xd0\x47\x18\x2c\x28\x1b\x39\x30\x18\x7b\xa7\x05\x63\x24\x29\xb3\xc4\xa4\x4c\x36\x30\xe6\xcc\xde\x66\x3c\xd4\x48\x64\x18\x19\x84\x75\xc6\x83\x31\x32\x83\x20\x58\x09\x98\x7b\xad\x81\x09\x92\x9c\x68\x6a\x2d\x5b\x06\xc2\x8a\x82\x70\xc6\x0c\x49\xcc\xbd\x79\x8c\x39\x55\x02\x64\x13\x16\x48\x0a\x6e\x99\x85\xc2\x12\xc1\x56\xf5\x63\x50\xb9\x96\xd3\x14\xaf\x67\x7c\x93\x6c\x40\x4c\xce\x11\x23\xba\x4b\x4c\xce\x90\xd4\x0c\xe4\x5d\x87\x9a\x9c\x20\xa1\x89\x30\xa2\x43\x4d\x06\xca\x88\xf6\xa9\xc9\x14\x52\x82\x75\xa9\x09\xaa\x06\xcb\x2e\x35\x99\x42\x4c\xf4\xb8\x03\xcc\x33\x2e\x07\x61\x1d\xd2\x31\x30\xdd\x86\x61\x1d\x7a\x02\x4c\xaa\x1e\x4c\x5b\x2b\xda\x09\x21\x06\x66\xa8\x95\xd2\x1c\x83\xcf\x60\x24\xb3\x34\xa6\xca\x50\xcd\x47\x8c\x53\xa4\xa8\x04\x27\x9d\x52\xa4\x8c\x91\x94\xb2\x11\x50\x0e\x8c\x73\xa0\x31\x21\xbe\xd9\x4d\x6a\xfe\x7d\xf4\x1d\x65\x18\x81\x8f\x61\x90\xa4\x00\xc4\x62\xf4\x82\x12\x02\x7e\xc8\x20\xac\x3d\x20\xa8\xcb\xa5\x1c\x84\x31\x8d\x8c\x30\x3e\x7c\x47\x04\x22\x7c\x18\x46\x15\xe2\xca\x45\x7e\x5e\x50\x50\x29\x86\x0d\xc3\x18\x08\x5e\xdd\xad\x3b\x00\x23\x0c\x51\xe9\x83\xcc\xf5\xd8\x86\x60\xad\xb1\x01\x15\xb8\x46\x4a\xb2\x8e\xc3\x49\xb9\x40\xba\x09\xdc\x5a\x18\x05\x03\x0a\x4b\xcb\x62\xcc\x85\xcf\x29\x33\xc8\x8a\x53\x8c\x24\xa1\x3e\x6a\x06\x03\xa5\xdc\xc2\x1a\xfc\x98\x46\xa0\x84\x5c\xd0\xb6\xa6\x95\x40\x6c\x0b\x8c\x53\x24\xc0\x84\x71\x30\x50\xd6\xc3\x30\xca\x11\xd5\x5a\xac\x61\x30\xeb\x6b\xd8\x09\xa0\x6c\xc0\xa5\xa3\x36\x94\xe9\x46\x01\xee\x8a\x8b\x43\x52\xe7\x73\x53\xae\x90\xa0\xbc\x0d\x3a\xa1\xdc\x20\x22\x45\xb7\x98\x41\x46\xdb\xd5\x2c\x14\x13\x1d\x10\x47\x44\xf9\x85\x53\xc3\x00\x5f\xed\x37\x01\xa8\x60\x08\x6c\xb7\x21\x18\xd4\x05\x43\xc1\xf6\x0a\x30\x46\x81\x76\x18\x4c\x5c\xe8\x42\x50\xe4\xbd\x7e\xe1\x89\xbe\x39\x5d\x20\x2e\x28\x41\x94\x5a\xa6\x17\xa2\xde\x2b\xa0\xcc\x86\x1c\x5b\x30\x46\x05\xc2\x30\x7c\x8a\x28\x76\xf2\xa7\x01\x81\x48\xf3\xe1\x55\x0b\x33\x36\x00\x43\x95\x0f\x18\x37\x30\x8d\x18\xa1\x2e\x00\x01\x4c\xa8\x9d\xed\x8f\x75\xb3\xf3\x80\x45\x07\x74\xc2\x40\xbf\x11\x1b\xa6\x16\xac\xd9\x77\x11\x8a\xfa\xf8\xa5\xab\x48\xb8\x15\xdf\xe0\x89\x48\xb2\xde\x14\xa1\x5a\x0d\xc2\x6c\x24\xc2\xac\x37\x45\x88\xd1\x56\x08\x30\xe2\x50\x23\x1a\x49\xee\x84\x00\xa6\xaa\x46\xad\x47\xa2\x3a\x66\xac\x2d\x43\x30\x2a\xeb\xf0\xaa\x42\x4c\xd1\x36\x8c\x6a\x8d\x94\xb0\x5d\x68\x2d\x44\x07\x04\x1a\x8e\xf8\x15\x56\xc3\x34\x52\x86\xd5\x71\x64\x8d\x08\xa0\x32\x04\x5b\xd7\x3d\x69\x60\x14\x1c\x7b\x17\xc1\x55\x06\x29\xd3\xc5\x63\x03\xdd\x3a\x28\xc9\xb5\x87\xfa\x1d\x1a\xad\x11\x67\xa4\x0d\x63\xda\x20\xcd\xb8\x1f\x44\x17\x64\xd5\xb4\x27\x71\x0d\xb3\x08\x7b\xf9\xad\x0c\xa2\x74\x0b\x6c\x5d\xf7\xa4\x81\xd9\x41\x38\xba\x6b\x0c\x7e\x4a\x17\x91\x0d\x7c\x5b\x56\x8a\x46\x92\x51\xea\x44\x6f\x6d\x91\x0c\xc1\x08\xd8\x62\xc6\x74\x2d\x92\x01\x58\xab\xee\xdf\xeb\x5d\xc2\x8b\x24\x4d\x8f\x0a\xbb\x9f\x19\x64\x79\xf6\xcf\xb8\xc8\x87\x12\x85\xee\xbc\x60\xf1\x80\x3c\x9a\x2d\xdb\xb1\xbf\x5f\x32\x4d\x1b\x9f\x4f\x24\xe5\xec\xe2\xb5\xf8\xf6\x1f\xf1\x73\x3d\x9c\x72\xf6\xcd\xbb\x64\x5e\x5d\xb9\xdb\x44\x52\x9b\x82\xfa\x4d\xb9\x3c\xaf\x92\xca\x4e\xe3\x8e\x37\x80\xfa\x2f\x5b\xb6\x87\xee\x8f\x4f\x89\xf0\x94\xb9\xf7\x96\x8b\xcb\x24\x3b\x4a\xe3\x8b\xea\x78\x34\x8b\xd2\xd9\xf8\x28\xa8\x53\xcb\x83\xc5\x2f\xa3\xc7\x23\x3a\x09\xfa\x8f\x49\x35\x69\x69\x6f\x2f\xeb\x03\x61\x1e\x55\xdb\x68\xfd\x30\xa3\xe7\xbd\xab\xd8\xbe\x99\x1a\x06\x82\xd5\xec\xf8\xcb\x75\x9a\xd9\xd4\xdd\xaa\x5a\x1c\x3f\x7e\xfc\xee\xdd\x3b\xf4\x8e\xa1\xbc\xb8\x7c\x0c\x7c\xfb\x18\xda\xdd\xfa\xd1\xd6\x7d\x5c\xf7\x0b\x8c\xdd\xea\x96\x6e\x79\x85\xb5\xb9\xb0\xa0\xbd\xb1\xee\x76\xce\x91\xa2\x76\x0f\x23\x84\x65\x2b\x29\x13\xe0\x34\x9e\x50\x0d\x16\x37\x2c\xac\xf0\x08\x83\xbf\x4b\x98\x32\xdc\x8c\xc0\x49\xa3\x56\x82\x59\xb8\x16\x5c\x0a\x0b\xc7\x88\x68\xe3\xdb\x91\xd6\x1d\xb7\xed\x10\x89\xb0\xdb\x30\x0e\x09\x98\x21\xa0\x71\xc4\x88\x50\x44\xa9\x35\x47\x43\x86\x84\xb2\xaa\x4e\x8c\xec\xbe\xb6\x92\x98\x88\x50\x22\xc6\x8d\xb4\x6b\xf8\x44\x20\x8d\x61\x8d\x13\x11\x1a\x44\x28\x03\xab\x4a\x8c\x18\x98\x0e\x20\x84\x44\x48\x28\x92\xcc\x6d\x8e\x13\xa4\x34\xa8\x57\x80\x4a\x24\x8c\x33\x79\x4f\x30\xa2\x1c\x73\xc6\xfc\x4e\xbf\xe0\xc4\x2a\xbe\x23\x70\x8c\x19\x11\xca\x06\xa4\x39\xd2\xd8\xed\xd4\x61\x44\xa4\xd6\x86\xda\xe2\x06\x61\xd7\x11\x34\x23\x05\x36\xdc\x36\xc3\x18\xa2\xcc\x0b\x69\x44\x04\xc7\x0a\x3a\x65\x36\xe0\x69\xe5\x20\x47\x82\x2b\x87\x20\xc7\x48\x49\x67\x0c\x9e\x48\x64\x38\x11\xcc\x82\x39\xb8\xbe\x16\x4c\x30\x22\xc2\x6a\xc6\x90\x2b\x44\x98\xd3\xd5\x84\x21\x3b\x02\x80\x1a\x44\x88\x47\x83\x28\x24\x85\xdd\xf9\x0f\x05\x41\xd8\x38\x85\x02\xb6\x0b\xb3\x06\x42\x28\x28\xd0\xc9\x99\x31\x12\x61\x65\x65\xbf\x83\x12\xce\x31\x38\xd2\x60\xc6\x52\xd1\x80\xdd\xe6\x23\xd8\x72\x4e\xd7\x43\x7f\xb5\x3d\xc7\x19\x52\x6e\x5f\x3b\xe4\xe0\xcf\xab\x3a\xee\x83\x84\xe0\x0a\xfb\xf8\x9b\x11\x6e\x7c\x6e\x37\xd0\x76\xc8\x89\x0d\x70\x3a\x65\x8c\x30\xb7\x3b\x28\x60\x15\x71\xab\x04\x41\xbb\x21\xa5\xac\x27\x00\x50\xa3\x7d\xf4\x87\x0a\x24\x30\x77\x4d\x30\x24\x7c\xc0\x95\x02\x99\x19\xf6\x50\xec\x91\x23\xc0\x12\x76\xe7\xcc\x46\xfc\x1c\xcb\x5a\xb6\x03\x26\xb0\x60\x8c\x98\xdf\x21\x25\x0c\x09\x66\x35\x17\xa0\x4c\xb4\x33\x45\x08\xd4\x93\x6e\x20\x02\x71\xbf\x43\x78\x62\x90\xa1\x60\x4a\xc3\xac\x52\x24\xa9\x33\x3e\x34\x32\x76\x5d\x10\x1b\x2a\x62\xda\x6d\xa1\xb5\xa1\x40\x70\xe5\x0c\xbc\x36\x98\x22\x25\x9d\x21\xd1\x6a\x98\x18\x30\x45\x4d\x0f\x0b\x22\x91\x72\xac\x33\x3a\x69\xa1\x0c\xdc\x50\xb3\xcb\x7a\x78\x50\x4f\x39\xef\xac\x45\x0b\x82\x11\x67\xd8\x9b\x37\x6b\xc2\x19\x84\x35\xe7\x1c\xd6\x4f\x8b\xc8\x60\x3a\xc1\x44\x02\x74\x3d\x23\x60\x11\x5b\x83\x53\x58\x76\xa9\xa7\xcf\x20\xa9\x39\x38\x40\x62\xd4\x9a\x6a\xf0\x98\x38\xf1\x5b\xa1\x0d\x5f\x10\x86\x98\xd0\xce\xc6\x6c\x71\x91\xb4\x9b\xbd\x76\xc9\x9f\x70\x8c\x84\x8b\x8f\x84\x1c\x61\x62\xa8\x95\x0f\x4c\x82\x0b\x4d\x9c\xd4\x30\x02\x4b\x8b\xc6\x16\x59\xf5\xf7\xd1\x77\x5c\x82\xce\xb7\x5f\xec\x56\x9f\x72\x36\x11\x97\x20\xb9\xa8\x07\x1b\x66\x2c\xfd\xc1\xd7\x71\xe6\xb6\xdd\x27\xe0\xce\x5c\xe4\x02\x09\x2b\x5a\x1c\x17\xf8\xc1\x9c\x00\xc7\x73\xc2\x3c\x58\x31\xc7\x05\x5c\x80\xc5\x6e\xf1\x63\x12\x11\xe2\x1b\xe6\xc8\x08\xa1\x3d\x54\x30\x67\xfc\x9d\x80\x7f\xea\x3c\x08\x1b\xd1\xe7\x0e\x39\x28\x4c\x84\xeb\x0f\xcc\x4f\x67\x16\x41\xc3\x4a\x51\x0f\x55\x52\xae\xb1\x60\xba\x5e\x6b\x44\xb8\x18\x13\xa0\xec\x97\x2b\xd3\x88\x6b\x43\xea\xe1\x49\x37\xdd\xb0\x2e\xa9\x63\x72\x47\x0b\x56\xf3\xbe\x11\x6e\x45\x00\xe1\xec\x54\x58\x7b\x1d\x6b\x97\x5c\xc0\x15\xc2\xdc\xd3\x6d\x0d\x3d\xe1\x0a\x49\xe2\x66\xa5\x5d\x18\x10\x92\x35\x6e\x5a\xb8\x3d\x60\xae\xc1\xea\xae\xbb\xe3\x42\xfb\x19\x81\xae\x9d\x3a\x60\xe0\xe3\x38\xb9\xc3\x9b\xfc\x17\x1b\xda\xf6\x69\x0f\x6d\x28\xd0\xcd\xef\xbb\x74\xc1\x82\xba\xe0\x1a\x37\xa0\x67\x44\x33\x23\xce\xdc\xe5\x1a\x69\xea\x29\x24\x90\x92\x9c\xd5\x58\x08\xad\x9a\xb9\x26\x8e\x44\x5c\x23\x2a\xb8\x68\xf8\x02\xd7\xb4\xd0\xd2\x8b\x39\x8e\x8c\xd2\xb2\xa6\x05\xf7\x0b\x05\x38\x8e\xb8\x15\x6f\x09\x27\x8c\x87\xfa\x95\x34\x1a\xe6\x4e\x60\x5b\xa0\xa2\x4d\x5c\x08\xa9\x42\x42\xd2\x86\x48\x52\x59\xff\x07\xc0\xd2\x07\x8e\x00\x3d\x43\xea\xc2\x9a\x2b\xe5\x7b\x34\xc6\xca\x58\xb0\xd5\x09\xf7\xae\x25\x4c\x95\xb1\x82\xc5\xc6\x98\x7d\x32\x16\x20\x6d\x1c\xe9\xa8\xb6\x71\xdc\x1a\x8a\x2d\x5f\xdb\x38\xb7\xdf\x5b\x39\xb1\x56\xb7\x1d\x16\x80\xa5\x77\x47\x01\xea\x12\xd1\x6c\x0c\x5e\x93\x1a\xda\x08\x56\x8c\xb8\x22\x2d\x2c\x68\x5d\x58\xfb\x94\x3b\x40\x59\x7a\xce\x27\x88\x18\xe7\xd4\x72\xf0\x33\xad\x3f\x0a\x50\x4e\x6b\x3a\x6b\x24\x9d\x2f\x6f\x77\x49\xa5\xe7\x39\x83\xb0\x32\xc6\x43\x95\x6e\xd8\x48\x60\x47\xb7\x16\xf4\x44\x60\x84\xa5\x93\x3c\x16\xec\x16\x8f\xc0\xe0\xb1\xd6\x0d\x0b\xe9\x2c\x05\xd0\xa7\x58\xd7\x65\x89\xc7\xf8\x44\x10\xc4\xb1\x93\x52\x0c\x74\xb9\x0b\x00\x09\x82\x24\x63\xc4\x43\x29\x71\x1a\xc9\x42\x05\x6b\xe8\xc6\x55\xdd\x44\x0b\x4c\x99\x93\x3a\x82\x20\x41\xec\xce\x95\x9b\x11\x5c\x37\x4c\x95\xa8\xe7\xa9\xf1\x7b\x01\x39\x2f\x8b\x60\xae\x89\x23\x91\xc0\x48\x61\x27\x8b\x2c\x5f\x08\xe2\xa1\x8c\x68\x56\xf3\x90\x66\xcd\xe2\x31\x2e\x8f\xce\x72\x1c\x75\x1c\xc7\x0d\xe2\xc6\xca\x30\x17\x8f\x72\x0e\xd5\x30\x77\x5a\x1f\x1a\x61\x45\x1d\x7f\x62\xe8\x51\x79\x87\x16\xd0\xa3\x1e\xcc\x89\xe3\x23\x1b\xed\x93\xc4\x43\x99\x9d\x09\x02\x66\xa4\x26\xce\x8c\x04\x7b\x8c\xfa\x9c\x4d\x0a\x4a\xc2\xad\x1f\x8a\x91\xe2\x3e\x04\x42\x11\xf0\xa1\x85\x12\x04\x1d\x7b\x7b\xc7\x78\x1b\x92\x52\xb0\x07\x7c\x13\x04\x11\x86\x8d\x07\xdb\xc9\x86\xc2\xa0\x66\xfc\x32\x61\xe0\x9e\xd6\x50\xe6\xf2\x3a\xec\x96\x84\x8f\x9b\x9d\x80\x2d\x2b\xdc\x6c\x83\x36\x17\x8e\xa2\xd4\x6e\x5f\xd4\xa4\x23\xc6\x4d\x15\xc5\x76\x73\xd3\xcf\x09\xa5\x44\x37\x58\x78\x55\x05\xb3\x2d\x9c\x2a\x00\x13\x8d\x37\x6c\x44\x98\x6f\x98\x82\x06\xc7\x35\x73\x89\x3a\xe9\x8b\x21\x85\x39\xf3\xac\xc8\x1c\x3f\x00\xe1\x94\x11\x0d\x8f\x63\x1f\xac\xb2\x3b\x55\xbc\x07\x85\x19\xe1\xce\x7a\xea\x14\xd6\x30\x67\xa2\xe6\x71\x52\xe7\xa2\x21\x53\x77\x67\x37\xdf\xfc\x1e\x27\x46\xc6\x6b\x13\xaa\x91\x31\x3e\x88\x44\x90\x10\xaa\x96\x50\x42\x38\x8b\xb7\x0d\x95\x08\x4b\x52\x87\x6b\xd6\x60\x8e\x0c\xf7\xc9\xa8\x04\x51\x6f\xef\xc0\x8c\x78\x0a\xd9\xdd\x3e\xa7\x8f\x28\x45\x86\x0a\x3f\x23\x06\x19\x2d\x6b\x0e\x30\x3e\x6e\x45\x0d\x22\x1e\x65\xe0\x0b\x55\x67\xc6\x0d\x71\x27\x48\x5b\x86\x8c\x97\x03\xd4\x6e\x95\x3a\x22\x81\x89\xe9\x55\x2e\x55\x88\x7a\x5b\x8a\x33\x44\xbc\x0a\x04\x28\xf3\x42\x8a\x22\xc5\x78\xcd\x03\x4d\x96\x2e\xa7\x88\xd5\xac\xa8\x10\x33\xde\x01\x20\xc8\x70\x5c\x17\x96\x98\x18\x0f\x95\x9c\xd6\x58\x18\x8c\xbd\x4a\x22\x88\x71\x56\xf3\x11\x31\x6e\x6d\x73\x30\xab\x7c\xc3\x1a\x09\xe5\xac\x4d\xb0\xab\x85\x5f\xf1\x30\x27\xd4\xaf\x6d\x8c\x8c\x72\xac\x41\x0d\xd8\xb1\xa2\x2e\x4c\x74\x2d\xc6\x35\xf3\xba\x95\x20\xa2\x4c\xcd\x89\x94\x8a\x16\x16\xa4\x66\x45\x49\x1c\x83\xda\x9c\x58\xaf\x18\x31\x32\xdc\x6b\x78\x02\x62\xbc\xe6\x4f\xa2\x9d\x40\x3b\x71\xd9\xcb\xb4\x96\xe3\xb5\x62\x04\xd3\x4d\xd7\x9c\x28\xfc\xc2\x06\x22\x0b\xdc\x87\x9e\x58\x53\x51\xf2\x7e\x61\x8e\xa8\x30\xa4\x5e\x0f\x44\xd5\x36\x97\x14\x86\xd6\xb8\x11\xc5\x6b\x83\x09\xaf\xc1\x82\xb8\xdc\x3a\x30\xa3\x74\xb3\x2a\x8d\xe2\x6a\x13\xca\xb1\xcf\x8a\x6b\x83\x35\xb0\x5f\x6d\x73\x11\xa1\x4d\x33\x23\x9c\xd7\xc6\x9c\x93\x61\x4e\x0a\xd4\xd2\x96\x23\x69\x70\x23\x9a\x95\xb7\x34\x39\x62\xde\x34\xa2\x36\x8b\xaf\xa6\xc5\x00\x77\xf6\xd8\x16\xc4\x03\x66\x1b\x6c\x8b\x91\xf0\x8e\x48\x9b\x6d\x71\x93\x5a\xdd\x66\x5b\x8c\x24\xd5\x66\x83\x6d\xd7\xe9\xef\x6d\xb6\xc5\x76\x67\xbf\xcf\xb6\x04\xd1\xda\x15\x6d\xb3\x2d\xa8\x32\x42\xfa\x6c\x4b\x90\x36\x84\xf5\xd9\x96\x22\x86\x05\xd9\x60\x5b\x10\xf4\x4e\x60\xb7\xd9\x16\xc6\xa4\x4c\x8f\x6d\x29\x38\x46\x4a\xf7\xd9\x96\xda\x94\x22\xd9\x63\x5b\xca\x11\xf5\x7b\xb5\x2d\xb6\xa5\x1c\x71\xe7\xbf\x74\xd8\x16\x44\x2c\x35\xb2\xc7\xb6\xa0\xb1\x04\xd7\x3d\xb6\x6d\x41\xdb\x6c\xdb\x2e\xbc\x66\x5b\xca\x91\x15\xa5\x5d\xb6\x05\xdc\xa8\x31\x7d\xb6\x05\xa1\x48\xbd\x03\xde\xe2\x44\x86\xa8\x56\xa4\x0f\x05\x34\x09\xdb\x60\x5b\x8a\xa8\x69\x1c\x96\x86\x6d\x09\xd2\x35\x33\xb7\xd8\x96\x20\xc1\x6a\x6f\xa3\xc5\xb6\xb0\xb2\x05\xed\xb3\x2d\xf0\x05\xd1\x7d\xb6\x5d\x73\x67\xcf\xb6\xc5\x88\x69\x2a\x36\x6c\x5b\x8c\xb8\x74\xca\xa0\x6d\xdb\x62\x24\xa5\x26\x7d\xdb\xd6\xee\xf0\xf3\x0d\xdb\x96\x20\x2a\x3d\x9d\x5b\xb6\x2d\xf0\x2a\x37\x7d\xdb\x96\x02\xfb\xe9\x0d\xdb\x96\x22\xae\xa8\xec\xd9\xb6\xa0\x7c\x30\x91\x3d\xdb\x16\xa8\x6f\x08\xef\xdb\xb6\x94\x21\xb9\x36\x84\x6b\xdb\x96\x82\x3f\xeb\x17\xcf\xda\xb6\x85\xd9\xe6\xf5\xfa\x5b\xdb\xb6\xc0\x8a\xda\xa9\xdc\x96\x6d\x0b\x0c\xe3\x6c\xd4\xb6\x6d\xdb\x82\xb6\x6d\x5b\x0b\x76\xca\xab\x65\xdb\xda\xa4\x0a\xac\x7b\xb6\x2d\xac\x12\xed\x96\x7b\xdb\xb6\xa5\x76\xb3\x41\xf4\x6c\x5b\xca\x10\xe6\x2e\x60\xd3\x36\x62\x81\x6e\x5e\x3d\x77\xc1\xd8\x05\x1b\x3a\xb6\x2d\xcc\x88\x3b\x96\xd1\xb6\x6d\xc1\x98\x33\x6a\xc3\xb6\xc5\xc8\x30\x6d\xfa\xb6\x2d\xf0\x85\x53\x5e\x6d\xdb\x16\x23\x81\x39\xde\xb0\x6d\xb1\x4d\xea\xec\xdb\xb6\x60\x7f\x62\xda\xb7\x6d\xd7\xdc\xe9\x22\x09\xde\x02\xb3\x5b\xa9\xb8\xd6\xad\x12\x24\x8c\xac\xc1\x9a\xd7\xca\xc0\x38\x2b\x07\xa0\xbc\x76\x43\x44\xed\xa7\x00\x54\x69\x29\xea\x85\xc9\xbc\x23\x49\x38\xc2\xeb\x26\x88\xf4\x91\x1c\x8e\xb8\x37\x4c\x6d\x18\xc0\xc9\x01\xc2\x91\x56\x35\xdb\x72\xb0\x7d\x5c\x30\x55\x20\x6a\x9a\xc8\x05\x66\x4e\xc2\x10\x01\x82\xa0\xd1\x6a\xd8\x09\x29\x02\x0e\x31\x69\x61\xe1\x3c\x62\x22\x81\xa5\x6a\xc5\x28\x99\x33\x09\x89\x44\x9a\xf1\x3a\x50\x62\xb4\x33\xc6\x88\x42\x58\xd6\x6c\x2b\x11\x63\x4e\xf3\x10\x85\x18\x76\x96\x1b\x10\x8e\xbb\xf8\x09\x51\xe0\xbf\xd5\x1e\x27\x51\x9e\x6e\x6b\x28\x2c\x1e\xe5\xce\x5d\x74\x0a\x6b\x30\xee\x89\x87\x52\xec\xf6\x93\x60\x95\xb8\x63\x48\x16\x37\xbc\xf6\x64\xb0\xc6\xcc\x83\xb9\xdf\x56\xe4\x06\x14\x0b\xf6\xb4\x68\x3c\xce\x0e\x94\x9a\x5a\xf3\xb4\xc0\x36\x46\xd3\x04\x23\xfc\xfa\xb3\x33\x82\x6b\xef\xdb\x78\xa3\x99\x70\x44\xb0\x0f\x55\x72\x0d\x7a\x93\xd4\x73\xed\x44\xac\x5d\xef\x2e\xe4\xe8\xf8\x42\xd4\xb4\xb0\x19\xf7\x3e\x30\x46\x79\x13\x55\x11\xc6\xa9\x6c\xc2\x10\x91\xb4\x21\x9c\x34\x0d\x94\x3a\xb9\x3a\xcc\x9d\x87\xee\x72\xdd\xb1\x25\xa0\x41\xb3\xda\x19\x09\x0d\xc2\x14\x9c\x5d\xcd\x47\x27\x4a\xd4\xab\xa7\x0d\x56\x04\x29\x2f\xcf\x09\xb5\x09\xcf\x80\x51\x1b\xaa\x91\x24\x3e\x37\xb3\x05\x66\x0c\x09\xea\xd4\xb7\x03\x73\x6e\xd3\x3d\x19\xd2\x40\x5b\x39\x3a\x51\xa0\xa7\x38\xa5\xc4\x9d\x42\x30\x54\x1b\x4d\x46\x4a\x20\x2e\x09\x25\xc4\x9f\xb7\x02\x1b\x81\x8d\x5a\x28\xb7\xa0\x27\xda\xe6\x38\xd2\x06\xec\x26\x58\x1b\xc0\xc8\xce\x0e\xe8\x77\x6f\x23\x19\x8a\x84\x4b\xca\x02\x28\xa6\x3e\x59\xc6\x10\xa4\xa5\xaa\x23\x7d\x12\xbb\x55\xfb\xc2\x80\xd1\x22\xb1\x50\x36\xa7\x57\x49\xe6\x8e\xbf\x68\x8d\x84\x81\x45\x6e\x77\x02\x88\x04\x05\xce\x46\x5a\x22\xa2\x8d\xa1\xd4\x9e\x3a\x63\x9a\x73\x4a\x2d\xce\x4a\xf9\x88\x15\xac\x01\xef\xf6\x29\x83\x38\x71\x1a\xab\x05\x56\x1a\x61\x46\x9d\xa5\x2c\x90\x71\xd1\xa4\x0e\x94\x22\x5e\x67\xbf\xb4\xc0\xc4\x20\x45\x5d\x4c\xc8\x81\xb9\xa4\xda\x82\xb9\xd1\x5a\x69\xe8\x50\x23\x6c\x84\xb4\x99\x3e\x12\x11\xc6\x34\xd5\x23\x65\xc0\x78\xa4\x58\x2a\x60\x77\xe5\xb6\x0a\xda\x28\xb7\xa0\x40\x66\xee\xb5\x37\x80\xbd\x37\xa8\x0d\xb2\x11\x11\xb7\xe8\x30\x73\xbb\xc8\x2d\x7a\x12\x81\x84\x53\x31\xa3\x17\x2d\xea\x13\x8c\x88\x37\xee\x2d\xf5\x29\x97\xd8\xd0\xd0\x20\xc3\x19\x17\x52\xd1\xd1\x09\x34\x8d\x85\xc2\x0a\x58\x91\x31\xaa\x09\x11\x12\xc8\xcc\xa8\x54\x54\x38\x06\x15\x18\x53\x6a\x46\xc3\xdc\xfc\xf7\xd1\x77\x44\x51\xbb\xff\x4e\x34\xe2\x9e\x33\x5e\x10\x29\x6d\xd2\xc3\x26\x4c\x68\x6d\x13\x61\x29\xd7\x84\xd2\xd1\x09\x40\x89\xe0\x46\xd8\xdd\x1d\x66\x94\xa0\x42\x8c\x88\x54\x48\x12\x56\x9f\x19\x74\x92\x98\x28\x70\x80\xdb\x90\x13\xa2\xb8\xcd\x54\xe1\x14\x19\x51\x97\xd2\x36\xad\x14\x98\xcf\x49\x89\x11\xd1\x04\x51\xc6\xec\x79\x4d\x1f\x1f\x7e\x01\x30\xcd\x68\x27\x0f\x89\xc0\x04\x70\x36\x08\xeb\x8c\x44\x83\xaa\xd3\x83\x30\x9b\x31\xef\x03\xd6\x80\x0a\x71\xe3\x65\xcc\x6d\xa8\x10\x58\x77\xee\x3c\x20\xa5\xce\xff\x83\x31\x60\x2d\xdb\xa0\x13\xa0\xa9\x34\xbd\x62\x8e\xcc\x3e\xdf\xb8\x03\x02\x59\xec\x79\x76\x60\x36\x60\x8e\x30\x30\xbb\x01\x75\x60\x88\x77\x30\x8d\x46\x54\x11\xc3\x15\x69\x83\x8d\x40\x4a\x03\x7b\x38\x03\x57\x10\x23\x38\x03\x28\x17\x44\x1a\x6e\x33\x62\x19\x13\x1a\x4b\x3a\x7a\x01\x60\x2a\x94\xe1\xee\xb0\x88\xd2\x5c\x29\x3e\x3a\xb1\x60\x2a\x8c\xb1\x89\x1a\x5a\x50\x81\xb5\xb6\x6d\x10\x63\x6c\x16\x86\x44\x86\x4a\x29\xa4\x74\x50\xa5\x85\xb0\x29\x5c\x18\x63\x83\x85\x71\x2d\x93\x26\x48\xcb\x79\xcd\xc7\x6b\x30\x08\x3e\xed\xdc\xed\x17\xbe\x11\xc6\x6c\x60\x18\x33\xa2\xb1\x70\x78\x08\x41\x0c\x17\x36\x8d\x4c\x69\xa2\x35\xf4\xa8\xc0\x6e\x97\xda\x65\x9b\x6b\x17\x44\x76\x04\x22\x6d\xd0\x09\x21\xd6\x11\x91\x46\x75\x4a\xc2\xe2\x16\x9a\xba\xd8\x3d\x97\x4a\x72\x6a\x81\x9c\x51\x02\xd3\xc8\xc1\x9e\x53\x98\xcb\xd1\x0b\x0b\x16\x14\xf3\x0e\x5a\x0e\x2a\xb9\xb2\x19\xdd\x5a\x33\x26\x05\x73\x4d\x08\xad\x84\xdd\x12\x05\x37\xd3\x10\x0f\x34\x9d\xc1\xd6\xb0\x36\x5d\x1c\x4c\x71\x61\xb3\x9b\x29\xa5\x84\x09\x5d\xf7\xc4\x18\x51\x8e\xe4\x20\x8c\x85\x6b\x94\x63\x65\x24\x40\x25\x65\x92\x73\xdf\x15\x31\x98\x09\x77\x1e\x48\x69\x2e\x99\x6b\x99\x29\xc3\x84\xcd\x37\xd4\x5a\x52\x4a\x05\xb4\x2c\x90\x21\xda\x9d\x42\x15\x52\x10\x42\xcd\x88\xd8\x7d\x2a\x41\x68\x87\xa3\x06\x78\x0f\x38\x52\x70\xc4\xb8\x00\xa8\xd6\x4a\x0a\x02\x8d\x82\x97\x21\x58\x1b\x46\xc0\xce\x22\xc6\xa6\x76\x51\xe7\x31\x34\x20\x0e\xa5\x3c\x4d\x1c\x4c\x1a\x9b\x2a\x4d\x18\x67\xc6\x28\x0f\xa6\x42\x61\x66\x0f\x4f\x11\xac\x8c\x66\x1e\x0c\x96\xb1\xdb\x65\x94\x9c\x28\x06\xbd\x0b\xb0\x4d\x95\x62\xf6\xf0\x14\x53\x5a\x72\xdf\x1b\xe7\xc6\xb8\x5c\x70\x82\x25\x23\xdc\x43\xb5\x70\x87\xa7\xa8\xa6\xdc\xd0\xba\x3f\xc5\xb5\xf6\x19\x4a\xd4\x50\x23\x7c\xcb\x1a\x63\x23\xdc\x32\x21\x94\x29\x3f\x34\x2d\x14\x75\xab\xc4\x1e\xf6\x74\x40\x43\x34\xb1\x73\x63\xb0\xa0\xc2\x48\xd7\x30\x67\xcc\x62\xa1\x10\x35\xc0\x76\xc4\x35\xac\x08\x27\x9a\x85\x14\xfc\x1a\x4d\x19\x63\x23\xc2\x25\x08\x4f\xca\xa4\x8d\x83\x52\x2c\x09\x05\xa8\x8b\x96\x13\x77\x4c\xca\x30\x2c\x35\x34\x6c\xcf\x8a\x68\x2a\x00\xaa\x85\x12\x52\x02\xc6\xc2\xd2\x1b\x2b\x77\x4a\x4a\x0a\x2d\xb8\x1a\x01\x94\x49\x29\xfd\x49\x51\x22\x60\xb5\x03\x50\x31\x45\x9c\xee\x24\x56\x6b\x99\xd1\x0b\x22\x08\x62\x84\x28\x66\xc1\x8c\x11\xa6\x09\x88\x7b\x70\x66\xb0\x91\x5c\x5a\xb0\xa6\x46\x08\x68\x83\xc0\x38\xac\xf2\x65\x9c\x11\xce\x2c\xc8\x50\xbb\x65\xcc\xb5\x3f\x93\x4a\x04\x45\x14\x0b\x21\x6c\x9b\x42\x70\x77\x82\x0c\xc0\x0a\x1c\x20\xdb\xa6\xd4\xc6\x30\x01\x34\x13\x60\xd9\x71\x7b\x2a\x9f\x22\x4d\x99\x62\x84\x38\xb0\x64\x8c\x32\x0b\x36\x42\x32\xe0\xfe\x13\x22\x40\x8b\x52\xea\x04\x8b\x62\xb0\x14\x47\x44\x48\x84\xc1\x54\xd1\xb0\x80\xed\x81\x0c\xae\x2d\x94\x10\x2a\xb1\x3b\x9b\x2b\x18\x28\x15\x68\x18\xb8\x06\x73\x4d\xdd\x2d\x00\x52\xd2\x35\xd8\x08\xac\xdc\x7e\xa8\x36\x44\x79\x28\xb7\x25\xa5\x24\x5e\x85\xd8\x92\x8a\x72\x5b\xd2\x68\x61\x94\x96\x1e\x4c\x09\x35\x4e\x71\x6a\xa6\x8d\x34\x80\xb0\x3f\x6b\xc1\xdc\x5e\x1f\x58\x7e\x40\x49\x81\x04\xc7\x1c\xe6\x48\x23\x4c\x14\x25\xdc\x8c\x60\xcc\x8a\x13\x49\x6d\x1a\x22\xc1\x8a\x71\x23\x1c\x29\x18\xa6\x8a\xdb\xc2\x84\x12\x0c\xbc\x6d\xc1\xd8\x1d\x6d\x25\xd4\x2b\x0b\x98\x65\xc9\xdc\x66\xa3\x0f\xcb\x12\x70\x33\xdc\xf6\xaa\x8b\x94\x59\xe6\xd5\xd2\x1e\x60\xc7\xda\x6d\xb0\x5b\xce\xc5\xdc\xd8\xfb\x00\x8c\xbf\xb4\x00\x60\x52\x51\x6e\xec\x89\x6d\xad\x15\x07\xbb\x18\xda\x23\x30\x08\x6e\x15\x30\x33\x92\x09\xc7\x5d\xd2\xd4\x87\x88\x38\x93\x94\x11\x3b\x1e\xd6\x08\x70\xe2\x31\x34\x48\x52\xa5\xb5\x6a\x83\x89\x24\x48\x68\xc6\xa5\x01\xed\x6f\xc0\x08\x32\x74\x44\x24\x45\x98\x61\xaa\x2d\xae\x5c\x70\x2d\x30\x0c\x1c\xc0\x8a\x0b\x7f\x38\x8c\x83\xa3\x02\x16\x0a\xb5\xc2\xdf\x1d\x3b\x33\x84\xda\xe3\x2b\x16\x0a\x66\x99\x3d\xa2\xa6\x14\x23\x46\x19\x0b\x25\x58\xda\xd3\x5a\x76\xb3\x92\x50\xe2\x1b\x26\xf6\x18\x86\x9d\x42\xcc\xb0\x34\x35\x98\x19\x2c\xfc\xae\x2a\x15\xf6\x48\x9d\x05\x73\xe2\x4e\x01\x39\x0b\xe6\xa4\x05\xe3\x42\x4a\xa2\x89\xeb\x8b\x63\x4d\xad\xd1\xc1\x94\x64\xd4\x98\x1a\x0a\xeb\x0b\xac\x02\x45\x08\x93\x75\x4f\xe0\xfd\x00\x23\x4b\x42\x05\x51\x35\x02\x44\x59\x83\x9a\x23\x62\x8f\x99\x12\x4f\x07\x23\x24\xb7\x8a\x47\x69\x26\x99\xd2\x1e\x2c\x05\x83\xd2\x0c\x71\x4c\x95\x31\xbe\x6d\x6c\x4f\x95\x02\x18\x73\x6a\xa4\x95\x85\x92\x20\xa3\x98\x32\xee\xdc\x23\x66\x58\x59\x29\x2b\x09\x92\xc2\x10\x77\x36\x14\x14\x31\x37\x7a\x44\x24\x46\xca\x60\x82\xed\x39\x52\x63\xa7\x11\x64\x80\x06\xcf\x9a\x73\x1b\x50\xc6\x1c\x6b\x42\xac\x68\xd1\x08\x08\xa8\x6d\x5a\xa5\xd6\x98\x70\x6c\xb9\x59\x21\x89\x05\x76\x60\x45\x8c\x31\xc6\xf2\x85\x4d\x53\xb6\xc7\x4a\x34\xc8\x3d\x6a\xac\x28\x03\xed\xc9\x18\xb7\x39\xa7\x12\x6c\x11\xed\xa0\x4c\x62\xab\xec\x34\xb0\xa0\x82\x26\xec\x0a\xd4\x5c\x10\xaa\xdc\x41\x23\xcd\x35\x17\x0e\x4c\xc1\xba\xb0\xe7\x8f\x18\x11\xd8\x1e\x8c\x81\x25\xa8\xb0\x12\xae\x43\xc2\xb5\xa0\xd4\x41\x61\xae\xa8\xb5\x73\x8c\x52\x4a\x59\x0b\x41\x80\x61\x20\x24\xb1\x77\x28\x28\x4c\x09\x33\x5e\x76\x71\xca\xa4\xb2\xe7\xa3\x05\xa3\x82\x52\x0f\xc6\x8a\x48\x62\xd5\x00\xa7\x12\x04\x3a\x0c\xd1\x5e\x61\xc2\x95\x33\x0a\xb0\xd6\xc4\x00\xf5\xa8\xdd\x72\x72\x87\xf8\x99\x21\x82\x4a\x0f\x05\xa6\xb0\x69\xf4\x4c\x71\x86\x9d\x90\xa1\x48\x52\xac\x89\x33\x20\x14\x11\x9c\x6a\x27\xae\xa5\x22\xdc\xa5\xeb\x1a\x42\xb9\x16\x56\x34\x73\x22\x84\x53\x67\x82\x4b\xc9\x89\xb4\x50\xc6\xb5\x72\x29\xd1\x4a\x70\xa6\xad\xae\x05\x30\xe3\x4c\x59\x15\x2c\x88\xc4\x92\x6b\x0f\xa6\x4a\x0a\x7b\x3d\x0a\x15\x14\xc8\xde\x80\x99\x70\xa1\x5f\xca\xed\x89\x3d\x8b\x06\x13\x42\xc3\x04\x30\xc4\x99\xc1\x5c\x39\x3c\xb4\x20\x8c\xd8\x03\x2d\x5a\xb9\x58\x2c\x50\x94\xe3\x0e\xc8\xca\x4a\xc9\xec\x69\x07\xe3\x83\xb3\xc0\x44\x5a\xba\xa0\xb8\x8b\x0f\x58\x59\x81\x85\xed\xa2\xde\x8f\xb0\x5c\x2c\x8c\x3f\x53\xe4\x53\xe6\x81\x59\xc1\x3c\x71\x87\x73\x84\x20\x44\x58\x4f\x46\x68\x50\x43\xca\xe6\xe6\x13\xcc\xb1\xc4\x4e\x57\x08\xee\x02\x31\x5a\x13\xe9\x34\xe6\x86\xe9\x03\x06\x91\x51\x48\x91\x10\xfe\xc3\x84\x4b\xd8\x25\x06\xd6\x0a\x0f\x35\x12\xcc\x6e\x03\xb4\x60\xce\x47\xf1\x7a\xd1\x55\x1d\x00\xb5\x5a\x83\x2e\xac\xf4\xb0\x1d\x1b\xea\x53\x0b\x08\xa8\x72\x7f\x16\x4a\xbb\x0d\x22\x02\xcb\xc7\xb9\x37\xc6\x25\x61\x8c\x08\x4c\xa9\xa2\xfe\xda\x1a\xdf\x05\x58\x5a\xba\xf6\x34\x3c\x69\x28\xb8\x58\x43\x20\x87\x5c\x0d\x02\xb3\x53\x0c\xc2\xc0\xc8\xc4\xae\x87\x13\x40\x44\x33\x7b\x74\x45\x4a\xe7\x7c\x13\xbb\x91\x65\x60\x8e\x94\xf2\x0e\x1f\xb3\xb3\xda\x06\x9d\x10\xc6\xed\x89\x88\x4e\x31\x8e\x60\x72\x28\xb7\x6e\x48\x07\x04\x0b\xd6\x9f\xa5\xa8\x61\x1d\xdc\x40\x75\x10\x33\x08\xb3\xa7\x00\x7c\x82\x44\x03\xc3\xc8\xa6\x0a\xda\x2e\x0c\xb8\x03\x6d\x92\x0f\xcc\x42\xe3\xa1\xb9\x20\xb1\xf2\x11\x2d\x82\x0d\x22\x42\xb6\x61\x84\x80\x93\x6c\x8f\x3f\x08\xe1\xd9\xb6\x06\x29\x44\x85\xbf\xb2\xa7\x86\x81\xf8\xe6\x86\xb7\x60\x94\x30\x2b\xbe\x8d\xe2\xd8\x58\x1b\x12\xc0\x50\xd1\x9e\x59\x15\x12\x73\x09\x02\x19\x1b\xe8\x93\x18\x1b\x80\x31\xc4\x45\x98\x6a\x24\x5b\xa0\x13\x82\xc1\x55\xd5\xdd\x62\xc4\x79\x2d\x12\x7c\xdd\x2e\xa8\x8d\x90\x87\x75\x10\x07\x98\x24\x5a\xbb\x3b\x65\xa8\xd0\x5a\x80\xd6\xc0\xf6\x6a\x00\xe6\xe7\x8f\x19\x50\x05\x23\xe8\x5a\x69\xa5\x71\x97\x44\x9b\x94\xfc\x80\xc0\x9e\x7f\xc6\x73\xe8\x93\x0e\x79\xff\x92\xe3\x2d\x97\x6c\xff\x16\x99\xf1\xbf\xef\x0d\x93\xb3\xb8\xa8\x92\x8b\x64\x16\x55\x03\xd7\xb0\x0e\xbe\xaa\xbc\x71\x37\x9c\x45\x39\x2c\xc2\x28\x4c\xd7\x0f\x1f\x97\x5f\x1e\x3e\xfe\xbf\xe3\xe1\xe3\x64\xf7\x01\x87\xbf\x3c\x99\x3f\x9b\xfd\x53\xfe\xb0\xe5\x80\x83\xbd\x4a\x37\xf4\xef\x99\xde\x7d\x8e\xa1\xc5\xad\x1b\xd7\xd3\xfa\x1b\xec\x67\xf9\xe2\xe6\xe8\x7c\x59\x55\xf6\x45\x04\x77\x81\x7d\x73\x37\xbd\xef\xa6\xfb\xe0\xef\xf6\x57\x49\x7d\x33\xee\x45\x0f\xdc\xb9\xf6\x36\x78\x9b\x94\xc9\x79\x92\x26\xd5\x4d\xb0\x71\xdb\xad\x7d\xbc\xe4\x2a\x7f\x67\x05\xc6\xe8\x2a\x99\x43\xe7\x23\x07\xd9\xb8\xec\x96\x87\xbc\xdd\x93\x7b\xd0\x83\xba\x37\x5d\x93\xd9\x9b\xa0\xf5\xb4\x4a\xf5\x1f\xeb\x4e\xcf\x7a\xaf\x79\x6c\x11\x5b\xeb\x27\x38\x06\x90\x3b\xf8\xcd\xaa\x7a\xcb\x64\x96\xcf\xd7\x13\x40\xfc\x71\x91\xbb\x9f\x74\x18\x7e\x3d\xaa\x6e\xf4\x6a\xf0\xea\xe2\xad\xd7\xcf\xdf\x75\x11\xb0\xbd\x2a\xbe\xb9\xe2\x1d\x88\xbb\xbf\x80\xde\x90\x8a\x9d\xcb\xdb\xf3\xe9\xb8\x11\xd1\x55\x11\xcd\xde\xc4\xf3\xb0\xe8\xdd\xde\x1e\xed\x75\x75\x3b\x42\x28\x76\xe2\xd1\xcb\xca\x07\xcd\x55\xee\xf1\x24\xac\xec\x35\xeb\x61\x36\x75\xf3\x15\x46\xee\xf7\xb8\x98\xa6\x93\x47\x8f\x86\x17\x30\xb4\xd3\xbe\x59\xb3\x68\x8b\xca\xb6\x5c\x3c\x2e\xba\x62\xb2\x96\x82\xc7\x45\x23\x10\x43\xb7\xfa\x8b\x8e\xa8\x2a\x76\x88\xaa\xd5\x64\xd5\x61\xd2\xfa\x56\x78\x40\x7f\xfa\xb0\xf9\x73\xb5\x0a\xd3\x69\x39\x8e\xda\x57\xb0\xbb\x11\x9e\x66\x67\xe1\x6d\x07\xcb\x87\x38\xec\xde\x13\xda\xe0\xf9\x10\x87\x2d\x4c\x36\xef\x0e\x7d\x48\x56\xab\x49\xd8\xef\xa6\xb3\x86\xc2\xd3\xe2\xee\x9b\xe2\x77\xd4\x9f\x84\x51\xfb\xc6\xf8\xa8\xad\x7a\xf3\x9d\x37\xc6\x27\x61\x7e\xf7\x7d\xa6\xb3\xab\x24\x9d\x1f\xb9\x37\x79\xf3\x81\x23\x6b\xf5\x35\xb6\xc0\xe4\xcb\xa2\x88\xb3\xd9\x4d\xf7\x76\xd7\xbe\xae\x0e\xb3\x8f\x77\xb0\xad\xd8\x2d\xf7\xf3\x65\xf6\x13\xd1\xff\xf8\xff\x0f\xcb\xfd\x59\x9e\xc2\xa0\xdc\x33\x0d\x5e\x07\xb4\xde\x9a\xf7\x57\xad\x0f\x5f\xb1\xee\xf5\x81\x13\xc8\xc4\xbe\x1d\xdf\x26\xd3\x08\x04\x26\xb7\x6f\x1f\x1d\x75\xbf\xf8\x53\x6c\x2a\x1c\x78\x4e\x9a\xe8\x90\x6d\xbe\xc4\xed\xdf\x2e\xea\x3c\x21\xe6\x5e\x2f\x12\xad\x07\x46\x0e\x7d\x2f\x3c\xb8\x49\x62\x40\xcb\xdd\xcb\xdb\x7a\xcf\xdb\xca\xfc\x22\xb6\xca\xed\xae\x97\x5b\xd6\x08\xdf\xf1\xd6\xce\xe6\xd3\x69\x56\x93\xda\xd7\xd2\xec\xb3\x52\xdb\xef\xa4\xef\x5c\x3a\x7f\x07\xde\xbe\xf9\x0f\x46\x7b\x50\x75\xf9\x19\x10\x21\xc1\x07\xbe\x0c\xe5\x29\x6e\xaf\xd0\xed\xbd\x6a\x53\x16\xb3\xce\x73\x35\xad\x49\x96\x30\xa2\xc7\x5f\xdd\x36\x0f\xdd\xac\x1e\x7f\x75\xeb\xde\xbf\x81\xbf\xe6\x33\xf8\x2f\x50\x70\xd5\x79\xfe\xae\x46\xac\xfd\x3e\x4e\xf3\x6a\x8e\x7d\x5e\xa6\x7e\x67\x09\xc6\x02\x5c\xc8\x44\xc8\xdc\x3f\xb4\xff\x4e\x8d\x08\xf1\xc6\x9b\xf4\x03\x4f\xd3\xad\x41\xda\x57\x53\x5b\x5e\x89\x01\x1a\x04\x67\x43\x4f\xce\xef\xf3\x92\xb6\x23\x61\x7b\xdd\x9e\xb6\x9e\x8e\x0a\x83\x6f\xca\xdc\xbe\x98\xf2\xcd\x45\x92\xda\x66\xc2\xfa\x75\x73\x8b\x96\x5b\x90\x56\xe3\x46\xe5\x6c\x90\x6a\x65\x1c\x15\xb3\xab\x85\x93\x48\x49\x5c\x06\x1b\x6f\xa5\xb9\xc7\x7a\xda\x0f\x99\xf3\x10\xac\x80\x43\x1e\xab\xf2\xa3\x59\xe4\xef\xe2\xc2\x4b\x86\x35\x47\x58\x0c\x9e\x65\xfe\xf9\xac\x1a\x60\xb9\xc4\xde\x0f\x6f\x47\xe5\x1f\x57\xfa\x2e\x2e\xcb\xc8\xbd\x72\xe4\x8a\x6d\x00\x7e\xec\xbc\x98\xf7\x4d\x9e\xfd\xb0\x88\x33\xf7\xd7\x49\x9a\x97\xfe\x81\xa4\x93\x86\xfb\xaa\x62\x19\x0f\x4f\x30\x0d\x49\x58\x13\x28\xd8\x64\x06\xfb\xfa\x5b\x87\xb8\xc2\xd2\xa5\x7e\x3d\xee\x85\xc3\x18\x21\x14\xb8\xc7\x44\xf3\xb2\x4c\xce\xd3\x78\xd4\x8c\xca\x52\x52\xec\xc5\x5e\xcd\x12\x3c\x0b\x01\xe1\x03\x18\xb3\x55\xd3\x1a\x6b\x3b\xaa\x06\xcd\x13\x52\x96\x87\x4e\xcf\xfc\xa0\xe4\x59\xe7\xdd\xb2\xbd\x1f\x28\xbb\x43\xf0\xba\x37\xad\x22\xc7\xac\x81\xa3\x4a\xeb\x05\xc9\xfa\x25\x26\xba\x77\xef\x7b\x4b\xe7\xe1\xe7\xd2\xe8\xc0\x7b\x69\x1b\x2f\x27\x0d\xc9\xf9\x3d\xcc\xe6\x01\x9d\x46\x71\x3d\x43\x12\x24\x79\xf3\x32\x07\xbe\xef\xd3\xb6\x7b\xe8\x39\xfb\xd6\xe7\x47\x22\xe3\xbe\xae\xc6\x87\x78\x13\x5e\xcc\x2d\xd2\x65\x61\x0d\xce\x5a\xa2\x37\xf2\xbd\x2d\xf4\xfd\x83\x54\xcb\x22\xb1\xef\x0e\xa6\x3f\x34\xd2\xc3\x3d\x45\xd5\xbc\x50\x95\x94\x5e\x26\x58\x67\xa5\x7e\xc0\x6a\x2d\x6c\x40\xa8\x1e\x9d\xdf\x04\xfd\xe7\x37\x9d\x64\xad\x6d\x3d\xcf\xbb\xed\xa7\xff\xfc\x3b\x57\x97\x07\x3d\x58\x35\x64\x6f\x76\x02\x53\xd1\xce\xc0\x54\xe1\x2d\xde\xe6\x0b\x72\xce\xcf\x78\xfd\xfe\xd4\x6d\xad\x6d\xdb\xe6\xfa\x2a\xac\xa2\x4b\x87\x56\x10\xda\x57\xcc\x7a\x5f\x6f\x16\xf6\xd3\x3c\xbf\x3e\x76\x3d\x24\x99\xb5\x61\xcb\xb8\x78\x9b\xcc\xe2\x71\x30\xcf\xaf\x83\x49\x78\x91\x17\xd7\xf6\x99\xbe\x24\x8b\x8b\x2d\x25\xed\x13\xb6\x93\x10\xe8\xe7\x4b\xc0\xf8\x97\x55\x3c\x47\x51\x9a\x44\xa5\x2b\x81\xac\xae\x9c\x84\x8e\x14\xf1\xdc\xcf\xdf\x96\x1a\x6e\x32\x26\xd6\x1b\x69\x63\x6e\xfd\x9d\x9f\xb7\xbe\xcd\xf5\x73\x9a\x94\x55\x9c\xc5\x45\xe9\x5e\xd3\x9a\xe7\xd7\xa8\x01\x8d\x7d\x21\xc0\x66\xda\xfc\xd5\x8c\xce\xfe\x1a\xbb\xd7\xbc\xac\xeb\xd1\x14\x41\xb3\x34\x8e\x8a\xf1\xed\xd3\xa8\x8a\x66\xf6\xd2\x8d\x63\xd7\xfa\x2c\x6c\x1e\xd7\x73\x10\x6f\xcf\x4c\x56\xe1\xbb\x24\x4d\x9f\xc6\x65\x55\xe4\x37\xcf\x52\xbb\x62\xee\x35\x0c\x54\xc4\xd7\xf9\xdb\x78\x3c\x59\x85\xf9\x20\xc1\xc6\x41\x8f\xa0\x08\x04\x7b\x6b\x81\xd8\xdf\xe3\x56\xdf\xe0\x6d\xc7\x6e\xfc\xeb\x52\xef\xdf\x9f\x9e\x35\xb7\x6b\x38\xa7\xb2\xdb\xac\x2d\xe0\x83\x73\x0e\x83\xcb\xb8\x1a\x57\xcd\xa3\x43\x93\x3f\xe3\x47\x8f\xc6\xf1\x34\x46\xce\x58\x19\xc7\xd3\x3f\x3f\xac\xd0\x45\x92\xcd\xbf\xbd\x19\x07\xcf\x9f\x06\xe1\xba\x5a\x1c\x02\x60\x32\x99\x4c\xc2\x18\x3c\xb6\x32\x7a\x1b\x1f\x8f\x71\x58\xa1\x2a\x2a\xdf\x4c\xd6\x31\xc1\xff\xe5\x3c\xac\x69\x9b\x77\x27\xb7\xb5\xb3\x64\xf1\x2c\xe2\x45\xfe\xa0\x2a\x6e\x6e\xe3\xa9\x95\x8d\xa3\x02\x2d\xe2\xa2\x4c\xca\x6a\x5c\xcf\xa1\x13\x0d\xf6\xe5\xb6\xec\x32\x46\xd1\x62\x91\xde\xd8\x89\x0e\x9b\xd7\xb7\x6e\x33\xbb\x56\x1a\xcd\xe8\x7c\xb5\x6a\xb5\x0a\xab\x30\x3e\x9b\x84\xd9\x78\xb2\x9a\x45\xd5\xec\x6a\x1c\xf9\xd9\xb3\x8b\x6a\x7c\xeb\xd6\x56\xb4\x9a\xd8\xe7\xb9\x7c\x4f\xc7\xb7\x45\x5c\xc6\x9b\x33\x7e\x1f\x66\x0a\x9b\x67\x18\x1d\x74\x6d\x3f\x4f\x56\xa1\xe3\x8e\xe3\x6e\xec\xd8\x91\x27\x5b\x93\x07\x68\xfe\x2a\x5d\x5e\xfe\x7b\x7c\x33\x9e\x34\x51\x15\x37\x11\xd9\x24\x8c\xa6\x6e\x9e\x9e\x83\x6c\xea\x06\x8c\x37\x26\x1c\x2a\x4c\xa7\xd3\x62\x35\x99\x3c\x48\x2e\xc6\x47\xe4\xe1\x74\x1a\x4d\x9a\x87\x45\x1c\x3e\x4f\xaa\x71\x14\x92\xc9\x03\x8b\x40\x2d\x9d\xc6\x35\xa9\x01\x0a\xb8\xf7\x85\x96\xf7\xa5\x3b\x93\x0b\xeb\x37\xcb\x8b\x6b\xab\x1e\x9e\xbd\x8d\xb3\xaa\xb7\x5c\xa2\x69\xf5\xa0\x7c\x97\xc0\xc4\x14\xc8\x3f\x33\x0c\x53\x39\xb9\x9d\x45\x65\xdc\xcc\xa7\x5f\x34\x65\x5c\x8d\xb3\x30\x38\xb1\xfe\xe0\xeb\x04\xac\x94\x71\x16\xbf\x1b\x3d\x8d\xaa\x78\x02\xe3\x03\xd8\x78\x62\x43\x10\xcb\xf2\xca\xb9\xf5\xe3\xcc\xb3\xd1\xb6\x91\xd8\x97\xd9\x5a\x51\x8a\xe8\xee\x20\x44\x3e\x8f\x8f\xe2\x79\x32\x18\x81\xe8\x5d\x9a\xd3\x44\xff\xab\xd6\xce\xc0\xb4\x1d\xed\x8f\xed\x54\x0c\x86\x5c\x5e\xb9\xf0\x80\xab\x55\x4c\x77\x95\xf9\xff\xd8\x7b\xd7\xf5\xb6\x8d\x2c\x51\xf4\xbf\x9f\x02\xc6\xf4\xb8\xc9\x4e\x91\x16\xa9\xbb\x66\x33\xb1\x22\x3b\x1d\x77\x7c\x1b\xcb\xe9\x74\x6f\x0d\x3f\x07\x02\x8a\x24\x62\x10\x60\x0a\x45\xc9\x6a\x99\xe7\x59\xce\xb3\x9c\x27\x3b\x5f\xdd\xab\x80\xc2\x95\x90\x2d\xf7\x24\xb3\x77\x5b\x04\x0a\x75\x59\xb5\x6a\xd5\xba\x2f\xd2\x0d\x7e\xf4\xa8\x87\x26\x48\x1c\x61\x35\x0f\x2c\x51\xa1\x4a\xb3\x43\xe6\xa8\xa9\xc7\x36\xe4\x8c\xc7\x14\x9a\xfc\xdc\xc5\x00\xf5\x37\xbc\xb3\x78\x23\x57\xc7\xd6\x9a\xa0\x1e\x5b\xdf\xe8\xbf\xe2\xff\x23\xb7\x79\xc8\x68\xcc\x7f\xc5\xdf\x7c\xc3\x56\xe2\x51\x8d\xfb\xc3\x89\x6c\x71\x11\x4f\xbf\xd3\x7f\x9c\xdc\x6e\x1e\xc4\xff\x39\xfe\x0e\x73\xb0\xf4\xbc\x3e\x78\xb8\x63\xb3\x8a\x90\x95\x51\xd4\xf3\x2e\xf0\xb4\xbf\xe9\xf7\x4f\x2a\x56\x98\x7e\x67\xd3\xf6\x84\x30\xed\xc1\x2a\xb5\x57\xda\xf3\xfa\xfd\x13\x6d\x4e\x05\x13\x2a\xb6\x36\x54\xea\xd5\x00\xee\x93\x45\x08\x00\x43\x05\x60\x64\x96\xa1\x74\xb0\x13\xc6\x0e\xb4\x2e\x86\x8d\xc5\xf5\x55\x71\x46\x57\x98\xd5\x24\x6a\xba\xc3\x4d\xff\x04\x5e\xe0\xe9\x24\x06\xb0\x33\x53\x88\x57\xae\x12\x7b\x3b\x5b\x84\xf0\xaf\xff\xfd\x7f\xed\x2a\xb1\x65\x12\x40\x53\x0b\x46\x99\xe5\xe0\x7b\xd2\x36\x7d\x1e\xcf\x92\x1a\xf6\x11\x9c\x24\xd1\xa5\x47\x35\x82\x8c\x51\xb0\x5a\x49\x8a\x3e\x2b\x51\x05\x65\xb5\x47\x34\x05\x55\x5e\x8d\xc6\x84\x8b\xe3\x7c\xc9\xfd\x31\xd8\x9d\x8a\x5e\x0c\xe9\xaf\x69\xa1\x6f\xae\xac\x1b\x6b\x23\x68\xea\xa7\x6c\x7d\xe7\x3a\xba\x8d\xa2\x02\x88\x59\x00\xa5\xcd\xd7\xcb\x3e\xab\x58\x6f\x85\x2c\x55\xba\x6c\x31\xaf\x1a\xcb\xce\x09\x44\xf9\xb9\x1f\x65\x54\x60\x86\x36\x09\x64\xdf\xec\x4f\xb3\xb6\xac\xa6\x25\xdb\xcb\x74\x31\x52\x31\x42\xd5\x29\x8c\xbd\x53\xaa\x15\x4d\x47\x23\x84\x25\x5d\x9e\xcd\x2b\x12\xd4\x22\xf6\xc8\xce\x30\xf1\x8e\xfc\xd8\x6b\xaa\x4a\x30\x1d\x0c\x46\xe0\xc2\x65\x32\x6d\xbe\x8e\x7b\x1d\xa9\xdd\xe8\xb1\xe8\x34\xa7\x90\xf4\x81\x93\x92\xd2\x9e\x1a\x38\x6b\x1a\x40\x99\x46\x4e\x16\xb6\xae\xa3\x12\x6c\x78\x96\xec\xc5\x3b\xf5\x9f\x47\xc0\x0d\xaf\x6e\x06\x84\xc5\x58\x86\xb4\xc4\xb5\x7d\xc2\xc0\x7d\x42\xad\x69\x19\x4d\x1c\x6d\xf4\xf3\x2a\xf0\x08\x6e\xa8\x45\x51\x65\xd6\x88\xff\x3b\x96\x6a\xc2\x5c\x39\xfc\x1d\xa6\x79\x1d\xed\x15\xd5\xbe\x96\x01\x62\x48\x33\x76\x66\xad\x9f\x15\x24\x40\x96\xec\x6c\x4b\x04\x2c\xa7\x5e\x95\xf0\x94\xaa\xd0\xca\xd3\x3e\xe2\x56\x91\x52\xbd\x7b\x56\x7f\x54\xac\x0e\x11\xfb\x33\xa0\x77\xd4\x80\xe9\x21\xc2\xf8\x2a\xf1\x3d\xae\xda\x90\x3a\x0e\x7e\xb1\x91\x7f\xa8\x4a\xe3\x26\xc6\xde\x47\xa9\xa1\x40\xd0\x0b\x92\x38\xba\x91\x45\xb9\xa9\x26\x64\xb0\xf0\x52\xd6\x29\x69\xc8\x50\x40\x60\x80\x42\x80\x24\xfe\x00\x6f\xd6\xab\x46\x2a\x8e\x2c\x37\x2b\xf4\x1b\x20\x9a\xdc\x62\xef\xf2\x3c\xfc\x17\x3c\x19\x83\x28\x8c\xe1\xab\x35\xb9\xcc\x53\xc2\x37\xe0\x05\x24\x3d\x2e\xbc\x74\x11\xba\x20\x5d\x24\xd7\x67\x6b\x94\x26\xe8\x97\x05\x8c\xcf\x29\x71\x0a\xe3\x39\x2d\x62\xb8\xc6\x04\xac\x27\x17\xee\x59\x12\xc0\x97\x14\xa7\x07\x51\x18\xe3\xc1\xd2\x43\x1f\x20\xb5\x69\x91\x9f\x84\x8d\xa0\x1a\x95\xb4\x54\xa3\xe2\x15\x69\x54\x6e\x53\x88\xc9\x98\x69\x81\x9a\x43\xbc\x76\xfb\x95\x5a\x93\x05\x8c\x56\x85\xea\x12\x0a\x2e\x76\x34\x1f\x93\x79\x43\xe4\xf6\x01\xdd\x08\x2a\xff\x51\x4b\x9e\x04\xa8\x3b\x05\x62\x37\x4f\x1e\x8e\x00\xdb\xe8\x13\xd7\x05\x7c\x9f\x4c\xad\x4e\x12\xd3\x5a\xe1\xe6\xc3\xfa\x2a\x14\x25\x24\x51\xe1\x58\xa0\x17\xfd\x80\x2d\x69\x48\x1f\xf5\xfa\xfd\x0d\x08\xc2\xe0\x2d\xf4\x61\x48\xc4\x3d\x8c\xd2\x5a\x23\x70\x9e\x8e\x6b\x1f\xd8\x0a\x1f\xc0\x47\x8f\x20\x19\x94\x29\x1a\x7a\x14\x7b\x5f\x53\xec\xe5\x02\x2c\x5b\x7e\x7f\x03\x52\x88\x5f\x26\x81\x2e\x32\x32\x6d\x06\x9e\xc4\xbd\xb8\x77\xbb\x01\x51\x1f\xdc\x6e\x00\xc1\x58\x78\x02\x87\xcb\x70\x09\x81\xe8\xed\xc4\xe8\x6c\xd3\x7f\xe0\xfe\xe3\xe5\x0b\x77\x32\x99\x40\x2a\x2f\x3e\x7a\xd4\xc3\xc3\x05\x5e\x46\x64\x80\x09\x94\x7f\x02\x3c\xa4\x35\xf1\xcf\xa2\x24\x0d\xe3\xf9\x04\x1a\x3f\x01\x1e\x7a\x51\x38\x8f\xcf\x9e\x9e\xbe\x3b\x9d\x40\xed\x47\x1e\x98\xf2\x88\xe1\xfe\x03\x43\xc6\xe5\x60\x40\x3a\x0c\xd8\xf9\x66\x4b\xe8\x1b\x1b\x40\x30\xa6\x87\xc8\xab\x24\x80\xf6\x2d\x73\x01\xdc\x56\x01\x95\x5c\x12\x74\x85\xe8\xd1\x23\xe3\xe7\x30\x08\x53\x3f\x89\x63\x22\xbd\x30\x14\x78\x4e\xab\xfa\x37\x19\xc0\xc4\x01\x22\xe0\x43\xf6\x75\xcf\xc5\xf0\x23\xf6\x10\xf4\x9c\xff\xc7\x59\x21\xe8\xd0\x2b\x81\xcd\x87\x37\x21\x52\xf6\x2c\x44\x29\x3e\x5b\x84\x51\x40\xf6\x4c\x9f\xdd\x84\x88\xf2\x2f\xd7\x98\x52\xcb\xd7\xfc\x61\xaf\x77\x01\xa7\xfd\xc9\xb7\xb7\x5c\x84\xa7\x07\xa4\x97\x05\x1b\x27\xbd\x50\xa8\x10\xae\x17\x49\x04\xdf\xc1\x8f\x54\x9a\x32\x41\x22\xfe\xe8\x41\x70\xeb\x61\x8c\xc2\xcb\x35\x86\x29\x3d\x9c\xeb\x4b\x8c\x20\x13\x92\xc8\xfc\x5e\x84\x29\x26\xcf\xfd\x85\x87\x3c\x1f\x43\xf4\xd4\xc3\x1e\x13\x76\x0a\xc7\x57\xab\xd3\xe7\x90\x6b\xcf\x89\x83\x81\x19\x73\x88\x9f\xd1\xc7\x3d\x03\x64\x7c\xfa\x82\x7a\x71\x8d\xdc\x79\xb4\x9e\xf7\x0c\x42\xd3\x1f\xe2\x05\x8c\x7b\x70\xf2\xed\xad\xa1\x07\xa4\x27\x1e\x70\x6d\x12\xa3\x3f\x0f\x62\xaa\xea\x63\x5a\x23\xab\xc2\x88\x1d\xaa\x21\x4e\x5e\x10\x3e\xf4\xcc\x4b\x61\xaf\x3f\x99\xc4\xe6\x03\xaa\x1b\x80\x13\xf8\xe9\x13\xbe\xd8\x99\xca\x69\x92\x63\xd7\x83\xfd\x0d\x43\xb0\xd3\xd5\x0a\x7a\x28\x87\x59\x6c\xd2\x43\x04\x67\x08\xa6\x0b\x82\x8c\x52\xf5\x96\xd3\x2b\x09\x87\x19\x01\x01\xa1\x1e\xbc\x35\xd6\x7f\x02\x37\xfd\xdc\x1c\x32\x9a\x9d\xb4\x86\x66\x27\x9e\x85\x68\x49\x51\x70\xe0\x45\x10\xe1\xfb\x92\x15\xf9\xcd\x62\xf7\xec\xf4\x87\x9d\xd8\x2e\x29\xbf\x7f\xef\xa1\xf9\x8e\x0b\xd8\x1f\x23\x17\xb8\xa7\xbe\xe4\x09\x93\x98\x7b\xcd\xe5\x24\xe9\x32\xbf\x92\x23\xb0\x9f\x67\xfd\x08\x77\x1a\xcf\x12\x44\x18\x1c\xc1\xcd\x5c\xf0\xe2\xfe\x79\xd8\x39\xd7\x1e\x8a\x69\xa5\x79\xea\x63\x72\x38\x55\x06\x2f\x53\x86\xd7\x45\x2c\xc1\x06\x2e\xa0\xc7\x0c\x3b\x97\x49\x70\x23\x99\x27\x2a\xd4\xec\x80\x1d\x96\x4b\xb9\x4a\x4c\x61\x8c\xe8\xbe\x36\xc0\x9e\xf2\x74\x14\x23\xb4\x93\x42\x35\xd1\xb8\xc2\xac\x27\x86\xa9\x61\xd9\xdb\xaf\xe9\xbe\x52\x5b\x94\x2d\x5a\x3a\x85\xe9\x5d\x2f\x9c\x0d\x72\x9f\x96\xad\x70\xa8\xbe\x78\xce\x7a\xdc\xcd\xd8\xbb\x6b\xcb\xc7\x0c\x4e\x54\xf4\x01\x17\xfc\x54\x32\xa0\xb0\x53\x13\x10\x6a\x87\x92\x75\xca\x1e\x4e\xc1\x45\x1b\xdf\x8d\x7a\x56\x7c\x7e\x42\xdd\x8c\xd8\xa7\x89\x51\xfc\x4c\xd3\x1e\x14\xd9\xc0\xde\x25\xa3\x82\x5a\xf3\x1d\xd3\x19\x63\x4f\xb9\x56\x0c\x46\xae\xf2\xa8\x69\xe1\x94\x90\xa7\x3c\x45\x9a\x83\x1a\x2e\x01\x96\x26\x05\xfb\xb1\x05\xf4\x3d\xd3\xfd\x67\xc6\xb4\x12\x64\x8c\x83\xa6\x00\x38\xf3\x62\x1f\x46\x9d\xae\x39\xdf\x60\xb7\x58\x75\xd1\xfe\xe1\x08\x8c\xc5\xf3\x62\x19\x59\x4a\xc0\x2a\x76\x22\x67\xb1\x8f\x20\x79\x38\x08\xd3\x62\x41\x9a\x0a\xc4\xd4\xa3\xa0\x91\x9c\x6b\xbf\xdb\x5b\xc4\x99\xe4\x85\x4f\x65\xae\xdf\x34\x8d\x36\xd1\xa7\x15\x84\x5e\x94\xcc\x6d\x6e\xad\x25\x2e\xac\xdd\xf1\x20\x71\x39\x0f\xb2\x78\xf1\xd4\xff\xe6\x97\x10\xdb\x79\x90\x56\xce\xaa\x8a\x0e\xb9\xd7\x21\x5e\x0c\x74\x68\xb8\x16\xf7\x3f\xe0\x3a\xbc\x09\xe1\x2b\x68\xc5\xff\x4c\xf0\xc0\xe8\x90\x76\x97\x77\x66\x1d\x59\xd9\x99\x7a\x94\x53\x9e\x70\xe3\x52\x61\x7f\xef\xea\xaa\x55\x4e\x61\xb3\x0a\x62\xa3\x0d\x3d\xe2\xd9\x89\xd7\x23\x13\x9a\xff\xa7\x36\x83\x43\x0e\x9e\x83\xa9\xee\x44\x98\x71\x98\x6c\xae\x91\x2e\x82\x5b\x43\x45\x68\x53\x58\xb3\x33\x50\x0d\x6b\xf8\x11\xfa\x6b\x0c\x1b\xc0\x9a\xea\x36\x8f\xd9\x3f\x47\x5b\x42\x5e\x81\xf6\x4b\x00\xb3\xca\x35\xcb\x38\x23\x66\xd4\x87\x24\xc1\x19\xb2\xcb\x74\x8f\x2b\x88\x96\x1e\xa7\xcb\xb4\xba\x0a\x6b\xfe\x8a\x6d\xd3\x92\xfb\x73\xb6\xa5\xba\x3a\x79\x33\xc8\x2e\x2a\x25\xbb\x71\x11\xd9\xc5\xca\x8b\x4a\xf3\x97\xe2\xb3\x3c\x71\x4f\x11\x74\x6e\x92\xb5\x93\xae\x11\xfc\xce\x05\x0a\x28\x44\xac\x97\x2b\x25\x3f\x94\xf4\x49\x11\x46\x97\x57\xb3\xb2\xbb\x0e\xda\x87\xa3\xfe\x06\x70\x3c\x6c\xf0\x8d\x90\x53\xe3\x80\xf1\x1f\x3d\x03\xca\xc3\xe1\x90\xb9\xbd\x48\x9d\xcb\x46\x4c\x5d\x1f\x83\x52\xec\x0b\x48\x9b\x4f\x95\x29\xfd\x41\x76\x6c\xbd\x6b\x8b\xc6\x49\x7e\xe8\x02\x9c\x7f\x6b\x4c\x7c\x27\x27\x50\xa3\x3a\xb7\x5b\xba\x8e\x1e\x7b\x7e\xf4\x58\x78\xe2\xdd\x17\x89\xfa\xaf\x7f\x43\xbf\xed\x25\xa3\x8f\xd6\xdb\x2c\x77\x75\x11\x36\x6f\xb5\x1a\x5c\x85\xf0\xda\x6d\xce\x2c\x72\x02\xa8\x2e\xf1\xf6\x62\x62\xde\x2c\xbb\x18\x59\xac\xd4\x8e\xf3\x2e\xf9\x00\xe3\xb4\x38\x94\xb7\x46\x90\x44\xc5\x94\xa5\xd1\xa5\xd9\x9c\x8f\x80\x0b\x97\x2b\x7c\x33\xa0\x8d\x5a\x40\x53\xeb\xa8\x5b\x88\x1a\x50\x1d\xeb\x50\xfd\x05\x46\x7e\xb2\x84\x0e\x4e\x9c\xd3\xb3\x17\xa9\xc5\x48\x5e\x8b\x59\xaf\x35\xef\x7a\x72\xb3\x7d\xd6\x2b\x2b\x2a\x90\xff\xc8\xb4\x1d\x0f\x41\x27\x4e\xb0\x03\x99\xb1\xd8\x09\x63\x87\x1c\x74\xe7\x8c\x1e\x53\xc7\x8f\xd6\x29\x86\x68\xe8\xfc\x02\x9d\x14\xa3\x24\x9e\x47\x37\x0e\x8c\xfd\x64\x8d\xbc\x39\x74\xf0\x02\x3a\xeb\x14\x3a\xc9\x8c\xf5\x16\xc6\xce\x0a\x25\xc1\x9a\x79\xa8\xc0\xf8\x2a\x44\x49\x4c\x27\xe8\xcc\x12\x44\x9b\x5f\xc2\x14\x3b\x29\xf4\xd7\x28\xc4\x37\xce\x0a\x11\x6a\xe4\xc3\x74\x98\x9d\xfa\x5d\xc1\x52\x4a\xfc\xed\xc0\x19\x85\xca\xf4\x1c\x24\x7e\x3a\x88\xc2\xf8\x43\x21\x88\xc5\x57\x9e\xcb\x0a\x71\x1d\x88\x1a\x5c\x4a\x64\x76\xcf\x5e\xbf\x3a\xff\xf9\xc5\xfb\xa7\xaf\xcf\xce\xdf\xff\xfc\xf6\x85\x64\x4d\x5c\x4a\x23\xf9\xcd\x88\x97\x91\x2b\x4b\x85\x21\x18\xd1\xeb\x39\x59\xc1\x18\x22\x27\x4e\x10\x9c\x41\x84\xb8\x23\xcb\x1e\x11\xcf\xd1\x9c\xca\x4c\xef\x2f\x23\xcf\x9c\xde\x5b\xe8\x05\x74\x1f\x82\xc4\xa7\x64\xde\x13\xf2\xbd\xc5\x5c\x5e\xf6\x38\x03\x8b\x08\x7a\x28\xee\x16\x18\x2f\x9e\x9d\xbe\x7d\x95\x01\x09\xbf\x3d\x04\xfe\x0c\x62\x88\xaf\x13\xf4\x21\x8c\xe7\x8f\x15\xe2\x0d\x3c\x3f\x4a\xbb\x01\xd7\x0f\x49\x14\x25\xd7\x14\x60\xf3\x75\xc8\x2d\xda\x35\x01\x75\x37\xa2\x7a\xa5\x53\xbf\xf6\xba\xda\x44\x0d\xe3\xab\x86\xbc\x9b\xfd\xf2\xfe\x72\xa9\x19\xd4\x8c\x8a\x63\x40\xbf\x0c\x3b\x71\xf6\xd7\xf4\xdd\xf2\xa7\x77\x57\x05\x51\xfd\x81\x6f\xf7\x55\xd3\x4f\x15\x41\xe4\x8c\x67\x0b\x41\xe8\x84\xa6\xf8\xc8\x7b\xbc\x08\xac\x39\xf5\x7d\x98\x52\x1a\x8e\x51\x12\xa5\x85\x62\xe2\x6e\xc6\x1f\xc8\x25\xb4\x9c\x1d\x9e\x96\x32\xa2\xcb\x93\x02\x88\xa8\x48\x16\xa8\x4f\x64\x4f\xd7\xb8\x6e\x58\x28\x2e\xa6\x97\x89\x79\xf1\xf0\x1b\xc7\x35\x03\xf7\x6b\xc6\xba\x67\x9d\x52\x38\x2c\xf7\x33\x79\x09\x0c\x92\x13\xf8\x43\xb2\xe4\x21\xa6\xdc\x91\x2b\x3d\x96\x5e\x09\x8f\x25\x4e\x7b\xc2\x94\x1a\x38\xae\x54\x74\x5d\xa1\x23\xa0\x4e\xe1\x94\xc8\x5a\x73\xa4\xa6\x9c\x9b\xe5\x67\x7e\xa7\xe9\xee\x22\x42\xfb\xf3\xdb\x5b\xd3\xc5\xa6\x21\x38\x57\x49\x14\xfa\x21\xfc\x2c\x00\xad\x1a\xcb\x06\xd2\x37\xfc\x9b\xda\x40\x6d\x0a\x00\x72\x4a\x3f\xcb\xea\x4b\x07\xb2\x2d\xfd\x2d\xf9\xe0\xce\xd6\xed\xad\xf1\x62\xb0\x84\x78\x91\x04\x9f\x65\xf9\x75\xc6\xb3\x41\xe1\x74\x8d\x17\xce\x4b\xf6\x5d\x4d\x60\xd4\x36\x37\xdd\x19\x91\xfd\xa2\xa7\xd0\x08\x75\xff\x4a\xcf\x52\xe1\x1a\xbe\xb2\x43\x51\xb8\x8e\x4e\xd0\xba\x5a\xe3\x58\x9e\x55\x26\x1d\x2c\x10\x9c\x49\x4d\xa3\x17\x4b\x75\x22\x79\x3e\xc0\x89\xcb\x1c\x77\x71\xd8\xd0\x31\xb1\x80\xd9\xfb\xe2\xec\xa7\xda\xde\xc7\x97\x61\x1c\x84\xf1\x7c\x10\x85\xe9\xbd\xf1\x15\x39\xfe\xb8\x5a\x5c\xfe\xf7\xb3\x97\x65\x09\xa6\x6a\x24\x96\x62\x10\xd0\x16\x3b\xd0\x17\x9b\x43\x47\x8b\xe2\x44\x39\x84\x7f\x1f\xc6\x81\xc4\x7f\x8b\x4f\x34\x19\x3c\xb2\x60\xb8\x7c\x89\xd5\xc4\x44\xc6\x08\x39\x84\x76\x02\x97\x49\x00\xa3\x74\x28\x26\x8a\xd6\x11\x1c\x92\xb1\xdf\xb1\x6f\xe4\x31\x2b\x08\x70\x08\xac\x87\xcc\xcd\x2d\x85\x75\x67\xcd\xa4\x67\x3f\xad\x8a\x4f\xcb\xda\xdc\x2d\xdd\x12\x66\x9f\x7a\x9b\xb6\x74\xd1\xd0\xe5\xd4\x23\x75\xf4\xda\x29\xda\x74\x00\x68\x80\x56\xa7\x62\xc8\x10\x45\x27\x7a\x43\x1d\x51\xe8\x8f\x01\xd9\xb4\x61\x6e\x59\x39\xc1\x7a\xfb\xa0\xf6\x06\x50\x8e\x99\xd3\xfa\xbf\x15\x88\xcd\x35\x7d\x59\xf8\x52\xc9\x75\x8b\xa0\xa6\x4e\x00\xdb\x19\x64\xcd\xd5\x34\x83\x6c\x45\xb3\x16\xa1\x25\xc5\x81\x5a\x05\xa4\x0d\x37\x21\x99\xe7\x32\x3f\x54\x03\x92\x59\x94\x05\x0f\x5c\xb8\xe7\x66\xbe\xa9\xdd\xae\xe6\x29\x62\x27\x99\x52\xb3\xc1\x54\xe5\xcc\x8c\x1e\xec\x77\x53\x8e\x97\x2a\xcf\x8a\x41\x08\xc7\xef\x8c\x19\x6a\xc1\xec\x94\xb2\x16\xf7\x89\xf1\xb9\x4f\x0c\xcf\x3f\x3e\x5e\x5e\x1d\x46\xab\x6f\xec\x0c\x8f\x48\xa8\x29\x72\x2f\xe5\x2d\x7b\x64\x2d\x66\x22\x27\xe5\xd3\x9a\xe5\x81\x18\xef\xc3\xcc\x0c\x5a\x36\x27\x9e\x35\xf3\x0b\x99\x03\xab\xd9\x8b\xa7\x61\xba\x8a\xbc\x1b\xce\x83\x65\x1d\x67\x1a\xdd\x7b\xc5\x92\x7a\xa1\x10\x34\xe4\xb9\x0c\x6b\x8b\xeb\x26\xcb\x65\x4e\xbe\x8c\xe4\xd5\x4f\xb1\xf9\x25\xd6\xd1\x72\x01\x8a\xee\x77\x61\xb5\x0d\x20\xf6\xc2\xa8\x91\x49\xcc\x15\x61\x94\x39\x2a\xc0\x72\x00\x5d\xa8\xe3\xe0\x4a\x77\x5b\x5b\xe8\x60\x57\x38\x5a\x8d\x9c\x06\x0f\x6e\xdb\x81\xfa\x89\xa1\xc6\x16\x07\x24\xd2\x17\x55\xd3\xbe\x48\x7c\x8f\x27\x9f\x05\xee\x3c\x4a\x2e\xbd\xa8\x93\x69\x33\x33\x9b\xec\x5c\xa1\x16\xcb\x86\x98\x3a\x6c\x2c\x87\x6b\x97\x5b\x2c\x88\x2d\xe2\xa5\xf7\x91\xae\xe3\xdd\xbb\x17\xd6\xec\xb7\xd5\x53\x0e\xf4\x20\x78\x6c\x13\xe2\xac\xb7\x7b\xde\xa4\xd6\x09\xbb\xf7\xd2\xfb\x18\x2e\xd7\x4b\xe7\x5d\xc8\xac\xf5\x2f\xc2\x2b\x78\x42\x2d\x7a\x4b\xfe\x26\x0a\x67\xd4\x84\xed\xc5\x37\x0c\x7a\x0e\x03\x69\xe0\x5c\xde\x30\xa3\x04\x41\x70\x87\x21\x78\x53\x16\xaf\xc0\x34\x58\xc2\x80\x64\x37\xa0\x82\xa7\xdb\x8a\x3e\x54\x05\x5f\x57\x28\x7a\x94\x36\x27\x4e\xf0\x40\x30\x39\x94\xdd\xd9\x8e\xd3\xb9\x9f\x1c\x0e\x4b\xe0\x73\xaf\x34\x3b\xcf\x7e\x3b\x7e\x71\xf8\x77\xef\xbf\x5b\x31\x3a\x75\x34\x3c\xda\x9a\x0b\x15\x3c\x34\x5f\x48\x89\xae\x06\x13\xde\xa5\x94\x0c\x60\x5b\x5e\x0d\xa3\x41\x50\x21\x05\xe8\xf2\x5a\xb5\xb0\xd2\xba\x6b\xa1\xb6\x62\x19\xed\x4a\xfa\x6f\x26\x8c\x61\x1e\x7f\x53\x57\x43\x64\x5e\x95\xe3\xad\xb2\x4c\xb4\xdd\x83\x42\x41\xae\xc1\xd7\x19\x70\xd6\x81\x64\x29\xc9\xb2\x82\xb9\x5c\xff\x5d\x4d\xe5\x68\xf4\x01\xcd\x61\x3e\x10\xd9\x07\xa1\xe7\x37\x0d\x35\xa8\x24\x26\xf7\x89\xd2\xb1\x0c\x22\x83\x4b\xef\xde\x78\x53\xfc\x74\xf6\xfd\x0f\xbf\xc4\x7f\xfd\xbd\x6e\xb8\xa3\x4c\x4b\xab\x16\xea\x02\xf7\xf5\x0a\xcf\x51\xb2\x5e\xb1\x3f\x99\xdb\x33\x33\x25\x50\x12\xd6\xe4\x33\x91\x01\xb5\xce\x00\x75\xfb\x5c\xa1\x64\xa5\x7f\xf0\x01\x12\x64\x93\x79\x3e\xcc\xf4\xc1\x2c\x92\x53\xa5\xdf\x95\x7f\x15\x05\x5b\x1c\x89\x9e\xc9\xbe\x96\x8a\xb4\x5a\xb3\x29\x0b\xa0\x38\xe2\x02\xae\x1a\xda\x1a\xb4\x39\x06\x63\x2d\x43\xee\x48\xcf\x5c\x8c\x3d\xbc\x4e\xf5\xc5\xc9\xae\xe8\xb2\x28\x59\xa0\xff\x57\x3f\x8e\xf3\x28\x17\xf2\xc0\xa2\xfa\xf8\x58\x2d\x04\x5a\xd6\xef\x41\x9b\xd8\x3e\x83\x62\x1f\xe4\x02\xe3\xb4\xb4\x27\x15\xda\x46\x05\xfc\x21\x13\x2c\xc7\x34\xb1\xb1\x80\x1f\xc1\x09\x42\xaf\x86\xb1\x9e\xe9\x39\x33\x45\x5b\xa8\x84\x1c\x7b\x99\xc4\x7c\x90\x92\x01\x72\xf9\x93\xf5\xaf\xf9\xac\x2b\xbf\x36\xf2\x50\xdf\x2d\x34\x78\x3a\x06\x6b\x23\x91\xc0\xe7\x0e\x80\x95\xe9\xba\x31\xb8\x6a\x7d\x4f\x4b\x21\xd5\x5b\x59\x6c\xe4\x42\x6f\x96\x01\x5e\x76\xff\x96\x66\x7d\xfc\x81\x9d\x4f\x0a\xae\xd1\x01\x70\x3d\x14\x7a\x03\x9e\x9d\x2c\xab\x3c\x27\xb3\x5c\x87\x3c\x5d\x24\x85\xa9\xab\x64\xff\x4c\xc6\x9f\xf1\x78\x0a\x5c\x87\xaf\x66\x57\x9f\x73\x3b\x11\xaf\xd4\x5c\x58\x28\x6d\x32\x1e\x64\x3c\x2e\xe0\x5a\x4a\x64\x34\x3a\xe7\xae\xbc\x40\x2d\x79\xad\xe9\x08\xd5\x9e\xa2\xe3\x51\x81\x51\xa0\xc0\x40\x53\x48\x2c\x79\xc6\xf4\xcf\x4a\x2c\xb3\x68\x47\x93\x6a\x9f\x8b\xdc\xed\x2a\xbf\x99\xba\xdd\xe4\x25\xa8\x27\x79\xb6\x07\x82\xd1\xd9\x1c\x68\x47\x6a\x0c\xc6\x87\x53\x2b\xce\xf2\x93\x9d\x81\x41\x73\xfc\x33\x56\x41\x73\xb4\x69\x11\xdd\xb4\x8c\x04\xa7\x63\x7a\xea\x7e\xb6\xc8\x55\x92\x8a\x94\xd8\xaa\xce\x02\x70\x9f\x2c\xd7\x11\x0e\x57\x94\x29\x79\x82\xe0\xef\xeb\x10\xb1\x04\x5e\x2e\x0a\xe7\x0b\xec\xda\xa2\xdb\xd8\xfd\x0b\x32\x65\x02\x08\x0b\x21\x32\xbc\x19\x69\xe9\x59\x6e\xfa\x36\x76\xc9\x0a\x85\xa2\xcc\x45\xd7\x36\x6d\x5c\x99\x83\x8b\xd1\xb0\x7a\x53\x25\x10\x8a\x0c\x75\x85\x27\xb7\xb6\x8a\xa7\x26\x54\x64\x12\xbe\xa6\x1a\x7c\x71\xc2\x46\x87\xe0\x42\xb1\x8d\x53\x5e\xf4\x80\x3f\x14\xe6\xaa\xda\x09\x0c\x46\x86\x54\x39\xca\xff\x28\xc2\x25\xd9\xf3\xd6\xb9\x0d\x33\xa7\xe7\x78\x9a\xcb\x6c\xa7\x30\x89\xcf\x68\x27\x5f\x0a\x61\x5c\x8a\xf9\xd9\x1b\xb2\x39\x46\xda\x91\xad\xea\xa2\xd7\xaa\x4e\xf0\x49\xda\xa0\x65\x47\xc7\x36\xb7\xc6\x8e\x3d\x06\xff\x88\x80\x35\x63\x27\x6e\x80\xd8\x16\x61\xfb\xb0\x56\x75\x86\x3a\xc5\x19\x0e\xba\xb9\xc0\xb8\x1c\xf1\x65\x2f\xb0\xa3\x62\xca\xff\x21\x8c\x83\xda\xc4\x9e\xe6\x69\x85\xb3\x0a\xfa\x4e\xbb\x2c\xa0\xea\xad\x6e\xaf\x3b\x22\xe7\x35\x89\xb9\x9d\x94\xd7\x13\x0a\x08\x28\xb2\xa2\x90\x75\x1a\x36\x7e\xad\xe6\x19\xf8\x0c\xa4\x7d\xd7\x46\xda\x77\x1b\x93\x76\x4b\xea\x58\xda\xd3\xbe\xc2\xc9\x0f\xeb\x4b\x88\x62\x88\x15\x07\x62\xa5\xb6\x7a\x3b\x83\xe4\x66\x5e\x98\x18\xd9\x82\xda\xfe\x64\xcc\xa7\xc1\x65\x9b\x5d\xd8\x6f\xd7\xb8\x7c\x45\xa4\x81\xb9\x14\xfe\x64\xeb\x35\xfc\xed\x97\x77\x95\x14\x1b\x58\xc8\x18\x45\x4a\x11\xf4\x76\x7e\xfe\xfa\xfd\xb3\x57\xa7\xdf\xbf\x78\xf6\xb4\xad\x8f\x54\x11\x68\x92\x30\xf0\xcb\x61\x43\x5b\x98\xc0\x11\x8f\xb6\x86\xce\xeb\xe7\x4f\xcf\xda\x05\xb2\xe5\xae\x0c\x5a\x81\x29\x77\x9d\xd5\x34\xc4\xe5\x7a\xcb\x8b\x59\x35\x49\x7a\xa4\xd9\x78\x3b\x24\xeb\xa2\xf8\xda\x1f\x84\xdd\x43\x43\x01\xe3\xaf\x9f\xb8\x1f\x5b\x68\xfb\xf1\x5d\x71\xed\x5a\x84\x0c\x85\xa0\x6b\x77\x42\xd8\x36\x21\x39\xa5\x30\x23\xae\x1a\xda\x11\x91\xbc\x63\x32\x3f\xa1\xbe\x2d\xe6\xe2\x47\xe3\x3c\x17\xcf\x9e\xf1\x83\x40\x0e\x59\xba\x15\xd3\x5e\x83\x61\x6f\x88\x86\xa6\x82\x71\x94\xb7\xb9\x35\x15\x1e\x2d\x04\x69\x6c\xa7\x7a\x3b\x04\xd4\x5d\x51\xbd\xe3\x1a\xac\xf9\x51\x47\xaa\x25\xa6\xd8\x6f\x9a\x5a\xaf\x13\x86\x7c\xb7\x44\x15\x43\xa7\x75\x37\xda\x97\x3d\x5a\x6b\x35\x43\xbd\x99\x45\xf1\x2b\xa2\xe1\x76\x43\x46\x3e\x89\xa2\x46\x6c\x58\xc8\x51\xbe\x78\xa5\xa1\x98\x49\x10\x1e\x7a\xd1\x6a\xe1\x0d\x49\x1b\xf3\x00\x81\xa2\xee\x02\x58\xa3\x3f\xda\xa8\xac\x43\xe1\x52\x53\xd5\x5d\xb0\x46\x34\x25\x42\xe5\x0c\x65\x87\xe5\xcb\x95\xfd\x59\x66\xd8\x95\xfe\x64\x94\x4b\xdb\x7f\xa8\xa1\x63\xde\xfa\x51\x44\x7f\x0e\xed\x9a\x82\xfb\x7e\xbf\xee\x59\xee\xd7\xbd\x6d\x44\x27\x45\x45\xf6\xa5\x4a\x4a\x16\x77\x29\x30\x7d\x18\x5c\x4a\x3b\x9d\x2a\xcb\x0f\x59\xaa\x03\x2b\x3c\x66\x23\xfb\xcb\x02\x14\xa8\x9a\x5f\x81\x5e\xd5\x7e\x7c\x1b\x0b\x6d\x0d\xd6\x68\x1e\xd6\xec\x22\xc5\xdb\xbb\x5a\xa5\x71\x64\xb7\x09\xe7\xb0\x9f\x8a\x66\x08\xb6\xf4\x3e\x32\x67\xca\xbb\x46\xb1\x02\x4a\x39\xb2\xbe\xeb\x1e\xf4\x56\x02\xdc\x39\x8e\xd9\xa9\xf7\xc8\xf6\xea\x0e\x97\xd8\x39\x82\xe5\x5f\xef\x83\x83\xce\x58\xc7\xbd\x1a\xac\xe3\x9d\xa4\x92\x2d\xcd\x2f\x5b\xd3\x57\x55\x86\xe1\xb0\x5c\x3f\x32\xeb\xa1\x70\xe9\x9a\xa1\x64\x39\x80\x31\x46\x34\x5c\xbe\x76\xd2\x59\x5e\x45\x2c\xd5\x33\x2a\xda\x9c\xc5\x00\xcd\xb5\x03\xdc\x28\xb9\x86\x88\xd6\x32\x6c\x95\xb0\xb6\xca\x51\xeb\x3e\x39\x91\x11\x66\xfb\xbe\xb8\x8f\x85\x1f\xfe\xb5\x33\xfa\x29\x7a\xd5\x38\x02\x5a\x72\xc7\xfb\x42\xcc\xb5\x39\x4c\x91\xa5\x3a\x2a\x0c\x44\x44\x03\xe7\x22\x40\x4c\x6e\x2d\x97\x2e\xc0\xe2\xef\xa1\x77\x67\x17\x38\x5d\x8b\x7f\x64\x69\x22\x50\x86\xa4\xcd\xaa\x1e\x97\xed\xee\x7d\xc2\xb9\xab\x10\x5e\xdf\x17\x9c\xbb\xba\x7c\xb6\xf6\x82\xb7\x9e\x1d\xe7\x08\xa9\xa1\xd4\x81\xff\x9b\xfa\x09\xad\x9e\x7d\x99\x50\x3d\x2b\xab\x8b\x2d\x2e\x2f\xfe\x50\xfc\x94\x77\x9a\x1d\x6f\x55\x2a\xa6\x1a\x0e\xde\x34\x81\x65\xa3\xd8\xf4\x1d\x85\x92\xa6\x39\x61\xeb\x00\xb2\x02\x17\x9e\x02\xf7\x1d\xa5\x70\xb0\x79\x6a\x97\x07\xf8\x5b\xfd\x7b\x9a\x46\x34\xed\x68\x7e\x5b\x59\x8f\xe2\x2a\x01\x7a\x3f\xa7\x92\xd2\xe3\x3e\x40\x26\x96\x08\x18\xa1\x50\xc0\xb5\x86\xb9\x36\x16\x26\x4b\xa2\x99\xb8\x3e\xe3\x78\x3b\x97\xf2\xc2\x0d\x33\x0c\x0d\x96\xcd\x73\x6d\xa3\xd7\xdd\xc6\x51\x4e\x3b\x63\x59\x4e\x8b\x14\x28\xc7\xf6\x98\x29\x72\x1c\xce\x68\x11\x55\x17\xb8\x3f\x26\x29\x6e\x2c\x71\xb6\xc2\x6f\x36\xe4\x90\x0d\xd8\x08\x3e\x56\x09\xbd\x66\x45\xc4\x82\xf5\xb6\x9a\x6d\x26\x1c\xb0\x54\x2f\xc5\x43\x06\xec\xb0\x6e\x11\x33\x50\x63\x2b\xcf\x4e\xcf\x20\xfa\xbc\x9b\x29\x86\xec\x60\x3b\x21\xc2\xe1\x2c\xf4\x55\x3e\x5d\x4e\xbb\x4a\x77\x53\x2e\xb9\xe5\x84\xad\x3b\xda\xc5\x5e\x9c\xb3\x3c\x21\xa7\xbe\x9f\xac\x63\xcc\xcc\xad\x9f\x6f\x5b\x2c\xa3\x7f\xb1\x03\x67\x83\xc4\xf6\xeb\x68\x72\x14\xad\x7a\x64\xcb\xf1\xb4\xef\x59\x3d\x9f\xd9\x06\x11\x8e\x9d\x44\x7c\xa7\x50\xd6\xb9\x61\x8c\x12\xe1\x8b\xcb\x79\x91\x22\x6f\x63\x0b\xa2\x8d\x01\xe7\x97\x4a\x03\xa4\xfe\x60\x44\x4a\x18\x91\xa3\xb6\x5a\xf2\x8e\x58\x91\xa3\x1a\xac\x48\x43\x66\xe4\x68\x2b\x66\xe4\xa8\xc0\xbd\xa4\x9a\x63\xa7\x7e\x32\x6d\x9d\xe5\xec\xe4\xf9\x6f\xbf\xfc\x74\x4e\x13\x35\x77\xbf\x3d\x25\xe4\x4c\x8e\xda\x70\x4b\x0a\x7c\x77\x5b\x12\x64\xb5\xf6\xb6\xf3\x2e\x20\xbe\x0d\x38\x21\x1d\xfe\x2d\x12\x79\xb7\x05\x7e\x35\xbb\xd2\x08\xfe\xad\x58\x16\x7d\x1e\x8d\x76\xa0\x0e\xeb\xd2\x0d\xf3\xf2\xb7\x5f\xde\xfd\xdd\x8b\xc2\x80\xea\x0d\xdf\xac\x2f\x7f\x82\x37\xe9\x67\x3f\x2a\xb6\x29\x7c\xd9\x7d\xb3\x02\xa5\x93\x05\xdd\xe1\x5e\xbe\x7e\xfe\xf4\xec\x69\x98\xfa\xc9\x15\x44\x37\x9f\x9f\xe4\xe5\x87\xff\xa2\xb4\xcf\x02\x8d\xad\x57\xb2\x3d\x35\xb4\xee\x51\x0d\xb2\xd8\xf6\x70\x9f\xaf\x57\xab\x04\x61\x18\x9c\x46\xf3\x2f\x70\xb0\x33\xc3\xb7\xe6\x4f\x8e\xc8\x48\x40\x68\xb1\xeb\x2d\xb2\x1e\xef\x52\x0e\xc1\xef\x93\x75\x1c\x9c\xae\x83\x10\xc6\x3e\x6c\x03\xbf\xed\x20\x98\x1d\xbe\x0c\x7e\xb5\x8e\x94\x6a\xb4\xce\xca\x08\x75\xb9\xf1\x9a\x20\xea\xc0\x73\x44\xe5\x31\x2e\x8a\xb3\x2a\x3d\x78\x87\x85\x80\xaa\x75\xbe\xac\x0e\x27\xa5\xe1\x58\x4d\xd0\xad\xbe\xc4\x43\xe1\xfb\x3c\x4d\xd7\x34\x1e\xfd\xd9\xc7\x55\xc8\x0c\xb4\x2f\x20\xbc\xa6\x26\xbc\x57\x09\xfe\x1e\xce\x12\x04\xe5\x93\xb3\x28\xf1\x3f\x9c\x7f\x80\xd7\xfc\xc9\xdd\x08\x3f\x0a\x09\xb8\x5f\xcb\xc1\x76\x8e\x9b\x5b\x49\x42\xfc\xc0\xb8\xb6\x89\x34\x0d\xa3\x6d\xb2\xd0\x16\xd2\x51\xc3\xd0\xa2\x6a\xa1\x89\x79\xd0\xb7\xdc\xd5\x3f\x98\x88\x3f\x98\x88\xfa\x08\xd1\x52\xef\xdc\x21\x4e\xdc\x07\xb9\xce\x0e\x92\x2e\x96\x73\xc7\xd2\xc1\x59\x14\xc2\x18\x3f\x7f\xfa\xd9\x19\x19\x73\xf0\x56\x54\xb9\x72\x3d\x1d\x42\xe8\x1c\xfa\x08\xb6\x41\xf3\xae\xa0\x24\x26\xd0\x31\xa4\xb4\x75\x6d\x0d\xad\xd3\x28\x4a\xae\x61\xf0\x16\x06\x21\x82\x3e\xfe\xf9\xed\xf3\xcf\xcf\x1f\x5b\xe7\x70\x1f\x99\xe4\x32\x60\x7d\x46\x4e\xb9\xc9\x45\xb8\x3f\x05\xae\x98\xaf\xf3\xf3\xdb\xe7\x6e\xf1\xc5\x55\x79\x7d\xed\x6f\xc7\x8a\x5b\xc2\xea\x2c\xdf\x35\xe8\xf0\x0f\xc9\xef\xdf\x5a\xf2\xdb\xdb\x0e\xdd\xf6\xbe\x00\xba\x11\x1a\x7d\xee\x27\xab\x2f\x80\x6a\xfa\xd0\xf7\x11\xcd\x2c\xa0\xf9\xf2\x28\x56\x94\x67\xa9\x26\x46\xec\x7e\x01\x14\xfb\x43\x1b\xb8\x2d\x04\xff\x0e\xd1\x65\x92\x42\x82\x90\x2f\x92\xf9\x3c\x8c\xe7\xdb\xc3\x90\xb9\x3e\x2e\xa0\xff\xa1\x39\x48\x6d\xf3\x69\x0a\xd4\x1d\xe0\x86\xf1\x6a\x2d\x26\xe3\x8a\xda\xa9\xae\xf6\xe7\x94\xba\x18\xb3\x59\x92\x37\xb5\x21\x43\x7a\xdc\xe3\x1f\x5e\x26\x1f\xd5\xa8\xbb\x35\x77\x43\x73\x91\xb9\xa3\xb2\x23\xfa\xd3\x1d\xe0\x2e\x90\x39\x49\x6b\xa3\x9c\x47\x86\x1f\x79\xe1\x72\xb0\xf4\x56\xab\x30\x9e\xa7\x56\xaa\x22\x07\x30\x2a\x75\x9f\x91\x0f\x9d\x97\xfa\x87\xbb\x85\x86\xf3\x9c\x47\x14\xf9\x58\x7d\xdb\xc6\xb9\x55\xcd\xcb\xa8\xc5\xfd\x73\x0a\x59\x72\xf1\x70\x46\xb3\x91\xd3\xf5\x39\x37\xc9\x9a\x16\x49\xf5\xbd\x15\x5e\xa3\x30\x9e\x3b\x61\xea\xa4\x61\x3c\x5f\x47\x1e\x1a\x3a\xbf\x2c\x60\xec\x10\x18\xc0\x00\xd0\xaf\x28\x5b\x99\x3a\xbe\x17\x3b\x97\x90\x66\x30\x4f\x66\x8e\xe7\xc4\xeb\xe5\x25\x44\xc0\x49\x31\xe9\x03\x38\x09\x72\x2e\x93\x24\x82\x5e\xec\x78\x71\xe0\x5c\x87\x51\xe4\x78\x51\x44\xbe\x61\x4d\xc2\x59\x08\x03\xe7\x9a\x74\x8f\x20\x5e\xa3\x18\x06\x43\x2b\xa5\x14\x6b\x29\xca\xf9\x6c\xb4\x29\xcc\xfb\x6c\xb4\x2a\xca\x3b\x6c\x34\x32\xfa\xf9\x09\xde\x14\x92\xf1\xa2\x6f\xfe\xce\xe2\x77\xea\x11\xff\x3a\x8f\x2b\xd3\x36\xd7\xd1\x3f\xef\x35\xc0\xba\x4e\x42\xf7\xdb\x40\x3c\xaf\xb0\x1d\x4f\xc1\x4e\x05\x23\x53\xbf\xa7\x51\x1d\x96\xa8\x8c\x90\x8d\x6d\x11\x4e\xed\xfc\xca\x8a\x1c\xc5\xa4\x6c\x07\x97\x2b\x7c\x33\xa0\x6d\x5a\x17\x25\x70\xbb\xae\xf6\x92\x87\xb9\x49\x02\x5f\x25\x9c\xbc\x2c\xed\x54\x50\x7d\xdd\x55\x50\x2f\x3b\x18\x6d\x67\xff\xef\x40\x28\xbb\x84\x26\x0b\x56\x6b\x54\xa1\xc5\x04\xa8\x5e\x54\x3c\x48\xfc\xd4\x56\xa9\x3f\x7b\x15\xde\x81\x0f\x99\x8d\x15\xcf\xd4\xdb\x19\x65\x42\xa2\x78\x72\xa4\xa7\xaf\xcf\xce\xdf\x6b\x1a\x7e\xe0\x3e\x4e\xa1\xbf\x46\x21\xbe\xa1\xf5\x40\xf5\x9a\x3c\x8f\x7f\xbb\xc6\xff\x41\xb1\x64\xa9\x93\x50\x56\x3b\x1d\x46\xb4\x5a\x45\xb2\x82\x31\x44\x4e\x9c\x20\x38\x83\x08\x41\x59\x5c\x1d\x7b\x88\x05\x08\xbe\xbf\x8c\x3c\x13\x46\x6f\xa1\x17\x50\x5c\x0a\x12\x7f\x4d\xd6\xe4\x49\x0e\xa5\x2d\x51\xb9\x5b\x38\x24\x61\xe0\xdf\x2b\x40\x74\x9b\x5d\xa0\x5d\x4e\xa9\x22\xb7\xe1\x4e\x98\x54\x56\x37\xac\x2d\xa7\xfa\x22\x4c\xb1\xb3\x15\xbb\x4a\x7a\xb8\x17\x2c\x2b\x05\x44\x14\x7e\x80\x4e\x2f\x5d\xfb\x0b\xc7\x4b\x1d\x9a\x9f\x21\xed\xdf\x07\xda\xfc\x07\x13\xfb\x19\x98\xd8\x62\x5c\xbc\x47\x8c\xec\xa8\x33\x46\x76\xd4\x01\x23\x6b\xcd\xf2\xf4\x07\x23\x6b\x30\xb2\x84\xb2\xfc\xef\xe0\x66\xef\x37\x0d\xfd\x83\xbf\xfd\xa2\xfc\x2d\x41\x8e\xfb\xc4\xda\x7d\x51\x1e\xf7\xbe\x01\xe3\x3e\xf3\xb9\xe5\xcd\x79\xe3\xd2\x14\x12\x2c\x91\x89\xaa\xf6\xc7\xc0\xa7\x52\xa7\xd8\xd3\x9f\x90\x36\xbf\x25\x61\xac\x27\x4a\x61\x4d\xb6\xcb\x43\xa1\x32\x3e\x7c\xe9\x3c\x14\x97\x6b\xff\x03\xc4\xf7\xaa\x0e\xf2\x2f\x6f\xfe\xf6\xf7\xf3\xd8\x3b\x2c\x4b\x7b\x42\x53\x23\xb1\x32\xfc\xc0\x7d\xc2\xca\x92\xd1\x42\x1b\x1e\xc2\x21\x47\xf8\xda\x5e\x93\x7b\x99\x2c\x79\xeb\x14\x3a\xb2\xa3\xd4\xea\x25\xdb\x3c\xfc\x2c\xc3\x78\x81\x0b\xf7\x8d\x9a\xeb\x54\x9a\xa7\x1b\x33\x97\x82\x46\xe9\x05\x4c\xf9\x86\xb3\xbd\xb5\x97\x41\x94\x9f\x8e\x84\xc5\x89\x25\x9b\xd4\x01\x78\xb1\x07\x2e\x76\x8f\x04\xaf\x29\x63\x35\xf3\x9c\xeb\x69\xb0\x0c\x63\x47\xae\xa7\x88\xe5\x33\x89\x6a\x69\xac\xb1\xaa\xb6\xa7\x43\xa9\x9c\xa3\x2c\x5e\x54\x2c\x2a\x1f\xd6\x5e\x91\xac\xef\xd7\xe9\x5a\x32\x55\x03\x4b\xd6\x52\x79\xf5\x8f\xa7\x5a\x35\x43\x76\x10\xa6\x9d\xe4\xbd\xa0\x00\x13\x67\xcb\xbe\x28\x3e\x60\xa7\xa0\xd1\x17\xd1\x54\x6c\xc8\xe5\xf7\x6a\xe3\x7d\xdd\xc8\xcf\x7a\xd7\x42\x31\xe2\x4c\x79\xcd\x4e\x9c\xe9\x33\x48\x23\x5d\x0c\xbe\x34\x99\xf8\xfa\x4e\xd4\x1f\xc7\xa9\xe9\x71\xda\xe6\x2c\x95\x3c\x2c\xc9\x76\x27\xea\x66\xbb\x1e\xcd\x1c\x45\x19\x35\x59\xa4\xd9\xf7\xe2\x16\x5c\x57\x8e\xbf\xf9\xd2\x0c\x57\xe0\x61\xcf\x87\x31\x86\xe8\x71\xca\xcb\xd0\xde\x17\xc6\xeb\xf1\x62\xbc\xf7\xf4\xc5\xd1\xd8\xce\x78\x05\x61\xea\x47\x49\xba\x46\x84\xd1\x5a\x79\x31\x95\x51\x96\x30\x5e\x93\x9d\xe2\x3c\x59\xe0\x9b\xec\x58\xe0\x17\x54\x70\x36\x64\x5f\x3f\xaf\x6f\xe6\xf2\xb7\x1a\x73\xc0\x46\xa2\x39\xb1\x8d\xaa\x7e\xee\x53\x09\x50\x26\x8a\x37\xd3\x08\xb9\x2a\x33\x3c\xb8\x70\x4f\x7d\xc9\x8f\x71\xc2\x46\x3d\x6d\xfc\x28\xf4\x3f\xa8\xd4\x76\x38\x99\xcf\xa3\x4c\x6d\xc6\xa6\x7a\x28\x75\x5c\xf7\x8d\x82\xfe\xfa\xcc\x6a\xdd\x74\x6a\xf2\x2f\x09\x84\xa6\xd3\x76\x7a\x31\x01\x70\x0f\x7b\x03\x51\xd2\x81\x6b\x3c\x52\xe4\x1b\x99\xc6\x35\xf2\x49\x1d\xae\x1e\xff\x85\xfe\x9f\x42\x6c\xc9\x32\x9b\x95\x21\x65\xca\x71\x33\x89\xfe\xa1\x0e\x46\x91\xb1\x14\x5c\xd0\xa9\xb8\xaa\x2c\x64\x81\x8a\x86\x12\xef\xf6\x8b\x57\xb7\xc2\x68\x57\xbf\x16\xc6\x85\x3f\x68\xba\x55\x96\x48\x24\x33\xfb\x6d\x1d\x10\x5d\x23\x0f\xfc\x73\x9a\x2b\x65\xaa\xd7\xb1\xf4\xd7\x08\xc1\x18\xbb\x85\xb9\x18\x33\xe8\x24\x93\x4a\x4b\xf4\xe2\xaa\x09\x8c\xd6\x46\x9a\x39\x56\x0d\x41\x67\x3d\x54\x66\x6e\x37\x4c\x07\xbc\x28\x83\xe8\x8e\x26\x56\xb1\xd4\xff\x14\xcd\x57\x28\x5c\x7a\xe8\x46\x7d\xf0\x86\x3f\xc8\xe9\xd2\xdb\x69\x70\x6d\xe0\xaa\x77\x72\x09\x31\xc9\x16\x55\x7d\xb2\x40\x70\xa6\x23\xf5\x01\xf9\x90\xea\x0f\x2f\xd8\xf9\x4b\x5d\xd3\x86\x20\xb7\xd6\x77\x75\x81\x49\xe7\x8a\x32\x90\x07\x17\xe3\xe3\xa9\x75\xdb\x84\x19\xe2\x80\x16\x5b\x89\xe7\x98\xd6\x92\xdc\x51\xa0\x65\x69\x81\xc7\x2a\x0b\xdc\x74\x5a\xa7\xd8\x70\x89\xe3\x6a\x1e\x2d\xf2\x87\x41\x5b\x42\x76\xf3\x9a\x7a\xd5\x16\xb8\xcb\x8e\x81\xea\xb9\x89\x07\xa6\x3e\x35\x13\x11\xbb\x9b\x18\xef\xb7\x85\xca\xac\x26\xe1\xae\xd9\xb4\x96\x0b\x7a\xa9\x13\x71\xe1\x5d\x32\xce\xb4\x29\xb5\xeb\xb4\x29\x40\xaf\x54\x6d\x42\xa7\xe6\x47\x5e\x9a\x0e\x96\x1e\x61\xf0\xe6\x58\xa4\x12\x06\x2e\x39\x7f\x03\x9c\xb8\xc0\xa5\x87\x88\x25\x11\x5d\xae\x8d\x84\xc7\x69\x82\xf0\xe0\xf2\xa6\xb3\xa2\xf6\x85\x5c\xd8\x17\x67\x0f\x45\x00\xe0\xc0\x5f\x78\x61\x9c\x67\x0d\x41\xa3\xcf\xd7\x38\x8c\x32\xec\x24\xc0\xdd\x31\x94\x71\x39\x43\x89\xe7\x3f\x1e\xfe\xe3\x1f\xff\xfd\x9b\x9d\xa1\xe4\x4c\x63\x00\x53\xac\x58\x48\xeb\x43\xfe\x2b\x5d\x45\x21\xe6\xe5\xd7\x29\x4f\x22\xbe\x61\x30\xa2\xcd\xde\x42\x1f\xe7\xbe\x67\xad\x0b\x5f\xeb\xff\xd8\xf3\x29\xe3\x9b\x9c\xc9\xdd\xcd\x58\x9b\xf7\xc1\xe8\x18\x5c\xb8\x71\x12\x34\x0e\xd5\x10\x54\x39\xd7\x05\x6d\x70\x2b\x69\x46\xb2\xf2\xfc\x10\xdf\x9c\x38\x23\xe7\x61\xb8\x24\xe8\xe0\xc5\xf8\xbf\x94\x87\x87\xe3\x5c\x7a\xfe\x87\x39\x4a\xd6\x71\x30\xf0\x93\x28\x41\x27\xce\x95\x87\x7a\x83\x01\x4e\x62\x38\x98\x23\xef\x66\xb0\xb3\xb3\xd3\xff\x2f\xd5\x3e\x41\x01\x94\xad\x02\xe8\x27\x68\xc0\x9e\x0d\x46\x96\x86\x03\xe4\x05\xe1\x3a\x35\xdb\xb3\x67\x83\xb1\xad\x3d\x9f\x04\x9a\x5f\xf6\xb2\x13\xd9\xdf\xd9\xe9\x1b\x1f\x7c\x1c\xa4\x0b\x2f\x48\xae\xcd\xde\x61\x04\xaf\xa8\x05\x63\x70\xa0\x0d\xb0\xa9\x9b\x48\x81\x83\x14\x06\xf3\x6d\x77\x45\x75\x51\xb8\x2b\xb5\x66\x97\x57\xf2\xe5\x12\x1e\xa3\x64\xcd\x52\x13\x5b\xf2\x70\xef\x00\x69\x9d\xce\xa9\x01\x5c\xab\xf9\x39\x27\x72\xec\x83\xf1\x8e\x52\x11\x18\x4c\x80\xf3\x96\x0c\x8d\x72\xaa\x1f\x71\x41\x32\xce\x8a\xf6\x4c\x8d\xc2\x74\xa6\x28\x75\x70\xe2\x84\x84\x98\xfa\x70\x85\x1d\x8c\xbc\xd9\x2c\xf4\x9d\x75\x1a\xc6\x73\xe7\x85\x77\x03\x91\x73\xe8\xf8\x28\xc4\x10\x85\x9e\x23\xcc\xc2\x2b\x0f\x2f\x9c\x15\x82\xb3\xf0\x23\x4c\x9d\x04\x39\x0b\x8c\x57\x0e\x5b\x5c\x3a\x54\x22\x84\x7d\x1d\xa5\xbe\xfb\x45\x0f\x0c\x40\xbb\x28\xa1\xa5\x92\x78\x09\x96\x82\xc3\x9d\x2f\x13\xa5\xff\xbd\x0f\xc6\xa3\xad\x38\x7f\xd7\x48\x9c\x98\xa5\xde\x14\xbc\x03\xdf\x43\x81\x2b\xd9\xda\x91\x51\x8b\x51\x9f\xd2\x48\xd6\xa0\xda\x99\x02\x17\xd1\x2a\x52\x1a\x9f\x3b\x43\x89\x4c\xbe\xb8\xa3\x23\x74\x86\x1d\x16\xb2\x7c\x12\x33\xe6\x59\xeb\x54\x8e\xb4\xaf\xc4\x39\x57\xb4\xb2\x06\xaa\x5b\x18\x8f\x1d\x8b\xe9\xae\x8c\xcb\xb0\x1c\x10\x71\x11\x74\x7f\x46\xce\x45\xcf\xb5\x8e\x80\x6c\xcd\xfc\x20\xa8\x13\xd1\x1a\xc1\x80\x9c\x07\x3a\x47\x27\x8c\xfd\x64\x49\x8e\x01\x82\xbf\xaf\x61\x8a\x53\xc7\xf3\x51\x92\xa6\x4e\x10\xce\x66\x90\x48\x73\x0e\x57\x0e\xd2\x23\x90\xae\x2f\x53\x88\x53\xe6\x06\x41\x8e\x4f\x04\xc5\xfb\xaf\xe4\x44\x70\x49\x70\x57\x97\x92\xf7\xc1\x38\x5f\x79\xae\xf3\xc3\x22\x90\xa2\xf9\x79\x19\x1d\xdf\xc1\x79\x19\x1d\x77\x73\x5e\xcc\x52\xd8\xed\xce\x0b\x82\x69\x12\x5d\xdd\xc5\x79\x79\x2b\x7a\xae\x75\x5e\x64\x6b\x7a\x5e\xd6\x29\x3b\x29\x8c\x0b\x75\xae\x17\xa1\xbf\x70\xc2\x38\xc5\x5e\x4c\x8f\x03\x3d\x03\x0c\xf9\x9d\x74\x91\xac\xa3\xc0\x49\x3d\x1c\xa6\xb3\x1b\x47\xee\xbd\x3c\x57\x5f\xf7\xf1\xd8\xbb\xfb\xe3\x21\x70\xa0\xc5\xf1\x38\xea\xe2\x78\xb0\xf7\x96\x73\x72\xc4\xb4\x1c\x7a\x1f\xdd\x1c\x9c\xa3\xe6\x07\x07\x5c\xec\xee\x81\xf1\xfe\x34\xf7\x82\x20\xf4\xd5\x5c\xd9\xbf\xf8\x4c\xe9\x4f\xf7\x3a\x0c\x30\x11\x64\x47\x3b\x3b\xff\x29\x9e\x2d\x20\xab\xb9\x68\x3c\x5c\x21\x48\x10\x1a\x9e\xa6\x2b\xe8\xe3\xb7\x84\xaf\xa5\x16\x8e\x58\xb3\xa4\x8d\x0f\x6c\x7b\x40\xd6\x2f\xc6\xd4\x31\xe4\xb3\x72\x2d\x99\xf2\xdf\x7b\xe0\x82\xa3\x45\x93\xcf\xf7\x2c\x9f\x03\xf9\xe0\x15\xfc\x88\x9f\x33\x8c\x69\xdb\x35\x87\x5c\x46\x8f\x29\x3a\x21\x72\xe2\x8d\xc4\xbd\x03\x40\x9e\x4c\xb3\xaa\x39\xfe\xe6\x46\x7f\xb3\xa3\xbf\xe1\xbb\x3b\x9d\x8a\xae\x35\xed\x5c\xbe\x4a\x2c\x59\x98\x96\x5b\xa7\xe9\xe9\xce\x50\x62\xc2\x37\xbb\xcc\x1f\x6d\x54\x32\x16\x70\xbf\x75\x4d\xb8\xbe\x4a\x02\x53\xf7\x39\xda\x07\x6e\xe0\x66\x95\xf4\x15\x20\x3b\xcc\x81\x6c\x4f\x7f\x75\xa3\xab\x2f\x85\x9e\x92\xc8\xdf\x75\xfa\xde\x97\xb5\x4a\x6d\x5b\xb2\x5f\xb8\x25\xfb\x15\x5b\xa2\x15\x35\xb2\xe8\xb0\x4c\xaa\x71\x68\xaf\xdb\xb5\x4f\xce\x62\xfd\x32\x5f\x7b\x35\x0a\xa9\x5b\x0f\xa6\x9d\x51\x6a\x74\x30\x8f\xb6\x3a\x97\xed\xbe\x2e\x5f\x17\xaf\x4b\x4e\x18\xb4\x96\xb9\x1a\x32\xb4\x63\xe7\xf3\x93\x8a\x71\x21\xa9\x18\x17\xe2\xe5\xb8\x29\xa9\x38\x52\xa7\x77\xe0\x8a\x7a\xd5\x5b\x51\x0d\xc5\x90\x49\xba\x71\x90\xa1\x1b\x52\x9c\x3a\x71\x65\x0d\x79\x61\xb7\x90\x44\x64\xa7\x88\x88\x8c\x95\x44\xc6\x7b\x6f\x4e\x53\x76\x15\x6c\xf9\xaf\x1b\x77\xda\x94\x7a\x1c\x97\x11\x8f\xe3\xa2\x3d\x3a\xae\x45\x3a\x34\x26\xd6\xdc\x32\xcd\x28\x68\xcd\x0f\xf9\x8b\xec\x7a\x47\xe7\x8a\x02\xe8\x87\x4b\x2f\x62\x1c\x04\x25\x1f\xff\x69\x30\x57\xb2\xbc\xac\x75\xd9\xb3\x24\x8a\x92\xeb\xb3\x35\x4a\x13\xca\xb2\xb3\x22\xcd\x4d\x88\x9c\xbd\xe0\x61\x65\x29\x6f\x7b\x71\xa1\x96\xa9\xff\xed\x72\x0b\xe7\xb2\x4c\xb9\x65\x10\xc6\x11\xc4\xa9\xe0\xc3\x73\xbc\xd5\x17\xe2\x81\xcc\xe4\x34\x07\xe6\x09\x51\xb3\x3f\x69\x91\x83\x73\xcf\x82\x50\x07\x56\xa2\x07\x2c\x08\x72\xe3\x4a\x20\x4d\xc1\xc5\x0e\xd8\x99\xb6\x74\x66\x52\x5c\x87\x1f\x22\x9f\xeb\xc0\x89\x24\xe4\x02\x77\x3c\xdc\x17\x3f\x7d\x72\x10\xf7\x39\x53\xe2\xfa\x37\x59\x0b\xf5\x18\x1c\x16\x9d\xbf\xc3\xd2\xf3\x97\xc7\xe7\xa2\x7c\xbc\x0d\x32\xac\x7e\x8e\xbb\xb8\xea\x3e\xdc\xed\xf0\x3e\x34\xb1\xc4\xce\x45\xdf\x31\x96\x74\x86\x27\x85\x3c\x5e\x39\x8b\x57\x07\x4f\xf6\xad\x28\xb1\x67\x7d\xba\x5b\xaa\xac\x37\x68\x94\x54\x3b\x7d\x0d\x34\x6a\x94\xa5\x51\xea\xea\xef\x06\xfb\x46\x5f\x31\x8d\x2a\xe4\xe3\xca\xd9\xb8\x3a\xb8\x67\xbf\x58\xed\xb7\x6d\x1e\xf5\x2a\x2c\xed\x41\x78\xe5\x02\xd7\x0b\x02\x65\x52\x4f\x90\xac\x06\xcc\x22\xe4\x06\x29\xf6\x10\x4e\x07\xd7\x21\xd5\x54\x50\xbb\xbc\x3d\xe4\x45\xc6\xb9\xa4\x57\xf3\x81\xbf\x46\x57\xd0\xa5\x16\x29\xea\x91\xa9\x3c\x34\xf1\x35\x84\x31\xb3\xda\xa7\xeb\x4b\xc3\x54\x4f\x87\x0d\x92\xe5\x60\x95\xa4\xc2\x33\x26\x89\x07\x08\xa6\xe1\xbf\x20\x6d\xc0\x6b\x5a\x03\x97\xaa\xa6\x5c\x69\xf1\xd2\x35\xfb\xba\xcd\x5f\xe9\x2f\x01\xb7\x8e\x02\x37\x08\x83\x41\x18\xa7\x34\x49\x6e\x73\xf3\xbf\xcd\xca\x6e\x98\xfe\x51\xa9\xe9\x3f\xe6\xa6\x7f\xf9\x66\x08\x3f\x62\x18\x07\xbd\xdb\x20\x59\x9e\xb0\x77\x61\x4c\x6d\xec\x5c\x83\xd9\x23\x10\x71\xfb\x00\x87\xfe\x07\x88\x0a\x9a\xb0\x97\x6e\x1f\x04\x1e\xf6\xce\x31\x5a\xfb\x38\x2d\xea\x8d\x3a\xea\xb1\x26\x6e\x1f\x50\xdf\x0a\xea\x0c\xcd\x3d\x35\xb5\xd5\xb9\x53\xf5\xfa\xfb\x30\x0e\xc2\x78\x4e\x5a\x91\x0d\xbb\x22\xa7\x45\xec\xc7\xf3\xe0\xc4\x75\x41\x18\x87\xf8\x44\x7a\x0b\xf4\x6f\xf1\x22\x4c\x87\xef\xd3\xf5\x0a\xa2\xde\x70\x38\xf4\xd0\x9c\x46\x95\xa5\x7d\xc0\xde\x44\x61\x8a\x61\x0c\x51\x3a\xa1\xbf\x83\x64\x39\x94\x8f\x7a\xfd\x0d\x08\xc2\xe0\x39\xdd\xa6\x67\x11\x3d\xbc\xf9\xbe\x65\xf3\xa1\x17\x04\x3d\xd9\x8b\x88\x5f\xeb\xf5\xc1\x2d\x55\xfd\x9d\xc0\xc9\xb7\xb7\xf2\x35\x75\xe5\x4a\x71\xef\xcf\x17\x74\x71\x7f\x9a\xb8\x4c\xb3\x39\xfd\x33\x80\x43\x16\x1f\xd7\xff\xf4\xa9\xc7\xa0\x97\x42\x4c\x3b\x06\x62\xd5\xe0\xe1\xa8\x0f\xb2\xef\x14\x20\x5c\xe0\xba\xfd\xfe\x66\xd3\xdf\x80\xeb\x30\x8a\x9e\xc2\x14\xa3\xe4\xa6\x70\x05\x35\xa0\x33\x44\x70\x99\x5c\xc1\x1e\x7f\xc1\x76\x7a\x18\xb0\x8e\xe9\xf8\xfd\x0d\x90\xd8\xcf\x37\x9d\x20\xee\x1a\xc3\xa0\xc7\x0e\xca\xf0\x15\xc3\xfd\x9e\x36\x01\x16\xef\xda\xdb\x01\x78\x38\x87\x58\x1a\xa4\xfa\x7c\xe1\x73\xb9\x38\xbd\x87\x7e\x7f\xd3\xef\x03\x76\xe8\xea\x0f\xc5\x5c\x3e\xe0\x44\x0c\x46\x6d\xc5\x55\x23\x01\xb9\x61\xf3\x75\x18\xf4\x1f\x84\xb3\xde\x43\x38\x9c\x85\x71\xd0\x83\x93\x6f\xdd\xc7\xee\x64\x32\x51\x1d\x40\xe0\x3e\x85\x33\x82\x82\x61\x12\x0f\x5f\x7a\xd8\x5f\x0c\x7f\x7c\xf7\xee\xcd\xf0\x8d\x87\x17\x6f\xa8\xad\xd8\xed\xf7\x1f\x3d\xd2\xba\x60\xfe\x28\x93\xc9\x04\x0e\xd5\xa7\xfd\xfe\x6d\x04\xb1\x13\x73\x37\x15\x34\xf9\x55\x32\xe3\x7f\x62\x7b\xc6\x26\xa9\xd9\xc0\x37\x43\xe3\x8d\x0c\x2c\xc8\x3c\x97\xe1\x48\x99\xe7\xca\x0b\x79\xf3\x2b\xf0\x26\xbf\xca\x8b\xb5\xb3\xf1\x7e\x25\xb0\x63\xab\x7d\x38\x99\xe8\x9f\x12\x48\x5f\x78\xd3\xef\xe2\x89\x77\x52\xdc\x00\x4d\x1f\x3d\xea\xc5\x13\xd4\x07\xb2\x4d\x2c\x36\x15\x4d\x6e\x9f\xb2\xab\xf6\xe4\xe1\x0e\x78\xfe\xf4\x84\x51\xe4\x13\xf7\x1b\xfb\xe4\x01\x25\xb1\x05\xef\xd4\x36\x9c\xdc\xd2\x2d\x3c\xb9\x25\x7b\x78\x72\xab\x36\xf1\xc4\x7d\xec\x6e\x36\x1b\x20\x78\x91\x93\x78\xf3\x00\x0e\x57\xeb\x74\xd1\xa3\xd8\xe5\x23\xe8\x61\x48\x11\xac\xdf\x43\xa0\x60\x20\x13\xb5\xfa\x9b\x0d\x3b\x0c\x0e\x24\xd8\x4d\xef\x89\x1c\x72\x5b\x2f\x1a\xed\x7a\xd1\xf1\x9d\x60\x10\x64\x70\x94\x2d\x86\x08\x06\x6b\x1f\xf6\xa8\x1b\xd5\xe4\xdb\x1e\xbc\xd0\xc4\xbc\x6f\xf0\xf0\xf9\xd3\xe9\x04\x03\x3c\x3c\x5b\x84\x51\x80\x60\x5c\xaf\x3d\xec\xf3\xff\x77\xbb\xe9\x3f\x10\x8b\x60\x23\xcb\x79\xe6\x7b\xca\x7c\xcd\x67\x4a\x17\x58\xd5\x98\xfb\x7f\xf1\xf0\xd7\x1e\xec\x0f\x67\x09\x7a\xe6\xf9\x8b\x5e\xef\x02\x83\x78\xda\x9f\x7c\x7b\xab\xb0\x64\x28\xb6\x89\x20\xd0\x50\xb0\x77\x13\x78\xa1\xde\x4c\x75\xac\x1a\x32\xc9\xe6\xd1\x23\xf1\x97\xec\x1d\xeb\xfd\x62\xbd\x5f\xac\xf7\x8b\xb5\x7e\x37\xfd\x4d\x1f\xb8\x2e\x25\x58\x62\x17\x0a\x68\xd6\x2d\x45\x74\xf0\x8e\x12\xff\x74\x53\x46\x28\xa5\x25\xb2\xdf\xb3\x1e\x62\x60\x3b\x82\xc0\x76\x5e\x81\x9d\xfc\xf1\x49\xb8\xfd\x82\xf7\x3a\x21\x9e\x23\x6f\xb5\xc8\xad\xc9\xc0\x50\xb6\xab\x17\x53\x3b\x45\x66\x07\x41\xf1\x0c\x43\xda\x63\x4f\xe2\x52\x06\x93\xf4\xdd\xc0\xd9\x2d\x8a\x27\xdf\xde\x42\x72\x13\xbf\x08\xe3\x0f\x3d\x82\x36\x40\x6d\x33\xdb\x0d\x1d\xd1\xf4\xbe\x32\x9f\x61\xfd\x33\x40\x0f\xa5\xb8\x61\xf3\x8b\xd5\xaf\x5e\x3a\x7b\x73\xa5\xe1\xac\xe7\x92\xab\x82\xad\x44\x36\xfe\xf4\xe9\xa1\x24\x02\x90\xdd\xce\x3d\xf7\x3f\x38\xd5\x52\xcd\xfa\x7d\x06\x88\xdb\xcd\x03\x03\x64\xaa\x05\xc0\x13\xc8\x20\xd4\x73\x4f\xdc\xfe\x30\x5d\x84\x33\xc2\x79\xc4\x93\x0b\x38\x05\x68\x72\x31\x35\x60\x49\x67\x28\xd6\x4e\x56\x0c\x03\xb2\xce\x1e\x04\x3d\x08\x3c\x72\x7a\x62\x46\xcd\xe0\x30\x0c\xfa\x00\xb1\x1f\xbf\xfe\xe9\xd6\x1b\xce\x50\xb2\x7c\x1e\x6c\xbe\x25\x7f\xe3\xe4\x79\xb0\xf9\x95\x03\xb4\xb0\xcf\x61\x18\xc8\x6e\xd9\xf4\xa3\x09\x79\x68\x99\xef\x03\xfc\x70\x32\x89\x1e\x3d\x52\xae\x92\xe4\x9c\x65\x7e\x47\xf4\x18\xd7\x9f\x1e\xdb\xf4\x5b\x46\x50\xe3\xe1\xd2\x5b\xd1\xab\xfb\x3f\xdc\x6f\xce\xce\xcf\x87\x30\xf5\xbd\x15\xec\xc1\x7e\x1f\x50\x03\xe5\x09\x2a\x6e\xb1\x21\x38\xc0\xf3\x66\x9c\x70\xa6\x4e\x8f\x73\x12\x51\x4a\x70\xc8\x43\x1d\xd8\x29\x22\x87\xe7\x14\x63\x14\x5e\xae\x31\xec\xb9\x61\xe0\xf6\x1f\xe0\x3c\x32\x7c\xb7\x15\xb3\x77\x52\xfc\xf5\x4e\xf9\xd7\x98\x2c\x6c\x63\xb8\xfb\xa2\xb6\xee\xbe\x86\x95\xfe\xbe\xc4\x85\xfd\x36\xfa\x0d\x9f\xbd\x7a\xe6\xd9\xdd\x78\x7d\x72\xd5\xb9\x5a\x4e\x0a\xf9\x47\xd6\x33\x46\xf7\x02\xe0\xef\x1e\x79\x18\xa3\x82\x18\x31\xab\x0b\x0b\x67\xf2\x6d\x6e\x2c\x23\xc3\x8d\x85\x29\x57\x46\x07\x44\xf6\x94\x51\x20\xa6\x36\x64\x7f\x6a\xc4\xc0\x8c\x0c\xc1\x5f\xbb\xa7\x81\x50\x54\x9a\x46\xdc\x22\x57\x19\x8f\xcf\x7a\x17\xb8\x56\x9f\x19\xe9\x52\xb3\x2b\x5f\x8f\xe4\x10\xca\x1d\xd3\x1a\xbb\xba\xa7\xa9\x4d\x7f\xf0\xc2\x88\xe0\x4e\xfb\xb2\xe2\x5a\x2c\xf0\x4c\x76\x56\x1c\x5d\x2a\x63\x80\xb9\x39\x64\x9a\x8f\x3e\x32\xe6\x05\x54\x6e\x1a\x47\xeb\xbf\xd0\x7f\x21\xa3\x4d\xb4\xea\x8a\x6b\x76\x6e\x9b\x7e\xeb\x7a\x40\xa4\x49\x52\x9c\xb5\x3e\x1b\x31\x65\xfe\x9d\x9f\x36\xe7\x0c\xba\xc8\x59\x2f\x66\x57\x91\xb1\x5e\x2a\x2e\x9b\x95\x44\xc8\xf9\xcc\xd4\x2a\x88\x50\x06\xeb\x16\x39\xc1\x4a\xa2\x91\x4b\x62\xbc\xf7\x72\x96\x3a\xb6\x0f\x82\x2f\xa7\xea\xb1\x6c\xb4\x55\x63\xef\xf0\xf2\x6a\x06\x75\xf0\x42\xce\x67\x3b\x6c\x10\xc7\x93\xe3\x41\x67\x44\x6f\x94\x27\x7a\xec\xec\x17\x29\xae\xa5\x73\x50\x95\xcb\xd8\x81\x11\xd9\x59\x92\xca\xb0\x98\x9a\xe6\xa9\xe2\x88\xfa\x18\xb2\xd2\x34\x6d\x93\x48\x16\x11\x48\x24\xfb\x2d\x4f\xde\x57\x83\x48\x66\xa6\x09\x5c\x47\xeb\xbc\x06\x75\x74\x72\xe1\xfe\xc6\xa2\xe9\x5a\x44\x8f\xe5\x47\xda\x46\x24\x4a\x8b\x78\xd8\xf2\x2f\xe4\x93\x0c\x54\x8c\x55\x71\x6a\x59\xcf\xad\x6f\xb7\xe2\x2d\xac\xb8\xe3\x9a\x6f\x62\x07\x37\x9d\x0d\xa8\xf9\x6e\xf9\xa6\x8a\xae\xed\x93\x2e\x2d\x3a\x52\xbd\xb1\x9d\xdc\x75\xd9\xe9\x77\x78\xd7\x99\x73\xac\xac\xd1\xe2\x94\xdf\x7b\xe5\x75\x5a\xac\x58\x5a\xb3\x56\x4b\xbd\xfd\x68\x79\xe3\x36\x4b\x5d\x53\xfb\x3c\x35\xa1\x8b\x35\xce\x7e\xcb\xc3\xf7\x05\x8e\x9e\x9d\xd1\x6c\x30\x40\x13\xba\xd7\x8c\xc6\xde\xeb\x83\xd8\xe0\x18\x96\x1c\xc2\x71\xc5\x21\xac\x3c\x0e\x96\x22\x0a\x4d\xcf\x58\x83\xd1\xaa\x12\x46\x56\x1f\x8f\x96\xd5\x6a\xda\x72\xcf\xa3\x76\x49\x15\xeb\x9b\x9e\xa5\xb1\x58\x19\x86\xed\x56\x65\x6a\x70\x66\x5e\x6d\x5e\x54\xc7\x48\x3c\xef\xc2\xac\x6b\xd1\xa6\xdc\xb7\xf8\x6e\x15\xe2\x67\x0b\xf5\x7e\x32\x8f\xc2\xe5\x12\x22\xd5\xd1\x17\x8b\xe5\x5e\xee\x8c\x57\x7b\xc1\xab\x1f\x4a\x63\xb9\xcd\x7f\x72\xa1\x51\x25\xfa\x9e\x11\xe7\xf4\xc7\x2a\x02\x56\xa9\x7a\x4c\x79\x46\x94\x8d\x64\xc2\x0b\xf3\x78\x92\xa5\x5e\x99\xdf\x4b\x55\x8c\xd3\xbe\x96\xf0\xc4\x96\x14\x7c\x07\x5c\x30\x7f\x59\x20\x12\xd2\x4c\x81\xfb\x58\xe5\x76\x4d\x17\x89\x59\x6b\xd8\x46\xa2\xf7\x2d\x72\x11\x99\xab\xb2\x8f\xb9\xc0\xa5\x06\x32\x17\xb8\x3f\xbe\x7b\xf7\x86\xfc\x64\x19\x62\xbb\x16\x4f\x29\x50\x97\x64\x28\x91\x83\xb6\xf5\xc5\x52\x77\x05\xdb\xde\x34\x96\x1b\xc6\xce\xb9\x55\x32\x66\x6d\x94\x0c\x8a\x79\x29\xd2\xde\x05\x45\x92\xa0\xba\x05\x34\x2c\xc2\x3a\x1f\xdf\x59\xa6\x37\x0b\x9a\x6e\x1f\xfa\xb6\x1d\x02\xff\xc8\x0e\xd9\x76\xf8\x2b\x59\x86\x6c\xa9\x0a\x86\xc2\x3c\x46\xdc\x02\x1e\xc1\x41\xaa\xa3\xae\xb8\x48\x31\xb5\x8a\x38\x41\x42\x28\xf6\xf4\xae\x7f\xd4\x46\xab\x80\x64\x09\xf2\x74\x77\xc0\xc4\x32\xb6\x57\x18\xd5\xc3\xe2\x71\x21\xab\xbf\x1d\xfa\x66\x7c\xec\xa6\x76\x96\xba\x29\x0b\x58\x8d\xdd\xa5\x59\x23\xda\xa0\xfc\x7f\xaf\x21\xba\x79\x43\xba\xbc\x5b\xb4\xff\x9d\x8c\xa3\x12\x52\x35\x41\x7d\x3a\x45\xe7\x8d\xf8\xb6\xd9\x01\xc8\x7c\x7c\x3f\x4e\x81\x06\xf4\xcf\x76\x12\x8a\x85\xde\x2e\x4f\xc2\xa8\xed\x49\x28\xe7\xf6\xef\x82\xfd\x67\x6c\xda\x92\xef\x4c\x95\x0c\xa0\x25\x5f\xef\x84\xb9\xcf\x70\xce\x92\xb3\xa7\xfe\x80\x0e\x72\x98\x4b\x66\xea\x60\xc1\xef\xde\xce\x21\xa6\x69\x47\xa4\x3b\x88\x93\x71\x84\x31\x7d\x35\x86\x1e\x9a\xa7\x43\xc2\xc4\x16\xb8\xa5\xb9\xfd\x4f\x9f\x6e\x37\x7d\xe9\x6d\xa3\x31\xe6\xcc\x8d\x46\x0c\x83\x87\x38\x79\x91\x5c\x43\x74\xe6\xa5\xb0\xd7\x1f\x32\x6f\xdc\x5f\x42\xbc\xe8\xb1\x0b\xbc\xff\xdd\x2d\x61\x11\x4e\xf0\x10\xc1\x55\xe4\xf9\xb0\xe7\xbe\x61\x17\xbb\xdb\x07\x8c\x77\x8f\x37\x27\x70\xd3\x07\xac\x9d\xcb\x9d\xe1\xf8\x3b\xf7\xb1\xbb\xe9\x6f\x36\x9a\x01\x1a\x94\xbb\xaf\xa2\x7e\x5b\x81\xc5\x48\xb3\x70\x5f\x2c\xd4\xb3\xbf\xe2\xc3\x1f\xf1\xf1\x4b\xbb\x70\xc2\x85\x0e\x8b\x40\x52\x6a\x77\xb6\x19\x98\x99\x35\x82\x65\xa1\x93\x02\xc8\x58\x13\x40\xc6\x66\x50\x40\x81\x08\x63\x9e\xf8\xdd\x6a\x9b\x72\x61\x7e\x86\x12\x73\xf2\xb8\xc8\x9c\x5c\x97\x0b\xac\x4f\x08\xa4\x64\xbf\xfd\xb1\xb6\xe0\xd7\x7d\x93\xd9\x59\x52\xb5\x62\xa4\x17\x7f\x3b\x98\x49\xe8\x6c\xda\xfc\x28\x7c\x80\x37\x69\x0f\x52\x47\x58\xfe\x64\x0e\xf1\xeb\xeb\x58\x1c\x8e\x73\x86\xb7\xec\x2b\x34\x29\x6b\x43\xba\xc1\x8f\x1e\xf5\xd0\x04\x0d\x67\x61\x84\x21\xd2\x48\x10\xce\xd2\x38\xb3\x8b\xa7\x30\xf5\x51\xb8\xc2\x09\xa2\x73\x1c\xc2\x78\xbd\x84\xc8\xbb\x8c\xe0\xa6\xdf\xef\x03\xe6\x1f\x34\xf4\x56\xab\xe8\x86\x91\x0b\xde\x59\xbc\x91\xab\x63\x6b\x4d\x50\x8f\xad\x6f\xf4\x5f\xf1\xff\x91\xfe\xcf\x43\xc6\x07\xfd\x57\xfc\xcd\x37\x6c\x25\xde\x84\x60\xf8\xc3\x89\x6c\x71\x11\x4f\xbf\xd3\x7f\x9c\xdc\x6e\x1e\xc4\xff\x39\xfe\x0e\x73\xb0\xf4\xbc\x3e\x78\xb8\xa3\x39\x26\x1a\x2b\x23\x93\x06\xde\x05\x9e\x12\x3a\x76\x52\xb1\xc2\xf4\x3b\x1b\x19\xa2\x8e\x8f\xa0\xea\xd3\x9e\xd7\xef\x9f\x68\x73\x2a\x98\x50\x11\x9d\xc3\x55\x03\xf4\x3c\xea\x3f\xd4\xef\x2b\xe7\x55\x09\x60\xb6\xca\x58\xdd\x22\x4e\x18\x3b\xd0\xba\x18\x36\x16\x27\xa4\x31\x50\xbb\x79\xf2\x70\x07\x88\xc4\x44\xe2\xf7\x35\x0a\x31\xff\x7b\xd3\x3f\x81\x17\x78\x3a\x89\x01\xdc\xb4\xa0\xd5\x9a\x9f\xee\x04\x1a\x7e\x95\xfc\x27\x75\x12\x64\x7f\x4b\xdf\x74\xf6\xf3\x94\xe0\x6b\xec\x61\xc8\x3d\x7a\x53\x93\xe0\x7b\x13\x75\xa2\x26\xb7\x1b\x90\x43\x67\x56\x3b\x8a\xba\xae\x32\xd4\x87\x93\x6f\xe1\xf0\xdd\xcd\x0a\x4e\x26\x13\xdc\xdf\x80\x68\xa2\xeb\xc9\x40\x3c\x51\xd6\x0e\xa4\xfd\xed\xc9\x8e\x95\x27\xf9\x05\x9e\x3e\x7a\xd4\xa3\x80\xb9\x7d\xfe\xf4\xe4\xd7\x3f\xdd\xe2\xcd\xf0\x4f\xb7\xd4\xe7\x1b\x91\xff\xf1\x36\xbf\x72\x17\x68\x20\x2c\xf8\x84\x7d\xea\x03\xf2\xcd\x06\xa4\x13\x53\x45\x67\xfa\xa2\x43\xea\x20\xd7\xcb\x39\xbe\x5d\x20\xe0\x4d\x27\x17\x18\xc0\xa9\x70\xa1\x93\x3e\x89\x43\x97\x70\x19\x04\xb0\xb0\xd7\xef\x83\x68\x72\xa1\xe7\xbd\x06\x5a\x95\x0c\xa0\xe5\xc4\x07\x32\x0f\x3c\x70\xcf\x69\x6a\x29\x57\xfa\x31\x7a\xcc\x83\x3e\xa3\x4c\x14\xc0\x87\x0f\x27\x13\x74\x81\x55\x6b\xea\x3b\x1e\x91\x03\x07\xbc\x0d\x45\x58\xfe\xea\x96\x80\xfc\x24\x16\x5e\xb7\x27\x68\xb3\x79\x50\xb0\xc1\xe9\x83\x0c\x22\xe8\x20\x10\x03\x11\x84\x93\xde\x8a\xfd\x02\x50\x51\x1f\x41\xb2\x4e\x0d\x3e\xd2\x41\x53\x01\x0a\x60\xe9\xc8\xa9\xff\xa5\xde\xc7\xbd\xb8\x77\xbb\x61\x9e\xd7\x80\x6c\xb5\x16\x10\xf7\x0d\x1b\x81\xef\xf3\xf0\xb7\x24\x8c\xe9\x38\x1b\x7a\x5a\x1f\xe8\xf8\x6d\xc2\x50\x5f\x09\x4b\x90\xe7\x5a\x59\x44\x75\xb0\xe1\x90\x29\xd2\x7b\xf1\x90\xf5\x98\x5f\x36\x6f\x19\x92\xef\xd8\xbc\x30\x99\x47\x7f\xd3\x07\x17\x53\x39\x1d\x79\xfa\xf4\x19\x69\xc8\x6e\x1e\x82\xdb\x0d\xf0\x26\xb7\x1b\x01\xd3\x70\x72\xbb\x79\x60\x3d\x64\x9e\x7e\xc8\xa4\x8f\x88\x4b\x83\x2e\xc8\xf6\xdb\x88\x22\x52\xc8\x84\x72\x5b\x45\x0e\x44\xf2\xc0\xe3\xb7\xc4\xb7\x7b\x8f\x1e\xf5\x92\x89\x27\xb6\xa8\x0f\x3c\x6d\x8f\xe4\xe3\x82\xbf\x64\x4b\x7e\xc0\xd6\x13\x4f\x6d\x16\xf0\x27\x51\x2f\x04\x6b\x10\x03\x0c\x20\x1b\x38\x30\x02\x29\xd0\x50\x40\x6d\x28\xec\x65\x8f\x1e\xf5\x82\x49\xda\xb3\xbc\x11\x6e\xdd\x80\x2d\xa9\xdf\x07\x89\xf2\xc2\xbe\x65\x47\x8c\x47\x50\x20\x0d\x7b\x92\xcd\x03\x39\x5e\x40\x28\x8b\xec\x70\x12\xf4\x81\xaf\xa2\x05\x98\x53\x6e\x7f\x03\xa3\x14\x3a\xc6\x27\xbe\xfe\x09\x61\x5c\xcc\x1d\x42\x6a\x0b\xd0\xe4\xdb\x5b\x7d\x81\x9e\x11\x72\x80\x86\xcf\x9f\x4e\xc5\x9c\x93\x49\xda\xbb\xa0\x4f\xc0\xaf\x22\xcd\x1c\x27\x73\x94\xe0\xc1\xcd\xaf\x94\x51\x91\x64\xe4\xe1\x64\x92\xb0\x1d\xbf\x15\xc0\x26\xe0\x45\x22\x2c\x83\x83\x19\xf8\x93\x5b\xe1\x92\x72\xc2\x3e\x60\x20\x79\xfe\x94\x01\x04\x5d\xb0\xa7\x53\x0d\x30\x96\x79\x5a\xb7\x46\x83\x44\xda\xab\xf5\x91\xb6\x6b\xcf\x9f\xf6\xfb\x60\x9d\x01\xb8\x4f\xfd\x77\x33\x10\x0d\xfb\xc2\x59\x3c\x34\x2f\x12\x24\x0f\xa3\x49\x3d\x44\x00\x0d\x8d\x43\x22\x7f\x7d\xfa\x64\x8d\x4d\x62\xf2\x23\x81\xc7\xaf\x2c\xc8\x86\x00\x7b\xf0\x27\xc2\xd3\xe8\x11\x4c\x9b\x5f\x37\xf4\x58\xeb\x57\x6c\x58\x97\x63\x25\x8c\x69\x0a\x83\x01\x91\x2d\xef\x55\x6d\xaf\xbf\x3d\xdf\xf9\xed\x9b\xd5\xe5\xdf\xec\x82\x1a\xd7\x65\xfb\xc9\xf2\x32\x8c\x61\x70\x1a\x04\x08\xa6\x54\x70\xf3\xe4\x9f\xa6\x30\x57\x60\x4a\xe2\x22\xdc\x58\x2f\x73\xa3\xc3\x44\x15\xbb\x61\x4e\x12\x56\x7b\x51\x89\x6b\x5f\x3e\xf4\xd9\x0c\x83\xde\xdf\x42\x25\x55\x61\x5a\x97\x5a\x25\xdd\x3b\xda\x2a\x1e\xba\x99\x9c\xe9\x59\xa1\x13\xb8\x9a\x97\xdf\x0b\x1e\xa8\xf8\x86\x1a\xb6\xa6\x5a\xf9\x2d\xaa\xcd\xdc\xd2\x88\xb3\x52\x53\x15\x9b\x3b\x10\x5b\x5a\xe4\x3f\x60\xf5\x1b\x28\x30\xe7\x2b\x6f\x82\x0a\xa3\xbe\xf9\x82\x66\xcb\x5b\xdd\x0c\x2e\xd7\x18\x13\xd6\x89\x17\xbc\x60\xb6\x14\xa0\x6a\x7d\xb2\xde\x81\x2b\x10\xb2\xac\x24\x45\x33\x7f\x85\x72\xc5\xa1\xbe\xc5\x01\xc4\x5e\x58\x8c\x91\xba\xdf\xc7\x1b\x94\xe0\xc4\x4f\xda\x64\xc6\xcf\x68\x6e\x59\x49\x38\xd9\x5d\xc5\x4e\x15\xaa\x50\x35\x78\x4b\x25\x61\xcb\xea\xbd\xe2\x3f\xb1\xc6\x66\x09\xf5\x6b\xe2\x45\xa5\x8b\x8e\xa9\x13\x36\xe0\x5d\x77\xa4\x66\x76\x09\x7d\x7b\x33\x47\xb5\x93\x2d\x66\xe6\xec\xfb\xb2\xbd\x62\x85\x0e\x59\xe2\x97\xd9\x61\x16\xb8\x1d\xc6\x73\x27\x89\x9d\x13\x73\xbf\x73\x1b\xf0\x19\xf6\x3c\xf1\xbd\x88\xc6\xcf\xfe\xfb\x6e\x3a\x59\xa2\x43\xd6\xf8\x25\xb7\x9d\x4e\x82\x40\x26\xb7\xe9\xb9\x1d\xb8\xfb\x5d\x37\x2e\xdf\x2d\x37\x5b\x64\x7f\xbb\x1f\x9b\x4d\x56\x76\x2f\x48\xb7\x80\x70\xd7\x9b\x59\x76\xc3\x37\xb3\xe4\x6d\xa5\x98\x97\x0e\x7a\x2c\x19\x4c\x61\xde\x97\xe6\x7a\xfb\x02\x11\xe3\x4b\xeb\xea\xe1\x47\xaa\x75\x8a\x78\x11\xb3\xfb\x22\xf7\xac\x5f\x1c\xbf\x59\x7d\xbf\xbf\xb0\xcb\x3d\x62\xd2\xe7\xbc\xf0\x9a\xfb\x44\x14\xb7\x53\xd2\xce\x75\x88\x17\xcf\xe3\x59\x22\xcd\x58\xa5\x05\x8e\x95\x08\x52\x2b\x95\x93\x2d\x84\x67\xbf\x45\xce\xa9\xb1\x25\xe7\x54\xa6\xba\xb2\x88\x0e\xe2\x9b\xe8\xad\xc2\xc1\xdc\xc3\xf0\xda\xbb\xd9\xa2\xd0\x72\x05\xf1\xe3\x34\x6b\xc0\xaa\x16\x6e\x4d\x05\xf5\xf4\xe6\xbc\x76\x1a\x2d\x2e\x26\xe4\x4c\x03\x03\x1d\x2e\x63\x4d\x85\x7f\xe2\x6e\x71\xe7\x8e\xf3\x16\xce\x09\x73\x81\x60\xe0\x5c\x85\x5e\xc6\x43\x20\x2b\xc6\x11\x59\x6a\x99\xc4\xc3\x4b\xe4\xc5\xc1\x50\x8e\x93\x4d\x4f\xd5\xde\x05\xba\x05\x69\x3d\x62\x35\x21\x39\xa8\x85\x44\xa5\x39\xf9\x3e\xa1\x85\x1c\xa7\xb4\xdc\xd9\x0c\xbb\x80\x92\xac\x56\x77\x08\x1f\x8e\x1e\xa8\x41\x1a\x25\x58\x0e\x27\xe4\x36\x29\x17\xb7\x93\x31\x4e\xdf\x3c\x77\xfe\xca\x70\x33\x75\x96\x5e\xec\xcd\xa1\x13\x27\x08\x2f\xc8\xd6\xe2\x85\x2c\x74\x32\x43\xc9\xd2\x11\xdb\xae\xea\x39\xe0\x44\xfd\x1d\xc6\xb4\x26\xbf\xd2\xd9\x0f\x9d\x1f\x12\xe4\x2c\x13\x04\x9d\x30\x9e\x25\x68\x49\x8b\xdc\x00\x07\x41\x2f\x70\x92\x35\x32\xcb\xf7\x0f\x2d\x8b\xaf\x5d\x64\xac\x16\xa4\x96\xa2\x7e\x62\xdb\xaa\x72\x7a\x51\x4f\x91\x29\x3f\x85\x64\x86\x38\x29\x8f\xb8\xa2\xa0\xbe\x4c\xd6\xf8\xae\xd0\xbd\x14\xb3\x2b\x96\x20\x92\xb3\x33\x42\x12\x41\x0f\xc5\x83\x28\x8c\x3f\x54\xae\x48\xf4\x28\xe2\x17\x5d\xec\x5d\x8a\x42\x55\x83\x51\x66\x14\x02\x7d\x4e\xd4\x2f\x46\xfb\xe0\x20\xe3\x22\xa0\x94\x4b\xee\xd9\xeb\x57\xe7\x3f\xbf\x78\xff\xf4\xf5\xd9\xf9\xfb\x17\xcf\x4e\xdf\xbe\x7a\xff\xf3\xdb\x17\x39\xca\xc9\xfa\xa6\x37\x48\x9c\x24\x2b\x2a\x4b\xc5\x09\x82\x33\x88\x10\xd7\x13\xed\x69\x81\xfa\xef\x2f\x23\xaf\xc6\x92\x1c\xe7\x05\x59\xbf\x33\x5f\x87\x01\x4c\xeb\x04\x4d\x35\x7a\xdd\x5d\xdd\xbc\xca\x01\x6b\x70\x71\xa5\xd5\xc0\x15\xe2\x35\xd0\xe9\x75\x79\x6b\xe4\x15\x3f\xe3\xad\x2e\xcc\xac\x02\xad\x69\xf0\xcb\xdd\xdd\x5b\x2d\x62\xc2\xdb\xd7\xa8\xb6\xa7\x39\xae\xae\x5c\xad\xe2\x60\x04\x93\x0d\xe3\x2b\xe1\xf2\xc6\x8a\x59\xf3\xab\x20\xcb\xa0\x72\xd6\xbc\x0d\xff\x6d\x61\x74\xbf\x34\xf7\xbd\x80\x5e\x84\x17\x03\x7f\x01\xfd\x0f\xf7\xca\xee\xf0\xfc\xed\x3f\xff\xf5\xdb\x9b\x34\x28\x8d\x5e\x69\x6d\x5a\xd0\x97\xad\x9b\x16\xc6\x2d\x4c\x0b\xf9\xb4\xad\x26\x3b\xbd\xdb\x9d\x69\x41\x8f\x82\x19\x71\x76\x49\xad\x23\x59\xe3\x15\xb9\x93\x55\x4d\x79\xec\xe1\x75\x5a\x96\x01\x25\xaf\xba\x2e\x8e\xeb\x2f\xf1\x68\x33\x9a\xa9\xba\x43\x36\x27\xdc\xba\x89\x26\x5a\xfa\x24\xb3\xe1\x7e\x0a\xe3\x80\x52\x95\x98\xa6\xcd\xdd\x4a\x3c\x29\x12\x33\x5e\x25\x01\x2f\xc5\x57\x9f\x03\xd7\x00\x22\xb2\xf2\x77\x10\xc0\x98\x9b\x9a\x51\x28\xb0\xcd\xec\x72\x95\x06\x1b\x96\xd5\x6d\xba\xa3\x55\x0b\x3a\x23\xf8\xfd\xfc\x69\xd3\xc5\x64\x64\x58\x9a\xbd\x83\x77\x44\xeb\x35\x68\xc7\x62\x7b\xac\xac\x5a\x03\x8b\x49\xae\xb7\x80\x3d\x5e\xd7\xdd\x38\xde\x34\x22\xa9\x20\x43\x51\x96\x31\x20\x6b\x7d\x97\x89\x60\xca\x1e\x1b\xd6\xea\x19\xd3\x0a\x6d\x93\xb4\x61\x04\x5c\xc6\x08\xb3\xf8\x05\xca\x30\xb0\x6e\x87\x74\xe6\xa9\x13\xa6\x4e\x0a\x31\x91\xaf\x30\x5a\x43\xe0\xa4\x89\xe3\x45\x91\x83\x14\x0f\xf2\xe3\xbb\x77\x6f\x1c\x2f\x0e\x9c\xf9\xdb\x37\x67\x0e\xfd\x8c\x3a\x7e\xb3\xc2\x63\x5c\x75\xe5\xe0\x05\x4a\xd6\xf3\x85\xf3\x2c\xbe\x4a\x6e\x9c\x59\x82\xa8\x8c\x76\x46\x69\xba\xe3\xcd\x61\x8c\x2d\x55\xc5\xe4\x0a\x5b\x54\x87\xae\xc7\x8d\x6e\x8d\x1b\xaf\x12\x51\x3e\x74\x2b\xec\xe6\xdd\x7c\x7e\xdc\x7e\x4d\x6f\x9e\xed\x74\x11\x9a\xed\x19\xa9\xd2\xbd\x34\x4b\x38\x23\xe2\x59\x22\x25\x06\x95\x6b\x2c\xcd\xdf\xd0\xc4\x72\x6c\xf4\x0e\xdc\x44\xfe\x69\xb5\x21\x37\xc3\x12\xcb\xc3\x4a\xcc\xec\x4e\xbb\xac\x22\x3e\x24\x03\xac\x82\x3c\x68\x0e\xf2\x6e\x74\xcd\x05\x6c\xe5\xbd\xe2\x76\x53\xe8\x21\x7f\x31\xb8\xf4\xd0\x7d\xe1\x79\x7f\x38\xff\x67\xf8\x8f\xef\x7f\x3b\xb3\xf3\xbc\xef\xdf\x7b\x68\xbe\x43\x84\x7f\xf2\xc7\x88\x4a\x28\x64\x05\xcc\xff\x86\xaf\xd4\x05\xee\xeb\x15\x66\x05\x0f\xe9\x9f\x22\xc5\x7b\x04\x7d\xea\x42\xdc\xe8\x33\xce\x66\x77\xd6\x8e\xde\x25\x8d\x66\xb0\x42\xc9\x4a\xff\xe0\x03\xbc\x91\xb1\xb3\xc0\x7d\x92\x26\x88\xe0\xf0\x13\xe6\xec\xc8\x02\x45\x64\xdb\x27\xf2\xaf\xa2\x20\xf6\x23\xd1\x33\xc1\x02\x17\x5c\xd8\x84\x04\x76\xf9\x6a\xcd\xb8\x78\xbf\xcb\xcb\x25\xaa\xa1\x09\x09\x09\xbe\x27\x3b\x97\x52\xbd\xbf\xe0\xff\x77\xcc\xd2\x6b\xe2\x96\x4d\x19\x77\xae\x2d\x4e\x76\x95\x0a\x43\x2f\xa0\xff\x27\x0b\x2b\xb5\xa8\x62\xc2\x74\xf7\x7c\xac\x16\x9c\xb0\x59\xa9\xcc\xa6\xb3\x28\xd4\x3a\x16\x4a\x49\xba\x8e\x6c\x24\xf4\x0b\x1c\x0f\x86\x0c\xf8\x43\xfd\xa8\x0e\x15\xf4\xb9\xf2\x61\x7c\x00\x34\x00\x12\xa4\x20\x74\x6f\xc8\x89\x78\xac\x95\x6d\x92\x73\x34\x2f\xcc\xcc\xe0\xcb\x24\xe6\x83\x94\x0c\x20\xe9\xbf\xed\x6b\x3e\xed\xca\xaf\xc5\x3f\xb9\xaa\x15\x77\x00\x0e\x5e\x94\xca\xda\x48\x85\x9f\x77\x0e\xad\x4c\xd7\x8d\xe1\x95\x9b\x5a\x2c\x4b\x13\x36\x8d\x13\x3d\x52\xdd\xbf\xa5\xe9\xfc\x7f\x60\x47\x8c\xae\x77\x74\x00\x5c\x0f\x85\xde\x80\xdb\xee\x6c\x1a\xaf\x75\xc8\xeb\x00\x50\xa0\xb8\x42\xe5\x9b\xa9\x96\x36\x06\xe3\xc3\x29\x70\xb9\xe8\x3d\x3e\x32\xca\x91\xb5\x32\xba\xb7\x63\xc5\xb8\x56\xf0\xb0\x30\x4b\x4f\xa1\xd4\x47\xe7\xdc\x80\x89\x29\xd5\xe6\x5a\xdc\xe8\x0e\xc9\x08\x59\x8d\xaf\xa5\x5d\x51\xc9\xc6\x02\xe5\x6e\x21\xbd\x63\x24\xf5\xf3\xd2\xbb\x1c\xda\x31\x51\x9a\xcd\x64\x2a\x38\x4e\xfd\x82\x92\xf7\x18\x8d\x20\x5d\x24\x11\x57\xb0\x64\xbd\x53\x77\x98\x7b\xe7\xee\x48\x3b\x53\x63\xb0\x3b\x9e\x5a\x71\x96\x1f\xcd\x0c\x0c\xea\xe1\x9f\x9b\xa9\x74\x44\xae\x2f\x72\x36\x69\x5f\x2b\xce\xf9\xb4\xf4\x70\x31\xa0\x12\x89\x42\x43\xfc\xce\x25\xd2\xad\xb8\x65\x57\x32\xde\x8b\x1b\xb8\x0c\x73\x64\x12\xfb\x0b\x2f\x9e\x53\xb8\x2d\xd7\x84\x9d\xa5\x5c\xcd\x13\x04\x7f\x5f\x87\x88\x09\x7a\xbc\xae\x20\x28\x02\xa4\x65\x4d\x34\xcf\x3b\xe9\x56\x11\x2e\x2a\xac\xb2\x5a\x7d\x0d\xcd\x6c\x6e\xb5\xfd\x4e\x16\xd5\x69\x61\xc3\x13\xc7\xb8\xc2\xd3\xd6\xb1\x04\xac\x5b\x91\x44\x6d\x6c\x3b\x1b\x74\x03\xdb\x4e\x05\x54\x64\x1d\xc5\xa6\xe8\x2a\x4f\xec\x98\x08\x6f\x82\x93\xe4\x7e\xd1\xe2\x21\xcd\xd1\xd0\xc4\x3d\xc2\x28\x20\x69\x14\x8d\x1c\x8d\x4a\xce\x07\x50\x3d\x77\x92\xbe\x4d\x3b\x3d\x7b\xd3\x9c\xe8\xaa\x30\x89\x83\x60\x3f\x5f\xa7\x94\x3d\x2b\x9a\x6d\xf6\xc6\xdd\xc2\xaa\x5c\xce\xd5\x64\x6e\x7e\xa3\x9c\xeb\x98\xd5\xf1\xce\x43\xab\xd8\x48\xde\xf4\x16\xb2\x57\x94\x1b\xef\x12\xb0\x5a\xb5\x3f\xb5\x10\xdb\x32\xd0\xb8\x62\x26\x79\x9f\xb3\xca\x91\x2c\xa3\x14\x19\xbf\x1a\x5e\x96\x5c\xec\xf8\xb2\x97\xe5\x51\xc9\xad\x20\xcc\x18\xf5\xae\x02\xe5\xa9\x52\x4a\xfd\x05\xb7\x69\xa5\xfa\x2d\xb8\xb5\x3b\x23\xf7\x35\x89\x7d\x31\xa9\xe7\x07\x2e\x2b\x03\xd6\x57\x63\xd5\x3c\x05\x77\x4f\xdc\x69\xc1\xf2\x2c\x71\x17\x0f\xbb\x27\xee\x4a\x04\x72\x57\x5e\x9a\x86\xf1\xdc\x05\xee\xb5\x87\x62\xf6\x97\x8f\x42\x1c\xfa\x34\x3b\x22\x5c\xae\xb0\xdd\x1d\xae\x65\x65\x4e\x76\x28\x46\xc7\x5c\x4e\x11\xbe\x07\x94\x50\xf3\x42\xd3\xe3\x1d\xa9\x17\x28\xb9\x0b\x76\x2c\x77\x81\xf5\x1c\x6c\x7f\x07\x34\xa7\xff\x6c\x11\x9d\x48\xa0\x3b\x36\x71\xb1\x29\xab\x62\xa1\xb1\x3b\x76\xb7\x83\x23\xb2\x37\x16\xbb\x57\x8d\xa3\x52\x58\xc2\x3e\x6f\xa8\x31\x78\xf0\x0f\xcc\xa8\xd9\x56\x08\x2e\x21\xb0\xbc\xe7\x2e\xc9\x2b\xed\xf2\xdf\x9d\xb8\xd6\xd4\xd1\x10\x58\x64\x55\x53\x5f\x21\xed\xdd\xb5\xd1\xde\xdd\xcf\x40\x7b\x53\x99\x12\x21\x6f\xce\xef\x84\xca\xee\x57\xf3\xd4\xa3\x83\x3c\x1d\x65\xcf\x4c\x84\xff\x2c\x54\xb4\x09\xde\x99\x3a\xc0\xd1\x41\x37\xe4\x56\xef\xa7\x4b\x72\x3b\xb2\xeb\x7f\x46\x7b\x64\x93\x3a\x23\xb7\xbb\x8d\xb9\xf3\x1a\x44\x94\x82\xbf\x63\x2a\xca\xfa\xfc\x83\x8c\x52\x74\x66\x0f\xbe\x7a\x3a\x7a\x6c\x21\xa3\xc7\x9f\x81\x8a\x7a\x51\xe8\xd1\x32\xcc\x09\x2d\x59\x0c\xdc\x39\x5a\xf9\x2e\x70\x17\x18\x53\x0b\x1b\x4d\x6f\xc4\xdc\x1e\x67\x2e\x70\xb1\x4f\x8b\x46\xe3\xe8\x0e\xe8\xed\xa8\x06\xbd\x1d\x5b\xe8\xed\xd8\x72\x34\xee\x13\xc1\x65\x0f\x32\x14\x77\xdc\x11\xc5\x1d\xdf\x11\xc5\xb5\x57\x3a\x1f\xed\x90\x6d\xea\x8a\xe2\x1e\xd7\xd0\x66\x1c\x75\xa4\xf9\x37\xf2\x7c\xd7\x3e\x49\x9d\xe8\x30\x76\x4b\x74\x18\x22\x4b\x43\xf7\xca\xec\xf1\x31\x3d\x0e\x99\x1b\x82\xb9\x7e\x7c\x45\xf7\x84\xdd\x54\x9c\xcf\xf5\xae\x91\x34\xea\x87\xe2\xa5\xbe\xdd\x74\x47\x40\x3e\xf4\xa2\xd5\xc2\x1b\x92\x36\xe6\xe9\x01\xf9\x8e\x02\x58\xa3\x27\xda\xa8\xac\x2b\xe6\x73\x5b\x31\x2b\x26\x74\x57\x4e\x8b\xf7\x55\x31\x31\xde\x59\xe5\xcc\x7e\x0a\xe3\xc0\x3e\xaf\x9a\xe4\x8d\x8e\x46\x99\xca\xaa\x89\xd3\xa1\xec\xd3\x6e\x3c\x96\x65\x5d\x5d\xa9\xd4\x15\xd5\x17\xce\xc3\x87\xda\x91\xca\x5b\xc8\x8b\x68\xe8\x61\x23\xd7\xc1\x7b\xc3\x89\xec\x59\x38\x91\xbd\xc6\x9c\x88\xd5\xc8\xa7\x24\x2a\x66\x5b\x9f\xda\xe3\x49\xec\x9a\xc9\x76\x57\x38\x1b\xf8\xa0\x9c\xb5\xb0\x1e\xcf\x51\xfe\x45\x01\x0a\x54\xcd\xac\xc0\xd4\x56\x70\xe4\x1b\x04\x4f\x35\x5c\x9e\x79\xf4\x46\x96\x37\x77\xb6\x40\xe3\xb8\xb6\x34\x9f\x94\x9c\x88\x9a\xc8\xd5\x84\xca\x90\x03\x65\x8a\x15\x77\x89\x80\xf9\x3b\x6b\x94\x7d\xdc\xfd\xde\xe4\x6f\xc1\x3b\xc0\x3d\xcb\x25\x3a\xca\x3d\xbf\xab\xb5\x7d\x7d\x68\x97\xd7\x0a\xb6\x73\x32\xa8\xb3\x35\xf9\xab\x7f\x94\x7d\x4c\x36\xa6\x89\x10\xc5\x43\x44\x1c\x9c\x38\x3c\x96\xa5\x89\x0f\x40\xed\x49\x5b\xf0\xc9\x78\xde\x74\xda\x64\xae\x64\xce\x22\x3f\x62\x27\xb8\x92\x7f\xbd\x0f\x0e\x3a\x13\x9e\xf6\x6a\x08\x4f\xbb\xf5\x23\x26\xb7\x7c\x38\x02\xe3\xea\xe8\x4a\xe9\x57\xce\xa2\x95\x59\x01\x79\xf2\x07\xf7\x2a\x9f\xa1\x64\x39\xe0\x29\xfc\x65\xaa\x93\x41\x98\x0e\xa8\x0b\xed\x80\x71\x3d\x61\x7c\x95\xf8\x9e\xf0\x30\x9e\x31\x9f\x75\xec\x85\x71\xaa\xbb\xaf\xdb\x2b\x17\x44\xc9\x35\x44\xbe\x97\x12\xac\x5a\x78\xe9\xd6\x2e\xec\x59\x5f\xf1\x2f\xed\xc8\x1e\xc6\x29\xf6\x62\x9f\x6b\x1d\xd3\xfb\xe2\xc0\x8e\xde\x5c\xfe\x32\x3b\xf8\x61\x6c\x77\x60\xa7\x8c\x26\x64\x66\x21\x32\x6b\x17\x28\xeb\xe3\x62\xbd\xf4\xe2\xf0\x5f\xf4\xed\x13\x1e\xe9\xc4\x83\x3a\x8b\xdd\xb7\xf3\x9a\x00\xa6\x3f\xe1\x71\x8f\x39\x81\x59\xd3\xe1\xef\x73\xde\xb6\xad\x3c\x91\x1f\xba\xa8\x3e\x8a\xd4\x5e\x91\x2b\x42\x59\x8c\xf3\x65\x67\x40\xae\x55\xde\x85\xb6\xa8\x63\x65\x94\x2e\xe9\x57\x34\xaa\xdf\xad\xb2\x7a\x97\x74\x2b\x1a\xe5\xbb\x2d\x06\x72\x03\xe8\xb2\xb2\x08\xb3\x10\xa5\x98\x61\xb1\x0b\xb2\x81\xad\xcd\x42\xfa\xb9\x4b\xed\x81\x16\x4b\x7b\x30\x55\x71\xfd\x99\xa3\x65\xd6\xe3\xe6\x86\xfe\x4c\xa0\x3c\x9b\x62\x51\x21\xa1\x69\xae\xa2\xf7\x6e\x3e\xc1\x4e\x69\x07\x5a\x2c\x17\xcb\xfc\xd3\xae\xc6\x59\x27\xb9\xc0\x4c\xb9\x59\x68\xde\xf6\x4d\x29\xd9\xa1\x71\x96\x69\x53\x6e\xcb\xcd\x87\x36\xd5\x3f\x67\x23\x05\x5c\xed\x04\xf1\x1d\xa0\xc5\x6c\x29\x92\x96\x60\xbe\xde\x83\x3c\x2b\xa2\x83\xeb\x10\x2f\x1c\xcf\xc9\x3e\xb7\x04\x78\xb7\x48\xfb\x56\x1c\x17\x67\x82\xbb\x6a\xed\x76\x2c\x32\x79\xe7\x57\x89\x23\x6a\x32\x02\xd7\xe1\x48\x5e\x80\xb0\xd5\x63\x50\xb2\xaa\x3f\xb1\x8e\x79\x1a\x45\xf9\x41\xf9\x93\xbd\x69\xc1\xe0\x3b\xd6\x01\xdd\xc7\x6e\x7e\x50\xe9\x7a\x5f\xdd\x7d\xf3\xcc\x22\x7b\x0d\x8b\x13\xda\x79\xb1\x02\x35\x7b\x83\x4c\x15\x99\x40\xbd\x38\xc1\x03\x96\xad\x82\xb3\x3e\xb4\x8a\xd2\x60\xe9\xd1\xe8\x3e\x6f\x15\x62\x2f\x62\x95\x59\x19\x7b\x35\xa7\xff\x43\xae\xe0\xc1\xe5\x4d\x0b\x7e\xc8\xca\x72\x7c\x79\x3e\x08\xc3\x98\x30\x39\x8f\x67\x09\x5a\x3e\x9e\x85\x30\x0a\x52\x88\xef\x0d\x43\xf4\xf6\xea\x45\x78\x1e\xfe\x78\x69\x67\x88\x96\x49\x40\x79\x81\x15\x44\xcb\x30\x4d\xc3\x24\xfe\x21\x41\x4b\x17\xb8\xef\x25\xc7\x8c\xbc\x20\x4c\x5c\x8a\x35\xb2\x5c\x44\x2c\x6a\x45\x28\xc7\x88\x8a\xd7\x2a\x4f\x46\xe0\x97\x26\xc9\x18\x1d\x32\xeb\x9c\x11\x07\x27\x81\x3c\x90\xf0\xcd\xd1\x2b\x41\xca\x44\x0b\xfa\x7b\x9f\xf4\x9b\x7a\x97\x11\x61\xeb\x2e\x76\xf7\xc0\x78\x6c\xc9\x41\x21\xa9\xa0\x4c\x9e\x2c\x92\x2c\x71\xcd\x64\xc9\x7d\x67\x0c\x57\x92\xba\x62\xac\x37\xe0\x49\xfb\xca\x63\xa0\xa5\x8c\xcf\x93\x6e\x10\x4e\x87\xc7\x28\x50\x03\x4f\xc6\x3a\xb9\x4f\x59\x21\x88\x10\x3d\x9b\x6c\x04\x9e\x3e\x01\xb8\xce\xc2\x4b\x07\xec\x9d\x1e\xfe\xd5\x28\x89\x36\xeb\x52\xc9\xad\xe5\x49\xb2\x57\x44\xfe\xe1\x53\x1d\x90\xab\x6b\xc0\xb2\xd2\x4b\x2d\xb2\xda\x17\xf7\x89\x50\x24\xcb\x88\xc9\x1f\x08\x54\x0d\x79\x5c\xbe\x7a\xa3\x05\xaa\x00\xf7\xc9\xe5\x3a\x8c\x82\xf3\xf5\x7c\x0e\x53\x61\xd1\x4a\x17\xc9\xf5\x19\x1d\xec\x97\x05\xe4\x36\xae\x33\x3e\x38\xfd\x9b\x5b\xaa\xb4\x9b\x65\x5f\x80\x70\x4f\xbb\x04\xf6\xc0\x98\x5c\xc4\x14\x88\xec\xe7\xde\x94\x65\x51\x10\x49\xda\x9c\x98\xbf\xcb\x99\xc5\x5c\xb6\xda\x57\xf0\xfa\x05\x4f\xcb\xf8\x73\x0a\x1d\x4f\x64\x0a\x10\xba\x0b\xdf\x8b\x22\x18\x38\xff\xf3\xe7\xdb\x5b\x0c\xd1\x72\xb3\xf9\x9f\x3f\xe7\x18\x04\xbd\xd7\x30\xfd\x39\x0e\x7f\x5f\xd3\x31\xf7\xc9\xf4\x4a\x1a\xd3\xf5\x90\x05\xe8\xb8\xd0\xaa\x79\x63\xfd\xfe\xb1\x0e\x5b\x99\x16\x65\x47\xa5\x61\x01\xee\x5f\xb6\x4e\x8a\xa2\xfe\xfb\x8b\xd3\x23\xf7\xbb\x28\x1a\xd3\x6f\x95\xc8\x24\xcf\xf1\x98\x53\x6e\x9c\xb7\x21\x6f\xd0\x2e\xf0\xb1\x3c\xce\x22\x5f\x53\xa7\x06\x72\x5a\x79\x22\x38\x99\x7f\x85\x1c\x15\x9a\x9f\xc2\x8b\x1d\xf8\x31\x4c\x71\x18\xcf\x05\xda\x02\x27\x41\x0e\x4d\x29\xe8\x78\xf1\x8d\x44\x46\xaa\x86\xae\x64\x2e\x2a\x73\xad\xd8\xd1\x80\x86\x7f\xb8\xfe\x22\x49\x52\xe8\xb0\x0b\xa2\x24\x1a\xb8\x66\x9d\xe7\x0e\x28\xe4\x79\xd7\xf4\x51\x95\x52\xba\x33\x0a\xf9\x25\x49\xe2\xe8\x88\x93\xc6\x91\xa0\x85\xb1\x58\x70\x6b\x6a\x28\x41\xb6\x25\x3d\x1c\x1d\x35\xa1\x87\xe7\x4d\xa8\xe1\x79\xb7\xb4\xf0\xf8\x6e\x48\x21\x27\x84\x12\x9e\x5b\x92\x42\x45\x08\x8f\x3b\xa4\x83\xc7\x5f\x9c\x0c\x4a\x8c\xcd\x10\xc2\x57\x06\x26\x77\x42\x0a\x4b\xf3\xb6\x17\xd2\x47\xc9\x4c\x53\x36\xf7\xc2\xa5\x3c\xb3\xf0\x40\x6b\x1c\x86\xde\x29\xc1\x54\x55\xe3\x3a\xa6\x9b\x5a\xc7\xff\x96\x74\xf3\x80\xd3\xcd\x1d\x41\x37\xe5\x26\xb7\xa6\x9b\x12\x64\xdb\xd2\xcd\x83\x06\x74\x53\xdf\xa7\xd6\xdf\x6c\x19\xdf\xc9\xdc\xa0\xed\x75\xb5\xed\x44\xe7\xe8\x8b\x13\x1d\xb9\xdd\x19\xa2\xf3\xc6\x40\x83\xbb\x24\x3a\xf5\x2a\x08\xb5\x12\x68\x9f\x92\x23\x13\x7b\x25\xc7\xb7\x13\x12\xa4\x0d\xd3\xa9\x68\xab\xf5\xfb\xbf\x5a\xbe\x3d\xf8\x2a\xe5\xdb\x1c\x56\xb4\xff\xa6\x1b\xee\xee\xf0\xab\x13\x74\x0f\x3b\xe4\xef\x8a\x42\x09\xff\x10\x73\xbf\x04\xd7\xa6\x23\x7a\x77\xb2\xae\x4e\x30\x3f\x83\xc0\x7b\x8f\x48\x26\x91\x7f\x35\x92\x39\x3a\xee\x40\x0c\x9e\xad\xf1\x1a\xc1\x2f\x24\x0d\x67\x10\xa4\xed\x17\xdd\x50\xce\x83\x3b\xa6\x9c\x5d\x49\xc6\x3a\xed\x3c\xe8\x90\x76\x1e\x7c\x3e\xda\xf9\x03\xcf\x5d\x1b\xa8\xdd\x04\xce\x4d\xb2\x76\x96\xde\x8d\xc3\x09\x18\x21\x9b\x0a\xaf\x09\x99\xbd\x5e\x84\xfe\x82\x36\x5b\x78\x57\xd0\xf1\x7c\x1f\xa6\xe9\x1f\x92\x72\x21\xcd\xed\x5e\x5c\xd6\x49\xef\x67\x90\x99\xef\x13\xe9\x3d\x30\x49\xef\x61\x07\x92\xb4\x49\x7a\x3f\xb3\x40\x6d\xc7\x93\x2d\x3f\xdc\x5a\xb4\xde\x6f\x28\x5a\xef\xdf\x3f\x9a\xa5\x10\xe2\x8b\xd0\xac\x06\x85\xfc\x6a\xc9\xdd\x95\x44\x09\xc3\x8f\xd5\x24\x89\x86\xd7\x36\xa5\x44\x25\x54\x48\xf4\xe7\xf4\x58\xb8\x8e\x17\xf5\x4b\x15\x0b\x61\x2c\x32\x74\xef\x81\xdd\xcc\x8c\xe8\x92\xc6\xec\x58\x83\x8b\xcc\x6c\xb9\x49\x7e\x65\x90\x9a\x92\x09\xec\x03\x57\x05\x35\x16\x1f\x23\xcd\xa7\x6d\x0f\xec\x01\x97\x02\x51\x2c\xb1\xd6\xae\x59\xda\x94\xd4\xb1\xc8\x81\x92\x95\x87\x92\x7b\x2a\x64\x9a\x45\xb2\x8e\x02\x07\x2f\xc2\xd4\xe1\x85\x7d\xfc\x24\x8e\xa1\xcf\xb2\xd7\x9b\xd8\xff\x5d\x29\xc4\xf3\xfe\x0c\xd4\x99\x43\x39\x35\xe8\xd5\x3c\x6c\x58\x73\xea\x97\x21\x4c\x51\x49\x0c\x3d\x80\x79\x7c\x5c\xf8\x43\x77\xa9\x1b\x1f\x2a\x12\xc1\x9c\x3d\x5c\x59\xee\x03\xb8\x97\x49\x70\xe3\xb2\x08\xf2\x28\xb9\x26\xf3\xe2\xff\xbe\x5b\x40\x01\x23\xa1\xb1\xb8\x0e\xa3\xc8\xb9\x84\x0e\x6d\x0a\x03\x02\xb3\x62\xf0\x0d\x19\x76\x35\x9b\x44\x00\xe3\x1b\x8a\x80\xf4\x9f\xa2\x29\xc4\x09\xbe\xdb\x69\x10\x30\xac\x56\x51\xc8\x1c\xd4\x9d\xd3\x6b\x0f\x41\xfb\x7c\x08\x71\x4c\x10\xfd\x87\xcc\xaa\x78\x1e\xf2\x8b\xab\xd0\x73\xd6\xf4\x3e\x73\x94\x67\x50\xea\x5c\x7a\x29\x0c\x9c\x24\x76\x5e\x78\x37\x10\x39\x87\x8e\x8f\x42\x0c\x51\xe8\x9d\xd0\x4a\x09\xc0\x61\xb3\xa4\x72\xf7\x12\xe2\x45\x12\xd0\x95\x75\x14\x33\xc9\x59\x19\x8a\xc2\x03\xdf\x43\x81\xab\x32\x53\xe9\xbe\xd7\x7a\x86\xaa\x5d\x20\x61\x98\x09\xf5\x51\x21\x1f\xd4\x9b\x8c\x73\x3e\x5a\x2c\xb4\x9e\x8e\xdf\xe8\x26\x73\x62\x0c\x09\x66\x47\x4f\x7d\xc0\xce\x92\x76\x86\x4c\x9f\x4d\xcb\xd4\xb8\x5f\x3a\x0d\x3f\xa9\xe2\x02\xe4\x27\x6a\x80\xb6\x49\x3c\x2b\xea\xea\x98\xec\xc1\xae\x5e\x23\xb1\x38\xc7\x86\xbd\x12\x82\x18\xd1\xee\x53\x65\x1f\x8c\x61\x7c\xc3\xa1\xaa\x82\x58\x8a\x9c\x26\xdb\x5c\xde\x55\x3a\xa1\x66\xb8\xe1\x36\x57\x17\x59\x59\x08\x56\xc2\x59\x9d\xde\x22\xbe\x62\x04\x5c\x5e\x91\x82\x79\xdd\xed\xe9\xbf\x59\x3d\x95\x43\x2a\x70\x45\xa1\xff\xc1\xcd\xc5\x2b\xef\x00\xe5\x45\x98\xac\x60\x9c\xcb\x37\x6a\xd9\xe7\xd3\x20\xd0\xe8\x4a\x11\x6c\x8b\x6c\x0d\x6f\x32\x6b\xaa\x02\xff\x91\x06\x70\xfd\x5b\x5b\x48\x41\x0b\x4d\x83\x2b\x4a\x7b\x64\xdc\x41\xe3\x04\x87\x3e\x7c\xac\xef\x80\xee\xf3\xce\x61\x63\x2e\xd6\xd6\x8f\xea\x80\x96\xb1\x90\x12\x9b\x08\x4d\x21\x44\x8b\x6d\x0d\xf9\x33\x80\x11\xc4\x9c\x6e\xed\xe5\x96\xac\x11\xaf\x83\x9c\x43\x3b\x27\x2e\x7a\xa0\xc0\x7e\xb1\x6f\xb4\xe5\x9b\xda\x28\x51\x26\x48\xf1\x05\x98\xdb\xcc\x68\x9e\x46\xc0\x0d\xe8\x35\x51\xe3\x70\x28\xd3\x20\x8a\x01\x2f\x06\xd1\x2a\x12\xc1\xbd\xab\x4a\xb2\x12\xe9\x77\x0b\x69\xe4\xab\xc4\xb8\x96\x6f\x20\xde\x32\x5d\x7a\xed\x25\x71\x5a\xdc\x6a\x41\xc5\x34\x5f\xdb\x6a\x87\x20\x3e\xf2\xe1\x0a\x3b\x5e\xec\x3c\x17\xa7\xe0\x7f\xfe\x9c\xca\xd2\xb9\xeb\x34\x8c\xe7\x39\x16\x04\x38\xe9\xda\x5f\x38\x5e\x4a\x59\x11\x67\x85\xe0\x2c\xfc\x08\x53\x5a\xd1\x69\x81\xf1\x8a\xf3\x26\xe9\xf0\x73\x81\x8a\x39\x50\xd7\x4e\x8e\x90\x85\x96\xac\x2a\xbb\x43\x13\x26\xa5\xe5\x15\x64\xc5\x57\x1e\x67\xeb\x0f\x98\x74\x68\x84\x40\xe8\x65\x60\xb5\x02\xb0\xc0\x7d\xec\x27\xcb\xa5\x17\x07\xa9\xa2\x3a\x4a\xea\xda\xa6\x22\xec\x53\xbd\x1e\x71\xc1\x55\x5d\xf6\x38\x03\x86\x1a\x95\x74\x9b\xc2\x21\x57\x0e\x97\x42\x83\x52\xe0\x39\xc4\x38\x8c\xe7\x84\x48\x20\x0c\x83\xc7\x9c\x6d\xee\x06\x32\x6f\xa1\x17\x50\xee\x9b\xd6\xc5\x6d\x02\x9a\x56\x79\x9a\x1b\x64\x9b\x6b\xa0\xe3\x90\x1c\xd0\x11\x60\xf4\x7e\x10\x84\x5e\x94\xcc\x73\x65\x6c\x94\xfb\xbe\x22\x5b\x03\x76\x43\x70\x66\x9c\xdc\x61\x09\x8d\x95\x7d\xe2\xa1\xd0\x73\x1b\x5e\x4e\xe0\x42\xc5\x60\x5b\xe5\x28\x29\x65\xbb\xcf\x82\x10\x6b\x04\xc7\xad\x53\xd9\x26\x77\x49\x23\x38\x93\x07\x5e\xee\x32\x3b\xfa\xb2\xa6\x82\x76\xa7\xf1\xcb\xf0\x82\x57\xe7\x2d\xbc\xfb\xbb\xbe\x4c\xec\x57\x49\x0e\x02\x16\xbe\xab\x06\x8e\xdd\xc1\x5d\x51\x83\x05\x9a\xd1\xf0\x14\x8d\x05\xe2\x15\x97\xd6\x97\xcb\x10\x0b\xb6\x67\xcf\xce\x5a\x78\x41\x50\xc5\x57\xb4\x48\x53\xd5\x10\x17\xb2\x91\x36\x3c\xe5\x97\x05\x29\x6c\xfb\x30\x6e\x7a\xd8\xef\xf2\xb2\x12\xe8\xa5\xc4\x85\x91\x96\x6e\x4c\xee\x48\x36\x08\xc7\x22\x3c\xef\x6b\x9c\x63\x2e\x14\x29\x4c\x9f\x86\x7a\xc9\x8f\xa9\xd6\x9d\xa6\x8a\x62\x5a\x3f\x53\x48\x29\x64\x72\x0b\x86\x12\x93\x2e\xe7\x76\x79\x8c\x34\x25\x58\x79\xd6\x96\x6b\x13\x35\xa0\xe4\x2f\xaa\x73\xef\x0a\x16\xc5\x9c\xd6\x80\xad\xef\xc5\xbe\x54\x04\x6f\xbf\x6a\x04\xa9\xcc\x78\xd7\x8b\x3e\xa3\xb3\x2e\x5b\x76\x8d\xcb\xa6\xa4\x30\xa1\xaa\xf7\x45\xb5\x23\x25\x01\x8d\xac\xd0\x36\xa7\x1e\x09\xd7\x1d\xeb\x59\x22\x14\x88\x5c\xe0\x2e\xd7\xe4\x44\xff\xbe\x86\x54\x5d\x44\x1f\xcd\xb1\x96\x10\x82\xc5\x46\x52\x7d\x29\x8d\x86\xd4\x94\x48\xc2\xc8\xe6\xc6\xe4\xd0\xb9\x9a\xb1\xb2\xc0\x86\x23\x62\xe7\xd2\x9c\xe7\x46\xde\x95\x52\xf3\x4d\xd7\x0f\x98\x08\xba\x4b\xcd\x28\x30\xe0\xfa\x5e\x6c\x71\xa1\xe3\xd9\x29\x54\x10\x67\x37\xe5\x17\xcb\xc3\x22\x5b\x04\x6d\xca\x37\x43\xf8\x11\xc3\x38\xe8\xdd\x62\x6f\xce\xe6\xe1\x82\x94\xea\xcc\xcf\x17\xc9\xf5\x1b\x03\xb9\x4f\x1e\x8e\x00\x27\x6d\x27\xb7\xa6\x05\xf0\x44\xc5\x62\x02\xdc\xbf\x45\x10\xaf\x51\xec\xc0\x21\x82\xd4\xce\xd0\x7b\x2c\x0c\x7f\x8f\xe7\x00\xf7\x37\x40\x18\xf8\xac\xdf\x3d\x84\xc3\x59\x18\x07\xdf\xdf\xf4\xb8\x7d\x92\x7c\xe1\x05\x81\xd1\x18\xc4\xfd\xdb\x87\x3d\x3c\x9c\x43\xdc\x83\xfd\x4f\x9f\x2e\xa6\xfd\x61\x18\xfb\xd1\x3a\x80\x69\x2f\xee\x3f\x7a\x14\x0f\xc3\xf4\x15\xbc\x7e\xf4\xa8\x87\x87\xab\x75\xba\x60\x11\xa2\x3d\x08\xe2\x3e\xc0\xc3\x2b\x2f\x0a\x03\x02\x91\x7e\x7f\x03\x98\x94\x9c\xeb\xbe\xac\xf7\x1e\xe6\x75\xc4\x8a\xbb\xdd\x6c\x3a\x89\x81\xcd\x45\xbe\x02\xf7\xc9\x3c\x0a\x97\x4b\x88\xd4\xc7\x66\x38\x2c\x01\x25\xc5\x05\x80\x80\x07\x22\x90\x82\x10\x24\x60\x0d\x7c\x10\x80\x25\x58\x81\x19\xb8\x04\x0b\x70\x05\x6e\xc0\x1c\xbc\x06\xef\xc1\x1b\x70\x0d\x9e\x81\x0f\xe0\x23\xf8\x0d\x9c\x81\x57\xe0\x1c\xfc\x0b\xbc\x04\x4f\x1f\x88\x1e\x9d\x77\x0c\x24\x00\xf5\x6f\xe3\x47\x8f\x8a\x62\x6d\x31\xb8\x85\xf1\x7a\x09\x11\x39\x3b\x27\xf1\x50\xfd\x00\x7e\x12\xcf\xc2\xf9\x5a\xbc\xd1\x7f\x82\x6b\x14\x62\xfe\x5c\xfc\x09\x58\xa0\x6e\x3c\x0c\xe3\x10\x87\x34\xee\x19\x7d\x67\xfc\x1a\xfa\x5e\x14\xf5\x50\xff\x84\x45\xef\x6e\xfa\x1b\x39\xd9\x17\x62\xb2\xc0\x63\x60\x88\x26\xb7\x9b\x07\x1c\x25\xf9\xdc\x3f\xc0\x9b\xb4\x87\xfa\xc3\x59\x82\x9e\x79\xfe\xa2\x67\xc4\x12\x47\x17\x70\x3a\x41\x17\x70\x4a\x76\x2c\xd2\x96\x31\x79\xf8\x50\xff\x09\x22\x63\x21\xf4\xad\xb1\xb2\x1e\xcf\x8b\x15\xc6\x4e\xf4\xe9\x53\xa4\xcf\x9f\xa0\x50\x24\xd7\x3b\x79\xb8\xd3\x07\xd1\x24\x1e\xa6\x51\xe8\xc3\x5e\x7f\x88\xe0\x15\x44\x29\xfb\x2b\x58\xfb\x50\x9b\x20\xdd\x05\xbe\x1a\xc4\x51\xf5\xd3\xa7\x78\xd3\x07\x51\x1f\x78\x8f\x1e\x31\x80\x3c\x9c\x4c\x8c\xf1\xe8\x70\x74\x36\xe6\xf3\xef\xa2\x3c\x54\x3d\x01\x55\x60\xbc\xe4\x81\xd2\x7d\xc0\xfe\x9d\xe4\x47\x28\x46\x8c\x88\x2e\x6f\x1d\x91\x7f\x37\x5d\xc5\x6a\x9f\x96\xc7\x6a\xff\xed\x6f\xaf\xff\xfe\xcf\xf5\x65\x41\xf5\x55\x6f\x15\xaa\x5b\x0b\x41\x2f\x48\xe2\xe8\x86\xdd\x2d\x2c\xc6\x1a\x7e\x84\xfe\x1a\x73\x52\xef\x53\xe9\x74\x09\xd3\xd4\x63\x57\x11\xd9\x66\x7a\xdd\xcb\xf6\x31\xbc\x3e\x15\x37\x9e\xd0\xd7\x09\x31\xcc\x9b\xb1\x3a\xa0\xaa\xb1\xf8\xe3\x49\xe0\xd3\x7a\x71\xda\x3d\xa4\x82\xbb\x65\xe4\xf7\x13\x6f\x8d\x93\x59\x18\x45\x22\x8b\x0e\x75\x05\x41\xe5\xb1\xdf\x76\xa1\x91\xde\xe8\x87\x2c\xf0\x2c\x63\x70\x3c\xe2\x55\xca\x0d\xa9\x40\xe4\xee\x61\xf3\x54\x33\xd2\x67\x5c\x38\xbd\x8c\x11\x48\x97\x2c\x5c\x35\x23\x9e\x81\x5e\x73\x56\xbb\x10\xb5\x52\x68\x39\x98\xa9\xa8\x08\xc2\xeb\xcd\x89\x1a\x60\x99\x4a\x94\x19\xc6\x2c\x97\x41\xb7\xac\xb1\x9a\x59\x43\xf1\xa5\xbe\x50\xc0\xad\xbd\x4d\x1d\xfb\x8c\x24\xe0\x32\x31\xb2\x66\x55\x0e\x20\xf6\x42\x2a\xfa\xbb\xc1\x9a\x59\x30\xa1\x23\x81\xeb\xcc\x92\x75\x1c\x9c\x6c\xe5\xfb\xc7\x17\x27\x70\x56\xa8\x23\xc8\xef\x19\x37\x98\x0e\xd6\x2b\x72\xed\x29\x23\xc7\xe8\x40\x0d\xc5\xb0\x5f\x5f\x47\x66\x07\x34\xf7\x01\x61\x4f\xc4\xbc\xba\x7e\x33\xb0\x99\xc2\x24\xed\x7a\x1f\x5c\xb8\x3f\x2a\x69\xbf\x8d\x72\x5a\x97\x20\x52\x8c\x12\x9a\x2e\x46\x1e\x1e\xa9\x55\x65\x1e\xd3\xe9\xc3\x42\xfd\x53\xc3\xfc\x84\x74\xea\xdf\x0b\xb1\x7f\xdb\x89\x97\xd9\x08\x4f\x63\x0d\x61\xbc\x88\x50\xc3\x1b\xbe\x1a\x5e\x94\x3f\x4c\x1d\xc6\xfd\x0e\x74\x87\xb9\x95\x17\xa2\xa1\xf3\x26\x82\x5e\x0a\x85\x6b\xb8\x13\x84\xb3\x19\x44\x30\xc6\x8e\x9f\x2c\x2f\x45\xd3\x64\x26\xfd\xec\xa9\x41\x9b\xf9\xbb\x51\xa5\x9d\x1c\x3a\x75\x70\xe2\xc0\x20\xc4\x86\xfb\xb9\x7c\x3d\xec\xac\x30\x80\x45\xf0\xc9\xba\x5d\x35\x71\x65\xfd\xaa\xcf\xc7\xde\x5d\x9f\x8f\x67\x64\x82\xdd\x1d\x8a\xbd\xcf\x75\x28\xde\x2d\x20\x82\xce\xb5\x97\x52\x6c\x24\x8b\x70\x52\xef\x8a\x60\xe4\x4d\xb2\x46\x26\x5a\xda\xc9\xb5\x8d\x5a\x6b\xb5\xef\x8a\xe8\x78\x6b\x97\x0e\x4d\xcf\xa1\xdc\x0f\x28\xd0\x47\xb9\xd1\x52\x95\x71\x8d\x74\x72\xa2\xa7\x69\xb0\x4f\xaa\xa1\x2f\x76\xa7\xa7\xb3\xca\xdb\x20\x9b\xd1\xa9\xa2\x42\x4c\xfd\x4b\x9b\xb2\x42\xcd\xef\xec\x3d\x6d\xe7\x09\x4b\x55\x64\x2a\xa6\xbe\xd7\x44\x08\xd0\xa8\x20\x25\x04\x5a\x61\x6a\xa3\x97\xac\xff\x4f\xbd\xaa\x22\xda\x88\x22\x57\x78\x49\x8e\xb3\x52\x8e\xc0\xb6\x4e\x4e\xb4\x64\xd5\x4f\xcd\x8b\xa6\x0d\x2a\x37\xb3\x81\x30\x85\xc4\xe0\xda\x43\xdc\x08\xa2\x52\xba\xb1\xbd\xcc\x5a\x40\x8e\x2c\x76\x0c\xc3\x9d\xc4\x3d\x87\x58\xbb\x0f\xb1\xc8\xaf\x36\xda\xd1\xa9\xf0\xe7\xd0\x6e\xeb\x96\x0e\xbb\xa9\xa3\x26\x1a\xb7\xb3\x9d\x17\xb9\x8c\xe4\xe1\xa3\x68\xc7\x0e\x3f\x65\x76\x57\xca\x86\x04\xbf\x73\xe3\x79\x3d\xca\xff\xcb\x02\xc6\xd4\xc1\x99\x89\x10\x8c\xfd\x79\x5e\xb1\x60\xe6\x39\x4d\x9d\x15\x99\x62\xc8\xf1\xa2\x88\xf2\x37\xc2\xb6\xbe\x4a\xa2\xd0\xbf\x31\x7c\x0d\xfc\x35\x22\x9c\x52\x74\x43\xae\x16\xe6\xd7\x68\x0e\x36\x74\x4e\x11\xa4\x3d\xa7\x6b\xfe\xc7\xb5\x17\x53\x6f\xc3\x94\xec\x02\x2e\x02\x7f\x67\xbc\xd2\x5d\x5a\xe7\x0b\x7c\xa6\x76\x88\x1c\x1a\xcf\x21\x4a\x68\x11\x81\x02\x37\xaa\x5d\xc3\x8d\x8a\x51\xc9\xbc\xc5\xa1\x60\x8b\x09\x0a\x6b\x90\xcb\xe5\x56\x2a\xcc\x2e\x58\xea\x24\xd7\xc6\xc8\xc0\x2b\x01\xd5\x51\xf9\x3b\xd4\x59\x05\x64\x55\xff\x8d\x76\x78\x94\xb7\x79\x59\x9b\x8d\xaa\xca\x0c\xed\x14\xfb\x71\x50\x25\x02\xf3\x9a\x95\xa8\x92\xd5\x06\x68\x44\x97\xc8\xf9\xee\xe3\x3f\xdd\x4a\x8d\xc2\xe6\xf1\x5f\x1e\xff\xe9\x36\xf0\x37\x8f\x95\xf2\xdd\x42\xbd\x75\x0d\x84\x16\xa8\xc4\xd5\x05\xba\x3e\x61\x5a\x4f\x09\xc0\x54\xda\x42\x4c\x11\x3c\xda\xb8\xc8\x51\xaa\x90\xef\xa3\xb7\xfa\xba\x9b\x88\xd5\x4e\xc1\x29\x83\xcf\x3e\x2b\x40\x5f\x09\x28\x54\xc0\xb3\xd2\xd1\xa2\x14\xd6\x46\xe8\xda\x67\x07\xf7\x5f\x24\x8c\x75\xab\x94\x05\xc6\x1a\x5c\xdb\xc2\xf3\x8d\xb6\xd2\x6e\x41\xca\x88\x68\x98\xf2\x80\xb2\x9a\xf1\x7e\x45\x82\x4f\xe5\x06\x15\xb3\xc4\xd5\xe1\x88\x07\x39\x56\xb8\xed\x7e\x4b\xb1\x3d\x23\x58\x87\xf1\x2c\x69\x77\xa1\x1d\xc9\x24\x4f\x1d\x08\xd6\xb5\x5c\x18\xc9\x7f\x67\x28\x49\xd3\x81\x8a\xd5\xf2\x93\xe5\x72\x1d\x8b\x80\x86\x38\xc1\x4e\xba\x5e\xad\x12\x84\x61\xd0\xde\xed\xbb\xb2\x08\xc4\x71\x17\xe2\x79\x5d\xcf\xf6\xf2\x25\x87\xa9\xb9\x6a\x27\x59\xe3\x34\x0c\xa0\x93\xcc\x28\x5f\xb6\x42\xe1\xd2\x43\x37\x0e\x39\xf0\x3e\xd5\x5e\x0d\x9d\x7f\x0a\x1e\x2e\x89\xa3\x1b\x1a\x71\x72\x19\x41\xc6\x6d\x45\xd0\xc7\x2a\x7c\x97\x29\xc6\x78\x68\x88\x17\x07\xb6\xc0\x8f\x74\xd8\x31\xa0\xab\xb3\x7f\x95\x86\xfd\x8e\x34\xbf\x90\x30\x7d\xe9\xc5\xde\x1c\x06\xdf\xdf\x9c\xbd\x7d\xda\x34\xf5\xba\x53\xed\xa9\xed\xaf\x53\x9c\x2c\x07\x08\x66\x48\xa9\x3c\x5f\x9a\x98\x56\x87\x66\xd5\x0a\x0e\x1c\x01\x2e\xb1\x1b\x4c\x22\xe7\x0a\xad\x9e\xd5\x92\x63\xe4\x84\xb4\x90\x95\x2c\xe3\x28\x8b\x40\x61\x1a\xeb\x15\xdb\x2c\x9d\x12\xb2\xd6\x1f\x1e\x25\x2c\x3d\x0e\x9e\x18\x2e\x07\x4f\x34\x0f\x85\x27\x79\xff\x85\x27\x79\x67\x84\x27\x59\xaf\x87\x27\x05\x7e\x12\xd2\x6a\xa3\x47\x2e\xfb\x5a\x5c\xb1\x7e\xf1\x31\xc8\xc5\xe6\xb5\x2e\x8a\x27\x53\x9f\x98\xdc\x0d\xb5\xa3\xca\x3e\x1b\xcf\xcc\xc4\xba\x99\xa7\xe7\xf9\x67\x46\x00\xb8\x78\x65\xc9\x63\x64\x7b\x75\x5e\xf0\x22\xd7\xa7\x86\x05\xca\x35\x4a\x3d\xd3\xee\x47\xe5\xc9\x23\x8d\x4d\x25\x42\x7a\x59\x38\xa3\x63\x17\x20\xac\xce\x5e\xd2\xc1\x6b\x4c\x67\xf3\x3c\xa6\x5e\x07\xfa\x74\xb4\x69\x67\x9d\x8a\x34\x4f\xb2\x02\xd1\x48\xf7\xa6\xaa\xa0\x5a\x59\xe1\x6d\x74\x60\xce\xd7\x32\x1b\x2e\xcd\x71\x2f\x29\xbb\x30\x97\x3f\xa6\x49\x2c\x04\xa8\x2c\xc7\x53\x21\xe8\x55\xcb\x4a\x76\xbe\xf2\xa0\x8c\x21\x6a\xcb\x17\xe9\xc5\x21\x9e\x3f\xa5\x84\xce\x8b\x93\xf8\x66\x99\xac\x5b\x73\xad\x3a\xf5\x99\x85\x68\xc9\xcc\x0d\x52\x6d\xc6\x28\x8e\x30\x5c\xd3\xdc\xfd\x45\x0a\x05\xe6\x05\x93\x51\x40\x7c\xd7\x36\x12\xae\x96\xc6\xa0\x4d\xe7\xc5\x4a\x03\x2a\x68\xab\x90\x9d\xfa\xc8\x58\xae\x5a\x30\xb1\xf1\x48\x3b\x65\x7c\xa8\xba\xb8\x48\xfe\x7b\x4a\xbf\xb1\x2f\xa9\x28\xc8\xaf\x3c\xfb\x5e\x43\xc0\x73\xcc\x68\x0d\xf8\x23\x11\x54\x34\xd0\x11\x2e\x87\x69\xc0\x7d\xa2\x1c\x28\x9e\x28\xed\xc7\x85\x2a\xca\xb9\xcf\xab\x4d\x14\xd2\x4c\xfb\xea\xf7\x01\x11\x30\x8a\xf8\xd0\x36\xbe\xfa\x8d\x53\x15\x14\xd0\x91\x7a\x36\x43\xab\xdc\x45\x29\x82\xc1\x92\x35\xe6\xc8\xb2\xe2\x8c\x50\x98\x23\x51\xd6\xd7\xca\x7a\xb5\xb3\x1a\x76\x6c\x34\x2c\x95\x6c\x94\xe2\xf5\x8c\xb2\x94\xce\x5b\xce\x52\x76\xae\xe2\x14\x2b\xfb\x4c\xe6\x45\x43\xa9\x1c\xa6\xce\x55\x08\xaf\x85\xdc\xe1\x7b\x44\x64\x0e\x31\x79\xbe\x64\x58\xe1\xe0\x05\x4a\xd6\xf3\x85\x11\xc9\x95\x85\x89\x13\xc6\xcc\x3c\xf9\xd3\xfa\x12\xa2\x18\x62\x98\x3a\x7e\xb4\x4e\x89\x70\x73\x67\xf0\xfa\x21\x49\x70\x47\x98\x50\x06\x31\x77\xab\xa8\xac\x0f\x47\xe9\x63\x1f\x05\xa9\x8a\x38\xb2\x05\x14\x55\x06\x22\xf1\xa9\xbd\x80\x1e\x8a\x9d\x65\x82\x88\x84\x98\xac\xb1\xc3\x84\xa8\x32\x46\xa9\x33\x6b\x68\x7d\x63\x68\x45\x2c\x2c\x41\x38\x33\xfa\x43\x5a\xf0\x5a\x0a\x65\x63\xb0\x5b\xe9\x63\x5e\xa5\x58\xce\x69\xa8\xb2\x34\xb6\xd2\x13\x7d\xe6\x02\x77\x16\x0b\xef\x72\x59\x57\x87\x79\x6c\x33\xdf\x71\x2f\x0e\x94\xaf\xf6\x1a\x85\xba\xbb\xba\x74\x42\x37\x8a\xee\x30\x0e\x3f\x85\x78\xc0\x90\x86\x15\xe1\x11\x95\x7b\xa4\xa3\x07\x35\xad\x23\x19\xe9\x96\xd2\xf4\x50\xdb\x7b\x7c\x9b\x7e\xde\x11\xc4\xce\xdb\x49\x4f\xba\x7a\x53\x1f\x73\x18\x00\x94\x7d\xe0\x65\x1f\x44\xd9\x07\x69\xf6\x41\x98\x7d\x90\x64\x1f\xac\xb3\x0f\xfc\xec\x83\x20\xfb\x60\xc9\x1f\x84\x31\xf5\xfc\xe4\x92\x60\xcf\x45\x90\xd6\xce\x4f\xd0\x8d\x16\x2c\xd9\x07\x2b\xf1\x3d\xdb\x13\x30\xcb\xfc\xbe\xcc\xfc\x5e\x64\x7e\x5f\x65\x7e\xdf\x64\x7e\xcf\x33\xbf\x5f\x67\x7e\xbf\xcf\xfc\x7e\x33\xa1\xb5\x98\x1c\xe6\x2b\x9f\x3a\x58\xf8\xa3\xde\x52\x47\x54\xb4\xf6\x71\x82\x32\x6e\xd7\x0f\xd2\xf5\x0a\xa2\xde\x70\x38\xf4\xd0\x9c\xc6\x6d\xa6\x7d\xf0\xae\x47\xb8\x6b\x3d\xa8\xe0\x1a\x90\x27\xea\x8d\x2e\xf0\x3f\xcb\xbc\xcb\xc9\xf7\x1f\x32\x0d\xa4\x62\xe1\xa3\xbd\xd7\x73\x17\xfc\x56\xd2\xe7\xb9\x0b\xce\x32\xaf\x75\xcd\xc4\x2b\x6b\xa7\x9a\x16\xe1\xbc\xb8\x6f\xad\xd5\xbf\x32\xad\xb2\x9a\x28\xf0\x92\x37\xf0\xa8\xc3\x30\xe8\xa1\x09\x37\x84\xf7\xc3\xb8\x17\x4f\xe8\xcb\xef\xec\x3e\xc4\x04\xf2\xdc\x71\xd8\x03\x9a\x2f\xfa\xc3\x1d\xd3\x03\xfd\xe1\x8e\xf2\x3a\x7f\xb8\xb3\xe9\x9f\xc4\x17\x68\x3a\xf1\xe4\x9c\x08\x5e\xba\xe0\x29\x9f\x08\xf9\xdf\x21\x73\xe0\x3a\x7b\xfb\x94\xcd\x76\x49\x6b\x5c\x6d\x44\x8a\x80\x5e\xff\x96\xb6\xf2\xd0\x3c\x1d\x8a\x87\xdf\xe5\x1f\x99\xf8\x70\x42\x1b\x08\xdf\x53\xf3\xdd\x46\x88\xbc\x99\xae\xd9\xc3\xef\xf2\x8f\x1a\x75\xcd\x1f\x9b\x5d\xb3\x87\x8f\x1e\xe5\x9f\x65\xbe\xb7\xc2\x82\x75\x95\xd9\x4d\xba\x5b\x43\x02\xce\xec\x9b\x5e\x7f\xc3\xfb\xe6\xd1\x16\xf1\x70\x85\xe0\x15\x8c\xf1\x53\x76\xb6\x7a\xc2\xd1\xfc\xe1\x64\x02\x87\x8c\xfc\x0e\x99\x5f\x89\x70\x72\x9f\x90\x37\x81\x87\x3d\xfe\x9c\x41\x85\x22\xcb\x90\x5c\xdf\xbd\xfe\x09\xd9\x24\xd3\xae\xc7\xce\x29\x21\xa1\xf1\x04\xb3\xaf\xd7\x71\xf8\xbb\x8c\x36\xe9\x0f\x71\x72\x8a\x90\x77\xd3\xeb\x0f\x67\x61\x84\x21\xea\xc1\xc9\xb7\x0f\x69\xe1\xb6\x18\xfa\x78\xb0\x42\xc9\xc7\x1b\xe6\x0d\xbe\x18\xcc\x3d\x0c\xaf\x69\x68\x0f\x86\x68\x49\xb1\x3d\x9e\xcb\xa7\x53\x15\x34\x02\x87\x3f\x85\x71\xd0\xef\xd3\x62\xd1\x3d\x3a\x89\xc9\xb7\x70\x48\x86\x1c\x46\x89\xef\x45\xf0\x2c\x59\xae\x3c\x04\x7b\x98\x3e\xec\xf7\x1f\xc4\x93\x8b\x5b\x76\x53\xfc\xc5\xdd\x4c\x87\xec\x5e\xea\xc5\x8c\xfe\xa3\x49\x9c\x89\x92\x81\x43\x45\x3c\xfa\x0f\xd0\xa7\x4f\x3d\x34\x61\xdf\xeb\x6f\x36\x20\x9e\x5c\x20\xad\x37\xd6\x9d\x67\xe9\x2e\x43\x6f\xfa\x0f\xbc\x4f\x9f\x7a\x9e\xec\x33\xf3\x9a\x76\xec\xe9\x1d\xb3\x83\x23\x68\xdd\x24\x66\xbf\xd5\x54\x26\x88\x3d\xc9\x74\x34\xf1\x36\x86\xe1\xd0\xb2\x61\x6a\x87\xee\x1e\x9a\xe7\x05\xb0\x3c\x6f\x09\xc9\xf3\x32\x38\x9e\x17\x41\x91\x93\xf6\x0c\x10\xcf\x6d\x20\x3c\x97\x00\x54\x96\xc2\x6e\x60\x08\x8a\xc1\x24\x87\xb2\x43\x4b\xbe\x6e\x07\x34\xad\xf7\x42\xd8\x99\x43\x58\x40\xa8\xee\x32\x13\x8a\xf2\x43\x0b\x30\xd5\x3b\x6f\xc3\x48\x90\x20\x57\x2c\x04\x05\x4d\xe0\x90\xc9\x11\x6c\x19\x20\x7a\x90\x5e\x87\xd8\x5f\xf4\x10\xad\x05\xdf\xbf\xa5\x45\xab\xb5\x5b\xfd\x84\x3e\xc8\x5e\xe5\x27\x7a\xb3\x73\x4b\xa3\x73\xa3\x89\xba\x4e\x73\x2d\xb5\x57\x7c\x26\xde\x24\x9a\x20\x16\xfb\x23\x98\x53\xf7\xe1\x04\xdf\xac\x60\x32\x73\xbc\x47\x8f\x7a\x9e\x78\xcd\xb6\x19\xf0\x5f\x13\x0f\x34\x5c\x04\x21\xc8\xc6\x99\xe7\x04\x54\xed\xaa\xd7\x1f\xb2\x34\x41\x8f\x1e\xf5\x22\xbe\x8b\xde\x26\x43\x28\x2e\x22\xb9\x79\x66\x6f\x12\x65\xfb\xfd\x07\x97\x08\x7a\x1f\x1e\xd4\x00\x9b\x9c\x14\x3f\x42\x8d\xe6\x24\x8e\x5d\x76\x4a\xa2\xaf\xd2\x19\xd5\xdb\x25\x39\x3f\x85\x9f\x8d\xa6\xa8\xa1\x75\x76\x96\x5a\x8f\xda\x44\x37\xe4\xdd\x05\xdb\xda\xe9\x24\xda\xe0\xe1\xc2\x8b\x83\x08\x3e\x23\x97\x6f\x0f\xf6\x37\x1b\x70\x3d\x79\xd1\x7b\x33\x5c\xa1\x04\x27\x04\x4f\x74\x86\xf5\x22\x9e\x82\xdb\x2c\x33\x65\xb2\x5a\x1a\x6b\x05\xb4\x00\xb1\x13\xc2\xce\x6d\xfa\xe0\x59\xb6\x73\x9d\xe7\xbd\x40\xdb\x76\xff\x21\xdb\x7d\x8e\x6d\xbe\xf0\xb6\x1d\xe3\x63\x76\x0c\xc9\x79\x5f\x44\xdb\xf6\xfd\x5b\x01\x78\xce\x5d\x70\x91\x6e\xdb\xf9\x59\x19\x70\xc8\x08\xe1\xb6\x23\xbc\xca\x8e\x60\x38\xc4\x24\xdb\x76\x7f\x6e\x87\x8e\x26\x5f\x5c\xac\xb7\x1d\xe3\x5f\x25\x40\xd2\x07\xf2\xb7\x1d\xe8\x65\x76\xa0\x9c\x2c\x74\x11\x6c\x3b\xc6\xd3\xec\x18\x4c\xb6\xb9\x58\x6e\xdb\x71\xa6\x5b\x99\x2c\x0d\x5c\xac\xa6\x80\x8b\x67\x73\x88\x5f\x5f\xc7\x42\x3c\x13\x49\x66\x13\x54\xf0\x69\x1f\x68\xcf\x2d\x23\x88\x40\xcc\x8b\x59\xe3\x11\xf8\xa7\x55\x23\x48\x57\x81\xcb\xc6\x23\xf0\x4f\xcb\x47\xb0\x48\x4e\x2e\xb8\x58\x34\x1c\xcc\xd6\x4b\xf9\xb8\x72\x5d\x57\x0d\x87\xaa\xb5\xaa\x8c\xe3\x24\xb8\xb8\x69\x38\x4a\xa6\x83\x3a\xa3\xbd\x92\x14\x77\xde\x6a\x30\xf1\x7d\x9d\xb1\xde\xe8\x24\xec\x75\xab\xe1\xb4\x2e\x2a\x46\x14\x99\x96\xdf\x37\x1d\x87\x7d\x98\xe9\xfd\x8d\x9e\x82\xe0\x2d\x28\xcb\x0d\x71\x0a\xde\xf6\x37\xfd\xfe\x83\x66\x39\x0a\xa2\x30\xc5\x8f\x69\x9e\xd5\xfb\x52\xa3\xfb\xf0\xf9\xbb\xbf\xbf\xfd\xd7\xfe\x91\x3d\xee\x1b\x87\x38\x62\xbe\x35\xdc\xe5\x85\x87\x5b\xe7\x22\xa9\x99\x81\xee\xa8\xc0\xad\xf1\x20\xf3\xb7\x99\x4c\xd9\x92\x72\xf6\xc0\x4c\x76\x1c\x16\x35\x71\x81\x2b\x02\x06\xde\xae\xa3\xac\xf3\x70\x23\x07\x04\xbd\x0e\xb8\x9e\xd8\x77\x8f\x9a\xb7\xb3\x81\x34\x64\x23\x59\x2d\x78\x47\x06\xa8\x3b\xf9\x8c\xdf\x63\x33\xd1\xaa\x99\x12\x35\x9b\xc6\xe6\x90\x7e\x66\x2d\x2c\x6e\xb5\xf9\x99\xfe\xf8\xc2\xcd\x65\x94\x4f\xa2\x33\xb6\xa7\x7b\xcd\x7b\xed\xe7\x4c\x2f\x45\x96\x26\xbb\x1b\xc8\x8e\x7d\x3c\xb6\xd9\xed\x63\xaa\xff\x09\x53\x20\x17\x4b\x53\xb5\x9b\x9e\x50\xdc\xfa\x1c\xa6\x05\x19\xaf\x55\xc4\xc7\xd8\xea\xff\xc4\xbf\x0f\xd6\x50\xe4\xa5\x5e\x84\xf3\x05\x4c\xb1\xb3\x42\xd0\x87\x01\x8c\x7d\x3d\x46\xfc\x12\x46\xc9\xf5\x49\x5d\x1b\x76\x6d\x28\x51\x6c\x6f\x0f\xa4\x57\x09\xc8\x2c\xb4\x00\x46\x71\x82\xef\x23\x9c\xb4\x1c\xa9\xe5\x4b\xc8\x64\x14\xb7\xe7\x39\xbf\x0e\xf1\xa2\xee\x7a\x84\xa5\x38\xc4\xa9\x8c\x3e\x42\x84\x98\x0c\xcb\x6c\x72\x8d\xf2\x18\x56\xb8\x3e\x8c\x44\x8f\x25\xc6\xba\xdf\x85\xad\x4e\xa4\x8e\x42\xba\xf1\x8d\x59\xd9\x44\xde\xa4\x19\x4a\x96\x03\x18\x63\x14\xc2\x94\x1b\xdf\xb6\xb1\xa9\x65\x2f\xad\x16\x19\x94\xde\x8b\x4b\xe7\x75\x1c\xdd\xc8\x66\xbd\x6d\x53\xfe\xd0\x99\x75\x93\xf2\x47\xa5\xef\x49\xbe\xa6\xf4\x3d\xeb\x3f\xd2\xf7\xfc\xef\x48\xdf\xe3\x97\xb3\x71\xf1\x2a\xda\x19\x9f\x9e\xc7\x76\x36\x4e\x25\xc9\x91\x99\xbb\x65\xae\xeb\x47\x8a\x27\x6a\x9a\x1d\x87\x72\x41\x2e\x4f\x91\x23\xfd\x01\x77\x34\x4f\x54\x9b\xec\x95\x75\x4a\xcd\x31\x16\xa3\x23\xb0\x67\x64\x11\x14\x97\xe1\x3b\x82\x3e\x2e\x70\xcf\x08\x2d\x7a\x25\x92\x02\x31\xa7\x1e\xe1\xd3\xc3\x1f\xeb\x61\xca\x8a\x81\xcb\x92\x0e\x8a\x8f\x3c\x5a\x46\xc0\x83\x41\x48\x06\x7e\x4b\x1f\x68\xfe\x7c\x6a\x94\xcb\xd0\x96\xca\xab\x27\x3c\xa7\x9e\x21\x5a\x64\x52\xf1\xe8\xf4\x0b\x37\x17\xc0\x9e\xef\x6c\x9a\x29\xe0\x90\x1f\x3c\x1f\xa0\x50\x31\x81\x82\xb8\x83\x7c\x21\x80\x69\xde\xbf\xa4\xf4\xa2\x0a\xc2\x40\xa4\xef\x20\x08\x23\xc8\x2f\xbf\xbc\xa8\x0f\xc9\xd6\x77\x51\xde\xbf\x23\x50\xfe\x1d\x35\xbd\x26\x8a\xbd\x3f\xb8\x1b\x43\x54\xdf\x8d\xc1\xe6\xbc\x90\x18\xc6\xf1\x94\x1b\xc7\x93\x22\x33\x7e\x58\x65\x3d\xc7\x43\x8a\x80\xfd\xcd\x9c\x46\x32\xc3\x65\xda\x93\x94\x51\x99\xa0\xe9\x8b\x4f\x9f\x2e\xa6\xb4\x99\x86\x45\xaa\xf1\x48\x68\xd0\x69\x5b\xa9\x29\x57\x7d\xd0\xaf\xf8\x03\xda\xe6\x62\x67\xaa\xdb\x21\xf9\xe7\xaa\xed\x77\x46\x53\xa6\xf1\xea\xc8\xe8\xbd\x01\xe9\x64\xdd\x8b\x2c\x1a\xb9\xad\x15\xeb\x61\xb6\xe3\xbc\x3a\x71\x6b\xed\x7a\x66\x04\xbb\x3e\xcb\xab\x56\x5d\x54\xf6\x42\xae\x6e\x4d\x8f\x11\xe9\x7c\x55\x50\xaa\xc7\xf0\x41\xd0\x6f\xc9\x78\xd1\x95\xdf\x17\x3d\xc6\xae\xff\xcf\xd3\xd3\x97\x7f\x3f\xb7\x5f\x80\x9c\x69\xe6\x73\x95\xff\xaa\x64\xa9\xb2\x0e\x8f\xca\x55\x97\x42\xea\xf6\xf6\x01\xde\xac\x10\x4c\xd3\x33\x5e\xe8\x42\x7e\xf3\xfe\xbd\x87\xe6\x3b\xe2\x8f\x91\x2c\x59\x95\x56\xbc\x7b\x82\x92\x35\x96\x51\x4a\xea\x1e\xce\xdc\xd1\xb9\xeb\xf8\x08\xb8\xd8\xbb\x5c\x47\x1e\x1a\xf8\x49\x14\x41\xee\x81\x57\x98\xeb\x83\xaa\x28\xe4\x0d\xc7\xb2\xd8\x4d\xcd\xf2\x1d\x28\xb9\xfe\x11\x86\xf3\x05\x96\x91\xa2\xc7\x53\xb0\x7f\xdc\x3c\x29\xf9\xdd\x95\xa2\xc0\x0b\x57\xe6\x06\x90\x97\x94\x4a\xae\xa1\x9e\x14\xe7\xf1\xd7\xbb\x10\x55\x8f\x54\x17\xff\xdf\xff\xdb\xe0\xf3\x20\x53\x6b\xbe\x71\x09\x7a\xbd\xb3\xf2\x02\x39\xec\x3f\x2d\x63\xb8\x3d\x83\x54\xa6\x36\x9e\x3d\xc4\x01\x27\x49\x84\xc3\x55\xb3\x72\x23\x9f\xb5\x32\x46\xa3\xe0\xd9\xe6\xa5\x1c\x74\xb0\x13\xd6\xa3\x12\x01\xba\x49\x6d\x8e\x92\xeb\xd6\x78\x1f\x94\xe1\x7d\x65\xe1\x09\xc5\xfb\x65\xd5\x4e\xb4\x92\x69\xe0\x0f\x55\x22\xb9\x21\x0c\x68\x8c\x5b\x2c\xeb\x83\x8d\x44\xc8\x55\x45\xb9\xbd\xfd\x6c\x36\x20\xf1\xb1\x19\xa9\xd8\x51\x35\x65\xbd\xfc\xbc\xd3\xfb\x4b\xfb\x2a\xca\xae\x91\xbd\xcb\xa2\x64\xaa\x8e\x0e\xde\xcf\x41\x56\x69\xbd\x6d\xd9\x2c\x40\xae\x41\x51\x0a\x86\xad\x52\x99\x99\x25\x4b\xed\x81\x53\x3a\xd5\xd0\x8b\x30\xd2\x13\xa0\x0c\xd0\x03\xa5\xcd\xde\xc9\xed\xac\x59\x5a\x58\xcd\x33\xab\xd2\x1e\x1b\x2a\xea\xc6\xfd\xc8\x53\xe9\x3c\xae\x33\x77\x06\xf3\xd2\x89\xf3\x3a\xf4\xed\x67\x5c\xd4\x41\x69\xd5\xb9\x66\xa5\x5e\x5b\x13\xb9\x40\x83\xcb\x48\x26\x8d\xe5\x2a\x59\x0d\x2c\x46\xc6\x35\xa9\x82\x56\x12\x5f\x55\x55\x68\x33\x6b\xe1\x28\x1b\x6a\x9b\x07\x9d\xa6\xe6\x3e\x5d\xad\x1c\x8f\xd6\x8b\xcc\xc3\xbe\xed\x8a\xcb\xae\xe6\xba\xb7\x66\x0d\xa2\x66\x89\x9c\xbe\xdf\x94\xad\x48\xe5\xfd\x07\x79\x2b\x24\x6f\x85\xe5\xd3\xdb\x50\x8c\xfa\x9d\x75\x49\xe8\x72\x51\xfc\xdb\xce\xfd\xfe\x93\xbc\x0a\x76\xba\xe0\x6c\xeb\x51\xeb\xcd\x8b\x33\xd6\xc7\x5a\x83\xda\xd8\x12\xa8\x95\x8c\xef\x1a\xc5\x92\x2c\x80\xaf\x03\xdd\x06\x40\xcc\x32\xc7\x16\xe8\x71\xf6\x70\xbb\xf8\x5b\x27\x17\x69\x07\x3f\x62\x88\x62\x2f\xca\x66\x93\x12\xb9\x36\xb4\xf4\x93\xd4\xc8\xed\xf2\xf1\x9d\xcb\x1b\x87\xcd\xa0\x7e\x36\xa7\x12\xc0\xd4\x4e\x02\x65\xa0\xd2\x51\x19\xbd\xac\x4e\x59\x6a\x28\x95\xe9\x37\x34\xbc\xf5\xec\xed\xd3\xca\xcf\x72\x99\xb0\xf4\x3c\xba\x2f\xc9\x6e\x02\x37\x0b\x5a\xb2\x44\xae\x2e\xf0\x56\xa1\x8a\xbf\x68\x4d\xa7\x6b\x88\x42\xad\xab\x3c\x1d\x01\x77\x95\xac\x92\x2b\x88\x06\x4b\x18\xaf\x65\xcf\xf0\xe3\xca\x8b\x83\x7c\xed\xe4\x0f\xf0\xe6\x32\xf1\x50\x70\x4a\x4b\xed\xbb\x99\x64\x59\xb9\x8b\x9d\xc7\xd5\xab\x9a\xc6\x18\xad\x21\xa0\x6a\xed\x42\x85\x3b\xfb\x64\x2f\xfb\x25\xfb\xa8\x4d\x94\x78\x29\xe4\x30\x0a\xe7\xf3\x36\xf9\x48\x5f\x26\x08\xde\x49\x02\x4b\xba\x0f\x8d\xf3\xfc\xee\xb7\x3b\x17\x5b\x30\x56\x82\xc0\xc9\x42\x8e\xa2\x14\x7d\x9c\xc4\xc5\xe2\xb4\x93\x13\xa9\xd5\x87\x64\xe5\x62\x86\x2c\x2a\xfa\x52\xe8\x12\x07\xa3\x1a\xe2\xf7\x3e\xcd\x54\xb7\x85\xf8\xfd\x2c\xe0\xe9\x68\x6a\x5d\xbd\xcd\x80\x91\xcf\x25\x5a\x09\x1f\x49\x94\x47\xfb\x34\x99\x94\x2b\x92\x54\x34\x86\x9a\x9b\xc4\x42\xd3\xca\x3a\x39\x9a\x1a\x0a\x36\x99\xa7\xc4\xbe\xba\x7c\xce\x20\x73\xf8\xd2\xd5\x48\xa4\x0f\xe3\x59\x82\x96\x30\x18\x78\x19\xe5\x6a\x26\x4b\x32\x39\x09\xc1\xf7\xe4\x84\xa4\xcf\x69\xe2\x3b\xc3\xbd\x4d\xe0\xab\x59\x37\x1f\x28\x12\x08\x2e\x76\xc0\x8e\xc0\xee\x3a\x69\x71\xf6\x2d\x69\x71\x08\x20\x54\xf5\xf4\x96\xd9\xa9\xb3\x70\x20\xff\x9d\x31\x0d\x78\x51\xf2\x95\x22\x52\x52\xe0\xf9\x54\x38\x75\x96\x91\xb8\xcb\x89\xbb\x05\xce\x6a\xb6\xb6\x4e\x71\xaa\x60\x3d\xb3\x8f\x3c\xa5\xdf\x95\x8d\x59\x84\x92\x5d\x81\x4a\x21\x4e\xd3\x7c\x4a\xc2\x03\x70\xb4\x57\xfb\x3e\x2f\x59\xa8\x56\x69\x43\x2f\xfc\x9f\x4b\x42\xdc\x3e\x93\x61\x76\x3c\x37\x7b\x10\x33\x59\x8b\xc6\x36\x6a\xc2\xdc\x10\x8e\x2d\x69\x89\x74\x36\x2d\x73\x9b\x5b\x6a\xb8\x9a\x0d\x64\x66\x57\x7b\x41\xf1\x2e\xd6\x5c\x98\xf0\xa8\x0c\x99\x0a\x92\x1b\x6d\xf5\x49\xd1\x56\xdf\xc5\xc6\x32\x8a\x4a\xee\x0e\x0e\xef\x83\xa6\xe9\xe2\xb3\xff\x59\xb2\x98\x7d\x6e\x20\x16\xd6\x4c\xa9\xef\x4b\x58\xeb\xe1\x68\x17\x64\xca\x3d\xe4\x81\xdd\x5e\x4a\xaf\x41\xa7\xda\x08\x2b\xed\xa4\xe8\xf6\x4c\xdc\x9d\x70\x04\xe4\x85\xf3\x41\xe6\x0d\xba\x57\x9c\xc1\xce\x1d\x71\x06\xa6\xc4\x7d\x27\xd7\xdd\xce\x3d\xe0\x0c\xde\x19\x37\xbf\x13\xa6\xce\x25\x0c\xe3\x79\x67\xa9\xa5\x9c\xe7\xd8\xcc\x60\x15\xc6\xd4\x9b\xfa\xe7\xe7\xd9\x14\xb8\x35\x8e\x71\x77\x60\xef\x80\xcb\x18\x75\xc8\x65\x8c\xef\xfe\xea\xb1\xb3\x0f\xec\x7c\x1b\x29\x17\x9f\x2c\x10\x9c\xb9\x19\x9f\xc2\x4e\x0c\xab\xdb\xdd\x74\x7f\x0f\xe1\xf5\xfd\x61\x16\x3e\xc3\x8e\xb1\xdd\x10\x05\x21\x6a\x70\x73\xff\x96\xac\xc4\xf8\x4e\x58\x89\x1d\x90\xa9\x63\x91\xdf\x8a\xa6\x5a\x87\x2d\x52\x48\x66\xdb\x1c\x80\x43\x40\x98\xfa\x3a\x39\xdf\x6a\x14\xaa\xdf\x05\x7b\xa0\xba\x8a\x9d\x0d\x4c\x60\x9c\xff\xac\xd8\x1d\x96\x86\x69\x10\xea\x31\xc0\x89\x9e\x36\x8d\x25\x44\x1b\x84\xe9\x80\x72\x0c\x03\xa6\x6e\x0b\xe3\xab\x44\x66\x46\x53\x0e\xb3\x22\x1b\x9b\x51\x07\x5c\xf7\x22\xa3\xd1\x21\xab\x68\x8d\x64\xfe\x35\x11\x18\x92\x46\xeb\x79\x38\xbb\xc9\xe6\x67\xa3\x45\xc4\x65\xae\x37\x2f\x0e\xb6\x77\xca\xd5\xbc\x01\xef\x4f\x80\x88\xdd\xcd\xf9\xbe\xf8\x2c\xee\xef\xfc\xf0\xf8\xe5\x8b\xef\xdf\xd8\x7d\x16\x65\xd5\x5b\xe5\x19\xc8\x73\x92\xe6\x1d\x03\x73\x79\x4c\xb3\xce\x80\xac\xc1\x20\x03\x08\x87\xe6\x3b\xa5\xce\x81\xe3\x4c\xda\xd3\xec\xed\xb6\x3b\x05\xbc\xc8\x43\x43\xc2\xaa\x5d\x10\xdb\xe6\x41\x15\x6c\x5c\x41\x06\xd4\xaa\xdc\xa7\x39\x32\x55\x49\x39\xcc\xb9\x6f\x91\xe9\xb4\x9c\x01\x3d\x4f\x96\xb4\xce\x82\x59\x2a\x31\x75\x3c\x04\xbb\x66\x3d\xdf\x2d\x92\x14\xca\xee\xb4\xb1\x68\x1d\x87\x4b\x68\xe5\x4a\x9d\xd3\xf8\x46\x6f\xcb\x82\xb4\x03\xd5\x82\x7d\x7d\x9d\xa0\x0f\xce\xe5\x1a\xb3\x5f\x3c\x38\x2f\xbd\x89\x7d\x51\xab\x0b\xe6\xa6\xfa\x94\x9c\x30\x56\x8e\xa2\x77\xf6\xf6\x69\x9f\x96\x97\x48\x71\x82\xe0\xb0\xa3\x4d\xdb\x2a\xdd\x6a\xf9\xb6\xb9\x16\xbf\xbb\x51\x26\xee\xe4\xbe\xa5\x58\x6d\x0a\xce\x56\xc1\x8a\xf4\xd2\x83\xf1\xd5\x56\x97\x4a\x19\xe9\xbe\x77\x17\x8c\xe6\x7b\x70\x5f\x2e\x97\x1f\x93\xa7\xff\xf0\xe3\x1b\xaf\xf4\x72\x29\xbd\x4b\xa6\xdb\x94\xf8\xf9\x4c\xa4\xd3\xcd\x39\xb0\xa8\xa0\xa3\x74\xc8\xb6\x4b\x49\x64\x43\xb6\xb6\xa1\xb6\x5d\x43\x53\xdb\xb0\xc5\x51\xf9\x6a\x28\x0f\x0f\x92\x56\x58\xdc\x11\x0d\xca\xba\x96\x6c\xb5\x2d\x33\x0e\x3d\xcb\xc6\x14\xf8\x6d\x74\x43\xd8\xc4\xfb\x6a\xd6\x1e\x77\x47\xe4\x72\xe4\xe3\x7e\x11\x38\x91\xae\xf9\xde\xd0\xb6\xe5\x3c\x1c\xdd\x7c\x93\xbe\xb4\xd3\x36\x51\x8e\xf9\x09\x2f\xdb\x2c\x18\x67\xe0\x3e\xe1\xf5\xbf\xed\xd9\x4b\x46\x16\x7d\x02\x61\x7b\x79\x65\x9f\x16\x1a\xc9\xe2\x7e\xc7\x64\x0e\x6b\xe1\xa2\xd2\x3a\x33\x86\xc1\x30\x3a\x0b\x2f\x75\x2e\x21\x8c\x1d\x2f\x08\x60\x30\x6c\xe8\x45\x6a\x29\xe1\xed\x05\x41\x51\x09\xef\x9a\x82\x7d\x8d\x7c\x18\x3a\xa8\x65\xe1\xf7\xaf\x06\xd4\xb4\x14\x6d\x07\xa0\x2e\xa9\x96\x7e\x37\xa0\x96\x46\xd4\x6d\x6a\xf4\xdc\x29\x8c\x09\x7c\xd8\x2c\xbb\x00\x30\xed\x69\x4b\x10\x37\x7a\x08\x32\xda\xf1\x3d\x51\x29\x9e\x50\xa4\x59\x88\x52\xcc\xa8\x65\x9b\xca\x91\xa2\xa4\x8e\x51\x04\xbf\xbe\xaf\x5e\x51\xd5\x7b\xed\xba\xee\xb9\x19\x37\x26\x5e\xe8\x4d\xab\xc8\x9f\x77\x1a\x56\x6f\x59\x8d\x7c\xb3\xd0\x4f\x76\xd6\xc0\xed\xe7\xee\xf7\xba\x5a\xb8\x6a\x21\x44\xaa\xc0\xa8\x1e\x8d\xea\xb9\xb6\x4d\x84\x62\xb9\x0b\xef\xcf\x45\xad\x78\x08\xad\x08\xc2\x97\xbf\xaa\x7f\x8b\x5e\x8e\x6f\x8e\x8e\xff\x66\xbf\xaa\xe7\x28\x59\xaf\x5c\x61\xad\xfc\x21\xa1\x81\xb7\xec\xc7\x8b\x30\xc5\xd4\x54\x8b\x17\x49\x40\x69\x87\xf1\x3f\xef\xd8\x8d\xce\xe3\x39\x35\x25\x59\xad\x7c\x16\xa3\x43\x56\x32\xb6\x40\x5b\xa6\x60\x39\x10\x15\x12\x33\x0e\xd1\x47\xac\x76\xe2\x80\x2f\x20\xe3\x21\x79\xb1\xbb\x47\x5d\x6e\xea\xf1\xfb\x2a\xd3\xd6\x11\x18\x8d\x4c\x07\x75\x71\xae\x45\x4a\x42\x5e\x0a\x0e\xb8\x61\xfa\x34\x44\xf8\x46\xaf\xb5\xa1\xab\xed\x76\x95\x3d\x44\xab\xe8\xb8\x0f\x76\x72\x6e\x2e\x7a\x4b\xde\xb9\xbd\x21\x8f\xee\xd9\xe7\x09\x27\xfe\xce\xcb\xe8\xa9\x66\xf4\xa3\xa9\xc9\x43\x2b\x7a\x23\x2a\x3b\x5a\x24\x06\x8b\xa1\x9e\xd6\x15\x5e\x71\xac\x54\x8a\xf3\x32\x61\x48\xba\xd9\xd3\x3d\x55\x9e\x89\x79\xe9\xe4\x7c\x91\xac\xa3\x80\x79\x78\xa9\xad\x66\x79\xa4\xa8\x9a\x4a\x68\x47\x55\x6e\x2c\xf2\x54\x8b\x30\xfa\xae\x4c\x14\x29\xf3\x3c\x40\x5e\x10\x26\x0c\x69\xb2\xa1\x1d\x63\x0d\xbc\x82\x85\xd5\x02\xa7\x08\xcb\x31\x10\xfc\x6b\x69\x54\x66\xb6\x40\xb0\xf9\xf7\x3e\x18\x1d\x6e\x59\x0b\xd8\xe6\xff\x59\x5e\x85\xa8\x2a\x04\xe2\xb8\x3c\x0c\x4c\xef\x2a\x8c\x57\x6b\xcc\xa1\xba\xab\x20\x44\x81\x39\x96\xc6\x3f\xea\x52\x2a\xa3\xfa\x4d\x10\x1b\x1e\xe0\x0c\xde\x9a\xd9\xd2\xf0\x05\x93\x5d\x68\xd3\x63\x15\xe9\x45\xe2\xc9\xfc\x29\x32\x42\x75\xd8\xa9\xd0\xa6\x29\x9d\xc5\x78\xba\x24\xea\xe1\x4d\x85\xee\x21\x7f\x20\x64\xf1\x3d\x8e\x2d\xe6\x35\x5d\x11\x0f\x9d\xbf\x3f\x8f\xad\xb5\x5f\x2b\x85\x67\xe3\x41\xd3\x83\x2c\x9d\x4f\x8a\x4f\xeb\x62\xac\xbf\x7e\xe3\xf1\x08\xed\x8a\x79\xe5\x8f\x56\x51\x7d\x59\xc1\x6d\x3c\x8b\x54\xd6\x21\x8d\x48\x03\x4d\xb1\x45\x06\xe7\xd7\x09\x2b\x5c\xdc\xdc\xd5\x5e\x8d\x79\x08\x2e\xdc\x17\xec\x54\x6c\x65\x03\x27\x93\x72\xc8\x14\xeb\x18\x54\xed\x68\x41\x23\x27\xae\x21\x1a\xf0\x55\x49\xf3\xf9\x0a\xab\xea\xb9\xe4\x8d\x08\xa2\x38\xd3\xca\xd6\xee\xb1\xa0\x96\xdd\x3d\x56\xc3\x31\x7f\x57\xc8\x88\x8b\x1f\xdf\xbd\x7b\x33\x54\x30\x34\x2e\x8f\x56\xe6\x77\x53\x79\x34\x12\x9e\xf3\xc7\x53\xe9\x17\x6e\xd3\x09\xd9\xc1\x63\xaf\xfe\x98\x6f\x77\x98\x57\xfe\x08\x72\x2a\xe8\xf2\xe8\xb8\x65\xd5\xe7\x6a\x54\x14\x64\x9d\xe1\xa2\x0b\xcc\x1c\xaa\x8c\x82\xd0\x36\x43\x09\xec\xc6\x76\xb8\xfc\x9c\x0e\x3a\x42\xd5\xb2\xfd\xda\x6f\xb8\x5f\x95\x25\xd3\xc9\xa4\xdf\xc1\x8f\xfc\x8c\x8e\x0e\x08\x31\x66\x57\x42\x4d\x2c\xb5\x62\xe8\x13\x49\x8c\x6d\xa0\xb7\x01\x3d\xb6\xd7\xe0\xe4\xe7\x8e\x82\x4c\x1e\x38\xfe\xcb\x7d\xb2\xf4\xb0\xbf\x80\x32\xbb\xd8\x01\x17\x99\x58\x44\x16\x47\x82\x76\xf0\x57\xc0\x79\x26\xbb\x69\xb6\xa3\x59\x84\x37\x6e\xc9\x1a\x30\x01\xee\x5b\x38\x87\x1f\x3b\x89\x87\xe6\xe4\x8f\x76\xe8\xa4\x8c\x5b\xe3\xf6\x44\xaa\x96\x6e\x1d\x1f\xcd\x3b\xe6\x5d\x5e\xc2\x79\x18\xb3\x5c\xa1\x9e\xf3\x3f\x7f\x7e\xfc\x3f\x7f\xae\x1d\xae\xda\x08\x77\x5b\x96\xab\x3f\x68\x53\xba\xb0\xd3\x6b\xdc\xb8\xa3\x5f\x52\x49\xac\xd0\xa8\x68\xb0\xbb\xc2\x53\x1f\x27\xf3\x79\x64\xf7\xd2\xb5\xb2\x86\x63\x9a\x12\xda\x61\x42\x1f\x33\x80\x7b\xab\x55\x14\x32\xa7\x53\x8e\x49\xce\x3a\x8e\x60\x9a\x3a\xe9\x0a\xfa\xe1\x8c\xe5\x86\xb6\xf3\xe0\x95\xb4\x97\xe7\xa2\x96\x4b\x6b\x76\xf8\xd4\x10\xfb\xe0\x82\x65\x25\xbc\x4c\x3e\x2a\xca\x54\xc0\x7f\xee\x83\xf1\x8e\x9d\xb5\x3c\xa8\x60\x2d\x15\x39\xd3\x26\x6d\xa1\x67\xec\xd4\x5b\x49\x94\x39\xe7\xed\xc9\x3f\xd9\x2e\x3e\x93\xa6\xb1\x86\xf9\x46\xfb\x55\x28\x6d\xbd\x98\xc7\xf5\xdd\x4e\x0b\xb1\xd5\xe7\x9b\x37\x50\xb2\x99\x12\xda\xd4\xb3\x36\xe2\xd6\xde\x96\xd2\x56\x5e\xd6\x52\xe7\xcb\x97\x38\x57\x91\xf1\x22\x23\x35\x71\xad\x8a\x2e\x35\xed\xd5\x93\x9a\x84\x32\x93\x0b\xfc\xe0\x82\xde\x04\xae\x46\x1e\xb6\x12\x9e\x14\x86\x0b\xc5\x8f\x89\xdd\x42\x32\xca\x2d\xbc\x58\x38\xb2\x89\x9f\x62\xb9\x95\x09\x07\xf2\x38\xba\x67\x5e\x07\x95\xed\x4b\x12\x43\x6f\x47\x8f\x99\x2b\x55\x96\x1e\x6b\x9f\xd8\xaa\xd8\x6a\x5a\x42\x26\xa4\x51\xe7\x3d\x23\xd8\x3e\x65\xc2\x80\x0a\xb2\x2a\xbc\xfe\x7f\x34\x62\x0c\xac\xdb\x29\xd3\xdb\xe9\x1f\xb4\x92\x11\x8a\x5d\x39\xb3\xac\x7b\xb3\xf5\x53\x05\x9f\xf2\x2c\xe6\xca\xb2\x02\x55\x9a\x17\x04\x5d\xac\xc5\xe0\x15\x11\x9c\x29\x67\x0b\x61\x7e\x97\xa2\x81\xc6\x98\xb2\x29\xe8\xaa\x52\x7b\xf9\x61\x3b\x98\xc6\x45\x60\xa2\xc6\x00\x59\xd3\x5f\x23\x2e\x0a\x14\xe4\xd8\x06\x61\xea\x5d\x46\x45\x74\x61\xac\x67\xa3\x35\xb4\xb9\x42\x51\xa9\xd1\x05\xd9\x55\x8e\x30\x98\xe1\x7a\xbb\xa6\x53\x77\xae\x6b\x31\xc1\x1c\x75\xd0\x96\x93\x25\x8a\xa7\x41\x60\xe7\x74\xc7\xbb\x3a\x99\xcb\x26\x71\x28\xc3\x7b\x99\xae\x83\xff\x6e\x9c\x33\xc4\x8b\x13\xbc\x60\xae\x22\x85\xb4\x83\x2d\xbc\x5a\x2f\x62\xdd\x49\x5e\xcf\xa7\x2d\x9c\x99\x5a\xb8\x11\x98\x0d\xc7\xf9\x42\xb2\x57\xee\xaf\x61\x2d\x6e\x5d\x6e\xf3\x91\xaa\x70\x7a\xf4\xb1\x17\x52\x35\x07\xb5\x00\x49\xd7\xeb\xa5\xe0\x9b\xdc\x01\xcd\xfd\x3b\x10\x69\xf3\xa1\xe7\x2f\x2c\xb5\xab\x57\x4a\x3d\x44\xfe\xa4\x2c\x53\x2a\x73\xee\xf3\x62\xd9\xd6\xda\xd7\x6c\x22\xfc\x24\x1b\x45\xb4\x19\x41\x4a\xb5\xde\xc9\xdf\x4c\x2c\x39\x5f\x24\xd7\x44\x4a\xf9\x81\x5c\x08\x19\x56\x4f\x6b\xa2\x9e\xb1\x22\xdd\xf3\xed\x6c\x5b\x56\xf3\x91\xb0\x6e\x81\x78\xe2\xda\xac\x23\x2e\x35\x7b\xa1\x5a\x66\x2f\xf9\x66\xc8\x32\x2a\xf7\x6e\xb1\x37\x67\x33\x74\x01\x81\xd1\x49\x0c\x52\x7f\x01\x97\xde\x89\x3d\x91\x33\x7b\xe9\xf6\x01\x03\x70\x41\x2b\x59\xd8\x07\xc1\x55\x52\xd0\x46\x4b\x09\xed\x7e\x13\xf7\x81\xa0\xfa\x27\xd2\x3e\xd6\xbf\xdd\x80\x24\xa6\x78\x6f\x3e\xe4\x1b\xc7\x3b\x26\x00\x5d\x63\x18\x0c\xbd\x28\xf4\xd2\xde\xaf\x6c\x8a\xc3\x3f\xdd\xc6\x1b\x5e\x64\x77\xc8\x8b\x53\xfc\x9d\x90\xf1\xf4\xd7\x3e\xe0\xd8\x57\xdd\xc1\x60\x81\xf1\x6a\xc8\x77\x39\xd7\x0d\x41\x9b\x37\x28\x59\xd5\xee\x48\x28\xe8\xac\x3d\x51\x04\xcc\xf4\xd4\x73\xe5\x18\xae\x66\x39\x14\x79\xa4\x2f\xdc\x57\x09\x13\xff\x33\x45\x14\xf9\x37\x34\xa9\xb0\x3a\x2f\xd9\xce\xf3\x1d\xde\xb2\xfe\x4e\xdc\x57\x89\xc3\xf4\x34\xe4\x7f\x9f\x7d\xf4\x7c\x7c\xe2\xd2\x7f\xd8\x93\x37\x34\x87\xe8\x89\xcb\xfe\xa5\x82\x21\x7b\x41\xb5\x05\x27\xee\x5b\x38\x5f\x47\x1e\x72\x9e\x7d\xa4\xc9\x24\x08\x96\x6e\xc4\x5c\x9e\x13\x2e\xb8\xf6\x84\xb2\xe3\x6b\xd3\x92\x93\xf0\xf0\xc2\x61\x3f\x8c\x49\x08\xf5\x85\x75\x26\x92\x40\xe4\x20\xce\x72\x1d\xe9\x53\x61\x36\x56\xc8\x92\x64\xf3\xb2\xce\xf2\xfb\x1f\x12\xd4\xe3\xc5\x59\xc9\x97\x9f\x3e\xa9\x54\xda\xcc\x67\xa9\xd7\xef\x8b\x5a\x10\x70\x18\xa6\xaf\xe0\xf5\xa3\x47\x70\x78\xe5\x45\x61\x40\xdf\x02\x28\x20\x43\x30\x20\x37\x1d\x39\xd0\xf0\x3d\xff\x73\x98\x51\xf6\x2a\xf2\x35\xd4\x3d\x1a\x2c\xf8\xe2\x68\x2b\x20\x3d\x1a\x1d\xf1\x99\x5b\x3b\x23\x33\x8c\x93\x37\xf6\x39\x0e\xe1\xef\x6b\x2f\xea\xe9\x34\x9a\xa3\x65\x1f\x58\xa8\x69\xf6\xeb\x38\xc1\x3d\x57\x75\xee\xf6\x81\x22\xb6\x27\x0f\x47\x20\x47\x6d\xad\x1d\x68\x04\xba\x0f\x82\x30\x78\x0b\x7d\x18\x5e\xc1\x53\x8c\x51\xaa\x53\x0f\xf6\xed\x1c\x62\x91\x04\x1e\xc3\x25\x83\x83\x38\xe5\x9c\x91\xe8\x7f\xfa\xc4\xda\xa6\xb2\xad\x7e\x09\x3c\xdc\xe9\x6f\x00\x8f\xd6\x3c\xb9\xe5\xd4\x50\x2f\x6e\xa2\x57\xdc\x95\x15\x32\xd4\xe8\x31\x30\x2d\x4e\xfd\xef\xe2\xa1\xfe\xe0\x24\x16\x65\x79\x45\x31\x5b\x6d\xf4\x93\xcc\xcc\x20\x90\x1f\x73\x71\xcf\xa8\xed\xca\xa5\xb8\x93\x6c\x23\x5e\x92\x9d\x2d\x62\xe8\x05\xc1\xd0\x5b\xad\xa2\x1b\xd6\x27\x93\x29\x87\x72\xc1\x18\xa0\x29\xaf\xd1\x2e\xbe\x60\x72\x45\xe5\x47\x7c\x2a\x9c\xff\x3a\xc1\x74\xde\x10\xa0\xfe\x06\x6b\xc7\x60\x03\xbc\x20\xc8\x41\x10\x0f\x57\xeb\x74\xc1\x90\xb0\x07\x41\xdc\x07\xe6\x37\x6c\x0a\x96\xcf\x10\x5c\x26\x57\xb0\xf8\xc3\xec\x65\x03\xfb\xb7\xb9\xda\xed\x29\x2d\xf0\xdc\xeb\xdd\x7e\x80\x37\x27\xa2\x44\x0c\xde\xf4\x27\xdf\x66\xec\x2d\x93\xc9\x04\x7e\xfa\xa4\xa9\x63\xc9\x83\xfe\xa3\x47\x19\x72\x2c\x8b\xbf\xe0\xc9\xb7\xb7\x90\x82\x81\x7d\xe3\x7e\x83\x79\x8d\x93\xfe\xa6\x2f\x4f\x0f\x9d\x89\x31\x10\x21\x1c\xfa\x57\x99\xd7\x40\xfb\x2d\x4a\x48\x2b\xac\x31\x3f\x96\x5b\x14\xd3\x1a\x29\x3c\xdf\x0a\x2c\x20\x32\x65\xef\x81\x22\x78\x2b\x88\xd2\x30\xc5\x3d\xc8\x07\x97\xc5\xf8\x59\xcd\xfb\xfe\x06\x64\x6e\x73\xd8\xbf\x85\x43\x94\x44\xd1\xa5\xe7\x7f\xe8\xc9\xaf\x68\x2b\xf9\x11\xa1\xd7\x9a\x5b\x0e\xda\xca\x2d\x47\x13\x38\xef\x8b\x77\x4e\xf8\x06\xbf\x7e\xf6\xfd\x8b\x83\x72\xef\x1c\xbb\xeb\x4d\x63\x8f\x9b\x83\x5a\x0e\x37\x0c\x4a\x36\xbf\x1b\x29\x31\x57\x78\xde\x1c\x36\x56\x29\x50\xd7\x9b\x43\x25\xf1\x1d\xb7\x77\xbc\x39\xa8\xed\x78\x73\x50\xd7\xf1\xe6\xc8\xea\x77\x03\xd4\xa3\xac\x80\x5d\xe4\x8a\x53\x4b\xd9\x74\x27\x26\x76\x26\x31\x77\x66\x64\xdf\x6b\xab\xba\x66\xf3\x70\xd8\xbc\x3e\xa3\x29\x7d\x87\x99\xd2\xc7\xf6\xdd\x57\x46\x4a\x0d\x4c\x5d\xdb\xd1\xf7\x38\x16\xf1\x92\x46\xfb\x8d\xcc\xb2\x79\xc5\xbc\xbd\xdd\x5e\x56\xc9\xd4\x02\x69\x94\x31\x9c\x17\x20\x37\x54\xcf\xba\x31\x9c\x25\x35\xde\xda\x0e\xbe\xbb\x25\x36\xc5\x22\x19\x74\x33\x4b\xf6\x6e\xb5\x25\xdb\x8a\x24\x02\x2a\x35\x8c\xd8\x3a\xc8\x32\xc0\xea\xc2\x7e\xbd\xdb\xb5\xfd\x7a\x77\x0b\xfb\x75\x19\xee\xdb\x51\x47\x30\x65\xa6\x63\x96\x6d\x7e\x77\x6d\xe9\xcd\xa9\xb0\x95\x8a\x72\x24\xdd\x4f\x9a\x59\xb9\xda\x9d\x38\xaa\x15\x28\x3b\x72\x7f\xe7\x28\xb6\xed\x99\x1b\x6f\x79\xe6\xcc\xfd\xcd\xe7\xb4\xe1\x74\x6e\x5f\x95\x99\x53\x73\x6e\x78\x4e\xc7\x2d\xcf\xa9\x84\x65\xc3\x83\x9a\x05\x71\x17\x27\x75\xdc\xf5\x49\x1d\x7f\xb6\x93\x4a\xc1\x71\x7f\x8e\xaa\x25\xfb\x47\xb5\x9d\xbb\x4d\xb4\xe2\x96\xda\xef\x8c\x12\x7b\xa1\x33\x60\xdc\xc1\xde\x54\x64\x47\x84\xbf\xa1\x32\xbb\xa6\x2b\xb7\xe9\xae\x55\x57\xa6\x42\x9a\x6e\x94\x50\x5a\x87\xb3\xae\xb4\xd1\x39\xa9\xa9\x4a\x29\x4d\xf5\x9d\x5c\x8c\xf8\xdf\xa7\xa0\x6e\xa2\x5c\xcc\x6b\xe6\x9a\xe8\x16\x6f\x15\xb7\xca\x74\x33\x1a\x62\x64\x14\x78\x44\x6c\xd6\xde\xd6\xd0\x9e\xab\xbe\x73\x0a\x6b\x1d\x7b\x6b\x68\x71\x75\x0d\x6e\x74\xe3\xbc\x24\x84\x31\x8c\xe7\x2e\xb0\x2a\x92\xcf\xd7\x33\xfa\x90\xfd\xcb\x1f\x16\x6b\x96\x49\x27\x29\x8c\xf1\x89\xfb\x3c\x75\x56\xec\x6f\xa6\xe4\x55\xcb\x2d\x51\xab\xfe\x98\x3f\x95\xed\x94\xa9\xf2\x53\xbe\x4f\xc5\x5b\xa1\x4d\xec\xd9\xef\x6b\x2f\x4a\xc5\x0a\xec\x8a\x55\x83\x6e\xf0\xa6\x86\x6e\x55\x9d\x7a\xab\x6e\xb4\x60\x34\xb7\x7f\xc7\x0a\x4c\xa5\xe9\xab\x56\xbe\xe5\x21\x96\xd3\x95\x69\x3a\x32\xa9\x58\x91\xe0\x98\x50\x65\x99\xb6\x05\x90\x5d\x5a\x0f\xd8\xb7\xfa\x3b\x80\xad\xfa\x2e\xf5\x3e\xff\x92\x76\xd5\x40\xd1\x05\xb2\xaa\x63\x76\xee\x9b\x1c\x5f\x72\x62\x2b\xd4\x65\x77\xa2\x19\xb3\x97\xf3\xfe\x32\x9a\xb1\xbf\x62\xb8\x7a\x76\xbc\xf7\xcf\xd2\x7a\x92\xaa\xa8\xe3\xa9\xb8\x31\x79\xf6\x6c\xcf\xfc\x59\x14\x72\x6e\x63\x5c\x77\xc0\x45\xdb\x02\x24\x47\xc0\xa5\x55\x1f\x6b\xd5\x87\xcc\xeb\xdc\x58\x39\xe7\x8c\x27\x50\xea\x93\x5d\x27\x7f\xf9\x30\x8a\xf4\x72\x91\x7b\x94\x4b\x8b\x3d\x1c\x5e\x41\x17\xec\x8d\x1b\xe6\x06\x29\x2d\x31\xc0\x82\x44\x1b\x79\x64\x4a\xb5\x95\x3d\x20\x49\xbe\xb6\x2b\xbd\xe4\xac\x5a\xd5\x4a\x34\x78\xcb\x1f\x75\x57\x8d\xda\xcc\x66\xa1\x13\x2b\x9d\x74\x50\x32\x69\x55\xf0\xc9\xa8\xf2\x64\xe5\xac\x8d\xfc\xd5\x1d\x70\xa9\xd6\x0c\x28\x5d\x17\x02\xd1\xc4\x8e\x96\xc2\x86\xa6\x62\x98\x16\x65\x2c\xb7\xe6\x95\x34\x5c\x63\xf6\x99\x02\x4f\x87\x61\x1b\x87\xe1\x52\xf0\x44\x52\x28\x6e\x84\x73\xb9\xc4\xe1\xdd\x55\xfb\xf0\x75\x8a\xb6\x8d\xd2\x76\x6a\x2f\xa7\xd0\x3e\xe8\xe4\x4e\x0a\xcf\xb2\xff\x44\x11\x84\xc0\x96\x90\xbd\x41\x0e\xcf\x1a\xd3\xbc\x14\xb9\x91\xda\x89\xce\x35\xd2\x1a\xd7\x2a\x75\xc0\xa0\x95\xaf\x73\x60\xa5\x4b\x77\x01\x07\x51\x79\xb9\x35\x28\xb8\x5b\x7b\x33\x12\x21\x2a\x8b\x34\x58\x49\x3d\xe5\xf8\x16\x3a\x06\x5b\x46\xf7\x76\x59\x4e\x73\xe4\xb9\xa9\x3a\x23\xab\x85\x28\xca\xce\x50\xac\x95\x10\x8c\x04\xcd\x57\x3a\xa0\x7a\x29\x9a\xc2\x54\x7a\x06\x4b\x65\xc3\x1c\xdf\x85\xe2\x40\x31\x95\x2d\x72\x35\x94\xe9\x04\x36\x1d\x66\x6c\xb8\x4f\x9c\xef\xeb\x83\x77\x67\x57\xfb\x4f\x5f\x75\xc4\xf9\x02\x59\x7c\x9d\x55\x03\xb0\xf2\xc1\x7a\x61\x0e\xa9\xf1\x3e\xee\x9a\x11\x1e\x1d\xc8\xd2\xa8\x65\xdc\x30\xf7\x88\xb7\xd4\x0c\x51\x9e\xc0\xd2\xf7\xd7\x41\xd0\x0b\x92\x38\x52\x39\xe4\x84\x92\x57\x31\xce\x92\x97\xa6\xd5\x27\x3d\xca\x9f\x4a\xbe\x99\xf0\xd1\xc7\x53\x6a\x8f\xbb\x17\xdc\x33\x37\xfa\xda\xfc\x84\x8d\x24\xdb\x59\x7d\xad\x91\xe6\xc5\x5e\x38\xda\xbc\xb5\xb4\x32\xb2\x46\x85\xcb\x9d\xa9\x2c\x5d\x3b\x70\x41\x61\x99\xda\x7c\x32\x01\x3d\x4f\x8d\xad\xf9\xae\x25\x78\xc7\x82\x78\x3c\x51\xad\x19\xd5\xd2\x45\x4d\xc8\x8c\x80\x92\x29\x5a\x39\x58\x6a\xf1\x75\x65\xa1\x3c\x85\x02\x8c\xd3\xa5\x10\x43\xfe\xcb\xc7\x75\x35\xba\xf5\x0b\x39\x87\x42\xa9\xc6\xad\x19\x54\x65\xdd\xa2\xe9\xd6\x59\x2d\x74\x71\xea\xb0\xec\xd6\x3b\x6c\x5f\xc1\xb4\x10\x7a\x3a\x3e\x1a\xeb\x63\x5e\xb6\x5d\x63\xdb\x4a\x64\x5c\xb8\x1f\xa8\x66\xca\xb1\xda\xca\xdf\x31\x57\x8d\x6d\xad\x3d\x4d\x31\xb1\xd6\xdc\xec\xf3\xea\x04\x0f\x1a\xe0\xbf\x4c\xa9\xdd\x4d\x98\x61\x01\xbe\x94\xa4\xf4\xf8\x32\x18\x93\xd3\xb2\x7c\x11\x8c\x38\xa8\xd0\xba\x88\x0a\x2b\x07\xa5\xee\x36\xed\x10\xe6\xa0\x34\x12\xb1\x12\x18\xd9\x4b\x50\x5d\xe2\x75\x90\xe6\xeb\xd0\xf4\x98\x7a\x1d\xe0\x3e\xf1\xa3\x24\x35\x2c\xef\xcd\x79\x1a\x5a\x21\xf6\xde\x28\x7e\x9e\x05\x21\xde\x3e\xf0\xba\x40\x1f\xd9\x4a\x65\x36\x36\x55\x66\xbb\x7f\xa8\xcc\xfe\x50\x99\xfd\x7b\xaa\xcc\xd4\xf5\xf8\x87\xda\xec\x0f\xb5\x59\xcd\xa4\xa5\xdb\xe8\xd2\xd4\x45\xc6\x1c\x8f\xbd\x48\xd7\x9f\x69\x3a\x35\x53\xd9\x66\x8f\x73\x65\x61\xa3\x34\x36\x56\x28\x28\x64\xce\xd4\x6c\xb1\xa0\x8e\x54\x72\xf7\x57\x17\x97\x42\x0f\xf9\x8b\xc1\xa5\x87\xee\x8b\x1a\x6e\x77\x67\xfc\xd3\x25\xfa\xeb\x6b\xbb\x1a\xee\xfd\x7b\x0f\xcd\x77\x5c\xc0\xfe\x18\x51\xaf\x7a\xb2\x02\xba\x89\x62\x99\x2e\x70\x5f\xaf\xb0\x88\xe2\x78\xbd\xe2\x78\xc2\x3c\xd5\xbd\xcb\x08\x36\xfa\x8c\xab\xf1\xea\x7f\xb0\x42\xc9\x4a\xff\xe0\x03\x24\xd8\xc7\x5c\x36\x80\xfb\x24\x4d\x10\xcd\x74\x30\x0b\x23\x4c\x8b\x61\x3e\x49\x62\xd9\xf6\x89\xfc\x8b\x87\x99\xd8\x2a\x55\xa8\x4d\x2b\x31\x73\x6b\x8d\x58\x18\xca\x98\xab\xda\xb4\x81\xad\x55\x3b\xc7\x2c\xa9\x81\x96\xfd\x54\xc6\x84\x88\xbc\xf2\x72\x92\xb2\x2b\xba\x28\x2a\x01\xd0\xff\xab\x5f\xc8\x33\xaf\x66\x24\x3c\x13\x90\x29\x95\xdb\x66\x44\x17\xae\xa9\xe3\x26\xa5\x19\x0b\x55\x31\x7a\x5a\x84\xe3\xaa\xaa\x0e\x0a\xf2\x43\xae\xc7\x3b\x02\x1a\xf0\x08\x3a\xe8\xfa\x39\x63\x5e\xa6\xfc\x64\x0e\xb8\x94\x7d\x57\xf7\x0b\x6c\x1f\xf3\x99\xd6\x98\x94\xd0\xe8\x82\xbb\x00\x80\xcc\xf7\xd9\x39\x08\x32\x3d\x37\x05\x42\x6e\x62\x4a\xb1\xdd\x44\xa7\xa0\x98\x0b\xda\xfd\x5b\x1a\x16\xf9\x03\x3b\x29\xd2\x97\xda\x43\xa1\x37\x60\x1c\x7c\xae\x5e\x08\x99\xe6\x3a\xe4\xf1\x94\x14\x24\x5a\x49\x61\xb5\x22\x3a\xc2\xf1\x94\xc8\xde\x4c\x74\xdc\xd1\xa7\xdc\x8e\x5f\x76\xcb\x9d\x49\x1c\xbb\xca\x83\x6b\x89\x8e\xa7\x0d\xb4\x0b\x23\x35\xe7\x1a\x5a\x80\x5a\x5c\x8d\xc5\x8c\x77\x4c\x46\xa8\xe6\x7c\x46\x47\xcd\x8a\x0b\x14\x52\x2d\x46\x18\x3f\x2f\xd5\xca\x61\xdd\x2e\xb8\x70\xcf\xf9\x4c\x34\x65\x80\xba\x64\xe4\x5d\xb4\x8a\x3c\x1f\x2e\x92\x88\xab\xb8\x0a\x12\xa3\x8c\x77\x0d\x8d\xc0\x78\x6f\x6a\x45\x59\x7e\x30\x33\x30\xa8\x87\x7f\x59\xa5\x0c\xb9\x84\xc8\xd1\xa4\x7d\xc9\x7c\xd8\xed\xb4\xc1\x06\x54\x54\x08\x9e\x56\x58\x9f\x13\x2c\x3e\x4e\xa8\xca\x5a\x53\x77\x64\x76\xab\x3f\x51\xf9\xbb\xdc\x27\xcb\x75\x84\xc3\x15\x65\x24\x9e\x20\xf8\xfb\x3a\x44\x2c\x1b\x9f\x8b\xa8\x9b\x58\x51\x86\x19\xdb\x9a\x64\xe4\xc4\xd4\x50\xb4\xb4\xd1\xb6\xd4\x92\x9b\x64\xbc\x5e\x4b\x49\xda\x96\xbb\xb0\x22\xb8\xa1\x10\x49\xd4\xc6\x96\xc6\x36\x34\xab\xb2\x5a\x18\x32\x52\x06\x15\x11\xd0\xd8\x18\x5d\xc5\x89\x1d\xed\x81\x0b\xc5\x0d\x4e\xb9\xf2\x87\x3f\xd4\x4d\x72\xb5\xb8\xa2\xd1\x6e\xde\x3e\x97\x31\xd6\xd9\x71\x49\xf6\xdc\x81\x51\xc8\x38\x3d\x07\x92\x90\x28\x46\x56\x62\x12\x07\xc1\xe1\xd4\x62\x94\x3c\x2c\x43\xfd\xec\x8d\xdb\x46\x96\xb7\x61\x5b\xc5\xc5\xcf\xe7\xb8\xa7\xe6\x68\x83\x96\x1d\x1d\xdb\xdc\x42\x87\x76\xb9\x78\x9f\x80\xd5\x6a\x51\x6b\xa9\x09\x18\xed\xd5\x8e\xd2\xa9\x3d\x92\x65\x94\xdd\x6e\x2e\x4b\x2e\x3c\x7c\xd9\xcb\xf2\xa8\xf8\x56\xf0\x78\x5d\x9f\x9a\x57\x01\x55\xc9\xc2\x59\x05\xf5\xe7\x9d\x16\x50\xfd\xee\x95\xc4\xed\xc9\x7d\x4d\x62\x6f\x27\xf5\x75\x64\x03\x06\x8a\x61\xac\x07\xe8\x36\xb0\x12\x75\xa5\xb4\xde\x9a\xf4\x1f\x5b\x28\xff\xf1\x5d\x11\x7e\x25\x1b\xb9\x34\x40\x88\xd2\xfc\x98\xd0\x52\xb7\x80\x86\xb5\xa9\x71\xc1\x89\xfe\x68\xaa\xbc\x87\x34\x82\x4a\xa9\xb6\xf0\x51\x19\x5b\x63\x3c\x73\xd7\x83\x91\x5f\x90\x7e\x06\x5c\x6f\xb5\x1a\x78\xd7\x1e\x82\xb9\x54\x9a\x46\xfa\xed\xea\x8f\xb2\x67\x6b\xfb\x6b\xc5\x8a\xfc\xe5\x77\x4c\x03\x94\xe7\x28\xa7\xdf\x45\xe5\x6b\xcc\xdd\x4b\x6d\x18\x22\x0b\x25\xb7\x57\xd4\xcf\x94\xc4\x6f\x74\xe4\xf2\x8d\xf2\xb5\xeb\xf3\x6d\xba\x12\xbf\x98\x16\xaa\x3e\xe2\x77\x78\x91\x94\x89\x17\x74\x5a\x77\x23\x51\x50\xa7\xbe\xec\x55\xc2\x14\xe8\x5f\xd1\x85\x62\xd7\xba\xe5\xa3\x84\x34\xea\xc7\x3c\xdd\x4e\xbc\xd4\xcf\x2b\x50\xea\x1c\x45\xb2\x29\xe2\x3c\x92\x4e\xcc\x23\x06\x6c\x63\x05\xb0\x8b\xc1\x68\x2f\x65\xa3\x9d\xd3\x2a\x4c\x54\xc3\xbf\xdd\xea\x58\x39\xa7\x01\xd9\xba\xca\x25\x6a\x83\x6e\xb9\x4c\x7d\xd4\xca\xb5\x3e\x55\xb5\xa5\x3a\x58\xb0\x56\xa9\xaa\xde\xaa\xb3\xc3\x6f\xb9\xf4\xdc\xf8\x95\xeb\x7f\x83\xa0\x0f\x03\x18\xfb\x05\x4b\xa7\x22\x33\xe9\x3a\x5e\x2f\x21\x0a\xfd\xca\x15\x69\x1d\xda\x17\x93\xeb\xd1\x32\xc7\xae\x64\xc7\x51\xce\x85\xf6\x50\x23\x5b\x79\x3d\x70\x37\x7e\x87\xf7\x86\x31\xb4\xa9\x04\x9a\x6b\x04\xac\xda\xac\x7d\x29\x8e\xcb\xf4\xf8\xdb\xd2\xa5\xb8\x9b\xac\x42\x15\x8a\x02\x2b\xdd\x1e\xe5\x5f\x14\xe0\x48\xd5\xbc\xda\x49\x22\x45\x77\x41\xf3\x2a\x3d\xf5\x16\x6f\x9e\xcc\x91\xe5\xcd\x17\x5b\xbe\x41\x0d\x5a\xaa\x21\x4a\x0e\x5c\xd7\xb8\xab\x5f\x36\x9f\x09\x81\x8b\xae\xe7\x91\xfd\x65\x67\x3b\x29\x09\xb7\x17\xad\x16\xde\xdd\xe2\x69\x21\x37\x90\x5d\x64\xe7\xf8\x9a\x59\xe5\x57\x86\x8e\x39\x06\xe0\x33\xe1\x64\x29\x1b\x35\x2a\x69\xf1\x55\x62\x67\x39\xd7\x66\x5d\xee\x1f\x78\x6a\xe0\xe9\x4a\x72\x89\x9f\x0b\x43\x8b\x18\xdd\x91\xfd\x65\xf7\xfb\x64\x63\xa0\x3b\xc7\xcc\x42\xee\x3b\xbb\xcc\xbb\xc3\x47\x2b\x5b\xdf\x05\x46\x5a\x3c\x19\x81\xc5\x7c\xd1\x52\x4b\x94\x77\x62\x2c\xf2\x4f\xbc\x8b\x9a\xf5\x39\x0d\x18\x18\x57\x7b\x25\xca\x32\x18\x2c\x91\x98\xf4\x47\x14\xfe\x86\x33\x94\x2c\x07\x30\xc6\x28\x84\x29\xaf\xc2\x0e\xdc\x41\x98\xd2\x9b\x21\x18\x30\xd1\x23\x8c\xaf\x12\x5f\xc4\x8e\x52\xa7\x44\xe9\x8c\x48\x2b\x21\x6b\xe5\x3c\xec\xee\x8c\x7a\xfe\x32\x9a\xa9\x6c\x1b\x9f\xc5\xac\x3b\xe0\xfd\x29\xf3\x7e\x15\xc2\xeb\xfb\xe2\xa2\xf8\xc3\xbb\x6f\x4e\x5f\xff\xbc\xf8\xbf\x76\x17\xc5\x22\xc7\x3d\x2d\x29\x74\x81\xcb\x1e\x59\x23\x77\xd6\x1b\x99\xfa\x31\x19\x00\x9b\x2b\xe0\x46\xd7\x4a\x35\x8a\x03\xe6\xda\x58\x9a\x03\xa6\xc8\xab\xc7\xe2\xd3\x43\x9d\x9d\xe5\x25\x5a\x28\x6c\x57\x46\x0d\xb9\x46\x45\xaa\xcb\xb5\xff\x01\xe2\x7c\xf1\x2d\xea\x8d\x98\xae\x3c\x1f\xca\x78\x61\xa1\x25\xe5\xd9\xe1\x0c\x33\x82\x12\x9c\x09\x76\x8b\xef\xde\x68\x9f\x9d\xeb\x5f\xb1\xe4\x42\x3a\x4f\x70\xce\xe4\xf1\xdc\x0b\xd5\x85\xfd\xbd\x88\x79\x22\x94\x61\xe0\xd2\xff\xcf\xd5\xac\xd6\x74\x95\x55\x60\x33\xc0\xcd\xd8\xea\x7f\x07\x48\x73\x01\xc1\x00\x32\x7b\x66\x85\xaf\x92\x27\xda\x83\xd6\xcd\x95\x47\xdc\xc9\x87\x43\xb7\x88\x0a\x34\x76\x48\x2b\xba\xde\x7a\x87\x46\xc0\x32\xb9\xa6\x21\x70\xb6\x6b\xb7\xe0\x04\xfb\x28\x5c\x75\x33\x6b\xdd\x00\x21\x0f\x86\xea\x7e\x0a\xdc\x57\x8f\x4f\x0b\x2d\xb9\xd6\xf1\x73\x0f\x33\x0f\x0a\xeb\xf3\xea\x49\xc3\xde\x48\x47\xfb\x6d\xe3\xd5\x05\x30\x32\x45\xda\xb5\xfe\x6d\xf3\xb5\xd5\xdb\x8b\x13\x1c\xfa\x50\x8b\x01\x48\x8d\xb0\xcf\x0c\x46\x17\xf5\x92\x09\x21\xc8\x94\x2b\x9c\xf2\x64\x64\x19\x10\x4c\xa7\xd9\x01\x6a\x04\x44\x66\xb1\xad\x3c\xaf\x89\x56\xd0\x6b\x26\x18\x95\x2d\xa3\x25\xd4\xfd\x7e\x3f\x42\x24\x3e\x84\x71\x70\x5f\xf8\x8d\x7f\x7d\xf3\x01\xfe\xf2\xe6\xe3\xcc\xce\x6f\xb0\xbc\xe8\x6e\x14\xc6\x1f\xc4\x3f\xa5\x59\xf7\xf6\xa9\xa9\xf2\xa7\x30\x0e\x9a\xb9\x26\x1c\x17\x7a\x26\x8c\x8a\xfa\x6d\x64\x41\x30\xe7\x38\xb2\x05\xe5\xd6\x2a\xa5\xed\x5a\x02\xba\x79\xe8\xf5\x60\xe5\xc5\xb0\x91\x67\x73\x0d\xcf\x00\x9d\x97\xfb\x40\x57\x5f\xc3\x31\x92\x05\x86\x36\xf3\x76\xdc\x36\x72\xfb\x08\xb8\x4b\x18\xaf\x39\x10\x04\x2d\x91\x06\x69\xe9\xbf\xb4\x45\x44\x5d\x87\x41\x96\x8a\xee\xeb\x66\xe0\x83\x3c\xaa\x01\x37\x8c\xe7\x08\xa6\xe9\x60\xee\x61\x78\xed\xdd\x74\x54\x8a\xdd\x71\x9e\xb3\x7e\x1d\xde\x6f\xea\xc0\x98\xb0\xd8\x0e\x1f\xcf\xc1\xc8\x9b\xcd\x42\xdf\x21\x82\x9e\xc3\x99\xa7\xd4\x49\xd6\x38\x0d\x03\xe8\xe0\x05\x74\xce\x28\x5a\x88\x77\xce\x12\xa6\x0b\x07\x27\xaa\x6d\x18\x97\x35\x1d\xd6\xad\xf7\x5e\x13\x4e\x98\xdc\x12\x84\x8f\x8d\xe7\x9d\xc3\xea\x9d\xea\x5b\xc1\x8b\x7a\x28\x39\x7e\x12\xc7\xd0\xc7\x03\x06\xbd\x40\x5f\x7d\x11\x80\xfc\x64\xb9\x5c\xc7\xa1\xef\x61\xc8\xea\xd4\x5b\xa1\xdb\x0a\x56\xd6\xd9\xbf\x24\xe3\x66\xb7\x19\x25\x6b\xba\x9c\x64\x46\xa6\x49\x96\x20\x77\xfc\x12\xe2\x6b\x08\x63\x27\x08\x67\x33\x88\x60\x8c\xc5\x42\x02\x0f\x7b\x3e\x8c\xc9\xf0\x43\xab\xa7\x6a\x7d\x9d\x04\xb0\xd9\x54\x6b\xc7\x9d\xd6\x3a\x91\x84\x1c\xb4\x3b\xee\x8a\xec\x44\x21\xa7\x82\xa2\x6a\x78\x0a\xc9\x0c\x71\x92\x4d\x9a\x71\x0f\x0e\x34\xf9\xef\xf4\x32\x59\xe3\xdc\xd1\xfe\x8a\x4e\x9a\x5a\x84\xed\xcc\x6d\x75\x0c\x54\xd7\xc6\x81\xb0\xec\xfe\xd6\xa8\x5c\x22\xc0\xe9\x8c\x46\xde\xd3\x4b\xfd\x9d\x43\x13\xe0\x0a\xee\x2d\x80\x57\x30\x22\xec\xd8\x80\xd0\x86\xc7\x99\x86\x69\xce\xdf\x90\x76\x67\xdb\xb4\xc2\x2e\xd7\x71\x00\x51\x8a\xbd\x38\x18\x58\xbe\x2b\x18\x81\x7c\x59\xdd\xb5\xa0\x97\xd9\xbe\xba\xf0\xca\x28\x39\xb7\x71\x12\x43\xc5\xd0\x44\xd0\x43\xf1\x80\x73\x93\x65\x19\x03\x54\x8f\x9e\xe8\x10\x7b\x97\x9c\x73\x76\x07\xa3\xcc\x28\x84\xe4\x88\x60\xb6\xd1\x3e\x38\x28\xac\xb6\xef\x9e\xbd\x7e\x75\xfe\xf3\x8b\xf7\x4f\x5f\x9f\x9d\xbf\x7f\xf1\xec\xf4\xed\xab\xf7\x3f\xbf\x7d\x91\x83\xab\xf0\x9b\xe4\x65\x4f\x4a\x58\x50\x36\x0b\x5a\xc9\x2d\x4e\x92\x15\x8c\x21\x72\xfe\x7f\xf6\xde\xbe\xbb\x6d\x1b\xd9\x1f\xff\xbf\xaf\x82\xe5\xd9\xd3\x63\xed\x52\x0c\x01\x3e\xfb\x7c\xbd\x4d\xea\x64\xdb\x6c\x93\x36\xb7\x49\x7b\xbb\x75\xf5\xeb\xa5\x25\x58\xe6\x5a\x26\x55\x92\x8a\xe3\x3a\x7e\xef\xbf\x83\x07\x92\x20\x09\x3e\x8a\x8a\x95\x44\xbd\xe7\x6e\x2c\x90\xc4\xc3\x60\x30\x18\x0c\x66\x3e\x13\x84\x11\xba\x40\x51\xc4\x10\x7e\x8c\x14\x60\x5d\x56\xe4\x3f\xce\x57\x5e\x87\xc1\x4b\xd2\x0b\x4c\x29\x69\xb9\xf1\x17\xa8\x6e\xa5\xd4\x42\x22\x08\xd7\x41\x5d\x58\xfe\x28\xab\x03\x73\x56\x79\x3d\xf4\x5d\x0e\xa4\x8e\x06\x11\xd7\xca\xf4\xa4\x82\x42\xf9\x43\xb0\xf8\x22\x9c\xc7\x7b\xc3\xe1\x4d\xbc\x0d\x1f\x8c\xb7\x9f\x86\xf3\x0d\xa6\x34\xb1\x7d\x8e\xc0\xdc\x9d\x67\xaa\x4e\x89\xa8\x76\xe0\xc7\xe4\x12\x45\xe9\x56\x45\x32\xdc\x89\x56\x61\xed\x66\x23\x4c\xa1\xc4\x6f\xe5\xf5\x6c\x7a\x60\x4c\xd8\x48\x9f\x1d\xf2\x65\x17\xf5\x64\x3b\xa1\x5b\x90\xb9\xad\x4c\xd2\x4b\xdf\xfb\x7c\x79\xa5\x95\x4c\x3b\x64\x99\x1a\x65\xf9\xa1\x39\xa7\xf3\x51\xe7\xf3\xe5\x9a\x46\x12\xed\x90\x63\x04\x67\xc4\x1d\x71\x4b\x03\xcc\x52\xb9\xba\x2d\x80\xa7\xfa\x41\x42\x76\xe8\x79\xf3\xa1\x72\x1b\x43\x69\x8b\x99\x74\x18\x55\x41\xa3\xff\x47\xfd\x8d\x07\x65\x1b\x14\xbc\xe5\x9d\x33\xd8\x35\x48\x10\x26\x53\xe2\x03\x42\x2e\x42\xc8\x5f\x8d\xee\x1f\x37\x7e\x72\x49\xa0\x76\x14\xf9\x72\x73\xed\x05\x14\x69\x2a\xf1\x93\x15\xc2\x7f\xf6\xbf\x41\xc9\xef\x29\xf6\xe4\xde\xe4\xed\x5e\x25\xfa\x7e\x11\xfd\x75\xf5\xea\xd7\x1f\x7e\x11\x5f\x9d\x78\x6b\x5f\x56\xe4\x85\x1f\x7b\xe7\x24\x7b\x1f\x7a\x87\xe6\x1b\x02\x24\x36\xf7\x82\x39\x91\x28\xd7\x28\x8e\x3d\x12\xa2\x35\xcf\x80\xdd\x19\x08\x95\x08\x9a\x69\xe1\x25\x1e\xcd\xe1\x9d\x1a\xdb\x16\xf3\x86\x1b\xf7\x84\x26\x18\x63\x1e\x7d\x8a\xfc\xd8\xdb\x24\xe1\x85\x9f\xc3\xa7\x93\x6b\xf9\x68\x5e\x8e\x16\x4b\x93\x5f\xa5\x77\x80\xc0\xa4\x89\x96\x49\x98\x3e\xfe\xd7\x9e\x29\xf2\xd5\xdb\x14\x7c\x8a\x14\x39\xec\x91\xcb\x72\x32\x6b\x55\x69\xcb\xe5\xf1\xac\x13\xc8\x69\x42\x98\xfe\xb8\x96\x1d\xec\x91\xf3\x90\xdc\x07\xf6\xbf\x22\x80\x7c\xd8\x2c\x81\xaf\x92\x6f\x22\x3f\x41\xd2\x15\x71\x95\xe1\xf1\x73\x28\x86\x30\x9e\x27\x79\xd6\x17\xdb\x27\x15\x69\x59\x92\x76\x82\x16\x9f\xa7\x3b\x17\x90\x8a\x36\x97\xce\x56\x2b\x3e\x3c\x28\xe6\x28\x37\x94\x33\xdd\x29\x28\x11\x80\x3f\x13\xb2\xb1\x10\xfe\x45\xd5\x73\x61\x8d\xf9\x55\xe7\xe8\xe0\xc7\xa7\x24\x2d\xda\x16\x2e\x12\x99\x37\x2a\x83\xb3\xc7\xd5\x92\xb0\xc7\x04\xbd\x13\x04\x2e\x66\xd4\x4f\xf3\xb1\x2a\xf2\xf7\x04\x7c\x4a\x91\xa5\x4b\x2f\x9e\xa6\x49\x79\x83\x0c\x82\xaa\xeb\x45\x1c\x7b\xed\x7b\x74\x2b\x85\x91\x74\x91\xa1\xda\xd4\xc2\x51\xd2\xef\x69\x4e\x5b\xa6\x25\x90\xf5\x17\xce\x09\x1c\x54\xfe\x37\x1d\x1c\x14\x43\xee\xb3\xc1\xb0\x41\x14\xee\x2e\x99\x72\xa2\x2b\xb2\xb7\x58\xf8\x0c\xb9\x30\xe3\x9b\x52\x32\x5d\x01\xdb\x94\x03\x3b\x59\x27\x79\xd4\x1e\xd1\x78\x0d\x05\xeb\x3b\x24\x75\x6f\x1a\xb9\xdc\x4c\x02\xa6\xb1\x31\x02\xbe\x09\x25\x9a\x2b\x4f\xf2\x58\xad\x8a\x84\x82\x85\xe4\x49\x57\xe8\x96\x5e\xc7\xa4\x1f\xce\xc3\x45\xc1\xe3\xec\x51\x46\xef\xad\x91\xc0\xf5\x0a\xd3\x17\x50\x3b\x7a\x4e\x44\x1e\x1e\x9f\x4f\xa2\x20\xd4\x5e\x50\x51\x56\xc1\x23\xa1\x91\x6a\x80\x4b\x11\x73\xdf\x6b\xe6\xea\x82\x93\x1f\x5d\x4e\xe1\x72\x59\xe3\xdf\x57\xbf\x24\x5b\x55\x7b\xc0\x2d\x00\x48\x58\xf5\xbf\x31\x73\x16\xb2\xf0\x66\x80\xe6\x57\x68\x51\x5e\xc5\xa6\xe2\xce\xf2\x87\x1c\x73\x92\x24\xd1\xe9\x36\xd5\x8f\xb1\x21\xe1\x5a\x52\xe7\x79\xf8\xae\x28\xfc\x88\x4a\x56\x14\x6a\x0d\x3a\x77\xbd\x68\x38\x4d\xd9\xb5\xee\xe3\x36\x71\xa1\x17\x3d\x32\x9b\x28\x6f\x90\x6d\x82\xe2\x32\x0c\x17\x8d\x2c\x29\x76\x27\xe1\x58\x96\xf0\x78\x96\xb6\xbc\x6d\x92\x53\xc7\xa4\x05\x9a\xa2\x85\x9f\xe0\x3e\x95\x92\xa8\x67\x79\x60\x78\x5c\xb1\x30\xb8\x42\xb7\x04\x15\x53\x84\x31\x99\x62\x61\xf6\xda\xd3\x2a\x49\xc7\x39\x6a\xfd\x52\x83\xfb\xd7\xc4\x79\x19\x4a\x44\xd5\x66\x9d\x92\x2c\x9b\x4c\xad\x3b\x9e\xa5\x5e\x31\xcf\x93\xa0\xd7\xac\xae\x5e\xa2\x23\x9f\xfd\xf6\xd3\x8d\xdd\x0a\xfd\xd3\xe5\x0e\xb0\x6e\xe5\xa4\xc9\xd9\x5b\xcf\xba\x80\xee\x3c\x5e\x84\xbc\x54\x88\x70\x7b\x6a\x39\x1c\x58\xa8\x82\xcc\x32\x51\x94\xe5\x8b\x17\x66\x9f\xef\x26\x57\x46\x51\xa1\x40\x0f\xee\xeb\xb8\xcb\x89\x32\xb0\x0c\xdf\x33\xc5\xb9\x10\x06\xe8\x7c\x6d\xa0\x4b\x05\x45\x7b\x56\xc4\xcd\x18\xbc\x25\x9e\x6f\x92\x84\x6d\x3a\xa6\x92\x4f\x46\x35\x87\x67\x4e\x74\x3f\x7e\x15\xf9\x71\xe2\x07\x28\x03\x5b\xe3\x1f\x3e\x0f\x48\xf2\xe3\xc2\x33\xc1\x1c\x33\x5d\x29\x3f\x4c\x65\xbe\xd8\xde\xdb\x32\xbb\xf7\xf1\xc2\x2d\x0e\xa8\x92\x50\xaa\x74\x98\x32\x4a\x03\x28\x74\xb0\x44\x10\xc1\x58\xd8\x20\x48\xe2\xe2\xc2\x6e\x47\xcf\xb0\x03\xec\x38\xfb\x36\xd5\x87\xd9\xac\x9d\x4d\x91\xba\x3c\xca\x64\x39\x4a\x21\x9d\xc3\x74\xe1\x7b\xab\x70\x99\x6d\xff\xa9\x5d\x84\xc4\xae\x77\x49\x1a\x70\x85\x6e\xbf\x1e\x9a\x13\xa2\x43\xba\x95\xc1\x70\x96\x80\x9f\x5f\x0e\xb4\x87\x61\xca\xb3\xcd\xa7\x6d\xd2\xa8\xf6\x9a\x57\x44\x77\x9d\xd2\x0e\x65\x71\x9c\x91\xe6\x11\xa8\x1c\xd5\x9f\xe6\xed\x76\xc3\x78\xb2\x86\xa3\x5e\xb2\x39\x1d\x48\x3a\x47\x61\xc3\x98\x16\xf2\x7e\x94\x39\x44\x91\x1f\xe7\x76\xb5\xc7\xf3\x8c\x8d\xd3\x98\xd6\xd4\x79\x03\x2a\x46\xc5\x73\xbd\x69\xdc\xba\x62\x28\xe2\x5c\x0a\xbd\x03\x19\x3b\x79\x2e\xb5\x0a\x10\x58\xde\x8b\xfb\xa2\x71\x55\x9f\xd7\x1b\xa5\xf3\xec\x07\x51\x31\xa7\x41\x18\x64\xb6\xcb\x9c\x69\x65\x2f\x09\xcf\x73\xaf\xfd\xc6\x20\x44\x72\xfe\x23\x5d\x43\x41\x42\x0c\xd7\x17\xc9\x34\x89\xfc\x6b\xfc\xb7\x17\x27\xbc\xd5\x9b\xfc\x0f\xb1\x70\x66\x06\x4e\xde\xbe\xc9\x59\x33\x53\x14\x7d\x62\xcb\xcc\x6d\x66\xf2\xdc\x0b\x68\xe7\x57\x68\x48\x00\x41\xc1\xdc\x3c\xb2\x05\x5c\x41\x01\x3e\xf8\x44\xc7\xf4\x55\x3f\x20\x16\x6b\xe6\x74\x7a\x24\x9f\x27\xa1\x27\x4f\x14\x4c\xae\xe3\x2f\x35\x25\xcd\x42\x71\x9c\x59\xb9\x27\x77\x58\xf0\xa9\xe9\x60\x8f\x54\x55\xf5\xa2\x25\xf1\xa7\x88\x27\xf7\x4a\x3a\x51\x3d\x3e\xa0\xe5\xfc\x07\xf7\x0a\xcb\x36\x75\x7c\x47\x75\xdf\xfc\x21\x52\x92\xc9\x1d\x35\x92\x07\x27\x89\xba\x44\xc9\x53\x2f\xf1\x8e\x26\x5f\x24\xd1\xed\x5d\xa2\x5e\x7a\xc1\x62\x85\x9e\xbd\x45\x41\x72\x84\x26\xf7\x73\x2f\x99\x5f\x1e\x45\xe9\x17\xc9\x09\x52\xe9\x8d\xd9\x17\x2b\x94\x48\xde\x17\xf1\x8d\x8f\x5f\x48\x48\xbc\xf8\xe4\x8e\x04\x9c\x52\xf5\x9c\x91\x27\x46\xc9\x51\x90\x2a\xc3\x0a\x19\x08\xa3\x9f\xca\x96\xff\x51\xa2\x92\x2f\x26\x93\x2f\xce\x23\xe4\x5d\x7d\x41\x2a\xe1\x2c\x63\xc7\x1e\x9b\xb3\x25\x4a\x8e\x70\x0d\x19\x17\x4e\x94\x42\x23\xdf\xa3\x5b\x59\xf9\xbf\xbf\xdd\xc9\x8f\xe4\x2f\x4f\x4e\xbc\xaf\xbd\x63\x59\xbe\xff\xdb\x1d\xab\xff\xfe\xff\x0a\x0d\x10\x7e\xe6\x3a\x49\x2b\xa6\x5c\xfe\x25\xe9\x27\xfe\x3b\xfd\x84\x49\xc1\xe3\xe4\x32\x0a\x6f\xa4\xe8\x1e\xff\x37\xf8\x26\x64\x9f\xd2\xdb\x3e\xff\xf6\x7f\x6e\x5f\xfc\xec\xfd\xab\x31\xbd\x6d\x7a\xb3\x9b\xfe\x9b\xdd\x38\x64\x86\x20\xee\x1a\x24\x46\xc1\x82\xde\x30\xac\x23\x14\xc7\xa7\x2c\x45\x4b\x35\x45\x47\x9e\x34\xf7\x71\x96\xa9\x85\x45\xc9\x96\xb2\xc4\x12\xe3\xbf\xe0\x5a\x25\xf1\xce\x37\x2b\x2f\x2a\xe5\xb5\x2d\x84\xd1\x5e\xbd\xa5\x09\x6c\x67\x34\x7e\x56\x9f\x55\x42\xa5\xa0\x02\x8c\x51\xaf\x2b\xfa\x67\x8d\x4a\x35\xca\x62\x0e\xca\x1f\x58\x85\x7d\xb2\xd8\x75\xea\x60\x14\xde\x0c\xea\xdd\x82\xb3\x59\x15\x75\x5c\x7a\x7e\xfc\x17\xb3\x35\xcf\x14\xf9\x22\x35\x43\x5f\xf8\x2b\x1e\xc6\xb5\x21\xc8\xd8\x93\xcb\xee\x01\xa0\x84\x65\x21\x6c\x69\x31\x57\xaf\xde\xaa\x59\x7b\xf4\x27\x5a\xf8\x49\x01\x08\x14\x7f\xf6\x7d\x29\xc3\x46\xe9\x08\x5f\xf5\xa0\xe4\x3f\xa3\xb5\x98\xe5\x6a\x0a\xf6\xdf\xb2\x6a\xb6\x93\xc9\x1b\x9c\x46\x50\x5e\x87\xeb\xf0\x2d\xf1\x26\x0e\x36\x59\xbd\xe8\xdd\xda\x0b\x16\x64\x09\x17\xae\x12\xaf\xd0\xed\x79\xe8\x45\x8b\x27\x0c\xed\xb8\x3c\x13\x25\x7c\xd2\x4c\x63\x4b\xe9\x42\xc0\xea\x8b\x06\xda\xd2\x31\x44\x9b\x65\x49\xdd\x0a\x5f\xd2\x8f\xfa\xe8\x9e\x1d\xa8\x96\x44\xfe\x72\xd9\x3f\x95\xdb\xcb\x30\x42\x0d\xe8\x14\xb5\x79\x02\x47\x0b\xaf\xc8\x4f\x72\x5a\xf9\x7e\xa3\xe9\x2a\x53\x7c\x83\xd9\xd1\xc6\x2b\xb7\x3a\x0b\x35\xdf\x51\x78\x72\x83\xfb\x8f\xd0\x55\xe8\xe1\x16\x7d\x6d\x0b\xbf\xf8\xe8\x46\x56\xe4\x67\x5c\x9d\xf5\x67\xaf\x96\x10\xbc\x36\xaf\xab\x3c\x8b\x64\x2b\x6d\xf9\x5b\x55\x7a\x91\x70\xc6\xd2\xa9\xf6\xa5\xb8\x4c\x8c\xf1\x64\x8b\xa6\x95\x38\xb3\xee\xc7\x4d\xd1\x85\x14\xdf\x78\xeb\x75\x94\x83\x95\x09\xac\xa2\xa3\xc5\xd4\x2b\xed\xdc\x85\xdc\x8e\x35\xd9\xa8\x2a\x46\x79\xb6\xe9\x2a\x34\x19\xa2\x92\x8b\x49\xe5\x4c\x53\xb4\x3e\xa9\xa7\xb4\x4a\x14\x0f\x24\xf7\x5a\x59\xca\xdf\x21\xf1\x3a\xc2\xfb\xa8\x34\x45\x64\x25\xf5\x66\xd3\x89\xb5\xc6\x2a\x57\xd7\x6b\x9a\x1b\x72\xbc\x3e\xa7\xf3\xde\x96\x31\x52\xea\x9a\x35\xf2\xfb\x5f\x24\x14\x24\xd1\x6d\x35\x67\x64\xe3\xda\x1a\x8d\x40\x39\xa3\x0c\x8b\x49\x86\xe2\x98\xe4\x9e\x24\x4d\x91\xd5\x79\xfc\x87\xba\x34\xb3\x43\x53\x44\x17\x56\x5f\x79\xd1\x95\x8c\x5b\x50\x24\x35\xa8\xf5\x8a\xe0\xc9\x96\x6c\x9d\x22\x33\x63\xb6\xbf\xb7\x28\x00\x00\x96\x53\xe2\x96\x1d\x39\xb7\x1c\xb1\x20\xb7\x6d\x1b\x0f\xd5\x46\x4f\x0e\xfc\xa0\x6e\x82\xc7\x9f\x4e\x2a\x33\x2f\xc2\x28\xd5\x05\xac\xfe\xf0\x6d\xfc\x7f\xd4\xbe\xfc\x40\xa4\x13\x18\xc3\x9a\xbd\x35\x07\x16\xba\x78\x0d\x37\x25\x9d\xed\xb2\xef\x0f\x77\x85\xfd\x74\x15\x2d\xc8\x14\xa9\x2d\x48\x58\xb6\xb6\x56\xec\xdc\x8a\xad\x38\x1d\x50\xe2\x5a\x93\xd8\x56\x0d\xc7\x02\xf6\xeb\x02\x00\x47\xec\xad\x97\x11\xba\x98\x26\x21\x0f\x00\xf7\xe7\x06\x11\x37\x08\xf2\xa3\x03\xec\x1b\xb3\xca\xf2\x86\x56\x82\xfa\x9f\xfe\x20\x56\xd6\xb9\x17\x0c\xb3\x8f\x6e\x95\x7c\x76\x54\x34\xb7\xab\xb7\x7b\x98\x6f\x76\xfd\xe6\xfc\xe5\x77\xff\xfa\xd7\xcd\x21\xdf\xec\x90\x7c\xb3\x57\x6f\x47\x4b\x34\x6b\xe4\xba\xd5\x21\xd1\x6c\x66\x73\x11\xc0\xba\x5e\xbd\x1d\x3d\xc5\x2c\x10\xa4\xe8\xeb\x9e\x63\xb6\xf0\xf5\x48\x49\x66\x87\x0f\x7e\x40\x7a\xd9\xae\xc3\xaf\xcb\x2f\xdb\x95\x00\x1f\x51\x82\xd9\x3c\x21\xd1\x21\xc3\x6c\xa3\xa2\x70\xc8\x30\x7b\xc8\x30\x7b\xc8\x30\x7b\xc8\x30\xfb\xb1\x65\x98\x15\x20\xf8\x95\x62\x2a\xf6\x3b\xc3\xac\x5b\x28\x7b\xa8\x04\xb3\x75\x3b\x7f\x21\xc4\xe4\x90\x61\xf6\x90\x61\x56\xb8\x2b\x5c\x31\x14\x80\x11\xf3\xcb\x92\x2a\x3f\xb3\xec\xb2\xc5\x33\x01\xa6\xc0\x21\xa9\x6c\x2f\x59\x9f\x9f\x88\x72\x7f\x0e\x72\x58\x13\xcb\xac\xbe\x82\x5e\x2e\x65\x94\xa5\x2b\x80\x66\x91\xbd\xc3\x07\x8f\xfb\xfb\x74\x15\xd4\x8b\x7e\x28\x10\xfd\xb0\xca\xf8\x23\xa5\x7e\xdd\xe2\x4c\x4a\xf8\x8f\xcf\xf0\x5a\x48\x92\xdb\xc0\x92\x87\xe4\xad\x87\xe4\xad\x9f\x49\xf2\xd6\xef\xd1\x6d\x4b\xbe\xcb\x6a\x1a\xa9\x92\xcd\x25\xab\xa7\x25\xcd\xa5\x20\x3f\x93\xb0\x26\x3f\x58\x74\xca\x3e\x5a\x5c\xec\xa4\x09\xb2\xe2\x5b\xbb\x8a\x1b\xe8\x94\x5f\xb4\xae\x85\x43\xa2\xce\x8f\x26\x51\x27\x2f\x5b\x3a\xe4\xed\xe2\x0e\x0f\x5b\xa5\xe3\xe2\x9b\x6d\x4b\x55\x55\x59\x82\xa0\x54\xba\x47\xa9\xe1\xfa\x8e\x4b\x90\x7b\x8b\x2f\xde\x9f\x24\x70\xbd\x4d\x0c\x1d\x19\xaa\xa7\x82\xbc\x53\x3e\xab\x08\x56\x50\x2e\xde\x55\xb2\xd3\x2e\xa2\x7a\x17\x1c\x58\x95\xf4\xa0\x52\xfe\xa1\xc7\xbc\x03\xde\xac\x3e\xfe\xf4\x13\xc2\x75\x8c\xce\xda\x5d\x6a\xb8\x34\x19\x5c\x06\x44\xb6\xb3\xac\x70\x82\xdb\xfa\x87\x76\x20\x58\x85\xde\x02\xed\x8d\xe7\x00\xfc\xcb\x7f\x0d\xbf\xd3\x6b\xd2\xb2\xf4\x4d\x03\x47\xc7\xc6\xae\xd0\x41\xd9\x22\x92\xa9\xdf\x6f\x97\xa9\xd3\xcf\xbb\xeb\x15\xe1\x84\xcb\x24\x59\x1f\x3f\x7a\x74\x73\x73\xa3\xde\xe8\x6a\x18\x2d\x1f\x41\x4d\xd3\x1e\xe1\x37\x6b\x1f\x92\x6f\x1f\x15\x6a\x3a\x7e\xc7\x32\xc8\x54\x3f\x01\xae\xeb\x3e\xaa\x7f\x2c\xa8\xf1\xc6\x5f\x24\x98\x0d\x0d\x63\xfd\x2e\x2d\xbb\x44\xf4\x30\x54\x28\x7c\xeb\xa3\x9b\x6f\xc2\x77\xb2\x22\x6b\x92\x26\x19\x86\x64\x18\xd9\x23\x14\xc5\x94\xf7\x81\x0a\x84\x26\xa2\x94\x28\xcb\xd6\x9b\xc4\xb9\x1f\xcd\x57\x28\xf3\xa2\xc2\x75\xa6\x3f\xe6\xb8\x71\x68\x67\x3f\xf1\x22\x82\xec\x97\xa9\xc8\x49\xe4\x05\xf1\x45\x18\x5d\x4f\xc3\xc8\x5f\xfa\xc1\xb1\x04\xed\xf5\x3b\x09\xb2\x21\xd4\x42\xd1\x74\x6d\x19\xf4\x68\x19\x8c\xda\x72\x69\xcc\x46\xfb\xa0\x8d\x5d\x8d\xba\xb9\x6d\x30\x6e\xdb\xb0\xd0\x74\xd6\x13\xf1\xb0\xd7\xef\x48\xf3\xbb\x68\x19\xb6\xb6\x0c\x47\x6b\xd9\xe8\x33\x68\x63\xdc\x51\x1b\x7d\x86\x6d\x8c\x3b\x6e\x5d\x2f\xf2\x59\x53\xd3\xba\x8e\xd9\x6c\x34\x0e\x07\xdd\x5b\x06\x60\xcc\x96\xcb\x63\xd6\xda\x07\xad\xed\x6a\xd4\x8d\x6d\xd3\x61\x8f\xd6\x76\xd6\x18\xe3\x71\xd0\xc8\x67\x1a\xe6\x71\x30\x5a\xdb\x85\xa6\xb3\x19\x10\x37\xbd\x7e\x47\xc8\xbe\x93\x51\xb7\x34\xad\x8d\xdb\x76\x1f\x82\xb7\xd2\x5b\xae\x2d\x1c\xb8\xc5\xc3\xa2\xf0\x85\xdd\x17\x24\x84\xdb\x2d\xc8\xe6\x96\x1b\x17\x05\x6d\x7a\x8b\x45\x01\x1b\xa6\x08\x36\xee\xb3\x78\x8a\xe0\x16\xdb\x2c\x6c\x62\xcc\x96\xa6\xb5\x51\xdb\x76\x0b\x4d\xbb\x4d\x2d\xbb\xeb\x77\xf8\xff\xc7\x69\x57\x37\x8b\x8b\xd1\x6c\x14\xbd\x26\x5e\x8c\xe6\x8e\xda\x6e\x1c\x34\x69\x7a\xb4\x51\xbb\x3d\x06\xed\xb6\x8e\x79\xd7\x62\xc0\x29\xf4\xd6\x69\x5c\x8b\xce\xfa\x9d\xe4\x8c\x45\x26\x60\x75\x6f\x19\x58\x63\xb6\x5c\x1a\xb3\x6e\xb5\x0e\x5a\xb7\x76\x34\xea\xe6\xb6\xc9\xb0\xc7\x6b\xbb\x38\x6c\xd8\x48\x71\x3c\x6a\x38\x1a\xc5\x8b\x2d\x83\xc6\x41\xe3\x96\xc1\x68\x63\xd6\xad\x1e\x83\xc6\xa4\x1e\x71\xd4\xa5\xb6\x9b\x87\x4d\xda\x6e\x1e\xf7\xe8\xa2\xc0\x6c\xda\x97\x41\xf3\x01\x98\x1c\x8a\xb6\xd8\xa1\x1a\xdb\xd6\xdb\xdb\xd6\x47\x6b\x1b\xc0\x1e\x3b\x33\x80\x5b\xee\xcc\xc5\xb6\xf5\x3e\x6d\xeb\xe3\xb6\x0d\x8a\x3b\x24\x68\xdc\xa8\x00\xde\x22\xc1\x16\xbb\x73\x69\xbe\x8b\x9b\x24\x6c\xdc\x9e\x21\xde\x25\xe1\x16\xfb\x73\x63\xdb\xcd\xe3\x26\x6d\x8f\x37\xee\x12\xcd\x9b\xc7\x4d\x68\xde\x3c\xee\xd1\x45\x82\xdb\xb4\x2c\x9b\xd9\x13\xb6\xb3\x67\xa5\xbb\xa5\x82\xca\xcf\xa6\x5b\x85\xfe\x26\x7c\xde\x5e\xfe\xf0\xb6\xfb\xf9\xd5\x34\x46\x34\x9b\xfd\x3e\xa5\x08\x31\xbe\x73\x2f\x7f\xbb\xb1\x6a\x80\xb1\x08\xf6\x4a\xd4\x3d\x37\x08\x01\xca\x22\xd9\x03\x2e\xd8\x77\x0c\xc9\x3b\xfd\x9d\xa6\xf5\xc8\x01\xb0\x38\x34\xbc\xc7\x29\x8a\x5c\x9f\x7b\x83\x9c\xae\xd3\x2c\x31\x85\x4d\x5d\xed\x2a\x77\x08\x69\x8a\x92\x74\x58\xec\x22\x33\xa6\xb6\xfd\x6a\x3e\x92\xac\x3f\xbc\xc7\x53\x09\x60\x41\x7e\xf4\xb7\xbb\x0c\xf5\xef\xfe\xd1\xdf\xee\x28\x16\x20\xfe\x6b\x31\xbf\x7f\xc4\xfa\x96\x5f\x86\x9a\xb9\x37\x05\x0f\x16\x98\x21\x08\x2e\xe6\x72\x06\xb8\xa0\x9c\xc9\xaf\xb2\x77\x52\x9f\x77\x5c\x8a\x99\x9f\x7e\xc0\x97\x3e\xcd\xd2\x2f\xf3\xc9\x3d\x48\xd8\x0c\xeb\x84\xfc\x22\x9c\x5f\x49\xaf\xcb\x7d\xd2\x2a\xde\x4a\x90\x7a\x6f\xf3\xff\xc2\x42\x90\x0a\x97\x5c\x40\x54\x8b\x9d\x3b\x29\x8a\xbf\x1a\x1b\xf9\x88\x46\x73\xf5\x76\xed\x92\x33\xac\xd7\xca\x2a\x0d\xc2\xc4\xbf\xf0\xe9\x15\x64\x2c\x2b\x67\x0c\x17\xc2\xcd\xe7\x8f\x32\xf5\xac\x8a\xa7\xc5\x3c\xdc\xdc\x42\x8c\x1b\xee\x2e\xe1\xb0\xbc\xbb\xb2\x18\xf1\xb3\x8b\x23\x62\x27\xa2\x30\xc0\xfc\x3d\x22\x89\x2d\x26\x89\x22\x3f\x4e\xc1\xfd\x33\xda\xa4\x68\x3d\x1d\x49\x24\x0a\x8f\xef\x44\xa4\x9e\x69\x77\xca\x9b\x6a\x21\x55\x05\x91\xd6\x64\xb9\x4e\x69\xe8\x73\xdb\x96\x5c\x89\x03\x94\x33\xf7\x2c\x83\x17\x03\x14\x24\x6f\x90\x8f\x5b\xd6\x54\x01\x50\x59\x88\xba\x27\xf8\xa8\x1c\x50\x58\xec\xcd\x60\xac\xf7\x4a\x7f\x9e\x3f\x1d\xdc\x1b\xfc\x69\x6d\x64\x64\xed\xf8\x9b\x93\x61\x08\x5a\x6c\x08\x8e\x11\xc3\xfa\x11\x1f\x95\xc5\x5c\x0d\xc2\x05\x8a\xd5\xf8\x32\xbc\x91\x39\x12\x92\xf6\x9b\x32\x22\x55\x5a\x11\x7c\xdc\xd4\xa9\x4e\x89\x3c\xda\x09\xf5\x14\xad\x48\xd6\xc1\x9e\x73\x53\xce\x50\x83\xbb\x8d\x37\x1f\x56\x9d\x38\x5d\x40\x7b\x6f\xde\xbc\x79\x31\xb8\x2f\x90\xef\x0b\xa9\x68\xa6\xc8\xd3\x36\xd8\xb3\xba\x9e\x7c\x83\x2e\xbd\xb7\x7e\xd8\x25\xc7\x92\x98\x6d\xf3\x0a\x2a\x0b\x29\x15\x01\x79\x04\x95\x46\x7c\xa5\x89\x72\x35\xa6\x14\xf8\x0e\x79\xab\xe4\x52\x3a\x65\x35\xf7\x5f\x0e\x65\x71\x55\xf4\xf4\xb6\x48\xd0\x4e\xb0\x4c\x48\xa0\xac\x36\x0c\x9f\xab\x6e\x2d\xe4\x1e\xbb\xb2\x22\xe5\x00\x71\x6d\x4e\xba\xdd\x32\x81\x4c\x87\x27\xaf\x68\xc4\x28\x6f\x5d\x88\x82\x23\x52\x95\xbe\x24\x0b\x14\x83\x1f\x97\x52\xe5\x6e\x56\x81\x47\xd4\xfa\x07\xd7\xf3\xdb\xff\x76\xe8\xf7\x3e\xcd\x5a\xe0\xa5\x00\x68\xbc\xe6\xb9\x8f\x50\xf8\xed\x60\x61\x54\xd9\x01\x02\x5c\xb0\x02\x3c\x68\x15\x6a\x28\x83\xbb\x2f\xeb\xc0\xa3\x21\x80\x3d\xcf\x89\xcd\x48\x5c\x19\xe1\x60\xaf\x47\x31\xca\x7c\xa7\x19\xd9\x0e\x61\xbf\x1d\x7f\x2f\xdf\x16\x8d\x9e\xb1\xcd\xe3\xcd\xb9\x20\xb8\x69\xf0\x34\xa6\x48\x89\xd9\x74\x6e\x31\x91\xcd\x23\xcc\x13\x11\xb4\x8f\x50\x1f\x73\x84\x22\x9c\xb5\x2d\x98\x13\x2a\xba\x52\xf5\x95\xed\x50\xe9\xae\x62\x77\x4b\x8d\x10\xf6\x6b\x74\x96\xbd\x08\x52\xac\xac\xff\x86\x3e\xfe\x67\x99\x25\x33\x60\xc8\x58\x9b\xc8\xc7\xaf\xac\x19\x4e\x3c\xe7\x50\xcb\x9f\xc7\x0a\x60\x5c\x8b\x4d\x44\x25\xf7\x45\x14\x5e\xa7\x69\x12\xa8\x9f\xed\x30\x24\xad\x1a\xfb\xd5\x5e\x99\xd5\xf6\x09\x6f\xde\xf8\xeb\xfa\xc7\xeb\x5f\x7f\x7e\xd9\x09\x6f\xbe\xaf\x71\xad\x62\x43\xcb\x40\xe4\xeb\x0d\x68\x8e\x22\x63\xfa\x34\x61\xc8\x17\x6c\x69\x1c\x9a\xbc\xcb\x4e\xea\x45\x30\x79\xed\x01\xc1\xe4\x05\x87\xe4\xa6\x33\x72\xab\x7a\x99\xee\x36\x85\xf0\x3e\xa0\x54\x2a\x1e\x8a\x83\x28\xac\xbf\x62\x29\xcf\xda\x4b\x0f\xb4\x02\x43\xc6\x3c\x5c\xdf\x4e\x59\xa2\x9d\x4a\x1c\x46\x4a\xcd\x42\x3d\x0a\xfb\xa7\x62\x44\x69\x55\x5b\x79\x81\x38\x06\xa4\xfb\x02\x25\x9e\xbf\x1a\x10\xa8\xd6\x69\x92\xdb\x67\xb7\x06\x73\x49\x7c\x32\xe2\x76\x92\xe7\x4f\xbb\x5d\xc0\xd4\xda\x0a\xc6\x9f\xbb\xee\x3c\xd3\x8c\xd5\xdf\xb6\x0b\x96\x48\x47\xa4\x05\x99\xe1\x45\x66\x15\x10\x92\x13\xa4\xe4\xa4\xda\x05\x64\xd3\x15\x54\xf2\x32\xa7\x83\x21\x66\x81\xde\x64\x06\x4a\x31\xde\x96\x92\xa2\x93\x99\xa1\x8e\x36\xa5\xc1\x26\x49\x03\xd3\xf4\x1e\xe5\x9b\x37\x2f\xea\xc6\x28\x3e\xe8\xf1\xf9\x16\x53\x8b\xc5\x40\x98\xeb\x26\x5e\x9d\x76\x60\x8b\xfa\x53\x73\xbd\x99\x23\xeb\xf5\x00\xae\x6b\x9f\x9b\x73\xde\x02\x33\xce\x04\xa5\x36\x99\x41\x9c\x48\x07\x5c\x6b\xd6\x69\x9c\x74\x21\x2c\x00\xb3\xf4\xa5\xd6\x99\x1c\x84\xf6\x35\xcd\xc2\x74\x5a\x34\x08\x6d\x23\x14\xa9\x1e\x90\x9b\x81\xc6\x21\x27\xed\xe0\x40\xe9\xd9\x6c\x5a\xb2\xb7\x36\x2d\x31\x13\xdb\x4c\x0c\x3f\xa9\x65\x91\xe0\xdb\x45\x99\x37\xa8\x16\x4e\xeb\xb2\xe8\x8c\x2d\xc1\x35\xd8\xcd\x72\x35\x64\x6b\xb0\xc7\x56\x08\x86\xe7\x78\x19\xdd\x3a\x15\x0f\x32\x4c\xed\xcc\x28\xd5\xcb\x38\xa1\x09\xce\xee\x29\x48\x8c\x25\xc0\x8d\x01\x3b\x01\xa2\xcf\x4d\x50\xdd\x0f\xe1\x75\x2f\x89\x92\x3a\xee\xcc\xdc\xd4\x6e\x6a\xca\x35\x2d\x53\x8c\xd0\x50\x63\xc7\x1d\x65\x06\xc7\xb2\xbe\x54\x6c\x4b\xbd\xe7\xa9\xa7\x45\xa9\x69\x50\xc6\x58\x83\x2a\x9b\x93\x06\x32\x9c\x38\x9b\xe6\x00\x74\xf5\x31\x80\xd5\xc5\x31\xcd\x49\x18\xae\x12\x7f\x5d\x30\x10\x95\xcd\x3c\x24\xe8\x7a\x13\xf8\x1c\xf4\x7a\x6a\x5e\xda\xd2\xe4\xb3\x3f\x30\xea\xf5\x0e\x09\xfb\x62\xfb\xf9\x59\x37\x9d\xef\xd7\x2f\xfe\x12\xdb\x7e\x70\x97\xe7\x88\x19\xef\xe6\xc5\x64\x80\xa9\xb7\x54\xea\x27\xd2\xaa\xb1\xc0\xfc\xe2\x21\x73\x29\xe9\x8d\x21\x05\x4a\x8b\xb2\xb7\xe9\xc4\xc9\x07\x93\x8a\x04\x7e\x62\xf8\x64\xc2\xb6\xa2\x97\x5d\x61\x06\x38\xa9\xc8\x19\x1a\x05\x54\xce\xe4\xef\x72\xdb\xd1\x30\x39\x92\xe9\x68\x49\x14\x06\x05\x37\xca\x67\xb8\x6f\x5f\xd6\xe8\xad\x9d\xd3\xa4\xa5\x1d\xfd\x86\x24\x29\xda\xba\x9b\xf5\x1b\xd5\x9b\x4b\x14\x21\xe9\xc6\x8b\x25\x2f\x90\x08\x5d\x73\x45\xc7\x0f\x96\x52\x72\x89\x0a\xf7\x70\x6a\xf1\xb6\x59\xa0\xfe\x1a\x39\x80\x37\x87\x0c\x44\x2d\x39\xc3\x0e\x1e\xc5\xb1\x9c\xe7\xa7\x37\x42\x61\xa0\x54\x5a\xa5\xe3\x3c\xe6\x2f\x7b\x8a\x5d\xe8\x6c\xd1\xaf\x3d\x81\x0c\x30\xf4\x0b\x00\x31\x7a\x18\x03\xb7\x5b\x31\xf1\x86\x65\x2b\x1c\xb6\x66\xc0\x6e\xd7\xcc\x6b\xda\xbb\x51\x56\x0d\xf8\x10\xab\xe6\x3f\xe1\x26\x2a\x2c\x0b\xe9\xd2\x8b\xa5\x73\x84\x02\xee\x98\xb0\x50\xdb\x74\xbe\x51\xee\x8b\x7a\x61\xb4\x34\xe4\xc7\x26\x68\x90\x44\x47\x40\x7f\x6e\xbb\xf7\x0b\x36\xd9\x87\x57\x02\x96\xe1\xbe\x6c\xf7\xbf\xfc\xf9\x32\x5c\x2f\x97\x62\x0f\xea\xaa\x23\x73\x11\xc6\x24\x85\x0a\xc9\x23\x43\x32\xa0\x90\xbc\x68\x3c\xac\x13\x96\x8e\x7c\xbe\x89\x22\x14\x24\xa7\xe1\x4a\x60\x3d\x4b\x17\x4c\xe2\x27\x45\x07\xc6\x53\x42\xfb\x0a\xef\x67\x0b\xcc\x63\x79\x7d\x0d\x45\xc6\xdc\xf7\x12\x6a\xaa\xe6\x6a\xae\x0e\x80\xa2\xa9\xa6\x0e\x1c\x68\x3a\xba\x25\x9d\x02\x5b\x35\x6d\xdd\xb2\x35\x47\x99\x6a\x2a\xd0\x75\x17\x5a\x9a\x06\x25\x60\xa8\xae\x0e\x5c\x0d\x40\x52\x6e\x9b\xd0\x82\x9a\x0b\x25\x00\x55\xdd\x35\x35\xd3\x74\x15\x4d\x35\x00\x30\x34\x0b\x00\xe9\xd4\x55\x1d\xd3\x01\x86\x0b\x2c\x45\x53\x5d\xd7\xd1\x6c\xd3\xd4\x1d\xc9\x56\x4d\x0d\xda\x8e\x6d\x43\x05\xaa\xc0\x35\x35\x60\xba\x92\xa9\x9a\x3a\x69\xc7\x55\x74\xd5\x71\x1d\xdd\xd0\x35\x20\x9d\xea\xaa\x69\xe9\xae\xed\x42\x43\x31\x55\x4b\x03\x96\xad\x01\x20\x41\x55\x33\x34\x4d\xb7\x74\xa8\xd8\xaa\x6d\xba\x2e\xd0\x74\x28\x01\x55\x73\x75\x07\x02\x68\x2a\x40\x53\x81\x63\xda\xa6\xae\x4b\xa7\x9a\x0a\x0c\xdb\x02\x06\xb0\x80\x02\xa0\x6a\x01\x60\xea\x86\x2b\xe1\x01\xb8\x10\x5a\xba\x69\x41\x05\x98\x2a\xd4\x81\xa5\x43\x49\x53\x81\xa6\x5b\x2e\x30\x5c\x4b\x01\xb6\xea\x90\x6a\x1c\x5c\x8b\xee\xba\x96\x61\x03\xcb\x56\xa0\xa6\x1a\x9a\x69\x02\xd7\x94\x80\xaa\x43\x68\xb8\xba\x01\x15\x08\x55\xc7\xc1\x95\xbb\x12\x54\x6d\x17\x02\x68\x41\x43\x81\xa6\xaa\xe9\x9a\xe9\x5a\x50\x3a\x35\x54\x68\x01\xdb\x74\x35\x53\x81\xb6\x0a\x1c\x4d\xd3\x1d\x53\xb2\x54\xa8\xeb\xb6\x09\x80\x02\x1d\xd5\xd5\x1d\x5d\x87\x96\xe4\xa8\xa6\x6e\xb9\x8e\x03\x14\x5d\x53\x81\x09\x1d\x53\x33\xa4\x53\xa0\xa9\x8e\xa1\x41\x68\x02\x45\x07\xaa\x6e\xd9\xba\xe5\x40\x09\xe8\xb8\x3b\x9a\x65\x59\x8a\x0e\x55\x4d\x03\x86\x69\xd9\x12\xb0\x54\x4d\x73\x1c\xd7\x50\x74\x28\x9d\xe2\x99\x86\xd0\xb0\x4d\xf6\x8e\xa1\xb9\x96\x2d\x41\x4c\x6a\x0d\x40\xd2\x8a\xe1\x1a\x0e\xc4\xc4\xb5\x70\x23\x9a\xab\xbb\xb8\x97\xb6\xad\x43\xd7\xd5\xa5\x17\x50\x57\x35\xd3\xb2\x0d\x43\xc1\x5f\x01\xc7\x32\x6d\xe9\x14\x02\xd5\x34\x2c\x5b\x07\x16\x1e\x28\x70\x34\x60\x1a\xb6\x04\x5c\xd5\xb2\x0d\x5d\x33\x14\x68\xa9\x9a\x6d\x98\xa6\x63\x48\xc0\x56\x2d\xcb\x22\x6f\x5a\xaa\xee\xea\x16\x74\x6c\xe9\x14\x98\xaa\x65\x3a\x3a\x74\x70\xa9\x0d\xa0\x6d\x69\x06\x1e\x90\xa5\x69\x8e\x69\x92\x77\x0d\x03\xda\x86\xe1\x48\x00\xa8\xb6\x81\xa9\x0d\x71\x5b\x16\xb0\x0c\xe8\x40\xc2\x64\x8e\x69\xea\x40\xb7\x15\x68\xa8\xb6\xab\x69\xa6\x06\x25\x47\xd5\x35\x1b\x1a\xb6\x65\xe2\xee\xe2\x2a\x5c\x4b\x97\x6c\x15\xb8\xae\x05\x1c\xdb\x50\x20\x50\x6d\xdd\xb6\x5d\x1d\x48\xa7\x96\xaa\xb9\xc0\x75\x5c\x07\xe2\xa9\xd5\x74\xe8\x98\x40\xc7\x1c\xa9\x41\xc3\xb2\x5d\x47\x01\x8e\xaa\x19\x3a\x74\x80\x53\x28\xb5\x54\x0d\x68\x1a\xee\xf1\x29\x5f\xac\xab\xae\x6d\xe1\x7e\x48\x5c\xc5\x00\xa8\xae\x63\xeb\x3a\xe0\x3b\x01\x34\x15\x3a\x50\x87\xb6\x23\x9d\x72\x3d\x76\x54\x13\x93\xdd\xb0\xa0\xc4\x8d\xce\x56\xa1\xae\x69\xb6\x66\x99\x3c\x29\x2c\xd5\xd0\x74\xdb\x34\x34\xbc\x6c\x73\xba\x99\xb8\x0a\x43\xd3\x2c\x5d\xca\x49\x6c\xe2\x26\x0c\x08\x0a\xb3\x61\xaa\x16\xb4\x0c\xd7\x81\xae\x74\x9a\x4f\x9c\xa9\xba\x86\x69\xda\x86\x6d\x48\xdc\x1c\x53\xce\x80\xb6\x25\xe5\xdc\xe0\xa8\x50\x03\x26\x34\xa1\x21\xbd\xe0\x58\xc7\xc0\x0b\x0a\xcb\x10\x57\x3a\x85\x86\xea\xe2\x45\x62\xea\x0a\x54\x0d\xcb\xb6\xa0\x63\x1a\x12\x84\xaa\xa5\x39\xc0\x05\x86\x02\x54\xe0\xda\xa6\xed\xb8\x52\x8d\x44\xfa\x4d\x7a\x09\x1d\xd5\x82\xae\x6d\x01\x3c\x75\x78\x64\x00\x60\xbe\x76\x54\xdd\x36\x6d\xcd\xa1\xc5\x26\x00\xba\x6b\x48\xd0\x51\x81\x01\xa1\x83\x59\x18\xa8\x78\x01\xbb\x06\x94\xa0\xad\xba\xa6\x0b\x0c\xa8\x93\xd9\x37\x5d\x4d\xc7\x2b\x9b\x30\xb9\xe9\xea\x2e\x61\x0a\xd7\x80\x50\x77\x6c\xfc\xb2\x65\x02\xe0\x18\x26\x5e\xd8\xc0\x36\x2d\x0d\x98\xa4\x54\xd3\x2c\xd3\x32\x70\xa9\x01\x5d\x1b\xb0\x2a\x4c\x53\x03\xd0\x21\x52\xc0\x72\x74\xdb\xa2\x55\x98\xb6\x85\xa5\x09\x2e\x75\x0d\x1b\x98\x3a\xad\xd8\x36\x81\x8b\xf9\x12\x38\x58\xa2\xd8\xac\x0f\x86\x6e\xe8\x80\xb0\x2b\x34\x1d\x13\xd0\x0e\x1b\x10\xb8\xb6\x8e\x4b\x2d\x5d\x33\x80\x6b\x93\xc1\x99\xb6\xa5\x43\x1b\x97\xe2\xcf\xa0\xeb\x30\x4a\xe8\x9a\x66\x91\x62\x17\x38\x50\x77\x5d\x89\x50\xcd\x82\x16\x20\xcb\xd6\x75\x4d\xcd\x30\x01\x2e\x75\x1c\x13\x3a\xb4\xe2\xb4\xf4\x14\xba\x2a\x66\x46\x08\x61\xe1\x65\x57\x35\x2d\xd3\x31\x49\xa1\x63\xda\x9a\xab\x19\xb8\xd0\x01\xc0\x70\x75\x87\x74\x0d\x00\xc3\x70\x2c\xe9\x54\xd7\x54\xcd\xb4\x81\x6e\x92\x65\xa7\x5b\xa6\xa3\x59\x8e\x84\x45\x98\x6b\x02\x13\x90\xae\x69\x3a\xb4\x80\x69\x15\x4a\x31\xd1\x4c\x68\x40\x48\xaa\xe0\x8a\x0d\xfc\xae\xe1\x92\x97\x81\x03\x1d\x36\x1b\xd0\xb5\xf0\x6c\xb8\xaa\x6b\x1b\xba\x6d\x90\x69\x76\x4d\xbc\x1f\xd1\x61\x38\xba\x66\x58\x86\x43\xe6\xd9\x80\xc0\x84\x64\x18\x16\x34\x1d\xd7\x32\x28\x4f\x18\x50\xb7\x48\x15\x3a\x16\x65\x0e\xe1\x09\xc3\x36\x81\x61\xb8\xa4\x0a\x60\xd8\xc0\x75\x48\x15\x3a\xd9\x62\x1c\x4a\x36\xdd\xb1\x4d\xf2\xb2\x6e\x6a\x1a\x04\xb6\x24\x64\xcc\xdf\xa4\x97\xb8\xcb\xba\x05\x4c\x80\x05\x85\x0b\x81\xa3\xd3\x8a\x1d\x07\x6a\xae\x43\x4b\x6d\x68\x40\xc7\x22\x7d\x33\x1c\x0b\x4b\x04\x5b\xd5\x5c\x1b\x40\x88\xcb\x0c\xcb\x34\x75\x48\x0a\xa1\xa3\xe9\xd0\xa4\x53\x84\x25\x86\x4b\x4a\x0d\x4b\x37\xa1\xed\xe2\x77\x81\x69\x9b\xb6\x41\xf6\x2c\xcb\xb5\x1c\x57\xb3\x49\xa9\x66\x63\x42\xe0\x52\xd7\x04\x58\x24\xe1\x1a\x34\xd3\x32\x81\xa3\x63\xb1\x06\x35\x53\x33\x69\x0d\x9a\x03\x0d\x68\xe3\x42\xc3\x72\x0c\x03\xd2\x6a\x1d\x60\x3a\x1a\xc0\xa5\xb6\x66\xdb\x96\xe6\xb2\x3e\x68\xb6\x4e\xf2\x3b\x61\xbe\xd6\x68\x05\x86\xe1\x98\x98\xa5\x00\xee\x0d\xb0\x0c\x9b\x90\xd7\xb2\xf0\x8e\x65\xe3\x52\xe8\x9a\x16\x60\x44\xb0\x5d\xdd\xb5\x48\xa9\xa1\xbb\x26\x74\x01\x99\x62\x1d\x5a\x26\x30\x71\xa9\x09\x2c\x5d\x37\x74\x5c\xaa\xbb\xc0\xb2\x31\x6d\xf2\x52\xcc\x25\xb6\xee\x58\x0e\x64\x2f\x1b\x2e\x16\x13\x3a\x50\x35\x1b\x60\x35\x03\x97\xea\xb6\x85\xe7\x0d\x97\xea\xc0\x32\x80\x46\xbb\xa6\x03\x68\x91\x2a\x80\x6a\x5a\xc0\x36\x4c\x32\x3a\xc7\x31\x1d\xcb\x21\x2f\xdb\x9a\x06\x5c\x40\x4a\x4d\x53\xc7\x3c\x41\x4b\x81\x69\x00\x87\x12\xcd\x32\x75\x60\x90\x2a\xb2\x62\xbc\x56\x6d\xc3\x30\xc8\xcb\x16\x34\x6c\xdd\x32\xe9\x6c\x18\xc0\x71\x75\x5c\x6a\x38\x9a\x4d\x0b\x0d\xdb\x71\x80\x49\x3b\xa1\xeb\x96\x63\x1a\x2e\x99\x65\x4b\x37\x0c\x40\xde\x05\x3a\x84\x8e\xc5\x18\xc2\x34\xa1\x69\x63\x52\x38\x2e\x74\x2d\xc7\x20\xbc\xe3\x5a\xba\x0d\xe9\x9a\xb3\x4c\xdd\x74\x1c\x17\x17\x3b\xae\x0d\x1d\x40\xc9\xa6\x41\xcb\xd4\x49\xa1\x0d\x74\xa0\xd1\x85\x58\x66\xc9\xdf\xa4\x97\xb8\x65\xdd\xc4\xfb\x09\x56\x90\x6c\xd7\x81\xba\x8d\xb5\x0d\x0b\x6b\x5c\xae\xad\x59\xb8\xd8\xd4\x4d\xd7\xb4\x2d\xbc\x9d\xb8\x9a\xa9\xe1\x45\x07\x88\x34\xd7\x81\xed\x4a\x44\x81\x82\xb6\x6e\x43\xa2\x63\x69\x58\x89\xc2\x55\x18\xaa\x69\x69\xba\xeb\x9a\xa4\x66\x4c\x4c\xc3\xc5\xfb\xbb\x8b\x37\x6f\xac\x78\xe9\xaa\x66\x19\x8e\x8d\xf7\x29\x5d\x35\x4c\x07\x00\x52\x68\x1a\xae\xe9\x92\x3d\x0d\xaa\xae\xad\xeb\xba\xa5\x2b\xc0\x50\x35\xac\x16\xe2\x1a\xa0\x6a\x19\x3a\xb4\x69\xa9\x65\x02\x57\xc7\xca\x18\x54\x4d\xcd\x35\x5c\x5c\x6a\xaa\x3a\xc4\x2b\xdf\x21\x55\xe0\x3d\xc2\xb6\x1d\x5c\xec\xba\x78\x55\x91\x97\x0d\x3c\x5d\xb6\x89\x89\x61\xb9\xba\x61\x50\x4d\xd6\xd6\x2c\xdb\x74\xc8\x8c\xea\xd0\x72\xb0\xbe\x49\x7a\x61\xb9\x80\xcc\x32\xde\x08\x20\x19\x84\x01\x74\x9d\xcc\x9c\xa3\x9a\x1a\x30\x6c\x9d\xa8\x2e\xae\xa3\xeb\x86\x4d\x79\x0a\xe2\x3d\x9d\x92\xc1\xd4\xa1\x6d\xd3\x65\x60\xe9\xc0\x00\x84\x64\x50\x37\x34\x3c\x1b\x78\xad\x5b\x06\xd4\x00\x25\x2f\xde\xae\x1c\xbe\x14\xcf\x85\x03\x1d\x60\x6a\xc5\x97\x6d\xd5\xd6\x5c\x1b\x42\xca\xd9\x1a\xc0\x43\x96\x80\xa3\xea\xa6\x6b\xdb\xba\x45\x16\xb3\x09\xa0\x89\x05\x2b\x70\x55\x4d\x73\x6d\x4b\x27\x1c\xe8\x68\x58\x3f\xd5\x25\xb2\x4e\x0c\xd7\x20\xa9\x58\x54\x17\xb8\x96\x8b\x15\xfd\x42\xa9\xa6\x69\x06\xc4\xfc\xce\x17\x9b\xaa\x0e\x0c\xd7\x30\xc9\xcb\xc0\x06\x96\x05\xe9\x64\x18\x86\x03\x6c\x1b\xf7\xc2\x76\x35\xdb\xc2\x1c\x61\x60\x2d\xd0\x81\x26\x9e\x4f\x47\x35\x34\xd7\xd5\x75\x83\x4c\xb3\x66\x38\xba\x6e\xe1\x81\x38\x96\x63\x01\xe8\x50\x8e\xd0\x4c\xdb\xb1\x25\x31\x5f\x62\x5d\x00\xb3\xbf\x6e\x3a\xc0\x26\xdc\x6d\x98\x58\x10\x4a\xa7\x58\x85\x34\x0d\x68\xe1\x81\x5b\xaa\x6d\x58\x3a\xc0\x5b\x95\xa5\x1a\xae\xe6\xd8\x0e\x2d\x85\x9a\xa1\x61\xa9\x8d\xd5\x6e\x2c\x3f\x48\x15\xb6\xad\xb9\xd0\xc5\xa2\xc9\x54\x5d\x07\xda\x00\x90\x35\xe6\x40\x60\x98\x8e\x04\x4d\xd5\xc6\x3a\xbe\x43\xde\x75\x0d\x0b\x02\x2c\x1d\x4d\xd5\xb4\x2c\x60\xe0\x1a\x6c\x15\x40\x4c\x16\x87\xd4\xa0\x3b\xba\xa6\x19\x84\x5b\x74\x00\xb1\x1a\x85\x5f\x86\xa6\x83\x95\x20\x5c\x6a\x1a\xa6\xeb\xe0\x0d\xcc\x54\x21\x16\x09\xae\x4d\xa7\x44\xd3\x74\xc3\x20\x55\x00\xbc\x8b\x02\x32\x81\x9a\x69\x00\x03\xab\x13\x58\xc1\xd6\x81\x06\x08\x6f\xe9\xc0\x36\x6c\xa8\x93\x2a\x1c\x08\x4d\xc3\xa1\xf2\xca\x72\x4c\x90\xf6\x02\xe8\x06\x16\x37\x78\x22\x2c\x60\xb9\xb4\xcb\x86\x4b\xd6\x1d\x66\x06\xcd\xd6\x1d\x52\x83\x6d\x19\x84\x68\x78\xd7\xc3\xfb\xa6\xc1\x08\xa1\x69\x36\x20\x72\x17\x62\x2d\xd4\x31\x29\xd5\x74\x88\xb7\x56\xcc\x0b\x96\x69\x40\x13\x52\x0a\x43\xdd\x84\x80\x2f\xc5\xd3\xe1\xe8\xae\x0d\x4d\xab\xf0\xb2\x4d\xf6\x6f\x40\x85\x3f\x84\xb6\xa1\xb9\xb8\xd0\x00\xa4\x09\xb2\xa5\x38\x00\xf3\x0d\x51\x8b\x2c\xcb\x00\xba\x43\xd6\x98\xad\x5b\x98\x9a\xf8\x65\x47\x83\xc0\xa4\x82\xdb\xd0\xa0\xeb\x9a\x76\xa9\x54\x33\x4d\xd3\xd2\xa8\x6a\x96\x15\xdb\x98\x10\xe4\xf0\x87\xf5\x2d\x88\xff\x72\xe8\x74\xe8\xd0\xd1\x48\xd7\xf0\x79\x55\xa7\xd3\xa1\x43\xdb\xd5\x2c\xda\x0b\x43\xb7\x4d\x48\x4f\x84\x00\x40\xc3\xd6\x1c\xfc\x32\xd4\xa1\xe3\xba\x8c\x29\x0c\x0b\x58\x96\x24\xe6\xcc\x12\xcb\x62\x49\xe8\x5a\x96\x55\x62\x59\x2c\xd3\x34\x13\xe8\x45\x96\xc5\x27\x56\xc3\xd2\x8c\x22\xcb\x42\xd5\xb2\x4c\xa0\xc3\x12\xcb\x42\xd5\x06\x98\x29\x0b\x2c\x0b\xb1\x52\x6e\xe0\x43\x36\xcf\xb2\xba\xaa\x41\xdd\x02\x4e\x89\x65\x75\xbc\xbb\x91\x53\x18\xcf\xb2\xf8\x08\xa5\x61\x65\xb8\xc0\xb2\x3a\xde\xdc\xe8\x5e\xc1\xb3\x2c\x96\xee\x8e\x6e\x82\x22\xcb\x1a\x2a\x04\xc0\xb2\xcd\x22\xcb\x1a\x58\x3e\x69\xa6\x51\x62\x59\x43\xb5\x5c\x4d\xb7\x61\x81\x65\x0d\xd5\x71\xb1\xf0\x29\xb0\x2c\x3e\x5e\x3b\x8e\x09\x4a\x2c\x8b\x1b\x86\x36\x51\x12\x39\x96\xc5\x23\x72\x2d\x7c\x6c\xe4\x59\x36\x2f\x2d\xb0\x2c\xf7\x32\xc7\xb2\xa6\x0a\x20\xb0\xa8\x72\x9e\xb1\xac\xa1\x3a\xb6\xe9\xda\x5a\x89\x65\x0d\xac\xb3\xe3\xd3\x64\x81\x39\x0d\x15\x1f\x1b\x74\x5b\x2f\x94\x62\xa2\x61\xe1\x5c\x62\x59\x4c\x62\xcd\xd6\xed\x22\xcb\xea\x98\x21\x0d\x47\x2f\xb2\xac\xae\x42\x08\x35\xc3\x76\x8a\x2c\xab\xab\x9a\x66\x59\xb6\x5e\x64\x59\xa8\x3a\xba\xe3\x00\xb7\xc8\xb2\x39\x67\x16\x15\x58\xa8\x9a\x40\xc7\x07\xd1\xa2\x06\x0b\x55\xd3\xc2\x9b\xa8\xcb\x6b\xb0\x58\x97\x77\x81\xeb\xda\x05\x15\x16\xaa\x8e\x0d\x75\x3c\x79\x05\x1d\x56\x27\x2b\xd5\x30\xf4\x82\x0e\xab\x63\x81\x53\x56\x61\xb1\x52\xa0\x6b\x90\xd5\x90\xe9\xb0\xba\x6a\xbb\x36\x3e\xd6\xf2\x3a\xac\x81\xf7\x10\xc3\x74\x61\x41\x87\xc5\x94\x77\x6d\xdb\xd6\x8b\x3a\xac\xa1\x9a\xba\x0b\x4c\xcb\x2e\x28\xb1\x06\x3e\x62\x5b\x78\x42\x78\x25\xd6\x50\x1d\xac\xac\xa4\x84\x48\xb5\x58\xcc\x85\xc0\x34\x4c\xa3\xa0\xc5\x9a\x2a\xd0\x1c\xdd\xd4\xec\x82\x16\x9b\x97\x16\xb4\x58\x93\x8c\xd4\x02\x46\x41\x8b\x35\x54\x17\xef\x8b\xa6\x51\xd0\x62\x0d\xd5\xc6\x13\x89\xf5\x23\x5e\x8b\x35\x54\xc3\xb6\x1d\xc7\x30\x0a\x5a\xac\xa1\x02\xc3\x34\x5c\x60\x14\xb4\x58\x4c\x36\xc7\x34\x6c\xbb\xa8\xc5\xea\x98\x16\x58\xdc\x14\xb4\x58\x3c\x1f\x16\xb4\x6c\x5e\x89\xd5\x55\xcd\xd6\x1c\x1d\x58\x45\x25\x16\xaa\x8e\x69\x1a\xa6\x6d\x17\x94\x58\xcc\x13\x58\xce\x81\x82\x12\x0b\x55\xd3\x71\x0c\x62\xd9\xe2\x95\x58\xa8\x1a\xf8\x15\x5b\x2f\x68\xb1\x58\xd7\xd4\xf1\xe9\x54\x12\xf2\x25\xb5\x10\xd8\x9a\x69\x42\x68\x2a\x8e\x0a\x34\xd3\x36\x1c\xc7\x25\x07\x63\xc3\x04\x86\xe5\x5a\xb8\xd8\xb4\xa0\x6d\x6b\x26\x3e\xb5\x41\xe0\x68\x86\x49\x2c\x18\x0e\xd0\x74\xe0\x90\xe3\xb2\xa6\x1b\x8e\x41\xaa\x30\x2c\x03\xea\x86\x63\xd2\x15\x69\x02\x5b\xd3\x5c\xc5\x51\x2d\x03\x9f\x39\xa9\x58\xb0\xa1\xe5\x1a\x16\x50\xb0\xae\xa7\x39\x9a\x66\xb2\xf3\xbd\x65\x00\xdb\x55\xf0\x61\xc3\x70\x4c\xdd\xa0\x2b\x12\x1f\x3f\x1d\xd7\x51\xf0\x91\xd3\x71\x2d\xdb\x76\x98\x95\x01\xcf\x84\xe2\xaa\x96\x89\x05\x12\x56\x16\x6c\xd5\x36\x35\xd7\x04\x96\xe2\xaa\x0e\xe6\x1b\xcd\x81\xac\x17\x1a\xd0\xf0\x0a\xc1\x24\xd0\x5c\x87\x75\x19\xd8\x2e\xd1\x58\x35\x55\xd7\x4d\xaa\x6f\x38\x58\xea\xe9\x3a\x24\xa5\x86\xed\x1a\x96\x6d\x52\x5a\x60\x6d\xdb\x81\xb8\xd8\x82\xba\xa1\x93\x1a\x6c\x0d\x6a\x58\x7d\xd3\x30\xdb\x40\x03\x2f\x26\x47\x75\x2d\xa0\x19\x78\x42\xf2\x52\xcc\xf4\xba\xe6\x18\xb0\xf4\x32\x5e\xfd\xc0\x02\x3a\xb1\xbc\x9a\x16\x84\xf8\x0c\x42\x24\x85\x0d\x4d\x93\xbc\xab\x03\xcb\x74\x2c\x7a\x74\x03\x58\x0a\xd9\x00\x17\x6b\xb6\xe6\x1a\x86\x89\x27\x15\xda\x9a\x63\x02\x4c\x36\x5b\xb7\x1d\x7c\xfe\x2e\x96\xea\xae\x66\x18\x80\x1d\x79\xf2\x62\xa0\x03\xdd\xd4\x5d\x66\x50\x30\x34\xc3\xc2\x13\xed\xd8\x8e\xe6\xba\x80\x58\x0e\x34\x53\x03\x3a\xb1\xab\x59\x16\xb4\xa9\x6e\xe2\xaa\x78\x73\x87\x16\x9e\x7e\xc3\xb0\xa1\xe3\xd2\x1e\xdb\x1a\xb0\x4c\x1b\xcf\x33\xb4\x5d\x43\x37\x2d\x76\x12\x87\xd0\x76\xf0\xbb\xc0\xd1\xa0\x03\x4d\x83\x8a\x10\x08\x5d\x4b\xc3\xc5\x1a\x3e\xb8\xb8\x86\x45\xe8\x86\x0f\x4a\x84\xaf\x08\x37\x6a\x58\xd2\x0b\x59\xf3\x37\xde\xe8\x3f\x8d\xc8\x6d\x87\x1c\x84\xc1\x5f\x28\x0a\x8b\x97\xae\x9d\x83\x95\x86\x5c\x24\xa5\x17\x35\x0f\x7d\x65\x84\xfb\xbd\xf0\x12\x6f\xaf\xc2\x84\x7e\x39\xff\xe5\xbb\xff\xfc\xe7\xe9\xbc\x43\x98\x90\x28\xa2\x27\xf1\xce\x37\x2b\x2f\x6a\x0a\xea\x49\x87\xcd\x02\x7a\x2a\x91\x3c\x86\xd2\x23\x90\x67\x07\xa1\x3c\xe5\x6b\x5a\x76\x87\xc4\xae\x9c\xbe\x47\x75\xd0\x03\xe2\xf7\x7f\xa1\x09\x45\x04\xbe\xad\x1d\xee\x66\xdb\x31\x66\xc2\x9b\xc1\xc3\xaa\xc7\x91\x10\x7a\x08\xd7\x84\xb2\x16\x52\xaa\x68\x65\x37\x4e\x71\xd5\x1d\x73\x7f\x0f\xef\x6b\xb1\x57\xa0\xd2\xab\x6e\x3d\x18\xec\x4b\x57\x78\xa3\xfe\x4a\x3c\x8d\x91\x0b\xc9\xca\x9e\x7a\xc9\x80\x6b\x71\x81\x0c\x19\x20\xd6\xb2\x27\x2a\x7a\x97\xa0\x60\x71\x74\x97\x78\x4b\xda\xb8\x7c\x3f\x4c\xb8\x05\xe1\x02\x4d\xfd\x05\x0a\x12\x3f\xb9\x7d\x94\xca\x98\x7d\x91\x72\x17\x20\xf8\xe9\x7f\x7f\xb8\x02\x62\x29\x47\xd7\x97\x22\x3f\xce\xe1\xb0\x3a\x78\xbe\x11\xef\xd2\x4d\x8c\xa4\xec\xab\x78\x60\x60\x4c\x56\x81\xf4\xfb\xef\x72\x71\x95\xc1\x2c\xc6\x9b\xcb\xfc\x5c\x5c\x6d\xb2\x74\xd7\xe8\x44\x45\xfa\x48\xc1\xbd\x86\x76\x50\x92\x82\x14\xee\x0b\x77\x91\x7d\x93\x36\x8d\xd7\x0e\x9e\x7e\xbe\xf7\x74\xfd\xf1\x1d\xfc\xfd\xf7\x04\xbf\xb8\x0e\x57\xfe\xfc\x56\x3a\xc1\x2f\x13\x10\xb4\xdf\x7f\x4f\xd7\xdf\x3d\xf9\x97\xfe\x6f\xd6\xde\x1f\xeb\x08\x5d\xf8\xef\x24\xf2\x5a\xde\x5e\x4c\xe3\x4f\x04\x4f\x05\xed\x44\xc8\x5b\x88\x9a\xe9\xee\x33\xd5\x71\x78\xb5\x83\xa3\x6d\xb6\x74\xba\xae\xcb\x75\x5d\x4d\x25\xcf\x7d\xa7\x71\xec\x8c\x39\x9a\x59\x63\x0c\xca\xe1\xff\x6f\x66\x88\x2d\x28\xdb\x87\x11\x3a\x0d\xa6\x66\x28\xb8\x9d\xc6\x6e\x8a\x3b\x29\x9c\xdc\x41\x1e\x59\x73\x2f\xcb\x63\x15\x46\x03\xb6\x9e\x26\x09\xff\xd0\xaa\x35\xee\xdb\x5e\xa9\xd5\xd7\xbf\xe9\x6f\xbf\xf7\x37\xcb\x4e\xd1\xf7\x79\xf4\xfc\x8a\x69\xae\x03\x62\xe7\xc9\xf4\xd4\xa8\xd8\x24\x86\xe3\xc1\x62\xe5\xa5\x6a\xb0\x9f\xa9\x68\x79\x28\x21\xe7\x66\xdb\x3f\x34\x9a\xe2\x47\x8d\x13\x1e\x9d\x05\x38\xb0\xf1\x66\xe9\x86\xf1\x98\x93\x70\x3d\x8d\x13\x2f\xea\x0c\xd3\xd7\xb0\x23\xcf\x23\x3f\xf1\xe7\xde\x4a\x16\x11\x61\x5b\x84\xaa\x27\x89\xb4\x42\x5e\x9c\x48\x61\x80\xa4\x4b\x0a\xaf\x45\xe2\x2a\xa5\x30\xa0\xa1\x66\x44\x8c\xf9\xb1\x74\xe1\xf9\x2b\x3f\x58\xaa\x5d\x25\x60\xcd\x68\x6e\xbc\x28\xf0\x83\xe5\x43\x0e\xe6\xd2\x8b\x25\x4f\x62\x1d\xd9\x76\x3c\x6b\x2f\x8e\x77\x36\x9e\xd5\xaa\x30\x8c\x58\xf2\x22\xac\x41\x92\x16\x3b\x77\xbc\x54\x29\x75\xba\xc7\x15\x05\x61\xb1\x76\xb5\x05\xbc\xa6\x67\x56\xc6\x92\x27\x7b\x47\x47\xea\xee\x71\xef\x55\x08\x43\x58\x87\x60\xd8\x09\xc0\x50\x2e\xc4\x45\x8b\x30\x0b\x05\xbe\xa4\x0f\x08\x33\x21\x8a\x7f\xc0\x3d\x7f\xb2\x58\x44\xa9\xbb\x3d\x8b\x3e\xc8\x8b\xb6\x08\xbd\xce\x0e\xd1\x14\x56\x01\x65\x19\x10\x19\x21\x5f\xe4\x25\xfd\x11\x1b\x5a\xa1\x46\x8a\xe1\xd4\x78\x9c\x2f\x51\x7c\xc9\x22\xcb\x9f\x07\x71\xe2\x05\x73\x96\x9e\x93\x45\x59\x17\x4e\x3e\xa5\x7a\x8c\x1e\xf5\x28\x69\xfc\x3a\xd9\x1e\xe5\x1b\x3f\xb9\x0c\x37\x78\x77\xdd\x04\x84\x6c\x34\xf9\x7b\x0b\xa7\x6c\x0f\xeb\x51\x47\xa9\x6c\x6e\xfb\x02\xb0\x8f\x8a\xff\xc1\x31\x1d\xff\x77\x07\x24\x10\x9e\x37\x7b\x4b\x83\x5d\x5b\x61\x48\x84\x22\x05\xb7\xca\xc0\xaa\x2e\xc2\xe8\xda\x4b\xa6\xc1\x06\xab\x74\xb2\x22\xaf\x57\x9b\xc8\x5b\xf9\x7f\xa1\x81\x6a\xf2\x1e\x05\x2b\x92\xee\x94\xf3\xc8\x3e\xbc\x7e\xec\xff\xf8\x3f\xff\xf9\x53\x5b\xfc\x43\xac\x1f\xff\xf1\x87\x17\x2d\x35\x59\xa1\x7f\x00\x59\x91\xe9\x08\x08\x18\x55\x3a\x42\x59\xc9\x73\xc6\x2b\x69\xaa\x78\xfc\x26\xd6\x90\x09\xf4\x71\xaf\xcf\xb0\x9c\xec\xf5\xc5\x3a\x0a\xd7\xfc\x07\x57\xe8\x56\x56\xe4\x3c\x25\x75\x18\x11\x44\xf9\x0b\x7f\xc5\x80\xe7\xc3\x20\x7b\xf7\x71\xf6\x57\x5d\x9a\x5a\x27\xad\x19\xcf\x9a\x58\xd9\xe7\x9e\xd3\x30\x2d\x68\x32\xd5\x3f\x6f\x93\xe4\x33\xfe\x06\x93\x38\x7e\x1e\x5c\x84\xe9\xfa\x86\x30\x8f\xca\x07\x46\xbe\x75\xb0\x90\x37\x6e\x54\x59\x55\x64\x3c\x64\x99\x93\xff\xcb\xe0\xb3\x5b\x83\x3b\x85\xc0\x22\x6c\xbc\x9b\x41\x46\x07\x5a\xaf\x55\x82\x3f\xec\xb4\xd7\x16\xb6\x5b\xab\x06\x79\x03\xd4\xe4\xf6\xc6\x54\xe7\xb3\x7b\x33\x55\xc4\x51\x38\xc2\x61\x2e\xe0\x37\xaa\x42\x9f\x8a\x7b\x55\xa9\x31\x92\xcc\x9e\x54\xde\x5e\xb1\x22\xfc\x9a\x75\xb3\x43\xb7\x52\x00\x74\x21\x72\xfe\x36\xc3\x2f\xe7\x53\x1f\x91\x00\xa5\xaa\x7b\x93\xa0\xd3\xf7\xe7\x91\x17\x2c\xba\x8d\x2c\x07\x91\xef\x13\x7a\xca\x45\x16\xe2\xea\x7f\x22\x21\xd3\xff\xa2\x8b\x8c\x90\x0b\x58\x8a\xec\x45\xbe\x37\x65\x39\x20\xca\xf9\xe6\x71\x2f\x37\xbe\x9a\xc5\x5a\x17\x20\x77\xb9\x11\x91\x26\xdc\x19\xd6\x93\x68\xf8\xaf\xc6\xf7\x79\xbb\x48\xc6\x1a\x85\xa7\x46\xe9\x61\x8a\x81\x5b\x0b\x70\x2d\x50\x5f\x40\xde\xe7\xce\xf7\x47\xfd\x35\x07\x17\xb7\xd0\x21\x44\xb2\x33\x0a\x4e\x8b\xc4\xa3\x42\xf5\xc3\x4a\xbc\x0a\xdb\xe9\x04\xbe\x89\xf6\x64\x96\x6a\x81\xfc\xde\x94\x6d\x61\xeb\x95\x37\x47\x97\xe1\x6a\x51\x4c\xa8\x90\x6a\xec\x2c\xa1\x02\xd4\x0b\x09\x36\xa0\x31\x13\xf2\x2c\x5b\xd9\x25\x1a\x0c\x01\xa5\xe1\x46\x81\xb7\x7a\xba\x6c\x38\x1c\x10\x26\xa2\xd6\x54\x79\xf1\x51\x7a\x10\xcb\xed\x39\x7c\x32\x15\x45\x7e\x7c\xbd\x59\x25\xfe\x9a\x28\x0c\x8f\x23\xf4\xe7\xc6\x8f\xd0\x82\x5e\xb7\xd2\x40\xc8\xba\x81\x43\x2c\x1f\x48\x63\xac\xad\x5b\x82\x91\x49\x73\xb4\x64\x44\xc1\x87\x09\x85\x9e\x28\xc6\x47\x9c\xa6\xda\x4e\xff\xac\x23\x9d\x0e\x6a\x65\xed\xbe\x65\x52\x33\x22\xd4\x5f\x07\xd7\xde\xfc\x76\x06\x80\xe9\x44\x15\x8a\x54\x3b\xe0\x00\x9e\xa1\xdd\xe1\x23\x76\xa6\xf4\xa5\xb8\x67\xac\x90\xa2\x29\xf5\x81\xb7\x80\xbc\x70\x06\xd5\x1f\x75\xbc\x94\xd5\xbc\x25\x04\x58\x65\xf5\x58\xb3\xca\xf1\x2f\xe7\x24\x46\x02\x5b\x00\xdc\x64\x37\x71\x7e\x79\x87\xec\xcf\x91\x62\x66\x6b\xdb\xe8\xd9\x53\x3d\xef\x64\x1d\xac\x94\x98\xb9\xfb\xee\x1a\xb6\x70\x37\x20\xa1\x04\x62\x98\xfd\x8e\xc8\x46\x95\x1a\x45\xb0\xd2\xc3\x62\xfc\xf5\x71\x36\x30\x76\x18\x78\xd8\x0d\xcc\x69\x90\xfc\x39\x4e\x48\x17\x71\x3f\x23\x08\x7e\x17\x6d\x12\x3e\xd5\x00\x85\x92\x7d\x18\xac\xda\x6e\x44\x7a\x47\x81\x5e\x2f\xce\xd9\xa2\x2a\x9f\xcc\xba\x7b\xf5\xf4\xc1\xf0\xda\xa9\x00\x77\x05\xf2\xdb\xdd\x95\xf8\xce\xcf\x34\xf9\xdd\x41\x7e\x2b\x92\xdf\xf6\xd4\x88\xa5\x21\xc8\x35\x4c\x8e\x03\x76\x62\xc0\x3d\x00\xca\x19\x15\xc1\x53\x39\x4b\x97\x96\xa6\xb8\xaa\x97\xf2\x50\x20\xe5\xa1\x88\xfb\xb7\x97\xee\xfd\x25\x3b\x9f\xbd\x6d\xcb\xa3\x64\x25\x49\x42\x47\x78\xff\xb6\xcd\x00\x8a\x37\x03\x0d\xcf\xcd\xd0\x2b\x93\xf6\xdc\x6b\x5b\x00\x75\xb6\x1c\x51\xa8\x95\xa7\x2f\x80\xd7\x28\x82\xbd\x49\xa5\x0f\xb3\x7b\xd7\xd1\xb5\x78\x40\x12\x1b\x95\x44\x3b\x35\x1b\x7f\x44\x02\x5e\x6c\xd5\x32\x6b\x16\x0a\x91\x55\x3f\x84\x0b\x74\xec\xc5\x73\xb1\x8d\x01\x93\x5c\xf5\x56\xeb\x4b\x4f\xc5\xef\x14\x57\x8f\x52\xad\x68\x81\x3a\xd4\x44\x5e\x6a\xaa\x8a\x5e\xb5\xb6\xf4\x8a\xca\xa4\xd6\x6e\xb1\xba\x5a\x3a\xc6\x2a\x13\xf4\x6c\x2c\x9d\xbb\xea\xcd\x67\x73\xac\x57\xb5\x98\xd5\xc9\x1a\xbb\x57\x12\xa7\xbd\xd9\x8a\x45\x47\xa9\xfe\x27\xa9\x9a\x1d\xd0\xcc\x0e\x32\xd4\x5c\x56\xf1\xb4\x68\x52\x6c\x86\x6d\x61\x8e\x92\xc2\xda\x36\xec\xad\x42\x46\x06\xd5\x07\x35\x4c\xd0\xd6\xb3\x9a\xd3\x78\xcd\xe2\xe8\x99\xaf\xa7\xc7\xf0\x8a\x6b\x0b\x08\x9e\xec\x6c\x80\x85\x05\x3b\x38\x7b\x4f\xa3\x8d\xa1\x3f\x83\x91\x7b\x19\xb6\x74\x76\xcf\x63\x55\x01\x0e\xca\xc5\xe3\x93\xbf\xba\x25\xec\x80\xbd\x04\x3b\x0a\xa8\x94\xef\x6a\x6c\x3b\xe0\x2c\x41\x4e\x33\x45\x60\x2c\x18\xa8\x1f\x56\xed\x04\x02\x7c\xe1\x9e\xae\x3e\xc3\x0b\x3b\x21\x0c\x27\x29\x56\xf0\x92\x60\x04\x67\xf9\xa4\x52\xc8\xe1\x8b\x28\xbc\x9e\xa2\x20\x89\x7c\xe6\xb9\x81\xdf\x9a\xfa\x31\x59\x5c\x8b\x29\xdd\xb0\xfc\xe0\x6d\x98\xa5\x9e\x22\x57\xfa\xf3\x30\x48\x3c\x9f\x40\xd5\xcd\xc3\x60\xee\x91\xaf\x84\x60\xc6\xab\xf0\x06\x45\x73\x2f\x46\x69\x96\xab\x81\x37\xfd\xe5\xab\xf5\x07\xbf\xef\x27\x4e\xd2\x7b\x95\xe0\x1d\x5e\xff\xa2\xbf\x5b\x6a\x5e\x4b\x82\xf7\x08\x79\x0b\x4c\x81\x3c\xbd\xd4\x0f\x34\x2c\xe3\x29\x8a\xe7\x91\x9f\x5e\xbb\xbf\x66\x17\xf5\xdf\x6e\xbc\x68\x21\x2b\xf2\xe9\xa5\x17\x25\x4f\x52\xfe\x59\xf8\xf1\xda\x4b\xc8\x0c\xa7\x37\xfa\x1d\x73\x5b\x65\xf9\xe1\x17\xf3\x62\x28\x48\x25\x43\x7c\x56\x4d\x31\xfd\xd5\xb0\xf4\xf1\x74\xbe\xf8\xc4\xf1\x50\xab\x9a\x6e\xe4\x1d\xa4\x8e\x27\x4d\xb4\xe4\x8e\x4f\x73\xc2\x73\x26\x82\xa0\x3d\x75\xbc\x2c\x2b\x32\x27\xa0\x6b\x93\xc2\x67\x9f\xe5\xc9\xe4\x85\xe6\x01\xbd\xe0\xb5\x90\xff\x0b\x9c\xe2\xcd\x13\x68\x4c\x08\x9f\x1b\x88\xeb\x3e\x1b\xff\xa8\x37\x30\x27\x3c\xe7\xb0\xc5\x2f\xea\x9a\xe4\xe7\x80\x4b\xe8\x5f\xc9\x7e\x0e\x8c\xe2\x71\x17\x98\x03\x53\xc2\x0b\xed\xca\x45\xc4\xfa\xee\x71\x8c\x3d\x33\x9e\x17\x9d\x24\xed\x59\x39\xb9\x3b\xe7\x2b\x4a\x56\x87\x38\xa2\x25\x9b\x6e\x11\x3b\x5f\xa2\xd5\x5a\xce\x93\x92\xcb\x2f\x37\x71\x22\x9d\x23\xc9\x93\x08\xfe\xae\xf4\xf4\x87\xd7\xd2\x65\x18\x27\x78\x08\xaa\x44\x9e\xb2\xcd\x46\x02\x53\xcb\x90\xe6\x97\x5e\xe4\xcd\x31\x5d\xa4\x23\xea\x47\x16\x2b\xd2\x0a\x25\x09\xf9\xc3\x0b\x16\xd2\xe5\xed\xfa\x12\x05\xf1\x84\xfe\xba\xa6\xf5\x2f\xfd\x40\xba\xf1\x93\x4b\xc9\x63\x2f\xab\xd2\x8f\xc1\x1c\x49\xf3\x08\x79\x09\x5a\x28\xd4\xc7\x79\xee\x05\x41\x48\xba\x43\x97\xf1\x82\xbf\xf7\xe0\xcf\xfb\xdc\x80\x12\x14\x93\x4d\x36\x4b\x6a\xff\xff\x9d\x79\xd3\xbf\x9e\x4c\x7f\xd3\xa6\xee\xec\x28\xff\x7b\x3a\xbb\xd3\x14\x0b\xde\x73\x4f\x27\x5f\xff\x8d\x91\x22\xed\xa6\x98\x0c\xf2\x6c\x26\xf2\x25\xe1\x3a\xc1\x8b\x6e\x9e\x29\x2d\x3e\x71\x4f\x57\x1f\x0a\x2c\x42\x53\x39\xc9\xe5\x0c\x4d\x45\xb3\xc8\x71\x76\x8d\xa2\x38\x0d\x89\x10\x64\xb2\x48\xeb\xb1\x4b\xe6\xab\xa2\x00\x66\xdc\xe7\x30\x91\x3e\xc5\x53\x9d\xf3\x74\x1c\xcd\x2b\xbe\x17\x72\x8a\xd9\xdc\xf3\x18\x50\x40\xb3\xbd\xf0\xd1\x6a\x11\xa3\xb2\xf3\x68\xbe\x10\xf4\x92\xa1\x47\x0e\xd0\x0d\xe3\xfc\xb2\x5f\x08\x0d\x00\xe9\xed\x23\xec\x28\x72\x82\xde\x25\x53\x3f\x58\x6f\x4a\xab\xb8\xe4\x1e\xc0\xed\x81\x79\xe2\x58\xb2\x35\x52\x6a\xcd\xd2\xc4\x79\xe9\xae\x4e\xfb\xc4\x32\xe7\x8a\x58\x27\xdd\xbe\xb3\x1d\x7d\x96\xa5\x7d\xa4\xd6\xfc\xc2\x5e\xd2\xc3\x37\x59\x3c\x28\xf4\x6e\xed\x05\x0b\xb4\xc8\x3c\x61\xf9\xad\xb4\x6d\x68\xe4\x8a\xbf\xa4\xa7\x70\xbf\xa4\xa3\x1f\x59\xea\xd4\x49\x61\xe0\xe6\x78\x03\xaf\x18\x82\xc4\x6c\x02\xd3\x90\x3f\x6f\xbe\x6a\x70\xbd\xab\xe3\x0a\x21\x6b\x1a\x0a\x50\xe4\x28\x5c\x21\x51\xde\xae\xf4\x8b\x4b\xc8\x3f\xfc\x29\x7b\x5b\xec\x50\x5d\x46\x4a\x6f\x18\x0c\x2f\xef\x3b\x73\x7d\x87\x70\x8d\x6f\x6e\x25\x6f\xb1\xf0\x83\xa5\x44\x86\x26\x25\x21\x0b\x37\x49\x55\x95\x58\xa1\xe9\x9c\xfc\xd5\x4a\xf2\xd6\xeb\xd5\xad\x94\x5c\xa2\x6b\xfc\x9e\xb7\x5a\x49\x49\x78\x85\x82\x38\x15\xe3\x44\xc4\xfb\x41\xa9\x86\xfe\xe1\x1e\x6f\x2e\x91\x74\x11\xae\x56\xe1\x4d\xde\x31\x2f\x42\xa4\x7d\x1f\x2d\xc6\x68\xbc\xe2\xc9\x5f\x9d\x21\x87\x4e\xf7\x94\x9e\xd8\xc3\x5c\x15\xa5\x9a\x73\xa6\xd5\x15\x75\xe8\x85\x1f\x7b\xe7\x2b\xba\xc0\x8a\x79\x5c\x2d\x2e\xb6\x59\x29\xb8\x19\xcc\xb2\x7b\x81\x27\xa7\x2f\xf0\x92\xc3\x8c\xf3\x94\xbe\x1a\xcb\x1d\x56\x41\x13\xcb\x92\x78\x4b\xbf\x07\xd7\xbe\xe2\x3f\xd8\x86\x71\x9d\xf2\x76\xb3\x25\x87\xa6\x23\xa9\x32\xe9\x83\xf3\x68\xd6\xb5\x07\x61\x53\x1a\x52\xbb\x05\xa3\x7a\x78\x1c\xcf\x59\xcc\x6b\x3f\xce\xa5\x26\x8f\x12\xff\x12\x16\xba\xed\xc3\xc1\x6d\x49\x71\x99\xe7\x24\x3d\x59\xb6\x72\x5e\xe1\xc2\xba\x9b\xce\x50\x0c\xc5\xa2\x93\x55\xa3\x5f\x0f\x62\x63\xb9\x9c\xd1\x8b\x57\xc9\xf8\x1c\xa4\x5c\xa7\xd7\x91\x1f\x27\x7e\xd0\x22\xf7\xab\xa1\x41\xda\x2c\x57\x88\xc5\x1e\x42\xc5\x24\x27\x44\xb1\xec\x79\x76\x7b\xed\xbd\x45\xc3\x5d\x52\x6b\x2f\x6c\xc7\xd9\xf8\xfa\x4c\xc4\x70\x6a\x60\x12\x0c\x18\x79\x63\xd4\x61\xe9\xbe\xb8\xc2\x2f\x40\x90\xeb\x2d\x3b\xf0\xbb\x65\x8b\x40\x5a\xc6\x1d\x09\xaa\x6f\x38\xe2\x43\x83\x98\x59\x22\x44\x36\x97\x7e\xbc\x52\x4a\x1e\xd7\x42\xb3\x6e\xab\xda\x19\x78\x2a\x28\x2d\x74\x6a\x3b\xea\xf4\xe1\x20\x36\xdb\x3a\x7f\x26\xeb\x20\xd9\x2e\x32\xfb\x51\xcf\xec\x99\x9d\x6c\x15\xc3\xf2\x67\x0a\x18\xb5\x29\xff\xa2\x80\x7b\x33\x3e\x34\x04\xbc\x99\xcd\x50\xdd\xd1\x96\xe3\xd2\x21\x69\x0d\x49\x3e\x6c\x54\xc8\xd0\x38\xb6\x27\x63\xb7\x50\xda\x41\x09\x35\x73\x83\x29\x19\xc4\x94\x67\xb6\x0a\x97\x29\xf8\xf0\x97\x9a\x88\x1f\xe7\x49\x24\xa9\x9b\xf9\x2c\x77\xb4\x4a\x7d\xaa\x3a\x5b\xc7\x80\x42\xc0\xbe\xfb\x7b\x71\x76\x0a\x42\x6e\x54\x12\x2c\xc5\x56\x1c\xc5\xc5\x5b\x5e\xb1\xe2\x96\xef\xb0\xb6\x52\x48\x44\x39\xc4\x27\xaa\xa9\xc9\xf6\x00\xcd\x34\x5f\xa4\xc2\x23\x96\x50\xcb\xcb\x35\x3e\x0f\x93\x0b\x21\x3f\xa6\x30\x26\xe4\x98\x9c\xaa\x6b\x01\xe6\x20\x7a\x9b\x53\xb2\xd5\xb0\x74\x54\x9b\xc8\xc7\x9f\xb1\xc3\x38\x7f\xef\xc4\x9b\x56\xb9\x6b\xa8\x15\x1a\x02\xd2\x55\xb9\x83\xd9\x93\x4b\xa1\x7d\x02\x48\x59\x3c\x07\xee\x9b\x5f\x2f\xe2\x46\x80\x94\x27\xf3\xd4\xd6\x92\x5d\xf0\x9c\x16\x96\x72\xfa\xb3\x74\xdf\x51\xbc\x98\x11\x47\x57\xb6\xe2\xa9\xd0\x8b\x19\x8a\xa8\x42\x2e\x66\xec\x02\xb0\x8a\x22\x3f\x5e\xf9\xc1\x15\x09\x34\x65\xd2\xc2\x99\xe1\x6a\x69\x59\xb6\x73\x76\x97\x5c\x1d\xc4\x61\x3f\xe0\x95\xb2\xb6\x40\xf7\x0d\x2a\xd8\x17\x4f\x12\xa1\xeb\x4d\xa7\x74\x9b\xf5\xd9\xec\x48\xe5\xf8\xe0\x27\x17\xa1\x17\xc8\x00\x98\x50\x50\x55\x55\x1c\xfc\xdd\xef\xa0\x29\xd7\x82\x46\x80\x14\x34\x82\x9e\x52\x54\xb4\xf0\x13\xb9\xda\x97\x80\x87\x8d\x10\xf5\xb5\x17\xe8\xc1\x18\xf0\x8e\x83\x81\x23\x8a\xf3\xcb\xd9\xdc\x07\x28\x67\x8d\x01\x7e\xb2\x10\xd3\xa0\x64\xe6\x6f\x40\x76\xac\x45\x28\x28\x63\x08\x94\x47\x21\xaa\xaf\x05\x1b\xa1\x76\x4e\xaa\x1a\x34\xf1\x17\x3c\xfd\xf1\x87\xd7\x3f\xbf\xf8\xe3\xc9\xe9\x8b\xd7\x7f\x3c\xfb\xe1\xc9\x37\x2f\x9e\x3d\xed\x6f\x22\x95\x2a\x97\x77\xc4\xcc\xf1\x28\xda\xac\xf0\x09\x81\xc8\xe0\x6c\xe2\x79\x8d\x1a\x0c\x30\x66\x8f\xc1\x73\x3d\x53\xe0\xd7\x5f\x3f\xd4\xcb\x97\xc1\x21\xb2\x70\xab\x9c\x9b\x4e\x66\x6b\xa7\x43\xbe\x8c\xd0\x85\xcc\x1f\x9b\xfa\x88\x89\x81\x0a\x68\x13\xe5\x99\x43\xd9\x36\x74\xef\x60\x09\x00\x83\x4d\xe0\xf4\xbf\x67\x0b\x3f\x19\x88\x4b\xf4\x8b\x8f\x6e\x3a\xa6\xc5\xdd\xe2\x70\x51\xd1\x36\x6b\xc8\xd4\x72\xa2\xad\xa1\x53\x33\x81\x8a\x6c\xc6\x14\x88\x85\x17\x2c\x51\x14\xe6\x81\x48\x61\x40\x8f\x76\xb3\x2a\xba\x0f\xbb\xd3\xb1\x66\x25\xcc\xda\x87\x66\x37\x7e\x1a\x87\x9f\x04\xbb\xfa\x02\xe4\x1a\xdd\x56\xfe\x92\x46\x3e\x07\x69\xf4\xcd\x16\x07\xe0\x1d\x28\x64\x52\xe9\x3f\xa6\xbd\x32\x5b\x46\xdf\xd0\xc4\xde\x9d\x3d\x4f\xf3\x18\x0f\x0d\xcb\x6c\x4c\x62\x9c\xfe\xd7\xc9\x62\x93\x19\xf8\xbf\xae\x6b\x4b\x14\x23\xbc\x0b\xa2\xa4\x1e\x60\x5b\xd0\xa5\xe8\x29\xdc\x91\xdb\x9e\x66\xe6\x9b\x1e\xa3\xa9\x78\x91\x36\xf8\xda\x0e\xf6\x5c\xad\x33\xd6\x0c\x36\x59\xd4\x55\xa0\xf7\xaa\x41\x60\xac\xe8\x64\x88\x68\x4e\x53\x9d\x9e\x2b\x73\x30\x28\xce\xea\x80\x82\xb7\xcc\xac\x30\xd8\x08\xb0\x47\x48\x50\x02\x27\xb2\x7d\xb1\x06\xbc\x98\xff\xe6\x7f\xe7\xce\x37\x62\x6b\x40\x9a\xa8\x9e\x3b\xd7\x33\xbb\x7b\x27\x40\x47\xb6\x3d\x67\xee\x6d\x43\xbc\x1e\x9c\x3e\xe9\xf2\x61\xf5\x26\xa9\x77\xba\x7c\x79\xcc\x64\xf9\xa9\xf0\xee\x95\x2a\xbf\xf3\xf1\xe2\x6c\x8c\x34\xf9\x6d\xfb\x0b\x49\x91\x9f\xd9\xf9\xf3\xfc\xf8\xd7\x5e\x74\x85\x16\xd2\x45\x18\xd1\xfd\xc5\x0f\x03\xb5\x19\x6f\xae\xd5\xb4\x3a\x34\x43\x7e\x3b\xe6\xdc\x60\x29\xb2\x87\x09\xf0\x59\xcf\xf6\x0f\x5a\xee\xaf\x6f\x1f\xbd\xf6\xfd\xeb\x1f\xf7\x06\x5a\xee\x41\x81\xe2\xa8\x15\xb3\x0a\x15\xa7\x31\x19\xd5\x0a\x15\xc7\xe3\x80\x34\x43\xc5\x15\x10\xe2\x3e\x69\x7c\x38\x50\x03\x90\x46\x5d\x56\xaa\x10\x69\xfa\x76\x08\x71\xa0\x36\xaa\xbd\xbe\x62\x45\xf8\x75\x31\xb6\xbe\xa9\x5b\x15\xaf\xde\xf1\x08\x30\x04\x23\xae\x23\x09\x6a\x31\xde\x3a\x12\xa1\xd3\xf7\x05\x8c\xb8\xe6\x91\xf5\xf2\x6f\x16\x61\xc4\xe9\x3b\xc3\x88\x03\xdc\xf5\x72\x8a\x11\x57\x0c\x0e\x18\x6e\x79\x1b\x8c\x11\x67\xcc\x7a\x63\xc4\x91\x3e\xef\x10\x23\xce\x50\x40\xf5\x94\xb5\x3b\x88\x9d\xbd\xc0\x88\x73\x46\x86\x88\x2b\x45\xdc\x94\xfd\x71\x76\x03\x11\xd7\x84\x13\xf4\x81\x10\xe2\x80\x7d\x40\x88\xfb\x44\x11\xe2\x46\x05\x18\x2a\x38\x73\xc1\xea\x8f\x3a\x4e\xda\x19\x3e\x1c\xe8\x80\x0f\xd7\x80\x1c\x24\xee\xed\xce\xf1\xe1\x6a\x36\xf9\x32\x28\x6a\x05\x0a\xa8\x81\x19\x77\x0e\x09\xb4\xc5\xc5\x47\x15\x16\xa8\xe3\xa1\xfd\x80\x1d\x34\x96\x7c\xb7\x3e\x5b\xec\x20\xef\x7a\x24\xec\x20\x5c\xd1\x50\xec\xa0\x9d\x23\xf4\x90\x09\x3e\x20\xf4\x7c\x38\x84\x9e\x0f\x87\x9d\x52\x61\x60\x50\x2e\xae\x99\xfe\xb6\x5e\x3d\x38\x76\x4a\x75\x45\x81\x4a\xf9\xae\xc6\x76\xc0\x4e\xf9\xc8\x60\x52\x78\x1c\x94\x16\xc8\x94\xa1\x30\x29\x62\x43\xf1\xde\xd8\xaf\x69\x6c\xd8\xbe\x58\xaf\xdf\xfc\x1c\x7b\xff\xb8\xfa\xd5\xaa\xb9\x09\xcb\x80\x36\xfc\x78\xbe\x0a\xe3\x4d\x84\x7f\xac\xbd\x80\xc1\x9a\x04\x9b\x1c\x3d\x45\x0c\x64\x92\xeb\x3c\x69\x0c\x57\x1e\x09\x57\x73\x9f\x56\x39\x9d\x74\x4b\x1a\x5a\xab\xf0\x55\xeb\x9b\x5f\x86\xe1\x56\x55\x82\x82\xb1\x30\xf3\x86\xd4\x44\x59\x73\xfb\x7b\xf8\x60\xb5\x69\xe5\xcb\xb3\x34\x51\x56\xde\xcf\x7a\xfb\x96\xc3\xcf\xd1\x94\xce\x0c\x51\x4b\x0b\x86\x3b\x0e\xf9\x64\x0b\x4f\x95\x7c\x6f\x80\xca\x59\xea\x2a\x4d\xea\x11\x45\x97\xd0\xb7\x92\x70\xb9\x5c\x95\xac\xb0\xdb\xf8\xc9\x94\xd3\xa1\x0e\x73\x46\x28\x8f\xe5\x25\xa6\x5b\xff\x2b\x45\xb9\xd6\xc9\x33\x3d\xa6\xe7\xa9\xc0\xb4\x6d\x82\x17\xab\x73\xee\x25\xde\x34\x0e\x37\x11\xb9\x29\x9e\x65\x08\x11\x35\x18\x3c\x56\x15\x82\xe7\xef\x29\xf4\x4e\x16\x68\x9e\xef\xe3\xa6\x18\x7e\x67\x31\x97\x8b\x6a\xab\xc5\xf9\x2f\x56\x8d\xd9\xa2\xf3\x9b\x53\xb1\x59\xb7\xfb\xa2\xb6\xb9\xff\x7d\xa6\x64\xa9\x9e\x00\xa4\xca\x51\x75\x6b\xbe\x2e\xc2\x50\x57\xb0\x94\x79\xc3\x0c\xe7\x90\x9b\xe2\x47\x8c\x77\x7a\x2a\x0e\x0d\x1f\x1a\x9e\x93\x8b\x86\xc2\x2d\xc5\x7c\x13\x45\x28\xa8\x1c\xa3\x8b\x27\x2e\x16\x61\x65\x56\x5c\x6f\x15\x19\x1f\xa5\x0b\x87\x82\xa1\x82\x4a\xd4\xdf\x6e\xe2\x12\x0b\xf2\xf2\x9d\x55\xc5\xa1\x98\xe8\xc4\x2a\xbd\x6f\x21\x4c\x11\xcb\xc5\xf3\xb4\x88\x4b\x39\x7f\x54\x01\x75\x52\x99\x65\x0b\x65\x96\x92\x32\x37\x74\x0b\x06\x76\xb3\xc8\xe8\x1d\xae\x62\xeb\xa9\xc5\x8b\x77\xb3\x1c\xca\x51\x4b\xe1\x1e\x5e\x6d\x1d\x3e\xa8\x77\x7c\xab\xd3\x28\xae\xbd\xc0\x5b\x0e\xd3\x28\x3a\xf0\xf8\x6b\x84\x3b\x93\x84\x65\x8f\x1c\x61\x60\x60\xeb\x42\xd9\x77\x8e\xce\x5d\xe4\xe5\x8a\x18\xdd\xca\x94\x4b\xff\x7b\x49\xa7\x2a\xd3\x84\xe2\x07\x63\xaa\x7a\xd9\xdd\xcd\x45\x52\xfc\xae\x28\xfe\x53\xfc\x26\xac\xb5\x00\x35\x46\xb5\x80\xfe\x27\xd1\xfa\x13\x67\xee\x07\x49\xa4\x53\x9e\x2d\x73\xc9\xc5\x56\x56\xe2\x28\x49\xcc\x66\x84\xf0\x09\x69\x7a\x7e\x5b\x7b\x82\xa4\xae\x95\x24\x6c\x73\xab\xc8\xca\xe2\xa1\x6d\x87\x27\xc9\x2f\xba\x9c\x24\x33\x69\xbe\x57\xa8\x9b\xbf\x5e\x2f\x5e\x3c\x8d\x6f\xb5\x8f\x04\x75\x73\x87\x10\x9b\xd9\xfc\xf0\x28\x9b\x04\xdd\x61\x4f\x50\x36\x39\x75\x80\x53\x46\x1b\x94\x85\x2a\xd0\x26\x70\x9b\x80\x36\xf9\x2a\x5e\x55\x1b\x13\x62\x6d\xa6\xe9\x11\xb2\xab\x8e\xf2\x15\xbe\x18\x37\xa3\x7c\x04\xaf\xfb\xac\xb7\x2b\xec\xf8\x38\x9b\x72\x21\x4c\x2f\x5f\xc5\x0f\x08\xb3\xb9\x8f\x10\x9b\xb0\x7c\xb8\x60\x01\x67\x39\x53\x55\xee\x77\x8a\x2e\x1e\x1c\x2f\x7f\x1a\x28\x9b\xdc\x80\x1e\x0e\x65\x93\xeb\xc4\xe7\x87\xb2\xe9\x3e\x2c\xc8\x26\xcf\xfa\x1f\x25\xce\xa6\x53\xf4\xe3\xfd\x7c\x70\x36\xb7\x1d\x78\x45\x1d\x2f\x70\xd3\x76\x30\x6c\x6d\x5c\x55\xce\x58\x4c\xa1\xd8\xb2\xaf\x1e\x1e\x8d\xad\xf3\x00\x3e\x45\x40\xb6\xb3\x66\x40\xc7\xcf\x14\x79\xcd\x16\x60\x57\xd9\xad\xc8\x6b\xd6\x47\x89\xbc\x06\x87\x6f\x15\xe5\xb5\xcd\x42\x65\x3b\x7e\x3c\x88\xdb\x46\x05\x60\xcb\x0e\x15\x07\x00\xb6\x03\x00\x1b\x5f\xf5\x67\x02\xc0\xb6\x05\x06\xdb\xc3\xc0\xb0\x75\xc6\x60\xa3\x98\x6a\xdd\x31\xd8\x84\xe8\x6b\xd4\xee\xf7\x41\x31\xd8\x44\x46\xb9\x87\x76\x39\xc9\xfb\xb4\x4f\x48\x6c\x91\x79\xf9\x5f\xfd\x34\xfa\xf7\xde\x22\xb1\xe5\xf6\xbb\xc1\x60\x6c\xdc\x46\x3a\xaa\xdd\xe9\x80\xc7\x76\xd6\x03\x8f\x2d\x3f\xaa\x1c\x20\xd9\x0e\x90\x6c\x7b\x0e\x69\x66\x34\x2e\xd1\x3d\x87\x34\xeb\xba\xd2\x06\x6a\x75\x1f\x0e\xd5\xac\xe1\x04\x74\x00\x36\x2b\x02\x9b\xf5\x27\xd5\x01\xdb\xec\x80\x6d\x76\xc0\x36\x6b\xc7\x9e\xc9\xff\xeb\x64\x0c\xc9\x16\xe2\x01\xdb\xec\x80\x6d\x36\x54\xef\xe9\x86\x6d\xd6\xf1\x38\xdf\x8c\x72\x36\x0c\xdf\x4c\x74\x98\xdd\x9f\x03\xf6\x5e\xa2\x9c\x69\xb7\x8b\xff\xd1\xfe\xf1\xe8\x97\x03\xca\x99\x7c\x40\x39\xab\x47\x39\xcb\x8c\xe9\x9f\x0d\xca\x59\xe3\xba\xdd\x1f\xa1\xb2\x7f\x58\x67\xda\x5f\x4f\x9f\x9c\x7f\xfb\x6e\x79\xc0\x3a\x2b\xd8\x09\x0f\x70\x67\x07\xb8\xb3\x03\xdc\xd9\x01\xee\xec\x00\x77\x76\x80\x3b\x3b\xc0\x9d\x1d\xe0\xce\x0e\x70\x67\x07\xb8\xb3\x03\xdc\x59\xc5\x31\x69\x80\x09\xf2\x00\x77\x76\x80\x3b\x3b\xc0\x9d\x1d\xe0\xce\x0e\x70\x67\x07\xb8\xb3\x03\xdc\xd9\x01\xee\xec\x00\x77\xd6\xdd\x5c\xbc\x4f\x86\xec\xfd\x02\x3d\x7b\xe9\x9d\xc6\xc9\x4b\x0f\x89\xcd\xd8\x05\x4c\x9f\xce\xb8\x67\xbc\xbe\xc3\xc5\x48\x15\x10\xd1\xea\xae\xd6\x04\x07\x14\x88\xb5\xfe\x41\x60\x62\x35\x51\x23\x29\xe8\x59\x21\x7e\x0b\xd7\x94\xa1\x16\x59\x83\x1d\x9c\x64\x01\x68\x59\xb1\x9d\x1a\x3f\xc2\x8e\xa8\x65\x4f\x16\xd7\x7e\x90\xdf\x53\x0d\xf7\x44\x91\x1f\x14\xb9\x4c\x6e\xc6\x2d\xeb\x79\x00\x3f\xdb\x0e\xb3\xac\xba\xfb\xf5\x45\xcd\x22\x31\x47\x8f\xfe\x9e\x41\x65\xf1\x5c\xcf\x29\xa1\x19\x3f\xe5\x8c\xd6\x88\x8b\x55\x8d\xfd\x83\xc4\xfb\x3a\x68\xc0\xc5\x12\x6f\xe5\xe3\x20\x5f\x95\xf1\xad\x44\x7f\x3b\x02\xdc\xab\x0a\x96\xd7\x76\x98\x40\x72\x3d\xea\x95\x36\x14\xe8\xca\x8f\xa7\x78\xcf\x7b\x3b\x1e\xda\x95\xfc\x30\x58\x57\x46\x3b\xd6\x55\x81\x02\x14\xc1\x6a\x5b\xa8\x2a\xb9\x27\x50\x55\x4f\x44\xa1\x31\x41\xaa\x00\x07\x52\x55\x17\xc1\xbb\x2d\x4f\x0e\x42\xa9\xaa\x61\xeb\xfd\xe6\xc3\xa2\xc7\x73\xaa\xd4\x8c\x0d\x55\xc5\x80\xaa\xb2\x6d\x4f\x0c\x54\xb5\x6b\xa6\x12\x83\x54\x75\x87\xa8\xea\x0a\x50\xd5\x0d\x9e\x4a\x1e\x1e\x31\xd2\xa8\xa4\xb0\xa2\x16\xb5\x43\xa0\xc7\x50\x19\xc0\x4f\x70\xd1\x91\xa7\x3d\x18\x61\x40\x16\xd1\x5a\xd0\xac\x87\xc6\xcb\xaa\x53\xf9\x1f\xfc\x28\x12\xae\xfc\xf9\xed\x5e\x85\xc1\xfd\xfc\x74\x69\x3d\xd7\x7f\x3d\xdf\x49\x18\xdc\x36\xd1\x6f\x84\x54\x2c\xf4\x6d\xc6\xc5\xbc\xe5\xaa\x58\x5f\x7f\xbb\x1d\x86\xb4\x09\x20\x83\x32\xb5\x27\x87\xa3\xa2\x43\xa2\xdb\xdf\x35\x01\x29\x1a\xb6\xef\x95\x2e\xdf\xa9\x08\x11\x54\xde\xf9\x5e\x1e\x2a\xf2\x1b\xe6\xce\xd8\xf5\x5a\xbe\x56\x7b\x4f\xc2\x70\x95\xf8\x6b\x79\xbb\xcd\xf3\xdb\x55\x78\xee\xad\xd8\xde\x83\xdf\x94\x5e\x91\x01\x0e\x77\x89\xee\xe2\x3d\xd0\xc5\xe3\xb9\x2e\xda\xcf\x60\x3b\xb2\x37\x5f\xc5\x2a\x99\x0d\x1f\x95\xc3\x90\x9e\x3f\x2d\x86\xfb\x99\x8d\x3a\x73\x7f\x46\x22\xaa\xb4\x88\xbf\x3a\x45\x16\x76\x24\x68\x87\xc5\xd4\x33\x7a\xb0\x89\xaf\x17\x1c\xb8\x5b\x2f\x86\x1e\x91\x3b\x73\x80\xb9\x78\x5b\x86\xeb\xb8\x96\xca\x17\x16\x04\x19\x5a\x91\x0a\xd8\xcf\x45\xae\xa8\xbf\xde\xec\xc6\xfa\x8d\x73\x50\x0a\xaa\xec\x3e\x09\xed\xe1\x98\x3d\x84\x4b\xe7\x90\xcc\x3e\x63\x7e\x90\xd0\x4b\x9e\x25\x77\x1f\x1d\xd9\x5b\x32\xed\xc0\x3f\x65\x84\xf0\x48\x9b\x0b\x8f\x24\x02\x50\x9e\x1d\x62\x23\x6b\xc8\x94\xc6\x46\xf6\xa3\xd3\x21\x30\xf2\x10\x18\x79\x08\x8c\x1c\x3f\x30\x92\xac\xc2\x43\x54\xe4\x21\x2a\xb2\x49\xed\xe8\x16\xf9\xd8\x2d\xde\x91\xd9\x19\x92\xdb\x35\x0a\x2f\x8a\x96\x99\xcc\x64\xc3\xde\x59\x70\xba\xad\x22\xff\x37\xf4\x03\x66\x80\x19\x60\x75\x29\x5b\x37\xf6\xc4\xdc\xb2\x97\x41\x91\xd1\x37\xda\xed\x8b\x9f\x7f\x7a\x26\xb6\xbb\x50\x70\x48\x45\x7e\x9c\x05\x1d\x64\x10\xdc\x29\x6e\x64\x6b\x74\x64\x7a\xf1\xa2\xcf\x14\x06\x9a\x39\xdc\xdf\x5c\x54\x2f\xc4\x7d\x48\x63\x1f\x07\x63\x6f\x92\xd0\x3f\x3a\x51\x79\xdc\x9f\xb7\x58\xa0\x85\xda\x53\x13\x7b\x73\x89\x22\x24\xdd\x78\xb1\xe4\x05\x12\xa1\x12\xae\xc7\x0f\x96\x58\x30\xa7\x6d\xd4\x55\xda\xc7\x33\xb2\x8e\xc8\x9b\xf5\xe2\x63\x22\x72\xec\xbd\x1d\x85\xc8\xb1\xf7\xf6\x03\x12\x39\x8b\xc5\xed\xeb\x89\xf0\x61\xa8\x8b\x29\x43\xbb\x38\x06\x69\x17\x29\x8c\xd5\x50\xe2\xf6\x2a\x2c\x43\x38\x19\x0a\x13\x44\x58\xfe\x5c\xf8\x51\x9c\x50\xd9\xd8\xd3\xed\x7d\xc6\x43\x47\x26\x9e\xbf\xea\xe9\x6a\x98\x6a\x63\xe7\xb9\x05\x88\xe8\x4c\x25\x2f\xb5\xa3\xa2\x23\x5c\xda\x64\x1a\x5f\x28\xc6\xb2\xcc\x9f\xca\xc7\x92\x10\xd0\x9d\xef\xb5\x22\x4f\x2a\x31\x0d\xe3\xdd\xa6\x64\x7e\x59\x7e\xb6\x65\x0f\xbc\xfd\xa8\xdd\xf6\xf6\x64\x43\x6e\x0a\x28\x56\xe4\xc7\xcb\x95\x7f\x7d\x8d\xa2\xfc\xfb\xe2\x16\xad\x24\xe3\x6d\xd2\x41\xf3\x26\xfd\xd6\x74\x7e\x5a\xff\xfb\x95\xbf\x37\x71\xc6\x31\x03\xef\x6e\x7d\x91\x38\x83\xed\x30\x7e\xb9\x94\x5e\x73\xbc\x60\x66\x6a\xda\xae\x44\x32\xeb\x9d\x23\x99\xa1\xd5\x35\x92\x39\xab\xaa\x10\xd2\xfc\x89\x07\x35\x6b\xe2\x98\x5e\xb6\xb7\x54\x62\x7a\x21\xac\x46\x0f\x2b\x72\xd1\x81\xbb\x4b\x64\xaf\x20\x58\xac\xbe\x01\x31\x38\xb4\x28\xae\xb7\xe1\xeb\xb6\xe0\xe6\x71\x08\xc1\xbc\xf2\x85\x2f\x0d\x89\x80\xee\x48\xa7\xda\x08\xe6\x8e\x94\xea\xf4\x3d\x1f\x01\xdd\x32\xb2\x6d\x23\xa0\x49\xf5\xbb\x89\x80\x4e\xb7\x7b\xa8\xe7\x11\xd0\xd0\x78\xd8\x08\x68\xa8\xf7\x8d\x80\xce\xfd\xfb\xca\x4a\x8e\x98\x31\x0b\xd7\x66\xb9\x3a\x23\x9e\xc6\x32\x4d\x76\x18\x68\x0d\x75\xdc\x50\x07\x6b\x88\x38\xbc\xee\xe3\x0c\xb4\x26\x81\x92\x63\x46\x5a\xc3\x62\xa4\x35\xfc\x20\x91\xd6\x6c\x14\x0f\x1a\x6a\x0d\xad\x43\xa8\xf5\x27\x1a\x6a\x0d\x1c\x41\x7c\x5a\x5a\xd8\x3f\xd8\x1a\x96\xdd\x4e\x2b\x90\x18\x62\x5e\xda\x55\xb0\x35\x49\x28\x37\x6b\x0e\xb6\x86\xa0\x1a\x6c\x0d\x41\x13\xe7\xef\x3c\xd8\xba\x46\x9f\x60\x4f\xed\xbc\x93\x3b\x0d\xb6\x86\xe2\x5c\x9f\xc0\xc5\x64\x1d\xf3\x7e\x15\x38\x63\x45\x5b\x03\x7b\x9c\x0d\x8c\x1d\x52\xf6\x01\x29\x44\x28\xf9\x79\x45\xa3\xa3\xc8\x27\x17\xb4\xe8\xa2\x45\xca\x73\x15\xd7\x48\xf8\x41\x3b\xd9\x87\x8f\xbb\xee\x26\xd6\xd9\xe2\xaa\xea\x6d\x7d\xbc\x5b\xf6\x26\xd6\x98\x20\x1a\x55\x84\xb9\xbe\x2b\x61\x6e\x2a\x40\x9c\x87\xa6\x9f\xbc\xe6\x74\x1d\xb3\x03\x34\x86\xc5\x07\x72\x94\x31\x32\x8a\x0f\x45\x3c\x3d\x24\x2a\xb7\x58\x71\x6f\xcc\x0a\x41\x40\xad\xd4\x29\xee\x6a\x15\x7a\x0b\x3f\x58\xd6\x66\x7b\x35\xab\xd9\x5e\xff\xfe\xe8\xef\xc5\xcb\x45\x91\x51\xa6\x08\xde\x8d\xc9\x64\x17\x32\xb8\xae\xbc\xbf\x6e\x6b\xc4\x04\xab\x2c\xe5\x38\x8d\xf8\x38\xc5\xa5\xe3\x36\xa3\x31\x23\xbd\xdc\x29\xa5\x5f\x09\x0b\xaa\xd7\xea\xaa\x45\x8c\xaa\x7a\xeb\xb7\x4a\xd6\x2b\x3f\x58\x8c\x2c\x53\x49\x95\x9f\xba\x34\x6d\x35\xe8\x60\x2a\x94\x2d\x58\x1f\x9f\x88\x1d\x15\x9a\xa8\x4d\xc0\x72\x8e\x84\x4b\xe2\x99\xcd\x7b\x19\x13\x7b\x67\xb0\xf0\xa2\x45\x13\x70\xc7\x30\x5c\x09\xda\x3e\x0b\x2e\x04\x29\x96\xc1\x54\xce\xb3\x62\xcd\xda\xc4\x74\x03\x82\x11\xbf\x28\xb6\x57\xa5\x3b\xa8\xd1\xdd\x78\xb3\x68\x54\xe4\x91\x8c\xb6\xb1\x20\x56\x11\x91\xc6\xc1\x69\xe8\x87\x84\x34\x50\x8c\x56\x51\x90\x0e\x00\x47\xe3\x59\x55\xcc\x03\xc0\xd1\x27\x0d\x70\x44\x26\xf8\x00\x70\xf4\x01\x00\x8e\x36\xfe\x9e\x81\x1b\x09\xa7\xbe\xcb\x51\xe3\x23\x00\x37\xda\xcd\xd8\x0e\xe0\x46\xa3\x20\x1e\x15\xc6\xfe\x90\xd8\x47\x2d\x78\x47\xf8\xd0\x58\x8a\x58\xbe\xde\x24\x05\xcc\xa4\xc1\x2e\x38\xb5\x50\x48\xf3\x95\x17\xc7\x52\x24\xa1\x77\x09\x0a\x16\xb1\x94\xa4\xee\x29\x77\xf7\xb9\xa7\x4a\xa4\x34\x39\xe8\x04\x4a\x34\xe9\xea\x77\x13\x85\x2b\xb4\x57\x51\xc7\x7f\x2e\x17\xff\xf8\xc7\x3b\xfb\x66\x6f\x93\x6f\x62\x8a\xd5\xe7\xdd\x64\x1b\x8e\xf3\xa0\x31\xc8\x45\x7d\xa8\x3e\xfd\x24\x09\xfb\xc2\xe3\x69\x8b\x46\xdd\xff\x10\x51\x39\xcb\xe1\x8d\xb9\x3a\x09\xaf\x50\xf0\x28\xda\xac\x50\x8c\x12\xc2\xde\x59\x33\xe5\x60\x27\x11\xf8\x47\xeb\x05\xbe\xe0\xfa\x7e\xac\x0c\x93\x3d\x03\x1a\x6b\xee\xde\x3f\xc7\x60\xc6\x7e\x5c\xbd\x83\xeb\xdf\x71\x13\x3d\xe2\x11\xc8\xb3\x43\x1c\x63\x73\x8e\xc7\x5e\x54\x3a\x44\x31\x1e\xa2\x18\x0f\x51\x8c\xa3\x47\x31\xe2\x35\x78\x88\x61\x3c\xc4\x30\x7e\xa8\x18\x46\x41\xce\xc6\xfe\xe7\xb0\xd2\xc1\xe7\xa1\xe3\x1f\x48\x77\xf6\x32\x1c\x71\x7d\xfd\x5c\x47\xd7\xb0\x06\x8a\xf6\x33\x0b\x47\xc4\xd3\xb4\xdb\x60\x44\xdc\xc2\x67\x1c\x8a\x58\x24\xf0\x2e\x02\x11\x77\x4d\xe0\x7d\x0d\x43\x24\x94\xdd\x65\x10\x62\x6f\xc2\x1e\x42\x10\x3f\xc3\x10\xc4\xba\x8d\x6e\x2f\x36\xe0\xfd\xcb\x67\x7a\xf3\xea\xc5\xbf\xbf\xf9\x16\xbc\xd9\x9b\x38\xc3\x87\xcc\x67\x4a\x4c\xaf\x87\x54\xa6\x1f\x22\x95\x29\x11\xe6\x9d\x12\x99\x0e\x89\xf9\xfb\x68\x12\x9a\xf6\x22\x43\xc9\x39\xe7\x90\xf3\x74\x58\xc4\xdf\x21\xe7\x69\xe5\x9b\x43\xce\xd3\x43\xce\xd3\x4e\xb7\x23\x87\x9c\xa7\xf2\x21\x10\xef\xe3\x70\x2c\x3e\xe4\x3c\xed\x69\xb0\x3f\xe4\x3c\x3d\xe4\x3c\xdd\x03\x97\xe0\x43\xce\xd3\x87\x75\x09\x2e\x56\x75\x4a\xec\xe5\xcf\x83\x05\x7a\xd7\x5a\xe3\x12\xf5\xab\xaf\x65\xa8\x4b\x24\x18\xe8\xce\x1d\x96\x0f\x19\x59\x07\x39\x2c\x57\xef\x37\x77\xec\xae\x2c\x7f\xa2\x99\x58\x7b\x8e\xeb\xe3\xc9\xc3\xda\x8b\xfb\xfb\x31\x12\xb9\xd4\xa3\x5e\x71\xbb\x66\xa6\x7a\x79\x08\xea\x1e\xef\x60\x0a\xca\x92\x76\x74\xde\xaa\x15\xd3\x95\x51\xee\x6e\x05\x95\xe4\xff\x38\xfe\x5e\x9f\xa4\x37\xfc\xde\x39\xbe\xef\x3e\xe9\xaf\xf0\x3a\xe5\xa1\xef\x78\x62\x14\xbd\xf5\xe7\x68\xea\x2f\x50\x90\xf8\xc9\xed\xa3\xb4\xf2\x7d\xb9\xed\x89\xd7\xff\xfb\xef\x1f\xbd\xe8\x17\xf1\x6d\x0f\xd5\x2f\x14\xf9\x31\xcb\x1a\xd9\x25\x73\x6f\x39\x5f\x90\xbc\x29\x67\xd8\x1d\x72\xa9\x9c\x55\x20\xfd\xfe\xbb\x2c\x3a\x9c\xa6\x57\xe1\xa9\x60\x29\xa8\x69\xb2\x74\x57\x50\x7a\x84\x7d\xa4\x63\x1c\x7e\xeb\x8d\x69\x45\xaa\xa8\xef\x22\x6c\xeb\x22\x16\x11\x8c\x67\xf8\x5a\xf8\xec\xb8\xf4\xc5\xdf\x7f\x4f\xf0\xbb\x0c\xe9\xf7\x04\xbf\x4c\x9c\x78\x7f\xff\x3d\x95\x34\xf7\x5d\xaa\x9b\xc6\xfe\x02\xcd\xbd\x68\xba\x8e\xc2\x77\xb7\x83\x2b\xff\x63\x1d\xa1\x0b\xff\x9d\x44\x5e\xa8\xad\x23\x42\xde\xa2\x5a\x45\x10\x2e\xb6\xf8\xfe\xbe\x97\x4f\x41\x77\xd2\xd6\x8e\x9d\x36\x3b\x94\xa8\xdd\xaa\xad\x23\x47\x1d\x31\xe8\xc7\x4d\x84\x6c\xfa\xb2\x69\x6f\xeb\x4c\xde\x9d\xad\xab\x71\x56\xd5\x61\xe2\x05\x5f\xf6\x59\x3b\x5d\x09\x58\x33\x4e\xdc\xd4\x30\xd2\xb5\x57\x28\x1e\xba\x78\xe0\xf8\xb3\x7a\x72\xd5\x7f\xd3\xd3\xc3\xa8\x5e\xd3\x22\xae\x8b\x5b\x38\x91\xb6\x28\x14\x7b\xa3\xef\x04\x71\xe2\x05\xf3\xfd\x0a\xf4\x7b\xf2\xc4\x7b\xf9\xfa\xdd\xa6\x06\x41\x1b\x33\x1e\x55\x6f\x59\xc8\x1f\xeb\x35\x79\x40\x2f\x94\xd0\xfc\x8a\xf8\x9b\x62\x0e\x22\x36\xcc\x70\x93\x90\x39\x13\x04\xfa\x61\x55\x89\xd5\x58\xe7\x90\x5a\xb0\xaa\xa7\x36\x4f\x5c\x2a\xbf\xa6\x64\x54\x5f\xe1\xa6\xd5\xa7\x28\x4e\xfc\x80\x68\xd6\xec\xc1\xf3\xa7\xbd\x2c\xc0\x1d\x62\x0c\xcb\x13\xc7\xc7\x1b\x3a\xa2\x78\x43\xb7\xfb\x99\x7a\xf4\x40\x88\x5c\x91\x13\x82\x29\xda\x78\x3f\x98\xab\x6c\x48\xb1\x1a\x5f\x86\x37\x5b\xf8\x32\x36\xc5\x35\xea\x45\x53\x21\x24\xf6\x71\xd2\xac\x9c\xcd\x62\x35\xb0\x51\x70\x83\x2e\xf8\x9c\x05\x8f\x35\xc5\xd9\xf5\x0b\xaa\xda\x7a\x18\xd9\xc3\x1f\xe8\x02\x20\xff\x70\xfe\x2d\x4e\xba\x21\x57\xc7\xd1\x8d\x3c\x1f\x8e\x4a\xf9\x01\xbf\xf5\x68\xdf\x81\x7d\x7b\x06\x90\x16\x59\x58\x13\xde\x44\x8a\x28\x56\x0c\x92\xed\x7e\xf1\xc9\xb7\xe0\x0a\xae\x95\x70\x2b\xa7\x54\xba\x09\x66\xd3\x10\x3e\xb5\x59\x07\xb6\x37\xc5\x0b\x16\x34\x54\xac\x21\x2b\x55\x2e\x84\xe4\xa2\x77\x09\x8a\x02\x6f\x55\x86\x91\xe3\xc3\xf6\x78\xfa\x56\xf1\xd8\xaa\x75\x66\xe2\x31\xdd\x0c\x58\x9d\x69\x04\x42\x26\x22\x53\x85\x49\x2e\x5e\x76\xe4\xf2\x5b\x91\x65\x66\xd3\xcc\xcd\x59\x41\x33\x18\x5c\x73\x1e\xf7\x31\x07\xfe\xd0\x63\xdf\xa6\x71\xba\x39\xf3\xd7\x6b\xdb\x52\x9d\xf3\x05\x4f\xd9\xd3\x18\xe4\xb2\xcd\xe7\xb1\xbd\x46\xf1\xa5\xd0\xd9\x43\xe0\xb6\x25\xbc\x0d\xda\x3e\xb7\xf5\x9b\x4b\x3f\xce\x0e\x34\x9b\x18\xc5\x92\x27\x11\x65\x47\xba\x08\x23\x29\xb9\x44\xd2\x29\x21\x7e\xf6\x0e\xee\x73\x5f\xfb\x7d\x8d\x7f\x58\x4b\x54\xba\x1f\x14\x1a\x95\x6e\xfc\xe4\x52\x62\x47\x83\xa6\x90\xf3\x6e\x72\xbf\xaa\x3b\x58\x25\xb1\xb3\xf5\xf4\x12\x2e\x7c\xd8\xe9\xc5\xbb\xf3\x87\x99\xad\x66\xc5\x02\xeb\x62\x98\x1c\x4c\x11\xab\x51\x22\x84\xd8\x0f\xa2\xd7\x3a\x82\x0f\xf4\xe7\x84\xf2\x6e\xfb\x8a\x7a\x34\x0c\xdc\x87\xca\x0c\xe1\x2d\x16\x11\x8d\xa9\x79\x48\x9e\x78\xfe\x4a\x7a\x42\x3b\x22\x79\xc1\x42\xc2\x43\xdc\x2d\x8b\x88\x55\x75\x28\x24\xf8\x93\x94\x44\x33\x45\xde\x4a\x5f\x6f\xd2\x17\xf3\x46\x68\x1f\x8f\xeb\x5e\xcc\xa6\x7f\x90\xae\x5d\xed\x02\xe3\xe3\x51\xdb\x2f\xc7\xc9\x0e\x59\x07\x8d\xc1\x66\x15\x9d\x3d\x9c\x5f\xa1\xe4\x95\x97\x5c\x0e\x8c\x5a\xe2\x97\x44\x4c\x2a\xab\x5f\x11\x20\x5d\x11\x86\x72\xa6\x3b\x8a\xc6\x6b\x9c\xc2\x65\x42\x7b\x27\xe1\xee\x8d\x21\xd1\x44\x67\x96\xe2\xf8\xc7\x11\x43\xcd\xf3\x9a\xae\x7d\x6f\x39\xad\x85\x95\x69\xd5\xe6\xea\x02\xc0\xdb\x2e\x2c\x7b\xdf\x9e\x42\x45\xdf\x3e\xee\x3a\x93\x73\xf4\x1a\x31\x08\x93\x29\xb9\x9d\xcc\xc3\xb0\x69\xe0\xcd\xf4\xfc\x56\x56\xe4\x08\xfd\x17\xcd\x13\xfa\x77\x10\x26\xdc\xb5\x25\x31\xb6\x5d\xa3\x68\x99\xab\x8d\xec\xee\x92\xbb\xec\x4c\xc2\xe9\xc0\x1b\xc7\x06\x63\xd7\xde\xd9\xe1\xf6\x2f\xce\xec\xea\xc5\xbf\x6f\xfe\x7a\xf1\x8f\x5f\xf7\x26\xce\x2c\x3d\x2d\x75\xcf\x7c\xb7\xc3\x18\x36\xda\x99\x78\xe4\x70\xb6\x8a\x95\x6f\xac\xdc\x76\x66\x53\x68\xdb\x21\xb7\x5d\x1e\xde\x55\x9e\x81\x43\x96\xbb\xe1\x24\x39\xe4\xbb\x3b\xe4\xbb\xab\xd1\xdf\x1a\xa2\xdf\xfa\xe7\xbb\x63\x7d\x3e\x24\xa2\xfb\xec\x13\xd1\xe5\x72\x3f\xbb\xea\x10\xa4\xc2\xda\xc6\x57\xfa\x90\xd8\xee\x10\x4f\x77\x48\x6c\x77\x48\x6c\x57\x4c\x51\xf4\x49\x27\xb6\x1b\x02\x00\x77\x48\x7a\x97\xef\x0a\x39\xa2\xcf\x78\xc9\x99\x32\x6d\xf3\xd3\x4e\xcf\xc4\x2d\xb8\xf2\x51\x52\xdc\xd0\x5e\x87\x70\x7d\xe0\x44\x77\xdc\xd5\xee\xda\x8b\x63\x9a\x92\x2d\x45\x4e\x55\xe4\x79\xe4\x27\xfe\xdc\x5b\xe1\x05\x72\xbd\xe6\x77\xcf\xed\x24\xbe\x5c\x4c\x8c\x57\x9b\x8f\xc9\xea\x92\x8f\xc9\x12\x65\xcb\x13\xad\x83\x0f\x92\x91\xa9\x0a\x9b\x62\x8d\x73\x80\x05\x96\xe8\xb8\xd8\x57\x55\x11\xc8\x58\x4b\xbc\x65\xec\x32\x6b\x5d\x59\x07\x2f\xf9\xcf\x41\x9b\x08\xb8\x60\x49\x4c\xf4\xe9\xa5\xc1\xe0\xc3\x71\x93\xe0\xa5\xf6\xc2\x91\x05\x6f\x66\x84\xfc\xe4\x05\x6f\xaa\x63\x33\x32\x7e\xc4\x82\xf7\x83\xa6\xbf\xa3\x79\x29\xc7\x13\xa2\x7c\x52\x3b\x96\xc6\x6e\x38\x24\x45\x91\x87\x3f\x98\xd0\x2c\x60\x45\x55\x81\x27\x46\x10\x74\x1f\x3e\xaf\x5c\x9b\x5a\x7c\x00\x98\x38\xe4\x9c\xfb\x24\x01\x26\x5e\x13\x9d\xab\xa5\x57\x54\x31\x6b\xed\x16\xab\xab\xa5\x63\xac\xb2\x43\x36\xbc\x4f\x17\x5c\x42\x7c\xca\x1b\xb6\x21\x75\x0b\x98\x17\xb1\x31\xa8\x3e\x18\x3f\x73\x9c\x60\x69\x74\x4e\x15\xd0\x7b\x78\x02\xc4\x83\xd2\x93\x9d\x0d\x70\x3f\x00\x27\x7a\x5c\x66\x92\xce\xe3\x45\x75\x48\xcb\xf8\xd9\xa5\x65\xfc\x3c\x61\x28\x3e\x0e\x6c\x8a\x16\x3c\x8a\x65\x52\xc2\xaf\x18\xcb\x5d\x6c\x4f\xc1\x2a\xf6\x2a\x66\xf3\x2f\x3f\xd1\x2e\xff\xf7\xbb\xff\x34\x26\x67\x4c\x23\x35\x39\x70\x0a\x61\x40\x26\x43\xb1\x18\x92\x83\x31\x9d\x3c\x2e\x2c\xd2\x28\x84\x45\x2a\xf2\xe3\x95\x1f\x5c\x11\xaf\x33\xa6\xf5\x98\x33\x5c\x2f\x2d\x4b\xc3\x19\xba\x2b\xfc\x1d\xf4\xb2\xfe\xe9\xa3\x4a\x8e\x13\x66\x7a\xea\x57\xce\xe4\x97\x28\xbe\x7c\x9d\xde\x25\x0c\xf2\x52\xff\x0e\x79\xab\x51\x3c\x6f\x2b\xae\xee\xdc\x89\x0f\x8f\x3b\x09\xd7\xd3\x38\xf1\xb2\xf3\x60\x0f\x8d\x54\x2b\x9f\x80\x72\x33\x75\x0d\x21\xb6\x73\x43\x97\xa4\x27\x89\xb4\x42\x5e\x9c\x48\x61\x80\xa4\x4b\x42\x22\x89\x78\xa3\x4a\x61\x40\xca\x52\x79\x20\xf9\xb1\x74\xe1\xf9\x2b\x3f\x58\x76\xce\x94\x51\x33\xa8\xcc\x0a\xff\xe0\x63\xba\xf4\x62\xc9\x93\x58\x7f\xb6\x1d\x56\x76\xcd\xb0\xab\x61\xad\x56\x85\xd1\xc4\x92\x17\x21\x89\xb5\xda\x37\x7b\x49\xfa\x1f\xcd\x62\x82\x2b\x0a\xc2\x62\xed\x6a\x17\x9b\xd4\x00\x8f\xf1\x1e\x9a\x42\xbb\xc7\xba\x68\xe1\xa4\xce\x2f\x24\xc5\x25\x9b\xe9\xd3\x70\x13\x24\xcd\x16\xf7\x96\x79\x90\x6b\xa3\x88\x6c\x16\x45\x54\x88\xe8\x56\xd3\x1d\xaa\x92\x23\xf6\x8c\x0e\x3c\x2e\xab\xeb\xe5\x60\x2f\xfc\xd5\xab\x1c\xce\x68\xc6\x32\x31\x96\x0d\x09\x9c\x6f\x2b\xbf\xbf\x64\x9b\x49\x7d\x5d\x69\xb7\xd8\x9b\x05\xcf\x48\x53\x14\x3f\x2b\x12\xbc\xf2\x4c\x9c\x09\x97\xdf\x27\x06\x85\x84\xa7\xf4\x16\xe7\xe4\x1b\xa1\xd9\xd9\x43\xc6\x58\x4b\x95\x10\xd2\x2b\x3f\x58\xf4\x48\xca\x2b\xf7\x8e\xa9\xad\xd6\x23\x5e\x3e\xa2\xc0\xc3\xc6\xa5\xa4\xb4\x7d\xf9\x3d\x1e\x1a\xa6\x71\x82\xa2\x6b\x02\x15\x11\x2c\xa7\x4b\x2f\x41\x37\x5e\x76\xef\xaa\x34\x7e\xe8\x07\xcb\x08\xc5\x71\xf9\xa3\xe1\xf6\xaf\xd6\xeb\x21\xb1\x59\x4c\x44\x87\x82\x59\xac\xf4\x9d\xde\x44\x3f\x39\xdd\x86\xc8\x0c\xc9\x37\x7e\x72\x19\x6e\xb0\x9a\x47\x9e\x2b\x67\xd4\xb6\x5b\x3e\x19\xf5\x89\x1c\x2c\x6f\x51\x7d\x26\x64\x8b\xc0\xc2\x01\x44\xfd\x96\x36\x4e\x72\x86\x2e\x65\x45\x7e\x12\xc7\xe1\xdc\xf7\x12\xb4\x60\x81\x43\x7d\xa9\xdd\xb9\x42\xaa\x04\xa3\x45\xae\x02\x8f\x39\x19\x1d\x75\x87\x7e\x0c\xbf\x73\x16\x7f\xc8\xd9\xd8\xac\xe3\x24\x42\xde\xf5\xf0\x79\xe8\xa7\xac\x88\xd6\x8a\xcb\x75\xfd\x34\x0c\x02\x62\xd7\xf9\x5f\x3f\xb9\xfc\x36\x9d\x8e\x7c\x07\x2d\x3c\x27\x88\x38\x3d\x51\x30\x0e\x51\xf8\xdd\xd4\x3a\xb0\xb3\x49\xe9\xa4\x81\xb7\x1e\x0d\x9b\x60\x01\x48\x38\x33\x5b\xcb\xf5\xfe\xf9\xbd\x05\x48\xeb\x60\x3f\xec\x28\x77\x3b\xb2\x7c\x9a\x87\x5c\xc7\x0c\x19\x54\xeb\x84\x8d\x7d\x34\xea\xa5\xb5\x96\x75\xc0\xf3\xcd\xfc\x0a\x25\x8f\xaa\x51\xb8\xb5\x00\xa9\x3c\x94\x8f\x95\x9d\x2f\xea\x95\xcd\xc6\x20\x5f\x91\x9a\xda\xdf\x91\x41\x81\xed\xf1\xb7\xc4\x40\xea\x61\x6d\x59\xbe\x08\xa3\x6b\x2f\x99\x06\x9b\xeb\x73\x12\xc2\xb7\x5e\x6d\x22\x6f\xe5\xff\x85\x52\xab\x2c\x31\x86\x0a\x63\x74\x89\xdd\x34\x8c\x86\x5b\x4a\xf7\x2f\x9e\x76\x0f\xc3\x68\x93\xa7\x37\xff\xfb\xfa\xd1\x7f\xf4\xfd\x0b\xa3\x0d\xc2\xe0\x29\x1d\xd0\xab\x1c\xfd\x57\x29\x9c\xa1\x3b\x47\xda\xd2\xb3\xdb\xbe\x45\xe6\xae\xf9\x71\x15\x8c\xcf\xbb\x08\xda\xad\xc6\xea\xba\x5d\x63\x75\x75\x9d\x3b\x43\x5a\x87\x58\xdd\x5e\x81\xa9\x82\x78\x54\xb7\x21\x06\x76\xab\x40\xd3\xfa\x8a\xbb\x84\x99\x36\x75\x6b\x9b\xd0\xdc\x36\x0a\x8c\x1b\x6c\xdb\x54\x75\x6f\x2a\xf4\x0f\xb6\x6d\x1e\xd9\xd6\xc1\xb6\xee\xce\x83\x6d\x75\x2d\x0f\xb6\xd5\xc1\xc3\x06\xdb\x52\x38\x81\x7e\xc1\xb6\xa4\xcf\xbb\x0b\xb6\xd5\x35\xdc\x42\x87\x60\x5b\xf7\x13\x0a\xb6\x85\xc6\xc8\xc1\xb6\xba\x5d\x08\xb6\xd5\x9d\x0f\x91\x6b\x92\x8d\xe2\x41\x83\x63\x75\xfd\x10\x1c\xfb\x89\x06\xc7\x12\x5f\xa1\xb2\x9b\x62\x5a\xb8\x0b\x47\x7e\x31\x2f\xed\x2c\x38\xd6\xee\x10\x1c\xeb\x08\x82\x63\x9d\x26\xce\x7f\xe0\xe0\x58\x33\xef\xe4\x6e\x83\x63\xc5\xce\xf5\xd0\xc2\x64\x1d\x33\x38\x16\x56\xd3\x20\x0f\x0c\x80\x65\x90\x12\x87\x00\xd8\x9e\x71\x58\xba\x7e\x08\x80\xfd\x38\xe3\xb0\xa0\x26\x12\xe0\xda\x27\x1b\x00\x0b\xe1\xac\x3e\x00\x16\xea\x1d\x02\x60\xa1\x2e\x90\xf7\xba\x68\x1d\x3c\x4c\x00\x2c\xd4\x47\x3a\x54\xea\xbb\x09\x80\x85\x62\xb7\x59\x08\x14\x08\x47\x73\xdf\xe5\xe1\x17\xda\x45\xe3\xa8\x62\x30\xb5\xbb\x7d\xd2\x42\xb0\xdd\xe8\x41\xc8\xf0\x31\x4b\x46\x20\x52\x6d\x41\x7f\xd5\xb6\x2e\x88\xb4\x45\xb5\xac\x22\xc2\xbb\xa5\xd2\x22\xbf\xed\x42\xd8\x94\xb7\xbb\xcc\x19\x61\x60\x90\xa8\x90\x0e\x56\xaf\x68\xa4\xb2\xef\x41\xdf\xd9\xed\xb3\x43\x95\xfd\x1d\xc4\xae\x29\xf4\x46\x7c\x3c\x2f\xa0\xfe\xac\x42\xde\x71\x05\x11\xc6\x6e\x55\x2c\x8d\x71\xf6\x18\xb2\x2b\x01\xb7\xcb\x29\xa3\xff\xdd\x9c\xbb\xc5\x49\x62\x0b\x36\x64\x4e\x10\x1f\x82\x07\xa7\xa4\x2d\x7a\x5d\x98\xfe\x7a\x28\x26\x13\x1c\x75\x81\xf3\xa0\x4c\x56\xc4\xec\xa8\x9e\x68\x47\x61\x32\x67\x00\x93\x89\x90\x3f\x14\x20\x38\xf8\x0e\x85\xf8\x30\xfb\x40\x7c\xe8\xc6\xc7\x0a\xf1\x41\x55\xea\x03\xc4\xc7\xc7\xa7\x40\x8d\x09\xf1\xc1\xdf\x43\x12\x74\x37\xce\x73\x9c\xb2\x49\xea\x2b\x62\xf6\x12\x87\x0d\x4b\x86\xa0\x40\x6d\xb7\x64\x38\xe9\xaa\x75\xdb\x5e\xe8\xb5\x1a\xdd\x64\x76\xb7\xbf\x54\xc9\x34\x58\x12\xd0\x1a\xe9\xfa\x5f\x17\x9c\xf9\x1b\x37\x12\x43\xb0\x91\x18\xa2\x05\xbf\xdd\x56\x22\xe7\x1e\xf9\x46\x4f\x03\xa1\x40\xe2\x1a\x6d\x68\x22\x5d\xc0\x48\xb6\x83\x6a\x1a\x41\x8e\xf7\x67\x4a\x26\x92\xfc\x20\x41\xcb\xc8\x2b\xa6\xa4\xde\x05\x6f\x1a\x7b\x8b\xd5\x33\x26\x6f\xf6\x50\x72\x3e\x14\x56\xcf\xd8\xac\x7d\x80\xfa\xf9\x14\xa0\x7e\x74\x78\x80\xfa\x39\x40\xfd\x3c\x08\xd4\x0f\x61\xbd\x03\xd4\xcf\x36\x1b\xe0\xc7\x0f\xf6\x23\x64\x82\xb6\x9e\x7d\x4c\x60\x3f\x3b\x1a\x60\x7f\xc4\x95\x41\x96\xb3\x9e\x0c\xc6\x3c\x73\xf7\x0b\xce\x67\xec\x19\xd8\x27\x38\x9f\xdd\x8c\x6d\x07\xcc\x75\x00\xf4\xd9\x73\x40\x1f\x3e\x6b\xdc\x78\xe0\x3e\xfb\x87\xe9\x43\xce\x77\xfb\x12\xac\xf2\xed\xe2\x49\xf4\xe3\xe9\xc5\xb9\x38\x58\xe5\x71\x66\x27\x2c\x2f\xe0\x52\xd4\x26\x0b\xba\x9c\xae\xbd\x00\x55\x9d\x92\xe5\xa6\xd0\xcd\x8a\x4e\x5d\x88\xb4\x48\xdb\x6f\x84\x43\x28\x2f\xbc\x4a\x68\xac\xa8\xa0\x2e\x38\x8e\xa9\x64\xd7\x28\xd8\xb0\xe1\x08\x11\x6f\x88\x55\xb9\xd7\xd6\xd2\x41\xd7\xeb\x0f\x1f\x54\xd5\x71\xeb\xee\xd0\x09\x25\xd5\xb4\x05\xe1\xe1\xbe\x73\xe0\x6a\xcb\x30\x30\xed\x06\x0d\x42\x53\xe4\x95\xcf\x98\x40\x8e\x42\x16\xe7\x84\x7b\x94\x84\x51\xad\xbd\xbb\xcf\xf8\xc9\xb4\x26\x7e\xb2\xaa\x37\x7e\xd7\x6a\xf4\x35\x1d\x0c\xc2\x00\xe5\x8c\xbb\x08\xe7\xf1\x74\xe5\x07\x57\xcd\xdd\xcd\x50\x55\x0c\x45\x4e\xbc\xf3\x14\x2f\x6b\x0a\x4a\x95\xe3\xfe\xa6\x71\x05\x0c\x81\x05\x14\xe3\x83\xe5\xd3\x1f\x7f\x78\xfd\xf3\x8b\x3f\x9e\xfe\x78\xfa\xfa\x8f\x9f\x7f\x7a\x91\xa1\x4b\xc8\x58\xe2\x04\x68\x9e\x3c\x5a\xd9\x58\xec\x5e\x5c\xf8\x73\x06\x24\x85\xeb\xc7\x8c\x2d\x07\x61\xb8\x46\x01\x8a\xa4\x20\x8c\xd0\x05\x8a\x22\xea\x62\x4e\x7b\x15\xd1\xed\xe0\x8f\xf3\x95\xd7\x30\x9c\x7e\xf4\xc7\x94\x89\xd5\x45\x38\xdf\x60\x3e\xf0\xd8\x72\xea\x7d\x0b\xd1\x3f\xec\xa0\xd3\x2b\x72\x35\x28\x9b\xfb\xd9\x71\x23\x0d\xde\x0e\xd9\xad\xb8\x5d\xe1\xa1\x77\xa8\x24\xbc\x42\xc1\x5e\x61\xce\xfd\xeb\x3c\xfe\xf9\xcf\x9f\x5f\xff\xdc\x88\x39\xf7\x64\x9e\x06\xfe\x3d\x49\x15\x18\x02\xbe\x10\x5d\x7b\xc5\x9f\x83\x1e\x3c\x0e\x83\x05\x5a\x21\x12\xcb\xf8\x38\x0c\x36\x31\xfb\x63\x15\x2e\xc3\x4d\xc2\x6c\x61\x2b\x2c\x0a\x78\x7c\x3b\x42\xca\x41\xf0\x76\xe4\x4b\x06\x6e\x37\x53\x72\x54\xbb\xfc\x3a\xa3\x87\x80\x1d\x7d\xeb\xc9\xad\x0c\x3a\x77\x20\xe3\xf1\x34\x9e\xcc\xe7\x28\x8e\xc3\xe8\xf9\xd3\x82\x73\x53\xa1\x78\xa0\x65\x47\x2e\xc3\x46\x30\x61\x76\x2d\x56\x14\xa4\x6e\xe1\xf0\xd2\x6e\x80\xee\xa4\xc2\x7f\xff\x09\x37\x91\x44\xa6\xb6\x9f\xd7\x40\x5f\x91\xd8\x66\xbf\xae\xee\x43\x3c\xba\x97\xc1\xd0\xbd\xbc\xf9\x2a\x56\x49\x6f\x63\x15\x2d\xfc\x24\x87\xf6\x12\x4f\x63\x1e\x33\xc6\x5b\x3f\x45\xfc\x30\x75\xb8\x8f\xca\x78\x67\x1d\xe4\xf8\x2e\xb0\xa9\x04\xac\xd5\x31\xb2\x0e\x2a\xf2\xeb\x79\xb8\x46\x35\x73\xd3\x91\xfd\xca\x1b\x29\x0f\x26\xf3\x22\x9c\x7b\x2b\x8a\xdc\x13\x52\x07\xe6\xe5\x2a\x3c\xf7\x56\x23\xed\x9d\x52\x09\x57\x81\xee\x00\xd1\x66\x85\x62\x21\xbc\xc2\xac\x09\xa6\x6b\x2b\x3a\x3e\x45\xf1\x3c\xf2\xd7\xe9\x7a\x1b\x8f\x9a\x3c\xc6\x56\xa1\x91\x59\x15\x52\x6d\x7b\x92\x8e\xc3\xc4\xde\x7c\xa0\xe9\x97\x67\x9d\x4b\x2f\x7e\x8d\xe6\x11\x4a\xb8\xb5\xda\xef\x22\x5e\x9e\x87\xeb\xdb\xe9\xf9\x26\x49\xc8\x3e\x55\x32\x1a\xa5\xbd\x4d\xdb\xe3\x1a\x2b\x1a\x8e\xaa\x3a\x21\x61\x33\x35\xce\x3e\xd8\xea\x12\x7e\x48\x4b\x5b\x5e\xd9\x57\xb3\xe2\x65\x71\x00\xb3\xa1\xf0\x43\x79\x1d\x7a\x66\xa0\xbb\x8c\xd0\x85\x5c\xbe\x3d\xea\x2f\x9f\x87\xdc\x76\xb5\x70\x28\xb3\xc9\x6e\xa3\x34\x10\x28\xc9\x9b\xc8\x4f\x90\x94\x6a\x4b\x85\x58\x6a\x98\x42\x1d\x74\x8f\x72\x2a\xdd\x02\x3d\x5b\xf8\xc9\x40\xa8\xd0\x5f\x7c\x74\xd3\x71\x3b\xed\x71\xe7\xd3\xc2\x66\xb5\x54\x5a\x6c\xd6\x2b\x7f\xee\xf5\xa6\x54\xd7\xcc\x0d\x3a\x17\x87\x3c\x5f\xf9\xf3\xab\xb2\xb5\x9d\xbb\xb6\x05\x2c\x26\x05\xec\x0d\x7b\xf1\xf3\xf6\x34\xa5\xd4\x90\xeb\x87\x2d\xe4\xc0\x20\xd5\xd8\x24\x0e\x8f\xdd\x34\xe3\xce\x88\x56\xf9\x8c\xb2\x73\xc5\xc2\x0b\x96\x28\x0a\xf3\xb8\xbc\x0e\x73\x0c\xf7\x79\x8e\x5f\x90\x93\xd7\xce\x82\x97\xe7\xfc\x49\x70\xab\x3b\x24\x27\x9f\x84\x34\x16\x6d\x36\x6c\x73\xe8\xdc\xf9\x61\x86\xc4\xf4\x3f\x76\xea\x95\x56\x55\x0a\xf7\xa2\x72\xc7\xce\x9e\x87\x8b\xdb\xa1\x5d\x4d\x75\x41\x31\x64\x2e\xff\xdf\x93\x08\x49\xb7\xe1\x46\x8a\x37\xec\x8f\x1b\x2f\x48\xa4\x24\x94\xe2\x24\x5c\x4b\x9b\xd8\x0f\x96\x52\x72\xe9\xc7\xd2\x93\xd3\x17\x54\xbe\x7e\x4d\x91\x00\x6f\xfc\xd5\x0a\x93\x82\x7c\x14\x6e\x12\xb5\xae\x1b\x22\x5d\x75\x17\xf4\x62\x9c\xb9\x0d\xc9\x28\x63\xba\xfd\xb4\x14\xba\xe0\x7a\x8e\xa6\xd9\xcf\x6a\x10\x99\xea\x9c\xaf\x46\x90\xe3\x4d\xfa\xc0\xc0\x7d\x12\xec\xb3\x0c\xfd\x39\x1e\xb4\x43\x7e\x60\x01\x6a\x7d\xac\x02\x74\x53\x22\x6f\x2f\x12\x77\xec\xe9\x03\x4b\xcf\x4d\x8c\xca\x62\xf3\x93\x91\x8f\x76\x3f\xf9\xf8\x73\x8c\xb6\x14\x8e\xf6\x2e\x84\xa3\xb5\x03\x25\xb7\xe5\x9c\x42\x0c\xe5\x95\x43\x8a\x22\xe7\x25\x39\x0a\x27\x30\xb7\x3f\xb4\x6c\xa1\xe2\x6a\xfb\x2c\x9e\x9f\x12\x42\x7e\x04\x12\xda\xf8\x58\x25\xf4\xa2\x4a\xe1\x5e\x54\xee\xd8\xd9\x07\x16\xd2\xe9\x82\xc4\x72\xfa\x13\x93\xd1\x66\x3f\x19\x4d\x57\xd4\x96\x62\x5a\x04\x08\xd4\x93\x4c\x5d\x3c\xc8\x3a\x54\x38\xd0\x5b\x4d\xef\x02\x56\xd4\x16\xd4\xd1\x8e\x5a\x9c\x39\x92\x65\x0e\x66\xc4\x2f\x2c\x07\x24\x8e\x37\xe7\x71\x12\x51\x50\x62\x45\x9e\x7b\x41\xbe\x47\xf4\xbe\x41\x2f\xdf\x5a\xef\xc7\x2d\x7a\x10\x26\xfe\x85\x4f\xfd\xe2\xe2\x7d\xb9\x4e\x77\xfe\xf3\xdf\xdf\xb4\x7f\x83\x5f\xc4\xd7\xe9\x28\x8a\x42\x8a\xab\x9b\x22\xcd\x3c\x4e\x6e\xd7\xd9\xbd\x36\xfe\x97\xbe\x52\xb9\xd6\x66\x31\x58\x02\xb3\x97\x3e\x53\xe4\x79\x84\xbc\x04\x0d\x47\xad\x12\xd5\x0b\x71\x1f\x36\xc4\x72\xb6\x45\x12\x8f\x37\x97\x4c\x59\x21\xc9\xb1\xce\x11\x0a\x24\x6f\xb1\x40\x8b\xbe\x09\xa6\x68\x62\xa9\x1b\x2f\x96\xbc\x40\x22\x34\xc2\xf5\x50\xc3\x02\x6b\xa1\xae\xca\x3e\xb1\x43\x75\x04\xde\xac\x17\x1f\x0f\x81\x63\xef\xed\x28\x04\x8e\xbd\xb7\x1f\x8c\xc0\xcc\x01\x64\xaf\x09\x8c\x89\x43\xfb\x39\x06\x75\x49\x4d\x1f\x8c\xbe\xd4\x7f\x66\xaf\xc9\x9b\xf1\x2f\xe9\xeb\x42\xf2\xe2\x9a\x5b\x7b\xa3\x62\xe8\x77\x68\x50\x5b\x7b\x9c\x51\xaf\x19\xc2\xfd\xf8\x70\x12\x26\x6e\x98\x9e\x07\x98\x97\xff\x84\x1b\x96\xc7\xef\x26\xb3\xe0\x22\x29\x40\x37\xb9\x35\x62\x7b\x0a\xa7\x15\x7b\x49\x5e\x6b\x2f\x22\xef\xa8\x30\x3d\x7e\xa7\xc9\x94\x4c\x85\xed\xdd\x31\x41\x8d\x8f\xe2\x84\xaa\x13\x3d\x31\xf6\xb8\x8b\x2a\xea\x44\xd3\xd3\x6b\x20\x3d\xae\x9c\xe7\x0e\xbb\xe4\x54\x51\xf2\x10\x3d\x92\x15\x51\x96\x1b\x0e\x3a\xb2\x74\x60\x2f\x3e\x95\x8f\xa5\x6a\xec\x61\xa9\xd7\x8a\x3c\xa9\xdc\xf4\x77\x8d\x2d\x6e\x57\x6e\xb3\x90\x06\xa2\xd3\x12\xed\x36\x89\x36\xb8\x0c\xb1\x18\x89\xa1\x3a\xac\x40\x67\xdc\x0f\x65\x96\x77\x08\xda\x17\x5d\xf6\x9b\xe7\x73\xcf\x7b\xf2\xf6\x4f\xb1\x2e\xbb\x0e\x57\xfe\x9c\x46\xad\x70\x7f\xa6\x49\x8a\x17\x28\x48\xfc\xa4\x50\x76\xed\x05\xde\x92\xf0\x74\x5a\x56\xa7\xe5\x16\xc2\xe9\xe1\xac\x1c\xce\x4d\xfc\xe9\xe4\x57\x69\xa3\xec\xa2\x17\x97\x3d\x39\x7d\x81\x1b\x24\x8f\x6e\x59\x3e\x8e\x02\xc7\x0b\x13\x51\xf6\x97\xba\xc2\xfc\xa0\xb3\xc2\x10\xfb\xd7\xca\x07\x31\xa7\x5b\x9d\x35\x02\xf8\xcf\x16\x2e\x63\xa5\x23\xf8\xcb\x6c\x78\x5d\x7c\xb7\x1a\xbc\xc9\x72\x03\x67\x01\x54\xa2\xe6\xef\x2e\x14\xde\x2e\x94\x59\x10\x2a\x43\xb3\x45\x17\xe5\xa4\x2d\xf2\xc7\x84\x8a\x5d\xc8\x19\xda\xe8\x2a\xda\x2f\xce\xb9\x8b\xdf\x69\x9d\x49\xba\x85\x53\xb9\x05\x3a\x0e\xa7\x8e\x01\x53\xb5\x05\xa7\x3e\xe7\xc7\xb3\x23\x6e\x84\xca\xf6\xf8\x26\x3d\xb8\xcd\x14\x73\x9b\xd9\x9d\xdb\xcc\x9d\x73\x9b\x21\x50\x97\x0a\xa0\x30\xa6\x62\x8d\xe0\x71\x33\x88\x25\x7e\xc2\x5b\x6a\x7f\x6e\x28\xce\xd4\x0b\xb4\xf4\xe6\xb7\x54\x33\x8d\xa5\x4b\xef\x2d\x92\xd0\xf5\x39\x5a\x2c\xd0\x42\x22\x7b\x76\x39\xaf\xf5\x50\xe2\xd6\x1d\x17\xaa\x89\x24\xab\x8b\x39\xdb\x7f\xcb\x58\x11\xfc\x7e\xf9\x53\xb8\x12\x6e\x96\xb8\x7c\x77\x5b\xa5\x48\x54\xc0\x87\x15\x15\x03\xf9\xa2\xbb\x94\xa8\xe2\xfc\x0c\x86\xd7\x68\x93\x11\xba\x58\x46\xe8\xdd\x65\x84\xbe\x73\x19\x01\x7b\x04\x57\xb7\x9f\x0d\x08\xaf\xdf\x3e\x4a\x6e\xd7\x28\xbc\x68\x8e\x7a\xa6\x99\xfd\xd8\x03\xa6\x84\x12\xf3\x2b\x8b\xc5\x5e\xaf\x11\x01\xbd\xa4\x41\xd7\x54\x0f\xf7\xe3\xe9\x8a\x2c\xf9\x54\xad\xbd\x7d\xc4\xd0\x3d\x06\x9e\x38\xaa\x8a\xfd\x80\x03\x47\xf6\x44\x45\xef\x12\x14\x2c\x8e\xee\x12\x6f\x49\x7b\x20\xdf\x6f\x73\xec\xd8\xbf\x14\x7f\x2f\xaf\xbf\xfd\x9f\xef\x9e\xc2\x60\x7f\x52\xfc\x25\x3b\xcf\xb2\x37\x62\xfe\x3c\x1a\xdb\x56\xc9\x9e\x07\x4d\x76\x6d\xdf\x9a\x3d\x0f\x72\x20\x6a\xc0\xc8\x45\x57\x7c\xc8\x9e\xd7\x90\x3b\x2e\x0d\x82\x28\x65\x8e\x03\x4e\x35\x49\x9d\x22\xab\x05\x08\x15\x65\x1b\xa8\x7f\x51\x03\x65\x25\xa0\x01\xda\xb9\xfe\xeb\xcc\x65\xa3\x5f\x0e\xbd\x7e\x74\x60\xf8\x4b\xc2\x97\x46\x4d\xb3\xd7\x58\x75\x6f\x42\xf5\x4e\xb3\xd7\x32\xb2\x60\xb3\x5d\x9a\x3d\x52\xfd\x6e\xd3\xec\x01\x37\x4f\xb3\x07\x35\xbe\xcf\xc3\x5c\x51\x86\x29\x6f\x20\x07\x24\xef\x99\x66\x0f\xd6\xa5\xe6\x13\x6a\x3a\xbd\x3d\x03\x80\xab\x08\xf2\x56\x08\xde\x1b\x0b\xca\x70\x1f\xd2\xec\x01\x7d\xe4\x34\x7b\x79\xde\x12\x96\x00\xef\x43\xa4\xd9\x03\x4d\xd0\x8c\x1f\x28\xcd\x1e\x84\x87\x34\x7b\x9f\x68\x9a\x3d\x20\x82\x08\x04\xfd\x31\x02\x3b\x63\xf0\x8a\x79\x29\xab\x79\xb4\xa3\x69\x25\xf9\x42\x3d\x2c\xaf\x2d\x80\xe5\xb5\x9b\x38\xff\x81\xd3\xec\xe9\x79\x27\x6b\x6c\xcc\x43\xfc\xf8\x04\xbb\x81\x2d\x3e\x04\x9b\x98\xac\x63\x06\x41\x02\x91\x03\xdc\x20\x50\x17\x50\x07\xb4\x76\x48\xb3\xd7\x98\x0b\x81\xf0\xf9\xe7\x98\x5f\xaa\x72\x20\xc0\x44\x28\x1f\x80\x3a\x83\x01\xec\x0d\xf0\xeb\x98\x19\x12\xfa\x24\x95\xa1\xd0\x14\xd3\xc2\x55\x2a\x83\xab\x48\xf1\x2b\x46\xba\x16\x93\xc5\x40\xec\xe5\xc4\x7b\x04\x96\x7d\xd6\xb6\x03\x34\x00\xb3\xf3\x2b\xe3\x83\xc0\xb2\x77\x62\xd0\xd2\xc9\x14\x8e\x74\x0c\xad\x58\x86\x3b\x3a\x30\x77\x03\x81\xff\x90\x28\xee\xe2\x77\x0e\x48\xed\x43\x4f\x00\xe0\x73\x45\x6a\x3f\x25\xae\xcb\x6f\xfc\x0e\x30\xeb\x4b\xd4\x0e\xb2\xce\x55\xd7\x02\xff\xbe\x44\x02\x94\xf5\xd1\x2e\x6e\xea\x70\xd1\x21\x38\xe0\xa2\x0f\xc0\x45\x97\xfb\x82\x56\x6f\x7c\x95\x38\xc5\xf3\x20\x88\xc3\x4e\xcd\x67\x1d\x00\x9d\x6b\x99\x18\xd4\x3c\xad\x61\x84\xb6\x1e\x36\x81\x3b\x97\x57\x47\x6f\x38\xf0\x1e\x83\xac\xa2\x72\x57\x1f\xee\x66\x88\xbd\x91\xb9\x7b\x6f\xa6\x07\xe8\xea\x7d\x81\xae\x1e\x01\xa9\x5a\x7c\xcb\xb9\x1f\x2e\x9f\x74\x71\x85\x82\x9b\x57\x45\x7e\xbc\x5c\xf9\xd7\xd7\x28\xca\x3f\x2e\x5e\xc7\x2a\xc9\xe4\x8e\x74\x5e\x89\x14\x4f\x59\x7d\x91\x3e\x91\x62\xfc\x4c\x21\xc5\xf4\x8d\xd5\xc9\xdd\xfd\x17\x11\x4a\x36\x51\x20\xb1\x2b\xdc\x2b\x74\x1b\x1f\x45\x13\xf5\x22\x8c\x9e\x79\xf3\xcb\xa3\xc2\x35\xef\xea\x0c\xcd\x4e\xa2\x33\x34\xc3\x83\x59\xa9\x28\xd8\x5c\xa3\xc8\x3b\x5f\xa1\x93\x2f\xbf\xe4\x7f\x2a\x2b\x95\x04\x1a\x2e\x37\xf9\x53\xbe\x40\x39\x62\x4b\xdf\x0f\xa4\xd5\xfb\xf7\x2b\xd5\x0f\xfc\xc4\xf7\x56\xfe\x5f\x28\x9a\x7c\xf5\xd5\xd1\x4a\xbd\x89\xfc\x84\x7e\xaa\x4d\x94\xd5\x49\xa0\xc6\x2b\x7f\x8e\x8e\x26\x6a\x84\xde\xa2\x28\xa6\x7f\x2d\x36\x73\xc4\x75\x30\x50\xa2\xc9\x1d\x1b\x4d\x44\x87\x3a\x79\xff\x3e\xb8\x9f\x28\xab\x89\xe2\x7d\xf5\x15\xbd\x69\xfe\xf2\xe4\xa4\xd0\x1e\x69\x8e\xf4\xa6\x58\xfe\x75\xe1\x97\x3a\xf7\x56\xab\x23\x6f\x72\x4c\x2b\x51\x0a\x0f\xd9\x1d\xf6\x44\xa1\xff\x9e\x54\x5b\xa8\xbb\x1f\x4f\x70\xd7\x56\x27\x58\x64\x4d\x94\xd5\xfd\x58\xd7\xe8\x7e\xf3\x35\xfa\xea\xcf\xdb\x77\x20\x78\x73\xda\xf5\x1a\xdd\xdb\x24\x97\x4f\x7d\x6f\x15\x2e\x65\x45\x5e\xf8\xf1\x7c\x15\xc6\x9b\x08\xaf\x3c\x06\xd4\x4d\x91\xa7\x15\xf9\x3a\x5c\x90\xc3\x26\xfe\xe0\x5f\x21\xc1\x6f\x2d\x7c\x2b\x78\xfe\x78\x31\x27\x17\xce\xf1\xda\x9b\xd3\xeb\x80\x3c\x03\xa0\xfc\x55\xbe\x17\xb4\x3a\x10\x91\x08\xf8\x4d\x8c\x24\x6f\xbe\xea\xe7\xb7\x48\x44\x79\xaa\xb8\x32\x98\x69\xc8\x87\xdc\x73\x9a\x11\xee\xf9\x74\xc1\xc6\xc3\x76\xc4\x38\x22\x43\x88\xfd\xe0\xaa\xac\xf1\x0b\xef\xd1\x73\x1f\x2d\x39\x46\x49\xe2\x07\xcb\xf8\xf8\x11\x5b\xfe\xc7\x69\xa8\x7e\x51\x7d\xed\xf8\x32\xc4\xc7\x70\x39\x42\xb8\x97\x61\xe4\xff\x85\x4a\x0e\xfd\x29\x31\x36\x41\xf6\xc6\x82\x4d\x07\xfb\x41\x6f\xea\xbb\xdf\xd2\xf3\x33\x60\x71\xa7\xb4\x42\x0b\x83\x2d\x79\xe6\xf0\x43\x5b\x36\x63\x58\x6a\x7a\x39\x98\x3c\x83\xd7\x26\x30\x8f\xeb\xf5\xf4\x1c\x5d\x84\x11\x9a\xc6\x57\xfe\x9a\xa0\x87\xf7\x46\x2e\xcd\x39\x23\xc3\x13\x36\x94\x33\xdd\x21\xba\xbd\x4c\x61\x10\xaa\x07\x3b\xe5\x2c\x5b\x0b\xe1\x1a\x05\x02\xd3\xfb\xd0\x18\xfe\x17\xe1\xd2\x0f\x76\x80\xbe\xb6\x8f\xa3\x7d\x11\x2e\xa5\xc2\x60\xfb\x8d\x81\xf4\xa9\xbc\x98\xc9\x39\x27\x45\x95\x4e\xc1\xa6\x49\xaf\x15\xf9\xb1\x17\xf9\x1e\xb5\xe7\x62\x2a\x4f\x93\x70\xb9\x5c\xb1\xa4\xed\x1a\x19\x7f\x18\xa3\xf4\x48\xa3\x91\xb3\x12\x0a\x6a\x96\x60\x76\x40\x91\xe9\x28\xa4\x24\x94\x4e\x59\x82\xd0\x0e\xab\xaf\x86\x09\x23\x74\x51\xe6\x74\x25\x1f\x13\x53\xb7\x33\xe3\x42\x3a\x2b\x0c\x90\xa3\x0e\x54\x76\xc7\xb0\x10\xa9\xe4\xbd\x84\x8d\xd7\x83\x65\x32\x3d\xc4\x8d\xdf\x50\x38\x09\x7e\xf3\xb8\x20\xfb\x1e\xab\x99\x6e\x7e\xfc\x96\xc7\xed\x84\x78\x98\xe7\xd7\x7e\x92\x5b\x4a\x73\xcf\xcd\x34\xfb\x29\x87\x09\x59\xf4\x33\xd5\x72\xbb\x33\x61\x56\x99\xf1\x54\xc6\x03\xf2\xc2\x4b\xbc\x41\xbc\x36\x9c\xdf\xf2\x7d\x9f\xd9\x8e\xcb\x2c\x27\x0b\xdd\xc5\xb3\xad\xfd\xf5\xeb\x1f\xfb\xef\xec\xa2\x8e\xd3\xe6\x95\x33\xf9\x25\x4a\x2e\xc3\x05\xe7\xa2\x70\xed\x25\xf3\x4b\xea\x02\x2c\xc7\x71\x38\x14\x28\x23\xa3\x50\xe8\x2f\xe6\x53\xaa\xcd\x97\x66\x3d\x9f\xe8\x85\x1f\x63\x5d\x77\x51\xd6\x1e\xc2\x20\x0d\xf8\xaf\x99\xff\x14\x0b\x94\x84\xdf\xa5\x95\xcc\xb8\xc2\x94\x81\xb8\x22\x56\x65\xc3\x6a\xef\xb4\x6e\x9a\x1e\x37\x57\xc3\x9b\x9d\x77\xb6\x52\x7b\x42\x38\x8b\x16\x6b\xe3\x0e\x87\x05\x26\x27\xf1\xb7\xde\xb6\x09\x32\x4e\xe2\x07\x1b\x24\xdd\xf8\xc9\x65\xb8\x49\xa4\x55\xb8\x5c\xfa\x41\x69\x87\xeb\x49\xa7\xa1\x77\xc2\x55\x7f\xa5\x7a\xab\x7f\x67\x8b\x7e\x9d\xae\xd8\x45\x53\xdc\xa9\x8a\xb8\x5f\x8a\x00\x9e\x7f\xc9\x93\x16\xfe\xc5\x05\x8a\x10\x01\x12\xba\xa2\x4a\xd3\x87\xd7\x0a\xec\x8f\x43\x29\x10\x93\xec\x13\xd2\x10\xc4\xc7\xe3\x0e\x1a\x82\xce\x6b\x0a\x42\x0d\x41\xdf\x63\x0d\xc1\x69\xdc\xa5\xea\xae\x18\x3f\xf6\x9d\xc5\xfe\x74\x37\x16\x31\xd0\xe2\x1e\x9f\xd4\xd9\xea\xa0\xf8\xbb\x23\x9e\xd1\x07\x22\x68\xf7\x3b\xe0\xe6\xa6\xba\x29\x35\xd0\x0d\xcc\x8d\xc0\x6b\xcd\x14\x5f\x25\x47\x2e\x14\xb3\xb0\x41\x52\xf6\x90\x4d\x71\x04\x1e\xde\x1e\x71\x3c\xed\xd3\xcb\x34\x43\x5e\xbf\xce\x94\x8f\x25\x94\x2f\xe8\xbe\xac\x88\x10\xe4\xfb\x9d\x4b\x78\xe1\xbf\x8e\xc2\x0b\x9f\xe8\x12\x74\x15\xf0\x69\x06\xf2\x46\xab\xea\x7b\x77\x7d\x3c\xbb\x2c\x1d\x4e\x8f\xa2\x80\xe1\x6e\x09\x89\x7f\xc4\x3a\xcd\x1b\x58\xa8\xb7\xe1\xb0\x51\xac\xe0\x39\x19\xf1\xac\x0e\x5d\x74\x68\x2f\xcb\xcd\xb4\x31\xf1\x07\x90\x03\xb5\xdc\xdd\x93\xc7\x7b\xbe\x5c\x7d\x55\x0c\x55\x2b\x7a\x53\x0c\xc1\xd8\xe5\x72\x73\x17\xd7\x9b\xe5\x4b\x4b\xd2\x94\x5c\x0e\x44\x55\xce\x80\x43\xb2\xa0\x09\xb4\x6f\xa6\xd0\xb3\xed\xb6\xd6\x5e\xa9\x70\xe5\xe4\xc2\x23\xdb\x9f\x67\x1d\xcf\xc4\xed\x57\xaa\xe4\x16\x93\xbb\x4a\xa5\xff\x43\x9c\x22\x48\x57\xc8\x05\x69\x87\x8b\x54\x0a\xe7\xb8\x89\xfc\x2d\xae\x44\xf9\xcb\xc7\xec\x42\x74\x85\x12\x29\x3c\x39\xca\xee\x44\x69\x4f\x95\xa8\xf4\xdb\x2b\xfd\x8e\x8f\x8e\x56\x27\xf3\x95\x17\xc7\x12\x0d\x50\x8d\xa5\x24\xbd\xb6\xba\xc3\xf4\x3d\x9a\xdc\x25\x97\x7e\xac\xa6\xba\x9f\x7a\x11\xce\x37\xf1\xd1\xe4\x9e\x10\xb9\xf2\x34\x42\x31\x4a\x8e\x26\xf7\xdc\x35\xc7\x11\x62\x2f\x91\x69\x53\xd9\x77\x0a\xfd\x2e\x5a\xc6\x6a\x6a\x55\x39\x42\x93\xfb\xfb\x89\xba\x8e\xc2\x24\x4c\x6e\xd7\x88\x4d\xb0\x72\x16\xcc\x14\x76\xf9\xb6\x44\xc9\x8f\x37\x41\x7a\xf9\x96\xa6\xac\x0a\xa3\xa3\x55\xe5\xb3\x89\xc2\x95\x4d\x94\xb8\xf8\x0a\x3b\x36\x9e\x45\x3d\xab\xa6\xdf\x35\xd7\xcd\x5f\xf1\x28\x67\x5e\xcf\x16\xf8\xaf\x4b\xed\xac\xf8\x3b\xeb\x50\x69\xba\xfd\xf6\x95\x70\xd2\xfd\x52\xfb\x3a\x5c\x46\xde\xfa\xf2\xf6\x11\xf9\x67\xeb\x6b\xed\xfc\x52\x7b\xc5\x6e\x7a\xd3\x9b\xdf\x04\x1f\x08\xd1\xd7\xf5\x37\xae\xec\xfe\x34\x50\xf2\xfb\xea\xe3\x2f\x35\x85\xbf\x9f\xc6\xbf\xd3\x1b\x68\x72\xd1\x7a\x8c\xce\x92\xd9\x49\xa0\xa0\xd1\xae\x68\xe3\xe6\x2b\xda\xe8\x7b\xed\xfb\x67\x06\xf8\xb5\x31\xf3\x66\x5d\x14\x30\x00\x58\xf7\x7b\x8b\xe5\x19\xf3\x50\xcc\xc8\x3f\x25\xff\xc8\x2c\xf0\xb7\x7c\xb4\xce\xbc\xf7\xde\x2e\x65\x8a\x2a\x20\xdf\xf8\x8b\xe4\x32\xb7\x6c\xc4\xf4\x52\x91\x3d\xbc\x44\xa9\xe3\x62\xe5\xa9\x30\x6d\xb4\xa6\xc8\x59\xc5\x49\xe4\x05\x31\x3b\xea\x12\xcf\x61\x52\x40\x28\x20\x57\x32\x19\x72\x95\xe3\x5e\x53\x5d\x42\x56\xa4\xae\x6f\x4e\x6a\x7a\x55\xed\x59\x63\x74\x92\xa6\xc8\x73\x3f\x9a\xaf\xb8\xbc\xc3\xe7\xde\xfc\x6a\x19\x85\x9b\x60\x91\x0e\x2c\xe2\xec\x40\xf4\x65\x45\xd6\xb8\xf6\x1b\xb0\x9e\xc5\x4d\x78\xef\xfc\xb8\xa9\x72\xb0\xcb\xca\xe1\x2e\x2b\xd7\xb7\xa9\xfc\x3c\x8c\x58\xc8\x60\x5d\xf5\x46\x5b\xf5\x0d\x26\x21\x9e\x27\x48\x73\x2b\x3f\x60\xc8\x20\x22\x97\x56\xbb\x62\xdb\x2c\xda\x39\x35\x6a\xa1\x4f\xbc\x60\x4e\x22\x05\xc7\xf0\xc0\xc7\xcb\x3c\x22\xbe\xc8\x0a\x89\xe7\xad\xac\xa8\x28\x4c\xd2\xe5\x44\x21\xfa\x68\x41\x0a\xd1\x37\x63\xdf\x71\x4b\x1c\xbf\x74\xcb\xa6\x1c\x1a\xf9\x02\x97\x49\x7e\x6c\xaa\x26\x17\xdc\xd9\x67\x39\x48\x60\x10\x2e\x68\xd5\xd2\x54\xaa\x2a\xd0\x80\x23\x40\x6a\x69\xba\xf6\xde\xf9\xd7\x9b\xeb\x7f\x45\x54\x53\x78\xea\x2f\x7d\x02\x2d\x71\x06\x89\xaa\x77\x1d\xcb\x15\x4f\x59\x72\xa9\x81\x96\x14\xe3\xab\x94\xe8\xf0\xff\x9d\x47\xd2\xa3\x7f\x1e\xbd\xa6\x8f\x8f\xa5\x7c\x48\xdc\x17\x3c\x36\x61\x59\x8b\xcf\x7d\x5b\x85\xba\xe2\x45\xb8\x5a\x85\x37\xa7\x9b\x28\x26\x40\x21\x1e\xfe\x85\xc5\x37\x7e\x9d\x0b\xbf\x9c\x09\x99\x4e\x60\x64\xef\xe1\xbe\x2b\xe6\x48\xef\x1c\xad\xca\x2c\xd9\x6d\xed\xac\x43\x3f\x48\xd8\x4f\xbc\x74\x64\x53\xee\xbc\x0e\xb9\x1e\x24\x2c\xc9\x43\x8b\x3c\xd7\x14\x29\x5f\x9d\xac\xd7\x54\x26\x36\x4b\xe6\x72\xcb\x78\x09\xa6\x9d\x7e\x07\x65\x45\xb6\xb5\xf6\x6e\xf3\x15\x24\xe8\x5d\x36\xea\x77\xf8\x7b\x33\xfd\x75\x4b\x3b\x44\x7f\x2c\xf0\x2f\x55\x87\x2c\xfd\x7b\x31\xb9\x6e\xc1\xab\xc1\x5f\xad\xfc\x18\xcd\xc3\x60\x11\xe7\x52\xbe\x85\xb1\x69\x3f\xaf\xeb\x51\x86\x1a\xf9\x60\x17\x33\x01\x3e\xb9\x99\x00\x1f\xe9\x4c\xc0\x4f\x6e\x26\xe0\x47\x3a\x13\xfa\x27\x37\x13\xfa\x07\x98\x09\xe1\x83\x4a\xa1\xc8\x42\xa3\xf7\x34\x93\x14\x61\x80\xf1\xcc\x7a\xc9\x34\xd8\xe0\x33\x95\xcc\xe5\x92\x27\xe7\x20\xb1\x0f\xf9\x10\xeb\x88\xe8\x14\x9b\xda\x47\x14\xff\x84\xf7\x95\x66\xc7\x51\x60\x69\x7f\x47\xf7\x15\xdb\x09\xe9\x0f\x5a\x28\x51\xad\x65\x84\x1c\x13\xa3\xcd\x1c\x9f\xde\x55\x55\x45\xf4\xf0\x4b\xdd\xb7\xe3\x2f\xe2\xcd\x1a\xb1\x72\x25\x39\x49\x2e\xfd\x58\x09\x4e\xf0\xcc\xca\x4a\x4c\x7f\x1e\x45\x27\xde\xe4\xab\xaf\xc4\xe7\x55\x5c\xcd\x1d\x77\xfe\x8d\x78\xe7\xed\xc2\x49\x38\x2a\x3a\x6e\x67\xa7\xe2\x28\x73\xd1\x56\xe8\x61\x37\x2a\x38\x4f\x47\x55\xe7\xe9\x38\x75\x9e\xbe\x9f\x28\xab\x23\xd2\x47\x7a\x52\x53\x74\xdd\xca\x8b\x52\xed\xfd\xcc\x3f\x02\x13\xc5\x3f\x52\xa1\x49\xfe\xa1\xff\x6b\x93\x7f\xc0\x64\x96\x7f\x90\x2e\xd9\x33\xff\x68\xca\x5e\x9e\xaa\xec\x1f\xfa\xfa\x14\xbf\x7f\xbf\x44\x89\xc4\x2f\x89\xa3\x09\xa5\xb1\x84\x4e\x8e\x72\x4b\x51\xa6\xa4\xbf\x7f\x7f\x36\xcb\x9d\xcc\x91\x92\x4c\x4e\xfe\xf9\xd2\x4b\x2e\xd5\x6b\xef\x1d\xfe\x99\xbd\xc9\xec\x4c\xd7\xde\xbb\x09\xf3\xa5\x3f\x83\xa6\x62\x6a\x8a\x6d\x2a\x40\xd3\x66\xea\xb5\xb7\x3e\x4a\x4e\xfe\x59\xb4\x64\xa4\xd6\x8a\x7f\x6a\x5f\xaf\xbd\x28\x46\xcf\x83\xe4\x28\xf9\x3b\x9a\x3c\x02\x9a\x76\xac\xdd\x1f\x25\x0a\x9a\xd0\x3e\x67\x3d\x3a\x9a\xdc\x61\x36\x42\x27\x35\xbd\xcd\x30\xd4\x50\xcf\x6e\x2b\xc1\x09\x52\x29\xe8\xe2\x17\xfe\xc5\x51\xf0\x4f\xdd\xd2\x52\xe2\x24\x27\xba\xa5\x3d\x0a\xbe\x40\x27\x48\xa5\x81\xf9\x7c\x48\x00\xe7\x71\xaf\x9d\x9c\x44\xef\xdf\x47\x27\x27\xc1\x14\xbc\x7f\x4f\x9a\x8c\xbc\x60\x11\x5e\x1f\x4d\xfe\x5f\x72\x3f\x99\xdc\xb3\xf7\x10\xa1\x07\x71\xd6\x3f\xf9\xe7\xd1\x1d\x3d\x92\x1c\xeb\x96\xf6\xf7\xe8\x51\xda\x0b\xe5\x16\x1e\x07\x59\x4f\x1f\x25\x7f\x07\x96\xa6\xe0\xf3\xc5\x71\xa0\xe2\x7f\x94\xf4\x11\xf7\x96\xc2\x94\xfc\xe3\x40\x65\x7f\xe1\x46\xef\x95\xcd\x49\xc4\xd9\xbe\xe6\x6c\x91\x2c\x4e\xce\x82\x99\x72\x7d\x72\x57\x36\xfb\x14\x8d\x42\x9c\x11\x48\xe1\x18\xfa\x38\xa3\x40\x3a\xfc\xa9\x9b\xfe\x77\x7f\xaf\x5c\x9c\xdc\xdd\x2b\x7c\x3c\xc5\x75\x4d\x3c\xc5\xc5\x19\x9a\x9d\x5c\xb3\x78\x8a\x8b\x62\x3c\x05\xff\x53\xb9\x28\xc7\x53\x5c\xd4\xc6\x53\x5c\xbc\x7f\x7f\x51\x8e\xa7\xb8\x28\xc6\x53\x5c\x9c\x2c\xba\xc4\x53\x14\xf8\xf4\x68\xa3\xcc\x15\x34\x79\xff\x1e\xdd\x4f\x94\x8b\x89\xb2\xe6\xe2\x29\x2e\x4a\xd1\x0e\x17\x2c\x9e\xa2\x50\xfe\xf5\x45\x55\x24\xac\xb3\x78\x8a\x8b\xe6\x78\x8a\x72\x0b\x62\xa9\x86\xbb\x78\x81\x87\x47\xe3\x29\xbc\x93\x0b\x25\xa2\x71\x3c\xf8\xc9\x42\xb9\x56\xd6\xca\x45\x67\xfb\x66\xdc\xc7\xbe\x89\xb5\x89\xb5\x17\xa1\x20\x99\xae\xa3\xf0\xdd\xed\xbe\x20\x26\xfe\x43\x07\x2f\x7e\x5e\x86\xbf\x09\xed\x88\x55\xc3\x21\x1f\xb9\x5b\x40\x0e\x2c\x8f\xaf\x72\xea\x94\x67\x5d\x00\x1f\x04\xd5\x94\xa3\x5c\x89\x2e\xd0\x12\x7b\x36\x60\xeb\x16\x4f\xd0\x43\x07\x7b\x6d\xd6\x71\x12\x21\xef\x7a\xea\x07\x4c\xd6\xed\x13\xc6\xff\xaf\xff\xd5\xae\x96\xdf\xfe\xea\x36\x1a\xa1\xe7\xe1\xf5\xb9\x1f\xa0\xc5\x93\xc5\x22\x42\x71\xdc\xe0\xcf\x4c\x5c\x99\x98\xcd\x9a\x25\xb5\xea\x62\xbc\x4e\xe9\x57\x26\xd5\x14\x93\x8a\x59\xb2\xad\x3a\x4b\xf6\xa6\x8c\x21\x27\x8b\xe1\xcf\xdd\xca\xdf\x05\x44\xf7\xde\x56\xba\xfc\x50\x50\x6a\xbf\x62\x10\x67\x63\xa5\xcb\x2d\x75\x98\x13\x1e\x39\xd2\x2f\xea\x13\x12\xa6\x8b\x90\x5a\xbd\x9e\xa2\x38\xf1\x03\x72\x2d\x98\xe3\xfd\x0a\xaa\x6c\xd1\xd7\x9b\x7b\x9c\x66\xfd\x28\x0f\x52\xae\xf5\xe4\x16\x74\xef\xcd\xed\x9a\xe5\x06\x8c\x10\x5e\xa4\x8b\x3f\xfe\xdc\xa0\xe8\x76\xa8\xaf\xb7\x4c\xfd\x29\xd8\x1a\x3b\xdf\xcc\xaf\x18\xc6\x6e\xd1\xab\xa2\x86\x53\x8b\xd6\xdb\xb4\x65\x4c\xc1\x94\x93\x5f\x65\x5f\xcd\xca\x48\xa0\x42\xca\xb3\x7a\x59\xa8\x7b\x05\x9b\xa0\xe6\x4b\xae\x15\xe6\xa9\x57\x04\xde\xa4\x29\x58\x69\x8d\x3d\x9c\x41\x6a\xe7\x46\x08\xb8\x81\xbb\xe4\x25\xde\x1c\x05\x29\x74\x24\x0f\x3e\xaf\xb4\xbf\x2f\x0b\xcd\xad\x83\x91\xbc\x99\x47\x48\xde\x42\xd3\x4a\x00\x29\x40\x24\x35\x5c\x17\x40\xcb\x6b\x0f\xf5\x79\xf7\xfb\x5d\x15\x34\x62\xc5\x97\x16\x26\x4f\xa1\x3e\x10\x47\x5d\x10\xb6\xeb\x26\x99\x36\xfd\x22\x9c\x7b\xab\x6f\xfc\x60\xf1\x3a\xc4\xab\xe2\x95\x47\x70\xd6\xfb\x44\xe6\xb5\xcc\x0d\xc1\x19\x9a\x9e\xfb\xc1\x62\x1a\x93\x26\xa6\x6b\xd2\xc6\x36\xa9\x45\x24\x89\x74\x5b\xc2\xb5\x4a\xb4\x56\x09\xd7\x3a\xf2\x04\x11\x91\xb1\xbe\x9d\x9e\x6f\x92\x84\xf8\x07\x96\x00\x0f\x52\x17\xd0\x66\x5a\x2a\xb2\xb8\xb3\x72\xb3\x2b\x2b\xcf\x1f\x75\x93\x34\x90\x51\xfa\x4d\xd7\x35\xb9\xc6\xd9\x2a\x13\x4c\xb8\x40\x3b\x58\x3b\x55\x61\x59\xa2\xd3\xcb\xf4\x02\x6a\x3a\x04\x3e\xac\x7f\x12\x86\x26\x61\xaa\x8b\xba\xf9\x8a\x61\x04\xf5\xca\x6a\xd0\x9c\x56\x40\x48\x8e\x54\x15\xc3\x83\x00\xd0\x56\x35\x55\x53\x41\x16\x26\x2c\x1f\xcb\x55\x4e\x63\x5d\x1b\x51\x48\x73\x9c\xe5\xa5\xfd\xd9\x86\xab\xd8\xa0\x1e\x70\xcd\xc3\x99\x22\x73\xa4\x6d\x71\x68\x64\xd8\xc2\x63\xf2\x60\x43\xb2\x84\x8e\x9b\x42\x6d\xfb\xad\x6d\x17\x6e\x2b\xb7\x32\xe0\xd2\x9c\xc3\xa9\xf9\x96\x3a\xb4\xe5\x29\x19\x72\xcb\x2d\x33\xf4\x06\x61\x32\x25\x48\x23\x1e\x81\x81\x1b\xc7\x92\xdb\x74\xee\xda\xbf\x33\xe1\xfe\x25\x62\xf8\xd7\xaf\xfe\x7f\x7e\xfb\x5e\xbb\xd8\x9b\x44\x0c\x0f\x99\x56\xa1\x7a\x32\xad\xa6\x58\xd0\xe8\xd5\x4b\x7b\x8a\x05\x1e\x10\xb7\x39\xc5\x42\x21\xb3\xc2\xa7\x96\x57\xa1\x82\x74\x29\xb0\x26\x55\xe8\x2e\xc8\x2d\xa0\x8f\x93\x63\x01\xd4\xa2\x36\x0a\x1a\xa8\x40\xff\x83\xda\xd4\x01\xf5\x5f\x17\x8e\x7a\x3b\xa4\x49\x0a\xc1\xb5\x43\xaa\xd4\xa6\x44\xe8\x48\x97\x4e\xdf\x17\x52\x2a\x34\x7d\xce\xa3\x6b\xf6\xd1\x72\xe4\x22\x2a\x7c\xf7\x94\x0a\xa0\x47\x4a\x85\xcc\x9f\xca\xc8\x53\x2a\x00\xf3\x81\x53\x2a\x18\xb3\x1e\x6a\x16\xc8\xfb\xbc\xc3\x94\x0a\x06\x6e\xe1\xc3\x21\x52\xef\x45\x4a\x05\x67\xe4\x8c\x0a\xc0\x29\x64\x54\x00\xee\x4c\xc8\xb2\xe3\x66\x54\x68\x82\xd5\xfe\x40\x09\x15\x80\xfd\x59\x26\x54\xa8\x9d\xd3\x4f\x28\xa1\xc2\xa8\xc8\xdb\x3a\x2f\x98\x61\xf5\x47\x1d\x27\xed\x2c\x9d\x02\xe8\x90\x4e\xa1\x01\x4c\x5b\xdc\xdb\x5d\xa4\x53\x10\x2a\x2a\xe2\x74\x0a\x5a\xde\xc9\x3a\xb7\xdc\x01\xd1\x6e\xdb\xa2\x60\x6f\x11\x8f\x5b\x45\xc2\xee\x54\xd9\x01\x2e\x7b\x3c\xf9\x6e\x7d\xae\x70\xd9\xa5\x6b\x27\x01\x12\x6f\x01\x31\x77\xb5\xbe\xf4\x04\x30\xd7\x4a\x63\x9d\x02\x08\xe3\x6a\xa5\x02\x24\xee\x9d\x83\x67\x93\x69\x3f\x80\x67\x0f\x8f\x3f\x3f\xeb\x00\xf3\xdc\xc8\x61\x5a\xc3\x1b\x35\xf3\xd3\x46\x86\x1a\xf5\x45\xcc\xbe\x3d\x02\xa0\x87\x8e\x57\x80\x42\x5f\xf7\xca\xae\x46\xdc\x1d\xc7\xfb\x13\x85\xaf\xee\x89\x54\x4d\x6c\xc7\xc9\x2e\x91\xaa\x79\x28\xea\x16\xd4\xea\x81\x48\xd5\xed\x26\xe1\x7d\x31\x5a\xef\x95\xff\xd2\x9f\x57\xef\xfe\xc7\x9b\xff\x63\xd5\xe8\xbf\xc4\xfa\x2a\x7b\xb9\xff\x52\x0d\x18\x71\x9b\xe7\x92\xa3\xc8\x78\xf4\xd3\x79\xb8\xc2\x22\x84\x61\xcc\x88\x4d\xc5\x05\xdf\xa5\xdc\x27\x85\x54\xbf\xf2\x83\x2b\x62\x00\xcf\x37\x38\x39\x2d\x93\xd2\x1a\xba\xeb\x1a\x1d\xb6\xa5\x7e\x38\x5d\xf9\xae\x04\x04\x91\x8e\x40\x39\x93\x9f\x33\x36\x3d\x0d\x37\x41\xcb\x8d\x67\xab\xa3\x41\xc9\x74\x45\x13\x9d\xd3\x66\x5e\xa2\xf8\xf2\x75\x9a\x8c\x4b\x74\x12\x6e\xbd\x58\xfc\x0e\x79\x2b\xce\x8f\xa0\xc6\x3a\xc5\x5c\x49\xc8\x96\x90\x41\x85\xd4\xb8\x92\x88\x89\x43\xfd\x21\x23\x3f\xf1\xe7\x19\xe0\x6a\x75\x00\x43\x49\x94\xfe\xf7\x24\x91\x56\xc8\x8b\x13\x29\x0c\x90\x74\x49\x86\x26\xcd\x2f\xd1\xfc\x4a\x0a\x03\x52\x96\x8a\x0f\xc9\x8f\xa5\x0b\xcf\x5f\xf9\xc1\x52\xed\x7a\xdb\x5d\x33\xa8\x1b\x2f\x0a\xfc\x60\xb9\x07\x63\xba\xf4\x62\xc9\x93\x58\x7f\xb6\x1d\xd6\xda\x8b\xe3\x9d\x0e\x6b\xb5\x2a\x8c\x26\x96\xbc\x08\x49\xac\xd5\xce\x9d\x2f\x55\xfa\xe6\x12\x45\x88\x54\x14\x84\xc5\xda\xd5\x2e\x36\x9b\xee\x85\x4a\xd1\x2c\xde\x7c\x97\xcc\x2f\x44\x8f\xad\x61\xab\x10\xb7\x2f\x2f\xe6\x6a\x8c\xa2\xb7\xfe\x1c\xc5\x6a\x7c\x19\xde\xe4\x64\xcf\x1d\x17\xcf\x68\x3f\x0a\xc1\xb9\xe5\x14\x68\xe9\x57\x15\xd7\xb9\xaa\xc7\x9a\x9e\x4f\x1e\x2f\xe4\x79\x1f\xc0\x9a\xba\xd2\x6e\xa5\x5e\x7d\x75\x57\x34\x7c\x87\x3a\x78\x01\x72\x1d\xaa\x76\xa2\xae\x3d\x9d\x97\x43\x82\x0b\x8e\x1a\x91\x28\x20\x6f\x0f\x57\x80\x7a\x46\x94\x1b\x3d\x54\x47\x69\x9a\x77\x42\x68\xd1\x5b\x3b\x6c\x7c\xd4\x7b\xb5\x17\x94\x9c\xdc\xd9\xb9\x54\xa4\x46\xe4\x96\x19\xca\x05\x29\x77\xd6\xe2\x20\x57\xed\x3a\x55\x8f\xcb\x6f\xbd\x04\xdd\x78\xb7\xa7\x24\x22\x44\xce\x9c\x54\xb6\x04\x1a\x68\xb9\x33\x6a\xdd\x5b\xcb\x0e\x3b\xf5\x9b\x6b\x93\xa3\x4e\x5f\x27\x1d\xbd\x83\x93\x4e\xce\x88\xfa\x18\xae\x31\x7a\x0f\xae\x14\x58\x26\x07\x1c\x67\x5a\x3c\x65\x2e\x23\x74\x31\x4d\xc2\xd4\xaf\x66\x5c\x97\x99\x3d\xf4\x94\xd9\x43\x07\x99\x6f\xc2\x64\x73\x91\x3c\x7b\xbe\x37\x0e\x32\x4c\x28\x7d\x64\x1e\x35\x55\x47\x1a\xb3\xab\x23\x0d\x84\x5d\x1d\x69\xb2\xaa\x0a\x1e\x35\x9f\x9e\x4f\x4d\x97\x8c\xa7\x29\xe5\x05\x6e\x23\xce\x38\xae\x34\xf5\x09\x50\x05\x0d\x54\x5c\x3e\x6a\x92\x73\x37\x7e\x2d\x70\xa5\x19\x93\x14\xdb\x78\xd0\x74\x24\x46\xad\x07\x4c\x47\x72\x74\xfa\xbe\xe0\x41\xd3\xf4\xf9\x08\x1e\x34\x4e\x2f\x0f\x1a\xad\x87\x07\x4d\x76\xa1\xe8\xe6\x1e\x34\xc4\xfb\xee\x21\x3d\x68\xdc\xfe\x1e\x34\xd4\x63\x70\x77\x1e\x34\x2e\x6e\xa1\x83\x07\xcd\x58\xd7\x90\xfb\xe0\x41\x03\xf4\x91\x5d\x68\xa0\x5e\x70\xa1\x81\xc6\x4c\x9c\xa0\x72\x54\x17\x1a\xd0\x74\xad\xfa\x81\x7c\x68\x48\x62\xee\xcf\xcf\x87\xa6\x76\x52\x3f\x21\x1f\x1a\x20\xba\x62\x04\xfd\xef\x18\x3b\xe6\xaf\xaf\xe3\xa5\x9d\x79\xd1\xb4\x5c\xf9\x95\x7d\xb0\xdd\x42\x59\x5d\x6f\x77\xe1\x45\x23\xd4\x51\xc4\x5e\x34\x7a\xde\xc9\xdd\x7a\xd1\xd8\xe2\x1b\x39\x13\x93\x75\x4c\x2f\x1a\xd0\x0d\x3f\xfa\x03\xba\x80\xb2\x43\xc2\x3e\xb8\x80\x66\x92\xbf\xa3\x68\x27\x79\x6a\xd0\x45\x8b\x34\x4f\xed\xe8\x75\x72\xfc\x23\x71\x9b\x69\x17\xde\x1d\xd4\xfc\xcc\x79\xbe\xa4\xd0\x77\x0e\xe4\xda\x1b\x7f\x91\x51\x3d\x22\xdb\x64\x39\xe7\x36\x14\xa1\xa5\x1f\x27\x28\x22\x49\xcd\x82\x30\x99\x72\x05\xa3\x79\x04\xc9\xa3\xf9\x46\x96\x57\xc0\x18\xf2\xbc\xbf\x34\x17\xba\x41\x0a\xf9\x7a\xa7\xde\x8f\x03\x1d\x42\xaa\x9e\x8f\x07\xa7\xc6\xf1\x14\x6e\xf0\xb9\x3a\x35\xd6\xf8\x99\xf5\xf7\x64\xac\x73\xe0\xea\xe4\xbe\x58\xac\x8a\x5e\x04\xb7\xf4\x8a\x9a\x4f\x5a\xbb\xc5\xea\x6a\xe9\x18\xab\xec\x21\x1c\x2b\x09\xeb\x1d\x1c\x2b\xfb\x53\x36\x97\x19\x66\xb6\x3b\x65\xd9\xfe\x44\x33\xcd\xb6\x82\x92\xd5\x78\xd8\xe9\xb6\x9b\x7f\xa3\x88\x91\x41\xf5\x41\x0d\x13\x74\xf7\x65\xec\xb2\x38\x76\xe0\xbe\x29\x5c\x5b\x40\xf0\x64\x67\x03\xec\xee\xad\xd9\x79\x7b\x1f\x81\xc1\xa8\xaf\xc5\xb4\xa0\xdd\xee\x92\xcd\x6a\xbc\xd1\x8b\x0e\xc2\x63\xcf\xc0\x07\x71\x10\xae\xf3\x89\x2f\xb9\x02\xef\x66\x6c\x3b\x60\xae\x4f\xd4\x67\x78\x0c\x47\x62\x72\xc6\xff\x73\x97\x8e\xc4\x2d\xce\xc3\xbc\x9f\xf1\x96\x8e\xc4\xfb\xe4\x3f\x9c\x39\x76\x3c\x9a\x5f\x7a\x51\xa2\xbe\x23\xab\x60\xa7\x57\xf8\x79\x01\xb9\xac\x2f\x38\x97\x30\xa0\xd1\x63\xd9\x5f\xe0\x7a\xc2\xe0\xf8\xee\xa7\x67\xaf\x9f\xbd\x39\x3e\xbb\xa3\x19\x29\xd9\x93\xfb\xd9\xbd\x42\x7a\x1a\x1f\xdf\xe1\x82\xe3\x3b\xfc\xea\xeb\x9f\x4f\x4f\x9f\xbd\x7e\xcd\xbd\x1c\x6f\x48\x7a\x40\xf9\x7e\xa6\x3c\xfb\xe9\xa7\x1f\x7f\xe2\x1e\xd1\x54\xdc\xf7\xb3\xfb\x7b\x85\xbd\x75\x7c\x77\xaf\x90\xd2\xe3\xbb\xfb\xfb\xfb\x5e\xc4\xeb\x96\x51\x49\xe9\x39\x0b\xa5\x0c\x4c\x4a\x30\x9e\x07\x45\xd4\xec\x41\x71\xf3\xe2\xe6\x97\x9f\x6f\x9e\xfd\x29\xf6\xa0\x78\x4d\x79\x44\xfe\x76\xe3\x45\x0b\x92\x83\x91\xad\xa9\x85\x1f\xaf\xbd\x84\x02\x64\xb0\x77\xd2\x19\x50\x18\xc1\x15\x99\xa4\x10\xe3\xf2\xd0\xe6\xae\xdd\xa9\x94\xff\x2a\x97\xcb\x02\xcf\x05\x5c\x30\x25\x74\xca\x34\xd1\x38\x9a\xa7\x86\x06\x8d\x1e\xd5\x28\xa0\x52\x1f\x2f\x6d\x01\xf4\x65\xce\x98\xd4\xff\x81\x98\x0e\x84\x07\x2a\x1e\xc1\xd2\x49\x95\xda\x99\x22\x33\x8e\x94\xcb\x87\x0f\xfe\x1d\xc2\x98\x8d\x6f\x90\x25\x30\x04\x8f\x31\x1d\x17\x37\x8a\x96\x5b\xde\xdc\x3e\x97\x0d\x5e\x4d\xfc\x84\xf9\xc3\xcb\xbc\xb3\x97\x9b\xa6\xdf\xe3\xa8\x95\x14\x48\x05\x0d\xc5\xe0\x1b\xa7\xee\xdb\x19\xcc\x02\xa0\xf3\x53\xe6\x10\xf6\xd8\x9a\x65\x49\xb0\xb3\x4f\xeb\x12\xfd\xa4\xe7\x75\x73\x96\x33\x5c\x99\xa0\x4d\x23\xcc\xbf\x11\x8d\xb1\x53\x15\x69\xdf\x83\x0e\x69\x6d\xcc\x7c\x0e\x93\xc8\x5f\x2e\xa9\xff\xcb\x65\x78\xf3\x63\x70\x1a\x21\xba\x6e\x16\x68\x45\xb6\x9f\x30\xf8\xce\x5f\x2c\x10\xa1\x9f\x7c\xed\x05\x1b\x8f\x9b\x35\x11\xe8\x19\xa6\x01\x91\x91\x35\xe7\x5e\xcc\xbe\x9a\xa2\x6b\x9a\xc6\xdf\x9e\x3a\xb3\x62\xee\x1c\x47\x01\x30\x73\xb0\x6f\xf2\xbf\xb3\x14\x5b\x71\x1a\xe1\xa9\x04\x3b\xbf\xa2\x2b\x86\x62\xf6\xdd\xff\x6f\xfc\xe4\x72\x8a\x69\xce\xfc\xaf\xd2\x1d\x9a\x4a\x84\x6b\x2c\x78\xc8\xe6\x1f\xe0\x33\x6a\xea\x97\x57\xf2\xd6\xbb\x08\x98\x76\xd0\x6b\xfb\x2e\x09\xfa\x6c\xbf\xa6\xe9\x03\xbc\x96\x04\x02\x93\xbb\x2c\x61\x80\x17\x2d\x37\x64\x91\x32\x00\x78\x22\xa9\x4e\x82\xf4\xb3\xfb\xfb\x5c\x5c\x7b\x8d\xf8\xd8\x91\xe2\x4d\xee\x27\x93\x2f\x1a\x77\xa8\x85\x97\x78\x5c\x40\xcc\xd6\x79\xff\x94\x95\x12\x2b\xbe\x12\x2a\x1c\xa2\xb7\x72\xae\x5c\x2a\x6f\x95\x5b\x65\xa9\xfc\x98\xe7\x05\xfc\x83\xee\x57\x4a\x34\xb9\x0b\xea\xd2\x20\x90\x74\x80\x1c\xe2\x7b\x50\x9b\x06\x21\xa8\x49\x83\x10\x94\xd3\x20\x04\x05\xcc\xf3\xa0\x8a\x79\x1e\xe5\x69\x10\xee\xb3\xce\xbe\x4a\x3b\xab\x78\x74\xb0\xab\x93\xbb\x7b\x96\x4d\x40\xe2\x91\xe4\xa3\x1a\x24\xf9\xd5\x19\x9a\x9d\x44\x0c\x49\x7e\x55\x44\x92\xe7\x7f\x2a\xab\x32\x92\xfc\xaa\x16\x49\x7e\xf5\xfe\xfd\xaa\x8c\x24\xbf\x2a\x22\xc9\xaf\x4e\x82\x2e\x48\xf2\x01\x97\x27\x20\x62\x7a\xc4\xfb\xf7\xc1\xfd\x44\x59\x4d\x14\x8f\x43\x92\x5f\x95\x70\xde\x57\x0c\x49\xbe\x50\xfe\xf5\xaa\x4a\x55\x2f\x43\x92\x5f\x35\x23\xc9\x97\x5b\xa8\x67\x8c\x15\x19\x1e\x41\x92\x5f\x8d\x96\xf6\xf1\xa6\x59\xe9\xf9\x45\xd3\x1e\xfd\x69\xff\xf5\x0f\xb1\xd2\xc3\xb9\x55\xd6\xaa\x27\xe5\x54\x30\x45\x93\x9e\x26\x0e\x55\xd0\xf2\xc7\x72\x82\xa2\xeb\x1c\x2b\x52\xe6\x25\x34\xa8\xbb\x9c\x90\xa9\xbc\x86\x05\x0d\x24\x73\xb8\x4c\x3b\x9d\x06\xb8\x9d\x72\xf1\x71\xf2\xb3\xeb\x35\x71\x9b\x10\x77\x95\xe5\x73\x4c\x5d\x76\xf8\xce\xe0\x07\x2c\x10\x2f\x1f\x94\x25\xb8\x30\xc8\x5f\xc4\x62\x37\x58\x52\x28\x56\x4d\x68\x8c\xf5\x82\x30\xb8\xbd\x0e\x73\xeb\x5b\x81\x02\xd5\x36\xcc\x71\xdb\xa8\x66\x13\xae\xdf\x8e\xa8\x06\x4b\x36\x13\x2f\x57\x7e\x17\xd3\xcd\x7a\x41\xb7\x6f\x5e\xe9\xcf\xbd\xc6\x97\xc9\x80\xd3\xa3\x50\x8a\x17\xf2\x02\x3f\xcb\x73\xdb\xf8\x01\x59\x2a\xcc\xc8\x74\x94\xde\x9c\x4f\xb2\x44\xc1\xe5\x17\xc8\xb5\xc9\x24\xcb\x1b\x5c\x79\x4c\x67\x1f\xaf\xc6\x52\xf2\x9c\x34\x87\x2a\xee\xe9\x26\x41\x0b\xd5\x5b\xf9\x5e\x9c\x7e\xf1\x9a\x56\xc0\xee\x75\xb1\xc8\x8a\xe5\x89\xe2\x97\xbe\x39\xa2\x0c\x8f\xb7\xf2\x65\xac\x66\x6d\x85\xd5\xd7\x6e\xd7\xb9\xc7\xf5\x4b\x94\x5c\x86\x8b\xcc\x77\x98\xdc\x72\x92\x0a\xe8\x6f\xdc\xd0\xa6\xae\x06\xda\x10\x1d\xf3\xbc\xf2\x12\xfe\x8b\xe5\x4f\x4f\x1b\x43\x0b\x79\xa2\x2c\x2a\x6f\xd2\x87\x6f\x68\xef\xf3\x41\xf2\x9d\x9a\x28\xd7\x75\xbd\x98\x87\x41\x42\x79\xa3\xd4\xef\x75\xe5\x0b\xf2\xc2\x1d\x61\x6f\xf5\x6c\xa6\xd0\x3f\xd8\xf7\xea\xd9\xec\x5e\x9e\x28\x17\xa5\x9c\xcf\xe7\x3d\xd2\x1a\xf1\xa9\x8c\xfe\x60\x39\x7d\x52\x97\xec\x4b\xa2\xa3\xe4\xe5\xd4\xeb\xfc\x6d\xb9\x94\x9f\x6f\x59\xb9\x2d\x3d\xa6\x13\xbc\x14\x7e\x84\x29\xf6\xd2\x5b\xcb\xca\x8f\xf4\x31\xc9\xb8\x83\x49\x74\x94\xa7\x3e\xc9\xb2\xed\xe0\x72\xf2\x02\xcf\x04\xa2\x17\xf3\xba\xdf\xbf\x97\xd1\x3b\x6f\x9e\xc8\xdc\x77\xaf\x32\xef\x3c\xd1\xb7\x6c\x26\x8a\x8e\x65\x3e\x8a\xb9\x0a\xf0\x9c\x97\x3e\xc5\x63\x7c\xff\xbe\xdc\x83\xf7\xef\x65\xbe\x61\xdc\x21\x2e\xeb\x11\x9d\xb2\x25\x4a\x18\x45\xea\x9b\xbf\xa5\xdb\xb0\x3c\x79\xff\xbe\xc7\x47\x72\x9a\x0f\x49\x0a\xd0\xcd\x91\x1c\x27\x91\x1f\x2c\xe5\x93\x13\x4c\xc6\xf0\x82\xf6\x9b\xa7\xe4\xd7\x5c\x09\x9b\x97\xb3\xca\x4b\xb3\x63\x11\x99\x27\x34\x83\x53\xca\xf8\xca\xdd\x05\x16\x51\x51\x7c\xcc\xf6\xed\x8b\x28\xbc\x7e\x46\x4d\x73\xe9\x8e\xcf\x2c\x75\x47\x5c\x0b\xa9\xc4\x58\x47\x68\xe1\xcf\x89\xad\x8b\xd0\xf6\x76\x8d\x26\x93\x2c\xfb\xd1\x59\xa2\x04\xb3\xc9\xc9\x3f\x33\x95\x02\xbd\x7f\x8f\x54\x3f\x98\xaf\x36\x0b\x5c\xdf\x64\x32\xb9\xa7\x7c\x94\xaf\xe5\x7c\xb6\xb2\xaf\xb8\x61\x84\x51\xf2\xf5\x19\x1b\x18\x31\xef\x72\x1f\xe6\x3d\x38\x2a\x7e\x41\x9b\x20\x8b\x31\x4b\x0c\xc5\x4b\x0f\x46\x7b\x39\x55\xc2\x4a\x84\xcf\xdf\xfc\xea\xab\x23\x96\x52\x2a\x2f\x9b\x30\xcd\xbf\x9c\x36\x2c\x5b\x84\x58\xe2\x95\x84\x2f\x2e\x3e\xca\x45\x96\x82\x26\xec\x84\x41\xdf\xe7\xf8\x10\xe5\x8b\x46\x96\x53\x52\xe4\xac\xfd\x75\x61\x2e\x8f\x4b\x5c\xc1\xfe\x3c\x2a\x7d\x44\xc9\x91\x7e\x74\x34\xb9\xf3\x2f\x8e\x04\xb4\x66\x9c\x3a\xe1\xd7\x4e\x2a\xca\x98\x22\xfb\x45\xba\x3e\xb8\x6e\x08\x59\xe2\x0b\xbe\x09\xd4\xa1\xca\xe4\x44\xc4\x7b\x85\x7e\xe5\x5c\x86\x94\x04\x73\xd9\x37\x61\xb8\x42\x5e\x80\xd9\x8a\x26\xce\x4a\x1f\x9c\x21\x25\x5d\x52\x5f\x66\x33\xfb\x75\x42\x57\xea\x71\x32\xcb\x16\x5f\xa1\x43\xac\x7a\x74\x24\x58\x18\x84\x73\x29\xdf\x92\x97\x39\x51\x91\x77\x94\x30\x1c\xc9\x36\x56\xcb\x5f\x48\x4d\x8d\x70\xcf\xde\xa2\x20\xf9\x1a\xa5\xad\x1f\xa3\x7b\x36\x79\xa8\x2a\xbd\x4e\x10\xe5\x16\xd2\xc0\xfd\xbd\x72\x79\xf2\xea\xe8\x9c\xcf\x5a\x9f\xee\x09\x67\xc1\x4c\x19\x98\xb6\x0b\x2b\x59\xf7\x13\xe5\x6d\xb9\x6a\xba\xad\x9c\x45\xdb\x56\x7c\x5b\xa9\xb8\xb8\x33\x9d\x79\xdb\xb6\xb0\x2c\xb7\x40\x37\xb7\xb3\xd5\xe0\x8a\x2b\xa9\xcc\x64\x92\xcc\xf0\x47\xf1\x50\xb2\xfd\xf2\x2c\xde\x76\x28\xc2\xfa\xa9\x3a\x73\xe6\xcf\xd2\xfc\x69\x4b\x94\xfc\x78\x13\xa4\x12\xe8\x29\x8a\xe7\x91\xbf\xc6\x82\xb1\xee\xe3\x89\xc2\x3d\xa9\x69\x85\xea\x49\x67\xe1\xa0\x56\xc8\xc7\xcd\xad\xf0\x4a\xdc\xd9\xa6\x67\x2b\xdc\xc7\xcd\xad\xb0\x03\xc7\xd9\xbc\x67\x03\xf4\xbb\x2e\x74\xc2\x62\xfc\x6c\x31\x88\x4a\x44\xfb\x6c\x6a\x21\xd7\x9c\xcf\xae\x7b\xb6\xc0\xe9\xb7\xcd\xb3\xc0\x54\xdc\xb3\x75\xef\x29\xa0\x5f\x76\xa1\x91\xac\x9c\x5d\x0c\xa2\x50\xb9\xf6\x73\xfe\xe2\xec\x59\xa3\xe9\xed\x46\x79\xd6\x9e\x9a\x8e\x1c\xda\x2e\xc2\xe8\x5a\x64\x74\xcb\x7d\x69\x58\x80\x97\x8f\x4f\x8d\x8b\x29\x75\x31\xc3\x67\xcb\x87\xbb\xf9\xd1\xce\xa3\xa7\xaf\x5f\xff\x24\xce\x59\x27\x63\xa9\x42\xac\xd5\xde\xda\x6f\xbb\xa8\x21\x24\x58\x85\x04\xdc\x86\x8f\xce\x27\x66\xc7\x38\x9a\x97\x9d\xf3\xc2\x20\x85\x5d\x30\x94\x92\xb7\xa8\xfc\xe8\x6f\x77\x59\x18\xff\xfd\xa3\xbf\xdd\xd1\xe8\x7e\xfc\xd7\x62\x8e\xff\x97\x1c\x0e\x1e\xfd\xed\x2e\x8e\xe6\xf7\xb2\x22\xb0\x83\x08\x60\x26\x14\x99\xe4\x44\x4b\x8f\x96\xe9\x15\x92\x49\x5d\xaf\x4c\x7a\x01\x61\x12\x2b\x83\x6e\x52\xb4\x00\x53\xd1\xf3\xc8\xbb\x59\x15\x48\x53\x23\xc1\x56\xc9\x53\x2f\xf1\xe4\x41\xee\xdb\x1d\x9c\xad\x08\x45\x3b\x3b\x06\x16\x71\x13\xc8\x94\xa4\x73\x98\xde\x9d\xf9\xc1\x15\x26\x3f\xa3\x03\xf3\x61\x21\xf3\xb1\x40\x2b\x94\xa0\xc2\x3c\x71\xe6\x97\xee\x13\x33\x64\x46\x04\x73\x51\x00\x80\x35\x15\x20\xca\x8f\x65\x16\xd0\x46\x4c\x92\x9e\x8b\x2b\x30\xe8\x3c\x1a\x34\x6a\x43\x30\x7d\xa4\xe2\x2a\x3e\x48\xe5\x15\xb3\xa7\x77\x72\x11\x9c\xc8\x9e\x09\x8d\x75\x78\x7a\xf2\x08\x00\x45\xf6\xe3\xec\x3a\x28\xbd\x3c\x5d\xf8\x31\xde\x02\x17\xe4\x66\xf5\xfc\xda\x4f\xe8\x55\x11\x4a\x32\x8a\x11\x6f\x6c\x11\x63\x66\x33\x98\x53\x07\x58\x39\xaa\x0a\xbb\xc0\xca\x0b\xfc\xe0\x62\x45\xdc\x62\x67\x75\x74\xa0\xef\xad\x51\x14\x13\x40\x2d\x56\x27\x68\xa1\x1e\xfd\x2a\xed\x74\xf9\xa3\x1e\x81\xad\x45\xdc\x08\x47\xd1\x33\x07\xe3\x5a\x40\x28\x53\xd1\x06\xc5\xcd\x36\xae\xc8\x9c\x72\xfd\x9d\x80\x6f\x7d\xb4\x5a\x8c\x59\x6f\x13\x35\xb6\x74\x20\x1a\x96\xeb\xa6\x85\x78\xe9\x6e\x3f\x3e\xf9\x48\xc2\xf9\x3d\xa5\x5e\x43\x86\xa1\x96\x88\xaa\x72\x35\x43\x27\xaa\x2d\xcd\xfb\x33\x26\x70\x88\xdd\x3a\xc5\xaf\x88\xb8\x0d\x93\x88\xea\x4c\x70\xf3\xd2\x9c\xdd\xbc\x6e\x22\xbf\x60\x1e\xa7\xc2\x8d\x54\x9a\xee\x31\xdc\x16\x83\x95\x28\x26\xcf\xe6\xa9\xd0\xeb\x79\x4f\x5b\xd2\xb9\x0a\x5e\x55\x5e\xa3\x57\x55\xc4\x14\xbe\xec\x89\x4a\x6d\xa7\x47\x99\xe9\x54\xb9\x4b\xbc\x25\x6d\x5b\x56\x16\xe1\xf5\xb1\xd8\x5c\xbe\x08\xc9\x19\x68\xe3\xaf\x16\x28\xaa\x79\x87\xf0\xe5\x44\xa1\xa3\x3c\xfe\x12\x28\x29\x15\xaa\xa7\x41\x7a\x40\x4f\x49\x53\xbc\x40\xbe\x57\xc2\x60\xee\x05\x73\xb4\xea\xff\x1d\x2d\xe7\xbf\x23\xb5\x91\x0d\xe2\x58\x9c\x82\x5a\xbd\xf4\x82\xc5\x0a\x11\xa3\xc2\x11\x9a\xdc\x2b\x0b\x7f\xf1\x13\x9a\x23\xff\x2d\x7a\x92\x24\x51\xcc\x57\x46\x5a\xff\x43\x70\xe9\xfd\x45\x12\xdd\xd2\xa7\x98\x08\xd4\xb0\xc1\x88\x45\x4a\x38\xfb\xce\xfd\xdc\x4b\xa8\xad\xe2\xfe\x5e\xb9\xf1\x57\xab\x9f\x50\xb0\x28\x9e\x98\x6b\x9b\x61\xb3\x19\x67\x76\xd2\x9c\x9f\xe9\x37\x7e\xfc\x53\x16\x11\x75\xc4\xe4\xec\x64\x42\xdb\x79\x8a\xe2\x24\x0a\x6f\x9f\xad\x88\x8c\xe8\xd3\x5e\x6e\x97\xc5\x9c\xa8\xfa\xf1\x0f\xe8\x46\x9e\x7c\xf5\x15\xf9\x8e\x14\x45\xe1\x6a\x75\xee\xcd\xaf\x30\xc5\xfc\xf3\x4d\x82\xe2\xa3\xc9\xbd\x42\x97\x48\x7c\x7c\xc7\x54\xc7\xe3\xc2\xdd\x32\x22\x49\xe5\x99\xc1\xe7\x48\x53\x02\xd5\x8f\x4f\xd3\x83\xc2\xe4\x08\x4d\xde\xbf\x2f\x9a\xda\x30\x21\xdf\xbf\x3f\x4a\xf2\x5f\x2a\xab\xf8\x08\x4d\x70\x27\xc9\x9f\x13\xbe\xd7\xf8\x5c\x9a\xf6\xf6\xa8\x4c\xbc\x74\x39\x7e\xa9\x4d\x94\x1a\x23\xda\x26\x09\x2f\xfc\xd5\xea\xfd\xfb\xbb\x7b\x61\x2a\x73\x6a\xb5\x4d\x79\x29\x6f\x80\x1e\x6d\x14\x74\x3f\x51\x92\x49\x75\xda\xa8\xc8\x48\x98\x25\x13\xff\xba\x57\x84\x4c\xca\xd8\x9d\x3e\xa3\x7d\x5a\x84\xd7\x6a\x10\x46\xd7\xc4\xec\xc1\xb8\x36\xab\x0a\x13\x25\xff\x8b\xa3\x09\x71\xfb\xe3\x4e\x82\x5e\xb7\x83\x1e\x3d\xe5\x3c\x98\x0b\x65\xe1\xa4\x95\xb9\x50\xe2\x02\xea\x42\xf9\xe3\xab\x67\x3f\x1c\x67\x8e\x8f\xa4\xfc\x9e\xf9\x43\x66\xa5\x0b\x3f\x9e\x87\x41\x40\x9d\xab\xef\x95\x17\x3f\x3e\x79\x5a\x76\xba\x54\xe6\x61\xb0\x38\x4e\x0f\x20\xf7\x4a\xa1\x46\x3f\x58\xca\xf7\x33\xe5\xf9\x0f\xbf\x3c\x79\xf1\xfc\xe9\x93\x37\xcf\xf8\xaf\x03\x76\xc6\xa5\x2f\xe5\xae\x9b\xf8\xc3\xe3\xbb\x7b\x85\x7f\x01\xff\x66\x15\x16\xbd\x3a\x4b\x1e\xa0\xe5\x01\xfc\xff\xec\xbd\xe9\x76\xdb\x46\xd6\x2e\xfc\xdf\x57\x01\xe3\xcb\x71\x13\x27\x45\x8a\xa4\x46\xab\x17\x3d\x44\xb6\x3b\xee\x78\x3a\x96\x93\xee\x84\x2f\x5f\x37\x44\x14\x49\xc4\x20\xc0\x00\xa0\x64\x45\xe6\xbd\x7f\xab\xe6\x19\x04\x48\xda\x56\xd2\x49\xaf\xd5\x16\x31\x14\x6a\xdc\xb5\x6b\x0f\xcf\x43\xe3\x39\x57\x2b\x40\x02\x42\x79\x2c\x27\x09\x22\x7d\xf7\xf6\x67\xbd\x0b\x56\x48\x88\x89\x56\x57\x3e\x59\x23\x1e\x54\x9e\x09\x6b\x0f\xfd\xcd\xe6\xd2\xd7\x33\x07\x94\xdd\xc3\xe2\xbb\xeb\xbd\x68\xfb\x40\x50\x62\x31\x48\xb3\x12\x1b\x63\xab\x82\x28\x4e\xc0\x89\x09\xc8\xb7\x2e\xf2\xf3\x00\xe7\xdf\x37\x3c\x67\xe7\x70\xc2\x4b\x22\x23\x2e\xc5\xa5\xd2\x70\x54\xe9\x04\x25\x5a\x35\xb4\x32\x3f\xcb\xb9\x0b\xfd\x91\xa2\x90\x02\xff\x11\x5a\x3d\xf2\x09\xde\x96\x6d\xe8\xc7\xc5\x0b\x7a\xbe\xe7\xc7\x4b\xe5\x13\xfa\x51\xb2\x2f\x47\x92\xf4\xbb\xc6\x59\x92\x9d\x1b\xf9\x0a\x83\xd2\xe8\x3c\x15\xf1\x96\x87\x94\x82\xe8\x50\x8e\x52\x51\x2a\x26\x0a\xd0\x8f\x77\xc7\x96\x28\x44\x39\xd6\xe5\x44\x3b\x7a\x91\x51\xe2\xbd\x4b\xea\x48\x02\x28\x8b\xce\x24\xce\x8b\x92\x4c\x6e\x5f\x03\xdb\x94\x8f\x90\x46\xe0\xec\x46\xc7\x47\xe5\x78\xc8\xde\x12\xf8\x94\xd8\x8c\x33\x6a\x08\x31\x4b\x0f\x10\x27\x2c\x8a\xb5\x5a\x13\x77\x41\xe2\x1a\x54\x6f\x9a\xd5\xa1\x61\x3e\x9c\x94\xac\x2d\xe6\x65\x56\xbe\xa4\x31\x93\x5a\xf4\xb2\x6c\x6d\x10\x9b\x02\x50\xe5\x78\x33\xfb\x87\xd4\xd3\x4a\xd3\xf6\x69\xd3\x4c\x03\x8f\xde\xf6\xae\x61\x56\xb8\x2f\x45\xbc\xb2\x2d\x68\xc7\xe9\xed\x64\x6b\x2d\xb2\x65\x8e\x3d\x48\xa4\xe3\xb2\x05\x4c\x9d\x36\x4c\x29\x86\xf9\x80\xd8\x0e\x0f\xe4\xc6\x39\xd6\x8a\x2f\x99\xd7\xa4\x95\x41\x67\x60\xe5\x2a\xd0\x42\xcc\xe5\x28\xad\x23\x54\x84\xba\xd6\x2d\x60\xa7\xeb\x40\x86\xb7\x38\x61\xae\x07\x88\x55\xa7\xe4\x5c\xcc\x47\x31\xa2\x8d\x27\x98\x65\x29\xdb\x0b\xfb\xfc\xab\x59\x37\x23\xd1\x4c\x20\xc5\x2a\x4e\xe0\xd0\x1a\x0c\xca\x7a\xdb\xc2\xfa\xde\x6d\x64\x5b\xaa\xee\x5b\x5b\x51\x5f\xbe\x67\x71\x2d\xda\x4c\xf5\x26\x0d\x56\xd6\x62\xb7\xe1\xd4\xdf\x41\x2f\x2b\x32\x95\xa8\xd0\x3b\x14\xa9\x8a\x69\xdf\x3d\xd2\xca\x07\xb7\x94\xd6\x0a\xec\xc8\x11\xdb\xd6\x05\x5a\x21\xea\xb2\x83\x6e\xcf\x2a\x85\xeb\xa1\x9c\x68\xf3\x0b\x48\xb8\xe3\x5a\xd7\x55\xe5\x40\x48\xe2\xd1\x92\x3b\x33\x6a\x3c\x57\x77\x3b\x63\xa5\x59\xcb\xd4\x61\x86\x64\x81\x7e\x4f\x62\x92\xa3\xc8\x82\x49\x0d\xde\x03\x8c\xa3\x1a\x8f\x3f\xe0\xc8\x5d\xe2\x5e\xa2\xb8\x17\xcc\x73\xc2\x89\x01\xb6\x4a\x2c\x3e\x06\x43\xff\x7b\x41\x4e\x31\xda\x08\xba\x51\xea\xba\x2e\x8e\x99\xc9\xf0\x44\xe7\x69\x54\xff\x22\x35\xbd\xeb\xbb\xf0\xd9\x1a\xa4\x64\xeb\x95\xff\x2e\x8b\xae\x77\x56\x75\x3b\xac\xba\xf8\xef\x71\xea\x61\x79\xe3\x5d\x85\x85\x47\x2c\x1d\x30\xf2\xae\x66\x71\x52\x94\x1e\xdd\x7f\xb0\x5d\xce\x43\xbb\x3a\xf0\x72\x38\xc9\x61\x31\xf3\xca\xcc\x2b\xf3\x6b\x2f\x9c\x86\x71\xda\xb1\x7f\x7d\xcb\x6e\xa9\x84\x89\xd8\x64\xff\xae\xa5\x13\xd8\x25\x88\x53\x68\xec\x6f\x8e\xee\xb5\xc3\x4d\x69\x97\x8b\x7c\xe7\x1b\xd3\x06\xbb\x62\x95\x7f\xa4\x99\x23\x79\x7d\xff\xd4\x9a\x95\x35\x78\x03\x9a\x3b\x4e\x8e\x8c\xfc\x33\x91\xed\xa6\x24\x62\xf4\xa5\xa4\xca\x17\xaf\x1f\x3f\x51\xe0\x82\xa5\x08\x80\x23\x33\x17\xa0\x22\x85\xad\x1a\x32\x9e\x1e\xa5\xe4\x91\x50\xc4\xbc\xec\x23\x21\x36\x22\xba\xe5\x01\x9f\x1e\x34\xc8\x39\xe3\xb7\x25\x5c\x56\x65\xbd\x65\x04\x3c\x8b\x24\xbf\xe1\x4f\x86\x69\x24\x3b\x70\x0a\x96\x8a\x40\x2d\x28\xfe\x7c\x59\x0a\xbf\x0c\x75\xda\x24\x22\xb1\x41\xca\x67\x68\xea\x84\x91\xad\x60\x9f\xcf\x0d\xc3\x3d\x16\x70\xf0\x00\x62\xbb\x67\x3d\x6b\xbd\x35\xf3\x6e\x23\x7f\x06\xe0\xb9\x53\x22\x7a\x92\xda\xfb\xa9\x51\xbf\x43\xaa\xd8\x09\x17\x8b\x84\x86\xf0\x0e\xc5\xb3\x23\xe2\x47\x79\x9e\x16\x30\x2f\x1b\x79\x1c\x88\x8d\x9b\x9e\xed\x5a\x64\x32\xcb\xae\x04\x61\xae\x61\xc5\x88\x87\x85\x8d\xd6\x67\x36\xf7\x7c\x99\x76\x8a\xf1\x0c\xa2\xc1\x6d\xf9\xe1\xa4\x84\x39\xf1\xb7\xf8\xa0\x15\x0c\x1e\xe8\x25\xd0\xcf\x05\x2b\xc0\xec\x55\x16\x1f\x94\xa5\x6f\x74\x57\x45\x91\x8f\x2d\x16\xfd\xe0\xc6\xe1\x08\x50\xac\xfc\x70\x63\x6b\x7d\x11\xa7\x1f\x6c\x16\x5a\xf1\xc6\xb2\x8c\x93\x62\x2f\xca\xe6\x7b\xf0\x12\xa6\x25\x33\x00\x18\x99\x91\xbb\x32\xc2\xa6\xd5\x46\xd8\xb7\x07\xff\xfa\x3e\xde\x2f\x3f\xda\x8d\xb0\x95\x96\xd4\x9e\x92\xdb\xc5\xb6\x49\x26\x58\xa8\x71\x59\xa3\xf4\x21\x16\x09\xfc\x8c\x1c\x2c\xd2\x6d\x96\x21\xc5\xcc\xbe\x63\xd9\x2b\xdc\x54\x90\x88\xa1\x52\xc4\x48\x5e\x29\x46\x52\x97\x18\x91\x85\x07\x75\xc7\xba\xfc\xb8\xfc\xe3\xf4\x92\x1f\xac\xf5\xfa\x26\xd9\x74\xea\x74\xfa\x92\x9b\x7e\x60\x71\xb3\x12\xe7\x2b\x71\x56\x28\x17\x71\x17\x9e\xea\x09\x41\x12\x50\x22\x47\xca\xbc\x89\xe2\xbc\xbc\x7e\x77\xbd\x80\x20\x2e\xce\xc3\xcb\x38\x9d\xae\x7c\x69\xb2\xd2\x14\x05\x8d\x3d\x43\xf8\x2b\x79\x41\xec\x6d\x3f\x00\xa9\xfb\x29\xfe\x35\x5f\x0d\xc3\x2f\x59\x32\xe9\x60\x30\x48\x03\x38\x20\x67\xde\x3b\x48\xeb\xba\x29\xae\x62\x24\x3a\xd2\xe0\x06\x83\xa8\x10\xa7\x62\xe4\x9f\xc2\x41\xf9\x90\xfc\x42\x9f\x3d\x65\xde\xc6\x3b\x17\x39\x0c\x3f\xdc\xc1\xcf\x92\x4d\x88\x3d\x8b\x7f\x91\x67\xe9\xee\x24\x3f\x4b\x3c\xe9\x91\x7f\x8a\x7e\x51\x11\x44\xde\xc3\xc0\xf5\xe4\x3d\x8a\x61\xbf\x82\x03\x3c\x3d\x2f\x61\xc7\xff\x16\xae\x88\xd8\xba\xa1\x3b\xea\x69\x39\x78\xd0\xee\xdd\x1d\x0c\x60\x07\xcf\xbf\xd7\x93\x56\x19\x60\x27\x50\xc3\x8d\xe6\x7d\x12\x17\x25\x4c\x61\x5e\x0c\xb8\x63\x92\x5f\x6a\x6d\xe1\x74\xd6\x4a\xa7\xc8\xfc\xa8\x44\x22\xae\x14\x89\xca\xe4\x4c\xab\x0b\x4a\x24\x43\x61\xd0\x82\x01\xc8\x07\x70\xf0\xc0\x90\xb6\x62\x86\xd1\x04\x5e\xe1\xb6\xa7\xf3\x14\xbd\x8b\x7f\x93\x69\xdd\x81\x1f\xe1\x78\x59\x22\x99\x2c\xdc\xf6\x8e\xfb\x2b\x25\x33\x42\xaa\x7e\x18\x45\xad\x14\xdc\xcc\x61\x51\x84\x64\x4f\xbf\x41\x9f\x5d\x5b\x39\x63\x5b\xa0\x55\x28\x83\x9b\x1c\x0f\x19\xf5\x03\xc2\xc1\x03\x54\xef\x55\x00\xd2\x4d\x37\x5d\x75\xf3\x42\x32\x42\x9a\xf0\x7c\x97\x63\x99\x60\x54\x01\x40\x72\xd4\xdc\xfe\xf1\x19\x90\xbf\x82\xf4\x00\x1a\x46\xa7\x79\xb6\xf9\x26\x0a\x1f\xba\x7b\x82\x66\xe3\xf0\xfc\xa9\x45\x98\x53\x2f\x38\x12\x61\x00\x15\x14\x9c\x56\xbc\xce\x53\x85\xd0\xb4\x69\xa1\x0d\x5f\x2d\x91\xd4\x4c\x2a\x91\x54\x9c\x16\x10\x04\x2b\x40\xe6\x5e\xe5\x1e\x2e\xbe\x07\xd7\x7c\x8f\x4e\x64\xa9\x01\x81\xac\xda\xa0\x0e\xd5\x7a\x29\x9e\xb4\x4a\xce\x45\x98\x4d\x3c\xec\xef\xbf\x77\xaf\x55\x9a\x29\xe8\x50\x1e\xb2\xa0\x9c\xe5\xd9\x95\x97\xc2\x2b\x0f\xdb\xc7\x5b\xfe\xcf\xd9\xd2\x9b\x2f\x8b\xd2\x2b\x16\x70\x1c\x4f\xae\xf1\x61\x1d\x9d\xd1\x8b\xf0\x12\x02\x2f\xcb\x3d\xb4\x21\xa2\x0b\x54\x88\x04\x77\xd0\x05\x92\x88\x86\xf3\xa9\x20\xc9\xa0\x62\x8d\x08\x48\x0a\x15\xeb\x43\x54\x5d\x5d\x6d\xc9\x6b\xaa\x2d\xb8\xbb\xfe\x02\x71\xf8\x0b\xc4\xe1\x2f\x10\x07\xb7\xae\xfc\x6a\xef\xd7\xf9\x6f\x4f\xf6\x0e\x5d\x20\x0e\xc4\x67\xc7\xfc\x41\xc0\x7f\x24\x45\x54\xbb\x35\x69\xea\x6c\x77\x80\x0f\xf0\x22\x46\x1b\x98\xbc\xfb\x36\xfd\x5b\x75\x59\xf9\x49\xf8\xfb\xf5\x26\xf6\x31\x0d\x06\x8a\xb8\x13\x31\x2e\x13\x01\x81\x9a\x11\x68\x21\xe0\x97\x39\xf1\x38\xf6\x0f\xc0\x21\xf0\xaf\xe2\xa8\x9c\x9d\x7a\xdd\xbf\xcf\x60\x3c\x9d\x95\xe8\xaf\x49\x86\x8e\x41\xf1\xef\x10\xfd\x58\x84\x11\x0e\xcf\xf1\xba\x7f\x9f\x87\xf9\x34\x4e\xd1\x5f\xc2\x4e\xdd\x95\x5a\x41\x0d\xf6\x32\x7c\x04\x01\x18\xda\x82\xe3\x12\x18\xc8\x19\xb6\x0f\xd5\x76\xf3\x00\x03\xb6\x83\x94\x18\xb2\x20\x3d\x12\x6d\x87\x2d\x65\xc4\x16\xa3\xc1\x71\xa8\x30\x62\xf5\xcb\xe2\x93\x50\x86\xc5\x76\x97\x77\xa0\xce\xb8\x0d\x1a\xdc\xa0\x6e\x62\x55\x0c\x29\x53\xa3\x15\x74\xe4\x40\x41\xfc\x70\xc4\x9e\x9c\xb3\xd3\xb3\xa8\x3e\x8b\xac\xa0\xbf\xa5\xdc\x03\x0d\x87\x44\x79\x58\x40\x80\x28\x7e\x79\x62\xc0\xe4\x6b\xd0\x0e\x6d\x2d\x2f\x2d\xf1\xb9\xfe\x7d\x0b\x4f\xd9\x46\x88\x20\x51\x1c\xb5\x63\xac\x52\x2a\x88\x1f\x0a\x28\x08\xd2\xf4\xdb\x11\x51\xf5\xb9\xa9\x4e\x46\x0a\xd9\xec\x8c\x2c\xe9\x05\xec\x94\x0c\x9e\x0e\xd4\x80\x31\x90\x0f\x5a\x2d\x48\x84\xf1\xe0\x81\x2d\x6f\xf8\x21\x6c\x05\x38\x3b\x34\x60\xa7\x85\x70\x00\x87\x25\x4b\x35\xf6\xc2\xbb\x83\x41\x7a\xef\x5e\xde\x0a\x71\xc8\xe6\xb0\x1c\x0d\xd2\x15\xf8\x30\xc0\xf6\xa1\x15\xf8\x88\x8e\x12\xf6\x72\x4f\x3f\x80\x5f\x07\x43\x1f\x86\x04\xe8\x8c\x08\x33\x0c\x5c\x72\xe6\x06\x2e\x91\x9b\x26\xce\xe0\x2e\x14\x13\x72\x02\x77\x81\x98\xf0\xc3\xb7\x13\xc4\x84\x5f\x88\xf5\x0b\x99\x06\xae\xb1\xd4\x7e\x8f\xb5\xdf\x91\xf6\x7b\xae\xfd\x5e\x68\xbf\x27\xb5\xc0\x3a\xb0\x0a\x67\x3b\x92\xbc\x97\x2c\x64\x74\x9d\x81\x0b\x0d\x6c\x03\x75\x8e\x01\xe6\x41\xfb\xc4\x80\xf3\x88\x8b\xe7\x29\x92\x1a\x70\x8c\x0f\xd9\x06\x9e\x07\x59\xdb\x3a\x9e\x07\x5d\xea\x14\xc7\xa3\xd6\xc1\x97\x3d\x14\xfe\x7e\xfd\xa2\xfa\x84\x3c\x85\xdc\x81\x26\xac\x8b\xbf\x4a\xa0\x0f\x3c\x3f\x9e\x3e\x15\x3c\x34\x2e\x9d\xfe\x3a\xec\x8e\x70\x49\x4c\x50\xb8\x0c\x95\xf8\x2d\xf6\x10\x33\xe6\xca\xd7\x56\xd2\x59\x93\x1c\x16\x71\xeb\xa9\x96\x22\x62\x95\x07\x90\x9c\xf2\x3e\x4a\x15\x64\xaf\xa2\xd3\xf7\x4a\x1c\xa6\xe5\x62\x20\xf9\xf7\xd3\x27\xa8\xbd\x89\x2f\xe3\x17\xa9\xe8\x47\x2f\x3e\xce\xf3\xf0\xba\x13\x17\xf8\xdf\x16\x0c\x1e\xb6\x2c\xdd\xca\x4d\x03\xf4\xac\xbc\x80\x69\x2b\xa0\x07\x13\xed\x49\x74\x0a\xe7\x83\x80\xe6\xc2\x4f\x31\xbc\x42\xe7\x8c\x16\x04\x90\x19\x82\xd5\x39\xc2\xb1\x03\x94\xab\x0f\xa5\x4f\x91\x2f\x8d\x93\x0c\xe9\xb6\xab\x20\x58\x89\xed\xab\x25\x1d\x71\x9d\xa7\x6a\x1c\x3b\x4f\x90\x9d\xee\xdd\x73\x61\x6a\x38\x02\xec\xd7\x85\xdf\x03\xb9\x6e\x4e\x9b\x8a\x6d\xb2\x0a\x83\x8b\xbe\x83\x52\x98\x08\x66\xf3\x82\xd4\xe6\x85\x74\x87\xd3\x16\x95\x83\xac\x6d\x74\x7e\x52\xa3\x81\xda\x87\x2c\x77\x80\xf4\xe2\x6a\x45\xfe\xb5\xe0\x42\x14\xf9\x18\x94\x83\xa7\x1c\x22\x84\xc8\x01\xde\x70\x22\x18\x48\x31\x64\xb0\xc4\x44\x08\xc4\xb0\x4a\x8f\x92\xfe\x80\x14\x96\x27\x00\xe9\x80\xd9\x63\x4c\x13\x22\x04\xee\x08\xce\xe0\xd3\xa7\x9b\xd5\x1d\xff\xa0\x7f\xdf\xbf\x3b\x90\x0d\x8a\x9c\x9e\x95\xb7\x71\x7b\xcb\x12\xc8\x07\x36\xa3\x92\x64\x6b\x30\xcd\x4b\x6e\xe3\x51\xaa\x19\x8f\x6e\x52\xfc\x11\x6c\xf1\x64\x3d\xfd\x9e\x1a\x01\x40\x1e\x00\xdb\xbc\x44\x6d\x3d\x5b\xe6\x39\x4c\x4b\x6c\x92\x90\xc6\x4e\xbf\xd5\xc2\x05\xb3\x84\x8f\x3b\xc2\xee\x43\xba\xf5\x61\xab\x1c\xf8\x2c\xba\x10\x98\xe2\x22\x38\x6d\xd5\x10\x45\xb8\x0c\x1a\x6a\x58\xdb\xf5\x43\x7b\x69\x58\x8e\x44\xff\xe4\xa8\x7f\x72\xd4\x1d\xab\xd5\x2a\x2c\xae\xd3\xb1\x67\x7a\x9c\x48\x9f\x77\x72\x18\x46\xd7\x38\x52\x7c\xd0\xe7\x7e\x2b\xbe\xfc\x9b\x38\xa0\xd8\x4b\xc3\x51\xb0\x0a\x56\x74\xcd\x6a\xf2\x83\x7c\xf4\xde\xbd\x96\x7d\x4a\xcb\x93\x81\xec\x55\xc6\x58\x2a\x76\x45\xf2\x28\x3b\x04\xaf\x56\xe0\x62\xf0\xa6\x35\x91\xf1\x04\xe4\x9d\x77\x7b\x74\x94\x99\x51\x3c\xda\xbc\xb7\x07\x47\xb9\xd4\xcb\x65\xfb\xff\xf6\xa8\x28\xd7\x7a\xd1\xba\x0a\xb1\x4b\x7c\x94\xbb\xbd\x15\x05\x62\x31\x06\x61\x17\xb0\x28\xaf\xf5\x82\xe9\x82\x1b\xc6\xdb\x03\xae\x4c\x34\x90\x0b\x7c\x7a\xab\x85\x83\x62\x7d\x33\x00\x13\x15\x1e\x43\xed\x10\x71\x40\xac\x05\x82\xe2\x7a\xb9\xfa\x2b\xc6\xd1\xb1\x16\x1e\x4a\x75\x11\xd5\x5f\x24\x9e\xcb\x3a\xb0\x28\xe6\x6b\xd5\x25\xcb\x19\x12\x75\x40\x51\x5c\x2f\x57\x7f\x05\x4b\xa1\x7a\xa0\x28\x96\xf7\xb4\xb2\x27\xb2\x15\xf9\x6c\x0d\x68\xc9\x59\x4d\xd0\x12\x02\x0f\xf1\x75\x73\xd9\x18\x44\x85\x46\x07\x60\x22\xfe\xbf\x79\xfa\xf6\xfc\xf9\xf9\x3b\x91\xaf\x45\xed\xec\x38\xd1\x0c\xbc\x7d\xfa\xf2\xf5\x4f\x4f\xc5\x4d\xee\x02\x5c\xad\xa8\xcb\xc2\x9d\x64\x46\x76\x03\x4b\xa2\x9c\xc8\x33\x13\xdf\x72\x94\x41\x1f\xa8\x2e\x85\x7e\x88\x65\x9f\x9d\x3f\x7d\xa7\x67\xba\x89\x4f\xad\x7b\x4c\xc9\x78\xb3\x3e\x52\x37\x8f\x8d\xce\x82\x2d\xf2\xd8\x6c\xf3\xe8\xeb\xe5\xb1\xfd\xe3\xd7\x5e\x76\x95\xfe\x72\xbe\xab\x3c\x36\xac\xa1\xc8\xf9\x6c\xeb\x2f\x6c\xce\x6a\xd0\x24\xb7\xed\x33\xa6\xb7\xa9\x61\x9d\x87\xf5\x12\xcf\x18\x3a\x08\x87\x29\x01\x02\x58\x04\x68\x56\xbb\x43\x82\x14\xa2\x81\x98\xc8\x18\x26\x1c\x6b\x44\x47\x18\x91\xc3\xfc\xba\x96\x1c\xb4\xbe\x91\x46\x64\xe3\x07\x30\x62\xc7\x91\xfc\x70\x01\xe9\xf7\xa4\xfc\x23\x25\xd7\x4d\x16\x42\x40\x08\x9d\xcf\x52\x4c\x53\xb8\x14\x6a\xb7\xed\xed\x9b\xf1\x9b\xb5\xf2\x46\x44\x35\xea\x87\x8d\x2a\xa9\x54\x18\x6d\x48\x83\x1e\xa2\xf0\x12\x8f\xe8\xd4\xa9\xca\xa8\xba\x4f\xe1\x7b\xf8\x84\x73\x8f\x9e\x8b\x7b\xa3\xfe\x5c\xe9\x6d\x93\xb0\x68\xa9\x91\x3d\x61\xd1\xcc\x21\xdd\x3e\xbd\x47\x9a\x3a\x9f\x63\xa0\xea\x0d\xd0\x5f\x63\xe3\x5e\x42\x1b\xe5\xe2\x1c\x9a\x99\x93\x15\xb2\x4b\xca\x7b\xb1\x37\x5c\x46\xba\x6a\xee\xb7\x3c\xa9\x4a\xd5\x61\x6d\x04\x06\x81\x6c\x6f\xe3\x24\x9c\x0a\xd1\xd5\xd4\x85\xb8\x2e\xf3\x46\x20\x6a\x71\xca\x1a\xd6\x56\xb2\xad\xbb\xfb\x5e\x43\xb2\x52\xb2\x72\x38\xcd\x4c\x93\x90\x7b\x69\x3a\xf5\x77\x91\x90\xe3\x4e\xc5\x39\x27\xd5\xb3\xa7\xe2\x34\xc0\x7b\xe2\x75\xdd\x32\xff\x66\x7d\xe6\xcd\xcf\xd9\x32\xb7\x7a\x49\x0f\xb1\x87\x73\xff\x50\x77\xab\x7a\xb3\xb0\xf0\x2e\x20\x4c\x3d\x1a\x28\xd8\xd1\xbf\xb7\x41\xbb\x9d\x94\xcf\x0d\xf3\x39\x54\x3a\xe8\x1d\x6e\x03\x5b\x0b\x1b\x5d\x6c\x1c\xed\x5a\x5e\x88\x8a\x1a\x12\xe3\xfe\xd7\x16\x18\x9b\x25\xeb\x35\x10\x19\xf7\x77\x2c\x31\x94\x79\xd1\xdd\x4d\x12\xdf\x86\x52\xa3\x21\xcb\x30\xaf\xf1\xd6\x99\x7b\x75\xb2\xf6\xb6\x90\x1e\x45\x78\xa9\xca\x8e\xed\x58\x96\x2d\x12\xa4\xbb\x89\x04\xb9\x7f\x5b\xd2\xc4\x9d\xc2\x63\x53\x42\xbb\x1a\x32\x84\x99\x6a\x35\xf9\x71\x2c\xb0\x10\x58\x6b\xfe\xec\x02\xe5\xd8\x2d\x50\xb6\xc0\xaa\xc4\x34\x71\x9f\x5b\x9a\xe0\x30\xdc\x9d\xc9\x92\x93\x2f\x25\x4a\xde\xcd\x60\x0e\x71\xe6\x6f\xc8\xd2\x80\x0b\x9c\x48\xe1\x5d\x37\x15\x32\x9d\x35\x4c\xfd\xf2\x54\x06\x52\x0e\xad\x7e\x27\x82\x65\x18\x27\x0d\x43\x12\x6d\x19\xef\x5d\xe0\x5f\xe4\xbe\x12\xb8\xd7\x33\xbe\xc6\xeb\x41\x1a\x71\xca\x9b\xec\xac\x54\x03\xfc\x91\x5d\x0b\xd7\x93\x4d\x64\xeb\xf1\x66\xb2\xb5\x32\x05\x77\x03\xf0\xd3\x0a\x19\xb4\x4d\xf2\xec\x16\x19\xae\x3c\xc3\x4b\xcb\x6a\xa5\x38\xa1\x1c\xeb\x53\x4b\x49\xd5\x72\x5d\x95\xfc\x58\x6a\x6f\xd0\x4c\x89\x24\x5f\x95\xe5\xc1\x4a\xd8\xa1\x24\x69\x55\x32\x4a\xb0\x0c\x57\x57\xae\xec\x46\x71\x76\xb2\x49\xfc\x73\x26\xb5\xae\x03\x03\xa5\xb1\x0a\x26\x18\xa8\x25\xaf\x6c\xdb\xa4\x58\x9e\x74\x61\xcf\x4e\x29\xed\xe1\x38\x9d\x45\x8e\xf3\x26\x9f\x90\x62\xee\xdd\xd3\xaf\xb4\x5c\x58\x8f\xd0\xc8\x6c\xa5\x1e\x1e\x7f\x93\x64\x4f\x78\xb1\x9c\xee\xa5\xe1\x65\x3c\x0d\xed\xfc\x97\x3b\x77\x66\xa9\xd1\x31\x0e\x5f\xc4\x2f\x4f\x7e\xf8\xf1\xe5\x93\xbd\x57\x56\x5f\x84\xee\x1c\xa8\x5a\x7a\x4d\x66\xb0\xb5\x2f\xbe\x1a\xf1\x38\x99\xe3\x6d\xec\x51\xcf\xe7\xb7\x6a\x74\x7e\x3d\xbb\xfa\xfe\xd9\xbf\x9f\xbc\xad\x35\x3a\x0e\xc5\x80\x6d\x7e\x18\xdc\x41\x09\x99\xde\x57\x7f\x76\x15\x6e\x66\xac\x04\xa2\x45\x24\x19\xa0\x7a\x87\x58\xb2\x25\xf1\xf8\x83\x6f\x86\x47\xd3\xf3\xb8\xa4\x41\xf4\x34\xce\x65\xa5\x5e\x67\xa4\xbf\xbd\x27\xb8\xf8\x86\x75\x22\x60\xc3\x75\xeb\xb4\x5f\xa3\x4e\x67\xa2\xc4\xfd\xba\x71\xd6\x34\x80\x0b\x6d\x0b\x24\xf4\x4b\xce\x31\x66\x55\x6c\xb2\x2e\x1c\x13\x71\x83\xa5\x51\x99\x6f\x4c\x6b\xab\x8a\x67\x13\xbf\x59\x13\x72\x35\x56\x52\x5c\x8c\x93\xac\x58\xe6\xb0\x3d\x87\xe9\x72\x2f\x74\x50\xfd\x7e\x9d\xc5\x14\xfd\xf4\xfa\x9f\x47\xb3\x68\xdf\x91\x8d\x23\x2a\x2f\xf3\xc0\x57\x39\x4a\x19\x7d\x00\xf5\xd0\x62\xc5\x49\xa4\xb3\x84\xc5\x22\x5b\x2c\x17\x48\x57\x80\xe9\xd2\x27\x54\xe4\xfd\x51\x53\xcd\xdf\x67\x18\xf0\xb5\xe1\xc2\xd6\xce\xdb\x26\x53\xb2\x62\x44\xbf\x9e\xc0\xd6\x2a\x75\x4b\xe6\xd7\x2f\xff\x38\x7c\xdb\xef\x5f\xfc\xdb\x3e\xbf\xec\xd3\xeb\x11\xfc\xb8\x08\xd3\x68\x4d\xc6\x17\xce\x97\x8a\x2f\x7d\xc2\x99\xdf\x55\x39\xe0\xb5\xde\x90\x60\x64\x7a\x24\xa1\xcb\xd8\x0d\x4e\x80\x52\x1b\x86\x03\xc4\x6a\x42\x65\xe7\x7e\x7d\x04\x5b\x3e\x4b\x0f\xac\x08\x0f\x3c\x82\xe1\x25\xaa\x9f\xfa\x71\xbf\xcc\xa6\x53\x0c\x46\x47\xa3\x91\x18\x1e\x84\x5a\x1d\x91\x37\xa3\xb7\x97\x4e\x49\x9e\x78\xc3\x4a\x66\x3e\x1e\x85\x34\xdf\x5a\x00\x5b\x9e\x55\xaf\x13\x9b\x14\x5d\xef\xb4\xca\x23\x71\x85\xd4\x5d\xba\x40\x00\x2b\x24\x42\x13\xde\x1a\x35\x91\x67\x3d\xad\x42\xb3\x1d\x09\xe7\x6f\xb4\xe7\xe1\x62\xdb\x64\x1e\xdb\x12\xbb\x35\x0b\xfe\x36\xad\xfa\x7f\x1f\x1d\xfe\xb2\xff\xcb\xd8\x91\xe3\x49\x6c\x0c\x05\xcd\xed\xdc\x60\x7f\xe9\x83\xa1\xff\x84\x16\xd2\xdc\x70\xe4\xb3\x64\x4b\x2a\x3c\x8e\xb1\x9d\x47\x64\x46\xfa\x5c\x6f\x22\x5f\x62\xf3\x58\xcd\x8f\xd4\xb6\x22\xfb\x22\x7f\xc9\x56\x91\xbc\xd4\xaa\x96\x56\x7f\x34\x1a\xe9\x59\x6d\x6b\x72\x31\x0d\xc2\x91\x35\xab\x21\x4b\xdb\xd9\xb2\x2c\xe2\x48\x67\xc1\xde\x76\x39\xdc\xaa\x35\x71\xcb\xd4\xac\x45\x71\xf1\xdb\xd5\xe1\x2f\x67\x3b\x53\xb3\xb8\x4a\x3d\x44\xbb\x1f\xd1\xae\xc4\xb6\xa9\x9b\x9d\x35\x69\x4b\xd3\x89\x81\x8f\x27\x87\xbc\x39\xb2\xa2\xc6\x59\x5a\xe6\xa8\x76\x42\x9a\xb3\x2b\xa3\xd1\x2d\xd2\xda\xfc\x78\xb2\xd9\x94\xbd\x6d\x4a\xdb\x1e\x15\x8a\xb7\x65\xc2\xfe\xfe\x6e\x01\x27\xcf\x2f\xc7\xf6\x09\x1b\x47\xa6\xf0\x16\x6e\x9a\x47\xe1\xb2\xcc\x5c\x29\xfa\x94\x6a\x8c\x03\x84\x63\x51\xd9\xd4\xcd\x24\x7b\xaf\x4c\x78\x59\x35\x9f\xf8\x40\xc9\x22\xe6\x52\x5d\x56\x3e\xb4\x18\x1c\x05\x91\xd0\x55\x8a\xf1\x11\x3c\x35\x37\x47\x37\x67\x94\x56\x7c\xe1\xb2\x77\x70\x5f\xeb\x7a\x68\xcf\xde\x90\x6a\x50\x44\x23\xc9\x5c\xc6\x3a\x3f\x62\x3b\x10\x18\xfa\x61\x14\x71\x3d\xcd\x68\x8b\xbc\x2f\xc9\xb4\x81\xd6\x92\x68\xca\xce\xfa\xc2\xec\xbb\xda\x3a\x0e\xac\x19\x4b\xe5\x4e\xb3\xb2\x8d\xff\x20\xf6\x6b\x41\x8c\xc5\x81\x12\x79\xea\xb7\x96\xe3\xbd\x4c\xe3\xdf\x96\xb0\x8d\x7b\xb9\x29\x9d\x95\x63\xf5\xde\x06\x71\xb2\x0b\x10\x1a\x01\x34\x13\xff\x85\xdd\xf2\xdf\x81\xdd\x92\x55\xef\x0a\xfd\x93\x72\xd2\xcd\x67\x3f\x6e\x1f\xa4\xff\x9e\x46\xe9\xab\x2c\xb5\x40\x39\x71\xd7\x0f\xc2\x07\xfe\x23\xda\x6d\xbe\xe6\x8e\xf5\x2f\x08\x43\xbc\x11\x68\x79\xc4\xa3\x97\x1c\xda\x50\xd3\x90\x8a\x03\x75\xef\x61\xe2\x7b\xed\x51\x1e\xf8\xd8\xf1\xe2\x73\xfb\x2b\x90\x74\x2d\x15\xa2\x9e\x45\x67\xbc\x7b\xfd\x8f\x7f\xbc\x78\x6a\x34\x49\x7e\xe4\xd9\xe3\x17\xe7\xd5\x4f\xbc\x7b\xfb\xa3\xf9\x40\x57\x84\xba\x33\xc8\x19\xb1\x6d\x1e\x32\x87\xe8\x47\x85\x72\xf4\x58\xde\xc4\x39\x62\x48\x1c\x15\x74\x47\xaa\xbf\xad\xdb\x90\xe2\x8f\x94\xcd\xd6\xb0\x9e\xf0\x63\xa0\xba\x65\xfb\x86\xa6\xe7\x3a\x71\x1d\x29\xb6\x10\xfd\xdd\x48\x2a\xde\x78\xd9\xa8\x15\xda\x37\x01\xdb\xf3\xcc\x4d\xbb\xab\x6e\xad\x5d\x6d\x7f\xac\x1e\x01\xf1\x5f\xf3\x68\x01\x5f\x81\x84\x3e\xae\x54\x12\x8e\xad\xde\xe6\xad\x7d\xd0\x56\x07\xaf\x7a\xfe\x0c\x8b\x22\x9e\xa6\xdc\x5b\xac\xac\x75\xb2\x99\xcb\x7b\xf5\x24\xdd\x70\xab\x56\xb7\xe8\x04\x96\xde\x52\x80\x9c\x70\x54\x91\x5c\x43\x01\x09\xb5\xdf\x49\x2d\x54\x90\x4e\xa7\x03\xc9\x86\x49\x77\xcf\x3b\xdc\xb3\x0b\x03\x40\x08\x00\x41\x3a\xc0\x8b\x05\x84\xe4\x67\x2b\x1f\x14\x81\x0b\xcd\x0d\x15\x23\xa3\xb9\xe5\x4e\x34\xb7\xdc\x81\xe6\x96\xeb\x68\x6e\xb9\xb2\x77\xe5\x15\x7b\xd7\x2a\x58\x85\x51\x24\xa0\x03\x6b\xa5\x84\xc7\x51\x31\xf8\xcf\x37\xfc\xef\x95\xf8\x93\x02\x46\x3c\xe8\x3e\xf4\x3d\xff\xd4\xf7\x57\xdf\xdc\xc0\xd5\x7f\x56\xc1\x8a\xc2\x36\x30\x20\x01\x54\x02\x7f\xa7\x58\x24\x71\xd9\xf2\x3d\x3f\xe8\x10\x9e\xfb\x56\x39\x78\x50\xde\x1d\x0c\x60\xd0\xf9\x35\x8b\x53\x7c\x6b\xb5\x02\xc5\x20\x6e\x25\x4a\x02\x28\xea\xe2\x2d\xd2\xbf\x0d\x6f\xbf\x8f\x61\x7c\xb4\xaf\x60\x09\x30\xcc\xd7\xe7\x8e\x1a\x6f\x21\xb5\x48\xca\x1c\xd5\xca\x65\x32\x65\x18\x36\x2c\x9a\x81\x20\xaa\xa5\x27\xb2\x5e\xb9\xac\xcc\x4b\xcd\xc0\x72\x7d\x5e\x2a\x44\x05\xb4\xc7\x59\x92\x40\x66\x96\x90\x14\x4f\xfd\x6e\xe5\x9b\xdb\x43\x38\x3b\x5f\xe0\x5a\xc6\x8d\x3a\xe4\x53\x58\xda\x82\x39\x78\x90\xc5\xaa\x6e\x07\xa4\x61\x19\x5f\xc2\x76\x31\xce\xb3\x24\x41\xa5\x37\xed\x07\xb3\x80\x3f\x6a\x77\x2c\xca\x6b\x42\xa9\xb0\x2e\x43\xf5\x6b\x41\x76\xc7\x57\xc9\x87\xb3\xa7\xd1\xb3\x35\x90\xdd\xdc\x1c\x67\xc7\xee\x4e\x75\x16\x44\xc9\xb0\x4c\x42\x46\xa5\xae\xf0\xad\xee\x27\x3d\x94\xf0\x10\x9c\x34\xd8\xdc\x59\x40\xc0\x8c\xc6\x7c\x3a\x8a\x3e\xb6\x30\x70\xcc\x44\x98\x68\x7d\xa6\x75\x5b\xab\x1d\x76\x06\xf7\x97\x8b\xe5\xc5\xe7\xfe\xb8\xe8\x9c\x6a\x1c\xc3\x35\x35\xbd\x60\xb1\xa9\xb5\xd5\xac\xae\x70\x2c\xe8\x91\xa8\xae\x26\xe8\xe3\xdf\x94\x01\x9f\x3b\x30\x85\x4d\x98\x47\x24\x4b\xde\x0c\x8d\xdf\x71\xd3\x48\x5b\x07\xe7\x9e\xce\xb5\xa7\x2b\xe4\x05\x2c\xcb\x38\x9d\x16\xa7\x7b\x7b\x44\x64\x9c\x96\xd9\x07\x68\x9e\xcb\x0e\xcd\x9c\x42\x11\x8e\x6b\xcf\x28\x64\x24\x7c\x26\x4b\x8b\xde\xb3\xfb\x38\x30\x61\x0c\x8b\x22\xcb\x9f\x3f\xf1\x6d\x87\x93\xda\x64\x53\x2f\xb2\xa9\x17\xa7\xde\x55\x5c\xce\xbc\xd0\x8b\xe2\xc9\x04\xe6\x30\x2d\x3d\xdc\xac\x8d\x28\xa7\x58\x99\x9f\x95\xf4\x0f\x28\xb3\x75\xab\xc5\x41\x63\x0f\x1b\xaf\x8f\x65\xd2\x60\x79\x34\xa9\x6a\x6f\xbf\xfa\x10\x92\x64\xd3\x38\xc5\x81\xa8\x9c\xfd\x9e\x4c\x42\x16\xba\xca\xe3\x94\xf0\x71\x43\x89\x78\x9d\x85\x05\x8b\xab\xaf\x7f\xec\x30\xf6\xc1\x5d\x90\x24\xd8\xc3\x52\x77\xc0\xc0\x4e\xdb\x67\xa5\x60\xa7\xf2\x3a\xa0\x30\x68\xda\x5d\x21\xd0\x83\xa0\x31\x76\xb6\xc4\xbf\x74\x5b\xbc\x1f\xb3\xf1\x87\xeb\x7f\xff\xfb\xb8\xef\x70\xd7\xb1\x78\xe7\x47\x64\x42\x39\x3c\x1d\xfb\x96\xcc\x80\xde\x4e\x58\xb5\xf8\xe6\x76\xa2\xea\x17\xc4\x19\xa8\x85\xc2\x90\xcf\xb5\x85\x27\x4f\xca\x04\x90\x2c\x5d\xbc\x2d\xdc\x0f\xdd\x34\x2b\x5d\x68\x75\x66\x1c\x7d\x83\xed\x5e\x95\x07\x48\xb5\xe9\x3b\xf2\x3a\x54\x17\x44\x5f\xea\x62\x16\x83\x88\xfa\xf8\x0c\xcf\x39\x41\xf8\xc6\xf2\x3f\x7c\x13\xce\xd7\x91\xc8\x50\x9b\x49\x6d\xdf\x36\xca\x4d\x0d\x35\x6b\x7a\xb2\x99\xee\x64\x76\xe6\xbe\xa3\x33\x71\x5e\x8f\x94\x14\xa2\xb5\x61\xeb\x3e\x5a\xbf\x19\xad\x69\x78\x6d\x55\xcc\x68\xb3\x1e\xfe\x6b\x1f\x30\x2d\x1d\x67\x03\x9d\x40\xed\xbc\x7a\x99\x34\xd5\x1a\x01\x26\x3b\x08\xaf\xbd\x59\x78\x09\xbd\xcb\xb8\x88\x4b\x34\x81\xbd\x1f\xdf\xbe\xf0\xca\x59\x58\x7a\x71\xc1\x89\x0b\xc3\xd4\x5b\xa6\x1f\xd2\xec\x2a\xf5\x72\x48\xf1\xf3\xbc\x22\xf3\xae\xb3\xa5\x37\x0e\x53\x4c\x61\x38\xcd\xd0\x93\x17\xe1\xf8\x03\x26\x35\x9c\x41\x2f\xcf\xb2\xd2\xcb\x72\x7c\x37\x87\xed\x62\x79\x31\x8f\xb1\x9e\x46\xd2\xa2\x1e\x9f\xbd\xf0\xde\xa1\x1d\x72\xef\x1c\x8e\x73\x58\x3e\x7f\xe2\x5d\xe8\xc5\x3c\x3e\x7b\x51\x74\x6a\xa9\x2c\xcd\xa7\x4d\xcd\xa9\xd1\x44\x11\x31\x66\x47\x12\x8b\x30\x6a\xd4\xa6\x76\x12\xa7\x1f\x2a\x24\x8e\xac\x67\x93\x7a\xcc\x72\x38\xf1\x35\x8f\xb4\x4f\x76\xb2\x66\xce\x04\x31\xf0\xff\xc8\x70\xff\x36\xcf\xa4\xb2\x26\xc8\x9b\x0d\x8d\xb2\x71\xb1\x61\x43\xb1\x8f\xa6\x84\x79\xca\x9c\x2d\x3d\x2d\xbe\xe9\xec\xf5\xab\xf3\x1f\x5f\xbc\x7f\xf2\xfa\xec\xfc\xfd\x8f\x6f\x5f\x48\x7d\x40\xa8\x50\x1b\x76\xc5\x5b\x18\x46\x78\xae\x46\xd9\x18\x2b\x2f\x38\x06\x7c\x07\x3d\xb3\x2d\xd3\x61\xfd\xe5\xfc\xd7\x56\x8d\x04\x59\x98\x43\x2f\xcd\x4a\x2f\x5c\x96\xb3\x2c\x8f\x7f\x87\xd1\x56\xa3\xf3\x27\xde\x2d\xbf\xf8\x8e\xa8\xec\x37\xcb\xa2\xf4\x2e\xa0\x37\xcd\xc3\x14\x6d\x37\x0b\x98\xcf\xe3\xa2\x40\x02\x16\x89\xfb\xcb\x18\x5e\x09\x96\xdc\x8e\xf7\xb8\xf8\x40\xf6\x8a\x30\x9a\xc7\x69\x5c\x94\x79\x58\x66\xb9\x17\x4f\xf0\xce\x53\xce\xe2\x14\xdf\xf7\x8a\x59\xb6\x4c\x22\xb2\x93\x85\xf8\x08\xde\xf9\xfc\x3d\xb4\xb3\x8d\xe1\x2b\xc8\x4b\xe0\xef\x85\xe3\x84\x1d\x1b\xcb\x39\x52\x25\x6e\x99\x04\xb5\xf7\x55\x02\xc3\x3c\xfd\x12\x9d\xf5\xe2\xe9\xe3\xb7\xaf\xb4\x2e\xa3\xfc\xfd\x05\x1c\x2f\xf3\xb8\xbc\x6e\xa7\xb0\xbc\xca\xf2\x0f\x71\x3a\xdd\x5b\xe4\x59\xb4\xc4\xdf\x6c\x87\x63\x12\x39\xbc\x51\x77\x3e\xcb\x92\x24\xbb\xc2\x1d\x3a\x5d\xc6\x11\xbc\xa5\x5b\xd1\x3a\x8f\xec\x38\x4b\xc7\x21\xd6\x6d\xd3\x4b\x25\x64\x0a\x0d\x44\xbb\xcc\x44\x54\x55\x13\x83\x87\x7e\x96\xff\x6a\xb1\x50\x32\x2f\xe8\x6d\x31\x2b\xdc\xcf\x7f\x59\xf4\x9e\x5c\x2e\xb7\xa3\x09\x95\x02\x0e\x68\x68\xba\x15\x67\x82\xdf\x6c\xcc\x94\xb2\x31\x23\xa8\xd9\xe7\x9c\xee\x24\xfd\xcc\x74\x27\xc2\x9c\x45\xc2\xb7\x56\x35\x2c\x6c\xb5\xd2\x02\x77\x43\x2a\x8a\xf6\xca\x4a\x26\x53\x9d\x47\x05\x0f\xde\xeb\x94\xd2\x4e\x9e\xde\xed\x9a\x0c\xa4\x2e\xa0\x7d\x8a\x37\xdf\x38\xb7\x7c\x17\x3c\x98\x6a\xb5\x75\xa6\x65\x74\x53\x61\x5a\x1c\xad\x25\x74\xb0\xd4\x76\x43\x26\x68\x9d\x2c\xb5\xc8\xc7\x22\x44\x02\xbd\xdd\x59\xe6\xb1\x1f\xa8\x2c\x08\x12\x5d\x83\xed\x61\xad\x81\x06\x93\xe4\xc8\x4d\x8b\x88\xf9\x0b\xec\x6c\x10\x84\x07\xa2\xa4\xfc\xcb\x14\x05\x1f\x0e\x1e\x48\x5c\x93\x32\x69\x86\x41\x05\x41\xcb\x5d\xe4\xd9\xc7\x6b\xc6\x3d\x99\x8f\x8d\x12\x90\x0c\xc3\xc3\xd4\x0a\x56\xc1\x1d\xc6\x7b\xb0\x21\x8d\x84\x8d\x42\xe2\xd3\xa7\x9b\xd5\x67\xa1\x91\x28\xd7\xd3\x48\x90\xb5\x52\x0e\x1e\xdc\x40\x42\x0b\x7b\x27\xd5\x69\x04\xca\x60\x45\x96\x99\x3c\x28\xeb\xb8\x0a\x9c\x2c\x05\x46\xf1\x2c\xb4\x53\x37\xb4\xb3\xe1\xa6\xf7\x75\x8a\x72\x3c\x6a\xb4\xaf\xf0\xdf\xd2\x28\x35\x36\xad\x4f\x92\xb0\x98\xb5\x79\x46\xb6\x25\x18\x21\x89\xdb\xf8\x21\xf7\x5b\x7f\xcc\x08\x84\x49\x96\xcf\xdb\xfc\xf7\x6d\x0d\x42\xf8\xf9\xbb\x67\xbd\x6e\xf9\x6c\x6f\x23\x85\x80\x5a\xaf\x77\x92\xd2\x6c\xeb\x2e\xbe\x77\xe7\x83\xbd\xd6\xf0\x7f\x87\xff\x33\x1a\x05\xdf\xee\x4d\x6b\x20\xaa\x34\x74\x5d\x65\x69\x0e\x0b\x75\xc8\x5d\x70\x29\x56\x1a\x6e\xd4\x20\x7c\xa2\x54\x2f\x4b\x7b\x2e\x23\xe7\xee\x84\x49\x1c\x16\x2d\x1f\x35\x17\x2f\x67\x3f\x00\x71\x09\xe7\x35\x1e\x5b\xa7\x07\x8c\xb3\xb4\x0c\xe3\xd4\xa9\x0a\xa0\xb2\xfc\x40\xec\x06\x06\xa9\x3e\x9a\x76\x09\x44\x53\x86\xef\xbe\x69\x96\xcf\x71\xf8\x19\x21\xa0\x41\x8f\xdc\x61\xaa\xd0\xb0\xd3\xe9\xa4\x1d\x02\x1a\xde\x41\x07\xde\x0e\x0e\xae\x7c\x8c\xe9\x57\x47\x20\x19\x84\x43\x46\xc9\xd4\xee\x8d\x86\x5d\xc2\xe7\x56\xdc\x29\x06\xed\x1e\x8d\x33\x27\xa4\xd9\xfe\xd0\x0f\x1e\xb2\x08\x3d\xa4\x7c\xad\x86\xdf\xdc\x24\xab\xd1\x7f\x4e\x13\x22\xa1\x71\x2f\xcc\xc2\x34\x4a\x68\x3d\x52\x50\xe8\xa4\xce\x0c\xc6\x1e\x5d\x5d\x6d\x80\x04\x83\xe7\xdf\x34\xcf\x96\x8b\x3d\x48\x54\x8b\xbd\xf1\x0c\x8e\x3f\x5c\x64\x1f\x6f\x8b\xf2\x1e\x3d\xfb\xf5\x08\xfe\x0e\x4b\x87\x4f\x50\x05\x6d\x97\xb3\xd9\xa3\x38\xe2\xc9\x27\x72\x7c\x84\x25\x9f\x3d\x4e\x17\x4b\x7c\x06\xed\x1d\x81\x7d\x9e\x32\x83\x7e\xf5\x39\x07\x25\x4b\x58\xed\x63\xcc\x0e\xd6\x4b\xbe\x0c\x43\x67\x1c\x07\x74\x14\x61\xf6\x2c\x8e\xcc\x60\xa0\x4c\x66\x04\xb2\xfe\x92\x95\x18\xb4\x22\xd3\x74\x81\x86\x28\x4c\xf4\x0c\x9c\xac\x51\xe8\xee\xda\xa9\xf1\xd5\x8e\x98\x96\x9a\x61\xe9\x74\x5b\x66\xec\x2f\xfd\xeb\x1f\x9e\xfe\x98\xfd\xea\xd8\x5d\xd6\xa7\x99\xa2\x29\x29\x10\x00\xfb\x07\xc0\xcf\x33\x9c\xcb\x10\x26\x68\x24\xc9\x5c\xec\x39\x32\xa2\xfb\x96\xe0\xb8\xba\x53\x67\xbb\xe9\x21\x0d\xc2\x6d\x9a\x1b\xbb\xe1\x05\x17\x49\x59\xd9\x1f\x89\xfd\x7b\xf9\x57\x06\xd9\x7f\x47\x06\xd9\xb8\x5a\x26\x3d\xeb\xe5\xe7\xc5\xf3\x83\xdf\xed\x32\x09\xe3\x10\x9a\x82\x49\xe2\x44\xc1\x4b\xca\x15\x71\x73\x5f\xcd\x97\x62\x56\x32\x6a\xac\xf0\x81\xff\x0e\x7e\x44\xff\x9c\xb1\x4d\x13\xf8\x6f\xc3\x28\xce\x7c\xe0\xbf\xa0\x20\x88\x4f\x25\xb8\x4c\xc5\xb2\x86\x93\xc9\xcc\x55\x8d\x1f\xf1\x49\xad\x00\x0f\x8d\xe3\x6c\x21\x84\xa5\x45\x8d\x6e\xb4\x94\xb2\x47\x72\xaa\x48\x92\x91\xd0\x16\x68\xa3\xb3\x94\xeb\x05\x3a\x76\x6e\x57\xa4\x12\x59\x88\xbc\xe9\x1d\x52\xab\x91\x01\xbc\xdb\x35\xb3\xe1\xba\x18\xc9\x65\x39\x9e\x29\x89\xd1\xd8\x4c\x2e\xe8\x97\xd7\x35\x46\xd6\x49\x1c\x0d\x32\x83\x44\x6f\x75\x8b\x72\x3c\x4b\xfe\x34\xcd\x21\x88\x9f\xb6\xc8\x5b\xdb\xd3\x4a\xb4\x14\x8b\x23\x6e\x94\xd7\xd7\x37\xd2\xf5\x69\x43\x30\xe8\xb1\x9a\x78\xef\xe3\xbe\x66\x0b\x8a\x4d\xa5\xb6\x7e\x81\xc9\x81\xea\x3c\xfb\xfa\xc4\xfb\x1c\x48\x8a\xd8\x63\x17\x54\x00\xfa\x7c\x8c\xd0\x15\x8a\x7d\x41\xfc\xf6\x3d\xda\x80\xb6\x78\x46\x6f\x4f\xdf\x80\x23\x38\xc4\x96\x79\xb5\x47\x31\x6a\x79\x5b\x8d\x49\x73\x21\x55\x79\x9e\x04\xa3\xc1\xc1\x98\x1a\xc6\xca\x56\x72\xf7\xf7\x18\x20\xec\x7f\x4d\x77\xd8\x12\x1b\x6b\x26\x34\x5a\x90\x6b\xb1\x0b\x8d\xc1\xda\x52\xa3\x40\xa1\x65\x3a\x6a\xc1\xc6\x34\x17\xb2\x21\xfa\x80\x4b\xc3\x54\x52\x1b\xa3\xaa\xd4\x46\x76\x61\x9b\xdc\x46\x39\x9f\x31\x63\x5c\xe3\x89\x0f\x0a\x6a\x16\x65\xd7\x98\xcc\x02\x31\xb5\x53\x4f\x61\xe9\xa1\x09\xe2\x62\xf9\x86\xc9\x43\xfa\x2f\xb6\xc0\x14\xb0\xc4\xc6\x09\x1a\x7f\x0c\x93\xce\x14\x96\x9c\x26\xba\x45\xe6\x5a\xe0\xba\x8b\x8f\x2d\x94\xe5\x1a\xf3\x31\x63\x3b\x07\xaa\x02\x12\xbd\x95\x44\xe3\xb8\x87\xb9\x7d\x44\x5c\xc2\x36\x97\xd5\x50\xbe\x8e\xaf\x8c\xfe\x73\xaa\x5d\x41\x9f\x41\xcb\x45\xca\x1c\xfc\x56\x7d\xa4\x53\x66\x2f\xb2\x2b\x98\x9f\x85\x58\xbb\xa4\x39\x8e\x1d\x9f\xa5\x34\xb6\x7d\xd2\x5f\x78\xae\xe9\xfc\xd2\xb4\x67\x65\x22\x74\xbc\x78\xa8\x72\x7d\x43\xa7\xe6\x69\x39\x78\x40\x57\xda\x60\x30\x28\xef\xdd\x83\x2b\x99\xa6\x9c\xf6\xdb\x00\xe2\xdc\xc9\xa5\x9a\x44\x88\x06\x74\x7b\xe6\xdc\x58\x2f\x96\xcf\x89\x2d\xd8\x73\x1d\xfc\xb3\xda\x97\x04\xd3\x6a\xd3\xfc\x49\x41\xb3\xea\x4e\xa0\x8c\x2a\x13\x28\xc7\x20\xaa\x69\xae\xb6\x6c\xd2\xb7\xc5\x94\xf0\xea\xc9\x5e\xb4\xf7\xed\x13\x87\xda\x5e\xd7\x94\xb0\xc0\x38\x0c\x34\x31\x0e\x37\x99\x36\xb6\x68\xe3\xd6\x7a\x62\xe7\xb9\x8d\x76\x05\x69\x44\x6e\x93\x5d\x01\x2b\x4c\xb7\x65\xa2\xbc\xb9\x3c\xfa\x7f\xcb\xb3\xb9\x1d\x9c\xf9\xab\x59\x49\xb9\xfe\xfe\x5f\x63\x22\x95\x26\xc5\x6d\x9a\xab\xe8\x9c\x7b\x5b\xa6\xea\xdb\x1f\xff\x79\x79\x9e\xff\xdb\x95\xe4\x53\x7b\xaa\xb2\xe9\xb8\x93\x99\xca\x0c\x01\x1b\x4e\x54\xf2\xc1\x3f\xd0\x3c\x15\x13\xe2\x36\x4c\xd3\x0d\x4d\xb4\x5f\xc8\x5b\xfc\xe6\xd9\x0f\xfb\xdf\x3f\x3f\x59\x97\xb2\x5e\x3f\x7c\xec\xa9\x64\xc3\x92\xe3\xd0\xab\xcd\x5c\xdc\x38\x61\x42\x95\xae\x09\x38\xdc\x1c\x6b\x54\x1f\x23\x3e\x59\xc8\x49\x25\xb7\x9c\x55\x4c\xed\x5e\xd3\xcb\x57\x52\x24\x45\xa5\x06\x97\x82\x1c\x69\x70\x77\xd6\xcf\x22\xbc\xfc\x6e\x8b\x7c\x7b\x37\xfe\xc7\x62\x3c\xbb\xfc\x60\x9f\x2e\x33\x98\x2c\x64\xc3\x2a\x03\xda\xb1\x5a\x5f\xd9\xc3\x94\x43\x9f\xc4\x54\xdb\x04\x9e\x6c\x3a\xe8\xaa\xa8\x4a\xa2\x83\x74\xf9\xa4\x42\x29\xee\x03\x71\xb8\x66\x68\x53\xd4\x46\xc0\x69\x94\x38\x23\x93\xd5\x5a\x20\x63\x7d\x1f\x58\xb5\xc8\xae\x50\x46\x35\x7b\x02\x55\x32\x0f\x55\x20\x2a\x5f\xb1\x98\x8d\xf4\xe2\xf6\x4d\x2d\x55\x2f\x80\xed\x04\x5a\x01\x22\x15\xcd\x84\xb4\xec\x83\x63\x40\xc7\x89\xb1\x47\x6d\xc0\xea\xc8\x21\x60\x9b\x23\x46\x61\xf4\x0a\x6b\x0c\xb7\x94\xf8\xb0\x3b\x73\x0b\x50\x92\x65\x58\x9a\x0c\x45\x17\xa0\x13\x42\xe6\xbe\x53\x27\xcb\x48\x18\x92\xea\x23\xb7\x69\xad\x95\xd8\xce\x6c\xbe\xce\xbe\x92\x6f\xda\xdb\x7e\xee\x8a\x10\x2b\x3e\x63\xf7\x9b\x04\x7d\x37\xd9\xc1\xb1\x5d\x8a\x10\xcc\xf3\xc8\xef\x36\x5a\xfc\x51\x9b\x44\x42\xc5\xe9\x65\xc6\xa9\xa1\xb0\x0f\x64\x13\x83\x94\x24\x01\xbf\xde\x86\x9e\x43\x88\xba\xbe\x4d\x10\xa2\xb6\x76\xbc\x0a\x97\x6b\xf2\x97\x17\xf3\xbf\xc3\x8b\x59\x54\x6f\xad\xc9\x8f\x67\x3f\x9f\x5d\x25\x47\x6b\xcc\x21\xe2\xec\x50\x87\xc5\x82\x9a\x45\xd4\xc9\x5b\x69\x0c\xe9\xca\x1b\xae\xe0\x01\x2a\x60\x98\x8f\x67\xae\xcd\x4d\xde\xfb\x6c\x5f\x7c\x2f\x8a\x64\x04\xb2\xa2\x3c\x3d\x6d\x85\x94\x27\x8e\x39\xd6\x02\xc5\x6d\x4c\x4b\x44\xab\xe7\xe2\x7a\xef\x8a\xf3\xf6\x48\xde\xcb\x0f\x85\x23\x74\xa3\x57\x3f\xc0\xeb\x28\xbb\x4a\x2b\x5f\x66\xcf\x8c\x54\x6e\xa4\x7d\xe0\x17\xb4\xfe\xf2\xb9\xed\x10\xf8\x8b\x24\x1c\xc3\x59\x96\x60\xdc\x0c\xee\x1b\x91\x2e\x8e\x68\x11\x7e\xb8\x2c\xb3\x49\x36\x5e\xa2\x79\x21\xfe\x1e\x31\xee\x25\x6d\xcc\x4c\x95\xc2\xa2\x63\x18\x40\xea\xeb\x11\x50\x18\x16\x66\x03\xa9\x6e\x13\xa6\x8a\x8f\x21\x96\x7c\x0c\xd4\x83\xa0\xa3\x27\x26\xad\x56\xe8\x74\x2a\x60\xfb\xb8\xe8\x32\x9b\xbe\x2e\xdd\xfe\xf4\x89\xcd\x47\x6c\x12\x67\xd3\xc9\xf6\x16\xbb\xf7\xe9\x53\x0b\xe3\x11\xae\x82\x15\x0d\x57\x64\x06\x6f\xfe\x36\x0c\x56\x74\xec\xd1\xbd\xde\xfe\x60\x30\x80\x48\x92\x9f\x65\x11\x8e\x94\xd7\xd9\xf1\x56\xab\x40\xb1\x12\x33\xfb\x50\xba\xde\xbc\x1c\x5a\x5e\x0c\x40\xa8\x58\x97\xd5\x87\xc4\xcc\xad\x01\x2c\x68\x7d\x53\x2b\x3f\x94\xf7\xd3\xb8\xf2\xec\x53\x80\x78\xbd\xf5\x1a\x9d\xe6\xe2\x71\x96\x2f\xda\x34\xfd\x6e\xeb\x1d\x77\x57\x72\x3c\x59\x83\x72\xff\x2a\xfa\xc7\xb3\xfe\x6f\xd0\x2e\xc7\xdf\xbf\x0f\xf3\x69\xd7\x07\xe4\x8f\x9e\x8f\x56\x69\x02\xc7\x25\x21\x4a\x95\xc1\xef\x17\x61\x8a\xa3\x47\xe6\x84\xcb\x27\x5c\xa0\xd3\x12\x0e\xa3\x17\xcc\xab\x9c\x6f\x93\x91\x0a\x2b\x27\xac\x08\xa3\x67\x2d\xc2\xbc\x8c\xa9\x0a\xf6\x28\x2d\x16\x21\x7e\xee\x91\x44\x9c\xf9\x28\x1a\x17\x15\xa0\x74\x27\xf4\xe3\x8c\xb0\x58\x1f\x19\xb6\x9d\x9c\x8c\x44\xa6\x6c\xf4\x1d\x6a\x7b\xf1\x3c\x9d\x64\x1a\x8a\x01\x47\x7c\x92\x78\x43\x31\x78\x6b\x36\x87\xed\x34\xbc\x44\x2d\x0e\xe3\x94\xfe\x89\x06\x96\x58\x0b\xc2\xfc\x5a\xba\xcd\x74\xe1\xb4\x6c\xc7\xf4\x1b\x3d\xd0\x65\xff\xe3\x14\xc8\x6b\x4f\x32\x36\x58\xfe\xde\x08\x68\xb5\xdb\x20\x16\x40\xa1\xc4\x16\x0a\x7a\x53\x4a\x6d\x39\xfa\xa8\x77\x62\xfe\x38\x04\x3d\x74\xa0\x23\xf4\xa8\xa3\x4d\x38\x02\xa4\xf3\x11\x3b\x1e\xbe\x92\x29\x5d\x47\x9c\x22\x3c\x82\x09\x76\x40\x3f\x2a\xca\x78\xfc\xe1\x5a\x1e\xd7\x1e\x0b\x25\x39\x01\x43\xbf\x8c\xe7\x30\x5b\x96\xec\x6c\x72\x82\x97\x2c\x12\xd0\x30\x7a\xc7\x6f\xc9\xe1\x2a\x27\xf8\x84\x43\xca\x6c\x8e\x91\xbd\x2f\x7d\x3a\xca\xe6\x9b\x82\xad\x90\xa3\x9b\x5e\x50\x93\x88\x07\x0b\x0b\x7a\xef\x40\xee\x17\x12\xba\x60\xd0\x3d\xc8\xcf\xb0\xbd\x74\xd3\x21\x54\xd9\xc5\xcd\xe3\xa6\x6c\x41\x61\x07\xcc\xfb\x23\xe0\x7b\x0a\x0b\x39\x05\x8b\x90\xa1\xfd\x50\x69\x38\x6c\x43\xe3\xfb\xa5\x27\x63\xce\x35\x4e\x0a\x6c\x8c\x1e\x81\xbf\xd7\xdb\x9e\x67\xdc\x72\xea\x5e\x87\xf1\xd4\xdb\x17\xd5\x96\xd1\x9b\xee\xee\x04\x4a\x80\x37\x6c\x2b\x46\x72\x17\xc6\x82\xbe\x0a\x68\x8b\xd8\xc8\xf6\xba\x23\xe0\x27\xd9\x34\x93\xcc\x44\x8d\x65\x98\xb5\x64\x34\x67\x68\x82\xcc\xc6\x60\x63\xe2\x3f\x81\xe4\x71\xe5\xe1\xdc\xbc\xc8\xcb\x96\xa5\x0b\x00\x68\x1d\xe0\xa1\x85\x96\x1d\x15\x1a\xa7\xd3\xaa\x52\x2d\x26\x24\xe7\x1a\x77\x77\x36\xc7\x21\xf9\xa3\xf5\x77\x9c\xee\xae\xbb\x81\xb7\x48\x60\x58\x40\x0f\x07\xd6\x11\x24\x0f\x86\xf5\xb4\xf7\xae\x02\xca\x72\xe3\x31\xe8\x3b\x07\x64\x59\x40\x23\x28\x91\x3f\x81\x24\xee\x3c\x8b\x60\x42\xf8\xab\x64\xec\xd0\xed\x3b\x99\x0a\x64\xaa\xbd\xe2\xc2\xf7\x34\xa5\x67\x28\xc9\x4e\x40\x0c\x92\x58\xa9\x7b\x14\x97\x70\x8e\x71\x2b\xa8\x0d\x9a\xb7\x87\xce\x05\x56\x79\xfc\x9c\xbc\xcf\x52\x63\xa5\x89\x5a\xba\xdd\xdc\x56\x3b\x2a\xc6\x8a\x17\x01\xd6\xde\x6d\x2f\xf1\x92\xff\x24\x3d\x85\xf7\xdf\x5d\x77\x12\x2a\xf4\x4f\xd2\x3f\x8b\x2c\x89\xc7\xd7\xee\x1e\x6a\xda\x35\xa4\xbc\xaf\xd6\x39\x72\xb5\x6a\x4a\xb7\x46\x17\xeb\x40\xf5\x7e\x0e\xc0\x3c\x0b\x95\x96\xce\x9d\xaa\x3f\x70\x1f\xf5\xe3\xba\xfa\x34\x46\xa0\x39\x59\x5b\x31\x3b\xd5\x48\xad\x39\x2a\x9f\xff\xf8\x69\x74\xb3\xc5\xab\xd9\x32\x43\x6a\xe8\x3b\x52\xa2\xf1\x35\x38\x3f\xaa\xd8\x89\xc9\x8c\x14\x37\x5f\xd6\x17\x59\x98\xc5\x3a\x7f\x4e\xc3\xb6\xf2\xe3\xf6\x4e\xda\x5a\x01\xc4\x2c\x9a\x86\x4e\x12\x63\x98\x96\x30\xdf\x13\xe6\x0f\x76\xcc\xac\xb2\x5a\x44\x63\xee\xa6\xc3\xdd\x80\xfe\x3d\xa0\xff\xd2\xe4\x98\xde\xb1\x63\x5d\x6a\xa2\x82\x7d\xa0\x61\x0d\xf8\xe5\xc2\x84\x26\x77\x57\x0a\x9b\x70\xc5\x9b\x52\x00\xfb\x7d\x33\x2f\xe3\x44\x4a\x67\x50\x5e\x6a\x06\x55\x6e\x6b\x35\x69\x47\xc3\x26\x93\xbf\x1a\xb7\x97\xbd\x56\xbf\xb1\xe2\x8d\x4d\x41\xd9\x95\x3d\x07\xc7\x9d\xe4\x30\x8c\x3c\x9a\x31\x5f\xa1\x3b\xaf\xc7\xc2\x97\x20\xc9\x0e\xa5\x53\xb4\xfc\xc5\x23\x5c\xc9\x71\x87\x7f\x8e\xf4\xc9\x3e\x18\xfa\xaf\x48\x3a\x0e\x77\xd3\xc6\x45\x1b\x9d\xf5\x2f\xa1\xbe\xfe\xf5\x9d\x64\xad\x14\xa9\xf3\x3d\xc5\xf1\xc2\xbb\xc2\x84\x5e\x6b\x8a\xe0\xee\xe8\xee\x34\x8b\xbe\x58\x5f\x93\x6f\x7d\xa1\x8e\xae\xfe\x98\x54\xf2\x2b\xda\x03\x9f\xad\x8b\x3f\x54\x88\xeb\x9d\xf6\xef\x87\xcb\x2f\xd5\xb9\x15\x5f\x92\x8a\xfd\x01\x5e\xef\xfd\xc4\x24\xc2\xe7\xea\x5d\x7e\x0e\xf9\x52\xb3\x58\xfa\xe0\x17\xea\xed\x1a\x5f\x94\x8a\x7f\x2e\x77\xc8\x36\xdd\x6e\x12\x8c\xd0\x9d\x29\x1c\x27\x4d\xb6\x25\xf7\xfe\x63\xdb\x06\x2d\xde\xce\xad\xd5\x26\xd3\x35\xf1\x39\xf5\x27\xc1\x93\x02\x2f\x96\xd3\xbd\x34\xbc\x8c\xa7\xa1\x84\x75\xa9\x68\x88\x96\xa1\x11\x53\xd1\x36\x61\x58\xd9\x2a\xfb\xba\xbf\x99\xb1\x52\x2e\x12\x07\x17\x03\xce\xad\x88\xcb\x21\xa1\xc5\x87\x1a\x2b\xfe\x01\xe0\xbc\x96\xa3\x6d\x29\x65\xd0\x7f\xdf\xc3\x64\x61\x54\xa9\x06\x92\xa6\xad\xf6\x84\x72\x7f\x43\xdb\xad\x59\xe4\xe1\xae\x8a\x94\x0b\x3d\x02\x43\xff\x1c\xa2\xd6\x95\xd9\xe6\xf6\x73\xf9\x3f\x4a\x72\x70\xa9\x9a\xcb\xbb\x12\x62\xea\x4f\x4f\xdf\x9e\x3f\x7f\xfd\xca\xc1\x7a\xb0\x51\xc7\x9b\x8d\x7a\xce\x0e\xdf\xd4\xfd\x28\xc1\xe6\x6e\xdb\x42\xf5\x43\xd2\x1c\x1d\x55\xa0\xc7\x9a\xdd\x60\xa0\xec\x6e\x04\x01\x2b\xfe\x7b\xe2\x80\xd4\xdd\xa2\x43\x77\xd8\xff\x32\x14\xef\x57\x1c\x00\x3d\x8d\xa1\x26\x8a\xef\xae\xc6\xe8\xfb\xb0\x98\xc5\x67\x59\xbe\xf0\x5e\xa0\xfe\xf8\xea\xa3\xe4\x5a\xfa\x0e\xfb\x54\x9d\x81\x9e\x40\x18\x49\xe4\x05\xb7\x64\xb1\xbd\x7d\xfa\xe6\xf5\xfb\xe7\xe7\xe7\x3f\x3e\xdd\xe9\x9a\x7b\x93\x67\x97\x71\x04\xbd\x67\xb4\xd1\x5f\x7c\x40\xcd\x87\x8f\x2a\x76\x27\xfd\xd9\x43\xc7\xb3\xe6\x93\x07\xd6\x27\xab\xb4\xba\x9a\x5a\x2c\x23\x63\xf3\x3f\x83\xbe\x2a\x95\x3d\x1c\x92\xf6\x28\xf4\xcc\x72\x5c\x09\x33\x5b\x08\xad\x11\x4f\xe9\xfb\xe8\xbb\xf7\x45\x7a\x89\xa3\x22\x9e\x77\x4e\xbf\x65\xab\xe1\x5a\xbd\x57\x9d\xec\xaa\xf3\xa7\x99\xd1\xa5\xae\xa5\xa5\x77\xd4\x9c\x09\x84\xd6\x0e\xaf\x38\x66\x1c\xc7\x58\x7b\x72\xf2\x06\x37\xbb\x50\x83\x0d\xf1\x8f\x9d\x8b\x46\xec\xf7\xc1\xbe\xd3\x04\x6e\x4e\xbc\x7d\xab\x87\xfc\x73\x18\x33\x77\xa0\x88\x9f\x80\x5e\xdf\x3a\xbd\x24\x9a\x0c\x95\x53\x9c\x80\xa8\xc8\x3d\x34\x12\xa6\x30\xcb\x0d\xa3\x64\xca\xe1\x2e\xe0\xb7\xe5\x29\xcb\x31\x2b\xaa\xad\xdf\x1b\x1c\x62\x94\x20\xaa\x46\x47\x5d\xed\xe0\x62\xe7\x7f\xd8\x4e\x89\xb4\x3a\x2b\x48\x9c\x8e\x84\xdf\xff\x3f\x1f\xf7\xc7\x77\xdb\x6d\xcf\xb7\x96\xff\x8f\xe7\xef\xde\x9f\x7f\xff\x58\x88\xa5\x76\xfb\x7f\x3e\xee\x43\xcb\xf7\x3e\x8f\xd3\x66\xf3\x8b\x3d\xd0\x5f\x8f\x19\x42\x90\xf6\x45\xfa\x45\x5c\xb8\x33\x30\x08\x14\x3f\x89\x20\x24\x17\x8a\x36\xdd\x77\x05\x40\xbf\x06\x24\x32\x0e\xd1\xff\xc3\xdf\x58\x02\xc7\x38\x5c\xc4\x25\x0e\xa1\xf7\x81\x9f\x64\x57\x30\x1f\x87\x05\x14\x0c\xeb\xcb\x0b\x16\xa6\xf8\x92\x64\xa2\x14\xa8\x56\x18\x16\xa4\xcd\x20\x4c\x60\x38\x6e\x94\xa9\x67\x8f\x05\x55\x02\x86\x0b\x11\x30\x6c\xa0\xa4\x2a\x95\x09\x40\xbe\x11\xcd\x7a\xe2\xa0\x59\xd7\x9a\x9a\x70\xc2\xf5\xf0\x56\x11\xae\x27\x12\x80\xde\x0a\xc4\x83\x5c\x0a\xe9\xcd\x8c\x56\x2c\x07\xc3\x74\x04\xc6\x83\x6d\xc0\x39\xc0\x7c\x70\xb3\x02\x72\x02\xcb\xd8\x91\xc0\x32\x1f\xc2\xd1\x60\x4c\x13\x58\xe6\x6a\x02\x8b\xfc\x13\xcc\xf5\x04\x96\xb9\x33\x81\x65\xfe\xe9\xd3\x5c\x4f\x60\x99\xab\x09\x2c\xf3\xc1\xb2\x4e\x02\x0b\x8e\x22\x66\x71\xe0\xad\x18\x64\x00\x06\x9f\x3e\xc1\x55\x00\xe6\x01\x88\xa4\x04\x96\xb9\x96\x5e\x32\xa7\x09\x2c\xca\xf5\x87\x73\x73\x6c\x22\x9e\xc0\x32\xaf\x4e\x60\xd1\xbf\x60\x9f\x5e\xa8\x8a\x73\xd4\x3c\x92\xc0\x12\x0e\xe6\x20\x27\x09\x53\xe8\xce\x12\x8c\x41\x04\xe6\x52\xb0\x76\x51\x19\xac\x9d\x80\x62\x7d\xb0\x36\xda\x3e\x72\x24\x74\x88\xd8\xb8\x2d\xd9\xaa\x3f\x2d\xdf\x5c\xbc\x7c\xf3\xed\x8b\xad\x10\x46\x94\x4c\x1a\xad\xa1\xfe\x9a\x4c\x1a\x3b\x6b\x33\xbb\x6b\xe5\xd7\x96\xd4\xca\x13\xd0\xd7\xce\x40\xfc\x0d\x23\x67\xd4\xb9\x57\x5a\x4a\x21\x1c\x4f\x75\xf3\x4e\x5d\x36\x49\x47\xe1\x9c\x1e\x49\x0b\xba\xea\x0b\xb5\xe2\x31\xef\x3b\x65\x1b\x0f\xd3\x2c\xbd\x9e\x67\x4b\xaa\xe5\x53\x30\x6f\xec\xf8\x43\xe7\x8f\x91\xa9\xfe\x68\x26\xe7\xf5\xa9\x2a\xee\xad\x71\x9b\x44\x72\xeb\xec\xff\x6a\x99\x8a\xf1\xe5\x75\x7b\x9c\x45\x70\x1e\x13\xd8\x49\x39\x61\x42\xbd\x57\xf1\xd6\x1f\x13\xa0\xff\xd7\x2b\x37\x3b\x8f\x35\x5b\x04\x48\xe5\x2c\xcb\x38\x29\xf6\xa2\x6c\xae\x50\xce\xe8\x3d\x01\x52\xa2\x14\xfc\x85\x9d\xfb\x57\xd6\xe9\x2d\xcf\x3a\x45\x6a\xf1\x78\xd0\xca\x1d\x6a\x71\x0e\x17\x59\x11\x97\x59\x7e\xbd\x97\xc5\xd1\xb8\xbd\x20\x16\xb0\xdc\x0f\x38\x78\x9f\x83\x9d\xa8\x96\xfe\x2c\xc1\xf8\x49\x84\x39\x0c\xba\x0f\x7d\xdc\x04\xf4\x43\xe5\x33\x30\x3f\xa0\x90\xa5\x48\x3f\x28\x5b\x4a\x3d\x82\x21\xb9\x94\x41\xab\x0b\xd2\xce\x24\xcf\xe6\x6f\xf2\x6c\x1e\x17\x30\x20\x94\x2b\xa8\x2e\x9d\x49\x9c\x46\x67\x59\x04\xbf\xbb\xfe\xf1\xed\x8b\x96\xc8\xf7\x2b\xf2\x71\x60\x12\x0a\x19\xd4\x30\x34\xeb\xfe\x14\x0e\x1e\xa8\x24\x06\x30\x00\x84\x5d\x42\xdc\x61\x5c\x35\xab\x60\x25\x3d\x76\x63\xe1\xab\x92\xd3\x0e\xc9\x83\x32\x22\x1f\x7f\x59\x65\x32\x12\x1f\x58\x57\x24\x7e\x4e\x2d\x91\xbc\xaa\x16\x28\x51\x34\xb1\x51\xed\xc8\xd7\x2c\xb4\x4f\x6b\x87\x0d\xf7\xb9\x63\x20\x39\x5d\x93\x0d\x36\x90\x4c\x9c\x2d\xc0\xfd\x5c\xc0\x81\x78\xee\x0d\xc3\x6d\xcb\x55\x40\xfc\xc6\x6b\x77\x2c\xd4\xe8\xf6\x38\x4b\x12\xe8\x50\x9c\x39\xa9\x8e\x78\x46\x26\x47\xd3\xee\xd9\x1e\x4f\xc2\xeb\x6c\x59\x16\x7b\x0b\x98\x8f\x61\x5a\x86\x53\x88\xee\x2e\xe7\xe9\x1a\xc2\x1a\xb2\x93\xed\x4a\x53\x0f\xab\x35\xf5\x22\x5c\xa4\xf7\xc7\x3f\x9d\xd8\x35\x75\x2c\xf0\x7d\xe0\xcf\x33\x9c\x19\x49\xc3\x76\x69\x5f\xf9\x63\x98\x24\x6a\xe6\xa3\x2b\x93\x51\x45\xe5\x65\x08\xb3\xda\x18\x78\xda\xef\x76\x31\xce\xb3\x24\xc1\x49\x51\x07\xa0\x7f\x44\x95\xd0\x7d\x70\x28\x74\xdb\x13\xa2\x9c\xc7\xd3\x59\x79\xea\x63\x38\xe3\xfe\x31\xbf\x42\xcc\x4a\x4a\xa0\xe7\x11\xe8\x91\xd2\xee\x53\x48\x99\x63\x33\xaf\xa7\x77\x02\x8e\x5c\x61\x6e\x72\xbe\x43\xbf\x4b\x33\x01\xfb\x47\x23\xe0\x5f\xc6\x79\xb9\x0c\x93\x8d\x83\xce\x55\x3b\x5d\xbf\x47\x42\x62\x0a\x6c\xee\x31\xe0\x96\x47\x80\xdd\x33\x60\x72\x64\x25\xfd\x84\xcd\xca\x34\x2c\xe3\x4b\x48\x3b\x14\x2d\x22\xc9\xfc\x4c\x94\x7d\xe0\x3f\x62\x26\x49\xf2\x4d\xff\x11\xed\xfe\x04\x4e\x4a\xe9\x67\x99\x2d\xc4\xaf\x33\x9e\xc9\x3a\x4e\x62\x98\x96\xe7\xf1\xef\xf0\x8c\x5b\xcf\xd1\xf1\x85\xf4\x36\xea\x36\xf4\xef\x3e\xfd\xf7\x60\x64\x6d\x93\x52\xa8\x7e\x8e\x91\x1f\xb4\x7c\x2d\x6d\x4c\xcd\x6d\x09\xcf\xc0\xa7\x1a\x9a\x4e\x78\x20\x1f\x93\xf6\xcd\x1f\x87\xa0\xaf\x23\xb1\xd5\x32\xe0\x2a\x6e\x1d\x3f\x4b\x79\x28\x86\xb5\x99\xe3\x0f\xb2\xbd\x14\x87\x30\xd0\x40\x86\xa2\xbc\xa6\x21\x1b\xaa\x7f\xa8\x4f\x6b\x77\x62\xc7\x6a\xbe\xcf\x6f\xe3\xbe\x22\x11\xf6\x14\x58\x4e\x44\xdc\x63\xdb\x67\x12\xa7\x1f\xf0\x64\x31\xb1\x98\x9c\x51\x32\xd7\x31\x4c\xa2\x2d\xc9\xa8\xe5\x03\x3c\x49\x7c\x56\xcf\xeb\x78\x81\xea\x35\xe6\xfd\x42\x83\xbb\x47\x23\x7e\x2c\x5d\xef\x09\xac\x51\xf9\x08\x96\x61\x9c\xd4\x60\x1f\x36\x6a\x4f\xde\xfc\x7a\xb5\x27\xae\x2e\xea\xb8\xe3\x66\x02\xe0\xce\xe1\xc2\xe2\xbe\xbd\xc8\x16\xd9\x25\xcc\x49\x40\x12\x2e\x0e\x7e\x5c\x84\x69\x04\x23\x07\x4a\xbe\x55\x36\xf6\xee\x5b\xda\x26\x79\x8e\x01\x36\x15\x54\xae\x75\x0e\xd7\x69\x2d\x65\xa4\xf1\xa9\x37\xf4\xc6\x19\xa3\x25\xcc\x28\x95\x2e\xd3\xda\x83\x68\xfd\xa8\xcd\x6f\x59\x9f\x6c\xd8\xee\x83\xde\x9e\xde\x9e\x08\xbe\x23\xc7\x90\xf6\x8e\xd9\x90\x1e\x4a\x19\x7d\x5d\xc9\x0b\x47\xe6\x87\x91\x0d\x0f\x94\xd4\xf9\x2e\x10\x65\x60\xf2\x01\xfe\x90\xf4\xab\x59\xf6\x75\xb5\xa5\x4c\x26\xb4\x3e\xc4\xa1\x76\x8b\x24\xbc\x3e\xf5\xd2\x2c\x85\x7f\xdf\x48\xf2\x0b\xfc\xb5\x2f\x25\xf8\x2d\x02\x5e\xe9\x7f\x22\xce\xa9\x9b\x8d\x8b\xed\x66\xf2\xff\x10\x43\x10\xfc\xb1\xe4\xff\xbe\xa0\x65\xb9\xed\xc2\xfe\x73\x54\x75\x67\x92\xdd\x26\xce\x5d\x32\xf8\xe0\xb6\x48\x5e\xa5\x47\xbf\x80\x98\xdd\x07\x2c\x84\x47\x33\x7e\x9b\x47\x03\xbb\xac\x3c\xa2\x17\x91\xac\x24\x64\x8e\x64\xd3\xc0\x8f\x6d\x20\x50\x4c\x79\xcd\x50\x4f\x7a\xc6\x17\x94\x6f\x6e\x2c\x65\x2f\x96\x65\x49\x9d\x2f\xa6\x44\xea\xa3\x7f\x49\x18\x45\xa4\xca\xae\x4a\x61\x67\x8b\xe7\xd0\x77\x12\x15\x6b\x71\xc4\x70\xb6\xa4\xea\xd8\xa0\x19\x44\xb5\x36\x4a\x01\xfe\x29\x86\x57\x3a\x64\x85\x63\x04\xb5\x1e\x57\x4e\x63\x1e\x5a\x73\x8d\x53\xfc\xf1\xc7\x13\x58\x14\x6b\x63\xfa\x0d\x6f\x8c\xfe\x70\xbf\x41\xe0\xc3\x5a\xa5\x41\x12\x5f\x15\xf0\x94\x25\x9c\x17\x3c\x26\x01\x07\x3f\x68\xc1\x0d\x69\x56\xb6\x71\x68\x03\x09\x5e\xa0\x96\x04\xb1\x73\xf9\x71\x41\x9e\xd2\x3c\x44\xc4\x6c\x42\x85\x9e\x3d\xbc\x81\x06\xa0\x61\x78\xeb\x29\xfe\x68\x8a\x34\x56\x66\xca\xc0\xd0\x08\x58\x87\x25\xa1\x15\x69\xfb\x2a\x4e\xa3\xec\xca\x07\xfe\x7b\x7a\x02\x3e\x27\x07\xe0\xf7\xe4\x38\xfa\x82\x9c\x7f\xe9\xaf\x77\xf8\xf8\xfb\x1e\x55\x18\xb7\x10\x5f\xc4\xb8\x50\xd7\x09\x94\xe3\x41\xa6\xcb\x38\x6a\xe2\xcb\xb2\x1a\xa4\x38\x6b\x6f\x32\x48\x99\x79\x47\xd8\xce\x30\x99\x6b\x58\x3e\x2f\xe1\xfc\x1c\x7d\x1e\x7b\xbc\x8a\x4a\x8f\x57\x08\xb8\xd1\x98\xd1\xf8\xe6\x82\xc6\x77\x1d\x2d\xae\x44\xf3\x4b\x6d\x2e\x87\xdd\x2e\x40\x7d\xf1\x3d\xf9\x79\xdc\x05\xb4\x7f\xb1\x59\x0e\x90\xee\x39\xe5\xc6\x91\xa6\x2c\xf6\xd4\x5e\x36\x18\xf6\xba\xdd\x11\xb9\x84\xfa\x55\x58\x9c\xd1\xaf\x16\xe1\xa0\x01\x51\x1c\x3d\xc7\x50\xe6\x2e\x3e\x7b\xf7\x77\xbe\xa1\xc8\xd8\xa2\x60\x7a\xa1\xe5\xff\x7f\x94\xdf\x05\x7d\x29\x10\x66\x9e\x01\x23\x15\xc7\x2d\xd4\xa8\xe3\x89\x6d\x46\x21\x8f\x97\x39\x75\xf1\x07\x2e\x63\x78\xb5\xc8\xf2\xb2\x15\xac\x46\x9b\xb2\xe0\x93\x3b\xa8\xff\x5f\x60\x5b\x23\xae\xd2\x10\xaf\xa6\x36\xb1\x3e\xfa\xa3\x41\x0a\xaf\x3c\x3e\x79\x5a\x3a\x1d\x3e\x5e\xaa\x94\x5a\xd8\x37\x79\xf5\x99\xc1\xd2\x72\x87\x8f\xba\x1f\x08\xc2\x79\x74\xef\x8e\xa5\x16\xfa\x54\x1d\xf0\xf6\x71\xa2\xe4\x44\xee\x2f\xd1\x48\xe6\x1a\x83\x1d\x3a\xb3\x08\xe1\x4d\x2b\xfd\x76\xe0\xff\xfd\xf7\x36\x5e\x26\xa7\x5e\xcf\x0f\x40\xba\x5a\x01\xbc\x0c\x35\x02\xe8\x16\x33\x07\x4a\x66\x56\xce\xde\xc3\xc6\xf3\xae\x32\x9e\x0f\x6f\x56\xa7\x37\x74\x8a\xeb\x0d\xa7\x85\x05\xab\x55\x20\x31\x40\x93\x21\x3f\x95\x1d\x75\x26\xe9\xbe\x70\xb6\x04\x7c\x82\xfd\x6d\x92\x65\x25\xcc\x87\x79\x96\xc0\x01\x0b\x0b\x24\x51\x81\x7f\x0b\xee\xc4\x13\xd4\x41\x0c\x50\xbe\x07\xf2\x81\x32\x5f\x51\xa9\xdf\x65\xcb\x34\x8a\xd3\xe9\x19\xb6\x89\xbd\x85\xe3\xb2\x15\x74\xca\x6c\xf1\x6d\xd9\x21\x66\x32\x32\x4a\xdf\xa6\x20\x1c\x40\xc6\x31\x1d\xa7\x29\xcc\xc9\x8d\x76\x7e\x87\xb4\x1c\x96\xa2\xa7\x5e\x86\xe5\xac\x33\x0f\x3f\xb6\xba\x20\x64\x6e\x98\xe5\x22\x0a\x4b\x88\x86\x90\xfb\x77\xc8\xa5\x73\xdc\x67\x6f\xb2\x22\x26\x7d\xbb\x5a\x01\xbc\xdd\x2b\xbd\x21\x03\x3a\xa2\xf9\x8f\x9f\x78\x16\xe7\x45\xf9\x38\x1d\xcf\xb2\xbc\x05\x81\xdf\xd1\x2d\xc2\x0f\xbc\x65\xe2\x3d\xf0\x92\xd8\x0f\x56\xc0\x42\xb2\x3d\xb8\x59\x05\x37\xa8\x8f\x58\xbb\xe8\x1c\xb9\x77\x0f\xde\x1d\x18\x1d\xcf\x44\x7f\x10\xdc\xe8\x3c\xfe\x7c\x57\x58\x84\x79\x01\x9f\xa7\x65\x0b\xb2\x66\x7f\x93\x67\x57\x03\xa9\xda\x59\x01\x8b\xb2\x85\x4e\x72\x80\x7d\x56\x7a\xb2\x83\x67\x60\xe7\xf7\xe7\x68\x5e\x0e\x7a\x9c\x0b\x80\x17\x50\xc4\x17\x49\x9c\x4e\x79\x95\x89\x12\x1c\xdc\x49\x2b\xc7\x32\x55\xc6\xf2\x81\x21\xa6\x2a\x67\x51\x55\xc9\x0f\x51\xc9\x61\x51\xbc\x88\x8b\x12\x7b\xd7\xfc\xf0\x22\xbb\x84\x7e\x70\x2a\xdf\xa0\x8e\x21\x76\x6f\x85\x74\xa7\x9b\x75\x4d\x72\xbf\x0f\x9c\xdd\x4f\x9c\xb0\x8e\xde\xc4\x9e\x1e\x9d\x8e\xbc\x58\xeb\xea\x99\x87\xd7\x17\xb0\x1d\xa7\x8c\x9f\xc8\xe6\xe5\xd1\x9f\xa9\x7c\xff\x8f\x19\xa3\x81\x4e\x7b\x6d\x8c\x6d\x69\x73\x76\x55\xf8\xa3\xbe\x18\x25\xc6\xab\xe2\xf9\x38\x7d\x7e\xf9\xad\xdd\x17\x15\x2e\xe2\x9a\xce\x26\x2b\xad\x14\x39\x12\xc8\x48\x8e\xc7\xe2\x54\x50\xeb\xf4\xab\x1f\x7b\xd7\x99\x06\x0c\x9f\x97\x99\xbf\x41\xce\xe4\x7c\x60\x4c\xc0\x2c\xf5\x7e\x3b\x82\x8b\x1c\x8e\xc3\x52\x1c\xb0\x8c\xa3\x49\xdf\x34\xbb\xb1\x43\x0b\x09\x3b\x9f\xc4\x68\x27\x36\x40\xa4\x46\x9c\x7b\xc6\x46\x5e\x40\xdf\x25\x94\xa7\x9a\x75\xcf\x08\xc0\x5b\x63\x5c\x41\xd2\x29\xcf\xea\x58\x57\xec\x31\x6f\x3a\x2f\x64\x0d\x64\x7d\x7e\x52\xe6\xc9\x2a\x95\x36\xa9\x7a\x4c\xa3\xce\x30\xc3\xea\xea\xd6\x4a\xd9\xd6\x0f\x86\x6b\x0f\x80\x3d\x66\x02\x95\xd0\x27\x99\x7d\x87\x72\x12\x59\x8c\xa3\x6b\x46\x6a\xce\x72\x65\x9b\xf9\xd4\x2a\x1a\xbe\x16\xef\xc8\x16\x59\xe8\xee\xa8\x1a\xd4\x9e\x71\x71\x26\xcf\x79\x41\xe7\xb9\xa0\xfa\x0a\x4e\xfd\x08\x8b\xa2\x3d\x0f\x17\xf2\x11\x55\xa1\x46\x92\x7b\x69\x43\x8a\x4f\x5d\xfe\x2a\x71\x8a\x79\xe5\xa9\x2d\xa5\x1b\x26\xbf\xc3\xce\x6e\xa5\x38\xbb\x49\x67\xb3\x75\xc7\x38\xb5\x4b\x4e\xef\xf6\x84\x1a\x4b\xd7\xb8\xa2\xb9\x91\xa2\xf2\x65\xda\x49\xe1\xc7\x92\xa0\x6f\xc7\x93\xd6\x5d\xbc\x4b\xc7\x05\x8d\x46\x81\x91\xd0\x78\x4d\xf5\x24\x89\x4f\xb3\x34\xb9\x6e\x8f\x67\x71\x12\x79\x0f\x3c\xaa\xa8\x90\x09\x76\x3a\x41\x6a\x20\xb9\xf7\x37\x00\x83\x3b\xba\x7a\xa0\x8f\xa1\x60\xf6\x44\x5a\xb8\x45\x33\x14\x55\xe1\x1a\xaf\xca\x21\x1a\x47\xe8\xc0\x60\x56\xf4\x3f\xc3\x49\x96\x0f\xfe\xf6\xcd\x4d\xb9\xfa\xdb\xe8\x3f\x01\xd3\xb7\x95\x13\x21\xa9\x3b\xaa\xfa\xc8\x07\x69\x67\x11\xe6\x30\x65\x67\xce\x00\x84\x16\x5d\xb1\x23\x89\x78\x90\x63\xad\x1e\x6a\x1a\x6b\x70\x93\x53\x65\x87\x3a\x28\x06\x64\x4b\xf6\xf9\xd1\x2a\xef\x64\x93\x49\x01\x99\x3a\xdf\xbf\x13\xd2\x17\xe6\xe1\x47\x72\x6d\xc0\xaf\xc4\x29\xbd\x02\xbf\xf5\x17\x1f\x7d\xac\xaf\x79\xfa\x07\xb0\x2c\x34\x0b\x51\x2f\xf3\x92\xfc\xae\xaf\xab\x5e\x79\x2d\x9d\x63\xef\x76\x85\xa6\x7f\xbf\x1f\x3e\xee\x4d\xe0\x7c\x1d\xdb\x83\x91\x16\x8b\xb9\xe2\x24\x98\x70\x77\xf0\xfa\x89\x90\x22\x43\x5d\x1e\x33\x7f\x0b\x0d\x5e\x97\x69\x09\x55\x0b\x69\x4f\xd8\x54\x19\x1a\x02\xcd\x50\x1b\xc9\xd9\x56\x78\xb4\x4c\xcb\xf1\xa8\x2a\xb7\x97\x17\xba\x5f\xdf\x72\x4f\x05\xfb\xe1\x7a\x50\x42\xdd\x80\xe8\x16\xcd\x69\x86\x8d\x69\xd8\x3e\xd8\x8c\xc7\xc0\x98\x57\x5f\x2d\xe8\x1b\xd7\xe4\x96\x4c\xed\xd7\xf3\xfe\xf1\xf9\xfd\xef\x7f\x76\x70\x20\xaa\xb3\x97\x4f\x74\x1c\x74\x4d\x13\x5f\xf1\x04\x5b\x97\x97\xe1\xd6\x33\x8e\xd0\xee\x1a\x87\x84\xff\x35\x81\xd1\x05\xe5\x18\xef\x81\x21\xb7\xd5\x4b\x61\x58\xe4\x06\xd5\x7c\x69\x3c\x56\x5f\xa6\x4b\xe4\x19\x9a\xbc\x66\xd9\x02\xa6\x4f\x2f\x2d\x34\x77\xc4\x13\xc4\x0b\x65\x4b\x45\xd7\x85\xd9\xa3\xfb\xe2\x51\xd2\x7e\x39\x9e\xc0\x4e\x55\xab\x92\x80\x69\x29\x15\x80\x24\xf1\x03\x19\x0e\x40\x75\xa3\xfb\xd2\x9c\x25\x4e\x37\x69\x3c\x84\x5b\x79\xa4\x46\xed\x90\xb7\xa8\xd0\x30\xf2\x3a\xe8\xed\x42\xfa\xa6\x99\xae\x5a\x27\x3d\x03\x27\x18\xe2\xa1\xa3\xa4\x07\xdb\x64\x65\x88\x25\xf1\x95\x57\x65\x09\xe7\xb7\x65\x69\x1e\x76\x17\x27\xe7\xfd\xf0\x62\xab\x84\x28\x12\x3c\x20\x2d\xbc\x34\x4b\x61\x65\x26\xd4\x3a\x82\xe5\x5d\x72\x2c\x6b\x7d\xfe\x75\xc7\x9e\x2f\x89\xdb\x32\x01\xde\xfd\xf0\x6d\xef\xfb\x8b\xec\xdf\xbb\x9d\x00\xf2\xca\x57\x66\x81\x3c\xf2\x9f\x83\x50\xdb\xd6\xc9\x5f\x6f\xc4\xb3\x28\x4c\xda\x51\x1c\x26\xd9\x74\x9d\x6d\x0b\xf8\x61\xaf\x77\x4d\x1f\xb6\xe5\x18\xed\x6a\x3e\xe4\xd5\xf3\xe1\xff\x3d\xfb\xf5\x7a\x9c\xff\xee\x20\xab\x41\xa2\xd8\x6a\xec\x02\xfe\x23\x7c\xcf\x98\x1e\x66\x2c\x80\xb4\x49\x49\xfb\xb1\x1a\x2c\x20\x69\x8f\x35\xad\x5a\x32\xe5\x05\xea\x5f\xa4\x18\xab\x48\x16\x24\xcc\x24\x0a\x93\x8d\xec\x3b\x76\x04\x39\x3d\x1b\x54\x1e\x71\xb6\x24\xf0\xf6\x35\x8b\xa3\x08\xa3\x39\x94\xf9\x12\x4a\xb6\x0f\x37\x03\x73\x95\x65\x4b\x68\xe7\xb6\xb7\xd0\xfe\x5d\xc7\x24\x66\x0f\x78\xf1\xcb\xf0\x82\x05\xd2\xb7\x7b\xec\x22\x66\xfa\x90\x66\x28\x6a\x10\xc4\x6c\x1f\x36\x2e\x31\x67\x28\x8d\xdc\x3f\x6d\x3a\x18\x0a\x0f\xa6\xe8\xba\xde\xa1\xac\xb4\x09\x48\x38\x4a\x1c\x57\x11\xed\xa5\xb5\x87\x95\x4c\x31\xb4\x9c\x61\x3c\xbe\x99\x84\x6b\xd6\xb9\x22\x43\x57\x2d\x45\x0a\x01\x59\xd7\x7d\x07\x6a\x43\xfd\x33\xa4\x23\x7a\x52\x4f\xb8\x63\x4a\x8c\x2f\x9b\x91\x45\x3b\x8e\x81\x73\x01\xd9\xa9\x89\xbf\xfb\x0e\x14\x13\xd2\x52\x9b\x8e\x8c\x26\x2e\x7e\xd4\xa5\x19\x77\x47\x02\x0a\x45\xc4\xde\xf4\xf4\x1c\x60\xb9\x56\x35\xc1\x96\x9c\x1d\xb7\x7e\x0a\xd3\xc4\xe9\xaa\x21\x59\xd3\xef\x17\x8c\x05\xe6\xaf\x5e\xd7\x7a\x9d\x78\x0e\x1d\x1d\x2f\xdd\xdc\xa8\xeb\xd7\x44\x28\x1e\xb8\x04\xb2\xdc\x15\x9b\x06\x19\xfe\x79\x07\xcf\x7a\xd9\x72\xd1\xb8\xd4\x18\xf7\xbf\x86\x81\xdd\x6e\x30\xbf\x8a\x93\xa4\x1d\x11\xd3\xb0\x30\x99\x6b\xe1\x5b\xcb\x34\xfe\x6d\x09\xdb\x71\xb4\x81\x35\xdd\xd0\xf9\x14\xf5\x33\xac\x54\x3f\xf3\x66\xf6\x74\x6a\x7e\x90\x1d\xb0\x2b\x90\xa5\x68\x4e\xa8\xd7\x2a\xcd\xe8\xc4\x2c\x8c\x2b\xac\xc5\xe4\x40\xea\xf1\x26\x37\x3b\x59\xda\xf2\xc9\xbe\xd5\x0a\x44\x56\x2b\x4e\xd9\x64\x51\x44\x70\x15\x98\xef\x14\xb3\xec\x4a\x79\x07\x55\xd0\xf2\x0a\xba\x4c\x03\x96\xe8\xdb\xe8\xcd\x16\x0e\x42\x2a\x8c\x9a\x2b\x15\xef\x44\x2c\x1d\x75\x05\xf4\xe6\xdb\x0a\x34\xfa\x4d\x7e\x08\xb5\xb1\x15\xe8\x46\xe5\xb0\xa6\xba\x9f\x84\xd7\x36\x36\xe8\xaf\x73\xba\x3b\xff\xc7\x0f\xc5\xbf\xce\x7f\x3b\xac\x3c\xdd\xad\x07\x39\x91\x5a\x56\x75\xac\xe7\xaa\x77\x9b\x81\xc7\x69\x22\x77\xbe\x4c\xca\x78\x91\x40\x49\x17\x67\x30\x8d\x55\xd6\x80\xdd\x9d\x0e\xf5\x11\xfa\x8a\x47\x43\x2d\xde\xfd\xb6\xcc\x98\xf2\x49\xff\xdf\xdf\x5d\x7e\xff\xca\x3e\x63\x44\x0b\x30\x01\x69\x2c\x1f\x00\x1b\x80\xe6\x58\xa3\xfd\x6d\xde\x60\x3e\xab\xa4\x47\xd9\xa4\x92\xb2\xbe\x14\xee\xd2\x0f\xf0\xfa\x22\x0b\xf3\xe8\x31\x23\x47\x1b\x0e\xf7\x0f\xe4\x80\xee\xbe\x1c\xe3\x7d\x28\x72\x66\x68\xca\x57\xb3\xc3\xe1\x89\x7c\x8c\x37\xd5\xbb\x32\x8f\xa7\xd3\xa6\x7a\xf5\x4b\x12\x98\x5d\x73\x47\xae\x51\x8b\x8d\xfd\xe5\x07\x22\x6c\xff\x25\x4c\x97\xcf\x59\x12\x4e\x43\xe7\xb9\x0b\xc7\x6e\xa3\xf5\x6e\x4d\xf7\x03\x1b\x90\x4e\x3b\xd6\xe0\x06\x32\xc1\xd8\xaf\xa5\x5d\x7a\xd5\x50\x32\x10\xbe\xce\xdb\x22\x0e\xce\xbe\x9f\x47\xdd\x6f\xa3\xdf\x1c\xae\x1b\xca\xa0\xd5\x4c\x06\x48\x99\xf6\xa4\xb1\x9e\x49\x97\xde\x1b\x11\x68\x2d\x5f\xf1\x7e\x10\x37\x8c\x99\x16\xbf\xaf\xb8\x34\x98\x1a\x4d\x99\x43\x01\x61\xda\x04\xfe\x33\x7e\x66\xa8\x8b\x32\xc5\x0f\xc5\x5a\xe4\x93\xfc\x8a\x25\x30\xaa\xa2\x44\x76\x6e\x19\x59\x7d\x21\x35\x17\x00\x81\x5d\xdc\xc2\x13\x22\xcf\xb1\xaf\xb6\x05\x62\x8c\x19\x02\x81\xbb\x37\x9e\x85\x79\xd9\xf9\x88\xa7\xcc\x67\x9d\xf4\xe2\x02\x9e\xde\x52\x1d\x7c\x06\xde\x71\xea\xc7\x11\x2a\x27\x4b\x4f\x6f\xde\x3e\x3d\x7f\xfa\xee\x94\x07\xc9\x93\x3b\xab\xd1\x0a\xe0\x9a\x16\xa7\x37\xe8\xc2\xe9\x0d\x7a\xf4\xc5\xeb\xc7\x4f\xa4\x27\x93\x2c\x8c\xe2\x74\x8a\x1e\x5e\x01\xf4\x03\x46\xa7\x37\xe4\xaf\x38\x9d\x92\x57\xce\x7f\x3c\x3b\x7b\x7a\x7e\xae\xbd\x05\x23\xfc\x12\xd6\x3f\xeb\xf7\x60\x73\x78\xab\x3a\x43\x51\x85\x75\xb5\x33\xfa\xf4\xa2\x5a\x04\x65\xc9\xcf\x27\x6f\x7e\xfd\x78\x6c\x17\x41\xe7\x64\xca\xf8\xff\x58\x86\x39\xda\x11\xce\x50\xf5\x1f\x8b\xa3\x5f\xb1\x08\xcb\x31\x23\x48\x27\x79\x36\x21\x3e\x08\x52\xcc\x10\x93\x7e\x3d\x5b\x30\x70\x54\x8a\x2a\x32\x4d\xb3\x1c\x46\xec\x43\xf4\x27\xfb\x1e\xfd\xc9\xbf\x38\xc9\xf2\xf9\x13\xf3\xab\x8f\xa2\xb8\x08\x2f\x12\x43\x5b\x11\xe6\x73\x82\xfd\x2c\xc3\x3d\x33\x12\x42\x33\x8a\x03\x5f\x68\xd3\x96\xd0\xcd\xbe\xc8\xc7\x4c\xd7\xe9\xf7\xeb\x1a\x25\x44\x0c\xe2\x81\x3d\x00\x55\xef\x5e\x77\xcf\x0a\xc1\xad\x04\x72\x00\xc9\x01\x7e\xd8\xc4\x9a\xcf\xa4\xa2\xae\x3b\xca\x4b\x96\x9e\x45\xee\xbb\x82\x08\x59\x85\xa8\x3a\x94\x95\x2f\x51\x95\x09\x0f\x13\x59\xcb\x8d\x95\xa2\x13\x6a\xcc\xa5\x60\x70\x72\xef\x6b\x7a\xa8\x18\x40\xb1\xdf\x60\x8e\x93\xbd\x6f\x6e\x38\xc4\xf7\x6a\xef\x9b\x1b\x32\xe6\xe8\xaf\x68\xbc\xc2\x6b\x71\x8f\x41\x6f\x49\x26\x29\x69\x50\x64\x80\x70\x3e\x61\xa2\xb1\x2f\x25\x2a\x4a\x58\xe7\x74\x40\xd8\xc0\x74\x15\xba\x34\x35\x05\x54\x80\xb7\x6b\x39\x90\x87\x52\xd1\x24\x89\x6e\x1d\x23\x9b\x99\x89\x7f\x30\x02\x3e\x95\x78\x86\x5f\xc2\x56\x0d\xe5\x45\x2c\x88\x15\x33\x56\xbf\x2f\x19\xe0\x2c\xde\x99\x4a\xa5\xb4\x62\x96\xcc\xa5\x29\x42\xc5\xf1\x26\x93\x44\x09\xb4\xea\x62\x58\x1c\xe2\x83\xa2\x1e\x9f\x9e\x2d\xb4\xea\xc8\x4c\xd5\x25\x56\x3c\x79\xc4\x4d\x9d\xc3\xd9\x51\x66\xe8\x55\x73\xbe\x86\xb3\x59\x46\xdc\x11\x93\x09\xcc\x61\x5a\x7a\x6f\x58\x5d\xa4\x26\xd7\x38\xa4\xac\x1f\x0f\xda\x73\x95\xc2\x4d\x02\x6c\x40\x93\x2e\x8e\x88\xe8\x69\x6a\x88\xa5\x9f\x2a\xe1\xc7\xb2\x1d\xa7\x8b\xa5\x69\xaa\x60\xce\x18\x4e\x09\x4b\xbf\xc6\x78\x1e\x17\x49\x38\x86\xb3\x2c\x21\x1a\xe6\xa3\x2c\xa5\xc5\xf8\x8f\x48\xcd\x47\x40\x5d\xa7\x8f\xa3\x79\x9c\x8a\xbe\x23\xfe\x2c\x69\x85\x59\x97\xb7\xdc\xe4\xfb\x76\x01\x5d\xc2\x02\xc7\x85\x33\x51\xe3\xff\xef\x30\x6c\xff\xfe\xb8\xfd\x4b\xb7\x7d\x7f\xd4\x12\x7f\xb7\x47\x37\x5d\x70\xd4\x5f\x49\x77\x83\x87\xdf\xf8\x00\x33\x7c\x79\xf3\x65\x51\x7a\x17\xd0\x0b\x3d\xdc\x4c\xef\xc9\xab\x73\x6f\x96\x15\x25\xea\x8d\x8e\xaf\xe0\xcd\x03\xff\x69\x5a\xc2\x9c\x90\x78\x2b\xed\xa9\x25\x3d\x64\xc1\x64\x97\x20\x34\xfe\x94\x5e\x18\x59\xbb\x88\x6d\xab\x7c\x17\x62\xbb\xcf\x91\xc4\xfa\x65\x08\x06\xba\xa5\x48\xae\x62\xf7\xd2\x6f\xba\x3b\x18\xcb\x9e\xac\xf3\xfb\xda\x69\x43\xc1\xd1\x32\xfb\x04\x48\xd9\xdb\x3d\x23\xb0\xaa\x2b\xb5\x92\x8f\xb8\x65\xa1\x57\x0b\x19\x59\x5a\x20\xa5\xd5\x4c\xb7\x68\x2c\x25\xa8\x8c\x60\xbb\xd6\xe6\x86\x01\x9b\x50\x30\x8c\x07\x98\x9a\xae\x77\x00\x7a\x87\xa8\x27\x1c\x62\xa4\x5a\xa8\x23\xcd\xbc\xf9\xe0\x2e\xf2\x6c\x9a\xc3\xa2\xa8\x62\x58\xab\x2f\xe8\x76\xb5\xed\xf8\x56\xee\x42\x65\x82\xb1\xbc\x77\x31\xb9\xf6\xb7\x62\xc4\xf0\xaa\xe8\xe9\xfc\x26\x80\x35\x56\x85\xa2\x21\x08\x84\x5e\xa3\x0a\x5a\x3b\xcb\x3a\x55\x72\xa0\xf8\x0a\xeb\x81\xa1\xff\x43\x8c\xa1\x1e\x80\xdf\x56\xe1\x50\x15\xd8\x3e\x5f\x28\xf6\x43\xca\x35\x5c\x6f\xf9\xe1\x3d\x0c\x7f\xca\x1a\x21\x8d\x2d\x2b\x23\x39\x3e\x75\x03\x2f\xe3\x59\x96\x96\x71\xba\x84\xde\x55\x5c\xce\xac\x90\x11\xb4\xa9\x4f\x48\xe8\x3d\x65\x7b\x04\xfc\xba\x41\xff\x58\x41\x1e\xc2\x9e\xa7\x74\x8c\x23\x20\xd5\xb6\xd9\x88\xb6\x58\x4d\x2d\xa5\x92\x41\x0d\x1a\x31\xf7\x6d\xe6\xd4\xac\xe6\x38\x77\xbc\xd4\x00\x4f\xc3\x79\xfc\x52\xb6\x06\x3e\xe9\x46\x2a\x7c\x4e\x17\xec\x66\xf9\x98\xa0\x3e\xe4\xfc\xab\xa9\x45\x5c\x1d\x62\xfa\x11\x53\x8b\xc8\x49\x8c\x9c\x6b\x99\x98\x51\x8e\x41\xf2\xc1\x17\x83\xad\x7f\x87\x4e\xf1\xc5\x73\x62\xdc\x1b\xfa\xe7\xe7\xaf\x19\xd7\x16\xd2\xa4\x78\x83\x85\x82\xd4\xc7\x60\x98\x5a\x6b\x6b\xeb\x1b\xa2\x03\x8d\x43\x47\x9f\x28\xd9\xa6\x7a\x41\x4d\x00\x68\x68\xa9\x99\xae\x06\xde\x8d\xbc\x28\x18\x87\xf5\xc9\x08\x88\xc2\x9a\x02\xe8\xb0\x1c\xc7\xfb\x9b\x0c\xa6\x2c\x10\x8b\x45\x68\x62\xe3\x70\x39\xc4\x7a\xd5\x07\x75\x24\x9e\x8b\x24\xcb\x21\x5c\xa4\xc2\x6d\x32\x46\xba\xdd\x44\xd4\x68\xaf\xed\x56\xe2\x38\x0a\xdf\x44\xf0\x38\x23\x5c\x0c\xc9\xd2\xad\x8f\x85\x83\x94\x4a\xcb\x59\x76\xad\x12\x4a\x37\xa7\x06\x1a\x22\xdb\xa2\x8e\x3f\xcf\x0e\xf5\x22\x9b\x7a\x71\x5a\x1f\x04\xcb\x2a\x5b\x8f\xd7\x60\x0c\xd6\x76\xa1\x55\x4a\xfe\x23\x17\x1d\x13\xd8\x07\x07\xe0\x70\x7d\x30\x0a\x87\xdf\xc1\xb6\x7b\x8e\x32\x84\x53\x8c\x08\xd4\x90\x06\x44\x44\x03\x53\x2a\xd9\x9b\x24\xd1\x3a\x49\x19\x83\x53\x86\xad\xb2\x6d\xc2\xfd\x64\x85\x21\x5a\xe6\xb1\x0f\xfc\xdf\x96\x70\x49\x42\xb5\x4b\x5f\x3b\x74\xf3\x54\x54\x72\x95\xa9\xa6\xc0\xc7\xea\x21\x3d\xdf\xd6\xf7\x36\x18\x66\x6a\x85\xa7\x29\x16\x80\xf4\xef\x71\x75\x61\x04\xc2\x9a\x80\xf2\x97\x61\xee\x41\x50\x82\x1c\x84\x77\x6c\x38\x34\x04\xf7\x05\x94\x03\xf9\x88\x15\x72\x42\xa6\xc4\x49\xc8\xa4\xb3\x32\x7c\x09\x42\xa6\x50\xb0\x32\x50\x90\x21\xd4\xd1\x02\x5f\x69\xb5\x02\xd9\x20\x94\x10\xca\x97\x4a\xb3\xc6\x83\x61\x3e\x02\xd1\xa6\x0c\x4d\x26\x02\x8d\xbf\x5a\x81\x85\xce\xd8\x14\x39\xc8\x1f\x16\x43\x38\x1a\x44\x94\xfc\x61\xa1\x92\x3f\xc8\x3f\xc1\x42\x27\x7f\x58\x38\xc9\x1f\x16\x9f\x3e\x2d\x74\xf2\x87\x85\x4a\xfe\xb0\x18\x8c\x9b\x33\x36\x65\x60\xc9\x19\x9b\x16\x01\x98\x4b\xe4\x0f\x0b\x8d\x9a\x61\x41\xc9\x1f\x94\xeb\x0f\x17\xe6\xe0\xcd\x39\xf9\xc3\xa2\x9a\xfc\x41\xff\x82\x7d\xfe\xa1\x2a\x2e\x50\xf3\x08\xee\x48\x32\x58\x80\x90\x78\xe8\x38\x5f\x13\x58\x48\xce\xac\xb8\x92\xb1\xa9\x00\xf1\x7a\x18\x0e\x59\xed\xbb\x2d\xde\xe7\xe4\xc9\xa4\x7f\x78\xd2\x4f\xed\xae\x1f\xee\xba\x61\xba\xa8\xc3\xc7\x62\xd5\x51\xa5\x14\x06\x11\x96\x04\xd4\xa8\x12\xdd\x16\x28\x9c\x35\xec\x8b\x9a\x15\x70\x06\x93\x85\xc5\x56\xc8\x2c\x82\xa6\x23\x67\x92\xe5\x73\xae\x69\x33\x07\x87\x34\x10\x1e\x5a\xe8\x9a\xb7\xa3\x4f\xf7\x5f\x47\x1d\x0c\x03\x66\x65\xa5\xec\x4a\xf9\xd0\x46\x2f\xda\xe5\xe7\x55\x9d\x6e\xd4\x50\xa5\xbb\x5a\x8a\x07\xc6\xe6\x47\x8d\xc4\x07\x97\x6e\x7d\x9d\xba\xaf\xe6\x8d\xf0\xd0\x00\x9a\x04\xb0\xa9\x0d\xc3\x17\x67\x38\x55\x6f\x3d\xe0\x87\x59\xde\x68\x05\x33\xb1\x29\xcb\xa6\xab\xfe\xac\x37\x9a\x1e\xd5\x7c\x03\x43\xd2\x76\x38\x70\x37\x5f\x7d\xf7\xa4\xc9\xbb\x1b\x62\x81\x34\xc1\x96\xe4\xd1\x5e\x57\x30\xe7\x5e\x79\x46\x8d\xab\xac\xed\x33\xeb\xda\x2e\x60\x98\x8f\x67\x4f\x53\xf1\xe0\x82\x23\xb7\xda\xbc\x91\x24\xe0\x8b\x30\x50\x37\x0d\xe3\xa6\x91\x27\xc7\x5a\x30\x89\x7a\xd8\xb3\x2d\x08\x19\xd8\xbe\x6f\x0b\xc5\x76\x01\x65\xd6\xc9\x6d\xdf\x8e\xb2\xd4\x82\xb2\xe9\xd6\x68\x99\x82\x5a\xcd\x2d\x5a\xa9\xbf\x66\x79\x23\x35\xd2\xd8\xa0\xbe\x5e\xe8\xca\xb2\x4c\x60\xdd\x98\x0b\x03\xb5\x0a\xd7\x16\x70\xbe\x30\x20\x6d\xe9\x60\x02\x2e\xc0\x0c\x5c\x82\x6b\x30\x05\xaf\xc1\x7b\xf0\x06\x5c\x81\xa7\x82\x51\xec\xc3\x1f\x89\x51\xec\xe3\x5f\x8c\x62\x7f\x76\x46\x31\xa2\xc5\xfd\x5a\xad\xc5\xbd\xdd\xbb\xfe\xfd\xc9\xd9\xc7\x5f\x1c\x31\x84\x3c\x38\x3c\x8b\x60\x52\x1d\x43\x68\x66\xb8\x10\xd8\x2e\x92\xeb\x68\x6c\xd5\x76\x9b\x14\x7a\x47\x4e\x91\xb4\xbf\xd6\x43\x27\x63\x0e\x8a\x40\x35\x33\xbc\xec\x7d\x66\xf8\x0f\xcb\xb0\x4d\x2f\xb1\xc4\x1a\xe9\x4e\x9e\x2d\x4b\x8a\x4c\x8e\xbe\x88\x7f\x72\x1b\x97\x78\x8c\x85\xbc\xd1\xc7\x98\x63\x33\x35\x9f\x2c\xf3\x30\x2d\x34\x67\x6b\x5f\xb1\x74\xc2\xcb\x38\x5b\x16\xe7\x6a\x11\xc0\xf7\x2a\x8a\x57\x11\xd6\xba\x16\x75\x05\xbd\x16\x32\x80\x22\xb2\xef\x12\x1b\xa1\x40\x1d\xb4\xf9\x1e\x0f\x9a\x14\x45\x87\x5e\x03\xd3\x56\xca\x3b\x24\xd1\xd4\xac\x0b\x60\x1a\x89\x56\x89\xcb\x4f\x55\x70\x6e\x1b\xf0\xc0\xbe\x12\xe8\xa2\x3b\x94\xf5\x4e\x24\xa3\x28\xd5\x9f\x06\x3b\x09\x83\xb4\xfa\x86\x74\x83\xbe\xda\x1c\xf4\xa2\x2a\x5f\x89\xdb\x91\x26\x2c\xb3\x89\x40\x9d\x32\xeb\x4f\xd3\x48\x50\x79\x27\xe3\xdb\x29\x31\xbe\x9c\x29\xc6\x16\x96\x28\x84\x66\xce\x00\xae\xa8\x4d\x48\x07\x50\xc5\x77\x07\x03\xb8\x5a\x25\xb0\xf4\x5e\xb9\x29\xb8\x73\xba\x70\x02\xe0\x64\x23\x44\xdd\x27\x73\x0f\x72\xeb\x50\xa2\x5f\x28\xf4\x0b\xb1\x7e\x21\xd3\x2f\x2c\xf5\x0b\x63\x76\x81\x58\xe0\x40\xa4\xfd\x9e\x6b\xbf\x17\xda\xef\x89\xf6\xfb\x42\xfb\x3d\x6b\xc0\x31\x2e\xf3\x8a\x7f\x60\xfc\x88\x4c\xd2\x5c\x52\x36\x44\xf9\x06\x3a\xf9\x5d\x6b\xd7\x39\xa8\xe8\xd4\xf6\x02\xe1\xd6\x7a\xad\xdd\xa2\xab\xe0\xbd\x76\x59\x5b\x14\x6f\xf4\x2f\xa5\xd1\x3b\x49\x36\x5d\xd9\xbe\xe7\x83\xa7\xe4\xf2\x6a\x0a\x4b\x0f\xaf\xf7\x96\x3a\x75\x30\xdf\x20\xbe\xf1\xe9\xd3\xcd\x0a\x3f\x86\x66\x93\xed\x29\x74\x7d\x55\xc0\xf2\xf1\x62\xf1\x16\x15\x8e\x66\x61\x3c\x69\x71\xcf\xfe\xdd\xc1\x00\x7e\xfa\xe4\x2b\x3e\x8c\x76\x04\x2f\x96\x53\x1f\x4d\x4e\x0d\x0f\x8e\x41\x16\x67\x57\x29\xcc\x9f\xd0\x2c\xf1\x0e\x4b\x17\xa7\xf8\x69\x77\x4a\x09\x35\x76\x9c\xa5\x65\x18\xa7\x45\x8b\x82\xb4\xb2\xef\x06\xf7\xee\x95\x16\x70\x59\xed\x21\x50\x76\x90\x3c\x2f\x60\xd9\xc1\x5d\x33\x80\x80\xe1\x1c\x3f\x5e\x2c\x70\x1f\xb7\x48\xf8\x49\xb0\x5a\xc9\x17\xd9\x12\xac\x55\x61\xfe\x0d\x3c\xa6\x03\xb8\xd2\x05\x2f\xd1\x45\x8b\xab\xb8\x1c\xcf\x30\x30\x5d\x58\x40\x3e\x69\x4e\xe5\x0f\x0d\x4a\xe0\x87\x8b\x45\x12\x53\xc5\x9d\x41\x8c\xf3\xb1\xb8\x77\xaf\x65\xb6\x40\x6a\xaf\xb8\x47\x86\x8b\x10\x3e\xe2\x79\xdb\x19\x2f\xf3\x1c\xa6\xe5\x5b\x36\x29\x83\xe0\xce\x45\x0e\xc3\x0f\x77\x70\x7d\xc8\xc6\x70\x2a\x70\xf5\xf8\x9b\xec\x9b\xf8\x47\xe7\x3d\x7e\x10\xc3\xee\x29\x9b\x41\x15\xe7\xa5\x32\x6d\x69\xde\xa1\x72\xad\x15\xac\x8a\x32\xcc\xcb\x17\x59\x18\xb5\xf4\x59\x43\xd7\x23\xa6\x09\x7d\x8d\xff\x6c\xc1\x4e\x99\xe1\xfe\x08\x3e\x7d\x52\x3a\x0c\xa3\x65\x2b\x3d\x86\xba\x90\x8e\xa6\xb2\xb8\x28\xd6\x37\xfa\x13\x88\x3f\x71\x5a\xe6\x99\xd1\xa5\x4a\x65\xd5\x5a\x95\x52\x23\x38\x50\x1f\xe1\x13\xe8\x4c\xc9\xf9\x68\x59\xc2\x08\x43\x9e\xb7\xe4\xb1\xc6\x98\xcc\x4c\x15\xfc\x09\x69\x7e\x2d\x69\x7b\x6d\x47\xcb\x9c\x34\x29\xb8\x83\x8d\x99\x61\x5e\xc0\x67\x49\x16\x96\x2d\x18\x38\xba\x70\xdd\xd4\xa9\x98\x39\x2b\x98\x46\xac\xf3\x45\x6f\x74\xd8\xde\xe3\x4b\xeb\xae\xd5\xb4\x2f\xc9\x02\x0b\xd6\xce\xec\x66\x93\x77\x45\xb5\x4a\x96\x51\xca\xc6\x23\x8c\xd8\x24\x51\xcb\x97\x99\x6d\x5d\x95\x57\x6b\x0c\xe4\xef\x67\x29\xdd\x27\xff\x15\x0b\xce\x43\xf6\x26\x99\xb8\x8e\x17\x9e\xc4\x91\xf2\x3c\xed\xe9\x60\x25\x34\x63\xbd\x0d\x44\x9c\x59\x9b\xa1\x7d\x64\x32\x69\x5a\x2d\xfe\x86\xb3\x5e\x2b\x70\x39\xf8\xd8\x9a\x29\xcc\xaf\x5c\xf9\x4e\xb7\x25\x69\xbd\xb6\x95\x8d\x83\x10\xb6\xe6\x95\x9d\xea\x45\x0b\xb4\xef\xad\xb9\x65\x5f\x5b\xab\x4d\xf6\xf6\x61\xb2\x6d\xe9\xef\xf5\xd2\xd9\x59\xa5\xd8\xb6\xe4\x37\x7a\xc9\x9a\x86\x31\x8c\xb7\xfd\xc2\x95\xd1\xeb\xaa\x92\x32\xcc\xb6\xfd\xc2\x53\x6b\xdf\xfb\x60\xb8\xdc\xb6\x64\xad\x5c\xe3\xc4\x04\x86\xe3\x11\x73\xca\x4d\x61\xf9\xfa\x2a\x65\x02\xfb\x09\x2c\xc6\x79\xbc\x40\x9a\x64\x75\x11\x01\x90\xee\x1b\x5f\x54\xcf\x53\x60\x18\x35\xfc\x9c\xfa\x7e\xf5\xb7\xb8\x44\xf0\xc1\x70\xde\xf0\x3b\xe2\xdd\xea\x6f\x50\x21\xe2\x83\xe1\xa2\xe1\x17\xd8\x9b\xd5\xe5\x33\x53\x02\x18\x4e\x1a\x96\xcf\xde\xac\x2e\x5f\xb2\x56\x80\xe1\x45\xc3\x4f\x48\x2f\x6b\x5f\x99\xc9\x46\xcf\x57\x95\x1e\xc4\x5f\xc1\xab\xf5\x1e\xc4\x45\x96\xc4\xe3\xeb\xf6\x24\xcb\x2d\xf0\x86\x8e\xcc\x33\xec\x00\xe3\xbf\xe9\x6b\x5f\x0b\xe7\xff\x59\xff\x5f\xdf\x2e\x60\x7f\xdf\x6e\xa8\xc2\x09\x5a\xf8\xff\x28\x31\xb1\x9a\x3a\xa6\xfc\xc1\xca\xad\x4d\x0c\x70\x62\x01\x40\xe8\x01\x7f\x12\xc3\x24\xa2\x89\x23\xc4\x06\x25\x75\xb2\x6f\x89\x40\x95\x63\xe2\xe4\x60\x38\x6a\x2e\x3a\x1e\x81\xa1\x8f\xc4\x0f\xf4\x48\x41\x24\x43\x55\x26\x5b\xec\xc9\x81\xf3\xa2\x6c\x29\x04\xec\x18\xdc\x77\x32\x9b\x9d\x58\xa0\xec\x79\x67\xd4\x04\xb3\xaf\xef\x32\xf2\x4d\xc8\x2e\x3d\x3e\xed\x0d\x6f\x66\x4f\xeb\x1e\xca\x8f\xed\x65\xb9\x17\x47\x30\x2d\xe3\xf2\xfa\xa1\x94\x5e\x53\x1d\x20\x04\x14\x60\x3b\x5c\xd4\x06\x5c\x6e\xac\xfe\x0b\x6b\xd5\x9f\x93\x5a\xc5\xb0\xf0\xc2\x1c\x7a\xb4\x54\x32\x70\xe8\x22\x0e\xea\x95\x77\x1a\x7c\x60\x2e\x3a\xde\xbb\x19\xbc\xf6\x8a\xf0\x12\x7a\xd7\xd9\xd2\x2b\xb2\x39\xf4\xca\x78\x0e\xbd\x30\x8d\x3c\x38\x99\x64\x79\x89\x6e\xfc\xcf\xdf\x72\xe8\x2d\x8b\x38\x9d\x7a\x67\x78\x69\x7a\x93\x2c\x47\x7f\x22\x59\xe1\x4d\x60\x58\x2e\x73\x58\x74\xdc\x3d\xe0\xe0\x1c\x10\x90\x6b\x79\x18\xc5\xd9\x34\xcf\x96\x0b\x23\xfa\x90\xf5\x1b\x06\xba\xc5\x99\x0c\xc0\x7f\x87\x03\xca\xd0\x90\xcc\xc2\xa2\xad\xe5\x37\x38\x22\xcc\x7b\x66\xc2\x98\x46\x40\xba\x19\x19\xb6\x12\x58\x2e\x85\x96\x53\xbf\xf3\x9a\x38\x48\x39\xe6\xb2\xcf\x23\x0b\x8f\xc1\x50\xb6\xeb\xda\xa1\xda\x44\x09\xdc\x63\xde\x3b\x04\xfb\x40\xcb\x03\x22\xac\x19\x43\xb6\xb4\x46\x2a\xaf\x61\x9f\x7f\x4f\x5a\x7b\x14\x53\x8f\x53\xda\x28\x49\x89\x6c\x2c\x94\xb5\x6a\x2b\x23\x55\xd9\x13\x39\xff\xa6\x05\x5a\x83\x5e\x92\x2d\xc1\xfd\x7d\x2e\x65\x24\x21\x69\x89\x2e\x74\xa7\x03\x71\x40\x3c\x3c\xbb\x7c\x27\xfe\x60\xcd\x98\xee\x63\x35\xa4\x7b\xed\xf3\xeb\x85\xd1\xc6\xe3\x76\x00\xfa\x1c\x11\xf0\x00\xf8\x14\x32\xd2\xd2\xc0\x26\x3e\x5e\x63\x99\x8a\x29\x7c\xc8\x61\x18\x70\x94\x49\x09\x3f\x96\xf6\x2d\xa4\x7f\xdf\xb2\x5a\x45\x1c\xaf\xbc\xcf\x90\x67\xe2\xe2\x4d\x1e\x17\x65\x9c\x42\x33\xec\xda\xb6\xba\xd7\x80\x39\x2a\x6b\xa9\xcf\x3e\xed\x46\x20\xd3\x06\xa1\x8f\xb9\xfd\x95\x74\x06\x36\x36\x3d\x0e\x0e\xe3\x0f\xd1\xcd\x91\xcf\x26\x98\x1f\x2e\xcb\x6c\x92\x8d\x97\x18\xe9\x86\xff\xcd\x67\x3e\x0b\xda\x31\x27\xbe\x4e\xcb\xc3\xc6\x13\xf7\x6f\xc5\x74\x65\x55\xa7\x38\xfc\x36\x01\xf3\x32\xfc\x18\xcf\x97\x73\xaf\xd7\x3f\xf1\xc6\xb3\x30\x0f\xc7\x68\xa8\x3b\xde\xcb\xf0\xda\xcb\xd2\xe4\xda\x8b\xd3\x71\xb2\x8c\xa0\x97\xc0\x12\xdd\xf1\x5a\xcb\xc5\x02\xe6\xe3\xb0\xc0\xc2\x7f\x2f\xcb\xbd\x24\xbb\x22\x17\x02\x76\x25\x5d\x22\x9d\x08\x95\x42\x93\x00\x09\xfa\x59\xc7\x8d\xeb\xa6\x6f\x7f\xbb\x9f\x25\x9b\x27\xff\x14\x65\x9e\xa5\x53\x45\xf2\x5a\x6a\x04\x7c\x11\x0d\x65\x88\xe3\xea\x00\x0b\x37\xa0\x9d\xb2\xb8\x0e\x70\x70\x97\x80\xf8\xec\x02\x69\x95\xb9\xb6\xb3\x23\x3d\x57\xdc\x26\x96\x7d\xea\x22\x69\x33\xad\x65\xc3\x38\x28\x2d\x68\x7c\x9c\x45\xb0\x0d\xa3\xb8\x44\xb5\xa6\x41\x37\x39\x0c\x23\x34\xaf\xe4\xb8\xb2\xe2\x3a\x2d\xc3\x8f\x5a\xce\xab\x25\x86\x0c\x93\xe8\xdb\xa5\xdf\xdb\x65\x02\x0b\x2e\xfa\x80\x3f\x1b\x27\x95\x2b\xa9\x56\x31\xb6\x6c\x49\x3d\x08\x8d\xf2\xcf\x35\x0e\x43\x3b\xb2\x25\xd6\x1d\x6d\x1f\x87\x26\xef\x54\xb8\x35\x7c\x22\x85\x54\xd2\x1c\x31\x21\x25\x27\x3e\x9f\xbd\x7e\x75\xfe\xe3\x8b\xf7\x4f\x5e\x9f\x9d\xbf\xff\xf1\xed\x0b\xd1\x91\x7b\xd3\x65\x1c\xc1\x62\x2f\x1c\x27\x9d\x59\x39\x4f\xfe\xbf\x7c\x99\xc0\x76\xb1\x80\xe3\x78\xc2\x6c\x9c\x5c\xc0\xe5\xb8\x4b\x66\x30\x59\x78\x69\x96\x2d\x60\x0a\x73\x2f\xcd\x72\x38\x81\x79\xce\x71\x37\x7d\x86\xe4\xe6\xbf\xbf\x48\xc2\xf4\x83\x3c\x75\x5b\xdf\x9f\xbd\xf0\x9e\x61\xfe\xcc\xa0\x41\xae\x43\x3d\x82\x7f\xb9\x97\xc5\xb0\xd5\x17\x0e\x27\xec\xc0\xb9\xa7\x2f\x97\x3d\x71\x38\x63\x39\xdf\x1c\x74\x43\xce\xc4\xe5\xf0\x59\x14\x52\x83\xec\x22\xfb\x23\x63\x37\xe1\xd5\xda\x34\xee\xea\x68\x6d\x7c\x57\x8d\x1e\x73\xcb\x8b\x14\xad\xec\xbf\x84\xc5\x57\x15\x16\x87\x7f\x09\x8b\x2f\x20\x2c\x0e\xb7\x16\x16\xca\x5a\xb1\x48\x0a\x81\x1d\x2c\x43\x34\x28\xf2\x80\xc9\x89\xed\xe5\xc2\x61\x73\xb9\x50\x6f\xa9\x8a\x65\x89\xbd\xd5\xf2\x8a\x25\xe7\x2c\xbc\x60\x3f\xc0\xeb\xe5\xc2\x95\xb6\xa9\x2c\x43\xdb\x69\x1e\x4f\x51\x12\x28\x24\xeb\xfa\xf5\x56\x39\xeb\x52\x5e\xc8\xe7\x5f\xf0\x68\x99\x6f\xb9\xc8\x0f\xd6\x2f\xf2\xbf\x56\xf7\xda\x59\x7f\xe0\x66\xc9\x74\x4e\xb2\xcf\x78\x5e\x20\x9f\xd8\xe4\xc0\xb0\xe9\x21\x7d\xdd\x41\xeb\xf3\xee\xf4\x2a\xe4\x45\x1d\xac\x2b\x2d\xef\xd9\xdf\xfb\xbf\xf8\x7f\xe8\xd5\x31\x4c\x71\x3b\x8d\xe5\x67\xda\x89\xd8\xe2\xdd\x5f\x03\x2c\x65\x47\x7b\x32\x8f\x5f\xec\xc0\x25\x25\xcf\xb8\xc8\x2f\x74\xfb\xc2\x13\x5e\x73\xeb\x5c\xae\x4a\x53\x60\x19\x07\x3c\x1b\xe1\x59\x0c\x93\xc8\x9e\xa8\xf0\x46\x87\x10\x3a\x33\xfa\x13\x27\xd7\xd0\x23\xab\xd2\x39\x80\x5f\xa4\x0f\x1e\x48\x73\x42\xae\x3f\xc5\xb8\x15\x99\xbf\xd8\xcc\xea\x85\x9e\x18\x1e\x2f\x55\x8a\xb2\x89\x58\xb5\x4b\xd2\x0d\x61\xef\x7d\x6e\x0a\xdd\x5f\x9f\xf4\xb0\xdf\x3c\x4b\xb7\x89\x9e\xac\x77\xdb\xbe\x99\x3d\xbe\x79\x3a\xb9\x8b\x3b\x82\x58\x00\xb2\xe9\x94\x40\x60\xd7\x9e\x90\x3f\x61\x50\x26\x75\x41\xb9\x19\x57\xaa\x8c\xd4\x2e\x23\xa5\x6c\x08\x8b\x8b\xf3\x71\xb6\x80\xd1\xa8\xc2\x68\x6c\x7a\x98\x0e\x49\x66\x1a\xed\x39\xf6\x42\x03\x83\xb1\xcb\x6e\x86\x8b\xba\xc8\x3e\xd6\xb1\x9d\xe9\x1d\xf7\x38\x49\xdc\x5d\x55\xc9\x49\xe0\x34\x02\x69\x9b\x51\xbf\xf1\xac\xf8\x43\x48\x55\x4d\xb0\x2a\xb3\x98\x0d\x48\x5b\xb8\x76\x84\xcf\x47\x5c\xdb\xd0\x5f\xb3\xbf\xa5\x29\xb0\x6a\x2f\x30\xa6\x92\x8b\x7b\xa4\x6a\x79\x08\x51\x58\x88\x15\x42\x3c\x2e\x7d\xdd\xc6\x5c\xbd\x70\x18\xc2\x5f\x5f\x39\x3c\xe8\x32\x5c\xc2\x76\xf9\xe2\xeb\xaa\xd2\x9f\xa5\xb5\x76\x2d\x1d\x88\x3b\xb1\xad\xf6\xe4\x70\xf6\x4c\x73\x74\x15\x97\x8f\xfc\x40\xde\x71\x29\x9e\xe9\x1f\x7b\x56\xf6\x98\x9a\xcf\x27\xa3\x34\x8d\xbe\xe2\xfc\xe9\x6d\x3a\x6d\xd6\x25\x2f\x5a\x0a\x71\x43\x33\xb9\x75\xf2\x26\x9a\x77\x73\x15\xa1\x6a\x46\x58\x9c\x04\x95\xfa\x2a\x0d\xfd\x89\xb3\xd4\x6b\xbd\xc6\xff\x86\x89\xed\x1c\xc6\x0a\x40\xe5\x87\x39\x0c\x5d\x73\x49\x94\xa7\xce\x25\x72\x28\x97\x6e\x0b\x41\xd7\xd0\x23\x66\xcc\x97\xba\xdb\x6f\x13\x92\x50\x9f\x1a\x35\x68\xa6\xbc\x20\x04\x92\x24\x08\xf0\x27\x71\x1a\xb5\x2f\xae\x09\x2c\x0b\xcb\x5b\x65\x21\xfe\x1c\x2e\x85\xc0\xb3\xd8\x01\x55\x98\xc2\xe4\xab\x40\xad\xf8\xf8\x88\x61\x5e\xe6\xe1\x82\x7c\x01\x87\x0f\xc1\xf4\x52\xce\xe4\xa9\x83\xf4\xc2\x2d\xd4\xa4\x27\x0b\x58\xb6\x09\x6e\x4b\x46\x47\x5b\x8a\x39\xc2\x0e\xcb\x24\xc9\xae\x9e\xb3\x83\x20\xf0\xc7\x21\x2a\x45\x26\xc3\xf2\xc3\x34\x6a\x92\x28\x64\x04\x77\x29\xc9\xb7\x79\x65\xf2\x6d\x0a\x78\xb6\x8b\x20\x48\xb8\x5e\xc0\x53\x1a\xcd\xe4\x83\x14\x7f\x98\xfd\x52\x6a\x7f\x7a\xb7\x0b\xb0\x95\x0a\x83\x31\x9d\x0e\xb5\x08\x28\xd6\xf7\xa7\x77\x7b\x38\x96\xd2\x20\xf5\x79\x6f\x03\x86\x31\x89\xfc\xd9\x08\x92\x3b\x53\x71\xa7\x84\xf3\x8e\x24\x5c\x3b\x14\x43\x31\x78\xd0\xa5\x31\xcc\xbc\xdf\x07\xc3\x1b\xd2\x0e\x1a\x73\x04\xd8\x9d\x53\xdf\x5f\x01\x7a\xef\x9c\x78\x23\x3c\x31\x38\xe2\x29\xc3\xb1\xc7\xdf\x7a\x95\x45\xf6\x57\xd4\x13\xff\x6a\x24\x73\x3d\xe1\xa9\xa2\x52\x3d\xe5\xd7\xee\x4e\x59\x8d\xc3\x72\x3c\x6b\x95\x2c\xd1\x81\xc6\xa0\xb3\xae\xb9\x43\x53\x45\xca\x0e\x8d\xc8\xc0\x81\xdf\x24\x6d\x84\x0c\x89\x74\x70\x38\x85\x0f\x5b\x7a\x1f\xb3\x18\x5f\x79\xff\xd6\xba\xbb\x83\x7a\x1b\x28\x3b\x7c\xa0\x0f\x96\xe5\x19\x2c\x56\x82\xe0\xb4\xb5\xfe\x49\x25\xd2\x5e\xba\x63\x4e\x09\x6b\x75\xc9\x87\x2a\xa6\xcf\x5d\xc8\xf2\x57\xe8\x84\x3f\xa5\x9c\x57\xd8\x9c\xd4\x2a\x83\x15\xe3\xcd\xc2\xa3\xc3\x59\xb0\xf0\x55\x34\xa5\x57\xc1\x4a\x67\x9e\xca\xeb\x46\x5e\x12\x13\x83\x8d\x5b\xd8\x11\x7d\x39\x9e\xc5\x48\x20\xa8\xaf\x7d\xad\xe8\xcb\xb3\xe5\x77\x57\xaf\xfe\x79\xf6\xbb\x3d\xfa\x92\x81\xf1\x53\x66\x52\xf8\x11\x8e\x97\x04\xcf\x3f\x4c\xc7\xd8\x7c\x39\x87\x45\x11\x62\x63\x05\x8e\x89\xcb\x4d\x74\x7f\xe5\x0f\x0e\xf3\x4f\x79\xa8\x7c\x83\x64\xde\x1d\xb0\x79\x82\x04\xb1\xdc\x75\x18\x48\x14\x03\x9e\x9a\x68\x15\x39\x5c\x64\x02\xe0\x5f\xf5\x30\x72\xc7\x23\x25\x52\xd1\xc1\x5c\x28\xda\x21\xf5\x41\x1e\x10\xc3\x78\xff\x50\xf5\x45\x9e\xd0\x9f\x18\x28\x9c\x8a\x1e\xff\x1c\x9b\x98\x70\x48\x1f\xbb\x46\xf6\xf7\xda\x76\x1b\xbc\x23\x9f\x80\xde\xbe\x6e\x6f\xf3\xd7\x13\x0e\x31\x92\xd6\xda\x26\xa2\xc7\x8b\x45\x72\xed\x85\xa9\x07\x3f\xe2\x90\x90\x29\xad\x75\x1d\x4c\xdd\x5a\x35\x1a\xe7\xd0\x0c\x41\xad\x83\xb3\x72\x64\x8b\x68\xb5\xb2\x3a\xd5\x70\xa0\x3a\xfa\xb4\x99\x6b\x07\x17\xd2\x93\x34\xc7\xbe\xd0\x1c\x05\x6b\x2c\x05\xf8\x3b\xb1\x01\xfc\x1d\x4b\x09\xcd\x6c\xfa\x13\x26\x49\x23\xfb\xba\x41\x58\xd6\x19\xee\x62\x2f\x85\x57\x52\x70\xf1\x3a\xd3\x8b\x2f\xc3\xa9\xd2\x71\x54\x58\x94\x09\x2e\x52\x0f\xf8\x29\xbc\x6a\xb3\x72\xa9\xb1\x35\xa5\x4c\x99\x8f\x74\x8a\xcc\x9e\xa4\x7c\x5a\x29\x32\x0f\x2d\xee\x1f\xff\x15\xbc\xe2\xf1\xc2\x35\x3c\x41\x56\xf4\xd4\x1c\x4e\x74\xe2\x69\xc3\xbb\x26\x55\x8e\xf6\x3e\x03\x02\xb6\xd8\xb6\xbd\x7a\x14\x5f\x9b\xf2\xf7\xb2\xc1\x9c\xf5\xe5\xa1\x94\x7b\xc2\x71\x46\xab\x05\x83\x59\xa3\xe2\x9b\x11\xe0\x72\x1b\xbc\xd0\x05\x59\xc9\xe4\x87\x33\xaa\x83\x88\x61\xac\x62\x52\x5d\xec\xb9\x70\x98\x10\x5f\xee\x7d\x21\x50\x65\xf9\x4a\xc5\x2d\x66\xd0\x70\x8d\xd3\xae\x7a\x85\x31\xd2\x6e\x3c\x9e\x12\x5d\x34\x39\xe0\xab\x22\xa0\x2f\x63\x32\x14\xe1\x25\xb7\x3d\x91\x40\x97\x43\x25\x82\xb7\x67\x5f\x59\x78\xd2\xf6\x4d\x12\x0f\x69\x7a\x33\xd6\x0b\xd3\x74\xc2\xce\x8d\x66\xf2\xc2\xb1\x66\x8c\x21\xb5\xc2\xf1\x82\xe7\xe1\x25\x43\x6e\x17\x17\xa5\x20\x42\xf9\xf2\xf3\x14\x7b\xec\xfc\x35\xc9\x0c\xd8\x94\x51\x2c\x2f\xe6\xb1\x3b\x2c\xef\xd8\x51\x8b\x4d\x22\xc9\x1d\x36\x55\x06\x2d\xef\x21\x05\xa7\x84\xf9\x3c\x4e\x29\xa9\x4e\xcd\xe0\x5f\xe0\x0a\x59\x77\x48\xe9\x30\x8d\xbc\x10\x6d\xba\x8e\x05\x5e\x09\x5f\x4b\xf6\x1f\x69\x8a\x59\xb3\x50\x5c\xdd\x66\x1d\x88\x3e\x89\xe9\xd6\x58\x52\x2c\xe1\xe4\x9f\x65\x32\x4a\xdd\x43\xd4\xc9\xba\x52\xaf\xd7\xb7\xac\xf0\x6a\xe4\xf0\x4d\x21\xbc\x1a\xa9\x3b\x0c\x87\xac\xbe\xf8\x10\xce\x39\x8c\x80\x2c\x0c\xbb\x6e\xd8\x3b\x8a\x5a\xdc\xa8\x62\x78\x08\x9a\xd5\xea\x04\xf8\x65\x78\xb1\x4c\xc2\xbc\x1d\xc1\x32\x8c\x93\x42\xb8\x5b\x25\x94\x47\x49\x57\xae\xa9\x04\x90\x74\x28\xb2\x20\xde\xc5\x73\x78\x1a\xc1\x82\xe5\x77\x9d\x86\xe8\x4f\x22\x09\x37\xf1\x78\x7e\xb6\x2d\x9b\xdb\xf0\x66\xca\x86\xed\x0a\x89\xaf\xb5\x25\xd5\xa8\x6c\x9e\x5d\x6d\x5c\x53\x66\x67\x16\xe9\x3f\x7d\x06\x90\xde\x1b\xad\xc9\xf0\x61\xaa\x6a\x0f\x0c\xfd\xe7\x4f\xac\x42\xb7\x56\xe0\xa2\x67\x8d\xa7\x91\xbd\xec\xd1\xb8\x13\x8e\x93\xa2\xc3\xf2\xab\x3a\x30\x8a\x19\xb2\x93\xfa\xf1\x91\x66\xc7\x76\xf9\x41\x9a\x46\x6c\x99\x75\xdc\xb7\x7d\x60\xc3\x2f\xaf\x61\x2e\xd8\xed\x74\x61\x0b\xb5\xf1\x79\x4b\xde\xfd\xef\x4b\x63\xbf\xa5\xb5\x5d\xa9\x78\x4d\x02\x37\x4e\x14\xa3\xc5\x0b\xac\x21\x70\x23\x3a\xe9\xde\x37\x37\x71\xb4\xf2\x6d\x07\x0e\x17\x7d\x1b\xf0\xe3\xc8\xa7\x7b\xe6\x09\xf5\x04\x32\x8e\x62\x06\xc6\xca\x27\xe2\xa8\x6a\xab\x33\xfc\x15\xeb\xdc\xbf\xe8\x30\xf9\x3b\x56\xc3\xd7\x9e\x4b\x25\xd7\x48\xad\xb1\xda\x65\xf4\xb1\xa4\x3c\x55\x65\xe1\xf1\x87\x14\x95\x4e\x18\xf2\x4e\x9d\xaa\x8d\xf4\x6e\x54\xf1\x01\x65\xb7\xd4\x03\x6e\xea\xe4\xa1\x39\x6f\x6c\x2e\x32\xb6\xea\x91\x62\x87\x5d\x22\x91\x94\xf8\x40\xa2\xf6\x55\xdc\xbb\x07\x7c\x62\x02\x6d\x1b\xd0\xce\x08\xbb\xed\x4a\x53\x51\x6e\xe8\x86\x6b\x28\xa8\x76\x9c\xaa\xe3\xd5\x0d\xeb\xd5\x63\xf1\xad\xd1\xbb\x4a\xd0\xbd\x61\x10\xd9\x3c\x00\x5e\xee\x19\xc6\xce\x72\x7f\xb7\xf1\xef\x5e\xdd\x28\xd9\xfe\x1f\x2d\x48\xd6\x6b\x16\x06\xef\xea\xeb\x4d\xa2\xe0\xed\xdd\xcc\xe7\xdb\xee\x92\x69\x14\xc3\x4a\xdf\x96\x4b\x53\xbf\x5f\xea\xc6\xd9\xde\xdf\x34\xc7\xe6\x2b\x6c\x72\x7f\xd4\x45\x7e\xf2\xd7\x22\xff\x62\x8b\xfc\xe4\x33\x2e\xf2\xcd\x92\x60\xfa\x46\x12\xcc\xc9\x67\x5c\xcf\x27\x5b\xe5\xc6\x6c\xb4\xc6\x78\x6a\x4c\xbd\xc5\xc6\x55\x1c\x35\x8f\xa5\xaf\x24\xb6\xd4\xf1\x4b\x6c\xb9\x2a\x8f\x77\x94\x95\xf2\xdf\xb7\x1c\x2d\xd3\xee\xb8\x8e\x1d\xaf\xb6\xde\x69\xcb\xf4\x90\x87\x90\xa7\xd4\xf7\x0f\xb6\xcf\x8c\x67\xf6\xe6\x4a\x5e\x4c\xea\x3a\x0f\x09\xda\x23\xf3\xc0\x91\x55\xc1\x1c\xec\x68\x78\x1f\xe7\x14\x5c\x66\x49\xff\xb8\x0a\xd3\xd2\x2b\x33\x8f\xa0\x04\x62\x84\x4d\xea\x05\xf4\x26\x79\x36\x27\x17\xca\xec\x03\x4c\x1f\x6e\xc6\x65\x59\xdb\x69\xb2\x59\xf1\x36\xb3\xb6\xec\x57\x85\x09\x24\xf6\x78\x62\xa8\x16\x0f\x59\x2c\xd5\x24\x6b\x99\xf4\x84\x12\x45\xda\x35\xed\xcd\x6f\xc9\x53\xcd\xa6\xe6\x91\x93\x73\xae\x9e\x71\x86\x3a\x89\xb7\xe8\x27\x27\x68\x91\xf1\x24\x63\xfe\x77\x3d\xe6\x1b\x41\x7d\x9f\x73\x60\xf6\x2d\x16\x7f\x32\xe5\xe9\xcc\xad\x1c\x89\x35\x75\x19\x73\xdf\x41\xad\xba\x1c\x34\xf4\x3e\xb8\x66\x83\xa0\xa0\xb3\x2f\xec\x5d\xd1\x9f\xea\x62\x6c\x23\xda\xf7\x1e\xe8\xd7\x21\x79\xae\xed\x2e\x59\x1f\x04\xca\x18\x9f\x78\xf8\x27\x89\xbf\x24\x24\xcb\xcf\x49\x58\x11\x0e\xd5\xac\x13\x88\x89\x83\x43\xe5\x83\x0d\x8e\xef\xe4\x67\x1e\x6a\xfb\x53\x03\x4c\x7f\xcd\xe2\x94\x59\xf8\xe4\x60\xd2\x59\x0e\x27\xed\x32\x53\xa3\x38\x71\xa1\xd4\x85\x6d\x75\x52\x0b\xe6\x3e\x1a\x12\xb5\x80\x39\x7d\x5e\x8a\x3a\xa2\x41\x47\x4a\xc4\x67\x91\xe5\x25\x09\x43\xa5\xd5\x24\x68\xc8\x34\xf0\xb5\x79\x2c\xa8\x1a\x37\xb6\x65\x3c\x28\xaa\xf0\xa9\x03\x09\x1e\x2e\xb2\x02\xe9\x67\xd7\xf4\xcb\x7e\xa0\x05\x8c\xaa\xc1\xa4\xb5\xc2\x47\x79\xe4\xd6\xa8\x7e\xd8\xe8\x1d\x25\x30\x92\x18\x90\xef\x30\x8c\xe0\xf7\x49\x5c\x94\x48\x41\x29\x3a\x61\x14\xb5\x20\xb8\x29\xc2\x4b\x78\x0a\x07\x0f\x28\x76\x71\x78\x09\x3b\x74\xac\x30\xb6\x3b\x46\xe8\x0e\x56\xab\x60\x05\xb0\x67\x52\x8d\xd4\xdc\x20\x74\xf5\x6e\x0f\x17\x35\xc9\x61\x31\x3b\xcb\x22\xf8\x14\x2b\xb5\xa7\x6a\x30\x1f\x2e\x38\xca\xe6\x1d\x3e\x9e\x2d\xbf\xa3\xe8\xc0\x65\xd0\x89\xe2\xe8\xf1\x62\x01\xc3\xbc\x15\xac\x00\x8e\x5c\x54\x2a\xa7\x00\x61\xe3\x20\xcb\x74\x00\x3b\xf8\xb9\x3b\xf1\xa4\xc5\x69\x49\x52\x72\xad\x08\xca\x59\x9e\x5d\x79\xe9\x1d\x1e\x59\xca\xee\x0c\xbb\x23\x4c\x02\x99\x0f\x58\x9e\x6d\x38\x80\x1d\xe2\x3c\x60\x01\xa7\x77\xbb\x24\xca\x14\x17\x19\x76\xf0\x64\x7b\x3d\x69\xf9\xcf\xc2\x38\x81\x11\xd2\x39\x30\x0c\xb5\xf7\xf8\xec\x85\x97\xe3\x42\x82\x53\xdb\xf3\x34\x20\xc0\xa3\xf3\x8a\xc5\x28\x05\xa7\xd6\x8f\x0b\x10\x72\x57\x39\x24\x3e\xe6\xd4\x7b\x4c\xff\x22\x78\x7c\xf8\xfc\x83\xcb\x24\x39\x24\xe1\x20\xec\x14\xcb\x8b\xa2\xcc\x6b\xbd\x29\x3e\x73\xea\x07\xdf\xf6\x82\x55\x7e\xef\x1e\x86\x8f\x7e\x8a\xe3\x47\x73\x80\x66\x8c\x88\xf1\x45\x2a\xb1\x39\x6f\x8c\x39\xd0\x82\x00\xb2\xb0\xdd\x45\x98\x0b\x94\xf8\x60\x93\x58\xd3\x45\x76\x09\xf3\xf6\x1c\xa6\x4b\x5b\xa0\xa9\x50\x3c\x8a\xaf\x16\x4a\x5a\xbc\x7c\xf2\x53\x31\x7d\x72\x6e\x0f\x25\xe5\x1e\x9e\x0f\xf0\x7a\x41\xf8\xfc\xf9\x9f\x67\x24\x4c\xc6\xc7\x01\x65\x48\x1d\x66\xed\x46\xd7\x16\x58\x76\xc3\x74\xe9\xe3\x90\x11\x1f\xf8\x34\x97\xb3\x2e\xca\x67\xaf\xab\xfb\x57\x88\x36\x41\x55\x73\x86\xf0\x29\x3a\x18\x3f\x40\x33\xa3\x0c\x32\x93\x13\x52\x4d\xf2\x20\x53\xf2\x3e\xc0\xeb\x8b\x2c\xcc\xa3\xc7\xe3\x31\x6a\x19\xb5\xb8\x1d\xd4\x75\x5e\xab\xd9\x7a\x7a\xee\x0b\x3b\x7a\xbc\x84\xe9\x92\xee\x9c\xe8\xcf\x73\x88\x36\x67\x22\x4c\x87\x4a\x90\xa1\xd2\x98\x3d\xf4\x7f\x6d\x8e\x35\xea\xb3\x06\xda\xbe\x10\x46\xd1\xf9\xf2\x82\xf6\x35\xd1\xcc\xc4\x6f\x11\xdf\x8b\xa3\x9a\xde\xd1\x68\x4c\x7d\x14\x2d\x67\xe1\xee\x08\xc8\x45\xeb\xa7\xef\x23\x25\x5a\x44\xfe\xa8\x2d\xd5\x52\x69\x5c\x9b\x04\x0b\xf4\x46\xc0\x6f\x4b\x4f\x53\x82\x1a\x36\x4d\x48\x14\xd6\x88\xeb\xa2\xf4\x64\xbf\xa6\xcb\x0a\xa9\x7f\x69\x24\x42\x93\x4c\x37\xe7\x30\x8a\x4c\x64\x67\x45\xeb\x7e\xc9\x8c\xd8\xc0\x25\xb5\xa9\x0a\xcc\x66\xa7\xc8\x40\xb3\x26\xba\x32\x77\x25\x65\xe8\x3b\x20\x82\x85\xf0\x71\x8e\xb4\x44\x3c\xa0\x67\x51\xf6\xec\xe3\xa8\xe7\x1e\x6d\x1c\xca\xd1\x30\xb2\x93\x75\x25\x25\x69\xb4\x1a\xc2\x7c\x33\x58\xef\x80\x2e\xea\x59\x58\x2c\xb2\x05\xc6\x5f\xe1\x82\x00\x07\xf2\x7d\x80\xd7\x51\x76\x95\x0a\xb6\x24\x3d\xc0\xcf\x35\x92\xf8\xc1\x1e\xef\x58\x6c\x12\x4a\x60\xf4\xdd\xb5\x48\xe2\xc2\x5f\x1e\x67\x69\x99\x67\x38\xc8\x86\x3e\xca\xaf\x48\xe8\x9b\x52\x95\xed\x11\xc2\x27\xaa\xf6\xa9\x9f\x41\xed\x21\xd4\x75\x03\x1c\xb1\x28\x65\x90\x3f\x82\xbf\x71\x83\x68\x4c\xcb\x59\xcb\x7c\xcf\x4a\xb8\x4e\x1b\x89\x57\xe8\x22\x4c\x31\x81\xd5\xb0\x77\x24\x75\xb1\xd6\x6f\x47\xb4\x83\x59\xcf\x5f\x5c\xfb\xee\xd1\x60\x0f\x0b\x3e\x5a\xcb\x8a\xa0\x71\xd0\x58\x3d\x96\xc0\x88\x4e\xbe\xc4\xfc\xa6\xbb\x0e\xa1\x87\x77\xce\xee\x75\x51\xf9\xa2\x87\x36\x0a\x2d\x92\x33\x62\x7b\xcd\x84\xf3\xa8\x4e\x1e\xab\xdf\x24\x39\xf9\xfe\x8e\x72\x84\x37\x69\x14\x90\xf9\x5c\x6d\x69\xe1\x04\xca\x97\x09\xc3\xba\xad\xaf\xb0\xba\xd7\x5a\x63\xa2\xff\x0c\x90\x88\xc6\x51\x3b\x9f\x2d\xfa\xbd\x96\x30\x21\xcf\x92\xb6\x74\x2d\x29\x21\xd6\x1a\xec\x9a\x4c\xb7\xa1\x84\xab\x63\xc2\x59\xdb\xb5\x64\xf7\xd9\x28\x17\xc2\x25\xff\x89\xef\x28\x24\xd1\x9a\x5c\x90\x28\x88\x2c\xcd\xb4\x2c\x11\x20\xb5\x5f\xa1\x74\x6d\x0a\x5c\xb3\xf3\x1d\x67\x03\xb3\xd9\xb1\xbe\x03\xb9\x8c\xc2\xd5\x18\x72\x0e\x8b\x1c\xd8\x07\x26\xea\xd6\x3a\x9a\x42\xc5\xb6\x34\x5d\xc6\x91\x9c\xd4\x2c\xd1\xa8\x6b\x27\x12\x6a\x43\xe3\xd6\x38\x66\xcd\xe2\x9b\x18\x09\xc7\x87\x29\x46\x5e\xb6\x27\x5c\xcf\xc2\xe2\x7b\xb2\xde\x80\x5f\x60\x2a\x48\x3a\x85\xe9\xb4\xe2\xb6\x3c\x4c\x0f\xe4\x4b\x5c\xbc\x4d\x8c\x5c\xfa\x39\xb7\x91\x85\x8b\xdc\xe5\x77\x98\x9d\x8b\x1b\xbe\xc0\x4d\x19\x4e\xc9\xe7\x7d\x10\x65\x73\x87\xed\x2b\xca\xe6\x7e\x00\x58\x6f\x9e\xde\xed\x01\xb5\x3b\x4f\xef\x76\x01\x13\xf3\xb2\x0d\x6b\x05\x58\x7f\xa2\xf2\xeb\x27\x46\xe3\x3b\x68\x30\x07\xdc\x50\x84\x7e\xb5\x24\x9e\x2a\x36\x3a\x03\x24\xb5\xae\xe2\x24\x79\x0b\xd3\x08\xe6\x72\xf9\xba\x8d\x4a\x1a\x2f\xf2\xe9\xb8\x78\x0b\xa7\x71\x51\xc2\x1c\x46\x2d\x26\x3b\x83\x40\xb2\x6c\x88\x53\x9a\x62\xdf\xd0\x4b\x16\x53\x45\xa9\x5b\x87\x4c\xc4\x16\x0c\xb0\x49\x4c\x3a\xc9\xb9\x0d\x59\xfc\x5d\x66\x82\x81\xc1\xdf\xdb\xbd\xbb\x83\x41\xc9\xf9\xed\xd8\x13\xc5\x02\xd3\x03\x97\xa0\x67\xda\xe3\x1c\x35\x42\x15\xb1\x64\x64\x73\xb3\x0c\x3d\x19\x7d\xfa\x34\xec\x74\x3a\xbc\xef\x29\x57\x54\xd1\xfa\xcf\x30\x8e\xfe\x77\xa0\x88\xc2\x6f\x6e\xf8\x60\xad\x46\xff\x09\x46\x76\x0e\x65\xc8\x4a\x1e\xdc\xed\xad\x02\x3a\x84\x3c\xfd\x18\x06\x2b\x80\x16\x90\x31\x39\xd0\xc5\xc7\xe4\x8a\x9a\x24\xbe\x9d\xbd\x88\x5b\x00\x6e\xab\xe5\xe8\xf7\x1f\x7e\xe8\x26\x4f\xbf\xff\xc9\x6e\x39\x42\x8b\x38\x27\x76\xfa\x7a\x06\x9f\xbe\xdd\xde\x93\xc4\xd4\xdc\xc3\x50\x93\xd2\x2c\x85\xd4\xd6\xb3\xef\x0a\x38\xec\x31\x0d\xea\xb0\x79\x64\x91\x6f\x44\x39\x1e\x52\x7c\x72\x2d\x3a\x93\x84\x2b\x30\x03\xcb\x88\x47\x21\x2b\x4a\x33\xab\x35\x1a\x4d\x66\xce\x21\x7e\xf8\x0b\x96\x9f\xdd\xee\x29\x27\x56\x6a\x66\x43\x87\x13\x54\xbe\x66\xa7\x19\x99\xa7\xc8\x1a\x27\xc8\x9a\x39\xc6\x62\x14\x6a\x64\xd5\x98\x90\x24\x56\x62\x13\x7e\x22\x6f\x54\x69\x55\xed\x91\x3d\xed\x0e\xf5\x07\xd7\x46\x75\xc9\x87\x09\xcc\x4b\x62\x3e\xe3\x47\x7e\x5f\xc4\xd6\x99\x18\x53\x07\xb2\xcf\x91\x8e\xae\x6c\x34\x33\x43\x50\xb4\x37\x7a\x26\x23\x73\xb3\x29\x53\x5f\xf1\xda\x74\xa8\x1a\x84\x52\xb1\x2a\x1f\x37\x5a\x43\xe4\xdd\xfb\x23\x15\x92\x8d\x94\x03\xfc\xd3\xbd\xbd\xcd\xe1\x7f\x42\xcb\xd4\xaa\xb1\xa6\xb4\x74\xce\xda\xa3\x2c\x02\x76\x0e\x70\x1f\xe0\xe2\xd8\x69\x5f\xcf\x24\x40\x6a\x36\x0f\xa9\x91\x0f\x96\x39\x4c\xec\x4f\xdb\x83\x74\x2c\x09\x3e\xbb\x5d\xe3\x5a\x16\x9b\x21\x77\x6b\xa9\xdd\x6b\x27\x55\xcf\x11\xdc\x63\x4c\x35\xd3\xa4\x67\x1b\x5c\x66\x6f\x13\xc0\xa0\x6a\x8f\x12\x1c\xe3\x32\x5f\x6a\xd0\x5b\x35\xa7\x84\x53\x08\xc8\xa6\x56\x72\x52\x62\xef\x8e\x14\xfb\x36\x9e\xc9\xd6\x5c\x49\x77\xa9\x32\xc7\x3e\xc1\xd3\x18\x39\x67\x64\x9d\x6f\xe9\xb6\x1a\xa7\xd5\xf1\x73\xcc\xa5\xcf\x3b\x9b\xaa\x22\xc5\x1a\x81\x5c\x49\xc0\xb2\x31\x71\xe6\x67\x0b\xe1\xa7\xe2\xe7\x2c\x1c\xe2\xc0\x0e\x5b\x33\x6c\xec\xf3\x8b\x32\x8f\xd3\x69\x9b\xb2\xc6\x14\xfc\xc0\xa4\x9f\xe6\xc4\x56\x23\x8e\x52\xb6\x23\xd7\x99\xbc\xa7\x6d\x7a\xd6\xd2\x74\xc4\xaf\x77\xea\xda\xd1\xa9\x69\x05\xa2\x38\x7a\x8e\xf9\xfc\xa9\xd7\xb5\x41\xa1\xa8\x33\x3a\xe2\x2c\xd4\xe2\x5f\x22\xc5\x3e\x81\x45\x99\x67\xd7\x1b\x96\xab\x1c\x8c\x94\xa2\xed\xc7\xba\xfa\x41\x09\xfa\x5c\xb0\x1e\xfb\x14\x0d\x28\x08\x76\x70\xb2\xe0\x8e\xb2\xdb\x7a\xbc\x78\x7b\x7e\xff\x9f\x93\xe3\x09\xb4\x1f\x2f\xee\x09\xb1\x64\xf1\x1d\x5b\x8e\x12\x5d\x76\x94\x90\xf6\x18\xd9\x59\x68\xf5\x19\xef\x46\xa7\xee\xd5\x50\xd4\x6c\x32\xd0\x29\xc7\xb6\x12\x17\xda\xc0\x7f\x36\x99\xb1\xe9\x14\x25\x32\xfa\xb6\xce\xca\x74\xd2\x8d\xde\x7e\x5f\xa4\x8e\x70\x09\x39\x06\x82\xee\x2a\xaf\x17\x25\x01\xfa\xc5\x7f\x92\x0d\xa6\x1e\x6e\x96\x12\xdd\x40\xb0\x7d\xa4\x98\x07\x09\xac\xfd\x18\x1c\x59\xdd\x5b\x32\xba\x24\xb1\x04\x27\x70\x52\x36\x46\x25\xa7\x5b\xfb\xa1\xb9\xaa\xec\xca\xbe\x56\xc5\xbd\x8c\xf5\x00\xfe\xa0\xd4\x47\x5c\x1b\x96\x3d\xfb\x8e\x12\x58\xa3\x7c\x86\x22\xaf\x76\x36\xd7\xcb\x54\x94\x0b\xdd\xf5\x6d\xf1\x79\xd3\xd7\x8c\xdc\x02\xe1\x5d\x27\x97\xf6\x65\xd5\x8b\x83\xfa\xb2\xb8\x00\x5d\x0b\x6b\x86\x78\x52\xc3\xb7\xb0\x91\x13\xb8\x86\x18\xe3\x2a\xd1\x26\x6e\x45\x34\x29\x78\xaf\x4a\xae\x1e\x73\xce\xd3\x1e\xdf\xe7\xe1\xbc\xa3\xdd\x18\xfb\xad\xc8\xf7\x3b\x77\xd3\xd4\xe8\x47\xc6\x66\xf0\x27\xe8\x46\x6b\xd8\xb4\x1d\x48\x58\x8b\x50\x5e\xa3\x7e\x53\x4f\x83\xe4\xbe\xc0\x9a\x36\xd3\xc2\x97\x49\x19\x2f\xf0\xc6\xac\xba\x3d\x16\xf1\x02\x6a\xfa\x34\xd2\xbd\x37\xd8\x05\xe5\xbd\xe5\xeb\x29\xcb\xac\xa1\xa7\x77\x7b\x20\x87\xbf\x2d\xe3\x9c\xb8\x2b\xec\xce\x89\x30\x8a\xc8\xe0\x2b\xc6\x70\x1e\x38\x4a\xb4\x45\x3a\xfb\x98\xf5\x9d\xfd\x1e\xa4\xf0\xca\x3b\x87\x25\xd5\x64\xd9\x65\x12\x75\xcb\xcd\xfd\x96\xe2\xd5\xc7\x49\xe2\x00\x7e\x43\x40\xa6\x22\xb9\xa9\x05\xcc\xc6\x13\xf2\x79\xd6\x40\x7c\x05\x76\x98\x88\xa1\xd1\xbf\xac\xc9\xf8\xee\x5d\x6e\xc3\x67\x5f\x1b\x75\x26\x31\xea\xda\xc1\x83\xf2\xee\x60\x00\xef\xdd\x2b\x79\x01\x41\x90\xc3\x72\x99\xa7\x5e\xb9\x5a\xc1\xa4\x80\xd5\xc5\xb3\x67\xff\x6e\xfd\x44\x52\xc2\x9c\x7f\x24\xe0\x0e\x01\x38\x78\x70\x23\x8a\xc4\x8e\x80\x15\x2d\x48\xbe\x2c\xfe\xd6\xbc\x04\xfc\x50\x53\xc0\xf2\xe9\x25\x9a\x44\xd8\x60\x44\x15\x92\x18\x16\xad\x12\xdc\xb0\x77\x4f\x5b\xc1\xe0\x01\x44\x87\x83\x82\x90\xf6\x02\x76\xe7\x79\x09\xe7\x05\xbe\xed\xae\x3c\x44\xef\xf2\xae\xe9\xcc\xc3\x05\xb9\x24\x8a\x0b\x3a\xbf\x66\x71\xda\xf2\x81\x8f\x19\xe9\xcb\xcd\x3d\x12\xda\x4e\x6e\x6a\x67\x8a\x3e\xb6\x3b\x6d\xac\xac\xd6\xc6\xca\xa7\xf3\xf0\xe7\xf4\xf9\xbf\xec\xda\x98\x1a\x6f\x09\xfc\x47\x2c\x91\x57\x52\xbf\x1e\x29\xea\x88\xd5\x96\xd9\xa5\x42\xf7\x00\xe8\x45\xd6\xdc\xe4\x4f\xb8\x2e\x82\x4a\x42\xff\x34\xd1\xbc\x76\x0d\x1f\xea\xf3\x4c\xa3\x7e\xb5\xb3\xbb\x59\x5e\x09\xde\xc6\xd6\x62\x75\x72\xbb\xa0\x7b\x93\xd8\x4e\xb4\xab\x33\x54\x91\xf1\x69\xa5\x8c\x2f\xa9\x8c\x7f\xcf\x66\xd8\xeb\x34\xb9\xe6\x8f\xb5\x94\x75\x93\x6e\xb0\x6e\xe2\x2c\xb5\x9d\x69\x1e\x4d\x93\x78\x3e\x87\xf9\x9e\xe4\x78\xd7\x8f\x36\xb8\xf2\x20\x07\x21\x48\x40\x71\x87\xdd\xf3\x62\x74\x17\xe0\x1b\xe4\x99\x64\x70\xb3\xba\x43\x85\x15\x5d\x80\x1f\xe0\x75\xd1\xca\x03\xbb\xbf\x33\x19\xc2\xd1\x20\x1f\xc2\x11\x6a\x4e\xd2\x81\xe9\x72\x0e\x31\x39\xfe\xe0\xee\x5d\xf9\x27\x48\x3a\x32\x75\x3e\xbe\x2b\x5f\x00\x2d\x0a\x93\x13\xa7\x5e\xf2\xe9\x53\xd2\x89\xd3\xb8\x8c\xc3\x24\xfe\x1d\xe6\xc1\xbd\x7b\xad\xa4\x73\x95\xc7\x25\x79\xb5\x1b\x80\x64\x90\x76\x0a\xec\x14\x0e\x3a\x39\xbc\x84\x79\x41\xfe\x8a\x96\x63\x28\x55\x30\x05\x79\x70\x43\x5b\x93\x93\xa6\x06\x9f\x3e\xa5\xab\x00\x24\x01\x08\xef\xdd\x23\x72\xe2\xee\x60\xa0\x7c\x0f\x7f\x0e\xd7\x46\xbd\xfe\x50\xf9\xd5\x19\x87\x49\xd2\x0a\x83\x53\x52\x08\x50\x6e\x52\x09\x14\x00\xbe\xc7\xea\x5f\x70\x49\xb7\x12\x55\x2d\x19\xa0\x35\x10\x80\x64\xb5\x2b\x21\x98\xad\x39\x92\x1e\x3d\xfd\x3d\x7d\x97\x7c\x70\x0b\x41\x1a\x7f\x4e\x8f\x9a\x24\xa0\x98\x1a\x29\x65\xae\xad\x66\x62\x91\x1d\xa2\x8e\x80\xf4\x91\x26\xc7\x1e\x22\xdc\x98\x68\x1c\xf6\x8e\x24\xd0\xb3\xae\x64\x1c\x97\x4f\x28\x7e\x5c\xb4\x91\x0a\x72\xa9\x18\xfa\x8f\xf1\x19\x97\x24\x0e\xf6\x65\xb3\x7a\x96\xa6\xf8\x8c\x2c\xec\xf1\xf2\x43\xfc\x5c\xc7\x0f\x83\xb2\x7f\x41\x4a\x3a\xd4\xde\x3e\xd8\xea\x6d\xd9\x9b\x10\xc5\x85\x51\xc7\x11\x43\xeb\x33\x46\x68\xe4\x44\x73\x64\xa1\x5c\x23\x3d\x9a\x5e\xea\xbb\xe6\x48\x82\x3b\xdd\x76\x5c\x66\x84\x9a\x1e\x82\x86\x9b\x53\x8d\x7d\x46\x3d\x63\x44\x71\xd4\x8e\xb1\xe1\x19\xdb\x05\x4b\x7a\x69\xb9\x88\x30\x9c\x83\x7f\x15\x27\x49\x3b\x22\x26\xe4\xad\xcf\x1f\xf2\x76\xc0\xb7\xa8\x04\x96\xde\x72\xd0\xe2\xbb\x14\x8e\xe6\x82\x11\xe0\x47\x13\x52\x57\x10\x6a\xbf\x93\x01\xce\xd9\xf3\xc8\x91\xa4\xf0\xf8\x99\x84\x84\xec\xe4\xcb\x71\x99\x61\x1b\x34\x24\xbb\x04\xdd\x32\xee\x70\xdb\x34\x0c\x00\x09\xeb\x01\xe9\x40\x9a\xc3\x21\xb9\xd6\xca\x07\x45\x70\xef\x9e\x5d\x96\xa1\xb2\x6e\xc4\x46\x71\x9a\xcb\xbb\x86\xbc\x45\x9c\xe6\xea\x8e\xc1\x36\x84\xd3\x9c\xef\x0d\x80\x08\xc2\x5c\x91\xda\x79\x85\xd4\x5e\x05\x2b\xba\x78\x98\xbd\x1d\x6b\xbe\xa4\x05\x1d\x7e\x6c\xa2\x9e\x05\xb1\xd4\x6c\x4f\xcb\x07\x21\xfa\xc2\x0a\x14\x83\xb8\x95\x74\x16\x79\x56\x66\xe5\xf5\x02\x2a\x0b\x3c\x1d\x81\x1b\xa5\x81\x77\xbb\x40\xea\x88\xbb\x5d\xd1\xc4\xbb\x5d\x20\x35\xe2\x14\xcd\xfe\x55\x00\xb4\xa2\x99\x18\x00\xc3\x7c\x04\x68\x67\x4f\x61\xf9\xfa\x2a\x65\x9d\xcd\xa8\x64\xb2\xdc\xfe\x26\xda\xc2\xf9\x65\xa3\x7c\x49\xd2\x80\x61\xd8\xf0\x13\xd2\xcb\xda\x57\x12\x59\x2d\x5a\x82\x2a\x05\x2b\x03\xcb\xa0\x86\xde\x94\x97\x61\xd2\xe6\x5e\x76\x49\x53\x82\xa8\xec\x76\x81\x6e\x85\x25\x74\xbf\xb4\xbd\x65\xd8\xf9\x02\xdf\x1f\x6f\xd4\xa1\x9e\x42\xc5\x9f\xc4\x0e\x9e\xac\x63\x56\x2b\xd4\xf0\x3b\x35\x1a\xde\xac\xc5\xb7\xb6\xa9\xeb\xc6\x58\x90\x81\xb6\x99\xa9\xa0\x7d\x15\x97\xb3\x36\x65\x1e\xb0\xf4\x82\xf2\x92\xf4\x6c\xb3\x82\xff\x44\x1d\xb6\xae\x93\xd6\x17\xf0\x27\xea\x8c\x3d\x66\x1d\xdf\xb6\x53\x78\x41\x7f\x82\xce\xd9\xf5\x8a\xfa\x93\x2d\x24\xb9\xc9\xc5\x72\x3a\x85\x45\x09\xa3\x36\xa3\xba\xd9\x6d\x7f\x99\x1f\xf8\xe3\x77\xe0\xa6\x6b\xed\x4f\xd0\xf4\xbd\x0b\x38\xc9\x72\xd8\xe6\x0c\xd6\x9b\xf5\x84\x5e\xcc\x9f\xa0\x63\xd2\xac\x3d\x0f\xcb\xf1\x0c\x16\x6d\xce\x31\xb5\x61\xe7\x58\x8a\xfa\x13\x74\xd0\xb6\x53\xe6\x4f\x34\x57\x14\xfe\xae\x0d\xbb\x43\x2e\xe3\xcf\xd0\x25\xf2\xfe\x41\x5d\xbf\x9b\xf6\x8c\x59\xd4\x9f\xa0\x83\x0a\x4c\xd5\xb6\xb5\x6c\xd1\x8a\xf9\x13\x74\xcc\x96\x0a\xf0\x1f\x5d\xef\xa5\x94\x40\xb7\xc5\x2f\xf9\x71\xfe\xf4\x5d\xfc\xec\x9f\xdf\x3b\x62\x17\x5d\x49\x50\x06\xbc\x8d\x9b\xe9\x88\xa4\x67\x58\xb3\xd0\x77\x12\x36\xa8\x74\xe8\x57\x73\xa3\xe5\x61\x14\x67\xed\x71\x98\x47\xb7\x65\x64\x7f\xd9\xef\x5f\xfc\xb0\xff\x4b\x58\x39\xb2\xa0\x2a\x3c\x55\x66\x23\x64\xc3\x48\x5c\x1f\x3d\x30\xf4\x45\x8b\x7d\x23\x18\xad\x37\x02\xbe\xa7\xb3\xda\x1b\xc9\x22\x7a\x2a\x96\x2d\x3f\xee\xd0\x08\x86\x3b\x24\xd0\x1a\x84\xb0\x77\x34\x62\x51\x48\x9b\x01\x73\xdb\xd0\x19\xf6\x19\xa7\xa6\xc4\x90\x7d\xc0\x92\x64\x24\xea\xff\x03\xca\x75\x6e\xa5\x5a\xdf\x57\x73\x77\xfa\x46\xd2\x03\xee\xbe\x7a\xf8\x0c\x6b\x69\x23\x2b\x1a\x70\x00\xfa\x98\x59\xe5\x2b\x56\x5e\xe6\xc0\x5a\x93\x8c\x67\x61\x46\xb7\x24\x6a\x18\x11\xc8\xeb\xd3\xda\x69\xaa\x9e\x40\x2a\x92\x28\x61\xb8\x67\x85\x41\x41\x63\x7f\xcb\xb4\x91\xdb\x44\x5f\xfe\x1b\xc8\x21\x23\x64\xcb\x19\xa1\x5c\x57\x1a\xdd\xaa\x00\x98\x9f\x5e\xbe\x3e\x7e\x37\x7f\x7b\x50\x49\x04\xfc\xfe\x03\xbc\x46\xff\x30\x5c\x1a\x4b\x0a\xd6\x24\x86\x49\x44\xf9\xe4\x2a\xa5\x89\x08\x9e\xc7\xbd\xc1\xe3\x7a\x29\xfe\x0a\x17\x61\xf8\xc6\x7b\x9a\xc6\x6a\x48\x29\x29\x53\x57\x76\xc5\xaa\xc0\x31\x3c\x89\xb7\xbb\x09\x58\x8c\x19\x9a\xdc\x33\x72\x12\x09\xbe\x38\xea\x1d\xbc\x98\xee\x2b\xee\x53\xf9\x16\xfd\x49\x3b\xd0\x0d\xab\xa5\x38\x46\xed\x2f\x35\x0d\x0b\x36\x52\x91\x45\x4a\x9b\x2d\x07\xae\xeb\xeb\xb8\x36\x12\x08\x96\xf1\xb8\x1a\x22\x4e\xbc\xd8\xec\x79\x33\xad\xec\x90\xef\x52\x18\xc2\x17\x8f\xb3\x87\x9b\xd7\xe6\x10\x5b\xf2\x40\xe3\xfa\xdb\x30\xbc\x4c\xb1\xba\x2f\xed\x0b\x12\x54\x97\x24\x5a\xcd\x31\x3c\xb2\xa2\xa1\xc9\x43\x28\x38\x0e\x7d\x7d\xdb\x74\x09\xe9\x7e\x05\x1c\xda\x3a\x31\xad\x36\x52\x21\x93\xec\x71\x44\x65\x13\x41\x6b\x8d\xa8\x47\xaf\x59\x63\x6f\x2b\xf6\x80\x46\xd9\x24\xeb\x50\x47\xa8\x94\x67\x72\x5c\xe0\x96\xfc\x26\x02\x78\xcb\x36\xfe\x45\x52\xe2\x18\x8a\xb0\x0d\x90\xa4\xb1\xf4\xdf\x2e\x9a\xab\x4a\xfc\x1b\xf0\x20\xbd\x5d\xa7\xb9\xa1\x9e\xb3\xa7\xb9\xf1\x30\x5a\xba\xda\x94\xe0\xdb\xde\xfe\x60\x30\x80\x9d\x0f\xf0\xfa\x2c\x8b\xe0\xbd\x7b\x1c\xf8\x22\x8a\x8b\x45\x58\x8e\x67\x38\xb0\xb4\x95\xc2\x2b\xef\x65\xb6\x2c\x20\xf9\x49\x33\x19\x1c\xe0\x19\x4d\xa2\x54\xf1\x3e\x45\x87\x1b\x0e\x1e\xf8\x3e\xaa\xce\x43\xb2\x2d\x9d\xc2\xc0\x00\xb6\xa8\xb1\x73\xc2\xc9\x17\xd8\x31\x71\x74\xc3\xa0\xc6\xc0\x47\x71\xf4\x16\x8e\x61\x7c\x09\x1f\x23\x7d\xdd\x0d\xc7\x42\x3b\x5e\x8c\x26\xf9\x8b\x04\xd7\xa2\x99\x28\xea\x50\xae\xef\x84\x2c\x81\x98\x7e\xd9\x16\x07\x68\x7d\x03\x3d\xdc\xe6\xbf\xe9\x6b\x5f\x2b\xf3\xe9\xe7\x3c\x9c\x9d\x95\xdd\x7f\xae\xc9\xc7\xab\x06\x75\xb5\x63\x7c\xc8\xda\x07\x39\xf9\xf2\xbe\xf2\x47\x2e\xca\xdc\x23\x23\xc5\x49\x6c\x11\xfe\x55\x1e\x97\xd0\xc3\x9a\x0a\x0e\x51\xe2\x48\xaa\x84\x59\x60\x0d\xd1\x31\x89\x27\xb3\xe9\xcd\xda\x66\xac\xec\x87\x98\x02\x0d\xe8\xc7\xaa\x2e\x1a\xe6\x3c\xc7\x72\x92\x11\xbe\xf8\xde\x2c\x2c\xda\xe4\xaa\xf3\x1c\x57\xb1\x9b\x54\x91\x98\xda\x77\x59\x72\xde\x52\xc9\x6a\x7b\x07\x60\x9f\xf4\xf4\x10\x5d\x1c\x31\xfd\x2e\x5c\x96\xd9\x24\x1b\x63\x4c\x29\xf1\x37\xdf\x31\x49\xb1\x86\xee\x53\xb1\x61\x2a\xdc\x70\x15\x15\xa6\xc9\xfe\x36\x9a\x84\x97\xe1\xc7\x78\xbe\x9c\x7b\xfd\xc3\x23\x6f\x3c\x0b\xf3\x70\x8c\x76\xc1\x8e\xf7\x32\xbc\xf6\xb2\x34\xb9\xf6\x68\x5e\xb6\x97\xc0\x12\xdd\xf1\x5a\xcb\xc5\x02\xe6\x18\x93\x3a\x4c\xa3\xbd\x2c\xf7\x92\xec\x8a\x5c\x08\xd8\x95\x74\x89\xe6\x3b\x2a\x65\x59\x94\xde\x05\xf4\x96\x69\xfc\xdb\x12\x76\xf4\xaa\xd9\x30\x0e\x2b\x86\x77\x73\xda\x91\xa2\xcc\x33\x42\xa2\xc9\x95\x06\xcb\x17\xb0\x6c\x8e\x23\x99\xfe\xa5\x3e\x15\x81\xf3\xb0\x58\x93\xd4\xaf\x6a\x4e\xb2\xf0\xa1\x38\x4b\xbd\xd6\x6b\x8a\xd3\x6f\xa3\x92\x61\x05\xa0\xf2\xc3\x1c\x32\x5c\x0f\x36\x1b\xa5\x72\x46\xc6\xfc\x95\x6e\x0a\x30\xd6\x86\xb3\xd2\x98\x87\xeb\xd4\x27\x60\x1e\x92\x0e\x40\x8f\x92\x03\xc4\xb0\x10\xfd\xa6\x5c\xb1\x1d\xa4\x66\x7d\xf9\xd6\x1b\xf9\x71\xdb\x3c\xbb\xaf\xe1\x27\xd2\xc1\x25\xb8\x38\x0c\xc5\x5f\x47\x5a\x71\xd0\x30\xaf\xb5\xdc\x50\xd3\x80\x21\xa5\xeb\x9b\x4e\x68\xe4\xa8\x4e\x1c\xc0\xc2\x47\x25\xd6\x85\x47\x98\xe3\x41\x23\xbe\xe3\x7c\x78\x06\x41\xf5\xe6\x12\x9e\x1c\x2f\xa8\xbd\x09\xff\x73\x38\xe2\xb3\x49\xf4\xbf\x01\xcc\xea\x5c\x49\xf5\x15\x6b\x7a\xfe\x1e\x87\x29\x25\x8e\xa0\xcc\x16\x56\x56\x5b\x55\xe9\xd6\x00\x23\xa4\xcc\xc3\x26\x1a\xb4\xaa\x71\x6c\x49\x3b\x41\x98\x23\xc8\xe9\x9f\x70\x4a\x90\xbf\x15\xca\x08\x69\xe3\x6e\x9a\x6b\x84\x5f\x55\x89\x32\x6a\xe8\x48\xe3\x59\x8c\x7a\x46\x7b\x4d\x7a\x76\x59\xc6\x49\xb1\x17\x65\xf3\x3d\x88\x34\x5d\x46\x66\xac\xa9\x51\x20\xdd\x9d\x22\x95\xaf\x41\xdc\x9f\xbd\xfd\xee\xd7\x17\xef\x5e\x56\xda\x6c\x58\x3b\x78\x7b\x98\x5d\x4d\x18\xdb\x04\xb4\x3b\xc5\x75\xd4\x81\xf9\xdf\xbf\x0f\xf3\x69\x97\xfd\xd1\xf3\x81\x4f\x60\xea\x0a\x4e\xa3\xe2\x03\x7f\x9e\x45\x18\xa4\x8d\x42\xd0\x58\xd2\xd0\xf1\x13\x82\xe0\x4a\xd6\xd0\x24\x66\x10\x74\xb9\x07\xfc\x14\x5e\xb5\xc9\xa2\x14\x71\xec\xa8\x60\xe0\x3f\xc2\x3c\x01\xae\x18\x76\x17\x3e\x30\x35\x37\x59\xd0\xe7\x0d\xee\x37\xd5\x16\xa0\xb1\x3a\xdf\xd7\x4b\xf2\x5f\xc1\x2b\xef\x2d\x31\x65\xa1\x3f\x09\xbd\x84\x8c\x1a\xdf\x30\x49\xab\x29\x26\x34\xe9\x77\x6c\x25\xda\xb7\xa0\x42\xd7\x88\xc1\x6f\x86\xe4\x6b\xb7\xfe\x3b\x3b\x68\x03\xc3\xbf\x7d\x8b\xe3\xfd\xbc\xb9\x41\xde\x5d\x30\x1f\xb5\x26\xe6\xf2\x1a\x70\x44\x6b\x7a\xfe\x22\x8b\xae\xeb\xf6\xbb\xb2\xfb\xeb\x78\xd5\x3d\xca\xf2\x7a\x34\x02\xfe\x7b\xfc\xf6\x7b\xba\x7a\x84\x75\x4c\x7e\x66\x88\x9f\x19\x71\x05\xbe\xcf\x07\xcd\x6e\x2f\xab\xb9\x16\xea\x5a\xc7\x7a\x5b\x5a\xc7\xd8\x52\xe1\x9b\x04\xeb\x59\xca\xca\x44\x95\x02\x1b\x2f\xee\x88\xf6\xc2\x31\xd9\xbc\x7b\x27\xf4\xdf\xfb\xe4\xdf\x7e\x77\x23\x20\xf7\xaa\x41\xa6\xda\x55\x93\x61\x56\xca\x76\x29\x41\x8c\x4d\xbf\xbe\x0a\x74\x00\xfa\x3d\xb5\xd9\xfd\xae\xda\xfc\x5e\xcf\x50\x66\x9a\x03\x37\x7f\x0e\x04\x0a\xf5\x80\x63\xc3\xd4\xb4\x2c\x01\xde\xf3\xea\x71\x84\x71\xf1\xad\x23\x56\xb7\x1c\x4d\xce\x70\x18\xa6\x97\xc2\x2b\xc6\x65\x64\x3f\x8a\x5a\x8f\x48\xe2\xc6\x2e\x90\xc6\x77\x08\xd4\xa0\x1d\xa7\x6a\x08\x17\xa5\x67\x6b\x89\x17\xa9\xbb\x1a\x09\x98\x85\xb2\x9f\x7e\x71\x11\x43\x17\x9f\x22\x64\xd8\x5e\x5c\x4b\xd8\x90\xa3\x28\x29\x66\x44\xfc\x58\xfd\x7e\x95\xec\x51\xf6\xef\x3a\x59\x6b\x0d\x78\x3a\x6b\xc3\x8a\x7c\xd1\x7d\x5e\x42\x18\xb4\xa1\x2a\xf6\x0e\xe4\x24\xce\xf0\x92\x03\x1c\xf6\x38\xc5\x27\x50\xe0\x5b\x1d\xc9\x8d\xbd\x03\x13\x4e\x75\x24\x93\x0f\x91\x23\xb9\x03\x0b\xf1\xd0\x66\x3b\x3c\x34\x5c\x81\x87\x44\x84\xc6\xc5\x79\x78\x19\xa7\x53\x51\x55\x7c\xf1\x4d\x1e\x17\x65\x9c\x42\xed\x32\x25\x29\xf3\xd7\x98\x13\xf1\xa4\x2d\x96\x17\xf3\x58\xb7\xa6\xe8\x63\x65\xd6\x62\x53\x62\x0c\xe1\xaf\xad\x8e\x23\x6a\x14\x69\x50\x43\xc2\x86\x69\xe4\x85\x8b\x45\x62\x13\xb0\xae\x4b\x0a\x47\xa8\xdd\xd8\xeb\xea\x1e\x6b\x87\x13\x46\x51\x36\x2f\x6c\x84\xa2\x9f\x73\xd2\xad\x61\x28\x6d\xac\xf7\xd6\xee\x1d\x0d\x6d\xd7\x32\x9b\x8f\xad\x93\xf9\xb8\xc1\x5c\xee\x6b\x73\xd9\xe8\x5b\x9f\xf9\xa8\xd0\xb1\x34\xbc\x94\x05\x3b\xc3\x21\x3b\x96\xd6\x90\xa4\xb2\xd8\xfa\xb9\xee\xb9\xd0\x35\x02\xd6\x25\x76\xfc\xd7\x0a\xab\x58\x61\xfa\xbc\xd9\x6a\x81\xad\x3d\xce\x37\x5e\x2a\xeb\x08\x3a\x74\x6e\x0e\xe3\x81\x7d\x93\x1d\x84\xb0\x79\x2b\x76\x24\xab\xc5\x92\x12\xc5\x56\xab\xed\x48\x53\xc5\xb7\xe5\xe8\x76\x5d\x9b\xa7\xf6\xc8\xfe\x81\x5b\xab\x67\x61\x36\xe7\x38\x54\xd9\x9b\x64\x39\x31\x76\xb2\x28\xb4\xaf\x09\x21\xf3\x18\x4d\x3f\x2f\x4c\x3d\xf8\x11\x8b\x92\x29\xae\xda\xce\x74\x1e\x96\x63\xd6\x10\xd3\x46\x0e\xac\xec\xdb\x4e\x0d\x02\xfb\xc1\xd7\x54\x95\xbe\x0c\xca\xc0\x2c\x62\xd9\x02\xa6\x06\xb0\x9f\xe5\xec\x51\xe3\xcc\x91\x9b\xf6\x0f\x87\x33\x66\xfb\xde\x63\x09\x66\x9b\x20\x02\xf5\xfa\x8a\x87\xb0\x62\x9d\xf5\x9b\x57\x0c\x4b\x8b\xc6\x20\x14\x65\x78\xb1\x4c\xc2\xbc\x3d\xce\x12\xb4\x34\x63\x89\x21\x31\xcf\xae\x0a\x65\x6d\x1d\x8a\x01\x3d\x42\x5f\x24\x23\xf0\x2e\x9e\xc3\xd3\x08\x16\x63\xea\x40\x3b\x0d\xd1\x9f\x15\x7e\x92\xed\x4d\x07\x9b\x71\x6c\xb1\x89\x54\xce\xfc\x66\x9e\x5e\xf5\x05\xc5\x43\x66\x0d\x50\xaa\xc9\xf5\xb7\xa6\x91\x79\x76\xb5\x71\x0b\x23\xe7\x29\x9e\x3d\x12\xd2\x73\xc5\x91\x18\x53\x4c\xf9\x19\x8d\x3b\xe1\x38\x29\x3a\x68\x49\x15\x1d\x18\xc5\xa5\xcf\x43\xed\x9e\x3f\x51\xd1\xfb\x45\xe4\x55\x4f\xf5\x7c\x3b\xba\xb2\xa2\x87\xd7\x54\x98\x7f\xc4\x70\x4f\xd6\xf8\xcc\xae\x06\xa4\xe1\x59\x51\xae\x93\x89\x36\x4b\xca\x96\xb8\xa9\x1e\x49\xc1\xbd\x56\xea\x5c\xa7\x41\x80\xf3\x80\x09\x42\xd2\x32\x5f\x42\x80\xfd\x65\x15\x5a\x36\x41\xd1\xd1\xde\x24\x2f\xdd\x2e\xf3\xd6\xcb\x2c\x87\x9b\x58\x8a\x3e\x13\x5a\xa9\x3e\x79\x0d\xdc\x6b\x4e\xa1\xe3\x32\xa3\x6d\xc7\xb9\xb1\xed\x92\xad\xf2\x57\xf4\x31\x3c\x30\x2a\xc3\xea\xfb\xa5\x60\xc2\x1b\x65\x2d\xc8\xff\x3d\x8d\xe2\xb2\x71\xd6\x80\xfc\xdf\x4f\x31\xbc\xaa\xa5\xed\x6b\x5d\x6e\x37\x49\x56\x04\xa2\x28\x9d\x73\x9f\xea\xdb\xfd\xfd\x4d\x89\x35\xeb\xce\x1c\xac\x5f\x45\x48\x1c\xe4\xd9\xd2\x8c\x76\x70\x14\x67\x31\xff\xf6\x09\x76\xf5\x76\x54\x49\x84\xcf\x93\x57\xe1\x2d\x46\xf3\xa9\xec\xcf\x0d\x28\x8b\xcc\xd7\x4f\x80\x1f\xa7\x93\x2c\x9f\xc3\xa8\xcd\x3c\xf7\xcc\x3f\x7a\x15\xe6\x29\x3b\x7a\xd3\xe5\x1c\x7d\x87\x96\x79\xf1\x3c\x9d\x64\xbe\x1a\xc7\xcc\xc6\x68\xc6\x98\xfa\xb0\x83\x09\x08\x89\x0e\x86\x5d\xd0\x65\x73\xbb\x4e\xe0\xbb\x3c\x2d\x98\x1d\x0e\x9d\x2a\x98\x66\xb2\x91\xf1\xcf\xda\x11\xe8\x3f\x4a\x60\xe0\x91\x8e\x77\x3c\xd6\x80\x7a\xc8\x55\x7b\xe2\x77\xdb\x6d\xdd\xd9\x3c\x58\xac\x1d\x72\xf2\xdf\xe3\x1c\x7a\xd7\xd9\xd2\x2b\x96\xf4\x8f\xab\x30\x2d\xbd\x32\xf3\x08\x86\x94\x57\xce\xe2\x02\xcb\xa6\x87\xd5\x9f\x74\xcf\xcc\x1d\x75\x96\x98\x3c\x4d\xb3\x26\x58\xa6\x12\xcf\xbc\xd8\x60\xf3\x91\xdb\x4a\x51\xfe\x90\xbc\x27\x11\x08\x64\x55\xf4\x75\x21\x32\x6a\x08\x8f\x5a\xf5\x45\x5f\x59\x90\xa6\x10\x71\x1f\x06\x35\x0d\xe4\x98\x13\xdc\xfb\x02\x53\x5e\x3e\x3b\x08\xd8\xbe\xed\xeb\xee\x55\x2f\x21\xd7\xcc\xb0\xea\x16\x3b\x78\xc9\x35\x74\x9f\x67\xa0\xb8\x2b\x98\xed\xe5\x47\xcd\xfd\x98\xfa\x7f\xc4\xb0\x74\x0b\xba\xd3\x72\x86\x76\x91\x64\x6d\x75\xf1\x3e\x5a\xb5\x55\x95\x69\xa6\x66\xd4\x51\x5f\x2c\xfc\xba\xe0\x18\x9c\x6c\xe2\x1c\x75\x3d\xb4\x0f\x0e\x80\x4e\xcf\x6b\xed\x53\x60\x1a\x26\xb6\xc3\x35\x5e\x1b\xe0\x57\x28\xcc\x51\x29\xcf\x82\x69\xc7\x45\x1b\xef\xfa\x6d\xa2\xdd\xc7\xe9\x65\x36\xa6\x14\x3f\x24\xd8\x8f\xc3\xe1\x93\x28\x4e\x92\x4b\x83\xa7\x37\x46\xc3\x67\xa9\x34\xa8\x7c\x9a\x42\xc3\x09\x80\x61\x4e\x9d\x98\x38\xed\x86\x3a\x36\xe9\x25\x6c\x9e\xe4\x06\x49\xd9\x4c\xc9\x23\x0f\xc8\x27\x9f\xd1\xe7\x85\x89\x93\x5a\x38\x33\x1a\xbb\x8b\x5f\xc9\xcb\xf6\xc5\x35\xe5\xc1\x6a\x97\x99\x12\xcf\xd8\x34\x16\x51\x0d\xd3\x53\xe2\x11\xc3\xca\x78\xc4\xdc\x12\x8f\x88\x2a\xeb\xc8\xd6\x41\xb7\x8a\xb8\xcc\xf2\x6b\xfc\x5d\x3f\x58\x9b\xd9\x23\x07\x34\xca\x81\x8e\x66\x70\xa3\x14\xf3\x86\xc7\x8a\x3d\x49\xfa\x94\x7e\x04\x35\x7c\x59\xc2\xa8\x13\x26\x71\x58\xb4\xa4\x0e\xef\x44\x61\x19\x36\x4f\x25\x12\x05\x90\x84\x22\x34\xd6\x67\x59\x5a\x86\x71\x0a\x73\xfc\x8b\x7d\xc4\x67\xdc\xc3\x78\xb0\x31\x03\x40\xda\x39\x0b\x93\x04\x0d\x32\x4e\xf6\x39\xc7\x77\xa4\x24\x24\x6c\xc9\xb7\xe0\xff\xd7\xa8\x4d\x67\x9c\xc0\x30\x6f\xdd\x3c\x09\xcb\x70\x0c\xd3\x12\xe6\xa7\x24\xb9\x68\xbc\xc2\xb4\x5b\xc4\x19\xa4\xf1\x04\x48\xf5\xd3\x72\x9a\x48\x90\x29\x04\xa8\x93\x4e\xcb\x95\x25\x97\x89\x31\x11\x4b\x89\x55\x69\x96\xcf\x31\xb8\x26\x29\x43\xab\xef\x80\xa5\x4f\xdd\x29\xae\xe2\x72\x3c\x6b\x95\x38\x93\x27\xb8\x19\x87\x05\x24\x5e\x7e\x1a\xf5\x70\x6a\xf0\x13\x93\xb5\x58\xd2\x84\x1f\xbe\x54\x07\x83\x01\xbd\x46\x39\x07\x50\x2d\xf8\x5c\x6f\xf9\x9d\x71\x16\xc1\x36\x3a\xa4\xa2\x25\x5d\x76\x52\xf8\x91\xf1\x99\x9d\xc7\x17\x49\x9c\x4e\x83\x4e\x14\x47\x8f\x17\x0b\xd4\x77\xc1\x9d\x8b\x1c\x86\x1f\xee\xd0\xf9\x7d\xea\xec\xfb\x95\x9e\x78\x15\xd6\x88\xa9\x5d\x96\x70\x2f\x4c\xd3\x6c\x99\x8e\xa1\x25\xaa\xf6\xeb\xa4\x2d\xbf\x7b\xf1\xfa\xfc\xf1\xf1\x87\xa7\xf6\x10\xd8\x47\x85\x0c\xda\x5f\xc6\x65\x62\xcb\x5a\x36\xf4\xb5\x3e\x51\x16\x14\x52\x2f\x1d\x4f\x1a\x43\x28\xb4\x3d\x39\xcc\x53\x3e\x52\x63\x33\x98\x8a\x40\x6a\x18\x3d\x97\x25\x6c\xf3\x0e\xf5\x2d\x81\x1f\x6b\xf6\x0c\xdc\xaa\x45\x38\x85\x6d\xda\xb2\x26\x32\xd4\x32\x9a\x5f\x0f\x9c\x03\xd7\x66\x17\x98\xf6\x20\x06\x19\x58\x82\x31\x88\xc0\x1c\x2c\xc0\x04\x5c\x08\x94\xfb\x19\x43\xb9\x0f\x6e\x52\x17\x0c\x31\x7a\x42\x06\x95\x49\x9d\x30\xc4\xa9\x03\x86\x38\xd5\x61\x88\x53\x05\x86\x38\x35\x61\x88\x73\x09\x86\x98\x57\xf6\xf2\x2f\x48\xfe\xff\x0e\x48\xfe\xeb\x6a\xf9\xb6\xfc\xfe\xfe\xa2\x3f\x79\xf2\xb8\x31\x77\xa1\x15\x00\xdf\x06\x11\x2f\x65\x26\x59\x19\x65\x1d\xc8\xf2\xd2\x6b\x27\xa0\xa7\xc0\xd8\xb3\x73\xfe\x3c\x8b\x30\x49\x0a\xcf\x3d\x19\x2f\xf3\x1c\xa6\x25\xcd\x3d\xcb\xe1\x24\x87\x58\x6f\x45\xfa\xe9\x3b\x2c\xc2\x80\xff\x58\x08\x44\xc5\x91\x2a\xa0\x10\xd0\x05\x96\xba\x24\xae\x60\x19\x92\x8b\x8f\xbc\x45\xbf\x39\x4d\xb7\xf4\x1c\xfd\xaa\x74\xa9\xd4\x78\x71\x69\x61\x7b\x6c\xbf\x50\xdd\x0a\xd2\x03\x92\xf0\x96\x82\xfd\x2b\x65\xb6\x82\x0e\xaf\x41\xc1\xcb\xb4\x54\x58\xa3\x6f\x2c\xd0\x15\x31\x0e\xa6\x83\xbd\xff\xf9\xe6\xa6\x35\x7c\xdc\xfe\x25\x6c\xff\xde\xe9\xb6\xef\xbf\x6f\x8f\xbe\x0d\x56\x7b\x53\x0c\x11\xff\x5a\x40\xc4\x1b\x5a\x6f\xb6\x2c\xd1\xd9\x23\xe0\x98\xf1\xb6\x27\x60\xee\x07\x1c\x44\x5e\x7f\x20\x4e\xcb\xc4\x47\x0b\xc6\x7e\x1b\xa6\x48\xb3\x41\x05\x14\x3a\x4c\x7d\xac\xc1\xd2\x67\xda\xef\xa5\xf6\x7b\x5c\x0b\xb6\x3e\xb8\xb1\xe9\xa0\x33\xaa\x9f\xb1\x06\x03\xc2\xc2\xa4\xde\x40\xd3\x6a\xae\x5d\xc7\xcd\x03\x0b\xed\x2a\x6b\x15\x98\x68\x37\xde\xd3\xb5\x70\x41\xaf\x63\xcd\x0c\x95\xf1\x03\xbc\x26\xea\x27\x7d\xb5\x43\x42\x16\xde\xc2\xe9\xd3\x8f\x8b\xa7\xe4\x5a\x6b\x0a\xe0\xe0\x01\x0c\x56\x53\x58\x7a\x64\xe6\x4b\xe8\x66\x98\xa9\x8a\x54\xbf\x43\x6e\x3e\xcb\xf2\x96\xc0\xa5\xc7\x2a\x2a\x7e\x15\xd7\xa1\x25\xc8\xb5\x48\xa5\x02\xb9\x20\x72\xe9\x0e\x7b\x42\x14\xa0\xea\xca\xec\x7b\xe4\x1f\xcb\xf7\xee\xd8\x6a\x87\xcb\x46\x0f\x43\x5a\xa9\x55\x49\xb6\x70\x4e\x8b\xc5\x38\x91\x5b\xfe\x37\x37\x3e\xda\x5d\xe8\xf7\x68\x4f\xe1\xa7\xa5\xce\xeb\x94\xad\xff\xe0\x01\x2a\x3a\xdf\xdc\xa8\x35\x58\x75\xbe\xb9\x81\xab\xff\x80\xd2\x80\xf6\x67\xb5\x09\xa3\x08\xcb\x08\xad\xea\xc0\x05\xf2\xcf\xde\x23\x16\xbc\x8a\x57\x57\x20\x1a\x5c\xb6\xc6\x32\xec\x3d\x9f\x5e\xdb\xa3\xfd\xcf\x6d\x65\x63\xb8\xbe\x7c\xdb\xa2\x17\x7a\xd1\x64\x92\x0f\xc3\x6d\x0b\x9e\xe8\x05\xf3\x75\x32\x4c\xb6\x2d\xfb\x42\x2f\x9b\x2d\xb5\x61\xb1\x6d\xd1\x5a\xc1\x68\xf8\xe2\xf5\x7c\x07\xda\x3b\x01\x18\xcb\x34\x07\x5a\x99\x82\x49\x21\x6b\x58\xb2\xa0\x51\xa8\x2a\x5f\x21\x6b\x58\x36\xfc\x84\x42\xd6\xa0\x7c\x65\x2c\xeb\xf7\xaf\x2b\xc9\x1a\xae\xc1\xeb\xf5\xa8\x8b\xd2\x7e\x7b\x5b\x0e\x96\xff\x3a\xd9\x8f\x9e\x84\x3f\x3d\x77\x1c\x2c\x4b\xaa\xae\xa8\x27\xcc\x1c\xb3\x77\x57\x21\x57\x18\x6a\x59\xcf\x7a\xd6\xa4\x08\x48\x16\x2f\xad\x9e\xbe\x4c\x49\x7b\xe4\x08\x88\x5a\x9e\x16\x1a\x68\x52\xc3\x7e\xc9\x8f\xb2\x7a\x52\xa2\xe3\x14\x5b\x37\x85\xd0\x00\xa9\x24\x65\x31\xad\x6b\xd8\x3b\xc6\x4e\xa8\xfe\x01\xf0\xc3\x3c\x0e\xdb\x49\x7c\x89\xe1\xe0\x0a\xa4\x3d\x11\xde\x26\x71\x33\x2c\xb3\x79\x3c\x46\xba\x64\xbe\xd4\x23\x12\x7c\x05\xdb\x48\x41\xd1\xf3\x5f\x85\x97\xf1\x34\x2c\x61\xe4\x95\x99\xe7\xf3\x3e\xb1\x68\xb9\xb5\xa3\x49\xd7\x9c\xda\xa5\x03\xbb\x84\x77\x84\xcd\xb8\x14\x10\xa9\xb1\xda\x27\x2d\x9c\xaf\x76\x86\xa7\x40\xb8\x17\xa1\x35\xe1\xda\x72\x90\x77\x64\x61\x4b\xe5\xe0\x7c\x6b\x5b\x7a\x35\xce\x3a\x07\xe1\x9d\x5d\x89\x82\xa4\x5a\x14\xfc\x7e\x7d\xd5\xeb\xbe\x3b\x58\xd8\x45\x01\xe1\xd0\xc4\xd9\x40\xec\xaf\x3a\x10\x36\xfa\xe4\x17\xed\x96\xe6\xbe\x15\xf7\x81\x83\xd9\xe0\xf7\xc8\x47\xf9\x7b\x76\x7c\x0d\x25\xc2\x9c\x7c\xc9\xea\xa3\xa6\xc7\xb9\x7d\x15\x1a\x4d\xbc\x61\x04\x58\x31\x41\x43\x62\x8b\x71\x90\x31\xe3\x12\x97\xc3\xb8\xfc\x49\x0e\x61\x09\x3f\x96\x6d\xda\x47\x36\x96\x6c\x93\x8f\x5c\x4e\xa0\x5e\x1f\x9a\xae\xb7\x93\x7c\xca\x1e\x51\xe2\x68\xa8\xa3\x76\xb7\xbc\xa1\x45\x96\xdb\xc0\x55\xdc\xc3\x49\x9e\xbf\x9d\x6d\x74\x86\x27\xf5\x64\x3e\xbe\xb8\x78\x86\xbf\x0d\xa3\xc6\x44\x81\x8e\xf5\x80\x56\x50\x1b\xbd\x62\x8d\x41\xe2\x2f\x26\xee\x8e\x46\xb7\x25\x74\x22\x0d\x4b\x45\xa0\xc9\x88\x73\x7e\x47\x7c\xba\xc3\xc3\x69\x94\x30\x14\x16\xbd\x84\xde\x99\x67\x69\x67\x19\x53\xce\x5e\x18\x11\x5f\x9a\x04\x37\x62\x0f\x08\xa5\x15\x73\x45\x9d\xb2\x07\x96\x7a\xc3\xa4\x8e\xef\x4a\x0d\xb8\x6f\xfc\x4d\x06\x84\x2f\xb6\x4d\x10\x36\x4d\x08\x23\xcb\xa4\x65\x43\xe3\x9c\xb6\x24\xde\xe1\x19\x13\xc2\x62\x2c\x95\x79\x29\xed\x2f\xe4\x24\x27\x66\xf1\x70\xa8\x92\xff\xab\x81\x30\xdd\x91\x86\xbf\xab\x62\xf1\xf6\x75\xac\x4f\x29\x5f\x55\xce\x3d\xb5\xd5\x5c\xe8\x53\x96\x9b\x0a\x91\xb3\xfc\x0c\x5b\x0f\x3d\x9d\xd9\x12\xa8\xe6\x28\x19\x17\xcc\x2c\x9e\x20\xba\x2a\xa0\x12\x0a\x5e\xa9\xa6\xad\x5a\x60\x48\x47\x23\x4d\x55\xad\xc4\x97\xd4\x27\x1e\x0f\x0c\xec\xb2\xe0\x98\x76\x98\xd8\x57\x99\x78\x51\x09\xca\xa1\x49\x43\x3d\x25\x00\x87\x19\xfb\x50\x81\x8f\x93\xe4\x99\x39\x3d\x37\x8f\x3b\x21\x13\xcd\xa3\x53\xde\xa8\x5e\x83\x80\xdd\xba\xe1\xe3\xae\x9d\xa0\x52\x70\x6e\x0d\x3a\xc4\x71\xce\x44\x84\xc1\xaf\x59\x9c\xfa\xc0\x27\x90\x24\x3c\x56\x41\x56\xea\xdc\x91\x0a\x98\x0f\xb3\xcc\xe3\x74\xda\x2e\xf3\x78\xee\x80\xf5\xa4\x91\x0f\xf1\xa4\x89\x1a\xac\x2b\x9f\x0a\x15\x66\x31\x68\x99\xcc\x97\x2e\x93\xe1\x14\x96\x9e\xd8\x5c\x74\x1f\x31\x36\xf5\x90\x71\xa7\xb2\x7b\x41\xb5\xce\x4f\x9f\x6e\x98\xd7\x75\x38\xa2\x9e\x9f\xe1\x88\x79\x6c\x5a\x5d\x90\x76\xa2\x78\x32\x09\x5a\x5c\x05\x05\x90\x51\xab\x13\xac\xf4\x07\xdd\x4f\x9f\xa8\x42\x0b\xd3\x32\xc7\x04\xef\xda\x37\x83\x4e\x91\xcd\x61\xab\x35\x84\xa0\x1c\x05\x83\x07\xbe\x5a\x07\x9f\xb0\xdc\x73\xdf\x09\xf3\x36\x63\xe3\x1f\x9d\xad\xdc\x70\x88\xab\x44\x2f\x06\xe6\x97\x56\xfa\xd2\x69\xf1\x93\x37\x2e\xd4\x56\x39\xee\x87\x82\xa0\x0c\x06\x0f\x6e\x0a\x58\xbe\x8b\xe7\x30\x5b\x96\x2d\x42\x4f\x4f\x31\x43\x79\x17\x7c\xfa\x34\x1c\x05\xa0\xf7\x7f\xcb\x60\x15\xac\x56\x20\x1e\x84\x92\xf9\x21\x1b\x98\xcb\x17\x2c\x07\xc3\x7c\x04\xc6\x83\x75\x76\x8c\x50\xb1\x90\xe9\xc5\x04\x20\x52\x3e\x35\x1f\xdc\xac\x80\xec\x54\x1b\x3b\x9c\x6a\xf3\x21\x1c\x0d\xc6\xd4\xa9\x36\x57\x9d\x6a\xf2\x4f\x30\xd7\x9d\x6a\x73\xa7\x53\x6d\xfe\xe9\xd3\x5c\x77\xaa\xcd\x55\xa7\xda\x7c\xb0\xac\xe3\x54\x93\x6d\xa9\x65\x2b\x06\x19\x80\xc1\xa7\x4f\x70\x15\x80\x79\x00\x22\x69\x62\xcc\x35\x97\xd7\x9c\x3a\xd5\x94\xeb\x0f\xe7\xa6\x53\x2d\xe2\x4e\xb5\x79\xb5\x53\x4d\xff\x82\xfd\xa4\x86\xaa\x38\x47\xcd\x23\x4e\xb5\x90\x9c\x5a\x25\x17\xae\x74\x02\x2d\x2a\xad\x4c\x09\x28\xd6\x5b\x99\x5c\x5b\xff\x6d\x31\x39\xfd\xf6\xfc\xdb\xd7\xef\x7e\xbb\xf8\xf7\x1a\x46\x08\x89\xd1\xb9\xc2\xff\x27\xb6\x56\xfd\x0c\xa9\x6c\x9e\x94\x37\x82\xec\xa1\x5d\x6d\x0b\xed\x9b\xbb\xa5\x05\x5b\xca\xc6\xd6\xdf\x64\x9b\xc9\xd2\x0d\x45\xbd\x65\x10\x6f\x83\xf9\x83\x98\x2d\x76\x3a\x9b\xa8\x9c\x1e\x40\xbc\x89\xe8\x93\x8a\xca\x5b\xf6\x58\x0b\x0e\x1e\xdc\x2d\x85\x2f\x05\x92\xa6\xa0\x17\xcb\x3b\x52\x59\x83\x07\xda\x76\x03\x03\x56\x02\xda\x61\x52\xdb\x0e\x83\xf1\x9b\xcb\x56\xca\x37\xb1\x54\xdf\xc4\x4e\x5b\xf4\x12\x16\xee\xfc\xb2\x10\x57\x10\x0c\x53\x90\x8f\xc8\x86\x80\x0d\x5e\xad\x9c\xbc\xd1\x99\x87\x0b\x54\x79\xba\xe7\x86\x83\x9b\x0f\xf0\xfa\x34\xa5\xbb\x29\xe4\xe1\x0f\x61\x87\xa9\xbb\x03\xcb\x0e\x98\x3e\xe4\x05\x82\x21\x1c\x05\xa7\xbd\xc1\x60\xc0\xbe\x40\xaa\xf3\x30\xef\xf0\x10\x29\xe5\x59\x80\xe3\xa0\x86\xa3\x3a\xb2\x64\x9c\xc3\xb2\x4d\x72\xe1\x6f\x8b\x00\xf9\xf7\xf8\xdd\xc9\xeb\xf3\xc7\x87\x8d\x83\x05\x1c\xa8\xad\x68\xaf\x09\x4d\x5d\x9c\xa9\xee\x02\x25\x08\x67\xf1\x63\x5c\x9e\x8b\xec\xa3\x6f\xc1\x2a\x70\xe7\x36\xbf\x15\xdf\xb0\x3d\x2e\x21\xf9\xca\x78\xa2\xcd\xe8\x45\x1a\x89\x17\x63\x5c\x77\x02\x16\xdf\x14\xe7\xbc\x98\x85\x51\x76\xd5\x66\xe3\x7b\x5b\x66\xd8\xf1\xd5\xe5\xcb\x6f\x8f\x9e\xbf\x71\x85\xdb\x95\xd7\x09\x2c\x66\x10\x12\xa3\x2f\x69\xc4\xdb\x0c\xe3\x95\xba\xa7\x1f\x35\x33\x48\xc1\x77\xb5\xf3\x4b\xfa\x6a\xc4\xde\x74\x19\x47\x18\xea\xb2\x80\x79\xf9\x1d\xe6\xc4\xc4\xd6\x93\xff\x33\x5e\xe6\x45\x96\x9f\x76\xff\x8f\x4f\xd8\x39\xea\xa5\x3e\xf5\x24\x1f\x4d\x13\x33\x86\xea\x67\xe8\x6a\x16\x02\x8b\x7b\x61\x2d\x29\x8f\x65\x8b\x6d\x14\xd8\xef\xde\x7d\xc3\x28\x5b\x94\x6d\x32\x70\xcc\x0f\x11\xa7\x6d\x48\x82\x4c\x1b\xed\xcc\xb6\x29\xfb\xf5\x36\x64\x34\x34\xed\xf1\x2c\xcc\xcb\x3d\xa2\xee\xdc\x96\x35\x74\xf9\x43\xf7\xc5\xbf\x9e\xee\x97\x8d\xa5\x34\x97\x7f\xbb\x92\x75\x8e\x2e\xda\x35\x3b\x46\x14\x47\xcf\xf1\x8a\xa4\x91\xcb\x0d\x82\xd5\x71\xe5\x3a\x61\x14\x91\x94\xa1\x96\xa0\x4f\xa0\x4a\x0f\x89\x9d\xf9\x08\xc7\x24\x36\x64\x05\xae\xe2\x24\x79\x42\x42\xaa\x1a\x7f\x87\x1e\x14\xa5\x4f\x61\x77\x77\x63\x92\x0a\xb9\x63\xa7\xcb\x5b\xc4\x39\x17\xfe\xfa\xfd\x9b\x97\x93\x6f\x27\xb7\x6a\xea\x49\x3d\x74\x2b\x66\xde\x1d\xd9\xe4\x73\x47\x9d\x86\xff\x40\x75\x95\x67\xa1\x41\x37\xe9\xb3\x2b\xfe\x60\x80\x66\x4f\x36\xf1\xb0\x9e\x1b\x3d\x24\xff\xa8\xdf\x3a\x25\x17\x57\xda\xcc\xdd\x74\xa1\x90\x09\xac\x55\xd2\x36\x7f\xef\xd4\x9e\xbf\xb7\x64\xe6\x2e\x7f\xfe\xf5\xe7\x1f\xa6\xd7\xcf\x36\x9a\xb9\x8a\xc9\x9c\xe6\x62\x90\xa8\x0b\xfe\x27\xc3\x7a\x07\xe6\xa3\xf2\x34\x25\xaf\xe1\x0b\x3c\x3e\xb5\xfa\x35\x7a\xd4\x5e\xf7\x9e\x15\xf8\x4c\xb8\x0c\x58\xed\x2a\x36\x72\x96\xee\x65\xb1\xca\x6e\xb8\x30\x77\xb7\x24\x71\x79\x8e\xac\x29\x52\xef\x00\x48\xcb\x36\x4b\xcb\x3c\x4c\x0b\x9c\x6c\x26\xaf\x81\x55\xd3\x5c\x27\x6a\xef\x2d\x06\x37\x2b\x7a\x01\x8f\x22\xfa\xbd\xaa\xe2\xee\x11\x26\x54\xf4\xd2\x3c\x1c\xcf\xe2\x94\x65\xe8\xd0\x5f\x9d\xa2\xcc\x16\x2d\x66\xf2\x62\x8f\x52\xab\xd7\xbd\x7b\x64\xf9\x15\xf9\x98\x5d\x52\xee\xd3\xea\xd1\xa2\x06\xd2\x0a\x8e\xd3\x12\xe6\x8b\x9c\xb1\x06\x15\xf9\x18\xdc\x64\xe9\x3b\xd1\x1d\xe2\x7c\x5c\xe2\x8c\xac\xb3\x65\x51\x66\x73\x4a\xdc\x24\xba\xcd\x07\x37\x11\x2c\xc3\x38\x39\x85\xab\xe0\x0e\xe5\x6c\x12\xb7\x5b\x65\x20\xf2\xe0\xde\xe4\x18\xcf\x1e\x46\x9f\x3e\xc1\x0e\xed\x31\x6e\xff\x2c\x07\x0f\x6e\x2c\x32\x4d\xe9\xde\x61\x89\x37\xca\x11\xed\x21\xfd\x72\x8b\xfc\x0b\xb0\xac\x2b\xe1\xc7\x12\xc0\x0e\xfe\x62\xb0\x0a\x80\x23\x53\x0a\x06\x2b\x90\xa5\x58\x92\x9d\xb6\x20\xe8\x74\x3a\x7c\xb7\xa7\x63\x38\x84\xa3\x16\xbe\x4c\xd2\xc3\x36\x51\x31\x5c\x59\x5a\xf2\x30\xd3\x11\x3b\x47\xb7\x3e\x7d\xd2\x66\x40\x58\x42\x75\x28\xd1\xb5\xbc\x6c\x6d\xac\x87\xa8\x93\x6b\x05\xb8\xe6\x63\xcb\x7b\xe3\xfd\x0c\x47\x83\x72\x05\x64\xed\x45\x49\xc1\x8b\x60\x02\x4b\xe8\xe9\xef\xe0\xd2\x49\x0f\xdb\x0a\xe7\xbd\x2c\xca\xd6\x1f\xd6\x8a\xe6\x6f\x54\xa7\xeb\x29\xdd\xc7\xa6\xc4\xa0\xd4\x3a\x40\x10\x45\xc0\x95\x4c\x73\xe6\x2a\xf9\xde\xbd\xb2\xb3\x20\x13\xf9\x09\x99\xd6\xf7\xee\xb5\x24\x57\x08\x25\x3e\x4b\xb3\x08\x8b\xbf\x7b\xf7\xfc\x90\x64\xdf\x69\x37\x3a\x65\xf6\x22\xbb\x82\xf9\x59\x58\xc0\x56\xf0\xe9\x93\x5e\x6a\x8b\x05\x20\xb3\x8a\xe0\xef\x37\x27\x32\xc3\xad\xbf\x2d\xbb\x6b\xf6\x38\x8d\x2f\xba\x3f\x3a\xb2\xe8\xea\x9d\xdc\x05\x90\x41\xed\x48\x8c\x5a\x04\x31\xeb\xf6\x3d\x12\x73\x19\xa7\xd3\xe6\x5e\xc3\x72\x9b\x63\xaa\xb9\xcb\xd1\x2d\xad\xfe\x3e\x57\xb1\x03\xc5\x93\x16\x77\xa6\x90\x9d\x00\x0b\x1b\xa2\x63\x62\xb7\x26\x1c\xdc\xed\xde\xd1\x37\xaa\x72\x3c\x83\xc5\x43\xba\xa3\xd0\x4f\xb3\xcb\x2d\x51\x0e\x90\x1f\x67\x3e\x1d\x56\x4a\x9a\x95\x2f\xc9\x1d\x1c\x80\x7f\xb7\x56\x59\xe2\xa5\xc0\x94\xab\xd2\x10\x6d\x70\x9a\x2a\xc3\x8b\x76\x1a\x5e\x6e\x9a\x1f\xf8\x85\x48\xed\x1e\x2f\x5f\x75\x0f\x7f\xff\xf0\x9d\x7d\x09\xd1\x28\x28\x9e\x60\x4f\xb3\xf1\x1f\xb1\xb4\x7f\xd9\xa7\xe3\x88\x18\xa4\x6b\xed\xc8\x44\x45\xd3\x41\xb2\xf1\xab\xd7\x32\xa6\xed\x70\xe8\x67\x93\x09\x05\x59\x2d\xf3\x25\xc4\x6b\xaa\x0c\x2f\xfc\x7a\xb1\xc2\x3d\x54\x71\x12\xac\xb8\x0f\x0e\xad\x69\x62\xf4\x8b\x92\x46\x8b\x03\x32\xda\x6d\x66\xab\x6f\x5f\xc5\x51\x39\x3b\x15\xc1\x19\xe4\x0d\xe0\xe3\xeb\x78\xe5\xff\xdd\x07\xf2\x0b\x09\x9c\x94\x96\xe7\xd1\x65\xdb\xe3\x33\x18\x4f\x67\xb6\x17\xc8\x0d\xdb\x2b\x65\xb6\xb0\x3c\x5f\x66\x0b\x99\x9a\x57\xb0\xf9\x2a\xd1\xc8\xd8\x5e\x0e\xfc\x73\x88\x0e\x70\x61\x4e\x40\x74\x09\xfd\xba\xdc\x01\x74\xf6\xfa\xc0\xf7\xc2\x34\x9e\x87\xd8\xab\xab\x52\x04\x1e\xb9\x0c\xec\x55\x41\x59\x0a\xe2\x74\xdf\xfc\xd1\x17\x0c\xb6\x8d\x43\xb1\x58\x74\x36\x75\x20\x2a\x8d\xb2\x44\x46\xed\x6b\x01\x48\x6a\x68\xd4\x21\x31\x7c\x6a\x11\xeb\x2a\xbf\xb1\x6a\x28\x95\x6f\xea\x51\x53\xfc\x19\x6b\xe3\x44\xd0\x95\xa8\x0f\xef\x69\xe2\xe3\x3c\xb2\xe0\xf4\x1c\x6a\x76\x5e\xf1\x55\xf2\xce\x89\x2d\xe6\xde\xd1\x68\xa3\x2c\x99\x49\x0e\x0f\x80\xfa\x05\x34\x50\x32\x5f\xbe\x0b\x1d\xd6\x11\xf6\x64\x6b\x8e\xc2\x7d\xdd\x95\x80\x13\x15\x5e\x6a\xb5\xba\x87\xe2\xd2\x7d\xf7\x30\xd4\x69\x92\x2c\x74\x1e\xcd\x72\x38\xf1\xa5\xf2\xc8\xef\xe6\x28\xa9\x94\xf5\x58\xa9\x51\x25\x7c\x8b\x05\x54\xb6\x32\x38\x6a\xbf\x21\x07\xb2\x15\x2b\xa6\xfa\x7c\x9e\x2c\xa7\xf1\xe4\x9a\xd9\xd8\xf9\xdc\x91\xe9\x8f\x27\x1c\xf9\x25\xcd\xb2\x05\x46\x54\x89\xda\xcb\x05\x4d\x17\xe5\x44\x94\x72\xe2\x00\x27\x51\xb6\x07\x53\x15\x38\x52\x2b\xca\xe6\x6d\x8c\x63\x12\x73\x58\x99\x06\x7a\x92\xb2\x01\x73\x4d\x89\x44\x50\xe5\x96\x18\xaa\xff\x9f\xbd\xb7\xef\x6e\x1a\xc9\x12\x87\xff\xcf\xa7\x30\x1a\x36\x2b\x2d\x65\x25\x4e\x80\xa6\xbd\x3f\x41\xd3\x40\xcf\xb0\x4b\x03\x4b\xe8\x99\xdd\xf1\xe3\x03\x15\xa9\x6c\x6b\x90\x4b\xea\x52\x39\x89\xdb\xd1\x77\x7f\x4e\xbd\xaa\xf4\x66\x4b\x4e\x02\xf6\x0c\x73\xce\x34\xb1\x54\x55\xaa\x7b\xeb\xd6\xad\x5b\xf7\x35\x33\x6a\xb5\xad\xf5\xda\xc0\x80\x6c\xb6\xb4\x56\xd3\xf6\xd6\x49\x02\x88\x7d\xc6\x6c\x63\x8c\x50\x7e\x57\xd7\x5c\xd4\x76\xc3\x08\x05\x69\x9f\x20\x59\x16\x13\xd5\xb5\x8c\xe0\x32\x5e\xd0\xf4\x68\x4a\xb8\xad\x29\x4f\xb8\x59\x13\xaa\x20\xc2\xf7\xbf\x52\x98\xc2\x5f\x97\x8f\x7f\x3b\xff\x47\xfc\xd7\x7a\x09\xc4\x47\x51\x64\x54\x81\x6b\x19\xa2\xa0\x4e\x2b\x75\x08\x0c\xc4\x89\x56\x5a\x90\x1e\xa3\x2f\x82\xfc\xa5\x1f\x85\x78\xda\xcb\x39\xd1\x43\x79\x02\x9c\x8a\x9d\xd1\x87\xba\x6a\x5c\xb1\x5a\xed\x63\x5e\x65\xe6\x21\x78\x34\x2e\x8b\x18\x3f\x88\x24\xc8\xfa\x64\xe7\x39\x41\xcd\x13\x3d\xb9\x2a\x1e\xa6\x0f\xab\x27\x66\xd1\x15\xdb\x22\x28\x0d\xff\x68\xa8\x13\x23\xdf\x55\x58\x59\x21\xda\xbd\xc6\xdb\x45\x1c\xca\x0a\xdc\x1f\xb7\x70\x49\xf7\x61\x9e\x67\xf9\x44\xf0\x7a\xa3\x54\x63\x35\xb3\x39\x6c\x99\x9c\x3b\x9f\x6f\x4b\x7f\xd0\xf5\x86\x48\x9e\x23\x1a\xc1\x3a\x77\x72\xfd\xbe\x2e\x12\x45\x1f\x60\xeb\x80\x6a\x9b\xec\x7a\x23\x4c\x4d\x0b\x73\xba\x8d\x21\x37\x4f\x8b\xcd\x3d\x23\x8c\x4c\x9a\x0a\xc6\xe7\xc6\xa3\x9b\x16\xd0\x2d\x3f\x78\xa2\x58\x10\x86\x34\xbc\x40\xfd\xd4\x27\xb1\xc8\xc0\x64\x84\xe3\x4d\x65\x4a\x85\x9f\xb8\x36\x05\xd3\xbe\xa0\x70\xeb\x27\xd1\x9a\x4b\xd2\xc6\x4f\xca\xcf\x16\xf9\xeb\x85\x4e\xc5\xec\x47\x21\xcf\x2b\xf4\x07\x7a\xa1\x5c\xd6\x47\x16\x15\x09\x44\x79\x31\x01\x55\x54\x40\x95\x10\xab\x11\xec\xf8\xe5\xc3\x1c\x77\x5d\xed\x93\x9a\x0f\x76\x4d\xa2\x5e\x43\x74\x1c\x85\x52\x4a\xae\xb9\x20\x15\x7e\x3c\xe2\x25\x13\xbb\x8b\xc9\xf9\x27\x4f\x4e\x38\xb7\x92\x6e\xf8\xf2\x12\x34\x6e\x2a\x64\x54\x04\x9e\x07\x1a\xd4\x24\x2c\x6e\xbd\x61\x5a\x25\x4e\x57\xc1\x14\x62\x8a\x22\xa2\x64\x0c\x74\x8c\xe9\x57\xda\x41\xc1\xda\x1d\x54\x4d\x22\xde\x04\xb6\xa8\x97\xa1\xea\x16\xeb\x03\xa5\x2e\x28\x42\x56\xb9\x6f\xa0\xbd\x32\x79\x6e\x9b\xc4\xbf\x1c\xb3\x52\x8f\xe6\x2d\xb3\x17\x6e\xc3\x50\xd6\x48\xa7\xeb\x57\x7a\x83\x17\x95\x51\x30\xb6\xa9\xb8\xf0\x0c\xa6\x79\x61\x58\x2e\xe6\x4a\x8f\x1c\x75\xb5\xd6\xd2\x6a\x8c\xfb\x97\x21\x0e\xe2\x4b\xd1\xeb\x05\x54\x55\x64\x3f\x49\x16\x76\x26\x38\xd8\x27\xc1\x4c\xde\x08\x06\x26\x7f\x7d\xe4\xfc\xeb\x13\x13\x69\xd2\x06\xc9\xb7\x9b\x78\x5b\x2b\x60\xea\x3c\x2a\xa9\xa7\xfd\x05\x73\xa7\x71\x9e\x29\x0f\xd2\xd7\x14\xcd\xcf\x18\x70\xc2\x75\x79\xad\xe6\x30\xaa\xa6\x1e\x84\xda\x91\xb2\x60\xb6\xde\x90\x62\x50\x68\x52\x06\x83\x47\xc7\x80\xc4\x97\x7f\x11\xd2\xd1\xa3\x63\x30\x87\x57\xfa\xc7\x31\x90\xcb\xc5\xb3\x19\x80\x1c\xc7\xc3\x7b\x83\xae\x66\x34\xb6\x88\x79\x92\x3c\xf6\x8b\x2b\xf6\x6a\x2c\xe5\x42\xce\xec\x0b\x19\xd9\x1a\x73\x0b\x95\x46\x9e\x2d\x60\x9a\x6a\xbd\xa0\xd0\xfc\x28\x7d\x61\xfe\x5c\x03\x65\x49\x65\x7b\x69\xd8\x32\xee\x3d\x0d\x0a\x75\x56\x11\xa2\x3d\xec\xa5\x2e\xaf\x6c\x24\x06\x34\x6c\xfb\x3a\xd5\x88\xc4\x8e\xe7\x79\xf4\xf0\xd0\xc6\x0f\x3c\xeb\x3f\xff\xe8\xf3\x75\x1f\xf6\x06\x96\x03\x70\xb6\xad\x55\x89\xbf\xb9\x2f\x1d\xa8\x72\xb4\xc9\x07\xb6\xf5\x27\xeb\x81\xc6\xaa\x6c\xad\x8c\x6e\x42\xfc\x34\xa7\x3e\x5a\x09\xfb\xc4\x50\x8f\x73\x11\xa2\x4b\x76\xeb\xb1\x9d\x6c\xec\x64\x80\xef\xac\x52\xae\x48\xdb\xc0\x20\xb0\x3e\x29\x25\xe3\x1c\x5e\x7d\x10\x85\x4e\x34\xa1\x58\x05\x0f\x06\xb5\x9c\x35\xeb\x91\x5a\x22\x98\x86\x56\x5e\xe6\x63\x39\x07\xe1\x84\xa7\x1e\xe3\x2b\xf0\x2b\xa4\x33\x77\x0e\xaf\xec\xd3\xd2\xfa\xba\x62\x42\xd7\xd7\xa3\x31\x50\x7a\x0f\xc7\x39\x50\x3d\x42\x76\x77\xc2\x0e\xa8\x7e\xc9\x20\x8b\xff\xc0\x0f\x4e\x7e\xcc\xc4\x62\xae\xe4\xf5\x80\x66\xec\x2e\x79\x19\x46\xd1\x07\xae\x6f\xde\xce\x06\x68\x32\x23\x39\xdb\xf4\x03\x9a\x86\xa9\x08\x08\xd2\x82\x77\x8d\x9a\xdb\xe4\x7e\x75\x5d\xd5\x61\xe5\x38\x19\xf8\xc4\xaf\x9a\x1f\xf4\x4d\xb3\x32\xd9\x30\x95\xd6\x43\x14\x48\xb3\xa3\x7e\x12\xe2\xe9\xf5\xb5\x42\x65\xfa\x67\xa1\x02\x3f\xb1\x9d\x67\x22\x4f\x0d\x12\xea\x76\xdb\x19\x8a\xb0\x23\xb1\xf9\x44\x8c\x8f\xe3\x14\x93\x75\x86\x7f\xa0\x82\x3d\x4f\x59\x8b\x0a\x34\x0c\x70\x0d\x15\x33\x22\xed\x33\x5a\x14\xcb\x8e\x1d\xed\xb5\x3d\x00\x91\xc7\x43\x73\x7e\x8e\x17\x38\x08\xf1\xf4\x05\x17\xf3\x3e\xf0\x5c\x3a\x20\xac\x8e\xf5\xef\x93\x38\xa6\x88\x8c\x48\x1c\x21\xcf\x92\xfc\x3f\xe4\xb9\xed\xff\xdd\x01\xb1\x17\xb9\x34\x4e\x1e\x84\xae\x10\x17\x05\x09\x3c\x80\x60\xa1\xf3\x71\xba\x21\xc6\x88\x88\x17\xfd\xf8\x40\x1a\x2c\xa8\x6d\xd2\xb9\x26\xc7\x63\xb0\xa8\xe7\x2a\x25\x66\x85\xe5\xf7\xfe\xc6\x98\xd4\x5a\x16\x25\xd9\xa0\xdf\xc8\x06\x9b\xf9\x95\xdc\x2d\x74\x13\xbf\xf2\x0d\x7e\x85\x0e\x0f\x6d\x5a\xe1\x57\x54\x7a\x38\x2c\x12\x46\x4e\x3c\x58\xd4\x76\xcc\x47\x67\xfc\xe8\x7c\x2f\xb5\x40\xb6\x93\x65\x80\x8b\xa0\x85\xf5\x37\xd3\x36\xf1\x54\xa4\xac\xc5\x2f\x21\x49\xe9\x73\xec\xcf\x62\x62\xa3\x9a\x44\xaa\x08\x50\x6f\x95\xe5\x79\xa5\xee\x53\xa2\x1c\x20\xee\x53\xe2\x72\x0e\xe5\xfe\xf1\x9a\xcd\x55\x46\xfa\x28\xab\xeb\xe1\xa1\xb6\xbf\x4a\xf8\x0e\x0f\xd1\x3d\xaf\xb2\xf3\x95\xe4\xe1\x38\xab\xf2\xa6\xd3\x42\x49\x02\x49\x8a\x5e\x63\xca\xe3\x1d\x94\xc9\x46\x0d\x0f\x88\x67\xc0\x14\xa7\x28\xe5\xde\x12\x16\x63\x34\x30\x7f\x95\x8a\x9c\xaa\x36\x16\x21\xe2\xce\x01\x6c\xa2\x63\x4e\x92\xb0\x40\x92\x4f\xbb\x11\xf6\xba\x91\x9f\xb1\x91\x61\x9a\xbe\x09\x53\xee\x76\x66\x5b\xf0\x3c\xbe\x40\x96\x33\x34\x5f\x08\xa3\xbc\x7e\x07\x4a\xa8\x1e\x00\xb5\x04\x1e\xc9\x50\x94\xa2\x5e\x23\xee\xf8\xaa\x94\x6d\xd8\x61\x6b\xd5\x9c\xf0\x34\x49\xeb\xf4\x72\x6b\xd4\x63\x5f\xcd\x34\x37\x38\xfa\xf2\xcb\xdf\x5e\x9f\x36\x98\xe6\x78\x14\xc3\xeb\x20\x37\xca\x55\x54\x64\x75\x4e\x65\x0f\x6b\x22\x9e\x8e\x4d\x7d\x99\x28\xdd\x11\xd2\x99\xc2\x4e\xcf\x54\x80\x35\x59\x7c\x76\x42\xb7\xf2\xb0\x85\x6e\xe5\x16\xf4\x23\xed\x75\x20\xfc\x13\xb2\x62\x47\xbd\x39\xec\xc7\x92\x85\xc6\x2a\x91\x66\x5f\xe8\x0e\x1f\x8e\xd9\x6d\x21\x9e\x4e\x23\x24\x9f\x3c\x19\x03\xeb\xd3\x16\x85\x2d\x7e\x28\x96\x5d\x29\xfd\xfd\x88\x6b\x32\xb7\xcf\x83\x50\x5a\xee\x3a\x55\xc2\x71\x17\x55\xc2\x2d\xab\x13\x1e\x16\x02\x1a\x4e\x37\xdd\x2d\xab\x41\xff\xed\xb5\x01\xbd\x0d\x45\x7f\x8a\x17\xfb\x41\xa9\xc6\x97\x56\x09\xd5\x04\x1e\x9d\xcd\xe2\xcb\x9e\x24\x0f\x4d\x75\x0d\xd5\xda\xdb\x85\xe4\x6f\xdc\xa6\x35\x08\xb0\xfc\x38\xe2\x33\x03\xd6\x69\x23\x0a\xaa\x01\x57\x75\x05\xd4\x4f\x6b\x72\x43\x9c\x70\xeb\x60\x9c\x1a\x79\x52\x8a\x25\xad\x4f\x34\xc2\x54\x15\xf7\x87\xdc\x70\xac\x2a\xbf\x6f\xc6\x6f\x6d\xed\xf5\xe3\xaa\xa6\x05\x68\x92\x29\xec\x8e\x56\xc1\x63\x65\x44\xa8\xfc\x2d\x5f\x93\x5e\xfe\x12\x06\xa8\x1d\xbd\xb4\x9d\x67\xab\x3d\xa9\xbf\xb8\x5d\xfd\x12\xa9\x99\xaa\xee\xd8\xa6\x09\xb5\x2e\x47\x52\xbb\x01\xd6\xbc\x68\xb3\x8b\xaa\x9f\x67\x93\xad\x53\x5e\x0d\x3a\xda\x6b\xd7\x04\x40\xe5\xfe\xd2\x52\x37\x15\xa6\x7d\x34\x4f\xe8\x52\x96\xa6\x28\x38\xed\x34\xe9\x9b\xb4\xa6\xab\xbb\x6d\xb5\x2a\x42\x15\xbc\xd1\xc8\x5a\x9d\x12\x6e\xf2\x46\xa3\xb9\x66\x69\x93\x3a\x49\x6d\xdf\x1b\xb9\x5a\x37\xe9\x88\x8c\xfb\x66\xf5\xba\xd1\xf9\x9e\x01\xb0\xec\xa4\xe6\x6c\x63\x50\xe7\x7f\x49\x5a\xc8\xae\xd3\x7e\x14\xa6\x3b\x13\xe0\x30\x7f\x70\xf1\xf6\xf7\x57\xc7\x7f\xaf\x17\x52\x29\x9c\xa6\xb9\x84\x9a\xa7\x02\x50\x0f\x72\x6b\x6e\xa5\x3e\x1c\xe0\x06\xa2\x66\x87\xb2\x1a\x6f\x91\xa2\x1f\xc8\x43\x30\xb2\x3e\xf2\x11\xaa\x09\x84\x6a\xbd\x42\x54\xc7\x1f\xd6\xb7\xbf\x99\xd0\xf5\xc4\x50\xf4\x6b\xe7\x19\x76\xde\xdc\x5c\x92\x3b\x61\xff\xe6\x49\xb8\x46\x27\x3f\x00\xe1\x22\xd3\x3c\xe5\x16\x45\x21\x25\x27\x7e\x54\xca\x47\xa5\xe8\x90\x7b\xc9\x14\xea\x4f\x3e\xdc\x94\x57\xa9\xa6\x8e\x1b\x4f\x2b\x68\xd6\xad\x36\x46\x1f\x88\x72\x6c\xd5\x7b\xc7\x40\x25\x2e\xd3\x59\x20\xf2\xb5\xaa\xbf\x89\x14\xc3\x5d\xf2\x5d\xe5\xaa\xef\xb9\x3a\x8b\x67\x61\x05\x0a\x22\xba\x4c\x69\x26\x76\xa7\x2b\x69\x14\x97\x8b\x69\xac\xb9\x12\x54\x92\x9a\x95\xcd\x55\xcd\xd9\xba\xca\x9e\x5e\xdb\x89\xe7\x05\x11\x61\xa0\x53\x66\x6c\x38\xd1\x6e\xe2\x69\xd4\xbe\x7a\xd7\x60\xb3\x47\x12\x8d\xe3\x88\x86\x89\x51\x15\xaa\xd9\x8f\xa8\x90\xe2\x89\xdd\x64\x39\x97\xd2\x56\x1e\xaa\x3c\x98\x16\x78\x4b\x17\x23\x93\x1b\x7f\xb3\xa0\x61\x9e\xd5\x90\x4b\xd9\xbb\x72\x2c\xfc\xfc\xfa\x18\xfd\x76\x39\x8f\xea\x8f\x85\x4f\x9f\x20\x99\x1e\x2b\xae\x6f\x1c\x08\x3f\x89\xf4\x42\xc0\xfa\x29\x89\xa0\x8f\x66\x71\x24\xf2\x12\xff\x24\x42\xd0\x44\x83\x30\x80\xca\x56\xf7\x53\x8c\xc5\xe5\x02\x14\x2b\x35\x2b\x2f\xd7\xfc\xc4\x99\xa1\x28\xa9\x9e\x25\x4f\x44\x5a\xd2\xbe\x1c\x64\x54\x74\x1a\xe5\x4e\x3c\x39\x6e\x2d\x60\xf5\x78\x7e\x09\xf6\xa8\xe8\xbd\x33\x90\xe9\x90\x35\x1c\xa5\xe9\x2b\x30\xd5\xbc\xc4\x74\xaa\xe0\x68\x30\x6b\xab\xa5\xf2\x8c\xc9\x46\x35\x69\x15\x99\x2f\xeb\x34\x0e\x4e\x74\xbd\x46\x79\x18\x18\x87\x8e\xe2\x13\x6a\x06\xfa\x4e\x76\x2c\x42\xf4\xda\x65\x16\x78\x54\x73\xe8\x0c\xc6\xf9\x95\x65\x9b\x63\xc6\xcc\x74\x5c\xe6\xd3\xfa\xc2\x73\x3c\xae\x64\xf6\x59\x57\xdf\xae\x45\xa1\x50\x73\xfa\x0a\x19\x9d\x78\x6a\x4d\x11\xe2\x93\x5a\x17\xaa\x8d\x87\xac\x3a\xcd\x18\x5d\x41\x82\x44\xc5\xe9\xc7\xfc\x56\x2b\x39\x73\x5e\xab\x53\x5f\x7b\x79\x42\x43\x83\x76\x0a\x41\x9a\x9a\x04\xc6\x79\x6f\x76\xb6\x58\x8a\xd0\x4b\xe7\xca\x93\x8a\xa7\x6c\x29\x19\xe8\x40\x1f\xee\x35\x2e\xcd\xe5\xa5\xa9\x49\xeb\xd9\xa5\x8e\xb4\x42\x47\xae\x36\x78\xcc\xef\xfb\x37\x99\x49\x01\x9b\x83\xc7\xc0\x2a\x6c\xd0\xf2\xd8\x8f\x8a\x9e\xf3\x0f\xc5\xd2\x58\xdf\x70\x21\xda\x3b\xbb\xdd\xf4\xe8\x6d\x79\xfd\x14\xa9\x14\xf9\xd9\x69\x78\x9d\x1a\x75\x13\xf3\x2a\x8f\x6b\xeb\x40\xea\xdb\x6b\xd7\xca\x31\xe5\x33\xef\xdb\x1d\xbe\x42\x2f\xbb\x5b\x29\x95\x3e\x1c\xf9\xbf\x27\x97\x6f\xff\xb6\x21\x27\xdb\x1a\x5b\x41\x61\x03\x8a\x60\x39\xb6\x6f\x2a\xea\xbb\x3c\x8a\xce\x7c\x59\x08\x3e\x91\x7e\xb2\x46\xfa\xfa\x02\xce\xa4\x4a\xfb\xa4\xd8\xa3\x46\x3b\xf7\xb0\xd1\x0f\x4a\xef\x53\x53\x1f\x97\x47\x1a\x94\xa3\x06\x8e\xeb\x79\x7e\xed\x6e\x93\x21\x25\x5a\x27\xf7\xb8\xa4\x93\x6b\x05\xcf\xfa\xa9\xd4\x9c\x9e\xb5\x17\x9e\x27\x8c\x0d\x96\x63\x18\x46\x23\x6b\x5d\xee\xdf\x92\x92\xbd\x5c\x9c\xa1\xbd\xef\x94\xe9\x16\xa5\x37\xad\x56\x42\x49\x7f\x7d\xb3\x4a\x54\xe7\x0d\x5d\xdd\x47\xb7\x12\xde\xb8\x49\x8d\x64\x38\x30\x29\xd7\xa3\x7b\x83\x06\xe5\x52\x8c\xcf\xa3\x05\xb9\x13\x85\x93\x74\xbd\x60\xb7\x09\x84\x11\x49\xf3\x36\xfa\x91\x7d\xd3\x6c\x1b\xf9\xe8\xca\x08\xeb\xac\xcd\x27\xb0\x31\x79\x07\x47\x97\xf0\xdf\x80\x41\xf0\x82\x91\xda\xbb\x05\x4d\xc3\x00\xbd\x91\x5f\xb2\x9d\x61\xf3\xa7\x1b\xfa\x54\xa7\x50\xed\x5c\x01\x08\x06\x32\x77\x08\x43\x59\x10\xfb\x7c\xa6\xb6\xa3\x36\x00\x40\xde\xd3\x5c\x6f\x17\xa6\xf2\x93\xa2\x0b\xdf\x80\x40\xb9\x65\x38\x46\x4d\xd3\xba\x86\x35\xd5\x4c\xcd\xbe\xb6\xcc\x98\x90\x2c\x0c\xef\x80\x9a\x87\xde\x3d\x69\xe9\xd6\x3a\xc1\x82\xcf\x14\x6f\x9b\x39\xcd\x2b\xe7\x64\xeb\x95\x94\xfd\x81\xe7\x79\xb6\xf6\x35\x21\x28\xba\xbe\xb6\x2c\xc7\xe5\x3b\xeb\xdd\xc4\xe6\xb1\x3a\x6c\x48\xcb\x39\x3c\x44\x95\x70\x71\x50\x37\xe3\xea\x33\x70\x7c\xcf\xf3\xd8\x19\x45\x61\x18\xb1\x71\xe4\xe7\xd8\x3e\xb1\x4b\x6e\x62\x02\xcc\x82\x9b\x18\x1a\xd7\x56\xb8\xad\x43\xe1\x7a\x2a\x6b\x81\xca\xee\xc1\xee\x34\xfe\x82\x70\x83\xba\x75\x37\x7c\x04\xde\x5e\x5d\x3e\x59\xcc\xe6\x1f\x1a\x7c\x04\x3a\x78\x06\x34\x46\x87\x9c\x56\xb4\x97\x8f\x6e\xa2\xbd\xd4\xfa\xa3\x27\xa0\x26\x24\x87\xdd\xc1\xa5\x0a\x50\xe3\x5e\xda\x90\x7e\x22\xc2\x09\x50\x06\x1f\x8f\xc1\xe8\x51\x51\x9f\xf7\xdc\xf7\x51\x9a\xc6\xe4\xf5\xcb\x21\x4c\x7d\x71\x08\x0f\x3a\xfa\x46\x97\xc1\xee\x96\x1d\x40\x03\x96\x93\xc6\x4d\x42\x60\xb8\x55\xf3\x78\xa3\x07\xf4\xa6\x0a\xf5\x2d\xe6\xd4\xd6\xcb\xa2\xd1\x30\x3e\x2b\xfa\x4d\xa8\x85\x58\x6f\x6c\xab\x74\x3c\xf3\xe3\x04\x75\xec\xa3\xb2\x67\xab\x20\xa4\xaa\xa9\xae\xa5\x43\xc8\x06\x14\xb5\x72\x32\xd8\xe0\x38\xb0\xde\xee\x0b\xa5\xcd\xf7\x71\x41\xe0\xb5\x02\xdf\x85\x7e\x94\xba\x7c\x43\xa4\x2e\x0a\x42\x6a\xe9\xc8\x0d\x13\xd5\x25\xeb\xb6\x2e\xe0\x5c\x71\xf1\x30\xc2\xd8\x2a\x17\xfd\x1f\x0c\xfb\x44\x61\x70\xf0\xa4\x54\xac\xab\x93\x15\xb5\x0b\x2a\x2a\x97\x62\x36\x97\x37\xb1\x0f\x79\xd4\xb5\x15\xf1\xbf\x80\x35\x8d\xe2\x73\x18\x59\x55\x85\xd0\x2d\x4e\xe5\x18\x58\x49\x49\x53\xce\x26\x53\xa0\xb9\x6e\xa8\x68\x11\xf2\xdb\x14\x08\x71\x93\x6c\x23\xbe\x0e\x54\x50\xd6\xe0\x34\x26\x54\xd4\x62\xe1\x92\xfd\x8c\xa0\x49\x9f\xc6\x56\x4e\x37\xe2\x72\x4f\xc9\x82\xc9\xfa\x48\x68\xcb\x3b\x89\xf3\xc5\xb3\xf3\x96\x8d\xc3\xb9\xd4\xde\xd9\x82\xca\x27\x26\x8a\xef\x1f\x89\xec\x55\x57\x32\x83\xd2\x1d\xde\xda\xf3\x07\xfc\xdc\x36\x27\x61\xa9\x22\x8e\x43\x2b\x0c\xd8\x40\x31\x1e\xae\x3e\xbc\x3a\xfb\xf8\xfc\xc3\xc7\xa1\x76\xa4\xb7\x44\x8a\x5f\x0b\xf8\x31\x0e\x86\x56\x98\x9e\x89\xdf\x19\xd0\x2d\x12\x12\x5f\x84\x8c\x8f\x67\xe3\x0c\x70\x90\xd2\xe1\x8a\x0d\x39\x5c\x65\x40\x74\x67\x7f\xa9\x66\xc3\x15\xfb\xd0\xd9\x6f\x2f\x5e\xbc\x3a\x3b\x1b\x5a\xff\xb8\xa4\x56\x96\x81\x7f\x5c\xd2\xd2\x0b\x3e\x57\xf6\x8a\xff\x31\x5c\x89\x2a\xfc\x1d\x90\x7c\xa3\xc2\x6a\xcd\xcb\xd5\x5c\x61\x2d\x2f\xa9\x9e\x97\x51\xf7\x8d\xb2\xeb\x9e\x59\x34\x01\x71\x47\xf0\xda\xca\x0c\x67\x42\x94\x92\xe3\xd6\x57\x6f\x90\x6d\xd8\x30\xf4\xf0\xd0\x26\x1e\xd1\xd9\xc8\xcd\xf0\x8e\x62\x09\xf4\xc6\x02\x10\x6c\x8e\x46\x41\x86\xcc\x71\x1c\x80\xdd\x64\x91\xce\xa4\xd8\xcc\x63\xcf\xe5\x60\x38\xaf\xbb\x1e\xec\x53\x91\xf8\xb9\x5a\x2e\xe5\xb6\xdd\x0b\x71\x0f\x3d\x5b\x33\x6b\xf9\xb5\x52\x1d\xd4\x72\x95\x54\xa3\x2e\x6a\xe6\x0c\xd1\x88\x8e\x3d\x0c\x50\xfe\xdd\xe4\x7b\x71\xfa\x7f\x8d\xe2\xf4\x93\x0d\x3e\x2b\xef\xa7\xf0\x84\xfc\x7e\x54\x7f\x69\x3a\x93\x09\x29\x79\xd6\x38\x4b\x79\x01\x5b\x46\x7e\x4b\x9d\x71\xcf\x4a\x20\x9d\x15\xcc\x96\x31\x46\x84\x88\xa2\xaa\x74\x99\xf0\x47\x81\xcf\x0d\x7a\x69\x02\x7d\x15\x06\x4a\x43\x29\xae\x56\xcd\x91\x46\x22\x4b\x2d\x83\xa6\x84\x0f\x21\x51\x6a\x19\xd9\x8b\xa4\xad\x61\xdc\x58\xb4\x4d\xd8\xa4\x80\x15\x87\x81\xaf\x83\x46\xf3\x83\x02\xa8\x53\xa5\x6b\x04\xa9\x10\x98\x95\x11\xb2\x18\xe7\xca\x0e\x28\x2e\x32\xeb\x33\x0a\xe4\xf5\xef\xe4\x93\xf1\xb8\x5c\x94\xc3\xaa\x75\x8a\xe6\x17\xbb\xa3\xfb\x2b\x8d\xb4\xec\xe8\xfe\x4a\xe0\x92\xfd\x15\xf8\x59\xc1\x79\x53\x5d\xd4\x72\x1c\x03\x4b\x63\x9e\x63\xa0\x62\xff\xfb\x01\x8c\xac\xf7\xf9\x92\x68\x53\x6a\xd9\x3b\xc8\x6c\xcf\x24\x0f\x31\xaa\x6a\x3f\x28\x64\xc6\x19\x1c\x9b\x05\xcc\x3a\x5f\x1f\x95\x8b\xa7\x40\xab\x4c\x5d\x66\x89\x2a\x70\x12\x7b\x1d\xf3\xd0\x3c\x01\x56\x00\x29\xd4\x02\x47\x91\xb0\x72\x4d\x7b\x4e\xc0\x15\xa7\xdc\xa2\x85\xec\xf1\x18\x58\xe2\x68\x3e\x4a\x51\x34\x39\xba\x2f\x76\x65\x56\x89\x9b\x37\x16\xa5\x50\xac\xed\x87\xb1\x49\x02\x39\x39\x73\xa5\xbe\x78\xf2\xa4\x42\x23\x2d\xef\x73\x9b\xb0\xa8\xc9\x7f\x47\xf0\xc8\x36\xe7\x91\x9a\xd4\x16\xa8\x94\x14\x69\x8d\x8b\x38\x35\x0d\x0d\xc5\x0b\x95\x51\x13\xf0\xa1\xc1\x4d\x0c\xbc\x98\xd9\x90\xf4\xc7\x38\xec\xd6\xb8\x92\x2a\x4b\x0e\xc8\x6d\xb2\x96\x14\x1b\x2b\xe6\x8c\xbb\x5c\x50\x26\xba\x6e\xb3\x96\xff\xb8\xa4\x5d\x97\xb2\x84\x29\x60\x3d\x5f\xd0\xd9\x6f\x1f\xde\x54\x73\x69\xb5\x42\xb9\x98\xf9\x7e\x61\x5b\xdc\x07\x76\x69\xef\xc0\x05\x9d\xc5\x24\xfc\x03\xb1\x93\x42\x2e\x0d\x3b\x1e\xfc\x38\xe0\xc7\x04\x9f\xd8\xda\x0d\x65\x2c\x28\xeb\xa4\x8f\xf8\xfa\x35\x97\xbb\x0d\x98\xab\x08\x2c\x35\x0b\x6e\xda\x7e\xc1\x46\x19\x57\x8f\x8f\x86\xe6\x42\xe8\x18\x8f\x0b\x19\x86\xee\x80\x3d\x56\x5f\x3f\xae\xf7\x05\x00\x27\xe0\x14\x3c\x04\x8f\x36\xab\x16\x64\x89\x45\x6d\x13\x5c\x90\xd0\xb4\x0c\xce\xb9\xe3\xd4\xef\x0b\xc4\x05\x24\x2e\x1a\xe5\x95\xc3\xbb\xba\xdb\x55\x6e\x95\x85\x8a\x89\xe7\x46\xc5\x44\xee\x0d\x88\x02\x00\xcb\x0f\xa2\x52\x4d\xc5\xb4\xf4\x3b\x6c\xac\xb1\xc8\x65\x4b\xb2\xf0\xd9\x3d\xcd\x59\xd5\x59\xc5\x02\x19\xa0\x98\x93\x4a\x0c\x84\x71\x4f\xbd\xe1\x4b\xbf\x00\x86\xc5\x8f\x8b\x70\x9e\x8e\x77\xce\x94\x88\x94\x67\xe6\x97\x87\xbe\xca\xa8\xca\x6b\x17\x32\xe1\x32\x53\x75\x09\x9d\x15\x72\xd9\xd6\x72\x69\xfc\x5f\x67\xef\xde\x7a\x95\xe4\xfe\x3d\xf3\x12\x33\x89\x89\xcd\x2e\x3f\xd4\x1b\xfc\x27\xfd\x7f\x7a\xf6\xb2\xc6\xd4\x7f\xd2\x07\x0f\xd4\x2d\x99\x11\xd7\x3d\x4f\xb7\x18\xd1\xf1\x33\xf3\xc7\x70\x95\x1d\xd0\x7f\x3b\x79\xe6\x4b\xf1\xde\xc6\x0e\xb8\x77\x5c\x77\x75\xa2\xce\x4a\xde\xf9\x46\x94\x17\xa9\x1a\x6e\xb8\x07\xa7\xb5\x97\x41\x5e\xec\x0b\x6c\xea\x6a\x63\xc7\x19\x1a\x73\x6a\x98\x50\xf3\x95\x64\xd3\x1d\x1d\xf3\x8a\x1d\x8e\xbe\x86\xa3\xcc\x5e\x19\xb6\x07\xbe\x48\xf9\x6f\x20\x96\x53\xbd\x50\xbf\x80\x96\x21\xc5\x73\xfd\x13\x68\x61\x54\xbc\xd0\x3f\x33\xb0\x62\x67\xcd\xaf\x88\xce\xe2\xa0\x94\xfb\x36\x7f\xf1\xac\xf4\x3b\xbf\x7e\x83\xa6\x74\xe8\x9c\xa0\x14\xff\x55\x76\x36\xf3\x99\x8d\x9c\x2c\x03\xb1\x97\xd8\xa1\x59\x9f\x32\xa7\xf2\x11\x19\x83\x55\xf9\x36\x5e\xbc\xab\x1b\x77\x73\x60\xdc\x0d\x79\x96\x8f\xcc\x01\x8b\xf2\xe0\x7c\xa3\x8c\xe0\x4d\xc7\x2d\x8d\x6a\xdc\x48\xa2\xf1\xc6\x85\xae\xef\xea\x00\xe3\x79\xe5\x0b\xda\x67\x25\xed\x38\xbe\xec\x58\x1a\x3d\x34\x75\x9b\xe7\x6b\xb3\x12\x4e\xc0\x79\x8b\xac\x84\xc2\x77\x7a\x57\xdc\x94\x7e\xa4\x8b\xf7\x3f\xff\xfd\x8f\x27\x37\x72\x53\x92\xd1\x6a\xca\x6c\x28\x9c\xc3\x73\xaf\x25\x59\x67\x39\x3f\xeb\x85\x93\x5a\xa1\x26\xb5\x21\x09\x50\x12\x4e\xa7\x88\x7c\xd4\xb5\xad\xd9\xc1\x88\x30\x7d\x2b\x0e\x74\x99\xf9\xaf\xd6\x37\xa7\x1a\x5a\xdd\x3a\x9a\x4b\x1e\xa2\x7a\xf6\x5d\xce\x44\x63\x45\xbf\xa1\x13\x5c\x12\x47\xf1\x74\xd9\x9f\x23\x4a\x42\x3f\x3d\xf2\x6b\xcb\x07\xed\x54\xea\xeb\x3f\x7e\x78\xf7\x38\x1c\xc4\xff\x53\x4f\x7c\x09\x22\x3e\xc2\x14\x4e\x0b\xfe\xe9\x42\x99\x23\x3d\x88\x5a\x57\x87\xab\x06\xb7\xbe\x84\x14\xb2\xe1\xc5\x25\xd4\xda\xc6\x75\x3a\x37\x19\x4a\xc2\x2f\xae\x40\xdf\x97\x75\x5f\x0a\x16\xc5\xc7\xd2\xa2\x28\x21\x48\x5d\x99\x6c\xac\x60\x39\xe4\x62\x7a\x82\xc8\x3c\x4c\x53\x61\x93\x2f\x67\xe5\x3d\x29\x47\x9e\x96\x63\x5c\x92\x7c\x62\x22\x26\xb1\x39\x22\x47\x20\x44\x5d\x60\xd7\xe4\xbe\xed\xee\x50\xbc\x15\x8a\x06\x95\x58\x32\x23\x09\xe7\x8b\x77\x6f\xcf\x7e\x7b\xf3\xe9\xed\xd9\xfb\xe7\x2f\x5e\x9d\x7d\x7a\xf5\xf6\xf9\xcf\x6f\x5e\xbd\xac\xbb\x59\x8c\x4c\xc8\x0a\xca\xa2\x87\xa5\x87\x0d\x49\x8a\xcd\x1b\xc3\x8c\xa0\xc9\x7b\x28\xbc\x2d\xea\x49\xa8\x8a\xc7\x91\x95\x27\x9c\xab\x71\x1a\x94\x6a\xb1\x86\x89\x2a\x46\xd7\x72\x2e\xfa\xab\xd5\x48\xed\xae\xd4\x24\xe2\xb7\x07\x6b\xf0\x77\x52\xd0\x77\xac\x25\xc0\x1b\x53\xdc\xfa\x5d\x7c\x26\xae\xb2\x63\xa1\x52\xbd\x5a\xf6\x09\x4f\x9b\x44\xa0\x54\xef\x6e\xa9\xff\xab\x10\xea\x91\xb8\xf2\xf4\x85\x4a\x59\x5d\x9c\xe5\xc7\xc5\xd5\xb4\xf2\xf1\x8a\x7a\xb5\xe1\x5e\xd8\x1a\x42\x12\x2f\x68\x88\xa7\x7d\x21\x8f\x7d\x45\xe8\xca\x1f\x6e\x0b\x59\x21\xfb\xab\x0a\x69\xe7\x8c\xc0\x0c\x87\xaf\xcd\x52\xdf\xc0\x02\x44\x6a\xfc\x45\x8a\x7a\x5a\xc1\x9c\x56\x33\x85\xea\x46\x62\x8b\xa5\x95\xb4\xbc\xdd\x30\x66\xce\xfe\x51\x43\x4a\x7b\x93\xdf\x54\x94\xd9\x0f\x4b\x0f\xb5\x19\x60\x4a\xe2\x45\x52\x9f\x7f\xa3\x1e\x17\xdb\x7c\x66\xbb\x10\xc5\xc0\xa8\xe9\x6b\x1a\x4c\xd6\x25\xa7\x10\xc1\xa0\xeb\x92\x88\xe8\xc8\x41\x4e\x64\xa2\x32\x78\xf7\xec\x04\xcf\x83\x79\x88\x7b\x1a\xd4\xd2\x87\x5a\x25\x22\x68\x70\x4d\xb1\x9a\x22\x44\xab\x1e\x32\xd5\x45\xb8\xa5\xcc\x05\x75\xde\x63\xd5\xa0\xd1\x4d\x5c\xf2\xd1\x4d\x89\xf3\x16\x4e\xd2\x9b\x53\x5e\x7e\x46\xee\x00\xd9\x69\x40\xbf\x25\xc1\x15\xb1\x7d\x07\x04\xd7\xa1\x79\x2b\x36\x75\x6b\x07\x58\x2b\x81\xa0\x2a\x93\x9d\x6e\x13\x7c\xdf\x14\x0c\x5e\x89\x6d\xeb\x50\x0e\xba\x94\x67\x78\xcb\x4b\x47\xe9\x5c\xd2\x4c\xa1\x5e\xd2\x7f\x1b\xf7\x66\x08\x46\x74\xd6\xe3\x5e\xdc\x6d\x32\x8d\x37\x44\x6e\xd6\x2d\xef\x80\xdf\xcd\xd3\x34\xc4\xd3\xed\xbc\x90\x9b\x21\xd1\xc3\x56\x5c\xff\xf2\x0f\x0a\x30\xfe\xad\x2d\xc1\xae\x87\xe3\x12\x12\x7c\x07\x70\xe8\x61\x2b\x70\xe4\x1f\xbc\x55\x38\x7c\x12\xd2\x50\x7a\x6a\xde\x26\x20\xf9\xb8\x15\x48\x8c\x4f\x76\x02\xa5\x5b\x3a\x82\x2e\xb1\xab\xa5\x53\x44\x6c\x81\x5a\x06\xbb\xf1\x0c\xb9\xc5\x13\xe4\x6f\xa8\x07\x09\xea\x2d\x30\x3c\x8f\x50\x8f\xc6\xbd\x80\x81\x33\x0f\x31\xea\xd1\x19\x52\x1b\x95\x8d\xb2\x48\x7b\xf1\xa4\xa7\x54\x04\xbd\x10\xf7\x08\x9a\xc7\x14\xf5\x02\xcd\xde\x52\xf7\x86\x49\xc1\x5b\x9e\x3f\x7f\xe1\xb3\x5a\x37\x48\xd7\x03\x63\xe3\x65\xa1\x92\xb2\xe3\x09\x78\xb4\x59\xb5\xd7\xd1\x1f\x57\xd7\xc1\xe1\x66\x30\xfe\x97\xc4\xf7\x91\x58\x88\x7e\x41\xff\x14\xe5\x0e\xb9\xb9\xa3\xae\xd4\x19\x22\x7c\x61\x01\x0b\xe2\xc0\x18\xc3\x87\x24\x30\xee\xdc\x3c\x2c\x99\x6d\xa7\x2e\x6a\xc5\x46\x85\x5e\x8b\x52\x3a\x53\x44\x7b\x4a\x4f\x90\x1b\xb2\x4a\x07\xb0\x57\x4e\x98\x2a\xac\x0e\x21\x45\x73\xa0\xce\x6d\xe7\x99\x15\xf8\x6e\xa9\xe3\xb0\xa0\xc1\x4a\x67\xf1\xa5\x54\x63\x65\xb7\x5c\xc2\xa7\x8c\x83\x20\xbe\xc4\xfd\x28\xc4\xa8\x36\x67\x68\x1b\xd5\x26\xd7\xcb\x02\xed\xa2\x9a\xbb\xa7\xc6\xfb\xe4\xc0\xb9\xf8\xee\x48\xf9\xaf\xe1\x48\xe9\xaf\xd7\xa0\xbf\xa6\xa7\x2f\x4f\x7e\xfc\xfb\xa0\x5e\x83\x1e\x84\x29\xc3\xbc\x91\xa2\x96\x6d\x9d\xa2\xfe\xfc\xa7\x18\xfb\x04\x09\x67\xca\xbc\xaa\x24\xcf\xcf\x0d\xac\x9f\xf8\x56\x6b\x52\xad\x9b\x09\xb0\x74\x11\xc9\x27\xb7\x10\x98\x36\x18\x00\x2b\xbd\x10\x42\xd3\x63\x60\xb1\xc9\xfc\x1c\x5f\x55\x93\x44\xfe\x00\x46\x16\xaf\xd3\x61\xf5\x84\x87\x23\x7b\xb0\x2c\x3f\xc8\xcb\x44\x1a\x0f\x75\x21\xa8\x42\xfc\xba\x95\x10\xc4\x50\x83\x9e\xa7\x09\xf2\xe9\x07\x48\xc3\x98\x27\xf3\xc3\x5c\x16\x97\x86\xac\x13\x43\x17\x3b\x45\xf4\xb5\x1f\x63\x95\x1d\x3b\x35\x2f\xd0\xb2\xf9\xe9\xfa\xe6\xa0\x90\x75\xa2\x31\x81\x6f\x80\x26\xf5\xa9\x4e\x55\x83\x39\x24\x5f\x90\x4a\xfb\x3a\xa8\x26\xd4\x64\x5f\x5f\x84\xbc\xe4\xa0\xd5\x87\x51\x14\x5f\xf6\x83\xb8\x90\x45\x47\x64\x55\x35\xde\xf0\x3c\xa3\x1a\xfb\x56\xff\xa4\xd7\x3f\xe9\x0d\x1e\xf5\x06\x8f\xd4\x4b\x82\x26\xff\x6b\x01\xeb\xb1\xf1\xfb\xff\xcc\xdf\x62\x52\x3c\x13\x7a\xf5\xb1\x2e\x34\xf0\x78\xc3\x05\xdf\x0f\x89\xaf\xb3\x23\x5b\xfe\x95\x39\x94\xbf\x2c\x7c\xbf\x30\x5a\xb7\xdc\xab\x5b\x20\x10\x12\x1e\x94\x56\x8b\x42\xf5\xae\x8c\xc4\x41\xaf\x3f\xe8\x0d\x4e\x7a\x83\x93\x12\x12\x1f\x95\x90\xf8\x68\x1b\x24\x3e\x64\x42\x4a\x28\xa2\x39\xe0\x82\xc6\x7d\x5e\x57\xbc\x2f\x79\xed\x06\x3c\x27\x71\xb4\x9c\xc6\x4a\xe8\xb7\x92\x38\xc4\xfc\x5c\x3d\xee\x1d\xf7\x06\xc7\xbd\x47\xfc\x9f\xaf\x81\xdd\x00\xe1\x65\x2d\x75\x1a\x2f\xbe\x13\xe7\x7a\xf4\xd5\xd3\x66\xe1\xd5\xbf\x34\x69\x56\xee\x10\xfa\x66\x5d\xcd\x65\x59\x4c\x4f\x59\x4e\x11\xb4\x65\xce\x48\x75\x2e\x9c\x02\x6e\xeb\x56\xd6\xb9\xf1\x58\xac\xd2\x2d\x28\x87\x78\x70\x44\x1b\x92\x51\xd3\x08\x83\x4a\x10\xab\x99\x68\xc6\x2c\x61\x1b\xa0\x94\x2a\x33\x67\x4a\xa4\x63\xbf\xac\x6e\xcb\x7e\x2a\xd3\xe0\x23\x45\x0d\x62\xb9\x8b\x87\xb8\xb5\x20\x91\xfd\xa7\x3c\x3a\xa1\xca\x01\x9c\x92\x65\x5c\x8e\x85\x70\xd0\x69\x24\x4e\xf1\xe5\xb1\x6a\xec\xa2\x35\xab\x51\xab\x71\x6f\xaf\x8f\xf8\x67\x58\x0c\x2d\x13\xdc\x7c\x35\x8c\xb3\xf1\x4e\x97\xa3\x46\x67\xb4\xbe\x52\x6f\x5b\x2d\xb7\x99\x42\xa8\x50\x17\x90\x27\x65\x15\x15\x53\x7a\xa1\x28\xd8\x11\xe3\xde\x24\x26\x4a\x8f\xc3\x57\xa5\x98\xa8\x15\x8c\xac\x33\xf5\xb2\x6b\xc0\x4a\x4b\x66\xf5\xf8\x76\x98\x55\x5d\xe6\xa4\x35\x6e\x34\xb5\xe1\x50\x0f\x8d\x7e\xaf\x15\x86\x2c\x60\x3d\x67\x34\x61\x26\x9a\x07\x75\xad\xfe\x02\xd3\xf7\x86\x3e\x65\xb3\xad\xa9\x15\x9b\xac\xb3\x86\x27\x71\x12\x5f\x70\xaf\x4a\x61\x09\x57\x71\x64\x46\x21\xe4\xdc\x1d\x29\xbf\x62\xe5\x37\xa9\x9a\x10\xb0\x8d\xd0\x00\x2b\xfa\xc1\x2a\x72\xfe\x82\xa1\x99\xb1\x83\x8d\x6c\x63\xa3\xb7\x46\xc9\x9f\x3d\x6c\xba\xba\x18\xb9\x2d\xc7\x95\x12\x89\xc7\x75\x39\x30\x1f\x1a\x79\x3e\x36\x7a\x07\x34\xd8\x18\x6e\x46\x70\xeb\x08\xab\x12\xfa\xc1\x9a\x7e\x24\x10\xa7\xc2\xb7\xf0\x3d\x89\xaf\x96\x35\xc6\x4f\xb3\xf9\x8b\x18\x63\xe4\xd3\xb7\xbc\x9c\x6a\x4d\xdb\xd3\x7a\xa3\x17\xbb\x49\x86\x93\xd0\xef\x6b\xa6\x70\x43\x77\x84\x2e\x24\x6b\xdc\xf3\xbb\x50\x2f\xd7\x8e\x0a\xdd\x45\x60\xa9\x50\x97\x7f\x0a\x6a\xbc\x59\x82\xc6\xfa\x7a\x98\x9d\xd2\x36\xea\x28\x8d\x49\x88\x03\x91\xfe\x41\x47\x6a\x70\x2d\xb4\xac\x1c\xa0\xd4\xd3\x42\xad\xcc\x95\xd4\x5c\xfb\xdc\x50\xad\xfd\x62\xda\xf7\x17\xe4\x02\x95\x73\xc0\x89\x3a\xf0\x81\xce\x1f\x21\xd4\xd0\x5b\xc4\x7d\x6c\x50\xc4\x16\xc2\x40\x02\xcf\xc6\xe5\xa8\x0f\x15\x17\x52\x9f\x02\x0e\x96\x62\x40\xa2\x56\x31\x20\xae\xeb\x22\x23\x0e\x04\x39\x20\x96\x51\x1e\x45\x52\x02\xa9\x8c\xf7\x50\xaf\xd9\x47\x41\x28\x1e\x66\x53\x44\x7b\x3c\x0b\x5c\xb5\x8a\x99\x51\x8d\xa0\xac\xb9\x31\xaa\x1e\xe6\x9a\x73\x76\x97\x02\xd4\x1b\xb9\xae\x4e\x80\xe6\xfe\xbe\x40\x64\x79\xc6\x8b\xf6\xc7\xe4\x79\x14\xd9\xd6\x9f\x18\xf2\x52\x4a\x10\x9c\x0b\x14\xf6\xb8\x6c\xe8\x8c\x45\x01\xba\xc2\xdc\x3d\xea\xce\x61\x62\x53\xef\xe9\x4a\xb9\xd4\xf2\x7a\x65\xbf\x44\x31\xa4\x36\x77\x6d\xff\x18\x53\x18\xbd\xe1\x2a\x37\xdb\x71\x00\x11\x35\xf4\xde\xb3\x1b\xd2\x73\x2a\x9f\xf3\x22\x76\x3e\x0a\x23\x1b\x1f\x9d\x3a\xaa\x3a\xdc\x2a\x0c\x86\xd4\x0d\x03\x70\x35\xe4\x0d\x48\xbc\xc0\x81\x4d\xdc\xab\x3e\x72\xaf\x1c\xb0\x2c\x3e\x5d\xf6\x91\xbb\x74\xb2\xcc\xc9\x32\x90\x7a\x0b\x3b\x2a\x38\xe7\x17\x11\x3e\xc2\x37\x8d\x1b\x08\xcb\x5f\xe0\x6b\x76\x0b\x71\x0e\xc5\x51\x2b\x0a\x39\x1e\xf2\xb0\x29\x6e\x60\xfd\x10\x0e\x88\xcc\x08\x82\xc8\x74\xe4\x0e\xd6\x1a\x45\x7c\x10\x6c\x61\x14\xb9\x1d\x4b\x08\x88\xc1\x02\xf8\x20\x00\x73\x90\x80\x09\x38\x07\x33\x70\x01\x96\xb9\x7d\x64\xba\x4f\xf6\x91\x77\xdf\xed\x23\xff\x1a\xf6\x91\x4f\xeb\xed\x23\xbf\x44\x5f\x7e\x8e\x66\x7f\x9e\xd6\xdb\x47\x16\x89\xe0\xc2\xa9\xc8\x4d\x90\x17\xf2\x93\xe2\x91\x21\x3d\x89\xb0\x83\x19\x4c\x7f\x15\x9b\xee\x7d\x1e\x8b\xfa\x93\xdc\x87\x7f\x21\x68\xc2\xd3\x4e\xc8\xfd\x59\x4c\x3a\x61\x88\x57\x9b\x23\x68\xe4\x06\xf7\x63\x4c\x61\x88\x11\xe9\x49\x46\x50\xde\xfa\x56\xbd\x95\xc1\x87\x91\xbf\x88\x44\x3c\x6b\x9d\x5d\xc1\xaa\x4d\x2d\x38\x30\xc3\xa2\xf3\x23\x2a\xb5\xc0\xad\x18\x74\x72\x10\xd9\x8f\xfc\x04\xd4\x40\x5a\x85\xfc\xdc\x6a\x22\x29\x92\x55\x32\x85\x62\xac\x74\x72\x5a\x25\x63\xcb\xa3\xf6\x3d\x41\x1d\xa8\x9d\xf0\x65\xda\x81\xb8\xe7\xd5\x8b\x38\x5a\xcc\xb7\xf4\xbc\xd5\x76\x9e\x86\xca\x5f\x5a\x8d\x54\x72\xc0\x79\x5c\x70\xa4\x6f\xd4\x1f\x97\x8b\x92\xdd\x85\x87\xcb\x3b\x1c\x2d\x7b\xe9\x2c\xbe\x0c\xf1\xb4\x67\x60\xb5\x77\x19\xd2\x59\x88\xb9\x93\x8b\xbf\x20\xec\xbe\x65\x38\xb2\x70\x15\x89\xa5\xe1\x79\x64\xe8\x44\x80\xa9\x1d\xe1\xd3\xbe\x0d\xa7\x97\x6e\x7e\x56\xeb\xeb\x35\xae\xa1\xa0\x5b\xbc\xdd\xf1\x28\x19\x9d\xe4\x45\xb3\x94\x72\x28\x94\xbe\xd6\xd5\xb3\x29\x1c\xcb\x87\x1f\x10\x4c\x85\x2a\x7d\x64\x54\x76\x30\x08\xa9\xb2\x10\xe3\x71\x7e\x09\xd4\x29\xf5\x8f\xf9\x3d\xb1\x34\xe6\xb6\x69\x3e\x8b\x77\x3a\xe3\x0b\x73\x18\xe2\xb7\x31\x7d\x8d\xa7\x04\xa5\x69\x61\x42\xa5\x72\x04\x60\x64\xfd\x77\x88\x85\x9e\x31\x14\xcd\xfb\x53\x48\xd1\x25\x5c\xde\xe0\xc6\xbd\x26\x68\x82\x42\x26\x6b\x55\x96\xc5\x4c\x7d\x23\xd7\x08\xe1\x80\x5b\x2c\x1a\xd6\xab\x76\x65\x8a\x77\xeb\xb2\xa3\x35\x30\xa6\x5e\xef\xaf\x5d\xf6\xeb\xae\xeb\x21\x5a\x95\x54\x2a\x06\xa7\x4c\x17\xf3\x39\x24\xcb\xfe\x24\x26\x7d\x3d\xef\x75\xbb\xb4\xe0\x14\x6e\x26\x68\xa8\x25\x94\x0e\x51\x24\x5b\xe4\x55\x78\xb8\xa5\xbe\xb7\x2e\x64\x65\x00\x2c\x1d\xb2\x66\x9e\x57\x4d\xc6\x7a\x33\xd6\x45\x75\x54\x29\x5e\x9b\x98\x7b\x0b\xf6\xb7\xc9\x74\x75\x5a\x93\xa4\xa3\x38\xe2\xaf\x88\x42\x0b\x58\xec\x5e\x4d\x30\x8c\x54\x2e\x10\x86\x0e\x29\x63\xc0\x24\xac\xdf\x36\xad\x74\xc6\xa7\x7a\x07\xdf\xd2\x26\x43\x24\x44\x2d\x77\x99\xa9\xec\x62\xd7\x2f\x3f\x8e\x5a\xee\xae\x22\x8e\xba\xec\xb3\x47\x60\x30\x28\x74\xde\xbc\xe5\xd6\x31\xda\xca\x5e\xfa\x91\xed\x62\x05\x4c\xc7\xfd\x04\x4a\x6b\xb2\x8e\x9d\xee\x0a\x4b\xdc\x97\x85\xb3\xb6\x63\x8d\x37\x59\xce\xf6\x6a\x4b\xd0\x24\x54\x72\x7e\x14\x85\xf8\x8b\xb5\x5e\xc0\xcd\x6d\xdc\xdb\xd4\x2a\x2c\xc6\xfc\x2a\xf6\xa7\x3f\x2b\x42\x7d\xc5\x27\xb8\x31\x5f\xe7\xbb\xfd\x74\x1e\x41\xd9\x88\xfb\x1a\x44\x5c\x11\x2a\x72\xe4\xf7\x70\x4c\xd0\x04\x11\x52\x64\xa1\xef\x12\x84\x7b\x01\x4c\x67\xe7\xb1\x0a\x25\xde\xd2\x4e\x5b\x37\x77\x71\x93\x2f\x4f\x7d\x00\x8a\x75\x2f\x55\x4c\xf2\xcb\x77\x2f\xce\x3e\xf1\x4c\x54\x2a\xbe\xef\xc8\x17\x36\x83\xa3\xf8\x9c\xd1\x08\x3c\x0f\xa3\x90\x2e\x8f\x16\x61\xff\x22\x4c\x17\xec\xce\x0c\x8d\x14\xc6\x37\x44\xc5\x0b\xa9\x76\x40\x9d\xf0\xb1\x65\xe8\x4f\x93\xab\x76\xf9\xd4\xac\xb9\xb0\xd5\x1d\x9a\x75\xcc\x24\x57\x31\xaf\x33\x6b\x28\x4f\x45\x29\xc0\x68\x9f\x45\xd3\x9b\xb1\x60\xda\xc8\x67\x64\x99\x86\x03\x25\xc7\xff\x95\x8d\x67\xec\x4c\x31\xee\xcb\x70\x8e\x70\x6a\x7a\xec\xa9\xf6\x6f\x04\x54\xe3\x86\xeb\x24\x28\xd8\x87\x0d\x7b\xc5\x60\xb0\xce\x44\xd1\xe6\x7c\x37\x6f\xc9\xa6\x26\xe3\xc6\x97\xf5\xf2\x1a\xaa\xc1\xfb\xbe\xbc\xdf\x36\xf0\x8e\x1f\x1a\x4c\xd1\x3c\x6e\xdf\x10\x32\x41\x75\xd6\x37\xbd\x35\x55\x14\x0c\xc6\x9c\x3b\xa8\x17\x74\xaf\x8e\xca\x85\x52\xbf\x75\x00\x6e\xe0\xbb\x27\x5b\x06\xeb\x94\xd5\x02\x9b\xcb\x89\x76\xba\xe5\xde\xbc\xec\xe9\xc6\x7b\xad\x10\x0b\xca\xaa\x37\xe5\xc5\x50\x92\x99\x4e\xeb\xee\xa8\xdf\xec\xea\x79\x7a\x57\x57\xcf\x1d\xb9\x7c\x9e\x76\xbe\x7c\x9e\xb6\xba\x7c\x9e\x56\x2f\x9f\x7a\x27\x6d\x27\x5f\x9d\xde\xc9\xd5\x73\x8b\xcb\xe7\x69\xc7\x93\xb5\x50\x62\xe0\x36\xae\xab\x15\x56\xd6\xf6\xd8\x5d\x24\x77\x70\xe8\xaa\xd9\x54\x8e\xdc\x45\xd2\xe5\xc0\x5d\x24\x95\xe3\xd6\x64\xb1\xb7\x75\xd8\xb6\xcf\x1a\xc5\x4d\xf2\x75\xb6\xfa\x66\x23\x7c\xbd\x01\x9f\x67\x82\x10\xee\x00\x7d\xf6\xa8\x1f\x62\x1d\x59\x96\x23\x5e\xf8\x06\xc4\xb8\x4f\x50\x1a\xfe\xa1\x4d\xfa\xd2\x81\xe0\x26\xf6\xfc\xaa\x11\xff\x7d\x6e\xc4\x2f\xdb\xec\xd9\xb4\x1c\xd0\x21\xd3\xa3\x7a\x90\x96\x1f\x84\xe5\x07\x71\xf9\xc1\xa2\xe4\x19\xe0\x97\x7e\x07\x5b\x7a\x0a\x4c\xa5\x2b\x00\x47\xf1\x5c\xfa\x07\xa8\x87\x15\x1a\x04\x49\xa9\x85\x16\x15\xc1\xa4\xe6\x8d\xa0\x52\x70\x5e\x7a\x25\x89\x1d\xcc\x2a\xcf\x65\x87\x8b\xd2\x8b\x32\xeb\x02\x4b\xe9\xb3\x10\x10\x78\xf9\x52\x7d\xc8\x46\xca\x17\x81\x7a\x23\x11\x7d\x60\x78\x92\x79\xab\x2b\x91\xc7\xb0\x0c\x94\x7b\xd5\xff\x01\x2c\x1b\xde\x2d\x1f\xd4\x3f\x17\x71\x33\x47\x27\xda\x98\x8a\xb8\x7f\x02\xd2\xfe\x09\xd4\x43\xee\x14\xd1\x9f\xe3\x05\x0e\x42\x3c\x7d\x11\x85\x08\xd3\x0f\xc8\xa7\x36\xa3\x18\x36\x17\xf7\xea\x01\x75\x79\x50\x0e\xfb\x3a\xfb\x52\x65\xd4\x55\x18\x0c\x91\x1b\x06\x20\x77\xfd\x1c\xf2\x61\x9f\x53\x4a\xc2\xf3\x05\x45\x76\xc5\x5d\xd4\x01\x01\x4a\xe9\x10\x83\x94\xf8\x43\x92\x65\x8e\x9b\xc6\x84\xda\x36\x02\xd8\xf1\x9e\x52\x5d\x75\x0d\xb9\x79\x27\xa7\x9f\x3f\xc7\xe6\x73\x81\xe1\xdf\x92\x9b\xe1\xf7\xc1\x23\xf7\xd1\xb7\xc1\x70\x5f\x62\xb8\x7f\xf2\xe8\x2e\x90\x4c\x38\x92\xf1\x8d\x91\x6c\x58\xcd\x0c\x7f\x9a\xba\x98\x54\xc5\xb0\xd8\x9e\x78\x89\x12\x84\x03\x84\xfd\x10\xa5\x96\xf2\x65\x11\x95\xf1\x10\xbe\x70\x2f\x20\xb1\xd5\x95\xfc\xf9\x8b\x37\x79\x8e\x30\xe7\xfa\x1a\x71\x6f\x1f\xe3\x8a\xd6\xfa\xb3\x2f\x8d\x6b\x9d\x73\x7d\x3d\x1a\x4b\x3f\x1f\xc4\x48\xe0\xce\x66\x7c\x78\x88\x9f\x51\x5e\x7d\xc4\x5e\x09\x76\x6e\xcc\xa3\xb7\xc0\x5f\x70\x7c\x89\x5d\x0b\xbc\x62\x88\x1c\xde\x3b\x06\xb9\x38\x35\xb4\x2c\x23\xc5\xa9\x65\x65\xce\xf0\xd8\xf3\x3c\x24\xd3\xcc\x1e\x1e\x16\xc7\x7d\x1b\x9b\x68\x71\xad\xb5\x23\x01\xca\xf1\xa8\xcf\xde\xd6\x58\xfc\x2d\xe9\x84\xc3\xc0\x07\x96\xac\x87\xf8\xfc\xc5\x9b\xf7\x71\x14\xfa\x4b\xe3\xe4\x69\xfa\xca\x65\x18\x05\xec\x6e\x91\xfb\x82\xe6\x1e\x66\x77\xb2\x48\xb0\xb4\x48\x1a\x4c\x63\x89\xd6\xae\x8c\xe4\x2a\x9e\xe7\xe1\xeb\x6b\x52\x1a\xed\x3f\x7a\xf6\xf3\x28\xea\x49\x51\x37\x75\x36\x8c\xb5\x61\x95\xf5\xa2\xb5\x5b\xe3\xda\x4b\x50\x1e\x51\x5e\xbe\xed\xdc\xf3\x3c\xbb\x0e\xd1\x52\x76\x70\xe5\x00\x40\xdc\x97\x1c\x5e\x10\x33\xd3\x97\x69\xe1\x98\x14\x4e\x72\x8e\x8b\x9b\x99\xdd\x81\x76\xb1\x9b\x22\x55\x0d\xf4\xe7\xe5\xeb\xc0\xb6\xac\x07\x74\x74\x3c\x76\xdc\xb4\xc0\xcb\x52\xba\x8c\x90\x05\x3e\x0b\x3e\x38\xbc\xbf\xc2\x92\x25\x66\xc9\xd5\x67\x27\x13\xdc\x58\x79\x4e\xd8\x4e\x66\xfc\xbd\x32\x82\xe3\xd3\x0f\x3c\x15\xc3\xcb\x17\x22\xd1\x6f\xe9\x88\xf6\x2c\x91\xa9\xa1\x1f\xf8\xd6\xb0\x82\x9d\x42\x06\xe9\x12\x4a\x5c\x86\x91\x86\x31\xcb\xe3\x0c\x6b\x9b\x31\xc1\xf6\x40\xed\xc3\x46\xe4\x54\x34\x72\x4e\xe3\x69\x42\x9b\x47\x29\x5d\x2f\x9a\xc7\xc0\x2d\xc6\x90\x7a\x25\x47\xf8\x3f\x1a\x87\xc2\x33\xe9\x89\x29\x64\x2d\x76\xb6\x21\xf7\x0a\x2c\x87\xc8\x5d\x02\x7e\xbe\x0d\x91\x94\x24\xe4\xa2\x22\xb9\xa4\x0f\x06\xc7\xd9\xb0\xd8\x19\x01\xac\xaa\xc0\x0a\x39\x4c\x1e\x95\xe2\x7c\x94\xc3\xd1\xe2\x70\xb8\x09\x2c\xe3\x33\x8e\x44\x39\xe9\xe2\xf6\x99\x7b\xf6\xb8\xf5\x39\x31\x9d\x31\x80\x5e\xfd\x60\xb6\xe5\x96\x4c\x8a\x0e\x88\x36\x7e\xbc\x84\xec\xe6\xef\x1e\xd4\x8a\x25\x1e\x6c\xa6\x12\x85\x66\x2e\x2c\xc9\xaa\xc9\x05\xf9\x94\xc8\x46\x52\xce\xcd\x9b\x28\x01\x2b\x72\xb2\x0c\xcc\xbd\x77\x76\x60\x3a\x56\x72\xd1\xfc\xe6\x9e\xa4\x49\x79\xdc\xaa\x74\x7f\x73\xb7\xd2\x49\xf9\x23\xf9\x05\xe1\xe6\x39\xb4\xcf\xeb\x06\x97\x57\x86\x51\xb4\xf5\xe8\x95\x2c\xf5\xa3\x71\x96\x39\x60\x56\xfe\x9a\xba\xb6\x8c\xd2\x9b\x02\x72\x51\x1d\x5a\x81\x11\xde\x36\x18\xcb\xf2\xb7\x2a\x97\xa9\x51\x7c\x53\x78\x4a\x5f\xc8\x95\xc2\x60\xb4\xd8\xec\x45\xdc\xd0\xd7\x01\x81\xe9\x3e\x5c\x26\x5e\xed\xdb\x07\x46\x7e\xc7\x6f\xe4\x7d\x4b\xdf\x08\x4c\x17\xe5\xf7\x6b\x5d\x94\x3f\x81\xf7\x5b\xb8\x28\xe3\x98\x86\x93\xd0\xe7\xd6\xae\x1a\x87\xe5\x6f\x93\xfb\xfc\xef\x7f\x8d\xfe\x27\x49\xff\x9e\xd4\x3b\x87\xea\x32\x62\x22\x21\x93\x59\x50\x4c\x15\x47\x69\x9d\xec\xed\x74\x0c\x2c\xad\x0d\xdb\x32\x19\x5d\x6d\xc6\x3b\x6e\x88\xe6\x95\x0e\x6e\x10\x2e\xfc\x7f\xf1\x82\x18\x21\x8b\x33\x98\xf6\xce\x11\xc2\x3d\x18\x04\x28\x70\x3b\xda\x51\x3f\xce\x10\x41\xbd\x4b\x98\xf6\x20\xee\x71\x44\xb1\x71\x42\x3c\xed\x2d\x0b\x9f\x69\x1a\xb7\x5d\xb2\xaf\xf5\xa8\x96\xba\xb6\xdb\x49\xd4\x77\xb7\x38\x4e\xe1\xc5\xad\xe0\x38\x85\x17\x37\xc4\x71\xb3\x33\x41\xd1\x42\xf5\x10\xc8\xbd\x91\xf2\x20\x26\x92\x52\xb1\x5d\xdb\x3a\x91\x98\x98\x16\xf9\xe3\x44\x32\xe0\x8e\x4e\x28\x4a\xe9\x7d\x9e\xdb\xc0\xb9\xda\xb6\x18\x5b\x6d\xd9\x56\xc5\x5a\xc3\x3e\x29\xf7\xf4\xb8\x6a\xb9\x28\xbe\xb5\x86\xbd\xba\xca\x4e\x85\x59\x03\xcb\xa9\xd4\x40\x6e\x89\xf5\xed\x22\xc7\xf2\x8c\x65\x37\x8d\xe2\xaa\x61\xcb\xbb\x53\xc0\x40\xc6\x34\xee\x78\x0d\x83\xf0\xff\x2e\x7f\x3c\xfa\x9f\xd3\x79\xfd\x21\x22\xef\x9c\x56\x04\xcf\xb9\x0b\xc7\xa7\x4f\x90\x4c\x8f\xd5\x1f\x03\x5d\xdc\x32\xbd\xc1\xbb\x8a\xcd\xd4\x38\xa9\xcc\xe4\x4e\x46\xb0\xa7\xae\xeb\x91\x47\x85\xae\x0b\x4b\x18\x3c\xe6\x59\xaf\x07\xbc\xf4\x58\xe9\xd6\x20\x57\x49\xa6\x56\x1a\x3c\x94\x99\x06\x7e\x00\x83\x1f\xda\xf8\x09\x0c\x44\x3d\xb3\x64\x28\xfb\x3f\xd1\x19\x9c\x92\xab\xff\x8c\xd0\x84\x9a\x2f\xae\xd4\x8b\x8a\xdd\xf1\xc7\x3a\xc7\x08\xf6\x47\x31\xa0\xda\x7a\x1e\x04\x39\x7b\xb4\x80\xc5\x04\xdb\x5e\x43\x60\x6e\x2b\x3e\x56\xf8\xb0\xb6\x96\x3f\xde\x3e\xe7\x6c\x3b\x48\xb6\x76\xce\x7a\x02\xac\x10\x4f\x62\x32\x47\x41\x5f\xc5\x9d\x8e\x64\xdc\x49\x00\xf1\x14\x91\x78\x61\x86\x95\x14\xca\xbe\x0d\x72\xab\x9a\xa5\x22\x8e\xcb\xe6\x6d\x55\x87\x34\xf8\x99\x6d\x87\xf4\x35\x9e\xc4\xa6\x49\x79\x60\x14\x7a\x91\xb7\x57\x60\x9d\xc7\x41\x1e\x07\xcb\xbf\x7e\x0c\x8e\xc1\x60\xdc\xc2\xa4\x5f\x45\xda\x13\x39\xc9\x1f\xc7\xc0\xd2\x2e\xb7\xdb\x20\xad\xb6\x62\xfd\xec\xb4\x21\x8a\xa2\x57\x5b\x3c\xdf\xca\x19\x9c\x2b\xb8\x5e\xe5\xde\xed\x4a\x4c\xba\x6c\x7d\xdd\xf2\x8c\xeb\x27\x52\x97\x47\xba\xb5\xd4\xd4\x84\x2c\xbe\x0a\xb7\x88\xaa\x72\x01\x08\xab\x54\x5f\xf6\x04\x0c\x6a\xb2\x22\xbc\xba\x82\x0d\xb2\x44\x0b\x0a\xbf\xc5\x85\x60\xd8\x70\x43\x35\x9d\x16\xc7\x7b\xb3\x63\xe1\x6d\xcf\x0a\xc7\xb4\xfd\xb4\x8a\x7e\x0c\x77\x4b\x41\xf9\x06\xde\x2e\xd5\x88\xa8\xdb\xdb\x52\x08\xac\xc9\xf3\x2e\x4c\xfd\x60\xa4\x2a\x46\x73\xee\x21\x78\x1b\x34\x9e\x6c\x97\xbd\x57\xb9\x99\x9d\x2f\x28\x15\x6e\x32\x27\x0f\xc1\x43\xf3\xb7\x60\x99\xbc\xc0\x8f\x1f\x85\xfe\x17\x79\x72\x3d\xda\xe0\xfa\x75\xe7\xbb\xe1\x56\x28\x4f\x20\xf0\x96\x77\xc4\x6d\xce\xec\x86\xbb\xa2\x71\x5f\xb4\xce\xf0\xbf\x8e\x0a\x6f\x99\xec\x8e\x79\x1a\x07\x1f\x45\x6d\xc9\xb0\x5a\x13\xa2\x50\x76\x58\xa0\xf3\x45\x8c\x29\x89\xa3\x88\x9f\xc9\xb3\x30\x68\x2a\xe8\xd0\x7c\x00\xf6\x7a\x2f\xf8\xb4\xea\x60\xb8\x01\x66\x6b\xdc\xa5\x9a\xd2\x82\xdf\xe8\xe1\x8f\x8c\xff\x6c\x4a\x56\xdd\x82\x27\x16\xe5\x36\x33\x97\xca\x5d\x8a\x6f\x32\xa1\x7c\x4f\x59\x01\x54\x0d\xa4\xfd\x17\xe5\x1e\xef\x9b\x28\x67\x2c\xf9\xb7\x92\xe8\x1e\x7f\x05\x89\xee\x6e\x10\x26\x67\x3d\x2a\xba\xea\xe7\x2e\x84\xe6\x71\x69\xfa\x7a\x0e\x4e\x4b\x65\xd8\xbf\x22\xa6\x6f\x2e\xf9\xb4\x0f\x98\x6b\x38\x72\x9e\xdc\xa5\xdc\xa3\xc3\x62\xaa\x11\x30\xa7\xed\x22\x60\xcc\xda\x68\x47\x52\x53\x51\x28\x98\xf6\xa7\xa2\xb3\x7c\x8b\xb8\x97\x86\x78\x99\xa6\xa3\xe9\xf6\x28\x54\x21\xb5\x71\x4b\xdf\xae\x30\xf1\xe4\x5f\x55\x96\x88\xe2\x14\xdd\xb9\x28\xf1\xe4\x2e\x24\x89\xc7\xe0\x87\xee\x82\x44\xeb\x93\x3e\x94\x27\xf1\xde\x1f\xec\xa7\xfb\x76\xb0\x47\x3f\x7c\xab\xf3\xfc\x74\xaf\xce\xf3\xe8\x07\xb7\x38\xd9\xaf\x88\xa5\x9b\x9f\xc5\x0f\x6f\x7a\x16\x3f\xfa\x8a\x67\x71\x6e\xad\xac\x2b\xca\x22\xb5\x09\xa9\x8b\x82\x90\xd6\xd8\xc2\xca\x3a\x87\xd7\x2f\x6b\xab\xc8\xde\xcd\x99\x1a\xfd\xf0\xb5\x8f\xd2\x47\xdf\x8f\xd2\x5b\xc3\x6b\xb5\xd9\xa3\xbb\x38\x4a\x4f\xc1\xc3\xca\xe7\xb7\x0f\x86\x2f\x2e\xd9\x29\x23\x08\x19\xde\xc8\x4b\x8d\x40\x12\xc2\xbe\x34\xd6\xe9\x30\xca\xfa\x95\x1c\x3c\xaa\x2e\x95\xca\xc1\xad\x0a\xdc\x33\x09\x96\x2e\x48\xb1\xd4\xbd\x79\xbc\xd2\x19\x9a\x23\x0b\x58\x49\x04\x7d\x4e\x6e\x3c\x5a\x2a\xfd\x7d\x01\x09\xea\x73\xfb\x32\xe3\xfa\x94\xc6\x73\x99\xb1\x7b\x3c\x1e\x57\x53\x80\x1b\x67\xbd\x41\x2c\x3a\xe2\xe9\xd6\x88\x8f\xf1\x94\xd6\xc4\xd7\x22\x84\x6d\x6d\x0d\xb7\xdb\x5b\xa9\xe3\x31\x18\x51\xb2\x40\x37\x98\x69\x9d\xed\x5e\x47\xec\xb5\x0f\x17\x33\x4c\xb0\xda\x9a\x9f\x97\x13\xe3\xb1\x5d\x9c\x72\x20\x5b\xf7\x09\xe6\xb1\x5e\xba\xf8\x58\x3f\x4c\xfb\x5c\x6a\xeb\x73\x4b\x73\x3f\xc4\x17\xb1\x30\xdd\x2b\x9f\x00\x59\x8f\x2c\x45\xb4\x1c\x81\x26\x02\xc9\xb8\xcf\xc0\x65\x48\x67\x7d\xb6\xb4\x11\x8f\x3f\xc3\xf1\xcd\x5c\x08\x0a\x56\xfa\x16\x85\xc9\xee\xb8\x40\x98\xc8\x17\x53\xe7\x33\x10\xc0\xe5\x3f\xf4\xbf\x47\x49\xb4\x98\x86\xf8\xc8\x87\x11\xc2\x01\x64\xc4\x1d\x9c\xf6\x53\xee\x31\x2b\x10\xca\x7e\xb2\xb7\xc6\x9f\x7d\x7f\x46\xe2\x39\xa4\xa1\x2f\x1f\xce\x60\x22\xdf\x8b\x68\xbe\x92\x0f\x02\x30\xb2\x6b\xde\x9e\x3f\x42\xbc\xde\x1f\xe1\xe3\xc3\xe9\xbb\xe3\xc9\x9b\xb3\x7a\x7f\x84\x79\x1c\x70\xda\x0a\x50\xea\x1b\x6e\x09\x95\x20\xe0\x52\x26\x96\x4a\x22\xc4\x42\x98\xb1\x2e\xd2\xbb\xb1\x88\xea\x8f\x25\x01\xab\x63\x66\x82\x27\xb2\x48\x80\x4c\x5a\xa4\x2b\x95\x13\x5f\xfa\x3a\xcc\x20\x9e\x4a\xbf\x07\xe5\xa3\x57\x08\x65\xb7\x8e\xee\xaf\xf4\xd4\xb3\xa3\xfb\x2b\x31\x75\xf6\x57\xe0\x67\x47\x9a\x88\xaa\xb1\xc7\x47\xf7\x57\xf2\x2f\xd6\x58\xe1\x26\x2b\xf0\x51\x5c\x2c\xec\x6f\xd6\xcd\x96\xf9\x25\x73\x3c\x6a\xec\xe6\xe6\x33\x91\x13\xc5\xcc\xb0\xf6\x58\xa5\xb6\x1e\x57\xb3\x8d\xff\x60\xf0\x7e\x09\xf7\x9a\x26\x45\x39\xf9\x11\x38\x2e\x5c\x06\x45\x86\xd2\xb1\x72\xec\xb2\xc6\xdd\x42\xa4\x55\xd4\x2c\x28\x66\x45\x51\x31\xaa\x75\x33\x26\x28\x20\xf0\xb2\x7a\x31\xad\x1d\xcd\xf4\xca\x6b\x3f\x48\xc1\xc6\x56\x25\xc2\x47\xec\xde\xdc\xfd\x8a\xf0\x50\x76\x3e\x05\x23\xb1\x7b\xd2\x6d\xfc\xd6\x06\x52\x84\x17\x32\x63\x9a\x40\xf2\x25\x0a\x31\xea\x7f\x41\x4b\x9d\x6c\x46\x9c\x5d\x27\x35\x47\xf6\xc0\x38\xa6\xd5\x86\x8e\x13\x54\x49\x3c\x59\x27\x10\xfe\x37\x5a\xde\xe8\xd4\xab\xae\x7a\x39\xbd\x50\x0e\xcd\x25\x81\x49\x52\x93\xf1\xac\xb6\x9b\x4a\x3f\xd9\x32\xa9\x5a\xfe\x15\x1a\xce\x0b\xc5\x83\x3e\x86\x73\x94\x52\x38\x4f\x2a\xf2\x6d\x05\x62\x50\x5a\xd4\x41\xb7\xec\x1b\xd6\x9a\xdc\x0c\x0b\x23\x39\x43\x95\xb7\x1a\xcc\x49\x66\x55\x7c\xc8\xb6\x64\xa7\xb4\x04\x0a\x2d\xaa\x50\x5e\x11\x2d\xd6\xb8\xbe\x50\xbc\xf1\x53\x3e\x79\x02\x04\x11\xf5\x83\x10\x46\xf1\x34\xd7\x32\x15\xc8\xd2\x92\x6a\x23\x26\x76\x99\x5c\xd5\x60\x7b\xe2\x30\x61\xf4\x2a\xe1\x65\xc4\x66\xb5\x51\x10\x55\x92\x12\xf0\x4c\xba\x2a\xfd\x80\x52\xf1\x72\x95\x15\xcf\x3e\xa0\xd8\x95\x62\x04\x72\x13\x48\xf9\xb0\x12\xe1\xaf\x87\x15\x72\x53\x1a\xc5\x34\x5f\x1c\x28\xa8\x47\xab\xa1\xba\x5c\x05\xeb\x15\x4e\x05\xe8\x6b\xb2\x8f\x6e\xbc\x5c\xb5\x98\xad\x50\xae\x6c\x33\xd7\x86\x5d\xc4\x38\x8f\x1f\x73\x45\x40\x83\x52\xa8\x56\x69\xf4\x71\x16\xa6\xbd\x2f\x68\xd9\x0b\x78\xc8\xc1\x39\x4a\x79\x96\x57\xb9\x13\x7a\x7e\x4c\x08\x4a\x93\x98\x07\x0d\xf5\x68\xcc\x5f\x4e\x09\x4c\x66\x3d\xb9\xdf\x7b\x82\x89\xf6\x42\xdc\x9b\xc7\x04\xf5\x84\x57\xad\xdb\xa8\x1d\x2a\x14\x77\xae\xf3\xa6\x18\x14\x8a\xf2\x9c\x36\xb3\xeb\xce\xa9\x58\x0a\x13\xc8\xb1\x34\xd0\x55\xe6\xeb\x6f\xd3\xbd\xba\x1a\xcb\x6d\x93\xf4\xb0\x81\x2b\xce\x0a\x8d\x7c\x4c\x5e\x49\x6f\x70\x3a\x15\x27\x5c\xac\x00\x8e\xe3\x3e\x93\xbe\x4c\xcc\xbf\x8d\xf5\x52\x47\x31\x0c\x50\x50\x5e\xb8\x36\x99\x55\xee\x68\x8b\x68\x35\xe0\x36\xbb\x24\xbf\x42\xca\xd3\x69\x99\xa0\x7e\xae\xdb\x19\x3c\x62\x37\xb3\xd2\xb1\xfc\x43\x29\xe7\x08\x3f\xb8\xe3\x14\x15\xab\x78\x95\x6e\xa8\x35\x1b\xad\xa8\xab\xe9\x8e\x9f\x1a\x6f\x89\xcd\xe5\xb0\x55\xb4\x8b\x71\xff\x14\x62\x2b\xe4\xf9\x42\xcd\xeb\xe5\x82\x84\x66\xd1\x92\xf9\x82\x9a\x99\x49\x2e\x43\x1c\x88\xfc\x08\x85\xfb\xe7\x3c\xa1\xe5\xdc\x26\x22\xf1\xc9\x02\x47\x3c\xb2\xe2\x06\x57\x50\xf3\xce\xa7\x6f\xa0\xfa\xc6\xe9\x8a\x3b\xa8\x8d\xd5\x03\xe1\xda\xbe\x58\xeb\xda\x1e\xcb\xab\xa9\x7e\xa3\x46\x59\x31\x84\xf0\xf0\x2f\x80\x44\xcc\xfd\x00\x48\x4a\x1b\xae\x84\x40\x6a\x06\xa4\xe9\x48\xc7\x3f\x33\xa6\x97\xda\x4e\x06\x84\xb0\x3e\x34\xe3\x9d\x78\xab\x14\x51\x5b\xa2\x1b\xb9\xec\x5f\x57\xc0\xa5\x02\x2c\x8d\x41\xc4\x13\x82\x08\xc2\x01\x22\xb6\x93\x65\x20\x7f\x6d\x7e\x3e\x9c\xd8\x22\x80\x9d\x8d\xe7\xc8\x7c\x12\xfc\x36\x29\xc0\x4b\x65\x8c\xb6\x5e\xa0\x7b\xc7\x22\xf9\x8b\x2c\x6a\x92\x5e\x4c\x3d\xfb\x18\xb0\x86\xec\x66\xec\x88\xf0\x59\x24\x82\x78\xcb\x51\xa9\xe9\xc5\xd4\xcd\xe5\x0f\xee\xfd\x1f\x63\xdb\x9a\xc7\x8b\x14\x71\x17\x71\xfe\xd7\x3c\xbe\x40\xe2\xaf\x98\x11\x0e\xe6\xf5\x00\x90\xfc\x00\x0f\x55\x15\xc5\x50\x5c\xc2\x9b\xda\xa5\x97\x04\xf9\xd4\x78\xc9\x27\x4b\x3d\xe4\xe2\x38\x40\xf6\xba\x28\x64\x15\xd9\x1b\x7b\x2a\x13\x06\x58\x78\x1a\x37\xd7\xd7\xab\x0c\xf8\xde\x42\xfe\x18\x8d\x41\xe0\x2d\x5c\xc1\x42\xf9\xbb\xb9\xb7\x70\x17\x38\xa4\x67\x8b\xc9\x24\xbc\xba\xbe\xb6\x2c\x90\x78\x66\x21\x89\xc0\x71\x27\x61\x44\x11\xb1\x91\xf7\xd4\xe2\x35\x59\xac\x7b\x1e\x72\x0e\xc2\x89\x7d\xec\x79\xbe\x0c\xc8\xbf\xbe\x3e\xf6\xbc\x44\xfe\x68\xbb\x22\x4d\xaf\x06\x02\xfe\x09\x5b\xa3\xd4\x4d\x29\xf4\xbf\x38\xb6\x23\xe6\x93\x38\x6e\x4c\x18\x75\xc8\x17\xef\xd8\x8f\x0f\xa2\xa4\x84\x63\xfb\x0e\x38\xf7\x7c\x9d\x58\x44\x60\xf1\x58\x65\x1c\x49\x74\x4d\x0c\xec\x3d\x5d\xd1\x07\x1e\x1a\xe1\x31\xcf\x08\xe0\x80\x19\xfb\x18\x74\xb9\x42\x84\x89\xda\xec\x83\x41\x3c\x87\x21\xb6\xed\x63\x10\x8a\x7d\x42\x1d\xdb\x07\xc8\x7b\x8a\x5c\x26\x9d\x3b\x8e\x4b\x18\xcd\xdb\xa3\x63\x80\xc7\x0e\xb8\x30\x86\x78\x13\x62\x04\x89\x31\xc8\xe8\x18\xf0\x71\xe6\xf0\xca\xb1\xcf\x9d\xb1\xee\x1b\x83\xe3\xb1\x03\x96\x02\x56\x48\x10\x64\x9d\xae\xd8\xf4\x67\xb6\xdc\x30\xf2\x63\xcb\x01\x7b\x7a\x61\xa3\xd1\xf1\x98\xfd\x3c\x56\x3f\x07\x63\xc7\x01\x53\x6f\x64\xfd\xe9\xe5\x8b\x57\xc7\xaf\x1e\x5b\xc0\xfa\xd3\x8b\x1f\x4e\x1f\x3e\x7c\x64\x8d\x5d\xa1\x90\xb3\x23\x37\xf5\x67\x68\x8e\x3e\xc2\xf3\x08\xc1\xc5\xe0\xd8\x39\x48\xdc\x10\xfb\xd1\x22\x40\xa9\x6d\xbd\x5b\xd0\x73\x46\x60\x96\x73\x78\x68\x97\x86\x3a\x7e\xf5\xf0\xf8\xf9\xe9\xba\xa1\xc4\x7a\xbd\x33\xe0\x7f\x47\x82\x10\xc3\xc8\xb1\xa7\x1a\x03\x09\xdb\x39\xd5\xfd\xc0\x20\xb4\x27\x8e\xfb\x8f\x38\xc4\xfa\x21\xa4\x94\xd8\xd6\x24\x8c\x22\x0b\xd8\xab\x2f\x68\x39\x44\x99\xe3\x3d\x7d\x67\x33\x3c\x88\x97\x29\x25\xf1\x17\xd4\xf8\x3a\xb0\xc0\x52\x4c\xeb\x93\x87\x5c\x76\x61\xc3\x81\xde\x66\xa2\x09\x57\xe6\x59\xc0\xf2\x17\x24\x8d\x89\xe5\xb8\x3c\xaa\xc5\xb6\x2e\xc2\x34\x14\x19\x4d\x85\x61\x22\x40\x58\xf7\x11\x45\xb7\xc1\x40\xfd\x96\xf5\xb6\x41\xac\x1e\x5c\x59\xe0\x58\xfd\xbd\x64\x7f\x83\xf7\xed\x59\x8d\xab\x6e\x8b\x8e\x73\x30\x89\x89\xcd\x18\xfa\x65\x2f\x9e\xd8\xef\x4d\xc4\xb9\xc6\x25\x91\xf6\x23\x34\x45\x6c\xdd\x72\xc6\xb2\xa6\x71\xba\x98\x9b\x2d\x13\xc7\x59\x09\xb6\xf8\x5e\xa3\x88\x09\xd2\x65\x0c\xd5\x7e\xf0\x00\x75\xed\xd3\xf7\xe3\xc8\x44\xf4\x39\xf4\xbf\x4c\x79\x19\x26\xf9\x06\xbc\xb3\x2f\x1d\xc6\x19\xd5\xc0\x5c\x52\x73\x5c\x8a\xae\xa8\x7d\xe9\x94\x1f\x6f\xfe\xa0\xb8\x52\x39\x19\x03\xf2\x95\xb7\x11\x8b\xaa\xfd\x81\xe2\x64\x4f\x07\x87\x87\x1d\x50\x23\xd0\x5b\x37\x79\xc9\x39\xbb\x80\x90\x2e\xe6\x7a\x3e\x6c\xfe\x5f\x38\x5b\x2f\x9f\x3e\x56\x31\xc4\xf8\x7d\x2d\x11\xf3\x1f\x11\xb2\x1c\xf0\x69\xc3\xfb\x2f\xae\x08\x32\xfd\x28\x08\xd1\x46\xc0\xe7\x45\x93\xe6\x60\x06\xde\x83\x57\xe0\x93\x93\x39\x4e\x3e\x03\x46\x47\xa5\x19\x74\x1c\x81\x9f\x96\xb6\x71\xb6\xd7\x43\xa0\xb6\x61\x03\x00\xea\x75\xe6\x38\x19\xb8\x0c\xa3\xe8\x25\x62\xfc\x61\x29\xf3\x72\x54\x44\x97\x4f\x3a\x65\x1a\x24\x53\xee\x55\x9a\xaa\xda\x3f\xf7\x3c\x2d\x23\x1c\x1e\xaa\xbf\xda\x9e\xf8\x19\x28\x00\x6f\x48\x43\x00\x4b\x95\x79\x0c\x16\x20\x00\x73\xbe\xf1\x46\xc9\x58\x30\x07\x9e\xc8\x12\x11\xc7\x46\xce\xc1\x3c\xe7\x24\x89\x3a\x08\x63\x37\xc4\x17\x88\x50\x5b\x3e\x39\x67\xdd\xf8\x79\x72\x1e\xa6\x9c\x79\x38\xc5\x3a\x4f\x3a\xc7\x16\x3b\x3b\x18\xc2\x23\x34\xa1\x8e\x8d\xc1\x44\x88\x89\xb3\x83\x85\x42\x24\x7b\x63\x81\xa4\x7f\x72\xf2\xc0\x4a\xae\xd8\xee\xe4\x9b\xa4\xb8\x43\xc2\x39\x52\xa4\x6c\xcf\xbc\x09\xfb\xb6\x96\x44\x1d\x7b\xe6\xb8\xca\xe2\x60\x73\x19\x72\x95\xc2\x39\x7a\x09\x97\x43\x6b\xf4\x31\x0e\xe0\xb2\x07\xe9\xb8\x37\x1b\xce\xe7\xc3\x34\xed\x3d\xb7\x40\x04\x53\x2a\x5e\xff\x1f\x4a\x29\x22\x0d\x4d\xfe\x86\xd0\x97\xa1\x35\x7a\x03\x53\x3a\xee\x05\x41\x10\xf4\x20\x35\xdb\xb0\xaf\xbc\x8a\x52\x34\xb4\x7e\xfd\xf5\xd7\xde\xcb\x97\xc5\xd7\x99\xe3\x38\x60\x51\x0b\x4e\x61\x77\x09\xb0\x3e\xdf\x5f\xf9\x76\x34\x3a\x1f\x3b\xd9\xfd\x55\x9a\x7d\x76\x40\xc0\xa5\xaf\xd4\x36\x4a\x69\x21\x40\x1d\x29\x57\x60\x0f\x8e\xe8\x78\x74\x3e\x1e\x0d\xc6\x7d\xf5\xe7\xf1\xf8\x3f\x0b\xcc\x1e\x99\x83\x63\x35\x72\xe6\x80\xc2\x22\x67\x19\xe3\xf7\xaa\xc6\x97\x6f\xae\xdf\xff\x1b\xa0\xd3\x67\x6f\x17\x22\x5d\x61\xfa\x1a\x53\x34\x65\xa2\x98\xf3\xcc\xb2\x1e\xa0\xa1\x78\x61\xa3\xa7\xde\xe0\xf8\xf8\x19\x72\x69\xfc\x9e\x20\x3f\x4c\x19\x11\x9c\x3a\x43\xf4\xff\x06\xfc\xe1\x2f\xe1\x15\x0a\xec\x13\x67\x58\x6c\x71\xe2\x38\x43\xd6\x15\x9d\x1e\x1e\xb2\x0f\x3d\x7e\xf6\xc0\x46\x47\x03\x74\xea\x94\x06\x7a\x60\x7d\xb1\x44\xcb\xc7\xa2\xe5\x8f\xb2\xe5\xe3\x6a\xcb\xb9\x6c\xf9\xa3\x68\x39\x38\x91\x4d\x7f\xac\x36\x9d\xca\xa6\xba\xcd\xe0\xc4\xd1\xb3\x3d\x76\x1e\x58\xd4\x52\x25\xd0\x72\x9b\xd1\x62\x0b\xdb\x19\x37\xab\xf4\xd9\x5d\x77\x57\x52\x34\x4c\x4f\x8e\x5f\xfd\xef\x97\xdf\xfe\xab\xde\x9a\xf5\x93\xaa\x5e\x51\x17\xbb\xaa\x94\x17\xa5\x9a\x5a\x2a\x6e\xd5\x00\xb6\xa8\x6d\x2f\x6a\xd9\x8d\x50\xf2\x16\x8e\x2d\xc6\xa0\xae\xd2\x47\x82\x5c\x5a\x69\x63\x38\x2f\xd9\x3e\x6e\x71\x12\xe8\x8a\xae\x35\xb8\x9c\xb6\x0c\x3f\xe7\xff\x57\x10\xdd\xe4\xda\x5e\x26\xb7\xdd\x09\x3d\xe7\xd9\x95\x6f\xa9\xae\x62\xce\xb0\xe2\x7d\xaa\xa0\xb8\xf8\x5e\x41\xf1\x5f\xa3\x82\xa2\xbf\x9e\x03\x5f\xfc\x76\xf5\xb7\xdf\x3e\xc4\x0d\x1c\x98\x6d\x94\x6e\xfe\x03\x66\x36\xf2\x66\x5f\x02\x9d\xa2\xa0\x29\xc9\xce\xa0\xe4\x50\x55\x48\x9e\xff\x35\xdd\x0a\x7e\x68\xef\x56\x70\x7f\xa5\x80\xcf\x36\xba\x13\x0c\xda\xb8\x13\x18\xb8\x6c\xf6\x2c\x68\x70\x29\x28\x57\xf5\x7e\x6c\x78\xd0\x1a\xae\x63\x65\x9f\x82\x27\x86\xd9\x8d\x73\xc9\xdf\x0a\xb9\x76\xea\xda\x95\xed\xee\x77\xe2\x7b\x60\x24\xab\x10\x9e\xc1\x4d\xc7\x3e\xcf\x9b\xdf\x68\x3c\x1a\xac\xb3\x04\x6f\x4a\xdd\x50\x75\xa5\x33\xff\x7e\xc4\x6d\x44\x55\x01\xa0\x53\x14\xa0\x86\x35\x2a\x0b\x2d\x2a\x29\x4d\xea\x97\x9d\x10\x8b\x32\x8d\xfa\x24\x4f\x38\xca\xf6\xbc\xa5\xbc\xe3\xa4\xa5\xb6\xb1\xf2\x64\xb0\xd6\x32\xa8\x6d\x1e\x72\x41\x5b\x14\x62\xac\xb5\x8c\xad\x1b\x5a\x5a\x98\x6f\xa3\xc6\xe3\xa0\x4d\x25\xa0\x72\xd1\xcc\xb7\x71\x4f\x19\x77\x9f\x5f\xc0\x30\x62\x87\xce\xb6\x6e\x14\xeb\x7c\x1f\x6f\xc1\xa9\xe0\xa4\xb3\x53\xc1\x26\xf9\x4f\x59\x88\xa4\x15\x48\x97\x0b\xb5\x64\x29\x8a\x86\xc4\xf6\xbc\xcf\x1a\x93\x91\xb2\x2c\xbd\xe1\xf6\xc3\x9b\x09\x94\xb9\xd4\xd6\xba\x1c\x7d\x35\x79\xfd\x2d\x55\xa0\x97\x58\x29\x57\x9e\xcf\x21\xd5\xf5\xe7\x0d\x36\xca\xe4\xa6\x70\x62\xd7\x16\x17\x33\x53\xc7\x2a\xc6\xef\x08\xbd\x0b\x1b\xc0\x53\x46\x23\xf6\xe3\x80\xb1\x11\xa9\xd5\xcf\x7b\x89\x83\xe4\xfa\xda\xb2\x0e\x98\xdc\x41\x75\x8e\x60\x9b\x7a\x9a\x05\x09\x94\x61\xef\xf3\x7d\x33\xe9\x2d\x45\xf3\xcc\xbd\xbf\xa2\xfc\x3f\x46\x7a\xe6\xec\xf3\x41\xc3\x14\x46\x78\x9c\x19\xaf\xec\xfc\xef\xeb\xeb\xd1\xd8\x91\x32\xda\x31\x78\x28\xad\x59\x1a\x31\xde\xbd\xe3\xba\x02\xf3\xaa\xe0\xc9\xf6\xe9\x40\x2b\x79\x22\x7b\x6c\x63\x64\x75\xb5\xe6\x8d\x55\xba\x41\x6a\xd0\xca\x07\xef\x0d\xb2\x6a\x05\x7a\xf3\x14\xed\x5e\x7c\xde\xec\xfd\xb5\xeb\xce\x0b\x96\xb4\x2b\xaa\x02\xfc\xf7\xf7\x6f\x1e\xff\xf7\xcf\xa7\x0d\xaa\x02\x9d\xce\xb1\x5a\xef\x66\x63\x2a\xc0\x87\x26\x53\xad\x14\x43\xea\x70\x80\xd7\x3b\x56\xd4\x0a\x29\x8b\xb4\xaf\x19\x7a\xbd\xac\x62\x4c\x30\xaf\x1e\xb5\xa1\xfe\xd0\x36\xe5\xfc\x40\x67\x05\x04\x9f\xbe\xdb\x38\x91\xee\xc9\x15\x9a\x60\xcd\x73\x6d\x7f\x33\x28\xd5\x22\xd5\xc5\x2f\x29\x69\x4d\x2d\x77\x55\xc9\xd4\xf1\x63\x0d\xf0\xd6\xfa\xfa\x75\x44\x6e\x4e\xd6\x9d\x4a\x8f\xdd\x3e\xda\x6e\x21\x61\x65\xdb\x12\x4a\xf5\x32\x58\xb7\x4d\xca\xfd\x9e\x48\xc1\xb1\x6b\x2b\x84\xb0\x71\x42\x3c\x35\x50\xd2\x4a\xaa\x6c\x96\xd7\xb4\x70\x95\x4b\x6a\x3c\xfe\x83\xa1\xfd\x86\x42\xd6\x62\xe7\x72\x45\xaa\xa2\x55\xdf\x75\x76\xdf\x75\x76\xdf\x75\x76\xff\xf5\xc7\xcf\x3f\xfe\xe3\x2f\xef\xff\x5a\x2f\x0a\xc9\x74\xa1\xdc\x4b\xab\xa8\x9b\x33\xb3\x85\x6e\x2c\xf1\xd6\x20\x37\x1d\xd7\xe5\x41\xfa\x81\x5d\xde\x6f\x5a\x96\x74\x90\xfb\xba\x3f\x06\x16\x9b\xdf\xcf\xf1\x55\x35\x2a\xe2\xb1\x4e\x14\xda\xcb\x0b\x06\x2e\xcb\x0f\x84\x7f\x4a\xe9\xe1\x4c\x55\xf4\x34\xce\xa5\x87\xc0\x4a\x08\x62\x48\x42\xcf\xd3\x04\xf9\xf4\x03\xa4\x61\xcc\xaf\xaf\xd8\xb0\x1c\x69\x1d\xe4\x31\x18\x59\x53\x44\x5f\xfb\x31\x7e\x2f\x73\xab\x16\xaa\x7f\xca\xe6\x83\xf5\xcd\x81\x99\x12\x66\x4d\x48\x04\x9a\xd4\x95\xf6\xcb\x1b\xcc\x21\xf9\x22\x4f\xa7\x47\xa0\x6c\x56\x92\x5f\x5f\x84\xa2\x70\x65\x9f\xab\x84\xfa\x41\x6c\xa6\x50\x13\x87\x9f\xf9\x86\xe7\x5d\xd1\xd8\xb7\xfa\x27\xbd\xfe\x49\x6f\xf0\xa8\x37\x78\xa4\x5e\x12\x34\xf9\x5f\x0b\x58\x8f\x8d\xdf\xff\x67\xfe\x16\x93\xfa\x9b\xf0\x10\x2a\x3f\x56\x09\xf4\xe5\xf3\x66\x3f\x74\x3f\x24\xbe\x54\xbf\x3c\x04\x96\x7f\x65\x0e\xe5\x2f\x0b\xdf\x2f\x8c\x56\xaf\x84\x6a\xd2\x4c\x6d\x81\x40\x48\x48\x7c\xd9\x80\x42\xf5\xae\x8c\xc4\x41\xaf\x3f\xe8\x0d\x4e\x7a\x83\x93\x12\x12\x1f\x95\x90\xf8\x68\x1b\x24\x3e\x64\xa7\x7e\x88\xb8\xa2\x18\x2e\x68\x2c\x62\x89\xfb\x92\xd5\x6e\xf2\xf7\x8f\xa3\xe5\x54\xfb\x42\x5b\x5c\xef\xc0\xd8\xc0\x71\xef\xb8\x37\x38\xee\x3d\xe2\xff\x7c\x0d\xec\x06\x08\x2f\x6b\xa9\xd3\x78\xf1\x9d\x38\xd7\xa3\xaf\x9e\x36\x0b\xaf\xfe\xa5\x49\xb3\x39\xb4\xa2\x50\x7a\xfb\xa4\xfa\xc3\x60\xd7\xdd\xa3\x0a\x8f\x6b\x62\x64\x4f\xc0\xc8\x32\x2a\xef\x8d\x6f\x9e\x01\x5a\xa3\x0d\xb2\xa3\xaf\x05\xd1\xa8\x69\xf0\x5f\x06\xd1\x3c\x02\x56\x60\x55\x4c\x3d\x27\xc2\xfe\x40\x95\xfd\x21\x25\xbe\x65\xbc\xe2\x3f\x95\x8d\xe1\x91\x22\x07\x99\xd6\xa0\x30\x0d\x6b\x41\x22\xfb\x4f\x79\x15\xed\x2a\x0b\x30\x13\xee\x1b\x63\x21\x1c\x74\x1a\x89\x93\x7c\x79\xac\x72\xc9\x43\x50\xbb\x18\xdb\x5e\xb9\xd5\xed\x79\xff\xd7\x42\xcb\x04\x37\x5f\x0c\xe3\x6c\xbc\xd3\xd5\xa8\xd1\x18\x6c\x55\x75\xb9\x35\x4b\x78\x72\x3b\x2c\xa1\x5a\x9d\x5d\xd8\xc3\x4a\xb5\xb3\x2b\x46\xd8\xba\xdc\x1e\x83\x52\xc2\x9f\xe7\x0c\xf7\x28\x30\x45\xd4\x9a\x56\x7f\x81\xe9\x7b\x8d\xf0\x9b\x97\xeb\xaf\x33\x70\xa9\x14\x2a\xe5\xb2\xd3\xba\x42\x81\x51\xe9\xc0\xc8\xa3\x51\xa8\x33\x5d\x57\xcc\x63\x2d\x18\xc0\x8a\x7e\xb0\x4a\x45\x02\x0a\x29\x95\xc2\xa0\x3e\xee\xda\xdc\x96\x83\x72\x79\x74\xf3\x61\x09\xb1\xac\x6f\xd8\x74\x37\x10\xae\x5a\x42\x93\x53\x56\x77\x1e\x1b\x16\x7b\x5d\xff\xbe\xb1\xac\x75\xa7\xfa\x23\x6b\xd5\x48\x5c\x85\xa4\x7d\xbf\x26\x21\x0e\x44\x95\x6a\x6d\xcc\x93\x91\x5f\x35\x85\xb0\xd3\x8b\x69\xdf\x5f\x90\x0b\xa4\x54\x4f\x9d\x8b\x62\xdf\x2c\x35\x49\x51\x29\xd4\xda\x24\x58\xae\x76\x1d\xc4\x73\xa3\x7e\xe8\x6d\xd9\x07\x8b\x44\x50\xb1\x13\xb2\x8f\x6a\x0b\xe1\x14\xd1\x1e\x23\xb8\xdc\x72\x25\x6b\xee\xcd\x5d\xfe\x58\xb7\x2a\x5c\x23\x8d\xa2\xac\xb9\xc9\x4e\xb0\x0b\x60\x9a\x05\x99\xac\x07\x70\xfb\x02\x82\x1c\xa7\x3d\x11\x80\x22\xab\x05\x16\x80\xf1\x30\x8f\x2b\xc2\xba\x60\x31\xf1\x12\x48\x52\xf4\x4b\x14\x43\x6a\xf3\x92\x8a\xdc\xc9\xff\x0d\x57\x08\xd8\x0e\xc3\x2d\x7f\xfa\x9e\xc9\x6f\xcf\xa9\x7c\xfe\x2b\xa4\x33\xd7\x47\x61\x64\xbb\x8f\x1f\x3f\xfe\x0f\xe2\x38\x46\xdd\x62\xec\x86\x01\xb8\x1a\xf2\x36\x3c\x30\xc2\x86\xee\x55\x1f\xb9\x57\x0e\x58\x16\x9f\x2e\xfb\xd4\x5d\x3a\x59\xe6\xd4\x19\x15\x4b\x8b\x70\xf3\x5a\x83\x15\x4b\x22\x5f\xc7\x9b\x97\x17\x2c\x8d\x5a\xd1\x18\x74\x37\x1c\x56\x86\xb8\x73\xeb\x21\x09\xc3\x7e\x38\x61\xdc\xa7\xcf\xd3\x5d\xcd\xe2\x88\xa7\x96\x34\x75\xb5\xbc\x55\xab\x6e\x77\x50\xef\x47\x68\xb1\xf5\x46\xee\xa4\x91\x5e\x86\x28\x0a\x54\x24\xb2\x01\x50\x1e\xa1\x9c\x36\x34\xbf\x39\x20\x8d\x1d\xf4\xcd\x60\x55\x24\xb6\x29\xa2\x35\xd6\x70\x0d\x38\xdb\x2c\x0d\xf0\xaa\x64\x60\xe9\x11\x4c\x92\x28\x54\xe9\xa7\x4c\x88\xf3\xe6\x0b\x1a\x46\xe9\x11\x89\x17\x34\xc4\xd3\x23\x4a\x20\x16\xb4\x26\xdd\x66\xd6\xab\xe0\x41\x0c\x16\x05\x5f\xff\xfd\x51\xc3\x07\xdf\xd5\xf0\xff\xec\x6a\x78\x26\x43\xcc\x73\x19\xa2\x2c\x32\x30\x9a\xe7\x75\x79\x9b\x64\x8a\x94\xc6\x04\x19\x52\x45\xf9\xfd\x04\xa1\xe0\x1c\xfa\x5f\x78\x69\xdf\xa2\xe0\x91\x96\x04\x0f\x15\xa8\xae\xb6\xe6\x06\xf9\xc3\x97\x02\x86\x9c\xa2\x92\x31\xf4\x73\x31\x33\x10\x97\x1e\xeb\x09\x81\x85\x14\x4a\x08\x82\x0b\x3a\x8b\x49\xf8\x07\xd2\x31\xec\xaa\x95\x8b\xae\x90\xbf\xa0\xc8\xb6\x1d\xef\xa9\x0c\x6f\x67\xe3\xba\x21\xbe\x80\x51\xc8\x5d\x9d\x1c\x5d\x5f\x6d\x95\x1d\x84\x13\x19\xc3\xab\x64\x16\x2a\x9d\x89\xd8\x9b\x62\xbc\x99\xf0\x62\xaa\x2d\x38\x0f\x0c\x31\xdc\xb9\xbe\x36\x9a\xbb\xec\xc5\x01\x2a\x8e\xc1\x1f\x1e\x1e\xda\x58\xfe\xf6\x2c\xeb\x01\x72\xb2\x4c\x49\x2d\x7a\xe4\x77\x97\x18\x11\x21\x65\x01\x28\x46\x10\xe8\x73\xfd\x05\x21\x08\xd3\x0f\xec\x97\x8b\xe1\x1c\x81\xc8\x23\x6e\x14\xc7\x5f\x16\x89\x24\x83\xa1\xf5\x00\x2a\xd1\xa5\x57\x7e\x67\x72\x51\xb6\xd5\x26\x04\xa5\x33\xdb\x61\x07\xf1\x3c\x4c\x91\xeb\x43\x5a\x60\x0e\xce\x2a\x73\x1c\x97\xce\x10\xb6\x91\xf7\x14\x2a\x78\x6a\x66\xc3\x60\xbb\xbe\xd6\xa8\x53\x30\x3e\x8b\xdc\x9c\x11\x7f\x8c\x19\x51\x14\x43\xd4\x9a\xc6\xe3\xcc\xd7\x19\x22\x27\x03\xc8\xe5\x22\x44\x6d\x1c\x5d\xe6\x80\x15\x97\xb5\x42\x2f\xb0\x53\x53\xe0\x50\x04\x77\x73\x21\x2b\x2e\x0f\x2d\x69\xf6\x16\xc4\xac\xf2\xc8\x39\xd9\xdf\xbc\x8a\x73\x19\x1f\xf9\xfe\x11\x55\x9c\x37\x89\x6f\x8d\xbd\x1d\x90\x9a\x92\x5b\x6a\x4a\x6e\xf3\xcd\x27\x79\xe0\x1f\x41\x3f\x62\x17\xf0\x28\xf4\x43\x94\x1e\x29\x23\x60\xfd\xa9\xbe\xb6\x2b\xcf\x32\x7c\x17\xa5\x18\x39\xcb\xc3\xeb\xf3\x49\x36\x4a\x69\x9b\x26\xdc\xec\xbb\xc6\x4e\x6f\x7e\x94\x1f\xdc\xce\x99\x01\x3d\x9b\x36\xb1\xfc\x98\xb0\x7b\x26\xee\xce\xde\xd5\x24\x21\x88\x0e\x4c\x56\x2f\x2e\x79\x00\x7b\xd6\xf9\x22\x14\xb2\x76\x24\x1e\xd9\xd0\x63\x02\x40\x3d\x4c\x6c\x28\x53\x8e\x82\x8d\x72\x14\x6c\x90\xa3\x60\x59\x8e\x82\x85\x13\x1f\x56\x4f\xfc\xc8\x90\xa3\xd8\x4b\x5b\x1e\x5a\xbc\x65\x29\xfc\x58\x9c\x34\x31\x99\x0b\xde\x27\x61\xe3\x4f\x6c\x8b\x2f\xec\xd2\x72\xb2\x14\x51\x09\x51\x88\x52\x5b\x1d\x82\x6e\xf1\xb1\x29\x8c\xa1\x5c\xd4\x91\xd1\xab\xe9\x65\xc8\xb8\x2f\x75\x56\x3e\x4c\x91\xb0\x9b\x0f\xd1\x88\x8e\x3d\x3d\x05\x36\xde\x4b\x48\xa1\xcd\x1e\xf3\xf4\x23\xfc\x17\x3b\x1d\x25\x3f\x04\xc8\x61\xec\x90\xc9\x56\xf9\xf6\x4d\x8d\x25\x09\xbd\x11\x1d\x83\xd8\xbb\x09\x73\x01\xbe\xb7\xca\x80\x09\x4d\xdc\x20\x5a\xfa\x4c\xb4\x8c\xa5\x68\xe9\x17\x45\x4b\xbf\xb0\xd0\x65\xd1\xd2\x6f\x14\x2d\xfd\xeb\x6b\xbf\x2c\x5a\xfa\x45\xd1\xd2\xf7\xc2\x36\xa2\x25\xe7\x16\xea\x3a\x62\xb3\x7b\x00\x72\xae\xaf\xd9\xa1\xe2\x3b\x60\x61\x88\x96\x7e\x49\xf0\xf3\xa5\x68\x59\x78\xfe\xcc\xaf\x12\xda\x42\x8b\x96\xfe\x7a\xd1\xb2\xfc\x85\xfa\xbd\xc2\xa6\xe8\x33\xf0\x84\x68\x49\x3c\x1f\x60\xe1\x0e\xa5\x2f\x31\xc0\x37\xd8\x31\x6c\xcf\xa2\x48\x1c\x6d\xc5\x8b\x45\xbf\x7d\x61\xc4\xc6\x6c\xbf\x73\xe1\x7f\x1a\x2e\xcc\x56\xf5\x3b\x0f\xfe\xce\x83\xf7\x9d\x07\xd3\xf8\x0b\xc2\xdb\x30\x61\xd9\xf1\x9b\x73\xe1\x83\x4e\x70\x6e\x60\xc3\xb7\xa3\x61\x55\x9c\x37\x67\xa6\x79\x6e\xbd\x78\x3e\x5c\x67\x83\x91\xfb\xb5\xa1\x8d\x64\xdd\x61\x7a\xe6\xc7\x09\x0a\x86\xf7\x06\x7c\x93\xb6\xcb\x69\xb3\x96\x9d\x71\xf4\x58\x4e\x06\x0a\x9c\xab\x9a\xc2\x4f\x8e\xfc\xb5\x38\x5a\x9e\x78\xb0\x92\x53\x90\x91\x99\x52\xaf\x68\x5b\x11\x8e\xc9\x9c\xef\xa5\x57\x17\x08\x53\xde\x08\x90\xfc\xab\x07\x94\x2c\x57\xc4\x9d\x41\x1c\x44\xb2\x09\x76\x32\xa1\x81\x80\x0c\x42\x12\x5f\xf6\xb0\x2b\xf2\xf1\x0a\x65\x07\xcc\xb2\x2c\x33\xaf\x9b\xb4\x7e\x6f\x71\x2b\x3e\x0c\x60\x42\xcb\x0a\xff\x9f\x10\x5b\x4b\x9e\x58\xf4\x28\x40\xe7\x8b\xe9\x3e\xe9\xc3\x03\xe4\xc7\x04\xd2\x98\xed\xa4\x42\x00\xb9\x01\xe0\x25\x5c\x4e\x20\xb9\x25\x83\xc5\x9c\x2d\x86\xd7\xe0\x14\x8c\xbd\xa2\x26\xc7\x5c\x17\xe4\x3d\xb5\x29\x57\x48\x7b\x4f\x6d\xec\xf2\x29\x98\xd3\xc1\x8e\xb6\xd5\x61\xad\xa2\x92\x3b\x6b\xc8\x38\x06\x0c\x31\x22\x96\x23\xf4\x6c\x5a\x9d\x45\xbd\xa7\x50\x70\x7d\x17\x26\x49\xb4\xb4\x09\x18\x21\x40\xc7\x1c\x5f\x90\x4d\x40\xce\xd8\x7b\x8a\xc5\x9f\x36\xda\x8c\x4b\x82\xb8\xa1\xe7\x6e\x38\x11\x72\xd9\x31\xf1\x57\x7e\x52\x21\x57\x7e\xaa\x1c\x68\x26\xf7\xaa\x8d\x15\xca\x56\x25\x12\x51\x18\x87\x0c\x21\x12\x76\x2e\xd3\xe5\x2c\x45\xe1\x08\x7b\x9e\x87\x9e\xd1\x21\xe6\xec\xa3\x86\xce\x20\xdb\xee\xf5\x63\x88\xcd\xa5\x26\x49\x0f\xcc\xc9\xd7\x68\xdf\xa8\x48\x2a\x85\x9c\x4c\xd9\xb2\x36\xdb\xb0\x78\x65\x90\xc6\x83\x6d\x12\x4e\x59\x8b\x90\xc4\x78\x2e\x9c\xf4\xca\xe6\x9d\x29\xa2\x7d\xb3\x45\xa5\x06\xc6\x56\xab\x85\xf0\x45\x71\x4d\x08\x23\x6e\x6c\xa8\x29\xd5\x9f\x40\x24\x9c\x05\xca\x74\xcd\x10\xc6\x7a\x93\x7a\x70\x45\x8e\xce\xa3\x84\xa0\x20\xf4\x21\x45\xe9\x11\x5c\xd0\x59\x7f\x8e\xe8\x2c\x0e\xee\xf4\xec\xcb\x1f\xac\xbe\x84\x38\x18\xae\xbe\x2c\xce\x11\xc1\x88\xa2\x74\x28\xe9\x0d\xb9\x1f\x97\x09\xf2\x3c\x8f\x82\x7f\x5c\xd2\x9a\xa7\x71\x18\xf8\xd5\xc7\x19\x10\x8c\x67\xb8\x8a\x62\x1f\x46\x46\x03\x76\x6e\xbd\x61\xcf\x42\xba\xe4\x03\x4c\xa3\xf8\x7c\x6d\x0b\xc6\xcf\xdb\xe1\x6d\x86\x60\x44\x67\x7d\x7f\x86\xb8\x7a\xf4\xab\x20\x4e\x04\x1f\x0d\x57\x09\x4c\xd3\x10\x4f\x73\x38\xce\xf8\x0b\x0e\xa2\x2c\x83\x5c\xfb\xce\x27\x21\x0d\x0b\x28\xca\x5f\x66\x40\x2c\x8b\xe2\x7a\xba\xc9\x7f\x87\x38\xe0\xbd\x71\x1c\xd4\x3c\xce\x00\x47\x01\xef\x38\xa9\x59\x33\xa1\xbf\xad\x79\x31\xa3\x34\xa9\x79\x4c\xfd\xda\xa7\x34\xaa\x79\x1a\xc4\xfe\x17\x44\x6a\x5e\x4c\x49\x52\x43\x28\x00\x46\x21\xac\xa1\xb6\xf6\x8b\x1e\xe6\xce\x54\x5f\x67\xc5\xa1\xef\xa3\x34\x1d\xae\xb8\x8b\x60\x3e\x73\x51\xc3\x4d\xe0\x00\xe1\x65\xed\x0b\x0b\x26\x49\x1f\x5e\x42\x82\xac\x21\xf2\x9e\xea\x5b\x85\x6a\xd4\x1e\xea\x2f\x17\x5f\x97\x33\x4c\xb8\x8b\xc3\x90\x27\xd0\x0d\xd3\x5f\xf8\x2f\xc0\xb3\xb7\x7a\x4f\xef\xe5\x8f\xda\x03\xc0\x28\xf7\x9f\x62\x8f\xb6\x86\x58\xea\x81\x0b\x27\xdb\x1c\xa3\x79\x8c\xc3\x94\x1e\xa5\xe8\x4e\xae\x65\xe2\xd0\x95\x8b\x68\x09\x5e\xdb\x9f\x43\x0c\xa7\xa2\xb6\x9b\x5a\xd1\x3f\xf3\x37\xbf\xea\x17\x20\xa5\x10\x07\x90\x04\x7a\x81\xcb\x2d\x32\x10\x68\x5f\xcf\x21\x97\xd7\x0a\x04\x9d\x3b\x82\xa6\xd7\xd7\x79\xe6\x73\x9e\x2b\x33\x15\x25\xad\xce\xc2\x3f\x90\x8d\x01\x46\x97\xbd\x33\x44\xed\x42\x1f\xc7\x79\x7a\x9c\x6d\x16\x15\xaa\x58\x56\x75\x9c\x43\xcc\x20\x28\x8b\xbe\x5f\x0b\xdf\x77\x49\x71\x32\xcb\x3b\xf2\x9e\x0a\x4c\x9f\x09\x88\x5f\x30\x96\x9f\xca\x04\x1a\xfa\xfc\x95\x0b\xc3\x4d\xd5\xed\x16\xe1\xd5\x15\x45\x04\xc3\xe8\x8c\x0f\x20\x52\x63\x38\x37\x59\x8a\x6f\x4a\xf1\xe5\x88\xff\x9a\x33\xd4\xa2\x88\xcc\x43\x0c\x69\x88\xa7\x6b\xdb\xcd\x51\x3a\x5b\xd7\x40\x1d\xd3\x62\xc7\xb0\xc7\xc0\x0a\x71\x9f\x75\x93\xfb\xec\x35\xfe\x15\xa5\x33\xe1\x95\x6a\xbe\xb9\xa7\x5e\x65\xa0\x91\x72\xd8\xeb\x75\xd4\x53\x7a\x5f\xa5\xa0\x52\x83\x12\x15\xb1\xb7\x82\x84\xb8\x27\x64\x06\xd4\x06\x1a\xae\x44\x49\x74\x44\x50\xa0\xa0\x10\x6f\x5e\xc4\x0b\x4c\x9f\x1e\x0b\x70\xf2\x46\x56\x3e\x68\xa1\xe5\x6d\xd3\xe4\xf5\x35\xce\xb3\xa0\x23\xf7\xbd\x4a\x45\xb6\x1d\xb1\x0a\x85\xca\x57\x3d\x53\xbb\xb0\x63\x29\x25\x0b\x5a\xe1\xd2\x31\x10\x92\x35\xef\xc0\x1f\x34\x9e\x44\x11\x4c\x67\x47\x31\x9f\x7f\x71\x2f\x0a\x45\x87\x1f\x85\x7d\xd1\xa6\xd0\x72\x8f\x94\x1e\x93\x98\xcc\x45\x2a\x9e\xaf\xb2\x7a\x34\x9c\xa3\xe1\x6a\x36\x9b\xcf\x99\x18\x38\x8b\x17\x64\x68\x71\x38\x42\xdf\x02\xf3\x10\x73\x0f\x1b\xfd\x20\x45\x7e\x8c\x83\xfc\x41\xc6\x0f\xce\x9b\x0d\x80\x79\xf2\xe0\xe1\xca\x8f\xe7\x09\xf4\xe9\x70\x85\x63\xca\x3d\x76\x86\x96\x7c\x64\x65\xe0\xd5\x6f\x1f\x86\x2b\x9e\x28\x7a\x68\x09\xb7\x19\x26\x7d\xa8\xbf\x86\xd6\xab\xdf\x3e\xf0\xaf\x85\xf3\xc5\xfc\x17\x22\x14\x77\x2f\xc3\x69\x48\xd3\xe1\x09\x98\xc3\xab\xba\xe7\x19\xf8\xed\xec\xe5\xda\x51\x7f\x3b\x7b\xd9\x7d\xd4\x46\xd2\x8d\xc9\xbc\x41\xc2\x37\xaf\xfd\xd2\x81\x2b\x8c\x71\xa1\x71\x45\x31\xc0\x86\x3b\x52\x16\x96\xdb\xd1\x0a\x28\xa2\x30\x15\x57\x9e\x65\x01\x98\xb3\x36\x10\x79\xb9\x77\x62\x64\x63\xb0\xca\x1c\x37\x45\xf4\xaf\x62\xd6\x31\x49\x6d\xe8\x64\x0d\x4a\x85\x35\x14\x5f\xbe\x04\x34\x61\x84\xb5\xfa\xa7\x47\x45\x9d\x70\x5d\x8f\x0e\xd5\xf2\xdb\xa1\x44\xcd\x60\x2d\x62\x0c\x59\x78\xb8\xa2\xcb\x04\x0d\x2d\x11\x8a\x92\xdd\x16\xca\xb8\x45\xb4\x05\xc2\x44\xbb\x6f\x87\x2e\xf1\xfd\xae\x54\xe4\xc2\x20\xb0\x51\xc9\x05\x67\x3b\x44\x55\x44\x83\x26\x4c\xc9\x86\xfb\xb4\xd9\xea\xd1\x54\x78\x2a\x2c\xe7\x5d\x51\x37\x43\x51\x82\x48\x7a\xd4\x97\xf5\x52\xea\x24\x0f\xf9\xaa\x2f\xda\x56\xbb\xec\x91\x08\xa2\xe7\x3e\x83\xa9\x2c\x86\xcd\xc3\xda\xd2\x3a\xb8\x8d\x92\xd9\x69\x3f\x89\xa3\xe5\x24\x8c\xa2\x35\x43\xec\x35\x1e\x6e\x82\x80\xbd\x84\x7c\x4d\x4d\xf4\xce\x98\x68\x1e\x6b\x1f\x31\x73\x6b\x68\xf9\xe7\xc1\x09\x3c\xaf\xe5\x10\x73\x48\x67\x7d\xd5\xc6\x6c\xbb\x93\x20\x36\x8f\xc9\xc1\x6b\x39\x1e\x3c\x4f\x37\xa3\xcb\x8f\x3b\xe0\x8b\x35\xde\x37\x84\x71\x00\xdb\x62\xcc\x8f\xdb\xa1\x6c\xd6\x09\x67\xb3\x7d\x44\xda\xac\x13\xd6\x66\x9b\xd1\x16\x04\xed\x91\xc6\x93\x85\xef\x17\xca\x18\x78\x6d\x11\x16\x04\x02\x5d\x35\xae\x5b\x39\x0a\xe2\x84\xf6\xb9\x5e\xa0\xb4\x41\x7f\x8a\x42\x7a\x44\x10\xbb\xf1\x5f\xa0\x5b\x14\xed\x36\x7a\xa0\xc9\x7c\x74\x7c\x82\x5c\x53\xb2\xa0\xc8\x1e\x21\x80\xc7\x80\x38\x2b\xee\x98\xc2\x67\x7d\xc6\x27\xed\xd8\x08\x8c\xf0\xd8\xc9\x36\x3b\x0d\x6b\x98\x71\x2d\x89\x50\xb2\xa8\xa3\x11\xbc\x7f\x34\x82\x3b\xd0\x08\x0e\x36\x6f\xa9\x24\xe9\x5f\x20\x92\xae\xd1\xe4\xd4\xfa\x77\xe4\x6a\x4a\x63\x04\x15\xca\x8b\xa6\xe8\x2a\xa9\xbb\x54\xe9\xd8\x57\x62\x23\x40\xbc\x55\xa6\x5c\x64\x8c\x2b\x92\xfb\xfc\xfd\x7b\x57\x0e\xc8\xdd\xb0\x23\x8f\xa8\xdf\xef\x70\xb4\xbc\xbe\x26\xee\x2c\x0c\xd0\xd9\x0c\x82\xd4\x23\x6e\x3a\x83\xe6\xe3\xbf\x8a\x96\x20\xe4\x7e\x9e\xca\xbb\x26\x3a\x3c\xb4\x59\xd3\xf8\xf2\x15\xa7\x44\x14\x1c\x1e\xda\xa1\x07\xa5\xb7\x11\x56\x1f\x50\x6f\x3f\xa0\xe9\xab\xab\xc4\x71\x40\x78\x7d\x5d\xd7\x4e\xbd\x77\x40\x5a\x1a\x28\x9d\xc1\xbc\xf3\xb3\x70\x74\x3c\x1e\xc2\x6d\x22\x49\x61\x92\x48\x50\x3c\x52\x6f\x50\x51\x41\xa1\x62\x37\xb9\x62\x45\x6d\xe2\x6c\xf6\x61\x35\x16\x1f\xd5\xef\x17\x1e\x83\xce\x93\xa7\x54\x37\x8d\xe8\xb4\x6f\xfb\x46\x82\xda\x76\xeb\xf0\xe6\x9b\x77\x4f\x1a\xd6\x8a\xca\xf5\x27\x12\x6b\xbc\x6f\x68\xe3\x00\xb6\x45\x5a\x1a\xe2\x56\x28\xeb\x20\xfa\xf0\xd6\x7b\x88\xb4\x0e\xa2\x0f\x6b\xdd\x02\x6d\x69\x38\xad\xa5\x35\xf1\xa6\xac\xaf\x91\xed\xf7\x0e\x73\x02\xca\xd6\xa8\x63\xcd\x37\xe3\x8e\xc2\x0e\xbb\x94\xc2\xfd\x43\x1b\x07\xb0\x2d\xd2\x28\x6c\x87\xb2\x93\x4e\x38\x3b\xd9\x47\xa4\x9d\x74\xc2\xda\x49\x2b\xb4\x75\x60\x6e\xbc\xf5\x1e\xa2\xad\x03\x73\x63\xad\x5b\xa0\x2d\x3e\x5f\x9f\x1d\x86\xb7\xb8\x33\xc7\x94\x3a\x39\x2a\xff\xd4\x08\x79\x96\x35\x56\x40\x15\x9d\xe7\xb9\x9b\xfa\x66\xd7\x06\x05\x68\xb3\x12\xda\x4c\x00\x54\xdb\x7a\x27\xc9\x64\x3d\xb4\x3e\xf4\x67\x28\xe8\xcf\xe3\x00\x45\x77\x5b\xf8\x85\xdf\x32\xe9\xc6\x5b\x26\x1d\xb3\x4b\x88\x84\xa3\x2e\x6d\x47\x25\xa6\x81\x20\x9e\x57\x30\x26\xcb\x23\xeb\x01\x72\x5c\x01\x92\x4d\x0b\x57\xd2\x86\x68\x96\x1c\x0d\x73\x14\x89\xf4\x0d\xb5\x7e\x1e\x29\x25\x21\x9e\x56\xb8\x83\xee\xb6\x93\x2b\xdf\x3c\x66\x0e\x6e\xcb\x41\x55\x87\x16\xf4\x54\x7b\x8c\xfb\x10\x17\x9a\xec\x24\xbe\x36\x42\xe6\xa3\xa8\x0f\xa3\xa8\xfe\x32\x86\x95\x2f\x47\x5d\x8f\xfd\x84\x17\x97\x53\xa0\xd5\x2e\x26\xde\xaf\xcc\x67\xf9\xcc\x93\x90\xc2\xad\x36\xbd\xee\xb8\x93\x60\xaf\xdb\xf6\x39\xc8\xad\x37\xbe\xea\xb2\x19\xa1\xe7\xa4\x96\x5c\x6a\xe5\x2a\xde\x78\xdf\xd0\xc7\x01\x6c\x8b\xb8\x73\xd2\x82\x06\x51\x58\xcb\x4d\xea\x51\xc6\x1a\xef\x1b\xca\x38\x80\x6d\x51\x86\xc2\x68\x33\xca\x78\x7c\x6c\x8a\x68\x7f\x8a\xea\xb9\x93\x6a\xd0\xd0\x65\x27\x31\xd8\x16\xe6\xb4\x3b\xcc\xb7\xe3\x2e\xfe\x75\xa9\x46\x4d\xfe\x0c\x75\xd8\x70\x46\xa7\xf6\x18\x5d\x8b\xcd\xbe\xe9\xa4\x54\xed\xba\xaf\x58\xed\x8e\xd2\x16\xf8\x5c\xe0\x5a\x8f\x95\x35\x4a\x6a\xd1\x67\xef\x90\xc8\x01\x6d\x8d\xc0\x05\xfe\xb2\x19\x79\xec\x6a\xd4\x9f\xc3\xe4\xab\x25\x6c\x28\x5e\xa3\x91\x4e\xef\x4c\x3d\xe4\x0a\x17\x7f\xf6\xd0\x12\x02\x90\xe5\x79\x74\x99\xa0\x78\xd2\x43\xd7\xd7\x68\x84\x64\xa8\x4c\x7f\x30\x76\x78\x76\xe8\xda\x96\xcf\xd0\x10\x8d\x8e\xc7\x8e\xfb\x8f\x38\xc4\xb6\xd5\xb3\xf2\x40\x73\xd9\xff\xe9\xf1\x33\xaa\x73\xd4\x6c\xce\x3b\x50\x40\x56\x38\x59\x76\x15\xda\x54\xb7\x7d\xa3\x37\x0d\x6e\x5b\x92\x93\x1d\x5a\x50\xdd\x1f\xa7\xed\xd5\x87\xa2\xf5\xde\x21\x8f\x83\xd8\x1a\x73\x7f\x9c\x6e\x56\x1f\xfa\x71\x14\x89\x68\x9b\x26\x6d\x18\xd7\xa5\x18\x51\x5c\x8d\xaf\xf2\x58\xbb\xdb\xf5\x6d\x2d\x45\xdb\xeb\x30\x68\xea\xbe\xd0\x93\x07\x56\x65\x12\x43\x6c\xbc\xcf\xa4\xc2\x06\xae\x32\xf1\x47\xd4\x52\x73\xc3\xd3\xbf\xaa\x1d\x9e\xa7\x80\xcd\x53\xbb\x22\x60\x4d\x42\x92\x52\x01\xa0\xe5\xb8\x9f\x78\x08\x13\x86\xd1\xaf\x0c\x3b\x2e\xc7\x11\xcf\xf1\xaa\xb2\x2e\xa0\x4b\xfb\x18\x90\x11\x1d\x73\x5d\x5e\xfe\xb4\x07\x4d\x0d\x4f\xb4\x69\xdd\x44\x7c\x47\xc7\x33\x4a\xf6\xda\x49\xc2\xdf\x0c\xf0\xa2\x9c\xea\xa8\x15\xc0\x0b\xba\x7f\x37\x5b\x05\x6c\xdb\xbd\x2e\xda\x6f\x74\xcf\x91\xf9\x52\x6a\x7d\xe7\xd6\x62\x51\x76\xdb\x3b\x34\x2a\x70\x5b\xe3\x51\x74\x68\x41\x8d\xed\xfd\x0f\xf7\xd0\xfd\xb0\x8b\xf7\x61\x1b\xe7\xc3\x4e\xbe\x87\xfb\xe8\x7a\xd8\xc9\xf3\xb0\x95\xe3\xa1\x9f\xee\xb8\x03\x9d\x61\xd8\xe0\x06\x2a\x3f\x4d\x1d\xf6\xb8\x8b\xeb\x5c\x00\xd3\x19\x22\xdd\x75\x96\x79\xbf\x3d\xa3\x13\x03\xe0\xb6\xa3\xaa\x1e\x1b\x29\x26\x40\x7e\x47\xbe\xce\x7a\xec\x1b\x02\x19\x90\xad\xc7\xf3\x37\x23\xcd\x28\xfc\x54\xc5\x1d\x41\x38\x40\xa4\x8a\xb7\xbc\xd3\x4e\xa2\x6f\x33\xc8\xaa\xbc\x55\x27\x90\x65\xa7\xbd\x04\xf9\xa2\xf5\xf1\xc3\xda\xee\x24\x88\x6b\xc6\x64\xe0\xb5\x1d\x2f\xbc\xd8\x8c\x2e\x99\xb1\xac\x0f\x29\x25\x69\x53\xe2\x8e\xf9\x22\xa2\x21\xd7\xf3\x34\x57\xcc\xb9\x85\xb4\xc8\xe2\xca\x15\x79\xec\x86\xf4\x2b\x4c\x40\xca\xff\xfa\x1b\x82\x5f\x7e\x85\x09\xf7\xd6\x0d\x9b\xcb\x9d\xf4\x15\x28\xbc\xe2\x49\x5d\xe6\x64\x7d\xae\x35\x65\x4d\x26\x8d\x59\x93\xf5\xd8\x3a\x6d\x32\xf1\x60\xeb\xb4\xc9\xa4\x31\x6d\x32\x69\x48\x9b\x4c\xca\x69\x93\x49\x21\x9f\x2d\x59\x9f\x36\x59\x9d\xdc\x7c\x81\x44\xe1\x93\x25\xf6\x67\x24\xc6\xe1\x1f\xc8\x96\xa9\x38\x65\x91\x35\xf5\xc7\x2b\x21\x65\x00\xea\x64\x97\x61\x14\xbd\x44\x29\x25\xf1\xd2\xee\xda\xdf\x01\xa9\x1b\xa0\x08\x51\x24\x0b\xc2\x99\x3d\x0b\x29\x1e\x53\x91\xc6\x91\x35\xd2\x85\x49\x34\x42\x11\xa6\x24\x44\xc5\xe2\x44\x22\xa9\xa3\xf7\x74\xc5\x08\x01\x7b\x91\xb8\x93\x3b\x07\x79\x79\x91\xc3\xc3\x91\xeb\xba\x2a\x89\x08\x75\xd3\x24\x0a\x29\x57\xe1\x39\x63\xa5\xf0\xc3\x2e\x41\xf3\xf8\x82\x23\x87\x7d\xdb\xc9\x1c\x80\x0f\x0f\xed\xd4\x4d\xe5\x74\x00\x76\x00\x1b\xa7\x34\x15\xec\x8c\x0b\x73\xc1\x7a\x2e\xa4\x3c\x17\xcf\xf3\xc8\xe1\xa1\x4d\x38\xf9\xea\x7d\x6d\x9f\x21\xea\x80\x88\x7f\x07\x01\xe2\x88\xaf\xa8\xd9\xe2\xda\xd9\xae\xf8\x58\xae\x1f\x2f\x30\x1b\xff\xf0\x90\xc8\xee\x32\xcd\xb0\xfc\x25\x50\xcd\xb7\x3a\x1b\x33\xd2\x93\x2e\xcc\x99\x16\xe6\x6c\xb1\x1d\x6f\x1d\x08\x3d\x9d\xe5\x79\x1e\x7d\x46\x3c\x3a\xa4\x2e\x2f\xc0\x9a\xfe\x2d\xa4\x33\x5b\x54\x3e\xb5\x1c\x0e\x0c\xff\x61\xc9\x59\x8b\xc4\xb2\xc6\xf0\xd0\x7b\xba\x0a\x27\xf6\xc0\xf3\x3c\x2c\xe7\x0b\x1d\x47\x25\x9a\x25\x32\xd1\xac\xf8\xd8\x10\x09\x65\xdf\x9b\x30\xa5\x6a\x39\xa0\x93\x61\x45\x39\xd0\x01\xc7\x7c\x9c\x34\xfc\x03\x1d\x1e\x46\x9a\xa2\x9c\x0c\x45\x29\xea\x6d\x1e\x14\x06\x01\x1b\x91\xa1\x04\x44\x59\x06\x62\x8f\x18\x59\xb7\x17\xe6\x86\xf6\xbd\x11\x1e\x83\xe0\x66\x69\xb7\x93\x72\xda\xed\xa0\x21\xed\x76\x32\x42\x63\x2f\x90\x69\xb7\x93\x62\xda\x6d\xf3\x27\x48\xca\x69\xb7\x93\xc6\xb4\xdb\xc9\xf5\x75\x52\x4e\xbb\x9d\x14\xd3\x6e\x27\x9e\xdf\x3d\xed\x76\x0c\x16\x3a\xed\x76\xe2\x80\xb9\x91\x76\x3b\x29\x25\xc5\x4e\x64\xda\xed\xc2\xf3\x67\x49\x95\x4d\xcd\x75\xda\xed\x64\x7d\xda\xed\xf2\x17\xea\x39\x2d\x9b\x62\xc2\xc0\x13\xfb\x01\x7a\x09\x20\x22\xed\x36\x4f\xb8\x0d\x02\x30\x07\x89\xa1\xa2\x0f\x37\x9d\x86\xf3\x7e\x5e\xea\xf5\xdb\xfb\x94\x8d\xc1\x6a\x42\xe2\xf9\x90\x82\x78\x32\x49\x11\x1d\x62\xef\xde\x20\xcb\x0b\x9f\x89\x3d\x67\xa9\xb9\x19\x56\x0c\x87\xef\x72\x08\xa2\x83\x70\x62\x63\x27\xf2\x74\x21\xa5\x8f\x3c\x75\x32\x80\xde\xea\x32\x0c\xe8\x6c\x18\xb9\x62\x6c\x5e\x2a\x1d\x44\x68\x42\xf5\xa3\x37\x68\x42\xc1\x8c\xd7\x4a\xd7\xcf\x44\xe9\x74\x40\xe3\x44\x3f\xfa\x18\x27\xd9\x01\xdf\x98\xe1\xc4\x66\x5f\xa2\xea\x13\x9c\x2f\xfe\x1c\x2f\x70\x10\xe2\xe9\x8b\x28\x44\x98\x7e\x40\x3e\xb5\xd5\x3a\xdf\xf3\x3c\x6a\x14\x08\x6d\x6a\x7d\x00\xdd\x2b\x4f\xd6\xd6\x04\xd0\x5d\x7a\xd0\x5d\xf6\x91\xbb\xd4\xa9\xa8\xf9\x5e\xef\xe0\x34\x17\x90\x38\xe9\x7a\x81\x62\x5d\x76\x52\x58\xdc\x00\xea\x82\x70\x33\x70\x9f\x11\xd2\x6e\x94\xb7\xa0\x68\x9e\xc4\x04\x46\x8d\x25\x2e\x36\x0a\x6a\xcd\xe5\x2d\xf4\xd8\x7b\x51\xdf\xc2\xdc\xe9\xb4\x58\x57\x57\x01\xe2\xaa\x05\xfc\x85\xc4\x73\x1b\xd5\x96\x90\xc8\x81\xfe\x5e\x43\xe2\x7b\x0d\x09\xb5\xf3\xbb\xa7\x61\xd9\xe3\x2c\x2c\x02\xae\x24\xbe\x44\xa4\x9f\xf2\x92\xd1\xfd\x30\xed\x4f\x49\xbc\xa8\x65\xf4\x66\xc3\x56\x63\xec\x24\x4a\x9a\xc7\xe4\xa0\xbc\x67\x90\x88\xfa\xd9\xaf\xd3\x3f\x0b\x54\xb4\xfc\x46\x43\xff\x2d\x97\x41\xfc\x85\x6a\x63\x41\x3b\xac\x84\x1e\x66\xef\x17\xe3\x4c\x23\x64\xeb\xf5\x50\x43\x6c\x5e\x12\x9c\x2e\x08\xea\xa7\x70\x82\xfa\xba\xf8\x73\xb5\xfe\x05\x89\xc3\x00\x11\x1e\x10\xb3\x4b\xf8\x7d\xc5\x67\x7f\x06\x27\x48\x97\xfc\x16\xd2\x41\x0b\xb8\xf9\x15\xb8\xa3\x98\xa7\x7a\xed\x10\x0a\x5a\x91\x98\x02\xb6\x2d\x3d\x89\xf6\x2d\x90\xb8\x2e\xeb\xf8\x57\x94\x19\xd9\x44\xee\x40\x5c\xe4\xf0\xed\x97\xa4\x08\xa8\x67\x59\x63\x53\x93\xc6\xe5\x45\x84\x2f\xdc\x0b\x48\x6c\x94\xd7\xfc\x58\x44\xd1\x3d\x8f\x3c\x23\x43\x5a\x27\x34\x72\xd0\xbf\xcb\x8b\xdf\xe5\x45\xbd\xd7\x7f\x6f\x9f\xdb\x04\xfd\xbe\x80\x3b\x75\x4e\xb4\x62\x92\x7c\xd2\xad\x59\x24\x6b\xbd\x99\x41\x5e\xd5\xca\x97\xb5\xe6\xa6\x9a\xb4\x25\x3b\x8f\xb2\xab\x0e\x32\xe3\x55\x0b\xf9\xf0\x2a\x99\x0f\xba\x20\x6c\x3e\xd8\x43\x94\x31\x10\xdb\x23\x6d\x3e\xd8\x88\x36\xe1\xd9\xdc\x3f\xaf\xf7\x1d\x6e\x96\x66\xf2\x7e\x3b\x89\xc4\x36\x40\x6f\x05\xf1\x7e\x82\x8b\x83\x6d\x56\x58\xf4\xda\x4b\x80\xaf\x50\xd0\x9f\x92\x30\xe8\x47\x70\x19\x2f\x1a\x3c\x5c\x95\x5f\xef\x91\x68\x94\x1e\xb1\x1e\xdf\x2a\x5a\x3f\x2f\x73\x56\x34\xed\xa1\xd1\xf1\x18\xa0\xd1\x60\xdc\x2d\x62\x7f\x12\x41\x4a\x11\xee\x27\x72\xbe\xdf\x28\x8c\x42\x7f\xa8\x87\x84\x95\x10\x90\x3c\x75\x16\x71\x13\x38\x15\x15\x18\x0e\x74\xb1\xb8\x64\x91\xce\x98\x30\x4d\xc5\x4b\x07\x50\xd7\x9f\x85\x51\x40\x10\xd6\xa2\x1f\xf5\x9e\xb2\xe1\xc6\x60\xc5\xdb\x0c\xb9\xf8\x01\x8b\xf8\xd9\xa0\xa7\x97\xf8\xe9\xba\x27\x64\xaf\x9d\xdc\x13\xcd\x63\x6a\x60\x5b\x8e\x29\xdb\x6f\xde\x67\x51\x1c\xd7\xb2\xd1\xda\x33\x57\xb4\xde\x3b\xd4\x71\x10\x5b\x23\x2e\x8e\x37\xeb\x0f\x44\x89\x89\x7e\x93\xf3\x54\x88\x69\x54\xdb\x76\x27\x51\xb7\xde\x57\x5c\x4e\x7f\x8e\xd2\x14\x4e\x5b\x43\xab\x9a\xef\x2a\xc0\x9b\xd7\x56\x14\xd5\x68\x0b\xaf\x6c\xbd\xbf\xe0\x12\x14\x41\x1a\x5e\xb4\x5e\x60\xdd\x7e\x7f\x41\x4e\x67\x31\xa1\x7d\x1a\xce\xef\xb6\xf2\x5c\x8b\xa3\x95\xfb\x4b\x73\xa3\xbc\xf0\x34\x83\x07\xd0\xfb\x15\xd2\x99\xe0\x46\x36\x3a\x1a\xa0\x53\x76\x87\x37\x9e\xc1\xa3\xc7\xc7\x0e\x80\xff\xe6\x3d\x3e\x06\xd8\x7c\x41\xf8\x0b\xc2\x5f\x50\xf3\x05\x3e\x3a\x79\xe8\x00\xfc\x6f\xde\xc9\x43\xed\x4c\x47\x41\xea\x61\x10\x7a\x04\xc4\x1e\x3c\x90\xae\x33\xf7\x8e\x85\xef\x0c\xd7\x67\x44\x43\x95\xc7\xf2\x81\x15\x58\x07\xfa\x79\xaa\x9e\xa7\x0f\xac\x99\xf1\x3c\x54\xcf\xc3\x07\xd6\xdc\x3a\x90\xb8\x50\x0f\xe3\x07\x56\x6a\x65\xdd\x8e\x79\xb1\x58\xe5\x65\x5a\x47\x9b\xbc\xed\x3e\xd2\x25\x89\xe7\xfd\xed\x54\xd3\x85\xae\x3b\x09\xfa\x9a\x03\x9a\xc4\xf3\x57\x1d\x75\xd4\x46\x9f\x36\x68\x5d\xd4\xe7\x1a\xad\x17\x72\x44\xf3\xfd\x43\xe2\xa2\x43\x96\x51\xd1\x7c\x23\xea\xa6\x7e\x7b\xbc\xb1\xb6\x7b\x86\x34\x0e\x5e\xcb\xf1\xa6\x7e\x0b\x74\x91\x78\x91\x74\xbf\xa7\xeb\x6e\x3b\x89\xbe\x0d\x20\xd7\xde\xcc\xeb\x15\xc3\xd3\x1d\xf5\x1e\x58\x43\x20\xed\x87\x9b\xb6\xc1\x55\xed\x11\xd6\x84\xac\x1d\x3d\xc3\xd6\x61\xab\x7d\x3c\xd3\x94\x6e\x8e\x64\x9a\xc1\xb4\x8f\xd1\x55\xd7\xe8\x66\xdd\x6d\xcf\xd0\x37\x83\xe9\x5b\x0e\x6d\xcb\x31\x65\xfb\x56\x68\x4c\x08\xba\x08\xe3\x45\x57\xb1\xa2\xd0\x75\xff\xd0\xf9\x5e\x43\xdd\x1e\xa5\xaa\xcf\x66\xb4\x12\x34\xe9\xd3\x78\x7d\xf6\x50\x12\x2f\x68\x88\xa7\x47\x94\x40\x2c\x5c\x87\xd9\x14\xd6\x34\xbc\x0c\xa3\xc0\x87\x24\x28\x34\x61\x2f\xeb\x6a\x85\x01\x22\xec\xd8\x10\x70\xa3\xde\x81\x56\xd5\xc5\xea\x3d\x80\xa2\x45\xe4\xad\x32\xa5\xa1\x33\xad\xb1\xa4\xc1\x1a\x1b\x8d\xd0\xd8\x23\xd2\x1a\x1b\x15\xad\xb1\xe6\x4f\x10\x95\xad\xb1\x51\xa3\x35\x36\xba\xbe\x8e\xca\xd6\xd8\xa8\x68\x8d\x8d\x3c\xdc\xc6\x1a\xcb\x01\x57\x7e\xce\x32\xb5\xc4\xf5\x35\xce\x1c\x10\x39\x00\x1a\xd6\xd8\xa8\x64\x2b\x8d\xa4\x35\xb6\xf0\xfc\x59\x54\xb5\xc6\x42\x6d\x8d\x8d\xd6\x5b\x63\xcb\x5f\x68\x22\x47\xca\xa6\x16\x49\x6b\x6c\xb4\x4d\x5a\x7e\x75\x5f\x42\x2e\xa3\xbc\x8f\x71\x31\x30\x6a\x51\xaa\xc3\x46\x5c\x4e\x34\xa9\x03\xfc\x42\x55\xb8\x52\xed\x03\xa4\xf3\x8e\x0a\x1a\x1b\xce\x61\x88\x2d\xc7\x8d\x64\x11\x25\x10\x19\x4d\x74\x6a\x52\x41\x8e\x0e\xf7\xcb\x48\xf5\x92\x1d\x3b\x20\xf4\x52\x37\x9d\x85\x13\x6a\x3b\x22\xac\x82\x67\x90\xbd\xbe\x5e\x65\x07\x96\x6b\x79\x9e\x17\x1e\x1e\xda\xa9\x57\xcc\x64\x1b\x29\xef\xf3\x0f\x6c\x5c\x10\x03\x54\x18\xc8\x39\xa0\x64\xa9\x56\x7b\x61\x87\x0e\x1f\x22\x55\x51\x30\x48\xc5\xc6\x1c\x59\x32\x71\x0f\xf6\xe3\x00\xfd\xf6\xe1\xb5\x76\x0a\x52\xe9\x7a\x8e\x2c\xc7\x71\x00\x94\xf8\xb3\x43\x90\x82\xd8\xc9\x7c\x5e\x3e\xc1\x77\x56\x74\x46\xe2\xcb\x1e\xf7\x26\x50\xbe\x22\x9e\xe7\xbd\x22\x24\x16\x86\x7c\xa9\xd3\xf2\x3e\xdf\x5f\xe9\x1f\x59\xef\x97\x98\xf4\xac\xfb\x2b\x3c\x3a\x1e\x67\xc3\xfb\xab\xff\x3a\x7b\xf7\xd6\x15\xe1\xca\xe1\x64\x69\x2b\xdc\x0c\x1c\x27\xb3\x3e\x3b\xc0\xcf\xb2\x03\xbd\x80\x3e\x47\x60\xe0\xd9\xb0\xc1\xb1\x45\x21\x1a\x44\xb2\xc1\x27\x51\x29\x15\xa4\xdb\xc6\xb0\xc1\x06\x5f\x17\xf9\x25\x00\x75\x04\x5b\xb8\x53\x11\x6c\xd0\x70\x77\x61\x2f\x6d\x67\xc5\x01\xe1\x2d\x19\x34\x90\x4c\x79\xcc\x4e\xea\xf0\x80\x27\x41\xfd\xc4\x8d\xb1\xc4\xe2\xdf\xc2\x28\x7a\xc1\x13\x7f\x59\x46\x83\xfc\x69\x29\x30\x4e\x92\x9b\x6f\xd7\xe5\xea\x05\xac\x49\x56\x1a\x80\x71\x4d\x31\x30\x52\x23\xd5\x46\xcb\xa9\x89\x4d\x26\x6d\x67\x06\x04\xa4\x85\xb1\xb2\x0c\x84\x5e\x6c\xa7\x86\xdb\x8e\x5e\xc3\x11\x1c\x83\x9b\xf8\xec\x38\xa0\x6e\x60\x73\x9a\xa3\x68\xac\xce\x5d\x81\x19\x45\x1b\x2f\x51\xea\x93\x30\x61\x94\xb7\x76\x04\x07\x18\xaf\x1d\x90\x9a\xfa\xa0\x60\xc3\xb1\x4b\xe7\x11\x77\x58\xec\x98\x2b\x20\xef\xb7\x6f\x72\x0c\x9d\x47\x67\x1c\xde\xb6\x42\x8c\xec\xb0\x59\x82\x59\xcc\x21\xee\x9e\x75\x41\x77\xdb\x37\x44\x6a\x70\xdb\x22\x52\x76\xd8\x8c\xc8\x65\x52\x9f\x53\xb8\x56\x51\x22\x5a\xef\x1b\xf2\x04\x88\x6d\x31\xc7\x5a\x6f\x44\x5b\x38\x5f\xb4\xcf\x13\xcb\x1b\xef\x19\xd2\x04\x80\x2d\x07\x64\x8d\x37\xa3\x0c\x77\x4d\xee\xc1\x7a\xec\x1b\xda\x70\xfb\xe4\x1e\x21\xde\x9c\xdc\x83\x67\x62\x4b\x51\xe7\x34\x69\x79\xbf\x9d\x44\xe0\x26\xa0\x2f\xe2\x2f\x5d\xf3\xa4\xc9\x4e\x3b\x09\xee\x3a\x7a\x11\xa0\xb6\x26\x19\xd6\x7c\x33\x02\xd3\xbe\x48\xb2\x54\x9b\x1e\x85\xcb\x5a\x55\xfc\xe9\x3e\xfb\x86\xc2\xf4\xb9\x84\xb5\x2d\x12\x65\x87\x56\x68\xe4\x95\xea\x5b\x6b\x3e\x75\x8f\xfd\xc3\xa1\x00\xb4\x3d\x0a\x59\xfb\x36\x18\x44\xf3\x84\x76\xc3\xa0\xe8\xb1\x93\x18\xdc\x0c\xad\xf0\xc5\xee\x02\xed\x3e\xba\x9c\x87\xe9\xab\x4e\x4e\xe7\xb2\x7d\x1b\x0c\xce\x08\x9a\xb4\x89\xcd\x01\x30\xd7\x19\x46\xdf\x75\x86\xff\xb4\x3a\x43\x23\x8e\x2a\x6d\x8e\xa3\xd2\xea\x26\x5c\x52\x37\xdd\x7a\xca\x24\xa5\xaa\xd8\x87\x84\x49\x77\xac\x6e\x1a\x21\xe0\xba\x2e\x1d\x17\x23\xfc\xe5\x78\xa6\x62\xf4\x2d\x9c\xa3\x42\xfe\x1d\x9c\x26\xd0\x47\xae\xe5\x1c\x1e\x16\x5f\x04\x3e\x7f\x68\x23\x4f\xb7\x79\x80\xcc\xb4\x1a\xec\x0b\x18\x5d\xd1\xc3\x43\x2b\x8a\x61\x10\xe2\xa9\x65\x3e\x7e\xa6\xff\x32\x87\x45\xce\xd0\x9c\x9a\x12\x00\x6c\x31\xff\x66\x7d\x18\x1b\xc7\x43\x2e\x8d\x5d\xcc\x20\x20\x28\x89\x20\xa3\x36\x37\xc4\x01\xba\xb2\x80\x65\x29\x1c\x7e\x25\xc5\x19\xf4\x22\x9b\xd4\x2a\xce\xe8\x4d\x15\x67\x75\x03\x17\x14\x67\x78\xb3\xe2\x6c\xed\x08\x0e\x20\xa6\xe2\xac\x50\x72\x37\xdd\x74\x2c\x7c\x9d\x12\x56\xa6\xa5\x22\x4c\x8b\x56\x0a\xec\xd9\x08\x28\x2f\x72\x91\x6d\x6a\x05\xcf\xc3\x28\xa4\x4b\x46\xde\x43\x08\x94\xb7\x3b\xff\x19\x65\x1e\x72\x7d\x88\xdd\x04\x32\xae\x4e\x1d\x90\xca\x07\xb2\xd3\x2f\x31\xb1\x21\xb7\x83\xe9\x72\xcb\x5e\x4d\xc6\x1b\x9e\x4e\xec\xc5\x0c\x12\xe8\x53\x44\xc2\x94\x86\xbe\x82\xe4\xd9\x9a\x77\x8c\x0d\x08\x56\x77\xc6\x35\x61\xba\x5e\x98\x6d\x85\x69\xdf\x7a\x10\x31\x60\x3f\x89\x1c\x55\xcf\xc5\x84\xde\x9d\x33\x6e\x8a\x88\xcd\x5f\xc1\x20\x28\x3f\x4f\x19\x4f\xcf\xd3\x86\xb3\x9f\xd9\x01\x47\x14\xe6\x9e\x82\xc4\x28\x47\x2d\xd8\xad\x5d\xca\x46\x9e\x1f\x63\x58\xa4\x24\x53\x8f\xb3\x42\xc1\x01\xb2\x9e\x1a\xfe\x11\xd7\xd7\x0f\x5e\x73\x39\xe4\x5d\x76\x52\xc6\x5a\x0f\x2a\x13\x5a\x3a\x82\xca\xbb\xec\x24\xa8\xcd\x63\x0a\x30\x5b\x0e\xc8\x1a\x6f\x44\x5c\x04\x53\xba\x46\x8a\xd4\x92\x23\xd5\x85\x2a\x4b\x1e\xa4\xd5\x02\x1a\xca\x11\x14\xb9\xe9\xe2\x3c\xa5\xc4\xee\x0f\x9c\x6c\x1b\xc9\x86\xcd\xcd\xa3\x5d\x02\x75\x68\x39\xf6\x66\x8d\xd3\x7b\xe4\xcf\x5b\x2b\x26\x59\xdb\x3d\x23\x15\x0e\x5e\xcb\xf1\x22\x7f\xbe\x99\x50\xd0\x84\xf6\x29\x09\xe7\xeb\x9d\x21\xf2\x66\xdf\xb2\x9e\x2a\x93\x3f\x1b\x8b\xaa\x02\xdc\x2d\x48\x2b\x8a\xa7\xfd\x5a\x05\x51\x3d\xa9\xf0\xd6\xfb\x46\x2c\xf1\xf4\x55\x7b\x6a\x89\xa7\xaf\x36\x93\x4b\x3c\x1d\x1c\x77\x41\xda\xe0\x78\x0f\x91\xc6\x40\x6c\x8f\xb5\xc1\x71\x2b\xb4\xb5\x0f\x28\x17\xad\xf7\x10\x6d\xed\x83\xca\x79\xeb\x36\x68\x6b\x5f\x10\x88\x37\xde\x3f\xa4\xb5\x2f\x07\xc4\x1a\xb7\x40\xd9\x25\x22\xfc\x00\xef\x66\x19\xce\xfb\xed\x1d\x0a\x35\xc0\xad\xf1\x28\x7b\x6c\x46\x66\x07\x0f\xe9\x68\x47\x4d\x4d\x6b\x30\xd7\x7e\xb8\x16\xa2\x7a\xd4\xc5\x43\x3a\xda\x3f\x0f\xe9\xa8\x83\x87\x74\xd4\xc2\x43\x7a\x0e\xb7\x08\x37\x90\x9d\x76\x12\x75\x1b\xc1\xed\x0e\xeb\x7e\x02\x7a\xd5\xfa\xc8\x62\x6d\x77\x12\xc4\xe6\x31\x39\x78\x2d\xc7\x9b\xc3\xab\xcd\xe8\x42\x64\x8a\xfa\xfe\x0c\xf9\x5f\xd2\xf5\x57\x90\x42\xcb\x6f\x76\x0b\x01\xf8\xb6\xee\x1f\xf3\x7a\x2d\x4e\x3d\xa1\xec\xaa\xfa\x66\x0d\xa1\x84\xed\x53\x1e\xcc\xc3\xcd\xe9\x0e\xe6\x5b\xa6\x15\xc9\xfb\xed\x62\x72\x91\x8e\x24\x13\xb7\x8f\xe9\x63\x6d\xf7\x8d\x64\xe2\xf6\x31\x7d\xf3\x78\x73\x4c\xdf\x7c\x51\x2f\xc0\xd5\xe3\x6b\xb1\x7f\x12\xdc\xbc\xcb\x80\xf3\x36\xa7\xd7\x16\x31\x5b\xfb\x18\xaf\x85\xbb\x04\x6b\xe1\x36\x91\x5a\x38\xee\x9c\x7a\x9e\x77\xd9\x37\xc4\x71\x30\xdb\x22\x2e\x8e\x37\xdf\xf1\x71\x4c\xfb\x5d\x52\x14\x8a\xf6\x7b\xe8\x33\x82\x63\xca\x9d\x40\xc4\x31\xd1\x01\x89\x66\xb7\x36\xe8\xec\x84\xcb\x3d\xc4\x62\x17\xd4\x6d\xc4\x57\xcc\x3f\xd4\x87\x5d\xb9\x5e\xde\x6f\xcf\x10\x28\x26\xfe\xbc\xfd\xa0\xaa\xc3\x66\x54\xe2\xbc\x56\x57\x0d\x32\x63\x5c\xce\x4b\x6f\x76\xd8\x49\x2c\x6e\x84\xf7\x32\xc4\x41\x7c\xd9\x1a\x5a\xd9\x7c\x2f\x61\x6d\x0b\xe4\x5e\x42\x97\xf0\xf0\xde\x5a\xc7\xc5\x75\x3c\x40\x75\xdb\x49\x90\xd7\xb0\x00\x0d\x6e\x5b\x16\x20\x3b\x6c\x46\x64\x6d\xd6\xad\xfa\xc3\x67\xff\xd2\xd1\x75\xc8\x45\xd7\x22\x11\x5d\x02\xa7\xa8\x4f\x43\x1a\xd5\xea\x4d\xf3\xb7\x75\x1d\xee\xec\x26\xab\x11\xd1\xfe\x52\x9a\x20\xe2\x23\x4c\xd9\xe4\xfc\x38\x5a\xcc\x71\xda\xed\x82\x5e\xed\xbf\x8b\x17\x75\x9e\x05\x14\xa0\xd1\x49\xc7\x2b\x7b\x82\xc8\x24\x26\xb5\x2e\x09\x7e\x8c\x85\x93\xa0\xbf\xac\x34\xdf\xc9\x9d\xb1\xde\xf1\x22\x09\x13\xd4\x17\x5e\xa7\x1d\xf9\xa8\xd9\x73\x57\x01\x5f\xb7\xc4\x61\xd2\x35\x58\x87\x77\xd9\x49\x50\x9b\xc7\x14\x60\xb6\x1c\x90\x35\xde\x8c\xb8\x68\x41\xb8\x13\x66\x7d\x76\xb8\x09\xe3\x14\x31\x39\x8a\xc2\xf3\x9a\x2e\x3b\xc5\x02\xe3\x28\xf4\x97\x47\x01\xa4\x90\xb1\x32\x54\xac\xb8\xdb\xec\x7b\x85\x00\x35\x52\x3a\x28\xf6\xc4\x6b\x8e\x32\x96\x63\xbd\x34\x06\xd4\x6e\x92\x3c\xf2\x44\x45\xa0\xd8\xd8\x39\x3c\xe4\x45\x52\xdd\x08\xe1\x29\x9d\x3d\x5b\x3b\xc6\x70\x44\xdd\x69\x14\x9f\xc3\xe8\xfa\xda\x7a\x1e\x45\xd6\x78\x2b\xd7\xf4\x7c\xc8\x1b\xfa\x71\x6d\xc6\x69\x4d\xa9\xa7\xbc\xed\x3c\x0e\x50\xa4\x9a\x7e\x3b\x9b\x40\xee\x00\x8e\xea\xca\x4f\x60\x91\x1f\x92\x54\x92\x34\xe6\x4b\x85\x81\xf5\xfa\xa5\xe5\x78\x9e\x47\xdd\x5f\x9f\xbf\x7d\xfe\xe7\x57\xbf\xbe\x7a\xfb\xf1\xd3\xeb\x97\x43\xe2\x59\x73\x88\xe1\x54\x54\xf0\x3a\x38\x27\x08\x7e\xe1\x29\x1b\x2d\xeb\x9e\xe7\x15\x46\xa0\x68\x9e\x44\x90\x22\xcb\x61\xbd\xc2\x00\x61\x1a\xd2\x10\xa5\xaa\x97\x84\x8d\xbd\xe4\x18\x63\xaf\x74\xa9\xc5\x11\x19\x8b\xec\xcf\xd8\x01\x28\x73\xc0\x2a\xff\xea\x70\x34\x06\xf9\x68\xec\x97\xea\x3e\x1c\x8d\xb3\x8e\xc7\xa1\x58\x55\xe1\x53\x78\xbb\xb9\x3b\xd9\x98\xef\x26\x75\x04\x69\xee\x38\xb5\xd9\xa8\xc7\xb7\x87\xb9\xe7\xa8\x89\xc2\xca\x62\xe9\x10\x10\x2c\x1d\x21\x2d\x12\x47\x48\xa4\xcf\x54\xe9\x55\xfa\x12\x4d\x4b\xcb\x6c\x27\x60\xee\x57\xda\x88\xae\x38\x0e\xd6\xf7\x2b\x36\x10\x9d\x8e\xe5\xff\xfa\x35\xff\x91\xff\x1b\xb0\xb1\x0a\xc0\x31\x0a\x2b\x8d\x6d\x92\x96\x26\x0f\xb3\x85\x95\x65\xb7\xb5\x9d\x6b\xaf\xc9\xb5\xaa\xf8\x64\x57\xef\xc8\x6b\x0e\x47\x06\x5e\xdb\xb3\x31\xbe\xdc\x7c\x34\x6e\x97\xf4\x6b\x5f\x13\x7e\x25\x5d\xb3\x7d\x25\x6d\x53\x7d\xfd\xbe\x40\x8b\xae\xd2\x99\xe8\xb3\x67\x28\x94\x80\xb6\x1c\x91\xb7\xde\x88\x3c\x02\x71\x10\xb7\x77\xa7\x96\xcd\xf7\x0c\x71\x0a\xc8\x96\x43\x8a\xe6\x6d\x50\x57\x9f\x72\x7d\x0d\xdd\x89\x3e\xfb\x87\xbe\x69\x7b\xba\xe3\xad\x37\x23\x8f\x0b\x51\x5d\xb1\x27\x3a\xed\x24\xfa\x36\x81\x3b\x21\x28\x9d\x89\xcc\x04\xbb\x51\x97\xcf\x88\x27\xbd\xe5\xd2\x7c\xe5\xf8\xd1\x7d\xa8\xce\x67\xe4\x15\xb3\x1d\xef\xa9\xae\x6c\x5e\x9b\x61\x4c\x80\x5a\x17\x06\xca\xa3\x28\x0f\xf4\x55\xa1\x90\xbe\x6f\x68\x3d\xa0\x8e\x2b\x29\xc1\x76\xb2\xba\xd2\x7e\x0a\x75\xdf\xab\xfb\x7d\xaf\xee\x97\xf3\x0e\x6e\x87\xec\xec\x49\x9a\xf7\xdb\x4b\x86\x89\x03\x44\xfa\xfa\xb6\xf6\x75\x58\xa6\x4a\xbc\x79\xb4\x5a\xd9\xa3\xe7\xfd\xbf\xc3\xfe\x1f\xee\x71\xff\xc7\x4f\xfd\xf1\x03\x27\xcb\x8e\xa6\x9c\xa7\x46\x60\x4d\x94\xbe\xc8\x6f\xd9\x89\xad\x0a\x10\x44\x7a\x87\x34\x67\xa9\x46\x10\x3b\x12\x8c\x94\x7a\x7a\x78\x90\x4a\xde\x8a\xd7\xf0\x56\x36\xa4\xb9\x2c\xb8\x91\xb7\xe2\x06\xde\x8a\xcb\xbc\x15\x17\xb6\x12\xae\x6e\xa5\x34\xe7\xad\x20\x8f\xf5\xbd\xa7\x42\x0c\xa3\xc3\x43\x3b\x52\x65\x4f\x39\x28\xae\x4f\x10\xa4\xe8\x03\x9a\xbe\xba\x4a\x5e\x89\x67\x36\x04\xd5\x3c\xa1\xe0\xde\xc0\x29\x56\x53\xcd\x95\x32\x3c\x3b\x86\x48\xbb\x68\x32\xd4\xd8\x40\xd8\x82\x73\x54\xff\x66\x1c\x75\x5e\xe6\xa8\x7e\x03\x47\x9d\x33\x8e\xea\x4b\x8e\x3a\x2f\x72\x54\xf3\x27\x98\x97\x39\xea\xbc\x91\xa3\xce\xaf\xaf\xe7\x65\x8e\x3a\x2f\x72\xd4\xb9\xb7\xe8\xce\x51\x43\x9e\xd4\x55\x70\xd4\xb9\x03\x02\x83\xa3\xce\x4b\xfc\x6e\x2e\x39\x6a\xe1\xf9\xb3\x79\x95\x0c\x02\xcd\x51\xe7\xeb\x39\x6a\xf9\x0b\xf5\x94\xcc\xa6\x38\x67\xe0\x29\x8e\x3a\x57\x1c\x55\x72\x53\x10\x80\x79\xfb\x60\x7b\x82\x12\xd4\xd9\x1d\x44\x76\xda\x49\x5e\xba\x46\x76\x97\xa0\xb6\x15\xde\x79\xf3\x16\xdc\x99\xd3\x56\x67\x0c\x8a\x5e\x3b\x89\xc2\x0d\x00\x87\xd3\x59\x9b\x20\x5a\xa3\xdd\x3f\x4d\x14\x2d\x89\x63\xda\x5f\x90\x5a\xd7\x89\x86\x4c\x6b\xba\xcb\x4e\x2e\xf5\x9a\xdd\x12\xc7\xf4\x37\xd2\xde\x6b\x42\xb6\xdf\x4c\x3e\x9d\x6a\xdc\xec\x65\x89\x9b\x6e\x15\x6e\xda\x15\xb8\xe1\xd4\xb5\xc6\xe0\x6c\xbe\x2f\xbb\x29\x15\xfa\xee\x24\x2e\xdb\xc0\x3e\x87\xd4\x9f\xed\x46\x01\x34\x69\x2d\x19\x59\xef\x09\x4a\xb9\x03\xa0\xf5\xea\x0a\xfa\xec\xdf\xf7\x04\x4d\xc2\x2b\x0b\x58\x67\x8b\x89\xf8\xe3\x03\x9a\xa2\x2b\x6b\xec\x4e\x42\x1c\xd8\xd4\x7b\xaa\x25\x0a\x34\xa2\x63\x47\xe6\x9f\x50\x03\x49\x7b\x84\x8d\xdc\xd7\xf8\x02\x11\xfa\xcc\x7a\xfb\xee\x63\xcf\x1a\x5a\x96\xf3\xc0\x4a\x64\x23\x61\x15\x11\x5f\x94\x1d\x3e\xdf\x5f\x55\xbb\x64\x88\x35\x89\x96\x3d\x8e\xba\x10\x4f\x7b\x16\x6b\xc6\x3b\x66\xd6\xe7\x03\xf5\x65\x36\xcf\xb5\xe3\x24\xbc\x0d\x0a\x7a\xe7\x4b\x31\x84\xe8\xa4\xc7\x90\xb0\xae\x1d\x23\xe5\x6d\x8c\x31\x44\x27\x3d\x86\x40\xd3\xda\x21\x34\x18\x74\x86\x7a\x84\xb5\x17\x23\xf1\xae\x99\xf5\x59\x9a\xf7\x2c\xab\x53\xdd\x36\x41\x5d\xa2\x00\x40\x27\xbe\x6e\x74\xdb\xc9\x4d\xb5\x96\x41\x51\xf4\x5e\x42\xdc\x9e\x4d\xa9\x3e\x1b\x37\xac\xbc\x02\x1e\xf9\x90\x04\xfd\x04\x91\x79\x98\xa6\x61\x8c\xd7\xf9\x09\x7c\xc5\xdd\x1b\x4e\x6c\xcb\xf2\x3c\x0f\xb9\xb9\xb7\x80\x23\x49\x47\x64\xa3\x3c\xc8\xcd\xa6\xee\x6b\x4c\x11\x66\x9d\xdd\xbf\xc0\xf4\x7d\x0e\x0b\xc0\x85\x97\xcf\xa3\x28\xbe\x44\x01\x20\x9e\x95\x26\xc8\x0f\x27\xa1\xdf\x0f\xd5\x5b\xf1\xb5\xb3\x78\x41\x7c\x74\x78\x78\x0f\xb9\x1f\x09\xc4\x69\x02\x09\xc2\xf4\x3d\x89\xaf\x96\x15\xfb\xab\x36\x4c\x42\x36\xae\xd8\xf1\xf7\xf0\xe1\xe1\x3d\xfd\x22\x40\x58\xda\x47\x7b\xf8\xf0\x90\xa8\xc7\x38\xa6\x7d\x81\xc4\xa0\x62\xe4\x14\x63\x65\xdd\xca\x1a\xaa\xb5\x64\x77\x77\x82\x61\xd4\x4f\x39\x18\xad\x5d\x3e\x84\x3b\x40\xd5\xdb\xe3\x95\x1c\x4f\x60\x25\x75\x27\x21\x49\xa9\xa0\x02\xcb\x39\xc0\xd7\xd7\x76\xb5\xcf\xaf\x88\x42\xb7\x3c\x11\xc7\x91\xba\x0a\x75\xa5\xe2\x7e\x05\x82\x65\x3d\xb3\xac\xa1\xfa\xfb\x20\x9c\xd8\xf8\xf0\x70\xa4\x60\x84\x49\xd8\x9f\x42\x8a\x2e\xe1\xd2\x02\xd6\x85\xd8\x64\xd6\x97\xc5\x39\x22\x18\x51\xc4\x18\x00\x45\x84\x40\xe1\xd0\x66\xe1\x78\x0e\xf3\x62\x37\x16\xb0\xe0\x65\x6a\x8d\xdd\x10\xfb\xd1\x22\x40\xa9\x8d\x1d\x47\xf3\x2e\x92\xdd\x5f\xe1\xec\xf3\x36\xde\x26\x12\xdd\x45\xec\xdc\x9d\xdf\x89\x5a\xdd\x19\x82\x11\x9d\xf5\x73\xef\xc4\xdd\xd8\xaa\xf9\x36\x7c\xc1\x23\x61\x5f\x90\x90\x86\x3e\x8c\x1e\xa8\x07\xef\x61\x9a\x86\x78\xaa\x7f\xff\x0d\x12\x1c\xe2\xa9\x52\x3b\x73\x5a\x60\x44\xb0\x4a\x44\xc3\x21\xaf\x33\xca\x45\x2e\xbb\x34\xc6\x11\xfd\x8f\xc1\xf1\xb1\x03\x2e\xc5\x10\x75\x2d\xe5\xe8\xaa\xa5\x2f\x67\x53\xd7\x54\xcd\x54\xb6\xed\xba\xe7\x6a\x6f\xe4\x29\xa2\x65\xd1\x8e\xb5\xdc\xc9\xc3\x67\x03\x80\xb3\xc5\x64\x52\xef\x0a\xbc\xe6\xd2\xac\x7a\xed\x24\xc0\xcd\x63\x6a\x60\x5b\x8e\x29\xdb\x6f\x46\x62\x38\x6d\x1f\x53\xcd\x1b\xef\x1b\xe2\x38\x80\x6d\xb1\x16\x4e\x37\x87\x55\xa7\x1d\xa2\xd0\xd3\xfd\x8b\x42\x4f\x3b\x44\xa1\xa7\x2a\x0a\x7d\x8d\x93\x33\x63\x8b\x8b\x08\x92\x4e\x4e\xab\x66\xa7\x5d\x72\x5b\xe5\xca\xe0\xae\x1c\x87\xf7\xd9\x49\x2a\xd8\x04\xec\x62\x1a\x4e\x96\xdd\x92\x22\x1a\x6e\x9d\x22\xf5\xed\x51\xef\x68\x0a\xac\xbe\xe5\xb8\x34\x7e\x13\x5f\x22\xf2\x02\xa6\xc8\x76\xb6\x92\x6b\xc4\x84\xee\x50\x92\x89\xc9\x16\x86\x41\xd5\x6b\x1f\x97\x38\x89\xc2\x2e\x59\x2f\x01\xf5\x2c\x50\x58\x66\x51\x8f\x8e\x6e\xb7\x9e\xac\xef\x1d\xae\xe6\xef\xa4\x7d\x32\x03\xde\x78\x27\x57\x70\x0d\xab\xe6\x00\xb6\xe5\xd5\xbf\x93\x16\xf4\x40\x21\x45\x7d\x7f\x06\xc9\x3a\xaa\xf8\x8a\x5e\x35\x7c\x42\x77\xe1\x54\x23\x06\xde\x2b\x9f\x9a\x11\x1a\x9b\x86\xc6\x59\x98\xba\x1c\x0a\xf1\xdf\x17\x6c\xd1\x6c\xe4\xd4\xb9\xc1\x48\x60\xbf\x7b\xc1\x7c\xf7\x82\x29\xee\x74\xae\x0d\x45\xeb\x74\x6a\xdf\xf7\xfa\x37\xda\xeb\x80\x8e\x01\xae\xdb\xed\x72\xcd\x94\x8b\xc6\xf7\xcd\xfe\x7d\xb3\x6f\xde\xec\x3c\x83\x29\x3b\xd7\x1b\xf2\x76\xc8\x16\x13\x9c\x36\x75\xda\x37\xd9\x88\xcf\x9e\x1d\x8a\x1d\x12\x77\x98\x9d\x5a\xc8\x4a\x39\x7e\xfc\x38\x40\xdb\x61\x56\xf5\xdc\x5b\xf4\xbe\x88\x03\xb4\x15\x8a\x45\xc7\xd6\x68\x66\x78\x4a\xe2\x10\x37\x65\x9e\x59\x83\xe7\x42\xd7\xfd\x44\x74\x1c\xa0\xf7\x0c\x82\xee\x98\xce\x7b\xb6\x47\x35\xf6\xbb\xe3\x98\xf7\xd9\x53\xe4\x0a\x78\x3b\xe2\x95\x75\x6a\x8b\x52\x26\xc7\xf4\x2f\x43\x3a\xeb\x86\xd5\xbc\xdb\x5e\x22\xf6\x15\x0e\x78\x35\xa5\x8e\xa8\x55\xdd\x5a\x23\xf7\xf7\x05\x8c\x6a\xcd\xee\x6b\x30\x2b\xfa\xec\x27\x5a\x25\xbc\xdd\x90\xca\x3b\xb5\x45\xe9\x84\xc4\xf3\xfc\x7c\xea\x86\xda\x52\xdf\xbd\x44\xf1\x2f\x24\x9e\xab\x33\xaa\x23\xa2\xcd\xae\xdd\xd0\xad\x8f\xa9\x6d\xf0\x9d\x77\xde\x5f\x84\xab\xa3\x6a\x1b\x8c\xab\xbe\x6d\x51\x5e\x5b\x59\xbf\xb5\x7a\xbb\x50\x28\x4b\x95\xa0\xb7\xd1\x76\x5a\x50\x3e\xca\x5f\xe4\x20\x77\xa8\x0e\x15\x80\x2b\x67\x83\x6e\x44\xa6\x7b\xed\x25\x75\xbd\xd6\x30\x77\x22\x2c\xd5\xad\x2d\x4d\xf1\x1a\x7f\xfd\x62\x96\x86\x36\xa8\x95\xbd\xf6\x14\xb5\x01\xba\x7a\x37\xe9\x8c\x59\xde\xab\x2d\x62\x23\x98\xd2\x2d\xb1\x5b\xec\xba\x97\x28\x7e\x03\x53\xba\x1d\x9a\x8d\x9e\x6d\x51\xad\x93\xc5\x76\x64\x10\x46\xbf\xbd\x44\xf2\x5b\x99\x34\xb6\x2b\x8f\xd0\xfd\xda\x22\x38\x81\x01\x93\xeb\xbb\x61\x57\x75\xda\x4b\xd4\xbe\x87\xc1\xab\x0e\xbe\xec\x66\xa7\x2e\x48\xe5\xd5\x5b\xbb\xa3\x55\x74\xdb\x57\xc4\x9e\x09\xa0\xbb\xa2\x96\x77\x6b\x8b\xdc\xe6\xf0\xae\x66\xcc\xee\x67\x74\x97\x98\xfc\x87\x6e\x31\x5e\x66\xa7\x0e\x28\x8d\xa0\x8f\xfa\x30\xaa\x0d\x03\x5a\x8b\x57\xdd\x71\x5f\x91\xcb\x00\x78\x1e\xb5\x8f\x0a\x2a\x77\xec\x88\xe4\xad\x10\xbc\xd7\xc8\xdd\x0e\xb3\x6d\xd1\xda\xe8\x03\xd5\x8c\xd4\x1d\x76\x81\xda\x84\xd2\x33\x01\x6d\x27\x84\xf2\x3e\xad\xd1\x59\x76\xc1\x69\x81\x4e\xde\x65\x3f\xd1\x29\xa0\xed\x86\x4e\xd6\xa7\x35\x3a\x79\x0d\xf7\x2d\x74\xad\x66\xc7\xfd\x44\xad\xae\x5e\xdf\x15\xbf\xba\x63\x6b\x24\xf3\x72\xc6\x21\x9e\x76\x44\xb1\xee\xb6\x9f\x08\xce\xa1\xee\x86\x5f\xd5\x6f\xb3\xaf\xac\xc0\x13\x8d\xfb\xbc\xf8\x7a\xbf\xa9\x2a\x65\x33\x8a\x8b\x5d\xf7\x12\xcd\x1f\xe3\x17\x0c\x82\x17\x5d\x0a\x54\x56\x7a\xb6\xa5\x64\x1a\xf7\xbf\xa0\x73\x78\xbe\x1d\xaa\x8d\xae\x7b\x8a\xea\xff\x66\x10\x6c\x85\x6a\xdd\xb3\x03\xaa\x79\x1d\xd1\xed\x50\x6d\x74\xdd\x53\x54\x6b\xe7\xe7\xce\xa8\xd6\x3d\x3b\xa0\x3a\x81\xa9\x0f\xb7\xe4\x20\x66\xdf\x3d\x45\xf6\x7b\x0e\xc2\x56\xd8\xce\xbb\x76\x40\x77\x8a\x30\x45\xd8\x47\xdb\x21\xbc\xd8\x7b\x4f\x51\x7e\x26\x81\xd8\x0a\xe9\x66\xe7\x2e\x68\xc7\xf0\xcb\xb6\x38\xcf\xbb\xee\x2b\xc2\x19\x04\xdb\x61\x5b\xf5\xec\x80\x6a\x5e\x46\x63\x3b\x54\x1b\x5d\xf7\x14\xd5\x1f\x19\x04\x5b\xa1\x5a\xf7\xec\x80\xea\x45\x92\x6c\x7b\x4c\x1a\x5d\xf7\x14\xd5\xbf\x31\x08\xb6\x42\xb5\xee\xd9\x1a\xd5\x24\x9c\x77\xd7\xc5\xeb\x5e\xfb\x89\x60\x12\xce\xbb\x6b\xe3\x65\xaf\x4e\x88\xdd\x42\x1f\x6f\xf4\xdb\x5b\xe4\x6e\xa3\x91\xd7\xfd\xba\x20\xb8\x3b\x6a\xf7\x17\xa9\x5b\xe0\xb3\x05\x2a\x97\x11\xea\x97\xaa\xac\x7f\xc5\x34\x05\x48\xa7\xc5\xa5\x5e\x5e\x05\x03\x81\x11\x0f\xb7\xe0\xee\x26\xde\x53\xbc\x88\x22\xcf\xc3\xcf\xd0\xf0\xf3\xfd\x15\xca\xee\xaf\x68\x36\xbc\xbf\xc2\x2e\x8d\x85\xf3\x89\xed\x64\xf7\x57\x24\xfb\xcf\xcf\xc0\xca\xeb\x9d\x50\x59\xd9\xe4\xe9\xf1\x33\xaa\x43\x0b\x3a\x64\x0e\x58\x9c\xb7\x0f\x9b\x5b\x9c\xef\x1d\x55\x31\xf0\xda\x92\xd3\xe2\x7c\x33\x1d\x71\xf5\xce\x0e\xe4\xba\x10\xf1\x99\xc7\x46\xbd\xf5\x1e\x72\xc5\xec\x6c\x5a\xc9\x52\xb7\x89\x08\x2e\xa6\x7d\x7f\x41\x2e\x76\x22\x89\x07\x23\x2a\x55\xf1\x87\xba\x29\xf1\xaf\xaf\x57\x57\xc3\x63\xb0\x1c\x1e\x67\x80\x78\x94\x57\x32\xb9\xbe\xb6\xfc\xc5\x79\xe8\x5b\x32\xce\x68\x84\xc0\xea\x6a\x68\x63\xf7\xea\x01\x72\xaf\x9c\xa3\x13\xb0\x1c\x62\x77\x99\x8d\xe5\x36\x91\xad\x3d\xcf\x23\x87\x87\x50\x94\x72\x59\x5d\x0d\xe1\x68\x30\x76\xaf\xc0\x72\x88\xdc\x65\xe6\x80\xcf\xf7\x57\x91\x87\xc1\xe7\xff\x0f\xf7\x7a\xbd\xde\xaf\xbd\xfb\xab\xc8\xbd\xca\xf8\x3f\xcb\x8c\x3d\xfc\x9c\xdd\x5f\x19\xa4\xa3\x12\x5d\x8f\xcc\x94\xb3\xea\x93\x9f\xef\xaf\xf4\x33\xb5\x47\x4f\x9e\x59\x2f\xac\xa1\xf5\x3f\x16\x1b\x14\xb9\xc2\x91\xda\x46\x6e\x3a\x0b\x27\xd4\x76\x1c\x77\x0e\x13\xc6\x2b\x24\xb2\x39\x36\x53\x1b\x39\xee\x3f\xe2\x10\xdb\x56\xcf\x72\xd4\x9f\xc0\x72\xb2\xcf\x19\xcf\x75\xeb\x64\x9f\x45\xb4\x48\xa7\x35\xaf\x3d\xad\x43\x4c\x23\xa3\xc5\x4e\x6e\xf6\x0d\x60\xc1\x2f\x5d\x63\xf6\x79\x97\xbd\x04\xb5\x7d\x6e\x0a\xd6\x76\x27\x41\x6c\x1e\x93\x83\xd7\x72\x3c\x0a\x37\xa7\xf2\xa0\x10\xd7\x5a\x89\x9a\xf0\xb5\x77\x96\x21\x01\x60\x7b\x8c\x6d\xb6\x00\x51\x98\x7e\x69\x5b\x9a\x91\xb7\xdd\x49\x8c\x6d\x80\x11\xa5\xf5\xd9\x8c\x21\xd6\x6d\x7c\x46\x8a\x35\x7d\xc3\x8a\xff\x1b\xc0\xb7\x75\x52\x92\x3c\x65\x89\x2b\x82\x63\xed\x55\x31\x60\x94\xe8\xbc\x92\x3a\x0b\x1c\x0f\x0f\x97\xf6\x3d\xdb\xf2\x21\xee\xe9\x9a\x56\x3d\x1e\x2e\xeb\xe6\x43\x28\x69\xe1\xa1\x23\x06\x3b\xa8\x19\x21\x4c\xf3\x01\xec\x63\x80\xdd\x30\x75\x78\x1d\x07\x90\xf7\x3f\x95\xfd\x33\x3a\x23\xf1\x25\xaf\x0d\xfa\x8a\x90\x98\xd8\xe8\x81\xd5\x0b\xd3\x1e\x8e\x29\xfb\x36\xc3\xae\x48\xe6\x48\x67\xa8\xf7\xef\x0c\xed\xff\xde\x13\x88\x74\x2d\x27\x2b\xc8\xac\x64\xc3\x92\x85\x34\x42\x0d\x29\x66\xfc\x28\x54\x17\xa3\xca\x9e\x56\xdd\x76\x92\x4a\xd7\xec\x6b\x0d\x6e\xdb\xbd\x2d\x3b\x6c\xa6\xfd\xb8\x3f\x83\xe9\x37\xcb\x91\x3a\x42\xde\x68\x0c\x28\xbb\xfa\xd8\xc5\xb2\x8d\xc8\xb9\xbe\xb6\x91\x87\x5c\x1a\x8b\x07\x0e\x1b\x39\xbf\x36\x61\xd6\x05\x8d\xcc\xfa\x7e\xd4\x19\x7b\x18\x20\x07\xac\x32\xa7\x93\x1c\x14\xb7\x2f\x2c\xc3\xc3\xce\x75\xa0\x40\x2a\x36\x3c\xdb\x87\x78\x97\xca\x08\x10\x23\xc4\x5c\x4f\x36\x54\x93\x05\x50\x00\x14\x79\xab\x4c\xdd\x21\xcd\xa0\x6f\xd2\x10\xf4\x1d\x8d\xd0\xd8\x23\x32\xe8\x3b\x2a\x06\x7d\x9b\x3f\x41\x54\x0e\xfa\x8e\x1a\x83\xbe\xa3\xeb\xeb\xa8\x1c\xf4\x1d\x15\x83\xbe\x23\x0f\xb7\x09\xfa\xe6\xab\x20\xa1\x21\x92\x11\x5f\x5f\xe3\xcc\x01\x91\x03\xa0\x11\xf4\x1d\x95\x42\xb2\x23\x19\xf4\x5d\x78\xfe\x2c\xaa\x62\x15\xea\xa0\xef\x68\x7d\xd0\x77\xf9\x0b\xcd\x84\x11\x71\xf0\x78\xd0\x77\xb4\x55\xa1\xd1\x6a\xc6\x85\xb8\x55\xcd\xa2\xa6\xf2\x1b\x17\x16\x0f\x3f\xef\x92\x90\xc1\x4c\xc2\x90\x8a\xa3\x41\x17\xe2\x81\x40\x94\xfc\x51\xcf\xd9\x07\x40\x24\x1e\x9a\x89\x4e\x8a\x89\x0f\x64\x65\x20\x82\xfc\x78\x8a\xc3\x3f\x90\xfd\xf9\xfe\x4a\x16\xbd\xb8\x70\x2f\x20\xb1\x45\xa6\xf1\x0f\x6f\x2c\x27\xbb\xbf\x42\xd9\x67\x87\x17\x0e\xca\x32\x00\xbd\xd0\x26\x46\x7e\x04\x3d\x91\x11\x1d\x83\x9b\xa4\x46\x60\xeb\x54\x1a\x9a\xc3\x32\xc2\x37\x1d\x97\x98\x9c\x2a\xde\xc4\xa9\xa6\xd3\x68\xcb\x1a\xd2\xc5\xbe\x3b\x79\x00\xb6\x01\x7e\x2b\xa8\x77\x13\xdc\x35\xe7\xbd\x04\xb5\xed\x69\xcf\x9b\xb7\x40\xe0\x17\x84\x8f\xc2\xb4\x0f\x71\x8c\x97\xf3\x52\xf1\xcc\x9b\x1f\xfb\x61\xfa\x5c\x0d\xbc\xb9\xc8\xac\x54\xca\xb4\xa8\xd3\x7a\x52\xac\xd3\x2a\xd2\xfa\x3e\xf7\x7d\x94\xa6\x31\x79\xfd\xd2\x72\x6e\xa9\x00\xab\x46\x4f\x84\xa6\xd0\x5f\x97\x07\x6f\x2b\xdc\xbc\xe1\xa3\x32\x01\xa5\x8c\x18\xa5\x15\x36\x3f\xa1\x9e\x19\x70\x03\xeb\xc3\x22\x42\xa9\xe5\xf0\xac\xc4\x8b\x28\xba\xe7\x51\x95\x83\xda\xba\xe7\x79\xd4\xa5\x24\x9c\xdb\x2a\xb5\x31\x2e\xf6\x15\x9f\xcf\x95\xc6\xfa\x38\xc4\x87\x87\x38\xcb\x17\xc7\xf8\x3a\xe6\x15\x80\xab\x1d\x54\x21\x6d\x2c\xf2\xd3\x17\x50\xa3\xb3\xae\x20\x46\x8c\x43\x6a\x63\xb1\x3c\xa4\x76\x79\x70\x17\x91\x9f\x40\x9c\x86\xec\x3b\x7d\x1a\x77\x48\xba\x5e\xec\xb7\x6f\x8c\x40\x4f\xfe\x63\xdc\x9e\x1d\x18\x9d\x36\x33\x85\x06\xd3\xd2\xba\x5b\xd4\x1e\xda\x96\x68\x17\xab\x12\xd5\xf6\xa4\x35\xce\x9b\x94\x2c\xb0\xdf\x5e\x9b\xc4\x5b\xef\x1d\xd2\x38\x88\xad\xb1\xb6\xc0\x7e\x0b\x7a\x5b\x60\xbf\x54\x92\xae\x15\xcd\xc9\x6e\xfb\x88\x42\x0e\x6e\x17\x2c\x42\xda\xe2\x34\xbf\x44\xa8\xcc\x0a\xbf\x5d\x32\x37\x1a\xfa\x5f\xee\xa6\x1c\xaa\x1c\x79\xff\xd3\xb9\x09\x40\x5c\xbe\x6e\x1f\xe3\xc6\x7c\x6e\x0a\xde\xef\x09\xdd\xbe\x27\x74\x53\x7b\x7d\x81\x03\x44\x52\x3f\x26\x5d\xd9\xa6\xd1\x71\xcf\x18\xa7\x09\x72\xcb\x61\xf3\x2e\x1b\x99\xe7\x02\x77\xbf\x40\x8b\x3e\x3b\x89\xc6\x8d\xc0\xfe\x5e\x4a\x73\xbd\x2e\xf3\x89\x59\x19\x54\x32\xfb\xf4\xd5\x3c\x61\x73\x74\x9e\x8d\xc6\x43\xf1\xec\xb9\x4d\x1d\x97\x8d\xfc\xf3\x72\xcb\x44\x28\xa2\xf3\xdd\x25\x40\x61\xe3\x2f\x50\x3f\x0c\x76\xe3\x84\x0c\xe2\xf9\x5d\x1c\x8f\xbc\x32\xff\x3e\x9d\x8d\xa8\x9c\xd4\x38\x88\xe7\xee\x74\x11\x06\xf6\x2a\xab\x3d\x10\x39\x84\xdf\x4f\xc3\xef\xa7\xa1\xde\xd8\x49\x82\x48\x93\xbb\xf4\xba\xc3\x50\xf7\xdb\x49\x26\xbe\xe6\x2c\xcc\x01\x6e\x7b\x14\xaa\x1e\x9b\x0f\x07\x12\x7e\xb7\x7b\x7d\xb7\x7b\xed\xb7\xdd\x4b\xe8\x2b\x63\xef\xe8\xff\xbb\x5f\x53\x79\x5e\x16\x9e\x5f\x00\xbf\x5d\xe1\xf9\x86\xf3\x1b\x52\x28\xeb\xc7\x1d\xc9\x87\x5d\x6c\x65\x86\x9d\xcc\x28\x4d\x9f\xdb\xc5\x64\x9d\xf5\xb2\xc1\x8c\x7d\x55\x5b\xcc\xea\x4a\xc2\x2f\x0e\x0f\xed\xc5\xe6\x92\xf0\x71\x4d\x49\xf8\xc6\x7a\xf0\xe2\x58\x86\x14\xba\x0b\x12\xda\x0b\xce\x22\x9d\x3a\xeb\x9a\x9e\xf6\x1d\x98\xd7\x04\xe4\xb7\x6c\x5f\xf3\x37\x31\xc3\xa8\x3f\x89\x49\x07\xed\xb2\xea\xb1\x6f\x27\x0a\x89\x7e\x61\x70\xb6\x3d\x4e\x78\xf3\x8d\x67\x89\x70\x56\xed\x78\xad\x92\x9d\xf6\x0c\x81\x0a\xd4\x96\x43\x8a\xe6\x1b\x11\x78\xd9\x51\xa2\xb9\xdc\x37\xb4\x5d\xb6\x1e\xed\x72\x33\xb2\xc2\x28\xea\x07\x28\xa5\x24\xae\x2d\xe1\x44\x10\x0e\x6a\x76\x6c\xa1\xdb\x4e\xa2\x6f\x13\xd8\x74\x16\x2f\xea\x1d\x16\x9b\x77\x99\xea\xb5\x93\x00\xaf\xa1\x17\x05\x6c\x5b\xaa\x11\xed\x37\x22\xf1\xaa\x9e\xc9\x53\xb2\xa8\xb1\xdd\x5c\xed\x1f\x7f\xbf\xea\xc0\xdc\xaf\xd6\x70\x76\xe3\x3c\x4d\x8f\x60\x92\xf4\x99\x18\xda\xa4\x3a\x8b\xc2\xbe\xd1\xc4\xec\xdb\x9f\x40\x26\x04\x2d\x0b\x2e\xb4\xe2\x54\x3f\x42\xf8\x22\x24\x31\x66\x02\x51\x9d\x2b\x2d\x93\xdc\x08\x80\x37\xd7\xcf\x00\xac\x9d\x69\x9f\xbf\x7f\x7f\x78\x68\x13\xaf\xf0\x84\xbb\x10\x01\x58\x7a\x28\x81\x91\xb7\x55\x6f\xc5\x1a\x0d\xad\xe7\x49\xd2\xfb\xab\xc2\x44\x0e\xe7\xd0\x3e\x06\x7a\x7d\x1c\x9b\x5d\x38\x32\x43\xf8\x88\x5a\xe0\xd8\x8f\x31\x85\x21\x46\xa4\x1f\xa0\xf3\xc5\xb4\x0f\x03\x98\x08\x07\xa6\x1a\xfe\x96\xc6\xd1\x05\x22\x47\xea\x8f\xf4\x88\xcb\xa2\xa1\xdf\x38\xca\x9d\xd5\x56\x94\x78\x69\x9c\x7d\x0e\xa3\x2d\x96\x14\x79\x5a\x0a\x1e\x0d\xc6\xd7\xd7\xf9\xaf\xe3\xf1\x01\x72\x09\x9a\x86\x29\x45\xc4\x6e\x1a\x72\x38\x87\x21\xb6\x0c\x6c\x03\x24\x25\xf6\x4d\x5d\x2c\x36\xd5\x34\xe1\x79\xd3\x2c\x98\x24\x51\xe8\x43\x86\x10\xf1\xda\xc9\xb2\xcd\x1a\xc6\xc2\x8a\x89\xc5\xe0\xb7\x03\xfe\x9f\xda\x15\xfb\x29\x6f\x75\xc4\x27\x75\x94\x22\xba\x48\x76\x93\xad\x74\x02\xba\x8e\x32\xc5\x73\xe3\x87\x80\xb6\xaf\x17\xe6\x2e\x7d\xe6\x25\x29\x9a\x33\x31\x76\xa8\xde\xdd\xd9\x66\xcf\x93\x22\xc4\x1c\xc6\xbe\x41\x30\xfd\x69\x14\x9f\xc3\x52\x42\xc7\x2e\xec\xcd\xd0\xbb\xb3\x95\x60\xd3\x5f\xbb\x2d\xc2\x89\x7d\x6f\xc0\x1d\x7d\xf2\xa8\x00\xf6\xdd\xe7\xf9\x9c\xfe\xcc\xa7\x24\xc6\xc2\xac\x03\xb7\xa3\x4c\x78\x69\x77\x7d\x65\xbc\x0c\x71\x10\x5f\x3a\xd8\x13\x7f\x1c\xa0\x28\x45\xbd\x86\xb6\x02\x46\x07\x7b\xe2\x0f\xde\x76\x55\x6c\xeb\xa9\xb6\x29\x8a\x26\xd2\x21\xe9\x00\x7b\xec\x97\x70\xfd\x01\x70\xf3\x94\x0f\x88\x27\xe3\x7f\xf3\xf1\xe0\x33\x38\x2c\x64\x5e\x17\xec\x6d\xb2\xb4\xf3\xe1\xe6\x9c\x30\xde\xf3\x6a\xed\x0e\xc0\x23\x32\xbe\xbe\xb6\xd9\x3f\x1e\xe2\xee\xe2\x71\x82\xb0\xbd\x62\x32\xdf\x4b\x21\xf2\x99\xb4\xcf\xef\xb9\x9f\x44\x54\x04\x5b\xd8\xa5\xb8\x74\x1b\xf7\xf3\x00\x45\x88\xa2\x1e\x1b\x30\xcb\xd8\x1d\x78\x1b\xd7\x2f\x4d\x46\x75\xce\x5f\x45\xa2\x6d\x26\x32\x93\x86\xbb\xd2\xee\x24\x82\xe9\xac\x3f\x47\x69\x0a\xa7\xe5\xfb\xd9\x5a\x82\x35\x8f\x76\x3e\xc8\xd1\x82\x86\x51\x69\xc0\x7e\x9c\xb0\x99\xde\x56\x20\x8c\x81\x2e\xb2\xc6\x89\x90\x18\xc1\x97\xcd\x7b\x06\xac\xf8\x54\x7f\x15\x33\x7d\x29\xc6\x4a\x87\x24\xcb\x29\xf2\xfa\x7a\x95\x81\x95\x38\x3b\xc2\x18\xff\xc2\x25\x95\x10\xa5\x43\x98\x79\xe4\xfa\x7a\x34\x06\x91\x67\x1b\xd2\x83\x63\x13\xe7\x00\x1e\x1e\x42\xe9\x06\x77\x10\xb9\xd5\xce\x5a\x91\x48\xbd\xa7\x2b\x7d\x32\x51\x60\x99\xd3\x61\xe8\x97\x9a\xa4\x61\x69\x89\x9c\x4c\xb8\xcd\x41\x45\x19\xe5\x25\x34\xc8\x81\x64\x9b\x55\xe7\x05\x72\xc8\x7f\xf4\xd9\x6c\xc3\xbe\x0f\xa3\xe8\x1c\xfa\x5f\x3a\x51\x06\xef\x7a\x44\x50\x10\x12\xe4\xd3\xfe\x0c\xe2\x20\xfa\x2a\x9c\xbd\x3c\xe7\x73\x34\x89\x89\x7a\x5e\x10\x35\x90\xb3\x32\x49\xe3\xf0\xd0\x2e\xd2\x8a\x93\xcb\x0f\x2e\xef\x7d\x78\x58\x7a\xe0\x06\x21\xbf\x4f\x7d\x90\x60\xbe\xce\xf1\x78\x7d\x6d\xf3\x79\x22\xf2\x01\xc1\x20\xc4\x28\x4d\x6d\xc7\x10\x32\x05\x42\x6c\xc9\x6c\x5d\x1f\xd2\x82\x5e\xd9\x59\x21\x17\x06\x17\x10\xfb\xc8\xe8\x9f\x39\x4e\x51\x02\x69\xb3\xbd\x2b\xeb\x99\xa2\xb4\x2a\xa4\x8b\xf5\x3a\x8f\x63\x9a\x52\x02\x93\x23\xdd\x48\xbe\xd1\x4a\xb6\x3a\xff\xf0\x3b\x5b\x46\x3d\x0b\x38\x61\x22\xda\x36\x8b\x28\xb5\xbf\x44\xec\xd2\x29\xa2\x2f\x4c\x48\x1c\x9b\xfb\xcb\x12\x57\x7e\xe9\x4c\x6c\xb8\xb7\x70\x8e\x9c\x55\x51\x5e\x47\xa0\xb6\xd5\x81\xd8\x88\x7a\xab\x5a\x0f\xea\x9a\x1d\xe4\xf2\xa7\x96\x00\xeb\xda\xb1\x3b\xc1\x8d\x57\x78\xfd\xca\xca\x26\xb5\xeb\xda\xf5\x02\x06\xc8\x6d\x2d\x3c\x2c\x2c\x7c\xc7\x7d\xca\x97\x56\x41\x82\x1c\x9b\x14\xb7\x29\xe3\xe1\xbc\x91\xb9\x9a\xe6\x95\x40\xc6\x77\xa9\x6f\xeb\xb5\x14\xbf\x8b\x5b\xae\x0d\x0b\x9d\xc7\x01\x8a\xfa\x13\x02\xa7\x7c\x8e\x4d\x42\x70\xbf\xd2\x6e\xcd\xcb\x23\x74\x45\xef\x2a\xf8\x4e\x9d\x22\xf2\x5b\x1f\x09\xc4\xe9\x24\x26\x73\xbd\xef\xea\xc5\x65\xdb\x59\x15\x50\xd3\x10\x48\x57\x40\x8d\x10\xf5\x75\x04\x6d\x53\x60\xed\xda\x3e\x3b\x79\x2d\x6a\x1e\x33\x87\xa5\xf5\xb0\x79\x97\x76\x17\xae\x8b\x10\x5d\x72\xd9\x50\x6c\x82\xfa\xcc\x0d\x7d\xd5\x6a\x7d\xdf\xef\xd8\xe5\xd8\x4d\x29\x3b\x7c\xfb\xf5\xea\x97\x22\x82\x09\xfa\x7d\x11\x12\xc6\x40\x02\x84\x92\x39\x22\xd3\x8a\x0f\xc1\x0d\x4f\x48\xa4\x0c\x8d\x69\xd1\xa6\x49\xbc\x20\xf6\x39\x23\x2c\xa8\xa6\x60\x14\xd9\x23\xd7\x75\x89\xfb\xfb\x02\x91\xe5\x19\x8a\x10\x93\x3c\x9f\x47\x91\x6d\xa5\x3e\x09\x13\x3a\x12\xf6\x4a\x39\xe8\xd8\x72\xc6\x2a\xb3\xc8\x7f\x9d\xbd\x7b\xeb\x26\x90\xa4\x88\x09\x30\x90\xc2\x14\x69\x33\x67\x2a\x02\x67\xf5\x5c\x60\x51\xef\x65\xa0\xa7\xc8\xbe\x4d\x54\xe4\x88\x40\x98\x32\x61\xd8\xc6\x86\x61\x7d\x84\x01\x19\x3b\xde\xd3\x72\xe0\x7a\xe5\xf6\x47\xc4\x75\x6f\xc8\x6e\xbd\xd4\x90\xaa\x52\x5b\xbe\x71\x9c\x72\xb8\xf9\xe7\xdf\x30\xa3\x8c\x1e\x8d\x7b\x51\xec\x43\x8a\x7a\xff\x7e\x7f\x25\x5b\x67\xff\xfe\xd9\x31\x15\x4b\xd8\x95\xa9\xff\x6d\x0b\x2e\xe8\xac\x9f\x90\xf8\x22\x0c\x18\x2b\x94\xa7\x84\xf1\xa4\x7c\xb4\xa8\x09\xe8\x27\x9c\xca\x6c\x76\xb6\xeb\xe0\x1b\xe4\x46\x71\xfc\x65\x91\xd8\xfa\xac\xc9\x91\xe7\x70\x7b\x34\xf1\xb8\xb4\xb2\x41\x5f\xc5\x25\x47\x18\xc5\xd3\x57\x02\x99\x3f\x2f\x3f\x2e\x13\xa4\x47\xb5\x1c\x77\x12\x46\x54\xe4\x97\x2a\x46\xee\x13\x94\xc4\x69\x48\x63\xb2\x3c\xb2\x9c\xeb\x6b\x6b\x11\x2a\x06\xe0\x79\x1e\x72\x0e\x88\xc8\x81\x63\xb6\x33\xec\xda\x7a\xc5\xcc\xbc\x55\x86\x0c\x84\x0e\xb0\x9b\x22\x76\xa7\x61\x98\xe4\x0a\xc8\x0f\x1c\xb7\x42\xd0\xb0\xa9\xc3\xee\x30\xad\xd4\x9f\x75\x1b\x71\xb3\x82\xc9\x14\x8a\x52\x1a\x13\xa4\x88\xfd\xce\xb5\x9c\x0d\xaa\x25\x5a\xa7\x5a\x6a\xd4\x20\xd6\x01\x3d\x23\x68\xb2\xde\xa3\xff\x46\x1c\xe6\x2f\x04\x4d\x3e\xc6\x9a\xbf\x70\xbf\x05\x5a\x70\x52\xe0\xd8\xe2\x5a\x11\x43\x05\xf1\x5a\xce\xd5\x43\x40\xf8\xb1\x43\x32\x45\xd4\xa3\x9a\xd4\x8d\xa7\x2e\xa4\x94\x84\xe7\x0b\x8a\x52\x97\x41\x73\xc0\xdf\x2d\x48\xc4\xc3\xcc\x84\x19\x34\x93\x37\x23\x24\x3f\x95\xce\xe2\x45\x14\xfc\x45\x3d\x64\xd2\x9f\x9b\x10\x74\x81\x30\x95\x17\x76\xdb\x01\x4d\x93\xd2\xbb\x4c\xd8\xe7\xd5\x9e\xe1\xdb\x3f\x8c\x71\x21\x16\xca\x56\x93\x71\x9c\xac\xf4\xd1\x82\xe7\x43\x98\xfe\x86\xe7\x71\x10\x4e\x42\x14\xbc\x41\x13\xfa\x22\xfa\xff\xd9\xfb\xf3\xf6\xb6\x71\x2c\x51\x18\xff\xdf\x9f\x22\xe1\x93\xf1\x25\xba\x60\x3a\x99\x9e\x5f\xff\xee\x55\x0f\x93\xd7\xb1\x9d\x8a\x3b\xde\xca\x76\xba\xba\x5a\xaf\xc6\x45\x93\x90\xc4\x98\x22\x55\x24\x64\x5b\x91\x79\x3f\xfb\xfb\x60\x25\x00\x82\x5a\x4c\x65\x71\xca\x3d\xcf\x54\x2c\x00\x3c\xd8\x0f\xce\x7e\xe2\xf0\x9a\x8e\xec\x39\xaf\x3f\x18\xa4\x59\x8e\x22\x57\x99\xb9\x52\xbb\x7f\x87\x51\x9e\x06\x89\xb5\x7a\x18\x14\x3b\x74\x3b\xdf\x73\x8b\x56\x7b\x9b\xbd\xec\x36\x4d\xb2\xa0\xa9\x8b\xc3\x38\xbd\x96\x76\x1c\x5a\x9b\xb2\x69\xf4\x7c\x8a\xcf\x5d\x69\x10\x84\xbc\xdb\x61\x1c\x0e\x37\x37\x5f\x55\x3f\xee\xef\x91\x17\xe2\x3c\xf9\x80\xa6\xe4\xcf\x11\xc2\xc1\x07\x34\x25\x50\xe5\xac\x2a\xe7\xcd\xcb\xab\x24\x48\xaf\x29\x3a\x21\x98\x6c\x47\xec\xbd\xeb\xb0\xc1\x38\xe4\x3b\xb1\x56\x48\x89\x52\x26\x5e\x9d\x34\xc0\xf1\x0d\x22\xe7\xb2\x34\xd7\xc5\xd6\x9c\x5e\x3c\xd6\xaa\x54\xd7\x48\x6d\x4b\xe0\x54\xe3\x88\x78\x13\x3a\x12\x7d\xd1\x10\x53\x44\x60\xff\xf9\x2b\x05\x69\xc7\x11\xf5\xae\xac\x64\x4b\x0b\x0f\x1e\x25\xba\xb6\xd8\xbb\x92\x4f\xf9\x01\xec\xa6\xbd\x0d\xec\xa3\xcd\x4d\xf4\x4c\x5c\xf5\xac\xcf\x8d\x83\xb4\x61\x94\xe2\xe0\x95\xd2\xdb\xfd\x63\x9e\x68\x83\x8b\xfb\xaa\x4b\x26\x93\x59\x0e\x10\x3e\xa3\x07\xde\x05\x30\x57\xcb\x32\x4c\x3e\x07\x30\xf0\x5f\xd2\x6d\x89\x59\x3a\x38\x37\x07\xdc\x48\x98\x6c\xd4\xc7\x3c\xf9\x95\x29\x4a\xc9\x07\x2e\x80\x85\x9f\x7a\x97\xdc\xeb\x9e\xff\x7b\x14\x87\x79\x96\xc4\x57\xf7\xf7\x55\x15\xfb\x67\x03\xfb\xc1\xe6\x66\x51\xb9\xe7\xab\x9e\xfa\x09\xa8\x66\x64\xe9\x69\xf9\x65\xb5\xdf\xe7\x0d\xb6\x2a\xf4\xb8\x7d\x3c\x3b\xe4\x52\xdb\xd9\x00\xe1\xf7\x41\x31\xec\xb8\xc0\x7f\xed\x38\x50\xb4\xee\xcc\xc6\x01\x1e\x52\xa4\x2d\xae\x7e\x09\xaf\x82\x02\x7d\x3c\x3b\xec\x20\x8f\xff\x05\x79\x30\x81\x0e\xf2\xf8\x5f\x10\xa5\x37\x1d\xe4\xa1\xf4\xa6\x84\xdd\x5e\xf5\xa6\x63\xb9\x9c\xce\x1b\xe9\x49\xbb\xf5\x8a\x39\xd1\xba\xd8\xc7\x22\x20\xce\x4b\x98\x6e\xbd\x02\x00\xe2\x52\xdd\x29\x0d\xc9\xcc\x9b\xbb\x78\x65\x45\xbc\x86\x52\xdb\x5b\xae\x3f\xab\x1d\x04\x46\x4c\xc8\xc8\x08\x22\xec\xdd\xb6\x43\x6f\x77\x48\xb3\xdc\xbb\x88\x4b\x2d\xb7\x5e\x51\x44\xfb\x93\xef\x6c\x3b\x00\xa2\xb2\x94\xcf\x03\xd6\x1f\x3b\xf9\x26\xe9\x04\x5f\x83\x0a\xe0\x5d\x50\xe0\xb7\x59\xa6\xc4\xef\xab\xcf\x8a\x1a\xc2\x7b\x82\xac\xa5\x07\x38\x95\x34\x46\xee\x3b\x3b\x04\xa1\xa4\xe2\x41\xc1\xc1\xe0\x38\x18\xa1\x37\xa2\xa0\xa3\x3e\x87\xe4\x6a\x78\x61\x92\x15\xa8\x10\xae\xd0\xcf\x64\x81\xeb\x04\x0e\xd8\xe8\x93\x67\xcd\x47\x84\xe0\x45\x29\xde\x4f\x10\xe9\xf4\xef\x68\x73\xd3\xd9\x61\x0b\xc3\x3b\xf8\x3b\xa8\xb5\x12\x36\xa2\xa8\x74\x45\xef\x4c\x96\x04\x66\x84\xe6\xc4\x2e\x82\x39\x10\x72\xbe\x94\x10\x3b\xa9\x77\x95\x45\x53\x2f\x88\xa2\x7d\xf2\x7c\x1d\x12\x52\x33\xa5\x5a\x4c\x82\x84\x1d\x98\x03\xbb\x52\xa2\x3a\x1b\x1c\x42\x8e\x46\xd9\x0d\x6a\x04\xa2\x28\x2e\x74\x83\x42\x42\x88\xd6\x34\x98\x16\x27\x56\x3b\xfd\x11\xdf\x4c\x69\x66\xe1\x51\x4c\xc8\xe9\xe5\xfc\x45\x14\x5f\x75\xa4\x1e\x6a\xa6\x4e\xb7\xed\xff\x96\xd8\x7a\x6a\x3e\x49\x56\xf2\x28\x18\xbb\x06\xcb\xa0\x30\x29\xa9\xce\xe3\xb8\xbf\x33\xd6\xe6\xc5\x0c\x97\x5b\xfd\xa2\xf7\x3b\xf0\x30\xba\xc3\xbb\x59\x8a\xa9\x4d\x23\xd8\xd8\xcd\x22\x74\x44\xa7\xe0\x8d\xa8\xc9\xe3\xa1\x3f\xe3\xc4\x7e\x47\x27\x0c\x39\x0f\x22\x3c\xe7\x39\x27\xf2\x29\xb8\x09\x18\x13\xe5\x88\xc8\x59\xcc\x8d\xbe\xeb\xa8\xab\xe3\x8c\x68\xb6\x68\xb5\xb9\xfa\xc3\xfb\x54\x38\x3d\x1e\xaa\x71\xdb\x01\x2c\xb8\x96\x93\x4f\xae\xa6\x4b\x41\xa5\x0d\xd9\x3f\x76\x48\xd3\x60\x94\x2c\x05\x89\x36\x64\xff\xd8\x21\xdd\x2d\x09\xe8\x8e\xc2\xb9\xab\x83\x61\x47\xce\xc6\x05\x38\xa1\x78\xe8\x3a\xc6\xe1\x02\xf2\x1e\x48\x92\xf1\x6d\x9c\x46\x71\x3a\x28\x3a\x5d\xaa\xa3\x77\x7a\xe5\x83\xfc\x8a\x14\x05\x52\xa3\x6f\xd1\x4c\xa5\xdb\x1f\x4c\xaf\x17\xf4\x48\xd6\x24\xed\xd5\x67\x28\xbd\xf9\xe2\xdc\x88\x32\x88\x1a\x8a\xa6\x6c\x2b\x4a\x6f\x80\xeb\xec\x9e\x1c\x9f\x7f\x3c\xbc\xfc\x78\x70\xb9\x77\x70\xbe\xf3\xf6\x70\xff\x72\xe7\x78\xf7\xfd\xc9\xd9\xe5\xf9\xfe\xe1\xfe\xee\xc5\xc1\xc9\xb1\x03\x84\xf2\x76\x01\xee\x86\xd4\x72\xa6\xc2\xdf\x81\x4f\x4f\x0d\xc7\x9a\x84\x43\x65\x28\xd5\x75\x86\x78\x94\x38\xa0\xfb\xb2\x07\x13\xbf\x1e\x25\x82\x61\x7a\x89\x81\xdf\x50\x4f\x80\x0a\x77\x43\x04\x4a\x58\xf8\x06\xbe\x0f\x18\xef\x4d\xb0\xa2\xc7\x19\xe7\xc2\x75\xe2\x82\xf1\xce\xe6\x1c\xb0\x9f\xb8\x48\xc5\xdd\x98\x02\x51\x48\xe0\xab\x09\xc6\x59\xba\xb9\xf9\x9f\x7e\xf5\x4b\x21\x53\x24\xed\x49\xb9\x19\x25\x14\x86\x8b\x36\x37\x31\xe1\x80\x15\x6a\x93\xb4\x21\xc3\x06\x65\x45\x31\x0c\xea\x2d\xc0\x06\x25\x17\x34\xd0\x7e\x0a\x31\xc7\xfa\xb5\xe6\xa0\x2c\x61\xbc\xfe\x75\xa8\xc6\xa8\xcd\xf1\xb9\xec\x08\x73\x03\x01\xb5\xe9\x00\xe1\x73\x71\xe0\x5c\x21\xc7\x78\xfe\x6a\x03\xe7\xd3\x59\xee\x3b\x71\xb1\x9b\x25\x49\x30\x2e\x50\xe4\xc4\xe9\xb3\x74\x73\xf3\x79\xea\x29\x85\x84\x09\xac\x62\x59\x8b\x98\xb8\xaf\x4a\xa6\x1d\x43\x60\x26\xa8\xc7\xbc\x74\xc1\xe6\x66\xda\xb4\xc6\xf4\xb5\xcd\x9b\x5e\xdb\x51\x36\x29\x10\x21\xfd\x1d\x58\x00\x38\xbf\xd9\x64\xec\xc0\xb8\xe1\x59\xb6\xc8\x16\xf3\x39\xef\xb3\xb5\xdb\xe6\x96\xbc\xe7\xf9\x6f\xf9\xc3\x51\x13\x9e\x8c\x99\xd1\x7a\x31\x5f\x5b\x44\xda\xd0\x24\x67\x0d\xfa\x22\x51\x3a\x1a\x07\x78\x7b\x80\xb0\xb0\x84\x17\xfd\xce\x69\x92\xc4\x57\x95\xa2\x98\x15\x45\x45\xb2\x55\xd3\x73\x54\xee\x39\xeb\xc1\x8d\x89\xa9\x63\x54\xd7\xa2\x86\x24\x9f\x37\xe9\x0d\x6d\xca\x40\x7e\xab\xc8\xb9\xa7\x66\x01\xb9\xaa\x70\xa2\x9d\x2b\x18\x8b\xdb\xe1\x90\x76\x41\xd5\x2e\x01\x5e\x30\xc1\x43\x94\x62\x42\x2a\xa1\x88\xd2\xef\xc5\xc6\x73\xdd\xd7\x36\x25\xf4\xb9\xa1\x9e\x4c\x01\x4c\xbc\xac\xdf\x77\x1d\x72\x48\x2f\xa4\x68\x83\x9c\xb7\x72\x23\xf1\xc8\x83\x6b\xa9\x79\xb0\x10\xee\x36\x48\xae\xa5\x18\xd4\x7a\x8c\x92\xf8\x4a\x31\x36\xa4\xc6\x21\xdf\x58\xa1\x6c\x8e\x59\xdf\x6e\x86\xaf\x1a\x15\xc5\x84\x59\xa0\xba\xca\x67\x31\xb9\xea\x12\x0c\x50\xfe\xf6\x86\x41\x71\x72\x9b\xca\xf1\x06\x62\xa3\xd8\x5b\x09\x58\xfc\x2e\x5d\x80\xfc\x53\xb0\x94\x56\x5f\xf0\xad\xc5\x76\xbf\x18\xd1\xd4\x94\xdc\xb6\x26\x48\xb6\xea\x41\x6a\x97\xfa\xae\xb9\x9d\xb4\x4a\xa4\xf1\x6f\x85\xd1\xf3\x97\xd2\x00\x33\x69\x63\x20\xfd\xa4\xe4\xb9\x9e\x15\x38\xc0\x71\xf8\x8c\x39\x2d\x29\x8c\x10\xe1\xb0\x86\x71\x61\xe0\x44\xdd\xa5\x8a\x9a\xcc\x41\x0c\xf3\x0d\x9b\x73\x55\xee\x3b\x4d\xeb\xe8\x62\xdf\x89\x47\x63\x46\xb1\xb0\x03\x0a\xe2\xd4\x65\x5c\x35\x78\x33\xc7\xa3\x91\x4d\x32\x37\x7c\x90\x4c\x0f\x25\xc5\x27\xa9\x04\x1d\xd4\xc5\x3d\x3f\x67\x98\x5e\xec\x01\x65\x7c\x52\xef\x90\xff\x64\x95\xa3\x20\x1c\xc6\x29\xe2\x75\xef\xce\x8f\x5c\xed\x1b\xfe\x58\x44\x59\xe8\xcf\xf8\xf2\xfd\x33\x46\xb7\x9d\x99\xf9\xb6\x75\x28\xa5\xe9\xbf\x9e\x2d\x03\x15\x62\x50\x42\xcb\x33\x45\xa5\x29\x0d\x10\xca\xb2\x2c\x6f\xe2\x22\xd6\xf8\x3f\xda\x54\x62\x03\x98\x1a\x05\x76\xd1\x0e\x0c\xfc\xa0\x98\xa6\x21\xe9\xcc\x0d\x6e\x83\x18\x53\xac\x5a\x20\x8c\x13\x14\x01\x17\x40\xd2\xe9\x69\x9e\x8d\xe2\x02\xb9\xc8\x7f\x5d\x20\x7c\x11\x8f\x50\x36\xc1\x2e\x72\x31\x80\x2f\x01\x00\x30\xf1\x91\xff\x9a\x89\x03\x10\x61\x2f\xb8\x6a\x88\xff\xa2\x86\x90\x15\x52\xdc\xb9\xa2\x81\x88\x19\xf1\x49\x70\x07\xa1\x4a\x0c\xb1\x97\x17\x84\x38\xbe\x41\xd5\x47\x40\x32\xe8\x8b\x5a\x7a\x04\xb7\xbb\x01\x4c\xc0\x06\x1d\xc5\xbc\x9e\xdf\x28\xb1\x92\x3d\x6e\xdd\x05\x3a\x48\xb8\xa7\x3a\xa4\xa5\xb6\x59\x9e\x90\x68\xbd\x71\x79\xa8\x4c\x2a\xee\xf1\x53\xf1\x97\x54\x6b\x6d\xff\xbf\xdb\x2f\xb6\xa1\xe3\x00\xed\x68\x79\xe4\xba\x21\x0a\xa5\x01\xb0\x2f\x82\x6d\x72\x80\x2c\xc2\x26\x03\x52\x7d\xc6\xe4\x6f\x2e\x80\xc2\xd0\x89\xfc\x72\x9c\x9f\x64\x33\x50\x2d\x03\x60\xd2\x37\x4d\x14\x8f\x94\xfa\xb2\x5c\x68\x7c\x31\x17\xc3\xad\xc0\x7b\xa9\x61\xee\xd8\x23\x24\x64\x72\x04\xe3\xa3\xc5\x17\x3f\x5d\xfd\xe2\xa7\x10\xad\xcd\xc5\x35\xf7\x67\xe5\xdf\xeb\x5c\xdd\xe9\xce\xd9\xc5\x01\xe1\xe1\xce\x2f\xf7\x8f\x09\x73\xb7\xe7\x90\x57\x29\xf7\xc6\x41\x8e\xe9\x92\xfb\xdb\xff\x73\xe9\x76\x83\xad\xcf\x3b\x5b\xff\x7e\xb9\xf5\x7f\x7a\xca\xdf\x5b\xbd\xd9\x4b\xf8\xb7\xff\x2c\x95\x5a\xf0\x06\xbc\xd8\xe6\x5a\x4f\xad\xa3\xe3\xf3\xd3\x9d\xdd\x7d\xb3\x97\x94\x9a\xd3\xfb\xdb\xff\xf3\x7f\x57\xed\x82\x4f\x2b\xf0\xd9\x69\x4d\xac\x31\x10\xd5\x43\x2b\xb0\x0a\x3b\x7f\xef\xb2\xbc\xba\x5c\x2e\xe3\x6c\x52\x71\x65\x2e\xc7\x39\xba\x89\xb3\x49\xf1\xf1\xec\x90\x12\x7a\xb8\x56\x73\x4a\x0e\x2a\x27\xe9\xea\x35\x7a\xc7\xf3\x90\x59\x47\x11\x7c\x51\xc9\x46\x3f\x47\xc5\xd0\x05\x65\xe5\xb0\x2b\x45\xa4\x0c\x0e\xb7\x5e\xdc\xdc\xd4\x7e\xba\x02\xc5\xab\x63\xf7\x53\xb8\x60\x6c\x2a\x69\x41\x1f\xda\x16\x8f\x2a\x7d\x4e\xc1\x2c\xe5\xfe\xc7\xc6\x23\x09\xeb\x2f\xaa\x03\xa0\x68\xcc\x05\xea\x0e\xc5\x3a\xa9\x0c\x05\xcc\x04\xd2\x90\x4a\x9a\x45\x29\x19\xb6\x51\x14\x12\x02\x34\x61\xd2\xec\x73\xea\x1d\x01\x9f\xbf\xaa\xaa\xab\xfb\x3e\x2b\x81\xb1\x1b\xbe\x21\x3d\x44\xa0\xfb\xb2\xd7\x7d\xd5\x83\x55\x38\x61\x3f\xf1\xae\xe2\x94\xe9\xd3\x94\x77\x54\xfa\xae\xe3\x37\x0d\x1b\x6c\x11\x5b\x76\x30\x14\xe1\x88\x2b\x00\xf9\x22\x00\x34\xb8\x72\x27\x97\x47\x5e\x8c\xc1\x10\x6f\xd2\x55\xec\x12\x36\xb7\xe7\x80\x0d\x16\xe7\xd3\x0f\x36\x37\x19\xbe\xe7\x4b\xec\x07\x56\xc1\x02\x28\x09\xb9\x7b\x8e\xd9\xa6\xeb\xf4\x86\xf6\xeb\xfe\x5e\xf6\xae\x10\x12\x0a\x49\xa0\xbe\xfa\xea\x8f\x86\x0f\x87\x71\x81\xb3\x7c\x0a\xad\x95\x75\xce\x7b\x9c\x8d\xe9\xe9\x75\x94\x0d\x12\xb8\x40\xef\x8f\x9d\x72\x1e\xef\xa6\x7a\x75\xf8\x74\xfa\x59\x3e\x0a\x68\x11\x06\x1b\x68\x73\x93\x3f\x6c\xbe\x9f\xf2\xe7\x51\xbf\x33\xe6\x45\x22\x0b\x89\xf9\xeb\x14\xc5\xc5\x98\x0a\x21\x1c\xfe\x80\x52\x21\x03\x47\x33\x79\x36\x52\x95\x8c\xbe\x58\x86\xda\xe3\x09\xb5\x47\x59\xfd\x21\xdf\xe5\xa0\x7a\x93\xc5\x66\xaa\x3f\x8c\x76\x48\xfe\x26\x77\x97\xf9\xf4\xbb\xbf\xff\x0f\x7f\xa2\xf9\x37\xa5\xfb\xc6\xdf\xbe\x7f\x01\x7e\x07\xe4\x9b\xb9\x5f\x88\x47\x5d\xfb\xa2\xb4\x61\x53\x43\x29\x2e\xae\x9f\x3f\x2b\x21\xd2\x70\x30\x5b\x1c\xaf\x18\x27\x31\xa6\xf2\x60\x61\x91\x22\x88\x50\x82\x7a\xff\xfb\xaf\x8a\x46\x53\x8f\xbd\x21\x2e\x6d\x5e\x05\xb7\x48\x61\x37\x87\x01\x35\x13\x62\x87\x22\xf1\x03\x0f\xdd\xa1\x90\x30\xd9\x02\x97\xb1\x9b\x91\x6c\x6e\x32\x7f\x0f\xfe\x7a\x22\x38\x22\xdb\xd8\x49\xba\xaf\x7a\x25\xc4\x34\x92\x46\x5a\x42\x6d\x0e\x00\x3e\x17\x8a\x57\xf2\xd8\x56\x92\xec\x52\xb4\x38\x0d\xf2\x60\x54\xe8\xba\x36\x51\x77\x7f\x2f\xc3\x87\x74\x1d\xf9\xc0\x3a\xd0\x61\xcf\xa0\xd3\x93\xd3\xc0\x34\x4b\x01\x67\x3a\x1d\xa7\x16\x49\x17\x75\xd3\x1e\x75\x44\x24\x7f\x78\x74\xdc\x00\xe2\x6e\x4a\x99\x85\x92\xe0\x39\x4e\x64\x1b\x81\x04\x55\x42\x4a\xc7\xe4\x43\xaa\xc3\x73\x11\x63\xdb\x64\x47\xb9\x17\x85\x9b\x9b\xdc\x99\x85\xfc\x80\x4a\x15\x1b\xb6\xfa\x90\x3b\xff\xd7\xf9\x49\xfc\x00\x6a\x53\x39\x5b\x83\xb8\x70\x2e\xc9\x07\xf2\xb7\x12\x12\x44\x89\xe7\x2e\x50\x18\xfb\xb5\x14\x73\x00\x78\x50\xad\xe7\x2f\x37\x6a\xe6\x62\x08\xe3\x38\x1d\x14\x94\x96\xee\x58\x12\x97\x44\x59\x58\x78\x0e\xe8\x04\xfe\xf3\x57\x25\x39\x82\x4a\x64\x79\x96\xba\x86\x69\x4e\x8f\x83\x91\xf5\x43\x72\xae\xbc\x49\xca\xf2\x72\xd5\x29\xa1\xbd\x9d\x8b\x9d\xdd\xfd\xe3\x8b\xfd\xb3\xcb\xd3\xb3\x83\xa3\x9d\xb3\xdf\x1c\x9a\xa1\x42\x83\x14\x3a\x40\x08\x62\x7f\x27\x07\x39\x4b\x50\x67\x7b\x9b\x10\xd4\xcf\xfe\xdb\x7f\xf6\x62\x46\xb5\x5c\xcc\xf0\x2d\xee\x4f\xdd\x14\x94\xbf\x6f\x88\x03\xaf\x8e\xd7\x60\x39\xe8\xaa\x14\x54\xe6\x5a\xf8\x89\x37\x20\x48\x35\xa0\xa1\xb5\x3c\xcf\x4b\xe1\x8c\x3e\x28\xec\x08\x77\x66\x65\x09\xb8\x78\x35\x06\xb3\xd4\xd7\xf3\x8a\x25\x5e\x96\x44\xe7\x9c\x90\x20\xed\x81\x92\x62\x83\x5c\x5e\x99\xa1\x4c\x0d\x94\x83\x81\x9a\x71\xb0\xdb\x03\x90\xfc\xbf\x65\x28\x95\x31\x80\x8e\xad\x0b\x2a\xed\x2b\x0d\x8e\x60\xb6\xea\x2e\x91\x4d\x32\xf2\xdd\xc8\x45\x96\x12\xf0\x67\xbc\xcc\x8b\xd3\x7e\xe6\x3a\x56\xcb\xa0\xce\x33\xe7\x27\x99\xcd\xe6\xd5\x4b\x00\xe0\xf3\x2a\x2c\xb7\x81\xa6\x34\x5c\x20\xf0\x04\x98\x47\x97\x22\x26\x71\xaf\x3d\x3d\xbe\x2f\xb9\x4a\xe3\x09\x1a\x4f\x8a\xa1\x03\x11\x80\x9c\xef\x15\xba\x35\x17\x6c\x48\x3d\xb9\x75\x1c\x55\x4a\xc8\x22\x1b\x21\x97\xc7\x75\xf1\x5f\xe7\x5d\xd4\x7b\xee\xfb\x18\x70\x82\xd3\xd2\xd5\x32\xf7\x51\x47\x3d\x29\x28\x4b\xf1\x22\xeb\x86\x1d\x72\x91\x0b\x14\xe4\xe1\xf0\xfe\xde\x71\xb8\xe5\x86\xe3\x6c\x48\x7c\xa2\x37\x1d\x06\xc5\x90\x59\x51\xd4\x8a\xa5\x59\x05\x00\x55\x66\xbd\x66\x36\xc0\xfa\x32\xb3\x4c\x11\x2f\x66\xb8\xfc\xbd\xac\x0e\x22\x65\x02\xc9\x1b\x41\x0d\x1a\xa8\x41\x80\xc1\x58\xb7\x7f\xc3\x41\xc7\xd9\x96\x7c\x3c\x6f\xd1\x7d\xd9\xdb\xdc\x54\x8a\x79\x07\xb4\xd8\x5d\x16\x2e\x4c\x55\x33\x8b\xea\xfd\xdd\x20\x88\x57\xbb\xaf\xd4\x3f\x82\xdf\x59\xba\xc6\x22\x74\x13\xf6\x5d\x6c\xa0\x04\xcc\x69\x1b\xf5\xb9\x03\xaa\x95\xe9\xdb\x2c\x4b\x50\x40\x8e\xb5\x4c\x56\x88\xd8\xc7\xf7\xf7\x88\x62\x82\x94\x0e\x26\x44\xe4\x71\xea\xbe\x82\x2f\x7b\x02\x89\x60\x82\x22\xfd\x54\x79\x70\xf5\xed\x14\xf4\x8c\x4d\x02\x51\x86\xc3\x20\x1d\x20\xbe\x6b\x9c\xba\x65\x02\x09\xdd\x12\x51\xa3\x1c\x37\x70\x9d\x52\x84\xd4\x16\x91\x53\x8a\x62\xba\xf2\x46\xd0\xb8\xbc\x05\x3b\xd6\xc2\x44\xb1\xea\x5a\xde\x97\x92\xef\x45\x43\x33\x49\x44\x22\x50\x66\xe9\xc7\x71\x14\x60\xbd\x29\xe7\xf8\x7c\x54\x6a\x3d\xcb\x0d\xa5\xa6\x4b\x1d\x0c\x27\x93\x38\xea\x38\x77\xfc\x7f\x5b\xf4\x3f\xff\x45\xfe\x33\x15\x3f\xc5\xff\x9c\x4a\xf4\xd3\xbd\x9b\xf6\xb6\x07\x50\x35\xdd\x7d\xf5\xb7\xbf\x1c\x05\x78\xe8\xe5\x41\x1a\x65\x23\x17\xdc\xbf\xe4\x57\xc9\x75\xee\xe8\x1b\xfa\x06\x77\xfe\xba\x89\xef\xff\x37\xa8\x14\x74\xaf\xfe\x06\x4a\x50\x6e\xa8\xab\xda\x45\x3f\x39\xf4\xbd\x70\x7a\x6e\x0a\x09\x0d\x06\x31\x50\xa8\x78\x97\xb2\x9e\xa8\x93\x96\xa0\xd4\x0d\x5c\xac\xac\x81\x55\x3b\x66\xe5\x0e\xca\x72\x09\xc9\xd0\x92\x26\x2b\x8f\x44\xf2\x83\xa4\x74\xd8\x47\xde\xbb\xf3\x23\x21\x0a\x62\x3f\x18\xa3\xaf\xb3\xee\xa9\xef\x52\xa1\x6d\x09\xc0\x0c\x73\xbe\x99\x2f\xa5\x64\x9a\x13\xbe\xce\x82\x1b\x92\x0c\x22\x2a\xc9\xd9\x66\xcc\x23\x5f\x22\xda\x80\x02\x10\xc6\xbf\x75\x71\x61\xaa\x83\x15\x07\xa0\xfa\xb4\x94\x77\x45\x30\xa6\xea\xa3\x57\xf5\x69\x28\x3f\x37\x94\xe9\xd7\xe7\x5a\xcd\x4f\x0c\x84\x49\x1d\xe4\xac\xe9\xc3\xa3\x97\xb1\x44\x67\x8e\xe1\xee\xd5\x5a\x60\x52\x0d\xc5\x26\x2c\x71\x96\x95\x55\x3c\x90\xd4\x07\x33\x9d\x8c\x02\xb3\xa6\x9b\xc2\x6f\x70\xb1\x7d\xc5\x10\xb8\x77\xc7\x8f\xc6\x17\x4c\xfd\x56\x15\xcc\x08\x1a\xe3\x3d\x4b\xad\x5c\xc7\xe9\x07\x49\x81\x1c\x48\x47\x52\x74\x66\x38\x9f\xa0\xce\x2c\x4b\x3b\xb3\x8b\x93\x9f\x7f\x3e\xdc\xef\x74\x67\xdc\xec\x8f\xb7\x2c\x7b\xf0\xdd\xce\xe1\xb9\xad\xa2\x2c\x21\xfd\xb3\xe1\x7b\x02\x9a\x7c\x7e\x71\xf6\xd1\x52\x5c\x96\x0b\x97\xed\x26\x48\x62\x82\xc6\xbf\xc1\xba\x31\x57\x3d\xb9\x68\x71\x44\x00\x90\x59\x9e\xed\x9f\xef\x5f\x28\xb3\xa1\x35\x65\xaf\x94\x0b\x4a\x0a\xd8\x82\x9c\x7f\xdc\xdd\xdd\x3f\x3f\x57\x1a\x17\x13\x9a\x44\x87\x2c\xca\xfe\xd9\xd9\xc9\x99\x52\x45\xd5\x26\x6c\x4d\x79\xab\x0e\xe1\xfb\x49\x29\xe1\x28\x9a\x96\x2a\xbe\x8b\xd3\x62\x7b\x9c\x25\x71\x38\xdd\x0e\x8a\xad\x51\x90\x4e\x9b\xe4\xf3\x2c\x92\xc0\x28\x4e\xe3\x51\xfc\x19\x1d\x65\x11\x4a\x16\xc9\xeb\x85\x3e\x5d\xa5\x6d\x18\x71\xcd\x4b\x06\x08\x2b\xaa\xd9\xf3\xe9\xe8\x2a\x4b\x0a\xf6\x95\xbc\x77\xd6\x36\x04\x0c\xa6\xac\x78\x2e\xa5\x17\x95\x1d\x8c\xbc\x93\x56\x10\x7b\x88\x19\xfc\x71\xff\x09\x25\x20\x68\x09\x08\x91\x46\x51\x1c\xb7\x54\x26\x6c\xb9\xe0\x89\xd2\x52\x09\x66\xf0\x58\xde\x24\x4d\x1b\x11\xf8\x75\x55\x31\x27\x2a\xd0\xfd\x7d\xb7\xc7\xe8\x43\xb7\x2e\xd3\x0f\xfc\x19\x46\xa3\x71\x42\x1f\x0a\x48\x78\xbb\x0e\xea\xa6\xbd\xd2\x22\x21\xc9\x09\x45\x1c\xd0\x80\x1e\xdd\xbc\x07\x60\x50\x02\x50\x5a\xcd\xc9\x1a\xfb\xe4\x40\x35\x6a\x80\x2b\xfa\xb1\xff\xea\xef\xf8\xbf\xcd\x24\xdd\x7f\xc7\x3f\xfd\xc4\x4e\x4d\xe0\x33\x31\x53\xe5\x8d\x8c\x7b\x6f\xd4\x1f\x9d\x59\xb9\x81\xff\xe3\x3f\xdf\xa4\xfc\x08\xba\x01\xe1\x1d\x6d\x81\x64\xc9\x29\xa2\xcb\x14\x74\x71\x8f\x26\x47\x5a\x70\x9a\x0a\xeb\xfe\xd3\x27\x03\x2e\xfa\xd4\x0d\x00\xe8\x28\x63\x6a\x18\x50\xf3\x01\x5b\x74\xd2\x03\x1a\x12\x14\xc8\xc3\x8c\x4a\xb7\xda\x52\xc7\x29\x21\xcd\xff\xa4\xdb\xef\xe9\x47\xe4\x19\xaa\xdf\x34\x64\x04\x9e\xe7\xb9\xab\x04\x60\x07\x10\x82\xbd\x04\x8d\xe7\x0a\xfb\xb3\x6e\x2a\x22\xd4\xf3\x8f\xc9\xe9\x72\x40\xfd\x68\xa9\x8d\x68\xf8\x5d\x4c\x0e\x99\x5e\x0a\x20\xa6\xb3\x88\x2d\xc7\x6d\xee\xf8\x1d\x23\x67\x99\x3a\x07\x02\x91\x5a\xae\x64\xbc\xc5\x11\x41\x9b\x3c\x6a\xab\x3b\xcb\x51\x31\xce\xd2\xe8\x5d\x96\xff\x32\x41\xf9\xf4\x0c\x85\x59\x1e\x75\xec\xc1\xbf\x15\xd3\x31\x1b\xba\xaa\x12\xa5\xa6\xde\x29\x41\xca\x31\x2a\xfc\x44\xf9\x01\x04\x63\x16\xb8\xa9\xc7\xcd\x9c\x0e\x22\x94\xe2\x98\x9c\x33\xe9\x26\xbf\x15\xb3\xb2\xa9\x03\x1d\xc5\x18\xca\x81\xce\x5e\x80\x83\x10\xa5\x18\xe5\x85\x03\x34\x68\xc7\x59\xa4\x81\x4a\xb3\x48\x83\x43\xea\x6b\x40\x08\x53\x8b\xe9\x98\xc9\xe1\xe2\x86\x09\xda\x72\x3c\x78\x21\x74\x07\xd5\x2a\x4d\x19\x4c\x1b\x11\x06\x52\x17\x0d\xd9\x16\x0d\xad\x75\xd1\xd0\xc3\x17\x8d\x3e\x35\xa5\x5c\xb4\x02\xe5\xdc\xb8\x59\x9f\xb6\x26\x3b\xb2\xd9\x1c\x6e\x48\x33\xc7\xda\xc4\xfc\xc2\xcd\xe5\x1a\xac\x3a\x4b\x98\x1b\x73\x33\xa0\x2d\x39\x51\x58\x7d\xe3\xeb\xc6\x71\xb1\x02\x0e\x00\x98\xeb\xd9\xa4\x1b\xd2\x6a\x72\x7a\x25\xcf\x12\xb4\x16\x6a\x65\x5d\x96\xdd\x5f\x11\x2d\x9c\x65\x89\x74\x39\xa7\x6e\x37\xb4\xe0\xfe\x9e\x3c\x7b\xd5\xef\x37\xdd\x5e\x87\xff\xf9\x5d\xdd\x4f\x63\xf4\xc8\x18\x3d\xaa\x46\xcf\xff\xfc\x02\x17\x85\x8d\xc1\x74\x10\xa7\xa5\xb5\x73\xd8\x60\xc2\xcb\xcf\x61\x91\x64\x66\x28\x91\xab\x24\x0b\xaf\xb7\x68\x85\xde\xea\xbb\x8c\xe1\x30\x77\x76\xd4\x68\x80\xce\x27\x4e\x07\x3c\x0d\xad\x35\x70\x4a\x9c\xf6\x99\x2a\xfc\xeb\x5e\xb0\xcb\x3e\x42\xd1\x55\x10\x5e\x77\xec\xf1\xdf\x45\xb5\x03\xa0\xd0\x3d\x35\xb4\x94\xaa\x29\x40\x59\xb6\x86\x88\x73\xc6\x79\xd2\xe4\xe7\x72\x2c\x5c\xad\xb0\xc1\x3a\xa2\xfe\xf6\x54\xd2\x20\x07\x03\x67\xe8\x0e\x85\x13\xac\x1c\x60\x9a\xab\x41\x1c\xe1\x82\x5a\x86\x49\x05\x0a\x93\x11\x7b\x0e\xd8\x28\xbc\x71\x36\x96\xc9\x42\x63\x76\x80\x8b\x38\x1d\x4c\x92\x20\x8f\x3f\x23\xe0\xf2\x16\xf2\xa8\x23\x8f\x77\xc5\x7a\x80\x31\xb5\x50\x67\x01\x64\x76\xe9\x22\x76\x2c\x97\x94\xce\x87\xb6\x61\x42\x50\x43\x8a\x01\x95\x2a\x75\xa1\xb4\xe5\xb0\x4e\x40\x8e\x8a\x8e\x12\x5a\x4c\xcc\xb8\x98\xd9\x73\x80\xe8\x67\x8f\x6a\x40\x57\xeb\x87\x2b\x1e\x79\x3f\x5c\xfb\x48\xfd\x40\xa5\xd3\x14\xfb\x58\x18\xfd\x6c\xf0\x23\xd7\x69\x14\xe4\x68\x23\xe3\x6c\x75\xf3\x0a\x22\xde\xc2\x5c\xa4\x7a\x0b\x73\x7a\x5a\x0b\x7e\xe3\x3a\x33\x66\x67\x63\xbb\xca\x0b\xb6\x2a\x9c\xbf\xc9\xe2\x4c\xca\x63\xe2\x02\xff\x35\x5f\x9a\x71\xe6\x8d\x51\x5e\xc4\x05\x96\x96\x7f\xb2\x56\x39\x40\x7a\x8f\x00\x3a\xac\x4b\x07\x72\x6d\x24\xb3\xba\xa9\x96\x8b\x67\x26\x80\x93\xc6\xa5\x69\x3f\x32\xdb\x5a\x00\xe8\xb0\x2e\x2d\x23\xe3\xed\xf9\xc8\xa2\xc6\x2d\x59\x66\x64\x4c\x3c\xde\x30\x30\xb6\xdb\xb5\x81\xb1\x1e\x2d\x03\xe3\xed\xc5\x92\x15\xcd\xa3\xa2\x7d\xf7\xe3\x34\x7a\x3b\x3d\x4f\x26\x03\x77\x16\x85\x3a\x4f\xa5\xd1\x64\x69\x51\x67\xb8\x98\x25\x04\x80\xd2\x24\x40\x6f\x72\x2a\xad\x26\x00\x8c\x23\xbd\x4e\xcb\xec\xcc\x27\x8e\xf8\x3c\x04\x66\x95\x5b\x36\xa3\x49\x9b\x3b\xb3\xea\xa3\x66\x60\xf0\x1c\x85\x39\xc2\x66\x13\x51\xea\x00\x28\x47\xde\x3c\xa1\xd3\x85\x13\x2a\x99\x80\x22\x1b\x64\x13\xeb\x7b\xa9\xcd\x83\x6d\x96\xeb\xd0\x69\x38\xe4\x8e\x25\x59\xaa\x6f\x0c\xd5\x9b\x6e\xac\x70\x68\x28\x08\x79\x66\x90\xff\xda\xc5\x42\x7a\xdf\x7c\x6e\xc4\x09\xb3\x0c\xb8\xa4\x17\x91\x00\x75\xa8\x16\x66\x09\x7a\x86\x90\xc7\xc5\x36\x8d\xab\x33\x42\x78\x98\x45\xcd\xd1\x90\x69\x5b\x07\x3a\xd4\xd7\x77\x2b\x9a\xe3\x2e\xc2\x63\xc9\x42\x25\x67\x14\x8c\xe0\x08\x8e\x61\x1f\x5e\xc1\x21\xbc\x81\x53\x38\x80\x27\xf0\x12\x9e\xc2\x5b\xb8\x0f\xaf\xe1\x1d\xfc\x04\x77\xe1\x31\x3c\x87\x9f\xe1\x11\xdc\x83\x17\xf0\x10\xee\xc0\x33\x78\x50\x85\x11\x7d\xfb\x98\x32\x19\x7d\x7c\xca\x64\xf4\xc3\x66\x32\x42\xde\xf9\xe1\xc7\x9f\x2f\x3f\xec\xff\xe6\x23\x8f\x5b\x14\xd1\x5f\x52\x23\xa0\x16\x3a\x93\x38\x72\x36\x94\x6f\x98\x98\x8b\x1a\x59\xbc\xf7\xdd\x9c\x91\x73\x01\xc6\x39\x70\x45\x64\x2d\x00\x03\x7b\x71\x62\x2f\x2e\xec\xc5\xb1\xbd\x38\xb3\x15\x43\xe9\xa6\x42\xa7\xcc\xc2\x73\x94\x00\x4e\x56\x69\x1c\x2e\xdb\x38\xc9\xc2\x20\x21\x5f\x44\xf6\x21\x8e\xd4\x62\x00\xc7\x9c\x0d\xe0\x39\x90\x22\x2f\xcb\x5d\x67\x2f\x2e\xc6\x49\x30\xe5\xb2\x07\x26\x3b\x84\x7d\xfd\xc3\x2b\x3b\xf8\xa1\x56\x9c\x4e\x08\x70\x07\xc0\x1b\x7b\xf1\x54\x87\x39\xd0\x7f\x9e\x18\x63\x73\x9d\xa3\xe0\xee\x82\x3c\x12\x17\x17\x87\x0e\x80\x97\x46\xda\xa9\xca\x9d\xaa\x9e\x43\x52\xcd\x1b\xf9\x96\xf3\x0f\xe4\xf8\xc0\x53\x9e\x55\x4a\x14\xb2\x49\xdf\x1a\xa5\xca\x5b\x0f\xf7\x2d\x5f\xf0\x50\xfa\xd7\x46\x55\xf5\x22\xc2\x3b\x13\x22\x17\x23\xd3\xca\x4f\x66\xa5\xba\x01\xbb\x46\x25\x5d\x81\x43\xb2\xcd\x54\x4c\x74\x6c\x56\x4f\xc7\xc8\x81\xe7\x4d\x83\x3c\x9b\x24\xa8\x70\xe0\x67\xa3\xfe\x88\xbe\x50\xac\xc3\x23\xa3\x6e\x97\x47\x5b\xdc\x33\xbf\x51\x76\x03\x5e\x98\x1f\x51\xda\xf4\x80\xb2\x08\xf0\xd0\xfc\x32\x8b\xe2\xfe\x94\x57\xee\x34\xae\x75\xe1\xc0\x33\xa3\x72\x84\x70\xe0\xc0\x03\x56\x5a\x0e\x10\x7e\x26\x86\x20\x1f\x6b\x3d\x4e\x35\x7d\xf2\x95\x91\x12\x5e\xe3\xd4\xff\xe8\x5e\xaa\x69\xb6\xe8\x49\xe8\xe6\x6d\xb3\x6c\xdd\x9a\x70\xd9\x7a\x76\x83\xb6\x80\xf7\x4d\xc0\xea\x79\xec\x26\x6d\xc1\x5f\xdb\xc6\xcd\x8f\x74\xb7\x68\x0b\xfd\xce\x84\xae\xdc\x8a\x6e\xdc\x16\xfa\xa7\xda\xd2\xa8\x17\xab\x9b\xb5\x85\xbf\x5b\x83\xaf\xde\xcd\xee\xa4\x2d\xfc\x63\x13\xbe\x71\xbd\xbb\x61\xdb\x1e\xce\x6b\x3d\x50\x0c\xd1\x8d\xda\x02\xfe\xdc\x78\x6c\x38\x92\xe9\x8e\xda\x76\x71\x64\x76\xa1\xe2\xa9\xee\xb8\x2d\xf8\x3d\x13\xbc\x40\x75\xdd\x7e\x5b\xd0\x17\xb5\x91\xab\xd8\xb2\x7b\xd5\x16\xfe\x61\x6d\xe8\x2a\xc2\xed\x0e\xdb\xc2\xdf\xa9\x8d\x5f\xc5\xd9\xdd\x9b\xb6\xf0\xcf\x9a\x51\x1a\x39\x39\xd3\xb6\xf0\x0f\x4c\xf8\xec\xe5\xe8\x0e\xda\x02\xb6\x5d\x57\xb6\xa7\x27\xbd\x85\x1a\x63\xfb\xa7\x00\x2a\xe5\x00\x5e\xaa\xdc\xe5\xfb\xb9\xdc\xe5\x15\x8b\x16\xb4\x95\x53\xa2\x7a\x3e\x7b\x59\x13\x24\x53\x31\x30\x5c\x91\x9b\xac\xb8\xc6\x4f\x8f\x89\x6b\xdc\x7d\xe2\x1a\x9f\xb8\xc6\x06\xae\xf1\x60\x8f\xf1\x8c\xc7\xbe\x9b\xda\xb9\x9a\xaf\xce\x4a\x36\xb1\x81\x56\x06\x73\x1d\xac\xe4\x72\xfc\x62\xc5\xb9\x8d\xed\xc5\xfd\x07\xb2\x64\x9f\x54\x96\xec\x8a\xd3\xfc\xa2\xf0\x60\xcf\x81\x43\xa3\x4c\x25\x80\x6f\x8c\x3a\x85\x7a\x9d\x1a\x55\x0a\xe9\x39\x30\x21\xaa\x74\xe3\x89\x51\xb9\x33\xc1\xc3\x23\x2e\xc4\xbb\x34\xea\x84\xd3\x6a\xc5\x4b\x8a\x9a\xb7\x71\x1a\x31\x62\xeb\xd6\x52\xc3\x88\x98\x7d\xa3\x46\x7b\xc6\xaf\x8d\x4a\xed\x0d\xe6\x1c\x65\x59\xc2\x2b\x7f\xd7\xed\xd7\xf9\x99\xd6\x59\x83\x87\x26\x5c\xb2\x13\xed\xd9\xa4\x1b\x13\xac\xc6\xcd\xb4\x66\x96\xa6\x26\x78\x95\x9b\x69\xcd\x2b\x0d\x4c\xe8\x2a\x37\xd3\x9a\x57\x3a\xa9\x2d\x8d\xc6\xcd\xb4\xe6\x96\x2e\x4d\xf8\xea\xc1\x6e\xcf\x2c\x9d\x9a\xe0\xab\xbb\xd1\x9e\x53\xba\x35\x81\x57\xd7\xab\x3d\x93\xb4\x6f\x03\xce\xd9\x8c\xd6\x8c\xd2\xb5\x09\x5c\xa7\xd5\x5b\x73\x49\x77\x26\x7c\x9d\x56\x6f\xcd\x26\xf5\x55\x82\xf4\x78\x2e\x41\x1a\x66\x59\x1e\xc5\xa9\x61\x1a\xbe\x1e\x72\xb4\x22\x3d\x6f\x1e\x13\xe9\x39\x7d\x22\x3d\x9f\x48\xcf\x26\x85\x45\x16\x71\x85\xc5\xa0\x15\xf1\xf9\x45\xf4\x17\x92\xaa\x9b\x3c\x90\xaa\xbb\x51\xa9\xba\x90\xd3\x32\xa2\x90\x4e\x1d\x46\x46\xe9\x2e\xc1\x1f\x0e\x1c\x19\xc5\xe7\x68\xc0\x32\xee\x8d\x8d\x0a\x95\x74\xe8\x1b\x75\xca\xcb\x7c\x65\xc2\x9b\xa6\xe1\x45\x4c\xb0\xfb\x50\x52\x51\xa1\x3f\x75\x27\x5f\x80\x8a\x8a\x4c\xb8\x6c\xe6\xed\xe9\xa8\x91\x09\x98\x2f\x5e\x7b\x12\x6a\x6c\x42\x96\xeb\xdf\x9e\x80\xea\x9b\xb0\x35\xea\xaf\x35\x05\x75\x65\x82\x5f\xab\xb4\x79\x58\x5b\x18\x79\x90\xda\x53\x4f\x13\xf5\x99\x1d\xcc\x7d\x66\xa3\x70\xbd\xcf\x6b\xf5\xb4\x5e\x3d\xa6\xa7\x75\xf8\xf4\xb4\xfe\x39\x9e\xd6\x77\x27\x67\xfb\x07\x3f\x1f\xaf\xfa\xd0\xaa\x9f\xa9\x78\xa6\xc1\x68\xe0\xa6\x9d\x00\x48\x38\x76\x9a\x8f\x71\x55\xbe\xd4\x6b\x2c\xfd\x43\xeb\xf2\x1b\xba\x44\xd9\x03\x5f\xe3\x2b\xf5\x35\x9e\xf0\x07\xf1\x4a\x53\x7b\x87\x46\x29\x55\x43\x55\x8f\xb4\x28\x3e\xcd\xe3\x51\x90\x4f\xab\x67\xfa\x4a\xca\x50\xe8\x40\x76\x76\x0f\xa9\x1b\xc2\xb4\x7a\xaf\xaf\xa4\x9e\xb9\x18\xee\xd3\x04\x65\x91\x7c\xb0\xcb\x12\x4e\xfc\xa1\x9b\x7d\x81\xb7\x37\x34\xe1\x72\x96\xae\xf5\xdb\x1b\x99\x80\xf9\x52\xb5\x7f\x7b\x47\x26\x64\xb9\xda\xed\xdf\xde\xb1\x09\xbb\xbe\x61\xed\x5f\xe0\xbe\xd9\x89\xb6\xe7\xed\xdf\xe0\x4c\x7d\x26\x6f\xe6\x3f\x93\x71\x11\x66\x37\x28\x9f\x6e\x85\xc3\x20\x4e\x9f\x58\xd2\x27\x96\xf4\xcf\xf5\x6e\x3e\x80\x25\x55\x1d\xd8\xd6\xc0\x99\xae\x45\x2d\x62\x70\xa6\x5f\x88\x23\xd5\x5c\xf7\x4c\xc6\x54\xe5\x52\x4c\xee\x54\x61\x31\x4c\xfe\x54\x91\x3d\x9b\xec\xe9\x2e\x43\x49\x26\x6b\xca\xf4\xd4\xdf\x80\x2d\xd5\xa6\xff\x05\xb8\xd3\xf5\x4a\xf9\x6b\x2c\xaa\xca\xe7\xad\x9f\x49\x5d\xab\x45\x54\x8d\x47\xe5\x47\xe1\x0b\xf0\xa7\xdc\xea\xe1\x6b\xf2\xa6\x83\x00\xa3\xdb\x60\x3a\x27\x49\xb3\x35\xf1\xb7\xf8\x6b\x7e\xab\x2a\xb5\xe6\x32\x2f\x38\x8f\x00\x19\xe4\xcf\xe4\x0b\x5e\xbd\xd8\x93\xc7\xf4\x62\x87\x4f\x2f\xf6\x0f\xfb\x62\xf3\x87\x99\xbc\xb5\x91\xef\x06\x2c\xa3\x8a\x2e\x83\xb5\xf0\x82\x04\x46\xc2\xb2\x78\x04\x79\x1e\x4c\xe7\x2a\xfe\xbb\xbd\x92\xbc\xb4\x0f\x7b\x34\x27\x42\x09\x5e\x14\x59\x18\x07\x18\x45\xfc\xa9\xd8\xcd\x26\xe4\xbe\xc6\xfc\x05\x93\xed\xa2\x28\x47\x45\x41\xae\x68\x26\x9f\xb1\xd8\x0f\xdd\x42\xd3\x3c\x36\x40\x6b\xff\x34\x64\xb5\xae\xaa\x01\xb5\x7f\x1a\x0a\x15\x13\x46\x73\x31\xe1\x10\x05\x09\x1e\x6e\x85\x43\x14\x5e\x7f\x5d\x3c\xa8\x7a\xed\x47\x28\xcc\xf2\x00\x67\x79\xb1\x2d\x02\xf2\x35\x24\x1e\xa2\x78\xe5\xa1\x8e\x45\x15\x62\xbd\x78\x4c\x88\xf5\xf0\x09\xb1\xfe\xb0\x88\x15\x79\x45\x38\x44\xa3\xa0\x62\x7d\xf8\xef\xd9\x39\x0e\xf0\xa4\xe8\xcc\x82\x24\xc9\x6e\x51\x44\x11\x65\xd1\xe9\x3a\xe3\xa0\x28\x58\x1e\xb0\xdb\x20\x4f\xd9\x5f\x61\x1e\xe3\x38\x0c\x12\xa7\x57\xc2\x8b\xe9\x18\xd5\xbf\x2a\x50\xde\x77\xa0\x23\xf3\x5f\x0e\x31\x1e\x3b\xd0\xc1\x21\xfd\x2f\x26\xd7\x31\xca\xc2\x6b\x82\xc7\x9d\x41\x3e\x0e\x1d\xe8\x04\x49\x1c\x14\x4e\xaf\x2c\x29\xda\xdf\xf1\xdd\x44\x43\xfb\x3a\x77\x54\x2f\x8e\x59\x3a\x2d\x7e\x9f\x81\xeb\x38\x90\x8d\x82\x73\x4a\xf5\x2f\x26\xf6\xe2\xd0\x5e\x1c\xd9\x8b\x47\xf6\xe2\xb1\xbd\xb8\x6f\x2f\xbe\x62\x63\x27\xfb\x4b\x57\x10\xb8\xdd\x1e\x77\x1c\xaa\x3d\x65\xdc\x73\x28\x97\x8c\xdf\x54\x83\x59\x49\x56\x07\x35\x5f\x21\x11\xbb\x65\xcf\xb1\x79\x12\x51\xbb\x91\x87\xbb\x10\x5d\x68\x62\x53\x61\xf7\x75\x21\x39\x3b\x14\x5e\x1f\xec\x55\x66\x5f\x17\x9a\x6f\xce\xbe\x51\xca\x0e\x63\x65\xed\x25\x81\x67\x14\xbd\xdf\x19\xc5\x27\x13\x3c\x9e\xe0\xca\x69\xe8\xc2\xc6\xbe\xee\xda\x2b\xc9\xa0\x8e\x6b\xdd\x44\x8a\xc3\x90\xf1\xc1\x45\x30\x50\xbc\x85\x2e\x2a\x39\x2f\xbd\xcb\x84\xd9\x3a\x32\xea\xf6\xef\xc6\x59\x81\x22\xe9\x2e\x44\x9d\x74\x3e\xc4\x69\xe4\x6a\x71\xa1\xa8\x5f\x8e\x1c\xd5\x1b\x1a\xfc\xc6\xe9\x88\x88\x3a\x0e\xfd\x8a\x82\x22\x18\x4f\x7e\xda\x15\x77\x8b\x5e\xa3\x9e\x17\xa7\x61\x32\x89\x44\x40\x6a\xb2\xbc\xcc\xbf\xe7\xd0\xea\x87\xd3\xfa\xed\xbf\x35\x01\xcb\x9d\x6e\xcf\x14\xee\x9b\xb0\xb9\x69\x53\x0c\x5b\x33\x6f\xd7\x26\x68\x71\xe2\xda\x1b\x65\xdd\xd5\x96\x9a\x1d\xda\xf6\x16\x59\x9f\x4c\xc8\xe2\xdc\xb7\xb7\xc7\xda\xad\xad\x87\x26\xfa\x68\x6d\x8f\x75\xdc\x00\x9f\x1e\x94\xd6\xd6\x58\xe7\xf5\x25\xa7\xf6\x04\xad\x5d\x56\x3e\x37\x0c\x9b\xe1\x80\xee\x15\x6c\xed\x54\x72\x64\xf6\xa0\x22\x92\xf6\x3e\x25\x7b\x26\x78\x89\x8b\xda\xfb\x93\x18\x90\x09\x42\x63\xde\x24\x2b\xb9\x7c\xd0\xcf\x0c\x77\x0f\xdb\x98\xc9\x40\x1e\xe0\x51\x52\x7d\x3b\xcf\xa5\x64\x67\x2e\xd3\x12\xd3\x14\xe2\x71\x96\x6e\x8d\x51\x3e\x8a\x69\xf2\xcf\x2d\x82\x75\xb7\x86\x28\x88\x50\xfe\x10\x46\x66\x09\x41\xcd\x52\xa1\x0d\x2a\x1e\x63\xf0\x98\x78\x8c\x93\x27\x1e\xe3\x4f\xc3\x63\xb0\x58\x4a\x97\xfe\x8c\x06\x74\x9d\xe5\xe8\x8f\x49\x9c\xa3\x88\x7c\x06\xdf\xd3\x0b\x64\xe7\x21\xf6\xef\x82\x90\x5c\x95\xd3\x1c\xf5\xe3\x3b\x07\x3a\xe7\x93\x3e\xfb\xe3\x0c\x0d\xd0\x1d\xab\x29\xc8\x75\xea\xd1\xc8\xdd\xbc\xd7\x4b\xca\x3f\x9c\xf2\x68\x07\xa9\x5d\x17\x53\x2f\x4e\xec\xc5\x85\xbd\x38\xb6\x17\x67\x6a\x31\xe1\x30\xea\xa1\x04\x3c\xcf\xbb\xf4\xaa\x69\x7b\xda\xac\x09\xf7\x61\xd0\xe5\x0b\xda\x47\x0f\x24\xd7\x07\x1a\xb9\x2e\xd4\x37\x03\x49\xb1\xd2\xa5\x1f\x1b\xc5\x62\x27\xfa\x46\xb9\xd8\x98\x2b\xa3\x9c\xef\xd3\xb0\x0e\x86\x6e\x9b\x74\x53\x11\x15\x74\x52\xd2\x45\x85\x12\xbc\xd5\xcc\xab\xd0\x33\xcd\xeb\x41\xa3\x13\xb9\xc8\x7f\xad\x25\x13\xe9\xa2\x1e\xa1\x81\x47\xfe\x89\x1b\x7d\x09\xcb\x87\xb1\x09\x98\x2f\x5f\x7b\xb9\x5d\xdf\x84\x2c\x76\xa0\x3d\xe1\x7e\x65\x82\x16\x9b\xd8\x9e\x6e\x1f\x9a\xa0\xf9\x39\x68\xaf\xcc\xb9\xb1\xac\x07\x3b\x4a\xed\xf5\x39\x53\x13\x36\x3f\x8d\xed\x39\x02\x03\x6e\x75\x78\x19\x53\xb0\x88\x9e\x69\xfa\x18\xc0\x48\x25\x68\x22\x95\xa0\x39\x7d\x18\x41\xf3\xbd\xa9\xa6\xea\x14\xcf\x46\xdd\x62\xe3\x31\xd0\x3b\x83\x27\x7a\xe7\x4f\x46\xef\x9c\xf8\xb3\xd3\x00\x0f\xed\xa4\x0d\xa9\x91\x64\x0d\xf9\x21\x69\x9d\x00\x0f\x19\xb6\xec\x95\x90\x79\xa1\x59\x64\xb2\x3f\xef\x5f\x38\xd0\x79\xbf\xbf\xb3\x47\x3e\x39\x39\x27\xbf\x4e\x3f\x92\xff\xee\xed\x1f\xee\x5f\xec\x3b\xd0\xd9\x3d\x39\x3e\xde\xdf\x25\x45\x27\xa7\x34\x03\xb0\x03\x9d\x8b\xb3\x9d\x5d\x52\x77\xba\x73\xb1\xfb\x5e\x27\x9a\x4e\x28\xd1\x74\x69\xea\xda\x74\xea\x68\x35\x59\x6c\xea\x09\x44\xb0\xc3\x25\x98\x0b\xf9\xa8\x8a\x80\x32\x65\x9e\x0d\x94\xd4\x89\x27\xd6\x78\x19\x3a\xaa\xb9\xf5\x43\xa9\xa8\xa9\x34\x77\x91\x5b\x28\x48\x29\xb5\x4a\x6c\xf5\xd8\x52\xc7\xdf\xc6\xbe\x51\xf5\x9e\x73\x96\x57\x46\x39\x3f\x13\x15\x51\xa5\xc2\x92\x14\x15\x25\x9d\xc4\x64\x2b\xc2\xa9\x69\x01\x24\xd9\x24\x16\x5c\xcb\x4a\x2c\xc9\xa7\x81\xf1\xf6\x56\x93\x5e\x87\xf1\x8a\x05\xfa\xfa\xa8\x9d\xbe\x0d\xbc\x20\x4b\xd6\x60\xbd\x32\xb0\xbd\xd2\xeb\x31\x5f\x31\x40\xcb\x03\xd0\x9e\xe2\xb9\xb1\x2d\xca\x3a\x08\x1e\x0b\xd8\x07\x92\x3b\xf2\xd3\x79\xc4\xce\xe5\xca\xc4\xce\xf7\x46\xe7\x3c\x99\xe0\x3c\x51\x35\x8f\x82\xaa\x89\xfc\xd9\x0e\x5d\x9c\x8e\x6e\x51\xe3\xd0\xf7\xc4\x81\x26\xa5\xc2\x8b\x9d\x08\xa5\x53\x9d\xe2\x88\x28\xc5\x31\x6a\xa0\x38\x2c\x06\x3b\x91\xc7\x7a\xf6\xd4\x9a\xca\xe2\x47\xdc\xc6\x79\x74\x86\xb3\x06\x8b\x1f\x96\xb6\xbf\x66\xe1\xf3\xfe\xe2\xe2\x74\xbe\x71\x0f\xff\xf0\x0b\x18\xf3\xb0\xbe\xd7\x6c\xc7\x33\x5a\x0e\xa9\x2e\x8e\xe0\xbb\x2c\xde\x5c\xd5\x3c\x67\x21\xab\xb8\x7c\xdc\x5f\xf8\x16\x7e\x84\xef\xe1\x0b\xf8\x01\xfe\x01\xdf\xc1\xdf\xe0\x3f\xe1\xaf\xf0\x67\xf8\x0b\xfc\x07\xfc\x77\x85\x9a\xff\xf5\x98\x50\x33\x42\x4f\xb8\xf9\x07\xc6\xcd\xeb\x09\xef\x84\x11\x47\xbf\xdf\x3a\xf8\xef\x5f\x56\x8a\xfe\xfb\x97\x95\xc2\xff\x8a\xbc\x25\x4d\x01\x80\x17\x7c\x33\x7a\xc0\x37\xe3\x07\x7c\xd3\xb7\x07\x1a\xb0\x06\x15\xb6\x81\x62\xe8\xd3\x29\xb9\xdd\x50\xae\x5a\x13\xc9\x23\x6b\xdf\xa6\xa9\xbd\x78\xb0\x92\x0f\xe6\x89\x7d\xfc\x97\x5a\x31\xcd\x8d\x00\xe0\xa9\xad\xf0\xd6\x0e\x60\xdf\x5e\x7c\xad\x7b\xbf\xdc\xa9\x3f\x1b\x8c\x7d\x3f\x2d\x2f\x95\x70\x00\xdc\xad\x87\x5a\x46\x38\x70\x00\x3c\x7e\x20\x05\xf1\x2f\xd5\xd1\x46\xd8\x16\xfd\x4b\x09\xe8\xf5\xd9\x28\x53\xbd\x43\x8e\xcc\x3a\x35\x08\xd2\x9e\x51\x79\x9e\x4d\x72\x61\xba\x71\x51\xff\x10\xc7\x29\x0d\xa6\xcf\x1a\x1c\xda\x3f\x3e\xaf\xa2\x10\xdb\x3e\x3d\xaf\xe2\x10\xeb\x1f\x2a\x3e\x27\x07\xcd\xdf\x2b\xad\xde\x1a\xad\x4e\x73\x14\xa2\x08\xa5\x21\x72\xe0\x47\x6b\x17\x8c\x95\x7c\x6f\xd4\x09\xfa\xea\x85\x51\x7e\x88\x06\x41\x38\x25\xeb\xfb\xc1\x5a\xe3\xc0\x3f\xcc\x5e\x64\x00\x83\x77\x46\x0d\x0b\x52\x14\xed\x60\x07\xfe\x66\x54\xb1\xf4\x1e\xb4\xea\x9f\xd6\xaf\x78\xe8\xa1\x5f\x8d\x4a\x2d\x2e\xd1\xcf\x66\x25\x75\x55\xf9\xc5\x28\x3d\x43\x05\x5d\x87\xc2\x81\xff\x30\x17\x4f\x9e\xe0\xc2\x81\xff\x56\x64\x41\x07\xc5\x51\x90\x06\x03\x14\xbd\x9d\xee\x9e\xed\x55\x12\x21\xf9\x4c\x1a\xd9\x87\xa9\xf1\x18\xe9\x9e\xa5\x88\xa7\xf2\x21\xb7\x8b\x20\xee\x11\x5c\x43\x8e\x7e\x9e\x06\xc9\x16\x1b\x08\xcd\x13\xbe\xb9\xe9\x5c\x4f\xae\x50\x9e\x22\x42\xce\xf9\xbe\x8f\x09\x19\x7c\xee\x23\xe4\x1e\xd7\x7d\xb5\x5a\x13\xc1\x9f\x6b\x80\xa9\x29\x51\x6b\x1a\xf8\xa8\x06\x77\xbd\xc1\x38\xf6\xea\xf0\xd7\x1b\xcf\xec\xa2\xd6\x81\x8a\x0e\xda\x0b\x8d\x0e\x6d\x13\xd0\x51\x4a\x7b\x01\xd2\x4e\xd3\x24\xce\xd7\x61\x47\x77\x36\x77\x0a\xe7\xeb\xb0\xa7\x3b\x68\x98\x80\xea\x92\xd7\xda\xa8\xee\xed\xbc\x79\xa8\x3d\xb5\x36\xb0\xfb\x58\xeb\x49\x45\xd3\xed\xed\xec\xde\x37\x2c\x17\x97\x1a\xb6\x0e\x0d\xfd\xa2\x06\x5f\xb2\xe3\x43\xd8\xda\xc8\xee\x43\x0d\x7a\xf5\xe8\xb4\x37\xb3\xfb\xa3\x01\xfa\x3a\x22\x37\xbf\xab\xaf\x7b\x15\xbd\xe7\xa4\x2d\xf4\xdf\x6a\xd0\x95\x07\xb4\x7b\xd9\x16\xfc\x3f\x6b\xe0\x95\x47\xb8\x7b\xda\x16\xfc\xaf\x0d\xa3\x17\x31\x04\x6f\xdb\x76\xf0\x73\xad\x03\x3d\x48\xe1\x7e\xdb\x0e\x7e\xa9\x77\xc0\x7c\x5f\xaf\xdb\x42\xfe\x47\x0d\xb2\x42\x94\x74\xef\xda\x82\xff\x77\x1d\xdd\xa8\x84\x4d\xf7\x53\xdb\x0e\x6a\xb4\x83\x46\x1e\x39\xb0\xbb\xbb\x58\x4f\x31\x0f\x00\x80\xc7\xaa\xb6\xe2\x58\x15\xac\x61\x34\x57\xb2\x76\x7d\xb3\x58\xa4\x66\xe6\x9f\x8d\x8b\x77\x59\x42\x15\x4e\xdf\x46\x8a\x56\xc9\xc8\x76\x1e\x93\x8c\xec\xec\x49\x44\xf6\x24\x22\x6b\x10\x91\x7d\x40\x53\x26\x23\x3b\x68\x27\x22\x93\x02\x8b\x79\xd1\x3b\x16\x84\x2d\x5f\x32\x40\xb9\xec\x6a\x5e\x80\x72\xab\x5c\xa8\x6f\x07\x7f\x65\x87\xb3\x54\x42\x2b\xbb\x70\xa9\x41\x32\x53\x77\x55\x93\x18\xcd\xe6\xa9\x46\xf6\xe6\xe1\x8e\x6a\x3b\xb6\x5c\x57\xa2\x90\x80\x96\x3e\x6a\x3b\x35\x81\xc0\xbe\x51\xc3\x62\x49\x5c\x1b\xa5\x2a\xc7\x78\x67\xd4\x29\x51\x33\x3e\x19\x55\x0a\xc5\xbe\x6b\x54\x1d\x66\xe1\x35\x27\x0b\x8e\x8d\xaa\x77\x09\xf5\x45\x39\x37\x8a\xb9\xf1\xe2\x67\xa3\x58\x23\x61\x8e\x8c\x4a\x8d\xfc\xd8\x33\x17\x01\x71\xcd\xf9\x85\x51\xa1\xbc\xfc\x87\x4d\xfe\x6d\x2c\x41\xa5\xd8\xd4\x37\x4e\x9f\x6d\x6e\xc7\xb9\x46\x53\xe6\xd8\x26\xea\xe6\xe5\xac\xfa\x80\xa6\xf7\xf7\x8e\xc3\xfc\xd9\xce\x6c\xf9\xaa\x5a\x8b\x15\x6e\x4d\xb8\xf4\x40\xb4\x17\x2b\xec\x9b\x70\x15\x3a\xbb\xb5\x4c\xe1\xda\x04\xce\x43\x9c\xb4\x96\x25\xdc\x99\x80\x35\x59\x48\x6b\x51\xc2\x27\x13\xbc\x1a\x52\xa6\xb5\x0c\x61\xd7\x84\xae\x72\xc4\xad\x65\x08\xc7\x26\x74\xe5\x8a\xb6\x17\x1f\x9c\x9b\xd0\xf9\x2d\x6f\x2f\x33\xf8\x6c\x42\x16\x56\xce\x63\xd8\x9a\x8b\x3f\x32\x61\xeb\x0c\x53\x6b\x2e\x7e\xcf\x84\xaf\xf3\x4b\xad\x7d\xf1\x2e\x6a\x97\x54\xe0\xbc\xf6\x8e\x78\x87\x26\x6c\x95\x61\x6a\x2d\x23\x30\x91\xd6\xfa\x5c\xf1\x0c\xc8\x15\xa7\xb1\xb2\x27\x9e\xf2\xa4\x37\x3b\xe2\x1d\xcc\xe5\x8d\x52\xe6\xd6\xb9\x16\x83\x83\x2f\x9b\x49\xb8\xb2\x28\xa8\x78\xa3\x3f\x1e\x13\x6f\xf4\xee\x89\x37\x7a\xe2\x8d\x16\x98\x0f\xfc\xf6\xfd\x64\x14\x36\x39\x27\xc9\x95\x84\xf6\xe2\x65\x38\x27\x43\x8f\x3f\x3f\xdf\x6f\x03\x67\xc3\x79\xa5\x61\x50\x1c\x05\x29\xb5\x68\x67\x0e\xe4\x5b\x71\x5a\xe0\x20\xa5\xb9\xe3\x6f\xec\x7a\x69\x2d\x54\x12\xe1\xa3\x0c\x0b\xf8\x7e\x9c\x60\x94\xcb\xa8\x1e\x85\x03\x11\x33\x03\x48\x51\x88\xb7\xc6\x79\x76\x37\x75\x9e\xfb\x64\xb3\x59\x03\x8f\xa0\xf7\x3a\xaf\xb5\x14\x1c\xbf\x0e\xc7\x64\xcb\x24\x1c\x1a\x00\x82\x43\xd1\x3e\x3c\xd8\x23\x4c\x9b\xc9\xcc\xb1\xe6\xbb\x22\xa2\x0c\x0f\x20\x51\x9c\xca\xb0\x33\xec\xf7\xaf\x3c\xf8\x0c\x80\xa7\x35\x10\xc7\x59\x84\x58\x2b\xaf\xdb\xa3\x96\x04\x8b\x5a\xec\x2f\x6c\x71\xfd\x40\xee\xf2\x0f\x95\xbb\x14\xcc\xdf\x1f\x8a\x96\xff\x93\x51\xa6\x92\xd4\xbb\x46\x9d\x42\xb1\x1e\x1b\x55\x3c\x80\x57\xc5\xf8\xfd\xa1\xc5\x2e\xf9\x6c\x94\x56\xec\xc6\x91\x51\xa3\xd1\x68\x7b\x46\xa5\x46\x60\x5d\x18\x95\x8c\xcb\x38\x34\x3f\xa1\xa5\x3b\x46\xe9\x45\x30\x18\xa0\x48\x89\x3a\x76\x66\x34\x50\xc8\xa1\x03\x73\xec\xf2\x60\xbe\x35\xc7\xce\x8f\xda\xc7\xda\x18\x8a\xa1\x38\x74\xfc\x9e\x15\x95\xc5\x80\x5c\x5d\x72\xb4\xeb\xcd\x5e\x58\x16\x54\x74\xf4\x41\x61\x70\x59\xc4\x10\x17\xcc\x8a\xdb\x18\x87\x43\xf7\xf9\x4b\x30\x0b\x83\x02\x49\xb7\x53\x4f\x3f\xda\x1d\x1e\xea\x45\x06\x4f\xda\xb0\xb5\xe6\xe7\x5c\x34\x16\x31\x97\xac\x6d\xf9\x1d\x11\x6d\x45\xa4\xa6\x0d\x7e\x52\x45\x39\x1a\x8d\xf1\xd4\x29\xe9\xa0\xf5\x21\x19\xfc\xb9\x72\x07\xf8\x65\xa6\x98\x40\x8c\x97\xdd\x65\x3a\x6b\xe0\x25\x28\x1d\xe0\xa1\x02\x93\x0f\x66\x29\x90\x62\xa4\xf3\x21\xf2\xa5\x58\x0a\xa2\x58\x27\x1b\xc4\x12\xde\xf9\xef\xdc\xeb\xba\xb4\xa0\xb5\xe3\xef\x27\x13\x2e\xd5\xf8\xb5\x16\x42\xec\x9a\x60\xd7\x9b\xdb\xfa\xd8\x04\xbf\xd6\x7c\x6d\xe7\x26\x74\x89\xa9\xda\xcb\x23\x3e\x9b\xb0\x79\x9c\x97\xd6\x92\x88\x23\x13\xb0\x22\x9e\x69\x2d\x88\xd8\x33\x81\xeb\x6c\x71\x6b\x51\xc4\x85\x09\x5f\x67\x8b\x5b\x0b\x23\x0e\x4d\xf8\x5c\xbc\xd4\x5a\x16\xb1\x53\x1b\x38\x03\xdc\xda\x5c\xe1\xcc\x04\x5c\x7b\x7e\xda\x9b\x2c\x1c\x98\x7d\xa8\x0c\x7d\x6b\x51\xc7\xdb\xda\x81\x94\x8f\x60\x7b\x39\xc7\xc7\xda\x81\xe4\xcf\x5b\x7b\x31\xc7\xfb\xfa\x96\xda\x9e\xe2\xf6\x12\x8f\x17\x35\x24\x66\x7f\xcd\xdb\xdb\x48\x7c\xb0\x21\x1d\xb9\x62\xad\x8d\x24\xcc\x7d\x16\x71\xc8\x2e\x17\x8b\x57\x6c\x1f\x02\x78\xad\x0a\x57\xac\x1b\x5d\x11\xdb\xdd\xd3\x15\x7b\x31\x00\x2c\xd3\x9b\xa4\xe4\xbb\xb7\x0f\xea\x4c\x7c\xbf\x4c\x5f\x82\x4b\xa0\xc6\x13\x0f\xe8\xab\xe2\x32\xb4\xbe\xae\x55\x11\xd5\x6f\xf3\x45\x54\x42\x7e\xfd\x05\x13\x8f\x57\x22\xa5\xdb\xc7\x24\x52\xda\x7f\x12\x29\xfd\xc0\x22\xa5\xe3\xf3\xd3\x9d\xdd\x7d\x2e\x54\x6a\x99\x02\x92\x26\xda\xd0\x40\x2a\xaa\x21\x2a\x7a\xba\xfe\xf6\x19\x38\x2a\xa9\xd1\xd2\x6e\x2e\x35\x2f\x97\x06\xa9\xd1\x32\xea\xfe\xfa\xa7\xee\x8c\x65\x2c\xe2\x19\x8c\x8a\x4e\xb7\x07\xcf\xb2\x04\x29\xbf\x4b\x40\x3d\x5a\x1e\x26\xda\xb8\x55\x45\x1b\x22\x94\xc1\xad\x16\x47\xaa\x6f\x94\xaa\x8c\xcb\x95\x51\xa7\x70\x1d\x43\x0b\x30\x8e\x47\x6f\x8c\xaa\x8a\x30\x9f\x9a\x7d\xa9\x76\xd4\x03\xa3\x52\x21\xce\x4e\x6a\xdf\x25\x88\x1b\x0d\x5e\x1a\x55\x3b\xbb\x87\x85\xb4\x11\x28\x4b\x38\xf6\xf7\xdd\xd1\x17\x48\x3c\xd2\x37\xe1\xae\x2b\x32\xd5\x95\x09\x78\xbd\x19\x47\x86\x26\xf8\xb5\x66\x1c\xb9\xb1\xad\xca\xda\x32\x8e\x4c\x4d\xe8\x0a\xcb\xd7\x9a\x51\x1d\xd4\xd6\x5d\x33\xf2\x6f\xcd\xaf\x9e\x98\xf0\x55\xe6\xa3\x35\xc3\x7a\x59\x1f\xbd\xbc\x22\xed\xd9\xd5\x53\x13\x3a\xbb\x65\xed\xf9\xd4\x91\x4a\xa5\x5d\xcf\xa5\xd2\xb2\x38\x0a\xb7\xc6\x79\x76\x13\xd7\xc2\x77\xae\x93\x58\xab\x08\xb5\xcb\xc7\x44\xa8\x9d\x3e\x11\x6a\x3f\x30\xa1\xb6\x0e\xda\x8c\x90\x60\xb7\xdf\x01\x09\xb6\x9a\x52\xd0\x6e\x4e\xf9\xf0\xe8\x4f\x97\x2a\x41\x24\xe2\x3e\x5d\x6a\x04\xd1\xd8\x28\xb5\x25\xe7\xbe\xac\x53\x3d\x57\x46\x95\x85\x56\x12\x55\xcc\xd6\xe3\xc6\x28\xdd\x99\xe0\xe1\xc7\xb3\xc3\x8a\x4a\x92\x03\x88\x8b\x71\x12\x4c\xd9\xe8\x06\x46\x25\x13\xec\x9d\x48\x7a\x67\xe4\x9f\xea\xe1\x78\xd6\x44\xef\x8c\x4d\xb8\xeb\xa2\x77\xfa\x26\xe0\xf5\xd2\x3b\x57\xb6\x71\x0b\x8a\xa4\x35\xbd\x33\x34\xa1\xaf\x55\x2e\x7f\x63\x42\xe7\x46\x42\xad\x69\x9d\xa9\x09\x58\x9e\xbd\xf6\x74\xce\xa0\xb6\x9f\xea\xf1\x5d\x43\x64\x4e\x13\x3e\x17\x6d\xb7\x26\x72\xb4\xf8\x54\xb7\x73\x69\x91\xb1\xb2\xcb\xd6\xa0\x54\x16\xc3\x26\x6a\xc8\xd4\xca\x84\x69\xa3\xfe\xda\x3f\x06\xd2\xe4\xf6\x89\x34\xf9\x81\x49\x93\xd3\x9d\xb3\x8b\x83\x8b\x83\x93\xe3\xb5\x8a\x91\x74\xa8\x0a\x56\xa5\x64\xcc\xbe\x0c\x14\x2e\x8d\xcd\x6b\xb1\xc2\x2d\x35\x49\x63\x4d\xd1\x58\x13\x37\xd6\x64\x8d\x35\x93\xc6\x9a\xd0\xac\xd1\x8d\x9b\x94\x9a\x87\x8b\x7c\x4e\x6d\x22\x9f\x53\xab\xc8\xe7\xd4\x26\x86\xb9\xaa\x55\x4a\x46\x72\x68\x56\x29\x2f\xf5\x8d\xa5\x27\xfe\xcc\x4e\x8d\x2a\xe5\x8d\x1c\x18\x55\x15\x43\x7f\x62\xd4\x30\x2c\x7f\xa9\xc8\x75\x6e\x6d\x72\x9d\x35\x90\x23\xb7\x56\xb9\xce\x1a\x08\x91\xdb\x79\xf2\x85\x35\x90\x22\x35\xf8\x95\x04\x60\x0d\xa4\x88\x09\x5d\xa5\xd2\xd6\x40\x90\x58\x56\x5d\x50\x69\x6b\x20\x49\x6e\x9b\x65\x5e\x6b\x20\x48\x6e\x1b\xa5\x52\xad\x89\x92\x4b\x13\x38\xa7\x76\xd6\x2b\x79\xd9\x9f\x4f\xed\x34\xc4\xe0\x7c\xa8\xd8\xa5\xa2\x63\xa2\xc7\x44\xc7\x8c\x9e\xe8\x98\x1f\x96\x8e\x51\x92\xd7\x8e\xbf\x88\x8c\xa4\xca\xf1\xf7\xd0\x68\x96\x91\xa1\x16\xa9\xe2\x59\x46\xd2\xe8\x92\xc7\xbd\xcd\x8c\x8a\x9d\x30\xa4\xd6\x5c\x13\xb3\x9c\x45\xfa\x0c\x95\x08\x98\x23\x3d\x4c\x65\xd5\x59\x7b\x09\x42\x66\x02\x97\xe3\x6d\xff\x6a\x4f\x4c\xd8\x62\xca\xed\xdf\xed\xb0\x06\x9a\xad\xda\x9a\x63\x77\x8e\x4b\x00\x36\x9a\x51\x30\xd5\x12\x7e\x59\x13\x85\xa7\x84\xb8\x4f\xc8\xfa\x51\x20\xeb\x46\x26\x13\x79\x47\x3b\xc7\x3b\x3f\xef\x1f\xed\x1f\x5f\x5c\x1e\xec\x55\x4c\xa7\x5e\xec\xbc\xe4\xff\xdb\xb2\xfc\x87\xff\xef\x95\xb3\xb4\x4b\xcd\xce\xf7\x23\x54\x6f\x32\x60\x78\xb8\xb5\xc3\xa2\xc6\x2d\x7c\x75\x8c\x28\x07\xcb\xf9\xec\x2c\x1a\x8f\x35\xd0\x81\xa5\xb1\x9b\xa2\xdb\x67\x7b\x01\x46\xc0\x1b\x20\x4c\xa8\x75\x17\x30\xfd\xb5\xe1\x64\x42\x33\xef\x4e\x5b\x26\xd8\xa5\xbc\xe9\xc0\x48\x31\x7b\xb0\x57\x71\xb9\x17\x16\x8e\xfa\xd2\xcc\x70\x5b\xb1\x44\x66\xaa\x5e\x85\x9f\x31\x93\xf5\x32\xf6\xd5\x4c\xd6\xab\xf1\x9e\x66\xc6\xde\xb3\x49\x62\xcb\xd8\x5b\xb1\x35\x66\xce\x5e\xcd\x38\xda\xcc\xd9\xab\x59\x36\x9b\x59\x7b\xab\xf9\x16\xf5\xe4\xbd\x8c\xd5\x31\xb3\xf6\x62\x34\x1a\x27\x01\x46\xf5\x9c\xbd\x6c\x18\x6c\x88\x6a\xda\xde\xb8\xf8\x39\xc9\xae\x82\x84\x85\xfb\x21\x24\x47\x95\xc4\x77\x29\x54\x20\x12\xfd\x1e\xec\x95\x25\x1c\xf8\x87\xee\xf4\x0b\x28\x58\x4e\x4c\xb8\xd4\x31\xa1\x35\x65\x74\x69\x82\x5d\xaf\x7a\xe5\xd4\x04\xbf\x56\xf5\xca\xad\x09\x7d\xad\xea\x95\x7d\xdb\xd8\xd7\x21\xcd\xb8\xae\xad\xf9\x7a\x4d\x49\xee\x4c\xf8\xfc\xc6\xb6\x97\x65\x7c\x32\x21\xaf\x53\x96\xb1\x6b\x02\xd7\x9d\x2a\x5a\x8b\x34\x8e\x4d\xf8\xba\x53\x45\x6b\xdf\x87\xf3\xe6\xab\x54\xac\xc3\x05\xe2\xb3\x09\x9f\xcb\x7a\xd6\x10\xe4\xc1\x00\x5c\xe1\xd0\x75\x44\x78\xb0\xee\x2a\x3f\x34\xad\x1d\x1f\x0c\xe0\x75\x5c\xce\x5c\x20\x16\x19\x8e\x2f\x02\x02\xe0\x54\xb5\x1e\x9f\x2e\x9f\x69\x98\x79\xdb\xae\x10\xff\x8d\x7f\x57\xf3\x2a\x6e\x1b\xdd\x60\xa3\x6e\xb5\xfd\x18\x38\xb5\xeb\x27\x4e\xed\xcf\xc7\xa9\x2d\xab\x0e\xcc\x22\x04\xab\xb4\xf3\x94\xdd\xba\xfb\x7e\x23\x18\xac\x23\xf6\x1b\xe1\x86\x74\x66\x23\x5d\x92\xd9\xd8\x57\x99\x0d\xa1\xe2\xdb\x57\x98\x8d\x2b\xa3\x4c\xa5\x04\x87\x46\x9d\xc5\x9c\x7b\xbf\xce\x6c\x4c\x8d\x2a\xbe\x55\xba\xa5\x92\x51\xa9\xb2\x3d\xfb\x8a\xbf\x36\xfb\xe8\xd2\xfc\x48\xd2\x1f\xa7\x76\x70\xa7\x0c\xfd\xde\x4a\x19\x66\xdf\xbf\x76\xc7\x5f\x40\x31\x78\x65\xc2\x5d\x8f\xe3\xf0\xd0\x04\xbb\x5e\xc7\xe1\x1b\x13\xfc\x9a\x0d\xb2\x0d\xe8\x2a\x7d\xbe\x06\x8b\x6c\x03\xba\x76\xbc\xd6\x61\x91\x6d\x87\x4f\x37\x76\x0d\x16\xd9\xe6\xca\xcb\x43\xbe\x0e\x83\x6c\x73\xe8\x15\x9d\xde\x9a\x8e\xbe\x6d\x58\x17\x7e\xd5\xda\x13\xd2\x63\x95\xba\xba\x9b\x4b\x5d\xe5\x59\xf2\x85\x3d\xf3\x9a\xc2\x42\x6d\xd4\x65\xc9\x8f\x81\x9c\xda\x79\x22\xa7\x9e\xc8\xa9\x05\x12\xeb\xb3\x1f\x59\x62\xbd\x8c\x7f\x5e\x43\x9b\x05\xce\x7a\xb4\xcd\x32\x22\xec\xaa\x78\xa9\x0c\x51\xf6\x28\xbd\x73\xa2\xf3\x3e\x4c\x18\x7d\x68\x13\x46\x1f\x5a\x84\xd1\x87\x73\x84\xd1\x87\xcd\xc2\xe8\xc3\x66\x61\xf4\xa1\x55\x18\x7d\x38\x4f\x18\x2d\xa1\x65\x49\x1c\xc6\xaa\x3c\xfa\xd0\xa0\x27\x23\x94\x92\xfe\x48\x93\x4f\x66\x7f\x59\xa4\xd5\xef\x9a\x20\xe4\xab\x79\x6c\xd4\x68\xa2\xa9\x73\xa3\x52\x93\x2b\x7d\xb6\x7e\xa9\x07\x6e\xaa\xaf\x68\x51\x05\x6e\x12\x95\xef\x83\x62\x28\x23\x36\x51\x41\xf3\xce\x17\x12\x34\xef\x7c\x19\x41\xf3\xce\x97\x15\x34\xef\x7c\x51\x41\xf3\xce\x17\x15\x34\x5b\xc6\xbe\x1e\x41\xb3\xb9\xe6\xeb\x16\x34\x9b\xcb\x22\x6f\xe3\x3a\x64\xcd\x06\x70\xcb\x85\x5e\x87\xd0\xd9\x5c\x7b\x03\x27\xac\x43\xee\x6c\x4e\xa4\x22\xc6\xd7\x20\x74\xde\x99\x27\x34\x5f\x83\xd0\x79\x67\x9e\xd0\x7c\x0d\xb2\x67\xeb\xf8\xf9\xf2\xac\x41\xfa\xdc\x88\x75\xd6\x12\x77\xe7\xc2\x84\xcf\xb0\x74\xfb\xa8\x3b\x9a\x84\xf9\x6c\x2e\x0f\x54\x93\x14\x3f\xb2\x70\xba\xf5\x04\xbd\xf0\x5f\x10\x21\x88\x51\xc5\x63\xa5\xe8\x31\x31\x59\xf9\x53\xa6\xde\x1f\x99\xcb\xda\xcd\x92\x04\xd1\x95\x58\x8b\x04\xdb\x53\xc5\xd8\x1e\x61\xc2\x58\x62\xf6\x00\xf9\x6e\xce\x0d\x4e\x2e\x71\x1e\x84\xd7\x28\x82\x89\x9f\x23\xd7\x0d\x18\x8d\xaf\x51\xf4\x08\xcc\x52\xc4\x69\xc5\x18\xa3\x51\xe1\xc0\x84\x93\x90\xd4\x3a\x81\x96\xf9\x88\x9a\x3c\xec\xf3\x6c\x8f\x2c\x25\x5b\xe1\x02\x06\xe9\x19\xf2\xab\xa6\xf5\x6d\xa7\xc2\x13\xbe\xed\x88\x1c\xb3\x30\xc0\x2e\xf6\x0c\x60\xf7\xf7\xdd\x1e\x28\x01\xec\xf6\x00\x3f\xf1\x5d\xcf\xf3\x52\x74\xfb\xec\x1c\x61\x17\x81\x9e\x08\xf2\xf8\x96\xd9\xbc\x02\xaf\xc8\x72\xec\x82\xb2\x04\x9a\x12\x8e\x4d\xa1\x3d\xe1\x19\x10\x4c\xaa\x6c\x59\x80\x28\x93\x9b\x20\xdf\x6d\x21\xe3\x37\xb8\x4a\x8b\x03\xf2\x32\x11\x80\x1f\x60\xf0\xd4\xc0\x77\x5e\x99\xb1\x7b\x83\x24\x0e\x0a\x19\x02\x58\x04\xec\xa5\x5c\xa4\xd1\x32\xab\x22\x05\x7b\xb3\x83\x3d\x71\x12\x4b\xa7\x6e\xef\xa4\xb5\x95\x51\x20\xd9\x29\xae\x7a\x68\x4c\x3e\x3c\x7f\x88\x17\xc1\xa0\xb0\x24\x87\x31\x9b\xf1\x9c\xbd\x66\xd8\x61\xb3\x59\x45\xff\xd7\xe3\x0b\x9b\x6d\x2b\x6a\xbe\x1e\x69\xd8\x08\x82\xec\xfd\x3f\x28\x08\x87\x1e\xf3\xb4\x45\xfe\x6b\x11\xfd\x99\x85\x29\x65\x71\x94\xcd\x50\xc4\x8b\x40\xd0\x18\xf8\xca\xf7\xd7\x35\x2b\x33\x63\xee\x77\x8d\x0d\x78\xbc\xff\x4f\x8b\x1a\xd4\x53\x21\x1f\x14\x27\x79\x3c\x88\x53\x9a\x0e\xd9\x1e\xd1\xb9\x29\x80\xb3\x25\x86\xdc\x79\x03\x08\x16\x89\xf9\xf3\xdc\xda\xa3\xb9\xb5\x7b\x73\x6a\xeb\xf1\xe5\x2e\x96\x68\x5d\x45\x88\x3b\x5c\xa2\xb5\x32\xc9\x9d\x07\x4a\x5a\x24\x9a\xa6\x1c\xbb\x08\x9b\x2c\x4b\x55\xc6\xf8\xc0\xac\xe4\x42\xf6\xb7\x66\x39\x0b\x9b\xfa\xd1\x2c\x16\x97\x52\x46\x4a\x96\x35\x22\xdc\xe1\x8b\xda\x27\x92\x3b\xf9\x60\x56\x31\x83\x93\x3f\xcc\x62\x25\x52\xcd\xbb\xda\xb8\x28\x2b\xfb\x9b\x59\x7c\xb0\x57\x25\x55\x96\x85\x12\xa1\xfc\x5a\x1b\x53\x16\x5e\x23\x7c\x1a\xe0\x61\x95\x51\x59\x56\x52\xbc\x21\x53\x2a\xcb\x62\x16\x79\xf4\x1f\xb6\x01\x71\xb9\xc0\xbf\x6b\x8b\x5b\x71\xf5\xff\x6a\x58\x49\x19\x0a\x1d\xd9\x76\x40\xd4\x62\xa4\xd8\x17\x36\x3f\xb6\xb6\x0c\xcd\xea\x55\x17\x99\x9a\x29\xf6\x98\x9f\xab\x19\x78\xa3\x60\x5c\xb5\xc1\x0d\x6f\x2f\xcf\x1c\x4d\x4f\x91\xb4\x72\xec\x1a\xa1\xe1\xc9\x46\x17\xc3\xad\x41\x80\xd1\x6d\x40\x7e\xc6\xe9\x80\x6c\x8c\x52\x82\x51\x3e\xa2\x59\x69\xd3\x81\x2c\xed\x79\x71\x1a\x26\x93\xc8\x9c\x09\x45\x6a\xbc\x63\x86\x63\x64\xcf\xcf\x17\x74\xbd\x0c\xc8\x23\x54\x0c\x0d\xb0\x2c\xac\xb4\xe8\x6d\x73\xf3\x79\xf7\x81\x03\x5e\x35\x20\x38\x8f\x4f\xbd\x52\x5c\x70\xe3\x9b\x65\xc2\x83\x1b\x9f\x2c\x1f\x25\xdc\x1e\xd1\x7b\xb9\x68\xde\x0b\xc3\x78\x2f\x17\xc2\x7b\x71\xcc\xf2\x25\xe3\x95\x53\x40\xa7\x28\x27\xa8\x32\x18\xa0\xc5\x13\xd4\x17\x6f\x5b\xed\x8b\x15\xfd\xe5\xd5\xcb\x97\x56\xa8\xf3\xe6\xab\xef\xe2\x2a\x50\xe7\x4e\xdf\x38\x51\x4d\x70\x4b\x78\x46\x18\x82\x9d\xba\x1c\xb8\xb5\x54\xf2\xa0\x06\x78\xbd\x3e\xbd\x6f\x6b\xf0\x85\x02\xb9\xb5\x5c\xf2\x63\x0d\x34\x8f\x2a\xde\x5a\x28\xf9\xbe\x06\x59\xbe\xb0\xed\x65\x91\x2f\x6a\xc0\x65\x4c\xe2\xd6\x42\xc8\x0f\xf5\x81\xaf\x51\x0a\xf9\x47\x0d\xfa\x68\x4d\x71\xbf\xdf\xd5\x20\xab\x71\xf1\x5a\x8b\x1f\x7f\xab\x9f\x94\x60\x3d\x92\xc7\x7f\xd6\x20\x53\x3d\x4a\x6b\x89\xe3\xaf\x35\xb8\x55\x34\xfe\xd6\x52\xc7\x9f\xeb\xa7\x44\xa1\xbc\xda\x87\xf8\xfe\xa5\x06\x9f\x11\x6f\xed\x43\x7a\xff\xa3\x06\x99\x47\x9e\x6f\x1d\xcd\xfb\xdf\xd6\x23\x22\x54\x4b\xad\x53\x9e\xff\xab\x8e\x06\x15\xdd\x52\xeb\x94\xe7\x08\x35\x61\x2c\x89\x5b\x5a\x67\x3d\xc7\xf5\x3e\xb4\x80\xea\xad\xb3\x9e\x9b\xd0\x0d\x8a\x9a\xa5\x3f\x5f\x64\xe2\x3d\x17\x02\x80\x3b\xaa\x7d\x77\xed\xea\x16\xe2\x6d\xba\x5b\xb1\x23\xf1\xe5\xc2\x0e\x38\xf7\x4d\x33\xa1\xaf\xd8\x83\x64\xdc\x17\x74\x51\x51\xca\xcb\xa5\x43\x6f\xfe\x7c\x41\x57\x32\xe2\xfd\xf1\x8a\x9d\xc8\x88\xf7\x73\xc1\x9b\x41\xe8\xcf\x57\xec\xc5\x14\x12\x2c\xd1\x59\x15\x85\xfe\xf3\x83\x3a\xab\x64\x0c\x4b\x74\xa6\x04\xf3\x3f\x7a\x50\x6f\xaa\x8c\x62\x5e\x77\x0d\xd4\xb3\x03\xbb\x7b\x2b\xf6\xdb\x04\x69\xc5\x01\x54\xcb\x7c\xd1\x72\x00\x4b\x2e\x78\x13\x4d\xee\xc0\xee\x61\xcb\x11\x34\x6d\xc2\x8e\xaa\xd9\x4b\xd0\x32\xaa\xbd\x75\x69\xf4\x54\x37\x93\x08\x85\x59\x1e\xe0\x2c\x2f\xb6\x73\x34\x4e\x02\x9b\x87\x09\xcc\x99\xf6\xea\xab\x29\xfc\x60\x8a\x60\x8e\x60\x80\x60\x82\x60\x81\x60\x8c\x60\x86\xe0\x44\x51\x04\x86\x8f\x4a\x11\x18\x3d\x29\x02\x9f\x14\x81\x2b\x44\xb6\x63\x82\xc1\x11\xf2\xdd\xc0\x54\xfc\x15\x7e\x84\x5c\x37\xb1\x2b\xfe\x42\x43\xf1\x57\x3c\x2a\xc5\x1f\x15\x8e\x08\xa2\xb7\xa8\xc4\x92\xca\xd7\xca\xe8\x46\xc1\xd8\x45\xfe\x6b\x45\x6b\x03\x40\x6f\xbe\x0e\xb1\xb5\x75\x59\x62\xe8\x10\x47\x4c\x87\x38\x46\xbe\xfb\xf5\x1c\x82\x64\xf1\xc8\x5e\xbc\x7e\x1b\xd3\xaa\xf8\xa6\x21\x5a\xd1\xb4\xa1\x7c\xb0\x84\xca\xf2\xc4\xde\xd5\xa5\xbd\xf8\xd4\x5e\x7c\x4b\x8a\x73\x8f\xec\x13\x05\x0f\xdc\x6e\x0f\xc0\xfd\x25\xba\xbf\xd6\x95\xac\x77\xfa\xcf\x4f\xba\xfe\x16\xb8\x0e\x97\x1a\x6f\xb1\x83\x44\x75\x68\xb6\xae\x8f\x75\x38\xe7\xfa\xcf\xcf\xfa\xcf\x26\x55\xd7\x0a\x9a\xb6\xba\x3e\x8c\xd0\xe9\x26\x98\xaa\xac\x02\x55\x95\x29\xe0\x2c\x0a\x33\x26\xa0\x47\xd1\xaf\x31\x1e\x72\x36\x48\x2f\xfc\x99\xcb\xd3\x6d\x0a\x34\xd2\xc9\x7e\x4a\xae\x56\xe4\xc8\x74\xe4\x3b\xeb\x1d\xf3\xd9\xc2\x55\xa4\xc3\xf6\x4c\xd2\xf4\xa0\xe1\xbb\xaa\x3b\xf5\xbb\x8a\xa2\x7c\xbb\x38\xe3\xad\xfa\xa1\x32\xd2\x8f\x0f\xd4\x18\x86\x9a\xc6\x50\xe8\xf2\x42\x5d\xc9\xf6\xc2\x2c\x56\xe5\xb5\x1f\x6c\xdf\x70\x21\xc6\x1f\x66\x9d\x22\x81\x78\x67\xd6\x31\xb5\xf5\x6f\x66\xb1\xb1\xe2\xff\xb4\xd7\x57\x2b\xf4\xab\xbd\x81\x5c\xfa\x9f\xcd\x7a\x91\x00\x6e\x37\x9b\xa4\xb8\x52\xf7\x55\xdf\xdb\x4e\xa4\x54\xff\xd9\x9b\xf1\xd3\xfc\x6f\xb3\x91\x22\x62\xfc\x97\x59\x57\x89\x4d\xa5\x0a\xb0\x02\xae\xda\x5e\xe2\x5a\xb5\x66\x3a\x99\xd6\xaa\x99\x28\x2c\xaf\x95\x1f\x67\x11\x19\x49\x50\xab\xe0\xc3\x4f\x6a\x15\x7c\xfa\xbb\x0c\x53\x11\x42\xda\x68\x50\x13\xa0\xc4\xf5\xc1\x52\xf1\x59\x56\x2b\x67\x82\xdd\x89\xaa\xe0\x64\x5b\x77\x91\xe1\x06\x5d\x06\x3f\x15\x3f\xd5\xb5\x26\x3f\x59\x34\x1e\x14\x64\x75\xcf\x6d\x60\x6b\xd8\xe2\x27\xa3\x58\x03\x5f\xc7\x19\xb2\x0b\x8e\x99\xcc\x51\xd7\xce\xc8\xfd\x7d\xbd\x82\x2f\x32\xd3\x42\xa6\x04\x9a\x65\x94\xbc\x83\xfb\x7b\x46\xc1\x90\xcb\x73\x7f\xef\x38\x22\x91\xed\xeb\x97\x72\x28\x8b\x55\x8d\xf5\x79\x2c\xd2\x33\xd6\x16\x64\x81\x92\xb1\xb6\xae\xab\x68\x18\x6b\x1f\xbb\x60\x46\x88\x24\xe4\xbf\x14\x0c\x8f\x64\x07\x68\x6f\x74\x65\x37\x37\x5d\xa4\xfc\xd4\x4f\x0c\x27\x60\xf5\xad\x46\x46\x6f\x95\x72\xee\xa1\xbd\x71\x08\x5a\x6f\xe2\x04\x99\xbd\x29\x4a\xbb\x87\x76\x27\x40\x68\xfd\x89\xc2\x9f\x50\x59\xc2\xf7\x84\xd6\xff\x58\xd7\xe9\xb5\xd6\xb9\xbd\xa8\x01\x5e\x97\xb3\xec\x87\x1a\x64\x4d\x5b\xd8\x5a\xf1\xf6\x87\x75\xe4\x42\x0a\xdf\x5a\xf5\xf6\xae\x06\x5e\x95\xc2\xb7\xd6\xbe\xfd\x56\x03\xcf\x53\x35\xb4\xd6\xbc\xfd\xb3\x06\xd9\x14\xe5\xb5\x56\xc1\xfd\xda\xd0\x85\x22\x2b\x6b\xad\x87\xfb\xb9\xa1\x8f\x4a\x20\xd8\x5a\x21\xf7\x4b\xad\x0b\x83\xa4\x68\xaf\x9b\xfb\x47\x7d\x16\x56\xaa\xa4\xbd\xa2\xee\xdf\xf3\x7b\x12\xda\x8a\xd6\x0a\xbb\x7f\xd5\xfa\x51\xd5\xaf\xad\xb5\x76\x08\xd5\xe0\x2b\x6a\xe9\xd6\xaa\x3b\x5c\x07\xaf\xbb\xc7\xb4\xd6\xde\xa5\xf5\x1e\x74\x07\x99\xd6\x0a\xbc\xbc\xde\x03\xd7\x99\xde\xc2\xd6\x8a\xb5\xa0\x0e\x9c\x53\x9b\xdd\xeb\xd6\x32\x93\x3a\x6c\x45\x89\xd6\x32\x34\x6e\x1d\xb6\x41\xf3\x76\x3f\xb5\xed\x23\xae\xf7\x51\xd7\x3b\xee\xc2\xe3\xd6\x71\x8f\x2d\x47\x88\xa9\xae\xcf\x5b\x87\x3d\xae\x83\xe6\x76\x19\x9f\x5b\x67\xc3\xb1\xa2\x6b\x4a\xac\x2f\xa7\xb6\x6a\xfc\x1a\xc0\x8f\xaa\xba\xa4\xbe\x36\x1a\x67\xb0\x9c\xae\x6a\x2e\x84\x25\x3a\x94\x12\x8c\x65\xf4\x52\x8d\x5f\x2f\xe8\x88\x31\x11\xcb\x69\x9e\x6c\x1f\x2e\x31\x0f\xa9\x98\xdd\x79\xc0\x34\xa4\x72\x76\xc9\xfd\xa9\x48\x90\xb3\x07\xef\x50\x25\xac\x59\xb2\xd3\x8a\x60\x38\x78\x70\xa7\x95\xa4\x67\xc9\x4e\x15\x4a\xe8\xed\x83\x7b\x55\xc5\x44\x6a\xb7\x1f\xb5\x30\xe0\x8b\xf4\x85\x4b\xe5\x61\x58\x55\x0f\xb8\x56\xc7\xbf\x4a\x97\xf7\xf6\x31\xa9\xf2\x3e\x3e\x69\xf2\x7e\x60\x4d\xde\x7a\x02\xa7\xbc\xff\x51\x62\xcf\x35\xa8\x9a\xbe\x40\x38\x93\xd4\xd4\x9f\xdc\x2c\xa1\xba\x99\x5a\xbf\x5c\x59\xe7\xd4\xd0\xc6\xf4\x2c\x73\x35\x6b\x36\xc3\x7c\x0e\xc0\xd3\x07\xca\xf4\xdf\xaa\x22\x7d\x11\x09\xe5\xad\xe2\x1f\xb3\x6f\x94\x31\x51\xcd\xb5\x51\xaa\x8a\x59\xee\x2c\x5f\x70\x11\xc9\x27\xa3\x4a\x11\x6f\xec\x9a\x5f\x51\x5b\xe9\x63\xa3\xf4\x2d\x1a\x06\x37\x71\x96\x57\xe1\x4e\x44\xcd\xc5\xc5\x61\x15\xe6\x44\x14\x1e\x66\xe1\xf5\x1e\x4a\x08\xb7\x7b\x64\x54\x55\x1c\xde\x9e\x51\xa3\x31\x67\x17\x46\xa5\xc6\x57\x1d\x5a\xc6\x2c\x76\x68\xc7\xec\x4f\xb7\x77\x3c\x33\xaa\x15\x86\xf6\x40\x11\x6a\x53\x17\x4d\x5d\x19\x4d\xc5\x75\x55\x4f\x50\x14\x69\x1d\x30\x3f\x9c\xd9\xc1\x5e\x07\x95\xc0\x7f\x8d\x40\xaf\x2c\xe1\xad\xff\xd1\x3d\xfd\x02\x41\x07\xf7\x4d\xb8\xeb\x09\x3a\x78\x6d\x82\xe5\x52\xc2\xd6\x71\x54\xee\x4c\xc0\x9a\x90\xb0\xb5\xcb\xc2\x27\xdb\xb8\x85\x8c\xb0\xb5\xf0\x74\xd7\x84\xae\x8a\x08\x5b\x0b\x50\x8f\x6b\x63\x5f\x93\xcb\xc2\xb9\x09\xb8\xba\xc9\xed\xe5\xa6\x9f\x4d\xe0\x14\x19\xb4\x17\x98\x1e\x99\x70\x15\x7c\xd2\x5e\x68\xba\x67\x42\x57\x84\x4e\xad\xc5\xa5\x17\x26\x70\x5d\xe4\xd4\x5a\x54\x7a\x68\xc2\xd7\x05\x4e\xad\xe5\xa4\x3b\xb6\x83\x28\x6d\xb9\x87\xb0\xb5\xec\xf2\xac\xb6\xfa\x86\x41\xfa\x14\xb6\x16\x2c\x1e\x98\x7d\xa8\x62\xcb\xd6\x72\x45\x03\x76\x28\x06\x7e\xb9\x98\xf9\xb3\x7d\x08\xe0\xa9\xca\xf0\x9d\xaa\x0c\xdf\xfb\xb9\xfc\x1e\xce\xae\xd1\x4a\xdc\x9e\x9e\x2f\xea\x5b\x44\x78\xa9\xd8\xbf\x5f\x1e\x13\xfb\xf7\x8f\x27\xf6\xef\x89\xfd\x6b\x60\xff\x58\x32\xb9\x2c\x17\x6c\xe0\xbf\x1f\x1d\x1b\x58\x19\xee\x45\x0d\xe5\x56\x9b\xc3\xa6\x80\x9b\x0f\x8a\x5f\xb2\xb8\xcd\x70\x89\x36\x4b\xb3\x8f\x72\x2e\x51\x80\x91\x69\xb1\x58\xad\x53\x1b\x23\x45\x09\xe4\x76\x95\xc5\xdb\xb7\xc3\xa8\x07\x05\x11\xc1\xf6\x58\x5c\x0c\x5b\x4c\x90\x30\x47\x98\x26\xa8\xfa\xf4\x40\x1e\xf5\x17\x95\x47\x15\x7c\xe2\x2f\x5a\xda\x48\x7a\xec\x25\xb7\xf8\x8b\x85\x2b\x3d\x37\xea\x14\xa2\xfc\xb3\x51\xa5\x50\xd4\x47\x46\xd5\xc1\xde\x29\xe3\x42\xf6\x8c\x0a\x39\x4d\xc9\x31\x8a\x9a\x43\x34\x08\xc2\x69\xc5\x2c\xfe\x52\xf1\xa6\x41\x52\xf1\x89\xbf\xd8\xe2\x8c\x9e\x19\x95\x4c\x6f\x72\x60\x8e\x57\xc6\x3b\x7c\x6b\xd4\x9c\x65\x34\xe5\xce\xc7\xda\x60\x6b\x31\x0c\xdf\x9b\xcb\x63\x04\x20\x7c\x61\xd4\xab\x01\xf2\x3e\x18\x75\x2c\xfa\xdc\x1f\xd6\x2f\x38\x81\xf8\xce\xa8\xd4\xa8\xc7\xdf\x8c\xca\x8b\xe9\x18\x55\xc6\x7c\xbf\x68\x82\x88\x5f\xcd\x19\xb3\x24\x43\x3f\x2f\x97\x59\x8b\xd9\x43\x89\xf5\xa3\xa6\xe3\x5e\x3f\x4e\x23\x66\xda\x7d\xb0\xe7\xfb\x7e\xaa\xe7\xe5\x63\x20\x87\x41\x21\x36\xbc\xca\xd2\xe5\x08\xab\x1b\x51\xb5\xb9\xe9\xfc\xf7\x30\x8e\x22\x94\xbe\xae\xd5\x95\x25\xdc\xf5\xff\xe1\x7e\xfa\x02\xec\xf8\xb1\x09\x57\xbd\x22\xed\xd9\xf2\x73\x13\xfc\x7a\x73\x01\x7c\x36\xc1\xaf\x35\x17\xc0\x91\x09\x7d\xad\xb9\x00\xf6\x4c\xe8\x12\x5d\xb4\xe7\xcc\x2f\x4c\xd8\x15\xc6\x69\xcf\x9d\x1f\x9a\xc0\x05\xd2\x6a\xcf\x9b\xef\xd4\x40\x33\xbc\xd7\x9e\x3b\x3f\xab\x1d\x44\x2d\xae\x6c\x6b\xfe\xfc\xc0\x84\xbf\xae\x68\x02\x6f\x6b\x87\xb0\x0a\x58\xdb\x9a\x31\xff\x68\x02\xe7\x6f\x40\x7b\x96\xfc\x7d\xfd\x04\xd6\x43\xe1\xb6\xb6\x5e\x7a\x51\xbb\xff\x66\x28\xdc\xd6\xac\xff\x07\xb3\x0b\x2d\xda\x6b\x6b\x6b\xa5\x3f\x4c\xf0\x3c\x1a\x6b\x6b\x71\xc2\x3b\xfb\xb8\x85\xcc\xa5\xb5\x40\xe1\x37\x13\xbe\x2e\xd3\x69\x6d\xa6\xf4\x4f\x13\x3e\x7b\xd8\xdb\x5b\x27\xfd\x6a\x7b\x33\xd6\x11\x53\xe0\xe7\xda\x65\xe2\x39\x0c\x5b\xdb\x3c\x19\x70\xad\x19\xe3\x96\x08\x27\xb0\x08\x08\x80\x9f\x54\xa1\x8e\xd1\xab\x42\xc6\x2c\x17\x54\xa0\xf1\x6b\xa3\x9f\x4f\xaa\xf0\xe8\xdf\x0b\x84\x47\xe3\x2c\xc9\x06\x5f\x35\x6d\x78\x25\xfd\x39\x7f\x4c\xd2\x9f\xcf\x4f\xd2\x9f\x27\xe9\x4f\x83\xf4\x47\xcd\x3a\x45\xc5\x3f\x47\xdf\x4f\xfa\x14\x53\x2a\x54\xc9\x73\x26\x0d\xe5\x4b\xc9\x85\x2c\x39\xe9\x0c\x81\x8f\x29\x8b\xd8\xcb\x6e\xd3\x02\xe7\x28\x18\x15\x4e\x3d\x58\xad\x5e\x0f\x9d\x8f\xe3\xaa\xad\x19\xae\x76\x5e\xdb\x9b\x07\x8a\x39\xce\x55\x31\x87\x48\x5a\x77\x3e\x2f\x69\xdd\xb9\x45\xce\x71\x62\xd4\x29\xec\xd3\xa5\x51\xa5\xf0\x3e\xa7\x66\x15\xc1\xe5\x61\x96\x54\x36\x01\xa2\xe6\x1d\xf5\x9e\x46\xd1\xdb\xe9\xce\xee\x61\x51\xd9\x07\x88\xfa\x8b\x3c\x48\x8b\x71\x90\xa3\x14\x73\x43\xdb\x6b\xa3\x05\xb7\x11\x3f\x0e\x70\x7c\x83\x2a\x73\x01\x51\x5d\x2d\xa5\x34\x17\x90\xf3\x54\xd7\x7c\xd7\xa8\x64\xd4\xf9\xb1\xc2\xf8\xa7\x19\xde\xa3\x57\x31\x3a\x48\x31\x21\x20\xb3\x54\x3a\xcc\x3c\x7f\x25\x10\x27\xf2\xa5\xbb\x8c\x02\x5f\x0d\xfc\x57\x8c\x51\x18\xf7\xe3\x70\x2b\x16\x60\x78\x08\x40\xaa\xcb\xd9\xdc\x7c\x8e\x3c\x73\xd6\xb4\x50\x9b\xe8\xe6\x26\xf2\xe4\x30\xbc\x9d\x24\xc9\x6e\x51\x24\x3c\xb0\x20\x73\xf0\xb9\x8d\x93\x28\x0c\x72\x6d\xb8\xc2\x33\x7e\xc1\x20\x9f\xab\xd0\xdf\x07\xc5\xfe\x5d\x10\xe2\xf9\x7d\xe2\x0a\xa6\x5c\xf3\x56\x10\xe5\x8a\xde\xdf\x63\xbe\x01\x7b\x68\x8c\xd2\x08\xa5\x84\xbb\xa9\x1c\xd3\x5e\xfa\xb5\x7e\x19\x84\xcd\x4d\x59\xa5\x4e\x93\x55\x96\x25\x9c\xfa\x9f\xdd\x9b\xba\xc8\xa4\x75\xb6\x99\x81\x09\x57\x4f\xe2\xd7\x5a\x24\x73\x62\xc2\x5f\x6f\xda\x99\x4b\x13\xfc\x5a\xd3\xce\x9c\x9a\xd0\xd7\x9a\x76\xe6\xb6\x06\x5d\xa2\x9e\xf6\x02\x99\x7d\x13\xb8\x89\xbd\xda\xcb\x65\xae\xcd\x2e\xea\x08\xb0\xbd\x7c\xe6\xce\xec\xc4\xc0\xa1\xed\xc5\x34\x9f\xcc\x1e\x14\x34\xdc\x5e\x54\xb3\x5b\x3b\xff\x2a\x26\x6f\x2f\xaa\x39\x36\xe1\xaf\x4b\x54\x63\x80\xb5\xbc\x28\x4c\x66\xb3\x88\x71\x5a\x08\x05\xc0\x1b\x95\x81\x32\xfa\xad\x3d\x0c\x4c\x9e\xb3\x52\xaf\x75\x18\xf3\xfb\xd4\x91\x37\x13\xed\xac\x38\x4d\x0d\x80\xd1\xdb\x8d\xca\x22\x1e\x35\xb2\x88\x71\x3f\x46\x79\xb1\x1d\xe4\x71\xb0\x35\x42\xe9\x44\x67\x13\x19\x97\x28\x9a\x2d\xe0\x11\x2b\xae\x2f\x7e\x62\xa4\x7e\x58\x46\x8a\xf3\x4b\x8c\x6c\xca\xfc\xd9\x0d\xca\x99\x97\xfa\xec\xbf\x5e\x76\x48\x4f\xfe\xd6\x2b\xe0\xbf\x76\xf1\x4f\xaf\xc0\x7f\x20\x41\x0b\xfd\xf5\x7f\xb3\xba\x97\xc0\x7f\x4d\x49\x90\x37\xa2\x6a\xeb\x55\x07\x6f\xbd\x82\x7f\xfd\x1b\xd5\x8d\xbe\x84\x7f\xfd\xff\x75\xa8\x72\x48\xd4\x96\x70\x98\xe5\xf1\xe7\x2c\xc5\xa4\x8f\xb2\xa4\xcc\xd7\x84\x30\x5f\x8c\x63\x88\x53\x3a\x15\x1e\x43\xcd\x75\xb6\xa2\x2c\x9c\x70\xd9\x8c\xcc\xab\x12\xd0\x8d\x83\x81\xf1\x3b\x59\x81\x93\x20\xc7\x98\x9f\x69\x98\xc0\x18\x66\x1b\x2a\x6f\x81\x29\x51\x05\x53\xdf\x89\xb2\xd0\x81\x01\xfb\xe9\xe6\x7e\x01\x9a\xc4\x1e\x04\x98\x2a\xf6\xc8\x1b\xc5\x1e\x79\x83\xd8\x23\x37\xc5\x1e\xb9\x76\xae\xf2\x39\xe7\x8a\x26\xd7\x74\xc4\xde\x39\xd0\x8d\x7d\x27\xcb\x63\x94\xe2\x80\xa1\xae\x38\x75\x13\x3a\x09\xf0\xc6\x3e\x7c\xb2\x06\xfc\x84\x64\x06\xce\x37\x5f\x04\xe5\x0d\x28\x41\x27\xe9\xc6\x3d\x3f\x2b\x83\x62\x9a\x86\xcf\xae\xd1\x34\xca\x6e\xe9\x9d\x8f\xfb\xee\x7f\xfe\xff\x29\xdd\x7f\x8d\xa6\xbb\x59\x84\x80\x1a\x66\x21\xa3\x6a\x87\xc2\xcb\xd2\x30\xc9\x0a\xe4\x22\x7e\x09\x68\xe5\x0b\x9c\xc7\x83\x01\xca\xbd\x7e\x16\x4e\x0a\x17\xf0\xd3\x89\x7d\x69\xcf\x8b\x12\x2a\xaf\xf3\xfe\x98\xa0\x7c\x7a\x8e\x12\x44\x76\x76\x27\x49\xdc\xff\xd5\xcd\xb3\x04\xfd\x8f\xef\x10\xe4\x17\x63\x34\x72\x7a\xff\x0b\xf4\x60\xea\x63\xaa\xa8\xa4\xb2\x59\xaa\xad\x14\x74\x73\x94\x85\x1e\x39\x3e\x37\x68\x9f\xc1\x04\x1b\xff\xe7\xb9\x32\xea\x37\xf2\xf6\x67\x5d\x36\xf2\x6a\x59\x7b\x5d\xd9\xac\xb7\xb9\xe9\xe2\xee\xfc\x26\xe4\x88\x80\x9e\x98\x14\x44\x5e\x81\xb3\x31\xd9\x80\x60\x10\x30\xee\x05\x22\x6f\x4c\x10\x55\x4a\x1e\x3c\x72\x70\x5d\x00\x3a\xc8\x2b\x86\x71\x1f\x7f\x40\xd3\x37\xe4\xaa\xa5\xa4\xa7\x86\x25\xb4\xae\x1e\xe8\xa4\x64\xb2\xf2\x06\x6e\x6e\xba\xc1\x6d\x10\xe3\x67\x29\xba\x7d\x76\x9a\x67\xa3\x98\x7c\xec\xbf\x2e\x10\xbe\x88\x47\x28\x9b\x60\x17\xc1\x97\x80\x43\xab\xf7\x02\xf8\x5e\x33\xf0\x08\xcc\x1c\xc6\xde\x8d\x33\xc2\xef\xe5\x17\xd3\x31\x92\x5d\x70\xf0\x5e\x8e\x8a\x2c\xb9\x41\x2e\x07\x2a\x8e\xc9\x8c\x2f\x4d\xe7\xaf\x7f\x83\xc6\x62\x50\xf4\x31\x2b\xa1\xbe\x1e\xbc\xb4\x04\xa0\xe4\x29\x08\xd8\xc3\xa5\x4d\xbc\xda\xd8\x01\xc2\x7c\x57\xdf\x4e\x0f\x22\x57\x3b\x3a\x03\x84\x77\x44\x90\x45\xd7\xa1\x0f\x66\x12\x5c\xa1\x24\x41\xd1\xd5\xd4\x01\x02\x29\x13\x96\xcf\xcb\xc6\x28\xdd\x27\xc3\xd8\xdc\xa4\x30\xd8\xd4\x95\x72\x3e\x2f\x7a\x98\xa2\x88\x16\x1d\xc6\x05\x46\x29\xca\x5d\x87\xcf\xd6\xd1\xe6\x0e\xca\x28\x2e\xc4\x1c\xf8\x04\xc8\xe7\x39\x1a\x65\x37\x68\x59\x08\xd1\x19\x0a\x51\x7c\x83\x76\xf2\x01\x45\x92\x85\x00\x35\x0e\xf2\x60\x54\xb0\x95\x08\xf2\x41\xe1\x8d\xb3\x82\xf2\x20\x41\xa2\xed\xab\xd2\x22\x0d\x46\x28\x22\x30\xa9\x87\x7d\x92\x08\x50\x62\x90\xcd\xb0\xaa\xcf\x41\x79\x1b\x27\xc9\x19\x9d\x83\x9c\x95\x32\xcf\xb2\x84\x85\x1f\xbb\x89\x4a\xf7\x50\x0c\xdb\x9e\x27\x35\xa0\xca\x25\x23\xdc\xe8\x22\x3a\xcc\xfa\x25\xa1\x54\x14\x02\xcc\x80\x4f\x8f\x00\x63\x46\x57\x82\xce\xbe\x33\x60\x27\x2a\x71\x37\x59\x48\xdc\x61\x1c\x84\xc3\xad\x62\x18\x44\xd9\xad\x4a\xe0\x69\xf4\x1c\x98\xb5\xa7\x0a\xe8\x23\x29\x1e\xd9\x02\xe1\x23\x3e\x06\xa6\x31\xc9\x5d\x72\x1b\xdd\x59\x18\x8c\x83\xab\x38\xa1\xfa\xc6\x0e\x6f\x3c\xd2\x5b\xee\x2a\x4d\x5c\xe7\xaf\xde\xab\xbf\x3a\x70\x16\xc5\x05\xd9\xcf\x9d\x09\xce\x2e\xf2\x20\xbc\x8e\xd3\x01\x1b\x47\x48\xf5\x74\xa2\x33\x17\xcc\x4a\x18\xb3\x33\x29\xcb\xb8\xe1\x2b\x21\x1e\x72\x38\xab\x0e\x64\xa7\x1b\x40\xcf\xf3\x92\x1e\xa4\xe7\xb1\x53\x94\x7e\xba\x81\xf3\xe9\x2c\xf7\xa9\xa4\x33\x08\x87\xe7\x74\xdd\xdc\xd9\x88\x20\x1e\x87\x5c\x61\xa7\x04\x65\x18\xe0\x70\xe8\xc6\x4c\x80\x94\x25\xc8\x43\x79\x9e\xe5\x6e\x0c\xca\xc0\xcd\x41\x09\x27\xe3\xc8\x1c\x53\x84\x0a\x9c\x67\x53\xb5\x8c\x0c\x9e\x86\x7a\x2c\xd5\x1d\xc5\x8b\x76\x34\x2c\x8a\xad\x71\x9e\x8d\x1f\x48\xad\x6f\xb4\xdf\x69\x9a\x5c\x6d\x59\x2a\xec\x21\x54\x56\x32\x8f\xbe\x4a\x24\x7d\x15\x7c\x57\xf4\x55\xa2\xa8\x95\xec\xc8\x56\x0b\xc4\x59\x43\x8e\x26\x76\xfd\xbb\x8b\xba\xaf\x7a\xf7\xf7\xd8\x63\xb4\x50\x01\x5c\x89\xf8\x85\x5d\x61\x8c\x6e\x09\x2a\xd9\xe5\x92\xf3\x73\x3c\x4d\x90\xf6\x72\x01\x52\x2d\x96\x85\x9a\x21\xba\xa8\xfb\xb2\x07\x18\x72\xcd\x15\x64\x13\xf3\xe5\xcd\x7c\x82\x5e\x27\x7e\x1b\x04\x0b\x23\x7f\x56\x42\x95\xd9\x9b\x34\x30\x7b\x11\x61\xf6\x26\x9c\xd9\x8b\x74\x66\x4f\xfd\x09\x23\x93\xd9\x8b\x1a\x99\xbd\xe8\xfe\x3e\x32\x99\xbd\x48\x67\xf6\x22\x3f\x5b\x86\xd9\x53\xa3\xa2\x62\xb7\x80\x31\x44\xe0\xfe\x1e\x95\x00\x46\x00\x86\x0a\xb3\x17\x19\xac\x58\xc4\x99\x3d\xad\xfc\x4d\x54\x3f\x34\xa1\x64\xf6\xa2\xf9\xcc\x9e\xd9\x83\xfd\xdc\x93\x21\x46\x64\x7a\x8c\xd9\x0b\xfc\x08\xe6\x80\x62\x66\x45\x8b\xab\x06\xa7\x5e\x16\xd9\x14\xab\x61\x9b\x75\xf1\x98\xa9\x48\xa0\xd5\xcf\xb3\xd1\x3e\x4f\xa2\x45\x08\x7b\x81\x62\xbc\x82\x1c\xf9\xf3\x21\x42\xb8\xe8\xc9\x0d\x24\x63\x20\x7c\x24\x8f\x63\x4b\x39\x01\x2f\x2c\x0a\x6a\x61\xd0\x53\xe4\xf0\xaf\x28\x31\x4a\xdf\x55\xe3\x63\xf2\x0d\x22\xaf\x03\xfb\x98\x76\xa3\x7e\x49\x08\xf2\x20\xc7\xc5\xaf\x31\x1e\xba\xce\xd6\x96\x03\x80\x88\x5b\xdb\x45\x1e\xce\xe3\x11\xa1\x5f\xd9\x77\x96\x3b\x08\x78\x93\x1e\xe8\xc1\x6e\x0f\xd0\x90\xba\x6c\xa3\xb8\x06\x51\xac\x2d\xd0\x8e\x63\x17\xf7\x60\x2e\x10\x49\xe0\x13\xa2\xfc\x0c\x0d\xf6\xef\xc6\xee\xef\xff\xb3\xb5\xf5\x62\x46\x2e\x34\xea\xc7\x77\xf7\xf7\x8e\xe7\x94\xe4\xf7\x20\xcf\x26\xe3\xfb\x7b\xc7\x29\x7f\xfa\x1d\x40\x2a\x8b\x31\x72\x92\xa5\xca\xd5\x14\xc9\xc5\x66\x62\xf9\x91\x37\xa2\x6f\x5d\x00\x36\xe2\xbe\x2b\x1e\x51\x3f\xed\xbe\xec\x6d\x38\x5b\x84\x96\xcf\xbd\x70\x18\xe4\x3b\xd8\xcd\x25\xd3\x40\x2e\x5c\xee\xe7\x5e\x31\xb9\x2a\x70\x4e\x43\xa8\xca\x2a\x55\x7e\xd1\xcd\x09\x27\x44\xfe\xf1\x67\x25\x80\xe4\x0f\x82\x0e\x30\x79\x19\xb1\x9b\x80\x12\xa8\x0f\x63\xbe\xe8\xac\x46\x71\xb4\x15\xa7\x05\xca\xb1\xcd\xde\x61\x3b\x47\x69\xa4\x1c\xda\xc2\xfe\x65\xfb\xa3\xdc\xf8\x01\x9f\x88\xa3\xbd\x4c\xcf\x5f\xc2\x01\xc2\x1d\xd9\x67\x85\x6f\xc4\xc4\xcb\x12\x2c\x33\x73\x46\x73\x3c\x64\xe6\xfc\xcb\x47\x3c\x73\x73\xcf\xd7\x4e\xdb\x0a\x99\x02\x22\x24\x2c\x0e\x72\x32\x70\x24\xde\x58\x18\x4e\xf2\x1c\xa5\xf8\xc2\x28\x2f\xd9\x85\x4e\xbf\x35\x4d\xdc\x61\xbd\xf0\x51\x49\x16\xa8\x46\x24\x53\xd1\xa6\x1c\xbd\x9f\xb2\x59\x0b\x1a\x99\x10\x0b\x92\x5a\xd9\x08\x5c\xec\x12\x5e\x04\xe6\x82\x97\x33\x89\x5e\x44\x48\x6e\x06\x21\x27\x10\x82\x9e\x9f\xaa\x10\x72\x06\x21\x80\xa9\x84\xb0\x34\x8d\x9c\x2e\x3e\x16\x74\x65\xa2\xaf\xfd\x6a\xb1\xfd\x9e\x8b\xc0\xfd\xe7\x2f\x7b\x54\xe0\xd5\x75\xe2\x74\x3c\xc1\x34\xd5\xe2\x1d\x0e\x72\x14\x38\xd0\x29\xa8\x78\xca\x81\xce\xd5\x04\xe3\x2c\x55\x13\x18\x22\x2f\xcd\x22\xaa\x35\xf5\x70\x76\x98\xdd\x92\x43\x41\xc8\x16\x00\xf0\x1b\x17\x79\x85\x26\xa2\xa8\x16\x00\x53\xe1\x51\x5d\x7e\xa1\xb6\x00\x1d\x17\x79\x51\x80\x83\x02\x61\x4f\x54\xf8\xcf\x5f\x41\xc4\x45\x0c\x36\xc8\xc0\x56\xab\x83\x26\xf8\x3b\x29\xd0\xb3\x7e\x96\xbb\xfc\x45\x79\x96\xf5\x9f\xa1\xba\x28\x8e\xad\x05\x14\x2b\x01\xf9\xf4\x01\xc0\x9b\x9b\x4e\x3f\x48\x0a\xe4\x3c\xf7\xfd\xb4\x36\xc8\xb5\xcc\xbc\xe5\x1c\xf5\x67\x6a\xe1\xd9\x8c\xd3\xad\x9b\x18\xdd\x92\x43\x69\x3b\x9e\x4a\x75\xc3\x47\x8f\x12\x51\xa7\x19\x8e\xfb\x71\x18\xe0\x5a\xf0\xa2\xe5\x39\x57\xa9\x63\x4a\x94\x1a\x5f\x65\x33\x10\x25\x53\xac\x32\x96\xf3\xe9\xe8\x2a\x4b\x0a\xee\xff\xea\xcf\x6b\x43\xc0\x60\x4e\xc3\x88\xd4\xac\x72\x4c\x15\x47\xb0\x48\x94\x43\xc6\xa8\xb0\x30\x25\x00\x00\xa6\xde\x78\x52\x0c\xbd\x60\x3c\x4e\xa6\x54\x97\x54\x72\x60\x69\x65\x8a\x58\x08\x81\x85\x58\xe6\x67\x71\xfa\x0c\x35\x88\xe2\xa9\x01\x25\x37\x7c\x5c\x49\x14\x8f\xba\xb8\xe7\xa7\x10\xad\x41\x1f\x44\x68\xc2\xb8\x59\x1e\xd0\x4f\x82\x62\x78\x84\x8a\x22\x18\x50\x55\xe5\x7a\x65\x02\xf4\x60\x4d\x1f\x8d\x58\xc0\x90\x97\x0a\x01\xb3\x8e\xa6\xf2\x8c\xac\xb9\x13\x24\x84\xae\xe1\xe2\x62\xd1\x52\x60\x40\xf5\x42\x51\x76\x6f\x43\x88\x17\x54\xd2\x87\x60\x5e\x26\x98\x7b\xf5\x77\xfc\xdf\x81\x10\x46\x70\x7a\xfc\xef\xf8\xa7\x9f\xc4\x35\x22\x20\x9e\xfb\xb2\x45\x17\xf7\xde\xa8\x3f\x3a\xb3\x72\x03\xff\xc7\x7f\xbe\x49\xf8\xed\x72\x53\x00\x9f\xbf\xb4\x71\xf5\x18\xcc\xf8\x09\xee\xe2\x1e\xc1\x0b\x9d\x05\x17\xa5\xb0\x1e\x6d\x42\xe8\xa0\x45\xe2\x52\xc2\xbd\x80\x8e\x32\xa6\x86\x01\x35\xdf\x9d\x45\x97\x38\x25\x8f\x44\x09\xe4\x3d\x45\xa5\x3b\xc3\x4c\xf3\xd1\xf9\x1b\xfa\x2b\x64\x87\x18\x45\x5c\x1b\xd2\xf9\xeb\xcb\x97\x65\x4d\xd0\x4d\x9e\x87\x6c\xe4\x6b\xfb\x98\x4d\x30\xca\xdf\x5f\x1c\x1d\xea\xdb\x9b\x73\x71\x38\x2b\x65\x87\xdb\x0b\x13\x14\xe4\xe2\x06\xb9\x00\x3a\x62\x6e\x8e\xef\x13\xe6\x95\xbe\xa9\x41\x1f\xa3\xfc\x4d\x4d\x89\xe2\xe1\x21\x4a\x29\xa1\xc9\x9b\xb8\x00\x78\x4c\x80\x89\xfc\xd7\x84\x10\x61\x56\x35\x94\x2e\xdb\xb9\xca\x72\x8c\x22\x87\x2a\xb5\xc8\xd8\x01\x1e\xe6\xd9\xed\x33\x54\x2a\x70\x66\xea\xd0\x82\x28\x72\x11\x28\x41\xc7\x52\x78\x1b\x27\xc9\x1e\xa3\xe9\xc4\x79\xaf\x16\xc5\x2b\x70\x1c\x5e\x4f\xb9\x92\xc4\x3e\xd1\xb2\x84\x99\x26\xa4\x9a\x54\xf7\x3d\xa4\x72\xaa\xa8\x9d\x9c\x6a\x6c\xca\xa9\xa2\x06\x39\xd5\x98\x30\xa6\x11\x97\x53\x8d\x75\x39\x95\xfa\x13\x8e\x4d\x39\xd5\xb8\x51\x4e\x35\xbe\xbf\x1f\x9b\x72\xaa\xb1\x2e\xa7\x1a\xfb\xe1\xea\x72\xaa\x0c\x4e\xa4\x9c\x6a\x0c\xe0\x48\x91\x53\x8d\x0d\x29\xd2\x98\xcb\xa9\xb4\xf2\x37\xe3\x3a\x16\x1b\x49\x39\xd5\x78\xbe\x9c\xca\xec\xc1\x7e\xf3\xc8\x10\xc7\x64\x7a\x42\x4e\x35\x16\x72\x2a\xc5\xd3\x40\x21\xaa\xe2\x45\xe4\x45\x96\x6e\x65\x13\x5c\xc4\x11\x7a\xb0\x11\xcb\x86\xf9\x00\x3f\x99\xb0\xfc\xb8\x26\x2c\x0b\x48\x96\x28\x1b\x59\x4d\x48\x96\x21\x5c\xd8\x91\xe1\x27\xa8\x22\x5a\xe4\x63\x0a\x20\xd3\x00\x40\xec\xd3\x7e\x60\xce\x29\x97\xd4\x4f\x1a\x29\x97\x6f\xec\x27\x23\x35\xd6\x42\x5d\x3e\x92\x12\x58\x57\xa8\xf8\x35\x1d\xfb\x52\x46\x03\x54\xd7\xd6\xac\x0b\x47\xdd\x97\x3d\xd6\x71\x42\x8b\x84\xde\x2d\x05\xb3\xb2\x64\x45\xdc\x76\x44\x0e\x2a\x2e\x4e\x18\x16\xd0\x94\x20\x10\x79\x4c\x66\x03\xc0\xcc\xb5\xbc\x9d\x8a\x12\xbc\xfb\xaa\xf7\x46\xff\xc9\xad\x08\x00\xa7\xd9\x35\xb8\x5d\xd4\x03\xe5\x2a\xba\xf9\x30\x89\xc3\x6b\x47\x9f\xd4\xa3\x54\xcc\x27\x7e\xe1\x06\xba\x62\x7e\xb4\x0e\xc5\xbc\x01\x95\xad\xd1\x72\x7a\x79\xdb\x87\x00\x06\xaa\xea\x3c\x00\x2b\xbe\x29\x39\x2a\xe2\xcf\xd6\x27\x45\x56\xca\xc7\xc5\xfa\xe5\xa3\xe4\xd5\x73\xd4\xb7\x4d\x39\x47\x7d\xdb\x64\x49\xeb\x47\x39\x4d\xaa\x9b\xf9\xea\x7a\x2d\xfa\x82\xa4\x96\x37\xa4\x40\x98\xea\x6f\x0b\x17\xf9\xdd\x9e\x50\xf2\x70\xb5\xf0\x65\x96\x30\xed\x6e\x71\x7f\xcf\x33\x26\x6e\xec\xe4\x79\x30\xf5\xe2\x82\xfe\xeb\x12\x8a\xcf\x45\xbe\xa1\xdc\x41\x80\x8c\x41\xd5\xef\xa4\x54\xbf\xc3\xd4\x38\x8e\xb3\x91\xca\x3c\x45\x9b\x9b\x69\x25\x6c\x74\x9e\xc7\x23\xb2\x28\x41\x8a\x1d\xa6\xce\x71\xaa\x02\x98\xfa\xa9\xc7\x43\x49\x6b\x2d\xa1\xe3\x00\x83\x5d\x65\x0a\xb0\xa2\x52\x80\x71\x41\x33\x24\x13\x4f\x10\x46\x94\x7b\x80\x58\x8e\x11\xf9\xaf\x2d\x00\x18\x36\xad\x60\x88\x6e\xaa\x75\xf1\x65\x1a\x4a\x99\x3f\x92\x29\xba\xed\xf8\x55\xcf\xe5\xa3\xb0\x25\x11\x4a\x82\xe9\x1b\xe5\xa9\x62\x2c\x4f\xf5\x52\x68\xdf\x54\x48\xb4\xfb\xb2\xc7\x79\x99\x6a\x23\x1b\xda\x81\x1a\x87\xc8\x7a\xe5\x4c\xd4\x12\xdf\x97\x2b\xc8\x1b\x71\x96\x25\x38\x9e\x6f\x2e\x02\x1d\x1c\x8f\xc7\x53\xef\x53\x61\x8b\x18\x27\x09\xe3\xfc\x87\x96\xbb\x05\x8f\x4d\xee\xc6\x58\x13\x53\xdb\xc0\xb4\xc4\x84\x65\xa9\x14\xb9\x85\x9f\x08\x5a\xe1\xfe\x7e\xc6\xec\xa8\x63\x98\xf9\x88\x6c\x9b\x70\x25\x95\xf4\x50\xe1\x71\xe3\x48\xa6\xd1\xaa\x0c\x57\xb2\x0d\x9e\xba\xac\xde\x22\x28\x90\xc3\x1c\x73\x68\x54\xd3\x4e\xe6\x67\x5e\xf5\x7b\xe3\x2a\x47\xc1\xb5\xcc\x2d\x46\x2a\x6b\x2a\x00\x13\x66\x89\xfd\xcc\x0b\x93\x2c\x45\x04\x82\x4b\x18\x1c\x54\x89\x47\xe4\x7c\xf4\xaf\xf8\xd2\x94\x71\xdf\x95\x4c\x06\x39\x52\x04\x56\x9c\xa6\x5c\xe2\xa2\xfc\xed\x3b\x0e\x80\xce\x28\x48\x27\x41\xe2\xf8\xbe\x2f\xe1\x55\xb3\x2e\xd8\xed\xbc\xbf\xef\xf6\x36\x24\xda\x40\xdd\x57\x54\x79\xad\xd8\xbc\x9e\x0f\xb3\xdb\xd4\xc7\x64\xd1\x13\x14\xe4\x07\x29\x46\xf9\x4d\x90\xb8\x31\x80\xb1\x5f\x43\x28\xde\x90\x90\xa9\xa0\x84\x04\x12\x28\x41\xc9\x6c\xdb\x33\x18\xfa\xcf\x5f\x6d\x4c\xbc\x61\x50\x28\x12\x41\x1c\x5c\xc5\x34\x54\x04\xc1\xf2\xa1\xff\xfc\x25\x9c\x18\x32\x43\xd9\x02\x3a\x2f\x1d\x20\xcc\xa0\x23\x16\x47\x9b\x2f\x3c\x70\x33\xf8\x45\xa5\x83\xf9\x32\xd2\xc1\xe0\xeb\x4a\x07\xf3\xaf\x2d\x1d\x1c\xa2\x11\xea\x38\x12\xed\x6a\xe7\xb3\x33\x21\xe8\x01\xa3\x94\x59\x27\x63\x38\x4e\x26\x83\x38\x2d\x3a\x5d\x79\xb2\x0a\xaf\x9f\x25\x49\x76\xbb\x3b\xc9\x8b\x8c\x30\x66\xea\x4f\xce\x91\xa9\x96\x28\x3c\xd7\x32\x35\xb6\xae\xae\x05\x10\x19\x9a\xe9\x69\x0b\x37\x37\x27\x75\x45\x56\x75\xa8\x60\xed\xc4\x92\x27\x89\x4b\xee\x4a\x4d\xf7\xba\xd0\x64\xe8\x26\x48\xe2\xba\x29\xc2\x43\xb5\x3c\x5f\x0f\x1f\x3f\x89\x7f\xfe\x3c\xe2\x1f\x46\x85\xc7\x92\x0a\xdf\xcf\xf3\x2c\x9f\x51\x14\x9c\x55\x52\x21\x21\xf7\x31\xe5\x40\x85\xeb\x2e\x27\x0a\xaa\xc7\x21\x48\x94\x2c\xee\x0e\xe4\x13\xe2\x65\x43\x1a\xca\x88\x96\x95\xe2\x12\x51\xc7\xa9\x59\x49\xa5\x1c\x64\xc5\xd4\xe3\x87\x85\x6f\x38\x77\x96\x91\x36\x73\x75\x1b\x2f\x4a\x48\x12\xf8\x1e\x07\x4c\x51\x84\x24\xb2\x84\xd9\x97\xa0\x04\x9e\x4b\xc9\x88\x6a\x1b\x86\x61\xde\x93\xe2\x7f\x32\x01\xe1\x5c\x42\xfe\x26\xb7\x08\x01\xe8\xe6\x3c\xd0\x1f\xff\x2a\xf7\x5f\xcf\x14\x2b\xb5\xdc\xc3\xa8\xc0\x80\xfe\x97\x71\x2c\x29\xbd\x7e\xe8\xf6\x59\xec\xe6\xcc\x8c\x9a\x20\xd4\x52\xbc\x5f\xdc\x3f\x83\x0e\x3d\x1c\x06\x39\xe1\x07\x02\x8c\x36\xc8\x2a\x51\xdb\x33\x82\x4c\xef\x28\xd1\x28\xfe\xa6\xb6\x64\xea\x3a\xa5\x55\x2e\xd6\x37\x55\x33\xd6\x59\xe1\xa7\xd0\xec\x21\x8a\x8b\x31\x15\x34\x39\xfb\x67\x67\x27\x67\x0e\x00\x1d\xcb\x67\x93\x24\x99\xf3\xe5\xd9\xfe\xf9\xfe\x85\x43\x1f\x86\x82\xa6\xc6\x17\x1b\x28\x44\x51\xec\x2e\x89\x0d\xd4\x4d\x83\x6b\xb3\x45\xa2\x77\xc2\xe2\x69\xf3\x44\xc6\xb8\xd4\x06\x62\xa8\xca\x7a\xac\xf9\x3c\x30\x5e\xb2\xa2\x89\x8c\x9e\xbb\xb8\xb7\xb9\xc9\xb8\xbc\x67\x96\xba\x12\x40\xf3\x48\x9b\xad\x80\x8c\x5d\x50\x9f\xd6\xb2\x3b\x60\x88\x27\xbb\xa8\x27\x9d\x80\x04\x8f\x59\x77\xc3\xe1\xa6\x39\xaa\xa0\x0e\x2e\xf8\xe4\x2a\x99\xe4\xfc\x0b\xba\xe9\xc6\x07\xea\x7e\x13\x66\x7b\xae\xd3\x13\xe7\x24\xf9\xb7\xfc\x97\xc4\x09\x75\xb8\xd0\xbe\xa1\x40\x11\x93\xea\x20\xf4\x63\xd8\xf0\xb9\x45\xb2\x49\xae\xba\xb1\xf2\xca\x4f\x5d\x89\xb9\xea\x92\x5a\xbf\xaa\xad\xea\x3c\xdb\x7a\x6a\x3d\xba\x94\x71\xfd\x46\x35\x1b\x65\xf6\x3e\xae\xde\x26\xcc\x4e\x94\xc0\x71\xd5\x19\xf3\x67\xf4\x52\x76\x66\xfc\x3c\x76\x66\x65\x09\xc5\xb9\xeb\x20\xff\xb5\xc8\xef\x8c\x38\x5b\xc4\xb0\x48\x07\x7b\x59\x1a\x0e\x83\x74\x80\x4c\x88\xec\x96\x9b\x47\x9f\xf3\x4c\x14\x04\x3b\xcc\x2a\x08\x50\x96\x56\x83\x82\xf5\xca\x79\x81\x2a\x53\xa5\xeb\xcf\x84\xbc\x2b\xc9\x62\xd9\x77\x86\x28\xf6\x2b\x0a\x7a\xb3\x45\x14\x2b\x59\x85\x2d\x4e\xee\xae\x6a\x40\xab\x7d\xfb\x28\xc5\xa0\xb7\x31\x1e\x6e\x85\xd9\x78\x4a\x40\x3e\x99\x66\xfd\x58\xa6\x59\x8c\xae\x88\x7d\x3e\x6e\xff\xb5\x78\xc8\x09\x29\xf2\x06\x77\xd2\x0d\x83\xe6\x35\x35\xa1\x61\x12\x8f\xaf\xb2\x20\x8f\xb6\xb3\xf5\xdb\x6e\x49\xe0\x8f\xc2\x7c\x0b\x16\x75\x42\x5d\x96\xb1\xdc\x23\x82\x7c\x37\x88\x0d\xe4\xc7\x55\x50\x78\xa4\xbf\x7a\x54\x12\x75\x81\xee\x30\xa8\xe8\xf7\x62\x42\xa3\x4a\x93\xc7\x24\x56\x14\x96\x10\x7b\xbc\x06\x72\xa5\xa4\x8b\x00\xa4\xcf\x85\xa5\x29\x2d\x57\x1a\x96\xec\xcd\x63\x03\x65\xef\xa1\x5c\x7f\x0f\xdd\xa1\x70\x62\x90\x16\x5f\x56\x54\xf4\x64\x48\xe6\xce\x28\xf9\x40\x4d\xb3\x4a\x98\x56\x92\x1b\x2f\x4b\x5d\x87\xef\xb4\x03\x53\xb1\xe9\xac\x9c\x6e\x2b\x29\x65\xcc\x92\x4a\x87\x59\xe8\xb5\x82\x87\x51\x93\xad\x04\x3d\xc3\x2a\xbc\xac\xdf\x57\xba\xaa\xe8\x92\xaa\x4b\xd2\x80\xf7\x59\x55\xab\x7d\x73\x48\x52\x5c\x64\xa5\x0c\xf9\xa9\x63\xb7\x63\x8e\xc6\x5b\x9d\x01\xfc\x12\x8a\xeb\x89\x66\x4f\x16\x6a\x38\x28\xa2\x26\x65\xa3\x76\x26\x65\x7d\xd3\xa4\x6c\xd4\x20\x25\xea\x13\x6a\x75\xc4\xa5\x44\x7d\x5d\x4a\xa4\xfe\x84\x7d\x53\x4a\xd4\x6f\x94\x12\xf5\xef\xef\xfb\xa6\x94\xa8\xaf\x4b\x89\xfa\x7e\xb4\xba\x49\xd9\x04\x86\xd2\xa4\xac\x0f\xe0\x58\x91\x12\xf5\x0d\x19\x4e\x9f\x4b\x89\xb4\xf2\x37\xfd\x3a\x66\x1d\x4b\x29\x51\x7f\xbe\x94\xc8\xec\xc1\x7e\x07\xc9\x10\xfb\x64\x7a\xc2\xa4\xac\x2f\x4c\xca\x94\xd0\xb5\xab\x51\x85\x78\xb8\x95\xdd\xa0\x9c\xa5\x24\x7b\x52\x9e\x3d\x29\xcf\x9e\x94\x67\x16\xe5\x59\x22\xfc\xd3\x37\x37\xab\x61\xf8\x42\xa5\xd6\x46\xb9\xb6\x3e\xa5\x1a\x27\xad\xc2\x27\x6d\xd8\x57\xd7\x86\xcd\xd5\x7e\xd1\x20\x40\x2c\xa2\x12\xb9\xec\x6b\x56\x86\x55\x4a\xb0\x67\xca\x21\x95\x7f\xba\x21\x60\xe4\x71\xed\x64\x85\x2b\x2a\xbf\x72\x6a\xcc\xaf\x3f\x12\x55\x2d\x43\x69\xdb\x28\xbd\x89\xf3\x2c\x65\xf1\xe7\x9d\x08\xa1\xf1\x08\xe5\x03\xa4\x35\x45\xe9\x8d\xf6\x7b\x82\xe3\xa4\xa0\xe0\xe3\x74\xb0\x7d\x1b\x24\xd7\xf5\x27\x86\xe9\xa9\xbe\x95\xd6\xac\x55\x58\x6e\xba\x6e\x85\xce\xab\x16\xbe\xb0\x2c\x85\xb1\xef\x4a\xfe\x92\x20\xe9\x49\x82\x4e\xa9\x7b\x7b\x75\x87\x3d\x42\x49\x74\x3d\xcf\x2b\x2c\x3e\x85\xec\x60\x76\xa3\x00\x07\x5b\xac\xab\x9e\x03\x7a\xc2\x3c\xe8\x1f\xe7\x27\xc7\x04\xcb\x16\x48\x71\x7e\x64\xcd\x00\xa0\x2e\x7d\x7c\x78\x31\x57\x17\x65\x95\xba\x88\xb2\xca\x67\x74\xd7\x97\x54\xf8\x24\x99\xf0\x7d\xa3\xfe\xf0\x28\xbd\x01\xae\x2c\xa4\xb9\x1a\x40\xd5\x38\xcf\x32\xfc\xf1\xec\x50\x6b\x2b\xca\x80\x66\xfd\x93\xc1\x8c\xa5\x23\x7e\x09\x83\x0a\xaf\xc5\xa0\x41\xea\xc3\x66\xb4\x4d\x5e\x72\xab\x2f\x9e\xde\x92\x9c\x39\xfa\x85\x9e\x60\x32\xbe\x8b\x53\x4e\x1e\x5d\x25\x19\x75\x3b\xde\x62\x9a\x31\x2b\x01\xc4\xf3\x4d\xae\x2f\xee\xcc\x02\xb3\x6c\xe5\xcc\xb0\x12\xb7\xc2\xf8\x60\xc6\x22\xf5\x50\x4a\x8c\x80\x4b\x99\x34\x77\x52\x74\x90\x17\x66\x11\xba\xbf\xa7\x81\x1d\xf0\xa4\xd8\xa5\xbf\x1c\x07\x8e\x98\x3b\x4a\x07\x79\xfc\x2f\xd2\x26\x42\x38\x88\x93\xfb\x7b\x87\x6a\x0e\x1d\xa9\x1e\xe6\xa1\x80\x8a\xcd\x4d\xf1\x17\xb5\x0b\x73\x53\x5f\xf9\x0d\x53\x01\xca\x4f\x2b\xa0\xa9\x87\x63\x9c\xd0\x3f\x0c\xe8\x00\xd2\xa8\x69\x29\x1f\x19\x01\x27\x01\xc8\x26\x82\x59\xc2\x79\x96\x24\x28\x7f\x97\xe5\xae\xa3\xee\x33\x50\x8c\xf0\xc8\x7b\xc1\x56\xa2\x93\x96\xe4\x6d\xa2\xd1\x60\x02\x3d\x1a\x0c\x67\xfa\x32\xbf\x9b\xf7\xe0\xc4\x4e\x7b\x36\x49\x65\x11\x1f\x54\xa8\x01\x7d\x8a\x0a\xf3\x7d\x44\x85\x79\x40\x44\x18\x8e\x38\xa2\x70\x39\x7c\xf1\x2d\xc3\x4f\xe5\x88\x0a\x08\xb2\x7c\xba\x3d\x46\xf9\x28\x2e\x0a\x16\x8f\x77\xbd\xa2\xcb\x0a\x74\x71\x86\xc6\xd9\xa3\x10\x60\x72\x4d\x28\xcd\xf9\x42\xb5\x53\xdc\xc2\x98\x69\x22\x99\xc7\x81\x3e\x2d\x1a\x07\x93\xbc\xa5\xb3\x28\xec\x20\x2f\x0a\x61\x5a\x74\x14\xcf\x83\x20\x39\xa5\x2e\x0a\x2e\xf0\x52\x1a\x13\x1d\x8e\x45\xfc\xf2\x86\x66\xb2\xbe\x94\xb4\xd9\xca\x98\x4b\x19\x64\x07\x97\x00\x1a\x05\xb6\xd0\x56\xb5\xed\x7a\x0a\x73\xf5\x03\x21\xb4\x65\xc2\x5c\x6d\xcc\x41\x6a\xdb\x41\x98\x14\xdb\xc1\x04\x0f\xb7\x46\x08\x0f\xb3\xa8\xd8\xe6\xb6\x94\x0f\x42\x76\x5f\xd2\x4b\x60\x0e\xae\xd2\x30\x55\xee\xcf\x8a\x2c\xc7\x6f\xa7\x1d\xa7\xa0\x91\x26\x98\x04\xb6\x23\x15\x15\xd7\x71\x1a\x75\x1c\xf2\x5f\x07\x16\x28\xc8\xc3\xe1\x98\x8f\xb4\x33\x0b\x8a\x8e\xa3\x97\x39\x10\x8d\xc6\x78\xda\xe9\x76\x79\xfe\x2f\x67\x2f\x2e\xc6\x49\x30\xa5\xbf\x7a\xbd\x92\xc3\x60\xdf\x32\x7e\xcc\x81\xdc\x47\xa0\x43\x09\x0c\x37\xf5\x1d\x4a\xa3\x33\x5c\x40\xc3\x0c\xe3\xb9\x61\x86\x29\xba\xe4\x68\x6e\x25\xee\x04\x77\xd3\x9e\x9f\x2f\x61\x25\x3f\xef\x04\x14\xc3\xec\x76\x95\x63\xd0\xcc\xb7\xe5\x28\x8a\x73\x14\xe2\x2d\x9c\xd9\x08\xe4\x75\x1d\x97\x7c\x85\xe3\x42\x5e\x62\xcb\xc3\x96\xfb\x8e\x18\xac\xc3\x92\x16\x29\xd2\x12\x47\x59\x1e\xf2\x9e\x12\xc6\x12\x37\x6e\x5d\x2e\x86\x1c\xac\xb8\x75\x79\xcf\x0f\xd4\xad\x6b\x88\xfb\x65\x6c\xdd\x98\xa7\x79\xdc\x66\xb1\x8f\xe6\x6d\x99\xed\x2b\x14\xc5\xeb\x08\xac\xf2\x45\x2e\xb2\x63\x1f\x2d\xbd\x50\x18\x8d\xc6\x49\x80\x59\x32\x95\xef\xf0\x46\x19\x43\xfe\x4a\xbc\x26\x4c\xd6\x44\x66\x16\x15\xb7\x39\x8f\xcc\x24\x93\x9c\xd2\x34\x5f\x2b\x70\xa2\x73\xc3\xcc\x37\x50\x9d\x39\xa5\x5d\xaa\x08\xf3\xcd\x0e\xc3\xdf\x38\xc2\x7c\x59\xc2\x58\xe3\xfd\x32\x31\xf8\x09\xe5\x27\xc3\x76\x84\xd7\xc8\x24\xbc\xc2\x06\xc2\x6b\x44\x08\xaf\x90\x13\x5e\x23\x9d\xf0\x52\x7f\xc2\x91\x49\x78\x8d\x1a\x09\xaf\xd1\xfd\xfd\xc8\x24\xbc\x46\x3a\xe1\x35\xf2\x27\xab\x13\x5e\x84\x72\x11\x84\xd7\x08\xc0\x48\x21\xbc\x46\x06\x59\x34\xe2\x84\x97\x56\xfe\x66\x54\xdf\x92\x48\x12\x5e\xa3\xf9\x84\x97\xd9\x83\xfd\x54\x91\x21\x8e\xc8\xf4\xb8\xe5\xb2\x3f\x12\xdc\xa4\x92\x23\x52\x21\xbc\x8a\xd5\x90\xc4\x03\x5f\xdb\x3f\x2d\x96\x60\xb9\x39\x1f\x3b\xae\x80\x99\x49\xab\x46\x32\x83\x17\xa3\x27\xa3\xd0\x29\xdb\x13\xac\x4a\x06\xeb\xe5\x08\xd6\xb8\x4e\xb0\x16\x73\x9f\xd7\xe2\xa1\x79\x31\x0a\x96\x17\xe3\x09\x69\x3e\x21\xcd\x65\x91\x66\x9e\x25\xab\x52\xbb\xec\x93\x47\x41\xea\x2a\x43\x7d\x14\x74\xae\x3a\xde\x1f\xf3\xf9\xa2\x31\xe9\x9e\x48\xdc\x27\x12\xf7\x09\x5b\x3f\x18\x5b\xff\xd0\xf4\xed\xda\x11\xc4\x8f\x4a\xdd\xb6\x25\x5e\xa1\x73\xca\x58\x89\x27\x2a\xf6\x09\x2f\x3e\x72\xbc\x88\xb3\x6b\x94\xae\x48\xc6\xf2\x6f\x1e\x05\x1d\xab\x8e\xf5\x51\x10\xb2\xda\x80\xbf\xda\x43\x45\x50\x7d\xe5\x43\x96\x09\xc3\x36\x30\x4b\xbf\xd3\x80\x88\x95\xe1\xf3\xe4\x29\x5a\xc4\x8f\x1e\x2d\x82\xd0\x40\xe1\x52\x34\x10\xbd\x3d\x94\x08\xb2\x37\x2d\x10\x26\x57\x87\xe6\xf4\x6b\x47\x27\xa9\xf8\x26\x13\x66\x83\xf4\x95\x2d\xa8\x29\x58\x55\x2a\xfb\x84\x31\xab\xd1\xcd\x40\xaa\x77\x68\x46\x47\xdf\x51\xac\x41\xc4\xa7\xd4\x0c\xe4\xed\xf4\x3c\x99\x0c\x5c\x87\xcf\x91\x99\x59\x4c\xf4\x84\x85\x6c\x04\xed\x73\xfa\xc7\x26\xe0\x6a\x12\xed\x33\xfa\x6b\x09\x14\xc3\x55\xb0\xe2\x0f\x4d\xbf\x57\x67\xf7\x89\x80\x9f\x4f\xc0\x3f\x58\x12\xbd\x43\x9d\xea\xb2\xfc\x60\xaf\x46\xd2\x9f\xb1\x90\xff\x4f\x94\xfd\x13\x65\xff\xe8\x29\xfb\xeb\x9b\xed\x7e\x96\x44\xcd\x1e\x11\x5a\x53\x86\x54\xbf\x2a\x21\x7f\x85\xfa\x59\x8e\x8e\x84\x1d\x24\x45\x50\x9e\x5a\xa8\xc5\xeb\xde\xd0\x22\xb1\xb2\x98\xcc\xd4\x48\x31\x0a\xbd\xeb\x1b\x8f\x4f\x95\x3a\xf1\x39\xdb\x0e\x0d\x1d\x72\x8d\xa6\xf7\xf7\x2c\x46\x11\xfd\xa1\xa5\x33\xc7\x32\xdd\xc2\x45\x26\x80\xf0\x38\x6c\x2b\xd1\xeb\x72\xed\x1e\x68\x9e\x14\x17\xef\xd8\xd0\xbf\x03\xa3\xfd\x86\xcd\x31\x02\x23\x55\x6b\xcf\x02\xc2\x90\x89\x11\x46\x0a\xb0\x05\x77\xb6\x1d\xb2\x09\xcf\x75\xb3\x25\x04\xb4\xd5\xe7\x28\x94\xe6\x6d\xd4\xa1\x40\xf4\x93\xb3\xed\x80\x92\xbb\x08\x88\x4b\xfc\x1c\xc9\xd8\x4a\xcf\x15\x23\xfe\xfb\x7b\xe7\xbf\x5e\xfe\x97\xf3\x5c\x35\xec\xe7\x06\xfa\xf7\xf7\x8b\xf7\xf9\xc9\xde\xfe\xcf\x63\x9e\xda\xc6\xde\x7e\x9b\x93\x6a\x34\x83\x56\x3f\x9b\xa4\xd1\x77\x68\x94\x2a\x6c\x06\x95\xfc\xfa\xea\x35\x23\x67\x5f\x4c\xc3\xa3\x79\x07\xd3\x10\x39\x90\x65\x98\x81\x2c\xaf\x1d\x44\x5e\x1c\xad\x86\xff\xe4\xca\x50\x4b\x4d\x9c\x8d\xb3\x24\x1b\x4c\xdb\x3a\x28\x30\x61\x04\xd9\xa9\x4a\x20\x11\xfe\xd0\xae\xdb\xd1\x17\x71\x7e\x0d\x97\x71\x7e\x1d\x7f\x5d\xe7\xd7\xf0\xab\x3a\xbf\xca\x05\x1e\x3d\x26\x79\xd6\xf8\x1b\x45\x5d\xed\x3f\xc9\xd1\xfe\x0c\x72\xb4\xab\x39\x49\x77\x02\x1c\x6c\x31\xf7\x04\x81\xdb\x95\x24\x3c\x73\x24\x17\x31\x75\x29\x67\x5e\x5e\x4d\x92\xb7\x3e\x42\xd1\x55\x10\x5e\x53\xc9\x9b\x11\xce\xf5\x81\xb1\x5c\x47\x5c\xc0\x46\xc6\x2d\x85\x6b\xb2\x94\x31\xc6\x99\x51\x2a\x87\x01\x27\x9a\x30\x8e\x29\x40\x0e\xc4\x44\x54\x07\x55\xfa\x9c\x8a\xef\xb4\xb4\x7f\xae\x23\xf4\x26\x8e\xb2\x04\x34\xab\x0e\xcb\xef\xe0\x2a\xb2\x3c\xd9\x82\xc6\xf9\x4c\x23\x37\xf5\x5f\xa7\xde\x9e\xb4\xb4\xa3\xb1\x49\xab\x9f\x9b\x9b\xa9\x77\x4e\xf7\x82\x90\xc6\xb4\x92\xfc\xa1\x14\x9f\xcb\x42\xea\xf9\x55\xd5\x9c\x0a\x17\x2f\xda\x40\xfe\x22\x0d\xf6\x50\x81\xe3\x94\x0e\x9e\x83\xc5\x12\xac\x5a\x77\x2e\x6b\x24\x6c\xa5\x5a\xed\x00\x57\x1d\x80\x0d\x79\xc4\xf3\x37\x3c\x70\x2c\xd9\x05\x8f\xad\x92\x3b\xab\x66\xd7\x51\xa7\x0a\xab\x79\x76\xd8\x84\x44\xc9\x79\x47\x99\xe0\xfd\x7d\x15\x84\xcf\x98\x68\x47\x99\xa6\xda\xcc\x98\x6e\x87\x4d\x49\x2b\x3e\xef\x60\x7b\x17\xb6\xf9\x76\xb0\xb5\x9f\x12\x74\xe6\x1f\x13\x91\x1b\x5c\x3d\x26\x90\x5d\x82\x02\x61\x37\x87\xce\x0e\x0f\x1b\xe6\x04\x49\x92\xdd\x92\x7b\x54\x9d\x1c\xba\x86\x63\x94\x17\x71\x81\xdd\x1c\x54\x01\xa9\xdc\x5c\xa4\x64\x22\x2f\x1b\x63\x83\x48\x19\xff\xaa\x9f\xa3\x62\xe8\x82\x92\x66\x1d\x3c\xaa\xa4\xcd\x22\xcc\x59\xe4\x92\xff\x9b\x95\xd0\xea\x29\xc8\x3d\x9a\x35\x76\xdb\xb1\x96\x56\xb4\x25\x21\x04\x1d\x00\x36\x8c\x03\xcf\x93\x56\x05\x38\xe0\x71\xa8\x68\x76\x90\xdf\xb7\x5f\xcc\x52\xc5\x1f\x91\xfe\x64\x5e\x8c\xec\xef\x28\x2c\x2b\xd4\x52\x6c\xf7\xb3\x7c\x8b\xf7\xc4\x9a\x06\x23\x54\xfe\x2e\x2e\x70\x84\x68\x18\x0b\x1a\x5b\x15\xcc\x9a\x2e\x9e\x12\x56\x02\xc6\x7e\xdf\x2d\xb4\x14\x4a\x14\x8f\xb4\xcf\xa1\x94\x99\x80\xd7\x25\x95\x9f\x98\x80\x2b\x6c\xd6\x5e\x2a\x6f\x80\x36\x10\xa2\x03\xbb\xc9\xe2\xc8\xa0\x73\x21\x00\x58\x68\x01\x48\x55\x2d\xc0\xd5\x5c\x5e\x43\x51\x3e\xac\x81\xb5\x78\xd2\x73\x3e\xd1\x67\xdf\x2f\x7d\x16\xce\x0d\x05\x8a\x52\xbc\x3d\xc4\x78\x3c\x87\x2e\x53\x54\x9c\x81\x41\x68\x25\x0f\x24\xb4\x84\x26\x93\x0d\xa0\xae\xe1\x64\xf8\x4d\x68\x37\x79\x80\x64\x7a\xf5\x8c\x48\xcc\x1c\x40\x07\x7b\x42\x0d\xe7\x3f\xaf\xfe\x86\xd5\x9f\x5c\x82\xc7\xda\x7b\xc1\x55\x96\x63\x57\xbe\x6b\xca\x6b\x38\xeb\xa2\x5e\x07\x97\xc0\xa6\x0b\x15\xa3\x6d\x8f\xd0\x6b\xda\xd0\xb5\x21\x74\x63\xc4\x74\xe5\x18\x32\x5f\x84\x6a\x6d\x1f\x92\x6b\xad\x60\xd8\x65\xf5\xac\x8a\x8c\xda\x8e\x5f\x99\xb8\x7a\x1c\xe0\xe1\x36\x0f\x93\x5e\xd7\x26\xcc\x93\x62\x57\x22\x9d\x2a\x12\x20\xbc\xaa\xf0\xf0\xf0\x87\x16\xef\xdc\x7c\x11\xf1\xce\x70\x19\xf1\xce\xe0\xeb\x8a\x77\x86\xdf\x46\xbc\x33\x7d\x4c\xcf\xf8\xe0\x1b\x89\x77\x4e\x9e\xc8\x87\x3f\x03\xf9\x70\xd9\x6c\x6a\x12\x66\x29\x0e\xe2\x14\xe5\x73\xa4\x34\x28\xbd\x51\x04\x34\xcb\x46\xf6\x29\x9a\xda\xb3\x87\x81\x3c\xa0\xcd\x0d\x12\x9a\x9b\x20\x33\x48\x95\x89\xf1\x3b\x34\x48\x17\x25\x02\xdc\x02\xe2\x65\x2a\x88\x17\x39\x7d\x18\x71\xfa\x45\x54\xd1\xa8\x7f\x23\xa3\x50\x89\x58\xe3\xc0\xb1\x51\x29\x02\x0e\xf6\x2d\xe5\x64\x42\xf0\x8a\x13\x43\x97\x05\xc2\x67\x42\xc1\xe9\x0a\x55\xb7\x5e\x6a\x53\x76\x23\x3e\xff\x01\xc2\x6e\xca\x03\xe1\x41\x5d\x5d\xfa\x93\xe3\x5d\xca\x30\xa2\xdc\xaa\xd5\x01\x4a\x10\x4f\x11\x6a\x5a\x35\x79\x65\x01\x57\xa5\x6e\x56\x87\xe8\x15\xe3\x24\xc6\xae\xe3\x39\xc0\xfb\x94\xc5\xa9\xeb\x6c\x3b\x00\x22\x50\x25\x03\x5a\x69\x50\x9a\x6d\x4c\x35\xae\x5c\x8c\x4b\xa9\xf7\xe9\xcb\x29\x95\x58\x39\x93\xbd\x05\xab\xf5\x27\x23\x67\x28\x9d\x05\x3c\xf4\xb6\xaa\x0e\x5b\x7d\x09\x02\x20\xca\xb7\x65\xb9\x47\x97\xa6\x2c\x50\xce\xae\xfa\x2f\x72\x36\x02\xc3\xcb\x30\xae\x64\x33\x2a\xb1\x4b\x35\x27\x7a\x66\x7e\x57\x96\xc1\x7b\x31\xc3\xa5\x47\xcd\x95\x7e\xa7\xa4\x8f\x44\x2a\x29\xa0\x21\xe8\xc8\x9e\x22\x81\x72\x36\x50\x52\x20\x19\x44\x2a\xed\xbe\xec\x6d\x30\xb1\x23\x32\x52\xd3\xe6\x80\x53\x3f\x7c\x12\xd0\x01\x60\x83\xe5\x58\xa9\x22\x77\x3e\xcf\xab\xec\xb3\x08\xa8\x89\x7f\x44\x7f\x65\xf5\xf6\x8e\x0c\xeb\x80\xea\x29\xd1\xf3\xba\x2a\x73\x53\x70\xb0\x59\xe5\xe9\x06\x5b\x34\xd9\x10\x2b\xaa\x68\x90\x45\x1f\xb1\x55\xeb\xbe\xec\x01\x88\xca\x02\xe1\xc9\x78\x57\x46\xb4\x62\xe4\xa5\x94\xb7\x69\x84\xcd\x8d\x7b\x43\x45\x60\x00\xce\x4a\x38\x93\xe7\xa0\xa3\x1f\x0b\xf2\xe6\xb1\xab\x6b\x82\xd6\x2e\x6f\x69\x0a\xd1\x66\x66\x88\x2d\x8a\x81\xe8\xe6\xcb\xe0\x93\x1d\xe7\x27\x16\xf5\x3f\xbd\xf1\x6e\x82\xbc\x16\x95\xb2\x26\x99\x2b\x2b\xe9\x1b\xd2\x7b\xe0\xe8\xc7\x4b\xb3\x7c\x44\x0f\xe5\x69\x83\xc1\x06\x9f\x4c\x05\x48\x9b\x86\x90\xa9\xa9\x97\x46\xc9\x2a\x5f\x4b\x99\xb4\xc1\x04\xe5\xdd\x1e\x3f\x04\xb5\x98\xcc\x98\x46\x60\x24\x64\xa8\x92\xdf\xe7\xfe\x5e\x3f\xa5\x18\xdc\xdf\xd7\xbf\xbc\xbf\x77\x25\x4f\x40\x1f\xbf\xc2\xc5\x72\x33\xf4\x01\x7a\x9e\x97\x8a\xa1\x6b\xb6\x1f\xdf\xe5\xd8\x8d\x11\xb2\xc1\x97\x30\xf2\x4f\xdc\x50\xe3\xed\xaa\x77\xab\x3d\xc3\x39\x32\xa1\xd3\xa7\xaf\xbd\xf0\x70\x6c\xc2\xd5\x5e\xcf\x6e\xd2\x5a\x38\x69\xc2\x97\x11\x7f\x8b\xb6\xa0\xaf\x6c\xa0\xe9\x1b\xde\x8d\xdb\xc2\x36\x21\x57\xc7\xd5\x81\xdd\x6c\x31\x93\xdf\xf8\x35\x80\xa1\xca\xe9\x1b\xfd\xa8\x47\xcb\x81\xdd\xc9\x8a\x1d\x69\x9f\x1b\x3d\x85\xaa\x4c\xe1\x72\xbe\x4c\xa1\x88\xd3\x81\x99\xd1\x68\x69\xa1\xad\x64\x5c\xd2\x1f\x5a\x38\x90\xaf\x22\x1c\xc8\x97\x15\x0e\xa4\x82\x11\xcf\x17\x06\x3e\xcf\xbf\x86\x70\x20\x07\xa0\xa3\x8c\x69\xed\xc2\x81\xbc\x59\x38\xf0\x48\xf3\x22\xd4\x8c\xfe\x67\x71\xb1\x4b\x15\x2a\x1d\x9b\x5d\x9e\x50\x44\x53\x9a\x8e\x65\x16\x34\xa9\xd9\x71\x36\x76\x41\x09\x29\xe5\x66\xc0\x10\x94\xa9\x94\xaf\x72\xb7\x00\x8f\x36\x96\xba\x3f\x2f\x0a\x99\xfe\x94\x85\x5a\x6d\x0c\x41\x5a\x34\x54\x4b\x55\x1f\x8c\x59\x0b\x31\x25\x83\x03\xe2\x3b\xc5\x59\xbc\xf3\x7f\x9e\xd2\x64\x36\x6e\x4e\x83\xa0\x06\x4a\x84\xd3\x02\xb2\x1e\x3b\x09\x64\xf3\xef\xc4\x25\x14\x51\x9a\xdd\x59\x8c\xd1\xa8\x13\xbf\x51\xe0\x98\xaf\x7f\x6a\x53\x4d\x07\x50\xea\x83\x3b\x09\xac\x74\xbf\x05\xb9\x25\xa9\xea\x8a\x33\xd3\x87\xd2\x49\x20\x1d\x60\x1c\x75\x90\x17\x47\x34\xf3\xdb\x72\xf1\xeb\x19\x29\xbb\x3d\x26\x1c\x4c\x18\xd0\x08\xe1\x61\xa2\x22\x4e\x0d\x3d\xae\xc3\x96\xb0\x2a\x98\x1d\xec\x75\x90\xff\x1a\x79\x07\x7b\x90\xa9\xe0\xc9\x0f\x4a\xf4\x2e\x3d\x58\x25\x2e\xe1\x57\x1a\xb4\x3e\x52\xa8\x04\xc3\x64\xa5\x4a\xc1\xd2\xd3\x18\xa2\x20\xc1\xc3\xad\x70\x88\xa8\x46\xf5\xcb\xcd\x83\xe1\x7a\x73\x0e\xc7\x59\x24\x7e\x66\x11\x82\xe7\x4c\x48\xc2\x4a\xf8\x0f\xda\x6e\x97\x8c\x4f\x6c\x1a\xff\x41\x03\xa5\x8b\x32\xde\xd8\xe3\xc5\xc7\x19\x46\x85\x00\x4c\x38\xe8\x93\x09\x1e\x4f\x30\x2b\x61\x7f\x8b\xce\x2e\x82\x01\x6d\x29\x91\xa5\x2f\xa1\x91\x2a\x68\x12\xbd\x6f\x70\x07\x7b\x38\x63\x3f\x99\x95\x2d\x2e\x4b\x65\x9f\xf0\xb2\x6b\x1f\x2b\x8a\xe6\x2f\xbe\xf0\xaa\xbd\x89\xff\xba\x8b\x14\x43\x1b\xe8\xfc\x85\xf2\xd9\x4a\xd1\x1b\x67\x27\x49\x9e\xf1\x65\x28\x9e\xb9\x7f\x01\x8e\x99\xf8\x82\x67\xbd\x00\x35\x83\x13\x06\xde\x28\x95\x7d\x18\xe5\x2b\x74\xf4\xa0\x35\xbe\xbe\x99\xaf\xe0\xc9\xe3\xc1\x10\x6f\xe1\x3c\x1e\x7d\x09\xeb\x65\x46\xc0\xcd\x3e\xa0\x29\x59\x15\x5d\x06\x83\xbc\x0f\x68\xea\xe1\xec\x30\xbb\x45\xf9\x6e\x50\x20\x17\x68\x12\x17\x6b\x7e\x11\xfe\xa2\x6d\x2c\xb4\x58\xae\xaf\x44\x9a\x45\xe8\xab\xdc\x70\xfd\x4a\xef\x44\x51\xce\xd3\x0a\x22\x8f\xff\x80\x47\x08\x07\xa4\x84\x77\x2a\x32\x44\x23\x8f\x54\xdc\xdf\xcf\xca\x4a\xda\x4d\x76\x82\x7c\x1a\x66\x69\x18\x60\x17\x03\xd8\xed\x3d\xec\x28\xb0\x77\xf3\x5b\x21\xeb\xca\xf1\x8e\x23\xeb\xaa\x00\x9e\x65\x09\x6d\xeb\xba\xc8\xdb\xd9\x3d\x2c\xd8\x0a\x90\xd2\x3d\x06\xae\x60\x09\xce\x79\x12\x11\x06\x12\x40\xe6\xb7\x57\xff\x90\x95\xcf\xfb\x74\xe9\xe7\x81\xc7\x0f\xfc\xfe\xd6\x6c\xe9\x19\xd0\x08\x31\xdf\xdf\xf8\xd5\xcd\x43\x6c\xc7\x62\x64\xdd\x2b\x71\xf2\x5d\xf9\x2c\x1d\x44\xe4\xd9\xc0\xf5\xf6\xca\x8b\x09\xd4\xef\xc8\x45\x6c\xfc\x88\x54\xb2\x2f\x96\x5e\x53\xae\xcb\xd8\xaa\xdc\x2a\xbe\x31\xe1\xc0\x50\x8d\x78\xc9\x2b\x6a\x80\x94\x90\xe9\x36\x91\x09\x36\xe4\x44\x2b\x4e\xb3\x1c\xf3\xbd\x11\x9f\x90\x22\x52\x07\x3c\x9c\x9d\x53\xa9\x97\x0b\xa0\x23\x6a\x09\xe2\x72\xac\x28\x4d\x6d\xb1\x04\x6a\x83\x0e\x9d\x50\x33\x3c\x59\xfd\xa5\xf0\xa4\x30\x83\xfe\x36\x97\xa6\xda\x44\xb1\x79\x4b\x1f\x4b\xe6\x4c\xfe\x1d\xde\xf5\xca\x05\x9b\x9f\x34\xf9\xbb\x42\xfd\x88\xe2\xfb\x85\x88\xfe\x7b\xc2\x15\x96\xec\x06\xf5\x4d\x99\x8c\x0b\x9c\xa3\x60\xf4\x75\x90\x85\xb2\x41\x16\xb2\xb4\x4e\x95\x1e\x66\x61\x90\xbc\x8d\xd3\x48\xc3\x04\x66\x69\xd5\x4c\xe0\x05\xa5\x0d\x29\x52\x50\x42\xe3\x69\xe5\x2a\xb3\xbc\xd8\xde\x92\xf6\xd6\xf5\xb4\xef\x5b\x51\x80\x03\xa5\xf5\xf6\xa7\x22\x4b\x1f\x53\x8e\x77\x6d\xa2\x64\xf0\x5b\xc1\x38\x5e\x7a\xa6\xb4\xf1\x63\x9d\x6d\x8e\x8a\xe5\xf6\x94\x36\x7c\xa4\xb3\x5c\x22\x8d\x9b\xda\x9c\x1a\x6e\xd6\xd9\x2e\x52\xbc\xcd\x0a\x9b\x6a\x87\x28\x88\x50\xae\x43\xa6\xb2\x39\x96\x11\xaa\x5e\x2a\xe8\xfb\x7a\x8d\x14\x59\x59\xfa\x62\xc2\xb0\xad\x7e\x9c\x0e\x50\x3e\xce\x69\x72\x48\x7b\xbe\x43\x66\xd1\xa7\x48\xe9\xb3\xc7\x26\x66\x65\x32\xcf\x89\x6f\x93\x84\xe6\x0d\xa6\x51\xa8\x41\x70\x9d\x77\xb1\xce\xbc\xf6\x7c\x32\x52\x72\x80\x70\x37\xf5\xde\xef\xef\xec\xed\x9f\x9d\x5f\x9e\xff\x76\xf4\xf6\xe4\xb0\xe7\xe7\x10\x97\xdc\x99\x37\x7c\xb0\x2d\x6e\x80\x71\x10\x0e\xdf\x8b\x83\x31\xa9\x6a\x94\xed\xa3\x09\x0c\xe3\x8a\xcf\x0e\xbc\x77\x27\x67\xfb\x07\x3f\x1f\x5f\x7e\xd8\xff\x0d\x26\xde\xf1\xf9\xe9\xce\xee\x3e\xfd\x51\x78\xa7\x3b\x67\x17\x07\x17\x07\x27\xb4\x92\xca\xd2\x8b\x71\x96\x46\xef\xb2\x9c\x9a\x36\x68\x6e\xe0\x94\xc8\xca\x41\x25\x29\x9a\xb8\x08\xba\x81\x9f\x0b\xd9\xb0\x32\x08\xa6\x7a\x1e\xe7\xf1\x28\xc8\xa7\x1f\xd0\x94\x27\x24\x4f\x26\x03\xfa\xc3\x8b\x42\x88\x94\x55\x3a\xde\x39\xda\xa7\xc3\xea\x69\xc5\x72\x74\x3d\x60\x88\xa1\x02\xf0\x26\xa0\xcf\x72\x02\x3a\xdd\xa0\xc7\xff\xec\xbe\xec\x01\x26\x91\x0a\x60\x52\xd6\x66\x73\x86\xc2\x2c\x8f\xec\x73\xa2\x96\xf6\x5f\x7a\x12\x6e\x0e\xb4\x35\x66\x92\xf0\x6a\x58\x50\xe6\xe8\xe5\x2b\x2a\xfa\xe2\xd2\xf5\x6a\x28\x1b\xea\xf8\x09\xe1\xeb\x3e\xaf\x12\x07\x8b\x24\xf1\xea\x54\x0a\x98\xc0\xbc\xab\x9d\x85\x5e\xd3\xe8\x73\xc5\xbd\xcb\xc5\xfa\x90\x3f\x52\xaf\xa6\xef\x6e\xc8\x4d\x0b\x6e\x8c\x7e\x0f\x25\xc8\x3e\xfa\x58\x1f\x7d\xd6\x3c\x7a\x42\x85\xce\xba\x59\xaf\x53\x1b\x70\x06\xe3\xd6\x03\x9e\x75\xe3\x5e\x27\xef\xc6\x3d\xd8\x55\xaf\x2a\x29\xd3\x7e\xc3\xae\x71\x79\x49\x0b\xb3\xa8\x04\xdd\x8c\x60\xa4\x52\xda\x86\x9c\xd1\xa5\x28\x90\x6a\x18\xaa\x6d\x9f\x62\x45\x32\x4d\xb2\x20\x72\x59\x23\xb1\x9d\xb2\x9a\x30\x60\xcc\x9e\x91\xd6\x6f\xb0\xa0\x48\x0e\xb3\xbe\x72\x13\x6f\x84\x70\xe0\x4b\xcb\xb6\xd8\x67\xf6\x0f\xf6\x71\xcc\x48\xe3\x4e\x01\xbb\x98\x29\x9f\x08\x65\xda\xeb\x24\x25\x83\xac\xd9\x18\xf9\xbe\x1f\xbf\x49\x3b\x71\x89\xe3\x11\x2a\x70\x30\x1a\xcb\x77\xdc\x4d\xd1\xed\xb3\xbd\x00\x23\xe0\x0d\x58\x8a\x6a\x57\x99\xb8\x1c\x2f\x7d\xc6\xaa\x5d\x0f\xea\xb8\x9a\xe6\x1b\x8f\xe8\x49\x79\x66\xa9\xe6\x53\xca\xfc\x59\x18\x84\x43\xc4\xcd\x82\x3a\x71\x37\xf7\x76\x77\x76\xdf\xef\x5f\xee\x9e\x1c\x5f\x9c\x9d\x1c\x1a\xaf\x03\x0c\x59\xfa\xe4\x58\x81\x78\x70\xbc\xb7\xff\x2f\xb3\x5d\x14\x6a\x6d\xf6\x76\x2e\x76\x76\xf7\x8f\x2f\xf6\xcf\xcc\x86\x5c\x0f\x16\xdb\x0e\x98\xd9\xb6\x52\x5a\xc5\xb6\x83\x67\x34\xaf\x1b\x76\xc5\x5d\xe7\x6e\x2b\xa7\x0e\x07\xbd\xcd\x4d\x37\xf3\xe8\xdf\x5a\xb1\x30\x95\x21\xad\x85\x23\x22\x6d\x1a\xf3\x24\xcf\xfe\x2b\xf4\xd7\xbf\xc8\x2a\x00\xf9\x91\xf1\x7d\xbf\xa0\xed\x08\x62\x61\xa7\x4c\xd9\x5c\x18\xd8\x2d\x93\x2b\x47\x4a\x04\x9d\xf3\x69\x1a\x92\x0d\x77\x20\x83\x42\x95\x70\x30\x2b\x6b\x87\x59\xa7\x57\x90\x1a\xf9\xa2\xc1\x57\x42\x23\xfd\xec\x2a\xaf\x26\xd2\x4f\xa3\x14\xeb\x44\x99\x0a\xcd\xe2\x46\xa1\x5a\x0b\x3c\x32\x2a\x8b\x52\x39\xc1\xca\x54\x4e\x2e\x8c\x70\x25\xd2\x75\x60\xea\x9d\x9e\x1d\x1c\xed\x9c\xfd\x46\xe9\x13\xd9\x84\xa3\x69\x52\x7f\x7e\xf8\xf1\x67\x5a\xa9\x6e\x66\xb0\x78\x33\xaf\xe2\x34\x8a\xd3\xc1\x56\x3e\x69\x36\x57\x59\x61\x37\x35\x70\x4f\xdb\xf9\xd5\xb7\x33\xcc\xb2\x3c\x8a\xd3\x39\x01\x8d\x57\xd8\x4c\x05\xd8\xd3\x56\x7e\xf5\xad\x6c\xce\x77\xbc\xc2\x16\x1a\x2c\x72\x9d\xeb\xb6\xb0\xb8\xcc\xe0\x8a\x12\x08\x95\x9f\x5a\xfc\x43\x9b\xa2\x65\x5f\xc4\x4f\x2d\x5e\xc6\x4f\x6d\xf2\x75\xfd\xd4\xe2\x6f\xe3\xa7\x36\x79\x6c\x38\x82\xfb\x23\x2f\x72\x16\x5a\x35\xad\x37\x0b\xad\x6b\xcf\x7e\x4a\xed\x91\x45\x2a\x6f\xc2\x35\x34\x07\xa5\xcd\x35\x91\x5e\xd0\xe8\xd0\x17\x34\x38\xf4\x05\xa6\x43\x5f\xa0\xb9\x80\x05\x73\x53\x79\xc3\xc9\x62\x3c\x38\x99\x87\x07\xe7\x49\x57\x84\x71\xbb\xde\x02\xfb\xaf\x29\xbf\x9c\x02\xff\xf5\x2c\xf5\x53\xa1\x8a\xd0\x8c\xd7\x1c\x07\x76\x55\xee\xb5\xd7\xa1\xbe\x0b\xc8\x77\x53\x1f\xd3\x8f\x41\x37\x6f\x60\x63\xb8\xd1\x9f\xf4\x43\xd8\x3d\x39\x3e\xff\x78\xa8\x70\x1d\x97\x87\x27\xbb\x3b\x87\x74\xcf\x17\xb5\xe4\x0b\x41\x9d\xc3\x90\xd2\xe3\xde\xfe\xbb\x9d\x8f\x87\x17\x97\x3b\xbb\x87\x97\xa7\x27\x87\x07\xbb\xbf\x19\xfc\x86\x60\x37\xe4\xf4\x32\x37\x73\x67\x25\x44\xcc\x41\x83\xaa\x1a\x78\x54\x18\xdf\xf7\x03\x78\xca\xd6\xbf\x2a\x4a\x20\xd7\xf6\xef\xec\x1e\x72\x65\x51\x41\xee\x23\x80\x98\xd9\xd7\xab\x9e\xd3\x23\x7e\xe2\xc6\x7e\x37\xe8\xc1\x7e\xbb\xf8\xb9\x43\x33\xdc\x63\xbf\xc1\x95\x72\xd8\x45\x3d\xbf\xcf\x5d\x29\x87\xba\x2b\xa5\xfa\x13\x0e\x4d\x57\xca\x61\xa3\x2b\xe5\xf0\xfe\x7e\x68\xba\x52\x0e\x75\x57\xca\xa1\x3f\x5e\x3d\xdc\x63\x04\x47\x32\xdc\xe3\x10\xc0\x2b\xc5\x8d\x67\x68\x38\x3a\x0e\xb9\x2b\xa5\x56\xfe\x66\x58\xbf\x47\x57\xd2\x95\x72\x38\xdf\x95\xd2\xec\xc1\x8e\x0a\xc8\x10\x87\x64\x7a\xcc\x95\xb2\xf0\x87\x30\x61\xa2\x3f\xe9\x6b\x0e\x87\x8b\x5d\xe1\x35\xba\x23\x2e\xc2\xec\x06\xe5\xd3\xad\x70\x18\xc4\x4b\x49\xf7\x17\x11\x21\x06\xc4\x85\xc4\xe4\x0f\x4b\x67\x04\x5f\x84\xce\xc8\x97\xa1\x33\x92\xaf\x4b\x67\xe4\xdf\x86\xce\x48\x1e\x1b\x9d\xc1\x08\x88\xd5\xe3\x92\x24\x8b\xdf\xe0\x64\x85\x37\xd8\xa2\x13\xb0\xbe\xc4\xbc\x9d\xed\xce\xe8\x78\x34\x57\xf0\x28\x82\x81\x1b\x90\x87\x2c\x67\x0f\x59\xb7\x1a\x48\xaf\x93\x7b\xbb\x04\x29\xa8\x65\x25\xdb\x5d\xf6\x6a\x2d\x8c\xfd\x5d\x57\x33\x7e\x3d\xd5\xeb\x0a\x71\x6a\xa9\x67\x51\x3f\xcb\x47\x6f\x51\x92\xa5\x83\xe2\x22\x33\x85\xd0\x95\x13\x7f\x29\x1b\xbf\x0f\x8a\xa3\x20\x9d\xce\x69\xba\x50\x55\x85\x81\xff\x1a\x2f\xad\x04\xaa\xb5\x7e\x17\xa7\xd1\x4e\x92\x2c\xd1\xd2\x54\xe3\x2c\x68\x6e\xaa\x50\x16\x34\x37\x75\x16\xd6\xe6\x8b\x43\xf8\xaa\xa7\xc5\x6a\x78\xfd\xc0\x37\xae\x82\x35\x37\xa9\x86\x44\x54\xc5\x63\x43\x54\x84\x21\x8a\x9b\x23\x2c\xa0\x34\xcc\x22\x1e\x5f\xe1\x21\x4c\x51\xdc\xc8\x14\x31\xb8\xdc\x6f\x86\x30\x46\xf3\xb2\x75\x7c\x7d\xc6\x28\x56\x18\xa3\x62\x31\x52\x2e\xe6\x21\x65\x02\x5c\x06\x4a\xa0\x3f\x34\xef\x20\xa6\x1b\x9c\xe4\xb1\x60\x41\xe8\xd2\x90\x82\x8b\x60\xe0\x82\x12\xa5\xc5\x24\x47\x07\x7b\x8a\x6b\x74\xe5\x70\x8f\xa0\x73\xb0\xc7\x69\x0c\x07\xbc\x71\x91\x77\x88\x06\x41\x38\xf5\x09\xa5\xcf\xff\x3e\xd8\xf3\x91\x77\xb0\x07\x3a\x55\xe5\x2b\x48\x4a\x7c\xd1\xf3\xef\x2f\x66\xc8\x0c\xb5\x59\x76\xaa\xc2\xe3\x73\xed\x57\x30\x42\xec\xb7\x2d\xa2\x64\xad\x46\x7c\x6c\x58\x67\x95\xbf\x43\xd4\x92\x67\xa4\xec\x9f\xe0\xaa\xf8\xe2\xc9\xb5\x22\xc4\xdb\x52\x08\x72\xde\x8b\xa8\xf6\xe6\xa6\xbe\xde\x47\x0a\x20\x67\x40\x8d\x9e\x6a\x9a\xef\xb4\xb2\xc3\xd0\x14\xb1\xc1\x5c\x35\x72\x42\x3a\x75\x13\x3f\x05\xc6\x5e\x61\xdb\x5e\x61\x6d\xaf\xb0\xb1\x57\xb8\x71\xaf\x70\x7d\xaf\xb0\x65\xaf\x6a\xfa\xe0\x00\xe6\x30\x51\x62\x9e\x02\x37\x59\xa0\x4c\x6f\xbd\x0a\xf2\x38\x27\xde\xc1\x1e\x4c\xe8\xaa\x90\xbf\x96\x1d\x5b\x09\x33\x2d\x9b\xc1\x44\x41\x44\x21\x4d\x92\x10\xb5\xe3\x97\xc7\x26\xbf\x1c\x35\xf0\xcb\x63\xc2\x2f\x47\x9c\x5f\x1e\xeb\xfc\xb2\xfa\x13\x8e\x4d\x7e\x79\xdc\xc8\x2f\x8f\xef\xef\xc7\x26\xbf\x3c\xd6\xf9\xe5\xb1\x1f\xae\xce\x2f\x67\x70\x22\xf9\xe5\x31\x80\x23\x85\x5f\x1e\x1b\xdc\xec\x98\xf3\xcb\x5a\xf9\x9b\x71\x1d\xbd\x8e\x24\xbf\x3c\x9e\xcf\x2f\x9b\x3d\xd8\x5f\x08\x32\xc4\x31\x99\x9e\xc8\x37\x33\x16\x29\x12\x94\x08\x6d\x0a\xbf\x1c\x2f\xa6\x22\x9a\x5d\x8b\x56\x20\x1f\xae\x6f\xfe\xa4\x74\x43\x80\xb3\xab\xb5\x13\x0d\x11\xfa\x13\x11\x0d\xf2\x94\xe9\x0e\xcd\xc8\x0b\x30\xce\x5d\xe7\x9f\xf4\xd6\x83\xa6\x10\x1f\xe9\x1b\x16\xa0\x98\xad\x98\x87\xee\x50\x38\xc1\xc8\x4d\x01\x43\x54\x6b\x7c\x14\xab\x78\x3e\xdd\x97\x3d\xef\x1c\xd1\x08\x19\x9b\x9b\xae\xfa\xd3\x77\x1c\xfe\x54\x52\x1b\x36\xdb\xbb\xdc\xe6\xe5\x77\x67\x16\x01\x31\xe0\xd2\xd1\x1a\xc6\x97\xa7\xe8\x09\xe3\x3f\x61\x7c\x15\x97\x9b\x2e\x94\xcb\xe1\xfc\x79\x92\x08\x9b\x19\x33\xe9\xc4\xaa\x9d\x7d\xbc\xf1\x1d\x84\x89\x9d\x7a\xdc\x39\x5e\xa2\x5e\xc1\xdd\xbc\x12\x02\x6d\x6e\xba\xda\x6f\x9f\xb9\x9d\x00\x88\x4a\x53\x68\x66\x4b\x13\x49\x5e\x9b\x28\x42\x11\xc3\x44\xc5\x51\x7c\x17\xa7\x0b\x93\x99\x06\x16\x54\x9c\xeb\xa8\x38\x30\x51\x71\x35\xc4\xaa\x92\x60\xde\xc2\x81\x33\xe1\xcf\xdc\x99\x21\x3e\x9c\x8e\x13\x24\xb7\xc1\xb4\x70\xca\x12\x2c\x94\xf2\xb0\x23\xcb\xc2\xc1\x41\x1a\xb3\x92\xc7\x14\x66\x79\xdd\x58\x5c\x61\xd1\x87\xd3\x11\xf6\x7f\xcc\x31\x9e\xfb\xec\x54\xee\xc3\x8e\xf3\xdc\xaf\x7c\xda\x0f\xf6\x2a\xf4\x83\xfc\xd7\xb3\x2a\x84\x63\x57\x69\x43\x76\x41\x2f\xf0\xbb\x3d\x00\xf5\x22\x2a\xf7\x76\x11\x28\x81\x20\xd0\x0b\x9c\xe5\xc8\xab\x0e\x39\x0d\xc2\xe5\xb1\x28\x3a\xa9\xf8\xb2\xf0\xab\x3f\x05\x82\x0e\xbc\xa6\x35\x79\x97\x67\x23\xb2\xff\x6e\x0a\x09\xa5\x0f\x60\x5a\x6a\x6f\x40\xe3\x5a\xea\x41\xca\x2c\x8f\x09\xbb\x54\x42\x0d\xb8\xca\x8b\x92\xb0\xb7\x43\x30\x21\xb9\x87\x82\x70\x78\x86\x12\x7a\xe3\x8b\x61\x3c\x16\x92\xa9\x59\xa0\xae\x35\x59\xa2\xee\xef\x72\xc0\x2f\xb8\x11\x1f\xf3\x1c\xf2\xe8\xd9\x8e\xfb\x53\xb2\xc9\x71\x1a\x81\x52\xcc\xe4\xf7\x9e\x5b\x2d\x2e\xc4\x10\xc1\x80\x0a\x49\x83\xe6\x47\x7a\x89\xa9\x59\x5e\x6a\x32\xc1\xc4\x4d\x97\x9e\xdc\x9a\xe6\x13\x58\x27\x73\x48\xad\xfc\xeb\x02\x3f\xaa\x09\x16\x4c\x62\x2a\x1c\xe6\x3b\x94\x94\xcc\x99\x7b\x3c\x4c\xfc\x9c\x07\x2c\xec\x48\x02\x88\x05\x8b\xd3\x3c\x08\x5c\x04\x67\xc2\xef\x2b\x61\x2e\x9f\x41\x49\x68\x82\x55\xa5\xcf\x75\xcf\xf2\x07\x72\x03\x1c\xd0\x8f\x65\x74\xc5\x4f\x21\x21\xc3\x34\xa9\xd4\xce\xee\x61\x61\xf8\xaa\x3b\x80\xc6\x41\xb4\xd4\xf8\xd6\x52\x7a\x1b\xdd\xfa\xab\x52\x59\x4b\x23\x19\x09\x94\x42\x16\x3f\x28\xbd\xc9\xd4\x77\x5d\xc7\x18\x03\xcb\x8b\x2b\x7f\xf6\xec\x5a\x2c\xa5\x07\x32\x30\x39\x6e\x8a\x27\x8d\xca\x2e\xee\xc9\x7a\xb2\xb0\x5d\xaa\x8a\x83\x08\xf0\x07\x2d\xf9\xea\x16\x69\x8d\xe8\x70\x2e\x7d\x9d\x72\x64\x91\x03\xff\x35\xd5\xf5\x34\xae\xbf\x92\xc2\xc6\x77\xfe\xe2\x40\x35\xf5\x8d\x4f\x3d\x47\x02\x97\x99\x29\xcf\x17\xc1\x29\x07\x7d\xf1\x90\xdc\xbc\xd6\x4b\x6e\x8c\x23\xa5\x3a\xa9\x9c\xf5\x0b\xd3\x45\x22\xb9\x86\xae\xb5\xa6\xeb\x1b\x81\x4d\x1c\x66\xea\x3a\x02\x17\x03\x0d\x3d\x35\x46\x57\xaa\x90\x4e\x16\x47\xe1\xd6\x38\xcf\x6e\xe2\x39\xe9\x71\x57\xc0\x52\x3a\xbc\x3f\xb5\x52\xff\x91\xa1\xe2\x07\x62\x1b\x1b\x79\x9c\x2e\x20\x8f\xed\xd8\x66\x67\x82\x87\x59\xce\x65\x16\xb6\xf3\x6d\x7d\xa5\x49\xcb\xb6\x72\x7a\x71\x4d\x13\x8e\xbb\x54\xa4\xf5\x6d\x0c\x33\x82\x1f\xd9\x30\xc3\x9d\xf1\xe4\x63\x71\xa4\x84\x96\xc3\x5e\x5a\x40\x35\xb3\x58\x95\x09\x0b\x26\x42\x20\xb3\x12\x6e\x53\x5c\x7b\x5b\xe3\xb5\x0a\xd6\x8f\x45\x80\x7d\x23\xab\xf7\x87\xd1\x18\xcd\x32\x3c\x25\xdf\x1d\xa7\x29\x0c\x1a\x03\xd4\x4f\xd0\x12\xe6\xf6\x4a\x54\xff\x15\x8f\xd0\x57\x35\x23\x59\xcd\xc2\xa1\x1e\xb7\xe9\xa1\x77\x82\x01\x7a\xba\x10\x5f\xdd\x0d\x64\x9c\x67\x77\x6b\xd9\x41\x0a\xe7\x69\x03\xdb\x6f\xa0\xac\x14\x62\x3e\x11\x0e\xa7\x43\x63\x36\x39\xe5\xaa\x5b\x6c\xc6\x26\x7b\xe0\x0e\x33\x30\x6a\x79\x7c\x17\xa7\xe2\xee\x6e\x07\xc5\xd6\x28\x48\x2d\x47\xe0\x91\xcb\x94\x75\x62\xb6\x2e\x0b\xce\x65\x0c\x88\x87\x88\x7f\x57\xa1\x6f\x57\x23\x59\xe6\x45\x4f\x7b\xe0\x09\xa8\x81\xfc\x53\x33\x65\x4f\x96\xd6\x4f\x96\xd6\xdf\xde\xd2\x5a\x56\x0e\x83\x62\xe8\xc0\x7f\x9c\x9f\x1c\x7b\x4c\x09\x1f\xf7\xa7\xa0\x44\x77\x38\x0f\x42\xfc\x31\x8e\xcc\x84\x26\x34\xf0\x77\xb7\x21\xbb\x73\x43\x6e\x68\x2d\xb5\xb4\x1a\x13\x51\x0d\x79\xd8\x6b\xd6\x3c\x49\x2d\x8b\x61\x85\x95\x76\x31\xf9\x90\xc6\x50\x4c\x7c\x61\xcd\x6d\x04\x1d\x9c\x49\xed\xd4\x39\x8d\x42\xce\x15\x54\xe3\xa0\x28\xe2\x74\xe0\x74\x78\xc4\xe6\xe2\x94\x15\x30\xb5\x11\x06\x1b\x57\x39\x0a\xae\x37\x68\xdb\xdb\x20\x4f\xb5\xb6\xbf\xb2\x02\x5b\xdb\x30\x8f\x71\x1c\x06\x49\xd5\x78\x97\x97\x88\xd6\xd5\xa9\x85\x33\xad\xeb\x4e\xb7\x07\x35\xf8\x55\x81\x80\xd1\xe9\x52\xfd\xfb\xac\x94\x5a\xbc\x0e\xe6\x4d\x3a\x39\x0b\x3b\xd9\x98\xd3\xbb\x62\x74\x95\x6d\x82\xd6\x8c\xdd\x34\x22\x25\x0d\x3f\x4e\x03\x59\x1a\xb1\x72\x65\xa0\xdc\x8b\x60\x30\x40\x22\x0c\x1d\x22\x35\x46\x09\x0f\xa5\x4b\x03\x42\x96\xa5\x54\x76\x24\xde\x24\x8e\xb8\x31\x62\x75\xd0\x68\xce\xb5\xd5\xcd\x2a\x54\x09\xe7\x2c\xee\xbb\x34\xd9\x39\xc7\xa5\x55\x3a\xa4\x14\xdd\x3e\xdb\xcf\xf3\x2c\xdf\xc0\xc3\x3c\xbb\x7d\x86\x58\x6e\xee\xc2\xef\xce\x58\x70\xfa\x8e\xf3\x5f\x2f\xff\xcb\x81\x38\xc6\x09\xa5\x98\xf0\xb3\x7e\x36\x49\x23\xa7\xec\x51\x33\x4f\xae\x6d\x52\x75\x93\x75\xa9\xb1\xca\xf3\x61\x2f\x2d\xf4\x3b\x50\xf1\x87\x8a\x64\x41\x6f\x62\x5b\x16\xaa\xc1\x64\xbe\x0b\xe5\x1a\x2c\x42\xcd\xe5\xfa\x76\x73\x92\x6a\x08\xfe\x18\xa7\x51\x93\xb0\x5e\xe0\x0b\x9a\x4b\x21\xcd\x22\xb4\xb9\xa9\x62\x0e\x5a\x5c\x88\x88\x92\x54\x6c\xbf\xee\x7d\xaf\xd6\x20\x97\x1d\x57\x77\x48\x09\xc9\xa4\xd4\x57\xb7\x49\xdd\xbd\xd5\x74\x77\x96\x68\xa7\xed\x88\xb0\x27\x56\xeb\x0b\x09\x8f\x56\x71\x15\xae\xc7\xb4\x4b\xeb\xc4\x68\x65\x84\x12\x66\x69\x8a\x42\xbc\xc5\x78\x65\x6a\x2e\xf1\x21\x4e\xc9\x41\xd7\xee\x6e\xde\x65\x67\xb2\xe7\x23\x82\x31\x96\x87\xe8\x37\x41\x44\xde\x29\x69\xf0\x2e\xcb\xc9\x85\x13\x7f\xcb\x26\x58\x1a\x68\x3c\xf7\xfd\x9c\xa9\x11\xc9\x3f\xac\xa5\x4f\x2e\x79\x29\x4c\xcc\xd7\x8d\xba\xc8\xe1\xb5\x0a\x71\x2b\x25\x6e\x0e\x9d\x7e\x9c\x17\x98\x1f\xb3\xda\xb5\x75\x00\x7d\xde\x8a\x4e\x5e\x3e\x44\x32\x57\xa0\x07\x89\xe5\xac\x57\x93\x41\x7a\xba\x9a\xeb\xbf\x9a\x2d\x4c\x43\x05\x31\x91\x7e\x19\x62\x42\xda\x93\xd6\xde\x85\x25\x0e\x5f\x2d\x98\xf4\x03\x8f\x1e\x87\xb3\x50\x3a\x63\x69\x91\x67\x09\x9a\x27\xbd\x81\x81\x72\x7c\x1f\x3b\x5b\x36\x47\x7e\x03\x83\xa5\x25\x39\x6d\xbd\x63\x0d\x9b\x6a\x96\x27\x51\x24\xc1\x14\x55\xd6\xcc\x4d\x4c\x90\xe0\xa7\xde\xd9\x24\x41\x05\xcd\x9f\x38\x3b\xd8\xeb\xa4\xde\x39\x0a\x73\x84\x45\xa2\xa1\x54\x0b\x0c\x7e\x31\x1d\x93\x22\xf2\x0f\xa4\xdf\x75\xf8\xf7\xe4\x79\xd9\xdc\xe4\x41\xf8\x14\x18\xa9\x72\xfb\xce\x51\xd2\xd7\xcd\x72\x59\x2a\xab\xa6\xdb\xb9\x9c\xa5\x81\x79\x77\xb5\xa6\xe6\xe5\x95\x6f\x53\x2a\xc3\x92\x6f\x6e\xca\x95\xa8\x22\x95\xbb\xd5\x0f\xc5\x3e\x86\x36\x3a\xd8\xab\x6e\xbd\x62\x43\x38\x46\xe8\x7a\x27\x49\x5c\x87\xdd\x1f\xc0\x53\x50\xb9\x8e\x58\x0a\xb2\x6f\x07\x7b\x60\x03\x91\xa5\x96\x0b\x44\x01\xc2\x54\x89\xb0\xee\xeb\x36\x47\xb2\xdc\xa9\x84\x1b\xd5\xfb\x49\xfe\x59\x8d\x7c\xc4\xd9\x38\x4b\xb2\xc1\x3a\x04\xf5\x12\xd4\x0a\x0e\x21\x3f\xac\x18\x2f\xfe\x22\x62\xbc\x62\x19\x31\x5e\xf6\x75\xc5\x78\xc5\xb7\x11\xe3\x3d\xba\xe0\xd5\x04\x17\x4f\x9a\xfd\x89\x28\xda\x78\xb0\x43\x51\xd1\xe0\x50\xc4\xa0\xf2\xe8\xaf\xdf\x9f\x3b\x51\xa1\xb8\x13\x65\x8b\x9f\xbe\xec\x81\x64\x9d\xee\x93\x69\xb1\xf1\x76\x2a\x2f\x78\xf9\x20\x2e\x17\x46\x22\x68\x08\x23\x91\xc8\xf2\xc4\xdb\xcb\x6e\x53\x96\x44\xa2\x30\x98\xa7\x03\xd1\xad\xe2\xcb\xea\xf3\x8c\x1c\x96\xda\x73\x5f\x95\x29\xa8\x0d\x0c\x6f\x56\x9f\xb2\x3c\x4d\x0d\xce\x6b\x62\x9a\x5c\x71\x2b\xae\x3e\x22\x4f\x4a\xe2\x7d\x1c\xaf\x30\xf6\x5a\xbf\x72\xe4\x75\xc9\x50\xf3\xe8\x2d\x2b\xa0\x8f\x5f\x17\xad\x34\x8d\x3d\x70\x11\x8c\xdd\xd8\x9d\x95\x30\xb1\x04\xf0\xc0\x34\xdf\xa3\x12\xb1\x03\x86\x9a\x27\x55\x24\xaf\xcf\x88\xfa\x51\x8d\xdb\xf9\x51\x5d\x99\x7e\x54\xe3\x06\x3f\xaa\xab\x2e\xea\xf9\x63\xee\x47\x75\xa5\xfb\x51\xa9\x3f\xe1\x95\xe9\x47\x75\xd5\xe8\x47\x75\x75\x7f\x7f\x65\xfa\x51\x5d\xe9\x7e\x54\x57\xfe\x68\x75\x3f\xaa\x10\x46\xd2\x8f\xea\x0a\xc0\xbe\xe2\x47\x75\x65\x78\x39\x5d\x71\x3f\x2a\xad\xfc\xcd\x55\x1d\x29\xf4\xa5\x1f\xd5\xd5\x7c\x3f\x2a\xb3\x07\x3b\x5e\x23\x43\xbc\x22\xd3\x13\x7e\x54\x57\xc2\x8f\x8a\xfb\x50\xc1\x3e\xbc\x52\xfc\xa8\x26\x8d\x44\x13\xf5\xf8\xd8\xde\x62\xc7\x6d\x2b\x47\x83\xb8\xc0\x28\x47\x51\x3d\x70\x4b\x9e\xc5\x11\xca\x69\xd4\xca\xea\xc3\xfa\x77\x8f\x2b\x85\x06\x9f\x3e\x99\x67\x90\xe8\x73\x66\x1e\x62\x05\x0e\xf2\x41\x80\x51\xbd\xf1\x63\x9c\x28\x75\xf0\x9d\x9b\x7b\x91\xb6\xf8\x0a\x46\x54\xdc\x2d\x85\x0d\x6c\x26\x3c\x5d\x65\xdc\x74\x2d\x2b\xa3\xee\x35\xb4\x94\xd1\x15\x9f\xee\x04\x0f\xa5\x51\x74\xb1\x9d\x91\xdf\xff\xb9\x15\x66\x11\xda\xba\x8d\xf1\x70\x6b\x92\x27\x0d\x36\xd8\x38\xcb\xe3\x78\xdb\xfa\xe9\xd7\x35\x31\x6b\x22\x90\x52\x98\x6b\xe4\x51\xee\x3b\xd4\x04\x5c\xcc\xcb\x81\x6e\xea\x3b\x69\x30\x42\x0e\x88\x53\x97\x51\x4f\xa0\x81\x94\x24\xe0\xf8\xf8\xf2\x95\x48\x49\xdc\x4d\x7b\x7e\x5e\x5e\x4d\xe2\x24\xfa\x98\x27\xae\xce\xf6\x5e\x05\x05\xfa\x98\x27\x65\x36\x46\xf4\x11\x60\x24\x0b\x1b\x0a\x65\xfe\xf8\xf8\x20\x0f\xd1\x51\x81\xd1\xfc\x83\x68\xcb\x71\x36\x9e\x8c\x1d\xe0\x51\x58\x29\xec\x3a\x05\xa6\x71\x95\x1d\xbe\x25\x08\x78\x78\x88\x52\x9b\xdc\x77\x16\x70\x03\x67\xfa\xd2\x9e\x93\xef\x3a\x88\x26\x67\x46\x50\xab\xda\xcd\x22\xd4\x61\x8e\xc6\x1f\xcf\x0e\x76\xb3\xd1\x38\x4b\x51\x8a\x5d\xe4\x85\xd4\xd9\x51\x1c\x87\x0e\xb9\x69\xa0\x0c\x93\x8c\x3c\x27\x3a\xa7\x5c\x0d\xd6\xcb\xd1\x28\xc3\xc8\x01\x34\x76\x7f\xdc\x77\x1d\x31\xb4\xca\xe1\x1b\x79\x14\x08\x90\x4a\x1f\x0e\xd3\x3c\xe4\xd6\xac\x5e\xfc\x90\x5f\xe1\xff\x8f\xbd\x77\xef\x6e\x1b\xb7\xf6\x40\xff\xf7\xa7\x60\x78\xba\x7c\xc8\x53\x48\xb6\x13\x67\x26\xa3\x73\x98\x8c\x27\xc9\xb4\xe9\xe4\x75\x1d\x4f\xa7\xbd\xaa\x56\x0a\x91\x90\xc5\x9a\x22\x55\x10\xb4\xa3\xca\xbc\x9f\xfd\x2e\x3c\x09\xf0\x21\x91\x92\xec\xd8\x19\xb7\x6b\x4d\x2c\x12\xc4\x1b\x1b\xfb\xf9\xdb\x09\x5c\x7d\xa6\x59\x89\x6f\xe5\x4c\xfb\x30\xae\xa3\xd3\x3e\x8c\xcd\x32\xb7\x7a\x4a\xe7\x90\x72\x16\xa8\xa4\xb0\x11\x4f\xfb\x18\xcd\x23\x48\xe5\xa1\x2c\x45\xd6\xa7\x4f\x1f\x6c\x60\x5b\xf4\x4f\xba\xf9\xde\x31\xb0\xfd\xd4\x76\xbb\x4d\xc2\x94\xe5\x37\xa8\x9b\x07\xf6\x26\x45\xa4\x77\x09\xa3\x30\xe0\x01\x82\xd5\xb7\x35\xbb\x64\x92\xe0\xd9\x41\x7d\x01\xad\xaa\x02\x5b\xab\xa7\x3b\xe9\x76\x28\xdc\x9b\x12\x32\xef\xf1\x4c\x52\x4d\x49\x9d\x38\x95\x4b\x41\x08\x92\xbd\x5d\x45\xbb\x65\xde\xd2\xae\xed\xfc\x40\xa9\x32\x41\x6d\x01\xa3\xc3\x83\x48\xdd\xb6\x12\x96\x38\x6d\x92\x7e\xfd\x29\x9a\x41\xdb\x05\x61\x49\xfc\x35\xcf\xc9\x0a\x0a\x0f\x60\x9d\x08\x1c\x7b\xb2\x6a\x11\xe2\x0b\x1c\xec\x25\x2b\x64\xe0\xd8\xe0\x23\x70\xa3\x0c\x8c\x1b\x64\x60\x5c\x96\x81\xb1\xc1\xee\xe2\x2a\xbb\x0b\x0b\x19\xb8\x1d\x8e\xd6\x67\xb1\x6b\x12\x9c\x32\x3b\xc3\x3b\x38\xcf\xaf\xc2\x28\xa2\x22\x12\x4e\x16\x8e\xbb\xac\x16\xa3\x12\x88\xda\xaf\x3f\x33\xbd\x16\x8f\xcc\x96\x24\x59\xe4\x87\x51\xdf\xf0\x32\x91\xcb\x61\x50\x28\x49\x4e\xb9\x3a\x19\x79\xe9\x5e\x41\x9d\x1f\x49\xea\xcc\x02\x08\x3d\x93\x6e\xa5\x2e\x5d\x4f\xe7\x10\xc4\xfd\x97\xb2\x6d\xd7\x81\x00\x81\x14\x2c\x55\x6f\x06\x4a\x4f\x9e\xbb\x39\x8a\x52\x64\xd5\x7c\xa3\x6e\xb9\x30\x2f\x75\x91\xb0\x41\x84\x13\xe7\x51\x79\xd4\xfd\x29\x4c\x1d\xe4\x16\x77\x69\x36\x44\x23\x36\x9e\x78\x4f\x49\x29\x84\x69\xba\x45\xaa\x28\xbe\x55\xdc\xea\x3c\x8b\x44\x25\x71\xa1\x72\x2d\x17\x60\xfa\x59\x8e\x55\x1c\x9a\x58\xc5\x72\xff\xcd\xbd\x61\xfa\x00\x57\xfc\x6d\xc0\x15\x27\xde\x14\x84\x9b\xc1\x15\x8b\x4b\x29\x0a\x51\x4c\x0e\x84\x95\x9d\xdf\x3b\x8d\x69\x45\x35\x1a\xc7\x73\xf8\xed\x95\xb5\xa0\x00\xbb\xcb\xb8\x89\xa8\x31\xe5\xa7\xb6\xc9\xe2\x46\xa2\x16\x37\x10\xb5\xb8\x4c\xd4\x62\x63\xfa\xe3\xea\xf4\x63\x8d\xa8\x95\xb1\xf4\xb9\xe1\x8f\x0e\x2a\x6a\xc8\xd9\x87\x1b\x36\x75\x44\x37\x35\x16\x9b\x3a\x32\x37\xb5\xfe\x13\x44\xe5\x4d\x1d\x35\x6e\xea\xe8\xfa\x3a\x2a\x6f\xea\xc8\xdc\xd4\x91\x17\xb7\xd9\xd4\x06\xbc\xa9\xd0\x4e\x5f\x5f\xc7\xb9\x0b\x22\x17\x40\x6d\x53\x47\xa5\x2d\x17\x89\x4d\x6d\x3c\x7f\x11\xad\xb8\x2a\x40\xb4\x7a\x53\x97\x5b\x68\xde\x18\x4c\x23\x22\x34\x23\xbb\xcb\x3e\x40\x1a\xae\xf9\x20\x99\x31\x11\x66\x55\x6e\x82\x26\x05\x79\x00\x09\xec\xa5\x4c\x9d\xa8\x5c\x95\xaa\xea\xf2\x75\xfc\x42\x5d\x5a\x46\xda\x2b\x10\x31\xa2\x5f\x3c\x64\x10\xf3\x69\xe9\x21\xed\x83\x0d\x42\xfe\xb4\xe5\x6d\x1d\x85\x29\x41\x31\xc2\xe2\x86\x0d\x92\x59\x5f\x3d\x72\x44\x21\x8d\x0e\xb0\x2b\xfd\x13\x22\xfc\x05\x0c\x82\xbf\x86\x69\x38\x0e\xa3\x90\x2c\xf8\x85\xe8\xb8\xb5\xb7\xbd\xaa\x93\xc9\x52\x97\x48\x56\x3d\xcf\x30\xfd\x06\xf0\x5e\xea\x5f\x9a\x62\x45\x6d\x4b\x95\xba\x61\x10\x38\x6a\x18\x41\xe2\xb3\xaf\x1d\x17\x2c\x2f\xd5\xb7\xfc\x62\x1f\x70\x25\x31\x81\xf8\x1c\x91\xfe\x34\x0c\x02\x14\xef\xef\x6b\x3d\xea\x1d\xb9\x79\xee\xe6\x57\x53\x14\x9f\x5c\xc2\x30\xa2\xa7\xad\x22\xf8\x9a\xad\x28\x49\x57\xd4\xf7\x82\x4e\xd5\x47\x9c\xcc\xc2\x14\x39\xb1\xe6\x35\x55\xdb\xeb\x9a\x3e\xea\xfa\x21\x87\xb9\x50\xb2\x3e\xb9\x03\x51\x69\x1f\xa3\x34\x89\x2e\x69\xbf\x72\xde\x6b\xe4\x1d\xba\xcb\x61\xbf\xdf\x2f\x2f\x5b\x03\xca\x02\xe9\xc3\x71\x82\x09\xc7\x0a\x68\x5c\xeb\x1c\xfa\xff\xce\x42\xcc\xc6\x1f\x4e\x9c\x72\xb1\x7e\x1a\xfe\x07\x3d\xaf\x4f\xdf\xf0\xe7\xb3\xb3\x8f\x9f\xdf\x9d\xfc\xed\xf3\xcb\x0f\xef\xdf\xbf\x7e\x79\xf6\xe6\xc3\xfb\x4f\xb6\x5b\x9e\x46\x48\x20\x17\x97\x03\x87\x73\x74\xb1\xd7\x30\x88\x30\x0e\x1c\xe4\x3d\x7f\xf4\x08\xf5\x45\x02\x5b\xc7\x65\x49\xe2\xd0\xbf\x33\x94\x92\x5e\x18\xd8\xa3\xfd\x7d\xd2\x0f\x63\x3f\xca\x02\x96\xd0\xbd\xb1\x9c\xeb\xee\x15\xd8\x69\xfb\xfb\x36\x41\x5f\xc8\x01\xba\x44\x31\xe9\x71\x93\x02\xf7\x2b\xd3\xbe\xf7\x13\x26\x53\xf4\x28\xef\xc4\x12\xd5\x09\x6d\x87\x3e\x19\x8c\xfc\xa4\x8e\xdb\x8f\xd1\x17\xe2\xb8\xfc\xb7\x6e\x92\xdf\xdf\x77\x84\x27\x41\x84\x20\xdd\x19\x2e\x88\xc5\x32\x1c\x3f\xfe\xc1\x75\xf3\x4a\x95\x74\x7f\x20\xca\xdb\xf1\x0f\x90\xd8\xf7\x7a\x11\xee\xca\xc0\x59\xbc\xc8\xcb\x1c\xdd\x50\xc0\x09\xc8\x90\x8c\xc0\x36\xbc\x9d\x0b\xd2\x72\xbd\x8c\x06\x0d\xe3\x6d\xeb\x0d\x2b\xfd\x65\x64\x6c\x88\xb7\xad\x18\xba\xdd\x59\x9e\x2a\xd2\x79\x6d\x96\xa7\xba\xec\xc9\xad\x53\x2f\x8b\x9c\xc8\x4c\xb5\xb7\xb2\xc4\xba\x56\x78\x29\x96\xe7\xb0\x37\x87\x18\xce\xd2\x16\x52\x78\x81\xce\x26\xd8\x42\xc5\x00\x5d\xde\x27\x6e\x6d\xf1\xc0\xad\xdd\x6d\x6e\x4d\xad\xd4\xf9\x37\xed\x49\xf3\xe1\x46\x3c\x69\xce\xdb\x78\xd2\x7c\xbe\x5d\x4f\x9a\xf3\xaf\xe3\x49\xf3\xf9\xde\x78\xd2\x30\x86\x8c\x40\x4c\x7e\xd3\xb9\x46\x29\x7b\x34\xbc\xad\x09\x18\xd1\xa7\x34\x9c\x38\x76\xef\x88\x72\x22\x85\xa3\x1d\x01\x36\x77\xd7\xed\xeb\xee\xe1\xdc\x71\xd7\x76\x0b\x0b\x84\xc9\xbc\x12\x57\x38\xfb\x92\x3c\x17\x7a\xd4\x8f\xde\x52\x85\xcc\x0d\x1c\x4a\x08\x94\x72\x8c\xc3\x72\xeb\xb6\x13\x37\x07\x57\x9e\x73\xa8\x79\x8b\x3a\x2e\x78\xed\x0d\x89\x99\x97\x18\xd8\x7f\xeb\x9d\x0a\x2e\xeb\xcd\x2b\x9b\xfd\xe4\x1a\x6e\xfb\x94\xa7\xe6\xb5\xb9\x96\xeb\xa2\x59\xdd\xca\xe5\xb0\x70\xa5\x1c\x96\x34\xbc\xad\x51\x5d\xb8\x20\x5b\x5d\x98\x85\xed\xb1\xfb\xfe\xe0\xcb\x14\xdb\x2e\xf0\x9b\xf4\xc0\x88\x90\x30\x3e\xa7\x55\x06\x5b\x48\x76\x97\xba\x64\x37\x13\x42\xdc\xa5\x2e\xd9\xcd\x4b\x0f\x0d\x4d\xcc\xa4\xf4\x52\x75\xdf\x06\xe3\xd2\x2b\xd5\x61\x30\xdd\xb9\x54\xc8\x6c\x22\xbf\x9e\xbe\xa5\x9b\x02\xaf\xda\x39\x00\x79\xcf\x3f\x16\xc1\x99\x42\x99\x09\xe9\xa5\xf2\x1f\xc4\x12\x05\xe4\xda\x2f\xc3\xee\x58\x96\x27\x78\x8a\xf2\x4f\x9f\x5f\xbf\x3f\xf9\xe9\xed\xeb\x57\xb6\xab\xdd\x84\xa8\x1f\x17\xee\xb1\xfc\x87\xc0\xe6\x8c\xd3\xeb\x6b\xe1\xec\x4b\x7f\x80\xda\xaa\x55\xb6\xea\xa6\xda\x55\x78\x98\xd6\x88\xf6\x4c\xb4\xa5\x05\x91\xa9\x26\xd5\x33\x80\xda\x0a\xc7\xeb\xe4\xe1\xac\x62\xa2\x95\xcb\x51\x2a\x38\x4e\x82\x85\x66\xd9\xd4\x98\x43\x2a\x61\x49\x1f\xec\xa5\x24\x09\x98\x51\xb1\xaa\x3e\xb4\x20\xc0\xbd\xa3\x47\x9e\xe7\x10\x8f\x48\x70\xc8\x7f\xc4\xb6\x2b\x51\x64\x50\x9f\xe0\x70\xe6\xb8\xae\x00\x88\xa4\xef\xdc\x7e\x18\x07\xe8\xcb\x87\x09\xfd\x49\x1f\xbc\x88\x07\x28\x77\x41\xef\x48\x8a\xcc\xac\x4a\xcc\xe5\x29\x56\xab\x8f\x28\xdb\xd6\xd4\x0f\x11\x0f\xfb\xe8\x90\x47\xc2\x5a\x27\x18\xc3\x45\x3f\x4c\xd9\xbf\x0e\x71\x05\x62\xab\x14\xec\x1c\xc4\x9c\xa2\x11\xe5\xda\x7c\x48\x28\x21\x64\x81\xae\x02\xb2\x5b\xd9\x08\x88\xfc\xee\x83\xf3\x41\xa4\x07\x24\xcc\x5c\x4b\xf7\xb5\x7c\x47\xf2\xdc\x05\xb1\xeb\x82\x61\xcc\x26\x70\x94\xd7\xfb\xab\x97\xf6\xf8\xf0\x90\xf6\x20\x17\xe2\xe7\x47\xc6\xab\xf3\x25\x90\xd1\xc0\x43\x4c\x7f\xc1\x91\xb0\x9f\xd3\x55\x33\x0f\xe6\x30\xa2\x05\xd2\x91\xcc\x43\x11\xf1\xef\xa1\x2b\xd7\xc1\xb2\x5d\x30\x0c\xe9\xb3\x64\xe4\xa5\x62\x01\x2c\xdb\xd5\xd7\x09\x64\xde\x32\xc3\xd1\x20\x14\xeb\x04\x78\x86\xf0\x41\x24\x7f\x0b\x91\x63\xf0\xc1\x59\x52\xca\xfe\xe1\xfd\xd9\xeb\xf7\x67\x9f\xcf\xfe\xfe\xf1\xf5\x68\x60\x6b\x1e\xd6\x07\xff\x4a\x93\xf8\x7f\x2d\x7f\x4a\x77\x1d\xf1\x32\x32\xe9\x3d\xb3\x73\x70\xe5\x24\xae\x0b\x68\xef\x99\x10\x06\xa8\x28\x37\xc0\xcc\x66\x9e\xf5\x39\xb5\x15\xb8\x63\xde\xeb\xd5\x7a\x77\x75\xf0\x32\x29\x81\x0b\x98\xc7\x21\x29\xa5\x77\x34\x4a\x00\x71\xe8\xf4\x67\x0c\x8a\x12\x2c\x73\x4d\x0a\xc7\x2e\xbd\x58\xff\xf4\xfa\xcc\x66\x2d\xf0\x59\x70\xd9\x3e\xd4\xbe\x34\xc7\x5f\x6c\x63\x3a\x76\xdb\x7d\x91\xb1\x65\xf2\xcc\xd0\x73\x27\x63\xfa\x0c\x77\xe0\x54\x30\xe1\xf9\x9b\xfd\x7d\xfe\xaf\x60\x0e\x9f\x1f\x5e\x5f\xeb\x4c\xb1\xf8\x5c\xbd\xa5\x22\x84\x68\x48\xbc\xda\x43\x51\x8a\xd4\x81\xfe\x58\x6d\x7a\x0f\xa9\xaf\xf7\xf7\x1d\x31\xa8\x0c\x47\xc5\x00\x5e\xb0\xde\x67\x38\xf2\xfe\xf9\x87\x25\xfb\x23\xdf\xff\xc3\x12\xe5\xff\x1c\x94\x9e\xbe\x60\x4f\x15\x5b\xd6\x38\x37\xde\xda\xbd\x01\xb2\x7c\x82\x88\x3f\xfd\x2d\x24\xd3\xb3\xe4\x02\xc5\xd5\xd8\x0a\x79\x59\x89\x60\x84\x4f\x51\x76\x5e\x04\x28\x30\x97\x90\xd8\x7b\xce\x2a\x71\x6c\xfb\x8f\x08\x88\x73\x4a\xb8\xf3\xa4\xb6\x73\xed\xbf\xf5\x5e\x72\x81\x99\xb5\x64\x0f\x0a\x3d\x8f\x0a\x65\x78\x61\xdb\x5a\xf4\x48\x0e\x88\x1c\x1a\x83\xcd\x94\x27\xb5\xac\xf2\xdb\xab\xf3\xa6\xd5\x3c\x78\xfb\xe6\x09\xaf\x27\x0d\x2d\x06\x8a\x94\xba\x10\x7a\x62\x98\xb8\x32\xcc\x61\xac\x72\xa0\x9e\x7d\xf8\xe5\xf5\xfb\xd1\x40\x03\x46\xd5\xc7\x89\xb4\x71\x62\x6d\x9c\x20\xf2\x48\x5f\x71\x0f\xb2\xef\x9a\x39\x53\xd7\x60\x3a\x10\xa4\x45\xec\x67\xe8\x91\xb2\x0a\x33\x02\xcb\x64\x8e\x62\xa6\x5a\x25\x7d\xa5\x33\x14\x4a\x56\x37\x07\x33\x94\xa6\xf0\x1c\x0d\x88\xaa\x25\x62\x83\x63\xc3\x13\x67\x00\xc5\x04\x53\x99\x84\xf0\x33\x22\xfb\x5a\x47\x2b\x86\x04\xc4\xa3\x22\x23\x53\xa1\xf3\x23\xee\xf5\xb5\xc3\x19\x7a\x75\xf4\x5d\x80\x4d\xfa\xa3\x3c\x6e\x55\x1a\x59\x95\x69\x76\x34\xc0\xbc\xf5\xc0\x07\x5a\x81\xf7\x27\xef\x5e\x33\xf6\x43\xbd\xa7\x7c\x45\x03\x62\x84\xf6\x9d\x62\x2c\xd4\x77\x1a\x8f\x50\x8f\x43\xc1\xb4\x6d\x75\xa1\xe4\x4e\x04\xc4\xcc\x60\x01\x2d\xe1\xe6\x7b\x9c\xf5\xc4\x59\xcc\x75\x8e\x0e\xc3\x31\x4d\x5d\x37\x07\x4c\x4c\x60\x0b\x52\x53\x26\x75\x44\xd8\x1f\x2d\xc9\xd4\xaf\x62\xe9\x94\xa2\x51\x2e\x1d\x08\x1d\x37\xcf\xdd\xbd\xa8\xcf\x4f\x1f\x8b\x8b\xa5\xd2\x5a\x45\x3d\xae\x1f\x67\x5d\x3f\x59\x2e\x98\x73\x85\x67\xf3\x07\x5c\x9f\x5d\xb2\x01\x88\x2d\xd5\xfc\x95\x2c\x51\x06\x27\xe7\xe3\x69\xfe\x4e\x96\x28\xb9\x32\x81\x99\xb7\x70\x82\xaa\x2a\x35\xdd\x56\x33\x39\x2f\xd7\xcb\x55\xa9\xe1\xb6\xf5\x4e\xca\xf5\x9a\x16\xdc\x64\xdb\xfa\xc7\xe5\xfa\x35\xd1\x63\x98\x6d\x5b\xfb\xb4\x5c\x7b\x21\xbd\x0c\xfd\x6d\x2b\x0f\x74\x65\xf0\x45\x3b\x65\x70\x49\x2e\x5c\xaf\x16\x6e\xa7\xb7\x65\x75\xd5\xbf\x12\x24\xb8\xe9\x35\x3b\xae\xed\x62\x55\xbf\x59\x85\x5b\x7a\x23\x0a\xb7\xa8\x8d\xc2\x2d\xbc\x5d\x85\x5b\xf4\x75\x14\x6e\xe1\xbd\x51\xb8\x19\x4e\x81\x09\x77\xcb\x52\x7a\x08\xd3\xd9\xcb\x95\x60\xf0\x59\x83\xc6\xe6\xcb\x14\x6b\x17\x58\xc2\x0d\x6e\x15\x1e\x90\x32\x44\x4a\xd7\xe1\x20\x21\x38\x00\x44\x99\x65\xb0\x34\x0d\x8c\x03\x64\x72\x1c\x65\xfb\x23\x17\x93\x10\xbb\xce\xaf\xaf\x97\x4c\xb0\xf4\x52\x27\xd5\x52\xd3\x8f\xd1\x24\xc1\xe8\x13\x8a\x83\x81\xce\x0d\x90\xbe\xf0\xc3\xce\xe9\x24\x5f\x22\x4c\x28\x47\xb8\x64\x16\x4c\x8b\x09\x27\x66\x71\xbc\x90\xe3\x62\xb2\x8a\x74\x71\xcd\x7d\xc8\x70\xa5\x0a\xf6\x22\xcf\x73\x90\x66\x2c\x88\x57\xab\x41\x12\x18\x22\xc3\xcd\x1c\xc5\x85\x22\x20\xf9\x90\x41\x0c\x04\x74\x00\x16\x7f\x9c\xa1\x2f\x64\x00\x73\xc5\x86\x94\x2a\x8c\x80\x70\xd9\x0b\xf7\x42\x2f\xb5\x24\xb6\x5e\x32\xe1\xc8\x04\x2f\xd2\x01\x9d\x6c\xa5\x6d\x74\x30\x88\x5d\x40\x38\xc7\xe2\x84\x6c\xe8\xb3\x39\x95\xf5\x74\x3b\x39\x29\xdc\xae\x35\x7e\x9b\x71\x2d\x1e\xe5\x79\xb8\xee\x89\xae\x35\xad\xcc\x05\x44\x77\xd5\x5d\x17\x5a\xe3\x47\xe1\x7c\x9c\x40\x1c\x1c\x44\x89\x0f\xa3\x5e\x4a\x12\x0c\xcb\xbe\xbb\xaa\x50\xd5\x6d\x99\x11\x24\xe6\x0a\xba\x73\x78\xc6\x86\x30\x03\xa9\x30\x61\xba\x47\xc4\x06\xcc\x14\x4e\xfe\xd8\x8b\xf3\x24\x7e\x19\x85\xfe\x85\xb2\x27\x7f\xf6\xc7\x7c\x7a\xe8\x36\x72\x10\xb3\x29\x9f\x43\x82\xce\x18\x13\x48\x59\x55\x3f\xc3\x18\xc5\x84\x3f\x90\x0e\x03\x68\x16\x12\xc7\x16\xbb\xc6\xa6\xbc\x76\x9e\xd3\x65\x4d\x3d\xa7\xc9\x93\xa6\x27\x9d\x26\x98\x3f\xcd\xa6\x1e\xb5\xcc\xd7\x0c\x24\x0d\x7e\xb5\x41\xe2\xdb\x54\xbe\x11\x4e\xb5\xf0\x4e\x39\xd5\x46\x7a\x60\xa9\xa7\xed\x19\xe0\x84\x9e\x7d\x81\x16\x2c\xd2\x23\x5d\x19\xe9\x41\x07\x2f\xb6\x48\xd2\x89\xf2\xa6\xc3\x70\xe4\x25\xb9\x74\xea\xd7\xc5\x70\x7a\xe2\x38\xd2\x05\x12\x09\x68\xfa\x41\xe2\xcb\xad\xf5\xd7\x10\x5d\xf5\xd9\xd6\xff\xc4\x77\x3e\x15\x64\xdf\x10\x34\xe3\xdb\xe6\x02\x2d\x00\x83\xcc\xc9\x41\xe8\x61\x8d\x8f\x4b\xc4\x6a\x64\xde\x30\x1e\x01\x7f\x3b\x17\xd3\x59\xd9\xc5\xd4\x6f\xb0\xef\xce\x86\x68\xe4\xf9\xc2\xbe\x3b\x33\xed\xbb\xfa\x4f\x30\x2b\xdb\x77\x67\x8d\xf6\xdd\xd9\xf5\xf5\xac\x6c\xdf\x9d\x99\xf6\xdd\x99\x97\x75\x77\x31\x0d\x41\xa2\x5c\x4c\x67\x2e\x08\x34\xbd\xf3\xac\x64\x7d\x9d\x09\xfb\xae\xf1\xfc\xc5\xac\xba\xc7\x02\x65\xdf\x9d\xad\xb6\xef\x96\x5b\xa8\xdf\x6e\xb4\x8b\x33\x3a\x3c\x6e\xdf\x85\xde\x0c\x60\xee\x62\xaa\xf9\x14\xec\xb5\x01\x77\x28\x13\xd3\x24\x6d\x4d\x41\x6f\x3b\xd0\x85\x1d\x08\x45\x5a\xb7\x88\x74\x49\x02\xd4\x9b\x85\x8c\x7b\x37\xc6\x1a\x5e\x2e\x58\x24\x1a\x7f\x57\xff\xc1\x7d\x8c\x4e\xd4\xfa\x7f\x10\x85\x31\x69\x4e\x8c\xc2\xa5\x1b\x14\x84\x44\x14\xbd\xe1\x7b\x53\xe8\x9d\x86\xcb\x98\x21\x4b\x53\x86\xc8\x06\xb3\x90\xfe\x5d\x56\x61\xda\x60\x96\x04\x68\x60\xff\x0b\x5e\x42\xce\x38\xdb\x80\xf2\x34\x43\xae\x00\x06\xf6\x0c\xce\xed\x11\x80\x51\x08\x53\xf1\xf0\xa9\x3d\xca\x81\xa8\xfa\xcf\x2f\xdf\xca\x9a\x99\x6b\xd9\x97\x1e\xce\xc6\x0b\x59\x29\xff\x9b\x57\x87\xc7\x7a\x35\xfc\x8d\x3d\x83\xbe\xf8\x0b\xc3\x0b\x44\xff\x19\xb3\xff\x7c\xd1\x9a\xf8\xfb\xc9\xbb\x72\x1b\x0b\x38\x8b\x64\x1b\xfc\x6f\xde\x06\xff\xdb\x5e\xcc\x22\xad\x2d\xf6\x4b\xd5\xf6\xb7\xa2\x32\x7d\x2a\xbe\x14\x15\xb2\x3f\xa7\x64\x16\xbd\xa3\x3f\x1f\x1d\x81\x19\xe5\x20\x5f\x46\x09\x43\xff\x7c\x74\x48\x2b\x3e\x8f\x5f\xbe\x3a\x39\x3b\xa1\x6f\x79\xcb\x5f\x8c\x26\xd9\xaf\x9c\x9b\x80\x57\xb0\x08\xdc\x04\xbc\x05\x73\xd0\xc8\x16\xcc\xee\x05\x5b\x90\xd3\x09\x4f\x8b\xb3\x17\xe5\xf4\x6c\xb4\x8a\xc0\x3b\x47\xe4\x35\x3b\x4e\x65\x85\x5c\x90\xcc\xfa\x28\x42\xcc\x5b\x95\x6d\x17\x88\x11\xb4\xfe\x68\x05\xe1\xa5\x0d\x90\xdb\x7f\x99\x04\xe8\x1d\x3b\xb3\xf5\x57\xf8\xec\xe1\x0a\x7f\xb8\xc2\x0d\x22\x1f\x13\x18\xc6\x26\x6d\x2f\x05\x87\xec\xea\xc6\x26\x2d\x68\x80\xee\x65\x51\xf1\x68\x48\xae\x62\x84\x3d\x24\x7e\x5d\xcd\x98\x28\xff\x1b\x82\x17\xef\xe0\x3c\xe7\xf1\x53\x44\x0a\x42\x57\x33\x16\x51\x45\x28\x3b\x7b\x81\x16\x3f\x27\xf8\x25\xed\x44\xf9\x3c\xd1\x72\x22\xb0\x8a\xff\xb3\x34\x93\x41\x2b\xcb\x32\x4b\x8e\xe7\x49\x26\x59\xab\x4e\x74\x2e\x4a\x92\x8b\x6c\x4e\xeb\x51\x7f\x99\x0d\xb1\xce\x6b\xc5\x84\xe3\xf7\x29\xc3\x6a\xc0\xb0\x64\x25\xd0\xbf\xa9\x2f\x59\x9c\x6c\x9d\x8b\x21\x6b\xd6\x9b\x87\x38\x84\xf1\xc5\x01\xfb\xdc\x4f\x84\x5a\xb2\x4b\x6c\x90\xee\x7f\x5a\x78\x9e\x4e\xee\x93\xe7\xe9\xf8\xc1\xf3\xf4\x6e\x7b\x9e\xee\x26\x4e\x68\xda\x1c\x27\xa4\xb9\x81\x35\xf1\x2f\x18\xcd\x93\x94\x5e\xc2\x8b\x03\x0d\xbc\xa9\x31\x7a\x48\x2b\x7e\x71\xc9\xe2\x86\xd6\x96\x8b\x25\x06\x6c\xb4\xbe\x6c\x91\x7a\xcb\x05\x4d\x4e\x77\x5a\x71\x89\xe7\xda\x3d\xde\x59\x67\xba\x26\x15\x1f\xb4\x44\x78\xa7\xc9\x37\xc5\xcc\x80\xac\xf4\xea\xe2\xd2\x06\x7e\xe9\x99\xcc\x03\x1b\x94\x9e\x6b\x49\xca\x66\xa5\x57\x0a\xe3\x56\x38\xd4\xe5\x73\x8c\xe6\x10\x97\xf3\xe3\xf1\x61\xa5\x88\x68\x4a\xfa\x18\x10\x37\x9f\x23\x9c\x86\x29\xd1\x70\xba\x86\x00\x00\x10\x8f\x3c\x24\xdd\x6a\x0e\xcc\x1c\xb8\xc3\x78\xd4\x97\x5f\x31\x50\x48\xe6\xd0\xd5\xed\x7b\xf1\x91\x48\x9f\x3f\x76\xc2\x06\xa3\xd8\xd6\x21\x1d\x59\xb9\x72\x6d\x45\xb6\x0f\xec\xf0\xcb\xb5\xd3\x45\xdd\x3e\xac\x23\x28\x57\xab\xf2\x03\xc3\x6d\xab\x9e\x95\xab\xd6\xf3\xdf\x45\xdb\x5b\x7d\x2b\x4b\x29\x11\x98\xb7\xb6\x28\x87\xba\x79\x73\xba\xc1\x45\xde\xa8\xd2\x6e\xba\xd1\x77\x20\x8c\xb3\x0c\xec\x2d\xc9\xec\x66\x82\x20\x6c\x14\x04\x8b\x63\x14\x29\xf4\x41\xdc\x5a\x1a\xbc\x0d\xf4\x41\x5d\x1a\x34\xc8\x16\x83\x14\xd0\x70\x71\x3d\xcf\x23\xd7\xd7\x2c\xd5\x3f\x79\x11\x0f\x3a\x10\x33\x2b\x2e\xe8\xd0\xc0\x76\x79\x7e\xef\xbd\x5a\x9f\x2c\xf9\xf1\x72\x18\x8f\x06\x24\xaf\xa1\x6c\x1d\x2a\x13\xe1\x6a\x31\x0f\x57\x8b\xb5\x33\x91\xea\x2b\x13\x7a\x94\xc4\x25\xdb\x49\x9b\x7e\x59\xda\x4c\x1a\xd8\x32\x2a\x68\x7a\x89\x60\xcb\x7c\x93\x2d\xf3\x8d\xf5\x2e\xb3\x65\x7e\x23\x5b\xe6\x5f\x5f\xfb\x65\xb6\xcc\x37\xd9\x32\xdf\x0b\xbb\x4b\x9b\x94\x97\x96\xd2\xa6\xef\x82\x4c\x63\xcb\xfc\x12\xd3\xe4\x0b\xb6\xcc\x78\xfe\xc2\xaf\xee\xb7\x4c\xb1\x65\xfe\x6a\xb6\xac\xdc\x42\xfd\x91\xa1\x5d\xf4\xe9\xf0\x38\x5b\x86\x3d\x1f\xc4\x5c\xda\xd4\x04\x81\xbd\x36\xa0\xe1\x65\xa2\x55\x93\x53\x62\x95\xd8\x51\xc2\xf4\xbd\x2f\x62\x46\xf8\x20\x66\x7c\xeb\x62\x86\x74\x5c\xa8\x7a\xfa\xf5\x8e\x3c\xcf\x73\x90\x87\xfa\x24\xf9\xc4\xb4\x09\x8e\xee\x47\x3f\x38\x38\xe0\xb9\xfc\x3d\x71\x52\xe8\x83\x3f\x22\xda\x84\x24\xc0\xb4\x44\x2e\x51\x7d\x1b\x01\x0f\x9a\x24\xfa\x66\xc1\x66\x3d\xef\xd0\x5d\x6d\xab\xdf\xd0\x69\x11\xf1\xc2\x42\x68\xa1\xe0\xe8\xd3\x8a\x34\x11\xd5\xb3\xf4\xd2\x9b\x1e\x8e\xbc\xc4\x41\x26\x6f\x8d\x47\x7d\x59\x1a\x72\x38\xf2\x1a\x06\x3f\x06\xb8\xe6\x53\x8d\xad\xc7\xa0\x96\xb1\x6f\xfc\x4e\x14\xc5\x1c\xc5\x15\x7a\xa1\x83\x4b\x3e\x7a\x6c\xa4\xdb\xb3\xf3\x51\xb9\x6a\x4d\x56\xd8\x9a\x9b\xc7\x6e\x07\x14\x52\x1d\x0d\xa3\x59\x59\xa4\xdb\x81\x02\xe4\x27\x98\x81\x15\xe9\x1f\xdf\xac\x31\x88\x9e\x8e\x68\x85\x0d\xa2\x71\x10\x07\xe3\x28\xf1\x2f\xc2\xf8\xfc\x46\x6c\x14\x0c\x5e\xe0\x5e\x18\x29\xf8\xe4\x30\xe8\x29\xe5\x03\xcf\x4c\x13\xcc\x2e\xe4\x3a\xc8\x05\xd0\xc3\x7d\x7f\xec\x30\x08\x3d\x38\x4b\x81\x0a\x63\xfc\x70\x15\x23\x9e\x08\xc5\x35\xb9\x44\x3a\xfc\xbe\xa8\x19\xb2\x94\x01\x20\x35\x8c\x11\xa1\x9c\xa2\x84\x59\x23\xb2\xed\xf8\xc3\xa0\xcc\x1f\x66\x0d\xf7\x69\x40\xef\xd3\x4c\xdc\xa7\x81\x79\x9f\xea\x3f\x41\x50\xbe\x4f\x83\xc6\xfb\x34\xb8\xbe\x0e\xca\xf7\x69\x60\xde\xa7\x81\x97\x74\xe7\x0f\x29\x83\x25\xf9\xc3\xc0\x05\xbe\x76\x9f\x06\xa5\xdb\x2e\x10\xf7\xa9\xf1\xfc\x45\x50\x5d\x78\x5f\xdd\xa7\xc1\xea\xfb\xb4\xdc\x42\xb3\xff\x4a\x40\x87\x27\xad\x11\x81\xb4\x46\x68\x6a\xe2\xbd\x36\xa9\x5f\xd7\x91\x9c\xe2\xb4\xae\xb4\x41\x07\xc9\x4c\xc2\x7f\x70\xda\x03\xea\x9a\x29\x48\xea\x5a\x14\x89\x4a\x0b\x33\xb8\x18\xa3\x1e\x9d\xcc\x26\x1f\x5e\x83\x3d\x2e\x18\x57\xff\x3e\x31\xae\xc1\x03\xe3\xfa\xad\x33\xae\xf4\xe2\x9c\x79\x4e\x93\xe6\x59\x3f\x05\xcd\x0a\x67\x4d\xbd\xb3\x8d\x9a\xd9\x97\x0c\x23\x6b\xb4\x50\x32\xfb\x15\x86\x51\xe8\x98\x8b\x5b\x2b\x2a\xf9\xf9\xfc\x24\xe8\xc4\x6b\x4a\x05\x78\x6a\x00\xc7\xa1\x93\xa7\x02\x96\x52\x2f\xe2\x1e\xa6\xfd\x71\x18\x07\x4e\x24\x6f\x2e\x33\x2e\xde\x71\xbd\xe7\xa4\xef\x67\x38\x4d\xe4\xaa\x01\xe6\x9c\x1c\x4e\xde\x27\x44\xb6\xe2\x3a\x86\x52\xc4\x75\x1d\x09\x7c\xec\x7a\xcf\x91\x43\xe4\x2f\xa3\xea\xb4\x4d\x45\x55\x00\x65\x0d\x4a\x93\x98\x29\x7b\x66\x88\x40\x01\x6c\x6c\x44\x5e\xb2\x9c\x94\x7c\x08\x72\x4f\xb3\x47\xcc\x99\xe7\x12\x46\xfb\xfb\xa9\xc3\xa2\xab\xdc\x3e\x77\x23\x66\x51\xe0\x75\x10\x07\xa2\x7b\x7c\x7d\x5c\xd7\xcd\x41\xc4\x15\xdb\x81\xa9\x0d\x95\x0b\xb8\xbd\xa2\x35\x2b\x57\xad\xf1\xc1\xbb\xd5\xb4\xce\x36\xbf\x94\xe6\x3c\xae\xae\xe3\x9d\x74\xeb\x2e\x71\x3a\x8b\xa7\xf9\x9e\x24\xb1\x8f\x5c\x8e\x39\xda\xc1\x0f\xae\x7e\x3a\x56\x79\x53\x77\x9e\x8f\x5b\x94\x0f\x34\x02\xb6\x7b\x21\x00\xa3\x79\x72\x7f\x85\x80\x66\x45\x30\xa7\xb4\xc2\x81\xd8\x20\xb4\x94\x68\x72\x60\xb4\x79\xa2\x47\xc6\x62\x17\x2c\x2f\xd0\x62\x80\x40\x86\xc3\x41\xdc\xcf\x70\x98\xd7\x0a\x05\x7c\xca\x1e\x84\x82\x07\xa1\xa0\x96\xe0\xac\x49\x45\xdc\x28\x04\xcc\x62\x34\x4b\xe2\x30\x25\x07\xb3\x2c\x22\x61\x8f\x7b\x7d\x36\xe7\x90\xd3\xdd\x5c\x0a\x16\x7e\x76\x9f\x58\xf8\xf9\x03\x0b\xff\x7b\x60\xe1\x27\xac\x3e\x91\x7b\x48\xa0\x47\x0b\x76\xe0\xb2\xec\x59\x27\x50\x47\x42\x0f\xe5\x85\x4a\xda\xf0\x38\xa3\x74\x99\x45\xfe\x2c\x9a\xd3\xc8\x71\xb7\xde\x26\xef\x16\x0e\x1d\x84\x57\xf8\xb4\xac\xd0\x2b\x36\x0b\x1a\x6d\xb8\x8e\xed\x64\x90\x99\x0e\xe8\x24\x05\x90\x99\x02\x74\xe2\xa3\x52\x3e\x2e\xb3\x92\x8a\xdb\x2f\x3d\x2f\xb8\xd5\xa0\x25\x68\xd3\x44\x22\xed\xd3\xb5\x14\x7f\x4d\xd9\x5f\x2a\x20\xd2\xf9\x84\x48\x3b\x74\xa7\x1c\xa3\x14\x91\x97\xd0\x9f\x22\xc7\x5d\x4e\x1a\x40\xfc\x0b\x40\x81\xd4\x9f\x22\xba\xe1\x1c\x1b\x4e\x08\xc2\xa7\x28\x66\xa3\xa5\xf7\x79\x33\xbe\xd1\xb8\x9e\x6e\x14\x69\x53\x5c\x36\x2a\x7d\x7b\xf6\xfd\x08\x41\xec\x48\x98\xf3\x26\xce\xc3\x11\xe8\x4e\x6c\xd2\xe9\xa6\x3c\x83\xe7\x8e\x5b\x0f\x69\x61\xa4\x33\x87\xf4\xce\xe7\x0c\x17\x8f\xaf\xa4\xd4\xfc\xd1\xa1\xbb\xa7\x91\x24\xda\xcf\x3e\x46\x13\x0f\xee\x19\x89\x09\xaa\x50\x18\x12\xec\x22\xf6\x9e\x2f\x99\xa4\xc4\x03\x52\x59\xc2\x72\xd7\x89\x05\xb4\x02\x88\x39\x64\x8b\x81\xd5\x50\xe0\x2e\xb3\xb9\x88\x00\x64\xe0\xbf\x02\xac\x21\xcf\xdd\x3d\x8d\x40\x9d\x23\xf2\x92\x87\xe5\x31\x66\xca\x71\xf7\xf7\xa3\x7e\x10\xa6\x73\x2a\x94\xf1\x47\x35\x85\xdc\xdc\xcd\xb3\xf8\x0a\xc3\x79\xd9\x80\xff\x99\x4f\xaa\x9c\xae\x29\xf3\x84\x8d\x01\x71\xc1\x54\xae\x5e\x0c\xe2\xea\x8c\xb8\x40\xa5\xd3\xad\xbc\x03\x71\x9e\xe1\x50\xf3\x50\xa5\x8b\x70\xe9\x20\x57\xe4\x13\x62\x4e\x0d\x8f\x8e\x78\x9e\x04\x07\xe9\xb1\xa0\x97\xee\xfe\x7e\xd5\x9f\xd6\x35\xe8\x4e\x31\x0e\x46\xd5\xf0\xff\x6e\x68\x3d\xa3\x5f\x0f\x21\x88\x34\xe7\x2c\x56\xd4\x58\xea\x21\x1c\xed\x85\x13\x67\x2c\xd3\x37\x60\x6f\x2c\x9c\x80\xc1\xb8\x80\xe1\x05\x63\x91\x93\x01\x0b\xb8\x1e\xda\x31\x42\x2f\xd1\x89\xf8\x70\x7f\xdf\x21\xde\x44\x7c\xea\x02\xc2\x69\x2b\xc0\x5e\x2a\x75\xdf\x11\x1d\x90\x5c\x98\xba\x5d\x86\xc1\x92\xc3\x76\x10\x1d\x5c\x5a\xee\x2c\xe8\xe1\xea\xba\x83\xc8\xc3\xa5\xf5\xe1\x32\x7e\xb1\xa5\x8c\xfb\x6f\x7f\x5f\x44\xdc\xa6\xfb\xfb\xf6\xf1\xe1\x91\xfd\xc8\xf3\xe4\x93\xe1\xe1\x48\x80\x0e\xee\xef\x4f\xc4\x70\x97\xbe\xd6\xdc\x00\x02\x5e\xf9\x80\xa1\x3b\xb0\x81\x63\xf7\xfa\x5a\x9f\xa7\x98\x87\xea\x16\xd3\x25\x02\xd2\x9d\x47\x45\x79\xdc\xc7\x08\x06\x0b\x96\xee\xe9\xf9\xd1\xf5\x75\xec\xee\xef\x63\x7e\x44\x69\xb5\x29\xe2\x26\x39\x80\x45\x1e\x27\xb6\xa3\x11\x4b\xc7\xa0\x59\xe9\x44\x07\x10\x03\x87\x91\x64\x06\x3c\x66\x60\x39\x45\xfd\xfb\xfb\x45\xef\x4a\x13\x95\xe1\xd0\x95\xb9\xa2\x02\x75\xf7\x0d\xfb\xfd\xfe\x58\xc1\xd6\xb8\x23\x05\x89\x30\x44\x80\x8c\x98\x22\x48\xef\x7d\x81\x94\xc6\x32\xa7\xe7\x20\xf1\xe6\xa6\xae\x82\x43\x8c\x6c\xed\x25\x97\x95\xeb\x55\xd7\xd0\xf6\x6e\x72\x7e\xb9\x6e\x65\xc2\xdc\x5a\x75\x13\x94\xab\xbe\x31\xd5\xcd\xa2\x95\xe8\xc0\xee\xfc\x52\x80\x62\x7c\x8e\xe1\x7c\xda\x67\xff\xbd\x7d\x85\x0c\x6b\xb6\x21\x10\xa8\x9b\x32\x86\x6d\xb4\x35\xb2\xd0\xbf\x53\xd8\x9b\x40\xca\xf6\x2c\x1a\x4a\xa4\xe1\x38\x62\xb6\x95\xda\xb7\xec\xb4\xd4\x02\x9a\xd0\xb7\x61\xda\x4b\x32\x92\x86\x01\x6a\x28\x70\x8e\x48\xcf\x97\x38\x92\x6b\x3a\x12\x27\x78\xc6\xd6\xbb\xc7\x04\xb8\xa6\x0e\x71\x88\x16\x45\x49\x1b\xfb\x1d\xfa\x17\x3d\x86\xaf\xda\x83\xb1\x3f\x6d\x82\x5d\x91\xe2\x1e\x17\x93\xea\x65\xbe\xfb\x86\xa4\x31\x2f\x25\x4a\xe2\xd7\xea\x04\x8c\xc5\xfb\x29\x7d\x9f\x14\xef\x0b\xf0\x4f\x56\xf0\xd2\x73\x9a\xf0\x56\xf5\xc0\x7f\xbf\x35\xbf\xad\xf4\x65\xdc\x65\xac\x36\xc6\x87\xeb\xc9\x64\xa4\xb9\x2f\xd4\x66\x99\x17\xac\x50\x9b\x25\x86\xb0\x9d\x35\x0a\xdb\x59\x83\xb0\x9d\x95\x85\xed\xcc\x10\x0b\xb3\x15\xda\x92\x5c\x93\x02\xe8\x4e\xfb\x99\x6e\xb4\x13\xbe\xcf\xc0\x54\x7f\x29\x8e\x4f\x31\xc7\x85\x98\x20\x0f\x5e\x5c\x7d\x17\xa6\x1f\xe4\xb9\x82\xd5\xb7\xea\xa4\xbc\xe6\x07\x25\xad\x16\xd1\xce\x47\x58\xbc\x1d\xeb\x51\x53\x60\xe2\x95\x30\x83\xcb\xa9\x3f\xd6\x80\x98\x4a\xce\x9e\xf3\xf9\x79\x91\x49\xa3\x14\xb5\xe8\xe7\x97\x21\xba\x9a\x57\x01\xc3\x4a\xd8\x04\xf9\x79\x16\x06\x1a\x97\x29\xec\x1c\x59\x18\xb0\x5c\x5c\x6e\x3e\x49\xfc\x2c\x15\x59\x2c\x2a\xe8\x8c\x5a\x90\x96\x0c\x92\xa4\x8c\x59\x01\x00\xeb\x0a\x26\x0e\x51\xb6\xea\x84\x10\x1c\x8e\x33\x82\x1c\x9b\xc0\x31\x63\x2d\x6d\x7a\xbb\xa4\xf5\xaf\x80\x7d\x68\xd3\xf3\xc6\x7b\xe0\x02\xe9\xb6\xfb\x02\x09\x16\xa5\xb6\xbe\x41\x73\x7d\xc4\xcd\xf3\x14\x71\x3e\x8b\xe3\x71\x18\x84\xc4\x50\xc5\x72\x86\xb0\x24\x00\x7d\xa1\x05\x97\x46\xa0\x37\xe4\x98\x2c\x22\x88\x8d\x7f\x65\x7b\x9e\x17\xbd\x28\xbe\xc1\xd5\x6f\x8a\x18\x55\xee\x80\xac\x70\xe3\x86\x64\xe4\x0e\xf0\x30\x1a\xe5\xb9\x3b\x38\x45\x93\x48\x20\x12\x95\xe3\xe8\xdd\xfa\x91\x70\xa4\x24\x43\x38\x69\x3b\x12\x91\xf3\xa0\x32\x12\xa8\x8d\x24\xae\x7e\x53\x05\x1f\x25\x43\x38\x7a\x41\xff\x53\x80\xe1\x0d\xe2\x21\x5c\x3f\x22\x9c\x24\xb5\xbb\x55\xec\xf1\xd7\x7c\x87\xe5\x62\xa7\xfd\xb4\x78\x13\x54\xa3\x75\x7d\x5a\xf5\x6b\xa3\x84\xfc\x20\xfd\x69\x71\x06\xcf\xdf\xc3\x99\x81\xdf\xe1\x48\x42\xce\x16\x42\xd6\x32\x20\xae\x56\x91\xfe\x65\x51\x9d\xa1\x29\xe6\xb2\x54\xae\x4e\x41\xf1\xca\xfe\x2f\x9e\x13\x25\xcd\xc6\x29\xc1\xce\x21\x38\x72\x5f\xe8\x27\x86\xf7\x52\xbe\x3e\x72\xdd\x01\x65\x8f\x79\x7d\xa3\xe1\xe1\x28\xf7\x8b\x4c\xac\x5a\x83\xc5\x69\x2c\x44\xbc\x17\x68\x60\x9e\x45\x06\x58\xa5\xbe\x37\x7a\xac\x92\xc5\x18\xc3\x19\x31\x56\xbb\x26\x8b\xac\x35\xe1\x09\x6f\xaa\xe8\x65\xc8\xf0\xab\x7f\xe4\xa1\xdc\x75\xf3\x30\x7d\x13\xff\x55\x12\x20\x2e\xab\x1e\xba\x4b\x29\xb1\x48\xa1\x93\x51\xc6\x37\x31\x41\x38\xe5\x80\x7b\x1f\xc6\xf4\xda\x43\x58\xe4\xa3\x17\x6c\xbf\x32\xc2\x0a\xa9\x51\xee\xaa\xbd\x9a\x94\xb2\x64\x7f\x9f\x96\xa0\xed\xcb\x6a\xe3\x73\x2a\xb9\x83\x25\xdd\x5e\xef\x20\x3e\x0f\xe3\x81\x7d\x38\xa7\xf4\x60\x8a\x51\x3a\x4d\xa2\x60\x10\x17\xc8\x47\xb8\x9f\xf0\x4e\x50\x49\x8b\xe9\x63\x70\x3f\x8b\xb5\x67\x63\x5d\xdc\x71\xe9\x25\x13\xa6\x02\x32\xd0\x71\x01\xe6\x74\x39\xcf\xc1\xc2\xf3\x35\x9e\xfc\x5c\xdc\xb2\x1f\xbc\x61\x36\x02\x9f\xb7\xb3\xb4\x5c\x95\x2d\x2d\x9f\x1b\x54\xca\x57\x43\x34\xf2\x3e\x0b\x95\xf2\x95\xa9\x52\xd6\x7f\x82\xab\xb2\x4a\xf9\xaa\x51\xa5\x7c\x75\x7d\x7d\x55\x56\x29\x5f\x99\x2a\xe5\x2b\xef\x43\x77\x4b\xcb\x02\x9c\x2b\x4b\xcb\x95\x0b\x3e\x6a\x22\xf5\x55\x49\xe1\x7b\x25\x54\xca\xc6\xf3\x17\x57\x55\xde\xe1\xa3\x52\x29\x5f\xad\x56\x29\x97\x5b\xa8\x67\x7f\x68\x17\xaf\xe8\xf0\xb8\x4a\x39\xf0\xae\x80\xcf\x2d\x2d\xf4\xcd\x07\xf0\x19\x7c\x04\x57\x9a\xb8\x74\xb9\x46\x9a\x28\xc4\xcb\x75\x29\xc9\xdb\x65\x35\xa6\x57\x98\x62\xa4\xf1\xbd\x63\xa4\x19\x6b\x0b\x37\x52\x26\x63\xc1\x82\x65\x38\x54\x10\xfa\x36\xa8\x49\xc8\xa0\x4a\xfe\x2b\xe1\x51\xf8\x2c\xdf\xa8\x6d\x83\xd8\xb3\x6d\xd7\x7b\xce\xae\x34\xef\xb9\x03\xaf\xaf\x39\x34\x3a\x16\xf8\x88\x8c\xf2\x45\x0e\x71\x8b\x8d\x4c\xd8\x8d\xe9\x3d\xff\xe7\x1f\x96\x24\xff\xc3\x12\xe6\x7f\x58\x22\x87\xde\xdd\xd7\xd7\xb1\x9b\xff\x13\xd8\x36\xa5\xbe\x4c\x76\x3a\x45\xe7\xaf\xbf\xcc\x5f\xf3\xf5\x36\xe9\xb8\xb6\x7e\x1e\x53\x72\xb8\xea\x6a\xa2\x7d\x02\xd8\x5b\xe6\xae\xf7\x9c\x41\xe5\xc7\x2f\x62\x95\x4e\x19\x81\xb2\x2a\xb6\xf0\x51\xc1\x20\x2e\xfc\x43\xe9\x58\x6c\xdb\xcd\xdd\x81\x6d\xe7\xfc\x9a\xa2\x7b\xaa\x15\x2e\x06\xdd\x65\x7a\xc1\xb8\xa9\x60\x86\xc3\xbf\x24\x61\x5c\xba\xbe\xf9\x24\x3b\xd2\xd4\x51\x64\x37\xb0\x0f\x6c\x3a\x3d\xd5\x4a\x98\xe2\xd9\xa8\x83\xc0\x73\x55\x01\x6d\x82\x7b\x11\x71\x1f\xd8\x9c\xbe\x44\xc5\x55\xce\xc1\xe1\xbd\xe7\x88\x07\x6f\xe5\xed\x23\x65\x38\x98\x6c\xed\x31\xa4\xaf\x6e\x1f\x55\x29\xbe\x2c\x33\x37\x97\x90\x31\xe4\xfc\x1f\x7d\xed\x50\x7c\xc9\x04\x89\x0e\x7a\x8c\x09\x42\xc1\x18\xfa\x17\xab\x49\x0f\xa5\xa1\xf4\xa8\x8b\xe4\x6d\x8d\x6e\x23\x94\x07\xde\x33\x83\x70\xbe\x59\x28\xd5\xe4\x46\xa0\x54\xc3\x36\x50\xaa\xfe\xed\x42\xa9\x86\x5f\x07\x4a\x35\xbb\x4f\x46\x7f\xff\x76\x2f\xd9\x07\x7f\xe1\xdf\x8f\xb3\x01\xbf\xd5\x67\xb5\x90\xf6\x3c\x48\x6d\xde\xec\x66\x37\x89\x60\x3a\x7d\xc7\xcd\xa9\xe9\x0a\x0c\x8d\x28\x39\x3f\x67\xce\x03\xdb\x24\xdd\xcd\x94\x8a\x8c\x84\x93\x45\x91\x77\x57\x3e\x17\x8d\xc8\xd4\xbb\x39\x2b\x27\x90\xd2\x74\x5e\x68\x29\x61\x74\x63\xe1\xd5\x26\x7e\x3b\x31\x40\x62\x41\x00\x71\x85\xd1\x57\x96\xe1\xd8\xb6\x46\x89\x3c\x97\x1f\x32\xd4\x5c\x6f\x46\x0f\x89\x04\xb1\x33\xb9\x9d\xd8\x05\x69\xe9\x11\x76\xf7\x1e\x1d\x3d\xf2\x3c\x24\x93\x8e\xf2\x61\x71\x4b\xba\x9c\x52\x69\x6d\x16\xef\x60\x10\x38\x89\x93\x38\xcb\x1c\x2c\x49\x38\x43\x49\x46\x06\xdf\xa1\x27\x80\xcf\x26\x0a\xce\xc4\xb3\x27\x87\x87\x20\xe0\x6a\xbd\x0f\x1c\x49\x96\x2f\x3e\xfb\x6e\x31\x47\x83\xb4\x40\x85\x75\x01\x64\xeb\x3e\x88\x1c\x17\x84\x04\xcd\x06\x88\x21\xca\x45\x03\xc8\xb2\x6d\xf0\x81\x6f\x38\xc2\xb5\x03\xe3\x6b\xd6\x57\x80\xa7\x2e\xb0\xcf\x30\x8c\x53\x06\xec\x70\x32\x4e\x30\x41\x01\xd7\x6b\xc4\x70\x86\x5e\xdc\xea\x64\x14\xb3\x30\xb8\xa9\x76\x39\x68\x3c\x40\x46\xbb\xc2\xdb\x40\x6b\x3f\x87\xe9\x22\xf6\x2d\x0d\x16\x96\x5f\x5c\x0c\xa4\x61\x8f\xe0\xc5\x12\x7a\xf0\x0a\x86\xc4\x52\xc9\x9b\xe5\xd6\x84\xa2\xac\x00\x94\x8e\x84\xb7\x10\x5f\xd5\x48\xbe\x64\xb1\xfe\x81\x99\xea\x55\x1e\xb3\xed\xc3\x13\xd3\x72\xd5\xf2\xa4\xee\x38\x8f\xec\x7c\x1d\x37\xca\xd8\xb8\xd5\xbc\xa8\x2c\xa3\xbd\xe0\x8f\x0e\xe6\x18\x05\x94\x9a\xb0\x40\x23\xe1\xae\xd8\xa6\x54\x4f\xba\x4c\xac\x29\x3e\x45\x30\x22\xd3\x9e\x3f\x45\x94\x5f\x5e\x59\x34\x4e\x82\x75\xb5\x5d\x5c\xae\x29\xa0\xc1\xc9\xac\x2c\xc7\x73\xdf\xac\x2e\x33\x4f\xa2\xd0\x5f\xac\x29\x04\x33\x32\xed\x71\x50\xf6\xd5\xf6\x3a\x90\x01\x7f\x27\x92\x0f\x23\x54\x81\xb7\x14\x0b\x31\x60\xe4\x09\xc6\xc1\x07\xec\x3a\x9a\x61\xc6\xae\x2c\x94\x51\x52\x33\xef\xd8\xc6\x1a\x19\xa5\x34\x53\x8e\xad\x8f\xd4\x28\xe4\x17\x85\xe8\x12\x1a\xef\x0a\x63\x0d\xb8\xb8\x34\xde\x68\x26\x20\xb5\x68\x46\x01\xcd\x0a\xc4\x56\xcb\x78\x59\x18\x03\x01\x5f\x26\xe3\x6d\xa6\xde\xe6\x42\x52\x9c\x35\xdc\xcd\x6a\x25\x35\x06\x21\xa0\x8c\x5d\xde\x3e\xe4\x82\xb1\x0b\xbd\x99\xe4\x17\x8c\x83\x88\x68\x6b\x3d\x3f\x0a\x7b\xac\x54\xe3\x47\xf7\x11\x72\x77\x92\xe0\x35\xf6\x7c\x5a\xe2\x60\x9c\x85\x51\x50\x26\x3e\x09\x9e\x55\x4f\x33\x7b\x58\x73\x32\xd9\xf3\xba\xd3\xc8\x5e\xe0\x24\x42\x35\x8f\x0b\x4a\xd0\x78\x2c\x39\xf3\xff\xe0\x3a\xfd\x20\xcd\xdc\x0b\x69\x66\x52\xf6\x92\x00\x63\x6f\x79\x71\x39\x50\x44\x5f\xd0\x49\x45\xda\x25\x69\x54\x54\x1c\xd0\xb3\x32\x50\x34\x59\x23\xbc\x8a\x1a\xe7\x12\x8a\xb0\x29\x19\xae\x86\xda\xc7\x4e\x5e\x73\x62\x5c\x1d\x0e\x90\x1f\x5e\x17\x64\x9b\x86\x2d\xed\xd5\x79\x3f\xf3\xa3\x5f\xf6\x66\x96\x94\x42\xa2\xf6\x61\x6f\x38\x02\x4e\xec\xd9\x8c\x30\xb0\x44\x07\x64\x65\xa2\x03\x16\xdf\x24\xe2\x92\x3a\xa9\x1a\xc8\x30\x1e\x79\x38\x67\x14\xaf\x64\x6f\x34\x75\xb5\xb4\x27\x8e\xb2\xef\x33\xde\x95\x75\x6e\x88\x98\xaf\x67\x61\x53\x65\x4e\x9b\xc6\x7b\x6f\x3c\x44\x23\xae\xc1\x15\x13\x40\x05\x89\xeb\x6b\x39\x6c\xfa\xcb\x2d\x4c\xd8\xcc\x83\x14\x8d\xf6\x88\x70\x66\xae\x35\x3d\xf6\xb9\x9e\x9d\x1b\x29\x01\xe9\xa7\xd9\x78\x16\x92\x86\xb2\x0a\xc0\x44\x57\x41\x91\x3c\x67\x4e\x7a\x99\xce\x10\xf3\xe5\xd9\x3e\xc9\x58\x50\xae\x58\xae\xf0\xf6\xf9\xc5\xb2\x2e\x28\x76\xe1\xd1\xb3\xb8\xee\x7a\x0f\x63\x12\x69\xa5\x62\x52\x89\xb6\xd7\xa3\x04\x1f\xb2\x66\x3d\x64\xcd\xfa\x7d\x65\xcd\x42\x8c\x78\x41\xf2\x61\xce\xf2\x02\xf2\xfd\x59\x86\xa4\xe2\x4f\x1d\x7a\x1e\xeb\x4a\x27\x12\x59\xaa\x49\x69\xc7\x93\xb4\x97\xc3\x62\xeb\xb3\x14\xb5\x0d\x89\x65\x76\xad\xfb\x10\x11\xcb\x67\x4c\xa8\xa1\x4c\xd7\x00\x7e\x03\x24\x23\x87\xc8\x1c\xdf\xd5\xc2\x39\x7d\xaf\x25\x1d\x1b\xca\x14\xe5\x7f\xfe\xf0\xee\xf5\xe7\x5f\x4f\xdf\xda\x40\x3e\x39\x7d\xfd\xf1\xc3\xe7\x37\x9f\x3e\xfd\xfa\xfa\x93\xf9\xe2\xd5\x87\x97\x75\x4f\xde\xbe\x3e\x39\x7d\x5f\xf3\xfc\xe4\xe3\x1b\xf3\xe9\xcb\x0f\x1f\xff\x7e\xfa\xe6\x4f\x7f\x3e\x63\x8f\x47\x8a\x11\xa4\xfd\xf3\x9e\xf3\xec\xaa\x44\x4f\xa3\x4e\x5c\x9e\xb4\x4c\xd9\x6a\x8b\x4c\x66\x0c\xf6\xca\x37\xa2\x75\x03\xb1\x9a\x33\x16\xac\x3b\xdf\xce\x85\x64\x5c\x76\x21\x99\x37\xb0\xd6\xf4\xae\xf6\xe6\x82\xb5\x1e\x9b\xac\xb5\xfe\x13\x8c\xcb\xac\xf5\xb8\x91\xb5\x1e\x5f\x5f\x8f\xcb\xac\xf5\xd8\x64\xad\xc7\xde\xac\xbb\x0b\x89\x0f\x02\xe5\x42\x32\x76\xc1\x44\x63\xad\xc7\x25\xc6\x77\x2c\x58\x6b\xe3\xf9\x8b\x71\x75\x8f\x4e\x14\x6b\x3d\x5e\xcd\x5a\x97\x5b\xa8\x3f\x66\xb4\x8b\x63\xe9\xc5\xe9\x02\xe8\x8d\x65\xb0\xae\x00\x78\x07\x13\x30\xee\x00\x1a\x16\xc6\x3d\xe9\xe8\x59\x7f\xaf\xab\xd7\xf5\xdf\xdc\x47\xa9\x9d\xb1\x27\x1b\x32\x31\x77\x64\x78\x7b\x2b\x86\xa7\x94\xb0\x5f\x2b\x3f\x44\xa1\xf4\x5f\x76\x49\x75\x30\x87\xe7\xa8\x47\x42\x12\xf1\x48\x81\xba\x15\x2a\x8a\x34\x7f\x76\x57\x97\xac\xdd\xd0\xbb\x8f\xfa\x7e\x0e\x38\x99\x67\x25\x58\x42\x92\xe0\xb0\x52\xe2\x3e\x8e\xad\x10\xfa\xcd\x01\x5e\xc2\x28\x0c\x20\x41\x41\xcf\x9f\xc2\xf8\x1c\xa5\x68\x4d\xce\x61\xfd\x25\x1c\x87\x51\x48\x59\xf2\x83\x31\x4c\x2b\x6b\xce\x15\x75\xf4\x16\x30\x94\xed\x7b\x55\x7b\xff\x7d\x50\xe7\xcd\x1e\xd4\x79\xdf\xac\x3a\x0f\xf5\xd3\x64\x42\x5e\x31\xf7\x67\x79\x9b\x18\xcf\x04\xb7\x8b\xfa\x29\x49\x30\xea\xc3\x00\xce\x09\xc2\x2c\x98\x84\xca\x88\xef\x92\x00\x45\xcc\x93\xde\x75\xfb\x78\xee\x3b\x6a\x63\xd3\x6f\x44\xaa\xdf\x9f\x13\xcc\x6b\x3b\x45\x7e\x82\x03\x87\x17\x60\xde\xd8\x04\x10\x50\xa9\x48\x7a\x43\x34\x61\x24\xb0\xae\xac\x40\x48\xe0\x82\x57\x8b\x24\x1f\x73\x84\x67\xe1\x2e\xf2\x7c\x04\x32\x1e\x89\xf5\x4c\xc1\x1f\x04\x0a\xfe\xe0\xb2\x80\x3e\x90\x0f\x8b\xc6\x53\xa5\x31\xcc\xcd\x99\x58\xe6\x2c\x14\x24\x9c\x41\xbc\xf8\x05\x2d\xc4\x83\x4f\x51\x76\x2e\x7e\x71\x7b\x35\xcc\xc8\x34\xc1\xe1\x7f\x90\x40\x0b\x32\xa5\xf0\x98\x25\x40\xca\xb0\x8f\x52\x61\xbc\x66\x42\x8b\xd6\xbc\x8e\x34\x14\x73\xb3\x76\x69\x45\x80\xf0\x58\xe4\x14\xf3\x63\xf1\xa9\x68\xab\xda\x91\x6a\x99\x0e\xfd\x51\xf5\xb0\x14\xc5\xad\x9a\x6e\x2a\x80\x59\xa4\x13\x2e\xda\x14\x9a\x9e\xe7\x87\x52\xb8\x44\x9e\xfe\x96\x4e\x05\x73\xdb\xed\x9f\x30\xc3\xbe\xe7\x79\x84\x29\xbf\xd0\xfe\xfe\xa3\x23\xe6\x21\x71\x12\x45\xc9\x55\xf1\xb5\x09\x31\x71\x7c\xf8\xc4\xdd\x23\x53\x9c\x5c\x59\x02\xad\x20\xf5\x86\x4b\x91\x16\xda\x3e\x3e\x7c\x62\xe7\x23\x80\xf2\x5c\x3a\xf9\x4a\x77\x02\xad\x0f\x4a\x7c\x2c\x1c\x80\x21\xb0\x4f\xe5\x6b\xdb\xdd\xdf\x57\xf9\x0d\xcc\x37\x40\xaf\x05\xc0\x3c\x9d\x26\x59\x14\xd0\x53\x17\xfb\x61\x24\xc4\xf0\x70\xe2\x18\xe8\x77\xaf\x20\x81\x3e\x62\xf9\x29\x5d\x16\xda\x1e\xf8\x02\x5b\xe0\xd1\x11\x1d\xb8\x21\xe2\x4a\xd9\xf8\xfd\xa7\x8f\x27\x2f\x5f\x7f\xfa\xfc\xfa\xfd\xc9\x4f\x6f\x5f\xbf\xb2\x35\xfd\xae\x51\x39\xdd\x3f\x22\x49\x4f\xa1\x46\x7e\xe4\x79\xf1\xfe\x7e\xcc\x1a\x8b\x53\xd5\x58\xde\xd4\xd8\xc7\x93\xd3\xb3\x37\x67\x6f\x3e\xbc\x5f\xdf\xde\xc7\x22\xcb\x4f\x7d\x7b\x2a\x9b\x49\xd1\xac\xf8\xe3\x30\xc7\xc5\x44\x51\x71\x9a\xd0\xff\xf0\x4c\x13\x45\x04\x5c\x3f\x60\x11\xf2\xdc\xf7\x83\x91\xc4\x39\x42\x17\x27\x51\xe4\xd4\x9d\x1b\x75\x1f\xc6\x1a\x3c\x41\xd1\xe1\x18\xd8\x9f\x16\xb1\x7f\x16\xce\xe8\xfc\x3c\x8a\xfb\x61\xca\x09\xa5\x9e\x3a\x0f\xef\xef\xe3\x47\xa5\x86\x4b\xeb\x1a\x03\xe2\x1a\x7d\xca\xe2\x28\x81\x81\x20\xb7\xb1\x9b\xbb\x39\xed\xe5\x87\x18\x95\x9d\x90\x8b\x21\x48\xda\x5c\x1d\x05\x40\xfc\x73\x3a\xc8\xa6\xaf\x9b\x26\x20\xf7\xa1\x3f\x45\x81\xae\xca\x11\xb7\x95\x84\x0b\x40\xa5\xfc\x18\x2d\xe6\x94\xab\x8e\x91\xf7\x9c\xf4\xe9\xb5\xbe\x70\x9c\x21\x01\xf1\x88\x5e\x39\x43\x32\xf2\x3c\x2f\x56\xae\x3c\xf4\x38\x9f\x44\xd1\x4f\x8b\x62\x97\x33\xcf\x7c\x2d\x7d\x08\xb7\x65\xf0\x72\x25\xa3\x88\x51\x47\xb1\x29\x6a\x62\xe4\x14\x4c\xa4\x83\x38\xc8\x86\x7a\xc4\x12\xe3\x87\x1e\x03\xb7\x10\xc4\xec\xdf\x19\xed\x34\x92\xf5\x8b\x9f\x45\xed\xf4\xfa\xe3\x9a\x79\xdd\xe5\x48\x9b\x1e\xfe\x45\xfd\x52\x01\xec\xc1\xfe\x0c\x11\x58\x78\x22\xa5\x57\x21\xfd\xab\xd8\x77\x11\xe0\x1e\x51\x74\xdc\x38\x25\x62\x45\x38\x91\x62\x47\x8b\xf2\xb4\xc7\x87\xc7\xf6\x40\xfc\xf5\xc4\x1e\x60\x6f\x49\x77\xe0\xe0\x7d\xc6\xaa\xf9\xf8\xe1\xd3\x9b\xb3\x37\x7f\x7d\xfd\xf9\xcd\xfb\x9f\xdf\xbc\x7f\x73\xf6\x77\x7a\x54\xa2\xbd\x31\x46\xf0\x62\x4f\x10\xc3\x01\xa7\x83\x51\x9e\xeb\x47\x11\x8b\x9d\x5a\x9c\x36\x0c\x18\x38\x45\x71\x58\x5d\xfe\x61\x2c\x77\x06\xd4\x56\xa2\xb8\xe3\xb4\x95\xb0\xb9\xef\x5a\x18\x70\xcf\x35\x61\x3c\x5a\x16\x8b\x3e\x40\xfd\xc0\x07\x8a\x1a\x0d\x50\x3f\x4e\x81\x22\x16\x03\x54\xd0\x85\xdc\x1d\x38\x1b\xae\x6b\xf9\x1e\x56\x70\x7e\xda\xaa\xad\x3c\x66\x00\xf7\x4f\x5e\xbe\x7c\xfd\xe9\xd3\xe7\xd3\xd7\x27\xaf\x00\x52\xf1\x26\xf5\xc7\x56\xc6\xa2\xac\x3e\xb8\xd2\x36\xa6\x87\x18\x84\xe9\x4b\x29\xf3\xb8\x1c\x88\x05\x29\xdf\x40\x17\x20\x4e\x6d\xa0\x0b\x8a\x7b\x06\x69\xa4\x0a\x48\xc6\x15\xf5\x53\x78\x89\x9c\x22\x13\x80\x8a\x0f\xae\x00\xa9\x52\x96\x93\xf9\xe8\xf1\xee\x32\x2b\x22\x63\xfc\x38\x36\x95\xed\xba\xc0\x4e\xd8\x3e\xa4\x4b\xc9\xdb\x25\x8b\x39\xfa\x30\x71\x88\x5b\xd8\x1c\x5b\xd1\x2b\x32\x94\x4f\x75\xde\x69\xc4\x0c\x89\x46\x2f\x24\xda\x2c\x32\xd6\xc9\x20\x9e\x74\x0d\xc2\x58\x72\x17\x8e\x70\xeb\xd3\x0b\x36\x92\xbe\x1c\x24\xde\xac\x84\xe4\xc1\xf9\xc3\xed\xe1\x47\xb2\x72\xcd\x3c\xe0\x65\x6b\xec\x11\xbf\x5c\xaf\xc1\xa5\xee\x18\x7e\x64\x9d\x1f\xa1\xc6\xa9\xeb\xae\x5e\x0d\x0e\x3e\xb5\x02\xbf\xf6\x9e\xb9\x79\x9a\xee\x71\xdd\x93\x2f\x94\x24\xfb\xbd\x87\x54\x35\xbf\x03\x21\x59\x83\x0b\x4c\xa8\x54\xca\x60\x9e\x95\xd3\x8b\x7d\x30\x50\x97\xc7\xc1\x20\x4e\x0f\x06\x81\xaf\xef\xb2\x94\x49\xaa\xdd\xbe\x39\x18\x84\x01\x15\x49\x1d\x27\x6d\x34\x1f\x96\x44\x45\x71\x11\xea\xdb\xbb\x22\x3d\x2a\x09\xec\xe3\xe9\x9b\x77\x27\xa7\x7f\xff\xfc\xcb\xeb\xbf\x9b\x12\xa5\x2a\xf1\xe9\xed\xaf\x7f\x62\xaf\x9b\xf9\x28\x55\x5a\x18\xf1\x6a\x8a\x34\xb1\x53\xe2\x82\xac\xa9\x41\xbc\x29\x83\x09\xe8\x24\xa9\xa6\x21\x4e\x52\xd7\x99\xae\xd3\x75\xb5\xb8\x40\x2b\x42\xa7\xbf\xf2\x05\xef\x1e\xa7\xb4\x9d\x9b\x13\x1f\x97\x5a\x49\x75\x92\x98\xb4\x27\x89\xe3\x30\x0e\xc2\xf8\xbc\x87\xb3\xb2\x9a\xba\x33\x4d\x34\xab\xda\x8e\x28\xee\x08\x73\x3a\x6d\x79\xd0\xf4\xae\x33\xf7\xce\x9e\x71\x8c\xe8\x0f\x71\x1a\xe8\x29\xec\x76\x96\x8c\x69\xb9\x89\xc3\x74\x92\x91\xe9\x3b\xd6\xbb\x86\xc3\x54\x3e\x07\x20\xf4\x22\x33\x25\x7d\x4d\x5d\x2c\x45\x3d\x1c\x01\xbf\xde\x19\x47\xdb\xa1\x51\xed\x81\xd0\x6a\x72\x41\x60\x34\xf8\x90\xb6\xfe\x4e\xa4\xad\x8f\xb6\x49\x59\xaf\x91\x10\x3f\x49\x70\x10\xc6\x90\x6c\x4c\x40\x1a\x08\x44\xd5\x8e\x42\x92\x59\xc2\x60\xdb\x6a\xa1\xcb\x42\x11\x10\xb0\x2e\x25\xcc\x9e\x1e\xb7\xfb\xc0\x6f\x7d\xdb\xfc\x16\x57\x18\x65\xa5\x5b\x00\x9a\x48\x6b\xbe\xe7\x30\xe6\x2a\x5e\x73\x4f\x14\x5b\x3d\xb5\x45\x08\x5d\x87\x4f\xd8\xc5\x12\x27\x01\x12\x8c\x59\xe2\x38\x65\x73\xc1\xba\xcb\x44\x3b\x6b\xed\x75\x53\x1b\x2a\x22\xd6\x6b\x89\xca\x5d\x78\x9f\x04\xa5\x3c\xb6\x9a\xd2\xa9\xa1\xa3\x12\xf5\xa7\x38\x77\xb1\x54\xae\x1f\x31\x2f\xcf\x8c\xf6\x35\x00\xb1\xeb\x02\xcc\x54\x52\x5e\xcc\xfe\x01\xb8\x15\x47\xd7\x82\xc5\x0a\xd7\x73\x74\xa1\xce\x6b\x25\x0d\x5f\xbc\x67\x81\x5e\x54\xbc\xdd\xac\x45\xf6\x7d\xa9\x2d\x43\xd4\xf5\xdb\x13\xe5\xc0\xdf\x31\x31\x5e\x05\xd4\x5f\x93\x18\xf6\x81\xa0\x7e\xab\x04\x95\x1e\xd7\xd0\x73\x70\x1b\xe2\x17\xa8\x33\xc4\xa2\x75\xbb\x7d\x72\x30\x88\xe1\x8c\x1e\x88\xd4\x71\xba\x32\xdd\x81\x5f\xa2\x8f\xed\x58\xe3\xaa\x82\xb8\xb0\x38\xd4\x18\x16\x68\x33\xae\x10\x38\x1d\x66\xa5\xb2\x01\x8f\x7d\x76\xcd\x70\x07\xd3\xce\xc7\xf5\x92\xaf\x59\x50\xaf\xfd\x11\x9e\x23\x2b\x4e\x88\x35\x49\xb2\x38\xb0\x0b\xb3\x1f\x57\xa4\x7b\x4c\x83\x0e\x96\x5c\xd3\x3e\x60\x21\x7c\x45\x6c\x42\x1d\xfd\xe3\x81\xba\x9b\x30\xed\x54\xb8\x31\x64\xca\x6a\x29\x25\xb9\xb6\x10\x94\x9b\x3e\x2e\xb5\x12\xe9\x14\x2e\xec\x40\xe1\xc2\xd4\x4f\x2e\x11\x5e\xf4\xfc\x29\x0c\xe3\x5b\x24\x77\x0f\x1a\xbb\xdf\x1d\xc1\x4b\x9a\x33\x71\x98\x97\x6e\x5b\x2a\x67\x6e\x5e\xc1\x10\x36\x53\xb9\x55\x5e\xfe\xb0\xc1\xcb\x3f\xf0\x53\x1b\x40\xe5\xe5\x9f\xde\x29\x2f\x7f\xa8\xf9\x88\x35\x90\xf0\xd2\xf9\xce\x6b\xec\x76\x06\xa8\x7f\xe0\xa7\x8a\x32\x57\xa9\x72\xe0\xbb\x15\x73\x52\x7c\x7d\x6d\x98\xd1\xdf\xa1\x74\xfa\x3a\xa6\xc3\x08\x6c\xf7\xc5\x6a\x75\xa2\x48\xd6\xa7\x23\x51\x1a\x3e\x04\x2b\x4c\xa3\x00\x7b\xce\xba\xb2\x01\x22\x30\x8c\x6c\x97\xa1\xb4\xf5\x09\x0e\x67\x8e\xbb\x27\x4c\xb0\x44\xd8\x56\x9f\x1e\x1e\xda\x03\x6d\x4c\x86\xa3\x02\x5d\xc4\x20\xfd\x2d\x24\x53\xc7\x7e\xc9\x91\x28\xad\x59\x96\x12\x6b\x8c\x2c\xc4\xc7\x68\x85\xb1\x95\xe0\x00\x61\x8b\x24\x56\x96\x22\xc6\xa7\x5b\x28\x0e\xe6\x49\x18\x13\xd3\x43\xa4\x34\x3b\xe0\xd1\x11\xf7\x57\xd6\x2c\xb4\x28\xcf\xdd\x81\xc8\x08\xc2\x3c\x48\x22\x66\xd5\xcb\x41\xea\x85\xe6\x65\xc0\x76\xe6\xf6\x70\x12\xe1\xed\xdf\x4f\x1d\x34\xab\x2a\x08\xb5\x57\x58\xbf\x7a\x53\x42\xe6\xbd\x29\x82\x2b\x00\x1e\xeb\x2e\xac\x5b\x40\x9a\x5b\xc7\x51\xad\x1d\x8e\x32\x32\x57\xdc\x22\x74\x3b\xf3\xcf\x18\x9e\x33\x18\xda\xb6\x96\x66\x4b\xb3\x29\x77\x01\xb3\x5b\xb3\x12\x5b\xcd\xbe\xba\xfd\xe3\x6f\x3a\xd4\x11\x77\x09\x75\xc4\x6d\x43\x1d\x63\x19\x56\x88\x57\x84\x3a\x42\xee\x76\x77\x1b\xa1\x8e\xd8\x75\x07\x5a\x9f\x76\x1e\xea\x88\x9b\x43\x1d\xe1\xbd\x09\x75\x34\x88\x46\xb4\x15\xd1\xd8\x05\xa1\xc0\x0e\x16\x21\x71\xcb\x1c\x2c\xff\x7c\x76\xf6\x71\xd0\x5c\x41\x33\xe9\xa2\x7c\x01\xfd\xf8\xfa\x7a\xc9\x02\x00\xda\x53\x9f\x75\xe9\x12\xeb\xa8\xcf\x96\xe6\xb5\x7a\x08\xa0\x8d\x1c\x0e\x6a\xb3\xa2\x7f\xb3\x64\x2c\xf8\x4a\x70\x8c\x0f\x11\x0f\xbf\x0b\xd1\x70\x45\x88\x01\x0f\x21\x68\xe5\xb6\xa1\x4e\xb7\x32\x2c\xb4\xfe\x42\xba\x79\x74\x6b\x86\x19\x23\x44\x4f\xa5\x3d\x62\xa7\xe2\x27\xf3\x25\x2b\xc4\xcf\xec\xae\x8a\x9f\x2a\x94\x62\x06\x63\x78\x8e\x82\x9f\x16\x2f\x4f\x5f\xa5\x4c\xc2\x69\x90\x4c\x0b\x4a\xdc\xce\x9c\x5f\xf1\xbe\x14\x09\xfe\x50\x5f\xb9\x92\x8a\x10\x76\x51\x52\x27\x02\x3b\x87\x9a\xf0\xdb\x40\x4d\x04\xb7\x0b\x35\xe1\xdf\x2a\xd4\x84\xb3\x3c\xe1\xf8\x8d\x36\x8c\xa2\xe4\xca\xce\x99\x8f\x6c\x98\xbe\xd3\x37\x40\xc9\x49\xdd\xd8\x1c\xd7\xd7\x4e\xf5\x61\x9d\x82\xb8\xd6\xf3\x9c\x24\x1c\x44\xde\xed\xa7\xc9\x0c\xf1\x30\x91\x37\x46\xe3\x32\x54\xc6\xa8\x7f\x75\x98\x0e\x3b\xa1\x43\x80\x01\x80\x23\x2f\xee\x87\x81\x96\x37\x5c\xe6\xe2\x34\x82\x63\x58\xe8\xe1\xe2\xe7\x04\xd7\x76\x72\xaf\x26\xcc\x26\xea\x9f\xa3\x18\x61\xca\x5a\x25\xf8\x13\xe2\xcc\x15\x76\xe9\x99\xf4\x21\x4f\x8e\x59\x79\x0d\xdd\xaa\x57\x73\x63\xf4\x8d\xc6\x7d\x49\x95\x0a\xb7\x1f\xf2\xc3\x21\x5f\x1b\x6a\x98\x6a\x94\x0b\x01\x36\x5f\x5e\x71\x44\x4c\x3d\x06\x01\xf6\x47\xc3\x19\x75\xe4\x02\xb2\x2b\x53\x01\x73\x5b\xa6\x1c\x93\xf2\x24\x2f\xa9\xa8\xd6\x06\xc0\xbc\xb0\xff\xc7\x1e\x14\x51\xac\xd8\x53\x7f\xef\x11\xdd\x98\x2a\x7d\xd3\x79\xca\xf7\xf7\x9f\x98\x2b\x3a\x25\x24\xd7\xd7\x31\x78\x85\x52\x12\xc6\x0c\x49\xb7\xf4\x86\x17\xaf\xf5\x58\xbf\xbe\xc6\xfa\x87\xcd\x65\x4a\xde\xf0\x0d\xee\xef\x39\x8a\x52\x64\x11\x6f\xb5\x12\x4d\x05\x6d\x98\xd3\x29\xee\xcf\xb2\x96\x6f\x19\xf8\xbc\xcd\xb8\x70\xbf\x67\xc4\x93\x33\x95\x83\x7f\x8a\xd9\x80\x33\x64\x79\x9e\x65\xff\x61\x49\x97\x20\xb7\xad\x04\x5b\xfa\x9c\xd4\xbd\x2f\x7d\xfa\x3f\x8d\x1f\xfd\x8f\xfd\xcf\x7c\x6f\x85\x61\x3d\x2e\x1b\xd6\xe3\xce\x86\xf5\xd8\xcd\x73\xe6\x9b\x9d\x54\x7d\xb3\xb7\xf6\xf9\x2e\xd5\x5a\x18\x8d\x5a\x18\xca\x6b\xbf\x74\x41\xa2\xab\xcb\x6a\xea\x57\x4a\xb9\x16\x96\xf1\xa6\x8f\x5b\xb5\xa2\xf2\xd2\x87\x9b\x35\x24\xbe\x2f\xb5\x95\x6c\xe8\x6d\x7e\xd1\x98\x3c\x62\x9d\xc4\xc7\xfd\x99\xc2\xf4\xe7\xa4\x82\x30\x29\x84\xc1\x12\xc4\x64\x7b\x29\xf0\xc1\x11\xea\xf7\x2c\xab\x64\xc2\xcf\x09\xae\x11\x13\x2e\x2e\x85\x48\x90\xb6\x2b\x9d\x6e\xee\xd1\x74\x71\xd9\xc8\x45\x63\x83\x8b\xae\x0d\x43\x35\x2e\xea\x72\x09\xe3\xaa\xd9\xdf\x47\xfd\x5f\xd0\xa2\x9f\x12\x88\x09\xb7\x8b\x10\x7a\x41\x37\x07\x85\x31\xbf\x24\x7a\x9b\x9b\xf6\x3c\x76\xad\x17\x1c\xca\x5f\x3e\x7d\x78\xdf\xe7\x49\xd7\xc2\xc9\xc2\x19\x6a\xb7\x20\x60\xf1\x61\xec\xc6\xa2\x1f\x8d\xdc\x3d\xdc\x25\xfe\xc8\x05\xf8\xfa\xda\xc1\x75\xd7\xfe\x2f\x68\x31\x60\x5e\x51\x9b\xc5\xa6\x89\xdb\x19\x7b\x45\xc4\x5b\x4d\x23\x1b\xc6\xbd\xe9\x2c\xdb\xba\x7b\x1f\x97\x3d\xc8\x8c\x05\x40\xfd\x14\xcd\x21\xa3\x6b\x1e\xcb\x0d\x74\x20\xbb\xcb\x1d\xd8\x02\xcf\xb6\xb9\xfb\x58\x9d\xa3\x59\xa9\x45\x19\x37\xcb\x9d\xc7\x14\x7f\xeb\xc5\x52\x25\x45\x28\x1f\x1e\x06\x8f\x3c\xcf\xe0\x25\x7f\x41\x0b\x9b\x29\x9a\x98\xeb\x19\x06\x71\x8d\xd7\x45\x17\x7f\xfe\x8a\xeb\x97\xba\xe0\x5a\xf9\x98\xb5\xbf\x49\x57\x7c\xbf\xca\xc7\x6c\x1d\xb6\x94\x76\xc1\xcd\x10\xc1\xa1\x9f\xde\xaa\xe7\x05\xd0\xdd\x95\xab\x58\xc1\xf7\x01\x09\x65\xf2\x70\xd7\xfe\x1e\xee\xda\x71\xb3\xcb\x48\x16\xf6\xf8\x3a\x30\x77\x91\xd5\xba\xc3\xfa\xb7\x7e\x14\xa2\x98\x30\x5c\xa1\xb6\x8e\xc8\xe2\xb4\x1e\xa4\xd9\x8c\xde\xb4\x3d\x43\xff\x97\x46\xd9\xf9\xc1\x80\xd1\x04\x3f\x89\xa4\x36\xb1\x6d\x95\xd9\x3c\x25\x18\xc1\x59\xaf\x5d\xdd\x49\x97\xba\x83\xe4\x2a\xee\x54\x7b\x19\x8a\xb9\x95\x16\xd3\xd0\x61\xce\x65\xce\x68\xbe\x46\x0a\x88\x79\xae\x03\xb1\x04\xa5\x87\x7c\x45\x6c\x30\x53\xe8\xcc\x2c\x25\xb3\x13\x7b\x22\x6f\xc8\xcd\xe3\x33\xd7\x33\x58\x92\x4a\xe7\xf4\x2c\xa8\x5c\xd2\xec\x47\xdd\x0d\x29\x32\x37\xf3\x06\xe9\xed\xf2\x69\x11\xfb\x94\x1d\xf1\x50\x5f\x54\xf5\x79\x8e\x93\xcb\x30\x40\xf8\x73\xc2\xb1\x4c\xaf\xaf\x97\xf9\x1e\xd1\x5f\x7f\x59\x7c\x16\x4e\x26\xe6\x67\xc5\xf3\xbd\x22\x19\x71\xb9\xda\xeb\x6b\x7b\x8e\x93\x19\x22\x53\x94\xa5\xf6\x1e\xe9\x4f\x10\xf1\xa7\x12\x44\x88\x77\x8f\xcd\x36\x7f\x41\x79\xb9\xb3\xe4\x02\xc5\x8e\x7d\x70\x79\xc4\x54\xdc\x38\x86\xd1\x01\x95\x96\x78\xcd\x3d\xd6\xb2\xfd\x47\xe6\x6e\x4e\xf0\x82\x87\x5f\xcb\xe6\xbc\xab\x30\x0e\x12\x96\xdb\x34\xcd\x22\xc6\x86\xf1\xcf\x3e\x8a\x02\x3c\x6f\x20\xf7\xf7\xc1\x7a\x4a\x16\xee\xcd\xc9\xfd\x38\x45\x53\x96\xac\x95\xf9\x74\x16\xe4\x27\x18\x58\xf6\x1f\xb1\x4b\x17\x32\x4d\x22\x01\xea\xe2\x14\x55\xb9\x39\xf3\x6f\x12\x22\xe8\x27\xbe\xd3\x15\x27\xa4\x30\x4d\x58\x51\x41\x5c\x0b\x57\x1b\xa6\x3a\xd5\x0a\xa8\xb9\x1d\x1a\x03\x95\xe4\xe3\x14\x51\xb6\x4e\xb4\xf1\x09\x71\x00\x8d\x3e\x3d\x48\x92\x59\x65\x6c\xab\x3c\x53\x60\x99\x0b\xc5\xc5\xea\x8a\x08\x24\x6b\xeb\x19\xed\x95\x3a\x4f\xe9\x79\x5c\x04\xd0\x3b\x4b\xca\x66\x0d\x96\x6c\x11\x2f\x61\x34\xa8\x55\x9b\xbd\x7b\x7d\x76\xfa\xe6\xe5\xa7\xcf\x1f\x3f\xbc\x7d\xfb\xf9\xcd\xfb\xb3\xd7\xa7\x7f\x3d\x79\x6b\xbb\xd7\xd7\x47\xe8\x38\x07\x29\x1b\xd1\x00\x0d\x0f\x47\x20\xa5\x9d\x1a\xa0\xe1\xd1\x88\x79\x5f\xa5\x94\xf7\xa5\xf3\xfc\xab\xa0\x58\xe5\x89\xd6\x55\xbe\x6c\x2e\x5f\x34\xcf\xf2\xc0\x9c\x13\x49\x04\xdb\x4c\xca\x32\xd7\x86\x8c\x38\x6b\xb9\xd5\x98\x91\x18\xd7\x2b\x45\x2d\x77\x38\xb2\x82\x04\x7f\xb5\xb1\xe5\xc0\xf7\x26\x26\x58\xba\xa4\xce\xdb\xfb\x91\x05\xe5\xaa\x77\xa5\x6a\xab\x74\x59\xdc\x11\xdb\x23\x2c\x94\x2a\xae\x92\x8e\x76\x32\xc2\xba\x4a\x5c\x90\xe9\x82\x42\x4d\xab\xa5\x83\xd4\x4e\xf7\xb6\xb6\x96\xf5\xed\x56\x36\x3a\x47\xcd\xef\xdc\x72\xb5\x9e\x52\xdb\x06\x92\xfe\xb8\xbd\x70\xc4\xb3\x3e\x3d\xf8\xa4\x3f\x08\x18\x37\xea\x93\xde\x82\x93\xa6\x3b\xb1\x75\xf8\x8d\x16\x9e\xd8\x2a\x22\x32\xe2\xce\x9f\x1b\xa1\x4c\xb0\x23\x72\x27\xa0\x21\xe8\x8b\xb7\x6c\x24\x2b\x62\x27\x31\x9a\x60\x94\x4e\x99\xee\x69\x85\x49\x47\xd4\xd3\xe0\xdf\xda\x26\x64\xb1\x45\xf8\xce\x2e\x41\x28\x36\xc1\xbc\xa8\x07\xa1\xa8\x69\xe5\xad\xf4\x75\xde\x04\xea\xe2\xad\xdc\x5c\x3b\x81\xba\xe0\xc6\xc2\x2d\xbd\xf0\x64\x25\x9b\x44\xaf\x1b\x69\xc3\xd6\xd9\x66\x0a\x35\x17\x87\x7f\x07\x53\x70\x09\x16\xe0\xbc\x20\xf3\x1f\xee\x93\xd2\xeb\xf3\xc3\x9d\xf4\x7b\xb8\x93\x3e\x7a\x4e\x93\xca\x0a\x27\x99\x20\x4c\x4d\x3a\xad\x24\x26\x30\x8c\xf9\x6d\xb2\x52\x2b\xd6\x94\x99\x8b\x65\xee\x73\x41\xd6\x84\xf8\x8b\x08\x09\xe3\x73\x7a\x17\xfa\x1d\x61\x7d\x83\x36\xce\x75\xb1\x34\x90\xd0\x16\x66\x9d\xbe\x10\x57\xee\xbc\x83\xee\x4a\xd7\x58\x7d\x50\x89\xc3\xd8\x1c\x83\x89\x50\x42\x7d\x28\x34\x59\x62\x6a\xc1\xb8\xf4\x8a\xc9\x3a\xd3\xd2\x43\x9e\x02\xf1\xb2\xf4\x54\xcd\x1f\x58\x94\xde\x18\xf8\x6e\xe7\x05\x0a\xf1\xd6\x50\x37\x0d\x8c\x03\x27\xc2\x4d\x6e\x3b\x15\x67\x27\x1f\xc6\x8e\x9d\xa5\xc8\x8a\xe5\xf2\xbc\x58\xe1\xda\x23\x22\xbb\x1c\xd7\x7b\x3e\x1c\xb9\x83\xe1\x68\x85\xaf\x8f\xca\x46\xd3\xc9\x92\x56\x6b\x3a\x03\x27\x2f\xdf\xa6\x83\xe5\x47\x96\x03\xec\x15\x5f\xf6\x74\x30\x1c\x81\xd3\x24\x42\xda\xef\xbc\xa5\x8d\x0d\xe8\x96\x5b\x0d\xa8\x91\xe8\x40\x8b\x1a\x9a\x63\x01\xd7\xed\xf2\x55\x45\x6e\x5e\x40\x28\x1b\x60\x37\x75\x32\xfc\xc9\xcb\xb7\xba\x1f\x93\xc6\x15\x15\x95\xd4\xf1\x44\xcc\xa9\x07\xc4\xe9\x80\xe4\x6a\xe6\x2b\x48\xfd\x43\x4a\xf5\x2b\xb1\x65\xc3\xa5\x04\x2d\x1e\xd8\x94\x5e\xd1\x3b\xd8\x06\x1c\x71\x79\x60\x53\x32\x8e\x6c\xc0\x70\x96\x29\xc5\x1a\x49\xfe\xf0\x1c\x91\x13\x9f\x84\x74\x02\x3c\xdb\x2e\x94\x6b\xab\x77\x8c\xd0\xba\x2d\x69\xb7\x0b\x0f\xad\x7c\x6f\x55\x78\xb8\xd8\xa7\x9a\xcb\xdf\x5e\x38\x71\x38\x90\x25\x77\x4e\x73\x97\xc8\x73\x74\x64\x56\x71\xc4\xf4\x55\xb5\x79\xea\x50\xd7\x2d\xdc\x45\xaf\xaf\x8b\x1e\x88\x45\x39\xf2\x28\x8f\xca\x6b\x7d\x41\x86\x87\xa3\x81\x19\xb3\xc4\xcd\xa4\x88\x43\x53\xd7\x65\xc0\xe3\xde\xa8\xac\x16\xfa\x47\xee\xd6\xc4\x4b\xee\xef\x3b\xab\xea\x50\x9d\x62\x23\x14\xb5\x80\xf2\xe7\xc3\xc3\x91\xeb\x82\x38\x77\x08\xe0\xb3\x89\x72\x37\xcf\xc1\xc4\xfb\xec\xcc\xcd\x34\x7b\x99\x82\xf0\xd8\x4e\x5b\x32\x2e\x57\xad\xd1\xc3\xed\xd1\x28\xa7\xe5\xda\xb9\xfa\x68\xeb\xf4\x80\x97\xe5\x7a\x45\x62\xda\xad\x93\x03\x2e\xca\x15\x17\x84\x7d\x98\x6d\x5b\xf9\x79\xb9\x72\x13\xfb\xd3\xdf\xb6\xfe\xf2\x9c\x28\xff\xb5\x60\xbd\x80\x51\xfb\xa5\x0b\xe6\xba\x74\x51\x53\xbf\x92\x94\x66\x1b\x34\xa1\x24\x25\xa3\x95\xb9\x2e\xc3\x7c\x6c\x2f\xc3\x24\x61\xe0\xf7\xa4\x62\xf6\xab\x18\xde\x1f\xd2\x8f\x3c\xc8\x1f\x77\x57\xfe\x98\x37\x1b\xdd\x59\x2a\xa2\x15\x06\x77\x4d\x3a\x68\xa5\xf9\xa2\x47\xf1\x40\x1e\xc5\xd6\x70\x60\xc6\x57\x7a\xe4\x4e\xab\x0f\x15\x2b\x45\xbf\x3c\x18\xf8\x4c\x59\x97\x12\x48\x50\xc7\xf0\x9d\xba\xb4\x23\x3c\xda\x00\x57\x73\x8c\x14\xd7\x83\x4c\x30\xb2\xc6\x94\x6c\x5a\x0b\x0b\x7f\xaa\x0f\x57\xb1\xd0\x8c\xb9\xfd\x28\x49\x2e\xb2\xb9\x58\x16\x45\xd2\x06\x8c\xc0\x5d\x85\x64\xda\xcb\x70\x64\x37\x45\xe0\x98\x64\x70\xa5\x0a\x51\x5a\xb5\xcb\x2c\xf3\x4a\x4d\x62\x95\x4d\x33\xf0\x7b\xb8\xc5\xf7\xbd\x06\xda\xa3\x78\x28\x8e\xf1\xf0\x32\x09\x90\x77\x7c\x78\xcc\x4f\x85\xce\x0b\x17\x99\x6f\x6a\x63\x43\xb8\x59\x18\x69\xc1\x2a\xab\x20\x89\x5a\x32\x8e\xcc\x3c\xdf\xa4\x08\x5d\xc6\x29\xf3\xe7\xbb\xbe\x26\xb5\xfc\x25\x98\xd7\x47\x02\x90\xfe\xc7\xe2\x47\x51\x5a\xba\xe8\x87\x01\x73\x50\xcc\x4b\x32\x44\x43\xc8\xef\x6a\x11\x01\xb9\x79\x94\x9c\x27\x19\xd1\xd3\xdc\x6b\x91\x01\xa9\xb7\xa4\xcd\xe5\x35\x29\x20\xc4\x77\x75\xb5\xa6\x6e\xee\x47\x49\xaa\xd0\xd8\xc5\xf6\xef\xf3\x87\x76\x79\x23\xd2\x29\xa3\xcb\xfa\xd3\xe2\xd7\xd3\xb7\x1a\xdb\xac\x85\x96\xe8\x9b\x1e\xd8\x63\x98\xa2\x5f\x71\x64\xb3\xc4\x9d\x7a\x03\xc9\x1c\xc5\xe5\xfa\x99\xd5\xb4\x40\x14\xe1\xc2\xa5\x80\xfb\x78\x74\xc8\xf1\x3e\x2c\xd4\x9f\xf1\xe4\xa6\xba\x13\xab\x4d\x85\x39\x82\xac\x2b\x98\x5a\xac\xeb\x81\xed\x0e\x88\xbe\x4f\x4f\xab\x05\x00\x31\x36\xea\x0f\x3f\x94\x53\x2e\x68\xdf\xab\x56\x4b\x5f\x3d\x3d\x3c\xcc\x3b\xef\x6c\xe2\xe6\xb5\xc1\x0d\x8a\xf6\x6c\x6f\xcd\xf5\xcb\x75\x6b\xdc\xed\x0d\x45\x4f\x74\x87\x1c\x5c\x5b\xcb\x5d\x88\xaa\x50\xa7\x72\x83\x88\x8a\xe2\xdb\x1d\x45\x53\x28\xd2\xb3\xa5\x02\x5f\xab\xe7\x56\x75\xf8\x7b\x55\xff\xcf\xfb\xc0\x37\x8f\x1f\xf8\xe6\xdf\x03\xdf\x3c\x6d\xd6\xdb\x6b\x7c\x71\x93\xe6\x5e\xe8\xdd\x9b\x94\xf6\x4d\x4a\xf5\xa4\x8d\x8a\x5c\x3d\x49\x99\x66\xbf\xcb\x17\x82\xbd\xf6\x37\xe4\x8b\x27\x15\xf6\x57\xfa\x7c\x4e\x0c\x35\xf9\xac\xf4\xd4\x50\x78\xcc\xeb\x53\xf2\x09\x3e\xb6\x20\x46\xbb\x07\x86\x6f\xa3\x0f\xd7\x27\xf7\xae\xa8\xc4\x6d\xfb\x36\x15\xdc\xb5\x1a\xe1\x55\x3a\xdd\x62\xc9\x76\xa6\xd6\xad\x63\xa4\xbf\x19\xb5\x6e\xe0\x8d\x1d\xbf\x81\x1d\xdb\x5a\xb1\x3b\x2b\x57\x2e\x54\xa4\x5b\xeb\x74\xe7\xe5\x8a\x4d\x2d\xe6\xd6\xba\xdd\x72\xb7\x95\x16\xb3\x85\x0f\x5b\xed\x97\x2e\xf0\x75\x2e\xab\xa6\x7e\xc5\x2f\x66\x1b\x34\xa1\xf8\x45\xa3\x15\x5f\xe7\xe5\xa6\x1d\x78\xb9\x8d\x60\xd8\x6e\x4a\x85\xf9\xcd\x02\x1f\xcd\x6e\x04\x3f\x24\x68\x83\x1f\x32\xb9\x5d\xfc\x90\xe0\x56\xf1\x43\xee\x75\xd8\xd9\xad\xc3\x60\x3d\x48\x10\xdf\xbc\x04\xc1\xf9\xa5\xa9\xd7\xc6\x20\x9f\x83\x95\x85\x30\x82\x81\x59\x26\x95\xa8\x0e\xcd\x45\xb8\xaf\xf5\xaa\x2a\xc4\x65\xd3\xa1\x48\x4d\x6f\x2f\xd0\x62\x55\x15\xc6\xeb\x9a\xcf\x35\x00\xbf\xe6\x4a\x6a\x0a\xd5\x54\x05\xfd\x68\x55\x25\xc6\x6b\xf1\xf9\x88\xc9\x79\x97\xcd\xf6\x11\xee\x5a\xd5\x64\x1d\xf1\x61\xac\x85\x23\x7e\x26\x18\xfa\x17\x28\x58\x6b\xf3\xe0\xbe\x4d\x54\x28\xd3\xf8\xa7\x6a\x96\xf4\xb6\x22\x99\x11\x81\x97\x94\x22\xf0\x3e\xd3\x3e\x2a\xe3\xc5\xbc\x43\x82\x74\x29\x8d\x69\x18\x95\x53\x98\xd6\xa4\x1b\x96\xbc\x41\x93\x60\xc5\x00\x9d\xe2\x22\xa5\x30\xf1\x9e\xc7\x3c\x99\x30\xa5\x8b\xee\xfe\xfe\x23\xc6\x30\x8b\xe4\xdf\x39\x95\xc3\x4a\x39\x59\xe9\x20\xfa\xfc\x79\xae\x61\x34\xd5\x95\x32\x5e\xe7\x12\x7c\xc9\x00\x84\xb2\xb0\x57\x6c\x0b\x24\xb7\x04\xa9\x02\xd8\x50\x1e\x1e\xf7\x05\x6a\x93\x17\xbb\x00\x97\xe1\xa6\x68\x17\x9a\x52\x6b\x9b\xbe\x3f\x52\x28\x19\x8e\x58\xac\x5d\x5c\xcd\x3c\x5c\x54\xaa\xcf\x39\x95\xc7\xb8\x9c\x49\xdc\x65\xc1\xce\x28\x39\xa6\x48\xaf\x3e\x83\x73\x07\x79\xcf\x67\xce\x4c\x43\x01\x55\x8e\x3e\x6e\x3d\xa6\x83\xe8\x96\xe8\x53\xed\x34\xaa\x28\x3f\xa8\x39\x1e\x15\xc0\x01\x35\xf8\x56\x54\xbc\xed\x93\xe4\x13\xc3\x7f\xd0\x70\xb3\xe8\x32\x63\x29\xb6\x0d\x47\x03\x47\xeb\xbe\x87\x4b\x90\x58\x2c\x3d\xac\xde\x65\x03\x21\xcb\x5c\x79\xfd\xa3\x72\x66\x69\x4d\xe6\x2b\x1a\x9b\x82\xf2\x2e\x2d\x63\x25\x94\xdb\xab\x7c\xa0\xae\x65\xe4\x3d\x5f\x0e\x39\x9d\x13\x34\xb7\xa0\xce\x3a\xe5\x52\xd4\x74\xd4\x0f\x63\x3f\xca\x02\x16\x60\x28\x37\x22\x4f\x14\xcc\x96\x8b\x5e\xb4\x79\xb5\x41\x96\xf4\x76\x5c\x97\x9a\x76\x6b\xeb\x40\x56\xae\x97\x53\x8d\xed\x2d\x03\x7e\xb9\x62\x53\x62\xdc\x5c\xd4\xad\x73\x86\x63\x12\x64\x1d\xc0\xc3\xe6\xd0\x10\x2b\x41\x21\x2e\x3b\xc8\x76\xcc\x7f\x71\x5b\x25\xbd\xa8\x64\x17\x40\xb7\x85\xb4\x97\x3d\x70\xa2\xdf\x3a\x27\x2a\x92\xb9\x35\x71\x31\x42\x51\xdd\x0a\x91\x95\xed\xc1\x10\xb5\xc6\x63\xe5\x7b\x56\xb9\x74\xec\x12\x4a\x95\x6b\xb5\x0a\x2c\xd5\xe4\xae\x62\xa9\x36\x31\x56\xfc\x38\xdf\xf9\x4c\xc2\x37\xe2\xd6\x6d\xc2\x26\xb5\xd5\x6d\xf3\xdb\x39\xc1\x33\xf6\x9f\x7a\x93\x7a\x8a\x08\xed\x82\x43\x5c\xfa\x8a\xfd\x69\x40\x98\x0b\xff\x01\x23\xd5\x08\x41\xb3\x79\xc4\xfc\x85\x44\x12\x11\x95\x41\x44\x4b\xc3\x5f\x82\x17\xe0\xde\xd6\xc8\xcd\x09\x86\x71\x1a\x99\x58\xb6\x1a\x5b\x57\xbc\x96\x2b\x0e\x8c\xb6\x4f\xb3\x88\x79\x52\xb3\xeb\x3d\x2b\xdd\x42\x5c\x71\xbb\x7d\x4a\xfb\xf5\xd9\xfc\x6e\x24\x27\x60\x4d\xbb\x5b\x81\x35\xb5\x40\x6a\xea\x90\x0d\x90\xe3\x5f\x6c\x79\x27\xf3\x3a\x1e\x92\xdd\x3f\x5c\xc7\x37\x92\xec\x9e\xee\xaf\x10\xd5\xe1\x92\xb7\xbb\xae\xe9\xf6\xec\x85\x31\xcf\x01\x7c\x30\x10\x55\xbc\x09\x0e\x06\x5a\x4c\xf3\x06\x51\xca\x7c\xdf\xb7\xbb\xbb\xea\x71\xec\x6e\x3a\x0d\xab\x0e\xb7\xa1\x8b\x6a\x06\x44\xe1\x1c\xd2\x7d\x8a\xfa\x59\x18\xb8\x7b\xa4\x3f\x4f\xe6\x8e\x0b\x08\xb3\x22\x38\xa8\x2f\x70\x1f\x3e\xd2\xb1\xf6\x35\xd8\x5b\xf1\xfc\xcd\xab\x02\x53\xa6\x1e\xc1\x50\x0a\x82\x6a\x05\x6c\x50\x42\x46\x24\xae\xbb\x17\x97\x52\x4a\xb1\xf6\xde\xa8\x2f\x10\x15\x06\x4d\x61\x58\xbe\xd4\xe5\xf8\x55\xc9\x65\x55\xa9\x22\xad\x6c\x38\x71\x8c\x2c\x5f\x12\x16\xfa\xf9\xa1\xb8\xee\x15\x06\xe0\x4f\x0b\xc7\x5e\x3b\x13\x36\x40\x7d\xb5\xb9\xb4\x3c\x63\x49\x80\x54\x06\xc8\x24\x40\xee\x1e\x79\x81\x3d\x32\x70\x78\xf5\xbc\xd0\x9a\xca\xe5\xf7\x61\xe0\x02\x6e\x37\x22\x85\xdd\xa1\x98\x38\x0c\xec\x19\x22\x50\xbf\x5d\x63\xf1\xc8\x75\x9b\xd3\xe2\x6e\x11\xee\xad\x43\x07\xae\x8b\xf8\x36\x57\x6c\xc3\xc8\xef\x52\x25\x3b\x8a\x00\xc7\x49\xb4\x6d\xfc\x37\xaf\xe2\x41\x2e\x7d\xb8\x08\xbf\x96\x5c\x4a\x77\x60\x6b\xa1\x94\x16\x7e\x10\x49\x6b\x6e\x75\x76\x8e\x6f\xd2\xe9\x6a\xb3\xdc\x01\xf7\x58\xf0\xbc\x75\xa1\x6e\x73\x41\xee\x7e\x09\x6f\x55\xce\x6a\xb3\x1b\x8c\x1b\x3a\x28\x8b\x3d\xa6\x82\xff\x83\x24\xf7\x70\x81\xdd\x8c\x24\x57\xde\xb0\x1b\xcb\x74\xe5\x8a\x76\x28\xd5\x55\x0e\xd5\x2e\xf0\xe5\x05\x1b\x2f\xff\x65\x4e\x97\x61\xb0\x32\xb7\xc9\x76\xb2\x61\x39\x19\x10\x6f\x89\x28\xd9\xcf\x90\x91\xb8\x08\x89\x4a\x29\x73\x84\x24\xa6\xe7\x1e\x96\xc3\x90\x06\xbb\xd4\x06\xc4\x05\x71\x0e\xe2\xfe\xc9\xcb\x97\xaf\x3f\x7d\xfa\x7c\xfa\xfa\xe4\x15\x40\x2b\xb0\xf3\xdb\xc1\x6e\xd5\x22\xa9\xab\x24\x1e\x1b\xe2\x52\xa9\x24\x1e\xad\x01\xb0\x36\x11\x50\x76\x2b\x98\x28\x2b\xea\xad\x79\x43\x16\xc4\x3b\x7d\x20\xde\xbf\x07\xe2\x1d\xb6\x44\x0b\x94\x7b\xad\x2d\x60\xe0\x39\x24\xe8\x0a\x2e\x4a\x34\x5e\x3c\xa5\xe7\xc3\x71\x9a\xd3\xda\xaf\xa4\xcd\xdd\xa1\x01\x6b\x50\xfd\xfe\xc4\x3b\x72\xcb\x1a\xb9\x5d\xc1\xfc\x55\x52\x94\x57\xad\x10\x46\xae\xf2\xb4\xfa\x85\x31\x01\x1b\x26\x46\x37\xeb\x58\x95\x1f\x3d\xec\x42\xf3\xbe\x86\x07\xf8\x43\xca\xa3\xdf\x19\xdd\xcb\x9a\x3d\x1e\xd9\x39\x6e\x4b\xe7\xc4\x76\xe5\x74\xae\x2b\x4a\xaa\xf1\xf1\x05\x5a\xa8\xec\x4a\xbb\x54\xc9\xf0\xe1\x68\x3a\x99\xf0\x9e\xe9\x64\x24\x45\xc8\x39\x83\xf5\x3e\x09\x76\xc5\x27\xb7\xa0\xd8\xbc\xcd\x5f\x50\x3d\x62\x7a\x33\x0b\x0b\x42\x2f\x31\xd9\x43\xb1\x0e\xdb\xfb\xaa\x25\x75\x6c\xe7\x7b\x8e\x2b\xbd\x19\x73\xcc\x3e\x2e\xf1\xac\xb5\xad\xfc\x82\x16\x1b\x33\xc6\x2c\x63\xd2\x0a\xbe\xb8\x43\x86\x21\x1e\x22\xb7\x9d\xc6\x5e\xd4\xb1\x9b\x9c\xe9\xc0\x07\xc1\xde\x03\xa8\xd0\xef\xeb\x0a\x59\x91\xe1\xbb\x8b\xe2\x9e\x6d\xc4\xd6\x9a\x7b\x56\xba\x4b\x6a\x6f\xfe\x41\x8a\xa2\xc9\xc1\x20\x45\x3e\x46\xa4\x6d\x88\x35\xef\x18\xbb\x9b\xa4\x13\x9b\xf0\xdf\x69\x19\x71\xad\x55\xc0\x0d\x0e\x4c\xbb\xde\x2d\xf2\xba\xbb\xc9\x21\xb8\x67\xd7\x1b\x27\x44\x0f\x36\x87\x1d\xda\x1c\xe8\x6e\xaf\xf7\x45\x63\x6f\x6a\xf1\x46\xf9\xd9\x18\xd0\x22\xf4\x0f\x89\x58\xa4\xe3\xef\x94\x32\xa3\x20\x97\x41\x05\xc5\x0d\x6e\x6f\xfc\x55\x5d\x5b\xba\xf7\x9b\xb1\xbe\xae\xe4\x37\x38\xda\x6b\xb9\xde\x66\x71\xf6\xa7\xc5\x69\x12\x21\xa7\x4d\xf1\x1c\x04\xde\xac\x36\x3a\x7a\x07\x28\x38\x0d\xd1\xcb\x2d\x18\x86\x36\xd1\xcb\x35\xf5\x77\xb1\xc7\xb4\x8c\x5e\x9e\x95\xe3\xd2\xa3\x49\x3b\xa0\x9b\xea\x67\x6d\xfa\xff\x51\x3a\xc6\x6f\x12\xe2\xad\x3e\x6f\xd3\xd2\x29\x77\x73\xd8\x2c\xce\xfb\x54\x90\xee\xc6\x38\xef\x0e\x98\x3d\x24\x99\x27\x51\x72\xbe\xb1\xe7\xe1\x43\x1e\x94\x07\xf6\xac\x65\x1e\x94\xb5\xc8\x33\x81\xdf\x56\xd2\x97\xbb\x96\x63\x2c\x5e\x84\x31\x17\xf3\x77\xc9\xca\x04\x7e\xaa\x73\x32\xe9\xbd\xe3\x64\xc4\xb9\xce\x6b\x4c\x3f\x86\x9f\x60\xe0\xa7\xcc\x4b\xf0\x03\xbd\x3c\xfb\x81\xaf\x8c\x4f\x74\x0b\x78\x9e\x17\x5f\x5f\x1b\x4e\x6c\xef\x50\x3a\x7d\xcd\x13\x04\xda\xee\x0b\x67\x7b\x71\x7f\x45\x82\x65\xa4\x23\xee\x49\x5f\x49\xc3\x61\x9d\x61\xd6\xd1\xfb\xb5\xb0\x8d\x71\x00\x3c\xdb\x05\xd8\x73\xd6\x95\x0d\x10\x81\x61\x64\xbb\xd7\xd7\xb6\xed\xf6\x09\x0e\x67\x8e\x2b\x41\xfd\x88\x70\xbf\x7f\x7a\x78\xa8\x3c\xf0\xe9\x68\x1d\x8e\xc2\xe0\xc5\xfb\xfb\x74\xad\x03\x01\xf2\xf7\x32\x89\x63\xe4\x13\x6b\x96\xa5\xc4\x1a\x23\x4b\x24\x51\xb4\xc2\xd8\x4a\x70\x80\xb0\x45\x12\x2b\x4b\x11\xe3\x07\x2c\x14\x07\xf3\x24\x8c\x89\xed\x96\xdc\x2d\xf5\xd9\x05\x8f\x8e\x5c\xb7\x00\xfc\x9b\xe2\xe4\xca\x42\x79\x1d\xcc\x3a\x65\x25\x52\x2f\x34\xd5\xc2\x6c\x07\x6f\xaf\xe2\x08\xab\xca\xe6\xad\x34\xd5\x2d\x54\xd4\xeb\xcd\x72\x69\xf8\x1f\xd4\x4b\xc6\xf4\x49\x19\x64\x19\xd1\xe9\xec\x95\x8a\x28\xb3\x47\x63\x1d\xa5\x1b\xab\x19\x8e\xa2\x91\xf2\x35\x7e\xa0\x90\x37\x97\xe6\xc4\x9f\x23\x52\x0d\x1d\x2c\xc8\x56\x9e\xbb\xeb\xe6\x21\xc9\x48\x84\x48\xd3\xdd\xcd\xe1\xf0\x68\xa1\x30\x3e\x3f\xb8\x0a\xa3\xc0\x87\x38\x30\x8a\x08\x00\xf7\x36\xa0\x2c\xc5\xa5\xed\x7f\xd3\x90\x2c\xc1\x8d\x40\xb2\xf8\x6d\x20\x59\xe6\xb7\x0b\xc9\xe2\x7f\x1d\x48\x96\xd9\x7d\x82\x64\x99\x7f\x25\x48\x96\x87\x0c\xe4\xdf\x3c\x63\xcc\xf9\x99\xb1\xc7\x90\xef\x14\xbf\x1b\xf7\x19\x4d\x56\xc9\x9e\xa7\x0c\xe7\x97\x71\xb6\x06\x1f\xab\x20\x91\xe7\xac\xc0\x3b\x38\x17\x8c\x55\x82\x09\x0a\xbc\xe1\x28\xa7\x7f\xc9\x62\xf2\x69\xbf\xdf\x97\x9f\xf1\xed\xe3\x8e\xf4\xcf\xd8\x3f\x8e\xc8\xe2\xbc\x0c\x27\x8e\x4d\x49\x65\xe8\xb3\x08\x08\xa6\x7a\x92\x99\x8d\x8f\xf6\x6a\xde\x12\xf1\xb6\x77\xa4\xa5\x8e\x4e\xe7\x51\x48\x1c\xbb\x6f\xbb\x82\x7a\x02\xec\x91\xea\xd3\x0a\x94\x72\xfc\x1c\x0f\x8a\xea\xd8\x93\xff\x93\x4f\xac\x23\xc5\x16\x49\x34\x07\x7a\x5b\xa6\x8c\xcf\x23\xc5\xd4\xf4\xe5\x93\x62\x90\x0e\xe3\x98\xcb\xea\x1c\x5a\x96\x3f\xce\x03\x86\x3f\x48\x0b\xa8\x37\xea\x91\x51\x0d\x9f\x3f\x53\xdb\xc4\x66\x31\xcf\xd7\x01\xb9\xe8\x79\xb4\x36\xcb\x2e\xaf\xa5\xea\x32\xa5\x1e\x5e\x5c\xb8\x58\xad\xc1\x6a\x99\x55\x73\x4f\x85\x02\x9b\x65\x56\x07\xe3\x32\x2b\xe5\xb0\x12\x40\x2e\x39\x46\x30\x58\x94\xa6\xe2\x33\x0b\x35\x65\x62\x5b\x5e\xfc\xe9\x70\x8d\x26\xda\x6b\x28\xca\xf6\xb2\xe0\x6e\x1d\xe2\x3d\x5f\x22\x8f\xd0\xb3\xc3\xa4\x98\x0f\x8c\xdb\x29\x96\x8e\xee\xe6\xa9\xdc\xc6\x1c\x1a\x91\x78\xcf\x7b\x47\x8f\x98\x8a\x94\x4a\x20\x1f\x26\x0e\xbd\x86\x38\x9b\x24\x40\x5a\xa4\x18\x61\x7c\x0d\x62\x8f\xa8\x4f\x90\xfb\xc7\x23\xd9\xc1\x29\xdb\x16\x64\x18\x8f\xdc\x3c\x4e\xf0\x8c\x91\x89\x8f\x10\xc3\x59\xfa\x73\x52\x49\x45\x39\x76\x90\xca\x1c\xcf\x6a\x26\x35\xb4\x0f\x69\xd7\x49\x21\x3d\x0d\xe3\xd1\x0b\x34\x8c\x47\x5e\x80\xfc\x24\x40\xbf\x9e\xbe\x79\x99\xcc\xe6\x49\x8c\x62\xd1\xfc\x80\xbd\xa5\x7f\x02\x94\xbb\x60\x99\xbb\x03\x92\xcf\x8b\x9e\xc8\x48\xa9\x65\xae\x0e\xdf\x54\xec\xe9\x3d\x1d\x44\xa6\xf8\xbb\x0f\xf1\x79\xda\xe7\x55\xec\xef\xb3\x28\x28\xed\x89\x0c\xcf\x62\x4b\xc4\x57\x9c\x8a\x73\x18\xc5\xe4\x94\xfe\xda\x13\xf2\x21\xe6\x51\x50\x22\x23\x3d\xdf\x47\x2a\x75\x00\xfb\x6e\xa0\x93\x09\x97\xd7\x0b\x41\xe4\x61\x90\xf2\xef\x6a\x27\x36\x52\xfd\xa0\xcc\xd8\xff\x42\x8f\x3d\x40\x31\xf9\x5f\x37\xf5\x02\x27\x70\x96\x39\x68\xfa\x1a\xf6\x63\x38\x43\x00\xca\x2a\x5c\x90\xd2\xa3\x04\xe5\xaa\xd2\xcf\x8b\x0a\x8a\x6e\xd3\xe9\xb2\xa3\x84\x77\x75\x60\xff\xd1\x84\xd2\x91\x2f\xce\x16\x73\x64\xbb\x6e\x9f\xa7\xd6\x87\x11\x6f\xd7\xe1\xad\x10\x37\x67\x56\xcd\xd2\x6e\x53\x4b\x11\x4e\x34\x91\xd9\x55\x3c\x3f\xfb\x26\x87\x41\xc0\xe6\xd6\x0c\xa2\x63\xbd\xd0\xf7\xb0\xb1\x9e\xf2\xc6\xf0\x88\x50\x66\xe3\x2c\xee\xa7\xfe\x14\xd1\x2b\xc8\xb1\xe1\x84\x20\x7c\x8a\x62\x96\x8c\xc6\xa1\x64\x5d\x94\x67\x98\xa3\x88\xb3\x68\xb3\xe4\x12\xb5\x6a\x98\xf4\x3f\xb3\x9e\x8a\x3b\x0c\xe8\x1d\xe9\xd4\xba\xa7\x58\x2d\x18\xa8\x83\x4d\xdb\x9e\x2a\x9a\x2d\xfa\x55\x9c\xfa\x76\x0d\x4c\x0b\x72\x9d\x73\xe3\xff\xc4\x34\x81\xeb\x99\xa5\xb6\x77\x00\x28\xd7\xbe\xa3\xc4\xe4\x59\xb9\xde\xdd\xa5\xda\x4a\xcb\xb0\x31\x7b\x2b\x44\x4c\x3a\xd3\x33\xd8\x24\x61\x0a\xfb\xbd\xc2\x15\xea\xe9\x58\x51\xed\xca\xf5\xa6\x84\xcc\x3b\x15\xee\x4d\x79\xce\xd9\x5a\x67\x00\xc5\x40\xc3\xdb\x65\xdc\x77\xc0\x0e\xb2\x6b\x3c\xda\xe8\x22\x87\xe2\x62\xae\x5f\x08\xd2\xe7\xab\xb8\xba\x9c\x58\x88\xb8\x7d\x61\xb9\x10\x00\xcb\x6f\xf2\xbc\x18\x56\xb4\x46\x79\x91\x22\x88\xfd\xe9\x6a\xdd\x05\x2f\x73\x80\xbe\x40\x9f\x94\xcc\x12\xec\xc5\x1c\xa3\x80\x5e\x2c\x48\xdb\x2e\x6b\xca\x65\x22\x8f\xbd\x16\xab\xb3\xb2\x7c\x35\xb4\x67\x65\xf1\x29\x82\x11\x99\xf6\xfc\x29\xf2\x2f\xd6\x14\x65\x10\x80\x6d\xda\x5e\x53\x4a\xc0\x7c\xad\x2a\x72\x71\xb9\xa6\x40\xd5\x03\xa7\x5a\xa6\x12\x57\x5b\x2d\x52\x03\x0a\x55\x33\xee\x8c\x4c\x7b\x33\x44\xa6\x49\xb0\x6e\x64\x3c\x39\x63\x6d\x0e\x07\x50\x93\x82\x79\x03\xa5\x5d\xa3\x54\xb6\x54\x1b\x6a\xa0\xac\x11\x40\x2c\xc8\x20\x54\x4f\xaa\x51\x2a\x03\x58\xbc\xac\x6e\xb6\x01\x2e\xde\x1a\x7b\x65\x10\x15\x2f\xf4\x19\x1a\xcc\xd5\x73\xba\xd0\x83\x44\xfd\xbc\xb8\x1c\x64\xea\x07\xf4\xa3\x41\xaa\x7e\xb1\xe5\x1c\xf8\xea\x37\x5d\xba\x41\xa0\x7e\xf2\x65\x1a\xcc\x8a\x9a\xb9\x43\xc0\x44\xa9\x1e\x05\x35\x9a\xb6\xa6\x46\x4c\x19\x56\x31\xa7\x70\x16\x02\x60\xcf\xe6\x8b\x4b\x09\x27\x33\xab\x2c\xd9\x91\x1e\x14\xba\x4e\x80\x29\x7d\x8e\x1b\xe8\x33\xad\x59\xac\x1a\xec\x44\x9f\xe3\x21\x1e\x79\x30\x57\x7b\x4a\x93\xfb\xc6\x43\x34\xd2\xe9\xd5\x3a\x70\x6c\x0d\x14\x7d\x15\xc5\x22\x09\x86\xe7\xe8\x80\xf2\x8a\x51\x4f\xfc\xda\x81\x72\xb9\xe8\x27\xea\x87\x93\xf7\x09\xf9\x29\x4a\xfc\x8b\x30\x3e\x37\xf7\x6d\x5c\xd2\x26\x88\xfe\xd9\xf4\xca\x37\x3f\xab\xc5\xa1\xd7\xb1\xef\xfd\x28\x44\x31\xb1\x05\x74\x45\x1d\x6e\xbd\x62\xfe\x50\x7f\x2c\xaa\xdd\xdf\x7f\x54\xfc\xa0\xbc\xa5\xd8\x48\xb8\xd3\x46\x22\x95\x8d\x04\xbd\x18\x38\x98\x3b\xd0\xd2\x09\x75\xc3\xd8\xe1\xb6\x3a\xb7\x61\xcb\x90\x4d\xb7\x0c\xe1\x5b\xa6\x0a\xd9\x58\x36\xba\x28\x3b\x16\x3c\x47\x7d\x18\x45\x8e\x72\x19\x91\xce\x3b\x6d\x3e\x3c\x47\xe4\xaf\xb4\x97\xcc\x85\x45\x43\x86\xaa\x24\x38\x80\xe7\xa8\x4e\xff\x87\x0a\xfd\x5f\xec\x3d\x5f\x12\xca\x3e\xf3\x0a\x63\x80\x98\xd8\xea\x82\x1a\x9c\xa8\x42\xcb\xc1\xf2\x23\xf4\xc3\x94\xe7\x49\x40\xee\xf5\xb5\x83\xbc\x21\x1a\xb9\xd5\xbc\xb9\xf0\x1c\x81\xd8\x43\xab\x45\x5a\xd2\xe7\x7c\xbb\xe8\x84\x2b\xa5\xd5\xbd\x86\xd9\x88\x0d\xae\x01\xaf\x3b\x85\x09\x6e\xb4\x77\xd0\x77\x07\x7e\x32\xa3\x42\x1f\xf3\x48\xa8\xbd\x3f\x1b\x0a\x35\x5c\xf0\xe5\xd2\x6b\xd8\x87\x72\xf1\xf2\xc5\x5b\x7e\xdf\xcc\x2e\x94\x4b\x36\xf0\x37\xe5\x62\x35\x17\x79\xb9\x48\xf5\x1e\x2f\x97\xa8\xbb\xc6\xcb\x65\x1a\x6f\xf1\x72\x41\x71\x89\xaf\x2e\x43\x59\x98\x56\xd7\xfc\x96\xa4\x73\xae\x8c\x24\x26\xdd\x9c\x7b\xc8\x7b\x5e\x6c\x6c\xae\x00\x45\x7d\x3f\x89\x7d\x48\x9c\x21\xf9\xa3\x3d\x80\xa9\x6f\x03\xfa\x47\x80\x52\xdf\x1e\xb9\x60\x38\x72\xc1\xc4\xa3\x87\x65\xe4\x7a\xcf\xf5\x88\xce\x79\x11\xc2\x39\xe4\xc8\x32\x0e\xad\x9e\x69\x48\xaf\xaf\xe3\xe1\xe1\x68\x94\xef\x19\x9d\x99\x14\x7c\x47\xf1\x74\x30\x01\x41\x88\x11\x9b\x91\x70\xb2\x18\xcc\x73\x30\xf5\x96\x92\x07\x31\x09\xfd\xd8\xad\x63\x45\x4c\x57\x0a\x5a\xa6\x86\x23\x31\xbd\x47\x69\x21\x93\x31\x71\x0e\x41\x64\xbe\x37\xf8\x13\xe7\x10\xf8\xc6\xeb\x8b\xcb\x81\x9e\xf6\x85\x3d\x2b\x98\x29\xe7\x10\xa4\xc6\x2b\xce\xab\x38\x87\x20\x34\x1e\x33\x96\xc5\x39\x04\x89\xf1\x54\x70\x2e\xce\x21\xc8\x8c\xe7\x82\x81\x71\x0e\x41\x60\x3e\xa7\x2c\x93\x73\x08\x66\xfa\x53\x79\x29\x5d\x36\x5e\x4a\x72\x67\x6a\x44\x7c\x5a\x62\x17\xd6\xe1\xad\xb2\x94\x9f\x3c\x7b\xa0\x3f\x85\x8c\x54\xad\xf1\xb0\xe2\x49\x42\x0d\x49\x18\xfa\xd3\x30\x46\xe9\xc1\x25\x8c\xc2\x00\x12\xd4\xff\xb2\xa2\xd0\x38\x49\x22\x04\x63\x59\xa6\x56\x3c\xde\x95\x98\x0a\x3b\x78\xd9\x40\x10\xd5\xf9\xd8\x40\x7a\x9b\x43\x82\x5e\x8a\xd9\x89\xbc\xa5\x1c\xa6\xc6\x71\x8b\x41\x15\x6c\x73\x0e\x20\xe5\x14\x49\xe3\xb5\x0f\x65\xff\xa3\x8e\xd7\x3e\x1c\x79\x91\xbe\xc2\xb0\xcd\x0a\x9b\xab\x3a\x89\x20\x95\x53\x7f\xe4\x4b\x70\x30\x49\x67\xab\x23\x7c\x77\xe3\x5d\x95\x36\x1b\x1a\xa2\xe4\xfc\x5c\x58\x19\xba\x99\x09\x34\x07\x29\x81\x85\xa4\x2f\x21\xf6\x96\x39\x70\x62\x73\x05\xdb\xf0\x64\xb1\x1c\x0d\xee\xb8\x38\xf1\xc8\xc3\xd2\x1d\x2b\xf5\xe4\xb8\x40\x22\x1c\xb4\x42\x2f\x6a\x74\xd0\xa2\x03\xd0\x6d\xc9\x61\xa3\x2d\x39\x6c\xb0\x25\x87\x65\x5b\x72\x68\x58\x1f\xc3\xaa\xf5\x31\xd1\x6c\xc9\x51\x22\x40\xd1\xf2\x62\xb6\xaa\x6e\xca\x6a\x1e\x29\x9d\x81\x41\xf0\xa7\x0c\xe2\x20\x35\x20\x0e\xb8\x87\x94\x78\x5e\x67\xf6\x1d\xc6\x00\x8f\xa4\x9e\x94\xab\x51\x63\x6d\xfb\xc9\x8a\x1e\x3d\x22\xfd\x24\x66\x0d\x38\x18\x98\x2e\xc9\xcc\x68\x0f\x86\x08\x90\x51\x2e\x28\x4b\xc9\xc8\xc1\xee\x14\xee\x72\xfe\x8e\x17\x70\x1d\x69\x56\x34\xfb\xed\x52\xb9\x6b\x0e\x71\x65\xc8\x4a\x70\x70\x90\x8e\x7c\x57\x42\xa3\x43\xae\xeb\xf6\x93\xc2\x45\x80\x4d\x7d\xea\xf0\x04\xbe\x28\x6d\x70\x59\x50\x76\x5d\x3a\xc6\x17\xf4\x3f\x1e\xea\x27\xf1\xc0\xe0\x99\xfb\x49\x5c\xf7\x79\x5c\xfa\x7c\x18\x8f\xf6\xf7\x1d\xf1\x17\xab\x86\x33\xd4\x6c\x8e\x50\x3e\x83\xc4\x9f\x22\xb1\x46\x4a\xaf\xaf\x59\x49\x1f\x49\x33\x92\x63\x32\xd9\xc4\x7d\x41\x06\x43\x32\x72\x79\x36\x02\x42\x59\x0d\x59\x19\x9d\x36\x36\xc0\x62\xbe\x96\xe2\xdd\x00\xe5\x39\xbd\x48\xf1\x1c\x4b\x6d\x39\xf2\x44\x4a\x5b\x63\x9e\xf7\x24\x20\x3e\x5b\x2b\xf5\x09\xcf\xa9\xd6\xd7\x96\xb5\x40\xc3\xc7\xfd\x34\x1b\xa7\x3e\x0e\xc7\x2c\x3b\xc2\x32\xee\xfb\x2c\x5d\x5b\x40\x27\x80\x7e\xc5\x77\x71\xec\x02\x3a\x1d\x67\x85\x41\x2f\xa6\xb3\x01\x70\xae\xf6\x65\xc9\x3f\x07\xc5\x04\x87\x28\x75\x4c\x76\x05\xb9\xae\xf2\xed\xa1\xb2\x06\x9d\x81\xc2\x95\x8e\x1e\xc3\x80\xa3\xd0\x86\x1e\xd4\xb4\xe0\x49\x71\xf2\x33\x6f\x88\x47\xc0\xf7\xb6\xd1\x85\x83\x19\xa5\x63\xfa\xce\xf0\x1b\xbc\x29\x66\x43\x34\xf2\x7c\xe1\x4d\x31\x33\xbd\x29\xf4\x9f\x60\x56\xf6\xa6\x98\x35\x7a\x53\xcc\xae\xaf\x67\x65\x6f\x8a\x99\xe9\x4d\x31\xf3\xb2\x36\xde\x14\x06\x91\x70\x28\xb7\x4c\xc5\x38\x2a\x77\xcd\x5c\x10\x68\x26\xbf\x59\xc9\xd7\x61\x26\xbc\x29\x8c\xe7\x2f\x66\x55\x7a\x16\x28\x6f\x8a\xd9\x6a\x6f\x8a\x72\x0b\xf5\x24\x99\x76\x71\x46\x87\x27\xbc\x29\xbc\x19\x80\xee\x1e\xbd\x73\x34\x56\x5f\xb3\x52\xa4\x6b\xaf\x62\x1e\xcf\xa9\x5d\xc5\x3f\x72\x3f\xc0\x00\x12\x28\x5e\x57\x94\x30\x4a\x67\xd5\xe0\x93\x7e\x1f\xfc\x93\x1e\x42\xe4\xbf\x79\x3f\x21\x11\x22\x1f\x37\xb0\x78\x5a\xd8\x85\x52\x78\x50\x0e\xad\xc1\xf3\x84\x69\xf5\x0e\x98\xad\xa7\xca\x15\xb6\x4d\xf2\x13\x0a\xd3\x10\x6d\xfb\x93\xc8\xc3\x1c\x09\x27\x11\xf9\x4e\xe8\x0f\x41\x2a\x9c\x44\xc2\x58\xb2\xf7\x0e\xf2\x8e\x0f\x8f\x84\x7f\x0d\x2f\xd6\x87\xe3\x04\x13\x87\x3e\xe6\x36\xf9\xa2\xe6\x3e\x46\x29\x22\x2f\xa1\x3f\x45\x8e\x78\x49\x17\xc2\x71\x73\x3f\x42\x50\x39\x42\x69\xd5\x1f\xaa\x58\xb0\x32\xf3\xa4\x65\x40\x47\xae\x16\x15\x06\x96\x33\xe9\x75\x3e\x40\x39\x20\xbc\x99\xcf\xec\xe6\x8c\x61\xf4\x4e\x18\xf4\xdf\xf0\x64\x84\x82\xfb\xf9\x14\xc3\x79\x3a\x4d\x88\xb3\xa4\x1c\x01\x8f\x73\xab\x58\xcf\x8d\x16\x81\xf0\x93\x48\x11\x16\xfb\x48\x3c\x87\x9e\xd1\x01\xe5\x81\x5f\xc4\xc8\x01\x08\x88\x0c\x87\x23\x05\x9c\x30\x2e\xbc\x1f\x4e\x51\x3a\x4f\xe2\x14\xc9\xe2\x74\x27\x8a\xd0\x27\x37\x67\x8e\xf6\x6f\x99\xb9\x6e\xf7\x9d\xd4\x2b\x17\x8d\xd3\xdd\xaf\xf7\x93\xa5\xa8\x27\xd0\xd3\xfa\xfb\x0e\x11\x58\xf4\x95\x7d\x60\x47\xdc\xa0\x28\x10\x86\x8b\x3c\x3a\x75\x71\x0b\x5b\x76\xba\xa8\xbd\xa1\xcb\x2b\xa7\x56\x90\x0c\x3d\x87\x3a\x63\xf4\x93\x8c\x54\x7a\x5b\xdb\x81\x9a\xed\x28\x3e\xe7\x01\x28\x80\xf4\xc3\x00\x10\xca\x02\x45\x5e\xe2\x40\xc3\xb1\x5f\x3b\x75\xc3\x78\x6b\x77\x80\x72\xf5\xf2\xe0\x6e\xef\x1c\x01\xbb\x60\x0a\x10\x34\x9b\x27\x18\x46\xe6\x35\x4e\xf9\x56\xb2\xe8\xcd\xd2\x9d\xda\x50\x0c\x5d\x46\xdc\x20\x14\x07\x19\x66\xee\x3e\x3f\xe3\x64\x46\x59\x5f\xb6\xa8\x25\x2f\x45\x3b\xce\xe8\x37\xb6\xe7\xd1\xb9\x4b\x26\x16\x1a\x68\xe9\xa5\xd0\x0b\xfb\xd0\x2e\x29\xea\xd0\xc1\x11\xfa\x0e\x2c\x27\x74\x6f\x91\x4f\xd9\xf8\x5d\x18\x45\x61\x8a\x28\xc7\x9b\xb2\x6e\x4a\xd7\x48\xcb\x76\xfb\xff\x4a\xc2\xd8\xb1\x6d\xcd\x8b\x5a\xd3\x4f\xc4\x6b\x27\xf4\x0b\xe9\xcd\x10\x4c\x33\x5c\x1f\x23\x61\x14\x68\xfa\xee\x3e\xc6\x45\x90\xd0\xbf\x28\x0f\xb9\x6c\xa8\x13\x65\x2a\xc3\xe3\x19\xc8\x76\xb5\xb7\x9a\xec\x5e\xfc\x06\xe3\x77\x2a\xbf\xce\x6a\xc2\xad\xd9\xc5\xe7\xb8\x39\xb9\x42\x28\x3e\xa3\x9c\x1e\xf6\x6c\x9b\xb2\xab\x92\xb8\xa4\x1e\x2e\x28\xda\x14\xa6\x4e\xea\xbe\x70\x1c\x9e\x08\x8d\x38\xa9\xeb\x4a\x2d\x6f\x32\xb1\x48\xff\x8c\xd6\x23\x02\x2b\x52\x92\xcc\x1d\x16\xa7\x7d\x06\x31\x2d\xcc\xa2\x23\x68\x7b\x29\x10\x25\xfb\x24\x71\x30\x40\xac\x3d\x17\x60\x77\xe0\xc8\x02\x88\xc1\xb1\x04\x28\x25\x38\xa9\x44\x46\x8b\x5e\xab\x5a\x64\x31\xba\x89\xd9\x9b\x65\x2c\x3d\x96\xbb\x18\x7e\x48\x38\x43\x49\xb6\x26\xd6\x65\xce\x6d\x4b\xc1\x99\x28\x7c\x13\x34\xa3\xd6\xce\x2a\x8c\x5a\xee\x9a\x65\x47\x5f\x90\xaf\xbc\xec\xe4\xc2\x71\x67\x37\xba\x1f\x35\x20\x01\xcd\x0d\xd6\x60\xd7\x0b\x1f\xb8\x18\x7d\x61\xfe\xca\x6e\x27\xfb\x19\x49\x70\x18\xf6\x6a\x81\xbd\xd8\xab\xa6\x92\xf7\x92\x0c\xd0\x11\xac\x1f\xe3\xbd\x1c\x5b\x16\xf6\xf8\xd5\xdc\x74\x20\xda\x05\x66\x97\x84\xe0\x07\xf0\xb5\x07\xc9\xb2\x1c\x81\x80\xcb\x2e\x25\x4d\xf9\x63\xd5\x96\xa4\x05\xc8\x54\xc6\x72\xb7\xf9\x34\x4e\xc8\x24\xc9\xe2\x40\x7d\x19\x75\x6e\x74\x83\x50\x88\xf5\x41\xe0\xcc\x99\xf7\x3e\xa0\xb5\x19\xa9\x49\x21\x99\x6a\x97\x72\x11\x02\x2d\x23\xac\x1d\xba\x15\xe8\x44\xcb\xef\x98\xfa\xbd\xf4\x19\x2f\x21\x99\xd1\x03\xdb\x2d\x19\xc7\xcb\x9c\xb0\xc5\x02\xaf\x31\x11\x2a\xdc\xff\xcf\x76\x19\xbe\x0c\x5d\x28\x8f\x30\xe5\x32\xc1\xce\x91\xbb\x37\xc6\x08\x5e\xec\xd5\x7c\xf1\x99\x7d\xa1\x56\xb9\xe9\xa3\x42\xc9\xde\x17\xb0\x30\x1e\x29\xd8\x63\xb0\x54\x93\xc1\x06\x6a\x70\x26\xe5\x9c\xb8\xbf\xbe\xf9\xfc\xf2\xc3\xfb\x9f\xdf\xfc\xc9\x66\x31\x41\x9f\x16\xb1\xdf\xe1\x8b\x1a\x58\x39\xee\xfb\xbd\xb5\x44\x56\x0b\xf7\x46\x97\xa7\x1d\x22\x69\xd3\xc7\xab\x41\xe5\xd4\x1e\xd8\x00\xb9\xae\xf8\x76\x75\x1b\xe7\x2c\x56\xb9\x2b\x64\xdd\x39\x83\xc9\xea\x0e\x56\xb7\xd2\x63\xa5\xb8\x34\x8d\x1b\x71\x17\x1c\x62\xf1\xc0\xd1\x9d\x39\x50\xee\x7a\xcf\x1d\xe2\xd9\xef\x58\x17\x98\x3e\x00\xa6\xbe\xed\x7a\xcf\x91\x33\xd4\x9e\xda\xc0\x3e\x4b\x2e\x50\x7c\x76\xf6\xd6\x1e\xb9\x0e\x69\x62\x05\x56\xfb\x12\x7d\xc5\x01\x7e\x62\x00\x0c\x72\x70\xe6\x29\x17\xef\x6c\xf7\x85\xe9\x3c\xc6\xa8\xf3\x10\xe0\x51\x11\x1b\x38\xb0\x55\xa8\xd0\x9e\x4d\x2b\xf3\x3c\x0f\xbf\x70\xa0\x87\xe8\x25\xe8\x0e\x9c\xc8\x43\x00\x7a\xb1\x34\x77\xa5\x1e\xec\xf3\xea\x41\xe8\x45\xe2\x4f\x19\x56\x98\x0a\x79\x7d\x0e\xd3\x34\x8c\xcf\x25\xa0\x83\xfa\xed\x79\x5e\xf8\xe2\x70\xc0\x23\x0d\x6d\x1f\x87\x24\xf4\x61\xa4\x8a\xa9\x07\xa2\x9c\x08\x49\xb4\xaf\x20\x8e\x59\x75\xa2\x99\xb0\xbe\x99\x5e\x43\xbd\xb5\x71\x8c\xea\xaf\x01\xdd\x17\x62\x47\xfc\x12\xc6\x41\xa7\xdd\xa0\xf9\x8b\xdd\xce\x56\xa0\xfb\xd8\x7b\x2e\xd8\xbd\x16\x1d\xbc\xb8\xfc\x6a\x9b\x94\xf0\x23\xc7\x10\x34\xbb\xcf\x2c\xf7\xb7\xff\x8a\xe7\x4b\x27\x1d\x3b\x39\x5d\x62\xf3\x6a\x87\x4c\x1e\xad\x81\x3a\x6e\x40\x5d\xf4\xb0\xff\x92\x92\x98\xf4\xa5\xd8\xcc\xcf\xa3\xd2\x83\x62\x73\xd7\x96\xff\xbf\x86\xf2\xbd\xe2\x30\x94\x79\x0b\x59\xc5\x6f\xfc\xb8\xa9\x16\xc5\xef\x86\x06\xc5\xdb\xff\xab\x2f\xdd\xa2\xb9\x8f\xfc\x14\xab\x0a\xc4\xef\x86\xe6\xc4\xdb\xe7\xf5\xa5\x7b\x47\xda\xc9\x16\x47\x9b\x79\x3d\x76\xd9\x79\xc2\x95\xf2\xeb\x1e\x1b\x46\x91\xba\x74\x5b\xf1\x74\xf7\xaf\xe7\x95\x4c\xe9\x5f\xf5\xb0\x6f\x34\x86\x72\x46\xbd\xbb\x31\x02\x60\xbf\x64\x46\xb4\x37\x71\x80\xbe\x74\x1a\xcf\xaa\x5c\x4b\xb7\xbd\xa9\x96\xe1\xc4\x69\xa0\xc0\x8a\xe8\x22\x93\xe8\x82\xd8\x1b\xda\x1f\x11\xf6\x51\x4c\xe0\x39\x32\x48\x85\x0d\x2a\x6f\x04\xcd\xaa\x79\x23\xa9\xa7\x3d\x12\x4a\x19\x49\xbe\xd1\xfe\x7e\x5c\x68\x3e\x80\xa9\xee\x99\x24\xd8\x61\x71\xdd\x2c\xdc\x86\xab\xbb\xa1\x17\x0f\xf1\x68\x2f\x9c\x38\x68\x08\x47\x2c\x18\x1d\x8e\x64\x68\x32\x7d\xf4\x9c\x3e\x78\xd1\x3b\x1a\x1c\xe5\x8a\x88\x95\xf6\x62\xb7\xc5\xfb\xd6\xd8\xd3\xae\x17\xe8\x3b\x94\x4e\x2b\x97\x68\xf5\x61\xe5\xa2\xa9\x16\xf9\xbf\x15\xdf\xad\xbc\xe1\x8a\xaf\x8a\x4b\xb5\xf2\x6c\x45\x07\x8a\xcb\xb5\xe9\xab\x96\xcd\x17\x97\x6c\xe5\xd9\x8a\xe6\x8b\xcb\xb6\xe9\xab\xba\x0b\xb7\x2b\xed\xac\x80\x9b\x7f\x8d\x5b\x8b\x13\xca\xb3\xb0\x63\xdf\x6b\x22\x55\xbe\xe2\xa1\xd3\x32\xe9\x96\xef\x83\xd2\xab\x55\x83\x94\xa9\xf1\xd3\x03\x1d\x52\xe2\x26\xc7\xc5\x41\xc0\xb8\x0e\xed\xcf\x67\xef\xde\xfe\x04\x71\xda\x97\xdd\x70\x96\x61\x30\xb0\x5f\xf9\xf3\x00\x46\xff\xf9\x8b\x0d\x58\xe0\xdb\xe0\xbf\x97\x76\xca\x91\xcc\xec\xc1\x90\xc7\xed\xdb\xc0\x4e\x6c\xa6\x27\x91\x8c\x90\xad\xc2\x62\x18\x4c\x9f\x1d\xf8\xe6\x9f\x22\x6e\x8f\x7f\x27\x74\xf7\x40\xe8\xc1\x81\x7d\x81\x16\xf6\x08\x70\xef\x6b\x66\x31\xb4\x07\xc3\xe1\x33\x20\x1b\x1b\x8e\xc0\x70\x68\xff\x18\xb3\xd9\x04\xc3\xe1\x93\x63\xf0\xf8\xbb\xd1\x88\x3d\x95\x16\x89\x11\x18\x2e\x4b\x15\x3c\x06\xf6\x3f\xfe\x11\xff\xe3\x1f\x31\x7d\xf9\x0c\x0c\x9f\x3c\x06\x47\x60\x68\x9f\xc4\x71\x92\xc5\x3e\xc2\x36\xad\x81\x57\x4d\x42\x12\xb1\xba\xed\x97\xbc\xa3\xa3\x11\x73\xa0\x18\x01\x51\x0b\x7d\xf7\x1d\x18\x3e\xf9\x1e\x7c\xc7\x7a\x70\x08\x86\x4f\xbe\x03\x47\x3f\xd0\x4f\x32\x7a\x96\xfd\x88\xae\x16\xfb\x86\xff\xb3\xbe\x73\x96\x45\x5f\x1c\x01\x59\xdb\xe3\x27\xc5\x97\x4c\xf3\xcb\x3a\x34\x85\x69\x8f\xd7\xce\x46\x2c\xbb\x33\x62\xd3\x0f\x67\x88\x20\x4c\x2b\x1c\xe5\xec\xf5\xaa\x3e\xf2\x25\xba\xc1\x6e\xaa\x06\xb6\xed\xa9\xda\x58\x37\xd8\x59\xbd\x8d\x36\xfd\x2d\xf6\xc1\x33\xa0\x3b\xa9\xa9\xed\x99\x62\xdf\xd6\x46\xf3\x3d\x6d\x48\x06\xd9\x0e\x0e\x0e\xf8\x09\x18\x90\x29\x62\xbb\x98\x8f\xaa\xdd\x16\x2e\x36\xdf\xe3\x67\x5a\x0b\x8f\xbf\x67\x3f\x1e\x83\x23\xba\xad\x69\x97\xe8\x48\x3a\xcc\x57\x75\x09\x7e\x90\x35\x3e\x1e\x15\x53\xf8\x54\x3e\x7c\xa2\x3d\x3c\xa6\xc3\xf3\x93\x28\xc1\x3d\x06\x96\x20\x82\x78\x08\x86\x29\x31\x17\xad\x53\x97\xd8\x12\xb6\x5a\x44\xf5\x92\x76\xd5\x9e\x63\x34\x41\x38\xed\xd9\x40\xf6\xd4\x96\x7f\x3f\x56\x1d\x58\xbf\xcc\xe5\x87\x47\xac\xae\xda\x37\x47\xc6\xbe\xb8\x09\x12\xb1\x62\x9f\x01\xfb\xc7\x24\xe6\x1e\xed\x6d\xf6\x1c\xbb\xf6\x15\x45\x13\x85\xe5\xb2\x1e\x16\x8f\x8e\xf8\x8e\x7a\x0a\x0e\x8b\x45\x1b\x0e\x05\x99\x1e\x69\x9b\xac\x4a\x1e\xd7\x9e\x9a\xea\xd4\x3c\x56\xbb\x8d\x6e\x25\x0e\xc5\xc4\x6f\xcc\x11\xb0\x13\xa6\xde\x9e\xe3\xe4\x32\x0c\x10\xee\x05\x68\x9c\x9d\x37\xcf\x1e\xb0\x51\x94\xa2\x36\x27\xc8\x58\x9b\x67\x2b\x3a\x10\x72\x49\x6e\xa3\x16\x2b\x1b\xf8\x48\x1f\x36\x9d\x70\x1b\xa3\x79\x04\x7d\x44\xd9\x74\x76\x47\x4a\x33\x65\xca\x61\xbb\xec\x62\x4d\xb4\xb6\x0d\x02\x73\xc4\xea\x11\x96\x9c\x57\x27\x67\x27\x2f\x5f\xbf\x3f\x7b\x7d\xfa\xf9\xed\x87\x97\x27\x6f\x6d\x7d\xcf\x9b\xa7\x70\xc5\x92\x81\xf5\x14\x62\xe5\x9c\x49\xbb\xe7\x66\x54\x7b\xc3\xfd\x7e\xf0\x3f\xec\xff\xca\xe6\xfa\x87\xe5\x1c\x92\x69\x5e\x3b\x83\xcc\x1c\xab\x0d\x80\xe3\x69\xd9\x7a\xcf\x8d\xdd\xdd\xe2\xa8\x1c\x3d\xb9\xa9\xb3\x72\xa4\xcf\x7b\xdb\x8b\xb2\xe8\xe0\xd3\xba\x71\x16\x2c\x1b\x6d\x91\x75\x9f\xbf\x36\x9f\x1e\x82\xa1\xfd\x51\x7f\x68\xab\xfa\xed\x4a\x4b\xad\xb8\x8d\x35\xfd\x92\xd0\x28\x5a\xa7\xcc\x47\xb4\x47\x2a\xd5\x47\x43\x8f\xda\x6e\xb7\xee\xf7\xb8\xd8\x63\x81\xca\x48\x92\x6e\x7c\x85\x1b\xab\x2a\x26\x43\x9f\xc7\xa7\xe0\xe8\x18\xf0\xb3\xae\x4d\x1a\xbd\xe4\x0e\x8b\x9f\x47\x23\x5e\xa4\x6e\x8f\xbf\x57\x6c\xb2\x98\x48\x56\x55\x0d\x21\x28\xad\xcb\x46\x4d\x94\x96\xb1\xbe\xa9\xd5\x55\x6c\x44\xcd\xd8\xd5\xfe\xb4\xcc\xf6\x6c\xc8\xef\xf0\xbf\x25\x61\xfb\x0e\x28\x9d\x1e\x87\xf2\xa4\x0b\x71\xa8\xb7\xfb\x7d\x57\x96\x46\x6c\x00\x8d\xb9\xe9\xb2\xf7\x28\x41\x13\x47\x31\x3f\xf8\x9f\x83\x3f\x2c\x03\x3f\xd7\xb6\xe2\xc1\x1f\x96\x54\x32\xaa\x27\x78\x4c\xf8\x32\xe4\x34\x6d\xe9\xd4\x48\x47\x7c\x5c\x4f\xf8\x3f\xda\x63\x6d\x29\xbb\xee\xf3\xef\x44\x23\xcf\x3a\x2e\x92\x98\x24\x35\x4d\x53\x98\x4e\x43\x3f\xc1\xf3\x9e\x94\x21\x87\xc3\xc7\xc7\xe0\x08\xd8\x57\x18\xce\xe7\x42\x8c\x1b\xda\x3f\x72\x69\xf3\x47\x36\xe2\x1f\xf5\x21\xff\xa8\x64\xd3\x1f\xb3\x14\xe1\xea\x65\xf2\x98\x4d\xb4\xd9\x57\x7d\x42\x8e\x6b\x77\xb0\xe4\xaa\x24\xc3\x34\xaa\xbd\x2f\x6c\x8c\x0a\xa7\xfa\x6e\x73\x59\x33\x9d\x4f\xc1\x71\x77\x5e\xc4\x98\x4e\x38\x9f\xf7\x58\xe2\x00\xb5\xe7\xc4\x2f\xfb\xc7\x28\x39\x0f\x63\x29\x60\x1f\xf3\xa1\xff\x00\x86\x36\x7f\x0e\xec\x64\x4e\xc7\xdb\xea\x3e\xab\x30\x12\xd5\x8e\x28\xac\x77\x4d\xb8\x07\xf6\x8f\x2c\xb8\x80\xdd\x9f\xa6\x4a\xa4\x3a\xff\x70\x3e\xb7\x81\x2d\x56\x54\xe9\x1b\xc4\xcc\xff\xd0\x7e\xc9\xaa\xcb\xfe\xbd\xd8\xf8\x6d\x16\xc9\xb2\xf4\x71\x15\x2c\xdf\x13\x9d\xe3\x13\x3d\xa8\xe5\xc3\x8a\xcf\x2b\x22\xc6\x61\x9d\x88\x51\x9d\x49\x7e\x2e\x0e\xa2\x84\xa3\xd7\xb1\xe3\x71\x08\xec\xcb\x10\x5d\xf5\xc4\x43\x36\x98\x11\x18\x76\xe4\x45\x9a\x7a\xf6\x43\x89\x63\x69\xae\xa4\xfe\xfb\x67\x6d\xbe\x2f\x3f\xa4\xe4\xb0\xee\xf9\xd3\x35\x95\x3d\x01\xc7\xb5\xdf\x35\x3c\xac\xdf\xba\xbb\xda\xb4\x6c\xbb\xea\xd7\xde\xaa\xcd\xd9\x6d\x17\x6e\xbc\xff\xaa\x53\xf6\x78\x93\xf5\x39\xaa\x7e\x34\x85\xe9\xeb\x4b\x18\xd9\x83\x09\x8c\x52\x04\xec\x6c\x7e\x09\x59\x59\x5b\xe2\xfa\x50\xea\x6e\x03\xbb\x27\x27\xd6\xf6\x25\x4a\xb0\x2d\x12\x9c\xd8\xc0\x86\xbe\xa0\xe4\xe1\x84\x9e\x78\x1c\xda\xc0\x3e\xa7\x05\x60\x1c\xd8\xc2\x4d\xcd\xf6\xa1\x3f\x45\x41\x8f\x2f\x05\xb0\x13\xa6\x2a\xed\x31\xfc\x0a\xc5\xdc\xd3\x3f\xe5\x5f\xac\x66\xde\xe6\x2c\x63\xad\xfd\x9b\xd5\x42\xdb\x61\x7a\xc7\x9e\x6a\x36\x08\x83\x5e\x18\xa7\x08\x0b\xd0\x46\x9f\xd5\x1a\x24\x3e\x0b\x6f\xe8\x41\x42\x30\xbd\x7a\x20\xc6\x50\xa0\x0c\x11\x18\xc6\xa9\xac\x48\x30\x13\x3d\x04\xfd\x69\x8f\x51\x52\xfa\x17\xef\x57\x0f\xfd\xdb\x1e\xe5\xff\x0d\x66\x88\xc0\xc1\x72\xc6\x54\xb8\x4c\xa1\xbc\x4e\x4b\xdc\x9f\x8e\x53\x3b\xcf\x75\xc7\x31\xb2\x4e\xc9\xac\xe6\x36\x3d\x18\xc3\x34\xf4\x7b\x01\x4e\xe6\x41\x72\x15\xd3\xab\x95\xf0\x20\xa9\x4a\x54\x8d\x59\xb2\x53\x6d\xf7\xc8\x11\xbd\xcd\xb0\x24\x3e\x72\x8f\xc0\xf3\x1d\xcd\x94\x51\xe5\x5d\x9d\xae\x1a\x3c\xdd\x36\x63\x23\x38\xe4\xd0\x06\x3b\x99\x29\x59\xdb\x5d\x9d\xa4\xcd\xf6\xd4\x6e\x26\xe7\x7e\x4e\x0a\x93\x2d\xbf\xaa\xa5\xeb\x5f\x01\x79\x7c\x7c\xfc\xf7\xd9\x3a\x4b\x57\x37\xd3\xd4\x61\xfb\x4b\xbb\x25\x57\xc1\x6b\x55\x06\x2c\xf1\x7c\x73\xde\xe0\x71\x0d\x03\xb2\x33\xde\xa0\x13\x1b\x60\xdc\x8f\x35\x3c\x40\xfb\xab\x31\xf0\x37\xb9\x11\x03\xff\x80\xa9\xe5\xbf\xf2\x46\x3c\x4b\x3e\x7d\x7c\x1a\xfd\xfb\xc9\xc3\x46\xfc\x16\x36\x22\xdb\x52\x5b\xec\x46\xdd\xb3\x3f\x3d\x90\xe6\x80\xaf\xba\x41\x17\x7f\x8f\xfe\xf3\xc7\xb7\xf3\x35\x94\x52\x4a\xa0\x36\x47\x35\xb5\x39\x22\x12\xbd\xd9\x42\x82\x66\x3c\x9e\x2f\x8a\x38\x00\x64\xc7\xbd\xdc\xc5\xdc\x6f\x6a\xd8\x94\x58\x5c\xab\x61\x7b\x56\xd5\xb0\xfd\x61\xc9\xf5\x45\xb9\xd0\xb4\xe9\xab\x51\xc8\x74\xdf\xeb\x46\x85\x5a\x37\x88\x5a\x05\x69\x49\xd3\xbe\x42\x0b\xbe\x46\xb3\xda\x61\x36\xd4\x7c\xb0\xb5\xeb\xa5\x51\x42\x2a\x73\x2c\x64\xad\xce\x5a\xbe\xe3\x1a\xe3\xf1\x63\x55\x1d\x5f\xe2\x2c\x65\x87\xef\xf8\xf0\x68\x63\x73\x5a\x55\xdb\x01\xfd\xe8\x20\x08\x53\x91\x59\x72\xd8\x41\xbf\xd1\xac\x9b\xea\xa4\x22\xd3\xc7\x39\x2a\xd3\x44\x20\xb4\x53\x1b\xa8\xce\x56\x6b\x4e\xca\x1a\xa1\x96\xab\xcb\x0e\x41\xd0\x7d\x79\x8f\x9e\x99\xda\x68\xb9\x6c\xd2\x71\xa7\x6a\x92\x2b\xec\x62\xdf\x8d\x40\x39\x36\xa8\x6c\x0f\x78\x5c\x63\x57\x2b\x3e\xaf\x37\xab\x11\x16\xdf\xdf\x4f\x11\x25\x24\x48\x19\xec\x6a\x3a\xc9\xf2\xe8\x6a\xde\x46\x1c\xb3\x5d\x78\x73\x2d\xec\xae\x23\x3b\x96\x3d\x7b\x5a\x32\x9a\xc8\x87\x36\x28\x06\xf8\xf8\x87\x8a\xf1\x63\xd5\x60\x9f\xb6\x1b\xec\x1b\x46\x46\x9b\x47\xdc\xa2\xf3\xc7\x75\x9d\x3f\xde\xaa\xf3\xc7\x37\xd2\x79\xa0\xef\x53\x73\x18\xa2\xfd\x27\xb2\x03\x47\xf5\x7d\x2e\xc6\x77\x64\x8e\x8f\x3e\x3a\xec\x34\xc4\xa3\x8e\x43\x54\x6d\x8c\x94\x92\xf9\x71\x77\x3b\x48\xe5\x88\x53\xca\x74\x19\xa2\x2b\x75\xc0\x0d\x7a\xd4\x86\xfc\xb4\x57\x69\xb7\xa0\x2a\x32\x71\x4d\x37\x4d\x39\x63\x01\x0f\x81\x3d\x3d\x62\x7f\x3d\xae\x68\xc2\x65\xdb\x72\x4c\x67\xdc\x39\xaf\xc6\x59\xef\x24\x23\x53\xeb\x9d\xb8\x9a\xcb\xc4\xd5\x68\xef\xc9\x5a\x9d\x76\xad\xe2\x7b\xed\x14\x90\x24\x89\xc6\x70\xcb\x8b\xf3\x89\x58\xc0\xa7\x94\x52\x57\x4c\x8e\xdd\xac\x66\x95\x7b\xb2\xe0\x5e\x44\x46\x92\x1e\xed\xaf\x62\x87\x44\xd6\x1a\xfb\xc7\x24\x2e\xfe\x16\xfc\xdb\x8f\x9c\x81\x33\x38\xff\xb5\x67\xa5\xc9\x75\x48\x1c\x15\xf1\xa0\x6c\x60\xeb\x7a\x33\xee\x6e\x05\x95\xb2\xb2\xfb\x2e\x96\x2c\xa6\xc6\xd5\xaa\x3d\xba\x98\xa3\xea\x4c\x32\x03\x65\x31\xcd\x9c\x2b\x66\x66\x03\x23\x96\x97\x4e\x0c\x50\x73\xa7\xd9\x20\x95\xf4\xf5\x74\x33\xf3\xd4\x33\x65\xdf\x7d\xa9\x31\xe2\x23\x9d\x7d\xea\x56\xe9\xaa\xdd\x16\x85\x69\x31\xdd\x6a\xa8\xb2\x03\xa1\xba\x0d\xea\x4f\x6d\xcb\x05\xae\x8e\xec\xf5\x6c\x4e\x2f\xf7\x5d\x0c\x0a\xd1\xaa\x7a\x12\x17\xfb\xc6\x29\x6e\xa9\xf5\xdd\x53\xde\x0a\x05\x7e\x5c\xa2\xc0\xbb\x21\x4f\xad\xcc\xd1\xfa\xff\xde\x27\x16\xdd\x38\x96\x10\xb2\x2c\x66\xa2\xd9\xc0\xb2\xac\xff\xef\x37\x14\xf9\xc9\x0c\x59\x24\xb1\xf4\x5b\xa2\x15\x69\x29\xcd\x54\xf9\xee\xe8\xbc\x41\x5b\x2e\xea\x38\x09\x16\xdb\x2e\xe9\xfc\x6e\xae\xe8\xd5\x14\x61\xc4\xd7\xd5\x62\xe8\xcf\x61\x7c\x6e\x91\x29\x24\x16\xa7\x86\xc0\x4a\xb0\xb5\x48\x32\x6b\x06\x17\x56\x9c\x10\x6b\x0a\x2f\x91\x05\x7d\x1f\xa5\x29\x5d\x42\xca\xf4\x58\x64\x8a\xcc\x5a\xe9\x07\x10\x23\x51\x07\xad\x72\x92\xe0\xfe\x96\x1b\xe7\x8c\x75\x35\x48\xe2\x7f\xfc\x37\xed\x1d\x9a\xd1\xf6\xc7\xc8\x82\xf1\xc2\x68\xbd\x55\x97\xcd\xee\x22\xd2\xd4\xb9\x3b\xb1\xff\xb8\xbd\x33\xdd\x76\x0b\x46\x21\xfb\x8b\xf9\x20\x04\x89\x9f\xf6\xa2\x30\xbe\x68\x64\xf5\xca\x5f\x43\xf6\xc7\x53\x4a\xca\x9f\x1c\x15\x3b\xf6\xa9\xee\x1d\xf6\xe1\xe5\xa7\xcf\xbf\x9e\xbe\x2d\x1c\x00\x0f\x52\xe4\x67\x38\x24\x0b\xa6\x16\x30\x14\x36\x6c\x42\x8e\x8e\x81\x8d\x19\x95\x8e\x13\x4a\x99\x11\xb6\xe2\x84\x79\x8c\x73\x48\x40\x56\x80\x33\x28\x36\xb0\x3f\x8f\x23\x68\xf6\xf8\x95\x30\xf5\x42\x8e\x24\x15\x1b\xeb\xba\x72\x8d\xd6\x2c\x61\xfd\xac\x45\x08\xe2\xf8\x66\xa6\xed\xe4\xe3\x9b\xd2\xd4\x95\x67\xac\x3f\x25\xb3\x68\x37\xd3\x76\x8a\x60\xc0\x4e\xed\xc9\xc7\x37\xd6\xab\xc4\xdf\x6a\xaa\x3a\xec\xf6\x0e\x9c\x43\xab\x82\xd5\x62\xdf\xb5\x72\x93\xa9\x14\x5a\xeb\xfa\x5b\xe3\xbb\x02\x9e\x76\xd2\x09\xdd\xb8\xa6\x5c\xb1\xaf\xdc\x6b\x42\x39\x49\x30\x87\x0c\xe6\xa0\xc1\xfd\x31\x74\x8d\xba\xf0\xf2\xe0\x9e\x1b\xcc\xcf\x82\xd7\xf2\x51\x45\xd6\x55\xd5\x33\xc0\x66\x81\xa9\x85\x9b\x84\xa6\xc9\x51\x9a\x1d\x4c\x7e\x5a\xe8\xbe\x1c\x9d\xd5\xf4\x35\xba\xf6\x9d\x69\xee\xd3\x69\x72\xf5\xb5\x15\xf7\xd1\xbf\x3e\xfe\xf2\x0b\x5a\xfc\xd6\x52\x71\x4f\xb9\xf2\x0d\x2c\x4d\xdf\x77\xb6\x34\xb5\x50\xcd\x73\x8f\xe0\xd6\xba\xf9\xaa\x1b\xec\xe3\xf5\x2a\x7a\xd3\x1f\x76\x87\x9a\xfa\xea\xe3\x30\xb8\xf3\x0a\xfc\xa3\xa3\x9b\xd5\xe0\xdf\x86\x0e\xff\x41\x8b\x5f\xa3\xc5\x7f\xac\x8d\xb5\xb3\x2f\x76\xbd\xee\xb1\xab\x60\xdd\x46\xfe\xc1\x08\x06\x3e\xce\x66\xe3\x0d\x78\x50\xc9\x08\x25\xd1\x4a\x9e\xa9\xc4\x6e\x3d\xae\x61\x9f\xf8\x59\x38\xe4\xe1\x0f\x7d\x66\xcb\x35\x39\x4a\xa5\xde\x92\xad\x9c\x44\x91\x65\xaa\x22\x05\x1f\x53\xcb\xcc\xdc\xa8\x3e\xf2\x6b\xab\x64\xa5\xee\x4a\xc5\x0f\x74\xd0\xc9\xae\x52\x26\x71\x7d\x9a\xa6\x4c\x52\x8d\x35\xb4\xb1\xab\x09\x8d\xe1\xe5\x86\xaa\x41\x02\xc7\x3d\xfa\x75\x8d\x0a\xac\x1a\x37\xf5\xb4\xc6\x5d\x77\x38\xb4\x23\x38\x66\x74\x68\x8a\xd1\x84\xb1\x48\xd2\xe8\x05\x86\xf6\x9f\x28\x43\x0e\x23\x2b\x8c\x27\x89\xbd\x7e\xdf\xf6\x29\x3b\xa2\x3f\xa9\x46\x66\x75\xfe\x54\xb7\xe4\x94\xf5\x0b\x2b\x83\xc0\x5a\x0e\x51\x05\x7c\x59\x38\x63\x99\x96\x5b\x8e\x92\x37\xdb\xe3\x1f\x75\x1c\x66\xdd\xb7\xa3\x51\x5d\xdc\x5b\xcb\x41\xfc\x14\xc6\x41\x18\x9f\x77\x1c\xc2\x98\x7f\xb5\xd9\x18\x6a\x3f\xae\x46\x80\xdd\xe8\xc1\xd9\x4e\xaf\xde\xc6\x13\xe9\xfb\xda\xa5\x28\x13\x87\x6d\x03\x39\x4a\x21\x62\x9b\x04\x72\x1c\x6f\x22\x2d\x76\x97\x15\x6f\x49\x4e\x5c\x29\x1d\xd2\x03\xd0\x23\x09\xe5\x77\xd3\x9e\x38\x0d\x42\xfa\xe3\xae\xf5\x4c\x42\x2c\x3c\xe5\x67\x73\xe8\x93\xb2\xa3\x7c\x6d\x30\x80\x26\x3c\xee\x40\xd2\x63\xc7\x64\x97\x82\xde\xad\xc1\xb1\xb6\x10\xfa\x7e\x7a\xf3\xef\xbf\x7c\xfa\xeb\xc1\x77\xab\x84\xbe\xf5\x02\x5e\xb1\x24\x9b\xf9\x13\x52\x86\x22\x08\x2f\x0b\xb5\x16\xbd\x10\x53\xe5\xfd\x55\x66\x33\x9a\xef\x7e\xc3\xe2\xad\x1f\x6f\x9d\x53\xe7\xcf\x6b\x68\x5a\x89\xd5\xd8\x99\x9f\xe0\x0e\x36\xa0\xfe\x64\xb7\x9b\xd1\xbc\x00\xbe\xf2\x76\x7c\x76\xf0\xc3\x0f\xe7\xff\xcf\xb3\xc3\x0e\x3a\x88\x54\xad\x68\xf7\x6d\xda\xda\x36\xda\x51\x1f\x51\x13\x8c\x5b\x56\x47\x18\xd3\x7e\x30\x49\x70\x6f\xa5\x82\xe2\xbb\x07\x05\x45\x2b\xa1\xf1\xf6\x44\xf9\x3b\x21\xae\x3f\xdb\x5c\x5a\xdf\x84\xf8\xae\x36\x11\x3e\xd9\x95\x89\xb0\xc9\x42\xc9\x57\xda\x60\x92\x2d\x18\x45\xc9\x95\x05\x63\x8b\x12\x24\x48\x12\x6c\x91\xc4\x42\x5f\xe6\x18\xb1\x5c\xdd\xe9\x22\x25\x68\x06\x49\xe8\x5b\x57\x70\x61\x25\x13\x0b\x66\x24\x61\x0f\x60\x14\x2d\xac\x28\x8c\x2f\x58\x65\x09\xab\x2c\x0e\x2c\x01\xae\x62\x85\x01\x8a\xe9\xa1\x41\xcc\x44\x17\xa3\xab\x68\x61\xf1\xec\x77\x81\xc5\x42\x12\x53\xeb\x2a\x24\xd3\x24\x23\x45\xd3\x2c\x6b\xde\x25\x07\x9f\xee\xeb\x6e\xec\x4f\x2a\xf7\x57\xf3\xf8\x3e\x65\xcc\x30\x38\xc9\x22\x66\x3b\xa2\xb5\xf1\x38\x3e\xd6\x1e\x1d\xaa\x66\x52\xb2\x78\x34\x0d\x1b\x2a\x22\x74\x7c\x04\x67\x29\xed\xa3\xe8\xff\xc2\x82\x84\xe0\x70\x9c\x11\x94\x5a\x7e\x82\x31\x4b\xe8\xc6\x26\x90\x24\xca\x4e\x2a\x1a\xd1\x3e\xeb\x5b\x67\xd3\x24\x45\xfa\xd7\x10\x23\x6e\x91\x45\x81\x05\xcf\x61\x18\xa7\x84\x4e\xbf\x25\x11\xff\x51\x60\x8d\x8d\xb5\x99\xd0\xd5\x98\x42\x62\x74\x98\x24\x56\x40\x4f\xcb\x2c\x8c\x91\x75\x45\xdf\xce\x71\x78\x19\x46\xe8\x9c\xcf\xf4\x39\x86\x31\x61\x1d\xe3\xf8\x6a\xd6\xc9\xcb\xb7\x7c\xc2\xad\x90\x58\x57\x61\x14\x59\x59\x44\xc2\x19\x24\x48\xad\x48\x8b\xb9\x9e\xe2\x42\x8b\xf3\xa4\x66\x43\x97\xe2\x0b\x4a\x7f\x33\xf9\xa0\x06\x13\xa3\x23\x40\x41\x0d\xc7\x22\xef\x81\x8a\x0b\x8c\xa4\x54\x55\x87\xa7\x92\x22\xa6\x61\x60\xf5\x92\x45\x7b\xfd\xa8\xdd\xe4\xd8\x72\x03\xea\xbc\x2d\x55\x51\x86\x6f\xca\xfb\xc4\xdc\x85\x37\xaa\x43\xdb\xc4\x0f\x63\xf5\xe9\xbf\x87\x14\xee\xc6\x35\x95\x1b\x7a\x1b\xd4\xd9\xcb\xd7\x7b\x19\xac\x31\x93\x1f\xb6\x33\x93\x97\xd4\x2a\x3b\x35\x91\x07\xba\x8b\xc1\x0a\xf5\xe8\x26\xeb\xd1\x59\x95\xa0\x6b\x12\xd6\xca\x4f\x4f\xba\xb6\x77\xe3\x26\x6a\x6e\x80\xee\x11\x0c\xfd\x8b\x9e\xd4\x35\x88\x98\xfb\xc2\x4c\xdd\x68\xa0\xde\x91\x7a\xc1\xdc\x2e\xbb\x95\xef\x0c\x25\xe5\x57\x16\xef\xd2\xab\x67\xc9\x2f\xef\x7f\xfd\xd3\x6a\xf1\x6e\x53\x69\xee\x49\x77\xe4\xa1\xe3\x15\xea\x81\x4e\x56\xaf\x8d\x98\xe8\x2a\xcf\xc1\x39\x79\xa5\xcb\x3e\xe5\x8b\x76\x1b\x5c\xf5\x89\xe4\x1f\xf9\xa5\xc3\xd8\x36\x1f\xc6\x16\x03\xea\x4c\x22\xeb\x6a\x1a\xfa\x53\x2b\x56\x5a\x76\x71\x41\xc8\xfb\xe2\x32\x84\x2c\x6f\x94\xc1\xea\x31\x66\x6d\x8c\x54\x21\x7a\x9b\x84\x71\xdf\xfa\x35\x8e\xc2\x0b\x64\x5e\xd3\x80\x91\xb6\x49\x88\x53\x52\xb8\xfd\xc5\x86\x52\xdf\xba\x0a\xe3\x74\x0d\xab\x57\xcf\x64\x89\x33\xd0\xec\x66\x5c\x33\xeb\xdb\xa1\x17\xdd\x63\xee\x29\x2e\x59\x52\xee\x1f\xff\x74\xdf\xf6\xf2\x03\x03\xb5\xda\xcf\xf0\xbf\xd4\xdc\x3d\xb0\x53\x55\x4e\x68\x07\xfc\x4f\x3d\xa7\xb3\x2b\xe6\x46\xe7\x40\xb6\xe1\x6d\xee\x44\x78\xfb\xeb\xf1\xa7\x9f\xdf\xcd\x9e\x4e\xb6\x33\x98\x6c\x81\xbd\xd0\x08\x89\x50\x03\x14\xcc\x6c\xbe\x9c\xba\x55\x80\xb6\x77\x6d\xe4\x58\x05\x85\xd5\x7d\x17\x6d\xed\x5e\xc9\xf2\x17\x85\x28\x3d\xe8\x4d\x12\x3c\xfb\xda\xbb\xe6\x55\x12\x5c\xa1\x7f\xc7\x59\xfd\xae\x11\xb9\xb1\xb9\xe1\xd3\x67\x34\x6d\x86\xd2\x14\xb2\xd0\x56\x3f\x4a\x52\x81\x98\x3e\x09\x71\x0d\x63\x4c\x69\x2d\x1b\x63\x99\x20\x8b\x8b\x81\x67\x72\x92\xd3\xc0\xf7\x1f\xff\xd1\x88\x7d\x59\xe8\x9f\x8e\x45\x0c\xf3\xb1\xc0\x79\x3f\xe6\x9e\x7f\x5d\xb9\x6d\x93\x2b\x5a\x19\x25\x29\xe6\xad\x26\x46\x73\x2d\x31\x95\x7c\xb5\xee\x21\xa3\x07\x99\x6f\xa0\xba\xb3\x37\x02\x9b\x66\x54\x7b\x8d\x01\x88\x1f\x4b\x66\xf9\xe1\x2b\x74\xf0\x87\x65\x18\x34\x61\x51\x37\x99\x7c\xc2\xc0\x96\xe3\x7b\x2c\x42\x89\x8f\x54\x48\x31\x30\xf1\x6a\x9f\x82\x1f\x74\x04\xe4\x51\x25\xac\xf9\x70\x54\x0d\xd5\x94\xd1\xe0\x8f\x3b\x43\x57\xd7\xad\x86\xaa\x6d\x07\xe1\xab\x62\x69\xd8\x3c\x9a\xac\xbd\x0f\xe7\x72\x4f\x17\x71\x93\x27\xf3\x79\x14\x32\xcd\x16\xe7\xce\x92\x28\x4a\xae\xb8\x1a\x9c\x2e\xc4\xc0\x66\xbb\xfa\x71\x5b\x97\xcd\x75\x7e\x9c\xa6\x48\x58\x27\xfd\x19\xbb\xf4\x59\xb1\x4b\x0d\xb0\x6c\x9b\xf3\x9b\x56\x03\x11\xdf\xd8\xb3\xf6\xe8\x08\xd8\xe3\x8c\x10\xc1\xf1\x7c\x47\xbb\xaa\xbc\x6b\x6b\x1c\xcd\x64\xff\x9e\x80\xa1\x1d\xa6\x1f\x71\x98\x92\x30\x56\x88\xdb\xfc\xe9\x9b\xf8\x12\x46\x21\xb7\x62\x69\x86\x50\x59\x40\x41\xbf\x97\x46\xa1\x35\xad\x5d\x4e\xc7\xe0\x18\xd8\x69\x36\x9e\x85\x6c\x17\x1c\x83\xe1\x93\x67\xfa\x06\x15\x13\x63\xf3\xf6\x8b\x45\x93\x53\xfd\x09\x5e\xa2\xb5\x0c\x54\x23\x8c\x7d\x19\x6b\xdb\xbe\xc2\x21\x41\x96\x48\x8a\x37\x32\x9d\x87\x9e\x0a\xe7\xa1\x0d\x82\xaf\xdb\x2f\x43\xcd\x24\x6f\x36\x6f\xd9\x3c\xd8\xc1\xbc\xad\x3d\x01\xf5\x23\xe4\xdd\xc3\x28\x45\x4d\xab\x2a\x2e\xc0\x86\xde\xbd\xe4\xaf\x9b\x8c\x38\x35\x47\xaa\xf1\x16\x30\x8f\x59\x80\x22\xd4\x6e\x81\xb7\x08\xb2\xa7\xf7\x37\x93\x32\x7a\x41\x08\xa3\xe4\x5c\x11\x2c\x79\xdb\x33\x3a\x85\x11\x8b\x15\x4c\x33\xf1\xc7\x15\xb3\x87\x25\x96\xe8\x22\x93\x4c\x3f\xb2\x7e\xbe\xd8\x24\xfe\xae\xb5\xb8\xb8\x55\x70\x5f\x79\xd5\x0f\x81\x4d\x16\x73\xd4\xe3\x83\x28\xb6\x42\x51\xa8\xb2\x17\x78\xf0\x3a\x10\x4b\xd3\xb8\x25\x5e\xa9\x1a\x1b\xe2\xc1\xaa\xdb\xf7\xe9\x8a\x70\xb0\xb5\x93\x23\x96\xae\xb3\xaa\x71\x9b\x6b\xb0\x43\x50\xad\x18\xc1\x2c\x09\x60\x54\xde\x66\x49\x2c\x99\xc9\x1f\x99\x53\x03\xb0\x7f\x84\x38\x84\x3a\xe7\x52\x9a\x7f\x75\xeb\x03\x82\x33\x54\xc7\x9a\x70\x77\x56\x3a\x31\x7c\x4f\x5a\x61\x6c\xfd\x9a\x0a\x40\xf8\x8d\xf6\xcf\x2d\x44\xb5\x9b\x8a\x0a\x53\x03\x56\x1a\xc6\xca\x28\xc4\x8e\x81\xb5\x2d\xc7\xb6\x4d\x70\xb7\xd5\x4a\x41\xa6\xff\xef\xac\xa0\x27\x56\x98\x5a\x22\x4f\x4b\xc4\x66\x20\x4b\x51\xdf\x7a\x33\x61\x64\xc8\x9f\x26\x49\x8a\xea\x09\x11\x50\xa6\xf9\x31\xb2\x30\x9a\x25\x97\x28\xb0\x26\x38\x99\x95\x58\x2d\xd9\xb3\x94\xe0\x24\x3e\x57\xdd\x3b\x02\x95\xc3\x20\x2e\x92\x33\xc9\xf6\xa8\x55\x18\xac\x1a\xf4\xaa\x95\x5a\xc5\x30\x4a\x3f\xb2\x1f\x85\xbe\x48\x88\x3e\x8f\x47\x85\xe2\xa8\x11\x7b\x62\xab\x79\xe7\x94\xd6\xf2\x61\x1c\x27\x84\x4e\x5e\x16\x07\x49\x8c\xfa\x4a\xd2\xe7\x8e\x07\xeb\x1a\xbd\xed\x1d\xba\x65\xf8\xb7\xb5\xe3\x5b\xe2\xa8\x7a\x2b\xfc\x1d\xa5\xc0\x5a\x7b\x35\xb4\xea\x8c\xaf\x78\x8e\x56\x9d\x39\x6e\xc9\xb5\xb4\x59\xa9\x3a\x6f\xf0\x96\xeb\xba\x29\xae\x81\x14\x78\xd9\xd4\xf5\x74\xa6\xa5\xc2\xad\x00\xfb\xc7\x42\x73\xf1\x63\x31\x4d\x1a\x5a\xcf\x91\xba\x46\x3a\x83\xf6\x34\x8d\xf2\x08\xd0\xda\xdb\xc5\x5e\x77\xcc\x3d\x50\xe1\x2a\xcb\x4c\x70\xb3\x1e\x4c\x69\xbd\x84\x79\xd8\xf0\x4c\xd5\x15\xac\xdc\xb5\x9d\xf9\xa6\x33\xb7\xc4\x30\x50\xde\x9b\x52\xb0\xd7\xa5\x7d\x6e\x66\xe6\xf1\xd3\x42\x69\x23\x05\x1f\x3b\x4e\x24\xb0\x7d\x77\xfd\x9a\xa9\x1e\xdb\x89\xa2\x0d\x05\x21\xf9\xda\x7a\xb6\x3f\xff\xeb\x6f\x1f\xbf\x8c\xf1\x87\x96\xfe\xc3\xd5\x94\x37\x72\x0d\xd8\xb2\x88\xc5\x53\x13\xae\xbe\x8b\x13\x12\xfa\x5d\xf5\xbc\x47\x8f\x6f\x22\xf4\xf9\x78\xbd\xa6\xa9\x5e\xbd\xf4\xa4\x8b\x7a\x69\xd7\xfe\xc4\x06\x2c\x5f\x9d\x73\x71\x9d\x9e\xea\xae\xc4\x41\x1b\x59\xb9\x1e\xe2\xa0\xbf\xcd\x38\xe8\xe3\xba\xad\xd9\xe0\x0e\xdf\xfe\x38\x74\xd8\xf7\x65\x24\x48\xf3\x37\xb0\xc3\xf4\x3d\xba\xda\x41\x74\xf6\xd7\x46\x86\xbc\x53\xa1\xdc\xcf\xf4\x60\x49\x79\xb3\x35\x84\x71\x7f\x2c\x5e\xdf\xaf\x10\xee\x15\x41\xdc\x65\x22\xf7\x18\x3c\xdb\x46\x1d\x61\xb7\x04\xe7\x7c\x8f\xae\x84\x24\x59\x11\xb4\x3a\x28\x6d\x75\xba\xfc\xfd\x3a\xa5\xad\x4c\xdd\x75\xf3\x83\x7b\x1d\x84\x64\xab\xd1\x6d\xd8\xee\x5f\xc3\x6e\xb3\xda\x4a\xa5\x7b\xc3\x1b\xba\x63\x24\x70\xfd\x9d\xfc\x43\x69\xeb\x6e\xa6\x99\x2f\x3b\xf4\x31\xc6\x95\x51\xf9\x1e\xa1\xd7\xef\x0a\x82\xa3\xbe\x6f\x47\x95\x02\x52\xa3\x7f\x7a\xf3\x6a\xa5\xbc\xa8\xbe\x0d\xd6\x28\x1b\x14\xfb\x30\x5f\xf4\x84\xe4\x2a\x67\x5d\xa2\x28\xab\x90\xe9\x79\x92\x86\xd2\x09\x86\x9d\x10\x30\xb4\x69\x3f\x46\x7a\xaf\x80\x4d\x92\x79\x2f\x25\x10\x13\x73\x5b\x69\x3a\x0b\xf5\xe1\xaa\xde\x37\x69\x6b\xdb\x38\xe0\x34\xee\xb7\x46\x0e\x4d\x03\x0a\x32\xf2\x72\x2a\xfb\xf8\x0c\xc6\xf0\x9c\x6d\x87\x2d\x18\x36\x31\xdb\x42\x3e\x50\xf9\xf5\x6a\x9a\x10\xa7\x75\x31\x17\xd8\x11\x89\xb0\xa6\x75\xbc\x5a\x19\x19\x38\x04\x43\xfb\xcf\xc5\x55\xb0\x89\x9b\xa1\x76\x27\x3c\xd1\x77\xd4\x3b\x7d\x56\xb6\x3a\xf7\xaa\xa7\x3f\x49\xf5\xe6\x76\xfd\x6c\xd6\xb2\x31\xcd\xda\x79\x94\x8c\x61\xa4\x4d\xb9\x8c\x21\x4a\xad\x71\x16\x46\xc4\x0a\x63\x92\x88\x10\xa3\x7f\xfc\x77\x2a\x6e\x09\x11\x4d\xd1\xb7\xfe\x9e\x64\xcc\x65\x10\xce\xe7\xd1\x82\xab\x3a\xd3\x39\xf2\x43\x18\xc9\x92\x24\x91\x7e\x83\x93\x04\x5b\x93\x2c\x8a\x04\xa2\x63\x9f\x77\x60\xae\x54\xaa\x71\x42\x2c\x2a\x1c\x53\xaa\x61\x25\x58\x28\x48\xe9\x2f\x60\x8d\x33\xee\x9a\x38\x46\x56\x78\x1e\x27\x2c\x86\x8a\x63\x44\xb2\x96\xc3\xf8\xdc\x0a\x99\xf5\x07\xc6\x0b\xd1\x5e\xdf\x7a\x8b\x20\x8e\xad\x59\x82\x91\x15\xc6\x56\x92\xe1\xce\x3e\x77\xa6\xbf\xdd\x79\x16\x06\x28\xa5\xb2\x05\x43\xf4\xfb\x2f\x36\x41\x61\xdc\x2b\x18\xa0\xd1\x0a\x7f\xba\xb5\x7e\x78\x62\x8d\x1a\xfd\xec\x76\xe1\x06\x59\xa3\x27\x3a\xac\x29\xb4\x29\x5d\x5f\x4b\xd1\xeb\x69\xb9\xf4\x4e\x6f\x22\x68\x26\x01\x2f\x68\xa7\x84\xc4\x59\xfd\xa5\xd1\xd4\x5f\x61\x14\x06\xd6\x2b\x23\xeb\x74\x87\x76\x0b\x8f\x32\x1b\x58\x36\x28\x7b\xa5\x7f\x5f\x4d\x0d\xdf\xba\x67\xaf\x50\xea\xe3\x70\xbe\xce\xbb\xb2\x69\x2e\x8c\xcf\x6b\x1b\xae\xa9\xb5\xe1\x51\xbb\x54\xca\x2d\x54\x2a\x6b\x9d\x77\x3a\x6a\x57\x8e\x95\xb9\x53\x4f\xae\xbc\x7d\x4e\x65\x33\xc7\xf0\x0f\x85\xf4\x78\x07\x9d\x6f\xb4\xfe\xed\x42\x61\xb0\x3e\xf1\xec\x3a\x8d\xc8\xd1\x0f\x74\x9d\x4a\x5a\x4e\xe1\x46\xc7\xb4\xd0\xe0\x18\x50\x52\xfb\x3d\xe3\x34\x5b\x2b\xb6\x6f\x00\xce\x45\xeb\xc8\xed\x03\xbb\x30\xcb\x70\xc5\xa5\x58\x1c\x0b\x3d\x0d\x3e\xb0\xff\x95\x84\x71\x39\x84\xaa\xac\x1a\x2f\x60\x61\xb8\x7e\x5b\x54\x44\x39\xa5\x64\x22\x55\xe7\xba\xdb\xe9\x16\x88\x9e\x86\xee\x7a\x27\x4a\xf0\x3b\xe1\xa3\x7c\xfe\x9f\x5f\x8f\x4f\x9e\xfe\x75\x25\xa8\xcb\x8d\xa6\xe0\xfa\xe1\x46\x40\x3e\x8f\x5a\xaa\xba\x43\x1d\x3b\xeb\xe8\x70\x3d\x25\xde\xbd\x8a\xfb\xee\x29\xad\x0d\xd7\xa8\xc7\x37\xab\xb4\xbe\x79\x95\xf5\x83\xc2\xba\x12\x4b\x58\x16\x73\xe3\xb5\x89\x9e\x1e\x1f\x4a\xa7\xb8\x1f\x46\x9c\x57\xed\x9c\x79\xeb\x87\xcd\x32\x6f\xe9\xfd\x13\x00\xcd\xc5\x45\xb1\x32\xfd\x56\xbb\x91\x49\x97\x49\xe6\x03\x28\xbf\xd4\x1f\x6e\x91\xc2\xea\xd9\x16\x29\xac\x3a\xf6\xfe\xfb\xba\xde\x7f\xbf\x55\xef\xbf\xbf\x99\xde\xd7\x66\xe0\x32\x48\xce\x77\xb2\x07\xc7\xf5\x9d\x2e\x06\x78\x5c\xcd\xc0\xf5\xe4\x46\x93\x8c\xa9\x36\xb6\xca\xc0\x55\x22\x4b\x77\xc8\xc2\xf2\xb5\x81\x5e\xed\xc2\x52\xd2\x05\xe3\xf5\x2b\x05\x3f\xd6\x5f\x99\xc7\x9a\x2f\x7e\xd5\x2e\xd4\x4d\xbd\xbc\x36\x44\xf2\x49\x9d\x15\xaa\x2f\xdc\x10\x74\x3c\xd5\x23\xcd\x4b\x49\xbe\x2d\xbc\x8e\x8a\x27\x2d\x14\xa7\x3b\x4f\x96\xb5\x71\xba\xb3\xb2\xef\xfd\x4d\xa5\x3b\x13\x82\x45\x4d\xa6\x33\x23\x2a\xaa\x7d\xda\xb3\xd5\x1c\xe4\x43\x52\xb4\xca\x91\xdf\x5d\x52\x34\x61\xe3\xbb\xcf\xf9\xd0\xc4\x76\xac\xf7\x4b\x4d\xe2\xc2\x25\xb2\x9c\x16\xcd\x08\xb6\xb1\x55\xb9\x15\xb8\xbd\xad\x97\xbf\x3a\xf8\x87\x94\x69\xbb\x48\x99\xb6\x0d\x89\xdb\x24\xc1\x96\xbc\x43\x76\x9d\x2e\x4d\x5e\xec\x77\x39\x55\xd5\xcd\xa6\x4a\xfb\x6a\x2b\xb9\xb3\x34\x69\xaa\xc6\x5b\x4f\x91\x26\x5b\x6e\xd5\xd5\xa2\x9b\x0f\xa9\xd1\x56\xfb\xee\xaf\x60\x2c\x9f\xad\xb6\x03\xfa\xc9\x6c\x06\xe3\x80\x59\x02\x0f\xa4\xdb\xcc\xa8\x95\x8d\xaf\x63\x52\xb4\x79\xd9\x77\x6a\xc5\x64\x7c\xad\x84\x68\xfa\x64\xbd\x7d\x7d\x72\xfa\xbe\x32\x5b\xec\xde\x96\xf9\xe4\x7a\x31\x22\x57\x09\xbe\x08\xe3\xf3\x03\x66\x75\x0e\xe3\xf3\x1e\xf4\xa3\x1a\x2b\xea\x4e\x60\x4b\x98\xd1\x76\x9b\xf9\xeb\xb0\xf1\x3b\x30\x0b\x77\x2a\x4b\xda\x57\x4f\x94\xb6\x51\x7a\xb4\xc2\x02\xa2\xe1\xe0\x9f\x93\x2a\xc2\xc6\x8d\x65\x4f\x33\x94\x71\x3b\xcc\xa0\x66\x9a\x49\xb6\x31\xb8\x30\x34\xcb\xbb\x81\xed\xf1\xd3\xf9\xaf\x1f\xfe\xf2\xee\xe8\xd5\x0e\xb0\x3d\x94\x51\xa6\x33\xc8\x07\x9d\x8f\x7a\x88\x0f\x11\xc4\xf0\x23\xb3\x38\x6b\x18\x1f\x9a\x78\x2a\xe2\x13\x8e\x25\xb0\x07\xc7\xf9\x38\x34\xf1\x3e\x8e\xea\x82\x78\x6a\xad\x0b\x4a\xd5\xf7\xb4\xbb\x03\x5e\x7b\x2b\x7d\x47\x8c\x0d\x3a\x41\x5f\x0d\x61\x63\x07\xc1\xc2\x5c\xfc\xda\x89\xf5\xbe\x5e\x40\xf9\x8d\x71\x6a\x61\xca\x9d\x9d\xe8\x74\x59\x59\x8a\x82\x17\x35\x77\x48\x13\x5b\xcc\xc9\xf6\x6f\xe8\x1f\xff\x8d\x91\x95\xc4\xd1\xc2\x62\x2e\x4f\x24\xb1\xd2\x69\x72\xc5\xb2\x0f\x89\x58\x32\x01\x0d\x8d\xac\x39\x0e\x67\x10\x2f\xac\x82\xe2\x30\x88\x5a\xfa\x4a\x44\xa2\x6a\xaf\x84\x67\x15\x15\x91\x15\xaf\xc8\x6a\x46\x97\x08\x2f\x2c\x1f\xa6\x48\xf0\xc5\xc5\x18\xc2\x94\x79\x52\x85\x28\x58\x8f\x1c\xd8\xd6\x9b\x41\x44\xa5\x02\x63\x55\xba\xda\x8c\xd6\xdd\x81\xad\xc2\xd5\xba\x40\x8c\x7c\x5f\x1c\xcb\x5a\x88\x11\x46\x52\x1f\x10\x46\xbe\x2e\xc2\x08\x5d\x04\x46\x6f\x1e\xf0\x45\xee\x3a\xbe\xc8\xf7\xab\xef\xbc\x5a\x7c\x91\xb5\xcb\x7b\x27\xd0\x45\x4e\x93\x08\x3d\x60\x8b\x3c\x60\x8b\x6c\x88\x2d\xd2\x1a\x53\x64\x25\x9c\xc8\x29\xbb\xbd\xef\x39\x98\x88\x31\x88\xdf\x07\x94\xc8\xa9\xe0\xba\x3a\x02\x89\xd0\xcf\x1e\x60\x44\x36\x9c\xf3\x07\x18\x91\x07\x18\x91\x15\x2b\xb5\x0a\x46\x64\x03\x77\xe3\x07\x20\x91\x7b\x0b\x24\xb2\x4b\x08\x11\x4d\x05\xb7\xbd\x26\xef\x2e\x80\x87\x7c\x38\xfa\xcf\xc1\xaf\xbf\xf9\x7f\xdd\x1e\x3c\xc4\xc0\x0d\xe9\xe6\x3a\xdd\x1a\x56\xb7\x8b\xeb\xf4\x77\xeb\x55\x65\x75\xfa\xb1\xa7\x5f\x1f\x22\xa4\x16\x86\xe1\xce\x23\x84\xe8\xbe\xb8\xdf\x8f\x1e\x00\x42\xbe\x41\x7f\xeb\x67\x75\x1b\x73\x6b\x7c\x90\x07\xc4\x8f\xdb\x46\xfc\x30\x72\xab\x97\x54\xa0\x06\xdc\xc7\x69\x12\x7d\xab\x58\x1f\xe5\x28\xcf\xad\xd4\x03\xed\xd0\x3e\x4e\x93\xa8\x0a\xf1\xbe\x19\xab\xd9\xb6\x59\x86\xc3\xd1\xba\xdd\xfb\x02\x7c\xa1\x5f\x35\x8f\x47\xb5\xd1\xba\xf7\x04\xf8\x82\x29\x0e\xee\x02\xec\xc5\x77\x05\xec\x85\xec\x53\x1b\xd0\x8b\xef\xbe\x1a\xe8\xc5\x8a\xb8\x55\xce\x5d\xd7\x05\xad\x76\xf6\xb6\xd8\x3c\x2c\xf5\x0e\x04\xa5\x16\x3e\x15\x4c\x78\xe2\x72\x4f\x25\x8a\xb4\xea\x3e\xb1\x99\x9f\x43\x21\xd3\x6c\x2f\x19\xdd\x89\x88\xd2\xcb\x67\xaf\xb2\x8b\xbf\x3d\x49\x6e\x3f\xa2\x14\x68\x24\x9c\x87\x96\xf2\x53\xd9\x81\x75\x68\x2f\x27\xb5\x09\x31\xe5\x3c\xc2\x43\x7c\xe9\x43\x7c\xe9\xef\x4a\xde\x39\xfa\x61\xd4\x35\x0a\xb3\x48\x6a\xf2\xfd\xa6\xf1\xa5\x2d\xc3\x15\x57\x45\x2a\x6e\x14\x4b\xfa\x10\xcf\x58\x72\x8d\xb9\x63\x22\xe4\x57\x0f\x69\x54\x57\xd0\x37\x10\xcf\x58\xe3\xf8\xd3\x5d\x64\x68\x13\xca\xc8\x1a\x7a\x88\x63\xdc\x71\x1c\x23\xd3\xdc\xd6\x44\x31\xb6\x0f\x5c\x7c\x08\x4d\xbc\xc1\xd0\x44\xe6\xf2\x73\x9f\x03\x13\xd9\xfe\x7a\x08\x4b\x7c\x08\x4b\xdc\x79\x30\x1b\xbb\x0f\x76\x1d\x93\xc8\x6e\xe6\xbb\x1c\x20\xf6\x6d\x05\x24\xf2\x35\xdc\x59\x34\x22\xaf\xee\xd6\x43\x11\x59\xb3\xad\x3a\x29\x3a\xf8\x10\x84\x78\x2b\x41\x88\xdc\x5f\xf6\x46\x42\x10\x71\xd2\x94\xdc\xbe\xe5\x9a\xdd\x66\xfc\xe1\x8a\x44\xe9\x9c\xa9\x9e\x92\x59\xb4\xe3\x00\xc3\x93\x8f\x6f\xac\x57\x89\xbf\xd5\x1c\xfd\x0e\x62\x0c\x5b\x04\x18\x3e\x84\x17\x9a\xe1\x85\xbb\x08\x25\xd4\x94\xe3\xdb\xe8\xd8\x45\x84\x58\x6f\x12\xa2\x28\x48\x11\x49\x7b\x11\x3a\x87\x0c\x4a\xe4\xab\x2a\xdc\xdf\xfc\x0a\xbf\x0f\x5e\xff\xa7\x21\x91\xd1\xe7\xcf\x10\x9f\x1f\xda\x5c\x64\xae\x6a\xd2\x4b\x11\x42\x72\x6c\x82\xcc\xd4\x84\x80\x1c\x97\xb4\x62\x06\x94\xbe\x88\x4c\x61\x33\xc5\x78\x60\x23\x76\xe1\x50\xcf\xfd\x5c\x17\x31\xb2\x02\x2c\x59\x39\x7b\x1f\x3d\x05\x87\x9c\xf8\x71\x25\x00\x41\x5f\x48\xb9\x77\xac\x88\xd2\x26\xab\x50\x1f\x6b\x0a\x53\xa1\xa3\x35\x34\x0a\xab\x0d\x94\xe9\x1c\xc6\x3a\xd1\x5b\x01\xd4\x6c\x15\x37\x6e\x18\xcf\x33\xd2\x6c\x47\x84\x19\x49\x26\x89\x9f\xa5\x4a\xaa\xae\xc0\x17\x03\x5b\x14\xd6\xca\xb6\xd3\x21\x15\x1c\x1e\x9d\x0e\x76\xd8\xb7\xb7\xee\x0a\xe1\xd4\xc6\x30\x08\x93\x73\x9c\x64\x73\x6d\x35\x9a\x27\xff\x8c\xed\xba\xfa\xc9\x6f\x60\x4b\x9f\x55\x3c\xa2\xaa\x7f\x33\x2f\x35\x0d\x23\x1f\xd8\x7e\x14\x56\xf0\xf8\x37\xb5\x6d\x37\x6f\xbe\xd5\x2e\xd6\xb5\x5b\xe6\xa8\xa2\x2e\x79\xbc\x1a\x1a\xbb\xae\x46\xbe\x9d\xf8\x4a\x3c\x91\xb3\xca\xa6\xff\xb1\xe4\x04\xb8\xc7\xab\x38\xb7\xfe\x14\xf9\x17\x4d\xc7\xf6\x89\xb6\x4e\x72\x7d\xcc\x68\x0b\xf5\xbd\xd6\xd1\xa7\xc0\x56\xf9\xeb\x41\x19\x2e\x9a\xc5\x4b\x49\xad\xbe\xfa\x84\x47\x58\xd1\x0d\x53\xcc\x46\x6b\xee\x60\xe5\x45\xd7\xfa\x9b\x86\x4f\x8c\x45\x2d\x34\x8a\x8c\x98\xac\x26\x09\x4c\xd9\x11\xa0\x1e\x0a\x42\xa2\x19\x7b\xfc\x08\xa6\xa9\x7e\xc2\xd3\x45\x4c\xe0\x17\xfa\x97\x3a\xfc\x49\x7c\x81\x16\xd9\x5c\x96\x0a\x7e\xa2\xe4\x3a\x7d\x13\x4f\x12\x7b\x54\x0d\xca\xd1\x4f\xd1\x69\x26\x54\xc8\xb6\x71\x82\xe4\x0b\x60\x4f\xfd\x88\x27\xa5\xa7\x5f\xa9\xd2\x2b\x56\x49\xd5\x59\xb6\x45\xd4\x05\xd8\x1c\xb6\x09\xaa\x29\x28\x4e\xc5\xb6\x77\x34\x2a\xa6\xbb\xd3\x81\x6c\x38\x15\xac\xeb\xeb\x78\xe2\xa3\x6e\x89\x0c\x70\x16\xa1\x1e\xcb\xdb\x30\x09\x7d\xa8\x41\xc8\x2b\x1e\x79\x8a\xa2\xb9\xb5\x19\xa3\xec\xfc\xf9\xe5\x5b\xeb\x67\x16\xd1\xec\xae\xe5\x91\x5b\x45\x38\x1e\x35\x30\xb2\x2b\x2e\x02\xc3\x9c\xd4\xfd\x2a\xd8\xf0\xbc\xd4\x5d\xa1\x2b\x3d\x77\x56\x5c\xa0\xda\x5d\xc9\xbd\x67\x56\x84\xc8\xc8\xb6\x91\x81\x83\xf0\x1b\xfa\xc7\x7f\x47\x91\x75\x4e\x97\x10\x12\x64\x41\xeb\xd7\x5f\xdf\xbc\xb2\xc2\x09\x8f\x2c\x62\xec\x8f\x15\xa6\x56\x84\x26\xc4\x62\xea\xbd\x7e\x43\x57\x3b\x52\x9e\x52\xf1\xf5\xce\xfd\xc2\x31\x9c\x33\xd6\x3e\x9c\x87\x04\x46\xe1\x7f\x90\x64\xa6\x19\x27\xae\xd8\x6f\x88\x31\xa4\x4c\x72\x8f\x60\xe8\x5f\xf4\xe4\x4f\x04\x19\x53\xcf\x79\x77\xee\xc7\x22\xd8\xf2\x5e\x98\xf6\x18\x0d\xea\x71\xd5\x40\x18\x5f\x26\x62\xd7\x17\xce\xe8\x9d\x19\xed\x26\x0e\x79\xa7\x5c\xf7\xd7\x66\xb7\xe7\x6f\xa2\x57\x8b\x4f\x47\x7f\xa9\x65\xb7\xeb\xc1\x38\xd6\x32\xd5\x47\x0d\xa6\xe3\xe3\xb5\x3c\xf5\x93\x0e\x3c\xb5\x5d\xf2\x04\x7c\x0a\xbe\xeb\xe8\x20\x5c\x71\xf8\xe3\x54\x20\x39\x3f\xaf\xf5\xf5\x5b\xcf\x3f\x35\xf0\x37\x6f\x13\x1f\x4a\x6e\xbf\xca\xcb\x14\x36\xa6\xf6\x8c\xca\xe3\xf5\x8c\x0a\xab\x6a\x9c\x7c\x69\xe6\x55\x9a\xe8\xd9\x29\x4a\x09\x0e\x7d\xc2\x89\x08\x4f\x1e\x44\x12\x0b\x5a\x11\x1d\x87\x86\x4a\xd1\x88\x90\x51\x0f\x9a\x61\xd2\x2e\x36\x29\x32\x91\xd0\x39\x22\x56\x8a\x88\x15\xc6\x4c\x01\x73\x0a\x27\xc4\x4a\x49\x82\x91\x95\x4c\xd8\x13\xde\xf4\xab\x97\x0c\x23\x23\x48\x78\x66\xa1\x4b\x84\xd9\x97\x04\xc3\x38\x9d\x85\x84\x14\x79\x36\x24\xba\xc6\xab\x97\x3c\xef\xd0\x3c\xa2\xd7\x20\x7f\x0f\xe3\x85\x95\x90\x29\xc2\xd6\xab\x97\x55\x7a\xd8\x89\x12\xae\xbb\x4d\x2c\x06\x29\x00\x09\xea\x25\x4c\x10\x82\x75\xfb\xa6\x69\x1d\x34\x01\xca\x72\x3e\x88\xef\xeb\x2e\x5c\x59\x01\x6d\x11\x62\x04\x8b\x9d\x57\xce\x40\xc3\x36\x93\xbc\x8b\x5a\xed\xa5\x22\xbc\xf4\xc9\xda\x94\x34\x35\xf7\x75\xf9\x67\x99\x7e\x1c\x83\x23\x2e\x8b\xa5\x95\x89\xa9\x37\xdb\x9c\xd6\x2a\x2f\x6d\x0d\x0b\x88\x7b\x85\x68\xcc\x6c\x41\xa0\x24\x16\x90\x01\x73\x5b\x00\x03\x29\xd3\xe5\x0e\x88\x17\xbd\xd9\xbf\xe7\xff\x3c\xe3\xff\xfc\x20\x40\x86\x34\x1f\x8a\x3a\x58\xa1\x56\x33\x66\xa0\xc8\xad\x9f\xb4\x4a\xc2\xce\xd2\xbc\x89\x2c\x6d\xf7\x60\xe6\x34\x40\xed\xb5\x93\xb7\x92\x21\xe1\x34\xb9\xcc\x79\xc8\xf8\x35\x8d\xc5\x50\x11\x83\x4d\x51\x6f\x3b\x60\x2c\x76\xc2\x51\xdc\x01\x40\xb0\xcb\x7f\x1f\xfe\xbf\xbf\xa0\x5f\x1b\xe2\x08\x57\x03\x82\x09\x20\xb0\xb6\xf8\x5f\xc5\xed\xff\xb8\x41\xa9\x72\x5c\xf5\xdd\xd8\xcc\xfa\xc7\x5a\xd6\x3c\xcb\x25\xb6\x96\xc6\xc2\x6d\x12\x34\xbc\xae\xda\x42\x1f\xdb\x31\x00\x77\x0d\x34\xd2\xe3\xca\x31\x7d\x0a\xb4\x6c\x11\x4f\x34\xff\x28\x22\xd1\x03\x6e\x11\x19\xe9\x71\xc5\x8c\x5b\x4f\x51\x8c\xa5\x05\x52\xc5\x60\xe0\x27\x55\x5f\x16\x18\x3f\xdd\x01\x92\x8e\x46\xf5\x00\x49\x87\xbb\x06\x48\x7a\x5c\x52\x6e\xb5\x56\x43\xef\x1e\x21\xe9\xb1\xa6\xbd\xd9\x10\x21\x49\x9f\x36\x1d\x21\x69\xf3\x69\x5b\x89\x90\x54\x96\x69\xd7\x83\x24\x19\xeb\xaa\x81\x24\xd5\x74\x70\x0d\x48\x52\xf5\x64\x99\x48\x5d\xcf\x2a\xce\xaf\x4f\x34\x84\xa4\xf2\xfa\x0a\xa0\x8d\x62\x9d\x01\x87\xd9\xbb\x5b\x88\x49\x0c\x60\xe4\x1b\x84\x4c\x3a\x1a\x95\x40\x29\x4c\xc8\xa4\x9a\xcd\xb1\x01\x64\x52\x33\x3c\x45\x8b\xc9\xe9\x06\x99\x54\x9d\x9a\x5b\x80\xa8\x58\x3d\xfa\x3b\x01\x43\x51\x0e\x97\x12\x47\xaf\xe0\x08\x0b\xc4\x09\x76\x1c\x0f\xc2\xe2\x62\x66\xf0\x11\xc2\x96\x5b\x62\x16\xc5\xd1\xdd\x9c\x35\xdc\x12\x5b\x42\xd4\x73\x17\xc0\x25\xfe\xf5\xa7\x2f\x87\xd1\xe4\xbb\x3f\xee\x18\x5c\xa2\xc8\x35\xbd\x21\x63\xb9\x12\x8c\xe2\xe8\xf0\x26\xd0\x28\x5a\x23\xb7\x56\xf0\x5a\x1f\x7f\x7d\x40\x8a\xa3\xa3\xba\xca\xef\x3c\x22\x85\x6e\xd4\x3f\x92\xa0\x1a\x0f\x90\x14\xdf\x56\x88\xd6\xd3\xba\xad\xf9\x80\x49\x71\xef\x30\x29\x7e\xd0\x83\x66\xca\xd2\xa7\x01\x4a\x51\x02\xb6\xfb\xa6\x50\x29\x24\x20\xda\x2d\xa2\x52\x9c\x71\x7e\xe5\xf6\x61\x29\xda\x37\x7c\xcb\xb8\x14\x1b\x07\x9b\x19\x17\xce\x68\x13\x5c\x8a\x6a\x3d\xdf\x6b\x61\x26\x27\xcc\x2d\x3b\xc1\x1c\xa8\x81\xd9\xbd\xca\x4f\xbf\xb2\x7c\x98\xa5\x42\x38\x3c\x79\xf9\x96\x8b\xb5\x1b\x08\x88\x37\x2c\x1e\x36\x29\x07\xca\x72\xe0\x53\x53\x0e\xa4\xe7\xd5\xce\x52\x11\xd7\xf4\x5d\x55\x0a\x5c\x85\x77\x5a\x23\x02\x3d\x5e\x19\xe4\x73\x43\xf2\x9f\x24\x41\xeb\x70\x36\xed\x91\x44\xf8\x38\x3a\x6a\x16\x53\x57\x21\x7b\x6c\x2a\x7d\x97\x66\xfd\x87\x1a\x55\x0c\xdf\xa4\x6b\xf0\x65\x57\x76\x62\x1d\x2e\x65\x79\xe9\xdb\x2a\x84\x56\x2d\xf8\x0f\xe0\xe8\x90\xce\xe6\x2e\xa5\xde\x2a\xb9\x60\x0e\xf4\x41\x26\x8c\x9e\xf5\x9a\x43\xb6\x7b\x77\xa1\x39\x5c\x3b\x79\xb6\x1f\x25\x71\xf3\x89\x79\x25\xfb\xb9\xad\xea\x6f\xb7\xf4\x7f\x63\x5c\x22\x7d\x21\x1e\x17\x53\xbd\xb9\xef\xa6\xe8\xac\x14\x77\xf5\x60\x4c\xda\xd1\x90\x79\xdc\x6d\xae\x05\xa2\xfd\x7b\x06\x86\xf6\x9f\x0b\x86\x66\xb4\x71\x28\xa1\xd5\x18\x6f\xf7\x2b\xd7\xfd\xae\x72\x17\xdb\x20\x16\x48\x76\xfe\x27\x19\x5a\xb6\x9b\xae\xaf\x47\x20\xfe\x0d\xf1\x20\xa9\x6c\x7e\x8e\xa9\xd0\x62\x25\x19\x66\xf7\x5d\xba\x48\x09\x9a\x59\xe3\x85\x05\x25\x6a\x33\xbd\x1b\x49\x62\xc9\xa0\x73\x94\x31\x89\x50\xcf\x68\x17\xfa\x53\x8e\x10\x0d\x99\x03\x44\xcc\x32\x77\x2c\x98\x33\x03\xe3\x73\xfb\xd6\x2b\x1e\xbd\x75\x95\x60\xbc\x00\x16\xba\x44\xb4\x60\x92\x9d\x4f\x75\x2f\x8d\x2b\x98\x5a\x57\x38\x24\x04\xc5\xd2\x95\x22\x89\x02\x2b\x25\x0b\x01\x31\x1d\xa6\x56\x4a\xc2\x28\xe2\x7e\x09\x7d\xeb\xcf\xc9\x15\xba\x44\x18\x58\x57\xc8\x0a\x12\x0b\x23\x3f\x99\xcd\x50\x1c\x88\x61\x89\xce\x63\x56\x8b\x70\xd5\x10\x0e\x16\x31\xba\xe2\xf5\xf6\xad\xb7\x08\xe2\xd8\xe2\x79\x4e\xd8\x34\xd8\xab\x5d\x19\x8f\xdb\xba\x32\xf6\x66\xe1\x39\x86\x04\xf5\xc4\x24\x98\xa1\x3e\x75\x0e\x8a\x6b\x23\x80\xc4\x92\x06\x7a\x4c\x94\xbe\x27\xfb\xb7\x1a\xe7\xf3\x6c\x53\x02\xbf\x19\x5f\x79\x57\xf0\xce\x74\x5e\xf5\x2e\x40\x9e\x99\x1c\xb5\xfe\xb3\x2d\xfa\x59\x89\xfb\x6e\x1e\xce\xda\xb1\x1a\x13\x75\x26\x2f\xee\xaf\x3f\x47\x9f\x90\x8f\x11\x11\x33\xc4\xfb\xb5\x7a\x72\x9e\x01\x3b\x65\xdf\x98\xcd\xb5\xa1\xcd\xff\x3f\x7b\x7f\xb6\xde\xb6\x91\xad\x8f\xc3\xe7\xba\x0a\x18\xbf\x6c\x35\xd0\x06\x29\x91\x1a\xcd\x34\xe2\xc8\xb2\xd2\x51\xdb\x96\xbd\x2d\x25\x9d\x6c\x35\x1f\x07\x22\x8a\x22\x22\x10\x60\x0a\x45\xc9\x6a\x89\xf7\xf2\x5d\xcb\x77\x65\xff\xa7\x26\xa0\x0a\x28\x8c\x04\x25\x39\x71\x0e\x62\x8a\xc4\x50\xe3\xaa\x35\xbc\xeb\x5d\xc9\xb8\x0a\x6f\xad\x7b\x36\x28\x23\x74\x9b\x99\xbc\x81\x2c\x62\x31\xe7\xcc\x4e\x93\x42\x64\x36\x5f\xc3\xbc\x0c\xf5\xcc\x9f\x8e\xc2\x59\xd9\x61\x59\x63\xe6\x7b\x56\xba\x24\x05\x1e\x5d\x86\x4b\x1c\x5a\xba\xcf\xd0\x30\x97\x7e\x78\xe1\xf8\x62\x4c\xb7\xca\xe8\x56\xe5\x21\x6f\x8b\xea\x2f\x1f\x3b\xf1\x97\x67\xfb\x13\x38\xfe\xf2\xc2\x55\x14\x83\x1d\x07\xb8\x10\xdb\xcb\x71\x8e\x22\x0d\x76\x25\xb9\x92\x2b\xe3\x0a\x14\x62\x54\x2d\x84\xba\x9e\x04\x5b\x60\xef\xe3\x87\x5f\x67\xff\x1a\xfd\xd0\x22\x5b\x60\xac\xf8\x3f\x89\x00\x56\xbf\x6a\xe9\x41\x5d\x99\x83\xf3\x57\xe6\x09\xdc\x4d\x07\x02\xbf\xf2\x04\xfe\xa9\x82\x50\x7d\x51\x89\x10\x17\x7d\x3e\x4f\x60\x7f\x93\x81\x7b\x7a\x2f\x86\x9c\xee\xeb\xcc\x9b\x82\x81\x0b\x14\x74\x81\x5b\xc3\x0c\x3f\x55\x3f\xb9\xbf\x19\x5d\xa0\xd0\x4c\x5e\xed\x36\x9f\x35\xb0\x52\x9f\x62\x7a\x40\x01\x53\xd8\x13\xbf\x14\x29\x01\x15\xf4\x81\x45\xbd\xdc\xaf\xc9\x07\x98\xd7\xd5\x2a\x9c\x87\xd2\x76\x95\x2a\x48\xaa\x38\x0f\x85\x2a\x78\x19\xce\xc3\xed\x5a\x7d\xdc\x69\xc4\x79\xb8\xfd\x95\xf3\x70\x85\x9c\x87\x3c\xd8\xf8\x45\x91\x1e\xa6\xc1\xb3\x45\xa0\xde\x3a\x46\x4b\x15\xef\x8e\x1c\xc2\xfd\xcb\x10\x1f\xee\x2a\x42\x76\xab\x20\x3e\xa4\xaa\xfd\x92\xcc\x87\xbd\x6a\xf2\xe8\xcf\xcd\x7c\xa8\x9e\x3b\x5e\xe2\xa4\x41\x19\x6f\xa9\xa1\xed\xba\xec\x13\x69\xb5\xd7\x96\xbb\xbe\x91\xab\xbe\x06\x5f\x91\xd8\xe0\x16\x5c\xf4\x4a\xf7\x7c\xae\x27\xfe\x94\x7a\xe2\x51\x48\x3d\xf1\xb4\xb4\x36\x96\x2c\x84\x07\x6b\xac\x70\xc4\x13\xde\xb6\x91\x13\x10\x72\x34\x5a\x3b\x5b\xf4\xc1\x13\x82\xa8\x69\x08\x81\xe6\x5c\x84\x73\x44\x1f\x48\x54\x88\x88\xe4\x25\x4e\xf0\x4b\x42\xde\x10\x8d\xda\xdd\xdc\x6f\x5e\xcd\x37\xbe\xf9\x94\x7d\xe3\xcb\xae\x88\xec\x65\x7b\xb5\x70\xbd\xc2\xce\x6a\x89\xa2\x94\x39\x3f\x8a\x38\x4a\x7b\x4f\x9b\xa3\x94\x1e\x05\x39\xc5\x38\x99\x6b\xe7\xfb\x30\x98\x47\x40\xa2\x2d\x25\x9f\xfd\xf0\x32\x24\x0c\x59\xb4\x86\x6d\x90\xc7\x66\x2a\xab\x7c\xf3\x88\xf8\x2e\x10\x07\xee\x48\xd8\xad\x79\x04\x32\x76\xcb\x8b\x2c\x0d\xaa\xfc\x1b\x6b\x87\xf2\x37\xde\xae\xaf\xec\xa9\x4f\x97\x3d\x75\x19\xb5\xa7\x09\xf3\x26\x93\xa8\x2d\xd3\xa7\xe2\x23\x83\x2a\xfa\x4f\x99\xdf\x72\xb5\x1c\xaa\x8f\x34\x93\xad\x91\xa8\xb2\xe7\x3d\x38\x8b\x2a\x7d\x6f\xb5\x66\xb2\x26\x3e\x1e\x8f\x6a\x0d\x59\xf9\xa5\xf1\x4d\xae\x30\xea\xa2\x4e\x1f\xca\xe4\x95\xd3\xe8\x4a\x7d\x06\xca\x6c\xb4\x26\xc5\x49\xb9\x02\x36\x4a\xee\xf1\x6b\x81\x94\x52\x0c\xc2\x34\x0c\xe6\x78\xc4\x70\xf3\xc2\x27\x92\xb6\x04\xf6\x7b\xd1\xab\x57\x7b\x55\xd3\x96\x58\x72\x12\x04\x8e\xfb\x3e\xf0\x6f\x6b\x46\x6b\x6a\x68\x97\xd5\x83\x35\x7b\xe5\xb1\x9a\x78\xcc\xd3\x09\x47\x5b\x8f\x9f\x6f\xb4\xab\x7a\x76\xdc\xe0\x4f\x4f\x34\xf1\x28\x75\x94\x3f\x5c\x7c\xa4\x82\xf0\x7b\x80\x44\x9c\x4d\xa1\x3f\x49\xe2\x4c\x36\xb3\x5f\xa0\x57\x8d\xa7\x54\x1f\xa6\x73\xdb\xf7\x1b\x25\x3b\xab\x9d\xd8\x75\x95\xfb\x2a\xba\xd8\xca\x53\x67\xf4\xaa\x89\x33\x3d\xe6\x75\x4d\x84\x68\x4e\xde\xcc\xb1\x78\xc1\x9f\x36\x77\x46\x46\xf2\x6c\x37\xa1\xae\x90\x53\x71\xb6\x92\x12\x97\x8d\xf5\xde\xaa\xd1\x06\x92\x17\x73\x9c\xec\x8a\x16\x92\x72\xaa\xbe\xfa\x04\xdc\xd4\x7c\xb3\x12\x98\xd5\x56\x73\x7e\xf6\x9a\xb4\xe7\x21\xb3\x84\x96\x2b\xb4\xc3\x7c\x38\xc9\x29\xcc\x00\x4c\xf4\x25\x58\xba\x84\x58\x97\x60\x2e\xab\x84\x85\x29\x21\x5e\x92\xf8\x98\xf0\xd3\x38\xf9\x46\xec\xc1\x4a\xb2\xf4\x85\x13\x25\x27\x35\xb2\xe0\x6c\x4e\x1d\xea\x42\xac\x87\xb0\xaf\x91\x9f\xce\x42\xf2\x68\x41\x08\x75\x39\x2a\x27\xab\x56\xe4\xa0\x3e\xb2\xe0\x0d\x85\xc7\x67\x25\x18\xae\x1a\xbc\xf5\x6d\x20\xb7\xb2\x14\x99\x63\xc9\x40\x90\x08\x2e\x0b\x6c\x01\xa2\x4c\x50\x4b\x40\x62\xaf\xaa\xad\xc7\xa7\xf4\xef\xe5\xb5\xf8\x27\x81\xc8\xda\xba\xf9\xd7\xdb\x53\x67\x82\x8a\xd5\x78\x67\xe6\x15\xc1\xb1\x88\xa2\x02\xd3\xb8\x2c\xe2\x74\xad\x89\xca\xea\xaf\x42\xd1\x7f\x51\x43\xd1\x17\x80\x59\xfb\x7f\x65\x5c\xd6\x5f\x59\x4b\xef\xa7\x72\xc5\xca\x41\x3d\xac\x06\x2a\x03\xf0\x1c\x90\x1d\x50\xbb\xa4\x69\x45\xf4\x4e\x1a\xb8\x23\x34\x90\xba\xd2\x0a\x41\x4a\x95\xba\x13\xa3\x75\xf6\x54\x65\x4b\xf7\x4a\x31\x4a\x2d\x14\x6e\x55\x62\x94\xf2\x1b\x5f\x0e\x51\xfa\x6b\x97\x65\x5d\x81\x75\xd7\xba\x91\xd2\x44\x03\x16\xcd\xb5\x6c\xfe\x89\x4c\xaa\xdb\x4b\x95\x47\x48\xb9\xee\x25\x50\xbf\x86\x42\xe4\x14\x25\xae\x16\xfd\x90\x22\xbc\xd5\xc7\x21\x0d\x08\x12\xd4\x4c\x9a\x3f\xf9\xcb\x01\x46\xa9\x6c\xe7\x96\xc1\x51\x5b\x19\x33\xfd\x4f\x8e\x8d\x7a\x14\x78\x54\x62\x4f\xfd\x49\x8a\xc3\x3e\x31\xb3\x95\xa8\xa4\x5c\x27\xe6\xc3\xea\x05\x57\x04\x73\xc0\x00\x18\x72\x81\xd4\x02\x3d\x15\x6b\xa7\x89\xb6\x9a\x4c\xdd\x93\xd1\x53\x05\xa7\x33\x2d\x4a\x52\x27\xb5\x22\x35\x72\x2b\x98\x93\xf4\xbc\x2c\x0f\x8a\x91\xba\xbb\x8a\xe2\xbd\x5a\x06\x1b\xd6\x1a\x38\xa6\x48\x18\xa8\x41\x32\x72\x1d\xdf\xbd\x34\xf2\x65\x57\xc0\xae\x34\xeb\x69\xba\xbf\xfb\xb8\xbf\xf3\x08\x85\xd3\x8f\x20\x0a\xe7\x70\x04\x4e\x58\x82\xcf\x30\x37\x37\xa3\xfc\x89\x67\x34\x61\xb7\xfa\x23\xca\xb2\x91\xcb\xae\xae\x94\x9a\xbf\xd7\x12\xc6\x46\x7b\x74\x9c\x8d\xf6\x10\x58\x1b\xed\x09\xe2\x6d\x34\x8a\xd4\x48\x34\x96\x56\x70\x37\x9a\x8c\xbd\x49\xd4\xdc\x9a\x98\x08\xad\x0c\x17\xa1\xd5\x5d\xbc\x15\x27\x7a\x19\x1c\x8e\xf6\xf4\xb0\x38\xd9\x59\x6e\x0d\x93\x23\x3c\x73\x25\xb8\x1c\xad\x04\x9b\x93\xbc\xbf\x52\x93\xc5\xe6\xd6\xc7\xe8\x3c\xda\x7a\x5c\xb2\xee\xb1\x96\x0d\x36\xd6\xac\x7d\xac\x95\x5b\x3f\xbd\x92\x22\x66\x71\x01\x64\x21\x24\x3c\xac\x04\x5d\xae\x59\x01\xd9\xcb\x06\x41\x4b\x86\xa5\x5a\x5d\xc3\x86\xe5\x90\x1b\x0d\xdd\xdb\xa3\x83\x8f\x27\x99\x01\x24\x2a\xcf\x25\x40\xc8\x0b\x2e\x29\x35\x03\x70\xf1\xd7\x01\x18\xa1\x96\xab\x24\x13\x2c\x7a\x1b\xe3\x57\x73\x3b\xd4\x54\x45\x96\x80\xc5\xed\x7d\x19\xb8\xb8\x47\x87\xc6\x2d\x59\x8c\x79\x4c\x2a\x09\x76\x82\xf9\xf4\x82\x06\x59\x52\xd0\x38\x09\xed\x06\xc1\x18\x82\x68\xd2\xe1\x91\x9b\x6c\xa9\xe6\x46\x50\xb8\xc4\xb3\xbc\x1c\x18\x2e\x1d\xfe\x6a\x18\x45\xbb\xba\x7e\x12\x18\xb8\xdd\x93\xf0\xc3\xcd\x2f\xfd\xdd\xe2\xe0\x59\x04\xf0\x9a\x20\x75\x83\xf0\xea\x00\x01\x7a\x03\x6e\x6b\x51\x7a\xc7\x4c\xde\xf8\x22\x3c\x0b\x09\xb2\x86\x60\xbe\x5c\xf0\xb9\x66\xa0\xad\xbf\x55\x23\xbe\x94\xe8\x5c\x24\x69\x59\xdf\xd0\x6b\xf8\xa4\x53\x37\x2b\x7d\xf3\x49\xa9\x5c\x4b\x2a\x36\xbd\x69\x75\x12\xa7\x6d\x6f\x4f\xe5\xc5\xb8\x02\xb7\xdc\x14\xed\x2b\xf9\x66\x94\xbf\xb5\x1e\x62\xac\xc0\xfb\x70\x75\xbd\xf1\xcd\xdd\x15\xb8\x5d\x48\xa5\xed\xca\x51\x84\xa4\x87\xab\x83\x11\x8a\x25\x81\xfa\xbc\x70\x4c\x7f\x2b\x29\xe2\x12\x1f\x9f\x7a\xf6\x51\x74\xf4\x9f\x24\xc4\xb0\x66\xe8\x72\xfb\xcf\x11\xba\xec\xed\xe7\x82\x46\x96\x63\xfa\xde\x6e\x18\x90\x5a\x36\x1c\x55\x7d\xc8\x1a\xa3\x0d\xf5\x32\xa4\xa1\x9e\x45\x19\xe6\xf8\x2f\x1d\xd9\xb1\x88\xcf\x70\x51\x4a\xf4\x78\x7c\xe3\xea\xba\xcb\xa5\x76\x9d\x0d\x23\xaa\x63\x6f\xc0\xad\xb6\xa1\xfd\x8c\x0f\xb0\xa8\x99\xf6\x95\xc3\x01\xb6\x97\x8d\x6b\xc7\x6e\xf9\x26\x62\x34\xe7\x00\x88\xc5\x79\x3b\x8f\x96\xce\x93\x9d\xec\x1f\x22\x3f\x6d\x9d\x17\x29\xc6\x84\x47\x0f\x7b\xbd\x56\x62\x33\x95\xd6\x57\x93\x15\x36\x0e\x7d\x7a\x62\xc9\xe4\x44\x7a\xba\x62\x85\x74\xe0\x8a\xb1\x08\x4e\xe8\xdc\x13\x4f\x52\x81\xe6\x57\xcf\xa9\xbf\xdf\xd4\xdf\x5d\xc6\xa5\x5c\x23\x85\xb1\x3e\x4f\x6e\xaf\x67\x31\xb6\xe9\xcc\x2f\x9b\x35\xb3\x70\x15\x16\x5d\x6b\x07\x43\xcb\x5c\x1f\xea\x6d\xdf\xe7\xb0\xde\x7d\xeb\x5c\x7f\xc3\x35\xac\x94\x48\x90\x7e\xc3\xdb\xb8\x6c\x77\x55\x74\xba\xe9\x15\x42\xff\x96\xfe\x3d\x04\x81\x4b\x0d\x72\x0a\x08\x16\xe4\xa1\x6e\x11\x2b\xab\x28\x1b\x56\x44\x03\xec\x97\x76\xa8\x31\xb2\xb8\x7e\x5f\x4e\xc0\x8d\xdc\x15\x04\xe7\x99\x9e\x54\xf1\xb8\xad\x72\x11\xd6\x0c\xc5\x29\xd6\x19\x1d\xed\x53\x10\x45\xdc\x8b\x55\x47\x68\xea\xc5\xf4\x11\x37\x0e\x0c\xbc\xa0\x36\xf5\x7b\x32\x59\x2f\xda\xa0\x63\xc8\xf3\x60\x67\xa4\xde\x26\xb6\xdc\x60\x88\x1b\x2c\xb0\x36\xd0\x3e\x48\x9c\x02\xda\xd9\xc4\x8b\xb4\x37\x3f\x6b\x13\x27\xa2\xe5\xa6\xaf\xb4\x88\x0e\x61\x57\xfb\x95\xd1\x23\x03\xb2\x19\x7e\xfe\xcf\xdf\x22\xed\xc6\x43\x13\xe9\xaa\xc8\xd2\x2e\xe6\x48\xbb\x01\x02\x93\xb1\x1b\x7a\xc1\xa5\x16\x85\xf4\xea\x91\x03\x01\x71\x03\x07\x21\x4a\x7e\x72\x90\xe6\xf8\x7e\x57\x3b\x46\xd4\x35\x0c\x2e\x1d\xe4\x5d\x03\xff\x56\xf3\xa6\x33\x67\x44\x99\x1e\xf0\xc9\x74\x0d\xb4\x20\x74\x81\xe6\x21\xfc\x7e\x27\x8a\xc2\x91\x47\xca\x4a\xe3\x87\x77\xb5\x53\x00\xb4\x0b\xe0\x87\x37\xda\x38\x84\x94\x29\xc2\x05\xc8\xf1\xfc\x48\x0b\x29\x1d\xf3\x5b\xdc\x5a\xb6\x2c\x08\x67\x44\x04\x40\x99\xef\x6f\xa7\xd8\x6b\xea\x05\x08\xc0\xc0\xf1\xa3\x0d\x3e\x0a\x2d\x92\x41\x84\x73\xa8\xe5\x12\x42\x24\xbd\xf4\x02\xea\xc4\xc1\x33\x55\x05\x48\xd4\x10\xec\xf0\xa2\xf2\x41\x95\x36\x93\x98\x67\xf4\xea\x5a\x86\xd8\xd7\x83\xd5\xd3\x1f\x88\x60\x60\x7b\xbc\xc0\xfa\x5c\x12\x5a\x2f\x1d\x57\xfd\x1c\x55\x32\x41\xa7\xf4\x72\x14\x6f\xe5\x15\x89\xe2\x94\x3d\xd6\xf8\x97\x29\x89\xac\x96\x72\x8a\xd3\x34\x2d\xf2\x9a\x49\x3e\xe2\x91\xa0\xc1\x71\xc9\x23\x41\xa9\x2a\xb2\x3c\x7a\xe5\xde\x09\xbe\x37\xf0\xfc\x77\xae\xc0\x6d\xa6\xc2\xda\x63\x26\x3c\x66\x86\x6e\x98\x99\xe1\xed\x2c\xfe\x68\xab\x04\x7f\xc4\xcd\xd9\xbc\x1c\x8a\x9c\x38\x73\x9e\x42\x7e\xde\x8f\x85\xc6\x04\xf8\x33\x76\xfa\x50\x0d\x9d\x14\x89\xa4\x62\x48\xcf\x71\x82\x35\x93\x62\xff\x8f\xfd\xd5\x71\x41\xe4\x5d\x06\xf1\x0d\x4c\x6b\xa8\x77\x62\x89\xc2\xb7\xbe\x30\x2a\x34\x27\x69\x89\xdc\x9c\x0c\xb1\xea\x4c\x9d\x54\x27\xa1\x2d\x54\x4b\x2a\x19\x57\x15\xa3\x70\xb6\x09\x6e\x87\xb0\xfa\x3b\x1c\xaa\xd2\x2c\x77\xab\x5e\xec\xa1\x41\xaa\x0c\xa1\x4a\xb6\xf6\x97\x8e\x4d\x6c\x97\xa5\xf4\x28\x3b\x98\x63\x02\x55\x89\x63\xd0\xdd\x99\x8a\x47\xa4\xa2\x1a\x34\x1c\x31\x0a\x83\x91\x83\x78\x10\xc3\x07\x63\xd4\x41\xd0\x23\x75\x45\x5d\x92\x71\xef\x53\x77\xb7\x33\x9b\x01\x92\x82\xff\x7b\xe8\xc9\x31\x11\x12\xf8\xe8\x20\xe8\x8c\xae\x3a\x0e\x84\xce\x2d\x7e\xb6\x43\xe2\x28\x3c\x76\xe1\x03\x39\x82\x41\x1e\x94\x24\x63\xd1\xe7\x90\x9f\xa4\xe8\x08\x82\x5e\x70\xd9\x01\x81\x1b\x75\xb0\xd2\x52\x2f\xbc\xc1\xe2\x12\xcd\xa3\x1a\x4f\x22\x27\xe8\xcd\xbf\x22\x80\xf6\xc2\x5f\x9a\xb2\x34\x33\x25\xa0\x2c\x3f\x48\x11\xc4\xb0\x74\x67\x4c\xaf\x8c\x43\x1e\xe9\x0f\x35\xe3\x1c\xdb\xcd\x12\x8a\x6a\x9c\xad\x9b\xcd\x5c\xff\x2f\x9e\x80\xef\xbf\xaf\xac\x0b\xc9\x42\x2a\x71\x98\x47\x75\xdc\xee\x64\x8f\xdb\x38\x76\xb0\x5b\xfb\xbc\xad\x11\x67\xa9\x34\xda\xd1\x9f\x64\xb8\xbf\xc0\x38\xca\x83\xa4\x80\x49\x2d\x2b\xae\x01\x17\x31\x70\x47\xa3\x3c\xb0\x61\x26\x7f\xa8\x80\x91\x7c\x7b\xc9\xd2\xb8\x59\xb7\x06\x2b\xc6\x86\xff\x1e\x7b\x23\x5a\x6f\x70\x1e\x73\x4f\xd2\x3a\x62\x7d\x21\x65\x38\x42\xde\xe8\x8a\xac\x60\xaa\xfe\x0d\xdb\xf1\x8b\xa4\x1c\x59\xdb\xed\xd5\xc2\x2a\x75\x7f\x3c\xcb\xb1\x8f\x2b\xaf\x11\x65\xeb\x5b\x29\x86\x55\xc5\xbd\xa3\x11\xe8\x1d\xf5\xd9\x84\x50\xa3\xe7\xa2\x16\x8e\x69\x4d\xaa\x37\x3f\x93\x82\x54\x54\x5f\x75\xb3\x95\x95\xda\xe8\xbb\x02\x92\x52\xa6\x17\x2a\x7c\x9a\x4d\xb6\xc3\xd6\x93\xdf\x0e\x8d\x78\x6b\x52\xcb\x69\xeb\x21\x36\xc3\x11\x6e\x68\xfb\x5b\x61\xeb\xa1\xb7\xc2\xaf\xe1\x5c\x0b\x42\xcd\x0f\x83\x4b\x00\xd3\xe0\x52\xb6\x25\x1e\x6c\x1b\x6c\xd5\xdf\x06\x5f\xa0\xb0\xee\x7f\xd1\xc2\xba\xff\xd0\x2b\xf4\x20\xd0\x88\x54\x20\x82\x19\x02\x34\x87\x01\x70\xb5\x9b\x89\xe7\x47\x48\xc3\x9a\x29\x05\x79\x7b\x91\x86\x75\x55\x4b\x63\x68\x3b\xb2\x7e\xe1\xad\xe6\x5c\x3a\x5e\xf0\x60\x2b\x58\x5d\x1b\xb7\xb6\x23\x23\xf7\xf9\xbd\x87\x4e\xbb\x7f\x91\x42\x1e\x94\x27\xaa\xf7\x79\xd2\x76\x7f\x7f\x68\xe9\x6f\xbc\xc0\x55\x66\xdd\x17\x59\x2b\x0d\xb3\xee\xc5\xf6\x11\x9e\xc0\xfa\x6d\xe7\x2d\xd8\x4b\x73\xba\xd1\xef\x4a\x72\xec\x8b\xfa\xd4\x20\xc7\x9e\xa7\xa1\xf7\x77\x1b\x27\xa0\x6b\x2d\x64\x9f\xe7\x28\xdf\xc3\x24\xbd\xe3\x4d\xc6\x5c\x6a\xe2\x4f\x5c\x11\x6d\x99\x5e\x4e\x5a\xa6\x57\xa5\x2c\xdb\x8c\x03\x12\x0a\xaa\x32\x11\xfd\xa3\x2b\x88\xca\x92\x71\x94\xc1\x30\xdb\xb9\x7f\xf4\x28\xde\xb2\x9f\xe1\x17\x2c\x18\xf4\xa5\x0b\xfc\x35\x18\x8c\x2c\xac\x65\x2b\x0d\x6b\xe9\x67\xfb\x25\xa1\x5c\x18\x8c\x45\xc4\xb5\x54\xef\x72\x2e\xea\x45\x60\x19\xa0\x15\xb9\x15\x93\xa2\x2a\x77\x5d\x29\x74\xdf\xc0\x8f\xac\x42\xa5\x3c\x1e\xef\x9c\xd2\x78\xa8\xb8\x9f\x6b\x64\x6b\xe9\x15\x79\x23\x44\x88\x45\x1b\x04\x72\x95\xdf\x2c\xe2\xab\x64\x08\x4a\x4f\x19\xdb\x6c\xb0\x0b\x1b\x80\x45\x0a\x74\x14\xfd\xe9\x30\x5a\x34\xae\x3b\xd3\x57\xe1\x0e\x77\x57\xc0\xac\x70\x75\xbd\x2c\xa5\xc2\x56\xa5\x13\x7e\xeb\x0b\xab\x3a\xd3\x98\x8b\x44\x9a\xb9\x7d\x81\x8c\xe4\xea\xba\x1e\x0b\xc9\xd2\x4a\x45\x0d\xa7\x45\x59\xfd\x12\x7a\x8e\x31\x78\xbd\x25\xb7\xa1\x7d\x9e\x93\x72\x33\xb6\x5a\x7b\x61\x18\xa2\xce\x2a\xd9\x58\x9e\x68\x09\xa4\xd4\x4e\xaf\x42\xee\x41\x65\x65\x0e\xcb\x47\xc5\x80\x51\xbd\xd8\x45\xfb\x51\x0b\x91\xe0\xe3\xea\x9a\xc5\x29\x08\xb1\x45\xbf\xf7\xe7\xe6\xf7\xc0\xbd\x2d\x22\xf6\x60\xf2\x74\x77\x59\x62\x8f\xfd\xd5\x12\x7b\x5c\x5d\xe7\x30\x7a\xc4\xe1\xd9\x14\xb7\xc7\x7e\x9a\xdb\x63\x67\x18\x93\x54\x88\x14\x1f\x05\xb4\x19\x35\x73\x4f\xc5\x91\xf8\x4a\x83\xd1\x36\x0d\xc6\x52\x5a\x4f\x53\x86\x84\x37\x1b\x3f\x6b\x33\xc7\x83\x2b\xa1\xc1\x78\x03\x6e\x37\x88\xce\xfe\xa5\xb0\x0e\xac\x9e\x05\xe3\x91\x27\xb9\x35\x16\x8c\xe4\x91\x2b\x23\xc1\xf8\x35\x9c\x73\x0a\x0c\xda\x8a\xe0\x36\x79\x6d\xa5\x86\x0a\x8d\xfc\x4a\x7d\xd1\x2a\xf5\x05\x81\xf0\x16\xc0\x1f\x9d\x4b\x10\xa0\x8d\xab\xeb\x15\x11\x5e\xbc\xd9\xf8\xb9\x74\x6a\x2a\xcc\x9e\x7a\xa0\xda\x65\xba\xc8\x8e\x54\x0d\xa6\x8b\xb6\x06\xf0\x2f\x44\x72\x91\xc7\xfa\x55\x39\xcd\xb2\x0a\x6b\x46\x85\x87\xd5\xf6\xff\x11\x86\x0b\x6b\xf7\x29\x70\x5c\x48\xac\xed\x14\x8e\x49\x90\x9f\x79\xdc\x17\x1c\xc2\x09\xc1\x35\x80\xa4\x32\xa3\x0b\x43\xac\xa2\x21\xe7\x0a\x94\xa2\x44\xd5\xb0\x50\xf2\x56\x02\x1b\xa5\xfc\x19\x15\x58\x33\xc4\x58\xae\x8a\x55\x3e\x56\xa4\xd3\x85\xa2\x6a\xd3\x62\x70\xe4\x67\x43\xe0\x68\x10\xba\xe0\x89\xf0\xc9\xef\x7c\x7c\xf5\xaf\x5f\x7e\xfc\xd1\x2f\xc1\x8e\x02\x86\x1d\x2d\x21\x96\x8f\xaf\x13\xac\xba\x7a\x00\xd0\xca\x56\x5a\x15\x08\xa8\xa0\x6b\xed\x97\x1b\xf1\xbc\xf1\x82\x5b\xf7\x31\xcd\xf8\x46\x60\xc2\x0a\x90\xcc\x0a\x23\x41\xd6\xe7\x97\x3d\x10\x8f\x8b\xaa\xdc\xfa\x93\xb0\x53\xa4\x38\xfb\xca\x83\xe4\x32\x2b\xfb\x29\x01\x98\xd5\x26\xd6\xaf\xc8\xc7\x9e\x0e\xf1\xef\x89\x60\x1d\x82\x6c\x2b\x22\xd6\xaf\xd4\x9d\xb8\x37\x82\x9b\xbf\xd7\x13\xbe\x5c\x82\x58\xbf\x24\x26\x50\x48\xac\x9f\xdf\x78\x25\xb1\xbe\x14\x52\x8e\x2b\xe1\x6f\xaa\xdb\x9c\xf4\x6f\x33\x43\xac\x5f\xaf\x87\x25\x44\xd2\x6a\x5e\xfd\x17\x22\xad\xfe\x96\x54\x76\xed\xd1\x50\x0e\x92\x0c\x78\xc0\x6c\x7f\x59\x1f\xaf\x54\xf0\x8a\x48\xee\x1a\xd4\xfa\x5b\x2a\x17\x84\x94\x48\x5f\x48\xad\x5f\xf4\xf5\x17\x1e\x84\x14\x37\xcd\x76\xab\x31\xc8\xb4\xe7\x17\x1f\xb7\x4f\x90\xda\x7d\x5b\x20\xc4\x7e\xa4\x38\x64\x0b\xa1\x9f\xe5\xe3\x0b\x78\x7a\xf4\x38\x2b\x51\x8a\x30\xec\x48\xd4\xe1\x0d\x22\x0c\x2b\x8a\x2e\x28\xd6\x97\x3a\xb6\xc0\x74\xde\xbc\x88\xc2\x5e\x41\xfc\xa0\x06\x14\xb2\xed\xb8\xc1\xe3\xc6\x0c\x56\x1e\x2f\xa8\x10\x2b\x58\x46\x38\x35\x29\x6c\x4e\x2c\x82\xb6\x2b\xd4\x93\xc3\xea\xaf\x56\x9c\x3e\x3b\x22\x45\x64\xcf\x10\x5c\x7a\x11\x02\x10\xb8\x74\x0a\x2a\xb9\xbd\xe9\x64\x31\x97\xf7\xaa\x06\x70\x09\x24\x74\x45\xc7\x9b\xca\x93\xb7\x0a\xc7\x1b\x71\xbb\x59\x7b\x35\x1d\x6f\xaa\x4b\xb6\x6a\x3a\xe7\x94\x30\xee\xe6\x14\xb4\x69\xe2\xd9\xcb\x38\x65\x3b\xb7\xd8\x7a\x23\x72\xd9\xc4\xba\x5a\x8e\x5c\x56\x70\x83\x2d\xe5\x48\x8b\x26\xe1\xcd\x63\xfb\xd1\x7e\xf9\x61\xff\xd7\xde\xde\xe1\x0f\xc5\x7e\x34\x14\x4e\xc3\x4b\xe8\xcc\x26\xb7\x8a\x5a\xeb\xd2\x8f\xa1\x38\xce\x4c\x61\x69\x39\xd7\xba\x86\xba\x52\xdd\xcf\xd6\xab\xc0\x5d\x32\x0a\x43\xe8\x7a\x01\x99\xc4\x71\x08\x3b\x44\x3f\xf9\xe6\x0e\xb7\x4d\x48\x01\xee\x57\xc9\x00\x4e\xfa\xd3\x3e\x87\x89\x7c\x07\x79\x51\x7d\xaf\x54\x1d\xcf\x5c\x95\xb1\xfb\x73\x8f\xd5\x57\xf7\x5d\xfb\x59\xd1\x5b\xc3\x14\xba\x5e\xee\x61\xcb\x59\xd1\x7a\x83\x34\xbb\xde\xe6\x03\xa4\xd9\xe9\x2b\x48\xb2\xd3\x9b\xa7\xd8\x35\xb0\x9e\xda\x4a\xaf\xab\xa6\x99\x92\x3c\x68\x42\x0e\x97\xa4\x80\x82\xcf\x5e\x84\x22\xcd\xa3\xdc\x6f\x23\x07\x39\x7e\x78\x99\x56\x32\x97\xed\x72\x69\xe6\x5c\x25\xeb\xa3\xc9\xda\x5f\x36\x05\x7a\xd5\x6b\xbf\x61\x02\xb4\xb0\x82\x7a\xab\x5f\xf9\x25\xc9\xcf\x4d\xd6\x7d\xef\x21\xd7\x7d\x79\xd2\x33\xde\x14\xab\x5f\xf3\xbd\xa5\xf2\x9d\xbf\x04\x31\xbc\xf9\x85\x8a\xe1\xcd\x87\x5c\x8e\xab\xc8\x70\x5e\xc1\x6a\xdd\xac\x6e\xab\x17\xfb\x7a\x14\x39\x77\x0a\xc3\x7b\x75\x11\xcf\x2d\xe1\x90\x68\x21\xf2\xd4\x56\xec\xa9\x62\xb7\x25\x04\xcc\xd2\x7e\x63\x89\xbd\x4f\x7c\x74\x94\x75\xa5\xb3\x73\x54\xe2\x11\xad\xe7\x3d\x96\x38\xf4\xea\x76\x7c\x89\x1c\x60\x79\x37\x16\x64\x02\xa7\x2f\xad\x9c\x04\x4b\xe1\x14\xd9\xa4\xe0\x03\xdf\xd7\x58\xc0\x2e\x9b\x7c\xaa\x78\x67\x0b\x02\x6c\x65\x5e\x6b\xbd\x3c\x86\x29\xb6\xa3\x42\xde\x25\x0d\xb7\xe0\xf1\xa9\x90\xc6\x50\x36\x74\xcb\xc5\x22\xdb\x1e\xe8\xc0\xb9\x6e\x3e\xca\xfb\x96\x8e\x9c\x8b\x0e\x7e\x86\x1c\xce\xc9\x09\xf8\x8b\x59\xe3\x82\x9f\x80\xe7\x3c\x31\xbe\xd3\x04\x54\x41\x4f\x65\x1f\x4d\xb4\xc3\x09\x18\x5d\x09\x38\x20\x69\x3d\x77\xa3\x49\x78\xd3\x9d\x90\x2b\x47\xf4\xc2\x0c\x92\xa0\xda\xf5\x22\xb0\xa1\x62\x03\x4f\x01\xbc\xf6\x46\x40\x3b\x0e\x22\xe4\x04\x23\x50\xdc\xc8\x88\x5e\x5d\xa9\x81\xe9\x6b\xc5\xc6\xf1\xb3\x61\x87\xda\xe4\xec\xcd\xf5\x5b\xff\x91\xc0\xef\xcf\xa0\x37\xd3\xce\xbc\x29\x28\x6c\x3b\x44\xa8\x4a\xb3\x85\xcb\xc8\x09\xab\xc2\xdb\x54\x69\x9a\x48\x29\x5b\x36\xa8\xec\xa2\x4a\x83\x2a\x5f\xdb\x60\xc6\xdf\x01\xe4\x90\xf3\xb7\xa8\x4d\x53\x7e\x51\x85\x36\xa5\xaf\x15\xbc\x55\xea\xbc\xec\xd5\x88\x82\x25\xc0\xfe\xf1\x61\x3d\xbb\xed\x5c\xcc\x11\x12\x22\xdc\x1c\x14\xf4\xbd\xe8\xf3\xc3\xe2\xf4\xc0\x75\x21\x88\xa8\xc1\x2b\x7c\x2e\x7e\x75\xcf\xca\xde\xde\x72\xf4\x67\x95\x68\x00\xe1\xe9\xe1\x1c\x11\x9a\x59\xf1\xc9\x96\xfe\x3d\x75\xed\xc5\x6e\x71\x35\x69\x79\xb2\x4e\xb3\xfe\x7a\x3e\xc2\x09\x62\x22\xed\x37\x6c\xe2\x0b\x4d\x9d\x61\xa9\x5a\x2f\x31\x9a\x93\x34\x2b\x45\x6d\x51\x25\x5e\xa7\xaa\xde\x58\x79\xca\x9a\x44\xd9\x96\x86\xb6\xd7\x8d\xaf\xe5\x45\xd7\xa4\xdf\xab\xc0\xe0\xbd\xa8\xc3\x84\x12\x8b\x9e\x91\xa8\x1a\x47\xac\x8f\x42\x52\x55\x21\x15\x67\x73\x22\xc2\xf0\x6d\xe9\x1d\xbe\xea\xc8\x85\x61\x40\x31\xe8\x29\xb0\x3a\x09\xac\xd1\x98\x5c\xc3\x38\x1a\x3d\x5f\x97\x0c\xa3\x6d\x48\x07\xf4\x23\xc7\xd4\x9e\xff\xf1\xeb\x8b\x9d\xe7\xb3\xdf\x4b\xca\x35\xe6\x81\xd1\x25\xf2\xe2\x08\xc0\x71\xd3\x40\x59\x6f\xb3\xea\xae\x4d\x0c\x49\x89\x1b\x6b\xa7\x12\xbf\xd4\x26\xc7\x4d\xbe\x28\x86\xce\xee\x66\xf1\x5d\x3b\xc9\xad\xcd\xd8\xb1\x76\x14\xd8\x59\x96\x25\x41\xd6\x42\x21\x94\xb6\x5a\xff\x38\xbd\x3f\xa1\x85\x10\xb9\x80\xf8\x97\x25\x58\xda\xa2\x6e\x57\x24\x05\x53\x62\x69\x6b\xb6\x7e\x4f\xd5\xfa\x72\xfa\xaf\xa2\xd6\x37\xa0\xff\x6a\xda\xfa\x5d\x55\xeb\x77\x97\x6a\x7d\x1e\x7d\xf4\x92\xad\x57\x02\x99\x25\x7f\x3e\x27\x57\xa1\xc6\xa6\x02\xc8\xbc\x25\x5c\x90\x02\x32\x93\xa2\x65\xd5\xfb\xd8\x6f\x82\x64\xc6\xef\x18\x2a\x54\x81\x38\xe0\xcf\xec\xab\x26\x1e\x25\x6c\xd0\xba\xde\xb5\x9e\xf0\x79\x38\x17\x9d\x28\xce\xb8\x51\x83\xc6\xc4\xd1\xdb\x13\x94\xc2\x36\x10\xad\x49\xb3\xbc\x60\x36\x47\xac\x61\x3d\xa5\x8d\xbd\x6d\x6d\x33\xb1\x72\x11\x7e\x2e\xb6\xba\xd3\x2e\x29\x7a\x3c\x75\xc8\xcd\xcb\x42\x66\xb7\x2b\xcd\x7d\x49\x32\x82\x0c\x99\xed\xe7\xd5\x9b\xc9\x55\x76\xb2\xa7\x05\xc9\xcf\x39\xa3\x7e\x35\x7a\x6a\x31\x36\xa0\xda\xec\x39\x5b\xc3\x34\x7b\x61\x5f\xd4\x6e\x7b\x02\x6e\xf0\x34\x89\x83\x8d\xa0\x87\xbc\x11\x41\x7c\x67\xd9\xaa\xea\x2d\x89\x6c\x1c\xa2\xad\x30\x82\xf8\x74\xce\x79\xd1\x12\x6f\xaa\x56\x84\xc0\xcc\x5e\x9a\x56\xce\x89\x59\x4a\x74\x89\xa8\x9b\xef\xfb\xe8\xf2\x51\xee\xe0\x29\xee\xd0\xf1\xe9\x72\x07\x5c\x81\x1a\x2f\xbc\x32\x3f\x3d\xb7\x76\x72\xae\x38\x8c\xad\x10\xb8\xb6\x3b\x2e\x14\x87\x89\x9b\x31\x41\x53\xff\xd4\x19\x03\x39\x32\xb5\x92\x9c\xe3\xbd\x2a\x7c\x7d\x05\x36\x55\x7a\x7c\xdb\x82\xa3\x8b\x22\x50\x8f\x63\x13\x12\x2c\x7d\x8b\xc2\xd2\xb7\x05\x22\xb1\xe6\x9c\xc4\x3b\xed\xd2\xde\x14\xc8\x73\x05\x44\x5d\xf0\xb8\x79\xb1\x02\x91\xef\x0a\xae\x85\x5f\x15\x3b\xd8\x0e\x9b\x8d\x9e\x87\x4b\x5f\x9a\x1e\x67\xe5\xa4\x25\x75\xf7\x29\xa0\x03\xc6\xdd\x21\x78\xb5\x8a\x7b\x33\xab\x5a\xac\x78\xb7\xae\x8a\x4e\x60\xa7\x4a\xed\xac\x8c\x17\xc2\xda\xb2\xb6\x9b\x16\x66\x42\xdc\x1b\x40\x2b\x20\x15\x26\xde\x5f\x52\xcb\x37\x70\x3b\x17\xb7\x71\x09\x25\xa9\x3c\x52\x13\x7c\x2f\xf3\x71\x70\xc3\x8f\x67\xcb\xab\x50\xbf\x0d\xfd\x14\x92\x9b\x61\x79\xa7\xc5\x93\xc8\xa4\x9f\xf6\xfa\x7f\x8c\x9d\x3f\x82\x22\x6f\x45\xcd\x62\x48\xf5\xdd\x0e\xdb\x19\x63\xa9\xc8\xf2\xb0\xda\xc8\x17\x91\xc5\x87\x58\xa2\x9a\x8a\x12\x30\xf3\x9d\x11\xf8\xb7\x87\x26\x04\x31\x5a\x18\x6c\x49\x29\x3e\xd5\x51\x2f\x4b\x34\x42\x19\x92\xaa\xd0\x90\xdc\xdd\x5d\xd1\xbb\x48\xe6\xbd\x13\x6f\x65\xd7\x73\x3b\x5e\x10\x01\x98\xde\xc2\x9c\x7e\xa3\xe9\x56\x6b\x07\x5f\xbf\x31\x4d\x02\x30\x8f\xba\xcd\x00\x9a\x7e\xdc\x7e\xfd\xe3\x41\x7b\xdb\xac\x06\x3d\x62\x63\xd3\xbb\x9f\xbf\x17\xdf\x81\x1c\x54\x49\x29\xe6\x50\x56\xa5\xf8\x04\xe5\xaa\x51\xc9\x7e\xa8\xd2\x92\x4a\x26\x6c\x1e\x04\xad\x35\x45\x68\x45\xea\x8f\x5e\x8a\xbd\x4a\xe0\xaf\x13\x07\x7f\xd0\xf8\xf0\x76\xcb\xb2\x9f\x57\x91\xa2\x24\x5a\x15\xa5\xda\x47\x2d\x29\x04\x02\x04\xa9\x5e\x20\xca\x9c\x25\xc4\x4d\x3c\x4e\x6a\x89\xb3\x56\x5d\xe2\x40\x84\x1e\x5b\xd8\x7c\xd8\x87\xc7\xbe\xff\x39\xaa\x9c\xd5\x53\x4f\xf2\xec\xd4\x3f\xe0\x77\x15\xdb\x57\x7c\x7f\x1d\xff\x90\x4a\x59\xe8\xa7\xb0\x0d\xed\x68\x05\x69\x1e\xe7\xa2\x03\xb9\x25\x65\xa0\xba\x94\xd6\xf2\x7c\xaa\x64\x6d\xb1\xe2\xa3\xce\x85\x0f\x94\xc2\x22\xbe\xb3\xbc\x84\x84\x8b\x0a\xbd\x49\xef\xbc\xc0\x9b\xce\xa7\xd9\x5b\x8b\x68\xde\x5d\xb7\xf0\x99\x59\xdb\x8e\x4f\xf2\xd4\xa3\x45\xad\xcf\xcf\xf5\xa9\xf3\x19\xbf\xf8\x07\x48\x95\x91\xd7\xde\xa5\x47\xf6\xdb\x79\x3f\x36\xd8\xa6\x51\xcd\x66\x95\x74\x15\xb8\x9e\x13\x3c\x54\x4f\xc9\xcb\x1e\xb1\xb3\xf4\x8d\x0f\xd5\x5b\xe7\x73\xcb\x5d\x55\x7c\x99\xf3\x55\xa2\x8c\x24\x22\x69\x83\xfc\x13\x8b\x3f\x41\xb6\xe4\x08\x9c\x8c\x7b\xa7\xf4\xc0\xab\x5d\x18\xb9\xe2\xd9\x98\xce\xa7\x2d\xd2\xd8\x83\x50\x99\x6c\xbb\x44\x2c\x1f\x9f\x7f\xcb\xab\xed\xb1\x89\xf5\xc8\x27\xe9\xef\xbf\x9f\xbd\x7e\xbd\x35\x09\x1b\xc6\xf2\x67\x30\xfc\x4c\xd5\x94\xc6\xcc\x72\xfb\xf5\x0f\xdb\x9e\x08\x00\xea\xf5\x2b\x11\x60\xf1\x92\x50\xbd\x9d\xe2\x28\x7e\x41\x01\xfc\xde\x4e\xc3\x28\x7e\x5f\xc5\x80\xc5\xd2\x75\x8b\xe2\xf7\x95\x7a\xc6\x0b\xc3\xf7\x84\xb8\x59\x6f\x53\xf8\xb2\x24\x86\x5c\xd4\xe1\x8a\x8c\x5f\xea\x18\x72\xbd\xd6\x6f\xa9\x5a\x5f\xce\xe4\x55\xd4\xfa\x65\x98\xbc\x0a\x5a\xaf\x8c\x80\x4b\x2b\x92\xd3\xfa\xbc\xc8\x09\x80\x6f\x26\xbf\xa7\xe2\xdf\x3b\x75\x3a\x58\x11\x54\x22\x47\xbf\x77\x4a\x82\xdf\xef\x40\x34\x61\x30\xde\x04\xc5\x9b\x7f\xf9\x07\x18\x7e\xbe\x55\x5c\x5f\x3d\x2c\xd9\xd8\x76\x57\x95\xf7\x69\x23\x6c\xde\x7a\xc0\x5c\x3e\x82\x99\xe4\xc7\x47\x14\x19\x2d\x65\xb8\x9c\x08\x87\x54\xa8\x49\x8a\x9c\x8b\x42\xc3\x63\x57\x2a\xa2\xe9\x6a\xbf\x9b\x14\xb8\xb6\xf4\xa3\xcf\x08\xc0\xc0\xf1\x4f\xd9\x5b\x93\x25\xb8\x4d\x23\xe7\xa5\x2b\xb1\x04\x87\x21\x06\xe3\xb7\x79\x39\x84\xfa\x31\xf9\x74\xee\x4e\x4b\x81\xbb\xf4\x84\x14\x07\xef\xfa\x0d\x83\x77\x49\x5c\x6b\xb7\xbd\xc0\x5d\xc9\xca\x92\x3c\x4e\x94\x2e\x4b\xff\x5e\x54\x83\x84\x62\x16\xec\x20\xcf\xf3\x42\xe1\x39\x71\x47\xb1\x67\xb8\xcb\xb8\x3d\x58\x77\x52\xe5\x2e\xf2\x42\x81\x95\xf3\xd8\xc4\xa1\x5a\x3e\x04\xd8\x72\xf8\x6f\xa5\xa1\xbf\x72\x0f\x18\xfd\x2f\xe3\x07\x63\x33\xa3\x79\x81\xa0\xc8\xaf\x4c\x50\xaa\x6a\x14\x14\xcd\xee\x43\x15\x73\xad\x53\xca\xb5\xcc\x3d\x98\xc6\x61\x57\x0b\x2f\x32\x38\x75\x83\x00\xa3\x84\x8b\xa5\x8c\xf1\xb9\xc4\xde\xd9\xf0\xa1\x9a\x54\xa8\x72\x50\x31\x51\x47\x5b\x25\x11\x92\x6c\x9d\x36\xac\xa6\x38\x03\xe6\x51\xad\xa6\xde\xdb\xc9\xff\xfe\xf8\xcb\xf1\x69\xb1\xd5\x44\x49\xb9\xb9\x88\xe5\xb5\xae\xe4\x79\xe6\xdc\x41\x9c\xf8\x80\xfe\xfd\x20\x84\x41\x25\xa4\x37\xe5\x9c\x37\x7c\x36\x24\xb2\xa0\xd0\x15\x09\x70\x36\x2b\x11\xe0\x84\xee\xd3\x26\xc0\xa9\x9e\xdf\xbc\x7a\x0e\x9c\xfe\xd3\xe2\xc0\x69\x9a\xd0\xbd\x27\xba\x99\x9a\x31\x07\xd7\x74\x25\xcb\x8b\x7f\x99\xca\x73\xca\xad\x81\x37\x44\xb2\x41\x78\x76\x76\xad\x9d\xd0\xfe\x16\x10\x8b\xcf\xb1\x26\xe9\x96\x94\x4c\xc8\x4a\xd1\xd5\xdc\x09\x15\x17\x07\x04\xd3\xf0\xba\xfa\xea\xc8\xd3\x6b\x0b\xf3\xdd\x19\x49\xc6\x76\x32\xbc\x5c\x84\x66\x62\x28\x8c\x0e\x76\x7f\x28\xa6\x16\x4a\xb8\x57\xda\x60\xbd\xba\xfe\xba\xaf\xda\x36\xab\x93\x15\x2b\x1f\x9b\x5d\xf5\xd8\x58\x5c\x1a\x09\x83\x54\x42\x25\xa0\xd0\xa7\xac\xbd\x25\x46\xab\x66\x92\xa1\x6a\xc8\xca\xec\x45\xd1\x24\x8c\x37\x07\xb3\x50\x6b\xbf\xf3\xc1\xa0\x9a\xd2\x0a\x50\xb3\x09\xcb\x42\x4c\x86\x6d\xc6\x39\xa4\x95\x4a\x13\x56\x3b\x37\xd4\x23\xb0\x62\x2c\xe7\x03\xd5\x25\xac\xb0\x54\x97\xad\x4a\xa8\xd7\x41\xb9\x4b\xcc\xbd\x52\x9a\xf8\x0a\x10\xea\x8f\x01\x84\xad\x6a\x11\xe3\xff\x0e\xc9\x96\xd0\x66\x30\xbc\xf6\x5c\x10\x69\x8e\xc6\x36\x86\x36\x05\xa3\x89\x13\x78\xd1\x54\xbb\x99\x78\xa3\x89\x36\x72\x02\xed\x02\x68\xf3\x08\xb8\x84\xd6\x77\xee\xf9\xae\xe6\x7a\x11\x82\xde\xc5\x1c\x01\x57\xc3\xfd\x89\xba\xf1\x60\x6a\xce\x08\x69\x0e\x7e\xe2\x85\x17\x10\x72\x1f\xdf\xb9\x05\x50\xbb\x00\xe8\x06\x80\x80\xb3\x00\x53\xd0\x9a\x46\x51\x6b\x96\xe6\x04\xae\x76\x05\x6e\x37\x88\xb9\x41\x98\x80\xba\x8c\x56\xd8\x81\x40\x1b\xcd\x21\x04\x01\xf2\x6f\x29\xb1\xd5\xe8\x8a\xb7\x36\xd2\x66\x10\x44\x20\x40\x6a\x5a\xe1\x19\x80\x53\x8f\x76\x8b\x53\x0b\x4b\x77\xab\xe8\x85\x1f\x67\xe6\x97\x2e\x99\xa7\x0f\x97\x2b\x98\xc7\x95\x6b\x59\xe0\xb3\x9c\xe1\xef\x01\x73\x7c\x52\x99\xd1\x93\x79\x3a\x0a\xaa\xe8\x79\x01\xbd\x2f\x8a\x4d\xa0\xee\x04\x4d\xfd\x04\x4e\xdd\x18\xf3\xad\x69\x99\x9a\x7a\xe5\x7b\xba\x76\x62\x49\xe9\x62\x50\x0f\x7c\xad\x02\x7c\x6d\x8d\xbc\xaa\x2a\x1f\x9a\xa3\x10\x7a\x78\xfc\xd9\x19\x28\x6c\xdc\x4e\x04\xa6\xce\x6c\x12\x42\xd0\xca\x74\xc8\x15\xfa\x1e\x68\xf8\xeb\xee\xc5\xa5\x90\xf4\xf9\x8f\x2e\x43\xdd\x2f\xef\x62\xdb\x56\x72\x88\x15\x3a\xd9\xb6\x64\xcc\x5d\x4d\xc0\x5e\xbb\x3c\x04\x45\xa5\xef\x62\x5f\x5d\x9a\x50\x80\x94\xc4\x6b\x0b\x8b\x90\xc8\x9f\x66\xae\x35\x62\x3f\x46\x1b\xc0\xf5\x1e\x1d\xd3\x77\x8d\x8e\xff\x6f\x3a\xfd\xdf\x12\x56\x81\x98\x9c\x9b\x78\x8e\x94\x96\x34\x8b\x4c\xc6\x45\xf4\xeb\xb8\xd2\x6a\x84\x75\xaa\xbb\xd2\xf6\x2a\xd0\x47\x3b\x53\x40\xbe\xd8\xf8\xe6\xce\x73\x05\x07\xda\x6e\x15\x07\x9a\xe7\xae\xc6\x7d\x26\x66\xdc\xaa\x5d\x69\x09\xa3\xd1\x57\xa7\xda\xe3\x3b\xd5\xf6\x55\x33\x95\xe3\x0b\xad\xb3\x38\xfa\x79\xa4\x8b\x96\xee\x45\x27\xe0\xa6\x76\xbc\x7f\x59\xe2\xc5\x2a\x46\x47\x53\xe6\x41\xbd\x9c\x71\x50\xaf\xcd\x34\x48\xe5\x6c\x1e\xd7\x20\xdf\xfc\x05\x84\x83\x0a\x8d\xa1\x12\xa0\x7d\x25\xc6\xaa\x5e\x46\x2a\xa8\x57\x25\x13\x94\x93\xe0\xf7\x86\x96\x7e\x02\x6e\x92\x01\xd1\x65\xa6\xb0\x23\xd7\x43\x5a\x12\x75\x3e\x61\xee\xfc\x0a\xf4\x60\x2b\x1b\xbe\x06\x16\x4e\x3b\x2f\x6e\x44\xba\x25\x7b\x8e\xe8\xaa\xdc\x18\x87\x70\x2a\xf9\x8c\xb0\x78\x24\xe7\xca\xf7\xf1\x31\xf3\xbd\x78\xf8\x7c\x8f\x6f\xbf\x98\x7a\x88\x8b\xcf\xdd\x1a\x21\x98\xfc\x53\x27\x25\x91\x12\xff\xa4\xb0\x83\xba\x34\xa5\xb0\x60\xae\x1b\xd0\x57\x55\x2b\x00\x5d\xbb\x12\xcd\x83\xb1\x60\x8d\xc2\x60\xe4\xc4\xe1\x5f\x04\x9d\x20\x62\xe8\xf8\x50\x55\x6e\x59\x52\x5b\xeb\x2b\x9f\x82\xca\xb8\xa4\xd6\xf9\x24\xd2\x43\x37\x7d\xf7\xd7\xe3\xeb\x57\x97\x15\xd5\xce\x5c\x24\x6c\x51\x78\xb7\x66\xde\x5b\xe5\x68\x4c\x1d\x25\xb4\x4a\x79\xe1\xe4\x1c\xfa\x5a\x63\xf8\xaf\xae\x4b\xf6\x5e\xc8\x16\x4c\x05\x88\xf5\xfe\x50\xa0\xdd\x22\x42\xa4\x6e\x85\xe1\x8a\x8c\x5b\x45\x15\x86\x1b\x14\x16\x2e\xaf\xcd\x1b\x83\xc7\xb7\x73\x10\xbd\x52\x79\xe5\x14\xa5\xd5\x56\xad\xe2\xbc\x75\x21\xd7\xf1\x3b\x12\x54\x6f\x83\x98\xba\xbc\x9e\xfe\x0a\x05\x79\x05\x9d\x3b\x37\x82\xb9\xc2\xf2\xb7\x35\xf5\x46\x3d\xb7\xc2\x24\xf3\x73\x68\x19\x13\xa3\x2e\x2d\x94\xae\xb0\x62\x7a\x72\xa0\x58\x54\xc4\x62\xf7\x4a\x10\x33\x07\x33\x14\xc6\xed\x0c\x74\xe2\x5f\xe3\x59\x3a\x4c\xbe\x29\xcd\x19\x92\xa0\xbe\x4f\xa8\xdc\xf0\xae\x10\x3f\x5d\x9e\x9c\x4d\xa9\x8c\x3f\xbd\x72\xc3\x5b\x02\xe0\xb9\x36\x4e\xfb\xc9\x94\x1b\x5e\x06\xef\xa3\x54\x9d\x64\xbc\x0f\x9b\xbd\x27\xa3\x37\x09\x6f\x92\x8c\xe9\x6d\x52\xc7\xbd\x19\xe2\x64\x25\x48\x9f\x9c\x6d\x90\x83\x64\x11\x4b\xe1\x64\xa0\x2c\xfd\xb6\x60\x3e\xe5\x40\x9f\x5a\x63\xf3\x34\x8a\x65\xc7\x4b\x80\xd6\x50\x91\x52\x1b\xb6\xa5\x72\xd9\x95\xb3\xdf\x55\xa7\xee\xde\x0a\xcb\x65\xd3\xa5\x51\x0d\xe2\xb2\x97\x86\xb8\xec\x56\x83\xb8\xd4\xc0\x9e\x8b\x5d\xfe\x5a\x3d\xbb\xed\xea\xd9\x75\xcf\xda\x46\xd5\xb3\x63\x25\xb0\xf5\x12\xda\xf1\x93\xff\x6a\x75\xb4\x9f\xc4\x6c\xde\x10\x8c\x0d\x99\x53\x65\xaa\x4a\xa5\x72\xdd\x68\x02\xc4\x67\xe2\xcb\x1d\x08\xd8\x13\xf0\x03\xc7\x21\xec\x2e\xb9\x64\x8a\x6a\x8c\x27\xef\xae\x56\x5d\x5c\x68\x2a\x2d\x31\xfe\x64\xd7\xdd\x92\xb0\x20\x7d\x29\x50\x50\x89\x9d\x43\x92\x77\x0b\xb0\x3f\xa3\x70\x3a\x75\x02\x37\x4a\xbc\x65\x3a\x37\x7e\x74\x48\x64\x72\x10\x62\x39\x0c\xa0\x16\x84\x10\x8c\x01\x84\x54\x4d\xc1\x17\x50\x05\x5b\xb7\xf4\x4f\x17\xbe\x23\xb7\x35\x83\xfb\x09\xb2\x51\xa1\x82\xe1\x28\xf9\xb9\x39\x92\xa7\xf6\x70\xa9\x00\x3b\xfc\x04\x8f\xbb\xb4\x11\x81\xd1\x1c\x82\x8e\xd8\xc9\x36\x46\x51\x86\xeb\x2c\x33\x70\xed\x61\x6a\x6a\x5f\x98\xbd\x6c\xaf\x2e\x55\x55\x95\x7c\xb6\x8a\x2d\x6a\x16\x2f\x79\x5a\xb1\x92\xbc\x3c\x3a\x21\x86\xe2\x04\x3c\x80\x42\x32\xe9\x0a\xb1\x3d\xa5\x90\x9e\x66\xe5\xfb\x97\x4c\xb8\x13\xa3\x2a\x0d\x23\x33\xb1\xf9\xf9\x34\x20\x41\x47\x27\xb3\xbd\x77\x70\x03\xb6\x03\x09\x5a\x11\x07\x58\xcb\x41\x98\xf8\xa7\x34\x12\xa8\x82\x47\x61\xd5\x48\xa0\xdd\xaf\x48\xa0\x2f\x24\x7a\xf3\x62\xf5\x48\xa0\xaf\x88\x9f\x22\xc4\x4f\x22\x49\x73\x40\x3f\x07\xee\xd4\x0b\xb4\x0f\xe2\x65\x7f\x45\xe8\x4f\xba\x16\x86\x1e\x80\x1b\x4d\x58\x91\x16\xaf\xeb\x16\x43\x4d\x48\x16\xfd\x09\xb8\x49\xc6\xee\xe9\xa3\x84\x9a\x26\xaf\xc9\x0e\xb0\xe4\x68\x78\xd2\x90\x9d\xed\xcc\x16\x28\x46\xed\xac\x1a\xb8\xf3\xb4\x54\x51\x15\x6c\x27\x7a\x20\xec\x4e\x4a\xbd\x5b\x5e\x49\x7c\x12\x08\x9e\x20\xfc\x7c\xf1\x7f\x9b\x3f\x4f\xbe\x22\x78\x84\xa9\x79\x32\x91\xa8\xaf\x3a\xe0\x57\x04\xcf\x57\x04\xcf\x57\x04\x4f\x45\xf5\xb1\x3a\x82\x27\xab\x40\xff\x29\x70\x3c\x2a\xc3\xa1\x3e\xae\x24\x31\x4e\x94\x98\x9c\x5c\x74\x8f\xa0\xb3\xa9\x00\x3e\xaa\xf9\xa2\xc0\x9e\xfc\xf1\xfe\x8a\xf1\x51\x28\xf0\x5f\x61\x3e\x5f\x24\xcc\x27\x99\xc0\x27\xa3\x5f\xc9\x1e\x4f\xc9\x26\x7e\xf2\x60\x9f\x64\x38\xbf\xe2\x7d\xbe\xe2\x7d\xf2\x57\xc7\x57\xc8\xcf\x57\xc8\x4f\x4b\x20\x91\x44\xc1\x69\x1b\xf2\x93\x68\xa2\x4f\x19\x7a\xf1\xe7\x82\xfc\x08\xb3\xf9\xa7\x80\xfc\x24\xfd\xa9\xd4\x5c\xa1\xfb\x5f\x21\x3f\x25\x18\x96\x06\x5c\x34\x65\x50\x20\x10\x20\x00\x67\xd0\x8b\xc0\x86\x83\x8d\xd1\xce\x4c\x32\x46\x97\xe4\x9e\xc9\x00\x82\xd2\x06\x6f\x4e\x57\x6b\x97\x98\xfe\x0a\x81\xf9\x0a\x81\xf9\x73\x40\x60\xd2\x91\x89\x86\x01\x0e\xdc\x0d\x2f\xb8\xec\x8c\xc2\x60\xec\x5d\x3e\x76\x78\x63\x0a\xdf\x5d\x04\x47\xbf\x8e\x2a\x86\x37\x1a\x40\x5d\xea\xb1\xbf\x56\x0f\x58\x6c\x97\x07\x2c\x5c\x2f\x1a\x85\xd7\x00\xde\x76\x46\x13\xc7\x0b\xf0\xef\xce\x54\x24\x90\xde\xaa\x44\x20\x1d\x77\xe6\x2b\x81\xf4\x5f\x25\xba\xb1\x33\x6c\x46\x20\xbd\x9c\x73\xbc\x8a\x86\xdd\x0c\x86\xa2\x97\x81\x50\xf4\xba\x10\x94\x6c\x15\x67\x09\x80\x72\x9a\xfc\xac\x04\x9e\x64\x54\x83\x0a\x27\xd8\x0a\xec\xc9\x92\x88\x41\xc5\x68\x01\x77\x83\x1c\x62\x29\xa3\x5b\x3a\xeb\x3c\xc7\x86\x28\x17\x78\x49\x29\x3d\x5e\x31\x41\x2a\xd9\x83\x77\xdb\x8d\x87\x26\xc7\xc1\x38\x94\x22\x6b\x72\xf5\x7e\xf9\x84\xe9\xb2\x7b\x79\x2b\x98\xe2\x18\xa4\xcb\xed\x2d\x3f\xfc\x0d\x5c\x53\xba\x8a\x69\x1d\x3f\xc7\xf1\x02\x06\xc9\xce\xe1\x59\x4f\xb8\x19\x45\x11\x1f\x37\x8a\xfe\x95\x99\x9b\x8a\xb3\x51\x5b\x25\x2b\xd3\xd8\x9e\x96\xb6\x96\x68\x65\xe9\xb2\xe3\xcb\x21\x40\x52\x0b\xaf\x99\x7e\xc4\x05\xcb\xd3\x80\x7f\xfc\xb8\xd7\xff\xf9\x8f\xdf\x83\xc3\x2a\xb5\x38\xf2\xeb\x18\xaa\x74\x0b\x09\x07\xc2\x5d\xab\xb5\x70\x20\x9b\x2b\xd2\xac\xc8\x96\x2b\xad\xce\x11\x57\x98\x14\xec\xd9\xaf\x50\x90\xbf\x8e\xb2\x94\xeb\x9a\x13\x17\x42\x01\x1a\x24\xae\xee\xd6\x2f\x2e\x99\xb9\x95\x0d\x41\xf6\x93\x5b\x1b\xe1\x41\xc4\x16\xc6\x15\x89\xae\xbc\xc0\xad\x58\x39\xb3\x52\x07\x39\xda\xa5\xdf\x13\x5e\xbc\x27\x7c\x59\x52\x7b\xb2\xa8\xdf\xbd\x65\x6a\x4f\xd6\x6b\xfd\xa6\xaa\xf5\x9b\x4b\xb5\xbe\x24\x72\xdc\x62\xeb\x09\x48\x29\xdd\xfa\xde\x8b\x65\x5a\xdf\xab\x5b\x17\xb3\x62\xeb\x95\x20\xa3\xfd\xa1\x0a\x3e\xb5\x9b\x03\x32\xda\x13\x2e\x48\x83\x8c\xb2\xa5\x3f\x8b\xfa\xb8\xdb\x08\x64\x24\x14\xff\x64\x2d\x22\x36\xfa\x1b\xba\xb1\x46\x61\x10\x80\x11\xea\xcc\x60\xf8\xf9\x56\x57\x03\x91\x84\x5b\xb7\x2a\x9f\x15\x5c\x60\xce\x23\xe2\xa2\x40\xe1\x15\x90\x83\xd5\xa4\xba\x60\x3c\xb8\x55\xde\x93\x3d\x75\x72\x5e\x72\x22\xa4\x69\x66\x5e\x52\x0b\x5c\xa5\x3f\x4c\x1a\xc3\xa3\x03\xab\x12\xc3\x50\x3c\xca\xe2\x37\x50\x2c\x3e\xb5\x3f\x33\x99\x41\x52\xb0\x27\x59\xa1\xf8\x7e\x14\x22\xea\x63\x57\xf8\x9b\x8b\xbe\xc6\x26\x2f\x81\x6d\xb0\xec\xcf\x71\x48\xa7\x37\x53\x8d\x55\x51\x7b\xb5\x1d\xf4\x7e\x63\x5c\x91\x28\x1c\xf6\x96\xc7\x15\xa9\x81\x63\x2c\x84\xdf\x06\x3e\x89\xa9\x8c\x25\x15\x69\x45\x90\x71\x2a\xcb\xa0\x3a\x86\x49\x2e\x46\xfb\xa2\xb0\x0a\x6d\xf6\xda\x0f\x19\x90\x9c\x15\x27\x35\x6c\x5b\xbd\x6a\x22\x74\x45\xe8\xa8\x17\xca\xfa\x8f\x35\xcd\xcb\xd5\x01\x4d\xf4\x55\xd4\xce\x2d\xc6\x99\xf4\x1a\xe2\x4c\x12\x81\xb5\xbf\xe2\x92\xb9\x39\x08\x13\x39\x0f\x89\xb5\x43\x86\x98\x34\xc1\xce\xb4\x57\xb4\x34\x3d\x46\x5f\x31\x29\x6d\x60\x52\x96\x11\xdb\x4d\x50\x0c\xdc\x52\x6f\x1b\x91\xc2\x0f\xf2\xa7\x8c\x0b\x58\x2d\x1e\xe5\xd1\x66\xb2\x35\x34\x4a\xfc\xc4\x07\xc7\xa2\x40\x70\xe9\x45\x08\x40\xe0\xc6\x8d\xa8\xd4\xea\xa4\xc5\x5f\x21\x29\xad\x43\x52\x5e\x54\x24\xa7\x89\x04\x1d\xbe\x6d\x1c\x4a\x94\x88\x15\x55\xbf\xda\xc3\x9f\xa8\xc7\xb8\x26\x77\x4d\x1b\x83\x5c\x40\x69\x73\x09\x10\x71\xa8\x47\xc8\x81\x08\xb8\x6d\x0e\x7c\x85\xd2\x53\x7f\x5a\xb4\x4f\x16\x7e\x5d\xc5\x87\x5a\x7e\x4d\x6e\x92\xb0\xd5\x0a\xbe\xa8\xd5\x18\x50\x71\x09\x78\x29\x38\xe1\x93\x4b\xc7\x21\x9c\x3a\xa8\x13\xcc\xa7\x17\xc4\x05\x92\x94\x84\xcf\xc2\x73\xa4\x30\x12\xb1\xa8\x21\xf8\x1d\x8c\x50\xe7\xe2\xb6\x39\x78\x87\xf9\x65\xb9\x9f\x36\x55\x49\xbe\x56\xa0\x4a\x8e\x31\x2d\x1f\xa8\x8a\x90\x13\x10\x3b\xe5\x51\x63\x55\x27\xcf\x37\xf6\x7f\x8a\x2e\x7f\xaa\x83\xe5\xb1\xf4\x10\xcf\xbb\xeb\x42\x10\xe1\xd1\xc4\x43\x28\x14\x8e\x0f\x42\x44\x0c\xb0\xcc\x87\x9a\xa1\xaa\x95\x54\xbe\xaa\x54\x44\x9e\xcc\x51\x87\x4f\x11\xa5\xbd\xe1\x95\xe4\xb3\x80\xa0\x4a\x15\xe5\x3d\x97\x97\x95\x7f\x40\x70\x90\xe7\xaa\x1f\x44\xaa\xdb\x7f\x05\x13\x3d\x44\x7c\x8c\x60\x0d\x88\x13\xbb\x09\xa4\x68\x37\xe3\xd7\x17\x3b\x18\x0b\x34\xdc\xd8\xed\xcd\xed\x7c\x1f\x72\x25\xcb\x81\xf5\x86\xef\xda\xf3\xf3\x3e\xd1\x6e\x44\x5c\x65\x67\x3e\x73\x59\xc6\x26\x4b\x87\xda\x17\xa3\x62\xde\xe8\x8a\x04\xbd\xa8\x9a\x31\x1c\xca\x39\x4f\x37\x0e\x0c\xbc\xe0\xb2\xbe\x76\x2b\xb8\x89\x37\xad\x73\xfd\xc7\xc4\xda\x5e\xce\xa7\x80\xf5\xb8\x08\xc1\x10\xb7\x29\xd1\xdb\xfe\x4d\x9b\xf9\x2c\x57\x35\x69\x90\x9d\x43\xda\xfd\x8a\x1b\x96\xcb\xb7\xba\xb8\xf2\xf0\xd9\xc4\x8b\xb8\x4e\xac\x4d\x9c\x48\xbb\x00\x20\xd0\x5c\x20\xd8\x4f\x4e\xe0\xd2\x12\xbf\xc1\x25\x80\x1a\xf8\xec\x45\x28\xd2\xbc\x80\x28\x77\x23\x07\x39\x7e\x78\x99\xae\xd9\xbb\xec\x78\x28\x74\x8f\xcd\x52\x84\x4c\xc6\x6c\x6c\xb0\x2f\xb6\x9e\xf8\xbe\x58\xaa\xea\x3e\xf1\x3f\xaf\x7e\x53\x1c\xe1\x36\xb6\xba\x25\x5e\x3c\xe4\x8e\xf8\x35\x9c\x0b\xcb\x3d\xe5\x23\x40\xc2\x76\x59\xf9\x9a\x7f\x51\x7f\xc9\x7f\x49\x4b\x71\xff\xcb\x94\xcf\xfb\x0f\xb9\x18\x0f\x02\x8d\x8c\xb3\x76\xe3\x44\x1a\x04\x68\x0e\x03\xe0\x6a\x37\x13\xcf\x8f\x90\x86\xb5\x57\xea\x99\xf3\x22\x52\x9e\xdd\xd2\x58\xa2\x03\x59\xaa\xf0\x56\x73\x2e\x1d\x2f\x58\xbd\x70\x56\xa5\x1b\xe7\x3c\xac\x6e\x64\x69\xef\xa1\x69\x67\x36\x87\xcd\x90\xd9\xe2\x61\x43\x83\x49\xc7\xd1\x7b\xe8\x5d\x52\x50\x68\xb3\xc0\x26\xb1\x51\xd2\x48\x5d\x38\xa2\x11\x4a\x05\xe4\xa9\x02\xc5\x12\x0c\x3f\xdf\x7e\xb5\x56\x7c\x99\xef\x2d\x15\x63\xe5\xc8\xb1\x9d\x9c\x18\x2b\x5f\x16\x0d\x55\x74\x96\xda\x4d\x2b\xd0\xb2\x28\xc7\xf1\xeb\x06\xab\x64\xa5\x2b\xe5\x8b\xb6\x6c\x73\x06\x38\xfd\xdb\x49\xe8\x72\x10\x7d\xce\x6d\x27\x4d\xd6\x4d\x1e\x6a\x50\x58\x37\x35\x39\x4a\xca\xb3\x01\xcb\x9f\xa1\xb7\xc2\xad\x54\x51\xfc\x36\x66\x33\x4d\x1f\x8f\x05\xac\xa6\xe9\x4b\x4b\x53\x4b\xf6\xda\x49\x2d\x69\xe9\xed\xdd\x68\x12\xde\x28\x9a\xc0\x5e\xaf\x19\x3a\xc3\x28\xd1\xd3\xe4\x94\x63\x15\xe2\x4f\x7c\x7a\xcd\xf2\x86\xb6\xa5\xff\xac\x28\xb2\xad\x97\xc3\xbf\xb4\xfa\xd9\x32\xc9\x88\x51\xe9\x9a\x4b\xa1\x51\x18\x5a\xd0\x25\xc4\x05\x8f\xba\xa4\x65\x2d\x67\x31\x95\xb3\x67\x08\xf2\x46\x9d\x0f\x93\xf7\x02\xea\x7d\x6e\xf6\xd4\x22\x5f\xd0\x0e\x89\x1c\xb3\x21\xf9\x40\x21\x92\xfa\x3b\x76\x5c\x52\xe6\xce\x99\x03\x09\x1e\xa7\x19\x16\x4b\xd5\x19\xe1\xb1\x31\x2c\x33\x11\x3a\xb5\x65\x60\xbb\xcb\x35\x70\xae\x97\x59\xab\x6e\xb1\x60\x8a\x2f\x43\xba\x62\x6f\x9f\xb0\x46\x14\x6f\x58\x7c\xbb\x9b\x2b\x55\x7a\x32\x38\x20\x2b\x5a\x4a\x44\x47\x8a\x18\xad\x54\xd2\x14\x49\x98\x92\xfd\xd3\x78\xbc\xf0\x01\xbd\xaa\xc1\xc2\x6a\x48\x7a\xa4\x4e\xa8\x6a\x72\x42\xf7\x45\xc1\x18\xa5\x2f\x6c\x36\x3a\x6d\x2e\xe7\xc6\x54\x7e\xcc\xe2\x49\x82\xc7\xd9\x75\x70\xc0\xc2\x37\x1c\x4e\x98\x0c\x40\xf2\x4b\x3b\x62\x63\x76\xdb\xb9\x98\x23\x24\xc4\xbb\x39\x8c\xfd\x7b\x51\x5f\xdc\x19\xca\x8d\x2a\x7c\x5b\x2f\xc1\xef\xd5\x4a\xaa\xdb\x59\xb5\x04\x6a\x48\xb5\x25\x3c\x1d\x39\x17\x1d\x2c\xc7\x64\xec\xdf\x30\x93\x05\x23\xe4\x5d\x29\xf4\x75\xce\x2b\xc7\xa0\x05\x49\x56\x0b\x75\xd0\xf8\x68\xa2\x1d\x4e\xc0\xe8\x4a\xa6\xe5\x95\x25\x0e\x37\x13\xba\x13\x72\xc3\x88\x5e\x9f\x41\xc3\xf7\x6a\xdd\x27\x62\xfd\x55\x6e\x5c\x79\x95\x92\x3c\x00\x3c\x3d\x53\x10\x4d\x3a\x97\x0e\x02\x37\xce\xad\x0a\x88\x5b\xa5\xdf\x6c\x75\x81\x4a\x7d\x76\xe2\x8b\x6b\x74\x38\x73\x93\xc2\xc8\xd8\x8d\x2d\x8a\xba\xed\xff\x69\x16\x21\x08\x88\x5d\x54\xde\xfe\x79\x7c\x71\x8d\xf6\x67\x6e\x6a\xb5\xfd\x47\x9f\x67\x61\x04\x5c\xed\x83\x83\x26\x95\xfa\x00\xe8\x0d\x33\x72\x7d\x8d\x6e\xa8\xee\x53\xf4\xa4\x62\xb3\xcf\x9c\xcb\x48\x5b\xd7\xde\x91\x28\x77\x79\xa3\xa7\x00\x39\xd4\x2a\xac\xde\xe0\xf4\x3d\xc3\x61\xa5\xea\x00\x92\xdc\x08\xe7\x88\x80\x2e\x44\x89\x64\xe9\xdf\xd3\xd0\x67\x12\x53\x4f\xf3\x0b\x67\x2d\x7d\xa6\x48\xb2\xa8\x7e\x52\xea\x80\x4d\xf9\x0e\xc1\xfb\x13\x8d\x75\x98\x09\xb1\xd6\x8d\x1c\x2b\x0e\xfd\x74\x6e\x52\x42\x97\x4c\x5a\x28\x8d\x4a\x35\x28\xd0\xf6\x32\x58\xa0\x27\x9b\xb7\x5d\x9c\xad\x2d\x82\x69\xe2\x19\x95\xf1\x3a\x7c\x82\xc7\x12\xe7\x0e\x01\xce\xc4\x64\x37\x96\xee\x45\x1d\xb6\x29\x1c\x08\x9d\x5b\x82\xf3\x99\xce\x9c\x51\x3a\x0b\xdc\x89\x22\xef\x12\x3f\xb6\xc3\x17\x22\xb9\x30\x0c\xf0\x69\x98\x62\xe7\x69\x8a\xbb\xe1\xc7\x4a\x3b\xd0\x9b\x0d\x47\x38\x0f\x1e\x15\x84\x33\x1b\xbd\xd8\x3b\xdc\xf9\xdf\xd3\x62\x10\x0e\x4f\x02\x40\xce\xe5\x25\x70\x0f\x62\xf8\x0d\xcb\x79\x8f\x01\x39\xf5\x60\x36\x7b\xf5\x5d\x9e\x2f\x14\xc7\xb6\x88\xb2\x60\x26\x6e\x72\x8a\x9f\x89\x2d\x06\x8d\x34\x4b\x5d\x45\xfa\x80\x55\xa5\x88\x67\x60\xe4\x00\xae\xb7\x87\x59\x02\xc0\x7e\x7b\x80\xeb\x44\x69\x9b\xfb\x0e\x94\xf3\x57\x58\x74\x8e\xad\x47\x3a\x6d\x1d\x41\x45\xc8\xe8\x77\xfd\xea\xc4\x47\xb5\x94\xd2\xe5\xbd\x38\x78\xa4\x92\x01\x3e\x73\x2e\x2b\x58\x87\xf2\x3d\xb1\x6a\xff\x00\x76\x13\x0c\x6f\xea\xdb\x4c\xa9\xe3\x90\x1b\x86\xcb\x18\x41\xf1\x48\xb8\xe5\x76\xb2\x94\x55\xb6\x99\x7e\xb7\x62\x31\xa7\xeb\x14\xf1\x4c\x02\xc9\xb0\xdb\x21\x1b\x33\x63\xd1\x65\xb8\xba\xf1\x8d\x1f\x42\x88\xc4\xbb\xd8\xdf\x29\x45\xa4\xe2\x30\xfc\xff\xff\x7f\x7a\x36\x3b\xb3\x6f\xe9\x06\xbb\x8d\x3b\x38\x6b\x20\x7c\xcb\x17\x5c\xb5\x61\x4e\x0f\x13\xbd\x7c\x20\xff\x1c\x77\xbe\xbc\x29\x6d\x5a\x99\x4a\x34\xf0\x12\x90\x01\xbd\x24\x22\x4d\xd3\x2d\x1c\x08\xb4\x20\xd4\x1c\xd7\x25\x31\x1a\xc7\xd7\x62\x29\xd5\x95\x70\x78\x95\x49\xf4\x4b\x2f\xee\x2b\x23\xc7\xb5\xd0\xc8\x21\x39\x9a\x3b\xb4\x60\x11\x3d\x72\x88\xf2\xe2\x10\xac\x2f\x51\x6b\x6e\x3c\x34\xe1\xb0\x63\x51\x59\x01\x01\x82\x14\x44\x5c\x9b\xaf\xa6\x40\x8d\x68\x4d\x31\x91\xec\x97\xc7\x26\xb3\xe9\x79\xb7\xf3\xc9\xde\xbb\x72\xdd\x24\xd6\x34\x57\x54\xd6\x32\x1b\x73\x15\x95\x0e\xf6\xea\x2c\xe6\x93\xa8\xb9\x75\x02\xb1\xad\xa8\x1a\x5b\x59\x77\x06\xf7\xd0\x53\x33\x98\xb0\x0d\x90\xf9\x6d\x47\x15\x29\xde\xe9\x67\x13\xa0\x8d\x43\xdf\x0f\x6f\xbc\xe0\x52\xf3\xbd\x08\x69\xd1\x24\xbc\x89\x34\x2f\x70\xbd\x6b\xcf\x9d\x3b\xbe\xf6\xe3\xd9\xd9\x07\x8d\xac\x39\x8d\x2d\x40\x0d\x4d\x60\x38\xbf\x9c\x68\x47\xc1\x75\x78\xab\x8d\x43\xa8\xf1\x60\x49\x92\x54\xe5\x7b\x57\x40\xfb\x00\xc3\x29\x40\x13\x30\x8f\xba\x34\x4b\x64\x1a\x62\xb9\x72\x11\xce\x11\x85\xb2\x78\x81\x16\xce\x61\xad\xfc\x17\xb1\x74\x84\xc0\x23\x57\x94\x6b\x44\x80\xb6\x1b\x14\xe7\x08\x1d\x56\xd7\x82\xc6\xbc\xc5\x2f\xff\x1f\xed\x5f\x87\x74\x96\x31\x4f\xcd\xe9\x4f\x1d\x52\xda\x19\x04\x59\xf2\xb3\xd2\x95\xe3\x8a\x69\x49\x45\xe2\xb1\x9b\x47\x21\x96\x8d\x4c\x91\x69\x20\xed\xcc\x49\x08\x4e\x94\xfe\x8a\xcb\x6d\x98\x3d\xfc\xfb\x45\x8e\xe1\x7e\x91\x63\xb8\x42\xc0\x27\xef\x6c\xd2\xf3\x92\x7a\x57\x50\x19\xa8\x49\x4a\x67\xd9\xc9\x99\x3a\x3b\xbf\xee\xa3\xc7\xdb\x47\xb9\xea\x61\x25\x52\x83\xc6\xac\x7d\x55\xb4\x1c\x6b\xab\x40\xcf\x29\xd4\x6e\x68\x82\x54\x5c\x91\x31\x94\xd3\xa7\x44\x65\xa6\x05\x15\x46\x54\x38\x5a\xd3\x62\x24\xef\xff\x23\x6b\x31\x1f\xdf\xfd\xfb\xf8\x6c\x6f\xe7\xd7\x62\x2d\x26\x97\x8c\x4f\x4a\x6d\x8b\x00\x1c\x37\x4e\x6a\xaa\xcc\xbf\xa7\x76\xb7\xf4\x2a\x55\xcd\xeb\xf3\x7a\x4b\x84\x74\xab\x80\x27\x6d\x37\x0b\x78\xda\x19\xd6\x63\xdc\xca\xd0\x55\xed\x29\x78\xd2\xc8\x22\x28\xe6\x47\xab\xd4\x31\x8e\xc6\x92\x38\xba\x76\x86\x95\x39\xba\x0a\xfa\xbb\x1c\x47\x57\xbd\xd6\xef\xab\x5a\xbf\xbf\x54\xeb\xf7\x57\xd3\x7a\x25\xc3\xd8\x56\xca\x2f\xdf\x66\x19\xc3\xa2\x3e\x2e\x5d\xc6\x50\x11\x32\xed\xf5\xf2\x1d\x98\x2c\x40\xaa\xb0\x29\xb8\x47\x3d\xbe\x42\xe4\xfc\x51\x5d\x98\xa7\x93\xa5\x1f\xb0\x32\x2b\x45\x92\x28\xe2\x04\x72\x12\x8a\xed\xd6\xaa\xcb\xe1\x56\x79\xc1\x6c\x8e\x58\xbb\x7a\x4a\x6e\xac\x6d\x6b\x9b\xc9\x85\x8b\xf0\xb3\x9e\xc3\x96\x95\x55\x89\xe9\xa1\xd2\x21\x37\x2e\x5b\xb3\x6e\xbb\xd2\xb2\x2b\x59\x75\x32\x2b\x53\x3f\x09\x8d\x55\xc7\x42\x15\x3a\xd7\xf5\x33\xca\x7f\x44\x4f\x1d\x46\xf9\x54\x9b\xa2\x4b\xe5\x2c\xdc\x4d\xd7\xe7\xa3\x60\xd9\xd3\x24\x77\x6a\x04\x3d\xe4\x8d\x88\x1e\xd9\xc4\x07\x98\xf1\xd9\xc6\x79\x2b\xc3\x96\x32\x03\x45\xfc\xe0\x5e\x5b\xa9\x27\x5a\x3e\x23\x8f\xa6\xa9\x5d\x8a\x82\x5a\x9d\x50\x6a\x17\xe3\x21\xba\x7c\x70\x3b\x78\x66\x3b\x74\x68\xba\xdc\x53\x5f\x10\xdf\x2c\x71\x85\xd6\x72\xa8\x26\x23\xd7\x42\xf6\xcb\x0a\x86\x83\x1a\x6e\xb8\x25\x13\x34\xf5\x4f\x9d\x31\x59\x2f\x49\xee\xd2\x12\x03\x50\x96\x96\x52\x31\xd7\x65\x37\x07\x92\xdd\x12\x9b\x99\x28\xee\x12\xfe\x4b\x89\xd2\x6c\x8b\x52\x9a\x6d\x0b\x7c\x70\xcd\x28\xcd\x76\x56\x45\x69\x26\xc9\x6c\x85\x1b\x43\x88\x41\x78\xb1\x7e\xa2\xc6\x3b\x54\x4e\x67\x12\x3b\xb5\x3c\x07\x59\x6b\xce\x0a\xe9\x71\xab\x61\xa1\x5a\x66\x13\x02\x3a\x52\xf8\xad\xdc\xf4\x11\x37\x5e\x56\x4f\x58\xd1\x56\x6c\x9b\xbc\x65\x47\xc5\xcc\x52\x6e\xbb\xb3\xd0\xcb\x52\x51\x0a\xa4\x08\x4b\xe4\x31\xa8\x5c\x52\xeb\x33\x70\x29\xe7\x09\x45\x51\x48\x20\x0b\x06\xc1\x98\x02\x78\x09\x3a\xdc\xb4\x6e\x46\x8e\xc2\x20\x22\xb1\x69\x96\xe2\x46\x21\x2e\x87\x25\xdd\x0a\xd2\xda\x6a\xcb\xad\x10\x63\xa5\x1e\xd9\xa5\xf0\xc7\xd9\xe6\xfc\x7d\xf8\xfb\xfb\x0a\x81\x91\x7a\x3e\x82\xad\xfa\x2e\x82\xed\x3c\x23\x66\x85\x71\x0f\x41\xda\x6c\xe2\xf5\x96\x5c\xc3\x6e\xbc\x8c\x72\xb4\x27\xb5\x7a\x75\xc6\x6f\xd8\x52\x68\xc5\xfd\x8c\x27\x93\x9e\x84\xe4\xa6\x96\x22\x28\x9a\x08\xe7\xb8\xec\x64\x0e\x2a\x5d\xc4\x68\x34\xf6\x7b\xb7\x7e\x9c\xac\xf0\x30\x29\xf7\x81\x6b\x69\x3f\x38\x9e\xf6\xd5\x27\x27\x37\x48\x93\x53\x38\x87\x73\x56\xae\x00\xc6\xac\xbe\x7a\x09\x3a\xb4\x78\xf5\xd2\x15\xfb\x2e\x2f\x1c\x59\x67\x7d\x32\xc5\x8a\xb7\x34\x57\xa9\x92\x79\x8a\x33\xaf\xff\xba\x90\x53\x0b\x99\x04\x58\xe8\x39\x43\x88\x53\x82\x50\xe3\x63\xfc\xf4\x17\x75\xb9\x46\xb3\xbc\x36\x93\x00\x27\x56\x16\x8b\x88\x07\xbc\x2d\x85\x61\x2e\xc0\xe6\x1f\x57\x63\x78\xf3\xfe\xf8\x66\x7e\x33\xa9\x19\x84\xc8\x4f\xbd\x56\x40\xb5\x33\xd1\x8a\x15\x87\x29\x96\x80\x4b\xc8\xf8\xee\x9d\x2a\x1e\xf4\x1e\x0f\x6c\x90\x72\x15\xaf\x41\x84\xbc\x80\x84\x09\xc9\x1a\x53\x45\x38\x76\xb2\x8e\xbd\xed\xe4\x19\xcd\x22\x1c\x42\x53\x0b\x02\x1a\xf9\x1d\x2a\x2f\xdb\x11\x37\xb1\x9f\xe3\x54\xdf\x12\x2e\x48\x39\xd5\x77\x33\x57\x17\x8d\x41\xc5\x6a\x38\xb2\x4f\x7d\x37\xe3\x52\x17\xbd\xe8\xab\xac\xbc\xa1\x7c\x4f\x3b\x95\x37\xca\x78\x2a\xaa\x02\x8d\xca\x62\x00\xb8\xb3\xec\x9b\x24\xa1\xa7\x16\x21\x89\x8a\x43\xfa\xc5\x97\xe1\xbe\xe7\xb2\x38\xa1\xa0\xa8\xee\xc3\x17\xb7\x1a\x3d\x83\x72\xfc\xfa\x5b\x95\x96\xfe\x56\x75\xbf\xfe\x36\xf5\x95\x37\x71\xef\x67\x67\x8c\xa7\x63\xee\xaf\x36\x77\x7b\x55\x2e\xf7\xc4\xb5\xd6\xeb\xb5\x4d\xf6\x34\xd9\x2a\xd4\xcf\x6a\x7a\xb6\xe2\x73\xbf\x8b\x28\x45\x0e\xde\x90\x55\x3c\xec\xcb\xaa\x76\x99\x41\x7a\x30\x6a\xa9\x56\x46\x88\x39\xdd\x1f\x70\x7c\x7e\x08\x43\xd4\xda\x22\x2a\x1f\xa1\x7a\xc0\xa9\xb4\xeb\xa1\x02\x70\x2a\xcb\x91\x50\x17\x03\xb5\x7c\xac\x49\x3d\xb7\x63\x36\xd2\x25\xf1\xa5\xe5\x51\xf9\x8d\xad\xa0\x9e\xc2\x1e\xa9\xc2\x81\xd3\x52\xc0\x25\x73\x40\x15\x47\x5d\x58\x15\x9e\x17\xcd\xa3\x2e\x84\x1a\x74\x25\x61\x97\xec\x59\xab\x86\x90\x12\x53\xe2\xfb\xd8\xb2\xc8\xd6\x98\x21\x4d\x4c\x15\x99\x61\xf9\xf7\x39\x35\x88\x6a\xaf\x02\x69\x34\xfe\x82\xf1\x9a\x52\xb9\xa5\x60\x75\x0d\x42\x4d\xcc\xd7\x5e\x9d\x72\xa8\x2a\x17\x52\x15\x97\x59\x22\x26\x1e\x22\xf8\x53\x29\xcd\xa6\x94\x8b\x96\x84\x83\x28\x2f\xbf\xb5\x6f\xbd\xa8\x05\x03\xad\x00\xf7\x44\x31\x27\x7e\x0c\xf9\xcc\x8b\x12\x29\xa2\x3d\x02\xaf\xfe\x1f\x29\x8f\x0c\xe5\xc3\xad\x1a\x0d\x8a\x83\x3f\x2d\x38\x72\x92\x13\x68\x49\x4f\x0e\xe3\x73\x79\x54\xdf\xcd\xff\xfd\xdf\x55\xff\x8f\x0f\x9f\x4b\x52\x74\x25\x9e\xfc\x28\x41\x92\x11\x11\x8b\x9c\x8b\x88\x71\xe7\x53\xa8\xb4\x18\x75\x63\xc7\x14\xcf\x63\x62\x3c\xc6\x2d\x53\xea\xd7\xf0\xea\xc8\xe7\x6a\x09\xa7\xfe\x76\x7d\xea\xc1\x68\x63\x1c\xc2\x0e\x2f\x76\x96\x61\x1e\xec\x57\x61\x1e\x7c\x30\x66\xca\x25\x79\xf1\x2b\x1d\x20\x8d\xa8\x77\xf5\xc7\xe0\xc6\x2f\x95\xb1\x75\xba\xbd\x1c\x3f\xbe\xc4\x73\xd4\xdf\xca\x74\xb3\x65\x86\xfc\xac\x55\x5d\x85\x80\xb9\xbf\x2b\x22\xa2\x57\xc4\x91\x2f\x29\x51\xbb\xed\x43\xe1\x1a\xf0\x30\x37\x44\xa3\x91\xd6\xb7\x07\x47\x6b\xa2\x59\xb5\xc2\x97\xbf\x2a\xad\xa7\x57\x4e\x12\x9a\xc3\x9a\x5f\x73\xb7\x2c\xcb\x9b\xbf\xfa\xdd\xd2\x90\xae\x5c\x5a\x6d\x3b\x0f\xb1\x57\x4a\xe8\xf3\x9b\xee\x94\x9d\x87\xde\x29\x4d\x79\xf4\x57\xb6\x17\x76\x96\xa2\xd3\xff\x52\xe4\xf9\xf6\x17\x2d\xcf\xb7\x1f\x7a\x95\xae\x82\x60\x7f\x65\x2b\x58\x4d\x4e\x55\x11\x7d\x9c\xf5\x85\x65\x9e\xbf\xd5\x58\x35\x6b\x4a\xb7\xdf\xdf\x11\x4e\x16\xc6\x8f\x2d\x97\xee\xb7\xf4\xb1\x07\x23\x44\x0d\x37\x95\x2e\x4a\xf4\xf0\xaa\xfe\x09\x35\xd7\xff\xf6\x32\x6c\xfd\x7a\x33\x06\xf6\x0a\x76\xd0\x0c\x86\x9f\xbd\x2f\xdc\xfa\x49\xc2\xb1\xfb\xd9\xf0\x1a\x8b\xea\xe7\x57\x33\xcf\x67\x4c\x57\x6a\xf5\x49\x82\x59\xe3\x92\xf2\xab\x9c\x4f\x62\xbf\x5c\x03\x78\xdb\x19\x4d\x1c\x2f\xf8\xb3\xce\x65\x85\xb2\x09\x95\xd3\x9d\x24\x81\x9a\x8c\x93\x34\xe9\x2f\x92\xc6\xe8\x64\x60\xf5\x14\x0e\x42\xd5\xdd\x74\x54\xa3\x24\x28\xdb\xdf\x91\xa3\x3c\x7c\x9a\x50\x38\x0b\xfd\xf0\x92\x56\x9d\x64\xb4\xf1\x96\x2e\xa0\x88\xf4\xd8\x89\x41\x3e\x23\x10\x50\x9a\x5e\xea\x7a\xc1\xc7\x7d\x02\x7f\x4d\xa5\xe4\xd2\x84\x84\x77\x20\x9a\x1c\x05\xce\x85\x0f\xe2\x92\x17\x54\x5c\xe1\x1f\x62\x91\xa5\xa4\x49\xed\xc7\xc8\x0d\xa5\x4f\xd7\xca\xa8\xf7\xdb\x6a\x3e\x55\x2f\xb8\x84\x20\x8a\xd2\x94\xaa\xf2\x3f\x95\x9f\x86\x00\x9c\x12\x24\x4e\x70\x99\x4b\xd2\xda\xb0\x45\x24\x64\x66\xa5\x86\x51\x42\xc1\x2c\xd7\xaa\x3e\x09\xa4\x01\xc7\xd5\xe2\x99\x24\x04\x0d\x11\xe7\xc9\xe6\xc9\x10\xba\xe2\x65\xca\x9d\x54\x6d\xaa\x53\x27\x93\xb0\xe9\x76\x8b\x7a\x95\x26\x08\xad\x0d\x08\x78\x98\x5a\x11\x32\xdd\x63\xe3\x88\x0b\xdf\x8a\x9d\x29\x40\xd0\x1b\x45\x1b\xe2\x73\xa3\x6c\x8c\x8f\x7b\x53\x99\xff\x2b\x8e\x5f\xf1\x28\x1d\x15\x1c\x59\x00\x77\x91\x86\xf6\xc2\xea\x6d\x5a\xbd\x1e\xbe\xad\x31\x21\xdd\x92\xa5\x33\xb8\xe2\x5b\x5a\x38\x83\x5f\x58\x5a\xb8\xe2\x45\xbb\x65\x33\x96\x0d\x03\x57\x1a\xc4\xe6\x2c\x86\x02\xc2\xa4\xb8\x1a\x85\x64\xb7\x94\xd5\xa3\xd8\xce\xe3\xd5\x2f\xe0\xea\x2d\x34\x23\xd2\x01\xdc\xba\x85\x29\x64\xc9\x54\x5a\xa4\x22\xfd\xba\x4a\x65\x2a\x6a\xbd\xa3\xcd\xd9\xaf\x51\xda\x21\x4f\x93\x2c\x39\x2e\x54\x14\xe3\x4d\x58\x1f\x85\x2c\x92\x32\x26\x77\x05\x13\x01\xfb\x83\x9b\x31\xbb\x96\xa0\x90\x0c\x87\x2a\xb5\xb2\x90\xbb\x3a\xd6\x65\xf2\x76\x3e\xa9\x96\xd0\x4d\x5e\x91\x3a\x8d\xf6\x2b\x5d\x4e\x2c\xd3\x2c\x5a\x53\xec\x84\x58\x86\xbe\x66\x27\xde\x7a\xc1\x15\x70\x13\x61\x54\xd2\x97\xb4\x4c\x2b\xe9\x4b\x46\x04\x96\xf7\x45\x08\xbb\xd7\xee\x8c\x82\xc4\x5d\xdd\x8d\x7c\x02\x77\x75\x3f\x54\xdc\xed\x65\x1d\x49\x14\xd9\xfa\x1d\x39\x4e\x94\xe0\xe2\x8e\x08\x2f\xa9\xd4\x91\xcc\xf5\x95\x3a\x12\x6b\xe1\x4d\x7a\x92\xa8\xf0\x65\x5d\x49\x5e\x53\xb1\x2f\xe9\x1b\x2a\x74\x86\x5b\x11\xf5\x7b\xf2\x91\xdb\x1f\xc5\xdd\x88\x5f\x50\xa9\x0f\xa9\xab\x2b\x74\x80\x1a\x3f\xf5\x85\x15\x49\xe6\x2b\x11\x54\xd4\xae\xaa\x24\xa4\x84\x4b\xa5\x46\xa7\xfe\x69\x60\xba\xb6\x7b\xb4\xd5\x2c\xf3\xa2\x38\x69\xf2\x1c\x1b\x35\x9d\x19\x73\xaf\xc3\x91\x09\x35\xdc\x17\xed\xfb\x2d\x6a\x07\xda\x15\xfe\xbf\xfd\xc4\xd9\xe8\x3a\xd1\xe4\x22\x74\xa0\xfb\x69\x0e\xfd\x4f\x31\xc6\x24\xb1\xef\x1b\xd6\x69\xcc\xa2\x49\x59\xf8\x20\x56\xdc\xe2\x37\xb3\xb9\x2d\x04\x9a\xee\x35\x6b\xb9\x6a\xaa\x5e\x3b\xc8\x19\x81\x80\x82\x47\x4e\x05\x4b\x96\x59\xa5\x49\x81\xc4\xcc\xad\x0c\x36\x94\xa4\x4a\x48\xb9\x19\xc5\x9a\x6f\x86\x4e\x47\xbe\x50\x4e\xbf\xc8\x25\x23\x93\x6f\x92\x13\x43\xc4\x02\x19\xc9\xce\x5d\x02\x55\xfb\x7e\x06\x02\x2d\x1e\xe6\xba\x50\xd8\x6a\xb2\x42\xf5\x18\x55\x79\xdd\xb6\xe5\x4a\xcd\x5a\x44\x39\x6a\xf3\x6e\xd6\x19\x5b\xe0\xc3\x58\xce\x4f\x1b\x77\xab\x4a\x31\x93\x4c\x95\xce\xcc\x5a\xe6\x28\x2c\xe6\x74\x4f\xf0\x55\x04\x8a\xc5\xba\xb2\xc5\x9a\xcd\xb1\xac\x0c\xe0\x3a\xcc\x84\x25\xea\x0a\xa5\xac\xa8\xe8\xa5\xf2\x52\xe2\x84\x94\xa0\x61\x65\x93\x4a\x94\x35\xcd\x4e\xae\xda\x2b\x7f\x57\x19\xa1\x22\xa0\xc9\xf2\x30\x55\x05\x5e\xce\x16\xaa\xa2\x88\xb8\xc8\x64\x4d\x30\xe8\x63\x49\x01\x13\x82\x8f\x80\x20\x70\x01\xec\x70\x41\x2c\x95\x47\x49\x4a\xa8\x78\xea\x6a\x29\x31\xd6\x92\x56\x65\x61\x6e\x6d\xfc\xb5\x0a\xe3\x89\xff\x74\x3d\xb7\xe3\x05\x11\x20\xc8\x75\xca\x1f\x32\x72\x02\x8e\xf2\x24\xa0\x4f\xda\xd0\x16\xaa\xab\x10\x95\xa9\x05\xa0\xe6\x06\x2b\x47\xf2\xb8\x70\x4d\xe7\xe6\xe0\xbf\x3f\xfc\xbe\x39\x2f\x82\x6b\xae\x9c\x95\xa3\x3f\xcc\xb2\x72\x30\x10\xa8\x60\xd2\xd7\x46\xd7\xc8\x92\x24\xc3\xeb\x0b\xc1\xcc\x77\x46\xe0\xdf\x94\xfa\xbe\xdc\x74\xaf\x10\x34\xc9\xc1\x13\x15\xf4\x6f\x5e\x98\xd9\xb8\xd2\x0e\x66\xed\xe0\x95\xf4\x50\xf0\x67\x3c\x70\x07\xb3\x3e\xdb\x06\xfd\x6b\xa1\x1d\x59\x3b\xbd\x5a\xfc\xad\xf9\x97\xb5\xa8\x0a\xc8\x56\xee\xc4\x12\x55\x92\xa5\x29\xde\x82\xe6\x12\x93\x4a\xbb\x96\xe4\x66\xe2\x4f\x79\x54\xd9\x79\xfc\xf9\xea\xf6\xea\x87\xe0\x43\x43\xae\x64\x92\x6d\x46\x8b\xe5\x89\x4c\x04\xab\xe4\x49\x6e\x46\x3f\xf0\x42\x5e\xef\x15\xd8\x07\x78\xd9\xe5\xde\x5e\x31\xad\x72\x41\x1d\xf9\xde\x5e\x33\xd2\x81\x4d\x11\x73\x16\x33\x75\x51\x83\xbf\x80\x85\xa0\x52\xbf\x5e\x0c\x13\x52\x85\x2c\xc3\xc0\x6e\x29\x2f\x71\x51\x77\x2b\x72\x2c\x28\x79\x89\xeb\x35\x7e\x47\xd5\xf8\x9d\xa5\x1a\x9f\x87\x7a\x58\xae\xf1\x4a\xfa\x87\x17\x69\x57\x4d\x53\xfa\x87\x5e\xaf\x56\x17\x1b\xf1\x3f\xe0\x77\x0c\x15\x16\x92\x25\x67\x09\xa6\x49\x10\xa8\xba\x2d\x43\xbf\x2a\xd9\x88\xf9\x65\xe7\x96\x67\x2d\xd6\xdb\xa5\x3c\x90\x43\x6a\xe9\xac\x17\x25\xdb\x01\xd9\xc5\xa9\x84\xd4\x32\xf2\xe2\xac\x69\xce\x41\x77\x31\x3b\xb0\xa5\x1f\x31\x27\xd3\x29\x7b\x43\xb2\x2e\xb6\x89\xb3\xa9\x7c\x79\x94\x08\xab\x65\xb9\x8f\xc5\x79\xed\x8b\xc5\xec\x99\x7f\xea\x41\x40\x7b\xad\xe7\x2e\x6d\x3e\x36\xe2\x4b\x31\x90\x59\x98\x49\xc1\xac\xe7\xc9\x84\xa6\x60\x2f\xbd\xd5\x0c\xed\xf4\x6c\x14\x27\x68\xef\x35\xa2\xc5\x4d\x50\x00\xbb\x6d\x65\x67\x97\x08\x06\x29\x35\x5b\xf4\x53\x24\x79\xda\x5c\x84\xe6\x55\x11\xd6\xe3\x06\x0b\x52\x78\x5b\x41\x57\x58\xc3\x0f\x24\x0f\xc4\xb2\x89\xd9\xfa\x9f\x8c\x2e\x4e\xaa\xff\x93\x18\x43\xab\x3b\xaf\x96\xcd\xc4\x5e\x16\xa7\xd3\x30\xb9\xba\x82\x77\xaf\x2c\xa9\x89\xa5\x5f\xb3\xab\x2a\x64\x5b\x57\xb4\x12\x33\x85\x92\xa9\x92\x92\x72\xc7\x49\x8c\x6a\x97\x40\xca\xce\x56\x13\xe1\x35\xa2\xe4\x4d\x14\x7a\x15\x19\xef\x32\x49\xd9\xb2\x85\xd9\x92\xbd\x2a\x44\xcd\x1f\xd5\x60\xfd\x17\x70\x7f\x79\xfd\xfb\x59\x54\x6c\xb0\x86\xab\x4b\x96\xae\x1b\xb4\x48\x45\x15\xaa\x0b\x28\xd9\x61\x93\x62\xa6\x29\x0a\x22\x34\x75\xa7\xd7\xf1\xb5\xb0\x95\xaf\x72\x9f\x2f\xb5\x68\xf9\x32\x6b\x79\xd5\x6e\x00\x17\xef\xbe\xc7\x5d\xba\x3b\x07\x33\x34\x1f\x3f\x0f\x8b\x97\x2e\x04\x8e\xfb\x3e\xf0\x6f\xd3\x0c\x03\xab\xaf\xb4\xb9\x9d\x39\xc3\x92\x58\xb5\x7e\x03\x3d\x04\xaa\xc1\xa6\x77\x68\x69\x11\x05\x6c\xba\xba\x8e\xaf\x57\x26\x24\xd8\x2a\xd7\xe9\xe3\x56\x6f\x7c\x73\xe7\xb9\x75\xb5\x77\xcf\x5d\x8d\xee\x2e\xee\xeb\xd4\x25\x71\x83\x3f\x79\x6e\x26\x14\x5e\x2b\x2e\x29\x5b\xaa\xab\xe2\x24\x20\xf7\x4a\x4a\x5e\x1e\x2b\xc1\x56\x2b\xac\x04\xd5\x38\x09\x2a\x74\xba\x69\xda\xdb\xb6\xd0\x1d\x6e\x29\x35\x83\xe8\x33\x1b\x21\x59\xa2\xe3\x10\x4e\x13\xe3\x00\x38\x6e\x48\x85\x41\x8c\xd2\xcd\xa7\x70\xb2\xf4\xef\x9d\x39\x0a\xc7\x9e\xef\x33\xbf\xc2\xfc\x62\xea\x21\x3e\xf6\x7d\x29\xea\x9d\x49\xc1\xab\xb5\x88\x53\xab\x3f\xb3\x9d\x52\x74\xad\xca\x1d\x94\xe4\x27\x49\x61\x89\x22\x60\x5d\x97\x06\x1c\x2b\xa3\xb9\xb6\x65\xea\x9e\x9a\x51\xee\xad\x32\x3d\x75\xf9\xc0\x05\x53\x49\x09\x89\x1c\x19\x4f\x1a\x55\x26\x3b\x87\xea\xa9\xd9\xc2\x10\x6c\x21\xd0\xe8\x70\x10\xb6\x74\xe2\x92\x23\xb2\xed\x63\xf7\x49\xc4\x87\x4f\x67\x27\x3b\xff\xdd\x19\xbf\x29\x3e\x77\x9d\x99\x57\x14\xe9\x60\x83\x4e\x8e\x41\x98\xb6\x12\x88\x41\x5f\x33\xe8\xd1\xab\xad\x72\x56\x38\x0c\xf7\x6b\x1c\x86\x69\xcf\x56\xe4\xcf\x2f\x85\xb3\x71\xaf\xca\xd9\x88\xef\x59\x95\x67\xab\x15\x56\x9e\xd5\x1d\x7e\xa5\x47\xdf\x30\xcb\xc3\xd3\xe0\x2c\x5b\xf1\x41\x26\x05\xc6\x2a\x15\xb6\x94\x03\x63\x07\x64\x0b\x28\x03\x63\xfd\xac\xd3\xb1\xb7\x64\x60\x4c\x68\x20\xa5\xa2\x28\x8c\x87\x55\xea\xce\x8e\x2a\x1e\xb6\x5d\x3d\x1e\x56\xd4\xcb\x65\xe2\x61\x35\xcb\x74\x8a\x18\xb3\xa4\x0a\xe7\x56\x4e\x48\x69\x5b\xb8\x20\x1d\x52\xea\xd7\xea\x62\x09\xb1\x72\x4e\x48\xa9\x2f\x86\x94\xd2\xcc\x01\x4b\xd5\xb5\xd1\x9a\x53\xd4\xa7\x60\x7a\xe7\xfa\x08\x02\xa7\xaa\xcd\xd3\xcf\xb3\x79\x6a\x2b\x84\xf8\x9c\x74\xfc\xc4\x61\x4e\x06\x92\x8c\x29\xcf\xe6\xec\x34\xc6\x90\xeb\xb9\x39\x82\x5b\x65\x8a\x17\x1d\x0c\x31\x75\x90\x0e\xec\xed\x0c\x74\xe2\xdf\xe2\x81\x3d\x4c\xbe\x51\xb1\x84\x37\xc3\xd9\x66\xa7\x69\x57\x88\x26\xb5\x43\x88\xae\xd2\xc8\x97\xac\x3c\xba\x59\x69\x27\x95\x54\x60\x96\xa3\x6f\x5b\x79\x5c\xac\x55\x53\xf1\xb9\x36\xc1\xd5\x19\xde\x2d\x2f\xb8\xc2\x1d\xe0\x51\x9a\x30\x70\x81\x0f\x10\x28\x55\x31\xb0\x62\x91\x28\x1a\xc9\xd0\xd5\x52\x27\xda\xd7\x23\x84\x13\x37\xb1\xa9\x75\x12\x29\xa9\xcd\xe2\xbb\x0a\x14\x76\xda\x5d\xdf\x5e\xe0\x4c\xea\x2d\xb5\x53\xa5\x88\xd9\x36\x8d\x17\x31\x0f\x65\x65\x67\x91\x1c\x14\x49\x02\x46\xfb\xed\xf1\x1a\x17\xef\x45\x35\xab\x31\xaf\x6b\xf7\xbd\xb8\x5c\x69\xab\xa4\xf0\x18\xeb\xee\x1e\x96\x75\xec\xca\x66\x3d\x97\x7b\xff\x02\xf7\x7e\x1e\xa1\x70\xfa\x11\x50\xb7\xfe\x09\x63\xec\x94\xc6\x41\x11\x97\x2b\x78\x1e\xee\xd2\xf2\x8f\x39\x73\x2e\xa4\xa4\x66\x01\x07\x57\x22\xf0\x89\xc7\xb4\xec\x75\x8a\x0c\xfa\x5c\x96\xa8\x5a\x94\x52\xe9\xc5\xb5\x3c\x4d\xb4\xb4\xae\xb2\x51\xc9\x94\x9f\xaa\x8a\x5b\x6a\x99\x65\xb3\xb2\xe4\xf7\xe4\x25\xca\xa2\xc6\x6a\x75\xa7\xee\x39\x5a\x91\x12\x50\xfe\xef\x24\x4c\x54\xa9\x48\x1b\x87\xf3\xc0\x6d\x44\xe3\x26\xff\xf7\x6f\xe0\x8f\xc2\x29\xd0\x50\xa8\x25\xa9\x9d\x35\xb2\x75\xa4\x11\xcb\x4b\xd5\xd7\xea\x2e\xde\x8a\x13\xdd\x9c\x48\x5c\x9e\xe6\x74\xec\xfa\xc9\xcc\xf2\x0d\x09\x9b\x93\xb9\x56\xc6\xb3\x2d\x2d\x84\xda\x6d\x38\xd7\xa6\xce\xad\x16\x84\x28\x4d\x33\x88\xd5\x5d\xc2\xbb\x29\x3c\x13\x5f\xee\x40\xc0\x9e\x80\x1f\x38\x0e\x61\xb7\x85\xa5\x44\x63\xfc\x6e\x18\xfc\xe7\x6f\xb8\x7d\x60\x8a\x5b\x70\x01\x34\x27\xb8\x15\xde\x5f\xa9\xc9\x62\x73\x01\xca\x6b\xdc\x93\x5b\x8f\x4b\x24\xa7\xa6\x97\x24\x63\x25\x21\x46\x82\x1b\x8e\xa2\x8e\x8f\x75\xcb\x62\x3e\x0e\xf9\x09\xa2\x91\xd2\x4b\xb1\x25\x14\xd6\xe5\x98\x4e\x9d\xc0\x8d\x12\xa5\x81\xaa\xcd\xbd\x6d\x4b\x87\x44\x9e\x07\x21\x96\xe1\x00\x6a\x41\x08\xc1\x18\x40\x48\x75\x75\x7c\x01\xb3\xb6\x2c\xfd\xd3\x85\xef\xc8\xed\x7d\x1d\x8e\xe6\xb8\xff\xc4\xa7\xad\x85\x81\x26\xa5\x7b\x17\xcf\x55\x85\xe9\x54\x8f\x9c\x0f\x1c\x18\xac\x70\xe8\xde\x1e\x1d\x7c\x3c\xc9\x16\x36\xc1\x3a\xd7\x25\x40\x84\x4c\x29\x42\x0e\x44\xc0\xe5\xf5\x4e\xda\x19\xcc\x8f\xc0\x71\xc9\xbe\xbe\x9c\x7b\x6e\x9e\x9d\x58\x6b\xfc\x6a\x6e\x87\x9a\xaa\x48\x0d\x2a\xcc\x96\x93\x3f\xcb\xf2\x00\x15\x83\xa3\x08\x64\xd0\x6a\x06\x69\xa4\x5e\x49\x03\x56\x8c\x23\xc8\x2b\x79\x90\xe4\xd6\xd1\x08\x07\x81\xdb\x10\xe0\x8d\x84\xdf\x61\x44\x9e\x1d\xee\xbf\xa7\x05\x15\x96\x86\xe5\x24\x7e\xc5\x76\xd1\x38\x72\x48\xa4\x95\x38\x4b\x4c\x40\xf7\xb8\xe1\x95\xa3\xc3\xe9\xcf\xff\xdc\xd8\x29\x49\x21\x61\x71\x8b\x55\xc3\x72\x2a\xc4\x48\xfa\x2d\x10\x3d\xf6\x1e\x1b\xf6\xdb\x66\xc9\x82\x95\xc6\x47\x1e\xb6\x5c\xc1\x23\x01\x03\xe4\xd3\xb7\x56\x4d\xf5\xb4\xab\x23\xb5\xf4\xe2\x96\xd1\xbf\x84\xc1\x62\xac\x11\x87\xf4\xfb\x5c\xdc\xaf\x22\x69\xe1\x71\xc5\xbe\x28\xa1\x05\x81\xbe\x84\x70\x65\x72\xb0\x15\x99\x9a\x90\x80\x3e\xae\x50\xfd\x5f\xe0\x9d\xbd\xfe\x71\x52\x98\xd3\x2c\x00\xc4\x72\xc3\xd6\x8d\x93\xf2\xf6\x56\x21\x7a\x5f\x94\x8b\x5e\xc6\xc9\x56\x92\x76\xb1\xff\x55\xfe\x7e\x95\xbf\xed\x14\xa6\xde\x95\x63\x1b\xe5\x11\x63\x81\xa3\xba\x30\x31\xb4\x28\x6c\x5a\x31\xd9\x30\x1d\x14\x16\xda\x97\x24\x82\x14\x44\xc0\x2b\xf5\x27\x0e\x06\x6f\x0b\x0d\xed\x0b\x5f\x2e\x11\x01\xdf\x5e\x22\x02\x9e\xdf\x78\x65\x04\x5c\x44\xaf\x26\x39\x93\xbd\x9c\x08\x78\x5f\xb8\x20\x1d\x01\xdf\xac\xd5\xc5\x3c\xea\xf3\xe2\x08\xf8\x66\x4e\x04\xbc\x46\x8a\xa4\xd8\xe1\xad\x16\x03\xa1\x7a\xdb\x75\xa1\x75\x65\xa5\xca\x3f\x57\x58\x35\xcf\x13\xcb\x95\xbc\xb3\x09\xd0\xc6\xa1\xef\x87\x37\x5e\x70\xc9\x41\x04\x11\xf1\x21\x42\x30\x02\xde\x35\xd0\x10\x74\xc6\x63\x6f\xa4\x8d\x61\x38\xd5\x38\x67\x58\x72\x29\x9a\xc0\x70\x7e\x39\xa1\xb5\x2c\xd8\x29\xd9\xd5\xde\x02\x07\x06\xda\x34\x84\x40\x73\x2e\xc2\x39\xd2\x28\xa7\xdb\x1c\xe2\xd7\xf0\xb3\x54\xf3\x02\x2d\x9c\xc3\x94\xce\x59\xe0\x28\xda\xa9\x58\xfa\x56\xc5\xb9\x3d\x2c\xf0\xfe\x94\x7a\x8d\xd8\xc0\x45\x08\xcc\x3a\x17\xb7\x1d\xfc\x6f\xd6\x45\xd4\x2d\x52\x6f\x57\x94\x81\xb8\x9a\x30\xaa\xde\x7e\xea\x61\x4e\xf2\xa1\x1c\x38\xcd\x01\x0f\x67\x38\x6b\x77\x55\xda\x53\x6b\x15\xf8\x0b\xde\xa1\xd4\xd0\x72\x5e\x23\x93\xc6\xa9\x0a\xfd\x8b\x69\x92\x0d\x86\xb3\xbd\x6c\xb9\xb6\x73\x2c\x5b\xce\xb2\x5c\x71\xcc\xaa\x4c\x46\x0a\xb2\x32\xc9\xb5\xf4\x29\x1f\xb0\xc0\x83\xb3\xba\xe3\xef\xaf\x50\xfb\xb6\x2c\xf7\x32\xc3\xe1\xf6\x04\x5d\x08\x79\x9e\x63\xa1\x32\x2e\x71\x06\x53\x1a\x37\xb5\xbf\xa1\xa1\x7b\x58\x54\xbb\x97\x2f\x9f\x2b\xb9\x1c\x5a\xf1\x5f\x20\x4a\xab\xfb\xa8\xbe\x8b\x7f\x8f\xb7\xfc\x9f\x6e\x7e\xff\xa1\xd8\x77\xc1\x18\x7b\x57\x42\xcb\xb6\x84\x3d\x98\xa5\xd9\x10\x10\xa1\x9c\xb4\x58\xcd\x83\x92\x66\xc6\xaa\xac\xc9\xa7\x72\x3b\x63\x7b\xbc\xb5\x20\xbd\xce\x39\xea\x2f\x3b\x19\x00\x95\x78\xde\x0b\x09\x3c\x67\x71\x4d\x9b\xbe\xd5\x1f\x56\x24\x82\x28\x8a\xb6\xb7\x7a\x52\xad\xf0\x9c\xaa\x76\x4a\x49\x67\x14\x5e\xca\x0f\x9c\x7d\x9f\xf3\x73\x81\xd8\xad\x10\x26\x6c\x92\xb9\xa4\xce\x88\x9f\x3a\x58\x7f\xd7\x2d\x7d\xec\x3b\x08\x11\x35\x6d\x49\x29\x49\xc6\xb8\x15\x09\x99\x54\x49\x78\x54\x29\xf9\xeb\xf1\xac\x37\x79\x7e\xd9\xab\xe8\xe1\x4d\xe5\xa4\x32\xf7\xae\x50\xbe\x2a\x2e\x33\xee\x7a\xd1\xc8\x0f\xa3\x39\x4c\x4a\x87\x47\xc9\x27\x5e\x9f\x08\x9f\x91\xfc\x13\x3e\xf0\x88\x53\x05\x39\x9e\x1f\x89\x95\xc7\xc7\x61\x88\x6a\x47\xed\xfa\x35\x08\x58\x6a\x84\xed\x2a\x24\xfa\xf2\xe1\xe0\x0e\xe3\x8d\x6f\xee\xae\xbc\xc0\x6d\x14\xb8\xb3\x74\x52\x23\xe5\x01\xfd\xc7\x62\x1e\x65\x06\x84\xc8\x67\x5c\x64\xd4\xb2\x54\x95\x4d\x9e\x66\xaa\xf0\x5f\xc9\x1b\x2d\x38\x97\x77\xea\x19\xd0\xf2\xfa\x50\xf2\xac\xd5\xf5\x15\x26\x92\xbf\xba\x36\x24\xc2\x4a\x32\x77\xf1\x2a\x5d\x5c\xb2\xa8\x4e\x49\xbe\xab\x05\x49\xc4\xa7\xfb\xf3\xcc\x09\x5c\x5a\x03\xa2\x06\x93\x7b\x66\x48\x99\x4c\x90\x34\xa7\xcc\x1f\x2c\x1e\x06\xdc\xce\xc5\x6d\xc7\x19\xf9\x91\x94\xf9\x7f\x4e\x8f\x34\x6e\x8b\xff\xc0\xae\x7d\x75\x7b\x70\xf8\x36\xab\xce\xc9\xae\x63\xde\xe2\x8e\xe3\xfb\xe1\x8d\xfa\xb1\xac\x89\x5c\xa1\xdb\xb6\xce\xf5\xd7\xf4\xae\x83\xc3\xb7\x1f\x42\xdf\x1b\x11\xfd\x44\xa7\x8f\x50\x29\x8f\xe9\x97\xde\x78\xbe\x3b\x72\xa0\xdb\x91\xd0\xfd\x79\x1d\xe2\x57\x1f\x4b\x38\xb8\x82\xc7\x63\x23\x87\x9e\x79\x15\xdf\x10\x84\xe8\x35\xbd\xbe\xc6\x3b\x3a\x2e\x98\x81\xc0\x05\xc1\xc8\x03\x39\x13\xc2\x6e\xe0\x23\x47\x5f\xf5\x5a\xbc\x4d\x10\x96\xa4\x96\xa4\x3e\x8f\x80\x46\x66\x58\x39\x8e\xea\xb6\xe0\xeb\x3b\xae\x17\xb1\x63\x70\xe9\x96\x48\xc4\xf4\xd5\x5b\x55\xf0\xcf\x32\x7b\x83\x64\x76\xa6\xfa\xc1\x99\xa9\x5e\xb4\xf2\xb6\x3d\xf1\x6d\xbb\xea\x47\x57\xb2\x7f\x78\x31\x8c\x38\x96\x52\x3d\x67\x4b\x36\x08\x78\xb6\xc0\x6b\xa6\xc9\x24\x79\x0f\xce\x1c\x91\xb2\x66\x64\x40\x96\xc5\xee\xa7\x2b\x88\xa7\x2b\x17\x32\xd9\x48\x44\xe3\x2e\x16\xe5\xb8\x6f\x5b\xd6\x39\xa1\x12\x61\xc7\x71\x5c\x36\x5c\x64\x59\x49\xc5\xaf\xfa\x74\xa1\x96\x88\xb4\xcc\x9e\x4a\x2d\x7a\xdd\x0b\xc6\xa1\x6e\x25\xe5\xc9\x6b\x27\x50\xe7\x0f\x76\x9b\xd5\xca\xd3\x06\xd8\x64\xab\xc4\x4f\x28\xdd\x60\xa9\xc8\x55\xf7\x85\xe3\x97\x24\xb3\xb0\xa9\xeb\x7e\x73\x87\x75\xde\x45\x97\x65\x5a\x28\xd5\x43\xac\x14\x27\xd3\x90\x26\xb1\x29\x42\x5a\x17\xda\x7f\xe2\x25\x25\x26\x9e\x95\xda\x1f\xfb\xd4\x64\x61\x07\x68\xe3\xbd\xa2\x9c\xc4\x56\x8a\xb6\x67\x27\xb1\xcc\xd7\xdb\xca\x2c\x12\x53\x7f\x05\x73\x58\x69\x16\x97\xcd\x67\x95\x84\x76\xad\x6e\x33\xe3\x4c\xd5\x71\x62\x9c\x7d\x92\xca\x15\x33\x23\x6f\x82\xa6\xfe\xa9\x33\x56\xd4\xbe\xae\x56\x00\x8d\xca\x24\xaa\xba\x35\xf7\x78\x49\xc2\xae\xa7\x5e\xde\xd9\x72\x63\x84\x01\x39\x23\x00\x9b\x1d\x65\x45\x33\x2e\x6c\x8b\x1f\x98\x01\xdc\xda\xc6\x48\x16\x7a\x9f\xc2\x40\x4a\x57\x60\x1b\x7e\xa0\x5e\xa6\x2c\x4b\xf1\x3b\x7a\xdb\x35\xd1\xf3\xbd\x32\xae\x1c\x75\xb3\x32\x95\x76\xd3\x42\x4f\xe6\xaf\xed\x6d\x4a\x5e\xd1\xfe\x52\x73\x2e\xab\x0c\x07\x49\xe0\xf5\x7c\xdb\x3a\xdf\xda\x27\x9e\x60\x7d\xe4\x7b\xa3\x2b\x3d\xbe\x8a\x83\x1f\x44\x54\x41\xd3\x35\x51\x5f\xe0\x45\xdd\x6f\xee\xf8\x06\x51\xfb\x34\x44\xf3\x4a\x56\x2c\xb2\xdb\x4b\xc7\xb6\x19\x88\x2d\xe8\x8c\xd7\xa0\x50\x44\x36\x95\x79\xb9\xae\xc7\x4d\xe5\x02\x79\x51\x5e\x4d\x68\x3f\xcf\xa6\x17\xe4\x76\xc6\xd8\xaf\x50\x43\xaf\x8a\xbf\x49\x51\x43\xaf\x82\x83\xa9\x7d\x97\xd2\x12\x35\xf4\xf8\xea\xd8\xab\xef\x57\x48\x9b\xfb\x69\x35\x58\x01\x37\xa0\xdc\x65\x31\xa6\x42\xff\x5e\x70\x60\x7e\xcf\x6e\xfb\x91\x95\xcd\xf3\xa2\x8f\x60\x1a\x22\xf0\xfa\x10\xff\x35\x71\xa2\x77\xf4\xf7\x0f\x30\xbc\xf6\xa8\x53\xf4\xfb\x30\x48\xb8\x27\x24\x04\x4f\xcc\x8d\x2d\x33\xd0\xb3\x7a\x5f\x19\xe4\xd0\x5e\xc3\x32\x7c\xc2\x6c\x17\x95\xe1\xdb\x56\x94\xe1\x13\x6e\xad\x52\x86\x2f\xdd\x17\x2b\xf3\xc0\xcd\xc2\x2b\x0b\x6a\xf1\xe5\xdf\x58\xa5\x1e\x5f\x3a\x06\x8f\xfb\xfa\x36\x1c\x39\xbe\xa2\xdc\xfd\x76\x76\xb8\xd9\xa4\x7f\x9a\x25\xb3\x9a\x0d\x7b\x49\xa5\xd4\x18\x2f\x8b\xe0\x72\x88\x97\xbe\xe4\x01\xac\x44\x56\x5e\x96\x5c\x55\x1a\x33\x79\x92\xa9\x55\xc4\xa3\xca\x02\x34\xd9\x32\x66\xb4\x08\xd9\x65\x4c\x2b\x97\xd4\xcd\x09\xe3\x7c\xab\x71\xc0\x38\x5d\xe7\xfc\x16\x96\x1e\x45\x0a\x93\x25\xf5\xce\x02\xe4\x78\x44\xbd\x4c\xb2\xb6\x28\x61\x5d\x07\x38\xa3\x49\x87\x78\x68\xf1\x27\xdd\xa2\xc0\x29\x7c\xe9\x8d\x87\x26\x21\x89\xdc\x0b\x05\xce\xc6\x30\x9c\x76\x40\x80\x20\x8d\xc4\xb3\x1c\xaf\x36\xaa\xf6\x70\x11\xd3\x4a\xf4\x68\x2e\x54\x74\x7e\xd4\xf0\xd1\xcf\x6f\xe0\x07\x1f\x9c\x7c\x6c\x9a\x20\x50\xc0\x77\xba\x6c\xea\xc0\xee\x23\x31\xdb\x55\x4b\x1d\xa8\xc4\x6b\xf7\x35\x75\xe0\xaf\x12\xac\x69\x2b\x75\xa0\x12\xd9\x9c\x58\xbf\xe8\x81\x53\x07\xf6\x6a\xa6\x0e\x54\xea\xcf\x53\x4d\x1d\xa8\x49\x9e\xf7\xc5\xa6\x0e\x88\xab\x6a\x85\x08\xda\x82\xd7\xb4\x06\x06\xce\x15\x97\xed\x25\x47\xec\x7f\x4d\x8e\x78\x4c\xce\x39\xb9\x20\x32\xd5\x1f\xa2\x6e\x7e\x49\xcf\xae\x17\x20\x48\x82\x36\xe7\x92\xd7\x32\xf6\x3d\xaa\xf3\x68\x1f\x01\xf7\xbf\xdf\x94\x4b\x2e\x26\xfb\x6a\x8b\x3a\x2d\x67\x35\xa9\x59\xd3\xf2\x89\xc4\x79\x2c\x4f\xe6\x4f\xeb\xf3\x02\x4b\xbb\x4b\xb0\xc6\xb5\x0d\x83\x4e\x0f\x65\x1b\x44\x61\x7a\xbb\xa0\xfa\x95\x53\x41\x55\x0f\xb6\x48\xb0\x45\xb1\x78\xee\xea\xc4\xe6\xf2\xa0\xfa\x92\x30\x4c\xe5\x85\xf2\x10\x18\xfc\x17\x55\xe0\xf5\xd6\xae\xb5\x67\xed\x7f\xf1\x20\xfb\x34\x2f\xbd\x84\xae\x27\x76\xc2\x53\x81\xd8\x27\x67\x4a\x03\x1f\x00\x37\x81\x1e\xd5\xdc\x7f\xf3\xcb\xde\xbf\xde\xbe\xd9\x38\x53\x9a\xfb\x19\xf3\x9c\xd9\x27\xa9\x63\xbe\x64\xb3\x16\x58\x7c\x43\x81\x8e\xa5\xca\xd9\x5f\xb8\xb0\xb8\x11\xe9\x8d\x6b\x4c\x29\xb9\xa9\xc9\xec\x3d\x89\x0a\x04\xef\x47\xd0\xff\x19\x1d\xfe\xeb\x6b\xd1\xaa\x2f\xbf\x68\x55\x63\xfe\x26\x3f\x74\xdc\x27\x40\xd7\x14\x6e\xed\x1f\xfd\x30\x76\x4e\x2b\x49\x92\xa2\x31\xad\x3e\x64\xac\xe7\x4d\x06\x2d\x08\x11\x61\x8f\x7c\xec\x51\xfb\xe9\x77\xdf\x79\xf5\xfa\xe2\x97\xa2\x1d\xbc\xea\xdd\x9b\x95\xce\xdc\xad\x26\x57\x9c\x28\x75\xbf\xa9\x62\x50\x71\x15\xc2\x29\x88\x22\x87\xba\x79\xb6\x37\xb7\x2d\xfd\x27\x92\x26\xa0\xa1\x50\x1b\x7b\x81\x4b\xb5\xb8\x19\xb9\xa0\x4a\x4e\x50\x2f\xed\xc4\xab\xb1\x4f\x89\x3e\x51\x7d\x95\xf1\xa5\x92\xb3\xcc\xd6\x8a\x96\x59\xe8\xcc\xd1\xa4\xc3\x63\x50\x1d\x17\x5c\xcc\x1f\x7d\xa3\x9e\x5c\x8e\x9f\x7b\xbf\x9f\x6e\x17\x1f\x1a\x0d\x4a\xc3\x2d\x51\x6e\x7f\xc7\xd2\x6f\x3c\x17\x4d\x06\xda\xce\xe6\xff\x7c\x3b\x75\xe0\xa5\x17\x0c\xb4\x4d\xcd\x99\xa3\xf0\xdb\x8c\xf5\x11\x23\xf9\x7a\xf1\x4f\xfb\xf1\xe1\x72\xe6\x21\x89\x99\x1a\xd1\xbf\xad\x73\xfd\x5d\x38\xba\xd2\xde\x1f\xcc\xd1\x44\x8b\x63\xbd\xc9\x4a\x93\xd4\x64\xfe\x86\x29\x23\xc7\x4a\x19\x3f\xfc\x67\x52\x53\x8b\x11\x10\x4c\x01\x9a\x84\xae\x6e\xe9\xff\x3c\x3a\xd3\x29\xfb\x41\xac\xdc\x92\xc2\x3c\xc3\x3c\x7f\xaf\x84\xef\x95\x77\x0e\xf1\x30\x86\x94\xa6\x80\x7e\xd1\xe9\xf5\xb7\xb6\x77\x76\xf7\xf6\x5f\x6c\x38\x17\x23\x17\x8c\x2f\x27\xde\xef\x57\xfe\x34\x08\x67\x7f\xc0\x08\xcd\xaf\x6f\x3e\xdf\xfe\x97\xdd\xd5\xc9\xbf\x62\x23\x7e\x8c\x5e\xbb\xa4\x04\x0f\xcb\x83\xcf\xa8\x43\xfd\x55\xe9\x83\xdf\x77\x2e\x88\x94\x88\x6b\x8b\x4d\x80\x3f\x4b\xfa\xa0\x53\x27\x35\xaf\xba\x3c\xb4\xf4\xb3\x09\xd0\xde\x1f\xbf\x3e\xd4\xc8\xef\x1a\x59\xe1\x54\x24\xdc\x78\xbe\xaf\x5d\x02\x2c\x1b\xa2\x08\xb8\x09\x5d\x45\xa8\x1d\x92\x0d\xa7\xe7\x33\x94\x35\x6d\x24\x19\x71\x4b\x3f\x24\xff\x64\x9a\x88\x7f\x5d\xae\x85\x85\x3a\x89\xd4\x7c\x47\xe1\x6b\x22\xc3\xc8\x0a\xb0\xd5\xb3\xeb\xdf\x62\x71\x5d\x90\xc3\x5d\x46\x00\xaa\x08\x5b\xb7\x99\xf9\x27\xca\x68\x08\x5c\x0f\x82\x11\xfa\x44\xad\x3e\x66\x02\xd6\x33\xd7\x54\xc2\xb7\x89\xae\x10\x51\xc6\xda\x47\x0f\xcd\x06\xff\x0a\xfe\xfd\xfe\xcd\x49\x49\x89\x5a\xb9\xb8\x67\x0c\x2a\xaf\x27\xca\x57\x92\x69\xb7\x43\xfd\x9f\x74\x30\x07\x1b\x8c\x10\x78\x30\xf2\x3d\xa2\x29\x7f\x8d\x53\x3e\x6e\x52\x59\xba\x34\xeb\x79\xa6\x86\x52\x4c\xac\xc2\x4f\x0b\xd2\x0c\x8a\xfd\x3f\x57\x41\x77\xab\xe6\x90\xb1\xc1\xbe\xf6\xc0\x4d\x23\x8f\x68\x85\x51\x69\x52\xfb\x40\xa1\x67\xe4\xb1\xae\x14\x6b\x1e\xa7\x5c\x82\xb4\xc7\xa6\x59\xa9\xd3\x8d\xca\xc6\xe8\xa9\x64\x94\xd4\xd1\x43\xb2\x3e\x6a\x1e\x3c\xc9\x38\xb5\x94\xd7\xa1\x2b\xeb\x50\x10\x78\x98\x76\x8a\x42\xc8\x0c\x8d\xfa\x45\xa2\xd4\x2d\x5e\x3a\x89\xa1\x8a\x27\xfd\x6c\x02\x22\xa0\x71\xf9\x48\x9c\xe9\xde\x74\x0a\x5c\xcf\x41\xc0\xbf\xd5\x22\xe7\x1a\x2b\x17\xa1\xe6\x93\x5e\x46\xb4\x97\x9a\x13\xb8\xda\x0c\xc0\xc8\x8b\x90\xa0\x7b\x5c\xc0\xf0\x26\x02\x50\x9b\x63\x93\xab\x9b\x6d\x4a\xc3\x71\xc9\x5e\xa4\xc2\x73\x67\xb4\x63\x95\xd2\xbb\x99\x89\x08\x08\x2c\xca\x8c\x22\xec\xa7\xe3\x4f\xaf\x8f\x4f\x0f\x5e\xbd\x3d\xfa\xf4\xf1\xe8\xe0\xed\xd9\xf1\xbb\xa3\x25\x51\xf9\x71\xd3\x3c\xe0\xbb\x11\xad\x7f\xa6\x9c\x0e\xf5\x02\x7b\xc5\xe4\x9d\xf6\xbf\x73\x00\x3d\x90\x4f\xd0\xaf\x9c\xef\x37\x00\xcc\xb4\x91\x83\x1c\x3f\xbc\xd4\xf0\x36\xd2\xe6\xb3\x0e\x0a\x3b\x2e\x56\x79\x19\x78\x4d\x63\xf4\xe3\x34\xb0\x01\x88\x45\xdc\xd5\x0e\x82\x5b\x8d\x02\x0d\x22\x6d\xea\xb8\xc4\x6a\xe6\x9e\x68\x4b\x0b\x42\x17\x44\x64\x21\x88\x15\x32\xc2\xb9\xef\x6a\x17\x00\x3f\x90\x86\xfb\x35\x2f\xd0\x20\x70\x7c\x0d\x79\x53\xd0\x2d\x6d\xba\x0c\x5b\xb9\x9d\x01\x31\x08\xad\x5e\xc1\xfc\x56\xaa\x59\x17\xc5\x8c\x74\x45\xb8\x7b\xcb\xd2\xa9\x2a\x70\xce\x8f\x95\x21\xb7\xa3\x48\xb8\x3b\x9d\x4b\xc9\x03\xa8\xc9\x21\x34\x4c\xae\x4c\x1c\x81\xf8\xfe\x30\xe0\x30\x0d\x31\x54\x9d\x60\x37\x98\x0a\xc2\xe2\xd1\xc2\xbd\x15\x83\xed\xe9\x6e\x45\x33\x27\x31\x1b\x7b\xe5\xad\x7e\x8f\x75\x83\xf7\xe3\xb1\xd8\xec\x3c\xb6\xa7\xa2\x69\x53\x6d\xeb\x12\x0d\x5d\x49\x38\xb8\x74\xc4\xa8\x7a\x01\xe4\x06\x77\xb7\xea\xc0\x4d\x28\x46\x12\xb8\x2a\x65\x79\xa2\x70\x56\xd1\x28\x91\x6c\x91\x06\xf4\xfd\x5c\xb6\xd7\x30\x42\xa0\x13\x44\x58\x8e\x46\x1b\x0c\x1b\x9b\x98\x20\x96\x0e\xb0\xb5\xd0\x21\x9a\x37\x51\x37\x3b\x63\xe8\x5c\x12\xb1\x97\xbd\x51\x32\x58\x2c\xd4\x96\xc9\x12\xd8\x88\x7f\x2d\xf4\x26\x28\xed\xcd\x45\x18\xfa\xc0\x09\xe4\xfe\x7c\x9f\x74\x68\x23\x02\xd0\x73\x7c\xef\xbf\x00\x6e\x74\x66\xd0\xbb\xa6\x60\xfc\x65\xfb\x90\x7b\x43\x4c\x7b\x74\x07\x82\xf9\x14\x40\xe7\xc2\xc7\xb7\x58\x97\x00\x0d\xe2\x77\x9a\x77\x10\xa0\x39\x0c\x34\xd4\x7d\x45\xdb\x7f\xc6\x7b\xb4\x58\x98\xa5\x7d\x76\xa9\xcb\xe3\xcb\xec\xf0\x6b\x07\x81\x5a\xbd\xe5\x6b\xb1\xd3\x78\xe1\xa6\x9e\xf0\xc4\x56\x30\x6f\xdd\x32\x3d\x7b\x6a\x7d\x0a\xe6\xb8\xf9\x5f\xec\x1a\x3d\x21\xcd\xaf\xb5\x4a\x23\x04\x53\xb1\xb3\x2f\xaa\xc7\xa7\xa4\xf9\xe5\x3d\x9e\x23\xcf\x8f\x36\x9c\x68\x04\x56\x15\xf2\x92\x47\x04\xbf\x19\x69\x81\x0d\xba\x04\x86\x61\xe8\x1b\xba\xb9\xc6\x5a\x1d\x74\x29\xea\xe7\x3b\xf4\x32\xe8\x46\xbe\x37\x02\xc6\xa6\xd5\x41\x66\x77\x14\x06\x23\x07\x19\xba\x6e\x76\x7f\x0f\xbd\x80\xdc\x34\xd0\xf1\x41\x59\xd0\x25\x14\x5e\xc8\xb3\x77\xe1\x44\x60\x77\xbb\xf3\x7b\xd4\xea\xe6\x12\x1e\x14\xd8\xfa\x1c\x8d\x3b\xfb\x3a\xef\x26\x4c\x76\x5b\x17\x85\xaf\x6e\x11\x38\xc0\x02\xcb\x00\x49\x97\xc1\x8d\x76\x06\x3e\xa3\xd7\x60\x14\xba\x00\x1a\x81\xd9\x75\xc9\x47\x03\x9a\x85\xdd\xbb\x40\xa1\xf3\xb0\xdd\x4b\xe6\xce\xe0\xad\x3e\x0a\x48\xab\xcd\x2e\x20\x1f\x84\x7e\x25\xfd\x1e\xc3\x70\x9a\xf4\x3c\x28\xee\xd5\xc8\xf1\x47\x73\xac\x12\x75\x66\x61\xc4\x12\x25\xb2\x42\xf4\xc2\x89\xbc\x51\xc7\x85\xe1\xcc\x0d\x6f\x82\xfc\x5b\x9f\xd0\x76\x64\xd7\x97\x6c\xc3\x91\xe3\xfb\xf8\x49\x1d\x0a\x1d\x5d\xed\x6e\xe4\xad\xd3\xf9\x57\xfa\x33\x1b\xbf\x37\x1c\x6b\xe0\x65\xb6\x0f\x60\x31\x00\xc5\x73\x47\x92\xe4\x3a\x63\x2f\xb8\x04\x70\x06\x3d\x9a\x98\xb8\x6a\x89\x62\x05\x16\xb4\xff\x75\xfa\xfe\xa4\x4b\x05\xb6\x37\xbe\x8d\x9b\x1c\x5f\xe7\x58\xbe\x15\x59\x9e\x15\x66\x7f\x9a\x9b\x77\xde\xd8\xc0\xb6\x95\x6d\x1b\x91\x4d\x3f\x44\x2f\xe7\xe7\x60\x38\x88\x4c\x13\x4d\x60\x78\x43\x76\xe9\x11\x84\x21\x34\x7e\x4b\x82\xd3\xac\x58\xbb\xd0\x5f\x4b\x9b\x7a\x51\xc4\xea\x43\x02\xef\x32\x78\x03\x6e\x69\x3c\xa8\xab\xbd\x0d\xc3\x2b\xf6\x0b\x0b\x11\x79\x81\xf6\x9f\xdf\xbe\xb9\x03\x8b\xff\xfc\xa6\x5d\x86\x88\xfc\x11\x2d\xfe\xf3\xdb\x6f\xe6\x1a\xdd\x68\x23\xdb\xe7\x42\xd2\xd2\xcd\xee\xd4\x99\x19\x46\x76\x3b\xf2\xd0\xc0\x25\x40\xc6\xdc\x02\xe6\x5a\xdc\x1d\x74\x7f\x8f\x98\x44\xfd\x47\xaf\x69\x4f\x22\x7f\x7e\x59\xb5\xf5\x88\xb6\x9e\x2f\xfa\x85\x19\x7f\xa6\x1a\x88\x6d\xdb\xf3\x73\x34\x5c\x5f\x37\xf4\xbf\xeb\xb6\x6d\x7b\xeb\xeb\x86\x67\xc7\x7b\xc9\xb4\xf0\xaf\xb6\x67\x5a\xc2\xe5\x41\x72\x79\xb8\xbe\x6e\x84\xf2\xe5\xc1\xd0\x0e\xa5\xcb\x01\xbe\x1c\xff\x63\x47\xd2\xf7\x0e\xfd\xde\x19\xda\xd0\x38\xc7\xf7\x91\x77\x59\xd1\x90\x9f\x2d\x23\xd3\x34\xad\xf9\x62\x51\xb8\xc4\x5d\x8f\x03\x05\x57\x7f\x50\x02\x1b\x74\x0f\xc3\x10\xba\x16\xb2\x11\xfd\xb4\xe6\x03\x2c\x7e\x37\xd7\xc6\x21\x34\xf0\xe7\xc8\xde\xfc\x36\xfa\x07\xe8\xfe\x0c\x46\x6c\xa2\xbf\x8d\x9e\x3f\x37\xef\xb0\xa6\x07\x6d\xf2\xfd\x79\x34\xec\x20\xf6\x61\x2d\x78\x6e\xc3\xbf\xc3\x05\xbe\xd5\xb1\xdf\x39\x68\xd2\x8d\xfe\x80\xc8\x08\xcc\xe7\xa0\xfb\x23\xf0\x2e\x27\xe8\x39\x62\x1f\xd8\x1a\xf4\x6d\xe7\x39\xe8\x1e\xb8\xbf\xcf\x23\x84\xf5\xd2\xe7\x48\xf8\x63\xcd\xff\x6e\x73\x7d\xdd\x70\x6c\x3f\x9e\x68\xf2\x50\x18\xce\x03\xd7\xe8\x81\x9d\xbf\x3b\xe6\x46\x6f\x73\xb3\x78\x4c\xc3\xe9\x06\xe1\x3c\xe8\x90\x4c\xe0\x8e\x13\x8c\x26\xab\x42\x3f\x4a\x67\x35\xca\x0a\x03\x64\x41\x5b\x47\x50\x37\xef\xa2\x1b\x0f\x8d\x26\x06\xea\xb2\xcc\x84\x20\x74\x89\xf9\xde\x45\xe1\xdb\xf0\x06\xc0\x43\x27\x02\x86\x69\xde\x8d\x9c\x08\x30\x5f\xd5\x80\x7c\xa6\x1e\x2e\xfa\xd9\x61\xff\x5e\xcc\x11\x0a\x03\x7d\x40\x5f\xb7\xa0\x23\xeb\xd8\xc0\x80\x16\x7f\x81\xd9\xfd\x63\x0e\xe0\xed\x29\x49\xc0\x09\xa1\xa1\x3b\xba\xb9\xe6\xac\xaf\x07\x86\x63\x2e\x16\x6b\x7c\xab\x8b\xe3\x70\xae\x4f\xc3\x79\x04\xf0\x11\xa8\x5b\xf4\xf3\x7c\x46\x5d\x56\xa3\x2b\x7d\x98\x95\x17\x82\xca\xf1\x0e\x5f\x7d\x74\x0d\x02\x64\x00\xeb\xee\x62\x7e\x71\xe1\x83\x08\x9f\x5f\x23\xbc\xbc\x7d\x7e\x9a\x5d\x7b\xe0\x66\x70\xe3\x05\x6e\x78\x43\x0e\xae\xee\x38\x84\x47\xce\x68\x22\x3c\x17\xaf\xd4\xae\xeb\x45\x33\x07\x8d\x26\xf4\x89\x08\x5f\x5a\x61\xce\xc3\x08\x44\xe8\x21\xb6\x12\x82\xb7\xc9\x49\xcc\xde\x6b\x00\x73\x31\xc2\x6d\x36\x02\x3e\x32\x25\x7b\x1f\xb7\x99\x1e\x71\xbe\x17\x21\x10\x90\x54\x8e\xd5\x36\xde\x3e\x1f\x4a\xd3\x46\x5a\xbd\x36\xf2\x9d\x28\xd2\x10\x95\xff\x70\x4e\xd6\x0b\xbd\x14\x4d\xbc\xa8\x1b\xb7\xce\x06\x0b\xc7\x75\xf1\x5a\xb7\xa0\x79\x47\x36\x3d\x3e\x1c\x92\xf3\xde\x8e\xcf\x7b\xd3\xb1\xc1\x1a\xf0\x23\xa0\x79\x63\x03\x0b\x77\x2a\xe7\xc2\xb1\x86\xf0\x4f\x5d\x08\xa6\xe1\x35\xe8\x5e\x78\x81\x8b\x95\x3c\x7c\x25\x79\x20\xb2\x75\xc7\x75\xc9\xb4\xbf\x65\xaf\xd5\x2d\xdf\xd6\xe9\xf5\xf2\xf7\x6b\xb1\x38\x06\xf4\x10\x40\x36\x49\xff\xf6\x6d\x3d\x1c\x8f\x75\x73\x8d\x4a\xb4\x60\x4d\x67\xa6\x57\xdc\xbc\x68\x7d\xdd\x88\xec\xbb\xf3\x60\x38\x80\x0b\x7e\x3a\x7a\x36\x1b\xe2\x2b\x70\x1b\x19\x51\xfa\x7c\x0c\xb2\xbb\x9b\x0c\x03\xd7\x66\xce\xd1\x90\x7c\x61\x29\x34\x9d\x73\x9f\xfd\x06\x17\x0b\x23\xb0\xa2\xf3\x60\x88\x97\xf4\x9a\x63\x1b\xa6\xfd\x9d\x47\xde\x04\xec\xef\xb0\x00\x58\xf0\x75\x25\x8d\x7c\x77\x36\x8f\x26\x86\x63\x5a\xf8\x7a\x76\x4e\x03\x3b\x75\xcd\xd8\x0b\xdc\xe3\xc0\x05\x9f\x95\xbb\x14\xd8\xb6\xed\x08\x27\x68\xea\x66\xac\x17\x8c\x80\x01\xac\x9e\x79\xbe\x39\x34\xcc\xc5\x82\x0e\xb9\x61\xe6\xbd\x4e\x68\x74\xf1\x33\x37\xad\xd4\xf7\xf4\x64\x31\x2d\x50\xbe\x41\x00\x9e\x71\x46\x73\xb2\x11\x3b\xb2\xf3\x77\x09\xff\x8c\x57\x36\xde\xa9\xb1\xee\x02\x4c\xda\xc6\xbb\x05\x75\x5b\x58\xd0\x72\x52\xbb\xba\xf8\xda\xbb\x85\xe5\x4b\x2b\x04\x98\xe4\xd8\x84\xf6\xe6\xb7\xf0\x1f\x3e\x3f\x2e\xe1\xf3\xe7\x66\x60\xfb\xe7\x70\x68\xa1\x2e\x01\xda\xbe\x1f\x1b\x81\xf9\x9d\xbd\x79\x7f\x6f\x38\x58\xbf\x00\x78\xf6\xf9\x88\x39\x0b\xf2\x6e\xbc\x8d\xd8\xb3\x2f\x01\x7a\x7f\x13\xf0\x0d\x7e\x4a\x51\x17\xf4\x04\x8e\xdf\xaf\xbc\xa6\x41\x83\xd8\xe3\x66\x30\x44\x21\xde\x1a\x5d\x9e\xd4\x70\x1c\x1d\xc5\x56\x48\x17\x1b\x11\x78\xd3\x9b\xf8\x68\x8e\x7b\xb0\x88\x7b\xd0\x8e\x58\xf5\xed\x80\x9c\x7f\x64\xb1\x45\xb6\xb0\xc9\x22\xfb\x6e\xc1\x7e\xb8\x1b\xcd\x21\x04\x01\x22\x82\x60\xe0\x2d\xec\xc8\x0a\x6d\x64\x44\xd6\xb9\x2e\xfe\xa2\x0f\xcd\x35\xd0\x75\x66\x33\xff\xd6\xc0\x6b\xcf\x3a\x07\x7c\xdb\xdc\x51\x91\x4b\x1f\x10\x2d\x6c\x60\x79\x36\x5e\x2b\x9c\x93\x23\xbe\x3f\x76\x21\x88\x8f\xf1\xc8\x52\x1e\x9a\x5d\x2a\xe9\x7d\xb3\x8b\x26\x20\x30\x90\xfd\x1d\x5e\x3d\x48\x94\x73\x44\x29\x36\xf9\xc6\x60\x9a\x96\x4a\x56\x46\x2f\xa3\x81\x63\x1a\x08\xab\xda\x41\x17\x7f\x79\x7f\x6f\x04\xf6\x1d\xfe\x34\x88\xb1\xac\x96\xeb\x20\x67\x10\xc4\xd2\xca\x17\xb4\xf4\xa0\x8b\x7f\xbc\xbf\xbf\x5b\x10\x6c\x20\x3e\xe9\xfd\xf5\x75\x03\x74\x47\x73\x18\x85\xd0\x86\x86\xcf\x3e\x5a\xfc\x3b\x3c\x09\x23\x67\x34\x01\x87\x61\x80\x60\xe8\xdb\xbe\xf4\xa7\x05\x08\x75\x1a\xbc\x76\xf0\x2f\xfc\xa3\x69\x75\x7a\xb6\x6d\x1b\xf2\xad\xf7\xf7\xba\x6e\xc6\x2b\x4b\x0f\xc2\x4e\x84\x42\x08\x74\xbc\x5c\xc8\xc6\x17\x67\xc6\x0e\x4c\x2a\x0d\xe4\x13\x3e\x48\x84\xb0\x42\x74\x89\xba\x81\x70\x78\x7d\x80\xe1\xd4\x8b\x80\x2c\xa3\x23\x80\xce\xbc\x29\x08\xe7\x48\xf8\xde\xbc\x0b\x88\x12\x21\x74\xeb\xfe\xbe\x0f\xb6\xa8\x5e\x81\x77\x20\x6e\xd2\x0c\x82\x6b\x2f\x9c\x47\xa4\x49\xb2\x4c\x93\x7e\xb2\x33\xbd\xb2\x3c\xf2\xf8\x85\x15\x0e\xb9\x91\xf0\x8c\x5a\x23\xd9\x01\xf0\xd8\x00\xa4\x8f\x39\x83\x22\x76\xac\x78\xa5\x6a\xc8\x06\x5c\x5b\xbc\x04\xe8\x50\x78\x88\x61\xae\xc5\x6f\x41\xeb\xeb\x8a\x01\x25\xcd\xe1\x5d\x88\x92\x1d\xce\x25\x88\x13\x45\xde\x65\xc0\x65\x0e\x5d\xfa\x06\x48\xae\xb3\x44\x65\x60\xc0\x36\x2f\xb0\x78\x69\x2e\xae\xcf\xdd\x40\x0f\xb1\xcf\x8b\x85\x69\xdd\xa5\xda\xa9\xf2\x5c\xa4\x07\x64\x61\x5d\x02\xf4\x41\x1c\xdf\xbc\xbb\xa4\x49\xc0\xaf\x8b\x16\x16\xe8\x5e\x3b\xbe\xe7\x3a\x08\x1c\xd2\xb5\x0e\x58\x67\xc8\xf6\x7b\xe5\x8c\xae\xc2\xf1\x98\xfb\xab\xb9\xbb\x49\xd0\x87\xb6\xc0\x96\x85\x6c\xb6\x92\xac\xc0\x4e\x96\x4f\x76\xf5\x71\x9d\x47\xd8\x79\xd0\xa2\x70\x2c\x7c\xf8\xc6\xac\x43\x5d\x06\x44\x37\xef\xef\xa5\x2b\xe9\xd7\x04\xea\x49\x04\x7e\x3c\x85\x8e\xc9\xac\x03\xc7\x76\xba\x28\xa4\x9e\x56\xc3\xb4\x9e\x6d\x52\x7b\x80\xe8\x38\x4e\xb2\xc5\x76\xf0\xde\xda\x22\xdf\x51\x21\xbf\xbe\xae\xef\x6c\x6e\xea\xf8\x51\xd4\x40\xd8\xc4\xe6\xad\x33\x90\x34\x3d\x49\xc5\x0e\xa4\xdd\x81\x0c\x48\x76\x07\xd9\x0f\xd4\xae\x87\x8b\xc5\x9a\x72\x2c\x83\x35\xee\x8a\x14\x4f\x4f\xe2\xe7\xa0\xe3\x13\xd8\x33\x07\x46\xe0\x18\x9b\x02\xa4\x9f\xcf\xbc\xe8\xc4\x39\x31\x02\x93\x4b\x43\x7c\x2d\x5d\xb9\xc1\x3f\xd0\xfa\xba\x11\xd8\x9b\xa6\x45\x0c\xbd\xa9\xf3\xd9\x08\xac\x9e\x89\xdf\x9d\x9a\x58\xb8\xc6\xcd\x9c\xac\x84\x50\xca\xca\xba\xda\x05\x91\x69\x0f\xe1\x5f\xe2\xcb\x4d\xb9\xc2\x14\x9e\xa6\xe4\x50\xf4\xb1\xe6\x21\x2d\x1d\x78\x1e\x0d\xd7\xd7\xfd\x6e\x1c\xef\x65\x25\x11\xcc\xb4\x9f\x04\x5f\xd8\x8d\xb7\x2f\x7e\xf4\xfa\xba\x91\xfd\x12\x1f\xb5\x56\xf6\xeb\xf8\xf9\x76\xf2\x2a\x0b\x90\xfb\xcd\xb5\x3b\x2e\xba\x7d\x76\x7a\x21\x2b\x24\xef\xb3\xf1\xc2\xf3\x48\x17\xb8\x28\x02\x46\xc8\x0f\x4f\x95\x92\xea\x02\x1f\x20\xa0\xe1\x9b\xad\xa0\x0b\x01\x1e\x71\x83\x2c\x4b\x7a\xd0\xaa\xee\x49\xac\x80\x54\x9b\xe9\x49\x47\x0f\x42\x6c\xa3\x19\x78\x31\xc4\xcf\xc7\xea\x27\x96\xfe\xb5\x57\x09\xf5\xa8\xae\x7c\xa1\x38\xb1\x54\xf2\x6d\x64\x45\x76\x60\xde\x65\x8e\x48\xbc\x98\xb0\x6e\xc4\x74\x34\x2c\x25\xd9\xe9\x02\x81\xe3\xde\x12\xe4\xbb\xdd\xa7\xdf\xd0\xf6\xdb\x0a\xe7\x2c\x52\x38\x67\xa9\x98\x66\xa3\xe6\x74\x21\x88\x42\x1f\x1b\x03\x8b\x01\xca\xbc\x60\x53\xbc\x80\xcd\x93\x49\x35\xa2\x67\x46\xea\xe2\xef\x7a\xb1\x14\x48\x3f\xa6\xa7\x52\x0c\xd8\xce\x26\x47\xe3\xc2\xb4\x68\x1f\x89\xfd\xb9\xe0\xeb\x08\x1f\x98\x8a\x3b\xb1\x3e\x9c\x3b\x18\xca\x97\x30\x32\x49\x22\xd0\x07\x60\x81\xdf\x90\x74\x26\xf3\x20\xe1\x7c\xf5\x5a\x3a\x5f\xbd\xd2\xf3\x95\x34\x51\x3c\x1f\xb9\x5b\x49\x6e\x1d\x3f\x36\xc8\x61\xa0\xf5\x07\x99\xc6\xaf\x5d\x40\xe0\x5c\xad\xb1\x65\x97\xf9\x7d\x4b\xb4\x42\xf1\x8b\xbd\x45\xb2\x48\x3f\xce\x83\x00\x40\xf9\x4c\x95\x3d\x61\xd8\x2c\xc6\x93\x0f\xf1\x14\xf0\x8d\xcf\x16\x20\x37\xf9\x8d\xc0\x02\x99\x4d\x9d\x2c\x3f\xf6\x18\x6c\xaf\xa6\xbd\x41\xd2\x6c\x2d\xc8\x51\x21\xb7\x0c\x29\x0e\x7a\x49\x71\x24\xe7\x19\x7d\x18\x4f\xe5\xbd\x63\xb3\x6e\xb1\x33\x64\x00\xba\xec\x13\x56\xeb\xa0\xf4\x24\x36\xe6\x20\x3b\xe0\x7d\x3a\xe0\x5b\xec\xe0\x7d\xb6\xc9\xc6\xf1\x59\xaf\x9e\x90\xc9\x64\xfc\x5a\x15\xbd\x47\x05\x8f\xa6\x9a\xe4\x06\x8c\xae\x67\x85\xd7\xc9\xa7\x61\xf9\x85\x33\x18\x7e\xbe\xad\x72\x21\x13\x11\xb0\xda\xdb\xb9\x94\x2d\xbf\x16\xcb\x86\xaa\xd7\x26\x1e\x84\xf2\x6b\x19\xec\x35\x0e\x12\x8e\xc2\x80\xea\xad\x23\xb9\xbb\x20\xb8\x4e\x07\x06\x2d\xe2\x32\xe0\x31\x22\x6b\x6e\x8d\x2c\x97\x2a\x47\xd3\x35\xb6\x7a\x1a\x1c\x12\x61\x30\x02\xd8\x24\x08\xd9\xc1\x60\x03\x12\x0b\x4d\xfe\x22\x73\x66\xf3\x9d\x46\xbc\x6c\x64\xc8\x6d\x22\x78\x3e\xdf\xda\xa0\xcb\x10\xcb\x64\xf1\x9f\xf2\xcb\x38\xd6\x54\xfe\xf6\x3d\x1b\x57\xf9\xdb\x43\x36\x33\xe2\xb7\x54\x14\x58\xc6\xa6\xe5\x76\x41\x70\x6d\x1a\x02\xaa\x96\xa3\x69\x3f\x7d\xfc\xe9\xe4\xe4\xe8\xa3\xce\x5d\xdc\x60\xa4\x0f\xa6\x29\xc5\x28\xde\xa4\x54\x6d\x66\x43\x04\x3e\x23\x10\xb8\xc6\x1d\x72\xa2\xab\x81\xb1\x69\x8d\xba\xf8\x93\x99\x88\x8d\xbf\x1b\xe6\xdd\x38\x84\xc6\xb7\xcf\xf0\xf6\xfc\xd6\xbc\xf5\x80\xef\x66\x05\x0e\xf5\x22\x9b\x5c\x18\x9b\x44\x2d\xd7\xf1\xb3\x74\xb3\x3b\x03\x70\x1c\xc2\xa9\x61\x2e\x98\x68\x24\x8d\xbc\xc4\xdb\xca\x41\x21\xc4\x6d\x75\xa2\xdb\x60\xa4\xa5\x5b\x9c\x56\x86\xab\x37\x86\xb8\x04\x1c\xcb\xb7\xa1\x61\x76\x03\xf0\x19\x5b\x75\xf4\x4e\xbf\xeb\x86\x01\xf8\xd6\x74\x6c\xe7\xc6\xf1\x90\xe6\x53\x1e\x23\xf9\xd2\xd8\xfd\x22\x36\x98\xb4\x31\xbf\xb1\xf8\x8d\x70\x4d\x6c\x1e\x64\xaf\x50\x34\x90\xbf\x01\x2e\x58\x80\x61\x66\x1b\x9b\x56\xc4\x85\xad\x69\x04\xfc\xa3\xc5\x35\x95\x29\x96\xd6\xaa\x15\x32\x63\x22\x79\x8c\x1f\xe1\x25\x8f\x98\xe1\x1b\x54\x0b\x6d\xcc\x6e\xb8\xc0\x37\x84\xc9\x0d\x63\x7c\x83\x6a\xbd\x5e\xb0\x1b\x26\xf8\x86\x79\x41\x23\xf1\x03\x14\xbb\x60\xc2\xee\xbf\xc6\xf7\x3b\xc9\xfd\xe2\x52\xfc\x80\x37\x91\x45\xbf\x21\xe8\x03\xfa\x45\x1c\x8c\xc7\x8f\xa6\x1b\xed\x9a\x3d\xed\x16\x3f\xcd\x4f\x9e\x26\xb4\x81\xef\xcd\x5b\x76\xe9\xa5\xea\xb4\xc2\x12\xc1\xd8\x14\xde\x60\x64\x35\xe1\xc4\x52\xbd\x26\xbe\x44\xbc\xca\xd7\x62\x21\x70\xc9\x1e\xff\x1e\xb7\x04\x26\xcf\xb9\xb4\x2e\xc4\x11\xa1\xa2\xe3\xfd\x9a\x2c\x52\x72\xce\xcf\x99\x74\x64\x73\x0d\x20\xab\x58\xd1\xc5\x44\xb5\xd2\xc0\x4e\xd4\x28\xa6\x57\xc6\xfa\x13\x50\x28\xf7\x81\x61\x5a\xf1\x59\x9f\x36\xec\x88\x41\xa0\xb0\x22\xe8\x4d\x2d\x9d\xfa\x58\x79\x59\x98\x7c\x38\x13\xa9\x9b\x32\xe6\x92\xc6\x41\x9b\x3d\xb7\xc4\x4b\x25\x99\x74\x62\x63\x1d\x03\x10\x4f\x9e\xb9\xb0\x64\x3f\x98\x6f\x80\x2e\x79\x34\x69\x4a\xc6\x73\x14\x58\x11\x3e\x1f\x32\xdf\x43\xcb\xc3\xe3\x21\x4e\x96\x2a\x56\x43\xe7\x63\x7d\x3d\x31\x93\x78\x7c\x46\xf9\x1a\xd5\x4f\xf8\x4d\xc9\x58\x91\x83\x2a\x35\x4c\x63\x69\x50\xa4\xf5\x2b\x08\x7e\x40\xfe\x52\x2d\x07\xb5\x12\x98\x59\x18\x56\x10\xaf\xae\x9c\x25\xa2\x7e\x10\x5b\x10\xb1\xee\x2f\x3d\x67\x61\xe2\x6d\x55\x4b\x83\x4b\x94\x92\x15\x07\xf4\x04\x19\x96\x6c\x45\x85\x81\x28\x78\xb1\x1d\x78\x39\x27\x38\x51\x66\x1e\xc9\x0e\x80\x60\x91\x40\xae\xda\x31\x6b\x50\xa9\x59\x83\x47\xab\xb2\x55\xb3\x95\x31\x57\x7a\xc2\x11\xa8\xf5\x07\xb2\xe7\x5f\x30\x7e\x15\xdd\x1d\x9a\x69\x53\x07\xd5\x9b\x68\xa6\xfe\xae\x1a\x5c\x60\xa9\x5d\x43\x24\x48\x4b\xc3\x9c\xc0\xf2\x6c\x3d\xa4\xb4\xe7\x6c\x06\x79\xdc\x33\xb6\xf4\xfd\xf5\xf5\xd8\x73\x94\xb8\x26\xfd\x98\xaf\xdc\x24\x71\xd1\x00\x3f\x89\x41\xa9\x7d\xdb\xef\x52\x9a\x41\x95\xef\xe5\x59\xf2\x10\x60\xe9\x5e\xf4\x1a\x44\x08\x86\xb7\xc0\xc5\x4f\xca\xfe\xe8\x03\x44\x7f\x4a\xfd\xf2\x96\xa6\x91\xe2\xad\x26\x60\x6c\xd0\xb9\x47\x82\xba\xe7\xde\xd0\x8e\x62\x2d\xd0\x0b\x3c\xc9\x41\x9c\x8a\x50\x43\xc3\x4c\x47\x1b\x1d\x97\x9e\x41\xdd\x4f\x6c\x15\x24\x52\x03\xd8\xdf\xd1\xa6\x44\x00\xd1\xe5\x12\xe7\x31\x5a\x4c\x14\xb3\xc7\x7d\x8a\xe6\x33\x00\x8d\x6e\xb7\x9b\xec\x9e\x85\x95\x96\xb8\x83\x14\x4c\xa0\xa4\x21\xe4\xb4\xb6\x2a\xfa\xcc\xd9\x4d\x99\x50\x40\xaa\x49\x0a\xe9\x5c\xf6\x44\x95\x40\x4f\x3d\x55\x92\x99\x65\xcf\x93\x05\x6c\xea\x49\x19\x0f\x86\xea\x09\x54\xf4\xa6\xee\x4c\x0b\x09\xd5\x8d\xf8\x9a\xf4\x7d\x37\x9e\xef\xb3\x85\x99\x59\x38\xaa\x69\xb5\x24\xdf\x57\x6a\x0e\x79\x50\x9c\x08\x09\xbc\x34\xb9\x10\xbc\x63\x0b\x67\xe0\x5b\xac\x31\x03\xc7\x92\x44\xcd\xc0\x91\x45\xcf\x42\xc4\xe1\xdc\xd5\x93\x3a\x89\x2d\xbd\xe2\xe3\x25\xd7\x55\x2d\xd8\x13\x69\xd4\x67\xac\x59\x64\xe2\x56\xeb\xeb\x06\xb4\x15\xd1\x2c\xd3\xa2\x21\x01\xf8\x32\xd6\x8b\x0d\x48\xf7\x5f\xbe\xdf\x17\xd1\xd9\xa6\x7e\xdc\x01\xd6\x2a\x44\x25\x0b\x60\x89\x19\xd0\x3d\x67\xf1\xe3\x3d\xa5\x09\xf0\xc9\xb4\xe2\x38\x1b\x9f\x75\x98\x28\x5c\xb8\x71\xfc\x31\xb1\xe0\x90\x63\x29\xc2\x83\x0c\xc4\x34\x38\xaa\x0c\xd5\x9b\xd5\xd8\xe3\xb0\xea\x18\x44\x32\xad\x2a\x4f\x99\x37\x36\x8c\xc4\xa9\x7e\x7f\x0f\xba\x57\xe0\x16\x0b\xe4\xcc\xe9\x89\x7f\x30\xd7\xd7\x7b\xfc\x47\xe9\xac\x16\x51\x23\xb4\x83\x46\xf6\x09\xe6\x1a\x8a\x67\x9c\xfb\x03\x63\x87\xae\xca\x9d\xff\xfc\x39\x13\xc8\x52\x50\x35\x47\x1d\x2c\x70\xf6\x2a\x4c\x8a\x45\xac\xf9\x50\x40\x14\x3d\x72\x22\x0d\xc8\xc0\x28\x2c\xd9\x73\xc5\x46\xd6\xd5\x4c\x57\x96\xcd\x71\x79\xf7\xf7\x14\xfe\x46\x7f\x0c\x9c\x29\xb0\xf5\x78\xde\x45\x47\x3d\xd3\x56\x26\x4e\xe0\xfa\x00\xda\x81\x68\x4c\x29\xd4\x36\xa4\xf8\x92\xc7\xff\x99\x67\x9d\x6e\x97\x85\x3c\x1c\x64\xba\x55\x13\xc8\x63\xc7\xb8\xa7\x85\x22\x9d\xed\x99\x3b\xa1\xb7\xca\x23\x25\xee\xb0\xd4\x31\xc5\xb8\x2d\x32\xf2\x41\x96\xf5\x52\xf4\x98\x76\x4a\x5e\x6d\xc9\xc3\xd6\xb2\x41\x86\xde\x33\xdb\x06\x3c\x32\xcf\x9a\x9b\xb1\x9c\x0a\xdb\xca\xfe\x32\x68\xf4\xa8\xd2\x06\x67\xce\x57\xf1\x8f\x4e\x34\xf1\xd8\xcf\xed\x6e\xf8\x1b\xe8\xcc\xe8\xae\x90\xb5\x91\xc4\xfc\x8a\xdf\x80\xed\x2d\x01\xf7\x84\xee\xef\x91\x6d\xdb\x69\x54\x10\x5f\x0a\x3e\xf1\x58\xe1\xa5\x88\x35\x37\x64\xae\xd1\xbb\x20\x91\xea\xea\xa4\x1c\x11\x2f\x45\x51\x4e\x58\xa6\xf0\xb4\x9c\x38\x36\xb0\x16\x37\x08\xd2\x83\x45\x08\x68\x11\xcf\xd5\x02\x66\x6d\x91\x8a\xd6\x07\x2c\xb1\x3e\x62\xec\xb3\x63\x6f\x7e\xeb\xfc\x83\xb7\xed\xdb\xe7\xcf\x1d\xde\x0f\xdf\x0e\xce\x9d\x21\x09\x65\x1b\xbe\xe6\x05\x9a\xf0\x4e\x33\x59\x7b\x8a\x13\x50\x89\xd7\x7a\x0d\xa2\x11\xf4\x66\x58\x98\x20\xcb\x37\xa9\x73\x6f\x4d\x3d\xd3\x42\xbf\x2d\xdf\x02\x2f\x3d\xc3\x37\x07\x91\xe1\x9b\x04\xa0\xc7\xfc\x73\x06\x10\xc0\x63\x1f\xf8\xf5\xef\xc7\x06\xc2\x4a\x0a\x3e\xbf\x88\x7e\x6b\x41\x53\x70\xea\xe5\xdf\x62\x52\x37\x92\x05\xba\x5e\x74\x8a\xc2\xd9\x0c\xb8\x2a\x4f\x10\xc4\x02\x3b\xa6\x8d\x60\x17\xe2\xbb\x22\x40\xf7\xe6\x87\x89\x93\x72\x97\x98\x77\xe4\x26\x90\xfc\x8a\xd8\x0d\x6c\xbf\x9f\x51\x61\xa9\xb8\x67\x24\x5d\xc0\x6f\xfb\x80\x0d\xd2\x6b\xc0\xf7\xad\xea\xc6\x59\xea\x12\x94\x28\x5d\x58\x67\xf8\x37\x70\xae\xde\x39\x33\x2b\x10\xff\x12\xd7\xa3\x70\x48\x22\x6a\xb2\xc4\x83\x88\xbf\x0f\x7d\x80\xad\x62\x00\x91\x41\x75\x98\xc0\xd2\xff\x86\xd7\xed\xdf\x34\x0f\x1f\x21\x33\x4a\x88\xe0\x04\x1a\x19\x13\x8d\x5a\x68\x96\x76\x31\x47\xda\x65\x88\xed\x0c\xd3\x0a\x16\xf1\xfb\x1c\xa2\x99\x50\x14\x62\xba\xe9\x2f\x01\x1d\xb9\x6e\x82\xa9\xa6\xc1\x6d\xf2\x27\x70\xed\x67\x9b\x96\xd2\xbf\x43\xef\x9a\x41\xf2\x2f\x2b\xe0\xbd\xbe\xae\xfe\xde\x30\xcd\x81\x3e\x0f\x58\x11\xed\xc4\x74\x64\x7d\x5d\x5f\x57\xbc\x81\x8f\x03\xd1\x98\xd6\xd7\xa5\x3f\x0d\x81\x7d\x51\x7e\x93\xe6\x05\x91\xe7\x02\x8d\xf5\x52\x23\xbf\x69\x5c\xd5\xd6\xbc\xe0\x3a\x1c\xd1\x63\x0c\x1b\x63\xa9\xb1\x30\x93\x21\xa3\xd8\xc4\x3b\x94\x18\x71\x77\xe4\x51\x74\xa9\x0c\x80\x45\xfe\x1a\x04\x56\xb2\xec\x06\x7d\x4b\x5a\x4f\x03\x60\xf1\x41\x1c\x3c\xeb\x59\x11\x5d\xcb\xf8\x63\x7a\x7d\xe3\xef\x52\x4d\x19\x10\x5e\x10\xe4\x4d\xc1\x29\x72\xa6\xb3\x41\xd0\x8d\x3f\xdf\xdf\xbf\x76\x10\xe8\x06\xe1\x8d\x61\xe6\x26\x7f\x51\xbb\xd3\x8b\xce\xe0\x3c\xc2\xf6\x71\x2c\xce\x7b\x96\x94\x0a\x16\x43\xff\xa0\x24\x56\x83\x44\x82\x21\x7b\xf3\x5b\xf4\x0f\x98\x48\x30\x94\x08\x27\x78\x8e\x86\x6b\x24\xcb\x06\xbf\x2f\x86\x7e\xaa\xda\x02\x2c\x12\x3b\x5f\x24\x43\x1c\x09\x50\x1b\xbc\x05\x04\x19\x40\x14\x12\xba\x92\xce\xc1\x70\x61\x91\x49\xc0\x5b\x4f\xfe\x01\xef\xd8\xb4\x1c\x96\x7b\x97\xbc\xcd\x13\xde\x46\x86\x42\x70\x32\x4b\xcf\x8d\x1d\x55\xe7\x60\xc8\x7d\x3e\x96\x64\x6c\x16\xbf\xd1\x17\x0e\x15\xdc\x2f\x0d\x7f\xca\xe9\x1c\x81\xb6\x10\x63\x5d\xa3\xe7\x77\xce\x75\x74\x41\xd1\x0b\xa5\x35\x96\xbd\x5e\xfa\x19\x37\x76\x3a\x0b\x23\xe0\x7e\x70\xd0\x44\xd0\x68\x94\x57\xaf\x09\x48\x2a\xdb\x06\x2f\xcf\x87\x03\x32\xfa\xf8\xad\x27\xef\x4f\x8e\x92\x97\x6d\xd2\x2f\x0f\x0f\x3e\x9c\xfd\xf4\xf1\xf8\xe4\x9f\x9f\x3e\xfc\x78\x70\x2a\xfc\xde\xa3\xbf\x1f\x9c\x7d\x3a\x3b\xf8\xf8\xcf\xa3\xb3\xe4\x97\x3e\xfd\xe5\xd5\x4f\xaf\x5e\xbd\x55\xdc\xb8\x45\x7f\x4e\x36\x55\xce\x80\x90\xdf\x16\x64\x4f\xe1\x65\xe6\x5c\x3a\x52\xdc\x20\xee\xe0\x1a\xe8\xb2\x7d\x57\x22\xc7\x52\x4f\x4a\x04\x59\xe6\x15\xf4\xad\xc7\x7c\x0b\xd7\x78\x3d\xc8\x1c\x6c\x15\x1a\xa5\x7a\x91\xdc\x3a\x75\x53\xe8\x40\xb2\x9c\x99\x64\x14\x19\xef\x83\x21\x2f\x43\x76\x19\xbb\x29\x39\x09\xca\xee\x4b\xae\x34\x17\x56\x5a\xe4\xdf\x39\xfc\x6a\xf6\x5c\x66\x34\x7e\xa0\xd7\x01\x57\xb1\x78\x99\xbc\x64\xed\x60\x6b\xb7\xb4\x15\xec\x3a\xf6\x9a\x58\x50\x66\x9f\x1f\xff\x44\xaf\x8c\xe0\xe8\xc8\x27\x3c\x4b\x55\xf6\x1d\x69\xdb\x2b\x32\x52\xd9\xcb\x23\xae\xa9\x44\xe9\x4b\xa9\xed\xfb\x8c\x2b\xbc\x6b\x29\xa1\xb3\x86\xa4\x15\xca\x79\x45\x04\x77\x87\x38\xd4\xf4\x99\xd8\xd0\x50\x7c\x6d\x3f\xdb\x64\x43\x40\x5f\xf5\x33\x13\x73\xcc\xad\x9a\x1d\xe4\x28\x75\x29\x30\xef\xc0\xfd\xbd\x38\x6d\x5e\xe0\xc5\xe6\xd2\x62\x91\x73\xd6\x08\x12\x8f\x42\x18\x98\xb2\x1c\x1f\x3a\x7e\xa1\xb6\x6c\x5a\x2a\xd5\x80\x1a\xb4\x82\x6b\x99\x7e\xd1\xe5\x2e\x1f\x8e\x8a\x95\x15\x4d\xb1\x29\xe2\x0d\x82\x6a\xcd\x14\x57\xf5\xaf\x96\x6f\x16\xa6\x3e\xe7\x20\x5f\xca\x30\x35\x95\xec\xb5\x15\x70\x69\x64\x1c\x31\xe6\xdd\x62\x2d\xa8\x18\x81\x49\x5b\x6c\x4a\x43\x28\x28\x0d\xc3\xe4\x78\x79\xc5\x44\xfd\x4d\x0b\x25\x06\xa6\xc9\xf4\x05\xf3\x5b\xf2\x7d\x5a\x8d\x37\x8d\x80\xf8\xf5\x12\xbd\x05\x90\x53\xd4\x72\xec\x80\x98\x92\xbe\x1c\xe4\x04\x14\xf2\xfe\x69\x46\x9d\x53\x87\x8e\xef\x5f\x38\xa3\xab\x28\x3e\xe6\xef\xef\x0d\xe5\x05\x04\xb4\x8a\x16\x74\x2b\x9c\x43\x62\xa9\x31\x30\x32\x48\x29\x47\x71\x5a\x0c\x7a\xfe\xdc\x04\xb6\x7f\x8e\x86\x16\x10\x5c\x2b\x24\x3b\xb2\x92\x5f\x9f\xfd\x51\xe2\x71\x8f\xd3\x05\xe9\x3d\xe3\x31\xbd\x29\x4e\x14\x5c\xe0\x81\xa7\x31\x88\x8f\xa7\x3f\x7f\xa0\x8b\x9c\x0e\x5f\x77\xea\x7d\xf6\x02\x43\x58\x03\xe6\x1a\xcd\xc3\x0d\x04\xa6\x15\x58\xb6\x07\xf0\xd2\x8d\x8b\x04\x74\xc6\x0e\x5e\x12\xab\x0f\x58\x21\x5b\x27\x1c\x9b\x1d\x08\x2e\xbd\x08\xc1\xdb\x01\xe1\xb7\x16\xe9\x3a\xfc\x30\xbc\x9a\xcf\x04\xa0\x49\x76\xc1\xe1\xd9\xbe\x04\xe8\x00\x21\xe8\x5d\xcc\x11\x30\x74\xcf\xa5\xd8\x79\x14\x63\xc9\xcf\xd1\x90\x78\x61\x14\xe4\xe8\xc9\x20\x78\x51\x27\x9c\x23\x6c\x6e\x3c\x08\xc0\xdb\x0d\x47\x44\x07\x25\xe7\x09\x48\x40\x42\xcf\xd0\xfd\xfd\xb3\xa0\xcb\x6b\xce\x1a\xc8\xb4\x1c\x1b\xd8\xc4\xf3\x02\xc4\xaf\xd7\xf8\x41\xb0\xbe\xfe\xcc\xa9\x0e\x22\x0c\x42\x38\x75\x7c\xef\xbf\xa0\x53\xe6\x57\x4a\xe7\xc9\x51\x2a\x9f\x54\x7a\x5b\xa5\xa4\x34\x58\x9a\x94\x46\xdd\xfe\x30\x1b\x47\x4c\x9c\x52\x65\x7e\x12\xdc\xc6\x6e\xa2\xbd\x93\x40\x61\x40\x92\x22\x99\xde\x4f\xc0\xa2\x7c\x49\x24\xa6\x04\xed\x6b\x08\x0d\xda\xbf\xde\xb7\xc1\x3f\x62\xfb\x80\x4b\x82\x80\x27\xb8\x3b\x36\xb5\xe0\xe3\x2b\xce\x83\xe1\x4b\xf1\x8f\x01\x16\xc9\xff\xd3\x7f\x89\xd8\xb0\x18\x0e\xc9\xd1\x50\x27\x31\x93\x46\x5b\xce\x39\x22\xa9\x9e\x83\x92\x1e\x46\x2f\x55\xab\xcf\x03\x91\x01\xac\xb2\x5b\x0d\xc7\x34\x07\x42\x9b\x72\x1a\x94\xb7\xbc\x51\xd9\x0b\x0c\xc7\x42\x34\x9c\x11\x33\x77\x88\xfe\x11\x09\xb9\x87\x88\x7b\x4c\xd9\x19\xfa\xae\xf8\x30\x92\x69\x4e\x0a\xb5\x8e\x01\x38\x47\x43\x3b\xb0\x40\x4b\xa9\x86\xc8\x82\x04\x15\x21\x26\x52\xf0\x10\x50\xe2\x93\xe4\xa9\x25\xd4\x43\x10\x18\x81\x71\xb7\xb0\xa0\x69\x91\x6a\xbc\x03\x60\x31\x70\xc3\xa2\x42\x94\xe7\x8f\xc8\x79\x28\xc9\x2b\xc8\x1e\x45\xc8\xce\x16\x20\x51\x32\x41\xc0\x81\xef\x1b\xa8\x42\x57\x22\xef\xc2\x5f\x59\x09\x18\xf9\xd8\xa4\xc9\x44\xf4\x04\xff\x36\xb0\x03\x82\x7c\x3c\xa5\xef\xff\xd6\x64\x61\x8b\x80\x30\x29\x9c\xdd\xce\xc0\xfa\x7a\x90\xc3\xaa\x80\x05\x6c\x7c\x5e\x14\xf6\x10\xb8\x1e\x0a\xe1\x86\xef\xb5\xed\x94\x57\xf7\x90\x2e\x46\x11\x9f\x45\xce\x3b\x66\x0d\x74\x11\xf4\xa6\x86\x19\xe7\x78\x01\x8e\x52\x7d\xeb\x61\x2d\x1f\x6f\x48\x8b\xa7\x68\x11\x08\x45\x01\x28\x3f\x5e\x16\xf8\xf9\xcc\x92\x8a\x5e\xdd\x9e\x39\x97\x64\xb8\x88\x02\x14\xaf\x1c\x0b\xd9\x87\xa1\x0b\xde\x79\x24\x02\x9a\xc4\x5b\xe9\x59\x0e\xe0\x8f\xc0\x9f\x01\x68\xe8\x74\x98\x74\x38\xbf\xb8\xd5\xad\x2c\x8a\xff\x7c\x88\x87\x5a\x48\xe4\x85\x96\x43\x67\xd5\xb7\xcf\xbb\xdd\x2e\x30\x74\x2a\x62\x74\x73\xb8\x96\xa4\x38\x8d\x71\x5b\x14\x01\xdf\x0e\x89\xdc\x74\x23\x38\x8a\x33\xe1\x7e\xdb\x18\x85\x2e\x98\x92\x76\x6e\x4c\x43\x17\x6c\x7c\x73\x07\x17\xe4\x7f\xdd\xdf\xa3\xdf\x48\xfa\x00\xea\x3a\x73\xbc\x1a\x1c\xf7\x5d\xe8\x02\x9a\x86\x1f\xbd\x74\x0c\x73\x60\x64\x9b\x61\x21\xac\xd7\xf9\xe7\x9b\x43\xca\x6e\x2f\x77\xcb\x21\x83\x6e\x0a\x99\x71\x6c\xd8\x93\x8c\x03\x3a\x2f\xb9\xeb\x8b\x1e\x81\x2a\x7c\xff\x34\x00\xd3\x30\xf0\x22\xb4\x41\xb9\x82\x97\x37\x30\x9c\xc0\x7d\x1f\xaf\x08\xfe\x67\x92\x5d\xaa\xcc\x8e\xe0\x90\x6b\x5a\xc4\xde\x00\x66\x17\x02\x77\x3e\x02\x86\x01\xac\x73\x64\x05\x43\xd3\xfe\xce\x20\xd2\x58\x91\x47\x14\xbc\x0c\xc0\x8d\x76\x0a\xf8\x51\xc4\xfd\x93\x26\xf5\x90\x02\xd3\xba\xa3\xb0\xca\x38\x08\x61\x7f\x27\x47\x8e\x82\x74\x43\xd8\x13\xe2\x56\xe0\x15\x14\xf7\xc0\xb7\x05\x02\x08\x67\xf8\xf2\x7c\x38\xc0\xff\xf2\xa7\x73\x55\x9f\x50\xca\xb0\x94\xc3\x00\x5f\x07\xcf\x9d\x21\x99\xf9\x84\x53\x8c\x64\x05\xb3\x62\xd9\x06\xbe\xc8\xe2\x5d\xf1\x4d\x73\x38\x88\xef\x48\xbe\x1d\x9a\x16\x5c\xd0\x0e\x41\x2b\xc0\x5b\xe6\xbb\x1c\x30\x7b\x6a\x4c\x11\x71\x58\xc0\x5b\xc3\x38\x47\x16\xc4\x03\xca\xb2\x4a\xb1\x26\x9b\x8f\xa5\x70\x5e\x3a\x04\xd3\x30\x80\xdd\x28\x9c\x02\x03\xd9\xdf\x61\xdd\x82\xac\x0e\x13\xb7\x02\x59\xd0\x02\x25\x34\x29\x58\x78\x6c\x5c\xcc\x3d\xdf\x4d\x53\x2f\xb2\x14\x07\x4a\xfc\xcc\x0a\x8b\x29\xee\x15\x2f\x48\xdd\xd2\x61\xf9\x9a\x5e\x18\xa8\x6c\x6b\x6c\x86\xe0\x47\x74\xf0\xe9\xd9\x11\xca\x75\x2b\x12\x27\xda\x3a\x0a\x7d\x0b\xd9\x09\x94\x3b\x4b\xdf\x61\xeb\x3a\xd3\x04\x78\x6a\xe9\xdd\x82\x19\xa6\x78\xbd\xc4\x32\xe9\x8e\xe6\xde\x93\xd2\x6f\xf8\xec\x0f\xac\x4b\x80\x08\xf7\x6e\x0e\x1c\x89\xd4\xeb\xb7\x22\x80\x5e\xe3\x1b\x15\xfa\xae\xbf\xbe\xfe\x8c\x20\xc8\xbb\x5e\x44\x79\xec\x10\x49\x97\xb7\x01\x09\x09\x72\x93\x30\x81\xa5\x91\xca\x08\x16\xa2\x11\x68\xe2\x39\x92\x1f\x2d\xbf\x1f\x5f\x4d\xac\xd8\x81\x62\x8f\x3b\xe7\xe4\x90\xc1\xed\x37\xcc\x21\xc3\x19\x2c\x2c\x1a\xd5\x4e\x9b\xfe\x49\x8a\x83\x13\xab\x48\x96\x6f\x23\x23\xb8\xbf\x77\x48\x3f\x4d\x2b\xb2\x89\xc0\xf4\x6c\xff\xbc\x37\x24\xe3\x17\xda\x10\x1b\x0f\xd1\x33\x06\x2b\x88\x5f\x47\x74\x2e\x16\x44\x8f\x8c\x48\xce\x05\x24\x09\x18\x91\xd9\x15\x5a\x82\x85\x45\x68\x87\xe7\xd1\x90\xe5\x20\xcc\xe3\x07\xe2\xfe\x1b\xa6\x35\x52\x85\x5d\xe7\x5d\x14\xfe\xeb\xf4\xfd\xc9\x4b\xfe\xc1\x30\x07\x22\xa9\x19\x1d\x4e\x33\xfe\x91\x84\x76\x45\x91\x33\x32\xbb\x5e\x30\xf2\xe7\x2e\x88\x0c\x4f\x08\xf1\x26\x6c\x67\xde\x73\x5d\xe3\xab\x58\x73\x43\x10\x05\x7f\x43\x1a\xf8\xec\x45\x48\x37\xd7\x68\x0a\x35\x1f\x2f\xdb\xb1\x00\xa1\xc8\x72\x25\x66\x35\x8f\xbc\x56\x5e\x05\xae\x79\x7f\x1f\xab\xa4\x21\x01\x40\x66\xc8\x6b\xf0\xd7\xc4\x8f\xb2\xbe\xce\x50\x9a\x36\xbd\x96\x7c\x99\xe6\x93\xa2\x11\x02\x77\x7d\xdd\x70\xed\xf3\xa1\xb9\xe6\x9e\x3b\x5d\xc6\x5c\xfe\x52\xc7\x06\x14\xed\xb6\x3e\x60\x14\x3b\xec\xcf\xa1\xe1\xd0\xb8\xb4\xb8\x14\xe7\x96\x67\xb9\xe6\x82\xd0\xfa\xc4\xa2\x37\x7e\xdc\xfd\xbd\x4e\x4e\x03\x9b\xdd\x29\xb7\x64\x7d\x9d\x90\xf2\xe4\xfd\xfc\x52\x7e\x0b\x7f\xf9\x20\xfd\x35\x7b\x97\xcc\xce\xc0\x33\xc5\x0d\xe2\x8d\x89\x54\x8c\x89\x2a\x74\x9a\xb4\x90\xba\x30\xa4\xde\xa4\xd8\xd9\x10\x31\x62\x85\xa2\x4b\x0c\xbe\x21\x47\x3e\x70\x44\xb7\x0f\x91\x2a\xb9\xaf\x06\x2f\x19\xc6\x10\x38\x10\x40\x1b\x50\x44\x33\x93\x17\x86\xf8\x9b\x01\x4c\x33\x69\xc1\xc2\xa2\xd5\x98\xd2\x2f\xca\x23\x61\x12\x07\x89\xde\x89\xf0\xeb\xd6\xe4\x2f\x0c\xb9\x9b\x26\x91\x5c\x3f\xd3\x31\x0d\x61\xa4\x92\x21\x7e\x2c\x36\xf8\xd8\x0f\x32\x19\x21\x20\xb5\x55\xf3\xcf\xb6\x24\xd7\x1f\x2b\xb9\xc9\x6c\xb2\x57\x38\xae\x4b\xf6\x5c\x85\x57\x28\x1f\xce\xef\xc7\x0f\xe7\x9f\xd3\x20\x51\x2c\x7b\x54\x1d\xe5\x01\x36\xfc\x9e\x81\x43\x62\x6c\x13\x47\x39\x24\x09\x9b\x03\xbe\x4a\xe0\xde\xa0\xe3\x6c\xf3\x0f\x54\xd7\x8e\x4c\x2b\xea\x92\xb5\x6a\xb3\x7f\x93\xef\x17\x42\xb2\xed\x21\x3f\x5e\x65\xd5\xde\x97\x32\xc5\x79\x1b\x88\x17\x36\xbe\xc3\xa4\xb9\x43\x42\xce\x8f\x63\x5a\x8e\x75\x17\x9f\xd8\x83\x38\x37\x4a\xca\xa2\x4d\x5e\xe9\x97\xea\x12\x82\x3e\x50\xa4\x4d\xac\xc2\x5f\x4e\x20\x7a\x41\x0c\xd2\x43\x5d\x22\x2a\xe2\xc6\xdf\x25\xb2\x4d\xb0\x26\x13\xca\xb0\x44\x12\xd3\x03\xf6\x13\x6b\x6d\x57\x7f\x0e\xcc\x97\x46\x90\xb9\x00\x1f\x19\xe4\x47\x2b\xb0\x83\x97\x41\x17\x85\x54\x64\x9b\x83\xf3\xa1\x39\x08\xe2\x95\x88\x95\x66\x46\x35\xcc\x7d\x54\x06\x3b\xb7\x89\x1c\xd3\xf5\xe7\x80\x20\x9a\x04\x71\xdb\x7e\x0b\xe3\xa7\x04\x58\x2d\x16\x5a\x9b\xd7\xd4\xd8\x47\x1f\xc4\xd6\x15\x32\xbf\x25\x36\x17\xc4\x96\x35\xe3\xf2\x82\x56\x4f\xd1\x97\x45\x29\xf3\x77\xa2\x04\x82\xe0\xda\x83\x61\x90\xe6\x33\xff\xea\x9f\xfc\xea\x9f\xfc\xea\x9f\xe4\x47\xba\x85\x58\x10\xd5\x82\x82\x43\x4f\x45\x80\x93\x60\xd3\x48\xb1\x26\x96\xd9\x8a\xc7\xea\x18\x81\xa9\x48\x0c\x4e\x4e\x32\x3b\x78\x49\x45\xc3\x20\x58\x10\xca\x35\xe2\xd5\x24\x89\x13\x24\xd1\xf9\x90\xf4\xd3\xb4\x08\x01\x32\xe1\xf1\x31\x60\x8a\x49\xf4\xb7\x73\x52\x73\xe0\x9b\x3b\xd0\xa5\x55\x48\x3e\x40\x30\xf6\x3e\x2f\x3a\x74\x8c\x86\xbf\x99\x5d\x04\x3e\xa3\x43\x9a\x0f\x61\x12\xfb\xa0\xfb\xd3\x31\x7d\x32\x21\x29\xf3\x6c\xa8\x74\x43\x25\x8e\x18\x2b\xb4\xbd\x73\x8f\xed\x80\x4e\x6f\xd8\x8d\xe0\x88\x58\x16\xf3\x98\xca\x58\xb6\x51\x08\x32\xd5\x72\x2c\xcf\x1a\xf1\x0c\x7b\x96\x2f\xc6\x73\xd1\x4f\x4e\x3f\x1c\x1c\x1e\x9d\x7e\x3a\x3a\x39\x78\xf5\xf6\xe8\x35\x27\x4f\x4d\xce\x6d\xbf\x8b\xdb\x10\xcd\x9c\x11\x88\x8e\x28\x8b\xce\xfa\xba\xe2\xcb\x35\xf1\xa9\xa7\xa7\xef\x8b\x9e\x78\x7a\xfa\x5e\x78\x54\xf2\x97\xf4\x8c\x83\xc3\xb7\x85\xcd\x3a\x38\x7c\x2b\x36\x48\xf8\x53\x7a\xcc\x87\x83\x8f\x67\xc7\x67\xc7\xef\x4f\x0a\x1f\xf6\xc1\x81\x88\x90\x99\x8b\x8f\xcc\x7c\x29\x3d\xf8\xf5\xc1\xd9\xc1\xe1\xd1\xc9\xd9\xd1\xc7\x4f\x6f\xdf\x1f\x1e\xbc\x8d\x1f\xeb\x77\x49\x19\x34\xac\x7b\x8d\x40\x80\x00\xcc\xbb\xed\xc3\xc7\xe3\x77\x07\x1f\x7f\x15\x6e\xfc\x00\xbd\xa9\x03\x6f\x73\x6e\xfd\xe9\xf8\xd3\xe1\xfb\x93\x1f\x8e\xff\x19\xdf\xe1\xd8\x77\xac\x0a\xd5\x80\x76\x06\xaf\xa2\x20\x26\x1a\x78\x77\x74\xf6\xf1\xf8\xf0\xf4\xd3\x87\x8f\xef\x7f\x3e\x7e\x7d\xf4\x51\xc7\x86\xa1\xf2\xe7\x5f\x7e\x8d\x47\xc7\xb4\x9c\x2e\x7b\xa8\x70\xed\xe9\xd1\xc7\x9f\x8f\x0f\x8f\x3e\xbd\x3e\x38\xfd\xf1\xd5\xfb\x83\x8f\xaf\x3f\xfd\xf4\xf1\xad\x6e\x5a\xde\xfa\xba\x11\x75\xa7\x00\x41\x6f\x14\x7d\xe2\xa5\x3e\x6d\xcf\xb4\x46\xe9\x5f\x3e\xdf\x7e\x62\x34\x4c\xf6\x48\x78\x09\xb9\xcc\x75\xa2\xc9\x45\xe8\x40\xf7\xd3\x1c\xfa\x9f\xe2\x82\x3d\xb6\x63\x5a\x91\x34\x06\xaf\x0e\x4e\x8f\xf0\x40\xe0\xb7\xf3\x51\x08\x85\x1a\x07\x49\x3d\x83\xbe\x50\xc4\x40\x7a\xc4\x8f\x67\x67\x1f\x70\x9f\xcf\xde\x1f\xbe\x7f\x9b\x5a\x0c\xb6\x6d\xcf\xd7\xd7\x8d\xb9\x24\x4c\x24\x5e\x5b\xe6\x6c\x76\x02\x9a\x74\x76\x44\xfd\x57\xaf\x6e\xcf\x6e\x67\xc0\xd0\x21\xa0\x79\x0a\xba\x49\x1d\xb6\xc8\xfe\x8e\xef\x5e\xdb\xb6\x51\xd7\x0b\x3c\xe4\x61\x89\x42\x5d\xf3\x24\xc8\x49\xfd\x05\x58\x04\xa4\x99\x72\xef\x16\x8b\x85\x11\x9a\xa6\x35\x27\x4e\xfe\x1f\x09\x90\x0b\x85\x23\xc2\x2e\x38\x41\x68\xb6\xd1\xeb\xf6\xf4\x6c\xe7\xde\x1d\xfc\x82\x57\xca\xc9\xd1\x21\x59\xf8\xfa\x80\xed\x7d\x28\x4c\xa8\x3c\x0a\x29\x56\x35\x98\xb0\xaa\x4d\xfa\xba\x39\x50\xfe\xf0\x47\xce\x0f\xd1\xcc\xbd\xd5\x4d\x36\xae\x31\x99\x0e\x1b\xc0\x9d\xc5\x62\x61\x09\xc0\xe9\x58\xc1\x8b\xe9\x63\x04\x4d\x88\x89\x2a\x17\x5c\x03\x3f\x9c\x11\xdd\x88\x12\xb9\x45\xc8\xb9\xc4\xd6\x3f\xfd\x6b\x14\x5e\x03\x92\x29\x42\xff\x44\x20\x42\xfa\xc0\x1b\x1b\x12\xa5\x1d\xec\x8e\xc2\xf0\xca\x13\x98\x5f\xf9\xaa\xf9\x96\x4c\x16\x51\x72\x80\xfd\x9d\x8e\x8d\x71\x60\x72\x1e\x57\x7a\x92\x9c\x23\xab\xdb\xed\x06\x43\x1b\xf0\xe8\x03\xbb\xd7\x8e\xab\x6a\x9c\x23\x2b\x60\x0b\xce\xd6\xcd\xe1\xc2\x5c\x18\x89\x83\x56\x90\xca\xd4\x5f\x1c\xe7\xf2\xca\xd2\xf8\xf8\xe4\xec\x2d\x95\x26\x47\xfa\x00\x74\xb3\xdf\xda\x8c\x05\x2f\x30\x65\x47\x81\xc8\x76\x21\xde\xf5\xfa\xe8\xd5\x4f\xff\x4c\x3f\x8a\x7c\x69\x3f\x7b\x26\x9c\x66\x39\x8f\x55\x3d\x57\x90\xcb\xc2\x83\x45\x69\xdd\xf8\xd1\xf2\x61\x24\x3c\x3d\x75\x4a\x35\x7e\x41\x72\x2e\x09\x0f\x17\x0e\xab\xc6\x0f\xce\x9c\x32\xc2\xf3\xb3\x27\x50\xe3\xd7\xa8\x24\xb6\xf0\x26\xa5\x40\x6f\xfc\x32\xe1\xb8\x89\xdf\x10\x7f\x67\x0b\xcf\x0c\xcc\x14\x71\x16\x55\xfc\x12\xbd\x93\x84\x38\x12\x06\xd0\x00\x6b\xd7\x22\x50\x85\x5f\x88\x3f\xa7\x61\x2f\x34\x19\x47\xbd\x5d\x54\xe5\x29\x07\x39\x17\x1c\x9c\x1c\xfe\xf8\xfe\xe3\xa7\xd3\xa3\xb7\x54\x2a\x72\xc1\xaf\x1a\x1d\xc7\x40\xe6\xfd\xfd\x66\x7a\x8c\xee\xef\x5d\x03\x99\xe9\x31\x4a\x53\xf9\xc4\x67\x33\x79\x88\xea\x0e\x3e\xaa\xc5\xda\x44\x99\xd2\x90\xaf\x2b\x15\xea\x77\xb9\x6a\x5a\x99\xd2\x94\xb3\x0e\xa9\x62\x91\xf7\xab\xb0\x4a\xa5\x17\x2b\xb5\x89\x41\xee\x41\x5f\x70\x7c\x97\x1f\x7e\x6c\x3e\x5c\x32\x1f\x23\xca\x28\x9c\x3a\x95\x5c\x1a\xe4\x2f\x33\xd2\x15\x91\x9a\x95\x17\x8f\xf1\xc6\x06\x0b\xf1\xc6\x07\xec\xb9\x2e\xf0\xc7\x4d\x89\xca\xb0\x61\x74\xff\x6e\xfe\xe7\x9c\xfc\x7f\xb8\xc1\xb5\xa0\x5e\x7c\x38\xe9\xba\x05\x86\x85\xfd\x9b\x90\xe8\x35\xad\x8d\xd3\xf1\xc6\x0f\x5a\x1a\x47\x45\x65\x2c\x06\xc8\x05\xb7\xb1\xc6\xa3\xaa\xe7\x9b\x43\x3c\x2a\x2f\xf1\x87\x01\x32\xf0\x3f\x16\x2c\x9b\x44\xa2\x33\xd1\x2f\xdb\xed\xdb\x8f\x47\x07\xaf\x8f\x3e\x9e\x7e\x3a\xfd\xf5\xdd\xab\xf7\x6f\xed\xe4\x8b\xd7\xc7\xff\x3c\x3a\x3d\x13\xbe\x38\x7b\xff\xe6\xe8\x44\xf8\xfb\xf8\xe4\xf5\xd1\x2f\xe2\x0d\x47\x3f\x1c\xfc\xf4\xf6\x0c\x6f\xe9\x4f\x1f\xde\xbf\x3d\x3e\xfc\x55\xfc\x31\x96\x03\xc2\x97\x27\x07\xef\x8e\xc8\x2e\x17\xbe\x8b\x37\x70\x12\xe9\xce\xfe\xa4\xff\xd2\x39\xa4\x03\x14\x5b\x3a\xfa\x9a\xea\xb9\xc9\x85\xb1\xd9\x27\x5e\x28\xb4\x2a\xb9\x32\xb1\x61\xa4\x4b\xb3\xbd\x13\x6e\xa1\x0b\xa4\x73\x30\xf2\x3b\x1f\x42\xdf\x1b\xdd\x8a\xb7\xd2\x81\x4a\xae\x26\x9c\xfe\xe2\x05\x74\x64\x93\x0b\xce\xc2\x2b\x20\x75\x88\xcd\x45\x72\x05\x33\xc6\x7f\x74\xa2\x89\x78\x1d\x9b\x44\xfd\xd3\x27\xba\x54\x3e\xcd\xbd\x4f\x78\xe5\x7c\xa2\x25\xcc\xa3\x4f\x9f\xf4\xf2\x45\x46\x49\x08\xd9\x1d\x2b\xde\x48\xd9\x4d\x23\xaa\xb9\x0a\x25\x94\x7b\x4d\xce\x03\xac\xd7\xc2\xa1\x8d\xb8\x42\x3b\x48\xca\xc4\x41\x11\x29\x00\xce\x03\xa6\xfa\x0e\x6d\xc8\xf4\xdc\x81\xce\xc1\x38\x84\x6d\x80\x84\xfd\x2b\x6c\x3f\x3a\x32\xc4\x7b\xd2\x21\x65\x63\x57\x5f\xdf\x83\xd6\x4d\xfb\xe9\xe3\xf1\x21\x87\xfc\x66\x86\x4c\x43\x52\xe1\x8a\x14\x3c\x21\x50\xe8\xf2\x81\x75\xee\x58\xfe\x50\x00\xcc\xd9\xb6\xed\xc7\x8a\x0d\xab\xb3\x01\x0c\x27\x55\x9e\x89\xfa\x8e\x8d\xc8\xfe\xed\x9b\x3b\xb8\x38\xff\xe6\x2e\x5a\x0c\x7f\xa3\x5c\x0f\xf8\x01\x2f\x03\x5e\x2b\x29\x32\x07\x9c\xba\x26\x8e\xdb\x08\x3f\x23\xc3\xb7\x22\xd3\x1c\xc4\x5f\x90\xc2\x56\xf6\x37\x77\xc0\xf0\xcd\xc5\x6f\xe6\xc2\xb4\xce\x87\xdc\x08\x5e\xd7\x6b\xcc\xcd\x1c\xb6\x2c\x1e\xd5\x38\xaf\xac\xa4\xc7\x8b\x91\xd3\x89\xf7\x92\x5a\x03\xa9\x92\x23\x96\x6f\xde\x91\xb1\x26\x24\xd9\x74\x5d\x9e\x22\x07\x12\xca\x0c\x72\x58\x26\xde\x7a\xfd\xa5\xce\xa8\x18\x1c\x52\x42\xa9\x9f\xbd\xe2\x3f\xc1\x7f\x02\xc2\xf1\xe3\xd8\xdb\xaa\x5f\xf1\x6f\xdb\xcf\xf8\x03\xb6\x78\x01\x15\x81\x6c\xda\x1f\xbe\xc4\xff\x1b\xe8\x3a\x37\x63\x1d\x66\x4c\xf7\xb8\xe9\xcd\xcd\xeb\x6c\xd1\x95\x01\x5e\x23\x91\xa8\x80\x6b\x72\xf4\x3b\x32\x07\x91\x1d\xa5\x06\x21\x1e\x3e\x5d\x7f\x0e\x28\x8b\xbf\x54\xb6\x71\x21\x71\x3f\x35\x68\x44\x66\xe5\xe1\x6b\xf0\x9a\x14\x9f\xbc\x1d\x73\xa9\x73\xf9\x41\x07\xf3\x7c\x93\x2b\xf5\xbf\x7d\x73\x17\x2c\xf0\xba\xfc\x6d\x61\xf2\xe6\xc5\x62\xa3\xc2\x8a\x64\x14\x25\xab\x58\x8c\x52\xc8\x0c\xc5\x21\x33\x12\x08\xcd\xe3\xb6\x88\x43\x56\x31\x69\xbd\x0d\xc4\x38\x4f\x4e\x15\x69\xa1\x43\x2b\x39\x11\x0e\xdf\x9f\x9c\x1d\x9d\x9c\x7d\x3a\xfb\xf5\x03\xd6\x02\x0e\x0f\x0e\x7f\x3c\xc2\x4a\xf0\xd9\xc7\xf7\x6f\x13\x0d\x40\xfe\x5a\x3f\x74\x46\x13\xd0\x61\xe5\x2a\xf0\xf9\x27\x3d\x45\x67\x87\x63\xe7\x0c\x2b\x82\xa5\xdd\x9a\x02\x34\x09\x5b\xae\x6c\xfa\xe1\x3d\xd1\x9c\x5e\x1f\xbd\x3d\x3a\xc3\xdd\xfa\xf0\xd3\x59\xd2\x19\xfc\x87\xfe\xe1\xa7\x33\xdc\x70\x76\x85\x4e\xff\xc5\xdf\x90\x5b\x75\xfc\xff\xf2\xa6\x43\xf0\xc7\x3c\x55\x21\xab\x2a\x63\x70\x26\x82\x2b\x86\xb0\xfe\xc4\x01\x3a\x28\x06\xe8\x90\xdd\xfb\x16\x65\x03\x74\x28\xa9\x90\x97\x0e\xd0\x21\x31\x40\x87\x48\x80\x0e\xfd\x4f\xff\x25\xcf\xdf\x32\x60\x41\x80\xce\xa1\x48\xf5\x87\x08\xd0\x41\x7c\xb8\x26\x6d\x6a\x3d\x40\x07\xf3\x03\x74\xce\x17\x13\xa0\x93\xa4\xa8\x2f\x00\x0f\xd8\x05\x69\x49\x8a\x3b\x45\x65\x29\xe7\x90\x9b\x43\x9f\xf3\xf4\x7c\xa2\x62\x84\xb3\xfc\x70\x85\xdb\x0e\x52\x7f\x43\x03\x1a\x77\x0b\x2b\xc0\x3a\xa7\x75\xc7\xd9\xe9\xa8\xcd\x3a\xd0\xf1\xd2\xf5\x28\x49\xc2\xc6\xef\x51\x48\x28\xf2\x93\xc2\x30\xe2\x83\xba\x17\xa1\x7b\x4b\xcf\x7a\xce\x7d\xc3\x7f\x3a\x97\x9f\x3a\xb4\x75\x04\x3e\xf3\xdc\xc7\x08\x41\xe0\x4c\x75\x73\xc1\x2e\x4e\x73\xf1\xb0\xaf\x29\x0d\x0f\xe0\xac\x6a\x9f\x27\x90\xf7\xac\x88\xce\x7f\x01\x41\x34\x0b\x09\xdf\xb0\x8a\xc1\x3f\x97\xa9\x89\x12\x4b\x00\xaa\x1b\x01\xe1\x88\x12\x72\x50\x53\x87\x17\x21\xca\x10\xce\xb2\xd4\xcf\xca\xa2\x44\x39\xd4\xa0\x32\xe1\x51\x31\x37\xfd\x28\x0c\x02\xa0\x42\x68\xe2\x21\x5a\x38\x17\x21\x44\x06\xb0\x37\x29\x82\x2b\x3b\xec\x9c\x96\x29\x1e\xfc\xf4\x5c\xb1\x46\x88\x87\xf4\x9a\xc4\xc7\x2b\x36\x80\xe4\xcd\x89\x14\x4f\x71\x4d\xca\xbc\xca\x01\xbd\x01\xea\xd2\x46\x12\x7f\x43\xb2\x17\x0a\x91\x41\xe4\xac\x61\x35\x70\x5a\x3d\x26\x8f\xb1\xe5\x7d\x72\x40\xbd\x6a\x47\x1f\x3f\x1d\x7d\xfc\xf8\xfe\xa3\x0d\xba\x3f\xbc\xff\xf8\xea\xf8\xf5\x6b\xe2\x6d\xf8\xe9\xe4\xe0\xa7\xb3\x1f\xdf\x7f\x3c\xfe\xbf\xa3\xd7\x36\xe8\xbe\x7f\x93\x1c\xa4\xef\xdf\xd8\xfd\x4d\xfc\x41\xba\x66\x7b\xb3\xb7\x26\x3e\x62\x7b\x73\x6b\x2d\xef\x55\x3b\x9b\x9b\xa5\x1d\xff\x3c\x29\xd2\xe2\xbe\xe2\x5a\xbe\xe2\x5a\xfe\xaa\xb8\x16\x95\x25\x0c\x13\x54\x4b\x00\x6e\x0c\x74\x7f\xff\xcb\xbb\xb7\x3f\x22\x34\xfb\x48\x75\x55\x73\xcd\xe9\x86\x01\x91\x4f\x58\xa2\x00\x8a\x81\x13\x1d\x42\xde\xd8\xd8\xce\xe7\x1f\x24\x88\x7a\x06\x77\x3b\xf0\xfd\x8f\xe4\xc0\x89\xc0\x8f\x5c\xa0\x26\xd6\x9c\x6e\x52\x01\x99\xc8\xd3\xef\xb0\xb8\x60\x20\x60\xfa\xcd\x3f\xb6\x37\x37\x05\xe6\x10\x2c\x5d\xaf\x01\x44\xe4\x10\xc5\xd2\x5b\x23\x87\xf0\x90\x13\x17\xd3\x77\x99\x6b\xb0\x1b\xcd\x47\x23\x10\x45\x06\xb2\x80\x68\x56\x89\x9f\xcf\xc0\x67\xc4\xb0\xd5\x90\x51\x27\xc5\xa5\x76\xe8\x83\xf0\x15\x45\x77\xd3\xbf\x29\x6d\xe5\x1a\x24\x5c\x1b\x3e\x40\x40\xec\x92\xb9\xe0\x09\x0e\xb0\x3b\x87\xfe\x9a\xdf\xc5\x3a\xcc\xbf\x3d\x34\x61\xfe\x03\xc3\xb7\xfd\x6e\x34\xbf\x88\x10\x24\xcc\xf5\x1c\x81\x63\x9a\x96\x43\x09\x04\x61\x97\xaa\x2e\x96\x8f\xf7\x60\x42\xd7\x0b\xf9\x29\x85\xa5\x0e\xff\x6c\xdf\xc5\xac\x45\x11\x07\x1b\xc5\x3f\x32\x9d\xe6\x97\x0e\x9b\x6b\xe0\x76\x70\x4b\xf4\x81\x2e\xaf\x01\x7d\x11\xfb\x95\x52\xce\xaa\x48\xd8\x72\xe7\xc0\x42\x43\xd3\xfe\xce\xe9\x46\x00\xb1\x3b\xe9\x34\xd3\x1c\x19\x0b\x76\x2f\xc0\x38\x84\xe0\x14\x04\x2e\x81\xc2\x76\x23\xfc\x09\x12\xd5\xc8\xb4\x9c\x62\x1b\xdd\x0b\x90\xbf\xc1\x6a\x98\x77\x62\x95\x64\xd5\x51\x83\x24\x0d\x9e\xad\xd3\xae\x6e\x76\x67\xe1\x2c\x59\xb8\x9d\xd8\x17\xa2\xc5\x0e\xcd\xdf\xbe\xb9\x43\xc9\x24\xf6\xcc\x2e\x0a\x7f\x9a\xcd\x78\x74\x6f\x21\xfc\xda\x33\x17\xbf\x15\x77\x3b\xfa\x21\x4c\x67\x0b\xad\xc4\x71\xa9\xc7\xac\xf9\xfa\x86\x4e\xd5\x3a\x12\xd9\xe9\xf4\x8a\x53\x9a\xae\xc0\xed\x19\xc5\xb6\x3e\x04\xa7\xc1\x46\xdc\x4a\x83\x20\x5a\x5e\xea\xfa\x00\xf0\xb9\x28\xe1\x88\xf7\xc1\x18\x75\x10\xf4\xa6\x0f\x30\x96\xb8\xad\x49\x19\x02\xaa\x26\x27\xb0\xde\x97\x80\xcf\x3f\x2f\xe7\x6f\x0e\x40\x61\xdb\xa7\xce\xed\x05\xe8\x8c\x1c\xff\x71\xdc\xa5\x42\x0e\x6a\x6e\xf1\x0b\xb4\xbe\x0e\x0c\xd3\x0a\x4a\x69\x77\xa7\x00\x5e\x82\x0e\x49\x24\x89\xf2\x72\x30\xa7\x73\x1f\x79\x9d\xa9\xa3\x70\x7c\x2c\x6f\x41\x26\x5f\x90\x2a\xdb\x56\x60\x3f\xeb\x59\xd0\x4e\x8a\x7c\xc4\x19\x8e\xe4\x50\xd4\xa0\xe5\xe3\xed\x30\xf1\xc6\xc8\x88\xe1\x3a\x86\x4e\x77\xc9\x29\xc5\x96\x9d\x38\x53\xb0\xbe\x4e\x64\x9f\x01\xba\x27\xa1\x0b\x2c\xd0\x3d\xc4\x7d\x3c\x7e\x6d\x5a\xc0\x34\xb9\xeb\x1c\x08\x19\x9d\xf8\x4d\x09\xdd\xfa\x4b\x30\x00\xb1\xc7\x3d\x75\x15\xb1\x4f\x28\xb0\x4b\x78\x21\xa5\x0a\x76\x28\x04\x9d\xbc\xd4\xbc\xbf\x3f\x1f\x0a\xb9\x53\x28\x6e\x43\x92\x57\x4f\x1b\x49\xaf\xb7\x92\x0b\x62\x25\x27\x86\xcc\x83\x85\x75\x3e\x34\x89\x6f\x3f\x41\xb1\xae\xaf\xfb\x02\x86\x49\x22\x92\x3f\xfa\x3c\x0b\x23\x52\x74\x41\x50\xc5\x80\xfd\xdd\x5d\x92\x44\xc4\xaf\x02\xae\x6e\x05\xe6\xc2\xb4\xfc\xe2\xa5\xe2\x05\xde\xd4\xfb\x2f\x78\x17\xba\x60\xe5\x2b\x9f\x8c\xa6\xec\x10\x17\xcb\xa7\x55\x67\xe1\x3f\x01\x37\x84\x4b\x3f\xaf\x60\xff\xdd\xf1\xeb\x81\x74\xcb\xf1\x6b\xdd\xb4\x48\x3e\xa3\xf4\x35\xfe\x46\x27\x32\xad\x70\x90\x82\x30\xe8\x80\xe9\x0c\xdd\x76\x52\x79\x20\x0f\x1d\x48\x8f\x49\x6c\xe9\x4a\x7d\x79\xb7\x18\xdc\x9d\x83\xe1\x00\x95\xc4\xca\x67\x0e\x9a\x70\x46\xf5\x95\x3a\xe0\xc5\x8d\x4f\xb6\xd5\x26\x83\x4a\xb2\x08\xcc\x86\x6e\xbe\x44\x03\x24\x82\x3c\x85\x6d\x48\x8a\x40\xe0\x8d\xdf\xd5\x69\xf1\x54\x43\xef\x76\x69\x4f\x01\xd5\x09\x06\xb4\xe3\xeb\xeb\xc1\x33\xac\x8f\x71\xdd\xed\xfe\x3e\xde\x53\x58\x14\x58\x40\x78\x81\x18\x48\x29\xe0\xd0\x61\x8c\x4b\x2e\xab\x8d\xfb\x50\xb4\xf3\x16\x2a\x2c\xc8\x1b\x88\x85\xf9\x4c\x01\x3a\x41\xc9\xe0\xf1\xd6\x87\x86\x5c\xff\x06\x18\x64\xdb\x07\x24\x67\xba\x70\x55\x40\xef\x72\xf2\xd0\xe7\xb5\x40\x8e\x44\xe7\x8e\x9f\xcf\xd8\x32\x09\xbe\xb3\x37\x13\x71\xe0\x3b\x11\x3a\x8e\x4f\x74\x02\xec\x07\x89\xce\x17\x98\x03\x10\x57\x57\x2a\xee\x66\x38\x47\x5e\x70\xb9\x01\x81\xeb\x41\x30\x42\x1d\x14\x3e\xca\x1e\x8e\xf3\x18\x88\xc5\x13\xce\x11\xe5\xf1\x10\xd4\xde\x18\xef\xdc\xe3\x8b\xb6\x4b\x52\x6d\x89\x85\x34\xf3\x9d\x11\x20\x76\x0c\x89\xc3\x75\xbf\xb9\x03\x8b\xdf\xac\x32\x42\x13\xde\x79\x04\x9d\x20\x22\xb0\x90\x07\x29\xed\x1a\xd8\x84\x49\x86\xe5\xe6\x12\x36\x72\x6c\x4d\x32\x42\x2c\x9d\xf4\x7e\x20\xf8\x76\xb1\x69\xca\x8b\xc5\x91\xca\x98\xa6\x15\x71\x5e\x14\xc7\x8e\xba\x33\x07\x82\x00\x7d\x6b\x92\x2a\xee\x3c\x64\xee\xe0\x45\x6e\x45\xb6\x93\xf0\x21\x40\x70\x0d\x20\xa9\x6f\xa0\xd2\xb7\xce\x81\xd5\xed\x76\xd1\x70\x61\x00\x02\xd4\xbe\xbf\x17\xfd\xcb\xba\xe5\x9b\x0b\x55\xb5\x4f\x24\x60\x96\x0c\xd0\x25\x38\x07\x02\x9e\xa1\xaa\x40\x2a\xa2\x9d\x4d\x97\x44\xe7\xc1\xf0\x25\xfe\xdf\x80\xdd\x1c\x9d\x07\x43\x7c\x7a\xc5\xad\xad\x34\x85\x37\x8e\x7f\xf5\xf0\x0b\xd7\xbc\x43\x52\xb1\x21\x30\x34\x69\xf6\xe6\x7c\x3a\xb3\x41\x17\x37\x2a\x9f\x93\x25\x6e\x15\xf3\xfb\xc5\x3a\x4b\xc0\x14\xae\x4f\xe1\x8c\x24\x65\x60\xa9\x1e\xc8\xa4\x94\xd0\x06\xe7\xc1\xb0\xcb\xaf\xa0\xcb\x63\x4d\x7a\xde\x79\x30\xe4\xdc\x31\xdf\xf5\x48\x44\x3f\xbf\xd9\xe7\xc1\x70\x48\xca\x5c\xc5\xbb\x8f\xd1\xb5\x2c\x04\x0b\x1f\xc4\xf1\x03\xf6\xc9\xbe\xe3\xef\x1f\xdc\xe1\x43\x74\xa0\xeb\x0b\x9a\x4a\x4a\x3a\x8e\xd6\xd8\x40\x90\xca\x6f\xd5\x66\xd1\xf3\xdd\x91\x03\x5b\x0e\xaf\x56\x14\x41\x94\x6f\xe8\x59\x6f\x0d\xc1\xdb\xbb\xc0\x26\xf8\x08\x51\x21\x42\x66\x3c\xde\x5d\xdc\xdd\xe4\xe0\xfe\xbb\xce\x29\xfd\xa0\x79\x97\xb8\x43\x0b\xbb\x1c\x01\x07\x8e\x26\x1b\xe0\xb3\x33\x2a\x89\xc8\xb2\x2b\x67\x58\x44\x8f\x1c\x04\x1e\x26\x9d\x96\x47\xb5\xe2\xd7\x8a\x50\x2b\x3b\x95\xbe\x6f\x19\xe4\x00\xb3\xbf\x23\x83\x86\x84\x22\xf6\xf2\x75\xf1\x90\x81\xea\x49\xa3\xac\xfb\xe3\xf9\x7f\xff\x7b\x2b\x0f\xd4\x78\x1e\x81\xee\xef\xd1\x6a\x6d\x34\x32\x32\xa9\xd8\x5e\xc0\xe2\x2e\xb8\x01\xc4\x44\x8b\x87\xcb\x00\xd6\x1d\xb3\x7e\xde\xe1\x05\x01\xa2\xc1\xb3\x4d\x2b\x9a\x84\x73\xdf\x3d\x0d\x21\x1a\x3c\xeb\x59\x68\x02\x41\x34\x09\x7d\x77\xd0\xdd\xb6\xf0\x5e\x1d\x48\x6c\x37\x24\x9f\x06\xc0\x88\xd8\x52\xd6\x25\x40\x3f\x04\x03\xa6\x2f\x26\x3f\x9e\xa3\xf3\xcd\xe1\xd0\xe0\x06\x57\x32\xde\x0b\x73\x41\x07\x4c\xac\x94\xc3\xdb\xda\x8d\x7f\xe2\x66\x24\xe8\x7a\x08\x4c\x4b\x8e\xc9\xcc\x02\x7c\x18\x25\x59\x35\xf2\x9c\x7d\x13\xb7\x3a\xe2\x31\x46\xb6\x29\x6d\x24\x74\x5d\x8a\x82\x89\x6b\x58\x62\x8e\x20\x8f\x11\xec\xc9\x34\x57\x8f\xf0\xf4\x78\x5a\x28\xff\x8e\x71\x1e\x30\xf6\x1e\x6e\xaa\x43\xe1\xe1\xb2\x19\xe7\x98\x2f\x1d\xc6\xda\x63\x0e\x90\xe1\x94\x97\x06\x62\x23\x0e\xc1\x25\xf8\x5c\x42\x5a\xfb\x84\xa4\x03\xa1\x59\x25\xd2\x93\xd6\x56\xf8\x08\x2e\x8f\x3e\xcf\x88\x51\xaa\x9b\xe9\x94\x2f\x7c\x28\x3c\xeb\xc5\x56\xbf\xfd\x1d\xea\x22\x10\xa1\x5a\x92\x81\x26\xbb\x6e\x90\xcc\xd7\xce\x03\x55\x4f\xa2\xda\x3a\xe3\x24\x16\x73\x6e\xad\x80\xa6\x8a\x50\xc8\x99\x37\xbe\xb5\xa0\x90\x3b\x62\xc9\x69\xbb\xec\x7e\x39\x7a\x4c\xd8\xa5\x84\xd2\xb4\x46\x52\x19\xe8\xee\x0a\xdc\x0e\x00\xa9\x2a\x15\xb3\x5f\x81\xe7\xfa\x80\x97\xfa\xbb\xe3\xb4\x71\x12\x35\x05\x3d\xd1\x50\x9c\x0d\xfc\xdb\x37\x77\xfe\x82\xa8\xc6\xe6\x5a\xa6\x38\x60\x40\x40\x86\x7f\xd3\xf5\xbf\x99\xec\x04\x84\xd8\x58\xa2\xd3\xe6\x98\x77\x81\xad\xeb\xc9\xd9\xc6\x38\x42\xa4\x17\xb2\xba\xef\x4c\xad\x85\xa9\x42\xff\xd3\xf0\x1a\x70\xf2\x6a\xf2\x02\x68\x07\x06\xe4\x2f\xf0\xcc\x3b\x48\x5e\xbe\xe0\xe1\x02\x42\x28\x9c\x6a\xb6\x05\x93\xc2\xc7\x62\x6f\xac\x88\xf3\xf0\x66\x07\x21\xc9\x90\xa6\x57\x64\x46\x42\xf9\xc0\x60\x61\x39\xbe\xaf\x20\x58\x92\x4b\xda\x28\xfc\x64\x29\xa3\x5e\x7f\xee\x9b\x62\x23\x98\x8d\xc6\x43\x2b\xe6\x1a\x56\xbe\x62\x4a\x06\x3a\x40\x81\x10\xf2\x63\x60\xe3\xa2\x7d\xc0\xb2\x48\xbd\xff\xae\x7e\xf1\x9f\x0f\x05\xbc\x35\x3b\x43\x74\x9e\xc5\xda\xd1\x9f\x83\x62\x6d\x1d\x79\xa3\x2b\x35\xff\x5d\x43\x18\x5a\x83\x5e\x9d\xdd\x00\x80\x4d\xec\x33\xd2\x96\x34\xff\xb6\x5c\xfa\x2b\x07\xdc\x63\xf7\xc0\xd6\xc6\xee\x66\x0a\xdf\x13\x01\xf4\x91\x4a\xc2\x05\xee\x67\x21\x42\x04\x5f\xa0\x5b\x8c\x5b\x94\xd0\xdc\xe0\x73\x9b\xdf\x7f\x47\xd8\x7f\x8e\x03\x04\xe0\xb5\xe3\x33\xb8\x8e\xc7\xfe\xe4\x68\x22\xfe\xb7\x8d\xb7\x09\xbf\x14\x4b\x55\x5a\xd9\x8a\xb4\xc0\x02\xe6\xc2\xa5\xb5\x0f\x8d\x92\xa7\xfe\x7f\xdc\x5d\xeb\x6f\xdb\x36\x10\xff\x9e\xbf\xc2\x11\x3a\x47\x4c\x28\xbf\x86\xf5\x61\x94\x09\x82\x6e\xdd\x86\xad\x43\x80\xf6\xd3\x5c\x2f\x53\x6d\xc6\x11\x2a\x93\x1e\x49\x27\xcd\x14\xfd\xef\x03\x5f\x12\x45\x4a\x4e\xfa\x58\xb0\x35\x9f\x62\xdd\x1d\xc5\x3b\x1e\x5f\xe2\xf1\x77\x65\x09\x59\xa7\xf6\x5c\xa4\x22\x5b\xf4\xea\xa2\xea\x98\x60\xcb\xa3\xcd\xf9\x23\xa3\xdb\x8d\x3a\x01\x0c\x1f\x0f\x2a\x71\xb8\x54\xb9\x40\x7b\x6d\x5c\xa0\x6c\x98\x3a\xb4\xb1\xe4\x4d\x35\x5c\x7f\xc3\xce\xe7\xc2\x10\x8c\xee\x65\x93\xd7\x63\x42\xd8\xc9\x34\xda\x14\x5f\x61\x53\x9f\x2a\x52\x2a\x24\x21\x6b\x68\x53\x2f\xc9\xe1\x97\x23\xff\xa9\xa1\xc5\x6b\x02\x28\x57\x4e\xcd\xbc\xb8\x20\xcb\x54\x66\xfc\x34\xcf\xae\x02\xba\x79\x5c\x72\x1d\x06\x5e\x34\x9e\xa2\xfd\x11\xb4\x23\x89\x63\xd2\x18\x84\x19\xce\xac\x07\xda\xca\xef\x8a\x80\x52\xef\x0a\xbc\x55\xd0\x4d\xf8\xfe\x71\xc7\xfb\xdb\x12\xc2\x7d\x5c\x15\xe8\xc6\xaf\x41\xba\x10\xd9\x15\x7e\x41\xb7\x41\x8a\xb8\x50\x7d\x97\xd5\x3a\x86\x25\x57\xbe\xb1\x92\x3f\x11\x2e\x7d\xf1\xc2\xbf\x39\xef\xb0\xf7\xfb\xb1\x73\x04\x7e\xef\xbe\xa0\xd6\x47\x55\x57\xd6\x2f\x6e\xed\x0d\x2e\x87\x02\x1e\x35\xfe\xc7\xf6\x42\x34\x10\xf3\x8d\xb8\x1a\xa0\x87\x88\x41\x72\x18\x27\x09\x3e\xc4\x87\xf8\x68\x0c\x8e\x84\x02\xfd\x80\xdc\xeb\xe8\xe1\x4a\xdb\x9a\xc4\x64\x9d\xb9\x60\xe9\x1a\xdb\x3c\x82\x6a\xbc\x59\x30\x9d\x8d\x63\x0c\xa4\xa7\x0a\x73\x2b\xa1\x35\x51\x9f\x12\x7e\x8e\xc6\x8a\xf1\x07\xb2\xdc\xc5\x76\x6c\x3b\x11\x15\x69\xae\x9e\xf0\x32\xf0\xdd\x8e\xc6\x6e\x73\xf3\x26\xcc\x57\x9b\x17\x76\x17\x76\x77\x5e\x5c\xd3\x07\x1a\x05\x50\x41\x4f\xc9\xf2\xb5\xa4\x84\xea\x81\x72\x93\xa7\x37\xed\x22\x67\x92\xd2\x26\xc2\x5b\x6c\x7b\x97\x8c\x5b\x0d\xdc\xda\x98\x5e\xa0\xa0\xa3\x78\x9d\xff\xbb\x1a\x83\xfa\x7d\x9d\xfb\xc4\x62\xb2\xb9\xaf\xff\x02\xc5\xdf\xde\xca\xe2\x95\x96\xa6\xfc\x9a\xbd\xa3\xf3\x89\x70\x84\xc6\x4c\x1f\x97\x9a\x94\x28\xd0\xa5\xc8\x3e\xff\x52\xb9\x93\xbf\x2f\x76\x5d\xcd\xa2\xda\x35\x3c\xdc\xe7\xcf\x2c\xc5\x72\x97\xe1\xf4\xc8\xea\xb9\xae\x34\x44\x41\x83\x0e\xea\x2d\x25\xc3\xe8\x31\x02\x0a\x31\x23\xf3\x44\x7d\xec\x53\x99\x68\xf1\x75\x8f\x57\xe5\x0c\xb4\x33\x95\x41\xe0\x31\x1a\x4f\x20\x43\x69\x38\x77\xbe\x52\xa1\x3b\x31\xab\x9f\xc8\x35\x13\x77\x01\xca\x4c\xb6\x2a\x5c\x3f\x31\x76\x23\xc1\x54\x77\x41\xd9\x75\xca\x96\xbc\x3c\xdf\x30\xaa\xe2\x9b\x9a\x9f\x34\xb5\xbd\x36\xf2\x0d\xcd\x03\xd9\x86\x6b\x98\x50\xe8\x16\x37\xae\x16\x3a\x99\xc8\xd2\x5c\xc5\x7f\xcd\xf0\x1c\x3a\xc5\xd6\x3f\x9d\x56\x04\x7b\x4d\xf4\xd4\xc1\xb9\xc1\x2d\x55\xa9\x37\x40\x69\xab\xdd\x3a\xc8\x3d\x0f\x07\xa0\x93\x5a\x11\xad\x24\x0c\xc5\x8e\x90\xe7\x1c\x60\xda\xa2\x50\x58\x36\x0c\x46\x1d\xdd\xcd\x40\xf9\x2e\x5d\xbc\xef\xae\x66\xe2\xbf\xaf\xa5\x4e\xc7\x68\x74\xe2\xd5\xdc\x54\x8a\x6d\x49\xb3\x05\x5b\xa4\x91\x3f\x95\x3b\x75\x73\xbb\x7f\x57\x07\x75\x5b\xad\xea\xa6\xee\x43\x54\x54\x59\x8a\x76\x7b\x4b\xab\x17\x20\xb7\x65\x67\x58\xf5\x0e\x9d\xab\xd6\xad\x9c\x37\x5c\x3b\xde\x5d\xb8\xf2\x66\xce\xaf\x68\xcd\xf1\x41\x67\x96\xaa\xfa\x8a\x4f\x57\x35\x76\x46\x0e\xd3\xc7\xaa\x57\xd8\x48\x7f\x3d\x7b\xab\xcd\x07\xdf\xbd\x47\x12\x39\xf6\xf6\x72\x15\xa4\x62\x9e\x25\x7a\xdf\x9e\xd8\x6b\xec\x9e\xd0\xe7\xef\x90\x3a\x05\xcc\xea\x24\x82\x45\x33\x86\x74\xd5\x06\xb8\x5a\x6f\x1e\xca\x72\x27\x24\xba\xa0\x6b\xba\x62\xe9\xe6\xf2\x01\x20\x06\x82\x8f\xfe\x90\xd8\x60\xea\x67\xf6\x0f\xa6\x28\xa9\x7f\xe4\x68\x36\xdf\x23\x2d\x43\x33\xd7\x50\xc6\x08\x71\x1d\xf8\xa2\x8a\xc9\x10\x1f\xbc\xc6\x2b\xe9\x6e\xad\x42\x3a\x21\x8c\x96\xd8\x47\x3a\x04\x46\x4e\xad\x46\x06\xa1\xcc\x46\x84\xe3\x98\x43\x01\xf6\x72\x7d\x70\x5f\x10\xba\xc4\x53\x13\x32\xb3\xcc\xb8\x48\xc9\x02\x4f\x09\xe4\x5a\x6e\x9a\x95\x00\x92\xe7\x3a\x11\x2f\x01\x90\x1c\xeb\x1b\x9c\x44\x6f\xc6\xf3\x01\xa7\x4c\xf8\xd7\xa2\xab\x5d\xbc\x2d\x2f\x11\xd5\xbf\x26\xe4\x43\xa5\x1b\xe2\x30\x43\xf6\x63\x05\xa4\xe8\x55\x2a\x2e\x07\x17\x39\xa5\x2c\xce\x86\x93\x6a\x32\xcf\x8e\x47\x27\x1c\x65\xdf\x4c\x4e\xf2\x19\x9d\x57\x05\x4d\xe3\x7c\x46\x93\x71\xfd\xe0\xa8\x41\x06\xc3\xc9\x34\xe6\x68\x04\x19\x1a\xc1\x14\x8d\x74\x0e\x2a\x45\xe2\xd3\x1c\xae\x33\x32\x55\xef\x13\x6c\x4b\x16\xf1\x78\x34\x3a\x64\x60\x38\x1e\x8d\xa0\x4a\xa3\x17\x10\xb9\x21\xa6\x1f\x7c\x4a\xaa\x28\x77\x7c\x46\xd9\x2e\x2e\x32\xc6\x1f\x2c\x84\xe5\xcf\x47\x05\xde\x19\xa5\x89\xef\x1d\xa5\xb9\xdd\x2c\x53\x81\x13\x85\x06\x9d\x98\xeb\xac\x0f\x90\xe7\x48\x2d\x65\x6a\xa8\x51\x76\xe2\x20\x92\x42\x02\xa6\xf5\x1e\x05\xab\xaf\xe7\x2a\x5e\xa1\x35\x97\xbf\x7b\xcc\x46\x80\x2c\xab\x04\x06\x7d\x54\xba\xb2\xca\x15\xab\xdc\x82\x5e\x18\x5e\xad\xc4\x19\xa3\x1f\x6e\xfa\x7d\x67\xbe\x87\xf6\x86\x4c\x04\xf1\x40\x9b\xe2\x54\x05\xe7\x43\x6c\xc3\x04\xe2\x14\x8e\xe1\x4c\x38\x51\x65\xa2\xc3\xba\x0e\xa4\xfd\x30\x53\xa5\x66\x94\x24\x1b\xcc\x54\x20\x30\x25\xc9\xa5\x10\x1b\x03\x7d\xb0\x13\x01\xd7\x05\xc7\xb7\xa5\x52\xd6\xc6\xb8\xa0\x64\xa9\x23\x11\xf2\x0e\xa1\x21\xa7\x6b\x2c\xb2\x35\x0e\x0e\xbe\xe4\x68\xf6\x45\xa3\x94\x00\x3a\x8e\x0b\x15\x18\x36\x53\xd8\xc2\x16\x9a\xf9\x8c\x61\x8e\x65\xff\x8d\xf7\x47\x60\x0e\xf5\x37\xd7\x78\x04\x49\x8d\x35\xbc\x53\x20\xcc\x15\x12\x69\x0e\x11\x39\x90\xf1\x71\xa4\xe3\xb7\xd5\xbd\x5c\x75\x66\xd2\x31\x91\xdc\xd5\x4c\x5f\x61\xd3\x60\xd9\x32\xd1\x61\xf4\xa9\x56\xf7\xf1\xb3\xe3\xe8\xa7\x37\x6f\xce\x06\x7a\xed\xc2\x23\x7d\xf6\x28\x7c\xb2\x6e\x0f\x43\x25\x3e\xf5\x2c\x15\x97\xba\xad\x6e\x6f\xa3\xdf\xa8\xfc\x19\x41\xd6\xc6\xa5\x38\xec\xd1\xc5\xfe\x4c\xe7\x5f\x32\x53\x8c\x8a\x09\xb1\x3f\x6c\x31\xfb\x08\x91\x7e\x5f\x21\xd6\xb1\x79\x1d\x5e\xba\x3f\x52\x1e\x71\xaa\xb4\xf2\x7c\xf4\x67\xc9\x24\x5b\x1f\xc4\x45\x46\xa6\x78\x16\xb5\xba\xc6\x7c\xa0\xa5\x07\x69\x9e\xd3\x6b\xbc\x54\xbe\xcc\x4b\x30\x87\xb2\xb6\xd3\x42\xbe\x7e\xa7\x91\x5f\x52\xb6\x4e\x05\x88\x0b\x75\x58\x37\x1d\xfe\xf1\x76\x38\x2c\xef\x67\xed\xda\x60\x01\x6e\x06\xee\xf7\x1d\xdd\xcd\x84\xfc\x11\xde\xff\xd5\xb8\xbc\x5e\x9d\x7d\x59\x57\xd7\x2d\xae\x9d\xb0\xe1\xe4\x67\x95\x5f\x98\x2e\x60\x31\xeb\x23\x1d\xa6\xa5\x8f\x76\xb4\x6f\xca\xc6\x78\xad\x20\x30\xef\x1a\x20\x61\x83\xf4\xab\x3e\xf6\x89\x0b\xb9\xba\x19\x4b\x4f\xf9\x1e\x73\x91\x11\x65\xd9\xcf\x2d\xca\x51\x40\x15\xd3\x69\xaf\x50\x34\x1c\x93\xf7\x43\x8b\x95\x00\xcc\xcb\xbb\xb3\x4f\xba\xae\xf2\xfe\xea\x93\x7c\xf1\x5f\x38\xc5\xd6\x2b\xeb\xe2\x17\x7c\xf3\x19\x26\x76\xb5\xef\x38\x9c\x76\x35\xda\x68\x74\xa7\xff\x96\x05\x94\x97\xed\x1e\xc4\x66\xa7\xc9\xef\x69\xf2\xf7\x28\x79\xf6\x36\x39\x9f\x17\x63\x38\x9e\x3c\x2d\x1f\x0d\x1b\x89\x02\xee\xa3\x3f\xa3\x79\xfb\x46\xf6\xff\xa5\xfd\xe4\xbb\xc7\x9f\xa2\xbd\x50\xc0\x5c\x0f\x13\x2d\xd3\x15\x60\xa7\x6f\x78\x0e\x9b\xb0\xfb\xcd\xee\x2e\xd8\x8d\xda\x76\x62\x74\x87\x9c\xa8\xd3\xc8\x35\x31\xc1\x0f\xd6\x58\xa4\x33\x92\xae\x31\x8a\x0e\x8e\xf0\xd1\x41\x34\x3f\x00\x5e\xea\x56\xbb\x2e\x07\x90\xa0\xc2\xc2\x12\x3a\x90\x94\x4b\xec\x43\x57\xc5\x02\x80\xd2\xbb\xfa\xe7\xd9\x8a\x74\xdb\x8a\xd4\x21\x79\x3a\x1f\x4f\x9d\xbc\xe7\xe0\x05\xdd\xe6\xcb\x1e\xa1\xa2\xc7\x70\xba\xec\x69\x5d\x7b\x17\x8c\xae\x7b\x52\x93\x9e\x48\x57\xbd\xeb\x4c\x5c\xf6\xa4\x4a\x3d\xa3\xd2\xe0\x40\xef\xa7\xd9\x96\x90\x8c\xac\xde\x60\x2e\xf8\xed\x2d\xc3\x7f\x6d\x33\xd6\x30\x79\xba\xd9\x44\xc0\x36\x8c\xcd\xd1\xac\xd3\x46\xd6\x5c\x11\xbc\xc2\x4c\x8e\xd4\xd3\x68\x32\x98\x0c\x46\x47\x4f\xbe\x7d\xf7\xf8\xf1\xd3\x27\x8b\xa8\x04\x7b\xff\x04\x00\x00\xff\xff\x20\xb6\x7a\x4f\xbf\xdb\x15\x00") - -func web_uiAssetsConsulUi60e32dd57229711d8752c463a9d423d3JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsConsulUi60e32dd57229711d8752c463a9d423d3Js, - "web_ui/assets/consul-ui-60e32dd57229711d8752c463a9d423d3.js", - ) -} - -func web_uiAssetsConsulUi60e32dd57229711d8752c463a9d423d3Js() (*asset, error) { - bytes, err := web_uiAssetsConsulUi60e32dd57229711d8752c463a9d423d3JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/consul-ui-60e32dd57229711d8752c463a9d423d3.js", size: 1432511, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsCssEscape851839b3ea1d0b4eb4c7089446df5e9fJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x51\xcb\x6e\xdb\x30\x10\xbc\xeb\x2b\x28\x1e\x08\x32\x52\x69\xc9\x8d\xf3\x50\xb2\x51\x8b\xa0\x87\x1e\x7a\x52\x6e\x4d\x81\xc8\xd2\xda\x52\x61\x93\x2e\xb5\x4a\x1a\x84\xfe\xb4\xa2\x9f\xd4\x5f\x28\x2c\xd9\x88\xd3\x9e\x86\x33\xe4\xce\x70\x31\x93\x93\x90\x35\x44\x9b\x2e\x9b\x4c\xd6\xd4\x74\x7a\x8e\x93\xaa\xeb\xb0\xab\xca\x0d\xb2\xc7\x54\xcf\x74\xca\xe6\xcf\xec\xc3\xba\xa4\xa6\x2d\x3b\xe6\xd9\x97\xcf\x77\x6c\xd5\x56\x68\x3a\x64\x27\x93\x40\x2e\x7a\x53\x51\x6b\x8d\xc4\x98\xd4\x0b\xb7\xf3\xef\x58\x11\x07\xa0\xe7\x0d\xda\x05\xc3\x9f\x1b\xeb\xa8\xcb\xd7\xb6\xee\x57\xa8\xf7\x14\x48\xa2\xca\xf8\x61\xf6\xf5\x79\x8d\x8b\xd6\xa0\x10\x23\xea\x72\x5d\xe7\xe3\x51\x7e\xfd\x16\x93\x9e\xb7\xa6\x96\x18\xa3\x52\xd9\xce\x61\xab\x24\xef\xcd\xf8\xa0\xe6\xe1\xc1\x64\xb9\xb2\xf3\x72\x95\x8f\x90\x51\xd3\x76\xf1\xd1\x37\xd5\x4b\xbb\x90\xa8\x6f\x8b\x42\x88\x01\xf4\xb8\xae\x72\x48\xbd\x33\xec\x58\x0b\x1e\x4b\xc7\x08\xfe\x19\x4e\x00\x4a\xb7\xec\xd7\x68\xa8\xd3\x2b\x34\x4b\x6a\x14\x35\xce\x3e\x31\x83\x4f\xec\xee\x79\x83\x9f\x9c\xb3\x4e\xf2\x87\x57\xa7\x07\xe6\xf0\x47\xdf\x3a\xec\x58\x69\xd8\x61\x5c\x73\x15\x2c\xac\x93\x43\x4c\x6c\xa0\x20\xd7\x9a\xa5\x44\x15\x3b\x30\x7b\xeb\xd8\xc2\xbb\x34\x2e\x80\xf3\xb8\x04\xa3\xab\xa6\x74\xb7\xb6\xc6\x8f\x24\x13\x75\x15\x45\xf6\xda\x5d\xa9\x24\x04\x49\x6f\x2f\xad\x52\x79\x11\x01\xdd\x40\x2a\x04\x5d\xc3\xfb\xd4\xfb\x74\x7a\x0e\x40\xde\x27\x00\x56\x08\xba\x81\xd3\x8b\xe1\x6e\x76\xee\x7d\xfa\x9f\x26\xc4\xe9\x0c\xa0\xcc\xf9\xfd\x3d\x8f\x48\x93\xdd\xff\x2e\x3d\x53\x11\x67\x3c\x93\x49\x08\xd6\xfb\x34\x04\xe7\xfd\xe9\x2c\x04\x52\x42\xc8\x5d\xe0\xf4\x62\x27\x0c\x51\x97\x23\xbc\xcd\xa2\x1b\x38\x9b\x0d\xec\x32\x19\xd8\xe5\xf9\xc0\xd2\xe9\x54\xe5\xe3\x16\xc3\x06\xd9\x10\x7d\x2c\x14\x11\xf0\x3f\xbf\x7f\xf1\x60\x5f\x56\xb1\x0d\x8e\x6b\xf3\x7e\x6c\x16\x5e\xb6\x2a\x3e\x2e\x12\x28\xa6\xad\x52\xc1\xdf\x00\x00\x00\xff\xff\x8e\x18\x53\xe4\xf1\x02\x00\x00") - -func web_uiAssetsCssEscape851839b3ea1d0b4eb4c7089446df5e9fJsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsCssEscape851839b3ea1d0b4eb4c7089446df5e9fJs, - "web_ui/assets/css.escape-851839b3ea1d0b4eb4c7089446df5e9f.js", - ) -} - -func web_uiAssetsCssEscape851839b3ea1d0b4eb4c7089446df5e9fJs() (*asset, error) { - bytes, err := web_uiAssetsCssEscape851839b3ea1d0b4eb4c7089446df5e9fJsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/css.escape-851839b3ea1d0b4eb4c7089446df5e9f.js", size: 753, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsEncodingCdb50fbdab6d4d3fdf574dd784f77d27Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x7c\x7b\x6f\xdb\xb8\xf2\xe8\xff\xfe\x14\x8e\x81\xd5\x8f\xac\x29\xaf\xa8\x97\x65\x37\xac\xb1\x7d\xec\x41\xb7\xbb\xa7\x8b\x3e\xfe\x32\x8c\x40\x91\xe9\x98\x8d\x2c\xf9\xea\x91\x34\x37\xf6\x77\xbf\xe0\x4b\xa2\xfc\x48\x53\x9c\xbd\x3f\x1c\xa0\xa8\xf9\x18\x0e\x67\x86\x33\xc3\xe1\x90\x0a\x58\xd5\x59\x52\xb1\x3c\x03\x19\x7c\x1c\xd4\x25\xed\x97\x55\xc1\x92\x6a\xd0\xd3\x1d\x7d\x0a\x32\x44\x51\x01\x1f\x0b\x5a\xd5\x45\xd6\xa7\x97\x24\xb3\xac\xec\x92\x14\xfb\x41\x9d\x2d\xe9\x8a\x65\x74\x39\xb8\x20\xd5\xc3\x96\xe6\xab\xfe\x26\x5f\xd6\x29\xb5\x2c\xf9\x3b\xa2\xdf\xb7\x79\x51\x95\x96\x75\x91\xcd\x07\x34\x4b\xf2\x25\xcb\x6e\x6c\x96\x2d\xe9\x77\x5a\x0e\x16\x96\x05\x4e\xb6\x93\x82\xfe\x9f\x9a\x15\x14\x0c\x46\xbf\x1e\xf6\xda\xe3\x80\xd2\x18\x87\xd7\x6e\x30\x19\xe3\x70\x79\xed\xaf\x96\x38\x74\x29\x75\x23\x6f\xe9\xc6\x34\x18\x7d\x2b\x07\xf0\x14\x56\xd8\xbb\x8b\x8b\x7e\x41\xfe\x8a\xab\xf5\x68\x95\xe6\x79\xd1\xb2\xc9\xb8\x04\xd8\x0a\xdc\xe5\x6c\xd9\x77\x08\x21\x19\x94\x0c\x3f\xee\x7b\x6c\x05\x32\x42\xc8\xc7\xeb\x6f\x34\xa9\x40\x06\x55\x4f\x3f\xeb\x55\xeb\x22\xbf\xef\x7f\x79\xd8\xd2\x77\x45\x91\x17\x60\xf0\x26\xaf\xd3\x65\x3f\xcb\xab\x7e\x92\x67\x77\xb4\xa8\xfa\x71\x71\x53\x6f\x68\x56\xf5\xab\xbc\xbf\x64\x62\xb2\xb8\x78\x18\xc0\x7d\x33\x35\x47\xa9\xa5\xeb\x68\xe9\x62\x77\xbc\xe7\xd4\xe6\xa4\x6a\x89\x2c\x39\x64\xb5\x66\xe5\xa8\xca\x6f\x69\x56\x92\xf9\x62\x54\xa6\x2c\xa1\xa3\x24\x4e\x53\x90\x41\x64\x74\x8e\x0a\x7a\x47\x8b\x92\x02\xb8\x2f\x47\xdb\x22\xaf\x72\xbe\x44\xe4\x91\x66\xcb\x8f\xab\xcf\x55\x41\xe3\xcd\xb4\x59\x7e\x4d\xc0\x85\x89\x20\xa5\xd9\x4d\xb5\xde\xa3\x82\xc6\xcb\x63\xd0\xfe\x31\xe8\xcc\x6c\xda\xe6\x5b\x00\xa7\x36\xde\xa3\x6d\x41\xb7\x34\x33\x50\x48\x51\xff\x56\x14\xf1\xc3\x88\x95\xe2\x97\x8b\x75\x95\x17\x80\xf3\x4c\x49\xf6\x92\x2a\x94\x2f\x61\x07\x67\x5d\xae\x01\x95\xa8\x61\x8f\xa6\x25\xed\x1f\x75\x67\x70\x8f\x78\xe1\x1f\x98\xae\xce\xca\x35\x5b\x55\x80\x8e\xe4\xef\xa9\x39\x35\x4c\x06\xf7\xfb\x76\xa5\x62\x6e\x35\x62\xda\x0c\x1e\x29\xc9\x5b\x9a\xe4\x4b\x5a\xf4\x29\xaf\x0e\x60\x4f\x5b\xd6\x6e\x17\x06\x81\xe7\xb5\x9a\x51\xcb\xf5\x3e\x18\xfe\x65\x4d\xfb\x1c\x41\x7f\x9b\xb3\xac\xea\x0f\x86\xd9\x70\xd0\x4f\x1a\xc5\xbb\xa6\x7d\xa1\xfa\x74\x39\x32\xb5\x2c\x35\xb4\x2c\x23\x9f\xab\x82\x65\x37\x20\x83\xa3\xaa\x60\x1b\x00\x47\x55\xfe\x67\x7e\x4f\x8b\x37\x31\x57\x18\x24\x55\xbd\xd5\x9a\xd1\x3a\x2e\x3f\xde\x67\x7f\x17\xf9\x96\x16\xd5\x83\x54\xb7\x04\x65\x70\x96\xcc\xb3\xc5\x34\xab\xd3\x54\x68\xeb\x8a\xcc\x1f\xb5\xdd\x95\xd3\xf9\x63\x1a\x5f\xd3\xb4\x9c\xce\x07\x75\xc6\x38\x49\x36\xb6\xb1\x5d\x57\x2b\x3b\x1a\xa0\x81\xf1\x1b\x0d\x16\x28\x8b\x37\x74\x3a\xf8\xfa\xe5\x77\x3b\x1a\xec\x17\x68\x4d\x63\x8e\x65\x2a\xd8\x7d\xa7\x70\x0e\xf6\xe8\x34\xfe\x28\x0c\x07\x68\x90\x6c\xd5\x6f\xc9\xae\x37\xb2\xa8\x0a\x1a\xfd\xfb\xd7\x7f\xf1\xea\x1e\xb5\x43\x93\x92\x95\x79\x1a\x57\x2c\x73\x39\x7c\x99\xdb\x51\x14\x4c\x6c\x5d\x61\x85\x8d\x1d\x2c\x2b\x66\x07\x2f\xab\xe2\x95\xd9\xae\x2a\x53\x3c\x89\xc6\x03\x34\x48\x79\xb3\xc2\xde\x10\xf1\xf9\xa3\x9e\xe3\x34\x21\x9e\x49\x88\x67\x12\x32\x31\x08\xf1\xda\xb2\x67\xce\xdd\xad\x70\x42\xb8\x94\x53\x4f\x13\xe2\x1d\x13\xe2\x9d\x21\xc4\x37\x09\xf1\x0d\x42\xb0\x63\x10\xe2\xb7\x65\xdf\x9c\xbb\x5b\x69\x08\xf1\x35\x21\xfe\x31\x21\xfe\x19\x42\x92\x87\x82\xa5\x29\x4b\xf8\xe2\xb6\xc5\x86\xb4\xc0\x20\xcd\x37\xc8\xd1\x1d\xbc\x1c\x98\xd4\x74\x2b\x92\xb4\x23\x62\x82\x0e\x31\x71\x11\x5f\x8b\x59\xe3\x72\x93\xdb\x63\x27\x92\x8a\x26\x91\x87\xb4\x53\x63\xba\x26\x88\x6f\x46\xd2\x64\x13\xdb\x18\x77\xa4\x1a\x76\x2a\x36\xed\x56\x99\xc1\x98\x3b\x36\x18\x0b\xdb\x72\x68\xf2\xd2\xad\x48\x2d\x3c\x62\xec\x9c\x01\xdc\x14\x94\xde\xb6\x74\x72\x0e\x69\x9a\x57\x57\x13\x97\x17\x75\xaf\xf8\x8d\x4c\x3a\xc7\x26\x95\x06\x65\xb6\x41\xf1\xd8\x24\xac\x5b\xd1\xb6\x52\xd6\xd9\x15\xad\xaf\xe4\x3c\x47\x44\x8f\x8f\x89\xe6\xed\x11\xed\xc8\x7a\x4d\xaf\x0b\x7a\x3f\x40\x83\xa6\xd0\x50\xd9\x21\x39\x6a\x24\xcd\x89\xf6\x22\x83\x68\xa3\x1c\x99\x74\x76\x2b\x5a\x9d\xef\x58\x59\xc7\xe9\x31\xb9\xd1\x19\x72\x59\x97\x0a\x5e\x4d\xf3\x1b\x96\x9c\xc4\x61\xbf\x3f\xb3\x52\x1d\xad\xd1\xc6\x28\x58\x09\x4c\x2d\x31\xcd\x54\x94\xd3\x50\x1b\x5f\x78\x3c\x1d\x76\x3a\xb3\xb5\xf8\x3d\x13\xa5\x51\xc1\x27\x5c\x09\xf6\xce\x20\x31\xcd\xd2\xac\xe0\x13\x6e\x00\x9f\xf3\x03\x93\x0e\xdf\x81\x89\xd2\xa8\xe0\x8e\x79\x8b\x5a\x3a\x39\x31\x4b\x70\x86\xd4\x53\xb2\x39\xb4\x99\xdb\x9c\x45\xc5\x00\x0d\x6e\x73\x26\xff\x8f\xd4\x8f\xad\x5a\xa3\xab\xa2\x41\xf3\xe1\xe3\xfb\xc8\xfe\xd4\xc1\x20\x41\x6b\x3d\xa8\xee\xc2\x7e\x3d\x98\x6d\x13\x27\x2c\xab\xf2\x72\x3d\x40\x83\x4d\x9c\xc8\xff\x9b\x96\xef\xf6\x26\x4e\xec\x22\xdf\xc4\x59\x83\xa6\xed\x37\x31\x2d\xf3\xd2\x8e\xc6\x1d\x07\x84\xcd\xcd\xcd\xac\x88\x72\xc5\x4a\x3b\x74\xb9\xea\xdc\xb3\x6c\x99\xdf\xcb\xe1\x7a\x12\xb3\xad\x43\xf0\x16\xbb\x81\x39\x48\x55\xbf\xdb\xaa\xe7\x10\x81\x68\x3c\xc2\x80\xbb\x18\x70\x8b\x01\x9f\xc2\x80\xbb\xfe\x3a\x2b\xd9\xd5\x77\x6f\xe4\xdb\x78\x12\x46\xc2\x6f\x27\x4c\x38\x66\x8e\xc0\x95\xe1\x02\x9e\x74\xbc\x07\x56\x11\x03\xee\xea\x99\xb9\x03\x9b\x1b\x9f\x29\xac\x8e\xc6\x75\x2a\x4d\x28\x80\xb5\xed\xf1\x42\x5d\xda\x9a\x20\x83\x05\xb7\x65\xd1\x3d\xc5\xa2\x7b\x2c\x24\xaf\x8b\xc1\x6b\x31\x78\xa7\x30\x78\xc7\x18\xfc\x8e\x0c\x02\x93\xf5\x89\xb9\xb1\x9a\x4e\xd2\x08\x44\x26\x26\xb7\xdd\x0a\x67\x9d\xb7\xa4\x81\x66\x3d\xe8\x52\xeb\xb7\xd4\x1e\x6b\x95\x68\x3c\xa2\xf6\x00\x43\xd0\x62\x08\x4e\x61\x08\x8e\x31\x84\x5d\x0c\x61\x8b\x21\x3c\x85\x21\x3c\xc6\x30\xee\x62\x18\xb7\x18\xc6\xa7\x30\x8c\x8f\x31\x44\x5d\x0c\x51\x8b\x21\x3a\x85\xa1\xbb\x9b\x48\x7b\x37\x02\x21\xd9\x50\xdf\x16\x31\xcb\x98\xe1\x04\x0e\x00\xcd\xb0\xfa\x4f\x7a\x13\x27\x0f\xfd\x92\x65\x37\x29\xb5\xaf\x1f\x2a\x75\x6c\xe0\x91\xf5\xd9\x30\x3b\x59\xb3\x8c\x96\x72\xc7\xbd\xb9\x76\x3d\xec\x6a\xd5\x09\x22\x59\x8f\xb8\x7d\x34\x5d\x37\xd7\x57\xdd\x92\xad\xfa\x6f\x5b\xbd\x52\xbc\xf3\x36\x4d\xf6\xbf\x5e\x7f\xe8\xf0\x7b\x73\x8d\x23\xc7\x6b\xbd\x86\xae\x9f\xe0\x67\x53\xa7\x15\x93\xec\xbc\x91\xc4\xf6\x41\xc9\x36\xdb\x94\xad\x18\x5d\xc2\x67\xf0\x78\xcd\x6e\xb8\x4e\xf1\x1f\x7b\x7d\x5b\x26\x25\x67\x31\xb3\x55\x73\x52\xaa\xc2\x77\xfb\xbb\x6c\xd3\x44\xbd\xe6\x95\x67\x52\x54\x15\xf1\x92\x89\x54\x40\xfa\x1c\x92\x92\x92\xd6\xc9\xf6\x76\xb9\xda\x54\xdf\xe2\x6d\xac\x96\x80\xd6\x89\xfd\x6d\x2b\x48\x51\x45\x4d\xca\xbb\xaf\x6f\xec\x3f\xfe\x3e\xde\x42\x5d\xc7\x75\xc5\x08\x2e\x7a\x5e\x31\x07\xf1\xad\x4e\xb4\x1d\x8d\x14\x07\xdc\x6f\x8c\x0b\x62\x53\x4e\x3c\x57\xfc\x5e\xdd\xc6\xd9\x37\xee\xbd\x44\xaf\x2d\xbb\x45\xf9\x4a\x95\xe5\x8f\x56\x62\x0f\x7f\x13\xa4\x8a\x66\x3d\xe7\x67\x01\xff\xc7\xfb\xcf\x3f\x10\xdc\x1f\x8a\xeb\xe7\xca\xea\xb6\x10\x4b\x75\x5b\x26\x41\xe8\x60\xe5\x7f\xb9\x90\x44\x47\xe3\xd0\x26\x62\xf7\x2d\x68\x9c\xf1\x42\x79\x95\x5c\x71\x70\x5b\xc1\x77\x1a\x04\xa8\x44\x27\x4b\x57\xaa\xa8\xf9\x9b\xf8\x93\x8e\xfc\x3f\x7c\xfa\x01\x4f\x1f\xc4\xc4\xcf\xe2\x48\x2d\x9d\x20\x7e\xfd\x7f\xed\x9b\x6b\x5b\x59\x55\xb3\x8e\x49\xd6\xad\xd9\xf4\x7b\x65\xb6\xdc\xb6\xb1\x48\x41\xb7\x69\x9c\xd0\x0d\xcd\xaa\xce\x3a\xf3\xe3\x38\x0e\xaf\x69\xe7\x28\x8e\xc3\xd7\xef\x4e\x40\xa9\xd3\x3b\x0e\xd3\x43\xf0\x3f\xdf\x1d\x78\xaa\xba\xa4\x85\xad\xd3\x84\xad\x5f\xea\x34\x9f\x12\x14\x2b\x13\x9a\xa6\x71\x46\xf3\xba\x34\x85\xb4\x40\x09\x79\xdc\xf7\x56\xa3\x55\x5e\xbc\x8b\x93\x35\xe8\xe4\x30\xb3\x51\x03\x7a\x0e\x40\xd2\x76\xa2\x97\xc2\xc7\x64\x4e\x17\x24\xdb\x43\x28\xff\x89\x7c\xe1\x12\xad\xd1\x0d\x79\xdc\xa3\xad\x98\x57\xe7\x53\xae\x64\x86\x47\xe7\x6e\x2c\x8b\xce\xb3\xc5\x6e\x27\x52\x21\x0d\xd0\xb5\x04\x92\x69\x47\x3a\x12\x99\xc8\x8f\x2b\x90\xe9\x9c\x8f\x8d\x09\x21\xc5\x8c\x0f\x9a\x16\xed\xb0\x7b\x20\x73\x47\x17\xe0\x38\x8b\xc9\xb2\x7e\x06\x55\x4e\x49\x25\x84\xde\xcb\x2e\x2e\x33\xee\xce\x47\xfd\xb7\x6c\xd9\x7f\xc8\xeb\xfe\x2a\x2f\x6e\xa8\xc8\x3c\xb2\x2c\x49\xeb\x65\x6b\x3f\x3f\x93\x4c\xed\xaf\x58\x51\x56\xb3\x36\x51\x75\x32\x65\x3b\xa7\x8b\x96\x81\x4d\x93\xfe\xba\x00\xd5\x9a\x95\x7d\x96\x95\x55\x9c\x25\x22\x43\x0c\x8f\x33\x62\x6f\xe2\x34\xa5\xcb\x7e\x5c\xf6\xe3\xbe\x46\x72\xc4\xc6\xff\x64\xf4\xfe\x7f\x38\x19\x19\x91\x59\xda\x0b\x42\xb2\x59\x93\xc9\x9a\xea\x84\x12\x25\x0c\x50\x95\x0a\xbd\xd2\x84\x12\x2e\x63\xd5\xb6\x94\xf9\x37\xb3\x89\xdd\x64\x79\x41\x5f\x7f\xfc\x8b\x5c\x60\xd5\xf4\xfa\xe3\x5f\x25\xa5\x59\xdb\x20\xd2\x75\x57\x9b\x7c\x49\x49\xc7\x88\x34\xd6\xfc\x2a\xcb\xab\xab\x55\x5a\x97\x6b\x72\x81\x55\xae\x39\xe5\x8b\xcd\x56\x80\xcf\xc5\xd7\x7a\xb7\xeb\x8c\xe5\x4d\x23\x6e\x13\x4a\x26\x9f\xe2\xec\x46\x0b\xe5\x6b\x76\x9b\xe5\xf7\xad\x87\x98\xf6\x07\x43\x89\xec\x62\x3b\x97\xa3\x16\x5d\x45\xd0\x89\xc5\x2c\xaf\xfa\xdb\x82\x96\x34\xab\xfe\xbf\x2b\xc3\x81\x98\x0b\xf4\x3a\xcf\x53\x1a\x67\x80\x8e\x56\x71\x15\xa7\xd0\xb2\xc0\xb1\xfc\x44\xd7\x00\x1a\xc0\xcd\x0a\xb4\x03\x8c\x45\x71\x9a\x9c\xa4\xf4\x19\x3a\x13\xb9\xdb\x49\xd8\x66\xfe\x2e\x39\x42\x48\x07\xb9\x4d\x01\x21\xe6\xd7\x64\x10\x42\x0e\x29\x94\x50\x2d\x01\x07\x04\x49\x2c\xad\xbe\xdf\x01\x71\x45\x72\x52\xdf\xef\xfe\x63\x7d\x2f\x08\x03\xc5\x53\x0a\x2d\xf3\xbd\x1d\x85\x3e\xd0\x46\xd5\x2a\xd9\xd6\x42\x2f\xd4\x0a\xcd\x94\x1c\xba\x7b\x03\x57\xb4\x16\xf2\xdf\x1f\xff\xfd\xf9\xcb\x6f\xff\x7e\xfb\xdb\xa7\xb7\x57\x71\x9a\xe6\xf7\xd2\x4f\xeb\xc4\x2c\x94\x4e\xae\x22\x29\xa0\xad\x75\x52\x6d\x9d\xb4\xb1\x4e\xd3\x18\xaa\x63\x63\xa8\x7e\xc6\x18\xa8\x34\x86\x9b\x79\x75\xca\x18\xde\x65\xff\x8b\xc6\x70\xb0\x36\xd5\xbe\xbd\x27\x68\x5b\x53\xa0\x85\x80\x5a\x11\x59\xd6\x20\xc9\xb3\x32\x4f\xa9\x70\xed\x96\xa5\x6a\xa3\xfb\xb8\xc8\xc0\xe0\x0b\xfd\x5e\x69\x4e\x78\x4f\x55\xd4\x49\x95\x17\xfd\x44\x6a\xd0\x3d\xab\xd6\x0d\xe9\x7d\xb1\xb5\xa1\xfe\xfd\x9a\x25\xeb\x3e\xd7\x42\xa1\xaf\xcb\x51\x6b\xad\xff\x90\x11\x1d\xea\xff\x03\xdf\x5a\xa5\xc3\xcb\xa4\x52\x21\x46\x1c\x54\x11\x07\xe5\xc4\x41\x25\xc1\x6e\x84\x6a\x82\x27\x58\x4a\x6a\x1d\x67\xcb\x94\x16\xa4\xdd\x99\x51\x2a\xcc\x47\x6c\x88\xa9\x65\x71\xd1\xe4\xfa\x9e\x8d\xa3\x88\x41\x21\x56\x5b\x02\x40\xbd\x7d\xf2\x26\x87\x70\x58\x3e\x9a\x82\x14\x39\x08\xbb\xe3\xe6\x8a\x2e\xed\xa9\x66\x3c\xf1\x91\xeb\x7a\x10\xe6\x04\x23\x46\x3c\x6c\xa5\xf2\x2e\x47\xf5\xbb\xae\x8f\x5c\x6f\x02\xa1\xeb\xfa\x92\x04\x50\x12\x1c\x3a\x10\xb9\xde\x58\x35\xd4\x04\x07\x13\x88\x72\xe2\x22\x46\x70\xa0\x30\x08\xab\x17\x28\x7c\x07\xb9\xbe\xdf\xcc\x2d\x48\x76\x7d\xa7\x45\xe7\xfb\x90\x43\xb4\xe8\x7c\x8f\xa3\xf3\x10\x23\x63\x2b\xdd\xeb\xed\x95\x87\x10\x1a\x69\x89\xea\x06\x21\x23\x39\xa9\xba\xe2\x44\xd9\x48\xdd\xae\x81\x14\x36\x42\x32\x01\x18\x61\x97\x97\xe1\x2e\xf4\xac\x14\x81\x6a\x48\x30\x34\x45\xcb\xe7\xea\xc9\x9b\x1b\xd6\x3b\x98\x66\xb5\x6f\x17\xf8\xbb\x8c\x9d\xc4\xd2\x9e\x5d\xc2\xa2\x5d\xc2\xa2\xb3\x42\x39\x28\x1a\x26\x0a\x31\x1d\x43\x55\x8f\x82\x02\x71\x3a\x5d\xc7\x1f\xc3\x19\x60\x04\xa3\x8a\xe0\x89\x0b\xa7\xbc\xc7\x75\xfc\x08\x85\x41\xe0\x05\xa2\xcf\x45\x15\x71\x5d\x5f\xf6\xf1\xe6\x10\x61\x8c\x7d\x8c\x31\xdf\x2f\x18\xf1\x78\xbf\xef\xc0\x9e\xbe\xd5\x2b\xc9\x1c\x14\xaf\x5e\x85\x2f\x18\x1c\x56\x8b\x97\xec\x95\xf3\x52\xaa\x68\x4c\x44\x33\x60\x36\x86\x3d\x75\x67\x88\xdd\x88\x4b\x28\x86\x88\xd9\x04\xeb\x85\x28\x0d\x01\x7c\xec\x46\x72\x4f\x09\x82\x22\xd6\x0a\x82\x75\x04\x51\x01\xd6\xae\x66\x4f\xde\xef\x66\x73\x66\x63\x37\x5a\xf4\x8c\x25\xe1\x1a\x3d\xe3\xab\x39\xcd\x0d\x1a\x6e\x25\x0d\x3f\x9a\xfd\x67\x96\x81\x5c\x83\x02\x65\xf0\x60\x6e\x66\x59\x35\xdf\x71\xd8\x10\xbb\x91\x41\xc0\xbb\xd3\x66\x2e\x4d\xdc\x39\xab\x17\x75\x4b\x50\x6d\x59\x8e\x9c\x40\x58\xad\xfc\x29\x5b\x2a\x39\xf2\x54\xda\xf9\x05\x21\xf5\x6e\x77\x02\x7a\xb7\x03\xc6\xac\x42\xe9\x21\xe2\x0e\xa3\x84\x8f\xa9\xdc\x03\x29\xa8\x91\x1f\xa1\x60\xcc\x95\x23\x25\x07\x37\xc1\xd9\x2b\x6f\xe2\xe3\x89\x65\x65\x97\x38\x9a\x50\x6f\xb7\xcb\x5e\x61\xd7\x1b\x07\xe3\xa0\x63\x17\x6c\x05\xc6\x7e\x30\x36\x1e\x03\xf4\x83\x89\xe7\x05\x82\x4a\x8a\x0a\xe2\x28\x2f\x77\x0f\x74\x4a\xc2\x2e\xf8\x9e\x55\x0e\xa4\x1e\x52\xe2\xbc\xa4\x97\x95\xbe\x5b\x1e\x0e\x95\x06\xe5\xa4\x9a\xd3\x85\xd8\xbc\x40\x3e\x77\x16\x97\x24\x83\xf0\xba\xa0\xf1\x6d\xaf\x20\xbc\x01\x31\x92\xcf\xf1\x42\x2b\x22\x1b\x66\x76\xb1\x07\xd8\x79\x01\xb0\x1b\xbe\x10\x05\xae\x34\x13\x38\xcc\x6d\x3f\x82\xc3\x52\x56\x6a\x5e\x81\xca\x9e\xe7\x39\x77\x1e\x8b\xd6\xaa\x5b\x91\xa9\x65\x4e\x67\xa0\x75\x1f\x2b\xe9\x3e\xe0\x54\xf8\x9e\x8e\xff\xe5\xd2\xc4\xee\x04\xb9\x81\x0f\x67\xa0\x24\xb5\x40\x00\xa7\xc6\xe8\x79\x8e\xea\x05\x6c\xb4\x41\x60\xea\x29\x3c\x4c\xf9\x66\xbd\x24\xad\x5b\x97\x88\x04\xbd\x09\x61\x68\x49\xa4\xd8\x89\x23\x9a\xd6\xa4\xbe\xc4\xee\x78\x16\xfa\xd3\x30\x50\x6c\x08\x34\xa1\x8f\xb0\x1b\xc2\xdd\x4e\x12\x16\x09\xc2\xf8\x4a\x2f\x09\x9e\x38\x2f\x40\x22\xa5\x01\x6a\x7b\x0d\xa1\x66\x16\x48\xd5\x20\x84\x2c\xe5\x79\xeb\x0a\x2c\x51\xbb\x70\x03\xc8\x31\x54\xa0\x86\x96\xd5\xb2\x55\xc3\x56\x56\xc2\x1c\x1b\x27\xcd\x21\x67\xf5\x14\xbb\x11\xd7\xea\x59\xe4\x85\xfe\xb4\x2b\x27\xd6\xc8\x89\x8f\x34\xac\xe8\x9b\x34\xe3\x1f\x79\xd3\xb3\x4e\x24\xef\x38\x11\xb6\x02\x41\x14\x05\x9e\x01\xd6\xaf\x01\x13\xd2\xa7\x96\xc5\x09\x33\xbb\xb0\x1b\xf5\x64\xa4\x76\x0d\x58\x97\x7f\x1d\x99\x5d\x10\x52\x49\x3d\x2d\x49\xf5\x0b\x9e\x38\x4a\xf6\xf3\x02\x54\xbf\xe2\x89\x03\x87\x9c\xc9\x72\x08\xca\xcb\xd0\x93\xab\x03\x17\x5c\x69\x68\x67\xfe\xea\xd0\xec\x84\xed\x98\xc6\xc4\x8d\xeb\x1f\xb6\x25\x7c\x68\x4b\x58\xda\x92\x73\x68\x4b\x4c\x9a\x49\x4c\x04\x53\xce\xaf\xd8\x0d\x7f\xc5\x0e\x44\x29\x29\x00\xa8\x6c\x82\x9d\x17\xf1\x0b\x6e\x6c\xd8\x81\xaa\x1f\xa2\x55\xdb\x99\xf2\x4e\xde\xa3\x7d\xe7\x3c\x16\x62\x49\x87\x7e\x84\x56\xa2\x58\xd9\xd8\x79\xb1\x1a\xfa\xd1\xc2\x58\xfc\xd7\x27\x5d\xe8\x59\x25\xc8\x5b\x25\xc8\x65\x54\xc4\xa0\x61\xd0\x9d\xa8\x48\xf9\xc7\xae\xb2\x28\x03\x94\xab\xc9\x50\xdd\x35\xb1\x94\xe4\xda\xc4\x26\x51\xaf\xbc\x67\x55\xb2\x06\x80\x82\xdc\xb4\xb1\x1c\xe1\x10\x37\x36\xc6\x83\xa0\xf1\x0b\xa0\x3c\x0e\xc8\xed\x14\x42\xee\xe1\x93\xb8\xa4\x7d\x8c\x3d\x6f\xaa\xe4\xe1\x3a\x2e\x1a\x8f\xdd\x45\x4f\xf7\x04\x9d\x9e\xc8\x69\x7a\x42\xbf\xe9\xf1\xfc\xce\x98\x30\xec\xf4\x44\xce\x42\x3d\x33\x51\x56\x59\x6b\x53\xae\xb9\x2a\x8b\x74\x2c\x3c\xdc\xcc\x56\xdc\xac\xf3\x8e\x59\xe7\x8d\x59\xaf\xa4\x59\xaf\x5a\xb3\xce\xe1\x2c\x9f\x0a\xa6\x0d\x4b\xce\x4f\x5b\xf2\xe7\xe7\x44\x45\xb4\x5d\x42\x7a\x60\xc7\xb4\xb1\x63\xaa\xb6\x63\xd3\x64\xe4\xdb\xa4\x35\x59\xef\x76\x0d\x73\xa3\x4d\xbc\x35\x13\x5a\x66\x0a\xea\x32\x70\x5c\x5f\x0a\x24\xdb\xb7\x62\x98\x04\x81\xcb\xad\x6e\xb7\x9b\x04\x61\xd8\x94\x26\xba\x34\x8e\x64\xc9\xc5\x1e\xf6\xda\xa2\xd8\xf6\x66\x74\x94\xc6\x65\xf5\xbe\xc9\x5b\x4d\x65\x46\x6b\x0f\xa8\x79\x90\x33\x1c\x0f\x85\xca\xbd\x14\x80\xfd\x8a\x83\xb1\x70\x16\x22\xf4\xb9\xc4\x21\x3e\x82\x2b\x09\xfb\x05\x07\x63\x6d\x43\x95\xe9\x56\x26\x11\x34\x2d\xe7\xcb\x29\xcb\xb9\xc0\x7c\xbf\x39\x2b\xfb\xb2\x95\x7d\xf9\xa3\x43\x45\xa9\xa2\x8c\xce\x1a\x61\xdf\x95\x96\x45\x41\x29\xcd\x80\x9f\x21\x0c\x14\x61\xe0\xe2\x70\x58\x4a\x58\xef\x00\x36\xf0\x8d\xd8\xfd\x82\x6f\x8d\x25\xd2\x91\x85\x24\x46\x30\x54\x93\xbc\x97\x37\x16\x29\x00\xcc\x9d\x57\x61\xea\xe2\x15\x71\xcd\x15\x98\xf8\x2f\x40\x6d\x73\xc9\x0e\xb9\x49\x86\x18\xa2\x7b\xc0\x66\x83\x6f\xac\x74\x5c\xec\x0e\xa6\xb2\xe4\x44\x7c\x7f\x93\xf2\x32\xb1\xec\x76\xad\x51\x94\x4f\xec\x75\x25\x9c\x95\x53\x29\x8b\x72\xb7\x93\x8c\x96\xdc\x37\xb4\xa8\x66\x40\x73\x77\x64\x26\xef\x9f\x63\x26\xcf\xdf\xee\x70\x18\x98\x3a\x37\x71\x79\x63\xe4\x06\x07\xfb\x5c\x28\x8f\x7e\x0c\x85\x81\x37\x1e\xa3\x30\xf0\xf9\xf1\x4e\x29\x1a\xf6\x5d\xc4\x6c\xd1\x33\xc4\x21\x5e\xf4\xa2\xb1\xeb\xca\x50\x13\x30\x12\x06\xee\xc4\x83\xdd\x7d\xb2\x95\xe3\x81\x7f\xa9\x66\x7c\xbb\x9b\x8a\xdd\x71\xe2\x43\x8e\x0e\x55\xbf\x4c\x7c\x81\xd7\x90\xc2\xd7\x73\x67\x64\x2c\x4e\x94\x25\xf1\x50\x4d\x7c\x94\x92\x00\xad\x48\x88\x64\x40\xc4\xd0\x9a\x38\xe8\x86\x5c\x9c\x3f\x38\x6f\xe1\xa3\x72\xdc\x09\x7c\x5c\xd2\x55\x5c\xa7\xd5\x54\xf8\x4f\xa6\x9c\x67\xdf\xe5\xc6\xbc\x9d\x81\x84\xa4\x6a\x85\x28\xd8\xaa\x93\xb2\x65\x61\xff\x82\x90\xad\x65\xe1\x40\xfe\xba\xe3\x0b\x01\xcd\x67\x45\x5b\x38\x15\x6b\xb2\x9d\xd9\x78\x2a\x9b\x64\x70\x27\x66\xa8\xce\xcf\x30\x71\x49\x8b\x05\x87\x01\x9c\x62\x37\x34\x9a\xf8\x82\x3d\x87\x0e\xcb\x9a\xb8\xaa\xdd\x0d\x9f\x4d\x58\xfe\x34\xeb\x9e\x87\x26\xfc\x5c\x29\x86\x85\x81\xe7\xfb\xc3\xa7\xf1\x95\x3f\xc4\xc7\x77\x4b\x85\x70\x4d\xb6\x28\x69\xa2\xbf\x27\xb0\xd6\x53\xb6\x02\x12\xa3\xd6\x5b\x8e\x57\xbb\x25\x03\x33\x7c\x4c\x48\x29\x14\xf2\x5a\x59\xfd\xda\xf6\x3c\x38\xdc\xda\x9e\xf7\xa4\x76\x5e\x4b\x5b\xbe\xde\x1b\x17\x0e\x82\xfc\xd2\x48\x1d\x6c\x75\xec\x2f\xda\x0d\x02\x53\xcd\xb6\x27\x96\x6e\xb7\x13\xd9\x8c\xed\x0c\x48\x16\x57\xc7\x07\x81\x2d\x14\xda\x8a\x12\xb2\x34\x11\xad\xa6\x9c\xf6\x0d\x59\xf7\xd6\xca\xd1\xdd\x11\xed\x09\x05\xce\x8d\x65\x89\xcd\x69\x6b\x59\xe0\x8e\x30\x88\x74\xeb\xd8\x6f\x5a\x2b\xa3\xd5\x6b\x5a\x73\x88\x3c\xae\x18\x9b\xdd\x2e\x54\x1a\x14\x0a\x45\xd9\xed\xc0\x1d\x51\x5e\xed\x82\x90\x3b\x2e\xc3\x84\xdc\x89\xd9\x1f\xc8\x8d\x16\xd4\x0d\xf7\xcc\x0f\x52\x4c\x22\xf5\xa2\x05\xd8\x1e\x6e\x36\x68\xbb\x38\xe0\x6b\x6f\x58\xf6\x1b\xd3\xbf\xc9\x5d\x9b\x47\xb3\x18\x55\xc2\xae\xe9\x59\xd3\x8d\x5b\x9f\x17\x5b\x56\x79\xd1\x46\x08\xc6\xec\x31\xe4\x38\xd0\xdc\x1d\x23\xdf\x41\x61\xb8\xe8\x99\x63\x8e\xa2\x8a\x0b\x50\xca\xb4\x22\xff\x61\xdc\x59\x5f\x08\x48\x61\x55\xb1\xb2\xaa\x18\xb6\x3b\xb1\x78\x73\xac\xd2\x46\x62\x60\x0e\xda\xee\x58\xb7\x73\xc7\xc8\x3b\x94\x39\xc6\xda\x1c\xe3\xdd\x4e\xf8\xe3\x78\xb7\x93\x2e\x38\x86\x82\xa9\x23\x24\xd2\x6b\xc7\x27\xbd\x76\x6c\x78\xed\xbd\x1a\xfc\x73\xf2\xd0\xe8\x35\x15\x44\x23\x60\x67\x10\x30\x8d\x60\xec\x37\xce\x3f\xb6\x2c\x10\x9b\xce\x3f\x25\xd7\x20\x7e\xd2\xbc\xd2\x59\x0d\x62\x38\xe5\x33\x55\xe6\x69\x5a\xcc\x51\x89\x39\xbc\x90\x13\x29\x36\x88\x54\x6c\x10\x9e\x87\x52\xbe\x3f\x78\x9e\xb9\x3d\xfc\xf6\xdf\x7a\x30\x08\xf9\x7e\x54\x5e\xe2\xd0\x99\x61\x77\x32\xc5\x13\x4f\x08\xfc\xf8\x90\x20\x0e\xe2\xae\x3e\x24\x44\x11\x3f\x24\xac\xe0\x90\x9f\x10\x44\x42\x26\x8a\xbc\x10\x61\x67\x8c\x83\x46\x33\xfc\x28\x70\xa2\x61\xad\x32\x00\x27\x83\xfa\xb3\xa2\x4f\x9e\x8a\xeb\x13\x69\xcf\x89\x19\xd7\xef\x76\xf2\xb4\x9e\xeb\x00\x5f\x85\x73\x33\x19\xc3\xb5\x51\x3f\x0e\x26\x8a\x27\x91\x15\x0e\xdc\xa7\xce\x00\x7f\xfe\xc7\xc1\x8d\xa6\x8b\xfd\xd3\x51\x4e\xdf\x88\x70\x9e\x08\x70\xcc\x33\x87\xca\xb2\x2c\xc9\x52\x1c\x3a\x1a\xe1\x1f\x9d\x3b\x8c\x0f\x82\x40\x81\x22\x77\xec\xf2\xf5\x0d\x60\x7b\xfe\x80\xc6\x75\xf7\x5e\x25\x24\x74\xc8\xd4\x49\x14\x48\x15\x14\xe7\xf0\x28\x82\x28\x26\xd5\x2f\x38\x8a\xf4\x91\x40\x1c\x08\x3c\xac\x75\x0f\xa2\x78\x08\x62\x33\xf1\xd0\x2e\xc5\x5f\xff\x2d\x26\x84\x84\x71\x04\x3a\x50\xaf\x65\x5a\xaa\x3d\x32\x87\x01\x84\x46\xb4\x7f\xa4\xf3\xea\xa5\xca\x91\xca\xd7\x4f\xa9\xfc\x71\xd4\xfe\x33\x47\xd9\xbf\xff\xf1\xa3\xec\x35\xa0\x4f\xf1\xc2\x66\xfc\x10\xc8\xbd\x22\x6b\x93\x4a\xec\x17\x3c\x71\x86\x61\x60\xae\xea\x5b\x33\xf3\x9e\xbd\x7a\x15\x21\x46\xdc\x20\xb0\xb2\xe6\x90\x34\x9b\x17\x88\x2d\xa6\x73\x86\x0a\xe3\x0d\xc2\xef\x52\x4b\x25\x31\xea\xaa\x13\x55\x32\x3f\x9c\xcb\xa5\x3a\xcd\x67\x71\x70\x6c\x6c\x92\x62\xf2\x75\x87\x38\xb7\xb5\x77\x3c\xac\x73\x82\xd4\x0a\xde\x94\xba\xc7\xc9\x43\xfd\xaf\xf4\x81\x50\x1c\x03\x39\x44\x4d\xb2\x19\xa8\x2e\x2f\x23\x38\x2c\xa7\xa0\x14\x85\x4a\x93\xdd\x4c\xff\xa8\x7c\x74\xaf\x39\x89\x36\x69\xef\x20\xf4\x5c\x07\x05\x63\xcf\x17\x9e\x2d\xf0\xc2\x21\x76\x5c\xff\x05\x48\xed\x20\x70\x27\xa1\xc8\x8b\x0a\x20\x38\x05\x45\xa3\x47\x6f\x41\x8d\x32\xc8\xe3\x40\x06\xe1\xde\x38\x7e\x8a\x41\x1c\x2b\x9e\x88\x33\x5e\xdd\x84\xbd\x07\x73\xf1\x91\xd3\xda\x58\xb8\x3f\x94\x9b\x78\x52\xa9\x8a\xf3\xbe\x91\x7b\x35\x47\x5d\x01\x69\x81\xbd\x05\x0c\x65\xda\x71\xbd\x05\x82\xb8\x21\xe0\x7e\x2e\xf0\xc2\x57\xaf\xb0\x03\x51\x06\x51\xce\xbb\x38\x6d\x4d\x97\x85\x1d\xd7\x83\xc6\x4d\x47\x35\x4a\xf2\x2c\x89\xb9\x91\x18\x24\x7f\x78\xa6\x15\x18\xc1\x34\xe5\x91\x7d\x05\x28\x9c\xd1\x69\xe8\x79\xa1\x33\xa4\x76\xf7\xd6\xe4\xd3\x33\xef\xce\x3a\x4f\x82\x6c\x3c\xcd\x41\x01\x67\x85\xbc\xf0\xe2\x88\x51\xe8\xf9\xd1\x18\xce\x0a\x5b\xce\x83\xdd\x68\x5a\x0b\x2b\x3e\x79\xab\x6b\x59\xe0\x64\x3b\xd8\xb4\xdf\x75\xa1\xe6\x21\xcf\x00\x3d\xde\xd0\xea\xdc\x57\x7e\x4f\xdd\x05\xef\xf7\x67\xde\x66\x74\x27\x92\x4f\x0c\xce\xcc\x72\xfe\x21\xc6\x33\xb1\x37\x2f\x33\x7e\xc0\x47\x03\xb7\xdf\x43\x88\x0c\x14\x23\xf9\x28\xe8\x60\x9d\x85\xd3\xe9\x15\x64\x90\x0b\x12\x06\x44\x7f\xe6\x9a\x59\x56\x66\x3e\xf2\x10\x1f\x15\xbe\xae\x57\x2b\x5a\xcc\x32\x7a\xdf\xff\xca\xb2\x2a\xd2\x5f\x1a\x4e\x4f\x0d\x1f\x5c\x0b\x68\x75\xe9\x9f\x8d\x64\xf5\xb9\x38\x15\x38\xca\x46\xd7\x0f\x15\xfd\xb8\x5a\x95\xb4\x52\x95\x3f\x45\x82\x1c\x4e\x0f\x86\x38\xb0\xfb\x30\xca\x7c\x20\xa2\x1f\x00\x34\x2f\xa3\xb6\xf3\x13\xcb\xbe\x00\x8f\x62\x99\xa6\x4f\xac\x16\x3c\x7a\x3c\x75\x6a\x3e\xd2\x3e\xfb\x29\xc5\x87\xa8\xed\xb5\x6d\xc5\x7d\x33\xbd\xef\x97\xa0\xe0\xa1\xc0\x7c\xf1\xf2\x65\x93\x24\x1b\x15\x34\x5e\x82\xd6\xdf\xd6\x2a\xcf\xaf\xeb\xa0\x22\x1d\x36\xb4\x9d\x81\x1c\xd5\x50\x5f\x0a\x68\x67\x6e\x59\x07\x5f\x84\x56\x70\x16\x8b\xdb\xe0\x51\xbc\xdd\xa6\x0f\x20\x46\x15\x9c\xca\x16\x50\x41\x28\x6e\xe4\x8f\x59\x81\x8f\xcb\xfc\xf1\x19\x04\x68\xe2\xff\x73\x3a\xee\xd7\x2c\xa5\xe0\x22\x1f\x19\x1f\xf2\x02\xa8\x9f\xa0\x98\x6f\xdb\xb4\x1b\x3f\x4a\x2a\xa3\xa2\xd9\x3b\xc9\x5c\x7d\x72\x89\xda\x07\x9c\xa8\x7d\xfa\xb9\x40\xc5\xa9\xd7\x20\x48\xba\xbe\x26\xc2\x2b\xe0\x6e\x77\x60\x60\xba\x41\x69\xc2\x6e\x07\x32\x75\x77\xf3\xca\xb1\xac\x30\x70\xc7\x22\x03\x3d\x77\x16\x33\x70\xa0\x33\x0e\xca\x9a\x0f\x6e\xa7\xe6\xa8\x23\x40\x08\x91\xc9\x5c\xfb\x45\xef\x60\x80\x0a\xe2\xbc\x2c\x2e\xb3\xf6\xc2\xa8\x09\x06\xb2\x79\xb1\xe8\xb1\x4b\x22\xb6\x96\x19\x1d\xaa\xaf\x61\x47\xab\x22\xdf\xbc\x59\xc7\xc5\x9b\x7c\x49\xf9\x66\x06\x98\x4d\xe4\x53\x83\x33\x30\x7a\xfb\x91\x1b\x8f\xda\x71\xf8\x4e\x63\x31\x68\xec\xa2\x7b\x1e\x01\xcb\x6f\x66\x39\x03\x28\x86\xfb\xd3\x3e\xcd\xb2\x4e\xbb\xba\xbb\x7f\xde\x63\x1b\x28\xe5\xbb\x9f\x43\xd7\xa7\x1f\x59\x8a\x6b\x80\xc1\x60\xda\xbc\xb3\x7c\x86\x1b\xd1\xef\xd1\x6e\x7e\xca\x8d\x88\xea\x1e\xfe\xa4\xc3\x28\x78\x70\x24\x1c\xc6\x69\x4d\x68\xe9\x2e\x88\xfe\xca\x5b\x25\x5e\xe7\x8b\x97\xec\xb2\x78\xa9\xef\x11\xe9\x28\x51\x0b\xfb\x5b\xa5\xc2\xba\xfc\x52\x2c\xf1\x6e\x97\xbf\x92\x51\x4e\x25\xed\x30\x87\xcd\xe3\x21\xb1\xea\x97\xfc\x80\x90\x5f\x92\x0e\x90\x4a\xac\x34\x80\x1c\x53\x03\x28\xe2\x29\xb6\x02\x8c\xef\xf6\x36\x3e\x31\x46\x9d\x2b\xba\x54\x0d\xb1\xa0\x4b\x4d\x5a\x5a\x56\xa9\x27\x55\x6f\x5b\x84\xf6\xe5\xa8\x96\x85\xb2\x67\xe0\x0d\xf9\xc1\xe9\x12\x3b\x70\x58\x43\xc4\x86\x04\xab\x47\x6a\xe6\xcc\x7b\xd1\xae\x15\x89\x2b\x2e\x8f\xa6\x5a\x2f\x1c\x93\xea\xd0\x0b\xc7\x87\x5e\xb8\xe3\x31\x0c\x27\x58\xa1\xb8\xf1\x7e\x5d\x97\x57\xc0\x59\x6e\xba\xbc\x1c\x15\x70\x2a\x5b\x78\x7c\x73\xce\xf3\xf2\x45\x7e\x29\x1e\x8a\x3c\x31\x67\xd5\x38\xde\x97\xf0\x67\x66\xed\x1d\x3f\xad\x6c\x32\x83\xdd\x9d\x35\x87\x7b\x74\xa3\xdd\xe8\xe2\xc4\x71\x5a\x0c\xf8\x2e\xff\x30\xc1\x0f\xe1\x1e\x04\xdc\xe9\x77\xdf\x96\x75\xe6\xd9\xfb\xd3\x5f\xf3\x70\x13\x1e\xa9\x07\xf6\x3c\xd4\xf8\xc1\x13\x79\xf5\x37\x11\xa4\xa3\x2f\xc8\x3d\x38\x7c\xfc\xd7\xdb\xce\xe9\x59\xfa\x3f\x8a\x07\x45\x5c\x22\xe7\x61\x6e\x25\x8c\x7c\x64\x8f\xb6\xa3\x7f\xbd\xfe\x70\x0e\xf4\x9d\x10\xc7\xcd\x53\x20\xdf\x40\x86\x2e\x1c\x01\xa5\x5e\x0e\x3c\x01\xc9\xd7\xe0\x47\x60\x7a\xce\xd7\xec\x26\x38\x07\xf3\x59\xa1\x7a\x0a\xe6\xb5\xc4\x33\xd7\xdf\xe3\x9c\x95\xc7\x7b\xad\x1b\x3f\x02\xfc\xa2\x31\x9a\x1f\xeb\x9c\x85\x7e\xa3\xd1\x3e\x0b\xfa\xab\xe2\xba\xf9\x26\xe7\x1c\xe0\x9f\x8a\xf5\x1f\x02\xfe\x66\xf2\xff\xe1\xd3\xf9\xa9\xff\x36\xf9\x7f\x0a\xf0\x2f\x8d\xb1\x0d\x50\xce\x81\xfe\x01\x78\x1c\xd1\x9a\xdc\xd3\xd0\xbf\x6b\xe8\x06\xf7\x9f\x4f\xe3\xc6\x5d\xdc\x4f\x41\xff\xae\xa1\x6f\x8e\xbf\x87\x39\x37\xe6\x93\x96\xc8\x73\x07\x7c\x10\x03\xb2\x91\xf1\x5e\x58\x84\x5c\x46\x9d\xdc\x41\x05\xa0\xbe\x13\x68\x00\x54\x9d\x6c\x20\xfa\x99\xbf\xe9\x03\xba\x0d\xe4\xd1\x98\x6c\xda\x99\x1a\x19\xb3\x4c\x3b\x73\x22\xfd\x82\x5c\x7d\xc4\x32\x3d\xf9\x71\xc9\x1e\xee\xa1\x88\x2d\x76\xbb\xc7\x3d\xec\xfd\xbf\x00\x00\x00\xff\xff\x22\xb9\xa8\x37\xb7\x48\x00\x00") - -func web_uiAssetsEncodingCdb50fbdab6d4d3fdf574dd784f77d27JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsEncodingCdb50fbdab6d4d3fdf574dd784f77d27Js, - "web_ui/assets/encoding-cdb50fbdab6d4d3fdf574dd784f77d27.js", - ) -} - -func web_uiAssetsEncodingCdb50fbdab6d4d3fdf574dd784f77d27Js() (*asset, error) { - bytes, err := web_uiAssetsEncodingCdb50fbdab6d4d3fdf574dd784f77d27JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/encoding-cdb50fbdab6d4d3fdf574dd784f77d27.js", size: 18615, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsEncodingIndexes75eea16b259716db4fd162ee283d2ae5Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\xcd\xce\x2c\x4d\x92\x9c\xb7\xd7\x55\x50\xbd\x18\x0c\x81\x92\x10\xe1\x7f\x11\x21\x60\xae\x84\xd0\x46\x33\xdf\x10\x0d\xb4\xba\x09\x4e\x37\x40\x81\x37\x2f\xd8\x63\xf5\x7e\xe4\x10\x12\xb4\xd0\x82\x5c\x9c\xb3\x88\x37\x4f\x56\x56\x66\x56\x66\xfc\x98\x9b\x9b\xbb\xff\xfd\x3f\xff\xed\xcf\xff\xf8\xd7\x3f\xfe\xe5\xcf\x7f\xff\xa7\x7f\xfb\x9f\xff\xf0\xb7\x7f\xf9\xed\xdf\xfc\xcb\x5f\xff\xe3\x1f\xff\xf1\xaf\x7f\xf8\x9f\xfe\xf0\xb7\x3f\xff\xd3\x6f\xff\xfc\xc7\x3f\xff\xf6\x4f\x7f\xf8\x9f\xff\xe1\xaf\xff\xd7\x7f\xf8\xed\x2f\xff\xfc\x6f\xfe\xcf\xbf\xfc\xd3\xdf\xfe\xf4\xdb\xdf\xfd\x9d\xff\xfe\xaf\xbf\xfd\xa7\xff\xf0\x97\xff\xf8\xd7\x7f\xf9\xbb\xbf\xfb\xfb\x7f\xbd\xe3\x1f\xfe\xf4\x6f\x3f\x7f\xfa\x77\x7f\xf8\xed\xcf\xff\xf8\x97\x7f\xfa\xe3\x9f\xff\xfd\xff\xf2\xc7\x3f\xff\xd3\x6f\xff\xe9\xb7\x7f\xf9\xc3\xff\xfe\x0f\xff\xf9\xff\xf8\xe3\xbf\xef\xff\xed\xdf\xfd\xf9\x6f\x7f\xfa\xd3\xe7\x57\xf3\xab\xf9\xd5\xfc\x6a\x7e\x35\xbf\x9a\x5f\xcd\xaf\xe6\x57\xf3\xab\xf9\xd5\xfc\x6a\x7e\x35\xbf\x9a\x5f\xcd\xaf\xe6\x57\xf3\xab\xf9\xff\xd5\xec\x93\x2f\x3e\xfb\xf5\x9a\xcf\x3e\x2f\xf2\xb3\xcf\xcd\xf5\xd9\xe7\xdc\xfa\xec\x59\xd9\xef\xb3\xdf\xcd\xad\x0f\x2a\x3f\x7b\xe2\xbd\xfc\xec\x37\x37\x3e\x7b\x72\xed\xfc\xec\x8e\xce\xcf\xbe\xa1\x2f\xde\xa8\xd2\x09\xe3\xd0\xae\xcf\xae\xbb\x75\x92\xaa\xb7\x9f\x4e\xd9\xaf\x3e\xbb\x5f\x9e\xad\x3f\xaf\x39\x5c\xa7\x3e\x71\xef\xd6\x19\xba\x75\xb5\xcb\x8d\xdd\xc7\x35\x43\x47\x1d\x9d\xe0\xed\x75\x3f\xfb\x2e\x1d\xda\xb7\xde\xfb\xc4\x8b\xd0\x7f\x6a\xbf\xf9\xec\x3c\x57\xd7\xae\x79\xad\x8b\x9f\x78\xe7\x13\xb3\xef\xfb\x44\xc4\x1c\xff\xee\x8c\x5d\xda\x71\x75\xfb\x33\xb7\x38\xd9\xac\x4f\xde\xa3\xd3\x4f\x1c\x9d\x38\x7b\xf7\x67\xe7\xed\xb7\x3e\x91\xb1\x4a\xff\x19\x3d\x8b\x3d\x6f\xb4\x4b\x67\xc9\x3a\x6a\xef\xaa\x4f\x4c\x9d\xfb\xc9\xda\x4f\x3f\x61\xe5\xd2\xdd\x9d\x97\x9f\x78\x57\xcf\xa8\x4a\x6d\xde\x3e\x7a\x22\xbd\xf4\xe3\xbb\x47\xbf\x65\xf8\x5d\x9d\x37\xe2\xb3\x7b\xbd\xfc\xe4\xae\x5b\x9f\x5a\x57\xcf\xa3\xce\x5d\x7a\x14\xb3\x5b\xbf\x2e\xaf\x7e\x5d\xe6\x39\xfa\x91\xf9\x66\xb8\xa9\xf8\x64\xea\x59\xe9\x4b\xf5\xc9\xf3\xb2\x3f\xfb\x9e\x9c\x4f\x56\x46\x7e\xf4\x04\xae\x7e\x64\xae\x4f\x9e\x5a\xeb\x93\x7b\xdf\xfa\xe4\x8e\x1b\x9f\x98\x58\xf7\x13\x67\x9f\xf3\xc9\x7a\x47\xb7\x7d\x4e\x7c\x72\xcf\x6d\xfd\xb6\x77\x75\xe4\x99\x4f\xec\x75\xf6\x27\xe7\xa5\x1e\x49\x57\x7c\xe2\x4d\x8e\x7e\xcc\x9a\xd6\xaf\x7d\xba\x89\xb7\x74\xc9\xea\xcd\x4d\xf4\x27\x76\xdf\xc5\x03\xf7\xcf\xcf\xfb\x89\xe8\xd6\x15\xb2\x46\x8f\x7d\x66\x7f\xb2\x8f\xde\xe0\x5d\xdf\x8e\x32\x7a\x21\x67\x1e\x67\x4f\x3d\x97\x99\xf8\xec\x5a\x75\x86\x8b\x14\xff\xd1\x43\xd4\x9f\xc7\x9f\x17\x7c\xd4\x9f\xac\xd5\x3a\xba\xe8\x16\xd3\xe3\x1b\xd3\xf3\x9a\x54\xaf\xeb\xd9\xfd\x89\x8e\xbb\x3f\x71\xcf\xf5\xf7\xce\xff\x00\x83\xf3\xff\x7d\xd4\x86\xde\xa8\xda\x43\x7b\x69\x9f\xda\x52\xaf\xd8\xa9\x3f\x71\xd4\xab\xf5\x66\xfd\xe7\x70\x70\x05\x6d\x7a\x97\x7a\xf7\x8b\xef\xd1\xe5\x7d\xc5\x7f\x9a\x96\xab\x94\xbf\x78\x7d\x66\x7f\x9f\x8b\xf5\xfa\x44\xcf\x67\xbf\xfc\x94\x46\xc5\x8b\x8f\xbe\x1e\x4b\x4f\x32\x3e\xa1\xee\x95\xf1\x89\xbd\x3f\xa5\x5e\xb1\x97\xef\xff\xdc\xf3\x5f\xb6\x74\x5c\x7c\xa2\x8f\xba\xc2\xa7\x26\xd4\x63\x3e\xad\x31\x73\xfa\x13\x99\x9f\xb8\xa9\xa1\xf6\x09\x86\xe4\xf9\xd4\xd4\x27\xd4\xa5\xf5\x59\xe9\xda\xf3\x89\x8a\x4f\x4e\x7e\xa2\xd7\xa7\xe6\x7e\x34\x30\xeb\xac\x4f\x9d\xf8\xd4\xa9\x8f\xba\x4a\x74\xfc\x7e\xd5\xfd\xfb\x96\xce\x5d\x9f\x59\xef\xf3\xf6\xb9\x6a\xde\xff\x00\xaf\xf8\x57\xf3\xff\xbd\x74\xc5\xd3\x9c\x90\x5d\x2f\xbd\x2b\xfa\xce\xfc\x57\x87\xc4\x5a\xf1\xd4\x7d\xee\xfe\xd4\x8a\xa3\x39\x2f\x2b\xff\xeb\x93\xcc\xd6\x0a\x13\xad\x0e\x1f\x4b\xbd\x27\x56\xa8\x7f\x2d\x2d\x8c\xb1\x34\x1b\xc7\xba\x4d\xcb\x9e\xa7\x4f\xf7\xee\x54\x3b\xeb\x13\x3b\xd7\x51\x1b\x9a\x16\x4b\xfd\x78\xd3\x43\x43\x7d\x32\xe2\xa8\x37\xc6\xb9\xb4\x6f\x6b\xd1\xc9\xa2\xd5\x02\x92\xef\xaa\xff\x75\xd1\xaa\xbf\x9f\xa5\xde\xbc\xb5\xbf\x46\x73\x66\x6b\xc1\x8d\x19\xdd\xc9\x4c\xdc\x4f\xcc\x89\xfe\xc4\x79\x1a\x63\x97\x55\x6b\x2d\xcd\x74\x51\xb1\x68\xaf\x5a\x8d\x88\xd0\x39\x53\x27\x52\x7b\xde\x27\xa3\xb7\x3e\xed\x39\x9f\xcc\x5a\x5a\x30\xea\x6a\x7b\xea\x7c\xb2\x79\x48\x7d\x4e\x7d\xb2\xef\x5e\x9f\x9c\xf3\x6d\x37\xed\xd5\x92\xb0\x35\x07\xbf\x37\x9f\x8c\x58\x5a\x18\xb4\xd4\xe6\x2e\x8d\xc7\xbd\x72\xff\x3f\xbe\xaf\x3c\xc1\x9d\x6a\xba\xce\x13\xbb\x3e\x19\xaf\xbf\xaf\x2b\x67\x2f\xdd\xc4\xda\x9a\x84\x72\xfe\xd5\xfc\x9b\xf1\xe2\x7c\x6a\xe9\x0e\xf7\xd3\x0a\x51\x2b\x35\xe7\xac\x9a\x25\x8c\xb0\xaf\x16\xbf\xde\x4b\xcb\xc5\xe9\xab\x4f\x5a\xfb\xf4\x7c\x85\x08\xe6\x7b\x4b\x71\x53\xd7\xcd\x64\xc1\x7a\xe7\x7b\x95\x7d\x8f\x1e\xdf\xeb\x0c\xb5\x73\x58\x3f\x8f\xd6\xc6\xad\x95\xb9\xde\x09\x56\xfe\xa7\x39\x30\x5a\x57\xad\xd0\xe2\x1d\x6b\x2d\x5a\x81\x8c\xb5\x84\x09\xd6\xd6\xa2\xb7\x84\x79\x62\x05\xdb\xa1\xd5\x3e\x53\x5d\x60\x15\x80\xe9\x95\xbe\x55\x9a\xd8\xd6\x6c\xa1\x96\xd2\x5c\x9e\x25\xa4\x94\x75\x74\x36\x4d\x92\xea\x38\x3a\xcf\x53\xd7\x58\x8f\x33\x3c\xae\xb5\xf5\xe0\xf7\xde\x74\x43\x75\xa5\x1d\xf7\xf0\x5b\xe9\x80\x5b\xdb\x23\x74\xb2\x4b\xd8\x29\xa7\xb7\xb6\xf5\xc3\x77\xf3\x54\xe6\x70\x8c\x60\x96\x7e\xfa\x27\xb6\x8f\x19\xce\x30\xb7\x68\x75\x86\xb3\xf5\x2d\x2d\x1a\x21\x14\xa8\xf6\xe9\xea\x77\x69\xb5\x39\xa1\x41\x70\x85\x1d\xf3\x24\xad\x7e\xfb\x7e\xac\x2e\x67\x5a\x38\x51\xd8\x49\x5f\xfb\x79\xe2\x59\x5a\x0d\x76\x56\x01\xdd\xf6\xe5\xd2\x5e\xca\xa3\x85\x2a\xea\x06\x2b\x0e\x6b\xf8\xd4\x17\x15\x81\x05\xde\x06\x15\xd6\x68\x41\xaf\x25\x2c\xb3\xfa\x8e\xbe\x0a\x9c\xad\xa7\x1b\xbb\xe9\xa3\x38\xb8\xef\x06\x4d\xec\xa5\x2e\xdc\x57\x57\xcd\x6a\x1e\x4d\x2f\x7d\x29\x2b\x85\xac\xb2\x6b\xb3\x1c\x95\x3a\xbc\xd0\xdc\xce\xba\x8b\x57\xb4\x05\xc4\xb2\xd7\x0e\xee\x72\xe9\x97\x55\x69\xf9\xad\x3b\x6f\xff\xfe\xd3\xb4\xf0\xec\xb3\xfa\x24\xf7\xa7\x3f\x57\x43\x73\xf7\x8e\x75\xfc\x0b\xd7\x27\xdf\x2c\x6e\x56\xf0\x68\x1e\x7d\x79\x72\xb8\x84\x16\xe1\x8e\x18\x9d\xe0\x3d\xad\xcf\xb3\x1f\x3f\x2d\x66\x96\xfa\xbf\x46\xee\x7d\x99\x3f\x93\x61\x1a\x1f\x09\xd0\x46\x9f\xab\x57\x72\x84\xda\xf5\x05\xdd\x60\x04\x2f\xba\xe9\x25\x05\x94\xd7\x68\xd7\x97\x8e\xa6\x01\xfd\x11\xaa\x9a\x00\x03\xb6\x26\xa9\xdd\x7b\x00\x78\x15\x0c\xff\xd2\x62\x9f\xcf\x70\x75\x4e\xea\x84\xf1\xf6\xcf\x3d\xdc\x32\xac\xa8\xa7\xf7\x92\x47\x33\xde\x68\x57\xc5\xf9\xfd\x46\xeb\x3e\x61\x97\x8c\x14\xa0\xe8\x16\xce\xde\x59\xea\xda\x7a\x21\x4d\x5f\xe2\x02\x2d\x03\xe1\x64\xde\xef\x37\xdf\xd6\xdb\xaa\xfd\x42\xdf\xef\x8c\xfe\x64\xea\xad\xe6\x03\x13\xeb\xdb\x5a\xe4\x05\x35\xf4\x0b\xd5\x1f\xf6\x3e\xf9\xc9\x09\x66\x5f\xc1\xda\xe8\x13\x46\x95\xef\xf7\x27\xd7\x2c\x23\x35\x7c\x2f\x96\x9f\x5a\xe7\xef\x5d\xb5\x41\xa0\xd5\x57\x73\x4a\x1d\xbf\x6f\x21\xf7\xa9\x5e\x1e\x43\xfc\x94\x10\x40\xcf\xa7\xc9\x36\x34\x58\xf9\x5d\xe3\xb3\x69\x5e\x9b\x77\xf4\x8e\xb3\xd7\xfa\xc4\x39\x3a\xba\xf7\x7a\xef\x5f\xaf\x47\xbb\x98\x5d\x1e\xa3\xf9\x61\x86\x9d\x1c\xcd\x0b\x9a\x84\x8f\xa7\x07\xce\x8d\xb9\xd3\x47\x3f\x28\x83\x23\xb2\x53\x83\xae\x76\x6e\xfe\x4c\x60\xbe\xc8\x6c\xea\x58\xb2\x05\x64\xab\xf0\xf8\x16\x86\x48\xdd\x00\x76\x33\x54\xeb\x8d\x87\xa4\x1e\x7c\x0a\x6b\x73\x7c\xc6\xef\x1d\x1b\x08\x2d\x40\x7d\x7c\x5c\xf8\xe9\xf0\xa3\xea\x32\xd0\x35\xa9\xd4\x7a\x86\x86\xed\x9f\xab\x4f\xaa\x52\x87\x8f\x6c\x16\x77\xc7\xf1\x08\xfc\xfe\x61\x27\xd3\x56\x05\x73\x42\x5d\x4e\x5f\x57\x66\x91\xae\xc2\x35\x1f\xf3\x7a\x8e\xa6\xfc\xbe\x2d\xcc\x3a\x67\x6b\x72\x50\x7f\xdc\x7e\x48\xf5\x49\x26\xfa\xd8\x32\xe6\x32\x01\x7f\xfb\x55\xff\xbc\x72\xad\x16\x9f\x7c\x4f\xcb\xdc\x1b\x0d\xee\x91\x2d\xab\x6b\xcb\xfa\x8d\xab\xb1\x96\xb9\x65\x6c\x24\x33\x7c\x62\xb8\xf4\x59\x5a\x55\x73\x1d\x4f\x36\x9a\xb3\xb2\x3c\xca\xe3\x09\x5d\x2c\xee\xf9\x79\xbe\x18\x1e\x64\x9d\xef\xd3\xa5\xaf\x9c\xeb\xd7\xae\x77\x92\x97\xe9\xb2\xb2\xe9\x9e\x4f\xbf\x7a\x07\x0b\x41\xe7\xb7\x53\xfa\x21\x9c\x33\x1e\xbc\xd7\x80\x47\x77\x5c\xd8\xe6\x39\x00\x7b\x1d\x72\x74\xe2\x8d\xc9\x1d\x47\x43\x21\xb7\xe7\xb7\xfd\x8e\xff\xf8\xdb\x3b\xfd\x47\x28\xa4\x98\x64\x6b\x98\xaa\x36\xff\x9b\x6a\x4f\x84\xb2\x41\x39\x31\x77\x8c\xa9\x57\xeb\xa6\x3f\xe2\xc4\x32\xdd\x34\x4f\xe9\xd9\x1c\x06\xf9\xae\xf7\xe8\x9d\x07\x43\xa2\x0e\xd4\xc1\x14\xaf\x20\x34\x73\xc4\x5e\xf4\x40\x0c\xd8\x56\x67\xc2\xa0\xd3\xed\x16\xd3\x76\x69\x5e\x79\x51\xb2\xd3\x30\x54\xee\xdb\x4f\x6f\x4b\x90\xe5\x5d\x9b\xfa\xb2\x8c\x77\xb1\x86\x45\x2c\xad\xd2\x29\xb8\x12\x01\x30\x5b\x6b\x19\x74\x71\x21\x8d\xfb\xfd\x6a\x2e\xe6\x3d\x8f\x77\x87\x50\xd6\x5a\x2c\xd2\x9e\xd6\xf5\xfe\xf5\x9a\xcf\x27\xaa\x64\xc1\x54\x6b\x61\x2e\x2d\x2c\xd1\x5b\x88\xae\x9f\xec\xf9\xa3\xc1\xac\xf1\xbb\x69\x07\xab\x71\xc1\x42\x00\x02\xb4\x7c\x3c\xd6\x12\x99\xd0\x47\x60\x4b\x93\xd4\xd6\xf8\x13\x6c\x4a\xf6\xf4\x67\xb7\xcc\x5d\x8f\xc5\x6f\xc7\xec\xa9\xb7\x3f\xa9\xd3\x7e\x32\xae\xc7\x77\x30\x3b\xdf\x05\xba\x4a\x2d\x4b\xf5\xf6\x08\xab\xb1\xb4\xee\x67\xc8\x56\x25\x14\xa5\x49\xf1\xae\xd8\x9f\xbc\x82\xb1\x79\x43\x76\xfa\x4d\xf5\x9f\x39\x95\xef\x93\xf7\xde\xf9\xe4\xa3\xc3\xbe\x2d\x34\xf8\x76\x6a\x20\x84\x86\xd8\xf9\x4d\xcf\x7d\xb1\xc8\x08\x30\x0a\x76\xe9\xe7\x6a\x36\x98\x3c\x5a\xa6\xd7\x0a\x9b\x8f\x82\x6c\xb7\x04\xb1\x7b\x57\xea\xc2\xbd\x7e\x90\xb7\x30\x46\xdc\xcd\x70\xdd\x3b\x84\xd6\x04\x68\xb4\x10\x43\x2e\x40\x09\x9d\xf3\x34\xda\x80\xc5\x29\x70\xb0\x9f\x0c\x3d\x4d\x56\x74\xd2\xd1\x53\xec\x7a\x02\xbd\x25\x6c\xbf\x47\x73\xae\x90\xe8\x69\x0d\x37\x75\x9b\xa7\x05\x36\x26\x61\x59\x46\xf3\x49\xd5\x5a\x5a\x3b\x22\x78\xcc\xf5\x0c\x02\xd5\xbb\x5e\xe8\xd1\xad\x57\x02\xb2\xc2\x73\xb1\x9e\x80\xc8\x34\xe8\xd2\x67\x39\xa1\xa9\x52\x1d\x5a\x9f\xbc\xd4\x23\x4f\x06\x6c\xaa\x43\x7e\x8d\xe4\xb3\x12\x74\x38\x5a\x23\xf3\x0a\x30\xc4\x3d\x40\xae\x50\xef\xcc\x97\x4f\x16\xc7\x3d\xba\x62\x69\x2a\x9e\xc9\xb3\x79\x12\xfb\x93\x0b\x52\x65\x6d\xcd\x22\x0b\x8b\x61\x69\xa9\x56\x0f\xc2\x16\x29\x60\xe8\x01\xb0\xb5\xb0\xf6\xd6\x23\x8d\x91\x85\x6d\x02\x20\xef\x68\x91\x05\x4a\xa9\x3d\x74\x5a\x16\xc9\x75\xe8\xaf\xef\x3b\xf3\x1e\x81\x74\x21\xc6\x23\x44\xba\x6b\x5a\x57\x3d\x6f\xfd\x58\x4e\x6f\x33\xa0\xfc\x2b\x9e\x59\x9a\xa5\x09\xa9\x97\xfa\x6d\x64\xea\xec\x4f\x2b\x73\xb6\x66\xcf\xdd\x75\x58\xf6\x52\x13\x56\xee\x94\x71\xb1\x59\x8b\xb6\x16\xd7\x8c\x54\xff\xd3\x9c\x05\x1f\xf6\xf8\x31\xf9\xf1\x2a\xa3\x6d\xf5\x57\xad\xb2\xda\x16\xc4\xbb\x9a\x93\x8b\x8e\xf4\x04\xe3\xf2\xd4\xf2\xb7\xe8\xbb\xc9\x82\x35\x90\x83\x03\xc4\x38\x4b\xf3\x66\xae\x7f\x65\xf3\xd9\x62\x78\x6b\x0f\x64\x1c\x34\x1c\x33\x5d\xfe\x40\x90\xac\x80\x3e\x7a\xf7\x26\x8b\x83\x5e\xe2\xa2\xc3\xbd\xd6\x52\xa5\x61\x1e\x9f\x48\xbd\xf8\xdd\xb7\xbc\x4f\x8f\x5a\x37\xe3\x1b\xc6\x6a\xab\x61\xfb\xa9\xf7\xe9\xb6\x23\xeb\x7c\xe2\xea\xcd\xe5\xde\x9a\x06\xfb\x68\x86\x3c\xc3\x43\x4f\x16\xaf\x62\xee\xd9\x27\x69\x65\x51\xf9\x0d\x18\x29\xd7\x68\xb8\x67\xb7\x5e\x59\x32\xfb\x37\x18\x4c\xab\xad\x46\x89\xc6\x42\xad\x2b\xd3\xef\xa9\xa3\xec\xc3\x25\xea\x0c\x20\xf6\x9e\x0b\xf1\x0a\x0c\x10\x6e\x97\xdd\x31\x46\x65\x4c\x23\xe7\xb6\x4e\x9f\x32\x65\x0b\x42\x53\x10\xf9\x13\x21\xb8\xae\x25\x0f\x5c\xa9\x95\xe2\xac\x90\xa1\x5a\x89\xf5\xa2\xd9\xe0\x07\x07\x60\x01\xee\x19\x68\xdf\x99\x8a\xcf\xbe\xb2\xdf\xf6\x5c\xa0\xc1\xec\x6c\x6e\x12\x52\xb7\x06\xde\x32\x41\xaf\x5a\x37\xee\xd6\x44\xd3\x57\x83\x7f\xcf\x19\xad\xe1\xdd\x00\xaa\x75\x98\x83\x8e\x96\xa3\x6a\x10\xa2\x47\xe1\x39\xd0\xae\x42\xd9\xfb\xdd\x7a\xfc\x46\x53\xd3\xfa\xf4\xea\x86\x27\xb5\x7c\xf5\xb2\x21\xf4\x82\x2f\xf0\x71\x83\x48\x2f\xcf\x14\xb3\x2a\xef\xa5\xc5\x26\xb8\xc0\xbb\x6c\x1e\xef\xe1\xcd\x3f\xde\x97\xf7\xab\x2f\xd4\x4e\x86\x58\xc3\x38\x35\x6b\x84\x60\x7b\x31\xa9\xd4\x60\x11\x0c\x3c\xed\xcc\xfb\xc8\xd4\xd6\x0a\x72\x35\x9b\xe4\x81\x99\x3c\xcc\x93\x8c\xed\x5e\x1a\x4c\xbd\xd2\x73\x20\xeb\x8b\x5e\x48\xc3\x72\x35\x43\xed\x0b\x3a\x6f\xb1\xa8\x71\x3f\xd8\x48\xdd\xba\xff\xd6\x02\x22\x43\x54\x47\x8e\x9e\x63\xbd\x00\xf9\xd3\x73\xaf\xae\x15\xab\x18\x3e\xe3\x55\xf9\x31\x1f\x68\x06\x5e\x09\x23\xbe\xb7\x5a\x66\xc8\xa5\x69\x78\x42\xdd\xb3\x77\x5e\x66\x53\xcc\x15\x5d\x6b\xe8\x2c\x33\xe0\x66\x38\xbe\x61\xe2\x1c\x61\x8c\xdd\x01\x14\xd3\xe4\x23\x24\xa0\x33\x5f\x19\x8d\xf3\x34\x16\x1e\x64\xf1\x3c\x3d\xed\xa3\xdf\x1b\xe7\xeb\x31\x80\x2b\x34\xc3\x9b\xb0\x19\x9a\x46\xe2\x44\x6b\x3f\xb4\xfa\x61\x75\x14\x42\xd0\x36\xb0\x29\x6b\x3e\xea\x0f\x3a\x92\xa7\x74\x64\x45\xc4\x49\x0d\x87\xd3\x1a\x20\x47\x43\x38\x8e\xd6\x81\x38\x1a\x52\x71\x2e\x77\xd8\x82\xe5\x47\xc8\x2c\x8e\xa6\xfc\x38\x4f\xc6\x30\xeb\xea\xee\xd6\xf3\xb9\x4b\xf3\x2f\xae\x85\xb8\xfb\xdb\x96\x46\xb4\x19\x4d\xdd\xed\x4c\xca\xda\xbe\x1e\xea\x1a\x5b\x71\xd3\x53\x83\xa6\xd4\x4b\x77\xb9\x2c\x23\xb7\xf4\x63\x6e\xe9\x45\xf6\x60\x9f\x1e\xad\xd9\x71\xbb\xd4\x02\x3c\xfb\x60\xd9\x0a\x3b\xc5\xe3\x9d\xe4\x91\x61\xd9\xa7\x75\xe5\xb3\x39\x66\x58\x5b\x38\x1d\xc8\xee\x9e\x9b\x2c\x9c\xba\x6b\x1c\x03\xb9\xd5\xbd\xf7\xc9\x02\xf2\xb3\xcb\x10\xba\x0e\x5c\x44\x60\xde\xf5\x93\x91\x26\x80\x0b\xfa\x6a\xdd\x9b\xb0\x80\x5e\x86\xc6\xf1\xf8\xed\xa5\x8c\xe0\xdc\xc9\x9d\xe4\x65\xed\x7a\xb8\x05\x76\xc2\xc0\xa7\x57\xe6\xa5\xd9\x5d\x36\x99\xda\xc5\x76\x0c\xad\x5e\xfe\x16\xd6\xea\xb1\x93\xe5\x0a\x39\xef\x32\x53\xd4\x78\x37\x58\xd0\x99\x3f\x37\x34\x44\x97\x0c\x16\x4d\x55\x3a\x9f\xcc\xe7\x54\x4f\x51\x77\x49\xcc\xd1\xd2\xc4\x9b\x7b\x38\x89\x5e\x59\x26\xd3\x5e\x7f\xe7\x8a\x7b\x99\x7a\xe7\xcd\x27\xb9\xeb\xc4\x80\xcd\xed\x89\xb4\xde\xe6\x59\xd3\x97\xea\x60\x40\xbe\xd4\x19\x8f\x5b\xce\x0b\x0e\xe9\x02\xa7\xec\xcb\x73\xb8\x4c\xa7\xcf\xe7\xa2\xf3\x0c\x30\xbd\xee\xd5\xca\x8c\x69\xa1\x16\x5e\x4c\x0b\xdb\x86\x95\xdb\x32\xe2\xd4\xea\xe7\xc0\x91\x05\x98\xfd\xcc\x83\x04\xca\xa5\x5d\xeb\x7d\x19\x21\x61\x99\x0b\x60\xdc\x6e\x8f\xde\xfa\xd3\x92\x1b\x1b\xee\x0e\xce\xa4\x0e\xde\xb2\xee\xb9\xec\x63\xd2\x1b\x81\xcb\x08\x5e\xfe\x91\x21\xaa\x0f\xa0\x3f\x8e\x7e\x47\x04\x8b\x58\x3f\xde\x48\x3f\x01\xd2\x10\x7a\xca\xc0\xf8\x3f\x9a\x07\xf2\x7c\x39\x3d\x6d\x47\x0b\xb6\x84\xd6\xa1\x8c\xd6\x4a\xb9\x97\xe6\xd2\x1e\x4d\x4c\x5a\xa1\xb5\xe0\x8d\x26\x97\x66\x39\x4e\x4d\x08\x18\xc3\x0b\x7f\xc3\x3e\xac\x6f\x0d\x86\x0e\xcd\xee\x67\x4c\xd8\x0c\xd7\x3d\x74\xc7\xb9\xdc\xab\x26\x7c\xb5\x7c\xc0\xc9\x64\xf6\xa5\x00\xa4\x96\x90\xef\x82\xf1\x84\x10\x42\x46\xa8\x5a\x3e\x67\xcd\xdc\xd8\x63\x97\x6e\xaa\xf1\xc4\x64\xfc\x00\x29\xa7\x0c\x04\xa0\x47\xf1\x86\xcd\xc8\x6e\xcd\x94\x9d\x9f\x29\xc4\x1a\xea\xfb\x9c\x86\xe9\x05\x73\xad\xe7\x7a\xbe\x2b\x4d\x5d\x8d\x15\x93\x93\xb9\x3e\x99\xc9\xb2\x79\x92\x49\x24\x30\xae\x17\x96\x79\xaf\xad\xfb\x39\xed\xc3\xe0\x98\x04\x45\x74\xef\xc1\x24\x3d\x77\x43\xfc\x1d\xb0\x4c\x15\xee\x29\x41\xf0\x64\x91\xef\x5b\x58\x4d\xef\x61\x0f\x17\xc4\x42\x9e\x45\xf7\x9b\x87\xcf\x43\x23\x48\x60\x0e\x9b\xe6\xb1\x78\xde\x7e\x42\x4e\x01\x9c\xb9\x3a\x5b\x4f\xd8\xac\xe3\xfb\xa6\x14\x16\xc6\x75\xe2\x15\xaa\xc2\x03\x98\xb5\xf4\x9d\x5e\xc3\x77\xe8\x5c\x58\x78\xfd\x04\x36\x75\x3f\xd0\x4a\x77\xe0\x13\x4c\xaa\xf4\x85\xaa\x6d\x3c\x3a\xf4\x98\xd4\x9a\xb7\x0f\xef\xbf\xdf\x96\x89\x92\xb6\xbc\xb5\xe8\x09\x34\x63\xa1\xe6\x75\x3f\x97\x39\x11\xba\xd9\xd2\x5a\xa3\xdb\x64\x62\x8a\xc7\x72\xbb\x60\xa3\x2f\xe6\x76\x35\xa7\x7f\x4c\x43\x90\x0f\x67\xd2\x4b\x80\xee\x1b\x8b\xa0\x66\xe0\xa3\x17\x70\x13\x0a\x43\xf7\x6b\x92\xa7\xb7\xcf\xfc\x78\xce\x3a\xc0\x37\x0f\x85\x75\x34\xfb\x69\x06\xe0\x53\xf8\xb9\xc2\xcd\x38\x3e\x4b\xdd\x4d\x17\x06\xff\xef\x85\x0b\x98\x69\xea\xe5\x05\x78\x2d\x7e\x83\x86\xc0\xd1\xf4\x1e\xd3\xbc\x88\x84\x53\xb1\x9d\x3d\x5d\x1a\x99\x15\x78\x98\x9f\x7e\x56\x16\xd0\x4f\xc6\x0d\x0f\xe4\x81\x66\x4a\x63\x52\xc8\x87\x03\xf0\xc5\x5d\xbb\xb3\x21\xd2\x76\x69\xa1\x9e\xc5\xd8\xa9\xd2\xcb\xb3\xd1\x7e\xb0\xbe\xb3\x0e\x4f\x2f\x52\x28\xae\x30\x3b\xa1\x89\xb2\x58\x96\x62\xeb\x19\x15\xd4\x26\x8c\xfe\xc6\x35\xac\xde\xe2\x16\x0a\x24\x34\x89\xd6\x5c\x93\x01\x5a\x8a\x65\x6a\x2e\x7c\xc1\xc2\x78\xb2\xb3\xb3\x78\xe5\x05\x0b\xdd\xc2\xef\xd9\x5a\xd2\x73\x69\x92\xd8\xb3\xbb\x65\x22\x60\x1b\xb6\xe6\xab\xec\xd0\xe4\xda\x7a\x02\xda\x7e\x58\xae\x78\x81\x8b\x6f\xeb\x5d\xee\x89\x85\xe0\x20\x4a\xf3\x4a\xcb\xbc\xcf\x35\xba\xde\x49\x9c\x11\x90\x4d\x13\x69\xbf\x38\x96\x6f\xc0\x02\x15\x2e\x9d\x7d\x41\x32\xda\x87\x49\xd8\x80\x68\xdd\x29\xee\xdd\xdd\x61\xfc\x12\x4f\xcb\x57\xdb\xd9\x31\x9a\xa4\xdb\x2e\x67\x2c\x0a\xfd\x92\x8b\xff\x99\x96\x7b\x35\x0d\x36\x8c\xc8\xf3\x30\xbf\xaf\x26\x48\x1b\x57\x93\x5b\x33\xdc\x64\xe8\x2a\x4f\xe0\xd3\xb4\xa3\x3f\x92\x5d\x83\x93\x7f\x34\x39\xf3\x47\x57\x1b\x38\xaa\x59\x36\x4c\x19\xb2\x03\x17\x71\x85\x86\xf5\xb1\xc6\xe0\x3a\xcc\xe0\x4b\xef\x77\x74\xfe\x1c\x9b\xfc\x32\xba\x21\x74\x34\x3d\xd4\x03\xfc\x76\x98\xbb\x09\xeb\x36\x16\xeb\x16\x7e\x9f\x69\x2d\x74\xd3\x89\xc1\xa5\x1f\x7e\x9a\x2b\x8e\x1e\xc5\x0c\x20\xbe\xa0\x23\xa7\x64\x58\xc8\xba\xce\x4f\x9e\xf9\x5a\xc1\x3c\x80\x94\x31\x91\x83\x79\x71\x6d\x18\x4f\xb2\x80\xf7\x06\xdf\x8e\x16\xc9\xa8\x04\x0a\x27\xa4\xc4\x5c\xa1\x84\x13\x38\xe0\xa7\xdb\x48\x7f\xc3\xee\xad\x35\xa0\x5f\x86\xdd\x2b\xdd\xd6\x58\x20\xd2\x1b\xeb\x33\x4a\x8b\xd4\x40\xa0\xce\xf7\xd7\x75\x6a\x72\x38\x2b\x39\xdf\xa8\xa7\x9d\x35\x36\xdf\x35\x87\x9d\xa5\xd7\x07\x4d\x9a\x4c\x31\xbb\x97\x7e\x2a\xf0\x51\x33\x36\x8b\xf5\x86\x47\xa0\xbf\xe4\xbd\xfe\x44\x00\xf8\x30\x37\x9c\xd2\x3b\x3e\x4c\xc4\x9d\x8b\x53\x35\x37\x31\xcd\x18\x9b\xd6\x33\x98\x81\x57\xef\x5c\x0d\xc9\x57\xa5\xf3\x8c\x56\xb0\x83\x2f\x7e\x66\x6c\xf2\x5f\x99\x02\x57\x2b\x59\x64\x78\x05\x82\xa5\xd0\x9f\xa7\x87\xc9\x1d\x14\x54\xe6\xdc\x07\x08\x7b\xb6\x99\x1e\x03\xe0\xf0\xce\x9e\x10\xc0\x74\x2d\x48\x9d\x03\xc5\xb9\xb4\x5f\x80\xeb\x6a\x4d\x8a\x8b\x2e\xe2\x2c\x2b\x21\x5e\xf8\xa9\x63\x17\xf6\x65\x89\x1b\x70\xdf\xd5\x79\xc3\x37\x7b\x5b\x33\xf1\xed\xc6\x16\xab\xab\xed\xf9\x02\x12\x4c\x15\xc1\x96\xdb\xea\x16\xeb\xcd\xf7\xee\x8b\x5d\x38\x97\xf4\x6a\x2f\x06\x59\xdf\x67\x7b\xf2\x2c\x70\x02\x8b\xd7\x5c\xbb\xd0\x2e\x2b\x63\xaf\x80\x91\x3e\x85\x41\xc3\xfc\x9f\x76\xbe\x55\x1e\xe8\xb9\xcd\xfd\x81\x92\x04\xd0\xf6\x31\x1c\x5b\x98\x04\x3c\xab\xc8\xd4\x18\xba\x23\x50\x72\xd1\x25\xcc\x65\x81\xbf\xb8\xa8\xb4\xf6\x18\x6f\xea\x21\x1d\x3a\xc9\x93\x89\xb1\xb8\xa3\x4a\xe0\x93\xfe\x70\x71\x4d\x28\xbc\x9d\xbc\x37\xd9\xae\xa1\xd5\xa7\x5a\x61\xd4\x47\x16\x33\x88\x26\xa5\x2b\x9b\x31\x1e\x5e\x84\x79\xcc\x88\x3c\xce\xbc\x2c\xf4\x73\x9f\x15\x4b\x32\x9d\xf6\xdb\x02\xba\xf7\xc1\xc4\xbd\x61\x5b\x3d\xf8\xe1\xe7\xec\xad\xf9\x6b\xbe\xd8\x61\x20\x69\x63\x00\x4c\x87\xd7\xd5\x5a\x9a\x21\xe9\x4a\xdf\xd1\xac\xf3\xb6\x86\x21\x86\xc2\x7e\x5b\xf3\x47\x9b\x06\x48\x00\x8f\x2c\xc5\x81\xd0\xd3\x55\x76\x71\xac\x7e\x09\x2c\x41\x3e\x1e\x7f\x2f\xac\xf4\x97\x1b\x16\x6b\xe1\x67\x59\xc2\x8e\xf9\xb4\x68\xe5\x2b\x4e\x52\x97\x6d\xf5\xb8\xd7\x20\xe7\x4c\x77\xad\x58\x7e\xb3\x5a\x7f\xe8\x15\xf9\x46\x57\x79\x30\xfe\xc2\x2b\xba\x3c\x03\xe4\x95\xde\xeb\x53\x9f\x90\x71\xdd\x8c\x62\x19\x85\xcb\xde\x56\xbc\x48\x7d\x4d\x5b\x37\xbe\x97\x2c\x2d\x4a\x38\x4b\xf2\x21\x4b\x39\xf6\xae\xe7\xc6\xac\x39\x09\x7b\x8f\x50\xaa\xee\x82\x30\x02\xc6\x3f\xd6\xb4\xf7\xea\x5a\x0c\x55\x9f\x32\xc7\x21\x78\xfb\xe0\x22\x84\xb2\x4e\x94\xff\x17\x9e\x9e\x12\xd9\x5b\xf4\xc6\xb1\xbc\x65\xcb\x7d\x77\xc9\xf6\xac\x85\x26\x65\x8e\xfd\x6e\x20\xb2\xa7\x95\x89\xd3\x31\x43\x36\xec\xfc\xe1\xee\x0f\xdc\x6e\xd1\x5f\x75\x89\xcd\x25\x0e\xf7\xd2\x88\x92\xfa\xe1\xcc\x5e\xa3\x56\xdd\xfd\x1d\x34\x49\xc3\x95\x27\x30\xf5\x93\x2f\x0c\xa8\x21\xe0\x18\x4c\x7c\x8f\x75\x0a\xa0\xc4\xa0\x9f\xcf\x6b\x5d\xef\x70\x3e\x18\x9f\x47\xaf\x39\xcf\x8e\x2e\x8d\xb1\x5a\x07\x0f\xfa\x09\x0e\x1a\x10\x81\xa6\xeb\xd8\x0d\xcd\x7e\x20\xdd\x98\xa6\xaf\xd0\xa6\xba\x39\xd8\x68\x43\x21\xac\xa0\xc5\xca\x6b\xb6\x31\x56\x20\xb2\x60\x39\xb5\x0a\xe1\xf9\x79\x36\xfb\x57\x31\x68\xd7\x82\xc3\x08\x88\x6c\x3b\xc9\x1f\x93\xe8\xcc\x3d\x80\x68\xd9\x80\xb9\xb7\xa7\x45\xff\xa0\x83\x84\xee\x80\x61\x0e\x96\xd7\x8c\x6c\xe8\x3c\xa3\xbe\x0f\x13\x94\xe7\x7e\xbf\x02\xf9\x75\x07\xd1\x19\xce\x55\x2b\x09\x56\x63\x29\x86\x0d\xe4\xcb\x03\x84\x74\xaf\x2b\x24\x21\x84\xc0\xf5\xb7\x0f\x48\xcf\x4a\x0b\xf2\x58\x53\xc2\x1e\x86\x45\x9e\x64\x6a\x8b\xb1\x7b\x3b\x96\x97\x77\x3c\xea\xaf\x6d\x6d\x41\x56\xad\x7a\x86\xea\x74\x05\xd8\xde\x6e\x3c\xd4\xb5\x3d\x3e\x05\xe7\x22\x92\xc9\x75\xd9\xfd\x36\xfb\xe1\x21\xbb\x88\xab\x66\xe3\x6c\x1d\x00\x4f\xb1\xae\x54\xaf\x89\xef\x7f\x32\x7f\x1e\xf1\xf2\xb4\xb1\xb6\x67\xf4\x2f\x9f\x82\xbb\xc5\x7c\xce\xc3\xad\x77\x86\x87\xd3\x9c\xf6\xac\x64\x22\x7d\xad\x91\x34\x83\x31\xb0\x61\x38\xf3\x2b\xa5\x3c\x9f\x08\x44\x7c\x79\x64\x11\xc4\x0c\x8e\x67\x08\xd2\x6a\x00\x4e\x9d\x31\x99\xe5\x67\x79\x10\xea\xf5\x3d\xc8\x07\xce\x3a\xf4\xab\x82\xcf\x70\x27\x1b\x03\x15\xbb\x1e\x57\xdb\x2d\x36\x8f\x17\x48\xef\x1d\x88\x7c\xe4\x31\x2b\x84\xdd\x16\xfe\xa6\x4a\x1c\xa7\x57\xa8\x25\x16\x18\x2b\xc3\x7e\xac\xfd\xe6\xe8\x60\xbd\xb9\x95\xd8\x0e\x32\xf9\x35\x3d\x58\xc2\x66\xbe\x3f\x16\xd3\x3c\x4a\xb6\xdc\x96\x4b\xc6\x46\x6b\x91\xc3\x20\xc2\xd5\xbe\x8f\xe9\x65\x28\x5a\xad\x5d\x02\x83\x5d\x50\xa6\x6d\x3d\x47\x2c\xd6\x0e\x7d\x07\x7a\x7f\xc1\xfa\xac\x08\xf7\xf1\xfc\x9a\x4d\x08\xd9\x84\x23\x16\x8f\x78\x35\xbf\x69\x96\xbe\x51\x81\xf6\x03\xdf\x54\x43\xf2\x9f\xb4\xbc\xa8\x69\xd1\x7b\x84\x8e\xb4\xff\x31\x64\x1a\x54\xc1\x54\xd4\xc1\x9b\x51\x47\x4f\x31\xae\xcc\x45\xfa\xe5\xf5\x65\xf7\x27\xd0\xd4\xc4\x82\xaf\xb6\xe1\xbe\x0f\xd8\x22\x23\xda\x7f\x00\x8c\x01\x06\x1f\x18\xbb\x11\x1e\xd3\x3e\xb8\xec\xcd\x79\xb6\x9f\x33\x28\x25\x76\x00\x7d\x10\x0c\xde\x85\x60\x66\x99\x92\xcc\x41\x13\x80\x81\x5f\xef\xa5\xbd\xc0\x7a\x56\x67\x5d\x7b\x2d\x2f\x1a\x50\x50\xf0\x62\xbd\x14\x42\x88\x77\x00\xe7\x07\xf2\x1a\x5c\xf2\xd0\x13\xf6\x42\x5a\x5b\xf0\xb4\xc2\x14\xf4\x41\x19\x5c\x5e\xe2\xea\x0c\xb2\xaa\x67\x75\x23\x5e\xb8\x7d\x4c\x71\xad\xcb\xa8\x5a\x60\x36\x75\xac\x3b\x55\x4c\x1f\xb8\x37\x1f\x02\xd4\xad\x36\xe9\x16\x97\xe3\x65\xd3\x45\x42\xab\xce\x20\xd7\xd0\x70\x2e\x8f\x60\x4c\xfd\xa7\x35\x2a\x65\x94\x44\x3c\x66\x9f\xde\xf4\xb1\xb1\xee\xf7\xe8\x53\x08\xd3\xb4\x20\xe1\xe0\x15\xd1\xe2\xc4\x04\xce\xa2\x5e\x02\xb9\x71\x9e\x65\xc0\x23\x70\x82\x1a\xa4\x3b\xd4\x87\xe9\xb6\xcc\x85\xdb\x9d\x53\x43\xe1\xb6\x79\x20\x3c\x83\x0f\x2f\x9a\x6c\x96\x7d\x35\x0b\xe7\xc1\x28\x9c\x49\xf8\x1a\xd6\x84\x8a\xb2\xe7\x32\x3e\x91\x07\x57\xd0\xee\x0b\x67\xcd\x7d\x8d\xd6\xc9\x3c\xea\xcc\xbb\xc6\x1f\x05\xe3\x25\xad\xd0\xa9\x9f\x3f\x83\x83\xd7\xd3\x9e\xff\x53\x46\x16\xf8\x2d\xf0\x5f\xe2\x6d\xe1\x99\xe1\x72\x85\xb6\x13\xf6\xa5\x47\x09\xfb\x47\x21\xf9\x2c\x08\x3b\x3d\x34\x4e\xb7\xfd\xbc\xe1\x01\xce\xda\x06\x71\x85\xad\x5c\xd8\x9a\x56\x1c\xf3\xfd\x83\x2a\x06\x3a\x51\x8d\x20\x5d\xa1\x58\x1a\xe6\x0f\x2d\x72\x48\x7c\xf5\x86\x59\xae\x30\xc9\x35\x7e\x43\x30\x11\xee\x29\xfd\xa7\x90\x09\x33\xbc\xea\xa9\x4f\xd6\xd3\x0b\x2d\xf8\xb7\x8a\x7a\x16\x67\xd0\xc7\x1e\x7d\x70\x2e\x8f\xa6\xf1\x70\xd4\x5b\x3e\x70\x43\xde\x5e\x46\x63\x30\xfb\x57\xd5\x30\xab\x32\x98\x8a\x2e\x12\x4d\x17\x3b\xfc\xce\x68\xba\x79\xc3\x04\x77\xb7\x49\x78\xc4\x37\x31\x90\xf7\x5e\xba\xa2\x30\xa4\xa7\xe1\xe7\xd5\x45\xe6\x99\x15\x2f\x83\x55\x9e\x86\xdf\x84\x4c\xbd\xe3\xff\x31\xdf\xb2\xf0\x94\xdd\xe9\xa7\x12\xb1\xd0\x0a\x9c\xa1\xdc\x55\xad\xc5\x54\x7a\x4c\xf2\x63\x41\x23\x28\xe9\x30\x71\x34\xb8\x0e\x3a\x2c\xd5\x9a\x67\x42\x9f\x30\x80\x0e\x68\x95\xe5\x77\xaf\x95\x8a\xb5\xae\xbf\x2e\x11\xcf\x00\x98\x7a\xf7\x7e\x79\x25\x9e\x11\x33\xf1\xc0\xf7\x09\x99\x22\x2a\x47\xb6\x0f\x61\x3e\x7b\xac\x65\xb2\x94\x9e\x61\x38\xb1\x61\xa4\x96\xfb\xd2\xb2\x5e\x9f\x79\x21\x0f\xcf\xba\xf9\xf1\x0d\x5f\x5c\x38\x04\x76\x83\xdd\x04\x18\x79\x19\x38\x00\x1e\x67\x85\x6b\x8c\xa1\xe3\xd5\x5b\x9a\x06\xe6\x7a\x39\x6b\x9b\x74\x32\xf5\xd2\x7e\xe2\xe4\xc4\x69\xc5\x10\x3a\xf0\xb3\x2f\x7e\x88\x8d\x5f\x01\x9f\x04\x0b\xa7\x6c\x16\x98\x40\x9c\xcd\x38\x6d\x4e\x18\x14\x6f\x9c\x15\x1a\x57\xa7\x58\xbb\x1c\x54\x21\x43\x11\x6b\x10\x5f\xe6\x78\xd2\xbd\xcf\xab\xde\x4a\x66\x94\xc4\x9a\x3f\x5f\x6b\x1a\xc5\x3e\xd6\x22\xf3\x06\x16\x0c\xae\x9b\xd1\x2e\x94\x63\x27\x59\x75\x50\xd8\xdd\x3d\x9e\x35\xb7\xb1\x31\xfe\x0a\x44\x83\x78\x33\x8e\xa6\xcb\x5c\x07\x17\x85\x7b\xde\x0d\x62\x22\xee\xf2\x3e\x4d\x8b\x0f\xb5\xeb\xe3\x47\xbc\xc4\x49\xf7\x92\x71\xf1\x82\x25\x0f\x1b\xbe\x17\x46\x79\x06\xfa\x88\x77\x4d\xbc\x6c\x7e\x66\xbd\xaf\x9f\xd8\x38\xf0\x5c\x93\xd3\xdb\x8e\x40\xd8\x08\x30\xd4\x0a\x9b\xc5\x42\x88\x32\xfc\xf1\xa5\x21\xf0\x18\xcd\x7c\x7a\x7d\x9a\xf1\x4f\xf3\xd0\x34\x3f\x3e\x19\x6f\xfb\x34\xec\xef\x83\xfc\x3e\x5a\xcf\x73\x41\x52\xce\x77\x05\x66\x89\xef\x65\x77\xa2\xfd\xfb\x4b\xe0\xf1\x8b\xe2\xd3\xc2\xd0\xad\xe5\xf5\x21\x59\xd4\xf3\x37\xcd\x8a\xbd\xf1\xde\xb2\xb8\x10\x23\x36\xbe\x3f\xe6\x3b\x2f\xf1\xf9\x57\xcc\x81\x1d\x9e\x3c\xe1\x0c\x5e\xaa\xe7\xbd\x41\x16\x05\xbd\x10\x0b\xba\xa4\x63\x81\xb6\x62\xe5\x83\x1a\x2b\x0f\x1b\x59\xd1\xc0\x5b\xb4\x15\xfa\x80\x33\x6f\xa0\x0a\x21\x08\xbb\x1e\xb3\x16\x86\x8f\x9e\x40\x10\x3b\x82\x8f\xda\xd0\xd1\x7a\x90\x05\x1e\x1b\xce\xdc\x6b\xe3\x2a\x9b\x05\x72\x1e\xa8\xdb\x78\xc2\xc9\x0b\x9f\xc6\xba\x6c\xe3\xac\x58\x4f\x08\xc3\xf6\xda\x5e\x96\x90\x0c\x1c\x75\xa2\x1a\x63\x98\x68\x0a\x15\xe2\x7c\x38\x6d\x76\x6d\x06\x86\x51\x08\x62\x16\x01\x9d\xdc\x81\x21\x78\xda\xeb\x27\xef\x7a\xd0\x3c\x54\xc8\x56\x88\xfd\xd5\x89\x19\x28\xa0\x16\xdd\x08\x70\xea\x07\xff\x2f\xd6\x5e\xcd\xe8\x9a\x64\x2d\xa6\xd3\x1e\xe6\xc0\xdc\xcd\x8a\x5f\x1b\x31\x6e\xe1\xee\xd7\x7b\x84\xab\x47\x83\x80\xaf\xb7\x2b\x06\x25\x00\xa0\x7a\x03\x29\xd7\x9b\xc5\x02\x6e\xf7\x10\x66\x46\x41\x73\xc2\xf8\x6c\x1c\x2d\x9b\xa0\x9c\x79\xd0\x6d\xd5\x18\x2d\xcd\x92\xd4\x8d\xc2\x72\x3f\x77\xdd\x65\xc3\x53\x2b\x6a\x6e\xf4\x33\xfb\x0a\x14\xec\xe7\x79\x02\x35\x73\xa0\xbe\x0e\xb4\xd6\x08\x26\xa3\x99\x5e\x87\xb9\xaa\xfb\x3d\x87\xb8\xc8\xee\x8d\x0d\x35\xdd\xf8\x38\xcf\xb2\xc4\xa7\x59\x7b\xad\x09\x9f\x46\xaf\xb9\x37\x23\xb6\x8c\xce\xbf\xae\x44\xcf\xda\x33\x0c\xff\x77\xfb\x7e\x12\xf1\x55\x6e\x74\x74\x99\x4c\x0c\x5d\xe9\x67\xf4\x70\x8a\x35\xac\x4c\x6f\x18\x05\x5d\x22\x2b\x31\xfb\x5a\x2b\xc6\xf1\x5c\x52\xc5\xe0\xb4\xc7\x74\x31\xe5\xf4\xd1\xcc\x92\xaf\x1a\x7f\x0a\x7c\x5a\x3e\x5e\xfc\x5a\x76\x12\xbc\x80\xfe\xff\x4a\xe3\xb4\x5d\x5b\x8f\xe2\xe9\xa9\xe7\xb2\x8a\x8e\x7b\x3e\x13\x10\x1a\x9c\xf8\xca\x8c\xcd\x4c\x75\xda\xfc\x1a\x21\x10\x75\x79\x7f\x3c\x09\x09\x44\xe0\x5a\x8e\x02\xc1\xba\x18\x54\x02\x79\x02\x27\xfe\x57\xe3\x8d\xc8\x25\x03\x87\xe6\x29\x3d\x63\x2f\xd1\xaf\x97\xa9\xaf\x0b\x8f\x4f\xf8\xd6\x60\xd2\x46\xa2\xe6\xab\x07\x5c\x8f\x87\x38\x05\xf6\x7a\xc1\x5e\xaf\x9a\x4f\x36\x0a\xd2\xde\xf4\x03\x99\x20\xfa\x4f\x5b\x31\x08\x7a\xdb\xd0\x1c\x7a\x27\xdb\x58\xce\x11\x65\x3b\x0c\xd3\x30\x25\x0b\x4f\xa3\x1e\xa0\x79\xb0\xeb\x89\x85\x49\xa4\x53\x3f\xb9\x93\x73\xbe\x65\xf0\xf4\x20\x22\xc1\x39\x17\xcf\xc3\xd8\x35\xfd\x58\x17\xae\x7f\xa4\xe6\xe7\x5a\x40\xdf\x7e\xef\x7d\x72\x00\x97\x93\x38\xd7\x03\x4a\x64\x01\x2c\x12\x5c\x74\xac\x7b\x59\xea\xc4\x93\xb0\xab\x6d\xef\x15\x34\xfe\x8c\xa6\x87\x01\xd2\xe1\x32\x8a\x73\x70\x75\x5b\xbd\xb2\x98\x2b\x2e\x0b\xc0\xd5\x17\xe2\x86\xf9\xeb\x7d\xe0\x5e\xb6\x8f\x32\x4e\x81\x49\x5d\x26\x68\xe1\xa5\x78\x2e\x77\x74\x55\x1c\xf8\x42\xb2\x61\x24\x89\xa0\x87\x70\xc2\x91\xc5\x9a\x07\xae\x5d\x0b\x05\x4f\xf4\x9d\x8d\x7f\x46\x3f\x33\x51\xb3\xc5\x33\xfd\xe9\xed\xa6\xa5\x5b\x68\x04\x0a\x68\x7f\x5d\x25\x4c\xa3\xed\x01\x0c\xb8\xb8\x84\x05\xcc\xfe\xca\x71\x96\xcc\x05\xd8\xc0\x39\x88\x37\xe6\xa0\x47\xd5\x9f\xb6\x1a\xc5\xeb\xef\xd7\x35\x00\x33\x57\xe9\x18\x08\xac\x9a\x65\x4f\x09\xfa\xaf\x30\xcf\xb9\x2d\x90\xd0\xb3\x7a\xbc\x8e\x6b\x8f\x5a\x12\x72\x81\x40\x2c\x79\xb0\x7b\x26\xac\xa4\x26\x52\x71\xc6\x2b\xc7\x98\xc9\xee\x09\x54\x57\x78\x2b\x2e\x3c\xb1\x35\x6b\x36\x09\x1f\x3f\xfb\xf2\x08\x8e\xcc\x9e\x17\xc6\x64\x28\x6f\xad\x7f\x9b\x61\x7a\xeb\xc5\x94\x7d\x5f\x79\xae\xf3\x1a\x01\x39\xfc\x2a\xf1\xb0\xc0\x55\x8d\x97\x46\x6e\xad\xd7\x86\x8b\x47\xe3\x91\x6f\xa7\x5f\x95\x3b\x7c\x5c\x3a\xe7\xd5\x3d\xe1\x43\xc7\x49\x8e\xfc\x51\xc8\x10\x37\x4c\xb3\x20\x5d\xee\x8c\x65\xf8\xf1\xba\x5e\xc2\xd3\xb5\x29\xf8\xc3\xbc\x98\x17\x44\x16\x5a\x10\x1f\xf1\x33\x19\xa8\xba\xeb\x4b\x4c\xea\x5d\x3c\x5c\x62\x67\x25\x97\x4a\x47\x9d\x5d\x70\x25\x9d\xec\x10\x3f\x36\xf6\x8b\x3c\xc7\x15\x5a\xe5\xf5\x20\x05\xa6\xf4\x92\x16\x92\xb5\xda\xeb\x7e\xd7\x20\xbd\x2b\xaf\xf8\xe8\xfd\xcf\xe3\x8d\x8f\x60\xa9\xc5\x02\xb5\xf7\xb5\x94\x1a\xef\xc6\xcd\xf7\x29\x04\x7a\x6a\xd9\x6e\xb4\xa9\x97\x16\x8e\x95\xbe\xff\x40\xc5\x67\x37\xe4\xa8\xbe\xb6\x85\x78\xbe\x0e\xbb\xf9\xd4\xf7\x67\x59\x75\x7c\x64\x18\xd7\xc2\xc7\xf5\xb4\x3e\x94\x2d\xe2\xe3\x19\xff\x44\x8c\xd9\x44\xeb\xd9\xb4\xe8\xc9\x1c\x3b\x9a\x55\xae\x5d\x9c\xed\xe0\x97\xcd\x2c\x8a\xe0\xb4\x84\x74\xb7\xcd\x52\xcd\xa5\xcb\xc1\x94\x65\x2c\x65\x85\x84\x0e\x43\x89\xdd\x16\x5e\x96\x75\xd6\xdd\x78\x02\x76\xd8\xf8\x40\x32\x5e\x96\x87\xdf\x1f\x95\x2f\x0b\xab\x86\x81\x4c\xd6\x4d\x8f\x05\xb8\x7d\x7d\x00\x5e\x83\x97\xac\xd4\xb2\xb6\x00\xd2\x05\x7f\x41\xca\xba\xcc\xc1\x06\x91\xb9\xd1\xbc\x19\x10\xca\x2a\xbe\x26\x9c\x84\xd5\x92\x07\x2a\xb1\x12\x32\xa1\x1e\x3e\xfe\x7c\xe7\x7e\x62\xa9\x2f\xc5\x9d\xc4\xf3\x41\x9c\xa0\x4c\xc7\x6f\xbb\xdb\x84\xd8\x35\x03\x80\x02\xe6\x9c\x0d\x1b\xb0\xf4\x7c\x2d\x7f\x66\x36\x7b\x40\x8e\xa2\x53\x9c\x2b\x0b\xf1\xe1\xd5\xed\x6b\x6b\x49\x8f\x80\x85\x66\xec\x4d\xdf\x9e\xb7\x84\x5f\xaf\x50\x5a\x46\x41\x16\x80\x56\x97\x85\x94\x44\xf5\x14\x02\x6c\x0f\x00\x2d\x06\x7a\x40\x77\xc3\x7e\xed\xaf\xd1\xc6\x95\x71\x2b\x26\xaa\xf1\xbe\xf4\xbb\xfc\x5a\x45\xf7\x6b\x5f\x26\x8c\xef\xad\x7d\x98\xd9\xc3\xdd\x97\x8e\xdb\x68\x1b\x36\xd0\xc0\x4e\xc9\x6e\x96\x1f\xf5\xfd\xaf\xd5\x68\x05\x1e\x93\xef\x2c\x61\xed\xc1\x8c\x27\x88\xe8\x59\x60\x39\xc7\x74\x26\xa4\xc0\xac\xef\x9c\x27\x4b\xf5\x24\x20\x74\x2e\x02\xdb\xe7\xf5\xd3\x8c\x2e\x1e\xec\x05\x76\x48\xc2\x86\x99\x39\x88\x92\x5a\x0e\x8d\xc0\x71\x57\x0c\x10\xcd\xcc\xd7\x26\x02\x81\x6b\xe9\x37\xca\x7c\xd4\x8b\xc9\x8d\x10\x3d\x48\xc5\x0c\xb3\xd8\xdf\x60\x13\x8b\xf4\x09\x03\x92\x71\x30\x56\x2a\x31\x7d\x80\x04\x11\xae\x0a\xbb\x02\x6e\x09\x75\x50\x67\xb1\xee\x40\xd6\x50\x7c\x0d\x98\x6f\x40\xcb\x0e\x2b\xef\xe3\xca\x90\x1e\x50\x2e\x52\xfb\x83\xcf\x3a\x30\x60\x73\xec\x5a\x5d\x5f\x13\x1b\x85\xc2\x21\x20\xee\x98\x0c\x58\x36\xe7\xda\x51\x47\x4f\x9d\x30\x1c\x45\x71\xca\x72\xff\x2c\x93\x60\x96\x0f\x40\xe4\x2d\x20\xdd\x98\xe7\xfc\x2d\x71\x36\x42\x8f\x7c\xbd\x8c\xf1\x75\x72\x40\x63\x39\x4a\x06\xaa\x92\x79\x76\x3f\x4c\x13\xf4\x1b\xb1\x1c\xcc\x72\xec\x1a\xc0\xd1\x37\x68\x57\x1f\x0f\xe5\x40\xb8\x4c\xe1\x6f\xb9\x9b\x17\x6b\xa3\xf1\x4c\xa1\x86\xe3\x65\xa6\x6e\x35\xae\x86\x6c\x1c\xe2\xb8\xba\x2d\xde\x2f\x63\x75\x5e\xde\xdd\x83\x9a\x0d\xb9\xd1\xf7\x15\xad\x8b\x31\xc6\x8c\x40\x54\x54\xe2\x27\xba\x0b\xa7\x1c\x0f\xc7\x5a\x37\x2d\x95\xfa\x9d\xea\x36\x17\x93\x64\x1c\x72\x30\x70\x7a\x7d\x85\x3d\xf4\xd0\xd5\x32\x0d\xd6\x42\x1b\x32\x04\x14\x5f\x28\xb6\xba\xe9\x28\x30\x9b\x00\x99\xf0\x9d\x7d\xcd\x0a\x45\x6c\x2c\x7d\xb4\x87\x44\x29\xcc\x62\xb6\xaf\xc1\xcc\x0e\x7b\x40\xfb\xbb\xb0\xd9\xd5\xd4\xb8\xb0\xab\xd2\x1d\x79\xb0\xfd\x21\xad\xab\xd7\x7c\x9d\x9a\x48\x4d\x2c\x60\xc2\xc3\xf3\x15\x97\xac\xef\x1f\x16\xb1\x7b\x7f\x26\xe0\xa5\x87\x64\xba\x4a\x56\x43\x66\xbf\x2f\xeb\x85\x20\x06\xfa\x0f\xef\x22\x34\xfd\xf1\xc0\x51\x07\x7d\xe8\x7b\xf7\xd7\x20\x4a\xc8\xc6\x84\x25\xc4\xac\x39\x05\xfb\x7f\x98\x35\x6b\x47\x03\xeb\xf8\x04\x7f\x5c\xc1\xfc\xbc\xe5\x21\x84\xec\x12\xe3\xa2\xee\x4e\x90\x73\xdb\x1e\xfa\xb2\x93\x50\x1d\x66\x2b\x4c\x83\x6e\x8c\x95\xba\x84\x5d\x95\x89\x84\x6b\xcb\xf7\xab\xea\x9d\x1c\xb8\x6c\x0c\x09\x2b\xac\x7f\x58\x1f\xd4\x8d\x43\x30\x07\xb3\x14\x16\x05\x04\xd6\xb5\xa3\xa5\xf5\x9e\x35\xe6\x41\xb1\x5c\xf7\x16\x4f\x4e\x13\x7f\x10\x91\xbd\x5f\xb5\xa7\x1d\x5c\x9d\x81\xce\x36\xcd\x16\x92\x03\x41\x0b\xdb\x27\x50\xb1\xa8\x17\x7c\x6d\xb2\x9b\x4c\x7f\x88\x7b\x34\x28\xf6\xb8\xd7\xf2\x24\x75\x30\x61\x84\xb2\xf8\x23\x92\x10\x18\xfd\xf3\x5c\x00\x5c\x26\xda\xe5\x61\x42\x9f\x38\x01\xe4\xf5\x58\xb1\xcd\xf1\x40\x95\xd6\xc0\x01\xe2\x67\xc8\x32\x30\x84\x09\xc5\x02\x5a\x10\x53\x1f\x60\x92\x78\x30\xd8\x13\x0d\x62\xab\x37\xb4\x4c\x56\xa9\xd5\xea\x35\xf3\x2e\x63\x65\x16\x13\x57\xc8\x90\xcf\x41\x7e\xfc\x36\xc4\xde\x3b\x38\xd9\x46\x08\x22\xed\x1a\x5b\x32\x98\x48\x7b\xa0\x29\x98\xe7\x46\xd0\x0b\x9c\xe5\x43\x20\xfe\xf8\x01\x8f\x01\x3a\x04\xa1\xcd\xe6\x3a\xb8\x3e\x66\x87\x89\xb2\xe3\x70\x1f\x08\x13\x2d\xbc\xf4\xce\xb5\xa0\x09\x84\x9c\x73\x41\x7d\xe2\x5f\xcb\xb5\xdd\x42\x20\xca\x1c\xcb\x15\x8e\xf6\x92\x81\xb6\xcc\xe1\xa6\x10\xc3\x4a\x34\x82\x9b\x58\xd7\xb7\x08\x83\x5e\x5f\x41\xd0\xc2\xbd\x84\xd8\xc4\x7a\xa1\x6f\x64\x90\x86\xad\x05\x3d\x4e\x8e\x71\xee\x41\xfb\x43\x8c\x13\xf3\xab\x00\x44\xe4\xc8\x1c\x5b\xb0\x13\x8b\x18\x55\x87\xc9\x2c\x88\x92\x4b\xbc\xee\xb2\x1a\x80\x8c\x12\xeb\x1c\xf6\x3c\xe3\x0a\x5a\xad\x1e\x79\x0d\x3b\x50\x3e\xed\x85\x62\x79\x04\x5d\xf7\xb2\x2a\xa3\xec\x14\x78\x5a\x12\x64\x74\x6c\x4d\x37\x39\x82\x23\xb9\xd1\x32\x0d\x80\x68\x1c\x0b\x42\xc4\xdb\xc8\x62\xce\x4d\xfc\x75\x96\x85\x00\x70\x05\x44\xdc\x6c\xb4\xe2\x83\x0d\xbf\x04\xcd\x73\x43\x0d\xe2\x60\xd2\xb4\xaf\x3d\x5e\x84\x0e\xd1\x08\x84\x7a\x7a\xc6\x80\x15\xc9\x0d\x79\x72\x30\xdd\xf6\x0b\xd4\xf9\x85\x18\xf5\x12\x97\xdd\x8d\x59\x58\x8e\x26\xdb\x04\x66\x23\xfb\x14\x5c\x26\xa2\x53\x4b\x1a\x8a\x4d\x5d\x38\x86\x45\x02\xe1\x94\xb5\x74\x71\xd1\xa2\x5e\xa2\xb1\x34\x65\x67\x5c\x48\x0d\x64\xb0\x71\x09\xf4\xba\x1a\x08\x61\x55\xf3\x85\xc5\xc0\x5c\x4e\x47\xdb\x60\xc7\xa6\x6e\x31\x9e\xcc\x39\x6d\x6b\xca\xc3\xc8\x5e\x5a\x12\xb4\xad\x69\xb4\x1c\xfa\xa8\xce\x96\x5b\xab\x69\x22\x4f\x4b\x98\xf5\x83\x76\x38\x78\x40\x89\x76\xc1\x12\xab\x83\x5a\x32\x37\x46\x01\x02\xe2\x74\x52\x97\xd6\xe3\x4b\xbc\x55\x49\x77\xc5\xb5\xb0\x0f\x42\x34\x82\x34\x4c\xa9\x64\xfa\xae\x0a\x4d\x61\xe3\xba\x67\xd4\xe5\x58\x02\x43\x7c\xcc\x77\x9a\x7e\xe0\x42\xce\x49\xd8\x7f\x5d\x96\x01\x3f\xfa\xb1\x6e\xf0\xe2\x99\x25\x9c\x69\xd5\x52\x8b\x4b\x63\x2f\x5a\x47\x2d\x58\xe6\x68\x7d\xe6\xe8\x98\xd0\x20\x3a\xe7\x5a\x8e\x77\xd5\x6a\x39\x2c\xee\xad\x9a\x30\x2a\xfc\x58\x35\x38\x13\x58\xf9\x0e\xd2\xe2\x7a\x6f\x7d\xb2\xc9\xbc\xd2\x5b\xef\xd4\x61\x57\x16\xdf\x0f\x94\x92\x03\x07\xb3\xf3\x5a\x34\x37\x28\xd8\x74\xa8\x96\x97\x1c\x84\x71\xb3\x50\x79\x01\x4e\x2f\x10\x08\xff\x76\x4e\x08\x0f\x78\xfa\x5e\x21\x33\x74\x04\x96\x63\xe3\x0c\x8b\x84\x1f\x20\x93\x47\x90\x6f\x60\x5a\x8f\xe3\x92\x3f\x60\xba\x35\x32\x70\xbb\x4f\x23\x59\xeb\x8b\x62\x09\xa2\x81\x61\x88\x34\x38\xc7\x79\x05\x30\x1a\x11\xad\xa4\xad\x92\x3b\x04\xe1\xc3\xb1\x9d\xc4\x80\x3e\xdb\xa6\xe6\xe0\xdc\x2b\x10\x04\xc4\x79\xbb\x5d\x98\x1d\x07\x54\x8b\x62\x0d\xbd\xd4\x80\xb0\x61\x9a\x70\x83\xe6\xd1\xa3\x14\x6c\xc4\x58\x59\x9c\xb9\xd1\xb1\x0d\x01\x6e\x1a\xa3\x07\x4d\xd4\x8e\xf2\x36\x8a\xab\xd4\x39\x31\xce\xef\x01\x3b\x6b\x7a\x96\xb9\xfa\x3e\x79\xd5\xf9\xb4\xe0\xa0\x3c\x6e\x59\xe3\x9a\xf4\xf2\x3a\xdb\x8d\xce\x10\xdf\xe7\xf3\x1c\x78\x18\x28\x9b\xa0\x2e\x2e\x11\x63\x17\xed\xf1\x26\x2c\x4d\x73\x6b\x10\xeb\x9a\x6f\x39\x10\x2e\x78\x1a\x9d\xf0\xf9\x58\xe1\x17\x39\x8f\x0c\x9a\x45\x04\xe0\xdb\xec\x47\x4b\xfb\xe2\x1b\xc3\xb7\x69\xb1\x8f\x6d\x2b\x0f\xe6\x33\x8a\x1c\x64\x95\x6f\x98\xc9\x72\xf4\x2d\xc2\x81\x1e\xd2\x8e\xf7\xe0\xf9\xe8\x27\xcf\x09\x97\x6c\xbd\x12\x74\x5f\x84\xa7\xca\x0c\xbb\xb2\x9e\xfc\x01\x49\x7e\x30\xb7\x42\x10\xb9\x56\x62\x1f\x3b\xdf\x46\x92\xbc\xa8\x34\x4d\x5d\x02\x0c\xe7\x3c\x59\x5e\x4d\x08\x9c\x5e\x8f\xda\xe6\x05\x38\xbd\xc3\xe8\xc8\x85\x0a\xe6\x20\x7f\xb9\xbc\x9e\xe7\x89\x34\x10\xaa\x40\x8a\xc2\x3b\x6b\xca\x04\x85\xfe\x86\xd3\x4c\xdd\x15\xaa\x25\x48\x2b\x21\x03\x42\x6f\x34\x84\xcd\xd3\xe9\xa2\xca\x2e\xff\x30\x9c\x8e\xaf\x8b\xfc\xe0\xbe\xc5\x33\x13\xe8\xf3\x85\x9e\x91\x3c\xa2\xa2\x10\xaa\x70\xd4\xb3\x03\x15\x50\xec\x94\xfd\x61\xb5\x9e\x33\x26\xa0\xb6\x46\x32\x9d\x15\x8e\x9b\x0e\x1b\x1f\x96\xe4\x9b\xa0\xae\xbb\xbc\xef\x22\xbd\xb1\xf8\x39\xb1\x68\xcb\x81\xff\x05\x0d\x9a\x65\xb7\x69\xb5\x03\xbd\x07\x06\xd0\x3a\xab\xc7\xcc\x71\xfc\xa5\x71\xc0\xf6\x9c\xaf\xfd\xba\x1d\x4d\x3a\x26\x82\xbe\x61\xc1\x1b\xe7\xb0\x03\x81\x17\xe4\x10\xde\x3e\x8b\x70\xb3\x03\xa7\x6c\x07\x02\x66\xe3\xa3\x66\x1e\xc8\xb6\xd0\xbd\x71\x26\xe6\xc5\x1c\xef\xfc\x89\x33\x77\xea\x15\x5f\x92\x44\x16\x1b\x04\x90\xcf\x19\x0c\x1c\xed\x3c\xa6\xe4\xdb\x33\xd7\xf9\x06\x75\x9a\xe7\x3f\xb6\x73\x1c\x7d\xeb\x18\x95\x25\xc4\xae\x95\xd9\xce\xc6\xc1\x77\xec\x87\xe0\x98\xb0\xb4\x1c\x30\xaf\xb3\x19\x5c\x24\x4b\x79\x41\x84\xba\x43\x82\xa8\x00\xff\xd7\xf7\x41\x98\x6b\xbc\x75\xf5\x04\x2d\x19\x78\xe4\x0d\x3a\xdb\x7c\x25\xac\x99\x7d\x13\x45\xcc\xa5\xfe\x40\x16\x6e\xd0\x53\x6d\xb4\x3c\xb5\x91\x0c\x27\x14\x4e\x6d\x22\xbb\x8b\x30\x72\x52\x06\x20\x76\x76\x60\xfb\x62\x96\xb4\xa5\x1b\x0b\xe6\xed\x3a\xa4\xdf\x31\xb2\xbc\xc0\x87\x4d\x52\xa1\x1b\xff\xe6\x45\xf8\x9a\x3d\x61\x4a\xf6\x1b\x58\x16\x3f\x7f\xb6\xa3\xba\x09\x04\x70\x62\xa7\x8a\x87\xef\x33\x19\x0c\x95\x89\xbf\x3c\x6b\x5b\x42\x87\x0d\x53\xdf\xcc\x6b\x09\x29\x58\xdf\x4c\x68\xa5\x17\x6d\xd1\xb5\x7f\x9b\xbd\x70\x55\x17\x0b\xdf\x84\xd7\x7b\x86\x5b\xc7\xa9\xdb\xc2\x4a\xa2\x43\xdc\x08\xbd\xc3\x71\x30\x71\x30\xb8\xf0\xbf\x8e\xd3\x77\x0c\xec\xda\xec\x2f\x93\x64\x91\xb6\x75\xbc\x75\x30\xdd\x66\xa3\x6f\xc9\x67\x12\x11\x99\xd1\x03\xa7\x17\xb2\x2f\xc4\x29\x4e\x01\x82\x22\xeb\xfa\xd1\x1e\xb2\xb1\xd5\x8d\x63\x63\x10\xa1\xd1\x22\xbb\x40\x46\x93\x8d\xe5\x21\xdc\x09\x4d\x2b\x11\x10\x9e\x5a\xbe\xed\xe3\xe6\xde\xe6\x9b\xfe\xe2\x4b\xd2\x3c\x48\x20\x9e\x9c\xf3\xca\x15\xb1\x0a\xf5\x88\x1c\x9e\xa6\x7f\x09\x6a\xf9\x75\x5f\x07\x3f\xf6\x27\x9b\xd0\x0a\x19\xb1\x9a\x51\xf3\x3a\x91\x47\xd8\x73\xd7\x16\x59\x26\x31\x50\xef\xeb\xb4\xbb\x9e\x06\x48\xfd\x43\x30\xce\x0e\xc2\x1a\xb6\x39\xa0\x78\x97\x15\x95\x18\x69\x2b\x8f\x90\xc5\x45\xa4\xda\xb7\x2c\x05\xfc\xc6\xd9\x8d\x15\x41\xe1\x47\xb0\x19\x7e\xcf\xe1\x92\x43\x8c\x06\x38\x8f\x0c\x09\xac\xa6\x68\x74\x70\x27\x77\x30\x90\x67\x1b\xa9\x07\xf8\xe2\x22\x31\xec\x78\xdf\x7d\xc4\xa2\x7c\x75\xb2\xcf\x8c\x40\x0e\xeb\x8e\xbd\x52\x28\x84\xeb\xab\xf4\x20\xf2\xa0\x93\x41\x7b\xd3\x24\x72\x10\xb6\xf6\xa5\x16\x8b\x4c\x29\x5d\x70\x9d\xc9\xeb\x8e\x20\x59\xd0\xd3\x52\x1a\x17\x49\x60\x37\xfc\xd7\x90\x1e\x29\xcd\x89\xf7\xd8\x7f\xe7\xb0\xb1\x76\x90\xd8\x0c\xbf\x7a\x30\x8f\xf2\xda\x6b\xeb\xfc\x44\xf3\x13\x53\x64\xed\x89\x20\x6d\x43\x03\xf7\x5a\x90\x6b\x73\xbf\x2f\x19\xc7\xd5\xd0\x5d\x08\x36\xde\x7d\x20\x06\xfa\xe4\x37\xa4\x08\xa0\xf1\x1c\x76\xd8\xc4\x74\x0a\x6b\x87\x1d\x5c\xaf\x8e\xe9\x4c\x96\x18\xd3\x3a\xd7\x29\xea\x4e\x25\xa9\x05\x1c\xc8\x03\xca\xb9\x85\xbf\xdd\xa2\xc8\xfb\x98\x85\xd0\x17\x37\x8b\x6a\x9f\xa6\x93\x9c\xeb\x7b\x84\xe2\x6f\xc7\xc6\x3f\xfb\x09\x0f\x21\x07\xdb\x41\xb2\xd7\x26\x2d\xe9\x7d\x76\x1f\xe6\xd6\x03\x98\x6b\x63\x93\x9d\x4b\x4b\x6c\xe5\x17\xb4\x0b\x06\x38\xc8\xe6\x12\xb2\x8b\xac\x53\x4f\x90\xcc\x11\x7b\x03\xfa\x7f\x7c\x72\x0e\xa0\x69\x72\x51\x5d\x67\xce\xb3\x09\xca\x24\xd1\x77\x62\xe3\xc0\x72\xbc\x1d\x71\x1a\xdf\xb8\x10\xba\xe6\xdb\x8e\xa8\x62\xc2\xf2\x90\x42\x3b\xb7\xfb\x5d\xe7\x7f\x74\xb7\xb7\xde\x1d\x90\xc0\x9f\x07\x09\xc8\x94\x0d\x8b\x3f\xcb\x12\xa7\x71\x28\x3a\xcc\x51\x01\x45\x64\xf6\x91\xe5\xc0\xcc\x9a\xb5\x93\x45\x5a\xa9\x02\x88\xf5\x62\xae\xd9\xe6\x0c\x0b\xb6\x21\x0f\x5c\xca\xc5\x8d\xd0\x0b\xe5\x56\x1e\x07\xbc\x38\x46\x8d\xae\x48\x40\x64\x6e\x96\x70\x78\x48\x81\x04\x04\xc4\x78\xbf\xcf\xda\x7e\x6d\xf0\x3b\xfb\x38\x31\x0f\xb1\xc4\x11\xd6\x33\x7a\xd9\xb3\x6e\xe5\xa0\xfa\x69\x34\x6c\x53\xe8\x6f\x72\xb6\x23\x3d\x85\xb5\x72\x92\x5c\x93\xb0\xfb\x32\x18\x17\x22\x29\xd2\x6b\xd2\x41\x9f\x23\x22\xc6\x8e\x79\x54\x6e\xfa\x43\x32\x99\x80\xa8\x19\x7b\x44\xeb\x30\x6a\xb6\x5e\x9b\x5e\x65\x38\x4a\xc4\x83\xcb\x0a\xe4\x81\xda\x4a\x27\x4e\x22\x2b\x5f\x39\x61\x16\x21\x39\xf0\x7e\x31\xdf\xec\x90\xc5\x51\x96\xd3\x7e\x9d\xb1\xb0\x48\xba\xfd\x63\xdf\x19\x37\x96\x28\xb6\xf2\xc7\x51\xe7\x0c\x46\x0f\x96\x1d\x77\xea\x45\xeb\xa1\xe9\xe0\x10\x5b\xfd\xcc\x46\x0b\x69\x38\xd6\x6e\x69\x52\xc1\xb1\xcf\x34\xb6\xad\x70\x61\xcc\x91\xb3\x80\xb4\x4f\x42\x25\x64\xdb\x71\x88\x50\xc1\x5b\xe4\xb3\x78\xae\x4c\x6b\x56\x98\x59\x08\x1e\x8a\xf9\xbc\x29\x98\xba\x71\x60\xf6\x14\x5c\x95\x33\x66\x4e\x39\x93\x94\x95\x9e\xc8\xd8\xc2\xa4\xe7\xe8\x31\x7f\x72\x1d\x7b\xb9\x4c\xc9\x12\x58\x7e\xf2\x1b\xff\x8b\x13\xc6\x34\xf9\xe4\x97\x3b\x37\x75\x70\x2d\x43\xb0\xb7\xcc\x06\x17\x40\x71\xce\xfd\xb2\x04\x64\xd3\x6c\xbf\x6f\xd6\x84\xb9\x61\xdb\x9a\x5c\x4f\xd7\x33\x26\xaa\x32\x99\x48\xb2\xa5\x13\x7b\x18\x98\x34\x8f\x09\x63\x5e\xf1\x86\x3c\x73\xcd\x83\x91\x9b\x47\x5a\xa0\xb3\x58\x71\xce\x4a\xab\xf3\xc9\xab\x79\x96\x95\xea\xab\x93\xff\x1d\xa7\x0b\x4d\x48\x4d\x87\xef\x46\x11\x6a\xb9\x01\x2e\x67\x5f\x02\x0c\xb0\xa1\x6e\x38\x08\x73\x84\x75\x1f\xa4\xee\x21\x3d\xea\x7e\x90\x2e\x43\xa6\xd6\xe3\x5c\xa9\xcf\xbe\x69\x7c\x4f\x02\xfc\x57\x0b\x93\xac\xb5\x39\xcf\x69\x3a\xc7\x96\x80\x1d\x93\x8e\x9d\x23\xf8\x33\x89\x68\x6e\x42\x91\xf3\x6b\x81\xb2\xd6\xd4\xd7\x39\x6a\xe1\x58\xa1\xfe\x80\x85\xa9\xfb\x4d\x3f\xe6\x98\xa8\xef\x9b\xb0\xb0\xcd\xc9\x52\x09\x71\xd5\x9c\x8e\x13\xd8\x2a\x9a\xed\x09\x7e\x1c\x16\x96\x78\x73\x1a\xa1\x4b\x2c\x12\x09\xb5\x13\xab\xf4\x68\x76\x08\x88\x14\xe1\x68\xcd\x81\x44\x3c\xc5\x97\xe6\x3c\x8b\xb0\x90\x45\xe8\x5f\xf7\x90\x60\xf2\xeb\x28\x58\x8e\xdc\x4b\x44\x7d\x30\x8f\xcc\x49\x5d\x44\xce\xef\xf6\x3a\x4b\x2a\xa4\xbe\xfb\xfb\x16\x86\x04\x14\x1b\xca\x6c\x11\xbf\x4f\x04\xae\x23\x77\xf1\xc1\xc4\xb3\xe6\x9b\x60\x0e\xe7\x06\x42\x1d\x26\x68\x4f\xe7\xae\x72\xe6\x84\x65\xfe\x85\x14\x22\xea\x52\x32\xf6\xa1\xed\xc8\x6d\x87\xf1\xee\xfd\x6b\xec\x8f\x5e\x9b\x34\x23\x85\x52\x03\x7e\x84\x5e\xb7\xe0\x59\xa0\x1d\x53\xbd\x31\xe3\x59\x89\xeb\x8c\x36\xa4\x22\xc1\xe6\xda\xdf\x44\x4e\xc4\x7a\xe7\xf1\x07\xc1\x6f\xd1\xa9\x27\x1d\x65\x66\x2c\x8f\x5b\xd8\x99\xf3\x30\xde\x64\x4f\x91\x7e\xce\x42\x01\x67\x1c\xb3\xbc\x57\xb3\x6f\x98\x34\x69\x26\x5a\x4c\x1a\xa2\x1f\xca\x9e\x9c\xeb\xb0\x09\xfa\x30\x79\x0c\xf6\xfb\xc9\x74\x86\xca\xb2\x08\x0c\x22\x58\x75\x4c\x7e\x54\xc3\xb1\x92\x86\x30\x2f\xc9\x14\x78\x83\x24\x68\x68\x5e\x90\xe3\x8a\x63\xf3\x00\xed\xaf\xc9\x65\x95\xb6\x15\xfb\x16\xb4\x37\x4a\x74\xb2\xdc\x6e\xde\xdc\x66\xd1\xde\x07\x71\x17\xf1\x59\x63\xd9\xbd\xe7\x67\x3c\x17\x7a\x86\x4b\x6b\x55\x10\xc4\xa9\x27\x49\x5a\x88\x4c\x28\x97\xbc\xe1\x2b\x38\xe1\x05\x2a\x30\x16\xcb\x7a\xe1\x34\x91\xb5\xf4\x7e\xca\xa7\xad\xc4\x94\xfc\x6a\xa2\x20\x62\x01\x32\xf5\x0d\x9d\xc8\x8d\x97\x8c\x30\x1e\xad\xa3\x04\xc8\x85\x35\xdb\x83\xcf\x9b\x25\x58\xc8\x98\x4c\x63\xce\x8f\xf4\x4d\xbe\x57\xe4\x8c\x79\xce\xd5\x75\x89\x14\xbf\x96\x76\x6e\x33\xb3\xdf\x0c\x56\x6d\x47\xd3\x24\xb9\x83\x78\x8e\x56\x85\x06\xc9\x49\x4c\xa7\xd7\xc3\xc2\x39\xdb\x31\x34\xbd\xbd\x70\x93\xfa\xa9\xc0\x74\xb3\xb9\x59\xab\x6d\xbe\x19\x91\xfa\xf8\x71\xb4\x0d\x73\xd2\x23\xc9\x4a\xad\x15\xdf\xee\x5f\x6a\xbd\xb6\x5e\xdc\xb4\x24\x69\xba\xa4\xe3\x24\x00\x38\x19\x22\x75\xc9\x62\x98\x98\x91\xe0\xba\xb2\x0f\x23\x0c\x2b\x57\x32\x66\x48\x46\x21\x54\x25\x8c\x8a\x08\xb5\x6c\x87\x66\xfd\x9e\xbc\xb0\xc0\xc9\xb5\x4c\xf6\xa3\xa3\x3f\x1b\xf7\x1b\x1c\x7c\x3e\xa0\x90\x1e\x29\x9f\x5c\x73\x29\xbc\xb0\x6f\xe8\xea\xc3\x78\x39\xfb\xc1\x4b\x5e\xbf\x01\xeb\x40\x17\xfd\xba\x61\xb1\x04\x1e\x64\xae\x35\x99\x84\xb0\x33\xf1\xd7\x38\xf0\x03\xef\x96\xfa\x63\x5a\xc9\xb0\x9d\x10\xce\xa9\xf4\x80\xb6\xe7\x3a\xa8\x0c\xd6\x9a\x07\x16\x19\x5f\x67\x37\xbb\x08\x24\x1d\xe7\xbe\x42\x96\xbc\xa7\x1d\x17\x44\xd4\xd7\xc5\xf7\xf2\x90\x4e\x04\x9c\x74\x9a\x9f\x41\xa9\x46\x22\xc0\x5c\x46\xbf\x89\x66\xe2\x3a\x39\x35\xc3\xbc\x6e\xfd\x64\xe6\x89\xb0\xb3\xa6\x81\x24\x01\xfa\xae\x87\xc5\x70\x98\x39\xc2\x7d\x57\x80\xc7\xfa\x2d\x72\x6b\x45\x10\x90\x85\xda\x8e\x84\x89\xea\x9c\x41\x60\xe8\xce\x83\x22\x2a\x9d\x22\x95\xe5\x6a\x9e\x9d\xe0\x5f\x9d\xca\xda\x0b\x62\xd5\xe9\xd1\xaa\xbe\x5e\xab\xe5\x68\xc2\x30\xcd\xf2\x93\xff\x68\x11\x18\x99\x96\x4f\x27\x03\xf4\x3a\xa5\x1e\xe1\x89\xb5\x48\x84\x80\xb7\x32\x77\x93\x8f\x6c\x2c\xb8\x9f\x4d\x46\x8a\xfd\x09\x27\x47\x69\xc4\x5b\x6f\xc8\x87\x04\xd5\xf6\xf4\x43\x34\x0e\x1d\x02\xc7\xcf\xd1\xd4\xb0\xaf\x85\x53\x88\x1b\x0f\x0f\xdc\x8c\xd7\x41\x49\xf3\xe6\x6b\x7e\x41\x7c\x69\x1e\x24\x0f\x45\x08\x69\x93\x43\xc0\x61\x64\x8b\xec\x51\x3c\x42\xf2\x31\x39\x9e\x83\x8c\x25\x44\x83\xc7\x62\x69\x0a\xa2\x66\x10\x59\x27\x59\x2b\x6a\xc1\x00\xb2\xb0\xc6\x1e\x38\x4d\x7c\x16\x28\x41\xd4\x27\xd5\xa5\xc2\xe4\x37\xf4\x89\xfa\x41\x90\xb5\x23\x61\x07\x0a\x61\xd1\x7e\x4d\xf0\x24\xbc\xf0\x21\xf1\x9a\xa9\xbc\xb5\x1c\x78\xb0\x2c\x02\xba\x58\xb4\x3f\x89\x5d\xbf\x49\x2a\x6e\xc3\xcf\xc6\x0f\x0d\xa2\xdd\x24\xf1\xa3\x17\x9a\x5e\x6a\xa2\x2c\x83\x4c\x90\x11\xa8\x09\x51\xb2\xe5\x72\x92\x2b\x92\xbf\x6b\xee\x27\xaa\x84\x54\x24\xb8\x84\xbb\x48\x1f\xa6\x61\xd8\xbf\x0f\x5c\xf8\xce\x85\x8c\x80\x5c\x1b\x5a\x9e\x96\xbd\x26\x43\xbe\x82\x21\x1c\x3e\x7e\x92\x32\x39\x8f\xcc\x22\x4b\xf5\x41\x7c\x91\xbc\x09\xfa\x49\x2d\x02\x7a\xb4\x94\xc4\x71\xfc\xe6\x26\x3d\xcf\x22\x99\xb8\xac\x01\x2d\x06\xc1\xd8\xd4\x23\x11\xd4\x87\xbd\xfa\x89\x93\xd8\xa9\x9e\xeb\x6b\x11\x72\x2c\x9b\x84\xf4\xed\x3c\x34\x24\x8b\xf7\xb5\x59\xe1\x80\x37\x82\x36\x45\x2e\xd4\x64\x9d\x5b\x4e\x86\xb2\x7e\xf2\x48\x59\x87\x49\xe2\xa0\x44\x6b\xfa\x1d\x81\xf8\xe4\x4f\xf2\x29\xe1\x1b\xb5\xce\xfd\x79\x1b\x93\x0b\x44\x95\xd8\x8d\xa8\x73\xb4\x62\x87\xb3\xfb\x4c\xa1\x2e\x1d\xb2\x72\x31\xba\x72\x93\xeb\xb3\xd7\x26\xa9\x1d\x7a\xad\xf5\x48\xcd\x40\x04\x79\x23\x2c\xfb\x6a\x94\xf1\xe2\xd5\x3a\xea\x50\x87\xbc\xf4\x2c\xe1\xb9\x58\x35\x4e\x30\x3c\x16\x5a\x3a\x99\xa9\x04\xc0\x23\x07\xc1\xf9\xf0\x20\xfb\x7b\xe0\xf1\xca\x89\x7b\x91\x2b\x42\x63\x36\x29\x76\xed\xf4\x8a\x22\x91\x45\x21\xe2\x3a\xfd\x5f\x12\xb2\x9e\xb0\x9e\x34\x7e\x72\x7a\x66\x17\xfc\x12\x5c\xb4\x9f\x4f\xdd\xf0\x9a\xad\xf9\x7b\xa0\xb1\xc9\x57\x4c\x00\x54\x42\x82\x64\xdd\x9f\x4c\x7d\x4e\xab\x90\x50\x5d\x61\x5a\xfd\x92\x8e\xe5\xdd\xfe\xd6\x20\x10\x72\x97\xcd\x4d\x3e\xd0\xdc\x64\xa3\x79\xcc\x3b\xed\x8c\xce\x45\x86\x2a\xf2\xbe\xd6\x02\x76\xc0\xd9\x7e\x5f\x57\x32\x5c\x5f\xf1\x12\xb4\xee\xf7\x26\x1e\xdb\x3c\x16\xde\xf4\x26\xff\xd9\x2e\xc7\x7a\x68\x61\x0b\xcc\xea\x70\x7c\x79\x1e\xb2\x94\x99\xee\x99\x8b\xe8\xc2\xe9\x3e\x4f\xdd\x9f\x9f\xbd\xdc\x6d\x2f\xe2\xad\x45\x46\xe9\x1d\xcf\x7e\x0c\xd3\xc8\x36\xa8\x7e\x86\x50\xae\xdf\x33\x96\xe5\x7e\x64\xf4\x68\xdc\x58\x32\x16\x3e\xce\x32\x9f\x71\x9d\xbf\x70\xb4\xbd\x64\xc8\x31\xc9\x85\xa3\x74\x1b\x9d\x74\x26\x31\x19\x79\x7d\xe4\x58\x2f\x12\xf8\x1a\x1f\x87\xa2\x1d\x0e\x62\x39\x21\x72\x40\x84\x0d\x22\x4a\x92\xd2\x81\x6a\x36\x6c\xf8\x53\x8b\xda\x38\xd0\xb4\x11\x6e\xdc\x85\xbb\x69\x59\x43\xd9\x9b\x33\x71\x1b\x45\x80\x25\x03\x9f\xa4\x60\x64\x92\xd3\x58\xff\x99\x86\xc8\x56\xe1\x68\x81\xb8\xeb\x72\xfa\x76\x38\x21\x55\x11\x9e\xe3\x1e\xbf\xcc\xdc\x10\xc8\xb0\xa0\x88\x2c\xd7\x01\xab\x04\xc0\xe6\xfd\x3c\xb9\xf8\xe6\x03\x00\x6b\x3b\xec\xa2\x30\x53\x9e\x53\x87\x43\x45\xf7\x0f\x1a\x23\x32\xb3\xf3\xc7\x64\x19\xbb\xac\x4d\x88\x23\x8a\xef\xe7\xb0\xce\x28\xe7\x6b\xf1\xda\x8f\xdf\x29\x1d\x11\x31\x0b\xa3\x73\xb0\xec\xaa\x1d\x26\xbe\x93\x15\xd0\x1a\xaa\xf6\xff\xce\xb1\xd8\x94\x1f\x35\x2e\x9d\x70\xae\x63\x92\xcb\x79\x2a\xcf\x67\x47\xdc\xfb\x19\x32\x77\x69\xfb\xa9\x7d\x8b\x3d\xf5\xb9\x91\xfb\x33\x9d\xeb\xd0\x8e\xda\xad\x3d\x9a\x09\x87\xd8\x23\xea\x83\xdc\x88\xf7\x99\xde\xab\x68\x9b\x56\x26\x78\xb2\x75\x69\x39\x62\x2f\x5a\xce\xca\xb7\xb7\x4f\x94\xda\x0c\x36\xfb\xf3\x9a\x7b\x5a\x67\xf8\x62\x72\x41\xee\xf2\x3e\xf6\x1f\xda\xcb\x49\x7c\xaa\x64\x0f\x9f\x0a\x09\x05\xbc\x79\xe4\xf2\x1e\xae\x21\x3c\x18\x38\x3f\x22\xb9\xc5\xc5\xed\x41\x3f\x04\x22\xb0\x88\xe7\xe3\xfd\xe9\xb0\xc7\x2d\x57\xbc\x6e\x7d\x66\x5f\xc5\x67\xe6\x5b\xcf\x7b\x7c\x15\xce\xfc\xf8\xf4\x05\x3f\x99\x47\xb1\x79\x40\x9b\x07\xb4\xf9\x75\xfb\xd0\x5e\xfd\xfe\x51\x73\xf4\x34\x79\xa4\x5b\x67\x12\xe6\x8c\xe4\xf3\x6a\x35\xc1\x73\xf0\x33\x19\xde\x93\x0e\xa6\x47\xf1\x3a\xdf\xfe\x3c\x21\x73\xb0\xca\xd3\x00\x21\x7e\x9f\x4c\x87\xef\x64\xa9\x49\xfd\x97\xe3\xf4\x01\xff\xcd\xf8\x90\x84\xfd\xe1\x7d\x0a\xc1\x94\x8b\x72\xe3\xe8\x66\xdb\x3d\xa0\xf2\x73\xb8\xe1\xe5\x07\xf2\xfc\x66\x37\x2d\x6f\xef\xb9\x1f\xf8\x2d\xb3\x1d\x6c\x07\xbd\xe6\xb9\xc5\xb0\xfa\xe0\x96\x39\xe7\x43\xde\x11\x75\x2f\xde\xe7\xf6\xf6\xfb\xdc\xbb\x46\xcd\x51\xb3\x74\x54\x7d\xee\xb9\xec\xe3\x82\xc1\x73\x0d\x9e\x6b\xf0\x5c\x83\xe7\x1a\x74\xd3\xa3\xa3\xf5\xc4\x4e\xe9\x2b\xf3\x3e\x14\x4c\xa1\x60\xc9\xb5\xd7\xcb\x79\x5a\x63\x38\x48\xf7\xd1\xba\x4c\xb3\x35\x9f\x77\x5e\xa8\xa9\xcf\xbd\x9d\x1f\xa4\x28\xb7\x5f\x7e\x88\x38\xbf\xfd\xe2\x83\x22\x17\x9e\xfb\xf6\x7b\x9f\x3b\x6b\xab\xd1\x59\x6a\xeb\x52\x8f\x9f\xdb\x3c\x3a\xed\xfd\xde\xa0\xbb\x72\xf1\x5c\x1f\xdd\x65\xd8\xf6\x9e\xe6\x53\xbe\xb4\xe3\x83\xe7\x19\x51\xd5\x10\xec\x34\xbd\x79\x5c\xdb\x61\xc1\xe4\x13\x26\x62\x2d\x03\x23\x3d\x88\x62\x27\x26\x20\x1d\xa9\xe3\x04\xc1\xdb\xe1\xd3\x4e\x5c\xf9\xdf\xc6\x28\xa3\x3a\xfc\x89\x54\x4e\x5a\xa7\x81\xda\xcc\x8a\x3f\x89\xce\x9e\x7e\x20\xf9\xcd\x09\xcc\x7c\xb3\x4a\x8d\xfa\xda\x1a\x35\x47\xcd\xfd\xbc\xd9\xda\xb7\xf5\xe9\xd6\x71\x5b\xdf\xd8\xfa\xee\xe6\x2c\xef\x43\x56\xfe\xd7\x51\x1f\x64\xe3\x4f\x48\xe7\x69\x45\x80\x9d\xc2\xa6\x7c\x42\x4e\x6f\x62\x7f\x58\x8a\x5f\xdd\xfb\x79\x9a\xc6\xd0\x5e\xc1\xa9\xbc\xbe\x3a\x8b\x3e\xed\x9b\x9f\xd7\xad\xff\x8e\x3e\x55\x6f\xd7\x8c\x4d\x3a\xd8\x37\xef\x7d\x9e\xa6\x68\x52\x56\x90\x10\xf4\xf5\xe5\x2c\x87\x77\xe4\x91\xe4\x6d\xcf\x87\x8f\x7e\xe8\xde\xe8\x49\x30\x68\x93\xb6\x68\xd5\x0f\x4a\x5d\xa0\xd8\x1a\x35\xea\x25\xa5\x1e\x51\xef\x43\x02\x96\xdb\x7a\x83\xba\xb5\x4b\xc0\x68\xa4\x47\x76\x30\x53\x84\xf7\x30\x2b\x69\x25\x09\x62\x18\x83\x59\x3b\x60\x28\x23\xf5\x62\x36\xec\xd9\x26\x1a\x6d\x27\x83\x30\x99\x53\x92\x39\x25\xb7\x3b\x8c\xa7\x68\x7f\xea\xf1\xc4\xef\x60\x10\x26\x83\x30\x19\x37\xc9\xb8\x49\xc6\x4d\xd2\x2d\xd3\xe3\x26\xf8\x2e\x5d\x34\xe9\x6e\xe9\xd1\xe9\x85\x20\xf9\x6e\xf2\xdd\xe4\xbb\xc9\x77\x93\xef\x26\xdf\x4d\xbe\x5b\xee\xf5\xec\x2f\x4f\x1e\xde\xcf\x39\x9b\x73\x36\xe7\x6c\xce\xd9\x9c\xb3\x39\x67\xf3\xdd\xe6\xbb\x74\xfc\x6c\xbe\xdb\x7c\x77\xf8\xee\xf0\xdd\xe1\xbb\xc3\x77\x87\xef\x0e\xdf\x1d\xbe\x3b\x7c\x77\xf8\xee\xf0\x5d\xcd\x77\xea\x91\xea\x9a\xea\xa3\xea\x7a\xfb\x7c\x64\x9f\xbe\xfd\x3e\x4f\x7d\x4f\x1d\x2e\xe2\xf3\x22\x3f\xb2\x8d\x5e\xf4\xe7\xc5\x7c\x04\x0e\x5e\xdc\x8f\x86\xc3\xcb\xfd\x79\xea\xc0\x9a\x3a\x35\xa5\x66\x7f\x04\x6d\x04\x61\x5f\xf5\x47\x76\xd4\x2b\x6d\xd3\x65\x3f\x0c\x1e\xcd\xc4\xf4\x4f\x75\x54\xf5\x58\xf5\x41\xba\xaa\xba\xe1\xe7\xb5\x3a\xab\x06\x80\xc6\x89\x46\x8d\x7a\xbf\xc6\x91\x86\x96\x46\x16\xfd\xf8\xb3\xa3\xa9\xd3\x43\x6e\x9f\x50\xdf\xda\x14\x5b\x52\x9b\xb4\x45\xdb\xb4\x43\x7b\x68\x2f\x2d\xdf\x65\x8e\x27\xff\x91\x03\x2a\x02\xdf\x5f\x90\xcb\xc9\x42\x0a\xc7\x7a\x50\x51\x44\x2d\xdf\xf5\xd5\x0f\xdf\x3d\x7c\xf7\xf0\xdd\xc3\x77\x29\x31\x44\x8a\x5a\x27\x2b\x20\xcb\xa0\x5a\xbe\x7b\xf8\x2e\x6b\x33\x34\x43\xe0\x73\x24\x07\xe1\x46\x26\xb9\xe1\x44\x05\xfa\xce\xd6\x32\x53\x9f\xb3\xf7\xe7\xe8\x2d\x69\x65\x7c\x9a\xcc\x9e\x0c\x97\x17\xbc\x29\x5e\x95\xdf\x95\x5e\x16\x6f\x8b\xd7\xc5\xfb\xe2\x85\xf1\xc6\x78\x65\x7a\x67\x02\x2a\x4f\x80\x06\x53\xf8\x85\xde\x5d\xe8\xe5\x85\xde\x5e\xe8\xf5\xc9\x94\x78\x91\xfa\x46\xea\x1b\xa5\x6f\x94\xbe\x51\xfa\x46\xd1\x23\xf4\x0d\xbd\xe3\xd0\x4b\xd6\x22\xf6\x42\x43\x5d\xfd\xef\xbf\x7f\xfd\x9c\xff\xb6\x9c\x8e\x7d\x6b\xdf\xd4\x40\x74\x9f\x87\x27\xc7\xf9\x9f\x91\x86\xc6\xd2\xda\xad\xf6\x92\x94\xa3\x64\x14\x3f\xaf\x05\xac\x0e\x85\x34\x49\x56\xef\xb2\x34\x16\x43\x67\x13\x0f\xbf\x11\xa9\xfe\x4c\x4e\x42\xcb\xbb\x64\x92\x52\x86\x45\xad\xaf\x38\xb4\x4e\x83\xed\x5c\xe3\xf8\xf5\xc7\x77\x82\xc1\xae\xef\xae\x35\xe4\x79\x1f\xee\x47\x76\x22\xdc\x6a\x2c\x20\xfb\x7a\xd4\x27\xa1\x00\x0f\xb5\x10\x74\x2d\xd2\x55\x41\x6e\x25\x65\xc9\xc8\xc7\x80\xe2\x31\x02\xef\x57\xdc\xe7\xac\x08\x14\xe6\x21\x9c\x30\xa9\xec\xd6\x04\x79\x40\xf6\x26\xe9\xe0\x65\xf8\xa9\x1d\x61\x13\xf8\xce\xe2\xde\xc8\x02\x13\x08\xfc\x83\x9c\x2d\x51\xdc\x21\xd2\x81\x28\x4d\xb4\xf1\x65\xca\xec\x1b\x20\x1a\xf0\xbd\xeb\x16\x26\x93\x84\x1e\x0b\x07\x08\xf4\xe4\x5a\xac\xbf\x84\xfc\xa7\xb3\x89\x6c\xd2\x7d\x50\xfb\x85\xe4\x51\x6a\xbd\x87\x7c\x25\xac\xd1\xdb\xef\x6b\xbc\xcd\x91\xc3\xa7\x50\xd6\xfb\x98\xb8\xe0\xd3\xe3\x23\x8b\xa7\xc7\x9a\x2e\x0b\x65\xdd\xe4\x79\x92\x70\x88\x7c\x3f\x8b\x60\x97\x75\x2f\xa4\xf7\xf5\xfb\x75\x45\x1a\x3d\x5b\x98\xfc\x28\xb7\x14\xa4\xf1\x6b\x3f\xae\x91\xd4\xd4\x48\x62\x7b\xbf\xef\xca\x14\xd4\x13\x8b\x9d\xd4\x2b\x29\x97\xa8\x69\x6f\xfb\x15\x21\x97\x08\xbf\xa2\x43\x3b\xb4\xbc\x28\xc2\x3f\x31\xb6\x92\x64\x2b\x29\xd0\xa0\xd7\x62\x6e\x86\x07\x4f\x3e\x7f\xae\x58\x74\xba\xca\x72\x6e\x7f\x92\x9b\x41\xfc\x6f\xdd\x43\xf3\x90\x9a\x87\xd4\x30\xfa\x0d\xa8\x99\x25\x93\x71\x56\x10\x84\x89\x58\x79\x51\x0c\x0f\x87\x0c\xfe\xbf\x98\xa2\x6c\x5e\xa9\xab\x3a\x4d\x00\xa1\xfd\x41\x96\x9c\x38\x48\xcf\xd1\x26\xc6\xe1\xde\x0e\x9c\xdb\x3d\xc7\xb5\x0b\x49\xa5\x44\x54\x21\x4f\xef\x45\x43\xba\x63\x68\x52\x03\x8d\x78\xb7\xf8\x26\xbc\x76\xf9\x45\xe8\x4a\xa2\x6a\xd4\x32\x8c\x18\x70\x76\x52\xe0\xe2\x58\xcb\x7a\x63\x5e\xdd\x76\xd1\xa0\x4b\x37\xb9\xbc\x76\x3a\xda\xe6\x35\x22\x20\x71\xb0\xcf\xda\x4e\x7a\xe3\xdc\xf4\xa4\xb3\x61\x88\x10\x9a\x15\xa4\x70\x0f\x92\xb7\xc7\x7a\x4c\x03\xe4\xd5\x58\x8f\x94\x38\x64\xd7\xd8\x8b\xf8\xab\xdd\x6e\x51\x55\x92\x1f\x08\x1a\x63\xc7\x61\x0f\x25\x8e\x36\xf2\xb9\x84\x20\x13\xe6\x50\x7f\xa0\x9f\xa8\xa3\x6d\xb4\x78\x3b\x4d\x72\x00\x33\x09\xd7\xda\x2e\xe7\x01\x0b\x4a\x85\xc4\x20\xb0\x5b\xad\xf7\xa8\xff\x50\x63\x65\x23\xbd\xdf\x65\x27\x33\x6e\xaa\x72\x32\x4d\x78\x0e\xde\xd4\x2e\xe7\xb1\xbb\xec\x3f\x9c\xff\x72\x2d\xa2\x86\x48\x85\x13\xe1\x8a\x5d\x8b\xbe\x07\x57\x7e\x1d\xea\x83\xa8\x9d\xf4\xc9\x04\x30\x07\x1a\x1b\xf5\xc3\x60\x32\x60\x1a\x48\x4f\x0f\x97\xc9\x60\x68\x0f\x53\xc2\xa3\x7f\x32\x25\x04\x53\x42\x91\x6e\xdd\x09\x4f\x9c\x21\x5c\xc3\xab\x19\xa0\x8d\x42\xd4\x19\xb9\xdb\x49\x36\xf0\xaf\x11\x8a\x15\x43\x35\x8f\x71\x7e\x4f\x68\xb3\x41\x9a\x32\x0e\xc5\xe0\x59\x39\xbb\xce\x61\xd2\x3a\x33\xae\x61\x41\xcb\x31\x14\x79\x22\xb8\x49\xfd\x0d\xc7\x06\xc1\x08\x6d\xfe\x06\x57\x34\x91\xd2\x4c\xd2\x81\x10\x31\xdc\xeb\xe8\x93\xf9\x1b\xbc\x0c\x42\xfb\x45\x00\xdf\x5a\x49\x1c\xc1\x26\x2e\x80\x48\x01\xd2\x08\xe6\x7b\x9f\x5c\x65\x7d\xd9\xd5\x7e\x92\x06\xac\xb3\x50\xe1\x23\x64\xd8\x04\xec\xa3\x28\xe4\xdd\xab\x7f\xbb\x97\x23\x13\xa4\x4e\xdb\x72\x31\x0a\x4f\x65\x41\x6f\x26\xa9\xd2\x76\xce\x28\xcc\x13\xad\xf6\xb1\xc2\xdb\x24\x6f\xe2\x5d\x92\xed\x4e\xdb\x64\x92\x62\x41\x81\xf1\x21\x47\x45\x2c\x0a\x2a\x38\x44\x70\x09\x43\x04\xfa\x2d\x6d\x73\x4c\xb8\xf5\x19\x3c\x36\xbc\xf4\xb0\x08\x52\x59\xe4\x72\x3c\xd9\xdb\x17\x4e\x0f\x2a\x07\xc4\x42\x30\xb1\x1d\x12\x8d\xe2\x64\x2f\x14\xd6\x6b\x41\x01\x6d\xd7\x96\x63\xf1\x6a\x17\xf5\x62\xb4\xd0\xa7\xd3\xd5\xe6\x06\x57\x2d\xcb\x28\x29\x89\x36\xf9\x3f\x36\x55\x49\x76\x87\x7b\x3f\x4e\x2c\xae\x42\x64\xdd\x26\x37\xfa\xa6\x57\xed\xe6\x1e\xa0\xc2\x76\x6f\x3e\xe5\x1e\x5a\xe3\x30\x78\x1a\x78\x8c\xd4\xc2\x78\xb3\x38\x32\x77\x07\x29\x7e\xe0\x1a\xd4\xa2\x0a\xd7\x3d\x04\xcb\x7a\xf0\x1c\xc2\x31\x29\x2c\x1f\xe1\xfc\xf5\xf4\x9e\xb0\x23\x9c\x34\x85\x41\x4a\xa4\xc0\xbd\x88\x8e\x31\xa8\x23\xa5\x51\xe4\x16\x47\x27\x49\x83\x4a\xef\x34\xa9\x32\x92\x88\xc6\x92\x28\x31\x6a\x64\x45\x0e\x51\x98\x2b\xad\x6b\x25\xf7\xd1\xf5\xbc\xcf\x5c\x9f\xa4\x24\x2d\x0a\x63\xa4\x5b\xa8\x54\x2a\x4e\xa2\x86\x85\x94\x08\x08\xa9\x68\x56\x8b\x66\x64\x36\xc6\x6f\x3b\xd9\xf7\x22\xa3\x3d\xe2\x54\xc7\xd7\x0d\xc2\x95\x49\x52\xcd\xc8\x0a\x89\xf9\x11\xac\x3c\x5a\x8f\x40\xef\xd9\xac\x0d\xcd\x38\x24\x4f\x3d\xc1\x57\x73\x88\xb0\xb7\xa7\x4b\xf7\x89\xf4\x51\x7b\x18\x8d\x64\x49\x3e\x81\xdc\x29\xbd\xc7\xc7\x3c\xf6\xb3\x1d\xce\x04\x5f\xac\x13\xac\x25\x84\xbc\x24\x23\x48\xb3\x61\x6e\x52\x43\x53\x3a\x2c\xc1\xe9\x19\x24\x4f\x0f\xf2\x9c\x05\x91\xe3\x84\xc5\x66\x1c\x98\xd8\x43\x78\x08\x31\xaa\x08\x05\x93\x77\xa4\xf6\xd0\x5e\x82\x2c\x08\xb8\x68\xb6\xa9\x23\x18\x07\xea\x95\xa2\x49\x04\xf7\x27\x3c\x7a\xe2\xb6\x4c\xe2\x4e\xb3\xe0\xe6\x0b\xa9\x98\xd3\x20\xdf\xe7\x04\xc3\x8d\x10\xee\x7d\xf2\xf2\x7e\x89\x45\x0a\xc2\xed\x83\xec\x06\x6a\x19\xbf\xac\x4f\xa8\xba\x49\xd3\x18\x8b\xea\x02\x0b\x80\xe7\x5a\xbb\xf6\x71\x2e\xb2\xa1\x2e\x30\xc7\x72\x16\x1b\xd7\x23\x65\x1c\xad\x78\x3e\x27\x67\x60\x45\x44\x65\x40\xba\x98\x58\xce\xe2\x42\x6f\x5f\xac\x55\xd4\x5a\xd3\x36\x31\xc7\xdb\xc7\x38\x03\x9d\xaf\xce\xba\xb8\x49\xe7\xc6\xbd\x51\x83\x6d\xdd\xb6\x4e\xdf\x25\x66\x18\xe9\xe1\x96\x7c\x6b\xdf\x5a\x89\xac\x97\xae\x91\x3a\xae\x28\x49\x1e\xb6\xf1\x1e\xd6\x4b\x6b\xab\xc7\x2d\x23\x9a\xef\x36\x80\x96\xfe\xbc\xf1\xf0\xed\x76\x71\x3f\xd6\xb6\x06\x87\x31\x46\x76\x1f\x8b\x3b\xec\xd8\xe6\x48\x30\x19\x35\x60\x08\xf6\xd1\x1e\xe6\x01\xcf\x2d\x5c\xab\x99\x6d\x5c\x90\xad\x11\x7d\x74\x5b\xbb\xc2\x19\xc6\xd7\x65\x4f\xfb\x7e\x38\xc6\x55\x7e\xad\x9c\x41\xc5\xc2\x3c\x16\x32\x86\xb4\x8d\x57\xb2\x1c\x4d\xc2\xac\x92\x6c\xe3\x16\x66\xe5\x23\xec\x37\xc8\xf7\xaf\x6d\x66\x1b\x7f\x8b\x3c\xd6\xc8\xd8\x02\x38\x1a\xcf\x75\x4b\x58\x8f\x9f\xe5\x31\xe5\xd6\x41\xd2\x6e\x99\x5b\xbe\x7a\xe0\xcb\x1e\xbe\x15\x3e\xd2\x38\xd2\xed\xa5\x05\xfc\x23\x24\x40\xc8\x99\x20\x8f\x2c\xe2\x31\x11\x8a\x24\x29\xa6\x73\xb6\x57\x7a\x42\xd3\x36\x73\x91\x3f\x7d\x30\xf0\xc4\xfb\x12\x66\xe5\x6c\x5d\xb5\x0e\x55\x6a\x17\x6b\xbf\x56\xb1\xa2\xee\x6d\xd1\x9f\xc9\x83\x16\x5f\x2f\x16\xb3\x07\xc1\x41\x51\x5c\xb7\xca\x98\x55\xf7\x43\xcd\x42\x6d\x37\xdb\xb4\xc3\xa7\xed\xed\xcb\xb6\x67\x39\xd0\xed\xc2\x6d\xa4\x73\x92\x7d\x3b\xda\xa2\x17\x92\x2d\x36\x75\xb0\x9a\xb5\x8c\x32\x61\xda\x66\x0f\x45\x10\x59\x01\x71\xbc\xa8\xc5\x15\xe5\xf9\x93\x6a\x22\xac\x14\x54\x15\x0b\xc4\xef\x6a\xb9\x56\x72\xa4\x9e\x70\x33\xab\x37\x73\x7e\xb3\xf6\x8d\xf3\x7b\x81\x68\x87\x52\x79\x43\xe5\x83\x21\xc6\x7e\x64\x12\xaa\x65\x16\x1d\x66\x51\xe6\x58\xe7\x60\xfd\x06\x0b\x52\xa1\x84\x8a\x49\x83\xcd\x30\x54\x4e\x25\xa9\xb0\x50\x0e\x33\xa4\x6b\x74\xd9\xe5\xe8\x4a\x5d\x38\x7a\x98\x2d\xcf\xa1\x46\xc8\x37\xf2\x74\x31\xbb\x36\xfb\x3d\x27\x33\x4b\x9f\x61\xfb\x32\x03\x53\x95\x04\x35\xdb\xc1\x13\x4f\x34\x82\x5a\xae\x35\x7c\x8a\x17\xf8\x18\x57\x5d\x9f\x81\x72\x02\x97\x63\x48\x8f\xe8\x4c\x17\xf8\xe5\xee\x4f\xe9\x2b\xe6\x70\xc2\xcd\xb8\xee\x63\xa6\x7a\xac\xfb\x8f\xf9\xea\xa5\x5b\x7d\xeb\x51\x89\xdc\x19\xc1\x1e\x39\x40\x48\xd2\x93\x64\x5a\x4d\x32\x22\x08\x59\x11\x40\xf9\x88\x5d\xc4\x59\xbb\x51\xb5\x6e\x22\x09\x09\xab\xdf\xcf\x35\x1e\x28\xb5\xf0\xa8\x08\xeb\xe2\x0a\x24\x63\x88\x47\x26\xa3\x17\x49\x4b\xa0\xdf\x37\x8c\x8e\x90\xba\xa0\x0e\x81\xd6\x88\x2c\xd2\xb2\x10\x43\xda\x81\xe7\x37\xc9\x9d\xfe\x4d\x91\x4e\xfe\x77\xce\xd9\x44\x3e\x0d\x11\x4b\x94\x19\x4f\xaa\x0e\xe6\x90\x7f\x1a\xbd\x7f\xce\xb1\x22\x81\x50\x58\xd2\x1d\x92\xb9\x4d\x2d\x05\xa2\x34\xab\x97\x05\x00\xe8\x9c\xcf\x0a\x27\xfd\x2e\xda\xc5\x9e\xf3\x49\x22\x9a\xf3\x24\xd1\x63\x49\x76\x16\x04\xe4\x17\xcc\x79\x49\xd5\x7d\xa9\x8f\x7b\xf1\x97\x22\x0e\x17\x9e\x64\xdb\xb6\x10\x58\x6e\x87\xb1\xa5\xcd\x6a\x4c\x6f\x10\x1d\xb8\x82\x30\xa7\x58\x4e\x26\x8a\x39\xbf\x18\xbf\x0b\x59\xfc\x82\x3a\x40\x63\xa1\xfd\xac\x1d\xed\x23\x59\x35\xca\xdf\xe5\x6c\x10\x17\xa0\x94\x95\x58\x56\xcc\x81\x0b\x17\xf0\x72\xd0\x75\xda\x00\x67\x55\xba\xac\x29\x17\x14\x7a\x39\xcf\x6d\x67\x6a\x63\x25\x6a\x2c\xb1\xb0\x55\xc6\x8a\x83\x0d\xb6\x8a\x75\x87\x59\x1a\xfc\xbc\xb1\x4f\x36\x96\x89\x4b\x5f\xec\xc5\x3c\x0f\x82\xda\xa0\x20\xa2\x04\xd4\x62\xa1\xb9\xde\xa1\x39\xe6\x36\x16\xc5\x86\x67\x15\xe0\x3e\x37\xe3\x74\x33\x72\xc9\x3e\x1f\x7b\x58\xfb\x06\xfc\x39\x58\x80\x83\x8e\x64\x5c\x72\x96\x33\x4f\x50\x72\x36\xbc\xc7\x5a\x40\x47\x72\x5f\xf6\xd3\x72\xff\xcc\xba\x9b\x5a\xc8\x1b\x6d\xdc\x1e\x56\xa5\xc1\xe6\x84\x96\xd9\xe4\x36\xd8\x08\x06\xf6\xb0\x52\x04\x0a\x98\x5a\x4e\x03\x6a\x65\xcc\xa5\x05\xc7\x0e\xab\x0f\x9a\xc5\x3c\xac\x38\xa4\xea\x65\x4d\x8f\x4b\x66\x19\x9e\x70\xf0\x6c\x09\x86\x8d\x40\xeb\x1b\x8f\x6f\x59\xf2\xcc\xa8\xa4\x28\xb5\xd6\x23\x3e\x25\xf9\x08\x54\x49\x3c\x27\x65\x22\x64\xf5\x5d\xd6\xa6\xe7\xcc\x08\x7c\x8b\x04\x25\xe4\x7f\x8c\x47\x54\x8a\xa3\x0d\xb8\xdb\xe4\x7e\x32\x09\x83\x76\x2e\x12\x58\x92\x64\xb6\x4c\x02\x72\x93\x39\x33\x99\x0f\xd1\x5f\x45\xf2\x9c\x93\x27\x9f\x3c\xb1\x04\x67\x26\xf6\x5e\x92\xdb\x29\x5d\x54\xec\xa0\x7a\xa2\x42\x55\x92\x93\xb1\xc0\xba\xa4\xb7\x08\xa7\x58\x2d\x58\x0f\x07\xbc\x91\x24\x54\x18\x1b\x6d\xe6\x76\x09\x3a\x7d\xca\x2a\x53\xa1\xf3\x17\x6b\x47\x51\x24\xc5\x05\x2e\xa9\x57\x19\x24\xf6\xd5\x8a\xc6\xea\x56\x5e\xdd\xa8\xa7\x85\xf5\xdb\x5e\xe9\xbc\x0d\xb6\xa7\xce\x48\xa1\x07\xaa\xe6\xea\xac\xc2\x45\x6f\x29\xde\x72\x59\x3d\x31\xdc\x09\x56\x6e\x41\x94\x15\xab\x73\xd1\x67\x88\xd8\xd3\x7e\x58\x9e\x6d\xe4\x0f\xce\xb7\x74\x8b\x82\xa5\xdb\x01\x64\xac\x56\x41\x5d\x70\xf4\x4f\xb8\xe0\x82\x6a\xb9\xc1\x2c\xa7\x6d\xd6\x38\xd6\x3e\xea\x51\x75\xb4\x8f\x7f\xec\x61\xb5\xd5\xdd\xe2\x8f\xd6\xa7\xac\xaa\x54\xa0\x8d\xf3\x23\x15\x0e\x3c\x43\x41\x51\xde\xb0\xbb\xb3\x9d\x7f\x34\xbd\x2e\xeb\xb7\xe3\x43\x0a\xbc\x4a\x81\x57\x29\x1c\xac\x47\x00\x9f\x05\x21\x5a\x5b\xb1\x4d\x10\xf1\x2f\x34\x20\xac\xfe\x83\x45\x3c\xa4\x5f\x25\xde\x37\x66\x73\x24\x84\xe1\x30\xb3\x8d\x53\x56\x6d\xa2\x1d\xb0\x9a\x9d\x25\x60\xf6\x76\x68\x17\xfa\x5d\xaa\xdc\xc1\x8f\x0c\x96\xe3\xb4\xad\x1b\x3e\x05\x93\x0c\x0c\xcb\xc0\xd1\x4c\xeb\x3e\xa9\x3c\x11\x24\x19\xd3\x77\x69\x51\x92\x11\xd0\x3f\x58\xa9\x53\xcf\xe9\x3a\x59\xdf\x61\xd6\xb0\x43\x07\x2b\x09\x31\x82\xbe\xeb\xf3\x07\x96\xd4\x61\xad\x37\xd7\xd6\xd8\x53\x0f\x46\x03\x76\xc3\x49\x4c\xdc\x52\x75\x8c\xf2\x0b\x07\x0e\xf1\x30\x72\x8f\x25\x1f\xf0\x89\x07\xe2\xfa\x90\x96\xe2\x5c\xeb\x97\x58\xc7\x51\x3e\x9e\x3b\x7c\xb7\xd9\x4e\xbe\x8b\x5d\x06\xfb\x73\x98\x7b\x0f\x62\xae\x73\xc7\x7b\x7c\x5d\x1f\xef\xd6\xf7\xc3\xa7\xdc\x21\x51\xbf\x87\x99\xfc\x40\xa5\x1e\x66\x92\x73\xc7\xf7\x46\x70\x7d\xb8\x64\x04\x89\x0d\x36\x21\x91\xe4\x15\xe1\x57\xe0\xa8\x08\x3c\x15\x81\xe3\x41\x8b\x36\x1c\x22\x62\x24\xfa\xed\x83\x97\x24\x35\x7b\x3c\xaa\x99\x3e\xb2\xe0\x10\x31\x10\xf8\x55\x03\x07\xac\x26\x1e\xb6\x85\x42\xf1\xd0\xe6\x72\x39\x17\x8d\x8e\xa4\xcc\xb8\xda\x11\xba\x20\x9f\x28\x35\xe3\x17\xeb\x29\xd9\x9c\x84\x34\x12\x5d\x90\xd9\x1b\xd2\x4a\x22\x93\x5c\x05\x02\x39\xae\x86\x08\x9f\x43\x6a\xc9\x74\xf5\xaf\x4b\x7e\xc5\x47\x35\xfa\x67\xcb\x34\x68\xf7\xef\x05\xa1\x5e\x53\x25\x3e\xd9\x4e\x30\x49\x19\x9f\x20\xa3\x4e\xb7\x60\x98\x02\xc3\x24\x6d\x25\xf6\x29\x2d\xc9\x05\x09\x46\xa1\xb8\x7a\x52\x68\x3d\x61\x12\xb4\x87\x76\xbc\x9f\x96\x50\xa7\x22\xb5\x16\xbf\x2e\x9d\x76\x80\x3a\xfa\x49\xf0\x42\x56\xf9\xbb\xa0\xa0\x43\xc6\x87\x41\x83\x46\x08\x3f\x56\xff\x26\x5d\x5d\x81\xa3\x86\xa0\x1c\x2a\x3f\xe5\x20\xfa\x1e\x92\x2a\x1c\xd2\x02\x1e\x12\x23\x1c\x9e\xd5\x59\x8e\xd6\x23\x7e\x5d\xeb\x6c\x5e\xb2\x49\xde\x20\xee\x9c\xba\xfe\x97\x7b\xb8\x5c\xf1\xf2\x8b\x28\x30\x97\x88\x6d\xf3\xf6\xed\x4f\x5e\x52\x4c\xde\xe3\xea\x1a\x6d\xe7\x08\x78\x06\xb4\x00\xdf\xbd\x98\x7b\x57\x61\x23\xd3\x37\x56\x61\x47\x33\x33\x2f\x5b\xe2\xe5\xda\xa4\xe5\x50\x37\x1f\x3f\xec\x41\x75\x0a\x62\x29\xd0\x51\x19\xff\x3c\x7f\xd7\x59\x51\x38\x06\xac\x52\xbe\x62\xfa\x5b\x1c\x6f\xae\x0c\x7c\x45\x31\xcb\x75\x41\x53\x04\x07\x6d\x98\x9c\x4d\x45\x9c\xbd\xac\x6d\x1d\x6f\x83\x55\x40\x1d\xcb\xf6\x32\x2c\xf0\xb6\x9b\xe9\x1a\xbd\xc0\x9e\x61\xc9\x82\xd3\x76\x62\xff\xd6\x32\x32\x01\x3f\x60\x05\x63\xaf\x51\x1a\x2e\x36\xbc\xe7\x3e\xf0\x66\x03\x17\x0c\x3f\xb3\x49\x7a\xb5\x0f\x0a\x7f\xc7\x6e\x10\x07\xb9\xa9\xc2\xba\xb1\xf5\xb6\x15\xb4\x70\xa9\x7b\x1c\x24\x7e\x7c\x1e\x30\x8f\x43\xc4\x8f\xbf\xe5\x3d\x70\xca\x4e\x46\x46\xf0\xbc\xc3\x08\x79\x6e\xd4\x94\x08\x82\x1b\x22\x60\xab\xa3\x9c\x15\x09\x9e\xed\x8e\x5b\xd0\x88\x1d\x58\x63\x34\xa2\xb5\xde\xa5\xaa\x7f\x23\xcf\x38\x06\x2b\x3e\xb4\x74\xaa\x1e\x7b\x90\xf0\x2c\x25\x14\x4b\x2e\x27\xc1\xc4\x78\xc5\xb5\x91\xae\xf5\xca\x84\xc1\x70\x09\x02\x89\xd5\x02\x37\x48\xc0\x5a\x03\xc4\x68\xfc\x51\x14\x4d\x26\x5f\x5e\xb2\x14\x27\x50\x2e\x0f\x4e\x19\x0c\xa3\x5a\x6d\xe0\xa0\xe5\x1a\xb2\xad\x96\x1e\x00\x75\xf9\x05\x19\x00\x11\x10\x78\x69\xc8\x40\xb5\x5f\x60\x75\x41\x9e\x95\x86\x9a\xda\xa4\x05\x38\x38\x11\x10\x67\xe6\xde\x8a\xc4\x81\xd5\x84\x8b\x90\xe2\xac\x98\xde\x48\xfe\xa4\xfd\x8b\x6d\x80\x03\xe7\xe1\x25\x53\x13\xda\xc1\x07\x51\x40\xc5\x02\x3c\xd6\x38\x4d\xf8\xf5\x76\x70\x0c\xc6\x34\xa2\x58\xa8\x23\xa4\x03\xd1\x96\xc9\xe2\x5a\x72\x21\x4b\x04\x0d\x81\x48\x42\xdb\x9b\x63\x68\x89\x8b\xa0\x4b\x22\x9e\x08\x44\x15\x3a\x86\x85\xdd\xa5\x3f\x87\x23\xcb\xd4\x23\xd1\x43\x2c\xa1\x4e\x53\x83\x5b\x87\x90\xd8\x98\x8d\x89\xbc\xdb\xc9\xb2\x59\xcc\x31\x85\x89\xa3\x9f\x5d\x2c\xe3\xb8\xa8\xa0\x94\x66\x63\x58\x03\xc1\x06\xe8\x34\xc4\x38\x0c\x4b\x01\x09\x3b\xb4\x87\x34\xd9\x8b\x05\x99\x32\x73\xd0\x48\x14\x58\xd3\xfe\x4d\xcb\xf2\x8e\xf1\xdd\x86\x03\xe5\x74\xb5\x14\x40\xc3\xb8\x6f\xae\x0b\x64\x1b\x9e\xfc\xb0\xbc\x0c\xb0\x6e\xda\x8b\xbc\x97\x7d\x88\x55\xe0\xea\x29\xcc\x6b\x67\xa3\x25\x26\xe0\x00\x00\x0f\xd0\xfe\x70\xdd\xc3\xf0\x3a\x10\xea\x07\x52\xe1\x3c\x0c\x77\x02\x88\xce\x73\xb6\x7d\x96\x65\x28\xe7\xf3\x9a\x34\x67\xc9\x31\x2c\xf8\xcf\x65\x40\x71\x82\xbc\xf1\x31\x97\x63\x58\xcc\x9f\x3f\xe5\x0c\x4e\x91\x36\x2e\x15\xea\x6b\xb1\xdd\x9c\x87\xc4\xbf\x50\x4d\x17\xbf\xf7\xbd\xed\xdc\x05\x2c\xdd\xce\x49\xf4\xfd\x94\xe4\x3c\x94\xed\x84\xb8\x42\x66\x1f\x68\x0b\x82\xaa\x77\x41\xb8\x79\x50\x0f\x32\x1e\x0b\xc8\x2b\x2b\xa0\xbd\x50\x93\xd9\x6b\xd0\x3e\x33\xbe\x1e\x50\xf7\x51\x0c\x06\x41\x9e\xf6\xa0\x9a\x85\x24\xc0\xd4\x5e\x14\x38\x5c\x54\xe8\xa4\x48\x45\x2e\xab\x69\xa9\x13\x88\xaf\x38\xf1\x1e\x27\xde\x63\xb5\x4d\x32\x27\x88\x04\x72\xf6\x7c\xd3\x3b\x21\xb8\xa5\xba\x27\xd3\xbf\xda\xa4\x45\x4a\x3f\xb4\x64\x5f\x62\x49\xa4\xb8\xa1\x5a\x7f\x0a\x58\x18\xc0\xc2\xb7\xe8\x35\x79\x38\x91\x7c\x1f\x27\x28\x4f\xb6\xc9\x5f\xcc\x02\xb8\x17\xc9\x97\x96\x33\x54\xbb\x98\xf2\x98\xcc\x20\x4f\x1f\x89\x9b\x36\x09\x94\x28\x8b\x89\xa3\x30\x71\x8c\x24\x2e\xc2\xc4\x85\x97\x1b\x11\x7d\xe0\x8c\x72\xc2\x9a\xf8\x2d\xd9\xf4\x6e\xd4\xc9\xab\x68\x89\xb4\xd3\x3a\x1a\x24\x98\xa2\xe8\x99\x50\x48\xc0\x89\xb3\xe7\x9a\x25\x77\x09\x4a\x38\x91\x4b\x6b\x0e\x05\xde\x9c\x12\x4f\xe4\xd6\xcf\x20\x57\x4c\xb8\xdc\x3b\x45\x9f\xb0\x15\xb5\x07\x1c\x03\xe2\x21\x6d\x28\x39\x8b\x33\xc9\xf7\x97\x4e\x66\xd4\x60\x91\x26\x2b\x64\xc3\xa7\x53\x12\x95\x4c\xe6\x49\x44\xa4\xf6\xb3\x87\x14\x4b\x6d\x8c\x02\xdb\x4e\xb6\xcd\xec\xf0\x79\xc8\x59\xb1\xbc\x1f\x34\xc3\x15\x7b\x39\x11\x92\xcf\x4f\x09\xc8\xed\x2b\x06\x38\xa6\x84\x63\xa2\x69\x0f\x2d\x61\x11\xce\x90\x1c\xa4\x1c\x5a\x66\x7c\xea\x93\x68\xba\x12\xf5\x57\xa2\xfe\xca\x06\xd5\xcd\x6f\xa4\x14\x22\xcd\x0f\x04\xd1\xe0\x26\x98\x6e\xa7\x0b\x82\xd8\x29\xe2\x5c\xd3\x2d\x00\x89\xf8\x04\xb2\x73\x8f\x46\x8e\xda\x64\x8f\x8f\x87\xe4\x21\xd3\xa8\x33\xdd\xad\x76\xa6\xe1\x07\xed\xd3\xb4\xe4\x18\xa6\x12\x3e\x19\xa6\x6f\x91\x80\x87\x1e\x79\x09\x6e\xb8\x75\x5c\x1b\x8c\xc4\xbd\x54\x13\xc3\x51\x72\xaf\xab\x81\xe1\x8c\x78\x94\xc2\xa2\xfa\xde\x23\x1b\xfa\x23\xd8\xe1\x41\x2b\x3d\x5c\xb6\x6b\x41\xb6\x6c\x03\x21\x27\x83\x73\x9a\x04\x43\xa9\xf1\xf6\xa5\xe5\x18\xdc\x13\x38\xe3\x16\xa1\xae\x04\xb6\xc7\x6a\x00\x55\x6f\xef\x07\x20\x19\x4a\x3d\x7f\x8b\xa2\xa1\x38\x2f\x70\x6c\xaf\x36\xb8\x82\x7a\xc2\x15\xb8\x1c\x14\x84\x49\xb5\x1a\xf7\x07\x50\xc7\xc5\xab\x16\x86\xd8\xc2\xb0\x22\xff\xbc\xb6\xf9\xd6\xc5\x35\x69\xc5\x8e\x95\x33\xd6\x7e\x58\xd7\x01\x5c\x24\xd6\x60\x31\x87\x2e\xea\x91\xec\xf5\x2d\x19\x83\xf3\xe2\x38\xf4\x08\x77\x86\xa1\x17\x6e\x75\x42\x8f\x36\x30\x6f\x03\x32\x37\x49\x2e\x37\xb4\x03\x45\x77\x62\x53\x88\x6a\x53\x19\x6f\x53\xd6\x78\xe3\xea\xda\x64\x76\xd8\xd0\xa7\x1b\x62\x76\x1f\x1c\xa0\x38\xc8\x36\x2e\xb3\x0d\x59\xb1\xc1\x19\x1b\x9a\x97\x1a\xbe\x6a\x39\xfe\xf9\x53\x8e\x87\xd4\x22\xbb\x25\x09\x74\xd5\x02\xa8\x4c\x0a\x5d\x03\x2d\x40\x17\xce\x05\x1c\x85\x04\x38\x47\x5c\x40\x1a\x46\x59\x60\x18\xe6\x72\x52\x42\xc3\x2d\x87\x7b\x93\x61\x07\x50\x9a\xeb\x9b\x6d\x9b\x54\x8b\x84\xdb\x2d\x42\xb6\xd6\x37\x75\x84\x8f\x71\xea\x71\xd0\xd5\x02\x45\x51\xc0\x85\xbe\x91\xe5\x10\x2f\x17\x98\x47\x89\x54\xc7\x9f\x42\xfb\x58\x64\x60\xe1\x4b\xe3\x6e\x48\xe3\x30\x9c\x11\xb8\x4a\x5d\x23\x0f\xd1\x46\x42\x6e\x27\x25\x20\x12\xea\x3b\x5d\x20\x1c\x2a\x9b\x2a\xd1\xda\x86\xde\x01\xfd\x40\x89\x14\xe4\x67\x41\xe6\x17\xc4\x7e\x85\x35\x4b\xa4\xc1\xe0\xb9\x55\x19\x9f\x11\xc5\x60\x1d\x94\x33\x24\xcf\x81\x6c\x01\xb1\x0d\x54\x0f\xc5\x80\x0a\x30\x5c\x44\x68\xd6\x01\x99\x41\x46\x39\x8f\x29\x45\x8a\xa3\x0e\x58\x90\x22\x41\xd4\xa3\xd4\x1e\xa3\x2e\x23\x27\x63\x29\x70\x12\x71\x31\x85\x8b\x01\x93\xa4\x21\xca\x1a\xf7\x6b\x23\x80\x68\x24\x11\x5d\x94\x45\x67\x4d\x6d\xc0\x76\x23\xd3\x69\xfa\x64\xe3\xee\xa1\xaa\x64\x10\x79\xa1\x4f\x7d\x9e\x05\xf6\xba\xb4\x38\x7f\xc1\x49\xbc\x35\x92\x1a\xc5\xa0\xe9\x1a\xcc\x8d\xc1\x0c\x19\x28\xd3\xd9\x20\x1b\x84\x1d\x83\xc8\x66\x36\x38\x09\xb2\x77\x70\x33\x0d\x2e\xa7\xe1\x9e\x87\xda\x46\x03\x12\x1d\x4c\x92\x21\x2d\xcd\x50\x4e\x6b\x78\x6e\x64\xfc\xd7\x1e\x7d\x97\xa7\x3d\xbc\xd9\x19\x9c\x26\x18\x20\x83\xf1\x42\xb0\x9b\xf0\x16\x25\xeb\x40\x72\x20\x5d\xc2\x7b\x75\x1e\xce\x36\xbe\x8a\xcf\xe0\xd6\xc7\x08\x3f\x91\x42\xf7\x10\x0d\xed\x30\xbc\x03\x0e\x3e\x4e\x8e\xca\xd9\x5c\xee\xf6\x70\xce\x73\xc9\xd9\x84\x8c\xe1\xf2\x64\x2e\xc4\xf2\xc5\x02\xb9\x50\xeb\x17\x15\xdf\x85\x9e\x3a\x90\xa2\x17\x52\xfa\x52\x20\xe6\x62\x7b\x5c\xec\x90\x03\xf9\x79\x19\x41\xd7\xd9\x61\xa0\xb3\x5c\x81\xea\xa2\x85\xbb\x68\xed\xae\x56\x74\x9d\x07\xc2\x84\x2c\xb1\xbe\x13\xe6\x31\xea\x7a\x6a\xbf\x3f\x35\x55\x02\x0d\x42\x44\x73\x39\x4b\x21\xa9\x38\x8a\x3c\x3d\x18\x5f\xe4\x43\x8f\x87\xdb\xf4\xd1\x93\xdf\x71\xba\x64\x70\x15\xa2\x99\x37\xfe\xd4\x11\x88\x49\xa0\xa3\x6b\x92\x38\x30\xe9\x9b\xed\x70\x13\xdf\x46\xda\xcc\x82\x48\x21\xfe\x68\x83\xc3\x58\x4d\x30\xc6\x13\x87\x82\xf6\x80\xc3\x90\xc4\x90\x00\x0f\x77\x40\x92\x1e\x45\xa6\x19\xf8\x09\x5a\xa6\xc0\x6a\x6d\xec\xf5\xdc\x0e\x7b\xc8\x8b\x09\xf2\x3b\x02\x14\xeb\x68\x45\x5b\xd4\xd4\xa6\x6e\x59\x92\x3d\x4d\x2d\xf9\xb6\x9d\x2f\x73\xbc\xcd\x7e\xee\x90\x9c\x9a\x9b\x44\xa0\x9b\x54\x56\x7b\x91\xb3\x82\xac\x83\x9b\x6a\x74\x98\xe7\x89\x49\x9e\x98\xe1\x89\x91\x9e\x3b\x56\x7d\x93\xa7\xa8\x05\xb7\x51\xc9\x9d\xb8\xf6\x4d\xc0\xe7\xde\x8f\xc2\xf2\x03\x11\x84\x5b\x0a\x77\xcc\xa6\xda\x2b\xc2\x95\xdc\x17\xa8\x85\xa3\x27\x16\x4e\x28\x32\xcc\xc4\xda\x8e\x82\x06\xcf\x25\xc0\x0d\x47\xd5\x22\x33\x01\x94\x4b\xe0\x12\x0a\x50\x6f\x40\x64\xc5\xc2\xa5\x05\xf6\x45\x92\x9c\x31\x40\x3f\xaa\xff\x92\xbf\x4a\x6d\x03\xf7\x00\x7a\xcf\xa0\x8f\xfd\xc0\x37\x92\x17\x22\x3a\xcc\xb8\x2e\x1b\x0e\xf8\xe2\x5a\x89\xeb\x2d\x17\x95\xae\x41\x99\x49\xf1\xdd\x04\x73\x63\x7b\x27\x76\x78\x92\x18\x44\x47\x7a\x9b\x5c\x0b\x84\xc2\x01\x45\x5d\x19\x38\x09\x3a\x24\x48\x3b\x85\x24\x89\x48\x77\x5c\x7a\xd2\xba\xb2\x38\x34\x14\xd2\x0b\x59\x71\x99\xe3\x1a\xe2\x7c\x3a\x06\x89\xc0\xbd\xe1\xea\x63\xa8\x68\xe8\x47\xfd\x8e\x21\xdf\x80\x73\x6c\x36\xe4\x58\x03\x1e\x29\x60\x9d\x03\x60\x84\x4a\x4a\xca\xc0\xe7\x38\xc8\xf2\x92\xaf\x12\x90\x48\xb0\x6a\x95\xfa\x4c\x41\x40\x91\x7a\x22\xa1\xf1\xb5\x07\xd8\x48\xc6\x4b\xcd\xa2\x59\x2e\x37\x0d\x7d\x57\x38\x13\x9d\xf4\xbc\x9e\x6b\x40\x53\xaf\x19\x4b\x03\x7b\x38\xb1\xa8\x93\x20\x80\x24\x50\x20\xb1\xa2\x93\x10\x81\x24\x2c\x20\x59\x05\x12\x7b\x3b\x71\x2e\x67\x13\x84\xd8\x54\xbe\x99\xe5\xe8\xbf\x15\xbf\x57\x4f\x6e\x62\x4b\x5b\xc7\x60\xc1\xa6\x0b\x76\x0f\xa0\x7e\x2e\x19\x3e\xee\xb7\x70\xb1\xf7\x80\x48\x89\x0d\xbc\xe4\x8e\x20\xa4\x71\xa8\xa6\x33\x58\x17\x43\x4d\x9d\x43\x4f\xa3\xfa\x9d\x5a\x68\x3d\xb2\x32\x91\x7b\xe9\xec\x67\xa7\xa4\x53\x71\xd1\x3a\xf3\x82\x9e\xc9\xe1\x97\x52\x6a\x4a\x78\x15\x8c\xea\x00\x4c\x4b\x62\x48\x18\x09\x54\xbf\xd4\xc6\xbe\xc0\xf9\x5b\x4e\x36\xf9\x5c\x8a\x97\x6a\xaf\x94\x56\x48\x97\x6b\x75\xb0\x30\xdb\x10\xb3\xef\x38\x80\xde\xda\x69\xe4\x2e\xd8\xd5\x6b\x8c\x18\x8d\x4b\x71\x5f\x22\xe4\x58\xa0\x8b\xe5\x68\xe6\x76\xdd\x42\x08\x3a\x5c\x2d\x0b\x29\xc8\x6a\xe3\x4f\x30\xaa\x6b\x25\x42\x26\x2f\x72\x35\x30\x3b\x69\x0f\xdf\x32\xce\xa4\x0a\xe2\xb5\x60\xd4\xb8\x11\x4a\x6d\x43\xaf\x21\x87\x60\x96\x50\xeb\x20\x76\x53\x79\xc8\x60\xa0\xfb\x70\xbb\x6c\x24\x13\x3b\x9d\xcf\x61\x5b\x49\x8e\x1c\x8b\x23\x9d\x04\xfa\x82\x1e\x21\xc7\x36\xd7\xdd\xb8\x47\x37\xee\xbc\x0d\xf9\xbf\x2f\x58\x11\x14\xb4\xb1\xcc\x37\xa4\xfd\xc6\x62\xdf\xc8\xf9\x36\xd8\x78\x93\x89\x67\x23\xed\xdb\x38\x11\x36\xce\x68\xe4\x55\x41\xb2\x9c\x20\xc2\x57\xdf\x15\x7a\x0c\xa7\x84\x22\x1b\x25\xae\xfc\xe0\x69\x50\x01\x42\x2d\xf5\x29\xbe\x15\x0a\x49\x7c\x8e\x90\xd4\x02\x3c\xd6\xdf\x70\x22\x18\x5c\x1b\x81\xbd\x10\xdc\x43\x40\x96\x26\x6f\x30\x91\x76\x90\x3b\x37\x12\x52\x37\x77\xb9\x14\x98\x3f\x25\x9d\x54\x52\x34\x09\x9e\x0e\xb7\x17\x59\x76\x85\x3c\x41\x98\x76\x29\x6a\x45\xc6\x40\x0c\x8c\xc8\xa0\x16\x82\xb6\xad\x7b\x87\xef\x1b\x63\x4e\x38\x3e\xdc\x8e\xb8\x5f\x13\x0e\x22\x5d\xdd\x1a\x87\x85\xa3\xdb\x13\xc7\x87\x13\x72\x53\xae\x5c\xfb\xd9\x03\xee\xe5\x8d\x90\x3c\x44\x7b\xf8\x16\x6e\xcd\x6b\xe7\xa3\x9e\x4c\x51\x77\xb3\x70\x57\x51\x42\x55\x2d\x8c\x21\xee\x42\x92\xf3\x14\x42\x73\x72\x6c\x46\x21\x2f\x76\x18\x74\x61\x7d\x14\xd6\x47\x51\x7b\x13\x73\x36\x30\x67\xa3\xb0\x44\xca\x05\x1c\x40\xda\x05\xf6\x2e\xd0\x75\x81\xae\x29\x5a\x25\x14\x4a\x91\x32\x44\x38\xb8\x4d\x0b\xfb\xa5\x90\xe7\x15\xf2\x0f\xd2\x87\x45\xd1\x37\x9c\x15\xae\x10\x87\x14\xf1\x05\x85\xf5\x51\xc6\xd8\x88\x43\x0a\x04\x4e\x69\xcf\x20\x0e\x5e\x7b\xd8\x86\xc7\x44\x5e\x52\x58\x2b\x04\x81\x06\x41\xa0\xd1\x28\xf9\x89\xfc\x8b\xc6\x4e\x6c\x98\xd0\xe6\x1d\x35\x36\x23\x31\x82\xd1\x58\x9d\x0d\x39\xdf\xe5\xcc\x36\x46\xc2\x4d\xc5\x7e\x04\x39\xfc\xd2\x2e\x27\x59\xc0\x65\x89\xe3\xb8\x71\xc3\x91\x36\x58\xc7\x80\xa2\x5d\xe7\x1f\xb4\x8c\xd0\xb4\x5d\x07\x8f\x1e\x42\x55\xfe\xa0\xcc\xad\xae\xc8\x79\x8a\xbb\xb2\x8c\x9e\x3d\x88\xb2\x1a\x39\x56\xc3\xa3\x35\xcc\xda\xc6\xa5\xde\x2f\xbd\x07\x27\x26\x6c\x29\xf6\xe6\xb8\x74\x20\xfc\xf5\x20\x99\xa3\xfc\x59\xb8\x4c\xfe\xac\x71\x4d\x24\xca\x0b\x82\x7b\x99\x3d\x60\x1b\x82\xec\x83\x6a\x8b\xfd\x84\x99\x63\x69\x22\xbe\xa2\x74\x66\x0c\x25\x6b\x87\x27\x3f\xd8\x47\x43\xa6\x54\xa4\x26\xfa\x54\xdb\xd8\x95\x24\x2d\x0e\x12\x18\xeb\x18\x63\x6f\xf0\x36\xb2\x4f\x1c\x79\x83\x80\x67\x8e\xde\x08\x55\x6d\x74\x24\x08\xfc\xfa\xbb\xde\xe6\x8a\xd7\xe7\xc7\x7d\x89\x3c\xc9\xec\x27\xbc\xde\x41\xea\x70\xc6\x35\x00\xe1\x0a\x91\x9b\x5e\x18\x86\x8b\xc8\xf9\xc2\xff\x5e\xa2\x5d\xc8\x96\x1b\x17\x27\xef\x45\x36\x7c\x89\xca\xa1\xca\x94\x3e\x4d\x5a\xd0\xf2\xe1\xf8\x0d\xf6\x46\x80\x84\xf3\xf7\x6e\x23\x76\x90\x33\x0c\xf2\x85\x59\xbe\xdf\x72\x82\xb8\x20\xb7\xd3\x17\x5e\xce\x19\x5c\x0b\x6c\xcf\x08\xbd\xcc\x30\x97\xec\x04\x97\x59\xe8\x22\xdd\xbc\x88\x6c\x5d\xbd\xea\x92\xa9\xe3\x6e\xdb\x05\x8f\x23\xd3\x75\x1d\x36\xf5\x4d\xc9\xb6\xed\xda\x00\x20\x7c\x92\x31\x13\x3c\x25\xc4\x8e\xe3\x92\x62\x85\x42\x1a\x6a\x41\xec\x03\x62\x47\xaa\x8e\x35\xfa\xb0\x56\x9e\xe3\xeb\xcf\x22\x79\x3e\xce\x4d\x32\x14\xbf\x71\xe1\x76\xce\xe6\x94\xfe\xcf\xd9\x24\x08\xba\x78\x88\xac\xa0\xf1\x28\xce\x9c\xc8\x81\x12\xa9\x79\x2e\x32\x7b\xbb\x2c\x01\x91\x32\x6a\xd9\x46\xd6\xbe\x39\x92\x22\x75\x48\x77\x12\xe7\x57\xe2\xfc\xd2\x36\x39\x0c\x36\xf5\xfe\x02\xac\x4e\x42\x9d\xe6\xd3\xe6\xc8\x76\x0a\x0c\x8e\x74\xfe\x7b\x59\xe8\x42\xda\x38\x55\x2f\x78\x1b\x4e\x93\x2a\x4b\x9b\x9a\x69\x3b\x91\xf8\x72\x86\xdd\x42\x59\x48\xbe\x73\x53\x59\x9d\xbc\x3a\x89\x50\x3c\x91\x79\x27\x62\xd1\xdc\x64\x0c\xda\x4e\x28\x09\xdf\x15\xe0\xf9\x58\xa4\x6b\xd8\xc6\xcc\xa4\x1e\x83\x5b\x13\x44\xa0\x05\x6f\xe3\x66\x25\xa3\x7f\x2c\xe8\x52\xf8\xd9\x00\xff\x93\xb6\x4c\x7b\x1e\x48\x9b\x6c\xf3\xc6\xdb\x7c\x7a\xb6\x5b\xaa\xd5\x41\xa0\x1e\x48\x50\x18\xbf\xb8\xce\x15\x7f\xc0\xc6\x88\xcd\xe0\xf4\xe0\x55\xd4\x82\xab\x0f\xf8\xf9\x8b\x90\x41\xc5\xb8\x71\xc1\x51\x94\x56\x50\xab\xe3\xc9\x63\x98\xe4\xd6\xca\x31\xe2\xc5\x5d\x3b\xe4\x5b\x22\x07\x7e\xba\x76\x15\x41\x07\x39\x9c\x6d\x8e\x8f\x4f\xb6\x69\x41\xe0\x83\xf3\x77\x8c\x8d\xb9\x3a\xbf\x2b\xcf\x17\x15\xc3\x8a\x40\x91\x42\xa6\x16\x16\x59\xd5\xf5\x1e\x67\x77\x6f\xb6\xc9\xf1\xbe\xc0\xc6\x17\xe4\x2c\xf4\x4e\x7e\xd4\x2c\x58\xc7\x82\x24\x2e\x2a\x49\x15\xb4\x71\x81\x69\x8b\x5a\x7a\x24\x08\x51\xdb\x88\xee\x1e\x6d\x53\x17\x0d\x3c\xdc\x60\xe3\x01\x15\x8f\xf7\xb3\x87\x12\x76\xb0\xe4\x84\xcc\x26\xe1\xb0\x89\x38\x53\xf0\x7f\x81\x93\x29\x20\x07\x5b\x8b\xb5\x32\xd8\x35\x83\xcd\x45\x10\x54\x0e\xd6\xdc\x6c\xc8\x5d\x67\x95\xe3\x2d\x4c\xeb\xad\xe1\xef\x49\x57\x57\x9c\x4b\xb6\xa4\x6f\x6e\xaa\xeb\x6d\xf6\x3f\x8e\x79\x30\xba\xd7\x9f\x7a\x0f\x48\x1b\x71\xa0\xac\x75\x57\xde\xd1\xa7\xec\x71\xf2\xf8\x8b\xcc\x0f\x14\x4d\xfa\xcc\x83\xf7\xe2\x60\x69\x52\xd0\x35\x49\xde\x9a\xc7\x95\x83\xd2\xe5\x3a\xa9\x4d\xc5\x93\x39\x08\x0f\xae\xf0\x98\x50\x34\xee\x72\x9d\xe1\x3a\x81\x11\xe3\xe8\x36\x09\x5b\xb5\xd2\xa9\xbd\xb4\x24\x2a\x5a\x6c\x93\x4c\x7c\x48\xdf\x3e\x78\x2c\xf0\x79\x6c\xe4\x01\xf7\x6d\xea\xac\x91\xd2\x5e\x76\x74\x31\x4b\x14\x38\xb9\x96\x9e\x4f\xad\xd9\x49\xc6\xf3\x26\x4d\x12\x08\x1c\x36\x18\x1f\xdb\x82\xcd\x23\x2b\xba\x86\x1d\xa9\x94\x70\x9a\xc3\xec\x2d\x4a\x5d\x0d\x72\xbb\xf5\x08\x55\x42\xe4\xb3\x59\x05\xf6\x76\x38\x09\x2e\x69\xd6\xbe\x8d\x10\x6b\x87\xd1\x72\x3a\x57\x0c\x2b\xef\x75\x4b\x72\x46\x23\x61\xb8\xdc\xeb\x74\x8d\x08\x18\x1c\xa8\x72\x9d\x50\x0f\xf4\x8b\xd0\x7a\x13\xf4\xc5\xec\xa1\x16\xf4\x8b\x83\xdb\xcc\x30\x2c\xf1\xb6\xdc\x1d\x1c\x48\x8e\x18\xed\x61\x3f\xe2\xc3\x97\xde\xef\xeb\x82\xa8\x9f\xf7\x73\x9e\x6d\xcc\x0c\x5a\x3e\x6e\x8d\x87\x69\x09\x08\xc4\x4f\x49\xd0\x70\x10\x9a\x1c\x04\x2e\x07\xc1\xca\x11\x08\x7d\x03\x91\x6d\x20\x01\x4a\xf8\xc3\xdc\xc6\xcc\x2e\xbc\x0d\x23\x4a\xc0\x5b\x82\x0a\xc8\x9b\x2d\x54\x8c\xcc\x7b\x11\x60\x02\x7e\x46\xec\x94\xe0\xae\x74\x4d\x3e\xe4\xf1\x89\x37\x94\xcc\x6d\x6a\x41\xb3\x20\x64\xb8\xa6\x22\x5a\xb6\x10\x53\xb9\x54\x0f\x65\x68\x82\x82\xfb\x51\x84\xd5\x15\xa2\xc4\x0a\xf0\x61\x7c\xab\x72\xe3\x05\x37\xfe\x44\xd8\x56\x9e\x5b\x38\x9e\x10\xb5\x02\x3f\x14\x98\xa4\x40\x11\x05\xea\x28\x30\x49\x71\x0f\x85\xd0\xa8\x08\x95\x2c\xc2\x10\x0a\xdb\xa1\x5c\x08\x1b\xc4\x52\x24\x6b\xaa\x0b\xef\x8a\xed\x53\xce\x4a\x85\xa8\xa9\x10\x3b\xd5\xb5\x28\x6e\x3b\x52\x15\x7c\x88\xd4\x0d\xce\xbc\xdb\x88\x31\x41\x98\x08\xdb\x08\x25\x68\xc2\x10\x9a\xf0\x84\xb6\x10\x9d\x00\x84\xc6\x2b\xec\xdc\x38\x8d\xfd\xd8\xd8\x38\x4d\xc0\x42\xb3\x9a\x37\x61\x9c\x0d\x22\x6a\x9e\x73\x7f\x53\xb3\xfa\x53\x04\x72\x78\x61\x1b\xaf\x6d\xe3\xfd\xed\x07\x12\x73\xa2\x49\x8a\x01\x2c\xd7\x95\x46\x47\x86\xc0\x80\x32\x64\x41\x6a\x57\x6d\x27\x25\xaa\xc9\xee\xcb\x90\x42\x11\x3f\x90\xdc\x4e\xf1\x39\x28\x5b\x07\x5d\x0c\x19\x1c\x83\x82\xb5\x81\x63\x2a\x70\x5b\x05\xce\x28\xed\xd1\x31\x18\xb5\xae\xf0\x02\x31\xa0\x16\xf0\x68\x90\x48\xd1\xe8\xeb\x5a\xd4\x9c\x1f\x37\xf1\xf0\x42\x86\x68\x56\x26\xc5\x60\xda\x0b\xa6\x43\xed\xf7\x39\x49\xad\x0e\x01\x6c\x5d\x5b\x19\x3c\xe2\x8c\x46\x14\x71\x70\xac\x9f\x36\x9c\x44\xf5\x86\x24\xe3\x00\x79\xce\x38\x0a\x15\x20\x49\x67\x27\x81\x4c\x5c\x62\x32\x2e\xda\x99\x4b\xc4\x1b\x6a\xa3\xb8\x3c\x93\xbb\x0d\x3c\x51\xa6\x6f\x43\x36\x8a\xe5\x11\xc3\x71\x31\xbf\x2e\xb1\xa2\x17\x23\xec\x12\xe7\x7b\x01\xe3\x97\x98\x80\x8b\xc2\x85\x64\x3d\x41\x06\xf7\xa0\x98\x9d\x8e\xd1\xf9\x05\x64\x82\x2a\x1a\xda\xd6\x31\xe9\xab\xfb\x8a\x80\x4d\xde\xcb\x45\x59\x79\x79\x83\xd7\xe5\xc0\xd0\x45\x5e\xe2\x64\x2f\x2e\xfe\x4b\x47\xb8\x38\xf4\x2f\xd4\xc2\xc5\x89\x7f\xd1\xde\xbe\x65\x68\x69\x95\xdc\xa0\xa6\x77\x6a\xdd\x0d\x84\x04\x18\xe2\x60\x21\x6b\x48\x3c\xcc\xa3\xc7\xf0\x7a\xc7\xf5\x3e\x0b\x32\x98\xea\x72\x38\xa9\xde\x29\xa0\x65\xb3\xa7\x7c\x0c\xfb\x71\xd6\xe3\x86\x7a\x18\x8b\xdf\xda\x77\xf8\x7d\x5d\x2e\x92\xf4\xd3\xb9\xa8\xc4\x49\xf8\xb5\x5a\x48\xe2\x71\xeb\xfd\x80\x4a\xe8\x5b\xbc\xaa\xe8\xca\x13\x2d\x79\xa2\x25\xcf\x05\x21\xb7\xd0\x85\x2d\x4a\xc7\xac\xe3\x42\x47\x50\xc5\x97\xfd\x10\x96\x9b\x34\xa8\x3b\xd0\xe5\x05\x75\x8b\x82\x02\xc8\xe4\xfa\xdb\xd0\xcc\x3b\xa9\x70\x85\x8a\x6d\x97\x9d\xe9\x38\xd6\x9b\xed\x3e\x4e\x30\x0d\x90\x84\xb8\x85\x4c\xdd\xfd\x4d\x69\x0c\xf0\x84\x0c\xa6\x22\x0b\x49\x8e\x73\x53\x3d\x6d\x3f\x7b\xdc\x1f\x10\x92\x38\xb3\x6d\xbf\x3b\xde\xf4\x55\x54\xf0\x82\xdc\x45\x8a\x40\xf1\x6c\x1d\x03\xd1\x8b\x42\x70\x53\xc8\x68\xbb\x94\xac\x09\x5a\x57\xdd\x0a\x13\xb7\x50\xb3\xc0\x4f\xaa\x98\x24\xea\x45\x92\x55\x66\xae\xe7\x6d\xca\x07\xe1\xf9\x5e\x17\x98\x09\x3c\x5c\x2e\x34\x04\xe5\xb9\x01\x83\x50\xf2\x49\x16\x34\xaa\x2a\x24\x72\xa6\xa4\x8c\x7e\xe2\x46\x4b\xdc\x6b\xda\x0f\x0c\x04\x84\xba\x40\x10\xa9\xc8\x12\x8a\x3d\x29\x40\x95\xc4\xd5\xb1\x2c\xe8\x98\x60\x3f\x69\x5e\xf5\x04\x12\x09\x04\x2e\xbb\x24\x5f\x9b\xce\x46\x4a\x50\x6a\x69\x10\xfd\x80\x83\x2e\xf3\x38\x41\x21\xbf\x85\xea\x9c\x09\xc1\x5f\xa4\x49\xaf\xc6\x4f\x8f\xd7\x1f\x0d\x75\x16\x10\xa6\x88\xae\x28\x0c\x82\x02\xda\x14\x66\x41\xf1\x5e\x1a\xd0\xd7\x40\xbc\x42\xa9\x40\x94\x4f\x12\xbb\x93\xb8\xc5\x12\x77\x59\x36\xce\x07\x1c\x6e\xda\x0f\x1d\xcb\xf1\x05\xed\x4a\x2c\x48\x23\x11\x69\x4a\x2d\x35\x79\xdd\x70\xaf\xa9\xf5\x31\x05\xd8\xd4\x39\x1f\x24\x2b\x49\x6f\x31\xee\xb5\x0d\xfc\xa4\xd2\x16\xc4\x3f\x92\x27\x6d\x03\x48\x51\x4d\xe2\x0a\x98\x15\xec\x71\xfa\x3d\x08\x5d\x2a\xdf\x4c\xf0\x5d\xaa\xe6\x0c\xb5\xbb\x27\x05\xee\x26\x00\x9e\xa8\x2b\x26\x97\x3f\x25\x2f\x2f\x57\x27\x73\xa1\xcb\xf1\x0f\xb4\x37\xf2\xa7\x24\x8d\x74\x0e\xf1\x2b\x43\x35\x20\x8a\x84\xe7\x58\xd1\x09\xd0\x1b\xe2\x66\xce\xa6\x24\x25\xfd\x8d\xea\x16\x82\xa5\xe4\xd8\x45\xc5\x19\x01\xfc\x24\x2a\xc5\xf5\x3f\x7f\x6a\x3b\x3b\xf5\x2e\xf5\x51\x29\xf8\xeb\x14\xf8\xa4\x58\x3c\x8c\xc4\xc3\x13\xbe\x44\x55\xde\xb8\xd0\xc3\xd7\x00\x16\x65\xe8\x73\xf9\x63\x32\x74\x5f\xe0\x2a\x7a\x4f\x34\x1c\x17\x05\xc9\x6d\x44\x10\x9d\xd0\xc6\x80\x56\xfa\xc6\x6d\x80\x2a\xbd\x82\x44\x55\x49\x96\x78\xb5\x9c\xe7\x19\xea\x3e\x40\x2e\x2d\xe7\x14\xb8\x48\x17\xc5\xba\xfc\x76\x4a\x6b\xa4\xcb\x74\x3f\x9c\x57\x94\x2b\xd0\xb6\x6b\x17\x15\xdb\xa4\xff\x24\x8b\x62\x16\xa5\x7f\x0a\x08\xdc\x6e\xc9\x51\x00\xa9\x8c\x30\x6f\xe1\x34\x5e\x44\x75\xb8\x78\xf5\xc2\x11\xb7\xd0\x63\xae\x69\x80\xf0\xf8\x48\xf6\x13\xfb\x62\xdd\x25\x50\x65\x6f\x00\x2f\x89\x31\x36\x5a\xfe\xcd\xfa\x42\xd5\x20\xed\x81\x5a\xe6\x48\x64\x57\xfb\xb9\x7c\xc6\x03\x96\x22\x52\x78\x86\xbd\x50\xc8\x10\x03\x9b\xf8\x8c\x8d\xc0\x6c\x13\xbd\xb1\x9f\xe1\x33\x10\x18\xd9\xd5\x26\x13\xc2\xfe\x26\xc8\x6e\xef\xf1\xb7\x9c\x10\x1f\x4a\x98\xe8\x13\xa2\x31\x02\xe9\x5d\x8c\x73\x10\x13\x15\x8d\xac\x2b\x70\xde\x06\x26\x42\xb8\x6c\x21\xee\xfd\x80\xb0\x0f\x32\x92\x52\x10\x46\x7b\x50\x80\x42\xd6\x12\x75\x97\x38\x39\x33\x5c\x95\x16\xf2\x15\x9d\x78\xb2\x7a\x52\xbe\x5c\xfb\xf9\x14\x09\xa8\xa3\xae\x01\xec\x05\x3d\x53\xac\xbc\x54\x4a\x0a\x97\x2b\x29\x4c\x87\x02\x1a\x17\xeb\x63\xb1\x62\xd6\x35\xf0\x84\x8e\x25\xb6\xbb\x50\xa4\x16\xda\xf9\x72\xad\x46\x30\x4c\x41\xf4\x92\x92\x34\x8a\x88\xea\xc2\x8c\x28\x5c\xb5\x45\x2c\x78\x5d\x9f\x13\xe1\x25\xb2\x8b\x82\x86\x27\x51\xb1\xf6\x13\x99\x8d\x73\x1e\x0a\xaa\x11\xbc\xf5\x00\x0c\x31\x92\x1a\x73\xaa\x21\xa4\x9b\x5e\xd4\x50\xd4\xcd\xb3\x6d\xa8\xb5\x1e\x1c\xfb\x18\x5b\x4d\x34\x52\x8f\xcf\x86\x4c\x60\xa0\x51\x1f\xe2\x46\x62\xf4\x99\x7f\xf4\xc8\x41\x8c\x38\xff\xa1\x9f\x9d\x1b\x9e\x84\x91\xda\x06\x43\xf2\x2d\x32\x5d\x0c\x8a\xe3\x63\xda\x92\x3e\x30\x9a\xf1\x84\xe2\xbc\x3d\x94\x73\x2a\xf6\x1c\x32\xeb\x5e\x4a\xcf\x71\x0c\xf1\x8e\x64\xd2\x18\x7a\xda\x10\x63\x34\x16\x2e\x02\x72\x0f\xae\xf2\x79\xa0\xca\x77\x7c\x4e\xa2\xcc\x39\x06\xf3\x85\xd2\x76\x6a\x2d\xa1\xa4\x85\xa2\x4b\x63\xad\x64\x1b\x84\x86\x00\xf5\x12\xcb\x7e\x89\x35\xb9\xc4\x37\x5f\xc4\xa2\x97\x2a\x9c\x17\x69\xeb\x05\x2f\xdd\x04\xfb\x21\x52\xbd\x88\x32\x2e\xc2\x90\x8b\x2b\xe6\x82\xac\x2e\xf1\x9d\x97\x68\xaa\x4b\x0c\xd9\x45\xf2\x7a\x11\xca\x3e\x44\x01\x6f\x21\x74\x5c\x2e\x04\x43\x4c\x03\xbf\xee\x81\xde\x1f\x12\x80\xe7\x72\x82\xcb\x55\x7d\x75\x6f\x3f\x05\x9d\xf8\x15\xa4\x9f\x71\xcd\x7c\xca\xb1\x06\xe9\x97\x82\xfa\x67\xc2\x72\x90\x82\x10\x7e\xc4\xa3\x3c\x24\x57\x14\xe8\x8e\x07\xe9\xfb\x8e\x91\xde\x73\xeb\xea\xf1\xc6\x7e\xa0\xbb\x0b\xa1\x78\x7d\x3c\x42\x4a\x4a\x4e\x42\x44\x91\x13\x22\x17\x0e\xed\x15\x8e\x96\x20\x0f\x2e\xd1\x87\x54\x2f\x50\x8b\x63\x1f\x17\xfd\xb6\xbb\x1e\x09\x80\xf3\xe3\x12\x19\x40\x12\xda\x5c\xce\xc0\x0a\xbe\x5a\xe0\xa8\x85\x03\x16\x17\x5c\xe2\xa0\x4b\x9c\x72\x09\x9d\xa0\xd6\x47\xe2\xba\xe7\x5a\x97\x6d\x48\x94\x75\x39\xe7\x3d\xde\xaf\x33\xb8\x40\xe6\x45\xa4\x80\xab\x73\xe1\xcc\x5c\x17\x81\x25\x28\x0b\x47\xdc\xb7\x1e\x4c\xba\x7e\x25\x34\xe7\xc6\x29\xbd\x89\xf8\xc7\x1d\xa7\x6d\xb2\xbd\x82\xf7\x48\xc6\xbc\x89\x0d\xdd\xac\x5f\x1b\x07\xfb\x1e\x68\x4b\x4a\x2c\x6e\xd6\x94\xdd\x1c\x43\x61\x8c\x8d\x8e\x70\x3b\xde\x74\x43\x22\x52\x6d\x33\x58\x3b\xc2\x89\xf2\x59\x59\xc2\x49\xdf\x07\xca\x70\x28\x47\x89\xbb\x9b\x99\x30\x83\x24\xe4\xc1\xb5\x62\x0e\x84\x22\x0a\x4e\x1c\xb3\xe1\x94\xb2\xcf\xe8\x0e\x6a\x10\x79\x45\x6e\x3d\x07\xfd\x0c\xf6\xb0\x8d\xe6\x12\x69\x46\x6e\x97\x9a\x84\x86\xdc\x38\xf9\x03\x67\x38\x64\x52\x12\x11\x9b\x0f\x97\xfe\x25\x82\xe4\x7e\xeb\x77\x83\xf1\x40\x95\xd0\x5d\xc9\x73\x4e\x5f\xfd\x5e\xd7\x11\xa6\x04\x29\xe7\x87\x2a\x4b\xc8\xad\xbc\x8f\x62\xee\x60\x57\xde\x63\x81\xa3\x0a\xcc\x40\x05\xeb\x2c\x12\x21\x57\x9b\x32\xc4\xe5\x0e\xd2\xae\xc6\xcd\x4e\xcf\x21\x0a\x5c\x7b\x40\x7a\x44\xa5\xd0\xaf\x8a\x5e\x44\x3a\xff\xec\x95\xa0\x3e\xe2\x74\xc1\x5a\x8d\x8c\xa5\xc1\x5a\xed\x62\x66\x08\x58\x9a\x62\x98\x0d\x2a\x6b\xc4\x0e\x1d\x7c\x0b\x4c\xd5\x95\x3a\x1b\x72\x80\x26\x26\xa6\xe9\xdb\x4d\x6c\x4d\x53\xa6\x00\x67\x54\x36\x91\x34\x0d\x11\xde\x38\xae\x9b\xc4\xbd\x8d\x95\xd1\x44\xe4\x34\x04\x6a\x53\x9f\xa0\x8b\xfb\x41\x18\x82\x63\x2a\x9d\x00\xbf\x8b\x3b\x74\x16\x61\xad\xb9\x6a\x41\x89\x65\x4c\x08\x7a\x2c\xb0\x22\x72\x51\xee\x7f\x56\x82\x33\x41\x89\xfc\xba\x49\x4a\xb3\x10\x67\x43\x6d\x97\x1c\x28\xe4\x49\xce\x90\xa4\xea\x46\xcf\x3a\x48\x2d\x06\x72\x91\xda\xe2\x89\x94\x5d\xed\x01\x2b\x0e\xdb\xd4\x84\x45\x1a\x40\xfe\x8c\x21\x32\x69\xb8\xcf\x79\x05\x7a\xe4\xbb\x44\x29\x91\x47\x5d\xdb\x1c\x53\x6c\x73\x75\xe2\x96\xe6\xf1\x5b\x10\x47\x0c\x72\x89\x79\x5c\xfd\x19\x5b\x52\xbf\x81\x71\x71\x78\x17\x27\x20\x3e\xc1\xbd\x87\xdf\x75\x98\x5b\x58\x0b\xb4\x1d\xb4\x60\x4e\x84\x06\xae\x00\x81\x40\xe3\xf0\x6c\x0f\x92\xd8\x83\x84\xfb\x94\xcb\xde\x50\x14\x84\xe8\x28\x97\x5d\x3d\xbc\x53\xca\x66\xe9\xbb\x03\xf2\x04\x2b\x36\x18\xb2\x8c\x3c\xc1\x8a\x14\x67\x02\x51\x93\xe6\x54\x2d\xa4\xa9\x9e\xc3\x25\xba\xeb\x8e\x8f\x24\x1a\x9b\xfc\xda\x17\x69\xd2\x45\x80\x73\x11\x8c\x5c\x7e\xef\x7d\xce\x80\xae\x11\x77\x79\x86\x97\xa7\xf7\x70\xc2\xbc\xdd\x60\x4e\x0a\x23\x92\x31\xe8\x41\xfa\x3e\x24\x21\x8f\xec\x41\x4f\xd7\x2a\x2c\xeb\x5a\x4d\xf1\xca\x43\xc5\x10\xd9\xe9\xb5\xb0\xd0\xd7\x41\x78\x7b\x10\xea\xe2\x20\x5a\x30\x27\xce\xf8\xbe\xc6\xe8\x14\x61\x2f\x22\x38\x0a\x53\xc6\x3a\x26\x6e\xaf\xcf\xe0\x64\xa8\x88\x64\x8d\x45\x89\x66\xde\x46\x9e\x10\x9c\xe5\x7a\x28\x64\xbb\x71\xe5\x09\x42\x72\x02\xa1\x1c\x62\x25\x6d\xb3\x1f\x7c\x88\xd8\x2d\x58\xef\x82\x15\x10\xcd\xba\xb6\x49\x84\x8f\xd0\x00\x61\x1d\x92\xa8\x40\xc5\x1e\xe4\x21\x56\x0b\x6e\xa4\xf6\x3a\x38\x27\xc0\xd2\x81\x48\x13\x87\x8c\x3e\x65\x0f\xe8\x74\x9c\x6f\x0d\xd1\xc1\xfd\xca\x0d\x20\x50\xc9\xfa\xe3\xda\x98\x48\xea\xc8\x82\x1b\xd4\xa3\x56\x0b\xe6\xa4\x56\x98\x8b\x93\x10\x89\x48\x56\x98\x48\xc8\xe6\x44\xfe\xec\x72\x32\xa8\xd2\xd5\x36\x2d\x24\x6b\xf8\x53\x88\x55\xe2\x95\x91\x3c\x24\xd2\x92\x24\x0a\x3c\x71\x08\x27\x6e\xba\xc2\xc9\x59\xe4\x4a\x29\x1c\x95\x85\xd3\xb2\xb6\xe5\x00\xb8\xfd\xc3\xc9\xf6\x1c\x52\x64\xea\x14\x3a\x13\x27\x36\x96\xaf\xd0\xa6\xb7\xc1\xae\x9c\x01\x7a\xbb\x20\xa1\x0b\x52\x9c\xa2\x87\x41\x0c\x5f\x94\x5d\xd9\xc8\x28\x1a\xe1\x6a\x23\x84\x6c\x24\x90\x8d\x63\x9f\x4a\x25\xd1\xb0\x6d\x7d\x8c\x2a\x21\x38\x11\x11\x34\x96\x4b\xd3\xbb\x1a\x8e\xa8\x8d\x09\x41\x41\x83\x88\x78\x88\x7b\x73\xc9\xfb\x41\x42\x32\x44\x03\x53\xf7\x39\x88\x14\x14\xaa\x64\x0f\xa1\x31\x64\x2c\x38\xc4\x64\x1f\x24\xd8\x87\x00\xae\xb3\x8c\x15\xc7\xa9\xcd\xf9\x94\x30\x16\xdc\xbc\x08\x94\xb4\x9f\x63\x40\x89\xdf\x62\x5c\xb0\x8b\xf4\xc9\xe3\x6a\x0e\xb8\x5b\xa9\x9e\x1b\x17\xa7\xeb\x45\x38\x79\x91\xd6\x5e\x22\xd5\x6e\x81\x18\x11\x17\x5c\xc4\x14\x17\x09\xc0\x25\x2c\xeb\x22\xa8\xbc\x44\x01\x92\x83\x41\xdb\x20\x49\x9f\x13\x14\xc7\xb5\x2e\x52\x02\xa2\x18\x83\x4c\xc6\xfa\x2e\xe7\x6c\x5f\x9d\xea\x50\x88\x3d\x11\x3e\x5c\x62\xe2\x2f\xc2\x5e\x2a\xd3\x04\x79\x35\xb5\x0d\xaa\x24\xfe\x15\xd9\xf5\xe3\x97\x3e\xe2\x08\x1f\xcf\xe1\xe1\x8e\x26\x2d\x67\x3c\xfa\xc9\xfb\xa9\xcb\x4e\x44\x2c\xc8\x13\xc9\xc6\x3b\x60\xc8\xfb\xc5\x8d\x97\xb6\xc9\x67\xef\x1a\xe9\x42\x50\x81\x54\x13\x4b\x9f\x6c\x61\x6a\xbd\x87\xa0\x18\x5c\xc4\xac\x95\x88\xa4\x12\x31\x54\x22\x8c\x12\x7e\x53\xfb\xcc\xd7\xc1\x01\xe2\x2e\x5b\xe0\x87\x05\x42\x58\x20\x87\x0d\xab\x80\x85\x9b\xd8\xb6\x49\x11\xcd\x24\x43\x58\x12\xdd\xa8\x96\x6d\x17\x68\x40\xb0\xe9\x3a\xe6\x03\xd7\xe7\x2a\xe7\xcc\xcf\x1b\xbb\x7e\x4f\x79\x9b\x2a\xe4\xf0\x84\x03\x9b\x47\x35\xe8\x8d\x9c\x70\x7f\x93\x3a\xe3\xec\x7a\x88\x2e\x37\xd1\x2c\x30\x93\xc1\x0c\x1c\xd4\x42\x8e\x4d\x64\x0b\x65\xae\x03\xf4\x1b\xdb\x5c\xdf\x81\xc1\xa3\x32\x00\x61\x3b\x41\x20\x4f\x6c\x70\xdd\xbe\x6e\x39\x33\x4e\xe3\x30\x13\xf8\x38\x27\x51\x34\x63\xae\x2f\x71\x20\x13\xef\xab\x31\x98\xc4\x3e\x0a\x9a\x11\xf5\x0b\xff\x06\xaf\x98\xd4\xab\xc7\xd5\xa3\x16\xec\x37\xec\x01\xbf\xc1\x4b\x30\x6b\x65\x12\x20\x92\xb0\x2b\x09\x2f\x94\x54\x6d\x4a\xf8\xd5\x84\x13\x4b\x2a\xb6\x26\xfc\x6d\x3e\x9c\xc9\xac\xcb\xae\x12\x93\x70\x59\xf9\x5c\xfb\x16\x86\xf0\xc1\xef\x3d\xa2\x68\x96\xcb\x86\xa7\xf7\x50\x24\x1c\x8c\x47\x01\x2d\x72\x18\x64\x21\xc9\x24\x3f\x41\x12\xc0\x98\xe4\x30\xd0\x1e\x50\x1c\xe7\xe1\x4d\x91\xcf\x20\x8b\x55\xb5\x61\x92\x9b\xd2\x5c\x8d\x4b\xbc\x71\x92\x37\x8e\xfa\x46\x9c\xdb\xb8\xeb\xc9\x22\xa8\xe3\x41\x6b\x94\x9b\x42\xb0\xd9\x38\xa8\x1b\x69\x61\xd3\x67\x9a\xe8\x20\x64\x41\xda\x0f\x66\xe3\xbb\x65\xae\xef\x71\x3c\xcc\x1e\x62\xcf\x2e\x33\x7b\xce\xf5\xa2\xd5\xbc\xa9\x47\xdf\xfc\xd2\x41\x26\x80\x64\x5e\xdb\x8b\xbc\x2f\x84\x04\xb1\x07\x46\x7a\x58\xa3\x67\xc2\x2d\x68\x0a\x1e\x8f\xbe\x8a\x24\x27\xa9\x2b\x98\x83\x4b\x7c\x18\x77\xd8\xc2\xda\x76\x0b\xa6\x1a\x7f\x0a\xd6\x6a\xc2\x80\xca\x6d\xa9\xc5\x21\x0c\xe3\x7d\xe0\xc0\x8f\x8b\x1e\x06\x62\x4c\x7e\xd7\x41\x40\x7d\x88\xaa\x3a\x88\x29\x08\x42\xd4\xa7\xde\x43\xc5\x71\xd0\x54\x97\x8f\xa4\xfa\xb8\x46\xfd\x85\x57\xc4\x3a\x56\x9b\xec\x39\xb4\xae\x11\x0e\x3a\xc2\xf9\x8c\x05\x47\x75\x4d\xe1\x22\xdc\xc8\xdb\xb5\x86\xc0\x42\xae\x14\x0e\xbf\x87\xe5\x72\x41\x86\x97\xfe\xf3\x16\x32\x4f\x44\xa6\x0f\xaf\xc1\x63\xbc\xbc\xed\x10\xa5\x03\xf2\xa1\xfe\x37\xdc\xdd\x83\xcf\x7c\xc4\xb3\xbd\x03\x22\x3a\xae\xda\x73\x71\x4d\xdf\x50\x7b\x5c\x01\x5d\xfb\xcf\x80\x88\x08\x0f\xb2\x50\xf4\x8b\x8e\x88\x02\x27\xe7\xdc\x22\xec\x66\xe1\x13\x59\x88\xe0\x16\x79\xe9\xd6\x71\xa8\x10\x41\x3c\xc4\x9a\x6f\x1c\x9e\x1b\x99\xd2\xc6\x11\xba\x59\x3d\xf1\x38\x08\x0b\x81\x73\x88\x5d\x66\xdd\x09\x56\x34\x84\x24\xda\x06\xf3\x90\x61\x85\x80\x9b\x58\x84\xe3\x20\x7b\x0c\x64\x4d\xb1\x8d\x79\x70\x0e\xb3\xde\x21\x51\x11\x92\x71\x4d\x2f\x18\x33\x72\xab\x10\x48\x11\xac\xd4\xe1\x62\xe5\xc4\x6d\x87\xab\xff\xe2\x77\x4b\xc2\x02\x32\x9c\x6d\x05\x97\x2f\x2e\x68\xf8\x7f\xb5\x20\x93\x74\x6b\xac\x02\x4a\x71\xe0\x33\x01\x3d\x20\x28\xaa\x5f\x47\xf2\x1c\x6a\x3b\xf5\x2f\x3c\x18\xee\xd3\x0a\x3b\x7e\x09\x28\x26\x5b\x83\x4b\x81\x17\xd7\xad\x70\x2e\x50\x33\x6c\x30\x66\xb0\x16\xd5\x38\x7b\x71\x7b\x22\xa3\x16\x1a\x31\x32\x61\x1b\x17\xee\xe3\x5a\xbe\x2e\x62\xba\xc2\x21\x5f\xf0\x90\x05\xef\x44\x5d\x9c\xe8\xc5\x39\xe1\x94\x1a\x46\xa5\xc8\x40\x53\x64\xaf\x29\xd8\xce\x5e\xce\x1c\x46\xae\x2f\x02\x20\x1a\x84\xdc\x20\xde\xc6\xe1\xdc\xf4\x93\xa6\x87\x34\x3d\xa1\x09\xea\x6a\x24\x90\x8d\xbf\xac\xf1\x91\x35\x41\x5a\x4d\x50\x57\x23\x78\x6c\x04\x92\x8d\xe0\xae\xf1\xb2\x35\x72\xb9\x46\x94\xd7\x84\x8d\x37\xe2\xca\x86\xe3\xea\x87\x50\xd1\xbc\x99\x0b\x95\x23\xad\x1d\xb2\xb3\x0c\x19\x2f\x0e\x59\x52\xcf\x76\x99\x53\x72\x99\x52\xf1\xf5\x90\xd1\xf7\xf0\xfc\xcf\x76\xe5\x6f\x30\x15\x48\xf2\x20\x98\x3d\x60\x75\x6c\x2b\xed\xe1\xc8\xcd\x77\xc1\x48\x20\x93\x43\x18\xd6\x41\x16\x7d\xda\x81\x32\x64\xf0\x22\xaf\xc9\x25\x80\x0f\x3b\x28\x90\x6c\x07\xe2\x91\x40\xac\x1d\x24\xf7\x0f\xd8\x78\xed\xe1\x53\x70\x14\x18\xf8\xe2\x0c\x87\xbd\xd7\x1e\x5a\x38\x34\x12\x4e\xdf\x36\x23\x77\xc0\x3f\xe1\x33\x07\x2d\xd8\x06\x6e\x0a\x91\xdd\x43\x0e\xfc\xc8\x69\xfc\xc0\xe7\x8f\xac\x54\x8f\x3b\x79\xff\x37\x77\x77\x8e\x2d\x39\xac\x23\x01\x74\x43\xcf\x10\x01\x8e\x0b\x2a\xef\x9f\xf6\x7a\xff\x7d\x70\x91\x5e\xef\xe0\x3b\x2c\x16\x53\x52\xe6\x93\x28\x12\x43\x20\xc2\xb9\x0f\x70\xe0\xb5\x70\xcd\xed\x91\x60\xdb\x80\xa4\x7d\x2c\x10\x2b\x24\xb6\xd4\xc4\x87\x5a\x7d\x0a\x70\xca\x53\x42\xd9\x4a\x74\x81\xf0\x6e\x3e\x57\x45\x2a\xca\x56\x78\xc4\x60\xe0\xd5\x57\x92\xf2\x75\xbf\x2c\x1c\x31\x9f\x4f\x06\xe1\x23\xd8\xff\xf1\xec\x3e\x79\x96\x8f\x8d\x81\x55\xb8\xc6\xd9\x36\xaf\xd5\xa5\xc4\x9a\x9e\x22\x92\x27\xe2\xa4\xc8\x57\x06\x44\x89\x61\xb5\x6c\x98\x16\x63\x13\xb3\x52\x68\x3c\xb6\x4c\x25\xc0\xd7\xd8\xb7\xa3\x52\x6d\x17\x19\x77\x65\x3b\x57\x10\x0e\xc2\x53\x98\xe1\xaf\xc6\x56\x58\xd6\x88\x4f\xb3\x8f\x31\xa2\x00\x85\x75\x17\x84\x5a\x43\xbe\x2c\x42\xc1\xca\x60\x8d\xb0\x00\xc3\x5d\x0a\x77\x32\xec\x6b\xc1\xca\xb2\x3a\x95\xe9\xc1\x86\x91\xe3\x93\xff\x4d\x2b\x79\xb2\x88\x92\x45\x94\x6c\xa7\x64\x6b\x4d\xe0\x38\x25\x7a\xd5\x67\x5d\x24\x8b\x02\x8f\xe6\xa7\x3a\x17\x5c\x6e\xb2\x04\x26\x09\x6b\x5c\x4d\x35\x52\x36\x86\x98\x0f\x26\xa7\x9c\x80\x7b\x13\xc8\x71\xe2\xdf\x45\x71\x50\x2d\x6b\x64\xe9\x8b\x23\x89\xad\xcd\xbd\xdb\x0e\x79\x5a\xf6\x49\x3a\x66\xaa\x0a\x06\x6a\x7b\x9d\x4f\x14\xe1\x31\x97\x68\xdd\x24\x7d\x9b\x6a\xc5\x9a\xd8\x0c\xb2\x93\x4b\xc6\x6a\xc9\x5d\xae\xd5\x79\x46\x80\xb5\xa5\x8a\x58\xe9\x09\x68\x73\x12\xe7\xac\xb6\xcf\xd5\xaf\xd9\x05\x6c\x52\xc7\xa7\x71\x7a\xdf\x32\x95\x4b\x99\xc8\xf3\x2d\x72\x55\xab\x63\x2f\xac\x23\xc0\xe1\xe4\x6d\x55\xdf\xb8\xd2\xe4\xaf\xa3\x49\x5b\x7f\x77\xdf\x31\xa7\xcf\x92\x31\x94\x43\x64\x3d\xee\x50\x3e\x22\x03\x0b\x96\x95\xd8\x92\xaa\x15\x41\x72\x05\x59\xbc\x2d\xa3\xb7\xe5\xfb\x88\xe5\xd7\x76\xc1\xe6\x11\x8f\xda\xe2\x3f\x6c\xf2\xed\x0e\x6f\xb1\x91\x8d\xab\x75\xbb\xcf\x7b\xf7\xf1\x1d\x11\x52\x7a\x02\x2a\xb8\x9f\xef\xad\x75\x32\x37\x4b\xf5\xc0\x0f\x1c\x51\x91\x33\xba\x30\x7a\xb3\x76\xd8\x45\x21\xce\xe3\x97\x1f\x33\x1c\xcd\x42\x1e\xd1\xc2\xa3\x20\xe6\xb0\x49\x8e\xa8\x0e\xf6\xf2\xfa\x94\x15\xe4\x0a\x4a\x67\x8e\xe2\x21\x05\x82\x75\xbc\xbe\x72\x6a\x59\xd7\x2b\x12\x75\x81\x25\xaf\x59\x74\x37\xc6\x1a\xef\xe6\x55\x70\x86\xf5\xb0\x5a\x23\x5d\x72\x4d\xac\xf5\x35\x98\x4e\xf1\x8a\x99\xf3\xbc\x05\x6f\x74\x99\xcb\x15\xf3\x51\xe0\x22\x67\x8a\xeb\x28\x9f\xf8\xf3\x93\xb3\x7e\xd9\xb6\xd0\x35\xe2\x5c\x77\x9e\xee\x4c\x76\xe9\xde\xf3\x7b\xde\x21\xe5\xa8\x3c\x0e\x8a\x23\x9f\x5f\x22\x23\x30\xbf\xd1\x42\xa3\x5f\xf7\x1b\xbe\x47\x75\x31\x69\xce\x76\x5c\xe5\xb1\x9d\x3a\x0a\xd4\x92\x08\xca\xa9\x95\x05\x28\xad\x0b\xc5\x76\xf1\xe1\x68\xb1\xee\x95\xa5\xc4\x46\xca\x6e\xe5\x22\xe5\xfb\xac\xe1\x61\x3f\x0a\x9f\x8a\x8a\x47\xa0\xf6\x0f\xc0\xea\x10\x53\x0a\xe0\xeb\xb0\x4f\x89\x96\x57\xdb\x7d\x36\x92\x28\x93\x1d\x3c\xec\xda\x80\xb7\xd5\x07\x8e\x6b\x46\x7d\x80\x38\x99\x9d\xcc\x66\x92\x43\x14\x63\x6f\x4a\x9c\xb2\x93\xda\x21\x84\x40\xd9\x0c\x38\xc9\xdb\x1a\xc1\x43\xae\x10\x73\x89\x68\x2d\x31\xab\xa5\x74\x43\x24\xb9\xec\x07\x3b\xbe\x02\x82\x03\xba\xa5\x68\x75\xc9\xa7\x2c\xcc\x9a\x4b\x94\x69\xf1\xb5\x17\x30\xfe\x52\x00\xb1\x6e\x5b\x1d\x8a\x7a\x71\x5f\x2d\x6c\x7c\x4b\x8e\x66\x3d\xe0\x7a\xf9\xa6\x0d\x18\xbe\xa3\x59\x45\x15\xc8\x2a\x0f\xda\xe2\x60\x4a\xaf\xaa\x65\x0f\x40\x43\xe1\x3a\x3d\x98\xf6\x0f\x6c\x18\xb6\xc8\x38\x50\x49\x47\x6e\xf4\xc8\xa5\x1e\xc0\x49\xf0\xd2\xba\x79\xcf\x78\x8f\xa0\x2b\xc1\x1e\xba\x9a\xd5\x1f\x06\x49\x4e\x56\x3e\x3d\x2e\x40\xdc\x45\x7b\x72\x21\xb2\xae\x6c\xef\x5d\xad\x72\x0d\x4f\x05\xe0\x29\x46\x1a\x72\xee\xf5\xa9\x9d\x1d\x7e\x49\x41\xd5\x53\xfe\xf2\x3c\xdf\xe7\x7e\x2a\xf3\xaa\x11\xad\x92\x56\xa0\xfe\xe7\x59\xcb\xbc\x57\xdb\xc7\x18\x0f\x91\x0d\x3a\xc2\x4a\x97\x5e\x0b\xec\xc1\xb0\x3d\xf8\xb4\xa7\x34\xea\x89\x77\x3d\x79\xc9\xf7\x64\x88\xe4\x7d\x3e\x19\x9f\x2f\xe4\xa7\x44\x80\x3f\xf1\xe4\x8f\x57\xfe\xc9\xcb\x7c\x3c\xd9\xcf\x1e\xf7\xf1\xd4\x3e\xd1\xef\xaf\xe3\x24\x6f\xa1\xef\x98\xf2\x44\xca\x40\x79\xd9\x03\x4e\x63\xf0\x8f\x46\xf6\x3e\x2e\xca\xa1\x1c\x73\xfc\xa4\x55\xeb\x1d\x1f\xc0\xe3\xa3\x19\xe2\x0f\x48\x3b\xa5\xdd\x71\x5a\x7b\x90\x84\xea\xeb\x9d\x17\xd8\x3c\x3a\x92\x00\xb4\x0e\x35\x21\xf3\x5e\x7d\x9f\xc2\x1d\xc5\xd6\x76\x84\xc1\xde\x6d\x1f\xa4\x59\x5c\xad\xd2\x4f\x98\xa2\xdb\xbc\xd7\x1d\x61\x78\xdd\x86\xe8\x81\x18\x82\x98\x40\x36\x8b\x47\xad\x93\x13\x26\x64\xca\x37\x29\x63\xca\x29\x22\x31\x87\x0c\x0e\xa2\x95\x29\xdb\x35\x15\x0d\x4c\x11\x09\xba\xf6\xb5\x17\x93\x34\x14\x0d\xf0\xd7\x4d\x60\xf9\x09\xd9\x35\x1b\xb2\x0d\x25\x25\x0f\x9e\x58\x0c\x53\x91\x50\xe2\xfa\xcd\xc5\xea\xc0\xf2\x9b\x80\x96\x09\x50\x99\x00\x95\x09\x80\x99\x4b\x54\x61\x59\xe1\x49\x2b\x27\x01\xf3\x04\xc6\xac\x76\x69\x8d\x88\x06\xc8\x39\x02\x72\x26\x9d\xfc\xfa\x14\xb7\x6b\xef\xb3\x32\x35\xe0\xea\xfb\xc3\xde\xaa\x00\x62\xb7\x00\xe3\x84\xa8\xf1\x64\xf7\x04\x33\x47\x1d\xb3\xb7\xfd\x11\xb8\x7e\xb3\x2e\xf6\xee\x72\x4c\x7b\xf1\xe9\xdd\xcd\x7e\xda\xf1\x04\x11\x95\x2d\xef\x43\xfc\xb8\x5a\x60\xf0\x7a\x82\xc7\x73\xa7\x6b\x90\xca\xd3\xf3\x98\x9f\x8a\xd7\x13\x71\x50\x7d\xda\xe3\xf6\xb5\xde\xb9\x44\x00\xf6\x32\xd2\xfb\x1d\x5a\x11\xfb\x94\xf7\xba\x46\x8c\x2f\xfb\x9a\x7c\x84\xbc\xdb\x95\x83\xbb\x32\x6b\x77\xf3\xfa\x77\xf7\x4f\xf7\xaf\xfd\x4e\xa6\x43\x59\xe7\xae\xbb\x47\x40\xae\xda\xe6\x66\xab\xd6\xec\xba\xaf\xd1\x35\xae\xf9\x1c\xf9\x7c\x8b\xb9\x7d\xed\xf8\x97\x0d\xf3\x58\x86\x4f\xf6\xf9\x01\xe3\x3f\x99\xe5\x87\x93\xe5\xc9\x41\x3f\x77\xf8\xe5\xaf\xdf\xd1\x00\xd9\x90\x61\xef\x3b\x76\x43\xb1\x82\x03\xc3\x73\xa3\x76\xb7\x00\x4e\x2f\xcb\x76\x7e\x91\x9f\x36\x8c\xeb\x0f\xb1\x82\x4d\x18\x92\x6a\xe9\x9d\x8b\x56\xad\xfd\xae\xe3\x06\x30\x39\x3c\xbe\xde\x13\x47\x6b\x08\x0c\x7c\xa8\x88\xaa\x44\x08\xab\x6f\xcf\xc2\xed\xcd\x47\x0e\x31\x84\x50\x6c\x17\xad\xf4\x0c\x45\x99\x74\x31\x12\x0a\x25\xb3\xd5\x00\xe4\x14\x50\x42\x29\xec\x08\x12\xdf\x21\xaa\x56\xed\xd1\xb6\xf0\x0e\xe2\x0a\xbe\x6d\x97\xc7\xc1\x1b\xc8\x66\x56\xbf\xf6\x17\x51\x88\x25\x72\xbe\xac\xae\x0b\x12\x66\x29\xe9\x5b\x62\xbf\x0b\x80\x7a\x5d\xd4\x11\xb7\x3f\xcd\x6e\x8d\x2b\x5c\x03\xb8\x5e\xb7\x0b\xdd\x10\x4b\x34\x7e\x03\xf1\x97\x1c\x62\x1c\x28\x91\x83\x4f\xf4\x84\xe8\x3a\x02\xa8\xc3\x93\x3d\x18\x82\x0f\x0e\x51\x12\xc7\x75\xe4\xd1\x7e\xc6\xb7\x7d\x07\xae\x83\x57\x6b\xc7\x39\xee\x00\xce\xbf\xb8\xf0\x54\x50\x5b\x71\xd1\x8a\x5c\x38\xa2\x0b\x09\x23\xfb\x56\x2d\x3f\xf4\x37\xe2\x2c\x04\x0c\xf2\x41\x17\x8d\xdb\x65\xdb\x88\x4a\xc5\xf3\x74\x20\xbb\x42\x96\xad\xfa\xf6\x17\x9a\xae\x4a\xcd\xe4\xe3\xe2\xd1\x28\x79\x68\xc7\x28\x64\x45\x4b\xd6\x53\xdb\xab\xd6\x1e\xe4\x78\xc4\x0c\x0f\x46\xfa\xdd\xde\x5f\x4e\x6b\x94\xeb\x37\xed\x01\x1f\x93\x7f\xa1\xf4\xa1\xfa\x9f\x3e\x4f\x13\x82\x82\xfd\xfc\x9d\xf6\x2e\xe1\x19\xc4\x63\x3f\x1c\x4c\xdf\x83\xb6\x7d\xcd\x40\x09\xf5\x2a\xa7\x4f\x81\x28\xc7\x14\xe5\x46\x7b\x80\x24\x26\x11\xc9\xe4\x10\x5b\x46\x48\x53\xfb\x0b\x0f\x71\xb7\xc2\xed\xd4\xd6\xb8\x6f\x19\xbe\x11\xbe\xab\xda\xda\x4d\xec\x68\x54\x38\x93\x3e\x5f\xf5\x49\xd6\x63\x98\x52\xc4\x4f\x3b\x34\x69\x68\x24\x7d\xd1\xa4\xe7\x97\xd4\xfe\x92\x1e\x69\xd2\xd3\x48\xaa\x7e\x49\x9b\x34\xe9\x6c\x24\xe9\xaa\x54\x0c\x51\x9b\x0f\xec\xab\x3d\xae\x29\x13\x68\x2f\x2b\x7a\xc8\xb8\x8d\x89\x15\xbb\xe6\x9f\x42\x7f\x55\x0b\xdd\x8a\x30\x80\x6f\x9b\x4a\x88\x88\x42\xd6\x91\xdd\xef\x08\x79\x23\x1f\x1e\xe6\xef\xda\xb9\x9c\x45\x5b\x23\x27\x7c\xf2\x44\xf9\x30\xed\x89\x13\xca\x65\x86\x98\x76\xab\x32\x8f\xdb\x67\x6d\x7d\x45\x51\xfc\x44\x3b\xec\x84\xaa\x55\x5c\x9b\x13\xed\x84\x52\x86\x1a\xb1\x03\xf2\x31\x0f\xaa\x00\x38\x5b\x05\xb5\x49\xce\x32\x69\x77\xa6\xf7\x34\xc9\x64\xd6\x38\xe4\x2a\x0a\x01\x68\x93\xc5\xda\x5f\xe2\x0f\x4b\xd6\x7e\x89\xae\x2f\xde\x0a\x0c\x58\x2a\x38\xa8\x63\xec\x65\x76\xcf\x46\xc6\xf2\x41\x36\xef\x95\xd6\x47\xd2\xfd\x48\x1a\x20\xd5\x47\x67\xb5\x7b\xa7\x5b\xda\xa3\xed\x11\xfe\xda\xe9\x96\x07\x67\x2f\xdb\xbc\xcb\xdd\x31\xed\xd7\xfb\x1a\x3f\x4e\xd9\x93\x5c\xc3\x96\x17\xd8\xf4\x3a\x8e\x88\xee\x61\xbd\x1c\x6f\xc7\x41\xa0\x75\x50\x56\x60\x9d\xaf\xbd\x29\x68\x54\x1b\x81\x23\x85\x46\x3e\x2c\x25\x2b\x43\x1e\x77\xf5\x40\x1a\x9f\x23\x8e\x7d\x44\xb0\xd9\x15\x87\x65\x05\xcd\x55\xad\x3d\xce\xde\x84\x8c\x01\x36\x2c\x59\xb3\x79\x57\xcb\x5c\x8f\x16\xbb\xee\xb6\xce\xba\xae\x70\x7b\xb7\xaa\x19\xf8\x20\xab\x69\xee\xe5\x73\x7f\x9e\x77\x8d\x9d\x59\xed\xd0\xda\x77\xa0\x40\xcb\x0f\xad\x56\x99\xd4\xe5\x61\xe9\x6f\x45\x54\x7b\xf3\xb6\x76\xef\x3e\x47\xa4\x9a\xcf\x75\x5a\xd2\xad\xf7\x14\x7e\x93\x3c\xb5\x88\x74\x9c\xde\x35\xa8\x80\xc9\x44\xcb\x98\xd4\x0a\xff\xac\xd8\xbd\x92\x5b\xdb\x45\x20\xad\x45\xab\x4b\x5e\x54\x67\xac\xae\xe6\x90\x9d\xdf\xf6\x9d\x8d\x6a\xe8\xd0\x1b\x39\x7c\x8d\x03\xff\x76\x28\x87\x1c\x9a\x21\x47\x3e\xf1\xf0\x4d\x0e\x4f\xe4\x28\x95\x3e\xa2\x76\xa7\x63\x7a\xf2\xc2\x17\xad\x0e\x9b\x21\x58\x0b\x71\xe5\xe5\x09\x89\x57\x6b\x75\x45\x5d\x43\xcd\xe6\xe1\x65\x7f\x74\x69\xde\x6a\x85\x26\x2b\x30\xd4\xe5\x83\x90\x7c\xe2\x00\x5f\xeb\xb1\x8b\x98\x7d\x10\xc2\xb0\xb5\xe9\xae\x56\x6b\xe5\x6c\x2b\x5d\x31\xa8\xfc\x08\x66\xf7\xc4\xf8\x5e\x7d\xd4\x2c\xbf\x96\x05\x2e\x7a\x76\xe4\x22\xa1\x5c\x06\x0b\x6d\xc0\xde\x0f\x58\xf7\xf1\x8e\x75\x8c\xf4\x3c\x8a\x0b\x6a\x1e\x49\xf1\x23\x29\x7e\x64\x20\xf3\x08\x08\x0d\x6a\x8e\xb5\x82\xb5\x16\x4d\x5a\xaf\xe8\x87\xdf\x96\xf2\xb6\x5e\x41\x64\xf9\x2b\xa6\x08\xc6\x14\x5b\x9b\xf8\x7d\xa7\x35\x6a\x8a\xb0\xcd\x96\xfe\x86\x06\x9f\x62\x71\x38\xc8\x53\x79\x7d\x2a\xc1\xcf\x09\x81\x3f\x61\xf8\x69\x5f\xe4\x8a\xa6\x12\xe9\x35\x41\x0c\x6a\xc3\x26\xb1\x12\x97\x3c\xd4\x6a\xd4\xf7\x68\x6b\x16\x32\x07\x72\x86\x36\x45\xb5\x64\xf1\xe1\x7c\x78\x46\x88\x2e\x13\x75\x53\x22\x64\x4a\xc8\xcf\x6a\xcb\xaa\xfc\xe7\x85\xae\x05\xc0\xb6\x9f\xc7\xcd\x3e\x92\x3f\x24\x28\x92\x80\x44\x92\x9a\xc8\x73\x41\xc5\x85\x09\x8f\xa2\x81\xc3\x60\x24\x65\x51\xad\x57\x1c\x30\x3c\x25\x91\x14\x88\x5c\x8c\x2a\xc0\x9b\x79\x25\xd6\xae\x74\xee\x05\x5c\xba\x92\x8d\x97\xeb\x76\x05\x41\x2f\xc9\x9f\x8b\xd8\xf0\xde\x86\xde\x48\x6a\xbd\x4e\x46\x01\x9b\x33\xba\xaf\x29\x73\xfd\x29\x4f\x6a\x91\x5e\x66\x12\xcc\x4c\xb4\xd4\xf9\xdc\xf8\xa7\x3a\xf7\x01\x1c\x3d\xdf\xfb\x18\xe3\xcf\xb2\x01\x62\x59\xad\xa0\x4b\xfd\xce\x67\xfb\x7a\xb6\xb2\x27\x18\xfc\x6c\x65\x8c\x85\xf9\x95\x4b\x37\xc9\xf9\x54\x6b\x49\x30\x7e\x98\xae\x4a\x70\xd4\x4e\x87\x94\x72\x70\xdd\xaa\xed\xbe\xd4\x0d\xf8\x39\xc7\x77\x36\x45\xfb\xd7\x69\x10\xa9\x06\x55\xf1\x24\xc3\x6b\x01\x60\xca\x01\x65\x10\x6c\xd8\x29\x24\x80\x95\x56\x35\x69\xb5\x65\x88\x91\x6d\xb8\x0d\x91\x00\xf4\xb8\x84\xd4\x2e\xd0\xd0\x55\x8b\x7e\x41\x87\xee\x6e\x87\x1e\xc8\x54\x58\xe2\x11\x2b\x7a\x80\xb4\x4f\xed\xe2\x5b\x6d\x10\x81\x9d\x2a\x05\x7b\x1d\x32\x97\xfa\xfb\x94\xaa\x10\x43\x4a\xe2\x46\x09\x08\x9f\x43\x4a\x79\x70\x2e\x07\x08\xdb\x50\x05\x8d\xaf\x24\xf1\x98\x54\xab\xea\xbb\x1d\x6b\xac\x4c\xb7\x0d\x0d\xaf\x5d\xb6\xf1\x22\x45\x2f\x85\x18\x42\xfb\x00\x44\x35\x2e\x68\xad\x7c\x07\xc3\x54\x74\x5d\xb4\x44\xc1\x04\x40\x98\x61\x33\x57\x0f\x3c\x31\x19\x4d\x9b\xd5\x24\x49\x35\x05\xf2\xe7\x6d\xf1\xa7\xe8\xf6\x79\x1d\xb5\xed\xce\x4a\x4a\x4b\xda\x2f\x41\x74\x62\x8c\xf5\x3a\xda\xc0\x05\x83\x6d\x77\x8b\x2b\xb6\x6c\xaa\x00\xe0\xd5\xb6\xc6\xbf\x11\xa1\x50\x40\x00\x24\xf8\xb9\x01\xdc\x36\xd8\x1a\x7a\xfa\x1a\xe1\x9e\x0a\xee\x62\x32\xda\x52\xe2\xdb\xbb\xb0\xcd\x4f\xdc\x0d\x79\xf0\x07\x1d\x69\xfc\x13\x4a\x37\xa2\xdf\x4a\x61\x54\xc0\xcf\x83\x2d\x08\xa1\x7c\xa2\x89\x4f\x44\xf3\xd5\xa6\x63\xbc\xb9\x36\x61\xbc\x96\x47\x71\xcf\x01\xcb\x3d\xe0\xb7\x87\x09\x0c\xc0\x92\xc2\x45\xf5\x6e\x7a\x4f\x95\x62\xec\x0e\x91\x4a\x20\x5f\xfc\x95\xc2\xed\x60\xd4\xf9\xfe\xa1\xa9\xfc\x64\x82\xbf\x7e\x11\xeb\x43\x79\x9a\x47\xf1\xe4\xc1\xf3\x3d\x3c\xed\x0f\x51\xd2\x83\x5e\x7d\xb0\xaa\xef\xbe\xda\x59\x6b\xf5\xaf\x17\x4b\xff\xab\xfd\x35\x44\x3f\xeb\x45\x99\x5f\x59\x4e\x53\x5e\xa7\x5a\x7b\xb3\xfc\x6e\xab\xc5\x51\x82\x80\xd8\xa8\x96\xa7\xd7\x28\x34\xd5\x0b\x22\xa1\x89\xfe\x2e\xd5\xf8\x51\x8d\x09\x6c\xa3\x31\xbf\xf6\xca\x3a\xef\xa8\xd8\x53\xd1\xee\xba\xb2\x89\xb7\xd5\x07\x66\xef\xbe\x5e\x3b\x38\x21\x9e\xe1\x85\xb8\xba\xb0\x56\x2f\xbe\x7e\x81\x90\x39\xfc\x5e\x91\x7e\x5d\xd0\x94\xd5\x14\x1b\xf0\xa0\x43\x35\xd1\xf8\xda\x07\x80\x7a\x99\x90\x34\xb8\xd9\x91\xf9\x54\x9f\x4d\x6f\xb7\xeb\xb8\x83\x25\x39\xc4\x94\x43\x75\x53\x88\xf2\x07\x0b\x32\x50\xae\xa5\xc8\x4b\x36\x0f\x3c\x2b\x7f\x9a\x32\xf4\x1d\xab\x0f\xd1\xab\xda\x4a\xf5\x11\xed\xa7\x44\x7b\x9d\x13\xde\x7a\x9a\x20\xb4\x1e\x6b\x67\x52\x49\x55\xbf\x6a\x79\xe1\x96\xe9\xb9\x4c\x4f\x38\xb3\x9a\xec\x5e\x0e\xd6\xe4\x80\x4c\x1d\x1d\x61\xb9\xdd\xda\xa5\xec\x40\xb0\x1a\x07\xc6\x85\xbd\x92\xc7\x4c\xa0\x8f\x90\x47\x19\x3e\x1c\x7f\xde\xf3\xc1\x56\x8a\x17\xd8\x1d\xc9\x16\xd7\x72\x6e\x2e\xd5\x0b\x4a\x76\xbd\xda\xa7\xad\x11\x16\xf3\x7b\xd0\x96\xab\x6d\x35\x33\x6a\x43\x1b\x1c\x16\xde\x31\x7f\xee\x97\x5a\xa8\x82\xd7\x2d\xe5\x41\xf5\x30\xa2\xab\x30\x40\x11\x48\x96\x50\x2e\xc4\xfc\xda\x86\x83\xb7\xa3\x48\xb2\x2c\x93\x4b\xc5\xc8\x46\x06\xb8\x51\x6f\x1f\x74\x8e\xaa\xad\xaa\xdf\x44\xd2\xe6\x89\x88\xa7\xa8\xee\x43\xc9\xfd\xd4\xa2\xbc\xce\x38\xf2\xb8\x3e\x91\x91\x21\x1b\x1a\xd9\x7e\x1a\x92\x8a\x83\xc6\x41\x1d\xd7\x44\x4a\x06\x5f\x98\x93\x2d\xab\x50\x3a\xe7\x35\xee\x85\x5e\x32\x16\x8b\xa7\xb4\x2c\x87\xcb\x15\x60\x01\x13\x0a\xb0\x9e\x97\xe7\xc2\xc7\x80\xb0\xd9\xb0\x38\xdb\x31\xe8\x62\xea\x79\xd5\xe2\x01\x77\x75\xa0\x8a\xd1\x5b\x27\xc2\xeb\x6a\x7b\xfc\x6a\x21\x51\x44\xa0\x78\xad\x57\x9c\xf4\xf2\x0a\x6e\xbf\xef\x2a\xee\x1e\xb2\x32\x2a\xb3\xf9\x7c\xef\xf3\xbd\x64\xf3\xab\xad\xa7\xcc\xbb\x7e\x7c\x4b\x15\x11\x49\x98\x38\xd9\x97\x93\x32\xd1\xfc\xd2\xf6\x5b\x77\xb8\xfa\xd5\xee\xcf\xca\xc0\x82\x3f\x9e\xfe\x91\x1d\xb9\x5f\xb7\x62\x43\x88\xc2\x4e\x73\xe0\xcb\x6a\xa8\x44\x92\x31\xad\x95\x81\x56\x5a\xf4\x13\x6f\x3c\x84\x6d\x59\xce\xe0\x8a\x92\x40\xfb\x1d\xa5\xf1\x16\xc5\xb8\xe7\xb7\x79\xf6\x86\xd9\x54\x2d\x9f\x67\xda\x4f\x56\x25\xc3\xf2\x64\x55\xc0\xde\x6c\x7d\x43\x9e\xb3\x78\x6e\xf4\x53\xf3\x66\xf1\x5a\x91\xb3\xe7\x72\x27\x69\xa6\x24\x3d\x94\x7a\x46\x36\x10\xf6\x9c\x38\xb5\xec\x42\x1e\x91\x6e\x14\xe4\x79\xde\xef\x29\x88\xf4\xa9\x94\x33\x4f\xae\x19\xf2\xac\x3c\x8f\xfd\xaa\x3a\xa5\xda\xe1\x9e\xbb\xdb\xee\x95\xca\x4c\xc2\xd0\x49\xf9\x34\xa9\x7d\x4d\xd4\xdb\x93\x7a\xc2\x94\x61\x9a\x94\x07\xab\x15\x8f\xa3\x4c\xd4\x2a\x3c\xbf\x7c\x4c\x67\x59\x3a\x8f\x22\xbf\xd2\x15\xe6\xf2\x3d\xa7\x49\xc6\x55\x33\x8e\xd9\xe4\x30\xb3\xdb\xd4\xd6\xe6\x8f\xec\x3b\xe4\xd7\x43\x24\x37\xad\x09\x33\x77\xb7\xf5\x46\xa8\x73\x58\xed\x4f\xa2\x0d\x39\x08\x43\x8e\x88\xf0\xb1\x7e\x9e\x36\x1e\x79\xf2\x4f\x25\xa7\x4a\xec\x7c\x6a\x11\x1f\x0a\x8e\x87\xfd\xfa\xc9\x86\x3e\x51\x9e\xb7\xb3\xfe\xde\x9a\x0f\xd5\x76\xbf\xfe\xde\xda\x41\x6a\xbe\xf1\x15\x7b\xf5\x90\xd3\x52\xbd\xb3\x9a\x02\xf4\xc8\x58\x58\x7b\xbf\xec\x2c\x85\x98\x08\x12\x8f\x10\xed\x9d\xe8\xfe\xe6\x45\x5d\xe8\x3e\x2c\xd1\x87\x85\x2e\x6f\x9d\xa6\x94\x69\xda\x93\x68\x4d\x31\xcf\x1a\xed\x9e\xbf\xf7\x1e\x68\x75\xd5\xc8\xb7\xfd\x5b\x55\xa9\x6f\x75\x66\x71\xf4\x1b\x54\x3b\xe9\x97\xf5\x9b\xe7\xec\x36\xe0\xd1\xbb\x85\xbb\x1a\x8c\x53\x7f\xe3\xed\x99\x6f\xbf\x6b\xac\x2d\x24\x1c\xea\xb9\x44\x64\x57\xbf\x59\xac\xbf\x69\x0c\x47\xff\xb6\x7a\xdf\x19\x2c\xb7\x8d\x02\xae\x77\x74\xba\x93\x15\x7e\x86\x17\x54\xd0\xaf\xd9\x40\x31\xdf\xac\x96\x0a\xf1\xd0\x2e\xcb\xe6\x49\xb5\x3f\x05\xa4\xd1\x45\xbe\x02\x08\xc4\x79\xea\xab\xea\xc8\xaf\xbf\x50\x40\xe0\x33\x0d\x3f\x6e\xfb\x67\x62\xf6\x06\xe5\x75\xbc\x9f\xef\x9d\x0d\xbb\xed\xdb\xd3\x7c\x84\x16\x89\x79\xfa\x53\x9b\xf0\xba\x7f\xea\xf2\x31\x3e\xbd\xda\x1b\x5f\x6d\x96\x2a\xf6\x5f\x7d\x2f\x02\xee\x97\xe3\xfd\xbd\xda\x1b\x31\x71\xbf\xf2\xcf\xf9\x1b\x90\xbc\x2f\xb3\xce\xc8\x3a\x23\xeb\x8c\xac\x33\xb2\xce\x98\x75\xc6\x1c\x7f\xb7\x0c\xee\xbb\xb6\x5e\x54\x93\xd5\xcc\x6a\x56\x35\xfb\x4f\x98\x5f\x94\xff\x62\xad\x30\xf5\xc2\x63\x8c\x0f\x3f\xd6\x37\x9a\xd1\x90\xb2\xfa\x6d\x09\x6c\xac\x81\xca\x30\x07\xd8\x18\xb9\x9b\x18\xc4\x4f\x42\x72\x33\x31\x10\x97\x43\xf3\x37\x02\x6c\x7b\xe2\x0f\x9e\x42\x0a\x73\x7e\x2d\xff\x28\x8c\x2c\xa1\xa9\x64\x5e\x91\x6c\x4d\xe4\xb6\x4d\x95\xf7\xde\xf8\x2b\xab\xf9\x8c\xef\x6f\x44\x79\x37\xd5\xc6\xdf\x88\x39\x97\x76\xff\x8d\x2e\x39\xfd\xc6\x7d\xfa\xa9\x9d\xda\xe5\xf8\xef\x6f\xaf\xba\x37\x9b\x5a\xc5\xc0\x66\x3b\x38\xeb\xd5\x4e\x6d\x8f\x6c\xed\xd1\x5e\x6d\x5d\xb3\x16\x82\xc1\x6b\x18\xbc\x86\xc1\xa7\xa8\xd6\xb9\xdb\xb9\xdb\xb9\xdb\xb9\xdb\xb9\xdb\xb9\xc7\xb9\xc7\xb9\xc7\xb9\xc7\xb9\xc7\xb9\xc7\xb9\xc7\xb9\xc7\xb9\xc7\xb9\xc7\xb9\xd7\xb9\xd7\xb9\xd7\xb9\xd7\xb9\xd7\xb9\xd7\xb9\xd7\xb9\xd7\xb9\xd7\xb9\xee\x43\x3e\xe7\x3e\xe7\x3e\xe7\xba\x33\xe9\xce\xa4\x3b\x53\x1b\x7f\xb5\xce\x7d\xce\x7d\x75\x6e\x3d\x9f\x6a\x87\xd6\xdd\xfe\x52\x3b\xb5\xee\xfc\xb7\xb5\x47\x7b\xb5\xce\xf5\xa4\xe6\x70\xee\x70\xee\x70\xee\x70\xee\x70\xee\x70\xee\x70\xee\x70\xee\x70\x6e\x38\x37\x9c\x1b\xce\x0d\xe7\x86\x73\xc3\xb9\xe1\x5c\x33\x6b\x86\x73\xc3\xb9\xe9\xdc\x74\x6e\x3a\x37\x9d\x9b\xce\xcd\x9e\x2d\x8e\x5c\x8e\x5c\x8e\x5c\x8e\x34\x13\xa6\x99\x30\xcd\x84\x69\x26\x4c\x33\x61\x9a\x09\xd3\x4c\x98\x66\xc2\x34\x13\xa6\x99\x30\xcd\x84\x69\x26\x4c\x33\x61\x9a\x09\xd3\x4c\x98\x66\xc2\x34\x13\xa6\x99\x30\xcd\x84\x69\x26\x4c\x33\x61\x9a\x09\xd3\x4c\x98\x66\xc2\x34\x13\xa6\x99\x30\xcd\x84\x69\x26\x4c\x33\x61\x9a\x09\xd3\x4c\x98\x66\xc2\x34\x13\xa6\x99\x30\xcd\x84\x69\x26\x4c\x33\x61\x9a\x09\xd3\x4c\x98\x66\xc2\x34\x13\xa6\x99\x30\xcd\x84\x69\x26\x4c\x33\x61\x9a\x09\xd3\x4c\x58\x66\xc2\x32\x13\x96\x99\xb0\xcc\x84\x65\x26\x2c\x33\x61\x99\x09\xcb\x4c\x58\x66\xc2\x32\x13\x56\xbf\xb3\x66\xc2\x32\x13\x96\x99\xb0\xcc\x84\x65\x26\x2c\x33\x61\x99\x09\xcb\x4c\x58\x66\xc2\x32\x13\x96\x99\xb0\xcc\x84\x65\x26\x2c\x33\x61\x99\x09\xcb\x4c\x58\x66\xc2\x32\x13\x96\x99\xb0\xcc\x84\x65\x26\x2c\x33\x61\x99\x09\xab\x66\xc2\x37\xbf\x3f\xb2\x5d\xe3\xab\x65\xe4\x9b\x59\x8d\x0f\xd6\xdf\xa8\xed\x84\x42\x07\x51\x0e\xfa\x1c\xa4\x3a\xc8\x49\x52\x99\x1c\x5f\xcd\x98\xaf\x26\xcc\x57\xf3\xa5\xb6\x03\x2c\xd2\x94\x25\xc7\x57\x73\xe5\xab\xa9\xf2\xd5\x4c\xf9\x6a\xa2\x7c\x35\x4f\xbe\x9a\x26\x5f\xcd\x92\xaf\x26\xc9\x57\x73\xe4\xab\x29\xf2\xd5\x0c\xf9\x6a\x82\x7c\x35\x3f\xbe\x9a\x1e\x5f\xcd\x8e\xaf\x26\xc7\x57\x73\xe3\xab\xa9\xf1\xd5\xcc\xf8\x6a\x62\x8c\xcf\x7f\xeb\xb4\x9a\x1b\xb5\x74\x8e\xaf\x66\x46\xf9\x96\x74\x0a\x08\x17\x60\xd3\x1b\xe5\x47\x8c\x32\x2d\x47\xd9\x49\xe3\xab\x19\x51\x96\xe3\xf8\x6a\x3e\x7c\x35\x1d\xbe\x9a\x0d\x5f\x4d\x86\xaf\xe6\xc2\x57\x53\xe1\xab\x99\x50\xcb\xf1\xf8\x6a\x1e\x94\xd7\x3d\x6a\x3f\x18\xa3\x26\xc1\xf8\xf2\xef\x96\xa5\x21\x25\x87\x26\x6c\x08\x43\x8d\x1c\x2d\x58\xed\x3e\xe4\x68\x95\xf9\xb2\x25\xc6\x59\xe2\xe0\x3c\xdf\xaf\xc3\x5d\xe5\xf9\x8e\x0d\xea\xf8\x3f\xff\xfb\x9f\xff\xfc\x37\x34\x1b\x98\xaf\xda\xfb\xb7\x89\x1e\x6e\x72\x8a\x23\xca\x30\xbe\xb5\x04\xdc\xdf\x5b\x3c\xbd\x83\x35\xf5\xc6\xfb\xba\xbd\xd5\xd6\x5b\x33\xca\x99\x19\x18\xca\x06\x66\xb1\x81\xa1\x6c\x60\x2e\x1b\x4a\x8a\x07\x96\xb1\xa1\x6c\x65\x8c\x72\x99\xaa\xed\xbe\x23\xa7\xab\x2d\x57\x5b\xfa\xdb\x75\xb6\x4f\x8f\xfe\x31\x7e\x1d\x73\x5d\xe1\xba\xc2\x33\xf2\x8c\x58\x0d\xbe\x2f\xff\xdf\x9f\x3a\xf3\xaf\xec\xcc\xfd\xd5\xbf\xfb\x0f\x32\x06\x22\x1b\x9e\xf3\x6f\xaf\xef\x0f\xdb\xc3\x07\x31\xf5\x7d\x2d\xc1\xd1\x6a\xff\xb4\xc5\x6c\x75\xef\xd5\xec\x6e\x72\xca\xef\x6b\x05\xda\xf6\x92\xeb\x1a\x13\x49\x6a\xe2\x40\x98\x16\xf1\x87\xcb\x42\xf5\x77\xf5\x99\x2b\xf4\xc9\x31\xe7\x7c\x10\xe9\x6a\x21\x03\xcb\x50\x19\x2d\x1d\xc5\x69\x43\x65\x33\x54\xa8\xa4\x76\xe4\x46\x38\xb5\xc9\x7a\x5b\x59\xfa\x47\xc2\xda\xd8\x27\x88\x6b\x38\xa5\xb3\xf9\x5e\xb8\x11\x3e\x15\x6d\x84\x87\xe2\x13\x95\xf9\x88\x21\xc0\xd1\x85\xea\xf8\x36\x47\xaa\x45\x02\xcd\x4c\xf2\x6a\x0c\x92\x58\xb2\xa5\xd5\xfa\xf6\x6e\x21\xed\x91\xf8\xe6\xec\xdf\xa3\x02\x11\xc2\x2a\x7d\x7b\xe2\x03\x81\x74\xad\x1d\x53\xf6\x1f\xa7\x84\xaa\xc3\x85\x18\x4f\x90\xb1\x7e\x2d\x4d\x66\x7e\xe4\x91\xcd\x81\x6f\x97\x35\x8b\x47\xad\xf4\x65\xfb\x94\xa7\x95\x93\x9b\x59\x88\x74\x0c\x42\x3e\xcc\x54\x1f\x16\x88\x4f\x1e\x1f\x76\x22\x20\xa5\x03\x1b\x40\x7c\xd0\x65\x1f\x06\x12\x38\x8a\xf8\xb0\x43\x7c\x14\xb6\x3f\xbc\x1c\x1f\xe2\xb7\x0f\x1a\xed\x8b\xbe\x63\x94\xe4\xf1\x18\xa8\x0b\x8b\x81\x04\x57\x90\xb7\x5a\x55\x15\xd8\x45\xd4\x11\x8c\x68\x9d\x5e\xe4\xd3\xa2\x1d\x03\x26\x2d\x98\xa0\x90\xcc\x21\x1f\x5d\xad\x7b\xeb\x0e\xcb\x7f\x05\x92\x3f\xaa\xfe\xd5\xa7\x49\xeb\x6e\x8b\x8b\xa8\xa8\xaa\xbe\x9a\x08\xb4\xd3\x04\xb9\x10\xc9\x97\x2d\x47\x7e\x84\x28\x8a\xaa\x52\xa4\x9b\x65\x0b\xb5\x36\x6c\x13\xdd\xc1\x10\xaa\xa3\x14\xe6\x9e\xb3\x35\xcc\xbb\xba\xa1\xab\x32\x49\xa1\xc9\x70\x2d\x19\xae\x65\xb6\x2c\x3c\x24\x4b\xb8\x9c\x5f\x5e\xfb\x60\x1f\x89\x14\xf9\xf4\x31\xc8\x80\x11\xfa\xaa\x0d\xd9\x9e\x8e\x9c\x6c\xc8\xc6\x86\xcc\x6c\xc8\xc9\xd6\xa7\xd4\xc2\xf1\x72\xcc\x56\x0d\x3d\x3d\x07\x28\x7b\xcb\xdc\xa9\x7c\x39\x70\x92\x32\xa4\x35\xae\x95\xe3\x23\x51\x72\x9b\x17\x42\x9d\xe9\x53\x75\xf8\xb2\x09\x68\x65\xe8\x78\x87\x34\xa2\x73\x64\x93\xa1\xb6\xfe\x64\xeb\x30\xf1\xa1\x71\x25\x25\x94\x4e\x76\x4e\x5c\x64\x91\x9a\x7a\x9e\xaf\xf5\x21\x07\x22\xf9\xd1\x04\xf3\xa8\xe5\xc5\x75\x78\xea\x2a\x31\xab\xed\x11\x2a\x8e\xf6\x13\x95\x11\xfc\xdd\xf8\xa0\x22\x3f\xef\xd1\x97\x3d\x1b\x39\x29\xb8\x38\xc4\x47\xeb\x2c\xf3\xd0\xfb\x98\x3d\xf7\xac\x0f\x6a\x69\x3f\xf8\x93\xaf\xc5\x8e\x50\x1b\x7e\x28\x7b\xc5\x50\xab\x0d\x6d\xcd\x3d\x19\xd8\x01\x1f\x32\x70\xeb\x0d\xa9\x91\x91\x28\xd8\xb3\x45\x81\x50\x45\x42\x83\x0c\x19\xcc\xb1\xd0\xae\xa3\xfd\x1b\x66\xd7\x50\x59\x83\xc2\xb6\x3e\x75\xbc\x48\xb3\x8a\xe0\x01\x3f\x89\x5b\xac\x3e\x9d\xda\xcf\xb9\xe2\x49\x10\xb9\xd1\x14\xec\xb2\xc0\x09\x47\x44\x86\x2f\xc4\x3c\x64\x1e\xab\x35\xee\xf8\xd3\xd5\xcd\x3e\x55\x65\x13\xc8\x11\xe3\xf5\x3b\x02\x97\xfb\xa2\x47\xb4\xe1\x48\x48\x5a\xb5\xc3\x54\x49\x23\xe9\xd2\x27\x52\x67\xf2\x0b\xd5\x7a\x3b\x54\x18\xa9\x0b\x46\x46\x5b\x7d\xab\x56\xbf\x47\xaf\x47\xac\x66\x68\x29\x25\x93\xf2\xb4\x54\xa2\x77\x44\x9a\x6a\x4a\x50\x41\x56\x54\xab\x62\x48\xfd\x8e\x35\x76\x62\xde\x9b\xd6\x01\x11\xca\xda\x3d\xbb\xf6\x99\x2a\xb2\xea\xe6\xd5\x6a\xc9\xa8\x28\x57\x0b\x26\xca\x8f\xab\x40\xc1\x17\x51\x76\x3e\xa5\x65\x49\x32\x52\x00\xb8\x23\xea\x18\xe7\xee\x1e\xa1\xc3\x8c\x22\x1d\x25\xe7\x52\x47\x83\x92\x36\x70\x44\x94\x45\x4a\x9d\x18\xc2\x2a\xa0\xa4\xf0\x2e\x52\x0e\x0b\x8a\xf1\xd5\x3a\xa6\xd5\x92\x39\xbc\xd6\xcc\x15\xad\xa8\x3c\xfa\x78\x7a\xcb\x5f\xab\x1c\xab\x92\x26\x92\xa3\xe6\x65\xab\x0b\xdb\xf8\xa3\xe4\x67\x43\x06\xb6\x5a\x6a\xc3\x38\x1e\x71\x24\x6e\xfa\xd2\xdb\x3d\xd9\x24\x2c\x37\x5d\xd3\xad\x9a\x78\x13\x10\x38\x9b\x3e\xff\x6e\xd9\xc1\x9f\x9e\x7f\xeb\xff\xdb\x1d\xa0\xb3\x48\x51\x1d\x3b\xe3\x11\xbd\x3e\x62\x4e\x07\x63\xcc\x11\x8f\x3c\xb7\x77\x16\x69\x42\xb4\xdf\x07\x0a\x5a\xfa\xb6\xc6\x5d\x41\x8d\xb6\x0a\xa9\xa3\x12\xea\x98\x87\x17\x2e\xfa\x0a\x14\x3c\xef\xf2\x43\x66\xff\x54\x00\x3d\x3a\xcc\xcf\x6a\x0c\xe5\x5e\xad\x4a\x1f\x95\xce\x56\xe6\x47\x72\xe1\x2d\x78\x00\x6f\xd6\x5b\x4d\x6b\xad\xca\xe6\xfb\xe9\xfa\x92\x9d\xf9\x9a\x57\xb0\x95\x7b\x65\xde\x5b\xf9\x1f\x36\x09\x4f\x8b\x3d\xa2\x5a\xda\x75\x2d\x3c\xf2\x6b\xad\x69\x50\x43\x78\xe1\xec\xce\xd5\xd2\xab\x83\x2f\xc2\x72\x96\xf3\x27\xcd\x81\xee\x57\xe4\x5b\x02\xf2\x88\x02\x1e\x41\x2a\x55\xed\xd5\x8a\x20\xe2\xaf\xf8\x5a\xb7\x1f\x16\x05\x73\xc5\x95\x61\xbf\xad\x46\xfb\x59\xb5\xa8\x1c\x7f\xde\xeb\x4f\x52\xf6\x33\xf3\x3f\xa8\x8f\x0f\x7f\x11\x29\xc3\xa0\x5d\x1c\x1f\x1a\xf8\x8f\x9d\x43\xdc\x30\x64\xb7\xea\x3a\xad\xcc\xdf\x7d\x57\xf3\x2d\x42\x37\x04\x10\xeb\x5c\xe3\xb7\x8f\x71\xcd\xdb\x3a\xff\x46\x20\xff\x3d\x23\x6c\x8d\xd5\x52\xe3\xc7\x23\xf1\xa2\x5b\xd6\x0e\x71\x09\x72\x46\x1c\xac\xe0\x02\x05\xb7\x2b\x86\x7d\x10\xd3\x4e\xb5\x76\x76\x3b\x3e\x1c\xfe\xc8\x56\xac\x55\x2f\x80\xe1\x73\x20\x0c\x56\xe5\x5d\x7d\x0a\xb4\xd6\x43\x76\xd1\xc0\x15\x36\xb0\x63\xa9\xfb\xae\xf1\xd6\xdb\xef\x11\x9f\xce\x1e\xd7\xb2\x31\xbc\x05\x03\xf6\x6f\xec\x56\xbe\x15\xd4\x6a\x2e\x32\x5c\x58\xb0\xd3\x21\xe0\x12\x82\x2c\x21\x10\x13\x42\x33\x21\xf8\x12\x02\x31\x21\xd4\x12\x82\x26\x21\xf8\x12\xc2\x2b\x21\x28\x13\x82\x32\x21\x0c\x14\x02\x3d\x21\xe0\x12\xa8\xc1\x23\x90\xd7\x86\x9a\xca\x50\x71\x10\xef\xb5\xd2\xbe\xfe\x6e\x45\xfd\xd6\xe1\xb7\x1a\xab\x1e\x55\x1d\x10\x58\x38\x02\x43\x54\x34\x03\x9b\x5a\xc2\x50\x45\x18\xf8\xb5\x28\x35\x56\x5f\x05\x68\x57\x43\xc0\x8e\x5a\x0d\x28\x3f\x07\x51\x9d\x6a\x5b\x21\x9f\x90\xda\xe8\xb6\x15\xf5\x7b\x9c\xe8\xad\x23\x59\x08\xc9\x9e\x4c\xb6\x25\xa2\xf1\xea\x1b\x6f\x1d\xfe\xd1\x2b\xbc\x56\xde\xa3\x91\xae\x87\x65\xcb\x1a\x99\x32\x1e\x53\xbe\x6b\x7e\xb7\x95\xf3\x5b\x4b\x1f\x27\x1b\x1e\x8c\x6c\x61\x5c\xbb\x00\x76\x85\x39\xdb\xca\xfa\xad\xe1\xd6\x76\x7b\x01\x92\xe9\xb9\x47\xcb\xe3\xea\xa3\x07\xb6\x4a\xcc\xdd\x3b\x82\x3a\x50\x12\x2e\x93\x1c\xc1\xc4\x38\x37\xcd\x93\xe9\x3e\x4c\x88\xd3\x69\x9d\x99\xf6\xb8\x89\x3f\x6d\xaa\x68\x98\x6a\x1f\xd4\xb3\x57\xdb\x22\xbc\x76\x87\xaf\x51\xb5\x76\x07\x11\x7a\x36\xf3\x62\x9f\x2c\x76\x94\x6c\x67\xf5\x5b\xd3\x5e\x0b\x91\x85\x4b\x64\x99\x75\x8b\x4d\xb2\x58\x17\x22\xdf\x35\x42\x5c\xa2\x39\x34\xd8\x7b\x5f\x4b\xdf\x06\xe1\xb5\xaf\xb5\xee\x5b\x09\xff\x33\xae\x25\x04\xc1\x27\x12\xd7\xaf\x56\xdf\x75\x78\x58\x5b\xcd\xc5\x16\xe0\xdd\x3c\x82\x6d\x65\xd8\xab\x77\x19\xb5\xa8\x4b\x05\x0a\x79\x8d\x4d\xc8\x51\x06\x2f\x36\x06\x89\x8d\x6d\x6c\xab\x00\xdd\x50\xbb\x7b\xb5\xd8\xae\x5f\x85\xd4\x79\xb3\x7e\xc5\xef\xab\xef\xca\x76\x34\x92\x2c\x72\x4d\x75\xae\xe3\x5b\x2a\x97\xac\xed\x6c\x71\x36\x78\x33\xd5\x9d\xc7\x93\x3d\x98\x12\x8f\xdc\xda\xb9\x3f\x71\x36\xfb\x91\x2c\x28\xe4\xed\x81\x5b\x06\x3e\x88\x83\xe9\xe5\xdc\x16\xd5\x6d\x01\x5c\xf5\xad\x70\x71\x07\x9b\xcd\x21\x6e\x0b\xc4\x10\xb2\xc4\x71\xb0\xc1\x00\x34\xd4\x75\x9c\x8b\xbf\xee\xf4\xb7\x7c\x76\xc9\xd3\x5a\xfa\x8e\x9c\x2d\x9b\xeb\x9a\xbd\x3f\xce\x56\xe0\x77\xfd\xde\x19\x57\xff\xe6\xfe\x0d\x64\x73\xa3\x15\xef\x09\xbb\x61\x15\xc6\x2b\x78\xa1\xb2\xaf\x9d\xf4\xa2\xaf\x06\x5a\xaa\x91\x56\xce\xef\x4f\x93\xa8\xae\x9d\x11\x8c\xc6\x6a\xf3\xac\x42\x6a\xc1\xaa\xcf\x6e\x7f\xdd\xe2\x8b\xc3\xf2\x61\x45\x7a\xf9\x48\xee\x3a\xc6\xfb\xf2\x70\x06\xbe\xdd\xb2\x12\x2d\x28\xe1\x6a\x56\xd4\x47\x04\xe9\x99\x87\xef\xb5\xe4\xee\x68\x2d\xfd\xde\x79\x3b\x27\x49\x0e\x4e\x55\xac\x7a\xc0\x0f\x8a\x8c\x12\x7b\xd2\x5d\xaf\x91\xd6\xd2\xc7\xea\xe6\x5c\x59\xdc\xef\xb8\x9a\x6c\x92\x4c\x51\xda\x41\x6a\xd7\xc6\x07\x72\x40\x7f\x64\x87\x30\x57\x8c\x09\xb9\x70\x1b\x99\xfc\x7a\x67\xef\xdd\x5c\xab\x2e\x55\xc6\x38\x54\xeb\x84\x0a\x8e\x90\x5b\x4e\x39\xae\xb4\xe7\x12\xa5\xcc\xf4\x3b\x93\xdf\x91\x3c\x8e\xc4\x67\x42\x0a\xbc\x8e\x6c\xb5\xfc\x16\x25\xb3\xef\xe3\xb0\x05\xb8\x21\x1d\x5e\xc7\x18\x99\x7d\x3c\xa5\xfd\xd3\x5a\xfa\xda\xd3\x57\xeb\xef\x6d\x15\x7d\x68\x61\x28\x09\x36\xc6\xfc\xf1\xc7\x4a\x7f\x5c\xf9\x58\x48\x8d\x0d\xb8\xb6\x31\x1e\x6f\xf0\xb5\xed\x2f\xdd\xb7\xad\x8b\xc9\xa2\x90\x27\x77\xaf\xf0\xdb\x54\xcb\xa2\x00\x8f\xf3\x57\xe0\xab\x49\xdc\x32\x79\x7f\xd2\xa9\x3c\x74\x58\x95\xaf\x3d\xac\xd9\x92\xad\x98\x10\xf8\x95\xdf\x6c\x59\xd7\x6c\x55\x7c\xb2\xab\x98\x10\xd0\xc9\xcb\xd6\xd6\x88\xb6\x05\x57\xc5\x0d\x08\x54\x7e\xaa\xed\x3e\xbc\x9a\x24\x92\x43\x58\x34\xc4\x40\xcb\x12\x98\x5a\x51\x11\xd4\xfe\xac\x8e\x81\x39\x67\x98\xd5\xf8\x5e\xaa\xb5\x5f\xf3\xb0\x88\x43\x0e\xeb\xc0\xd8\x2d\x8e\xda\x96\x40\xeb\x07\xb7\x9d\x70\x5b\x03\x9f\x5c\x2a\x36\x54\x7e\xc7\xe0\x71\x0c\x51\x91\x41\xea\x70\xe0\x26\x55\x25\x5d\x23\xdd\xef\x71\xe7\xb6\x75\x81\x98\x9f\x8d\x1d\x9d\xe4\xe2\x65\x87\x7b\x22\xc9\x11\x12\x15\x21\x15\x11\x92\x13\x21\x99\x11\x52\x17\x21\xed\x11\x12\x18\x75\x56\x7f\xea\xdc\xae\x5b\xb4\x9b\xb3\x9f\xe3\xb6\xc8\xaa\x7d\x13\x47\x41\xf2\x40\x93\xe0\x64\xf2\x43\x49\xf0\x05\x79\xbd\x6a\x1d\xaf\x9e\x11\x83\x56\x76\xc4\x4c\xf5\x47\x8a\x54\x24\x3e\x84\x14\xb3\x4a\x32\xeb\xa4\xfc\x82\xac\x5f\x1d\xa3\x8d\x6e\xc5\xa0\x48\xbf\xee\xde\xa9\x61\x9a\xf8\x08\xd9\x28\x27\xf5\x2f\xc9\x53\x48\x56\x7d\x62\x3c\xc8\x23\x5a\xc5\x3b\x48\xde\x44\x36\x24\x91\xc8\x6d\xf2\x05\x12\x8b\x14\x56\xe7\x6a\xd9\x09\xab\xcf\x72\xfd\xd3\x82\xae\x72\xfb\x7c\x37\x11\xad\xc9\xf7\x99\xfc\xa0\xc9\x33\x9a\xa3\xfd\x41\xde\x1f\x5f\x6c\x8a\x38\xcd\x68\xf9\x2c\x3b\xbb\xe8\x13\x3c\x4b\x3d\xa8\xb6\x22\x5a\x64\x9f\x85\x20\x86\xc3\xb6\x9c\x8d\xbe\xd9\x2d\xa0\xcf\x13\x64\x31\x4e\x7c\x62\x2a\xc1\x43\x55\x78\x1d\xd9\xd2\xaf\xac\x82\xd9\x47\xb6\x74\x7e\xdb\x1e\x3d\xde\x82\xb1\xda\xd3\x12\xfc\x2d\xf1\xca\x4e\x20\x09\x85\x95\x97\x98\x49\x90\x2b\x89\x05\x7c\xb9\xec\xc2\x04\x00\x63\x41\x5c\x2f\xde\x3d\x61\x93\x6a\x49\xb9\x66\xb7\x2d\xac\xaf\x65\x39\x88\xd2\x10\x12\x0c\xd2\x28\x21\xe5\x59\xd7\x69\x89\x57\xa8\x01\x96\x80\xb9\xb1\xb1\xab\x6d\xd1\x8c\xad\xa6\x72\x8b\x9d\x6e\x51\x8e\xad\x3e\x68\x0f\x12\xf9\x3c\xdf\x8d\x91\x6c\xfb\xfd\x7b\x9c\x1e\x67\x81\x60\x79\x15\x71\xdd\xa3\xad\x08\xcc\x15\xd9\xf6\x00\x3f\x74\xb7\x15\xb1\x59\x17\xab\x65\xf1\xbb\xdf\x52\xae\x2c\x8d\xdf\xf1\x8e\xa4\x1d\x20\x1e\x82\xb9\x3a\xb6\x18\xec\x5e\x6d\x7b\xcc\x96\xd4\x37\xee\xaf\x60\xdb\x6f\x16\x02\xc6\xc2\x3a\x92\x04\xbf\xbf\x88\xb8\xdf\x26\x79\xba\xd9\x7e\x5b\x5d\xea\x16\x99\xd9\xbb\x2d\x99\x16\x8c\x85\xb1\x22\x15\xb8\xd9\x96\x5b\xd5\xea\x66\x43\x62\x41\xac\x23\xfb\xdb\xfb\x2c\xd2\xb2\x6d\x05\x35\x3f\xad\x48\x1a\xb6\xb7\x83\xed\xed\xf8\xde\xe3\x57\x1d\xdf\xab\x96\x3c\xce\x6e\x15\x83\xdb\x42\xfc\x84\x61\x59\x26\xaf\xa5\xff\xb3\xe5\xfb\x8d\x63\xfc\x50\xbb\x7a\xc8\x8c\x9c\xfb\x93\xf5\x77\x8c\x6b\x92\xf0\x3d\xfc\x85\x83\xe7\xed\x78\xe2\x07\x6b\xf1\x79\xa0\xbd\xfc\x8b\xf3\x58\x2f\xcd\xc7\x8b\xf3\xf9\x88\x88\x1e\x0c\xc9\xe7\x89\x06\x88\x42\x1c\x31\xa2\xf3\x66\x8f\xf4\x95\xbb\xef\x6a\x6d\xbd\xa8\xb4\x62\x59\x5d\xf5\x05\x10\x40\xd5\x5e\xe3\xe9\x18\xe3\x70\x4c\xea\xc8\xa0\xed\xe2\xb1\x72\x1f\xab\xf8\xa9\x0e\x7b\xd1\xcc\x1e\x24\xad\xa2\xed\x16\x1c\xb6\xb3\x55\x0c\x46\xf7\xc9\x61\x89\x63\xab\x92\x7b\xf0\x23\xcf\x7e\xf4\xcc\x8a\xe7\x1d\x84\x36\x0a\x12\x91\xd5\xaf\xe3\xc9\xce\x3c\xf6\xfc\xe3\x2f\x3c\x4f\x5f\xb5\x60\x40\x84\x55\xfb\xb4\x7d\x56\x8f\x93\xc6\x8d\xbe\x1a\xf4\x25\x3e\x5e\x52\x30\x8d\x5d\x82\xdc\xa9\x16\x3b\x2e\x86\x34\xb5\xab\x30\xa7\xb5\x78\xab\xf6\x02\x47\x81\x2e\xfc\x58\x11\x1f\x4e\x2a\xa0\x91\xb2\x8b\x70\xe7\xaa\xe7\xb2\x47\x37\xbc\xe4\x83\x8b\xfc\x0e\x59\xad\xd3\xb5\x60\xea\x8e\xe9\x02\xe0\x2f\xaa\xb6\xfb\x6c\x27\xdf\xa8\x0a\xe6\x53\x79\x24\x79\x99\x12\x97\x29\x87\x99\x3c\xf4\x94\xf7\xcc\x81\xd9\x6c\x60\xe4\x18\xa3\x79\xd8\xba\x62\xe2\xb6\x8c\xad\x5a\x89\xd5\x32\xb6\x90\xa4\x57\xdf\x59\x57\xa5\x18\x68\xef\x80\x90\x1a\xb7\x51\x3c\x38\xd6\x60\x8e\xa4\x8e\xaa\x25\xa5\xf5\x81\x59\x7f\x98\x6c\x49\x6f\xed\xae\x41\x56\x53\x46\x53\x20\x1a\x85\x0a\x1b\x18\x18\x89\x83\x9d\xc3\x9f\xcd\x50\x8f\x16\xaa\x87\x78\xc4\x35\x82\x1b\x6d\xf7\x08\x46\x5c\x50\x6f\xf0\xfd\x80\x2f\xe3\x41\x27\xff\xba\xfa\x6c\xc2\xcd\x1a\x3c\xfd\xa9\xeb\xbf\x3e\x06\x56\x0e\x57\x49\xfe\x22\x3f\xec\x3a\xec\xb5\x18\xe6\x31\x23\x95\xa5\x41\x54\x96\x25\xb9\xb0\x9f\xcd\x9f\xcc\xac\x63\x54\x9c\xcd\xee\x47\x8f\x90\xa2\x15\x0f\x07\x31\xc2\x12\x59\xd7\xb9\xae\x30\x8c\x38\x86\xc8\x2d\xd4\x58\x12\x65\x22\xce\x53\xc7\x18\x8f\xfe\x5e\x12\x5b\x2a\xd1\x54\x22\x13\x81\x2c\x1b\x12\x42\x13\x60\x1d\xfa\x6f\x3e\x23\x58\x68\xa6\x78\xd7\x8a\x46\xff\x61\x9a\x6d\x56\x58\x15\x73\xfb\xea\x5f\xda\x04\x20\xdd\xbb\xa1\xde\x6a\xae\xb1\x29\x56\xab\xaf\x6e\x8b\x84\x32\x86\xc6\xc4\xc7\x98\xf8\x18\xab\x9d\xe4\x5e\xc1\xa8\x60\x36\xa7\x5a\x2a\x58\x5a\xe9\xcf\x6a\xd3\x48\x8f\x93\x5a\x6d\x8b\x91\x74\xaa\x7a\xa2\x6f\xb6\xd4\xaa\xec\x9e\x88\xee\x87\x59\xc8\x5b\x13\xde\xa0\xf8\xf0\x53\x7d\x2b\x5b\xfc\x9f\x75\x2a\x5a\x45\x00\xf3\xc3\x2e\xf5\xf1\x46\x3f\xd5\x49\x44\xea\xea\x78\xe3\xec\xdb\xd5\x36\xb0\x28\x16\xdf\xea\xe3\x57\xe2\x24\x0c\x35\xfe\xd5\xca\x55\x65\x8f\x00\x41\x75\x74\x0b\xfb\x3d\x4c\xb7\x54\x7d\xc8\xb7\x87\x84\x7b\xc8\xd6\x87\x6c\x7b\x8c\xd1\xa2\x55\xe2\x60\xec\x90\x41\xa0\x7e\xc8\xc8\xa8\x39\x8a\x71\xda\x5e\xad\xbf\x65\x60\x97\x1a\xf2\x32\xa3\xab\x8c\x59\x4d\x83\x05\x35\xd8\x63\x43\x1d\xb1\xba\xa4\x1a\xe9\xb3\xb4\xc7\x35\x97\xfe\x62\xf1\xca\x47\x88\xbd\xa8\x69\xaa\xe3\xfb\x1b\x65\xd0\x44\x8d\xe4\x64\x01\x50\x22\xc8\x13\x81\x95\x04\xb8\x49\x00\xc1\x04\x08\x4b\x80\xbf\x04\x28\x4c\x00\xca\x04\xe8\x4c\x80\xc2\x04\x80\x4b\x00\xac\x04\x00\x4d\x80\xc5\x94\x7d\x8b\x6d\x95\xa5\xc7\xfe\x4f\x51\xc1\xc4\xd5\x49\xa3\xa4\x46\xd8\xab\xab\x3f\x65\xb5\xb2\x0f\x71\xa0\x25\x16\x50\xd9\xa5\xb2\x51\xc5\xaf\x6a\x26\xf0\xc8\x22\xd9\x12\x69\xad\xce\xcd\x1e\x3e\x2d\x5a\xa5\x86\x5a\xe4\x39\x71\x74\x50\x18\xa9\xf1\xfe\x54\x16\x4f\x66\x61\x74\xae\x41\x3e\x42\xf6\x53\xa5\x55\xb5\x72\x7c\x5d\x67\xbd\x5b\x6a\xb5\xed\xc6\xb6\x09\xc5\x8e\x4e\xdb\x8a\x44\xab\x9c\x2b\x7a\x36\x09\xd4\xe3\x37\xa8\x3e\xe9\x54\x36\xa7\x3c\xec\x14\x37\x53\x0d\x5a\x7d\x23\xa3\xaf\xe0\x78\xcc\x21\xb8\x2f\x94\x8b\x94\x45\xf7\xb1\xee\xc8\x93\x76\x5f\x26\x71\xb6\xa8\xa9\x23\x1b\x4d\x6c\x37\x5c\xab\xc5\x4b\xe5\x23\xec\x9b\xcb\x8e\xb9\xdc\xc3\x25\x4a\xb0\x78\x67\x4b\x7c\x00\xfb\x74\x2c\xd9\x43\x1c\xd7\x75\x4c\x9f\xc5\x9e\x64\xb5\x4e\x96\x27\x5f\x66\xf1\xcb\x16\x6f\x88\x36\x4a\x1d\xa9\x2a\xdc\x6f\x7b\x6d\x67\xb2\xf7\x70\xb4\x6e\x52\xf6\x98\x12\x63\x8f\x66\x39\xeb\x38\x15\x8b\x51\xde\x1c\xb3\x50\xb5\x2c\xae\xb6\x0f\x1d\x8f\xd1\x4e\x9d\x69\xb5\xc6\x9d\xb5\x5b\xe0\xf4\x6b\x91\x7f\x56\x1c\xcb\x90\x95\xae\x22\x35\xf0\x30\x54\xcb\xf6\x53\xf2\xc4\x07\x54\x0c\x13\xea\x58\xeb\xf8\xbe\x82\x11\x99\x14\xa8\x03\xbc\x0d\xa1\xca\xb5\xce\x62\xcd\xde\x1e\xd7\x67\xb3\xf1\x04\x71\x47\x07\x26\xea\x38\x7c\xe4\x33\x5b\xb5\xca\xae\x07\x95\x8c\x77\x31\x0e\x0b\xe4\xb0\x3d\x70\x38\x94\x4d\x28\x57\xdb\x91\x2e\x79\xd8\x4d\x1f\x8a\xad\x7e\x79\x70\x17\x8a\xe0\x7e\x3f\x3b\x90\xe4\xa9\xe2\x2b\xf7\xf3\x60\x03\x80\x8d\x0d\xb0\xd5\x00\x49\x8d\xfb\xb1\xc7\xbe\x9f\x78\xa9\x71\xd6\xda\xd7\xb6\x9c\x22\x2e\xac\xcb\xf7\x9f\x0f\x19\x74\xc8\x9b\xef\xd7\x46\xa2\xca\x2f\xee\xe6\xfd\xda\x44\x55\x64\xcf\x7d\xbc\xdf\xef\x92\x74\x4f\x15\xe8\x37\x95\xef\xeb\x1f\x9e\xfd\x47\xf8\xb1\xca\xee\xbf\x56\x78\x6d\xf3\xd0\x4f\xb6\xd0\x5e\x81\xb1\x8b\xaa\xf0\x02\xfe\x06\x43\xfb\xba\x6d\x57\xe9\xe7\xa5\x0c\x7d\x25\x1c\xee\x45\x8e\x6b\xa9\xbe\x17\x15\xcd\xed\xe3\x15\x42\xa8\x6b\xbb\xc2\x78\xf7\x9e\xfe\xae\x36\x36\x85\xc7\x3a\x30\x26\x84\x96\x02\x5d\x92\x66\xcf\xd4\x7e\xa6\xbf\x9a\xbe\x6a\x8d\xa3\x91\x13\x20\x79\x1e\xec\x43\x33\xf0\x50\x11\x3c\xd3\x0a\x09\x65\x59\x21\x4c\xc5\xe3\x53\x1a\xae\xbb\x0d\x52\x50\x0b\x13\xf9\x71\x2b\x9f\xe9\x89\xa0\xa2\xfa\xce\x42\x54\xd3\x84\x04\x92\xf6\xef\x8d\x06\xaf\x13\xd7\x9a\xad\xe7\xaa\xa8\x83\x6c\x82\x30\xcf\x87\xe4\x0c\x4a\x37\x3f\x84\xa0\x1f\x9a\xff\x6f\xcc\x1e\x61\x90\x3a\x92\x08\xc0\x87\x5e\xfd\x53\xae\x2a\x30\x93\x1f\xb3\xe5\x53\x20\xf1\xa1\x3e\xfd\x66\x87\xee\x2e\x73\x15\xd1\x9d\x4d\xdb\xe6\x5c\x6d\x9f\xe5\x48\xc6\x2f\x4d\xd0\x4f\xb1\xfe\xa7\xa0\x02\x4d\x54\x7e\x47\xa9\x2e\xda\x78\x94\x51\xf9\x35\x60\x5d\x21\xec\x77\x3a\x10\x88\x1e\x18\xf8\xfb\x3b\x2d\xf5\x80\xdc\x17\x2d\x19\x88\x5c\x02\xd9\x25\xa4\x5c\x02\xd7\x25\x9c\x5d\x82\xdc\x25\xf5\xc7\x6a\x51\xe8\xa9\x01\x54\x9b\x49\x1b\xb2\x21\x68\x65\xd2\x2a\x90\x68\x09\x88\x47\x5f\x96\xe9\xaa\x1c\x68\xa8\x0d\x1c\x6a\x00\x85\xa0\xaa\x65\xf6\xfa\x76\x81\xbd\xc1\x04\x1b\x28\x63\xc7\x6a\x22\x1f\x44\x7d\xfe\xf6\x81\x60\x75\xcc\x96\x80\x68\xa2\x62\xdf\xb2\xba\x3e\xf1\x68\xdb\x64\x66\x56\x53\xfa\x1c\x6a\x3f\x87\xc2\xa4\x41\x4f\x14\x09\x7a\x22\x44\xcf\x00\x91\x40\xa6\x9e\x48\xd0\x13\x69\x7a\x8d\xf8\x54\x68\x53\xb9\x57\x08\xc4\x06\xe8\x04\x39\x9d\x24\xbc\x53\x2d\xf9\x08\xa6\x37\x52\x64\x72\x3a\x19\xbb\x2b\x1f\x91\x09\x29\xa3\x0f\x25\x34\xa1\x2c\x0a\x58\x20\xe3\xfa\x25\x97\x89\xea\x5b\x52\x72\x55\x18\xa9\xda\x32\x42\xbf\xdf\xa7\x54\x6c\xa3\x69\x86\x85\x57\x25\x48\x21\xe8\x93\x72\x7f\x2e\xe3\xbb\xcd\x58\x21\xd5\xdd\x9f\xb6\x06\x6d\x9b\xc3\x02\x78\xa8\x7f\x13\x01\x4f\xa2\x61\x03\x83\xaa\x71\xfa\xb5\x6d\x14\x6f\x26\x30\xe2\x40\x85\xc8\xb9\x5a\xc5\xd6\xaf\x42\x08\x94\xe4\x44\x40\xba\xea\x53\xd7\xbc\x7d\x16\x35\xdc\xd6\xc4\x65\x8c\x23\x8c\x49\xf5\xc2\x28\xc1\xea\x48\xdf\x38\xfa\x97\x38\xe6\x53\xd8\x76\x1b\xc6\x22\x70\x4b\x74\x82\x4b\x27\xa4\x94\x52\x52\xd5\x3e\x9f\x1a\x47\xfc\xc0\xb1\x03\x52\xa8\x4f\x19\xec\x48\x20\x14\x52\x4f\x2e\xe0\x14\xa6\x9d\x13\xa9\x21\x5a\xeb\x29\x4c\x3e\x69\xaf\x4a\x79\xd5\xa7\xc6\x15\x75\x28\xc8\x9e\xa8\x2f\x08\x0a\x25\xaa\xd4\xf2\x40\x94\x79\x28\x10\x27\x26\x80\x2a\xb5\x3e\xe5\x04\x34\x91\xa1\x12\x2f\xb4\x46\x68\x56\xeb\x48\x2d\xaa\x89\x6c\x92\x63\x64\x12\xaf\x4b\xc3\x51\x11\x7f\xaa\x4d\xbf\xa6\x37\x26\x0e\x86\xf4\x62\xab\x7e\xdd\x1c\xa6\x8d\xc2\x41\xc8\x27\x85\x46\x92\x44\x64\x6e\x55\xa2\x64\x21\xab\xd5\x47\x83\x74\x55\xa4\xde\x4e\x9b\xb7\x1b\x81\x04\x02\x05\xc5\xf9\xba\x3a\x55\x51\x1f\x3a\x8a\xa3\x46\xf8\x20\xab\x38\x2a\x06\x50\xc2\xd7\x59\xc2\xde\x3f\xf5\x5c\x54\x49\x8a\x00\x1b\x6a\x84\x66\xfb\xa8\xd4\x3e\xfe\xba\xa3\x40\xff\x7a\x97\x2f\x6a\xe7\xab\xc4\xf1\x59\x39\x1f\xea\xc7\xc7\x1c\xa3\x87\x1d\x9f\x34\xe0\x27\x79\xf8\xa1\x3d\xfb\x04\x75\x3e\xf0\x10\x52\x36\x41\xe8\x26\x14\xba\x84\x52\xd2\x1a\x71\x96\xa4\x3d\xc8\x09\x19\x9c\x1a\xe9\x73\xdb\xa1\x31\x22\xa5\x0f\xe0\x43\x12\x27\x50\x44\xd4\x88\x71\x09\x79\x04\xab\x1f\x40\xd0\x87\x96\x55\x91\x6a\x7d\xbb\x23\xa5\xfd\x85\x91\x20\x76\x03\x5a\x37\x00\x77\x03\x68\x37\x06\x9d\xf8\x01\x5c\x83\x64\xb4\x1c\x11\x9a\xb8\x1c\x08\xbb\xa4\x02\xd1\x18\xb7\x95\x6b\xa5\xd9\x6f\xab\xe4\xba\x82\xe0\x8d\xfa\x95\x1a\x77\x6e\xab\xed\xb6\x62\x2e\x97\x88\xd4\xe7\x10\xd2\x1e\x68\xed\xa4\x68\xea\x9a\x7d\x96\x2b\x67\x5f\x93\xd4\xe1\x4f\x49\xd7\xd5\x00\x91\x80\xfe\x02\xe8\x0f\xea\x3b\x02\x54\x07\x2e\x3d\xa0\xc4\x03\x8e\x3d\xa0\xc7\x03\xf6\x3b\x60\xce\x03\x32\x3c\x02\xbd\x1f\x0c\x79\xf5\x8d\x77\x00\xbe\xaf\xe9\x5b\xb8\x9b\x50\xee\x01\x91\x1e\x50\xee\x01\xc1\x1e\x90\xf0\xa1\xd2\x24\x60\xce\xab\xdf\xc7\xf8\x3d\xc2\xfc\x60\x59\x30\xed\x01\x09\x1f\x50\xee\xa1\x4a\x25\x20\xcf\x23\x94\xf8\x12\xe4\x89\x94\x68\x25\xc8\x13\xc9\x10\x23\xcb\x53\x6e\x0d\xd7\x87\x6b\x22\x81\x9c\x52\xb8\x39\xb2\x8f\x1c\xda\x3e\xb7\x8f\xf1\xa9\x40\xbe\x34\x6f\x22\xfd\x4d\xa4\x89\x04\x21\x83\xc8\x4f\x24\x92\xe0\x04\x39\x24\x0b\x59\x23\xc2\xff\x20\x00\x92\xc6\x88\xe4\x83\x1c\x50\x8d\x38\x2b\xba\xf5\xe9\xd7\xbf\xbf\x29\xa9\x3e\xee\x57\x8d\x48\xd5\xe6\x6c\xa8\x97\x5f\xe8\xf9\xa6\xa7\x99\xe6\x4f\x4a\xae\xa6\x59\x94\xe6\x15\xc9\xc7\xea\x3b\xbe\x4c\x75\x32\x41\x35\x52\xbf\x5f\x62\x36\xb9\xe0\x29\x25\x9b\x84\x67\x13\x79\xc9\xf4\x7b\xa6\xdf\x3c\x01\x3f\x27\x20\x2a\x62\x8c\x6a\x39\x6d\x04\x34\x12\x94\x0c\xd4\x62\x4e\x72\x19\xdc\x56\x4a\xe4\xe5\x54\xb5\x43\xf6\xe9\x6b\x39\x70\x5c\xe4\x89\x98\x79\x82\x3e\xcd\xf3\x53\x23\x26\xa6\xd1\x6e\x9c\xe4\xbf\x44\xcd\x94\xfe\x9d\xd2\x1d\x53\x3a\x7a\x72\xd0\x27\x27\x7e\x4a\x92\x4c\xee\xf5\x24\x39\x32\xb9\xec\xab\xc9\x26\x81\x17\x50\xcb\xc7\x52\x31\x86\x9c\x3e\x90\xbc\xc6\x92\x54\x5f\x0b\x58\x6c\xb5\xeb\xc6\xf1\x32\x87\x51\xda\xc7\x9a\x92\x06\xfe\x22\x72\x43\x35\x42\x87\xb8\x9d\xbc\x9f\x92\x31\xe7\x0c\xe1\xf4\x6a\xb7\xcf\x6f\x58\xed\xa8\x7d\xfd\x5d\x69\xdc\x6f\x00\x3e\x9d\xe8\xa8\x67\xbb\x7d\xed\x20\xae\x76\xe9\xc0\xd0\x38\x3d\xd1\x84\x94\x52\xfd\xd6\x93\x0d\xf2\xb6\x41\xd8\x04\x93\x62\x23\xf9\xde\x02\x12\xdb\x9d\xd9\xee\xc0\x06\x2e\xdb\x9c\xe0\x0d\x12\xb2\x05\x06\xb6\x7b\xb8\xc1\x5b\xb6\x10\xc8\xf6\x14\x36\x98\xcc\x76\xe7\x37\xfa\xb4\x7d\x5a\x94\x98\x03\xe7\x3e\x6f\xb2\xb4\xfb\xb4\x8b\x46\xb6\x8e\x4b\xbd\x39\xe2\x1b\xd0\x6c\x7b\xbe\x1b\xe9\xda\x96\x74\xda\xc8\x75\x90\xf0\xd5\x75\x5c\xe1\x76\xdf\xb9\x12\x14\x28\x76\xb6\x60\xcc\x46\xf9\x46\x36\xb3\xda\xfe\xeb\x38\x7c\x80\x03\x0d\xaf\x9b\xb3\x9d\x3f\xae\x1e\x47\xd0\x6a\x73\x3c\xd9\x83\x5e\x1d\xc5\x7e\x1c\xe9\xa6\xeb\xdd\xbf\xe8\xe1\x2f\x20\xcc\x55\x2d\x77\x41\xc5\x2f\x89\x8f\x8b\x24\xf5\x8e\xf6\xb0\xf8\x41\xd2\x32\xd7\xbb\x70\x51\xcd\x5d\xa1\x8b\x6b\x85\xb9\xa3\x65\x87\x91\x73\x83\x0c\x5f\xeb\xc3\x45\x93\x79\xad\x3f\xd7\x4a\x72\x47\x4b\x1c\x83\x1b\x58\x7f\xae\xd5\xe6\x22\xb1\xbb\x02\x57\x77\xb4\xa3\xc9\x0b\xb3\x3e\xdc\xd1\x02\xc8\x38\x40\xa4\x86\x2e\x98\xc9\x45\x96\x76\x09\x54\x5e\x00\x93\x3b\xda\xd1\x7c\x64\x8a\x5b\xce\xce\xf5\x79\x34\xb7\xbd\x48\xca\xeb\xa8\x70\xab\xef\x18\x5e\xe4\x73\x4d\x3b\x1a\x41\xa4\x6a\x8f\x4f\xf5\x71\x92\x48\x62\xdc\x4e\x44\xf0\x95\xae\x59\x4a\x46\xa9\x8e\x01\x76\x18\xed\xf1\x01\x12\x2a\x06\x46\x59\xf4\xbc\x71\x4f\x18\xe9\x79\x6a\x4f\xb0\xea\x79\x17\x1e\xa8\xd1\xf3\x1c\x1f\xb7\xfe\x79\xe3\x9e\x95\xe4\xd9\xf7\x71\xbc\x54\xcb\x77\x6b\x19\xbd\x86\x4b\xf0\x34\x41\x62\x9f\xb0\xc4\x6b\x5e\x14\x4f\xfc\x09\x39\x3c\x50\xd9\x77\xfc\x9e\x86\xe4\x23\xef\x7f\x2c\xf0\x4f\xa8\xfe\x13\xaa\xff\x46\x0b\x29\xf3\x8c\x50\x1d\x7f\xca\xbc\x3f\xb2\x24\xdf\xe0\x3d\x01\xef\x7f\xa4\xdb\xc0\xfa\xf2\x13\x06\xfe\x48\x37\x7c\x4a\x8e\x3f\x65\xd8\x9f\x32\x5a\x21\xd5\x6a\x11\x99\x83\x5d\x08\x45\xb3\x46\xaa\xdf\xc7\xf0\xda\x00\x3a\x50\x0a\x7d\x87\x9f\x88\xd2\xf8\xc3\xdb\xa3\xd0\xbd\xfc\x38\xe9\x88\x16\x72\xe1\x7f\xa1\x9a\x56\x9d\x94\x2a\x93\x52\x88\x34\x15\x32\xa5\x0a\xa5\x54\xde\x54\x5b\x10\x1f\x2d\x10\x9f\x07\xaf\x2d\xf8\x71\x88\xeb\xd2\xf1\xa8\x28\x06\x0a\x64\x70\xe9\x04\xac\x4e\xb0\xe8\xda\xbe\xc8\x32\x13\x78\x11\x56\x1f\xc2\xed\x83\x3c\xec\x10\x9e\x1f\x02\xe7\xc3\x5f\x34\x56\x76\xeb\x3a\x24\x5f\x56\xf6\x15\xf8\x6e\x52\x22\xee\xcf\x70\x1f\x5a\x8a\x79\x90\x1c\x1c\x02\xea\x03\x33\x49\x08\x87\x87\x10\x78\x99\x5f\x5a\x3e\x1a\xaf\x8a\x38\x49\x48\xb0\x04\xa1\xb9\x40\xad\x1d\x08\xce\x89\x42\x24\x49\x87\x1a\xe9\xb3\xfa\x78\x89\x11\x00\x16\xd4\x95\x81\xdc\x3d\x50\x6c\x06\x32\xd1\x00\x90\x09\x60\x99\x50\x7e\x1f\xe8\x2d\x51\x20\xd7\x48\xb7\x4f\x2b\x85\x82\xe2\xe1\x48\x6e\x20\xa2\x8e\x1f\x35\x40\xcb\xcb\x80\xc0\x10\x51\x11\x7c\xad\x3e\x6f\x0e\x1c\xc6\x5f\x21\x1c\x5b\x7d\xc7\x80\xc0\xf0\xbb\x53\x12\x49\x98\xb6\x46\xba\x45\x11\x22\x55\x82\x4a\x23\x85\xff\x11\x5b\x26\x62\xcb\x6a\x89\xcf\xb4\xbf\xd6\x7e\x56\x0b\x3e\xf3\x0d\x77\x7b\x67\xae\x83\xc4\x2b\x91\x4a\x10\xa0\xa8\x4f\x79\x88\x24\x07\x91\x4e\x01\x98\x27\x61\x8a\xea\x93\x9b\x6e\x9f\xae\x7d\x4c\xf2\x38\x78\x75\x40\xd4\x13\x2c\xbd\x8e\x31\xd2\x9e\x1d\x48\x0e\xea\x59\x90\xc6\x1a\xf7\x5d\xfc\xd6\xd3\xbe\xa1\xbf\xf1\xb4\x07\x7a\xfa\xc8\xfe\x55\x7e\x33\xe2\xae\xa6\x0f\x24\xe2\x37\xf9\x14\x13\x0f\xcf\x14\x13\x98\xa2\x01\x64\x2e\xaa\xef\x18\x14\x83\xa2\x0a\x53\x44\x65\x8a\xba\x4c\xe9\xb5\x29\xed\x33\xa5\x4d\xa6\xc8\x0c\x59\xda\x6a\x1d\xe9\xbb\x24\x97\xe6\x75\x7d\x42\x31\x53\xe2\x6b\xb6\x2c\x0f\x12\x59\xc2\x17\x89\xca\xba\x3e\x45\xaf\x8b\xad\x48\xe2\x6b\x4a\x9d\x4d\xe9\xaf\x29\x21\x36\xd1\xb2\x4e\x49\xb6\xd9\x62\x3e\x52\x67\x64\x37\x6a\xdc\x91\x48\x5b\xc8\x1f\x2d\x64\xc3\x0b\x81\xe2\x42\x39\xbc\xbc\xa7\x4b\xe4\x64\x89\xa5\x00\x35\xe4\x22\xff\x88\xa0\x21\xd7\xfb\x89\x1c\xa2\x21\x44\x39\xff\x35\xe5\x3c\x58\x13\x12\xc7\x1d\x2d\x6d\x8d\x98\x06\x35\xda\x16\x5b\xd8\x84\x11\x08\x62\x24\x40\x41\x4a\xec\x27\x38\x40\x4a\xdd\xd7\x38\x8a\x32\x9c\x48\xfc\xfd\x4d\xa0\x72\x8b\x2b\x6e\xc9\xb1\xed\xbd\xde\x22\x33\xdb\x6f\x3b\xa4\x41\xcf\xd7\x3e\x23\x16\x32\x04\x31\x07\xc3\xd2\x21\x9c\x7e\xac\x6c\x87\xdc\xfa\x01\x30\x3f\x5f\x33\x26\x39\x06\x61\xed\x11\x71\x3a\xd1\x7c\x4a\x52\x67\x58\xcb\x4e\x76\x5a\x4c\xd2\x0c\x27\xd5\x41\xa8\x7c\x90\x11\x1e\x91\x28\x8c\x5b\x89\x24\xb5\x46\x48\x6a\xe3\x59\x6a\xc6\xb3\x68\x59\x42\xb4\xbb\x81\x43\xc9\x5a\x77\xad\xed\x64\x37\xf2\x5a\xe1\x49\x67\xe4\x15\xf7\xb8\xa2\x6a\xf6\xd9\x44\xa7\x9d\xaf\x0b\x62\x24\xb7\x51\xd8\x44\x53\x1d\x21\x7d\xaf\x25\xcd\x08\x48\x17\x90\xf5\x27\x50\x8d\x06\x3b\xd0\x91\xd6\x22\x37\xf5\xb7\x71\xad\xf4\x1d\x20\x06\x41\xfe\xf2\x46\x41\xbc\xbb\x5c\x46\x7a\x4a\x9a\x62\x48\x26\x0c\x30\x84\x61\x07\x57\xcf\x18\x2a\x19\xcb\x0f\x25\x83\xd3\x42\xd3\x8a\x6f\x9a\x6f\x40\xbc\x97\xd8\x7e\xa8\x76\x0c\xf1\xb4\x20\xb2\x5a\xe3\x3e\x6d\x2f\xb2\xcf\xe5\xf9\x36\x20\xfd\xb6\x9c\xf5\xd7\xc7\x93\xbf\x26\x92\x83\xa4\xb6\xe3\xcc\xa1\xec\x26\x40\x45\x42\xb1\x48\xf0\xac\x83\x77\x1f\xa0\x2b\xea\x94\x43\xfa\xba\x46\x78\x7c\xd2\x5f\x7c\xff\x58\xed\x5d\x82\x6f\x2b\x93\x0a\x51\x82\xe0\xd1\x23\x02\xac\x11\x57\x03\xf8\x5a\x5d\x7a\x78\xc9\x59\x83\x51\x2b\x0b\x4b\x24\x53\xe4\xbc\x22\xa3\xbd\x36\x05\x34\x2c\xbd\x8c\xf6\xc8\x00\xa9\xa2\x25\x7d\x7e\x5e\x1e\xe9\xc2\xd1\x1e\xa5\xab\x1d\xe3\xa7\xaf\xc9\xa7\x3b\xdd\x3a\xf2\xeb\x6f\xe1\x39\xee\xfe\x76\x7e\x25\x6f\x54\x42\x26\x07\xd9\x6d\xa9\x4b\xc9\xe7\x48\xfe\x48\xf2\x9a\xa5\xa6\x43\x42\xbb\x46\xba\xaf\x24\xa8\xe1\x63\x1f\x8f\xcf\xf5\x2f\x60\x17\x8b\x2e\xaf\x02\x3b\x31\xff\x14\xa5\x4f\xf1\x81\x6c\xe9\x45\x30\xde\x6c\xc1\x22\x24\xee\x09\xea\x92\x22\xf9\x29\xc2\x9f\xc0\xb3\xe4\x64\xeb\x0a\x7c\x4c\xbf\xbf\xef\x24\x09\x82\xbc\x52\x82\x9d\x6c\x04\x4b\x49\x74\xbc\x29\xd6\x31\xf9\xb3\x13\xfc\x79\xce\x66\xa4\x00\x0c\xe7\xef\x58\x6f\xcb\x77\xe3\xc1\xed\xf6\xe0\x3e\x3e\x60\xfb\x86\xda\xba\xda\x04\x6c\x99\x4d\x65\x22\xfa\x31\xdb\x57\xe5\xff\x62\x81\x0b\xf4\x49\xd5\x37\x0e\xaa\x06\x9e\x8c\x1a\xb6\xfa\x04\xc0\x81\xdc\xdd\x87\xd9\xdc\x7d\xde\x20\x84\x59\x35\x22\x01\x08\x2a\x2e\xee\xb1\xba\xdc\x53\x7c\x63\x89\x0b\x2d\xf3\x8a\x9c\x48\x4d\x5e\x7d\xe0\x2f\x05\x3a\xcb\x4c\x5b\xe0\x4e\x6b\xb5\x0f\xf8\xfa\xdc\xfe\xb4\xcf\x22\x36\x0e\xae\x6e\xe6\x2f\xde\x0a\x5a\xf4\x6a\xf5\xd1\x42\x83\x68\x2d\x73\x9e\xbc\x49\x8d\xfb\xc6\xd9\xfd\xfe\x2e\xc7\x2b\x64\x54\x56\xb5\xd6\x8f\xb6\x86\x2f\x69\x04\x58\x69\xbd\xf6\x2e\x9d\xfb\x5c\x99\x70\xc4\x42\x77\xbd\x25\xb2\x76\x8b\x81\xcb\x31\x91\x37\x09\x02\x26\xb1\x25\x66\x37\x32\xa0\x4d\x5c\x62\x83\x04\x6e\x44\x39\x9b\xc4\xc1\x46\xbd\xb4\xc1\x03\x37\x11\x6f\x2b\x7f\x00\x3b\xc4\x6e\x6a\x2d\xa5\xa2\xdb\x6a\x23\x1a\x19\xdb\xcc\xd9\xe6\xd5\x26\xa4\xb9\xc5\x37\x76\xf3\x25\x9a\x99\xdb\xd3\xdf\xf2\x4d\x1b\xf1\xd0\xb6\x46\x6d\x10\xce\x0d\x06\xb5\xad\x3c\xdb\x73\xdf\x0a\x91\x11\xdf\x96\xf7\xea\x7b\xa5\x34\xbd\x23\x80\xbd\x61\x9f\xaa\x6b\xf6\x2f\xec\xeb\x3b\x46\x8a\xd2\x3c\xd9\xa8\x8e\xb6\x37\x62\x5b\x0f\xb7\x19\xb5\xcd\xb1\x2d\xa2\x02\xbe\x11\x62\xaa\x21\xca\x1a\x60\x1d\xf5\x1b\x8c\x67\x7f\x4a\x7a\x9d\xe7\xde\xe5\x05\xe2\x30\xa4\x71\x83\x70\x6e\xb5\x44\x32\x01\xdb\x3d\xfd\xe3\x59\x1f\xf1\xcc\x23\xd2\x75\x16\x08\xdb\x6e\xaf\x96\x87\x6b\x67\x39\xbc\x9e\x3b\x50\x77\x2b\x95\xbb\x4a\xe5\xae\xb5\xe8\x7a\x3a\x24\x76\xe3\x7a\x82\x37\x64\x06\xc1\x36\x2f\x50\xd8\x15\x5b\xb8\x8a\xea\xae\x67\x7a\x95\x17\x5f\x45\x12\xd7\x6a\x79\x95\xd9\x5d\x4f\xff\x2a\xad\xbb\xa2\x43\x37\xda\x0f\x25\xaa\x69\xcd\xbc\x4a\x27\xaf\xa2\x8a\x1b\x20\x69\x00\x68\xd7\x4a\x78\x95\xe8\xdd\xe8\x5f\x4b\x8a\x4a\x59\xc6\x55\xb4\x77\x95\x59\x5f\xc4\x6d\x57\x94\xe9\x2a\xf2\xb8\xd6\x6a\x7b\x71\x8d\x68\x89\x65\x29\xcd\xbc\x21\xa7\x29\x36\x75\x41\x3f\xae\xc8\xc9\xb5\x4a\x5f\xb9\x48\xa4\xf8\xe5\x0b\xf3\x5e\xfd\x5d\x76\xb4\x4b\xbe\xec\x2a\xfa\xb9\x84\xf1\xaf\x22\xa1\xeb\xad\xb9\x4f\x4e\xd3\x7b\x84\x50\x3f\x2e\x3a\x76\xc2\x32\xf1\x94\x55\x3d\x80\x0e\x04\x42\x81\x41\x28\xd0\x0a\x05\x86\xa1\x1a\xe1\xf9\xca\x3c\x7a\xd6\xc8\xd1\xca\xc3\xe5\xff\x2a\xb3\xb3\x12\xa2\xc0\xab\x3e\x8f\xb8\x0b\x0b\x4e\x1f\xa9\xff\xfa\x3a\xe5\xd5\x9e\xd9\x2d\x71\x51\x10\x3c\x10\x95\x07\xc8\xf0\x9a\xc4\x90\xbc\xde\x13\xc9\x21\xd9\x57\xc7\x18\x07\xbe\x03\x88\x78\xa2\x34\x0f\x5c\x85\xa0\x5f\x3c\xfe\xfe\x43\x31\xfb\xf1\x38\xd0\x09\xe4\x07\xb0\xf6\x0d\x84\xe8\xc8\xa4\x89\xfe\x55\xbf\xc7\x79\xca\x72\x9a\x58\x37\x95\xd0\xa5\x52\xb6\xfc\x90\x58\x7f\x20\x5d\x00\x44\xd5\x92\xa0\x27\xff\xc5\x37\xfc\x78\x85\x1f\x09\xa6\x8f\x47\xf9\xad\x26\x68\x57\x6e\xc8\x37\xf9\x90\x43\x7f\xca\x0a\x3f\xc0\x7c\x84\x65\xd5\xe7\x11\xbb\xce\xf5\x5d\x72\x6a\x1f\x50\xd5\x27\xb3\xf6\xb5\x28\x19\x76\x50\x94\x58\x89\x92\x23\xb1\x73\x24\xe8\x50\x22\xee\xc8\x81\xf4\x77\xa0\x5f\x24\xa4\x93\x28\x0d\xaa\x2f\x8f\x29\x87\x28\xeb\x34\xc0\xfc\x07\x81\xf4\x41\x24\x6a\x90\x64\x1c\xeb\x37\xce\xb7\x95\xfd\x24\x6d\x3d\x56\x7b\xd6\x2d\x30\x22\x5f\x49\x98\x11\xfb\x44\xb2\xd3\x32\xfc\x86\x40\xbf\x48\xa8\x30\xb1\x3a\x55\x4b\xec\x54\x56\x91\x9d\x4c\xd8\xb0\xfa\x8e\x01\xd3\x1b\xed\x2f\x83\xf5\x7d\x2d\x82\xfa\xbb\x66\x5f\xad\xfd\xe2\xba\x3e\x4b\x3e\x64\xdc\x42\x2e\x2f\xe4\xfb\x02\x0f\x6a\xec\x96\x31\x01\x2a\x3c\xa4\xc9\x90\xcd\x05\x3a\x42\xc5\xcd\x99\x9d\x21\xe5\xb9\x80\x0b\x55\x8b\x8e\xa2\x25\xc8\xc8\x9b\xf8\x46\xb0\xa3\x1a\x71\xcc\x45\x1e\xdf\xa2\xa9\xbb\x65\x4f\x50\x32\x9f\xee\x83\x04\xf2\x2e\x11\x3f\x67\x76\x11\x09\x00\x60\x36\x30\xd0\x35\x8f\x91\xe3\xca\xb8\x52\x95\xbb\x65\x36\x75\xe6\xe5\x33\xca\x86\x03\xc2\x27\x80\x52\xb5\x04\xf3\x01\xfd\x9a\x8e\x0d\xa8\x13\xb8\x3e\x01\xe7\x53\xf9\x5d\x82\x2f\x65\x62\x12\xce\xc3\x0b\x46\x33\x9f\xa7\xbd\x5a\x3e\x2f\xc8\x67\xa2\xf9\x07\xae\xaf\xeb\xf7\xf8\xf1\x2d\xe4\xf7\x65\x3f\xc5\x6d\x52\xb9\x6a\x8a\x0f\x24\x4a\xb8\x44\x77\x9d\x08\xd7\x13\xf7\x72\x82\x97\x26\x31\x37\x30\xff\xfa\x5b\xfa\x9a\x5a\x77\x09\x55\x76\x1e\x3e\xfe\x69\xdf\xb9\xfd\x77\xf7\x53\x09\x8b\xa2\x81\x04\xc5\xca\x09\xe4\xa8\x68\xbb\x5a\x92\xb0\x4a\x61\x44\x66\xa6\x48\xce\xf4\xf6\x4d\x11\x9e\xe9\xed\x9b\xfc\x9d\xe9\x1d\x9c\x22\x39\x73\xb5\xa8\x2c\x6a\x51\xbe\xcf\xbc\xed\xb1\xa2\xc1\x7e\x2d\x24\xfb\xb5\xec\x7f\xf7\xab\xfd\x47\xa7\xed\xa3\xe2\xf6\x71\x6d\x5b\x41\x96\x3b\x6e\x99\x59\x5c\xd2\x89\xe9\x60\x09\x56\x2d\xa9\xef\x15\x8d\xa1\xc4\x9d\x28\x4c\xb5\x28\xf6\xa9\xe8\xab\x96\xd6\x2c\xde\x6d\xdc\x07\x50\x56\xb9\xa6\x73\xb3\x15\x67\x47\x8f\x70\x94\x5f\xb7\xc7\x08\xdd\xd9\xaf\x5b\x3a\xb5\x7e\x38\xf4\xf0\xc2\xa1\xb0\xa8\xa5\x2e\xce\xfa\x6a\x5d\xb4\x4f\xbd\x10\xe0\xc0\x56\x8b\xb5\xa5\xe5\xf7\xd7\xce\x34\xdd\x59\xbf\x96\x41\x94\x5b\xed\xd3\xa6\x45\xb4\x13\xdf\x77\xb4\xba\x1b\x0c\x28\x26\xc9\x8d\x80\x79\xe3\x95\xa5\x3e\x95\xb4\xa6\x92\xee\x54\xf5\xb9\xda\x98\x3c\x25\xed\x21\xe0\xab\x35\xd2\xda\x6f\x5c\x76\x69\xff\x4d\xeb\x77\x4b\xbf\x43\xf9\x27\x54\x7d\x42\xd5\x57\xbf\xc7\x8d\xf8\x96\xd5\x7c\xe2\xbe\x9d\xdb\xba\xa5\xa3\x0f\x45\x84\x43\x17\xff\x0c\xca\x37\x90\xd6\x67\xe0\x8f\x00\x81\x39\x03\x4f\x20\xde\xd1\x43\x7f\xe8\x50\x27\x3a\x03\x75\xf1\x88\x1e\xe7\x9a\x63\xa0\x08\x9f\xd2\x87\x38\xb4\x1f\x8e\xb4\xf6\x41\x14\x8d\x5b\x35\xcf\x6c\xee\x41\x49\x66\x4f\x04\x63\x61\xbd\x69\x5c\x79\xc9\x6a\x61\x8f\x43\x8d\xe6\x08\x5b\x9e\xa4\x39\x97\xcd\x49\x2b\x59\xed\xb9\x1f\x6a\x6d\xc7\x33\x3d\xea\xc6\x0f\x0d\xa1\x93\x9d\xa6\xbe\xdd\x6f\x77\xff\x70\xf4\x97\x76\x6a\xe9\xf1\x50\xcc\x85\x15\xa6\xb2\x59\x2d\xd7\xbf\x95\x7b\xb0\x35\x42\x21\x5f\x48\x6b\x5a\x5c\x49\x01\x25\x29\xa6\xe4\xb5\xfc\x5c\xcb\x52\x73\x48\x0a\xc9\x27\x35\xf1\x7c\x63\x9e\xbf\xf9\x8d\xdd\x14\x87\x9d\x06\x6f\x5e\x1e\x4c\x37\x12\xd1\x40\x4f\x1f\xa0\xd3\xa7\xca\xa5\xb5\xe2\x3e\x58\x3a\x94\x8b\x41\x41\x27\xb0\xe3\xd6\xb8\x4f\xd5\xa5\x83\x44\x7d\x70\x93\x1f\x08\xd5\x07\xc9\xf7\xa9\x85\xf8\xa0\xee\x68\xf0\x04\x55\xad\xda\x75\xd4\x89\x09\x1e\x48\x35\x0c\xa9\x8f\xc1\xd8\x19\xaa\xa0\x91\x1b\x05\x15\x93\x6a\x85\x04\x60\x6d\x9b\x6f\x48\x65\xe6\x50\x35\x3d\x5a\xc1\xf7\x49\x80\xf7\xf5\xd5\x45\x0c\x86\x30\xbd\x93\x1a\xf1\x29\xdc\x2d\x43\x6c\x30\xd3\x02\xba\x8e\x0e\x4a\x8d\x3b\xb2\xf9\x38\xa4\xa3\x05\x4b\x82\x21\x1c\x02\x2a\xb1\x5b\x97\x57\x72\x58\x8d\x65\xa8\x2e\xb0\xb9\x05\x78\x4e\x1d\x69\xbc\x43\x0b\xd1\x9f\x76\x40\x42\x5f\x2d\xd9\x6e\xdd\x20\x0e\x3a\xbe\x9b\xe4\xfa\x24\x53\x34\x39\x37\xc9\xf8\xcd\xe6\x98\x65\x4a\xd3\x3e\x09\xea\x02\x81\xc8\xbc\xc6\x7d\x2a\x55\xcb\xac\x4e\x68\x57\xac\xce\x35\xd2\xc7\xf4\x88\xd0\x42\x27\xab\x2f\x6a\x79\xe9\x5f\x29\xee\x94\xf4\x06\xa8\x29\x47\x9f\x2a\xb0\x6f\x14\xaa\x49\x30\xbd\x14\x6e\x49\x4e\x55\x4a\xf2\xa4\xa0\x4b\x4a\xf2\x64\x73\xee\x70\x07\x27\x30\xe0\x94\x12\xa7\x10\x56\x0e\x7a\x8f\xc0\xe6\xe2\x94\x8a\x56\x17\x86\xbe\x65\x4a\x4f\xe6\xf9\x54\x35\x3d\xd5\x1a\x09\xbb\x86\xe0\x68\xb9\xda\x34\x80\x21\x6e\xfb\x5b\x04\x21\x6c\x08\x31\xb9\x41\xd3\xef\x9c\x80\x0f\xb6\x8b\xea\x53\x11\x86\xc1\x15\xa8\x98\x5c\xba\xd5\x6b\x48\x33\x77\x48\x9d\x2d\x69\xb4\x25\xa5\xb6\xb8\x41\x14\xc5\xca\x05\xe7\x46\x43\xc1\x42\x73\x52\x67\x89\x65\x56\x2c\x01\xb3\x05\x3c\xb8\xc0\x03\x97\x9a\x93\x65\x0e\xd0\x66\x08\xd4\xef\xd5\x2e\x9f\x1a\xa1\xdb\xa4\xba\x6c\x09\xd1\xad\x3d\xbb\xfd\x5c\xc7\xa7\xd2\xbc\x6a\xd5\x96\x50\xdc\x12\x96\x5b\xde\xa3\x25\x68\xb7\xcc\x3d\x3a\x31\x41\xf3\x2c\x68\x3f\xd4\x59\x8e\x94\x7c\x56\x43\xb5\xbc\x05\xdb\x6c\xa7\x12\x5a\x8e\x35\x57\x9b\xcb\x1b\x9d\x04\x5e\x3d\xd2\x7d\x6e\x37\x77\x99\x1b\xb4\xe3\xa7\x26\xc2\x49\x85\x97\xe5\xdc\x6c\xe8\x79\x8a\xe6\x41\xe7\x2c\xa8\xc2\xc4\x7e\xb3\xdb\xe7\x78\xc7\x48\xd5\xe2\xa3\xd9\xfd\x7b\x9e\x4a\xec\xfe\x55\xde\x68\xfa\xe8\x75\xa4\xb6\xdd\x6b\x89\x5f\x01\x42\xca\x6a\xe5\xfe\x96\x4b\xfa\xaf\x0f\x74\xd2\xf5\x43\xda\xe7\x7f\x7d\x78\xff\x10\x2d\x6f\x19\xdd\xcd\xee\x18\x84\x05\x63\x77\xfe\xdb\x92\xb3\x15\x67\xed\x96\x68\xe4\x83\x6d\xf4\x0b\x5b\xde\x91\x50\x7b\x6c\xd9\x4a\xac\xfa\x75\xb5\xf2\x9c\xa7\xe2\x2c\xb9\xf9\x33\x57\xfb\xd8\x28\x8a\xfd\x40\xd9\xc7\x53\xf6\xfa\x6e\x22\xf0\xb3\x9b\xb0\x05\x84\xd8\x02\x70\x3c\xc0\xd3\xa2\x57\x24\x5a\x2e\xac\xc3\x05\x08\xbf\xf0\xac\x54\x31\xea\xd3\x67\xe4\x68\xcb\x3f\xe4\x07\x5e\xe5\x84\x17\xf5\x07\x15\x8d\x40\xa7\x5d\x23\x8e\xe7\x5d\xf3\x12\x2f\x22\x91\x8b\x42\xe4\x2a\x39\xbc\x8a\x0a\x2f\x91\xaf\x9b\x7c\x63\xc5\x86\x37\xf9\xb1\xca\x18\x2f\xf2\x90\x0b\x7b\x41\x26\xbe\xbe\x5d\x1f\x2c\x39\xc1\x95\xd1\x34\x91\x4f\xad\xb3\xb4\xb2\xb6\xa0\xf5\x17\x99\xd2\x95\xa3\xbd\x8a\x1c\x6f\xb6\x3f\xac\x28\x4c\x71\xeb\x23\xd6\xf9\xa0\x8a\x51\x11\xd7\xa7\xa9\x4f\x30\xba\x7e\xe1\x43\x3f\xf2\x2c\x2d\x0f\x76\x19\x57\x70\x1d\xa9\xdf\x59\x67\x59\x58\xcf\xe8\x29\xb0\x45\xdb\x5c\x23\xce\xf2\x1b\xcc\x81\xf7\xb5\xf0\x34\x3f\xd6\x92\xf3\xd0\x10\x3d\x7f\xcb\x23\x7f\xf6\x14\x5a\x3e\xf7\xe7\xad\xa6\xea\x57\x4a\x2f\x5a\xfa\x44\x48\x1f\xa9\x6b\x84\xd0\xd5\xca\x10\xcb\x37\xc3\x2e\x3c\x78\x91\x07\x41\xf2\xc4\x1f\x1f\xf4\xc9\x6b\xf2\x6f\xe5\xb1\x0f\xee\xe4\x41\x2d\x3c\x28\x84\x07\xbf\xf2\x08\x8e\x3f\x5b\xc4\xb3\x18\xbf\xd7\x04\xf0\xab\x71\xc3\x30\xc4\x50\xbc\x8c\xd9\xef\x53\xae\xf8\xc9\x0d\x0f\xd8\x5f\xc6\xec\x17\xbf\x11\xa2\xd8\xe4\x05\x08\x60\xa1\xb6\x4b\x64\x77\x89\xf6\xad\xfa\x7c\x6c\x08\x60\x45\x64\x1f\x64\xed\x27\xe7\x81\x88\x26\xbf\x6c\xac\x70\xb4\xe7\xac\x95\xc3\xe6\x8b\x7e\x0b\x0a\x79\x2d\x7d\x3e\x39\xe9\x46\x98\xb6\xfa\x94\xef\x0d\x25\x2c\xbb\xf3\xed\x32\x7f\x3e\x5a\x14\xdf\x55\x34\x07\x41\xf8\xc1\x14\xa2\x06\xaf\x3e\xaf\x7b\xf5\x88\x63\xfc\xd5\xe8\xc9\x3f\x6a\x16\x9f\xc2\x34\x2a\x29\xd5\xe7\x93\xb7\x74\x9a\xec\x35\x5f\x11\x7e\x2e\xf1\x60\x96\xa7\xfd\xaa\xe5\x45\x47\x63\x8e\x95\xd4\x21\x98\x1f\x68\xce\xe5\x39\xaa\x0f\x8b\x2c\x3f\x8d\x08\x71\x90\x4e\x46\x6e\x93\x28\xc2\xca\x3f\xe7\x93\xeb\x33\x7b\x07\x03\x19\xf9\x4c\xf5\x53\x9f\x67\x0e\x31\x0c\xb3\x8b\xb8\x26\x11\xd7\xd4\x38\xf9\x6f\xa2\xa2\x30\xbe\x83\x29\x2d\x5f\x92\xb2\x20\xe5\xbd\xf3\xc3\x89\x7a\x43\x7e\x07\x03\x39\x64\x80\x08\xe9\xd6\x38\xbf\x9d\xcf\x4c\x9a\x93\x2c\x6f\x8d\xf7\x31\xce\x92\x93\x86\x26\x8f\x91\x7d\xcc\x32\x02\x5b\x2c\xeb\x0c\x3b\x1b\x7b\xb4\xdf\xde\xe3\x32\xd9\xbc\x7a\x39\xdd\x68\x62\x72\x1e\x63\xf0\x12\xa3\x7d\x51\xdf\x02\xf1\x96\x50\x71\x09\x97\x56\x23\xe4\xc2\x95\xd1\xf9\x85\xc9\x28\x68\xc1\xcd\x44\x57\x9f\x7e\x33\x24\x5c\x42\xcb\x95\x6f\xdf\x23\xfc\x73\x9e\x2d\x49\x26\xe2\xbf\x49\x66\xb1\x5a\x99\x69\x38\xdd\xaf\xee\x40\x9a\x51\x79\xe1\x89\x09\xb5\x27\x11\xd2\xe4\x6c\xe5\xeb\x63\xf8\xde\x66\x0e\xa4\x5a\x26\xa2\x86\xbc\x3c\xff\xce\xa3\x9b\x7b\x89\x5a\x8a\x11\x94\x72\x12\x99\xe4\x17\x18\x47\x35\x42\x9a\xbc\xbf\x91\x77\x2d\x7e\x91\x04\x16\x12\x39\x7d\xa2\xa2\x92\xff\x48\xe6\x52\x8d\x6b\x79\xf8\x22\x4a\x0a\xed\x6b\xc4\xb9\x7c\xfe\xdb\xfe\x7c\xfb\xf9\x3c\xf0\x27\xa7\x2e\x4a\x92\xb7\xfd\xf6\x8e\x44\xf0\xd5\x49\x88\x24\xf5\xa3\x84\x18\x4e\xef\x88\x9c\x4d\xc2\xe7\x25\x1c\x5e\xfd\x8d\xfe\x5e\xf7\x1c\x5a\x37\xa1\x07\x92\xa7\x9d\x72\xa8\x8c\xbb\x94\x65\x49\xe4\x69\x89\x36\x2d\xe7\x22\x1f\xb1\x7a\x7c\xb5\x9f\xcf\xab\x6f\x99\xf5\xf6\xe1\x57\x9f\xe5\x53\x79\x68\x18\xe2\x69\x65\x98\xde\xfd\xd9\xf2\xac\xdc\xdc\x05\x71\xbe\x38\xb8\x44\x99\x6b\x9c\xfb\x9e\x7d\x0c\x97\x9d\xa8\xc8\xd7\x6e\x7a\x8b\xc6\x42\x33\x73\x76\x17\xc7\x77\x91\x0a\x41\xd1\x53\xad\x4c\xb6\x30\x00\xcd\xaa\x95\xed\x7c\xc3\x43\x8b\xac\x41\xdd\xa5\xd2\xa7\x72\xd9\x39\xfa\x44\x15\xe0\xb9\x97\xb8\x1b\x6c\x5f\x8d\x70\xdf\xa9\xf8\x20\x00\x59\x73\xb5\x00\x9f\x56\x00\xa0\xc9\xf8\x11\x92\xac\xc6\x5e\x43\x63\x2f\xa2\xe7\x04\xa0\xab\x85\xbd\x26\xb6\x65\xed\x85\xb4\xcb\x4d\xfa\x46\xfe\xa3\x5a\x2e\x3e\x69\x75\xc2\x38\xbb\xdc\x82\x6a\x9d\x85\xd3\x5e\xdc\x90\xce\x53\x6e\x72\x2b\xe4\xde\xaa\x15\x06\xa8\x3b\xb6\x13\xc2\x5b\xc1\xf2\x26\x9f\xb2\x49\x0a\x6c\x68\xfe\x0d\xc3\xb1\xe1\x39\xb6\x28\x98\x72\xfb\x72\xfa\x49\xfe\x7d\x1d\x06\xa0\x30\x24\x60\x60\x35\x50\xda\x9f\xca\xff\xab\xe5\xd0\x2b\x2c\x85\x2c\x67\x8f\x25\x43\xaf\x46\xb8\xe6\xc4\x6a\xad\x4b\xc7\x1b\x7d\x48\x0c\x1f\x6f\xfa\xb1\x16\x1d\xab\xd3\xb1\xa6\x1d\xba\x5c\x44\xab\x13\xea\x2e\xd9\x54\x79\x10\xb8\x1d\x74\x2e\x67\xb6\xc3\x2d\x00\x40\xc8\xe5\xd0\x46\x3a\xf2\xe5\x07\xb1\xdb\xf1\x74\x20\xf9\xf2\xa8\x72\x21\x42\x9a\xf2\x1f\x75\xbc\x63\x3a\x00\x00\x83\x3e\x7d\xef\xe4\xe2\x43\x6c\x1c\xb3\xe2\x98\x03\x07\xd9\xcb\x81\xdd\x3f\xd0\x1e\x47\x85\x00\xab\x2f\x65\x53\x92\x35\x58\x67\xd1\x33\xfb\x68\x9b\x71\xd6\xcd\xba\x4b\x5a\xe7\xda\x1f\xaf\x18\xee\x5d\x84\xe3\xbd\x4d\xd7\x9a\x7f\x49\xe7\x5f\xd8\x97\x4b\xea\xe1\xd2\xb2\x6a\x21\x85\xab\x98\xfa\x12\x1a\xbe\x62\x76\xf0\x73\xd5\xd2\x3c\xab\xef\x7d\xa2\xb1\xa4\x4e\xcb\x43\x83\x0c\xa8\x99\x43\xaf\xab\x5a\x0a\x67\x04\x3d\xec\x50\x4f\x20\x81\x95\x32\xc5\xdc\xa7\x38\xfb\x14\x5b\x9f\xd0\xf0\xf3\x3b\x2d\x7a\xd3\x68\x00\xb8\x79\x58\x37\x84\x3f\xa1\x2c\xbd\x46\x88\xe7\x2a\xec\xfd\x1d\xaf\x44\x77\xb7\x54\x0e\xd2\x18\x08\xdd\x0f\x8d\xd8\x77\x5a\x56\xe5\xeb\x90\x80\x30\x00\x9c\x3a\xa4\xf2\xe0\xa4\x0e\xae\xed\x90\x4f\x1a\x4d\xbd\xa2\x92\x2d\x10\xa4\x84\x4a\xb6\x60\x07\xaa\x93\x09\xf5\x33\x01\xa1\x15\x2a\x6d\x6a\xc4\xf1\xf0\xe5\x2c\xcc\x50\x34\x17\x5f\x5f\x0d\x82\x1c\x31\x4b\x70\xb9\x42\x05\x97\xa8\x74\x44\x53\xc4\x08\x5d\x28\x6c\xaf\xd6\x31\xae\xcf\xd5\x0b\xd5\x5f\xb1\xe1\x09\x84\x40\x42\x51\x61\x70\xbf\x54\xe3\xd4\xa7\x8e\x47\xb9\x29\x94\x12\x42\x2c\x8a\xe2\x23\x64\xfe\x32\x1a\x07\x20\xaf\x8f\xc8\x34\x65\xc5\x52\xbe\x27\x65\xce\x32\x0e\x47\x5f\xde\x1d\xc5\x62\xc2\x61\x64\x34\x6e\x40\x66\x1d\xc6\x54\xbc\xbb\x5a\x57\x5e\x7d\x56\x8f\x28\xb0\x95\xb3\x97\x69\x56\x78\x1e\x50\x59\x91\xca\xa2\x93\x33\x67\x7f\x8c\x84\xb6\x4c\x1e\x50\x72\xdd\x92\x07\x94\x1c\xb8\x6c\xfa\x50\x3e\x97\xbd\xa6\x5a\xc7\xcf\x0e\x12\x68\xe5\xc2\xe1\xd1\xc9\x88\xc7\x1c\xa8\x57\x64\xd7\xa6\x9c\xdc\x94\x5d\x9b\x28\xd4\x26\xf4\x06\xf5\xb5\xa0\xd0\x56\xfd\x1e\x51\xae\x0b\xbd\xad\x8c\x74\x2a\x50\x9d\xeb\xe7\xe2\x77\x30\x40\x1f\x92\x1b\x46\x64\xfa\x85\xaa\x62\x82\x4c\x4a\xb5\x3d\xd2\x9f\xd6\x37\x0a\x02\x4d\xde\xe2\x14\xd2\x98\xc2\x3f\xf3\x75\xb0\x21\x3b\x60\x30\xf4\x1d\x13\x1d\x4e\x50\xc6\x1b\xa4\x39\x9b\x0a\xb8\x9d\x7e\x59\x73\x05\xaa\xe4\xad\xaa\xad\x11\xf3\x7f\x75\xf1\xaf\x77\x64\x21\xd9\x5b\x72\x63\x0b\x99\xde\x52\xbe\xba\x58\xfe\x4b\xf8\x8d\x9c\x4b\x5d\x81\xbb\x0f\x25\xb0\xdb\xc5\x87\x06\x90\x8b\x5d\x66\xe9\x3a\xed\xf4\x23\x8d\xf1\xde\x2d\xef\xd7\x42\xd6\xba\xbc\x8f\xcb\x7b\xb7\x9e\x6c\x37\x5f\x69\xbb\xff\xdb\xdc\xd8\xd1\xaa\x81\x46\x50\x36\xed\x16\x2c\x42\xda\x73\x94\x75\x9f\x26\xd0\xe6\x55\x1d\xc5\xdd\x47\xfe\xfe\x74\x05\xa9\x42\xe0\x83\xc8\x1a\x3d\x66\x7d\x9a\xfa\xc6\xa1\xa8\x79\x73\x47\xf9\xea\x51\x00\x8e\x7c\xa0\xfa\xc6\xd1\xaf\x7d\x1d\x12\xe0\x23\x7f\xaf\xaf\xe9\x98\xab\x2f\x1b\x0d\x33\x7d\x48\xa3\x9e\xaf\xbd\x72\x05\xb3\xe8\x28\x4f\x97\xc1\xaa\x88\x40\xcb\x19\x68\x39\xeb\xfa\xda\xdd\xbf\xa1\xbf\xb7\xbd\x75\x68\x6f\xdf\x8b\x44\xeb\x40\x60\x1c\x94\x35\x67\x75\xa6\xbc\xe5\x50\xaf\x62\xde\xd9\xfe\x72\xb5\x13\x72\x5a\x39\xf6\x55\x8e\x7d\xa1\xf3\x2f\x0c\xca\x55\x38\x7f\x15\x6e\x5f\xb1\x82\xab\xc8\xfa\xa2\x26\xb8\xea\x4e\x2f\xea\xdd\x2b\x2b\x8f\x32\xb4\xce\xd2\x6f\x4f\xb9\xfe\x8a\x8b\x5a\x0a\xd5\x7c\x08\x09\xd7\xf5\xf9\xd7\x30\xdc\xe2\x0f\x57\x79\xfe\x15\x79\xb8\x4a\xfe\xaf\xbf\xe8\x2a\xf1\xbe\xca\xdb\x9b\x06\x1c\x51\x43\x8d\xf4\x6f\xeb\x5f\xdb\xd7\xd7\x87\xcf\x86\xeb\x42\xe6\x10\x28\x4c\xeb\x78\x7f\x9d\xbf\x1d\x05\xd6\x85\x2a\x78\x8a\xfa\xdf\xa7\xba\xd5\x93\x7a\xe6\xc3\x73\x9f\xdf\x27\x1b\xed\xf9\x3e\x05\xe3\xcf\x5c\x7a\xe6\xd5\xa3\x61\xf9\xa2\xa5\xb7\xd5\xd6\xa6\x8a\x5c\xd4\x49\x0f\x25\xe9\x43\x10\xf1\xe0\xb4\x1e\x94\xcc\x53\x23\xf4\x9a\x6c\xf6\x42\x7e\xdf\xba\x1b\x4f\xe5\xd2\x53\xa1\xf4\x10\x02\x3c\xb4\x7b\xcf\xfe\xf2\xbc\xd7\x2d\xf8\xf6\x21\xbb\xf8\xbe\x96\x9a\x95\xc1\x95\x22\xf8\xa4\x0e\x90\x9c\x57\xbb\x8c\x13\xf8\x56\x8b\x2b\xd5\xf3\xf1\xe6\x3e\x5e\xde\x67\x0f\x55\x1b\x96\xea\xc7\x52\x5d\x59\xaa\xfb\x4a\x35\x5d\xa9\xa6\x2b\x3f\x98\xce\xef\x1a\x79\x9d\x63\x76\x9d\xdb\xfe\x2f\xaf\x99\xa8\xdd\xc7\x67\xf9\xf8\x14\xa4\x15\x6a\x9c\x17\x7c\xbb\x45\xf0\x42\xe2\x76\xc0\x34\xf3\xa7\x86\x44\xca\xe0\xc7\x0d\xfe\xd7\xe0\xf7\x0d\x9e\x94\x40\x7b\xf5\xbb\xe5\xe7\x36\x0e\x9b\xa7\x09\x77\x88\x92\xbd\x5a\xd9\x68\xb5\xb2\xd2\x56\x63\x76\x35\x6c\xd7\xca\x1a\x27\x38\x3b\xb6\x5c\x35\x95\x56\x84\xae\xd5\x86\x96\x0f\x4b\x7e\x97\x1c\xed\x20\x86\x8e\xd0\xb5\x46\xf8\xbc\xb3\xf7\xfa\xbe\x8e\x11\x79\xeb\x2d\x5f\x8e\xe2\x6f\xf0\xd4\x28\x22\x54\xcb\x63\x85\x96\x86\x0f\x88\x41\x06\x0d\xd6\x3c\x60\x05\x82\x9c\x77\x8c\xce\x4f\x23\x0f\x1c\xe8\x68\x44\x3c\x48\x3b\x26\x99\xc7\x1a\x21\x68\xae\x32\x16\x9e\x20\x06\x4a\x19\x82\xc2\x31\x3a\x2f\x0e\xbd\x4d\xcb\x33\x88\x86\xc7\xd8\x3d\x32\x9c\xcb\x47\xe6\x71\xa3\xee\x09\x39\xda\x38\xb3\x7d\x61\x12\x6d\xae\xcf\xbf\x8b\xf6\xb0\x9c\x9b\x6c\xb3\x84\xf8\x4f\xdf\x02\xab\x97\xf0\x7f\x09\xbd\x57\x7e\x2e\x1f\x93\xa7\xf6\xda\x33\x5d\xdd\x37\xde\x5e\xad\xfc\x2e\x34\x70\x12\x79\x4f\x22\xef\x09\xd1\x9b\x30\xc1\xc9\xe3\x48\xb5\xe5\x89\x50\x31\x91\xea\xd8\xc1\xab\x5f\x7e\xd9\x3f\x87\x73\x28\x5f\xbb\xa7\xa7\xfb\x2e\xc9\x09\x26\xa4\x9b\xaf\x5d\xc6\xd9\x97\x31\xb2\xbb\x5f\x2e\x9d\x9c\x2b\x73\xa0\xae\xa0\x7d\x7d\x9d\xf0\xe9\xd1\x4e\xad\x91\xd1\x57\xf0\x47\x74\xd9\x2c\x28\x35\xa8\x3c\x66\xd6\x9c\x42\x23\x18\xda\x72\x9a\x74\x58\x5d\xeb\x53\x4e\x24\xc8\xb4\xc0\x09\x46\xd8\xc4\xff\x9a\xd8\x5b\xab\xef\x0a\x92\xce\xbb\x53\xd2\xe0\xd6\x1c\x17\x1c\xb1\xd5\xf6\x31\xed\x92\x5e\x9f\x6a\x09\xbc\x72\x7a\x30\xce\xd6\xb9\x1c\xdc\xd7\xe3\x3d\xa2\x05\xc6\xee\x52\x62\xb0\xe4\x05\xca\xb2\x94\xf0\x2f\xa0\xfa\x05\x42\xbf\x3e\xb2\xb0\xb5\xe9\xd5\x08\x77\x76\xf7\x38\x67\x77\xf7\x91\x8e\x59\x46\x56\xe7\xa4\xc1\xb0\x5b\x25\x5e\xb2\xdb\x72\xb5\xb2\xf3\xd0\xf2\xc7\xd9\xb9\x64\x19\x6e\x45\xfd\x4b\x38\x4a\x19\x5a\xb5\x46\x28\x3b\x76\xea\xdc\x33\x5a\x65\x1c\xe5\x06\xf2\xc7\x1b\x57\x7d\x80\x6d\xce\x9c\x50\xdf\x06\xaa\xd9\x8a\x50\xb6\x82\xfa\xcd\x75\xd8\x64\x76\x37\x48\xf3\x4e\x65\xbf\xc0\xcc\x1b\x14\x67\x53\xcf\xde\x40\xce\x1b\x4c\x7a\x7b\x76\xdb\x13\xd9\x9e\xc8\xde\x9d\xc7\xe5\x8a\x09\x44\x9d\xc1\x85\x1a\x9c\xaa\xb1\x7c\x4a\x1f\x5e\x50\xea\x28\x8d\x39\xc4\x82\xcf\x20\x3e\xcb\xfd\x3d\xd1\x2e\x23\x75\x49\x10\x1a\x00\xb6\x04\x6c\x2b\x47\xad\x3e\x5d\xed\x4a\x02\x81\xcb\xad\x62\x71\xab\x63\xf4\xe5\x8c\xc1\x81\x0e\xe8\x82\x80\x7d\x1d\x6f\x9c\x8b\x89\x10\xe0\x80\x2b\xe0\xac\x4d\xfc\xb5\x35\xde\x57\xf3\xbd\xd9\x23\xbe\x7d\xf4\xd5\x9c\xfb\x3b\xde\x95\x47\x1f\xff\x7c\x8b\x6b\xca\x3d\x83\x76\x03\xe0\xa5\xb2\xb2\x1a\xe1\x6e\x86\xec\x2f\xa0\xb8\xf0\xc9\xa5\x85\x7e\x29\xe1\x5f\x20\x90\x7b\x40\xc7\x01\x4e\x2e\x90\xc6\x25\xb1\x7d\xc1\x3c\x2e\xe0\x07\x76\xf6\xa4\xff\x50\x2d\x41\x5e\x00\x72\x8b\x93\xf2\xab\x72\x1c\xa9\x6c\xd2\xd1\xb4\xa0\x3e\xd2\xc6\xcf\x02\x29\x34\x9e\x42\xe3\xe5\x21\x70\x28\x57\xb7\xc6\x57\x8f\x87\xfe\xd1\x27\x9c\xdd\x0a\x91\xab\x5b\x8e\x66\xdd\xe7\x07\x54\x23\xec\x9d\x82\xe2\x29\x10\x3e\xc1\xbd\xaa\xbd\xd5\x5e\x5a\x89\xc0\xe7\x8a\x07\x31\x9f\xc5\xa7\xa0\xef\x03\x24\xfb\x80\xd3\x3e\xa5\x82\xd8\xd4\x02\x5f\x5a\x8d\x70\x2e\x5b\x5c\x1b\xc3\x13\xc8\xd9\x60\xa4\x0f\x50\xe1\x01\xac\x38\xa2\x5d\x46\x6c\xdc\x0c\x4c\x00\xa7\x50\xec\x13\xe0\x4c\x35\xc2\x59\xbc\x3d\x52\x0e\x9c\xd2\x3c\xe0\xa8\x1a\xf1\x29\x77\x10\x3b\x54\x7c\x9d\x57\xc6\xb7\xc4\x2c\x52\x40\x14\xca\x82\x22\x42\xc9\x33\x77\x39\x94\x98\xc5\xe9\x5c\xf2\xed\x71\xae\xa1\x92\x64\xa5\x67\xc1\x81\x08\x86\x3c\x06\xb5\x48\x4c\x93\xc0\x4b\xd5\x37\x02\xd4\x4d\x25\x23\x31\xed\x65\x80\x9d\xfb\xae\x8c\x86\x91\x03\x57\x4b\x28\xd9\x5e\x22\xb3\x55\x68\x70\x2c\x49\x76\x59\xff\xc3\xaa\x1e\xd6\xff\x48\x79\xf4\x7c\x7d\x0c\x57\x52\x32\xcd\x86\x13\x36\x90\xb0\xa5\x84\xcd\x27\x26\xce\xc8\xa9\x6c\x70\x02\xb7\x4f\x6f\x6e\x74\x19\x2f\xb7\x75\xfa\x9d\x33\x9a\x1d\x5c\x66\x57\x22\x45\xa1\x4a\x28\x48\x09\xc5\x2f\xb1\x7e\x2a\xcb\xe0\xdc\x92\x3c\x4a\x5a\x62\x3e\x2e\xe0\x6b\x01\x74\x8e\xce\xd7\x59\xe1\x76\xd4\x5a\x12\x9d\x6b\x28\x89\x34\xe5\xfe\x51\x28\xc4\x92\x02\x5a\xca\x27\x97\x90\x06\xb5\xd4\x58\x0a\x48\x97\xb4\xcc\x3a\xfd\xa9\x9c\x2e\x86\xd4\x65\x8e\xad\xd3\x00\x6c\xf9\x5a\x90\xc8\x75\xda\xe5\x5a\xed\x66\x71\xec\x38\x7f\x4a\x53\x85\xfd\xaa\x05\x84\x36\xee\x37\x6f\x4e\xcc\xfe\x1a\xde\x2c\x57\xea\x79\x29\x87\x09\xa5\x31\x01\xc1\x53\x23\x9c\x33\xce\x87\x92\x73\x61\xb3\x38\x83\xeb\xa3\x24\x13\x4a\xa6\x46\x1c\xc3\xc1\x52\x30\x7e\x5a\x35\x48\xc9\x39\x3c\x4d\x28\x7b\xa9\xf1\xd4\x1a\xe7\x4e\xd5\x3b\x5e\xe7\xba\xf2\xe8\xab\x39\x92\x6b\xa5\x44\x14\xfd\x42\x7d\xbb\xe3\x87\x3e\xd7\x4a\x79\xfb\xf1\x4e\xc1\xe8\xd4\x48\xb7\x8e\xc1\xd8\x3d\x68\x53\x0c\xee\x94\xa2\xef\x33\xb8\x62\xf0\x01\x70\x3f\xf5\x29\x57\xcc\x91\xab\x13\xa7\x5c\x43\xd4\x0a\x47\xf9\xc6\xc1\xd8\x7a\x64\xca\x8f\xbc\xf8\x11\x80\xc1\x3f\x57\x2e\x54\x39\x25\x0a\xfc\x05\xd5\xca\xf6\x32\xb2\x7b\xe4\x68\x53\x5b\x4e\x8c\x94\x1d\xb2\x88\x3a\xab\x9c\x1b\xc9\x3d\x2a\x9a\xe5\x66\x39\x37\xfa\x9a\x46\x38\x79\xab\x5d\xa8\x76\xbc\x5e\x8f\xbb\xe6\xee\xef\xd2\xe7\x9c\xe1\xcd\x52\xbc\x53\xd7\xd1\x72\xf8\x14\x74\x53\xf2\xac\x2b\xe8\x73\xfe\x38\x37\x17\x18\x9b\x9c\x67\x1d\xa9\xcd\xfe\xd4\x5f\x01\x7c\xeb\x39\xbe\xd1\x49\x4e\xe9\x44\x2b\xd2\xb3\x8e\x3d\xeb\xd8\xe3\xfe\x3e\x33\xc4\xda\x5e\x23\x7d\x3c\xe7\x4c\xc9\xaa\x35\xed\x29\x04\x16\x38\xac\xfe\x72\x56\xbb\x62\x5b\x2b\xc9\x19\xdd\x62\x0d\x97\x7a\xf5\xab\x1e\x5a\x86\xa7\x14\xfa\xad\x76\xd7\x00\x7d\xdd\xa5\x87\x54\xe1\x29\x28\x78\xca\x1f\x1e\xc8\xfa\x43\x23\xf0\x40\xdc\xdf\x95\x74\x55\x58\xf1\x10\x4d\x3c\x20\xf9\x87\x5e\xe0\xdd\xe6\x26\x97\x2c\x65\x9d\x7e\x60\xa5\x5f\x28\x89\x15\x26\xff\x58\x47\x9f\x30\xf9\x27\x7c\x4e\x99\xaa\xfa\x52\x9a\xb3\x8f\xe9\x04\x26\x16\xf3\xdd\x7d\x3a\xbb\xd2\x8c\xec\x40\xba\xbc\xd5\x0e\x2d\x47\x8d\x0b\x28\xc9\xf3\x09\xb5\x7e\xad\xd3\x8c\x7a\x85\x32\x46\xe2\x11\xac\xbe\xe3\x15\xde\xc2\xb7\x51\x1c\xca\x31\x38\x3d\x02\xde\x43\x20\xdc\xee\x53\x2d\x07\xce\x1b\xc4\x36\x18\xca\xdf\x06\xbc\xa0\xa2\xaa\x6a\x39\x46\x28\x8c\x14\x39\x62\xbf\xce\xb1\x81\x7e\xb7\xf4\xa3\x32\xc6\x01\x40\x8b\x4b\x3b\xf1\x67\xa7\x72\xaa\x6a\xa5\x0d\x25\x2d\xd9\xed\x54\x86\x32\x94\xe3\x85\xfb\x43\x93\xad\x46\xca\x01\xe2\xf2\x86\x54\x67\x48\x87\x06\x6b\x33\xd8\x84\xb4\xb9\xaa\xed\x71\x8e\x94\xd4\x22\xeb\x3a\x94\x6a\xda\xc5\xd2\xbe\x56\xce\x50\xbb\x44\x9c\x24\x57\x38\x52\x8e\x6c\x80\x60\xc3\x84\xe4\x55\x60\x18\x55\x9a\x94\xca\x94\x12\xc1\x45\x26\xc8\x77\xd2\xb7\x4e\x50\xf0\x64\x8d\xa4\x80\x7a\xb2\x3c\x69\xf3\x57\x6b\x84\x9b\xc5\x16\x4d\x16\x2c\x25\x8a\x9c\xa3\xbd\x0f\xa5\x8e\x0a\x63\x69\x53\xd4\x08\x4f\x64\xf5\xa7\x8e\x3f\xc6\x57\x1f\x63\xbc\xac\x94\x89\x98\x6b\x82\x1f\x4f\xec\xec\x93\xad\x3e\xbf\xf6\x7d\x40\x55\x41\xbb\xa7\x54\xd5\x54\x66\x3b\x71\xb7\x93\xcc\xad\xbe\x24\xe1\xec\x4f\x1d\x1f\xdd\x1a\x57\xce\xf9\x21\x05\x02\xcc\x9e\x42\x14\xf3\x53\x10\x8a\xed\x75\x2a\xce\xa5\xa7\x54\x57\xd3\x2a\x41\x65\xb3\x4d\x6c\xb5\x53\x72\x8c\xfe\x52\xd2\x34\xab\xb3\xfa\xef\x32\xa2\xfc\x53\xd8\x63\x2a\x4f\x9e\x80\x03\xf3\xeb\xe2\xd6\xf6\x89\xfc\x86\xed\x53\x33\x0d\x0f\x62\x4e\xd6\xe3\x54\x60\x3b\x5b\x85\x5a\x00\x60\xb2\xee\x70\x66\x57\x9f\xff\xe5\xd7\x72\xeb\xa7\x72\x5a\xac\x8a\x89\x55\x31\x71\x6c\x97\x47\xe6\x0a\x68\x94\xa4\x3b\xf0\x6d\xd7\x31\xc6\xaf\xab\xb9\x27\x02\x03\x53\xf1\xef\xdc\xee\xe7\xbe\x7d\x7c\x7f\x97\xe3\x3d\xd9\xdd\xa5\xb2\x5f\xfb\x59\xfc\xa9\xcb\xcf\x92\xfa\x03\x6e\x5f\xfe\xd2\xe5\x0e\xd0\xd6\xab\x23\x79\x61\x8d\x09\x56\xf4\xea\x7e\x2e\xb8\xc9\xe5\x1d\xa1\x04\x55\x6d\xfb\x5c\x75\x0c\xc4\xed\x4a\x68\x63\xd8\xcd\x05\xbb\xb9\x58\xfe\x0a\xb5\xaa\xad\xeb\xf3\x44\xe0\xc9\x12\xdd\x47\x2a\xad\x4a\xf4\x1d\xa9\xe0\xab\xda\x1e\x9f\xfa\xfd\xa9\xfe\xe8\x2b\x48\x2d\x4a\x5d\x4a\x44\x2f\xe5\xbd\xdb\x1c\xdb\x5f\x53\x39\xf1\xbc\x3c\xe5\x6d\xf6\xa2\xf5\xa8\x11\x49\x45\x5e\x58\xf0\xc8\x80\x1d\x60\xbc\x12\x9f\x77\xe2\x65\xac\x96\x1f\x07\xb3\x0b\xab\x2a\x18\x5c\xad\x71\x05\xb9\x0a\x5a\x37\x1c\xed\x06\x7c\xd8\x52\xa6\x02\xc6\xd5\x1a\x51\x7e\x8b\x78\x6d\xc3\xc8\x6e\xd8\x59\x3a\x24\x89\xc1\x31\x71\x31\xe6\x16\x2e\xda\xf4\xe3\xf7\xee\xf4\xa3\x24\xa7\xf5\x64\xd3\xf2\xdf\x62\x11\x1b\x07\x30\xb4\x59\xc2\x8d\x55\x9f\x87\xa8\x9c\x56\xc8\xe4\x08\xae\x1c\xa4\x0a\x87\xff\xc2\xa2\xa8\x11\x65\xbc\x3c\x47\xe5\x00\x27\x8c\x03\x80\x1c\xab\xdc\x71\x67\x8e\x9d\xe2\x40\x33\x53\x89\xac\x96\x77\xa6\xa4\x57\xb4\x81\x1d\x52\xc7\x24\x4f\x90\x7f\x07\xe3\x2b\xb6\x70\xc4\x0d\x0e\x14\xf5\x59\xed\x3f\x42\x09\x4b\x9c\x1e\xa4\x67\xf8\xc2\xab\xdf\x2d\x7f\xf0\xf6\xb9\xdd\x77\xee\x75\x1d\x89\x4d\x3b\xd1\x11\x7f\x38\x76\xa8\x23\xe2\x21\x20\x9d\x2c\xa5\x1a\xef\x5f\xeb\x97\x2f\x05\xc5\x70\xc0\x90\xdf\x60\x65\x09\x02\x96\x20\x63\xc9\x56\x49\x76\x51\x5e\xf1\x96\xbb\xdb\xbb\x34\xee\x9d\xba\x56\x6c\x8a\x5e\xd5\x1a\x79\xed\x33\xd2\x8c\xaf\x7b\x8e\x8e\x23\x11\x80\xe4\x7d\x52\x97\xc2\x54\x57\xcc\x07\xd1\x47\xa2\xef\x48\xc4\x20\xf9\xac\x90\x6f\xf0\xfb\x3c\xa9\x27\xf0\xf6\x46\x53\x75\xf5\xa7\x0f\x5e\xb9\xee\x00\x55\x93\xa4\x21\x96\xf4\xc4\x92\x92\x58\x8d\x7f\xfa\xed\x75\xf6\x08\xdf\x53\xf2\xd3\xdc\x7b\xb4\x4a\x9e\x99\xf9\xc0\x6d\x10\x36\x26\xaa\xc6\x44\xe4\x58\x2d\xb5\xfe\xcd\x33\x5d\xa4\xdd\x9b\x28\xcc\xb9\xa8\x30\x9e\x02\x8d\xc7\xbf\x7e\xee\xc3\x43\x97\xf1\xdc\x8d\xc7\xd7\x06\xd1\xaa\xb6\xfd\xd6\x6e\xb7\xf6\x55\xfb\x24\x57\xaf\xb4\xea\xeb\x91\x30\xc2\xe7\xbd\xe5\xf3\x96\x75\x3d\x81\xad\xaa\xdd\x52\xaf\x8f\xe8\xfd\xa3\xb2\xaf\xed\xf4\x29\x14\x35\x26\xe0\x8f\xdf\x81\x62\x31\x50\x2f\xc6\x07\x85\x39\xe8\x83\x0d\xb6\x34\x88\x50\x04\xa4\x75\xb0\xbd\x41\x81\x6a\xa4\xc7\x97\x71\x2d\x1d\x0c\xb6\x7d\xf0\x1a\xc2\x75\x82\x47\x19\x3c\x6e\xf4\x14\xd5\x37\x32\xba\xa5\x46\x18\xf4\x2e\x90\x77\xb5\xde\x14\xb8\x62\x82\x04\x26\xb8\x5f\x82\xd4\x65\x8e\xfe\x74\x69\x43\x5b\x1e\x25\x6b\x33\x29\x40\x26\xd8\x5d\x82\xdd\x25\x3b\x33\x69\xc9\x0a\x64\x86\xd0\x66\xb5\x3d\xce\x03\xe5\x0b\xbf\xc6\x28\x4b\xa2\xd2\xcb\x12\x1c\xad\x96\x6f\xcb\x77\x86\x28\x9d\x63\xb7\x7f\xda\x7d\x7e\x2b\x24\x31\x1f\x79\xf2\xbc\x26\xae\xfa\x29\xf9\x3c\xf9\x68\x33\x5b\x2d\xaa\xbd\x51\x89\xb5\x7f\xdc\x4a\x9c\x4f\x98\x50\x97\x3c\x34\x44\x4b\x8d\x2c\xfd\x6d\x9c\x4b\x0a\x66\xfc\x75\x96\x11\x8d\xef\x95\x05\xc4\xbb\xb6\x30\xae\x2d\xd4\xc6\xeb\x76\xc6\xae\xb3\x77\x80\xbe\xb8\x94\x16\x2e\xae\xd5\xd5\xc3\xf7\xa7\xb5\xaf\x95\x11\x74\x93\xb6\xef\x52\x12\x52\x96\x59\xb7\xd3\x48\xb7\x4b\xfb\x8c\xb7\xbb\x89\xf3\xe9\xf5\x59\xe4\xa0\x3e\x6e\x99\x5c\x17\x60\xf9\x51\x4f\x79\xc0\xd4\x0f\x92\xdf\x13\xed\xde\x21\xc0\x55\xdf\x79\xc0\xcb\x2d\xb1\x35\x52\xce\x19\xe0\xfa\x19\xb2\x7a\xd1\x6e\x1f\x91\x27\x15\x96\x07\xbf\x94\x30\x5e\x5d\xd9\x31\xa3\x5b\xd7\x41\xa4\x4b\x14\x53\x78\xaf\x8e\xe1\x62\x12\xee\x55\x7b\x7a\xc0\xda\x0f\x60\xfc\x51\x85\x79\x54\x61\x62\x6e\x08\xb8\x90\x6a\xbb\x8f\xbd\x89\xd3\xcc\x1d\x3c\x1c\x35\xcb\x76\x58\xb0\xcb\x95\x54\xed\xba\xba\xcf\x99\xab\xfb\x7f\x77\xbb\x6b\xa7\xfb\xe5\x8a\x11\x58\xba\xb8\x13\xee\xfe\x39\x79\x9f\xbe\x11\x19\x41\x3c\x01\x17\x5c\xfc\xaa\x99\xbe\x72\xff\x57\x65\xed\x55\xab\x7d\x89\x4c\xe0\x29\xac\x76\xbb\x66\x1a\x3f\x5a\xd9\x3e\x55\xa1\x4a\x09\xae\x1c\xe4\xdd\xed\x26\xbe\x6e\xfd\x4e\xce\x9c\x97\xf8\x71\xe2\x1f\xc6\xa6\xe7\xa5\x7f\x02\x06\x0f\xba\xe2\x09\x0f\x3c\x0b\xc0\xe3\xa0\x3f\x2f\xfd\xe3\xe8\x3f\x2f\xfd\xc3\x0e\xf5\x38\xfa\x4f\xd8\xe0\x59\x36\x1e\x5e\x28\x85\x24\xf1\x48\x93\x3e\x22\x85\x4f\xdd\xf0\x5b\xbf\x3e\x47\x10\x42\x97\xb3\xfb\xd4\x8e\x3f\x0e\xf4\x03\xe0\x7f\x17\x7a\x55\xdd\xf3\x53\xa5\xfd\xd4\xd9\x3f\x55\xce\x4f\x05\xf3\x7b\x5d\x0f\x2a\xfb\x05\x91\x49\x84\xb8\x5a\x4e\x1e\x3c\x28\x37\x85\x8c\x71\xb5\x90\xac\x58\x8b\x18\x3b\x1f\x8c\x26\xe1\xa2\xfc\x04\xf5\x3f\x21\xe7\x4f\x10\x1a\xfb\x45\x62\xc5\x48\x5c\x17\xd5\x72\xfe\x70\x29\xd9\xd8\x85\x1e\xf3\xb3\xb9\x7d\xb6\xb5\x4f\x92\xe4\x93\x18\x41\x16\x5f\x2d\xa7\x50\x15\xa9\x80\xfa\x27\xb3\xf2\x3d\xbf\x53\xfe\xe6\x6b\x27\x0c\xce\xc9\xc2\x5c\x2d\xe4\x68\xe7\xd5\xe4\xf0\x14\x8e\x0d\x45\x49\x43\x99\x18\x46\x8d\x1c\x38\x69\xc6\xf9\xf5\x6b\xfc\x7c\xdd\x0e\x23\x47\xbf\xce\xc5\x18\x34\x54\x04\x0e\x35\xac\xe3\xc8\xf6\xe1\x16\x1a\x07\xae\x94\x80\xc4\xc0\xca\x33\x5a\x8e\xcb\xdf\xa2\x7c\xa6\x5a\x8e\xa3\x3c\x9c\xbf\x17\x7d\x7c\x06\xc7\x14\x77\x63\x86\xbb\x1d\xf8\x5a\x42\xe1\x52\xc8\x23\x86\x7c\x21\xee\x8d\xea\xf7\xa7\xe5\xe4\x29\xa0\x0b\x45\x4f\xa1\xfe\x32\x30\x9d\x84\x27\x18\x41\xda\x41\xe9\x99\x72\x9b\xc4\xb7\x51\x0e\x25\xd4\x29\x9c\x2b\xf3\x50\xf8\x33\xc9\xd1\x67\xa8\xb9\x0c\x35\x8e\xd1\x38\xc5\x68\xfc\xe8\x93\x63\x93\x15\x0b\x38\x51\x18\xc1\xfa\x63\xf4\xfb\xd3\x3e\x5e\x55\x28\x27\x32\x20\x38\x19\x1d\xf0\x34\xb5\x0f\x71\x31\x7f\xfd\x72\x32\xe0\xd2\xe6\x20\xcf\x20\x65\x31\xe5\x59\x27\xd4\xda\xc4\xd0\x3c\x39\xf7\x53\x9e\x75\x42\xb2\x4e\x69\x8d\xa9\x78\x6d\x4a\x62\x60\x3a\x4c\x1c\x15\xd5\xd7\x62\x6c\x1d\x52\x52\x98\x4a\x27\x33\x16\x33\x62\x7d\x97\x2b\xec\xbe\xbe\xeb\xac\xfe\x46\xbf\x87\x9b\x28\x67\xa9\xac\x26\x71\x60\x54\xdf\x75\x9a\x65\xf6\xc3\x2a\xf4\xb5\x7b\x57\x67\x99\x4b\xf3\x18\x37\x07\xd0\xd6\x57\xcb\x39\xe3\x1a\xba\xdb\x98\x14\x13\xe5\x7d\x8d\x70\xbf\xb8\x89\x66\xd1\xc4\xbd\x84\x0a\x3f\x91\xe0\xd7\x91\x1c\x32\x49\x36\xf3\x6d\x92\x82\xc3\xce\x58\xe3\xe5\xb8\x0c\x4e\x8c\xbf\xb7\x0b\x70\x96\xbb\xba\xdc\xb1\xa5\x16\x79\x41\xfa\x2e\x88\x6d\x44\xf9\xd5\xef\x63\x9e\xd6\xf8\x47\xee\xc2\xa7\x90\xa6\x0b\x0e\x75\x31\xb1\x51\xe4\x27\xfe\x8c\x72\x9e\xea\x2c\x29\xc1\xc5\x34\x5e\xf0\x76\x38\x33\xca\xd9\xd2\xc2\x71\x42\xa5\x63\xc2\x48\x7c\x1b\x89\x33\x23\x95\xff\x94\xcb\xc5\x09\xe3\x1a\x62\x63\xda\x12\x26\x9b\xfb\x48\x5a\xbe\x5a\x05\x9b\x9c\x33\x73\x6c\xcb\x3d\x2b\xae\xa9\xb6\xc6\x3d\x91\xed\xad\xdf\xe4\xb4\xb7\x77\x7f\x4b\xf5\x6c\x45\xa6\x5b\xf8\x67\x5b\x0d\xb6\x22\x53\x45\x37\xd5\xaf\x6f\xe4\x4a\x22\xb2\x2f\x77\x8a\xf3\xe4\xfa\xcc\xf6\xcd\x98\xdd\x1c\xe2\xcd\xe0\x55\xaa\x93\x2a\x64\xaa\xe5\x3c\x35\x1f\x92\xc4\xd4\x68\x47\x0a\xea\x51\x9e\xfb\x78\x5b\x4f\xec\xee\x2b\xa2\xe4\x5a\xf9\xfd\x87\x9b\x7e\x7c\xbb\xaa\x95\xea\x1b\x97\xfe\xc2\xb3\x7b\x30\x85\x1f\xa1\xa0\xb3\xdb\x31\x82\x92\x64\x74\x0b\xd9\xd6\xf1\x75\x16\xfe\x2d\x02\x90\x09\x55\x53\x6d\xbb\x4a\x7d\xbc\xef\x52\x22\x2a\x84\x60\x77\xae\x91\xa5\xf5\xbd\xdc\x35\xab\x04\x39\xff\xea\x3b\xe6\xf4\xa7\xce\xe2\x30\xa9\x38\xb7\xcb\xa7\x0a\x9c\x54\x8d\x53\xc7\xfb\x3d\xd2\x86\x5c\xd2\x63\x2f\x60\x03\xe4\x85\xa9\x55\x4b\x93\x6a\x57\xca\x85\xea\x3e\x64\x67\x63\x3d\x15\x6f\x4a\x91\x5d\x9c\xc4\x17\xe2\x99\x3d\x50\x4e\xd5\xa9\x96\x2c\x8a\x7a\xf7\x6b\xed\xba\x2a\xb6\x49\x42\x26\xe6\xfb\xbc\xb0\xdd\x38\x21\x12\x0f\x44\x62\x86\xc8\x67\x2e\x3d\xf5\x1b\xcf\x7a\xf5\xac\x6f\xea\x52\xf2\x99\x33\x84\x21\xf3\x29\x3a\x26\x0c\x59\x23\x9c\x27\xf8\x4e\xa1\x9d\x27\xc1\xfe\x14\xa5\x3e\xae\xea\xb3\xc7\x11\x8c\xac\xbe\x34\x9d\xd4\x9f\x5f\x8b\xe7\x3e\x31\xdf\x27\x2e\x87\xb2\xc2\xeb\x9a\x64\x0b\xdf\x75\xae\xdf\x0f\x67\x53\x6d\x8f\xd7\x15\xd4\xca\x3f\x1c\x09\x0f\x23\xc2\xc3\x38\x28\xc4\x5b\x7d\xe7\x8e\x72\x74\xca\x7a\x9c\x5f\x59\x7d\x53\x15\x4a\xb5\x61\x44\x9b\x69\x64\x18\xe9\xe3\xb5\xdf\x35\xc2\x79\x8a\x3a\xa6\xac\xac\x6a\x43\x5b\x23\xdb\x75\xb6\x73\x6b\x2e\x4d\x85\xa8\xf3\xdb\xef\x72\xa7\xaa\x4f\x64\xe5\x53\x7b\x83\xdb\xbe\x5a\x6e\x16\xb1\x64\xfc\xa6\x5f\xcb\xb1\xb0\x51\x21\x4e\x22\xa4\x47\xe0\x4b\x02\x6a\x24\x54\x53\x54\x6b\x04\xc7\x30\x7b\x29\xa4\x38\x42\x4a\x44\xe0\xb3\xda\x3a\x5e\x4a\x13\x76\x24\x70\x0f\x94\x03\xc4\x49\x82\xad\x84\x7c\xc2\x4c\x50\x7d\xae\x12\x84\xa5\xda\xad\x64\x77\x25\xb4\x59\x0a\xb7\xe7\x6a\xec\xa6\xf4\x17\x8e\xa8\x39\x5a\xfe\xbc\x85\x6f\x3b\x45\x06\x23\xa8\x0e\x0d\x92\x3e\x40\x15\x02\xe8\xa0\xfa\x43\xdb\xe3\x12\x65\xd8\x67\xf1\xf5\x2e\x61\xfb\x75\x5d\x01\xcb\xce\xc2\x7f\xb3\x84\xea\xad\x8d\x61\x55\x8c\x0d\x7b\xb7\xa5\x3a\x61\xcd\xe3\x40\x73\x9e\x68\xaf\x41\xd2\x29\xdb\xf2\x97\xea\xe1\x6c\x9d\x60\x81\x73\xbf\x0e\xc7\xeb\xc0\x23\x1e\x09\xc3\x03\x17\x7b\x82\x8c\x2b\x94\xd8\xe1\xd1\x1c\xee\xe9\x91\x34\xb3\x3a\xd5\x88\x6f\x24\xf5\x0a\x47\x7b\xa2\xbd\x0f\xd8\x41\xb8\xb7\x23\xb5\x72\x20\x7a\x2f\x16\xb4\xab\xcc\xf3\x2a\x6d\xbe\x8a\x7c\x2f\x1c\xe7\x55\xda\x09\x8d\x5d\x23\x8e\x97\x08\x52\xb0\x29\x4c\x52\xfd\x1e\x67\xf9\xb3\x7b\xe1\x5c\x9f\x44\xe8\x93\xfe\x92\x4e\xaf\x71\xf6\xf3\xee\x63\xa4\x50\x30\xbb\xc0\x1a\x3e\x09\xab\x47\x62\xf6\x61\xc0\x7a\x38\x87\x1e\xae\xe5\x87\x31\xeb\xe1\xca\x7a\x8a\x58\x1f\x66\xa9\x87\xbb\xe8\x49\xc9\x3e\xa9\xd1\x27\x61\xfb\x04\xc9\x3e\xe1\xcf\x8f\x85\xf6\x45\xdb\xd2\xea\xa6\xd8\x72\xe4\xc0\x93\xf0\x67\x7e\x56\x5d\xec\x71\xd5\x0f\x2d\x1b\x98\x35\x6b\xb5\xfc\x76\x1f\x29\xdd\xd1\x9c\xa6\x6d\xa5\xab\x67\xf8\x60\x92\x3e\x61\xb9\x0f\xea\xe8\xb3\x76\x7d\x5d\x9f\x06\x69\xf4\x81\x05\x7d\x98\x3c\x06\xcb\x67\xb0\x64\x06\x58\xc1\xc8\xe6\x07\x85\x00\x13\xa6\x1a\xc2\x57\x43\xc5\xc2\x98\xbf\x96\xb5\x0c\xe5\x26\xbd\x40\x42\x29\x49\x2e\xd5\x08\xcb\x16\xda\xac\x65\xd2\xf0\x61\x90\x5c\x4a\xe2\x49\xd5\x67\x39\x4f\x36\xb3\x2a\x2f\x21\x1f\x32\x4b\xf5\xa9\x71\xc9\x13\x01\x21\x02\x4b\xd5\xba\x9a\xc4\xcb\x69\x9b\x99\xed\x0a\xa7\x15\x7e\x67\xf8\x9d\x01\x92\x73\x5b\xd8\x4c\x90\x58\xc2\xbf\x3e\x7d\xda\x4f\xcb\x1e\x86\x51\xb3\xbf\x04\x8f\x20\x04\xea\x02\x69\x43\xb8\x27\x91\xb8\x52\x04\x05\x95\x99\x57\x2b\xc1\x42\xf6\xfe\x48\xad\xfb\x3d\x81\x9f\x26\x55\xfa\x29\xfa\xae\x96\x25\xac\xa2\x09\xc1\x85\xf2\xf0\xc4\x2d\x97\x70\xe1\x99\x42\x65\x29\x70\x9b\xe6\xc3\x1c\x82\xfd\x42\x74\x93\x55\x3c\xa5\x86\x26\x44\xdd\xc4\x86\x38\x25\x6a\xa6\xef\x9a\xec\x87\xe9\x9a\x93\x45\x3d\xd9\x3c\x42\x2c\x69\x2d\xaa\xe3\x97\xf1\xbe\x32\x7b\x55\x98\x5f\x35\xc8\x64\xb7\x4f\x76\xfb\x94\xf6\x99\x82\x7f\x93\x55\x3f\xd9\xf0\x53\xf2\x67\x46\xdb\xc9\xa7\x8f\x6c\x1b\xd8\x6f\xd8\x6d\x39\x6f\xc7\xf7\xd5\xfa\x97\x34\xac\x8c\x2d\xca\x4e\x36\x4f\xc8\x35\xd5\x08\xbb\x97\xdd\x6e\x86\x4c\x73\x60\x7a\xfa\x53\xaa\x6a\x42\xf2\x61\x8c\xab\xe3\x7d\xba\x7a\x44\x2b\x29\x84\x49\x65\x7a\x16\xb8\xc6\x6b\xdc\xb7\x48\x89\xf0\x59\xa6\x99\x39\xcd\x58\x6c\x73\x49\x50\x2a\x95\x9c\xa7\xf2\xf3\x5c\xac\xf7\xc5\xd7\x58\x12\x86\xe4\x45\x13\xbe\xbc\x46\x54\x31\x49\x05\x48\xe2\x2d\x49\xb9\x65\x86\x2c\x33\x47\xa1\x77\xd9\xba\x57\xbb\xb5\x6c\x5d\x69\x0d\x90\x3a\x05\xec\xd5\x6f\xab\x38\xb4\x92\x0f\x6a\x9f\x04\xad\x97\x60\x36\x3e\xb9\x54\xa2\x5e\xc7\xa4\x7e\x57\x3a\xb1\x87\x59\xdd\xfc\xc7\xc5\x5b\x5c\x42\xbc\x4b\xed\xd9\xc2\x30\xba\xa5\x53\xc8\x41\xe5\x56\x5d\xb3\x55\x8d\x6e\x32\xcc\x9b\x24\xf3\x26\x71\xb7\x89\xde\x91\x80\xaa\x96\xbd\xfa\xda\x52\x15\xc8\x17\x26\x8f\xb6\x4e\x05\xcb\xad\x69\x76\x90\x6a\x05\xf2\x05\xce\xf9\x9e\xc7\x5a\x77\x04\x6e\x0f\xae\x9d\xc3\xd6\x3a\x9e\xf2\x39\xa0\x5b\x3c\xa0\xe3\xa9\x1d\xbe\xf3\x39\x40\x61\xe6\xc9\xe1\xd1\x1c\xbe\xcf\xc1\xb9\x7b\xac\x03\xc7\xdc\x38\xea\x70\x0e\x1f\xe7\x78\x8e\xc7\x4a\x72\x78\xe8\x87\x1f\x74\x78\x3d\x87\x87\x75\xcc\xab\x63\x26\x1c\xb3\xe8\x58\x4f\x0e\x01\xc8\x63\x45\x3a\x66\xd1\xb1\xc2\x1c\x9e\xd7\xc1\xfe\xab\x5a\x3b\x55\x6b\xa7\x1a\xef\x54\x59\x5d\x7d\x9f\xaa\xff\x11\xf8\xbf\x92\x09\x97\xef\x73\xd9\xde\x17\xdf\xed\xc5\xc8\x7b\xd9\xc0\x97\x1f\x77\x59\x68\x64\xc8\xab\x65\x91\x0e\x56\xe8\x68\x68\x18\xeb\x54\x02\x01\x8b\x2a\xc6\xb2\x5a\xd3\x04\xf8\xc1\xca\x78\x13\xd7\xda\x7e\xa5\x68\x9e\xf7\xf4\x59\x13\x9e\xd5\xe0\x79\x5b\x9f\x54\xf3\x83\xa2\x7e\x56\x92\x47\xc3\xe7\xa1\x6a\x79\x50\xd7\xf8\xcc\x12\xda\x3b\xd5\x5d\xe7\x9b\x6d\xd9\x3a\x8b\x37\xf4\xf8\x3e\x8f\x37\x44\x34\x34\x49\x84\x26\xe9\xd0\x3a\x7e\x68\x1d\xe9\x6a\x6a\xc3\x9e\x37\xe2\x49\x9b\x3f\x5e\xc6\x73\x07\xde\x6e\xe8\xd9\x62\x91\x82\xbf\xa9\x1c\x7e\x37\xbb\x65\x9d\xaa\x98\x52\x5d\x2c\x36\x95\xa2\x55\x65\xb5\xf6\xf1\xce\x9d\x6c\xdd\xc5\x76\x9d\x2c\xd5\xc5\x22\x7d\x3d\xc2\x52\x4d\x96\x6a\xb2\x72\x27\x3b\x76\x1a\x99\x5f\xb5\xec\xd2\x58\x46\x04\xfb\x63\xb1\x81\x11\xb6\xc4\x72\x85\x16\xd4\xec\x2b\xa7\xba\x2c\xe9\x85\x25\x81\xb0\x24\x19\x36\xcb\x79\xbb\xf2\xfe\xd1\xbc\x48\x1a\x7c\xf5\xab\x8e\xef\x3a\x7e\xc3\xf1\x7b\x3a\x59\x71\x3b\x99\x40\x9f\x84\xa6\xc1\xd7\x55\x49\xac\x94\x60\x49\x42\x5d\x07\x8c\x75\xb5\xac\x59\xe0\x38\x34\x1a\x49\xc0\x38\x59\x53\x38\x9e\x63\x0a\x8a\x3b\x70\x42\xf9\x2c\x05\xfb\x4b\xa1\xc7\x82\xab\x83\x82\x0d\x0c\x4c\x01\x17\x5b\x7d\x81\x73\xfc\x19\xdf\x6c\x83\x94\x99\xe9\x2c\x04\x8e\x8b\xda\xec\x42\xa6\xb9\x84\x09\x17\xd2\xc6\xd5\xa4\x8d\x94\xd4\x36\xda\xfd\x4d\x53\x4f\x61\x63\x19\xa1\x65\x3c\x32\xae\x8f\x6c\xc4\x51\xe6\x8f\xb4\xb7\xc6\x19\x92\x0c\x55\x79\x88\x23\x34\x7e\x18\xdd\x47\x38\xfc\xd0\x31\x3f\xe8\x44\x65\x01\x83\x3b\x1b\x77\x77\x48\xb8\x83\xbb\x6d\x42\x2a\xa0\x50\xfe\x73\x15\xec\xdc\xdd\x61\x5d\x65\x20\xca\xca\xb8\x83\x71\x4f\x07\x8c\xd1\x23\x28\xdb\xb9\xf8\x75\xe4\xc3\xaa\x65\x42\xa2\x0b\x40\xd8\xfa\x6a\xa3\x2b\x23\x11\x92\x06\x21\x00\xea\xc9\x87\x4a\xf2\x21\x5a\x7d\x18\x50\x1e\xee\x93\x87\x8c\xf5\x21\x94\x7c\xaf\x85\xc7\x98\x66\x02\x90\x9f\xbc\xf5\x17\x5d\xda\x7f\xbb\xcf\x30\x14\x34\x65\xb0\x7c\xb2\x6b\x1f\x87\x92\x46\x7c\x7e\xbb\x15\x6c\x95\xf6\xcb\xc5\x7e\x96\xf9\x8f\x2a\xeb\x07\x1d\xfe\xb5\x8c\x19\x2d\xd7\x0f\xcf\xd6\xf7\x14\xbf\x0b\x4a\x8d\xd1\xe5\xf3\x4a\x12\x50\x8c\x0d\xa8\x82\xd1\xf2\x60\xf0\xa0\xc3\xe2\x3a\x50\xcf\x0f\x62\x63\xc3\x86\x39\x64\xda\xe8\x69\x56\x9f\x81\x26\x64\xa8\x0c\x3c\x2c\x90\x91\x90\x25\x30\xa9\xa1\xd4\x31\x20\x53\x03\x82\x39\x14\xc6\x06\x5c\x72\x58\x56\x23\xdb\xa4\x12\x80\x84\xb0\x09\xe6\x64\x58\x86\x43\x09\x46\x42\x17\x25\x1c\x00\x66\x9d\x32\x94\x04\x08\x95\x36\x33\xb2\xa6\xad\x98\x76\x79\x12\x2c\x49\xe2\x25\x49\xb5\x3c\xa9\x96\xe7\x84\x4f\x9a\xb6\x6e\x32\x27\x35\x62\x9c\x81\x20\x33\x3d\x65\xa0\xa7\x4d\x7e\xc2\xe2\x4c\xf8\x9b\x29\xb0\x3d\xb3\xaf\xcf\x54\x81\xda\xa1\x68\x59\x06\x0e\xb3\x82\xb1\xd6\x44\x6c\xb0\xbf\xf3\x34\x6e\xa3\x83\x76\x70\x24\xa7\x03\x7b\x2d\x31\xd5\x21\x40\x41\x44\xcf\x02\x25\x6e\x12\x38\x49\x82\x28\x49\x10\x25\x49\xa7\xe4\xb4\x3d\x4e\x4f\x07\x91\x6e\x4e\x1b\x08\x19\x95\x3a\xbe\xaf\x20\x74\xa7\xa4\x9a\x81\xbf\x04\x2c\x97\xe7\xbe\x14\xfc\x2e\x38\xef\x05\xc9\xbd\x84\x4e\xb1\xda\x54\xdb\x26\x06\xc3\x04\xa2\x82\xab\x81\xe7\x26\x71\xe7\x24\x66\x9d\x5c\xdc\x11\x0c\x37\x89\xe1\x26\x71\xed\x24\x2e\x9c\xea\xf7\x59\x8c\x20\x58\x79\xc1\x7e\xa5\x79\xd5\xba\x4e\x17\x65\x33\x91\x84\xea\x97\x59\xba\xcc\xdb\xa5\xda\x61\x43\x84\x6c\xf4\x11\x1b\xe1\xe0\x86\x1a\xd9\xde\x85\xad\xb8\x78\x2b\x4f\xde\x24\xc1\xb6\x54\xc3\x56\x6e\xbc\x09\x7d\x6d\x85\xc6\x9b\x3c\xd8\x9e\x8a\xb5\x09\x89\x6d\xe5\xe4\x5b\x21\xf9\x9e\xca\xb7\x77\x63\x23\x60\x1d\x6c\xd7\x74\x30\x13\x7a\xb2\xcc\x1f\xe1\x3a\x66\xce\x68\xf3\x47\x68\x0d\x8b\xd8\x11\x8c\xe7\x46\x27\xc7\x37\xcf\x6d\x83\x05\x76\xc1\xfb\x72\x84\x6a\x8e\xe7\x78\xcc\x81\xe3\x8d\x3b\x84\x04\x0e\x9a\xbf\x23\x3c\x73\xcc\x9f\x23\xcf\x7d\x3c\xcd\x83\x51\xec\x78\x4f\x8f\x39\x76\xbc\x95\x47\x10\xeb\x98\x09\xe7\xb6\xc1\x52\xf7\xe7\x90\x8b\x38\xb7\x4d\xa7\xd7\x67\x95\xf9\x90\x1d\x4e\x83\x5f\x87\x1d\x97\x52\x4b\x29\xb5\xec\x44\x59\x57\x86\x48\x82\xa5\xc4\x5a\x4a\x76\xe5\xf5\x6e\x5e\xf8\xb6\xeb\x6d\xbd\x17\x23\x1a\xf2\xcd\x2b\xbc\x74\x05\x9c\x2e\xca\xce\x2b\xec\x74\x91\x6f\x5e\xf4\x9d\xc4\x23\xab\x75\xae\xd2\x69\xb4\x06\xd7\x1c\xb8\x9e\x3b\xc2\x99\x44\x26\x93\xcf\xb3\x7e\xde\xfd\xe7\x1d\x7f\xd1\x26\x09\x39\x31\x06\xec\x9b\x3e\x25\xf9\x46\x60\x32\x09\x49\x26\xc9\xc9\x1a\xe9\x23\x7b\x44\x50\x8d\xd9\x62\xf6\x92\x18\x49\x02\x21\x49\x68\x24\x1f\x73\xef\x71\x4d\x1e\x27\xe3\x31\x4e\x1f\x83\xf1\x5d\x46\x96\xd2\xb0\x87\xf2\x9e\xeb\x9f\x82\x01\x29\x18\x50\x2d\xc3\xe4\x75\x9f\x79\xc2\xcc\xa1\xe2\x2d\x78\x30\xbf\x10\x24\x0b\x68\xfb\x50\xf4\x1d\x8c\x85\x10\x30\x0b\x45\xdf\x01\x79\x1f\x50\xf8\xb1\xb5\xb0\x08\x65\x80\x57\xdb\xc7\xf7\x91\x4c\x98\x0e\xb9\xbd\x8f\x31\xc2\x00\x71\xe5\x32\xa2\xa7\x50\xc1\x84\xce\x2f\x33\xc4\x38\xd3\xe6\xcc\x1e\x71\xcc\x74\x8c\xab\x49\x7a\x33\x4f\xa2\xfb\x43\x38\x6d\x48\x3e\x8f\xd9\x68\x06\x34\xeb\xe8\xd1\x63\xb4\xc1\x82\xea\x7d\x34\x3a\x1f\x92\x1e\xe2\x1f\x06\x31\x60\x10\x23\x90\x7d\x67\x32\x55\x10\x25\x41\x10\xd6\xac\x6b\x5b\x65\x0b\x98\x09\x83\x49\xa7\x23\x71\x5e\xb7\x13\xf5\xec\x96\xdb\x36\x09\xba\x6d\x24\xd1\xab\x19\xaa\x60\xfd\x37\xf4\xff\xfe\x59\x14\x1d\xa6\x82\x7e\x16\xc6\x3b\x08\x9a\x0e\x3a\xa6\x83\x1c\xe9\xf8\x76\x42\x02\xf5\xa9\xb3\x04\xbd\x04\xf9\x8e\xa0\x20\x91\x80\x40\x47\x10\x70\x48\x71\x7e\x61\xaa\xd7\x56\x44\xd9\x15\xa7\xd3\xd1\x52\xc1\xca\x8a\xaf\x8a\x82\x7b\xa0\x99\x15\x02\xdf\x03\x85\xac\x6c\xff\x2a\x10\xbe\xaa\x0b\x2e\xf4\xc6\x93\x54\x7f\x08\x91\xe1\x6f\xca\xde\x30\xc2\xae\x40\x24\xf5\xb2\x65\x56\x85\xb8\xf2\x97\x04\x96\xb0\xed\x42\x4b\xd8\x62\x5c\x6b\x66\x60\xd9\x1b\xec\x07\x81\x22\x49\x09\x66\x69\x62\x10\x4c\x73\x23\xc7\xf7\x6b\x89\xc7\x48\x6c\x7e\x1d\x58\x7a\xdd\x87\x97\x95\x90\x14\x62\x1f\xd9\xe1\x19\xf4\x3b\xf6\x9d\x71\x3b\x11\x8a\x72\xc7\x8e\x36\x3a\xbc\x24\x1c\x15\xf6\xe8\x80\x1f\x8a\xec\x80\xcd\xee\x71\x16\x82\xb4\x64\xfe\x8e\x14\x74\x41\x47\x0b\x45\x8a\xca\xbf\x5a\x49\x48\xd6\xc2\x6e\x7a\x1c\xe4\xb6\xa8\x5a\x03\xcf\x62\x34\x65\x8a\xdd\x3c\xed\xf2\x09\x9f\x94\x70\x72\x09\xb1\xa4\xf2\x21\xd5\x3c\x54\x6b\x67\x97\xd6\xe3\xc2\x2a\x87\xaf\x11\x56\xc4\xee\x11\xf6\x80\xdd\x1c\x8d\xc9\x94\x90\x99\xd1\xe1\x96\xd3\x57\x60\x2d\x08\x63\xd8\x11\xa6\xe4\xea\x8c\x0e\xcf\x08\xb4\x70\x9a\x27\x3a\xe3\x69\x95\x9e\xb7\xd5\xe4\x05\x69\xb8\xc5\x13\x6d\x31\x22\xfb\x6a\x7b\x84\x14\xa5\xa0\x8e\xd5\x75\xda\x41\xa6\x75\x15\x39\x7e\x2e\x81\x1c\x14\xf6\xd5\xda\xcd\x11\xa4\x08\xc6\x2c\xc5\x8c\xcb\xfe\xb5\x24\x30\x97\xc4\xe6\x12\x40\x5a\x52\xfa\x8b\xcd\xb3\x04\xfc\x70\xda\xd5\x2e\x6f\x4f\x57\x2f\x07\x63\x8a\x51\x2f\x97\xa4\xc4\x92\xde\x59\x52\x49\x4b\x3a\x08\x4f\x5e\x8d\xf4\xa7\xce\x55\xed\xf6\x9a\x57\x75\x75\xa0\x42\xe5\xdb\x6f\x37\x0f\x6d\x6a\x55\xbb\xe1\x5b\x75\xe7\xb7\xa4\xf4\x96\xfe\xda\x84\x39\x37\x92\x90\x3d\x7b\x44\x7a\x6d\x76\x12\xef\x74\x22\xce\xde\xfd\x7a\xbf\xee\xbd\x1b\x71\x8a\xe0\x87\x3d\x8b\xe4\x58\xed\xda\x52\x6d\xf6\x74\x4f\xf3\x48\x7a\x9f\x16\xc8\xbc\x02\x00\x08\x7f\x8e\x3b\x7c\x10\x07\x1d\xce\xe5\x41\x37\x74\xb8\xe3\xe7\xaa\x5e\x43\xfe\x73\xcc\xfc\x63\x9d\x3f\x5c\xd8\xc3\x3d\x3d\x76\xb7\x83\x68\xe8\x70\x5b\x8f\x27\x7b\xb8\xb6\xc7\xd3\x3c\x9c\xd7\xd3\x18\x3e\x7f\x35\x8a\xb6\x6a\xed\xbc\x12\x59\x12\xb6\x97\x90\x8f\xb5\xa2\xfa\x76\x64\x88\x40\x2e\xf2\xf5\x9b\xaf\x2b\x13\x6c\x4e\xc2\xcc\xd5\x62\x1e\x95\x1a\x42\xce\x8b\x6c\x2d\x11\xbe\xa5\xba\x85\x6a\x1b\x11\xd8\x23\x02\x06\x9c\x69\xef\xd1\x83\xb5\x7d\x12\x6e\x4a\xc2\x93\x7c\x57\xed\xb0\xfa\xf6\x3b\x56\xd6\x43\xcf\x82\xee\x3c\x51\x9f\x57\x6b\xa7\x56\xa5\x86\x9e\xe5\xa1\x6a\x41\x68\x5e\x57\xe8\x64\x97\xfd\xd7\x5e\xe9\x09\x3e\x7f\x17\x29\xaf\xda\x85\xeb\x5b\x90\xf9\x3c\x98\xfe\x27\x35\xf7\x60\x70\x1f\xea\xa7\x87\x54\xea\xb1\x1f\x1e\xf4\xff\x53\xa6\xfd\x90\x47\xbd\x96\x66\x51\xe8\xfd\x04\x51\x1e\xee\x5b\xeb\x64\xf5\xed\xc8\xd2\x50\x39\x6a\x4f\x4c\x49\xaa\xf2\x5b\xab\x3f\xb5\x3e\xb5\x87\x66\x18\x97\x10\x4b\x3b\x69\xf9\xb6\xd5\x1a\xe9\x24\x18\x77\x3f\xbf\x3e\xab\xfb\xf6\x6b\x98\xc2\xf2\x79\x6b\x44\x7f\xf4\x35\x9d\x2b\x3c\x90\xa3\x5b\x67\x45\x5f\x4d\x80\xe1\xd7\x4a\xa6\x75\x08\x01\x4e\xb1\x76\xd5\x29\x39\x36\x49\x3b\x4f\xc1\x83\xf9\x1d\x36\xc0\x79\xdd\x0f\x48\x44\xfb\xf2\x53\x2f\x47\x80\x13\x04\x2c\xe0\x17\x41\x2d\x42\xe5\x70\xa8\x10\x8e\x29\x81\x33\x9d\x35\xf1\x92\x22\x80\x0e\x68\xec\x5a\x92\xed\xc2\xa7\xf7\x5f\x11\x00\xfe\x3e\x1a\x81\x6d\x0f\xdd\xf6\xd6\xfd\xdb\x73\x8f\x1d\x56\x0a\x08\x29\x22\x79\x9e\x38\x54\xf2\xf1\x01\x57\xdb\x3b\xaf\x9d\x91\x4c\x1d\x52\x8e\x0b\xdd\x78\x11\x6b\xdc\xa3\x0a\xe8\x00\x5e\x49\xd9\x5d\x68\xc8\x2b\x89\x77\xd1\x74\x5c\x98\xc8\x7b\xa4\x8c\x10\xdf\x5f\xc4\x38\xb7\x89\xef\xc9\x1e\x48\xe4\xd6\x4e\x0a\x2a\x85\x2a\x41\xd5\xd0\xeb\xd2\xfe\xfc\xa5\x65\x9a\x6a\xe0\xf2\xbb\x7b\xdf\xe4\x77\x23\xb5\xb3\xbe\x61\xea\xad\x3d\x94\x24\x1b\xd0\x90\x6a\xea\x41\x34\x7a\x60\x8c\x1e\xa4\xa3\x07\x7e\xeb\x21\x90\x3c\x78\xc7\x23\x1b\x88\x24\xc5\x81\xfe\x88\x80\x6b\xb5\xe4\xd0\xa4\x5f\xac\xf6\x84\x60\x6b\x3f\xb5\x27\x02\xe6\x64\xf7\x55\x77\x64\xd7\x7b\xb4\x08\x99\x9d\x94\x18\x36\xfe\xda\x6a\x25\x1c\xc0\x6a\xb2\x69\xd6\xed\x7a\x28\xa7\x3c\xdf\x6a\x8d\x48\x1a\x08\xfe\x4d\xd6\x02\xe4\x65\xf5\x1d\x39\xfa\xc8\xa7\xbf\xf5\xeb\x48\x61\xb9\x89\x76\x7f\x22\x4f\x9b\xd6\x22\xe2\x2b\xd5\xf6\x0e\xc5\xf7\x54\x05\x6d\x97\x5c\xd9\xde\xe5\xb5\x5f\x74\x78\x5b\x9d\x80\x15\x1b\xad\x4a\xb5\xf6\x94\x6b\x1c\x8f\xb5\x9d\x74\xcf\xcb\xb3\xb3\xb6\x23\x92\xda\x56\xc8\x6d\xdd\xd8\xac\x82\xdd\xc7\x5b\x27\xb7\x3b\x73\xac\x7b\x47\xc2\xe4\x48\x83\x1c\x7f\xbb\x14\x68\xed\x02\xfc\x38\x5e\x18\x19\xad\x63\xe7\x3a\x44\xa0\x8f\x55\xe5\xa0\x74\x3b\xd6\x9c\x83\x5c\xee\x58\x49\x8e\x15\xe9\x3c\x6b\x3b\x6a\xbb\xf3\x7a\x47\x68\x8f\xcc\xbe\x63\x1d\x3e\x56\xa4\x63\xed\x3a\x56\xad\x63\xd5\x3a\x66\xdd\x69\xa1\x2c\x44\x13\x07\x49\xc5\x41\x34\x77\x10\x4d\x9c\xd7\xde\x1c\x2f\xd2\xaa\x75\x08\xe6\x21\x3f\x49\xf4\x9e\x89\x38\xb4\xf6\x08\x15\xc8\x68\xaf\x3c\x9d\x8b\x68\xee\xfa\xb5\xb7\x57\x4b\xec\xec\xa8\x3e\x13\x15\x67\x8d\x1c\xeb\x3f\x14\xb8\xb5\x54\x0c\xe4\x89\xa8\x3c\x4f\xed\x89\x96\x3c\xf3\xea\x45\xaf\xf3\xe0\x09\x93\x77\x83\xb0\xeb\x4d\xb5\xca\x04\xbc\x49\x59\x54\xdf\x4e\x01\xce\x40\x98\x8d\x3c\x64\x3e\xde\xe5\x13\x73\x78\x62\x05\xa4\x1c\xab\xed\x1d\xc1\x5a\x3d\xbb\xb5\xe6\x47\xf7\xeb\x7b\xa5\x3b\x5e\xdd\xf3\xf9\x4f\xcf\x6f\x82\x7c\x7f\x00\x81\x5d\xa3\xf6\x00\xea\xde\xe3\xdb\xe4\xb2\x52\xff\xfa\xd6\x6e\xab\x67\x0a\xc3\x26\xcf\xa7\xec\xda\xea\x5b\x9d\x97\x75\xd9\x6a\x9b\xc2\xb9\xb9\x7b\xc4\x1a\xbd\xb4\x7c\xa7\x14\x28\x2e\x6b\xb5\xfa\xdd\xfa\x16\xbe\x5c\xee\xfe\x5e\xe7\x0a\x2f\xa7\xf0\xf2\xfe\x00\x21\xac\xfb\xfb\x03\x87\x50\x75\xbd\xf9\x75\xbb\x51\xe7\x7c\xbf\xe3\x97\x9c\xd5\x6b\x7a\x5d\xf9\xf6\xea\xdf\xf0\x09\xfb\xca\xb1\x37\x10\xc6\x21\x20\x19\x46\x42\x62\xb7\xda\x5a\xfd\xc9\xb9\x04\x61\xab\x68\xa9\x2b\xab\x30\x70\x5d\xe0\x81\xa8\x76\x59\xf7\xc5\x88\xc1\x09\x44\x30\xb1\xaf\x07\x3e\xf6\xea\x5b\xb5\xaf\x11\xd1\x55\xf5\xb8\x17\xa0\x42\xbd\x42\xa8\x8c\xaf\xd6\xba\xac\xda\xb2\x05\x4c\xc0\x83\xa5\x24\x02\x78\xa6\x56\x5e\xd4\x30\xe2\x98\x92\x68\x9f\xc4\xd3\x40\x41\x38\x54\x65\x8d\xaf\xe5\x22\xa5\x80\x59\xc6\xf8\xc3\xcb\xd4\xe7\x57\x88\x18\x66\x47\x21\x79\x05\x6a\x62\x42\xcc\x14\xd7\x77\xaa\xf3\xce\xb0\xb6\x66\xc7\xf5\x32\x3a\x96\x67\x2d\x9b\xbd\xf6\xf5\xca\x68\x8d\xb3\xa2\x49\x82\x4c\x31\xca\x89\x4d\x61\x8a\x5d\x4e\xfe\xcf\xcc\xbe\x8e\xd4\x64\xf6\x3a\xc8\x07\x60\xed\x91\x96\x4a\x92\x53\x49\xcc\xaa\xfa\x2c\x78\x15\x5d\x08\x68\xd6\xe8\x38\x9d\xb5\x4f\x44\x69\x89\x2e\x2d\x29\xec\xc5\x37\x53\xcd\x9c\x38\xa8\xab\xbf\xb5\xb5\xde\x81\x38\xee\xf1\x13\x8a\x67\x25\x5b\x01\x89\x19\xee\xd3\xaa\x01\x14\x04\x80\x54\xcf\xe8\x14\xde\xcf\x0e\xc6\x87\x6f\x1d\x91\x2e\x3c\xde\xb4\xe3\xdd\x39\xaa\x2a\x0f\x90\xed\x51\xb3\x78\x1e\x7b\x17\xb0\xf6\xa0\x80\x39\xde\xb8\xa3\xe6\xf2\x48\x41\x1e\xdc\x21\x97\x8f\x77\xf9\x6f\x37\x9b\x2c\xcf\xba\x73\x3a\xb1\x85\x6e\x8f\x25\x8d\x6e\x38\x1f\x60\xe1\x03\x44\x54\x3b\x5b\x2b\x4b\xaf\x38\x56\x16\x47\x22\x0d\x7c\xfe\xba\xe7\xaf\x23\x98\x93\x84\x74\xaa\x35\x72\x25\x95\xc4\x7a\xfc\xbd\xe4\x61\xb3\x45\x5f\x9f\xbb\xf1\xa4\x08\x11\xfb\xe6\xeb\x64\x19\x88\xd7\x43\xda\xf2\xf8\xab\x1d\x9d\x7f\x40\x05\x4f\xba\x4d\xd4\x3e\x81\x3a\xe6\x97\xe2\x35\x29\xfe\x92\xa2\x24\x29\xf5\x93\x2c\xad\x9a\x8d\xd5\x3a\x52\x2c\x26\x6f\xf7\xad\x27\xa7\xaf\x60\x4d\x68\x8b\xf3\xf4\x78\xaf\x2d\x7d\xae\xb3\xfa\xbb\x76\x5f\xd9\x0a\x73\xfa\xfa\x7d\xbc\xf8\x8e\x76\xb3\x2c\x77\x83\xac\xa4\xa2\xb6\xdf\x73\x58\xa5\x87\xe5\x7a\xd8\xb2\xc7\x7a\x75\xfc\xaa\xfb\xf5\x1a\x52\xe7\x02\x81\x7f\xa0\x32\x01\xb4\x1f\xde\x50\x95\xa9\x11\x2d\x04\x27\x1a\x02\x96\x10\x13\x71\xd8\x44\xea\x37\xd1\x4f\x2f\x39\x8f\x25\x0b\xb2\x2e\x8a\x34\xd9\x8e\xd3\xc5\x0b\x58\xca\xa9\x30\x04\x18\x61\x5c\xb2\x69\xf7\x00\xed\xa8\x9b\xb9\x07\x08\xc7\xb7\x4b\x4d\x06\x4e\x8b\x5a\x19\x40\xd0\x81\xe7\x31\xde\xbf\x67\xf5\xa0\x58\xc1\xda\xce\x2f\x5b\x02\x17\x2c\x04\xd4\x76\x64\x43\x59\xc0\x48\x78\x74\x83\xb7\x36\x58\x27\x64\xf0\xab\x05\x1d\x11\xad\x90\x29\x09\x90\x3c\x02\x83\x19\x20\x37\x19\x4d\x65\xcb\x87\xc7\x9e\x32\x31\x6a\x4c\x91\xd3\x29\xdb\x31\xc5\x52\xa7\x3a\xd7\x89\x5a\x88\xdc\x5c\x92\xaa\xab\xb6\xdf\x7d\x3e\x39\x6b\x46\x4c\x61\x91\xc1\x59\x60\x36\x98\x0f\x12\x2d\x5d\x22\xa4\x4b\xe4\x74\x89\x8a\xae\xda\xe1\x1d\xa7\xe5\xd1\x0a\x20\xe2\xe0\xab\xe1\xa9\xa2\xe1\xb3\x75\x3d\xbc\xef\xf8\x51\xb6\x39\xbf\x4f\x4b\x6b\x8a\x14\x9b\xe1\x07\xc7\xcf\x01\x07\x3a\x20\x43\x07\x3c\xe9\xd8\x2b\x8f\xf8\xfb\xc1\x21\x74\xb0\x0a\x9d\xd7\xf5\x67\x83\x6f\xa9\x12\xeb\x1b\x6d\x37\xb0\x15\x3a\x89\xcc\x97\x53\x02\xf0\xfc\x06\x34\x61\xd5\x5e\xed\xa7\x65\x19\x34\x18\xd2\xee\x3e\x9b\xf2\x92\x9d\xb1\x1a\xf4\x98\xde\xd0\xaf\x23\xb0\xde\x5c\xfe\xa7\xc8\xce\x3b\xde\x85\xf2\x4f\xaa\xe5\xf5\x79\xcb\xda\xb3\x7d\xed\xcb\x79\xcb\xda\xcb\x95\x03\x7b\xf2\x07\xcf\x53\x7e\xf6\x8b\xf7\xda\xaa\xe0\x1d\x4d\xfe\xde\xb4\xf3\xce\x31\xb5\xde\x68\x3b\xec\xfc\xfa\x18\x9f\xda\xa9\x27\x6f\x6d\x46\x7f\xfa\xb4\x57\x5b\xbf\x6a\x4a\x07\x4f\x6f\xd6\xe4\xc5\x6d\xef\xdd\xbe\xbd\x83\xdb\xa3\x59\x05\x87\xb5\x70\xbc\xbf\xd7\x6f\xb8\xde\x4d\xd0\x32\xbb\x79\xed\xd7\x7c\x33\xfc\x25\xde\x91\xb8\x18\x44\xd0\x02\xfe\x6a\x8b\x6f\xab\x33\x3c\x79\x5c\xef\x20\x31\x70\x55\xb6\x41\x12\xb6\x5a\x12\x7f\x1f\x81\xbe\x96\x4f\xef\x1c\xea\xe8\xb7\x12\xbb\x43\xc7\x2b\xe5\x3e\x9b\xf4\x9c\xac\xdf\x5b\x2d\xc7\x0d\xcc\xb6\x3a\x67\xd9\xc5\x1a\xb2\x83\x56\xf2\x21\x35\x1f\x60\xed\xa9\x46\x70\x8a\x5f\x4c\xf6\xe8\xec\xca\x6f\xb5\xfe\x53\xa6\x61\x8a\x6b\x4c\x36\xeb\x14\x25\x9f\xf7\xd7\xb7\x3f\x8a\x31\x8d\xdf\xce\xc8\x73\x60\xfd\x83\xd7\x2e\x79\xaf\x75\x7e\x7d\xef\x4e\x34\xed\x6f\xed\x71\xc0\xea\x7b\xfd\x66\xfe\xd5\x52\x99\x61\xaf\xbf\xb6\xd7\xe5\x4b\x80\x25\x0e\x7b\xe3\xf0\xa9\xae\xdd\xf9\xde\xae\x98\xb4\x2b\x61\x02\x40\x22\x9f\xcf\x1b\xfa\xbc\x89\xef\x98\x0f\xf5\x16\xcc\xef\x13\x1d\xf8\x40\x61\x3f\x33\xe7\xf3\xdc\x3f\xcf\xf4\x8b\x6e\xcd\xdb\xdf\x59\xe6\x18\xeb\x71\x02\x00\xcc\xec\x79\xa5\xcf\xdb\x9f\xac\xcd\x29\xca\x30\xd9\xa5\x53\x4c\x61\x66\x8f\x9b\x8d\xe9\x3a\xd9\xf3\xd6\x31\xd6\xf9\x99\x3d\x0f\x7b\x96\x3a\x06\xa0\x77\xb3\x3c\xf7\x6a\x28\x82\x39\xd9\x71\x81\xd1\x50\x84\x06\xdf\xf6\x1e\x21\x82\xc0\x46\x6d\x22\xda\x63\x67\xb9\x7e\x43\x83\x84\xaf\xbf\x42\xb9\x5c\x28\x2e\x8b\xd6\x43\xe1\xbd\x93\x86\x8e\xd5\xb2\x87\xa2\xd5\x38\xa8\x6a\xbe\x59\xf9\x3b\xe3\x8e\x0c\x11\xdc\x97\x4a\x4e\x80\xa6\x84\xf8\x4e\xbc\x66\x7a\xe0\x0d\x8e\xaf\x19\x1a\x56\xaf\xed\x6c\x3f\x5c\x08\xd4\x9a\x62\x63\x4a\x53\x2d\x3d\x59\x1a\xb3\x09\xb2\x6f\xf7\x77\x5b\x59\x65\x5f\x81\x1b\xe1\x92\xc9\xed\xc9\x6e\x3c\x4f\x5b\x8d\xf8\x26\xf0\x7b\x80\xfd\x20\x0c\xaa\x6f\xb5\x6c\x6f\x0d\x6c\xbe\x33\x52\xac\x8b\x6b\x06\x8a\x29\xa4\xa8\x44\xcd\x1c\x31\x38\x56\xca\xea\x78\x96\x5c\x54\x47\x64\x3e\x4f\xe4\xcb\xee\x9b\x39\x9e\xe0\xe7\x99\x7e\xfd\x1c\xd9\xf6\x93\x37\x31\xad\x12\x93\xb7\x32\xad\x15\xd3\xfa\x30\xf9\x20\x93\xcf\x32\x57\xcf\x96\x6e\xfb\x78\x4f\xf9\xeb\x1d\xbf\x57\x18\x4f\xca\x5c\xba\x66\x23\x19\xcc\x08\x80\xe1\xd7\xfa\x23\x2d\x9e\x01\x5d\x31\x15\x09\x22\xa5\x3d\x53\xb9\x5c\x0b\x27\x28\xee\x6b\x66\x29\x7a\x43\x49\x4b\xa8\x9e\x8e\xfd\x14\x9e\x00\xb9\xf9\x00\x12\x0b\xcc\x19\x01\xec\x17\x98\x33\x62\x76\x11\x10\x9a\x78\xd5\xde\xb3\x73\xf6\xa2\xff\xb3\x45\xad\x91\x06\x2e\x64\x82\x4b\x71\xd0\x1a\x4d\x26\x0e\x74\x07\x1c\xa8\x00\xb3\x9e\x5a\xb7\x76\xbd\xd1\xcf\xc8\x3b\xce\x7f\x16\xd9\xbc\x76\x81\x2b\x9f\x21\x1e\x94\x84\x2b\x92\xbc\xc4\xfc\x3e\x6f\xd9\xe7\x6e\x7f\xbf\xbb\xe7\xae\xf2\xd4\x26\x4b\x6c\x3a\x72\xca\xc9\x4d\xbb\xcf\xb6\xe6\x6f\x7e\xd6\xf1\xa6\x37\x57\xd6\x8d\xbe\xcf\xde\x11\x31\x41\x4c\x2a\xd1\xb2\x1c\x72\xba\xc3\x0c\x99\x2d\x88\x1d\x2d\xa9\x0d\xfc\xd6\x15\xe1\x76\xb1\x6b\x5f\xbb\x72\x2d\x57\xb4\xe2\x2d\xcf\xee\xf3\x64\x3f\xf3\xe1\xf3\xf4\xbf\x9e\x0f\xa2\x7e\x53\xa6\x70\xb3\x3c\x4f\xbf\x9b\xbb\x9f\x1d\x2f\x0c\x6e\xe3\xb5\xc8\x79\x67\x1d\x64\x26\x6e\xe3\x06\xf8\x1a\xa7\x73\xf0\x6d\x45\xf4\x2a\x6a\x25\xec\x42\x03\x9c\x19\xef\x93\x55\xe5\x6b\x3c\xf9\x92\xc7\x4b\x7a\xf8\xdb\x1e\xc6\x85\x87\xa1\xed\x9d\xd1\x77\xcc\xfd\xec\x35\x84\x70\x2e\x3e\x1b\x84\xe0\x35\xa3\xec\x02\xf2\xeb\x78\x17\x2e\xbb\xe2\x8a\x97\xdd\xb6\x2e\x70\xb3\x61\xbb\x29\x7b\xc0\x35\xc1\xad\x1b\x8d\x91\xbf\x5f\x9e\x8e\xef\x7b\xe2\x3e\x64\xef\x53\xee\x9e\xd5\xf5\xb3\x9a\x29\x41\xbd\xe7\xd7\xca\x8c\x5a\x93\x6f\xdb\xc6\xec\x70\x96\xdb\xd7\x31\x7d\x1c\x6f\x5d\x26\x1c\x32\x79\xcd\x6f\x31\x5a\x59\x29\xde\xf7\xf7\xd6\xda\x7f\x6f\x9d\x59\xbd\xf7\xf7\xd6\xbe\x7f\x6f\xdd\xfa\xe0\x8c\xfa\x6f\x54\xef\xfc\x09\x2f\xbe\xb5\xea\xb8\x53\x63\xcb\x98\x73\xeb\x8c\xed\x5c\xa7\xd5\x71\x3b\xff\xa0\xd1\xdf\x3a\x7a\x0e\xa9\x33\x4e\x1d\x77\xea\xb8\x5d\x97\x3f\x75\x81\xed\xcb\x1d\x57\x57\xbe\xf5\xc1\xd5\xab\x0f\x6e\xfe\x6d\xc4\x15\x23\x03\xac\xf3\xac\xb7\xea\x3f\xf5\x4d\x63\x1e\xde\xf1\x1c\x31\xff\xc6\x91\x31\x7d\x70\x54\xdf\x73\x4a\xd9\x0f\x63\xaa\x1b\x19\xbb\x79\x25\xce\xf9\xbe\xbf\x91\xa7\x75\xfe\x6b\x02\x8f\xb9\x7f\x30\x74\x05\xcf\x53\x89\x75\x8e\xe1\xcc\xfa\x67\x2b\x76\x1e\x8d\x08\x1f\x0b\x9c\x7f\x34\x2f\x7f\x30\xb4\xc6\xfc\x56\xbd\x2d\xdf\xbc\xf7\x6f\x2c\xa6\xe5\xd8\x51\x57\x1a\x93\x40\xd4\x58\x5f\xad\x0d\x75\x60\x99\x28\x5f\x4d\xd1\x91\xa3\x59\xce\xe6\x9d\xfd\x9f\xeb\x9f\x16\xb6\x39\xaf\xfe\x4a\x95\xb4\x08\x85\xe2\xab\x85\x63\xe4\x6c\x4a\x3a\x41\xa2\x2f\xbe\xbf\xd1\x55\x7f\x59\x5b\xda\x98\xef\xd5\x9d\x68\x1a\x9e\xa0\x23\x3a\xa6\xd8\x67\x7c\x77\x46\x9d\x3e\xfc\x78\xa4\xb7\xa3\x83\xb2\xf5\xa3\x5e\xb8\xc1\xaf\xae\x91\x2f\xd2\x1d\x42\xee\x06\x3b\x39\xcb\x21\xab\x9b\x9e\x75\x57\xc8\xef\xd5\x2d\xc6\xb6\xee\xf5\x8e\xa9\x4f\xf9\x9d\x50\x93\xfa\xd5\xb1\x16\x69\xb7\x72\xcb\xeb\x0e\xd0\x7c\xb3\x43\x7e\xad\xbd\x96\x7d\x09\xbc\x3c\xa7\x15\x99\xea\x57\xce\x25\xb8\x3f\xcb\xcc\x08\x09\xdd\x18\xaa\xe0\xc7\xd7\xdc\xee\xc4\xd7\x84\xe9\x55\xc2\xd6\x08\x83\xb3\x61\x5e\x5d\xe1\x48\x12\x2e\x3a\xc8\x5b\xcf\x63\x35\x51\x31\x31\x96\xb1\x11\x47\x06\x77\xaa\x6e\xf6\x31\x97\xa2\x1e\x40\xce\x5d\x77\xf5\x98\x07\x43\x39\xbb\xd2\x81\xf1\xbb\xe6\xa9\x6d\x62\xe4\x4f\x0c\x4a\x81\xf7\x53\xd4\x81\xa9\x66\xec\xaf\xff\x82\xf9\x39\x28\xbb\xca\xf9\xfd\x0d\x84\x1d\x31\x00\x06\x46\x99\x93\x63\xb7\x14\xf6\x60\x75\x8c\xda\x47\x46\x0b\x1f\x8e\xdc\x76\x66\x2b\x62\x10\x88\x19\x7b\xab\xef\x18\x98\xa0\x87\x6a\x9d\xd1\x0b\xd1\xfe\xea\xaf\xcb\xb9\x6e\x4d\xba\x26\x36\x6e\x92\x7b\x22\xf8\x13\x52\x40\xb6\xe1\x43\x68\x1d\x8b\xe4\x7d\xed\x07\xa6\x65\xfd\x65\x78\xad\xc7\x3c\xd1\x7f\x79\x4d\xe9\x4e\xaa\x0c\x73\xa2\xf3\xc8\x31\x9a\x77\xac\x63\x72\x97\x70\x55\x17\xdf\x93\x49\x1a\xbb\x26\xd3\xa2\x46\x50\x9e\x2b\x05\x3e\x28\xcb\xa1\xdc\x65\xec\x9a\xe0\x37\xcd\xc3\x5d\x0f\x7d\xf4\x1a\x3e\xd6\x79\xee\x6f\x2d\x70\xf5\xb6\x99\xb6\x3f\x1e\xff\x72\x7e\xc7\x43\x5b\x38\xba\xaa\x45\x2a\x65\x70\xd2\x07\xfe\xf4\xf8\xbc\x4d\x67\x9a\x9d\x28\x32\xc7\x39\xb3\x5e\xbe\xbb\x5a\xe2\xfb\xd5\x01\x0b\xdc\x20\xbe\xe6\x26\xaf\x39\x31\x27\x1a\xff\xad\xac\x67\x2b\x09\x0a\xbc\x66\x2d\x3a\xfb\xe1\x31\x0c\x71\xe3\x7b\xca\x2f\x19\x28\xe2\x03\xc9\x79\x04\x02\xff\xdf\x7c\x2a\x83\x73\x50\x64\xa9\x47\xcc\xdb\xf1\x97\x4e\x21\xf4\x38\x1d\x2a\xc0\x2f\x1d\x99\xb5\xea\xd4\xf6\x3e\xd6\x25\xc4\x1d\x75\xdd\x91\xbb\x83\x17\x5e\xb3\xf4\xab\xc6\x6c\x75\xab\xa8\xd5\x76\xac\x6f\xfd\x54\x00\x9b\xcb\xd1\x54\xd9\x9d\x01\xeb\x62\xb0\xeb\xeb\xbb\x26\x8c\x8a\xbf\x7b\x06\x9a\x38\x0e\xbc\xc2\x98\xf7\xeb\x70\xbe\x95\xa0\xc9\x37\x98\xc2\xfb\xbc\x9a\xf9\xdf\x68\x7d\xea\x67\x1e\x12\x05\x40\xa5\x3e\xfa\x84\x7d\x9b\x3e\x4a\xb0\xe5\x59\x17\xe6\x3c\xb7\xff\x94\xd7\xcb\x5f\xfd\x8a\x33\x90\x6c\xf8\x2b\xf3\xc4\xf0\xcf\x48\x0b\x24\x0c\x8e\x3d\xb2\x3e\x5a\xdb\x84\xa0\x4b\x58\xf6\xd8\x58\xaf\x29\x25\x85\x7a\x73\xd4\x6f\x9f\xdf\xfa\xad\x6f\xf5\x47\x95\x35\x3d\x30\x5b\x85\x42\xed\xc0\xa2\x12\x19\xf5\x6a\xae\x57\x46\xf5\x98\xdf\xae\xf7\x79\x1d\x7f\xc8\x99\xb7\xc6\x46\x7a\x2d\x6f\xf3\x76\x98\xb5\x98\x08\x6b\x5d\x24\x29\xaf\x14\xae\x96\xd5\x1d\x59\x7f\x06\x0a\xa3\x71\x6b\x79\x1f\x2d\xc6\x14\x89\x8f\x6f\x3e\xab\xc5\xa9\x4d\xe3\xff\xd8\xfb\x83\x1d\xf9\x76\x5d\xcf\xf3\x7b\x97\x1a\xa7\x81\x90\x44\x4a\xa4\x5f\xc5\xf0\xc8\xb8\x23\x17\x3c\x30\x50\xef\x6f\xf0\x13\xfb\x02\x9e\x14\x62\x57\xa3\xbb\xd1\xdd\xa8\xc1\xe1\xfe\x9f\x4c\x71\x45\x64\x90\x52\xac\xf5\xd5\x4f\xe4\x4a\x95\xbb\x66\x81\x5c\xdf\xf3\x73\xf3\x26\xe7\x86\x77\x7d\x7b\x54\x9f\xf9\xc2\x5c\xa7\x2c\x5f\x27\x1d\xb3\x72\xf8\x6b\x1e\xff\xe6\x17\xf3\xf0\x39\x53\xe7\xe3\xf9\x63\x5e\xec\x7b\x50\xec\x50\x02\x6b\x18\xbc\x35\xf1\xdd\x2a\x26\xaf\x03\x4a\xaf\xef\xb1\xcf\x7d\x34\x76\x3f\x8e\xcf\x69\x52\x34\xdf\x7c\x0a\xa3\xd8\x5e\xfc\x16\xf3\x9a\xbb\xd0\x59\xdd\xcb\x17\xdb\xbb\x13\x8f\x3e\xbe\x53\x9a\x42\x52\x2b\x87\x59\xfe\xe7\x0f\x52\xc0\x23\xbe\x95\x19\xbf\x4d\x13\x68\x86\x63\x95\x9c\x34\x95\xbf\x14\x69\x2b\x3a\xb0\x3f\xea\x31\x86\x99\xa1\x00\xc1\x3a\xef\xf3\x7d\xd0\x67\xe7\x4b\x68\xdd\x7f\xea\x6e\x6a\xfc\x16\xc7\xeb\xa9\x7a\x18\xdf\x52\x21\xf7\xfb\x84\xfb\xa5\xf7\x93\x09\x67\xf9\xa6\x6c\x47\xc0\x17\xa5\xf7\xd2\xdc\x64\x7d\x45\x18\x3b\x8e\xd4\x7b\xdf\xaf\x3a\x2a\xf8\xed\x8c\xce\xfa\x12\x8f\x1d\xf1\x25\x3f\xbe\x8e\xbe\x35\x26\xe2\xdb\xf5\xe5\xb6\xbb\x02\x75\x1e\x23\xd4\x3c\x6d\x7f\xfb\x3c\x25\xcf\xeb\xce\xb7\xfd\xdc\x2f\xce\x97\x7e\x4f\x6a\xcc\xa2\x64\x9f\xec\x9c\x7f\xee\x07\xb6\x2b\xe8\x42\x39\x51\xdb\x77\x0b\x0b\xc1\xf7\x8a\xb9\xc7\x58\xaa\xb2\x2c\x7d\x9e\xf6\xf6\xc1\xc4\x3f\x2d\xb9\x3f\x65\xba\xcc\x57\x84\xa3\x41\xdb\x51\x9f\xed\x68\xd0\xdc\x7b\x98\x8d\xdd\x9f\x23\x1b\x09\xb7\x49\xd7\xc9\x9d\xb6\x1a\x04\x3b\xc0\xeb\xe3\xfc\x64\xd4\x2c\x08\x1d\x73\xa7\xb9\xb2\x75\x02\x08\x4b\x98\x53\x72\xeb\xec\xfb\x4f\xd5\xd3\xf9\x5b\xe7\xa9\x60\xbe\xf4\xea\xb8\x87\xf8\x1e\xea\x0c\x6b\x99\xbb\x82\xf7\xa1\x72\xcf\x79\xce\x58\x2a\xb2\x4d\x58\xdb\xfb\x4f\xf5\x51\xf5\x89\x8c\xd6\x93\x92\x5a\x3c\xe7\x1b\x76\x9d\x65\x4b\x3a\xb7\xb5\xe1\x7d\xb5\xf8\x33\xa1\x57\xa8\x5f\xbe\x73\x1e\xf3\xe6\x2f\xf3\xd2\x0e\x1d\xd2\xea\xec\xfc\xde\x87\x10\xc0\x59\x33\x54\x52\xb5\x07\x93\xa6\xff\xb6\xed\x58\x2d\xd8\x2f\xdd\x58\x7d\x71\x52\x7a\x5c\x49\xe7\x81\xeb\xf3\xbd\x79\x53\x82\x75\x6e\x79\x57\xe8\x1c\x92\xfa\x6f\x54\x58\x83\x3e\x9f\xbc\xdf\xff\x78\xd8\x87\x9e\xb4\x6d\x75\xf2\x68\xc5\xa1\xd0\xbf\x9f\xf3\xcf\x1d\x64\xfc\xad\xb6\xe0\xdf\xcf\xf5\x75\xfc\xbd\x8d\xd4\x10\xc5\x51\xfd\xed\xa8\xfe\x8e\x9c\xcf\x30\xbe\x0d\x47\xef\x72\x0b\xa8\x61\x96\xff\xf8\xd9\xc4\x62\xf2\xf6\x9f\xff\x2c\x3f\xf3\x9d\xf9\xbe\x2d\x34\x26\x61\x72\x7f\xcf\xbe\xc2\x13\x9a\x34\xaf\xef\x91\x1a\x37\x68\x73\x57\x9a\x6e\x22\x66\x42\xcf\x1f\xf2\x55\x9f\x3b\x98\x3c\x01\x82\x32\x8f\x6e\x96\x67\x26\x4d\x68\xbc\x38\x7f\xaf\x35\xda\xc9\xe2\x67\x35\x8c\x74\x48\xf8\x6a\x28\x71\xb5\x98\xb8\xff\xe4\x86\x9b\xe8\x5b\x6e\xb7\x74\x67\x5e\xdf\x36\x93\xf7\x7b\x58\x75\x7f\xab\x62\xeb\xd7\x69\xcd\x0a\x10\x79\xd6\x77\x3f\x7b\xdf\xaf\xd8\xf8\x56\xe9\xf9\x7c\xcb\xb8\xbe\xef\xcd\x97\xa6\x97\x6a\xd2\xd6\xdc\x81\x84\xed\xa6\x7d\xeb\xdb\x90\xd3\x5b\xbd\xde\x84\xef\x94\xb9\xc6\xf7\x8f\x9c\xf7\x38\xf7\x56\xfb\xf6\xf7\x66\x21\xde\x7c\xdb\xaf\x6f\x7f\xce\x6f\x37\x8f\xc9\x8e\x9c\x07\xbc\x75\xb6\x7a\x85\x47\x7f\x54\x87\x5a\xf6\x5b\xfb\x7b\x41\xd9\xd9\xdf\xf2\x3d\x7b\x96\xdf\x20\x35\xdf\xc4\x54\x73\x3f\xf5\xbc\x94\x4d\xc2\x89\xe2\xad\xb9\x7d\x58\x29\xdd\xd4\xd2\x9e\x7b\x45\x53\xe0\xa9\x5b\xf4\xbd\xd1\x4a\x6b\xcf\xda\xff\x34\xc7\x74\xbf\xec\x1b\xec\xfc\xe7\x6d\x4a\xde\xef\x5d\xfb\xdc\xbf\xa4\xf4\xa2\x18\xdb\x2a\xc0\xad\xf8\xa7\x26\x91\xea\x3f\xce\x95\xad\x2f\x57\x9b\x45\x3b\xbe\xdf\x12\xdf\x3b\xba\xa3\x2e\xa5\x53\x26\xef\xce\xdf\x74\xe7\xd1\x7c\xbd\xeb\x8f\xb9\xf5\xbd\xa9\xf5\xb3\xe8\xe7\xd6\x4e\x9f\x48\xcf\x3b\xdf\xdb\xfe\xf9\x43\xbf\xcf\x53\xf1\x15\x44\x79\xde\x99\x44\xf5\x50\x43\x92\xfc\xed\x53\x44\x4e\xee\xbb\xfd\x7c\x03\x3c\xb7\x6d\x0e\x68\xed\x72\xb4\xfb\x69\x83\xa9\x0b\xf5\x2e\xdf\xa0\xd1\x55\xde\x42\xfe\xb3\xce\x7d\xcb\x51\xb6\xff\x73\xbf\xad\x9a\x9c\x8b\x29\x8a\x53\x37\xef\xa7\x66\x72\x5e\x02\xb8\x5d\xfb\xe3\xd3\x71\x10\xbd\xe7\x76\x66\xd6\xab\x6f\x09\x54\xdd\x49\xbe\x8d\x8e\x57\xf9\xda\x8a\xf3\x3d\x76\x1d\x96\x69\x55\x6f\xe7\x16\x73\xdc\xf5\x1e\x59\xbe\xf9\x8f\xd9\xa9\x4c\xfb\xdc\x23\x12\x34\x38\x48\x13\xde\xb8\xe8\x7d\x7b\xe4\x94\xef\xcb\x5b\xe7\x33\xeb\xbf\x56\x39\xf5\xcf\x43\xa7\x07\xc5\xba\x82\xa2\x5a\xde\xfc\xac\xbf\x7f\xab\x19\xfa\xc2\xa2\xa9\xab\xf7\xfc\xee\x79\xe4\x71\xd3\x42\x0d\xef\x3f\xdf\xff\x37\xe1\xc9\xbb\xbe\x22\x21\xa7\xc2\x65\x13\x31\xdc\x2e\x95\xbb\x4a\x47\x22\x68\x6e\xac\x7f\x7f\x1f\x09\xbe\xcf\xa3\xdf\x73\xe2\xdf\x8e\xa4\xef\x9f\x1b\xbc\xb9\x90\x0a\xd8\xd5\xee\x8c\xe8\x91\x5b\x15\xeb\xb6\xb0\x1c\xdf\xa8\x51\xdf\x2e\xa5\x9f\x7f\x4e\x34\x5a\x29\x96\xdc\x6d\x19\x53\xf3\xd4\x62\x99\xcc\xef\x7f\x9c\x3d\x9f\xaf\xc4\xfb\xbd\x8b\xaa\xef\xd1\xf1\xf5\xa5\x57\xdf\x3d\x30\x7b\xf3\x5f\x45\xa1\x5a\xdf\xfd\xed\xa1\x7e\xdb\x83\xca\xb7\x70\xb0\x9a\x5b\xe4\x19\x93\x28\xee\xbf\xbf\x0d\x57\x1c\xb4\xef\xfd\xdc\xc9\xcd\x6d\x53\x1c\x32\xed\xfb\x3d\x1b\x0f\x82\xb4\x07\x47\x9b\xa6\x63\x8f\xd5\x7e\x26\xd9\xcd\x9e\x7b\xe7\xba\xd7\xff\xa9\xfe\x0e\xf8\xb0\xd7\x5d\x17\x46\x20\x19\x9c\x30\x5e\xf3\xcd\x11\x7e\x23\xcb\xcc\xa4\xd7\xa7\xbe\x8f\x6f\xff\xfc\xd5\xb3\xec\x58\xbb\x6c\x1d\xce\x77\x97\x3c\xea\x76\x0f\x8f\x96\xef\xbe\xbe\xa2\xd5\xb4\xbb\x35\x6f\x6a\x3c\x75\x61\x9d\x89\x76\xb6\x07\xa3\xfb\xf9\x8e\x2a\xcb\x44\x38\xa0\xf5\xe6\x6b\xef\x3e\x05\xbc\x1a\x5f\x6e\x67\xb9\xbe\x87\x03\xcf\xfb\x56\x33\x9e\x3c\x0c\xf5\xf7\xfa\x7b\x1e\xa2\xbe\x75\xb0\xbf\xe7\xb7\xe6\x3b\x5f\x63\xb7\x79\xa6\x4b\xcb\x77\x7d\xbe\x8f\xdd\xc7\x42\xa9\x85\x8d\x42\x44\xeb\xde\x5e\xdf\xdb\x94\x6f\x69\x00\x4f\x5f\x4a\x49\xee\xee\xaf\x90\x61\x7f\xbb\xc1\x7e\xdf\x57\x58\xb7\x3c\xf0\x9d\x44\x44\x7c\xf7\x9e\xe7\x51\xfb\x63\xdf\xf2\x83\x4d\xca\x93\xf3\xf9\xdc\xed\x4b\x06\x77\x59\xd6\xe3\x0f\x3d\xf5\xe7\x43\x15\xfe\xbe\xcd\x60\xd7\x67\x2c\xf6\xe2\x78\xe7\xc7\x3e\xdc\x87\xae\xd9\x99\x80\x43\x45\x78\xa8\x14\x7d\x21\x00\x63\xe9\xc4\xf9\xf7\x2b\xf5\x7b\x8b\xdf\x13\xb5\xf9\xcf\xb7\x08\xf3\x57\xf8\x76\x08\xdf\xc6\x23\xd6\xfe\x3e\x16\x00\x25\xee\xf1\x54\xbe\x5a\xb9\xda\x5d\x66\x39\xac\xf4\x89\x6f\xe7\x9d\x8f\x9e\x3b\x00\xf3\xcc\xdc\xf9\x2a\xee\x6f\x1b\x5a\x38\xe5\xf3\x3d\xbe\x26\xdd\xb4\x50\xf4\x1f\xf9\x42\xfd\xa4\x55\xdd\xf9\xcc\x83\xd5\xdc\xcb\xcc\x8d\x4b\x7e\xbe\x35\xda\xe9\x71\x3f\xf5\x7d\xb6\xf4\x97\xf5\xb7\x23\xff\xfd\xea\x43\xb6\xf9\x91\xdf\x42\xd0\xdf\x1f\x7d\xfb\xfc\x4c\x04\xd7\xfe\x6a\x22\x9c\x8d\xea\xf8\xae\x93\x56\xd3\xfc\xae\x8d\x9f\xfa\xa7\x8f\x8f\xa6\x20\xba\x6e\x11\x65\xad\x65\x09\x3b\x54\x68\x6b\x1d\xf7\x93\xaa\x92\xad\xcf\xb7\x88\x34\x81\x8b\xd9\x70\xd1\xfd\x85\xa9\x9f\xb5\xe6\xcb\xf5\x96\xd3\xb8\x6b\x55\xfd\x3f\xff\xfe\xcb\x7f\xfc\xb7\xff\xd7\xff\xed\xff\xfd\xff\xfd\x2f\xff\xf7\xff\x47\xa8\x4d\x1c\x2a\x11\x8f\x7d\x6c\x8d\x8d\xf3\xf7\xfd\x98\x42\x95\xe1\x50\x89\x78\xac\x31\xe9\xdf\x77\xb3\x46\x5e\x63\xee\xf7\xe7\xc6\xdc\x1e\xfb\x3e\xec\x62\x8d\x7f\xc6\x3f\x57\x7e\xbc\x9e\x57\x2c\xbf\x2d\xbf\xad\xf8\xfb\xff\xfc\xb7\xff\xfa\x5f\xff\xfb\x66\xc6\xf0\x2d\xaf\x58\x5e\xb1\xbd\x56\x7b\xad\x76\x9d\xf6\x2a\x6d\x64\x7f\xc7\x78\xad\x9e\xf7\xb6\x3e\x1f\x76\xb1\x9b\x3d\x6c\xb0\xc9\x5e\x76\xbc\x26\x28\x63\x8d\x5f\xc6\x2f\xe3\x97\xf1\xcb\xf8\xf5\x7e\xbe\xf3\xb5\xbe\x57\xf3\x1e\xb6\xab\x6d\x57\xdb\xae\xb6\x5d\x67\x7b\xdd\xfd\x58\xe3\xb7\xf1\xc7\x7b\x38\xbc\x0e\xaf\xc3\x4b\x1c\x97\x38\xce\x9d\xdb\x58\xbe\xa2\x39\x37\x2f\x31\x0f\x08\x2c\xdf\xe0\x2b\xca\x4b\x64\x97\xc8\xae\x30\x32\x8d\x4c\xbf\x4d\xd7\x14\xf1\x95\xc6\xa4\x6b\xa6\x91\x72\x40\x6b\x48\x25\x1c\xc2\x39\xdf\x70\xce\x37\xd4\xd0\x0c\xa5\x1a\x42\x91\x86\x50\x4c\x22\x3c\x87\x86\xd2\x0e\x63\x8d\x2f\xe3\xc5\x54\xa5\x54\x25\x25\x42\x29\x88\xb1\x7e\x2b\x8e\x6a\xa1\x2a\x3e\x11\x4a\x44\x8c\x9d\x6b\x6e\xb1\xdb\xa2\xb6\x45\x6d\x7f\xfc\x5c\xd4\xb6\xa8\x29\x20\x14\x5b\xd4\xb6\xa8\x29\x32\x14\x5b\x44\x14\x19\x0a\xa5\x83\x42\xd9\xa1\x50\x58\xc8\x99\xcd\x70\x66\x33\x9c\xbe\x0c\x67\x2d\xc7\x1a\xe9\x93\xdf\x3e\x79\x47\xb1\x9d\xc1\x0c\x67\x39\xc3\x09\xd0\xb1\xc6\xfb\xcc\x1d\x0a\x77\xde\x33\x9c\x12\x0d\x67\x3c\xc7\x1a\xef\x93\xdf\x69\x7c\x1a\x2f\x0a\x8e\x80\xc7\x16\x0b\x47\xc3\xc3\xd1\xf0\x70\x58\x3c\xb6\x28\x6c\x73\xd0\x89\xad\xd8\x66\xdf\x36\xfb\x9c\xd2\xd2\x30\x31\xb4\x56\x0c\xa7\x4b\x42\x3b\xc5\xb1\x7c\x45\x61\xfb\xe4\x9d\xe4\x72\x32\x25\x9c\x37\x19\x6b\xa4\x39\xe5\x20\xbb\x13\x28\xa1\x3a\xea\x58\xef\x47\x14\x8e\x79\x44\x67\x4e\x95\x33\xf6\xfd\x7d\xf9\x75\x50\xed\x46\x1c\x11\xa1\x72\x47\x11\xc6\x1a\x2f\x16\xb4\xeb\x71\x44\x84\xfe\x3c\x28\xe1\x83\x3a\x3d\x8e\xe8\xd0\xc3\x07\x05\x7b\x50\xbf\x07\x8d\xba\xaf\x92\x08\x9a\x79\xfa\xe1\xa0\x89\x0b\x7a\xba\xa0\x95\x0b\xba\xb9\xa0\x3a\x0e\x0a\xbb\x5f\xb3\x95\x5e\x92\xf2\x2e\xe8\xec\x82\x52\x6f\xac\xeb\x88\x1a\xad\x65\xd0\x75\x06\xb5\x26\x95\x41\x50\xe5\x04\xc2\xf2\x7d\xac\x8a\xa0\xcd\xa4\x4d\x08\x1a\x84\xa0\x4a\x18\x6b\x8c\xf5\xf3\x88\x20\xed\x55\xd0\x58\xd9\x55\x1e\x6b\xbc\x68\x9e\x97\xbf\xdf\xb9\x79\x47\xd5\x65\x9f\x2a\xec\x74\x05\x7c\x34\xd6\x7b\x10\xf7\x63\xf6\x1d\xd1\x3f\x65\xbc\xe8\x1f\xd1\xa7\x29\x0b\x8a\x30\xdd\x59\xc6\x1a\x2f\x13\x28\xc8\xa8\x3f\x42\xbf\xae\x50\x35\x7e\xec\x63\x8b\xf5\x5b\x71\xa7\x70\x99\xc5\x82\xf5\xf3\xed\xe7\xa2\x4c\x59\x30\x93\x87\x35\x46\x64\x29\x08\x82\xfa\x40\xa3\xcf\xb1\xc6\x88\x2f\xad\x41\xd0\x1d\x04\xfd\x4b\xd0\x2c\x04\x75\x43\xd0\x32\xcc\x8b\xb1\xae\x2f\x9a\x76\xb9\xc3\xde\x75\xd8\xd3\x0e\x7b\xda\x1e\xa3\xc6\x1a\x2f\x8e\x76\xbf\xc3\x7e\x78\x84\x95\xd0\xbe\x77\x84\x98\xda\xb3\x8d\x10\x59\x3b\xb7\x11\xe2\x6b\xe7\x36\xec\xe2\x86\x9d\xdb\xb0\x8b\x1b\x76\x4a\xc3\xae\x69\xd8\x9f\x8c\x10\xe5\xf0\xfd\x18\xa2\x1c\xa2\x1c\xd6\xcf\x30\x73\x43\x34\x43\x34\x43\x34\x43\x04\x43\x04\xc3\xca\x19\x22\x18\xe6\x6f\x88\x60\x88\x60\x88\x60\x88\x60\x88\x60\x88\x60\x88\x60\x88\x60\xfa\x36\x4c\x11\x4c\x11\x4c\x2b\x6a\x9a\xcb\x69\x5d\x4d\x33\x3a\x45\x36\xc5\x34\xc5\x34\xcd\xe5\x34\x97\x53\x7c\xd3\x5c\x4e\x73\x39\xcd\xe5\x14\x6b\x3b\xc9\x91\x62\x9d\x62\x9d\x62\x9d\x66\x74\x9a\xd1\x29\xee\x29\xee\x69\x46\xa7\xe8\xa7\xe8\xdb\x4d\x8d\xf4\xdd\x97\x72\x20\xe5\x40\xca\x81\x14\xf7\x14\xf7\x14\xf1\x14\xf1\x14\xeb\x14\xeb\x14\xeb\x14\xeb\x14\xeb\x14\xeb\x14\xe5\x14\xdf\x14\xd9\x14\xd9\x14\xd9\x14\xd9\x14\xd9\x14\xd9\x14\xd3\x14\xd3\x14\xd3\x14\xd3\x14\x53\xba\x48\x4d\xd2\x43\x63\xf4\x5f\xb3\x35\xc5\x3d\xc5\x3d\xc5\x5d\xab\x65\x3d\xe4\x42\x2f\xba\xb1\xae\x6c\x16\xa7\x59\xac\xb8\x5d\x28\x6e\x17\xca\xdd\xe9\x7e\x17\xba\xd0\x85\x1e\x78\x63\xf9\xca\x07\x67\x72\x23\xe5\x43\xca\x81\x94\x03\x69\x25\x4f\x99\x40\x0f\x1e\xf4\xe0\x3a\xe7\xfd\x7a\xe7\x57\x6e\x5c\xb9\x71\xe5\xc6\x95\x15\x76\xb6\xe3\xca\x84\x6b\xbe\xdf\xf5\xfd\xed\xbc\x93\x2b\xee\x57\xc4\xaf\x88\x5f\x11\xbf\x62\x7d\x45\xf9\x8a\xf2\x15\xe5\x2b\xca\x57\x94\xaf\x28\xd3\x13\xc5\x35\x97\xaf\xef\xd3\x2b\xca\x57\x94\xaf\xc8\x5e\x91\xbd\x66\xf1\x15\xdf\x6b\x16\xdf\xfc\x8e\x71\x1d\x51\xbe\xa2\xac\x28\x60\x28\x0a\xa8\x87\x44\xe8\x51\x11\x3a\x4f\x84\x8e\x14\x63\xfd\x56\xbc\xae\x78\x5d\xf1\xa2\x91\xd7\x1b\x63\x26\xb7\xf1\x62\x74\xc5\x88\x36\xd6\x26\xec\x58\xd7\x14\x1d\xba\x3c\x05\x56\x67\x31\xe0\x25\x3a\xd7\x6c\xa5\xf2\x08\xaa\x0a\xc5\x56\x43\x41\xd6\x50\x3c\x75\x2c\x5f\x6b\xaf\x73\x58\xf1\xc4\xee\x99\xbf\x0a\xbd\x28\xc8\x1a\x0a\xb2\x86\x92\xae\xa1\xbc\x6b\xa0\xf1\x63\xf9\x8a\xd7\x33\x8b\x29\xcb\x82\xae\x44\xa1\xd6\x50\x20\x36\x94\x6e\x0d\x25\x5d\xc7\xf2\x15\xc7\x67\x46\x3f\x33\x5a\x01\x45\xe5\x60\x43\x75\x88\xb1\x7c\xc5\xf7\x89\x2f\x2d\x70\x3c\x51\xa6\x08\x0e\x1a\x61\x45\xb3\xc6\x1a\x23\xbe\x8a\xd3\x28\xbe\x15\x4a\x67\x85\xf2\x5a\xa1\x74\x56\x28\xcd\x35\xd6\x95\x45\xdc\xb9\x04\xe5\xb8\x02\x7f\x0f\x25\xb8\x42\x59\xaf\xb1\xae\x29\xd6\x4f\x7c\x9f\xf8\x52\x74\xc6\x13\xe5\x67\x16\x3b\xc5\x16\x34\x53\x41\x1d\xa9\x02\x46\xa8\x89\x11\xf8\xee\x58\xaf\x22\xee\x54\x1b\x41\xcd\xa1\x62\x46\x28\xe8\x15\xaa\x6a\x8c\x35\x52\xdc\x9f\xb8\x3f\x71\x7f\x22\xee\x7c\x9c\x4a\x1d\x63\x8d\x17\x6b\xa7\x2b\xd4\xdc\x08\x68\x72\xec\x8c\x77\xde\x22\x4a\x94\x4b\x94\x4b\x94\x69\xa8\xa3\x3e\xbf\xef\x0a\x4a\x0e\x94\xb8\x97\xb8\xd3\x7e\x3a\xdb\x3b\xd6\x75\x44\x9c\xda\xce\xd9\xde\x70\x46\x78\xbe\x70\x8c\x17\xeb\x12\xeb\x12\x6b\xca\x23\xa7\x86\xc3\x89\xe0\x70\x6a\x38\x9c\x20\x1e\xcb\x57\xac\x4b\xac\xcb\xbc\x2e\xf3\xba\xcc\xeb\x3a\xff\xe2\x9d\xfb\x7e\x2f\x19\x52\x32\xa4\x64\x48\xf9\x7e\x2f\x79\x52\xf2\xa4\xe4\x49\xc9\x8d\x92\x1b\x65\xb5\x2f\xab\x01\x95\x2b\x65\xf4\x58\xef\x59\x9e\x94\x3c\x29\x79\x52\xf2\xa4\xe4\x49\xf9\x06\x2f\x59\xa1\x66\x42\x94\xac\x28\x59\x51\x32\xa1\x64\x42\x59\xb1\x4b\x3e\x94\x7c\x28\xab\x41\x59\x07\x4a\x56\x94\xac\x28\x59\x51\xb2\xa2\x64\x45\xc9\x8a\xb2\x1a\x94\xdc\x28\xb9\x51\x72\xa3\x64\x45\xc9\x8a\xb2\x02\x94\xdc\x70\x62\x34\x4a\x6e\xb4\x7c\x68\xf9\xd0\xf2\xa1\xcd\xfa\x16\xf1\x36\xeb\xdb\xac\x6f\xd1\x6f\xd1\x6f\xd1\x6f\xd1\x6f\xb3\xbe\xe5\x40\xcb\x81\x36\xeb\x5b\x26\xb4\x4c\x68\x99\x40\x32\x12\x2d\x07\x5a\x0e\xb4\x1c\x68\x39\xd0\x72\xa0\xe5\x40\x8b\x7e\x8b\x7e\x8b\x7e\x8b\x7b\x8b\x7b\x9b\xf5\x2d\xa6\x2d\xa6\x2d\xa6\x2d\xa6\x2d\xa6\x2d\xa6\x2d\xa6\x2d\xa6\x2d\xa6\xed\x7b\xbc\xcd\xfa\x16\xd9\x76\xef\xdd\xe2\xdb\xe2\xdb\xe2\xdb\x22\xdb\xf9\x1d\xef\xfa\x56\xfb\xb6\xda\xb7\x28\xb7\xd5\xa0\xc5\xba\xad\x09\x6d\x4d\x68\x6b\x42\x8b\xbe\xb3\x17\xd1\xa2\xdf\xa2\xdf\xd6\x84\xb6\x26\xb4\x4c\x68\x99\xd0\x32\xa1\x65\x42\xcb\x84\x96\x09\x6d\x7d\x68\xf9\xd0\xf2\xa1\xe5\x43\xcb\x01\xca\x71\x9d\x24\x22\x68\xc3\xf5\x2f\x0c\x3d\x0b\xc3\xbe\xeb\x58\xd7\x97\x03\x2d\x07\x7a\x72\x40\x77\xc3\xb1\xc1\x3e\xf6\xfb\xf3\x1e\x3b\xb1\xd6\xe9\x30\x14\x7c\x1d\x6b\xe4\x44\x59\x03\x8a\xb1\xbc\x16\xaf\xc5\x6b\x1b\xbf\x5d\x79\xf3\xda\xbc\xf6\xcf\xd9\x9a\x9f\xed\x9a\xdb\x35\xb7\x6b\x6e\xd7\x3c\xde\xc9\x71\xe5\xe3\x6a\xc7\x7b\x38\xc6\x1f\xe3\x8f\xf1\xc7\xf8\xf0\xea\xe1\xd5\xc3\xc8\x30\x32\x8c\x0c\x63\xd2\x35\xd3\x35\xd3\xf8\x34\x3e\x5d\x3f\x79\xa5\x6b\xe6\xcf\x27\x3e\x85\x6f\x43\x17\xde\x50\x10\x37\x94\xbf\x0d\xf5\xc7\x42\x75\xb2\x50\x97\x2c\xd4\x2e\x0b\x3b\xda\x63\x79\x3d\xe3\x9f\xf1\xcf\xf8\x67\xe4\xf3\xea\xcf\xf8\x32\xbe\x8c\x2f\xaf\x52\xbc\xca\x95\xcb\xf8\x32\xbe\x8c\x6f\xe3\xdb\xf8\x36\xbe\x8d\x6f\xaf\xd2\x5e\xa5\x79\x7d\x33\x61\x56\x83\x44\xb7\x12\xdd\x52\x64\x3d\x94\x48\x1f\x1b\x6c\xb2\x97\x7d\x6c\xb1\x7c\x65\x0b\xd2\x95\x48\x97\xb2\xeb\x63\xf9\xca\x99\x25\x67\x96\x9c\x41\xb4\x94\x63\x0f\x45\xdc\x43\xc9\xf6\xb1\x7c\x65\x0e\xa2\xa5\x74\xe5\x58\x23\xe5\x00\x7e\x95\xc8\x55\x22\x57\x4a\x5d\x86\xf2\x96\xa1\x42\xd4\x58\xaf\x2b\xee\x38\x95\xfa\x51\xf3\x90\xe1\xb5\xc4\x7d\x89\x3b\x66\xa5\x4c\xe6\x77\x2b\x70\x2c\xaf\xe4\x95\x5f\x2f\xaf\x7e\xf9\x8a\x35\x8a\xa5\x66\x45\xa8\x53\x11\x2a\x54\x8c\xe5\x2b\xd6\xe8\x96\x5a\x16\xa1\xd2\x45\x38\x4d\x3c\x96\xaf\xb8\xa3\x5e\x89\x7a\xe5\x7a\x7c\x45\x1f\xfb\x72\xa2\x2e\x9c\xae\x1b\x6b\x7c\x19\x29\xee\x78\x57\xea\x0f\xe4\xe4\xc1\x58\xd7\x17\xf1\x25\xe2\x38\x18\x3d\xf2\xd8\xb9\xa6\x2e\x41\xb9\xc5\x17\x01\xcb\x2d\xbe\x38\x58\xe2\x60\xb9\xc5\x17\x01\x4b\xec\x2b\xb1\xaf\xdc\xe2\xb5\xc5\x4b\x39\xed\x44\xc0\x12\x01\x4b\xec\xcb\x6e\x6d\xe8\x79\x36\xd6\x2b\x9a\x95\x88\x56\x22\x5a\x89\x68\x29\x44\x1a\x4a\x90\x86\x72\xa4\x63\x8d\x37\x43\x71\xad\xc4\xb5\x54\xf9\x18\xeb\xb7\x62\xb1\xc5\x02\xcb\x72\x26\x29\x9c\x4f\x1a\x7b\x7f\xce\x56\xbc\x2b\xf1\xae\xc4\xbb\x52\x15\xa3\xdc\x22\x82\x7d\xa5\xea\x46\x89\x80\xe5\x16\x11\xb5\x8c\x12\x0d\x4b\x1c\x2c\x71\xb0\xc4\xc1\x52\x4d\xa4\x44\xc3\x12\x0d\xcb\x6d\x3e\x62\x62\x89\x89\x25\x26\x96\x5b\x74\x90\xb1\xdc\xa2\x83\x8f\xe5\xee\x7f\xf1\xce\xcd\xd9\xfd\x8d\xa3\x39\x7b\x44\xf3\x98\xb3\x48\x5a\xaa\xc6\xa0\x9f\x77\xe8\xf0\x3d\xf6\xb2\x8f\x2d\x96\xaf\x39\x8b\xaa\xe9\x45\x17\x9a\x21\x84\x72\xb0\xa1\x1c\xec\x58\xbe\xe6\x2c\xc2\xe6\xfc\x7b\x38\xe5\x39\xd6\x18\x71\xc7\xd3\xf2\x98\xa7\x6a\x4a\xe4\x31\x4f\xf1\xb4\xc4\xd3\x12\x43\x4b\x7c\x2c\xf1\xb1\x74\x76\x39\x51\x32\x8a\x84\x79\x28\xf7\xae\xc4\x1d\x13\x4b\x4c\x2c\x31\xb1\x3c\x66\x25\x32\x96\xce\x22\x27\x3e\x96\x4e\x2a\x27\x4a\x96\x28\x59\x22\x63\x89\x86\x25\x1a\x96\xc7\xbc\xc3\xc4\x12\x13\x4b\x67\x22\x13\xef\x4a\xbc\x2b\x91\xae\x44\xba\x12\xe9\x4a\xa7\x24\x13\xe9\x4a\xa7\x21\x13\xef\x4a\xbc\x2b\xf1\xae\xc4\xbb\x12\xe3\x4a\x8c\x2b\x31\xae\xc4\xb8\x12\xe3\x4a\x8c\x2b\x43\x74\x9c\xb5\x4a\xa7\xaf\x12\xf5\x4a\xbc\x2b\xf1\xae\x74\xba\x2b\x9d\xdf\x4a\xe7\xb1\x12\x01\x4b\xa7\xb8\x12\x07\x4b\x67\x6b\xd2\x19\x9a\xc4\xc4\x12\x13\x4b\x4c\x2c\x31\xb1\xc4\xc4\xd2\x79\x9a\x74\xf6\x2b\xf1\xb1\xc4\xc7\xd2\xc9\x9b\x44\xc9\x12\x25\x4b\x94\x2c\xf1\xb1\xc4\xc7\x12\x19\x4b\x64\x2c\x91\xb1\xc4\xc4\x12\x0d\xcb\x10\x3b\x67\x38\x12\x19\x4b\x64\x2c\xd1\x30\x72\x9f\xb1\xc6\x88\x1d\x0e\x96\x38\x58\xa2\x5e\x89\x7a\x25\xea\x95\x78\x57\xe2\x5d\x7a\xcf\x8f\xf5\x8a\x22\x48\x8f\x9f\x78\x57\xe2\x5d\x3a\xd3\x8f\xe5\x65\x9e\xe2\x5d\xba\xd4\x8f\xe5\x2b\x9a\xa8\x17\x95\xd2\x58\x5e\x62\x8a\x7d\x25\xf6\x95\x21\xa6\x08\x58\x22\x60\x89\x80\x25\x02\x96\x08\x58\x22\x60\x89\x80\x65\xfc\x8b\xd9\x1a\x66\x2b\x56\xa6\xb3\x7e\x24\x62\x96\x88\x59\x22\x66\x89\x98\x25\x62\x96\x88\x59\x22\x66\x89\x98\x65\x9a\xad\xb8\x59\xe2\x66\x89\x9b\xe9\x10\x39\x96\xaf\xdc\x40\xcf\x48\xe6\x43\x57\xc8\xb1\xbc\xe4\x03\x6e\xa6\x2b\x64\xe8\x13\xf9\xeb\x9d\xe3\x69\x89\xa7\x69\x6f\x32\xd6\xd5\xe4\x09\x9e\x96\x18\x5a\xa6\xef\xdf\x94\x27\x48\x9a\xbe\x95\xa1\x63\x65\xe8\x58\x39\xd6\xab\xcb\x19\x54\x8d\x02\x3a\xb4\x55\x09\x8d\x53\x42\x43\x95\xd0\x3e\x25\xb4\x61\x19\xeb\x2f\x92\x33\x29\x67\x10\xb6\x44\xd8\xb4\x58\x19\xeb\xca\xbe\x7f\x51\x35\xed\x56\x42\x63\x96\xb1\x46\xca\x1f\x54\x2d\xb1\xb2\xc4\xca\x12\x25\x4b\x94\x2c\x91\xb1\x44\xc6\xb4\x6d\x19\x6b\xa4\x3c\x41\xc6\x12\x19\x53\xd0\x3a\x28\xd6\xc6\x1a\x23\x1f\x54\xb9\x51\xfa\x7a\xac\x6b\x8a\x38\x32\xa6\x48\x76\x28\x80\x1d\xda\xc8\x84\x82\xd9\xa1\xc0\xf6\xd8\xc7\x16\xcb\x4b\xac\xaf\x58\x63\x62\x79\xc5\xfa\x8a\x35\x3e\x96\xf8\x58\xe2\x63\x0a\x72\x87\xba\x97\xa1\x8e\x65\xa8\x60\x19\xea\x61\x8e\xe5\x65\x05\xc0\xcd\x12\x37\x4b\xdc\x4c\x7d\xcb\x50\x15\x33\x54\xcb\x0c\xf5\x30\xc7\xf2\xb2\x0e\x5c\x51\xbe\xa2\x8c\xa4\xa9\x93\x19\xa9\x9e\x4f\x5e\x51\xc6\xd6\x54\xc8\x0c\xd5\x35\x43\x9d\xcc\x50\x63\x73\x2c\x5f\xdf\xef\x57\xdc\xd1\xb6\x44\xdb\xf2\x5a\x2b\x30\xb7\xc4\xdc\xd4\xea\x1c\xcb\x4b\xdc\x31\xb7\x44\xdb\x12\x6d\x4b\xb4\x4d\xfd\xae\x20\x1b\x0b\x95\xbe\x42\x8d\xaf\x50\xdd\x2b\x54\xfd\x0a\x15\xbd\xc6\xba\xb2\xe8\xab\x54\xa1\x72\xcb\x58\xe3\xad\x18\x28\x5c\xa2\x70\x89\xc2\xa9\xe8\x32\xd6\x78\x39\x80\xbf\x25\xfe\xa6\x02\xcc\x58\xe3\xad\x12\xc8\x5b\x22\x6f\x89\xbc\x25\xf2\x96\xc8\x5b\x22\x6f\x89\xb6\x25\xda\xa6\x46\x42\xa8\x8e\x10\xaa\x23\x8c\x2d\xd6\xc8\xf5\xf9\x39\x5b\x51\x38\x27\xb0\xc7\x26\xeb\x3a\xb2\x02\x73\x73\xea\x34\x9c\x43\x1d\x6b\x8c\x4c\x40\xd8\x12\x55\x73\xd6\x70\xac\xdf\x8a\x38\xb6\xa6\x63\x7d\x24\xaa\xe6\xc4\x55\x38\xbd\x34\xd6\x48\xf1\xc5\xd3\xa8\xae\x43\x17\xfc\xd0\xf9\xfe\xe7\x3b\x17\x77\xe7\xfb\x13\x85\x4b\x14\x4e\xbf\xfc\xb1\xae\x29\xfa\x28\x9c\xce\xfa\x63\xbd\x13\x39\x80\xc8\xe5\xb3\x02\xe0\x72\x89\xcb\x25\x2e\x97\x58\x5c\x62\x71\x89\xc2\x25\x0a\x47\xe0\x11\xba\xec\x07\x15\x45\x24\x0a\x97\x2a\x50\x25\x16\x97\x58\x5c\xe2\x6f\xa9\xd0\x75\x22\x6f\x89\xbc\xe5\xb3\x02\xe0\x6f\xda\x2a\x8e\x9d\xeb\xe0\x6c\x89\xb3\x69\xc6\x38\xd6\xcf\xcd\x68\xac\x2c\x31\xb1\xc4\xc4\x12\x13\x4b\x04\x4c\x6b\x94\x20\x66\x8d\xc4\xbe\x12\xfb\xd2\x38\x65\x2c\x5f\xd1\xc1\xb5\x12\xd7\x4a\x5c\x4b\x8b\x95\x48\x2c\x2b\x51\xac\x44\xb1\xc8\xc4\xc6\xfa\xad\xb8\x20\x5a\xea\x60\x8f\x75\x4d\x9f\x39\xa2\xa5\x26\xf6\x58\x5e\x3e\xf3\xf2\x99\x97\xcf\x1c\xdd\x52\xd3\x72\x2c\x5f\x9f\x79\xf9\xcc\xcb\x67\x8e\x7a\xa9\x75\x19\xea\x5b\x8e\xe5\xeb\xbb\xbb\x44\x01\x01\x53\x77\x6b\x2c\x5f\xb1\x40\xc0\x54\xe8\x8a\x2c\x11\xc1\xc1\x12\x07\x53\xcd\x65\x2c\x5f\x2b\x33\x0e\x96\x38\x98\x2a\x0e\xa1\xa2\x43\xa8\xe2\x30\x96\xaf\x48\x95\x48\x61\x62\x89\x89\x25\x26\xe6\xac\xf9\x58\xbe\x22\xd8\xbe\xa3\x5b\x1c\xf1\xb1\xc4\xc7\x12\x1f\x4b\x7c\x4c\xd5\xdf\x50\x21\x30\x12\x0d\x4b\x1c\x2c\x71\x30\xfd\x95\x23\xf1\xae\x6c\x51\x46\xbd\x12\xf5\x4a\xa4\x2b\xd5\xff\x49\x8c\x2b\xdb\xbc\xc3\xb8\x12\xdd\x4a\x5c\x2b\x71\x2d\x07\xce\xc6\x1a\x63\xde\xa9\x09\x94\xb8\x56\xe2\x5a\x89\x6b\x65\x8b\x32\xba\x45\xce\x1c\x5a\x2b\x84\xea\x85\xa1\x92\x61\x24\x8a\x95\x28\x56\xa2\x58\x89\x62\x11\x41\xff\x9a\xad\xe8\x56\xa2\x5b\x89\x6b\x25\xae\x95\xb8\x56\x22\x5a\x89\x68\x25\xa2\x95\x88\x56\x22\x5a\x89\x68\x25\xa2\xa5\xc5\xe8\x58\x5e\x22\x8b\x68\x69\x8c\x36\xd6\x78\xd1\xc4\xb5\x12\xd7\x52\x51\x39\xd4\x58\x0e\x87\x00\xc6\x7a\x95\xfe\xa9\x9f\xc9\x2f\xef\x52\x77\xe1\xfe\xc7\xf9\x8b\xfb\x99\xf0\x5e\x00\xec\x7e\x3e\xdf\x9f\x04\x9b\xec\x65\x1f\x5b\xec\xb8\x42\x62\x17\x12\xbb\x0e\xc6\x5f\x60\xec\x02\x63\x17\x18\xbb\xc0\xd8\x05\xc6\x74\x51\x1d\xcb\x77\x1b\xbf\x8d\xdf\x46\x6e\x23\xb7\xdf\x1e\xd7\x3c\x7e\x7b\x5c\xed\x18\x73\x5c\x21\xbc\x6e\xb8\x42\xf8\x6d\xf0\x0d\xaf\x12\xae\x90\xc6\xa4\xeb\xa4\xeb\xa4\x91\xe9\x3a\x69\x64\xba\x5a\x1a\x7f\x8d\xbf\xc6\x5f\x57\xbe\xbc\x2e\xaf\xcb\xeb\x7a\x95\xcb\xf7\xf2\xbd\x7c\x1f\xdf\xc7\xf7\xf1\x7d\x7c\x1f\xdf\xc7\xf7\xf1\x7a\xbc\x1e\xaf\xe2\x55\xbc\x8a\x57\xf1\x2a\x5e\xc5\xab\xbc\x62\xf1\x2d\xbe\xc5\xb7\xf9\x36\xdf\xe6\xdb\x7c\x9b\x6f\xf3\x6d\x5e\xcd\x4b\xa8\x01\xad\x0b\x68\x29\xdb\x19\xca\x76\x86\xb2\x9d\x63\x2f\xfb\x58\xe3\xc5\x17\xc4\xba\xf0\xd5\x85\xaf\x2e\x7c\xa5\x5c\x51\x28\x68\x32\xb6\x58\x5e\x22\xbb\xb6\x91\x22\x0b\x5c\x5d\xe0\xea\x92\x62\x5d\xf8\xea\x92\x62\x5d\x10\xeb\x82\x58\x97\x08\xeb\x42\x59\x4e\x0d\x8c\xe5\x25\xee\x44\x58\x97\x08\xeb\x12\x61\x5d\x70\xeb\x12\x61\x5d\x88\xeb\xae\xe0\x2b\x1f\x80\xae\x0b\x74\x5d\xb2\xac\x0b\x77\x5d\xb8\xeb\xc2\x5d\x17\xee\xba\x70\xd7\x85\xbb\x2e\xdc\x75\xe1\xae\x0b\x77\x5d\xb8\xeb\x42\x5c\x17\xe2\xba\xe0\xd6\x05\xb7\x2e\xb8\x75\x61\xad\x0b\x6b\x5d\x58\xeb\xc2\x5a\x17\xd6\xba\xb0\xd6\x85\xb5\x2e\x94\xe5\xfc\xc3\xd8\x9f\xdb\xda\x17\xe8\xba\xe4\x5d\x17\xee\xba\x70\x97\xd3\x12\x63\xbd\xae\x7c\x80\xbb\x2e\xdc\x75\xe1\xae\x0b\x77\x5d\xb8\xeb\x92\x7d\x5d\xb2\xaf\x0b\x7d\x39\xb6\x18\x17\x00\xbb\x5b\x56\xc0\x60\x17\x06\xd3\x6d\x71\x6c\xb2\x97\x7d\x2c\xaf\xdf\x37\x62\x17\x30\xbb\x24\x63\x17\x36\x73\xb2\x2f\x1c\xed\x08\x87\x34\xc7\x16\xeb\x9a\xdb\x3b\xd9\xbc\x64\x11\x90\x76\x49\xc9\xee\x96\x4b\xa0\x9a\xf3\x20\xe1\x3c\xc8\x58\xbe\x72\x89\xac\xec\x42\x6e\x97\xb8\xec\x02\x6f\x97\xb8\xec\x6e\x19\x05\xc2\x5d\x10\xee\x12\x97\x5d\x28\xee\x42\x71\x17\x8a\x73\x80\x69\xac\xf1\xb2\x08\x84\xbb\x20\x9c\x46\xff\x63\x8d\x94\x39\x64\x65\x57\x67\x91\xab\x5b\xc9\x05\xe7\x2e\x38\x77\xc1\xb9\x0b\xcb\xdd\x6d\x3d\x51\x20\x5c\x59\xdc\x50\x2e\x37\x14\xca\x0d\x65\x11\x43\x09\xb0\xb1\xae\x2f\x73\xe0\xb7\x0b\xbc\x5d\xe0\xed\x02\x6f\x17\x78\xbb\xc0\xdb\x05\xde\x2e\xf0\xe6\x10\xe7\x58\xaf\x22\x4f\x80\xb7\x0b\xbc\x39\x08\x3a\x96\x97\x0c\x81\xdc\x2e\x49\xda\x05\xd5\xf4\xae\x0e\x7d\xac\x43\xc7\xeb\xb1\x87\x4d\xf6\xb2\x7e\x2b\xca\x80\xd9\x05\xcc\x1c\x14\x0f\x5d\xb1\xc7\xce\x75\x14\x5b\xd5\xbb\x6e\xac\x31\x62\x0a\x98\x5d\xc0\xec\x02\x66\x17\x30\xd3\x6c\x24\x34\x1b\x09\x07\x61\xc7\xf2\x12\x4d\xf0\xec\x12\xa3\x5d\x62\xb4\x0b\xa4\x29\x53\x1a\xca\x94\x8e\xe5\x2b\xa6\xd0\x9a\x52\xa6\x63\xf9\x8a\x2c\x01\xda\x55\x10\x50\x89\x93\x50\xe2\x64\x2c\x5f\xeb\x03\xe4\x76\x21\xb7\x0b\xb9\x5d\xb0\xed\x82\x6d\x17\x66\xbb\x30\xdb\x25\x40\xbb\x30\xdb\x25\x40\xbb\x47\x64\xc9\xd0\x9c\x3f\x1a\x6b\xbc\x98\x02\x6c\x97\xa0\xec\xc2\x6c\x17\x66\xbb\x30\xdb\x05\xd8\x2e\xc0\x76\xa1\xb5\x0b\xad\x5d\x68\xed\x12\x91\x5d\x80\xed\x02\x6c\x57\x71\xb1\xab\xac\xd8\x05\xdb\x2e\xd8\x76\x61\x36\x3d\x50\x7f\xcd\x56\xe0\x4d\xff\xd4\xb1\x7c\xad\xff\x60\x9b\x3e\xa9\xa1\x73\xea\x58\x63\xcc\x59\x80\xed\x02\x6c\x3a\x4e\x8d\x35\x5e\x64\x01\xb6\x0b\xb0\xe9\x56\x35\xd6\x6f\x45\x90\xdc\xec\x82\x6a\x5a\x3d\x84\xb6\x0f\x71\xc9\xcd\x1c\x28\x0c\x4d\x1e\x7e\xbe\x73\xf1\x85\xdf\x34\x82\x08\x2d\x23\xc6\xba\xb2\xf8\x12\xa6\x69\x31\x31\xd6\x95\xc5\x97\x3c\xcd\xf1\xc7\xd0\x5c\x62\x2c\x5f\xb3\x98\x3c\xed\x92\xa7\x5d\xf2\x34\x45\xac\xc3\x31\xb1\x50\xb8\x7a\x2c\x5f\xd1\x87\xeb\x14\xb7\x1e\xcb\x57\xf4\x41\x3b\xc7\xca\x42\x01\xec\xb1\x7c\x65\x02\x68\x77\x41\xbb\x0b\xda\x5d\xd0\xee\x82\x76\x37\x64\x08\x74\x77\xa1\xbb\x0b\xdd\x29\x98\x3a\x96\xaf\x6c\x81\xee\x94\x53\x1d\xcb\x57\xce\x40\x77\x8a\x09\x8e\xe5\x2b\x73\xa0\x3b\xa5\xc7\xc6\xce\x78\x28\x4e\x01\xb2\x50\x80\x6c\x6c\xb2\xc5\x1a\x23\x2b\x80\xb7\x0b\xb6\x29\x80\x32\xd6\x6f\xcd\x74\x98\xed\xc2\x6c\x17\x3c\xbb\xe0\xd9\x85\xcd\x2e\x6c\x76\x61\xb3\x4b\x80\x76\xc1\xb3\x4b\x80\x76\x21\xb4\x0b\xa1\x5d\x08\xed\x42\x68\x17\x36\x53\x20\x7c\xac\xdf\x8a\x2c\x6c\x76\x61\xb3\x0b\x9b\x29\x7a\x32\xd6\x35\xc5\x14\x36\xbb\xb0\xd9\x85\xcd\x2e\x6c\x76\x61\xb3\x4b\x98\x76\xc1\xb3\x4b\x98\x76\x21\xb4\x4b\x9e\x76\x81\xb4\x0b\xa4\x5d\x20\xed\x02\x69\x17\x48\xbb\x40\xda\x25\x3d\xbb\x70\xda\x85\xd3\x2e\xe9\xd9\x05\xd5\x2e\xa8\x76\x49\xcf\x2e\xe9\xd9\x05\xd8\x2e\xc0\xe6\x48\xe1\x58\xbe\xa2\x09\xb0\x5d\x80\xed\x92\x9e\x5d\xd2\xb3\x0b\xb6\x5d\xd2\xb3\x0b\xb9\x5d\x65\xa4\x2f\xf0\x76\x81\xb7\x0b\xbc\x5d\xe0\x4d\x15\x85\xb1\xe3\x7b\x7d\xcb\xc3\x6f\x17\x7e\xbb\xf0\xdb\x85\xdf\x2e\xfc\x76\xe1\xb7\x0b\xbf\x5d\xc8\xed\x42\x6e\x17\x6c\xbb\x60\xdb\x05\xdb\x2e\xcc\x76\x61\xb6\x0b\xb3\xdd\x2b\xee\x77\xff\x84\x1c\x6a\x4e\x84\xc3\x8f\x63\x5d\xd3\x5a\x01\xc5\x5d\x28\xee\x5e\xdf\xec\x50\xdc\x85\xe2\x14\x27\xf9\x1e\xd9\x1b\xcb\x4b\xb6\x80\x70\x17\x84\xbb\x20\xdc\x05\xe1\x2e\x08\x77\x41\xb8\x0b\xc2\x5d\xf8\xed\xc2\x6f\x17\x7e\xbb\xf0\xdb\x85\xdf\xee\xcd\xdf\xf7\x33\xe0\xdc\x05\xe7\x2e\x38\xa7\x57\xf4\x58\x57\x96\x63\x10\x9d\xa3\xa1\x63\x5d\x59\x8e\x01\x75\x3a\x4c\x87\x4e\xd2\xa1\xab\xf4\x58\x5e\xb2\x0b\xa8\xbb\x40\xdd\x05\xea\x2e\x50\xa7\x7b\xdf\x58\x5e\x72\x0c\xb4\xbb\xa0\xdd\x05\xed\xb4\xbb\x09\xe7\x13\x43\xbb\x9b\xb1\x7c\xe5\x18\x68\x77\xaf\x1c\x23\xa0\x73\xc8\x3c\x14\xd7\x0f\xc5\xf5\xc3\x69\xc3\x50\x7a\x3f\x14\xda\x0f\xa5\x97\x43\x31\xe6\x50\x8c\x39\x94\x67\x0e\x65\x98\xc3\xa9\x9b\xb8\x44\x73\xca\x92\x86\x42\xa5\x63\x0f\x1b\x6c\xb2\x97\x7d\x6c\xb1\x7c\xe5\x18\x5c\x77\x89\xe6\x2e\xd1\xdc\x85\xee\x2e\x74\x77\x89\xe6\x1c\xa2\x1d\xcb\x57\xbe\x11\xcd\x5d\xa2\xb9\x4b\x34\xa7\x58\xc8\x58\xbe\x32\x0a\xd2\xbb\x90\xde\x25\x9a\xbb\x44\x73\x17\xde\xbb\x44\x73\x17\xe4\xbb\x4f\x5e\x29\xb6\x75\x01\xbf\x0b\xf8\x5d\xc0\xef\x12\xd3\x5d\xd8\xef\xea\xfa\x76\xc1\xbf\x0b\xfe\x5d\xf0\xef\x92\xd4\x5d\x08\xf0\x42\x80\x17\x02\xbc\xe0\xdf\x7d\x32\x07\xd8\xbb\xc0\xde\x05\xf6\x2e\xa4\xa7\x6a\xc6\x58\xd7\x97\x2d\x90\xde\x85\xf4\x2e\x8c\xa7\x04\xc5\x58\xe3\xe5\x09\x98\x77\xc1\xbc\x4b\x58\x77\x21\xbd\x0b\xe9\x5d\x48\xef\x3e\x19\x02\xec\x5d\xf2\xba\x0b\xef\x5d\x78\xef\xc2\x7b\x17\xde\xbb\xf0\xde\x25\xb5\xbb\xa4\x76\x17\xea\xbb\xa4\x76\x5a\x2e\x8c\xe5\x2b\x43\x60\x3f\xc7\xb0\xc6\xf2\x95\x27\xe0\xdf\x7d\x56\x21\xe2\xbb\x4b\x7c\xe7\xe0\x5d\x5c\xe2\xbb\x0b\x0a\x5e\x50\xf0\x12\xdf\x5d\x65\x4c\x2f\x61\xdd\x2d\x79\x02\x16\x5e\xb0\xf0\x82\x85\x97\xc8\xee\x12\xd9\x39\x24\xf9\x6b\xb6\x82\x8b\x97\x10\xef\x2a\x78\x77\xc9\xf1\x2e\x39\x9e\x03\xd7\x71\xa1\xc7\x0b\x3d\x5e\xe8\xf1\x92\xe3\x5d\x72\xbc\x4b\x8e\xe7\xb8\xda\x58\xbe\xb2\x08\x92\xbc\x90\xe4\x85\x24\x2f\x24\x79\x21\xc9\x0b\x49\x5e\x30\xf2\x82\x91\x17\x8c\xbc\xe4\x75\xb7\xfe\xc5\xfd\x0c\xf1\xdd\x2d\x19\x55\x32\x0a\xc2\xbc\x10\xa6\xca\x23\x63\x5d\xcd\x5a\x04\x5b\x5e\xd8\xf2\xc2\x96\x17\xb6\xbc\xb0\xe5\x85\x2d\x2f\x6c\x79\x61\xcb\x0b\x5b\x5e\xd8\xf2\xc2\x96\x17\xb6\xbc\xb0\xe5\x85\x2d\x2f\x6c\x79\x61\xcb\x0b\x5b\x5e\xd8\xf2\xc2\x96\x17\xb6\xbc\xb0\xe5\x85\x2d\x9d\xba\xfe\x1e\xb7\x1e\xcb\x57\xa6\xc1\x96\x4e\xb4\x87\x73\x78\xe1\x50\xe8\x58\xbe\x32\x0d\xb6\xbc\xb0\xe5\x85\x2a\x2f\x54\x79\x41\xca\x0b\x52\x3a\x54\x38\xd6\x95\xe5\x12\x30\x79\x81\xc9\x0b\x4c\x5e\x60\xf2\x82\x91\x97\x4c\xef\x92\xe9\x5d\x32\xbd\x0b\x4c\x5e\x32\xbd\x0b\x4f\x5e\x78\xd2\x29\xd0\x50\x78\x65\x2c\x2f\xb9\x01\x55\x5e\xa8\xf2\x42\x95\x97\x34\xef\x02\x96\x97\x34\xef\xc2\x96\x97\x40\xef\x82\x97\x97\x40\xcf\x19\xfc\x70\x70\x36\x54\x3f\x1a\x6b\xbc\x7c\x00\x32\x2f\x81\xde\x85\x33\x15\x7c\x1a\xeb\x55\x44\x1c\xce\xbc\x70\xe6\x05\x32\x2f\x90\x79\x81\xcc\x4b\xa0\x77\xe1\xcc\x4b\xa0\x77\x5b\xdc\xc9\xf4\x2e\xc0\x79\x01\xce\x0b\x6a\x5e\xa2\xbc\x0b\x58\x5e\xc0\xf2\x92\xe3\x5d\xd8\xf2\xc2\x96\x17\xb6\xbc\x80\xe5\x05\x2c\x15\x17\x18\x6b\xa4\x68\x82\x94\x17\xa4\xbc\x20\xe5\x6d\x71\x6c\x71\x04\x2c\x2f\x60\xa9\xcb\x6c\x28\x6e\x30\xd6\xcf\x27\x82\x0f\x63\x7c\x18\xa3\x42\xfe\x63\x2f\xfb\xfd\x6d\x8f\x9d\x78\x3d\x5c\xf1\xe1\x8a\x0f\x57\x7c\xb8\xe2\xc3\x15\x1f\x96\xf8\x50\xc4\x87\x22\x3e\xc2\xba\x87\x25\x3e\x2c\xf1\x91\xce\x3d\x72\xb9\x87\x28\x3e\x44\xf1\x21\x8a\x0f\x51\x7c\x44\x73\x8f\x68\xee\xa1\x8b\x8f\x68\xee\x61\x8c\xef\x13\x3f\xef\x67\x1e\x0e\xf9\xc8\xeb\x1e\x1a\xf9\x88\xec\x1e\x26\xf9\x3e\xe1\x9a\xe9\x6a\xe9\x3d\xa4\xf1\x69\x7c\x1a\x9f\xc6\xa7\xf1\xe9\x9d\xe4\xd7\xcb\x3b\xb9\x7c\x2f\xdf\xcb\xf7\xf2\xbd\x7c\x2f\xdf\xcb\xf7\xf2\xbd\x7c\xef\x4f\x99\xde\xc3\x2d\x1f\x6e\xa9\x40\x49\xa8\x55\x33\xd6\x95\x9f\x2b\x3f\x57\x7e\xae\xfc\x5c\xf9\x79\x57\xc5\xb7\xf8\x16\xdf\xe2\x5b\xc6\x97\xf1\x65\x64\x1b\xd9\x46\xb6\x31\xed\xfa\xed\xfa\x6d\xfc\x37\x37\xda\xf5\x67\x76\x3f\x7c\xf2\x61\x92\x0f\x93\x7c\xe4\x75\x0f\x99\x7c\xc8\xe4\x43\x23\x1f\x1a\xf9\x70\xc8\x87\x43\x3e\x1c\xf2\x11\xd0\x3d\x34\xf2\x11\xd0\x3d\x4c\xf2\x61\x92\x0f\x93\x7c\x98\xa4\x0a\x20\x63\x8d\x94\x1b\x08\xe4\x43\x20\x1f\x02\xa9\x66\xd3\x58\x57\x16\x71\xd4\xf1\xe1\x8d\x0f\x6f\x54\xd7\x63\xac\x31\x22\x8e\x34\x3e\xa4\xf1\x21\x8d\x0f\x69\x7c\x48\xe3\x43\x17\x1f\xae\xf8\x70\xc5\x47\x3a\xf7\xd0\xc5\x87\x2e\x3e\x74\xf1\xa1\x8b\x0f\x5d\x7c\xe8\xe2\xc3\x15\x1f\xae\xf8\x70\x45\x1d\x9d\xc7\x1a\x2f\x52\xe4\x72\x8e\xc6\x8f\xe5\x25\x52\x88\xa2\x06\x4a\x63\x79\x95\xf1\xe2\x85\x25\x2a\x36\x3d\xd6\x78\x51\xc3\x12\x1f\x96\xf8\xf0\xc3\x87\x1f\x3e\xe4\xf0\x21\x87\x0f\x39\x54\x48\x64\xec\x65\x1f\x5b\xac\xf1\x62\x87\x0d\x3e\x3c\xf0\xed\x65\xa4\xd8\x21\x81\x0f\x09\x7c\x48\xe0\x43\x02\x1f\x12\xf8\x30\xc0\x87\x01\x3e\x0c\xf0\xa1\x7f\x0f\xfd\x7b\xe8\xdf\x43\xff\x1e\xfa\xf7\xd0\xbf\x87\xfe\x3d\xf4\xef\x39\x60\xfa\x30\xc0\x87\x01\x3e\x0c\xf0\x61\x80\x0f\x03\x7c\x18\xe0\x73\xc0\xf4\x61\x80\x0f\x03\x7c\xe4\x78\x0f\x09\x7c\x48\xe0\x43\x02\x9f\x63\xa6\x0f\x0f\x7c\x78\xe0\xc3\x03\xd5\xf4\x0a\xc5\x71\xc6\xf2\x35\xa3\xf1\xc0\x47\xac\xf7\x50\xc1\xb7\xef\xcf\xfb\x99\x87\x1c\x3e\x47\x54\x1f\x7e\xf8\xf0\xc3\x87\x1f\x3e\xfc\xf0\xe1\x87\x0f\x3f\xd4\xc9\x3b\x94\xad\x0a\xbd\xbd\xc7\xf2\x92\x21\x28\xa2\x3e\xdf\xa1\xcf\x77\xe8\x02\x3e\x96\x57\x19\x2f\x37\xf0\xc3\x87\x1f\x6a\x86\x39\xd6\x78\xb9\xb1\xfb\x5f\xbc\x73\x99\x83\x31\x6a\xcf\x12\x8f\x4c\xef\xe1\x8a\x9a\xb7\x8c\x0d\x36\xd9\xcb\x3e\x76\x5e\x97\x34\xef\x21\x8d\x0f\x63\x54\xd8\x37\x14\x5d\x1d\x6b\xa4\xfc\x21\xc7\x7b\x78\xa3\xd6\xc4\xa1\x11\xf1\x58\x5e\x56\x00\xbc\x51\xa1\xc3\x6f\x25\x95\xb1\x46\xca\x1c\xa4\x51\x71\xab\x50\xc1\x6a\xec\x77\xa4\x2b\xcb\x13\x5c\x51\x53\xc1\xd0\x84\x70\xac\x6b\xca\x13\x44\xf1\x21\x8a\x0f\x51\x7c\x88\xe2\x43\x11\x35\x27\x0c\x4d\x08\x43\xbb\xc2\xd0\xd2\x30\x34\x4f\x1e\xeb\xca\x56\x03\x44\xf1\x21\x8a\x9a\x1f\x86\x56\x4b\x63\x79\x89\x35\xa2\xf8\x48\xf9\x1e\x29\x9f\x72\x16\xa1\xf9\x52\x68\xd3\x14\x9a\x32\x8d\xe5\x2b\xe2\xa8\xe3\x43\x1d\x1f\xea\xa8\x02\x56\x68\xe2\x34\x96\x97\xb8\x13\xf7\x3d\x04\xf2\x21\x90\x0f\x81\x7c\x08\xa4\x56\x22\xa1\x89\xc8\x58\x5e\x56\xf2\xf3\x8d\xb2\xf5\x41\xf9\x75\x6d\x03\xc6\x6e\xf6\xb0\xc1\x26\x7b\xd9\xc7\x16\xcb\x57\xdc\x09\x00\x1f\x01\xe0\x23\x00\x7c\x98\xa4\x02\xc7\xa1\xe4\x71\x28\x79\x1c\x8a\x1d\x8f\xe5\x2b\xee\x98\xe4\x43\x23\x1f\x1a\xf9\xd0\xc8\x47\xe8\xf7\x30\x49\x25\x13\xc7\x1a\x2f\xfa\x28\xa5\x12\x90\x63\x8d\x97\x03\xc8\xe4\x73\x04\xf6\xa1\x8e\x0f\x75\x54\xf5\x68\xac\xeb\xcb\x01\xa4\xf1\x21\x8d\x0f\x63\x7c\x18\xe3\xc3\x18\x1f\xba\xf8\xd0\xc5\x87\x2e\x3e\x74\xf1\xa1\x8b\x0f\x5d\x7c\xe8\xe2\x43\x14\x1f\x96\xf8\x50\xc4\x87\x22\x3e\x14\xf1\xa1\x88\x0f\x45\x7c\x28\xe2\x43\x0e\x1f\x72\xf8\x30\xc3\x87\x19\x3e\xcc\xf0\x45\xfd\xdc\xd6\xd6\x94\x7b\xac\x77\x28\xfa\x58\xe2\xc3\x12\x1f\x96\xf8\xf0\xc3\x17\x22\x8e\x1c\x3e\x52\xbe\x87\x19\x3e\xf2\xbd\x87\x1c\x3e\xf2\xbd\x47\xbe\xa7\x2a\xd4\x58\xe3\x45\x16\x45\x7c\xe4\x7b\x8a\x06\x7d\xeb\x56\x8e\xe5\x2b\xb2\x44\x7c\x2f\x57\xfd\x7c\xe7\x08\xe4\x43\x20\x1f\x02\xf9\x10\xc8\x47\xe8\xf7\x1c\x90\x7d\x0e\xc8\x3e\x4c\xf2\x61\x92\x8f\xa0\xef\x21\x93\x0f\x99\x7c\xc8\xe4\xc3\x24\x1f\x26\xf9\xd0\xc8\x87\x46\x3e\x34\xf2\x91\xf2\x3d\x4c\xf2\x91\xf2\xbd\x94\x09\x29\x13\x50\xca\x87\x52\x3e\x64\xf2\xa5\xef\x08\x4c\xf2\x61\x92\x0f\x93\x7c\x98\xe4\xc3\x24\x1f\x26\xf9\x70\xc8\x87\x43\x3e\x04\xf2\x61\x8c\x2f\x45\x1c\x69\x7c\x48\xe3\x43\x1a\x1f\xba\xf8\x70\xc5\x87\x25\x3e\x2c\xf1\xa1\x88\x0f\x33\x7c\x98\xa1\x46\xeb\xa1\x49\x40\x28\x20\x3c\xd6\xab\x9b\xad\x38\xe1\xc3\x09\x95\x73\x0a\xa5\x78\x42\x05\xdc\xb1\x73\x35\x3c\x50\x55\xae\xb1\x7e\x2e\x5e\xa8\xe0\xc3\x03\x1f\x1e\xf8\xf0\xc0\x47\x7c\xf7\x10\xbf\x87\xf8\x3d\xac\xef\x61\x7d\x0f\xeb\x7b\x58\xdf\x23\xbe\x7b\x88\xdf\x43\xfc\x1e\xe2\xf7\x10\xbf\x87\xf8\x3d\xc4\xef\x11\xdf\x3d\xc4\xef\x21\x7e\x0f\xf1\x53\xa0\x67\x2c\x2f\x11\x21\xbb\x7b\xb8\xdf\xc3\xfd\x1e\xee\xf7\x70\xbf\x87\xfb\x3d\xb2\xbb\x87\xec\x3d\x64\xef\x21\x7b\x0f\xd9\x7b\xc8\xde\x43\xf6\x1e\xb2\xf7\x90\x3d\xcd\xea\x43\xdb\xd8\xd0\x0a\x65\x2c\x5f\x51\xbb\xbe\xa9\xf1\xbd\x87\xef\x3d\x7c\xef\xe1\x7b\x0f\xdf\x7b\xf8\xde\xc3\xf7\x1e\xa6\xf7\x30\xbd\x87\xe6\x3d\x34\xef\xa1\x79\x0f\xc7\x7b\x08\xde\x43\xf0\x1e\x82\xf7\x10\xbc\x87\xe0\x3d\xd4\xee\x39\xf0\xfa\x90\x3a\x75\x1d\x43\xb1\xa9\xb1\x73\x35\x74\x4e\x2d\xb5\xb1\xc9\x5e\xf6\xb1\xf3\x5a\x88\xdc\x43\xe4\x1e\x22\xf7\x10\xb9\x87\xc8\x3d\x44\xee\xa1\x70\x0f\x73\x7b\x98\xdb\xc3\xdc\x1e\xe6\xf6\x30\xb7\xf7\xf6\x4f\x11\x8a\x3a\x5b\x63\xbd\x96\x28\xe3\x6f\x0f\x7f\x7b\xc8\x9b\xf2\x6e\x63\xbd\x37\x51\x46\xde\x1e\xf2\xf6\x90\xb7\x87\xbc\x3d\xe4\x4d\xbd\xdb\x78\x98\xdb\x23\xa6\x7b\x98\xdb\xc3\xdc\x1e\xe6\xf6\x30\x37\x95\x68\xc7\xba\xb2\x38\x62\x6e\xef\xdd\x9f\x7c\xe6\x11\xd9\x3d\x22\x3b\xc5\x9f\xc6\x7a\x5d\x51\x46\xe7\x14\xa3\x8b\x87\xd1\x3d\x8c\x4e\xf3\xf0\xd0\xe8\x3b\xb4\x07\xff\x56\x44\xfb\x16\x3f\x0b\x4d\xbf\x43\x6b\xf1\xb1\x7c\xcd\x68\x8c\xee\x61\x74\x0f\xa3\x7b\xb8\x9c\x96\xe3\xa1\xb5\x78\x68\x21\x3e\xd6\x6f\x45\x1f\x7f\x53\x8d\xed\x5b\x6a\xed\x5b\x69\x2d\x34\x24\x0f\xa5\xe6\xc6\xde\xbf\x6f\x79\xac\xb1\xc5\x1a\x23\x07\xd0\x36\x6d\xcf\xc7\x1a\x2f\xfa\x18\xda\xc3\xd0\x1e\x86\xf6\x30\xb4\x87\xa1\x3d\x0c\xed\x61\x68\xda\xa2\x8e\xe5\x25\x2b\x30\x34\xad\x53\xc7\xf2\x95\x03\x18\x9a\x86\xab\x63\x8d\x37\xc7\x31\x34\x4d\x56\x43\x2b\xd7\xd0\xbe\x75\xac\xf1\x72\x00\x2b\xd3\xa6\x35\xb4\x66\x1d\xcb\xd7\x4c\x27\xf7\xd3\xdc\x35\x34\x80\x0d\x75\xab\xc7\xf2\x95\x1b\xe8\xd9\x43\xcf\x1e\x7a\xf6\xd0\xb3\x87\x9e\x69\xfa\x1a\x0f\x3d\x7b\xe8\x99\xf6\xb0\xa1\xd1\xeb\x58\xbe\x72\x00\x3d\x7b\xe8\xd9\xc3\xcd\xb4\x8d\x1d\xcb\x4b\xdc\x11\xb3\x87\x98\xa9\x88\x1c\xda\x00\x86\xa6\x82\xa1\x61\x60\x68\x4e\x1b\x1a\x09\x86\xa6\x85\xa1\x6d\x60\x68\x54\x18\x9a\x10\xc6\x43\xc9\x1e\x4a\xf6\x08\xfa\x1e\x56\xa6\x91\x60\x68\x4e\x18\x9a\x10\x86\xf6\x83\xa1\x11\x62\x68\x66\x18\x9a\x16\x86\x16\x88\xa1\xfd\x60\x68\x5d\x18\xda\x24\x86\xa6\x88\xa1\x1d\x62\x68\x6c\x38\x96\x97\xd5\x00\x31\x7b\x8e\xb4\xaa\x8b\x39\xd6\x78\x99\x40\xe2\xf7\x70\xb3\x87\x9b\x3d\xdc\xec\x61\x65\x5a\x91\x85\x96\x63\x63\xbd\xae\x28\x23\x63\x6a\xcd\x8d\x35\x46\x64\x5b\x4c\x71\x30\x2d\xcd\x42\x03\xb3\x78\x38\xd8\x43\xc0\x94\xda\xfb\x35\x5b\xf1\x31\x2d\x91\x42\x1b\xa4\xd0\x24\x29\x34\x46\x0a\x2d\x94\x42\x0b\xa5\xd0\x5a\x69\xac\xf1\xa2\x89\x95\x69\xb6\x14\x0f\x25\x7b\x8e\xab\x6a\x3f\x33\xd6\x78\xd1\x24\xee\x7b\x88\xd9\x43\xcc\x1e\x62\xa6\x45\x4d\x68\x4e\x33\x96\x97\x68\xf6\xbf\xb8\x13\xc3\xd3\x1e\x9e\xf6\x08\x00\x1f\x01\xe0\xc3\xd6\x1e\x01\xa0\xa6\x26\xa1\xa9\xc9\x58\x57\x16\x7d\xcc\xed\x7d\x99\x1b\xb9\x9f\x76\x1a\x51\xff\x71\xfe\x42\x4f\x8d\xb1\x9b\xfd\xfe\x24\xd8\x64\x2f\xfb\xd8\x71\x02\xe4\x14\x94\x1d\x6b\xfc\x32\x7e\x19\xbf\x8c\x9c\x44\xf8\x76\x70\xa8\xcf\x36\x7e\x1b\xbf\xbd\xca\xe6\xb5\x79\x6d\x5e\xdb\xab\x6c\xbe\x9b\xef\xe6\x7b\xf8\x1e\xbe\x87\xef\xe1\x7b\xf8\x1e\xbe\x87\xd7\xe1\x75\x78\x85\xf1\x61\x7c\x18\x1f\x46\x86\x57\x09\xe3\xc3\xf8\x30\x3e\xbd\x4a\xf2\x4a\xe3\xd3\xf5\xd3\xf8\x34\x3e\x8d\x4f\xe3\xaf\xf1\xd7\xf8\xeb\x55\x2e\xaf\xeb\x55\x2e\xaf\xcb\xeb\x1a\xff\x8c\x7f\xc6\x3f\x23\x9f\xeb\x3f\xe3\x9f\xf1\xcf\xf8\xe7\x55\x1e\xaf\x32\xbe\x5c\xbf\x8c\x2f\xe3\xcb\xf8\x32\xbe\x8c\x2f\xe3\xdb\xab\x34\xaf\xe6\xd5\x5e\xab\xf9\x36\xdf\xe6\xdb\x7c\x9b\xaf\x44\x20\x06\x2c\x62\xc0\x02\xdb\x8a\x18\xb0\x9c\x6e\x2d\x92\xc0\x82\xdf\x0a\x7e\x2b\xf8\xad\xe0\xb7\x82\xdf\x8a\x30\xb0\x9c\x6e\x2d\xf2\xc0\x02\xe4\x0a\x90\x2b\xf2\xc0\x82\xe5\x0a\x96\x2b\x58\xae\x00\xb9\x02\xe4\x0a\x8a\x2b\x28\xae\x48\x02\x8b\x18\xb0\xa0\xb8\x22\x09\x2c\x40\xae\x00\xb9\x02\xe1\x0a\x7e\x2b\x72\xbf\x02\xde\x0a\x78\x2b\x80\xad\x00\xb6\x72\x36\x55\x0d\xcf\xb1\xc6\x8b\x17\xa8\x56\x4e\xa2\x16\x9c\x56\x70\x5a\x11\xeb\x15\x9c\x56\x70\x5a\x41\x68\x05\xa1\xd5\xaa\x9f\x18\xb8\xa0\xb5\x82\xd6\x8a\x4c\xaf\xa0\xb5\x22\xd3\x2b\x80\x4d\x75\xd7\x28\x80\xad\x00\xb6\x02\xd5\x0a\x4e\x2b\x38\xad\xc8\xf1\x94\x21\x1c\x7b\xd8\xcb\x3e\xd6\x18\x9f\x3f\x84\x56\xe4\x75\x45\x5e\x57\x70\x5a\x91\xd7\x15\xa8\x56\xfb\x77\x35\xbd\x02\xde\x0a\x78\x2b\xe0\xad\x20\xb7\x82\xdc\x8a\xf8\xae\x80\xb7\x02\xde\x0a\x78\x2b\xe2\xbb\x82\xdf\x0a\x7e\x2b\xf8\xad\xe0\xb7\x82\xdf\x0a\x7e\x2b\xf8\xad\xe0\xb7\x82\xdf\x0a\x7e\x53\xb8\x36\xd4\x4f\x1e\xcb\x57\x64\xe1\xb7\x82\xdf\x8a\x10\xaf\x40\xb8\x02\xe1\x0a\x84\x53\x98\x3f\x0a\x84\x2b\x10\xae\x40\xb8\x02\xe1\xd4\x32\x1d\xcb\xd7\x8c\x06\xe1\x0a\x84\x2b\x10\xae\x80\xb7\x72\x4a\xb6\x40\xb5\x02\xd5\xf4\x6e\x8f\x82\xd0\x6a\xcb\x0a\x20\xad\x80\xb4\x02\xd2\x0a\x3c\x2b\x35\xe0\x0a\x30\x53\xf1\x77\xac\xdf\x8a\x3b\x6c\x56\x80\x59\x01\x66\xe5\x8c\x6b\x81\x61\x45\x64\x57\x60\x58\x11\xd9\x15\x24\x56\x4e\xae\x16\x30\x56\xc0\x58\x81\x61\x05\x80\x15\x00\x56\xa4\x76\x05\x83\x15\x0c\x56\x30\x58\x01\x60\x05\x80\x15\xf4\x55\xd0\x97\xd6\x09\xdf\x12\xb7\x63\x5d\x4d\x04\x01\xb0\x22\xb8\x2b\x18\xac\x60\xb0\x82\xc1\x0a\x00\x2b\xe8\xab\xa0\xaf\x22\xac\xd3\xb9\x62\xac\x6b\x8a\x0e\xf4\x55\xd0\x57\x81\x5e\x05\x7a\x15\xe8\x55\x64\x74\x45\x46\x57\x00\x58\x91\xd1\x15\x0c\x56\xce\xaf\x16\x18\x56\x60\x58\x81\x61\x05\x86\xe9\xa0\x1f\x3a\xe8\x8f\xe5\x2b\x52\x90\x98\x1e\xc9\xa1\x5f\xf2\x58\xbe\x66\x34\x24\x56\x00\x98\xa6\x26\x63\x8d\x31\x97\x41\xaf\x02\xbd\x0a\xf4\x2a\xb5\xdb\x0a\xfa\x2a\xe8\xab\xa0\xaf\x82\xbb\x4a\xd5\xb6\x02\xba\x0a\xe8\x2a\xa0\xab\x80\xae\x02\xba\x0a\xe8\x2a\x88\xab\x20\xae\x82\xb8\x34\x34\x18\x7b\xd9\xc7\x16\x6b\xbc\x98\x82\x5b\x05\x6e\x55\xfc\xde\xd6\x2e\xe8\xab\xa0\xaf\x82\xbe\x0a\xfa\x2a\xe8\xab\xa0\xaf\x22\xca\x2b\x00\xac\x00\xb0\x22\xca\x2b\x18\xac\x60\xb0\x82\xc1\x0a\x06\x2b\x18\xac\x60\xb0\x82\xc1\x0a\x06\x2b\x18\xac\x60\xb0\x22\xd6\x2b\x30\x4c\xf1\xf8\xb1\x7c\x65\x45\xfc\xde\x28\x2b\xd8\xac\x60\xb3\x82\xcd\x0a\x36\x2b\xd8\xac\x60\xb3\x22\xd3\x2b\xf0\xac\xc0\xb3\x22\xd3\x2b\x08\xad\x20\xb4\x82\xd0\x0a\x3c\x2b\xf0\xac\x60\xb3\x82\xcd\x0a\x36\x2b\x72\xbc\x02\xcf\x8a\x1c\xaf\x20\xb4\x22\xc7\x2b\x20\xad\x80\xb4\x02\xcf\x0a\x3c\x2b\x12\x3c\xc5\x95\xc7\x1a\x2f\x67\x48\xf0\x0a\x4e\x2b\x38\x4d\x17\x9d\xb1\xbc\xe4\x0c\x60\x56\x50\x59\x41\x65\x05\x95\x15\xd9\x5d\x91\xdd\x15\x6c\x56\x64\x77\x05\x9e\x95\x33\xb1\x45\x82\x57\x40\x5a\x01\x69\x45\x88\x57\x84\x78\x05\xaa\xe9\x8a\x31\x36\xd9\xcb\x3e\xb6\x58\xbe\x32\x0a\x54\x2b\x20\xad\x80\xb4\x82\xd0\x8a\x4c\xaf\xc0\xb0\x02\xc3\x34\xf4\x18\xeb\x6a\xf2\x01\x00\x53\xf4\x7b\xac\x31\xa2\x4f\x94\x57\xd0\x57\x41\x5f\x05\x7d\x15\xf4\x55\xd0\x97\x8a\xec\x63\x8d\x14\x4d\xd2\xbc\x02\xc0\x8a\x34\xaf\x60\xb0\x22\xd0\xd3\xcd\x60\x2c\x2f\xab\x01\x18\x56\x60\x58\x81\x61\x45\x9a\x57\x90\x58\x41\x62\x45\x9a\xa7\x56\xf0\x58\x5e\xe2\x4b\x94\xa7\x50\xf7\x58\x5e\x56\x6f\xc0\xac\x00\x33\x95\xcb\xc7\xf2\x12\x65\xf0\xac\x48\xf3\x0a\x42\x2b\xd2\xbc\x22\xcd\x2b\x38\xad\xe0\xb4\x22\xcd\x2b\x50\xad\x48\xf3\x8a\x34\xaf\x48\xf3\x0a\x66\x2b\x98\xad\x48\xf3\x0a\x6c\x2b\xb0\xad\xc0\xb6\x82\xd9\x0a\x66\x2b\x80\xad\x00\xb6\x02\xd8\x8a\x04\x4f\x57\x8f\xb1\x8f\x2d\xd6\x78\x91\x85\xdf\x0a\x7e\x2b\xf8\xad\xe0\xb7\x82\xdf\xca\x09\xd8\x02\xe1\x0a\x84\x2b\x10\xae\x40\xb8\x02\xe1\x0a\x84\xab\xfb\xfb\xcc\x73\x41\x74\xca\xbb\x87\x6e\x89\x51\xe0\x5c\x81\x73\x05\xcb\x15\x2c\x57\xb0\x5c\xc1\x72\x45\x8e\x57\xe0\x5c\x81\x73\x05\xcb\x15\x2c\x57\x80\x5c\x41\x71\x05\xc5\x15\x14\x57\x50\x5c\x41\x71\x05\xc5\x15\xfc\x56\xf0\x5b\x01\x6f\x05\xbc\xd5\xfd\x5d\x7d\xa6\x00\xb9\x02\xe4\x0a\x90\x53\x0f\x7f\xac\xab\xc9\x19\x40\xae\x40\xb8\x22\xaf\x2b\xf2\xba\x82\xe2\x0a\x8a\x2b\xf2\xba\x02\xe4\x0a\x90\x2b\x40\xae\xc8\xeb\x0a\x96\x2b\xf2\xba\x02\xe7\x0a\x9c\x2b\x70\xae\xc0\xb9\x02\xe7\x8a\xbc\xae\xc8\xeb\x0a\xa8\x2b\xf2\xba\x82\xeb\x8a\xc8\xae\x88\xec\x0a\xba\x2b\xe8\xae\xa0\xbb\x82\xee\x8a\xd4\xae\x48\xed\x8a\xd4\xae\xc0\xbc\x02\xf3\x8a\xd4\xae\x20\xbd\x82\xf4\x0a\xd2\x2b\x30\xaf\xc0\xbc\x82\xf1\x74\xee\x1e\x6b\xe4\xfa\x8e\x71\x65\x79\x42\x4c\x57\xc0\x9e\x9e\x98\xa1\x3f\xe6\xd8\x79\x0f\x84\x72\x05\xd4\x15\x50\x57\x40\x5d\x41\x74\xba\xc6\x87\xee\xf0\xa1\x3b\xfc\x58\x23\xad\x09\xa4\x70\xf5\xc4\xda\x99\xd8\x82\xe8\x8a\x2c\x4e\xcf\xe8\xd0\x45\x3a\x74\x91\x8e\x02\xe4\x0a\x90\xd3\xc7\x76\xac\x77\x22\x6a\xd0\x9a\x8e\x96\xa1\xd6\x7b\xe8\x8d\x18\xfa\x33\x8e\xf5\x8a\x62\x07\xaa\x7d\xbb\x04\x16\xa8\x56\x40\x5a\x41\x68\x45\xda\x56\xa4\x6d\x05\xa7\x15\x9c\xa6\xc7\xd5\x58\x57\x13\x11\x38\xad\xe0\x34\x8d\x09\xc6\xce\x78\x72\x36\xed\x09\xc6\x6e\xf6\xb0\xc1\x26\x7b\xd9\xc7\xf2\x12\x17\x80\xad\xc8\xd9\x74\x34\x19\xcb\x4b\x74\x08\xd6\x0a\x6c\x2b\xb0\xad\xc0\xb6\x02\xdb\x0a\x6c\x2b\xb0\xad\xc0\xb6\x02\xdb\x0a\x6c\x2b\xb0\xad\xc0\xb6\x02\xdb\x0a\x6c\x2b\xb0\xad\xc0\xb6\x52\x3f\xae\xc8\xd6\x0a\x78\x2b\xe0\xad\x80\xb7\x02\xde\x0a\x78\xd3\x82\x21\x0a\x78\x2b\xe0\xad\x80\xb7\x02\xde\x0a\x78\xd3\x57\x28\xf4\xf0\x0a\x7d\xe1\xa3\xc0\xb6\xaa\xdf\x67\x9e\xf5\xea\x1d\xeb\x3a\xf9\xf5\xf5\xba\x32\x01\x78\xd3\x5d\x61\xac\xd7\x35\xa3\x21\xb7\x82\xdc\x0a\x66\x2b\x98\xad\xc8\xd3\x0a\x6c\x2b\xb0\xad\xc0\xb6\x02\xdb\x0a\x6c\x2b\xb0\xad\xc0\x36\xfd\xeb\xc7\xf2\x32\x8b\xc1\x36\x6d\x26\x7e\xbe\x73\x59\x44\xb6\x56\xb0\x5c\x39\x6d\x5b\xe0\x5c\x81\x73\x05\xce\x15\x38\x57\xe0\x9c\xa6\x15\x63\xf9\xca\x25\x70\xae\xc8\xd9\x0a\xa2\x2b\x88\xae\x20\xba\x02\xe7\x0a\x9c\x2b\x70\xae\xc0\xb9\x02\xe7\x0a\x9c\xd3\xe9\x78\xac\xf1\xb2\x88\xa8\x4d\xfb\xab\xb1\x7c\x65\x11\x50\x57\xe0\x5c\x11\xb2\x15\x38\x57\x84\x6c\x05\xd1\x15\x44\x57\x84\x6c\x9a\x0c\x8d\x75\x65\x79\x02\xdd\x15\x74\x57\xd0\x5d\x41\x77\x05\xdd\x15\x51\x5b\x11\xb5\x15\x8c\x57\x44\x6d\x05\xe6\x15\x69\x5b\x41\x7a\x05\xe9\x15\xa4\x57\x04\x6e\x05\xec\x15\x81\x5b\xa9\x43\x57\x20\x5f\x91\xb9\x15\x8c\x57\x64\x6e\x05\xe6\x15\x98\x57\x60\x5e\xc1\x78\x05\xe3\x15\x80\x57\x00\x5e\x01\x78\x45\xe6\x56\x00\x9e\x7e\x20\xa1\xaf\xc7\x58\xe3\xe5\x09\x8c\x57\xd0\x5d\x41\x77\xe5\x5c\x6e\x41\x77\x05\xdd\x15\x74\x57\xc4\x6e\x05\xce\x15\x38\x57\xe0\x5c\x81\x73\x05\xce\x15\x38\x57\xe0\x5c\x81\x73\x05\xce\x15\x38\x57\xe0\x9c\x9e\x24\x63\xf9\x4e\x0e\xf4\x7f\x9c\xbf\x68\x70\x4e\x93\x92\xb1\xdf\x9f\x04\x9b\xec\x65\x1f\x5b\xec\xb8\x42\x74\x0d\xd1\x35\xcd\x9c\x26\x35\x63\xf9\x2e\xbe\x8b\xef\xe2\xbb\xf8\x2e\xbe\x9b\xef\xe6\xbb\xf9\x6e\xbe\x9b\xef\xe6\xbb\xf9\x6e\xbe\x9b\xef\xe6\x7b\xf8\x1e\xbe\x87\xef\xe1\x7b\xf8\x1e\xbe\x87\xef\xe1\x7b\xf8\x1e\xbe\xc1\x37\xf8\x06\xdf\xe0\x1b\xbc\x82\x57\xf0\x0a\x5e\xc1\x2b\x79\x25\xaf\xe4\x95\x3f\x1f\x9b\x1a\xde\x6b\x4a\xbb\x06\xf9\x1a\xe4\x6b\x90\xaf\x41\xbe\x06\xf9\x1a\xe4\x6b\x90\xaf\x41\xbe\xa6\xb4\x6b\xa8\xaf\xa1\xbe\x86\xfa\x9a\xd2\xae\x01\xbf\x06\xfc\x1a\xf0\x6b\xc0\xaf\x01\xbf\x06\xfc\x1a\xf0\x6b\xc0\x4f\x77\x9a\xb1\xbc\xea\xe7\xa9\x83\x06\x05\x1b\x14\x6c\x1a\xbb\x86\x06\x1b\x1a\x6c\x68\xb0\xa1\xc1\x86\x06\x1b\x1a\x6c\x68\xb0\xa1\xc1\x86\x06\x1b\x14\x6c\x50\xb0\x41\xc1\x06\x05\x1b\x14\x6c\x50\xb0\x81\xc0\x06\x02\x1b\x02\x6c\x08\xb0\x21\xc0\x06\xff\x1a\xfc\x6b\xf0\xaf\xc1\xbf\x06\xff\xf4\xc3\x19\xcb\x4b\x8e\xc1\x7e\xad\x9c\x5d\xc3\x7e\x0d\xfb\x35\x1d\x5e\x83\x7f\x0d\xfe\x35\x1d\x5e\x3b\x1b\xdc\x40\x60\xd3\xe4\x35\x1c\xd8\x70\x60\xc3\x81\x0d\x07\x36\x1c\xa8\xc1\x56\xe8\xc2\x34\x96\xaf\xbc\x72\x42\xb8\x9d\x10\xd6\x64\x71\x2c\xdf\xe0\x2b\xbb\x80\xc3\x06\x0e\xdb\x09\x61\xfd\x49\xa3\xe9\xf6\x9a\x6e\xaf\xe9\xf6\x1a\x56\x6c\x58\xb1\xe9\xf6\xda\x09\xe1\x76\x42\xb8\x69\xf8\xda\x09\xe1\x06\x1d\x1b\x74\x6c\xd0\xb1\x41\xc7\xa6\xea\x6b\xaa\xbe\x06\x20\x9b\xaa\xaf\x61\xc8\xa6\xed\x6b\x30\xb2\xc1\xc8\x06\x23\x9b\xc2\xaf\x21\xc9\x86\x24\x9b\xc2\xaf\x29\xfc\x1a\x9e\x6c\x78\xb2\x29\xfc\x9a\xc2\xaf\x61\xc8\x86\x21\x9b\xc2\xaf\xc1\xc8\x06\x23\x1b\x8c\x6c\x30\xb2\xc1\xc8\x06\x23\x1b\x8c\x6c\x6a\xbf\xa6\xf6\x6b\x60\xb2\xa9\xfd\xda\xc9\xe1\x76\x72\x58\x8b\xa3\xb1\xe3\x0b\x55\x36\xfd\x5f\x03\x96\x0d\x58\xb6\x93\xc3\x1a\x20\x8d\xbd\xec\x63\x8b\xe5\x2b\x8b\x20\xcc\x06\x2f\x1b\xbc\x6c\xf0\xb2\xc1\xcb\x76\x42\xb8\xe1\x49\x8d\xe5\x43\x0b\xa5\xb1\xbc\x64\x14\x48\xd9\x20\xa5\x86\xd2\x63\xf9\xca\x28\x90\xb2\x41\x4a\xbd\x96\xc6\xf2\x95\x51\xf0\x64\xc3\x93\x0d\x4f\x36\x3c\xd9\xf0\x64\xc3\x93\x0d\x4c\x36\x30\xd9\x3b\x7e\xaf\x33\x80\x65\x03\x96\x0d\x58\x36\x54\xd9\x50\x65\x43\x95\x0d\x55\x36\x54\xd9\x50\xa5\x9e\x7a\x63\xbd\xae\x5c\xa2\x11\x6c\x1a\xc1\x86\x2a\xbf\x0d\xcf\x9b\x0a\x50\xe3\xee\xb1\x5e\x45\x2e\x51\x01\x6a\x1b\x15\x4d\x05\xa8\x79\xd4\x58\xbe\xef\x5f\xbc\x73\x99\x06\x70\x36\xa5\x60\x53\x0a\x36\xd8\xd9\x94\x82\x0d\x79\x36\xbd\x60\xd3\x0b\x36\xfc\xd9\xf0\x67\xc3\x9f\x0d\x7f\x36\xfc\xd9\x8a\xfe\x35\xed\x60\x43\xa1\x0d\x85\x36\xed\x60\x03\xa2\x0d\x88\x36\x75\x60\x03\xa2\x0d\x88\xea\x7e\x3a\x76\xb3\x87\x4d\xf6\xb2\x8f\x2d\xd6\x78\x19\x05\x91\xea\x8c\x35\xd6\x48\xf9\x03\x8b\x36\x5d\x60\x83\xa3\x0d\x8e\x36\x38\xda\xb0\x68\x43\xa1\x0d\x85\x36\xe5\x5f\x3b\x63\xac\x3f\xe8\x58\xd7\x91\x15\x20\xa8\x5e\x6e\x63\xfd\xd6\x1a\x02\x7c\x36\xf0\xa9\xcd\xfe\x58\xd7\xb1\x56\xc0\x9c\x0d\x73\x36\xc0\xd9\x00\x67\x03\x9c\x0d\x70\x36\xc0\xd9\x00\x67\x03\x9c\x0d\x6a\x36\x55\x5f\x83\x9a\x4d\xd5\xd7\xd0\x66\x43\x9b\x0d\x6d\x36\xa8\xd9\xa0\x66\xc3\x99\x0d\x67\x36\x9c\xd9\x34\x7c\x0d\x6a\x36\x0d\x5f\x43\x9b\x4d\xc9\xd7\x00\x67\x03\x9c\x0d\x6a\x36\xdd\x5e\xc3\x99\x0d\x67\x36\xc5\x5e\x83\x9a\x0d\x6a\x36\xa8\xd9\x70\x66\xc3\x99\x0d\x67\x36\x95\x5e\x43\x95\x0d\x55\x36\x48\xd9\x20\x65\x83\x94\xad\x40\x5f\x43\x95\x0d\x55\x36\x54\xd9\x20\x65\x83\x94\x0d\x52\xb6\xd2\x7c\x0d\x52\x36\x48\xd9\x20\x65\x83\x94\x0d\x52\x36\x48\xd9\xce\x0c\xeb\xf9\x39\xf6\xfb\x13\xbe\xe6\x20\xac\xd8\xb0\x62\x43\x89\x0d\x22\x36\x88\xd8\x14\x78\x0d\x25\x36\x88\xd8\xf0\x61\xc3\x87\x0d\x1c\x36\x70\xd8\xc0\x61\xd3\xde\x35\x7c\xd8\xf0\x61\xc3\x87\x0d\x1f\x36\x7c\xd8\xf0\xa1\x0e\x6d\xa1\xf5\xda\x58\xbf\x35\x2f\xc0\xc2\x06\x0b\x1b\x2c\x6c\x80\xb0\xa3\x7f\x3e\x7c\x34\x70\xd8\xf1\x8d\x94\xf9\x02\x19\x36\x64\xd8\x90\x61\x43\x86\x0d\x19\x36\x64\xd8\x90\x61\xc3\x84\x0d\x10\x36\x40\xa8\x11\xfa\xd8\xef\x6f\x8b\x75\x4d\xd1\xa1\xa2\x6b\xe0\xb0\x21\xc3\x86\x0c\x1b\x32\xd4\xde\x3f\x1a\x38\xd4\xa8\xff\xd7\x3b\x07\x17\xdb\xb9\xdf\x86\x18\x1b\x62\x6c\x88\xb1\x29\xed\x9a\xd2\x4e\x33\xbb\x68\xa5\xf3\x1a\x6e\x6c\xb8\xb1\xe1\xc6\x86\x1b\x1b\x6e\x6c\xb8\xb1\x21\x46\x6d\xf4\x43\x9b\xfe\xd0\x7f\x3f\x34\xea\x0f\xbd\xfd\x43\x83\xfe\xd0\x79\x3f\xb4\xbd\x0c\x8d\xfa\x43\x1f\xff\xd0\xfa\x3f\x34\xe7\x0f\xcd\xff\x43\xa7\xff\xb1\xae\x26\xca\x90\xa1\x2e\xfe\xa1\x51\x7f\xe8\xd4\x1f\xba\xf4\x8f\x35\x46\xac\x61\xc2\x86\x09\x1b\x26\x6c\x98\xb0\x61\xc2\x86\x09\x1b\x26\x6c\x98\xb0\x61\x42\x6d\xcb\xc7\xf2\x12\x59\x9a\xbc\x86\x0c\x1b\x32\x6c\xc8\xb0\x21\xc3\x86\x0c\xf5\x3f\x1f\x6b\xbc\xf8\x82\x85\x0d\x13\x36\x4c\xd8\x30\x61\xc3\x84\xed\x04\x6f\x83\x85\x0d\x16\x36\x4c\xd8\x30\x61\x53\xe9\x35\x04\xd8\x10\x60\x53\xe9\x35\x10\xd8\x40\x60\x03\x81\x0d\x04\x36\x10\xa8\x81\xf2\x58\xe3\x45\x10\x02\xd4\x54\x70\xac\x2b\x8b\x20\x10\xd8\x94\x79\x5a\x40\x87\xb6\x74\xd1\x10\x60\xd3\xe1\x69\x27\x3f\xd6\x48\x71\xa4\xc3\x6b\x38\xb0\xe1\xc0\xa6\xc3\x6b\xa8\xaf\xa1\xbe\x06\xf9\x1a\xe4\x6b\x90\xaf\xe9\xed\x1a\xea\x6b\x7a\xbb\x06\xfc\x1a\xf0\x6b\xc0\xaf\x01\xbf\x06\xf9\x1a\xde\x6b\x60\xaf\x81\xbd\x06\xf6\x1a\xd8\x6b\x60\x4f\x93\xc3\x68\x30\xaf\xc1\x3c\xbd\xd9\xc7\x1a\xd9\xdf\xdf\xba\x9a\x08\x42\x77\x0d\xdd\x35\x74\xd7\xd0\x5d\xc3\x75\xed\x4c\x6c\xc3\x75\x4d\x75\xd7\x10\x9d\x26\x8a\x63\xbf\xbf\x75\x1d\x6b\x26\x50\xd7\x40\x5d\x03\x75\x4d\x81\xd7\x14\x78\x0d\xda\xb5\x53\xaf\xfa\x6e\x8f\xe5\x2b\x6a\xf4\x76\x0d\xe6\xf5\x3b\xbf\xef\x0a\xa0\xbe\x86\xfa\x9a\x26\xaf\x01\xbf\x06\xfc\x9a\x26\xaf\x61\xbf\x86\xfd\x1a\xf6\x6b\x3a\xbc\x86\xfd\x1a\xf0\x6b\xc0\xaf\x01\x3f\x9d\x20\xc7\xba\xb2\xc8\x2a\x70\xd7\x94\x79\x0d\x04\x36\x10\xa8\x41\xf7\x58\x57\x16\x5f\xaa\xbb\x7e\xbf\xcb\x1a\x6b\x21\x39\xd6\xd5\xe4\x00\x64\xd8\x90\x61\x83\x85\x0d\x16\x36\x4c\xd8\x30\xa1\x06\xab\xd1\x54\x77\x0d\x16\x36\xd5\x5d\x3b\x19\xdb\x4e\xc6\x36\x7c\xd8\xf0\x61\x43\x86\x7a\x57\x8e\x35\xc6\x2c\x86\x0c\x35\x64\x1f\xeb\xca\x32\x01\x26\x6c\x98\x50\x33\xcb\xb1\xc9\x5e\xf6\xb1\x46\xca\x07\x98\x50\xab\xcb\xb1\xbc\xcc\x65\x98\xb0\x01\xc2\x06\x08\x1b\x1a\x6c\x50\xb0\x41\x41\xfd\x9a\xc7\x1a\x29\x2b\x40\xc1\x06\x02\x1b\x08\x6c\x08\xb0\x21\xc0\x86\x00\x1b\xf6\x6b\xd8\xaf\x61\xbf\x86\xfd\x1a\xf6\x6b\xd8\xaf\xa1\xbe\xa6\xae\x6b\xa8\xaf\xe9\xea\x9a\xae\xae\x21\xbd\x86\xf4\x9a\xae\xae\xe9\xea\x1a\xde\x6b\x78\xaf\xe1\x3d\x9d\xbc\xc7\xf2\x15\x65\x78\xaf\xe9\xea\x1a\xe4\x6b\x90\xaf\xe9\xea\xda\xa9\xd4\xa6\xae\x6b\xd8\xaf\x61\xbf\x86\xfd\x1a\xf6\x6b\xd8\xaf\x61\x3f\x2d\x55\xc7\xf2\x15\x5f\xf0\xaf\xc1\xbf\x06\xff\x1a\xfc\x6b\xf0\xaf\x21\x3d\x1d\x7b\xc7\x1a\x29\xbe\x00\x5e\x03\x78\x0d\xe0\x69\x17\x3a\xd6\x48\xf1\x05\xed\x5a\x59\xbc\x06\xed\x1a\xb4\x6b\xd0\xae\x41\xbb\x86\xeb\x1a\xa2\x6b\x58\xae\x61\xb9\x86\xe5\x9a\x72\xae\xc1\xb9\xa6\x9c\x6b\x2d\x21\xda\xb9\xd3\x86\xeb\x1a\xae\x6b\x88\xae\x21\xba\x86\xe5\x1a\x96\x6b\x58\xae\x61\xb9\x86\xe5\x1a\x84\xd3\xa8\x75\xac\x31\x62\x07\xbf\x35\xf0\xd6\xc0\x5b\x03\x6f\x0d\xbc\x35\xf0\xd6\xc0\x5b\x03\x6f\x0d\xb6\x35\xd8\xd6\x60\x5b\x83\x6d\x4d\x33\xd7\x90\x9b\xae\xa9\x63\x5d\x59\xa4\x80\xb7\xee\xf7\x9b\x72\xc0\x72\x0d\xcb\x35\x2c\xd7\xb0\x5c\xc3\x72\x4d\x5d\xd7\xd4\x75\x0d\xd1\x35\x44\xd7\x10\x5d\xd3\xd8\xe9\xd3\xfa\x6d\xa7\x3e\x96\xaf\xd9\x0a\xd4\x35\x50\xd7\x40\x5d\x43\x74\x0d\xd1\xe9\x68\x3f\x96\x97\xf8\x42\x74\x0d\xd1\xf5\xbf\x28\xa6\xd7\xfd\x8d\x7e\xf7\x5f\xfe\x47\xfc\xe5\xe7\xf3\x59\xec\x66\x0f\xfb\xfd\x79\xb2\x97\x7d\x6c\xb1\x3d\x76\x7d\xfe\xbe\x2d\x74\xc7\xf2\x5d\x7c\x17\xdf\xc5\x77\xf1\x5d\x7c\x17\xdf\xc5\x77\xf3\xdd\x7c\x37\xdf\xcd\x77\x1b\xbf\x8d\xdf\x46\x1e\x23\x8f\x91\xc7\x98\xe3\xca\xc7\xc8\x63\xe4\x71\xe5\x63\x7c\xb8\x5a\x18\x19\xc6\x84\x31\x61\x4c\x18\x93\xae\x99\xae\x99\x46\xa6\xf7\x9c\xae\x9c\xc6\xa7\xf1\x69\xfc\x35\xf2\xba\xf2\x35\xfe\x1a\x7f\x8d\xbf\x5e\xe5\xf2\xba\xbc\x2e\xaf\xe7\x55\x1e\xdf\xc7\xf7\xf1\x7d\x7c\x1f\xdf\xc7\xf7\xf1\x7d\x7c\x1f\xdf\xe2\x5b\x7c\x8b\x6f\xf1\x2d\xbe\xc5\xb7\xf8\x16\xdf\xe2\x5b\x7c\x9b\x6f\xf3\x6d\xbe\xcd\xb7\xf9\x36\xdf\xe6\xdb\x7c\x9b\xef\x64\xc3\x67\x7d\x3e\xec\x62\x37\x7b\xd8\x60\x93\xbd\xec\x63\x8b\xe5\x2b\x1f\x96\x7c\x58\x32\x61\xc9\x84\x25\x13\x96\x4c\x58\x32\x61\xc9\x84\x25\x13\x96\x4c\x58\x32\x61\xc9\x84\x25\x13\xd6\xe6\xbb\xf9\xca\x8a\x25\x2b\xd6\xe6\x2b\x37\x96\xdc\x58\x72\x63\x1d\xbe\x32\x64\x1d\xbe\xf2\x64\xc9\x8d\x25\x37\x56\x18\x29\x43\x56\xf8\xad\xdc\x58\x72\x63\xc9\x8d\x25\x37\x96\xdc\x58\xb2\x62\xc9\x8a\x95\xde\x83\xac\x58\xb2\x62\x5d\x23\xe5\xc6\x92\x1b\x4b\x6e\x2c\xf9\xb0\xe4\xc3\x92\x09\x4b\x26\x2c\x99\xb0\x64\xc2\x92\x09\xeb\xfd\xd2\x02\xcf\x18\xaf\x2e\x4f\x96\x3c\x59\xf2\x64\xc9\x93\x25\x4f\x96\x3c\x59\xf2\x64\xc9\x93\x25\x43\x96\x0c\x59\x32\x64\xc9\x90\x25\x43\x96\x0c\x59\x32\x64\xc9\x8d\x25\x37\x96\xdc\x58\x72\x63\xc9\x8d\x25\x37\x96\xdc\xd8\x72\x63\xcb\x8d\xfd\xf9\x75\xe6\x60\xc6\x1c\x36\xd8\x64\x2f\xfb\xd8\x62\x5d\x59\xe6\x6c\x99\xb3\x65\xce\x96\x39\x5b\xe6\x6c\x99\xb3\x65\xce\x96\x39\x5b\xe6\x6c\x39\xb3\xe5\xcc\x96\x33\x5b\xb6\x6c\xd9\xb2\x65\xcb\x96\x27\x5b\x9e\x6c\x79\xb2\xe5\xc9\x96\x27\x5b\x9e\x6c\x79\xb2\xe5\xc9\x96\x27\x3b\x8c\x97\x2d\x5b\xb6\x6c\xeb\xc9\x0e\xe3\x65\xce\xb6\xb6\x6c\xf9\xb3\x65\xce\x96\x39\x5b\xe6\xec\xe4\x65\x6d\xd9\xb2\x68\xcb\xa2\x2d\x8b\xb6\x15\x66\xcb\xa5\x2d\x97\xb6\x5c\xda\x72\x69\xcb\xa5\x2d\x97\xb6\x75\x66\x5b\x67\xb6\xbc\xda\xf2\x6a\x5b\x67\xb6\xec\xda\xb2\x6b\xcb\xae\x2d\xbb\xb6\xec\xda\xd6\x99\x2d\x7f\xb6\x9c\xd9\x72\x66\xcb\x96\x2d\x5b\xb6\x6c\xd9\xb2\x65\xcb\x96\x2d\x5b\xb6\x6c\xd9\xb2\x65\xcb\x96\x2d\x5b\xb6\x3c\xd9\xf2\x64\xcb\x93\x2d\x43\xb6\x0c\x39\x32\xe4\xc8\x90\x63\xf5\x38\x72\xe0\x88\xfe\x11\xfd\x23\xfa\x47\xf4\x8f\xe8\x1f\xd1\x3f\xa2\x7f\x7c\x8f\x1c\x39\x70\xe4\xc0\x91\x03\x47\x0e\x1c\x39\x70\xe4\xc0\x91\x03\xc7\xea\x71\x64\xc2\x91\x09\x47\x26\x1c\x99\x70\x64\xc2\x91\x09\xc7\xba\x71\xe4\xc3\x91\x0f\x47\x3e\x1c\x99\x70\x64\xc2\x91\x09\xc7\x37\xcb\xf1\xcd\x72\x64\xc5\x91\x15\x47\x56\x1c\x59\x71\x64\xc5\x91\x15\x47\x56\x1c\x59\x71\x64\xc5\x91\x15\xc7\xaa\x72\xe4\xc6\x91\x1b\x47\x6e\x1c\xb9\x71\xe4\xc6\x91\x1b\x47\x6e\x1c\xb9\x71\xe4\xc6\x91\x1b\x47\x6e\x1c\x59\x71\x64\xc5\x91\x15\x47\x3e\x1c\xf9\x70\xe4\xc3\x91\x0f\x47\x3e\x1c\xf9\x70\xe4\xc3\x91\x0f\xe7\x27\x4b\x9d\x31\xde\x89\x6c\x39\x56\x9b\x63\xb5\x39\x32\xe7\xc8\x9c\x63\xb5\x39\xf2\xe7\xc8\x9f\x23\x7f\x8e\x6f\xa5\x23\x8b\x8e\x2c\x3a\xb2\xe8\xc8\xa2\x23\x8b\x8e\x2c\x3a\xb2\xe8\xf8\x56\x3a\x56\x9e\x23\xa3\x8e\x8c\x3a\x32\xea\x58\x79\x8e\xbc\x3a\xfd\x4b\x3c\x93\x9f\x90\x75\x21\xeb\x42\xd6\x85\xac\x0b\x2b\x4f\xc8\xbd\x90\x7b\x21\xf7\x42\xee\x85\xac\x0b\x59\x17\xb2\x2e\x64\x5d\xc8\xba\x90\x75\xb1\xbe\x23\xe7\xfd\x87\x1c\x0b\x39\x16\x72\x2c\xe4\x58\xc8\xae\x90\x5d\x21\xbb\x42\x76\x85\x8c\x0a\x19\x15\x32\x2a\x64\x54\xc8\xa8\x90\x51\x21\xa3\x42\x46\x85\x8c\x0a\x19\x15\x72\x29\xe4\x52\xc8\xa5\x90\x45\x21\x8b\x42\x16\x85\xfc\x09\xf9\x13\xf2\x27\xe4\x4f\xc8\x9f\x90\x3f\x21\x7f\x42\xfe\x84\xfc\x09\xf9\x13\x56\x95\x90\x45\x21\x8b\x42\x16\x85\x2c\x0a\x59\x14\xb2\x28\x64\x51\xc8\x8d\x90\x1b\x21\x2b\x42\x56\x84\xac\x08\xf9\x10\xf2\x21\xe4\x43\xc8\x87\x90\x0f\x21\x1f\x42\x3e\x84\x1c\x08\xd1\x0f\x71\x0f\x71\x0f\x71\x8f\xfe\x8e\x71\x65\xeb\x49\x8a\x66\x8a\x66\x8a\x5d\x8a\x57\x8a\x57\x8a\x57\x8a\x57\x8a\x54\x8a\x4e\x8a\x4e\xba\x7f\x48\xd1\x49\x11\x49\xf3\x3d\xcd\xf7\x14\x9d\x14\x9d\x3c\xdf\x31\xae\x20\x2e\x29\x2e\x29\x2e\x29\x2e\x29\x2e\x29\x22\x29\x0a\x29\x0a\x69\x2e\xa7\x58\xa4\x58\xa4\x58\xa4\xcf\x3f\x7d\xfe\xe9\xf3\x4f\x9f\x7f\xfa\xfc\xd3\x27\x9f\x3e\xf9\xf4\x99\xa7\xcf\x3c\x7d\xe6\xe9\x33\x4f\x9f\x79\x9a\x89\xe9\xd3\x4e\x9f\x76\x9a\x83\xe9\xd3\x4e\x9f\x70\xfa\x84\xd3\x27\x9c\xe6\x5a\xfa\x9c\xd3\x5c\x4b\xb3\x2c\x7d\xda\xe9\xd3\x4e\x9f\x76\xfa\xb4\xd3\xa7\x9d\x3e\xed\x6b\x1e\x5d\x9f\xf9\xf5\x99\x5f\x33\xe8\x9a\x41\xd7\x0c\xba\xa2\x70\xcd\xa0\x6b\xf5\xbe\xe6\xd1\x15\x97\xbb\x7e\xdf\xcf\x5c\x33\xeb\x8a\xd7\x15\xa9\x2b\x52\xd7\x6c\xba\x56\xec\x2b\x6a\x57\x74\xee\xf9\xfe\xdb\x6b\x89\xc5\x15\x8b\x6b\x8e\x5c\x11\xb9\xe6\xc8\x35\x47\xae\xe8\x5c\xd1\xb9\xa2\x73\x45\xe7\x8a\xce\x15\x9d\x2b\x3a\xd7\x77\xee\x15\x97\xfb\xb3\x9a\xc5\x8c\x71\x05\xb1\xbb\x62\x77\xcd\x9a\x2b\x5e\xd7\x77\xee\x15\xb5\x6b\xa6\x5c\x33\xe5\x8a\xd7\x35\x47\xae\xa8\x5d\x73\xe4\x8a\xd1\x15\xa3\x6b\x46\x5c\x11\xb9\x22\x72\x45\xe4\x59\xd3\x9e\x88\x3c\x11\x79\x62\xf1\xc4\xe2\x89\xc5\x13\x8b\x27\x16\x4f\x2c\x9e\x58\x3c\xf3\xe2\xf9\xc6\x7c\x3e\xed\x67\x1d\x7b\xbe\x31\x9f\xd5\xec\x99\x2f\x4f\x14\x9e\x4f\xfe\xf9\xe4\x9f\x75\xec\x99\x35\xcf\xac\x79\x62\xf1\xc4\xe2\x99\x29\x4f\x2c\x9e\xef\xbe\x27\x0a\x2f\xbe\x3f\xe7\x2b\x0a\x4f\x14\x9e\x4f\xfe\xf9\xe4\x9f\xd5\xe9\xf9\xfc\x9f\xd9\xf1\xcc\x8e\x27\x0a\xcf\xec\x78\x3e\xe7\xe7\x73\x7e\x3e\xe7\xe7\x73\x7e\x66\xc7\xf3\x09\x3f\x9f\xf0\x33\x3b\xde\xfb\xfe\xd6\x35\xcd\x91\xe7\x73\x7e\x3e\xe7\x67\x8e\x3c\x73\xe4\x99\x23\xcf\xb7\xd2\x33\x53\x9e\x28\x3c\x51\x78\xa2\xf0\xcc\x97\x67\xbe\x3c\xf3\xe5\x89\xcb\x13\x97\x32\x47\x4a\x44\x4a\x44\xca\x1c\x29\x71\x29\x71\x29\x71\x29\xb1\x28\xb1\x28\x2b\x55\x89\x48\xc9\xff\x5a\xdf\x31\xae\x29\x2e\x25\x2e\x25\x2e\x25\x2e\x25\x2e\x25\x2e\xe5\xfb\xa5\x44\xa4\x44\xa4\xdc\xc7\x96\xd5\xac\xac\x66\x25\x46\x75\xbe\x23\x5d\xd3\x0a\x56\x22\x55\x66\x4d\x99\x35\x25\x5e\x65\xd6\x94\xa8\x95\xa8\x95\xa8\x95\xa8\x95\xa8\x95\xef\x94\x12\xaf\x12\xaf\x32\x6b\x4a\xd4\x4a\xd4\x4a\xd4\x4a\xa4\x4a\xa4\xca\x6a\x56\xe2\x55\x66\x47\x89\x57\x89\x57\x89\x57\x89\x57\x89\x57\x89\x57\xf9\xd6\x28\x91\x2a\x91\x2a\x91\x2a\x91\x2a\x91\x2a\x91\xaa\xfe\xbd\xce\x94\xd8\x95\xd8\xd5\x37\x76\xe6\x54\x9b\x53\x2d\x82\x2d\x82\x2d\x82\x2d\x82\x2d\x82\x2d\x82\x2d\x82\x2d\x82\x2d\x76\x2d\x76\xed\x5e\xb4\xd7\x77\x4c\xb1\xae\x2c\x6a\x2d\x6a\x6d\x35\x6b\xb1\x6b\x73\xaa\xcd\xa9\x3e\xbf\xb8\xd2\x8c\xf1\x8a\xe2\xdb\xe2\xdb\xe2\xdb\xe2\xdb\xe2\xdb\xe2\xdb\xbe\xa7\x5a\x7c\x5b\x7c\xdb\x7c\x6c\x51\x6e\x51\x6e\x51\x6e\x91\x6d\x91\x6d\xeb\x61\x8b\x6f\x9b\x95\x9d\xdf\x31\xae\x2c\xca\x2d\xca\x2d\xca\x2d\xca\x2d\xca\x2d\xca\xed\x3b\xab\xc5\xb7\xc5\xb7\xdd\x67\xb6\x35\xb0\xcd\xd0\x16\xf1\x7e\xdf\x91\xae\x69\x0d\x6c\xb1\x6e\x73\xb3\xcd\xcd\x16\xf1\x16\xf1\x16\xf1\x16\xf1\x16\xf1\x16\xf1\x36\x1f\xdb\x37\x57\x4f\x34\xd7\x7f\x9c\xbf\x5c\xc0\xd5\x02\xae\x16\x70\xb5\xc0\xaa\x05\x56\x2d\x98\x6a\xc1\x54\x0b\xa6\x5a\x00\xd5\x02\xa8\x16\x40\xb5\x00\xaa\x05\x50\x2d\x68\x6a\xc1\x51\xeb\xb3\x8d\x39\xc6\x9f\xef\xbf\x8d\x3f\x46\x4e\x10\x16\xe0\xb4\x3e\xe1\xca\xc1\x2b\x8c\x0f\xe3\xc3\xf8\x70\xfd\xe0\x15\xc6\xa7\xf7\x93\xc6\xa7\xf1\x69\x7c\x1a\x9f\xc6\xa7\xf1\xe9\x55\x92\xd7\x35\xfe\x1a\x7f\x8d\xbc\x46\x5e\x23\x9f\xf7\xf0\x8c\x79\xc6\x3c\xd7\x7c\xae\x50\x7e\x52\x7e\x52\x7c\x8b\x57\x7b\x27\xcd\xb7\x8d\xe9\xef\xcf\xe7\x15\xa1\xa0\x05\x05\x2d\x28\x68\x41\x41\x0b\xfe\x59\x30\xcf\x5a\xcb\xcf\x7d\xaa\x60\xcf\x02\x7b\x16\xc0\xb3\x00\x9e\x05\xed\x2c\x68\x67\x41\x3b\x0b\xd4\x59\xa0\xce\x02\x75\x16\xa8\xb3\x40\x9d\x05\xea\x2c\x50\x67\x01\x39\x0b\xc2\x59\x10\xce\x5a\xe1\xb7\x3e\x73\x20\x67\x2d\x9f\xf9\xf2\x39\xc3\x39\x0b\xc8\x59\x10\xce\x5a\x3e\x61\x20\x67\x01\x39\x0b\xc8\x59\xcb\x27\x0c\xe7\x2c\x38\x67\x01\x39\x0b\xc8\x59\x40\xce\x5a\xf7\xe7\x32\xb3\xc0\x9e\x05\xf6\xac\x75\x5d\xed\xba\xda\xf3\x3e\xc5\x05\xec\x59\x4b\x44\xe0\x9c\x05\xe4\x2c\x20\x67\x01\x39\x0b\xc2\x59\x10\xce\x82\x70\xd6\x12\x2f\x20\x67\x01\x39\x0b\xc8\x59\x40\xce\x02\x72\x16\x90\xb3\x80\x9c\xb5\x9a\xaf\x38\xae\xdf\x0b\xe4\x02\x7b\x16\xd8\xb3\xc0\x9e\x05\xf6\x2c\xb0\x67\x6d\x11\x87\x70\x16\x78\xb3\xc0\x9b\x05\xde\x2c\xd8\x66\x01\x36\x6b\xcb\x01\xd8\x66\xc1\x36\x0b\xb6\x59\x50\xcd\xda\xf3\xb5\xb6\xe0\x99\xb5\xcd\x29\x90\x66\x81\x34\x0b\xa4\x59\xf0\xcc\x82\x67\x16\x30\xb3\x80\x99\x05\xcc\xac\x7d\xbe\x63\x5c\x4d\x0e\xc0\x33\x0b\x9e\x59\xf0\xcc\x82\x67\x16\x24\xb3\x76\x18\x69\x96\x81\x31\x0b\x8c\x59\x60\xcc\x02\x63\x16\x18\xb3\x60\x98\x05\xc3\x2c\x18\x66\x01\x30\x0b\x80\x59\x00\xcc\x82\x5e\x16\xf4\xb2\xa0\x97\x05\xbd\x2c\xe8\x65\x41\x2f\x0b\x7a\x59\x70\xcb\x82\x5b\x16\xdc\xb2\xe0\x96\xb5\xcb\x18\xf1\x05\x5d\x16\xe8\xb2\x40\x97\x05\xba\x2c\xd0\x65\x81\x2e\x0b\x74\x59\xa0\xcb\x02\x5d\xd6\x16\xd9\x2d\xb2\x00\xcc\x02\x60\x16\x00\xb3\xb6\xd8\xc1\x30\x0b\x86\x59\x30\xcc\x82\x61\x16\x0c\xb3\x60\x98\x75\xe6\x8b\x6e\x81\x31\x0b\x8c\x59\x60\xcc\x02\x63\x16\x18\xb3\xc0\x98\x05\xc6\x2c\x00\x66\x01\x30\x0b\x7a\x59\xd0\xcb\x82\x5e\x16\xe8\xb2\xe0\x96\x75\x44\x16\x74\x59\xa0\xcb\x02\x5d\x16\xd0\xb2\xce\xf1\x1e\x8e\x9f\x9f\xef\xcf\x5d\x47\xec\x40\x94\x05\xa2\x2c\x10\x65\x81\x28\x0b\x44\x59\xf0\xc9\x82\x4f\x16\x7c\xb2\xe0\x93\x05\x9f\x2c\xf8\x64\xc1\x27\x0b\x3e\x59\xc0\xc9\x3a\xd7\x78\x71\x84\x4c\xd6\xb9\x46\x8a\x26\x70\xb2\x80\x93\x05\x99\x2c\xc8\x64\x41\x26\x0b\x32\x59\xc7\x9c\x05\x45\x16\x28\xb2\x40\x91\x05\x8a\x2c\x50\x64\x81\x22\x0b\x14\x59\xa0\xc8\x02\x45\x16\x28\xb2\x40\x91\x05\x8a\x2c\x50\x64\x81\x22\x0b\x08\x59\x40\xc8\x02\x42\xd6\xf9\x59\x90\x6e\xc6\xb8\x9a\xb8\x03\x24\x0b\x20\x59\x47\xc4\xc1\x8f\x05\x7e\x2c\xf0\x63\xc1\x1e\x0b\xf6\x58\xb0\xc7\x82\x3d\x56\x88\x32\xf8\xb1\xc0\x8f\x05\x78\xac\xf0\x3d\x08\x78\x2c\xc0\x63\x85\x99\x0b\x7b\x2c\xd8\x63\xc1\x1e\x2b\xc4\x17\xf6\x58\xb1\x7f\xe2\x99\x05\x87\xac\x30\xbb\x43\x26\x84\x39\x0e\x90\x2c\x80\x64\x01\x24\x0b\x20\x59\x00\xc9\x02\x48\x16\x40\xb2\x00\x92\x05\x90\x2c\x80\x64\x85\x6c\x01\x48\x16\x40\xb2\xc2\xac\x87\x49\x16\x4c\xb2\x60\x92\x05\x90\x2c\x80\x64\x41\x23\x0b\x1a\x59\xd0\xc8\x82\x43\x16\x1c\xb2\xe0\x90\x05\x87\x2c\x38\x64\xc5\xfb\xfc\xad\x3d\xb3\x72\x6c\x8f\xed\xcf\xdf\xac\xce\x0e\x91\x3b\x43\x3e\x6b\xfe\xfc\x7c\xfd\xcd\x2a\xef\x50\xbb\x33\x45\x37\x4f\x7c\xfe\x6a\x9e\x65\x9c\x6b\x77\xac\xdd\x59\xf5\xda\x7b\xfd\xcd\x9a\x57\xec\xf7\xb2\x97\x7d\xec\xf7\x82\xed\xb7\x1f\xf6\x3b\x7e\xb3\x87\x0d\x36\xff\xe6\x8b\x64\x96\xdb\x1d\xef\xcf\xd9\x1e\x07\x79\x9c\xe3\x71\xe4\xa9\x5e\xde\xbf\xf5\xe6\xf5\x63\xff\x39\xa7\xee\x90\xaa\x93\x9e\x57\xd7\xd2\xab\x6b\xe9\xd5\xa3\x94\x1e\x80\x34\xa0\xde\xb9\x7f\x35\x37\xf2\x0e\x18\x38\xa5\xe5\x60\x96\xb3\x43\x8e\x23\xcd\x97\x9e\x93\xec\x14\x17\xa4\x19\x54\x29\x7d\x5f\xff\x51\xa6\x10\xaf\xd0\xb1\x10\xdd\xf4\x3d\xfb\xaf\xe7\xd1\x9c\x6a\xa6\xef\x9d\x7f\xdd\xcf\x9f\x33\x87\x0e\x21\x3a\x83\xe8\xf0\x61\xa5\x0f\x65\x56\x28\xc7\x8f\x9c\x3e\xaa\x79\x26\xad\x79\x34\x74\xac\xab\xe6\x71\xd2\x51\x2d\x27\xb5\xea\xad\x79\xe3\x2b\xff\x1c\x04\x72\x0e\xc8\x51\x21\x27\x85\x6a\x9e\x52\x9d\xee\x72\xd0\xab\xe6\xd1\xf5\xea\xd5\x3a\x91\x96\x5b\x66\x3b\xcc\xb5\xe2\x7d\x7f\xfe\xcd\x03\x19\x63\xb6\x83\x5d\x0b\xec\x5a\x60\xd7\x02\xbb\x16\xd8\xb5\xc0\xae\x05\x76\xad\xb0\x9a\x87\xd5\x1c\xf8\x5a\x61\xce\xc3\x5f\x2b\xac\xe6\x20\xd8\x02\xc1\x16\x08\xb6\x40\xb0\x05\x82\xad\xf8\x0d\x3f\x57\x9a\xf9\x40\xd9\x02\xca\x56\x5a\xe5\xd3\xfc\xff\xfe\x75\xd0\xd9\x4a\x33\x3f\xcd\x7c\x18\x6d\xc1\x68\x0b\x46\x5b\x30\xda\x4a\x6b\x7d\x5a\x0b\xd2\x8a\x0f\xac\xad\xb4\x22\xa4\x15\x21\xad\x08\x50\xdb\x82\xda\x16\xd4\xb6\xd2\xea\x9f\x56\x87\xfc\x59\x4c\x6b\xc6\xb8\xb2\x7b\x3e\x80\x6e\x01\x74\x2b\xad\x11\x30\xdd\x82\xe9\x16\x4c\xb7\x00\xba\x05\xd0\x2d\x68\x6e\x41\x73\x0b\x9a\x5b\xe9\x9b\x03\xa0\x5b\x69\x45\x48\x2b\x42\x5a\x11\x20\xbb\x05\xd9\x2d\x98\x6e\xa5\x6f\x8b\xb4\x22\x80\x75\x0b\xac\x5b\xe9\x9b\x03\xb2\x5b\x90\xdd\x82\xec\x16\x64\xb7\x20\xbb\x95\x93\xf8\x37\xeb\xaf\x24\xef\x9b\x19\xf7\x3e\xef\x6f\xd5\x67\xe6\xfd\x8b\xbf\x99\x28\x6f\xd7\xdf\x24\xe9\xa4\xec\xdb\xfd\x37\xf7\x73\xef\xac\xbf\xb9\xcf\x9c\x3b\xb6\x37\x6b\xc1\xcb\x31\x7b\x32\x7b\xf5\xdf\xdc\x70\xd6\xac\x52\x4a\x4c\x10\x86\xf5\xbd\xf1\x47\x4c\x46\x57\xd6\xb5\xeb\x8f\x4a\x86\x48\xa6\x6b\xf7\x1f\x59\x0c\x9d\x8c\xd3\x68\xb4\x62\x84\x6d\x74\x61\x7d\x6b\x66\xd9\x9a\xd9\x78\xee\x1f\xad\x5b\x5f\x97\x3f\x33\x4d\xcf\xfc\x22\xe6\x02\x33\x39\x67\x66\x90\x45\xd1\x37\x11\x36\xcd\x3d\xa9\x92\x1a\x2a\x6a\x54\xf6\xfb\x73\x22\xd8\x81\x60\x27\x84\xeb\x7e\x3e\xe3\xff\xfe\x68\x73\x48\x73\xba\xce\x4c\xdf\x79\xf6\x9d\xbb\x9e\xfa\x73\x82\x7d\x6e\x11\xf2\xcf\x81\xf4\xf9\xa7\x1f\xbc\xfd\xe7\x9c\xba\x72\x09\xbf\x77\x44\xff\x37\x31\x13\x53\xd1\x77\x1f\x00\xc0\xae\x74\x07\x00\xc3\xae\xb4\x26\x80\xb1\x2b\xad\x09\x90\xec\x82\x64\x57\x5a\x13\x20\xd9\x95\xd6\x84\xb4\x26\xc0\xb3\x0b\x9e\x5d\xf0\xec\x4a\x6b\x02\x48\xbb\x40\xda\x05\xd2\x2e\x78\x76\xc1\xb3\x0b\x98\x5d\xc0\xec\xca\x7f\xb1\x02\x5c\x2b\x00\x6c\xbb\x60\xdb\x05\xdb\x2e\xd8\x76\xc1\xb6\x0b\xb6\x5d\x50\xed\xba\x66\xfd\x35\xdf\xc1\xd8\x75\xcd\xf7\xbb\xbe\x63\x8a\x9d\x77\x78\xcd\xf7\x6b\xbe\x5f\xf3\x1d\xb0\x5d\x80\xed\x02\x6c\x17\x60\xbb\x00\xdb\x75\xcd\xe8\x6b\x46\xdf\xdf\xa0\x63\x5d\xf3\xfd\x9a\xef\xd7\x7c\xbf\xe6\x3b\xf0\xbb\xae\x7b\x02\xf8\x77\x5d\x73\x1f\x04\x5e\xd7\x3d\xc1\xb5\x02\x00\xc2\x0b\x10\x5e\xd7\x3d\x01\x2c\xbc\x60\xe1\x05\x0b\x2f\x40\x78\x01\xc2\x0b\x0a\x5e\x50\xf0\xba\xf9\xfd\xad\x6b\x9a\xf5\xd7\xac\x07\x84\xd7\x35\xeb\x61\xde\x75\xdd\xf1\xc3\xbc\xeb\xfa\xa6\x98\xaf\xb9\x9b\x73\x4f\x3f\x76\xb3\x87\x0d\xf6\xfb\xdb\xcb\x3e\xb6\xd8\x1e\xdb\x1f\x96\x6f\xf3\x6d\xbe\xcd\xb7\xf9\x36\xdf\xe6\xdb\x7c\x7b\x7c\xe7\x86\x60\xac\xfb\x8b\xcf\x66\x0f\x1b\x6c\xb2\x97\x7d\x6c\xb1\x7c\x17\xdf\xc5\x77\xf1\x5d\x7c\x17\xdf\xc5\x77\xf1\x5d\x7c\x17\xdf\xc5\x77\xf3\xdd\x7c\x37\xdf\xcd\x77\xf3\xdd\x7c\x37\xdf\xcd\x77\xf3\xdd\x7c\x0f\xdf\xc3\xf7\xf0\x3d\x7c\x0f\xdf\xc3\xf7\xf0\x3d\x7c\x0f\xdf\x33\xbe\xf9\x7d\xcf\xff\xdc\x4f\xf1\x0d\xbe\xbe\xbb\xe7\x69\x61\x2c\xdf\xe0\x1b\x7c\xc3\xeb\x26\xdf\xe4\x9b\x7c\x93\x6f\xf2\x4d\xbe\xc9\x37\xf9\x26\xdf\xe4\x7b\xf9\x5e\xbe\x97\xef\xe5\x7b\xf9\x5e\xbe\x97\xef\xe5\x7b\xf9\x5e\xbe\xef\xfb\x2d\xc0\xf7\xf1\x7d\xc7\x9d\x86\x7c\x7b\xdf\x5c\x92\x75\xd6\x0d\xdb\x01\xeb\x5a\x2b\xae\xb5\xe2\x5a\x25\xae\x55\xc2\x36\xc1\xb2\x4d\xb0\xae\x55\xc2\x06\xc1\xb2\x41\xb0\x9e\x27\x3d\xdb\x04\xcb\x36\xc1\xb2\x4d\xb0\x6c\x10\x2c\x1b\x04\xcb\xd6\xc0\xb2\x35\xb0\x6c\x0d\xac\xe7\x1b\xdf\x06\xc1\x7a\x56\x80\xb7\x7e\x89\x53\x67\x8c\xab\x59\x1f\x6c\x25\x2c\xdb\x07\xcb\xc6\xc1\xb2\x71\xb0\x9e\x15\xc0\xf6\xc1\xb2\x7d\xb0\x6c\x1f\xac\x67\x76\x3f\xb3\xdb\x56\xc2\xb2\x95\xb0\x6c\x25\xac\x67\x5e\x3f\xf3\xfa\x99\xd7\x36\x17\xd6\x33\xaf\x6d\x31\xac\x67\x5e\xdb\x68\x58\xcf\xbc\xb6\xdd\xb0\x5e\xfc\x5e\x21\x6d\x46\x2c\x9b\x11\xeb\x79\x7a\xb4\x25\xb1\x6c\x49\xac\xe7\x4e\xc0\xc6\xc4\xb2\x31\xb1\x6c\x4c\xac\x67\x4d\xb0\x3d\xb1\x6c\x4f\x2c\xdb\x13\xcb\xf6\xc4\xb2\x3d\xb1\x6c\x4f\x2c\xdb\x13\xeb\x59\x25\x9e\xef\x11\x5b\x15\xeb\x59\x31\x9e\x15\xe3\xf9\x36\xb1\x79\xb1\x6c\x5e\x2c\x9b\x17\xcb\xe6\xc5\xb2\x79\xb1\x6c\x5e\xac\xe7\x79\xf2\xc9\x8d\x37\x5f\x94\x7b\xee\x89\xc7\x06\x9b\xec\x65\x1f\x5b\xec\x3c\x30\x5c\x0f\x0c\xd7\x03\xc3\xf5\xc0\x70\x3d\x30\x5c\x0f\x0c\xf3\x8d\x30\xf6\xb2\x8f\x2d\x96\xef\xe2\xbb\xf8\x2e\xbe\x8b\xef\xe2\xbb\xf8\x2e\xbe\x8b\xef\xe2\xbb\xf8\x6e\xbe\x1e\x6c\xe6\x9b\x62\x2c\xdf\xcd\x77\xf3\xdd\x7c\xdd\x10\xcc\x37\xc5\x58\xbe\x87\xef\xe1\x7b\xf8\x1e\xbe\x87\xef\xe1\xeb\x66\x62\xbe\x0b\xc6\xf2\x3d\x7c\x83\x6f\xf0\x0d\xbe\xc1\x37\xf8\x06\xdf\xe0\x1b\x7c\x83\x6f\xf0\x4d\xbe\xc9\x37\xf9\x26\xdf\xe4\x9b\x7c\x93\x6f\xf2\x4d\xbe\xc9\xf7\xf2\xbd\x7c\x2f\xdf\xcb\xf7\xf2\xbd\x7c\x2f\xdf\xcb\xd7\x53\xe2\xbd\x7c\x3d\x55\xce\xb7\xc9\x58\xbe\x8f\xef\xe3\xfb\xf8\x3e\xbe\x8f\xef\xe3\xfb\xf8\x16\xdf\xe2\x2b\x37\x66\xf5\x18\xcb\xb7\xf8\x5a\x43\x6c\x7e\xad\xe7\x3e\xc4\x16\xd8\x7a\xff\xfc\x5c\xbe\x59\x55\x6c\x7b\x2d\x1b\x5e\xcb\x86\xd7\xb2\xe1\xb5\x6c\x78\x2d\x1b\x5e\xeb\x59\x67\x6c\x7b\xad\xb2\xce\xd8\xfc\x5a\x36\xbf\x96\x0d\xaf\x65\xab\x6b\xd9\xea\x5a\xe5\xee\xc2\x86\xd7\xb2\xe1\xb5\x6c\x78\x2d\x1b\x5e\xab\x7e\x96\xc4\x9e\x31\x5e\xd1\xbd\x87\xed\xb0\x65\x3b\x6c\xd9\x0e\x5b\xe5\xde\xa3\xdc\x7b\xd8\x1a\x5b\x65\xe5\xb1\x41\xb6\xca\xca\x63\x9b\x6c\xd9\x26\x5b\xb6\xc9\x96\x6d\xb2\x65\x9b\x6c\xd9\x26\x5b\xe5\xee\xc2\x66\xd9\xb2\x59\xb6\xca\xfa\x63\xcb\x6c\xd9\x32\x5b\xb6\xcc\x96\x2d\xb3\x55\xf1\x7b\x85\xb4\xa1\xb6\x6c\xa8\x2d\x1b\x6a\xcb\x86\xda\xb2\xa1\xb6\xca\xca\x53\xee\x40\x6c\xae\xad\xb2\xfe\xd8\x62\x5b\x65\xfd\xb1\xd1\xb6\x6c\xb4\x2d\x1b\x6d\xcb\x46\xdb\xb2\xd1\xb6\x6c\xb4\xad\xb2\xf2\xd8\x6e\x5b\xb6\xdb\x56\x59\x79\x6c\xba\x2d\x9b\x6e\xcb\xa6\xdb\x2a\x2b\x4f\x59\x79\xca\xca\x63\x1b\x6e\xd9\x86\x5b\xb6\xe1\x96\x6d\xb8\x55\xaf\xff\x2a\x3d\x89\xdf\xb9\xa9\xbf\xf3\x24\x7e\xe7\x49\x7c\x9e\x48\xe6\xd9\x47\xe1\x22\x75\x8b\x2a\x6f\xfd\xa9\x5d\xf4\xdf\xfd\x28\x54\x57\x52\x5c\x49\x6d\x25\xa5\x95\x6a\x9e\xc7\x94\x57\x52\x5d\x49\x71\x25\xb5\x95\x94\x56\xfa\x17\xf7\xe8\xbd\xce\x5f\xaf\xf8\xeb\x95\x7f\xbd\xee\x5f\xaf\xf7\xd7\xf3\x58\xb3\xfa\xaf\xf7\xe7\xaf\xf7\xfa\xeb\xbd\xff\x7a\x9f\xbf\x9e\x07\xa4\x79\x3e\xda\xf7\x6f\x1e\x41\x7a\x9e\x9a\xe6\x51\x69\x9e\x94\xe6\x39\x67\x1e\x53\xe6\x29\x65\x9e\x92\xe6\xa9\xe8\xfc\x7a\x5e\xfd\xff\x7b\x1f\x91\x7f\x1d\xf7\xaf\xe3\xfd\x75\xd4\x5f\x47\xff\x75\x7e\xfe\x3a\xd7\x5f\xe7\xfe\xeb\x3c\x7f\x3d\x8f\x6a\xf3\xcc\x36\x0f\x51\xf3\x4c\x96\xf5\xd7\x39\x8f\x5b\xf3\xdc\x35\xcf\x63\x67\x9e\xba\xe6\x99\x6e\x9e\xf0\xe6\x99\x6d\x1e\xd4\xfe\xfa\x67\x0b\x9c\x5c\xe5\xfb\xa1\x7c\x3f\xd8\x38\x5d\x65\xae\xdb\x3e\x5d\x65\xae\xdb\x44\x5d\x36\x51\x97\x4d\xd4\x65\x13\x75\xd9\x44\x5d\x36\x51\x57\xe1\x10\x65\xf6\x97\xd9\x6f\xcb\x74\x15\x0e\x61\xe3\x74\xd9\x38\x5d\x36\x4e\x97\x2d\xd3\x65\xcb\x74\xd9\x2c\x5d\x36\x4b\x97\xcd\xd2\xd5\x9f\xdf\xef\xdc\x86\xea\xb2\xa1\xba\xda\x3a\xd1\xd6\x09\x9b\xab\xcb\xe6\xea\xb2\xa1\xba\xda\xec\xb7\xa1\xba\xda\x8c\xb7\xa1\xba\x6c\xa8\x2e\x1b\xaa\xab\xcd\x72\x9b\xa5\xcb\x66\xe9\xb2\x59\xba\x6c\x96\x2e\x9b\xa5\xab\xcf\x77\xa4\x6b\x9a\xe5\xb6\x4c\x57\x9b\xe5\x36\x4e\x57\xff\x3c\x22\x3d\x63\x5c\xd3\x4a\x60\x5b\x75\xd9\x56\x5d\x6d\x96\xdb\x5c\x5d\x36\x57\x57\x9b\xe5\xb6\x58\x97\x2d\xd6\x65\x8b\x75\xd9\x62\x5d\xb6\x58\x97\x2d\xd6\x65\x8b\x75\xd9\x62\x5d\xb6\x58\x97\x2d\xd6\xd5\xee\x2f\xda\x2c\xb7\xdd\xba\xda\x2c\xb7\xe9\xba\xda\x2c\xb7\xf5\xba\x6c\xbd\x2e\x5b\xaf\xcb\xd6\xeb\xb2\xf5\xba\x6c\xbd\xae\x36\xbf\xfb\x4d\x86\xbe\xfd\xe7\xd8\x67\x47\x31\xb2\x76\x52\xb8\x27\x5f\x3f\x92\x77\x32\xf5\x33\x69\x3a\x73\x27\x0f\x8f\xf3\xe7\x9c\xa8\x23\xa0\xce\x7b\x3a\xb8\xe9\xb4\xa7\x83\x99\x4e\x58\x3a\x90\xe9\x1c\xa5\x43\x8d\xce\x70\x3a\x8c\xd9\xb9\xe6\xf2\x33\xff\xf2\xf0\x30\x43\xe6\xd5\x3e\xf3\xdb\x99\x94\x79\xbc\x97\xcf\x9f\xa3\xa5\x4e\x87\x3a\x28\xea\x5c\x69\x47\xcf\x3b\xa8\x79\xa7\xe5\x02\xde\xee\xbc\xe4\xc7\xff\x9d\xf7\xbc\xbc\xfb\xb9\xf2\xf2\x5e\xbc\xf8\xbc\xe4\xf2\xc7\x78\x49\x6f\x63\x3c\x66\x3d\xc8\x59\x08\xf2\x8c\xdb\x2c\x03\x79\xfc\xbd\xf3\x8b\xe3\x9d\xce\x6f\x63\x7e\x1b\xfe\xa2\xf1\x0d\x53\x7a\xc6\xcd\xe4\xcf\x9f\xdf\x05\xff\xfb\x30\x0b\xdb\xea\xab\xad\x07\x36\xd7\x97\xcd\xf5\x65\x73\x7d\xd9\x5c\x5f\x36\xd7\x97\xcd\xf5\x65\x5b\x7d\xd9\x56\x5f\xb6\xd5\x57\x9b\xfd\x36\xd7\x57\x9b\xfd\xb6\xd8\x57\x9b\xfd\xdf\x8d\x76\xc7\x44\xb6\x3d\xf6\x6d\x8f\x7d\x3b\x1c\xb2\x1d\x0e\xd9\xf6\xdb\xb7\xfd\xf6\xed\x70\xc8\xfe\xfc\x5e\x09\xb6\x3d\xf9\x6d\x4f\x7e\x3b\x3a\xb2\xed\xcc\x6f\x3b\xf3\xdb\xce\xfc\xb6\x33\xbf\xed\xcc\x6f\x47\x47\xb6\xfd\xf9\xed\xe8\xc8\x76\x74\x64\xdb\xab\xdf\x8e\x8e\x6c\x3b\xf6\xfb\xb3\xf9\x6e\xbe\x9b\xef\xe6\xbb\xf9\x1e\xbe\x87\xef\xe1\x7b\x78\x1d\x5e\xe7\xe7\x77\xfc\xb6\xff\xbf\xed\xff\x6f\xfb\xff\xdb\xce\xff\xb6\xf3\xbf\xed\xf9\x6f\x7b\xfe\xdb\x9e\xff\xb6\xe7\xbf\xed\xf9\x6f\x07\x4e\xb6\x9d\xff\x6d\xe7\x7f\xdb\xf9\xdf\x76\xfe\xb7\xdd\xfe\x6d\xb7\x7f\x7f\xae\xf1\xd7\xc8\x6b\xe4\x35\xf2\x1a\x79\x5d\xff\xba\xfe\x35\xfe\x19\xff\x5c\xff\xf1\x7a\xbc\x1e\xaf\xc7\x6b\xee\x29\xcf\x9e\x67\x80\xb3\x3f\xdf\x7f\xbf\x3f\xa5\x26\xe7\x9f\x85\xc8\xe1\x72\x73\x4b\x7f\xf6\x46\xe7\xe6\x96\xfe\xec\xed\xe7\x1f\x3f\x5f\x7e\xbe\xfc\x7c\x7d\xc7\x1f\x36\x58\x97\x5f\x2e\xbf\x5c\x79\x7d\xaf\x3c\x76\xcd\x03\xcb\x59\xfd\xfd\xb7\xab\xcd\x6d\xf3\x59\xbd\x59\xd7\x49\xbe\xdb\xbf\xb7\x6b\x1e\xaf\x72\xfc\xe4\x7c\x7f\xe2\x55\x8e\x91\xc7\xab\x1c\xaf\x72\x5c\x33\xbc\xc3\x79\x28\x38\x6b\x6e\x8c\xcf\x9a\x1b\xe3\xb3\xea\xb2\xde\x43\x19\x1f\xae\x1c\xae\x1c\xae\x1c\xae\x1c\xae\x1c\xdf\x4f\xc6\xd5\x3e\xfe\xde\xcf\xf7\x73\x30\xfe\x13\x7f\xea\x68\xce\xc0\xef\xc5\xda\x1f\xe1\x05\xdb\x0b\xb6\xdf\xfe\xc3\x3d\xbf\x7f\x90\x37\x78\xfc\xe4\xb8\xe4\xf3\x82\xfb\x6b\xbf\x7f\xba\x97\xdd\xae\xf9\xfc\xfb\x7a\x6b\xdf\x40\x25\xaf\xf4\xef\x6f\x44\x7f\x16\x94\xff\x1f\x5b\x56\xb6\xd3\x48\x9b\x74\x64\x3b\x8d\xb4\x9d\x46\xda\x4e\x23\x6d\xa7\x91\x36\x49\xc9\x26\x29\xd9\x24\x25\xdb\x69\xa4\x4d\x58\xb2\x09\x4b\x36\x61\xc9\x76\x02\x69\x93\x97\x6c\x27\x90\xb6\x13\x48\xdb\x09\xa4\x4d\x70\xb2\x9d\x40\xda\x64\x27\x9b\xec\x64\x93\x9d\x6c\xb2\x93\x4d\x76\xb2\xd7\xe7\xa7\xa4\x61\x3b\x9f\xb4\x09\x54\xb6\xf3\x49\xdb\xf9\xa4\xed\x7c\xd2\x76\x3e\x69\x13\xae\x6c\xc2\x95\x4d\xb8\xb2\x09\x57\x36\xe1\xca\x76\x4a\x69\x3b\xa5\xb4\x89\x58\x36\x11\xcb\x76\x4a\x69\x93\xb2\x6c\x52\x96\x4d\xca\xb2\x49\x59\x36\x29\xcb\x26\x65\xd9\xa4\x2c\x9b\x94\x65\x93\xb2\xec\xf5\xb3\xc2\xc0\x8c\x71\xcd\xe3\x9a\x96\x24\xa7\x97\xf6\x3a\xae\x6c\xd1\x21\x83\xd9\x64\x30\x9b\x0c\x66\x93\xc1\x6c\x32\x98\x4d\x06\xb3\x57\xf0\xb5\x0c\x91\xc4\x6c\x92\x98\xed\x84\xd3\x26\x8c\xd9\x4e\x38\x6d\xf2\x98\x4d\x1e\xb3\xc9\x63\x36\x79\xcc\x26\x8f\xd9\xe4\x31\x9b\x3c\x66\x93\xc7\x6c\xa7\x9d\x36\x91\xcc\x26\x92\xd9\x44\x32\x7b\x4d\x72\x76\xfd\x59\x41\xde\xe7\x6f\xff\xa7\xf4\xe4\xfc\x67\x03\xff\xb3\xfa\xef\xec\xf5\x37\xab\xc2\x99\x79\x5a\xf7\x6f\x56\x94\x93\xf5\x77\xfe\x13\x13\xaf\x5d\x98\x46\x61\x1a\x85\x69\x14\xa6\xd1\x98\x46\x63\x1a\x8d\x69\x34\xa6\xd1\x98\x46\x63\x1a\x8d\x69\x34\xa6\xd1\x98\x46\x63\x1a\x8d\x69\x34\xa6\xd1\x98\x46\x63\x1a\x8d\x69\x34\xa6\xd1\x98\x46\x63\x1a\x8d\x69\x34\xa6\xd1\x98\x46\x63\x1a\x8d\x69\x78\xb2\x88\xb9\x3d\x8a\xb9\x99\x88\xb9\x99\x88\xb9\xbb\x89\xb9\x93\x89\xb9\xad\x88\xb9\xad\x88\xb9\x15\x0a\x77\x50\x73\x83\x11\x73\x83\x11\x73\x03\x14\x73\x97\x11\x73\x97\x11\x6e\x7b\xe6\x56\x23\xe6\x56\x23\xe6\x56\x23\xe6\x56\x23\xe6\x56\x23\xe6\x56\x23\x3c\x67\x78\xd0\xf0\xa4\xe1\x51\x23\x3c\xc3\xcc\x03\xcc\xdc\xec\x9c\xb9\xd9\x39\x73\xf7\x75\xe6\xf6\xed\xcc\x6d\xcf\x99\xdb\x9e\xf9\xc8\x55\x8e\x51\x38\x46\xdd\x18\x65\x63\xfa\xcc\xbb\x3f\xf3\xee\xcf\x2c\x36\x35\x4f\x63\x67\x1e\xc4\x66\x8d\x9d\x35\xb1\xe7\xd1\xec\xcc\x8f\x63\xfe\x15\xf3\xbb\x6f\x7e\xf9\xea\x21\x77\xda\xe4\x4e\x9b\xdc\x69\x93\x3b\x6d\x72\xa7\x4d\xee\xb4\x9d\x70\xdb\x44\x4f\x9b\xe8\x69\x13\x3d\x6d\x67\xd8\x36\xe9\xd3\x26\x7d\xda\xa4\x4f\x9b\xf4\x69\x93\x3e\x6d\xd2\xa7\x4d\xfa\xb4\x49\x9f\x36\xe9\xd3\x26\x7d\xda\xa4\x4f\x9b\xf4\x69\x93\x3e\xed\xd5\xff\x62\x6e\x59\x81\x08\xa3\xb6\x73\x6e\x9b\xf4\x69\x13\x3d\x6d\xa2\xa7\xed\x6c\xdb\x26\x7a\xda\x44\x4f\xdb\xb9\xb5\x4d\xfa\xb4\x49\x9f\x36\xe9\xd3\x76\x6e\x6d\x13\x40\x6d\xe7\xd6\x36\x19\xd4\x26\x83\xda\x64\x50\x9b\x0c\x6a\x93\x41\x6d\xa7\xd7\xb6\xd3\x6b\x9b\x24\x6a\x3b\xbd\xb6\xe7\xfb\xf5\xd7\x3b\x77\xc2\x6d\x3b\xe1\xb6\x49\xa8\x36\x09\xd5\x26\xa1\xda\x24\x54\x9b\x84\x6a\x6f\xab\x8e\xd3\x6e\x9b\x9c\x6a\x93\x53\x6d\xa7\xdd\x36\x51\xd5\x26\xaa\xda\x44\x55\x9b\x9c\x6a\x93\x53\x6d\x42\xaa\x4d\x48\xb5\x09\xa9\xb6\x13\x6e\x9b\x9c\x6a\x3b\xe1\xb6\x89\xaa\xb6\x73\x6e\x9b\xb4\x6a\x93\x56\x6d\x72\xaa\x4d\x4e\xb5\x9d\x6d\xdb\x84\x54\x7b\xdf\xcf\xdf\xbc\x8f\xfd\xce\xdf\x7c\x1f\xef\xce\xbf\xf3\x99\xff\xbd\xbf\xc9\xdf\xc9\xcd\xc9\xca\xb9\xee\x39\xfd\x37\x7f\xdd\x5c\xeb\x64\xff\x9d\xb3\xfe\x0e\x34\x58\xa6\x7e\x99\xfa\x65\xea\x97\xa9\x5f\xa6\x7e\x99\xfa\x65\xea\x97\xa9\x5f\xa6\x7e\x99\xfa\x65\xea\x97\xa9\x5f\xa6\x7e\x99\xfa\x65\xea\x97\xa9\x5f\xa6\x7e\x99\xfa\x65\xea\x97\xa9\x5f\xa6\x7e\x99\xfa\x65\xea\x17\x9c\x59\x70\x66\xc1\x99\x05\x67\xd6\x4c\xff\x33\x8f\x57\x67\x1e\x96\xce\x3c\x63\x9d\x79\x62\x3a\x0f\x55\xf0\xdb\x99\x90\x6f\x26\x64\xcd\x84\xac\x99\x90\x35\x1e\x35\x1e\xf3\x40\x76\xe6\xe1\xe6\xcc\x63\xce\x99\x07\xad\x33\xcf\x67\x67\x1e\x87\xce\x3c\x18\x9d\x79\xee\x3a\xf3\xa4\x76\xe6\x71\xe8\xcc\x83\xd1\x99\x27\xb0\x33\x8f\x70\x67\x1e\x96\xce\x97\x69\xcc\x6f\x51\x0d\x58\x03\xd7\x38\x7e\x3b\xd7\x9b\xc5\xe6\xcc\x62\x73\x66\xb1\x39\xb3\xd8\x9c\x80\x41\xc6\x63\x16\x9b\x33\xb7\x3d\x73\xab\xf4\x66\x29\xef\xbf\x3a\x9f\xfa\x53\x9d\x5f\x71\x7e\xb5\xf9\x95\xe6\xaf\xf3\x4d\x43\x5f\x06\xd4\x72\x9b\x42\x6e\x53\xc8\x6d\xda\xb8\x4d\x15\xb7\x1d\x45\xdc\xb4\x71\x9b\x36\x6e\x6f\xcb\xc0\xb6\x0c\xd0\xc9\x6d\x3a\xb9\x4d\x1b\xb7\x29\xe1\x68\x6e\x92\xe6\x26\x69\x6e\x92\xc2\x66\xac\xeb\x98\xbe\x74\x6f\xe4\x32\x49\x2e\x93\x84\x32\x49\x28\xf3\x6b\x62\xd1\xc3\x91\xd1\x24\x19\xcd\xd8\xcb\xce\x35\x69\xe0\x36\xf5\xdb\xa6\x7e\xdb\x8e\x1f\x6e\x1a\xb8\x4d\x03\xb7\x69\xe0\x36\x0d\xdc\x76\xf0\x70\x53\xc2\x6d\x1a\xb8\x4d\xfd\xb6\x1d\x36\xdc\x34\x70\xdb\x61\xc3\x4d\x09\xb7\x1d\x39\xdc\x8e\x1c\x6e\x47\x0e\x37\x55\xdc\x9e\x38\xfd\x7c\xe7\xa6\xac\xa3\x88\x9b\x7e\x6e\xd3\xcf\x6d\xfa\xb9\x4d\x3f\xb7\xe9\xe7\x36\xfd\xdc\x76\x08\x71\x53\xd1\x6d\x2a\xba\x4d\x45\xb7\xa9\xe8\x36\x15\xdd\xa6\xa2\xdb\x54\x74\x9b\x8a\x6e\x3b\x84\xb8\x69\xe9\xb6\x43\x88\x9b\xa2\x6e\x3b\x8a\xb8\xe9\xea\x36\x5d\xdd\xa6\xab\xdb\x74\x75\x9b\xae\x6e\xd3\xd5\x6d\x07\x12\x37\x75\xdd\xa6\xae\xdb\x07\xf1\x3e\x18\xfb\xc1\xd8\x0f\xc6\x7e\x30\xf6\x83\xb1\x1f\x8c\xfd\x60\xec\x07\x63\x3f\x18\xfb\xc1\xd8\x0f\xc6\x4e\x26\xe0\x15\x97\x57\x5c\x5e\x71\x79\xc5\xe5\x15\x97\x57\x5c\xff\xf9\x8a\x18\xfb\xc1\xd8\x0f\xc6\x7e\x30\xf6\x83\xb1\x1f\x8c\xfd\x60\xec\x07\x63\x3f\x18\xfb\xc1\xd8\x0f\xc6\x7e\x30\xf6\x83\xb1\x1f\x8c\x7d\xe6\xea\x58\xbe\xf4\x61\x87\x3e\x6c\xe6\xeb\x58\xbe\xcd\xd7\xde\xcd\xb1\x77\x73\xec\xdd\x9c\xaf\xae\xc9\x7d\xce\x71\x9f\x73\xdc\xe7\x84\xc5\x2e\x2c\x76\x61\xb1\x0b\x8b\x5d\x58\xec\xc2\x62\x17\x16\xbb\xb0\xd8\x85\xc5\x2e\x2c\x76\x61\xb1\x0b\x8b\x5d\x58\xec\xc2\x62\x17\x16\xbb\xb0\xd8\x85\xc5\x2e\x2c\x76\x61\xb1\x0b\x8b\x5d\x58\xec\xc2\x62\x17\x16\xbb\xb0\xd8\x85\xc5\x2e\x2c\x76\x61\xb1\x0b\x7b\x37\x61\xef\x26\x2c\xd0\x61\xef\x26\xec\xdd\x84\xbd\x9b\xb0\x77\x13\xf6\x6e\xe6\x9e\xe7\x7f\xf1\x53\x08\x19\xa6\xb0\xa5\xb0\xa5\xb0\xa5\x50\xa5\x50\xa5\x20\xa5\x20\xa5\x20\xa5\xf0\xa4\xf0\xa4\xf0\xa4\xf0\xa4\xf0\xa4\xf0\xa4\xf0\xa4\x90\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x0f\x3d\x7d\xe8\xe9\xe3\xfe\xf5\xce\x89\x2b\x05\x23\x85\x21\x85\x21\x85\x21\x85\x21\x85\x21\x85\x21\x85\x21\x7d\xf4\xe9\x43\x4f\x1f\x77\xfa\xb8\xd3\xc7\x9d\x3e\xee\xf4\x71\xa7\x8f\x3b\x7d\xd0\xe9\x83\x4e\x1f\xf4\x58\xe3\x7d\xb3\x93\x4f\x6e\xf2\xc9\x4d\x3e\xb9\xe7\xee\xf2\xe7\x3b\xb7\x94\x10\x57\x6e\x67\x50\x37\x89\xe5\x26\xb1\xdc\x24\x96\x9b\xc4\x72\x93\x58\x6e\x12\xcb\xed\x24\xea\x26\xb4\xdc\x84\x96\xdb\x49\xd4\x4d\x6e\xb9\xc9\x2d\x37\xb9\xe5\x76\x12\x75\x3b\x89\xba\x49\x2f\x37\xd1\xe5\x26\xba\xdc\x44\x97\xdb\x19\xd4\xed\x0c\xea\x76\x06\x75\x3b\x83\xba\x49\xf4\x76\xc8\x07\x42\xbd\x4d\xa8\xb7\x09\xf5\x76\x98\xc6\x61\x63\x2f\x6c\xec\x85\x8d\xbd\xb0\xb1\x17\x16\x9d\xb0\xe8\x84\x45\x27\x2c\x3a\x61\xd1\x09\x8b\x4e\x58\x74\xc2\xa2\x13\x16\x9d\xb0\xe8\x84\x45\x27\x2c\x3a\x61\xd1\x09\x8b\x0e\x6e\xe2\xdd\x2e\xef\x76\xed\xaf\x5c\x34\x2c\x3a\x61\xd1\x09\x8b\x4e\x58\x74\xc2\xa2\x13\x16\x9d\x7f\xde\xad\x45\x27\x2c\x3a\x61\xd1\x09\x8b\x0e\x75\xd4\x0e\x8b\x4e\x58\x74\xc2\xa2\x03\x36\xec\xb0\xe8\x84\x45\x27\x2c\x3a\x61\xd1\x09\x8b\x4e\x58\x74\xc2\xa2\x13\x16\x9d\xb0\xe8\x84\x45\x27\x2c\x3a\x61\xd1\x09\x8b\x4e\x5a\x74\xd2\xa2\x93\x16\x9d\xb4\xe8\xa4\x45\x27\x2d\x3a\x69\xd1\x49\x8b\x4e\x5a\x74\xd2\xa2\x93\x16\x9d\xb4\xe8\xa4\x45\x27\x2d\x3a\x69\xd1\x49\x8b\x4e\x5a\x74\xd2\xa2\x93\x16\x9d\xb4\xe8\xa4\x45\x27\x2d\x3a\x69\xd1\x49\x8b\x4e\x5a\x74\xd2\xa2\x93\x16\x9d\xb4\xe8\xa4\x45\x27\x2d\x3a\x69\xd1\x49\x8b\x8e\xe7\x96\x9d\x16\x9d\x3c\xff\x1e\x84\xa4\x4f\x3f\x7d\xfa\xe9\xd3\x4f\x9f\x7b\xfa\xdc\xd3\xe7\x9e\x3e\xf7\xf4\xb9\xa7\xcf\x3d\x7d\xd6\xe9\xb3\x4e\x9f\x72\xfa\x94\xd3\xa7\x9c\x3e\xdf\xf4\xf9\xa6\xcf\x37\x7d\xbe\xe9\xf3\x4d\x9f\x6f\xfa\x7c\xd3\x67\x9a\x3e\xcd\xf4\x39\xa6\xcf\x31\x7d\x8e\xbf\xde\x39\xc1\xa6\x4f\x39\x7d\xca\xe9\xf3\x4d\x9f\x6f\xfa\x7c\xd3\x27\x9b\x3e\xd9\xf4\xc9\xa6\xcf\x34\x7d\xa6\xe9\x33\x4d\x9f\x69\xfa\x4c\xd3\x67\x9a\x3e\xd3\xf4\x99\xa6\xcf\x34\x7d\xa6\x63\xf9\x62\x11\x64\x98\x9b\x0c\x73\x3b\x27\xbd\x89\x31\x77\xfe\x8b\xf5\x85\x54\x73\xa7\xf5\x85\x60\x73\x13\x6c\x6e\x82\xcd\x4d\xb0\xb9\x09\x36\x37\xc1\xe6\x26\xd8\xdc\xce\x58\x6f\x67\xac\x37\xf1\xe6\x76\xc6\x7a\x93\x70\x6e\x12\xce\x4d\xc2\xb9\x49\x38\x37\x09\xe7\x26\xe1\xdc\x24\x9c\x9b\x84\x73\xa7\x5b\x15\x42\xce\x4d\xc8\xb9\xd3\x8a\xe3\x04\xf6\x26\x00\xdc\x04\x80\x9b\x00\x70\x13\x00\x6e\x02\xc0\x9d\x33\x7b\x3f\xf1\xf9\x73\xdc\xcb\x69\x2f\x87\xbd\x9c\xf5\x72\xd4\x6b\x7d\xb6\x21\xf7\xcf\x69\xaf\xf5\x89\xfa\x73\xe2\xcb\x81\xaf\xf5\x99\xe5\xe8\x33\xab\xd1\x67\x16\xa3\xcf\xac\x45\x9f\x59\x8a\x3e\xb3\x12\x7d\x66\x21\xfa\xcc\x3a\xf4\x99\x65\xe8\x33\xab\xd0\x67\x16\xa1\xcf\xac\x41\x9f\x59\x82\x3e\xb3\x02\x7d\x66\x01\xfa\xcc\xfa\xf3\x99\xe5\xe7\x33\xab\xcf\x67\x16\x9f\xcf\xac\x3d\x9f\xf7\xeb\x61\xf8\x7f\xc8\x38\x4f\xe6\x38\x99\xd3\x64\xeb\xe3\x33\x98\x05\xec\x33\xeb\xd7\xfa\xf8\xbf\xf3\x0e\x66\x09\xfb\xcc\x0a\xf6\x99\x05\xec\x33\xeb\xd7\x67\x96\xaf\xcf\xac\x5e\x9f\x59\xbc\x3e\xb3\x76\x7d\x66\xe9\xfa\xcc\xca\xf5\x99\x85\xeb\x33\xeb\xd6\x67\x96\xad\xcf\xac\x5a\x9f\x59\xb4\x3e\xb3\x66\x7d\x66\xc9\xfa\xcc\x8a\xf5\x99\x05\xeb\x33\xeb\xd5\x67\x96\xab\x35\xab\xd5\x9a\xc5\x6a\xcd\x5a\xb5\x3e\xff\x6a\xe3\xf8\x67\x56\x7a\x14\x21\xe8\xdc\x04\x9d\x9b\xa0\x73\x13\x74\x6e\x82\xce\x4d\xd0\xb9\x09\x3a\x37\x41\xe7\x26\xe8\xdc\x44\x9c\x3b\x11\x06\x22\x4e\x02\x9d\x24\xd0\x49\x02\x9d\x24\xd0\x49\x02\x9d\x24\xcd\x49\xd2\x9c\x24\xcd\x49\xd2\x9c\x24\xcd\x49\xd2\x9c\x24\xcd\x49\xd2\x9c\x5f\xef\xdc\x09\x7c\xc2\x9d\x24\xdc\x49\xc2\x9d\x24\xdc\x49\xc2\x9d\x24\xdc\x49\x92\x9d\x24\xd9\x49\x92\x9d\x24\xd9\x49\x92\x9d\x24\xd9\x49\x92\x9d\x24\xd9\x49\x92\x9d\x24\xd9\x49\x92\x9d\x24\xd3\x49\x32\x9d\x24\xd0\x49\x02\x9d\x24\xd0\x49\xd2\x9c\x24\xcd\x49\xd2\x9c\x9f\xef\xdc\xca\x41\xc4\x49\xb8\x93\x84\x3b\x49\xac\x93\x64\x3a\x49\xa0\x93\x04\x3a\x49\xa0\x93\x04\x3a\x49\xa0\x93\x04\x3a\x49\x9a\x93\xa4\x39\x49\x9a\x93\xa4\x39\x49\x9a\x93\xa4\x39\x49\x9a\x93\xa4\x39\x49\x9a\x93\xa4\x39\x49\x9a\x93\xa4\x39\x49\x9a\x93\xa4\x39\x49\x9a\x93\xa4\x39\x49\x9a\x93\xa4\x39\x49\x9a\x93\x44\x39\xff\x2b\x4e\xb2\xff\x69\xfe\x0f\x63\x92\xd4\x2a\x49\xad\x92\xd4\x2a\x49\xad\x92\xd4\x2a\x49\xad\x92\xc8\x2a\xbf\x22\xab\x7d\xad\x01\x84\x9a\x9b\x50\x73\x13\x6a\x6e\xf5\x1c\xf6\x75\x7f\x40\xb4\xb9\xaf\x55\xe1\x5a\x15\xd4\x79\xd8\x64\x9c\x9b\x8c\x73\x93\x71\x6e\x32\xce\x4d\xc6\xb9\xc9\x38\xf7\xb3\x36\xbc\xcf\xaf\xc7\xa8\x19\x73\xd9\xc7\x16\xeb\xca\xd6\x06\xb2\xcf\x4d\xf6\xb9\xc9\x3e\x37\xd9\xe7\x26\xe9\xdc\x24\x9d\x9b\xa4\x73\xab\x0b\xb1\x09\x3b\xb7\xba\x10\xfb\x59\x0f\x9e\xf5\x80\xd4\x73\x93\x7a\x6e\xf2\xce\xfd\xdc\x2b\x10\x76\x6e\xc2\xce\xfd\xdc\x25\x90\x77\xee\xf7\x2f\x80\x06\xf1\xe7\x26\xfb\xdc\x64\x9f\x9b\xec\x73\x13\x7c\x6e\x82\xcf\x4d\xf0\xb9\x55\x96\xd8\xc4\x9c\x9b\x98\x73\x13\x73\xee\x67\x55\x20\xe9\xdc\x24\x9d\x9b\x98\x73\x13\x73\x6e\x62\xce\x4d\xcc\xb9\xc9\x38\x37\x19\xe7\x26\xe3\xdc\x64\x9c\x9b\x8c\x73\x93\x71\x6e\xd2\xcd\x4d\xba\xb9\x89\x36\x37\xd1\xe6\x26\xda\xdc\xe4\x9a\x9b\x5c\x73\xbf\xf7\x6b\x9d\xfb\x9f\xe6\xff\x9c\x26\x37\x11\xee\x26\xc2\xdd\xaa\x89\x6c\x82\xca\x4d\x44\xb9\x55\x10\xd9\x44\x94\x9b\x88\x72\xab\x1d\xb2\x49\x29\x37\x29\xe5\x26\xa5\xdc\xcf\x8c\x27\xa8\xdc\x04\x95\x9b\xa0\x12\xd9\x4e\x64\x3b\x91\xed\x44\xb6\x13\xd9\x4e\x64\x3b\x91\xed\x44\xb6\x13\xd9\x4e\x64\xfb\xd7\x3b\x27\xc6\xc4\xbd\x13\xf7\x4e\xdc\x3b\x71\xef\xc4\xbd\x13\xf7\x4e\xdc\x3b\x71\xef\xc4\xbd\x13\xf7\x4e\xdc\x3b\x71\xef\xc4\xbd\x13\xeb\x4e\xac\x7b\xac\x91\x66\x3f\x41\xe5\x26\xa8\xdc\x04\x95\xbb\xcc\x7b\xb2\xca\x4d\x56\xb9\x49\x29\x77\xc5\xef\xdd\x5b\x55\x49\x36\x11\xe5\x26\xa2\xdc\x44\x94\x9b\x88\x72\x13\x51\x6e\xc2\xc9\x4d\x38\xb9\x49\x26\x37\xc9\xe4\x26\x99\xdc\xc4\x92\x9b\x58\x72\x13\x4b\xee\x32\xcb\x49\x26\x37\xc9\xe4\x26\x99\xdc\x64\x92\x9b\x40\x72\x93\x46\x6e\xd2\xc8\x4d\x1a\xb9\x49\x23\x37\x69\xe4\x56\xa1\x64\x13\xda\x6d\x42\xbb\x4d\x62\xb7\x49\xec\x36\x89\xdd\xae\xfa\x9f\x2b\xc1\xff\x35\x4d\x6e\x92\xc9\x4d\x32\xb9\x49\x26\x37\xc9\xe4\x26\x99\xdc\x24\x93\xb6\xab\xd3\xe6\x74\xda\x9c\x4e\x9b\xd3\x69\x73\x3a\x6d\x4e\xa7\xcd\xe9\xb4\x21\x9d\x36\xa4\xd3\x86\x74\xda\x90\x4e\x1b\xd2\x69\x43\x3a\x6d\x48\xa7\x0d\xe9\xb4\x21\x9d\x36\xa4\xd3\x86\x74\xda\x90\x4e\x1b\xd2\xbf\xde\xb9\x4a\x34\x9b\x7c\x72\x93\x4f\x6e\xf2\x49\x67\xf2\xc6\xba\xb2\x79\x4c\x44\xb9\x89\x28\x37\x11\xe5\x26\xa2\xdc\x44\x94\xbb\xcd\x6c\x52\xca\x4d\x4a\xb9\x49\x29\x37\x29\xe5\x26\xa5\xdc\xa4\x94\x5b\x0d\x9a\x4d\x2c\xb9\x89\x25\x37\xb1\xe4\x26\x96\xdc\x6d\x4e\xf7\xef\x03\x1b\x9b\xa0\x72\x13\x54\x6e\x82\xca\x4d\x50\xb9\x09\x2a\x37\x41\xe5\x6e\x4f\xff\x64\x95\x9b\xac\x72\x93\x55\x6e\xb2\xca\x4d\x56\xb9\xc9\x2a\x37\x59\xe5\x26\xa5\xdc\xa4\x94\x9b\x88\x72\x13\x51\x6e\xc2\xc9\x4d\x38\xb9\x09\x27\x77\x5b\x03\xc8\x27\xb7\xfa\x35\x9b\xd0\x6e\x13\xd7\x6d\x82\xba\x4d\x50\xb7\x55\xab\xd9\x64\x75\x9b\xac\x6e\xab\xd0\x1c\xba\x8a\x85\xae\x62\xa1\x93\x58\xe8\x1e\x16\xba\x87\x85\xee\x61\xa1\x7b\x58\xe8\x12\x16\xba\x84\x85\x2e\x61\xa1\x4b\x58\xe8\x12\x16\xda\xfc\x87\x3e\x60\xa1\x0f\x58\xe8\x00\x16\x3a\x80\x85\x0e\x60\xa1\x03\x58\xe8\x00\x16\xba\x7e\x85\x1e\x5f\xa1\x7f\x57\xe8\xdf\x15\x3a\x77\xc5\x3c\xa1\x8f\x35\xb2\x8c\x29\x3f\x6f\xaf\xd5\x33\x5e\xd7\xac\xd0\x35\x2b\xb4\xc3\x0f\xbd\xb0\x42\xff\xab\xd0\x8d\x2a\x74\xa3\x0a\x1d\xa8\x42\xd7\xa9\xd0\x75\x2a\xf4\x9b\x0a\x1d\xa5\x42\x47\xa9\xd0\x4b\x2a\xf4\x92\x0a\xbd\xa4\x42\x2f\xa9\xd0\x3f\x2a\xf4\x8f\x0a\xfd\xa3\x42\xff\xa8\xd0\x2d\x2a\xf4\x86\x0a\x1d\x9f\x42\xc7\xa7\xd0\xeb\x29\xf4\x7a\x0a\xbd\x9e\x42\x1f\xa7\xd0\xc7\x29\xf4\x71\x0a\x1d\x9c\x42\xd7\xa6\xd0\xb5\x29\x74\x64\x0a\x1d\x99\x42\x2f\xa6\xd0\x8b\x29\xf4\x62\x0a\x9d\x97\x42\xb7\xa5\xd0\x5b\x29\xf4\x53\x0a\xdd\x90\x42\x1f\xa4\xd0\x88\x3d\x34\x62\x0f\xdd\x8d\x42\x47\xa3\xd0\xd1\x28\xf4\x32\x0a\x5d\x8c\x42\xe7\xa2\xd0\xb9\x28\x34\x5f\x0f\x5d\x89\x42\x3f\xa2\xd0\x8f\x28\x74\x1c\x0a\x1d\x87\x42\x97\xa1\xd0\x53\x28\xbe\x9b\x9a\xfd\x8f\x95\x81\xee\x17\xfa\xbb\xaa\xcc\xfd\xc2\x51\xe8\xe8\x10\x61\x1e\x22\xcc\x43\x84\x79\x88\x30\x0f\x11\xe6\x21\xc2\x3c\xa4\x95\x87\xa8\xf2\x90\x53\x1e\x72\xca\x43\x4e\x79\xc8\x29\x0f\x39\xe5\x21\xa7\x3c\x84\x94\x87\x90\xf2\x10\x52\x1e\x12\xca\x43\x42\x79\x3e\xbf\x0f\x72\x1f\xd2\xca\x43\x5a\x79\x48\x2b\x0f\x69\xe5\x51\x3c\xe9\x10\x58\x1e\x02\xcb\x43\x36\x79\x08\x26\x0f\xc1\xe4\x51\x2a\xe9\x90\x4d\x1e\xb2\xc9\x43\x36\x79\xc8\x26\x0f\xd9\xe4\x21\x9b\x3c\x64\x93\x87\x6c\xf2\x90\x4d\x1e\xb2\xc9\xa3\x60\xd2\x51\x30\xe9\x90\x50\x1e\x12\xca\x33\xf3\xe2\xe7\x3b\xbf\xae\x7c\x5d\xf9\xba\xf2\x75\xe5\xeb\xca\xd7\x95\xaf\x2b\x5f\x57\xbe\xae\xfc\xbc\xab\xc7\xf7\xf1\x7d\x7c\x1f\xdf\xc7\xf7\x19\xff\x8c\x2f\x23\xcb\xc8\x32\xb2\x8c\x29\xd7\x2f\xd7\x2f\xe3\xcb\xf8\x76\xfd\xe6\xd5\xae\xd9\x46\xb6\x31\xf2\x61\xc9\xff\xf3\x8f\x5d\xec\x61\x27\xbb\xfe\x7f\xec\xdd\x41\x92\x24\x2d\x0e\xed\xfb\x0d\xe5\x00\x90\x04\xf8\x82\x7a\xff\x5b\x78\xa6\x1f\x79\xed\x0d\xab\x07\xb7\xad\x6f\x7f\x56\x13\xac\x2c\xcb\x23\xc2\x33\xd2\x01\x21\xfd\x75\x0e\xbb\xfd\xe4\x25\x95\xfc\xa3\x92\x4f\x54\xb2\xc9\xcf\xb0\x2e\xb1\xc6\xcf\xb0\x16\x85\x79\xcd\x0f\x2a\x99\xdc\x27\xf7\xa7\xe4\xfb\x94\x7c\x9f\x92\x69\x7d\x86\x27\x9c\x9b\x53\xf2\x6b\x4a\x4e\x4d\xc9\x60\x3e\x19\xcc\x27\x17\xa6\xe4\xbf\x94\xfc\x97\x92\xff\x52\xf2\x5f\x4a\x6e\x4b\xc9\x3c\x3e\x79\x2e\x25\xb7\xa5\xe4\xb6\x94\xdc\x96\x92\xf5\x7b\x72\x55\x4a\x4e\x4a\xc9\x3d\x29\x59\xb0\x27\x97\xa4\x64\xb2\x9e\x7c\x8d\x92\xd9\x79\x32\x3b\xcf\x34\xcb\xb8\x15\x25\xc3\xf2\xcc\x77\x57\x5f\xff\x2e\xac\xc7\xb3\x7c\x3a\x07\xa1\xe4\xe1\x93\x3c\x7c\x92\x6f\x4f\x72\xec\x49\x8e\x3d\xc9\xb1\x27\x59\x80\x27\x97\x9e\xe4\xcf\x93\xfc\x79\x92\xb1\x77\x72\xc5\x49\xae\x38\xc9\x09\x27\x79\xe0\x24\x0f\x9c\xe4\x7e\x93\x8c\xb1\x93\xd7\x4d\x72\xb9\x49\x2e\x37\xc9\xe5\x26\x79\xda\x24\xeb\xeb\xe4\x69\x93\x3c\x6d\x72\xfb\x1e\xf8\xd8\x24\x07\x9b\x64\x59\x9d\xfc\x6a\x92\x53\x4d\x6e\xf7\xcc\xaf\x26\xb9\xd3\x24\x83\xea\x64\x50\x9d\x7c\x69\x92\x0b\x4d\xca\x80\x05\xb2\x32\x90\x95\x81\xac\x0c\xbc\x64\xe0\x25\x03\x29\x19\x48\xc9\x40\x4a\x06\x46\x32\x30\x92\x81\x91\x0c\x8c\x64\x60\x24\x03\x23\x19\x18\xc9\x40\x47\x06\x3a\x32\xd0\x91\x41\xc3\x3d\xd0\x91\x81\x8e\x0c\x74\x64\xa0\x23\x03\x1d\x19\x84\xbe\x62\xfe\xd1\xd7\xa5\xaf\xf1\x6e\x56\x12\x5c\x64\xe0\x22\x03\x17\x19\xb8\xc8\xc0\x45\x06\x2e\x32\x70\x91\x81\x8b\x0c\x5c\x64\xe0\x22\x03\x17\x19\xb8\xc8\xc0\x45\x06\x2e\x32\x70\x91\x81\x8b\x8c\x69\xb5\xc1\x45\x06\x2e\x32\x70\x91\x81\x8b\x0c\x5c\x64\xe0\x22\xa3\x77\xba\x3f\xde\xb9\x15\x06\x2f\x19\xf3\xfd\x15\xac\x30\x68\xba\x40\xd3\x05\x8e\x2e\x70\x74\x81\xa3\x0b\x1c\x5d\xe0\xe8\x02\x47\x17\x38\xba\xc0\xd1\x05\x8e\x2e\x70\x74\x81\xa3\x0b\x5a\xf0\x81\xa6\x0b\x34\x5d\xa0\xe9\x30\xd0\x85\x81\x2e\x0c\x74\x61\xa0\x7b\xf4\x2a\xab\x0d\x09\x31\x1c\x76\xe1\xb0\x0b\xc8\x5c\x40\xe6\x7e\x72\xde\xe8\xa9\xb3\x0e\x70\x28\x4a\x76\xe3\xc9\x6e\x3c\x39\x0e\x25\x97\x9e\x64\xb9\x9d\x7c\x78\xf2\x78\x62\xb9\xee\x24\x3b\xed\xe4\xae\x93\x7c\x75\xf2\x78\x3e\xb9\xeb\x24\x0b\xed\xe4\x9f\x93\x3c\x73\x92\x25\x76\xf2\xb7\x49\xfe\x36\xc9\xfa\x3a\x79\xd7\x24\xbf\x9a\xe4\x3f\x93\xd7\xfc\xe2\x36\x93\x8c\xa8\x93\xcd\x73\xb2\x79\x4e\xae\x2f\xc9\xf5\x25\xf9\xbd\x24\x17\x97\xe4\xe2\x92\xfc\x5b\x92\x73\x4b\x72\x6e\x49\xce\x2d\xc9\xa1\x25\x39\xb4\x24\xf7\x95\x64\x8d\x9c\x9c\x55\x92\xf9\x71\x32\x3f\x4e\x2e\x28\xc9\x90\x38\xd9\x0f\x27\x57\x93\x64\x21\x9c\x3c\x4c\x92\x6f\x49\x32\x03\x4e\x5e\x1f\xc9\xeb\x23\xf9\x7b\x24\x4f\x8f\x64\xa9\x5b\xff\x8a\x9f\x2c\x96\xba\xc5\x4c\xb7\xd8\xe8\x16\x1b\xdd\x62\x94\x5b\xec\x6f\x4b\x98\x59\xc2\xcc\x12\x5a\x96\xd0\xb2\x7a\x53\xed\xf1\xf6\x58\x5e\xd5\xcb\x55\x09\x15\x4b\x78\x58\xbd\x71\xf5\xe8\x7f\xaf\xeb\xaf\x4f\xe9\x2f\xb5\x84\x7b\xc5\xee\xb4\x58\x9c\x16\x73\xd3\x62\x6b\x5a\x0c\x4d\x8b\x71\x69\x31\x2e\x2d\xc6\xa5\xc5\xb2\xb4\x7e\x27\x99\x2d\x0b\x62\x09\xf8\x2f\xc0\x7f\xc1\xe9\x0b\x4e\x5f\x70\xfa\x82\xd3\x17\x9c\xbe\x74\x27\x94\xee\x84\xd2\x9d\x50\x1a\x13\x4a\xeb\x41\x69\x3d\x28\xad\x07\xa5\xf5\xa0\xb4\x1e\x94\xd6\x83\xd2\x7a\x50\xda\x0d\x4a\x0b\x43\x69\x5e\x28\xcd\x0b\xa5\xa1\xa0\x70\xf6\x7f\x9a\xac\xb0\x4a\x14\x7e\xa1\xf0\x0b\xb5\x5f\xa8\xfd\x42\xed\x97\x36\x84\xd2\x80\x50\x5a\x0f\x4a\xeb\x41\x69\x3d\x28\xad\x07\xa5\xb9\xa0\x34\x17\x94\xb6\x82\xd2\x56\x50\xda\x0a\x4a\xb7\x40\x91\x40\x29\x4c\x7f\xe9\x10\x28\x34\x7f\x51\x49\x29\xad\x10\x85\xf5\x2f\x0d\x14\x7f\xbc\x73\x0b\x12\x2b\x81\xc0\xe6\x05\x36\x4f\x93\x45\xe9\x22\xe8\xd1\x7b\x5a\x72\x28\xd9\x05\x5a\x4f\x97\x42\x8f\x5e\x65\xc9\xc1\xec\xe9\x4f\x28\x9d\x06\xa5\x1b\xa1\x47\xaf\xb2\xe4\xd0\xb6\x0b\xda\x76\x81\xdf\x0b\xda\x76\xb1\x2c\x39\x14\xee\x82\xc2\x5d\xe0\xfa\x02\xd7\x17\xb8\xbe\xc0\xf5\x05\xae\x2f\x04\xc2\xc5\xce\xb6\x84\xff\xc5\x1a\xb6\xd8\xc1\x96\xa3\x40\xcd\xf7\x64\xf6\x66\x5e\xcc\x5c\x4b\xf8\x5f\x82\xfd\x62\xd1\x5a\x2c\x5a\x6b\x99\x23\x6c\x59\xcb\x21\xa0\x1c\x02\x8a\x2d\x6b\x31\x5e\x2d\xe1\x7f\xb1\x5c\x2d\x87\x80\x62\xb9\x5a\x2c\x57\x8b\xe5\x6a\x2d\x33\x8b\xd9\x6a\x39\x1c\x14\xb3\xd5\x5a\x9e\xf9\x65\x96\x31\x46\x2d\xc6\xa8\xc5\x12\xb5\x1c\x1a\xca\xa1\xa1\x1c\x14\x8a\xf5\x69\x39\x28\x94\x23\x42\x31\x25\xa5\x13\x92\xb4\x35\x92\xb6\x46\x52\xd5\x48\xaa\x1a\x49\x43\x23\xa9\x67\x24\xf5\x8c\xa4\x92\x91\x54\x32\x92\x3e\x46\xd2\x18\x4b\xfa\x18\x49\x01\x23\x29\x60\x24\x05\x8c\xa4\x7a\x91\x34\x2e\x92\x72\x45\x52\xae\x48\x9a\x15\x49\xb3\x22\x69\x56\x74\xf4\xe3\x9a\xe3\xe7\xee\x2d\x7c\xf3\xec\x36\x8b\xdd\x66\x09\xf1\x4a\x88\x57\x42\xbc\x12\xdc\x55\xfa\xfe\x05\x68\xc5\xde\xb2\xd2\x7d\xa6\x7b\x63\x6c\x59\x2c\x2d\x8b\xa5\x65\x31\xb3\xac\xf4\x8d\x31\xb3\x2c\x66\x96\xc5\xcc\xb2\xd2\x7d\xa6\x7b\x13\xd6\x95\x30\xad\xca\xb7\x54\xbe\x19\x76\x8c\x05\x50\x08\x87\xa7\x40\x84\x06\x3d\xc4\xc0\x85\x06\x2e\x34\x70\xa1\x41\x03\x31\x30\x9f\x81\xf6\x0c\xb4\x67\xa0\x3d\x83\xee\x61\x60\x3e\x83\xee\x61\x30\xa1\x08\x26\x14\x81\x02\x0d\x14\x68\x20\x3f\x83\xe5\x44\x60\x3e\x03\xf3\x19\x68\xd8\x40\x7e\x06\xf5\xc3\x88\x7f\xe3\xd8\x84\x0e\x0d\x74\x68\xa0\x43\x03\x17\x1a\xb8\xd0\xc0\x85\x06\x2e\x34\xa8\x25\x06\xf2\x33\x90\x9f\xc1\x84\x22\xf0\x9f\x81\xff\x0c\xe4\x67\x20\x3f\x03\xf9\x19\xc8\xcf\x40\x7e\x06\xf2\x33\x90\x9f\x81\xfc\x0c\xe4\x67\x20\x3f\x03\xf9\x19\x68\xcf\xe8\x90\xff\x8f\x77\x6e\x6d\x41\x81\x06\x0a\x34\xf0\x9f\x81\xff\x0c\xfc\x67\xe0\x3f\x03\xff\x19\xf8\xcf\xa0\xae\x18\x50\xbe\x80\xf2\x05\x45\xc5\x00\xf4\x05\xa0\x2f\x68\x29\x06\xac\x2f\x60\x7d\x01\xeb\x0b\x5a\x8a\x01\xee\x0b\x70\x5f\x80\xfb\x02\xdc\x17\xe0\xbe\x00\xf7\x05\xb8\x2f\xe8\x2a\x06\x83\x89\x00\xfa\x05\xe5\xc4\x78\xcf\x30\xf3\xce\x12\xe0\x97\x00\xbf\xca\xf3\x29\xcc\x2f\x46\x9b\xc5\x62\xb3\xca\x7c\x61\xa8\x59\x75\xfc\xc4\x4c\x61\xa5\x59\xf5\x9e\x4f\xab\x13\xb3\xcc\x62\x93\x59\x8e\x02\x25\xfc\x2f\x41\x7d\x09\xe1\x4b\x18\x5e\xdb\x73\xbe\x3d\xe7\x6c\x1d\x8b\xad\x63\x09\xa0\x8a\x65\x63\x6d\xf3\x8e\x05\x63\xb1\x60\xac\x23\x06\x60\xb5\x58\xa7\xc3\x9c\x3a\xe6\x05\x7b\xc5\x62\xaf\x58\xec\x15\x8b\x81\x62\x31\x50\x2c\xd6\x89\x25\x1c\x2b\xe1\x58\xb1\x42\x2c\xe1\x58\x1d\xdf\x80\xa0\xac\x98\x0e\x16\xd3\xc1\x3a\xee\x4a\xf0\x55\x2c\x06\x8b\x95\x60\xb1\x12\x2c\x26\x82\x75\xfc\xbe\xec\x03\x4b\x20\x56\x8c\x03\x8b\x71\x60\x5d\x77\xce\x32\xb0\x58\x06\x16\xcb\xc0\x62\x19\x58\x42\xb6\x62\x13\x58\x6c\x02\x4b\xe0\x56\x0c\x02\x4b\xf8\x56\x6c\x02\x8b\x4d\x60\xdd\xd9\x9f\xc5\x20\xb0\x18\x04\x16\x83\xc0\xba\x7e\xd3\x6b\x35\x60\xfb\x57\x6c\xff\x8a\xe1\x5f\x09\x00\x4b\x00\x58\x82\xbe\x62\x6b\x57\x6c\xed\xea\xb3\x53\x7c\x3e\xfd\xf3\xb9\x9f\xcf\x65\x6e\x57\xcc\xed\x8a\x95\x5d\x7d\x6f\x5e\x5b\x55\xe0\xa2\x01\x17\x0d\xb8\x68\xc0\x45\x03\x2e\x1a\x70\xd1\x60\x3b\x12\xf4\x37\x03\x3a\x1a\xd0\xd1\xa0\xbf\x19\xf4\x37\x03\x22\x1a\x10\xd1\x00\x87\x06\x38\x34\x60\xa1\x01\x0b\x0d\x58\x68\xd0\xdf\x0c\x70\x68\xd0\xdf\x0c\x88\x68\x30\x1f\x89\x5c\x7f\xec\x58\x0d\x18\x69\x40\x47\x83\xfe\x66\x80\x46\x03\x34\x1a\x94\x37\x03\x3a\x1a\xd0\xd1\x80\x8e\x06\xb5\xcd\x00\x84\x06\x14\x34\xa0\xa0\x01\x05\x0d\xf8\x67\xc0\x3f\x23\xad\x27\x20\xd0\x00\x81\x06\x08\x34\x80\x9f\x01\xf6\x0c\xb0\x67\xd0\xd9\x0c\xc8\x67\xe4\x1f\xed\x30\xfb\x1a\x9f\x65\xf5\x00\x81\x06\xfc\x33\xe0\x9f\x01\xff\x0c\x0a\x8d\x01\xe6\x0b\x30\x5f\x80\xf9\x82\x4e\x63\x40\xfa\x02\xd2\x17\x30\xbe\x00\xf0\x05\x80\x2f\x28\x31\x06\x8c\x2f\x60\x7c\x01\xe3\x0b\x18\x5f\xc0\xf8\x02\xc6\x17\x30\xbe\x80\xf1\x05\x8c\x2f\x60\x7c\x41\x6b\x31\x68\x2d\x06\xa4\x2f\xa8\x3c\x45\xbd\x27\x4d\x74\xf1\x99\x89\x8c\x0f\x8b\xf1\x61\x39\x1c\x14\xcb\xc3\xfa\x3c\xb7\x0e\x0a\xf5\xbd\xa7\xd4\xce\xc8\xc2\xb0\x1c\x17\xea\x13\x4b\xb0\x2d\x2c\x26\x85\xc5\x74\xb0\x1c\x23\xca\x31\xa2\x1c\x20\x8a\x05\xe0\x76\x3a\xd8\xa3\xd7\x84\x3d\xfa\x19\xde\xa3\xef\x64\x8f\x9e\x2f\x7b\x84\xff\xed\x59\xb3\x25\xa7\xf7\x08\xff\xdb\x11\xc5\x76\x82\xd8\xa3\x67\xd0\x1e\x3d\x77\xb6\x73\xc4\x96\x90\xde\x4e\x13\xdb\xa9\x61\x3b\x29\xec\xd9\xb3\x7b\xcf\xfe\x7d\xf7\xec\xd9\xb4\x25\x8c\xf7\xf4\xe9\xb3\xe7\xec\x76\x6a\xd8\x12\xc3\x5b\x62\x78\x4b\x09\xef\xb9\xbd\xca\xbb\xf5\x71\xb6\xc7\xbe\x07\xb1\xdf\x16\xf5\x6d\xd1\xdd\x16\xc5\x6d\xd1\xd7\x16\x77\xed\xe5\xae\x44\x5f\x9b\xe5\xfc\x96\x9a\xdd\x62\xad\x2d\xca\xda\x2c\xe1\xb7\x58\x6b\xaf\xf7\x6e\xbd\x32\x6f\x69\xb3\x2d\x6d\xb6\xc3\xfd\xb3\x66\xdf\xac\xd9\x37\x53\xf6\x2d\x79\xb6\x63\xfa\x79\xaf\x06\x5b\x84\xb6\x45\x65\x5b\x4c\xb5\x25\xc9\x76\xf8\xbd\x18\xa2\x6f\x51\xd6\x96\x24\xdb\x71\xfc\xe4\x94\xd1\xf5\x7e\x47\xf6\xe7\x5b\x7c\xb5\xa5\xd0\x76\xb8\xb7\xb7\x67\x51\xe9\x0c\x48\x68\x40\x42\x83\x4a\x67\x80\x3e\x03\xf4\x19\xa0\xcf\xa0\xd2\x19\xa0\xcf\x00\x7d\x06\x7d\xce\x80\x7e\x06\xf4\x33\xa0\x9f\x41\x9f\x33\x00\xa0\x01\x00\x0d\x00\x68\x00\x40\x03\x00\x1a\x00\xd0\x00\x80\x06\x00\x34\x5e\x7c\x05\x00\x8d\xfa\x23\xc9\xdf\xd7\x78\x67\x2b\x09\x48\x34\x40\xa2\x01\x12\x0d\x90\x68\x68\x25\x0c\x18\x68\xc0\x40\x03\x06\x1a\x30\xd0\x80\x81\x06\x0c\x34\x60\xa0\x01\x03\x0d\x18\x68\x40\x3f\x03\xfa\x19\xa0\xcf\x00\x7d\x06\xe8\x33\xe0\x9e\x01\xf4\x0c\xa0\x67\x00\x3d\xa3\xfe\x8d\x75\x06\x06\x1a\xd0\xcf\x80\x7b\x06\xbd\xc7\xa0\xf7\x18\xf0\xc0\x80\x07\x06\x3c\x30\x80\x81\x01\x0c\x0c\x48\x60\x40\x02\x03\x12\x18\xd4\x1d\x03\x18\x18\xd4\x1d\xa3\xde\x5f\xd6\x3a\x03\x12\x0c\x90\x60\x00\x03\x83\xed\x4e\x40\x02\x03\x12\x18\x90\xc0\x80\x04\x06\x24\x30\x20\x81\x01\xf7\x0b\xb8\x5f\xc0\xfd\x42\x12\x71\x8b\xc6\x77\x7a\x9e\xa5\x5d\xb7\xc8\x7c\x4b\xbb\x6e\x09\xd7\x2d\xe1\xba\xf3\x5d\xef\xd9\x66\x66\xbf\xa5\x57\x77\xf6\x1a\xb5\x19\xd5\x6f\x91\xfc\x16\xc9\x6f\x09\xd4\x2d\x81\xba\xcb\xa7\x30\x68\xdf\xac\xd9\x37\x6b\xf6\x2d\x99\xba\xcb\x3b\xb3\x66\xdf\x22\xf6\xcd\x9a\x7d\xb3\x60\xdf\xe2\xf6\xcd\x88\x7d\x97\x4f\x14\xc3\x6f\x09\xd7\x5d\xd6\x1c\x69\xd7\x2d\x2a\xdb\xa2\xb2\x2d\x1e\xdb\xa2\xaf\x2d\x81\xba\x25\x50\xf7\xf6\x89\x4c\xc1\x37\x7b\xef\x2d\x2d\xba\x59\x74\x6f\x91\xd5\x16\x41\xed\xed\xfe\x45\x38\x5b\xda\x69\x4b\x38\x6d\xe6\xcd\x9b\x3d\xf3\x96\x6a\xda\x22\x9f\x2d\x56\xd9\x22\x8a\x7d\xbd\xa7\xb8\x62\x4b\x20\xed\xeb\x1d\x58\x05\xef\x6b\xce\x32\xdc\xdd\xd2\x42\x9b\xc9\xee\x66\xb2\xbb\x59\xea\xee\xcf\xf7\xcf\x52\x77\x8b\x2e\xf6\xe7\x3b\x17\x57\x6c\x89\xa2\xfd\xf9\x9e\xad\xff\xfb\xf3\x29\x76\x81\xfd\x59\x55\x3e\x2b\x1b\xdb\xda\xcd\xb0\x76\x5b\xf9\x37\xbb\xd9\xcd\x62\x76\x33\x94\xdd\xd2\x48\xfb\x73\x3f\x8a\x90\xdb\x8e\xb0\xd9\xc4\x6e\x36\xb1\x9b\xed\xeb\x7e\x05\x25\x70\x68\x80\x43\x83\xfe\x67\x40\x44\x03\x22\x1a\x10\xd1\x80\x88\x06\x44\x34\x20\xa2\x01\x11\x0d\x88\x68\x40\x44\x03\x22\x1a\x10\xd1\xa0\xfc\x19\x40\xd1\x00\x8a\x06\x6d\xcf\x80\x8b\x06\x5c\x34\xe0\xa2\x01\x17\x0d\xb8\x68\x50\xf5\x0c\x28\x68\xec\x3f\x43\xe4\x01\x14\x0d\x6a\x9f\x41\xed\x33\x40\xa3\x41\xed\x33\xa0\xa3\xc1\x0a\x2a\x00\xa4\x01\x20\x0d\x00\x69\x00\x48\x03\x40\x1a\x00\xd2\xd8\x72\x2c\x30\xd2\x80\x91\x06\x8c\x34\x60\xa4\x01\x23\x0d\x18\x69\xc0\x48\x03\x3a\x1a\xd0\xd1\x00\x8d\x06\x68\x34\xf6\x1f\xd9\xeb\xbe\xc6\x3b\x58\x61\xc0\xa4\xb1\xad\x30\x8c\xa2\x02\x7c\x18\xe0\xc3\x00\x1c\xc6\x76\xea\x81\x1a\x06\xd4\x30\x28\x43\x06\xe0\x30\xa0\x86\x01\x32\x0c\x90\x61\x80\x0c\x03\x5e\x18\xfb\xad\x2d\xfe\xd6\xf0\xc2\x80\x17\x06\xbc\x30\xe0\x85\x01\x2f\x0c\x96\x52\x01\x20\x0c\x00\x61\x00\x08\x03\x40\x18\x00\xc2\x38\xbd\x86\x9c\x7f\xc5\x4f\x1e\x89\xc9\x33\xfa\x01\x3f\xa3\x27\xe5\x19\xfd\x68\x9f\xd1\xd3\xfd\x8c\xde\x2a\x8f\x00\xe4\x08\x40\x8e\xa0\xe3\x8c\xe5\xe7\xfd\xc8\x9f\x91\xae\x4c\x3f\xb9\xde\xa7\xb7\xc1\xa3\x26\x7d\x54\xa3\x8f\xfa\xd6\x99\x3e\x6b\xf6\x92\x76\x04\x1a\x67\xf6\x94\x3a\xd3\xed\x08\x37\xce\x9c\xfe\xd7\x3d\x08\x3d\x8e\x84\xe5\x99\x3e\x71\x86\x2b\xc3\x35\xe9\x7f\xd3\x4f\xd2\xbb\xa5\x2b\xcb\x6b\x7b\x33\x3f\xb3\xbc\x6a\xbb\x72\xbb\x72\xbb\xe6\xf8\x2c\xf7\x39\xaf\x2b\x3f\xaf\xea\xa5\xf1\xa8\x46\x1f\x15\xe8\x23\xf9\x74\x96\xbb\x92\x82\x3a\x92\x4f\x47\xda\xe9\x48\x35\x1d\x35\xe6\x23\x48\x39\xc2\x93\xa3\x36\x7c\x04\x29\x67\x79\xe7\xf5\xde\xf9\xeb\xfb\x11\xaa\x1c\xe1\xc9\x51\xdb\x3b\xc2\x93\x13\xbd\xa0\x9e\xe8\xe0\xee\xa8\xf0\x1d\x29\xa2\x23\x45\x74\x24\x87\x8e\xda\xde\x91\x0a\x3a\x7d\xe8\xef\xd1\xab\xfc\xbe\x02\x96\x23\x18\x39\x92\x3d\xc7\xb6\x70\xd2\xdf\x4e\x1d\xee\xd8\x22\x8e\xa4\xce\xe9\xc3\x41\x9e\xf4\x1d\x4a\xea\x1c\x49\x9d\xa3\x1a\x77\xd2\x37\x29\x85\x73\x5e\x98\x7f\x04\x2f\xc8\xd3\x40\x9e\x06\xf2\x34\x8e\x25\x07\x7f\x1a\xf8\xd3\xc0\x9f\x06\xfe\x34\xf0\xa7\x81\x3f\x0d\xfc\x69\xe0\x4f\x03\x7f\x1a\xf8\xd3\x20\x35\x1a\xa4\x46\x03\x8b\x1a\xa4\x46\x03\x91\x1a\x04\x47\x03\x97\x1a\xb8\xd4\xc0\xa5\x06\x2e\x35\xfe\x0d\x2e\x35\x70\xa9\x41\x94\x34\xd0\xa9\x81\x4e\x0d\x74\x6a\x10\x25\x0d\x8c\x6a\x60\x54\x03\xa3\x1a\x18\xd5\xc0\xa8\x06\x46\x35\xd0\xa9\x81\x4e\x0d\x74\x6a\x10\x1c\x0d\x8c\x6a\x60\x54\x03\xa3\x1a\x18\xd5\x20\x38\x1a\x48\xd5\x40\xaa\x06\x52\x35\xce\xfb\x3e\xff\x8d\x70\x86\x10\x69\xe0\x58\x03\xc7\x1a\x24\x48\x03\xcd\x1a\x68\xd6\x40\xb3\x06\x9a\x35\xd0\xac\x41\x7c\x34\x70\x8f\x81\x7b\x0c\xdc\x63\xe0\x1e\x83\x90\x64\x10\x92\x0c\x0c\x64\x10\x92\x0c\x24\x64\xf0\x52\x0b\x3c\x64\xe0\x21\x03\x0f\x19\x78\xc8\xc0\x43\x06\x1e\x32\xf0\x90\x81\x87\x0c\x3c\x64\xe0\x21\x03\x0f\x19\xd7\x73\xde\xc7\xbe\x1e\x3d\x57\xc7\x13\x75\xfc\xc4\x4c\x51\xdf\x3d\xf9\x9e\xd5\xde\xdc\x4e\x1f\xda\x7a\x74\x4d\x6f\x71\xa7\xbc\x4f\x1f\xd4\xf2\x08\x34\x4e\x59\x01\xd4\x7a\x8f\xa0\xe3\x48\xf9\x9c\xf2\xf4\x76\x80\xd9\xa3\x6b\xcc\x7d\x49\xa0\xa3\xbe\x7b\x3a\x84\xec\xf1\x18\xbd\xca\xbd\x75\xc0\xd8\xa3\xff\x75\x87\xd2\x42\xa7\xae\xd7\x5e\x9f\x6b\xc5\x28\x2b\x86\x44\xd1\x91\x28\x3a\x6a\xc6\x47\xb5\xf8\x6c\xeb\xc6\xb6\xb2\x75\xa0\xd7\xe3\x35\xf6\x95\x1d\xee\xf5\xe8\x4a\x2b\x89\xaa\xf0\x51\x03\x3e\x12\x48\x47\x02\xe9\xa8\xc6\x9d\xed\x5b\xda\x3e\x7d\xfb\xc4\xed\x13\x7b\xbb\xe8\xd1\x95\x9f\x77\xb0\xb6\x48\x32\x1d\x49\xa6\x73\xdc\xc9\xf1\xe9\xd2\x4b\xe7\xf8\xc4\x63\x55\x97\x6a\x3a\x52\x4d\x47\x92\xe9\x48\x32\x1d\x35\xbf\xa3\xce\x77\x8e\xb5\x5d\xc0\x75\x04\x5c\x47\x9d\xef\x08\xb8\x8e\x34\xd2\x91\x46\x3a\xd2\x48\x47\x3d\xef\xa8\xe7\x1d\xc9\xa4\x23\x75\x74\xde\x93\x20\x81\x74\xa4\x8e\x8e\x44\xd1\x91\x1c\x3a\x02\xb4\x73\xfd\x4d\x89\x5f\x06\x86\x36\x30\xb4\x81\x9b\x0d\xdc\x6c\x5c\x9b\x18\x26\x36\x30\xb1\x81\x86\x0d\x34\x6c\xa0\x61\x03\x0d\x1b\x68\xd8\x40\xc3\x06\x1a\x36\x10\xb0\x41\x70\x34\x10\xb0\x81\x80\x0d\x52\xa3\x81\x83\x0d\x1c\x6c\x90\x1a\x0d\x22\xa3\x81\x89\x0d\x4c\x6c\xdc\x3f\x0b\x8a\x05\x62\x36\x10\xb3\x81\x98\x0d\x42\xa4\x41\x88\x34\xd0\xb3\x41\x88\x34\xae\x35\x87\x1c\x69\x60\x65\x03\x2b\x1b\x58\xd9\xc0\xca\x06\x56\x36\xb0\xb2\x41\x6a\x34\x10\xb3\x81\x98\x0d\x52\xa3\x81\x9b\x0d\xdc\x6c\xe0\x66\x03\x37\x1b\xb8\xd9\xc0\xcd\xc6\xfd\xb3\xf5\x55\xa0\x6a\x03\x55\x1b\xa8\xda\xf8\xfd\x5b\x08\x8b\x10\xb6\x41\x88\x34\x70\xb6\x41\x88\x34\xd0\xb6\x81\xb6\x0d\xb4\x6d\xa0\x6d\x03\x6d\x1b\x68\xdb\x20\x71\x19\x24\x2e\x03\x79\x1b\xc8\xdb\x20\x71\x19\xf8\xdb\xc0\xdf\x06\xfe\x36\x30\x9a\x81\xd1\x0c\x74\x66\xa0\x33\x03\x9d\x19\xa4\x2c\x03\xa3\x19\xa4\x2c\xe3\x7b\xcf\x98\xb9\x73\xcd\x9a\xeb\x99\xbc\x9e\x49\x41\xfd\x11\xc8\x9f\x77\xa5\x70\xfe\x7c\xf6\x74\xc9\xc2\x23\x84\x3f\xdf\x7a\xff\x76\xa5\x19\x21\xcd\x73\x84\xf6\x47\x68\x7f\xa4\x7c\x8e\x34\xcf\xf9\xec\x9b\x5f\xfa\xb9\x18\x40\x55\xf8\x7c\xe6\x88\xc0\xff\x48\xf9\x1c\xe1\xff\xf9\xac\x33\xdf\xf1\xbf\x3d\xaf\xaf\x88\xeb\x2a\x02\x5f\x71\xd7\x95\xc2\xb9\xca\xbf\x57\xe1\xf7\x4a\xd5\x5c\xbc\xe0\x45\x04\x5e\x25\xdf\xab\xe4\x7b\xc7\x7b\x9f\x1b\x3f\x79\xc5\x4b\x57\xaa\xe6\x2a\xf9\xde\xd9\xb1\xc4\x15\x41\x5d\x25\xdf\x3b\xbd\xff\x0c\x3f\xef\xdd\xff\x8a\xa3\xae\x38\xea\x2a\xf9\x5e\x44\xe0\x15\x4d\x5d\x45\xbc\x3b\xcb\x35\xe5\x1a\xf7\x33\xdd\x8f\x58\xeb\x8a\xb5\xee\x2c\xd7\x97\xeb\xdd\x27\x46\xf0\xce\xed\x7f\xb7\x9f\x1f\xef\x7f\xbc\xea\xf8\xb9\xfb\x57\x18\xbc\x88\xc0\x8b\x08\xbc\x48\x85\x2b\x2a\xbb\xa2\xb2\xab\x3c\x78\x45\x65\x77\xf5\x1a\x72\x25\x93\xf8\xef\xe4\xc5\xf3\x5d\xa9\xa3\xab\x4c\x77\x97\xcf\x55\xa6\xbb\xeb\xf8\x5f\x9f\x8b\xe1\xbb\xaf\xe0\xc9\x3d\x32\x90\xbe\x81\xf4\x0d\x74\x6f\xa0\x7b\xe3\x13\x38\x63\x7c\x03\xe3\x1b\x18\xdf\xc0\xf8\x06\xc6\x37\x30\xbe\x81\xee\x0d\x74\x6f\xa0\x7b\x03\xd7\x1b\x24\x4f\x03\xb9\x1b\x2f\xf1\x8c\xd9\x0d\xcc\x6e\x60\x76\x83\x93\x64\x20\x77\x03\xb9\x1b\xdf\xbf\x41\xcf\x20\x7a\x03\xd1\x1b\x88\xde\xc0\xf2\x06\x96\x37\xb0\xbc\x81\xe5\x0d\x2c\x6f\x60\x79\x03\xbf\x1b\xf8\xdd\x20\x76\x1a\xd8\xdc\xc0\xe3\x06\x12\x37\x90\xb8\x81\xc4\x0d\x24\x6e\x20\x71\x03\x7d\x1b\xe4\x4c\x83\x9c\x69\x60\x70\x03\x83\x1b\xe4\x4c\xe3\xdf\x10\xbc\x0d\x9c\x6e\x10\x3b\x0d\xb4\x6e\xa0\x75\x03\xad\x1b\x38\xdd\xc0\xe9\xc6\xf7\xfe\x46\xd6\x0d\xb4\x6e\x90\xc2\x8c\xcf\xba\x41\x10\x33\xf0\xbb\x81\xdf\x0d\xcc\x6e\x90\xc2\x8c\x4f\xc4\x42\x10\x33\xb0\x98\x81\xc5\x0c\x82\x98\x81\xc8\x0c\x44\x66\x38\x40\x27\x16\x33\xb1\x98\x89\xc2\x4c\x14\x66\xa2\x30\x93\xf5\x64\x8e\xe9\x29\xba\x9e\xb1\xde\x91\xaf\x08\xff\xae\x5e\x61\xae\xa2\xf7\x5d\x9e\x5b\x31\xff\x95\x8c\xbc\x18\xbe\x2b\x25\x49\x81\xa7\xc7\xbe\x5e\xcc\x7f\xa5\x24\xaf\xa2\x31\x19\x9e\xbc\x78\xbe\x1b\xe1\x55\x66\xab\xf8\xff\x2a\x0b\x5f\xf1\xff\x55\x16\xbe\x12\x93\x57\x62\xf2\xc6\xf1\x73\x4f\xb8\x92\xef\x95\x86\xbc\xe1\xde\xe2\xf3\x5a\x33\x4b\x7a\xe9\x4a\x29\x5d\xa7\x83\xeb\x44\x70\xc5\xff\x57\xcc\xcf\xb4\x26\xaf\x12\xee\x15\xff\xdf\xf4\x59\xe9\xb3\xc4\x6c\x17\x93\x77\xa5\x8b\xae\x74\xd1\x95\x28\xba\xd5\xd1\xc5\x55\xe0\xbd\x65\x6e\xd6\x72\x8d\x4f\xa9\xe5\x7f\xc3\xcf\xfd\xa6\x58\xbd\x5b\xe1\x7f\xad\x45\x62\x39\xfa\xd5\x49\x9d\x3a\x99\x47\x25\xaf\x9a\xe4\x4e\xd3\x63\xdf\x83\x08\xea\x8a\xa0\xae\xa2\xdc\xdd\xbd\x56\x5f\x14\xdd\xdd\x56\x33\x14\xdd\x45\xce\xdd\x5d\x7e\xe2\x77\x54\xb8\xbb\xf8\xa7\x8b\x7f\xba\x7d\xe8\xcf\x2b\x5e\xba\xc7\xdf\x48\x81\xee\x8a\x9d\x6e\x9f\x6b\xf2\x1e\x9f\xd5\xe7\x97\x1e\x8f\xd1\x95\x56\x57\x05\x3a\x5e\x5b\x3d\xfa\xdf\x9e\x89\x49\x1a\x35\x51\xbc\x49\x1a\x35\xb1\xbc\x89\xe5\x4d\xfc\x6e\x12\x42\x4d\xe4\x6e\x22\x77\x93\x04\x6a\xe2\x77\x13\xbf\x9b\x24\x50\x13\x95\x8b\x47\xef\xd1\x35\xe1\x9a\x78\xff\xeb\x59\x7d\x9f\x9b\xae\x4c\xef\x99\xae\x4f\xef\x53\xfe\xb7\xfe\x98\xe4\x40\xae\x17\x66\xbd\x30\xeb\x85\x56\x2f\xb4\x7a\xe1\xd4\x7b\x74\xcd\xf6\xfe\xdb\x35\xdb\xa7\x6c\xf7\xb3\x5d\xbf\x5d\x7f\x7c\xee\xf1\xaa\xe3\x3d\x8f\xff\x3d\xfe\xf7\xfa\xdf\xeb\x7f\xaf\xf7\xbc\xde\xf3\x7a\xb7\xeb\xdd\xae\xeb\xff\xd8\xa1\x53\x89\xbb\x4d\xdc\x2d\x26\xbe\x47\xef\xf6\xf9\xdc\xcf\x7d\x7e\xde\xf9\xf3\xce\x9f\x77\xb6\x1a\x50\xad\x4c\x6c\x65\x62\x2b\x13\x5b\x99\x73\xa4\xb1\x8c\xdb\x78\x8c\xd7\xe8\xb5\xd3\x6b\xfd\xc5\xe9\x52\x26\xe6\x32\x31\x97\x89\xb9\xc4\xe2\xf7\xe8\xb5\xfe\xfa\x98\x4b\x74\x7e\x8f\x9e\x22\x33\xbd\x4f\xa3\x79\xa5\x39\x2f\xae\xee\x1e\x3b\xaf\x08\x9c\x61\x5a\x5e\x89\x4f\xde\x74\xc9\x4c\xad\x47\xcf\xaa\x39\x7b\xac\x06\x78\xbb\x7b\xc4\x09\xe2\xf6\x2b\x6e\xbf\x62\xf5\x7b\xac\x0c\xa8\xbb\x2b\x39\x7a\x25\x47\xaf\x42\xeb\xbd\x3e\xf1\xfa\xc4\xeb\x53\x10\x75\xf7\xfa\x94\x6b\xee\x88\xbb\xee\x35\x43\xc5\x57\x57\xba\xf4\x4a\x91\x5e\x44\xdd\xed\x7d\xb0\x47\xff\x6b\x06\x89\x8b\xae\xb4\xe8\x55\x10\xbb\x0a\x62\x57\x2a\xf4\x7e\x76\xea\x5e\xff\xf3\x13\x0b\x7d\x62\x9e\xaf\xff\x8e\xf9\xc9\x29\x7d\x72\x4a\x9f\x6c\xd2\xa7\x6c\xf5\xc9\x1d\x7d\xfd\x7d\xe6\xe7\x9b\xfc\xe4\x70\x3e\xf8\xcf\x07\xf6\xf9\x14\x9d\x3e\x45\xa7\x0f\xe0\xf3\x01\x7c\x3e\xeb\xf6\x27\x57\xf3\x29\x2b\x7d\xd6\x70\x1a\x8d\x49\xa4\x31\x09\x34\x26\x71\xc6\xa4\xbf\x98\x04\x18\x7b\x7c\x3f\xe9\xf7\x04\xf8\x90\x71\x4b\x3a\x6e\x49\xc8\x2d\x09\xb6\x25\xc5\xb6\xa4\xd6\x96\xe4\xda\x92\x5e\x5b\x8f\x7d\xcf\x72\x3b\x9f\xdc\xce\xa7\x30\xf5\x29\x49\x7d\x00\x9f\x0f\xe0\xf3\xc5\xf1\x0e\xbe\x0d\xeb\x3f\x31\xba\x7e\x72\x3c\x6f\x56\x0f\xb4\x6e\x52\x34\x4d\xcc\x6e\x62\x76\x13\xb3\x9b\x98\xdd\xc4\xec\x26\x66\x37\x69\x96\x26\xcd\xd2\xc4\xe6\x26\x36\x37\xb1\xb9\x89\xcd\x4d\x6c\x6e\x62\x73\x13\x8f\x9b\x78\x5c\x3d\x24\x3d\xba\x32\x5d\x99\xae\xb1\xce\xcc\x7f\x63\x9d\x41\xe8\x26\xfd\x52\x9d\x27\x3d\x7a\x4f\xab\x0d\xe2\x56\xff\x49\xe9\x3f\x29\xfd\x27\xa5\xff\xa4\x47\x9f\x68\x6d\xc1\xda\x26\xca\x36\x51\xb6\x89\xb2\x4d\x7c\x6d\xe2\x6b\x13\x5f\xab\x2f\xa5\x47\xd7\x5b\x6d\xf0\xb5\x89\xa9\xd5\xaf\x52\x39\xbf\x3f\x76\x1d\xe8\x66\x29\xdd\x2c\xa5\x9b\xa5\x47\x9f\x6b\x85\x81\x4c\x26\x64\x32\x21\x93\xba\x5c\x4a\x97\x4b\x8f\x61\x2c\xe3\x36\x1e\xe3\x35\xba\xde\x7a\x02\x93\x4c\x68\x64\x42\x23\x13\x1a\xa9\x13\xa6\x74\xc2\x94\x4e\x98\x1e\xbd\xb3\x67\x80\xb2\x64\x42\x20\x13\x02\xa9\x43\xa6\x47\xaf\x0a\xcf\x95\xf9\x25\x67\x48\xaa\x30\x09\x11\x26\x25\xc2\x1e\xfb\x79\x53\x8c\xfa\xa0\x61\x9f\xd2\xd3\xa7\xe8\x44\x3d\x35\x49\xa5\x26\x35\xd4\x24\x87\x9a\xf4\x50\x93\x20\x6a\x52\x44\x4d\x42\xa8\x49\x09\x35\xa9\xa0\x26\x19\xd4\xfc\x64\x1a\x3f\xf8\xd8\x97\xbd\xce\x7c\x22\x90\x4f\x04\xf2\xe5\xf6\xbf\xdb\xab\xb6\xff\x35\x0b\x44\x23\x9f\x0c\xd2\xa7\x4f\xe0\xcb\xeb\x1d\xfc\x16\x79\x5d\xf9\xb9\xc6\x5a\xa1\xf0\x45\x19\x3f\xa9\xe2\x27\xc9\xfa\x24\x34\x9f\x74\xed\x93\xde\x7c\xd2\xb3\x4f\xa2\xf9\x49\xd1\x3e\xe9\xc6\xf7\xf8\xfe\xed\x55\xe5\x1a\x77\x5e\xee\xb6\xca\xff\xba\x4f\x90\xd1\x27\xbf\xf4\xc9\x2c\x7d\x50\xa3\x4f\x66\xe9\x93\x59\xfa\xa0\x46\x5f\xb9\x5b\x51\xcd\x27\x9e\xf9\x64\x8a\x3e\x05\xb1\x0f\x6a\xf4\xed\x5e\x33\x3f\x11\x0e\xbf\xcd\x64\xfb\x97\x2c\xff\x7a\x74\xbd\xbb\xda\x7d\x3a\xe3\xbf\x99\xac\x38\x93\xd7\x60\x8f\xae\xf1\xe9\xd8\x6e\x86\x9e\xc9\x48\xb0\x47\xff\x7b\xfd\xc4\x37\xb6\x3b\x82\xfd\x94\xda\x3e\x19\xa4\x0f\xac\xf4\x9d\x8e\x60\xbf\xf3\x9e\x49\x2b\x06\x1d\xd2\x04\xcf\x26\x1d\x52\x3d\x57\x3d\x7a\xd2\xac\x15\x40\xda\x04\xd2\x26\x84\x36\x7b\xed\x2d\x7d\x59\x3d\xba\xde\x8a\x41\x93\x34\x81\xb4\x09\xa4\x4d\x20\x6d\x42\x68\x13\x42\xab\x77\xab\x47\x57\x8a\x40\x80\xb1\x09\x8c\xd5\xcd\xf5\xa7\xd9\x0a\x9b\x4d\x36\xd0\x3a\xbe\x7a\xf4\x9e\x56\x8f\x75\xbc\x8f\x75\x03\x2a\x9b\x50\x59\x7d\x5f\xa5\xef\xab\x47\x9f\x6b\xdd\x00\xc9\x26\x48\x56\x3f\x58\xe9\x07\xeb\xd1\xab\x44\x2c\x20\xd9\x04\xc9\x26\x48\x36\x41\xb2\xba\xc5\x7a\xf4\xda\x3f\x1b\x7c\x27\x28\x32\x41\x91\x09\x8a\x4c\x50\x64\x82\x22\xf5\x0e\xf5\xb8\x8c\x61\x4c\x63\x19\xb7\xf1\x18\xaf\xd1\xab\xac\x2d\x30\x49\x5d\x46\x3d\x7a\xad\x75\x06\x26\xa9\xef\xa8\x47\xaf\xb5\xe6\x10\xcb\xd4\x89\xd4\xa3\xd7\x5a\x73\xe0\x93\x09\x9f\x4c\xf8\x64\xc2\x27\xf3\xed\x8c\x8a\x4e\x1f\xd8\xed\x3b\xd3\x73\x65\x0d\x11\x2d\x7f\xa2\x9d\xef\xd8\x07\xe5\x1b\x3f\x31\xcf\xa7\x8b\xe0\x13\xd5\x7c\xe2\x99\xef\x98\x4d\x70\xb6\x4f\x6c\xf3\xc9\x3a\x7e\x10\xb6\xef\x7c\x3e\xc5\xac\x97\x7b\xfc\xe4\x1e\x3f\xb1\xcd\x27\xdf\xf8\x01\xd0\xbe\x2b\x36\x00\x9d\xf1\xdd\x4c\x96\x99\xc9\xe9\x32\xd9\x5f\xe6\x07\x3a\xfb\x40\x67\xdf\xcd\xf7\x13\x57\x9a\xb9\xb2\x4c\x9f\xd2\xf1\x77\x7d\xae\xd2\xf1\x77\xad\x99\x72\x4d\x9f\x8e\x82\xef\x1b\x61\xec\xeb\xa1\x6a\x1f\x54\xed\x93\x83\xfa\xe4\xa0\x3e\x25\xe5\x4f\xbc\xf4\xc9\x3e\x7d\x50\xa3\x4f\xf6\xe9\x93\x7d\xfa\x3e\x2b\xaa\xec\xd3\x27\xfb\xf4\x29\x35\x7f\x4a\xcd\x9f\x5c\xd3\x07\x2f\xfa\x44\x56\x9f\xc8\xea\xd3\xd1\x3a\x9c\x26\x86\xd3\xc4\x60\xa2\x30\xf4\xf5\x0d\x27\x88\xe1\xbc\x30\x9c\x17\x86\x2e\xbe\xa1\x8b\x6f\x88\xff\x87\xae\xbc\xc1\xc6\x60\x88\x69\x87\xa8\x60\x88\x0a\x86\x2e\x9d\x21\x12\x18\x3a\x73\x86\x48\x60\xd8\xd3\x87\x3d\x7d\xe8\xb4\x19\xf6\xee\x61\xef\x1e\xf4\xa6\x87\x6e\x96\x61\xf7\x1c\x9a\x00\x86\xbd\x6c\xac\xdf\xa7\xc8\xf3\x66\xb7\x82\xd6\x26\xb4\x56\xe7\x5b\xe9\x7c\xeb\xd1\x95\xd6\x1f\x80\x6d\x02\x6c\x13\x60\xab\x23\xae\x47\xd7\x8b\x55\x48\xab\x26\xc0\x36\x01\xb6\x09\xb0\xd5\x2f\xd7\xa3\x57\x59\x7f\x00\xb6\x09\xb0\x4d\x80\x6d\x02\x6c\x33\xea\x8f\xf8\x8c\xbe\xbb\xd2\x77\xd7\xa3\x77\xb6\x5e\x11\x5e\xd5\x83\xd7\xa3\x77\x16\xd5\x40\x6e\x13\x72\x9b\x90\xdb\x04\xdb\x26\xd8\x36\xc1\xb6\x49\x3d\x33\x21\xb7\x09\xb9\xd5\xb9\xd7\xa3\xeb\xad\x4e\xc0\xdb\x7c\xd1\x20\xe4\x36\xc1\xb6\xba\xfb\x7a\xfc\x63\x06\x5b\x07\x60\x8f\xde\xcd\xaa\x05\xc5\x4d\x28\x6e\xc2\x6f\x13\x7e\xab\x3f\xb0\xc7\xbe\x12\x38\xa9\x4b\xb0\x74\x09\x96\x2e\xc1\xd2\x25\xd8\x63\x5f\x09\x93\xd4\x2b\xd8\xa3\x6b\xac\x30\x34\x34\x75\x0c\x96\x8e\xc1\x1e\xfb\x73\xc1\x92\x09\x96\x4c\xb0\xa4\x4e\xc2\xd2\x49\xd8\xa3\x57\x89\x6a\xa8\x6a\x26\x55\xcd\x21\xc2\x19\x76\xa2\x61\x27\x1a\x76\x96\x61\x25\x1f\x56\xf2\xa1\xd1\x61\x58\xb1\xc7\x7a\xcf\x5e\xaf\xc3\xc3\xba\x3a\xac\x9c\xc3\x3a\x36\x3c\x69\xc3\x5f\x6d\x10\xc7\x1d\x90\xcf\xe1\x9e\x87\x7b\x1e\xac\xd5\x87\x7b\x1b\xee\x6a\xd0\xf4\x1c\xf0\xcc\x41\xd9\x73\x50\xe1\x1c\x34\x37\x07\xc4\x72\xa4\xf7\xa4\x83\x39\x80\x90\x83\xf6\xe5\x00\x3c\x0e\x76\xd3\x83\xdd\xf4\x80\x37\x0e\x60\xe3\x80\x2e\x0e\xe8\xe2\x80\x2b\x0e\xb8\xe2\x80\x2b\x0e\x0a\x84\x03\x74\x36\x40\x67\x03\x5c\x36\xc0\x65\x83\xae\xe0\x00\x97\x0d\x70\xd9\x00\x97\x0d\x28\xd9\x80\x92\x0d\x10\xd9\x00\x91\x0d\xe0\xd8\x00\x82\x0d\x78\xd7\x80\x77\x0d\x60\xd7\x00\x76\x0d\x60\xd7\xa0\xdd\x37\x60\x5c\x83\x5e\xdf\x00\x6d\x0d\x28\xd6\x28\xbf\x23\xfd\xbd\x01\xc5\x1a\x20\xac\x41\x97\x6d\x00\xaf\x06\x45\xb6\xc1\x50\x77\x00\xac\x06\x6d\xb5\x41\x01\x6d\x50\x40\x1b\xc0\x96\x01\x6c\x19\x90\x96\x01\x69\x19\x90\x96\x01\x69\x19\x4c\x6b\x07\x74\x65\x40\x57\x06\x74\x65\x40\x57\x06\x74\x65\x40\x57\x06\x43\xda\x01\x5a\x49\x38\x6d\xfa\xab\xe9\x4d\xed\xd1\xf3\x66\x6d\x81\xd6\x26\xb4\x36\xa1\xb5\x99\xbf\xaf\xf2\x94\x8a\x6d\x00\xb6\x09\xb0\xd5\xd7\x5a\xfa\x5a\x7b\xf4\x2a\x2b\x8c\xbf\x7e\x52\x5c\x4d\xc8\x6d\x42\x6e\xf5\xbe\xf6\xe8\xb5\x56\x18\xc8\x6d\x76\x24\xfc\xa7\xd9\x4a\x95\x35\xc1\xb9\x49\x95\x35\x3d\x57\x49\x9b\x35\xe1\xba\x09\xd7\x4d\xb8\x6e\xaa\xe3\x27\x85\xd6\x04\xe4\x26\x85\xd6\xa4\xd0\x9a\xe0\x5c\x5d\xb8\x3d\x7a\xad\x35\x07\xa2\x9b\x10\xdd\x84\xe8\x26\x44\x37\x21\xba\x3a\x75\x7b\x74\xbd\x58\xa8\x23\xf0\x3f\xde\xb9\x18\x89\x0e\xa7\xfe\xde\x1e\xbd\x9b\xd5\xc6\x33\x9f\x9e\xf9\x04\xf3\xea\xfe\x2d\xdd\xbf\x3d\xba\x5e\xe4\x63\x46\xa4\x19\x91\x60\xde\x04\xf3\xa6\x79\x91\xe6\x45\xc2\x78\xd3\xbc\x48\xf3\x22\xc1\x98\x09\xc3\x4c\x18\x66\x9a\x29\xba\x88\x7b\x74\xbd\xb5\xc8\x7c\x49\x33\x25\x61\x98\x09\xc0\x1c\x34\xef\x06\xd0\x69\xc0\x97\x06\x58\x69\x40\x90\x06\x04\x69\x80\x8f\x06\xec\x68\x50\xa6\x1b\x20\xa3\x01\x32\x1a\x34\xe9\x06\x68\x68\xc0\x85\x06\x5c\x68\x00\x85\x06\x65\xb2\x01\x17\x1a\x70\xa1\x01\x17\x1a\x70\xa1\x01\x14\x1a\x40\xa1\x01\x14\x1a\xd4\xc8\x06\x38\x68\x40\x81\x06\x5a\x63\xa0\x35\x06\x4e\x63\xe0\x34\x06\x06\x63\x60\x30\x06\xee\x62\xa0\x2c\x06\xca\x62\xa0\x2c\x06\xbe\x62\xa0\x26\x86\x1c\xe6\x40\x4d\x0c\xbc\xc4\x40\x4a\x0c\x8c\xc4\xa0\xda\x35\x70\x11\x03\x0b\x31\x90\x0f\x03\xb7\x30\x18\xa8\x0e\xdc\xc2\xc0\x2d\x0c\xdc\xc2\x40\x26\x0c\x64\xc2\x40\x23\x8c\xf3\xee\xbf\xff\xa6\x83\x92\xd2\xa0\x92\x34\xd4\x7c\x07\xed\xa3\xa1\xb6\x3b\xd4\x70\x07\xd3\xc8\xa1\x86\x3b\x54\x6f\x07\xcd\xa2\xa1\x02\x3b\x54\x5d\x87\x1a\xeb\x60\xd5\x38\xd4\x4f\x87\xca\xe9\x50\x33\x1d\xd4\x84\x86\xba\xe7\x50\xeb\x1c\x2a\x9b\x43\x65\x73\xa8\x6c\x0e\xb5\xcb\xa1\x76\x39\x54\x2d\x87\x7a\xe5\xa0\x1d\x33\x54\x27\x07\x8b\xbd\xf1\xf9\xe6\xd5\x8c\xc6\xe7\x9e\x55\x8b\x86\x6a\xd1\xa0\xf6\x92\xd6\xd8\x84\xeb\xa6\x95\x36\xad\xb4\x09\xd7\x4d\xb8\x6e\x02\x75\x13\xa8\x9b\x94\x5a\x75\xb3\xf7\xe8\x7a\x6b\x0e\xfc\x36\xe1\xb7\xfa\xdb\x4b\x7f\x7b\xe9\x6f\xef\xd1\xa7\x58\x73\x20\xb7\x3a\xde\x4b\xc7\x7b\x8f\xae\xb4\xc2\x58\xb7\x75\xbf\xff\x69\xb6\x82\x73\x13\x9c\x9b\x56\xf8\x84\xe8\x26\x45\xd6\x04\xea\xea\x9f\xef\xd1\x3b\x5b\x61\xac\xff\x49\x91\x35\x29\xb2\x26\x2c\x37\x29\xb2\xa6\x7d\x21\xed\x0b\x09\xd4\x4d\xbb\x43\x02\x75\xd3\x1e\x91\x40\xdd\x04\xea\x66\x89\x6a\xec\x1a\x09\xda\xcd\xde\x3b\xfe\x78\xe7\xe2\x1f\x60\x6f\x02\x7b\x13\xd8\x9b\x90\xde\x84\xf4\xea\xf6\xef\xd1\x95\x62\x1b\x5a\x9f\x09\xe9\xd5\xff\x5f\xfa\xff\x7b\x9c\xc6\x65\x0c\xe3\x36\xf6\x95\x60\x5e\x8a\x00\x3d\xba\xc6\x0a\x03\xcf\x4c\x78\x26\x75\x80\x1e\xbd\xa7\x55\xc5\xce\x95\x60\xcc\x84\x61\x26\x0c\x33\x61\x98\x43\x25\x71\xd0\xfd\x19\x2a\x86\x43\xbd\x6f\x50\xf0\x19\x6a\x7c\x83\x16\xcf\x50\xd1\x1b\x14\x76\x86\x2a\xde\x50\xad\x1b\xaa\x75\x43\x9d\x6e\xd0\xca\x19\x34\x71\x86\x5a\xdb\x60\x38\x37\xd4\xd4\x86\xaa\xd9\x50\x35\x1b\xea\x65\x43\xa5\x6c\xa8\x91\x4d\x1a\x25\x53\x75\x6c\x32\x87\x9b\x2a\x1a\x53\xfd\x62\xaa\x5f\x4c\xfa\x23\x53\xfd\x82\x84\x6e\x8f\xdb\x78\x8c\xef\x4a\xef\xc6\xf0\x51\x2d\x63\x3a\x89\xcc\xc1\xc4\xd5\x49\x84\xde\x6e\x91\xd9\x2d\xfa\xb9\x45\x40\xb7\xe8\xe6\x16\xa5\xdc\x22\x95\x5b\xb4\x72\x8b\x9a\x6d\x91\xb3\x2d\x7a\xb6\x45\xc6\xb6\xe8\xd8\x16\x21\xdb\xa2\x64\x5b\xb4\x6b\x8b\x6e\x6d\x11\xae\x2d\x7a\xb5\x45\xab\xb6\x88\xd5\x16\xb5\xda\xa2\x54\x5b\x53\xce\x9f\x3c\x6e\x8f\xc7\xf8\x7e\xde\xaf\x95\xed\x9f\xf2\xf9\x53\x3e\x7f\xca\xe1\x4f\xd9\xd7\x29\xa7\x3a\xe5\x54\xa7\x6c\xea\x74\x6e\x9a\xce\x4d\xd3\x59\x69\xca\x9d\x4e\xca\x05\x53\xbe\x74\x3a\x37\x4d\x0e\x4d\xd3\x59\x69\xd2\x0e\x98\x94\x02\xa6\xbc\xe5\xd4\x78\x3d\xe5\x12\xa7\x66\xeb\x29\x67\x38\x5f\xb6\x50\x14\x44\x63\xa2\x47\xcf\x98\xf5\x44\xcc\x93\x2f\xe6\x01\xea\xd2\x9b\x28\x7a\x13\x3d\x7a\x0e\xad\x27\x20\xdc\x04\xe1\xd2\x9e\xa8\x84\xdf\x26\xfc\x36\x81\xb7\x09\xbc\x4d\xe0\x2d\x4d\x8a\x1e\x5d\x6f\xad\xb0\xf7\x25\xd8\x36\x61\xb6\x14\x07\xfe\x34\x5b\xed\x92\xf4\x08\x2a\xed\x92\x49\xbf\x35\xc1\xb6\x09\xb6\x4d\xb0\x2d\xb5\x82\xa2\x56\xd0\xa3\x57\x59\x25\x28\x7d\x26\xa5\xcf\x04\xde\x26\xa5\x4f\x8a\x06\x3d\x7a\xad\x75\xc0\xae\x9a\x76\xd5\xb4\xab\x26\xd5\xcf\x84\xe2\x26\xd5\xcf\xb4\xc3\x66\xef\xb0\x7f\xbc\x73\xf1\x09\x5c\x37\xe1\xba\x09\xd7\x4d\x3b\x72\xc2\x75\x13\xae\x9b\x70\xdd\xb4\x47\x27\x5c\x37\xe1\xba\x09\xd7\x4d\xb8\x6e\xbe\x3c\x1b\x5c\x37\xe9\x7d\xa6\xdd\x3c\xed\xe6\x89\xbd\x4c\x7b\x7a\xda\xd3\x13\x7b\x99\xd8\xcb\xc4\x5e\xe6\xb1\xe3\x20\x30\x13\x81\x99\x08\xcc\xb4\xfb\xa7\xdd\x3f\x11\x98\xf9\xcc\xde\x39\x1b\x4d\xce\x46\x53\x56\x79\xca\x27\x4f\xf9\xe4\xe9\x54\x35\xe5\x8d\x27\x17\xa2\xe9\x84\x35\x65\xf3\xa6\x6c\xde\x94\xc7\x9b\x32\x78\x53\xb3\xfb\xd4\xbc\x3e\xe5\xdc\xa6\xdc\xda\xd4\x8c\x3e\x9d\xc5\xa6\xb3\xd8\x74\x0a\x9b\xb2\x4f\x53\xf6\x69\xca\x38\x4d\xf9\xa5\x29\xb3\x34\xe5\x01\xa6\x3c\xc0\x94\x01\x98\xce\xfe\xd3\xd9\x7f\x3a\xfb\x4f\xe7\xfd\xa9\xa1\x76\x3a\xf5\x4f\x27\xfa\xe9\x0c\x3e\x9d\xbe\xa7\x73\xf7\xd4\xcc\x3a\x9d\x70\xa7\x13\xee\x0c\xf3\x5d\x0b\xe0\x74\x7a\x9d\x4e\xa9\x93\xdf\xc3\x74\x4a\x9d\xce\x7a\xd3\x29\x6f\x3a\x81\x4e\xa7\xce\x29\xce\x9f\x62\xf8\x29\x86\x9f\xfc\x12\xa6\x38\x7c\x8a\xc3\xa7\x38\x7c\x8a\xb4\xa7\x48\x7b\x8a\xb1\xa7\xe8\x7a\x3a\xf1\x4d\x71\xec\x74\x82\x9b\xce\x5c\xd3\xbe\x3f\x35\xdc\x4c\xfb\xfb\xb4\x8f\x4f\xfb\xf8\xb4\x83\x4f\x7b\xee\xb4\xc3\x4e\xfb\xe9\xac\xf7\x6e\xd6\x34\xfb\xda\xa4\x5e\x3d\xed\x5f\xd3\x3e\x35\xb5\x9e\x4c\xfb\xd4\xb4\x43\x4d\xb1\xeb\x34\xd3\x27\xb8\x7e\x9a\xd7\xd3\xbc\x9e\x66\xf4\xa4\x38\x33\x69\x2e\x4f\xc8\x7c\x22\x75\x13\xa9\x4b\x25\xa4\xa8\x84\xf4\xe8\xe9\x8a\x77\x8d\xa7\xd1\x3a\x23\x86\x4c\xe4\x6d\x8a\x24\x13\x6d\x4b\x49\xa4\x12\x67\x4b\x49\xa4\x28\x89\x14\x25\x91\x1e\xbd\xa7\x75\x06\x61\x9b\x08\x5b\xda\x22\x3d\xba\x52\x04\x82\xaa\xcd\x7f\x83\xaa\xcd\xf3\xee\xdf\x6a\x23\x46\x4d\x84\x6d\x8a\x54\x13\x55\x4b\xaf\xa4\x47\xd7\x58\x5b\x44\xad\xb4\x4b\x7a\xf4\xb9\xd6\x16\x0c\x6d\x62\x68\x13\x3d\x9b\xe8\xd9\x44\xcf\x26\x6e\x36\x71\xb3\x89\x9b\xa5\x75\xd2\xa3\xeb\xad\x15\xe2\xde\xbc\x7f\x36\x3b\x4a\x3c\x24\x9d\x94\xa2\x93\xd2\xa3\xd7\x5a\x2b\x50\x91\x94\x53\x7a\x4c\x63\x19\x5d\x6f\x7d\xc0\x43\x26\x5d\xd0\x44\x45\x26\x5d\xd0\x14\x57\xa7\xb8\x3a\x11\x92\x29\xba\x4e\x84\x64\x62\x23\x13\x1b\x99\x6c\xd8\x13\x21\x99\x08\xc9\x44\x48\xa6\x08\x3c\x45\xe0\x89\x81\x4c\x0c\x64\xe2\x1e\xf3\x19\xb0\x5b\xdb\xa7\xb5\x7d\x5a\xd5\xa7\x55\x7d\x5a\xcf\xa7\xf5\x7c\x5a\xc3\xa7\xd5\x7b\x5a\xb7\xa7\xb5\x7a\x5a\x93\xa7\xb3\xcf\x74\xea\x99\xfb\x3d\xdb\xcf\xe2\xde\xcc\xb5\xa2\x4e\xab\xe8\xb4\x66\x4e\x2b\xe1\xb4\x12\x4e\x6b\xe0\xb4\x06\x4e\x6b\xe0\x74\xf6\x99\xce\x3b\xd3\xf3\x36\x51\xd0\xd3\xdf\x71\x22\x9f\xe7\x79\x26\xda\xde\x9f\x9a\xeb\xf4\xfd\x4f\xdf\xff\xf4\xfd\x4f\x67\x93\xe9\x77\x9f\xce\x1d\xf3\x3e\xeb\x67\xf3\x0e\x69\x36\xe9\x48\x4e\x67\x84\x49\x17\x72\x22\xc7\x26\x66\x6c\x8a\xf4\x26\x5a\x6c\x8a\xf4\x26\x36\x6c\x8a\xf7\xa6\x18\x6f\x8a\xeb\xa6\xf8\x6d\x8a\xd9\x26\xd5\xc2\x29\x72\x5b\xff\x7a\x7e\xbe\xcf\x0f\xf7\x39\xd8\xb2\xee\x24\xea\x28\xad\xbb\x04\x56\x4b\x42\x77\x91\x59\x5b\x02\xab\x25\xa4\x5a\xc2\xa2\x35\x9e\x25\xdf\x7a\x36\x92\xcf\xc8\xef\xd9\xf3\x31\xef\x23\x79\x2b\xf4\x58\x36\x81\x25\xcd\xb6\x14\x79\x96\x0d\x61\x2d\xaf\xa2\x81\xb2\x14\x6d\x96\xa2\xcd\xa2\x5d\xb2\x6c\x08\x4b\x11\x66\x51\x2d\x59\xca\x2f\xcb\x16\xb1\x24\xe7\x96\x02\xcb\x7a\xa5\x15\x90\x6c\x82\x64\x13\x24\x9b\xf0\x58\x12\x40\x3d\x7a\x24\x2d\x18\xf0\xd8\x74\xc8\x4b\x48\x2c\x69\xa0\x1e\xfd\xaf\x45\xc2\x9f\x85\x34\x50\x91\x06\xaa\x04\xb7\x26\xb8\x95\x40\x50\x8f\xae\x11\x68\x00\x5a\x13\xd0\x9a\x80\x56\xf2\x41\x3d\xfe\xb9\xac\x0d\x77\xcd\xfb\x7e\x0b\x01\x88\xe3\x63\xc2\x5d\x93\x97\x7b\xc2\x5d\x13\xee\x4a\x92\xa8\x48\x12\xf5\xe8\x7a\x0b\x06\xdc\x35\xe1\xae\x44\x8a\x7a\x5c\xc6\x30\xa6\xb1\x8c\xdb\x78\x8c\xd7\xe8\x55\x96\x07\x18\x63\x7e\x7f\xb6\x25\x49\xc7\xd6\x04\x39\xa6\x47\x35\xe1\x8d\xe9\x51\xcd\x77\x9c\xf5\xc0\x26\xc8\x31\x3d\xb6\x09\x6f\x4c\x78\x63\x7a\x78\x13\xd8\x98\xc0\xc6\x24\x46\x9a\xd0\xc5\x84\x2e\x12\x56\xea\xd1\xf5\x16\x0c\x00\x63\x02\x18\x13\xba\x48\x76\xa9\x47\x57\xfa\xeb\x9b\x0a\x24\x98\x2a\x01\x8c\x49\x5c\x34\x61\x8c\xf9\x64\x45\x85\x15\x4b\x39\x6e\x29\xc7\x2d\x89\xde\x25\xd1\xbb\x94\xd1\x96\xa2\xd9\x52\x10\x5b\x0a\x62\x4b\x29\x6c\x09\x46\x96\x60\x64\x09\x43\xd6\x73\xc8\x53\xce\x5a\x82\x91\x15\xf1\x5c\xd9\x5c\x4f\x62\x54\x1a\x9e\xdf\x58\x71\x17\x2b\x9e\x61\xc5\x33\xac\xb8\x85\x15\xb7\xb0\xe2\x16\x56\x9c\xc0\x8a\x13\x58\x71\xff\x2a\x5e\x5f\xc5\xc1\xab\x38\x78\x15\xef\xae\xe2\xda\x55\x1c\xb9\x7a\x7c\x66\x4c\xcf\x74\xc9\x95\xfb\x99\xdb\xb8\xde\xfc\x95\x48\x63\x1e\x54\xac\x82\x8a\x01\x50\x31\x00\x2a\xd6\x3f\xc5\xf4\xa7\x18\xfa\x14\xfb\x9e\x62\xd6\x53\x4b\xd0\xb1\x84\x12\xcb\x41\x7c\x09\x28\x96\xd4\xec\xd2\x0d\xbb\x1c\x9a\x57\x3d\x41\xfc\xf1\xec\x2a\x9e\xb5\x04\x11\x7c\x92\xd2\x12\xae\xcb\x81\x63\x49\x8f\x2d\xdd\x7d\xcb\x91\x62\x09\x34\x96\xe0\x62\x59\xf8\x97\x65\x7e\xed\x27\xc5\xed\x7b\x10\xd8\x2e\x8b\xf7\x92\xa6\x5a\xda\x83\x96\x70\x63\x09\x37\x96\xb0\x62\x69\xdf\x59\x82\x88\x25\x05\xb5\x84\x06\xcb\xf6\xbe\x6c\xef\x4b\xf2\x69\xd9\xd2\x97\x84\xd3\xd2\xfe\xb2\x6c\xda\xeb\x6d\xda\x00\xd8\x84\xbe\x26\xf4\x35\xa1\xaf\x49\x7e\x36\x01\xb0\x49\x7e\x36\x1d\xac\xd3\xc1\x3a\x61\xb0\xe9\x78\x9d\x30\xd8\x84\xb8\x26\x27\xff\x84\xb8\x26\xc4\x35\x21\xae\x69\xf1\x4e\x87\xef\x04\xba\x26\xd0\x35\x21\xae\x09\x71\x25\x26\xd6\xa3\x2b\xef\x9f\x8f\x4d\xdf\xbb\x7f\x2b\x09\x00\x96\x04\x59\x8f\x3e\xd7\x1a\xe2\x28\x9f\xa0\xd7\xea\x8d\xa2\x30\xaf\x44\xc9\x7a\x4c\x63\x19\xb7\xf1\x18\xbf\x1e\x7b\xf1\x28\x14\x63\xe1\x17\x0b\xbf\x58\xf8\xc5\xa2\x42\x5a\xb2\x00\x45\x85\x94\xa0\x59\x8f\x7f\x5c\x20\x0b\xef\x58\xf2\x05\x25\x5f\x50\xf2\x05\x25\x5f\x50\xf2\x05\x25\x53\x50\x32\x05\x44\xd2\x8a\x48\x5a\x8f\xee\x21\xbc\x2a\xde\x95\x3e\x3d\x5d\x99\xae\x4c\x57\xa6\x6b\xd2\x3b\xa7\x77\x4e\xd7\xa7\xeb\xcb\xfb\x97\x57\x95\x57\x95\x57\x95\xf7\x2f\xaf\x2d\xaf\x2d\xaf\x2a\xaf\xda\x4f\x5d\x9d\x6e\xb4\x09\x2a\x4e\x5a\x22\xa4\x25\x42\x5a\x22\xa4\x25\x17\xb9\x74\x80\x2c\x31\xd0\xb2\xa1\x2d\x5b\xd6\x92\x97\x5c\x7a\x39\xd6\x7d\xef\xe9\xb1\xd5\x77\xb1\x6c\x4a\xcb\xa6\xb4\x6c\x3b\x4b\x2e\x72\xd9\x4c\x96\x0d\x84\xd5\x72\xb1\x5a\x2e\x26\xcb\xc5\x64\xb9\x98\x2c\x17\x03\xe5\x62\xa0\x5c\xcb\x92\xbc\x3c\xbc\xcb\xc3\xbb\x3c\xb0\x0b\x8d\xbd\x3c\xb0\x4b\x3e\x68\xa1\xae\x97\x87\x71\x89\x33\x96\x47\x72\xbd\x38\x43\x86\x68\x3d\x96\xfa\x5f\x4f\xbe\x96\x98\xa9\xf6\x1c\x8f\x49\x78\x4c\xc2\x83\x10\x4a\xcf\xe1\x8f\x19\x92\x3c\x01\x55\x0d\x7f\xae\x10\xa3\x84\x3f\x5a\xf8\xb3\x84\x34\x4e\x48\xe3\x84\x04\x4e\xb0\x26\x0f\x89\x9a\x80\x71\x86\x44\x4d\x8c\xa7\x48\x37\x9e\x14\x26\xa5\xba\xf1\x24\x2c\x9f\x6c\x25\x31\xc4\xf5\x24\x26\x9f\x04\xe4\x13\x6d\xf4\x73\xc8\xfa\x7c\x1a\x66\x9a\x86\x1c\x7e\x59\xe5\x17\xb3\xfa\x62\x56\x5f\xcc\xea\x8b\x4d\x7d\x31\xa8\x2f\xf6\xf2\xc5\x29\xbe\xd8\xec\x57\x88\x66\x42\x04\x13\xeb\x29\x15\x69\x82\xe3\x62\x1a\x4a\x8a\x61\xa7\x29\xf1\x56\x81\x66\x0b\x34\x5b\x70\xd9\x82\xcb\x96\xa4\x56\x49\x6a\x15\x50\xb6\xc8\xd1\x16\x5c\xb6\xa4\xb9\xe8\xfc\xf5\xe8\xfa\xe3\x3d\x8f\x57\x5d\xef\x79\x5d\x79\x5d\x73\x5d\x73\x5d\x73\x5d\xf3\x79\xe7\xcf\x3b\x7f\xae\xfc\xbc\xe7\xf7\xc7\x55\xa6\x24\xc4\x0a\x22\x5b\xe0\xd8\x02\xc7\x16\x38\xb6\xfc\x15\xca\x5f\xa1\xc0\xb1\x25\x5d\x56\x12\x65\x25\x51\x56\xfe\x2e\x05\x85\x2d\x28\x6c\x49\x9d\x95\xd4\x59\x41\x61\x0b\x0a\x5b\x50\xc6\x82\x32\x52\x2e\x2c\x9a\x85\x3d\xfa\x5c\xcb\x80\xc4\x1a\xfd\xc2\x3f\xdd\xb9\xe4\x5b\xc1\x17\x69\x1c\xf6\xe8\x1d\x2c\x0f\x12\x71\x05\x5a\x28\xf8\x22\xed\xba\x2a\xe9\xb8\x22\x21\x5a\x9e\x9c\x82\x26\x16\x34\xb1\x20\x0d\x05\x50\x2c\xe2\xa1\xe5\xb9\x2a\xa6\xea\x05\x59\x2c\xc8\x62\xc1\x14\x0b\xa6\x58\x9e\xba\x02\x2b\x16\x58\xb1\x24\xf7\x0a\xb2\x58\x90\xc5\x82\x2c\x16\x58\xb1\x9e\x18\xa8\x94\x48\x80\x70\x02\x7e\x13\xc0\x9b\x10\x8b\x84\x22\x75\x88\x48\x02\xde\x10\xf0\x83\x90\xfa\x08\xc5\xeb\x50\xbc\x0e\x36\x9c\x01\x24\x88\x78\x5a\x3b\x66\x8a\x44\x47\x28\x6a\x87\xf8\x23\x24\x37\x42\x49\x3d\x14\x46\x43\x49\x34\x94\x3b\x83\x09\x65\x28\x74\x86\xb2\x66\x28\x6b\x86\xd4\x47\x28\x4a\x86\x72\x64\x88\x51\x42\x1a\x24\x24\x40\x42\x02\x24\x94\x17\x43\xc9\x3b\xd8\xf3\x05\x7b\xbe\x50\x10\x0c\x71\x4c\x88\x63\x42\x04\x13\x4a\x72\x21\x01\x12\x12\x20\xa1\x78\x11\x8a\x11\xa1\x0c\x11\xd2\x20\xa1\xd0\x10\x4a\x0c\x21\x8e\x09\x25\x86\x10\xc7\x84\xf2\x41\x28\x0a\x84\x98\x26\xea\xbd\xbf\x95\xa4\x9e\x9a\x82\x39\x2b\x55\x12\xd2\xf8\x21\xb2\x09\xd1\x4c\x48\x99\xc6\x93\xdf\x95\x0c\x09\x49\xcb\x50\xce\x0b\x47\xd7\x90\x7e\x0c\x89\xc7\x90\x72\x0c\xa9\xc5\x70\x80\x8d\xfd\xda\x66\xd7\x6b\x46\x7e\x2d\xc3\xaf\x41\x58\x23\xad\xfb\x3f\xaf\x99\xce\xba\xe1\xc8\x19\x0e\x9b\xa1\x10\x16\xac\x3d\xc2\x11\x3e\x1c\xde\xc3\x16\x14\xb6\x9d\xb0\xb1\xd0\x5c\xec\xf1\xfd\xdb\xd3\x75\x3d\x57\x56\x06\xa2\xb1\xb4\x18\x7b\xf4\xf4\x5a\x19\xe0\xac\x05\x61\xa5\xd1\xd8\xa3\x6b\xcc\x7a\x69\x67\x4a\x8d\x3d\x2e\xe3\xff\x05\xd7\xb6\xbf\xc3\xff\x85\xa1\x42\xf8\x10\x82\x82\xb8\xe6\x8e\xf3\x64\xdc\xd7\xf4\xe4\x59\x72\x4a\x0c\xe1\x40\x38\xd7\x85\xb3\x5c\x28\x30\x05\xd3\x88\x70\x1e\x0b\xe7\xae\x60\xfc\x10\x4e\x5c\xe1\x94\x15\x0a\x4c\xe1\x94\x15\xec\x19\x42\x7c\x1c\x22\xe3\x10\x44\x84\x18\x37\x84\x12\x21\x41\x11\x2f\x42\xfd\xd7\xeb\xaf\xd2\x93\xe1\xd0\x2a\x70\x48\x6a\xf6\x29\x8e\x4c\x11\x64\xaa\x23\xa5\x90\x21\xd5\x8b\x52\x14\xc8\x8b\xa1\xb8\x30\xf4\xe8\x7f\x1d\x0f\x45\x78\x29\xb6\xe3\xc2\x50\x5c\x18\x8a\xe7\x42\x8f\xaf\xeb\xe5\xf5\xa3\x78\x9f\xfd\xba\x4f\xbc\x9b\x10\xdd\xd6\xca\x67\xa1\xf8\x2c\x54\xda\x48\x93\xba\x7b\xda\x34\x92\x12\x35\xdf\x84\xe2\x98\x50\x49\x47\x3a\x6d\x05\x69\x13\xe0\x98\x50\x1c\x13\x7a\x7c\xf4\xba\x9f\xfb\x2c\x35\x9c\x44\xbd\xe5\x7c\xef\x2c\x6b\x68\x0a\xe6\x7c\x74\xa7\x8a\x81\xaa\x4e\x62\xe2\x92\x30\x2e\x07\x84\xe2\x80\x50\xf9\xf8\x38\xe1\x49\x12\xa8\x4d\xd2\xb4\x29\x18\x49\x89\x17\x7e\x07\xc5\xe9\xa0\xf8\x1a\xf4\x88\x42\x95\xe8\x58\xe7\xef\xc4\xfd\xa7\x0f\x95\xeb\x91\x80\xe3\x51\x93\x8f\x76\x7c\x04\x22\x8e\x6f\x3f\x66\xf0\x71\x82\xae\x71\xfc\x94\xb8\x48\x89\x0b\x5e\x00\x3d\x62\x73\x3c\x99\xe4\x11\x53\xca\x22\xd1\x70\x5c\x00\x8a\xfe\x7f\xa5\xf0\x21\x05\x08\x69\x7b\xa7\xe7\x5f\x94\xfc\x2b\x25\x25\x32\x5f\x8d\xdd\x13\xae\xe2\x41\xc3\xbf\xb2\x7e\x29\x09\xd5\xf8\xf5\xd8\x07\x3f\x8f\x47\x34\xf8\x5f\xf3\x0e\x77\x96\xa4\xc4\xd2\x36\x9e\x52\x13\xd4\xfb\x8b\x6e\x7f\x25\xe1\xad\x24\xbc\x95\x24\xb7\x28\xf6\x57\x4a\x56\x24\x8e\x8c\x4a\x7f\x51\xe6\xef\xd1\xff\xfa\x44\xa4\x58\x92\x37\xa2\xcf\x5f\x29\x89\x41\x93\xbf\x68\xf2\x17\x35\xfe\x4a\xd2\x42\x89\xf1\x49\xa2\x42\x4f\x99\x9f\xca\x7a\xa5\xa0\x20\xf7\xab\x00\x58\xcd\x24\x31\x28\xab\x17\x35\xf5\x1e\xfd\xdc\xfb\x23\x6b\x12\x59\x43\x59\xbd\x52\x42\x23\xe9\x8b\xd0\x54\x2f\x6a\xea\x95\x12\x1a\x89\xa6\x49\xfa\x1f\x49\xff\x23\x25\x37\x52\x72\x83\xbe\x7a\xd1\x57\xaf\xa4\xc9\x91\xc8\x9a\xa4\xac\x90\x82\x8b\x14\x5c\xa4\xb0\x82\xd6\xfa\x7f\xff\xa9\xfd\x3b\xfc\x67\xd7\x04\xc1\x63\x62\xa6\x52\x6e\x22\xe5\x26\x68\xec\x17\x75\xfd\x4a\x59\x89\x94\x95\x48\xb4\x54\xd2\x96\xa0\xb1\x5f\xd4\xf5\x7b\x7c\x09\x76\x3f\xf7\x34\x52\x80\x48\x2a\x0e\x29\x00\x49\xa1\x47\xde\x97\x7a\x1a\x2f\x05\x2d\x19\x35\x5f\x8a\x58\x7a\xca\x4c\x57\xf1\xa0\xb7\x5f\x89\x6a\x49\x3d\xeb\xf4\xf6\x2b\x05\x1d\xf4\xf6\x2b\x05\x1d\x89\x64\x49\x99\x8b\x14\x68\xa4\x9c\x05\x35\xfe\xa2\xc3\x5f\x29\x4f\x91\xf2\x14\xd4\xf8\x8b\x10\x7f\x8f\x2f\x57\xe5\xb8\x3c\x5f\xbe\xc9\x51\x78\xb9\x26\xfc\x24\x5e\x9e\xc8\x71\x39\x5f\x26\xe8\x1d\xd0\xfd\x7b\x3b\x34\xef\x77\xf8\x7e\xc7\x6e\x57\x0a\xba\xf5\xad\x92\xe0\xef\xe3\xb2\xff\xfd\xfc\xe4\x05\xd4\x82\x68\x89\x8a\xd2\x27\x5a\x3a\x44\x4b\xba\xa2\xf8\x6e\x90\xec\xef\xd1\xf5\x72\x61\xfa\xf6\x4a\xdf\x5e\xa1\x48\x0a\x45\x42\xb8\xbf\x48\xf6\xd7\x13\xeb\x2f\x91\x49\xcd\x77\x08\xa8\x77\xf4\xf4\x6e\xee\x59\x34\x52\xe2\x90\xd2\x15\x47\xa2\xbd\x88\xb3\x77\x98\xef\x55\xee\x56\x07\x1b\x89\xf6\xff\xfe\x53\xfb\x77\xf8\x3b\xfc\x1d\xfe\x0e\x7f\x87\xff\x7f\x58\x63\xdd\xfa\x59\x23\xe2\xfb\x59\xa3\x63\xe1\x35\x3a\xba\x5c\x08\xc2\x35\xf3\x9e\x9f\x35\xf7\x9a\x3f\x6b\x9e\x88\x9f\xb5\xc6\xaa\x9f\x25\x9d\xbd\x88\x6c\xaf\xbd\xf2\xfc\xac\x5d\x35\x8c\xf3\x67\xed\x8e\x94\xd7\xc9\x7d\x7f\xd6\xb7\x23\x7f\x42\x37\x57\xcc\xf5\xad\x9f\x20\xa0\x1d\x44\x80\x43\xf1\x39\xec\xcc\x51\x71\xd7\x4f\xec\xde\x2d\x63\x47\xff\x7c\x6f\xe3\x8d\xfb\x13\x7a\x8c\x17\x9a\x73\xcd\x3e\x79\x2c\x9c\xd3\xc2\xe7\x2d\x7b\xfe\x3a\x75\x47\x7f\x62\x9e\x9f\xe0\x14\x17\xb5\xea\xf6\xd8\xef\x4c\x3f\x65\x8d\xa8\xea\xf7\x19\xeb\x67\xf1\xb9\x5e\x9c\x39\x17\x67\xbc\xa5\xbb\x7b\x39\x55\x2f\xd5\xa2\x55\x7d\x6e\x58\x3b\xe3\xfa\xbd\xf2\x67\xed\xd3\xf7\x70\x6b\x9f\x9f\x18\xeb\xee\x9f\x18\x79\xea\x27\x30\xb2\x31\x57\xdf\xbf\xef\x2d\x66\x47\xd3\xc1\x69\x33\x98\x11\x04\x03\x82\x60\x25\x10\x77\x7d\xfd\x6d\x8f\xd3\xf7\xd3\xb1\xcc\xda\x51\xdf\xcf\xba\x7d\x5e\x0f\xa4\x78\x20\xbd\x82\xd6\x55\x48\xc1\x07\xf2\x32\xee\x5d\xfd\x0d\xac\xfe\x06\x56\xf4\x37\xbf\xea\x8c\x9f\x45\x0f\x6b\x81\x14\x96\xba\xd8\x12\x0b\xac\xfa\xaa\xef\xbc\x4e\xff\x5d\x56\xff\x16\x77\xf6\x5f\xf6\xfb\x4e\xdf\xff\x8c\xd9\xbf\x45\xf4\x6f\xb1\xfb\xfe\xd7\xe8\xef\xed\x8c\xf8\x7e\x82\xe6\x54\x9c\xef\x8c\x9f\x44\xc0\xff\xf7\x9f\xda\xbf\xc3\x7f\x74\x4d\x98\xeb\xf6\xec\x3e\xab\x67\x6e\xcf\x94\xe0\x6e\x1a\x27\xfb\xd9\xa0\x4c\xb4\x66\xc7\xa7\x6b\x99\x1d\x9c\x27\x17\x4d\xcf\x45\xf9\x6e\xe9\xc7\x5e\xfa\x09\x97\x7e\xbf\x05\xaf\x58\xe7\x64\xf4\x7b\x1e\xef\xdc\x73\x67\x7e\xfb\xfe\x44\x2f\x37\x3d\x9a\x2f\x7d\x26\x0e\x45\xb8\x60\xb9\x12\x34\x11\x42\xac\x1a\xb5\xe7\xfc\x89\xb3\x57\xcf\x02\x2a\x90\x63\x98\xd7\xf3\xf4\x6c\x5a\xb3\x57\xb3\x34\xb3\xbe\x7e\xda\x97\xb5\xc8\x79\x62\xc1\x61\x16\x60\x64\xd5\xd7\x77\x7b\x66\xcf\xfa\x9b\xd1\x77\x35\x67\xcf\xe8\xc8\x9e\x7d\xb9\xd6\x4f\xcc\xbd\xa2\xd7\xab\xec\xf9\xfb\x7d\xf5\xb3\xa9\x7c\xc6\x39\xbd\x82\x5d\xdf\xd2\xbc\xf7\xf6\x4a\x58\x6f\x26\x86\x6b\x7a\x1d\xf8\xfa\xb5\x9c\xfd\x83\x5a\xeb\xd2\x2f\xb7\x66\xcf\xb2\x45\x42\x79\x51\xd8\x59\xb5\xbe\xfb\xb3\x2a\x7b\x86\xb2\xb7\x58\xe5\x3b\xa4\x65\xb6\x6e\x9f\xa8\x62\x8e\x5e\x6d\x88\xcf\xc7\xee\x75\x72\xd3\x18\x0d\xf2\xce\x7d\x53\xe5\x3b\xc9\x5e\x4f\xfa\x77\x1c\xab\x7f\x2f\xdd\x71\x8b\xb6\xce\xd2\x8f\xbd\x10\x75\x6b\x7f\xfd\x6e\xbc\xf2\x42\x97\x66\xec\xec\xbb\xa5\xcf\x18\x5f\xee\xfe\x3e\xbd\x6a\xec\x5e\xed\x77\xf6\xba\xba\x77\xff\xa6\xfa\x76\x16\x1e\xbd\xc7\xdb\xeb\xc9\xf7\x27\xed\xd4\xbf\xc3\xff\xfa\x10\xc3\xac\x7c\x8a\xc0\x63\xef\x7e\x92\x67\xef\x32\x7a\x4e\x62\xdf\xde\x83\x46\x75\xcc\xe0\x7c\xbc\xca\xb3\x57\xb7\xf7\xd9\xbd\x7b\x57\x3a\xab\xe3\x81\xbb\xcd\xeb\xb9\xed\xce\x3d\xef\x68\x75\xf5\x4a\x12\x3f\xeb\x8b\xf1\xf5\x58\xbb\xf7\xa6\xda\xbd\x26\xac\xf9\x13\x2b\x7a\x6f\xe5\x38\x1d\xb5\x7a\x05\x60\x85\x13\x4f\x08\x7d\xac\xd3\xfb\xdd\xea\x67\xf5\x9c\xde\x07\x6f\x0d\xbb\xd8\xed\xb1\x77\xc6\xa8\xe8\xbb\x1d\xb7\xef\x1c\xe0\x16\x73\xf7\xac\xa9\x3d\xcc\xa0\xed\xf9\x3f\xfd\xcc\xcf\x9e\x95\x76\xc3\xa5\x03\x76\xe9\xb5\xeb\x27\xbf\x23\x22\xb1\xc1\xec\x13\xed\x9a\xd1\x7b\x37\x50\x6b\xad\xdd\x7b\x37\x45\x95\xa5\x43\x72\xc1\xca\x16\x2a\x66\xb1\xb9\x59\x0c\x3b\xd6\x5e\x2b\x7a\xfc\x3e\x3b\x7e\x47\x17\xa7\xdf\xe7\xf6\x6e\xbb\xee\x1d\xfd\x6f\xab\xd3\x77\x3b\x56\xf9\xee\x9e\x3d\x7e\xb7\xd7\xa8\xde\x8b\xc7\xed\xd5\x4f\x7f\x4e\xcc\xac\x5e\x6d\x3a\x12\x8b\x35\xfa\x7f\xd7\xec\xf8\x07\x8e\x14\x48\x92\xe0\x97\x1b\x64\xc3\xa3\x8c\x44\xf2\x63\xdf\xdb\xeb\xc6\xad\xf3\x13\xf7\xeb\x15\x98\x76\x52\x7c\x35\xf3\x27\xe8\x0b\xac\x91\xfd\x1b\xcd\x9b\x56\xfb\xbb\x7f\x16\xef\xfc\xc5\x3e\x69\x11\x81\x5f\x72\x8a\x4b\xc1\x7e\xed\xfd\xf5\x5a\x71\xc7\x9f\x54\x6f\xfe\x0e\xff\xeb\xc3\xda\xb7\x9f\xde\x1b\x31\x7a\x37\xf7\x4c\xc6\x7b\x32\xd7\x8b\xf6\x3b\x82\xed\x7d\xb3\xe7\x6f\xef\x86\x71\xcd\xc4\xe8\xe7\x30\xfb\xf9\x2c\xf1\xff\xad\xec\x55\xa5\x77\xa2\x7e\x78\xb7\x73\x47\xc7\xf9\xd5\xf1\xc3\xdc\x1d\x1b\xaf\xb5\xfb\xd9\xfb\xbe\xf0\xec\x75\xd4\xd1\x91\xc0\xa2\x1a\xd3\x8b\x47\xd9\xd3\xc5\xba\xcb\xbf\x7b\xce\xb2\x7d\x59\x8c\x24\xd6\x19\xbd\x4a\x9c\x1b\xe2\xf6\xd1\x11\x48\xf4\x9a\x36\xaa\x23\xf3\xb9\xdc\x67\xaf\x6c\xb1\xce\x99\xe2\xf6\xcf\x4a\xd5\x7b\x65\xaf\x03\xc1\x00\x25\x94\xd5\x43\xc5\x2c\x64\x31\x43\x76\x30\x2a\xbf\xb7\xfb\xf7\x1e\x7d\x76\xc7\x09\xbb\x67\xe5\xad\x8e\x16\xbe\xd1\xf3\xeb\x69\xee\x8c\xd3\x2b\xc0\x3c\xd9\x67\xa5\xd1\xf7\xbc\x43\x7c\x7e\xfa\xb3\xe6\xf2\x6e\xcc\x23\xc6\xea\xef\x64\xad\xfe\x9e\x3b\x20\xeb\xf8\xca\x8e\x3c\x7b\x56\xee\xdb\x2b\xed\xbe\x7d\x5e\xbb\xd9\xfb\x3b\x25\x94\x80\x0a\xc6\xf7\xf5\xe9\xe0\x9c\x7a\xd1\x82\x79\xdd\x11\xc5\x88\xd3\x67\xbd\x8e\x2b\x7a\x7c\x67\xbd\xd9\xdf\x6a\xef\xf2\x14\x00\x97\x5e\xac\xa5\xd3\x69\x55\xf4\xfb\x57\xbd\xef\xb6\xe3\xab\x6f\xf7\x8a\x31\xfb\x9e\x43\x07\x78\x6c\x51\xe2\xed\xb8\x68\x8d\xd1\xf7\xc6\x74\x66\xc9\x56\x2e\x66\x1f\x8b\x3a\xc9\x7f\xff\xa9\xfd\x3b\xfc\x27\x87\xb0\x3f\xc6\x9b\x05\x65\x57\xad\xea\xdd\x96\x4d\x52\xec\xaf\xa3\xeb\x73\x86\x1d\xc7\xc9\x7d\xf5\xde\xc7\xb9\x21\xa8\x0e\x05\x8f\x87\x4d\x37\x7f\xe9\x8b\x5e\xf0\xa0\xc5\x84\x68\xc1\xc0\xd7\xbe\xa7\x23\x0a\x31\xf3\xed\x67\x7b\x7d\x7d\xb2\x58\xf6\xac\xd0\x83\x14\xbd\x10\xf4\x9d\xf4\x9c\x65\xbb\x19\xe6\x5a\xdc\xe8\x7f\x7f\xce\xce\x73\x84\x1c\xc2\xfe\x3c\xe7\x7d\xcd\xed\x75\x66\x84\xe8\xf7\x76\x34\x32\x57\xaf\x45\x4b\xdc\x4b\x77\x69\xed\x5e\xc1\x16\x45\xe6\x75\xef\xea\x58\xc5\x49\xe7\xdb\x3d\x23\x74\x52\x05\x90\xb1\x4f\xcd\xfd\x0e\x4e\xe8\x25\xef\xb1\xf6\x34\x47\xfa\xce\xc7\x76\x7e\xdf\x2f\x17\xd1\xd7\xe8\xec\x5d\xda\x08\xfa\x5c\xd0\x9f\xe2\xd4\x4f\xd5\x68\x31\x62\x8b\x35\xfa\x3e\xd7\xd7\xd1\xcb\x3e\xa3\xa3\x9a\x19\x62\xf5\xdb\x9f\xb5\xad\x9f\xf2\x21\x60\xc1\x45\x57\x77\xd1\xf4\x5c\x75\x9d\x35\xbe\xe8\xd5\xa6\x67\xf1\x3a\x1d\x4d\xad\x2f\xfb\x6e\x47\xdf\x67\x8c\x7e\xcf\x58\x7d\x8e\x08\x10\x74\xf0\x8b\x0e\x0a\x80\xa1\xf3\x3c\xb6\x53\xd8\x16\x4b\x9c\xb1\xf7\x4f\x7c\x7d\xfe\x0a\x9a\x68\xf1\xdd\x9a\x3f\xf3\xfb\xac\x36\xd6\x93\x31\x3a\x86\x19\xd3\xc9\x42\x74\xa4\x8b\x7e\xcd\x95\x7f\xd7\x84\x7f\xfa\xb0\x74\x66\xf6\xce\x5e\x46\x19\xc5\xec\x1d\x6d\x84\x7d\xad\x9f\xdb\x95\xfd\x4c\xb2\xdb\x5b\x94\xa6\x17\x25\xb5\x05\x45\x5d\x15\xa2\xe8\x8e\xff\x17\x13\xa8\xde\xa8\xa7\xd9\xd1\x7b\x7a\x1e\xd9\xbf\x8e\x3c\x65\x06\x7a\x03\xef\x95\xa1\xcf\xcb\x8b\x3e\xe9\xa2\x42\xb8\x3e\xd7\x7c\xbb\x67\xe2\xd8\x25\xdf\xf5\xbd\xbd\x6c\x38\x6b\x88\x9c\x4f\xef\xf8\xab\x77\x79\x86\xc5\xc1\x98\x38\x18\xfc\x85\x76\x96\xa8\x1d\x3d\xfb\x46\xaf\x30\x0c\xaa\x3a\x96\x9e\x3d\x17\x3a\x2a\xe0\x51\x11\xa7\x4a\xde\xb2\x63\x80\xa7\x21\x28\x7a\xef\x43\xff\xf9\xc9\x77\x12\x59\x2f\xd3\xb2\xe7\xb6\x52\xc9\xec\xf5\xbf\xef\x5d\x7d\x8d\xdf\x65\x56\xc7\xf0\xb3\x4f\x19\xa1\xd1\x21\xb0\xeb\xb1\xab\x77\xe1\x33\x7c\x7b\xd5\x57\xb2\x61\xea\x75\xa6\xa3\xaf\xe8\x95\x8a\x55\xe2\xa2\x63\xd5\xbf\xa3\x8c\x62\xaf\xc6\xec\x23\xe3\xed\xcb\xa3\x44\xf8\xa3\x57\x51\xd9\xcb\x35\x63\x8b\xb8\x3a\x1e\x60\x34\xbc\xd8\xf2\xae\x93\xbd\x52\xdd\xe1\xdb\xab\x5e\xc7\x74\xb7\xae\xcf\x9a\x40\x7f\x33\x76\x7f\x62\xdc\xe8\xb5\x65\x67\xaf\x8d\xc7\x3b\xd0\x6e\x8e\xca\x8e\xbe\x76\xf5\xc9\xe5\x5b\x29\x5e\x92\x37\x5e\x7d\xcd\xa9\x29\x03\xbc\xfe\x9e\x1d\xfe\xe9\x43\xef\x68\xc3\x5f\x7f\x8a\xf6\xfb\x74\x69\xb6\xae\xdb\x3b\x6f\xf5\x89\x60\xf1\x6a\x5a\xdf\x96\x2d\x74\x9e\x9d\x7d\x1a\x8d\x99\x1d\x99\xcf\xaf\x4f\xc4\x30\xc4\x60\xed\x1d\x5b\x66\x60\x7f\xb3\xa3\x8b\xb7\xe6\x2c\xe7\xd6\x78\x59\xc7\xd5\xcf\x7f\xf5\x3c\xe2\xe2\xd3\xc3\x76\x0f\xfd\x59\xcb\x5c\xb8\x53\x95\xa1\x9f\xff\xd9\xab\xc1\x82\x92\x2f\xa6\x6f\x6b\x7f\xbd\x56\xdc\xaa\x90\x13\x70\x4d\xc7\xc9\x73\x2d\x27\xfd\xbe\xde\xd3\xbb\xf6\xee\x98\xe1\xcc\x70\x7e\x97\x4b\x94\xf3\x67\x75\x1a\x3c\x78\xa2\x96\x0a\xc5\xee\x15\x63\xdf\xbe\xe7\xaf\xcf\x14\x9b\x3f\xd0\x1a\xb3\x67\xee\xfa\x9c\x6b\xee\xec\xf7\x9c\x1d\x87\x9f\x75\x5e\xb4\xd3\xdf\xc3\x1c\x7d\xf6\x9f\xde\x33\x3b\xe6\xd1\xee\x16\xa8\x87\x00\x8b\x6f\x3e\x43\x7d\x12\x19\x3f\x6b\x38\x2b\xcd\xfc\x8d\x34\xe4\x4c\xac\xa2\x67\x2f\x71\x85\x7c\xcb\x90\x03\xe9\xdf\x62\x5c\xb5\x9b\x7d\x5f\xbc\xd1\x77\x25\xc7\x32\x56\x47\x4d\xe3\x8a\x61\xae\x5a\xcc\xd7\x6b\xc5\xf2\xaa\x65\xbe\xaf\x5a\xcb\x98\xfd\x37\x1d\xc6\xde\xf1\x97\xf8\x8d\xd1\xea\x02\x31\x2f\xae\x2a\x0b\x6b\xb9\xa8\xe5\x2e\xea\x48\x8b\x51\xfb\xda\xe3\x38\x25\xfd\x51\xa5\xe5\xef\xf0\xbf\x3e\xac\x1d\x1d\x9d\x6e\x3b\xf5\xce\x5e\x07\xf6\x35\xa7\x6e\x3f\x57\xe7\xed\x11\x9e\xde\xb3\xed\xfb\xe7\xbc\xf1\xfe\xac\x3b\x87\x9d\xc8\x5e\x7f\xe2\x9d\x85\xaf\xd9\xb7\x65\xd2\x3e\x75\x87\x65\x94\x43\xeb\xf9\x32\xbe\xfe\xf9\xb4\x6b\xcf\xd1\x67\x16\xfb\x60\xd0\x6d\x89\xb9\x7b\xb7\x5a\xff\xea\x70\x78\x76\xa8\xbb\x76\xff\xe7\x3a\xbd\x20\xad\x3b\xfb\xe7\x7d\xc8\x0e\xbe\xfa\x51\xdb\x71\xc7\x11\x64\x5b\x90\xce\xde\x6f\xec\x10\x60\x2a\x63\xae\x97\x62\xf7\x6f\xe1\xfc\xc7\x03\x73\x94\x70\x7b\x99\x7c\x21\xd1\x58\x26\x68\x2c\x09\xc2\xfe\x14\x86\x6e\x1d\xda\x2b\xd2\x7e\x69\x72\x2b\x4a\x94\x22\x4c\x87\xf9\x7a\x82\x36\x2b\xb1\x3e\x40\x38\xbe\xff\x6e\xb3\xd7\xf8\xf5\xb8\x2d\xbd\xdb\x62\xf3\xae\x97\xfe\xec\x05\x6c\x33\x17\xdb\xcc\xc5\x36\x73\xb1\xad\xa7\x60\x33\x11\x8b\xaa\x57\x7c\xd8\xde\xe7\x78\x9f\xe3\x7d\x24\x5a\xd6\x7b\xb7\xfe\xb3\x7c\x63\x7a\x9f\xf3\xc6\xfa\x89\xbb\xdf\xfb\xf7\x01\xa5\x72\xf5\x6f\x97\x7d\xd8\x22\xbe\xb1\x59\x8f\xad\x2d\xcd\xc0\xc7\x72\xdd\x3e\x1a\x6e\x66\x64\xa1\xc8\xb3\x59\x92\x6d\x96\x64\x9b\x25\xd9\x7f\xff\xa1\xfd\x3b\xfc\x27\x87\xe8\xb3\xad\xbf\xb5\xe7\xea\x0a\xc0\x43\xe0\x2c\xc9\x34\xde\xb3\x7a\xdf\xe8\x69\xb9\x9e\xd8\xeb\x69\x51\xb0\x1a\xef\xe9\xba\xd2\x09\x7d\x08\xd6\x28\xb9\xf8\xc7\xc6\xfa\x7d\x6d\x6f\x3b\x1a\x1f\x17\x51\xf7\x55\xb6\xcd\xf9\x70\x80\x92\xce\x57\xc4\x28\x09\xb9\x52\x22\xe3\x99\xbc\x78\x32\xaf\x39\xdf\x93\xdf\x41\xb7\xd6\xc9\x45\xa0\x75\x11\x04\xdb\xcc\xef\x36\xf3\xbb\xcd\xfc\x6e\x7d\xbf\x77\xfb\x8a\x8a\x9f\x7b\xfe\xdc\xf3\x67\x9e\x7e\xfd\x9c\xdf\x31\x1c\x20\x8e\x7f\x4f\xe3\x32\x86\x31\x8d\x65\xdc\xc6\x77\xe5\x35\x7a\x87\x39\x8c\x1d\x80\xf7\x91\x7d\xeb\xfd\xd9\x2c\xcf\x22\x5e\xd0\xd4\xdf\xd8\x22\xee\xb1\x99\xa0\x6d\x26\x68\x11\x7d\xdc\xdf\xac\xd0\x36\x2b\xb4\xc5\x1b\x76\x33\x44\xdb\x0c\xd1\xb6\x1e\xa2\xad\x87\x68\xdb\xc6\xb7\x4e\xa2\xcd\x22\x6d\xbf\x54\x65\xac\x13\xca\x2f\x0a\x89\xdf\xf4\x37\xf5\x9e\xef\xfd\xad\x09\x77\x79\xcf\xe5\x3d\xc3\x7b\xbe\xc2\xc5\x7b\xe7\xf0\xce\xf1\x8e\x4a\x1d\xac\x5d\xc1\x57\xf8\xbd\xc2\x51\xf2\xbe\x04\xed\x1f\xc5\xf6\xff\x0e\xff\xeb\xc3\x22\x40\xbd\xc6\x54\x72\x5c\x9f\xf0\xb3\x37\x7c\x8a\x0c\xab\x23\xe4\x9f\x45\x34\x78\x71\xb0\xef\xe0\x71\x2b\x3f\x66\x1f\x31\x7b\x6f\xba\x4b\x11\xe0\x8c\xa9\x74\x36\xa1\x3a\xf6\xdf\x0e\xd5\x49\x7d\x86\x5e\xfd\x38\x1d\x86\xf7\xe6\xd6\xbb\x55\xaf\x2a\xeb\xee\x7e\xe7\xaf\xfa\x7f\x49\x58\x07\x97\xe6\x35\xaf\xe7\x30\x3a\x8c\xd5\xc8\xde\x61\x7b\xef\x89\xef\x29\x15\xbc\xdf\xf5\xd0\xa1\xbe\xff\xbb\xfb\xd3\xc9\x56\xc7\xba\x21\xcd\xf0\x60\x87\x29\x61\x39\xa4\x4e\x17\xe4\xe1\x08\xe1\xb7\x60\xe7\xab\xde\x0d\xfb\x7a\x62\x4d\xb1\x43\x02\xfe\xeb\x1d\x7f\xda\x5b\x57\x59\x21\x77\x87\xcf\x6c\x2f\x96\xfe\xdc\x5e\xd3\x14\x0d\xd2\x7e\xda\xbf\xd7\xfc\xea\xfe\x04\x79\xa5\x1c\xbb\xd7\xbd\x31\xfb\x4a\x5a\x12\xab\x23\xf3\x9e\x59\xfd\xbb\xf3\x4e\x5f\xcc\x55\x17\xbb\x99\x45\x6c\x76\xe9\x84\x5d\x65\xa6\x7f\x7b\x7e\x12\x27\x09\xe9\x92\x20\x59\xd9\x07\xa6\xb8\x8a\xc6\xbd\x86\xa4\x77\xa8\x0e\xd6\xc8\x31\xad\x91\x1d\xf4\x91\x0d\x5c\x84\xfb\xfa\xef\x98\x8a\x8d\xd3\x6f\x51\x3e\x5d\xc1\x47\x1a\xb8\x57\xc8\xc5\x80\x6c\xb1\x9f\x58\xa4\x68\x97\x96\x86\x55\x56\xdd\x52\x3e\xaa\xad\xd0\xba\xbf\xbf\x71\xc2\x3f\x7d\x58\xfb\x3a\x0a\x44\x3f\x0f\x4c\x0c\x17\x13\xc0\xc5\xe0\x6c\xdd\x9d\xbd\xe7\xce\xfb\xd0\x9e\x7e\xfe\xeb\x3a\x3a\x4b\x89\xad\xde\x95\xec\xc2\x51\xca\x7a\x7b\x1c\xa0\x4d\xc7\xe7\x3b\x7f\xcb\x02\x47\x92\x2f\xcd\xf7\xd3\x2b\x43\x1f\xd9\xcf\x19\x5f\x3f\xe1\x53\xea\xae\x67\xdf\x91\xce\xbf\xdb\x31\x5d\x0a\xf3\xb3\x43\x7d\xd2\x84\x43\x1a\x60\x2a\x2a\xce\x33\xfb\x4c\x91\x0f\x67\xe8\xb5\x02\x2e\xb4\xb4\xe2\xac\xfa\xcc\xd6\x39\x60\x02\xfd\x9e\xac\x51\xd7\xf5\xf3\xaf\xd7\x93\xa8\x8e\x85\xe2\xbe\x13\x81\x7b\x26\x4f\xb7\xc6\x14\xed\x28\x00\x92\xf7\xec\x93\x79\x39\x53\xf4\x4c\xf9\xde\x01\xab\xe7\xc8\x3e\x90\xc6\xdb\xb3\x89\x31\xe5\x62\xa0\x16\x20\x88\x0e\xaf\x1e\x84\x68\x2f\xee\x73\x0d\x4b\xcd\x38\x35\x44\x53\xab\xef\x10\x7e\xb5\x73\xc3\x3f\x3b\x72\x20\xcb\x1f\x33\xed\xe0\xbb\xde\x0e\x9e\x4e\x46\xc3\x77\xa8\xf8\x53\x22\x8a\xfd\xe2\x10\x29\xc9\xf0\xdd\x02\x13\xbe\x3e\x2f\x1c\x89\x61\x52\xd2\x8b\x5d\xe0\x3a\xd2\x0f\xdf\x7c\xa5\x66\x69\xd1\xea\x7b\x63\xb1\xd1\x67\x93\x3e\x25\xcd\x72\xc2\xea\x6f\x7e\x5e\xeb\xde\x38\xa2\x0b\x78\x23\xa0\x8c\x8e\xcc\x7f\xff\xa9\xfd\x3b\xfc\x27\x87\x60\x82\x10\xe4\x01\x43\xcb\x4d\x9c\x77\x8a\xbc\xaf\x7c\x27\x2d\x7d\xfb\x19\xfb\xf6\x4b\x80\x7d\xa7\x9f\x70\x10\x1f\x4c\xe0\xac\xb5\xfb\x59\x7a\xb1\xb4\xa4\xd7\xe8\xdd\x67\x8a\x66\x0f\x0c\xe1\xe4\xec\xd5\xe6\xa5\x1c\x24\x20\x19\x40\xe4\x00\x47\x93\x99\x8d\x7d\x3c\xc3\x50\xc1\x52\xae\x2f\x67\x84\xa3\x68\x7f\x7b\x8e\xc4\xec\x28\x3d\xe8\x37\x85\xe6\xdb\xa0\xea\x10\xb5\xec\x68\xeb\xda\x5b\x41\xd3\xf7\xed\x7d\xbd\xeb\x6d\x69\xfe\x3b\xfa\x1e\xd8\x27\xad\xaf\xa3\x9a\xf5\x5d\x31\xcc\xfe\x86\x12\x81\x92\x66\xaf\x1b\x62\xf5\xa5\x9d\x32\x9c\x26\xd6\xf8\xa6\xf2\x3e\x20\x62\xbc\xd4\x63\x02\x7f\xbc\xea\x26\x94\x52\xe1\x45\x62\xf2\xbc\x35\xf3\x93\x88\xfd\x56\xdf\xb9\xd9\x1a\x7d\x27\x51\xbd\xd7\xf7\xb4\x36\x7f\x97\x72\x5f\xc7\x4b\xc3\xc9\x68\x76\xdc\xb5\x66\xbd\xa2\x84\x53\xd2\x97\x20\x65\x45\x00\x9f\x7e\xa0\x10\x77\x8b\x4f\x3a\x8e\x0a\x8d\xc7\x41\xa3\x2d\x94\x74\xe2\xab\x8e\xd3\xbe\x8e\x73\x72\xd4\x27\x7a\xe9\x57\xcd\x09\x45\x8f\xfe\x36\x8e\x73\xd9\x7d\x31\xde\xe8\xc8\x64\x9f\xb1\x7f\xe2\x1e\xe9\x46\x19\x06\x48\xf5\xaa\xeb\x3b\xcc\x3f\x5a\x8c\xfd\x1d\xfe\xd7\x87\x3e\x9a\x9b\x1d\xd1\xbb\xc0\x4a\x79\xbc\xf3\xfd\x04\x69\x80\xd8\x1b\x54\x7b\xbf\xcf\xce\xde\xcf\x2d\x98\x68\x8e\x09\xfa\xeb\x78\xf5\x7c\xbd\x87\xde\x6b\x6e\x9a\x77\xac\xa0\x56\x7d\x4e\x19\x22\xd5\xbb\x7b\xa7\x9b\xf7\x9d\x14\x0a\x9e\xdc\x6b\xc5\x90\xbc\xa7\x5a\xb8\x59\x7b\x2f\x45\xbf\xc5\x5e\x76\x69\x36\xee\x28\xba\x67\x16\xd4\x68\xed\xdd\x11\xc2\xe9\x9f\x2c\x6d\x10\xfb\x7e\xbd\x8e\x89\x61\xae\xbb\xbd\xc7\xbf\xbf\xd8\x3f\x49\xf4\x7e\x0d\xa8\xe3\x2d\x0d\x04\x3d\xb3\xe2\xf4\x5c\x0b\x3f\x59\x73\xbd\x33\xbe\xb8\xfd\x40\xa1\x8f\x75\x2c\x7a\xee\x5c\xc0\xe3\x95\x98\xff\x56\xbf\x6a\x3c\xe8\xe0\xec\xfe\x96\x7a\x66\x85\x76\xee\x8e\x8e\x0a\x08\x10\x7d\x0f\x3d\xb3\x9e\x71\xd2\x48\x30\x57\x9f\x17\x42\x91\x33\xe6\x04\x14\x40\x3e\xe3\x58\x57\x19\x90\x31\xf2\xe8\xf9\x5b\xbd\x6e\xe4\x83\x20\x7a\x75\x8a\xd5\x31\x49\x0e\xc5\x5b\x78\x02\x4c\x6c\x5e\xad\x09\x20\x6e\xa6\x00\x8b\xb9\xea\xfa\xb4\x77\x8c\x4f\x49\x73\x88\x22\xb4\x2f\xec\xd1\xd1\xda\xdd\xe9\xfb\xb7\xd6\xed\xef\x81\x24\xa9\xbc\xfc\xa2\x97\x5e\xff\xa7\x42\x87\x93\xcb\x78\x49\xdf\xab\x90\x32\xf2\x4f\xba\x40\x7f\x87\xff\xf5\x21\xf6\xf7\x10\x9b\xd9\xfb\xc8\xcd\x02\xfb\xe4\xcf\xa2\x06\xb6\x62\x2b\x38\x98\xfb\x77\xf6\xde\x71\x45\xb6\x63\x75\x74\xb1\x14\x0d\x68\x3e\x06\x23\xda\xd0\x64\x1b\xc7\x93\x7f\x1f\xf2\xe0\xec\xbf\x87\xfd\x1a\xb4\x78\x46\x47\xcb\x1a\x6b\x16\x13\xe7\x75\xb7\x76\x9c\xd3\x9f\xf8\x9d\x4f\x99\x22\x7d\x8a\x53\xc3\x7d\x79\x80\x7e\xe7\x6f\x8c\xb7\x2f\xf7\x9a\xe3\xb9\x65\x94\xbc\x46\x1c\xc5\xfc\xf5\x9a\x30\x7a\x05\x50\x71\x58\xe0\x9d\xed\xb7\x60\xef\xb2\x34\x51\xaf\xdd\xf3\xa2\xd7\x81\xe9\x84\xfe\xda\x89\xb4\x7a\x68\xa7\xf8\xca\xea\xf7\xca\x9e\x3d\x2f\x08\x71\xc7\x9a\x50\x08\x88\xc4\xad\x69\x7f\x57\xad\x18\x1a\x02\xb2\xdf\x79\x3e\x34\xe0\xf4\xfd\xc4\x2e\x27\xfd\xec\x93\x78\xa6\x5a\x86\xb6\x86\x61\xe6\x06\x7c\x20\x43\xd1\xa6\x67\xe8\xf7\x9b\x0f\xd4\x84\x31\xfb\xfb\x9c\xb7\xfa\xae\xf6\x5b\x0f\x7b\xe5\x89\x2d\xa3\xa8\x9c\x5b\x0f\xb8\x80\x6e\x9d\x78\xab\xa2\x98\xed\x3e\x80\xd4\xf7\x60\x6d\xf9\xa6\xe8\x48\xf6\x83\xed\x5d\x6c\x51\xc4\x2d\x08\x79\xbf\x5b\x0e\xcd\x22\xdb\xfd\xdf\x39\xfc\x45\x34\x93\xad\xea\x95\x16\xce\x39\xce\xfe\xbb\x26\xfc\xd3\x87\xd0\xa6\x13\xb3\x67\x56\xcc\xfb\xd9\x2b\xcd\xcd\x8e\x99\x63\xcc\xde\x85\x9d\xaf\x83\x59\x46\xb0\xe5\x8d\x8f\x81\xf2\xd8\x5a\x7c\x60\x35\x4c\x6c\x17\x63\xf4\xe8\x80\xa0\xe7\x4e\x47\xe6\xe7\x5f\xf1\x33\xbf\xcf\xf2\x10\xd2\xe4\xe3\xf5\xea\xcc\xd7\x31\x75\x91\x8e\xa8\xc1\xfe\xd8\xbd\x5e\x7f\xe0\xd6\xad\xd4\xc1\xc8\x35\x95\x2f\x92\x80\x6f\x55\x38\xd6\x04\xc7\xec\x20\x3b\x1c\x7b\x2f\x54\x41\x6f\x68\xdf\xd7\x47\x61\xba\xd4\xab\xf4\x4b\xec\xb4\x14\xdd\xf9\xba\x31\xcb\x81\xa3\x27\x90\x7a\xea\xb0\x68\x2d\xc1\x0e\xed\x94\xc5\x43\xa6\x0f\x1c\xaf\x53\xeb\x22\x2c\x1f\x4b\xd4\x63\x75\x18\x15\x67\xf9\xdc\xd0\x3d\x88\xe7\xb0\x04\x2e\x4b\x5d\xcc\x0e\x91\x7a\xce\xfe\xac\x8d\x39\x36\x05\xfb\x60\x71\xf0\x5b\xbd\x15\xe3\xc8\xd7\xeb\x4f\x30\xc5\xf7\xeb\x7d\xfa\xbe\x40\x8d\xf4\xa7\x8c\xe8\xe0\xeb\x3b\xaf\x07\xcc\x11\xed\x4a\x31\xce\x47\x87\xf7\xef\x25\xdd\xa8\x97\x29\x46\xd6\x0b\x64\xa6\x43\x4f\x4a\x8d\x48\xf6\x60\x31\xef\xd4\x19\xf2\xdb\xd7\x11\xea\xcd\x3a\x49\x3e\xbd\x9d\x7d\xf8\x18\x98\xaa\x35\x95\x2f\x56\x08\xbb\xca\x9f\x5a\x5a\x37\xfe\xe8\x7e\xf3\x77\xf8\x5f\x1f\x82\x2f\x7d\x3f\x39\x36\x96\xf9\xfa\xa2\x3f\x5c\xce\x56\xfa\xee\x7f\x3b\x4c\xdf\x98\x68\xda\x47\x19\x0e\xf3\xab\x7a\xec\x23\x42\xf0\xd6\x08\xa9\xac\x38\xfc\x81\x87\x85\x81\x3c\xf5\x1a\xe6\xfe\xb8\x17\xbd\x34\xcd\x1d\x9c\xf4\x5c\x7a\x8a\xfa\x73\xeb\xe0\x8d\x4e\x1f\xe5\xf7\xba\x08\x7b\xa9\xc7\xd9\xf7\x70\xea\xeb\xd9\x24\xd0\xf8\xd6\xf9\x04\xc8\xfd\x6f\x2c\xaf\x2e\xc4\x18\xbb\x0f\x07\x7d\x96\xc1\x24\x5d\x2b\x80\xe3\xfb\x45\x37\x2e\xe9\x3a\x5d\x7f\xf9\xba\x08\xbe\x17\x68\x9b\x4d\x7d\xec\x18\x7d\xd0\x89\x19\x43\xe7\xc6\x7e\xf4\xde\xe7\x4a\xac\x8f\xfe\x84\xc7\x1a\x7e\x3a\x06\xf5\x36\xf7\x54\xc7\x00\x49\x60\x74\xc8\x53\xaf\x63\x7c\xea\x8c\xc2\x81\x5d\xa5\x5d\x6e\xcc\x31\xd3\xf6\x9b\x1f\x8c\x42\x4a\x6f\x75\xc0\x9e\x23\x75\x38\xeb\xaa\x1a\x18\x29\x89\x99\x7a\xef\x79\x7e\x99\x21\xc1\x8b\xef\x24\x3f\xc5\x9f\x4f\x6f\x95\x7e\xaa\xed\x77\x19\xa9\x3b\xc5\x0a\x16\xbf\x3d\x1e\x17\xcb\x98\x3a\x3a\x24\x83\x7b\xdd\xb8\xfb\xb7\x1f\xc3\x6f\xf1\x6d\x05\x8d\x54\xbe\x38\xfa\xc9\x77\x3f\x15\x5b\x47\x28\xd2\xfa\xfb\x5b\x76\xf8\xc7\x0f\xeb\x1c\x07\xf4\x31\x75\x1b\x4a\xe0\xdd\xdd\x07\xc7\x0e\x8a\xe3\xae\xd3\xe3\x0e\x5d\x04\x52\xec\xa7\x9f\x96\x6f\x3d\x52\x7f\xda\x13\x3f\x61\xf2\x4c\x09\xc2\xb0\xfb\xf7\x6e\xeb\x89\xdd\x92\x8b\x5b\x22\x61\xeb\x25\xb8\x58\xc3\xbb\xa4\xc0\xf3\x38\x16\x97\xbe\x02\xdd\x38\x93\x52\x40\x09\x6f\x6f\x95\x7d\x4a\x60\x8b\xb7\x3b\x3d\x53\xf8\x9f\xac\x7c\x07\x88\x31\x02\x57\xad\xa7\x48\xf0\x3b\xcd\xf7\x2d\xc1\xa9\x6b\xfa\x7b\xfb\x32\x4e\x71\x59\xb5\xee\xf2\x6e\x7d\x87\x41\x39\x2d\x6a\x0b\xfc\x87\x3d\x34\xc2\x4c\xec\x9d\xb4\x94\xef\x4a\x44\xb1\x13\xc5\xa5\xab\xf9\xe8\x17\xe5\x46\xbe\xbe\x0b\xb5\xd8\xbd\xab\xce\xfb\x49\xcc\xf4\x6f\x11\xb3\xbf\xc9\x88\x78\xbf\x97\xd2\x41\x86\x03\xfd\xd7\x01\x97\x42\xc7\xd2\xed\x10\x0b\x5f\x5e\x8e\x20\xfb\xa1\x4f\xab\x3f\x3d\xf5\x5e\xc2\x3d\xc6\xe3\xc5\xcf\xfb\xbd\xb6\x1e\x51\xe9\x96\x63\x1d\xe8\x4f\x1f\xeb\xf5\x7e\xc7\xdb\xf7\x87\xa4\x82\x10\x4f\x89\x78\x2c\x7f\xe5\x43\xc7\xa1\x57\x48\x3a\x69\x81\x4e\x8b\xab\x14\xf3\x89\x6a\x26\x6d\x85\x92\xe0\xac\xb3\x1d\x1c\xfb\x6f\x7a\xf3\xaf\x0e\xd2\x3f\x7e\x08\x7e\xbf\xa1\xbf\x37\xce\xd2\xff\x9f\xfa\xf1\x14\x19\x1c\x28\x17\x4f\xdd\xc5\x75\x76\xad\x07\xb0\xf4\x31\x62\x05\x7e\x31\x71\xc3\xbc\x61\x17\xe9\xe8\x55\x9f\xfd\x74\xbc\x8e\xc1\x7c\x51\x87\xf8\x99\xd2\x8a\x3e\x8a\xab\x1f\x6f\xa0\x9f\x59\xb7\xc4\xfa\xc2\xb1\x83\x9e\x42\x3c\x2d\x83\x17\x87\x54\x58\xa3\x7a\x8f\x0b\xdd\xd1\xdb\xa1\x44\x12\xf4\x76\xb4\x9c\xa3\x0f\xca\x8b\x63\xf0\x1a\xb9\xdf\xa1\x5c\x0f\xf0\x2b\x20\xe8\xcd\xd0\x5f\x54\xa9\xe3\x37\x7f\x57\xa7\xa3\x44\x19\x3d\x83\xa4\xfd\xbe\xf3\xf4\x23\x5e\x11\x66\x18\x3b\xd2\x50\x6c\xd9\xca\x32\xdb\x8c\x3e\xf3\xd1\xd5\xe3\x25\x4a\x25\x32\x9d\x3b\x86\x9e\xab\xea\x99\xbb\x77\xbd\xd2\x5f\x18\xd3\xf7\xe9\x98\x25\x02\x99\x0a\xad\x52\x11\xdf\x2b\x60\x0e\xd8\x23\x0d\x85\x15\x6b\xc2\x2b\xea\x27\x78\xef\xc7\xf7\xfa\xa6\x9e\x62\x0b\x3d\x97\x25\xf2\xb9\xba\xd0\x87\x38\x21\xc7\x79\x2b\xb0\x13\x81\xc2\xc2\xd1\xd5\x70\x9d\x2f\x02\x3f\x8a\x90\x8e\xea\xbf\xd7\x79\xdd\xda\x07\x1b\x7d\xc2\x6a\xb0\x2e\x2c\x45\x3f\xfc\x84\xa2\x58\x57\xef\xee\xdf\xe2\xcf\xbe\xfd\x7f\x87\xff\xf5\x21\x86\xa2\x77\xc6\xd2\x99\xa0\x43\xe6\x00\x1b\xef\x8b\x8d\x93\x42\xc7\x02\x02\x48\x63\xeb\x31\xde\x80\xc7\x43\xab\x88\xe3\x65\x38\x6f\xe6\x18\xa3\xc7\x33\x97\x2e\x3b\x33\xf4\xea\x57\x2c\x88\x9c\xee\xa9\x8e\x04\xd6\x56\xca\xdb\x7a\x09\x76\x89\xb1\x15\x00\xef\x2d\x69\x75\xf3\x74\xf6\xec\x9b\xb4\x57\xec\xa1\x21\x35\x18\x2f\xfd\xff\x92\x73\x23\xa5\x45\x6b\x23\xfb\x0f\xec\xd1\x3b\xaf\xde\x79\x8f\x55\xe2\x7c\xde\x79\xf5\x9d\xdc\x3e\x4d\xac\x6f\x53\x80\xd2\x01\x0e\x19\x0e\xba\x88\xc1\x3a\x20\x4a\x2f\xd3\xd6\xe3\x34\x16\xfd\xa9\xfd\x29\x50\xe8\x28\x88\x1c\x3a\x3f\x43\xb9\x12\x04\xd1\x73\x76\x4e\xf9\x8a\x49\x93\x45\x89\x23\x95\x58\xd9\x17\x44\x2d\xbd\xa6\xb0\xeb\xbd\x7b\x46\x7f\xd6\x8a\xef\xe9\x1f\x25\x45\x83\x57\x0e\xb5\x82\xad\x0b\x43\xd0\xd1\xf1\xe0\x4d\xa8\xe6\xaa\x54\x48\xbc\x80\x08\x25\xa0\x6f\xe8\x1c\x3b\x8a\x21\xd6\x76\xca\xd2\xc1\xbd\x36\x36\x75\x86\x53\xb7\xcf\x05\xf3\x7c\xfd\x77\xb9\x0f\xc4\x70\x46\xa0\x3d\x21\x3b\x31\x87\xb2\x30\x5a\x7d\xfa\x0e\xf9\xe6\x2d\x26\x3b\x6b\xe1\xdd\xa3\xff\x6a\xff\xfd\xa7\xf6\xef\xf0\x9f\x1c\x56\x84\x6c\x98\x0e\xba\x28\xc5\xf0\xf5\x70\xda\xde\xc5\x3c\xc9\xab\x64\x08\xe5\xc1\xd6\x1d\xaf\xa7\xd1\xd3\xb8\x42\x91\x90\xce\x82\x52\xff\x72\x1e\x67\x63\x12\x0a\x17\x11\x72\x74\xcc\x1c\x82\xf1\x42\xc4\xe9\x9f\xeb\xe8\x8b\xfd\x2f\xa9\xb5\x5e\x8a\xb6\xe9\xb8\xd7\xeb\x5b\xb8\xab\x97\x9c\x6f\xff\xc4\x91\xd3\xbc\xaf\xd6\x28\x49\xf0\xc5\x2d\x6d\x8c\x7d\xe4\x7d\x5b\xf4\x87\x87\x28\xcb\x83\xed\xb4\x63\x6c\x6d\x5c\x17\x51\x9d\x3f\x8b\x25\xf3\x22\x92\xb0\x38\x01\x74\xf0\x22\xa9\x70\x4c\x2f\x61\x8b\x54\xc1\xd4\x44\x39\xbf\x77\xa8\x5a\x8e\xfe\xf5\xaa\x7a\x2f\xf0\x7f\x5f\x0f\x19\xb7\x0e\xa0\x32\xde\xf2\x90\x42\xfe\x4b\x1e\x41\x70\x44\xe2\x60\xbf\x2a\xc2\xff\xd9\xfc\xfb\x18\xd4\x21\x79\x4f\x4d\x8b\x4d\xbc\xc5\xc6\xe1\xec\xd3\xf6\xf8\x9b\xf2\xac\x9e\x82\x1a\xc3\x27\x22\xdc\x66\xce\x91\x69\x71\xe6\xe8\x3f\x4e\xbf\xff\xbf\x42\x04\x46\x5b\xc2\xe9\x4e\x01\xf7\x00\x44\xcf\xd3\xc0\xd3\xe1\x7d\x7e\x01\xe6\xdf\x3e\xf5\x8f\xfe\x44\xdf\x9a\x8e\x4f\xee\xe1\x31\xa7\xfe\x36\x38\xe8\x94\xbd\x5d\x10\xd0\xa5\x60\xba\xbe\xf8\xdb\xff\xf4\x4f\x1f\x22\x28\xa2\xc5\x9a\x57\x89\xcd\xee\xf2\xe2\xe6\xd4\x7a\x03\x0c\xde\xdf\xeb\x91\x85\x20\xe6\x3b\xe1\x3b\x79\xc6\xec\x98\xa0\x77\x9a\x35\x69\x92\x39\x87\x67\x4f\xdf\x55\xdf\x2b\xf1\xf7\xa3\x7d\x3a\xd2\x5d\xc7\x4f\x2e\x0d\x80\x6b\xdf\xfd\x56\xef\xeb\x9f\x82\x3e\xa8\x2f\x36\xdd\xa0\xdb\xa7\xdf\xc5\x6c\x6c\x9d\xa7\x0d\x70\xf5\xef\x26\x0c\x7b\x24\x18\xfb\x69\xb0\x2d\xf8\x90\x9d\xcf\x74\x1c\xcb\xfe\x17\x74\x25\x4d\xd3\x71\x5e\x0f\xa2\x09\x67\xcf\x9b\x47\x13\xd0\x77\xf5\x1c\x87\xf2\xab\xdf\x42\x0e\x34\xc6\xdb\xa1\x75\x0d\x56\xaa\x1f\xd0\x26\xa1\x04\x99\x3e\x37\xf3\x50\xa2\xea\x18\xbd\x68\x45\x6c\xe5\x45\x99\xbb\xb5\xe5\x56\xb6\x6c\xcb\x96\x7f\x39\x4e\x5f\x07\x2c\x71\x68\x25\x5e\xd8\xf3\xd5\xb5\xf9\x34\x0c\x86\x38\x8c\x3e\x44\xc0\x92\x63\xea\x1e\x9b\x14\x98\x38\x81\xf6\x12\x05\x6c\x98\xfa\x23\x7b\x46\xb3\x6d\x8a\x50\x28\xe4\x51\x11\x50\xe7\xe0\x2a\x16\x95\x9a\xc5\xf4\x5e\xd7\xef\xf7\xdc\x27\xa2\x3d\xe5\x6b\xce\xeb\x20\x77\xaa\x99\x34\x2a\x02\x50\xe1\xf7\x9a\x43\x2b\xd6\xef\xf2\x76\x9d\x6a\xea\x6f\xb3\xc3\x3f\x7d\xe8\x6d\xea\x95\xd7\x65\x09\x1f\x68\x04\x43\xa2\xc6\xfa\x6d\xa5\x6d\xea\x8c\x63\x0e\x67\xd1\x70\xc2\xef\x15\xe3\x38\xd9\x5e\x88\xef\x18\x2f\x33\x9e\x20\x25\x70\xf2\xd0\xec\xb0\xe6\x51\x89\x74\xc2\x97\x8b\x4f\x59\x06\x7d\xd8\x57\x3e\xf1\xe9\x8e\x70\x3a\x09\x26\x9d\xab\x0a\x32\xa7\x6a\x78\xe2\xeb\x67\xb5\xdf\xbf\xdf\xa7\xa3\xf9\xfd\xe2\xdd\x6b\xbe\x0b\x16\x6e\x0c\x6d\x1a\x83\xea\xc3\xd7\xab\xd3\xee\xf8\xfe\x9d\x25\xb4\x2d\x24\x6c\x3b\xb5\x40\xf2\x26\x59\xb9\x5e\xa6\xf2\xcd\x5c\x27\x70\xba\xb3\x77\xd9\x49\x57\x8a\x84\xfc\x3b\xe8\x98\x26\x45\xb4\x07\x42\x3b\x03\x2c\x1a\x96\xdc\xf6\x7a\x09\xa1\xd2\xa4\x37\x9a\x92\xdc\x1e\x5b\x7e\xf6\xe9\xb7\x2d\xb9\xc8\xfb\x74\x1d\x3a\x34\xf8\x34\x4b\xc2\x0f\x84\x06\xb1\xcc\xcd\xa0\x67\xf9\x51\x6d\xfc\xbe\x4b\x75\xe6\xbe\x2b\xf5\x97\x77\x3c\xd7\xcb\x4d\xaf\x63\x1d\x86\x84\x95\x36\x97\x95\x6a\xa5\xdc\xee\x86\x7b\xbd\x50\x22\x68\x36\x50\x7c\xe9\x5d\x7e\xed\x45\x3b\x41\x30\xb2\x7d\x4b\xb0\xb4\xf5\x94\x69\x3e\x7d\xed\xdf\xa1\x59\x25\xcf\xdb\x87\x89\x8e\x16\xac\x42\x7b\xfd\xd5\x53\xf9\xa7\x0f\xb1\xe8\x10\x04\x88\x25\x17\x0c\xa6\x03\xd5\x28\x3a\xc4\x5b\x0e\x5d\x2c\x9a\x63\xcb\xfe\xc3\xfc\x96\x1c\xd6\xea\xff\xed\x7d\x53\x60\x4b\x9d\x4b\xd8\xbe\x65\xee\x76\x69\xaf\x3b\xeb\x75\x54\x9b\xe3\x73\x6a\x95\x3a\xb2\x18\xd6\x16\x50\xb1\x7c\xe2\x51\xcf\x1b\x34\x11\xc7\x7e\x39\x08\xba\x4a\xf7\x7b\xfa\x43\x5a\x7e\xea\xe5\x31\x55\xc5\xae\x7d\xf9\x57\xe7\xb8\x4f\xd4\xa0\xdf\x4f\xe3\x03\x7c\x62\x7d\xd4\x4f\x3f\x19\x93\x61\xce\x4e\xea\xd1\x5a\x3e\x83\x5d\x6e\xac\x0d\xa5\xf0\xf3\x10\x27\x47\x3c\x35\xd3\x18\x3f\x91\xaf\x95\x83\x2a\xea\x76\x9f\xfb\xbb\xa9\xda\xda\x3b\x2c\x3d\x66\xab\x47\xa8\x3d\xac\x19\x72\xaf\x0e\x04\x9b\x46\xe3\xa1\x8e\x76\x54\x2e\xef\x7b\x7f\xda\xd5\xf9\xda\xb2\xe8\x25\x57\xc0\x90\xf2\x03\x1d\x45\xc2\x2f\xd5\x02\x65\x2b\xd6\x8b\x34\xfa\x80\xb5\x1c\x6e\x78\xa9\x87\x86\x8e\xd0\xda\xdc\x9b\x79\xaf\xa5\xc8\x83\x2b\xb7\xfb\xcd\xb7\xcb\xf7\x5d\x2d\x00\xf9\xc2\x6d\xa8\xd1\xae\x54\x4d\xe1\xab\xbe\x58\x25\xae\x3d\x81\x55\xd6\x96\x4f\x43\xc7\xb7\xfb\x6f\x34\x72\xa9\xd4\x3a\x59\xd4\xf7\x77\x4d\xf8\xa7\x0f\x1d\x93\x83\x99\x2f\xed\xe4\x7e\xc2\x2b\xb5\xc3\xac\xbd\x65\x09\x07\x9e\xa0\x4f\xa3\x32\xec\xe7\x5b\xb4\x06\x7b\xd6\x38\xbe\x07\x5b\xf7\x7e\xf6\xec\x80\xf3\xa9\x30\xf6\x73\x38\x44\xe3\xbb\x57\x8c\xc8\x97\xfb\x7b\xed\xcf\x5b\x25\xde\xfe\x45\x2d\xde\xfa\xb3\x6a\x53\x40\x99\x76\xb1\x3b\x9e\xe6\xe2\xf6\x84\x0f\x6a\x91\x05\xcb\xef\x7d\xdc\xcf\x09\x23\x2c\x77\x18\x63\xbc\xf6\x46\x78\x15\x75\xd8\x59\x34\x4e\x0e\x5d\xb7\x73\x5f\x6d\x43\xb3\x46\xf5\x7c\xa7\xc0\xc4\x3b\x2d\x12\x84\x59\xf1\x2a\x85\x1a\xb8\xbe\xfd\x34\x99\x90\x16\x1d\x03\x5c\x51\xfa\xa7\x56\x01\x6c\xee\x98\x4a\xf5\xc2\x29\x60\xc8\x84\x82\x8d\xd9\x6c\x47\x6d\xf9\xc4\x39\x1f\x7a\x6d\x26\x6a\x5d\xa4\x67\xf6\x62\xf8\xf8\x5e\x53\x98\x33\xd1\x0c\x15\xd3\xf3\xd4\xda\x54\x5b\xc3\xfb\x7f\x34\xd7\xd7\x26\x16\x61\xad\xfe\x5e\x5b\x19\xd5\x55\x6a\xee\xe3\x01\x99\x34\x35\x8f\xcc\xac\x5a\xf2\x39\xf7\xc5\x5d\x24\x20\xa8\xd2\xd2\xc6\x98\xee\x59\x83\x7c\x9f\x9b\xac\x18\x4f\x49\xae\xd7\x81\x58\x4f\x4f\x8b\x0e\x9c\xf6\x55\xda\xd5\xbd\xf2\x4f\x3a\xd0\x7f\xf3\x09\xff\xf4\x61\x31\xd8\x5d\x0c\x64\x57\xd1\xf0\x86\x10\x2f\x8d\x78\xab\xbe\xc7\x0c\xc9\xdd\x6b\x19\x3e\x47\x53\xd2\xf7\xf4\x44\xb7\x56\xbb\xde\xa9\xbf\x9c\x9e\xea\x2d\x03\x4e\x67\xe5\x42\xe5\xd7\x2f\x09\x24\x2f\xaf\xe9\x0f\xf9\x34\x13\x1b\xa4\x95\x6f\xf5\x0e\x15\x4b\x2b\x13\x7d\xf4\x58\x5a\x7b\x62\xec\x97\xc1\xa7\xad\xfe\xc8\x45\xcd\x05\xeb\x3d\xed\x5b\x43\xdf\x48\x15\x11\x2d\x45\x2a\x85\xaa\xec\x5b\x45\xe1\x60\x20\x8e\x1c\xe8\x71\x0f\xb7\x42\x33\xe6\x56\x47\xdc\xf6\xe5\xa9\x05\x00\xbe\xfb\x2d\x72\x0a\x3d\x97\x3f\x0d\x4a\x9f\x16\x8f\xa9\x75\x11\x3f\xd1\x31\x92\x55\x8e\x6e\x22\xef\x8b\x3b\x27\x84\x58\x2b\xc7\x78\x90\x76\x7f\x3f\x00\xe3\xe0\x8f\x1d\x4f\x5c\x22\xd5\x1d\x33\x4b\xed\x96\x8e\x91\xd3\x19\x95\xb8\x8e\xe1\x17\x05\xa9\x49\x73\x11\xa7\x45\xcf\x49\x23\xe4\xd5\xb8\xf4\xed\x47\x2b\x6a\x2d\x7f\x3c\x84\x36\x8a\x85\x3c\x08\xa7\x18\x9a\x8e\x7d\x78\x1a\x9a\x56\xfa\x7b\x9b\x4f\x6b\xd3\xda\x52\x40\xe8\x55\x4f\x76\x66\xd1\x75\x96\xb8\xed\x53\x12\xd7\xa8\x48\xed\x2d\xaf\x0d\xfc\xbc\xf5\xfc\x4a\x79\xde\xfc\x4b\x27\xfc\xd3\x87\x15\x4f\x59\xfc\x91\x7f\xb3\x9f\x61\x5e\x83\xeb\x62\x19\x8b\xfb\xc1\x92\xfb\xaa\xb7\x5b\xcd\xfb\xe2\x07\xcd\x8f\x9a\x02\xb4\xe4\xcc\xa5\x9a\x15\x9a\x07\x71\x8a\x5b\x65\x6e\x85\x86\xdc\xdb\x91\xf6\xb5\xeb\x0d\xcd\x92\x13\x73\x8c\x9e\x59\xdc\x24\x56\xf0\x21\x61\x91\xdc\xb1\xf7\xa0\x5f\x68\x1e\x69\xe7\x8f\xa7\x43\x2c\xbe\x95\x63\xdc\xd6\xa2\x4d\x92\x65\x97\xe6\x68\x62\x20\xdf\x23\x74\xb5\x3a\xca\x93\xc4\xd2\x94\x1d\x5f\x0e\xa7\x15\x9a\xf1\x7e\xa3\xec\xd5\xa3\xd4\x42\xaa\xb4\x58\x3a\x0b\xd4\xb7\x69\x95\xcd\x47\x27\x23\xb0\xe3\x49\xbe\xe0\x78\x28\x2e\xdf\xb7\x4e\xf6\x2c\xbe\xab\xa3\x9d\x4f\xee\x6e\x6e\xa7\xb0\x5f\x2d\x79\x82\x0c\x62\x86\x6f\x5a\x61\x26\x35\x59\x4a\x8a\x23\x34\x57\x26\xc5\xe5\xad\xce\x37\x28\x3a\x5b\x99\xd3\x89\x69\x8f\x77\x16\x9b\xe2\xa2\x2b\x22\xd2\xfa\xa4\x50\xb3\x9e\x8e\xfb\x7c\x99\xc6\x5f\x4d\x77\x67\xc0\xd7\x26\x89\x00\xd3\x60\x5e\x11\xaf\xc1\x21\x68\x51\xab\x34\x97\x06\xf6\x77\x06\x7c\xee\x3d\x2f\x03\xb3\x88\x27\xbc\x2a\x54\x7f\xff\x81\x62\xcc\x97\x23\x3d\xe7\xef\x9a\xf0\x4f\x1f\xfa\xd9\x70\xde\xcf\x97\x03\x97\xd1\x52\x3b\xe4\x2d\x50\xa5\xb1\x68\xf2\x7c\x88\x47\x2d\x88\xa5\xe9\xb2\x3f\x59\x92\x81\x81\x1e\xf9\x54\x03\x9f\x63\x40\x71\x55\x7a\xf9\x3d\xd2\x49\xda\xa9\x3e\x72\x40\xf1\x7c\x8d\xb4\x0d\x26\x9d\xd4\xfc\x5e\x6d\x92\x17\x01\xdd\xe8\x5b\x3d\x73\xbf\x79\xcf\x4f\x8e\x35\x26\xfa\x16\x85\xa0\x65\x12\x5b\x63\x76\xaf\x94\xc1\xe0\x4b\xba\xb8\x4e\xae\x72\x36\x39\x4e\x16\x17\x57\x74\xe6\x12\x4b\x53\x57\x75\xd6\xf8\xbe\x5a\x7d\x66\x17\x1b\xa7\x19\xf1\xda\x21\xcd\xd3\x3d\x51\x47\x1a\x8e\x46\x3d\x19\x93\x4f\xab\x23\x4a\x89\xe2\xfb\x77\x9f\xbc\xcc\x3c\xc8\xe9\xa2\x6c\xda\xf1\x7c\xc8\xd9\xea\x2b\x88\xf3\x9c\x5e\x34\x1d\xcb\x58\xee\xf5\xb8\x9f\xa7\x43\x79\xa9\xa5\x22\xab\x0e\xde\x0b\xd1\xf8\xc5\x37\xfa\xf7\x7d\x7c\x12\x31\x16\x19\xd4\x94\x77\xdd\xbc\x6e\x8e\xd9\x3d\x17\x35\x59\x42\x28\x93\x27\xc3\xd4\xbc\xb9\x9e\x44\xd5\x7b\xd5\xb5\x72\x92\x92\xbb\xbf\xea\x77\x24\x1d\xe4\x25\x6e\x15\xed\x76\x67\x10\x1a\xf0\xb5\xa6\xd3\x9c\x33\xcb\xe8\x78\x8c\xfa\x7e\x04\xe5\xd7\xfb\xdd\xef\xff\x81\xa7\xf6\xef\xf0\x9f\x1c\xd6\x09\x67\xed\xd2\x57\x13\xfb\x10\x34\x50\x47\x30\xdf\xb1\x6e\x03\x95\xb8\xc8\x1c\xa5\x9e\x99\xa2\xaf\xbc\xfb\xac\xba\x3e\x34\xed\xfa\x95\x05\xdb\x2f\x67\x68\x67\x27\x1e\x78\xc9\x0f\xde\x27\xbc\x80\x5a\xa8\xb7\x6b\xcb\xb6\x7d\x9a\xb2\x97\x53\xfc\xf3\x55\x50\xa7\x1b\x4f\x2a\xf0\x92\x7d\xe3\x43\xb2\x9e\xf8\x61\x3c\x2f\x1a\xf5\x91\x22\x79\x74\x3d\xc9\x64\x43\xf6\xfa\xbd\x1e\x45\xdd\xeb\xd2\x79\x33\x48\xa9\xff\xee\x27\x57\x88\xfa\xc5\x1c\x8f\x45\xd6\x60\x72\x56\x89\x7c\xaf\x7d\xce\x54\x00\x04\xbc\xd1\x7c\x30\x02\xaa\xa9\xd7\xa2\x5e\x90\xb4\x13\x2e\x77\x78\xd4\x64\x5f\xbb\xb7\xea\xc6\x93\x5b\x19\xf9\x3a\xb8\x9e\x07\x05\x0d\xd7\x14\x99\xdc\x2d\x4a\x9f\x7d\x2a\x79\x4e\x6b\x58\xa5\xa3\x4d\x1b\xf9\xc1\x2d\x67\x9d\xf5\xd4\xa9\x7b\x3d\x19\xd5\xa7\x86\x55\xef\xfd\xb5\xa6\x3e\x87\x1c\x8d\x90\xa5\xca\x13\xbd\x26\x47\xc6\x5b\x9f\xfd\x05\x65\x7d\xd7\x7c\xbc\x91\xbc\x8d\x9a\xc5\x9d\x28\x28\x15\x9c\xfd\x10\x89\x4b\x35\x56\xa6\x71\xfc\xae\xfc\xc4\x1e\xef\xf1\x37\x15\xd1\x7d\xaf\x9d\xfc\xfc\xa5\x18\xff\xe9\x43\xff\x95\x3b\x26\x74\x2e\x3e\x27\xdf\x93\xa0\xa9\x16\x43\xff\x91\x2e\xbc\xef\xf9\xec\xd5\x23\x42\xb7\x9e\x7d\x73\xef\x33\x49\x70\xbc\x57\x11\x44\xfd\xde\x53\x64\x35\x20\xe9\x79\x1f\x33\x17\x9e\x28\xe2\x63\xf4\xe0\xf3\x55\x24\x67\x78\xed\xf5\x1c\x5e\xae\x92\xea\xef\x71\x34\x47\x93\x52\x7c\xf5\xbb\x37\xfb\x44\xb0\x0b\x8d\xb0\x5e\xc6\x52\x74\x1d\x14\x85\x23\x8f\x4c\x3b\xf1\xc3\x78\x32\x89\x44\x23\x9f\x48\x4b\x3e\x25\xf5\x27\xb4\x28\x9f\x4f\x46\xe9\x9c\xfb\xf2\x99\x9f\x6c\xa1\xfd\x94\xa4\xdb\x6f\x9b\x67\x78\xcf\x8f\x2f\xc4\xeb\x35\xba\x4e\x0a\x4f\x5c\xf1\x93\xe1\x5f\x8f\x4e\xf6\xbb\x68\xf4\xe6\x26\x37\xee\xfb\xed\x78\xe6\xec\x81\xff\x79\xad\xd0\x84\x61\xe3\xdd\xc9\x57\xce\xef\xd4\xdf\x89\xa3\xde\xef\x7d\xe2\xbb\xd2\x89\xfe\xb1\xda\x44\x51\x26\xd9\xcc\x6f\x0c\xe3\x34\xf2\x6b\x1a\xee\x3f\x8e\x9f\xb8\x1f\x32\x92\x1f\x49\x49\x91\xd8\x0d\x9e\x9f\xb9\xde\xab\xb6\xf1\x5d\xef\xfc\xe5\xaf\xf6\x79\x9f\x8b\x4b\x93\x4d\xfa\xf8\xe3\x45\x50\xe6\xce\xbf\x62\x8c\xff\xf8\x61\x07\x51\xaf\x8b\x29\xfc\x5e\xb5\x91\xc4\xe2\x0e\x32\xa4\x1c\x99\x3e\x1e\x6e\xf6\xeb\xfe\x89\x67\xf2\x55\xc9\x3d\xd5\x6f\x07\x79\xd8\x1d\x19\xc0\xec\x68\xbc\x7f\xa2\x3a\x99\x3c\xd3\xec\xda\xbf\x3d\x3c\xfe\x8d\x6a\x38\x4f\xba\x67\x3d\x17\xc7\x4b\xe6\x14\xb3\xbb\xbf\x27\x0f\xa2\xa3\x78\x10\x4c\x43\x3c\x57\xbd\x4f\x97\xc7\x33\xdf\xc5\x30\xdf\x6b\xe5\xc6\xe7\x4c\x7d\x80\x2b\x7f\xef\xcd\x73\x2e\xff\xa6\x7a\x58\xbf\x72\x70\xef\x9e\xd5\x13\xcf\x9b\x35\xeb\xb1\x04\xe6\x0b\x11\xd4\xef\xf9\x31\xc6\x93\x65\xf0\xb9\xc4\x64\xfe\xa5\x4d\xe9\x7d\x49\x0f\xe5\x78\x10\xd6\x6b\x7b\xd4\xaa\xdc\x61\x7e\x4c\xc5\xcc\x48\xc7\xfa\xf5\xf4\x57\xde\x44\x94\x98\x19\xcf\x50\x81\x32\x84\x84\x47\x7d\x0a\x08\x0a\x3b\xa7\x28\x43\x7f\x4f\x11\xe1\xbc\x22\x83\xb6\xee\x29\x21\xc1\x94\xe5\x01\x5c\xbb\x28\x5a\x31\xa7\xa4\x5e\x33\x8b\x35\x8b\x40\x00\x50\xb0\x16\x3b\x8d\xa5\x1d\x2c\xc6\xaf\xf6\x6d\x2a\x6e\xbc\x4f\xa1\x79\xa9\x10\xf4\x3d\xe0\x9c\x8a\xb3\x63\xc4\x86\x55\x1f\x3a\x37\xb7\xbe\xbf\xba\x6b\xff\xf4\xa1\x1f\x13\x9a\x3a\x63\xb0\x06\x61\xc8\x44\xd9\x54\x4a\xbe\xb2\x37\xbd\xef\x83\xca\x4b\x25\x86\x64\xd8\x01\xcb\x7c\xd2\x6f\x5f\x1d\x6d\x53\xa6\x32\x3b\x81\xcf\xb1\x5b\x9b\x40\xcf\x8b\x0e\xc6\x05\xc2\xcf\xd6\x74\xdc\xfe\xac\x75\x1c\x41\x0e\x98\x91\x96\xe1\xf7\x1d\x8d\x42\x1a\xf7\xc0\xcf\x67\xd0\x2b\xb2\xc1\x7e\xd2\x78\x77\x3e\x90\x07\x4a\x9d\x4f\x11\xf6\x37\xc1\xe6\x9e\x35\x0d\xed\x67\x5c\x57\xc8\xe0\xf9\x12\x06\xe0\x6d\xc0\xd4\xb9\x12\x84\x7d\xe0\xb8\x1a\x2a\x3f\xc5\xd2\xef\x30\x4b\x63\x35\x31\xee\x79\xd2\x01\x90\xde\x67\x50\xfd\x34\x21\x1c\x7a\xf6\xf7\xf4\x11\xfb\x38\xae\xbd\xfa\x7e\x0f\xff\x29\xcb\x61\x3e\x25\x48\x8d\xde\xaf\x11\xa9\x97\xc0\xaf\x94\x31\xeb\xc9\x47\xb0\xb8\x03\x23\x0c\x4a\x2a\x4b\xd3\xe8\x5b\x44\x73\x3c\x9d\x95\xdf\x56\x47\x4b\x14\x95\xe5\x5f\x2d\xf9\xd7\xee\xf4\x92\x2b\x1a\xb4\xef\x23\xa1\x95\x10\xb5\x9f\xc4\x3b\xd6\x7c\x40\x66\x98\x52\x3c\x1e\x3a\x34\x90\x82\xa7\x4a\x6b\x5b\xdd\xb2\x1c\xb2\x98\x8a\xdf\xeb\xa1\x5b\x6f\x43\x78\x25\xdf\xfb\x92\xd0\x56\xb3\xf8\x9b\x62\xfc\xa7\x0f\x31\xe3\x69\x82\x6a\x55\xd0\x06\xb5\x9e\xe5\x12\x57\x81\xfe\x6f\x4f\x02\x35\xe2\xef\x35\xf2\x68\x11\x9a\xf4\x95\x29\x32\x7e\xd4\x58\x3f\xab\xc7\xa2\x66\xf4\x3d\x53\x22\x29\xf9\xd7\x9c\xeb\xd8\x51\xe6\xd4\x9b\x95\x43\x62\x0f\x06\xb5\x34\x61\xad\x29\xb1\xb7\x00\x77\x4b\xc2\x20\x04\x0e\x09\x24\x4c\x06\x69\x67\xac\x17\xe0\xf7\xfa\xb3\xa0\x01\x5a\xb4\xbe\xf1\x82\x5c\x00\xa0\x50\xe5\x93\x08\x5c\x0c\xda\xe3\x19\xce\x11\x2a\xd9\xf1\x5b\xba\x1f\x0c\x56\xcd\x08\xb6\xb2\x93\xa1\x6c\x0c\xe6\xb2\x8a\x2a\x9a\xa3\xa7\x39\x3e\xf3\xd9\xe1\x3c\xeb\xa6\x87\x3c\x43\xa8\xea\xba\x37\x38\xa4\x62\xc5\x7e\xab\x2b\xf3\xbc\x4f\x52\xf0\x3b\x1a\x96\xad\x5d\x73\x00\x21\xe7\x4b\x63\x6c\xa8\xf2\xa0\x24\xa7\x5c\x99\x53\x72\x45\xa1\x26\x5e\xab\x78\xbf\x6a\x7f\x54\x1b\x7d\x7b\x54\x18\xe3\xd6\xeb\xbb\x88\xd7\xc6\xae\x5f\x62\xbc\x64\x83\xb2\x0c\xb1\x14\x1d\x11\x8e\x77\xeb\xf3\x57\x98\xeb\xd9\xc2\x3d\x5b\x59\x89\x8a\x29\x79\xf0\x8e\x50\xbf\x10\x4a\xb1\xe9\x55\x52\x1e\x0f\xd5\xf4\xed\xe5\xd6\xee\x1d\x7f\xc5\x13\xfe\xe9\x43\x3f\x6f\xca\xf5\xa9\x98\x40\x30\xe1\xa3\x5a\xca\x1e\xfe\x95\xd9\xc7\x9c\xaf\xd4\x26\x51\x4d\x43\x11\x52\x64\x25\x59\xd3\x35\x8b\x29\xe3\xd2\xc3\xb3\x9e\xbd\x3a\x9c\x3f\xd6\xdb\xa3\xfb\x7f\xf3\xa9\xa1\x3f\x3d\x60\xb3\xe9\xc0\x64\x8e\x26\xdf\xbb\x74\x22\x31\x99\xfb\x24\xdd\x3f\x6d\x3d\xdf\x79\xf8\xf3\x7d\xd6\x4a\x9a\x0a\x7f\xc1\x22\xbb\xa7\x7b\xb6\xe7\x7e\xff\xe2\x43\x3d\x5f\xf3\x51\x2f\x5a\x2b\x08\x35\x9e\x37\xdd\xf9\xbf\x5b\x84\x6c\xce\x4f\xa6\x79\xbd\x7a\x06\x3e\x38\xf0\x7f\xa1\xc3\x32\xbf\xdf\x33\x0f\x13\x94\x57\x35\x79\x8e\x36\xbf\x41\xc4\xf7\x13\xeb\x23\x9d\x7c\x29\xac\xc8\x11\xe4\x24\x42\xc7\xd5\x2e\x7d\x91\xdc\x57\xa3\xf4\x90\xec\xcf\xd7\xac\x72\xf3\x9d\xe2\x41\x79\x65\x54\x77\xff\xfb\xf5\x2b\xdf\xb4\x5d\x27\x15\x13\x5f\xb0\x30\x24\x78\x40\x47\xba\x37\xbd\x25\x49\x60\x5a\xc5\xb1\x0f\x01\x2a\x88\x5a\xa5\xc8\x4a\x26\xd1\xd8\x2a\xb9\xcb\xef\x89\xe0\xe3\xcb\xdf\xef\x55\x74\x59\x8a\x51\x07\xc2\x72\xeb\x2d\xd9\x0e\x1c\x47\x6d\xf2\x7c\xf9\x16\x0c\xdf\xc0\x7c\x57\xfe\x0d\x13\xfe\xe9\xc3\xba\x1b\x05\xab\xf2\xf4\xa5\x8c\xde\xf7\xba\xe6\xee\x33\x01\x12\xba\xbe\x0e\xba\xcf\x14\xac\x37\x4e\x8c\x11\x4e\x57\xe5\x12\xdd\x52\x7a\xa6\x91\x4f\x51\x85\x92\xc1\xd3\xec\xe4\x1d\xcf\x4b\x6e\x0b\x3a\xb6\xf0\x7f\x53\x29\x40\x44\xc5\x89\x77\xb6\x7f\x33\xe2\x65\x0d\x8a\xfe\xc1\xcb\x9a\xd5\xeb\xf4\x7b\x16\x50\xbc\xe9\xd3\x53\xfa\x8e\xdd\xf5\x16\xaa\x89\xb7\x76\xc4\x21\x21\xfd\xd5\x7b\xad\xa3\xb0\x1a\x3f\xdd\x05\x2b\x40\xec\xf9\x32\x0e\x65\xfb\x55\x69\x5b\x2f\x43\xf1\x16\x1b\xf5\x92\x8f\xcd\x8c\xb9\xbf\xde\x62\x46\xd8\xf4\x72\xc3\x5f\xba\x3f\xf3\xe5\x58\x71\xcc\x0b\xff\x97\xfa\x9a\x52\xa6\xef\x74\x80\x1f\x45\xb0\xfe\xe0\xab\xae\x1e\x8c\xa1\xcf\x6a\x16\x3a\x73\xbe\x7e\x0f\xf5\x4e\x9e\x8c\x17\x33\xf4\x91\x69\x2e\xec\xc5\xd1\xa3\x78\xc6\x3b\x3a\xb0\x9b\xd2\xa4\xd9\x37\x41\x04\x96\x7e\x83\x7c\xee\x53\x74\x38\xbf\x07\x26\xb5\x22\x07\x85\xd7\x91\x82\x01\xe5\x44\xbf\x4e\x61\x97\x29\x43\x8c\xfd\x3d\xce\xbb\x03\x16\x4c\x67\x52\x5f\x4b\x32\xd9\xc9\xad\xbe\xea\xaf\xa3\xf4\x3f\x7e\x88\x52\x83\x3f\x36\xf9\x41\x9d\x68\xcc\xef\x48\x62\x09\xab\x5f\x56\x91\x3b\xfc\x93\x54\x7e\xf6\x42\xdf\x3e\xba\x04\x49\x8d\x13\x4c\xa7\x77\x98\xbf\x33\x71\x3b\x8c\xaa\x44\x7e\x6c\xcc\x74\x39\x7e\xfa\x73\xbe\xfd\xfb\x73\x32\xac\x5b\xa5\xe1\xcd\x5c\x7a\x4b\x2f\x2f\x4f\x14\x75\x09\xf0\x17\x0d\x45\xb6\x4f\x11\x78\xe5\xd8\xf3\x5d\xe3\xde\xc4\x03\xe3\x29\x1a\xce\x77\x88\x79\xef\xff\xae\x51\x0b\x79\xf4\xf0\x7d\x77\xe2\x7f\xa5\x13\xce\xe3\xf8\x65\x24\x8f\x0e\x9f\x67\x1a\xc1\x5f\xbe\xb6\xc3\xc4\xac\xc7\x67\xbc\x76\x6c\x7a\x12\x6f\xc5\x20\x81\xaa\xb7\x73\xf1\x75\x0d\x4a\x69\xa1\xeb\x20\x23\xd9\x53\xb1\xa2\x59\xef\x1b\x78\xd5\x02\xca\x70\x53\x5c\x51\xf7\xdd\x09\x9f\xf7\x92\xfd\x7c\xdf\xcc\xd5\x77\x8a\x5d\x3e\xef\x77\x7c\xbb\xf9\xeb\x01\xdb\x57\xbd\xf0\x75\x7e\x4a\xcc\xd8\xdf\xa9\x43\xdd\xa0\x6f\x21\xa3\x7a\xee\xc0\x26\x8a\x8b\xc4\x4e\x7e\xaf\xb5\x1c\x1a\x42\xb6\x37\xb7\x4a\xc9\xa7\xe3\xf1\xd3\x23\xbd\xde\x6a\x4c\x88\x76\xb3\xb0\xf2\x7b\x8d\x1b\xcf\x14\xea\xef\x9a\xf0\x4f\x1f\xfa\xaf\xef\xa9\xf8\xde\x93\xf0\xfc\x52\xa9\x6b\xf4\xca\x10\x94\x42\xc2\x11\x9f\xb6\xe2\x9a\xd6\x81\x49\x41\x70\x49\x74\xc5\x6f\x17\xe2\x41\x0f\x70\x61\x0e\x91\xed\x7e\x62\x05\xc3\x81\xc0\xd1\xff\x99\x1b\x71\x8a\xff\xb0\x50\x1f\x7f\xd5\x31\xa9\x10\x7d\x0c\x45\x06\xca\xf9\xbc\x08\xa4\xe8\x29\x1e\x4c\xf3\x61\x4f\xd2\x11\x4b\x51\x68\x60\x49\x15\x77\xff\xd6\xd4\xb9\xc7\x92\x3e\x47\x43\xee\xe7\x21\xab\x9b\xe2\xaa\xd3\x5f\xfd\x00\x4f\xc3\x75\xd1\x08\x88\x14\x99\xcc\xef\x1d\x89\xe8\x2f\x4a\xf5\x25\x51\x02\x2e\xab\xa7\xa4\x2e\x68\x19\x8e\x7c\x6c\x65\x7f\x33\x9b\xdf\xf4\x65\x70\x35\xd9\x52\xce\x43\x93\x52\xc5\xf4\xee\x45\x1e\xa1\xbf\x93\x31\x9f\x58\x3c\x5f\x57\x11\xfb\x92\xce\x5c\xfa\x39\xd7\xeb\xef\xaa\x7a\x76\x50\x45\x2a\x41\x25\xf5\x3c\xd6\xdc\xf9\xe5\xe9\x42\x3d\xde\x42\xcf\xf9\xfa\x68\x31\xfa\x6e\xf3\x29\x53\xbe\xd4\x88\x78\x8f\x8c\xf5\xc7\xa6\x65\xbe\x4e\xce\x6f\xe2\x1d\xd5\x14\xd7\xaf\x10\xb3\xd5\xb5\xd7\x5e\x75\xcd\xc8\x41\x03\xc6\xb7\x91\xfe\xb7\x86\xde\x4e\x3a\x4f\x47\xd7\x96\x14\xce\x7f\xff\xa9\xfd\x3b\xfc\x27\x87\xb8\xf5\xa2\x6e\xd6\x80\xba\x85\x97\x5e\xd9\x78\x5a\x65\xf3\x19\x10\x4a\xa5\x6f\x09\x7b\x2a\xa1\x77\x51\x2d\x0a\xff\x56\x64\x58\xac\x56\x6a\x48\x22\xea\xe1\xdf\xbd\x9b\xe7\x38\x87\xea\x92\x8a\xfe\x5a\xaf\xd7\xfa\x59\x9e\xe8\x84\x2c\x3a\x46\xbd\xff\x0e\x76\x4d\x83\xb1\xe2\xd4\xbf\xbd\x5e\x5d\x73\x3d\xcf\xe5\xfd\xec\x97\x9c\x7c\xbf\x27\x2e\x4f\x39\x6c\xbd\x8e\xeb\x9e\xef\xc9\xa6\x22\x19\x1b\x4c\xee\xb4\xd8\xe2\x35\x4a\xa2\x71\xbe\xae\x83\x9e\x0b\xcf\xbe\x62\x31\x51\x90\xd8\xdb\xc3\x9e\x98\xf7\x19\x56\x7d\x3a\xa0\x94\x01\x87\x92\xcb\x47\xf0\x84\x44\x7b\x51\x9d\x5c\x2f\x09\x4a\xe4\x7a\xa3\x1f\x3e\x26\x79\xe6\xe9\x17\x2f\x26\xd1\x97\x45\x10\x66\x86\x3e\x73\x56\x4f\x13\xe7\xbd\xf4\x54\xac\xc3\xc4\x6e\xeb\x6e\xa2\x3c\xbd\x47\x2e\xea\x06\xec\x22\xfa\xca\x4d\xcf\xf5\x09\xb3\xec\x47\x24\x77\x0c\x16\xe7\xd9\xcc\xbc\x18\x8f\x1e\xde\xd8\x72\x14\xf2\x09\xc3\x1a\x38\x07\xa9\x16\x3a\xaf\x6b\xf7\x9a\xbc\x76\x29\x74\x5c\x1c\x33\x9a\x79\xff\x2a\xcb\x12\x9d\xe7\x5c\x4f\xf6\x7d\xe3\xc8\x0f\x03\x8c\xb3\xe5\x55\xea\xfb\xbb\x26\xfc\xd3\x87\xf5\xcc\x12\x3e\x1d\x44\xff\x62\x70\xa4\xce\x3f\x9e\x7e\xe0\xaf\x2f\x3b\xf5\xd1\xf5\x76\x44\x33\x8d\xd5\x73\xbc\x8e\xea\x67\x67\x44\x26\xc9\x59\xf4\xd0\x42\x78\xec\xed\x61\xcf\xc2\x48\x2a\x9e\x89\xd3\x37\xf4\x17\x8a\xf2\xbf\xf9\x6b\x6c\xa8\xfb\x99\x96\xbb\x28\xfc\x28\x10\x0c\x7d\x3c\x93\xe9\xd9\x54\x5e\x5c\x6c\x15\xf1\x86\x2b\x4e\xbe\xf5\x82\xd2\x3b\x0b\x3b\xb3\x65\xde\xef\x19\x11\xc4\x4f\xf0\x95\xcf\xc1\xd9\xbd\x18\xb2\x3d\xed\xb8\xdc\xe7\x8a\xc2\x5f\xfa\x94\x2e\x8b\xd9\x55\x07\x33\xf8\x3d\x0b\x26\x9a\x93\xf4\x09\x9e\x1f\x3c\x49\xa6\x04\x06\xe8\xa4\x5c\xa9\x53\x21\xcf\xdb\xd1\x7b\x45\xab\x67\x15\xf5\xb1\x7a\x66\x61\xb1\x71\xc7\x5b\xca\x74\x2b\x02\xea\xb4\x5e\x47\xb7\xc7\xc9\x57\xfa\x9f\x0a\x34\xa2\x19\xb3\xf1\xce\x47\x6d\x30\x7a\x92\x0f\xbd\xb2\x7e\x5f\x59\x5b\xb7\xef\x47\x37\xd8\xc0\x53\x0f\x3d\xa9\x53\x17\x26\x47\xff\x98\x38\x71\xb6\x9f\xb1\x10\x94\xbd\x28\xea\x7b\x90\xeb\xd9\xf4\xe1\xf1\x50\xdc\xf1\x0f\xc1\xfe\x13\xb1\xe5\x64\x9f\x56\xdb\xf0\x17\xd4\x1f\xa6\x53\xea\xfc\x55\x5d\xfb\xc7\x0f\xfd\x57\x66\x97\x34\x13\x7e\xc0\xa2\xad\xf7\x9b\xa9\x73\x77\x5e\x1d\xcf\x94\x12\xe5\xbf\x56\xd2\x2e\xca\x3e\x75\xaf\xaa\x7a\x40\xcb\x87\x33\xe2\x1c\xcf\x46\xb2\x02\x30\xb0\xec\xc4\xac\x0e\x07\x2e\xd8\x19\x80\xee\x71\x9c\xf5\x3a\x14\x9f\x11\xd3\x53\x66\x9e\x0a\x64\x08\xeb\xe7\xb9\x20\x52\x1f\xf7\x19\x4f\x51\x8d\x76\xaa\x5f\xbf\x1d\x51\x72\xeb\xb9\xa8\xa6\x23\x82\x75\xf3\xec\xa7\x37\x30\xcf\x73\x88\x90\x6d\x57\x92\x0b\x11\xbf\x32\xc7\x96\x19\x39\x93\x7a\x4a\x06\xa3\xa7\xf5\xb4\x52\xf1\x59\x45\x95\xfa\x39\xe5\xef\xd7\xf1\xa0\x8c\xb8\xdf\xa8\x98\xf8\x39\x7b\x5b\x2d\x9f\x12\x23\x1a\x71\x7e\xcf\x06\x67\xd3\x66\x30\x22\xb8\xf3\x69\x24\xe6\x43\x3e\xe6\x92\xad\xeb\xe8\xc4\x59\x88\xf9\x64\x6c\xab\xd9\x96\x55\x61\x3f\x15\x5c\x2d\xe2\xee\x19\x64\xe6\xfc\x76\x0c\x33\x4f\x91\xa8\x93\x73\x7c\x1a\x89\xd1\x7f\xa9\xc0\x7a\x03\xa5\x56\x29\xaa\x7e\x69\xdd\xa3\x45\x1f\xf9\xf2\x3e\x4c\xbc\x8f\xcc\xa3\x6f\x75\xcb\x14\x5c\x0a\xba\x5f\xcf\xfa\x98\xb2\xc6\xbe\xe7\x58\x72\x31\x2b\x9e\x86\xde\xdf\x42\xe4\x3f\x7e\x88\x4d\xc1\x68\x27\x40\xe8\xf4\xe9\xfd\xa8\x5a\x0d\x05\xc1\xf5\x20\x1c\xe7\xff\x5c\x62\xca\xd7\x1b\x01\xd8\x1b\x4e\xec\x03\x06\xa3\x4f\xa2\xf7\x59\xb9\xb6\x57\x15\xa0\x65\x2a\x4f\x37\x75\x3a\xae\xf1\x50\xba\x0d\x22\xca\xd7\x37\x4c\xf7\x88\x32\x8a\x6a\xdf\xd6\x6f\xbd\x41\x44\xbb\x63\x8c\x75\xc4\xb8\x47\xd5\xe1\xae\x67\xd3\x0a\x1a\x74\xda\xff\xec\x62\x14\x9e\x3a\x22\xd7\x29\xc8\xca\x69\x90\x3e\xfc\xd5\x51\x97\x37\x17\xb7\xbc\xfb\x2f\xb6\xae\x5b\x17\xc2\xee\xe8\x3f\xb6\xd8\x7d\xcb\x68\x1c\x9a\x64\x87\x4e\xe1\x79\xda\x06\xea\x9a\x33\x9f\x44\xa3\xbc\x7f\xae\x97\xd9\x67\x18\xf5\x14\x08\x74\x34\xaa\x22\xb0\xa9\xef\xdf\x88\x32\xf3\xf7\x34\xe7\x64\x55\x9e\xc5\x9c\x1c\xc7\xf7\x54\x9a\xcd\x71\x73\x3f\x6f\xd1\x6f\xa0\x0e\xfd\x5d\x91\x55\xaf\x27\x5f\xd2\xaf\xe6\x41\x33\xe0\x4c\x63\xe9\x17\xbf\x6a\x36\x7a\x34\x67\x3c\x13\xe0\x72\xb2\x7a\x94\xfa\x53\x68\xf0\x9d\x6f\xac\xf7\x77\x80\x49\x5b\xa7\x17\xb5\xea\xfb\x80\xb1\x5e\xb1\xc7\x54\x49\xd2\x3d\xf9\xf2\xb6\xb5\x9d\x52\x5e\x0f\x04\xc8\x6a\xf6\xa9\xec\xbf\xff\xd4\xfe\x1d\xfe\x93\xc3\x9a\xcf\xa9\x04\x16\xbb\xe2\xd7\xff\xa8\x74\x48\x1b\xa9\xb2\xc3\x17\x4b\x5d\x6d\xb3\x12\x55\xf5\xef\x63\x69\x3f\x81\xba\x73\x8e\x73\xf5\xa1\xbd\x71\x18\xae\xde\xe7\x2c\xf0\xa2\xdc\x23\x8e\x7d\xba\x23\x66\xc1\x1a\xcb\xba\x01\xfd\x1d\x7c\x49\x18\xcd\x45\xef\xda\x11\x3a\x23\xf3\xb9\xb4\xe4\xab\x61\xfc\xd6\x0e\x07\xf1\xd6\xb7\x9f\xca\xfa\xd1\x2d\x5b\xde\x1f\x16\xb5\xe2\xd9\x27\x82\xa0\x9e\x2a\x9b\x48\x9e\x19\xf2\x2a\xae\x49\x85\x9e\xde\xf4\x9c\x36\x17\x83\x4d\x67\xee\xc8\xb0\x1f\xd0\xef\x81\xf1\x5c\xfd\xd9\x9f\xd7\x7e\xf0\xcb\xcf\x09\xc5\x1c\x89\x31\x19\xec\xeb\xb4\x1e\x94\x4e\x86\x59\x0c\x1f\x0a\x06\x98\x81\x7e\x88\xb0\xa7\x27\xdd\x97\x14\x4b\x54\xf8\x2d\x7c\x27\xbb\x64\x31\x9e\xcf\x42\xcf\xe2\x38\x77\x3c\xe5\xa4\x67\xbb\x5d\xa2\x77\x6b\x6f\x3d\xc5\x9a\x57\x01\xba\x3f\x2b\x96\x0a\xc7\x8b\x8e\x7e\xcd\xe5\xdc\xc9\x7c\x3b\xbe\x2c\x46\x9c\x67\xcc\x75\xfa\x5b\xfd\xb5\xfe\xee\xcf\x62\x98\xb9\xa9\x73\xcb\xa7\xac\x1d\xaf\x16\xf2\xe9\xb8\xe2\xf2\x43\xd9\x71\xe9\x15\xdb\xbb\xfe\x82\xcd\xff\xf4\x21\x8e\xbe\xa5\x0b\xdb\xcb\xa2\xad\x32\xce\xb3\x4c\x77\xe2\xbe\xea\x5e\xb2\xe7\xcc\x87\xe7\xeb\xf5\xa7\x11\xa8\x93\x60\xa5\xb3\xc6\x01\xde\x1f\x20\xf4\xf8\x74\xf1\xee\xc7\x19\x80\xf1\x72\xbd\x4e\x62\xcf\xfc\xd1\x87\xc4\xf5\xc9\x29\x75\xd4\xd2\xa3\xc0\xce\x7a\x9f\x9e\x05\xfd\x7c\xe6\xb8\x34\x5d\x28\x29\xde\x07\x04\x4e\x46\xf1\x97\xa6\x9a\xb9\x33\x49\x39\xcf\xa3\xe7\xd2\x2c\x9b\xba\x16\xd6\xd3\x25\xa5\x46\x0c\x33\xee\xf7\x0c\xf5\xc8\xa4\x94\xf6\xd4\x89\x68\x03\xc8\x00\xdc\xa7\x69\xf4\x5b\xf9\x78\x9a\x10\xc7\xef\xab\xab\x43\x54\xf3\x51\x73\xa4\x09\x5f\xe3\xa9\xbe\xf9\xf4\xcc\xd7\x31\x39\x8c\xd4\xd1\xef\x8b\xd8\x83\x2e\xfa\x87\x3d\xe2\x8c\xf3\x34\xb1\x55\x65\x1e\xc7\xe0\x74\x56\x1f\xb3\xe8\xc9\x24\x96\xbe\xc2\x86\x6f\x9d\xdf\xfa\xa2\xec\x5e\xd2\x4a\x7c\x4a\x2a\x2c\xfd\x67\xf0\xa7\x1b\x8f\x27\x78\xdd\xe7\x45\x1f\x82\x36\xc3\xd3\x6b\xac\x97\x2f\xa6\x9e\x5b\xeb\xa9\xe7\x02\xc6\x7a\xcd\x19\x22\x43\xfd\x64\xfd\x5a\xd5\x9d\xfb\xfa\x3e\x11\x1b\xdc\xc1\xee\x79\x5a\xb3\x94\xab\xfe\xf6\x44\xfe\xe3\x87\x78\x4a\xc3\xe3\x7b\x59\x7e\x4a\xc9\xea\xe2\x19\xef\xa9\x7e\xd0\xbb\x9c\x3b\x78\x38\x9c\x05\xf2\x11\x33\xf3\xf5\xf5\xca\x10\xde\xa7\x15\xf4\xaa\x11\xfb\xa9\x2b\x89\x01\x18\x1a\x33\x90\xbc\x7c\xd0\x6e\xdd\x67\x28\x3d\x55\xbb\xb5\xea\x4c\x79\x70\x0e\x71\xd0\xe5\x7a\x3a\xc7\xd4\x82\xef\x7c\xcd\x02\xd7\xba\xf1\xab\x21\x74\xa8\x86\xb0\x4a\x66\x50\xef\xe4\xbe\xd5\xfe\x4f\x3c\xa3\xf5\x9e\x23\xd7\x0e\x7e\x69\x39\x0c\x99\xbd\x49\x41\x76\xfe\x0a\xbb\x53\x5c\x56\xb3\x7f\x2a\x02\xeb\xf9\x34\xc9\x8d\xa8\xb2\xc4\x8b\x16\x06\x02\x29\x54\x4f\xcf\x7d\xaa\x0c\x4e\x2e\xfa\xbc\xc7\xaf\x01\x3e\xa5\x37\x72\xed\xf5\x56\x09\xee\x90\x0b\x6f\xb4\xac\x84\xc9\xbb\xa1\x28\x9f\x7d\x34\x09\xc6\xa0\x1b\x57\x47\x25\x26\xd9\x3e\x3f\xbd\xa8\xd7\x6b\xce\xd3\x6a\x3d\x3d\x4b\x77\xa8\x7b\x32\x0e\x32\xac\x64\x6e\x29\xac\x8b\x0d\x76\xea\xcd\x1a\x4f\x2e\xa1\x43\xa4\x4b\x9e\xf2\x4a\x06\xaf\x45\x4c\x96\x5c\xc5\xd6\xf6\xb6\xbf\x7a\x62\x52\xca\x13\x1a\x26\xe7\xf3\xbe\x15\x30\x7e\x4f\x4c\x61\xbd\xe4\xc4\x4b\xc6\xfc\x85\x13\xfe\xe9\xc3\x62\x06\xb2\xb6\xfe\x98\x03\x94\xbd\x24\x51\x2e\x51\x33\x76\xa3\x31\xbe\xdf\x96\x69\xfe\xe8\xb6\x62\x82\xa4\x8b\x5c\x57\x00\x14\x81\x3a\x01\x1d\x8c\xc4\xf2\xd7\xa7\x10\x21\xd1\x88\xa3\x8f\xb3\xea\xd9\x4c\xd9\x48\x21\x34\x0b\xae\x20\xed\x3d\x04\x08\x59\x6c\x97\x1c\x65\x02\x18\x90\xfc\x9e\xb7\x49\x76\x34\x45\x4f\xd2\x00\x2f\xa5\xc1\x0a\x72\x25\xe9\x81\xfc\x9e\xd0\xa1\x2e\x87\x60\x2d\x75\xef\x2b\xbb\x13\x55\x1c\xcf\x6e\x31\x15\xec\xf8\x2f\xf4\x54\xb3\x9c\xf4\x81\xdb\xf2\x76\x5e\xc2\x72\xf9\x66\x7a\x01\xe8\x49\x76\xec\xdc\xd7\xd9\x66\xc8\xbf\xcc\x69\x87\xe6\xd8\xca\xc0\xba\xe7\x67\x47\x42\x72\x8e\x9b\x62\x09\x45\x97\x38\xf3\xe9\xbf\xf5\xf9\xfc\x6c\x3a\x66\x14\xde\x0e\x96\xe1\x6e\xd5\x17\x59\xfe\xef\xcb\xe7\xc5\x42\x55\xb2\x57\x16\x55\xc4\x70\x86\x8f\x59\xfb\xb9\x37\xd1\xad\xd2\xf4\xc5\x0a\x9c\x02\x76\x6c\xb9\xcb\xbd\xdf\x49\x00\xb3\xac\xcb\x7b\xe3\xa3\x3f\x1a\xf5\x83\xe9\xff\x4e\xd9\x64\x6e\x37\x43\x4e\x36\x7d\xcd\xe7\xd0\x86\xd2\x5c\x91\x9f\x3f\xe3\xf7\xeb\xc0\xf7\x74\x6b\xf9\xe2\xfc\x6d\x89\xfc\xc7\x0f\xbd\xe9\x3b\x0f\xc8\x56\xd7\x6f\x4e\xbf\xa7\xda\x78\xee\x8f\x94\x96\xef\xa3\xfc\x42\x43\x11\x86\x88\x1f\x5b\xac\x97\xa7\x7b\x13\xbd\xcf\xd8\x5f\xb1\xaa\xcf\xd7\x59\xac\x29\x82\x7f\xea\xa4\x5b\x98\xf2\xe3\xf7\x57\x5d\xad\xe4\x31\xf7\x10\x61\x3f\x9f\x05\xea\x49\xb4\x5b\x71\x07\xb9\x55\x0e\xce\xe1\xcb\xf8\xf8\x5f\xe7\x79\xf5\x36\xef\x1c\x43\x0d\x5f\xdb\x52\x4c\x7c\xd3\xf4\xef\x35\xdf\xc6\x28\x6b\xf6\x5c\xa8\x57\xcf\x1a\x8e\x0c\x1d\x07\x98\x8f\x63\xd2\x36\xc1\x50\xdc\x57\xc9\x17\xeb\x5f\x55\x52\x3b\xfd\x4a\x5e\x56\xe7\x39\xbd\xf5\x62\x49\xcf\x64\x70\xbf\x8e\xe7\x12\xcd\x73\xf7\xd0\x92\xba\x63\xe9\x87\x58\x2f\x87\x22\xfe\x66\x04\xff\xe2\x72\xe3\xec\x6f\x20\x26\xef\xdb\xd4\xd2\x4c\x0f\x61\xe1\x9e\xd6\x44\x5b\xac\xd7\x2a\xf9\x39\xb1\xf0\x66\x2b\xca\x30\x85\xe0\xd8\xf9\x2a\x9a\x94\x2a\xf9\x48\xdd\x7c\xbe\x0c\xb4\xa3\x7f\x23\xbc\xa7\x9b\xc4\xe9\xcd\xe2\x47\x39\x76\x73\x7f\xe8\x77\x7b\xff\xa6\x48\xf3\x7c\x82\xf5\x88\x94\x6d\x41\x86\xf7\x6e\x91\x10\x9d\xd8\xef\x74\x8c\x22\xbb\xf4\xdf\x7f\x6a\xff\x0e\xff\xd1\x35\xe1\xe8\x86\x99\xa5\x07\x88\x3e\xd8\x0a\x31\x6e\x60\x85\xec\x2c\xaf\x7f\xe8\x9e\x4d\x51\x44\x80\x30\x5f\xee\xfe\x3c\x0a\xef\x29\xa9\xda\x60\x07\x07\x84\xf3\x34\x97\x1e\x07\x44\xd7\x74\x3e\x27\xd4\xea\x13\xb2\xd6\x7d\x5e\x6e\xce\xae\xeb\xae\x33\x3d\x9f\x18\xba\xd7\x24\x39\x85\x03\x97\xb2\x93\x18\x5a\xdd\x42\x47\xd1\xa2\xb6\xba\x8e\xfb\x39\xd7\x89\x42\x27\x81\xe8\xbc\x03\x96\xe7\x7c\x99\x98\xa3\xc1\x15\xe2\xf3\xfe\xe9\x4c\x22\x6b\x26\x28\x3e\x72\x8e\x77\x3f\xbd\x38\xdf\xc3\xcb\xb4\xd2\x57\x7f\x7e\x78\x1f\x16\x52\x07\x46\xaa\xa6\x8c\xc9\x87\xf5\x69\xaa\x4f\xfe\x29\xb4\x56\x96\x70\xe6\x0c\x8a\x6a\x32\xf8\x4e\x56\x1d\x33\xe4\x4f\xdc\x47\x42\x70\xa8\x5d\x57\xdb\xa7\xfe\x8c\xc2\x54\x6e\xfc\xd4\x77\xd6\xfb\xc4\x9e\x89\xf1\xf4\x4f\x9c\x3a\xe2\xf9\xd6\x3b\xb3\x0d\x5a\x49\xaa\xa4\xf5\xa8\x08\x2e\xb6\xfb\xe9\xe1\x38\xf9\x1f\x1c\xfa\xe7\xbc\xf1\xc9\x2f\x8c\xe3\x2f\x82\x14\x8b\xe7\xae\x17\xb2\x96\x22\x81\x39\xde\x8a\x11\xfc\x71\x3f\x9d\x5e\x78\xcf\xef\x39\xdf\xbf\x46\xd6\x83\x5d\xf8\xcb\x2b\xfd\xe3\x87\xb8\x9a\x99\xc7\xfd\xad\x33\xf1\x33\xa2\xa9\xc8\x0d\x64\x3a\x69\x27\xff\xd1\x12\x85\x1e\x35\xb6\xfb\xaa\xf8\x4b\x33\xad\x3a\xc1\x7c\x24\xec\xd2\x05\xf8\x34\x12\x53\x4b\xb3\xb3\xf4\xa5\x5b\x12\x9c\x98\x93\xdb\xdc\x48\x7e\xb4\xf5\xeb\xd4\xe0\x74\x8d\xb9\xe1\x92\xbe\x16\xc5\xf5\xa3\x01\xb2\xcf\xf3\x71\xad\x30\x9f\x03\xc4\xfe\x3f\x6b\x97\xbe\x40\xc6\x6b\x85\xd8\x75\x9e\x2f\xfe\x76\xb3\x74\xff\xc4\x7c\x5e\xad\xf1\xb3\x12\x1d\x9c\xaf\x72\xcf\xbf\x66\x7d\xcf\xc1\xfa\xf9\x23\xdc\xa7\x1f\xfb\xa8\x40\x94\x74\x3d\xbb\x36\xda\xb3\xe2\x87\xdd\xb3\x66\xea\x5c\x5c\x1a\xa1\xd3\xfa\x96\xf5\x9c\xe0\xf3\xb1\x96\xef\x3b\x7c\xab\x90\x4a\x2a\xb6\x51\x3b\xf4\x98\x3c\x35\x8f\xf5\xe4\xf5\x13\xe0\xb5\xa3\x9c\x05\x7e\xdd\x2e\x0e\x6f\xfe\x7a\xfd\x94\x4f\x5b\x9e\xba\xf2\xa4\xf0\xb6\xb9\x48\xc8\xbc\xcc\xe7\xde\x42\xc7\x35\x90\x16\x7d\xb2\x58\xdf\xfc\x86\x4f\x27\xb9\x82\x61\x44\x65\xa5\xea\xa9\x4e\xa6\xb5\x35\x7e\x1f\xb4\xc7\xcd\xa7\x48\xf3\x08\x0c\x87\x2d\xdd\x12\x45\xcd\xfe\xd3\xe5\xf9\x4d\x9d\x13\xf9\xd7\x63\xfe\x1f\x3f\xac\xb9\x3f\x33\x7a\x3f\x77\x12\xe7\x62\x3d\x7c\x72\xfa\x9f\x27\xe4\x7b\x3b\x66\xf2\x3b\x77\x52\x18\xb3\xcf\x0e\x23\x9e\x9a\xba\x2a\xda\xf7\x99\x53\x24\x7e\xb0\x32\x49\xed\x33\x5f\x5c\x4d\x09\xf0\xdb\x89\x24\xa8\xe7\xc5\x60\xb7\x7d\xdd\x0c\x5c\xc9\xe2\xd7\xf1\xcd\xbb\xad\x14\xb1\x7f\xe8\x87\x7e\xaa\x53\x95\xfd\xf5\x01\xf3\x70\xdd\xf3\xc5\x09\xeb\xa9\x2d\xd1\x2b\xd6\x9d\xac\x92\x41\xeb\xb8\xd7\x13\x04\x1e\xfd\x43\x59\x51\x8e\x87\x2b\x72\x6e\x59\x54\x7d\x4e\xbc\x6c\xe2\xb1\x05\x04\x08\xb6\x3b\x57\x75\xd8\x7a\x3e\x0e\x5f\x39\xde\xd5\xeb\x12\x46\xb9\x94\x99\x17\x15\xd9\x25\xae\xbe\xc8\xee\xdb\x2b\x4f\x5c\x5d\xa1\x97\x8b\xf3\x9c\xcf\x35\x56\xe5\x86\xf2\xe1\x54\xbb\x9d\x68\x68\xfe\xfa\x6b\x3e\x61\x88\x78\x4e\x9c\x57\xfd\xb2\xef\x30\x7c\xc3\x07\x01\x76\xdf\xb9\x8c\xf6\xec\x94\xf0\x98\x67\x30\xb7\xa4\xcf\xfc\xae\xc1\x7d\xaa\x52\xf4\xfa\x46\x1c\x01\xf5\x45\xdd\x31\xac\xa5\xb1\xce\x8b\x37\x68\x50\x97\xd5\x0c\xb7\x24\xea\xdb\x56\x15\xae\x10\x7d\xca\xfb\xff\xd8\xfb\x97\x1c\x59\x76\x5d\x8d\xf3\x9c\x50\x34\x4c\x0f\x8a\x64\x4d\xa5\x50\x9d\x02\x2e\x72\xfe\x33\x48\xe8\x27\x5f\x27\xb3\x9b\xad\x04\x2e\x4e\x47\xd8\x88\x30\xfa\x8a\x6d\x92\xd3\xec\xff\xf1\xf5\x66\x7f\x7a\x07\x93\x21\xb1\xe6\x7f\xb3\x13\xfe\xb7\x2f\xf7\x69\x52\x56\xfd\x78\x5f\x8e\xaf\x46\x27\xa1\xd7\xba\x1e\xce\xf3\xc9\x81\xde\x4b\x97\x7a\x82\xf5\xe6\xb3\xbc\x1e\xe3\x62\x12\xf5\x26\xcb\x9a\xee\xb4\x4b\x13\xb1\xf9\xf2\x9e\x75\x25\x8d\x97\x0f\x64\xbe\x9b\xec\xa8\xc6\x02\x03\x47\x1f\xdf\xc1\x2f\x74\x14\x34\xe7\xf8\x65\xf7\xaf\xf3\x3e\xed\x77\xb6\x7d\x17\xcc\xb9\x1f\x26\x28\xcb\xa5\x4e\x35\x0d\xd5\xef\x59\x96\xa6\x4d\x07\xa6\x76\xe5\x77\xff\xb6\x79\xde\xcc\x6c\x95\x0d\x8b\x88\x88\x68\x72\xc9\x12\xd6\xe7\xfc\xc8\xff\xcb\x5f\xbf\xe8\x5f\xd7\x47\x55\xd7\xc7\x93\x57\xde\x80\x99\x4d\x95\xea\x23\x5f\xdb\xa6\x7c\xb5\x4a\xbe\x59\x1f\x65\x6f\xbe\x39\x35\xaa\xa3\xbc\x7d\xb5\x6c\xe9\x56\x67\xd0\xda\x33\x7d\x2f\x0a\x28\x4b\x60\x7e\x2f\xeb\x91\x87\x99\x7a\xe9\xaf\xf5\x7a\x33\xda\x17\xc1\x01\xd9\x84\xe9\x1d\xa9\xdd\xe7\xa5\x53\xe5\x58\x9b\x2a\xc8\xff\xe8\x83\xb7\x44\x58\xbf\xd7\x02\x46\xef\xe8\xe9\xad\xcc\x1b\xd4\x8c\xfd\xe9\x33\xe9\x2f\x79\x73\x7c\xd5\x92\xae\x0f\x53\x9c\xdf\xe4\xe9\x85\x74\xd4\x83\xae\x57\x7d\x2e\x6a\x7b\x3d\xf3\xdc\xe3\xbf\xef\x09\xff\xdb\x97\xb9\xbd\x37\xa6\x38\x62\xc9\x6f\x2b\xca\x5e\xc9\x7c\x2d\x35\xf7\x2d\x5f\xa1\x5f\xc7\xe3\xd2\x0c\xc8\x7b\xec\x7e\x95\x03\xfd\x98\x3a\x8d\x80\x36\x57\x25\xdb\xb7\xf2\x9d\xa8\x37\xbb\xd0\x1c\x43\x19\x3f\x4f\xcd\x3e\xce\xff\x96\xf1\x73\x4c\x21\x49\xd5\x48\x95\xfd\xde\x16\xe8\x93\x18\xdf\xf4\x99\x99\xfb\xcd\x46\x14\xd5\x13\xe9\x97\x63\xb4\xd7\xa3\x8f\xfd\xaa\xb5\x5e\x8c\xff\x4d\x43\x88\xbf\x99\x9a\xc4\x95\xf3\x5c\xda\x0b\x96\x5a\xed\xa2\x79\x56\xbc\x19\x16\x26\x4c\xc9\x3f\x50\x9d\x3c\x9b\x96\xd2\x6f\x56\x26\xed\xb1\xbd\x4b\x7f\x0b\xdd\x88\x7d\x8e\x7e\xd3\xe5\x54\x7d\xa8\xcd\x58\x5a\xb0\xe9\xa1\xba\x5e\x3d\xf4\x7e\xef\x51\xc2\x80\xdb\xdc\xfa\x30\x09\x37\xd8\x66\xe9\xa3\xd0\xe3\xd5\x7e\xa8\x3d\xc2\x6e\x26\x33\xa6\x67\xf7\xf2\x94\x3f\xc3\xff\x85\x5e\x94\xa5\x87\xb3\x5e\x2c\xab\x45\x55\xb7\xce\x99\x3b\x45\x43\x34\xa0\x19\x26\xf2\xec\xf5\xa2\x09\x9b\x42\xab\x56\xec\x75\x46\xa1\xc0\x4c\xda\x88\x4c\x85\xfb\x9a\xa6\x6f\xbc\x36\x52\xde\x22\xc6\x51\x4f\xb2\x7e\x59\x98\x2a\x2e\xc4\x5c\xbf\xf3\xdf\x2e\xee\xff\xdb\x97\x85\x34\xd7\x18\xba\xf7\xef\xcb\xb0\x2b\xb1\x83\x08\x57\x9c\xc7\xef\xde\x48\x33\xe9\x6c\x32\x1a\x4d\x3f\x0c\xe7\xff\x6b\xa4\xac\x9f\xd0\x58\xba\xbe\xd3\xde\x47\xff\xf2\x98\xbd\x5d\x9c\xf7\x0e\x90\xaa\xee\x5a\x0f\x76\xf5\x3f\x6f\x12\xe2\xfd\x46\x1c\x63\xe1\x4b\x66\x61\x7f\x6f\x82\xd2\xab\x68\x94\x7f\xfc\xe6\x29\x04\x55\x41\xf5\x61\xf6\x6b\xbb\x76\x5e\x53\x48\xf5\x3c\x4f\x97\xe3\x4f\xfa\x4d\x8c\x7d\x15\x11\xaf\x6e\x3b\x96\xd8\xc7\xcb\x13\xe2\x9d\x74\x2a\x7e\x8a\x84\x2a\x70\x93\xe0\xe6\xab\x35\xac\xfb\xbe\x71\x3f\xff\xcd\xb8\xdc\x6a\xc5\x4c\x9f\xbc\xa4\xf0\x2d\x55\x46\x2a\xbe\xc6\x6b\x02\x75\xc6\x9b\xf3\x82\x7d\xcc\xdd\xbe\x6f\x02\xfb\x53\x59\x38\xd4\x7d\xce\x29\x47\xfc\x8d\xa6\xdf\xf1\xaa\xc9\x9f\x62\xb3\xe5\x8a\xbd\xbb\x21\xff\x58\xff\x79\x5a\x41\xf1\x78\xa5\x73\x7e\x89\x6e\x74\xf0\x48\x5a\xc8\x2d\x59\x1a\x1a\xc0\xad\x1d\x6f\x82\x6d\xbf\x3a\x72\x55\x2b\xba\x49\x87\x59\x1b\x5b\x6e\x99\xfa\xa8\xf4\xf6\x35\x78\x8c\xa9\x6b\xcb\x12\xad\x88\x7e\xf3\xbf\xec\xcb\x7a\xfb\x52\x6f\xf2\xdd\x8b\xfb\xfc\x97\x1d\xfe\xb7\x2f\xb3\x9d\x90\xf9\x9b\x10\x2d\xf7\x45\x2e\xe3\x77\x9f\x6e\xd3\x5b\xee\xd4\x02\x75\xd2\xf6\xa7\x0a\xc9\xcb\xbf\x32\x86\xc3\xbc\x95\x49\xbf\x7a\x93\x13\x7d\x97\xd5\x30\xb4\xfa\xc9\xe3\xdd\x7b\xcc\x37\x25\xca\x3c\xf7\xdf\x73\x5f\xdd\x82\x4c\xa9\xd6\x83\xbd\xc7\xab\x5d\x96\x56\xa3\x47\xcb\x99\xfb\xcd\x33\x12\xa9\x9c\xef\x27\xef\xbb\x49\x91\xdb\x72\x9e\x24\xda\x78\x73\x4e\xd1\x93\xad\xf3\xc1\x7e\x35\x90\xf1\xea\x28\xbc\x03\x74\xbf\xbe\x0b\xb2\x91\x56\xde\x6f\xeb\x52\xa5\xad\x3f\x19\xb2\x2e\x6a\xde\xf7\xd1\x1e\xdf\xbb\xcd\x7b\xbe\x9f\x33\xf5\x31\x7a\x15\x59\x2a\x1c\x44\x0f\xe9\xf3\xd9\x2f\x3e\x3b\x8e\x19\xbb\x7a\x36\xc8\x93\xde\xaf\xa2\x60\x8a\x99\x62\xb1\xd7\xc0\x51\xc5\xe6\x34\x55\x3f\xf4\x44\x49\x1d\xe6\x73\x07\xab\x5f\x5c\xd8\xcc\x38\xcd\xe9\xfa\x37\xbd\x5a\x86\xb4\xbc\xd2\x23\xc5\x43\xef\xa8\xa1\xa9\xeb\xf4\xdd\x97\x7f\x3c\xd7\x27\xb9\xe3\xa9\x3a\xf2\xcc\xb6\x2e\x17\xbb\xdf\xe4\x9d\xe5\x4e\x6a\x20\xfb\x6b\x64\x69\x56\xac\x56\xb6\xed\xdd\xac\x65\x7d\x0d\xd3\xfa\xc6\xd3\x7b\x4d\xd4\x8a\x7b\x07\xfe\xdf\x3f\xb5\xff\x5d\xfe\xbb\xfc\x77\xf9\x7f\xb4\xfc\xff\xfe\xfe\x8f\xff\xff\xa8\x6f\x7d\xff\x9f\xff\xef\xe8\xce\xd7\xd9\xe5\x65\x59\x2c\x2b\xfd\xb6\xfc\xf7\x6f\xc6\xdf\xb0\xf6\xdf\xfc\x1f\xd5\x4e\x9e\x0a\x1a\x5a\x7f\x62\x27\xdf\xeb\xf6\xa6\x82\xed\x53\x15\xf1\x7d\xe3\xd5\x63\xbd\xf7\x42\xd7\x4f\xd7\x6b\x36\x4f\x69\x52\x6d\xff\xaf\x0f\xbe\xb7\x96\x4f\x2d\xdd\xf7\x89\x75\xc9\x2b\xff\xa4\x59\x7e\x14\xcf\xef\x8b\x37\x6b\xd0\xcf\xcd\xcf\x13\xd7\xf9\x64\xcc\xe0\x96\xeb\x48\xfd\x5b\x2a\xda\xbf\x37\x97\xc8\x24\x72\xbe\xef\xfb\x5e\x47\x3b\x35\xb5\xde\xba\x3e\x19\xe8\xdf\x57\xae\xd4\x18\x58\x26\xa9\x9a\xb9\xbb\xba\x52\x3e\xc7\x77\xdf\xc3\x68\xdf\x77\x65\xa5\xbf\xd0\xf7\x68\x56\xb6\x0d\xc5\xf9\xfb\xde\x4c\x44\x4f\x4d\x19\x33\x9f\x2c\x9f\x6f\xb8\x63\xda\x75\xbf\xf6\xa5\x9f\xca\xfe\x4f\x6a\xe8\xa7\xea\xf4\x93\xbd\xfe\x0d\x7a\xfa\x9b\x9d\x36\xd6\x9b\x7d\xe2\xca\xed\x13\xa8\x42\xa6\xb2\x7d\x63\xfb\x79\xbc\x7e\x5f\xae\x94\xd9\xf3\x62\xf6\x43\xe7\x13\x55\xbc\x9f\xac\xff\x6f\xb8\x57\xc3\xfd\x19\x6f\x46\xfb\xeb\xea\xe3\x9e\xe8\x31\xf2\x8d\x97\x47\x5c\xaf\xa3\x9a\x2b\x3d\x63\x5e\xdf\x82\xe1\xff\x4b\xf5\xde\xa7\x2a\xf1\xf3\xfc\xf8\xcc\x1a\xff\xa6\x93\xa0\xc1\xff\x37\xdf\x48\x01\x27\x41\x73\xdf\x4f\xca\xeb\xf7\x66\x14\x4d\xff\xa7\xa2\xe6\x9f\x19\xf3\x9f\xe8\xf8\x37\xb5\x77\x9d\x3f\xed\xdb\xbf\xf2\xa6\x9d\xe9\xe5\xa5\x75\xeb\xa7\x33\xd2\x27\x92\xf7\x3d\x8d\xcc\x04\x35\x73\x67\xe7\xa7\x7d\xfb\x37\x5f\xf7\x30\xff\xef\xd3\x99\x11\x7b\xf8\x44\xfe\xbe\xe9\x3e\xe8\xb8\xf2\xe1\xe1\x4f\x67\x82\x4f\xbc\xf0\x93\x9a\xf8\x4d\x27\x44\x9e\xd0\xa7\x73\xc8\x37\xeb\x4d\x6d\xf4\x5b\xf7\x67\x3a\x1b\x62\x96\x9f\xb7\xf6\x6f\x3a\x15\xaf\xdf\x8b\x08\xe5\x37\x5f\x57\xba\x7e\x7d\x60\x5e\x5c\xe4\x75\x7f\x3d\xd6\xd7\x15\xed\x45\x73\xbd\x6f\xb9\x3f\x6f\x32\xd3\x72\x4f\x44\x43\x3f\xb9\x44\x9f\x08\xe2\xb7\x7c\x6b\xd4\x5a\x7d\xb2\x04\xbe\xf5\x3a\x2b\xba\x27\x74\x81\x4f\x45\xda\xaf\x6b\xca\xf2\x6d\x5a\x2f\xeb\x2b\x5e\x5d\xd4\xeb\xc3\xe6\x13\x9c\x0d\x3a\xcb\xa7\x52\xfc\x5b\xe7\x4d\xe8\x64\xfb\xfa\xb6\xbd\x8e\xb5\xbe\x5f\xea\x29\x3f\x59\x29\xbf\xba\x16\x3a\xec\x27\xd6\xfb\xad\x37\xd5\xd2\x37\x6b\xbd\x5e\xb2\xbe\x59\xcb\xdd\x5b\xaf\x1a\xe6\xf5\xc3\x71\x67\xb6\xbb\x41\x89\xd6\xa6\xfa\xae\x26\x62\xaa\xad\xa4\x72\x7e\xfb\x45\x49\xdd\xab\xfd\x6a\x4c\xdd\x31\xbd\xfb\xbe\xed\xbc\x89\x28\x7f\xa2\x4d\xdf\x1e\x2f\x7a\xcd\xca\xd9\xfb\xe5\x8d\xf1\x42\xde\xb1\x7e\x63\x2e\xbc\x99\x7d\x7b\xbe\x6b\xde\xfc\x6f\xbf\x7d\x13\xb5\x9d\xb7\xfd\xc6\x62\xb8\xcf\xaf\x83\xa5\x8a\x96\xa7\xcc\x7e\x62\x4b\xea\xea\xee\xea\xe7\xfc\xd5\x76\x3f\xbd\x0d\x7f\xdb\xfd\x14\x63\xfb\xcc\xec\x7f\x11\xdf\xef\xf5\x01\x7e\x1d\xc9\x8c\xfe\xf8\x68\xf1\xdf\xce\x37\x97\xcb\xbf\xfb\xa6\x92\xbb\xab\x5a\x92\x7f\xdb\xbd\xdd\xee\xad\x9e\x5a\xdf\x7e\x4d\xcd\xdd\x61\x79\x27\x1f\xfa\xfd\xd5\xd0\xa8\x35\xfc\x5e\xd4\xfc\xcd\x5e\xdd\x4e\xe6\x7e\xf7\xff\xf7\x7e\x3f\xfe\xa9\xf6\x1f\x8d\xe9\xf3\x86\xfa\x79\x7b\xfe\x62\xbc\x4c\x41\xbf\x75\x87\xe3\x65\x06\x8c\xf3\xaf\xaa\xfe\x0b\xf7\x36\xdc\x4f\x55\x32\x9f\xb9\xa1\x9f\x19\xd2\x5f\x38\xbd\xe1\xbb\x1c\x2f\x26\xf1\xf2\x14\xdd\x67\x79\x00\xdf\xab\xe2\x7d\x33\xe4\xe2\xf5\x26\x71\x9f\x65\xcd\x7e\xe1\x3c\x87\xf3\x1c\xee\x7c\x38\xd5\x5a\x86\xff\xba\x28\x23\xde\xef\x65\xf5\xa9\x84\xfe\xe2\xe5\x38\x52\xf9\x45\x05\xbe\x78\x93\xea\xec\x88\xc1\x26\x5f\xbc\xfa\x6c\xfb\x12\xaf\x4f\x40\xbe\xce\x28\xae\x74\xce\x0d\x40\xf8\xe2\x55\x71\xe5\xab\xe7\x76\xfd\x1b\xb6\xf0\x62\x1e\xf6\x45\x37\xa1\x2f\xec\x0b\x0e\xf9\xc2\xbe\xbc\xfa\x8c\x78\xd9\x81\x76\x44\x3d\xd6\x17\xfd\xfa\xaf\xb0\xea\x97\xbb\x19\xff\xc9\xe0\xd4\x97\xe5\x65\x29\x7d\xf2\x41\xbf\x63\x8f\x5e\xa7\xb8\xc3\x03\xcb\x17\xfc\x5e\xd7\xc7\xe3\x1b\x21\xbb\xeb\x3b\x76\xea\xd8\x29\x53\x39\xbf\x57\x9b\x7e\xec\x97\x79\xfc\x9f\xee\x2c\xdf\xb1\x77\xc7\xf7\xe2\xbc\xf1\x2f\xfc\x0f\x75\xf5\xc3\x69\x9f\x29\xbc\x9f\x89\xbc\xdf\xb1\x9b\x7a\x58\x7d\xe7\xb5\xd2\xb7\x9b\xc7\x6e\x2a\x7c\xf8\xf4\x5c\xfa\x91\xd5\xb1\xa7\x74\xd8\xef\xbc\xca\x0f\x3e\x9c\x0a\xf9\x9d\x5f\x67\x27\xbf\xf5\x14\x7b\x8d\xf9\xcd\xde\xfe\xe4\x41\x7e\xba\x33\x3d\xa6\xfa\xf5\x80\x32\xa1\xff\x55\x68\x7d\xc7\xce\xbe\x8a\x4f\x73\x8b\x3f\x2d\xfc\x7f\xb9\xd7\xe7\x65\x7a\xf9\xae\x69\x48\xff\xe9\xf8\xf7\xd1\xbb\xbf\xf3\xd2\xd4\xed\xef\x8b\xf5\xd2\xc7\xbf\x63\x7f\x8f\xfd\x7d\x31\x2d\xd5\x2a\xdf\xb1\xcb\x62\x69\x9f\x54\xf6\x4f\xdf\xb0\x4f\x1d\xf9\x77\x1e\x95\xd9\xe5\x63\x97\x8f\x5d\x3e\x76\x59\xd7\xcd\xef\xd8\x5f\xf3\x38\xbf\xf3\xf6\xd7\x77\x90\xaa\xfb\xe5\x37\xfe\xf5\x03\xff\x4c\x55\xff\xcc\x34\xfa\xf4\x2e\xfb\xf2\x75\xcd\xf5\xdd\x4c\xfe\xf0\x8d\xe9\xc8\x37\x17\x90\x0f\x34\x96\xe7\xd3\x97\xef\x33\xeb\xe8\x4b\x7b\x6d\xe6\xe8\x27\xa7\xed\xa3\x3d\x7d\xf9\x2a\xf5\xed\x72\xda\xe5\xd7\x5e\x5d\xd6\xe9\x97\xf6\x97\x4a\xfe\xbd\x9a\x3c\xd1\xf4\xd7\xb3\xf7\x57\xdf\x6f\x80\xcf\x47\xdd\x7b\x53\x09\x3f\x3a\xfe\xa7\xb2\xf9\x93\xcf\xf7\xe5\xab\x05\xf4\x9d\xcd\xfd\xfa\x8a\xbb\xd2\x5e\x8b\x43\x7c\xf9\xba\xa0\xdb\xeb\x7c\xf3\xa4\xed\x75\x7a\x36\xbd\xce\xe4\xf2\x0b\xbf\x17\xb1\x4b\x3b\xfe\xb2\xed\xe5\x3f\x7d\x94\xfd\x2f\x7d\xa3\xd5\x31\x7f\x79\xde\x20\x05\x56\xf6\x5d\x36\xf3\x27\x4b\xef\x7b\xe5\x09\x69\xdf\xd5\x47\x7e\xfa\x91\xfe\x7a\xae\x18\x3b\xf3\xa5\x7d\xd7\x2b\xe5\x75\x78\xfb\xe8\x62\x1f\x3d\xee\x7b\xa3\x24\xc4\x0f\xbe\xf4\xed\x4e\xbb\x6f\xee\xfb\x97\x76\xdf\x98\xa3\x2f\xed\xbe\x11\x34\x9f\x31\x11\xdf\x8b\x82\x88\x38\x7e\xaa\xb2\xbe\xec\x57\x27\x30\xff\xa3\x2c\xa8\xdd\xfc\x4d\x7c\xac\x37\xd0\xc6\x9e\xca\x48\x7e\xf3\x74\xbf\xb2\xbf\xa6\xd5\x7e\x65\x4f\x65\x1d\x7d\xb2\x2b\x3e\x03\x5b\xbe\x7a\xfd\x63\x7c\x67\xcb\x9e\xea\xab\xf4\xd5\xaf\x3f\xaa\x4f\xb3\x8f\xfa\xc1\x7c\xaf\xeb\x5a\xfd\x72\xce\x7c\x4e\xbc\x7e\x6b\xae\x71\xe7\xdf\xdc\x4d\x79\x12\x5f\xbd\x0a\x07\xf7\x59\x26\xe5\xab\x77\xfc\xcc\x05\xfc\x2a\xdf\x6f\x7d\xb2\xfb\xf9\xe6\xf9\x89\xaa\x7e\x6a\x37\x3f\xd3\xf5\x3e\x59\x9b\x9f\xbe\x0b\x9f\x92\x90\x4f\x2f\xeb\x8f\xc6\xf4\x95\xef\x88\x49\x75\x9f\xda\xfa\x4f\x37\xce\xaf\x7d\x2f\xfa\x75\xc7\x79\x7d\xa7\xdd\x37\x6a\xc8\xa7\xde\xf4\x53\x6f\xfa\xbd\xa1\x13\x3d\xdf\xcf\x69\x37\xee\x4f\xbb\x3f\x6f\xe8\x8d\x21\x36\x9f\x71\x34\x5f\xbb\x27\xaf\x52\xcd\x00\xab\x4f\x6e\xee\xd7\x4f\x6b\x76\x67\xf4\x21\xff\x64\x8a\x7f\x2a\x50\xbf\x76\xaa\xdb\xa9\xd6\x1b\xfc\xeb\x57\x27\xe7\x54\x53\x6a\xbe\x76\x9e\x8d\xec\xf8\xfa\x55\x8c\x38\xbd\xf2\x44\x3f\x3d\x8a\xbf\xd7\x2f\xf7\x65\xa9\x2a\x1a\xfa\xd4\xe5\x7f\x2a\xde\x14\x0a\xdd\xd5\x35\xee\xaa\x7a\x62\xa5\x43\x77\xf5\x39\xb4\x39\xbc\x36\xf0\xda\xf8\x7e\xd1\xdf\xf7\x73\x5d\x8e\xe8\x71\xaa\x15\x87\x18\xd5\xa0\x19\x0d\x19\x27\x03\xb5\x0d\x31\xe6\xf1\xcd\x57\xce\xc6\x56\xde\x21\x75\x6f\xc8\x32\x34\x61\xfd\xae\xae\x11\xdd\x37\xb9\x60\xa0\xb9\xf1\xfd\x6a\x85\x7d\x4e\xf8\x49\xf8\x89\xe9\xd1\x9f\xec\xbd\x8f\xda\xf5\x6a\x00\xbe\xf3\x7e\xeb\x7a\xb9\x38\x26\xc4\x0f\x7c\x37\x90\xdd\x40\x76\x03\xd3\x0d\x34\x27\x2b\xee\xae\xae\xa1\xca\x99\x65\xa0\x1b\xd3\x5d\x5d\x29\x77\x07\xcd\x0d\x34\x37\xd0\xdc\x50\x71\x31\x70\xdc\xc0\x6e\x03\xbb\x8d\x57\xa1\xa1\x9b\xfa\xd0\xed\x63\x98\x57\x3d\xc6\xf7\x32\x84\xea\x3f\xd5\xc9\xb2\x81\x87\x18\xe4\xc0\x77\x63\xbc\xda\x65\x31\x4e\xdd\x50\x87\x31\x6b\xe3\x75\x74\x1b\xee\x33\xb5\x6e\xe0\xbe\x81\xfb\x06\xee\x1b\xb4\xd4\x31\xdc\x67\x31\xc2\x81\x04\x87\x99\xd6\x83\xaa\x38\x86\x7b\x3e\x64\x0c\xbf\x3e\x55\x38\x71\x88\x7f\x0c\xdd\xdd\xcc\x91\x9d\xf4\xbb\xbb\xba\xde\x2e\x8c\xd7\xdd\x4a\x6e\x01\x4e\x1c\x38\x71\xe0\xc4\xa1\x02\x44\x7c\xe8\xae\x7e\xae\x3a\x02\x39\x8e\xd7\x53\x77\xd8\x05\x14\x39\x50\xe4\xd0\x6b\x6a\x60\x49\x55\x5b\x73\xbc\x2e\xbb\x66\x6d\x0e\xb9\x20\x43\xa4\x47\x69\xdb\x5d\xeb\x57\xef\x31\x87\x2c\x90\x81\x37\x07\xde\x1c\x3a\xc7\x0e\x1d\x62\x06\xf6\xd4\x6b\x6a\x0e\xec\x39\x64\x66\xa8\xe5\xb8\x6b\x58\xd3\xfa\x54\xe6\xef\xff\xd2\x9a\xed\x85\x68\xd3\x10\x65\x19\x4f\x47\x46\xa6\x03\x99\xfe\xfa\x5e\xd2\x4c\x07\x3e\x1d\xd3\xbe\xa0\xd4\xa1\x74\x6e\x60\x55\x5d\xbe\xef\xca\xca\xee\xbc\x19\xdb\x58\x75\xcc\x37\x0c\xc7\xbe\x20\xd6\x81\x58\x87\xfe\x79\x43\x1c\x68\x88\xfb\x0e\x3d\xff\x74\xad\xbb\xab\xeb\xed\x0b\x85\x7a\x18\x64\x34\x7e\xf1\xda\x78\xfa\xb2\xdf\xda\xa3\x69\x8f\x50\xed\x90\xdd\x3b\xa6\xef\x0e\xb6\x1d\xd3\xae\x4d\xbb\x86\x73\xc7\xb4\x6b\xd8\x76\x98\x3a\xac\xaf\xd5\x5d\x7d\xc2\xd3\xaf\xed\x8e\xc9\x23\xfa\x82\xdc\xd5\x35\x76\x47\x07\xce\x81\x70\x07\xc2\x7d\x91\xad\xf1\xcb\xc1\xb5\x47\x08\x77\x20\xdc\x81\x70\x87\xe8\xf2\x58\x6f\xb2\x89\xfd\xd2\x39\x69\x60\xde\xf1\xb2\x03\xf5\x62\x1d\xba\x82\x8f\xd7\xf7\x78\xbd\x7e\x87\xee\xff\x7a\x55\x34\xaf\x8b\xcf\xfc\x4f\x1e\xcc\x90\x79\x60\xe0\xdb\x7c\xd1\xc7\xb1\x5e\x0c\xc0\xdd\xc3\xb9\x03\xe1\x8e\xd7\xff\x03\xe7\x8e\xf5\xba\x82\xbd\x4c\x47\xd1\x08\x3c\x3b\x64\x10\xbe\x2e\x41\x03\xd5\x0e\x54\x3b\x50\xad\x0e\x01\x73\x20\xd9\xa1\xbb\xd8\x40\xb2\x63\xf5\x9b\xad\xee\x13\xdc\x99\xe5\xce\x2c\xa7\xf7\xcd\x5c\x5f\xfd\xae\xf4\x97\xbb\x33\xfb\x55\x7c\xfd\x86\xd5\xbc\xea\xac\xf3\xaf\x46\x6b\xec\x5f\xc6\xa4\x5a\x0b\x1e\x03\xbd\x0e\x39\x5b\x43\xce\xb7\xd9\xab\x77\xf5\x09\xee\x0f\x92\x1d\xf2\x86\x07\x9e\xd5\xd1\xe1\xae\xac\x9c\xcc\xfd\xca\x39\x9d\x4f\x84\x3b\xb0\xed\xc0\xb6\x03\xdb\x0e\x51\x8d\xd7\xad\x61\xc8\x19\x1d\x6a\x42\x86\x08\xe2\xd0\x35\x6d\xe8\xdb\x3c\x10\xae\x6e\xcc\x77\x7d\x23\xaa\xfc\x5b\xe7\xd5\xb3\xf9\xb9\xb3\xf7\x32\x9b\x71\xee\x1b\x6e\xf9\x4a\x4a\x07\xaa\x1d\x32\x1d\xc7\x76\x7f\xe2\xc5\x96\xdc\x99\x70\x67\xe4\x74\x0e\x04\x3a\x5e\xe7\x0c\xd4\x39\x5e\x6d\x15\xc6\x1c\x18\x73\x60\x4c\xfd\xf6\xee\xea\xe7\xfe\x5f\x50\xe4\xc0\x8c\x43\x97\xbe\xdf\x10\x4b\xf9\xee\x43\x5e\xfb\x88\x5f\x94\xc5\xcf\x7d\x6b\x7e\x99\x9a\xfe\x66\xf9\x5e\x03\x09\x0e\x0c\x38\xd0\xdf\x40\x7c\x23\x78\x36\xdc\x37\x70\xdf\xab\xdb\x19\x38\x6e\xfc\x7a\x6a\xbe\xff\x3b\xbb\x8f\xe3\x06\x8e\x1b\xc7\xff\x29\x82\x1b\x87\xef\xc2\x71\xff\xba\x82\xf9\xff\xc5\x71\xc6\x24\xde\xf5\xf5\x0c\x73\xbd\x6f\x0a\x82\x1b\x78\x6d\xe0\xb5\x81\xce\xf4\x1f\xbe\xeb\xcb\x86\xf7\x5b\xbb\x8c\xc2\x06\x0a\x1b\x28\x4c\x7f\x91\xbb\xba\xc6\x77\x07\x7f\x0d\xcc\x35\x30\xd7\xc0\x59\x03\x61\x8d\xf3\x32\xec\x5f\xf7\xb2\x97\x53\x78\xde\x35\x6c\x79\x15\xac\x34\xce\xab\xa9\xab\x97\x77\xe8\x9a\x7a\xb9\xb3\xae\xf4\xdd\xc1\x44\x43\x04\x6b\x20\xa0\x81\x7d\x06\xc6\x19\xf9\x46\x39\x39\xff\xf8\x65\xa4\x33\x8f\x53\xde\x88\xa7\x81\x53\x86\x8e\xbe\x03\xad\x0c\x24\x32\x90\xc8\x48\x27\x19\x89\x0c\x24\x32\x30\xc8\xc0\x20\x03\x83\xe8\x20\x78\x57\xb6\x6a\x09\x30\xc8\xc0\x1d\x03\x71\xe8\x8c\x72\xd7\xf5\xaf\xd6\x62\x60\x8d\x81\x2f\x06\xbe\x18\xf8\x62\xe0\x8b\x81\x2f\x06\xbe\x18\x6f\x8c\x1b\x9a\x18\x38\x62\xe0\x08\xd9\x03\x77\x75\x8d\xbb\xf4\x6a\x20\x11\xc4\x40\x10\x03\x41\x0c\x04\x31\xb0\xc3\x40\x0a\x03\x29\x0c\xb9\x56\xc3\x34\x99\xf1\x86\x5f\xc9\x0b\x1c\xa8\x61\xbc\x7a\xad\x72\x72\x5e\x25\x15\x6a\x18\xe5\xa9\x87\x1d\x06\x76\xd0\xab\xf9\xae\xae\x71\x8a\x50\xc3\xa8\x57\xbb\xe8\xae\x22\x85\x81\x14\xc6\x9b\xa7\x80\x17\x06\x5e\x18\x2f\xfe\x8a\x17\xc6\xab\x51\x91\x29\x32\xb0\xc3\x28\xf7\x5c\xcf\x89\x81\x23\x46\xb9\xe7\xe5\x6e\xeb\x21\x31\xf4\xab\x1b\xaf\x9f\x33\xca\xf8\x97\x5d\xfd\x62\xcc\xee\xf6\xcb\xc9\xc6\x17\xa3\xdc\x67\x35\x1b\x03\x6b\x0c\xac\x31\xcc\x1d\x1f\xf8\x62\x98\x14\x3e\x4c\x90\x19\xaf\xbb\x15\xb2\x78\x3d\x2a\x46\xbb\x7b\xed\xee\x61\x8a\x81\x26\x06\x8e\x18\xfd\xa6\x5c\xf9\x3e\xa2\x09\x3d\xe7\x7f\xd9\x2d\xa3\x7f\xdd\x35\xc4\x5c\x9d\xcc\x7e\xb1\x67\x6f\x0e\xed\x94\xf6\xcb\x86\xf1\xdd\x44\x1c\x43\x8e\xc5\x9b\x9c\x35\x10\xc7\x40\x1c\x43\xe4\x7b\xe0\x0e\x9d\x6b\xef\xca\xca\xdd\xc6\x20\xc3\x90\xc0\x81\x41\xc6\xab\x0f\xc4\x20\x03\x7d\x0c\xc4\x31\x10\xc7\x40\x1c\x03\x71\x8c\x7e\x03\x7b\x5f\x6c\xd8\xfd\x94\x09\x3a\x70\xc7\xc0\x1d\x03\x71\xe8\xd6\x79\x57\x57\xba\xab\x9d\x6f\xd8\xaf\xdf\x66\xfe\x1b\xfc\x3b\x64\xf6\x8f\x17\xf3\x7e\x9d\x3f\x54\x24\x8e\x76\x4a\xcd\x5c\x18\x8f\x3b\x5a\x47\xee\xff\x59\x7f\x73\x42\x90\x09\x3e\x4c\x1c\x9c\xd2\x7b\xee\xda\x5a\x1f\x7e\x56\xd7\x68\x59\x22\x88\x34\xb5\xeb\x9a\x82\x48\x13\x94\xcc\xef\xa5\x01\x2b\x2c\x82\x26\x13\x94\x4c\x50\x32\x41\xc9\x14\x5c\x9a\x82\x4b\x13\x94\x4c\x4d\xca\x26\x34\x99\xdf\x72\xe5\xf2\xc9\xcb\xf5\xd2\x0e\x61\x8a\xc6\x88\x77\x75\xfd\x76\xcd\x76\x8d\x71\x25\x82\x51\x13\xb8\xcc\x2f\x7c\x9a\xc2\x04\x81\xa9\x29\x30\x35\x41\xcc\x04\x31\x13\xc4\x48\x09\xbe\xab\xdf\x2a\x33\x14\x9e\x9a\x20\x66\x0a\x4c\x4d\x10\x33\x05\xa6\x26\x88\x99\x20\x66\x82\x98\x09\x62\xa6\x20\xd5\xfc\x5e\x59\x68\xb1\x2a\x56\xf5\xac\x7c\xbe\xb2\x47\x58\x33\x05\xa6\x26\xa0\x99\x02\x53\xf3\xb5\x48\x7f\x49\xd4\xb0\x66\xc2\x1a\x43\x5d\xee\x9a\x56\xbf\xb5\x23\x50\x66\x42\x19\x65\x95\x77\x35\x3a\x7f\xb8\xd2\xee\x08\x5e\x4d\xe0\x32\x81\xcb\x04\x2e\x53\xdb\xe8\x09\x5c\x26\x70\x99\xc0\x65\x02\x97\x09\x59\xa6\x84\xe4\x09\x5c\x26\x70\x99\x90\x45\xe3\xe6\xbb\xba\xd2\x8e\x40\x96\x09\x59\xee\x9b\x83\xd5\xf5\xe1\xfa\x78\xe9\x4c\xae\xb7\x3b\x9a\xc8\x68\xd8\x7a\x57\xd7\x1f\x7f\x89\x12\xfb\x61\x8f\x94\xc6\x4f\xc9\x18\x13\xe8\x4c\xa0\x33\x81\xce\x7d\x1e\xdd\x35\x59\xd9\x35\xe8\x63\x98\xd8\x5d\xd9\x6a\x05\x08\x7d\x26\xf4\x99\xd0\x47\xb3\x9b\xa9\x21\xd4\x5d\x59\xd9\x41\x00\x34\x01\xd0\x04\x40\x8a\x76\xef\xfa\xac\xfa\x5f\x32\xfc\x84\x41\xf7\xbb\x6f\x65\x65\x37\x21\xd1\x84\x44\x13\x12\xdd\xaf\x90\xd5\xd8\xc0\xef\x0d\x0c\x91\xfe\x61\xd0\x81\xd0\xdc\x04\x46\xf7\x88\x58\xf5\x02\xb1\xbf\xf0\x68\xc2\xa3\x09\x8f\x26\x3c\x9a\x12\x6b\x95\xb1\xdc\x95\xed\xaf\x83\xc8\xf7\x2f\xb1\x64\x82\xa4\x39\x7f\xa9\x26\xfb\x5f\x7f\x91\x09\x92\x26\x48\x9a\xf3\x4d\x61\x74\x06\x04\xf1\xcc\x39\xbe\xab\x6b\xf6\x1b\x40\xc4\x6a\xbf\x9f\xb0\xb2\xb3\x30\x68\xc2\xa0\x09\x80\xe6\x7c\x05\x7d\x76\x16\x00\x4d\x00\x34\xa1\xcf\x54\x06\x35\x85\xf8\x26\xf4\x99\xd0\x67\x42\x9f\x29\xb8\x37\xb5\x03\x33\x1f\xfa\xae\x6c\xed\x0b\xf4\xf9\x0d\x5d\x14\xe2\x33\x2f\xf6\xae\x3e\xa1\xfa\x3f\x53\x24\xff\x4d\x94\xf4\x99\x6f\x80\x92\xdd\xf9\xa5\xf9\xd9\x1d\x30\x34\xe7\xdb\x1d\xdf\x35\x18\xa4\x91\xc8\x5d\xb5\x8e\x7d\x63\x28\xec\x0e\x18\x9a\x60\x68\x0a\x03\x4e\x6d\xd6\xa7\x74\xc1\xf9\x0a\x1f\xd6\x2b\xa5\x74\x9f\xc1\xd0\x14\x1e\x34\x31\xf7\xae\xaf\x58\xd8\x35\xee\xf0\xf2\xfd\x82\x47\x13\x1e\x69\xf2\x78\x57\x9f\xe6\xfb\x25\x48\x38\x05\x09\xa7\x24\xab\x09\x98\xa6\x36\xa9\x13\x36\x4d\xd8\x34\xff\x95\x3c\xfb\x04\xdf\x20\xc1\xc0\x09\x9e\x26\x6c\x9a\xeb\xb5\xc5\x74\xf2\x85\xfe\x26\x54\x9a\x42\x7f\x9a\xca\xdd\xd5\xe7\xb8\x9f\x80\x69\x02\xa6\x09\x98\xa6\x60\xe0\x84\x4a\x9a\xec\xcf\x29\x30\x38\x01\xd3\x14\x00\xd4\x90\xee\xae\xaf\x78\xc1\x6f\xc7\x2b\x69\xd1\x64\xd6\x1d\x13\xfa\x9b\x42\x7f\x13\x30\x4d\xc0\x34\x05\x00\x27\x6c\x9a\xb0\x69\xc2\xa6\x09\x9b\x26\x60\x9a\x80\x69\x6a\xb7\x3d\x61\xd3\x84\x47\x13\x18\x4d\x45\xb8\x13\x18\x4d\x30\x34\x05\x00\xa7\x76\x7e\x53\xa9\xe6\x14\x00\x9c\x20\x69\x82\xa4\xb9\xdd\x43\x90\x34\x41\xd2\x14\x12\x9c\x50\x69\x4a\xf1\x9a\x1a\x57\xcd\xfd\x46\xf3\xf1\x48\xe0\x69\x82\xa7\x09\x9e\x7e\x93\x89\x35\xd2\x9d\x40\x6a\xbe\xde\x3c\x42\x85\xf3\x15\xfe\x0b\x12\x4e\x41\xc2\xb9\x5f\xb1\x8f\x3b\x2f\x24\x38\xf7\x9b\x70\xec\xce\x0b\x03\x4e\x01\xc0\x09\xbf\xa6\x30\xe0\x14\x06\x9c\x50\x6c\x42\xb1\x09\xc5\xa6\xf4\xbf\x09\xc8\xa6\xc0\xe0\x34\x91\x7d\x0a\x0c\xbe\x06\x79\x53\xab\xbe\x29\x3c\x38\x81\xda\x54\x42\x38\xa5\x0b\xbe\xe6\x98\x53\x90\x70\x02\xb8\xa9\x69\xc0\x14\x30\x9c\x30\x6e\x0a\x12\x4e\x18\x37\x05\x09\xa7\xc0\xa0\xe1\x8a\x77\xf5\x39\xf6\x22\xec\x85\xf0\xe0\x14\x1e\x9c\x20\x6f\x2a\xd0\x9b\xc2\x83\x53\x60\x70\x86\x7d\x01\x7f\x53\x78\x70\x42\xc0\x69\x2c\xcc\x14\x24\x9c\x40\x70\x02\xc1\x29\x3c\x38\xe1\xe0\x14\x1e\x9c\xa0\x50\x31\xdd\x5d\x5d\x69\x2f\xa0\xe1\x84\x86\x53\x90\xf0\x37\x25\x1d\x20\x4e\xe1\xc1\x29\x3c\xf8\x1b\x94\x04\x13\x27\x4c\x9c\xf1\x1a\xca\xbf\xd9\xea\xf6\x48\x78\x70\x9a\x41\x3b\x05\x09\x67\xbc\x26\x06\x76\x4d\x90\x70\x0a\x12\x4e\x70\x39\x05\x09\x95\x31\xde\x95\xd5\x2b\x8f\xf2\xad\x81\x98\x53\xa8\x70\x02\xcd\x79\xec\x1d\xd0\x9c\xaf\xe5\xf4\xf9\x35\x82\x70\xa5\xbd\x3b\xaf\x21\xb2\xbd\x13\x30\x7c\x9d\x9f\xa6\x80\xe1\x84\x9b\xf3\xf8\x36\x09\x18\x4e\x01\xc3\x7f\x43\x57\xec\xa6\x80\xe1\x2f\xb1\x13\x8c\x6a\x71\x70\x57\x7f\x89\x3d\x15\x2a\x9c\x90\x74\x0a\x0f\x4e\x60\x3a\x81\xe9\x04\xa6\x13\x98\xce\xf3\x6b\x1c\xb9\xff\xb5\xa3\x9d\x42\x85\xf3\xd8\xe5\x63\x97\x61\xeb\x14\x3c\x9c\xe0\xf5\x37\xfe\x45\x08\x71\x02\xd9\x29\xa5\x73\x02\xd9\x09\x64\x27\x90\x9d\x40\x76\x42\xd8\x79\xec\xf2\x79\x1d\xaa\xec\xb2\x80\xe1\x3c\x6f\x22\xf8\x6b\x89\x6b\xaf\x05\x09\xa7\x20\xe1\x84\xbc\x53\x90\x70\x02\xdf\xf9\x8a\xec\x04\x06\x27\xfc\x9d\x42\x82\x13\xf8\x4a\x9e\xbc\xab\xcf\xb4\xa7\x6f\x10\x1f\x08\x9e\x02\x83\xf3\xbc\x51\x36\x76\x53\x48\xd0\x7c\xee\x7f\x4d\x69\x84\x04\xa7\x90\xe0\x7c\xe3\x8c\xe0\xf2\x84\xcb\x53\x48\x70\x0a\x09\xce\x1c\x6f\x3c\x17\x5b\xdf\x50\xe1\x41\x03\x03\xff\x33\xb6\xcb\x2e\x83\xec\x99\x6f\xd4\x9e\x5d\xce\xd7\x06\xc7\x2e\x0b\x15\x4e\xa1\xc2\x29\x54\x38\xf3\x25\xee\xfa\xce\x42\xf0\x09\xc1\x27\x04\x9f\x02\x86\x2f\xad\xd7\xf0\x9f\xa9\x79\xd1\x5d\x5f\xba\x2f\x2b\x7b\xfd\x12\xd1\x61\xfa\x84\xe9\x9a\x09\xdc\xd5\xf5\x76\x19\xb2\x4f\xc8\x3e\xf3\x8d\x0d\xb4\xcb\x90\x7d\x42\xf6\xf9\x8a\xfd\x81\xfb\xcc\x57\x2c\x6c\xc7\x85\x0d\x27\x88\x9f\xc2\x86\x13\xca\x4f\xf8\xfe\x1b\x59\xa6\xe5\xd1\x04\xf1\x13\xbe\x1b\xd7\x76\x57\xd7\xd8\xeb\x57\x94\x04\xe2\x8d\x76\xbc\xab\x4f\xf3\x8d\x86\xf2\x13\xca\x4f\x28\x3f\x05\x03\x27\x88\x9f\x20\xde\x14\xf3\xbb\xba\xb2\x5f\x41\xb4\x2b\xbd\x33\x00\xfa\x59\xaf\x15\xc9\x1b\x0f\x6b\xaf\x61\xfd\x14\x0c\x9c\x65\x67\xeb\x95\x31\xda\xc7\x7a\xa5\x16\x9e\x77\xb0\x7e\xc2\x7a\x63\x27\xe7\x7c\x8d\x8c\x60\xfd\x7c\x0d\x88\xea\x95\x10\xda\x17\x40\x3f\xa1\xfc\x84\xf2\x13\xb8\x4f\xad\x8d\x5f\x99\xe1\x84\xef\x13\xbe\x4f\xc8\x3e\x21\xfb\x84\xec\x5a\x51\xdd\xd7\x25\x7f\xf3\x19\xff\x8a\x3e\x66\xbd\x91\x9b\x6f\x1c\x9c\x3b\x09\xcd\x27\x34\x9f\xf5\x1a\xd4\xb8\x9f\x42\x82\x13\xac\x9b\x94\x7f\x57\x9f\xc0\x1f\x42\xf6\x59\xaf\xe1\x8c\x3b\xf9\x9a\xba\x18\x9c\xfb\x06\xcd\x69\xda\x78\x57\x56\xee\x67\xb9\x9f\x02\x86\x53\x69\xf6\x84\xf8\x86\x4f\xdc\xd5\x78\x1b\xf7\x53\x19\xc8\x04\xf7\x13\xdc\xcf\xd7\x2e\x53\xd9\xec\x04\xf4\x4a\xa7\xef\xfa\x86\x4f\xb2\x9d\xef\xb7\x6c\x9d\xff\x5f\x8b\x4f\x67\x1e\xb2\x4f\xc8\x3e\x8d\x94\x98\xc0\x7d\x0a\x21\x4e\xad\x39\x26\x7c\x9f\x06\x5c\x1b\x0e\x7c\x5f\x1e\x5d\x13\xff\x69\x41\x33\x5f\xc1\x3b\x58\x9f\x3a\xed\x19\xeb\x3d\xdf\xd8\x80\x29\x54\x38\xdf\x68\x53\xe0\x3e\x81\xfb\x14\x24\x9c\xaf\x79\x37\x88\x9f\x20\x7e\xf6\x6f\xa8\x8f\x2b\x5f\x79\x9d\x3b\x2f\x6c\x38\x8d\x03\x9d\x82\x87\x13\xd0\xbf\x41\x88\x53\x43\xb0\xa9\x24\x44\x13\x8c\xbb\xba\xd2\xbd\x05\xf7\x6f\x14\xe7\x12\x5a\x5c\xb8\x7e\x09\x2d\x2e\x74\xbf\xd0\xfd\x42\xf7\x0b\xd7\x2f\x29\xa2\x0b\xdd\x2f\x29\xa2\xbf\x96\xdc\x18\x7f\x7d\xbf\x94\x75\x57\xce\x57\xf6\xee\xfa\xe9\xfa\xe9\xf3\x0d\xf9\x90\x46\xaa\xdc\x75\x6a\x86\x36\x15\xbd\xde\x95\xed\x62\xa5\xa4\x17\xef\x2f\xbc\xbf\xbe\x37\xec\x74\xbb\x46\xf1\xcb\x17\xac\xc2\xbf\xa5\x58\x46\xaa\xe9\x42\xf7\x0b\xd7\x2f\x21\xca\x25\x44\xb9\xd0\xfd\x42\xf7\x4b\x70\x72\x49\x44\x7d\xad\x96\x16\xc6\x5f\xdf\x1b\xf3\x90\xae\x51\x64\xfd\x1a\xbc\xa2\xfb\x25\x50\xb9\x30\xfe\x42\xf7\x0b\xdd\x2f\x74\xbf\xbe\x37\x82\xb2\x5c\x5f\x3e\xb3\x5e\x3b\x38\xff\x7a\xbb\xd2\x0c\xfb\xef\x0d\x87\x37\xd6\xf2\x7b\x7b\xd1\xaf\x39\xf2\xb0\x4e\xeb\xb2\x9a\x7c\x6f\x77\x30\xfe\x12\xb4\x5c\xe3\x35\x53\x1e\xae\xb7\x3b\xe8\x7e\x09\x51\x2e\x8c\xbf\x30\xfe\xc2\xf8\x4b\xb8\x72\x49\x53\x5d\x0a\x30\x97\xd0\xe5\x12\xba\x5c\xd8\x7f\x61\xff\x85\xfd\x97\xd0\xa5\x41\x29\x77\x75\xbd\x56\x06\x82\x96\x6b\xbc\x79\xfc\xf6\x88\x02\xb0\xc6\x2b\x87\xb4\x47\x74\x80\x45\x07\x30\xe6\xf1\xae\xae\xdf\xae\xdc\x3e\x5f\xe3\xe9\x57\xc4\x44\x07\x58\x74\x80\x45\x07\x58\x74\x80\x45\x07\x58\xd8\x7f\x61\xff\xa5\xc9\xcc\xc2\xfe\x0b\xfb\x2f\xec\xbf\x50\xff\x1a\xaf\xad\x93\x1d\x44\xfd\x0b\xf5\x2f\xd4\xbf\x50\xff\x42\xfd\x0b\xf5\x2f\xd4\xbf\x50\xff\x12\xf0\x5c\xd8\x7f\x61\xff\x85\xfd\x17\xf6\x5f\xd8\x7f\x61\x7f\x6d\xe5\xef\xca\x4a\x63\x7a\xd4\xbf\xb4\xee\x7d\xed\x77\x16\xf6\x5f\x78\x7f\xe1\xfd\x85\xf7\x97\x10\xe8\x42\xfd\x0b\xf5\x2f\xd4\xbf\x50\xff\x7a\xcd\xfd\xb0\xff\xc2\xfe\x0b\xfb\x2f\xec\xbf\xb0\xff\x42\xfd\x0b\xf5\xaf\xf9\xca\xcc\xdf\xb8\x3f\xbb\x8f\xfa\x17\xea\x5f\x78\x7f\xcd\xd7\x7a\xc2\x5e\x63\xfc\x85\xf1\x17\xc6\x5f\x02\xa1\x46\x1c\xcd\x25\x04\xba\x90\xfe\x12\xfc\x5c\x48\x7f\x09\x7e\x2e\xc1\xcf\xf5\x8a\x5e\xdf\xd8\x61\x69\xbc\x8b\x0e\xb0\xe8\x00\x8b\x0e\x60\xa4\xe7\x5d\x5f\xb3\x7e\xd7\xdb\x5f\x29\xbd\x46\x7d\xde\xd5\x35\xbe\xa1\x74\x00\xed\x10\xef\xea\x33\xed\xb2\x40\xa8\xc6\x83\x77\x75\x8d\x3d\xa5\x09\x2c\x6a\xc0\x12\x0e\x5d\x34\x01\x23\xe2\xef\xea\x4a\xfb\x28\x34\xba\xa8\x04\x8b\x4a\xb0\xa8\x04\x8b\x4a\xb0\xa8\x04\xaf\x0c\x67\x51\x09\x16\x95\x60\x51\x09\x16\x95\x60\x51\x09\x16\x95\x60\x51\x09\x16\x95\x60\x51\x09\x16\x95\x60\x51\x09\x96\x90\xe9\x2b\xc8\x5d\xb4\x82\x25\x64\xba\x28\x06\xeb\x8d\x72\xd5\x2d\x78\x51\x0c\x16\xc5\x60\x51\x0c\x0c\x71\xb9\x2b\x2b\x7b\x2a\xa0\xba\x68\x08\x4b\x58\x75\x2d\x7b\xfa\xba\xbd\x52\x15\xb4\x04\xb9\xab\xeb\x7d\x8b\x69\x0b\x8b\xb6\xb0\xd6\x1b\xa7\x64\x7f\xb5\x99\x5a\xd2\x90\x97\x34\xe4\x45\x6d\xd0\xfc\xf0\xae\x6c\xed\xf8\x7a\x0d\x9d\xec\xb8\xc4\xe4\xb5\xde\x40\x5d\x3b\x4e\x7f\x58\xf4\x87\x25\x55\x79\xbd\xb1\x76\x54\x88\x45\x85\x58\x42\xb8\x6b\xbd\xe2\x44\xdf\x68\x09\xcb\x8b\x3a\xb1\xa8\x13\x8b\x3a\xb1\xa8\x13\x8b\x3a\xb1\x24\x2f\x2f\xea\xc4\x12\xe6\x5d\x86\xf4\x2e\x89\xcc\x4b\x13\xf6\x25\xf0\xbb\xf4\x6f\x5e\x92\x9a\xd7\x6b\xe3\x46\xcd\x58\xd4\x8c\xf5\x9a\xc9\xd0\x34\x96\x50\xf0\xa2\x6c\x2c\xa9\xcd\x9a\xba\xcc\x25\xf0\xbb\x28\x18\x8b\x82\xb1\xe8\x15\xba\xf3\xde\xd5\x08\x1f\xdf\xc1\xfd\x1b\xc0\xfb\x1a\xd7\xf8\xed\x6b\x25\x6f\x77\xe8\x15\x1a\xda\xdc\xf5\x5d\xe3\x73\xec\x11\xbd\x62\xd1\x2b\x16\x8d\x62\xbd\x81\xbd\x82\xb7\xc6\x7e\xdc\xb5\x14\x78\xfa\xb9\x7b\x4b\xa3\x58\x34\x8a\x57\xf8\xb9\xa8\x10\x06\x84\xdc\xf5\x95\xe5\xbe\x9f\xb0\x75\x07\x28\x0c\x6f\x30\xf2\xa2\x2d\xac\xfd\xda\x83\xbc\x41\x80\xf5\xda\xdf\xfb\xb9\x6f\xc1\x6b\x85\xff\x86\x6a\x50\x15\x96\x84\xe2\x45\x4f\x58\xf4\x84\x45\x4f\x58\xf4\x04\x8d\xb3\xee\xba\xac\x5a\x77\x3a\xc3\x42\xbb\x8b\x86\x60\x78\xe9\x5d\x5d\xe9\x0c\xbf\x31\xa4\x94\x84\x25\xd1\x78\xc5\xeb\x55\xec\xce\x50\x12\x16\x0d\x61\xd1\x10\x16\x0d\x61\x09\x05\x2f\x4a\xc2\xa2\x24\x2c\x4a\xc2\x6f\xf8\x10\x25\x61\x51\x12\x96\x44\xe3\x45\x4f\x78\xbd\x8d\x17\x55\x61\x51\x15\x56\xbc\xc1\x06\xce\x21\xf5\x60\xbd\x72\x5a\xea\xc1\xa2\x1b\xbc\x41\xc7\xbf\x11\xa3\x74\x83\x25\xad\x78\x51\x0f\x16\xf5\x60\xd1\x0d\xd6\x1b\xfe\x44\x37\x58\x54\x82\x45\x25\x58\xf4\x81\x45\x19\x58\x94\x81\x15\x6f\x80\x19\x3f\x43\x13\x58\x74\x80\x15\x6f\xb4\xb2\xf3\x46\x01\x58\x14\x80\x45\x01\x58\x14\x80\x45\x01\x58\x14\x80\x85\xfd\x17\xf6\x5f\x82\xcc\x8b\x02\xa0\x0d\xcb\x5c\x88\x7e\x21\xfa\x25\x05\x78\x21\xfa\x85\xdc\x97\x54\xdf\x85\xd3\x97\x00\xf2\x92\xd2\xbb\xd0\xfa\x42\xeb\x0b\xad\x2f\x9c\xbe\x70\xfa\x7a\x2d\x05\x70\xfa\x42\xe8\x0b\x95\xbf\x66\xb3\x5a\x3c\xdd\xd5\xe7\xc4\xfb\xad\x4f\x73\x0f\xcf\x1b\xd3\xea\xfb\x8b\xca\x17\x2a\x5f\xa8\x7c\xa1\xf2\x85\xca\x17\x2a\x5f\xa8\x7c\xa1\xf2\x25\x75\x77\x9d\xd7\x46\x3f\x5f\x59\xa5\xeb\xf9\x70\x3c\xbe\xf0\xf8\xc2\xe3\x4b\x38\x7a\x09\x47\x2f\x54\xbe\x50\xf9\x42\xe5\xeb\xbc\xd6\xbb\xee\x2d\x12\x5f\x48\x7c\x61\xf0\x95\xaf\x31\x85\x13\x8b\xac\x17\xb2\x5e\xc8\x7a\x19\x07\xb8\x30\xf5\xc2\xd4\x0b\x53\x2f\x4c\xbd\x30\xf5\xc2\xd1\x0b\x47\x2f\x1c\xbd\x10\xf4\xc2\xce\x0b\x35\xaf\xd7\xea\x0a\x2f\x2f\xbc\xbc\xf0\xf2\x1b\xff\xb9\xf2\x37\x0a\xd4\xe7\xb8\xcf\xe8\xd8\xe0\x8a\xbb\xfa\xab\xdc\x73\x74\xbc\xd0\xb1\xd1\x14\x77\x75\xbd\x3b\x8f\x8e\x17\x3a\x5e\xe8\x78\x09\x71\x2f\x21\xee\x85\x91\x97\x74\xda\x85\x94\x97\x70\xf7\x42\xca\x4b\xb8\x7b\xe1\xe5\x85\x97\x97\x70\xb7\x36\x02\x77\x65\x95\xef\x7a\xff\x8a\x5d\x40\xc7\x0b\x1d\xaf\x7c\x0d\x87\xdd\x79\x21\xee\x85\x8e\x17\x3a\xd6\xfe\xfa\xd7\x90\x67\x09\x7a\x2f\x8c\xbc\xb4\x11\x5b\x48\x79\x21\xe5\x85\x94\x97\xb6\x36\xaf\x31\xce\x32\x28\x71\xa1\xe6\x85\x9a\xd7\x1b\x1c\x22\x24\xbe\xb0\xf3\x42\xcd\x0b\x35\x2f\xd4\xbc\x50\xf3\x2a\x3b\x25\x24\xbe\x24\xd5\x2e\x04\xbd\x24\xd5\x2e\xe1\xf1\xf5\x06\x0d\x0a\x92\x2f\x41\xf2\x85\xac\x35\x27\xbf\xab\xeb\x7d\x5f\xf0\xf5\x12\x24\x5f\x46\x16\xbf\x52\xe5\x25\x54\xbe\x10\xf7\x42\xdc\x0b\x65\x2f\xe1\xf1\x85\xb5\x57\xbd\xbe\xe9\xbe\x35\x02\xe3\xab\xec\x1d\xee\x5e\xc2\xe3\x0b\x77\x2f\x09\xb9\xeb\x8d\x8e\x7b\x8d\x17\x04\xcc\x17\x12\x5f\x48\x7c\x49\xd1\x5d\x82\xe7\x4b\xf0\x7c\x61\xf3\xf5\xda\x40\x21\xf4\x85\xd0\x17\x42\x5f\x08\x7d\xbd\x11\xca\x08\x7d\x09\xa4\x2f\x6c\xbe\xb0\xf9\xc2\xe6\xda\x21\xce\x85\xcd\x17\x36\x5f\x6f\x08\x3c\x36\x5f\xd8\x7c\x61\xf3\x85\xca\x17\x2a\x37\xa4\xfd\xae\xd3\x6a\x10\x8e\x1d\x94\xcc\xbb\x70\xfa\xc2\xe9\x0b\xa7\xaf\xd7\x10\x06\xad\x2f\xb4\xbe\xd0\xfa\x1b\xe1\xb6\x30\xfb\x12\x90\x5f\x02\xf2\x0b\xbf\x2f\x01\xf9\x85\xe2\x97\x50\xfc\x42\xf1\x0b\xc5\x2f\x14\xbf\x50\xfc\x12\x90\x5f\x02\xf2\x0b\xd1\x2f\x44\xbf\x04\xe4\x97\x80\xfc\x42\xf7\xab\xed\x29\xba\x5f\xe8\x7e\xa1\xfb\x25\x38\xbf\x30\xfe\xc2\xf8\x0b\xe3\x2f\x8c\xbf\x24\x0b\x2f\xe1\xfa\x25\x59\x78\xa1\xfe\x85\xfa\x97\xd0\xfd\x12\xba\x5f\x42\xf7\x4b\xe8\x7e\x51\x03\x16\x35\x60\x09\xe3\x2f\x61\xfc\x45\x19\x58\xc2\xf8\x8b\x32\xb0\x28\x03\x8b\x26\xb0\x68\x02\x8b\x26\xb0\xa4\x0f\x6b\x56\x79\x57\xff\x96\xdd\xa7\x0f\x2c\xa9\xc4\x8b\x4a\x60\xac\xdd\x5d\xd9\xda\xfd\x37\x06\x98\x4a\xb0\xa8\x04\x4b\xd8\x7f\xfd\x06\x17\xf1\xa8\xb4\x82\x25\x05\x60\x19\xad\xb7\x5e\x23\x71\xba\xc1\xa2\x1b\x2c\x43\xce\x97\xd4\x80\x37\xd2\xdf\xd8\xf0\x69\x44\xd9\x7c\xa3\xb3\xd6\xd3\x13\x14\x99\x1a\xb6\xf1\xfa\x64\xbf\x0e\xd9\xfa\x10\xcf\xd7\x2d\xf8\x75\xeb\x7c\x5d\x33\x75\x3b\x9b\xba\x9d\x4d\xbd\xb5\xe6\xeb\x53\xb2\x89\x0d\x9b\xd8\xb0\x89\x0d\xfb\x1b\xac\xf4\xd7\x24\x39\xec\xef\xcd\x5d\x32\x8d\x88\xf0\xb0\x09\x0f\x9b\xf0\xb0\x09\x0f\xfb\xfb\x4d\x4e\x61\x6b\xee\x0f\x99\x61\x93\x19\xb6\xb4\x82\x4d\x66\xd8\x44\x85\x2d\x7d\x60\x7f\xaf\x8f\xf2\x76\xbd\xee\x23\xa4\x85\x4d\x54\xd8\x52\x06\x36\x69\x61\x4b\x19\xd8\x04\x86\x4d\x54\xd8\xdf\x9b\x30\x7b\xfc\xd6\xd4\x18\x42\xc2\xfe\xde\x94\x93\xd7\xcd\x34\x7d\x82\xbe\xaa\x24\x84\x4d\x42\xd8\x04\x83\x2d\x8f\xd9\xdc\xb4\xbb\xfa\x17\xfb\xfd\xdc\xf5\x6e\xf0\x9b\xa0\x44\x2a\xd8\x72\x9a\x37\x91\x60\x13\x09\x36\x91\x60\x13\x09\x36\x79\x60\x93\x07\xb6\x3c\xe6\x4d\x24\xd8\x44\x82\xfd\xfa\x95\x8e\xd7\xbd\xd5\x3d\x24\x0c\x6c\x62\xc0\xaf\x1b\xc4\x9b\x1f\x4d\x0c\xd8\xc4\x80\x4d\x00\xd8\x04\x80\x4d\x00\xd0\x23\xea\xae\xae\x5c\xae\x34\x6a\x82\x00\xb0\x25\x02\x6c\x32\xc0\x26\x03\x6c\x89\x00\x9b\x18\xb0\xc7\x9b\x52\x6d\x1a\x2f\x01\xe0\xf5\xab\xde\x04\x80\x2d\x05\x60\x8f\xd7\x9d\xc2\xdd\x26\x06\xfc\x7a\xcd\x92\x01\x36\x19\x60\x93\x01\xb6\x14\x80\x4d\x0c\xd8\xe3\xf5\xc2\xd7\x73\x91\x18\xb0\x89\x01\x9b\x18\xb0\x89\x01\x9b\x18\xb0\xc7\xeb\x3a\x63\x5f\xa0\xff\x06\xfd\x1b\xee\x6f\x70\xbf\x01\xfd\x16\xcc\xdf\x82\xf9\x1b\xd6\xef\xf9\xa6\x59\xd9\x0b\xf8\xbe\xe1\xfb\x86\xef\x5b\xa0\xfe\xf5\xbd\xd8\x82\xf0\x5b\xf8\x7d\x03\xf1\x0d\xc4\x37\x10\xdf\xf3\x37\xa7\xdb\x7c\x70\x7d\xb3\x64\x21\x6f\x20\xbe\x81\xf8\x9e\xbf\x59\xa5\x3e\x47\x8f\x9c\x37\x0b\x6f\xbe\xa9\xe2\xee\xb0\x90\xfb\x06\xdc\x5b\xe0\x7d\xc3\xee\x0d\xbb\xb7\x2e\x17\x1b\x7c\x6f\xf0\xbd\xc1\xf7\x96\x85\xbc\x21\xf8\x86\xe0\x7b\xbe\x6e\xbe\xee\xb0\x80\xfc\x06\xe2\x1b\x88\xef\xd7\xc9\x12\x8e\x6f\x38\xbe\x81\xf8\x06\xe2\x1b\x82\x6f\x08\xbe\x5f\x9f\x7e\x20\xbe\x21\xf8\x86\xe0\x1b\x82\x6f\x08\xfe\x9b\x05\x06\xc1\x7f\xfd\x83\x21\xf8\x86\xe0\x1b\x82\x6f\x08\xbe\x21\xf8\x9e\xef\xce\xfb\x2e\xac\xd7\x49\xcb\xfd\x87\xdd\x1b\x76\x6f\xd8\xbd\x7f\xfd\x50\xbf\xff\xcc\x0c\xda\xb0\x7b\x43\xed\x0d\xb5\x7f\x7d\x7d\x40\xf6\x06\xd9\x1b\x46\xef\xf5\x26\x0d\xcd\xf7\x13\x56\x76\x67\xbd\xae\x66\x76\xe7\x4d\x90\x5c\xaf\x3f\xd0\x7e\x3d\xbd\x5c\xe3\x9c\xab\xdd\xdd\x6b\xbf\xdf\xfa\x04\xbb\x03\x88\x37\x20\xde\x80\x78\x03\xe2\x2d\x44\xbf\x81\xef\x06\xbe\x7b\xbd\x09\xd1\xee\x3c\xcc\xdd\x30\x77\xc3\xdc\x0d\x73\xf7\xaf\xbb\xbc\x93\x2c\xef\x79\xcb\x78\xde\xcb\x9d\x87\xbc\x5b\xf6\xf3\x16\xcc\xdf\x82\xf9\x7b\xb9\xf3\x42\xfa\x6f\xa6\xd5\x5e\xaf\x73\xb3\x3b\xff\x7a\xd5\xaf\x37\x29\xbb\x5f\xf7\x7a\xb6\xaf\xc3\xa2\xfb\x2f\xd4\xaf\x77\xda\xdc\x82\xfc\x5b\x3e\xf4\xaf\x6b\x0b\x5c\xde\xfb\x4d\x9c\x77\xb7\x41\xf3\xde\xaf\x8b\x92\xbb\x0d\x97\xb7\xf0\xfe\x06\xca\x5b\x60\xff\xcd\xc2\xde\x70\x79\x0b\xe3\x6f\xd0\xbc\x65\x3c\x6f\xe8\xbc\xa1\xf3\xde\xaf\x53\xd4\xaf\x4b\xae\x4f\x7e\xdd\xec\xde\x84\x68\xdf\x02\xc1\xfc\x2d\x5c\xbf\x5f\x47\x2b\x30\xbd\x61\xf4\xde\xe7\xf5\xbc\xf1\x69\xee\x30\x74\xde\xea\x78\xb7\xb0\xfc\x6f\xd2\x34\x98\xde\x42\xf4\x1b\x52\x6f\x48\xbd\x21\xf5\xde\xaf\x63\x8d\x7b\x2b\x5c\xbf\xe1\xf5\x86\xd7\x5b\xd0\x7e\xeb\x04\xbf\xa1\xf6\xde\xaf\x7b\xb7\x7b\x08\xb5\x77\x38\xc9\xaf\xef\xa6\xa0\xfd\x9b\xc3\xb5\x5f\x67\x5c\x41\xfb\x0d\xb5\x37\xd4\xde\x50\x7b\x43\xed\x0d\xb5\xb7\x10\xfd\x06\xd9\x1b\x64\x9b\x0b\x7c\xd7\x37\xe7\x94\x95\x33\x0c\xa9\x37\x8c\xde\x30\x7a\xc3\xe8\x0d\xa0\x37\x80\xde\xf1\x7a\xd7\xb9\x93\x60\x7a\x83\xe9\x0d\xa6\xb7\x7a\xdd\x2d\x08\xbf\x61\xf4\x7e\x7d\x6e\x04\xe1\x37\x98\xde\x6f\xde\x3a\x8c\xde\xf1\x7a\x78\xf3\x1e\x60\x7a\x0b\xbf\x6f\xd0\x6c\xf2\xe9\x5d\xfd\xff\xba\x7b\x02\xe9\x1b\x34\x6f\xd0\xbc\xe1\xf2\x86\xc8\x1b\x22\x6f\x88\xbc\xcf\xeb\x1c\xfc\x7a\xfc\xb8\x3f\x42\xe2\x5b\xee\xf5\x86\xc8\x5b\xd0\x7b\x03\xe5\x2d\xe8\xbd\x05\xbd\xf7\x9b\x26\x26\xe8\xbd\xa1\xf3\x16\xf4\xde\x82\xde\x5b\xd0\x7b\x0b\x7a\x6f\x30\xbd\x05\xbd\x37\x8c\xde\x00\x7a\x83\xe6\x0d\x9a\xb7\xe0\xb6\x5e\x62\x77\x7d\xd7\xf8\x6b\xdd\x37\x18\xbd\xd5\xc4\xee\xf3\xeb\x01\xec\xca\x37\xad\xe5\x75\x09\x72\xf7\x04\xb7\x37\x8c\xde\x00\x7a\x03\xe8\x0d\x9d\x37\x74\xde\xd0\x79\x0b\x68\xbf\x49\x2f\x1b\x34\xef\x37\x0d\x19\x16\x6f\x58\xbc\x85\xa9\xb7\x30\xf5\x86\xc5\x5b\x20\x7a\x0b\x41\x6f\x21\xe8\x2d\x04\xbd\xc1\xf1\x06\xc7\x1b\x1c\x6f\x70\xbc\x05\x9c\xb7\x80\xf3\x86\xc5\x1b\x16\x6f\x58\xbc\x55\xa5\x6e\xa1\xe6\x9d\xee\x2a\x38\xde\xe0\x78\x0b\x32\x6f\x70\xbc\xc1\xf1\x06\xc7\x1b\x1c\xff\x86\x51\xe5\x6f\x30\x95\x4f\x70\x27\x5f\xdf\x44\x40\xfc\x9b\xf0\x2e\x38\xbc\xe1\xef\x86\xbf\x1b\xfe\x6e\xe0\xbb\x85\x85\x4d\xe8\xbb\x2b\x5b\xf7\x0d\xf2\xee\x37\x15\x07\xf8\xee\x7c\xb3\xfc\xdc\x3d\xb0\xbb\xc1\xee\x56\x3b\xba\xf3\xf5\x9f\xe6\x39\x05\x87\x37\xf0\xdd\x82\xc3\x5b\x86\xf7\xce\xd7\x0f\xcf\xf9\x84\xbf\x1b\xfe\x6e\xf8\xbb\xf3\xdd\x61\xdf\x6b\x80\x6b\x4e\xd4\x5d\xf5\xb1\x73\xcf\xdf\x2c\x29\x79\xde\x1b\xc2\x6e\x08\xbb\x61\xeb\x86\xad\x1b\xb6\xbe\x99\x3f\x5b\xf8\x77\x03\xd6\xad\x16\x74\xc3\xd6\x0d\x55\xb7\x50\xf0\x06\xac\x1b\xb0\x6e\xc0\xba\x41\xea\x06\xa9\x5b\x3e\xf7\x06\xa9\xbb\xde\x54\x1c\xf7\x16\xaa\x6e\xa8\xba\x85\x85\x37\x60\xdd\x80\x75\x03\xd6\x0d\x55\xb7\x40\xf1\x06\xac\x1b\xb0\x6e\x90\xba\x41\xea\xd6\x1b\x6c\x03\xd3\x0d\x4c\x37\x30\xdd\x90\x74\x43\xd2\x0d\x49\xb7\xa0\xf1\xaf\x93\x1f\x30\xdd\xf2\xbc\xb7\x00\xf2\x9b\x04\xba\xa1\xaa\x09\xe0\x77\x65\xeb\x6e\x43\xd5\x0d\x55\x37\x54\x7d\xdd\x88\x37\x54\xdd\x6f\x76\xa1\x00\xf2\x86\xaa\xba\xf6\xde\xd5\xdc\xd2\xd7\xd9\xd4\x8e\xc0\xd6\x0d\x5b\x37\x60\x7d\x53\x50\xcc\xf2\x9a\x1b\x9e\x6e\x78\xba\xe1\xe9\xeb\xe5\xbf\xd5\xa3\x6e\x90\xba\xdf\xd4\xd7\xff\xdb\x2c\xd4\xdd\xbf\x49\x23\x3e\xd3\xde\xf5\x9b\x03\x60\x07\xa1\xea\x86\xaa\x1b\xa4\x6e\x90\xba\x41\xea\x06\xa9\x1b\x98\x6e\xc1\xe7\x0d\x4f\x77\xbf\x51\x6d\xbe\x1d\xfd\x66\xa7\xd8\x4d\x60\xba\x81\xe9\x06\xa6\x1b\x98\x6e\x48\xba\xc1\xe8\x06\xa3\x1b\x8c\x6e\x30\xba\xc1\xe8\x9b\x50\xb9\xc1\xe8\x06\xa3\x1b\x8c\xbe\x81\x70\x1b\x92\x6e\x48\xba\x21\xe9\x16\xac\xde\xc0\xd4\x1c\xe7\xbb\xb2\xb5\xe3\xc0\x74\x43\xd2\x0d\x49\x37\x18\xdd\xaf\x8f\x23\x18\xdd\x60\x74\x83\xd1\x0d\x43\x37\x0c\xdd\x30\xf4\x75\x32\xfb\x4f\x57\xb3\xd7\xe1\x8c\x95\x1d\x07\xa0\x5b\xe0\x7a\xf7\x9b\x9f\x63\xaf\x61\xe8\x86\xa1\x1b\x86\xee\x37\x0d\x03\x86\xc6\x9b\xcb\x84\x3a\xe3\xd3\x6b\x19\x75\x06\xea\x0c\xd4\x19\xa8\xf3\x75\x9e\x8e\xd7\x1d\x13\x75\x86\x1a\xda\xc0\x9e\x81\x3a\x03\x75\x06\xea\x0c\xd4\x19\xa8\x33\xbe\x37\x03\x77\xba\xfe\x75\x82\x34\x55\x56\x88\x3b\xf0\x66\xbc\xa9\x9d\x42\xdc\x81\x3d\x43\x62\x7b\xa0\xce\x10\xdc\x0e\xc1\xed\x90\xcc\x1e\x42\xdc\x61\x1e\x7d\xe0\xd0\xd0\x67\x37\xbe\xed\xca\xed\xca\xed\xca\x70\xa5\x79\xe5\x6f\x82\x0d\x56\x0d\xac\x1a\xc2\xe0\x81\x58\x03\xb1\xc6\xf7\xba\x62\xeb\xc5\x8b\x58\x43\x48\x3c\x70\x6b\xe0\xd6\x10\x12\x0f\x21\xf1\x78\xd3\x87\x90\x6c\x08\x8c\x87\xc0\x78\xa0\xda\x90\x02\x1f\xd8\xf6\xcd\x4a\x8e\xef\xf5\x20\x4f\xb6\x59\xff\xfa\x62\xbe\x3e\xdc\x21\x1d\xfe\xcd\x0b\x0e\xb4\x1b\x02\xe6\x21\x60\x1e\x6f\xfa\xa7\x50\x79\x48\x84\x37\x91\xe3\xae\xac\x9a\x55\xb3\x6a\xd7\xb7\x29\xab\xdf\x5b\x4b\x47\xde\x65\x35\xe9\x6b\xbc\x19\xac\x7e\x6e\xa7\x04\xba\x03\xd5\x06\xaa\x0d\x54\x1b\xa8\x36\x50\x6d\x08\x6e\x07\xaa\x0d\x54\xfb\xba\xeb\x05\xaa\x0d\x3c\xfb\xaf\x87\xb1\x2e\xaa\x48\x36\x90\x6c\x20\xd9\x10\xd6\x0e\xdc\x1a\xb8\x35\xc6\x9b\x06\xeb\xce\x4b\x5a\x0f\x7c\x1a\xf8\x34\x70\x68\xe0\xd0\xc0\xa1\x81\x40\x43\x38\x3a\x04\xa2\x03\x8d\x86\x40\x74\x60\xd2\x18\xaf\xf3\xdf\xeb\x43\xec\xbe\x09\x44\x87\x40\x74\x08\x3e\x07\x1a\x0d\x81\xe5\xc0\xa4\x81\x49\xcd\x8d\xb9\xab\xc9\x03\x4e\xbe\x60\x72\x08\x23\x87\xa0\x71\xa8\xa7\x0d\xac\x1a\x58\x35\x04\x90\x43\x00\x39\xa4\x8a\x07\x62\x0d\xc4\x1a\x42\xc7\x21\x49\x3c\x04\x90\x03\xc3\x06\x62\x8d\xd7\x91\x71\xbe\xf9\x15\xee\x98\x10\x71\xe0\xd3\x90\x12\x1e\xc8\x34\x30\x69\xcc\x37\x15\xc1\xc9\xc4\xa1\x81\x43\x03\x87\x86\x80\x70\xa0\xd1\x40\xa3\x81\x43\x03\x87\x06\x0e\x0d\x61\xe1\x10\x0a\x8e\xf9\x06\xb5\xba\x87\x82\xc0\x81\x2b\x03\x45\x06\x8a\x0c\xe4\x18\xa8\x30\x04\x63\x03\x1b\x06\x36\x0c\x54\x18\x02\xad\x21\xd0\x1a\x02\xaa\xf1\xe6\xdb\x20\xc1\xc0\x80\x21\x64\x1a\x48\x30\x84\x4c\x43\x68\xf4\xf5\xbf\x0c\x0c\x18\x18\xf0\xf5\x89\x0c\xf4\x17\xe8\x2f\xd0\x5f\x08\x87\xc6\xeb\x96\x8d\x04\x43\x20\x34\xf0\x60\xe0\xc1\x10\x08\x0d\x21\xd0\x40\x85\x21\x04\x1a\x78\x30\xb0\x5e\x60\xbd\xc0\x7a\x81\xef\xe2\xf5\x88\xc5\x77\x81\xec\x02\xd9\x05\xa6\x0b\x4c\x17\xeb\xdd\x0d\xfe\x13\xd3\x85\x70\x68\x08\x87\x06\xb2\x7b\x1d\xeb\x43\x38\x34\xa4\x72\x07\xd6\x0b\x7c\x17\xc8\x2e\x90\x5d\xa8\x7a\x8d\x37\x65\x5b\xf0\x33\x30\x5d\x48\xd3\x0e\x64\x17\xc8\x2e\xd4\xb5\x86\xba\xd6\x40\x79\xa1\x73\x53\x60\xbd\xc0\x7a\x7a\x55\xde\xd5\x6f\x9d\x22\x94\x17\xd2\xb7\x43\xff\xa6\xc0\x7a\xa1\x8b\x53\x08\x99\x86\xea\xd6\x90\xb8\x1d\x12\xb7\x43\xe2\x76\x20\xc1\x10\x4a\x8d\xfd\xe6\x08\xb9\x93\x42\xa9\x81\x01\x43\x28\x35\x84\x52\xe3\x4d\x57\x90\xa6\xfd\xe6\xb3\x05\x1e\x0c\xf4\x17\xbf\x69\x4e\xee\x30\xd6\x0b\xac\x17\xdb\x1d\x46\x7c\x81\xf5\x02\xeb\x05\xd6\x0b\xac\x17\x6f\xd6\x3c\xe2\x0b\xc1\xd5\x78\x93\x97\x05\x57\x03\xeb\x85\xf0\x69\xbc\xf9\xec\xe6\x2d\xbc\xe9\xc9\x11\x6f\x82\xb9\x7b\x2b\x70\x6a\xea\xf1\x5d\x7d\x8e\x7b\x28\xf9\x3a\x84\x4c\x03\xeb\x45\xbc\x2e\xce\xbe\x95\x28\x2f\x24\x5f\x07\xd6\x0b\xac\x67\xda\xf2\x0c\x7c\x17\x82\xa5\x81\xf2\x42\xc8\x34\xde\x2c\x29\xac\x17\xba\x32\x05\xe2\x7b\x9d\xa1\x03\xf1\x85\xf0\x69\xc4\x9b\x5f\xe7\x7e\x62\xbd\x90\x6a\x1d\x52\xad\xcd\xba\xb9\xab\x4f\xce\xd7\xe1\xf5\xfb\xd7\xe7\x35\x50\x61\xa0\xc2\x40\x85\x81\x0a\x43\x62\x75\x48\xa9\x0e\x54\x18\x42\xa9\x81\x0d\x43\xc7\xa5\x78\x73\xa2\x04\x4e\x4d\x98\xb9\xeb\xb1\x9a\xb6\xff\xbd\xdf\xde\xcf\x41\x8b\x21\x75\x3a\xa4\x4e\xc7\x79\x13\xf9\x9d\x5e\xcc\x18\x98\x31\x04\x57\x03\x39\x06\x72\x0c\xe4\x18\x02\xad\x81\x16\x03\x21\x86\x70\x6b\x08\xb7\x06\x5a\x0c\xe1\xd6\x40\x8b\x71\x5e\x87\x5a\x77\x1e\x2d\x06\x5a\x0c\xb4\xa8\x6f\xf7\x0c\xb4\x18\x52\xa1\x43\x12\x74\x60\xc6\xc0\x8c\x21\x00\x1b\xc8\x31\x90\x63\x20\x47\x7d\x6d\xef\xea\x4a\x7e\x12\x39\x06\x42\x0c\x21\xd6\x10\x62\x0d\xb4\x18\x68\x31\x24\x3e\x87\x40\x6b\xe8\x8e\x14\xc2\xad\x21\xd0\x1a\x58\x32\x04\x5a\x03\x51\x06\xa2\x0c\x81\xd6\xc0\x95\x81\x2b\x03\x57\x1a\x27\x7c\x57\xd7\xbf\x5d\x70\xda\x25\x41\x87\x00\x6c\x60\xcf\xc8\x37\x39\xd0\xbe\xe4\x1b\x36\x6c\x5f\xb0\x67\x60\xcf\xc0\x9e\x21\x30\x1b\x08\x34\x10\x68\x08\xd2\x86\x20\x6d\xa0\xd1\x40\xa3\x81\x40\xe3\xf5\xe4\xc6\xa1\xf1\x26\xaa\xa1\xd1\x40\xa3\x91\x6f\x8a\xba\xfd\x42\xa3\x21\xb5\x39\x30\x69\x60\xd2\x78\x9d\xce\x91\x69\x20\xd3\x10\xb6\x0d\x7c\x1a\x82\xb7\x21\x6c\x1b\x52\x9b\x43\xc0\x36\x50\x6a\x08\xd5\x06\x56\x0d\x01\xdb\x40\xac\x81\x55\x43\xa8\x36\x10\x6b\x20\xd6\x10\xb0\x0d\xdc\x1a\xb8\x35\x70\x6b\xe0\xd6\x40\xac\x81\x58\x03\xab\x06\x4a\x0d\x81\xd9\x10\x98\x8d\x7c\x73\x17\x7d\x6b\xde\x74\x02\x7c\x1a\x92\x97\x03\x9f\x06\x3e\x0d\x7c\x1a\xf8\x34\x04\x66\x03\xa5\xbe\xf9\x8d\x21\x24\x1b\x88\x35\xea\xcd\x35\xf5\x0d\x42\xac\x21\x18\x1b\xc2\xb0\x51\xaf\x97\xbc\xdd\x11\x8c\x0d\x89\xcc\x81\x64\x03\xc9\x86\x60\x6c\x08\xc6\x06\xaa\x0d\x54\x1b\xa8\x36\x04\x63\x03\xdb\x06\xaa\x0d\x3c\x1b\xc2\xb0\x21\x0c\x1b\xd8\x36\xb0\x6d\x60\xdb\xc0\xb6\x21\xd9\x39\x10\x6e\x08\xc9\x86\x90\xec\x9b\xb3\x1f\x68\xf7\x5f\x9f\xfb\x37\x8b\xd2\xb7\x4c\x2a\x74\xe0\xdf\xc0\xbf\x6f\xc6\x63\xe0\xdf\xc0\xbf\x21\x39\x3a\x50\x70\xa0\xe0\xc0\xbf\x21\x60\x1b\x28\xf8\x4d\xb6\x0c\x14\x1c\x28\x38\x84\x6d\x43\xd8\x36\xb0\x70\x08\xd8\x86\x80\x6d\xe0\xe2\xd0\x59\x29\x04\x6f\x03\x23\x47\xbd\x39\x93\xf6\x14\x23\x07\x46\x0e\x8c\x1c\x18\x39\xd0\x71\xa0\xe3\x40\xc7\x81\x8e\x03\x1d\x07\x3a\x0e\x74\x1c\xe8\x38\xd0\x71\xa0\xe3\x40\xc7\x81\x8e\x03\x17\x87\x10\x6e\xa0\xe3\x40\xc7\x81\x8e\x03\x17\x07\x2e\x0e\x21\x5c\xfd\xf8\xef\x6a\x1a\xa1\x7d\x47\xc4\xe6\x92\xdd\xd5\xcf\xed\x35\xfe\x0d\xfc\x1b\xf8\x37\xf0\x6f\xe0\xdf\xe8\x37\xcf\xd0\x2e\xf7\x9b\x07\x68\x97\x31\x6f\x60\xde\x10\x92\x0d\xcc\x1b\x98\x37\x30\xef\x9b\x82\x18\xc2\xb0\x66\x71\xdc\xd5\x35\xf6\x0b\xe1\x06\xc2\x8d\x37\xf3\x13\xd5\x06\x9e\x0d\x3c\x1b\x6f\xc0\x39\x9e\x0d\x0c\x1b\x18\x36\x30\x6c\xa0\xd7\x10\x50\x0d\xdc\x1a\x42\xa9\x81\x5b\x03\xb7\x06\x6e\x0d\xdc\x1a\x6f\xe4\x3f\x7a\x0d\xf4\x1a\xe8\x35\x5e\x1f\x6e\xf4\x1a\xe8\xd5\xcc\xc3\xbb\xfe\xa7\x1f\x7f\x60\xd8\x40\xaf\x81\x5e\x03\xbd\xbe\xf9\x8d\xf1\x88\x55\xe0\xf4\xe0\xd6\x23\x4e\x7a\x70\xeb\xc1\xad\x26\x39\xcc\x37\xf7\xf5\xe0\xd3\x83\x4f\x0f\x3e\x3d\xc8\xf4\x20\xd3\x37\xb3\xf1\xa0\xd1\x23\xee\x79\x70\xe8\x41\xa0\x07\x7b\x1e\xe9\xd5\x47\xf4\xf3\x4d\x1b\x38\x38\xf4\xe0\xd0\x83\x43\x0f\x0e\x3d\xa2\xa2\x07\x8d\x1e\x1c\x7a\x70\xe8\xc1\xa1\x07\x81\x1e\xa4\x79\x90\xe6\x41\x9a\x07\x69\x1e\x74\x79\x70\xe5\xc1\x95\x07\x51\x1e\x44\x79\x10\xe5\x41\x91\x07\x45\x1e\x14\x79\x50\xe4\x41\x91\x47\x9c\xf4\x60\xc9\xf3\x66\x2c\xa0\xc8\x83\x1f\x0f\x7e\x3c\x38\xf1\xe0\xc4\x23\x42\x7a\x44\x48\x8f\x08\xe9\x9b\xce\x7d\x44\x48\x8f\x08\xe9\xc1\x8c\x67\xbc\x09\x12\x9f\x2b\xdd\x55\x71\xd2\x83\x22\x0f\x8a\x3c\x28\xf2\x48\x9d\x3e\x28\xf2\x88\x90\x1e\x2c\x79\x14\x4c\x1f\x14\x79\x50\xe4\xf9\xcd\x81\x71\x6f\x51\xe4\x41\x91\x07\x3f\x1e\x51\xd1\x23\x39\xfa\xa0\xc8\x83\x1f\x0f\x7e\x3c\xf8\xf1\xe0\xc7\x23\x1e\x7a\xc4\x40\x0f\x96\x3c\x92\xa0\x0f\xa2\x3c\x58\xf2\xfc\xa6\xe8\x1c\x9f\x63\x7e\x20\xae\x3c\xb8\xf2\x88\x7b\x1e\x71\xcf\x23\xee\x79\x90\xe6\xc1\x98\x47\xac\xf3\x60\xcc\x37\x3d\xe3\x60\xcc\xf3\x66\x7f\x61\xcc\xf3\xa6\x7e\x61\xcc\x83\x31\x0f\xba\x3c\x22\xa1\x07\x63\x1e\xf1\xd0\x23\xfa\x79\xf0\xe6\x9b\xb5\x75\xf0\xe6\xc1\x9b\xbf\xce\xf4\x78\xf3\xe0\xcd\x83\x37\x7f\x93\x43\x24\x2c\x1f\xd4\x79\x50\xe7\x6f\x86\xb6\xb4\xe5\x83\x3d\x8f\x38\xe9\x99\x6f\xc2\xf6\x9b\x1b\xe0\x6e\x63\xcc\x33\xdf\x64\xce\x37\xad\xc8\xdd\x9e\xaf\x23\xbe\xbb\x2d\x42\x7a\x10\xe8\x91\xa4\x7c\x10\xe8\x41\xa0\x26\x12\xfc\xe6\x09\x1c\x31\xd3\x83\x49\x8f\x68\xe9\x41\xa6\x07\x99\x1e\x31\xd3\x83\x4c\x4d\x6b\x9f\x47\xb4\xf4\xa0\xd4\xf3\x26\x22\xea\xdc\x74\xf0\xe9\xc1\xa7\x07\x9f\x1e\x7c\x7a\xf0\xe9\xc1\xa7\x47\x29\xf3\x41\xa9\x47\x47\xa7\x23\x72\x7a\x44\x4e\x0f\x6e\x3d\x88\xf5\xcc\x37\xf1\xc0\x8e\x88\x9c\x1e\x91\xd3\x23\x66\x7a\xc4\x4c\xcf\x7c\x93\x58\xec\x0b\xb6\x3d\xf3\xed\x4b\xbb\xbe\xdf\x1c\x27\x9f\xef\xdb\x21\x66\x7a\xc4\x4c\x0f\xf2\x3d\xa2\xa5\x47\xb4\xf4\x88\x96\x9e\xf5\xe6\x09\xf8\xa6\x48\x55\x3e\xe8\xf8\xa0\xe3\x23\x55\xf9\x60\xe4\xdf\xa4\x91\xf5\x26\x9f\xd8\x4d\xbc\x7c\x44\x51\x8f\x3e\x50\x67\xd9\x53\x69\xcb\x47\xda\xf2\x41\xd3\x07\x4d\x1f\x69\xcb\x47\xbc\xf5\x88\xb7\x1e\xf1\xd6\x83\xb2\x0f\xca\x3e\x22\xad\x47\x7a\xf2\xc1\xda\x07\x6b\x9f\x37\x5d\x19\x6b\x1f\xb1\xd7\x23\x3d\xf9\x48\x4c\x3e\xe8\xfb\x88\xc0\x9e\x37\x83\x02\x83\x1f\x0c\x7e\x30\xf8\x59\x76\x5c\x34\xf6\xa0\xef\x23\x19\xf9\xa0\xef\x83\xbe\x0f\xfa\x3e\xb8\xfb\x60\xed\x23\x0e\xfb\x26\xbd\x1c\xdc\x7d\xc4\x61\x8f\x38\xec\x11\x87\x3d\x0a\xa9\x0f\x1e\x3f\x78\xfc\xe0\xf1\x23\xf6\x7a\xc4\x5e\x0f\x1e\x3f\xeb\xcd\x95\xb5\x6b\x22\xad\x07\x8f\x1f\x24\x7e\x30\xf8\x11\x5d\x3d\xfb\xcd\xae\xb7\x5f\x78\xfc\x48\x52\x3e\x78\xfc\x20\xf1\x23\xc6\x7a\x30\xf8\xc1\xe0\x47\x8c\xf5\x37\xf1\x5e\x8c\xf5\x88\xb1\x1e\x6c\x7e\x50\xf9\x41\xe5\x07\x95\x1f\x54\x7e\xf0\xf8\xc1\xe0\x07\x83\x9f\xfd\x26\x55\xf2\x5d\x3a\x4c\x1d\x24\x7e\xf6\x9b\x95\x1d\x7e\xee\x4e\xa2\xef\x83\xbe\x8f\xe2\xe9\x83\xc1\x0f\x06\x3f\xe8\xfb\xe8\x30\x75\xc4\x5e\x0f\xfa\x3e\xb8\xfb\xe0\xee\x83\xb8\x0f\xe2\x3e\x58\xfb\x28\x89\x3e\xfb\x4d\x23\x74\x0f\xa5\x30\x9f\x37\x89\x48\x7f\xe4\x83\xbe\x0f\xee\x3e\x62\xac\x67\xbf\x7b\xe8\xcc\x63\xed\x83\xb5\x8f\xe8\xea\x11\x57\x3d\x58\xfb\x48\x64\x3e\x88\xfb\x88\xae\x1e\x71\xd5\x23\xae\x7a\x30\xf8\x91\xc2\x7c\x14\x43\x1f\x24\x7e\x44\x57\x8f\xe4\xe5\xa3\x9b\xd5\x41\xe2\x47\x8c\xf5\xe8\x8f\x7c\xd0\xf7\x11\x5d\x3d\xa2\xab\x47\x1f\xe4\x83\xb8\x0f\xd6\x3e\x58\xfb\x48\x4f\x3e\x88\xfb\x20\xee\x83\xb8\x8f\x5e\x57\x07\x77\x1f\xdc\xfd\xa6\x23\x1e\x94\x7d\x44\x57\x0f\xd6\x3e\x52\x95\x8f\x18\xeb\xc1\xdd\x47\xc2\xf2\x41\xdf\x07\x7d\x1f\xf4\x7d\xf4\xbd\x3a\x6f\xa6\x0a\xd6\x3e\xf8\xfa\x20\xeb\x83\xac\x0f\xa6\x3e\x98\xfa\x60\xea\x23\xf6\x7a\xc4\x5e\x8f\xd8\xeb\x41\xd9\x47\x7a\xf2\x41\xd9\x07\x53\x1f\x4c\x7d\x30\xf5\x51\x8e\x7c\x74\xbc\x3a\xf8\xfa\xe0\xeb\x23\x85\xf9\x88\xcf\x1e\x94\x7d\x90\xf5\x41\xd6\x47\x4c\xf6\x88\xc9\x1e\x31\x59\x93\x5e\xe6\xc1\xd1\x47\xda\xf2\x11\x7b\x3d\x62\xaf\x07\x41\x1f\x04\x7d\x10\xf4\x41\xd0\x47\xd4\xf5\x20\xe8\x83\xa0\x0f\x82\x3e\x92\x97\x0f\x82\x3e\x08\xfa\x48\x5e\x3e\x38\xfa\x88\xc0\x1e\x34\x7d\x70\xf4\x11\x81\x3d\x52\x98\x8f\x38\xec\x11\x87\x3d\xe2\xb0\x07\x65\xbf\x49\xb3\xe7\xbc\x69\xae\xce\xed\xf9\x4d\xd4\xf4\x5b\x77\x18\x29\x1f\x5c\x7c\x10\xf1\x51\x10\x7c\xb0\xf0\xc1\xbf\x07\xff\x1e\xfc\x7b\xf2\x4d\x73\x72\x27\xf1\xef\xc1\xbf\xe7\xcd\xc8\xc5\xbf\x07\xff\x1e\x69\xc8\x47\xa4\xf5\x28\xe1\x3d\x08\xf7\x28\xe1\x3d\x38\xf7\xe0\xdc\x83\x73\x0f\xce\x3d\x08\xf7\xa0\xda\x23\xf6\x7a\xc4\x5e\x0f\xc2\x3d\x08\xf7\x48\x4f\x3e\xa2\xb1\x07\xed\x1e\xb4\x7b\xd0\xee\xc1\xb9\x07\xe1\x1e\x84\x7b\x10\xee\x41\xb8\x07\xe1\x1e\x29\xc9\x07\xe7\x1e\x9c\x7b\x10\xee\x11\x99\x3d\x38\xf7\x88\xc9\x1e\xc9\xc8\x66\xe3\xdf\xd5\x95\xee\x27\xe6\x3d\x98\xf7\x60\xde\x23\x4a\x7b\x90\xef\x9b\x76\x75\x44\x69\x0f\x0a\x3e\x28\xf8\x88\xd2\x1e\x2c\x7c\xf0\xef\x91\x9e\x7c\x50\xf0\x41\xc1\x07\x05\x1f\xe4\x7b\x90\xef\xc1\xbc\x47\x1a\xf2\x41\xbe\x47\x1a\xf2\xc1\xbf\x47\xdc\xf6\xa0\xe0\x83\x82\x0f\x0a\x3e\x28\xf8\xe8\xf0\x7b\xb0\xf0\x41\xc1\x07\x05\x1f\x14\x7c\x14\xf5\x1e\x2c\x7c\xb0\xf0\x91\x92\x7c\x44\x78\x8f\xd8\xee\xc1\xc2\x07\x0b\x1f\x2c\x7c\x50\xf0\x41\xc1\x07\xff\x1e\xfc\x7b\x90\xef\xc1\xbc\x07\xf3\x1e\xcc\x7b\x30\xef\xc1\xbc\x07\xed\x1e\xb4\x7b\x70\xee\xc1\xb9\x07\xe7\x1e\x9c\x7b\x44\x7b\x0f\xda\x3d\x68\xf7\xa0\xdd\x83\x76\x0f\xda\x3d\x38\xf7\x20\xdc\x83\x70\x0f\xc2\x3d\xd8\xf6\x60\x5b\x13\x26\xa7\x39\xea\x77\x75\x4d\xbe\x6b\x7c\x9a\x5d\xc3\xb3\x07\xcf\x1e\x3c\x7b\x90\xec\x41\xb2\x07\xc9\x1e\x24\x7b\x90\xec\xc1\xb0\x07\xbd\x1e\xdc\x7a\xc4\x73\x0f\x6e\x3d\xb8\xf5\x88\xe7\x1e\xf1\xdc\x83\x61\x0f\x86\x3d\x18\xf6\x60\xd8\xf3\xa6\xc6\x89\xf0\x1e\x69\xc8\xc7\xa4\xa9\x83\x6a\xcf\x9b\xd6\x8e\x6a\x8f\x08\xef\x11\xe1\x3d\x08\xf7\x20\xdc\x83\x70\x0f\xc2\x35\x25\xfb\xae\x3e\x9f\xa7\x12\xdb\x3d\x38\xf7\xe0\xdc\x83\x73\x0f\xce\x3d\x6f\xa2\x26\xda\x3d\x68\xf7\xa0\xdd\x83\x76\x8f\xd8\xae\x89\xd9\xd3\x0c\xba\xbb\xfa\x4c\xdf\x3e\xe9\xc6\x47\x6c\xf7\xe0\xdf\x83\x7f\x0f\xfe\x3d\x22\xbc\x47\x84\xf7\x60\xe1\x83\x85\x8f\x08\xef\x41\xc4\x07\x11\x1f\x44\x7c\x10\xb1\x79\xe3\x77\x65\x65\x4f\x45\x75\x0f\x2e\x3e\xb8\xf8\x88\xea\x1e\xf1\xdc\x83\x88\x0f\x22\x3e\x58\xf8\x60\xe1\x83\x82\x0f\x0a\x3e\x28\xf8\xa0\xe0\x83\x7f\xcf\x9b\x47\x27\x7a\x7b\xf0\xaf\x99\xc3\x77\x75\xa5\x6f\x1f\x0a\x3e\x28\x38\xf1\x6f\x8a\xdb\x26\xfe\xcd\x37\xdb\x5f\xdc\x36\x45\x6c\x53\xac\x36\x51\x70\x22\xdf\x44\xbe\x29\x26\x9b\xf8\x37\xc5\x64\x13\x05\xa7\x98\xac\xa9\xa7\x77\xf5\x39\xcb\x95\xcb\xe7\x98\xee\x85\x88\x13\x05\x27\x0a\x4e\x14\x9c\x28\x38\x35\x18\x4b\x2c\x9c\x58\x38\xe5\x09\xff\xa6\x0e\xe2\xe2\x14\x93\x4d\x44\x9c\xa2\xb1\x29\x0e\x9b\xe8\x38\xd1\x71\xe2\xe2\x14\x81\x4d\x74\x9c\xca\x91\x13\x23\x27\x46\x4e\xb1\xd7\xc4\xc8\x89\x91\x53\xd4\x35\x45\x5d\x13\x2f\x27\x52\x4e\xa4\x9c\x48\x39\x91\x72\x22\xe5\x44\xca\xf9\xbd\xb9\x88\xc5\xaa\xfc\xcd\xe5\xfa\x72\xa5\x49\xe3\xd8\x39\xb1\x73\x8a\xae\xa6\xdc\xe3\x14\x63\x4d\xb9\xc7\xf9\x66\xb0\x23\xeb\xc4\xd4\x39\xde\xc4\x51\x3b\x85\xa9\x53\xd6\x71\x22\xeb\x44\xd6\x89\xac\x13\x59\x27\xb2\x4e\x19\xc8\x89\xaf\x53\x1e\x72\xca\x43\x4e\xac\x9d\x62\xb5\x89\xb5\x13\x6b\x27\xd6\x4e\xac\x9d\x0a\x94\x13\x71\xa7\x18\x6e\x8a\xe1\x26\xfa\x4e\xf4\x9d\xe8\x3b\x45\x72\x53\xb1\x72\x22\xf1\xc4\xe0\x29\x92\x9b\x48\x3c\x91\x78\x22\x71\xd3\xaa\xef\xea\x7a\x3b\x2b\xb6\x9b\xd8\x3c\x51\x79\xa2\xf2\x54\xac\x9c\xd8\x3c\xe5\x2a\xa7\x5c\xe5\xc4\xe9\x89\xd3\x13\xa7\x27\x4e\x4f\x91\xdf\x44\xeb\xa9\x70\x39\xd1\x7a\xa2\xf5\x94\xb7\x9c\xf2\x96\x53\xde\x72\x22\xf7\xc4\xec\x89\xd9\x53\xae\x72\x22\xf7\x14\x23\x4e\xfc\x9e\x62\xc4\xa9\x58\x39\xdf\xf4\x4b\xfc\x9e\xf8\x3d\x91\x7b\x62\xf6\x54\xa6\x9c\xa2\xc3\x89\xdc\x53\x81\x72\xe2\xf7\xc4\xef\x6f\x72\x6c\xca\x67\x4e\xc5\xca\xa9\x40\x39\x71\x7d\xe2\xfa\x14\x47\xce\x37\x49\x1b\xd7\x27\xae\x4f\x5c\x9f\x8a\x92\x13\xdd\x27\xba\x4f\xa5\xc9\x89\xf1\x53\x69\x72\xbe\x49\xbf\x48\x3f\x91\x7e\x22\xfd\x44\xfa\x89\xf4\x53\x94\x39\x45\x99\x13\xef\xa7\xf8\x72\xe2\xfd\x14\x5f\x4e\xf1\xe5\xc4\xfe\x29\x3b\x3a\xb1\x7f\x62\xff\x94\x1d\xfd\xa6\xf2\x26\xf6\x4f\xec\x9f\xb2\xa3\xcd\xcf\xbc\x2b\x2b\xfb\x3b\x7f\x73\x35\xfd\x55\x76\x99\x0e\x90\x74\x80\x94\x3b\x9d\xd4\x80\xa4\x06\x24\x35\x20\xdf\x9c\x40\x6a\x40\x52\x03\x92\x0e\x90\xa2\xd5\x29\x5a\x9d\xd4\x80\xa4\x06\x24\x35\x20\x65\x4d\x27\x35\x20\xe7\x9b\x11\x6a\x7f\xa9\x01\x49\x0d\x48\x6a\x40\x52\x03\x92\x1a\x90\xf2\xa8\x93\x0e\x90\x74\x80\xa4\x03\x24\x1d\x20\x65\x50\x27\x1d\x20\xe9\x00\x49\x07\x48\x3a\xc0\x9b\x41\x9a\xd4\x80\xa4\x06\x98\xde\x7c\x57\x9f\xec\x1b\x4d\x0d\x48\x6a\x40\xbe\x49\xc2\x32\xa8\x93\x26\x90\x34\x81\xa4\x06\x24\x05\x20\xd7\x9b\xd3\x6e\x97\x29\x00\x49\x01\x48\x0a\x40\x52\x00\x92\x02\x90\x14\x80\xa4\x00\x24\x05\x20\x29\x00\x49\x01\x48\x0a\x40\x52\x00\x92\x02\x90\x14\x80\xa4\x00\x24\x05\x20\x29\x00\x29\xef\x3a\xe9\x00\xa9\x70\x39\xe5\x60\xa7\xc8\x7b\x52\x06\x92\x32\x90\x94\x81\xa4\x0c\x24\x65\x20\x29\x03\x49\x19\x48\xca\x40\xca\xcd\x4e\xfa\x40\xbe\xd9\xcb\xf2\xb4\x93\x4a\x90\x54\x82\xa4\x12\x24\x95\x20\xdf\x44\x47\x2a\x41\x2a\x65\x4e\x5a\x41\x8a\xdd\xa7\xd8\x7d\x8a\xdd\x27\xf5\x20\xa9\x07\x29\x82\x9f\x34\x84\x54\xd0\x9c\x94\x84\xa4\x24\xa4\x38\x7e\xd2\x13\x52\x76\x77\x8a\xe6\xa7\x68\x7e\x52\x18\x92\xc2\x90\x6f\x96\x2c\x85\x21\x29\x0c\x49\x61\x48\x0a\x43\xca\xf4\x4e\x1d\xae\x53\x71\x73\xca\xfa\x4e\xca\x43\xca\xfd\x7e\x13\xf5\x93\xfe\x90\xda\xb9\x25\x15\x22\xa9\x10\x49\x85\x48\x19\x02\x29\x43\x20\x29\x12\x29\x03\x3c\xe9\x12\x49\x97\x48\xba\x44\xca\x16\x48\xea\x44\xca\x16\x48\x1a\x45\xca\x16\x48\x4a\x45\x52\x2a\x92\x52\x91\x94\x8a\xa4\x54\x24\xa5\x22\xe5\x0f\x24\xbd\x22\xe5\x0f\x24\xd5\x22\xe5\x8a\xa7\x5c\xf1\x94\x4b\x90\xda\xc2\x25\x35\x23\xe5\x15\x24\x4d\x23\x95\x59\xe7\x9b\x88\x4e\xd9\x48\xc5\xd6\x29\x87\x3c\xa9\x1c\x49\xe5\x48\xad\xe0\x92\xa6\x91\x72\x0c\x72\xbf\x49\x9e\xce\x8c\x1c\x83\xa4\x6f\x24\x7d\x23\xe5\x93\x27\x95\x23\xe5\x1b\xa4\x82\xec\xa4\x75\xa4\xdc\x83\xa4\x78\xe4\x9b\xc7\x2b\xf7\x20\x65\x1d\x24\xf5\xe3\xdf\xcc\x4f\xa7\x82\xfa\x91\xd4\x8f\xa4\x7e\xa4\xdc\x83\xa4\x7e\xa4\xdc\x83\xa4\x81\x24\x0d\x24\xe5\x1e\x24\x0d\x24\x69\x20\xa9\x51\x5c\xca\x40\x48\x19\xe9\x49\x15\x49\xaa\x48\xca\x43\x48\xda\x48\xca\x4b\x4f\x79\xe9\x29\x2f\x3d\x65\x26\x24\xb5\x24\xe5\x27\x24\xcd\x24\xe5\xa5\x27\xe5\xe4\xcd\x70\x4e\x3a\x49\xca\x4f\x48\x3a\x49\xca\x4c\x48\x6a\x49\x52\x4b\x52\x66\x42\xd2\x4c\x52\x7e\x42\x52\x4e\x52\x46\x7a\xd2\x4f\x92\x7e\x92\xf4\x93\xa4\x9f\xa4\xec\xf4\xa4\x9f\xa4\x36\x72\x49\x39\x49\x99\x0c\x29\x47\x3d\xe5\x30\x24\xe5\x24\x69\x26\x49\x33\x49\xd9\x0b\x29\x7b\x21\xe9\x27\x49\x3f\x49\x79\x0b\x29\x6f\x21\xe5\x2d\x24\x2d\x25\xa9\x28\x29\x47\x3d\xe5\xa8\xa7\xa6\x71\x29\x53\x3d\xe9\x2a\x49\x57\x49\xba\x4a\xd2\x55\x92\xae\x92\x74\x95\xa4\xab\xa4\x7c\x86\x7c\x33\xae\x65\x32\x24\x8d\x25\x69\x2c\x49\x63\x49\x1a\x4b\xd2\x58\x92\xc6\x92\x14\x95\x94\xc9\x90\x8a\xc2\x53\xeb\xb8\x94\xd5\x90\xb2\x1a\x92\xde\x92\xf4\x96\x94\xd5\x90\xf4\x96\x94\xe5\x9e\x0a\xc4\x93\xf6\x92\x32\xde\x93\x02\x93\x72\x1b\x92\x02\x93\x14\x98\xa4\xbd\xa4\xe6\x70\x29\x93\x21\xe9\x2d\x29\xd7\x3d\xa9\x2e\x49\x75\xc9\xf3\xa6\xeb\xfb\xd6\xd0\x5b\x92\xde\x92\xf4\x96\x94\xdb\x90\x54\x97\x94\xdb\x90\x72\x1b\x92\x02\x93\x54\x97\x94\xdb\x90\xb4\x97\x94\x09\x9f\x32\xe1\x53\x9e\x43\xca\x70\x48\x99\xf0\x29\xc3\x21\x29\x33\x49\x99\x49\x19\x0e\x49\x9f\x49\x79\x0e\x29\xcf\x21\xa9\x34\x49\xa5\x49\x2a\x4d\x52\x69\x92\x4a\x93\x94\x99\x94\xdb\x90\xf4\x99\xa4\xcf\x24\x7d\x26\x29\x33\x29\xb7\x21\x69\x2f\x49\x6f\x49\x7a\x4b\xd2\x5b\x52\x26\x43\xd2\x5b\x52\x0e\x43\xca\x55\x48\xb9\x0a\x29\x57\x21\xe5\x27\x24\x05\x26\x65\x23\x24\x05\x26\x65\xc2\x27\x1d\x26\xe5\x24\xa4\x9c\x84\xa4\xc9\x24\x4d\x26\x29\x30\x49\x81\x49\x0a\x4c\xca\x81\x4f\xb9\x07\x29\xf7\x20\xe5\x1e\xa4\xdc\x83\x94\x7b\x90\xb2\x0e\x92\x3e\x93\x72\x0f\x92\x32\x93\x34\x99\xa4\xc9\x24\x4d\x26\x69\x2f\x49\x7b\x49\xaa\x4b\x52\x5d\x92\xea\x92\xf2\x0a\x92\xde\x92\xf2\x0a\x52\x26\x7c\xd2\x5e\x92\xea\x92\xf4\x96\xa4\xb4\xa4\x5c\x82\xa4\xb4\x24\x8d\x25\xe5\x12\x24\xa5\x25\x65\x14\x24\x8d\x25\x29\x2a\x49\x45\x49\x59\xee\x49\x3f\x49\xca\x49\xca\x22\x48\xfa\x49\xd2\x4f\x52\x49\x77\x52\x4e\x52\xfe\x40\xca\x1f\x48\xfa\x49\xd2\x4f\x52\x96\x7b\x52\x51\x92\x7e\x92\x94\x93\x54\xba\x9d\x54\x91\xa4\x84\x24\x25\x24\x69\x20\x29\x1f\x20\x29\x21\x49\x09\x49\x99\x00\x29\xd6\xff\x66\xbc\xa7\x58\x7f\xd2\x3d\x92\xd6\x91\xb4\x8e\x14\xdf\x4f\x31\xfd\xa4\x72\x24\x95\x23\xa9\x1c\x49\xdf\x48\xfa\x46\x8a\xd7\xa7\x0c\xf6\xa4\x69\x24\x35\x23\xc5\xeb\x93\x9a\x91\xe2\xf2\x49\xc1\x48\x0a\x46\x8a\xc8\x27\xd5\x22\x45\xe1\x93\x46\xf1\xa6\xb2\x27\x75\x22\xa9\x10\x49\x85\x48\xfa\x43\xd2\x1f\x92\xf2\x90\x94\x87\x94\x5b\x9e\x6f\xd2\x35\xfd\x21\x29\x0f\x49\x73\x48\x9a\x43\xd2\x1c\x92\xda\x90\xd4\x86\x54\x00\x9d\x34\x87\x94\x4f\x9e\x72\xc8\x93\xce\x90\x14\x86\xa4\x30\xa4\x4c\xf2\xa4\x33\x24\x9d\x21\xe9\x0c\x49\x67\x48\x3a\x43\xd2\x19\x92\xc2\x90\x14\x86\xa4\x2d\x24\x6d\x21\xfb\x3f\xd3\xb0\xef\xea\xb7\xbe\x83\xd4\x83\x14\x43\x4f\x8a\x41\xca\x00\x4f\x5a\x41\x52\x09\x92\x3e\x90\x34\x81\xa4\x00\xa4\x08\x78\xd2\x01\x92\x0e\x90\x14\x80\xec\x77\xc7\xee\xf9\x29\xf5\xc2\x45\x01\x28\x11\xf0\xa2\x00\x14\xf6\x2f\x11\xf0\xc2\xfe\x25\x4f\xbb\x28\x00\x25\x02\x5e\x32\xb4\x8b\x1a\x50\xd4\x80\x92\x9b\x5d\xd4\x80\xa2\x00\x14\x05\xa0\x28\x00\x25\x2b\xbb\xe8\x00\x45\x07\x28\x15\xc1\x45\x0d\x28\x91\xf1\x12\x19\x2f\x6a\x40\x51\x03\x8a\x02\x50\x14\x80\xdf\x5c\x7d\xd1\xf0\x12\x0d\x2f\xec\x5f\xa8\xbf\x50\x7f\xa1\xfe\x12\x13\x2f\xec\x5f\xf2\xae\x0b\xe3\x17\xba\x2f\xfc\x5e\xf8\xbd\x30\x7b\x61\xf6\xfa\xde\xf4\xfe\xf2\x69\xe5\x9a\x7a\xd7\xb0\x6a\x57\xb6\x2b\xdb\x5f\xd5\xae\x6f\xd7\xb7\x2b\xdb\xbf\xe8\xde\x8a\x80\x17\x5a\x2f\xb4\x5e\x08\xbd\x10\x7a\x21\xf4\x42\xe8\x85\xcd\x0b\x9b\x17\x36\x2f\x71\xf0\xc2\xe6\xa5\x3a\xb8\x50\x79\xa1\xf2\x42\xe2\x85\xbe\x0b\x7d\x97\x3c\xea\x12\x01\x2f\xf4\x5d\xe8\xbb\xd0\x77\x21\xee\xc2\xda\x85\xb5\x4b\x04\xbc\x50\x76\xa1\xec\x42\xd9\x85\xaf\x0b\x59\x17\x9a\x2e\x34\x5d\xaa\x80\x4b\x04\xbc\x90\x75\x21\xeb\x42\xd6\x85\xac\x0b\x53\x97\x98\x78\x21\xeb\x12\x13\x2f\x64\x5d\x38\xba\x44\xc0\x0b\x47\x17\x82\x2e\xec\x5c\xa2\xde\x85\x9d\x0b\x3b\x17\x76\x2e\xec\x5c\x78\xb9\xb4\xf2\x2a\xa4\x5c\x48\xb9\x30\x72\x89\x7d\x17\x3a\x2e\x74\x5c\xe8\xb8\x70\x71\x21\xe2\x42\xc4\x85\x88\x0b\x11\x17\x16\x2e\x2c\x5c\x58\xb8\xb0\x70\x61\xe1\x92\x71\x5d\xe2\xe0\x85\x8b\x0b\x11\x17\x22\x2e\x44\x5c\x88\xb8\x44\xc3\x0b\x17\x17\x2e\x2e\x5c\x5c\x88\xb8\x10\x71\x21\xe2\x42\xc4\x85\x82\x0b\xff\xd6\x9b\xab\x8f\x7f\x0b\xf9\x16\xf2\x2d\xe4\x5b\x98\xb7\x64\x68\x17\xf2\x2d\xe4\x5b\xe2\xe0\x85\x7f\x0b\xff\x16\xfe\x2d\x31\xf1\x42\xc1\x85\x82\x4b\x34\xbc\x50\x70\xe1\xdf\xc2\xbf\x85\x7f\x0b\xff\x16\xfe\x2d\xfc\x5b\xf8\xb7\x44\xc3\x0b\x05\x97\x5c\xee\x12\x19\x2f\x44\x5c\x88\xb8\x10\x71\x21\xe2\xc2\xc2\x85\x85\x0b\x0b\x17\x0a\x2e\xe4\x5b\xe2\xe0\x85\x7c\x0b\xf9\x16\xf2\x2d\xe4\x5b\xc8\xb7\x44\xc0\x0b\xf3\x96\x08\x78\x89\x80\x17\xfe\x2d\xfc\x5b\xf8\xb7\x90\x6f\x21\xdf\x42\xbe\x85\x79\x0b\xf3\x16\xda\x2d\xb4\x5b\x38\xb7\x70\x6e\x21\xdc\xc2\xb6\x85\x6d\x0b\xd5\x16\xaa\x2d\x54\x5b\xa8\xb6\xf0\x6c\x61\xd8\x42\xaf\x85\x58\x0b\xb1\x16\x4a\x2d\x7c\x5a\xf8\xb4\xf0\x69\x61\xd2\xc2\xa4\x85\x49\x0b\x93\x16\x1a\x2d\x34\x5a\x68\xb4\x70\x68\xe1\xd0\xc2\xa1\x85\x40\x0b\x7b\x16\xd2\x2c\x8c\x59\x18\xb3\xd0\x65\xa1\xcb\x42\x97\x85\x1f\x0b\x2d\x16\x42\x2c\x84\x58\x08\xb1\x10\x62\x21\xc4\x42\x88\x85\x10\x0b\x21\x16\x42\x2c\x84\x58\xd8\xb0\xb0\x61\x61\xc3\xc2\x86\x85\x0a\x0b\x15\x16\x2a\x2c\x54\x58\xa8\xb0\x50\x61\xa1\xc2\x42\x85\x85\x07\x0b\x0f\x16\x1e\x2c\x24\x58\xe2\xdd\x25\x0b\xbd\xc4\xbb\x4b\xbc\xbb\x10\x62\x21\xc4\x42\x88\x85\x10\x0b\x21\x16\x1e\x2c\x3c\x58\x78\xb0\xf0\x60\x89\x80\x17\x2a\x2c\x54\x58\xa8\xb0\x50\x61\xa9\x3b\x2e\x0d\xc5\x4b\x64\xbc\x10\x62\x61\xc3\x52\x89\x5c\x08\xb1\x10\x62\xa1\xc2\x52\x95\x5c\xa8\xb0\x50\x61\x89\x89\x17\x2a\x2c\x3c\x58\x78\xb0\xf0\x60\xe1\xc1\xc2\x83\x85\x07\x0b\x0f\x16\x12\x2c\x24\x58\x22\xe6\x85\x07\x0b\x0f\x16\x1e\x2c\x3c\x58\x18\xb0\x30\x60\x89\x9e\x97\xac\xf5\xd2\x56\xbc\x64\xad\x17\x36\x2c\x6c\x58\x22\xe9\x85\x10\x0b\x21\x16\x42\x2c\x84\x58\x08\xb1\xb0\x61\x61\xc3\xc2\x86\x85\x0a\x0b\x0f\x16\x1e\x2c\x51\xf5\x12\x4f\x2f\xf1\xf4\xc2\x86\x85\x0a\x0b\x15\x96\xd8\x7a\xc9\x72\x2f\x11\xf6\xd2\x6e\xbc\xc4\xd9\x0b\x2d\x96\x38\x7b\xc9\x78\x2f\x19\xef\x85\x1c\x0b\x39\x16\x66\x2c\xb9\xee\x85\x19\x4b\xe4\xbd\x90\x63\x21\xc7\x42\x8e\x25\x0a\x5f\xf2\xde\x0b\x3f\x16\x7e\x2c\xfc\x58\xc8\xb1\x90\x63\xe1\xc4\xc2\x89\x85\x13\x4b\x14\xbe\xd0\x62\xa1\xc5\x42\x8b\x85\x16\x0b\x2d\x16\x5a\x2c\xb4\x58\x68\xb1\x44\xe4\x4b\x2c\xbe\x90\x63\xc9\x84\x2f\xfc\x58\xc8\xb1\x90\x63\x21\xc7\x42\x8e\x85\x1c\x0b\x39\x96\x7c\xf8\xd2\x74\xbc\x50\x64\xa1\xc8\x92\x1b\x5f\x58\xb2\xb0\x64\x61\xc9\xc2\x92\x85\x25\x0b\x4b\x96\x96\x63\x25\x9a\x5f\x88\xb2\x44\xf3\x4b\x34\xbf\xe4\xcc\x97\x98\x7e\x89\xe9\x97\xcc\xf9\x92\x33\x5f\x6a\xab\x0b\x6f\x16\xde\x2c\xbc\x59\x78\xb3\xf0\x66\xe1\xcd\xc2\x9b\x85\x37\x0b\x6f\x16\xde\x2c\xbc\x59\x78\xb3\x44\xf9\x0b\x6f\x16\xde\x2c\xbc\x59\x32\xea\x0b\x75\x16\xea\x2c\xd4\x59\xb2\xeb\x0b\x7b\x96\x7c\x80\xc2\x9e\x85\x3a\x0b\x75\x16\xea\x2c\x59\x01\x85\x3d\x0b\x7b\x16\xf6\x2c\xec\x59\xd8\xb3\xb0\x67\x61\xcf\x92\x69\x5f\x08\xb4\x10\x68\x21\xd0\x42\xa0\x85\x40\x4b\x86\x40\xe1\xd0\x92\x21\x50\x32\x04\xca\x24\xad\x42\xa6\x25\x5b\xa0\x64\x0b\x94\x6c\x81\x92\x2d\x50\x88\xb5\x64\x0b\x94\x6c\x81\x32\xb7\xb8\x64\xe6\x17\x92\x2d\x24\x5b\x48\xb6\x64\xe6\x17\x9e\x2d\x99\xf9\x25\x97\xa0\xb0\x6d\x69\x87\x56\x08\xb7\x64\xe9\x97\xec\x82\xd2\xaa\xbc\x64\xe9\x17\xf2\x2d\xe4\x5b\xc8\xb7\xb4\x46\x2b\x19\x08\x25\x57\xbf\xb0\x70\xc9\xcf\x2f\xd9\x08\x85\x88\x0b\x11\x97\x2c\xfd\xc2\xc5\x85\x8b\x0b\x11\x97\x3a\xf1\xc2\xc5\x85\x8b\x4b\xae\x42\xc9\x55\x28\xb9\x0a\x85\x94\x0b\x29\x17\x52\x2e\xb9\x0a\x25\x57\xa1\x50\x73\xa9\x1c\x2f\x6d\xd5\x0a\x41\x17\x82\x2e\xec\x5c\xd8\xb9\xe4\xed\x17\x76\x2e\xec\x5c\x32\x1c\x4a\x86\x43\xe1\xe8\x92\xe1\x50\x68\xba\xd0\x74\xa1\xe9\x92\xe1\x50\x32\xf9\x4b\x9e\x43\xc9\xe4\x2f\x99\xfc\x25\xe7\xa1\xe4\x3c\x14\xee\x2e\xdc\x5d\xb8\xbb\x70\x77\xc9\x73\x28\x6d\xd8\x4a\xb6\x43\x61\xf0\xc2\xe0\x85\xc1\x0b\x83\x17\x06\x2f\xf9\x0f\x85\xc4\x4b\xfe\x43\xe1\xf1\x92\xff\x50\xa8\xbc\x50\x79\xa1\xf2\x92\xff\x50\xd8\xbc\xb0\x79\x61\xf3\x92\x05\x51\xb2\x20\x0a\xa7\x17\x4e\x2f\xb9\x10\x25\x17\xa2\x64\x3e\x94\x6c\x87\xc2\xec\x85\xd9\x4b\xce\x43\xc9\xf9\x2f\xcc\x5e\x98\xbd\xe4\x3c\x14\x72\x2f\xd9\x0e\x85\xd6\x4b\x9e\x7f\x61\xf6\x42\xeb\x25\xe7\xa1\x30\x7b\xc9\x73\x28\x79\x0e\x25\xcf\xa1\x64\x38\x14\x8a\x2f\x79\x0e\x25\xcf\xa1\xb0\x7c\x61\xf9\x92\xd5\x50\x32\xfc\x0b\xcb\x17\x96\x2f\x59\x0d\x25\xab\xa1\x70\x7d\xc9\x6d\x28\xb9\x0d\x25\xc3\xbf\x64\x38\x94\x0c\x87\x42\xfd\x85\xfa\x0b\xf5\x17\xc6\x2f\xf9\x0c\x25\x9f\xa1\x90\x7e\x21\xfd\x42\xf7\x25\x33\xbf\x64\x2c\x14\xae\x2f\x5c\x5f\x72\x15\x0a\xdd\x97\x0c\xfc\x92\xab\x50\x48\xbf\x64\x2c\x14\xde\x2f\xbc\x5f\x32\x16\x0a\xf5\x97\xbc\x85\x92\xb7\x50\x14\x80\xa2\x00\x94\xec\x85\x92\xbd\x50\xd4\x80\xa2\x06\x94\x9a\xf4\x92\x7b\x5f\xb2\xee\xab\xde\x9d\xf7\x24\x95\xc3\x50\xb2\x17\x8a\x4a\x50\x94\x81\xa2\x0c\x14\x65\xa0\x28\x03\x25\x33\xa1\x64\xdd\x17\x95\xa0\xe4\x27\x14\x95\xa0\xe4\x24\x14\x95\xa0\xa8\x04\x45\x1f\x28\x39\x09\x45\x25\x28\x99\x09\x25\x33\xa1\x64\x26\x14\xdd\xa0\xe8\x06\x25\x3f\xa1\xa8\x07\x45\x3d\x28\x8a\x41\x51\x0c\x4a\xed\x79\xd1\x0d\x4a\x4e\x7e\xd1\x0d\x4a\x4e\x7e\x51\x0f\x8a\x6e\x50\x32\x10\x8a\x6e\x50\x32\x10\x8a\x7a\x50\xd4\x83\xa2\x1e\x94\x0c\x84\xa2\x21\x94\x0c\x84\x52\x63\x5e\xf2\x10\x8a\xaa\x50\x54\x85\x92\x87\x50\xb4\x85\x92\x8d\x50\x14\x86\x92\xab\x5f\x72\xf5\x4b\x36\x42\xc9\xcf\x2f\x9a\x43\xc9\x49\x28\x39\x09\x45\x7f\x28\x39\x09\x25\x27\xa1\x64\xe6\x97\xcc\x84\xa2\x4b\x14\x5d\xa2\xe8\x12\x45\x97\x28\xf9\xf9\x25\x4b\xa1\x68\x14\x25\x4b\xa1\xe4\x27\x14\xa5\xa2\xff\x67\xfd\xcd\x26\x57\xb4\x54\x85\x26\x54\x34\xa1\xa2\x09\x15\x2d\x55\xa1\x25\xec\x37\xd1\xa2\x89\x16\x4d\xb4\x68\xc9\xfb\xad\xb1\x59\x13\x30\x9a\x80\xd1\x04\x8c\x26\x60\x34\x01\xa3\x25\x32\xb4\x44\x86\x26\x63\x34\x19\xa3\xc9\x18\x4d\xc6\x68\xa2\x45\x4b\x61\x68\xd2\x45\x93\x2e\x5a\x3a\x43\x93\x2e\x5a\x22\x43\x4b\x64\x68\xc9\x0b\x4d\xc0\x68\xc9\x0b\x4d\xc6\x68\x29\x0c\xad\xa0\xbc\xa5\x30\x34\x31\xa3\x89\x19\x4d\xcc\x68\x62\x46\x13\x33\x5a\x22\x43\x4b\x64\x68\x89\x0c\xad\x94\xbc\xa5\x33\xb4\x74\x86\x96\xf2\xdf\xd2\x19\x9a\xe0\xd1\xd2\x19\x5a\x22\x43\x4b\xfc\x6f\xe9\x0c\x2d\x9d\xa1\x09\x21\x2d\x91\xa1\x25\x32\xb4\x92\xf1\x26\x87\x34\x39\xa4\x25\x32\x34\x51\xa4\xc9\x21\x4d\x0e\x69\x72\x48\x93\x43\x9a\x1c\xd2\xe4\x90\x96\xce\xd0\x44\x91\x26\x8a\x34\x51\xa4\x25\x32\xb4\x44\x86\xd6\x69\xbd\xc9\x24\x4d\x26\x69\x32\x49\x4b\x67\x68\x32\x49\x93\x49\x9a\x4c\xd2\x64\x92\x26\x93\x34\x99\xa4\xc9\x24\x2d\x91\xa1\x89\x25\x2d\x91\xa1\x25\x32\x34\xe1\xa4\x49\x26\x2d\x91\xa1\x25\x32\x34\xf9\xa4\x25\x32\xb4\x44\x86\x26\xa5\x34\x29\xa5\x25\x32\x34\x41\xa5\x09\x2a\x4d\x50\x69\x82\x4a\x13\x54\x5a\x3a\x43\x4b\x61\x68\xb2\x4a\x93\x55\x5a\x0a\x43\x13\x57\x5a\x22\x43\x93\x58\x9a\xc4\xd2\x24\x96\x96\xc8\xd0\x52\x18\x9a\xd0\xd2\x52\x18\x5a\x0a\x43\x93\x5b\x9a\xd0\xd2\x84\x96\x26\xb4\x34\xa1\xa5\x09\x2d\x2d\x85\xa1\x09\x2d\x4d\x68\x69\x42\x4b\x4b\x64\x68\x72\x4b\x4b\x64\x68\x89\x0c\x2d\x91\xa1\x09\x30\xad\x10\xa1\xc9\x30\x4d\x86\x69\xe9\x0c\x4d\x8c\x69\xe9\x0c\xad\x1c\xa1\x09\x33\x4d\x98\x69\xa9\x0d\x4d\x9e\x69\xf2\x4c\x2b\x4d\x68\xf2\x4c\x4b\x6d\x68\xa9\x0d\x4d\xaa\x69\xa9\x0d\x2d\xb5\xa1\x35\x6c\x6b\xe2\x4d\x13\x6f\x9a\x78\xd3\xd2\x1c\x9a\x84\xd3\xd2\x1c\x9a\x90\xd3\x92\x1d\x9a\x9c\xd3\x4a\xe7\x9b\xa8\xd3\x44\x9d\x96\xf2\xd0\xa4\x9d\x96\xf2\xd0\xa4\x9d\x26\xed\xb4\x96\x6f\x4d\xe0\x69\x29\x0f\x4d\xe6\x69\x32\x4f\x93\x79\x9a\xcc\xd3\x64\x9e\x26\xf0\xb4\x12\x87\x26\xf0\x34\x81\xa7\x09\x3c\x4d\xd4\x69\xa2\x4e\x13\x75\x9a\x84\xd3\xd2\x19\x5a\x22\x43\x4b\x61\x68\x42\x4e\x13\x72\x5a\x22\x43\x93\x73\x9a\x9c\xd3\xe4\x9c\x26\xe4\x34\x21\xa7\x09\x39\x4d\xbc\x69\xe2\x4d\x13\x6f\x9a\x78\xd3\x92\x17\x9a\x78\xd3\xc4\x9b\x26\xde\x34\xf1\xa6\xc9\x36\x4d\xb0\x69\x52\x4d\x13\x69\x9a\x30\xd3\x84\x99\x26\xcc\x34\x61\xa6\x49\x32\x2d\x3d\xa1\x09\x33\x2d\x3d\xa1\x09\x33\x2d\x31\xa1\x09\x33\x4d\x98\x69\x92\x4c\x4b\x46\x68\xc9\x08\x4d\x92\x69\x92\x4c\x93\x64\x9a\x00\xd3\x04\x98\x26\xc0\x34\x01\xa6\x25\x1d\x34\x19\xa6\xc9\x30\x4d\x80\x69\x02\x4c\x13\x60\x9a\x00\xd3\x04\x98\x26\xc0\x34\x01\xa6\x09\x30\x2d\xad\xa0\xc9\x30\x2d\xad\xa0\xa5\x15\x34\x49\xa6\xa5\x15\x34\x61\xa6\xa5\x15\x34\x79\xa6\xc9\x33\x2d\xa1\xa0\x25\x14\x34\xa9\xa6\x25\x14\x34\xc1\xa6\x09\x36\x4d\xb0\x69\x09\x05\x2d\xa1\xa0\x89\x37\x4d\xb0\x69\x52\x4d\x93\x6a\x5a\xe2\x40\x93\x6a\x9a\x3c\xd3\x52\x03\x5a\x6a\x40\x4b\x0d\x68\x82\x4d\x4b\x0d\x68\xb2\x4d\x13\x69\x5a\x0a\x40\x4b\x01\x68\xc1\xff\x16\xfc\x6f\xe2\x4d\x0b\xfe\x37\x09\xa7\x85\xfa\x9b\x84\xd3\x24\x9c\x26\xe1\x34\x09\xa7\x89\x37\x4d\xb6\xe9\xfd\xad\xbf\x80\xb9\x01\x73\x03\xe6\x06\xcc\x0d\x98\x1b\x30\xf7\xae\xd3\xea\xfa\xdc\xd6\xb0\xb2\x4d\xb6\xc9\x36\xd9\x16\xdb\x62\x5b\x6c\x8b\x6d\xb1\x2d\xb6\xc5\xb6\xd8\x16\xdb\x62\xdb\x6c\x9b\x6d\xb3\x6d\xb6\xcd\xb6\xd9\x36\xdb\x66\xdb\x6c\xfb\xda\x5e\x08\xbe\xeb\xb0\x4e\xeb\xb2\x6e\x6b\x58\x8f\x35\xad\x65\x65\x3b\xd8\x0e\xb6\x83\xed\x60\x3b\xd8\x0e\xb6\x83\xed\x60\x3b\xd8\x0e\xb6\x93\xed\x64\x3b\xd9\x4e\xb6\x93\xed\x64\x3b\xd9\x4e\xb6\x93\xed\x64\xbb\xd8\x2e\xb6\x8b\xed\x62\xbb\xd8\x2e\xb6\x8b\xed\x62\xbb\xd8\x2e\xb6\x9b\xed\x66\xbb\xd9\x6e\xb6\x9b\xed\x66\xbb\xd9\x6e\xb6\x9b\xed\x66\x1b\x6c\x83\x6d\xb0\x0d\xb6\xc1\x36\xd8\x06\xdb\x60\x1b\x6c\x83\xed\x61\x7b\xc6\xdf\x30\x9d\x71\x98\xce\x38\x4c\x67\xbc\xbe\xfe\x02\xe4\x05\xca\xfb\x2c\x19\xa6\x35\x0e\x73\x1a\xeb\x3a\xd8\x13\xf7\x90\x13\xd0\xa9\xdf\x75\x7d\x2c\x0d\x9d\x78\x4e\x3b\x1f\xc6\x31\x0e\xe3\x18\x87\x81\x8e\xc3\x40\xc7\x61\xa0\xe3\x30\xd0\xf1\xfe\xf6\xb3\xbe\xeb\xa7\x75\xdd\x75\xf8\xf9\x78\x3f\xdf\xd6\xf8\x1b\x6f\x5e\xf8\xdf\xdc\xf9\x07\xf6\xf0\x23\x7c\x44\xb0\x90\x16\x41\x82\x49\x2c\x0c\x07\x51\x2b\xf4\x40\x9f\x00\xd5\x5b\x6b\x55\xdc\x8f\x7a\x9f\x77\x2f\xf9\xee\x6f\xeb\xfb\x43\x79\x30\x11\xdf\x56\x7d\xf7\xb7\xf7\x7f\xf8\x42\x17\x46\xab\xfa\xfc\xf6\xfe\xe3\x3e\x25\xce\x5f\x5f\xc0\xeb\xec\xf9\x77\x1f\xaa\xe4\xfd\x9a\xf7\x6f\xdc\x31\xfe\x4e\x5c\x4f\x7c\x9f\xd7\x27\xe2\x7b\x6b\xfc\x89\x07\xdc\x07\x77\xed\xfc\xfe\xfa\x7e\x5e\xdf\x7f\xb2\x4f\xc6\x5d\xfa\x2e\x75\x97\x71\x97\xef\xaf\x8f\xdf\xae\xf9\xd7\x77\xef\xfb\x1e\x83\xba\x4f\x18\x5f\x30\xdf\x38\x5f\x38\xdf\xb4\x7b\xe3\xec\xfd\x71\x3e\x8e\xf3\x71\x9c\x8f\xe3\x7c\xf0\x1d\xe7\xbc\x6b\x9c\x0f\xbe\xe3\xf0\x1d\x87\xef\x38\x7c\xc7\xe1\x3b\x0e\xdf\x71\xf8\x8e\xc3\x77\x1c\xbe\xe3\xf0\x1d\x87\xef\x38\x7c\xc7\xe1\x3b\x0e\xdf\x71\xf8\x8e\xc3\x77\x1c\xbe\xe3\xf0\x1d\x87\xef\x38\x7c\xc7\xe1\x3b\x0e\xdf\x71\xf8\x8e\xc3\x77\x1c\xbe\xe3\xf0\x1d\x87\xef\x38\x7c\xc7\xe1\x3b\x0e\xdf\x71\xf8\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xdd\x93\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x92\xef\x48\xbe\x23\xf9\x8e\xe4\x3b\x9c\xed\x38\xdf\x1f\xb1\x95\xd6\x4a\x6a\xa5\xb4\x12\x5a\x3d\x80\x3c\x7f\x3c\x7e\xde\xd3\xa7\xe7\xfd\x4b\x7b\x2e\xff\x7d\xff\xd2\x9e\xf7\x2f\xf5\xbe\x74\xd7\xf5\xe7\xc1\xeb\xb9\xeb\xb1\xeb\xa9\xdb\xeb\x7e\x8b\x56\xe4\x9f\xc7\x6f\xaf\xe8\xbf\x5e\xe7\xfb\xf3\x1c\xf6\x18\xf6\x14\xee\x75\xae\xc5\xb9\x16\xe7\x5a\x9c\x6b\x71\xae\xc5\xb9\x16\xf7\x7b\x72\x9f\xcd\x5e\x27\xbc\x4d\x78\x99\xf0\x2e\xe1\x55\xc2\x9b\x84\x17\x09\xef\x11\x5e\x23\xbc\x45\x78\x89\xe8\xe5\xef\xdb\xd7\x62\x5f\x8b\x7d\x2d\xf6\xb5\xd8\xd7\x62\x5f\x8b\xb8\x16\xf7\x1b\xb8\xc6\xb5\x18\xd7\x62\x5c\x8b\x71\x2d\xc6\xb5\x18\xd7\x62\x5c\x8b\x71\x2d\xe6\xb5\xb8\x8e\xea\xfe\xf5\xf7\x26\xdc\x2f\x68\xad\x69\x5d\xd6\x6d\x7d\x3f\x3f\xd6\xb4\x96\xf5\xfa\xcc\xba\xfe\x62\xd6\xef\x66\x1e\xeb\xbd\xf5\xd7\x0b\xc6\x75\x7b\x71\x1d\x60\xbc\x9f\xdd\xed\xd8\xfd\x47\x4c\xa7\xa5\x57\xc4\xdd\xc0\xb8\x1b\x18\xd7\xe2\x6e\xb5\x57\xd6\xf0\xca\x1a\x1c\x6b\x70\x9b\x41\x45\x0b\x2a\x5a\x50\xd1\x82\x8a\x16\x54\xb4\xe0\x1e\xef\xea\x98\x70\x21\xc9\x85\x24\x17\x92\x5c\x48\x72\x21\xc9\x85\x24\x17\x92\x5c\x48\x72\x21\xc9\x85\x24\x17\x92\x5c\x48\x72\x21\xc9\x85\x24\x17\x92\x5c\x48\x72\x21\xc9\x85\x24\x17\x92\x5c\x48\x72\x21\xc9\x85\x24\x17\x92\x5c\x48\x72\x21\xc9\x85\x24\x17\x92\x5c\x48\x72\x21\xc9\x85\x24\x17\x92\x5c\x48\x72\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x14\x17\x52\x5c\x48\x71\x21\xc5\x85\x38\x4b\x54\xbd\xbb\xb2\xe5\x42\x8a\x0b\x29\x2e\xa4\xb8\x90\xe2\x42\xca\x39\x29\x2e\xa4\xb8\x90\x8a\xf9\x7b\x91\x38\xba\x7c\xdd\x75\x5a\x97\xc7\x5c\xfb\xef\xb0\x1e\x6b\x5a\xdf\xf5\x7e\xdb\x9f\x95\x6d\xb3\xed\x65\xdd\x56\xb6\xcd\xb6\xd9\x36\xdb\xbe\xb6\xf7\x2d\xe2\xe8\x1f\x76\x57\xef\x27\xdf\xb2\x6e\x6b\x58\x8f\x35\xad\x65\x65\x3b\xd8\x0e\xb6\xef\xdd\x66\xb0\x1d\x6c\x07\xdb\xc1\x76\xb0\x1d\x6c\x07\xdb\xc9\x76\xb2\x9d\x6c\x27\xdb\xc9\x76\xb2\x9d\x6c\x27\xdb\xc9\x76\xb2\x5d\x6c\x17\xdb\xc5\x76\xb1\x5d\x6c\x17\xdb\xc5\x76\xb1\x5d\x6c\x17\xdb\xcd\x76\xb3\xdd\x6c\x37\xdb\xcd\x76\xb3\xdd\x6c\x37\xdb\xcd\x76\xb3\x0d\xb6\x5e\x47\xae\xff\xbd\x2b\xdb\x60\x1b\x6c\x83\x6d\xb0\x0d\xb6\xc1\xf6\xb0\x3d\x6c\x0f\xdb\xc3\xd6\x2b\xcd\x75\xc6\x77\x65\x7b\xd8\x1e\xb6\x87\x6d\xb2\x4d\xb6\xf9\xde\x21\xdf\xd9\x70\xae\x3c\x76\xca\x63\xa7\x3c\x76\x2a\xde\xcf\x9d\x37\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf8\xa2\xe2\x8b\x8a\x2f\x2a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xf7\xb0\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xde\x38\x22\x50\x43\x20\x85\xf0\xda\x1b\xc7\x9a\x56\x24\x12\xae\x3c\xc8\x02\xf8\xdc\x33\x7c\x57\xb6\x87\xed\x61\x7b\xd8\x1e\xb6\x00\xe8\x9e\xe1\x61\x58\xfb\x30\xac\xfd\xae\x6c\x93\x6d\xb2\x4d\xb6\xc9\x36\xd9\x26\xdb\x64\x5b\x6c\x8b\x6d\xb1\x2d\xb6\xc5\xb6\xd8\x16\xdb\x62\x0b\xca\x16\x28\x5b\xcd\x16\x84\xad\x66\xdb\x6c\x9b\xed\x7b\xcd\x47\x58\x0b\x61\x2d\x84\xb5\x10\xd6\x46\x58\x1b\x61\x6d\x84\xb5\x11\xd6\x46\x55\xfb\x52\xd5\xdc\xdf\xb1\xa6\xb5\xac\x6c\x51\xd8\x46\x61\x7b\xb0\x1d\x6c\x07\xdb\xc1\x76\xb0\x1d\x6c\x07\xdb\xc1\x76\xb2\x45\x82\x7b\xb2\x9d\x6c\x27\xdb\xc9\x76\xb2\x9d\x6c\x27\xdb\xc9\x76\xb1\x5d\x6c\xbd\x1d\x6d\x6f\x47\xdb\xdb\xd1\x5e\xde\x58\xc2\x2b\x65\x78\x0b\x0a\xaf\x94\xf7\x05\x96\xb0\x76\xd7\x77\x8d\xb7\xa3\xeb\x49\x88\x6c\x41\x64\x8b\x9e\x3c\x49\xc7\x5b\x9d\x37\xaf\xc0\xed\x15\xb8\xf9\xa2\xe6\x8b\x9a\x2f\x6a\xbe\xa8\xf9\xa2\xe6\x8b\xfa\x7d\x02\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\xf3\x45\xcd\x17\x35\x5f\xd4\x7c\x51\x5f\x5f\xd4\xff\x73\x6f\xed\x77\x5d\x51\x7f\xd7\x15\x89\xb7\xdc\x75\x5b\xc3\x7a\xac\x69\x2d\xeb\x35\xfd\xae\x2b\x12\x7b\x09\xb1\x97\x10\x7b\x09\xb1\x97\x10\x7b\x09\xb1\x97\x10\x7b\x09\xb1\x97\x10\x7b\x89\xfe\x26\xdb\xc9\x76\xb2\x9d\x6c\x27\xdb\xc9\x76\xb2\x9d\x6c\x27\xdb\xc9\x76\xb1\x5d\x6c\x17\xdb\xc5\x76\xb1\x75\x88\xbe\xc5\x76\xb1\xc5\x2b\x1f\x5e\xf9\xf0\xca\xe7\x15\xfb\xc3\x2b\xdf\x66\xbb\xd9\x7a\x6d\xdf\x1c\xcf\x0e\x47\x35\x1c\x55\x2f\x41\x9b\x2b\xda\x5c\xd1\xe6\x8a\x36\x57\xb4\xb9\xa2\xcd\x15\x6d\xae\x68\x73\x45\x9b\x2b\xda\x5c\xd1\xe6\x8a\x36\x57\xb4\xb9\xa2\xcd\x15\x6d\xae\x68\x73\x45\x9b\x2b\xda\x5c\xd1\xe6\x8a\x36\x57\xb4\xb9\xa2\xcd\x15\x6d\xae\x68\x73\x45\x9b\x2b\xda\x5c\xd1\xe6\x8a\x36\x57\xb4\xb9\xa2\xcd\x15\x6d\xae\x68\x73\x45\x9b\x2b\xda\x5c\xd1\xe6\x8a\x36\x57\xb4\xb9\xa2\xcd\x15\x6d\xae\x68\x73\x45\x9b\x2b\xda\x5c\xd1\xe6\x8a\x36\x57\xb4\xb9\xa2\xcd\x15\x6d\xae\x28\xb8\xa2\xe0\x8a\x82\x2b\x0a\xae\x28\xb8\xa2\xe0\x8a\x82\x2b\x0a\xae\x28\xb8\xa2\xe0\x8a\x82\x2b\x0a\xae\x28\xb8\xa2\xe0\x8a\x82\x2b\x0a\xae\x28\xb8\xa2\xe0\x8a\x82\x2b\x0a\xae\x28\xb8\xa2\xe0\x8a\x82\x2b\x0a\xae\x28\xb8\xa2\xe0\x8a\x82\x2b\x0a\xae\x28\xb8\xa2\xe0\x8a\x82\x2b\x0a\xae\x28\xb8\xa2\xe0\x8a\xc2\x29\x9a\x87\xfb\x39\xdc\xcf\xe1\x7e\x1e\xd8\x1d\xee\xe7\x70\x3f\x87\xfb\x39\x4e\x17\x5c\xfb\xb6\xf3\xb6\xdf\x4f\x9c\x37\xce\xec\xe3\xcc\x3e\xce\xec\xe3\xcc\x3e\xce\xec\xe3\xcc\x3e\xce\xec\xe3\xcc\x3e\xce\xec\xe3\xcc\xbe\xc3\xd6\x5f\xf2\xf9\x4b\x3e\x7f\xc9\xe7\x2f\xf9\xfc\x25\x9f\xbf\xe4\xf3\x97\x7c\xef\x2f\xc1\xe8\x5f\xb2\x4d\xb6\xc9\x36\xd9\x26\xdb\x64\x9b\x6c\x93\x6d\xb2\x4d\xb6\xc5\xb6\xd8\x16\xdb\x62\x5b\x6c\x8b\x6d\xb1\x2d\xb6\xc5\xb6\xd8\x36\xdb\x66\xdb\x6c\x9b\x6d\xb3\x6d\xb6\xcd\xb6\xd9\x36\x5b\xae\x68\xdc\xd7\x22\x31\xc3\x10\x33\x0c\x31\xc3\x10\x33\x0c\x31\xc3\x10\x33\xbc\x6b\x5a\xcb\xca\x96\x2f\x1a\x7c\xd1\xe0\x8b\x06\x5f\x34\xf8\xa2\xc1\x17\x0d\xbe\x68\xf0\x45\x83\x2f\x1a\x7c\xd1\xe0\x8b\x06\x5f\x34\xf8\xa2\xc1\x17\x0d\xbe\x68\xf0\x45\x83\x2f\x1a\x7c\xd1\xe0\x8b\x06\x5f\x34\xf8\xa2\xc1\x17\x0d\xbe\x68\xf0\x45\xc3\x29\x1a\x7c\xd1\xe0\x8b\x06\x5f\x34\xf8\xa2\xc1\x17\x0d\xbe\x68\xec\xf1\x77\x5f\xe1\xee\x0b\xdc\x7d\x7d\xbb\x2f\x6f\xf7\xd5\xed\xbe\xb8\xdd\xd7\xb6\xfb\xd2\x76\x5f\xd9\xee\x0b\xdb\x7d\x5d\xbb\x2f\x6b\xf7\x55\xed\xbe\xa8\xdd\xd7\xb4\xfb\x92\x76\x5f\xd1\xee\xab\x59\x3f\x49\xe4\xaf\x09\x22\x14\x94\x3f\xaf\x63\x22\x4b\xd1\xd3\xa9\x98\x4e\xc5\x74\x2a\xa6\x53\x31\x9d\x8a\xe9\x54\xcc\x3c\x7f\xf7\x95\xec\xbe\x90\xdd\xd7\xb1\xfb\x32\x76\x5f\xc5\xee\x43\xf5\x3e\x52\xef\x03\xf5\x3e\x4e\xef\xc3\xf4\x3e\x4a\xef\x83\xf4\x3e\x46\xef\x43\xf4\x3e\x42\xef\x03\xf4\x3e\x3e\xef\x63\xf3\x3e\x34\xef\x23\xf3\x3e\x30\xef\xe3\xf2\x3e\x2c\xfb\xf7\x97\xf8\xab\x9c\xba\xe9\xd4\x4d\xa7\x6e\x3a\x75\xd3\xa9\x7b\x88\x79\xcf\xe7\xd1\xee\xfc\x68\x71\x7e\xb4\x38\xbf\xab\x9f\xd7\xfb\x79\x58\x8f\xf5\x42\xc9\x07\x3a\x3f\xd0\xf9\xce\xe1\x74\x7a\xe7\xef\x4a\x9f\x5c\xdb\x27\xbb\xbe\x5c\xff\xee\xc6\xfb\x9c\x74\xa5\xef\xc8\x74\xce\xa7\x73\x3e\x9d\xf3\xe9\x9c\x4f\xe7\x7c\xbe\xcf\x77\xce\xa7\x73\x3e\x9d\xf3\xe1\xf9\x32\x3c\x5f\x86\xe7\xcb\xd8\xef\xe7\xce\x03\x5f\x31\xf8\x8a\xc1\x57\x0c\xbe\x62\xf0\x15\x83\xaf\x18\x7c\xc5\xe0\x2b\x06\x5f\x31\xf8\x8a\xc1\x57\x0c\xbe\x62\xf0\x15\x83\xaf\x18\x7c\xc5\xe0\x2b\x06\x5f\x31\xf8\x8a\xc1\x57\x0c\xbe\x62\xf0\x15\x83\xaf\x18\xf6\x62\x38\x15\xc3\xa9\x18\x4e\xc5\x70\x1f\x86\x53\x31\x9c\x8a\xe1\x3e\x0c\xbb\x36\xec\xda\xb0\x6b\xc3\xae\x0d\xbb\x36\xec\xda\xe0\x2b\x86\xbb\x3d\xf8\x8a\xc1\x57\x0c\xf7\x70\xb8\x87\xc3\x3d\x1c\xee\xe1\x70\x0f\x87\x7b\x38\xdc\xc3\xe1\x1e\x8e\x77\x0f\xf9\x8a\xc1\x57\x0c\xbe\x62\xf0\x15\x93\xaf\x98\x7c\xc5\xe4\x2b\x26\x5f\x31\xf9\x8a\xc9\x57\x4c\xbe\x62\xf2\x15\x93\xaf\x98\x7c\xc5\xe4\x2b\x26\x5f\x31\xf9\x8a\xc9\x57\x4c\xbe\x62\xf2\x15\x93\xaf\x98\x7c\xc5\xe4\x2b\x26\x5f\x31\xf9\x8a\xc9\x57\x4c\xbe\x62\xf2\x15\x93\xaf\x98\x7c\xc5\xe4\x2b\x26\x5f\x31\xf9\x8a\x39\x9f\x6e\xca\x96\xaf\x98\x7c\xc5\xe4\x2b\xe6\x7b\xe2\xbc\x97\x5f\xbe\x62\xae\xfc\x1b\xf7\x55\x65\xdc\x37\x95\x71\x5f\x54\xc6\x7d\x4f\x19\xf7\x35\x65\x78\x4b\xb9\xaf\x48\xe3\x3e\x75\xc6\x7d\xe8\x8c\xfb\xcc\x19\xf7\x91\x33\xee\x13\x67\xdc\x07\xce\xb8\xcf\x9b\x71\x1f\x37\xe3\x3e\x6d\xc6\x7d\xd8\x8c\xfb\xac\x19\xf7\x51\x33\xee\x93\x66\xdc\x07\xcd\xb8\xcf\x99\x71\x1f\x33\xe3\x3e\x65\xc6\x7d\xc8\x8c\xfb\x8c\x19\xf7\x11\x33\xee\x13\x66\xdc\x07\xcc\xb8\xcf\x97\x71\x1f\x2f\xe3\x3e\x5d\xc6\x7b\xb8\x4c\x1b\x34\x6d\xd0\xb4\x41\xd3\x06\x2d\x1b\xb4\x6c\xd0\xb2\x41\xcb\x06\x2d\x1b\xb4\x6c\xd0\xb2\x41\xc2\x18\x02\xce\x21\xe0\x1c\x2d\x46\x74\x9f\x5a\xe3\x7e\x21\xc7\x7d\x66\x8d\xfb\x75\x1c\xf7\xdb\x38\xae\x43\x18\xf7\x69\x30\xae\x53\x18\xf7\xfb\x3b\xee\xd7\x77\x5c\xef\x30\xae\x73\x18\xf7\xfb\x3d\xee\xd7\x7b\x5c\xcf\x30\xae\x63\x18\xd7\x5f\x8c\xeb\x2e\xc6\xf5\x10\xe3\x3a\x88\x71\xfd\xc3\xb8\xee\x61\xdc\xa7\xd4\xb8\x0f\xa9\x71\x9f\x51\xe3\x3e\xa2\xc6\x7d\x42\x8d\xfb\x80\x1a\xf7\xf9\x34\xee\xe3\x69\xdc\xa7\xd3\xb8\x0f\xa7\xf1\x9e\x4d\xcb\x29\x5a\x4e\xd1\x1a\xef\x27\xfe\x07\x9d\xa2\xe5\x14\x2d\xa7\x68\x39\x45\xcb\x29\x5a\x4e\xd1\x72\x8a\x96\x53\xb4\xe6\xfa\xcb\xb1\xff\x72\xc4\x5f\xce\xfe\x53\xcf\xa2\x9c\x45\x2d\x8a\x42\x12\x19\xee\xb5\xa9\xf6\x5d\x7f\xe2\xaa\xc2\xaa\xa2\xaa\xc2\x11\xe2\x0a\x82\x08\x44\x54\x8a\x26\x41\x93\x22\xd1\xc1\x77\x73\xde\xcf\x7b\xfb\xd9\xf5\xdf\x1c\x38\x0f\x7e\x5d\x78\x5c\x1f\x1e\xd7\x89\xc7\xb9\x16\xd7\x95\xc7\xf5\xe5\x71\x38\xfc\x6b\x71\xdd\x79\x5c\x7f\x1e\xe7\x5a\xe4\xb5\xc8\x6b\x91\xd7\x22\xaf\x45\x5e\x8b\xbc\x16\xe9\x19\x71\x2d\xf2\x5a\xe4\xb5\xa8\x6b\x51\xd7\xa2\xae\x45\x5d\x8b\xba\x16\x75\x2d\xea\x5a\xd4\x7d\x64\x7c\xf7\x59\xf2\xcd\xbb\xdc\x27\xca\x77\x1f\x29\xdf\x7d\xa6\x7c\xf7\xa1\xf2\xb9\xe4\x3e\x56\xbe\xfb\xec\x19\x1e\x3e\xd7\x62\x5c\x8b\xfb\x5c\x3d\xf7\xc1\x7a\xee\x93\xf5\xdc\xc7\xe9\xb9\xcf\xd3\x73\x1f\xa8\xc7\x93\xca\xa3\xaa\x3d\x97\xfa\xaf\xf3\xfb\xee\x32\xfe\x3a\xd7\xbd\x6b\x4f\x7d\xf0\xea\xba\xbc\x7e\xfe\xb6\xd1\xd7\x7d\xf9\xba\x2f\x5f\xf7\xe5\xeb\xbe\xe6\xfb\xad\x4d\xf6\x75\x5f\xbe\xee\xcb\xd7\x7d\xf9\xba\xaf\xd7\x13\xfb\xef\x3a\x0b\x55\x09\x2a\x0f\x0d\x50\xff\xfb\x8d\xd1\xff\x7b\xe3\xee\xf3\xef\x0d\x23\x3f\x7f\xbf\x79\x78\x7f\x2a\x17\xf6\xfc\x7b\xf3\x0a\xbe\xbf\x37\x53\xad\xff\x2e\x34\x5c\x58\xb8\x90\xf0\xba\xe8\x1b\x47\x7e\xff\xb5\xbf\xcc\xbd\xfe\xee\x1f\xec\x8f\xfb\xe2\xef\xbc\x2f\x99\xf7\x82\xe5\x7d\x64\x79\x1f\x59\xc2\x0f\x81\x7e\x02\xfd\x04\xfa\x09\xf4\x13\x6e\x45\xa0\x9f\x40\x3f\x81\x7e\x02\xfd\x04\xfa\x09\xf4\x13\xe8\x27\xd0\x4f\xa0\x9f\x40\x3f\x81\x7e\x02\xfd\x04\xfa\x09\xf4\x13\xe8\x27\xd0\x4f\xa0\x9f\x40\x3f\x81\x7e\x02\xfd\x04\xfa\x09\xf4\x13\xe8\x27\xd0\x4f\xa0\x9f\x40\x3f\x81\x7e\x02\xfd\x04\xfa\x09\xf4\x13\xe8\x47\x66\x83\x38\x50\x08\x04\x85\x48\x50\x08\x05\x85\x58\x50\x08\x06\x85\x68\x50\x08\x07\x85\x78\x50\x08\x08\x85\x88\x50\x08\x6d\x85\xd8\x56\x08\x6e\x85\xe8\x56\x08\x6f\x85\xf8\x56\x08\x70\x85\x08\x57\x08\x71\x45\xff\x64\xa9\x17\x3e\x47\x2a\x0b\xa9\x2c\xa4\xb2\x90\xca\x42\x2a\x0b\xa9\x2c\xa4\xb2\x90\xca\x7d\x93\x1a\xeb\x3e\xfd\xee\xda\x7f\x63\xdd\xa7\xd6\x5d\x97\x75\x5b\xf3\xae\xe1\xe7\xe7\xad\x61\x3d\x56\xef\x38\xc4\xd9\x20\x97\xc7\x73\xb7\x67\xfe\xd5\xc3\xc5\x7a\xff\xa3\xe7\x3a\x9c\xdf\xef\xfc\xbf\x79\x73\x78\xb2\x59\x38\x1f\x7b\xa3\xc2\xed\x9e\x6e\xf7\x7a\x0b\x11\x3c\x4e\xfc\x11\xb4\x37\x28\x72\xfe\x47\xce\xff\xc8\xf9\x83\x9c\x3f\xc8\xf9\x83\x9c\x3f\xc8\xf9\x83\x9c\x3f\xc8\xf9\xc3\xdf\x37\x08\xf9\x83\x90\x3f\x08\xf9\x83\x90\x3f\x48\xf8\x83\x84\x3f\x48\xf8\x83\x84\x3f\x48\xf8\x83\x84\x3f\x48\xf8\x83\x84\x3f\x48\xf8\x83\x84\x3f\x48\xf8\x83\x84\x3f\x48\xf8\x83\x84\x3f\x88\xf7\x83\x78\x3f\x88\xf7\x03\x15\x2e\xdf\x81\xe9\x14\x4e\xa7\x70\x3a\x85\xd3\x29\x9c\x4e\xe1\x74\x0a\xa7\x53\x38\x9d\xc2\xe9\x14\xce\x7a\xf9\x17\x2f\x78\xc2\xd6\xfb\xcc\xf2\xbe\xb4\xbc\x2f\x2d\xef\x4b\xcb\xfb\xd2\xf2\xbe\xb4\xde\x19\xf5\xbe\xb4\xbc\x2f\x2d\xef\x4b\xcb\xfb\xd2\xf2\xbe\xb4\xbc\x2f\xad\x9e\xf7\xed\xdc\xb2\xee\xb2\xef\x72\xdf\xda\xbd\xbe\x5f\x57\xbb\xaf\xab\xdd\xd7\xd5\xee\xeb\x6a\xef\x36\xf7\xbe\xae\x76\x5f\x57\xbb\xaf\xab\xdd\xd7\xd5\xee\xeb\x6a\x77\x79\xd3\xbf\x16\x75\x2d\xfa\x5a\xf4\xb5\xf0\x0f\xf5\xb5\xe8\x6b\x71\x1f\x23\xbb\xaf\x45\x5f\x8b\x06\x07\xe8\xe0\xba\xf3\xeb\x38\xe3\xfa\xea\xcb\xff\x7d\xf1\xbf\xaf\xc7\xe9\x7b\xe8\xfa\xb2\x7f\xdf\x83\xd7\x97\xfc\xfb\x82\x7f\x5f\xee\xef\x8b\xfd\x7d\xa9\xbf\x2f\xf4\xf7\x65\xfe\xbe\xc8\xdf\x97\xf8\xfb\x02\x7f\x5f\xde\xef\x8b\xfb\x7d\x69\xbf\x2f\xec\xf7\x65\xfd\xbe\xa8\xdf\x97\xf4\xfb\x82\x7e\x5f\xce\xef\x8b\xf9\x7d\x29\xbf\x2f\xe4\xf7\x65\xfc\xbe\x88\xdf\x97\xf0\xfb\x02\x7e\xc7\xa5\xa3\xb8\x78\x14\xeb\x5a\xac\x6b\xb1\xae\xc5\xbe\x16\x97\xc9\xee\xb1\xee\xd8\x48\xe7\x5a\x5c\x26\x8a\x0b\x45\xf1\xfc\x83\x77\xd5\xe5\x5d\x75\xbd\xbd\xf5\x2a\xb4\xfa\xfd\xd6\xbe\x79\x15\xda\x5e\x85\xb6\x57\xa1\xed\x55\x48\x76\x57\x6f\xaf\x42\xdb\xab\xd0\xf6\x2a\xa4\x34\xcf\xcf\xa7\x9f\xcf\x7f\x3f\x91\x07\xa9\x4c\xaf\x95\xe9\xb5\x32\xbd\x56\xa6\xd7\xca\xf4\x5a\xc3\x96\x56\xa0\xd7\xca\xee\x5a\xd9\x5d\x2b\xb8\x6b\x0d\x58\x5a\xc1\x5d\x2b\xb8\x6b\x05\x77\xad\xd4\xae\x15\xd9\xb5\x22\xbb\x56\x64\xd7\x8a\xec\x5a\x03\x96\x56\x6a\xd7\x8a\xec\x5a\x1b\x96\x56\x6a\xd7\x8a\xec\x5a\x91\x5d\x6b\xc3\xd2\xda\xb0\xb4\x82\xbb\xf6\xe8\x6a\xc3\x5f\xda\x63\xab\x15\xd9\x39\xb4\xd3\x59\x9d\x0e\xeb\x74\x50\xa7\x93\x3a\x1d\xd5\xe9\x5c\x4e\x67\x72\x3a\x94\xd3\x81\x9c\x4e\xe4\x74\x1a\xa7\xe3\x38\x1d\xc0\xe9\x04\x4e\x47\x70\x3a\x83\xd3\xd1\x9b\xce\xde\x74\xf8\xa6\xd3\x37\x1d\xbf\xe9\xfc\x4d\x07\x70\x3a\x81\xd3\x11\x9c\xce\xe0\x74\x08\xa7\x53\x38\x1d\xc3\xe9\x08\x4e\x67\x70\x3a\x7f\xd3\xd9\x9b\x0e\xdf\x74\xfa\xa6\xe3\x37\x1d\xbd\xe9\xec\x4d\x87\x6f\x3a\x7d\xd3\xf1\x9b\xce\xdf\x74\x00\xa7\x13\x38\x9d\xbe\xe9\xf8\x4d\xe7\x6f\x3a\x80\xd3\x09\x9c\x8e\xe0\x74\x06\xa7\x43\x38\x9d\xc2\xe9\x18\x4e\xe7\x70\xb6\x62\x3a\x6f\x76\xd3\xab\x5d\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\x52\x68\xbb\x14\xda\x2e\x85\xb6\x4b\xa1\xed\xd2\x5d\xd9\x4e\xb6\x93\xed\x64\x3b\xd9\x4e\xb6\x8b\xed\x62\xbb\xd8\x2e\xb6\x8b\xed\x62\xbb\xd8\xbe\x13\x28\x3b\x56\x19\x26\x22\x98\x90\x60\x62\x82\x09\x0a\x26\x2a\x98\xb0\x60\xe2\x82\x09\x0c\x26\x32\x98\xd0\x60\xc2\x82\x89\x0b\x26\x30\x98\xc8\x60\x42\x83\x09\x0b\x26\x2e\x98\x98\x60\xe2\x81\x89\x05\x26\x18\x98\x40\x60\x22\x81\x89\x02\x26\x0c\xb8\xeb\xbb\xd2\x67\xf2\x03\x4a\x2f\x5b\xe9\x65\x2b\xbd\x6c\xa5\x97\xad\xf4\xb2\x35\xf3\x69\xa5\x97\x18\x62\xe2\x87\x09\x20\x26\x82\x98\x10\x62\x62\x88\x09\x22\x26\x80\x98\xe0\x61\xa2\x87\xbb\xfa\xad\x2c\x67\x25\x96\xad\xc4\xb2\x15\x57\xb6\x66\x3e\xad\xb8\xb2\x15\x57\xb6\xe2\xca\x56\x5c\x29\x9f\xef\xae\xae\x91\xe5\xac\xa0\xb2\xb5\xf4\x69\x65\x95\xad\xa0\xb2\x15\x54\xb6\x52\x4a\x69\x7f\x53\x06\xe0\x5d\xfd\x5b\xfc\xad\x06\xcb\xad\xc1\x72\x2b\xa2\x6c\xe5\x93\xad\x7c\x12\xcd\x4c\x38\x73\x57\xd7\xdb\x11\x25\x93\xad\x64\xb2\x95\x4c\x4a\x35\xbc\xab\x4f\xb6\x17\x0a\x24\x5b\x81\xa4\x94\xc4\x29\x3b\x71\xb6\xd2\xc8\x56\x1a\xd9\x8a\x22\x5b\x51\x64\x2b\x8a\x6c\x45\x91\x2d\xd3\x4f\x6b\xaf\xd0\xda\x2b\xb4\xf6\x0a\xad\xbd\xee\xea\xec\x6d\x67\x8f\x5f\xda\xfc\xd2\xe6\x97\x36\xbf\xb4\xf9\xa5\xcd\x2f\x6d\x7e\x69\xf3\x4b\x9b\x5f\xda\xfc\xd2\xe6\x97\x36\xbf\xb4\xf9\xa5\xcd\x2f\x6d\x7e\x69\xf3\x4b\x9b\x5f\xda\xfc\xd2\xe6\x97\x36\xbf\xb4\xf9\xa5\xcd\x2f\x6d\x7e\x69\xf3\x4b\x9b\x5f\xda\xfc\xd2\xe6\x97\x36\xbf\xb4\xf9\xa5\xcd\x2f\x6d\x7e\x69\xf3\x4b\x9b\x5f\xda\xfc\xd2\xe6\x97\x36\xbf\xb4\xf9\xa5\xcd\x2f\x6d\x7e\x69\xf3\x4b\x9b\x5f\xda\xfc\xd2\xe6\x97\xf6\xbb\x57\xfc\xd2\xe6\x97\x36\xbf\xb4\xf9\xa5\xcd\x2f\x6d\x7e\x69\xf3\x4b\x9b\x5f\xda\xfc\xd2\xe6\x97\x36\xbf\xb4\xf9\xa5\xe0\x97\x82\x5f\x0a\x7e\x29\xf8\xa5\xe0\x97\x82\x5f\x0a\x7e\x49\x2a\x86\x36\x62\xa1\x8d\x58\x68\x23\x16\xda\x88\x85\x36\x62\x77\x65\xcb\x2f\x05\xbf\x14\xfc\x52\xf0\x4b\xc1\x2f\x05\xbf\x14\xfc\x52\xf0\x4b\xc1\x2f\x05\xbf\x14\xfc\x52\xf0\x4b\xc1\x2f\x05\xbf\x14\xfc\x52\xf0\x4b\xc1\x2f\xbd\x67\xa2\x42\xda\x36\xf4\xaa\x95\xd3\xb6\x72\xda\x56\x4e\xdb\xca\x69\x5b\x39\x6d\x2b\xa7\x6d\xe5\xb4\xad\x9c\x16\xb1\x4f\xb4\x7e\xd7\x65\xdd\xd6\xb4\xbe\xdf\xde\x4f\x56\x42\xdb\xca\x66\x5b\xd9\x6c\x2b\x9b\x6d\x65\xb3\xad\x6c\xb6\x95\xcd\xb6\xb2\xd9\x56\x36\xdb\xca\x66\x5b\xa9\x6c\x6b\x36\xd5\x0a\x66\x5b\xc1\x6c\x2b\x98\x6d\x2d\xa7\x5a\xc1\x6c\x2b\x98\x6d\x45\xb2\x94\x83\xbb\xfa\xad\xe7\xb8\x62\xd8\x56\x06\xdb\xca\x60\x5b\xb3\xa9\x56\xfa\xda\x4a\x5f\x5b\xe9\x6b\x2b\x7d\x6d\x45\xaf\xad\xe8\xb5\x15\xbd\xb6\xa2\xd7\x56\xee\xda\xca\x5d\x5b\xb9\x6b\x2b\x77\x6d\xed\xbe\x5b\xd1\x6b\x2b\x7a\x6d\x45\xaf\xad\xe8\xb5\x15\xbd\xb6\xa2\xd7\x56\xf4\xda\x8a\x5e\x5b\xd1\x6b\x2b\x7a\x6d\x45\xaf\xad\xe8\xb5\x35\x00\x6f\xed\xaa\x5a\x01\x6c\x6b\xfa\xdd\x1a\x55\x49\x81\xbe\xab\xcf\xb1\x3b\x8a\x5e\x5b\xa3\xef\x56\xfa\xda\xf9\x76\xc7\x5b\x99\xa6\x55\xad\x18\xb6\x15\xc3\xb6\x62\xd8\x56\x0c\xdb\x8a\x61\x5b\x31\x6c\x6b\xfd\xdd\x1a\x58\xb5\x92\xd8\x56\x12\xdb\x4a\x62\x5b\x31\x6c\x2b\x86\xed\x7a\xa7\xd1\x73\x2d\x3c\xd7\x44\xed\x34\xb5\x0b\x4d\xed\x42\x53\xbb\xbb\xbe\x2b\x9d\x3d\x7e\x29\xf8\xa5\xe0\x97\x82\x5f\x0a\x7e\x29\xf8\xa5\xe0\x97\xbc\xe1\x6b\x79\x17\x5a\xde\x85\x96\x77\xa1\xe5\x5d\x68\x79\x77\x57\xb6\xfc\x92\x54\x4b\x8d\xef\x42\xe3\xbb\xd0\xf8\x2e\x34\xbe\x0b\x8d\xef\x42\xe3\xbb\xbb\xb2\xe5\x97\x82\x5f\x0a\x7e\x49\xa5\x87\xf6\x77\xa1\xfd\x5d\x68\x7f\x17\xda\xdf\xdd\x95\x2d\xbf\xa4\xd2\x43\x43\xbc\xbb\xb2\xe5\x97\x54\x7a\x68\x8b\x17\xda\xe2\x85\xb6\x78\xa1\x2d\x5e\x68\x8b\x77\x57\xb6\xfc\x12\x3d\x24\x55\x7a\x68\x94\x17\x1a\xe5\xdd\x95\x2d\xbf\xa4\xd2\x43\xbb\xbc\xd0\x2e\x2f\xb4\xcb\xbb\x2b\x5b\x7e\x49\xa5\x87\xd6\x79\x77\xbd\xb6\x2a\x3d\x34\xd0\xbb\xeb\xb4\x2e\xeb\xb6\x86\xf5\x58\xd3\x5a\x56\xb6\xfc\x92\x4a\x0f\x0d\xf7\x42\xc3\xbd\xd0\x70\x2f\x34\xdc\x0b\x0d\xf7\xee\xca\xd6\x49\x50\xe9\xa1\xed\x5e\x68\xbb\x17\xda\xee\x85\xb6\x7b\xa1\xed\x5e\xbc\xb6\x7b\xad\x8c\xba\x35\x46\x6b\xed\xe2\x5b\x49\x75\x2b\xa6\x6e\xed\xd1\x5a\x7b\xb4\x56\x52\xdd\x8a\xa9\x5b\x31\x75\x2b\xa6\x6e\x65\xd4\xad\x8c\xba\x15\x50\xb7\xd2\xe9\x56\x3a\xdd\x1a\xa6\xb5\x46\xf1\xad\x51\x7c\x6b\x9e\xd6\x9a\xa7\xb5\xc2\xea\xd6\x2e\xbe\x95\x57\xb7\x46\x6a\xad\xbc\xba\xb5\x50\x6b\x8d\xe2\x5b\x23\xb5\x56\x6a\xdd\x1a\xc5\xb7\x46\xf1\xad\x51\x7c\x2b\xbe\x6e\x4d\xd5\x5a\xa3\xf8\x56\x82\xdd\x4a\xb0\x5b\x09\x76\x2b\xc1\x6e\xed\xe2\x5b\x21\x76\x1b\x17\xde\xca\xb1\x5b\x39\x76\x2b\xc7\x6e\xe5\xd8\xad\x1c\xbb\x95\x63\xb7\x72\xec\x56\x88\xdd\x0a\xb1\x5b\x21\x76\x2b\xc4\x6e\x85\xd8\xad\x8d\x7c\x6b\x23\xdf\x8a\xb2\xdb\x40\xb4\x56\x9a\xdd\x4a\xb3\x5b\x69\x76\x6b\x2c\xdf\x0a\xb4\x5b\x81\x76\x2b\xd0\x6e\x05\xda\xad\xc9\x7c\x2b\xd3\x6e\x4d\xe6\x5b\x7b\xb7\xd6\xde\xad\x35\x99\x6f\xed\xdd\x5a\x7b\xf9\xd6\xe4\xad\x95\x72\xb7\xa1\x69\xad\xa0\xbb\x15\x74\xb7\x82\xee\x56\xd0\xdd\x4a\xb9\x5b\xc3\xb7\xd6\xea\xad\xb5\x77\x6b\x85\xdb\xad\x70\xbb\x15\x6e\xb7\xc2\xed\x56\xb8\xdd\xfd\xe4\x57\x3b\xae\x58\xbb\xb5\x7a\x6b\x09\x6d\xa9\x52\x28\x55\x0a\x69\xe1\x18\x5a\x38\x86\x16\x8e\x77\x75\xf6\xf8\x25\x95\x42\x1a\x39\xde\xd5\xb9\xe5\x97\x54\x0a\x69\xea\x18\x9a\x3a\x86\xa6\x8e\x77\x65\xcb\x2f\xa9\x14\xd2\xda\xf1\xae\x6c\xf9\x25\x95\x42\x1a\x3c\x86\x06\x8f\xa1\xc1\x63\x68\xf0\x18\x1a\x3c\xde\x95\x2d\xbf\xa4\x52\x48\xcb\xc7\xd0\xf2\x31\xb4\x7c\x0c\x2d\x1f\x43\xcb\xc7\xbb\xb2\xe5\x97\x54\x91\xa4\x2a\x92\x54\x45\xa2\x15\xe4\x5d\xd9\xf2\x4b\xaa\x48\x52\x15\x89\x16\x91\x77\x65\xcb\x2f\xa9\x22\x49\x55\x24\x5a\x47\x86\xd6\x91\xa1\x75\xe4\x5d\xd9\xf2\x4b\xaa\x48\x52\x15\x89\x66\x92\x77\x65\xcb\x2f\xa9\x22\xc9\xf7\x6e\xa9\x8a\x24\x55\x91\xa4\x2a\x12\x0d\x27\x43\xc3\xc9\xd0\x70\xf2\xae\x6c\xf9\x25\x55\x24\x5a\x50\xde\x95\x2d\xbf\xa4\x8a\x24\x55\x91\x68\x4a\x19\x9a\x52\xde\x75\x5b\xc3\x7a\xac\x69\x2d\x2b\x5b\x7e\x49\x15\x49\xaa\x22\x49\x55\x24\xa9\x8a\x44\xcb\xca\xd0\xb2\x32\xb4\xac\xbc\x2b\xdb\x77\xf6\x78\x09\x65\xfe\xad\x31\x60\x2b\xf0\x6f\x05\xfe\x6d\x0c\x41\x2b\xf3\x6f\x4d\x02\xdb\x18\x82\xd6\x24\xb0\x0d\x20\x68\x03\x08\x5a\xf9\x7f\x2b\xfc\x6f\x85\xff\xad\xf0\xbf\x15\xfe\xb7\xc2\xff\x56\xf8\xdf\x0a\xff\x5b\xe1\x7f\x1b\x3d\xd0\x4a\xfe\x5b\xb1\x7f\x2b\xf3\x6f\x65\xfe\xad\xcc\xbf\x0d\x20\x68\x65\xfe\xad\xc0\xbf\x0d\xe0\x6b\x05\xfe\xad\xc0\xbf\x15\xf8\xb7\x02\xff\x56\xe0\xdf\x4a\xfb\x5b\x69\x7f\x2b\xe7\xef\xee\xfa\x5b\xdf\xf7\x6d\xeb\xb1\xf6\x5d\xc7\xb4\x2e\x6b\x58\xd3\xea\xfa\xe1\x9a\xf9\x59\x5d\x39\x5d\x39\x5d\x39\x7d\xce\xff\x49\xd3\xdd\x65\x49\xaa\xc3\x30\x00\xde\x50\x3f\x10\x3b\x3f\xb0\xa0\xbb\xff\x2d\xdc\x93\x4f\x35\x2f\x9c\x39\xd3\x50\x5d\x0d\xd8\x71\x2c\x59\x2a\xe7\xb4\x9f\xb6\x9f\xb6\xdf\xd2\xce\x69\x9f\xd6\x3e\xad\x9d\x39\x7d\xda\xf4\xd3\xe9\x13\xa6\x73\xa6\x73\xa6\x73\x96\x73\xd6\x70\xf4\xc9\xcb\xf9\xcb\xf9\xcb\xf9\xcb\x99\xdb\x99\xdb\x99\xdb\x99\xdb\x77\xd8\xbe\xc3\x76\xd5\x76\xfe\x76\xfe\x71\xfe\x71\xfe\x71\xce\x71\xce\xf1\xc9\xc7\x99\xc7\x37\x79\x9d\xf9\x3a\xf3\xf5\xc9\xaf\xf3\x5f\xe7\x7b\xff\x4d\x21\x1d\x53\x48\xc7\x14\x12\x29\xd4\x45\x0a\x75\x91\x42\x5d\xa4\x50\x17\x29\xd4\x7b\xf4\xee\xc9\x4b\xa6\x90\x08\xa2\xde\xa3\x6b\xe5\x25\x53\x48\xc7\x14\x12\x89\xd4\x45\x22\x75\x91\x48\xbd\x47\xd7\xca\x4b\xa6\x90\x8e\x29\x24\x48\xd2\x3d\xba\x56\x5e\x32\x85\x44\x4c\xf5\x1e\x5d\x2b\x2f\x99\x42\x22\xa9\x7a\x8f\xae\x95\x97\x4c\x21\x11\x59\x5d\x44\x56\x17\x91\xd5\x45\x64\x75\x11\x59\x5d\xc7\x68\x0a\xa9\xd5\x7b\x74\xad\xbc\x64\x34\x85\xec\xea\x3d\xba\x56\x5e\x32\x9a\x72\x8c\xa6\x90\x60\x5d\x24\x58\x17\x09\xd6\x7b\x74\xad\xbc\x64\x34\x85\x1c\xeb\x3d\xba\x56\x5e\x32\x9a\x42\xa0\xf5\x1e\x5d\x2b\x2f\x19\x4d\x39\x46\x53\x8e\xd1\x14\xc2\xad\x8b\x70\xeb\x3d\xba\x56\x5e\x32\x9a\x72\x8c\xa6\x1c\xa3\x29\xa4\x5c\x17\x29\xd7\x7b\x74\xad\xbc\x64\x34\x85\xac\xeb\x22\xeb\xba\xc8\xba\xde\xe3\x70\x2c\xc7\x76\x9c\x8e\xcb\x71\x3b\x1e\xc7\xd7\xd1\xb5\xf2\x92\xd1\x94\x63\x34\xe5\xbc\x89\xb2\x37\x6f\x97\xb7\xf1\xf3\x8e\x7d\xde\xae\xcf\x4f\x3f\xef\xd8\xe7\x6d\xfc\xee\x39\xe3\x19\x8e\xd3\xf1\x38\xde\x4f\x18\xe3\x71\xf4\xff\x23\xff\xe3\x7c\xd1\x3a\xca\x55\x62\x76\x88\xd6\x21\x2a\x47\xe7\xdf\xce\x17\x8f\x63\xb6\xa3\x9f\x8a\xca\x21\xfa\xc6\xca\xbf\xb7\xa3\xf3\x45\xdc\x10\x71\x43\xc4\x0d\xb1\x36\xc4\xd7\x10\x5f\x43\x7c\x8d\xe3\xf7\x1e\x3f\x15\x5f\x43\x7c\x0d\xf1\x35\xc4\xd4\x10\x47\xc3\xdd\x18\xee\xc6\x70\x37\xc6\xe7\xa7\xee\xc3\xf8\x9c\xf3\xb9\x4a\x06\x1b\xee\x49\x3d\x8f\x63\x39\xb6\xe3\x72\xbc\xbf\xa5\xdc\x99\x92\xd9\xca\xfd\x29\x99\xad\x46\x7e\x7a\x1c\x7d\x8e\xbb\x54\xee\x52\xc9\x6c\xe5\x5e\x95\xcc\x56\xe5\xcc\xba\xbf\xb7\xda\x67\xba\x87\x60\xdf\xa7\x64\xb6\x72\x27\x6b\xfa\x1c\x77\xb2\x64\xb3\x92\xcd\x4a\xee\xaa\xe5\x2a\xf7\xb3\xe4\xae\x72\x3f\x4b\xbe\x2a\xf7\xb0\x64\xaa\xda\x3e\xd9\xfd\x2c\xf7\xb3\xdc\xc3\x92\xa9\x4a\x74\x18\x6d\x3a\x46\x9b\x88\x09\xdf\xa3\x77\xcf\xba\x66\xb4\x89\xbc\xf0\x3d\x7a\xf7\xe4\x25\xa3\x4d\xa4\x86\xef\xd1\xb5\xf2\x92\xd1\x26\xe2\xc3\x8b\xf8\xf0\x22\x3e\xbc\x88\x0f\xdf\xa3\x6b\xe5\x25\xa3\x4d\xc7\x68\xd3\x31\xda\x74\x8c\x36\x1d\xa3\x4d\xc7\x68\x13\x99\xe2\x45\xa6\x78\x91\x29\x5e\x64\x8a\xef\xd1\xb5\xf2\x92\xd1\x26\x92\xc5\x8b\x64\xf1\x3d\xba\x56\x5e\x32\xda\x74\x5e\x79\xe9\x95\x97\x8c\xa9\x10\x31\xbe\x47\xd7\xca\x4b\xc6\x54\x8e\x31\x95\x63\x4c\xe5\x18\x53\x39\xc6\x54\x8e\x31\x15\x42\xc7\x8b\xd0\xf1\x22\x74\x7c\x8f\xae\x95\x97\x8c\xa9\x1c\x63\x2a\x44\x8f\xef\xd1\xb5\xf2\x92\x31\x95\x63\x4c\x85\x18\xf2\x3d\xba\x56\x5e\x32\xa6\x72\x8c\xa9\x10\x46\xbe\x47\xd7\xca\x4b\xc6\x54\x88\x24\xdf\xa3\x6b\xe5\x25\x63\x2a\xc7\x98\x0a\xf1\xe4\x7b\x74\xad\xbc\x64\x4c\xe5\x18\x53\x39\xc6\x54\x8e\x31\x15\xd2\xca\xf7\xe8\x5a\x79\xc9\x98\xca\x31\xa6\x72\x8c\xa9\x10\x5e\x5e\x84\x97\xef\x71\x39\x6e\x47\xef\xd2\xc9\xd1\x5b\x77\xbc\x57\x56\xb7\x12\x89\x65\x75\xab\xd7\x9b\xf6\x7a\x03\x5f\xe7\x8b\xcd\x12\x9b\x25\x36\x4b\x6c\x96\x4c\x55\x62\xb3\x64\xaa\x12\xa1\x25\x42\x4b\x84\xb6\xac\xd5\x62\xb3\xe5\xae\x16\xa1\x2d\x42\x5b\x06\x6b\x15\x48\x8b\xd6\x1e\xce\x17\xb3\x2d\x4f\xb6\xc8\x6d\x31\xdb\x62\xb6\x65\xb9\x96\xdf\x5a\xe4\xb6\xc8\x6d\x91\x8b\x47\xf1\xb4\xf8\x6d\xf1\xdb\xe2\xb7\xd5\x27\x2d\x7e\x5b\x95\xd2\x72\x60\x8b\xe2\x16\xc5\x2d\x13\xb6\x28\x6e\x39\xb0\x55\x26\x2d\x8a\x5b\x4d\xd2\xaa\x91\x16\xd1\x2d\xa2\x5b\x6e\x6c\x11\xdd\x72\x63\xcb\x8d\x2d\xae\x5b\x5c\xb7\x3a\xa4\x45\x77\x8b\xee\x16\xdd\xbd\x7d\xb2\x18\x6f\x39\xb3\xd5\x24\x2d\xde\x5b\xbc\xb7\xcc\xd9\x32\x67\x7b\x82\xed\x09\xb6\x27\xd8\x9e\x60\x7b\x82\xed\xd9\xb5\xfa\xa4\x3d\xbb\xf6\xd4\xda\x53\x6b\x4f\xad\xad\x32\xed\xd9\xb5\xec\xda\x9e\x60\x7b\x82\xed\x09\xb6\x27\x38\x65\xd7\xe9\x09\x12\x29\x1d\x37\xf6\xfb\x9d\xb7\x76\xc5\x8b\xaf\xc5\x50\x63\xe8\xe0\x0d\x1d\xad\xb1\xf3\x39\x2b\x6f\xd1\xfc\xeb\x99\x75\xea\xd6\xf3\xdd\xd3\x73\xcf\x1e\xb9\x6e\x95\x68\x26\xb6\x23\xc8\x66\x1f\x51\x0d\x0f\x7d\xc8\x7b\xae\xd8\x92\xd2\x64\xe9\x83\x66\x13\xa3\x67\xbf\xa5\x62\x19\x96\xb5\x0f\xd2\xfa\xfc\x4c\xa8\xa3\x04\x74\xbf\x7f\xdd\xaa\xa6\xa7\xea\xfd\xd1\x8d\xaf\x58\x87\x3f\x91\xca\xbc\x7f\x7b\x43\x4b\x17\xd1\xd4\x45\xb5\x67\xc0\x37\xc7\xba\x99\x7c\xc0\x31\x9f\x37\xeb\xe3\xd8\x7f\x35\x29\x43\x19\x7d\x6c\x66\xb2\x1d\x91\xba\x65\xbd\x28\x9d\x37\xe3\x4c\x6d\x9e\xbd\x2b\x98\x45\xcd\xbc\x7b\x31\xa0\xcc\xbb\x77\xaf\xd2\xed\xcf\x7b\xb8\xe9\x1c\x19\x92\xec\x11\xe3\xdd\x68\x6c\x11\x45\x5c\x30\x88\x65\xa5\x6b\xef\x79\xd4\xac\x36\xa9\x52\x23\x37\xb5\x28\xfb\x18\xe3\xac\x27\xaa\x34\x84\xd1\x06\xbb\x99\x61\x4d\x37\x09\xd1\xb1\x00\x9b\xb1\x7e\x8e\x84\xfe\xe3\x0e\x8f\xfb\x44\xcc\x40\xd4\xf6\xc4\x9f\xbb\x4f\xef\x39\x6f\x6d\x10\x11\xe6\x67\xdf\xb8\x63\xda\xde\xbd\xee\x93\x2d\x7b\x8d\x51\xf7\x6e\xe3\xf6\xd6\x48\x25\x33\x45\xfd\x94\x7f\xa6\x48\x9f\x62\x7c\x8a\xf1\x69\xfd\x9d\xa2\x78\x8a\xd9\x29\x66\xa7\xd5\x76\x8a\xd9\x29\x66\xa7\x98\x9d\x76\x16\xd3\xb7\x9a\xe2\x77\x8a\xdf\x69\xfd\x9d\xe2\x77\xba\xcf\x53\x14\xcf\xe9\x2a\xcf\xce\xf7\x7f\xa6\xb8\x9e\x22\x7a\x8a\xe5\xe9\x5d\x9d\x62\x79\x5a\x9d\xdd\x9f\x67\x8a\xe5\xa9\xc2\x99\xa2\x78\x8a\xe2\x29\x7e\xa7\xf8\x9d\x22\x77\x8a\xdc\x29\x5a\xa7\x38\x9d\x22\x74\x8a\xd0\x29\x42\xa7\x08\x9d\x72\xec\x14\xa7\x53\x9c\x4e\xf5\xcf\x94\x6f\xa7\x98\x9d\xf2\xed\x14\xad\x53\xb4\xce\xdc\x49\xd1\x3a\x45\xe8\x94\x5d\x97\x08\x5d\x22\x74\xc9\xb1\x4b\x7c\x2d\x77\x7b\x89\xbb\x25\xaf\x2e\x77\x7b\xc9\xa8\x4b\xbc\x2c\xb5\xd0\x92\x57\x97\xfb\xbf\xe4\xcf\xe5\x29\xac\xca\xff\xfb\x1c\xf7\x7f\xb9\xff\xcb\xfd\x5f\xee\xff\x72\xe7\x57\xe7\x1c\xbf\xcb\xfd\x5f\xee\xff\x72\xff\x97\xfb\x2f\x8e\x9e\x25\x97\x2e\x75\xd1\x72\xff\x97\x8c\xba\xd4\x99\xcb\xb3\x90\x0d\x9e\xe5\x89\xac\x9b\x57\xe7\xb8\x77\x2f\x82\xa5\x9e\x5d\xe1\xad\x35\x1e\x7a\xfd\x22\x97\x4e\xd3\xfa\x99\x56\xdf\x3b\xc6\xf8\x7e\x3e\x51\x52\x8b\x61\x77\x9e\x05\xb3\x83\xa9\x93\x3f\x28\x1f\x8d\xba\xf9\x96\xf5\x67\xd7\xdd\x77\x37\x5b\xf3\x7e\x9f\xfc\xc6\xe8\x01\xdd\x2c\x57\xc4\x24\x67\xa4\x20\xbf\x64\x95\xbb\xd7\xae\x5b\x45\x74\xaf\x58\x0c\xdf\xfb\x3c\x70\x0c\xfa\xd6\x33\x6d\xce\xe6\xee\xbb\xd9\x2e\xdc\xe7\xb8\xbd\x69\xec\x26\x9b\x85\xe2\x7c\x62\x57\xb1\x6f\xa4\xb0\x5d\xeb\x81\x05\x91\x88\x7b\x6e\xcd\xd0\xd3\x6e\x7d\xc6\x54\x0e\x36\xaa\x1f\x5b\xfa\xb4\x35\x29\xcd\xcd\x7f\x55\xf1\xf8\xeb\xc8\x53\x2f\xfd\x8a\xc9\x3a\x6a\xae\x1b\xc5\x1b\x06\x51\x77\xaf\xda\x5d\x77\x25\x65\x4d\x78\xbf\xec\x3d\xde\xda\xaf\x99\x84\xb6\x39\x9b\x8e\x5d\xfb\xa2\x8f\xf6\xe0\xb1\x0c\xbc\x91\xd1\x48\x8e\x77\xa7\xd6\xcc\x49\x9b\x2d\x69\x6f\x5d\x94\x0d\x5d\x9d\x62\xb9\xd5\xfc\xf3\xab\xe7\x6f\xda\x53\xd4\x24\x66\x38\xd2\x19\xa0\xd2\x35\x89\x51\xaf\xc8\x0c\xee\xc8\x83\x7f\x08\x92\xef\x96\x21\x6f\x36\xd3\x83\x7d\xf4\x12\x37\xa6\xe2\xf7\xdd\xef\x39\xec\x26\xa2\xa5\x65\x24\xfe\xbe\x39\xde\x31\x51\xbc\x44\xf1\xb2\x22\x2f\xf1\xbb\x44\xee\x12\xb9\x4b\xe4\x2e\xab\xed\x12\xbf\xc9\xcc\x4b\x14\x2f\xab\xed\x12\xcb\xcb\xfb\xb3\xc4\xf2\x12\xcb\x4b\x2c\x2f\xb1\xbc\xc4\xf2\x12\xc5\x4b\x14\x2f\x51\xbc\x44\xee\x12\xb9\xd6\x9a\x67\x7d\xf9\xff\xfb\x69\x5b\xfc\x6e\xf1\xbb\xed\x62\xb6\x28\xde\xe2\x77\x8b\xdf\x2d\x5b\x6e\xf1\xbb\xc5\xef\x16\xbf\x5b\xfc\x6e\xf1\xbb\xd5\x45\x7b\xe4\x7c\x9f\xac\x3a\x92\xa5\x9f\xad\x3a\xda\xe2\x7a\x8b\xe8\x2d\xbb\x6e\x71\xbd\xc5\xf5\xf6\x2c\xb6\x58\xde\x9d\x9f\xfa\x1c\x51\xbc\x45\xf1\xf6\x36\x6e\x51\xbc\x45\xf1\x16\xc5\x5b\x14\x6f\x51\xbc\xc5\xef\x96\x4b\xb7\xba\x68\x7b\x16\xdb\xb3\xd8\x9e\xc5\xf6\x2c\xb6\xbc\xba\xd5\x48\x5b\x76\xdd\x9e\xce\x56\x23\x6d\x39\x76\x7b\x52\x5b\x8d\xb4\x3d\xa9\xad\x3a\xda\xf6\x95\xdb\x53\xdb\x9e\xda\xf6\xd4\xb6\xa7\xb6\x3d\xb5\xed\xa9\x6d\xcf\x6b\x7b\x5e\xdb\xf3\xda\xf2\xed\xf6\xa4\xb6\x27\xb5\xdf\x9c\xe9\xbb\xc9\xb7\xf4\x01\x67\xd4\xf7\xdc\xb1\x86\xee\x2d\xd8\x1c\xe9\x81\x8e\x75\x85\xdd\x41\x0d\x9a\x68\x83\x1e\xdf\xf2\x5c\x5e\x9d\xa2\x81\x51\xf0\x50\x8b\x9b\xcf\x8d\xaf\xbe\x2b\x7e\xb7\x7e\x57\xff\x2c\x1b\x18\x1b\xdd\x5d\x4f\x87\x5f\xb4\x70\xc3\x06\x6d\xb5\x71\x33\x55\x4f\x7d\xf2\xcc\xf6\xa5\xfb\x37\x9f\x18\x66\x79\xff\xdf\xfb\xb6\xc4\xaa\x72\xe2\x54\xac\x20\x23\xf3\xde\xb7\xf5\xc4\x12\xfd\xd6\x3f\x6b\xdc\x7b\xbb\x47\xf2\xb9\x5c\xa7\x0e\x8c\x39\xdd\xb4\xfe\xf6\x91\x75\xf5\xbb\xa2\x39\x38\xac\xa1\x33\xc6\x5e\x70\xe1\x09\xef\x9b\x91\xc6\x3d\xf7\x4d\x6e\xab\x58\xcb\xa8\x4f\x6c\x19\xef\xce\xb4\xa7\x1a\x66\xbd\xb7\xe6\x1f\x5f\x2c\x20\x3b\x56\xf2\xf7\x6e\xc8\x60\x43\xcd\x39\x70\x4e\xd4\xa8\xf5\xc4\x74\x46\xb7\xb3\xbd\xd5\x31\x4c\x5f\x38\x30\x63\xde\xf7\xad\x45\x62\x13\xfa\xde\xcb\x9a\x08\xa7\x58\xf8\x15\xc9\xc6\x0d\x7d\x9e\xee\xf6\x22\xd8\x4b\x02\xa3\xb6\x68\x5a\x3a\xb1\x0b\xff\x64\x59\xe3\xe6\xbe\xab\x9b\x71\x87\x5e\x77\xe7\xd8\xb5\xd4\x3c\xf4\x28\xd3\x33\x21\xb6\xdf\x26\xf3\x6a\x47\xcb\x72\xe6\x1d\x16\xe3\xa9\x7e\xf7\x97\x8a\xb7\x1d\xa7\xe3\x72\xdc\x8e\xf9\xe9\x7d\xdf\x8e\xe8\x3e\xe2\xfa\x88\xeb\x23\xae\x8f\xb8\x3e\x56\xe4\x63\x47\x73\xc4\xef\xa9\xfc\xff\x71\xf4\x39\x9e\xe6\x69\x9f\x63\x5d\x3e\x62\x59\xb5\xfc\x1c\x51\x7c\x44\xf1\x51\xf9\x1c\x91\x7b\x44\xeb\x11\xad\x2a\xe4\xc7\x9b\xf6\x78\xfa\xcf\x11\xa1\xc7\xdf\x75\xc4\xe6\xd9\xf9\x7f\xd7\xca\x9c\x47\x3c\x1e\xf1\x78\x44\xe2\x11\x89\x47\xac\x1d\x59\xf1\x88\xb5\x23\xd6\x8e\x58\x3b\x62\xed\xd8\x8f\x1c\xb1\x66\xad\x79\x8e\xbb\x77\x64\xc8\xe3\x69\x7a\xaf\x9e\x57\x6e\x7c\xdd\xc9\xd7\x9d\x7c\xdd\xbd\xd7\xdd\x7b\xd5\x36\xaf\x7b\xf8\xca\x90\xaf\x7b\xe8\xdd\x7b\x5e\xf7\xf0\x95\x1b\x5f\xb9\xf1\x95\x1b\x5f\xb9\xf1\x95\x1b\x5f\xb9\xf1\x75\x9f\x5f\xf7\xf9\x75\x9f\x5f\xf7\xf3\x95\x1b\x5f\x35\x4f\x2a\xe1\xb7\xf3\x53\x9f\x2c\x5b\xbe\xb2\xe5\xab\xe6\x79\xdd\xe7\x57\xb6\xcc\x7e\xe1\x75\xcf\x5f\x39\xf3\x75\xe7\xdf\x99\xf3\x7d\x13\x4f\x01\xc2\x58\xd6\xe8\xc6\xb0\x9a\x7a\x77\xb1\x08\xc9\x5a\x50\xb0\xb0\xc1\xe2\x70\x7d\xe9\x8a\xd7\x5d\x43\x21\xf2\xa9\xeb\x36\xc5\xcc\x55\xc9\x4e\xcc\xaf\x69\x17\x56\xac\x76\xb0\x1f\xa7\x5d\xcf\xc0\x1c\x23\x82\xd3\x31\x5b\x5f\x94\x40\x17\xc6\x02\x59\x90\x5b\x7b\x10\xcc\xbf\x6f\x08\x43\xdb\xee\x5a\x2a\xa5\x9b\x13\x1a\x37\x6c\xd3\xf7\x9c\x31\x8c\xf3\xac\x19\x34\xdc\x6f\xb2\xac\xf8\xc6\x28\xd4\x33\xce\xac\x58\xf5\xd9\x41\x60\x94\xd7\xf0\x39\xe9\xe7\x0f\xe6\xa4\xf3\x8d\x5d\xc2\xbd\x4b\x0b\x1b\x61\xe9\xda\xed\xf7\xbe\x21\xf8\x6c\x3d\x2a\xd7\xa6\x0b\x7a\xf3\x1e\xe1\x95\x5b\xcb\x31\xe7\x9a\xea\x2b\x99\xaa\xef\x3d\x47\x23\xee\x7a\xeb\xfc\x4d\x4f\xb6\xec\xd0\x6f\x6e\xb9\x3b\xb8\x61\x2f\x89\x8b\xb2\x63\x99\x64\x7f\xfa\xb0\xee\x7a\xbe\xfb\x46\x4d\xcc\xde\x96\x43\x1a\x9f\x76\xe9\xa5\x9c\x74\x05\x9f\x9b\x69\xb7\x3d\xfe\xa0\x1c\x3a\xbd\x33\x43\x7e\x4b\x5f\xd4\xa4\xf5\x5d\xf7\x8f\x1c\x7e\xb3\x25\xcb\x98\xe1\x37\x3e\x5f\x6c\x4c\xef\xba\x33\x64\x98\x6d\x2f\xc0\x12\xa8\x7f\xd6\x03\xf6\xd4\x31\x9e\xd8\xdf\xc9\x9b\xe3\x4d\x13\xbf\xaf\xf8\x55\x55\x3e\xaf\xd5\xf6\x5d\xa9\x78\xfd\xd4\xda\xfa\xee\xec\xbe\xfd\x54\x14\xbf\xf9\x1c\xf1\xfb\x5a\x37\x5f\xeb\xe6\x6b\xdd\x7c\xad\x98\xef\x9b\x2a\xd4\xb5\x6f\x7e\xea\x5a\x51\xfc\xda\xa7\xbc\x62\x59\x7d\xfb\x78\x52\xcf\x2b\x96\x3f\xf1\xfb\xa9\x6d\x3e\x51\xfc\xb9\x0f\x9f\x4c\x98\xae\xd4\x27\xa2\x3f\x11\xfd\x89\xe5\x4f\x2c\xbb\xf3\xcf\x27\x96\x3f\xb1\xfc\x89\xe2\x4f\x14\x7f\xa2\xf8\x13\xb3\x9f\x98\xfd\xe4\xc6\x4f\x6e\xfc\xec\x1c\x3f\xb9\xf1\x13\xcb\x5f\x76\xb2\xe2\xf7\x13\xbf\x9f\xc8\xfd\x64\xc8\x4f\xfc\x7e\xe2\xf7\x13\xbf\x9f\xf8\xfd\xd4\x3c\x9f\x28\xfe\x44\xf1\x27\x8a\x3f\x51\xfc\x89\xe2\xc4\xe3\xa7\xf2\xb4\x2f\x78\x3e\xcf\xe2\xb3\x97\xfc\xd4\x3f\x9f\x27\xf2\x79\x22\x9f\xec\xfa\xa9\x7f\x3e\x4f\xe7\x53\xf3\x7c\x9e\xce\xe7\xe9\x7c\x9e\xce\x27\xbb\xda\x95\x3c\x9f\x67\xf4\xc9\xb1\x9f\x6a\xe7\x53\xed\x7c\x9e\xd7\xa7\x3a\xfd\x3c\xb5\xcf\x53\xfb\x64\xe0\xcf\xb3\xf3\xbe\x79\xc7\xee\xd1\xf7\x49\x1e\xbe\xb1\xfc\xaf\x8a\xbb\xab\xed\x52\x4f\x12\x72\xaa\x22\xa1\xbf\x56\xaa\x97\x7b\x3f\x47\xc7\x48\xfd\x56\xf8\x4f\x2d\x43\x4f\x7d\xfe\x6a\xa8\xc9\x7f\x58\xe1\xb8\x4f\x61\xd0\x5a\x9d\x2a\x9c\xa9\x3f\xff\xfa\x9f\x41\xd7\x7b\xc4\x3a\x04\x8f\x68\x59\x3d\x5f\xaa\xc7\x44\x52\x6a\x8f\x58\xbd\xdf\xfb\x1f\xbb\xe1\x11\xb3\x80\x71\xef\x3c\x69\x92\x5b\x6e\xc8\x5a\xf7\xd9\xa9\x8b\xfa\xb9\x75\x45\x77\xea\xf6\xef\xe6\x43\xba\xa5\x77\xbf\x73\x73\xd4\x8f\xab\x70\x3f\x73\x9d\x9f\xe9\x67\xdd\xef\xb3\x64\x80\xd8\x89\xde\xb7\xa8\x6e\x45\xd7\x8d\xd5\x50\x86\xc0\x06\xbd\xe0\x67\x9c\xec\x38\xe4\x04\x39\xcd\x1b\xce\xfe\xb8\x07\xb6\x58\xba\x19\xd9\x69\x0e\x6b\xfa\xa0\x2d\xbb\xf0\xdf\x1a\x77\x25\x15\x72\x3f\xc1\x11\xee\x3b\x3f\x22\x4d\x7f\xf7\x59\x5d\xec\x1b\x36\x3e\x7f\x77\x32\x6d\xde\xc0\x6a\xf5\xa7\x7e\xd1\xbd\x87\x0b\x07\x7e\x75\xb2\xc4\xf6\xec\xee\xb7\xda\xe7\xd6\x1e\x43\x75\xf7\xc8\x27\x8b\x02\x75\x61\xd1\x8c\x9f\x4d\xe7\xad\xdf\x1e\xbc\xd6\x65\x7f\x37\x63\x65\x6e\x8d\x08\xda\xb2\xc7\x7d\x9f\x27\x44\x5b\xed\xd7\xfb\x1b\x79\xbb\xbc\x69\x62\xdf\xce\xf1\xf9\xc4\xbe\xbd\xd8\xf3\x89\xfd\xcf\x13\xf9\x52\x95\xa9\x85\xbe\xbb\x9a\x8f\xff\xee\x2d\x79\x6e\x4a\x18\xcf\x7d\x29\xc6\xf3\xe4\x7f\xa6\xe3\x72\x3c\x8e\xaf\xe3\xbd\xe8\xb9\xbf\x76\x3c\xc3\x55\x6e\xea\x33\x9c\x3f\x9c\x7f\x5f\xd8\x01\xac\x1e\x5e\x40\xaf\x58\x0f\x60\xb5\xe4\x7a\x8f\x7e\x57\xb9\xb6\x5c\x5b\xae\xf5\xaa\x3e\xe5\x5a\x2f\xb8\xc7\x32\x9e\x76\x55\xbb\x4a\x22\x07\x5f\x0f\xc0\xb5\x59\xdf\x36\xec\xdb\xa6\x7d\xdb\xb8\x6f\x9b\xf2\xed\xbc\x50\xa6\x7b\xdb\x78\x6f\x9b\xef\x6d\x03\xbe\x6d\xc2\xb7\x47\x96\x3b\xf0\xb5\x21\xdf\x36\xe0\xdb\x26\x7c\xdb\x60\x6f\x9b\xec\x6d\xd3\xb5\x6d\xb2\xb6\x8d\xd6\xb6\x89\xda\x36\x48\xdb\x23\x9b\x8c\xe7\x75\xce\xeb\xaa\xd7\x39\x6f\xce\xf1\x6d\x3f\x9f\xfc\x39\xff\x73\xbe\x4d\x03\x80\xd1\x00\x6d\x1b\x9e\x6d\xd3\xb3\x6d\x7c\xb6\xcd\xcf\xb6\x01\xda\x7b\xdc\x8e\xf7\x4c\x60\xe3\x18\x9e\xc5\xd0\xea\x18\x9e\xc8\xf0\x2c\x86\x67\x31\x46\xce\xbc\xdf\x41\x21\x33\x80\x90\x83\xfc\xfb\xb4\xa9\xad\x37\xa5\xca\x7b\x83\x89\xa4\xff\xe8\x7b\x9f\xe3\x90\xbf\xd6\x5d\x54\x0b\x2d\x62\x93\xb8\x47\x1e\xa9\x87\x83\xf7\x7c\xe3\xce\x77\x9f\xd7\x42\x4e\x9c\x9a\xe2\xf3\x57\xb6\x3c\xb6\x68\xe7\xdc\x05\x5c\xfb\x01\xc5\x7b\x73\x56\xf1\xaa\xde\x9a\x5e\x1b\xe6\x96\x27\x8f\xf1\x94\x3e\x79\xeb\x6e\x70\x37\x1f\x5d\xb3\xdd\x3d\xc8\x74\xcf\x5b\x16\xf5\x4e\xe2\xe7\xa6\x35\x35\x75\xe6\x4c\xab\xfe\x9e\xb9\xe3\x61\x95\xb2\xb7\xbd\x3f\x2b\x1b\xdc\xd6\x96\xbe\x29\xe1\x30\x41\x30\x64\x59\x4f\xff\xbc\xbf\x94\x2a\xf3\x7e\xab\xcf\xfb\x96\xa1\x96\x38\x8c\x29\x2b\x0a\x65\xb5\x7f\x2d\xae\x1b\xe8\x93\x87\x5e\xd9\x86\xf6\xe7\xdd\x36\xbc\x32\x09\xfe\x4f\x00\xc5\xb6\x74\x93\x4d\xe9\x18\x0d\xac\xf8\x65\x05\xa0\x40\x3a\xa3\xf3\x56\x29\x19\xe2\xfa\x52\x69\x94\xb2\x72\xf8\x81\x3c\xac\x1c\x66\x94\x7f\xdd\xed\x8a\x1f\xc8\x13\x3f\xde\x37\xa5\x07\x6d\xe0\x47\xa3\x4e\x6a\x41\xa8\x91\x12\x6a\xf1\xe0\x1a\x9a\x8e\x5c\x25\x7b\x29\x8d\x77\xe4\xcd\x03\x99\xbe\xf7\xfe\x4c\x5b\xf6\xad\x64\x5e\x9a\x3d\x43\x39\x39\x86\xc8\x1d\x22\x57\x73\x6e\x64\x91\x19\x22\x77\x54\xde\x34\xef\xb0\x3b\x3f\xdc\x49\x0b\xc2\x00\x77\x0f\x5b\xb7\x31\xda\x55\x62\x19\xf4\x3d\x2c\x20\x43\xea\x1d\x63\xba\x56\x74\x83\xc1\x47\x5a\x71\x63\xba\x4a\x74\x2b\xc7\xc6\x5d\xa0\x3a\xad\xf4\x21\x4d\x0e\x2d\xf3\x31\x44\xfa\x10\xe9\x00\xf3\x31\xc4\x38\xd8\x7c\x80\xcd\x07\xd8\x7c\x0c\x31\xae\x30\x1c\xa0\xf2\x31\xf2\x97\x9e\x34\xb4\xfc\x5e\xf1\x3e\xc4\xbb\x26\xe8\x18\xe2\x7d\x88\xf7\x21\xde\xc7\xeb\x13\xc4\x3b\xd8\x7c\x80\xcd\xc7\x48\x63\x4c\x8c\x4b\xe7\x43\x91\x3b\x40\xe8\x03\x84\x3e\x80\xe7\x43\xb3\x70\x58\xa2\x07\xf0\x7c\x54\xc0\x07\x91\x0e\x3c\x1f\xc0\xf3\x01\x30\x1f\x5a\x86\x03\x6c\x3e\x6c\x35\x06\xf0\x7c\x00\xcf\x07\xf0\x7c\x28\xff\x07\x30\x64\x28\x90\x07\xd8\x7c\x94\xa7\x03\xf6\x19\xc0\xf3\x01\x3c\x1f\xe5\x29\x54\x22\xce\x53\x30\x41\x3d\xca\x53\x00\xa4\x0f\x40\xfa\x28\x77\xbe\xdc\x79\xdb\x91\x00\x0e\x96\xe8\x7b\xf4\x99\xee\x79\x96\xe5\xda\xcf\x5d\xb4\xd3\xa4\xbf\x6f\xf8\xd0\x68\xe7\x86\xda\x64\xaa\xe6\x73\xee\x5f\xf4\x32\x50\xb8\x49\xe4\x16\x08\xd3\xa6\xe4\x29\x0b\xfe\xfd\xb7\x12\xb5\xd1\x27\x17\xf3\x11\xcf\xb1\xb6\xc1\x11\x00\x5d\x4d\xe3\x17\xcf\xcf\xab\x56\xd4\x5b\xf0\x57\xf5\x0b\xc6\x39\x9a\xac\xe7\xaf\x97\x85\x74\x6b\xeb\x3e\xe3\xc6\xf8\x91\x33\x9f\xf5\x6b\x03\x13\xab\x37\xc2\x32\xef\x1d\x5e\xdc\x81\xea\x5f\xd3\xd1\xe2\x7c\xe3\x57\xce\x69\xc3\xc0\x77\x83\xa8\xd4\x8a\x07\x29\x00\x4a\xf1\x3b\x92\xa3\x8e\x96\x70\xc5\xc3\xfc\x6e\x92\xb6\xf5\x8e\xf4\x52\x69\xf4\x56\x36\xca\xef\x2d\xaf\x6e\x0e\xbc\xbf\x11\x91\x7f\x28\x40\xb6\x01\xc1\xa5\x8c\x8d\x9d\x4a\x79\x3a\x6f\x08\x5c\x8a\xb8\xad\x90\x59\xc6\x04\x07\x07\xad\x52\xe2\x95\xfc\x46\x6b\xae\xb7\x91\xbb\x0d\xf0\xd9\xc0\xd5\x06\x88\x59\x0d\x6f\x6e\xf7\x7d\xee\x53\x9e\x06\x9b\xfa\x96\xa8\xf3\xe1\x8f\xf7\xb8\x1b\xe4\x93\x6e\x9d\x77\x9f\x97\x06\xff\xb4\x3a\x0c\x39\x73\x79\x63\x7f\xc5\x23\xda\x0b\xa9\x97\xfb\x74\xc6\xcd\xa5\xf7\x9c\xb4\x16\x0a\xd1\xb8\x15\x4a\x31\x68\x38\xa8\x7c\xa1\xd5\x8c\xb2\x16\x57\xb6\x9b\xd6\x62\xa4\x8c\x51\x3b\x3f\xf5\x76\x89\x5c\x00\xc2\x28\xf1\x8b\xa6\x31\xd0\x34\x46\x89\xe2\x12\xc5\x36\x8b\x03\xf0\x3e\x00\xef\x03\xf0\x3e\x00\xef\x03\xf0\x3e\x80\xa5\xe3\x7e\x93\x7b\x74\x95\xb8\x06\xb9\x8f\x12\xcb\x60\xf6\x01\x66\x1f\x95\x28\xb6\x76\x83\x22\x07\xb0\x7d\x00\xdb\x07\xb0\x7d\x00\xdb\x07\xb0\x7d\x68\x6b\x8d\x40\x8b\x20\xf7\x01\x72\x1f\x20\xf7\x01\x72\x1f\xc0\xf6\xd1\x56\x73\x90\xfb\x00\xb9\x0f\x90\xfb\xb0\xe2\x0c\x90\x3b\x38\xf1\x1e\xfd\x2e\x99\x19\xe4\x3e\x3a\xe5\xbf\xcc\xdc\x95\xab\xfc\x2e\x6f\x63\x56\x46\xf0\x7b\x56\xfc\xa1\x21\x3a\x40\xf1\x03\x04\x3a\x40\xf1\x5a\xaa\xf7\xe8\x5a\x99\x01\x2c\x1f\xd8\x61\xb4\xea\x0b\x44\x3f\xbc\x45\xc3\x46\x7f\x80\xe8\x47\xab\xb2\xc0\xf2\x03\x2c\x3f\x5a\x06\x06\xc8\x0f\xc0\xec\x00\xbf\x0f\xc0\xfb\x00\xbc\x0f\xc0\xfb\x68\xcf\x11\xf0\x3e\x00\xef\x03\xf0\x3e\x80\xed\xde\xb1\x7b\xf4\xff\x6f\x36\x3a\x3e\xc7\x33\xd2\x4c\x1d\x40\xf5\xcd\x80\x66\xcc\xfb\xdb\x4b\x6b\x7f\x18\xbc\x7b\x38\xd0\x86\xea\x18\x2f\xd0\x13\x30\xdc\x26\x6c\x56\x9a\xbb\x21\x27\x2e\xab\xbf\x9c\x60\x0d\xfa\x65\x2a\xb4\x4a\x42\x05\xf5\xfc\xbc\xa4\x6e\xac\x8d\x14\xe9\x9a\x5b\x0d\x88\xdb\xb1\xc8\xb1\xe2\x93\x73\x2a\xb4\x97\xaa\xc4\xdd\xb4\x99\x7b\xee\x5d\x2d\x2e\xd9\xcb\x5a\x16\xc7\xce\x42\x6e\x0d\x19\x6a\x9d\x7b\x1f\x6a\xa6\x4a\xb9\xdf\xa1\xcf\x7d\x93\xe3\x0e\x37\xee\xea\xdf\xe4\xb4\xee\xe7\xdc\x58\xf6\xc6\x2e\x04\xfc\x91\xd6\x0b\x7a\xec\xac\xf8\x9c\x37\x90\xed\x7e\xdb\x9e\xda\x4b\x4c\x64\x86\x9c\x83\x98\x5c\xd9\x34\x94\x31\x68\x5a\xa0\x45\x19\xb2\x90\x04\x7b\x20\xbf\x17\xd2\x3d\xea\x56\x4d\xee\x91\x53\x63\x63\x20\x98\x3f\x2c\xa5\x7a\x81\x04\xdd\x8d\x69\x20\xb2\x35\x1d\x5f\xa4\xb6\xef\x47\x97\xfb\xb9\x84\xa5\xc9\xf4\x6a\xf9\x0c\xad\xdf\xe1\x6f\x6f\xbf\xeb\xb8\xdb\x2a\xb7\x11\x6a\x80\xfc\x76\xaf\x5d\xb6\xe3\x85\x96\xde\xc6\xbe\x17\xbb\x1c\x3a\xcc\xbd\x8d\x10\x4d\x6d\x6f\xf4\xea\x1e\xd9\x66\x71\x24\x06\x56\xd7\x46\xdf\x18\x88\x18\x03\x11\x63\xb4\xb8\x46\xbe\x18\xd3\xfb\x33\xc5\x35\x02\xc5\x00\xa7\x8f\x29\x96\x81\xea\x63\x8a\xe5\xc0\x8f\x53\x4d\x3e\xc5\xf2\x14\xcb\x5a\x4a\x63\x8a\xe5\x29\x96\x6d\x55\x87\x8c\x3a\x64\xe3\x31\x45\xf4\x14\xcb\xb6\xc2\x03\x7c\x37\xe4\xed\x01\x90\x1f\x00\xf9\x31\xb3\xb2\x88\x65\xb0\xfc\x00\xcb\x0f\xb0\xfc\x00\xc8\x8f\x29\x8a\xc1\xf2\x03\x2c\x3f\xc0\xf2\x03\x2c\x1f\x48\x61\xcc\xd0\x2b\xac\xf2\x60\xf9\x31\x45\x31\x70\x7e\x58\x8b\x07\x88\x7e\x78\x4f\xf2\x86\x27\xa6\x06\x88\x7e\x58\x01\x07\x70\x1e\x2c\x79\x8f\x3e\x47\xae\x06\xd1\x0f\x30\xc8\x00\xd1\xff\xea\xc9\x29\x4b\x83\xeb\xc7\x14\xe3\x40\xfb\x31\x65\x69\xd0\xfd\xc8\x26\x1e\x74\x3f\xc0\xf5\x03\x5c\x9f\xfa\x61\x80\xe8\xc7\xb4\xc3\x9a\x62\x3f\x50\xcc\xf4\x04\x67\x00\x0d\x39\x19\x38\x3f\x56\x32\x80\x9c\x0c\xa2\x4f\xf3\x72\x00\xe7\xc7\x92\x81\x57\xa0\x63\x4f\x0d\x2c\x3f\x00\xb6\x63\x8d\xbc\x33\xce\x49\xb5\x2f\xeb\x02\xe7\xc7\xf2\x44\xe2\xfe\xca\x52\xed\x45\x67\x1e\x48\xa0\xf3\xcb\x8e\x60\x06\x82\xb6\x83\x08\x6c\xab\x85\xe3\xbe\x1d\x40\xd3\xb6\x3b\x6e\x84\xe8\x66\xfe\x35\x55\x77\x8d\x70\xba\x59\x3b\x65\x3f\xe8\xdd\xbe\x15\xc8\x00\x89\xdf\xb8\x48\xcd\xaf\x22\x8d\xab\x30\x03\x82\x6e\xf5\xf3\x16\x5f\xed\x6e\xac\x93\xbc\xb7\xdf\x9b\x61\x86\x0a\x04\x74\xc6\x95\xb4\x6e\x0e\xa9\xb2\x07\x5f\x20\xa6\x65\x64\xe4\xe8\x00\xbc\x4f\x08\x1d\x71\x05\xbf\xbf\x77\xc6\x36\xeb\xd3\x8a\x26\x9c\xb0\x57\x9e\xe0\x9b\x96\xf9\xf2\xcd\xed\x19\x77\xea\xea\xa9\x86\x91\x9f\x35\x72\xec\x83\xd2\x37\xe0\x5d\xdf\xa4\x6e\xee\xb5\x04\x79\xee\xf7\xe9\xb8\x80\xb2\xbe\xda\x79\xc7\x02\xe6\xa4\xb5\xbc\xa7\xbb\xa4\xc5\x0b\xd8\x1c\xe8\xff\x0b\xb8\xca\xb7\xfc\xae\xd1\x32\xc6\xfd\xb6\x83\x63\xa7\xc1\xd6\x5a\x86\x9e\xd7\xdd\x49\xcd\x67\xdd\x28\x6e\x5d\x8e\xc7\xfd\xcf\xbe\x9b\xfe\x7f\xb7\x41\x9f\xbd\xd1\xa9\xec\xe9\x38\x48\x77\xda\xe4\x71\xa1\x7f\x9e\x64\x51\xd5\x20\x87\xe4\xad\xe6\xd9\xed\x3e\x6b\x7a\x6d\x9e\xd8\x53\x0d\xaf\xba\xbb\x6f\x0e\xba\x81\x98\x45\xe2\x18\xe8\x1b\x43\xf6\x93\xe5\xfa\x47\x83\x5a\x21\x26\x88\x50\x15\xda\x40\xd9\x18\x20\x82\x81\xb2\x31\x96\x3a\x7c\x59\x7f\xd1\x37\x06\x10\x7e\x80\xdf\xc7\xda\x59\x07\xfd\x54\x84\x2e\x6b\x2e\xf8\x7d\x00\xde\x47\x9e\x20\x70\x6f\x00\xd8\x87\x3d\xe6\x50\xf7\x0e\xd0\xfa\x00\xad\x8f\x25\xfa\x96\xe8\x5b\x76\x3d\x4b\x7f\x03\xe4\x3e\x40\xee\x03\xe4\x3e\x96\x8c\xba\xf2\xf7\xca\xab\x80\xf7\x01\x6c\x1f\xda\x84\x63\x8b\x4a\xdd\x89\x01\x16\x18\x40\xc2\x01\x72\x1f\x40\xdd\x01\x66\x1f\x00\xc9\x01\x66\x1f\x60\xf6\x01\x60\x1f\x5b\x54\x6e\x4f\x1c\xd8\x3e\xb6\xfc\x09\x40\x1e\x20\xf7\xe1\xad\x18\x5b\xe6\xdc\x81\x08\xe4\x4c\xf0\xfb\x00\xbc\x0f\x6f\xd4\x00\xbc\x0f\xc0\xfb\xd8\xee\x3f\xe0\x7d\x00\xde\xc5\x4b\x8f\xed\xfe\x6b\x28\x8e\xed\xfe\x83\xd3\x07\x38\x7d\x80\xd3\x07\x20\x7d\x00\xd2\xc7\x56\xed\x00\xd2\x07\x20\x7d\x80\xd0\x07\x08\x7d\x80\xd0\x07\x08\x7d\x80\xd0\x87\xfd\xf8\xc8\x9a\x05\x48\x1f\x3b\xb0\xb6\x27\x62\xd0\x9c\x48\x6e\x17\x50\x65\x1b\x57\x9d\x2c\x17\x97\x01\x2f\xbb\xe3\x5b\x7b\xaf\xbf\x09\x94\xa8\x90\x16\x37\x59\x8e\xc7\x10\x5e\x23\x12\x4e\x86\x62\x13\x9d\xcd\x28\x43\xd1\xea\xbf\xd9\xe3\x73\xe6\x27\x42\xb5\x63\x27\xc0\xfc\xe6\xcf\x0e\xb9\x86\xb3\x7a\xa2\x75\xcb\x33\xfb\xee\xe5\xef\xee\x43\x43\xf4\xde\x87\xd6\x45\xf9\x77\x97\x7c\x26\xfb\x36\xe4\xe5\x6a\x56\x5f\x75\xb3\xe5\x04\xba\x56\x56\x84\x29\x57\x93\x31\xe8\xa5\xdd\x5b\xd9\xe3\x7c\xbf\xfd\xe3\xcd\x5a\xf6\x05\xf1\x91\x1e\xfe\xe7\xe3\x53\x4a\x1e\xaf\x9a\x18\x09\x47\x80\x5e\x4c\x1e\x1f\x86\x92\xfc\x14\x6a\xf2\x88\xde\x48\x04\x81\x01\x1b\x50\xff\xbc\xf7\x8d\x5d\xd9\x71\xa0\x57\x50\xe8\xeb\x22\xa8\x30\xe3\x3d\x7b\xee\x3b\xb0\xd9\x1d\x82\x43\x6b\xda\xfb\xef\xdf\x90\xdf\x7d\x93\x17\xd3\xba\x0a\x6d\x56\x06\x98\xb7\x96\x98\x01\x85\xde\x54\xaa\x28\x8a\xdf\x99\xb2\x6e\xa8\xb8\x15\x8a\x25\x68\xfd\x05\x6d\x75\xee\xaa\xbf\x51\x9d\x19\xaf\x60\x80\xe4\x46\x1a\x7a\x75\x45\x0e\x43\xc9\xd2\xa7\xf2\x94\x7b\xe9\x64\x6e\x03\xc4\xe3\x24\xd6\xc4\x32\xda\xc5\x40\xbb\x18\x5b\x14\x6f\x51\xbc\xc5\x2f\x38\x7d\x6c\xf1\x0b\x54\x1f\x40\xf5\x71\x44\xae\xfd\xac\x3d\xe6\x3d\xb6\x63\x32\xf3\x71\x74\xa6\x28\x06\xb0\x0f\x7f\xe3\x00\xb0\x0f\x00\xfb\x00\xb0\x8f\x23\x8a\x8f\x28\x46\x89\x1a\x20\xf7\x01\x72\x1f\x20\xf7\x01\x6c\x1f\xc0\xf6\x01\x6c\x1f\xc0\xf6\x71\x54\x3e\x47\x14\x03\xde\x07\xc8\x7d\x1c\x95\xcf\xe9\x9c\xef\xf3\xc5\x32\x91\xb7\x01\x9c\x1c\x01\x45\x8f\x88\xb6\x26\x0e\x4f\x73\x9c\x19\x30\xc1\x6f\x11\xd7\xc0\xf9\xd0\x40\xc6\x51\xf9\x1c\x19\x15\x44\x3f\xac\x0e\x03\x50\x3f\x00\xf5\xe3\x64\x85\x92\x63\xc1\xf5\xe3\xec\x9c\xef\x93\xc5\x3e\xd0\x7e\x1c\xb5\x10\xe8\x7e\xa4\xae\x46\xe6\x1a\xc8\x5c\x43\x85\x3f\x4e\xa0\x0c\xb1\x0f\xd8\x1f\x47\x15\x04\xec\x1d\x20\xfd\x01\xd2\x1f\xc7\x73\x04\xec\x8f\xe3\x39\xaa\xb4\x07\x78\x7f\x80\xf7\x07\x78\x7f\x1c\x4f\x13\xc8\x3f\x02\x56\xd8\x8f\x0f\x50\xff\x78\x3d\x53\x80\xff\x00\xf8\x8f\x90\x47\x5e\xf9\x19\xe0\x1f\x21\x90\x9e\x7c\x83\x99\xc3\x1a\x46\x2c\x10\x50\xb5\x8a\x8e\x20\xca\xdd\x59\xdc\x68\xfd\xaf\xb1\x5d\xef\x4b\x6a\x1a\x76\xc4\xea\x9e\x87\x6a\xd3\x1e\x82\x6a\xd4\x78\x6d\x3b\x2c\x14\xa5\x6c\x5f\xc1\xc0\x6e\x81\x5c\x9b\x7b\xea\x7a\x34\x5a\x62\xe6\x6d\xdb\x64\x46\xab\x4c\x7f\xd5\x2f\x11\x2a\x24\x5b\x0b\xa7\x94\x5a\xa5\x05\xb8\xcc\x13\x9a\x4d\xed\xe3\xb7\x17\xd4\x33\xcc\x42\xc5\x63\xbd\xf8\x3a\x83\x8e\xc9\xc0\xbb\xed\xbd\xf0\x72\x66\x96\xf4\xb4\x0f\xb7\xa2\x29\x8d\x64\x7f\xd1\x8f\x4d\xeb\xb7\x9c\x6c\x2e\xa5\xb7\xca\x5f\x7a\x83\x18\x6f\x98\x1e\xef\x0c\xff\x72\xf3\x3b\xad\xe7\x7c\x7f\xf3\xc7\xd3\xe2\x65\x3a\x7f\x8a\x51\x5a\xbf\x14\x46\x06\xab\xef\x87\xf3\xea\xd1\x92\x9c\x4a\xb3\x89\xd7\xb5\x29\x32\x8c\x18\xa8\x43\x88\x71\x89\xe6\x43\xb9\xe9\xf8\xab\xdb\x66\x6e\x36\x9e\x25\x25\xac\x61\xd2\xf8\x91\xbc\xbf\xa0\x71\x5a\xe3\xb6\x3b\xf5\x50\x86\x1a\x74\x9d\x2c\x9e\x65\x4a\xf0\x6e\xf5\xe8\x1a\xdc\x07\x5e\x5e\xdb\x7e\xb5\x73\xe0\x4f\x33\x0a\x29\x38\xee\x23\xf6\xcc\x35\xf3\xe2\x78\xb9\xa4\x01\xf3\x57\x03\x53\x64\x58\x22\x06\xa6\xc8\xd0\x00\x1b\x58\x11\x03\x53\x64\xd8\x4c\x0f\x1c\x91\x81\x23\x32\x70\x44\x06\x8e\xc8\x00\x2f\x8c\x57\x7a\x78\xa5\x07\x89\x70\xbc\x92\x04\x06\xc9\xb0\xd9\x1d\x61\x03\x60\x90\x0c\x0c\x92\x81\x41\x32\x30\x48\x06\x06\xc9\x78\xa5\x0a\x3c\x92\x81\x47\x32\xf0\x48\x86\x66\xf9\x78\xa5\x8d\x37\xb8\x63\xfe\x22\x69\x03\x9b\x64\x58\x1e\x07\x36\xc9\xc0\x80\x1c\x98\x01\x03\x33\x60\x60\x06\x8c\x57\x51\xa6\xd9\x9f\x2d\xfb\xc0\x12\x18\xaf\x14\xf2\x4a\x21\x29\x93\x71\x05\xc6\x2b\x85\x60\x0c\x0c\x2c\x81\xf1\x4a\x1b\xaf\xb4\x81\x31\x30\xde\x6c\xc7\x15\x0e\xb8\xe0\x03\x87\x60\xe0\x10\x0c\x4d\xfd\x81\x49\x30\xc0\x11\xe3\x55\x38\xe0\x13\x8c\x57\x0a\xc1\x2a\x18\x5a\xa1\xc3\x9b\x33\xf0\x09\x06\x3e\xc1\xc0\x24\xf0\x9e\x74\x62\x73\x78\xd6\x03\x87\x60\x7c\x61\x95\x49\xf9\x5a\xaa\xc3\xc6\x1d\x1a\x7d\x8f\xed\xe8\x1c\xcf\x57\x34\x0d\xdb\x8e\x81\x3d\x30\xb0\x07\x86\xc5\x7c\x60\x0f\x0c\xec\x81\xf1\x79\x9a\x69\xa0\x7e\xe1\x91\xdc\x74\x32\xf9\x88\x4a\x4b\xb5\x08\x78\x9a\xbb\x2b\x33\x57\xb5\x4c\xd0\x35\x9d\x35\x0b\x4b\x8d\xf8\xac\x2e\x50\x4f\x66\x3c\x40\x40\x23\xa5\xba\xf6\x21\x6e\x5c\x9d\x1b\x95\x37\xee\x5e\x6f\xf8\x86\x07\xdf\xec\xc1\x25\x95\x86\x54\x51\x48\xad\x6d\x89\xdb\xde\x43\xda\xf8\xb5\x34\x66\x26\x35\x93\x24\xd7\x67\xdc\xbb\xba\x64\x27\x26\x2d\xf5\xe2\x0b\x36\x31\xd3\x09\x34\xc0\xab\xab\xf9\x3d\x37\x1b\x84\xd9\x89\x53\x32\x53\x60\xfe\x80\x2c\xc5\x85\x0d\xd6\x7c\x35\xa4\x9f\xfb\xb7\x6f\x0c\xbf\x19\xe4\x58\x49\xb5\x62\x3c\x8f\x4f\xb0\x34\x33\x36\x2d\x95\x49\xc7\x6d\x2a\x30\x27\xa5\xb6\xd2\x0e\xa7\x6d\x51\x93\x7a\xcb\x64\xbb\xae\xad\x58\x93\x16\x89\x4d\xdb\xcd\x4e\x01\x19\x14\x6b\xac\xee\xa1\xf2\x66\xb6\x7b\x59\xee\x96\x18\xe4\xc2\xd0\x8d\x6d\xf9\xdb\x6e\xe2\x38\x46\xc9\xe5\xc4\xfe\x5c\x73\x6b\xe5\x13\x4c\x5f\x07\x1d\x67\x7a\xd6\xed\x79\xd1\xb1\xac\x19\x26\x93\x62\x79\x07\x38\x7a\x02\x02\x60\x7b\x9b\xd9\xe0\x65\x50\x3b\xb3\x0a\x4f\x5a\xbf\x16\xba\xca\x46\x41\x5c\xe3\x9a\x0c\x5c\x93\x81\x6b\x32\x70\x4d\x06\xae\xc9\xc0\x32\x19\x61\x12\x80\x16\x07\x1e\xc9\xc0\x23\x19\x9f\xf8\xc5\x26\x19\x36\xac\x03\x9b\x64\x7c\xe2\xf7\xcb\x46\x53\xcc\x62\x90\x0c\x0c\x92\x81\x41\x32\xc0\x1d\xc3\xd3\x1c\x18\x24\x03\x83\x64\x60\x90\x0c\x0c\x92\xa1\x65\x35\xac\x14\x03\x83\x64\x80\x28\x07\x06\xc9\xf8\x2c\xf5\x78\x24\x03\x83\x64\x60\x90\x0c\x0c\x92\x81\x41\x32\x30\x48\x06\x36\xc0\xc0\x06\x18\xd8\x00\x23\x9c\x6c\x3c\x80\x81\x07\x30\xf0\x00\x86\x96\xde\xc0\x03\xa8\xbb\x20\x17\x1e\x40\xe1\x01\x14\x1e\x40\xe1\x01\x14\x1e\x40\xa1\xbb\x17\xd4\xa4\xb0\x01\x0a\x1b\xa0\xec\x90\xcb\xb8\x7a\x61\x03\x14\x36\x40\x61\x03\x14\x36\x40\x61\x03\x94\x5d\x7d\x61\x03\x14\x36\x40\x61\x03\x14\x36\x40\xe9\x77\x14\x36\x40\x41\x83\x0a\x1b\xa0\xb0\x01\xea\x81\x40\x07\x23\xd1\x8f\x28\x9c\x80\xc2\x06\x28\x28\x66\x19\x96\x29\xcc\x80\x32\xd8\x5e\x30\xe3\x4a\x47\x15\x4b\xa0\xf0\x03\x0a\x46\x52\x68\xa8\x65\xbc\xbd\x8c\xb7\x57\x3a\x0e\xb8\x02\x85\x2b\x50\x6a\xeb\xc2\x15\x28\x98\x13\x5b\x80\xde\xfa\x8f\x0c\x77\x7b\xdd\x1a\x71\x1a\x27\xa9\xce\xdf\xa5\x0f\xc5\x64\xe3\x2e\x98\x6d\x20\xe8\xdc\xba\x1c\x32\x9d\x0a\x12\xdd\x91\x2a\x75\xe9\xac\xdd\xbd\x47\x06\x7e\x6f\x99\x40\xb6\x68\xd0\x2c\x6e\x08\x1c\xc7\xa0\x1b\xca\x8f\xbe\xe7\x83\xb2\x32\xed\xd0\x6e\x22\x7c\x42\xa6\xbd\x01\x8d\x5a\x76\x77\x50\x30\xe3\x0e\xf3\x60\xd9\x27\xbc\xb0\xf3\x47\x08\xea\x8d\x86\xd2\xff\xa5\x13\xb4\x04\xb1\xde\xd3\xfd\xe9\xb4\x5b\x78\xe7\xdd\x39\x14\xca\x56\xa5\x8f\x23\xf9\x79\x46\xb5\x17\xaa\x24\x39\x17\xc3\x7a\xb7\xda\x43\xbd\x46\xaa\xb1\xdf\xfe\x7e\x94\x9e\x15\xa1\x83\xba\xfb\xc6\x7b\x4e\x06\x4c\xc6\x6f\x30\x6a\xe4\xd3\x90\xae\xef\xdd\x68\xda\xce\x27\xe3\x30\x13\xdd\x9a\xed\x74\x1b\x0a\x18\x46\x57\xde\x18\x45\x3f\x4f\xfe\xea\x47\xcf\x57\xa1\x77\x3f\xb3\x2c\x4a\x8c\x50\xba\xf5\xa3\x37\x34\x6b\xef\xd0\x56\xbf\x90\x45\x6f\x9a\xd1\x41\x5e\xe9\x84\x6e\xf7\x70\x86\x0a\x98\xee\xb3\x65\xc4\xff\x1f\xcc\x0c\x54\xa5\xde\xf0\x8f\xad\xa7\x66\xe0\xa5\xdf\x20\xbe\x08\xcf\x19\x70\x2e\xfc\x92\xc2\x2f\x29\xfc\x92\x0a\x8a\x40\x24\xa1\xb0\x4c\x0a\xcb\xa4\x88\x24\x14\x91\x84\xc2\x38\x29\xfb\x34\x64\xd1\x7b\x74\xad\x5e\x18\xbc\xad\x60\x12\xa5\x3f\x58\x12\x5e\xe1\xa6\x94\x6e\x63\x61\xa8\x14\x86\x4a\x11\x4f\x28\x3c\x15\xa5\x65\x17\x09\x85\xc2\x59\x29\x9c\x95\xc2\x59\x29\x9c\x95\x22\xa4\x50\x98\x2b\xf5\x78\xe2\xca\xd5\xc2\x5f\x29\xfc\x95\xc2\x5f\x29\xfc\x95\xc2\x5f\x29\xfc\x95\x7a\xec\xc9\x8d\xc9\x17\x2e\xcb\xcd\xd2\x8e\xf7\xda\x0c\x00\x62\xb4\x14\x46\x4b\xe9\x60\x96\x9e\xe6\x7d\x41\x1d\xb7\xe3\x71\x7c\x1d\x5d\x2b\xcf\xe0\xb8\x14\x8e\x4b\x19\x33\x2c\x4c\x97\xc2\x74\x29\xa8\x6d\x41\x11\x0a\xd3\xa5\x30\x5d\x0a\xee\x58\x58\x0b\x85\xb5\x50\x58\x0b\x85\xb5\x50\x58\x0b\x85\xb5\x50\x58\x0b\x65\xb1\x2a\xdc\x85\xc2\x5d\x28\xdc\x85\x0a\xa6\x62\x09\x2a\xdc\x85\xc2\x5d\x28\xdc\x85\x0a\xf9\x2d\xb4\x31\xdc\x85\xc2\x5d\x28\x65\x48\x61\x30\x94\xb7\xa5\xa0\x47\x15\xfa\x1c\x06\x43\xd9\xab\x57\x86\x01\x2d\x8c\x35\x94\x33\x30\xe6\xb6\xff\x0f\xf7\x88\xf5\x47\xbd\x08\x72\x2f\xa3\xfa\xf7\x41\x08\x64\x39\x8f\x94\x5e\xad\x28\x68\x78\xed\x21\x57\x12\x41\xf3\xc7\x33\xed\x2f\xbd\xa1\x32\x7a\xa9\xe4\x49\xb6\x81\x80\x9e\x0c\x81\xda\x30\xcd\x61\x9b\xf5\x86\x30\x76\x6c\xb0\x76\x46\x3e\x11\xf0\xee\x9d\x39\xc8\xcc\xe7\xfb\xed\xf1\xee\xc6\xe2\xc1\x5c\x41\x09\x5e\xfb\x11\x17\x19\x6f\xb9\x1b\x8b\x0c\xc0\xf6\xb3\x62\xdc\x7e\x0b\x07\xa8\x0c\x7b\x90\xc6\xc5\xe9\xfa\xe5\x10\x25\x80\x05\xf9\xe0\x25\x6c\x44\xfa\x9d\xc2\x2a\x18\x80\x02\x70\x21\x69\x73\xd6\xbc\x49\x31\xbc\x07\x63\x1a\x8f\xbf\x45\x7f\xc7\xc8\xc0\x20\x8c\xd0\x33\x23\x96\x77\x3b\xb5\xc9\xe7\xae\x8c\x13\xa6\xfb\x29\xe3\x19\xd6\x6e\x43\xb5\xcd\x59\xb3\x2a\x5c\x25\xef\xe7\xc4\x7b\xe8\x8c\x2e\x3e\x36\x43\xb6\x56\xcf\x80\xee\x7b\x0f\x57\xf0\xec\x1d\x9a\xf7\xaf\xd3\x1a\xa4\xff\xde\xe7\x7f\xa3\x19\xb2\x31\x64\x2b\x3d\xeb\x6c\x8b\x8d\xba\xd8\xfc\xf5\x52\xb0\x6f\xdb\x1a\x0e\xb2\xb5\x7f\x2c\x93\x47\x1f\x27\x1b\x5f\xa3\x1f\x59\x3d\x21\x79\x85\xf5\x52\x70\xb5\xc2\x7d\x29\xdc\x97\x6c\x7c\x4b\x29\x57\xb8\x2f\x45\x32\xe2\xee\xe9\x1c\x5d\xeb\x29\xf8\xed\x95\x6f\x85\x15\x51\xa4\x24\x0a\x3f\xa6\xfc\xa5\x85\x25\x53\x58\x32\x85\x25\x53\x58\x32\x65\x04\xac\x6c\x4c\x6f\x0d\x7c\x8f\x72\x0e\x89\x89\xc2\x9b\x29\xbc\x99\x82\x52\x14\xd1\x89\x52\x26\x97\xbf\xae\x70\x68\x8a\x00\x45\xc9\xab\xa5\x9b\x56\x43\xce\xc1\xa7\x29\x7c\x9a\xc2\xa7\xa9\x90\xc6\xf1\x69\x0a\x9f\xa6\x0c\xdf\x15\x56\x4d\x61\xd5\x14\x56\x4d\xd9\x76\x7b\x3f\xef\x71\x39\x6e\xc7\xe3\xf8\x3a\xba\x76\xb8\x56\xe6\xc1\x63\xa8\x92\x79\x92\xdb\x95\x96\x45\xbc\xa2\x70\x71\x2a\x7d\x7c\x5c\x9c\x82\xd6\x14\x2e\x4e\xe1\xe2\x14\xec\xb6\xbc\x99\x85\x91\x53\x19\x4f\x26\x67\x51\x78\x39\x55\xf2\x0f\x76\x4e\x61\xe7\x54\xc9\x3f\xa2\xb2\xc8\x5c\xdc\x3d\x88\xa3\x6b\xe5\x1f\xab\x7c\x61\xed\x14\xd6\x4e\xa5\x66\x80\x2d\x15\xf9\x8b\xb0\x43\xaa\xe4\x1f\x5b\xf0\xc2\xe3\x29\x3c\x9e\xf2\x3e\x97\xa2\xbe\xa1\x47\x61\x41\xf5\xce\xda\x6a\x48\xea\xdf\x58\xe8\x5d\x49\x0b\x53\xe7\xe6\xd8\x5b\xee\x29\xd2\x53\xb4\x76\x36\x70\xd0\x1a\x45\x7d\x62\x41\x3f\x68\xbb\x03\xcc\xbe\x9a\x25\x77\x15\x21\xd6\xf5\x6d\x83\xcc\x77\xbb\x30\x21\x8b\x8f\x77\x98\x91\x77\x0f\x23\xc0\x43\x14\x3f\xc6\x2e\xde\x6c\xb5\xd1\x71\x97\x61\xc0\xd1\x19\xa3\x8e\xf4\xf4\x7d\x5b\x78\x8b\x16\x99\xa3\xe2\x7c\x5c\x11\x23\x3a\x15\x6c\x7e\xe8\x89\xdf\x9f\x6e\x6b\x5c\xe3\x85\x34\xde\x89\xce\x7e\xf5\xfe\x09\xbc\xdc\x4a\x43\xe5\xc0\x43\xb7\xbe\x0c\xe0\xeb\x68\xb7\x81\x3e\x12\xd3\xdd\xe7\x6e\xa4\x52\x27\x8c\xdf\x10\x9f\x86\x8a\xb1\x6e\x72\x1f\xf7\xe3\x33\x0c\xae\x89\xb5\x52\xbf\x3d\x7a\xcd\x0b\x32\x74\xb3\xdc\xcd\x69\xb7\x96\x08\x22\x68\xc0\x13\xab\x46\xc7\x96\x1b\x71\x85\x19\xb9\x66\x85\x8b\x23\xe7\x1b\x4e\x59\x23\x23\xc6\x36\xbb\x22\x77\xca\x90\x50\xae\x45\x3e\x6e\x65\xdc\x63\xda\x42\x45\x00\xdc\x5b\xb4\x0c\x6b\x84\xde\xbf\x74\x1e\xd9\xe5\xdd\x97\xae\xb5\xbb\x60\x7e\x0b\x4a\xa7\x3d\x66\xb3\xdb\x6f\xa2\xc9\x9a\x45\x56\xa5\x30\xc0\x0a\x03\xac\x88\xab\x14\x1e\x18\xf2\xf6\x3d\x7a\xdf\xe4\x9f\x92\x7f\x30\x7b\x8a\xe8\x4a\xe1\xf7\x54\xc9\x3f\x6a\xaa\x74\xf3\x8b\xf4\x4a\xe1\xfa\xe8\x65\x77\xd9\xac\x17\xae\x0f\xc3\x81\x66\x38\xd0\x0c\x07\x9a\xe1\x40\x33\x1c\x68\x86\x03\xcd\x70\xa0\x19\x0e\x34\xc3\x81\x66\x38\xd0\x0c\x07\x9a\xe1\xc0\x3d\xba\x56\x2e\xc2\xf8\x29\x82\x1b\xbc\x9c\xef\xd1\xb5\x72\x11\x2e\x66\x19\x6d\x2e\x1b\x4d\x66\x0e\xcd\xb2\xe0\x1e\x5d\x2b\x17\x61\x05\x15\x56\x50\x61\x05\x15\x56\x50\x05\x3f\xc0\x0d\x2a\xdc\xa0\xc2\x0d\xe2\x9c\x72\x8f\xc7\xf1\x75\x74\xad\x5c\x84\x1b\x54\xb8\x41\x45\x8e\xa3\x30\x84\x0a\x37\x28\xb8\x02\xbf\x95\x7b\x74\x95\x2c\x84\x1b\xc4\x3e\xa3\x2b\xb6\x26\xb8\x41\xec\x33\x9a\x71\x46\x33\xce\x68\x43\x4f\xf7\xe8\xb7\xc8\x3c\x58\x41\x36\xd9\xf7\xe8\x2a\x99\x07\x2b\xa8\xb0\x82\x0a\x2b\xa8\xb0\x82\x4a\x55\x5c\x56\xe1\xbc\x39\x95\x16\x23\x6e\x50\x98\x2e\x05\xa9\x2d\x22\x1e\x77\xfb\x81\x49\x06\xc5\x5f\x56\xde\x7b\x27\x8f\x6a\x33\xe2\xd8\x1a\x51\x77\x39\xca\x98\xb3\x08\xd5\xf0\x68\x02\x11\xeb\xbe\xa5\xfb\x53\x5d\x90\x65\x9b\x44\x08\x31\xda\x8b\x3d\x4a\xe1\x50\x16\x7b\x8a\x7e\x4e\x24\x0b\x9c\x79\x73\x60\xcd\xdf\x16\x1f\x06\xac\x95\xb2\xc2\x05\x51\x33\x70\x22\xef\xb2\xf2\xf2\xa2\x2e\x6e\xc4\xfd\x6a\x48\x73\xa2\xed\x26\xa7\xbf\x8d\x05\xed\x0c\xf2\x7c\x46\x17\x9f\xe0\xdc\x5a\xcb\x3e\x01\x56\x57\x10\xf1\x7a\xa1\xf8\xc6\xe5\x0a\x43\xfd\xde\x24\x63\x56\xee\xea\xdd\x77\x94\x76\xe6\x4d\xe1\x5a\xbf\x9f\xc1\x34\x4c\xdc\xf5\x63\x56\x4d\x2d\x9f\x6d\x3c\xc1\xdd\xb8\x9f\xb6\x0a\x67\xda\xdf\xb8\x8c\xc1\xb6\x66\xf6\x26\x8c\xff\xc3\x3f\xf2\xcd\x31\x1e\x8e\xbf\x77\x5a\xe9\xd6\xdd\x23\x17\x67\xfd\x62\x4b\x52\x7c\xaf\x7b\x7b\x4f\xfa\x79\xe4\x84\x15\xd4\x36\x0d\x63\x0c\xec\x65\x14\x0b\x6f\x4f\x66\xfb\x71\xe9\x22\x6c\x1e\x5c\x2a\x23\x99\xda\x45\x32\x55\xed\x5b\xff\x17\x39\x8b\xbb\x52\x84\x4f\x70\xd7\xa0\x60\x33\x06\x51\x9b\x7c\x65\x69\x88\x46\x10\x38\x83\xd8\x79\x9a\x1a\x72\xf7\xe8\x7d\x93\x79\x88\xc0\x70\x3e\x6e\xce\xc7\xcd\xf9\xb8\x39\x1f\x77\xbe\x39\xe7\xe3\xe6\x7c\xdc\xf6\x95\xcd\xf9\xb8\x39\x1f\x77\xa4\x42\x38\x1f\x77\x25\x8b\x92\x85\xe1\x7c\xdc\x9c\x8f\x9b\xf3\x71\x73\x3e\x6e\xce\xc7\xcd\xf9\xb8\x39\x1f\x37\xe7\xe3\xe6\x7c\xdc\x9c\x8f\x9b\xf3\x71\x73\x3e\x6e\xce\xc7\xcd\xf9\xb8\x39\x1f\x37\xe7\xe3\xe6\x7c\xdc\x3c\x8f\x9b\xe7\x71\xf3\x3c\x6e\x9e\xc7\x9d\x37\x8d\xe7\x71\xf3\x3c\x6e\x9e\xc7\xcd\xf3\xb8\x79\x1e\x37\xcf\xe3\xe6\x79\xdc\x3c\x8f\x9b\xe7\x71\xf3\x3c\x6e\xe3\x3c\xcd\xf3\xb8\x79\x1e\x37\xcf\xe3\xe6\x79\xdc\x3c\x8f\x9b\xe7\x71\xf3\x3c\x6e\x9e\xc7\xcd\xed\xb8\xb9\x1d\x37\xb7\xe3\xe6\x49\x7c\x8f\xae\x8a\x55\x52\x60\x84\x93\xee\x87\x7f\xfb\x9e\xcb\xe7\x63\xc9\x54\xa6\x08\x30\x18\xd8\x18\x35\x03\xa3\x66\x5d\xd4\xac\x8b\x9a\x75\x51\xb3\x2e\x6a\xd6\x45\xcd\xba\xa8\x59\x17\x35\xd3\xa2\x66\x54\xd4\x8c\x8a\x9a\x51\x51\x33\x2a\xba\x47\x67\xba\x7b\x50\xd2\x5a\xe9\xc3\x64\x67\xe1\xee\x61\x21\x14\x16\x02\x5f\xb5\x9a\x44\x5f\xdf\x4a\x64\x9d\xc8\xd7\x58\x9d\xef\x1e\xa7\x22\xe1\xd2\x06\x27\xb1\x78\xa7\x95\xe5\xf5\x96\x56\x66\x1b\xea\x07\x55\xad\xbf\x9e\xb8\x0e\x6d\xcf\xbb\x13\xef\xde\xdb\x3e\xe9\x02\xa5\x85\x79\xbf\xff\x7c\xee\xff\xdc\xcd\x06\xd6\x72\xba\x10\xb0\xb7\x9b\x09\x5f\xf5\x89\xd1\xd4\x7a\xdd\x99\xf5\x66\xf8\xeb\xcb\x4a\x7d\xd7\xf4\x74\xb4\xc4\x11\xaf\xf7\x7a\x3b\x72\xd3\xcf\xf8\xab\x63\x57\xf2\x4d\x35\x95\x35\xf4\x3c\x07\xb3\xed\x83\xd2\x65\xd4\x2b\x63\xf2\x64\x6f\xb3\x0e\x62\xf1\x92\x63\xba\xcb\x94\x81\x2f\xe2\x0f\x60\xba\xf7\xd1\x15\x51\x41\x45\x16\xf2\xd5\x9c\x7e\xad\xf8\x73\x64\x14\x2e\xdd\xbc\x9b\x57\x0d\x26\x57\xc0\xa5\x05\x71\xac\x80\x03\x58\x8f\x84\xb9\x6e\xb6\x5c\xc6\x27\x55\x77\xea\x16\x2c\xcc\x1d\xd1\xec\xbb\xc6\xcd\xc8\x17\x8c\xf3\xb3\x68\xc1\xb9\xbf\xb5\xe5\x3b\x23\x1e\x6e\x48\xed\x66\xaa\xbb\xab\xba\x15\x51\x26\x67\x22\x9e\x83\x51\xd1\xcc\x08\x46\x24\x41\xb6\xef\xf6\x64\xa8\x5f\xbd\x17\x89\x3c\xc2\xdd\xd9\x51\x9a\x32\xaa\x27\xbd\x20\x5d\xb8\xc8\xdd\x14\xb1\x88\x52\x19\x16\xb6\x4a\xe9\x26\x95\x7d\x6e\xe1\xac\x54\xb2\x13\x99\x88\xda\x3f\xb9\x21\x67\x8a\x1d\xcc\x95\xc2\x56\x29\x6c\x95\x52\x43\x16\xb6\x4a\x61\xab\x14\x40\xb2\xb6\x15\x19\x43\xa5\x30\x54\x4a\x55\x59\x18\x2a\x85\xa1\x52\x5b\x0c\x6a\x6f\x17\x81\x88\xc2\x56\x29\x3c\x95\xc2\x53\x29\x60\x42\x19\x46\x2b\x9c\x95\xf2\xd4\x0a\x67\xa5\xb0\x19\x0a\x73\xa5\x40\x07\x05\xde\x2c\x62\x11\xb5\xc3\x97\x95\x39\x89\x45\x14\x99\x88\xc2\x6b\x29\xbc\x96\xc2\x6b\x29\x32\x11\xb5\x7f\xbc\x2b\xe7\x8b\x68\x50\x43\xe1\xb2\x14\x16\x4b\x61\xb1\x14\xe0\xb4\xc2\x02\xc7\x62\x29\x2c\x96\xc2\xa9\x2a\x8c\x84\x22\x0a\x51\x18\x09\x85\x8b\x50\xe4\x20\x0a\x23\xa1\xac\x26\x85\x91\x50\x3b\xcf\x45\xc6\xc3\x42\x28\xfc\x83\x32\xe0\x5f\x20\x9a\xc2\x42\x28\x2c\x84\xc2\x42\xa8\x88\x41\x19\x0c\x2c\x2c\x84\x3a\x2a\xa8\x13\x86\x96\xa7\x73\xb2\xfa\x7b\xab\x71\x11\xea\x44\x54\xca\x33\x3a\x9e\x11\x16\x42\x61\x21\x14\x16\x42\xa9\x31\x0a\x0b\xa1\x30\x0f\x2a\x83\xff\x99\x1e\x99\x81\x1c\x3f\xfb\x02\xa3\x91\xcb\x5b\x37\x22\x79\x5d\x00\xab\xc6\xb0\x77\xff\x81\x87\x8d\x2d\xb1\xdf\xf0\xd8\xc2\x1b\x03\x0e\xb3\xe7\x78\x6f\xa5\x71\x93\xb7\x81\xf4\xfb\x7c\x5b\x97\x2f\xb0\xd5\x64\x8d\xf1\xa6\x47\x1a\x06\xe7\x37\xf4\x36\xed\x80\xd2\x91\xfe\x48\xd0\x44\xf0\xe1\xc9\xa8\xe6\x7d\x8b\x4e\xdf\xef\xb3\xc1\x44\xba\xd3\xbd\xc8\x74\x63\xfc\x77\x66\x09\x7e\x02\x0b\x56\x73\xcc\xe3\xbb\x20\x67\xf8\xf1\xd6\x39\x72\xd4\x63\xa4\x71\x9d\x7c\xff\x99\x5c\x9a\x49\x0c\x2c\x16\xfb\x0e\x79\xe9\x0d\x0b\x70\xfc\xcc\x92\x08\xe6\xdf\x3b\xb3\x57\x06\x8d\xef\x3b\xf6\x32\xdd\x88\x04\xee\xb9\xb5\xd3\x24\x86\x59\xef\x50\x93\x00\x67\xf6\xd8\xd9\xa7\xc8\xd2\xb1\x45\xf8\xb1\xa5\x7d\xc2\xdc\xc6\xcf\xcd\x9f\x98\x15\xc9\x1e\x81\xfd\x87\x01\xe4\x7a\xb1\x28\x5e\xd3\x0e\x7d\xc2\x31\xba\x19\x1b\x27\xb5\x32\xea\xfe\x76\x6c\x11\x02\x1b\xee\x48\x19\x9c\xbb\xbe\xa8\x67\x30\xa8\x32\x15\xf9\xdc\x3d\x78\x9d\x0f\x17\x67\xeb\x17\xdd\x3b\x39\xcd\x6b\xdd\x3b\xd9\xaa\xdc\xf0\xf9\xc2\xee\xf5\x16\x65\x10\x75\xe6\xdf\xde\x28\x51\x8c\xa7\x52\x78\x2a\x85\xa7\x52\x47\x14\xe3\xa6\x14\xe1\x88\xc2\x50\xa9\x13\xe6\xba\xf8\xc5\x53\x29\x3c\x95\xc2\x53\x29\xdc\x94\x22\x28\x51\x18\x2a\x85\x95\x52\x61\x99\x67\x27\xe8\x8e\x95\x3d\xfe\xdd\xca\x3a\xfa\x3e\xe2\x14\xef\xa4\x92\xe1\x71\x4a\xf0\x50\xef\xd1\xf9\x99\xee\x90\x33\xb3\x5b\xc4\x23\x29\x14\x80\x42\x01\x28\x51\x50\x28\x00\x61\x89\x15\x0a\x40\x01\xff\x0b\xec\x5f\x6f\xc6\x81\x2b\xd2\x01\xfe\x5f\xdc\x81\xf4\x0b\xa4\x5f\x6f\x84\x05\xe4\x43\x00\xbe\x3a\xb6\x21\x14\xf7\xe8\xa7\x33\x77\xdb\x27\xb8\x6f\x20\xfa\x02\xce\x17\x70\xbe\xec\xc7\xeb\xf7\x5c\xdc\xb7\xc4\x0e\x70\x3e\xb5\x68\x45\x90\x04\x38\x5f\xc0\xf9\x7a\xc3\xbd\x73\x0f\x71\xdf\xeb\x4d\x8c\xb8\x9f\xe0\xfa\x02\xd7\x17\x88\xbe\x40\xf4\x05\xa2\x2f\x10\x7d\x81\xe8\x4d\xf4\xdd\xa3\x33\xdd\x67\x10\x3d\xa1\xbc\x7b\x74\x95\x7b\x0e\xa2\x2f\xe3\xff\x65\xfc\xbf\xc0\xf5\x05\xae\x2f\xe3\xff\xaf\x69\x22\xf5\xde\xad\x31\x60\x3a\x47\x85\xa0\x4b\xac\xda\x5f\x99\x88\xd0\xa1\x35\x71\x74\xcf\x21\xc4\xe7\x6d\xb7\x6b\x63\xf5\x5f\xd3\x4e\xea\xc5\x6f\x5b\x2b\x42\x76\x26\x25\x6e\x1d\x3b\x09\x3b\xcf\x9f\xb0\x92\x3b\xf6\xca\xc0\xdb\xce\x71\x8f\x5d\xf7\xa7\x77\x57\xf2\x86\x69\x3d\x22\xab\xf5\x44\xaa\x22\x23\xe4\x64\x25\x88\xed\xc8\x21\x2f\x89\x2d\xf2\x89\x77\x99\xbd\x55\xd3\xce\x31\x72\x5e\xf7\xb9\x4f\xeb\x38\x31\xf3\x9a\x33\xd6\x4b\x7e\x4b\xaa\x68\x7b\xa2\xb6\xbe\xaf\x5b\xb7\xdf\xad\x2a\x0a\x00\x59\xbc\x5b\xed\x17\x41\xe9\x5a\x11\x85\x78\x22\x62\x36\x49\x6f\xc9\x5d\xb5\xf5\x63\x33\xb3\xf1\xab\x81\x61\x7f\xba\x64\x76\x88\x33\x51\x89\xcf\xba\x75\xc0\xde\x11\xa6\xa6\x79\x0c\x35\xea\x82\xec\xb4\x59\xca\x03\x53\x63\x17\x75\x2b\x67\x7c\x47\x92\x5c\x31\x3f\xca\x3d\xb4\xfa\xcc\x99\x7b\x62\x76\x74\x85\x22\x24\x57\xac\xec\x0d\x4f\xbe\xbf\x6b\x47\xe4\x8f\xac\x14\x66\xe4\x22\xfd\x8d\x41\xcb\x68\xb7\xa7\x49\x89\xd7\x5e\x23\xb2\x45\x84\x32\xee\xae\xf9\x66\xbc\x99\xb7\x5d\x2c\xc3\xc8\x2a\x24\x2c\xc2\x11\x3f\x4c\x8d\x58\xc4\x8f\x2a\x85\xe8\x51\x99\xd0\x40\xf4\x28\x44\x8f\x22\x16\x51\x88\x1e\x85\xe8\xf1\xe3\x97\x5b\x65\x0a\xb9\xe3\x87\x2a\x7e\xbf\x49\x95\xcc\x6c\x44\x46\xd2\x67\x46\x02\x4e\xb4\x12\x76\x28\x80\xbc\x49\x98\x7b\xf4\x5b\xc4\x29\xb0\xbd\xac\x0b\xf5\x85\x2f\x2e\xee\x40\xee\x05\x72\xaf\xdf\x4c\x88\x88\x03\xb3\x17\x98\xbd\xc0\xec\x05\x66\x2f\x30\x7b\x01\xd8\x0b\x78\xae\xe7\x7f\x8f\xf9\x1f\x9f\xf0\x65\x17\x1c\x1c\x44\xb5\x7f\xf3\x55\xc3\xb8\x1b\xba\xdd\x10\xed\xfe\x31\xf8\x8b\xc0\x14\x29\x27\x58\x76\x3f\xd9\x47\x97\x33\xef\x1d\x68\x93\xed\x0d\xc5\xee\x54\xad\x10\x6a\x48\xca\x3d\x06\x31\x71\x66\xc4\x0a\xcc\xea\xc0\x16\x1b\xb6\xd8\xb0\xc5\x86\x2d\x36\x6c\xb1\x9f\x60\xc4\xd8\xea\xd0\x87\xd6\x8b\xe8\xbc\x81\xb0\xc5\x7e\x82\xe6\x6c\xd7\x6e\x57\x79\x9f\xe1\x89\x0d\x43\x6c\x18\xa2\xb9\xbe\x7b\x74\x0e\x4c\x0a\x6e\xd8\x70\xc3\x86\x1b\x36\xdc\xb0\x75\x53\xd7\xeb\x9c\xc8\xcd\x45\xa8\x0d\xc6\xcd\x16\xa1\x26\x89\xc2\x8e\x49\x10\x1c\xa7\xb1\xdb\xdf\xa0\x21\x3f\x81\xb5\xfb\xff\xaf\x69\x73\x32\x17\xdd\x26\x13\x48\xa0\xdc\x2d\xe9\x8d\x26\x4f\x6d\x07\x29\xd3\x47\x65\x64\x5c\x3b\x64\x10\x6b\xdf\xd1\x1b\x7f\x63\xec\x65\x4f\x74\xc2\xa9\xc5\xc8\x6f\x88\xc3\x5b\x84\xfb\x44\x6e\xe9\x32\x11\x5b\xa8\x66\x89\xe8\x5d\xaa\x86\x35\xbc\xf6\xf5\x6f\x6a\x24\x08\x42\x5b\xcb\x9a\x3d\xc1\x89\x7c\x6e\xf2\xe7\xb0\x7f\xc1\xa5\xde\xe7\xe6\x99\x8e\xdc\xab\xd9\x92\xa3\x4b\xf9\xfe\xea\xae\x1d\xf9\x41\x58\x0f\x77\xe2\xfe\xd1\xc1\xcc\x27\xe3\x3a\x57\xc4\xcd\xee\xd3\x9f\x2b\xa2\xac\x66\xef\x75\xa8\x76\x24\x92\xc8\x6e\x14\x33\xc7\x87\xa4\xea\xf3\xa6\x93\x7f\xf7\xad\x79\x6a\x65\x82\xe5\x55\x21\xa4\x23\xb4\x7e\x32\x8f\x1f\x54\x2b\x33\xd2\x2f\x6c\x71\x64\xce\xfc\x40\xff\x09\x1e\x6e\x2c\xe7\x9b\x27\x59\x5d\xd4\x8a\x64\x31\xc2\xe0\x42\x1a\x9a\x2a\x90\x97\xcc\xd1\x86\xae\xce\x5b\x4b\xcf\x08\x6c\xbe\xa3\x42\x21\x3c\x28\x84\xf4\x02\xf4\xf0\x55\xda\x0d\x65\xee\x27\xf8\xe0\xe7\x7f\x74\xa8\xa0\xcc\xfd\xfc\x76\xd6\xde\x31\x7d\x21\x38\x72\xc3\x91\x1b\x8e\xdc\x7a\xf5\x4d\x13\xa1\x75\x93\x1a\x5e\xdc\x30\xe2\x86\x11\x37\x3c\xa2\x61\xc4\x6d\x26\xa7\x61\xc4\x0d\x23\x6e\x18\x71\xc3\x88\x7b\x44\x2c\x51\xb4\x42\x84\x1b\x22\xdc\x70\xcf\x86\x02\xf7\xc8\x5c\x4d\xfb\x9c\xe9\xa7\xd3\x4f\xf5\xcc\x61\xbe\x9d\xc9\x3a\x48\x5c\x43\xe2\x1a\x12\xd7\x90\xb8\x86\xc4\x35\x0c\xae\x83\x4e\x42\xdf\x1a\xfa\xd6\x63\x47\x98\xce\x99\x62\x73\x64\x22\x48\x84\xc2\xdd\xda\xbe\xbb\xa1\x6f\x0d\x77\x6b\xbb\x8c\xd6\x67\x68\x28\x5b\x43\xd9\x1a\xca\x96\x77\xbe\xe1\x6b\x0d\x5f\x6b\xc8\x5a\xc3\xd4\x1a\x9a\xd6\xd0\xb4\x1e\xb9\xcf\x32\x1e\x34\xad\xa1\x69\x0d\x4d\x6b\x68\x5a\x27\x0a\xe0\x68\x0d\x47\x6b\x38\x5a\x57\x24\xaa\x4c\xd1\xc0\xce\x98\x2f\x37\xf3\xe5\x7b\x74\xbe\xe7\x5e\x91\xbe\x74\xe7\xa1\x63\x0d\x1d\x6b\xb8\x58\x43\xc4\x1a\x22\xd6\x10\xb1\x86\x88\xe1\x87\xdc\xa3\xf3\xdb\x7e\xc4\x5a\x89\xb6\x76\xec\xe8\x7b\x44\x7e\x27\xc4\xe1\xfb\x0d\x63\x01\x16\xa4\x63\x93\xbd\xa5\x34\x51\xb5\xcd\xfc\xdc\x9d\x6c\x91\x6a\xaf\x17\xef\xbf\xe1\x29\xaf\xd9\x83\x15\xe3\x21\xf8\xfb\x5e\x71\x0c\x67\xed\x61\x46\xf4\x31\xdb\x59\x78\x35\x0c\x9e\xca\x9e\xb7\x36\x81\xbb\x19\xa6\x7e\x54\x1b\x74\x3b\xf7\x4c\xae\x88\x04\x2b\xc3\x91\xca\xe4\xaa\x5d\x52\xa7\x4f\xab\x3f\xa3\xc7\xf5\xea\xb7\x9c\x07\x99\x2e\x3c\x10\xdd\x8f\x13\xb1\xe2\xa7\x43\x5e\x4e\x65\xae\x7f\xbb\x64\xce\x98\x7d\x98\x75\x27\xcd\x07\xa3\xbc\x55\x50\x56\x19\x6a\x1a\xba\xd9\xba\xb8\xef\x08\xbd\xf7\x09\x22\xaf\x07\x25\xfb\xc1\x56\x9a\x34\x56\x99\x39\x7f\x33\x17\x2a\xd3\x12\x60\xaf\x66\x01\xb9\xda\xbe\x46\x67\x3e\x93\xcc\x8d\xe7\xb0\x59\x2c\xbd\x2a\x49\xd2\x8b\xf7\xee\xbd\xc8\x8f\x9e\x91\x7e\x94\xdc\xb2\x32\x7f\xc2\x1c\x33\xab\xd5\xa9\x79\x6e\x0e\xf9\xc9\x0f\x06\xf9\x4a\xb5\x6f\x5e\x25\xc2\x6b\xc7\xbe\xd2\xf3\x32\x83\xfa\xc2\xfe\xe6\xdd\x31\xd5\x8e\xf1\xe5\x0c\xb5\x7c\xe9\x87\xe7\x1d\xb3\xda\xc2\xbf\x3a\x33\x72\x50\xd4\x86\xa2\x86\x79\xd5\x50\xd4\x86\xa2\x36\x14\xb5\xa1\xa8\x0d\x45\x6d\x28\x6a\x43\x51\x3b\xac\x00\x6a\x08\x8c\xc5\xef\xd1\x55\xf2\x6d\x04\x9a\xa0\x60\x0d\xff\x62\x3b\x7e\x8f\xce\x11\xf5\x30\x2f\x16\xe4\xcd\x82\xbc\x1b\xce\xd5\x70\xae\x86\x73\xfd\x9e\x85\x15\xa4\x61\x5b\x2d\x0f\x37\x0c\xab\x2b\x68\xa6\xe8\x86\x58\x35\xc4\xaa\x21\x56\x0d\xa5\x6a\x28\x55\xc3\xa7\x1a\x32\xd5\x30\xa9\x86\x49\x75\x47\xce\x5a\x5c\xc3\xa4\x1a\x26\xd5\x70\xa8\x86\x3d\x35\xbc\xa9\xe1\x4d\xad\x6f\xd9\xf0\xa6\xee\xf4\x10\x2a\x3a\x02\x8f\xa3\x9f\xba\x9f\xb0\xa1\x0e\x9e\x08\x15\x6a\xa8\x50\xff\x74\x07\xdc\x49\x13\xe3\xad\xb7\xdf\xba\xfa\xad\x9f\xdf\x1d\x79\x2b\x77\x4f\x27\xbf\xf5\xf0\x3b\xc2\x95\x7a\xf8\xad\x87\xdf\x7a\xf8\xad\x87\xdf\x7a\xf8\xad\x87\xdf\xba\xf7\xad\x6f\xdf\xfa\xf6\xad\x6f\xdf\xfa\xf6\x9d\x88\xe8\x0c\x0a\xc8\x9f\x3a\xf6\x50\x95\x7b\x74\x95\x8c\xaa\x63\xdf\x76\x1c\x8b\x50\xe7\x89\x7d\x58\x05\x6d\xb9\x77\xf5\x0d\x9b\x6b\xfe\xaa\x38\xd5\xfe\x2b\x9a\xcc\x0b\xe9\x27\x17\x79\xcc\x11\x49\x2e\x66\xac\x05\x9f\xdd\xde\x8a\x19\xd1\xf8\x01\xcd\x69\xa2\xbb\xe1\x90\x90\x11\x5b\xde\x7c\x53\x2e\xc5\xb2\x76\x3e\x41\x5e\xf4\x8a\x67\x84\xec\x18\xbf\x92\xb7\x2d\x46\x27\x15\xf2\xf8\x8e\x08\x79\xdd\x5a\x68\x62\x06\xce\xd8\xbf\x9a\x1e\x5f\x15\x8d\x18\x46\x45\xb5\x49\x01\xd3\xa6\xb9\xd9\xb8\x0e\x0d\xa0\x25\xb7\xbc\xd9\x2b\xcd\x9f\xe0\x9b\x6c\x16\xd3\x9f\xa0\x6f\x38\x4b\x62\x99\x61\x50\xcd\x52\x95\x85\x69\xf9\x66\xd7\x60\x47\x56\xe9\x7b\xc8\x75\xb7\x12\xbe\x9b\x5d\x02\xc5\x0b\x1a\xae\xaf\xc2\x8e\x2d\xb3\x7c\x45\x9a\x0f\xbb\xf2\xee\xa7\x54\x80\x3a\x5d\x66\xc3\xce\xc8\x10\x43\x79\x2e\x44\xf2\x23\x1c\x17\xa1\x7b\x56\x8f\x4b\xf7\xec\x65\x70\xf6\x62\x49\x4d\x73\xd4\xd3\x77\xde\xff\xe4\x22\x33\x41\x94\xd5\xf0\x7e\xf3\x36\x96\x61\xcf\xb5\x66\xa4\x23\x4d\xa9\x45\xe4\x5f\x97\xef\x3d\xbf\x69\x73\x18\xe2\xdd\x87\x52\xc3\xa9\xef\xcc\x48\x43\x7b\xbb\xac\xbf\x50\x9e\xb6\x3f\xed\x70\xa2\x60\x3a\x1d\xcc\x0b\x82\xd3\x1d\x29\x57\x6b\x2e\xd4\xa6\xa1\x36\x6d\xed\x68\x18\x4d\x67\x15\x83\xce\x34\x74\xa6\x4d\x98\xb7\xd9\xf2\x36\x4f\xde\x9e\x51\x9b\x1b\x6f\x73\xe3\xed\xef\x6d\x38\x4e\xdb\x5d\xb6\x9e\x64\xdb\xd5\xb6\xc9\xf0\x36\x13\xde\x33\x24\x7a\xb1\x09\x9d\x6c\x02\xec\xa8\xeb\xf7\x48\xb9\x40\x7c\x99\xeb\x6e\xfa\x26\x1d\x02\xb8\x89\xee\xfe\x75\x12\x44\x96\x59\xee\x9e\xd9\x1d\xf8\xdb\x89\xa8\xb7\x09\xed\x9e\xfe\x6a\x13\xda\xc6\x80\xba\x55\xcb\x6d\x98\xa6\x89\x6a\xb6\x79\xec\xfe\xb1\x3a\xfd\x8d\xd6\xe8\x5e\xd1\x59\x50\xc5\x99\xc7\x4e\x07\xb2\x57\xf6\x20\xfe\x6a\xa2\xb2\x6d\x1f\xdd\x2b\xf2\x74\x61\xb6\xf8\xdb\xcd\xdc\x36\x66\x69\x9b\xaa\xed\x15\x61\x5b\x59\xc8\x24\x6d\x9b\xa4\xc5\xac\xbb\x09\xc9\xa7\xb9\x1b\x66\x68\xdb\x0c\x6d\xc3\xb6\x7a\x45\x84\x5c\xce\x21\x6a\xdd\x70\xae\xe8\x9b\x34\x9c\x2b\x5c\xd6\x86\x6d\x35\x1e\x4b\xc3\xb6\xda\x8a\xdf\xf0\xac\x5e\x41\x69\x65\x6c\x71\x3a\xde\xec\xec\xde\x88\xec\xc5\x6c\x02\x72\xf1\xc4\xd0\x07\x0f\x10\x37\x63\x87\x7b\xf3\x65\x46\xf4\xe0\xdc\x7e\x8c\x09\xb0\xf5\x70\xf6\xbc\x9f\x6f\xac\xf0\xa3\x5d\xf5\xc0\x91\x23\x5a\x6b\x32\x73\xc9\xde\x9f\x3d\xe6\x1e\x1d\x53\x89\x74\xc6\x22\x16\xfa\xc0\xce\xf2\x14\x3e\x7b\x22\xe2\xe7\x27\x88\xbc\x59\x77\x7d\x63\x6a\x2f\x4d\x8a\x1c\x96\x5a\x0c\x53\xfa\x83\x16\xa5\x6e\x7f\x4c\xc1\x7d\x99\xa5\xfc\x8d\xda\x7c\xf4\x68\x4e\x04\x93\xb1\xe3\xd2\x8b\xde\xc1\x77\x74\x60\x44\x90\x8e\x74\xb3\x6c\x83\x42\xd6\x0e\x4e\x57\xa9\xc4\x4c\xaa\xdb\xb9\xaf\x37\xd3\xd7\xa6\xf4\x77\xfe\xfd\x11\x21\x5c\x54\x84\xa0\xde\x46\x49\x74\x0f\xc6\x47\x20\xfd\xa1\x28\xf1\x9a\x78\xdf\xa6\xc7\xd9\x57\x15\xa9\xcf\xda\x41\xea\x59\x52\xb2\x21\xee\x4c\x96\xf6\x9b\x6e\xc0\xa4\x6d\xe4\x5b\x61\xed\x0e\x15\xdd\xc0\x4e\x67\xfc\xdd\x5b\x7d\xd8\xfb\x0d\x5b\x29\x7a\x1f\x76\x4c\x61\x59\xef\xc8\x08\xd7\x5f\x61\xb7\x16\x7b\xc1\xde\xc6\x5f\x66\x9b\xbb\xa3\x8e\xc1\x1c\xa7\x17\x63\xdc\x95\x28\x5b\x89\x2c\xf9\x04\x7a\xd5\x6a\xbc\x86\x5e\x35\xf4\xaa\xe1\x56\x91\x60\x6d\x7b\x70\x15\x5d\xe3\x83\xdd\xa3\x33\xad\xf2\x10\xab\x36\x65\xdd\x70\xab\x96\x99\xdb\x94\x75\xdb\xd9\x35\x94\xaa\x61\x4c\xe9\xd4\x35\x41\xf2\x86\x34\x75\x44\x17\xe1\x4d\x0d\xdd\x6b\x5d\xb2\x86\x34\x35\x74\xa9\xa1\x4b\x0d\x5d\x6a\xe8\x52\xef\x3c\x71\xf1\xe5\x6f\x6f\x53\xd3\xbd\x33\x6e\x22\x9a\x20\x4d\x6d\x6a\xba\xe1\x4d\x6d\x5e\xba\xe1\x4d\x0d\x6f\x6a\x18\x53\xc3\x98\x1a\xc6\xd4\x3b\x23\x38\xde\x22\xb3\xaf\x0d\x63\x6a\xe8\x52\x7b\xdb\x1b\xc6\xd1\x30\x26\x42\xd6\xf7\x98\x1d\x04\x74\x46\x7e\x86\x31\x35\x29\xe9\x86\x34\xf5\xc9\x2e\x63\xa4\xe3\xe1\x1c\x19\xe9\x44\xc6\x5c\x46\x82\x1c\x35\xe4\xa8\x61\x46\x3f\x6b\x95\x93\x3e\x89\x8a\x14\x67\xa3\x21\x32\x0d\x05\xe8\x13\xd6\x99\x7c\x05\x0b\x68\x28\x40\xdb\x83\xb7\xde\x42\x67\xa7\x7f\x32\xb0\xe8\xde\x9e\xe0\xd1\xee\xed\x6f\x12\xdb\x5d\xd5\xf9\x6f\xb3\xa9\x6d\x1e\xb5\x45\x62\x7b\xa3\x26\x23\x98\xf3\xe9\xa2\x34\x95\x04\x9c\xcc\xd7\x2c\x46\x06\x37\xa3\x52\xb4\x33\x35\xba\xc3\x10\xfe\x62\x4a\x02\xa9\xf9\xa6\x1d\x56\xa4\xda\x49\xb2\xe3\xf6\x90\x6d\x7f\xa9\x24\x6c\x63\x40\xc7\x58\xcc\x52\x29\x15\x0d\x9a\xd6\x25\x60\xe2\x5f\x27\x36\x28\x51\xa9\x48\x56\x0c\x4b\x9c\xed\x7b\xf0\xc4\x09\x87\x9a\x11\x67\xc6\x69\x3c\xf6\xa4\x6f\xf9\xe6\xf2\xc3\x0c\xfb\x37\x22\xde\x32\x12\x43\xc3\x62\xc7\x53\xf3\x37\x9c\xfa\x40\xae\x4f\xb0\xbf\xa8\x5f\x61\x2b\x45\x35\x29\x7c\x39\xef\xc3\x9a\x74\xcd\xec\x68\xa2\x3b\xa0\x16\x7d\x65\x80\x67\xd2\xef\x8b\x6e\x1d\x25\x1a\xf9\xad\xa2\xd7\xd6\xfe\xa2\xf5\xa6\x1f\x6e\xd7\xa3\x43\x72\x82\x52\xa9\x2b\xb6\x7c\x7e\x92\x19\xf4\x6f\x69\x21\xd5\x3b\x72\xed\x13\x76\xe5\xab\x07\xbe\xb1\x31\xb1\x8f\xda\xfd\x37\x30\x37\x62\x30\xfd\xd3\x60\xa2\x49\x77\x3e\x7a\x6a\x58\xdc\x33\x36\xe2\x9f\x71\x2e\xcc\x87\x66\x7e\xf1\xa9\xbe\xe8\x86\x54\xc6\xc2\x9e\xcc\xe1\xab\x88\x28\x77\xa8\x88\x92\x01\xbe\x85\x6f\xa9\x67\xd5\x19\x06\x85\x22\xf5\x6f\xa8\x4b\x0c\x9a\x5b\xd6\x8d\xbf\x47\xef\xa1\x18\x84\x22\xb5\xe9\xe5\x36\xb7\xdc\xe6\x96\xa3\x10\xd4\xd0\xa5\x86\x2b\x75\x24\xee\x5f\x31\xe8\x7d\x6b\x53\xca\x9d\x8e\xb7\x3b\xd9\xd0\xa5\x86\x2e\x35\x74\xa9\xf5\xed\x49\x46\xdf\xe3\x71\xcc\xf9\x3e\x4d\x36\x33\x54\xda\x86\xf9\x5a\x57\xad\xa3\x59\x09\xd1\x6b\x18\x53\x87\x0d\x6b\x6c\xb4\xe1\x4d\x0d\x6f\x6a\xac\xad\x86\x3a\x35\xd4\xa9\x55\x92\x6d\x15\x6b\xf5\x64\xbb\x93\xad\xbe\x6d\x38\x54\x4c\x49\xda\xa8\x68\xc3\xa1\x1a\x02\xd5\xfa\x81\x6d\x3c\xb4\xe1\x50\x6d\x3c\xb4\x75\x05\x3b\x35\xc0\x1b\x2d\x12\xb1\xfc\x06\x59\x90\x27\xd5\xf9\x0d\x87\xea\x98\xa1\xc0\xa1\xfa\xcd\x5a\x29\xba\xe1\x50\x1d\x71\x5d\xeb\x45\xc7\x3c\x08\x1a\xd5\xd0\xa8\x86\x43\x35\xd4\xa9\xa1\x4e\x0d\x75\x6a\xa8\x53\xc3\x9b\x1a\xd2\xd4\x90\xa6\x86\x1a\x34\x26\x4c\x53\x4c\x68\xd8\x41\xeb\x4b\x34\x36\x7e\x7f\xe9\x97\xaa\xee\xa2\xe2\x07\x3b\x68\xa8\x41\x63\x9f\x76\xf4\x1a\x0c\x47\x76\xf2\x46\x14\x2a\x53\x51\xeb\x7b\x84\xc3\xf9\x3d\xba\x31\x6a\xd7\x63\x95\x67\x5a\x57\x3f\xf9\x77\xe3\xd4\xab\x99\x14\x53\x5a\xb1\xe6\x56\xf4\x22\xc3\x0c\x7c\x23\x3e\x5f\xb1\x50\xd9\xf8\xb4\x7a\x1a\xb1\x2b\x0d\xda\x1e\xbd\x89\xcc\x9a\x19\x68\x7e\x63\xf6\x3a\x68\x98\xda\x9b\xec\x15\x2b\x58\x3b\x3b\xc3\xd9\x78\xfb\x15\x16\xfa\x92\x8d\x3f\xbd\xa0\x15\x46\xba\x29\x83\x79\xdf\xb1\x7a\xc3\x70\xd3\x9b\x62\xe0\x58\xf9\xe6\x33\xf8\x17\xf3\xe8\x18\x23\x2e\x79\xe3\xa1\x1c\x54\x61\xda\x4c\xfb\x11\xfa\x83\x8c\x1d\x6b\xcb\xc6\x2b\x7d\x51\xdf\xbc\xbf\xac\x65\xf7\x2e\x4d\xec\xa0\xd8\x25\xbc\x3d\x63\xe9\x82\x1b\x06\xf5\xf6\xbb\x96\xac\xbb\x57\x30\x91\x27\x95\x67\xff\xf5\xa4\xcd\xc1\x98\xa0\x5a\xc5\x18\x94\x67\x9f\xe8\xc6\xbe\x11\x7b\x57\x11\x61\x14\x9b\xdc\xd9\xd8\x14\xaf\x4e\xd7\xa4\x39\xfb\x89\xee\xd7\xf4\xc1\x8b\xc5\xfd\x06\x77\xc8\x70\xaa\xca\x70\xfd\x46\x45\x13\x95\xbf\x8e\x2b\x6e\x8f\xea\x51\xed\x61\x0e\xe2\xd6\x66\x74\x24\x67\xde\x22\x8c\xc1\x91\xf7\x4a\x35\xf8\x53\x65\xf5\x53\xd1\x6d\xc8\xb8\x0d\x19\x37\x1c\xaa\x0d\x16\x37\xc6\x66\xc3\xa1\x1a\x0e\xd5\x99\x26\x33\x2a\xda\x46\x45\x1b\x32\xd5\x5f\x7e\x97\xe8\x86\x52\x35\x29\xf2\x0e\xef\x02\x56\xd5\xb0\xaa\xc6\x2c\x6d\x88\x55\x1b\x1b\x6d\x88\x55\x1b\x1b\x6d\x3b\xdc\xd6\x4f\x6b\x52\xe4\x9d\xc9\x3e\x52\xe4\x6d\x9c\xb4\x8d\x93\x36\x8c\xa0\xe1\x5c\x9d\x19\x1c\x38\x57\x7f\xbf\x8a\xd7\xf9\xf6\x14\x5f\xe4\xb2\x45\x34\x6c\xab\xa1\x24\x6d\x78\xb4\x61\x5b\xfd\x65\x0e\x48\x2c\x1b\x18\x6d\x03\xa3\x0d\xf3\xea\xef\xf7\xce\xf8\x04\x51\x1c\xcc\xcb\x4a\x37\x4d\xf0\x4d\xfc\x90\x69\x32\x74\xea\x2e\x4e\x33\xa1\xd3\x4c\xe8\xa4\x0f\x35\x4d\x86\x4e\x93\xa1\xd3\x4c\xe8\x84\x91\x4d\x73\xa0\x13\x73\x63\xc2\xc8\x26\x8c\x6c\xc2\xc8\xa6\xa9\xcf\x09\x29\x8b\xc8\xf9\x54\x63\x4c\x6b\xd9\x14\x83\x4c\x13\xee\xd1\xf9\xed\xfc\x20\x14\xed\x93\xa9\xcb\x99\xfd\xa4\x5f\x73\x8f\xbe\xc3\x74\xed\x74\x55\xfa\x90\x90\xeb\xdf\x04\xe5\xad\x13\x58\x82\xd6\x22\xb2\xbd\x31\x3a\x46\x2a\x7f\xac\xd7\x85\xaf\xf5\xad\xec\x44\x68\x13\x17\x83\xfb\xac\x53\xfd\xe5\x4d\x6e\xac\xb6\x1b\x8f\xa9\xfd\x62\x7c\x73\x32\xa0\xdc\xd8\x65\x33\xdd\x09\x71\x17\xa6\x59\x78\xce\x94\x07\xa3\x8e\x2d\x9f\xec\x11\xd6\xca\xcc\xfe\x77\xe1\xb9\xd9\xd9\x99\x0b\x78\xd8\x9d\x3c\xb1\xbe\x82\x38\xdb\x85\xbd\x7a\x41\xcb\x5a\xb9\xd3\xd5\xaf\xd8\x05\x7e\x66\x4b\xf1\x61\x32\x01\xa4\xfb\x81\xa3\x55\x8f\x6e\x4f\xc4\x12\xf6\xb0\x63\x1a\xef\x2b\xbe\x74\xc2\x0f\xf3\x1a\x1a\x85\xc4\x1e\x56\xf4\xe9\x6a\x26\x83\xe9\x12\xe8\xc4\xea\x97\x46\x03\xd1\xfe\xb7\xa2\xc3\x72\x32\x75\x6b\xb2\x32\xdc\x86\x0d\xd1\xa0\xdd\xdc\x8d\x4b\xdf\xb8\xf4\x3b\x96\x79\xb7\xc2\xaf\x36\x53\x16\x71\x8b\x28\x8e\xd1\xf4\xe9\xf5\x33\x37\x89\x49\xf4\x93\xee\x90\x3c\x09\x13\xc4\x4c\x78\xc7\xcc\x64\x84\x3c\x19\xd5\x6f\x08\x63\x2c\x33\x08\x03\x40\x61\xea\xfb\x61\xc1\x7a\x41\x7a\xd1\xef\xb8\xd9\xac\x4e\x4c\xc0\xd9\xfa\x93\x24\xf9\xcc\x6e\x8c\xb0\xeb\x67\x22\x82\x30\x3b\x64\x76\xe6\x59\x98\x17\x9e\xf0\xd9\xf9\xc4\xbe\x67\x79\x3f\x97\xf7\x8d\x74\x01\x64\x36\x73\x61\xd3\x5a\x33\xf5\xba\x27\x4c\x76\xea\xf0\x4f\x98\x6c\xd4\x27\xa7\xbf\x62\x9a\x01\x9c\x90\xd9\x09\x99\x9d\x90\xd9\x69\xba\x73\x62\x7c\xcd\x27\xfc\xd2\xd7\x99\x14\xca\x9e\x60\xfd\x6f\x8c\x84\x9c\xff\xe6\x7c\x9f\xff\xb9\x4a\x86\x37\xc5\x39\xa1\x6c\xd3\x14\xe7\x84\xb5\x4d\x8c\xd6\x69\x8a\x73\x62\x57\x4e\xe8\x1b\x99\xfa\x66\x59\x78\x8f\xfe\x67\xe4\x7f\x30\x42\x45\x3d\xdc\x6d\xc2\xdd\x26\xdc\x6d\x46\x0b\x0f\xd6\x36\x61\x6d\xc1\x73\x67\x10\x43\xf3\x98\x13\xee\x36\xcd\x63\x42\x39\xef\xd1\xe7\xb7\xcf\x97\x07\x60\x70\xd3\x24\xe6\x84\xc4\x4d\x48\x1c\x21\x84\x7b\x74\xbe\xa8\x87\xc4\x4d\xd3\x97\x73\x64\x25\x9a\x7e\x8b\xd8\x37\x77\x39\x23\xb0\x3f\xc2\x65\xf5\x04\x61\x76\x73\xc4\xf6\xce\x13\x84\xd9\x4d\xb1\x33\xad\x5f\x13\x72\x37\x21\x77\x13\x66\x37\xf5\x25\xa6\xb9\xb9\x09\xb9\x9b\xd0\xba\x09\xad\x9b\x70\xba\x19\x0b\xb6\xd8\x2e\x53\x48\x7c\xac\xe3\xd1\x7f\x2f\xfb\x08\x33\x20\xe5\xb9\x17\x76\x53\x7d\xf3\xd7\x41\xbd\x11\xa7\xcf\xbf\x6e\x25\x5c\xd9\xb9\x4f\x9c\xe1\x11\x93\x56\xa8\xd6\xea\xd8\x71\x3e\x99\x25\x7c\xa8\x82\x2e\x7c\x12\xeb\xfe\xfd\x1b\x57\x58\xaf\x66\xc0\x1f\x0a\x53\x0c\x55\xab\xf1\x4e\xbf\xa8\x6a\xea\x5d\xcf\x68\xc2\x9a\x3a\xa7\x82\x3a\x62\x67\xbf\x77\x45\xa5\xd7\x6f\x84\xcb\xeb\xf8\xed\xf4\x6d\xc4\x11\xe9\x88\x22\x66\x50\x99\xc0\xdd\x18\xcb\x2c\xa7\x2b\x36\xac\xa7\xa3\x0e\xfc\xa6\xb3\x81\xcd\xc8\x2a\x82\x2d\x42\xeb\x2d\xaf\x48\x74\x60\x15\xae\x60\x46\xee\xfc\xd7\x23\x46\xa5\x72\xce\x82\x22\x91\xc9\xb1\x33\x8a\x1e\xe5\x43\xa7\x8c\xd5\xe9\x7d\x93\xf5\x70\x82\x9e\x47\x85\xb9\x75\xbf\x31\x67\x74\x4e\xa2\x65\xd9\xe2\xfd\x1d\xb1\x08\x37\x53\x2f\x1e\xb7\x3e\x9b\x4e\x6c\x7d\x89\x29\x6a\xaa\x9b\x45\xc5\xce\x34\x8d\xf9\xf7\xb9\x36\x66\xce\xa2\x65\xd6\x26\xcb\xb0\xbe\x67\xf6\xcb\xd3\x64\x44\x6c\x43\xb7\xcc\x1c\x8d\xd1\x7b\x0e\xb6\x6d\x4d\xdf\x7c\x99\x4f\x79\x67\xde\xb1\x93\xf7\xca\x7b\x28\xde\x47\xac\x5d\x45\x3a\x84\x37\xb2\x22\x13\xce\x3b\xe1\xbc\xd3\x9e\x7d\xda\x9d\x4d\xeb\xc2\xc4\x6a\x98\x30\xdf\x09\xf3\x9d\xf0\x0b\xbb\xc5\x8e\x7d\xe1\x54\xaf\x4e\x98\x6f\xac\x43\x26\xb4\x77\x56\x26\x61\xad\xfe\xd0\xde\x09\xed\x9d\xa6\x26\x33\x4b\x42\x19\xff\x1e\xa7\xa3\xab\xe4\x01\xd5\x6c\x14\x2d\x27\xfc\x77\xc6\xa2\xc8\x44\xe4\x84\xfc\x4e\x13\x91\x13\xfe\x4b\x47\xfb\x1e\xfd\x76\xab\xbf\x29\xc8\x09\xbf\x9b\xf0\xbb\x09\xbf\x9b\xf0\xbb\x09\xbf\x9b\x56\xa2\x09\xb9\x9b\x90\xbb\x09\xb9\x73\x3f\xdb\xec\xcf\x3d\xba\x4a\x06\x30\xc5\x36\x21\x77\x33\x9c\x76\xc8\xdd\x84\xd9\x4d\x93\x6b\xd3\xcc\xda\x0c\x46\x03\xb9\x9b\x90\x3b\x5c\xdc\x0e\xd3\x7e\x9a\x56\x9b\xf0\xbb\xe9\x8d\x9d\xf0\xbb\x59\x41\x67\xe4\x01\xf8\x5d\xa6\x09\x26\x14\x0f\x1b\xf6\x1e\x5d\x25\x93\xe3\xe4\x4f\xb8\xde\x8c\x75\xaf\xd9\xb4\x69\x36\x6d\x56\xde\xba\x37\x3a\xc5\xae\xf2\x7c\x21\x7d\xd3\x7a\x3a\xad\xa7\x13\xea\x37\xa1\x7e\xf3\xa7\x73\x17\x7d\x83\x30\x48\xa1\xae\xd1\xb2\x34\x5f\xf9\x45\xa5\xf4\x09\x4f\x95\x29\x89\x59\xb0\x77\xc7\x7e\x6e\x15\x9f\x80\x38\x07\xd0\x07\x8c\xed\x69\x14\xba\x31\x06\x33\x2b\x8a\x9d\xfe\xa9\xd6\x1a\x37\x66\xe1\x6d\xc6\xc8\x69\x53\x6f\x78\xc3\xff\x7f\x08\xe7\x40\x49\x28\x1b\xd4\xd4\x93\xc4\xcc\xbf\xd9\x89\xd1\x1e\xcb\x4e\x36\xa9\xf5\xab\x2e\xfc\xae\xc8\xc0\xe8\x4e\xb0\xcc\xae\xd8\x1c\x9b\x68\x28\xab\x73\xed\x19\x3e\x1b\x79\x1b\x95\xcc\xa7\x26\xcc\xf4\x41\xb0\x8f\xf4\x79\x56\x9c\x30\xa8\x43\x76\x43\x8b\x08\xed\x44\xdb\xa4\x29\x60\x1c\xf8\x72\xcc\x6d\x0b\x77\x6b\xdb\xf3\x8e\xcf\x34\x13\xbd\xc2\x62\x35\xf5\x9a\x17\xcb\x55\x2b\x5c\x59\x82\x49\xa7\x7e\xfb\x88\x68\x50\x7e\x04\xba\x30\x8d\xf5\x9d\x56\x66\x6a\xee\xf9\x5f\x8c\x20\xd5\x93\xe9\x5e\xa6\xf6\xd8\x5f\x76\xa6\x14\xe5\xcc\x7e\xfe\x10\xc9\x9f\xb6\xef\xaf\x56\x37\xe9\x0f\x35\x08\xbf\x97\xfe\xf2\x17\xde\xbb\xe7\x92\x1a\x69\x8d\x74\xcf\x1e\x3b\xd0\x68\x83\xe8\x66\xc7\x76\x47\x1f\x78\xc2\x8b\xa7\x79\xc6\x69\x92\x71\x42\x8d\x27\xd4\x78\xc2\x8b\x27\x0c\x62\xa6\x47\x64\x86\x71\x7a\xee\xd3\xf4\xe2\xc4\x07\x98\x10\xe4\x69\x9d\x9a\x61\x24\xea\x1c\x4e\x98\xf2\x84\x29\x4f\x98\xf2\xf4\x97\x9a\xf2\xbb\x47\x57\xa9\x19\xcc\x30\x4e\x6b\xcd\xa4\x6c\x3e\xcd\xa6\x4d\x59\x97\xb9\xea\x3d\xfa\x5d\x32\x46\x87\x23\x2a\x6f\x58\xc5\xa6\x19\xc6\x69\x86\x71\x42\xa8\xe9\x5d\xf6\x84\x74\x4c\x38\xf5\x34\xc3\x18\x81\xb4\x19\xde\x02\x84\x7a\xfe\xf8\xae\x2a\x07\x38\x75\x1c\x3e\x26\xb4\x7a\x9a\x41\x9b\x3a\x63\xd3\x0c\xda\x84\x5c\x87\xd3\x35\x21\xd7\xff\xc4\xab\xac\x44\x1d\xb4\x57\x26\xb1\x0e\x4e\x98\xf5\x84\x59\x4f\x73\x67\x76\xc4\x3d\xcd\x9d\x4d\xf8\xf5\x84\x5f\x4f\xf8\xf5\x84\x5f\x4f\x73\x67\x13\x8a\xfd\xf3\x5f\xb1\x17\x98\x50\xec\x09\xc5\x9e\x90\xc7\x09\x79\x9c\x30\xc7\x69\xb2\x6c\x62\xa6\x4d\x93\x65\x13\x0a\x39\xcd\x94\x4d\x33\x65\x13\x22\x39\x61\x91\x13\x16\x39\x4d\x93\x71\x76\xb9\x47\x76\x6c\x9e\x3b\x8c\x75\x9a\x23\x9b\x33\x35\x89\x15\x81\xde\xc2\xb7\x98\x1f\xf9\xb6\x3b\xde\x03\x99\xad\xcb\x8e\x95\x16\xcd\xca\x1e\x64\xea\x36\xeb\x32\x1d\x7a\xc1\x58\xdf\x37\x72\xf5\x45\x37\xbc\xc9\xa7\xe9\xf9\x6f\xb5\xdf\x53\x66\x1c\xfa\x67\xf6\x7d\xd7\x74\x99\xf9\x81\xde\xbe\x7a\x29\x4b\x2f\x6b\x59\x73\xcd\xeb\xdd\x42\x86\xad\xd2\x8e\x5d\x1a\x56\x73\x6a\x86\x2f\xd3\xd6\x04\xae\x9c\x6f\x1a\x68\x6d\x15\xd1\xaf\x72\x98\xe1\x65\xd9\xe3\x90\x5b\xb3\x83\x78\x20\xe3\xe9\x51\xbf\xba\xd3\x9b\x6d\xd6\xfb\xa9\x91\x32\xfb\x69\x27\xf5\x66\x7e\x70\xa6\xff\xf9\x99\x05\x8b\x66\x68\x0c\xb6\x58\x07\xc2\x37\x57\xa6\x4d\x4d\xab\x7d\x89\xb2\x4c\xac\xab\x5d\xcd\xe0\xdf\x74\xb8\xc5\xbb\x79\x0a\x46\xc0\x9e\xf8\x3b\x7e\x66\x9d\xbc\x67\x76\xee\xbf\xea\xe8\x8d\x60\x61\x38\xc0\x87\x2c\xe2\x47\x70\xcb\xb4\xd7\x8a\x0f\x44\x54\x2c\x96\xa7\x10\xe1\x2e\x39\xe1\xc6\xd1\x7f\x4c\xbc\x5e\xf9\xfa\x4d\x96\x0f\x6f\x4f\xdf\x6d\xa7\xa6\x51\xe5\xc4\xa0\x5a\xd7\xa6\xa3\x85\x6f\x7e\xec\x89\xbe\x7e\x58\x9e\xf1\xa5\x99\x59\x15\xbc\x43\x72\x84\x3a\x69\x52\x4c\x9f\x04\x15\x27\xad\xf4\x09\xdb\x9e\x33\x0c\x69\xd9\x01\x2b\x68\x42\xbb\xe7\xfc\x55\xba\xae\x12\xe7\xb0\xed\x39\x93\x6d\xc5\xb9\x9e\xd1\x4c\x67\x0a\xc2\x3d\x29\x9d\x4f\x86\xa6\x93\xde\x79\xf4\x08\xa6\x5a\x79\x52\x22\x20\xc6\x78\x8f\xce\x17\xcf\x38\xd3\x13\x22\x3e\xd5\x9a\x93\x2e\xf5\x4c\xad\x06\x23\x9f\x66\xff\xa6\x09\xc9\xa9\x3e\x9e\xd1\x58\x81\x88\x4f\x36\xe4\x13\x4b\x72\x5a\x2d\xe6\x8c\x6c\xa3\x28\x65\x05\x3d\x4d\x54\x4e\xba\xe6\xd3\x7a\x36\xa1\x8c\x13\x76\x3e\x61\xe7\x33\x79\x1f\x82\x3e\xbd\x85\x13\xb2\x42\xf6\xad\xe7\x0a\xff\xdb\xfd\x84\x9d\x4f\xef\xd6\x34\x57\x33\x3d\x9d\xa8\x3e\xa5\xf3\x38\xa1\xe6\x13\xa6\x3b\x63\xc8\xba\x44\x4b\x38\xf7\xb0\xf3\x09\x3b\x9f\xb0\xf3\x49\xaf\x7a\xfe\xd4\xfd\xdd\x61\x2b\xd9\xfc\xe7\x1f\xe2\x7f\xe4\x4a\x68\xba\x99\xe1\x7b\x74\xad\xfb\x49\x25\x94\x81\xe5\x3d\x3a\xc7\x3d\x84\xac\x4f\x08\xfa\x0c\xc7\x65\x45\xc2\xce\x9d\x5c\xd1\x06\x8e\xeb\x94\x4c\x67\x9e\xea\xdc\x75\xae\x66\x18\x69\x2b\x1d\x52\x8c\xb7\xa2\x88\x3c\xc3\x76\x8a\x3b\xd3\x17\x45\x18\x6c\xb3\xd8\x30\x87\x61\x3f\xc4\x4f\xa6\x14\xa2\xcd\xef\xad\x8e\x22\x72\x74\xfd\x57\xa6\x5e\x4f\xe6\xbb\xfc\xae\xe8\x2c\x60\x04\x42\x08\xf6\x1b\x2c\x3c\x1e\x41\xf1\xb5\xd0\x07\x29\xb5\x8e\x37\x64\xbf\xe9\x84\xe2\xb4\x45\x7f\xbd\x9f\xb0\xfc\x29\x44\xdc\xe3\x9b\xcf\x2c\xbf\x1d\x2b\xe2\x0b\xdb\x3b\x7b\x57\x6a\x41\x70\xeb\x9b\x41\x58\x72\xe6\xd3\xc2\x30\xfb\x69\x58\x50\xb1\xf9\xb1\xba\x9b\xd2\xb9\x79\x8f\x1d\xfc\x26\xd3\x17\x77\x4f\xf2\x89\x79\x72\x85\x51\xc0\x21\xbc\x79\xe3\x7a\x13\x17\xf5\x64\xb1\x2d\xf9\x30\x84\xe7\xf4\xe9\xa8\xce\x8f\x96\x33\x2f\xaf\xa2\x14\xbb\xf4\xf4\x67\xbc\x23\xf4\xc1\xbf\x5b\x21\xdd\xea\x30\xd3\x98\xf7\x6f\x37\xff\xd9\x33\x66\xae\xe6\xed\x21\x67\xdb\xae\xe3\xe9\xe8\x97\x9d\xf8\x02\x0d\x8c\x01\xbb\xd0\x30\x5f\x71\xb8\xf5\xa6\x3f\xbd\xb3\x87\x52\xf5\xfe\x4d\x20\xab\x68\x71\x3a\xf7\x78\x62\xc5\x8a\xf9\xd4\xe6\x2e\x46\x74\x8b\x72\x0f\xbd\x51\x6f\xde\x25\x6f\xa3\xe8\xd3\x49\x9f\xe1\x49\x43\xd3\x27\x34\x7d\x52\x2e\x9f\xd0\xf4\x69\x22\xd4\x3c\x5e\xa7\x7e\x9d\x18\x3f\xf1\x58\x9b\x90\xf5\x09\x59\x8f\xd6\xdb\x84\xa9\x4f\x16\x8f\x13\x57\x83\xfe\x74\x4f\x7d\xc6\x09\x65\x9f\x70\xb5\x09\x59\x9f\xd9\x4f\x9a\x0e\x9d\x2a\xd4\x09\x6b\x9f\xfb\x67\x96\xec\x4c\xf1\x68\x22\x74\xa6\xb2\x34\x11\x3a\xe9\x97\x4f\x9d\xc4\x69\x22\x74\x9a\x08\x9d\x26\x42\x67\xdc\x4e\x20\xf4\x66\x05\xef\xd1\x99\xaa\x19\x08\xfd\x34\x17\x3a\xe1\xf4\x91\x99\x9d\x70\xfa\xe9\xed\x9a\x70\xfa\x09\xa7\x9f\x70\xfa\x09\xa7\x9f\x70\xfa\x49\xbc\x71\x42\xeb\xa7\x89\xdc\x9f\x04\x25\xb4\x7e\xc2\xe9\xe7\x8e\xe7\x98\xf8\x0d\x8e\x6b\x2e\x74\xc2\xe6\x21\xd0\xf7\xe8\x1c\xcf\xc2\xfc\xe7\x84\xd0\x4f\x08\xfd\x84\xd0\x87\xcf\x3a\xa1\xf2\x33\x6f\xa9\xb8\x9e\x18\xc0\xd3\x3c\x12\xf4\xf7\x1e\x3f\x0c\x75\xe7\xab\x4a\xcd\x82\x4e\x93\x96\xd3\x44\xe8\xa4\x4b\x4d\x5e\xf8\x1e\x5d\xe5\xe9\x84\x6d\x6c\x2e\x74\xc2\xf5\x7f\xe2\x99\xe6\xba\xe5\xe7\x12\xe3\xfd\x42\xce\x68\x72\xdf\xd5\xbd\xa9\x71\xa7\x37\x81\x9f\x4a\xb7\x82\x87\xd5\x3b\x63\xf3\x1f\xbe\xd7\x09\xc6\x19\x1d\x74\xfe\x24\xb4\x57\xee\x0e\xb3\xc2\xc6\x28\xde\x0e\x7b\xa6\xdb\xce\xf8\x3c\x66\xf3\xd1\x46\x84\xa6\x9b\x32\xed\xef\xf0\x66\x81\xdc\xbf\x76\xef\x8b\x5b\x0b\xf6\x52\xcd\x8f\xa6\x8c\x6a\x35\x2e\x28\x6f\x76\xfb\x3f\x87\x99\x2f\x9c\xfe\x78\xce\x58\xa3\xe3\xc2\x14\xcd\xb8\x11\x14\xa7\xec\xc4\xcc\xfe\xdd\x98\xfd\x38\x6e\xad\x54\xa8\xeb\xd5\xbd\x8d\xcf\xcf\x4b\xd8\x53\x5c\x3f\xe9\x58\xe9\xd7\xe8\x14\x1f\xd1\x3d\x7f\xd3\x4d\x9f\xc9\xcc\x70\x8c\x66\x54\xcc\x7c\x73\x0a\x11\xba\xbd\x5b\xc7\x53\xc6\xb8\x75\x4f\xbe\x5b\xf6\x9f\xdc\xf0\xbe\x70\x71\xec\x6a\x64\x3f\x95\x68\x7c\x93\x6e\xca\xa0\x90\x18\x0d\x0b\xf9\x16\xbb\x51\xaf\xf3\xcd\x1c\x08\x85\x8e\x2f\x13\xfe\xb4\x42\x78\xca\xd5\x3c\xf1\xcd\xd3\xf1\x19\x4d\x88\xf5\x35\x79\xc2\xc8\x7c\xfc\xac\xb2\xd9\x69\x63\x7b\x57\x45\xd8\x19\x9b\x07\xee\x65\x96\xec\xcb\x4e\x09\x0b\x61\x9e\xcc\x4b\x88\x6e\x73\xc5\x13\x3b\x64\x62\x84\x4c\x3d\xf4\x89\x11\x32\x71\x02\xa6\xb9\xd0\x89\x11\x32\x4d\x87\xe2\x3a\xdf\xa3\x4f\x53\xcf\xe0\x51\x4d\xfa\xe5\x99\xcd\x98\x90\xc8\x19\x1b\x7b\xbc\x90\x19\x83\x79\xd3\x32\xd3\x8c\x28\x8d\xc8\x7b\x74\xbe\xb8\x36\x23\x3a\xed\x21\x27\xa6\xc8\xc4\x14\x99\xf6\xcc\x61\x1b\x4c\x1d\xf9\xa9\x23\x3f\x55\xc3\x13\x83\x21\xca\x50\x13\xf6\x3f\x61\xff\x13\xf6\x3f\x61\xff\x11\x77\x9d\x18\x00\x13\x03\x60\x62\x00\x4c\x18\xe1\x84\xac\x4c\x0c\x80\x49\xb9\x7c\x9a\x2f\x9d\x64\x75\x27\x84\x43\x04\x35\xa1\xda\x7b\x64\x46\x2b\xf6\xcd\x9a\x4e\xf3\x39\x93\x66\x39\xbf\xc4\xa6\xa3\xd4\xcc\xf2\x7b\xe2\x0a\x4c\x5c\x81\x89\x2b\xc0\x4a\xbf\x67\xcc\xf2\xcd\xa0\x4e\x5c\x81\x89\x2b\x30\xa1\xc5\x33\xf3\x7e\x18\x03\x13\x63\x60\x62\x0c\x40\x73\xef\xd1\xf9\x95\xf3\x7d\x37\xcf\xf1\x8d\x51\xae\x1d\x29\x26\xc1\x54\x15\x4f\x15\xc2\xc4\x1b\x98\x70\xeb\x69\x5a\x75\x62\x0f\x4c\xbc\x81\x89\x37\x30\xc3\x8b\xc5\x1b\x98\xf6\x1e\x33\xe2\xd2\xc5\x6d\x12\xc3\x0f\x2a\x50\xc9\x63\x3d\xe2\xcb\x84\x8d\x67\x77\xf1\x3d\x5c\x31\xbf\x61\xa7\x44\x97\x0a\xaf\xe5\xbb\x7b\xf2\xbb\x5f\x22\x24\xce\x97\x20\x53\x97\x8f\x95\x9d\x6a\x7b\x44\x9b\xdf\x31\x08\xf6\x46\x96\xf9\x3e\x8b\x57\x4f\x61\x45\xc9\x51\x9d\xfc\xec\xec\x03\x29\xee\xc9\x12\x2f\x96\xd5\x3e\x77\x05\xdf\xe2\xc8\x0c\x76\x3d\xd0\xdf\xef\xd6\xf0\x77\x1d\x8f\xd9\xb6\xfe\xb2\x7a\x03\x8a\xb3\x70\x49\xdf\x61\xaf\x82\x91\xf3\x0c\xfe\x15\x51\x9f\xcc\x4e\xc6\xea\xb0\x83\x0d\xe0\x14\xb6\x7d\xfe\x8b\x39\x1d\xf3\x75\x7b\xef\xc2\xe0\x2f\xdd\xdb\x7e\x49\x9a\x7f\xf6\x75\xdf\xb4\x07\x99\xbf\x49\x9e\x4d\x1f\x84\xe2\xc0\x49\xf7\x99\xa7\x44\x90\x6c\xb8\x78\x18\xc0\x84\xd9\xe3\xf5\xf4\xea\x09\x7e\x71\x63\xb3\x0e\xc6\xca\xf7\xa5\xc5\xf3\x44\xcd\x33\x3e\x06\x30\x9b\xf5\xc6\x09\x67\xc4\x9d\x2f\x7a\x43\xa9\x88\x74\xdf\xf0\x08\x2b\xe8\xe0\xcb\xb9\x0b\xe3\xf9\xfb\x71\x4d\x62\xb1\xef\xde\x5a\x4d\x9e\x54\x65\x76\xa7\xfa\xc2\x2f\xc7\xb3\xd7\x5c\x1c\xf6\xed\xdd\x8b\xc2\x03\x44\x50\x66\xc9\xcc\x3c\x4f\x8c\x93\x89\x71\x32\x31\x4e\x26\xc6\xc9\xc4\x38\x99\x18\x27\x13\xe3\x64\xa6\x7b\x6e\xfe\x39\x1e\x3e\x13\xef\x64\xe2\x9d\xcc\xec\xda\x30\x4e\x26\xc6\xc9\xc4\x38\xa1\xb1\x72\x8f\xae\x92\x25\x30\x4e\x26\xae\xc9\xc4\x35\x99\x71\x1c\x35\x37\x38\xa1\x83\xd3\xe4\xf3\xb4\x7a\x4e\xbc\x93\x19\x29\x7b\x5c\xcf\x69\x5d\x9b\xa6\x9d\x27\xde\xc9\x8c\x02\x0b\xde\xc9\x34\xb9\x3a\xb1\x4f\xa6\x8e\xdb\x34\xbf\x3a\x31\x51\x98\x4f\xdf\xa3\x4a\x55\x36\xc0\x44\x99\x26\x5a\xe1\x7f\xf7\xe8\x7c\x39\x01\x9f\x60\x7e\x71\x70\x12\xf5\xdf\xcf\x50\xdf\xb5\x62\xfc\x4b\x1f\x21\x6f\xa0\xe8\x36\xd7\x4a\x8b\xea\x1e\x9d\x29\x6f\x63\x12\x4c\x4c\x02\x2b\xef\x3d\xfa\xa9\x2c\xfd\xfd\x6c\x9e\x7d\x82\xe7\x82\x2b\x30\xb1\x04\x26\x96\xc0\xc4\x12\x98\x58\x02\x13\x3f\x60\xe2\x07\x4c\xfc\x80\x69\x0e\x76\x7e\x89\x65\x4f\x21\x42\xe2\x58\x02\x13\x4b\x60\xea\xb9\x4c\x95\xf3\x34\x13\x3b\xcd\xc4\x4e\x8c\x81\x69\x0e\x76\x62\x0c\x4c\xf3\x06\xf3\x4b\x77\x58\xae\xc6\xbf\xc7\x72\x2e\xcc\xf5\xda\x51\x09\xf9\x62\x22\x10\xa7\xa0\x1b\x59\x4b\x37\x79\xc7\xa5\x0d\x57\xe6\x64\x77\xbc\xc3\x95\xff\x22\x33\x0e\x37\x32\x3b\xa1\xaa\x3c\x76\x40\x3b\x8a\xd2\xfe\xc6\xcc\x1b\x3c\xe1\xec\x12\x24\x1f\xe9\x8b\x65\x0a\xdd\xcc\xc0\xa1\x8b\x77\x3c\xeb\xc5\xbf\x85\xcf\x70\xc7\x5b\xa9\xed\xdc\xdf\xb1\x62\x2b\x4e\x4b\x34\x5a\x9c\x32\x67\x2c\xd5\xe1\xeb\x4f\xf6\xfe\xe6\x27\xf7\x6f\x8a\xef\x37\xa7\x4a\x0e\x9d\x53\xdc\x8d\x9d\xe2\x86\x5d\x35\x6f\x2e\x4d\x5f\xe2\x84\xbb\x80\x11\x75\xd4\x69\x50\x99\xda\x9c\x4e\xa7\xc9\xa5\x8a\x61\x39\xce\x6e\x8c\xe1\x9b\x33\x1e\xaf\xd4\x3a\x18\xcc\xef\xfa\xe5\x6a\x55\xdf\xcf\x19\x2c\x5a\x2a\xf1\xea\x94\x8d\x17\xa3\xf1\xf8\xdc\xfe\x9e\x35\x3d\x26\xb8\xb5\x8c\xb1\x46\x1c\x80\xd3\x7f\xfc\x32\x37\x8e\x35\x65\x56\xd3\x8e\x6f\x85\xf1\xf9\xa5\xd7\xc6\x13\x26\x0c\xcb\x78\x17\x43\x77\x52\x7d\xb1\x72\xe8\x22\xc9\xfe\xf3\xd7\x82\x1a\x96\xaa\x75\x9b\x7c\x20\xd7\x5f\x71\x32\x54\x7b\xd4\x7e\x7e\xd3\xf8\x79\x97\x7c\x4f\x91\xab\xaa\x9c\xb8\x26\xd3\x7c\xf5\xb4\x9a\x4c\x8c\x93\x49\xa2\x7c\xe2\x9d\x70\x0b\x59\xc4\xc9\x17\xf2\xc9\x7a\xe2\x9b\xa1\x8c\x0d\x9d\x1b\x05\x65\xa1\xa0\xac\x27\x22\x66\x0a\xb1\x7f\xa2\x22\xce\x19\xf9\xe9\x7d\x41\x90\x4f\xd6\x93\x11\x12\x96\x8a\x4f\xac\x71\x34\x09\x91\x4f\x56\x6c\xcf\x42\xa1\xd4\x2a\x5f\x31\x4b\x46\x38\x59\x08\x27\x2b\x54\x04\x37\x75\xd9\x3e\xae\x27\xc6\x42\xd3\x4f\xa7\xdf\xc5\xc2\x16\x49\x60\x21\x09\x2c\x24\x81\x85\x24\xb0\x90\x04\x16\x62\xc0\x42\x09\xc8\x98\xcf\x42\x09\x58\xc8\x00\xcb\x80\xf6\x8a\xcd\x2a\xea\xf8\x42\x06\x58\xc8\x00\x0b\x19\x60\x69\xf7\xad\x2c\x2c\x4f\xa8\x1a\xc7\xf9\xaf\xdf\xae\x31\x80\x12\xb0\x50\x02\xd6\x13\x39\x02\xbe\x04\x19\xd9\x46\x06\x58\x4f\xa8\x6e\x9f\x33\x3f\x67\x7e\xce\x64\x80\xe4\x85\x0a\x40\x19\x82\x59\x96\xfd\x45\xc0\x39\xd2\xb8\x8b\x74\xf3\xd2\xf6\xa4\xdf\x7f\x8f\x69\x4b\x38\x7f\x38\xdf\x13\x89\x34\x28\x4a\xc0\x42\x09\x58\x46\x71\x97\x51\xdc\x85\x1e\xb0\x32\xe8\x8d\x12\xb0\x79\x5c\x68\x57\xf6\x93\x6d\xfd\xcc\x18\x75\x60\x35\x9e\xfe\x06\x67\x22\x49\xf1\x66\x43\x8c\x86\xc7\x74\xb9\xbe\x48\x25\x1b\x6e\xda\xf9\x4b\x19\xe2\x66\xdc\xe3\x5b\x1d\xbb\x2c\x70\xb0\x01\x22\xd4\xeb\xa5\x34\x5e\x4a\x63\xd6\x50\xbd\x95\x54\xac\x46\x6b\xd5\xd9\xc6\xaf\x1c\x41\xde\x24\xef\x38\x4b\x74\xa3\xf9\x7d\x81\xfc\x58\x92\x77\x8a\x41\xc0\xca\xeb\x19\xbd\x19\xeb\x38\x31\xed\xf3\xb7\x1f\x72\x5e\xc4\x79\x62\xbf\xf4\x4e\x70\xd2\xfb\xa5\x01\x6b\xa0\x69\xc4\x14\xd9\x50\x40\x9a\x6d\x88\x3a\x7c\x6f\x02\xb8\x2c\xb0\xc8\x87\x4c\xf2\x2a\xac\xde\x37\xfe\x18\x8c\x3c\xa5\xb1\x65\xac\xe6\x49\xdb\x0f\x64\xff\x6a\xc0\x44\x40\x9e\xfc\x5a\x7d\xda\x66\xc3\xb0\xd2\x83\x70\xfe\x6a\xa8\xb0\x3b\xaa\x19\x0b\x40\xae\x14\xfd\x1b\x95\xdd\x6c\xba\x8c\xd3\x2a\xe2\x48\xb5\xdc\xfb\x13\x43\x6b\x03\xb0\x44\xcc\x48\xe8\x3c\x19\x53\x8d\xac\xf7\x46\xd8\x46\x04\x7d\xb5\x79\x4e\x46\x57\x40\xcc\x8f\x71\xb9\xc7\xe6\x75\x13\x81\x7c\x35\x50\x77\x48\x6b\x23\xed\x1c\xa4\x2c\x74\xdf\x85\x46\xb2\x62\x4e\x8f\x46\xb2\xd0\x48\x96\x52\x71\xa1\x91\x44\x72\x64\xa1\x46\x2c\x64\x92\x05\x50\x58\xca\xb1\x35\x22\xce\x6c\x80\xc5\x82\xb0\x90\x49\x56\x84\xdf\x95\x8a\x0b\x99\x64\x69\x69\x2f\x94\x92\xa5\x2d\x1f\x03\x57\xe0\xda\x3d\xba\x56\xd4\x23\x96\x2c\xc4\x92\x85\x58\xb2\xe2\x47\x84\x58\xb2\x50\x35\x16\x62\xc9\x22\xcb\x1c\x92\xc3\x32\x18\xbe\x22\x0a\x2d\xe5\x67\x1c\x66\xa1\x51\x2d\x6d\x45\x44\xd0\x7b\x74\xbe\xcc\xa0\xd5\xb7\x50\x4d\x16\xda\x00\x89\xcb\x5e\x86\xe6\xd6\x48\xcb\xf0\x75\x95\xfc\x80\x48\xb0\x10\x09\x56\x7c\x4b\x10\x09\x16\x22\xc1\x42\x24\x08\xf9\x7f\x85\xde\x1f\x81\x02\x74\x82\x85\x4e\xe0\x99\x76\x06\x21\x17\x22\x41\x28\xaf\x4b\x1b\x6f\x19\x18\x5f\x69\x42\x58\x5e\x56\xc5\x1a\x2d\x62\xe0\xde\xdb\x08\x51\x1a\x1b\x5f\x28\x04\x0b\x85\x60\xa1\x10\xb0\x39\xb8\x47\xd7\xca\x1e\x21\xc7\xa2\x13\x2c\x74\x82\x45\x72\x79\xc5\x2e\xd7\x50\x39\xd9\xdb\x7b\x74\xad\x0c\x8f\x60\xb0\x10\x0c\x96\xa6\xef\x32\x60\xbe\xd0\x0c\x96\xd2\x7b\x6d\xd0\xaa\x16\xe0\x8e\xa7\x47\xa7\x78\x3f\x11\x5a\x2f\x62\xa4\x91\x0e\x36\x36\x32\xf3\x17\x45\x5e\x29\x6d\xd4\xf7\x2e\xbc\x3f\x00\x5a\x3b\xe1\xbe\x57\x87\x17\xcd\x13\x19\x2e\xd9\xfe\x7b\x62\xd7\xfd\x4d\x60\x37\xa8\xfd\x1e\x77\x47\xe8\x83\x08\xb9\x41\xce\xf7\x79\x59\xa1\x33\x93\xb3\x91\x62\x26\x5d\xcb\x60\xda\x1b\x8b\x3e\x70\xca\x13\xb2\x84\x68\xfa\xb4\x52\x22\x8b\xb4\x23\x79\x5a\xa1\xcc\x69\x84\x5b\x3d\x1f\x9e\x5a\xe7\xc8\x24\x80\xfe\x94\x27\xa0\x98\xda\xe0\xb3\x19\xca\x22\x98\xec\x47\x9b\x44\x6f\x7b\xc8\x93\x3e\x11\x0d\x20\xb0\x93\x7b\xb8\x45\xdc\x51\x2e\x91\xe3\xab\x27\x30\x53\x28\xbb\x9e\xd4\x46\xd3\x35\x12\xdb\x29\x15\x9f\x44\xa5\x91\x4c\x5b\xde\x3a\x06\x5a\x67\xc4\xc4\x7e\xe6\xa3\xa8\x7a\xa0\xe1\x65\x13\xbf\x4e\x04\x54\x63\x1b\x1f\xb3\xd5\x48\xb7\x91\x69\xd2\xcc\xab\x8c\x2e\xae\x0c\xfb\x4c\x0d\xb9\xbb\x49\x3a\xc0\x84\x57\x09\xf9\xfe\xfe\x76\x23\x0f\x20\x8e\x97\xac\xd9\x3b\x62\x72\xf1\x45\x8a\x9f\xe0\x73\x48\xcb\x33\xf6\x9f\xde\xb4\xce\xd1\xfb\x26\x9f\xfc\x04\x96\x65\x15\x4f\x7f\x21\x00\x2c\x03\xe6\xb1\x80\x35\x06\x7b\x8f\xae\x8d\xa9\x84\xdc\x52\x79\xa3\xe4\x16\x03\xe6\x46\x5a\xee\xd1\xb5\x72\x0b\xb2\xca\x42\x56\x59\x86\xfb\x8c\xb8\xde\xa3\x6b\xdd\x13\x23\xe7\x00\xd6\x7b\x74\xed\x8e\xb4\x88\x6b\xe5\x96\x8a\xdc\xbd\x37\xdc\xc6\x7d\xa1\x52\x2c\xb4\x93\x15\xca\x19\xc2\x09\xd1\xcb\x5e\xa8\x26\x46\x86\xef\xd1\x39\x31\x4a\x8c\x4c\xa5\xd8\x07\x09\x2e\x43\xe5\x04\xb4\xef\x71\x39\x6e\xc7\x9c\x73\x3f\xed\xb7\x66\x89\x7a\xf4\x80\xc8\x55\x2d\xc4\x80\x85\x18\x10\x91\x4c\x63\xd7\x77\x75\xcb\x1a\x37\x1c\x5d\x25\xde\xd1\x03\x7e\x54\x34\xa3\xe8\x0b\x49\x20\x06\x96\x0b\x3d\xc0\x50\x40\x87\xd6\xb2\xd0\x03\x16\x7a\xc0\x42\x0c\x58\x88\x01\x0b\x31\x60\x81\x2b\x33\x02\xb9\x3c\x65\xb4\xba\x26\xd1\x70\x8f\xae\xf2\xbc\x62\x2a\x89\x24\xb0\x54\x20\x0b\x49\x60\x21\x09\x2c\x40\xd3\x42\x12\x58\x48\x02\x0b\x49\x60\x89\xee\x85\x24\xb0\x9a\x57\x55\x06\xdb\x03\xad\x90\x0e\x26\x1b\x32\x9f\x65\x1c\x3b\x42\xf4\x19\x4a\xd5\x84\x6e\xad\xa6\x7e\x7f\x63\x77\x01\x04\x80\x5a\x71\x6d\x22\xba\x1b\xef\xb8\xf9\x13\x25\x06\x76\xdb\x9c\xc5\x16\xfd\x64\x13\x36\x32\x3a\x1d\xb0\x08\x9c\xc5\x2a\xbb\x52\x4d\xb1\x1b\x08\x5d\x41\xcb\x87\xf5\xe9\xdd\x72\x11\x5b\x48\x83\xd6\x28\x22\x83\xde\x41\xc0\xdc\x78\x51\xa1\x9f\xdd\xad\x0c\x00\x87\x24\xe9\x8a\xc0\xce\x1b\x53\x18\xf9\xa1\x03\x08\x3f\x7f\xf5\x65\x38\x14\xe9\xf1\x95\xed\x0f\x11\x9b\xdd\xa1\xfa\xaf\xb8\xf3\xa1\x0e\x3e\xa1\x0e\xda\x26\x1a\x96\x04\xf2\x84\xf6\xb6\x5f\x32\x5f\x1a\xb4\x4f\xc6\x4b\xe3\xc2\x17\x3a\xba\xa6\x6f\x9a\x1c\x0d\x92\x7a\x5a\x0d\x06\x10\xde\x5f\x6d\x82\x66\x8f\xfc\x33\x50\x82\x59\x6f\x64\xd8\xbc\x43\x7a\x04\x7c\x11\x09\xdc\x2d\x27\x23\xcf\xc4\xa2\x15\xec\xde\x33\x43\x58\x91\x91\x34\x7c\x81\xc6\x50\x6a\xa1\x06\x65\x9f\x18\xa9\xaa\x69\x77\xdc\xb7\xbe\x34\xc9\x88\x87\xfc\xb6\x9e\x72\x94\x96\xfc\x47\xbc\xa2\x0c\x1d\x2c\x20\x73\x24\x9a\x17\x62\xc9\xf2\xfe\x80\xdf\xef\xd1\xfb\x26\xc6\x09\x23\xac\xce\xf9\x76\x16\x08\x18\xcb\x66\x7a\x21\x99\x2c\x24\x13\x22\x69\xf7\xe8\x5a\xb5\x04\xda\x86\x6d\x7a\x47\x3c\x64\x65\x1d\x44\x32\x59\x48\x26\xcc\x89\x3a\x6e\x63\x8b\x54\xc2\x32\x1a\xbf\x48\x19\x2c\x82\x63\xa4\x0c\xee\xd1\xb5\x32\x09\x22\xca\x42\x41\x59\x28\x28\x0b\x05\x65\x11\x37\x5e\x60\x87\x85\x88\xb2\x10\x51\x56\x27\xab\xd8\xe8\x23\xa2\x04\xc8\x5d\xe8\x28\x0b\x1d\x05\x6c\x78\x8f\xee\x8f\x1a\x03\x1d\x65\xc5\x70\x44\xbb\x6e\x19\x9c\x5f\xc4\x8d\x03\xe4\x92\xfc\xbd\x47\xd7\xca\x39\x86\xe8\x57\x5c\x1c\x3d\xa9\x05\x04\xe6\x3f\xd9\x21\xc0\x47\x8a\x84\x14\xff\x3d\xba\x56\xce\xd1\x66\x58\xc6\xed\x17\x72\xd7\x32\x6e\xbf\xf2\x3e\x90\x93\x5d\xe2\x71\x19\xc0\x5f\x21\xa1\xa9\xbd\x17\xc2\xc2\x8a\xc4\x9c\x96\xe4\x9a\x21\x78\xc8\x3f\x06\xf3\x97\xc1\xfc\x45\x78\x79\x11\x9a\x58\x33\xef\x83\xfc\x83\xc8\xb0\x50\x18\x16\xc1\xcf\x85\xc8\xb0\xd0\xe0\x57\xa8\xbf\x9a\x22\x4b\x0b\xf3\x7d\x80\x2a\x2b\xfb\xe8\xd2\x86\xf4\xc9\xdf\x6f\x67\xd4\xaa\xf7\x58\xcf\xb0\xa0\x7a\x80\xd2\x37\xd2\x2b\x54\x0b\x12\x58\x8c\xf0\x6b\xc5\xa4\xf6\xee\x9b\x8a\x1d\x40\xb1\x82\x2e\x22\xfc\xf5\x31\x09\x7e\x23\x7a\xbf\x02\x8f\x47\x94\xc0\xfa\x6e\x8f\x13\x50\xf4\x05\x20\xef\x88\x7b\xbb\xdb\x3b\x04\x5d\xeb\x4e\x08\x2a\x19\x9e\x1d\x0c\x50\x76\xa7\xf9\x3d\x63\xc8\x1d\x21\xca\xc4\x3e\xc7\x51\x0d\xa7\x64\x33\xd2\x5e\x0f\xb8\x60\xa7\xcd\x3f\x22\x35\xa3\xce\x89\x88\xc7\xf7\x84\x56\x67\xa8\x01\x55\xfb\xfc\xac\xcd\x27\xe7\xcf\xa5\x71\x4b\x14\xeb\x53\x2f\x1d\x56\xee\x9d\xa1\x30\x32\xe9\x64\x37\x36\x82\xa5\xa6\xd4\x8e\xdd\xbb\xfa\x79\x47\xee\xe9\xc9\x60\x11\x9b\xe4\x9f\x23\x1c\xd1\x8c\xef\x47\xe3\x04\x62\xb3\xec\x79\xe4\x9f\xd0\x1c\x88\x2d\x6c\x99\x21\xf6\x46\x5b\xe3\xf3\x69\xa4\x23\x82\x63\xdf\xf8\x0d\xec\x93\x10\xa9\xc8\x90\x12\xf1\xf0\x57\x6b\x86\xcd\x88\x02\xb1\xe7\xd0\x14\xac\x2d\x33\xec\x11\xb3\x1b\x4d\xe5\x0f\x24\x68\x07\xbd\x45\xca\x3e\x89\x1d\xd5\x45\x24\xeb\x51\x60\x56\x48\xda\x04\x22\x96\x2a\x2b\xc6\x3a\x2b\xad\xa6\x98\xe9\xf8\xe6\x0b\x1d\x66\xa1\xc3\x2c\x92\x11\x69\xf3\xaf\x29\xdb\xd8\xd7\xaf\xec\x25\xd1\x64\x96\x5d\xde\x02\x8a\xa2\x76\xdf\xa3\xab\xe4\x19\xc4\x99\x45\x78\x7c\xa1\x4d\x2e\x94\xaa\x15\xe2\x25\x2a\xcd\x42\xa5\x59\x31\x3b\x43\xa8\x59\x08\x35\x4b\x2d\xa7\xea\xbe\x47\xd7\xca\x36\x68\x35\x0b\xad\x66\xa1\xd5\xac\x58\xe6\xa3\x4b\xac\x25\xe7\x18\x5d\x89\x68\xe4\x92\xbd\x91\xc7\xee\xf1\x38\xbe\x8e\xae\x95\x73\xc8\x59\x84\xb8\x91\x7d\xf7\x42\xc9\x59\x28\x39\x0b\xd9\x64\x21\xe6\xac\x90\xbe\x00\x0e\x8b\xb4\xc5\x4a\xfb\x1f\x49\x87\xf0\xe6\x3d\xba\x56\xce\x21\x73\xb1\x96\x9c\x83\xb6\xb3\xd0\x76\x16\xda\xce\x42\xdb\x59\x84\x2f\x16\xf2\xce\x42\xf4\x58\x2a\xdb\x25\x06\x17\x51\xbe\x85\xc2\xb3\x50\x78\x16\x0a\xcf\x22\xcd\xb7\xc8\xb6\x2f\x74\x9e\x95\x2a\x97\xe9\xc9\x22\x97\xb1\xf4\x4f\x16\xd1\xda\x85\xec\xb3\x90\x7d\x22\x2e\x17\xe2\xd9\x62\x48\xbf\x10\x7f\xd6\x4a\x3b\x76\xc4\xf4\xba\xf4\x73\xc4\x94\xae\x4b\x86\x34\x55\xe6\x4f\x86\x1d\x80\x12\x2b\x6e\x96\x3b\x12\xc7\xc6\xaf\xe4\x55\x63\x9b\xf5\xa0\xdb\x45\xe8\xe3\xd9\xe9\x1b\x24\x7b\xc7\x8b\xf5\x63\x52\x8e\x28\x38\x0d\x52\x3d\x11\x28\x06\x83\xbf\x11\x14\x0d\x1d\x94\x05\xde\x36\xa8\xd5\xc4\x51\x75\xae\xc6\xe4\x4e\x19\xa3\x13\x83\x8a\x47\x13\x74\xc8\x9f\x19\xa9\x78\x7f\xd6\xe9\xfa\x2a\xf3\x37\xd8\x68\xec\x6b\xd9\xd3\xc9\x4e\x4f\x44\x0b\x3b\x54\x5b\x22\x96\x3b\x23\xa8\xea\x8a\x08\xce\xeb\x90\xdc\xf8\x2d\x3b\xdf\xfb\xcd\x49\xf7\xdc\xec\x94\xb1\xee\xda\x91\x88\xff\x49\x71\xc6\x54\x62\xca\x21\x24\xce\x08\xa8\xea\xd5\x4c\xcf\x6b\xff\x24\x7f\x0f\x21\xbe\x9d\xa1\x21\xd9\xaf\x00\x7a\xb7\xbe\xfa\xf6\x0c\x2c\x1f\x39\x41\x30\xfe\x22\x9b\x13\xb9\x2a\x63\x1d\x86\x74\x58\x4d\xd5\xd3\xb1\x24\x67\x67\xce\x0a\x6d\x01\x72\x5f\xe3\x1b\x59\xd3\xdf\xfa\x75\x72\x32\x9c\xe8\xaf\x43\x95\xd2\x61\x43\xb5\xbb\xf5\x8c\xbb\xf1\x44\x8c\xc8\xb0\xc3\x89\xe5\xfc\x01\xe0\x1b\xdb\x4f\x2c\x78\x13\x90\xc5\xb2\xdb\x5d\x28\x63\x0b\xa8\xbe\x10\xc7\xd6\x92\x79\x90\x14\x16\x12\xd9\x42\x22\x5b\x48\x64\x0b\x65\x7a\x91\x67\x41\x3a\xe8\x85\xc0\xb5\x90\xcb\x56\xc4\xf6\xc9\xb3\x2c\x14\xb3\x65\x57\xb8\x50\xcc\x58\x8d\x74\x2c\x87\x16\x59\xcb\x85\x6e\xb6\x42\xbc\x22\xde\xb2\x18\x13\x2c\x12\x2e\x2b\xa2\xaf\x84\x5c\x16\x4a\x51\x56\xc6\x65\xef\xb9\x18\x13\xac\x0c\x17\x1b\xb0\x5d\xec\x09\x16\x59\x83\x85\xfe\xf0\x13\xfc\x47\x38\x5a\x08\x47\x0b\xe1\x68\x11\xf1\x88\x6c\xef\x42\x3b\x5a\x68\x47\x31\x5c\x5b\x00\xd8\x85\x7c\xb4\x62\x52\x89\x6c\xb5\x50\x90\x16\x0a\xd2\x42\xea\x5e\x88\x48\x0b\x9d\x64\x91\xa6\x5f\x56\xde\xf5\x93\x8e\x91\x85\x90\x4a\x32\xfc\xb8\x90\x92\x16\x89\x83\x85\x9a\xb4\x50\x93\x16\x6a\xd2\x42\x4d\x0a\x79\x7e\x45\xe0\x11\x35\x69\xd9\x8f\x2c\xf2\xf5\x0b\x2c\xb3\xf4\x66\x17\xb2\xd2\x32\x26\xb0\x44\xdf\x02\x0d\x2d\xbb\x98\x85\xb8\xb4\x10\x97\xd0\x6e\xef\xd1\xb5\xf2\x0f\xfa\xd2\x42\x5f\x5a\xe9\xba\x20\x31\x2d\x62\x23\x0b\x95\x69\xa1\x32\x2d\x54\xa6\x45\x34\x98\x34\xc4\xdd\xd7\xd8\x71\x78\xca\x27\xc2\x44\x84\xd0\x17\x6b\xa4\x44\x93\x7c\x35\x3d\xc7\x27\x82\xf3\x19\x13\x46\xd5\x39\xe9\xd6\x3e\x21\xea\x47\x2c\x9a\x67\xaf\xbe\x41\x46\x9f\x8e\xe1\xa9\x15\x23\x27\x82\xc6\x8f\x21\x74\x06\x3a\xb5\x7e\x4e\xc2\x2a\x81\x0a\xf8\xcc\x10\x21\x66\x8b\x93\xa9\x96\x8e\xb4\x9a\xbc\x92\xdb\xdb\x0e\xbd\x63\x84\xb4\x39\x9f\x1b\x65\x22\x7d\x53\x03\xd0\x9d\x1a\x69\xe8\xa7\x0d\x7b\xff\xad\x2f\xfa\x46\x26\xf4\xd6\x39\x15\xc2\xce\x89\xf7\x75\x47\xa0\x63\x44\x26\x4b\x0c\xce\x48\x0e\x06\xb4\xd4\x69\xff\x49\x83\x22\x16\xad\xf4\xaf\xd0\x91\x42\xa2\x89\x74\x1b\x23\x1b\x66\xf0\x33\xa6\x57\xdf\x6f\xc4\x8c\x35\x58\x86\xc1\x23\xe1\x75\xab\x4d\x83\x87\x35\x3c\xa9\xc7\xf0\x42\xcb\x06\x5b\x0f\xf3\x23\x73\xfa\x91\x64\xdc\x21\x94\xe9\x24\x6f\x63\x6e\x5f\xd6\x7d\x64\x8a\x85\xe8\xb1\x03\x3c\xaa\x88\x5e\x7b\xd2\xef\xee\x28\x2b\x1d\x8c\xe7\xbe\x75\xc5\x52\xb3\x9e\xc8\xf0\xa2\x64\x6e\xdd\x9b\x91\x21\x3e\xeb\xfe\xd6\xe9\x7d\xf5\x81\x47\xf2\x03\xfa\xdb\x42\x7f\x5b\xc0\xb4\x05\xf0\x0c\x5c\xb9\xd8\x22\x2c\xc2\x26\x8b\x39\xc2\x42\x8b\x5b\x68\x71\x0b\x2d\x6e\x85\x0e\xe0\xaf\x58\x68\x71\x86\x5b\xef\xd1\xb5\xf2\x0f\x72\xdc\x22\x65\xb3\x50\xe4\x42\x6e\x5f\x28\x72\x4b\x8f\x71\x21\xca\x2d\x03\xc5\xcb\x1e\x73\xa1\xcb\x2d\x74\xb9\x85\x2e\xb7\x08\xe7\x66\x9c\x67\x91\xb8\x59\x08\x74\xd6\xcd\x7b\x74\x95\xcc\x83\x6a\xbe\xbc\xdb\x0b\x99\x6e\x21\xd3\xad\x2d\xf3\xa0\xd4\x2d\x94\xba\xb5\x23\x62\x20\xf3\x10\xbd\x59\xe8\x75\x0b\xbd\x6e\xa1\xd7\x45\x60\x73\xa1\xd7\x2d\x86\x0b\xeb\xc4\x1e\x57\xe6\x41\xb2\x5b\xa9\x1b\x51\xed\x16\x8a\xca\x42\xb5\x5b\x27\xa6\x63\x32\x0f\xaa\xdd\x3a\x21\xbd\x47\xf4\x40\xe6\xd1\xeb\x58\x27\xf8\x88\xfc\xe3\x5d\x5a\xc8\x53\x0b\x79\x6a\x21\x4f\xad\x23\xff\xa0\x50\xc5\x6e\x60\xd9\x23\x2c\x02\x3b\xac\xd0\xee\xd1\xb5\x19\xfc\x91\x7f\x4e\xd6\xaf\x0c\x17\x07\xf7\x99\x31\xc6\x75\x6d\x04\xac\xe4\x9f\x93\x6a\xc4\xb3\x26\x95\xb3\x50\x99\xd6\xf9\x21\x4a\x3a\x90\x33\x40\xb4\xa8\x37\x60\x98\xf7\x13\x8a\xf7\xdd\x7a\xa9\x74\x08\xeb\x63\xb0\xa2\xb3\x34\x3e\x23\xf9\x8f\xdf\xb5\x0f\xc2\x1a\x22\xd5\xd6\x87\x1f\x31\xd1\x63\x83\x92\x61\xbd\x85\x6c\x18\xe0\x5d\xe7\xb3\xc8\xf8\xd7\x87\xc8\xb6\xd1\x22\x5e\x31\xbb\x11\x37\x36\x38\xfa\x67\x66\x94\x2a\xf4\x35\x14\x19\xb2\x5e\x4c\xf1\x3a\xd8\x56\x4c\x42\xd9\xc3\x9d\x9f\x6c\xda\xd1\x87\xd9\x88\xc0\x6c\xe6\x2a\x7b\x8d\x18\x80\x12\x67\xd6\xc7\xf0\x0e\xef\x11\x52\xb0\xbd\x83\x71\x8c\x77\x3c\x64\x90\x63\x26\xab\xba\x1b\xf1\xa2\xdf\x19\x85\xb0\xdb\x4a\x2f\x3d\x56\x0e\xa8\x37\x7a\x08\x1f\xdb\xac\x4d\x56\x62\x83\xb2\x23\x49\x57\x4b\xb6\x89\x19\x8a\x5d\xf3\x81\xba\xee\x18\x7e\xbd\xea\x90\x58\x65\x21\xe5\x6d\x22\x21\x03\xf5\x69\xc7\x9c\x2b\x78\x2b\x62\xda\x4f\xfc\xdc\x4e\xf9\x8d\x85\x2e\x02\x51\x8c\x77\xcf\x6f\xb4\x33\xb9\xd7\xc0\xa9\x4a\x63\x7f\xa8\x7f\xe9\x95\xc9\x39\x0f\x6b\xa1\x6d\x6f\xf5\xac\xbc\x03\xbc\xd6\x3b\xfd\xb4\x1e\x7f\xeb\x9b\xcf\xeb\xf8\xdd\xe3\x78\x1c\xfd\x7f\x9e\x8b\xe7\x8b\xc6\xb2\xd0\x58\x56\xa8\x0d\xf6\x89\xcb\x0e\x6e\x21\xb3\x58\xad\xee\xd1\x6e\x3d\x54\x6b\xd1\x87\xd2\xb2\x64\xdd\x85\xc6\xb2\x88\x75\xac\x18\xfc\x11\xca\x58\x88\x2d\xbf\xca\x4a\x07\x7e\x7d\x21\x19\x89\x32\x92\x02\x8b\x5c\xc6\x42\xeb\x5e\x08\x2f\x68\x1d\xf7\xe8\xaa\x0e\x29\xc9\xf9\x22\x0b\xed\x85\x1c\xf4\x3d\xc6\xf7\xde\x99\xa2\x29\x56\xa7\x91\x83\x23\xcc\xb8\xbe\x5f\x9f\xc1\xf9\x56\x70\x02\x1a\x0b\x1d\x66\x7d\x71\x89\xb7\x82\x23\xc5\xac\xac\x29\xea\xd2\x85\x04\xb1\x50\x63\x96\x55\x69\xa1\xc3\xc4\x50\x72\xc1\x6b\x16\x5a\xc4\x42\x8a\x31\x42\x7b\x8f\xce\x14\xb9\x9c\xd8\x17\x3a\xcc\x42\x87\x59\xe8\x30\x0b\x11\x66\x21\xc2\x2c\x34\x8d\x15\xe1\x4d\x44\x98\x85\x08\xb3\xbe\xb8\xfa\xcb\xae\x64\x34\x16\x6a\x43\x08\xb3\x8b\xe8\xca\x42\x6d\xb0\x5b\xb9\x47\xe7\x7b\xa6\xa1\x36\x90\xd4\xd8\xff\xdd\xe5\x4b\x13\x74\x23\x38\x6c\x04\x87\x1d\x0f\x16\x00\xef\x46\x73\xd8\x68\x0e\x1b\x50\xc3\x35\xa5\x37\xf6\xed\x06\x35\x87\x31\xb3\x9f\xc0\xc8\x0f\x6d\xa7\x37\x4d\x9a\x68\x53\x51\x89\x8b\x33\xe4\xa0\x9b\xf2\x86\x25\xef\xa7\xf7\xeb\x08\xf4\xa2\x31\x59\x9c\x93\xeb\xf1\xbb\xa2\x51\x8a\x55\x5c\x83\x12\xf9\xf3\x04\x40\xe6\xc8\x14\xfd\x4e\xec\xba\x63\xb9\xfe\x39\x91\xfa\x73\xbf\x28\xa4\x2a\x51\x9f\x1b\x10\xf3\xd1\x6c\x7e\x9e\xd2\x98\xa9\xe3\x7f\x80\x48\xdb\x31\x00\xd1\x4f\xc3\x32\xbe\x76\xd1\xc6\x00\xa3\x51\xea\x1a\x51\xeb\x79\xe3\x16\xa5\xed\xa4\xf4\x00\x52\x0d\x8d\xa2\xf7\xa4\xf9\x11\xe6\xee\x09\x98\xd6\xf8\x88\xd8\x36\xe1\x67\x8f\xa8\x87\x52\x74\x58\x78\x45\x33\xad\x97\xfb\xd3\xff\x8c\x3f\x19\x06\x33\xa4\x30\x42\x4b\x46\xcc\x1b\x4f\xe4\x84\x36\xd1\x52\x1f\xa9\x3b\x33\x22\x85\xaf\x83\x33\x06\x7a\x33\xc9\x9b\xe1\x76\x0e\x75\xd8\x80\x21\x3d\x31\x0b\xb1\xdb\x79\x8c\x54\x3d\x23\x86\xa9\x6e\x70\x6e\x79\xe9\xb2\xe9\x7d\x3f\xf8\x0d\xcf\xf8\x22\x53\x12\x8b\x71\x47\x23\x67\x24\x65\x1f\xfb\xc3\xa7\x62\x40\xee\xd3\x42\x20\x2c\x1d\x25\x43\xf2\x4f\x08\x57\x1f\xeb\xc1\x98\x46\xc7\x76\x54\x4f\x3c\x7b\xbf\x8d\x31\x83\x9e\x7d\x8f\x5e\x37\x43\xa7\x78\x33\x1b\x6f\x66\x93\x29\xd9\xd8\x33\x1b\x7b\xe6\xb7\xa3\x46\x82\xda\x6a\xac\xcd\xea\x60\xeb\x27\x6e\x7c\x1a\x83\xbe\xbd\x33\x34\x4b\xcc\x65\xe3\xd6\x6c\xdc\x9a\x8d\x5b\xb3\x71\x6b\x36\x3c\x60\xeb\x8e\x6d\x0c\x9b\x0d\xf3\xdb\x19\xdc\x55\x79\x6f\x3d\x4a\x82\x08\xf7\xe8\x5a\x62\xd3\x84\x5d\x22\x35\xbb\x63\x3f\x8f\x7f\xb3\xf1\x6f\x98\x88\xdc\xa3\x6b\x19\x05\x11\xe9\xd8\x11\xb8\xc4\xc5\x41\x5b\xea\x1d\x79\x59\xbc\x9c\x6d\x9d\xc8\x9a\xb1\x33\x44\x87\xd2\xb9\x71\x74\x36\x8e\xce\xb6\x4e\x6c\x6b\xfc\x8e\x4c\x40\xf6\xd8\xf8\x3a\xdb\x7e\x63\x33\x68\xdf\x56\x97\x9d\x21\x3d\xac\x9d\x8d\xb5\xb3\x31\x42\x42\x6b\xdf\x58\x3b\xcc\xf8\xef\xd1\xb5\x76\xf8\xb8\x3b\x1b\x77\x27\xe6\xb5\xd9\x33\xe8\x0f\xf6\x26\xe7\xb1\x49\xe7\x87\xe3\x82\xca\x75\x8f\xae\xfd\x5c\xab\xd2\x25\x36\xb1\x63\x56\x47\xda\x63\xe3\xf7\xec\x91\xfe\xa0\x54\x64\xbf\xb4\xf1\x7b\x76\x0c\xa7\xb1\x7c\x36\x96\xcf\xce\x70\xe3\xcf\xa0\x65\xe4\xe8\xdd\x8b\xa0\x0c\x59\x28\x22\x14\x4f\x67\xff\x13\x7b\x39\xef\x67\x7b\xe7\x3b\x6f\x26\x14\x39\xc1\x67\x75\x7f\x1a\x69\xb6\xc3\x0e\x31\xba\x15\x03\x60\xdd\x96\x67\x7a\xe7\x67\xc6\xb0\x67\x7e\x9a\x7f\x3b\xa7\x83\xe2\x30\xd0\x72\x2d\x2c\xed\x59\xb9\xd6\x6f\x5c\xe2\x45\x8f\xe3\x59\x90\x78\x7b\xbf\x27\xc6\x4e\xaa\x8a\xc7\x48\xea\x43\x8c\xef\xc9\x10\x56\xec\x90\x55\x6f\x0f\x81\xf2\x67\xc5\xa6\x3d\x63\x9f\x37\x91\x3c\x5b\x9c\xee\x18\x55\x3a\x73\x93\x24\x8b\xad\xd4\xf6\xd7\xa1\xe9\x66\x34\xe0\x51\xe7\x3d\xc7\x3e\x2a\x66\x33\x47\x6d\xc4\xf2\xea\x91\xc0\xce\xf9\xdd\x61\x77\x32\xdf\x13\x9f\xc6\x90\xd7\x51\x2b\x93\x85\xad\x47\x3d\x47\x5c\x66\xfa\xbd\xfd\x75\xc6\xc7\xb6\x01\xce\x87\x31\xe7\x4c\x22\x0f\x02\xaa\x27\xae\x83\x46\xea\xa8\x90\x2a\x9f\xd7\x1d\x23\x0e\xfb\xbc\x49\xd5\xd9\x0d\x66\xbc\xeb\x8d\xf1\x33\xab\x86\x19\x9c\xde\xfe\x10\x1e\x96\x01\xe9\x37\x16\x77\x9e\xe0\x17\x53\x2e\xd9\xc9\x58\xd9\xa3\xaa\xd8\x23\x09\xd8\xf2\xa5\xcb\xb6\xf5\x04\x77\x46\xd8\x2c\x02\x1b\x57\x6c\xe3\x8a\xb1\x66\xbc\x47\xef\xaa\x5c\x84\x31\xb6\xd3\x01\xc7\x18\xdb\x91\x17\xc1\xfb\xd9\x58\x2f\x1b\xeb\x65\xeb\xb5\x6d\x9c\x95\xf4\xf7\x37\x56\xca\xc6\xd5\xc8\x88\xd9\xc6\x4d\xd9\x84\x2d\x36\x6e\xca\xb6\x8b\xde\x58\x29\x1b\x12\xb9\xf1\x4e\x36\xde\xc9\x86\x92\x6e\xbc\x93\x8d\x77\xb2\xc3\x66\xc0\x3b\x31\xf4\x71\x8f\xae\x92\x0f\xb1\x4c\x36\x96\xc9\xc6\x32\xd9\x6c\x0c\x76\xa5\xbb\xd7\x39\xc7\x27\xcb\x7b\x58\x02\x3f\xcc\xa0\x22\x81\x17\x29\x46\xb9\xce\xae\x7b\xc3\x33\x76\xcc\x8a\x30\x03\xb6\x1e\xe5\xc6\x0c\xd8\x98\x01\x1b\x33\x60\xe3\x04\x10\x28\xb9\x47\x57\xc9\x6f\xde\x84\xc8\x8e\x6f\x6c\x80\x8d\x0d\xb0\x49\x5a\xec\x8a\x68\xb8\xfc\xa6\xef\xb0\x2b\x62\xb5\xf2\x1b\x61\x8b\x4d\xd8\x62\x93\xb4\xd8\x64\x2c\x36\x19\x8b\xcd\x02\x76\x63\x12\x6c\x1c\x82\x8d\x3d\xb0\xb1\x07\x76\xa5\xf7\x21\x3b\x61\x0f\x6c\xec\x81\x5d\x79\x3a\xf2\x12\x12\xfe\x86\x15\xed\x8e\x95\xd4\x13\x59\xf0\xd8\xd7\x21\xd3\xc2\x6e\x6f\x95\x7c\xdf\xb4\xec\xd6\xec\xee\xc2\x02\x59\xe1\x85\x84\xec\x9a\xa3\x5d\x9f\x8a\xd0\x70\xca\x22\x4f\xb9\xce\x4f\x52\xc7\xf9\x5f\x18\x24\xce\x57\xbd\x19\x39\x59\x27\xb5\xb8\x2a\x1c\x7a\xb4\x0c\x98\x2c\x43\x25\xeb\x8d\xc8\x45\x2a\x78\xbb\x59\xc3\x23\x24\x24\xee\xd1\x99\x6a\x68\x2c\xc0\x65\x0c\x64\xe9\xed\x2e\xbc\x9c\x65\x00\x64\xbd\x3f\x9b\x3d\xe7\xeb\x6d\xa1\xeb\xaf\x9f\x49\xcc\xca\xff\xf8\x5d\xfa\x0e\x6f\x68\xd2\x76\x32\xa8\xf8\x0b\x15\x7f\x21\xe7\x2f\x54\xfc\x85\x84\xbf\xde\x88\x5c\x44\x62\xf5\xc7\x64\x8a\x11\x4b\x4c\x46\xfd\xff\x1b\x89\xe4\xec\x3d\x7c\x7e\x84\x5c\xbf\x08\xb3\x66\x58\x4c\xd1\xc7\x74\x21\xd2\x15\x50\xcc\x17\xa2\xf9\xea\xb9\xbf\x33\x38\xdc\xce\x78\xa9\x33\x8d\x51\xc0\x78\x5e\xdd\xea\x77\x66\x84\xe4\x61\x54\xf6\x40\xe6\x58\x94\x65\xf0\x16\x32\xf1\xc6\x1c\x08\x96\xf0\xea\xc3\x1e\x55\xca\x79\x82\x9d\x97\x5e\xde\xb0\xf7\x8b\xd0\x58\xf9\xe9\x64\x23\x3d\x21\x7f\xcc\x41\x53\x09\xe0\x9a\x6c\x2c\x93\x8d\x65\xb2\xf1\x4b\x36\x36\xc9\xc6\x24\xd8\x9d\x41\x75\xf5\x0c\x06\xc9\xee\x08\x16\xa8\x64\xf0\x45\x76\x4c\xb6\xf0\x45\x76\x67\x5f\x2a\x72\x31\x45\x36\x8e\xc8\x96\x09\x77\xe7\xf7\x8a\x4a\x58\xe6\xc6\xff\xf8\xc9\xa7\x76\xac\xdf\xc5\xe6\xcf\x68\x59\xed\x01\xc5\xdf\x90\xfb\x0d\xb3\xff\x21\x73\xf6\x9f\x1b\x5a\xbf\xdd\xff\x0d\xad\xdf\x70\xfa\x1d\x79\x05\x38\x3d\x34\xb4\x71\x26\xee\xd1\x55\xa2\x12\x4e\xbf\xa1\xf2\x1b\x2a\x4f\x8a\xe5\x1e\xfd\x54\x54\xea\xdd\x6f\xd8\x8c\x51\xd9\x7b\xbc\x9f\x43\x00\x62\x43\xdc\x37\xc4\x7d\x43\xdc\x37\xac\x7d\xc3\xda\x63\x6d\x12\x7b\x95\x6d\x37\xbb\x21\xeb\x3f\xc1\x23\x38\xfa\x86\xa0\xef\x60\xba\x30\x72\xb4\xf6\xde\x30\xf2\x0d\x23\x27\x96\xd7\x11\xf7\xdc\x70\xf1\x6d\x87\xbf\xe1\xe2\x1b\x2e\xbe\xe1\xe2\xdb\x9b\xb6\x21\xe2\x1b\x22\xbe\x21\xe2\x31\x85\x45\xbf\xbf\x47\x57\xc9\x93\x70\xf1\x0d\x17\xdf\x76\xfb\x1b\x3e\xb1\x75\x72\xb7\x5e\xe7\x86\x6b\x6e\x1d\x81\x0d\xcb\x8c\x94\xc1\xf9\x19\xb1\x4c\xc6\x93\xc7\xbb\xb7\x1d\x97\xf7\xed\x90\xd3\xdd\x7e\xba\xbd\x7b\xc7\x55\x31\x35\xff\xfc\xff\x9b\x33\xbd\xbd\x6f\x90\xe9\xfb\x6f\xb5\xd6\xb1\xc6\x1d\xab\xd8\xc1\x16\x3d\xb8\xa4\x07\x67\x34\xc6\x36\x41\x9e\x8e\xd5\xed\x60\x67\x1e\xfb\x82\xf1\x90\x6b\x79\x6d\x65\x48\x88\x8e\x6c\x95\xc8\x04\x0f\xc2\x2e\x03\xe2\x35\xec\x2c\x22\x46\x9c\xf1\xb1\xc1\x14\xf0\x23\x5e\xf6\x6c\xe2\xa4\xbf\x1c\x8b\x47\x88\xba\xff\xd9\xba\x0d\x83\x5d\x8c\x76\xfa\x79\xd8\x8b\x12\x70\x67\xe8\x5e\x19\x11\x8d\xac\x61\xcc\xb4\xb0\xee\xaa\xd8\x7d\x15\x5b\x53\xd6\xf5\x55\xbf\x9e\x88\x81\x2f\xf2\xe5\x4c\xe8\x8b\x81\x7d\x31\xb0\x2f\x86\xdc\xc5\x90\xbe\x98\xcd\x17\x53\xed\x62\x5c\x5d\x4c\xb5\x8b\x7d\x75\x31\xc0\xae\x0a\x6b\x19\x0f\x80\xcd\x76\x31\xcf\x2e\xa6\xda\xc5\x90\xa3\x18\x57\x17\x5b\xeb\x2a\x82\xef\x86\xf7\xef\xff\x3b\x12\xda\x98\x23\xff\xe3\xdf\xec\xdb\x89\x92\x18\x79\xb8\xff\xf6\xd3\x37\x9f\xc0\x8e\x62\xe4\x38\x58\x53\xdc\x73\xd6\xe3\x4c\xab\x1b\xe4\xfb\x67\xff\x0c\xed\xde\xe1\x0a\xc8\x84\x7b\x46\x12\x45\xcc\x42\xbb\x77\x38\xcd\x70\xee\xad\xd3\xbd\x21\xdc\x3b\x08\x1f\x6c\x7b\x43\xb5\x37\x54\x7b\x07\x45\x80\x6a\x6f\xa8\xf6\xfe\xfd\x5e\x35\xff\x4c\xe4\x5a\x4f\x21\xd9\x1b\x86\xbd\x61\xd8\x5b\xee\xdd\x3f\xc9\x12\x15\x3e\x0c\x7b\xc3\xb0\x37\xf4\x7a\xc3\xad\x33\xdc\xba\xe1\xd6\x5b\x96\xde\x70\xeb\x2d\x57\x07\x05\xdc\x70\xeb\x18\xb5\x6e\xb8\xf5\x86\x5b\xef\x48\x7f\xc4\x14\x16\x56\xbd\x21\xb5\x1b\x4a\x8d\xdf\x70\x8f\xce\x91\x5d\xe1\xd3\x1b\x3e\xbd\xc3\x11\xd1\x7f\xdc\x90\xe9\x0d\x99\xde\xd6\x85\x0d\x99\x66\x6c\x7f\x8f\xae\x12\xfb\x90\xe9\x0d\x99\xde\x90\xe9\xad\x0f\xb8\x21\xd3\xdb\x6a\xb2\x21\xd3\x1b\xd2\xb3\x57\xc4\xac\x65\x00\x28\xe3\x86\x32\x6e\xf8\xe2\x86\x2f\x6e\xf8\xe2\x4e\xd7\x0f\xbe\xb8\xe1\x8b\x1b\xbe\xb8\xe1\x8b\x1b\xbe\xb8\xe1\x8b\x3b\xb2\xfe\xf0\xc5\x0d\x5f\xdc\xf0\xc5\x0d\x5f\xdc\xf0\xc5\x0d\x5f\x64\x28\x75\x8f\xae\xf5\xf4\xe1\x8b\x44\x78\xab\x96\x37\x73\xcd\xbc\x5d\x78\xf9\x86\x8f\x74\x60\x7f\x22\x9e\x38\x79\xe9\x27\x14\xa6\x20\x03\xe9\x62\x11\x5d\x8c\x9c\x8b\x49\x73\xb1\x5b\xae\x18\x3c\x7f\x77\xfd\x9a\x8f\x9e\x72\xe6\x40\x1a\xa7\xaa\xb1\x67\x5a\x3e\x6f\x0c\x27\x82\xbf\xdd\xb2\x68\xcb\xea\x2d\x7b\xff\x8c\x94\x64\xec\xb6\xfa\x13\x67\xe8\xc6\xf9\x68\x0c\x8f\x96\x51\x7b\x66\x58\x3b\x16\x17\xf9\xe4\x8e\x89\x48\xae\x72\xfe\x1b\x99\xad\x5c\x1b\xeb\x11\x56\x25\x3b\x96\x24\x3e\x79\x65\xe8\xdb\xff\x9f\x7c\xb2\x23\x29\xde\x15\xc1\xe2\x19\xf3\x0f\xd6\x1a\x64\xa6\x3d\xf1\xf6\x9e\x74\x46\xec\x57\x6c\x51\x48\xdf\xc2\x7e\xda\x7b\xd2\x2b\x7f\x4b\x8c\x37\xe0\xd6\x2b\x8c\xe1\xc8\xb0\xfa\x5b\xbc\x1b\x0c\x02\x3b\x6c\xe0\x5e\x31\x2a\x20\x40\x0c\x07\xed\x88\x88\x79\x27\x99\x3a\x74\xaf\xfc\x96\x58\x32\xc4\x7e\xc0\x6f\xd9\xe9\xb0\xbf\x31\x5a\x88\x19\x83\x4f\x78\x22\xdc\x1c\xc3\x06\xe7\xac\xb0\x3c\xc3\x60\x8e\x35\x48\xcc\x42\x9c\x4f\xaa\x78\x27\x52\xd4\xde\x30\xe9\xed\x93\x37\x2c\x73\xfb\xbd\x1b\x26\xbd\x5d\xb5\xc3\xd6\x82\x49\xeb\x59\xdf\xa3\x6b\x65\x12\xc8\xf4\xf6\x5b\x36\x64\x7a\xfb\x2b\x36\x64\x7a\x43\xa6\x77\x4c\x4f\x7d\xc3\x0d\x99\xde\x90\xe9\xed\xfb\x6f\xc8\xf4\x0e\x7f\x14\x32\xbd\xfd\x75\x1b\x32\x0d\x81\xeb\x0d\x99\x66\x8a\x7c\x8f\xae\x95\x67\x20\xd3\xdb\x3d\xd9\x90\xe9\xed\x0e\x6f\xc8\xf4\x86\x4c\x6f\xc8\xf4\x86\x4c\xef\x08\x43\xc3\xa7\x37\x7c\x7a\xc3\xa7\x37\x7c\x7a\x7b\x2e\xdb\x73\xc1\x35\xe9\xed\xce\xef\xf0\x65\xdd\xd5\x0d\x9f\xde\xf0\xe9\x0d\x57\xd8\xf0\xe9\x9d\xbb\xea\x0e\x33\xec\xef\x0d\x9f\x26\xdd\x78\x8f\xae\x95\x85\xe0\xd3\x1b\x3e\xcd\x4a\xa4\x59\xce\xdf\xa3\x6b\x65\x21\xa8\xe7\x86\x4f\x6f\xf8\xf4\x26\xb5\xb1\x61\x8d\x1b\xd6\xb8\x45\x68\x86\x2b\x37\xac\x71\xc3\x1a\x37\xac\x71\xc3\x1a\x37\xac\x71\xc3\x1a\x37\xac\x71\xc3\x1a\x83\x98\x6e\x58\xe3\x8e\x4d\x08\xac\x71\xc3\x1a\x37\xac\x71\x07\xa7\x81\x35\xee\x08\x69\xc1\x1a\xf7\xcf\x3c\x63\xc6\xde\xc6\x1b\x28\xee\x76\xde\x64\x51\xe0\xaf\x23\x64\xd9\x7d\x62\x13\xb2\xf2\x6f\x72\xff\xec\x79\xe0\x88\x0d\x11\xec\x9d\x77\xfb\x8b\xb1\x87\x77\x78\xc7\x1e\x23\x86\x19\xb1\xf7\x20\xf7\x5f\xb1\x09\x89\x69\x47\x2c\x37\x48\xff\x8b\x35\xf8\x5f\x43\xfe\x1a\xc2\xd7\x64\x01\xda\x9e\xae\x23\x92\x15\x3b\x1f\xfb\xaf\x7e\x63\xcb\xb1\x62\x2d\x10\x7b\x8c\x58\xf6\x46\xa0\x1f\x73\x3a\x76\x1d\x44\xae\x09\x26\x74\xf8\x2e\xf6\x74\x6d\xf7\xd7\x47\x46\x22\x56\xd0\x31\xfd\x85\x23\xf6\x09\xf7\x3a\x36\x1e\x27\x46\x1a\x38\xd9\x6f\x84\xf5\xc9\xe2\x8b\xfd\x58\xa2\xc2\x66\x1a\x8e\xd2\x70\x94\x86\xca\x34\x34\xa5\xbf\xd8\x15\xe0\x76\xdb\xcd\x35\x04\xa8\x8d\x24\x37\x94\xa5\xbf\xd8\x0f\x44\x82\x5c\xae\x86\x46\x74\x46\x26\xff\x8b\x9e\x76\xb4\xbe\x29\x9d\x46\x75\xff\x8b\xee\x77\x48\x38\xb4\x7c\x47\x14\xc8\xf3\x3f\x7e\xc9\x89\x9e\x79\x3e\x21\xda\xdd\x51\x2a\x7e\xfe\xea\xcb\x6c\xf1\x88\xee\x77\x34\x78\xa3\xfe\x1d\x0d\xd2\x84\xb5\xe5\x0b\x3c\x6d\x38\xab\x37\x78\x7a\x83\xa7\xb7\x14\xb8\xbd\x08\x1b\x3c\x8d\x42\x79\x8f\xae\x95\x8a\x32\xc7\x0f\xa4\xde\x40\xea\x9f\x1e\x9a\x17\x87\x7a\xca\x3d\xba\x56\x2a\xf2\x8a\x6d\x50\xf5\x06\x55\x6f\x50\x35\xe0\xf2\x1e\x87\x23\x38\x55\x2a\x3a\xf1\xb5\x97\x8a\xe2\x4c\x0d\xaa\xde\xa0\xea\x7d\x7e\x7a\xf5\xce\x11\xf4\xf1\x21\xd2\x3c\xd8\x5e\xb1\x6d\x5e\x76\x9b\xd3\xdd\x5e\x84\x7d\x42\xfb\x14\x46\x34\x30\x36\x0d\x8c\xad\xb5\xb0\xe9\x5e\x6c\xf0\xe2\xa6\x7b\xb1\x81\xc5\x34\xb4\xef\xd1\x6f\x0f\x5d\xd6\x5f\xad\xfd\xb0\x41\xc9\x5b\xfb\x61\x7b\x01\xb7\xf6\x03\x6d\xb7\x36\x03\xdd\xfb\x47\x7b\xf0\x57\x78\x85\x37\x35\x8b\x6d\x10\x66\x6b\x42\x6c\x0a\x01\xfb\x8d\xd2\xac\x94\xf9\x86\x2c\x2a\x41\xf2\xb6\xd8\x6f\x14\x2c\xa5\x3d\x84\x90\x9d\x11\x21\xed\x87\xfd\xc6\xbd\x51\xd2\x32\x56\xb3\xbd\x9e\x9b\x72\xc0\xa6\x1c\xb0\xb5\x22\xf6\x9b\x01\x49\xc9\xc9\xcb\xbb\x29\x04\xec\x37\x34\x33\x77\x89\xc7\xc4\x36\xf1\xbf\x35\x1b\x32\x52\xb4\x33\xd9\x6f\xe4\x67\x8e\xe8\xc9\xcf\x1c\xfd\x4f\x47\x11\x3a\x2a\xcd\xde\x3d\x2d\x46\x54\x8d\x69\xfc\xed\x89\x36\x92\x96\xe1\x34\x34\x37\x47\x34\x57\xa3\x5d\x19\x8a\xef\x1b\xcd\xdb\x28\x36\x47\x81\x36\xa3\xa3\xd1\xce\x75\x7e\xa6\xc6\x3b\x9a\xb4\x51\x7f\x8d\xa2\xac\xff\x89\x1e\x23\x65\x11\x03\x20\x53\x3b\x61\x1a\x00\x99\x5a\x05\x33\x6e\xda\x36\x31\x74\x29\x0b\x35\xa8\xfe\x79\xcd\x67\x1c\x72\xc3\xcf\x8e\xff\x3f\xa5\x05\xdb\x06\x22\xcc\xd6\xbf\xb4\x79\x3e\x4a\x3f\x7c\xdb\x6d\xe3\x8c\xd7\x95\x81\xa0\x5a\x71\x1b\xac\xbb\x1d\x31\x4a\x53\x46\x6c\xca\xc0\x4b\xad\x78\xdf\x74\x60\x7d\xae\x37\x36\x34\x48\xef\x85\x62\x5a\xe8\x67\x85\xc4\x5b\x51\x0e\x44\x9a\x2d\xb4\xd2\x42\x14\x2f\x94\xd4\x42\xb2\x2d\x44\xca\x42\x4c\x2d\x54\xd2\x42\x6c\x2b\x04\xb6\x42\xa8\xab\x15\xe5\x33\x64\x27\x74\xbb\x42\x04\x2d\xd4\x94\x5a\x21\x44\xd1\x24\x43\x7d\xa9\x15\x1f\x61\xae\xcd\xc8\x63\x85\x24\x56\x2b\x5e\xa2\x3c\x01\x11\xc6\x0a\x41\xa5\x50\x38\x0a\xa5\xa4\xd2\xde\xdb\xd4\x20\xb6\x99\xfb\xfd\xc6\x7b\x3d\x54\x6a\xb1\x0f\x1c\xdf\xc0\xf1\xfd\x65\xbc\x42\xbc\x48\xc3\xfb\x8b\xeb\x90\x48\xe1\x3f\xb2\xe3\x67\x01\x22\xdf\xf4\x4e\xf6\x17\xb5\x55\xc5\xc5\xf7\x1b\x55\xf3\x53\xa5\x84\x14\xbe\x81\xe0\x1b\xfc\xbd\xa5\xe7\x0d\xf8\xde\x54\x1f\x36\xd5\x87\xfd\x65\xec\x4e\xc9\x00\xfe\xde\xc0\xee\x0d\xec\xde\xc0\xee\x2d\x1b\x6f\x00\xf7\x06\x70\xef\x78\x20\x02\xb8\x37\x80\x7b\x23\x8b\x6e\xba\x08\x3b\xce\xd1\x00\xee\x0d\xe0\xde\xa0\xed\x4d\xef\x61\x03\xb8\xb7\xac\xbe\x41\xdb\x1b\xb4\xbd\x65\xfb\xfd\x65\x6c\x56\x96\x06\x70\x6f\xab\xc3\xfe\x42\x22\x15\x95\x00\xee\x0d\xe0\xde\x1a\x00\x1b\xc0\xbd\x41\xdb\x1b\xbe\xbb\x2d\x3b\x1b\x7e\xbc\xc1\xd9\xe7\x37\xce\xf3\x68\x84\x50\xd4\x83\x61\x1f\x18\xf6\x81\x61\x1f\xb8\xf2\x81\x5e\x1f\xb8\x75\x46\x72\x8e\x55\xe9\x3c\x3f\x35\x05\x3f\x2d\x3f\x2d\x6d\x12\x4d\x11\xa0\xe2\x01\x2a\x9e\x27\xa3\x85\xed\x9c\x76\x0e\x2f\x98\xe7\x47\x05\x89\xb7\x91\x7f\x2f\xff\x5e\xce\xd1\x4a\x01\xe1\x22\x14\x15\x02\x4f\xfd\x08\xc6\x67\xe5\xdf\x7e\xea\xdd\x8e\x0f\xd4\xcb\x79\xd6\xd8\xd4\xa2\x03\xa1\xd5\x5a\xda\xa2\x85\x8c\x51\x54\x67\x8b\x56\x62\xc5\x97\x84\xc6\x6c\x8d\xf8\xf9\x6a\x1b\x0c\x0e\xdd\x21\xaa\x8d\xa8\x94\xcf\x9f\xda\x4d\x39\xd2\xaf\xa2\x53\x45\xc7\x6e\x88\xb2\xb1\xa2\x01\xf3\xc6\xf7\x2a\x3f\xa5\x77\xe5\xf3\x57\xb4\xaf\x32\x7e\xce\xa1\x6f\x69\xff\x6c\x3e\xa1\xbc\xb1\x06\x9d\xf6\xb1\xe3\xbe\xfd\xe4\xff\x11\xad\x35\x84\x6c\x13\x07\x4a\xe1\x00\x73\x8d\x68\x44\x9f\x8c\x30\x9c\x8c\xa2\x3b\x9f\x0a\x34\x97\xa8\x61\x3c\x76\xd0\xa5\x18\xb7\xf4\xbb\x47\xd7\xc6\x47\x78\x67\xb0\x3d\xd7\x3a\xf3\xcb\xd0\xc4\x6b\xe8\xcc\xe7\xfb\x8d\xb4\xd3\xc6\x8e\xcb\x67\x94\xcc\x76\xce\xc9\x67\xe6\x4c\x0a\x37\xee\xc3\x01\x5b\x79\x3a\xc3\x98\xc9\xe0\x2d\x38\x80\x66\xe3\x68\x51\x47\x5f\xe4\x9c\x1c\xf3\xff\x54\x0c\x9f\x78\xa1\xd2\xab\xf8\x39\x84\x72\x10\x6e\x7a\x69\x3b\x4a\x87\xf7\x2a\xea\xaf\x43\xc6\x1e\xc6\xaf\xc6\x9b\x77\x32\x3a\x25\x68\x90\x60\xe1\x13\x9f\xe2\x27\x0d\x42\xcd\xb9\x50\x86\x40\xc1\x07\xe4\x7b\x9e\xb4\xae\x35\xed\x80\xbd\x07\xcc\x7b\xc0\xbc\x07\xcc\x7b\x80\xba\xc7\x46\xfc\x00\x75\x0f\x20\xf7\x3c\x71\xe9\xfa\xd2\x2c\xf4\xd3\x4f\x9b\xf0\xd1\x1a\x14\x6b\x6a\xb3\xa3\x2a\x3b\x23\x5e\xa8\x62\x8d\x0b\xcf\x01\xb5\x1d\x50\xdb\xc9\x38\x0c\x90\xed\x58\x31\xcf\xc8\x90\x9d\x86\xba\x75\xf6\x00\xd6\x0e\x48\xed\x10\x61\x38\x88\xdf\x87\x14\xc3\x01\xaf\x1d\x63\xf5\xc7\x58\xfd\xc9\x90\xaf\xb1\xfa\x63\xac\xfe\x8c\x38\x88\x89\x47\x74\xca\x33\x42\x21\x6b\xd7\x1a\x82\xa6\x5b\x7b\x8c\xd8\x1f\xab\xf9\x31\x62\x7f\x8c\xd8\x1f\xc3\xf5\x07\xf0\x78\xac\xf8\x07\xe4\x78\x42\xdf\x55\x09\x1c\x63\xf5\xc7\x28\xfd\x31\xf0\x72\x8c\xd2\x1f\xa3\xf4\xc7\x28\xfd\x41\xef\x3c\xaa\x82\x63\xe8\xe6\x64\xd8\xc7\x28\xfd\xd1\xf2\x3c\x06\xea\x8f\x5a\xe2\xa8\x1c\x0e\x1a\xea\x31\x4a\x7f\xe8\x45\x1d\x03\xf5\xc7\x40\xfd\x01\x2a\x1e\xa3\xf4\x07\x8d\xed\xa8\x1f\x8e\x51\xfa\xa3\xd2\x38\x46\xe9\x8d\x70\xde\xa3\xab\xc4\xaf\x4c\x32\x40\xb5\xc3\xa0\xd0\xe0\x91\x37\x50\x52\xc7\xeb\x6d\x97\x73\x46\x94\x66\xe8\x12\x0f\xbe\x75\x03\xb5\x75\x44\x1a\x22\x23\x57\x6f\x28\x79\x6f\x34\xba\x7c\x82\x8c\x61\x10\x60\x10\x9a\x18\xb7\xd6\x2a\xde\xc1\xf7\xaa\xe8\xc7\x3c\x7e\xfa\xba\xca\xff\x47\x21\x86\x06\xcc\x47\x9d\x54\x5b\x77\x7c\x22\xc2\xc0\xc5\xa0\x44\x38\x90\xf3\x07\xf7\x87\xa1\x3d\x3c\x3e\x74\x98\xff\xd9\xfb\x97\x55\x8b\x62\x65\x4d\xd0\x7b\x97\x6a\x2f\xc3\x50\xe8\x12\x52\xbd\xca\xe1\x34\x6c\xd8\x14\x36\x45\x35\x5c\xf8\xfd\x4d\x7c\x31\xf7\xb1\xc1\x09\x75\x2a\x33\x4d\x76\x76\x47\x8c\x35\xd7\xd0\x9c\xe3\x22\xfd\x0a\xc5\xe5\xff\x5f\x5f\x27\xe7\xa8\xd2\xf8\x68\x65\x16\x0c\x40\x83\x7a\xe0\x50\x10\x1a\x5f\x6b\xeb\xfc\xca\xc4\xa4\xd8\xd1\x3b\xf8\x9a\x27\xaf\x4b\xe6\x0b\x37\x82\x2a\x5f\x60\x71\x8f\x8f\xab\x58\x41\x7a\x48\xc3\x89\xcf\x75\x0a\x3b\x87\xcc\xa1\xa0\xfd\x17\xf6\x2c\x81\xc3\x26\x5a\xc7\x53\x71\x41\x60\x72\x0d\x29\xd3\x21\x1d\xb1\xe0\xd8\x39\x47\xce\xd3\xd3\xea\xc5\xe5\x86\xc1\x2b\xa8\xb7\x87\xf4\x9c\x90\xce\x1d\xb4\xf6\x22\xb8\xa5\xff\xc9\xc9\xea\xb8\x59\x5d\x77\x1f\xd3\x29\xcb\xe6\x79\x3d\x34\xcb\x14\xc1\xb5\x5b\xfa\x93\x02\xdd\x7c\x87\xb7\x5b\xfc\x91\x8a\x3d\x07\x16\x49\x57\xb2\x7e\xa1\x80\x6b\xa4\x41\x83\xd1\x0c\x43\xd6\xd9\x10\x34\x88\x66\xae\x35\xf7\x85\xaf\x13\xa9\x42\x0a\x5f\x27\x3a\x85\x64\x09\xa7\x72\x8c\xec\xa2\x5a\xd6\x6f\x0a\x56\x27\x5b\x37\x85\xa9\x13\x25\x42\x46\xab\xaa\x99\x95\x82\xcf\xa9\x38\x3d\x05\x9c\x53\xc0\x39\x05\x9c\x53\xc0\x39\x05\x9c\x53\xa8\x39\x85\x9a\x53\x90\x39\x05\x96\x53\x60\x39\x85\x91\x9b\x67\x2e\x85\x91\x53\x18\x39\x85\x91\x53\x18\x39\x91\xa5\x24\x76\xeb\x54\x76\x97\x42\xca\x29\xa4\x9c\x68\x16\x52\x60\x39\xa5\x76\xa7\xc0\x72\xd2\x44\xc8\x68\x7e\xfe\x66\x33\xf2\xc4\x94\x0a\x66\xf4\x13\x7b\xce\x81\x9f\xc2\xcb\x49\xfd\x3c\x31\xd8\x27\xab\x3e\x85\x9a\xf3\x57\x56\x0c\x3f\x95\xa8\x27\x3b\x3f\x65\x8c\x25\x1e\xfb\x14\x42\x4c\x21\xc4\x54\xa8\x9e\x78\xec\x53\x38\x31\x25\x55\xa5\x72\xf5\x14\x5a\x4c\x85\xd5\x89\x92\x25\x15\xa1\xa7\x22\xf4\x54\x84\x9e\x82\x8a\x29\xa8\x98\xe8\x50\x52\x68\x31\x85\x16\x53\x68\x31\x67\x13\x47\x40\x4b\x01\xc6\xb4\x07\x49\x45\xe8\x69\x0f\x92\x8a\xd0\x53\x11\x7a\x0a\x3f\x26\xa6\x74\x9a\x3b\x41\x3d\x27\xec\x9e\x82\xba\x4d\x50\xb4\x89\xd5\xa5\xca\xe7\x75\xf1\x32\xf6\xac\xa7\x24\xca\x1e\x24\xbf\x56\x1f\x40\x2f\x23\xc5\x43\xd9\x23\x5d\xd4\xe0\xe0\x09\xca\xa7\xc1\x29\x12\x93\x6d\x40\xb1\x34\xb8\x6a\x82\xf2\x69\x70\xd8\x04\x17\x51\x50\x2f\xad\xf3\xfb\x58\x5f\x1a\x07\xad\x11\x4c\x81\x85\x52\x64\xcc\xa6\xe8\x81\x8a\x34\x13\x83\x7e\x62\xd0\x49\x0c\xba\x8a\x41\x7b\x31\x28\x3c\x06\x65\xc6\xa0\x3f\x18\x14\x0f\x83\x5a\x62\xd0\x40\x8c\xd6\x16\x9c\x10\x75\x36\xdf\x70\x97\x79\xbe\xd1\x4a\xa3\x53\x1b\x3e\xa9\x63\x8a\x7e\x34\xe0\x82\x2e\x5b\xcc\x5f\x5a\xa9\x2b\x7c\x0f\x7f\xb9\xa2\x89\xd5\xac\x5a\x53\x59\xd3\xc6\xeb\xec\x09\xdb\x61\x35\xf9\xcf\x6a\xd5\xbf\x45\x53\x75\x65\x17\x77\x2b\xcc\x47\x55\xc1\x32\xfc\x31\x76\x3f\xec\x80\x5d\xec\x80\x16\xe0\x29\x4c\x7b\x76\x97\x4f\xda\xd4\xa3\x4f\xf1\x04\xc1\xde\x6c\x3e\x51\x85\x9f\x32\x23\x9f\x44\xaa\xb7\x9a\xdd\x30\xe8\x07\x75\xe9\x44\xf4\x27\xd5\x77\xd1\x46\x14\xb2\x7b\x14\x1f\xde\xc2\xe2\xbc\x7a\x1c\x9a\xdd\x02\xd7\x29\x70\x9d\x02\xd7\x29\x70\x9d\x02\xd7\x29\x70\x9d\xd4\x0d\x52\xf8\x3a\x67\x97\x87\x58\x79\x15\xa1\xa7\x22\xf4\x14\xca\x4e\x45\xe8\xf9\x53\xfc\xb1\xf2\x2a\x42\x4f\x61\xed\x14\xd6\x4e\x61\xed\x14\xd6\x4e\x45\xe8\x29\xb8\x9d\x82\xdb\x29\xb8\x9d\x82\xdb\x29\xb8\x9d\x82\xdb\x29\xb8\x9d\x82\xdb\xa9\x08\x3d\x15\xa1\xa7\x04\xf2\x14\xee\x4e\xe1\xee\x54\x84\x9e\x8a\xd0\x53\xe8\x3b\x85\xbe\x53\xe8\x3b\x85\xbe\x53\xe8\x3b\x95\xa2\xa7\x52\xf4\x14\x06\x4f\xa5\xe8\x29\x18\x9e\x4a\xd1\x53\x29\x7a\x0a\x8c\xa7\xe0\x49\x0a\x8f\xa7\xf0\x78\x0a\x8f\xa7\x70\x4a\x0a\x92\xa7\xa0\x4a\x0a\x92\xa7\x82\xf4\x54\x90\x9e\x02\xe6\x29\xb4\x92\xca\x6c\x53\xd8\x3c\x85\xcd\x53\x41\x7a\x2a\x48\xcf\x66\x9b\x6b\xea\x00\x05\xe9\x29\x9c\x9e\x02\x32\x29\x5c\x43\x2d\xb7\x5a\x7d\x59\x6e\x0a\xd2\x53\xb0\x3d\x05\xdb\x53\xb0\x3d\x85\x6e\x52\x28\x26\x05\x70\xb2\xdf\x7e\xab\x6a\x0a\xbc\x67\xa7\xd6\x0b\xbc\xa7\xc0\x4b\x0a\xbc\xa7\x80\x0c\x52\x82\x6a\xf5\x85\x45\x02\xad\xcf\x8c\x78\x54\x8d\x1e\x4e\xb8\x67\xe4\x3f\xb3\xe3\xad\xd4\x22\xc8\xc2\xaa\xfe\x56\x1a\xb1\xcf\x38\xcc\x2e\xf3\xe9\x4f\x9a\xa1\x13\x93\x5c\xd0\x92\x30\x92\x29\xcf\x3e\x1c\xde\xcd\x59\xfe\xd0\x4a\xbc\xd6\x61\x57\x44\x19\x88\x17\xde\x40\xf3\x82\x39\x38\x78\xde\x9e\x95\xe8\x59\x77\x9e\x75\xa7\x49\xba\x9e\x24\xa6\xa7\xd4\xf1\x59\x83\xde\x3f\xd5\x64\x9c\xdf\xc4\x2f\x9d\xd9\x4c\xbb\xdc\xaa\xd1\x3c\xbe\xcf\x1a\x81\x4b\xb5\xda\xd6\xa5\xda\xda\xce\x84\x4e\x85\x1b\x4a\x00\x90\xc6\x48\xe9\xa5\x8e\x14\x74\x8e\x82\xc7\x29\x56\x40\x6c\xca\x7a\x14\x88\xa2\x35\x8c\x0e\xa5\x09\xca\x41\x41\x45\x28\x68\x03\xc5\x4f\xd3\xc7\x8a\x36\x15\x64\x2d\x7e\x9b\x66\x67\xc7\xd3\x5f\xc7\x89\xe9\x10\x85\x0e\xcc\x17\x5a\x5c\xb4\x3e\x97\xa7\x87\x53\x3f\xb0\xc8\x47\x33\xe8\xe3\xe9\x0f\xdc\xfc\xb1\x78\x78\xd6\x81\x51\x42\x8b\xf8\xcb\x03\xeb\x79\x60\x49\x8f\xd5\x14\x3d\xf6\x98\xeb\x58\x71\xec\x5e\x31\x91\xd7\x99\xda\x56\x20\x7a\xce\x79\xfd\x89\x6f\xfe\x8d\x22\xe3\xcd\xfa\x25\xd8\x98\x02\x80\x94\xd9\xab\x35\xde\x60\x91\x94\x8d\x14\x36\x4c\x89\x1b\x29\xcc\x98\xca\xd2\x53\xfa\x46\x4a\xdf\x48\xc1\xc3\x94\x88\x94\x52\x39\x9a\x87\x32\x85\x28\xb3\xd3\x3a\xa4\x26\xa5\x40\x7d\x2a\x51\x4f\xe1\xfa\x14\xc0\x4c\x41\xfb\x14\xb4\x4f\x61\xc9\x14\xb4\x4f\x41\xfb\x14\x84\x4c\xa1\xfb\x14\xba\x4f\x85\xea\x29\xe0\x99\x0a\xd5\x53\xd8\x33\x85\x37\x53\x78\x33\x15\xaa\xa7\xd0\x65\xb6\xae\x90\x90\x7e\x0a\xe9\x77\x61\xa0\xd2\xd7\x6a\xf5\x82\x42\x12\xa6\x52\xb8\x32\x05\xf6\xb1\xec\x57\x5b\xbd\x04\x36\x53\x78\x3f\x85\xf7\x53\x78\x3f\x05\x2a\x53\x68\x34\x85\xf7\x53\x00\x36\xad\x35\x29\xc8\x9f\x4a\xd4\x53\xa8\x3f\x85\xfa\x53\xa8\x3f\x85\xfa\x5b\x77\x29\x85\xfa\x53\xa8\x3f\x05\xf9\x53\x90\x3f\x05\xf9\x53\x90\x1f\xe1\x5b\xb5\x7a\xc1\x1f\x01\xff\x14\x8c\x4d\x61\x7f\xf4\x7a\x93\xe6\x5a\xb5\xfa\xc2\x1f\xc1\xff\x14\xfc\x4f\x61\x9c\x14\xfc\xcf\x2e\x3e\x52\x9c\x9e\x52\x00\x52\x0a\x40\x4a\x01\x50\x68\x59\x6d\x2b\x95\x07\x0a\x9a\x1a\x8d\x3c\x06\x58\xb4\x63\xd1\x96\x5a\xec\x93\x95\xcd\xbc\xae\x7c\x92\xbf\x62\xd1\xd7\xc6\x00\x1d\x0b\x33\x28\x9e\xec\xc0\x30\x1d\xf8\xa7\x03\xbf\x75\x1d\x6b\x15\x7d\x4b\xbf\xc5\x71\x1b\x98\x74\x03\x03\x6e\x60\x89\x0e\x4c\xcf\xb1\x3a\x21\x17\x5d\x18\xc6\xd9\x58\xad\xa8\xf0\xa1\xca\x69\xed\x14\xfb\x26\x64\x95\xb1\x11\xe9\x20\x72\xac\x59\xd9\x29\x6f\x8f\xb2\x67\x6a\x1d\xdf\xe6\x36\xf6\x09\xf2\x19\x2b\xd7\xb5\x36\x5d\xab\xd2\xb5\xfa\x5c\xab\xcf\xb5\xee\x5c\x2b\xce\x6d\xae\x62\x6b\xcd\xb5\xd6\x5c\x6b\xcd\x5d\x5d\xa6\x3d\x9c\x13\xfe\xab\x8e\xc2\x6a\x72\xad\x23\x97\xe5\xf0\x7d\xcd\x89\xbe\x9a\x61\xb4\xd3\x93\xa9\x80\xe1\x61\xcd\xd5\xac\xd2\xca\x4b\x87\xcf\xaf\xb6\xb5\x47\x15\x8b\x25\x7d\x1f\xc1\xba\xf4\x9c\x33\x3b\x91\xf9\xf4\x7f\xbb\x2f\x72\x21\xac\xa8\xec\xb7\x94\x92\x9c\xb7\x15\xc9\xbb\x9c\x5f\x72\x34\x4f\x4e\xf2\xc8\x25\x5f\x7a\x52\xcb\x4a\x09\xa1\xc9\xa2\x4b\x3b\xe2\xec\x52\x77\xe4\x81\x49\xe9\x38\x5f\xcf\x11\x6b\x96\x94\x81\x94\x36\x92\xd2\x46\x52\x3a\x40\x4a\x1b\x49\xe9\x03\x29\x61\x24\x25\x05\xa4\x84\x91\x94\x30\x92\x92\x02\x52\x52\x40\x2a\x4b\x4f\x81\xfa\x94\x36\x92\xd2\x46\x52\x12\x41\x0a\xa8\xa6\x64\x81\x94\x36\x92\x56\xab\x94\x36\x92\xd2\x46\x52\xda\x48\x4a\x1b\x49\x69\x23\x29\x6d\x24\xa5\x8d\xa4\xb4\x91\x26\x2b\x4b\x09\x23\x29\x61\x24\x8d\x93\x54\x90\x9e\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x8f\x5a\x6d\xa6\xe0\x7f\x0a\xfe\xa7\xe0\x7f\x0a\xfe\xa7\xe0\x3f\x36\xfd\x6a\xf5\x85\x3c\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x5d\xf3\x93\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x4d\xe9\x90\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x62\x43\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\xad\x00\x95\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xf8\x9f\xc2\xe3\x49\xb7\x31\xed\x0b\xf2\x15\xfe\xa4\xfd\x45\x4a\xa5\x4f\x74\x07\x89\x6d\x3d\x79\x5a\xf2\x21\xb8\x50\xb0\x99\x28\x9e\x92\xff\x24\x5f\x93\x5e\x6e\x9f\x74\xe9\xb4\x71\x8b\x6b\x39\xe9\x81\xa6\x1d\xc7\xa5\x1d\x7c\x61\xc5\xfd\x0e\x32\x40\x73\xe7\xd1\xa9\xe4\x27\xb9\x7c\x26\xc9\x57\x73\xff\x41\x7a\x41\xa5\x26\x67\xcc\x1d\x28\xd1\x47\x1f\x13\x84\x18\xc4\x27\x08\x5a\xde\xaf\x19\x46\xa3\xeb\x2f\x91\x86\x37\xef\x5d\x4b\x3f\x45\xf3\x60\xf9\xd9\xf4\x49\xf6\xf1\x25\x1a\x81\xaf\x2b\x5b\xa8\xc6\x27\xe4\x5e\x9a\x93\xa6\x25\xb0\x14\x5e\x5d\x25\x63\x17\x15\xfb\x8d\x96\xdb\x25\xb7\xc5\xad\x72\x27\xb9\x08\x8e\xf3\xab\xe6\xe1\x27\x12\xce\x48\xfc\x51\xba\xab\x82\xb8\x6a\x99\xae\x0d\xee\x55\x3d\x72\x39\xda\x2f\x3a\xe9\xab\xe6\xe4\xb6\xe4\xcc\x6c\xce\xa1\xad\xf6\x7d\xe0\xd1\xc1\x87\x2a\xe4\x75\x5b\x92\x4b\xe6\xdf\xc5\x04\xf0\xe3\x5b\x65\xba\x5e\x86\xea\xc5\x42\x71\x77\xf3\x7c\xa8\x4f\x5d\xae\xc1\xf6\xae\x49\xf0\xef\xfe\x1d\x1f\x67\x76\x5b\x7d\x05\xc4\x6e\x0b\x82\xfd\x86\xa4\x25\x4b\xbe\x48\xca\xab\x48\x19\x15\x29\xa3\x22\xe5\x8b\xa4\x7c\x91\x94\x2f\x92\xf2\x45\x52\xbe\x48\xca\x17\x49\xf9\x22\x29\x5f\x24\xe5\x8b\xa4\x0c\x8c\x94\x2f\x92\x4d\xa5\x2d\x8b\x22\x65\x5a\xa4\xec\x8a\x94\x2f\x42\x5e\x75\x2a\xd6\xab\x56\x5f\x20\x24\x5f\x24\xe5\x8b\xa4\x2c\x8d\x94\x2f\x92\xf2\x45\x52\xbe\x48\xca\x17\x49\xf9\x22\x29\x5f\x24\xe5\x8b\xa4\xe0\x7f\x0a\xfe\xa7\xe0\x7f\x0a\xfe\xa7\xe0\x7f\x0a\xfe\xa7\xe0\x7f\x0a\xfe\xa7\xe0\x7f\x0a\xfe\x63\x78\xad\x56\x5f\x50\x24\xf8\x9f\x82\xff\x29\xf8\x9f\x82\xff\x29\xec\x9f\xc2\xfe\x29\xec\x9f\xc2\xfe\x29\xec\xdf\x42\x94\x96\xa3\x6a\x43\x3b\xb5\x4b\xbb\xb5\x47\x9b\xda\xab\xd5\x17\x08\xa9\x50\x27\x1c\x35\x71\x3c\x54\xab\x2f\x10\x92\xd7\x92\x2a\xd4\xbb\xea\x26\x55\xa8\xa7\x9c\x95\x54\xa1\x6e\xe9\xab\x56\x5f\x20\xa4\x42\x3d\x55\xa8\xa7\x0a\x75\xa2\x0b\xd5\xea\x0b\x84\x54\xa8\x5b\x42\x27\x81\xee\x6a\xf5\x05\x42\x2d\xa0\xad\x42\x1d\x27\x71\x5c\x26\xf6\x6d\x61\x15\x26\xf9\xdd\x00\xe0\x98\x4d\x60\xa9\x25\x4c\xee\xe9\x51\x67\x04\x1e\x73\x90\xb9\x7d\x19\x41\x97\x01\x7e\x39\x66\xae\x60\xcb\x4d\x10\x62\x29\x9e\x78\x59\x26\x57\xc1\xb4\xa5\x9b\xeb\x27\xc6\x8b\xd9\x0e\x57\x9f\xa0\xdf\xb3\x5d\xc0\xb4\x11\xf2\xea\x62\x36\xc3\xd0\x68\x5e\xb1\xce\xde\x6e\xd6\xa2\x5f\x82\x43\xa7\x2a\x08\xde\x0a\xae\x76\x6d\x37\x89\x8b\xf3\x13\xcd\x5a\xfd\x79\x27\x17\x38\x5e\x9d\x5c\xd0\x89\x06\x3e\xef\xc0\xa6\x14\x8f\xdb\x95\xee\xc2\x9b\x3f\xd1\x9d\x0e\x4e\x8e\x6e\x85\x28\x25\x4a\x20\xf7\x3f\xf2\x69\x8e\xca\xe3\xf3\x9a\xf3\x6f\x75\x40\xb5\xc3\xad\xfe\xdb\x15\xde\x04\xe1\xbb\x2e\x85\x9c\xfe\x51\xef\x7b\xa4\xd5\xe4\x3f\x3a\x1a\xda\x31\x4e\x9e\x1d\xbe\x5d\x54\x68\x34\x11\x83\x1a\x62\xcc\xd3\x04\x19\xa8\x63\xc5\xb9\x25\x56\xc5\x5c\x4d\x8d\xda\xba\xcb\x1b\x51\xa9\x6f\x98\x47\x4c\x11\xc9\x32\x8f\xc9\x94\xe4\xdc\x6a\x8e\xcf\x40\x98\x35\xa1\x23\xde\x8f\x08\x00\xc3\x7c\xeb\x76\x49\x07\x7d\x12\xb0\x91\xb8\xb1\xcc\xaa\x35\xd0\xc0\x0f\x3a\x83\x54\x2c\xd3\xda\x3a\x89\x30\x28\xf3\x77\xbe\x41\x0a\x7e\xc4\xda\x53\x29\x0d\xbb\x6d\xb2\xdb\x26\xbd\xad\x6a\xf5\x05\x3f\x52\xad\x12\x0d\x6b\x4a\xa3\xa2\xd7\x58\xad\xbe\xe0\x27\xc1\x8f\x62\x9c\x94\x55\xc3\xf2\xab\x56\x5f\xf0\x23\xc3\x26\x65\xd8\x24\x92\x85\x94\x67\x93\xf2\x6c\x52\x9e\x4d\x4a\xb8\x4a\x04\x2e\x28\x6b\x27\xfd\xa0\x99\x72\x6e\xd8\x9d\x93\x35\x59\xad\x5e\x80\x47\x12\x57\xf2\x02\xa4\xfc\x1b\xf6\x68\xb5\xfa\x02\x1e\x59\x38\x6c\xd6\x6a\xf5\xf5\xaa\xe5\xe2\xb0\x62\xab\xd5\x17\xfc\xc8\xcb\x49\x79\x39\xad\xeb\x9f\x34\x68\x52\x8e\x4e\x2a\x11\x4a\x1a\x34\x29\x5f\x27\xa5\x96\xa5\x72\xa1\x94\xbb\x93\x72\x77\x58\xcc\xd5\xea\x0b\x7e\x90\x78\xa6\x0c\x9e\x94\xd2\xc6\x32\xae\x56\x5f\xf0\xd3\x51\x49\xd3\x28\xe5\xf7\xa4\xfc\x9e\x54\x70\xc4\xea\x9d\xec\xe3\x6a\xf5\x05\x3f\x08\x43\x53\xea\x5a\xd2\x13\x49\x99\x40\x68\x37\x67\x53\xc3\x34\xed\x54\x5e\x11\x0e\xc5\x56\xc1\x22\x09\x13\x22\x5e\xab\x83\x4b\xfb\xef\xe8\xd1\xeb\xd1\x58\x16\x76\xd8\xd5\x50\xf7\x8c\xf9\xb5\x12\x3f\xbf\x2d\x6f\xe9\x44\xf2\x35\x3f\x5e\xdd\xb2\x51\x26\xde\xf5\xf9\x35\xef\x6e\xad\xe8\x13\x3f\xcc\x6c\x7e\x1b\x0c\x99\xf3\x6b\xd6\x65\x9c\x5d\x5d\x6b\xc8\xb1\x33\x85\x78\x5a\xa8\x61\x36\xcb\xc4\xe0\xb0\x15\x10\x9c\xb6\x5a\xed\x18\x99\x58\xec\xe6\xe8\x6f\xe0\x70\x0e\x45\xef\xd2\x69\x66\x60\x75\x88\xed\x13\x57\xc2\x21\x33\xa3\x65\x70\x48\x5e\x08\xdf\x4c\x6e\x99\xc9\xd6\x99\xa4\x1b\x26\x51\xaf\x89\x3d\x63\xb2\x30\x66\x8b\x92\x4f\x37\xdd\xa2\xea\x5c\xb8\x73\x67\xa7\xfa\x34\x1b\x86\xff\x72\xa4\x4b\xce\x99\x1c\xb9\x93\x53\x77\x72\x3c\x3e\xdb\xc0\x27\x73\xf9\xd9\xaa\x3c\x9b\x14\xce\xae\x49\x56\xb5\x8e\x71\xe6\x6c\xe7\x6c\x9c\x8d\x04\xdf\x6d\x3a\x9e\x6d\xc5\xb3\xa1\x78\x36\x14\xcf\x26\xe2\xc9\x3a\x27\x97\x57\x08\xee\xbf\xd7\x7f\x71\x6e\xd8\x32\x3c\x9b\x85\x67\xb3\xf0\x6c\x13\x1e\x04\x0f\x1b\xc6\xe0\x90\x54\x2d\x31\xc3\xb6\x31\x38\x1e\xa3\x1d\x8f\xb0\x1b\xdb\xfc\x4c\xd8\x9d\x30\x3d\xd5\xb7\xe5\x05\x3f\xd2\xcc\x92\xc0\x51\x4a\x36\x4b\x59\x99\x29\x5d\x2a\xa5\x9c\x25\xf4\x4f\x89\x67\x29\xf1\x2c\x25\x9e\xa5\x7a\x38\x9b\xc4\x6a\xf5\x05\x3c\x52\xd1\x6c\x1b\xab\xd5\x17\xf0\x48\x48\x4b\x55\x71\xa9\x4e\x2e\x55\xe1\xa7\x6a\xb9\xb4\xa2\xa4\xd5\x25\x09\xd7\xa4\xd4\x35\x9b\xca\x6a\xf5\x05\x3c\x56\x9d\x94\xcc\x96\xd6\x9b\x94\xd2\x96\x6a\xe9\x9a\xe9\x25\xad\x46\x29\xf7\xd3\x26\xb4\x5a\x7d\xc1\x8f\xf5\xc9\x26\x74\xfe\x84\x6e\x25\x32\xa5\x7a\x3b\x9c\xba\xd5\xea\x0b\x7e\x70\xb9\xd8\xfc\x4e\x9b\xdf\x6a\xf5\x05\x3f\x2d\x2a\x2d\xf1\xa9\xd9\x1d\x7f\x1b\x5b\xe9\x4f\x29\xfd\x29\xa5\x3f\xa5\xf4\xa7\x94\xfe\x64\x4b\x52\xad\xbe\xe0\xc7\xba\x98\x12\xa2\x52\x42\x54\x4a\x88\x6a\x36\x7e\x5b\x9b\x6a\xf5\x05\x3f\x92\xa3\x12\x73\x48\x4a\x91\x4a\x29\x52\x89\x39\x24\xd5\xf8\xa6\x74\xa9\x54\x37\xdc\xb2\x51\x29\x69\xca\x56\x68\xda\xec\x54\xab\x2f\xf8\x91\x46\x95\xd2\xa8\x82\x9b\x5a\x15\xce\x0c\x8e\xc1\xe0\x12\x0c\x2e\x41\xb5\x3b\xd5\x1a\x81\xcd\xdc\x72\x7c\x82\xeb\x9b\x13\x2f\x38\xee\x82\x9b\x2e\x7e\xc2\x4d\x38\xac\x56\xb3\x6c\xf5\x48\xc6\xcd\xbe\x5a\xe0\xee\xb5\xb0\x09\x86\x1c\x2c\xbb\xdc\x68\xc1\x69\x16\x9c\x66\xc1\x51\x16\x9c\x63\xc1\x39\x16\x2d\x4a\xce\x21\xa6\xfa\xa7\x5a\xff\x35\x17\x38\xbe\x82\xcb\x8b\x70\xf0\xec\x0c\xe5\xe0\xd4\x0a\x8e\x2c\x15\x1e\x75\xac\xd7\xf2\x5f\xf7\xbb\x9b\xe5\xc6\x5d\x9b\xe9\xa1\x7e\x25\x76\xf3\x10\x32\x16\xb8\x20\x82\x0b\x22\xcc\xfd\xe0\x7c\x50\x05\x52\xad\x33\x09\xc8\x70\x3e\x84\xca\xf5\x25\x21\xe1\xfb\x05\xa0\x83\xcc\xcb\x2f\x05\x6b\xfe\x45\xdb\x73\x6f\xdf\x16\xc8\x5a\xe4\x3a\x7d\x52\xa0\xfe\xd4\xb5\x3f\xc9\x45\x4f\x75\xfb\x93\x5c\xf4\xb8\x7c\x1f\xd3\xe6\x31\x6d\x1e\xbb\xf3\x49\xf6\x7b\x76\x26\xef\xe3\xae\x17\x34\x7c\x12\x7e\x9e\x24\xa2\xc7\x90\x79\x47\x70\x8a\x13\xef\x49\xfb\x79\x59\x48\xfe\xa4\xfd\xbc\xf4\x8b\x9c\x78\x2f\xfb\x7b\x96\x4f\xb0\x22\xb7\x81\x83\x79\x26\x25\xe0\xa5\x04\xbc\x94\x80\x97\x12\xf0\xf2\xf5\x39\x50\x48\x1a\x9e\x6d\x7b\xb5\xc6\x2a\x14\x62\x0b\x66\x1b\x4d\x92\xf4\x52\x92\x5e\xe2\xa2\x49\x76\x61\x4a\xd5\x6b\x7e\x33\x1b\xf3\x6a\xf5\x82\x42\x12\xf6\xb2\x79\xd2\x24\xec\x71\x11\x54\xab\x2f\x14\x92\xbc\x97\x82\x89\x29\x85\x2f\xa5\xf0\x25\xeb\x33\x25\xf2\xa5\x44\x3e\xce\x84\x6a\xf5\x85\x42\xf8\x6a\x52\x52\x1f\x27\x43\xb5\xfa\x42\x21\x49\x7d\xc9\x4e\xe5\x5e\xa8\x56\x5f\x28\x24\xc1\x2f\x25\xf8\x71\x2f\x54\xab\x2f\x14\x62\xd7\xa6\x34\xbf\xc4\x63\x93\x94\x35\xf0\x43\x56\xab\x2f\xfc\x91\xf8\xc7\xed\x50\xed\xfb\x9b\xb7\xec\xe0\x2b\xfb\xef\xca\xfe\xe3\x70\xa8\x16\x99\x5c\xc1\xcf\x95\x03\x78\xe5\x00\x5e\x39\x80\x17\x8f\xcd\x6d\x15\x49\x3c\x36\x57\x3e\xe0\x45\x47\x77\x0d\x49\xde\x8e\x6a\xf5\x1d\xfa\xf2\x53\xca\x4f\x47\x5d\x3c\xaf\xec\xbf\xfb\x23\x11\x5f\x3e\xe1\x1f\x45\x78\x71\x15\x58\xde\xd6\x43\x92\x1b\x75\x95\x59\xa2\xf3\x9f\x9c\x18\xd5\x1a\x50\x06\x32\xff\xe5\x23\x6f\xf2\x78\x2b\x9f\x0c\xc1\xc7\x97\xf9\xd2\xb4\x90\xc5\xf3\x48\xc1\xbc\x16\x76\x90\xad\xf3\xc4\xa2\x5f\xd9\x5e\xd5\xfa\xaf\x28\xab\xb8\xf4\x13\xb5\x7e\x3c\xc7\x4f\xfe\xe0\x93\x59\xf6\x78\x31\x1f\x0f\xf1\xb3\x68\x5c\x4b\x01\x2a\xbb\x6a\xd1\x88\xd2\xae\x43\x75\xa1\x24\x35\x94\xbf\x86\x32\xc2\x50\x38\x17\xca\xf9\x42\x49\x61\x28\x1a\x0c\x65\x78\xa1\x94\xae\x3e\xd9\x8e\x8f\xcf\xb5\x8b\x6e\x65\x4b\xb2\x5c\xad\xdf\x42\xe3\xa7\x18\x26\x14\x0e\x85\x92\x98\x50\xde\x13\x0a\xed\x42\x61\x4c\x28\x28\x0a\xc5\x75\xa1\xac\x28\x14\xdd\x85\x82\xa2\x50\x84\x13\x8a\xe5\x42\xb9\x5d\x28\x25\x0a\x85\x34\xa1\xa0\x2e\x94\xee\x84\x12\x94\x50\x82\x12\x07\x23\xd0\x91\x21\x28\x7f\xbf\x8e\x5d\xd5\xeb\xe3\x3a\x53\x8e\x80\xb2\x99\x90\xb9\x5f\x9f\x53\x50\xbf\x7d\x9c\x8e\xdd\xc5\x6d\x65\x75\xc7\xcf\xe7\x34\xae\xbc\xbb\x53\xbb\x8e\x38\xfc\xd6\x07\xf5\xc6\xa9\xfd\x46\x1c\x31\x01\x59\xf3\x21\xef\x35\x64\xaf\x87\xcd\x63\xc8\x1a\x8e\x96\x24\xba\xb2\xbd\x10\x24\xcf\x56\x57\xbd\x32\x6e\x9a\xba\xfe\x22\x89\xb8\x72\x6a\x2e\x6a\xc6\x8b\xd6\xe1\xca\x94\xb9\x4d\xfb\x8a\x82\xe1\xca\x91\xb9\xc8\x17\x2e\xf2\x85\x8b\x7c\x81\x1b\xad\xda\xab\xf5\x3d\x0a\xef\xc5\x2d\xaf\xb8\xe5\x15\xb7\xbc\xe2\x96\x57\xdc\xf2\xca\x9d\xb9\x72\x67\xae\xdc\x99\x2b\x77\xe6\xca\x9d\xb9\x61\x8c\xb5\x3a\xa3\x08\xe7\x95\x47\x43\x9b\xb9\x5a\x7d\xaf\xbe\x22\x0c\xc8\x1a\x6e\x13\x6f\xcb\xa6\xb9\x62\xa1\x1c\x7a\xd5\xea\x2b\xfe\x60\x9b\x7c\x45\x23\xaf\xfc\x9a\x2b\x52\x7a\x51\x39\x5c\xb9\x36\xdc\x71\xb3\x29\xc0\xaf\x5c\x9b\x2b\x82\x7a\x65\xdc\x5c\x19\x37\x57\x34\xf5\xce\xd6\x97\xf5\x3c\x45\x56\xef\x6c\xda\x60\xc8\x20\xbe\x7a\xc5\x57\xaf\x8c\x9b\x2b\xe3\x86\x8b\x6f\x5e\x79\x37\x57\xa1\x72\x8b\x84\x5c\x39\x38\x97\x40\x04\x17\x62\xb5\xfa\x86\xbe\xa1\xaf\x37\x25\x43\xe7\xca\xd0\xb9\x32\x74\xae\x0c\x9d\x2b\x43\xe7\xfe\xd4\x25\xd1\x13\xc8\xd0\xe1\xe4\xac\x56\x5f\xef\xb7\x25\x41\xe4\xe9\x70\x4b\x56\xab\xef\xd2\x97\x8c\x12\xa7\xa5\x4c\xf3\x68\xc5\xee\x23\xbf\x8f\x2b\x23\xe4\x74\x07\xd7\x47\xa0\xf7\x0e\x99\xd7\x21\xaf\x3c\x64\x73\x07\xc7\x45\x20\x0e\x0f\x99\xd4\x21\x5f\x3b\x64\x58\x47\xb6\x36\xde\x3f\xba\x13\xe5\x83\x9a\xca\xf8\x13\x42\xb2\x75\x48\x39\x0d\xfc\x09\x21\x11\x3c\x24\x85\x87\x34\xee\x90\x4e\x1d\x52\xa8\x43\x62\x6b\x24\x17\xb3\x44\xea\x90\x96\x1a\xad\x5e\x80\x4d\x35\xa4\xb1\x86\x4a\xf6\x90\xa2\x1d\xd2\x52\x03\x4b\x43\x48\x06\x0d\xc9\x91\x91\xd8\xb1\xa4\x69\x86\x34\xcd\x48\x89\x74\x89\x2f\x4b\x42\x5b\xe4\x10\xc2\x11\xde\x96\xb2\x16\x12\xd4\x22\x9b\x15\x07\x9b\x7c\xb3\xf2\x25\xff\xb1\xd4\xcc\x90\xca\x16\x19\xfd\x9d\xdc\xeb\x35\xf0\x43\x52\x57\x48\x11\x0b\xa9\x5d\xf1\x9a\xe3\x58\xe2\x75\xb6\xde\xc6\x3f\x8f\xe9\xcd\xf8\x1e\x5e\x5b\x41\xc7\x10\x9e\x0c\x21\xa2\x10\x22\x0a\xa1\xa0\xe8\xd0\xce\xe1\x23\x3c\xbc\x83\xa0\x6b\x02\xad\x6a\x15\xfc\x34\xdf\xb4\x92\x1b\xfe\x3f\x10\x35\xf1\x39\xce\xc3\x0b\x78\xf8\xff\x0e\xcf\xdf\xe1\xed\x3b\xf8\x28\x81\xd3\x04\x4e\xd5\x1a\x6e\x58\xec\xe9\x8b\x5c\x69\x3a\x57\x9a\xce\x95\xa6\x73\xa5\xe9\xf0\x76\x57\x6b\xb8\x6d\xc3\x8d\x68\xa0\x34\x9d\x2b\x4d\xe7\x4a\xd3\xb9\x2d\x54\x2d\x4d\x07\x57\x63\xb5\xfa\x02\x21\x69\x3a\xfc\xe8\xd5\xea\x7b\x3a\x24\xa9\x6f\xea\x0b\x8a\xa4\xe9\x5c\x69\x3a\x7c\xf0\xf3\x72\x55\xdd\xd9\x9a\x3a\x26\xf7\x6a\x11\x55\x53\x50\x4a\xca\x95\x86\x72\x59\xf9\x57\xd2\x49\x2b\x90\xf1\xc4\x57\x2b\x24\x39\x9b\x51\xc4\x99\x26\x96\x74\x93\x2b\xdd\xe4\x62\x7b\xb8\x92\x06\xae\x1d\xc2\x6d\xc1\x47\x09\x01\x3c\xf4\x93\xcf\x7e\x5e\xe1\xff\x2b\xe4\x8f\xad\x7b\xde\xd6\x90\x13\xb6\xbf\xc2\xf6\x77\x35\x17\x24\x80\x14\xb0\x17\x25\x98\xa2\x04\xd5\x3a\x13\x28\x0a\xd2\x5f\x15\xf7\x2d\xde\x7d\xed\x25\xae\xf0\xfc\x15\x92\xbf\x2d\xaf\x6f\x17\x71\xed\x1f\xae\x70\xfb\xb5\x8b\xb8\xc2\xed\x57\xb8\xfd\xda\x51\x5c\x7b\x89\x6b\x17\x71\x85\xd5\xaf\xb0\xfa\xb5\xa3\xb8\x76\x14\xd7\xce\xe4\x0a\xab\x5f\xbb\x8b\x2b\xac\x7e\xed\x31\xc4\x1c\xaa\xd5\xd7\x53\x6d\x05\x23\xfb\x0d\x51\x88\x1a\x45\x46\x9d\xb2\x13\x6e\xbd\xc3\x4d\x77\xb2\x6b\xdb\xf7\x25\x84\x4d\xaa\x5b\x71\x0e\xd9\x5f\x2a\x7d\x41\x9f\x2f\x68\xf5\x05\x7d\xbe\x6a\x95\x27\xa9\x4f\x14\xe7\x79\x9c\x45\xef\x31\x6d\x9e\xa4\x1c\x60\xf6\x24\x13\x3f\xe1\xb1\xdd\x9a\x0d\x1f\x73\x40\xdc\x09\x2f\x59\x60\x73\x8a\x33\x66\x9b\x24\x8e\x31\xb6\x8f\x56\x93\x12\x11\xea\xa5\x7b\xd2\x81\xa3\x4e\xd7\x7c\xa3\x47\x22\xe3\xa1\x5b\x70\x46\x4b\xee\xb6\xee\x42\x33\xaa\xf7\xf7\x67\x1f\x3b\x93\x51\x20\x1d\xe7\x0c\x5a\x0b\x92\x7a\x4f\xcb\x04\xf3\x01\xe1\x32\x0a\xac\x47\x71\x26\x63\xa4\xd9\x51\x6b\x59\x08\x4c\x2f\xd5\xe2\xaa\x5a\xcd\x20\x8c\x75\xca\xb3\xc5\xda\x71\x7e\x4a\x0c\xa7\x55\x1f\x7c\xd2\x2a\x0b\x3c\xcd\x4a\xd1\x0e\x4e\x8f\x23\xdd\xfc\x34\x67\x6b\x6b\xb0\x49\x51\xda\x96\x77\x45\x5f\x93\xe2\x60\xb5\x74\x98\xb0\xf7\x58\xd8\x37\xac\x7b\x22\x6c\x4f\x1c\xec\x85\x24\x2a\x94\x87\x2f\x60\x1d\xd1\xf3\x87\xa5\x4d\x5a\x52\x3c\xcc\x1b\x4f\x3c\xed\x89\xa7\x3d\xec\xa8\xbb\x59\xec\x25\x11\xee\xdf\x68\x5c\xdd\x1a\x51\x66\xdc\x6e\x2d\x40\xf3\xce\xee\xf4\xda\x9d\x5e\xfb\xd2\xdb\x2c\xff\x76\xa4\xb7\x95\xc9\xec\x4b\x6f\x0b\xa0\xdb\x97\x5e\xc8\x79\xed\x4b\xaf\xa0\xf8\x15\x14\xbf\xbb\x05\x97\xa1\xcd\x6e\x51\x54\x68\xc3\x7b\x75\x85\xc3\xaf\x70\xf8\xdd\x2d\xe5\x0c\x6d\x84\xc3\xaf\x70\xf8\xdd\xad\xd3\x63\x2e\xf3\x67\x5d\xfe\xac\xcb\x9f\x75\xf9\xb3\x2e\x4f\xd6\x15\xde\xbe\xc2\xdb\xf7\xb4\x64\xaa\xd9\x2a\x80\x7d\x05\xaa\xaf\x40\xf5\x15\xa2\xbe\x42\xd4\x57\x70\xfa\x0a\x4e\xdf\x56\x2b\x11\x9c\xbe\x82\xd3\x57\x70\xfa\x0a\x4e\x5f\xc1\xe9\x2b\x38\x7d\x05\xa7\x3b\x06\x78\x85\xa5\xaf\xb0\xf4\x15\x96\xbe\xc2\xd2\x57\x58\xfa\x0a\x4b\x5f\x41\xe8\x2b\x08\x7d\x05\xa1\x6f\x8b\xe7\x0a\x3f\x8b\xf3\x54\xeb\x9b\x21\xa1\x28\xe2\x3d\xad\xd8\xb4\x5b\xfe\xd5\x39\xd6\x05\x31\x43\x51\xa0\x6a\xfb\x1c\xbf\xe8\x5d\x88\x01\x5e\x31\xc0\x2b\x06\x78\x45\xfc\xae\x88\xdf\x15\xf1\xbb\x62\x7d\x57\xac\xef\x8a\xf2\x5d\x51\xbe\x2b\xca\x77\x45\xf9\xee\xf9\x49\x7e\xfb\x15\xcf\xb9\x35\x1b\x5a\x15\x80\x13\x3b\x52\xa2\x86\xdd\xbe\x40\x7b\x88\x7f\x86\x40\x7b\xfc\xc2\xea\x4c\x7b\xb1\xcd\x10\xe7\x0c\x31\xcc\x10\x99\x0c\xd1\xc8\x10\x8d\x0c\xd1\xc8\x10\x69\x0c\xf1\xc3\x10\x63\x0c\x51\xc4\x10\x21\x0c\x4c\xb8\x81\x7f\x36\xb0\xc4\xc6\x93\xac\xff\x08\xf5\x3e\x9e\xdc\x87\x93\x6d\xd1\x88\x1a\xb6\x9e\xc1\x63\x15\xaf\x59\xcb\x79\x79\x94\x3a\x34\x9f\x52\xbc\x16\x3e\xe6\xaf\x79\x4d\x7a\xba\x30\xa4\xaf\xfe\xaf\xe3\x5a\x05\xe6\x3f\x48\xbd\x28\xd7\xb6\x37\x0e\x9b\x6e\xfe\xf2\x6a\x7d\xfd\xf5\x35\x89\x6a\xde\xce\x4d\xce\x6a\xd8\x92\xcf\xae\xe3\xb6\x5b\x9e\x76\xc8\xfc\xe8\x73\xaa\x74\x9b\xf6\xbd\xd3\x2e\x7a\x92\xf2\x69\x32\xa7\xf9\x35\xd1\x6e\x13\xd7\xa7\x73\xd0\x6c\xa8\x4e\xe2\x83\xaf\xcf\x7d\xa2\x58\xdf\x0e\x79\xaa\x1b\x9a\x6a\x73\xe6\x68\x25\x79\x45\xea\xea\x77\xa6\xfa\xa0\xa9\xf6\x67\xaa\xca\x99\x4d\x04\xa8\xea\x67\x8e\x40\x34\xc2\x0d\x8e\x12\x6f\x82\xbd\x89\xca\x68\x8e\x1f\xd5\x73\xab\xd3\xfb\x36\x95\xe9\x02\xff\x4d\x22\x35\x11\xe6\xcd\xde\x41\x9d\x96\xd6\xb2\xcc\x0a\x06\x5f\xc1\xe0\xdb\xa2\xa8\x2a\xc1\xef\xe9\x89\x6b\xc9\x15\x12\x16\xd4\x9c\x57\x30\xf8\x0a\x03\x5f\x61\xe0\x2b\x00\x2c\xf0\x59\x2d\x0d\x6a\xd3\x5a\xe8\xf7\x0a\xfd\x5e\xe1\xde\xcb\x94\xbb\xc2\xbd\x97\x41\x77\x05\x7a\xaf\x40\xef\x65\xdc\xdd\x6c\x9e\x59\x13\x5a\xa0\x57\x00\xb5\x5a\xbd\x4c\x6b\x86\x9e\xf0\xea\xbc\x4c\xbc\x2b\xd0\x7b\x19\x7a\x57\xa0\xf7\x32\xf7\xae\x40\xef\x15\xe8\xbd\x4c\xbf\xcb\xe8\xbb\xe2\x75\x97\xe9\x77\x45\xea\x6e\x0b\xb0\x8a\xce\x5d\xcb\xb8\x90\x6d\xb5\xbe\x81\xc9\x23\xfe\x76\xc5\xdf\xae\x85\xfd\x5a\xd8\xaf\xc8\xdb\x15\x79\xbb\x22\x6f\x02\xbd\xd5\xfa\x45\x93\xbe\x35\xa8\x45\xde\x6e\xcb\x85\xa8\x67\xbf\xa2\x6d\x57\xb4\xed\x8a\xb6\x5d\xd1\xb6\xdb\xd4\xd9\xe2\x6c\x57\x9c\xed\x8a\xb3\x5d\x71\xb6\xdb\x82\x20\xe2\x6c\x57\x9c\x8d\x38\x51\xb5\x7a\x79\x9b\x22\x6c\x57\x84\x0d\x9d\xf8\x24\xa8\x54\x6d\x7d\xbf\xa8\xda\x15\x49\xb3\xec\x57\x7b\xb4\xa9\x75\x8e\x37\x28\x7a\x76\x45\xcf\xae\xe8\xd9\x44\xd6\x38\x91\x63\xc9\x7c\x0e\x99\xa5\x21\xa7\x34\x64\x87\x86\x8c\xd0\xe8\x2c\xcd\x37\x3a\x5b\xb8\xde\xec\x53\xfb\xf6\xd4\xbe\x3d\xa3\xfd\x8d\xd9\x32\x91\xe2\xb1\x00\xa6\xa5\x3d\x26\xf3\xe4\x1f\xf3\x6f\x7d\x5c\x43\x08\x9c\x03\x3b\x6d\xe0\x99\x0d\xcc\xb3\x81\x85\x36\xb0\xca\x06\x3e\xd9\xc0\x1e\x1b\xb8\x62\xc3\x8d\xc6\x55\x60\x7a\x39\x94\x2e\x82\xe5\x2b\x61\xed\xda\x1e\xde\x2b\x82\x7f\x65\xb9\x5c\x79\x2f\xef\xf3\xb9\xec\x9d\xb7\xba\xcd\x6a\xf7\x47\x95\x77\x6b\x6b\x5d\xc7\x5f\xfc\xc0\xc3\xb3\x31\xbc\xef\xf5\xe7\x51\x2d\xff\xae\xb0\xdc\xa3\xea\xf9\x5a\x8b\x6f\xd8\x29\x49\xf4\x7b\x5f\x0b\x93\x73\x88\xe1\x3b\x7f\x0a\xa4\x9e\x5d\xdc\x1b\x6d\x6d\xf0\x1f\xdb\x83\x5d\xc5\x1c\xf7\x39\x93\x22\xc4\x53\xd8\x44\x1d\x37\x28\xe5\x06\x2d\xdc\xa0\x79\x1b\xad\x79\x3b\x94\xf0\x0e\x4e\x3c\x8a\x16\xd5\x3e\x4c\xed\xa9\xbd\xd5\xee\xfe\xc4\x7f\x0b\xc0\xc6\x8f\xcd\xbd\x56\xac\xc1\xf5\x37\x50\x53\x0c\x85\x92\x43\x11\xe4\x00\x63\x43\xc1\xe2\x50\x68\x38\xba\x08\xa6\xb5\x68\xda\x86\x16\x70\xbd\x02\xae\x57\xa8\xf5\x0a\xb5\x5e\x41\xd6\x2b\xc8\xea\xed\x54\x6b\x48\x9a\xfa\x82\xac\x57\x90\xd5\x1b\x9c\x57\x60\xf5\x0a\xa9\x5e\x21\xd5\x2b\xa4\x7a\xe5\x39\x5c\x91\xb1\x2b\x32\x76\x45\xc6\xae\xc8\xd8\x15\x19\xf3\x7e\xab\xf5\xcd\x56\x74\x79\x11\x57\x7c\xec\x8a\x8f\x79\xfb\xf3\x8a\x8f\x5d\xf1\xb1\x2b\x3e\x76\xc5\xc7\xae\xf8\x98\xd1\x32\x5b\x3d\xe9\x8a\x8f\x5d\xf1\x31\x23\x6a\x5e\xf1\xb1\x2b\x3e\x76\xc5\xc7\xae\xf8\x98\x91\x56\xad\xbe\xe0\x41\x7c\xec\x8a\x8f\x5d\xf1\xb1\x2b\x3e\x76\xc5\xc7\xae\xf8\xd8\x6d\x57\x98\xf8\xd8\xbd\xad\xa4\x0a\x30\xc4\xc7\xae\xf8\xd8\x15\x1f\xbb\xe2\x63\x57\x7c\xec\xfe\x5c\x9d\x60\x43\x7c\xec\x8a\x8f\x5d\x31\xb1\xdb\x0a\x06\xa2\x5e\x57\xd4\xeb\x8a\x7a\x5d\x51\xaf\x2b\xde\x75\xc5\xb8\xcc\x82\x6a\xb7\xf6\x68\x5b\xc3\xad\xcf\xac\xdf\x15\xe3\xba\x62\x5c\x57\x8c\xeb\x8a\x71\x5d\x31\xae\xdb\x8a\xd3\x62\x5c\x57\x8c\xeb\x8a\x71\x5d\x31\xae\x2b\xc6\x75\xc5\xb8\xae\x18\xd7\x15\xe3\xba\x2c\x83\x2b\xc6\x75\x5f\x74\xaa\xbb\x56\xa1\x0f\xce\xdf\x45\xa7\x7a\xb1\x69\x16\xc7\xe3\xe2\xe4\x5c\x8a\x95\x17\x77\xf1\x52\x6a\xbc\xa4\x6e\xd0\xba\x8f\xa5\x8c\x92\xe6\x7c\xd0\x96\x8f\xfd\xd3\x10\xae\xe7\x10\x9d\x06\x9b\xbf\x64\x58\x19\x7a\xad\xd4\x44\xe5\x52\xfe\x12\x5a\xf5\x89\xdb\x6b\xe2\x14\xae\x76\x55\x6b\x67\xd5\x31\x1f\x8b\xc0\x67\x31\xf9\x2c\x26\x5f\xfe\x94\xee\x7c\x42\xa9\xc9\xf2\xf2\x49\xaa\xf8\xa4\x77\x7c\x16\x90\xcf\x82\xf3\x49\xec\xf8\x00\xf6\x27\xa5\xa0\x35\xa9\x3e\xf0\xfc\x59\x88\x50\xd0\xd7\x39\x7d\xa6\xff\x86\xb6\xc6\xc9\x67\x74\x7d\x46\xce\x67\xc4\x7e\x46\xce\x67\x84\x7c\xc6\x06\x76\xd7\xf9\x79\xbf\x9f\x11\xf2\x89\x16\x7e\x22\x3c\x9f\xf7\xf2\xb5\x56\x15\x93\x0a\x6b\x61\x1d\xd7\x77\x4a\xcd\x19\x8c\x26\x7c\xee\x73\x7c\x71\xff\x16\x15\xf1\xf5\x95\xc9\x50\x6d\x1d\x33\x19\x3e\xd1\xc5\x4f\xfc\xf0\x93\xd4\xff\xf1\x20\x7c\x62\x89\x18\xa5\xe7\x67\xe7\xff\x89\x13\x7e\x7c\x01\x9f\x5d\xfd\x67\x9f\xff\xb5\x22\x96\x5d\xd3\x27\x62\xff\xd9\x2f\x7d\xf6\xe1\x9f\x9d\xf9\x67\x8f\xf4\xf5\x0e\x87\x95\x79\xc5\x45\xaf\xb8\xe8\x65\xb2\x5d\x71\xd1\xeb\x4e\xaf\xb8\xe8\x15\x17\xbd\x62\x5c\x57\x8c\x8b\x4a\x7c\xb5\xfa\xc2\x13\x31\xae\xcb\x12\xbd\x62\x5c\x57\x8c\xcb\xea\x50\xad\xbe\xf0\x44\x8c\xeb\xb2\x56\xaf\x18\x97\x55\xa3\x5a\x7d\xe1\x89\x48\xd7\x15\xe9\xba\x22\x5d\xd7\x73\xbe\x6c\xdf\x2b\xd2\x75\x45\xba\xae\x48\xd7\x15\xe9\xba\xde\xc2\x15\xe9\xba\xde\xc2\x15\xe9\xba\x22\x5d\x57\xa4\xeb\xbe\xbe\x77\x78\x22\xd2\x75\x45\xba\xae\x48\xd7\x65\x08\x5f\x91\x2e\xab\xd8\xa4\x30\x3f\xad\x65\xd5\xea\x0b\x4f\x44\xba\xae\x37\x7e\x45\xba\xae\x48\xd7\x15\xe9\xba\xcc\xea\x2b\xd2\x75\x19\xdd\x57\xa4\xeb\x32\xab\xaf\x48\xd7\x15\xe9\xba\x22\x5d\x57\xa4\xeb\x8a\x74\x5d\x23\xe7\x8a\x77\x59\x2b\xab\xd5\x57\xce\xdb\x3f\x88\xe9\x96\x4d\x6f\xf1\xac\xb6\x3f\x59\x5a\x92\xdb\xea\x82\xc4\xbb\x9e\x78\xd7\x63\xc1\x3f\x96\xfa\x13\xef\x7a\x06\xe6\x13\xef\x7a\x36\x1d\xef\x6b\xb9\x6e\x55\x43\xe2\x5d\x4f\xbc\xeb\x89\x77\x59\xc0\xab\xd5\x37\x0c\xb7\xd3\xad\xc1\x65\x92\xc9\xb7\xfe\x76\x0f\x4c\x02\x7b\xf2\xb0\x3f\xdb\xd8\xcf\x26\xf4\x93\x21\xfd\xd9\x48\xa2\x2b\x9f\x9f\xed\xe1\xe7\xda\x3e\xbf\xfe\x21\xed\xff\x7e\xe1\x61\xe7\x23\xd4\xfd\x2c\xbc\xb4\x1a\xe6\x87\xc2\x34\x6c\x9c\xc3\xf7\xc7\xf9\x49\xae\xfa\xc4\x76\xcf\xf6\x36\x6c\x7b\x43\x8e\x75\xd8\xba\xc6\xf9\x09\xf2\x91\x9e\xc2\xf2\xd3\x0b\x8e\xbb\xbb\xee\xee\xe2\xfe\xb8\xae\xe1\x7e\x3f\xf1\x39\x51\x3e\x13\x05\x03\xc8\xc5\x00\x72\xd1\xff\x5e\x92\x01\xd7\xbe\xe8\xda\xff\x5c\xd7\x4c\xa2\x78\xca\x90\x9e\x32\xa4\xab\x75\xa6\x21\x8c\xc4\xf5\x22\x6e\xbd\x4c\x09\x79\xd5\xd5\xfa\x4e\x43\x15\xa5\xff\x45\xfa\x4a\xd8\xaf\x5a\x67\x1a\xa4\xf8\x1d\x2e\x7e\x87\xcb\xf4\xb8\x88\x5e\x2f\x1e\x87\xdb\x22\xc1\x08\x60\xef\xd7\xf2\xa5\x86\x1b\x4e\x87\x0b\xda\xaf\x3d\xd8\xc5\xef\x70\x99\x2d\x12\xb4\xab\x15\x9f\xb4\xd0\xe1\x77\xb8\xb8\x1e\xae\x7d\xda\xc5\xec\x70\x31\x3b\x5c\x24\xea\x97\x99\x73\x71\x3a\x5c\xc4\xe9\x17\xb3\xc3\xb5\x73\xbb\x6d\xdd\x7a\xaa\xcf\x3b\x7d\x08\x93\x9f\x67\xfb\x3c\xe7\xe7\x09\x3f\xcf\xea\xd9\x31\x3e\x4f\xe9\x79\x4a\x0f\xcf\xc5\x43\x6c\xcb\x48\xac\xd6\xe7\xd7\x37\x4b\x1e\x72\xef\x8f\x54\xc1\xc3\x6a\xf1\x18\x65\x8c\xc7\x6a\x8d\xe4\xa7\xef\xd3\xf7\xe9\xab\xbe\xce\xd3\x78\x22\xb7\x4c\xce\x6a\xf5\xa5\x52\x22\x96\xfb\xec\x54\x9f\xe7\xf3\x3c\x9f\xe7\xf9\x3c\x4f\xe6\x79\x4a\x4f\xa4\x97\x01\x5b\xed\xd5\xea\x6b\xf6\x79\x62\xcf\x13\x63\x96\x56\xab\xaf\xd9\xe7\xe9\x3d\x4f\xef\x79\x7a\xcf\xd3\x7b\xaa\xf1\x1f\x2e\x8c\x87\x0b\xe3\x61\xbe\x78\x9c\x9f\xcf\x1e\xf8\x61\xbb\x78\x76\xcb\x0f\xdb\xc5\x13\x67\x66\x2c\x57\xdb\x15\x89\xce\x5f\x7e\x4b\x3a\x17\xb7\xe1\xb3\xa3\x7e\x76\xd4\x8f\x0b\xf1\x61\xbb\x60\x6e\x57\xeb\xfb\xbd\x11\xae\xc5\x67\xd9\x6f\xa9\xd7\x87\xf9\x82\x31\x3e\x9f\x5d\xf7\x63\x50\x3f\xcc\x17\x0f\xf3\xc5\xc3\x7c\xf1\x38\x21\x9b\xec\xf7\x71\x3c\x3e\xae\xc8\xc7\x15\xf9\xb0\x60\x3c\x2c\x18\xaf\xc5\xd8\xb8\x25\x1f\x16\x8c\x87\x05\x43\x29\x40\xb5\xc6\xa4\x59\xe9\x69\x5c\x4f\x83\xe4\x76\xb5\xfe\xfb\x93\xcf\xf7\x5f\x4b\x93\x27\x70\x19\xe0\xd7\x5d\x5f\x4f\xe0\xba\xdf\xeb\x7e\xaf\x3b\xbd\xee\xf4\xba\xbb\xeb\xee\xae\xbb\xbb\xee\xe8\xba\xa3\xeb\x8e\xae\x3b\xba\xee\xe8\xba\x97\xeb\xfa\x89\x48\x4d\xc5\x0d\xd5\x3a\xc7\xd2\x21\xfd\xe5\xf2\x41\x5c\x8e\xd6\x4b\x32\xfc\x8e\xd7\xb1\x5c\xe7\x9b\x8f\xa3\x67\xa2\xbd\x28\xc9\x80\x8b\x6d\xe1\xe2\x59\xb8\x64\x02\x14\x31\xcc\xdb\xb2\xc1\x78\x16\x6e\x30\x2d\xc3\x4c\xb4\x0b\xbd\x64\x02\x2e\xce\x85\x8b\x73\xe1\xf2\x74\x5c\x9c\x0b\x4a\x1f\xe6\x25\x10\x70\xb1\x8f\x5d\xce\xa8\x8b\x8f\xec\xe2\x62\x50\x54\x51\x6d\x47\x92\xf5\xf2\x24\x71\x34\x28\xa7\xa8\xd6\x99\x9e\x27\x81\x80\xdb\x82\xc7\xf8\x1a\x2e\xbe\x86\x16\x31\xbd\xf8\x1a\x94\x65\x54\xeb\x4c\x4f\x18\xdf\xd9\x25\x88\xf0\xf1\xad\xb4\x59\x24\xcd\x7c\x0e\x3c\x14\xc3\xdd\x0d\xdc\x13\x83\xa7\x66\x44\x57\xe0\xdb\x72\xb9\xda\xf1\x93\x21\xac\x37\x35\xa2\x47\xaf\x74\x43\xb4\xd5\xcf\x5b\x78\xf8\x53\x1e\xfe\x94\x87\x39\xe5\x89\xa5\x3f\x6f\xe4\x79\x47\xcf\x3b\x7a\xde\xce\xf3\xeb\x8f\x7c\xf2\xc3\x85\xf1\x70\x61\x3c\x6f\xed\x79\x6b\x4f\x1c\xfe\x79\x77\xcf\x1b\x79\xde\xe0\xf3\x06\x9f\x37\xf8\x70\x67\x3c\xf7\xf8\xdc\xc5\xf3\x4e\x9f\xe8\xfd\xf3\x66\x9f\x37\xfb\xf0\x68\x3c\x3c\x1a\xcf\x5b\x7e\xee\xf7\x79\xcb\x36\xbb\xd5\xea\x05\x31\xbc\xeb\x47\x1e\xe2\x89\xfc\x3f\xef\xfd\xf1\x85\x3d\x6f\xff\x79\xfb\xb6\xc8\xd5\xea\x0b\x4f\x8c\x84\x67\x24\x3c\xf9\x02\xcf\x78\x78\xc6\x43\x3b\x27\x9f\xf1\xf0\x3c\xdb\xe7\x39\x3f\xe2\x11\xcf\x78\x78\x46\xc8\x33\x42\x9e\x2c\x83\x67\x84\x3c\x23\x84\x52\x53\xb5\xfa\x42\x1e\xe3\x44\x2d\x5f\xb5\xfa\x42\x1e\xe3\xe4\x19\x27\x4f\x9e\xc2\x33\x4e\x1e\x5e\x8f\x67\xb4\x3c\xa3\xe5\x19\x2d\x4f\x16\x03\x87\x6a\xb5\x7e\x0b\xda\xc8\x65\x78\x72\x19\x38\x5a\xab\xd5\x0b\xc2\xc8\x3e\x78\xb2\x0c\x9e\x2c\x83\x27\xbf\x40\x08\xa3\x5a\x9f\x7b\x6b\x72\x04\x46\xf4\xd8\xb3\xb9\x9f\x63\x96\xd9\xee\xaa\x44\xe6\x89\xf5\xce\xef\xd7\xb6\xa8\xa4\xcd\x84\xe0\x66\x8b\xc8\x3c\x95\x57\x8f\xfc\xe4\x2b\xb3\x6e\x7d\xeb\x7e\xda\xd0\x5e\xed\x23\x76\xee\xf3\x37\xb4\xfe\xfb\xfc\xd7\x76\xa1\xcc\xfc\x45\xb4\xb8\xda\xa9\xdd\xda\xfa\xce\x3d\x3e\xad\xcf\x87\x73\x46\x7f\x7e\xb5\xf5\xfd\xb5\x39\x58\x84\x69\xaa\x75\x66\x38\x33\x9c\x19\xce\x21\xbb\x5e\x9b\x86\x45\xde\xb8\x5a\x9f\x2f\x7d\x97\x6b\x58\xae\x67\xfb\x64\xfb\xb6\xed\xf3\xad\xef\xf6\x9d\xdb\x37\x6c\xdf\x7c\xfa\x1c\xbd\x0e\xfb\xcd\x26\xc6\x7a\xfa\x59\x49\x3f\x6b\x22\x0d\xb1\xf9\x59\xef\x5a\x8f\xeb\x83\xed\x1f\x6c\xff\xac\x71\x9f\xd5\xea\xe3\x1d\x23\x16\x33\x5b\x26\xe6\x83\xe7\x5f\x93\xc9\x43\xef\xcf\x4c\xff\x30\x22\x7d\x66\x7a\x8b\xff\x7d\x66\x77\x0b\x21\x13\xb4\x9a\xe4\xae\xe6\x67\x3e\x7e\xe6\xe0\x67\xa6\x7c\x66\x22\x89\xab\xfa\x84\x64\xb2\xeb\x31\xd7\x3e\xe3\xf9\x33\x47\x3e\x73\xe7\xeb\x99\x22\x97\x44\xd8\x6b\x3e\x39\x20\x02\x5e\xd5\x2e\xad\xf1\x63\xf6\xc9\x01\x79\x72\x40\x9e\x1c\x10\x81\xb0\x6a\x87\x56\x5f\xf3\x4e\xf6\xc7\x93\xf7\xf1\xe4\x7d\x3c\x79\x1f\x4f\xde\xc7\x93\xf7\xf1\xe4\x7d\x08\xc3\x55\xab\x97\x19\x27\xef\xe3\xe1\x67\x79\x82\xf8\x6f\xb6\x4c\x8f\x19\x27\x88\xff\x04\xf1\x9f\x20\xfe\x13\xc4\x7f\xb3\xc7\x79\x53\x76\x9b\x7d\x82\xf8\x4f\x10\x1f\x33\x48\xb5\xfa\x9a\x7d\x82\xf8\xb8\x42\xaa\xd5\xd7\xec\x13\xc4\xc7\x1b\x52\xad\xbe\x66\xa2\x20\xfe\x13\xc4\x7f\xbc\xf3\x4f\x10\xff\x09\xe2\x3f\x5c\x1b\x18\x46\xaa\xd5\x17\x6e\x77\x1d\x0a\xae\x8d\x87\x6b\xe3\xb5\x58\xa3\xb8\xc5\x53\xa5\xfc\x70\x6d\x3c\xb5\xca\x0f\xd7\x06\x76\x92\x89\xa9\xa4\x5a\x7d\x61\x38\xae\x8d\xd7\x29\xef\xb8\x36\xde\x6c\x9e\x05\x18\xae\xaa\xf9\x49\x24\x78\x76\x16\x0f\xd7\xc6\xc3\xb5\xf1\x54\x3b\x3f\xd5\xce\x0f\xd7\xc6\x13\x4b\x78\x52\x0e\x48\x2d\x4e\x52\x8b\x93\xd4\xe2\x24\xb5\x38\x5b\x6a\xf1\xd9\x7d\x3c\x5c\x1b\x4f\x52\x3b\xce\x94\x89\x2d\xa5\x46\x91\x71\x75\x7a\x8c\x19\x5d\x76\x4c\x72\xaf\x3e\xf2\x3a\x1f\x54\xfc\x04\x6a\x89\xaf\xd5\xb1\x5e\x98\x49\x21\x24\x31\xac\xf9\xc9\x7e\xfa\xe4\x4f\x7d\xb2\xa2\x3e\x58\xf7\xc9\x63\x22\xa1\x35\x43\x04\x62\x48\x54\x18\x46\x02\xb1\x95\x39\xbc\xe5\xe1\x3d\x0e\x6f\x70\x78\xf2\xc3\x93\x19\x9e\xe1\xf0\x04\x86\xe7\x43\x19\x6f\x52\xc6\x9b\x8b\x5b\x6b\x71\x93\x2c\xae\x85\xc5\x3d\xb0\x9a\xed\x97\x33\x60\xd9\x52\x6f\x3b\x50\x15\xe9\x53\x8d\x7a\x7d\x52\xbb\xb9\x8e\x24\xd9\x91\x6d\xfb\xa9\x4d\x76\x6d\x13\x4d\xdb\x30\x64\xdb\x25\x6d\x51\xa5\x6d\xaf\xb4\x09\xab\x6d\xd6\xf8\x66\xc3\x6f\xd6\xbe\xd4\x82\xb9\xed\x17\x24\x0f\x4c\x09\x06\x75\xec\x7c\x52\xac\x6c\xb6\x6d\x35\xff\xf4\x0a\x5b\xf0\xcf\x88\xfa\x8c\xa5\x4f\x29\x61\x33\x7a\x84\xe8\x42\x88\x2e\x44\xb6\x93\xcc\x0e\x54\x25\x4e\x88\x1c\x44\xcb\xa5\x73\x4d\x11\xba\xaa\xb6\x7a\x71\xf4\x06\x77\x57\x33\x86\x04\x67\x6d\x70\xd3\x06\x17\x2c\x59\x8d\x19\xdc\x9c\xc1\x35\xb5\xdb\x72\xb0\xf7\x7c\xdc\xd5\x5c\xec\x35\x72\x8c\x37\xab\x3f\x7e\x96\xa7\x34\xe2\xa9\xa8\xc7\xc5\x33\x49\x9e\x57\x6b\xbc\xc1\x1f\xc9\x30\x78\x79\xaa\xd5\x17\xfe\xe0\x67\x79\xd2\x63\x1e\x7e\x96\x66\xe7\xc1\xae\x52\xad\xbe\xb0\x48\xaa\xcc\x93\x2a\xf3\xa4\xca\x60\xf6\xa9\x56\xdf\xbe\x36\x58\x24\x61\xe6\x49\xa9\x7f\xd2\x66\x9e\xb4\x99\xc7\xf5\x85\x9f\xa5\x5a\x7d\x61\x11\xae\x8d\x87\x6b\xe3\x49\xad\x79\x52\x6b\x1e\xc7\xd8\x93\x5a\x83\xe1\x65\x3e\x29\xf8\xf8\x5c\xaa\xd5\x17\x16\x49\xca\x7f\x12\x6f\x1e\xae\x8d\x27\xfd\xe6\x71\xb3\x61\x81\x99\x18\x61\xaa\xd5\x17\x16\xe1\xda\xc0\x0b\x53\xad\xbe\xb0\x88\x5b\xee\x49\xda\x79\x92\x76\x9e\xe4\xfe\xd7\x51\x1c\xa9\x3b\x4f\xea\x0e\x06\x99\x6a\xf5\x85\x45\xd2\x78\x9e\x34\x1e\x9c\x32\xf3\x71\xe6\x3d\xc5\x00\x4f\x32\xcf\x93\xcc\xf3\x24\xf3\x48\x12\x9b\x38\x68\x26\x6e\x9a\x6a\xf5\xed\xc2\x47\x58\x24\xc9\xe7\x71\xfe\x3d\x8c\x1b\x0f\xe3\xc6\xc3\xb8\xf1\x14\x0f\x3c\xc9\x3f\x0f\xe3\xc6\xe3\x2c\x7c\x52\x80\x9e\x14\xa0\x27\x05\xe8\xed\xf6\x02\x79\x0b\x7c\x14\x0f\x63\xe9\xc3\x58\xfa\x78\x27\x1e\x8f\xc4\x13\x0c\x79\x66\xd9\xe3\x91\x78\x7c\x11\x8f\x2f\xe2\xf1\x42\x3c\x11\xdf\x05\x25\x96\xf9\xb2\x20\xde\x82\x75\xcb\xb8\x5a\xc6\xde\x32\xea\x96\x11\xb8\x3c\xf9\x65\x84\x2c\x63\x06\x53\xd5\x5c\xab\x45\xb2\xb1\x2a\x7b\x77\xcb\x7b\x59\xc6\x09\x4e\xab\xb9\x3c\xe1\xe5\x99\x2c\xcf\x7c\xb9\xc7\xe5\xed\x2c\xcf\x79\x79\x47\xcb\x5b\x5b\x9e\xcf\xf2\x04\x96\x37\xb5\x24\x29\x61\xa5\xa9\xd6\xb7\x41\x2a\x49\x26\xcb\x53\xc2\x62\x33\x97\xf4\x27\xcc\x35\x13\xbb\x4d\xb5\x9f\x73\x08\xb7\x9f\x6e\x7d\x8e\x33\x9a\xab\x75\x49\x23\x59\x52\x47\x96\xc4\x92\x25\xf1\x03\x5b\x4d\x1d\xfb\x2f\x2a\x75\x6c\x05\xf8\x6b\xe6\x92\xbc\xb1\x70\x04\x2c\xe9\x1f\xb8\x6c\x26\x36\x9c\xfa\xc4\x37\xd4\xbc\x5e\xe7\xf7\x0d\x75\x2f\x52\x20\xd6\xe9\x6f\xc0\x3d\xad\x44\x7b\x49\xab\x10\x28\xa8\xe3\x4f\x2f\xdf\xb6\xfa\x1c\xc7\x9e\x86\xd2\xed\xa5\x04\x7c\x49\xd2\xc0\x5d\x32\x97\x68\xf1\x12\x5d\x5e\xd9\x65\x5d\xd6\x2f\xc9\x63\x0f\x4b\x0b\x8e\xa4\x6a\x8d\x37\x58\xe4\xf9\x3c\x49\x65\x92\x1e\xab\x35\x56\x61\x91\xa4\xb2\xe7\xa9\x62\x56\xaa\x56\x5f\x58\x24\xa9\xec\x71\x5d\x3f\x29\x64\x4f\x7a\xcf\x93\xc6\xf3\xf8\x1e\x9b\x77\xe9\xed\x96\x6f\x37\x1a\x25\xe4\x3c\x4f\xf5\xe1\x92\x78\xbb\x4b\xda\xcc\x29\x5c\x12\xcf\xd3\x7e\xb8\x24\x94\x97\x4c\xa5\x26\xd5\x12\x7e\x36\x8f\xf8\x33\x9f\x67\xfe\x24\xe1\x3c\x0c\x11\x4a\x53\xaa\xf5\x5f\xf7\x28\xe5\xe6\x79\x5f\x8a\x52\xaa\x75\x8e\xbb\x93\x72\xf3\xa4\xd9\x3c\x69\x36\x4f\x9a\x8d\x92\x95\xa9\xa0\xa5\x5a\xe7\x40\x54\xfe\xc9\x87\xf1\x41\x41\x4b\xb5\xce\x84\xa5\x52\x6e\x1e\xdf\xe9\x53\xb8\xff\x24\xde\x3c\x89\x37\x4f\xe2\xcd\x93\x78\xf3\x78\x56\x5f\xef\x56\x5a\x78\xa5\x8b\x61\x24\xe1\x3c\x6f\x59\x01\xcc\x24\x78\x5f\xad\x33\x3d\x4f\x09\x39\x4f\x42\x8e\x42\x9a\xf9\x8c\x19\x65\x33\xd5\xea\x65\xd6\x4b\xce\x79\x92\x73\x9e\x42\xfc\x27\x45\xe7\x49\xd1\x79\x52\x74\x94\xd6\x54\xeb\x7c\xa8\xd8\xe3\x53\xa0\x06\x37\x53\xb5\xd3\x18\xd3\x9a\x9b\x72\x2f\xb0\xe4\xcc\xa5\x4e\x76\xc9\x60\x58\xb2\x13\x16\xb9\x74\xbc\x39\x35\x1a\x7d\xb2\xfa\x13\xad\xd9\x27\xff\x60\x59\x61\x71\xe8\xd4\xf7\x68\x1f\xb1\xc8\xd9\xed\x26\x1c\x59\x9f\x0b\x10\x2d\x81\xd0\x25\xd4\xb9\xac\xbc\x4b\x68\x28\x76\x8b\xe7\x4a\xc2\x91\xe8\x15\x2d\x86\x22\x03\x7d\xc0\xff\x01\x7f\xc6\xea\x4f\xea\xfa\x07\x6c\x1f\xb0\x77\xc0\xf0\x61\x3c\x0f\x88\x3d\x24\xa7\x0d\xe1\x9a\x61\xb4\x0f\x48\x32\x14\xb2\xe3\x59\x9e\xc3\x0c\x1a\x66\xca\x30\x6b\xb0\x2d\x57\xdf\x3e\xdf\x77\xd6\x15\x0e\xd7\x36\x24\xbf\x0d\xa3\x77\x48\x6f\x1b\xae\x73\x48\x45\x1b\xc6\xfc\x30\x9e\xb1\x3c\xd7\x99\xa1\xad\x4f\x8c\xc9\xa1\x1e\x7c\x18\x39\x2d\xac\x3e\x8c\x96\x61\xd4\x0d\x63\x69\x48\x30\xc3\xe6\x5c\x9f\xf7\xf9\xce\x71\x47\x46\xce\x90\x19\x33\x8c\x81\x21\x87\x66\xc8\x7d\x19\xe8\x10\x70\x34\x57\x5b\x67\xca\x6b\x19\xf2\x48\x86\x3a\xf1\x21\x13\x85\x70\xd8\x1c\xf2\x45\x46\xf6\x48\xb6\x92\xca\xd1\x79\x70\xef\x19\x27\xcf\xf7\x3f\xa3\xe8\xc9\xd1\x79\xc6\xd5\x73\x0d\xef\xb4\xd6\xb4\x75\x13\x55\xc3\x93\xa3\xf3\xe4\xe8\x3c\x54\x0d\x4f\xa6\x8e\x22\xb1\x6a\x53\xdb\xbd\xea\xb7\x04\x39\x9f\x20\xe7\x43\xd2\xf0\xd8\xcc\x4f\xbe\xce\x73\x2f\xcf\xbd\x3c\x59\x3b\x4f\x20\xf4\xc9\xda\x51\xd9\x33\x55\xf9\x54\xab\x17\x64\x90\xb5\xf3\x20\xea\x13\x32\x7d\x46\xfb\x33\xce\x95\x9c\x4d\xe5\x67\xd5\x3a\x1f\x4a\xc8\xd4\x51\xa2\x36\x9f\xb9\xa0\x14\xad\x5a\xe7\xc3\x07\x49\xb6\x4f\xa5\xfc\xeb\xe7\xe6\xd9\x3e\x33\xee\xc9\xce\x79\x66\xc7\x33\x83\x9e\x90\xec\xf3\x9c\x9f\xbc\x9c\x27\x2f\xe7\x99\x4d\xaf\xd1\xde\x2c\x7b\x2a\xe2\x9f\x1c\x9d\xa7\x22\xfe\xc9\xd4\x79\x32\x75\x9e\x40\xee\x13\xc8\x7d\xe6\xdd\xcb\xe6\x0d\x80\x03\xf2\x75\x54\x35\x55\xab\x2f\x34\x68\x76\x3c\xf9\x3a\x2a\x9f\xaa\xd5\xd7\xfb\x15\xc2\x7d\xb2\x76\x9e\xac\x9d\x67\x2e\x3f\x75\xf1\x8f\xd5\xfd\xd4\xc5\xbf\xec\xb7\x0c\xcf\xd9\xe1\x4f\x5d\xfc\x63\x8d\x3f\xd9\x3c\xb8\xb9\xe7\xf0\x8b\xc3\xf5\x0c\x67\x0e\x96\x39\x06\xe4\x39\xa5\xb9\x2a\xba\xae\x56\x82\x31\x69\x15\x1e\xa7\xd5\x32\x2b\x2a\x42\xa6\x8a\x90\x69\x27\x35\xed\xeb\xa7\x1d\xfd\x54\x05\x32\xed\xfa\xa7\x8a\x8d\x69\xb7\x3e\xed\xeb\xa7\x7d\xfd\xb4\x5b\x6f\xe1\xda\x69\xb7\x35\xed\xb8\xa7\xfd\xf5\xb4\x47\x9e\xf6\xc2\xd3\xde\x76\x09\xab\x62\xf2\x9a\xab\xc5\xe9\xed\x02\xb6\xd8\xd3\xe6\xf7\x08\x58\x1d\x50\x3a\xe0\x70\x98\x2f\x81\xe6\x24\xcc\x97\x56\x35\x6f\x29\x7d\x0c\xce\x73\x28\xdf\x1d\x52\x1b\x86\x22\xde\x21\x9d\x61\x48\x3a\x18\x42\xc1\x43\x28\x18\x07\xf4\x1c\x76\x70\x43\x08\x17\xb3\x73\xb5\x4b\xeb\x7b\xcc\x59\x81\xd3\x89\x1b\xf4\x48\x15\x0e\x73\x2d\xcc\x11\xc2\x7c\x33\x8c\x5e\xf2\x7c\x75\x1c\x5a\x9f\xdb\xf5\x18\xb7\xb8\x9b\x67\x88\x86\x44\xdf\xa3\x3d\x5a\x78\xce\x51\x3b\xcd\xf5\x15\x6a\xad\xaf\x25\x96\xf8\x73\x4e\xf4\x31\x6a\x0d\xde\xc8\x13\x9d\xe4\x4c\xad\x81\xc7\x75\x4b\xca\xd8\x5d\x72\xcc\x8b\x9b\xd1\xcc\xe6\xcd\x72\xae\xbc\xb9\xfd\xa8\xb8\x14\x54\xdd\x55\x7b\xb4\xa9\xbd\x5a\xe3\x0d\x3e\xc8\x06\x7b\xb2\xc1\x9e\x6c\xb0\x67\x65\x51\xb7\x57\xad\xbe\xb0\x42\x82\xcf\xc3\xa5\xf0\x6e\xff\x0a\xac\x90\xe6\xf3\xa4\xf9\xa8\xe7\x9b\xea\xf9\xaa\xd5\x97\x8d\x24\xd9\xe7\x49\x7c\x78\x52\x7e\x54\xfb\x55\xab\x2f\xdc\xb8\x70\xc3\xea\xf6\x30\x2a\x3c\x49\x40\x2a\x05\xab\xd5\xd7\x7e\x4d\x12\xd0\x93\x04\xf4\xac\x7d\x4f\x12\xd0\xb3\x03\x7d\x92\x80\x9e\x24\xa0\x27\x09\xe8\x59\x19\x9f\x9d\xe9\x93\x04\xa4\x06\xb1\x5a\x7d\x61\x8e\x94\x8a\x27\x09\xe8\x49\x02\x7a\x92\x80\x9e\x24\xa0\x27\x09\xe8\x49\x02\x7a\x92\x80\x54\x22\x4e\x15\x8a\x53\x85\x62\xb5\xfa\xc2\x22\x49\x40\x4f\x12\xd0\x93\x04\xf4\x24\x01\x3d\x49\x40\xcf\x1a\xfd\xa4\x72\x3c\xc9\x1d\xcf\x7a\xfd\x24\x01\x3d\x49\x40\x4f\x8c\xe0\x49\x02\x7a\xf6\xd1\x5d\xef\xf8\x24\x7a\x3c\x33\xfa\x49\xf1\x78\x8a\xe4\x9f\x22\xf9\x27\x21\xe8\x99\x23\x4f\x65\xe4\x53\x19\xf9\x14\xc9\x3f\x45\xf2\x4f\xba\xd0\x93\x2e\xf4\xa4\xc9\x3c\xe9\x42\x4f\xf2\xc8\xeb\x22\x79\xde\xc2\xe4\xa5\x4f\xde\xc2\xe4\x81\x4f\xbe\xc4\xe4\x45\x4c\x5e\xf1\xe4\x63\x4f\xde\xf5\x34\x6e\x95\x14\xcd\xe4\xf3\x49\x9e\xed\xe4\xed\x49\xfe\xed\x84\x4e\xc9\xa7\x9d\xaa\xe5\x52\x85\x5c\x46\x8f\xe7\x66\x8f\x55\x9c\xcf\xf3\x93\x2a\xde\xf6\x0b\xbe\xd9\x96\x4e\x6e\x61\xd6\xd9\x42\xb1\x2d\x5a\xda\x12\xa5\x04\x91\x11\xdb\xf0\x7e\x1f\x18\x78\xfc\xe2\x89\x16\x69\xa5\xfd\xa3\x4e\xee\x40\xc2\xa3\x12\x4e\xc1\x42\xb5\x2d\x74\xdb\x22\xcb\x2d\x5c\xdb\x02\xb5\x3e\x37\x37\x21\xe4\xaf\x90\x81\x7f\xf2\xf0\x91\x1e\x7e\xc5\xc3\x4b\x79\x78\x08\x8f\x1d\xe5\xe1\xeb\x3b\x7c\x74\x67\xb6\x58\xb3\x6b\xe3\xa3\x3b\xfc\x6c\x87\x27\xed\xf0\xbc\x1d\xfe\xa8\xc3\xdb\x76\xf8\xee\x0e\xef\xc7\xe1\x67\x3b\x7c\x26\x87\x7f\xe3\xf0\x6f\x1c\x3b\xd3\xc3\x6f\x70\x78\x06\x8e\x7d\xe8\xe1\x4f\x38\xfc\x06\xea\x59\xe7\x59\x2d\x4b\xd7\xd2\xb4\x2d\x4e\xf7\xb5\x0c\xe5\x57\x4f\x98\x44\xb2\x04\x93\xdd\x3e\x2e\xa9\x25\x1b\x9a\x6d\xdc\x6a\x47\x26\xc6\x56\xfb\xb8\x3d\x1f\xca\x3a\xd5\xd6\xe8\x82\xc6\x0f\x32\x3f\x98\xfc\x24\x9d\x3d\x49\x67\x4f\x52\x92\xca\xdd\x6a\x53\x7b\xb5\x35\x56\x25\x9d\x3d\xf8\xf6\x24\x9d\x3d\x28\xf7\x24\x9d\x3d\x49\x67\x8f\x77\xee\x49\x3a\x13\xa1\xa8\x56\x5f\x58\xc4\x6b\xf7\xe0\xff\x93\x74\xf6\x24\x9d\x3d\x49\x67\x0f\xb1\xc2\x93\x40\xf4\x24\x10\x3d\xab\xc9\xe3\xe5\x7b\x12\x88\x9e\x55\xe3\x59\x35\x9e\x04\x22\xe5\x39\xd5\xea\x0b\x8b\x24\x10\x3d\x09\x44\xca\x76\xaa\xd5\x17\x16\x59\x65\x9e\x95\xe5\x49\x20\x7a\x7c\x86\x4f\x02\xd1\xb3\xfa\x3c\xab\xcf\x93\x40\xa4\xe4\xa7\x5a\x7d\x61\x91\x04\xa2\x27\x81\xe8\x49\x20\x7a\x12\x88\x9e\x04\xa2\x67\x9d\x7a\xde\xd4\x93\x40\xf4\x24\x10\x3d\x09\x44\x4f\x02\x51\x2b\x90\x3d\x09\x44\x8a\x89\xaa\xd5\x17\x16\x79\xbf\x0a\x8b\xaa\xd5\x17\x16\x49\x20\x7a\x12\x88\x9e\x75\x90\x2e\x4b\xb5\xfa\xc2\x22\x09\x44\x4f\x02\xd1\x93\x40\xf4\x24\x10\x3d\x09\x44\x4f\x02\xd1\x93\x40\xf4\x24\x10\xbd\x16\xc3\x95\x40\xf4\x24\x10\x3d\x09\x44\xef\xf5\x68\x81\x45\x12\x88\x9e\x04\xa2\x6d\xd6\x6f\xb5\xad\xdb\x0c\xdd\xbc\xdf\xbb\x4b\x42\xec\x9e\xae\xac\x98\x6b\x5f\x79\x4f\x7f\x72\xba\x64\xa3\xcb\x31\xba\xf8\x42\x06\x7c\x76\x36\x7c\xe7\xaf\xcb\xa2\xfe\x3a\x67\x5d\x52\x9b\xf5\xf7\x8a\x19\xd5\x2a\x53\x6d\x7f\xfe\xaa\x15\x39\xaa\x55\xa6\x5a\x67\xae\x25\xf1\xad\x8e\x73\x6c\xad\xd2\x18\x31\x71\xec\x90\x77\x77\x16\xfe\xd7\x45\x2e\xf2\x85\xba\x84\xa4\x39\x5e\x47\xf3\x5d\x36\x5b\x65\x13\xb3\x35\x75\x59\x93\xbf\x34\x53\x53\x53\x24\x34\xad\x40\xfd\xca\x77\xa6\xf6\x68\xeb\xda\xbe\xfc\xb4\x43\x2b\x6a\x7c\xd2\xb1\xf3\xb3\xee\xe2\x13\xad\xfb\xae\x73\xc4\xec\xbe\xbb\xb4\xce\x11\xb3\xfb\xc4\xec\xbe\xe7\xf3\xfe\x2d\x91\xbe\x4f\xe4\xee\x13\xc5\xfb\xa4\xfb\x8d\x6f\x68\x43\x3b\xb5\x4b\xbb\xb5\xa9\x75\xa6\x88\xde\x18\xce\x14\xd7\x1b\xe2\x7a\xc3\x13\x1b\xa2\x7b\x63\x38\xdf\x5b\x18\x62\x7c\x23\x9c\x2f\xba\x37\x44\xf7\x06\xb4\x1f\xde\xd1\x10\xdd\x1b\xd3\xe7\xb3\x3f\xd7\xb7\xe7\xa0\xf5\x8b\xc7\xfb\x49\x3a\x43\xb4\xb6\xfe\xe1\xae\x5c\xf7\xe7\xba\x3f\xd7\xfd\x7d\xfd\xb9\xbb\x15\x83\xfc\x5c\xfd\xf7\xb9\x5b\xf7\xf0\xb9\x87\x8f\x95\xf6\xb9\x93\xcf\x9d\x7c\xee\xe4\x73\x27\x9f\x3b\xf9\xdc\xc9\xe7\x4e\x3e\x77\xf2\x89\x56\x7e\xa2\x95\x9f\xbb\xfa\xdc\xd5\xe7\xae\x3e\x77\xf5\x89\x5c\x7e\xa1\xaf\x04\xcb\x4f\x14\xf3\x9b\xfa\x4e\x7d\xdd\xf9\xe7\xce\x3f\x77\xfe\xb9\xf3\x8f\x0c\xed\x67\xbc\x7e\x9e\xc2\x67\xbc\x7e\xc6\xeb\x67\xbc\x7e\xc6\xeb\xb7\xf4\x35\x6a\xbf\xa5\xef\xd2\x57\x1c\xf4\x5b\xfa\x2e\x7d\xc5\x44\x3f\x31\xd1\x4f\x4c\xf4\x13\x13\xfd\xc4\x44\x3f\x31\xd1\x4f\x4c\xf4\x13\x0d\xfd\xb6\xbe\x92\x42\x3f\x51\xd2\xef\xe8\x75\x9c\xdf\x63\xf1\x38\x27\x7d\x4f\xfa\x3c\x7d\x43\xea\x75\x7d\x7e\x7d\x72\x9d\x7f\x7b\xd4\xfa\xef\xeb\x11\x66\xac\x7c\x3d\x4a\x8c\xbf\xe8\xd6\xe7\x9e\xde\xf0\xf4\x86\xa7\x37\x3c\xbd\xe1\xf9\x0c\xcf\x67\xb8\xeb\xe1\xae\x87\x7b\x19\xee\x65\x1c\x67\xba\xf2\xe1\xb9\x8d\xd5\xc7\x46\x9b\xe7\x36\x3c\xb7\xb1\xfa\x7b\xfc\x8a\x67\x35\x3c\xa5\xe1\x29\x0d\x4f\x69\xec\xfe\x7e\x67\x7a\x26\x9d\x73\x63\x0f\x79\xed\x09\xaf\x1d\xdd\xb5\xa3\xbb\xec\xf2\xcb\xf6\xbd\x2c\xe3\xcb\x9e\xbe\xe6\xff\x6d\xab\x97\x5f\xe3\xc9\x14\x7c\xc7\xf8\xdc\xbf\xcf\xb5\x56\x4a\xde\xd5\xa7\x94\xee\xc9\x1d\x7c\xbc\x1b\x4f\x59\xdd\x53\x2c\xf7\xec\x2e\xde\xe9\x3d\xb9\x55\x47\x51\xf4\x93\xa8\xfc\x30\xd3\x3d\x5e\xa7\x27\x5d\x19\x8f\xc7\x7c\x34\x85\x9e\xd2\xca\x27\x2f\xe7\xb1\xe4\x5e\xe7\xa6\xa0\xdc\x44\x66\x33\x1f\x9f\xcb\x43\x92\xf9\xf8\x50\x1e\xa2\xcb\xc7\x03\x8b\xb4\x66\x3e\xbb\xb8\x27\x3f\xe6\xf1\xde\xa2\xab\xa9\x76\xdb\x05\x49\x2a\x16\x3d\x9a\xa3\x2d\x3c\xf1\x7b\x23\x64\xc3\xac\x6d\x84\x34\xb7\xee\xf5\x36\x8f\xf9\xdb\x4f\xe6\x9c\x6e\xaf\x56\xa2\x72\xda\x59\xc1\xc7\x63\xec\x9d\xdb\xc7\xfd\x5f\xe7\xc3\xc4\xe3\x9b\xd3\x3c\x4a\x6f\x39\xbd\xdf\x34\x36\xd2\xdb\xcc\x03\xeb\xe1\x6f\xfa\xe6\x01\x91\x87\xd1\x3e\x4e\x8f\x28\x63\xc0\x95\x0c\x57\x32\x5c\xc9\x80\xd4\xc3\x95\x8c\xee\x6b\x46\x0c\x57\x35\xe0\xf5\x30\x2f\x86\xab\x1a\xee\x7d\xb8\xce\x01\xc1\x87\x2b\x1f\xae\x76\x78\x26\xc3\x33\x19\x70\x7c\x98\x41\xc3\x5d\x0c\x33\x68\x98\x41\x03\xbe\x0f\xf8\x3e\xe4\x64\x8c\x9e\x53\xb0\x7e\xc0\xfa\x01\xeb\x07\xac\x1f\xb0\x7e\xc0\xfa\xda\x4f\x56\x3b\xb4\xa1\x9d\xda\xa5\xdd\xda\xa3\x4d\xed\xd5\xea\x0b\x39\xc3\x6c\x0d\xc8\x19\x90\x33\x20\x67\x78\xbf\x01\x39\x03\x72\x06\xe4\x0c\xc8\x19\x90\x33\xcc\xf1\x80\x9c\x01\x39\x03\x72\x06\xe4\x0c\x73\x3f\xcc\xfd\x30\xf7\xc3\xdc\x0f\x73\x3f\x20\x67\x40\xce\x80\x9c\x01\x39\x03\x72\x06\x64\x08\xe3\x2d\xbc\xf1\x80\x9c\x01\x01\x02\x02\x04\x04\x08\x08\x10\x10\x20\x60\x48\x18\x75\x01\x0d\xc2\x38\x09\x68\x10\x90\x33\x8c\x99\x80\x09\x01\x13\x02\xda\x04\xb4\x09\xf8\x10\xf0\x21\xf6\xfd\xdb\xe8\xc4\x36\x3a\xb1\x8d\x4e\x6c\xa3\x13\xdb\xe8\xc4\x36\x3a\xb1\x8d\x4e\x6c\xa3\x13\xdb\xe8\xc4\x36\x3a\xb1\x8d\x4e\x6c\xa3\x13\xdb\xe8\xc4\x36\x3a\xb1\x8d\x4e\x6c\xa3\x13\xdb\xe8\xc4\x36\x3a\xb1\x8d\x4e\x6c\xa3\x13\xdb\xe8\xc4\x36\x3a\xb1\x8d\x4e\x6c\xa3\x13\xdb\xe8\xc4\x36\x3a\xb1\x8d\x4e\x6c\xa3\x86\xda\xa8\xa1\x36\x6a\xa8\x8d\x1a\x6a\xa3\x86\xda\xa8\xa1\x36\x6a\xa8\x8d\x1a\x6a\xa3\x86\xda\xa8\xa1\x36\x6a\xa8\x8d\x1a\x6a\xa3\x86\xda\xa8\xa1\x36\x6a\xa8\xcd\xb2\xd9\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x08\xa2\x36\x82\xa8\x8d\x20\x6a\x23\x88\xda\x2c\xbc\x8d\x26\x6a\xa3\x89\xda\x68\xa2\x36\x9a\xa8\x7d\xff\x31\xff\xf6\x6d\x13\x26\x40\x51\x58\xb8\x02\x38\x85\x25\x37\x40\x51\x80\xa2\x00\x45\x01\x8a\xda\x20\x0c\x50\x14\xa0\x28\x40\x51\x80\xa2\x00\x45\x01\x8a\x02\x14\x05\x28\x0a\x50\x14\xa0\x28\x40\x51\x80\xa2\x00\x45\x01\x8a\x02\x14\x05\x28\x0a\x50\x14\xa0\x28\x40\x51\x80\xa2\x00\x45\x01\x8a\x02\x14\x05\x28\x0a\x50\x14\xa0\x28\x40\x51\x80\xa2\x00\x45\x01\x8a\x02\x14\x05\x28\x9a\xa0\x68\x7a\x02\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\x51\x27\xc2\x4d\x50\xd4\x4b\xcd\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\x4d\x50\x34\x41\xd1\x04\x45\x13\x14\xcd\x9a\x58\x68\xc6\x36\x9a\xb1\x8d\x66\x6c\xa3\x19\xdb\x68\xc6\x36\x9a\xb1\x8d\x66\x6c\xa3\x19\xdb\x68\xc6\x36\x9a\xb1\x8d\x66\x6c\xa3\x19\xdb\x68\xc6\x36\x9a\xb1\x8d\x66\x6c\xa3\x19\xdb\x68\xc6\x36\x9a\xb1\x8d\x66\x6c\x2b\x4c\xd8\x0a\x13\xb6\xc2\x84\x6a\xf5\x0d\x7d\x43\xdf\xd0\x37\xf4\x0d\x7d\xa7\xbe\x53\xdf\xa9\xef\xd4\x77\xea\x3b\xf5\x9d\xfa\x4e\x7d\xa7\xbe\x53\xdf\xa5\xef\xd2\x77\xe9\xbb\xf4\x5d\xfa\x2e\x7d\x97\xbe\x4b\xdf\xa5\xef\xd2\x77\xeb\xbb\xf5\xdd\xfa\x6e\x7d\xfb\xe9\x6d\x7d\xb7\xbe\x5b\xdf\xad\xef\xd6\xf7\xe8\x7b\xf4\x3d\xfa\x1e\x7d\x8f\xbe\x47\xdf\xa3\xef\xd1\xf7\xe8\x7b\xf4\x4d\x7d\x53\xdf\xd4\x37\xf5\x4d\x7d\x53\xdf\xd4\x37\xf5\x4d\x7d\x53\xdf\xab\xef\xd5\xf7\xea\x7b\xf5\xbd\xfa\x5e\x7d\xaf\xbe\x57\xdf\xab\xef\xd5\xf7\xe9\xfb\xf4\x7d\xfa\x3e\x7d\x9f\xbe\x66\xe5\xdc\xdd\x1a\x6f\x96\xaf\xc9\xf0\x9f\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x9a\x7d\xd7\xb0\x68\xc2\xa2\x09\x8b\x26\x2c\x5a\xb0\x68\xc1\xa2\x05\x8b\x16\x2c\x5a\xb0\x68\xc1\xa2\x05\x8b\x16\x2c\x5a\xb0\x68\xc1\xa2\x05\x8b\xda\xed\xbf\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\x0b\x16\x2d\x58\xb4\x60\xd1\x82\x45\xab\x67\xd3\x33\xf6\x9e\xb1\xf7\x8c\x3d\xcb\xda\xf8\x3e\xed\xd0\x86\x76\x6a\x97\x76\x6b\x8f\x36\xb5\x57\xab\x2f\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x06\x5c\x1a\x70\x69\xc0\xa5\x01\x97\x86\x27\x39\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\x03\x2e\x0d\xb8\x34\xe0\xd2\x80\x4b\xbd\x71\x59\xd6\xaf\x65\xfd\x5a\xd6\xaf\xc5\x94\x5e\xb0\x68\xc1\xa2\x05\x8b\x16\x2c\x5a\xb0\x68\xc1\xa2\x05\x8b\x16\x2c\x5a\xb0\x68\xc1\xa2\x05\x8b\x16\x2c\x5a\xb0\x68\xc1\xa2\x05\x8b\x16\x2c\x5a\xb0\x68\xc1\xa2\x05\x8b\x16\x2c\x5a\xb0\x68\xc1\xa2\x05\x8b\x56\x76\xea\xbb\xff\x42\x98\x05\x3d\x16\xdc\xd8\x50\x62\xf7\x96\xfd\xeb\x24\x76\x49\xe6\x1d\xbc\x88\x4e\x4d\x77\x8e\x59\xb9\xcd\xca\x6d\x3e\x6e\x73\x70\x9b\x71\xdb\x5c\xdb\xe6\xda\x36\xd7\xb6\xb9\xb6\xcd\xaf\xed\xde\xb7\x7b\xdf\xee\x77\xbb\xd3\xed\x4e\xf7\xe9\xf4\xf5\x4e\x5c\x77\xa6\x3b\xdd\xee\x74\xbb\xd3\xed\x4e\xb7\x3b\xdd\xee\x6e\xbb\xbb\x0d\x63\x37\x8c\xdd\x30\x76\xc3\xd8\x0d\x57\x37\x5c\xdd\xb7\x37\xe8\xce\x84\xa8\x1b\xa2\x6e\x88\xba\x21\xea\xee\xa7\xd1\x25\x00\x50\x74\x43\xd1\xe3\xf9\x1c\x28\x7a\xa0\xe8\x81\xa2\x07\x8a\x9e\xaf\x37\xf7\xb6\xf2\x90\xf3\x40\xce\xd3\x01\x53\x4f\xf2\x74\x39\x43\x3b\x0f\x60\xe6\x81\x99\xa7\x67\xba\x75\x6d\x58\xd7\x86\x75\x6d\x58\xd7\x86\x75\xad\x36\xbe\x5b\xb1\xd2\x56\x82\xb4\x95\x2c\x6d\x25\x4b\x5b\xc9\x52\xb5\x43\x1b\xda\xa9\x5d\xda\xad\x3d\xda\xd4\x5e\xad\xbe\x70\x29\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x14\xae\x36\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x14\x70\x29\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x14\x70\x29\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x14\x70\x29\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x14\x70\x29\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x64\xe3\xab\x60\x6a\x23\xf2\xdc\x88\x3c\xab\xd5\x17\x2e\x05\x5c\x0a\xb8\x14\x70\x29\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x14\x70\x29\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x14\x70\xa9\x77\x31\xc7\x3a\x7b\xac\xb3\xc7\x3a\x7b\xa2\x43\xf3\xfe\x6b\x9d\x3d\xe6\xef\xb1\xce\x1e\xeb\xec\xb1\xc2\x1e\x73\xf9\xcc\x0e\xe8\x3b\xdf\x5c\x3e\x56\xd5\x63\x25\x3d\x56\xd2\x63\x5e\x1f\x2b\xe9\x31\xbb\x8f\x79\x7d\xda\xa1\x65\x0d\x3d\xd6\xd0\xc3\x92\x3f\x90\xf0\x40\xc2\x03\xf7\xce\xee\xff\xfa\x4e\x58\x77\xcc\xfd\x03\xeb\x8e\xb9\x7f\xcc\xfd\x63\xa6\x1f\xb3\xfb\x40\xb0\x93\xfd\xb9\x6f\x30\xbb\x4f\xdf\xfb\x6d\xf7\x98\x73\xcc\xee\x73\xfb\x9c\xae\xf8\x77\xa6\xd9\x7d\xcc\xee\x63\x76\x1f\x88\x77\xd8\x4b\xc7\x4c\x3f\xe6\x78\x9a\xd7\x69\x46\xe7\xd7\xe1\x12\xce\x33\xf3\x3a\xa1\x62\x7e\x7d\x26\xd7\x9a\xd9\x9d\x66\x77\x8e\x0e\xac\xe8\xcb\x2e\x4a\xb3\x3b\xbd\x9d\xf4\x5e\xd2\x7b\x49\x6f\x24\xbd\x91\xf4\x46\x12\xae\xa6\x77\x91\xde\x45\xc2\xd5\xf4\x46\xd2\x1b\x49\xd6\x4e\xce\x76\xf8\xf9\x4e\xef\x25\xbd\x97\xf4\x5e\xd2\x7b\xc9\x0e\xf4\x78\x3b\xe9\xed\xa4\xb7\x93\xb0\x37\xbd\x9d\xf4\x5e\xb2\xc7\xbc\x75\x2d\xac\x6b\x61\x5d\x0b\xeb\x5a\x58\xd7\x82\xbd\x1d\x70\x29\xe0\x52\xc0\xa5\x80\x4b\x01\x97\x02\x2e\x05\x5c\x0a\xb8\x14\x70\x29\xe0\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\xd3\x3b\xea\x5d\xf0\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\x4d\xb8\x34\xe1\xd2\x84\x4b\x13\x2e\xf5\x8e\x26\x59\x35\xc9\xaa\x49\xb3\x3b\x77\x7f\x6e\x24\xb3\x67\xd2\xec\x4e\x2b\x7b\x5a\xcd\xf3\xf4\x7f\x8d\x43\x73\x3c\xad\xe6\x69\xa6\x27\x8b\x25\xcd\xf7\xcc\x76\x57\xeb\x65\xd6\xa7\x95\x3d\xcd\xfd\xb4\xb2\xa7\x95\x3d\x6f\xb3\x31\x39\xbf\xdd\xe1\x10\x20\x21\x40\x42\x80\x84\x00\x09\x01\x12\x02\x24\x04\x48\x08\x90\x10\x20\xad\xf5\xd9\x38\x60\xad\xbf\xd6\xfa\x0b\x13\xae\xb5\xfe\x42\x86\x0b\x19\x2e\x64\xb8\x90\xe1\x42\x86\x0b\x19\x2e\x64\xb8\x90\xe1\x42\x86\x0b\x19\x2e\x64\xb8\x90\xe1\x5a\xfd\x2f\x7c\xb8\x56\xff\xdb\x21\x5d\x58\x71\x21\xf9\x85\x18\x17\x62\x5c\x48\x7e\xe1\xc6\x85\x1b\x17\x6e\x5c\x48\x7e\x9b\xe3\x04\x9e\x5f\x18\x72\xe1\xc6\x85\x1b\x17\x0e\x74\xd8\xe1\xc2\x81\x0b\xa5\x2f\x34\xb8\xd0\xe0\xc2\xea\x0b\x13\x2e\xab\xf5\x7a\xbf\xd7\xfb\xbd\xde\xef\xf5\x4e\x2f\xdc\xbe\xde\xec\x85\xd8\xf7\xf4\x7f\x7d\xb3\xf7\x7b\xcf\xfb\x3b\xb3\xde\xc2\x99\x75\xce\x99\xf7\xcd\xbf\x33\x5f\xd6\x31\x77\xe3\x9d\xd6\xb5\x69\x5d\x9b\xd6\xb5\x69\x5d\x9b\xd6\xb5\xc9\xde\x9e\x70\x69\xf6\xf9\x70\x69\xc2\xa5\x09\x97\x26\x5c\x9a\x70\x69\xc2\xa5\x09\x97\x26\x5c\x9a\x70\x69\xc2\xa5\x09\x97\x26\x5c\x9a\x70\x69\xc2\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\xea\x1d\xf1\x82\x4b\x0b\x2e\x2d\xb8\xb4\xe0\xd2\x82\x4b\x0b\x2e\x2d\xb8\xb4\xe0\xd2\x82\x4b\x0b\x2e\x2d\xb8\xb4\xe0\xd2\x82\x4b\x0b\x2e\x2d\xb8\xb4\xe0\xd2\x82\x4b\x0b\x2e\x2d\xb8\xb4\xe0\x52\xed\x6e\xce\xfa\x46\x68\xa7\x76\x69\xb7\x36\xb5\xaf\xda\xf8\xb4\xfe\x3b\xf5\x9a\x7a\x4d\xbd\xa6\xf3\xe7\xd1\x3a\x7f\x39\x7f\x8d\xbf\x31\x5e\xbd\x71\xe5\x81\x5b\x79\xe0\x56\x1e\x58\x9f\xdf\xbf\x31\xeb\x5d\x8c\x59\x23\x73\x8c\x37\x42\xeb\x9c\x88\xbf\x31\x6b\x1d\x1f\xb3\x66\xd3\x20\x51\x5f\xff\xd5\xb7\x7a\xad\xfc\xe2\x6f\xac\xb2\xf6\xb7\x52\xaf\xb1\x0a\x61\xc6\x2a\x1c\x18\xeb\x9d\x59\xc7\x35\x1a\x95\x7a\x6d\xa5\x5e\x63\xd7\xde\x73\xec\x7a\x02\x63\xef\xbb\xea\xdb\xea\x7d\x29\xf5\xda\x4a\xbd\xea\x93\xf3\x37\x24\x4d\x8d\x53\x16\xc2\x18\xaf\xae\x21\xcb\xc2\xaf\xe3\xfe\xc4\xf5\xd4\xbb\x50\xea\x35\xb2\xd6\xb8\x6a\x7d\x67\xfd\x3a\xd9\xf5\x41\x56\x73\xf0\x88\x8e\x76\xea\x2b\xf5\x1a\xf6\x05\x83\xe5\x3f\xac\xe6\xc3\x6a\x3b\xc6\xcb\xfb\x37\x90\x0f\x0e\xc4\x7c\x03\x19\xdf\xc0\xa3\x36\x84\x85\x07\x1e\xb5\x81\x47\x6d\x60\x35\x1b\x38\xcf\x06\x46\xb1\x81\x5d\x6c\x2b\xf5\xda\x4a\xbd\x86\xe2\x8e\xa1\xd0\x63\x08\x0b\x0f\x21\xe2\xf1\x76\xf6\x27\xf7\x6f\x48\xd8\x1e\x12\xb6\x87\x84\xed\x21\x61\x7b\x48\xd8\x1e\x12\xb6\x87\x84\xed\x21\xb1\x70\x2b\xf5\xaa\x51\xd4\xad\xb1\x67\x5d\x5b\xd6\x35\xbf\x7e\x17\x7b\x7b\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x7e\xbf\x0e\x97\x16\x5c\x5a\x70\x69\xc1\xa5\x05\x97\x16\x5c\x5a\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x0d\x97\x36\x5c\xda\x70\x69\xc3\xa5\x7d\xf6\xbf\xff\xfd\x4f\xff\xcb\xff\x6d\xdc\x6f\x7e\xff\x97\xff\xe7\xff\xf5\x7f\xfb\x5f\xfe\xf1\xbf\xff\x4f\xff\xf3\xbf\xfd\xdb\xf7\x37\xe2\xfe\xfb\xdf\xbf\xd5\x20\xab\x53\xfe\xad\x66\xfb\x79\xff\xfe\xf7\x6f\x6b\xff\x8d\xac\x7f\xd5\x0c\xbc\xeb\xdf\xff\xfe\xed\x52\x01\xac\x83\xf7\x17\x51\x07\x44\xc9\xaa\xd7\x3b\x7f\x31\xeb\xe4\xd1\x12\x82\x8e\x08\x4b\x3b\xc2\xb2\xed\x68\xff\xc5\x9e\x8e\xde\x5f\x6c\xff\x6d\x2e\xdd\x3a\x9a\x54\x4b\xeb\x48\x79\xfe\x57\x47\x49\xff\xc7\x11\x9a\x59\x47\xef\x6f\xce\x3a\x4f\x69\xfd\xa9\x23\x71\xa7\x33\x1d\xe5\xdf\xea\x5b\x29\x0b\xe6\xa4\xa3\xf7\xb7\xdc\x95\x38\x54\x0e\x47\xe3\x6f\xa5\x1e\x65\xd1\xa4\x1e\x65\xd5\xa4\x1e\xf5\xfe\xbe\xba\x2a\xeb\xd5\xab\xdf\xa8\xf5\xe5\x8c\xba\xaa\x7a\x97\x39\xc2\xd1\xfe\x4b\x0f\xa5\xde\x45\xce\xfa\x6f\xed\x61\xde\xef\x28\xfe\x9e\xe7\x52\xbb\x95\x77\xaa\x47\xed\x58\x5e\xd6\x7f\xcb\xe6\x1a\x9f\x07\x09\x5c\xc6\xe7\x29\xc7\x57\x87\xf5\xa9\x30\xf2\x8d\xef\xf5\xf1\xfa\xbb\x31\x76\x1f\xef\x3a\xbe\x7d\x9c\x7f\x37\xc2\x57\xbf\x59\xe7\xcc\xe1\x78\xcd\xbf\x1b\xeb\x77\x5c\x9f\x7b\x2d\x02\xc2\x37\x56\x7f\xff\xfe\xfe\x6e\xec\x70\x31\x27\xfe\xca\xac\x76\x35\xeb\xfe\xd5\xc2\xd8\xc7\xaf\x8e\x7b\x00\xec\xa8\xe3\xeb\xf8\xac\xbf\xdb\x8f\x92\x1f\xb2\x40\xc5\xe5\xcf\xf3\x57\x83\xd4\xf1\xfa\xfe\xee\xee\x9b\x8d\xfa\xfe\xfd\xfa\xf3\xea\x7b\x3e\xe7\x97\x4d\x7e\x73\x4c\xc7\xf7\xfb\xbb\x19\x5f\x1f\x8f\x3a\xee\x73\x6e\x9d\xd3\x4f\xaa\xec\xa5\x9b\xee\x91\xbd\x74\x73\x66\x1f\xc7\xdf\xcd\xd5\x7d\xdf\xac\xe3\xee\xfb\xaa\xaf\x81\xc8\x76\xba\x69\x28\xb2\x94\x6e\x9e\xaf\x8f\xeb\xf3\xe3\xfb\x6b\x95\xbc\x69\x10\xb0\x70\x6e\xde\x3e\xbf\x9e\x7f\xde\xfe\x7c\xe6\xdf\xbd\x7d\xfd\x65\x8d\xdc\xfb\xf9\xfe\xb2\x3a\xee\xed\x39\x52\x18\x7b\x6f\x3f\xb7\x42\xd7\x7b\xfb\xb9\x15\x4e\xd6\x42\x51\xc7\x85\x4e\xf7\xf6\x33\x39\xdf\xfc\xbb\x2f\x9f\xf9\x35\xcf\xdf\x9b\x7d\xef\xb5\x26\xbe\x99\x75\xfc\xbe\x3a\xde\xee\x05\xd7\xe9\xdb\xb7\x8f\xcf\xfc\xab\xe5\xa5\x8f\x4f\x8d\xb4\x3e\x3f\xeb\xd8\x54\x41\x54\xf5\x8e\x77\x8a\x84\xea\x9d\xf3\x3b\xbe\x7f\xef\xf4\xf7\x8f\x31\xea\xf8\xf4\x71\x7d\xe7\xfd\x1c\xcf\x51\x63\xb6\xcf\x39\xf1\x57\x4b\x53\x1f\xaf\x3a\x76\x0d\x31\xee\xdf\xcb\x37\xfb\xf8\xd5\xb1\x69\x3b\x2c\xcf\xe3\x19\xd1\x63\xd4\x26\xb4\xfe\x7a\xbf\xbf\x2c\xda\xde\x7e\xfd\xc5\xc8\x18\xd9\x7f\xad\x36\x39\x6e\xff\x75\xf4\x6b\x68\x19\xb5\x15\xac\xbf\x7e\x67\x1e\x67\x36\xc4\x8c\xda\xfc\xd5\x5f\xbf\xdf\x4b\x86\x85\xf7\x5c\x7f\x31\x21\xce\xef\x5b\xae\x2b\xcb\xbe\x96\x53\x06\x4a\xfc\x00\x68\x9c\x7b\xea\xaf\x17\xbf\xbf\xf2\x6f\xc4\x1c\xbf\xbf\x5e\xf8\xeb\xd7\xef\xad\xfa\x6b\xf6\x2f\xe4\xf0\xd7\xef\x5a\xb2\x96\xfc\x58\xb3\xaf\x25\x63\xd6\x5f\xbf\xab\xce\xd8\x7f\x23\xf6\xec\xa7\x94\x65\x48\xc5\x5e\xf3\xf7\x57\xf5\xdb\xb7\xfb\x3d\x57\x76\x57\xfc\xfe\x7a\xf5\xd7\xf6\x7b\x31\xca\x18\x8b\xdf\x1d\x85\x27\x38\xa3\xa1\x33\x6a\x2b\x3e\x66\x63\x46\x5d\xd3\xe7\xaf\x06\xdd\x9a\x52\x63\xfe\xc0\x38\x6a\xc2\x8c\x19\xe7\x9f\x7f\x6d\x7f\xe5\xef\xaf\x32\x15\x23\xfb\x3b\x6b\x49\x2e\xc3\xb1\x7f\xaf\x96\xa7\x32\x26\xfb\x3b\x6b\xe3\x55\x0f\xbc\xfb\xbd\x13\xcc\xc7\xd7\x7f\x95\x49\x36\x6f\x3f\x97\x99\xb5\xcc\xac\xd3\x6f\x7a\xd6\x86\xb0\xcc\x4a\xbf\x3e\xdf\x60\x4c\x7e\x7d\xe6\x9b\xcc\x49\x63\x7b\xd4\x7e\x94\x89\xd9\x8b\x44\xbc\xcb\xb0\xd4\x6f\xed\xbb\x19\x98\xfa\xad\xe3\x7f\xfb\xba\xf7\xbd\xcb\xd0\x3d\xbf\xff\x6d\x86\xdb\xc9\x7e\x2b\xea\x0d\xca\xc4\x74\x0f\x72\xf8\xcb\x98\xdc\xbf\xbf\xea\x7f\xbf\x77\x7b\xca\x78\x2a\xe3\xd2\xaf\x13\x40\x29\x23\xd3\xaf\xa7\xf7\x90\xef\x65\xff\xf5\x33\x3d\x7d\x67\xce\x32\xff\x6e\xf4\xe8\xc9\x59\x00\xff\x43\xef\x91\xb5\x55\x2b\x33\x74\xf4\x5f\x4c\xcd\xf9\xfb\xdf\x65\x8a\x36\x46\x0d\x19\x4a\x65\x86\xf6\x99\x8f\x11\x7b\xc7\xfa\xfd\xb5\x99\xa5\xbf\x33\x6b\xd4\xdd\xfb\xbb\xb2\x02\x93\x32\x53\x7f\x67\x4e\xdf\xd2\x0b\xb3\xec\x9d\x32\x5b\x5d\x99\x6c\xed\x32\x4d\x3d\x17\xdc\xe3\xe3\x9d\xfe\x4e\xf4\xc2\xe3\x37\xd7\x07\x9a\xcc\x32\x47\xdd\xed\xeb\xdc\xd6\xc6\xb4\x39\x6d\x75\x5e\xaf\x36\x73\xda\xf2\xbc\xe9\x59\xd7\x5f\x65\xec\xcf\x5e\x94\x27\xd3\xf3\x2d\xb3\xbf\xfe\xea\x4d\xca\xef\x7f\x8f\x29\x1d\xbf\xff\x95\x59\xf9\x16\xd4\x9f\x93\x31\xf9\xd6\xcc\xdf\x5f\xfa\xad\x3e\x93\x81\xf8\x7a\xed\x9a\x93\x11\xf8\xd6\xe9\x2b\x63\xb2\xbd\xc5\xaa\x99\x93\xb1\xf5\x16\xc4\x6a\x21\xcf\xda\xe6\x33\x12\x64\x71\xd5\x76\xff\xf4\x5f\xcb\xe6\x9f\x11\xd0\xfc\x8d\xb5\xfd\x3f\xfd\xd7\xbc\xdc\x00\xbf\xbf\x4e\x6f\xe4\xfe\xf9\x57\x6f\xe8\xee\xef\x2f\x1b\xb5\x18\xbf\xbf\x7a\x83\xd7\x36\xd7\x97\xbd\x95\xfb\xfd\x42\xf6\x96\x2e\x7f\x7f\x5d\x9b\x3a\x77\x04\xae\xcf\xfe\x8c\xc1\xe6\x05\x3c\xfb\xeb\x7b\x00\xd9\x67\x8f\x2f\x7f\x7f\xad\xfa\x6b\xfc\xfa\xd5\xe6\x72\x8f\xf8\xe7\xff\x4e\xfd\x35\xfb\x7f\x51\xd7\xb9\x67\x9b\x40\x98\x6c\xce\xde\xa3\xdf\xfb\xfb\x47\x7d\xe7\x9e\xe7\xdf\xff\xfd\xef\xff\xf1\x7f\xff\xdf\xbf\xf8\xee\xff\xfc\x6f\x05\x93\x17\x58\x3e\x20\xf9\xfd\x1d\x25\x27\x47\x11\xca\xa0\x0a\x79\x76\xd9\x64\x47\xf9\xc0\x51\x3e\x70\x28\x7d\x14\x00\x36\x0c\xae\x9a\x22\xf5\xbf\x3a\x3a\xd7\x51\x7d\xc7\xee\x1e\xce\x2a\x3b\xba\xda\xd0\x63\x6b\x1b\x98\xc7\x5f\x48\xaf\xac\xe3\xa9\x5d\x5a\xa0\x5a\x76\x47\x8c\x32\x80\x3c\xae\xfa\xb4\xbe\xd1\xaf\xb1\x37\xd6\x70\x58\xe6\xd5\xac\x73\xe3\xfd\x89\x08\xd9\x16\x8a\x01\x09\x01\xd5\x25\xfb\x02\x3f\x54\x06\x65\xb5\x6e\xae\x6f\xf1\xf7\x3d\xdd\xf6\x65\xf4\xe5\xa5\xd6\x43\x7a\xdd\xf7\xd3\x0e\xad\xf5\xa3\xe6\x57\xcc\xcf\x7a\xf1\x6d\x97\xe9\x17\xeb\x76\x32\xff\x62\x20\x5b\xf6\x08\x99\x18\xae\xde\xfd\x94\x15\x8b\x4d\x1e\x99\x3c\x26\x7e\x04\xfa\xaa\x5a\x95\xb9\x8e\xac\x7b\x59\x75\x7f\x65\x07\xd6\x46\xb9\x1e\xec\x73\x2f\xde\xef\xd7\xad\xdf\xbd\xdd\x4e\xed\x71\x0d\x7e\x6c\x44\xe1\xe4\x9f\xfd\xa8\xad\xa9\x84\x62\xd5\xf9\x0a\xf5\xd5\xf2\x2b\xeb\x97\xd5\x8c\x8e\x00\x7f\x00\x2a\x01\x79\xc7\x48\x02\x84\xa6\xea\x2e\xcb\x34\x2c\x7b\x6c\x3f\xc6\xe0\xfc\x23\x5f\x52\xff\xc9\xbf\xff\xed\xff\xf5\xbf\xfe\xaf\xff\x15\xcd\xcd\x51\x86\xdf\x28\x0b\x6b\xde\x3f\xdc\xe4\xb2\xb7\xf1\x96\x53\x1d\xb8\xb9\xf6\xff\x89\xef\x5b\x8c\xc7\x7e\x3c\xe7\x8f\xe0\xc8\x75\x17\xf9\xd5\x73\xfe\x6f\xb9\xd4\xb2\x8d\xef\x79\x7f\x78\x80\x6f\x32\x3b\x47\xd9\x80\x8c\xd1\x5b\xff\xf5\x6a\xeb\xb3\xb2\x08\x88\x1d\xd0\x5b\xb8\xb9\xeb\x4d\x2f\xcd\xfd\x4f\xfd\x5a\xed\xd7\x99\xe0\x4a\x35\xd5\x6e\x2a\xe9\x14\xca\x14\xc9\x1c\x37\xfe\x8b\x5d\xe5\x84\xff\x57\xde\xe4\x7f\xa9\xa9\x01\xd5\xc3\x2a\xb5\x3d\x27\x1b\x23\x7a\x54\x9b\x40\x5f\x68\xa7\x76\x69\xff\x53\xef\xad\x46\xaa\x4e\x10\x6f\x42\xba\x09\xe1\xe6\x68\xf0\xe9\x49\xe3\x07\xc3\x0f\x9a\xdb\x33\xfc\x60\xe8\x1b\xfa\x86\xbe\xa1\x6f\xe8\x1b\xfa\x46\xcf\x79\x7d\xa7\xbe\x53\xdf\xa9\xef\xd4\x77\xea\x3b\xf5\x9d\xfa\xce\xff\xa3\x17\x55\x08\xd2\xd0\xa4\x57\xcf\xf6\xd5\x50\xe8\x17\xb7\x5f\x34\x7b\xe7\xf6\x8b\xdb\x2f\x6e\xbf\xb8\xf5\xdd\xfa\x6e\x7d\xb7\xbe\x5b\xdf\xa3\xef\xd1\xf7\xe8\x7b\xf4\x3d\xfa\x36\xe6\x1f\x7d\x8f\xbe\x0d\xc1\x47\xdf\xfc\xfe\x8b\xd7\x5b\x56\x24\xd4\xda\x6d\xe5\x9a\xbb\xfb\x68\x59\xc8\x1b\x42\x6e\x88\x77\x20\xde\x31\xf3\x0f\xc4\x3b\xfa\x1e\x7d\x8f\xbe\x47\xdf\xa3\xef\xd1\xf7\xe8\x9b\xfa\xa6\xbe\xa9\x2f\x74\x2d\xf0\xae\x56\xdf\xd4\x37\xf5\x4d\x7d\x53\xdf\xab\xaf\xa5\x66\xb2\x9c\xb9\x39\xdb\xe2\x8d\x79\xf5\x65\xdd\xcf\xb6\xea\x2d\x65\xb3\x11\xfe\xe9\xfb\xf4\x6d\x2b\xdf\xe2\x32\xdb\xc6\x6f\xac\x82\xf0\xac\xe2\x98\x10\x7e\x42\xf8\x05\xe1\x17\x84\x67\xd5\xc5\x82\xf0\x0b\xc2\xaf\xcf\xe2\xf5\xd9\x0f\x7c\xa9\xbd\x5a\x7d\x87\xbe\x43\xdf\xa1\xef\xd0\xd7\x6e\x62\x0d\x7d\x7b\x2f\x31\xf4\x1d\xfa\x0e\x7d\x43\xdf\xd0\x37\xf4\xed\x7d\x46\xe8\x6b\x97\xb1\x42\xdf\xd0\x37\xf4\x0d\x7d\xed\x3a\xd6\xd4\x77\xea\x3b\xf5\x9d\xfa\xce\xff\x3c\x6c\xfe\xff\x0c\x94\xb5\xfc\xc0\xf6\x03\xe0\x7f\x6d\x3f\x60\x00\x2d\x03\x68\x19\x40\xcb\x00\x5a\x06\xd0\x32\x80\xf8\x69\xa9\x62\x57\xab\xaf\x01\xb4\x0c\xa0\x65\x00\x2d\x03\x68\x19\x40\xcb\x00\x5a\x06\xd0\x32\x80\xf8\x90\xa9\x68\x57\xab\xaf\x01\xb4\x0c\xa0\x65\x00\x2d\x03\x88\x9f\x36\x96\x01\xb4\x0c\xa0\x65\x00\xad\xb6\x55\x0c\xa0\x65\x00\x2d\x03\x68\x19\x40\xcb\x00\x5a\x06\xd0\x32\x80\x96\x01\xb4\x0c\xa0\x65\x00\x2d\x03\x68\x19\x40\xcb\x00\x5a\x06\xd0\x32\x80\x96\x01\xb4\x0c\xa0\x65\x00\x6d\x03\x68\x1b\x40\xdb\x00\xda\x06\xd0\x36\x80\xb6\x01\xb4\x0d\xa0\x6d\x00\x6d\x03\x68\x1b\x40\xb6\x65\xb1\x0d\xa0\x6d\x00\x6d\x03\x68\x1b\x40\xdb\x00\xda\x06\xd0\x36\x80\xb6\x01\xb4\x0d\xa0\x6d\x00\x6d\x03\x68\x1b\x40\xdb\x00\xda\x06\xd0\xee\x6d\xaa\x01\xb4\x0d\xa0\x6d\x00\x6d\x03\x68\xf7\xb6\xd5\x00\xda\x06\xd0\x36\x80\xf6\x5c\xff\xe9\xb1\xf2\xc6\xfc\x7b\x63\xfd\xd5\x26\xa6\xb6\x2e\x6f\xe4\xdf\x1b\xf7\xaf\x36\x82\x2f\xbe\xbf\x32\xc6\x5f\xc4\xdf\x8b\xf9\xf7\x62\xfd\xbd\xd8\x7f\x2f\xce\xdf\x8b\xfc\x7b\x71\xff\x5e\xbc\xbf\x37\xc7\xdf\x2b\xeb\xa3\xcc\x90\xb2\x56\xe6\xfe\x6b\x2f\xca\x7f\x7e\xb5\x7e\x6b\xff\xf1\xb6\xac\xfc\x2b\x93\xff\xad\xf7\xf7\x78\x59\xc6\xdf\xdb\xf1\xf7\xf6\xfc\x7b\x7b\xfd\xbd\xbd\xff\x5e\x59\x5b\x3b\xff\xde\xbe\x7f\x6f\x97\x39\x54\xf6\x4e\x99\x3b\x65\x06\xad\x32\x80\xca\xf4\x29\xe3\xe8\xef\x9d\xb2\x94\xde\x7f\xcf\x05\xf5\x7f\x40\x43\xd8\x66\x88\x2d\x7d\x65\x8e\xd7\xa6\x6f\x7c\x65\xba\x7f\x8b\x1f\xb3\x9a\xb2\xcd\xbf\xda\x5d\x7f\xeb\xfe\x91\xbf\x19\x5f\x21\xc0\x57\x00\xf0\xd5\xfc\xff\x6a\xfa\x7f\x35\xfb\xbf\x9a\xfc\x5f\xcd\xfd\xaf\xa6\xfe\x57\x33\xff\xab\x89\xff\xd5\xbc\xff\x6a\xda\x7f\x35\xeb\xbf\x9a\xf4\xb5\xb1\x1a\xb5\x9f\xa2\x9d\x43\x52\x87\xa2\xce\xa8\x7d\xd4\xf8\x6a\xb6\x7f\xf9\xdf\xd5\x66\x21\xc9\x33\xbe\x42\x8d\xaf\x40\xa3\xb6\x68\xa3\x76\x66\xe3\x2b\xc4\x18\x9c\xb7\x85\x1a\x5f\x81\x06\xc7\xc4\x57\x90\xf1\x15\x62\x7c\x05\x18\x5f\xe1\xc5\x57\x70\xf1\x15\x5a\x7c\x05\x16\x5f\x61\xc5\x57\x50\xf1\x15\x52\x7c\x05\x14\x5f\xe1\xc4\x57\x30\xf1\x15\x4a\x7c\x05\x12\x5f\x61\xc4\x57\x10\xf1\x15\x42\x7c\x8f\x7f\x98\x67\x78\x54\x13\xd5\xcc\xff\xf6\xbb\xc4\x57\x88\xa8\x10\xe3\x20\x7a\x41\x9c\x81\xa2\x4c\x58\x02\xd1\xb2\xe1\xff\x43\xb8\xf6\x6a\x9a\x23\x38\xc4\x6c\x88\x96\x10\x07\x21\x62\x41\xac\x83\x28\x03\x71\xb4\x21\x76\xc3\xbe\xf6\x76\xcd\xaa\x82\x32\xa4\x6e\x78\x03\xd1\xb5\xbd\x3d\xf5\x30\xc7\xea\xd7\xbe\xfa\x6f\x4d\xeb\xfd\x7f\x68\x3e\xfd\xab\xf9\x57\xf3\xaf\xe6\x5f\xcd\xbf\x9a\x7f\x35\xff\x6a\xfe\xd5\xfc\xff\xbb\x79\xb3\xac\x96\x59\xfb\x95\x59\x1b\x96\x59\xd6\xcd\x2c\xf3\x68\xd6\x9e\x65\xd6\xa6\x65\x96\x75\x33\xcb\x92\x99\x61\x4f\x52\x3d\xca\x14\x9a\x65\x3c\xcd\xda\xbb\xcc\x10\xde\xad\x1e\x65\xe7\x4c\xfb\x97\x59\x3d\xe6\xf8\x93\x28\x22\x4f\x44\x9a\x88\x2c\x11\x49\x22\x72\x44\xa4\x88\xc8\x10\x91\x20\x22\x3f\xc4\xa5\x0d\xca\xb6\x63\xb2\x50\x27\xe3\x92\xb2\xed\x98\x4c\xd3\xc9\xaa\x9c\xec\xeb\x39\x46\xff\x37\xab\x5d\xce\x39\xfa\x96\xf9\x39\xd9\xa4\x93\xc5\x39\xc7\x74\xe6\x10\x0f\xac\x6d\xe5\x8c\x21\x52\x58\xdb\xca\x39\xca\x34\x9d\xc3\x99\xb1\xfb\xbf\xff\xf9\xed\xd6\x98\xa3\xfd\x35\xa3\x63\xab\xef\x4f\x7e\xdc\x98\x71\xc6\xdf\xed\xed\xf7\xb3\xd5\x7f\xb6\xfa\xcf\x56\xff\xd9\xea\x3f\x5b\xfd\xbb\x7e\x91\x50\xad\xbb\x29\xe3\x7b\x8e\xea\x3b\x87\x64\x02\x3e\x55\xde\x55\xae\xd3\x2d\xc1\xe0\x9f\xde\x55\xae\x58\x4e\xd9\x9c\xfb\x8f\x60\xe3\x3f\xfd\xac\x3f\xd7\xf1\xff\xf8\x31\xf7\xaf\xe6\x5f\xcd\xbf\x9a\xff\x73\x4d\xa0\xad\x0a\xe4\xac\x31\x5b\x46\x6f\x9d\xf9\x17\xe3\xbc\xf3\x17\x8b\x32\xf1\x26\x85\x3c\x49\x05\x1e\x54\x8b\x13\xf5\xdd\x6c\xc2\xe3\x82\xfa\x58\x85\x01\xb1\x37\xf9\xef\xf1\xe8\x8f\xbe\xf9\x37\x27\xca\xc6\xd9\x42\x04\xd4\x4f\x4f\xe6\xf8\x8b\x98\x83\x52\xf2\xc8\xbf\xd8\xf1\x8d\xbf\x98\x6b\xd7\xe7\x28\xd6\x9a\xa8\xbe\xa5\xcf\x82\xf4\x44\xb4\x24\x14\xd5\xe4\x4d\xde\x6d\xa0\xe8\x23\x64\x11\x73\xcd\xf9\x17\x2b\x96\xac\xb9\x3d\xff\xe2\x44\xdd\xc5\x69\xd1\xf0\xd9\xe2\xda\xae\x8a\x3c\x34\xfa\x98\x40\xb3\x12\x78\x1a\x42\x65\x76\x10\xd5\x89\x88\x7d\xff\x22\xee\x7c\xae\xe7\x78\x32\x75\x85\xfb\x8c\xba\xd3\xfa\xc5\x75\x69\xbb\xd2\x63\x3e\x63\xd6\xbd\xdc\x4b\xb9\x99\x1e\x2a\xd1\x42\xc4\x52\x73\x10\x7d\x0a\x32\x65\x11\xad\x21\x7f\x3c\x19\xf4\xf3\x08\x02\x37\x72\xe8\x83\x60\xef\xbc\x7b\xfe\xa2\xd6\xa7\xba\xce\xa1\xad\xbb\xe3\x13\x9d\x81\x96\x2f\x89\x72\x7c\xaf\x16\x29\x24\x79\x11\xd9\xc2\xeb\x11\xf5\x0d\x48\xac\x9b\x4c\x17\x61\xdb\x6c\xa9\x0a\xa2\xf3\x2a\x1b\x82\xd8\x48\xbd\xe5\x7a\xd7\x19\x75\xa7\xb1\x3e\x6f\x79\xff\xc5\x6a\x89\x9b\xb1\xe9\xce\xf6\x35\x23\x0e\x6f\x31\x43\xd4\xda\xf2\x4c\xa7\x6c\xca\xd6\xe2\x8d\xb1\xc7\xfe\x0b\x54\xdc\xf5\x46\x06\xd5\x6a\x82\x27\xc8\x20\x9b\x46\xea\xcc\xa8\x5f\x6f\x5e\x10\x24\xd9\x5c\xf4\x4d\xc2\xd7\x4a\xb1\x33\xf2\x18\x45\x75\x5f\x5f\x5d\xd5\xc8\xb3\x08\x7c\x8f\xba\x86\xfc\x27\xf1\x5e\xcc\x6f\xd4\xf5\xaf\x7a\x4a\x38\x21\xa2\xa9\x16\x55\x32\x45\x7c\x35\xaa\xd1\xb9\xcd\xd3\xca\xa9\xc8\xdd\x67\xd3\xc9\xd7\xb2\x17\x63\x65\x7d\xc3\x5b\x35\xfe\x67\xbd\xcd\x65\x2c\x9d\xe1\xcd\xce\x5d\x23\xf6\x10\x16\xcf\x6f\xd1\xe2\x1d\x7f\x21\x37\x30\x9a\x44\x59\xc5\x7c\xcd\x82\xef\x9f\x4a\xa8\x73\xb7\x0c\x4b\x8b\x64\xa2\xd0\x3b\x75\x9d\xd8\x0e\x26\xba\xb8\xf9\xb5\x4c\xcd\x3c\xad\x13\x1c\xc6\x00\xf2\x4e\x74\x5a\xf5\x1e\x23\xbf\x6a\x47\xdd\x75\x7c\x37\xbf\x7a\x47\xaf\xda\x7a\xa7\x11\x77\xd7\x35\xaf\x3a\x5e\xf5\xeb\x21\xd3\x3c\xf6\xa6\xc0\xbd\x6f\x5d\xb3\x31\xac\x32\x20\x24\xa6\x04\x2d\xd8\x20\x3a\x1a\x84\x0a\xa3\xe5\x2c\x82\xe4\xd7\x44\xf3\x39\x89\x66\xac\xa6\xef\x45\xd9\x98\x5d\x7f\x1c\x43\x3e\xeb\xfc\x0f\xed\x73\x14\x80\x81\x28\xb1\xa6\xe9\x36\x6b\xea\x0a\xcd\x85\xb5\xea\xb7\xd6\xae\x37\xb8\xbd\xd3\x33\xea\x1d\xe5\x48\x42\xed\x35\x42\x72\x93\xed\xda\xbf\x71\x42\x22\x66\xdf\xff\x0f\xed\x51\x57\xd6\xd6\x6f\xcd\xac\xfb\x4a\xb4\xd3\xf3\x14\x2e\xa9\x84\x8b\x79\xa2\x30\x84\xac\xcd\x8c\x7a\x62\x27\xe9\x9d\x87\x19\x5d\x33\x25\x54\x45\x07\x51\x9d\x58\xa7\x3e\x57\x2f\x5b\x6f\x0d\x9d\xd9\x33\x8f\xf2\xfd\xc5\x88\x7a\xce\x7e\x37\x30\xb2\x04\x9e\x98\xc0\xd0\x10\xf8\x4e\x62\x50\x46\x1f\xab\xc7\x58\x61\x5a\xc0\x84\x19\xf5\x64\xe6\xaa\xbb\xeb\x31\x30\x06\xb5\xf8\x28\xac\x38\xbb\x90\xf6\x94\x59\x1a\xb9\x8e\xb7\x53\x57\x4e\x64\x3f\x5a\x9a\x60\x90\xa3\x1c\xa8\x97\x07\x6a\xd2\x41\xe2\x60\x22\x88\x9d\x04\x49\x66\x3d\xcf\x7a\x02\xfb\x6f\x4e\xb4\x8b\x13\x39\xda\x42\x27\x29\x12\x1f\x01\x1f\x0e\x41\xda\x83\x84\xf8\xb4\x4e\x70\x4b\x01\xac\x7a\x3e\x18\x1a\x62\xe6\x95\x73\xfc\xd5\x78\x8e\x96\x7b\x1d\xa8\xb8\x91\x64\xaf\x16\xd0\x28\x4c\x3b\x2d\xc1\xda\x62\x0e\xe3\x27\xf7\x24\xb7\xa4\xf0\x1c\xa5\xd4\x14\xab\x8e\x20\x15\x18\xe7\x8b\x7a\x32\x35\x1e\x16\x01\xfd\xb5\x69\xb1\x9f\x51\x6f\x21\xeb\x69\xac\x53\xef\x65\x9b\xe3\xdb\xd8\x10\xff\x8e\x26\x8a\x7e\x65\x5c\xc6\x29\x13\x3a\x4e\x6b\xe7\x7f\x31\xa9\xce\x13\xaa\x25\x47\x86\xd8\x3b\x3c\xb7\xd9\x92\x26\x28\xa2\xd5\xc8\x4e\x79\xe5\x73\x53\xc1\xff\x68\xe4\x8f\x32\x7c\x83\x4c\x50\x8c\x73\xfb\x7d\x15\x92\x18\xb7\xeb\xd5\x4c\xc9\x6f\xf8\x2d\x82\x66\x88\x93\x27\x9a\xcf\x65\xc5\xd9\xc4\x76\x32\x7f\x42\x16\xb7\xce\x1c\x2d\x1d\x46\x4e\xa4\x66\xab\x80\x60\xe1\xc6\xfc\xa7\x40\x4a\x22\xe7\x1e\x35\xf7\xa3\x80\xb2\xd0\xb2\xfa\xae\x48\x6b\x96\x39\x9b\x46\xcb\xa9\x37\x72\x4e\xa1\x53\x6e\x63\xa3\x95\xa4\x9b\x26\x1c\xb5\xf9\x26\x27\xb8\x7f\xf4\xc0\xa8\x7f\x89\x0c\x64\xcb\xc9\x22\x22\xb5\x15\x9a\x37\x6b\xcd\x32\xaf\x63\xa6\x19\xf7\xb5\x86\xfa\x7f\xa8\x23\xc7\x36\xae\x48\x1f\xd4\xdc\x7c\x7f\x91\xbd\x7a\x36\xfd\x76\xad\x4a\xa1\xb6\x20\x86\x77\x34\x5e\xa1\xc7\x3a\x85\x30\xd2\x01\x02\xa1\x55\xe0\x63\x08\x95\x85\x73\x22\x7b\xde\xc4\x60\xcf\xa9\xad\xd6\x3f\x49\x55\xad\x38\xeb\xd5\x3d\x5a\x35\x9a\x0e\xfc\x26\x9a\x5e\x7a\xea\x2a\xdb\xe6\x60\x03\x4c\xb4\xaf\x49\x78\x2d\xb3\xb0\x22\x9a\xb6\x33\x6a\x1d\x39\x24\x11\x26\x01\x99\x79\x9b\x10\xbd\xe6\xec\xf8\x87\xc1\x5b\x2f\x1c\x7f\x6e\x60\x0b\x0d\xd4\x30\xf1\x5d\x4b\xba\x89\x32\xbe\x1a\xa4\x23\xea\x55\x8c\xa8\x97\xb3\x6a\xe7\x57\xb7\xb8\x00\xad\x25\xb1\x8e\x27\x10\x9d\x20\x6d\x5a\xe8\x16\x18\x5b\xa6\x38\x85\x8c\x58\xb7\x1e\xc3\x7a\x93\x98\x3b\x53\x65\xd7\x27\xfb\x6d\x53\xbf\xae\xe7\x64\xdd\xf4\xb9\x69\x41\xdb\xda\x24\xf5\x5e\x43\x46\xc1\x55\xdc\xed\x41\xae\xfa\x66\xbc\xdb\xd1\xcc\xb6\xa8\x4f\x26\x72\x87\x09\x7e\xe6\xc0\x67\x38\x28\x01\x04\x3d\xbc\x9f\x72\x06\x76\xc4\x78\xcd\x92\xcf\x10\x38\xcd\x7a\xbc\x47\x81\x04\x6e\x68\x13\xfd\x58\xd8\xb3\x45\xba\xa9\x33\x2a\xfd\x9d\x4a\x73\xa7\x72\x94\x79\x9b\x19\x5c\x11\xc1\x9c\xb5\x0c\xe2\x05\x8d\x51\x5b\xee\x1a\x56\xb5\x04\xd5\x24\x88\x56\x70\xe9\x85\x9d\xde\x61\x4c\xaa\x0c\x01\xa2\x4e\xeb\x19\xef\x16\xe0\x6e\x19\x74\x2c\xa8\xff\x28\xbb\x24\x0a\x49\x51\xdc\x85\x24\xe6\x50\x4b\x15\xf5\x76\xea\x55\x84\x79\x5b\x2f\x70\xce\x42\xab\xb9\x5e\xad\x7f\x6d\xa7\x7e\x56\xc1\xb2\x11\x63\xf9\xd9\xbd\x6b\x9e\xa3\x98\x8e\xf3\x25\x5b\xd3\x27\xb3\x10\xea\x40\xde\x73\x8d\xf8\xa8\xd7\xb5\x46\x5d\x7e\xee\x5a\xc9\xf2\xd4\xf9\x99\x8d\x86\x04\x4f\x3f\xaf\x9d\x68\xdd\x40\x2a\x1e\x75\xc9\x8b\xd2\xc8\xa6\x0e\x2a\xeb\x64\x1e\xda\xdd\xc7\x27\x67\x97\xf9\x7a\xce\xff\x97\x4a\xf0\xfa\xe9\x48\x7c\x46\x64\x8d\xcb\x53\xb7\xf2\x79\x82\x61\xdc\x14\x82\x14\x18\xd6\x68\xd8\x61\x41\xbf\x40\xc9\xc8\x68\xa5\x41\x4c\xb7\x53\xfc\x70\x06\xc5\x8f\x85\x0b\x7f\xd3\x05\xda\x1e\x49\x1f\xcb\x1f\x9e\xf7\xd6\xf7\x50\x3b\x29\xd8\x29\x18\xf4\x5b\x27\x6b\xdc\x27\xf5\xc5\x4d\x4f\x0c\x77\x64\x60\xdd\x5e\xd4\xc2\xeb\x55\x18\xfd\x26\xda\x57\x20\xbf\x28\x24\x9c\x32\x48\x06\x46\xe4\xc0\xeb\x1a\x78\x24\x03\x23\x61\x0c\x57\x3b\xca\x38\x0c\x99\xad\xb1\x2c\x9d\x8b\x21\xb4\xdf\x64\x8a\x97\xd9\x99\x39\x18\x12\xa7\x1e\xff\xad\x99\x70\xf3\x19\x49\x40\x89\x6a\xe2\xa0\xf5\xd7\x4a\x2f\x41\xc5\x7a\xbc\xde\x14\xd4\xec\x3d\x5f\x2d\xc4\x0f\x90\x0e\xc0\x5b\x2f\xa0\x06\x45\x1b\x1e\x0f\x4c\xd5\xeb\x95\xb3\x13\x08\x36\xe6\xa2\x43\xb8\x69\x1e\x9e\x89\x2d\xfe\xd4\xc0\x51\xb8\x39\x47\xab\x37\x27\x63\x60\xd4\xf3\xc7\xda\x1b\x78\x57\x03\xa5\x53\xa0\x6e\x0a\x94\x03\xa1\x14\x78\x0e\x4b\xbf\x12\xdb\x32\x87\x18\xba\xcc\x5d\xa6\x88\x9c\xfa\x32\x1b\x18\x9c\xf5\x79\x30\x63\x0a\xd7\xea\xf9\x24\xc3\xfb\x59\x16\x21\xd1\xd9\x07\xcc\x5a\x20\x2c\x13\xcc\xce\x8c\x82\xe2\xbc\x8c\xb7\x59\xbf\xd8\xea\x73\x08\x0c\xe6\xa4\xeb\x3e\x69\xa7\x4f\xca\xab\x8b\xe6\x5e\x52\xc3\xce\xdb\xa2\xfe\xad\x70\xdb\xfa\x4e\xf5\xfc\xb1\x61\xc6\xf7\xca\x58\x9a\xdb\x46\xc9\x7b\x3c\x4c\xbb\xc9\xb0\x3c\x13\x8a\x59\x4c\xdf\x3f\xb1\xac\x8c\x96\x5b\x26\x34\x7e\xd2\xc2\xd0\x9a\xac\xb5\xe1\x8a\xf5\x95\x41\x92\xa7\x9e\xa1\x79\x51\x06\x7c\x1a\xc9\xb3\x8c\x67\x8a\x16\x94\x03\x07\x6d\xe7\x41\xd1\x2b\x68\xf6\x4e\x3a\x72\x93\x2e\x4d\x6b\x18\x6e\x2a\xd6\x9b\x46\xd3\xa1\xea\xa0\x9c\x31\xc6\x2e\x4c\xcc\xdd\xa8\x74\x6c\xe2\x6a\x5b\x37\xa0\xff\x98\x36\x05\x26\x7d\xab\x54\x7d\x34\x6a\xa6\x45\xf9\xb4\x0a\xd6\x3f\x95\x33\xef\x4f\xfd\x32\x14\x40\xd7\xe6\x97\xba\x5a\x8d\x9f\x81\x49\x7d\x78\x02\x88\x61\x6a\xfd\x48\xdb\x0a\x2c\xda\x65\xf8\xe1\x53\x8e\xa4\x2b\x92\xb3\x96\xf8\xc9\x54\x9e\xc6\xd5\x6e\x9d\xa2\x69\xfb\x40\x4d\xe5\x52\x77\x39\xd9\x2a\x8e\x35\x92\x5b\xf9\x4d\xc1\x5c\x3d\x55\x66\x80\x39\xce\x70\xed\x33\x13\x7a\xd0\x5e\x8e\x56\x37\x5a\x54\x88\xe5\xc4\xcd\xa0\x10\x75\xa8\x12\xe5\x57\xef\xae\x67\x50\x6b\x98\x48\x4a\x08\x34\x5d\x81\x6c\xa3\xd6\xbf\x1e\xbd\xf5\x6d\xb7\xde\x1a\x2f\x63\xd0\x9b\x0a\x79\x56\x11\xd7\x26\x45\xaf\x05\x9d\xe8\x47\xd5\x7e\xb4\x4d\xa6\x1a\x99\x5f\x6d\x2a\x37\x90\xde\xb5\x28\xc7\xae\xad\x50\x1c\x6b\xea\x39\x05\xcc\xb7\x15\x62\xa9\xcd\x0f\xca\x09\x83\x59\x15\x74\xf5\x83\x1e\x78\xd0\x46\x08\x4a\x5f\xf2\xce\x6b\xb3\x46\x6f\x0d\xd2\x32\xb1\x36\xc3\x60\x33\x65\xcf\x69\x63\xe6\x47\x46\xb8\x8d\x1c\xe8\xf4\x63\xdf\x0f\x46\x57\x72\x1a\xbc\x32\xb1\x6c\x4b\xcb\x6c\x9b\x5c\xc2\x65\x68\xd5\x13\x38\xb5\xf8\xe4\x62\xcc\x98\xf5\xca\x31\xe7\xa0\x18\x13\x34\xf0\x17\x45\x0b\xb9\x81\x71\x66\x2d\x38\xf8\x61\x03\x01\x52\xd0\xfe\x0d\xe4\x43\xa1\x68\x3e\x7a\xd1\x90\xb9\x10\x0a\x82\x23\x7a\x5b\x6a\xb4\xcc\xb0\xd9\x9c\x83\x01\x5c\x06\xe7\xae\x5f\x09\x59\x93\xb1\x0b\x6f\xcb\x40\xba\x4c\xb2\x7a\x23\x36\x23\x14\x62\xa3\x75\x0e\x6d\x7f\xe6\x87\x91\x39\xa8\xb5\x23\x7c\x9a\x81\xef\x7f\xd3\x66\xd9\xd6\xe3\x63\x5c\x9d\x7d\x38\x07\x6a\x96\x25\x56\x65\xe5\x9e\xb5\x06\xe7\x4f\x3d\xb2\x89\x97\x02\xe1\x41\x8c\x65\xa5\x30\x67\x57\x19\xfc\x65\xd5\x96\xb9\xeb\x18\x8d\x47\xbc\xde\xbe\xb1\x2d\x82\x62\xe1\xf4\x16\x64\x83\xce\x4d\x23\x4b\x41\x6d\x60\xf1\x0e\x7a\xcb\x35\x37\x99\xdf\xb5\xad\x8e\x38\xd6\xbe\x1a\x51\x73\xf6\x62\x5e\xf8\xb9\xa2\x1d\x11\x1c\x50\x36\xe3\xbb\xdd\x47\xbb\x46\x29\x82\x9f\x68\x5d\xd9\xf1\x53\x37\xb5\x3a\xb0\x2a\x7c\x5b\x6d\x8e\x8e\xd5\xaa\xb6\x00\xad\x29\xe1\xaa\x6c\x3c\xcb\x0a\xa1\xc1\xd8\x8c\xf8\x35\x4a\xb1\xbc\x07\xde\xf7\xc0\xb7\x1b\x63\x86\x55\xac\x73\xcc\x0f\x47\x90\xe7\xb0\x8e\xe2\xcd\xcb\x1d\xc4\xd4\x4f\xf3\x3a\xa0\x31\xbd\x23\xab\xc0\xdc\xde\xd4\xa6\x4b\xb6\xe1\x33\x5d\x91\xc0\x3c\xde\xea\x28\x81\x2d\x3e\x90\x62\x06\xd2\xbe\xa0\x35\x1d\x34\xa8\x03\xb1\x44\x60\xf1\xaf\x8d\x27\x23\xbc\x91\xb6\x9e\x40\xe3\xc6\x60\x41\x0e\x5b\x0f\x1a\x65\x31\x6e\xa1\xb4\x1c\xd4\x90\xa3\x18\xc1\x30\x9e\xb3\xde\xc5\x9c\xb7\x9d\x66\xf5\x9c\xad\xdd\xca\xe2\xcb\xf6\x65\xd7\xd6\xba\xb6\xc6\xab\xe3\x30\xeb\x6d\x60\x57\xbb\x47\xcc\xee\x65\x64\xee\x98\xdc\x83\xca\x56\x6d\x10\xf6\x2b\xcb\xf8\x78\x86\xc7\x56\xe2\x18\xb1\x07\x1a\x9f\xb3\xad\x1a\xec\xdd\xef\xda\xce\xd7\xdb\xc4\xba\x1b\x28\x3c\x03\x49\x55\x28\x34\x9f\x18\xf0\x27\x32\xd1\xf9\xdb\x14\x50\x59\x19\x74\x21\xc2\x46\xa6\x0c\x0e\x4e\xc2\xc5\xc9\x46\xdd\xe8\x72\x26\xd0\x65\xb2\x76\x04\x45\x8b\x39\xd8\xaf\xa3\x47\x69\xb4\x23\x88\x2a\x1d\x7b\xc0\x96\x73\xdb\x46\x1d\xbf\x7b\xbe\xfa\x3c\xcd\x9d\xa4\xbe\x9e\x1c\x23\xa8\x47\xca\x5a\xb8\xac\x64\x23\x3c\x7b\x55\x6d\x7d\xe9\x56\x11\xfc\x27\xc3\x72\xc8\x71\x8a\x31\x4e\x6f\x7c\xbc\xa9\x61\x6b\x5c\x68\x2c\x1b\x3a\x6e\x9d\x3f\xb7\x91\x7c\x9a\x88\xc8\xda\x81\x4a\x24\x64\x85\x05\xc5\xb9\x9a\x2f\x34\xd2\x5f\x5f\xd5\xfb\x0f\xda\x5a\xef\x45\xf6\x51\x20\x93\x98\x93\xdd\x42\x3d\x23\xe8\x61\x46\xeb\xf2\xbd\xcd\xbe\xa2\xa8\x7c\xf2\xb1\x2d\x1f\x1c\xa8\x77\x87\xfb\x3b\x22\xea\xad\xc9\x28\x0e\x2a\x52\x21\xc2\x55\xd6\x08\xa4\x62\x3d\xc2\xd5\x33\x86\x8d\xdb\xe5\x02\xad\x55\x00\xed\xdf\xc4\x30\x3e\x0b\x10\x7f\xca\x54\x65\xf7\x9a\x5f\xe6\x9a\x31\x33\x56\xcd\x74\x8a\x73\xa1\x9a\xad\xc6\xe1\x85\x00\x35\x66\x6a\x15\x88\xf4\x9d\xad\xf5\x84\x48\x69\x6e\x0e\xb7\xa4\x27\x46\x8f\xab\xc6\x79\x40\x0c\xcf\xb3\x66\x28\xa2\xa9\x40\x43\x15\xdf\x35\xf6\xac\xa1\xa3\xd6\xd0\xa8\x65\xa9\x66\x44\xb2\xb7\xeb\x1e\x57\x3d\xb1\xd8\x75\xcd\xa1\xd6\xa3\xee\xa8\x46\x29\x6b\x19\xc5\x60\x70\x20\xd7\x1e\x1a\x0e\x53\x50\xa7\xa9\x85\xfc\x66\xca\x5f\x8b\xdd\x76\x29\x85\xe4\x49\x05\x6e\x7f\x10\xf8\xb4\xe6\x46\xcd\x2f\x69\x6c\xb5\xce\xda\xa0\x58\x5f\x8c\xc3\x63\x0d\xfd\x7a\xd3\x43\x75\x1c\x5d\x47\xc4\xbe\xed\x94\xb8\x46\xf2\xe5\xb8\xa8\xad\x0f\x67\xb8\xe4\xd3\x89\x7c\xa5\x09\x2f\x03\x3d\x70\x48\xff\x8b\x71\x6a\x7e\xed\x53\xd6\xf5\xe1\xb6\x3a\xb3\x37\xda\xa3\x15\xa7\xa9\x14\xd2\xf8\xfa\xe8\x78\x1c\x73\xb6\x75\xf6\x68\x4c\x8d\x5d\x36\xe7\x08\x36\x1e\x9b\xc4\xbe\xa3\xf6\xc0\xe6\x7e\x61\xcb\x4e\x6e\x1c\x2e\x14\xfa\x3f\x91\x90\x7f\x51\x61\xba\xbd\x27\x6c\xcd\xf3\xfb\xd8\x42\xb5\x4b\xca\xd6\xde\xa4\x6a\xd5\xb8\x77\xc6\x5b\x1c\x71\xde\x20\xcb\xd9\x1d\xcd\xc3\x02\xb9\x30\xa7\x03\x0d\x8f\x63\x36\xbd\x8b\x61\xe4\x1f\x4e\xbf\xd7\xbb\x62\x2e\xeb\xd9\xce\xae\xba\x8b\x9d\x76\x64\xb5\xb7\x9f\x49\xdf\xfb\x41\xb9\xf3\xd5\x1a\x74\x02\x16\x95\x35\x15\x98\xeb\x03\x8b\x7d\x20\x8d\x0e\xe4\xc4\x21\x3d\x33\xec\x41\xaa\xad\xe3\x67\x35\xb7\x4e\x45\xd6\xec\x8e\xfe\x84\x23\x74\x1a\x99\x93\x9d\x30\x4f\x18\xdb\xc7\x26\xb5\x46\xd4\xda\x56\xb7\xd3\x65\xfe\x1b\x72\x7e\x56\xc0\x56\x2b\x32\xbf\x3e\xee\xaf\xcf\x27\xbb\xed\x93\xc7\x29\x54\xf3\x34\x4f\xfd\x62\xeb\x0c\xcb\x1f\x2d\x2b\xfa\xfd\x87\x86\xdb\x47\xf3\xed\x6b\xf4\x9b\x9f\x1d\xc1\xa1\xaa\xc7\x36\xe8\x79\xd4\xed\xe4\xd4\xaa\x73\x36\xcd\xa5\xcd\x83\x70\x28\xdd\x1d\x8a\xc4\xb7\x35\x5a\x07\x27\xfc\xfe\xac\x95\xc2\x13\x61\x07\xc4\x89\x8d\xd6\x28\x10\xa5\x44\x7d\x91\x35\xa2\xde\xf5\x74\x17\x3f\x97\x6f\xdd\x05\x7a\xaa\xc8\x3b\xb9\x1c\xad\xe3\xd4\xc0\x28\x13\xcc\x0f\x0e\x0f\xa3\x31\x68\x51\x04\x9d\x89\x19\x90\x84\x72\xd1\x81\x18\xd9\xf4\x69\xbb\xf7\x4d\xac\x8e\x56\x50\xa0\xe8\xde\x1a\xa1\xe7\x7c\x76\xa0\xd3\x38\x44\x13\x62\xd6\x8f\x85\x9a\xc1\x18\x8e\xfb\xb3\xc7\xa0\x81\x95\x9d\xab\xb9\x83\x08\xa8\x7a\x26\x8d\x8d\x79\xbe\xec\xbd\xf0\xfe\x9b\xcb\x1c\x1f\x59\xb3\x98\xc6\x43\xcd\x29\x3b\x97\x5a\x4f\x67\x2b\xfa\x8e\xea\x1b\x54\xa7\x6a\xea\xd6\x53\xb2\xf2\xee\x42\xd7\x6d\xee\x1f\x61\x8e\xd3\xde\x93\x42\xbf\xba\x77\x18\x12\x14\xfc\xb2\x57\xa5\xc9\xaa\x2f\xcb\x96\xde\xd1\xe2\xb4\xcf\x4f\x00\xab\x5d\x73\xd1\x33\x65\x98\x83\x35\xa2\x2e\x6c\x7f\xbd\x72\x0d\xeb\xc5\xec\x79\xc7\x69\xbc\xd9\x03\x46\xd4\xb2\x2f\x5e\x97\x03\xe6\x0b\x56\xdf\x11\x5c\x98\x7c\x11\x2c\x5e\x41\x96\xdc\x35\xc7\x29\xe7\x47\x2b\xd9\x8e\xd6\x6f\x1c\x34\xcd\xa2\xe7\x17\x05\xad\xc9\x1e\xce\x0d\xe7\x3b\xa4\x58\xd7\x36\xb7\xd1\xce\x26\xcc\x51\x76\x5a\xa0\xae\xb8\x76\xbb\xd1\xfb\x1a\x7e\xb1\xc1\xb9\x3a\x05\xec\xe6\xf9\xec\xe8\xeb\xd7\x51\xa5\xc6\xf2\xd6\x14\x42\x06\x16\xfe\x1a\xff\x76\x94\x42\x09\x56\xed\x98\x3c\x62\x56\x0d\xc9\x12\x73\x72\xf8\x4f\xbb\xb9\x45\x7d\x6e\x0f\x2d\x5d\xd0\x9f\xe6\x18\xd7\xfa\xf9\xa7\x56\x21\xe5\x37\x6b\x3d\x35\xd7\x14\xc8\xa0\xc5\x12\x68\xdd\x03\x25\x58\x0c\x2e\x5c\xba\xd9\xb1\xdb\x2f\xb1\xdd\x63\x8f\x25\x4e\xf2\x47\x4b\x36\x5a\x2f\x8e\x82\x65\xaf\x2f\xc3\xa8\xa3\x57\x1f\x53\x58\x01\x3d\xf0\x94\xb3\x3d\x55\x41\xce\x71\xb9\xd6\x4f\x3d\x99\xc7\x0a\xfd\x28\x56\x2d\xaa\x77\xe7\xb2\x1e\xb9\xbb\x26\xeb\xfd\x8c\x1a\x81\x08\x1d\xe7\x58\xad\x72\xf9\xdd\x9f\x3a\x7d\x7c\x6f\x0a\x75\x51\x8c\xb4\x1e\x9d\xc7\x82\xdd\xc1\x43\xb2\xda\x06\xb3\x0f\x1a\x3c\x8f\xa7\x51\xe5\xf3\x16\x04\xd4\x2e\x65\x3c\x3a\x51\xcf\xbb\x7e\x56\x9c\xaf\xac\xd0\xdd\x6b\x4d\xb0\xf7\x66\x7f\x67\xad\x62\x8b\xf2\x5e\x44\xed\xe9\xe2\x70\xce\x4d\x3a\x9f\xc1\x55\xce\xba\xdb\xc2\x5b\x63\x70\x01\xae\x23\xa8\x24\xe4\xca\x32\x5c\xb5\xbf\x8b\xd6\xca\x4e\xb8\x64\xa7\x16\xe8\x24\x03\xe1\x5c\x6d\x86\x26\xaf\xcb\xe7\xbd\x3c\xf3\x5d\x98\xbb\x2c\xa2\x61\x9d\xa2\x41\x1a\xd1\xf6\xc3\x2d\x8c\x8d\x67\x76\x8f\x46\x8c\xb4\xc6\x6d\x3b\xfd\xe3\xf8\x98\xb9\xed\xf3\xb5\x4f\xa9\x71\x1e\xab\xac\xaf\x58\x3d\x53\x54\xa2\x6e\x3e\x10\xe5\xbc\x35\xce\xad\x77\x66\x90\x1d\xe8\x11\x70\x3f\xc3\x93\x89\x5e\x31\xa1\x47\x5a\xe5\xf9\xd0\x72\x70\x43\xf2\xfb\xa1\x87\x0f\xf4\xc6\x81\xca\x34\x2e\x45\xbb\xeb\x69\xbf\x0e\x34\xb7\xc5\xc5\x67\x82\x70\x6e\x0a\x76\x4c\x09\xf8\x73\xc4\xe8\x31\x40\xb5\x98\xb7\x81\xff\xa7\x83\x44\x41\x8f\x6e\x52\x01\x9d\xd4\xe4\xd6\xf8\x85\x2f\x6b\xff\x62\xc5\x54\x27\x37\x37\x85\xf9\x4d\x61\x7e\xd3\x8d\xe7\xc7\xab\x35\xa2\x75\x11\x6b\x54\x53\xec\x4f\x16\x11\x5d\x90\x89\x86\x67\xde\x5a\xbb\x07\x4d\xb6\xc1\x97\x3d\x68\x5e\x05\x95\xa6\x42\x45\xa1\x99\x8f\xcf\x81\x95\x6b\xee\x44\x4e\x61\x59\x96\x27\x37\xf0\x2a\x3c\x8c\x7d\x79\xa2\x8c\x8d\xd3\x3e\xf4\x67\x1f\xca\x93\x43\xc9\x69\x8e\x56\x7f\xe5\x37\xdf\xb4\xd4\xb2\x6c\xce\x99\x85\x5a\x51\xa6\x21\xfc\x3f\xd6\xb5\x23\x90\x51\xdf\x76\x1f\x4b\x80\x2d\xd1\x16\xac\xd0\x43\xd0\xa8\x9c\x3f\x9f\x21\x7c\x1b\xb4\xac\xa9\x34\x1f\x81\x9b\x59\x7b\x87\x20\x3a\x11\x08\xc5\x03\xbd\x7a\xd9\xb7\x35\x7e\xbe\xba\xc2\xb9\x87\xb1\xc4\x1e\xe8\x28\xc2\xb3\xf7\xe7\x17\x12\x62\x2b\x63\x90\x73\x9a\x47\x54\x38\x9e\x04\x41\xa0\xdc\x9e\xf4\xc0\x26\xa5\xa8\xf9\x49\x09\x50\xd4\x31\x47\x7c\xbc\xa3\xbb\x83\x77\x43\xd0\x70\xb3\xc1\xea\xad\x85\x40\x18\x8b\xe8\xd0\x84\x3f\xb4\x88\x0f\x95\xc2\x14\xee\xbf\x3d\x83\x04\xfd\xa9\x4c\xc5\x27\xc8\x5e\x8f\x98\x85\xb3\xcc\x82\x29\x1a\x71\xdd\xef\xb4\xab\xf2\xcd\x82\x8c\x54\x5b\xd1\x59\x4d\x05\xb9\x3f\x25\xed\xcd\x47\x77\xa5\x25\xd0\xe7\xac\xfd\x85\x59\x49\x3d\xb2\xdf\xbe\xe4\x0a\xf5\x80\x65\x23\xf1\x26\x71\xc9\xa7\xc0\x1f\xc5\xd7\x8f\x16\xfd\x10\x5a\x0a\xfa\xcc\x8b\x22\xe2\x61\xe1\x64\xf4\xfb\xad\x55\x35\xe9\x66\x23\x94\x8a\x9f\xb2\xf1\x11\xee\xbc\xf5\xcc\xeb\xe5\xf1\x50\xb1\xac\xa4\xb5\x44\xeb\xef\xb1\x69\x57\x8f\xae\xf6\x7f\x7e\xfc\x90\xb4\xfb\x7e\xbe\x3e\x7b\xf9\xaf\x7d\x44\x8b\x45\x1a\xde\xec\x62\xbb\xf2\x74\xb1\x9f\xbf\xb6\xdf\x86\x50\x35\x7f\xaf\xb2\x9f\x42\x27\x68\xf3\x3a\x44\xde\x5e\x71\xbb\x0f\xf6\x92\x7d\xd0\x36\x9e\xcf\x58\x52\x59\xd8\xa8\xf7\xd8\x13\xad\xde\xaf\xd9\x67\x1d\x16\xd4\xeb\x10\xbc\xa4\x82\xa0\x18\xcc\x76\x32\x47\x82\xb2\xf4\xb6\x8e\x6c\x01\xfd\xbd\x7a\x16\x67\xbf\x17\xde\xd4\x56\x31\xe5\x7b\xec\x78\x81\xc0\xeb\xe6\x45\xe1\x67\x98\x9d\xfc\x73\x37\xef\x07\x4a\xaa\xc5\xba\xd8\xbd\xd3\x87\xf9\x87\x1f\xe3\xec\xde\x19\xf1\x87\xcf\xd6\x79\x16\x01\xa2\x56\x3a\xd9\x75\xac\x9d\xb2\x7c\x28\x8b\x06\xa5\xd0\x55\xe3\xf9\x76\x22\xc1\x6b\xaf\x42\xef\xc5\x9e\xfd\x8b\xd0\xb0\x3d\xf2\xcc\xde\xb9\x4c\x6a\xe7\x9f\x90\x37\x1b\xd5\x5d\x0f\xbf\x22\x74\xbe\x7a\x07\x2d\x3e\x87\xa4\xb3\xd6\x02\x2b\xf5\x6a\x2b\xae\x2d\x31\xa3\xba\x90\x7f\x7d\xc1\xd7\x14\xee\x8b\xdf\x29\xb3\x9f\x39\x3f\x61\x1d\x27\xdf\x3e\x0d\x9e\x40\x28\x15\x47\x88\x16\x19\x5b\xbc\x4e\x41\xf9\xf8\x15\x21\xa7\x44\x97\x39\xac\x56\x61\x26\x46\xa1\xd9\x0c\x57\x3e\x87\x67\x2b\x5c\x3b\x67\xcd\xe8\x45\xb7\x6c\x8b\x13\x9d\x8f\x37\xc0\xdc\x3c\x94\x2a\x8f\xb7\x9c\xbb\x56\xf6\x94\x60\x80\x3a\xba\x75\x80\x83\xb5\x10\xe3\xd6\x6a\x8e\xf4\xae\x56\x0a\xfb\x5f\xea\xee\xf5\xd6\x0a\xcd\xe0\x03\x75\x6e\xfe\xdb\xe8\xdd\xe8\x61\x7b\xa4\x95\x4b\x44\xe0\xcc\xd3\xab\x73\x8d\xe1\x97\xac\xbe\x4f\x52\xd3\x83\x42\x8f\xad\x4e\xe3\x1a\xfe\x0f\xa3\x6b\xdc\xf6\xe8\x0a\x91\x7d\x87\xff\xbc\xf5\x30\xa9\xca\xb1\x43\xce\x6b\x95\x32\x51\x95\xfc\x85\x95\xa1\x41\xa7\x55\xd4\xbb\xf8\xd8\xe7\xe3\x49\x26\x61\xed\x87\xd8\xea\x93\xe2\x35\x7f\x51\x1e\xe7\x87\xe8\xc9\x6d\x12\xb5\x9e\xbf\x93\x75\x2d\x62\xc2\x87\x69\x9c\xd7\x92\xd2\xfb\x29\x5e\xa9\xd3\xf6\x64\x7b\xa2\xaa\xfd\x91\xaa\x4d\x89\x31\x92\x46\xc4\x26\x8c\x9f\xf9\xf5\xea\x39\x05\x03\x69\x93\x46\x59\x23\x33\x3a\x45\x8d\x8a\xf2\xb4\xcf\xe5\xed\x9f\x93\xa2\xec\xa4\x3b\xba\xc2\xbc\xfb\xd8\xf0\x4d\xc4\xe6\xfc\x43\xbf\x34\x79\x93\xee\xa1\x44\xda\xfb\xf7\x63\x17\x69\x27\xbe\x58\xfb\xd3\x8e\x06\x2a\x96\x81\xcf\xbf\x2d\x7a\xb8\x06\x6f\xe1\xeb\xfd\x7e\x47\xeb\x44\x8e\x2e\xdb\x63\x88\xb2\x09\xcd\xc3\xc6\x63\xb4\x9c\x7a\x47\x41\x2e\xa3\xf6\x29\xf6\x7a\x4b\x1c\x4d\xfc\x05\xfe\x0f\xa3\x74\xbd\x0e\xc7\x6f\xfe\xbd\xde\xcf\x4a\x05\x5c\xf6\xaa\xfb\xf0\xf6\x0f\xbb\x83\x4e\x5d\xdb\x6c\xe3\x4e\xb1\x18\x6c\x5a\xa4\x75\x34\xf0\xf7\xf2\x96\x7f\x5e\x8b\x25\xb9\x0e\xfa\xd9\x39\x6e\x16\xf2\xd9\x6d\xa5\x4b\x31\xa2\x07\x8b\x2e\xb4\x0c\x76\xcf\xe7\x74\xc2\x5e\x7b\xd1\xcd\xdc\x56\x2f\xbf\x1d\x69\x7e\x02\xb9\x43\x9c\xc2\x73\xf8\xda\x57\xc9\x26\x2f\x3b\xea\x4c\xf6\x15\x7b\x0f\xe9\xec\x8c\x7e\xc2\xa3\x57\xcc\xf6\x04\xb2\xff\xf9\x15\x0f\x95\xec\x43\xe3\x17\x79\x61\xeb\xf6\xb5\xd6\x74\x50\xa4\x2b\xdb\x52\xba\x60\xf0\x96\xb4\xe2\x74\xdd\x05\x3b\xad\xa5\x48\x02\x49\x5b\xdc\x1e\xed\x3c\xfc\xe3\x86\xdd\x4d\x63\x4e\x36\xbe\x75\x02\x0c\xdb\x8f\xed\x5d\x3b\x91\x78\x69\x6f\x3e\xeb\x0a\x11\xd4\x45\x7b\x54\x84\xb8\xe7\xe4\xcd\xfb\x8c\xc9\xb5\x7f\x89\x49\xdd\xb2\x46\x68\x41\xd3\xef\x3d\x9e\x52\xd0\xd6\x9e\x5f\x76\x84\xae\xd6\xd3\x65\xbf\x9f\x1d\x18\x67\x27\x18\x21\xaf\xa5\x57\xbe\x8e\x41\xbc\x84\xb4\x1d\xfb\x87\xa2\x62\xd6\xb2\x1c\xb0\x0d\x04\x76\x94\xe8\x04\xa4\xf3\xb1\x66\x45\x7e\x49\x91\x04\x66\x93\xb8\x74\xce\x11\xae\xcf\xb1\xb2\x5a\x29\x1c\x21\xa1\x28\x6e\x7b\xef\x8f\x44\x9a\x4e\x9f\x2b\x0b\x36\xf9\xe7\x23\xc4\xa7\x52\x3c\x62\x0a\xe6\x43\xec\x13\x2c\xa5\x68\xef\x44\x07\xed\xf5\xdd\xd1\x71\x99\x23\xea\x27\xb6\xc5\x86\x9c\xbc\xd9\xe2\x95\xd2\xed\x22\x53\x54\xdd\x7a\x34\xf8\x19\x78\x08\x6b\xcf\x58\x08\xb6\x1b\x7b\xa9\x51\x8a\xb2\x8d\xc3\x0f\xfc\xd1\xe1\xaf\xe7\x3c\xc7\x96\xf4\x22\xc5\xe5\x88\x13\x8d\xb0\xf6\x4d\xbb\xe3\x5d\x56\xc1\xa4\x22\x4e\x4c\x23\x28\xb3\x06\xdd\xc1\xda\xe1\xb2\x06\xc5\x38\xa0\xd9\x19\x56\x7f\x98\x9c\xbe\x6d\xad\xc1\x26\xef\xd8\xca\xcd\xff\x50\xce\x17\x29\x7b\xbc\x4c\x69\xcd\xba\x39\x60\x75\x8f\x0d\xbb\x5d\x49\x98\xe7\x43\xad\xca\x1b\x8c\xbe\xba\x6c\x92\x5e\x2f\xac\x83\x0b\x1e\xda\xa3\x8d\xce\x6e\x11\xe3\x2b\xeb\x37\xd6\x34\x5a\x3a\x12\x64\xb7\xb5\x79\x42\x70\x66\xc4\x09\x91\xca\xf9\x6a\xcf\xb8\x83\xcf\xa1\xed\xf0\xb6\xd9\xf8\x40\xa8\xbe\xd7\xe6\xc4\xaa\xb7\x6a\x75\xa6\xd4\xbd\xc5\x2e\xa5\x2a\x9d\x08\x0a\xe4\xd3\xea\xc6\xde\x88\xc3\xee\x1a\xff\x54\xac\xac\xe5\xbd\x11\xde\x7e\xe7\xe7\xcf\x94\x45\x50\x63\xfb\xb5\x35\xfe\x89\x08\xdf\xce\x5f\xe1\x2b\x7b\x75\x77\xd1\x89\x55\x3c\x90\xf9\x75\x0e\x83\x5d\x64\xc7\x6b\x0a\x7f\x0a\x1b\x0b\xb5\x4e\xfb\xb4\x59\x02\xd2\x49\x52\x8a\x2f\x39\xb8\x40\x6c\x5c\xbb\xfb\x65\xd6\xf0\x05\x5d\x11\xcc\x2b\x49\x49\xac\xfc\x89\x52\x79\xd7\x38\x37\x22\x44\x3d\x66\xef\x26\x24\x4f\xbe\x88\xce\xca\x68\x0b\x3c\x7f\xa2\x52\x41\xd5\x35\x08\xc7\x05\xc1\x93\x20\x48\x12\xa3\xf7\x62\xf6\x4d\xa3\x53\x40\xf7\x2f\x37\xc3\xae\xdc\xfb\xb2\xf3\x5d\xa2\x57\x56\xde\x58\xbc\x8b\xcb\x55\xed\x38\x9e\xde\x27\x33\xc9\xd3\x33\xeb\x33\xd9\x6c\x77\x8b\xc5\x0f\x71\x16\x9e\x43\x99\x21\x13\xf2\xe0\x74\x99\xbb\x53\x01\xf9\x6f\x0f\x3b\x3c\xf9\xc1\xd2\x5e\x29\x5b\x20\x4e\xbc\x20\x79\xdd\x77\x27\x89\x59\x05\xa8\xb2\x07\x9a\xed\x49\x32\x6e\x4a\x18\x2e\x7b\xe0\x51\x48\x85\x93\x2c\x64\x3e\xde\xc5\x0f\xbf\x13\x02\x1f\xc9\xb1\xd0\x23\xd7\xe2\x49\xe3\x2f\x3a\xbc\xaf\x3c\x57\xf3\xb8\x6b\x7b\x70\x12\x43\x33\x3a\xee\x6f\x15\xe6\xe9\x9d\x87\x5f\xfa\xd5\x1e\x2a\xee\xb5\xca\xc7\xb6\xe3\xbb\xde\x57\x59\xbc\xff\xb0\x13\xd8\xe2\xb8\x43\x94\xbd\x13\x90\xae\x31\x54\xdf\x1e\xd6\xb9\x79\xa4\xb7\x2e\x76\xd2\xf7\xf5\x5a\x0b\xef\xea\x5b\xbe\xde\x7f\x26\x8b\xc7\x3e\xfc\x98\x03\x29\x55\x31\x93\x4f\x9c\x7a\x2d\xa2\xfb\x18\xe3\x74\x0c\x43\xfe\xc4\xc7\x9b\x8c\x22\x96\x6f\xf1\x5b\x76\xcb\x9e\xe3\xf7\x3a\x57\x63\xf5\x0e\xad\xb0\x9e\x9d\x1a\x47\x54\x49\xae\x46\xc1\x00\x64\xa9\xe7\x92\xf2\x15\x1e\xd4\xb3\x8b\xdb\xc6\xc7\xb6\xaf\xc3\xd5\x17\xe7\xd8\x7f\x5e\x31\x89\xcb\x16\xe7\x27\x22\x3e\x15\x84\x4b\x82\x6c\x5c\xdc\xb2\x57\xe2\x8d\x70\xef\xbd\x17\xe5\x77\x63\x17\x8e\xde\xa1\x6d\xea\xde\xdb\xbe\xf4\x35\xbe\xf3\xc8\x7c\x52\x57\xef\xe3\x65\xd8\x3c\x3e\xf6\xe7\xf3\x97\x00\x4d\xbb\x5f\x66\x46\xad\xd3\x35\x3f\xb5\x85\x5f\xf4\x45\x27\xe2\xe2\x79\x5b\x59\x7e\xf1\x1b\x4a\x64\x27\x05\x12\x23\xbe\x8e\xae\x99\x1b\x93\xb7\x91\xcf\xbd\x77\x14\xb9\x6b\x5c\xda\x1d\x91\x32\xa9\x95\x6f\xc8\x98\x29\xac\xcc\xd7\x29\xf8\xc9\x2b\xd7\x79\x39\xe7\xa7\x2e\x1b\xa3\xe7\x52\xad\x58\xf1\xff\x66\xef\x5e\x76\x6d\xc9\x71\x34\x30\xbf\xd0\x1a\x48\x22\x75\xf3\xab\x18\x1e\xd6\xc0\x9e\xfa\xfd\x01\x43\x1f\xd7\x3e\x99\x6d\xb8\x81\x6e\xc3\xee\xaa\x02\xf6\x20\x99\x71\xb4\x23\x62\x29\x74\xe3\xfd\x67\x3e\xfd\x76\x28\x9f\x37\x6e\x90\x11\x45\xae\x74\x9e\x45\x48\x96\x63\x0b\x7e\xbd\xf6\xc9\x9c\xcd\x08\x8b\x7d\x11\x22\xdc\x48\xf3\x15\xe4\xb6\x68\x86\x51\x25\x5a\xfa\xf7\xd4\xae\xf0\xb6\xb2\x3f\x0a\x78\x15\x4a\xcb\x9f\x17\xb4\xf4\xdc\x15\x0f\xe4\x8b\x76\x8d\x1b\x3d\xf6\x1b\x55\x47\xc2\x98\xc2\x49\xc9\xdf\xdb\x29\x39\xde\x9e\x89\xcd\xc2\xcb\x63\x34\x4a\x47\x6d\x82\x2c\x53\x48\xf4\x14\xdd\x72\x9e\xc4\x36\x26\xc9\x60\x57\xc4\x62\xd5\xd3\xaf\x78\x88\xf1\xe4\x39\x95\xdc\x9f\x1c\x50\x1a\x02\xcb\xc2\xae\xaa\xf1\x1b\x4f\xe5\x47\x69\x65\x29\x18\x6c\xf4\xb4\x7d\xf1\x61\xc2\x85\x17\xbf\xc5\xa0\x63\x97\x07\x2e\x59\xeb\x16\x89\x5c\xb5\xed\xa1\xc6\xfd\x18\xe2\x31\x2b\x70\xff\x38\xc1\xbf\xc1\xe8\xf7\xc9\x1f\x59\x56\x86\x64\x23\x13\x21\x24\x44\x3b\x7a\xd9\xeb\x67\x05\x92\x0a\x71\xce\x5a\xbd\xad\xfc\xdc\xf6\x17\x9f\x5f\xd9\x6d\x59\xab\xaf\x00\xfd\x5e\x12\xf6\x37\x1d\x42\x64\x40\xcb\x4a\xc3\x30\x17\xec\x80\xf4\xe4\xb3\xca\x9a\xc6\x1a\xf2\x34\xe1\x27\x5d\x3d\x7d\xa0\xa2\x00\x71\x97\x59\xf6\x4d\x61\xdf\xd9\x44\xf8\x39\xfd\x67\xd9\xf7\x47\x9d\x1e\x87\x6c\xba\x2b\xa0\xf6\xf1\x51\x56\x39\xd5\x9b\x87\x5c\xc4\x27\x97\x80\x74\x9e\x25\x8b\x94\x35\xdc\xa9\x57\x89\x3a\xb4\x65\x56\xdd\x89\x03\xad\x14\x73\x43\x5e\xbf\x66\x6d\x5c\x40\xd1\x2c\xe6\x8b\x97\x62\x57\x32\x4c\x92\x90\xc4\x10\x04\x5b\xed\xda\x6c\x94\xec\x14\x97\x9f\xec\x66\xd9\xfb\x48\x63\x7b\x9b\xc1\x55\x16\xd8\xb2\xe3\xdc\xc7\xd7\x79\xe0\xe8\x1b\x4a\xed\x44\xb0\xd4\x2b\xe1\x3a\xa0\x77\xbc\x35\x23\x7a\xe0\x5d\x5b\x33\x63\x1f\x5f\xca\x5e\xdf\xcb\x66\xcd\x2a\x11\xf1\x76\xab\x99\x7a\x2b\x47\xe4\x4d\xe9\x69\xd2\x18\x24\x05\x0d\xa1\xde\xc1\xe2\x70\xab\xb0\xe3\x12\xc3\x21\xc4\xb9\xaf\xb2\x8a\x0a\xaf\x5f\xf5\xed\xb4\x5f\xb1\x89\xbb\x52\x02\x3a\xfd\xfc\x9d\xab\xa1\x76\x7d\xa8\x33\xff\x34\xe7\x60\xd3\x4c\xf1\x2e\xd5\x43\x96\xa6\xcd\xc7\xff\x76\x9f\x3a\xcc\x6f\x5e\x9c\xab\x24\xc2\xf9\xce\x81\x53\xe5\x5c\xd9\x6d\x47\xaf\x80\xf8\x4e\x46\xaf\x30\xfa\xe3\xd9\x5d\x16\x73\xb6\x89\x4a\xf6\x10\x73\x59\x73\xca\xc6\x34\x25\x3f\x94\x6f\x78\x89\x1e\xd8\x24\xbc\xbd\x4b\xd2\x12\x0f\x24\x4a\xe6\x3e\x89\x36\x54\xda\x8f\xc1\xaa\x12\xf1\xf8\x77\x8e\x53\x31\x0d\x46\x03\x0f\xe2\x9b\xb9\xed\x6b\xd5\xe2\x0d\x2d\xaf\x4c\xab\x80\x7b\xef\x91\xc8\xf4\x74\xe9\x68\xac\x6c\xe4\xc2\x48\xb6\xd1\x2e\x11\xa5\x7f\x23\xf0\x78\xa9\xef\x57\x6a\xbc\xac\x5a\xf9\x76\x07\xbd\x91\x25\x71\x0e\x2b\xd3\x2a\x5d\xff\x08\x07\xa4\x6c\x9a\xc9\xb9\x16\x86\x56\x76\x0c\xd5\xb8\x0b\xd1\x1c\xcc\x14\xef\x04\xe3\xc4\x94\xed\x75\x08\xf6\x54\xe9\x77\x8c\x05\xb7\x45\x48\x57\x0d\xe8\xcb\x63\x77\x22\xfa\x29\xa7\x40\x05\xe0\xf5\x72\x76\x08\xc2\x6e\xf5\xeb\x02\x75\xb8\x48\x52\x66\xd6\xaa\xca\x36\xab\x96\x24\x01\x9e\xb3\xbe\x0e\xf8\x76\xfb\xb7\x3c\xfc\x13\x83\xdf\x21\xad\xcc\x7c\x54\xe0\xf5\x2d\xb5\xa2\x8e\x93\xef\xe0\x11\x6f\x08\x4b\x97\xc1\x9f\xda\xf2\x74\x8c\xb7\xbd\xca\x48\x42\x31\xb1\xc0\xa7\x50\x28\x95\xfd\xde\xfb\xcb\x11\x20\x50\x90\xa0\x22\xf4\xee\xbe\xa3\x2e\x7a\x85\xa2\x31\xa5\xce\x14\xb2\x72\xf5\x8a\xb3\x72\xce\x0a\xbd\x28\x77\x30\xb7\x23\x13\xf1\xb6\xf0\xb7\x30\x83\xa0\x0c\xa6\x98\xf9\x7b\x0b\xaa\xfe\x72\xac\x0c\x61\x7b\x02\x42\xd0\xf3\x94\xa6\x20\xda\xc4\x62\x58\x3e\x9c\xa7\x53\xc8\xdf\xbd\x39\x44\xf5\x97\xbb\x9c\xe9\xfe\x12\x3d\x7c\x69\xe7\x8e\x2c\xd7\x0c\x47\x70\xb6\x3a\xa8\x46\x09\x35\x0e\x80\x56\x62\x21\xb3\xcc\x28\x53\xe7\x90\x4f\x41\x3c\xe6\x0c\x9d\xdc\xd6\x8c\x1e\xd1\x29\x53\xe5\xb0\xae\x40\xc7\x7f\xe8\xe0\xae\x98\xeb\xb7\xaf\x92\xa7\xce\x39\xab\x0c\xea\x3b\x61\x3b\x8b\x29\x49\xb6\x93\x3f\x2a\xbd\xe9\x9d\x80\xbb\x55\x2e\xc0\x2c\x7b\xc3\x3b\x55\x0d\x70\xb0\x8b\xa7\x28\x6c\xf5\xd6\x47\x2f\x98\x7e\x76\xa9\x64\x2b\x5a\x41\xf3\xeb\xbc\xd3\x6c\xf3\x53\xb0\x78\x7d\x16\x38\xf8\xa7\x3f\x05\xfd\xbe\x3c\xde\xa4\xfb\xcd\x6a\xfb\xfa\x70\xbf\xf2\x5c\x49\xf4\x22\x08\xd8\x50\x07\x8e\x2b\xa2\x6d\x4c\xfe\xe1\x23\x83\x60\x48\xa6\xec\xc7\xef\xd2\x92\x87\x4d\x20\x7a\xe8\x4d\x5d\x67\x8b\x32\x2d\x57\x94\x0d\x1e\x7c\x44\x81\xb1\x13\x24\x5f\x6e\x8a\xcc\x4a\x7e\x95\x35\x2b\x1e\x4d\x32\x62\xff\xa6\xce\x74\x56\x7c\xb6\xf6\x49\x9e\xa0\xad\x8a\x9d\x1c\xe2\xf9\xcb\xae\xf0\xf5\xdb\x88\x35\x56\x58\x2e\xb2\xd9\xbe\xe2\x6b\x14\x7a\x1c\x4f\xe0\x72\x4e\x69\x3f\x95\xa7\x20\xee\x95\x65\xe2\xd0\x24\xee\x37\x2e\x95\x86\x27\x12\xb0\x89\xad\x73\x8a\x9d\x33\xf8\x52\xc4\x70\x05\xbf\x37\x4f\xf2\xa8\xd4\x99\x8a\x22\x4f\x51\xc9\xe2\x49\xa7\x13\x50\xd2\x5e\x74\xd6\xf1\x4e\x27\x78\x0c\x8d\xbf\x45\xba\xd8\xad\xb8\x8f\xb7\xd8\xa5\x34\x75\x11\xdc\x21\x8d\xb2\x91\xc0\x94\xd5\x7c\x92\x8a\xa8\xf9\x5d\xf9\x20\x9b\x14\xb5\x69\x5d\x41\xb6\x1e\xe8\xe3\x9a\xa7\xe2\x16\x45\x74\x8e\x92\x2a\x9e\xcc\x3d\x79\x47\x97\xd8\xdb\x25\x72\x7c\x1f\x9b\x5b\xdc\xf4\xb9\x15\xbb\xbd\x71\xb2\x5b\xd1\x8b\x0d\x8f\x97\x46\xf3\x16\x7e\xd2\x5d\x52\xfc\xe6\x6c\xb7\xac\xe0\xe2\xc5\xe8\x8e\x6c\xf3\x5b\x0a\x29\x9f\x55\xb6\xbe\x7f\xca\x90\x3f\xa9\x85\x2d\x73\x54\x94\x2b\x1e\x4c\x1f\xa5\x69\x8d\x2b\x72\xaa\x93\xbd\xa6\x3c\x0e\xd1\xac\x13\x3f\x58\xe3\x56\xca\x84\xb8\x4b\xb6\xf0\x13\x15\xc5\xc0\xbe\x1b\x15\x5d\xc2\xff\x7f\x4b\x82\x7f\x87\xd9\x57\xdf\x7a\xc7\xf6\x9e\x92\x3e\xbf\xd9\x00\x6f\x5e\x0e\xdd\xa9\x93\x06\xca\x2a\xd3\xc9\x31\xa3\xb2\x16\xe8\x42\xf4\xcb\xb7\x47\x36\xd9\x9a\xe5\xf5\xbd\x67\x87\xf7\xf4\x92\x93\x58\x47\xd8\x1b\x00\xed\x8d\x64\xe1\x1b\x87\x57\x87\x97\xb2\xa2\x72\xda\x3b\x20\x43\x91\xe3\x31\xc5\x50\x37\xd1\xd0\xb7\x4a\x94\x95\x06\xc9\x5a\x3c\x58\x47\x56\x7d\xbb\x58\xe6\xed\xa0\xea\xfb\x8d\xc9\x6e\x8e\x49\x87\x2b\xcc\x84\xb1\x1c\xf6\xf7\xc9\x2e\x4f\xbe\x67\x2d\x33\xd7\xfb\x9b\xb6\x4b\x73\x13\x3d\x44\x5e\x99\xa2\xa8\x56\x56\xfc\x7e\xe7\xb7\x67\x51\x8b\x5b\x51\xde\xf3\x5b\x7c\xb1\xdf\x5b\x6b\x35\x68\x5f\xac\x95\xd6\x43\x1d\xa2\x9d\x9f\x6a\x55\x0a\xe9\xce\x8a\xdc\x64\x4b\x13\x7b\x22\xb5\x2e\x9c\x78\x49\xce\x50\x56\x33\x5e\xe7\xb0\xb5\xc1\x0f\x83\x67\x87\x95\x7f\x2a\x9e\x88\x9d\x9b\x2d\x19\xb7\x1e\xa7\x97\x9f\xb9\xcb\xae\xb0\xc7\xcb\x56\x5d\xc5\xef\xd9\xd1\xa5\xc3\x8a\xa9\x1c\x4f\xa9\x72\xd8\x57\x14\xaa\x7e\x8e\xf2\x78\x57\xee\x12\xfb\x8a\xe8\xf8\x2a\x28\x6b\x0c\xc3\x88\x5d\x76\x2f\xc5\xed\x06\x0f\xf6\x58\x47\x04\x53\x77\xa6\x0d\x2b\xa7\x8a\xcf\xad\x8a\x38\xab\x64\x35\x56\xb7\x49\xba\xba\x15\x7f\x24\x8a\x81\x27\xf6\x3e\x29\x2a\x14\x75\x0e\xf2\x7a\x8c\xb7\x4f\x1f\x03\x94\x73\x43\xc6\xad\x72\xd7\xdf\x6f\x17\x75\x48\x9f\xef\x23\x65\xed\x6c\x76\x6e\x36\x8c\xaf\x58\x51\x52\x6f\xaf\x38\x02\x7e\x30\xfa\xad\x5c\x2a\xa5\x3d\xdf\xb3\x34\xab\x5a\x7b\x7c\x7d\xf4\xea\xcb\x07\x3b\xce\xb0\x92\x87\xb4\x5d\xfa\xff\x2a\x59\x8a\xf8\x90\x49\x97\xb0\xeb\xc7\xa8\x9d\xfe\xd6\x09\x6d\xf0\x48\x6c\xad\x54\xbf\x14\xc3\xb5\x31\xe4\xa4\x53\xe5\x79\xeb\x7f\x1f\xf2\xeb\x70\x4a\x4c\x7e\x06\x1e\x6f\xe7\xdb\x68\x51\xf9\x46\x65\x71\xa8\x58\xec\x59\x71\x4f\x92\xa0\x70\xb7\xca\xe7\xba\xab\xac\x44\xc7\xa9\xc5\xd3\xf5\x46\x8c\x4d\x6e\x9c\xb2\x60\x11\xa9\x20\xd9\x45\xab\xd5\xd5\x2a\xe6\x71\x94\xa7\xd1\xd9\xfe\xce\x87\x4d\xfa\xdc\xc5\x5f\xa6\x54\xf2\xdd\xe4\x16\xe8\x4f\xaf\x5d\xd0\x83\x40\x51\xf1\xda\x7a\xbe\x09\x1d\x84\x23\xd9\x48\xd9\x2b\x52\x83\xed\xbf\xe2\xaf\xc5\x44\xcc\xf2\x45\xb0\x95\x4c\x1c\x67\xc9\xbc\x59\xf8\x66\x71\x79\xd8\xff\x43\x69\xc6\xa1\xe0\xc7\x90\xbd\x14\xe2\xdc\x9f\x00\xc8\x93\xb0\xde\x69\x56\xfe\x1c\xfe\xcf\x59\x5a\x31\xd9\x7d\xc5\x37\x82\x9e\x1f\x78\x48\x22\xa7\x07\xd2\xc3\x27\xdd\x7e\xf3\xe1\x6c\x49\xbd\x47\x36\xd8\xe0\x0d\x2e\xff\xb9\xe2\xe2\xc1\xa3\x1e\x20\x13\x62\xda\x35\x4b\xa2\xad\x14\xe7\x27\x64\x89\x87\x7a\xe7\xf6\x16\x91\x31\xe4\x7b\x85\x78\xcc\x3d\x2a\x9f\xb1\x32\x8a\x96\xd4\x55\xa9\xde\x51\x22\xdb\xb4\x36\xd8\x56\x42\x04\x7a\x49\x2f\xef\xac\x7e\xbb\x92\xcf\x67\x96\xc7\x86\x8e\x27\x16\x98\x7d\xe1\x3e\xc1\x2d\x9a\x9d\x32\x45\x9f\xcd\xc7\xb3\x42\xc1\xb0\xa7\xd5\xb3\xa7\x12\xdf\xf8\x4e\x95\xe6\x0a\x19\x57\x11\xd2\xd3\xf9\x07\x9e\xf0\x2b\xde\x19\x5f\xbe\x05\x4b\xd0\x69\xb3\x25\x4a\x8b\x99\xf5\x5b\x9d\x2f\x42\xb1\xa8\xe8\x55\x3c\xfb\xd8\x9b\xce\xea\xbc\xe5\x95\xaa\x6f\xa1\x8d\x8b\xab\x12\x8b\x37\x94\x6e\x1d\xed\x1b\x33\x2b\x11\x9c\x47\x88\x9e\xf3\x58\xbd\x55\x5a\x91\xce\x9b\xc4\xb2\x69\xa4\x4e\x3c\x9a\x70\xbf\xb4\xf4\x77\x62\x3c\x01\x90\xa8\x7e\xc4\x89\x90\xa9\x9c\xed\x0a\xcc\x8c\x6e\xef\x0f\xa7\x62\x9b\xa3\x72\x23\xea\xfc\x17\xd9\xd4\xf8\x0c\x45\x5b\xcb\x73\x8c\x51\x99\x7f\xd3\xd7\x29\x73\xdb\xaa\x28\xaf\x3b\x8d\xf9\x93\xa2\xd9\xd4\x36\x7b\xf0\x66\x95\xf4\x8d\xbe\x54\x26\x41\x8b\xef\x19\x42\xfe\x14\x7f\x74\x2b\x3f\x4c\xee\x05\x71\xbe\x93\x76\x82\xb4\xb6\x4b\xfa\x9d\x75\x4a\xbf\xd5\x75\xaa\xb0\xee\xfc\x16\xb6\x14\x93\x25\x12\x93\xbf\xba\xb7\x92\xb8\x26\xe0\x8a\x4d\xba\x00\x24\x40\x7a\x49\x36\xd0\xbc\xc0\x18\x9c\x12\xb7\xf6\x38\xcb\xfa\xa0\xeb\x0e\xb6\xb9\xfc\x81\x06\xb9\x54\x0d\x56\xed\x8d\x37\x39\x8d\xf9\x5b\xce\xa9\x4c\x14\xfe\x7f\xd1\x9a\x50\xdd\x47\xef\x65\xdd\x60\x91\x91\x0b\x92\x52\x8a\x57\x9d\xe4\x8d\x9a\x48\x43\x3e\x95\x96\x0d\x36\xe0\x8a\xcc\x55\x30\x2f\xd4\x87\x09\x00\x18\x51\x12\x72\x2e\x1e\x00\xfa\xf3\xb7\x10\xe6\x64\x9d\x94\x01\x30\x00\x33\xec\xe5\x9c\xa1\xbb\x2a\x73\x3e\xfa\xd3\xb4\x63\xf2\xd7\x6d\x10\x17\xab\xc6\x56\x34\x6e\x56\x72\x76\x71\x2e\x19\x15\xad\x03\x66\xe8\x6f\x8f\x5f\x12\xc5\xb4\x17\x72\x64\xd9\x37\xd9\x52\x4f\x71\x70\x19\x21\x9b\xf7\xa3\xfd\xbb\x03\xdc\xfe\xe7\x68\x32\x19\x51\x3a\xa1\x50\x18\xc1\x1c\x26\xad\xc1\x9b\x68\x9c\x85\xf2\xf6\x07\x84\x94\x47\x29\x1f\xb3\x68\x25\x6a\x1f\x1b\xbd\x4b\x87\x28\x37\x7c\x85\xcf\x1e\xef\xaf\x44\x1d\x69\x99\xa3\xd2\x09\x4a\xbc\xf5\x94\xf0\x50\xc9\x42\xad\xd7\xb3\x53\x8b\x90\x02\xcc\x5c\x90\xf1\xa3\x15\xc4\xe9\x38\x61\x66\x94\x3b\xdc\x46\xb1\x23\x35\x33\x28\x0d\xad\x0c\xb6\x51\x49\x41\xbb\xc2\xeb\x21\x41\xf8\xa2\xa8\x90\x2f\x0e\xf5\xa8\xe0\xfb\x0a\x0c\x95\x0a\x5b\x49\x62\x96\x7f\x63\x2a\x69\x9c\xa6\x4d\xb8\xad\x74\xb5\xd1\xa4\x54\x35\x0e\x54\xf5\x73\x07\x93\xcb\x53\x77\x18\xe5\x2a\xe0\xb5\x0c\x7d\x4f\x95\x6c\xd0\x49\xbe\x81\xfe\x82\x0e\xcb\x0d\xd6\xa8\x23\x8d\xf3\xb5\x39\xa4\x5b\xe9\xde\xb3\x54\x31\xbd\x95\x50\xde\x46\xdd\x6f\x73\x48\x09\x6e\x8c\x7e\x95\xae\xdd\x2a\x85\x55\xd0\x40\xcb\x32\x0c\x1e\xef\xd4\x1f\xc1\xbb\x2b\x08\xef\x0c\xa7\x8d\x19\xad\x71\x26\xa9\xd4\x3f\x08\xec\xa3\x95\x81\x6b\x95\x15\x86\xc3\x82\xe0\xa6\x0e\xfe\x68\xab\x8c\xf6\xbe\x5d\xea\x48\x93\xd2\xd0\x0a\xd7\x43\xf2\xa1\x6a\xdd\xa3\x61\x4d\xea\x6e\x8f\x56\x62\x35\xe5\xb8\x9c\x4c\x8d\xcb\x5f\x4d\xed\xa1\xf2\xf5\x50\x29\xfb\xd1\x0a\x3e\x2e\xaa\xc5\xea\x92\x66\xdc\x4a\xc9\xdb\xf5\x7e\x73\x2d\x98\x49\x5d\xe0\xa1\x0a\xf0\x68\x65\x3f\x22\x02\xab\xe4\x3b\xd4\xe7\x1d\x5f\x43\x62\xa5\xb4\x9d\x52\xaf\xb3\x82\x6c\x84\x4a\x58\x5d\x42\xb5\xa8\xb9\xa3\x1d\x6b\xe0\x7c\xd3\x27\xbc\xb9\x52\x04\xcb\xb8\x5d\xc1\x49\xa7\xdc\x3a\x65\x2b\xf1\x94\x5d\xc0\x64\x0d\xf7\xe1\x51\x21\xbf\xd6\x5e\xa9\xe3\xb7\x8c\x9c\xfa\x46\xa9\x6d\x12\xe4\xda\x2d\x17\x83\x71\x90\x26\xd1\x60\xb8\x64\x54\x70\x95\x6f\xe7\x8a\x6b\x8e\xf6\x56\x16\x1c\x81\x6b\xed\x56\x28\x89\xf4\x3f\x21\xe9\xbd\x15\x4c\x02\x87\x82\xdd\x2a\x3c\x7d\x40\xb5\x1e\x12\x0f\x46\x2f\x47\x40\xab\xa4\x47\x0a\x4a\x93\x6c\xc3\x9d\x0c\x0a\x7a\x40\x67\x1e\x0e\xe0\x01\xae\xf9\x5d\xa3\xc5\xdc\xa8\x0b\xcc\x2a\x9d\x1a\xd7\x99\x4c\xa5\x07\x3f\x51\xc2\x35\xe3\xb3\xa4\xbe\x4a\x21\xeb\xf6\x72\xff\x71\x0c\x7b\x0a\x9a\x8f\x90\xaf\xce\xac\xdd\x99\xd6\x3b\xa5\xbc\x73\x19\x74\x82\xf3\x65\x9e\x11\x1a\x3b\xba\x14\x8e\x5e\x29\x7f\xa3\xd2\x6b\xbf\x4e\x0a\x4f\x4d\xce\xec\x82\x88\x10\x94\x2c\xd4\xa0\x13\x84\x3b\x97\x6a\xe7\x02\xef\xd2\x48\xa4\xa8\x3d\xea\x6d\xe5\x3c\x92\xec\x24\xe1\xa7\x33\xbd\x76\x50\x7e\x57\xc8\x75\x8f\x51\xd4\x4c\x51\x70\x9d\x24\x3d\x2a\xfd\xbe\xb0\xa8\x2a\x7c\xad\x1c\x2e\x46\x98\x53\xb9\x57\x72\x72\xfa\x6b\xfa\xc6\x2c\x44\xa4\x2f\x72\x90\x16\xe1\xce\x02\x76\xfb\x5b\xff\x71\x96\xd1\xe6\xcc\x5a\xd2\xfb\x2b\x04\xb6\xdb\xe9\xb5\xb6\xbb\xb3\xa2\x67\x99\xa6\xca\xad\xb6\x8a\x6a\xc9\xa2\xcc\xbf\x46\x63\x96\x8a\x3f\xab\xdd\x9d\x25\x72\x0a\x46\x21\xcc\xf6\x32\x3f\x08\x61\xec\xd3\xc8\xac\xaf\x9a\x58\xe9\x01\x12\x96\xbc\x87\x0b\xa9\x57\x0a\x10\x63\x12\xa7\xc0\x7b\x56\xfa\x53\x54\x2a\x97\xa7\x2a\xcd\xe9\x68\x37\x17\x25\x80\x08\x1b\xed\x30\x9b\x98\xfd\x1f\xc5\xe4\x6f\xdd\x89\x5e\x7f\x2d\x17\xaa\x54\xcf\xad\xcf\xdb\x3a\xaf\x35\xb6\x8d\x86\x33\xa4\x53\xbf\x3a\xc7\x56\xaf\xc4\x86\x5d\xa1\xe4\xbe\xe2\x18\x6d\x88\x69\xfd\x54\xa0\xb9\xbd\x03\xa7\xa9\x33\x62\x75\xa7\x44\x87\x1d\xd6\x0b\x94\xa1\x12\xfc\x98\xe8\xba\x7d\xdd\x4f\x7d\xcb\xae\xe0\x0c\xc9\xe7\xd6\xad\x13\xa3\x3b\x2b\x7a\x25\x36\x53\x2e\x85\x7b\xbe\x76\xf4\x9b\x6c\x5c\xcf\x4e\xd7\xee\xb1\x5a\xa4\xf7\xf7\x5b\x00\x04\xcc\x30\xf7\x54\x22\x53\xdd\x33\x04\xc4\x0b\xeb\x11\x62\x65\xa7\x0f\xd6\x58\xee\xad\x31\xca\x05\xd6\x2a\x74\xfe\x6a\x97\x64\xc2\x64\x22\xe0\x6f\x0c\x62\x97\x04\x8c\x77\xcd\x59\x56\xa8\x37\xdc\xb2\xad\xcc\x9c\x6f\xac\xde\x56\x84\x86\xf3\xee\xc7\xb5\x2b\xf8\x6c\x08\x87\x1a\x76\xf7\x10\xd4\x32\x24\x65\xc1\x80\x7b\xf4\xa0\xce\xd8\x32\x04\x0a\x1c\x2f\xa3\x05\x70\x84\x01\xce\x60\xd8\xdd\x83\x4d\x79\x40\x17\x19\xa3\xd2\xb0\x19\x32\xed\xee\x41\xd4\x1d\x38\xfb\x60\x94\x1a\x9c\x32\x03\x64\xc3\x10\xcc\xcd\xc1\xf4\xa8\x3b\xaf\xf6\xfa\x75\xeb\xe7\xea\x21\x63\xdb\x90\x32\x31\xc2\xaf\x44\x05\x7f\xf8\x3a\x21\x5f\xa3\x42\xa6\x04\x64\x28\xc7\x32\x54\xe8\x18\x0a\x9c\x0c\x05\x5d\x46\x85\x2c\x28\x76\x32\x94\x2d\x19\xca\x8d\x8c\x51\xe8\x78\x64\x83\x51\x69\x81\x4c\x4a\x2a\x7a\x0c\x55\x3c\x86\xba\x1b\x43\x25\x8e\xa1\x12\xc7\x18\x65\x1a\xb1\xaf\xd5\xce\x18\x2a\x8e\x8d\x51\x38\x77\x73\x0a\x34\xac\x24\x43\xe1\xd7\x42\x5e\xc6\x12\x7e\xc0\xa8\xbc\xa7\x77\x96\xc1\x75\x56\x3d\x5b\xa1\x7b\x7c\x21\x43\x72\xcb\xf8\x06\x2c\x7a\x3f\x38\x8f\xa7\x5f\xb8\x16\x38\x5e\xc9\xae\x85\x06\x55\x68\x59\xfa\x80\x53\x8f\x5d\x41\x5d\x15\x62\x9e\xf5\x6c\xb5\x0b\x9a\x11\xe4\xb1\x7d\xbb\x30\xfa\xb1\xbf\xc1\x34\x75\xed\x3d\x95\x2a\x60\xbe\x18\x75\x06\xce\x3e\x70\xf0\x61\x7f\xad\x7d\x2b\x18\x91\xc9\x61\x54\xb8\x5e\xa5\x7e\xb9\xb3\x0c\x87\x29\x4d\xc2\x68\x70\x8e\x0f\xdc\x9c\x41\x7d\x0c\x6e\xd9\x01\x8c\x67\x9c\x0a\x70\x3c\x85\x74\xc6\x24\x7c\xab\x85\x4b\xda\x6a\xb4\x97\x47\x19\xb6\x2b\x15\x8a\x19\x75\x90\x69\x95\x7c\x1c\xe3\x16\xea\x22\xc3\x55\xab\xa7\x04\xb2\x50\x6a\x03\x34\x51\xb4\x5d\xc9\x03\x5a\x66\x99\xd9\x0e\x44\xc2\xeb\x7a\x51\x9e\x24\xae\xc0\xa8\x11\x68\x11\xad\x8c\xe8\x57\x7b\x68\x4f\x77\x6a\x11\x50\x1e\x42\x4d\x42\x50\x5d\x08\x83\x8b\x31\xa0\x98\x31\xe6\xf1\x7e\x05\x34\xb4\x60\xb6\x0c\xfb\x25\x46\x85\xb2\x31\xfb\x05\xe7\xbe\x70\xcc\xf0\x8d\xc1\xa8\x1c\xa3\xd0\x72\xfc\xae\xf5\x1f\xb8\x58\x50\x67\xa3\x8c\x16\xe4\xe4\xb0\x0b\x42\x70\x64\xc4\xa9\x04\x42\x2d\x97\x89\xbd\x70\x21\x2b\x0d\xac\xbb\xf6\x75\x29\x98\x49\xe8\x4b\xf0\x8d\x45\x96\xc9\x93\xe7\xe9\x9b\xba\xc6\xb8\xf8\xc5\x22\xbc\x15\x50\x21\xf5\xa2\x15\x78\x47\x05\x06\x14\xe5\x02\xaa\x20\xfe\x5e\xd8\x6d\xca\x35\x83\xe3\x61\x14\x8f\x59\xde\xac\xa8\x90\xf1\x4a\x0d\x72\xbd\x2a\xc8\xc4\xfd\xe6\xc8\x7e\x09\xa6\xb2\x0a\xcd\x8c\x4a\x63\xab\x00\x6b\xfc\x2e\x70\xb4\x58\xc6\x7f\x55\x28\x73\x05\x81\x14\x00\x50\xdd\xe9\xcd\x12\x77\x5b\xcd\x32\xc0\x8e\x58\xe6\x62\x7d\xb1\x8f\x98\x7b\xad\x73\xc1\x7c\x21\x50\x32\x76\x5d\x9b\xd3\xc2\xc8\x03\x52\x10\x4c\xc5\x81\x8b\x85\x3d\x55\xee\x8e\xa8\xf4\x15\xa6\xb8\x60\x24\x88\x2d\x4d\x51\xb2\x71\xd8\x53\x21\xb4\x3a\xec\x9a\x38\xfa\x49\x5e\x0d\x46\xd0\x90\xcc\x19\x15\x86\x55\x81\xad\xa4\xe2\xb0\xbf\x2a\x00\x20\xb8\xbf\x02\x9f\x0a\x61\x76\x71\xea\xcd\x52\x46\xcb\x7c\x7b\xf5\x1f\x64\x57\x08\x60\x88\x32\xed\x5c\x6b\x49\x18\x7a\x5c\xa3\x8d\x73\x45\xed\x20\x90\x34\xc1\x95\x11\x64\xaa\xb8\x05\x24\x21\x51\x01\xe7\xca\x56\xe9\xe5\xe0\x0c\xe8\xa1\x29\x0c\x26\x5b\x41\xd5\x54\x08\x1d\x13\x63\x63\x7a\x6f\x12\x23\x05\x8b\x67\x39\xa3\x00\x79\xa4\x74\xf7\x24\xb5\x26\x67\x5d\xf6\xc2\x8f\xfa\xba\x20\xb4\x30\x9c\xd8\x8f\x89\x7f\x65\x05\x77\xe1\x68\xe5\x54\x4c\x1c\x2d\x85\x4a\x67\x3f\x50\x0e\xa3\x30\xac\x18\x35\xa1\xe3\x49\x9f\x4b\x68\xa4\x49\xe6\x4c\x7c\x2a\xf1\xa9\x64\xc8\xc9\x51\xf7\x03\x21\x63\x14\x49\xdc\x2a\xed\xd3\x64\xa4\xcf\x51\xe9\x6a\xdc\x17\xf8\x54\x32\x03\xa7\x9d\x9b\xa4\xd3\xb4\x97\xb3\xb0\x5c\xed\xe5\x0c\x20\x44\xf4\xd6\xcc\x4a\x6e\xfc\x86\xf1\x70\xcd\x55\x88\xa1\xef\xad\x60\xfa\xc2\xb2\x8c\xc2\xa3\x3c\x05\x66\xe4\xaf\x7e\x3d\x4a\x7f\xe7\x03\xb6\xaf\xb3\x8c\x7c\x59\x49\x7d\xad\x7e\xa5\xfc\xd0\xae\x8d\x52\x41\x54\xe0\x7d\x59\x61\x8e\xf4\xe2\x04\x8f\x92\x09\x20\x29\x0b\x9e\x06\x74\x05\xed\x35\xb3\xc2\x55\x2b\xb1\xbf\xcc\xea\x95\xa4\x77\x0b\xb4\x0b\x2a\xa5\x04\x48\x7b\x36\x67\xe1\x54\xae\xa2\xd5\xc2\xe4\xe3\x9d\x95\x60\x6c\xff\x26\x49\x32\x2b\x19\xb5\x1c\xaa\x76\x74\x0a\xf0\x4d\x20\x32\x89\x7b\xa6\x90\xcd\xe4\xa8\xc9\x8a\x3f\x98\x66\x8a\x16\x9c\xa4\xd6\x5c\x7e\x85\xe6\x9b\x4b\x3a\x10\xe4\xb1\x24\x03\x27\x39\x39\xcb\xec\x5d\xae\x4b\x89\x28\x49\xbe\x4d\x5c\x3b\x85\xb4\x26\x1c\xc3\xac\x24\x79\x00\x07\x49\x53\x4e\x26\xff\x2c\x67\x72\xe1\x30\x02\xfc\xca\x5d\x06\x2d\x2e\x88\x0a\xa7\x96\xc2\x94\x78\x71\xe2\xda\x09\x76\x21\x59\x24\x12\x27\xcd\x2d\xf9\x07\x47\xce\x59\x69\xd2\xf5\x8b\xbb\x82\x3d\xfc\xd5\x98\x80\x1a\x49\x32\x6d\x1e\x80\x0e\x82\xfe\xf3\x8c\x6a\xa9\x6b\x6f\xd6\x07\xa7\x47\x16\xcc\x90\xe8\x81\x3c\xd5\xff\xd4\xf2\x4d\x26\xf7\x2c\xf3\x27\x2e\x9c\x42\x1c\x93\x76\x9c\x64\x5d\x40\x1e\xaf\x5d\x8b\x91\x91\xce\x97\xa4\xe8\xac\x70\xca\x0a\x83\xbc\x65\xda\xd4\x87\x3b\xea\x5a\xcf\xad\x37\xe7\x1e\xd8\xa9\xd7\x82\xea\x89\x84\x9f\xc4\xa3\xb3\xc2\x5d\x2a\x81\x41\xc2\x7f\x3a\x8b\xf2\x0a\x24\xc3\xcd\xd3\x19\x95\xf0\x7c\xd3\xd9\x95\xa0\x0d\x26\xfd\x7a\xd2\xac\x39\xab\x1f\x05\x03\x24\xa5\xb9\x3d\xa9\x66\x72\xd0\xcd\x56\xd8\xa6\x21\xe4\xfa\xed\xca\x29\xb8\xb9\x30\x58\x27\xe8\x96\xd9\xb8\x3e\x04\x67\x4e\xae\xdd\x09\xe9\x6e\xd2\xbb\xa7\x54\xe1\x59\xe0\x14\x4d\x32\x2a\xad\x1c\x32\xe3\x98\xa4\xf7\x49\x1f\x9f\x95\x74\x27\xfd\x75\xd2\xd3\x67\xaf\xb4\x34\xbf\xdb\x2b\xad\x57\x4f\x38\x36\x27\x83\xf7\x24\x5d\x4c\xe0\x68\xb3\x4f\xc1\x0e\x92\xb5\x9c\x6c\x93\xab\x76\x0a\x37\x98\xbd\x90\x46\x6f\x25\xca\x16\xe5\x36\x19\x05\x75\x57\x81\xa9\x45\xb5\x78\xb3\xf3\x6a\xd2\xdc\xe7\xf0\x8b\x82\x63\x55\xc8\x1c\xb3\x42\x00\x68\xdc\xb3\x42\x2d\xb8\xf4\xe7\xa9\xf7\x17\x42\x65\x41\xd5\xd4\xef\x0a\x8d\x73\x4e\xce\x8a\x98\x19\xdf\xa7\x84\xcf\xcd\x4a\x04\x2d\x5a\xc8\xd7\x95\x64\xae\x45\xd8\x1e\xd9\x5e\x39\xcb\x01\xdb\x77\xcc\x72\x2c\x43\xe9\xad\x38\x9e\x29\x74\x76\x66\x41\x5d\x9c\x4a\x46\xe2\x9e\xea\x15\x6a\xe8\xfa\x9b\x1e\x5c\x54\xba\xa3\xef\x22\x7b\xcc\xac\x70\xac\xb7\xba\xa6\x93\x6a\x0a\x3d\x98\xa4\x91\x32\x5a\x4f\x67\xd7\xa4\x6b\xcf\x59\x29\x3a\xbe\xae\xf0\x76\xd7\x17\x8a\x0b\xd5\xc3\x4a\x6e\xa4\x3b\x4f\x69\xe4\x93\xf5\x69\xd2\xbe\x67\x85\x90\x54\x22\x22\xcd\x7a\x4a\x56\x99\xec\x6c\x73\x59\x57\xa7\x02\x6a\xf4\x6a\x0b\x6d\x70\x02\x4c\x52\xc4\xe4\x36\x9c\xbb\x02\xbe\x7b\xd1\xc6\x1d\xe7\xce\x0a\xc1\xf5\xbd\x95\xf0\x43\x4a\x9f\x6c\x68\x13\x88\x55\xd4\x2c\xd0\xa3\xe7\xa9\x55\x21\x0c\xd5\x99\x30\x49\x1a\xd3\x2e\x9e\xce\x84\x09\x14\x69\x92\x34\x26\x27\xfc\x14\x14\x3e\x9d\x3c\x93\x7c\x3e\x9d\x03\x53\xc0\xc5\x74\x3e\x4c\x3a\xf2\x94\xf6\x30\x0b\xc6\xc8\x79\x35\xef\x17\xc0\x48\x28\x8d\x80\xf8\xda\x7d\xb7\xe2\xa2\xfc\x0a\x79\x7e\x3a\x13\xe6\x2d\x50\xaa\x59\xc1\x96\x95\xb4\xe9\xda\xbe\xb3\xeb\x67\xc5\xab\x39\x5d\xc1\x6d\x0e\x69\x18\x43\xec\xda\x00\xb1\x31\x44\x56\x3d\xca\x79\x95\xd5\x52\xe9\x58\x92\xf3\x2b\xbc\xbc\x62\xa4\x84\x0f\x80\x09\x5b\x64\x92\xd5\x0a\xd3\x5c\x32\x0c\x6d\x7a\xf5\x02\x60\xfa\x06\x94\x4a\x3b\x97\xc2\x67\x57\x2e\x12\xc8\xaa\x54\x28\x92\xc6\xaa\x40\x86\xc2\x29\xee\x95\x12\x23\x81\x67\x7c\x43\x01\xb9\x8c\x7a\x5d\x57\xbb\x7b\xc0\x4c\x90\x52\xd6\xa8\x24\xd5\x14\x50\x33\xab\x45\x5a\x8e\xc0\xc5\x51\x30\x70\x02\x2b\xa2\xde\xa9\xcf\xe0\x12\x96\x24\x87\x65\x8f\x2f\xfb\x74\x91\x55\x56\x14\x34\x80\x00\x25\x5a\xf3\x12\x36\xb5\xc8\x1b\xab\x20\x45\xa2\xd2\x3f\x0a\x62\x40\x60\xa1\xdd\xba\x20\xed\x2e\xf2\xc6\xb2\x37\x17\x07\xaf\xf2\xc7\x63\xb1\x92\x2d\x4e\xa4\xc5\x4a\xb6\x0a\xef\xdb\x5e\x5e\x76\xae\x62\xf6\x63\xd9\xa7\x2b\xcb\x3d\x3b\x2b\xbc\xbf\xa8\xb4\xe1\x56\xc1\xf3\xdc\x80\x05\x67\x29\x58\x46\xb0\xe8\x22\x63\x2c\x7b\x7c\x95\x5b\x52\xca\xf7\xaa\x50\xf0\xb2\xa2\xaf\xfa\xab\x71\xe3\xd0\x5b\x6c\xec\x6b\x7d\xef\x91\x4c\x6b\x34\xec\xeb\x45\xfb\x5e\x5f\xa8\x11\xdf\x55\x61\x6b\xb3\x7e\x71\xd5\x9d\xd0\x7b\x6f\x61\xe3\xba\xb3\xee\x5f\x05\x69\x54\x30\x82\x7e\xdd\x53\xb4\xf2\x55\x80\x11\xcb\xd7\xd1\xe8\x17\x3d\x62\x91\x07\x16\x4d\x61\x09\xfb\x5f\xbb\xee\xb9\x05\xe3\x25\x81\xc4\x3a\xdc\x05\x1b\xf4\xe4\xa5\xcd\x06\xb2\x4e\xb9\x61\xb3\xae\x81\xf5\x54\xfa\x4d\xfd\x55\x48\x91\xd3\x63\xb1\x15\xac\x53\x00\x52\xe6\x9d\x05\x6c\xd1\xca\x25\xa8\x3f\x5a\x2d\x15\x72\xa2\xcf\xc6\x93\x9d\x4d\x50\xc9\xbb\x16\xae\x1c\x95\xe4\xe3\xfe\xfa\x45\xbb\xec\xf8\x0a\x76\xf2\xc5\x1a\x5f\x90\x19\x4b\x5a\x29\xc4\xfc\x47\x85\x0c\x18\xdb\x02\x32\xbb\xdf\x50\x14\xa9\xf8\xc6\x4d\x2a\xc1\x62\x2b\xdb\xff\xf0\xa8\x6c\x7d\x68\x87\xbb\xd5\xa3\xa6\xab\x30\x4e\x29\x22\x15\xdf\xb6\x2a\xba\xc8\x71\xb2\x08\x02\xb0\x5c\xc6\xaa\x6c\xe2\xf2\x5b\xdf\xc2\x7a\x12\xd7\xdf\x2a\x76\x81\x77\x9f\x01\x60\xb7\xba\xb3\x3c\xa3\xef\xb0\xd9\xad\x14\x4d\x00\xf5\xd8\x3e\x08\xe8\xb1\x99\xe1\x77\x2b\xa4\xb5\x2c\x4c\x89\x82\x94\xaf\x16\xcf\x16\xd8\x35\x3f\xbd\xc3\x66\xf3\xaf\xef\x82\xc2\xc5\xd8\xb7\x78\xc1\x4d\x65\xd9\x59\x7f\x75\xbf\xc3\x06\xa6\xe8\xd8\xf2\x95\x94\x24\x78\xf7\x0b\x5e\x85\x15\xd3\x67\x5d\xcb\xae\xcd\xca\x50\x7b\x5f\x14\xf5\x06\x5f\xc4\xf7\x2c\x73\xff\xdd\x03\x8d\x76\x16\x32\x0c\x68\x5e\x6f\x70\xe4\xec\xca\xd4\x23\x2c\x6c\xa2\xc1\x1e\xdf\xcc\x44\x3d\x31\x1a\xcc\x75\x5b\x2c\xd1\x76\x90\xec\x01\x68\x9d\xf3\x70\x57\x66\xa5\xa8\xb2\xc4\xc6\x37\x15\x67\x53\x68\xb6\xc3\x06\x42\xce\x5b\xc2\x16\x72\x2b\x3c\x4f\x14\xf2\xaa\x63\x66\xc3\x14\xdd\x51\xdf\xe2\x77\x19\x2d\xb6\x28\xae\x74\x74\xed\xa8\xfc\x47\x91\xda\x09\x8b\x72\x57\x9c\xe2\xa8\x18\x11\x68\x48\xdf\x3c\x9b\xba\xbe\xa2\xb0\x0b\x1c\xde\x3d\x7e\x8b\x72\xb3\x89\x0f\x9b\x98\xb0\x61\x27\x6e\x47\xfb\xae\x8c\x01\x31\xa9\xbb\xd0\x12\x66\xa1\x6f\xf5\x8a\x8d\x63\xc0\x93\xbf\x26\x6a\x61\x33\xc9\x6f\x99\x86\x9b\x8a\xb3\x0b\x8e\x1e\x1e\xd1\x16\x43\xb3\xc5\xa1\x6e\x98\x27\x9b\x43\x6f\x43\x3e\xd9\xc4\x8d\x5d\xd1\xfa\x85\x6c\x33\x0b\x8d\x4a\x4c\xfa\xaa\xb0\xea\x42\xa6\xf2\x45\x95\x05\xc2\xbc\xb1\x57\x88\xca\x37\x6b\x70\x7e\xb6\xc3\x66\x33\xc3\xc3\x23\x1a\x9b\x2a\xb3\xd7\x17\x15\x50\x0c\x4d\xd4\xb5\x0c\xe2\x59\xc8\x9c\x95\xef\x52\xb8\x70\x15\x67\x53\xb1\x80\xee\x94\x39\xb1\xa7\xf6\x55\xc5\x02\xb4\x58\x21\x84\x85\x7d\xea\xd9\x59\xf8\x2a\x9e\x2d\x34\x2a\xf3\xcb\xec\xb7\x6b\xbb\x13\x40\x36\xf5\x65\x33\x63\xec\xf3\xcd\x1d\xae\xa7\xfc\xd5\x9e\x92\x95\x59\xaa\xc6\xae\x8c\x9c\x5b\xb1\x3b\xee\xb9\x76\xd6\xad\x68\x18\x7b\x84\x53\x6e\x3b\x6c\x36\xb3\xc7\xa9\x7c\x34\x82\xc0\xa9\x88\x07\x71\x1e\xa7\x76\xeb\xad\x48\x91\xc2\x48\x14\xd7\x22\x27\xe0\x10\xff\x0f\xa1\xfb\x30\x27\x1c\xbb\xe0\x10\xf6\x8f\x78\xe5\x43\x54\x3f\xce\x90\x63\x77\x9f\x5e\x78\x32\x43\x8c\x32\xb4\x40\x82\xfc\x81\xe4\x70\xfa\x17\xc1\xcf\xf5\x70\x1d\x9e\x52\x62\xc3\x99\x70\x18\x39\x0e\x01\xe1\x30\x10\x9e\x6f\xc4\xf3\xa9\x96\x94\xed\xeb\x5a\x38\xb7\x2c\xe9\xc3\xac\x78\x86\x5e\x31\x5d\x9c\x51\xfd\x97\x53\xc9\x30\x7f\x28\x04\x67\xd4\xaf\x88\x67\xca\xca\xe6\x3b\x32\x88\x8d\x15\x11\xfe\xd8\xad\x87\xb9\xe2\x30\x3f\x28\xf2\x32\x0e\x17\xd9\x09\x90\xf5\x85\xac\x48\xa8\x3f\x8c\x91\x47\x7e\xe5\x91\xcd\x7a\xa8\x11\x27\x0a\x91\xcc\xf7\xca\x3d\x52\x4f\x6b\x1c\x42\xc1\x61\x84\x3e\x15\x59\x95\x85\xac\x68\x94\x52\x74\x97\xf3\xf0\xd8\xa1\x87\xd9\xfe\x88\x1d\x3c\x5c\x6a\x87\x29\xe2\x64\xa1\xba\x43\x11\x9c\x85\xed\xae\x27\x04\x79\xc5\xcb\x86\x3a\x66\xe3\xc8\x56\x3e\x85\x37\xc8\x0d\x2e\xc2\x6c\xa8\x6d\xf6\x68\x61\xd2\xba\x13\x0a\x2b\x43\xc5\x59\x5f\x8c\x26\x2d\xc6\xf9\x8b\x47\x21\x9e\xd2\x3e\x3d\x04\x8a\xc3\x08\x71\x2a\x86\x6f\x29\x0b\x22\x3a\xf3\x50\x11\x8e\x3d\x5b\xc5\x59\x0e\x94\xce\x43\x7c\x80\x99\x36\x4e\x95\xcc\xb0\x37\x45\x14\xbd\x6b\xcf\x1a\x49\xe6\xff\xc3\x3c\x79\x38\x01\x0e\x27\xdb\x99\xde\xb6\xeb\xd7\x8d\x61\xa5\x33\x70\xb5\x1d\xe6\xc9\x43\x34\x3e\x15\xad\x25\x52\xff\xd8\x77\xa7\x62\x4f\x39\xca\x2a\xfa\xfc\xd8\xbf\x87\x80\x7f\xce\x37\x97\xdc\xf5\xad\xe8\x25\xd4\x4e\xb1\xc7\x0f\xfe\x7b\x28\xeb\x15\x73\x7c\x2e\xdc\x69\xfc\xee\x32\x0a\x5e\xb1\x77\x97\x7a\x7d\x9b\x7c\x1a\xbb\xef\x56\x02\x02\xfe\x78\x71\xde\x4b\x85\xbd\x95\xf3\xc7\x24\x7f\xbf\x8e\xaf\x27\xba\x5e\x38\x2d\x97\xe9\xfd\x52\x97\xe1\xbd\x8f\x8b\x57\x5e\x3b\xee\xda\x89\x57\x54\x50\x21\xe9\x5d\xa6\xc1\x8a\x31\xad\x62\x34\xb7\x90\x7e\x7b\xe5\xa8\x89\x68\x1f\xde\xcf\xa9\x75\x89\xdb\x97\x91\xfe\x32\xe1\x5f\x21\x06\x17\x67\xbc\xc4\xf0\x3b\x2a\xb3\x38\x3d\x2b\x47\x8a\x48\x7e\x65\xde\xdc\x51\x28\x49\xde\x49\x4c\x53\x9d\x6f\x28\xd4\x37\xee\x17\xd9\xd2\x68\xc0\x75\xbc\x51\x28\xbb\x62\xbf\xb8\xa7\x6e\x2c\x6f\x30\x1a\x72\xf0\xaf\xb8\xd5\x4b\xe8\xbe\x51\xf1\xa0\x95\x81\x2e\xc5\x86\x61\xef\xda\x4d\x97\xd0\x0d\xb3\x68\x5c\x3c\xee\x16\xa6\x3d\x81\xfa\x12\xb7\xaf\x14\x18\x25\x95\x87\x82\xc9\x8f\x8a\xe5\x35\x32\x10\x71\xaf\xd5\xae\x38\x72\x36\xb1\xad\xca\x23\x8f\x6b\xa7\x5c\xbb\xe9\x12\x9f\x2f\x33\xd5\x65\xb0\xbf\x85\x5c\x84\xc7\x41\x67\x1d\x97\x42\x7c\x99\xd9\x2e\x6e\x75\xad\xff\xcb\x8d\x7c\xa9\xbc\x97\x01\xfe\x1e\x08\x93\xbb\x90\x48\x2b\x86\xcf\x17\x11\xa8\x0b\xd7\xf4\x56\xee\x20\x71\xf8\x42\xd1\xaf\xe8\xb7\xcb\xb8\x7e\x95\xe1\xb8\x94\xe3\xfb\x45\x34\xad\x14\x24\xa3\x71\x2a\xfe\xd2\x5c\xe0\x3e\xb7\xd0\x11\x21\x6f\xdc\x42\x3e\x39\x85\xf3\x23\x93\x8f\xda\x7a\xed\xca\x4b\x74\xbd\x0c\xe7\x97\x81\xea\xe2\x35\x97\x20\x7c\x6f\x15\xe8\x29\x24\x58\xd8\x26\xd4\xd6\xcb\xb8\x75\xed\x8b\x8b\x1f\x5d\xbc\xe9\x92\x63\x6f\x65\x1f\xe2\x5f\x97\x74\x5a\xa8\x89\x62\x73\x47\x61\x1c\x5d\x78\xcb\xad\x7d\x15\x65\xf9\xa0\xf2\x40\xe0\x4c\xc2\x88\x08\x19\x93\x21\xec\xeb\x5d\xa3\xb3\xd2\xa3\xea\xda\x3d\xd3\x53\x62\xf4\xdb\xd6\xbe\xbd\x4d\xcc\x5c\x93\x03\x00\x49\xa6\xc9\x7c\x68\xad\xb0\x17\xaa\x94\x92\x9c\x3c\x01\x62\x4d\x6c\xb1\x82\x59\x8f\x42\x6e\x49\xed\x85\x90\x46\xd6\xea\x62\xa3\xbb\x08\xd4\x2e\xb3\xad\xc3\xd0\xee\x7a\xde\xf5\x4d\x5e\x90\xd0\xb0\x90\xbd\x17\xad\x70\xcb\xbb\xf8\x51\x28\x5b\x0d\xf6\x4b\xab\x1c\xc7\x51\xbf\x7b\x87\x6b\x4f\xdd\x42\x93\x78\x7d\x80\xcd\xde\x46\xe5\xcc\xe8\x9b\x12\x60\x4d\x7c\x79\xe5\x0e\xaa\x98\xf0\xa8\x37\x40\xa2\xa8\xfc\xda\x0a\x3c\x81\xd8\xd9\x2a\xfe\xfe\xc9\xb7\x21\x36\x34\x5a\xe5\x23\xc2\x01\x6e\x95\xa4\xa6\x62\x47\x2b\x64\xda\x80\x02\xf7\x76\x77\x08\x52\x0b\xa8\xb0\xd1\x20\x40\x36\xe8\xc7\x2d\x46\xb5\x78\x5b\x68\x89\x4a\x49\x83\xd7\x9a\x95\xa7\xbf\x61\xb7\x7a\x4a\x46\x20\x7c\xfb\x16\xe6\x4b\x3c\xb4\x3a\x08\x8f\xfa\xab\x71\x88\xca\x80\x37\x0e\x69\x4c\xa4\xaa\xb5\xc2\xd2\xcc\x5e\x99\x85\x0d\xd5\x5e\x68\x66\x7e\x57\x79\x1d\xa8\x05\xd1\xe4\x3c\xc8\xc3\x79\xb4\x30\xee\xde\xb3\xb3\xb2\xae\x8d\x80\x3c\x87\xa6\x4e\x09\xc4\xec\x80\x31\x1e\x0d\xb2\x84\x50\xb8\x68\xf0\xc7\x5a\x95\xd1\x99\xf5\x06\x6f\x9b\xb3\xb2\xb7\xd1\x7a\xca\x1a\x53\x8a\xab\x2d\xe3\xb9\xe4\xb8\x17\x86\x2d\x6c\x9f\x06\x1b\xa4\x41\x6c\x6e\xa2\x6c\xdb\x2a\xac\x45\x6f\x5b\xd6\xf6\x9a\x9e\xf2\x15\x6b\xb9\xb6\x96\xd6\x37\x8f\xc2\x3d\xa7\x72\x64\xab\x76\x03\xd4\x2c\x73\xb4\xcd\xc5\x2e\x2c\x50\x33\xb8\x2b\x9b\xd9\xb8\x41\xb7\x6e\xc7\xc8\x1f\xf3\x75\x7c\xd7\x31\x5f\x67\x17\x1a\x30\x64\x78\x98\x60\xd7\xc8\x88\xb4\x6e\xd0\x99\x9a\x1c\x71\x99\x09\xef\xda\x3d\x7e\x51\xe6\x7d\xab\x2c\x58\x58\xd6\x4d\xca\x61\xbb\xd6\xe1\xf5\x2d\xa2\xf9\x85\x8f\x45\xbb\x85\xd7\x5a\xbf\xf2\xc5\x83\x82\x5a\x59\x99\x00\x8a\xd0\xb5\x5e\xf8\xb4\xae\xa1\x02\x40\x19\x12\x32\x16\x30\x8a\x1f\xad\xcc\x01\x77\xde\xaa\x0a\x21\x9f\xbe\x43\xf5\x94\x13\xdc\xa1\xd3\x6f\xf8\x4b\xf6\x75\xef\x52\x2c\x7b\x61\x56\x78\x43\x2f\x1c\x2a\x98\x87\x5d\xee\xaf\x7d\xda\x65\x06\xf6\x2a\xf8\x55\xc8\x57\xf6\x5d\x1f\xa9\x9c\xcb\x2c\xd4\x97\x8a\x0b\x87\x68\x5a\xd9\xfc\x6a\x5b\xc8\x85\xeb\xea\xe2\x74\x39\x6f\x7d\x54\x7e\x73\x55\x27\xf1\x75\x76\x9f\x5c\xd8\x28\xdc\xa4\x1e\xb1\x3f\x59\xa5\xa3\xa0\x8d\x85\x60\xae\x47\xa1\xa2\xc1\x4b\x88\xa3\xc5\xfb\xa3\xf0\x00\x4e\x65\x23\xc0\xc6\x89\xba\x56\x08\xc9\x38\xa4\xf7\xe7\xb7\x34\x12\xec\xbe\x5b\xf1\xf7\x75\xbf\x7b\x44\xb7\xdb\x47\x5d\xbe\xdc\x37\xec\x8b\x76\xa9\x26\x4b\xc8\x30\x7e\xd4\x9d\x90\xab\x61\x7b\x76\x19\x08\xdd\x5e\x83\x6f\x1c\x1d\xc6\xac\x10\xb0\x50\xb0\x29\x3a\xfc\x52\xe8\xe5\xa1\x9a\x4c\x40\x9b\x8f\x2e\x99\xb4\xcf\x51\xd7\xfe\xea\x1b\xd5\x6e\xe8\x50\x95\x84\x8f\xbd\x6b\x6f\x28\xdc\x69\x7d\x50\xc1\xa1\xcf\xca\xd5\x36\xe6\x76\x62\x5f\xea\x2f\x2c\xa3\x21\x63\xa4\xc3\x5f\xed\x72\x27\xba\xdd\x27\xac\x2c\x64\x19\x45\x45\x6f\x77\x05\xfe\x84\x8f\x45\xaf\x92\x6a\xd2\x87\xfb\x34\xce\x85\x0d\xb0\xea\xfd\xd5\x52\x45\xd6\x8c\xe4\xaa\x3e\x1f\x31\xe5\xb2\xa5\xe5\x3a\xf6\xbd\x8a\x26\x74\x87\x42\xfd\x95\xbd\xa0\x0f\xb0\x83\xfa\x9e\x75\x8f\x20\x3b\xbf\xb8\xa1\x10\xef\xc2\x84\xf0\xa5\x5b\x7f\x6a\x0d\x43\xfd\xea\xbb\x7e\x4b\x1e\x85\x82\x62\x5d\x49\xc1\x0e\x47\xb1\xcb\x8d\x14\x20\x16\xbd\xd0\xef\x0b\x63\xea\xb4\xba\x96\x0b\x6a\x9d\x1c\xf3\xe2\x04\x80\x6e\xfa\xae\xbd\xc1\xb9\x51\xeb\xf0\xf8\x95\xf3\x4e\xe9\x6e\x8f\x2b\xe3\xf5\xae\xd5\xd3\xe9\x70\x41\xbf\xe8\xa0\xaa\x2a\xf8\xad\x4a\x3a\x96\xa3\x28\xdc\x2c\x04\x97\x45\x97\x8e\xfd\xad\x8a\x72\xab\xf0\x96\xf3\xea\x56\x66\x05\x3c\x5e\xe7\x43\xbf\x95\x09\xa0\x87\xce\x8a\x0e\xb7\x56\xd0\x59\xf4\x42\x90\xbb\x55\x3f\xa2\x10\x2c\x5b\x21\xcd\x16\x06\x72\x21\x2b\xc0\xcc\x11\xdf\x0f\x59\x61\x40\xc6\x1b\x92\xac\x47\xa1\x96\xc9\x12\x11\x7a\x16\x03\xf7\x1f\x85\xc9\xd3\x76\xa1\x8f\xc0\x06\x6c\x85\x10\xe8\xa9\x42\x09\x96\x6f\x59\xd9\x1d\xc2\x4b\x87\x44\xef\xd1\xa1\xdf\xf4\xca\x40\x83\x24\xd3\x0b\xe1\x07\x52\x7a\x2f\x9c\xb4\xe3\xce\x7a\x83\x8a\x03\x10\x84\xd4\x4f\x79\xf7\x28\x4b\xa7\xb7\xf2\xb8\x46\x3f\x9e\x9d\x75\x67\xa1\xe0\xa2\xbe\x11\xc2\xb0\x50\xb5\x18\xd0\x3b\x47\x65\x8b\x0d\x7d\x18\x85\x1f\x28\xe3\x77\x54\x46\x9c\x5f\x94\xd3\x32\x9c\x3f\x6a\x8b\x84\x70\xb6\x47\x5d\x43\x47\xc0\xe5\x07\xde\x3d\xc2\xc8\x44\x21\x01\x76\xf5\x56\xa0\x4c\x93\x10\x06\xf9\x61\x90\x19\x06\xdc\xc2\x21\x83\x68\x54\x89\x3d\x32\xc0\x88\x2c\x4c\x54\x77\xee\xca\x5a\xf4\x57\x3d\x84\xf2\x37\x64\xac\x8d\xa8\xfe\xd4\xaf\x40\x20\x80\xd8\x3f\x9c\x7b\x83\x9c\x30\xc8\x09\x23\xe4\x44\x91\x13\x46\xbe\x5d\x3f\xe0\xca\x0c\x48\x41\x23\xab\x57\x70\xf5\xa1\x60\x8d\xca\xed\x74\xc2\xa8\xd0\x16\xb0\x79\x1e\xd5\x62\x64\xf0\x71\x39\xcf\x21\xd3\xe6\xd1\x8d\xca\xbf\xf2\x2b\xab\xf2\xbe\x5a\x21\xf0\x6b\x37\x77\x50\x46\xc6\x82\x61\xe8\x3c\x19\xb8\xfc\x80\x19\x33\x56\x21\xf6\x57\xb5\x1d\x55\xd6\x16\x5c\x8d\xa5\x27\xb8\xfc\x58\x66\x0a\xce\xf6\xa8\x9c\xe7\xa5\x3f\x6a\x0f\x0d\x27\xcc\xa8\x9a\x29\x0a\xd4\xce\x6a\x77\xe6\x8c\xdd\x2b\x67\x0c\xfe\x79\x65\xb6\xa8\x70\xb1\xad\x4f\xa5\x42\x85\xcb\xc5\xd8\xb3\xf2\x5e\x94\x6a\xd5\xdb\x6d\x3d\xa8\x2b\x24\x38\x2e\x04\xc4\xc5\xd8\xc6\x61\x1b\x07\x38\x37\xe3\xe9\x20\x21\xac\x38\x46\x55\x90\x91\x91\x35\x4e\xe5\x28\x42\x20\x87\xc9\x51\x98\x31\x43\x2d\x24\x18\x8c\x8f\x6a\xd9\x85\xeb\xa5\xe5\xd4\x75\x21\xe5\xfa\xeb\xa9\x6c\x1c\x7f\xad\xc2\xb5\xc6\xfc\xb6\x42\xe0\x00\xe9\x60\xed\x39\x79\xe0\xb8\xc4\x37\x5c\xae\xde\x03\xe9\x1d\xa2\x7e\x0c\x15\x6a\xe0\xea\x3f\x5a\x18\x71\xe9\x5a\xcd\x97\x53\x19\xad\xf0\x57\x64\x71\xcb\x36\x8c\xc2\xc2\x95\x91\xae\x9e\x7b\x08\xa3\x0b\x15\xdb\xe3\xe0\x65\x42\xe4\x22\x9c\x15\xa1\x3a\x9d\x4c\xa4\x08\xd2\x8b\xca\xef\x8f\x02\x1f\xa8\x9a\x1a\x05\x47\x00\xc7\xc8\xc9\xf0\x58\x14\x0a\x14\x62\x16\x75\xff\x29\xc8\x02\x18\xb9\x47\x8e\x34\x0c\xe1\x2f\x5e\x40\xe5\x02\xc1\x38\x19\xb0\x22\x47\x2b\xcc\x18\x78\x8f\x2a\x95\xd8\x3b\xe1\x94\x88\x51\xb8\xa6\xf0\x0b\x9c\x09\x82\xf5\x42\xc9\xd1\x80\x5d\xff\x68\xfd\xd5\x1b\x14\xba\x1d\x95\x8d\xa6\x1a\x85\x0c\xfc\x18\x85\x27\x59\xf8\x34\xe0\x14\x48\x38\x51\xc5\x82\xc7\xd1\xae\x9f\x4e\x8f\x18\xd5\xc3\x5b\x38\xa5\x03\xa6\x48\x21\x8b\x14\x3a\x8b\x76\xce\x5b\x72\x4e\x54\xf1\x47\x12\x4e\x40\x6a\x0d\x99\xea\x11\x95\x6b\x77\xea\xda\x5f\x8d\x0f\x44\x62\x41\x7f\xef\x9d\xae\x0b\xf7\x45\xa9\x53\xa7\x41\x38\x01\x42\x8d\xb3\x48\xf7\x64\xa1\x35\x9a\x41\x59\xbe\xaa\xe6\x45\xd0\x0b\xaa\x32\x57\x90\x5e\xe0\xdb\x87\x40\xbf\x47\x43\xb6\xb0\xaa\x52\xa7\xae\x2b\x7f\xb8\xfb\xab\x6b\xdf\x48\x86\x01\x5e\xf1\xae\x55\x95\xaa\xaa\x61\xc7\x3d\x66\x73\x56\xe9\x49\xfd\xa7\x2f\xc4\xaa\xfb\xf5\xdf\x79\x12\xab\xfa\x53\xbf\xb5\xab\xa6\x55\x15\xce\xd6\x07\x63\xe5\x64\x88\xed\x1b\x0b\x2f\x67\x55\x89\xdb\x7a\xb3\x75\x02\x2b\x2f\xd6\xf7\x3a\x3d\xeb\x29\x65\x4f\x69\x19\xb2\x3a\x43\x39\xc4\x10\x24\xf8\xde\xf9\xee\x54\x43\x21\x48\x11\xa1\x26\x8e\x00\xc0\x10\xe2\x17\x01\xbf\x2e\xe8\x17\x70\xe3\x03\x8a\xe6\xfb\xab\x6b\xb3\xb0\xeb\xb7\xf4\x81\x64\x12\xc7\x2c\x90\x40\xc2\x19\x15\x07\xa8\x88\xda\x5e\x41\x86\x09\x7b\x5c\x00\x60\x04\x39\x24\xd5\x40\x8c\x5b\xf8\xa8\x85\x4c\xe8\xfd\xb7\xb2\x6d\x8d\xbc\x73\x20\x4e\xe5\xbb\xda\x53\x74\x9c\x80\xd9\x03\xb7\xf9\xfd\x56\x65\xe7\x7a\xb3\xd1\x83\x76\x1e\xa4\x8b\xa0\xa7\x64\x9d\x00\xce\x8d\xb8\x95\xa3\xa8\x8e\x98\xc2\xa0\x0e\x92\x20\x7a\x24\xa1\x23\xae\x24\x53\xf0\x84\x29\x19\x33\xa5\xfe\xa5\x03\x23\x29\x2e\xa9\x1c\x50\xb6\x7a\xd9\x2a\xea\xa3\xc1\x19\xf6\xee\x13\x3d\xcb\xb4\x00\xb0\xfc\xb5\x4b\x5f\x2d\x78\x0d\x20\x50\x14\x9a\x24\x02\xe4\xa8\xa7\x8e\x37\x5c\xed\xa7\xda\xdd\x3f\xbd\x4d\xba\x34\xc5\x45\x84\xdf\xbb\xc7\xb5\x24\x71\xa0\x63\x49\x30\xc9\x2a\x6c\x38\x94\x9e\xa8\x94\xff\x51\x10\xe0\x7e\x91\xa2\x93\x44\x89\x54\x44\x28\xc7\x06\x39\xec\x2b\x46\x39\xaf\xc0\x9e\xd8\xdc\x6a\xf6\xbe\x9e\x7b\xe7\x2d\x28\x5f\x79\x44\xe1\x1a\x40\xac\xa2\x2e\xa2\xfa\x22\xe3\x5b\x6f\xd9\xb3\xa7\x4a\xe7\xbd\x5f\xe1\x7d\x17\xdb\x17\x22\xf9\x42\x91\x84\x10\xa5\xf7\x68\xaa\x48\xec\xda\x48\x66\x95\x6d\x31\xce\xb6\x60\xda\x94\x22\xf9\x02\x28\x60\xe4\xa9\xf7\x6c\x80\x44\xbd\xea\xee\xa2\x40\x94\x55\x48\x4e\xb0\x5f\x39\xab\x06\xaf\xf7\x57\x51\x9a\x59\xf0\xa2\x05\xed\x29\x33\x0a\x7c\x9b\xea\xc4\xef\x1e\x4f\x55\xdd\xe3\x5d\xed\xf5\xec\xbb\x53\x89\x8f\xac\xba\xbe\xc4\x04\x11\x7e\x21\xda\x2f\xc4\x05\x46\x3a\x12\x14\x6f\x7c\xd4\x3d\x7a\x0e\xd6\x2a\x15\xbd\x11\xc3\x17\xb9\xbe\x75\x9b\x0b\x0e\xd3\x3d\xe6\x8e\xa0\x91\x0b\xe0\x03\x51\x22\x41\x68\x8b\xd2\x8b\xdc\x7e\xd1\xb1\xa1\xf8\x58\x24\xb5\x23\xa1\x19\xa5\xad\x9c\xd2\xd8\x99\xfc\x43\xb4\x5f\x88\xdb\x0b\x65\x6a\xdf\x75\xd1\xe3\xa9\xd7\x07\x1b\x3d\x55\x68\x4f\xd5\x95\x93\x50\x90\x00\x59\x53\x31\xbd\xac\x7a\xf5\x60\x52\x92\x92\x91\x40\x4b\x14\xe2\x08\x71\x7e\x8f\xfa\xab\x92\x83\x0a\xa0\x89\xea\x8b\x3c\x75\xa7\xf1\x04\x01\x91\xd4\x11\x51\x7a\x8f\x0e\x0e\xb4\xa3\xec\x80\x4a\xcb\x56\x5a\x81\xf0\x10\x13\x44\xe0\x85\x94\xf0\x28\x50\xe4\xfc\x22\x42\x49\xb6\xb5\xd1\xc1\x65\xbc\x16\xc0\xf0\xd6\xd8\x5d\xee\xbf\x05\x66\x7c\x3d\xeb\x57\xec\xac\x82\x67\xbe\x05\xe8\xee\xbb\x2a\xe5\x1f\x98\xc3\x64\xda\x9c\x14\x11\xd1\x78\x21\x3e\x2f\x44\xdd\xc5\x24\x56\x80\x41\x7d\xd7\x05\xb2\xde\xa4\xcc\xbb\x9e\x28\x70\x43\x50\xa3\x62\xf2\x62\x52\x2f\x44\xcb\xc5\x2c\xe0\x7c\x66\x4b\x30\xea\x21\xde\xee\xfd\xf5\xbd\x9f\x88\x31\x19\x2f\x41\x92\x3f\x7a\xb4\xa3\xf2\x63\x01\x2f\x8a\xb7\x8b\xe9\x04\x98\x4a\xa9\x4c\xaa\xc9\xac\x44\x7e\x67\xc5\x24\x80\xcc\x5e\xbf\x7e\x15\x04\x68\x05\x6e\xe0\xba\xab\xdd\xdd\xab\xb2\xb4\x32\xc1\xbe\x94\x58\x21\x0e\x2f\x0a\xda\x6c\x12\x28\xe6\xb7\xd6\xb7\x6f\x74\x9e\x4c\x26\x93\xc9\x7c\x32\x0b\x7a\x02\x04\x3b\x88\xb7\x10\xb1\xf7\xb8\x2c\xa8\xc7\x02\xb5\xf0\x5d\x54\x8a\x49\x70\x98\x51\xe0\xee\xb3\x4a\xe9\x6e\x85\x16\x0b\xec\x56\x79\x01\xef\x49\x3d\x04\x7b\x32\x29\x04\x93\x80\x30\xf3\x9b\x7c\x0d\x30\xf8\x5b\x22\x12\xd5\x37\x46\x8e\x99\x05\x41\x4d\xdc\x56\xc6\x6d\x3a\x7f\x66\xd6\x9b\x15\x76\xc8\x82\x9e\x28\x40\x00\xe3\x30\x8d\x03\x08\xdb\x39\xc1\x35\x38\x2b\xc4\xde\xc5\xc4\xcc\xa7\x02\x17\xd3\x89\x31\x19\x30\x40\xab\x86\x98\xbc\x77\x27\xa0\x7d\x5f\x3a\x8d\x1e\x15\x64\x32\x72\x4c\x06\x92\xe9\x84\x11\xa5\xf7\x68\x43\x95\xb8\xac\x72\xbe\x92\xe5\x4f\x15\xbd\xd4\x93\x55\xd7\xfa\xc3\x24\x39\x9d\x1b\x93\x50\x30\x99\x1b\x67\x55\x83\x5f\x46\xd2\xd9\x32\xa9\x23\x93\xf8\x30\x57\xfd\x3a\xb8\x2a\x26\x90\x49\xf4\x98\xdb\xaf\x53\x44\x26\x50\xd8\x49\xf9\x98\xdb\x78\x16\x10\xb5\xf3\x64\x32\x66\x4c\x4a\xc9\x64\xaa\x14\x1d\x18\xd3\xfe\x9d\x55\x29\x9d\x21\x61\x5e\x5f\xc1\x78\x30\x0b\xb7\x4c\x59\xea\xc9\x60\x30\xa1\x91\x4d\x66\x83\x69\xb7\x8a\xa2\x7b\x74\xa3\xde\x63\x25\x2b\x38\x33\x0b\x1e\xe4\x16\xe4\xa5\xf5\x26\x0f\x64\x32\xfc\xaf\x02\x59\xc7\xea\x81\x43\xbf\x6b\x89\xfc\xbd\xae\x15\x1f\x18\x4a\x39\x65\x81\x14\xb9\x5f\xd9\x1f\x65\x43\x56\xab\x5a\xf7\x85\x7c\x76\xdd\x73\x0b\x76\xbd\xa1\x75\xbd\xd0\x77\x8f\xb2\xba\xcb\x2e\x5e\x4f\x06\xc8\x46\xcd\x15\x87\x17\x4a\x78\xbd\x6b\xf7\xf7\x2a\xf7\x74\xc1\xc0\x4f\xd4\xb5\x37\x10\xea\x45\xce\xc5\xb2\x83\x80\x53\x3d\xfa\xde\x66\x07\x2d\xdc\x79\x45\x01\xa4\xea\x0f\x1e\xbd\x18\x23\x45\xcb\x3d\xda\xb5\x6b\x61\x26\x04\xd9\x59\x65\x76\xc0\xde\xc7\x62\x5c\x2f\xf8\xb2\x15\xf5\x7e\x23\x40\x35\x5f\xcc\xf3\x2b\xf5\xd0\xfe\x5a\x14\x71\xb5\xb4\x63\x95\xe9\x51\x81\xc1\x95\x55\x34\x09\x9c\x57\x82\x4b\x07\x5f\xb3\xec\xc7\x2a\x6d\xb7\x38\x01\x14\xa4\x7a\x77\xbe\x11\x4e\x10\x3a\x05\x3a\xae\x60\x29\x08\xda\x00\x7f\x19\x4a\x4f\x3f\xea\x29\x23\x4f\x84\x5f\x0c\x87\x8b\x18\xbe\x48\x05\x22\xf0\x02\x4c\xd3\x93\x80\x15\xc8\xd2\x87\x59\x40\xbf\xb3\x0a\xfc\xbe\xa7\x88\xf3\x4b\xd9\x04\x71\x75\x8f\x7a\x16\xe4\x33\xc1\x5c\x04\xde\xa3\xde\xa3\x27\xf6\xe3\xaa\xd2\x7c\x55\x80\x8b\xa1\x11\x2c\x74\xac\x15\xd5\xe2\xce\x02\x1c\x53\x30\xcd\x6e\x5d\x0b\xac\x59\x81\xeb\xe3\xe3\xa2\xeb\x42\x1c\x5e\x2c\x40\x8d\x22\xf0\x1e\x75\xe7\x29\x90\xe3\xae\xc5\x2f\x56\x79\xdb\x0b\x42\xd4\xf7\x52\x11\x94\x8f\x0f\x85\xbb\x63\x15\x34\x32\x13\xe3\x22\xda\x8b\xc6\x0b\xb1\x7a\xa1\x24\x69\x88\xa8\x0b\xb1\x71\x01\xbc\x2b\x0a\xe2\xbd\x40\x7e\x45\xb3\xc5\x22\x9e\xaf\xb3\xea\xda\x9d\xb3\x80\xcc\xbd\xa1\xa0\x97\x6f\x41\xf1\xa2\x05\xdd\xa6\x87\xf8\xf8\xb2\xdf\x45\xe9\x85\x18\xbb\x58\x4c\x86\x8b\xf1\x00\x18\xf6\xa3\x05\x45\xef\xfe\xac\x67\xab\x78\x4b\xdd\xef\x4e\xb3\x06\x4c\x63\xdd\x42\x4f\xb4\x32\x6f\xfd\xca\x01\x9d\xf9\x6d\x41\x0b\xde\xfe\x28\x3e\x70\xcb\x28\xae\x68\x67\x2b\xda\x51\xc5\x90\x01\xf3\x2b\x6a\xb7\x0b\xd6\xc6\xde\xdc\xf6\xf8\x6e\x75\x86\x2c\xd7\x60\xad\x95\x6e\x13\x04\x17\x1b\xb8\x9f\x10\xb3\xd8\x78\xee\xe6\xe2\xdb\x9c\x81\xc2\xd0\x62\xe3\x9e\x9b\x31\x4f\x90\x5a\x6c\x45\x1b\x84\xad\x3d\x1d\xc9\x5f\x95\x65\xc6\x3d\xb7\x7d\xbd\x19\xf3\xf6\xa8\x22\x63\x7a\x12\xfa\x6c\x77\x0b\x34\x8b\xcd\xa1\xb7\x99\xeb\x36\xe5\x5b\xd8\xda\xa3\xc0\x6a\xa2\xe0\xc3\xb5\x64\x81\x70\xbf\xdf\x0a\x88\x8f\x51\xb0\xdc\x60\x7c\xb3\xde\xb6\xb5\x28\x07\x57\x65\x18\xa3\xca\x5a\xde\x82\x3a\x7d\x2d\x8a\xe5\xee\xfc\x82\x6d\x5f\xed\xee\x07\xf5\x0d\xf8\x68\x53\xbe\xb7\x7d\xbd\x15\xc7\xd8\x55\xfa\x80\x1c\x2e\xdc\x2c\x14\x54\x7c\x6f\xd3\x52\xa5\x4b\x00\xae\xe3\x9b\x9b\x4b\x6d\x93\x81\xb7\x3d\xa5\xd4\x4f\x6c\xeb\x7f\xe3\x5c\x9b\xf4\xbb\x95\x08\x10\x32\x16\x9b\xdc\xbb\xc1\x81\x6f\x5c\x6c\xe3\x50\x8a\x01\xc6\x26\xe5\x0a\x1f\x7b\xba\xee\x01\x03\x5f\x34\x51\x05\xb4\xc1\xb4\x57\x09\x71\x39\x9f\xdb\x5e\xd8\x4a\x3d\xec\x82\x84\xa7\xce\x6e\x3c\x77\x17\xec\x12\x63\x3f\x08\xc7\x77\x4f\x03\x48\xfd\xee\x67\x4a\xdf\x05\x29\x03\xd8\x7a\x33\x77\xed\xeb\x17\xc9\xab\x05\xe2\x04\x84\x3e\xb6\x7d\xa1\xe0\xed\xd3\xbd\x03\x84\x97\xb7\xe9\xf9\x2d\xa8\x6b\x20\xad\x8c\x5b\xdb\x9a\x17\x0e\x16\x9b\x0e\x75\x9e\x0a\x7b\xd4\xbe\x3d\x96\xf6\xc1\xf4\xb6\x0d\x71\x08\xad\x00\x34\x1f\xad\xbf\x4e\xc8\x64\x89\x16\xbe\xe3\xbb\x87\x80\x76\xf8\xb4\x0e\xfb\xce\xa1\x02\xaa\xeb\x1c\x22\xab\x1e\xed\xa8\x76\xb8\xb5\xd8\xcb\xe1\xeb\x3a\x96\x5e\x21\xb6\x1f\xe2\xc6\xb1\xf4\x44\x5f\x3d\xaa\x3e\xae\x7a\xf3\xa1\x1a\x13\x1b\xb4\xe8\xa8\x47\xdd\xf3\xd8\xfb\x61\x21\x12\x71\x15\x27\xd3\x35\xec\x22\xf1\x91\x62\xaa\xe2\x58\x80\xe2\xae\x1e\x85\xbf\xd5\x5d\xfb\x0a\xe2\xdb\x29\x8c\x34\x68\x64\xa7\x70\x07\x61\xeb\xab\xcd\x13\x87\x8f\xea\x38\xfe\xcf\xac\xea\xd7\x20\x4d\x29\x76\xa7\x30\x7b\x29\x7f\xa7\xaa\x56\x4f\xbf\x38\x4f\xd5\x3d\x2a\xcc\x5e\x6f\x3b\x30\xae\x55\x17\xc0\x2e\xc4\x57\x3d\x4a\x78\xf7\x66\xc7\xff\x61\xdf\x39\x58\xc7\x59\xd5\x5e\xd5\x34\x0b\x84\xa1\x2a\x4e\x15\x62\xb6\x3e\xb0\xda\x9c\xc2\x3c\xb3\x09\xc4\x5d\xc5\x21\xa0\x89\xa9\x8a\xc3\xa6\x73\x0a\x27\x8c\xf5\xe7\x58\xe6\xc7\x26\x38\xc4\xb4\x63\x2b\x88\xac\x7a\x54\x2d\x2e\x73\x41\x35\x3c\xb6\xc8\xa1\xfc\x15\xca\x77\x17\xb5\x70\x28\x91\x07\x8a\xd2\x01\x6b\x7b\x58\x88\x8e\xed\x72\xf6\xa9\x8a\xf5\x9e\x82\xda\xf5\xad\x61\xcf\x96\x7a\x54\x60\x3a\xd6\x0c\xab\xd0\x81\x72\x77\x60\x1c\x9e\x53\x02\x2c\x0c\x3f\x8a\xfb\xe1\xb1\x16\xcb\xf5\xa8\x7b\x8c\xf6\xb9\xbc\xbc\xf0\xab\x4e\xf9\x1d\xab\xbe\xa0\x1e\xb2\x28\x9d\x0b\x9d\x8b\x15\xe9\x60\x0e\x87\x08\x79\x30\x96\x43\xed\x3b\xc4\xc6\x53\xec\xa2\x00\x82\xd9\x91\x2f\x31\xf0\xc2\x36\xbb\xea\xbb\x5c\x71\x2a\xd0\xad\x1f\x75\xcf\x7b\x4a\x85\xc5\x47\xdd\xaf\x6a\x32\xec\xa8\xcb\x46\x7c\xf9\x90\x2e\xb6\x70\xfb\x17\x29\x90\x15\x7e\xbb\x2e\x24\xce\xe3\xfe\x37\x77\x97\xef\x59\x44\xd7\xa3\x47\x4b\xa2\xef\x3d\x8c\x40\x97\xe5\x57\x74\x57\xdc\x01\x93\x19\xeb\xb8\x94\xb0\xaa\xe2\x29\xa2\x2b\x44\x7a\x3d\xea\x4e\xc0\xc7\x94\xb3\x3b\x0a\x15\xbc\x2a\x82\x40\xa5\x8a\x6f\xcd\x92\x8e\xaa\xca\xf9\xc6\xfc\xc2\x3c\xbb\xac\xae\x37\x7c\x23\x6b\xec\xe5\xd1\xb9\x44\xbf\x8b\x5d\x88\xdf\x8a\x5b\x48\x93\xd4\xaf\xab\x66\xdb\x25\x00\x5e\x4c\xe0\xf2\x4c\x8b\xfd\x8a\x5b\x71\xcc\x0c\x3c\xd7\x6e\xbd\x76\xe5\x25\xc4\x5d\xb5\xc7\x2e\xb1\xae\x6a\xd8\x57\xfd\xda\x2b\x7a\xe3\xaa\x06\x71\xd5\x2c\x11\xdd\x15\x97\x70\x77\x0b\x69\x8f\x70\x77\x09\x74\x17\x63\xb9\x2c\xb9\x97\xe9\xe5\x52\x9b\x2e\xf3\xcc\xa5\x36\x5d\x7e\xdf\x4b\x4c\xbb\x84\xb2\x4b\x4c\x13\xef\xf5\xa8\xa7\x8c\x1e\xfb\xe9\x5d\x6f\x4d\x5e\xca\xd3\x25\xb2\x89\xfd\x7a\xf4\xa0\xde\x50\xb8\xdf\x6a\x6e\x11\xd0\xae\xfd\x78\x89\x66\x77\xeb\xf9\xae\x68\x6f\xdf\x62\x87\x5e\x06\x9b\xbb\xcd\x08\x8f\xf2\xb5\x37\xaf\xdd\x7a\xb7\x55\x47\xb5\xba\xf6\x69\x61\xc8\x89\x21\x7b\xb4\xae\xb5\xf3\xf4\x30\xed\x5c\x5e\x9c\x42\xec\xab\xda\xd8\x17\x5e\xe6\x65\x98\xb9\x8c\x37\x97\x57\xf8\x62\x5c\x17\x43\xbb\x18\xd7\xe5\xb9\xb9\x8c\x2e\x97\x79\xe6\x12\xc4\xae\x1a\x87\xf7\x14\x32\xb1\xf9\xc2\xd6\x2e\x0f\xb1\x98\xb3\xd7\x3e\x5c\xbf\xa7\x30\xa5\x82\xa5\xbe\xd8\x9a\x58\xb4\xb8\x55\x9d\x01\x43\xbb\x76\xa5\x08\xb3\x77\x7d\x50\xf7\x5b\xb1\xfc\xc4\x17\x33\xbc\xfc\x3d\x85\xfe\x78\x0b\x89\xd9\x2e\xbe\xd0\x10\xd5\xad\x09\xc0\x62\x59\xd5\x7d\xee\x95\x34\xdd\xaa\x6f\xf7\xc0\xd8\xd3\x52\x55\x8b\x54\x46\x6f\x10\x43\xdb\x54\x5b\x61\x6d\xc8\xb8\x03\x7d\x2d\x6f\x57\x3e\xda\xb4\x74\xb5\x1e\xa0\xe7\x7a\xdb\xdb\x7d\x8f\xbe\xbf\x86\x67\xc7\x28\xfa\xce\xa8\xb1\xd4\x77\xef\xae\x7b\xd5\x7a\xf7\xd7\x09\x1b\xd5\xef\x8e\xa5\x1a\x31\x94\xd9\x71\x0a\x33\xd5\xef\x5e\xed\xdb\xb3\x55\xb1\xf8\x74\x78\xbd\xef\xaf\x8f\xb7\x3e\xaa\x1e\x0c\xec\xc0\x50\x0f\x3e\x54\xc1\x79\xdc\x36\x5b\xf8\xa2\xc2\xba\x7f\xdc\x33\x45\x5f\x3d\x3a\xb5\x78\x83\x6f\x8c\xad\xfd\xba\x07\x0a\x60\xe8\x43\x42\xa7\x4f\x6f\x4e\xb5\xea\x13\x7e\x6d\xfa\xf5\x14\xaf\x9f\x90\xf3\x72\x27\x5a\xd7\x2a\x2e\xc3\xa9\x9d\x2a\x8e\x4f\x5f\xf1\xf8\x66\xb6\x69\x76\x9e\xf2\x94\xe0\xbf\x52\x5d\xe4\x54\xbd\xe6\xd1\x42\x40\x84\x71\x6b\xdc\x56\xdf\xb2\x02\x86\x6b\x38\xac\xa3\xc0\xdc\xfd\x15\x1e\x64\xc1\xb2\x2f\xa3\xba\x7c\xf5\x32\xf2\x6f\x57\x66\x5b\xbb\xae\x45\x82\x1a\xc9\xa5\x27\xeb\x68\xd7\x93\x65\xb4\x97\x9e\x14\x72\xed\xba\xd5\xfe\x9e\xda\x66\x7f\x5b\x09\x6f\xff\x3e\x5a\x11\x6c\xae\xc7\x54\xa9\xee\xdd\xff\xf6\x66\xb6\x0d\x4f\x71\x1b\x87\x6d\x24\xb7\x2f\x3d\x46\x72\x7f\x71\x16\x1b\xda\xd1\x85\x8a\x07\x62\x1e\x38\x56\xcb\xb1\x8a\x8e\xaf\x3e\x46\xfe\xf8\xea\xe3\xeb\x0a\x78\xa4\x72\x2d\x38\x1c\x56\xc5\x2e\x17\x4c\x59\x45\x6d\xb6\xd3\xff\x05\x20\xff\x7e\xc9\x2f\xf9\x25\xbf\xe4\x97\xfc\x92\x5f\xf2\x4b\xfe\xb9\x24\x46\x55\x68\xe7\xac\xd9\x74\x33\x79\xb1\x91\xc0\x4c\x5b\x56\x6e\x19\xb0\x00\x05\x76\x16\x6b\xc5\x06\xdc\xb3\xaa\x76\x6e\xc1\xa4\x82\xfb\x6c\x6a\x91\x34\x25\x6b\x9a\xec\x2b\x3a\xc0\x20\xaf\x8f\x26\x83\x8a\xfc\x3d\x64\x42\x0c\xd2\xf6\xf8\x56\x71\x04\x63\xd4\x64\x23\x35\x15\x95\x9b\xac\xc1\x36\x7b\x01\xe6\xa2\x6a\xb7\xca\x5b\x6a\x55\x02\x48\xed\x86\x26\x5b\x8e\xa4\x38\xc4\xf8\x8f\x26\xb3\xad\xdd\xaa\x17\x03\xce\x52\x06\x5b\x97\x33\xdd\x3b\xd8\x4d\x00\x2b\x5d\xae\x58\x97\xfb\xf5\x2d\x61\x34\xb4\xeb\x61\x8f\xaa\x58\xab\xf2\x64\xae\xfb\x59\x29\xd7\xad\x83\x1b\x13\x3d\x3d\xba\xac\xbe\xbe\x0b\xc8\x12\x94\x9e\x0c\xcb\x21\x6f\x72\xa8\xed\x34\x64\x24\x8f\xdc\xdd\x1b\x26\x0a\x3a\xb0\x00\xf8\x5a\xc1\xf0\xa9\xcd\x08\xb6\x4f\x7e\xde\x38\x55\x3f\xe5\x14\x34\x1e\x24\x7f\x90\x5e\x32\xc9\x02\x48\xd3\xbd\x55\x8f\xb4\x17\xe0\x1a\xea\xaf\x80\x48\x02\xb0\x6f\x00\x20\x08\xd9\x81\xaa\x09\xbe\x5f\x77\xad\xde\x9b\x24\xff\x28\x78\x38\xb9\xb3\xd5\xb7\x04\xa8\x9a\x51\xb0\x50\xa3\xa0\xa0\xd0\x82\x52\x52\x7c\x69\x57\x6d\x73\x80\x4d\xea\x26\xa6\x6c\xe3\x24\x91\xa7\xac\xc4\xac\x3a\x2f\xf2\x80\xf3\x7c\x21\x7e\x40\xdb\x80\x74\x19\x05\xc5\x02\xca\xe4\x5b\xd3\x64\x82\x2f\xa9\x62\x47\xe0\x09\x64\xd8\xaf\xaa\x22\x54\x75\x8f\x7b\x55\x50\x57\x6d\x41\x7e\xed\xea\x05\xa8\x01\x80\x40\x55\xad\xf5\xf4\xd5\x55\x10\x66\xcb\x3a\x5c\xc0\x2b\x97\xac\x3e\x4e\xc3\xc1\x51\x38\xd4\x29\x18\x5c\x7b\xab\xc0\xdd\x38\xdd\x06\xb7\xd7\xe0\x48\x1a\x4b\x6e\xdc\xaa\x95\xbf\x0a\x52\x21\xea\xfd\x85\x43\x90\xef\x7a\x14\x4e\x40\xe1\x0a\xc8\xe0\x97\xa5\x2d\xd7\x90\xfb\x63\x6c\x75\x7d\x77\xd5\xe0\x8d\x2f\x95\xc9\xed\xaf\x40\x64\x36\x18\x88\xbd\x65\x4b\xef\xca\xbd\x86\x13\x20\x8f\xed\x80\x41\x61\xa7\x1e\x07\xe6\xc1\x01\x5d\x74\xa0\x0b\x1c\x19\x93\x07\x7e\xc0\x81\x28\x70\x86\x5c\xe4\x51\xed\xf2\x4d\xed\xd0\x23\x4f\x91\x85\x77\x1c\xf0\x5b\x67\x55\x8e\xec\xae\xfc\xd4\xaa\x8e\x3b\x60\xd1\x3b\x07\x64\x0c\x57\xa5\x56\x55\x18\xaf\xef\x3d\xb7\x2a\x2e\x5d\xbb\x63\xc8\xfe\x2c\x5a\xf9\x8e\x32\xf9\x00\x76\xdf\xdc\xcb\x3d\x72\x0d\xab\x06\xdb\xa8\x9c\xc2\x77\x8f\x0c\xda\x2b\xd3\x9d\xa5\xe9\x2d\xf6\xca\x1a\xac\xaa\xce\xf2\x05\xe5\xe7\x81\xc2\xbc\xb2\xde\xaf\x9c\xf5\x0b\x32\xef\x9e\x6f\x66\x9e\x2c\xba\x55\x55\x45\x65\x59\xc9\xbc\xe1\xd6\x61\x23\x08\x00\xe2\xaf\x27\x21\xdb\xa9\x60\x91\xd5\x16\xf5\xec\x5b\xc9\x01\xc0\x3a\xc0\x55\x47\x6f\xa3\xee\x2f\x6a\xff\x0e\x59\x35\xdf\x16\x39\x34\x95\x59\x92\x55\x23\x3a\xb4\x57\xbe\x88\xec\x8a\xac\x6f\xaf\xa8\x7c\x31\xfb\xa2\x8c\x05\x9c\x0c\xae\xb4\x31\x2a\x96\x3c\x2a\x2e\x5b\xf4\xf4\xf6\x1e\x31\x98\x82\xb5\x42\x96\x86\xaa\x96\x01\xa6\x30\x82\x03\x3d\xb8\x63\x82\xf5\x07\xc4\xde\xa3\x42\xdd\xa6\xde\x46\xd5\x40\xd1\xdb\x18\xa8\xe0\xa2\xaa\x5b\x21\xf0\x43\x94\x3a\x08\xa7\x00\xa5\x14\x93\x6f\x60\xca\x59\x51\x2a\xed\x3d\x55\x41\x1a\x82\x22\x96\x60\x06\xee\xf8\x56\x35\x8c\xb8\x65\x05\xe7\xac\xf7\x2d\x4b\xc5\xf8\x58\x6f\xae\x97\x10\xc1\x47\xb9\x2f\x39\xa7\xda\xa9\x96\x72\x1a\xf6\x47\xb9\xba\x8c\xc0\x56\xf5\x60\xb3\xc3\x6e\x7e\x11\xd8\x12\xaf\xa5\xa8\x3b\xb9\x7b\x44\xc7\xc3\x90\x88\x2d\xb3\x67\xf3\x8b\x6c\xc1\x2d\x3b\x55\x2e\x53\x21\x65\xcb\xe3\xd9\x7c\x27\x9b\xbd\x75\xcf\xaa\x59\xc8\x09\x25\xdc\x65\x0b\x26\xd9\x02\x4e\xb6\xe8\x54\xa0\xae\xaf\x9f\xee\x3f\xe5\x8c\xab\x1a\x52\xe5\x74\xd3\xe2\xfd\x6b\xec\x77\xa7\x5f\x67\x0f\x85\xe5\xf0\xae\x51\x7d\x93\x01\xb3\x59\x39\x37\xbb\xe4\x66\x85\xdc\xac\xfc\x55\xbf\x7a\x73\xf2\xc2\x3f\x08\x88\x08\x21\x8f\x7f\xc5\x5d\x7a\xf2\xf5\xcd\x94\xf7\xa5\x6a\x43\x94\x6f\xc3\xf5\xe0\x99\x88\xa2\x5a\xc2\x5f\x3d\xc5\x85\x2d\x9f\xfb\xbd\xc7\x4a\x28\xfb\x78\xab\x9e\xb3\x6b\x8f\xb2\x35\xb3\xe7\xb2\x86\xcb\x16\xba\x9b\xed\x58\x25\xb2\x6b\xe5\x5c\xee\xef\xab\xee\xac\xac\xd9\xb7\x54\xd9\xef\xea\x34\xf8\x5a\xc4\xca\x3e\xb5\xff\x26\x79\x9c\x77\x9c\xca\xc9\x3f\x73\x8d\x8f\xaa\x1f\x67\xae\x7c\x64\x3e\xb2\x3e\x7c\x4c\xbc\xd7\x67\x3e\xce\xab\x52\xfa\xa3\xe7\xb3\x80\x91\x2d\xc0\x64\xff\x7c\x29\xea\x97\xfc\x92\x5f\xf2\x4b\x7e\xc9\x2f\xf9\x25\xbf\xe4\x97\xfc\x92\x5f\xf2\x4b\x7e\xc9\x2f\xf9\x25\xbf\xe4\x97\xfc\x92\x5f\xf2\x4b\x7e\xc9\x2f\xf9\x25\xbf\xe4\x97\xfc\x92\x5f\xf2\x4b\x7e\xc9\x2f\xf9\x25\xbf\xe4\x97\xfc\x92\x5f\xf2\x4b\x7e\xc9\x2f\xf9\x25\xff\x8a\xe4\xbf\x1f\xad\xa8\x48\x91\x7a\x45\x0a\x12\x9d\x99\xef\xaf\xf9\xfe\x9a\xef\xaf\xf3\xbd\x6f\xbe\xf7\xcd\xf7\xbe\x19\xff\x69\x7c\x63\x1f\xe7\x3d\x91\xbb\x7d\xd4\x5a\x3a\x52\xdc\x7f\x13\x37\x7e\x13\x37\x7e\x13\x37\x7e\x13\x37\x7e\x13\x37\x7e\x13\x37\x7e\x13\x37\x7e\x13\x37\xfe\xc7\x12\x37\x7e\xc9\x2f\xf9\x25\xff\x3f\x93\xff\xed\xf3\x7f\xfc\xef\xff\x67\x1b\x7d\xfc\x2f\xff\xeb\x3f\xbd\x2f\xbf\xe4\x5f\x96\xec\x71\x3e\x8f\x8b\x3f\x59\x75\x8f\xfb\x79\x9c\xa3\xef\xf9\xd9\xd1\x3f\x3b\xda\x67\xcd\x27\x2d\xdd\xd6\x3e\xb7\xfd\xd7\xc1\x8f\x9e\xbe\xd8\xd7\xfa\xf4\xfb\xef\x0e\x98\xd4\xcf\xfa\xf4\xdd\x3e\x7d\xdd\x4f\xdf\xf9\xf4\xe7\xf1\xe9\x4f\x6d\x7f\x5a\xc2\x3f\xbf\x7f\xbf\xe4\x97\xfc\x92\x5f\xf2\x4b\x7e\xc9\x3f\x85\xdc\x36\x3e\xb7\x3d\x11\x61\x7e\x6e\x5b\x9f\x1b\xe7\xe7\x0f\x3f\x17\xbd\x7d\x6e\xdc\x9f\x7f\xfc\x3f\x4b\x04\x37\xdb\xe7\x66\xff\xdc\x1c\x9f\x9b\xf1\xb9\xbb\x7d\x6e\x1f\x9f\xbb\xc7\xe7\xae\xf7\xff\xd7\xf6\xfe\x9e\x9f\xbb\xf3\x5f\xe0\xc3\xff\x5b\xa4\xb7\xb1\x1e\xd9\x8f\x9c\x47\xee\xa7\xb7\x68\x8f\xf4\x47\xc6\x23\xf1\x48\x3e\x32\x1f\x79\x4f\xc4\xbb\xf9\x67\xf0\xfe\x7d\x48\xef\x6d\x3d\xb2\x1f\x39\x8f\xdc\x4f\xef\xbd\x3d\xd2\x1f\x19\x8f\xc4\x47\xc1\xe1\xde\xfb\x7c\xe4\x3d\xd1\xdf\xcd\xfd\xdf\xee\x7b\x7f\xc9\x7f\x6d\x59\xdc\xf3\x19\xfb\x0b\xb8\x31\xee\x77\x1b\x47\x5b\xdf\x8b\xaa\x79\xfb\xfd\x47\xf0\xb2\x7c\xe2\xe7\x40\x89\x79\x3e\x63\xfc\x7f\x8f\xd6\x31\xde\x0f\x6d\xae\x8f\x8f\xb2\x10\x2a\x9d\xab\x38\xfd\x51\xb5\x5d\x2d\x59\x15\x24\x3f\x55\xd7\xf1\x7e\x06\xd3\xe9\xfd\x8c\xf9\x6f\x77\x14\xfd\xbf\x9e\xba\xf8\xf4\x3b\x3e\xfd\x3e\xb5\x2e\x3f\x63\x9e\x4f\xae\xfe\x19\x73\x7d\xc6\x6a\x9f\x7e\xf7\xa7\x5f\x2e\x96\xcf\x58\xf9\x19\xeb\x7c\xca\x15\xb3\x3e\x83\xdb\x4f\xa9\xba\xcf\x68\xdc\x84\x9f\xc1\xc1\xf1\x96\x03\x27\xc6\x77\x2a\xce\xfb\x07\xa8\xdd\xcf\xe0\xe1\xe2\xf3\xfb\x8c\x96\x9f\xd1\xf6\x67\xb4\xf5\x51\x29\xa3\xb1\xfb\x7f\xe2\xbd\x48\x39\x7e\x85\xdb\x3f\x2a\x76\x28\xb1\xac\x64\xee\x27\x14\x58\x7d\xcf\xdf\x4f\xf9\xfa\xde\x9a\xe2\xf9\xfb\xb0\x09\x2b\x74\xc8\xd7\xf7\x51\x0d\x4b\x35\x3c\xf5\xe6\x3e\x2c\xcd\xaa\x4a\xa9\xe4\xf4\x89\xf9\x9e\x3b\x1f\x1e\x95\xf1\xde\xa3\x3a\xce\x87\x85\x5f\x7d\x14\xd5\x4e\x3e\x3c\x0d\xab\x7d\x72\xf7\x0f\x08\xe7\x1d\x1f\x85\xbe\x79\x01\x59\x82\x3f\x4f\xa7\x06\xfc\x7e\x54\xa6\xf8\x2f\xad\xd2\xf7\x19\x23\x3f\x63\xbc\x5d\xc0\x3d\xf6\xc9\x37\xd6\x73\x7f\x06\x97\xe3\x5b\x95\xef\x3a\x3e\xe5\xea\xba\x9f\xf1\x56\xec\xda\x9f\xb1\xfb\x67\x44\x7c\x46\xb9\x08\x3f\x23\xde\x30\xc7\x67\xec\xfb\x19\x7b\x7e\xc6\xe9\x9f\xd9\x38\x84\x3e\xe3\xec\x9f\xb9\xb8\x9f\x71\xdf\x43\xfb\x33\x62\x7d\xc6\x5b\xf6\xf1\x26\x3d\x7f\xf6\xef\xfd\x70\xa1\x5d\x75\xeb\x3f\x2a\x57\xa8\x9b\xae\xa6\xf7\x27\xd4\xd0\x55\xb9\xf7\x33\xf2\xed\x9d\xb7\xc7\xb8\x0f\x3f\x23\xdf\xc0\xbd\xc1\x57\x85\xf4\xa3\x2e\xbc\xb2\x72\x0a\x20\x7e\x42\x89\xbc\xfb\x51\xc3\x7d\x2a\x7e\xf5\x89\x39\x3f\x63\x72\x21\x7e\x38\xb4\x14\x38\x9a\x9f\xac\xe2\x34\x1f\xce\x9d\x2a\xc9\xf3\x81\xd3\xbd\xc7\x27\xf7\xfa\x40\xd3\x56\xf0\x23\x3e\x63\xbe\xff\xe6\xa7\x4a\xb2\x9c\x0f\x17\xc2\xf9\x55\xe4\x7f\xc9\x2f\xf9\x25\xbf\xe4\x97\xfc\x92\xff\x61\xd2\xef\xd3\xf5\xbb\xa2\x23\x5d\x01\x92\x7e\xef\xd1\x72\x9e\xa8\x29\xc6\xa9\x35\x62\x63\x23\x07\x56\xbc\x59\xeb\x04\x4a\xd1\x62\xe2\x61\x9a\xc8\xa5\x26\x0a\x45\x49\x92\x47\x3d\x25\x2a\x4c\xe4\x4c\x6b\x89\x4e\x6f\x58\x0d\x7d\x72\x65\x13\x87\xd6\xb6\xfb\x8f\x77\x1e\xef\xac\x08\xb7\x27\xd8\xb6\xa7\xc4\x8e\xf6\x54\xd4\x47\x5d\x93\x2d\xfb\x13\x6c\x5a\x9f\xe8\x42\xf7\xfb\xc5\x7e\x8a\x6e\xd1\x71\xe3\x4f\x8c\x1c\xf1\xb9\x95\x30\x5c\x52\x2d\xf9\xb4\x91\x50\x15\x38\x19\x6d\xf8\x8a\xa7\xee\x0c\xe5\x4f\xfe\x8a\xa9\x5b\x7f\x45\xd6\xf9\x46\x02\x5d\x23\xa1\x35\xe2\x55\x7b\xc2\xd4\xa3\xd5\xe2\x4e\x5f\x5d\x62\x38\x55\xa7\x45\xc5\xe9\x6d\x77\x6e\xf7\x88\xb8\xab\x68\x3d\xc2\xa1\xd2\x29\x8f\xbe\xef\x25\x91\xb7\x21\xd6\xee\x09\x7c\x83\x97\x7f\xb4\x28\x91\xbe\x2d\xf4\xfc\x15\xe9\x27\x86\x30\x8c\x52\xe8\x3f\x7d\xae\x91\xb6\x5b\x3c\x01\xb4\x3d\xe1\x6f\xb4\x30\x7a\x21\xf6\x2f\xf4\x5c\x79\xb3\x16\xfa\x1c\x62\xff\x44\xa3\x35\x12\xb8\x42\x2c\x8f\x7a\x76\xf5\xbf\xe2\x09\x97\xbf\x2e\x7f\x5d\xe7\xaf\x68\xc3\xdd\xff\xc4\x19\x86\xef\x0d\xdf\xfb\x8d\x3f\x3c\xda\x7d\x6f\x36\xb1\x88\x66\x24\xcd\x48\x9a\x91\xac\x78\x48\xf3\x92\x15\x9d\x68\xa5\x65\x77\xa7\x99\xca\x51\x71\x8c\xf9\x13\x39\xd9\x72\xd4\x5f\xcf\x9f\xf8\xc6\x0c\x77\xfa\x76\x91\x81\x2d\xd3\x5f\x7d\x63\xea\x7f\xea\x7f\xee\xa2\xfb\x4f\x24\x64\x1e\xf7\x98\x9d\xb4\x3e\xd3\xba\x4a\xf3\x92\x56\x57\x5a\x57\x69\x8e\xd2\xec\x88\xd9\x6b\xd3\xae\x99\xbe\x6b\x9a\xa3\xd9\xfe\x16\x5d\xd9\x2b\xea\x52\x8b\xd5\x35\xf5\x79\x9a\xaf\xa9\xcf\xd3\x3e\xfa\xc6\x67\x9a\xa3\x8a\xc3\x9c\xe6\xe8\x1b\x9f\x69\x76\xa6\xd9\x99\xf6\xd7\x34\x3b\xd3\xec\x4c\xfb\x62\xda\x6b\x73\x79\xca\x5c\x4c\x5f\x3a\xcd\xc5\xac\x98\x4f\x33\x32\xcd\xc8\xb4\x02\xc5\x07\xfe\xc4\x7f\xda\x41\xd3\x5e\x5e\xbe\x62\x99\xa3\x65\x8e\x96\x6f\x59\x76\xe8\x32\x23\xcb\xda\x5b\x15\x29\x3a\x2a\x76\x74\xff\x89\x20\x5d\xbe\x71\xd9\x41\xcb\x0e\x5a\x51\xed\xde\x9c\xfe\x9a\xde\x6f\x67\x89\x4c\x53\x1a\x67\x28\x8d\x33\xda\x5a\xae\x57\x5d\x7b\xca\x4a\x5b\xbe\x6e\xf9\x3a\xd1\x74\x6d\x99\x35\x31\x9f\x6d\xd9\x53\xeb\x7a\xb3\xef\xaa\x28\xd6\x6d\x37\x6d\xaa\xb2\xf8\xb7\x26\xfe\xb0\x6d\xb3\xb6\xcd\x97\xa8\xbc\xb6\xad\xc6\x6d\xd6\xb6\x15\xb8\x7d\xdd\xf6\x45\xe2\xe5\xda\xf6\x15\x22\xe5\xda\xb6\xcb\xb6\x19\xdc\xce\x84\x6d\xed\x6d\x33\xb8\x7d\xd7\x36\x62\x7b\x16\xd5\x6e\x06\xb7\xb9\xdb\xd6\xe7\xf6\xbd\xdb\xf7\x6e\x3b\x6b\xfb\xd2\xed\x4b\xb7\x55\xba\xad\xd2\x6d\x06\x45\x54\xb6\x6d\xad\x6e\x5f\x2d\x46\xb4\x6d\x5f\xbd\xcd\xe6\xb1\xef\xbe\x11\xbc\x4e\xf2\xe3\xbb\x8e\xef\x3a\x66\xf0\x98\xc1\x63\x35\x7e\xa3\x7c\xcd\xd4\xb1\xba\xc4\xcd\xb6\x63\xd7\x8b\x9e\x6d\xc7\x8a\x3a\x7e\xb1\xe2\x81\x8f\x53\xeb\xd8\x17\xd7\xca\xb9\xce\xc0\xeb\xab\xaf\xf7\x7f\x63\x86\xad\x90\x6b\x24\xaf\xdf\x12\xf7\xd8\xae\x95\x7f\xb3\x5a\xdc\x63\xf4\xae\x11\xbb\xd6\xfc\xd5\x9f\x6b\x94\xee\xf6\x4e\x3d\xb9\xd6\xc0\x35\x3e\xd7\xc8\xdc\x8a\x52\xb6\x67\xef\xeb\x5b\x6f\xac\x13\xad\xec\x14\x22\x96\x2b\xde\x18\x5f\x63\x41\x1e\x2c\xc5\xa3\xb7\x74\x4f\xd6\xf5\x7c\x74\xba\x5e\xda\x97\x96\xed\x9d\xef\x77\x7b\x3b\xde\x7c\xdc\x23\xc2\xb9\x1d\x7f\x7d\xe3\xd3\xf1\xb8\xde\xae\x48\xc8\x37\x17\x8c\xb4\x83\x95\x76\x30\xd3\x8e\xde\x59\x3c\xfa\xd0\xf2\xce\xb7\xde\xd9\xe7\xba\xfe\xf4\x60\x5f\xd1\x2b\x11\xb9\x1d\x4f\xec\x3d\xbd\xf3\x8d\xd8\x9f\xe8\x6b\xd7\xef\xf4\xfe\x89\xc4\x16\x3b\xdd\x97\x96\xa5\x65\x7b\x6a\xfb\x95\xed\xfe\x5d\xed\xee\x3c\xfd\x4f\xfc\x76\xd7\xff\x7e\xf5\xe4\xfa\xdd\xeb\xfe\x37\xcb\x9d\xc9\xa9\xb3\x1d\x75\xf1\xb7\x3f\xf1\xde\xbe\x8b\x1d\xa7\xe3\xb3\x1d\x6f\xed\x4c\x2c\x1d\x87\xed\xcc\x2c\x1d\x87\xed\x4c\x27\x1d\x87\xed\x23\xaa\xfd\xfe\x2d\x6e\xdc\x1b\x66\x5d\x6b\xaf\x12\x8f\x66\x81\xf9\xa5\x8b\x3a\xee\xb8\x6d\x1f\xbe\x88\xe9\xab\xe3\xb9\x9d\xd9\xa5\x0f\x33\x82\xdb\x76\xb6\x97\x3e\xae\x37\xfb\x2e\x96\x98\x8e\xff\xf6\x71\xdf\x3d\xe1\xeb\xf0\xdc\x1e\xec\x5b\x38\x6f\x0f\x6b\x26\x46\xd1\xf7\x14\x3e\xdb\x99\x2d\x3b\x0e\xdb\x23\xb5\xa4\x16\x33\x82\x9f\xfe\xc4\xbd\x2f\xed\x66\x21\xf4\x10\x7f\xec\x51\xb1\xf1\x46\xbb\x62\xe3\x43\x7f\x52\x4f\xb2\x89\x96\xd7\x13\x1c\xb3\x27\x6b\x59\x76\x2d\x7a\xf2\x8d\xa5\x37\xb6\x78\x62\xc7\x13\x7b\x1a\x67\x9c\xb1\xa7\xde\x66\xb2\xd4\xe9\x6d\xce\xa2\x9e\x32\xc2\x0c\x8f\x1d\xaf\x14\x99\x3f\xba\x98\xed\x2e\xd2\xbe\xa7\xb1\xc5\x37\x7b\x1a\xb7\x69\xf6\xa7\x3e\xe0\x6b\x7d\xfa\x95\x69\x95\xe2\x6b\x1d\x47\xeb\xd3\x6c\xce\xa9\x7d\x56\x8b\x3b\xb7\x76\xef\xc7\xb9\xfa\xb4\x0e\xf1\xa9\x3e\xcd\xc8\xb2\x77\x96\xf5\x26\xa2\xbb\xaf\xc7\x73\x3b\x3e\xd5\xf1\xa9\xbe\xec\xa6\x55\x79\x04\xf6\xd4\x32\x02\xcb\x1a\xc3\x89\xfa\xd2\x37\xdc\xa7\xe3\x3e\x7d\x19\x87\x65\xbe\x96\xbe\x89\x97\xfe\xc9\x44\x58\x5a\xac\xb7\x65\x1c\x96\xde\x56\x6e\xc2\x32\x8f\xe2\xba\xfb\x32\x32\x4b\xcf\x97\xf5\xb6\xac\xb4\x65\x4e\xf1\xa3\xbe\xcc\xec\xf6\x2d\xb8\x4f\x17\xe7\xdf\x71\x9f\xbe\xcd\x9d\x48\xec\x2e\x52\xbd\xe3\x2c\x1d\x07\xe9\xdb\x88\x6d\x33\x55\x39\x11\x55\xee\x14\x1f\xe9\x78\x47\xdf\xf6\xf8\x36\x6b\xdb\x78\xee\xca\xa1\xd0\x4f\xbc\xa3\xe3\x08\xfd\x3c\x0e\xd8\xf1\x85\x7e\x7a\x5d\xb3\xc1\x5a\x51\xc7\xe8\xe1\x11\xfd\xd8\xb9\xb8\x43\x17\x0d\xde\x8f\xb5\x74\x8c\xe4\xd1\xcf\x63\x24\x8f\x3d\x7b\xf4\xf6\x98\xeb\x53\x76\x5d\x3d\x3f\xe6\xfa\xe8\x33\xce\xd2\x65\x2e\xf4\x73\x2a\xbf\xa3\xfd\x64\x79\xf4\x63\xe5\x5f\xfd\xbc\xfa\x79\xad\xff\xdb\xaa\x7d\xa3\xef\xb7\xae\x79\xbf\xd6\x1e\x2e\xd3\xaf\x1e\x5e\x63\x78\xf5\x41\xa9\xb9\x7e\xad\x73\x7c\xa4\x5f\x23\x76\xcd\xec\x5d\x9e\xb2\xda\xaf\x71\x93\x09\xd2\xaf\x59\xbe\x56\xe3\x75\xaa\xe0\x32\xfd\x3a\xe7\x9f\xf6\x34\x3a\x2e\xf3\x94\x9c\x47\x1f\x6f\x1d\xf4\xa3\xa7\x12\xa0\xda\x99\x8e\xdb\xdb\x17\x4f\x64\x47\x07\xea\xd9\x70\x67\x6a\x5f\xee\x51\x2a\x8f\xde\xf4\x04\x97\x47\xb7\xbf\xca\x79\x69\xb2\x57\x64\x25\x0c\x3c\x68\xe0\x41\x03\x0f\x7a\xac\x1d\x75\xe7\xf1\x1e\x59\x30\x78\xd0\x68\xd7\x5f\xab\xcf\x32\x62\xfa\x93\x88\x1e\x5b\x42\x59\xd0\xdf\x4a\x78\xec\x04\x75\xcf\x3b\x67\x86\xbc\x83\x81\x37\xbd\x83\x15\x7d\xef\xc4\xa7\x86\xfc\x91\x81\x07\xbd\x43\xe1\xd1\xe9\x6d\xd3\xfd\x6f\xf6\xdf\xa6\x42\xfd\x75\x7b\xca\x17\xe1\x47\x03\x3f\x1a\xf2\x1a\xc4\xed\x3f\xaa\xfd\x54\xbb\x5f\x3c\xde\xef\x5b\xe8\x7a\xa3\xd7\x57\x3c\x7e\x34\xf0\xa0\x41\xbf\x1b\xe5\x45\xe0\x4f\x78\x7f\x7e\x74\x68\x37\x2f\xfc\x0b\x03\x6f\x1a\xb8\xcf\xc0\x7d\x06\x5b\xfc\xc0\x7d\x06\x93\xfa\x18\x32\x8c\x68\x7c\x83\xc6\x37\x68\x7c\x03\x6f\x1a\x9c\x03\x03\x87\x1a\x4c\xdf\x83\x7b\x66\x70\x12\x0c\x9a\xe0\xe0\x80\x19\x38\xd1\xe0\x94\x19\xbc\x30\x03\x0f\x1a\xf8\xce\xc0\x71\x06\x8d\x6f\xe0\x3b\x83\x07\x66\xd0\xfb\x46\xbc\xd5\x3e\x70\xa2\x81\x13\x8d\xf0\x8d\x38\xd1\x08\xb9\x4e\xe1\x4b\xe9\x83\x03\x57\x1a\x38\xd4\x60\xfc\x1f\xf4\xc1\x11\xef\xf4\x1b\xe1\xbb\xe2\x49\x11\x23\x7c\x05\x3e\x35\x68\x7f\x83\x4e\xf7\xcd\xae\xa2\xcd\x8d\xb0\xd2\xf0\xa9\x11\x56\x17\x9d\x6e\xe0\x59\x03\xcf\x1a\x61\x8e\xc2\x1c\x85\x39\x92\xb9\x36\xc2\x7a\x0b\xdf\x18\x95\xbd\x65\xbe\xf0\xb5\x11\xbe\x1a\x77\x1b\xd9\xe4\x73\x59\x81\x69\x76\x70\xb4\x91\xe5\x96\xb1\x8f\xf0\xb5\x81\xaf\x8d\xb4\xea\x70\xb7\x91\x51\x77\xd6\xb5\xbf\xa6\xbf\xfa\xd2\x6f\x8e\x98\x15\x88\xaf\xc9\x14\xfb\x2b\x6b\x4c\xbb\xaf\x4b\x5f\x81\xa3\x0d\xba\xde\x98\x76\xc7\x7c\xa7\xd0\xa0\xeb\x8d\xf9\x4e\xa1\x41\xbf\x1b\xf2\xc2\xc6\xb4\xd2\xa6\xf1\x9f\x7a\x3e\xf5\x99\xae\x37\xa6\x9d\x42\xcb\x1b\x32\xc8\xc6\xb4\xd2\xf0\xc7\x91\xd7\x5f\xf5\x76\xea\xad\xac\xa8\x41\xbf\x1b\xb2\x78\x86\xdc\xa8\x31\x97\xa7\x9c\x09\xd3\xec\xd0\xe9\xc6\xd4\xe7\x69\x9c\x57\x2b\x9a\xe8\x44\x37\xca\xa5\x65\xcd\xd0\xd7\x86\x4c\xab\xb1\xca\xd5\xa5\x6f\x4b\xdf\x96\xf5\xb0\xec\x5c\x5a\xd8\xa0\x85\x8d\x65\x9d\xe3\x83\x63\x39\x9d\x70\xc3\x41\x2f\x1b\x6b\x79\xca\xbe\xc6\x19\x07\x1d\x6d\xd0\xce\x06\x9e\x38\xe4\x19\x0d\x7a\xd9\xc0\x13\x07\x9e\x38\x96\x71\x5e\xc6\x61\xeb\xf3\x37\x5f\xcf\xea\xdd\xbd\xae\x07\xfa\x9e\xdd\xe6\x9a\xfe\x35\xb6\x91\xc4\x2b\x07\x5e\x39\xe8\x62\x63\xdb\xa7\x34\xaf\xb1\xed\xca\x6d\x6d\xe3\x92\x83\x56\x35\x68\x49\x63\xeb\x43\xe5\x06\x2a\x44\x3a\x70\xc6\x81\x33\x0e\x15\xf6\x93\xb4\x36\xf0\xc7\x71\xcc\x35\xfe\x38\xf0\xc7\x71\xca\x65\x68\x0c\x8f\x31\x3c\x76\x19\xce\x38\xe8\x50\x43\x6e\xe0\xc0\x0d\x07\x6e\x38\x64\x9c\xfd\xc9\x46\x8c\xff\x7b\x4e\xa2\x11\x3b\xd6\xe4\xb1\xe3\x2a\x4b\xf1\x98\x65\xda\xd6\x38\x95\xcf\x68\x07\x5d\xf3\x8e\x57\x0e\x5c\x72\xe0\x8f\x03\x7f\x1c\x38\xe3\xc0\x19\x07\xfd\x6b\xd0\xbc\x06\x2e\x39\xae\xde\xd2\xbf\x7e\xb2\x20\xf5\xf3\x9a\x71\xbc\x72\x5c\xeb\xf0\x5a\x87\x38\xe6\xb8\x7a\x8e\x4b\x0e\x19\xa0\xe3\xee\x6a\x71\x27\x4e\x24\x0f\x71\xe0\x92\xe3\x1a\x6d\xba\x58\xb4\xd7\xc3\xc0\x31\xa3\xbd\x7e\x06\x8d\x2c\x64\xc5\x06\x1e\x1a\xb2\xd8\xa2\xbd\x9e\x47\x1b\xd5\xe2\xfe\xb7\x06\x02\x0f\x8d\xf6\x66\x3c\x5a\x7a\xe7\x74\xff\x74\xff\xac\x16\x77\xbe\x9e\x47\x93\xd7\x89\x6f\x06\xbe\x19\x38\x66\xe0\x98\x41\x6b\x0b\xd6\xc8\xa0\xaf\x45\x6f\x45\x39\x78\xf5\x0d\x67\x8c\xfe\x56\x63\xd0\xd4\x02\x1f\x8c\xfe\xd6\x61\xd0\xce\x82\x76\x16\xf4\xb2\xc0\x01\x83\xe6\x15\x7d\x79\x76\x69\x5f\xde\xe0\xd7\x71\xb7\xc0\xd7\x82\x86\x15\x38\x5a\xd0\xb0\x42\x24\x47\xe0\x6b\xc1\x92\x19\x9c\xfa\xc1\x9e\x19\x34\xac\xc0\xe3\x02\x8f\x0b\x3c\x2e\x70\xb4\xc0\xe3\x82\x9e\x15\x2c\x99\xc1\x51\x1d\xe5\x65\xa6\x61\x85\x60\x8c\xc0\xcb\x82\x6e\x15\xb4\xaa\x10\x5a\x10\xe5\xdc\xc6\xb9\x82\x26\x15\x74\xa8\x60\xb1\x8c\xf2\x5a\xd3\x95\x82\xad\x32\x70\xab\xc0\x7d\x02\x4f\x89\xd0\x13\x9c\x28\x44\x08\x44\x0c\x7f\xe5\x26\xc7\x83\x22\xcc\x1a\x1b\x63\x44\xb9\xd0\xb7\x16\xbf\x58\x79\xb8\xb4\xa1\xc8\x56\x74\xa1\xef\x17\xf1\x88\x70\xe6\x07\xdb\x60\xe0\x17\x81\x5f\x04\x4e\x11\x78\x44\xd0\x7a\x22\x7d\x35\xbe\x10\xf8\x42\xa4\x99\xc2\x1d\x22\xd3\x9b\x7d\x7b\x2e\x6f\x58\xee\x37\x0e\xf8\x45\xe4\x76\xbf\x31\xc1\x2f\x22\xbf\x99\xc2\xf9\x93\x2f\x1c\x79\xe4\x0b\xbf\xfd\x18\xf8\x45\xb0\x01\xc6\xb4\x8a\xbe\x79\xc4\xbd\xda\xdf\x53\xf8\x45\x4c\x21\x03\x38\x42\xe0\x05\xc1\xee\x17\x53\x7f\x68\x43\xdf\xbc\x63\xda\x50\x4c\x6b\x66\x1a\x19\xf6\xba\x98\xd7\x3d\x66\x84\xae\x14\xcb\x88\xd1\x98\x02\x2f\x08\x1a\x53\xd0\x77\x82\xb5\x2d\x96\x6f\x67\x73\x8b\x35\xb5\x4f\x77\x4e\x77\x4e\x71\x09\x66\xc7\x99\x1f\xce\xf9\x70\xce\x07\xad\x27\x58\xe1\xc2\x39\x1f\x34\xa0\xa0\xf5\x84\x73\x3e\x9c\xf0\x41\xdf\x89\xa5\x57\x34\x9d\x90\x87\x1b\xec\x6c\x21\xbb\x39\xb6\x5d\xff\xcd\xaa\x36\x9b\xec\x6c\xb1\xa3\xae\xe3\xaf\x6c\x6b\x7b\x7c\xeb\xe7\xb6\xb3\x68\x37\xb1\xdf\x89\x14\xce\xf3\xd8\x15\x55\xe1\xb4\x71\xaa\xc7\xf1\xbb\xb4\x9b\xa0\xd1\xc4\xb1\x3b\x9c\xc9\x21\xf7\x36\x8e\xd1\x38\x56\xc2\x37\x9b\xdb\x08\xd0\x56\xe2\x58\x15\xc7\xb7\x1f\xeb\xa1\xf2\xbb\x9d\xdb\xe1\xc4\x0e\xf9\xd7\xe1\x7c\x0e\x1a\x4d\x9c\xca\x0d\x37\x77\xb4\x98\xb8\x76\x8a\x53\x3a\xe8\x32\xe1\x94\x8e\xdb\xff\x96\x2d\x6e\x55\x5c\xfb\xc5\x59\x1d\x32\xb5\xc3\x59\x1d\xd7\x3a\xb9\xce\x9c\xab\xcf\x2c\x66\x71\x9d\x7b\x74\x9c\x50\x4e\x3b\x9c\xe1\x41\xd3\x09\xe7\x76\x38\xb7\xe3\x9a\x47\x7a\x4d\x38\xb1\xc3\x59\x1d\xd7\xac\xfd\x87\x5c\xf5\x56\x74\xcb\x5b\xef\x7f\xb2\xd7\xd9\xcd\x64\xec\x0e\x19\xbb\x43\xde\xeb\x90\x85\x3a\x64\x50\x8e\x6c\xd3\xf5\xf4\xac\x8c\x75\x5a\x4c\xd2\x59\xd2\xa9\x9b\x34\x94\x74\xf6\xa6\xb3\x37\x69\x25\xd9\xae\x90\x96\xb7\x77\xb2\xbf\x11\x4b\xfa\x48\xf6\x37\x3e\xd9\x2b\xe0\xe5\x8d\x40\xb2\x80\xc9\xc6\x7d\xd7\xef\xd9\x2e\x84\x85\xf6\x21\x3f\xf7\x51\xf7\xbf\x53\x2e\x59\xc0\x92\xf6\x91\xb2\xdd\xb3\xcb\xc1\xa7\x89\x24\x4d\x24\xd9\xc4\x92\xbd\x2b\x85\x53\x25\xcd\x22\x9d\xa8\xc9\x72\x95\xc2\x81\x92\xfd\x2a\x85\xfb\xa4\xd3\x35\x2b\x10\xe7\x1b\x8a\x33\x8b\xfa\xab\x9e\xd0\x0e\x72\xe8\x03\xcb\x55\xf2\x19\x65\x85\xc7\x39\x6f\x93\xfd\x2a\xf9\x8c\x92\xa6\x90\x4e\xdd\x74\xea\x26\x1d\x21\xe3\xed\x91\xac\xc0\x9f\x78\x27\x7c\x86\x5e\x91\xf3\x93\x0d\x2a\x9d\xc3\x49\xb6\xff\x41\x1b\xd0\x13\x61\x3e\xc9\x2a\x95\xf1\xd6\x76\x7e\xb1\x26\xcc\x11\xff\x4e\xf2\xef\x7c\xd1\x09\xd8\xa9\x92\xfc\x9f\xe4\xff\x24\xf9\x27\xc9\x3f\x49\xfb\x85\x53\x91\xa4\xfd\x8c\xb7\xe6\xd3\x89\x9d\x69\xee\xf2\xad\xf0\xe4\xeb\x49\x9e\x9d\x64\xb3\x4a\x67\xf8\x17\xfd\x80\x24\x9f\xce\xea\x4c\x23\xc9\x4e\x95\x4e\xec\x4c\x61\x4d\xac\x55\x99\x15\xde\x64\x5d\x91\xe7\x33\xf5\x9f\x85\x2a\xc9\xf3\xc9\xb3\x93\xce\xe7\xe4\xc7\xc9\xd4\x37\x67\x75\xf2\xe6\x64\x5a\x69\xbc\x39\x49\x0e\x4f\x7e\x9c\x9c\x7a\xc8\x5f\x93\xce\xe7\x9c\xef\xc4\xc8\x59\x28\x0d\xc6\x79\x9a\x7d\x96\xae\x24\xdb\x27\xd9\xfe\x8b\xde\xc0\x83\x93\xec\x5d\x09\x01\x20\xd9\xbb\x92\x07\x27\x59\xbd\x92\xd5\x2b\xc9\xf9\x49\xce\x4f\x7e\x9c\xe4\xc7\x49\xd2\x7e\x4e\x5f\xc4\x26\x96\x4e\xfe\xe4\xaf\x49\xfe\x9a\x74\xe6\xa7\x33\x3f\xa7\x55\xe1\xcc\x4f\x67\x7e\x92\xfc\x93\xd7\x26\x97\xfe\xf3\xcb\x24\x4c\x80\x64\xfb\xca\x95\x5a\xac\x13\xb6\xaf\x24\xf9\xa7\x93\x3f\xd9\xbe\x72\xad\xc2\xa3\x88\x3f\xa8\x14\xac\x5e\xc9\xe7\x92\x24\xf9\x64\xcb\x4a\xfe\x94\x24\xbd\x27\x5b\x56\x3a\xe1\x7f\xf0\x2b\xa0\x55\xf0\xa4\xe4\x36\x92\xdb\xb9\x41\xaa\x4f\x27\x7c\x92\xea\xd3\x39\x9f\xe4\xf9\xdc\x76\x13\xaf\x4a\xf2\x9b\xa4\xf3\x3f\xd9\xbe\x92\xdf\x24\xf9\x4a\x72\x1b\x2b\xf6\xae\xe4\x2b\xc9\x6d\x0d\xec\xed\x6d\x7a\x0b\xf3\x21\xf9\x4d\x92\xaf\xe4\x8b\xa7\x81\x5f\x24\x2d\x20\xa1\x79\x7c\xd1\x36\xe8\x02\x09\x9f\xe1\x07\x6d\x43\xff\xc9\xfc\x79\x46\xb5\xc0\xdf\xd0\xf3\xe3\x44\x3a\xd6\x00\x6e\x92\xac\x61\x3f\x18\x1d\xce\x25\x1c\x27\x8f\x6f\xa1\x0b\x24\x5c\x85\xc4\x6b\x12\xaf\x49\x96\xb1\xa4\x23\x24\x2e\x93\xb8\xcc\x17\xdf\x83\x46\x90\xe7\x54\xcb\xfa\x1b\xfa\x87\x5f\xd1\x7f\x1a\x41\xd2\x08\x12\xaf\x49\x92\x7f\x5e\x7d\xbe\xc6\x16\xd7\x48\xbe\x95\xc4\x35\x12\xd7\x48\xd2\x7e\x92\xf6\x13\xef\x48\xbc\x23\x59\xc9\x92\x4d\x2c\xaf\x35\xc0\xf3\x92\x38\x48\xf2\xb9\x14\xf6\x48\xe2\x23\x49\xe6\xcf\x6b\xdf\xe1\x29\xc9\x0b\x33\xff\x11\x9f\xa7\x57\x0f\x54\xc4\xe1\xdb\x70\x13\x68\xca\x04\x7a\x31\x31\x96\x89\xb1\x4c\x82\xff\x6c\x6f\x51\x4c\x21\x06\x93\x43\x66\x12\xf9\x27\x91\x7f\x12\xf9\x67\xab\xf8\x45\x00\x27\xc4\xff\xd9\x96\xbf\x2e\xed\x62\x69\xdb\xaa\x76\xef\xd9\x5a\x80\xa3\x30\x8c\xcd\x76\xbd\xf3\x2d\x84\x2f\x80\x0a\x25\x60\x12\xfc\x27\xc1\x7f\x72\xd1\xcc\xfe\x96\xf0\x64\x06\x9b\xcc\x60\xb3\xbf\x63\x60\x62\x41\x93\xf8\x3f\xbb\x5e\x61\x41\x13\x0b\x9a\x58\xd0\xec\x4b\xfb\xaa\x6b\x77\x6e\x6f\xde\xde\xbc\xfd\x75\xfb\xeb\xd1\x7e\x5c\x1b\x3c\x0a\xc1\xc4\x94\xa6\x60\xdb\xc9\xdc\x35\xb1\xa3\x29\xd2\x7a\x12\xf6\x27\xd6\xf4\x05\x80\x11\x43\x3c\x31\x9c\x89\xe1\x4c\x11\xab\x13\xc3\x99\x04\xfc\xc9\x40\x35\x31\x9c\x39\xc4\x1f\x33\x44\x4d\x21\xc0\x93\x21\x6a\x62\x3b\x53\xa0\xc1\x14\x68\x30\x23\x5d\xa7\x3b\xdf\x71\x32\xb1\x9d\x89\xd5\xcc\x8a\x28\xe5\xfa\x98\x58\xcd\xc4\x6a\x26\x26\x33\x31\x99\xc9\x74\x34\xe3\x68\x31\x17\x18\xc8\x64\x1c\x9a\x8c\x43\x13\x1b\x99\x5c\x1f\x33\x7d\x35\x66\x32\x99\x8b\xa6\x90\x81\xc9\x19\x32\x31\x96\x49\x21\x98\x8c\x46\x53\x98\xc0\xa4\x10\x4c\x6e\x90\x99\x4f\x8c\x9a\x98\xc9\xc4\x4c\x66\x5a\x4b\x69\x2d\x61\x2c\x33\xf5\xb6\xe2\xaf\xa9\x05\x93\x42\x30\x29\x04\x93\x42\x30\xa9\x02\x13\xc3\x99\x14\x82\x89\xe1\x4c\xaa\xc0\xc4\x64\x26\x63\xd2\xc4\x5e\x66\xfa\x22\xc6\x24\x08\x52\x63\x52\x0e\x26\x03\x12\x20\x90\x47\xdf\x7b\x84\x03\x4c\x0a\xc1\x64\x16\x9a\x5c\x28\x53\x20\xc0\x9c\x15\x63\x6b\x6c\x31\x93\x89\x99\x4c\xea\xc2\x9c\xfa\xc9\x44\x34\x99\x88\xe6\xb4\x8a\xb0\x8e\x49\x75\xf8\x02\x02\x71\xf8\x4f\x0a\xc4\xe4\x42\x99\x4b\x7f\x96\xd5\xce\xc9\x3f\xb9\x50\x26\xf7\xfe\xe4\xcc\x9f\x0c\x45\x73\x45\xb5\xb8\x53\x3f\x29\x16\x93\x62\x31\x31\x96\x89\xb1\x4c\xee\x94\xb9\x2a\x92\xdd\xec\x53\x1a\x26\x06\x32\xb9\x4a\xe6\x32\x6e\xeb\xf8\xab\x15\x48\x75\x98\x1c\x26\x93\x03\x7f\xae\xea\xa7\xbd\x59\x50\x46\x8c\x46\x73\xd9\x11\x14\x8b\x49\x8d\x98\x8c\x46\x13\x93\x99\x98\xcc\xc4\x5e\xe6\x36\xef\xdc\x29\x13\x4b\x99\xdb\x1a\xc0\x58\x26\xc6\x32\x29\x16\x5f\x90\x24\x4c\x66\x32\x1a\x4d\xac\x66\x62\x35\x93\x83\x65\x62\x35\x13\x63\x99\xd8\xc8\xa4\x7c\xcc\xad\xcf\xd4\x8e\x79\xac\x5e\x6c\x64\x32\x29\xcd\x63\x25\x17\xfc\xd2\xb1\x06\xa8\x26\x93\x79\x69\x72\xce\x4f\x8c\x65\x62\x2c\x93\xb3\x65\x62\x2f\x93\x49\x69\x72\xb6\xcc\xa3\xe7\xd4\x94\x89\xa5\x4c\x6c\x64\x9e\x82\x77\xb2\x7a\xc1\x44\x4d\x8a\xcb\xc4\x4c\x26\xc5\x65\x62\x26\xf3\xec\x6a\xf1\x5b\x66\x81\x91\x69\x62\x29\x13\x4b\x99\x1c\x32\xf3\x54\x36\x82\xd1\xc6\x52\x26\x96\x32\xa9\x2c\xf3\x1a\x6d\x8a\xcb\x64\x6a\x9a\xdc\xfb\x93\xfa\x32\xb9\xf7\x27\x57\xcc\xc4\x76\x26\xf3\xd2\xc4\x76\x26\x56\x33\xb1\x97\x89\x99\xcc\xab\x27\xd7\x99\x80\x81\x4c\x46\xa3\x85\x5f\x2c\xfc\x62\x09\x4f\x5b\x1c\xf8\x0b\xef\x58\x05\x13\xc5\x68\xb4\xb8\x59\x16\xa7\xca\x6a\xe1\xfe\x70\xcf\x1b\xab\xd5\xa6\xbf\x56\x4e\x85\xc8\xfe\x26\x9f\x82\x82\xb2\x70\x87\xc5\x5c\xb4\x04\xac\x2d\x86\xa2\x45\x1d\x59\xed\x02\xc4\x7a\x42\xd6\xea\x0d\x44\x96\xfe\x50\x53\x16\x43\xd1\x0f\x98\x96\x5e\xe1\x17\x3f\x60\x5a\xa0\xad\x70\x8a\xc5\x61\xf2\x03\xb8\x55\x10\x5c\xd9\xff\x06\xb5\xe5\xce\xf4\x06\x7d\x2e\xf0\x2d\x6a\xcd\x12\x04\xb7\x70\x96\x85\xb3\x2c\x9c\xe5\x07\xac\x0b\x8c\x56\x81\xc9\x31\x38\x2d\xfc\x65\x71\xfe\x2f\x6a\xcd\xe2\xde\x5f\xdc\x2c\x4b\x00\xdd\xc2\x5f\x16\xe3\xd3\x62\x88\xfa\x03\xf1\xd5\xbe\x40\x5f\x8f\x06\x9a\x28\xd0\xaf\xb7\x6e\x0b\xa6\x6e\x8d\x82\x01\x33\x0b\x5c\x2b\x8b\x91\xe9\x07\x18\xcc\x57\x73\xaa\xac\xca\x98\xc0\x9b\x16\xc7\xcb\x12\x5e\xb7\x98\xa3\x16\x15\x6a\x71\xa7\x2c\x19\x08\x8b\x0a\xb5\x2a\x07\x86\x99\xea\x07\x66\x6c\x69\x59\x05\x3c\xa6\x1d\x74\xd9\x17\x7e\xcc\x97\x32\x59\x2d\x6e\x96\x2f\x20\x19\x15\x6a\x51\xa1\x7e\xc0\xc9\x7c\x11\xee\xb6\xb8\x59\x96\xc0\xba\xc5\xa9\xb2\x38\x55\x16\xb3\xd6\xe2\x4e\x59\x72\x94\x16\x47\xca\x12\x52\xb7\x70\xbd\x85\xeb\x2d\xc1\x74\x3f\x80\x67\xdb\xfb\xf7\xfc\x82\x9f\x3d\xea\x4e\x7d\xe0\x00\x59\x94\xa4\x25\x2c\x6e\xe1\x5c\x8b\xc9\x6a\x51\x7d\x16\x57\xc6\xa2\x00\x2d\x66\xaa\x85\x4f\x2d\x7c\x6a\xe1\x4d\x5f\x28\x35\x3c\x68\x71\xcb\x2f\x2a\xce\x4a\x33\x4b\xe9\x59\xb8\xcf\xe2\xca\x58\x38\xce\x62\x8e\x5a\x0c\x51\x6b\xbe\x33\x67\xe1\x3e\x8b\xba\xb3\xa8\x3b\x8b\xba\xb3\xf0\x9d\x45\xa1\x59\x14\x9a\xc5\x34\xf5\x05\x6f\xc3\x7d\x16\xee\xb3\x56\xdf\x7f\x80\xdc\xa8\x32\x6b\x56\xa6\x8c\xf9\xc2\x95\x96\xc0\xb4\x85\x2b\x2d\x0a\xcd\xe2\xbe\x58\xd3\x0a\xc4\x89\x16\xf3\xd5\xe2\xb2\x58\xf8\xd1\xe2\xcc\x5f\xab\xff\x05\x17\xc7\x70\xb5\xa8\x2c\x0b\x7f\x59\x0c\x57\x8b\x99\x6a\xe1\x32\x8b\xb1\x6a\x51\x59\x16\xa7\xc4\xe2\x94\x58\xd4\x97\x85\x07\x2d\x1c\x67\x31\x59\x7d\x61\xe7\x70\x99\xc5\x58\xb5\x04\x8b\x2d\x9c\x65\x31\x59\x2d\x0a\xcd\xda\xd5\x93\xca\xfd\xb1\x7f\x71\x96\xc5\x1d\xb1\xc0\xa7\x2d\x4a\xcc\xa2\xbe\x2c\x5c\x66\x71\x4a\x2c\xa1\x61\x4b\x68\xd8\xe2\x94\x58\x5c\xfa\x8b\x4b\x7f\x71\xe6\x2f\x8e\xfa\x45\x89\x59\xd4\x97\x25\xec\x6b\x15\x78\x9e\x50\xaf\x85\xe3\x2c\x8a\xcb\x62\xe8\x5a\x54\x96\x85\xd7\xac\xd3\x0b\x4e\xf2\x07\x54\xf2\xd1\xf3\x05\xd5\x7b\xb4\x00\xf6\x02\x9d\xa8\xbf\xea\x2d\xc5\x65\xe1\x2f\xeb\x18\x5b\xae\xfb\x75\xf4\xb0\xe0\x2a\xf1\x97\x75\x0a\xb4\xb2\x72\xd1\xcc\x32\xf3\xd8\x3a\xd6\x24\x2e\xb3\x70\x99\xc5\xad\xb1\x70\x96\x45\x4d\x59\x38\xcb\xe2\xe4\x5f\x38\xcb\x12\x38\xb6\xf0\x97\xc5\x54\xb6\x70\x90\x75\xf5\x99\xb3\x62\xe1\x26\x8b\xe9\x6b\x51\x5f\x96\x00\xb1\xc5\xbd\xbf\x38\x2b\x80\x9f\x8d\x45\x4d\x59\x54\x93\xc5\x1d\xb1\x70\x96\xc5\x75\x0f\x50\xf0\x51\x59\x5c\xd6\x1e\x05\x65\x31\x7a\x2d\x1c\x67\xe3\x38\x9b\x01\x6c\x33\x80\x6d\x7c\x67\x73\xef\x6f\x5a\xc9\xc6\x6b\xbe\x90\x84\x8c\x5e\x9b\x6e\xb2\x5b\xfa\x6b\xba\x1f\x24\x21\x3d\x65\xd3\x50\x36\xad\x64\xe3\x38\xbb\x55\xf6\xde\x72\xe7\xf6\x2b\xc7\x3b\xdf\x28\xed\x56\x3d\x79\x32\xcf\x0f\xe4\xe1\x5b\x8d\x9b\x43\x7e\x0b\x91\xde\xf8\xcb\xa6\x8f\x6c\x5c\x66\xe3\x29\xbb\x87\xfb\x43\x76\x5a\xb8\x53\x4f\x70\x90\x2d\x40\x6c\x73\x4d\x6c\x6e\xf9\x4d\x1f\xd9\x74\x90\x8d\x53\x7c\xe1\x15\xf1\x88\x8d\x47\xec\x7e\xbd\xa1\xfa\x73\xab\xe5\x02\x5f\x9c\x7f\x41\x30\xea\x21\xdd\x64\x4b\x05\xdc\xa3\x6b\x7f\xe7\xc3\xc6\x29\x36\x37\xc5\x16\x7c\xbd\xf1\x88\xed\xe4\xdf\x78\xc4\x16\x64\xbd\x85\x54\xff\x07\x40\x47\x27\xff\xae\x7c\x3b\x5a\xcc\x76\xe6\x6f\xc6\xb3\x2d\xf8\x6b\x0b\xaf\xde\x02\xbb\xb6\xd3\x7e\xd3\x65\xf6\xd0\x67\x1a\xcd\x76\xce\xef\x00\x06\xe9\xb4\xdf\xdc\xe9\xdb\x99\xbf\x39\x2b\x36\xd3\xda\x66\x5a\xdb\x8c\x6a\x5b\x90\xd7\x0e\xfd\xa4\xf5\x6c\xe7\x3f\xc0\xbc\x01\x30\x6f\x6c\xe7\xff\x66\x5a\x03\xaa\xf7\x03\x3f\x19\xfa\xcc\x9c\xb6\xb9\xd3\xb7\x10\xe9\xcd\xd1\xb1\x99\xd0\x36\xdd\x67\x73\x92\xef\xa8\xde\x1a\xe1\x30\xc2\xf4\xa0\xcd\xf5\xb1\x99\xd3\x36\x6d\x68\xe7\x3b\x8b\x36\xde\xb1\x69\x3d\x9b\xa6\xb3\x69\x3a\x9b\xa6\x03\xa8\xef\x51\xf7\x58\x9f\xb4\x9e\x9d\xc6\x56\xf0\xd7\x96\xe9\xb8\x05\x7c\x6d\x3a\xce\xa6\xdd\xec\xac\x0c\x52\x6b\x92\x7b\x7c\xd3\x6e\x40\xfa\x3d\x2a\xbf\xd1\x4e\x61\x3c\xdb\x1c\xe3\x9b\x46\xb3\xf1\x94\x3d\xf5\x8a\x4b\x1c\x1c\xe0\xa3\xfe\xea\xd7\x99\xc7\x36\xc3\xd8\xc6\x53\x36\x0e\xb2\x85\x36\x6f\x1a\xcd\xc6\x41\x36\x93\xd8\xc6\x47\xb6\xa0\xe6\x3d\x8d\xa1\x30\xb1\xcd\x3d\x02\x32\xf0\x51\xf7\x98\x7d\xe6\xb1\x2f\xfc\x27\x6e\xb2\xf1\xa9\xbd\x8c\x98\x10\xe6\xcd\x25\xbe\x69\x37\x5b\x98\xd8\x16\x9e\xbc\x69\x34\x9b\x2e\xb3\x39\x49\x36\xf3\xd8\xc6\x71\x36\x23\x19\xe8\xc1\x01\x8c\xf0\x51\x50\xa3\xfa\x89\xcb\x6c\x3a\xce\x16\x92\xbc\x71\x99\xcd\x31\xb2\xf1\x9a\xcd\xf5\xbd\xe9\x2f\x5b\x48\xf2\x66\x48\xdb\xbb\xc0\x4a\xcd\xf5\x17\xb2\x54\x3f\x69\x34\x9b\x46\xb3\xb7\x95\xc9\x49\xb2\x39\x49\x36\xbe\xb3\x85\x24\xff\x40\x9c\x1a\x4f\xba\xcc\x17\xe8\x54\x88\xf1\xa6\xc5\x6c\x5a\xcc\x16\x26\xb6\xb9\xc4\xb7\xd0\xb0\x1f\x60\x54\xd9\xab\x38\x0e\x18\xc5\x47\xbd\x47\x6f\xcf\xe3\x8c\x9b\x2e\xb3\x8f\x7e\xe2\x32\x9b\x53\x65\xe3\x35\x9b\x19\x6c\x73\xa7\x6c\x7c\x64\xd3\x50\x36\x6e\xb2\xe9\x29\x1b\x4f\xd9\xb8\xc9\x66\xf4\xfa\x42\xb1\x0a\x34\xde\xc7\x7e\xe1\x06\xdf\x34\x94\x4d\x43\xd9\xc7\xb9\x84\x9b\x6c\x7c\x64\x1f\xe3\xc9\x91\xb2\x85\x83\x6d\xba\xc9\xbe\xbd\x5a\xde\x1b\xae\x33\x87\x86\xb2\x39\x55\xf6\xd5\x43\xae\xef\xcd\x91\xb2\xb7\x35\x79\xcd\xf5\xfd\x5e\xfb\xab\x59\x66\x00\xdb\xf8\xcb\x66\xd6\xda\xc0\x59\xb7\x04\x9a\xd3\xe4\xf7\xd2\x50\x0e\x7e\xf1\x03\x22\xfb\x4e\x95\xc3\x71\x7d\x68\x25\x3f\x10\xb3\x89\xbe\xdf\x3a\x6c\x59\x3f\x70\xb3\xb3\xa0\x67\x3d\xb5\xff\x02\xa0\xe5\x2a\x39\xc2\x8a\x0f\xee\x70\x84\x71\x1d\xdc\xe1\xd0\x4a\x0e\x57\xc9\xc1\x29\x0e\xad\xe4\x07\xb6\xf6\x8d\xc3\xc1\x23\x0e\x1e\x71\x58\xae\x4e\xd7\x2b\xfa\xc8\xa1\x8f\x1c\xfc\xe2\x70\x62\x1f\xae\x95\x43\xfb\x38\xb4\x8f\x2f\xe4\x2d\x2d\xe3\xb0\x62\x1d\xfa\xc2\x91\x70\xf3\x03\x7f\xeb\x77\x9d\xfc\x3f\xe0\xb8\xfd\x2f\x58\x5c\xce\x93\x43\x23\x38\xb4\x80\x43\x0b\x38\xb4\x80\xe3\xfc\x3f\x5c\x28\x07\x17\x38\x1c\x29\x47\x10\xd6\xe1\xac\xfe\x42\xed\xd2\x0b\x0e\xeb\xd6\xa1\x17\x1c\xa1\xc1\x87\xfb\xfa\x54\xce\xb5\x24\x9b\x53\x39\xd7\x4e\xfe\xe3\xe4\x3f\x4e\xfb\x13\x05\xd3\x6b\x1c\x38\xa5\x4f\x54\xd6\x76\x54\xcb\x7b\x1b\xd9\xfe\x0b\xe5\xcb\x59\x7d\x38\x52\x0e\xbb\xd6\x81\x4f\x70\xd8\xb5\x0e\x99\xff\xc4\xd2\xfe\xd6\xf0\x71\xe6\x1f\x27\xf9\x61\xd1\x3a\xce\xf3\xe3\xdc\x3e\xec\x57\x47\xca\xcb\xe1\x06\x39\x52\x5b\x0e\x9b\xd5\x71\x86\x1f\x81\x4e\x87\xe3\xfa\xd0\x02\x0e\x37\xc8\xe1\xb8\x3e\xe9\xdb\x59\xab\x8e\xd0\xdd\xc3\x0d\x72\x58\xab\x4e\xfa\x75\xda\xc1\x49\xa3\x41\x47\x38\xb4\x86\xe3\xf4\x3e\xf4\x82\x93\xd5\x2b\x73\xc7\x65\x7d\x84\x38\x1d\x21\xbd\xc7\x79\x7e\x68\x0d\x87\xbe\x70\x38\xae\x0f\x4d\xe1\x4c\x7d\x66\xa1\x3a\x5c\x1f\x30\xd4\x07\xd4\xf4\x3f\xe0\xc7\xc6\x8a\xa6\x00\x54\x75\x00\x6a\x1f\x40\xda\x07\x94\xf6\x01\xa6\x7d\x80\x68\x1f\x87\xd3\x03\xf0\xea\xa3\x5a\x8e\xb7\x1d\xf7\x9b\xd3\x69\x2f\x70\x80\x1f\xa1\x4f\x87\x2d\xeb\x0b\xb4\x4c\x83\x38\xc2\xa0\x8e\xa0\xa7\x43\x77\x38\xec\x5a\x87\x5d\xeb\xb0\x5f\x1d\xc9\x28\x87\x9d\xea\xd0\x26\x0e\xd7\xf7\x0f\x54\xb3\xd9\xa4\x47\x1c\x7a\xc4\xa1\x41\xfc\x81\x70\x3e\x7f\x80\x9c\x05\x37\x1d\xb6\xa9\xb3\xfd\xae\xd3\xfb\x48\x1f\x39\x42\x99\x8e\x13\xfb\x6c\x73\xea\xc4\x3e\xce\xea\xe3\xac\x3e\xec\x51\x87\xa6\x70\x68\x0a\x87\xa6\x70\x68\x07\xe0\xe4\xc7\x11\xde\x7b\x9c\xde\x47\x38\xf0\x61\x83\x3a\x1c\xe0\x87\x8e\x70\x9c\xde\x87\x76\x70\xd8\xa3\x0e\xbd\xe0\xb0\x44\xfd\x40\x4d\x9b\x59\xe1\x4b\x87\x8e\x70\xce\x00\x44\xed\x7c\x70\x92\x9f\xa3\xb7\x12\x41\xbe\xd0\xd4\x5c\x19\x87\x2b\xe3\x70\x5f\x1c\xe7\xf9\xe1\xa0\x38\xce\xe7\xe3\x7c\x3e\xce\xe7\xc3\x41\x71\x9c\xd2\x47\x9a\xc8\x71\x4a\x9f\xeb\xa4\x92\x14\x72\xc8\xf6\x05\x77\x7d\x48\xf8\x87\xa3\xfb\x70\x74\x1f\x72\xfe\x61\x35\xfa\x01\xc6\xb6\xce\xb9\x26\x0e\x09\xff\x70\x44\x1c\xae\xec\x23\x44\xf7\x08\x44\x3a\x24\xfc\x43\x9e\x3f\xdc\x0e\x7f\x03\xd2\x1e\x97\x6c\x7f\xc9\xf6\x97\x54\x7f\xa5\x86\x5c\x27\xf6\x05\x6a\x5e\xf0\xdb\xb7\xe0\xb4\xf9\x23\x6e\x2b\x58\xee\xf4\x86\x09\x44\x03\xfc\x36\x79\xfe\x92\xe1\xaf\x13\xfb\x72\x6e\x5f\x41\xb8\x97\x5b\xfb\xb6\x37\x17\xb7\xfb\x45\xa7\xf4\x75\x4a\x5f\x5e\x86\xcb\xb9\x7d\xc9\xf3\x97\xd5\xe8\x07\xe4\xdb\xef\xf2\x2c\x5c\x89\x20\x97\x24\x7f\x59\x8a\x2e\x4b\xd1\x65\x29\xba\x4e\xe9\x4b\x6e\xff\x42\x83\x93\xde\x2f\x89\xfd\x72\x65\x5f\x16\x9e\xcb\x92\x03\x90\x78\x5c\x67\xf5\xe5\x41\xb8\xc3\xb7\x3b\xa5\x2f\x99\xfc\xb2\xd5\x5c\x92\xf9\x2d\xec\x16\x27\xf3\x25\x99\x5f\x48\x11\x97\x7c\x7e\x9d\xc6\x97\x94\x7e\x85\xbe\x5e\xe7\xf0\x25\xab\x5f\xc1\x44\x97\xc4\x7e\x79\x1c\x2e\xfb\xcc\xe5\x77\xb8\xe3\x68\x37\x56\x5f\x48\x12\x7d\x26\xb7\x5f\x72\xfb\x15\x64\x74\x0b\x0b\xa3\xa0\x49\x9c\xe4\x57\x48\xec\x25\xc9\x5f\xd2\xfb\x15\x76\x74\xc9\xf0\x80\x96\xc7\x65\xb1\xb9\xce\xf3\xeb\x0c\xbf\x24\xf3\x0b\xed\xe6\x07\x40\x5d\x6f\x0b\x46\x9d\x64\x7e\xb9\xb8\x2f\xdf\xc4\x25\x9f\xdf\xa8\x3e\xbc\x55\x74\xd9\x6d\x2e\x69\xfc\x3a\xc3\x2f\x2f\xc3\x75\x6e\x5f\x4e\xec\x4b\xf6\xbe\x4e\xef\xeb\xdc\xbe\x6c\x38\x97\x04\x7e\x33\xdd\x6f\xf4\xd8\x73\xae\x33\xfc\x4a\xbf\xb8\xce\xf0\x2b\x10\xe9\x3a\xc3\x6f\xfe\x81\x78\x7f\xd4\x3d\xc6\x8d\xb5\xe7\x0a\x3b\xba\x52\x15\x2f\x8f\xc3\xcd\xea\xa7\xd5\x2e\x1c\xe9\x4a\x4f\xbc\x24\xf3\xeb\xf4\xbe\xb3\xa0\xe2\x8d\x12\xb7\xf6\xe5\x77\xb8\x20\xdb\xaf\xa0\xa4\x2b\x58\xf5\x3a\xdb\x2f\xe9\xfd\xb2\x05\x5d\xe7\xfc\x9d\x56\x1d\xaf\xc4\x75\xe6\x5f\xbe\x89\x2f\xfc\x3c\x19\xfe\x3a\xdb\x2f\xb9\xfd\xb2\xff\x5c\xa9\x1e\x97\x87\xe2\x4e\xdf\xe5\x6c\xbf\x4e\xf5\x4b\x86\xbf\x3c\x14\xd7\xd9\x7e\x9d\xed\x97\x24\x7f\x9d\xed\x97\xbb\xfb\x72\x77\xdf\x55\x10\x35\xef\x64\xbb\xe4\xfc\x4b\xce\xbf\xd2\x41\xae\xf3\xff\x72\x80\x5f\x72\xfe\x15\xfa\x7a\x85\xbe\xfe\x00\xe4\x5b\x21\xbc\x18\x17\x47\xf8\x81\xcc\xf7\xbd\x6c\x4d\x97\x16\xf0\x05\xce\x17\x2a\xf5\x03\xa8\x6f\x2d\xe1\x17\x17\xbf\xf8\x81\xd8\x37\x6b\xec\x4e\x97\x2e\x70\xf9\x35\xbe\x70\xfb\x74\x81\xcb\x79\x7e\x79\x3a\x2e\x4f\xc7\x65\x7d\xba\xf8\xc8\xe5\xe3\xb8\x7c\x1c\x97\x25\xea\x0b\xd8\x4f\x3b\xb8\xd2\x13\x2f\xbd\xe0\xd2\x0b\x2e\x9e\xf2\x07\xc8\x7f\xfd\x05\xe4\xff\x05\xf5\xbf\x40\xfd\xbd\xc7\xd7\x7d\x01\xfe\x7d\x23\xee\x73\x71\x9f\xcb\x0f\x72\x59\xa2\x2e\xaf\xc7\xa5\x35\x5c\x7c\xe7\x0a\xb3\xba\xf4\x85\x8b\xef\x5c\x6e\xf6\xcb\x4e\x75\x69\x0d\x17\xf7\xf9\x96\x0e\xc0\x7d\x2e\xad\xe1\xd2\x1a\x2e\x3f\xc8\xc5\x89\x2e\x4e\x74\x79\x40\xae\x34\x94\x8b\xfb\x5c\xe9\x26\x97\x07\xe4\x9e\xd0\x6e\x8e\xbe\x85\x08\x7c\x0b\x3f\xc8\x65\xb3\xba\x74\x8d\x8b\x43\x5d\x1c\xea\x72\xb6\x5f\x7c\xea\x5b\xb8\x80\xde\x01\x52\xfd\x51\xf7\x38\xaf\xd8\xaf\x2e\xfb\xd5\xa5\x7d\x00\x5c\x1f\x97\x15\xeb\xf2\x98\x5c\x21\xba\x17\xa7\xbb\x6c\x59\x17\xbf\xbb\xf8\xdd\xe5\x2b\xb9\x6c\x59\x97\x2d\xeb\xe2\x71\x57\xa8\xd7\x15\x8a\x7b\x6f\x1f\xa8\x16\x27\x2d\xdd\xe4\xd2\x4d\xae\xe0\xdc\xcb\x39\x7f\xe9\x26\x17\x67\xbc\xf8\xe0\xc5\x01\x2f\x7b\xd7\x95\x16\x79\x05\xea\x5e\x1a\xca\xc5\x13\xa5\xf8\x3f\xea\x3d\xdb\x53\xd6\x1b\x1b\xd7\xbd\xdf\x62\x26\xee\xb7\xc6\xd8\xb8\xa4\xfe\x47\x6b\x6d\xa1\xae\xbb\xf2\x0e\x3d\xd1\x89\xfa\x6b\xf7\x57\x25\x1d\x1e\x37\x8c\xa6\x6c\x02\x18\x80\x47\xab\xc5\x3d\xe9\xfe\xdc\xe8\xfd\x53\x2c\xa2\x2d\x6f\xdb\xae\xb7\xfb\x77\xb5\xb8\x7f\xbb\x7f\x9f\x47\x4f\x47\xfd\x15\xf8\x54\x03\x45\xd5\xf4\xb6\xb7\x8e\x4e\xf4\xb5\x2b\x89\xd0\xba\x7e\x76\xfd\xe9\x0a\x53\x3c\x2d\xe6\x51\x7f\x4d\xf7\xa7\xf6\xd9\x50\xf7\xcf\x6a\xf1\x66\x45\x2a\xfa\xf6\x06\x7d\xeb\xfa\xd6\xf5\xad\x1f\x4f\x1d\xef\x3c\x9e\xba\x5a\xae\xfe\xdc\xd7\x3e\xf4\x6d\xe8\xd5\xe3\xad\x01\x72\xe0\xd1\x81\x4e\x74\xa1\xee\x51\x04\x03\xd6\x19\xe0\x81\x00\x3c\xf0\xe8\xeb\xcf\x30\xc2\x4f\x3f\x0a\x20\x04\x01\x84\xe0\x51\xf7\xf8\xc6\xe1\x1b\xa1\x3b\x01\x24\x08\x50\x04\xd1\x86\x52\x1b\xc3\xd7\x0d\x5f\x37\x96\x9e\x28\xd6\x31\xcc\xc5\x50\xb2\x63\x2c\xf7\x1c\x3d\xdc\x45\x3d\x6b\x04\x86\x11\x18\x46\x60\x98\x97\x61\x04\x46\x7d\x2f\x64\xaa\xc7\x97\x03\x38\xc1\xa3\x30\xab\xba\x76\xdf\x18\x56\x0e\xe4\xb9\x06\xb1\x0a\x2c\x41\x34\x68\x54\x0d\x08\x18\x28\x82\x00\x39\xf0\xa7\x84\xc8\xb7\xa8\xc8\x44\xab\xdd\x9d\xbb\xa1\x9e\xd5\xdb\xd8\x3f\x25\x47\x02\xfc\xc0\xa3\x4a\x91\x58\x4b\x00\xc0\x5a\xe8\x67\x9a\x9d\xb4\x72\x52\x3f\xd3\xec\xa4\xd9\x49\xab\x28\xcd\x48\x0e\xf7\x58\x4b\x69\x9c\x95\xbc\x00\x2a\x10\x40\x05\x1e\xf5\x86\xa9\x45\xcf\x73\xb9\x47\xcf\xe1\x61\xb5\xdc\x75\xed\x7e\x23\xfc\xf8\xf5\xa3\xde\x7f\x3c\x75\xbc\xc7\x5a\xca\xeb\x1e\xab\x7d\xb6\x44\xdf\x5f\xa7\xb5\x34\xf5\x76\x5a\x3f\xd3\x08\x2b\x1e\xd2\xa6\xb1\x9d\xfa\x3c\xad\xa2\x69\xe5\xcc\xf8\x29\xc0\xf2\xa8\x3b\x8d\xf9\xe3\xe6\x8f\xfa\xab\x35\x33\xed\x88\xc7\xc1\x03\xc0\x40\x00\x18\x78\xd4\xaf\xfb\xae\xa7\xaf\x3d\xea\x6d\x66\x64\xfa\xc6\x69\x16\xa6\x31\x9f\xbe\x74\x6e\x4f\xd9\x2f\xf3\x68\xf7\x8d\xd3\xd7\x4d\x3b\x7a\xf9\xba\x65\x2e\x96\xf1\x5f\x4e\x9e\x65\x16\x96\xef\x5a\xf6\xc5\xf2\x45\x0a\x7d\x34\x25\x3e\x40\x08\x04\x08\x81\x00\x1e\xf0\xa8\xf7\x98\x8b\xa5\xcf\x0a\x86\xb4\x65\x6d\x2c\xb3\xb0\xac\xe1\x65\x3d\x2c\xbd\x5a\xa7\x5a\xbc\x4d\xdf\xd6\x75\xa7\xf1\x7f\x3c\xf7\xd1\x44\x21\x16\x5a\xe1\x5b\x6f\x15\x03\x69\x7b\x14\x5d\xe8\xfb\x5d\x85\x41\xc0\x03\x3c\xaa\xe8\x8d\x75\xf2\x2d\x7d\xa3\x87\x7b\x7a\x6a\x15\xf5\xac\xb5\xbd\xf5\x76\x5b\xc3\x5b\xdf\xb6\xbe\x6d\x27\xcc\xd6\x43\x25\x4d\x7e\x4a\xe8\xb4\xd7\x72\x7a\xd1\x44\x41\xf5\x59\x1b\xc7\xbe\xfb\x96\xd9\xb1\xef\x8e\x7e\x2a\x87\x52\x85\x77\xda\x31\xfb\xc7\x5c\x1f\xfb\xee\xe8\xc9\x31\xa7\xc7\x58\x1d\xe3\x76\x76\xb5\x7b\xa7\x35\x7c\xf4\xed\xe8\xd5\x71\x1a\x9c\x02\x0a\xb4\xd7\x4e\xf5\xd0\x89\xfd\x38\x60\x80\x04\x88\x76\xad\xe1\xab\x6f\x57\xdf\xae\xd5\x7b\xf5\xf0\xea\xe1\xd5\xc3\x6b\xc6\xaf\xf1\xbc\xc6\xf3\xda\x77\xd7\xbc\x5f\xab\xf7\x66\xb5\xbf\x11\xbb\xd6\xf0\x35\xc2\xd7\x5a\xbd\xbe\xe8\x5a\x99\x77\x15\xd5\x13\xeb\xf6\x3a\x43\xae\xd1\xbe\xf6\xe6\xf5\x45\xf7\x2a\x49\xd4\x8a\x26\xba\xd0\x8d\x02\x42\x04\x83\x88\x3f\xf6\x06\x0e\xb1\x41\xd6\x6c\x43\x8b\xc2\x44\x8a\x11\x41\x9a\x7d\xd4\x3d\xa1\x25\xbd\x33\xb5\xa7\x37\xbf\x9e\xf7\x36\xbd\x61\x6a\x9f\xee\x5f\xda\x97\xfb\x57\xb5\x78\xf3\xf6\x9e\xe3\xfe\xa3\x27\xd7\x9d\xd7\x3d\x17\x52\xe0\x5b\xbd\xc0\x06\x02\xfa\x6b\x80\x7f\x8d\xde\xf5\xb3\xbf\x9d\xa5\xbc\x52\x00\x1b\x78\xb4\xfe\x7a\xfe\x94\x5a\xc2\x49\xbb\x32\x47\x60\x06\x1e\x75\x67\x6a\xd1\xdb\x3e\xbd\x67\x7a\x56\x6f\xfb\xd2\xb2\x5d\x6f\x6f\xd8\x9e\xda\xee\xd9\xde\xaf\xcf\x78\x28\x68\x81\x47\xbd\x5f\xff\xfb\x5b\x39\x7d\xe8\xff\xd0\xff\xf1\x76\x5f\xc7\x4f\x01\x0c\x3c\x1a\x28\x0c\x51\x5f\x31\xf4\x7c\x84\x6b\x63\x3e\x8c\xf6\x50\x30\x6a\x28\x33\x35\x7c\x05\xfe\xd8\xf1\x47\x70\x02\xd1\x9f\xde\x1a\xe0\x04\xa2\x8f\xed\xfe\x5d\xd7\xde\x6f\xb4\x9f\x96\x1a\x8a\xd7\x05\x38\x81\x00\x24\x10\x80\x04\xa2\x0f\x5f\x11\xad\x68\x47\x03\x4d\xf4\xdd\x59\xb0\x99\x85\xdd\x58\x38\xac\xb8\x61\x0f\xe3\x0f\x48\xb3\x43\x73\xec\x11\x9e\xf5\x15\x8a\x35\x75\xbc\x12\x9c\x40\x74\x90\x99\x5d\xb1\xa6\x1e\xc6\x1c\x30\x66\xc7\x2b\x3b\x70\xcc\x8e\x4b\x76\x5c\xb2\xe3\x86\x1d\x18\x66\x0f\x5f\x11\xd5\x5b\xeb\x3c\xee\x7b\x2a\xf5\x33\x0b\x5f\xd2\xd8\xa6\xde\xe6\xdb\xa7\x1d\x4f\xec\x19\x45\xfd\xf5\xc9\x21\x1d\x67\xfc\x29\xc9\x35\xab\x30\x97\xf7\xe8\x49\x15\xe6\x82\x1d\xd9\x73\x7b\x4a\x4f\xd2\xec\xe3\x80\x3d\x8f\x16\x7d\x98\x46\x69\xfa\xc5\x69\x7d\x4e\x63\x32\xed\x23\x1c\xad\x4f\x2b\x13\x5f\xeb\xf8\x5a\x9f\x46\x69\xea\x8f\x12\x5e\x7d\xa6\x3b\x8d\x15\x8e\xd6\xa7\x11\x9b\x66\x1c\x47\xeb\xd3\x28\x4d\xbd\x9a\xe6\x74\x9a\xcd\x69\x64\x94\xa5\xea\xd3\x9a\x9c\xd6\xe4\xb4\xa7\x96\xd5\xb8\xcc\xac\x32\x56\x00\x06\x1e\x7d\x7d\x58\x7a\xb8\xec\x9a\xa5\x87\xf8\x54\x7f\x5a\x64\x15\x28\x7b\x54\x8b\x9e\x2c\x73\xa7\xd4\x58\x5f\xc6\x6d\xe9\x95\x82\x57\x60\x06\x02\xb4\xc0\xa3\xde\x6f\xf4\x70\xb1\xbe\x8e\x5f\x31\x86\xf8\x17\x80\x81\xe8\x78\x16\x68\x81\x47\x41\xb5\xda\x3b\xdb\x09\xa6\x8c\x55\xdf\xfa\xfc\x34\xc7\xe8\x5b\x9f\x77\xd4\xb5\xfb\x8d\x24\xce\x05\x84\x20\x80\x10\x3c\xea\x1e\x27\xc0\xf6\x2d\xdb\x39\xb0\x7d\xd1\x76\x82\xe1\x71\x1d\x77\x03\x54\x10\x80\x0a\x02\x50\x41\x00\x24\x88\xbe\xad\xc9\xed\x5b\xb6\x13\x4c\x81\xb5\xbe\xcd\x02\x7e\xd7\xb7\xf1\xdf\x56\x05\x7e\xd7\xf1\xbb\x7e\xec\x2c\x5c\x0f\x50\xc1\xa3\xda\xad\x90\x63\x16\xf0\xb8\x7e\xac\x9c\xe3\x8b\x8e\x75\x72\xac\x93\xe3\xeb\x4e\xd4\x5f\x3d\x6b\xf5\x1e\x73\x74\x7c\xd1\xb1\x72\x8e\x6f\x51\x34\x0c\x74\xc1\xa3\xee\xb7\xb6\x71\xc9\x7e\x7c\x11\xce\xd8\x71\x46\x60\x06\xd1\xf1\x44\xd0\x05\x8f\xbe\x37\x5c\x67\x17\x7e\xd7\xf1\xb8\x7e\xf5\x10\xa7\xeb\x38\x5d\xbf\x66\xe1\xea\xe7\x35\xe6\x78\x5c\xc7\xe3\x3a\x1e\xd7\xaf\xbe\x5d\xab\xfa\x1a\xe7\xab\x6f\x4a\x99\xf5\x6b\x9c\xef\xf2\x57\x67\xc2\xd5\xdb\x6b\x15\x5d\x2b\xe7\xea\xe7\x3d\x0a\xe5\xbd\x15\x32\xf0\xb5\x81\xaf\x0d\x3a\x20\x18\x83\x47\xb5\x77\xed\x5d\x7b\x61\x35\x57\x91\xbd\xd7\xf3\x81\xbb\x0d\x25\xe6\x46\x4b\x7f\x4d\x2d\xe9\x1e\x65\xf7\x94\xbf\x1b\x6d\xf9\xeb\x5b\xe7\x83\x26\x08\xd2\xe0\x4f\xb1\xbe\xed\xb7\x8e\x16\xa5\xf9\xda\xa9\x16\xef\xb9\xed\x4f\x41\xbf\x76\x15\xf4\x7b\x2b\x61\xf4\x56\xd7\xeb\x51\x58\xd2\x1d\x92\x74\x1f\x75\xed\xaf\x00\x8a\xbb\x3e\x77\x7d\xc6\xdd\xc0\x15\x3c\x9a\xa8\x37\x84\x7b\xd2\x3d\xe9\x1e\xdf\x42\x5b\x1c\xf8\xdd\xe8\xca\xba\xd2\x19\x47\x5f\x9e\x5a\x5a\xb6\x7b\xb6\x37\x9c\xbf\x15\x1e\x3c\xde\x70\xfd\xca\xad\x6b\x4f\x5d\x4f\xbd\x55\x3d\xc6\x5b\x21\x03\x8f\x03\x60\x10\x83\x9e\x08\xc0\x20\xc6\x98\x5a\x46\xd1\xf7\x7e\x5a\xe1\xc0\xe9\x06\x4e\x07\xb4\x20\xc0\x15\x04\xa0\x82\x00\x54\xf0\xa8\xfb\xf5\x9f\xde\x37\xe8\x77\x60\x09\x1e\xf5\x94\x3e\xe3\x6b\x03\x5f\x1b\xf8\xda\x80\xd3\x3d\x40\x3f\x0f\x7c\x0d\x2c\xc1\xa3\x81\x2a\x6f\xdb\xb5\x5b\x1b\x85\x45\x8c\x97\x8d\x02\x85\x8e\xa8\x72\x8b\xeb\x4f\xd1\x45\xe0\xcf\x03\xda\xf0\x80\x3b\x0c\x72\xe0\x51\xf7\x2f\x2d\x46\x95\xc6\x37\xf0\x2f\xf0\x03\x01\x72\x20\xc0\x0c\xc4\xc0\xbf\x40\x0b\x7c\x4b\xec\x0e\xfa\x1d\x20\x81\x47\x27\xfa\x7e\x31\xf5\x10\x47\x1b\xf4\xbb\x41\x5b\x19\xd3\x9b\x9d\xff\x43\xb9\xc5\xa1\xd0\xdf\xa0\xb9\x0c\x9a\xcb\xb7\x44\xa4\x42\x85\x03\x2f\x18\xd3\x98\x38\xff\x25\xd9\x87\x24\xfb\x47\xdf\x53\xeb\x71\xcf\x41\x97\x91\x6a\xff\xa8\x7b\x86\x76\x23\xb3\xcc\x14\xbe\x30\xe8\x2f\x63\x59\x6f\xcb\x98\xe0\x0b\xd2\xee\x43\xda\x7d\x48\xbb\x8f\xa1\xd4\xa1\xe4\xfb\x90\x6a\x5f\x85\x2b\x1f\xf5\xfe\xad\xc5\xf8\xe0\x08\x83\x2e\x33\xf0\x82\x81\x0b\x0c\x5a\xcc\x70\xfe\x0f\xfa\xcb\xd8\xf6\xb5\x32\x89\x63\xdb\x11\x8a\x19\x8e\xad\x57\x8a\x19\x0e\xa5\x14\x87\x13\x7e\x38\xe1\xc7\xd6\x4f\x5a\xcc\xd8\x7a\x45\x8b\x19\xb4\x98\xb1\xcd\x1a\xfd\x65\x38\xe1\xc7\xd6\x37\xe7\xfc\x70\xce\x8f\x6d\x54\xb7\x7e\xd2\x71\x86\x33\x5f\x22\xfe\xa3\x5a\x6e\xb5\xbc\x9e\x1c\x5f\x21\x11\x7f\x1c\xbb\x83\xbe\x33\x9c\xff\x83\xbe\x23\x11\xff\xd1\x8e\x06\x3a\xd1\xfa\xeb\x7b\x1b\xad\x47\x82\xfe\xa3\xda\xed\x08\x27\xf9\x38\xf6\x2f\x4d\x47\xc2\xfd\xa3\xde\xa0\x3f\xce\xf0\xe1\x0c\x97\x46\x1f\xd2\xe8\x63\xd0\x4a\x24\xd0\x3f\xfa\x7a\x7b\x9f\xa4\x31\x94\x48\x1d\xd7\x9b\xaf\x99\xa2\x65\x8c\x6b\x34\xae\xd5\x75\xfd\xca\x35\x1a\xd7\xee\xa3\x77\x48\x8e\x0f\xc9\xf1\x8f\x9e\x47\xdf\xef\x4a\x91\x7f\x34\xd1\x8d\xfa\xeb\xf0\xd4\xd0\xa2\x60\x29\x9d\x22\xd8\xdf\xa2\x41\xd3\x6f\xd3\x3d\xd3\xb3\xd3\x5f\x97\x77\x2a\x73\x4a\xa7\x08\xe7\x70\x38\x87\x25\xc4\x3f\xea\xfe\xeb\x9e\xeb\xcd\x6f\x5e\x82\x66\x11\x4e\x5d\xc9\xf1\x21\x21\xfe\xd1\xba\xde\xa8\x3b\x0b\xd3\xff\x9d\xb4\x4f\x60\x7d\x34\x5d\x4f\xd4\xef\xd2\x1d\xc2\xb9\x1a\xce\x55\x89\xf2\x21\x51\x3e\x9e\x78\x81\xd6\xb5\xb7\xe9\x5b\x3f\x5a\xf4\x87\x8e\x10\x4e\xd1\xa0\x1d\x48\x79\x0f\x09\xf1\x21\x21\x3e\xa4\xc2\x47\x38\x39\xa5\xc2\x3f\xea\x9e\x70\x8f\x5e\x39\x39\xc3\xc9\x19\x4e\xce\x18\xc6\x8d\x8e\x20\x39\x3e\x24\xc7\x3f\xea\x4e\x3d\x1c\xcb\x5f\xb7\xbf\x1a\x43\xa7\x6b\x38\x5d\xc3\xe9\x1a\x74\x87\x60\x37\x0b\xe7\x6a\x40\x76\x0f\xe7\x6a\xa8\x86\xf0\xa6\x01\xd5\xfe\x4e\x8f\x80\xf4\x1e\x6a\x23\xbc\x3f\xa0\x03\x7d\x5f\x0d\xbf\x5d\xaa\xfd\xa3\x9e\x9a\xee\x99\xde\x66\x24\x43\xcf\xe3\xf1\xdf\x70\xae\x4a\xaf\x7f\xb4\xae\xfd\x55\xaf\xe2\xb8\x7e\xa7\x7d\xe4\x3b\x31\xc2\x29\x2a\xd5\xfe\xd1\x83\xbe\x7b\xe8\x08\xc1\x62\x16\xd9\xdd\x63\x35\xa6\xd5\x98\x56\x23\xeb\x99\x14\xfc\x90\x82\xff\xa8\x76\xc5\x75\xd3\x4a\x60\x4f\x93\x88\x1f\x12\xf1\x43\x22\xfe\xa3\xde\xe6\xbb\x58\xd8\x22\x7d\x17\x3b\x5b\xa4\xd5\x92\xbe\x8e\xb5\x2d\x14\x2b\x88\x42\xba\xa7\x6b\x04\xcb\x9b\x94\xfd\x47\xb5\x1c\xd4\x4a\x66\x5b\x0b\xb6\xb5\x98\xc6\x9c\xde\x21\x35\x3f\x24\xe5\x3f\xba\xd1\xf7\xeb\xec\x69\x41\x13\x09\x7a\x47\xd0\x3b\x82\xc6\xf1\x2d\x1a\xcc\x92\x16\x53\xff\xd9\xd3\x62\xfa\x0a\xda\x41\x4c\x3d\x9c\xd6\x0c\xbd\x23\x58\xcf\x62\x5a\x39\x6c\x68\x81\xe3\xc4\x7c\x67\x82\x44\xff\x47\xbd\xed\xb8\xf3\x6a\xbf\x5a\xcc\x11\xad\x44\x72\xff\xa3\x81\x2a\x5c\x6c\xbe\x70\x9f\xc0\x7d\x62\xf5\xea\x49\x47\xdd\x3f\xfc\xd5\x08\xe3\x32\x52\xfc\x7f\x8a\x1e\xd3\x44\x82\x26\x22\xdd\x3f\x82\x26\x22\xb9\x3f\x02\x97\x89\xa5\x6f\x78\x8d\x44\xff\x47\xdf\xb7\x2c\xfd\xc4\x7d\x62\x19\x6d\x9a\x48\xe0\x41\x41\x13\x09\x36\xb4\x60\x31\x8b\x6d\x54\xb7\x75\xf2\x2d\xb6\x6c\x3c\xb7\xf1\xc4\x7d\x82\xc6\x11\x78\x50\x28\xaa\x1f\xcb\xbc\xb0\x98\xc5\xd6\xb7\x2a\xd1\x4c\x83\x50\x60\xfc\x51\x7f\xad\x3e\x98\x71\x5a\x43\x1c\xe3\x73\xac\xe4\x63\x94\xd8\xca\xc0\x12\xbc\xad\x80\x5a\x75\xc7\x98\xb0\x89\x7d\x8b\x3f\x1f\x63\x42\xe6\x07\x00\xf0\xa8\xbf\x3a\xa3\x68\x01\x00\x00\x1e\xf5\xd7\x2a\x1c\xad\x57\x6c\x65\x41\x2f\x00\x0f\xf0\xe8\x44\x55\x3b\x31\x77\xac\x64\xc0\x00\x22\xf0\x9a\xb8\xd6\xe4\x55\xa2\xe5\xea\x27\x5b\x59\x5c\xfb\xeb\x3a\x07\xf0\x9d\xb8\xf6\x11\x0b\x58\x5c\xbb\x43\x59\x63\xa9\xff\x8f\x7a\x8f\x55\x77\xf5\x5f\x21\xeb\xc0\x8f\x02\x27\x0a\x16\x30\x30\x00\x8f\xfa\x45\xb3\x59\x5c\xe9\xde\x6a\xb9\x9f\x00\x09\x10\xd9\x5e\xdf\xaa\xc4\x77\x15\xeb\xfe\x16\xc1\xe6\x0f\xfa\x96\xbf\xe6\x15\xaa\xc2\xce\x89\x77\x28\x89\x1c\x55\x12\x59\xf9\xe2\x77\xcc\x34\xd4\xb3\x53\xcb\xd2\xb2\xdc\xb9\xbc\x61\x7b\xff\xf6\x86\xa3\xfd\x78\xc3\xf1\xd7\xe3\xa9\xb7\x53\x92\xa6\x90\xed\x7a\xdb\xd5\xae\xcf\x78\x56\xb2\x86\x25\x9e\x95\xfd\x9d\x57\x89\x5b\x25\x6e\x95\xb8\x55\xd2\x11\xfe\x94\xf8\xce\xbf\x0a\x7d\x2b\x5e\x42\x2f\xc8\xee\x2b\xf0\x32\xf0\x03\x01\x78\xe0\xd1\x85\x9e\x6f\x61\xf0\x47\xbd\x73\xa1\xdb\x1b\xb6\x37\x6c\xcf\x6e\xf7\x6c\xef\x3f\xda\x7d\x1d\xad\x21\xfb\xa9\x76\x6f\xf3\x45\x34\x88\x64\x19\x4b\xfa\x42\x8e\xb7\x66\x92\xbf\x29\xd9\xc7\xb2\x0a\xad\xd0\x20\x00\x15\x44\xe2\x7a\x39\xaa\x44\xb9\xd9\xe1\x45\x4a\x1c\x30\x79\x91\x12\x1f\x4c\x56\xb2\x1c\x2a\x83\xd0\x1a\x52\x05\x10\x00\x06\xef\x6d\xae\xcd\x08\xde\x97\x6c\x65\x89\xeb\xe5\x30\x3b\x38\x5d\xd2\x23\x72\xe8\xf3\xb8\x20\x94\xf4\x99\xee\x90\x51\xa0\x4a\xfa\x8c\xdf\x25\xcb\x58\xb2\x8c\x25\x7e\x97\xec\x63\x40\x0e\x02\xb0\xc1\xa3\xee\xf4\x15\x34\x8b\xe4\x45\xca\xaa\x65\xf2\xad\x6a\x32\xdd\x69\xfd\xb0\x89\x81\x34\x78\xd4\x5f\x97\xbf\x9a\x05\xde\xa2\x54\xd2\x3c\xc3\x38\xd3\x29\x00\x18\x3c\xea\xd9\xeb\xcd\xef\xa4\x05\x66\xf0\x68\x47\x07\x1a\x68\xa2\xaf\x6f\x78\x62\xe2\x89\x99\xfa\x8f\x1b\x82\x37\x78\xf4\xfd\x56\xea\x27\xbe\x96\x38\x5a\xe2\x68\x89\xa3\x25\x8e\x96\xac\x67\xc0\x0c\x1e\xf5\x1e\x23\x9c\xd6\x49\x5a\x27\x6c\x68\xc0\x0c\x1e\x75\xff\xa9\xbf\x7a\xcf\xf1\x7e\xab\x45\xd1\x75\xf0\x06\x8f\xbe\xf6\xe9\x2b\xa6\x75\x82\xdf\x25\x7e\x07\xf0\x20\x72\xea\xf3\x1c\xda\x8d\x3c\x9b\x5b\xe2\x7d\xc9\xda\x06\x92\x21\x80\x19\x04\x30\x83\x00\x66\xf0\x98\xb3\x16\xfd\xc7\xe3\x92\x9e\x95\x34\xac\xa4\x61\x25\x3f\x51\xd2\xb3\x12\xd7\xcb\xa9\xff\x2c\x6f\x89\xd3\x25\xfb\x1b\x78\x83\x00\x69\xf0\xe8\x42\x37\xfa\x9e\x5d\x56\x3b\xee\x96\xbc\x45\x89\xdb\x82\x3a\x78\x54\x89\x21\x5f\xb1\xec\xf1\x65\xfd\xd0\xbf\x00\x1e\x44\xd2\xb6\x40\x1d\x04\xa8\x83\x47\x3d\xbb\x8b\xfa\xab\x9e\x2f\xa3\x8d\xbb\x25\xee\x96\xb8\x5b\xf2\x16\xe5\xaa\x7e\x1a\xe7\x65\x9c\x97\x71\xa6\x7f\x25\xcd\x2b\x69\x5e\x89\xcb\xa4\x92\xfe\xa0\x11\x1e\x55\x89\x47\xff\xd9\xe5\x40\x23\x3c\xea\x7e\xbb\x95\x5d\x0e\x34\xc2\xa3\xda\x9d\x42\x34\xb2\xa4\x91\x01\x45\x88\xdc\xbe\x62\xfb\x0a\xda\x19\x68\x84\x48\x7e\xa5\xdc\xbe\x65\x5b\x45\xf4\xb2\xdc\xc6\x9f\x46\x96\xdb\x5e\xa0\x91\x81\x46\x88\x54\x88\x1e\x28\x42\x00\x45\x88\x64\x7f\xcb\x63\xe5\x1f\xfb\xf7\x98\x85\x63\xcd\xe3\xa4\xc9\xeb\x94\xc7\xf8\xd3\xc2\x92\x16\x96\x2c\x72\x49\xff\x4a\x36\x37\x90\x09\x8f\xba\xc7\x89\x74\xac\x2b\x9e\xa9\x64\x91\x03\xa2\xf0\x68\xfd\xd5\x1b\xac\x37\xdc\x19\x4c\xc2\xa3\xee\x59\xd5\xee\xd7\x7d\xe9\xb1\xd2\xf0\xe2\x3c\xbe\x91\x4e\x97\x78\x31\xb0\x84\xc8\x63\xd5\x1d\x33\x7b\x7c\x2f\x8d\x0f\x7c\x42\x80\x4f\x78\x34\xd1\x85\xbe\x67\xf9\xb0\x12\x77\x4e\xdc\x39\xf1\xe5\xbc\xd6\xd8\x35\x47\xf8\x72\xb2\xdd\x25\x4d\x30\x79\x9d\xc0\x27\x3c\xea\x59\x3b\x82\x7f\x0a\x70\xc2\xa3\xeb\x13\xb0\x11\x02\x36\xc2\xa3\xd5\x72\x1e\xed\x45\xef\xa3\x6f\xb5\x4c\x5e\xa7\x49\x07\x84\x96\x10\xd0\x12\x1e\xdd\x8f\x86\x96\xf0\x54\x6a\x99\x5a\x14\xdb\xe2\x63\x82\x8a\x10\x70\x12\x62\x8a\xcd\x98\xf8\xec\xc4\x55\x67\xab\xfe\x1c\x77\x5e\x7f\x7d\xa3\x34\x45\x65\x4c\xfe\xa6\x89\xb3\x4f\x1c\x76\xf6\x37\x56\xb3\x77\xd7\x6f\x94\x26\xbb\x1c\xe4\x84\x47\xb5\x8c\x6a\x99\xe8\xfb\x16\x3c\x77\xe2\xb6\x93\x2d\x6e\x8a\xdf\x98\xb8\xed\xc4\x6d\xe1\x2a\xc4\x64\x85\x83\xab\xf0\xa8\x67\x97\xbf\xea\x7f\x5f\xda\x97\xf6\xed\x9d\xdb\xfd\x5b\xcb\x71\xe7\x71\x8f\x2f\xea\x47\xbb\x2f\xc2\x5b\x27\xeb\x1c\xa4\x85\x98\xe3\xed\x56\xe8\x0a\x8f\xbe\x76\xd1\x1a\x13\x1f\x9c\x74\xcc\x89\xc3\xc2\x5b\x08\x78\x0b\x8f\x6a\xaf\xd2\x66\x8a\x9b\xf1\x34\xc1\x61\x78\xf4\xfd\x0a\x5d\x12\xd2\xc2\xa3\x5a\x8c\xf3\xd0\x2b\xf6\x37\xd8\x0b\x8f\x4e\x74\xa3\xaa\x75\xe9\x8f\xf2\x6b\x13\xc7\x9c\x78\xe5\x64\x79\x9b\x2c\x6f\x90\x19\x1e\x75\xa7\x35\x80\x4b\x4e\x5c\x72\x2a\xbd\x36\xab\xf8\xda\xb7\x02\xd8\x74\xad\x57\xf8\xe6\xc4\x37\xa1\x34\x3c\x15\xc7\xfb\xb7\xf6\xed\x0d\x47\xcb\xf1\x4e\x63\x88\x7b\x4e\x7c\x73\xf2\x28\xc1\x70\x78\xf4\xfd\x15\xdf\x9c\x34\xca\x99\xd6\x33\x2d\x12\x6e\xc3\xa3\xda\x8d\x30\x4f\xd3\xc4\x3d\x27\x2d\x72\xa6\x15\x92\x46\x18\xf7\x84\xd8\xf0\xe8\x46\xfd\x55\x01\x39\x1e\xa8\x89\xab\xce\x34\xce\x59\x45\xe5\xac\x93\xf4\x5d\x7c\x52\xd0\x1b\x1e\xd5\xb2\xdd\x6f\xcd\xa7\x75\x82\xc3\x4e\xfc\x74\xe2\xa1\xd0\x1b\x02\x6e\xc3\xa3\x81\x6a\xb1\xce\x45\x65\xcc\xe9\x2b\xc4\x63\x4c\xde\xab\x49\x73\x9c\x78\xe8\xe4\xc3\x9a\x7c\x58\x50\x1d\x1e\xd5\x92\x5a\xac\x73\x5a\xe4\xe4\xb7\x9a\xfc\x56\xf0\x1c\x02\x9e\x43\x4c\x76\x4b\xa8\x0e\x8f\x6a\x3f\x9e\x35\x0b\xe2\x2b\x26\x1e\x3a\xf1\xcd\xb9\x8c\x39\x6b\xe4\xa4\x09\xce\x55\x3d\xb4\xda\x71\x43\x48\x0e\x8f\xba\x4e\xed\x55\x8a\xcf\xaf\x2f\xab\x17\x97\x9c\x22\x2b\x26\x6d\x71\xd2\x0d\xe7\x32\x92\x34\xc4\x89\x57\x42\x78\x78\xd7\x5a\xf4\x0a\x97\x9c\x74\xc0\x89\x0f\x4e\x3a\xe0\xa4\x03\xce\x6d\xf4\x70\x40\x88\x0d\x8f\xbe\x77\xe2\x80\x70\x1b\x1e\xd5\xa2\x9f\xf8\xe0\xe4\x8d\x9a\xbc\x51\x90\x1c\x62\x8a\x3a\x80\x4e\x10\xd3\xb9\x0d\xa3\xe0\xd1\xf7\x5d\xce\xea\x79\xfd\xca\x35\x02\x62\x0f\xa6\x13\x1b\x5e\xc1\xa3\x89\x7a\x83\xf9\xe2\x91\x99\x62\x0f\xe0\x18\xbc\x6b\xd4\xaf\x5f\xbf\xee\x6c\x9f\xfc\x32\x93\x5f\x66\xf2\xc8\x4c\xbe\x98\x49\x0b\x83\x6c\xf0\xe8\xeb\x21\x2f\xcc\x74\xe6\x4f\x5e\x98\xe9\xcc\x9f\x75\xe6\x5f\xeb\xed\x1a\xb1\x6b\x06\xe9\x5c\x4b\x04\xc2\x72\xb6\x2f\x67\xfb\x12\x4b\xb0\x9c\xea\xab\xbd\x95\xb3\xe8\x53\xf0\x0d\x62\xb1\xf2\xad\x36\xb5\x4c\x2d\xff\x17\x7b\xe7\xb6\xab\xc9\x6d\xdc\xfb\xfb\xfd\x18\xba\xda\x06\x28\xa0\xc9\x22\xeb\xa0\x57\x11\x74\xe1\xad\x1d\xc0\x83\xc8\x16\x60\xd9\x70\x82\xd8\xef\x1e\xfc\x7f\xec\xef\xb0\x4e\xe3\x35\x1e\xc1\x59\x49\xbe\x9b\x9a\x35\x6c\xb2\x3f\x76\x77\x75\x9d\xfb\x5f\xce\x1c\xe7\x0c\xe2\x22\xc7\x9f\x02\xd9\xc0\xfc\x10\x17\x39\x5e\x95\x23\xf3\x1d\x69\xef\x47\x72\xfe\xe2\x6c\xc5\x78\x31\xae\x37\x1a\xdc\x03\x73\xea\xee\xbc\xd3\xa6\x91\x6c\x8b\x23\x39\x41\x0c\x30\xb0\x02\x44\xf5\x5b\x54\xb8\x39\x51\x38\x47\x66\x82\x00\x20\xca\x7c\xdd\x55\x27\x7f\xe1\x44\xe1\x1c\x69\xe9\x48\x4b\xbe\xfd\x37\x27\x47\xcf\xf7\xfe\xc6\xf7\xfe\xc6\xf7\xfe\xa2\xcc\x0c\xc6\xb9\x22\xaa\xd4\x9c\x68\x9b\x23\x4b\xf9\xea\x5f\x94\x99\x5c\x0b\x79\x0d\xa7\xc1\xa5\x9b\xb8\xc5\x91\xb4\x8e\x57\xe2\x48\x5a\xa7\xdb\xa2\x23\x6f\xf9\xf6\x5f\x94\x39\xe2\x13\x47\xc6\x3a\xd9\x0d\x47\x92\x3b\xfe\x88\x13\x9d\x73\x5a\x5d\x3a\xd2\xd5\xc9\x74\x38\x0d\x2e\x9d\x4c\x87\x23\x6f\x41\x4e\x10\x65\x0e\xcf\x05\xaf\xc4\x6d\x9f\x8d\x67\x81\x87\x02\x6e\x80\x39\x32\xd6\xf1\x50\x1c\x89\xea\xf8\x20\x8e\x44\x75\x22\x75\x4e\xa4\xce\xf1\x47\x9c\xac\x87\x23\x57\x9d\x18\x9d\xcf\xb1\x29\x47\x25\x8b\x1c\xb9\xea\x64\xf3\x9d\x28\x1c\x38\x03\xa2\x0b\xba\xc7\x99\xbf\x98\xcf\xfe\xf1\x53\xc0\x1f\x10\x65\x95\xb3\x0a\x1e\x23\xd7\xef\xc8\x55\x9f\xc1\x08\xdc\x85\xcf\xe2\xf8\x26\x8e\x57\xe2\xc4\xe2\x1c\x7f\xc4\x89\xc5\x39\x72\xd5\xa9\x79\x03\xa9\x40\x74\x42\x19\x19\xcc\xe4\x29\x20\x5d\x1d\xdf\xc4\xf1\x4d\x9c\x0a\x37\x47\xae\x82\x5a\x60\xa0\x16\x88\x72\xce\xc9\xd1\xdd\xd1\x72\x31\x87\xfd\x23\x63\x1d\xe9\xea\xc4\xdc\x1c\x29\xea\xd4\xaa\x81\x48\x20\xaa\xf9\x48\x54\x27\xe6\xe6\xc8\x5b\x30\x0a\x0c\x8c\x02\x03\x9d\x40\x54\xbb\x22\xc2\xe6\x78\x1f\x4e\x55\x80\x53\xbd\xe6\xc8\x5b\x27\xfb\xe3\xe4\x7d\x9c\xea\x35\xa7\x42\xc0\xa9\x61\x73\x67\xb7\x78\x28\x8e\x04\x06\xdf\x40\x94\xb3\x71\xe7\x91\xb4\x4e\x56\x08\xac\x03\x51\x7e\x97\xab\x40\x1a\x83\x6f\x20\xca\x3e\xe1\x1f\xdf\x7b\xe6\xea\xf0\x65\x40\x3c\x30\x10\x0f\x44\x75\x86\xe0\x1a\x91\xd8\xe0\x1e\x98\x93\xdf\x71\xa2\x6d\x4e\x06\xdf\x83\x5f\xc1\xa7\x00\xa9\xc0\xc0\x22\x30\x27\x83\xe3\x54\xa9\x81\x45\x60\x4e\xee\xc6\xf1\x1a\x9c\xdc\x8d\xe3\x2f\x80\x4e\x20\x6a\xd0\x3d\xce\x7c\x9e\x32\x79\x1c\x30\x0a\x0c\x74\x02\x51\xe6\x70\xc7\xf0\x05\x9c\x18\x1d\xe8\x04\xa2\x13\xca\x08\xf7\x04\x5f\xc0\xc9\xec\x38\x95\x6c\xa0\x10\x98\x63\xf9\x3b\xd6\xbe\x63\xd5\x7b\xf1\xd6\xa3\x23\x1c\x0b\xdf\xb1\xf0\x1d\xdd\xe1\xe8\x0b\xc7\xc2\x77\xb4\x86\xa3\x23\x40\x24\x10\xd5\x99\xd1\x08\x8e\xe4\x77\x24\xbf\x13\x6d\x73\x64\x3e\x58\x04\xe6\x58\xfb\x8e\x9d\x0f\x16\x81\x81\x3c\x60\x5e\x92\x96\xf1\x2f\xd6\x0c\x98\x01\xd1\x09\x75\x68\x8a\x76\xc6\xb5\x91\xa0\x10\x3b\x48\xfe\x04\x4e\x40\x50\x88\x1d\x28\x07\x00\x09\x44\x19\xd7\xa6\x82\x60\x5b\xa0\x1c\x82\xa2\x33\x60\x09\x0c\x28\x02\x03\x72\x40\x7f\x33\xbe\x58\xe5\xac\x12\x73\x01\x51\x60\x40\x14\x18\xb0\x04\xa2\xcc\x49\xe6\xd0\x55\x97\xf0\x5b\xa0\x34\x02\xa5\x11\xb8\x08\x41\x71\x77\xe0\x04\x04\xea\x22\x48\xd4\x07\xce\x41\x50\xb2\x0d\x80\x81\x01\x60\x60\x81\x73\x10\x14\xa3\x01\x60\x20\xea\x50\xe6\x18\x6b\x8d\x11\xae\x0b\x87\x20\x08\xbf\x05\xe1\xb7\x20\xf0\x16\x04\xde\x82\x74\x7d\xf4\xc5\x1c\x3d\x90\xc0\x5d\x08\x02\x72\x81\xd3\x10\x9d\x6b\x24\xc5\x14\x24\xf0\x03\xa7\x01\xf0\x03\x51\xe6\xd3\xc0\x96\xe0\x5c\x50\xb6\x16\x14\x80\x07\x81\xba\xc0\x81\x00\x0e\x41\x94\x55\x5c\xe9\xe0\x4a\x09\xcb\x01\x84\x60\x00\x21\x88\x76\x28\xe3\x5c\x2f\x2a\x31\x48\xe9\x03\x7e\x60\x81\x02\x04\xfc\x40\x94\xa3\x93\xa3\x8b\x71\x9e\x1a\x8a\x31\x28\xeb\x06\x14\xc1\x00\x45\x30\x40\x11\x44\xf7\x38\xab\xb8\x16\xc2\x72\x80\x22\x88\xf2\x2b\xc9\x08\x7b\x46\x31\x02\x90\x20\xca\x51\x58\x12\xc5\x18\x24\xa9\x02\xf5\x08\x64\x82\x68\x42\x19\xe7\x8a\x48\x52\x05\xee\x48\x10\xc6\x0b\x42\x74\x81\x7a\x0c\x9c\x0f\x80\x13\x44\x59\xcb\xd5\xe1\x7c\x00\x99\x60\x81\x7a\x0c\x0a\x01\x00\x4e\x30\x80\x13\x44\x99\xc3\xf3\xc2\x35\x09\x12\x59\x40\x29\x88\x32\x1e\x8c\x04\x67\xa0\xeb\x33\x65\x6e\x41\x99\x5b\xec\xde\xcf\x14\x0e\x04\xce\x4a\xa0\x54\x03\xa5\x0a\xe8\x82\x05\x2e\x0b\xa0\x0b\x06\xe8\x82\x01\xba\x60\x41\xc0\x2f\x08\xef\x05\x8e\x4b\xe0\xb2\x04\x41\xbe\x40\xb5\x06\xee\x4b\xa0\x60\x81\x5e\x10\x65\x1c\x4e\x46\xd9\x06\xca\x36\x50\xb6\x40\x32\x88\x32\xc7\x98\xc3\x73\xa7\x8c\x2e\x08\xaa\xc5\xe4\xfe\xa0\x8a\x01\x69\x10\xe5\x3c\x70\xf5\xe4\x5e\xe1\xe2\x00\xdb\x20\xca\x51\xde\x53\xd4\x6f\x90\x04\x8b\xdd\x0f\x1b\x17\x27\x50\xc8\x41\xf8\x30\x70\x71\x80\x73\x10\xe5\x8a\xb8\x1b\xb8\x3b\x40\x3b\x58\x90\x28\x8b\xc9\x3d\xc1\x01\x0a\xd4\x75\xe0\x06\x01\xf9\x60\xb1\xb8\x3f\xa8\xee\xc0\x25\x0a\x12\x68\x41\x58\x31\x50\xda\x80\x40\x18\x20\x10\x06\x08\x84\x28\x23\xdc\x13\x42\x89\x41\x1a\x2d\x70\x83\x02\x37\x08\x88\x08\x51\xce\xc0\xb5\xa3\xb4\x81\x88\x10\xe5\x6c\xf0\x03\x05\xe9\x41\x7a\x0d\xa0\x08\x03\x28\x42\x94\x55\xbe\x67\xf2\x5b\x34\xa7\x26\x18\x19\xb8\x50\x81\x0b\x15\x84\x24\x01\x93\x10\x65\x26\x77\x86\x44\x1c\x90\x12\xa2\xcc\xe4\xfe\xa0\xf6\x83\x20\x65\x60\x20\x00\x32\x61\x80\x4c\x88\x32\x87\xfb\x43\xd8\x32\x30\x19\x82\x04\x5d\x50\x2a\x12\x84\x30\x03\xc3\x21\x70\xce\x02\xe7\x2c\x30\x1c\x82\x22\x91\x20\x60\x19\x98\x0c\x81\xc9\x10\x94\xbd\x07\x26\x43\x60\x26\x84\xf3\xee\x60\x20\x00\x47\x61\x81\x69\x00\x1c\x85\x01\x47\x21\xba\xc7\x99\xcf\xdd\xa0\xb4\x30\x08\x70\x02\x50\x21\xca\x99\x79\x3b\x48\xeb\x01\x56\x61\x80\x55\x58\x90\xb8\x0b\x5c\xb7\xc0\x75\x0b\xc2\x96\x81\xd3\x16\xc1\xce\x71\xda\x82\x42\x92\x20\x84\x09\x58\x85\xa8\xce\x83\xeb\x16\xb8\x6e\x41\x8a\x0f\x98\x0a\x51\xed\x87\x40\x66\xe0\xc6\x05\xe9\xbe\x20\xdd\x17\x94\x16\x06\x49\xbf\x20\xcc\x19\x94\x9c\x00\x65\x61\x40\x59\x58\x10\xec\x0c\x82\x9d\x41\xb0\x13\x40\x0b\x0b\x52\x82\x00\x5a\x88\x72\x66\x9e\x32\x21\x4f\x20\x2e\x44\x39\xdb\xbe\xc6\x62\x3e\xcf\x91\x60\x27\x70\x17\xa2\x9a\x8f\x09\x13\x84\x3c\x83\xc2\x93\xc0\x6c\x09\xca\x4f\x02\xb3\x25\x30\x70\x82\x60\x27\xd0\x17\xa2\xda\x21\x25\x27\x91\x3c\x47\x4a\x11\x83\x90\x67\x60\xd4\x04\x46\x4d\x50\x8a\x18\x04\x3b\x03\xa3\x26\x92\x67\x8a\x51\x03\x60\x86\x01\x92\x61\xc0\x63\x88\x32\x93\xab\xa0\xe4\x30\x48\x39\x06\xc9\x46\xe0\x31\x44\x59\x05\xaf\x12\xe0\x04\x1e\x43\x94\x5f\x84\x4b\x71\x94\x03\x47\x39\x8a\xab\xc3\xe4\x09\x12\x8f\x40\x68\x18\xb0\x19\x16\x14\xb9\x04\x45\x2e\x41\x68\x33\x48\x3c\x06\x0e\x71\x60\xfe\x44\xf1\xbc\x28\x4b\x0c\x5c\xe1\xc0\x20\x0a\x0c\xa2\x20\x15\x19\x98\x45\x40\x68\x58\x50\x14\x13\x14\x24\x06\x06\x51\x50\x08\x13\x98\x45\x81\x2b\x1c\x24\x1e\x03\x57\x38\xb6\xa1\x54\x3c\x11\x92\x90\x80\x6d\x88\xd2\x5c\x5e\x5c\x97\x58\x44\xc0\x3f\x88\x2e\x51\x71\x42\xf2\x01\x53\x92\x98\x4a\x1c\x35\x00\x21\x44\x35\x4e\x98\x2d\xd1\x71\x49\x7a\x2a\x71\x04\x93\xd2\x36\x80\x22\x44\xf7\x08\xf3\x25\xdb\xd3\x06\x7f\x1b\x73\x8c\x39\xc6\x9c\xc9\x79\x26\x73\xe6\x1e\x09\xd1\xc5\xf8\x62\xe6\xe2\xe8\xe2\xa8\xf3\xeb\xce\x51\xdf\x23\x9c\xd9\x59\x25\x7e\x4e\x5c\xc3\xc4\x35\x04\x10\xc2\x12\x6d\x92\x68\x90\x44\x83\xe4\xd4\x73\x01\x28\xc2\x12\x07\x2e\x71\xda\x92\x90\x58\xa2\x29\x92\x60\x18\x70\x11\x06\x5c\x84\x25\x6e\x1c\x80\x10\xa2\xcc\xa1\x59\x3f\x69\xa5\x44\x2f\x24\x7a\x21\xd1\x0b\xc0\x45\x18\x50\x10\xa2\x3a\x4a\xa0\x0b\x10\x08\xd1\x3d\xc2\x1c\xf6\x49\xb8\x2b\x71\xd1\x72\x49\x0e\x24\xa1\xaf\xc4\x2d\x4b\x3e\x39\x4a\xa4\x3a\xb0\x10\xa2\xac\xe2\x09\x22\xc9\x01\x84\x10\x65\x9c\x3b\x80\xc4\x4e\x64\x75\xf2\x69\x51\xe2\x90\x25\x9f\xfc\xee\xc4\x35\x30\x0f\x06\xcc\x83\x25\xe9\xa0\x24\x1d\x94\xb8\x65\x49\x69\x76\x12\xf4\x4a\xdc\xaf\x24\xe8\x95\xce\x3d\xe1\xe3\x21\xe0\x1f\x0c\xf8\x07\x4b\x4a\x1e\x12\x09\x09\xcc\x83\x28\x73\x8a\x55\xc5\x4c\xbd\x59\x89\x84\x04\xf8\xc1\x32\xf8\x5d\x42\x59\x49\x91\x75\x92\xc0\x49\x64\x60\x22\xf7\x12\xb9\x07\xf0\x83\x01\xf9\x60\x40\x3e\x58\x52\x40\x9d\x48\xb9\x44\xb2\x01\xf9\x60\x89\x4c\x4b\x5c\xae\x44\xa6\x25\x45\x76\x19\xdc\x0d\x24\x5b\x92\xcc\x49\xe4\x5b\x22\xd3\x80\x7c\x30\x20\x1f\x44\x03\xaa\xf9\xb8\x62\x89\x1c\x4b\x12\x38\x89\x34\x4b\x24\x58\x22\xbb\x12\xa9\x95\x48\xad\x44\x52\x25\x45\xd3\x89\x2b\x96\xa4\x71\x92\x74\x4d\x92\xa8\x49\x9c\xb3\x24\x51\x03\x50\x84\x01\x14\x21\xca\x79\xb8\xae\xe4\x59\x23\xd3\x32\xe1\x40\x92\x39\x89\x7c\x4b\x92\x39\x49\x91\x75\xe2\xc0\x25\xa5\x16\x89\x1b\x97\x14\x5c\x24\x65\x7a\x49\xc1\x45\x22\xfd\x32\xb9\x1b\x48\x45\xc0\x27\x2c\x29\xaf\x48\x64\x1d\x80\x13\xa2\x06\x9d\x50\xed\x13\xf9\x06\x10\x85\x25\x92\x2d\x29\xac\x48\x8a\xfb\x00\xa5\x30\xe0\x28\x0c\x08\x0a\x51\x46\xe6\x1e\x61\x3e\x9c\x83\xac\x03\x9a\x42\x94\x73\x72\x5d\x48\xbc\x24\x04\x98\x14\x62\x27\xb2\x31\x09\x04\x26\x72\x2f\x91\x7b\xb9\xf9\x96\xe0\x5f\x56\x71\x94\xfd\x23\xf1\x80\xac\xb0\x42\xe2\x01\x5c\x61\x80\x55\x88\x32\x22\x19\x55\x14\x06\x02\x5c\x61\x00\x57\x18\xe0\x13\xa2\x0b\xea\x50\x8e\x16\x67\x28\xc6\x8b\xf1\xda\xe3\xfa\x15\x3c\x35\xa0\x29\x44\x19\x91\xd6\x2b\x3e\x1e\x2a\x4a\x21\x80\xa0\xb0\x22\x39\x03\x10\x85\x28\xab\x26\x73\x74\x37\x8a\x52\xbe\x22\x09\x53\x78\x52\x40\x53\x58\x51\xda\x50\x24\x5e\x8a\x4f\x7f\x00\xa8\x10\x9d\x50\x8e\xb2\x2b\xfc\xa9\xa2\xb8\xaf\x08\x22\x02\x59\x61\x85\x27\x55\x78\x52\xc5\x47\xb4\x45\xa1\x1f\xc0\x15\xa2\x1c\xd5\x73\x2c\xc2\x8d\x40\x59\x88\x32\xd3\x38\x9b\xb8\xba\x28\x7c\x28\x0a\x1f\x00\xb7\x10\x65\x15\x57\x41\xea\xa6\x08\x3d\xd6\x58\x9c\x61\x31\xd3\x99\xe9\x1c\x75\xce\x23\x8e\x2d\xd3\x9b\x0e\xec\x84\xa8\xe6\x53\xa4\x50\xe8\x82\x42\x17\x14\x89\x97\xc2\xeb\x29\x74\x41\xa1\x0b\x80\xa3\x10\x65\x9c\x73\xe2\xdd\x14\x05\x7a\x85\x2f\x03\x10\x85\x28\x67\xe0\x39\x12\x0e\x2c\x12\x2c\x45\x49\x42\x11\x0e\x2c\x7c\x96\x22\x10\x58\x78\x2b\x00\x54\x88\xea\x57\x48\xad\x14\xde\x4a\x51\x92\x00\x70\x85\x01\x5c\x61\x40\x56\x88\x32\xce\x3d\xa1\x40\xaf\xf0\x44\x0a\xbf\xa3\xd0\x23\x80\x55\x18\x60\x15\x56\xe8\x91\x22\x10\x58\xf8\x1d\x40\x56\x88\x72\xb6\xe0\xfc\xc1\x7c\xae\x05\x9f\x02\xc8\x0a\xfd\xcd\x4e\xe0\x40\x3c\x8b\xc2\xb3\x28\x92\x2d\xb5\x24\xbb\x8a\x02\xbd\x42\xef\x00\x5f\x61\x45\x12\x03\x40\x08\x03\x10\xc2\x00\x84\x30\xa0\x20\x44\x27\x74\x41\x1d\xca\x51\x38\x07\x7b\xbb\x08\xd7\x15\xe5\x03\x45\x41\x59\xa1\x23\x8a\xa0\x5d\x11\xb4\x2b\x6c\xef\xc2\xf6\x06\x1c\xc2\x00\x87\x10\x65\x3e\x3c\x4f\xda\xa4\x08\xd7\x15\xd6\x78\x61\x8d\x17\x45\xdc\x80\x43\x58\x61\x99\x17\x21\x3a\xc0\x21\x44\x39\x43\x30\x33\x38\x03\x77\x89\x70\x5d\x39\x77\x89\x0f\x55\x0b\xed\x53\x68\x1f\x00\x24\x0c\x00\x09\x51\x7e\x91\x7b\x88\x0e\x2a\x82\x79\x00\x48\x88\x32\x93\xfb\xc3\xc7\xac\x45\x48\xaf\xd0\x50\x85\x86\x2a\x92\x30\x85\x3d\x5f\x14\x20\x00\x23\x21\xca\x1c\x69\x6d\x20\x25\x44\x19\xb7\x3d\xce\x5a\xee\x03\x5a\xac\x82\xab\x46\x67\x15\x1f\xfd\x14\x21\x43\xe0\x22\x0c\xb8\x08\x03\x2e\x42\x74\x42\xf7\x88\x76\x8e\xce\x2a\xca\xf7\x0a\x9d\x55\x94\x21\x14\x96\x79\x51\x86\x00\x98\x84\x15\x56\x7a\x61\x9f\x17\xc5\x08\x40\x4a\x18\x90\x12\xa2\x1d\x1a\x50\xad\xc2\x56\x2f\x6c\xf5\x42\xc7\x15\x3a\xae\x28\x52\x28\x34\x5d\x11\x6e\x2c\xc2\x8d\x45\xd9\x38\xe0\x13\xa2\x1c\xe5\xb9\xa3\xf5\x0a\xad\x57\x68\xb7\x42\xbb\x01\x32\x61\xc0\x4b\x18\xc0\x12\x06\xb0\x84\x28\x33\x79\x17\xd0\x65\x80\x49\x88\x32\xce\x7b\x81\x46\x03\x52\x42\x94\xf3\xf0\xc4\x93\x6b\x27\x48\x59\xe8\x2f\x20\x25\xac\xb0\xd5\x0b\xfd\x55\x58\xe9\x85\x7d\x0e\x98\x84\x01\x26\x61\xc0\x48\x58\x91\xce\x2a\x82\x94\x80\x49\x88\x32\x0e\x3f\x93\xce\x02\x52\x42\x94\x33\x73\x5d\xe8\x32\xc0\x24\x44\x99\xc3\x55\xa0\xc5\x8a\x12\xc2\x42\x97\x15\xd6\x7b\x11\xda\x04\x70\x42\x94\xa3\x3c\x59\x52\x5b\x45\x98\xb3\xb0\xed\x8b\x02\x43\x20\x28\x44\xd9\x09\xcf\x91\xd2\xc2\x92\x55\x3f\x0f\xe9\x35\x51\x83\x4e\xe8\x82\x96\x68\x3f\xa0\x8c\x77\xc6\xbb\x43\x39\x3a\x38\x3a\x06\x94\x39\x83\x73\x0e\x8e\x1a\x47\x8d\xf3\x1b\x6b\x27\x7f\xcf\x3d\x3f\xf9\x9b\xdf\x9d\xcc\x9c\x9c\x79\x32\xbe\x18\x59\x1c\x5d\xac\x5d\x3a\x67\x77\xcd\xe9\xa1\x39\x3d\x0d\xaa\xa3\x83\xfd\x4b\x8b\xe9\x6f\xcd\x1c\xec\x76\xb0\xdb\xc1\x3e\xa5\x9b\x44\xf5\xeb\xd2\x3b\xf3\x18\xfc\xee\x60\x3f\x83\x9d\x8c\xc9\x19\xf8\x75\xe9\xa0\x09\x6c\xc3\x04\xce\x61\x02\xe7\x30\x81\x73\xd0\x38\x23\xec\x67\x04\xbf\x15\xfc\x9d\xba\x03\xa3\x58\x55\x9c\xa7\x98\x59\x7b\x9c\x33\x94\xce\x60\xdc\x6d\xe3\x0e\x5b\xef\xd0\x05\x75\xa8\x66\x4a\xaf\x4d\x60\x1b\x44\x19\xe7\xae\xca\xeb\x11\x65\xdc\x98\xc9\x15\x19\x77\xd8\xb8\x22\xe3\x8a\x8c\x2b\x32\xf6\x2f\x4f\x67\x02\xed\x20\xca\xd9\x9c\x55\xc1\xd1\xd0\x0e\xa5\xef\x44\x19\xe1\x5a\x8c\x6b\x31\xae\xc2\xb8\xc3\xf3\xd8\x74\x41\x1d\xaa\x99\x93\x6b\x99\x70\xcb\xe4\x5a\x26\xd7\x32\xb9\xf3\x93\x6b\x99\x83\x71\xf8\x64\x72\x2d\xd3\x06\x94\x71\x63\x3e\x9c\x30\xb9\xdb\x93\x67\x31\xe1\x81\xc9\xfe\x27\xfb\x97\xc7\x24\xca\x4c\xae\x42\x5a\x4f\x94\x5f\xe1\x59\x4c\xae\x68\x31\xbe\xa2\x43\x07\xd4\xa1\x09\xd5\xda\xc5\x55\xaf\x64\x0e\xd7\xbe\x78\x76\x8b\x6b\x5f\x3c\x35\x3f\x0e\xa8\x41\x75\x06\xef\x03\xca\xdf\xf0\x98\xc3\x5d\xce\x95\x3a\x4f\xcd\xb9\x52\x87\xdb\x9d\xf7\xc2\xb9\x3a\x87\xcf\x7d\xe9\xfc\x0e\x8f\x79\x6c\xca\x51\x76\x25\x8d\x23\xba\xa0\x8c\x27\xab\x92\xa3\xec\xd0\x79\x2e\xd2\x35\xf3\x08\xf6\x16\xc7\xfe\x5b\xbf\x1b\x9d\x11\xde\xd6\x60\x87\xc1\xb3\x08\xf6\x19\xec\x30\xe0\xab\x60\x9f\xc1\x0e\x83\xe7\x12\xbc\xb9\xc1\x73\x09\x78\x2c\xe0\xab\x60\xff\xf2\x95\xe6\x11\xec\x3f\xe0\xae\x58\x9c\x6d\x71\x94\x77\x24\xb8\xae\xe0\xa9\x05\x4f\x2d\x78\x6a\xd2\x4a\xa2\xcc\xe1\xaa\x83\xe7\x12\x3c\x3b\xe9\xa9\x09\x0c\xc3\x04\x86\x41\x94\x99\x5c\x6f\xf0\x44\xa2\x98\x0f\x37\x06\x6f\x56\xf0\x8c\xa4\x7d\x44\x35\x3f\xb9\xf6\x84\x1b\x13\x6e\x4c\x9e\x94\x74\xd0\x04\x9e\x61\x1e\xc9\xdd\x48\xee\x40\x72\xed\xc9\x75\x25\x4f\x47\x5a\x66\x1e\x09\x07\x26\xd2\x20\xb9\xc6\x84\x1b\x93\xeb\x4a\xdf\x7f\x73\x06\xae\x2b\xbd\xda\x1f\xfe\xfc\xd3\x4f\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x20\x0f\xf2\x5f\x47\x7e\x68\x9f\xfe\xdf\xef\xd3\xfd\xbb\xef\xfb\x31\x8f\xd6\x8f\xd9\x45\x86\x88\x35\xfa\x07\xd0\x3e\x80\xee\x01\xfd\x98\x21\x92\x22\xd5\xe8\x25\x40\x2b\x81\x7e\x2c\xad\x58\x5a\xb1\xb4\x62\x69\xc5\xd2\x8a\xa5\x15\x4b\x2b\x96\x56\xb8\x56\xb8\x56\xb8\x56\xb8\x56\xb8\x56\xb8\x56\xb8\x56\xb8\x56\xb8\x56\xb8\x56\x84\x56\x84\x56\x84\x56\x84\x56\x84\x56\x84\x56\x84\x56\x84\x56\x84\x56\x84\x56\xa4\x56\xa4\x56\xa4\x56\xa4\x56\xa4\x56\xa4\x56\xa4\x56\x64\x34\x0a\x32\xcb\x7b\x36\x8a\x32\x69\x7a\x46\xf9\x27\x8d\xc3\x6a\xc5\xd1\x6a\x2d\xfd\x77\x45\xa3\x8d\x18\xfd\xc6\x68\x37\x56\xcb\x57\xa3\xd9\x58\x2d\xb7\x56\x33\xb3\x51\x5e\x5a\x6b\x68\xac\x7b\xa3\xb6\xb4\x66\x68\xcc\x44\x5c\x63\xae\x53\xb9\xfe\xbb\xf4\xdf\xe0\xcc\x9c\x85\x1f\xd2\x81\xd4\xef\x86\x4e\x1f\x4c\xd1\x58\xe8\x77\x5d\x3b\x70\x76\xa5\x15\x8b\x29\xec\x94\x1f\xf7\x46\x7f\xb6\x72\x5d\x82\x1f\xfa\xab\x0f\x11\x6f\x34\x2f\xeb\x47\xea\x0e\xa5\xee\x50\xe9\xbf\xa5\x3b\x54\xba\x43\xa5\x3b\x54\xba\x43\xa5\x3b\x54\xba\x43\xa5\x7b\x5a\x5a\x51\xd5\xe8\xf0\xd0\xfb\xd1\x1b\x5d\x1e\x7a\x3f\xb4\x62\x2c\xfd\xa5\x15\x23\xf5\x97\x26\x9b\xa6\x74\x9d\xd9\x34\xd6\xb3\xf5\xf0\x46\x27\xca\x9e\xd6\xf8\x3e\x81\x4e\xa1\x5d\x37\xcf\x6d\xb4\xee\xc7\x0f\xed\x9b\x4f\xbf\xfc\xfc\x6d\xe6\xaa\x6f\xc7\x37\xdf\x7d\xdf\x75\x3e\xad\xb0\xa3\x75\x9d\x51\xd3\xcc\x5a\xb7\xd9\xba\xad\xd6\xcd\x5b\xb7\x68\x5d\xbf\x61\xd5\xba\x38\x57\x8c\x2b\xbe\x15\xdb\x8a\x6b\xc5\xb4\xe2\x59\xb1\xac\x38\x56\x0c\x2b\x7e\x15\xbb\x8a\x5b\xc5\xac\xe2\x55\xb1\xaa\x38\x55\x8c\x2a\x3e\x15\x9b\xd2\x71\xfe\x68\xa0\x45\x8e\xce\x5e\x37\x6e\x9c\xb7\x2e\xf6\x04\x89\x04\x1c\xa4\xb6\x3f\x23\x8d\x06\xca\x1e\x9f\x4a\x15\x97\x3c\xbc\xb7\x8d\x75\x3c\x1a\x1f\xf3\x6e\xdc\xad\x16\xba\x39\x60\x71\x80\x22\xd4\xf6\x07\xa8\xd9\x28\x7c\xe5\xf3\x0f\x50\x05\x5b\xd7\x43\xa9\xd9\x86\xf6\x04\x2e\xbd\xb5\xa1\x77\x86\xce\xf5\xd9\xc6\xee\x00\xdc\xe8\xb0\x98\xa3\xd1\x15\x9d\x5e\xce\xf4\x2a\x6f\x14\x89\x8f\x68\xa3\xf7\x46\x47\x28\xf3\x46\x9f\xdc\x8d\x19\xd7\xe8\x1b\xbb\xbf\x84\x6f\xf4\x61\xdc\x38\x38\x8d\x4f\x85\x67\x6f\x63\xac\x36\x86\x37\x3a\xdd\xd2\x29\x62\x36\xba\x2d\xee\x0e\xf9\x6d\x77\xd2\xed\x6d\xf7\xd2\xd5\x78\xb4\x61\x74\x69\x6f\x1b\xf3\x1b\xc4\xe3\x46\x4f\xdd\x8d\xae\xd9\xc6\xf4\xb6\x11\xff\xf8\xce\xbf\x81\xfb\xa7\x73\xad\xd1\x36\x72\xd1\x6a\x31\xea\x9e\x1d\xec\xa3\xb0\x43\x4d\xd8\xa1\x4b\x62\xf9\xdc\x02\x74\xe8\xed\xb9\xf0\x03\x98\x33\x47\xe3\x53\x2f\xbd\x0a\x61\x7b\xd2\x95\x21\xf4\x6e\x49\x48\xe9\xff\x12\x51\x34\x75\x33\x5e\x0b\x18\x02\xb8\x1a\x3d\x54\xda\xc6\xb4\x9e\x67\x65\x95\x38\xa2\xeb\x97\x4e\x8e\x60\x50\x2c\x31\xf4\x08\x25\x3c\xc5\x12\xc7\xb1\x59\xe2\x18\x9b\x25\x8e\x79\x63\x89\x23\xce\xfd\x1e\xd5\xe8\xc2\x79\xf2\x04\x1d\x30\x4f\x9e\x18\xa9\x7f\x03\x9e\xa0\x87\xf2\x00\x77\xa3\xd1\x71\x7e\x58\x1b\x63\x5e\x79\x62\x9f\x4c\x0f\x57\x0f\xd1\xd7\x66\x0a\x1b\x9b\x29\x6c\x6e\xa6\x10\xc3\x5d\x98\xc2\xce\x6b\xa1\xa7\xe7\x1c\x57\xae\x18\x59\x57\xae\xa0\x77\xf2\x2c\xb8\x82\x4e\x9f\x20\x52\x80\x5a\xf6\x9c\x2b\xe6\x47\xe1\x0a\xda\x6a\x00\x49\x09\x57\xf0\x5d\x7b\x5f\x4f\x84\xc4\x6e\x42\x2a\x41\x91\x57\x21\xd1\xa5\xbb\xee\x85\x84\xf6\x43\x8b\x4d\x1a\x6e\x3c\x11\x12\xb4\x97\x2e\x20\x82\xda\xfe\x0a\x10\x50\xea\x36\xb4\x9f\x93\x25\xba\x78\x4b\x62\x5b\x52\x9b\x66\x48\xe3\xa5\x90\x88\xbc\x71\x04\xad\xc4\x01\xa7\x6f\x7c\x3d\x0f\x53\x8c\x46\x73\xd6\x0b\x43\x6c\x04\x88\x67\x0c\x01\x78\xce\x66\x88\x15\x37\x21\x21\x41\x23\x7e\x18\x12\x0c\x34\x4d\x7b\x29\x24\xa2\x6e\xfc\x40\x63\x77\x60\xe5\xdb\x6e\x40\xd3\x37\x3b\xcc\x75\x63\x87\x8d\xb0\xf0\x8c\x1d\x80\xc9\x79\xce\x0e\xeb\x83\xb0\xc3\x56\x89\xc7\x90\xfe\x1c\x71\xea\xc5\x43\x9b\x3a\xb4\x2b\x94\xe3\xa1\x7d\x1d\xda\xd8\xa1\x9d\x1d\xda\xda\xa1\xbd\x61\xd8\x18\x3a\x54\x0b\xfe\x77\x19\x63\xbf\xb6\x71\xb2\x4d\x0c\x8c\x93\x7e\xb8\x48\x9c\x16\x4a\x97\x68\xed\xfd\x38\xcd\x94\xde\xb5\xa2\x9b\xc8\x6c\x74\xaf\xa2\x79\x15\x6f\x30\xe6\x4b\xef\x4f\x78\xcd\x3f\x08\xaf\x3d\xb3\xe5\xaf\x3a\xe9\xf3\xa4\xaf\x79\xa7\x9a\xbe\x86\x74\x19\xbe\x2f\xc7\xe2\xfa\x97\x2e\x47\x0f\x41\x96\x73\x97\x19\x4b\x0b\xa4\x2e\x73\xb7\xcb\xbe\xed\xb2\x6f\xbb\x4c\xe0\x2e\x0b\xb6\xcb\x96\xed\xb2\x7e\xfb\x12\xbb\x2c\xb1\xcb\x12\xbb\x2c\xb1\xcb\x12\xbb\x2c\xb1\xcb\x4a\x6e\x84\x56\x88\x5d\x96\xd8\x65\x89\x5d\x96\xd8\x65\x89\x5d\x56\x7d\xe6\x66\x74\x8c\x61\x17\xbb\xf8\x81\xf9\x29\x8d\x7e\x4c\x11\x49\x6e\xb1\x8b\x8b\x5d\x64\x48\x77\x17\xbb\xb8\xd8\xc5\xc5\x2e\x32\xa9\xbb\x8b\x5d\x5c\xec\xe2\xc8\x7a\xd8\xa5\x6b\x45\xcf\x5f\xc1\x21\xbb\xf1\x5a\x7c\x10\x5e\x4b\xe9\x82\x1c\x5c\xa2\xb5\x94\x59\xc0\x67\xe3\xdd\x6f\xf6\x70\xf7\x6a\xa9\x67\xa1\xc7\xad\xa7\x7d\x61\xb2\x94\x52\x91\xb2\xeb\x58\xc9\xdb\x00\x2a\x39\x47\x47\x6f\xa5\x27\x90\xd6\x4a\xfe\xca\xb1\x5a\xe9\xee\xcb\x39\xd3\xbd\xcf\x6a\xd5\x8f\x56\xbd\xb7\x92\x2b\xd3\xad\x55\x9f\xad\xfa\x6a\x25\xaf\x46\xfe\x9b\xdc\x37\x79\x6f\xe3\x68\x35\x7a\xab\x31\x5a\x0d\x6b\x25\x37\x6c\xac\x56\xc3\x5b\x8d\x68\x35\xb2\xd5\x38\x8d\x90\xb2\xde\x4a\x3e\x99\x59\x2b\x9b\xad\x6c\xb5\x32\x6f\x65\xd1\xca\xb2\x95\xc9\x1d\x94\xf7\xd6\x5b\xcd\xd1\x6a\xca\xc5\x9b\xad\xe6\x6a\x35\xe5\x67\x85\x7c\x2d\x39\x5d\x72\xf3\xe4\xef\xc9\xf1\x93\xa3\xd7\x6a\xfb\x66\xf2\xd4\xe4\x99\xc9\x9f\x6b\x25\x8f\x51\x8e\x9b\x3c\x38\x39\x7f\x72\x19\x71\x7f\x56\x2b\xb9\x85\xf2\x0a\xe5\x00\xca\xef\x94\xdb\x29\x5f\x53\x7e\x9f\xdc\xbe\x98\x2f\xd8\x22\x3f\x08\x5b\x9c\xaf\xd3\xb8\x1a\xc5\x5d\x7a\xe3\x19\x4f\xc8\x94\xb8\xe7\x89\xae\xf7\xff\x34\x7f\xee\x39\xe2\x62\x12\xf7\x1c\x57\x93\xb8\x63\x11\x06\x1c\xd1\x73\x73\x44\xaf\x17\xb2\xef\xc3\x91\xe4\xa2\xa7\x76\x3c\xb5\xe5\xa9\xf7\x62\x4a\x46\x4d\xc9\xa8\x29\x19\x35\xa5\xd2\xa6\x54\x9a\x5c\xf7\x3e\xa5\xd2\x66\xf1\x10\x78\x0a\x7a\x0c\x92\x51\x4b\x6f\xc8\x92\x8c\x5a\x92\x51\x4b\x32\x6a\xe9\x2d\x59\x92\x51\x4b\xef\xc9\x92\x8c\x5a\x9d\x07\xa7\x15\x92\x51\x4b\x2f\xdd\xea\xf3\xc9\xae\x0e\xbd\xc5\xa7\x33\x70\xcf\x50\xfd\xf8\x20\x1c\x25\x7b\xfa\x62\x2f\x63\xa3\x62\x4f\x1f\x30\x94\xec\x6a\x6c\x56\x1c\xef\x3c\xed\x68\xc0\x16\xb1\x8b\x2f\xf6\xf4\xc5\x5e\xc6\xc6\xdc\x4d\x1e\xdb\x6e\x02\xe9\xdb\xe6\xc4\xd1\x04\xbf\x63\xcb\x26\xdb\x3d\x60\xbe\xce\xa0\x3e\xa2\x81\x8c\x7f\x1a\xd4\x57\x0f\xeb\x34\xa8\x65\x38\xbf\x66\x50\xcb\xeb\x1e\xe3\x57\x30\xa8\x4d\x7e\xd4\x71\x35\xa8\xaf\xfe\xd5\x69\x50\xcb\x70\x7e\xcd\xa0\x96\xd7\x0d\xcc\x57\x1f\x4f\x18\xe2\xa3\xb8\xdd\x39\x08\xbf\xdc\x44\x4c\xea\x6e\x5d\x64\xcc\x40\xf3\xd6\x76\xbf\x9e\xcb\x98\xca\x17\x32\x26\x75\xcb\xef\x85\x8c\x6e\xc9\x6e\x80\x60\x2f\x84\x8c\x6e\x3b\xfe\x9d\x1e\xfd\xf2\x33\xf8\xb2\x59\x02\x16\x10\x9f\x9e\x2c\x61\x11\x9b\x1d\x76\x6b\x54\x78\x77\xc3\x26\x5f\x02\x31\xab\x9d\xed\x82\x9e\xf8\x58\xb6\x5b\xb9\x11\x58\xda\x7e\x15\xf8\x34\xf0\x36\x2c\x41\x1b\xed\x93\x35\xdc\x6e\x2c\x91\x27\x9f\x9f\x2c\x61\xfa\x6d\xb1\x43\xf5\xed\x4b\xed\x16\x92\x9b\xd7\x09\xc4\x78\xdb\x8d\x87\xec\x89\x8f\xb5\x9b\x9e\x01\xde\xce\x6b\x80\x8f\xb5\xd1\x6b\xd0\xf7\x4f\x78\xe2\xa3\x38\xdd\xe1\x39\x1a\x30\x52\x62\x8a\x1d\x04\x89\x16\x5e\x5b\x4e\x44\x1e\x5b\xf3\x44\x76\x4d\xae\xde\x42\x66\xc1\x85\x31\x2c\xbc\x45\xe8\x90\xbc\x6c\x42\x20\x59\x0d\x48\x28\x10\xa1\xc4\x1b\x11\xee\x3a\x91\xc6\x39\x65\xef\x2d\x42\x0b\x65\x5c\x00\xce\x04\x36\x53\x84\xb8\xeb\x2e\x36\xf3\x5c\x6e\xbc\x27\x34\x63\x31\x5e\x46\x66\x4e\x26\x89\x48\x87\xcd\x9f\x87\x66\x08\xd7\xc5\x7c\x11\x9a\x79\x2e\x38\xde\x13\x99\xb1\xb0\x97\x81\x99\x93\x4b\x00\xae\xd2\x6b\xf2\x3c\x32\xb3\x21\x02\x57\x1b\x6b\x3d\xe1\x92\x0f\xe3\x8b\xfb\x4d\x70\x60\xb1\xca\x38\xd1\xfb\x88\x2e\xd1\x62\x79\x28\x71\xbc\xcb\x38\x41\xd7\xdc\xc9\x0d\xe3\x5f\xf1\xca\x36\x57\x77\x9b\x2c\xf0\xce\x5a\x97\x9e\xff\x4a\x96\x90\x2a\x79\x8b\x25\x2e\xb1\x99\xd7\x38\xe2\xaa\x4a\xbe\x92\x23\xa4\x4a\xde\xe2\x88\x4b\x6c\xe6\x35\x86\x90\x2a\x79\xce\x10\x1f\xc5\x61\xc6\xb6\xa0\x3d\x68\x3f\x5d\x98\x31\xc6\x0b\x8e\x58\x84\x62\xfa\x2d\xa4\x0f\x92\x5b\x5d\x39\x02\xd4\x4b\x50\x7c\xfa\xa9\x9c\xee\x58\x62\x70\x82\x78\xc1\x12\xcf\x23\xb8\x97\x98\xfe\x56\x29\xef\x64\x89\x33\xa6\x7f\xcf\x12\x97\x98\xfe\x56\x1f\xf9\x92\x25\xf2\x68\xcb\x5e\xc6\x6f\x2f\x31\xfd\x1d\xcf\x7f\x27\x4b\x9c\x31\xfd\x7b\x96\xb8\xc4\xf4\xb7\xfa\xa8\x97\x2c\x91\xbd\x2d\xad\x85\x25\xfe\xf5\xe7\x4f\xf9\xed\x1f\xbf\xf9\xee\xfb\x9d\x15\x23\xdf\x46\xc6\xea\x96\x3d\x23\x8b\x45\xe2\x6c\x27\xe2\xc8\xa3\x91\x51\x93\xbb\x26\xc7\xfd\xcc\x6c\x91\xe3\xba\xa5\xb7\x9e\x64\xf2\xb2\x6a\xec\xd4\x12\x69\xa7\x9d\x72\x92\xf0\xce\x3c\x66\x03\xa3\x0a\xd3\xa2\xea\xe2\x97\xe6\x69\x0c\xc4\x25\x07\xb7\xf3\x7c\x73\x47\x90\xce\x54\x1b\x0e\x1d\x1e\xdd\x4e\x0a\xd6\x25\x1b\xb7\xf3\x72\xe3\x4c\x05\x9e\x49\xc1\xf5\x34\xe3\x77\x66\x15\x09\x10\x9e\xa9\x45\x12\x8a\xb7\xec\x1e\x59\xc0\xbb\xb4\x5f\x9c\x89\xbd\x9d\xe2\x13\x03\x79\x9d\x01\xae\xbb\xd8\x1b\x71\xb1\x5b\xd8\x8d\x80\x19\xa1\x38\xa2\x66\xef\x8c\xbd\xed\x6c\xde\x6b\x01\xb8\x1d\xc6\x9b\x67\x88\x8d\x60\xdb\x8e\xea\x95\x9f\x11\xb7\x33\x14\xb7\x2e\xf1\x38\x02\x84\xb7\xd8\x25\x71\xc5\x5b\xd8\x92\x80\x23\xa1\x4c\xa2\x8e\xef\x8d\x5d\x12\x70\x7c\x2d\x80\xb9\xc3\xa0\xe3\x1a\xa2\x8c\x4b\x54\x74\x47\x31\xeb\x1a\xca\xe4\x27\xfd\xc2\x84\x7f\xfe\xef\xc7\x84\x04\x2f\x61\xc2\x5b\xf0\xf2\x4d\x26\xec\x9b\x57\x7a\xbe\xcd\x84\xc4\xa6\x61\xc2\x5b\x6c\xfa\x4d\x26\xec\x38\xf3\x04\xa7\x1f\x4c\xf8\xf5\x4c\xf8\xfb\xdf\xfe\xf8\xe9\x0f\x7f\xfa\xf9\x97\xdf\x7d\xf7\xfd\xcd\x30\xa8\x53\xfa\xd7\x56\xf2\x28\xf4\x75\x4a\x6d\x3f\x15\x78\x9c\x4a\xbc\x9f\x92\x7a\xdc\x49\xeb\x38\x25\xf6\x45\x81\xf7\x53\x4a\x8f\x53\x79\xfb\x56\xe0\x92\xce\x48\xe9\x2d\xa1\x53\x3f\x00\xff\x5d\x7d\xac\xd0\xa0\xa3\xd7\xa4\x37\x30\x89\xbc\x1a\x78\x8d\x04\x69\x3c\xc5\xbf\x07\x9a\x8b\xc0\x60\x48\x8b\x47\x3c\x61\xed\x85\xbd\x94\x71\x90\xfc\xd7\x5f\x7d\x07\xc1\xc0\x1d\xc4\xee\xca\x1d\x71\x43\x01\xe9\x21\x54\xdf\x46\x5b\x8c\xfd\xba\xcc\x63\x9c\xaf\x8c\xac\x75\xcc\xb4\xd4\xe6\xec\xd8\x06\x1e\x0a\x75\x61\x17\x5d\x94\x6d\x4a\x33\xa6\x54\x23\xae\x1e\x0a\xfa\x16\xbc\xe4\xdd\xf2\xc0\x44\x41\x2f\xa7\x6c\x82\xd3\x16\x98\x5a\xbd\x8e\xe6\x53\xce\x96\x68\x6a\xfd\xda\x65\x0b\xd2\xaa\xd8\x0b\x39\xc8\xcd\x4f\xf4\xb4\xf4\xf9\xd6\xd5\xc7\x33\xf3\x6d\x5e\x75\xb4\xd3\x61\x72\x6b\xed\x53\x33\xf7\x20\xd9\x8b\x0f\x22\x43\x28\x16\xa9\x65\xc9\x09\x5d\x77\xcf\x49\x35\x40\x58\x6f\xd1\xfb\x0f\xed\x9b\xbf\x7c\xfa\xc3\xff\xff\xf9\x2f\xbf\x7c\x9b\x21\x1f\x6c\x5b\xb3\xcf\xac\xa9\x7d\x5b\xbe\xc0\x9c\xba\xdd\x96\xfb\x5b\x35\xfc\xee\x1e\xbe\xc7\xaa\x32\x3a\xaa\x81\x8e\x09\x6c\xf1\xa2\xa1\x10\x1d\x62\xc8\x79\xee\xc4\x25\x2d\x4c\x08\xbb\xd0\x84\x84\x8e\x23\xbb\x4d\x09\xdd\x48\x68\x40\x42\xff\x11\x11\x3a\x88\xd0\x22\x64\x77\x1a\xa1\xb9\x08\x5d\x45\xda\xee\x39\xba\x5b\x21\x1c\xbb\x37\x08\x4d\x41\xe8\x09\xd2\x76\x2f\x52\xdf\x8d\x42\xe8\x19\x42\xe0\x43\x2b\x28\x74\x00\x55\x9f\x2c\x26\xa8\xff\x63\x37\x05\xa1\x0f\x08\xad\x3f\xe8\xf6\x41\x6b\x0f\xfa\x6c\xd0\xb4\x83\x0e\x1d\xb4\xe6\xa0\x1b\x07\x4d\x37\xe8\xb6\x41\x6b\x0d\x7a\x6a\xd0\x4c\x83\xce\x19\xb4\xcc\xa0\x27\x06\x6d\x30\xe8\x7f\xf1\x6a\x80\xd0\x76\xe7\x05\x1a\x2f\xd0\x5d\x60\xed\xf6\x13\xf4\x9a\xa0\xb1\x04\x5d\x24\x68\x1f\xd1\x76\xe3\x54\xe0\xdd\xc0\x0d\x05\x36\xf4\x6c\xce\x40\x67\x85\xdd\xe8\xa1\xed\x76\xaa\x00\x89\x5e\x5a\x34\xb4\xdd\x56\xd5\x77\x2f\x05\x5a\x26\xd0\x73\x81\xb6\x09\xf4\x54\xa0\xa5\xc2\x7a\x23\x11\x71\xe1\xbb\x3e\xd6\x71\xcf\x78\xbc\x0e\xe2\xbc\xf3\x95\xb0\x63\x0b\x92\xfd\xbe\x98\xef\xb7\xc4\x90\x2f\xb4\x1f\xf4\x5d\x26\x93\xa7\x5d\xfd\x7e\xf6\xdb\x28\xb1\xcb\xf6\xbb\x89\x9d\x09\xa4\x27\x10\xc3\x3b\x1a\x20\xd7\xfc\xae\x4e\x67\xe0\xfb\x3d\x8d\x41\xdb\x7a\xe9\xe6\xdd\x1b\xf5\xf7\x75\x3a\xcf\x63\xd0\xb8\x0c\x6b\xcb\x1e\xeb\xb1\xeb\x74\x00\x2f\x7d\xd4\xe9\x3c\xe1\x90\x2e\x3f\xef\x9a\xfb\xde\x2c\xd2\x8f\x78\x95\x47\x2e\x32\xf7\xd8\xa9\x70\xb8\xe4\x92\x0f\xf7\x6b\x52\xbc\x76\xf2\xf6\x4b\x58\x85\x54\x2e\xbc\x72\xc9\xe7\xfa\x35\xa9\x7b\xc9\xd1\x5f\x0b\xd3\x48\xc5\x8b\xa5\x37\x9f\x9c\x3c\x83\x75\xb4\xcd\xa4\x7c\x19\x1c\x20\x87\x7f\x89\x0e\x60\x39\x6d\x73\x4c\x0b\xee\x39\x47\x36\xdb\x25\x09\x9d\x3b\xb6\x48\xaa\x99\x6a\x80\x33\x07\xdd\x1f\x69\xfe\xaf\x4b\xf3\x3f\x65\xc0\xf1\x42\x44\x61\x41\xbc\xc2\x7e\xd2\xbc\xcf\x44\x94\x98\x02\x88\xe1\xfe\x25\x1a\x52\xea\xfb\x99\x88\x32\xf2\xde\xa7\x88\xf2\x17\xa1\xa8\xb7\xd2\x64\xef\x8d\x44\xbd\x95\x26\xbb\x44\xa2\xee\x23\xd8\x8f\x48\xd4\x7a\xca\x21\xf6\x6e\x0e\xb9\x2a\x31\x99\x50\x5b\x3c\xfd\xe3\x36\xd4\x96\x4c\x6b\x9e\x82\xe9\x15\x2b\xea\x9a\x0a\xff\x0c\x87\xec\x6c\xeb\x33\x16\x79\x33\xb9\x7e\xcf\x23\x8f\xe4\xfa\xdf\x4f\xae\xdf\x71\xc9\xfc\x15\xe4\xc8\x17\x72\xc9\xdb\x72\x04\x6c\xeb\xff\x09\x72\x24\xfd\x8b\xe5\xc8\xb5\xa4\xf6\xd7\x90\x23\xa4\x31\xbe\x4c\x8e\x5c\x2b\x72\x9f\xcb\x91\xf5\xe5\x1c\xf2\xb5\x72\xe4\xca\x21\x9f\x95\x23\xcf\x92\x1e\xe3\x9f\x56\x91\x01\x8b\x4c\xed\x68\x6a\x4b\x53\x7b\x9a\xda\xd4\xd4\xae\xa6\xb6\x35\xb5\x9d\x29\xd6\x9d\xba\x73\xd3\x09\xe7\x6b\x85\xf6\x36\xb5\xb9\x29\x06\xc6\x68\x9a\xda\xdf\xd4\x06\xa7\x76\x38\xb5\xc5\x49\xd1\xd8\xd0\x95\x0f\x42\xfe\x48\x57\xb9\xa7\xe3\x7d\xb5\x6f\x1f\xbe\x20\xe3\x8e\xc5\xfc\xca\x62\xf2\xef\xde\xc9\x63\xf2\x11\x6f\x62\xc8\xf9\xca\x22\xf9\x8b\xfc\x78\x7f\x97\xc2\x0a\x2c\x57\x3d\x73\x27\xc7\x71\x0a\xa3\xd4\x1b\x9d\x7a\xa5\x7b\x90\x82\x3f\xce\x62\xc2\xbf\x2b\x90\x86\x7f\x9d\x44\x22\xa2\xf9\x9c\xdf\x96\x7e\x82\xaf\x4a\xfe\xa9\x95\x86\xbc\x3b\xaf\x54\x1b\xbe\x56\x54\x48\x68\xcd\x8f\x1d\xc0\x7b\xad\xb8\xf0\x35\xb9\x75\x2b\x38\xbc\x48\xae\xd7\x0a\x0f\x25\xbd\x6e\xc5\x87\xbc\x90\x4e\x80\xab\x76\x11\xe2\x2d\xbc\x77\xe1\xb0\x1e\xd3\x9f\x72\x58\x7c\xb9\x47\xff\x54\x88\x79\x5e\xeb\xd4\xbf\xce\x18\x8a\x85\x07\xfe\x66\x59\xd9\x39\xf0\x8f\xd5\x7c\x3c\x67\xab\x47\xc9\xc7\xdb\x25\x1f\x2f\x7c\xfa\xfc\x0a\x45\xf7\xb5\xa6\xd0\x95\x47\x3e\xb2\x29\x74\x89\xfa\x7c\xce\x14\x0a\xcf\x17\x99\xdc\x41\x69\xc9\x2d\xea\x33\xbb\x7f\xd6\x14\x9a\xd6\x5b\x44\x7f\x3b\x93\xfb\x19\x53\x28\xbc\x5e\x64\x72\x65\x0a\xe5\x71\xab\x13\x9b\x3d\x3e\x6b\x0a\x4d\x3d\x95\xcd\x2e\xb2\x85\xfe\xed\xdb\xdf\xff\xf6\xc7\x6f\x7f\xfc\xf7\x3f\x7e\xfa\xe9\xa7\x4f\x3f\x7e\xf3\xf1\x3f\x1e\xbd\xe5\x39\x36\x77\x3c\x4b\x74\xec\x48\xce\x93\x4c\x07\x91\x2c\xc2\x4f\xe4\x3a\xf8\x9e\x83\x70\xd6\x2b\xd9\x0e\x42\x40\xe2\xa0\x1d\x37\xe2\x0b\x8f\x57\x3f\x89\xb4\xf3\x5b\x03\x42\x5d\x67\x80\xea\x12\x14\x7a\x6f\xda\x83\xe0\x18\x21\x2d\x62\x65\x3b\xc2\x75\xbc\x27\xf7\xb1\x6b\xe7\xee\xe3\x5f\xb5\xe3\x62\x3b\x50\x75\xfb\x9e\x73\xe7\xe2\x3e\x6c\xe8\x47\x12\xe9\x87\xbf\xfd\xed\x37\xff\xf7\x4f\xbf\xfb\xf4\xcb\x5f\xff\xfa\x1f\x7f\xfb\xcd\xff\xf9\xcf\x00\x00\x00\xff\xff\x18\x7c\xac\x1b\x46\x15\x08\x00") - -func web_uiAssetsEncodingIndexes75eea16b259716db4fd162ee283d2ae5JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsEncodingIndexes75eea16b259716db4fd162ee283d2ae5Js, - "web_ui/assets/encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js", - ) -} - -func web_uiAssetsEncodingIndexes75eea16b259716db4fd162ee283d2ae5Js() (*asset, error) { - bytes, err := web_uiAssetsEncodingIndexes75eea16b259716db4fd162ee283d2ae5JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js", size: 529734, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsFaviconIco = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x58\x6b\x88\x1c\x45\x10\x9e\x44\xcf\x27\xe8\xa1\xc1\x47\x40\x3d\x91\x1c\x07\xfe\xf0\x11\x8d\x5d\x3d\x9b\x73\x35\x51\x3c\xd4\x28\x62\x50\x13\x15\x7c\xe0\x1f\x51\x10\xed\x9a\xdd\xbb\x88\xa3\xe0\x0f\x3d\x54\x14\x94\x04\xfd\xa1\x7f\xf3\x43\xcc\x43\x12\xf0\x81\xe0\x03\x22\x3e\xa2\x20\xa8\xf8\xa3\xab\x67\x6f\x93\x8b\xe6\xa2\xf1\xd4\xe0\x23\x23\x35\xbb\x73\x3b\x37\xd7\xbd\x77\xb3\xae\x88\x61\x0b\x86\xdb\xe9\xa9\xaa\xaf\xba\xba\x5e\x7d\x9e\xb7\xc8\x5b\xec\xf5\xf7\xf3\xdf\x01\x6f\xa8\xcf\xf3\x06\x3d\xcf\x1b\x18\x68\xbe\x2f\xf1\xbc\x35\x7d\x9e\x37\xe4\x79\x5e\x3f\xaf\x7b\x8d\xf5\x84\xfa\xbc\x7f\x9d\x46\x57\x4d\x9e\x8e\xd2\x8c\x21\xd0\xa7\x28\xf4\x8f\x4a\xd0\x34\x0a\xbd\x1b\x25\x85\xe3\x57\xef\x3d\xb1\x9d\x2c\xfa\xd1\x4d\x0a\x68\xbf\x12\x3a\xb6\x3d\x08\x9a\xd0\xa7\xab\xec\xb2\x66\x8d\x02\xfa\x33\xe1\x13\xf4\x17\x0a\xda\x82\xa0\x55\xf2\x24\xbf\xe9\x0f\x04\x9a\x0a\x4a\xb5\x0b\xf2\xb2\x21\x44\xa7\x34\x6c\x65\x0c\xaa\xa3\x6f\x2e\xc9\xf3\x54\x4a\xb4\xbc\x22\xcd\xa5\xfc\x3b\x80\x68\xdd\xb3\x10\x1d\x9f\x7e\x0b\x80\x1e\x4f\x71\x99\x6f\x3e\x1f\xa1\xa0\xc7\x18\x73\xe6\x1d\x68\x57\x13\x7b\x5b\xba\x16\xc7\xf1\xa2\x00\xe8\xce\x40\xea\x6b\xb3\xb2\x81\x34\xb7\x86\xe5\x7d\x67\xa0\xd0\xeb\x33\xf2\x3f\x37\x7c\x64\x46\x5b\x6b\xfa\x9e\xd4\x6f\x15\x41\xab\xd3\x75\x05\x66\xbc\x5a\xaa\x0d\x06\x82\x1e\xc8\xf0\x1e\xcc\xcb\x2b\xa1\xef\x6d\xf9\xdd\xdc\x98\x95\x57\xc3\xd1\xb2\x00\xf4\xfd\xad\x35\xfa\x38\x6f\xff\xe6\xb5\xf1\x51\x28\xe9\x0e\x94\x74\x73\xd6\x7e\x05\xe6\x36\xf4\xcd\x52\xde\x5b\xde\x7f\x4a\xd0\xe1\xd4\xc7\xed\x88\xf9\x39\xce\xd2\x77\xf6\xa5\x02\x7d\xa0\x69\xef\x1e\x84\x68\x45\x5e\x86\xf5\xa6\xeb\x1c\x67\xf9\x58\x0c\xa4\xb9\x61\x56\xfc\x00\x6d\x0b\x80\x2a\xfc\xf0\xef\xe4\x1b\xe8\x03\xa3\xb2\x76\xa1\xcb\x2e\xd6\x8b\x82\x7e\x70\xc5\x6f\x12\xdb\x40\xd7\xb5\xdb\x5b\x28\xf7\x9e\xd6\xc8\x1f\xfd\x59\x73\x4f\x3f\x25\xb9\x24\xcd\x58\x76\xcf\x3d\xea\x0e\x0d\x35\x6b\x64\x39\x5b\x27\x97\xfc\xd7\x56\xfd\xbf\xa9\x0a\xf5\xa1\x40\xea\x27\x15\xd0\x56\x25\xf4\x17\x69\x1f\x50\x40\xdf\x21\xe8\xf7\xb8\x17\x54\x4b\xd1\x65\x5c\xe3\xba\x89\x1b\x48\xba\x5d\x81\xfe\xc8\x99\x7f\x73\x1e\xfa\x4a\xf9\xe6\x96\x30\x8c\x17\xff\x13\xdc\x66\x3d\x7e\x73\xe1\xb8\xf9\xbe\x46\xbb\xc6\x64\xfd\x9c\x4e\xb0\xb9\xb6\x2b\x41\xdf\x77\x8a\x9d\xad\x4d\x15\x98\xb8\xa8\x10\x76\x89\x96\xb7\x7a\x8f\xb3\x67\x1f\x54\xa0\xb5\x02\xaa\xa5\x3d\xd6\x81\xbf\x75\xd3\x7d\xf1\x82\x27\x94\x4a\x79\xcf\x00\xd7\x7a\xc7\xb9\x4e\x2b\x49\x4f\x29\xdf\xac\x0c\xcb\xf1\xd1\xa9\x0c\x9f\x73\x00\x5a\x22\xd0\xd3\x99\x7e\xc1\xd8\x6f\xbd\x30\x12\x1f\x5b\x64\xef\x28\xe8\x7d\xc7\x59\x6e\x0f\x4a\xf5\xb3\xe7\x95\xf7\xcd\x52\xe6\x65\x3d\xe1\xf5\xf5\x13\x8a\x60\x57\x20\xba\xc6\xe1\xc3\x8d\x45\xf4\x30\xe5\xf7\x9d\xf4\x77\x3e\xaf\xe1\x68\x99\x8d\x9f\x73\x16\x05\x7d\x62\xdb\x37\xf7\xfc\xa2\xf8\x79\x42\xa0\xb7\x59\x5f\xe0\x47\x23\xb6\xef\xdc\xc7\x2d\x31\xf6\x5b\xb7\x7a\x63\x38\xb2\xff\xa4\x76\x33\x1c\x4a\xf3\xb0\x65\xef\x9b\xda\xe9\xec\xa4\xce\x65\xe3\x76\x16\xbe\xa0\x2d\x96\xb3\xbf\xd8\xc6\xcb\xf9\x84\x40\xaf\x2a\xa0\x5f\x11\xf4\x3e\xae\xc9\x2e\xbd\x4a\xe8\x97\xf8\x5c\x79\x96\x6a\xcc\x42\xfa\x90\x12\xe6\x21\x0b\x7e\x94\xcb\xb5\xc3\xd9\x59\x78\x96\x4e\xa0\x8d\x96\xb3\x7a\xd4\xba\x2f\xd0\x5f\x37\xbe\x47\x2b\x14\x98\xbb\x9b\x73\xd8\xf3\x73\xf9\xa8\x9e\xc3\x37\x36\x7d\x3c\xdf\xf1\x1c\x37\x07\x5f\xd0\xb7\x36\xfe\xb1\xe1\x89\xb3\xd0\xaf\x89\xf4\x7d\x83\x34\xe7\xd9\xe2\x19\x81\x26\x72\xfa\xa2\x22\xf8\x9c\x5b\x2e\xfc\xec\xec\xbb\x61\x58\x9f\xeb\xf0\x13\x15\xf0\xff\xe6\xa2\xfe\xe7\xf9\x16\xa5\xb9\xab\x61\xab\x19\x9f\xc3\x67\xe9\x73\xae\x7c\x09\x56\x4f\x9d\xac\x80\x5e\xe3\xfc\xe4\x7a\x1b\x80\x7e\xc4\xc6\xd7\xd4\xfb\xa2\x02\xfd\x39\xe7\x71\x12\x7f\x42\xff\x9e\xbd\x8f\xcc\xf0\xd9\xf2\x4f\xd2\xcb\x2e\xbd\x9d\x92\xab\x96\x71\x8f\xb4\x9c\xe9\x21\x9e\x01\xba\x81\x5b\x5d\x55\x3b\x15\xfd\xda\x15\xae\x99\xa4\x51\x7f\xf5\x6e\x8b\x0d\x3b\x5c\xb9\x5d\x84\x14\xd0\x1b\x49\xfd\x85\x68\x9d\x8b\xc7\xd5\x7f\x10\xcc\x2b\x45\xf1\xf2\xb1\x8b\x92\x1e\x44\xa1\xbf\xb1\xdd\xd3\x67\xf1\x09\xfd\xae\xa3\xff\xee\x74\xe5\x4e\x96\x92\x7c\x07\xda\x89\x40\x1f\xce\xf7\x7f\x09\x1b\x71\x7d\x50\xa0\x27\xad\x36\x08\xfa\x05\x85\x7e\xa6\x22\xf5\x95\xe1\xda\xf8\x98\x54\x86\x63\x4a\x41\x74\x39\x02\x3d\xc7\xf7\xba\x4c\xdf\x7e\x27\x2c\xc7\xc7\x15\xb5\x81\xeb\x7e\xeb\xee\xee\x98\xbf\xd8\x16\xae\x59\x89\xad\x34\xed\x9e\xd3\x68\x7b\x91\xf9\x2b\x25\xde\x23\x02\x4d\xb5\xb3\x61\x41\x0f\xe8\xc9\xf9\xce\xdc\x45\xa3\x2b\xf5\x99\xc9\x1d\xbd\x73\xec\x1d\xdd\x98\x1f\x50\xe8\xf5\xe9\xff\x72\x16\x86\x4b\x1f\xb0\x4c\xb7\xef\x41\xd5\x52\x6d\x10\xc1\x3c\xc1\xb5\xba\x51\x2b\xf8\x7e\x40\xd3\x08\xf4\xa5\x02\xfd\x3a\xcf\x01\x81\x4f\xe7\x77\x13\xb3\x47\x3d\xea\x51\x8f\x8e\x54\xfa\x3b\x00\x00\xff\xff\xbf\x30\x60\x6f\x76\x19\x00\x00") - -func web_uiAssetsFaviconIcoBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsFaviconIco, - "web_ui/assets/favicon.ico", - ) -} - -func web_uiAssetsFaviconIco() (*asset, error) { - bytes, err := web_uiAssetsFaviconIcoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/favicon.ico", size: 6518, mode: os.FileMode(420), modTime: time.Unix(1645446280, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsFaviconSvg = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x59\x4d\x6f\x5c\x59\x6e\xdd\xf7\xaf\x78\xa8\x6c\xab\x29\x7e\x7f\x0c\x2c\x0f\x10\x21\x59\x4d\xaf\x92\x6c\x7a\xd7\x18\x6b\x6c\x61\xdc\x92\x61\x2b\xb6\x91\x5f\x1f\x9c\xfb\xca\x76\x3d\x8f\x76\xa5\x53\xb7\xf8\x78\xc9\x43\xf2\xf0\xe9\xd5\x5f\xbf\xfe\xf9\x7e\xfb\x7c\xff\xf1\xd3\xc3\xd3\xe3\xed\x49\x88\x4f\xdb\xfd\xe3\xdf\x9f\xde\x3c\x3c\xbe\xbd\x3d\xfd\xcf\x7f\xff\xe7\xaf\x7d\xfa\xeb\xeb\x5f\x5e\x7d\xfa\xfc\x76\xfb\xf2\xf0\xe6\xf9\xdd\xed\xc9\xf4\xc3\xd7\xd3\xf6\xee\xfe\xe1\xed\xbb\xe7\x6f\x7f\x7d\x7e\xb8\xff\xf2\xef\x4f\x5f\x6f\x4f\xbc\xf1\x66\xba\x99\x9e\xae\x8d\xca\x69\xfb\xfa\xe7\xfb\xc7\x4f\xb7\xa7\x77\xcf\xcf\x1f\xfe\x72\x73\xf3\xe5\xcb\x17\xfa\x62\xf4\xf4\xf1\xed\x8d\x32\xf3\xcd\xa7\xcf\x6f\x2f\x47\xfe\xf2\xf5\xfd\xc3\xe3\x3f\x5f\x3a\x28\x33\x73\xb3\xbe\x3d\xbd\xfe\x65\xdb\xb6\xed\xd5\xf3\xc3\xf3\xfb\xfb\xd7\xff\xf8\xe3\xf3\xc3\xdf\x9f\x1e\x5f\xdd\xec\x7f\xee\x5f\xbd\xdd\x1e\xde\xdc\x9e\x2e\x5f\x9d\xb6\x4f\xcf\x1f\x9f\xfe\x79\x7f\x7b\x7a\x7c\x7a\xbc\xff\xf6\xd7\xaf\x97\xfb\xc8\x69\xfb\xc7\xc3\xfb\xf7\xdf\xbe\xc4\xe7\x5f\x3f\xfe\xef\xfb\xfb\xdb\xd3\xfd\xe7\xfb\xc7\xa7\x37\x6f\x2e\x8f\x5b\x76\x3f\xfc\xf1\xfc\x6e\x7b\x73\x7b\xfa\x4d\x86\xa2\x26\xd2\xeb\xac\xe4\x19\xe6\x95\xb2\xdd\x49\x91\x55\x4e\xca\x9c\x85\xba\xb5\xc5\x2b\x36\x09\xe2\x0c\x17\x4b\xa0\x9e\xe9\x91\xb5\x89\x52\xe3\x83\xcd\x59\xc9\x62\xa6\xd9\x62\xbb\x13\xa6\xd4\xe8\xe6\x38\x2b\x75\x99\x49\xca\xd6\x14\xe9\x63\xa3\x71\x36\x1a\xe5\xb4\x1e\xd9\x92\xda\xa5\xa4\xf3\x1c\xe4\x22\x1c\x2c\xb6\xdd\x05\x89\xb4\xb7\xb4\x9d\x93\x86\xc5\x53\x2c\x36\xa3\xea\x60\x93\xea\x73\x53\xf5\x8c\x4a\xd8\xa6\x34\x51\x3c\x16\x73\x16\xa6\x11\x0d\x73\xdd\xee\x94\x44\x47\x52\x6d\xce\x62\xc4\x16\x3c\x26\x9b\x50\x9b\x54\x8e\xf5\x59\x82\x4c\x2b\xab\x37\x25\x1e\x2e\x63\xce\xb3\x14\xc5\x32\xd1\xb0\x60\x3e\x39\xa2\x75\x96\xa1\x0e\x6f\x9d\xdc\x8c\x24\x4a\x5a\xca\xcf\xaa\xc4\x2a\xcc\x53\x9b\x93\xbb\x89\xb0\xe7\x59\x0d\x1e\x57\x49\xe1\x1e\xa5\xc3\x36\x52\x67\x0d\xaa\xd6\x30\xab\xad\xc8\xc3\xc3\x54\xe5\xac\x45\xa6\xc2\x2e\xb2\x0d\x79\x4e\xa7\xc7\x9c\xb5\xc9\xda\xca\x1d\xe9\x10\xf2\x0e\x99\x3a\xeb\x90\x7b\xba\x97\x6e\x62\x30\xec\x66\x76\x36\x26\x66\xd1\xf2\xda\x24\x89\xb9\xaa\x55\xcf\xc6\xdb\x1d\xf2\x2b\x93\x99\xb2\x1f\xb2\x68\xcf\x4d\x95\x86\xad\x63\x7f\x4c\xe2\x4e\x1d\x9b\x06\x9e\xc2\xf8\xa9\x26\x19\x4b\x5a\xce\xf6\x37\x55\x92\xf2\x0c\xc1\x5d\xdb\xc5\xd4\x67\xbb\x53\xa6\x0e\xb3\x61\x39\xab\x13\x9b\xa6\x85\x6d\x32\xa4\x12\x2c\x09\xb0\x25\xd4\x3a\x37\xc1\x5d\x9b\x35\x03\x01\xe0\x71\xd7\xc0\xa5\x82\x8a\x85\x6d\x85\xc5\xca\x32\xc3\x71\xa9\x61\x2e\xef\x04\x2a\x56\xce\xb2\x28\xa6\x15\xa6\xb2\x1e\xe6\xe2\x86\xab\x2e\x8a\xf9\xb4\xcd\x20\xe0\xc8\xd2\xf8\x36\xa4\xd9\xe0\x13\xdc\x0d\x51\xf7\xac\xad\x49\x07\x51\xf0\xb3\x0a\xb1\x72\x64\xcf\x76\x57\x64\xc6\x3e\xc2\x83\xe4\x86\x76\xb9\x0f\xd8\x28\x9e\x31\xde\x60\x42\x75\x75\x49\x1e\x50\x84\xb8\x9b\x75\xb6\xbb\x6b\xd8\x49\x75\xaa\x6b\xb6\x6b\xc3\x4a\xde\x3d\xe2\x79\xe5\x04\x38\x3a\xc5\x96\xbd\xdd\xfd\xf0\x77\x28\x38\x24\x86\x7d\xbb\xba\x59\x13\x62\x2b\xd2\x72\x1d\x86\xa2\x64\xd3\xf6\xde\xee\xae\x42\x96\x04\xb7\x34\x62\xd5\xea\x25\xba\x49\xe9\x36\x03\x7a\x5d\x65\x22\x69\xd4\xa4\x73\x51\xe4\x92\xb3\x22\x65\xb5\xaa\xd9\xae\xb2\x5b\x34\x1d\xac\x2e\xb1\xfd\x60\xc2\x90\x54\x9a\x79\xf4\xf6\xb7\x2b\xda\xe0\x99\x8a\xbe\x01\x82\x18\x35\xca\xad\xfd\xec\x24\x31\x52\x3e\xb5\xa9\xa0\x02\x24\x0b\x0d\x80\xbd\xba\x05\x59\x7f\xb1\x0b\xfd\xbe\xfd\xa6\x45\x1c\xc2\xce\x7d\x56\xa6\xd2\x08\xc3\x95\x35\xa9\x57\xb6\x62\xc1\x39\xa0\x83\x26\xa5\xba\x4f\x3b\xc0\xae\x1e\x2e\x07\xea\xe9\xea\x13\x2b\xf5\x36\x12\x69\xcb\x82\xb1\x8d\xe7\x00\x96\x19\x8f\x1e\x1c\x96\xf1\xea\x5c\x87\x9d\x2d\x43\x6c\xa1\xc1\x51\x6e\x40\x53\x93\x57\x7f\x02\xcc\x69\x89\x72\x41\x3b\x6c\x9d\xca\x75\x18\xe5\xae\xb6\x5a\x43\x75\xc5\x04\x50\x95\xa8\x91\x85\x6a\xb7\xa4\xf6\xc5\x0b\x8d\x60\x05\xec\x53\x29\xd3\xcb\x65\x1f\x57\x4d\xa0\x59\x99\x52\xba\xae\x67\x35\xda\x0b\x6d\x46\x7f\xca\x4b\x28\xd2\x1a\x11\x52\x1a\x6d\x8f\x99\x0d\x71\xf3\x9a\xea\x1d\x9d\x40\xaf\x06\xaa\xe5\xa9\xe9\xd7\xe8\x9d\x16\x45\x75\x9a\xcc\x4f\x87\xbb\x58\x14\xfd\x1b\x0d\xdc\x27\x5c\x36\x6d\xe2\x46\x30\x96\x6b\x88\x44\xc1\xc2\xa2\xf6\x8c\x2d\xdf\xdc\x83\x7b\x1d\x75\xe5\x8a\x5a\x67\x25\x2c\xac\xeb\x80\x22\x6a\x13\xbd\xd8\x72\x80\x53\xb5\x3b\x02\x87\x2d\xcc\x67\x7c\xcf\x87\x98\x23\x1f\x4d\xaa\x15\xd5\x02\x54\x45\xdb\xc2\x97\x09\x61\xc9\xc8\xda\x8b\xdc\xad\x4d\x70\x8d\x51\xcd\x18\xdb\x59\x51\x1e\x05\xb0\xc4\x34\x72\xd1\x67\xb8\x02\x8d\x1a\x71\x60\x2b\x74\x13\xa6\x62\x9b\xd1\xde\x63\x86\x4a\x58\x0c\xcc\x16\x45\xeb\x78\x99\x97\x20\x6c\x93\xe5\x88\xa9\xa0\x4d\x34\x67\xf2\xc8\xee\x9b\x67\x5b\xac\xee\x81\x6a\xa9\x15\xe1\x71\x8d\x9e\x02\x38\x98\x9c\xb2\x1e\x58\xad\x06\xd3\x52\x24\xca\xda\x6e\xcb\xb9\x54\x65\x6b\x05\xac\xcd\x2b\x6e\x70\x59\xb4\xab\xd6\x61\x6f\xaf\x1a\x07\xea\xd9\x99\xb1\x66\x59\x71\xad\xc6\x08\x13\xae\xee\x61\x01\x78\x14\x0f\x5f\xb1\x70\x2f\x51\x0c\xf5\x46\xa1\xf6\xc5\xb7\x30\xeb\xd6\x85\x5a\x8e\x0e\xf7\xc5\x0b\x4e\x97\x00\x0c\xd6\x8c\xaf\x18\x57\x56\x08\xc6\x6c\x53\x45\xe5\xc8\x7e\xbd\x48\x96\x59\x68\xb7\x65\x66\x5e\x42\x81\x01\x26\x68\xba\xcc\x13\xe8\x98\x2b\x6e\xc9\xc5\x3b\x5a\x59\xa3\x2b\xff\x31\x5a\x52\x75\x8d\xc2\x44\x4f\x9a\x97\xee\x70\xa4\x70\x6d\x3a\x24\x5d\x32\x22\x78\xde\x84\x87\xba\x02\x75\x96\x8e\xdd\x35\x9b\xde\xcb\x7f\x28\x25\x03\x53\xbd\x29\x34\xc4\x30\x15\x87\xca\x2a\x13\x66\x9b\xd4\x5c\x67\x37\x5b\xd6\xed\xb3\x82\x66\x5c\x12\xeb\xf7\x3f\xc0\x62\x30\x73\xfd\x3e\x4b\xd2\xdd\xf7\x64\xa0\x67\x2e\x34\x3c\x32\x67\xa1\x3a\x06\xcf\x97\x05\x97\xa9\x7d\xc8\x08\x47\x88\x08\xce\xaa\x73\x05\x44\x08\x18\xd1\x81\xb1\x3c\xc4\x26\xe6\x65\x8b\x3b\x25\xad\xb9\x53\xaa\x55\x7a\x78\xc1\xd5\x21\xca\xbd\x47\x4c\x1c\xcd\x18\x28\xa4\x4f\x6d\x2f\x93\xf2\xf7\xed\x37\x29\xe2\x86\xee\x11\xe8\x23\x99\xf6\x28\xcc\xd5\xa4\xd0\x2c\x75\xc3\xf8\x9a\xec\x49\x1d\x4c\x94\x91\x1c\xe7\x58\x28\xe3\xd1\xb2\x2d\x05\x05\xc5\xb2\x14\x96\xc6\x30\x86\x9a\x38\x95\x33\xa4\xd3\x32\xec\x3a\xc2\xb1\x89\xa3\xd3\x0e\x2e\x62\xe4\xd0\x60\xd9\x4b\xc6\x54\x34\x02\x61\xd4\x11\x3d\xb2\x0f\x35\x0b\xc9\x1c\x5b\x73\xb5\x99\x65\x3f\xcb\xa9\x9d\x59\x40\x5b\x19\xcc\xc5\x58\x44\xfb\x66\x9c\x0d\x72\xee\x6c\x4c\x77\xe8\x52\x85\xfe\x4c\xc0\x33\x39\x28\x24\xa0\xdd\x9d\xe1\x88\x45\x72\x56\x62\xb2\xda\x12\x9b\x8b\xc1\x45\x92\x3c\xc1\xb3\x7b\xe1\x35\xa9\xab\x62\x4a\x42\x20\xdd\xe0\xb1\x65\x76\xec\x15\xd3\x18\x35\x8a\xcb\xa9\x85\xa3\x3f\x2f\x4e\x29\x4b\x5f\x22\x61\x2e\xd2\xab\x08\x22\xd4\xdb\xf6\xa0\xa1\x41\xc7\x22\xb0\x99\x48\xe5\x0a\xb0\x32\xe4\xd5\x35\x8a\x6c\x94\x7a\x9a\xf8\xe1\x70\x91\x4f\x32\x2f\x06\x97\x58\x34\xe2\xd3\xc4\xe9\xcd\xb2\xd8\x2e\xee\x48\xe8\x76\x27\x4d\x69\x16\x48\x27\x5a\x7d\x42\xa2\x6e\xab\x46\x8c\xcb\xf6\x96\xc4\x5e\xda\xf3\x13\xca\x0c\x8d\xb2\x5b\xf8\x0e\x23\xc4\x0c\x9e\xe0\xc1\x15\xca\xc8\x3d\xd4\x9e\xab\x40\x78\x34\xb9\xcb\xa8\xac\xcc\x99\x84\x97\xfa\xb2\x20\xdc\x09\x15\x8c\x3c\x4b\x42\xbb\xe2\x16\x69\xc1\x96\xba\x28\x81\x3c\xa7\x6d\x2f\xd3\x12\xdd\x35\x28\x65\xac\x57\xee\xca\xa6\x9a\xd1\x51\xe0\x11\xd6\x8e\x55\x35\x19\xc6\x2a\x09\x35\x2b\x35\x21\xbd\x6e\x92\xc6\x16\x68\x4a\x8e\x4d\x41\x15\x19\x4d\xca\xf2\x48\x83\x89\x95\xa5\xae\x1d\x2e\x69\x50\x12\x87\xc3\x38\x9b\xf7\xba\xd1\x1a\x4b\x05\x6a\xc5\x56\xb5\xce\x4e\xb7\x1a\x12\xad\x4e\x2a\x2c\x2b\xff\x45\xe2\xed\x5d\x85\xc3\x58\x0e\xb2\x05\xa8\x05\x66\xc9\x32\xcc\x91\xc5\x7a\xc9\x48\xb0\xb1\x2c\x13\x2c\xea\x50\x5d\xa0\xdb\x94\x35\xaf\xe7\xb1\x85\x22\xfd\x4d\xac\x55\xdd\xb6\xec\xaa\x4c\xe9\xec\xbd\xaa\xd4\xc3\x76\x27\xb8\xb3\x7a\xb5\x30\xc7\x8a\xd6\xb9\x3c\x8e\x48\x06\x01\x1a\x5b\x59\xfa\x02\xc3\x9d\x23\x63\x6f\xda\x12\x59\x7e\x89\x84\xc6\xa2\x7c\xaf\x79\xd9\x5d\x7b\xd8\x5c\x38\x17\xdd\xc6\x7d\x09\xae\x20\x69\x6e\x6e\xb9\x02\x57\x36\xda\x2b\xf6\xb6\xff\xe3\x68\x55\x22\x31\xcb\xaa\xda\xb4\x0e\xd0\x19\x51\xeb\x65\x35\x79\xd8\x2f\xda\x4c\x39\x45\xf7\x21\x63\xe3\xc2\xbb\x2a\x32\x28\xe5\x58\x87\x85\x35\x55\xf4\x80\x22\x64\x9d\x02\xc6\x1f\xe1\x28\x41\x06\x96\x0a\x0b\x7c\xba\x24\x83\xad\x78\xa1\x28\xeb\x98\xda\x6b\x5f\x46\x6a\x96\x09\xe6\xea\x0b\xd9\x66\x15\xf1\x72\x19\xca\xb3\x2f\xcd\x58\x33\x6c\xd6\xe6\xf4\xaf\xbc\x3c\xf2\x15\x5d\xb0\x94\x5b\x8f\x7c\x45\x43\x63\xf7\xd1\x03\x5f\xb1\xab\x56\xd5\xc8\x81\xaf\x46\xdc\x82\x80\x1d\xf9\x6a\x24\x9a\xca\xe6\x07\xbe\x1a\xba\x91\xa5\xcd\x81\xaf\x46\x06\x79\x97\x71\xe4\xab\x51\x44\xcc\x5a\xa4\xaf\xf8\x6a\x54\xc9\x92\x7b\xd5\x7c\xe7\xab\xd1\xb4\x7a\x54\x1f\xf9\x0a\xe2\x79\x73\xf5\x35\x5f\x9d\x1c\x9f\x62\x0e\x7c\x75\x4a\x2c\x65\x58\x9f\xae\xf9\xea\x58\xaf\xb9\xd2\x0e\x7c\x0d\x74\x3c\x2e\xab\x03\x61\x83\x24\x7a\x26\x8e\x7c\x0d\xd2\xf6\x91\xdd\xc2\x77\xbe\x06\xca\x4e\x7e\x26\xec\x0f\xf4\xc0\xd8\xc3\xe1\xef\x94\x0d\x52\x13\xc7\x08\xbb\xa6\x6c\x10\x4b\xfa\x2a\x9a\x2b\xc6\x3a\x35\x4b\xd8\xbe\x7a\x7c\x27\xa1\x53\xf0\xcc\x84\xfc\x84\x2a\xd2\x6f\x7e\x64\xac\xd1\xd4\xd8\x44\x1d\x18\x6b\x50\x56\xd0\xf4\x07\xc6\x1a\x05\xc4\x99\xf4\x91\xb1\x46\x58\x09\x6c\xf2\xc0\x58\x90\xc2\x26\x4b\xb6\x17\x99\xf9\x93\x7e\xc5\x58\x9d\x54\xf3\xa3\x7e\xc5\x8a\x60\xdd\x63\x07\x01\x6b\x24\x8c\x9d\xf7\x28\x60\x8d\x34\x4d\x67\x2d\x2a\x57\x02\x16\xad\xde\x92\x51\xbf\x57\x02\xd6\x28\xb5\xd0\x63\x0f\x02\x16\xa2\x80\xb1\xf1\x1f\x05\xac\x13\x97\xba\x1f\xe4\xab\x63\x9b\x1a\xde\x45\xf4\x77\xf9\xea\x78\x82\x71\xc8\x51\xbe\x3a\x95\x4a\xa5\xea\x41\xbe\xfa\xda\xa5\x39\xfa\x20\x5f\x83\x58\x33\x9b\xe7\x28\x5f\xc1\x42\x4d\x86\x89\x2b\xf9\x1a\xa4\x82\xe2\xee\x83\x7c\xfd\x81\x1e\xe4\x2b\x60\xf0\xff\x28\x5f\x83\x78\x2a\x6c\x17\x7f\xdf\xe4\xab\xaf\x17\x71\xb5\x26\xde\x0f\xf9\xea\x94\xd9\xe2\xd8\x49\xae\xe4\x2b\x4a\xbe\x8c\xe3\x5a\xbd\x22\x62\x56\x3a\x7a\x90\xaf\x46\xed\x58\xda\xe7\x20\x5f\x91\x8a\xf0\xb6\x3a\xc8\x57\x88\xb6\x9c\x82\x44\xbc\x92\xaf\x46\xea\x1d\x1a\x7e\x90\xaf\xe0\x83\xc4\x80\x25\x57\xfa\xd5\x88\xe1\xab\xff\xa4\x5f\xd7\xe2\x2a\x16\x72\xd0\xaf\x10\x99\xe1\xb2\x6f\x7c\x2f\xb0\x72\x7f\x3f\x20\x52\x66\xaa\xe7\x21\x1e\xc5\xec\xbf\xbc\x1f\x98\x60\x8b\x39\x0f\x89\x65\xf9\x5a\x05\x92\x72\xb8\x7a\xfa\x0c\x47\x63\x58\xd7\xca\x1f\xc6\x68\xa5\x67\x84\x3a\x95\x23\xf6\x6a\x44\xbb\x6b\x3b\x0f\x45\x66\x40\x8f\xac\x6a\xc4\xaa\x51\x30\x50\xc5\xc5\x7c\x59\xed\xb3\x33\xea\x3c\x34\xa3\x33\x79\x19\x1f\x52\x18\x0f\x71\x16\xc6\xf2\x6f\x9e\x7b\xe5\x4e\x98\x5a\x01\x75\xa8\xd6\x5e\xef\x0c\xb4\x51\x81\x09\x34\x23\x74\xf5\xf8\x24\x5b\x6f\x86\x16\xda\xe9\xb9\x1a\x74\x52\x48\x14\xba\xab\x10\xbb\xa5\xe8\x6a\x13\xc5\x2e\x09\x19\x25\x24\x39\x71\x69\x29\x3d\xd0\xf1\x0b\xd5\x89\x80\xec\x5f\x21\x73\x5d\x54\x15\xb2\xd4\x12\x5b\x5b\xa0\x39\x8f\xa0\x0e\x7f\xa0\xab\x60\xdc\x3b\x21\x54\x0f\x87\xc7\x72\x17\xb5\x42\xea\x32\x3e\x6b\x59\x83\x40\xf6\xde\x5d\xc3\x13\x6c\xa5\xd9\x32\x75\x71\x8d\xa9\x45\xb9\xd2\xd7\x5b\x80\xce\x99\x58\xef\xc2\x42\xf9\xdb\x12\x78\x85\xaa\x64\xda\x65\xd3\xf9\x06\x0f\x4d\xcf\x18\x54\x3f\x50\x99\xc2\x62\x3e\x54\xd9\x66\xb9\x9b\xd0\x31\xac\xa5\xe7\xf5\x4e\xa9\xdb\x63\xdf\x18\x25\x6b\xbc\xe5\x3c\x64\x23\x56\x7d\x29\xf1\x06\x51\x6a\x11\xc2\x83\x53\x56\xf3\xc1\x16\x3d\x96\x20\x4f\x54\x79\xa9\x5e\xde\x92\x30\x83\xaf\xd8\x39\x19\xc2\x6f\x99\x40\x47\xd5\x0e\xa0\xde\x26\x2d\xbe\xbd\x4c\xcb\xdf\x4f\xeb\x6d\xfe\x7f\xbd\xfb\xe3\xc3\xfd\xb7\x97\xf5\xff\xf6\x1f\x6c\x5d\x71\x78\x5f\xff\xf8\xf4\xf8\x7f\xf7\x1f\x9f\x4e\xaf\x5f\xdd\x7c\xf8\xe3\xf9\xdd\xe5\x5f\x01\x37\x6f\x5f\xff\xf2\xea\xe6\xd3\xe7\xb7\xaf\xff\x3f\x00\x00\xff\xff\xf0\xab\x2d\xb3\xed\x18\x00\x00") - -func web_uiAssetsFaviconSvgBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsFaviconSvg, - "web_ui/assets/favicon.svg", - ) -} - -func web_uiAssetsFaviconSvg() (*asset, error) { - bytes, err := web_uiAssetsFaviconSvgBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/favicon.svg", size: 6381, mode: os.FileMode(420), modTime: time.Unix(1645446280, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsInit21ea65714d133467454b601efc15e2ddJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x92\x4f\x6f\x1a\x31\x10\xc5\xef\x7c\x0a\x77\x0e\xc4\x56\x16\xa7\xe7\x48\xdb\xaa\xa2\x39\xb4\x6a\x9b\x2a\x34\xa7\x88\x83\xf1\x0e\x8b\xd1\x32\xb3\xb5\x67\x03\x08\xf8\xee\x95\x97\x94\xfc\x11\x52\xd5\x9b\x77\xa4\x79\xef\xcd\xef\xad\x9e\x77\xe4\x25\x30\x69\x34\x3b\xcf\x94\x44\x49\x49\xb8\x56\xdf\x5d\xab\x6f\x67\x4b\xf4\x62\x91\x24\x06\x4c\xfa\xeb\xe4\xf6\x87\x6d\x5d\x4c\xa8\xd1\xfe\xee\x30\x6e\x27\xd8\xa0\x17\x8e\x1a\x1e\x2a\x27\x6e\x94\x05\xba\x66\xd4\x85\xd1\x3c\x4d\xc1\x58\xc1\x8d\x8c\x99\x04\x49\x8c\x31\x05\x95\x27\x37\x31\xbb\x47\x17\x15\x95\x68\x7d\x44\x27\x78\xd3\xe0\x0a\x49\x34\x24\x1f\x43\x2b\x60\x06\x64\x53\xf4\xa5\x14\x68\x67\x5c\x6d\xad\x6b\x5b\xa4\x6a\xbc\x08\x4d\xa5\xc9\x1c\x06\xf0\x0b\x37\xf2\x19\x3d\x57\x18\x21\x90\x5a\x07\xaa\x78\xbd\xdf\x6b\xd2\x62\x6b\x14\xfd\x00\xd9\x7e\x84\xe4\xb9\x0a\x54\x43\x01\x7f\x9f\xa3\x40\x15\x6e\x30\xc1\xd4\x2e\x39\x90\x86\x2b\x30\x97\x60\x97\x09\x72\xc8\x7f\xae\x9f\x5b\x33\xc5\xd1\xdf\x8e\x27\x93\xe1\xf0\xf9\x6d\x31\x79\xd7\xe2\x7e\xff\x2c\xeb\x53\x7a\x9a\x42\xf1\xf2\xe3\x8c\xea\x40\xe2\xf6\xd4\xca\x5b\xe6\x17\x0f\xe4\x56\x58\xc2\x09\xfa\x95\x67\x9a\x87\xfa\x0a\xe9\x31\x44\xa6\x8c\x13\xa6\x17\x19\xfb\xff\x34\x77\x14\x79\xdb\x5e\xc1\x2f\x45\xaa\x1e\xfb\xfd\xdd\x97\x31\xaf\x5a\xa6\xdc\x5b\x7f\xdd\x27\x91\x18\x66\x9d\xa0\xce\xa9\xf2\x62\x8f\xc6\x97\x90\x24\x66\x72\xef\x4a\xd9\xb6\xc8\x73\x45\xf6\x49\xf9\xa7\x93\xc5\x47\x80\xeb\x57\x83\x81\xb7\x0d\x52\x2d\x8b\x0f\xef\x87\x43\xcd\x36\x32\xcb\xfd\xdd\xb7\xd2\x9b\x42\x6c\x3a\xeb\x53\xf4\xed\xbc\xce\xd4\x27\x3e\x3a\x87\xf9\x56\xb3\x31\xe6\xe0\x9d\xf8\x85\x66\xb3\x93\x45\xe4\xb5\xca\xbf\xfa\x4d\x8c\x19\xc4\x3d\xb9\x59\x83\x4a\x58\xf5\x47\xaa\x13\x12\x95\x50\x24\x50\x9d\xae\x15\x5c\xb2\x5d\x61\x4a\xae\x46\x73\x38\x18\x5d\xb1\xef\x32\x67\x33\xf8\x13\x00\x00\xff\xff\x11\x4d\xbd\x22\x49\x03\x00\x00") - -func web_uiAssetsInit21ea65714d133467454b601efc15e2ddJsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsInit21ea65714d133467454b601efc15e2ddJs, - "web_ui/assets/init-21ea65714d133467454b601efc15e2dd.js", - ) -} - -func web_uiAssetsInit21ea65714d133467454b601efc15e2ddJs() (*asset, error) { - bytes, err := web_uiAssetsInit21ea65714d133467454b601efc15e2ddJsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/init-21ea65714d133467454b601efc15e2dd.js", size: 841, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsLoadingCylonPinkSvg = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\xd3\xcf\x6b\xdb\x30\x14\x07\xf0\x7b\xfe\x8a\xc7\xdb\x65\xbb\xd8\xb2\xe2\x05\xb3\x58\x81\x6d\x97\x5d\xb2\xc3\x56\x72\x57\xec\x17\x5b\xd4\x96\x84\xf4\x6c\x27\xfd\xeb\x8b\xdd\x1f\x94\x52\xe8\x2d\xed\x41\x42\x42\x7c\xbf\x48\x1f\x50\x19\xc7\x06\xce\x7d\x67\xa3\xc2\x96\xd9\xff\x48\xd3\x69\x9a\x92\x69\x9d\xb8\xd0\xa4\x52\x08\x91\xc6\xb1\x41\x18\x0d\x4d\xbf\xdc\x59\xa1\x80\x2c\x87\xb5\x84\xac\x40\x98\x4c\xcd\xad\xc2\xb5\x44\x68\xc9\x34\x2d\x2b\xcc\x11\x4e\xa6\xeb\x14\x7e\xa9\x37\x85\x3e\x4a\x04\x1f\x28\x52\x18\xe9\x67\xf4\x54\xf1\x3f\xcd\xc6\x29\xb4\xce\x12\xee\x56\x00\xa5\xd7\xdc\x82\xf3\xba\x32\x7c\x51\x28\x92\x02\x81\x83\xb6\xf1\xe4\x42\xaf\x70\x59\x76\x9a\xe9\xab\x00\xf1\x0d\xa1\x56\xb8\x97\xf3\x0d\x0e\x59\x01\x7f\x36\x70\xc8\xf2\xbb\xa5\x07\xa0\xd4\xd6\xf4\x9a\xe9\xe6\x29\x0d\x9a\x39\x98\xe3\xc0\xf4\x57\xf7\xf4\xd8\x35\x1f\x20\xf0\xc5\xd3\x8b\x72\x84\x51\x77\x03\xc5\xf9\x75\x62\x0b\x32\x9f\x67\x01\x02\xa1\x1e\x82\x42\x19\x11\x8e\xd4\x18\xab\x50\x20\x04\xf2\xa4\xf9\xb7\x1b\x2c\x2b\x34\xb6\xa6\x93\xb1\x66\xee\xb8\xa5\xcb\x7f\xdf\x19\xbb\xf4\x24\x12\x1e\x46\x0e\x22\x29\xb6\xaf\xf6\x08\x95\xee\xaa\xbd\xab\x49\x61\x5c\x32\x08\xe9\xc2\x91\xce\x1e\x6f\xc2\x7c\x7f\x17\x46\x3c\xc3\x14\xd7\x87\x49\xb2\xf8\x71\x36\xf2\xb3\xe3\xc8\x6b\xe1\x94\xf3\x77\xdd\xad\xee\x03\x00\x00\xff\xff\x70\xd5\x10\x78\xd7\x03\x00\x00") - -func web_uiAssetsLoadingCylonPinkSvgBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsLoadingCylonPinkSvg, - "web_ui/assets/loading-cylon-pink.svg", - ) -} - -func web_uiAssetsLoadingCylonPinkSvg() (*asset, error) { - bytes, err := web_uiAssetsLoadingCylonPinkSvgBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/loading-cylon-pink.svg", size: 983, mode: os.FileMode(420), modTime: time.Unix(1645446280, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsMetricsProvidersConsul31d7e3b0ef7c58d62338c7d7aeaaf545Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x92\xdd\x8a\xf2\x30\x10\x86\xcf\xbd\x8a\xb1\x08\x26\x50\x7a\x01\x1f\xf4\xe8\x63\x0f\x97\x95\xf5\x50\x04\xb3\xe9\x54\x67\xb1\x89\x4c\xa6\x16\x89\xb9\xf7\xa5\xfe\xac\x74\xab\xa7\xf3\xe4\x7d\xf3\x30\x8c\xaa\x5b\x67\x85\xbc\x53\xac\xa3\xf5\x2e\x08\x60\xb9\xca\xc8\x91\x64\x79\x16\x90\x8f\x64\xf1\x13\x2d\x3a\x59\xb6\x4d\x63\xf8\xb4\x44\x26\x0c\xaf\xa0\x18\xe9\x59\x7b\x08\xc2\x68\x9a\xa7\xb0\xf2\x9d\x7b\x89\xd7\x13\x2e\x7a\x8f\x76\x5f\x3a\xec\xc0\xee\x4d\x08\x57\x31\x6e\xad\x78\x56\x3a\xca\x8e\x42\xc1\xb8\xa5\x20\x7c\x2a\x63\xca\x2f\x83\x03\xfb\x23\x55\xc8\xa1\x8c\x29\x5d\x29\xf2\x3b\x0a\x93\x0d\x8b\x1b\x53\x9c\x8b\x8e\xb5\x67\x75\x34\x0c\x04\xbe\x06\xd4\x54\xab\xec\xbe\x85\x6c\x5a\xca\xe9\x80\xbe\x06\x59\xd1\x5a\xcb\x8e\x7d\x07\xbd\xc7\x1b\xb3\x67\xb5\xf9\x6f\xdc\x5c\xe0\xde\x0e\xcd\xb5\x1e\xee\x7f\xc3\x7c\x16\x39\xcd\xff\x41\x43\x21\x90\xdb\xc2\x2c\x52\xea\x5f\xed\x7c\x55\x6c\xf4\x64\x60\xbe\xe2\x75\x29\x69\x8b\x32\x96\x44\x1d\xa9\x56\x53\xc5\x40\x0e\x06\x21\x3d\x76\xba\xc5\x61\x31\x94\x00\x0a\xe0\xfc\x43\x16\x2f\x06\x8c\xd2\xb2\x83\x47\xf1\xef\xda\xce\x67\x35\x1c\xf4\x7e\x1f\x5f\xdf\x68\xa5\xb0\x8c\x46\x50\xfd\xd5\xd7\xf9\x28\x51\xf4\x97\xa3\x50\x3f\x41\x29\x25\xad\x3a\x72\x95\xef\xf4\xe4\x27\x00\x00\xff\xff\xda\x1a\x7e\xe5\x78\x02\x00\x00") - -func web_uiAssetsMetricsProvidersConsul31d7e3b0ef7c58d62338c7d7aeaaf545JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsMetricsProvidersConsul31d7e3b0ef7c58d62338c7d7aeaaf545Js, - "web_ui/assets/metrics-providers/consul-31d7e3b0ef7c58d62338c7d7aeaaf545.js", - ) -} - -func web_uiAssetsMetricsProvidersConsul31d7e3b0ef7c58d62338c7d7aeaaf545Js() (*asset, error) { - bytes, err := web_uiAssetsMetricsProvidersConsul31d7e3b0ef7c58d62338c7d7aeaaf545JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/metrics-providers/consul-31d7e3b0ef7c58d62338c7d7aeaaf545.js", size: 632, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsMetricsProvidersPrometheus5f31ba3b7ffd850fa916a0a76933e968Js = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5a\x5d\x73\xdb\x36\xd6\xbe\xd7\xaf\x40\x30\x79\x15\x22\x42\x69\x29\x69\xf2\x36\x8c\x59\xcd\xac\x9b\x76\x33\xb3\x4d\xbc\xb6\x3b\xb3\x33\x1a\x2d\x0d\x91\x47\x12\x1a\x09\x50\x00\xd0\x96\x47\xe6\xfe\xf6\x1d\x80\x1f\x22\x29\xc9\x76\x9a\xb8\xbb\x17\x7b\x25\x91\x78\x80\xf3\x81\x07\xe7\x1c\x00\xf4\xa6\xa9\x88\x0d\x97\xc2\x23\x9b\x2b\xa6\x10\x84\x9b\x54\x70\x73\x9e\x4e\xa7\x7c\x1d\x60\x4c\x17\x6c\x02\x0b\x1d\x6c\x32\x9a\x30\xc3\x82\xd1\x38\xa3\x26\xdc\xc8\x95\xed\xe3\x5e\x73\xc1\x4d\x50\x8d\x02\x64\xc3\xa7\x9e\x99\x73\xed\x17\x98\x10\xe8\x93\xfa\xb3\xbf\x04\xa3\x78\xac\xa3\x95\x92\xeb\x9b\x08\x04\x9b\x2c\x20\x21\x66\xae\xe4\x35\x12\x70\x8d\xde\x29\x25\x95\x87\x57\x4a\x2e\xc1\xcc\x21\xd5\xa8\xe8\x81\x56\x4a\x5e\xf1\x04\x14\x8a\x53\xa5\x40\x98\xc5\x0d\x52\xf0\x39\xe5\x0a\x34\x32\x73\x40\x29\x8f\x62\x29\xa6\x7c\xd6\x94\x81\x8c\x44\x13\x40\x79\x53\xaa\x20\x41\x5c\x38\xfc\x89\x14\x3a\x5d\x20\x36\x03\x61\x7c\x4c\x32\x3a\x37\x66\xf5\x0b\xd4\xcd\xa1\x86\xaa\xdc\xa4\xdc\x3f\x3a\xfc\x6e\xf0\x24\x0c\xc1\xe7\x22\x81\xf5\xc7\xa9\x87\x87\x98\x0c\x71\x17\x07\x78\x88\x3b\x10\x42\x4f\xf7\x3e\x4e\x7e\x87\xd8\xf8\x9f\xe0\x46\x7b\x86\xf8\x4b\xb6\xf2\xbc\xba\x83\x14\x98\x54\x09\x04\x22\x96\x09\xfc\x76\xf6\xfe\x44\x2e\x57\x52\x80\x30\x1e\x90\x1e\x0e\x71\x6f\x4f\x8b\x19\xc1\x98\x64\x84\xf8\xbf\x4b\x2e\x3c\xdc\xc5\x24\x2b\x86\x69\xf8\x76\x0a\x26\x9e\x7b\x40\x37\x73\x60\x09\x28\x1d\xa8\xdb\xdb\x4d\x96\x11\xdf\xcc\x41\x34\xb5\xe0\x53\x0f\x7c\xf9\x89\x94\xda\xf8\xbf\x6b\xcb\x82\x8e\xb5\xd2\x84\xb5\x89\xf8\xeb\xc5\xc5\x69\xfe\x3f\x40\xb8\x07\xbe\x36\xcc\xa4\xfa\x02\xd6\x86\x74\xf2\x59\x33\xc5\xbb\x13\x99\x40\x58\x02\xa8\xc9\x08\xc9\xa8\x06\x75\xc5\x63\x38\x83\x18\x84\x39\x4f\x97\x4b\xa6\x6e\xce\x41\x71\xd0\x2d\x2f\x53\x4d\x45\xee\x63\x16\x7a\x56\xfc\x4f\xcc\x00\xf1\x67\x60\x2e\xf8\x12\x3c\x72\x34\x80\x97\x9d\x42\x59\x61\x65\x28\x13\xb2\xef\xde\xf4\xfb\x54\xf8\x20\x92\x90\x51\xe7\x89\x39\xd3\x7f\xfb\xff\x5f\xf3\xe9\xf7\x34\x19\xba\x97\xce\x2d\x67\xf0\x39\x05\x6d\xce\x98\x81\x5c\x81\x42\xae\x20\xc1\x16\xf4\x13\x33\x6c\x0f\xe2\x80\x1d\x86\x99\xbb\xcc\x18\x8d\x3b\xf5\x49\x6a\xab\xe6\x31\x7f\x95\xea\xb9\x57\x53\xf1\xf4\xbc\x18\x05\x17\xf2\x30\x15\x84\xd0\x1d\xe0\xbb\xb3\x87\xe1\x4e\x41\x59\x7d\xf9\x02\xbc\x57\x7d\xfa\xa5\x5d\xde\xbc\xd9\xd7\x85\x04\xbb\x8a\x9f\x48\x21\xac\xdb\x1e\xa6\xd5\x79\xe1\xcb\xf5\x17\xc1\x2f\xbe\x0c\xfe\x41\x9e\xc9\x74\xbf\x46\x84\xd6\xd0\x76\x0e\x3d\x46\x32\x9a\xae\xb4\x51\xc0\x96\x0f\x98\xe2\x6a\x0d\xd7\xd9\xd5\xee\x55\x4a\x2e\xc7\xc5\x54\x93\x8c\x26\xf2\x5a\x3c\x8e\x9c\xed\xc8\xb9\xa4\x03\xf0\x07\xf1\xf5\x0e\x66\xea\x7b\x18\x79\xa0\x7d\x1f\x13\xef\x87\x56\x0c\x3c\x00\x6d\xf1\xee\x00\xaa\xcd\xb7\xbb\x61\x17\x0f\x83\x35\xf9\x95\x63\x5b\xb4\xfa\x45\xc9\x74\x05\x89\x63\x57\x7d\xf1\x07\xbb\xd9\x00\xdb\xd4\x83\xc3\x30\x84\xdb\x5b\xf7\xff\x45\xf9\x30\x53\xab\xd8\xfd\x2f\x66\xb4\x3d\x89\x15\x47\x4e\x95\x5c\x72\x0d\x3e\x5b\x2c\x3c\xd8\x89\xf8\x86\x6c\xa6\x52\x79\x76\xa2\x55\xb8\xd1\x6e\x10\x9b\xcc\x75\xd8\x7f\xab\x8f\xc1\x5f\x80\x98\x99\xf9\x5b\xdd\xeb\x11\x33\xd2\x63\xff\x8a\x2d\x52\xe8\x76\x95\x8b\xe6\xba\xf0\xc1\x48\x8f\x49\x49\x11\xe5\xc2\xfb\x8e\xb1\xdf\x46\xb3\x4d\xb6\x57\x33\x9b\x87\xad\x0e\x25\x5e\xb8\x4c\x6e\xdf\x38\x9d\xe7\x4c\x7f\xbc\x16\xa7\x4a\xae\x40\x99\x1b\x4f\x90\x6e\xd7\x2b\x0c\x18\x89\xf1\xed\x6d\xed\x21\x1c\x8d\x09\xdd\x3e\x6e\xed\x1b\x89\x31\x69\xd9\xa8\x60\x2a\xd5\x92\x99\x76\xda\x72\xa5\x41\x81\xac\x5e\x6a\x97\x59\x9f\x68\xdf\x96\x4b\xb7\xb7\xc5\x1f\x5f\x81\x4e\x17\xe6\xf6\xb6\x1f\x86\x8d\x37\x85\x75\x6d\xe0\xa8\x5f\xcc\x80\xde\xed\xb2\x6d\x2b\x3a\x57\x29\xbc\xb3\x00\x83\xc4\x41\xf4\x81\x42\x64\x63\xf8\x12\x82\x5f\x99\x99\xfb\x4a\xa6\x22\xf1\x06\xf0\xf2\x39\x8c\xfa\x63\x92\x65\x5b\x57\x34\xb5\xde\x19\x0a\xf6\x0b\x71\x2e\x12\x23\x35\x1e\x41\x51\x93\xf9\xae\xa0\x1c\x87\x2b\xa6\x34\xfc\xbc\x90\xcc\xd6\x36\x03\x57\xdb\x64\x84\xd0\x7a\xf5\x69\xca\xe2\x53\xe5\xb5\xa7\xc8\xb2\x2a\xaa\xb5\x52\xf9\x9e\xc8\xe9\xf8\x11\x5e\xea\x74\x89\x26\x37\xc8\x73\x43\x91\xe2\x37\x52\xb0\x5a\xb0\x18\x5a\x4f\x5c\xb9\x50\x22\xae\xe4\x4d\xb4\xe0\xda\x80\x00\x15\xd9\xc5\x18\x6d\x63\x6b\xa4\x3e\x47\xeb\xf5\x26\x76\xa5\x63\xa4\x65\xaa\x62\x88\x8a\xe4\x12\xe2\xa7\x1b\xc8\x30\x6d\x36\x5a\xdd\x6d\x3c\x03\x65\xdb\xcd\x4e\xbb\x60\x4b\xd0\x2b\x96\x77\x57\x19\xa6\xb9\x02\x4e\x6e\x2c\x85\x88\x96\x4c\xb0\x19\xa8\x68\xa5\x60\xca\xd7\x21\x5e\xa5\x93\x05\x8f\x2b\x0d\x71\x36\x1a\xf4\x97\x63\x42\x11\x76\xe6\x60\x8a\xf0\x79\x1a\xc7\xa0\x35\x68\xfb\x90\x8f\xa7\x40\xaf\xa4\xd0\x10\xd9\xda\x32\x8a\x17\x4c\xbb\xc6\xd1\x3f\x5f\x8d\x71\xa3\xaf\x2b\xf5\xee\xef\xf8\x0a\x13\x72\xd9\xd9\xc9\x4f\x45\xe1\x24\xa8\x2e\x16\xba\x6b\x6a\x2e\x21\x0f\x23\xb5\xd2\x98\x6e\x2e\xa4\x61\x8b\x00\xbb\x1f\xc4\xc5\xc4\xd2\xcf\x95\xf4\xa0\x8d\x46\x2b\x50\x48\x43\x2c\x45\x82\x69\x65\x50\x50\xda\x36\x4d\x17\xa8\x54\x4d\x23\xef\x9a\x9b\x39\x62\x02\xb9\x6a\xb5\x7c\x8f\xac\xca\x48\x48\x53\x56\xfc\xaf\xd6\x6b\xa4\x98\x98\x01\xa9\x8d\xee\x63\x9a\xdb\x1c\xe4\xb6\x3f\x70\xd8\xbb\x87\xdc\x46\xc7\x66\x49\x79\x98\xa9\x3f\xa0\xe7\xe8\x6e\xb6\xd6\xf9\x69\xe2\x06\x2b\xe3\x75\x64\xd6\xd1\xe4\xc6\x80\x8e\x8c\x75\xe7\x9f\xc0\x50\xab\xc2\x17\x70\xf2\x63\x6a\xdc\x04\xdb\xff\x91\x1b\x33\x8a\xec\x7f\xff\x39\x26\x48\x2a\xf4\x25\xb6\xaa\xff\x72\x5b\xdf\x8b\x83\xa6\xfe\xf1\x45\x33\xd9\x5d\x33\x13\x26\x92\x6b\x9e\x98\x39\xa6\x85\xc8\xa0\x94\x8d\xac\xa5\xc8\x7a\x11\x79\xf9\x5f\x88\x39\x5c\x41\x42\xd0\x54\xc9\xa5\xe3\xae\x00\x73\x2d\xd5\x27\x4b\xe5\x09\x6f\xac\x38\x1f\xd3\x72\xbe\x82\x6a\xe6\x76\x86\x34\x8a\x09\xbd\xe4\xc6\x3c\x78\x54\xb7\x2c\x96\xec\x13\x9c\xa7\x6e\x97\x7c\x78\x39\x58\xef\x1f\xd9\x19\x44\x9e\x9d\xa7\xca\x6d\xdb\x7a\x3a\x0c\xf5\x50\xf4\x30\xea\x2a\xa6\xd4\x5b\xb4\xd9\xfc\x72\xf6\xf1\xb7\xd3\x2c\xc3\x41\xbd\x16\xb6\x28\x5c\xb5\x95\x60\xdc\x13\x81\xc8\x35\xb1\x4b\xfb\x1c\x16\x10\x1b\xa9\xf6\xa8\xc3\xa7\x5e\x6b\xb8\x22\xdf\x5e\x16\xc4\x49\x40\x1b\x2e\x98\xed\x75\x80\x7a\x75\xc4\x41\xfe\xd5\x41\x6d\x12\x5e\x76\x0a\xa7\x3c\x22\xd1\x2b\x5a\x8a\x5e\xd8\xf4\xf1\xb3\x7b\x33\x52\x05\x7f\x16\xdc\x0f\x6e\x2f\x9f\x67\xf9\x34\x5c\x9c\xfc\x6f\x16\x1e\x32\x0b\xb5\x48\xf4\xaf\x0a\xe1\x3f\xaf\xb9\xfe\xae\x58\xf5\x2c\xa3\x33\x5b\xa8\xff\x3d\x05\x75\xd3\xf0\x73\xb5\x13\xa9\x49\x85\xa1\xe9\x85\xd8\x65\xa4\x42\xed\xb2\xb1\xb4\x9a\xb6\xdf\x6f\x0d\xde\x69\xaa\x6c\x25\xed\x15\x0a\xdd\xae\xd7\x96\xd4\xf4\xee\x41\xb7\x1e\xf2\x27\xc1\x84\x9a\xc2\xd8\xbf\xdc\xbc\x17\xb6\xa0\xdc\xb3\xed\x6a\x18\xbb\x7d\xda\xd5\x0f\xe7\x02\x70\x46\xf3\x3a\xf6\xd4\x39\xd8\xc6\x8e\x7d\xc3\x36\x7b\x0f\x8b\x4a\x2a\x5e\xa4\xda\x80\xda\x7a\x44\x7d\xc6\x01\xae\xad\x97\x46\x99\xd9\x12\x75\x71\xf2\x35\x92\xe2\x75\x25\x69\x27\x9b\xe2\xb2\xaa\x3e\x3d\x6f\xae\xbc\xda\xd1\x80\x4b\x48\xed\x68\x59\x81\x68\xbc\x05\x14\x81\x7d\xdb\xc6\x5d\x11\xee\xb9\x7c\xfe\x74\x93\xe3\x5a\x2e\xf4\x04\xc9\xa2\x58\x2e\x57\x0b\x30\x90\x6c\x9e\x6e\x58\x96\x8d\x06\xaf\x96\xe3\xfd\xd9\xd2\xd8\x4d\x83\x7d\xdc\x52\xd9\x13\x94\x13\x8a\xcf\x4e\xcf\x31\xbd\x3c\x9e\xfc\xf8\x74\x13\x67\xc7\x47\x93\x1f\xcb\x6a\x32\xcf\x5a\xec\x0a\x14\x9b\x41\x82\xe4\x15\x28\x97\xab\x16\x4c\x1b\x34\x78\x85\x96\x5c\xa4\x06\xf4\x25\x55\x74\x3b\x72\xc1\x1b\x4f\x54\xb5\xdc\xbb\xb3\xc7\xf1\x10\xc6\x9d\x3a\x15\xc5\x90\xff\x29\xeb\x4e\x74\xbb\x5e\x5b\xd2\xd7\xaf\x3b\x17\x26\xd3\xf0\xd0\x4c\x53\xd9\x20\x44\x9a\xd9\xfd\x94\x9d\x72\x7a\x70\xbf\x11\xe2\x57\xb8\x24\xc4\xd3\x0d\xcf\x8e\xf6\xf6\xaf\x23\x0e\xd1\x46\x52\xfc\xee\x0c\xd3\xcb\xe2\x8c\x89\xcd\x00\xc9\x29\xda\x43\x18\x8d\xae\xe7\x3c\x9e\xa3\x6b\x50\x79\x8d\x9f\x9f\x6a\xdf\xc1\x9c\x7d\x67\xfc\xca\x1d\xe9\xff\x1f\xce\xc8\x9d\xb4\xda\x9e\x78\xb5\x53\x9f\xa0\x2c\x27\x58\x7c\x80\x60\x25\x88\xf2\x5d\x82\x55\x6d\x69\x88\x17\xd0\xa4\x18\x1b\xa6\xbd\x10\xef\x70\xe5\x6b\xe8\xd5\x66\x17\xeb\x76\xbd\xba\x90\xaf\x64\x56\x41\x2c\x19\x5e\xce\xb9\x36\x72\xa6\xd8\x32\xfa\x9c\xb2\xfc\xa0\xf0\xe9\x06\x8e\x06\xfd\x7e\x46\x8b\x2d\x94\x23\x06\x41\x77\x47\x1d\x46\xb2\xc8\xf0\x25\x44\x93\x34\xfe\x04\x66\x63\x39\x50\x92\xe8\x60\xe0\x91\x14\x9f\xe2\x1e\x14\x51\x86\xe7\xa4\xb1\xa9\xdf\xcc\x6d\xa5\x5b\xcc\x63\x15\x77\x0a\x6b\x91\x95\x73\x07\x79\xf4\x1e\x7e\xb0\x8a\x1f\xe5\x31\xe7\xfd\xc1\xa7\x56\x45\x7d\x93\xe8\x7c\x71\x92\x07\xe7\x7c\x9f\xf5\xc7\x03\xf3\xc9\x59\x2b\x2e\x97\xbb\xfd\x8b\x93\x53\x64\xcb\x44\x70\x76\xd5\x37\x0b\x5f\x1f\xad\xab\x73\xdf\xc7\xf1\x5b\xb1\x61\xbf\xd7\x77\xad\xcd\xea\x57\x64\xb7\x7f\xec\x24\xb7\x18\xf8\x15\x24\xed\x7d\xd6\x37\x73\xdd\xc5\x7f\xd8\x75\xe6\x5b\xb9\xee\xa2\xed\xba\xda\xd6\xf5\xd1\xbc\x57\x5c\x11\x3c\x8a\x0b\x71\x24\x64\xa4\xec\xf0\xb8\xb3\x27\xa9\x87\x38\x2a\x56\x55\x34\x65\x7c\x51\x25\xe5\x87\x2c\x76\x1b\xd5\xfe\xa0\xab\x53\x42\xf1\x87\xf6\x52\x4f\x85\xd5\x93\x4d\x16\x80\x3c\xab\x0c\x24\xe4\xf1\x96\xbc\x61\xbb\x67\x0a\xd6\xe3\xe2\xf6\xd6\x03\x5b\xea\x7c\x3c\x43\x52\x78\x04\x5d\xe5\xee\xee\x97\x05\x0b\x0b\x37\x9f\xdd\xa6\x08\xa8\x3b\x10\x3f\x74\x07\x9d\x35\xef\x74\xf3\x2f\x06\x3c\x7c\xc4\x56\xfc\xe8\x6a\x70\xe4\xc6\xc0\x94\x1d\xb8\x72\x7f\x52\x4d\x7e\xed\x00\x1c\xf6\x1e\xd8\x8f\x06\xd5\x65\xcb\xc6\x1d\x2c\x05\x86\x26\xa0\xe3\x40\x51\xd7\x1e\x70\xfd\x81\x7d\xf0\x18\x19\xe2\xef\x70\xe0\xee\x30\xb3\xf2\x62\x24\x0e\x37\x19\xe5\x61\xff\x2d\x3f\x86\x3d\xd7\x0d\x6f\x79\xaf\x97\xeb\x91\x86\x4d\xe1\x7c\x4c\x65\xe8\x35\xb4\x4b\xb7\xea\xd0\xcb\xa7\x9b\xb4\xa0\xcc\x08\x17\x79\x1a\xf7\x44\x0f\x97\x59\x1d\x8f\x33\xff\x20\x66\x9b\xca\xef\x42\x6d\x2b\x01\x3c\xce\x2e\x49\x27\x1e\xc9\x71\xd8\xf2\x80\x5f\x1e\x13\x6e\x4f\x76\x30\x95\xe4\xb0\x63\x8a\x39\x8b\xb3\xfa\x1a\x6d\x1f\xc7\xe6\x2e\x51\x5b\x22\xb8\xaf\x0c\x02\x93\x7f\x6d\x40\x41\x24\x81\xf1\x41\x24\x54\x1b\x58\x05\x78\xd0\xd7\xd8\x71\x45\xa6\x26\xc0\x3f\x68\xfc\x10\x6a\x44\xee\xac\x18\x53\x45\xb2\xac\x53\x0a\x77\x75\x62\xf5\x5d\xc8\xf1\x00\x5e\x0e\x3f\xa4\xcb\x09\x28\x9f\xeb\xf7\xc2\xc0\x0c\x2c\x60\x88\x71\x0f\x82\xbc\xc1\x83\x1f\xc3\x41\xbf\x3f\x04\xdf\xc8\x53\x05\x31\xd7\xd6\x86\x97\x24\x80\xe3\x81\x7b\xf9\x33\x5f\x43\xe2\xbd\x20\x41\x13\xf1\x82\x90\xc0\x76\x85\x97\xdd\xae\x15\xf4\x7a\xd8\xf3\xc0\xd2\x9a\xb4\x06\xea\xe1\x4f\x38\x47\xbe\xce\x91\x6f\x0a\xe4\xeb\x5d\xe4\xb2\x40\xbe\xc9\x91\x83\x17\x05\xf4\xcd\x2e\x74\x56\x40\x2b\xcc\xe0\x05\xa9\xb4\xed\x93\x1e\x36\x38\xb8\x92\x3c\x41\xfd\xac\x72\x8e\x2e\x3f\x57\xb1\x8e\x29\x2f\xbb\x6a\xf7\x55\xb6\xc4\x5e\x6a\x5c\x7c\xb9\xe2\xac\xe9\xf0\xa9\x67\x8e\x5f\xf7\x4b\xb4\xa9\x64\x0c\x48\x0f\x17\x58\x15\x9a\xa3\xd7\x7d\x0b\x55\x35\xa8\x6a\x40\x97\x39\x54\x87\xca\x42\xcb\xbb\xb0\xe3\x17\xdf\x0f\x75\x03\x37\xc7\x81\xa7\x8f\x5e\x7c\x4f\x1a\x6f\x13\x9c\x5d\x73\x91\xc8\x6b\x3f\x67\xb8\xaf\x60\xc6\xed\xc6\xbc\xb8\x08\x3e\x2d\x3e\x68\xaa\x7f\xed\x84\xa9\x21\x19\xf1\x48\xe7\xdf\x01\x00\x00\xff\xff\xde\xa6\xb5\x3b\x9b\x25\x00\x00") - -func web_uiAssetsMetricsProvidersPrometheus5f31ba3b7ffd850fa916a0a76933e968JsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsMetricsProvidersPrometheus5f31ba3b7ffd850fa916a0a76933e968Js, - "web_ui/assets/metrics-providers/prometheus-5f31ba3b7ffd850fa916a0a76933e968.js", - ) -} - -func web_uiAssetsMetricsProvidersPrometheus5f31ba3b7ffd850fa916a0a76933e968Js() (*asset, error) { - bytes, err := web_uiAssetsMetricsProvidersPrometheus5f31ba3b7ffd850fa916a0a76933e968JsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/metrics-providers/prometheus-5f31ba3b7ffd850fa916a0a76933e968.js", size: 9627, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsVendor69ef69e98b7d14d1513f8056b6c6b48dCss = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x58\xfd\x4f\xe3\x38\xf3\xff\x57\xfa\xd5\xea\x74\xb7\x5a\x4a\xdd\x37\x4a\x1b\xdd\x57\xe7\xbe\xc0\xb6\x94\x42\x0b\x05\xca\x6f\x4e\xe2\x26\xbe\x26\x76\xd6\x71\x9a\x42\xc5\xff\xfe\xc8\xce\x0b\x4d\xeb\xc2\xee\xe9\x1e\xe9\xd1\x8a\x85\xd8\xe3\xf1\xcc\x67\xc6\x33\x1f\xfb\xb4\xc7\x6c\x7c\x4d\x38\x67\x7c\xbb\x64\x54\x94\x97\xc8\x27\xde\x4b\xc7\x67\x94\x85\x01\xb2\xb0\xe1\x62\xe2\xb8\xa2\x53\x07\x20\xd8\x18\x16\xf3\x18\xef\x7c\x01\x00\xbc\xed\xac\x2c\x7b\x84\xe2\x70\x1b\x20\xdb\x26\xd4\xe9\x34\x82\x4d\xa9\x30\x5f\x0a\x38\xce\x67\x41\xa9\x11\x6c\x0a\xab\x9d\x48\x08\xcc\xcb\x4b\xe2\x79\x98\x9f\xec\xce\x84\x16\x67\x9e\x67\xa2\x6c\x72\x6b\x22\x6b\xe5\x70\x16\x51\xbb\x9c\x9a\xb2\x5c\x2e\x35\xca\xc2\xad\xc9\xb8\x8d\x79\x99\x2b\xe3\xab\xc1\xa6\x14\x32\x8f\xd8\xa5\x2f\xb6\x6d\x1b\x1a\x2d\x2d\xf9\xcf\x88\x5d\x22\x70\x59\xf9\xdd\xa1\x2c\xe6\x28\x38\x70\x93\x46\xbe\x89\xf9\x8e\x37\x75\xe9\x6d\xa9\x19\x6c\x0c\x9f\xd0\x72\x4c\x6c\xe1\x76\x6a\x12\x2b\x81\x37\xa2\x8c\x3c\xe2\xd0\x8e\xb2\x22\x03\xaf\xdd\x6e\x7f\xb6\x51\xe2\x84\x8f\xf8\x0a\xf3\xed\x11\xcc\x77\x65\xca\x61\x64\x0a\x0f\x6f\xdf\x77\x28\x88\x5a\x11\x0f\x19\xcf\x20\xf1\xf0\xb2\x80\x08\x00\xc0\x28\xa0\x45\x19\xc5\x46\xe2\x48\x31\x8c\x36\x59\x17\xa2\x83\x2d\x46\x6d\xc4\x5f\x3e\xd4\x1f\x12\x6f\x8d\xf9\xdb\xa9\xe5\x97\x97\x48\xa4\xb6\x94\x34\xe6\x25\x3b\xa2\x48\xb0\xd4\x9c\x0e\xf8\x3f\xe2\x07\x8c\x0b\x44\xc5\x4e\xcc\x3a\x5f\x5a\xb8\xb5\xaf\x6f\xcf\xb4\x64\x34\xdc\xbe\x96\x09\xb5\xf1\xa6\x53\x55\xf2\x88\x12\x1f\x09\xbc\xb3\x4e\xb7\xa9\x51\x8e\xb1\xb9\x22\x22\x15\x27\x8c\x76\x4c\x8f\xd0\x55\xa9\x7a\x0a\xce\xc2\x52\x28\x70\x10\xfe\x51\xfd\x5a\x22\x74\x49\x28\x11\xd8\x28\xfb\xec\xf5\xa7\x85\x7f\x56\xee\x30\x47\xa5\xd7\x7f\xa9\xbd\x56\xf8\x65\xc9\x91\x8f\xc3\x92\xd2\xb1\x6d\x82\xdf\x0e\x4f\x86\xe0\x88\x86\x01\xe2\x98\x8a\xb7\xb7\xbf\x32\x9f\xfe\xc1\xd2\x5f\x5f\x22\xb1\x16\xc8\xdc\xda\x24\x0c\x3c\xf4\xd2\x21\x54\x9e\x9c\xb2\xe9\x31\x6b\x95\x1c\x0b\x1b\x5b\x8c\x27\x30\x10\xea\x62\x4e\x44\x21\x61\x79\xa4\x0e\xbb\x3e\x5f\x2d\xcb\x32\x02\x16\x12\xb5\x1a\x99\x21\xf3\x22\x81\xd5\x9e\x61\xd9\xc6\x4b\x14\x79\xa2\x24\xbf\x5c\x8c\xec\xdd\xe3\xb3\xd4\xc8\xfc\x88\x98\xc8\x8f\x0d\x68\x03\x25\x42\xb1\x83\x04\x59\xe7\xe3\x76\xa3\xa1\xc6\x93\x4d\xdf\xc7\x6b\xed\xda\xdb\xfb\x46\x27\x4a\xbb\xe0\x8c\x3a\x49\x25\x8d\x93\xc2\xd9\x02\x89\x56\xec\x27\xc3\xa1\x78\xf1\x70\x87\x08\xe4\x11\x4b\x4d\x28\x50\xf7\x51\x89\xa8\x8d\xb9\x44\xed\x2d\x55\x4b\x56\x58\xb8\x9c\x45\x8e\x7b\x20\xab\xc0\x4d\x27\x35\x3e\xae\xf0\x4b\xcc\xb8\x9d\x59\xdd\x02\xe7\x1a\x21\x24\x98\x9f\xfb\x55\x6d\x6b\x24\xd2\xc2\x97\xca\x54\xcf\x1a\x1a\x19\x1b\x2f\x3f\xc6\x7b\x8d\x38\x41\xa6\x87\xcb\xb5\x5c\xae\x89\x3e\x92\xab\xe7\x72\xe7\x4d\x8d\x9c\xc5\x7c\x1f\x53\x91\x09\xa1\x26\xd0\x08\x49\xf4\xa8\x93\xcb\x54\xab\x47\x65\xde\xcd\x5a\x6a\x35\xf9\x58\xa0\x13\x5d\x16\x21\x8f\x2c\xc9\x3b\x3a\xcd\xa6\xce\x58\x33\x22\x9e\x20\x34\x13\xaa\x03\x9d\xe7\x26\x47\xd6\x0a\x8b\xf7\x52\xde\xd2\x08\x09\x94\xbb\x53\x6d\xe9\x0c\x45\x42\x70\x62\x46\x3b\xb9\x0d\x2c\xdd\x11\xe1\x85\x96\x71\x30\xaf\x52\x73\x4f\x03\xa1\x6b\xe4\x11\xdb\x72\x11\xd7\x40\x81\x15\x93\x48\x96\x70\x6c\x17\xdb\x10\xf3\xe5\x11\xa2\x4e\x76\xb2\x4d\x26\x04\xf3\x3b\xb5\xec\x6c\xbf\x15\xab\x78\x29\x0c\x10\xdd\x55\xe0\x23\x61\xb9\x84\x3a\x7b\x18\x81\x25\xf8\x6c\x25\x65\xf4\xc8\xe2\x65\xad\xf6\xa6\xdb\x43\x42\xbc\xd3\x73\xb8\x63\xa2\x3f\x6a\xcd\xe6\x49\xb5\x09\x4e\xc0\xc9\x69\xfd\x6b\x61\x15\xb2\x64\x61\x48\xaa\x5c\xbe\x68\x77\xfd\x17\x7c\xbe\xac\x15\xa9\xca\x36\x2f\x62\x1c\x7b\xaa\xe0\x18\x6c\x8d\xf9\xd2\x63\x71\xc7\x25\xb6\x8d\x69\xa1\xe9\xed\x13\x9d\x84\x1b\x6d\xf3\x25\xc9\xf7\x4e\xc7\xf4\x11\x77\x08\xcd\x40\x2e\xd7\x25\x27\x49\xc7\x92\x3e\x9f\x0c\xa5\x4c\x26\x93\x53\x63\x29\xe7\xab\x02\xf0\x9b\xc1\x22\x21\xfd\xea\x00\xe3\xc0\xde\xa2\x3d\xe4\x15\xeb\x7c\x2a\x50\x0b\xa9\x3d\xad\xe3\xbb\x1d\xe3\xe7\xd8\xa0\x9b\xd3\xc1\x0f\x49\x62\x61\x72\x9d\xcf\x6e\x0f\x7a\x86\x91\xb1\x83\x33\x23\xeb\x54\x92\xfa\xbc\x1d\x59\x9f\x78\x00\x0c\xc1\x82\x0e\xc8\x43\x55\xde\x64\xc1\xca\x47\x5e\xd2\x58\xbc\xe9\x8d\xdf\xa6\x48\x03\x43\x75\x36\xb0\xbb\x70\x5f\xd5\x46\xa7\xea\x80\x15\x67\x96\x65\x8a\x8f\xe3\xb9\x4d\xb7\xfc\x40\x32\xd4\x00\x95\xae\x4a\x3c\x97\x34\x77\x37\x41\x32\x14\xeb\x1a\x65\xdb\x22\xd1\xe5\x3e\xf2\x0a\xc9\xa5\x65\x08\x6b\xcc\x05\xb1\x90\x97\x92\x67\xc1\x02\x5d\x2e\xeb\x9c\x94\x44\x3a\xc0\x1f\x85\xba\xb1\x7b\xa6\x40\xa9\xc0\x30\x13\xfe\x27\x53\x60\x67\x34\x23\x4e\x51\x28\x69\x36\xf6\xb0\x95\x12\x64\xc5\xc4\x0e\x46\xf7\x07\x74\x56\xee\x54\x88\x43\x43\x13\x8c\xf3\x14\xc9\xed\xd6\x29\xc2\x9e\xd0\x68\x48\x98\x6d\x27\xad\xca\x47\x34\x24\x37\xb6\x54\x54\x12\x8a\x42\x58\x8b\xe8\xaa\xeb\x9b\x72\x37\x3b\xcb\xc8\x26\x51\xb8\xc3\x94\xf7\xc7\x8f\x7c\xa7\x77\x8a\xbd\x10\x18\xbb\xf7\xce\x94\x0d\x26\x63\xb2\xa4\xe4\x23\x49\x0a\x74\x40\xe1\xee\x14\x70\x6c\x48\x72\xa3\x22\x9f\x25\x98\x4a\xa5\xd4\x95\x6c\x75\x52\xed\xb3\xaf\x0c\x93\xda\x61\x4d\x7b\xaf\xc1\x6b\x12\x12\xd3\xc3\xb9\x93\x02\x05\x65\x97\x38\xae\x27\x15\x1f\xd2\xde\x5c\x4e\x99\xae\x08\x0c\x15\x65\x8f\x38\x48\x44\x1c\x87\x49\x7a\x7c\x30\x57\x08\x8f\x74\x47\xc1\xfe\xee\x9c\xc9\x31\x5a\x95\xe5\xf7\x3e\x02\x6a\x3e\x81\x41\x09\xa5\x38\x1c\xc4\xfb\xc3\xbc\x4b\x8f\x78\xb1\xc8\x1d\xa4\xe1\xe1\xb5\x3f\x26\xb6\x83\x85\xa6\xee\xbf\x63\x9c\x23\x2a\xaf\x59\x7b\x8c\xc0\xc6\xdb\xbc\xc1\x68\x52\xfc\x44\x53\x9f\x4e\xf4\x57\x72\x4d\x4f\x38\x39\xec\x4f\x69\x1a\x6f\xe4\xa7\xbc\xbf\x5b\x8c\x0a\x4c\x65\x06\x6f\x0c\xfd\x70\x91\x1d\x60\x14\x46\x1c\x6b\xf0\x4b\x72\x5b\x15\xb5\x34\xf5\xc0\x41\x3b\x57\x19\x45\x3c\x22\xb2\x42\xaf\xbb\xa5\x6b\xae\x36\x87\x06\x24\x2f\x2a\x99\x64\x28\x90\x20\xd6\xdb\x91\x3b\xf0\xc1\xae\x9a\xa4\xd7\xd7\xf0\x25\xb3\xa2\x10\xdb\x47\x2e\xd7\x27\x7b\xc3\x36\x47\x8e\x66\xcf\xf4\x18\x15\x3b\x98\x2a\x90\xb8\xc8\x90\xec\xb6\xfc\xa7\x35\xe0\xf3\xb5\x2d\xbb\xb1\x2c\x26\x90\xc5\x59\x18\xba\x88\xf0\xac\xca\xe5\x03\x07\x39\xdc\xe9\x24\x4a\x09\xa3\x07\xc9\xf5\xff\x92\x4a\x7e\x2a\xb0\x2f\xf5\x99\x71\xc9\xae\x2a\x19\x3f\xdd\xfa\x67\xa4\xb4\xa2\x5a\x23\x24\x63\xc7\x88\x2b\x8e\xbb\x2d\xf2\x4b\x64\xe8\x08\xaf\xfc\x01\x27\xa7\x8d\xaf\xc9\x93\x0b\xe3\x16\x4e\xeb\x7d\xf6\x08\x96\x72\xbb\x53\xd9\x36\xfe\xf2\xb1\x4d\x50\x29\xe0\x84\x8a\xed\x07\x6f\x47\x47\x93\x33\x7f\x3d\x50\x55\xad\xec\x22\x6b\xd5\x41\x4b\xa1\xee\x56\xea\x4c\x76\x7e\xff\xfd\x6d\x9f\xde\x67\x39\x21\x1b\xd9\xb6\xd8\x5d\xf6\x61\x17\xe5\xe4\xc9\x2c\x4c\x9f\x7e\xaa\x67\x7b\x54\x42\xc9\x08\xc6\x3c\x41\x02\xed\x7b\xa3\x9d\x31\x85\x23\x6f\x68\x49\xd3\x6b\x14\x5e\x4b\x0d\xfd\xdb\xea\x7b\x97\xab\x82\x40\x1c\xd4\x8b\xec\x91\x51\x5e\x90\x9a\x92\xaa\x67\xe7\x76\x49\x36\xf8\xa0\x0d\xe8\xdb\x42\xfe\x02\x06\x80\xe1\xa3\x4d\xda\x83\xcf\xd4\x6b\x2e\x0b\x90\x25\x91\x07\x86\xea\x63\x89\xee\x74\xb0\x74\xda\x08\x13\x8e\x73\x6c\x2e\x6b\x8b\x47\xa6\xd9\xd1\x19\x3f\x3c\x32\xa5\x8f\x55\x72\xa7\xdc\xcf\xfb\x74\x2e\x46\x9c\x16\x33\xb9\x9c\xa3\x24\x5b\x5a\x29\x69\x61\xbb\xcf\x69\x1c\x07\x18\x89\x4e\xf2\xab\xac\x09\xfe\xfb\xa6\xbb\x6a\x89\x8f\x1c\xdc\x89\xb8\xf7\x87\x8d\x04\xea\xa8\xcf\x4a\x40\x1d\xc3\x44\x21\x3e\x6b\x9c\x90\x87\xee\xcd\x2c\x06\x57\x97\x0e\x83\x10\xc2\xc9\xdd\xdc\x1d\xcc\x1d\xf9\xe7\x54\xfe\xd7\xef\xc1\x05\x84\xb0\x07\xda\x57\xad\x4b\x39\x00\x9f\x26\x77\x33\x30\x84\x3c\x6c\x58\x67\x4a\xe4\x99\xdc\x01\x7b\x00\x6f\xcf\x61\x25\xee\x57\xd8\xb8\x46\x57\xb1\x1c\xf7\xe2\xbb\x0b\xef\x15\x42\x38\x1e\xc4\x10\xf6\x36\xd7\x5d\x38\xfa\x61\x25\x4a\x6c\x70\x37\xaf\x5e\x74\xdb\xe1\xa8\x1f\x37\xac\x9b\xde\x63\xb5\x72\x35\x54\xca\xec\xc1\xc3\xc2\x1e\x4c\xd6\xe6\x63\xd5\x33\xe9\x14\x4e\xeb\x23\x6f\xf1\x34\xf3\x9e\x7b\xdd\x3a\x7a\x9a\xb1\xe1\xc0\x1e\xdd\x3f\x74\x9f\x9c\x69\xe3\x49\x2e\xf8\x3e\xf0\x06\xd3\x87\xe9\xb0\x5a\x9b\x38\xce\x70\x5c\xe9\xc3\xd7\xca\xa5\x0d\x9b\x95\xcd\x6a\x51\xf9\x71\x7b\x75\xdd\x87\x31\x84\xfd\xf1\x73\xbc\x6c\xf2\xb5\xff\x6d\xac\x6c\xee\x8e\x66\xf3\xe6\x80\xaf\x46\x8e\xe3\xfc\xf9\xe7\xd7\x23\x60\x6a\xa2\xf4\xbf\x0e\xe7\x85\x3b\x7d\x1a\x98\xee\xbd\xd3\x5a\xfc\x23\x38\xaf\x57\x39\x9c\x2b\x67\x38\x5c\x8f\xea\xd3\xa7\xeb\xbf\x61\x6c\xf7\x27\xdf\x6e\xd0\xc0\x7c\x09\xfb\xb0\x71\x7d\x0b\xe3\x49\x7f\x12\x5f\xf7\x62\x72\xf3\x7d\xdc\xb3\xab\xaf\x4f\xa0\xc5\xce\x56\xdd\x87\xcb\xe9\x00\x5e\x75\xe1\x44\x30\x33\x5c\x4d\xae\x95\x75\x77\xf3\x87\x9b\xd9\x55\xb3\xb7\x18\x0e\x8f\x41\x2d\x6f\x05\xc7\x8f\x8b\xe4\xe0\x1f\x1c\x18\x0b\x53\x81\x79\x29\xf9\xa5\x39\x32\x94\xa5\x7f\x65\x77\x8c\x80\x11\x25\xaa\xbd\xc6\x65\x97\x89\xb3\x60\x63\xbc\xd7\xda\xfd\xdb\x9d\x4f\x6c\xdb\xc3\x9f\xbc\x2d\x24\x0e\xe0\x30\x44\x0e\x3e\xea\x5f\x3a\x9d\x39\x98\x35\xa7\xe4\xf9\xf8\x3c\xd8\x18\x3a\x97\x05\x0b\x4a\x52\xe2\x23\x6f\x7f\x19\xe9\x5d\x43\xff\x95\x9c\xef\xaa\xf0\x4f\x7b\x50\xe5\x01\x1b\x4f\xdb\xf7\xea\xc8\x7a\xdd\xeb\x87\xc1\x63\x0b\xc2\x9e\xfc\xd9\xa4\xbf\x5b\x4a\x1a\xf6\x1a\x10\xf6\x9a\x10\xf6\x2b\x95\xca\x37\x39\x36\xb7\x2d\x2f\x50\x87\x96\xce\xee\xee\xbd\xeb\x27\x7a\x33\xbb\x23\x71\xef\x0a\x3c\x5f\xdd\xc9\xf1\xfb\xb9\xcc\xd9\x59\xa3\xe6\x3f\xde\xde\x4c\x5b\x70\x0a\x9d\x7e\x34\x1d\x6f\x2a\xaf\xe7\x56\xb8\x98\xf9\xb7\xb3\xe1\xc5\x30\x9e\x5d\x52\x16\xce\x78\x80\xfc\xf5\xea\x8a\x80\x8b\xfb\x21\xb9\x86\x77\xb3\xba\xeb\x5e\x3d\x7e\x73\xe1\xe4\xac\x22\x86\x8f\x6e\xd4\xbe\xed\x3f\x92\xfb\xcb\xc9\x60\x75\x2f\x86\x37\x91\x05\x9b\x37\x2f\xbc\x6d\xad\x6e\x1d\xf8\xe8\x83\xcb\xdb\x2e\x73\xce\xd6\x8d\x5f\xc8\xeb\x34\xb0\x9f\x47\xfe\xbf\x88\xf8\x44\x21\xfe\x54\x89\xe2\xfe\x9a\xc7\x7d\xf9\xfb\xd8\xcf\x99\x50\xbf\x55\xb1\x8a\x78\xdc\xaf\x89\x69\xbf\x15\xc1\xfe\xb7\x48\x55\x31\x25\xe3\xfa\xf8\x7e\xa6\xbe\xbe\xab\x88\x8c\xce\xfd\x49\x75\xb0\xb0\x4c\x9f\x90\x8d\x03\x7b\x7e\xeb\xd1\x8c\xe4\xfc\xc3\x2a\x8d\x0c\xad\xdf\xce\xa7\x3f\xe0\xb0\xdb\xbd\x98\xcf\xab\xe3\xb1\x55\x8f\x2a\x7f\xdb\xe6\xcd\x88\x3d\x56\x6f\xc1\x79\x1f\xb6\x2f\x4d\x74\xfe\x6d\xf1\x38\x3a\x73\x26\x23\x36\x59\x0c\xbb\xaf\x10\xd6\x2c\xb7\x2b\xdc\xe6\x6a\xec\x5f\xb6\x17\x73\x76\x09\x26\xdf\xe1\x3c\xbe\x78\x8a\x6f\xda\xe3\xa8\x3b\x1d\x57\x1d\xd2\x9b\x9a\xe7\x4e\xaf\x7d\xc3\x59\x6d\x1d\x34\x39\xb5\x7a\xc3\xc5\xf9\xf8\x3c\x1a\x6c\x9a\xcf\xab\x5f\x88\x92\x1f\x49\xe2\xe4\xe1\x7f\xa7\xd6\x5b\x2a\xcd\x93\x28\xf4\x5f\xff\xbe\x5a\xba\x2a\xb3\x1f\x64\x14\xe6\x30\xcd\xf3\xca\xba\xd5\xae\x36\x56\x2f\xdf\x93\x3e\xa0\x90\x84\xd3\x1b\x73\xf1\x2c\x75\xf4\x26\xa3\xd9\xe0\x62\x8e\x27\xac\x4a\xd8\x60\x04\x21\x1c\xc6\xfe\x6b\xe5\x7b\x1b\x90\x8b\x8b\xbb\xcb\x91\x73\x71\x8d\xeb\x0e\x1a\x3f\x03\x66\x7f\x6b\x57\xe0\xf4\x19\xc0\x3e\x0b\xcd\x05\x47\x4a\xdf\xc0\xbb\xb8\x5f\xdd\x45\x53\xbf\xd7\xfb\xfa\x61\x4d\xd4\x95\x17\xc5\x8c\x33\x0e\x72\x78\x45\x94\x7f\xbf\xfd\x27\x00\x00\xff\xff\xa3\x1f\x3f\x9d\x83\x1f\x00\x00") - -func web_uiAssetsVendor69ef69e98b7d14d1513f8056b6c6b48dCssBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsVendor69ef69e98b7d14d1513f8056b6c6b48dCss, - "web_ui/assets/vendor-69ef69e98b7d14d1513f8056b6c6b48d.css", - ) -} - -func web_uiAssetsVendor69ef69e98b7d14d1513f8056b6c6b48dCss() (*asset, error) { - bytes, err := web_uiAssetsVendor69ef69e98b7d14d1513f8056b6c6b48dCssBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/vendor-69ef69e98b7d14d1513f8056b6c6b48d.css", size: 8067, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiAssetsVendorA8ab945788d03426b8cd1080cb42495fJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\xfd\xd9\x76\xe3\xc6\x9a\x28\x08\xdf\xeb\x29\x48\x9c\xfd\x63\x47\x24\x3f\x21\x11\x41\x12\x24\x43\x0a\xf1\xa4\xd3\x4a\x57\xd6\x76\x0e\x95\x29\xdb\xe5\xe2\xe6\x51\x41\x64\x50\x84\x13\x02\xb8\x01\x50\x4a\x99\x64\x2d\x9f\xbf\xfb\xf4\xb8\x56\x3f\x40\xdf\xf4\xb9\xed\xab\x7e\x87\x7a\x93\xe3\x7e\x91\x5e\x31\x60\x22\x41\x65\x6e\x77\xeb\x42\x04\x02\x31\x0f\xdf\x14\xdf\xf0\x10\x44\xf3\xf8\xc1\xb9\xbc\xbb\x11\xc9\xe5\xdb\x1f\xf9\x62\x1d\xcd\xb2\x20\x8e\x90\x80\x0c\x6f\x16\x71\x82\xee\xfd\xa4\x95\xb4\x82\xa8\x95\x61\x31\x49\xa6\x3c\x9b\x24\xd3\x93\x44\x64\xeb\x24\x6a\x89\x1d\xda\xab\x60\xbb\xdd\xec\x60\xf3\xea\xf2\xc5\xd5\x0f\x1f\x2e\x3f\xb2\xcd\x0e\x2e\xff\xf9\xea\xf2\xed\xb7\xd7\xef\x3f\xbc\xbb\x7a\x77\xf5\xf3\x7b\x99\xf8\xad\x9f\x09\xd6\x26\x3b\xb8\x7e\xf1\xfe\xfd\xf7\xaf\x5f\xbe\xb8\x7a\xfd\xee\xed\xf5\xd5\xe5\x9b\xf7\xdf\xbf\xb8\xba\xbc\xfe\xe9\xc3\x8b\xf7\xef\x2f\x3f\xb0\x36\x81\xeb\x6f\x2f\x5f\xbd\xf8\xe1\xfb\xab\xeb\x17\x1f\x7f\x7e\xfb\xf2\xfa\xdd\x37\x1f\x2f\x3f\xfc\x78\xf9\xe1\x23\x6b\xbb\x70\xfd\x8f\xff\xf4\xc3\xe5\x87\x9f\xaf\x5f\xbf\xbd\xba\xfc\xee\x83\xaa\x43\x15\x29\xea\x79\xf7\xf6\xfb\x9f\xaf\xbf\xfb\xfe\xf5\x9b\x37\x97\x1f\xae\x5f\xbe\x7b\xf3\xfe\xdd\xdb\xcb\xb7\x57\xb2\xec\x0e\x9f\xc8\x61\x85\xb1\x3f\x17\x09\xcc\xc5\x22\x88\x04\x24\xe2\x6f\xeb\x20\x11\x6f\xe2\xf9\x3a\x2c\xde\xf2\xdf\x5f\x52\x48\xd6\x51\x14\x44\xb7\x57\x22\xcd\x52\xde\x26\x67\xa8\x9c\x2b\xbc\xb1\xd6\xa9\x68\xa5\x59\x12\xcc\x32\xeb\x24\xff\xd0\xca\x10\xde\xc8\x86\x04\x7f\x77\xf3\x8b\x98\x65\xce\x2c\x11\x7e\x26\x50\xb4\x0e\x43\x5c\x4c\xa2\x73\x7d\xcd\xef\xe3\x60\xde\x72\x61\x2e\x42\x91\x09\x95\x04\x62\xa7\xa6\x9e\x6f\x74\x37\x59\xad\xb7\xac\xa9\xd3\xac\x71\x08\xec\x60\x28\xac\x78\xda\x9d\x14\x8f\xdc\x3c\xf1\x5a\x25\xbc\x3a\xc8\x7c\x3b\x64\x7c\x32\x85\x84\xcf\x90\x00\x0b\x99\xec\xd8\x82\x0c\x43\xc4\x33\x27\x14\xd1\x6d\xb6\x3c\x25\x67\xd1\x05\x77\xcf\xa2\xd3\x53\x9c\x4d\xa2\xa9\x23\x3e\xaf\xe2\x24\x4b\x51\x31\xee\xc4\xb9\x53\x4d\xe4\x5f\x76\xa0\x47\xc8\x37\x51\xfc\x32\x8e\x16\x61\x30\xcb\x58\xd1\x7c\xa6\x67\x32\x82\xe0\x44\x76\x23\xd2\x3b\x32\x73\x96\x7e\xfa\xee\x21\x7a\x9f\xc4\x2b\x91\x64\x8f\x28\xc2\xb6\x9d\x34\x25\xa2\x80\xcb\x6e\x80\x98\x04\x53\x2e\xf4\x53\x34\xe5\xc9\x24\x9a\xe2\x1d\xdc\xf9\x9f\xc4\xb7\x62\xe1\xaf\xc3\xec\x52\xf5\x46\x6e\x12\xb5\x47\x22\x9e\x21\x0c\x01\x47\xf2\xc7\xc5\xe5\xda\xc6\x72\x46\xb2\x65\x12\x3f\xb4\x22\xf1\xd0\xba\x4c\x92\x38\x41\x96\x1f\xb5\xd6\x51\xba\x5e\xc9\x3a\xc4\xbc\xa5\x47\xd8\x7a\xf0\xd3\x96\x5e\xb0\x39\xb4\xc4\xe7\x95\x98\xc9\x8f\xff\xaa\x93\x50\x30\x87\xd6\x5c\xac\x52\x30\xd9\xf1\xbf\xb6\x82\x28\xcd\x84\x3f\x6f\xdd\xc6\x19\x6b\xfd\xab\xd5\x11\x1d\xeb\x5f\x5b\x7e\x72\xbb\xbe\x13\x51\x96\xb6\xb2\xd8\x54\xf7\xaf\x16\x56\xbb\xc4\xe7\x13\xcb\x2c\x84\x05\x96\x99\x50\x0b\x2c\x5d\xa1\x35\x2d\xbb\x9d\xca\x93\x0d\x09\x44\xb2\xf3\x41\xea\xac\xd7\xc1\x9c\x07\x9d\x0e\xa8\xb7\x60\xce\x85\x7e\x92\x1d\xe2\xed\x7c\x35\xe5\xa4\xea\xa7\xb1\xcf\x32\x9d\x43\xd7\xcd\x37\xa6\x35\xb6\xd9\xed\xf4\x87\x99\x1f\x86\x37\xfe\xec\x13\x4f\xf4\xfb\xd2\x4f\xf5\xa4\xa6\x2f\xd2\x6f\xc5\x8a\xb7\x89\x69\x2c\x7d\x11\x06\x7e\xca\x23\xfd\x9a\x88\x60\x11\x88\x39\x97\xb3\xf9\x22\x49\xfc\x47\x94\xb7\x8e\x75\x86\x34\xf3\x33\xc1\xad\x48\x3c\x58\xbb\x62\x3c\x21\xc2\x9b\xf2\x6d\xad\x17\xc5\x8c\xa4\x4c\x9f\xe9\x51\x97\x5b\x38\xe0\xd1\x44\x4c\xb7\xdb\x68\x22\x3a\xd6\xf3\x20\x9a\x8b\xcf\xd6\xf4\x2c\xb0\xed\x20\xef\xd6\x19\x96\x79\x02\x27\x98\xab\x6c\xf2\xa1\xcc\x99\xef\xe1\x60\xbb\xad\x43\xcc\x83\x0d\xf1\x32\x5e\x87\xf3\x56\x14\x67\xad\x45\x10\x15\x1b\x22\x5f\xd2\xe0\xce\x6c\x94\x45\x12\xdf\xc9\xd4\xac\x63\xc9\x35\x55\x95\x41\x62\xdb\xd6\x4a\x44\xf3\x20\xba\xb5\xda\x9c\x07\x7a\x06\x6c\xdb\x5a\x04\x91\x1f\x06\xbf\x8a\x79\x2d\x19\x05\x8e\x6c\xe3\x5b\xb1\x4a\x51\x82\x21\x71\x56\xeb\x74\x89\x02\x8c\x21\x28\x67\x62\xae\xfb\x19\x2c\x90\xe5\xc8\xd2\xc2\x99\x2d\xfd\xe4\x45\x86\x5c\x8c\x73\x80\x74\x52\xc0\x7d\x2e\x9c\x74\x15\x06\x19\xb2\x9e\x5b\xfa\x74\x97\xaf\x4e\x1a\x06\x33\x81\x5c\x38\x25\xf2\x80\xb8\x10\xf3\x7c\x93\x9c\x05\xe7\xf1\x59\xd0\xe9\xe8\x33\xeb\xf3\x64\x12\x4c\x4f\x54\x93\x8e\xc5\x39\xf7\x55\xfb\x2e\xe7\x3c\xca\x57\xf8\x70\xde\xfc\x48\x4e\x9a\x3f\x9b\x89\x34\x6d\xad\xfc\x44\x44\x59\x3e\x7b\xf1\xa2\x95\xc4\x71\x66\xe1\x93\xc8\x59\xc5\x2b\x84\x77\x22\x4c\x85\x19\x93\xaa\x7f\x16\x47\x59\x10\xad\x85\xcc\x20\x27\xc1\xc7\xbb\x9d\x19\x5d\xe4\xfc\x12\x07\x91\x1a\x41\x39\x2b\x4b\xb9\x6f\x74\x86\x36\x6a\xcb\xad\x61\xdb\xed\xda\xde\xc0\xbb\xd4\x59\x25\x71\x16\x67\x8f\x2b\xe1\x1c\xc0\x8b\x12\x4e\xe6\x10\xbf\x72\x46\x72\x08\x77\x22\xe1\x3e\xe7\x5c\x6c\xb7\x56\xac\x10\x82\xd5\xe6\xb2\xbe\x78\xd1\x52\xcb\x6a\xea\xa8\xa4\x6e\xb7\x1a\x33\xa8\x95\x9a\xeb\x16\xb7\xdb\xb6\x41\x27\x41\x7a\xf9\x39\x13\x51\x1a\xdc\x84\x02\x09\xbc\xdd\xa2\x22\x13\x17\x78\x07\xd5\x2e\x9b\x3e\x54\x3b\x2a\x27\xac\xdc\x4a\x9c\xf3\xf2\x98\x6d\xb7\x96\x3c\x8f\x8f\x72\xeb\xd5\x3e\xe4\x9b\xa4\x69\x78\x1a\x7e\x3b\x0f\x89\xbf\xd2\xd8\x23\xb5\x6d\x54\x07\x09\x87\x59\x90\x39\xae\x75\xd8\x81\x71\x09\x14\x1e\x91\x46\xd7\x66\x4e\xf3\x2c\x8e\xbf\x5a\x85\x8f\xaa\x78\x0d\x80\x14\x08\xa6\x9a\x68\xf6\x19\x77\x6b\xa0\xa4\x1c\x7c\x23\xa4\xb2\x6d\x3d\xf9\x7a\xc9\x50\xc3\x90\xb9\xc0\x06\x6b\x1d\x6e\x09\xdb\xd6\x05\xf6\xd3\x11\x86\x86\x9a\xea\x8b\xb5\x8e\x52\x21\xaa\x4b\xb5\x0f\x00\x8f\x82\xe0\x7a\x3d\x6a\xfa\xf6\x97\xdc\x4c\x89\x3c\xfd\x95\x75\xad\x35\x51\xac\xfd\x49\x96\x3c\x6e\x6a\xe0\x59\xbd\x5c\x9b\x75\x81\xfd\x42\xb2\xde\x9d\x9a\xd6\xf0\x71\x73\x64\x0b\xe5\x9b\xc2\x14\x13\xf2\xc0\x8b\xb9\x85\xf7\x3b\x7f\x7d\xd0\xfb\x1c\x2e\x99\x9d\x90\xaf\xad\x06\x44\x18\x32\xee\x9e\x65\xe7\x22\x07\x42\x59\x0e\x80\x12\x2e\x26\xd9\xf4\x44\xfe\xe3\x49\x3e\xe1\xe3\xe2\x89\xed\x53\x22\x08\xef\x0a\x02\xb7\xd6\xa3\x1c\xbc\xd6\xa8\x22\x39\xa5\x72\x49\xf8\xf1\xe9\xcc\x81\xf8\x49\x49\x41\x15\x48\x16\x12\xee\x9e\x25\xe7\x39\xae\x3b\x4b\xf2\x5e\x47\x8a\xd4\x86\xa0\x36\x56\x49\x81\x17\xcb\x6d\x88\x46\xdd\x79\xf3\xb6\x3b\x29\xd0\xbf\x84\xaf\x63\xd4\x8c\x82\x5d\x08\x8a\x3d\xdc\xb0\x1b\x31\x2b\xc8\x09\x55\xcb\x7e\x66\xff\x93\xf8\xa0\xbf\x23\xcc\x72\x2a\xa3\x31\xa7\xee\x5b\x90\x6f\xd5\x19\x9a\xa3\x28\xa7\x35\x70\xfe\x00\xe2\x60\xf1\x2b\x4d\x1c\x81\xad\x12\x64\xf0\x2a\x7d\x98\xd3\x95\xa6\x63\x73\x94\x81\xc0\x78\x57\x80\x83\x02\x34\x66\x90\x99\xfe\xbc\x56\xf4\x8e\x9c\x9e\xa6\x9a\x96\x45\x1d\x90\xed\x00\x69\x92\xab\xc6\x22\x49\x92\xa2\x24\x27\x4e\x02\xdb\x56\x5b\xa1\xc4\xca\xdb\x2d\x2a\xc8\x36\xb3\xc2\xe7\xd4\xb6\xe3\x83\x54\x0c\x8a\xe6\x91\xd4\x87\xa6\x7d\x24\x34\x4f\x64\x57\xf9\x64\x8a\x41\x56\xcf\x13\x45\x17\xfa\xd1\x4c\xa2\x86\xf5\x58\x62\xcb\x14\x25\x6a\x22\x20\x81\xb6\x8b\x99\x4e\xd2\x14\x5e\x9b\x60\xbc\xc3\x87\x70\x5f\xe1\x7f\x7d\x2c\x74\xa7\x17\xa8\x9d\x6c\xb7\xf9\x1e\x4e\x6a\x70\x1e\x25\x3c\xaf\x73\x32\x85\x10\x14\xe7\x82\xf7\xa1\x60\x06\x49\x03\x48\xd5\x7d\x86\x64\x67\x78\x16\xc7\x57\xe4\x5e\xbd\x23\x66\xaa\xa9\x44\xdb\x7b\x53\x32\x36\xf4\x71\x06\xb2\x0b\x92\xb4\xd3\x03\x94\x4f\xbb\x92\x9b\x71\x44\x94\x25\x81\x28\x18\x98\x5f\x52\xe7\x5a\xf8\x9f\xae\x53\x21\x22\x1e\x55\xf2\xc9\x55\x5e\x56\xde\xf7\x80\xac\xc0\x1b\xcd\xd1\xa8\x74\x6c\xc9\x09\xd4\x79\x50\xad\xb9\x59\x28\xfc\xa4\xba\x27\xbf\xb2\x27\x8a\x91\xc8\x64\x5d\x66\x5c\xd6\x22\x8e\x2d\x40\x95\x9a\x76\x18\x57\x3f\x3e\xbf\xf1\x13\x4b\xce\xfb\x53\x79\xfc\x74\xbe\xb0\x60\x92\x1f\xc2\x2a\xf5\x9f\x1f\xe1\x6a\x05\x66\xd3\x2a\x1e\xa9\x6c\x44\x72\x4d\x95\xb7\xc3\x7e\xfc\xaa\xfa\x51\x5d\x47\xdd\xfd\xbd\x8c\x7f\x5b\xff\x6a\x3d\x95\xab\x9a\x08\xa6\xc4\x67\xab\x69\xd0\x26\x8b\xa3\xab\xb4\x1c\xdd\x07\xcb\x31\xe3\x55\x09\x89\xfc\x75\x9e\xcb\x9c\x4f\xcf\xd1\x9d\x1f\x44\xa6\x4e\x55\xec\x58\xee\x02\x01\xa8\x9c\xc5\x44\x6e\x76\x38\x5f\xff\xfa\x97\xbd\x64\xd5\x4c\x91\x66\xf6\x4e\x39\xab\xfb\x7b\x08\x61\xc8\xc9\x40\x5e\x10\x7c\xba\x66\xdb\x3e\xf8\xa2\xd7\xd7\xb6\xeb\x47\xcf\xb6\xd1\xde\x59\xdc\xec\xb3\xfd\x35\x81\xc1\x0e\xef\xb0\x42\x09\x18\x0a\xe2\x57\x9e\x30\xc5\x10\x16\x29\x01\xf2\x21\x55\x98\xad\x9d\x4c\xfc\xa9\x7e\xca\xd4\x93\x92\x9b\xf0\x92\x54\x2d\xfa\x67\x9a\xb3\x6d\xf3\xa0\xe0\x4a\x6a\xdb\x61\x4e\x31\x86\xc8\x97\x30\x4a\xa6\xc7\x79\x5a\x6c\xd2\x64\xad\x6b\x7e\x48\xfe\x57\x79\xa6\x3f\x5b\x1d\xbf\x63\xfd\xd9\xc2\x27\x9a\x59\x58\x3b\xb3\x78\x2e\xb8\xf5\xe6\xdd\xb7\x3f\x7c\x7f\x79\xfd\xf6\xdd\xd5\xf5\xab\x77\x3f\xbc\xfd\xd6\x82\xb5\xe2\x89\x67\x5c\xf6\xbd\x46\x1c\x9d\xc8\x31\x4c\xdc\xa9\xa2\x21\xd1\x2c\x9f\x33\xa8\x89\x72\x72\xd6\x0e\xa9\xcc\x64\xaa\xf8\x44\x81\x77\x18\x66\x50\x16\xc9\xb9\xe8\x9c\x52\x90\x6d\x15\xb4\x5c\x8e\xe6\xe3\xaf\x99\x28\xf0\xb9\x7b\xe6\x9f\xe7\xac\xd0\x99\xdf\xe9\xe0\x00\x45\x72\xb6\x0b\x36\x73\x87\x36\x84\x4d\xea\x90\x53\x20\x3a\xf0\x30\x08\x44\x09\xd5\x3f\x3d\xfd\xd3\xd5\x3f\xe6\xdb\x50\xfd\x50\x93\x38\xd0\x3f\x7d\x9d\x68\x7e\x74\x39\xea\xea\x1f\xa2\xb3\x8c\xf4\x8f\x7e\xa3\xba\x05\xaa\xeb\xa4\xaa\x16\x32\x50\x55\x93\xa1\xab\xdf\x74\x01\x6a\x7e\xf4\xb7\x91\x7e\x73\x4d\x65\xba\x05\xd7\xfc\xe8\xaa\x5d\x5d\xb5\xdb\xc5\x27\xf2\x47\xf7\xc5\xd5\x3d\x73\x75\x7b\xae\xee\xb5\x6b\xda\xa3\xfa\xa7\xab\x7f\x7a\xfa\xa7\xaf\x7f\x3c\xfd\xa3\x3b\x38\x34\x05\x46\xba\x2f\xba\x9f\x23\xa2\x7f\x74\x2d\x23\x5d\xcb\x48\xd7\x32\xd2\xb5\x8c\x74\x2d\x23\x5d\xcb\x48\xcf\xa0\xa7\x67\xd0\xd3\x6f\x03\xdd\x41\x4f\x77\xb0\xaf\x13\xfb\x7a\x98\x9e\x1e\x83\x37\x52\x23\x1a\xe8\x61\xf6\x75\x62\x5f\x97\xeb\x9b\x72\x7a\x60\x9e\x9e\x10\x4f\xe7\xf4\xf4\x84\x78\xa6\x05\x9d\x65\xa0\xb3\x0c\xf4\xb7\x81\xee\xcb\x40\xf7\x5a\xbf\x11\xdd\x25\x92\x27\x9a\x35\xd2\x43\xd1\x55\x13\xdd\x41\xe2\x99\x44\x5d\xce\xd3\x89\x03\x93\x45\xcf\x99\x6e\x9d\xf4\x4d\x9d\x7a\xea\xfa\x6a\x8d\x88\x67\xb2\xe8\x16\x74\xe7\x89\x1e\x34\xe9\xeb\x69\xed\x9b\x37\x9d\x45\x8f\x96\xe8\xce\x13\x33\xbe\x9e\x1e\x5f\xcf\xcc\x84\x49\xd4\xa3\xed\xe9\xf9\xec\xe9\xf9\xec\xeb\xb1\xf7\xf5\xf4\x74\x75\x7b\x43\x33\xad\x7a\x26\xf4\x4a\x53\xbd\xd2\x74\x60\xe6\xcc\x24\x9a\x2c\xba\x21\xbd\x35\xa8\x29\x3e\xec\xa9\x35\xd2\x5b\x8a\xea\x4d\x44\xcd\x4e\xd6\xfb\x9a\x76\x4d\xb3\x3a\x4b\x57\x57\xd6\xd5\xab\xd9\xd5\x05\xba\xba\xa1\xae\x6e\xa1\xab\x5b\xe8\xea\x5a\x7a\xba\x96\x9e\xae\xa5\x67\x86\xa9\x8b\xf7\xba\x18\xb2\x92\x95\x44\x7d\x17\xef\x60\x43\xfa\x94\x91\x3e\x05\xd2\xef\x32\xd2\xef\x02\xe9\xf7\x18\xe9\xf7\x80\xf4\xfb\x8c\xf4\xfb\x40\xfa\x1e\x23\x7d\x0f\x48\x7f\xc0\x48\x7f\x00\xa4\x3f\x64\xa4\x3f\x04\xd2\x1f\x31\xd2\x1f\x01\xf1\x5c\x46\x3c\x17\x88\x47\x18\xf1\x08\x10\x8f\x32\xe2\x51\x20\x5e\x97\x11\xaf\x0b\xc4\xeb\x31\xe2\xf5\x80\x78\x7d\x46\xbc\x3e\x10\xcf\x63\xc4\xf3\x80\x78\x03\x46\xbc\x01\x10\x6f\xc8\x88\x37\x04\xe2\x8d\x18\xf1\x46\x40\x06\x2e\x23\x03\x17\xc8\x80\x30\x32\x20\x40\x06\x94\x91\x01\x05\x32\xe8\x32\x32\xe8\x02\x19\xf4\x18\x19\xf4\x80\x0c\xfa\x8c\x0c\xfa\x40\x06\x1e\x23\x03\x0f\xc8\x60\xc0\xc8\x60\x00\x64\x30\x64\x64\x30\x04\x32\x18\x31\x32\x18\x01\x19\xba\x8c\x0c\x5d\x20\x43\xc2\xc8\x90\x00\x19\x52\x46\x86\x14\xc8\xb0\xcb\xc8\xb0\x0b\x64\xd8\x63\x64\xd8\x03\x32\xec\x33\x32\xec\x03\x19\x7a\x8c\x0c\x3d\x20\xc3\x01\x23\xc3\x01\x90\xe1\x90\x91\xe1\x10\xc8\x70\xc4\xc8\x70\x04\x64\xe4\x32\x32\x72\x81\x8c\x08\x23\x23\x02\x64\x44\x19\x19\x51\x20\xa3\x2e\x23\xa3\x2e\x90\x51\x8f\x91\x51\x0f\xc8\xa8\xcf\xc8\xa8\x0f\x64\xe4\x31\x32\xf2\x80\x8c\x06\x8c\x8c\x06\x40\x46\x43\x46\x46\x43\x20\xa3\x11\x23\xa3\x11\x50\xd7\x65\xd4\x75\x81\xba\x84\x51\x97\x00\x75\x29\xa3\x2e\x05\xea\x76\x19\x75\xbb\x40\xdd\x1e\xa3\x6e\x0f\xa8\xdb\x67\xd4\xed\x03\x75\x3d\x46\x5d\x0f\xa8\x3b\x60\xd4\x1d\x00\x75\x87\x8c\xba\x43\xa0\xee\x88\x51\x77\x04\x94\xb8\x8c\x12\x17\x28\x21\x8c\x12\x02\x94\x50\x46\x09\x05\x4a\xba\x8c\x92\x2e\x50\xd2\x63\x94\xf4\x80\x92\x3e\xa3\xa4\x0f\x94\x78\x8c\x12\x0f\x28\x19\x30\x4a\x06\x40\xc9\x90\x51\x32\x04\x4a\x46\x8c\x92\x11\x50\xea\x32\x4a\x5d\xa0\x94\x30\x4a\x09\x50\x4a\x19\xa5\x14\x28\xed\x32\x4a\xbb\x40\x69\x8f\x51\xda\x03\x4a\xfb\x8c\xd2\x3e\x50\xea\x31\x4a\x3d\xa0\x74\xc0\x28\x1d\x00\xa5\x43\x46\xe9\x10\x28\x1d\x31\x4a\x47\x40\xbb\x2e\xa3\x5d\x17\x68\x97\x30\xda\x25\x40\xbb\x94\xd1\x2e\x05\xda\xed\x32\xda\xed\x02\xed\xf6\x18\xed\xf6\x80\x76\xfb\x8c\x76\xfb\x40\xbb\x1e\xa3\x5d\x0f\x68\x77\xc0\x68\x77\x00\xb4\x3b\x64\xb4\x3b\x04\xda\x1d\x31\xda\x1d\x01\xed\xb9\x8c\xf6\x5c\xa0\x3d\xc2\x68\x8f\x00\xed\x51\x46\x7b\x14\x68\xaf\xcb\x68\xaf\x0b\xb4\xd7\x63\xb4\xd7\x03\xda\xeb\x33\xda\xeb\x03\xed\x79\x8c\xf6\x3c\xa0\xbd\x01\xa3\xbd\x01\xd0\xde\x90\xd1\xde\x10\x68\x6f\xc4\x68\x6f\x04\xb4\xef\x32\xda\x77\x81\xf6\x09\xa3\x7d\x02\xb4\x4f\x19\xed\x53\xa0\xfd\x2e\xa3\xfd\x2e\xd0\x7e\x8f\xd1\x7e\x0f\x68\xbf\xcf\x68\xbf\x0f\xb4\xef\x31\xda\xf7\x80\xf6\x07\x8c\xf6\x07\x40\xfb\x43\x46\xfb\x43\xa0\xfd\x11\xa3\xfd\x11\x50\xcf\x65\xd4\x73\x81\x7a\x84\x51\x8f\x00\xf5\x28\xa3\x1e\x05\xea\x75\x19\xf5\xba\x40\xbd\x1e\xa3\x5e\x0f\xa8\xd7\x67\xd4\xeb\x03\xf5\x3c\x46\x3d\x0f\xa8\x37\x60\xd4\x1b\x00\xf5\x86\x8c\x7a\x43\xa0\xde\x88\x51\x6f\x04\x74\xe0\x32\x3a\x70\x81\x0e\x08\xa3\x03\x02\x74\x40\x19\x1d\x50\xa0\x83\x2e\xa3\x83\x2e\xd0\x41\x8f\xd1\x41\x0f\xe8\xa0\xcf\xe8\xa0\x0f\x74\xe0\x31\x3a\xf0\x80\x0e\x06\x8c\x0e\x06\x40\x07\x43\x46\x07\x43\xa0\x83\x11\xa3\x83\x11\xd0\xa1\xcb\xe8\xd0\x05\x3a\x24\x8c\x0e\x09\xd0\x21\x65\x74\x48\x81\x0e\xbb\x8c\x0e\xbb\x40\x87\x3d\x46\x87\x3d\xa0\xc3\x3e\xa3\xc3\x3e\xd0\xa1\xc7\xe8\xd0\x03\x3a\x1c\x30\x3a\x1c\x00\x1d\x0e\x19\x1d\x0e\x81\x0e\x47\x8c\x0e\x47\xd0\x77\x59\xdf\xdd\x4d\x81\x36\x10\x10\x12\x27\xee\x41\x20\x47\xf3\xa1\x8b\xd0\xcf\xde\xf8\xab\x1d\x6c\xe8\xc8\x65\x74\xe4\x16\xf5\x74\x9b\xea\x21\xc7\xea\x09\xa2\x59\xb8\x9e\x8b\x54\x55\x44\x18\x1d\x91\xa2\xa2\x5e\x53\x45\xf4\xb0\x22\x23\xec\x34\xcc\x95\xaa\x88\x32\x3a\xa2\x45\x45\xfd\xa6\x8a\x0e\x61\x6b\x5e\xd1\xad\xc8\x2a\xb7\x43\xdf\x8a\x74\x96\x04\xab\x2c\x4e\x74\xd5\x5d\x46\x47\xdd\xa2\x6a\xaf\xa9\xea\xde\xd1\xaa\xef\xfd\x70\x6d\xba\xd8\x63\x74\xd4\x2b\xea\x19\xec\xd7\x53\xbb\x30\x2c\xd0\x1a\x95\x14\xc8\x7e\xdd\xef\x93\xf8\x2e\x48\x95\xf4\xc9\x0f\xc3\x47\x59\x7b\x7e\x64\x47\x7d\x46\x47\xfd\xa2\x95\x61\x53\x6f\xbd\xc3\x1a\x3f\x66\x49\x10\xdd\x3a\x2b\x7f\x7e\x19\xcd\x55\x6f\x3d\x46\x47\x5e\x51\xcf\xa8\xa9\x9e\xc1\x53\xf5\x7c\xcc\xfc\x24\x53\x35\x0d\x18\x1d\x0d\x8a\x9a\x88\xdb\x54\xd5\xe8\x68\x55\x59\x12\xdc\x7d\x08\x6e\x97\xba\xae\x11\xa3\xa3\x72\x03\x93\x26\x12\x58\x52\x67\x4f\xd4\xf5\xbd\x58\xe8\xaa\x86\x8c\x8e\x86\x65\x55\x0d\x87\xa1\xeb\xee\x1d\x06\xd2\x1b\x61\x67\x81\x2c\x3f\x7d\x8c\x66\xaf\x33\x91\xf8\x59\x2c\x99\x63\xd8\x90\xde\x88\x91\xde\x08\xba\xae\xcb\xba\xae\xaa\xb0\xe1\x54\x74\xf7\xeb\xf3\xb0\x73\x1b\xc6\x37\x7e\x28\xab\x90\x48\x17\xba\xb2\xbc\x2c\x7e\x70\x16\xb2\x06\xc1\x8d\x91\xd8\x1f\xde\x12\x98\xeb\x93\xab\xc7\x95\xd0\xfc\x93\xe8\x58\xad\x20\x55\xd7\x4e\x7e\x2b\x2f\xd0\xb6\xca\x3b\xe7\xdd\x0e\x36\xb2\xdd\x83\xa3\x63\xe4\xa5\x88\x7a\xf8\xe4\x68\x1f\xda\x09\x12\xf8\xc9\x46\xa3\x96\xe6\x5f\xf7\xdb\x94\xb8\xc8\x93\x0d\x1f\x1c\x2c\xdd\x70\xd9\xe4\xe6\x5e\x24\x69\x10\x47\xcc\xa2\x8e\xe7\x10\x62\xed\x4e\xac\x68\x7d\x77\x23\x92\x92\x95\xba\xbe\x16\xb6\x8d\xae\xaf\x05\x4f\xb0\x19\xd0\xc1\x41\xcb\x07\x44\x7a\xcd\x03\x82\x4c\xb2\xbe\xc1\x02\xc9\x31\x41\x21\xf0\xcf\xca\xdb\xb0\xf4\x21\xc8\x66\x4b\x14\xe1\xcd\xcc\x4f\x45\x8b\x30\xf3\xa5\xa8\x23\x29\x98\x46\xa1\x39\xcb\x0c\x12\xbc\x3b\x51\xb9\xe9\x61\x6e\xd9\xde\x41\x7e\xc9\x4a\xea\x12\xdd\xa6\x12\x10\x34\x96\x81\xa0\xbc\xd8\xaa\x49\xa4\x4c\x4e\x73\x45\x02\x85\x68\x4d\xc9\x59\x37\xa4\xc7\x48\x4f\xce\xd6\x01\xc0\x28\x67\xa8\x2d\x19\x36\x8c\xd0\x61\xb5\x83\x76\xae\xce\xa0\x65\x0a\xc5\x3d\xfb\x66\x07\x96\x6f\xc1\xe6\x56\x54\x2e\xee\xcb\x62\xbb\x1d\x76\xfc\x1d\x96\x2b\x25\x49\x17\x22\x3b\x70\x00\x69\x2a\xfb\x0f\x22\xf9\x4b\xb1\x33\x8f\x67\xaa\xf7\x10\xf0\x44\xdf\xf0\xa3\xc8\xa8\x52\x5c\x86\x42\x7e\x39\xb6\x57\x73\xfe\x79\xbc\x97\x1f\x09\xac\x2f\x4b\x36\x8a\x78\x82\x7c\x5b\xd2\x03\x70\x55\xf4\x87\xea\xfe\x48\xb6\x3a\x90\xbf\x03\x0c\xb1\x4c\xef\x61\xf0\xe5\x6f\x17\xc3\xde\xb6\x0a\x75\xe9\x35\xcc\x60\x0e\x4b\x2e\xec\xd4\x79\x05\x0b\xf5\xfb\x1d\xac\xd4\xef\x47\xb8\x53\xbf\xef\xe1\x5e\xfd\x7e\x03\xb7\xea\xf7\x27\xb8\xe1\x8b\x71\xc4\xa2\x49\x36\xdd\x6e\x91\xfc\xe1\x9b\x1d\x86\x47\x7e\x53\xca\xc8\xe1\x9a\x2f\xc6\x09\x5b\x8d\x93\x49\x36\x65\x28\x51\x79\x37\x3b\x5c\xe6\x50\xf7\x0d\xeb\x56\x10\xb5\x16\xb6\x8d\x42\x9e\x61\x08\x31\x9a\xf1\xf6\xd2\xb6\xaf\xf3\xdb\xad\x36\xe7\xd7\x93\xf5\x14\xdb\xb6\x8f\x6e\x60\x8d\xb7\x5b\x34\xe7\xb3\xb1\x4c\x63\xe1\x64\x3d\x85\x9b\xc9\x7a\xca\x17\x8d\xf7\x93\x32\xd3\x58\x66\x62\xf7\xb6\x3d\x1b\x07\x68\x0e\x09\x66\xb7\xb6\x2d\x3f\x70\x3e\x1f\x57\x17\x43\x5f\x7c\x94\x72\x76\x2d\x74\x0a\x16\x4a\x1e\x55\x15\x6d\x0b\xbc\x31\x67\xee\x40\x4a\xae\x8f\xa0\x9b\x1f\x91\x48\x3c\xb4\xc4\x49\xfd\x58\xaa\x34\x94\xe1\xbd\xf3\x67\x92\xe5\xc9\xdc\x4f\xa9\x88\x71\x44\xf5\x56\xb1\x72\x6a\xca\x4b\x84\x62\x72\xb9\xa8\x2c\x45\xb6\x43\x73\xcc\xee\xaa\x93\x54\x40\xa9\xf9\x38\x40\xaf\x4c\xaa\x3a\xbb\x30\xc7\x6c\x0e\x77\xb6\x8d\xd0\x8d\x73\x1f\x24\xd9\xda\x0f\xb7\xdb\xf2\x59\x2e\x35\x96\x13\x38\x07\xb9\x19\x3e\xd8\xf6\xa3\x6d\xb7\x1f\x27\xeb\xa9\x6d\xc7\xe8\x11\xd6\x30\xc7\x18\xef\x4e\x52\xe7\x15\x27\x90\x3a\xdf\x71\x0a\xa9\xf3\x91\xf7\x20\x75\xde\xf3\x21\xa4\xce\x37\x9c\x78\x90\x3a\x3f\xf1\xae\xfc\xf2\x03\xf7\xe4\xa7\x0f\x9c\xd0\x61\x05\x23\xa5\x05\x1a\x22\x92\x53\x03\x73\x14\x24\xd5\x0f\x92\x87\x90\x10\x82\x1e\xe0\xdc\xe6\x83\x96\x25\x8f\xf9\xfd\x79\x5b\x20\xbc\x9b\xf9\x72\xf9\x0a\xf9\x7e\xdb\xdd\x19\x8c\x43\x0f\x30\xef\x3e\xe0\xb7\xd6\x91\xd1\x95\x29\xf7\x99\xd6\x32\xb3\x6d\xa3\x6d\xf6\xc6\xcf\x96\x9c\xcb\xff\x63\x9d\xc2\x9a\x0a\xa5\x22\x5c\xd8\xb6\xfc\x5f\x2d\x20\xdf\x59\xbe\x1c\xc8\xaa\xdc\x15\x5b\x18\xe1\x26\x1c\x73\xab\x70\xcc\x6d\x81\x63\xe8\x01\xae\x37\x8a\x5a\xbb\x3d\xc5\xa3\x23\xf8\xa6\xbc\xa9\xd2\x90\x5c\x26\xe5\xb3\x73\x40\x07\x14\xf0\x67\x60\xe0\xe1\xb0\x0a\xeb\x04\x22\x43\x3c\xae\x41\x9d\xa0\x52\xfd\x42\xa3\x37\x44\x20\xc0\x78\xc7\x0e\x2e\x01\xcc\x9e\x57\xf7\xa2\xa0\xf0\x33\x91\xbc\x35\x48\x4e\x51\x32\x12\x8c\x0e\x65\xa7\x0e\x88\x84\x1a\x96\x20\x43\x6c\xdb\x7f\x00\x5b\x08\x44\x46\x18\x59\xf3\xe0\xde\xc2\x5f\x8b\x37\x74\xf7\x88\x64\xd4\x21\xc7\x21\xf4\x80\x94\x78\x0a\x17\x1c\x4a\xdc\xc7\xd1\x3a\x0c\xdb\x9c\x0b\xd6\x70\x76\x73\x42\x89\xee\xd1\x15\xf9\xc5\x9f\x42\x09\x7d\x8d\x12\x68\xdf\xa0\x84\x91\x44\x09\x8d\x83\x3e\x49\x9c\x85\x59\xb4\xc6\xef\x07\x4b\x14\x2c\x90\xec\x3c\x64\x3c\x46\x19\xb4\x5d\x0c\x92\xdc\x80\x00\x97\x07\xae\xe5\x9b\xcc\xe6\xd0\xa5\x78\xb3\x93\x74\xe2\xad\xc8\xac\x20\x6a\x25\xdb\xad\x95\x9a\xc7\x03\x92\xcd\x7a\xa1\xf4\x6b\xe2\x44\x93\x6d\x85\xe2\x5a\x49\xb6\x59\x8a\xa5\x51\xa5\x6d\x1b\x99\x2b\x74\x95\x86\xcd\x8e\xe9\x33\xd2\x07\xb3\x6f\x24\x07\x0e\x54\x92\xed\x72\xce\x9e\xa0\x2e\x9a\xce\xc3\x46\x44\xeb\x3b\x91\xf8\x37\xa1\x60\x6d\x44\x6c\x81\x61\x16\x47\x8b\xe0\x76\x9d\xa7\x51\x99\xf6\x90\x04\x99\x79\xef\xc9\x77\xd5\x19\x96\x15\x00\xe6\x29\x92\xe2\xe8\x89\x2c\x88\xda\x82\xea\xcb\xb5\x0d\x25\x7e\x6a\x02\xeb\x28\xe2\xc2\xc9\x62\xcd\x6b\xc8\x13\x90\xa0\x80\x47\xe6\x44\xe3\xa2\x22\x55\xc1\x91\xd2\xaa\xe7\xef\x16\x5f\x28\xdc\xfe\x7f\xd7\xfc\xc1\x92\xbf\xf4\xa3\x3f\x67\xad\x59\x1c\xdd\x8b\x24\x33\x64\x7a\x2b\x8b\x5b\xab\x24\xb8\x0b\xb2\xe0\x5e\xb4\xf4\x92\xe3\x2a\xbd\xde\xad\x11\x46\x39\x2e\x17\x88\xba\xf8\x24\x43\x99\xf3\x1d\x6c\x34\x6b\xc3\x14\xa9\xb4\x53\x44\x9e\xcb\x94\x98\x8a\x51\x2a\x6b\x20\x87\x27\xa8\x40\xb0\x93\xde\x74\x42\x7a\xea\x6a\x46\xe3\xdf\xa4\x8a\x7c\x4b\x82\xb5\x7b\x04\x7b\x08\xd4\x7b\x7a\x71\x73\xb0\x5e\xd3\xb7\x7a\x9b\xa7\x35\xb2\x33\x59\x7e\x04\x3a\x6a\x9f\xf7\x3c\xd6\x53\x33\x71\x04\xfa\x4b\x38\xe0\x62\x64\xad\xa3\x74\x16\xaf\xe4\x06\x4d\x95\xca\x9c\x16\x83\x94\x24\x99\xd6\x01\x8b\x26\xc9\xd4\xb6\x05\x1a\xb8\x18\x45\x90\xa8\x2b\xc6\x66\xb0\x25\x73\x4e\xc4\x94\x4b\x14\x2a\x4f\x9b\xcb\x48\xdf\x85\x81\xcb\x06\x4a\x18\x73\x80\x30\x6a\x82\x85\xa2\x6b\x74\x80\x51\xdb\x7d\x8a\x03\xca\x11\x61\x07\x45\xe3\x44\x55\x65\x68\x2e\x46\xd4\x4e\x20\x74\xc0\x08\x1d\xc8\x36\x9f\xc0\x07\xf5\x15\x36\xf4\x5d\x1b\x89\x2a\x79\x97\xe1\x8a\x56\x5b\x64\xdb\x4a\x97\xf7\x90\x87\x4d\x3a\x16\x6b\x05\xd1\x2c\x4e\x12\xb9\x43\x83\xe8\x3e\x9e\xf9\x47\xf8\xd8\xae\xf7\xa5\xcd\xd5\x7f\x62\x73\x29\x08\x36\x18\xb1\x81\x84\x5a\xdd\xa7\x45\x35\x25\x3b\xe9\x1a\x86\xa0\x6b\xc0\x3f\xe9\x8e\xaa\xf3\x3b\x99\x3a\xb3\x78\xf5\xf8\x53\x90\x2d\x83\x68\x5f\x4d\x54\x5f\x0e\x26\xe6\x26\xd6\xe7\x01\x8a\x0b\x3d\x90\x94\xcb\x4c\x3e\x86\x90\x4b\x22\xd9\xc7\xb0\x3e\x50\x8d\xb8\xa0\xe3\x72\x78\x74\x9a\x6b\x02\xcd\x14\x89\xe3\xdc\x05\x11\x42\x05\x27\xbb\x1e\xfb\x2c\x42\x6b\xf0\x31\x3e\x0d\xc1\x3f\x4d\x31\xcc\x39\x51\xac\x41\x78\x9e\xda\x76\x7a\x1e\x76\x66\xb6\x8d\xe6\xfc\x94\x40\xd8\xe1\xb3\x53\x02\xa9\xfa\xc1\x67\xb3\xd3\xd3\xd6\x85\x7b\x86\x43\xb9\x44\xf1\x38\x9e\xa4\x53\x1e\x4f\xc2\x29\x33\x8a\xea\x32\x41\x66\x9e\xcb\x82\xf3\x7c\x55\x62\xb5\x5f\xba\x7d\x46\xba\x7d\x20\xdd\x11\x23\xdd\x11\x90\x9e\xcb\x48\x4f\xed\xd9\x03\xbc\xf0\xc7\x66\xb8\x59\x35\x3d\x9f\xd4\x98\x07\x15\x05\x62\xff\x60\x0a\xd5\x3c\xfb\x17\xa4\x32\x91\xa4\x98\xc8\x58\xce\xbe\x7f\x64\x96\xd7\xbc\x98\xdb\x70\x1c\xb3\x08\x85\x10\xe3\xb3\xf5\x45\x7a\x86\xb3\x49\xda\xe9\x4c\xb9\x28\xd8\x85\x2f\xcc\xc4\x51\x5c\x45\xba\xc3\x7c\xf0\xa3\x7c\xf0\xfd\x2f\x70\xb9\x15\xce\x2a\x06\x5f\xd7\x95\x42\x28\x67\x44\xee\xa1\x08\x85\xc5\x74\xcc\x78\x80\x7c\x58\xab\xcb\x78\x61\xdb\x71\x9b\xc7\x7a\x0e\xcf\xd6\x17\xb3\x33\x1c\x2c\x10\x4a\x79\x38\x99\x75\x3a\x53\xdc\xe6\x29\x2e\xa8\x78\x11\xa6\xa2\x55\x64\x9c\x75\x3a\x2a\xaf\xd8\x6e\x67\x72\x87\x84\xd8\xb6\xc3\xc9\x6c\xca\x39\x2f\xae\xf8\xe5\xb7\xed\xd6\x35\x33\xd2\x16\xb6\x7d\x4a\x76\xf5\x69\x19\x32\xd2\x1d\xe6\xd3\xb3\x9b\x42\xef\x28\x17\xde\x37\x5c\xf8\x20\xdf\x11\x72\x8f\xc4\xf9\x34\x49\x3e\xbc\xd7\x3d\x8e\x07\xd4\x84\x70\xc2\xb9\x80\x90\x53\xf9\xb3\xe6\x5d\xf9\x33\xe3\x3d\xf9\x33\xe7\x9e\xfc\x59\xf2\xbe\x52\xf8\x9c\xc3\x82\x67\xdb\xad\x7f\x72\x38\xbf\x3e\xac\xca\x3d\x77\x07\xf7\x70\x2b\x77\x1b\x86\x1b\x1e\xa1\x5b\xc9\xa6\x27\xc8\x87\x15\x74\x31\x5c\xf3\x18\xdd\x14\xf3\xfe\xc0\x5d\xb8\xe4\xe9\x78\x81\x32\xb8\xc6\x2c\x54\x0f\x2e\x36\x3b\xeb\xec\xfa\xe2\xe1\xec\xc1\xcc\xe9\x72\xbb\x7d\x90\x73\x7a\x83\x6d\x1b\xdd\xf3\x47\x74\xc7\x6f\x26\x0f\x53\x78\x80\x5b\x0c\x02\xcb\x3c\x29\xbe\x9c\x3c\x4c\xf9\xfd\x89\x5a\x95\x60\x81\xee\xb1\xe1\x9b\x85\x61\x94\x73\x59\x52\xdb\xd5\xdc\x70\x3f\xe7\x86\xef\xf4\xbb\x97\xbf\x3f\xe4\xdc\xf2\xa5\x56\x98\xbe\xd3\x3a\xd5\xb2\xd2\x59\xbe\xfa\x24\x9f\x88\xf9\xf8\x94\xb0\xf5\x76\x3b\x1b\xcf\xd8\xa5\x59\xcb\xda\xd6\x86\x5e\x97\xf5\xba\xd0\xa7\xac\x4f\x61\xd0\x67\x83\xbe\x5c\xd5\x03\x56\x32\x5f\xd5\x2e\x31\x7b\x5d\xae\x66\x60\x96\x37\x7e\xea\xc0\x83\x5c\x82\x14\x42\xbc\x51\x78\xda\xa8\x8f\x48\x42\x59\xee\xec\xb5\x84\x70\x31\x5a\x17\xd3\xbe\xe4\xe1\x78\x7e\x4a\x98\x0b\x0b\x1e\xca\xce\x13\xb9\xf1\xfd\x73\x8a\xd5\x56\x3e\x53\x58\x6a\x29\x67\x7b\x86\x37\x29\x9f\x4d\x96\x53\x58\x76\xf8\xe2\xe4\x26\x11\xfe\x27\x49\x4d\xcb\x37\x08\xc7\xcb\x73\x97\xcd\xcf\xf9\xf2\x90\x90\xfe\x20\xe6\xeb\x99\x52\x4d\x17\x77\xab\xec\xb1\xe5\x4b\xb4\xdf\x7a\x08\xb2\x65\x2b\x8a\x5b\x41\x14\x64\x81\x1f\x16\x94\x95\x6a\x36\x1c\x2f\x2f\xb8\xcb\xe6\x17\xcb\x33\x59\x3d\xd6\x1d\xb0\x6d\x94\xf2\x0c\xa5\xa0\x7b\x01\x6b\x5c\x60\xbb\xb4\x69\xaa\xbb\x84\x75\x49\x39\xc9\x47\x09\xa4\xc1\xc8\x1c\x9d\x81\x39\x3a\x8a\x5a\x49\x57\x62\x16\x48\x4a\xe5\x08\x68\x51\x30\x35\x6f\x5f\xa6\xd8\x76\x83\x04\x1a\x65\x5c\x38\xb3\x38\x4a\xb3\x64\x3d\xcb\xe2\x04\x6f\xb7\x59\x9b\x6b\xd2\xc7\xb6\xdb\x11\xaa\x88\x4d\xf0\x76\x8b\x32\x03\x41\x31\xc8\xe5\xb3\x6d\xa3\x17\x8f\x32\x9e\x4d\x82\xa9\x6c\xa3\xc8\x51\x15\xc9\x8e\x55\x85\x2c\xab\x11\x42\x03\x36\x18\x14\xc8\xbb\x77\x94\x38\xeb\xd1\xe3\x70\xa1\x94\x07\x29\x21\x30\x46\x9a\x1f\xef\x51\xd6\x93\x94\x6b\xef\xeb\x68\xac\x7c\x17\x0f\x0c\xc0\x1e\xf4\xe4\x26\x9e\x4c\xb5\x7a\x32\xf8\x7c\xb3\xdb\x97\x10\x26\x86\x3c\x92\xd4\x4d\xcb\xc7\x25\x48\x89\xf8\x64\x0a\x01\x77\xcf\x82\xf3\x4c\x19\x52\x44\x93\x60\xca\x2d\x7f\x62\x75\x82\x8e\x35\xb5\x4e\x7c\xc9\x88\x95\x52\x8c\x57\xe0\x2b\x7d\xbf\x42\xae\xf5\x0a\x59\x9d\xdc\xd2\x01\x2c\xdc\xb1\xb0\x55\xc8\xb8\x64\x59\x24\x94\x88\xba\x9c\x91\x42\x40\x75\x13\x44\xf3\x2a\xb9\x92\xd3\xfa\x25\xb1\x12\x6b\x2e\xa3\x40\x8d\x40\x24\xb6\xdc\x53\xd2\x4d\xb8\x2f\x77\xc4\xcc\xcf\xd0\x7e\x7e\x5c\xd3\xd0\xaf\x52\x86\xe1\x38\x45\x19\xe4\x56\x24\x90\x60\x16\x28\xf9\x9c\x28\x05\x70\xf5\xbd\x64\xdb\x28\xac\x48\xe4\xaa\x9f\x20\x94\x6b\x68\x4e\x47\x8f\x0d\x7a\xe5\x26\x39\x7a\xe9\xd1\x33\x42\x67\x7d\x36\x72\xee\xea\xca\xbf\xb5\xe4\x92\x5a\x2f\xf2\x11\x58\x9c\x27\x0d\xa2\x8e\x62\x84\x3b\x84\x9f\x3c\x50\x12\x3f\xe7\x03\x2a\x4d\x0c\xc6\xd6\x0f\x85\x10\x8b\xe5\xa6\x22\x63\xeb\xed\x3a\x0c\x2d\x66\xa5\xaa\x2f\x25\xff\x17\xef\x6d\xe2\x8a\x40\x40\x72\xe9\x46\x18\x90\xe0\xcd\x6e\x87\x32\x23\x8d\x90\x00\x32\xc2\x78\x1c\xb3\x60\x2c\x4f\x1e\xb3\xde\xe5\xd2\x10\xe4\x2b\x3a\x01\x37\x4a\x30\x33\xb5\x82\x42\x8c\x2b\x53\xc0\xfc\xea\x31\xcc\xb9\xa3\xde\x91\x7b\x9d\xcd\xae\x60\x56\x9f\x26\x62\x72\x99\x58\x6e\x5e\x34\x84\x53\x92\x4b\xc7\x7a\x5f\x47\x9a\x8f\x06\xd8\x59\xa8\x75\x1c\xe5\xc2\x7a\x62\x10\x8a\xa4\x1f\x24\x95\x20\x29\xca\x94\x0b\xe4\x79\x72\xeb\x0a\x34\xec\x4a\x0a\x49\xa0\x61\x5f\x62\x10\xc9\x2f\x11\x89\x43\x04\xea\x7b\x12\x7b\x08\x34\xa2\xd8\x59\xf8\x69\xf6\x17\xf1\x08\x4a\x82\xd3\x1b\x60\x58\xf1\xf9\xd8\xba\x4e\xe5\xe2\x04\xbf\x0a\x0b\xee\x9a\x94\xac\x21\xe2\x4b\x89\xa3\x24\x13\xfa\xca\x92\x1c\x0f\x2e\x0d\x3f\x83\x49\x34\x55\x94\x78\xc2\x85\x73\xbd\x38\x4b\xce\x12\x9e\x38\x91\x44\xee\x89\xf3\xa9\x72\x0b\x95\x54\xcf\xea\xe6\x56\x64\x2f\x4b\x68\x5b\x17\x1a\x85\xb0\xd6\x2d\xcb\x71\x54\xf5\x7e\x25\x4b\x84\x04\xcc\x20\x03\xeb\x3a\xb0\x30\x08\xe7\x3a\xe3\x99\xfc\x09\x78\xa4\x6d\x52\xe5\xcb\x22\x37\x46\x15\xce\x75\x58\x3c\x4f\x56\x53\xee\x82\x16\x95\x25\xb6\x9d\xa2\x04\x42\x10\x93\xf5\x54\x1e\xce\xf2\x44\x07\x68\x56\x91\x8a\x6f\x94\x9e\x2b\x6b\xb4\xe0\x58\x18\xcb\x1d\x0c\x6a\xec\x81\x5c\x30\x39\x05\xd1\x59\xc4\x23\x27\xc2\x91\x93\xf0\xb6\x0b\x91\xb3\xb2\x6d\x14\x39\x2b\x1e\x39\x2b\x27\x2a\x10\x87\x61\x40\x92\x49\xe4\x04\xd3\x13\xd5\xed\xc3\xfe\xee\x4c\x36\xb6\x7f\x02\x93\x4a\xf3\x11\xbf\x43\x12\xc4\xc8\x15\x8a\x0a\x75\x7e\x27\x82\x58\x36\x79\x92\x37\xa4\x16\xcb\x09\xa6\x60\x3a\x16\xdb\x36\x8a\x9d\x88\x07\x18\x02\x65\x7b\xb7\xe2\x31\x86\x44\x76\x44\x32\xb5\x48\x3d\x05\x2a\x25\x2c\x52\x42\x95\x67\xb2\x9a\x9e\x9e\xee\x72\x71\x79\xb4\x83\x45\x9c\x5c\xfa\xb3\x65\xad\x9b\x45\x07\x4b\x6b\x3c\x88\x78\x2c\x59\xc3\x7d\x66\xb0\x99\x87\xe9\x62\xb9\x99\xc6\x89\x13\x31\x6d\xb3\xb3\x38\x53\xe4\x4e\x84\x12\xe7\x1e\x12\xe7\x93\xb2\xbe\xc0\x67\x89\x6d\x27\x4e\x72\x86\xe5\xce\x5b\xed\x60\xe9\xa7\xec\xf0\x5c\xb6\xdb\x77\xa8\x9c\x32\x81\x77\x3b\x0c\x73\xdb\x4e\x6a\xcb\x6d\x8e\xc1\x11\x39\x6e\x51\x7c\xb2\x9a\xca\xe2\x33\xa5\x08\x7f\x20\xf1\x34\x72\x37\x88\xf9\x9d\x3a\x45\x05\x53\x39\x8e\x9d\x7b\x9e\x30\xa4\x96\x39\xe6\x9b\x80\x05\xf2\x64\x29\xa1\xe8\x27\x96\xc1\x3d\x4b\x60\xc5\xd4\x2e\x0a\x21\xca\x67\x21\x51\x86\xe6\x72\x7f\x28\xeb\xb8\xeb\x85\x5c\x81\x48\x6d\xa9\x48\x3e\xca\x8d\xd2\xe9\x80\x3e\x9a\x72\x21\xd5\xa9\x0c\xa6\x3c\xc6\x18\xc4\x0e\x6e\x45\x76\x19\x65\xc9\x23\xbb\x83\x54\x64\x1f\xb3\x24\x8e\x6e\x0f\xfa\xac\x64\xf8\xb0\x77\xd8\xf4\xa4\x67\x7c\xa1\x8d\x39\xf5\x6b\x61\x14\x5b\x6c\xd5\x1d\xae\x29\xa3\xef\x99\x38\x5d\x7f\x02\x63\x2b\x74\x1d\x9e\x65\xb6\x9d\xc9\x95\xca\x24\xa2\xab\x59\xb9\x5d\x67\xb9\x51\xd5\x75\xc8\x33\x9e\x8d\xb3\x62\xd5\x33\xe7\x7a\x81\xc7\x6b\xe4\x82\xf5\x49\x3c\x4a\xd4\x25\xc6\x99\xf3\x89\x69\xc1\x6e\xfe\x7e\xcf\x26\x99\xdc\x11\xce\xfd\x14\x33\x94\x77\x3d\x67\x78\x91\x32\x25\x81\x64\x6c\x19\x25\x1c\xab\x28\x0e\x6d\x65\x79\x02\x33\x45\x34\x49\x8c\x40\xfa\x8c\x90\x3e\x10\x4a\x18\xa1\x04\x48\x6f\xc0\x48\x6f\x00\xdd\x3e\xeb\xf6\x0d\x4b\xd0\xf7\x58\xdf\x03\xcf\x63\x9e\x07\xc3\x2e\x1b\x76\x61\xd8\x67\xc3\x3e\x8c\x28\x1b\x51\x18\x79\x6c\xe4\xc1\x68\xc0\x46\x03\x09\xf4\xbf\x52\x5a\x20\x41\x7c\x64\x20\xf5\xad\xc8\x7e\x12\xfe\x27\x05\xfb\xbb\x9e\x06\xfd\x83\x51\x33\xe8\x97\x3c\x87\x04\xfd\xde\xc8\x80\x7e\x09\xd9\xe7\x3c\x44\x7d\xc5\x37\x20\x0f\xc3\x82\xbb\xb0\x6a\x42\x56\x72\xab\xe9\x6d\x15\x2a\xe5\xf5\x3b\xbc\xab\x22\x01\xb3\x07\x7c\x3e\x99\xee\xe0\xbe\x99\xe8\x9c\x23\xe1\xf8\x8d\x0a\xe8\x62\xe2\x4a\x46\x3a\xdb\x61\xbc\x3b\xb9\xab\x50\x39\xf5\xf3\x55\x10\x68\xf7\xfa\x7c\x69\x40\x56\x20\x8e\x6c\x42\xa6\xc7\x0f\x75\x51\x66\x27\x77\x37\x6b\xc2\xdc\x65\xb5\xc9\x38\x99\x90\x29\xcf\xf4\xc6\xf2\x35\xa3\x38\x11\x90\x4d\xf1\x51\x40\x9b\xc9\x23\xaa\xb2\x57\xc6\x58\x8e\x3e\xd3\x63\x14\x25\x06\xf9\xb7\xdc\x6e\xd2\x57\xa6\xc6\x33\x81\x32\x49\x5f\xb6\xdb\xff\x26\xc9\xfe\xaf\xc4\x81\x41\x7e\xf7\x3e\x6f\xc6\x81\xf3\x46\x1c\xb8\xe8\x74\x6a\x38\xaf\x86\xec\x02\x10\x93\x70\x0f\xd9\x25\x68\x5e\x45\x76\x0d\x53\x20\xa9\xfb\xb8\xbc\x56\x68\x13\xb3\x5f\xe5\xc7\x5c\x22\x22\x69\xbf\x64\xbc\x42\xb3\x1c\x3e\x62\x47\xd7\x84\x04\x66\x89\x6d\xaf\x51\x0e\x32\x02\x6c\xdb\x05\xde\x33\x49\x0d\x8b\xfb\x07\x1b\x5d\xfa\x69\x43\x8b\x0a\xd0\x1f\x87\xd4\x31\x8f\x90\x92\x7c\xb4\xdd\x5a\xdd\xf1\x78\xa5\x68\x38\x91\xa9\x2b\x77\x16\x4f\xe4\x14\xeb\x6b\x46\x58\x2f\xd2\x2c\x4e\x04\x5b\xd5\xe0\x45\x0d\x4e\x74\x3d\xd6\xf5\xa0\xe7\xb2\x9e\x6b\xe0\x84\x37\x62\xde\x48\xd3\xf0\x1a\x4e\x48\xd8\x70\x20\x3f\x6b\x84\x0d\x9e\x91\xa5\x79\x6e\x4e\x0e\x1a\x98\xa0\x80\x86\xaf\x81\x46\x0d\x28\x48\x20\xb1\x36\x40\x43\x02\x05\x8f\x6a\x72\x70\xd8\xd3\xe4\x20\xa1\x14\x2b\x3a\x70\x70\x54\xdc\x04\x2b\x50\x82\x21\x3d\x4f\x37\x3c\x99\x88\x29\x3c\xf2\x1b\xb8\xe6\xf7\x63\x75\x23\xc7\x2c\x7f\x3e\xb7\xe0\x81\x3f\xda\x76\xe5\x86\x00\x2e\x25\xa7\xf8\xf9\x90\x6b\xe0\x0f\xca\x5c\x0f\x3d\x80\x00\x4b\xef\x03\x4b\x1b\x93\x2f\x7d\x0d\xc7\x1b\x8e\x38\xba\xb5\xed\xb6\xb2\x9d\x93\xc8\x43\x6b\x0e\xc9\x15\xd7\x1c\x87\xcb\x04\xde\x31\x75\x55\xd8\x5c\xbe\x95\x17\x1f\xeb\x43\xc1\x8e\xd6\x21\xc7\x72\xa4\x8e\xe6\x32\x6a\x8b\xd5\x2e\xa5\x93\xa7\x4b\x40\x62\xca\xe0\x5d\xf3\xa5\x5a\xeb\xd1\xb6\xd1\xed\x76\xfb\xe0\x18\x82\xca\xb6\xdb\xb3\xda\x9d\x34\x92\x50\xfa\x11\xe7\xba\xa4\x08\x3b\x91\xf8\x9c\x21\x79\xa8\xb1\x9e\xe5\x77\x0a\x90\x3f\xc2\x47\xfe\x6e\x72\x3d\x45\xb7\xe3\xcd\x8e\x9d\xba\x40\x70\x9b\xbf\x83\x2b\x5e\xaf\xee\x9d\x3a\x34\x44\xd9\xcb\xbd\xe1\x73\x54\x03\xe3\xaa\x1e\xa4\x00\x06\xbc\xe7\xed\x5b\xdb\xae\x17\x2e\x31\xbd\x6e\x31\xe3\xfd\xb3\xec\xf4\xf4\x0c\x0b\xd9\x70\x56\x92\x3e\x6d\xa1\x9a\x39\x75\x15\xec\x79\xb3\xdd\x22\xf4\xc8\xb3\x4a\x5d\x86\x06\xc9\xe0\x51\x82\x69\x2d\x3f\x58\xa8\xa1\xde\x40\x06\x8f\x05\xbc\xaa\x01\xb4\x7b\x88\x26\xd7\x53\x88\x30\x44\x72\xf4\x15\xfc\xf2\x00\x0f\x55\x61\x0e\x7f\xc4\x80\xae\xb6\xdb\xf7\x92\xdb\xfe\x8c\xf2\x9d\x87\xe1\x33\x52\x1b\x0f\xc3\xbd\x6d\x7f\xd6\xf7\xcd\x18\x03\x7a\xbf\xdd\x7e\xc4\x32\xe5\x1a\xc3\xad\x6d\x3f\x68\x63\xb7\x02\x72\x99\x77\x2d\x5e\x7c\xe4\x77\x4e\x1d\x90\xa3\x0c\x04\xdc\xc3\x35\x86\x18\x55\x0f\xc5\x0a\x83\xef\xbc\xbd\xbc\xfc\x96\xb7\x73\x59\x72\x6b\x89\xe4\x80\xe1\x72\x22\xa6\xfc\x11\x22\x14\x39\xdf\x75\x22\xe7\xa7\x4e\xe4\xbc\x7a\x86\x1e\xdb\xfc\x06\xc3\x25\x86\xdb\xed\xf6\xce\x29\x68\x37\x59\x04\xee\x31\x3c\xd6\x60\x0f\xf1\x18\x21\x1e\x10\x4a\x19\xa1\xd4\xc0\x20\xcf\x65\x9e\x0b\x1e\x65\x1e\xcd\x61\xd0\x90\x79\x43\x18\x74\xd9\xa0\x6b\x20\xd1\xb0\xc7\x86\xbd\x02\x1e\xf5\xdd\x2f\x5d\x43\x79\x4f\x5c\x43\x79\x8c\x48\x16\xba\x7f\x20\x27\x3d\xc6\xe5\x6a\x59\xc5\x13\x8a\x8d\x01\xde\x28\xd1\x92\x18\x97\xba\x20\x2e\x04\x18\x33\x75\x91\x1f\xe8\x39\xe8\x31\x42\x7a\x05\xbd\xd5\xa7\x5f\x1a\xc3\xe0\x89\x31\x28\x45\x22\x25\x74\x91\x55\x1d\x48\xe3\x9a\xc1\xb3\x12\xea\x7f\xeb\x67\x15\x85\x2a\xb9\x2b\xae\x82\x3b\x01\xc1\xfe\x87\x2c\x7e\xfd\xf1\x9d\x96\x24\x40\xdc\x48\x94\x5d\x8c\xc6\x82\x59\xae\xd5\x11\x55\xa6\x39\x69\x50\x4e\xb1\xdc\xee\xb0\x7f\xea\x0e\x4e\x69\xff\xca\x1d\x30\xd7\x63\xdd\x91\x33\x1a\x8d\xfe\xc5\x6a\xf3\x40\x83\x20\x79\x8a\x64\x0f\xd0\x69\xdf\xad\xfc\x29\x82\x18\x6f\xb7\xed\x7a\xb5\xfb\x85\xde\xfa\x6f\x55\xc6\x71\x35\xcf\x02\xb5\x83\xf4\x55\x10\x05\x99\x40\x51\x09\xe8\x70\x7e\x05\xfd\xc1\x8f\x6e\x73\xb1\xf2\xeb\xe8\xde\x0f\x83\x79\x2b\x0b\xee\x8a\x7b\xf9\x8a\x33\x0c\xc8\xb8\x9a\xaa\x1f\xae\x5e\xbe\x5a\x87\xe1\xcf\xda\xaa\x34\x29\x12\xdf\x04\x61\x18\xa4\x62\x16\x47\xf3\x54\xb9\x31\xca\xce\xdd\xb1\x75\x6a\xb1\xec\x62\x34\x1a\x8d\xc6\x56\xc7\x62\x96\x55\x30\xef\x1d\x64\xa9\xd1\x59\x1d\x75\x8f\xe8\xdf\xa4\x48\x52\x06\x5a\x12\x13\x8c\x4f\x3d\x76\xda\xc3\x1d\xeb\xd4\xea\xc4\xa8\x68\x22\x8e\xb2\x25\xc2\x1d\xb2\xff\x41\x4d\x00\xc6\x1d\xeb\xaa\x9a\xfa\x0f\xf1\x3a\x49\x55\x32\xab\xd5\x12\x44\xeb\x4c\x34\x7c\xf8\x98\x77\x1e\x77\x2c\xc7\xea\xa0\xe4\x62\x34\x1a\x27\x6a\x79\x63\x94\xc8\xd4\x7f\xb1\x76\x2c\xd8\xc1\x46\x1d\x54\xb9\xeb\xbe\x52\x5c\x9b\xcb\xfa\x7a\xe4\x09\x4d\xe7\x5c\xec\xd6\xe6\x5c\xd8\x76\xa9\x45\xa0\xde\x8c\x3f\x01\xf5\x7a\x78\x23\xf0\xba\xb8\xba\x5e\x06\x51\x56\xde\x59\x47\x28\x17\xa5\x96\xd5\x09\x7d\xc5\xde\x23\x8c\xf4\x88\x26\x7e\xe4\x48\xbe\xea\xa2\x5d\x2b\x09\x29\x71\x61\x43\x2f\x8c\xb6\x87\x1f\x86\xad\x3b\x91\x2d\xe3\x79\x2b\x8e\x5a\x2d\xab\x23\x0e\xee\xd0\xfb\x5f\xbc\x43\x1f\x3e\x71\xf0\x95\xfe\x4f\xb1\x04\x0d\xda\x52\xf5\xaa\x46\x4f\x54\xa5\xb4\xbb\x0c\xa8\x35\x22\xdb\xfe\x13\xaa\x44\x56\x05\x57\x41\x5d\x01\x0f\x82\xf4\x7d\x0e\x38\xde\x2d\x60\x65\x92\x5f\xa7\x97\x85\xa6\x11\x64\xf1\xf7\xf1\xcc\x0f\x85\x01\x29\xb9\x94\x12\x8c\x72\x8e\x95\x7b\x3c\x02\xcb\xa8\xff\xf5\x8f\x5f\xda\xba\x86\x07\x25\x2e\x35\x94\xa6\x7b\x54\x8d\x3e\x97\xaa\x0b\xac\x04\x4d\x0b\x6d\x17\x9d\x13\x05\x3e\xa4\x5c\xd2\xf0\x10\xf2\xc0\x59\xc0\x9a\xbb\x67\x85\xb8\x67\x7d\x86\xc3\x5c\x73\xd0\xe7\xe9\x64\xdd\xe9\x4c\x15\x75\x67\x5c\x1d\xd5\x2f\x9f\x5d\xca\x88\x4b\x81\xb8\x7d\x46\xdc\x3e\x10\xd7\x63\xc4\x95\xbb\xcb\x3b\x7a\xcb\x9a\xd3\xcb\xfd\xfc\x3a\x2e\xbf\x64\x95\x74\xb3\x6f\xc4\xa8\x4f\x2a\x3b\x1b\x35\xe7\x57\x46\xcd\xf9\x3b\xa3\xe6\xfc\xd1\xa8\x39\xbf\x37\x6a\xce\xdf\xc0\x0d\x5f\x8d\x13\x76\x37\xd6\xca\xcb\x4a\x87\x99\x6f\x76\xb8\x51\x9b\x19\x1e\xf9\xaa\x41\x27\xfa\x9a\x57\xe8\x84\xed\xb6\x4a\x35\xc8\xef\xa5\x0e\xf4\xaa\xd4\x81\x9e\x73\x84\x66\xbc\xbd\xb0\xed\x9b\x8a\x1a\xf4\xcd\x64\x3d\xc5\xe3\x1b\x16\xe2\xc9\x7a\x0a\x4b\x2e\x49\xb6\xb1\xaf\x75\x9a\xef\x8f\xa8\xf6\xfa\x4d\xaa\xbd\x37\xb6\x1d\xa3\x1b\x58\x83\x56\xe0\xfd\x01\xc3\xe3\x64\x3d\x6d\xf3\xb9\x6d\x07\x4a\x7f\x77\xa9\x88\xa6\xeb\x3c\x11\x29\x75\xe9\x39\xde\x9d\x24\xce\x2c\x4e\x04\x8f\xe0\xff\x0b\xdd\x5e\x43\xd5\x28\xa3\x17\x23\x79\x31\xc7\xca\x68\x0f\x79\x47\xaf\x64\xf5\x0d\xc8\x9d\x9f\xcd\x96\x4f\xdf\x0d\xf2\xe7\xce\x73\xe5\x24\xc8\x7a\xee\x3c\xb7\x26\x62\x8a\xb2\x5c\x11\x31\xaa\x5d\x4a\x64\x93\x64\xca\xdb\x04\xda\x87\x19\x03\xbc\xc9\xad\x18\x6a\x5a\x4e\xb2\x87\x5f\xa2\x46\x28\x39\x0e\x49\x72\x0d\x51\xef\x69\x3a\x44\x5b\x21\x57\x24\x49\x06\x33\x0c\xcc\xf6\x97\xf4\x89\xba\x3c\x30\xcc\xa2\x9c\x1b\xc5\x2d\x12\x32\x54\x7a\x22\x95\x6b\x54\x58\xf3\x76\x50\x23\x09\x34\xb2\x96\xb3\x54\x08\x8d\xc4\x67\x31\x3b\x74\x6a\x33\x29\xdd\x6a\x3a\xb7\x49\xbc\x5e\xa5\x7c\xe3\x33\x6b\x60\xed\x24\xcf\x6c\x0d\x24\x9a\xb1\x2c\x27\x11\xab\xd0\x9f\x09\x24\xc0\xfa\xd3\xb9\x7f\xa1\x9d\x75\x34\x54\xf7\x1c\x8d\x19\x7e\xae\x08\x04\xd9\xde\xc9\x61\xb3\x05\xaf\x75\x44\xe5\x5d\x4f\x88\xe5\xdf\xe4\x30\xb0\xc4\x19\x54\x39\x8a\xc9\x7d\x03\x5a\xbe\x72\x1c\x33\x71\xa7\xb6\x6d\xdd\xe8\x67\x32\xdd\xa1\xa3\x74\xe9\x5c\x77\x72\xc9\x7d\x09\xe2\x16\x4d\x53\x96\xf1\x4d\xa9\x74\x3f\x59\x4e\x1b\x3a\x3e\xd8\xc1\xa0\xcd\xad\x7c\x2f\x61\x0c\x2b\xbe\x18\x37\xd6\xd5\x26\x90\xf0\xe7\xfe\xf3\xd2\xf7\xe4\xb1\xc9\x50\x77\x0e\xeb\x30\xdc\x81\xa5\x06\x2d\x47\x23\x94\xf0\xbe\xca\x12\x6d\x76\x50\x4b\x98\x84\x4d\x1d\x4c\x76\x18\x92\xc9\x72\x8a\x2c\x0b\x43\x3b\xdb\xe1\x5c\xd1\x43\xa9\x75\x2e\xb6\xdb\xf6\x4a\xf9\x59\x53\x0b\x6a\x1a\x6a\xaf\xb7\xdb\x5a\xcb\xed\x99\x1e\xc4\x9d\xdc\x43\x93\xe5\x14\xee\xf9\x1c\xc5\xb0\x04\x35\xf0\x7d\xcf\x2e\x35\x4b\xa1\x4c\x8f\x92\xf3\x74\xbc\xb0\xed\x76\x30\xde\xcc\xe3\x48\xb0\xb6\x6b\x74\x66\xef\x6a\xd6\x47\x6c\xef\xab\xb1\x33\x4a\x94\x7a\x60\xf1\x95\xec\xe4\x44\xdf\xf2\xfb\x89\x3b\x85\x1b\x7e\x3f\x21\xd3\x93\x04\xe5\x86\x80\x05\xa8\x16\x70\x8b\x21\x42\x1f\xc4\xed\xe5\xe7\x55\x25\x7d\x09\x94\xf3\x6c\xdc\x28\x0a\xbd\x29\xd4\xe1\xb5\x48\x6a\xd7\x20\xb2\xac\x67\xc2\xbb\x5c\xe6\x6c\xf8\x37\x49\x86\x90\x21\xe4\xb7\x92\xb9\x69\x71\xbf\xcf\xfa\x7d\xc3\xc9\x15\xb0\xef\xab\xc9\xc4\xa6\x5d\x9c\x9f\xb2\x9c\x94\xcb\x78\x49\x46\x0b\x63\xe5\x67\xdb\x28\xeb\x70\xeb\x56\x89\x19\x83\xdb\x28\x4e\xc4\x4b\x3f\x15\x26\x59\x4b\x1f\xef\xd6\x61\x16\x84\x41\x94\xa7\xde\xa9\xd4\x75\x14\xcc\xe2\x79\x9e\xb6\x56\x69\x69\x16\xcc\x3e\x3d\x9a\xa4\x47\x0b\x83\x42\xef\x39\xa9\xe8\x1d\x90\x8a\x8d\xa3\x19\x0c\xea\x3a\x0a\x4a\x6d\xaa\x7a\x31\xaa\xe1\x7e\x90\xbe\x54\x57\xf7\x1f\x57\x89\xf0\xe7\x92\x4c\x6a\x44\x02\xca\x7a\x26\x85\x10\x0a\xac\x5f\x4a\x35\x94\xf4\x8b\xcf\xe0\x96\xbb\x70\xc3\xdb\xed\xa5\x44\x89\x4b\x58\x40\x17\x9f\xdd\x9e\xaf\xb5\xca\xcd\xad\x56\x1a\x93\x8f\x2b\x7e\x33\xbe\x41\xe1\xe4\x76\x0a\xb7\x90\x62\xa6\x9e\xee\xe4\xc1\x8d\xd0\x0a\xdb\x36\xba\xe3\x05\x9e\x46\x77\x7c\x35\xf1\xa7\x78\xdc\x6e\xdf\xb1\x04\xad\x30\x86\x3b\xdb\x9e\x5f\xb8\xf8\x9e\xeb\x2e\xad\x20\x40\xab\x42\xfd\xe7\x1e\xe6\xa7\x04\x9f\x92\x93\xdc\x4d\xe4\xfd\x05\x1f\xb9\xee\x80\x8c\x46\xb4\xdf\x1b\xf4\xdc\xd1\x88\x1c\x50\xce\xf8\x24\x9b\xdc\x4f\xf9\x6a\x77\xdf\xe9\xec\x6e\x3b\x9d\x5c\x7b\xe2\xbe\xa6\x84\x63\x36\x9a\xd1\x74\xaa\xe9\xa2\x78\x0d\xf4\x74\x6e\x32\xd0\x37\xf4\xe1\x90\x98\xcb\x09\x43\x58\x49\xa6\x24\xcd\xd7\x25\x54\xeb\x41\x24\x4e\xd9\xec\x60\xc6\x37\xbb\x33\x54\x35\x94\xd9\x3b\xf9\x73\x58\xea\x06\x16\xb9\xe8\x91\x2f\xc7\x87\x40\x49\xec\x58\x28\xa1\xee\x0d\x8f\x90\x2c\x94\x8d\x29\x23\x18\x1e\xb9\x7b\xd2\x6c\x5d\x7a\xfb\x94\xa1\x67\x90\x69\x32\xba\x6d\x69\xc7\x3e\xe8\xd6\x68\xb1\x2c\x78\x8a\x72\x4f\x7c\xf8\x6c\x71\xf1\x78\xf6\x68\x14\xdb\xee\x79\x36\xbe\x41\x3e\x5a\x71\x31\x79\x9c\x62\x09\x47\x56\x13\x32\xc5\xec\x06\xa9\x04\xcc\x39\x5f\x6f\xb7\xf7\x9c\xf3\x5c\xf5\xac\x75\x5f\x2a\x1e\xde\xf1\xdb\x5c\x45\xe0\xac\x8d\x56\xfc\xce\x88\xf0\xb0\x23\x01\xd4\x99\x69\x22\x40\x77\x70\x03\x2b\xad\x62\x0f\xd9\x91\x4a\xb1\xf3\xcd\x87\xcb\x17\x7f\xe1\x6b\x48\x9c\x0f\x97\x57\x3f\x7c\x78\xcb\x67\xb5\xd5\x25\x8c\xf4\x0d\x3f\x96\xaf\xb1\xc7\x06\x1e\x0c\x09\x1b\x2a\xca\xe2\x40\x23\xa1\x66\x9b\x43\x7b\x18\x59\x91\x9f\x05\xf7\xe2\x34\xcf\x76\x9a\xc5\xa7\x86\xa9\x84\x82\x74\x2c\x14\xf9\x95\xa2\x75\x8f\x11\x65\x7c\xe5\x0d\xbf\x44\xfc\xd0\x27\x88\x1f\xa3\x77\xef\x8d\xbe\x54\x49\xf7\x89\x4a\xba\x8c\x76\x77\x53\x09\x34\xbf\x50\xc9\x53\xca\xfb\x46\xc2\xa4\x6c\xca\xcc\xdd\x5f\x2e\x6d\x1a\x1c\xa5\x40\xbd\x61\x69\xf8\x59\x15\xe3\xd8\x76\x52\xa4\x1b\x6b\x4e\xc9\xfc\x4b\xba\x56\xd6\xf7\x45\x7a\xf1\x09\x45\x70\x6d\xbe\xa2\x3b\xd8\x1f\xb0\xfe\xa0\x60\x68\x07\x47\xf5\xca\x72\xb5\x3a\x42\x5d\x75\xdd\xf1\x84\x28\x4e\xdd\x97\x80\xcf\xb3\x2a\xe5\x90\x23\x0d\x5f\x5f\x3f\x37\xf0\x18\xbe\x6d\xa3\x98\xfb\x15\xd5\x26\xe5\x5e\xb0\x78\xb5\xed\x04\xc5\xd8\xb6\x23\xdb\x96\x4d\xc5\xb9\x5d\x0e\x75\x19\xa1\x6e\x01\x8e\x06\x5f\x65\x62\x5e\x05\x53\x85\x66\x52\x92\x9b\x40\x67\xc7\xcc\x30\xc7\x02\xe1\x82\x60\xc0\xfb\x06\x99\x63\x81\xb2\x89\x3b\xc5\x15\x92\x42\xbe\xee\x1b\x68\x9a\x6c\x90\x29\x68\x50\xcb\xab\xd3\xf6\xec\xa3\x6b\x05\x20\x9b\xd0\xc6\x52\xfa\x83\x2e\xda\x3b\x5e\x14\xb2\x49\xf7\x78\x79\xfd\x75\xdf\x48\x34\x29\x0d\xf7\x06\x4f\xe9\x94\x55\xf6\x84\xd1\xc3\xb2\x7e\xb5\x14\x63\x7b\x20\x8e\x40\x6e\x6e\x19\xd6\x40\xfc\x58\x1f\x73\x1d\xb0\x04\x09\x3c\x2e\x7c\x33\x5b\x98\x15\xfa\x5d\x55\x53\x95\xc1\x11\x65\x2c\x81\x86\x35\x45\xb7\xa0\xf0\x6d\x00\xc1\x81\xbd\xca\x93\xda\x5a\xa5\x73\x62\x45\x22\xab\xb2\xda\x5b\x6e\x30\x89\xd4\xcd\x2e\xae\x6a\x89\x0d\x3d\x36\x54\x1d\x3b\x6a\xa5\x5f\x9f\xad\x9a\x4b\xcc\xba\x52\xa2\x99\x11\xf5\xc5\x4c\x48\x6d\xe8\x07\x02\xa3\xfa\x81\x55\xf2\xcd\x45\x18\xc7\xc9\x93\x03\x54\x36\x61\xb6\x5d\x88\x6b\xe5\x8b\xfc\xac\xee\xac\x77\xb0\x29\x0e\xd7\x17\x81\xec\x13\x82\xff\xdc\xc6\x6a\x78\x54\x20\x93\x03\x99\x9e\x57\xd5\xdd\xfd\x0a\xee\xbc\xbc\xa9\x56\xba\x92\x25\x05\x95\x71\x31\x09\x14\x05\x95\x31\x4b\x53\xe9\x16\x57\x37\xc4\xf8\x40\xad\xaf\x00\x21\xc3\xe3\x1a\xdc\x47\xad\xaf\x34\x43\x52\x91\x03\x04\xe3\x0c\x25\x28\x52\x78\x3f\x52\x27\x3d\x43\x51\x2e\x09\xf0\xf3\x5b\x65\xe1\xe8\xec\xc6\x7c\xad\xe8\x78\xac\xa0\x5d\x61\xe6\x06\xfe\xae\x4a\x05\x0f\x0f\xb4\x9f\x9b\xaf\x4e\xbc\xf2\xea\x44\xcf\x27\x55\x2c\xfe\x66\x77\xa2\x2d\xb2\x62\x68\x38\x1a\x0d\x0a\x9f\xfa\x36\xb2\xd9\x72\x0b\x32\xf0\xf1\xa6\x72\x73\xc1\x13\x14\xc3\x46\x12\x2b\x2c\x42\x04\x7c\xbc\xc3\x10\xc8\x7c\x1d\xab\x55\xf1\x2e\x52\x41\x98\xf9\x75\x54\xcd\xe8\x4b\xab\xc7\xc8\xc1\x7e\xdd\xed\xca\x70\x70\xe4\xf2\x7b\xe0\x6a\x9a\x73\x68\x68\xce\x21\x35\x24\xa7\x9c\x8c\xb5\x12\x5e\x76\x8d\x4a\xcc\xfe\x54\xcc\x79\x1b\x4d\xa6\xce\x27\xf1\x98\x2a\x8f\xb7\x9f\x33\x2b\x88\x4c\x02\xc2\x18\x96\x4d\x9c\xb5\x9c\xab\x63\x9b\x64\x51\xde\x96\xa7\x68\x01\x19\xac\xb4\x3c\xe6\x06\x1e\xe1\x1a\x1e\x0e\xfc\x8f\xcc\x6d\x5b\x48\xde\xe1\x63\x4e\xcb\x7d\x9c\x88\xe9\x49\xdd\xf8\x41\xab\x3b\x31\xf5\x68\x94\x95\x0e\x3c\x6b\x54\x75\xbf\x73\x05\x35\xf1\x94\x4b\x8d\xbd\x7c\x70\xc9\x6b\xcb\x07\x9f\x79\xa9\x57\x75\x07\xef\x24\xff\xf2\xb1\xe6\x28\xe0\x8a\x7f\x9c\xcc\xa6\xdb\xed\xc7\x89\xf5\x1f\xff\x63\x31\xa5\xd3\xed\xf6\xce\xb6\x3f\x4e\xee\xa6\xf0\x86\x5f\x6d\xb7\x0f\xe8\x0e\xc3\x7b\x7e\x37\xfe\x3c\x7e\x40\x85\xd2\x15\x66\x6f\x72\xb5\xb6\x17\xbc\x00\x7d\x99\x6d\x7f\xcc\x2f\xb4\xb7\xdb\x2b\x49\x86\xbf\xb0\x6d\x74\xcd\xd7\xe8\x45\x79\x1d\x25\x30\x96\x74\x83\xb1\x3a\xae\x10\x0f\xd7\x8a\x7e\xb6\x6d\x14\xa2\x6b\xb8\x54\xba\x5c\xc9\x76\xdb\x40\x87\x5c\xab\x7e\xc7\xe8\x1a\x66\xb0\xc4\x18\x3e\xdb\xf6\x95\x6d\xe7\xc3\x6d\x73\x7e\xe5\x44\xfe\x9d\x44\x04\xef\x78\xdb\x85\x37\x0d\x7b\xe0\xaa\x72\xdb\xb5\x53\xf1\x0d\xda\xb7\xdb\xad\x5c\xcd\xf6\x3b\x39\x7c\xdd\xc0\x47\x98\xc1\x1b\x0c\x4a\xc5\xfd\x0d\xf8\x93\xcb\x29\x5f\xc2\x9d\x24\xec\x6f\xf8\x46\x37\xc7\x3e\x8f\xdf\xb0\x07\x94\x37\x8e\x41\xae\x35\xbb\xd7\x89\x6a\xdd\x31\x98\x29\x61\xef\x77\x70\xab\xe4\xea\x8f\xda\x9c\x46\xfd\x7c\xdc\x6e\x03\xf4\x11\x1e\xe1\x46\xb2\x1c\xda\x80\x26\x42\x91\xf3\x5e\x5f\x1e\xcf\xb7\xdb\x77\x18\x32\xb8\x29\x24\x5e\x37\x5a\x98\xde\x65\xc4\xed\x1e\xdc\x17\xe7\x07\x54\xdf\x18\xeb\x63\x3a\xa4\x6c\x48\x35\xc6\x83\xe1\x80\x0d\x25\xb5\x3b\x3c\x6a\xde\x7f\x70\xc4\x22\xde\x26\x4a\xae\xaa\xf5\x51\x27\x83\xe9\x24\x99\x22\x7c\x12\x18\xc0\x58\x9d\xdd\x88\xb7\xdd\x9d\xf1\x1f\xbd\x48\xe2\x3b\x14\xd4\x80\x95\x06\xa1\x74\x87\x73\x28\x1b\xe3\xcd\xee\x29\x43\xe8\xcc\xb6\xdb\x51\x5d\x7b\x28\xa8\x76\xc7\x97\xdd\x81\x94\xfb\xba\x4b\xa9\xda\x41\x87\xcb\xad\x25\x46\x81\xb6\x5c\x95\x79\x1b\x76\x44\xba\x03\x81\xfc\x6a\xc7\x72\x34\x51\x97\x03\x0f\xbf\xd2\xe6\xb4\x68\xdb\x58\x85\x83\x96\x5a\xb5\x45\x6e\x1e\x3e\x7c\xc2\x5b\xc0\x26\xcf\xf3\x04\x57\xd7\x26\x26\xcf\x11\x02\x43\x11\x16\xe2\xf3\xea\x8e\x54\x60\x5d\x3b\xd9\x6e\x13\x44\x5c\x7c\x41\xa9\x4b\xfb\x4e\xcf\xeb\x0f\x46\xbd\xa1\xeb\x0d\xc8\xd0\x7c\x39\x6f\xfa\x72\x4a\xc5\x29\x19\xb4\x79\x82\xf4\x13\x6e\xd2\xae\x71\x39\x47\x82\x77\x24\x41\xc8\xc4\xc5\x29\x11\xa7\x9e\x6d\x8b\x73\xf9\x3b\x16\x1d\xf1\x4c\x3c\xa7\x2c\xef\x15\x12\xf8\x94\xec\x58\x62\xc6\x70\xf4\x26\x6b\x44\x0a\x22\x69\x15\x3f\x40\xc0\x23\x44\xe1\xb4\xaf\xb0\xa4\x7a\xa4\x5d\x89\x3c\xe4\x23\xa1\x03\xfc\x0c\xd1\xd3\x58\x5b\xae\x52\x38\x25\x75\x43\x7b\x4d\x6a\x25\xf1\xba\xd1\xae\x04\x22\x08\x79\x71\xdb\x2c\x24\xe6\x49\x2a\x82\xe6\xf0\x3c\x1d\xaf\x9f\xa1\xf0\x79\xfa\x3c\xee\x90\xe7\xc1\x29\x79\x1e\xe0\x67\xe9\xb3\x98\xa1\x48\x52\x31\x88\x74\x62\x99\x12\xe2\x53\x94\x9d\x86\x18\x5f\xf8\xdb\x6d\xd4\xe6\x91\x2c\x45\x9e\xbb\x98\xad\x9f\x45\x72\x59\x47\x84\x8d\x24\xc7\x3e\x3a\x20\xb2\xf6\x7a\x1a\xc6\xb7\x64\xd5\x44\x6b\xea\x49\x56\x13\x3c\x34\x13\x3c\x1c\x8b\xd3\xca\x04\x87\xf1\x2d\x22\x1d\x91\xf3\x04\xa3\x27\x7c\xa7\xa8\xfc\x69\x70\x1b\x35\xb5\x54\x2e\xe9\x76\x2b\xda\x5c\xc8\x85\x3d\x77\x95\xdd\x5a\x5e\xf5\x51\x33\x2f\xd2\xeb\x4b\xd2\x50\x64\xbe\x55\x17\xf5\x79\x46\xd2\xa7\xad\x23\x7c\xee\x42\xce\x8d\xd4\xc2\x88\x54\xfa\x53\x71\xde\x02\x21\x6f\xab\x8b\x90\x26\x0f\x1f\x29\x2a\xb0\x8a\xb8\x97\x5c\xb9\xae\x2c\x8e\x52\xb4\xd9\x29\xf5\x07\x58\xd7\x30\x78\x8c\x04\x24\x60\x8e\xe8\x26\x60\xd6\x3b\xab\xd3\xea\x74\x7c\x78\x50\x4e\x99\xf0\x0e\x66\x55\x47\x60\x7f\xb9\xfc\x99\x25\xf0\xf6\xf2\xf2\x5b\xd6\x26\x60\xac\x30\xd8\x21\xd8\x8a\x4a\x9d\x47\x2b\x7d\xbc\xbb\x89\xc3\xaa\x97\x0f\xc1\xd0\xbe\x0d\x4d\x4b\x8c\xad\x8f\x16\xb3\xde\x5b\xb8\xa3\xfd\x55\x07\x4a\x0b\x4d\x57\x97\x56\xaa\x7b\x65\x69\x4f\x0c\xf9\xfb\xa5\x75\xa2\xbc\xd0\x17\xaa\xba\xc9\xd4\x09\x94\xb2\xf8\x4f\xc2\xff\xd4\xd0\xb7\x23\x15\xb7\xdd\x5a\xbd\x6d\x72\x58\xed\xc3\x0e\xe2\xe8\x55\x22\xc4\xaf\xa2\x49\x1e\x1e\xda\xf6\x4c\xe9\x45\xd9\x76\xaa\x88\x7c\xd3\x94\x6d\xcb\x9a\x40\x18\x7f\x5f\x7d\x46\x7a\xb9\x04\xbc\xa6\x49\x69\xe4\x30\xa3\xa3\x02\x0e\xaf\x30\x44\xee\x29\x01\x07\x04\x3c\x71\xde\xac\x33\x65\x8a\xff\xee\x26\x15\xc9\xbd\x90\xe0\xcd\xf9\x49\xdc\xfc\x25\xc8\xf6\xbf\xa8\xa8\x40\xab\x24\x9e\x89\x34\x05\x9f\x27\xb9\x37\x43\x48\xb9\x65\x92\x2d\xae\x59\x1b\x14\x3f\x25\x6a\xd7\xa6\x2d\x07\x66\x66\x10\xa9\x0b\xde\x54\xf2\x9f\x3c\x76\xe6\xf1\x9d\x1f\xe8\x20\x60\xe2\x73\x90\x21\x7c\x26\xce\x24\x82\x14\xce\x22\x02\xc1\x85\x42\x55\x0a\x91\x45\xa8\x72\xfd\xa8\x51\xa4\x18\x87\x08\xb3\x42\xed\x3d\xd8\xed\x8a\x67\x25\x76\x12\x51\x26\x12\xa4\xb5\x0f\x53\x5c\x33\x79\x8b\x55\xc5\x57\xc1\xec\x13\x5a\xe3\x5d\x61\x90\xdb\x0e\xe4\xcc\x44\xfe\x7d\x70\x2b\xf1\xba\xac\xa4\x78\x71\xd2\xcc\x8f\xe6\x7e\x18\x47\x42\xd2\x36\xbe\x6d\xfb\x4e\x22\xd2\x38\xbc\x17\xb9\x01\x4f\x91\x60\x38\x37\x7c\x52\x6b\x74\xe6\x64\x4b\x11\xc9\x06\xb5\x78\xb4\xf6\x31\xca\x25\x19\x79\x7f\x8c\x42\x74\xdb\x85\x25\xcf\x05\x68\xc6\x2b\xda\x95\xf8\x9c\xbd\x8d\xe7\x02\x59\x16\x3e\x91\xd4\x62\x80\xd6\xd8\x89\xf5\x12\xa2\x25\x6c\x66\x4b\x3f\xf1\x67\x99\x48\xbe\xf5\x33\x5f\x05\xd0\xab\x5b\xfc\x2d\x9d\xb9\x9f\xf9\x7c\xce\xdb\xf3\x43\xe2\xb9\x10\x28\x6d\x16\x11\x4b\x40\x71\x40\x79\xb0\x12\x65\xb7\xa0\xe9\x87\x08\x83\xd8\x6e\x91\xe0\x11\x84\x92\x89\xc8\x78\x64\x6c\x8b\x7b\x8c\x74\x7b\x86\x17\xcd\x05\x7d\xa3\xaf\x36\xca\x2c\x63\x9f\x55\xb1\xce\x89\x52\x70\x5e\xe9\xcd\xc8\xb5\x2b\xb0\x3d\x4d\xf1\x60\x51\x32\xcc\x59\xd5\x65\xc5\xa1\x96\xcd\x37\xfe\xbc\x65\x36\x76\xab\x22\xdc\x93\xcc\x39\x17\x10\xf1\x64\x57\x06\x34\x52\x0b\xaa\x8d\xf2\x4d\x8a\x04\x9e\xca\xb3\x5d\x49\x95\x39\x8b\x26\x71\x8b\xec\x66\x64\x24\x1d\xb9\x92\xdd\xe8\xeb\x6e\x7e\xfa\x39\xcf\xeb\xe6\xa6\xf3\xae\xb9\xd6\x26\xae\xb9\x7c\x50\xe6\xd7\xa9\x31\xbf\x0e\x73\xe4\xe0\xa7\x12\x4d\x55\x89\x99\x70\xbb\x3d\xc4\x05\xfa\x3a\x6c\xb3\x83\x4c\x5d\x8e\xf2\x8f\x0a\x00\x23\xd9\xa8\xe5\xdf\xcc\xe6\x62\x71\xbb\x0c\x7e\xf9\x14\xde\x45\xf1\xea\x6f\x49\x9a\x95\xb7\x65\x92\x30\x1c\x40\x54\x0a\xb3\x72\xed\xdd\xba\x3a\x6d\x36\x11\x53\x65\x28\x00\x83\x36\x0f\xd1\x66\x07\x02\x4f\x92\xe9\x76\x6b\xfa\xa9\x78\x4f\x95\x9e\x61\x6c\x2c\x5f\x2d\xdc\xe6\x51\x4d\xfd\xae\xe6\x2a\xc2\xd7\x0a\x36\x07\x9e\x21\xd6\x9c\xc0\x4c\xe9\xdd\xcc\x79\xec\x2c\xce\xc2\x8b\xf5\x59\xa1\x99\xb3\x84\x05\x4f\x4b\x63\x56\xad\x7d\x03\x2b\x3e\x1b\x47\x68\x81\x73\x9b\xd7\x19\x5a\x60\xcc\x64\x0a\xdc\xf1\xfc\x26\x0a\xee\xb9\x7b\x76\x77\x71\x7f\x86\x97\x7c\x35\xb9\xef\x74\xa6\x8a\x05\x9a\xeb\x93\xba\x80\xa5\xb2\x8d\x56\x97\xdd\x93\xe5\xb4\xa2\xc7\xc3\xc2\xe3\x9a\x3c\x85\x21\xb8\x31\xaa\xd1\x97\x9c\xc6\x1c\x7c\x74\x54\x02\x98\xab\xbf\x8d\x86\x7a\x3b\xf4\x87\x66\x37\xd0\x2e\x46\xd6\xeb\x4b\x1d\xb0\xd3\x92\x3b\xa3\xb2\xca\x35\x0b\xe6\xfc\x2c\xa9\xed\x35\x90\xec\xcb\x22\xf1\xef\x84\xa2\x3b\x02\x33\x64\x6d\xdc\xe8\xa4\xd9\x63\x28\x9c\x79\x90\xae\x42\xff\x91\x5b\x51\x1c\x09\x0b\x04\x1a\x10\xec\xf8\xab\x95\x88\xe6\x2f\x97\x41\x38\xd7\x51\xeb\xd2\x64\xc6\xad\x5f\xfc\x7b\x5f\xfb\xe5\x65\x16\xa0\x8c\xab\xdb\xf6\x4c\x44\xd9\x4f\xda\x03\x5c\x0e\xc0\xb0\x13\xaf\x44\x84\x30\x64\xce\x43\x12\x64\x02\x59\xe7\xba\xd8\x45\x01\xe2\x5e\x99\x9d\x7c\xfe\xd7\xe7\xe6\x93\x25\xb3\xcf\xc2\x38\x15\x48\x6e\xf8\xcc\x79\x75\x16\x9d\x9e\x9e\x61\xa3\xa1\x5c\x09\x43\x34\x09\x26\xd1\xb4\xd0\xcb\x48\x51\xcd\x64\xba\x16\xd3\xb3\xc9\xc3\x4b\x50\x57\xbc\xe6\x62\x8c\xfc\x9a\x3c\x48\xc8\xb9\x97\x87\xda\x87\xea\x07\x99\x1d\x82\x49\x3c\xe5\x02\xb3\x80\xa7\xa8\x66\x04\x1f\xb0\x08\x05\x46\xf2\x4c\x68\x97\x11\xda\xcd\x6f\xa8\xd4\x9d\x45\x7f\xc8\xfa\x43\x18\x10\x36\x20\x30\x1a\xb2\x91\x82\x96\x5f\x52\xc8\xa3\x4f\x29\xf5\x1a\xb5\x44\xed\x15\xce\x34\xa5\x36\xdb\x80\xb2\x01\x95\xd5\x1f\x95\xb6\xe6\x5a\xca\xdd\x5c\x72\xe9\xf6\xeb\xfe\xeb\xfa\x5e\xb3\x2b\x34\xc9\xb9\xd7\xab\x54\xe6\x2b\x45\x64\x0d\xe5\x34\x27\x93\xcb\xe7\xe7\xa7\x2b\xe4\xee\x59\x7a\x11\x9e\x61\xad\xec\x1c\x73\x7f\x12\xca\x33\x96\x4d\xe2\x69\x5d\xdb\x31\x3f\x42\xd5\xb1\x14\x94\x50\x83\x28\xb7\xf0\xf4\xe6\x16\x06\xc5\xbd\xdc\x43\xc5\x30\x07\x9e\xc4\x98\x90\x98\x9b\xdb\x81\x92\xa2\x7d\xc1\xe5\xb4\xf1\x07\x27\x27\x61\x7d\x48\x35\x0a\xad\x02\x28\x01\x95\x36\x73\x0c\xab\x6e\xdf\xd6\xda\x71\x60\x69\xe7\x2d\xa9\x12\x95\x56\x38\xff\x42\xed\xc8\x59\x94\x4e\x06\x41\x4c\xb2\xa9\xde\x37\x39\xec\xc8\x25\x8d\xb9\x0f\x16\xb3\xd4\x06\x96\x68\x42\xd1\x2c\x32\x71\x8f\xca\xa7\x4b\x6f\x35\x2e\x91\xdc\x45\x50\xb5\xf7\x86\x98\x1f\x38\xdd\xab\xfb\x73\xb4\xed\xc6\x69\x7a\xeb\xdf\x89\x74\x7c\xfc\x93\x89\x3d\x8c\xd9\x64\x7a\xf2\x05\xc4\x19\xdb\xb6\x35\x31\xae\xce\x34\x04\x99\x5a\x3c\x57\xf1\x16\x75\xfc\x50\x99\x62\x85\x6b\xf7\x5c\x59\xb6\xe2\x3c\xde\xdc\x6e\x87\x84\x84\xf1\x49\x21\x35\x77\x09\x23\x2e\xc9\x67\x53\xcd\x59\x83\xd7\xb3\x72\x37\xf5\x0a\xd8\x9b\xe3\x0d\x4b\xef\x65\x0b\xac\x02\x1c\x58\x58\xed\x92\xe3\xf3\xd0\xc8\x42\xca\xd6\x02\xd3\xab\x1e\x23\x6e\x4f\xc3\x05\xd5\xa7\x86\x3b\xd2\xa3\x2d\x68\x3c\x9e\x1a\xef\xca\xee\x71\x36\x61\xb4\xe7\xc3\xe5\x00\x91\xc4\x07\xc2\xc7\x43\x58\x7a\x2b\xb2\x8a\xc2\x6e\xe3\xc0\x84\xf6\xf3\x92\xa8\xf1\x8d\xc5\x24\x98\x36\xfa\x6d\xac\xde\xb1\x6a\x61\x71\xe9\x5e\xb6\xfa\x6d\x5c\x7b\x2b\xfb\xc6\x6a\x45\x74\xf7\xc6\xb1\x72\xcb\x50\x05\xbc\x39\xf2\x55\x47\x45\xcd\xd0\x51\x11\x5f\x31\x43\x5d\x83\x72\xbb\x23\x8c\xda\xa4\x19\xed\x3e\xe9\xc3\xc8\xd7\x3e\xc2\x24\x9c\x71\x61\xcd\x27\xda\x85\x80\xdf\x0a\xa2\x56\x8a\xfd\xb6\xbe\x24\x49\xc1\x97\x4c\x60\xa1\x14\xac\x5c\xce\xe4\x17\xb8\x0a\x4a\xca\x2c\x3c\x53\x30\x12\xdb\x36\xfa\xb7\x40\x39\x09\xdb\x6e\x8b\x32\x05\xd0\x5c\xd7\x86\x6c\x60\x45\x77\xc4\xba\xa3\xca\xc0\x8f\xde\x80\xaa\x7d\x1e\xe9\x7d\x7e\xb8\xe4\x92\x6e\x6b\x5c\x68\xb9\xc2\xd1\x91\x1d\xdc\xa0\x5a\x23\x77\xf0\x66\xd7\x78\xa9\x9a\x6f\xde\xa3\xb7\x8e\x9e\x5b\x57\x78\xf6\x9e\x70\x16\xa3\xef\xa7\x50\x64\x5c\xfe\x2b\x1d\x65\x15\x22\x4a\xbf\x4f\xc4\x54\xb9\x7a\x39\xf1\x25\xbd\x9a\xa1\x58\x6e\xd5\xc4\xf9\xd8\x49\x9c\x57\xcf\xea\xaa\x89\xb1\xb1\x1c\xcb\x9d\x70\x80\xaf\x46\xab\xd5\x75\x2b\xc6\x47\xaa\xef\x47\x31\xec\x21\x61\xdf\x1d\x96\x84\xbd\xb3\xf8\x5a\x9f\x61\x25\x61\x2c\xb7\x97\xc2\xad\x21\x8f\x50\x2a\xb1\x58\xee\x38\x0c\x66\xdc\x85\x39\x9f\x4c\xb5\x9b\x30\xdf\xb8\x08\x53\x54\xac\xb9\x94\x4b\xd5\x16\x9a\xeb\x2d\x24\xc6\x13\x1f\xd2\x89\x3f\x9d\xb2\xb4\x1a\xcf\x6a\xbe\xab\x62\xe1\x02\x19\x99\x8d\xa5\x90\x8f\x1a\xf4\x13\x9a\xf6\x64\x4f\xd3\x3e\x37\xf3\xf6\x86\xd8\xf9\x20\x16\xa1\x98\x55\x55\x31\x62\xdb\x8e\x9d\xf8\x21\xfa\xcb\xc1\x66\x33\x6a\xf8\xce\x02\x05\xea\x42\x51\xeb\xe2\x17\x3e\x07\xb2\xc2\x89\x8d\x0a\x3f\x98\xd5\xc0\xbc\x21\xc8\x35\x15\x91\x33\xa6\xe4\x30\xe4\x41\x55\xa5\x65\xe5\x27\xa9\x78\x15\xc6\x7e\x66\x80\x01\xc5\x2a\x50\x41\xa5\xb3\xe4\x79\x82\xe4\x97\x2e\xee\x58\xa7\xae\xe4\x61\x4e\xc9\x73\xb7\xc1\x95\x76\x64\xf4\x2e\x25\x28\xe8\x62\xe5\x1d\xbd\xf4\x97\x20\x89\xc5\xc0\xb6\xad\x53\x09\x14\xcb\x20\xcf\xe3\x53\x97\x05\x5a\x02\x4c\xba\x94\x91\x2e\x05\xd2\xed\x32\xd2\xed\x56\x46\xf0\xa4\x52\x8e\x1a\xc1\xeb\x68\xaf\xff\x66\xeb\x75\xe5\x0c\x3e\xff\x4f\x93\xd3\xce\x74\xec\x4e\x3e\xff\xf3\xf4\x79\x65\x60\xc3\x36\xe7\x09\x0a\x3a\x96\x3b\xb4\xf0\x76\x4b\x69\xf1\xfe\x99\x78\x16\x1e\x37\x50\xd0\x7b\x63\x2c\xef\xb3\x03\xc8\x2e\x2e\x2e\xdc\xed\x16\xc5\x4e\x26\xd2\x0c\x05\x78\x4c\xe4\x3e\xc2\xf8\x4b\xa3\x3b\x90\x9d\x7e\xc9\xa5\xf5\x46\xb0\x36\x81\x7b\xa6\x70\xfe\x1e\x39\xb0\xd1\x1a\xb3\xca\xff\xac\x81\x33\x87\xb1\x20\xf6\x99\xae\x5c\x26\x3b\x3a\x6a\xba\x57\x46\x24\x88\x94\x87\xac\x9a\xce\x90\xd2\xab\xc8\x99\xc3\x13\x0d\x90\x02\x49\xf3\xe6\xf3\x83\x5c\x88\x0b\x59\x92\x3c\xc9\x71\x2e\xe9\x28\x6e\xcb\x73\xf9\x5f\x8f\x8d\x54\x24\x80\xfd\x08\x14\x87\x1c\xc2\x13\xd6\x3f\xb9\xa7\x68\x72\x3c\x9e\x04\x21\x4f\xa8\x08\x54\xe2\xb2\xeb\xb8\xfe\x0a\xbb\x43\x36\x09\xa6\x10\xed\x91\xee\xfa\xea\x4d\x35\x76\x94\xb9\xcd\x65\x96\x85\x06\xbf\x91\x7d\x6b\xe1\x78\x9a\xcc\x2c\x4d\xb4\x7b\x03\x49\xb3\x23\xcb\xea\xf8\x38\x97\x3f\xe4\x64\xab\x85\x4f\x74\x34\x91\x20\x4a\x57\x62\x96\x7d\x8c\xd7\xc9\x4c\x34\xc1\x50\x3f\x27\x23\x77\x80\x8e\x3a\xab\xcb\xed\x63\x9a\x22\x02\xfa\x27\x6b\xdb\x46\x01\xf2\xc1\x8a\x14\x03\xbd\xdd\x46\xc5\x8b\xa4\xe7\x15\xe1\xde\xe6\xdc\xb7\x6d\x94\x67\x8d\x4d\xae\x58\x7d\x1c\x5b\x56\x47\xfe\xb2\x54\x8b\x3e\xcc\xa1\xc9\x30\x96\xa5\x95\xb1\xbf\x32\xf9\xf4\x59\xa8\x1e\xf2\xb7\x5c\x51\x81\x21\xc3\xfc\xca\x74\xc8\x53\x31\xde\xe1\xd2\xbe\xa5\xe2\xe8\xa5\x98\xa4\x06\xad\x88\x26\xff\x51\xcb\x20\xd5\x6e\x1d\x26\xf1\x74\xbb\xf5\x6b\xd7\xc0\xb8\x22\xa0\x36\xb8\x6f\xc0\xbc\x81\x31\x55\x31\x3c\x88\x51\xda\x26\x87\xf1\x3d\x1a\xa5\x5d\x3d\x65\x88\xb5\xaf\x7d\xae\x0d\x21\x9e\x42\xec\x41\x6e\x2d\xd1\x6c\x5f\x9e\x2b\xf1\x15\x9c\x03\x18\xc7\x4e\xfb\xd1\xdc\xe3\x4a\x40\xfb\x9a\x93\x40\xd9\xa1\x96\x6c\x21\xb7\xc6\xd3\x73\x26\xe6\xad\x34\x96\x29\x41\x74\xdb\x8a\xb3\xa5\x48\x5a\xd9\xd2\x8f\x5a\x7e\x64\x48\xcf\x56\x9c\x28\x29\x42\x69\x46\x18\x2b\x27\xdf\x46\x75\xa7\xcd\xab\x3e\x8c\x1b\x5b\xfd\x0f\xaa\x55\xe5\xc7\x4b\xd9\x00\x06\xd1\x2c\xbe\x5b\xf9\x59\x70\x13\x8a\x56\x22\x66\x22\xb8\x17\x49\xc5\x4a\xb1\xee\x9b\xbe\xd7\x67\xbd\xbe\x5a\x80\xaf\x70\xc7\x02\x91\x3e\x75\x8a\x47\x6e\x5c\x04\xf0\xf9\xbe\xc9\x40\x6e\xd8\x02\x29\x8f\x21\xe4\x48\xd9\x6b\x40\xc4\x9f\xdf\x3c\x7b\x7e\x0b\x71\x2e\xcd\xb6\x7c\xc9\x4a\x18\xbd\x06\xfd\xe6\xb6\x95\x31\x8a\x9f\x66\xaf\xa3\xb9\xf8\xbc\xdd\x2a\x21\x6d\x99\x80\x0b\x8f\xad\x6d\xce\x9f\x23\x3c\x1e\x3f\x57\x9d\x40\x96\x85\x27\x64\x7a\x86\xc2\xed\x76\x8d\x95\xdf\xc5\xc3\xeb\x49\x39\x98\x14\x66\xca\xda\xb6\x20\x87\xd5\x65\x83\x9c\x65\x3d\x38\x64\xfd\x27\xab\x33\x73\x52\x05\x21\x3a\xd6\x9f\xd0\xb8\xfd\xd7\xbf\xa6\xd8\x02\xb3\x4d\x66\xf2\x10\x2a\x73\x00\x3e\xab\x76\x2b\xca\x5d\xe9\xcd\x40\xa8\x0c\x91\x6d\xa3\x4a\x0e\x3e\x33\x96\x04\xe3\xc8\x09\x64\x42\x27\x92\x20\xd8\xb8\x65\xce\x30\xac\xb5\xd6\x67\xe1\x07\xca\xb6\xcd\xd1\x92\xf9\x20\x39\x70\x2c\x94\x72\x72\x96\x9e\xef\xcb\x3b\x4f\xe9\x59\xda\xe9\xe0\x42\xc4\x54\x82\xfd\x74\x6a\xdb\x28\x9a\xa4\xd3\xdc\xed\x96\x24\x57\xa3\x9a\xab\x6a\xc9\x19\x7a\x3d\xe6\x69\x24\x72\x40\xb0\x1d\x90\xfb\x41\xba\x2f\x29\x2b\xf8\x3a\xce\xb3\xb1\xd2\x25\xdc\x6e\xc9\x73\xc1\x39\x79\x9e\x31\xd1\xe6\xc2\xb6\xb3\x36\xcf\x72\xec\x7a\x3c\x44\x4b\xae\x25\xa7\x65\x4d\x07\xd8\x54\x71\x4c\xed\xd2\xe1\x64\x9b\xf3\xec\xd0\xe9\x77\xc7\x62\xad\x99\xb2\x99\x4d\x45\xd6\xf2\xd3\x56\xb1\x41\xdb\x56\x4d\xfa\xb7\x49\x45\x66\xd4\x2e\x9d\x74\x8f\x6d\x45\xd6\xf5\xb5\x2a\x77\x7d\x6d\x05\xd1\x66\x57\x52\x36\xc6\x29\xb6\xa4\x2d\x90\x31\x04\xd8\x33\x20\x14\x68\xa4\xc2\x4e\xed\x33\xcb\x50\xa9\x53\x5f\xc4\x51\x8c\x51\x06\x93\x29\x86\x84\x6b\x1f\x92\x05\xbf\xaa\x74\x41\x2a\x5a\x15\x09\x6f\xbb\x07\xf7\x32\xd5\xd9\x0f\xb4\x80\x48\xb2\xc3\x45\x33\x3c\xd3\xe8\x41\xdd\x22\xa2\xcd\x0e\xda\x24\x37\x60\xc2\x30\x5b\x8a\xd9\x27\x16\x94\xf4\x84\x51\x8f\xd7\x54\xc5\x88\x8d\x14\x53\x78\x18\x3e\xe4\x49\x07\x2d\x23\xe3\x9b\xb4\x9f\xfb\x67\xf9\x7a\x1f\xa5\xca\xbf\xca\x49\x60\xdb\x99\x6d\xb7\xb3\x49\x3c\x95\xe7\x62\xa1\x5c\x21\x6f\xea\x51\x04\x5c\x68\xf6\x4f\xa6\x14\xd4\x76\x35\xf5\x47\x23\x06\x53\x88\x28\x97\x0f\x92\x63\x11\x4c\xaa\x8e\x07\xbd\x51\x55\x51\xb3\xe6\x48\xf2\x18\x11\x14\xe3\x8d\x50\xbe\x52\x05\x8f\xc7\x82\x55\x75\xc6\x02\x15\xf2\x48\x52\x44\x07\x43\xc9\x83\x1f\xd4\xba\xad\x71\x66\xd9\xe1\xe3\x1e\xeb\x95\x81\x82\xd1\x97\x8a\x0c\x81\xf4\x05\xff\x8c\x8a\xd7\x45\xf2\xa7\xa2\x2e\xaa\x4d\x16\xc0\xa0\x71\xd5\xe8\x51\x39\x48\xdf\x30\xdb\x9e\x12\x83\x44\x13\xeb\xfa\x7a\x16\x27\xe2\xf4\x97\xf4\x3a\x5d\xfa\x89\x98\x5f\x5f\x5b\xda\xc0\xb7\xf1\x0b\xdf\xec\xf0\xd9\x11\x3a\xab\xdc\xce\xba\x97\xf2\xa7\x04\xfd\xd9\x38\x63\x1b\x15\x00\xdb\x32\xb1\xc5\x52\x4b\x1e\x1f\xcd\xab\x16\xf1\xc6\x12\xc7\x3c\xc1\x5d\x3c\x17\x4c\x69\x50\x8e\xad\xd5\x3a\x11\x16\xb3\x34\x3c\xb6\x60\x16\xaf\x1e\x93\xe0\x76\x99\x31\xeb\xdf\xff\xcf\x16\x75\xc9\xa8\xf5\xad\x88\x82\xb4\xf5\x7e\x9d\x2e\x3f\xf9\x89\xb8\x6f\xa1\x5f\xc3\x38\x48\xe2\xd9\x27\x27\x59\x63\x4b\x45\x44\x30\xe4\x8d\xda\x4f\xb9\x4e\x18\x39\x0c\xaf\xb2\xcf\x2e\x74\xc9\xd7\xbb\xec\x2d\x44\x14\xe0\x2b\x92\xa0\xc9\xd6\xa0\x84\xf4\xdb\xad\x76\x1c\x80\x62\x9e\x20\x1f\x2b\x95\x60\x79\xea\xe3\xda\x7e\xd2\x4e\x54\x73\x25\x5b\x72\x18\x70\xe5\x98\x5b\x8f\x2f\x78\xdc\x6d\xb7\x95\xf1\x42\x4d\x57\x6d\x6c\x34\xf0\xd5\x1d\x48\x3d\x4a\x3b\x90\x42\x3f\x5f\x39\xab\xdc\xe9\xcd\x57\xc8\x48\xf6\x63\xb4\x54\xe5\xd3\xe6\x1a\xa2\xff\x77\xf8\x50\x2f\x2d\x36\x20\x35\xd4\x0a\x92\xcc\x18\x56\x2e\xd5\x03\x49\x55\xe4\x18\xb4\xd4\x56\x72\xb7\xdb\xf0\x82\xaf\xc7\x62\x6c\x59\x06\x56\x32\x14\xf3\x54\x31\xe0\x2f\xe3\xb9\x78\x91\xa1\x10\xe3\xf3\x7e\x9f\x8e\xbc\xed\x36\xbe\xe8\x7b\x5d\x32\xda\x6e\xc3\x0e\xd1\x16\x4a\xc8\xdf\xcb\xdc\x21\x32\xbb\xd7\xa5\xee\x76\xeb\x5f\xf4\x07\xdd\x5e\x77\x2c\xc6\x69\xce\xd1\x87\x98\xc5\x4c\xbe\x6b\xa1\x74\x08\x61\x87\x62\xe6\x9f\xaa\x12\x1d\x14\x9f\xaa\x96\xce\xcf\x89\x8b\x3b\x5e\xbf\xdf\xf5\xcc\x9d\xfa\x80\x91\xee\x40\x1b\x46\xaa\xb9\x3b\x2a\x5f\x1a\xba\x4f\x4f\x9d\xb6\x6d\x51\xdc\x6a\x76\x18\x44\xc3\x98\x2c\xfc\x07\xe5\xb7\xb8\x35\x8f\x45\x2a\x51\xab\x3f\x9b\x89\x55\xd6\x4a\xc4\xad\xf8\x5c\x89\xe6\x50\x4c\xb2\x01\x2b\xda\x6c\x73\xe8\xb2\xa1\x8e\xd9\x78\x54\x1c\x94\xcb\xef\x3c\x23\x0c\xea\x2b\x77\xaf\xcf\xad\xe7\xb7\xd5\xeb\xcb\x22\x24\x85\xd6\x61\x34\xad\x69\xb1\x4f\xca\xad\x73\xab\x93\xeb\xcb\x5b\x8a\xa0\x96\x14\x61\x87\x5b\x2d\xab\x93\x74\xfe\xcc\xad\x3f\x77\xf2\xfe\xe1\xc2\x08\x3b\x06\xcb\xfe\xdb\x3a\xce\xce\x2c\xdc\xf9\xb3\xf5\x67\x0c\x69\xc7\xba\x50\x71\xea\xcf\x9f\x5b\x9d\x4c\xbe\x1c\xd3\x79\xce\x19\x8e\xcd\xee\x24\xd0\xa2\x42\x5f\x8b\x0a\xdf\x2b\x51\x61\xd4\x60\xc5\xac\x4d\x9d\x65\x3b\xc5\xd5\xb0\x04\x6b\x4e\x16\x7f\x1f\x3f\x88\xe4\xa5\x9f\x0a\x84\xb7\xdb\xcc\xb0\xb2\x32\x63\x4e\x1a\x76\x95\xa0\x31\x67\xda\x82\xca\xf4\xee\x09\x1a\xbb\x4f\x5c\xf2\x14\x02\x6c\x52\x4c\xf3\x51\x6c\x56\x04\x20\xa8\xcf\x73\xc8\x2b\xb7\xec\x05\x1c\x8a\xc7\x56\xcb\x62\x26\x63\x8c\x61\xa6\x25\x59\xc1\x02\xcd\xce\x79\xb8\xdd\x5a\x16\xe7\xeb\x5c\xe2\x91\x9e\x68\x45\x96\xd9\x69\x08\xcb\x3c\xe4\xcd\x1a\x94\x46\xdd\x4c\x04\x21\x9a\x3f\x2f\x3c\xbf\x17\x13\xb5\xcc\x27\x62\x6e\xdb\x68\xc9\x97\xe6\xb8\xb8\x30\xc7\x18\xfc\xf1\xb2\x93\xb2\xb4\xb3\xd4\x47\x83\x30\xd2\x25\x45\xb4\x86\xe2\x88\xec\x07\xb0\x39\xe6\x88\xf2\xcb\xb0\x46\xaf\x66\x09\x52\x94\xf3\x1f\x08\xb8\x65\x41\xac\xb5\x1f\x83\x05\x8a\x25\x2c\x89\x25\x15\xec\x36\xf8\x05\x7a\x19\xaf\xa3\xcc\x10\xaa\x37\xa2\x15\x89\x5b\x65\x65\x68\x19\x39\x7f\x7c\xe1\x9e\xa1\xf8\xe2\xe2\x82\x13\xac\x4d\x86\x33\x8c\x89\x1d\xdb\x36\x0a\xe4\xf3\x49\x4d\xcb\x76\x1f\x18\x1c\x8f\xb2\xe3\x95\xc0\xa0\xe6\x1a\x41\x09\xfe\x7c\x6e\x4d\xac\x4e\xdc\xb1\xa6\x16\xa4\xbc\xc2\x1a\xf9\xf2\x40\x3c\xb3\xe4\xea\x9b\x54\x9d\xf2\x27\xab\xae\x19\xa8\x45\x41\xfa\x74\x2a\x55\x83\xa0\x41\xdd\xb0\xdd\x8e\xe5\x29\xc0\xdb\xad\xf5\xfb\x6f\xff\xeb\xbf\xff\x17\xab\xcd\xcd\x83\x4a\xde\xa9\x4d\xa6\x84\xef\xe9\x38\x43\x33\xe5\x7a\x70\x7a\x22\x39\x2b\x7f\x12\x4d\x79\x58\x3d\x64\x69\x79\x24\x7c\xa5\x75\xb8\x56\xb2\xcc\x66\x9a\x42\xf0\x2a\x7c\x02\x22\x29\x4d\x24\x78\xc1\xb8\xa2\x14\x2c\x0b\x63\xa0\x07\x1f\x42\xfd\xa1\xe6\x8e\x6a\xad\x26\x5e\x8b\x26\x9b\x0f\xe2\x01\xd5\x56\x71\x79\xf3\xd7\xec\xaf\xd1\x5f\xef\xff\xba\xf8\x6b\xd2\xfa\xf7\xff\xfa\xdf\xfe\xf7\xdf\xfe\xdb\x7f\xfd\xdf\x7e\xff\xed\xb7\xdf\x7f\xfb\xcf\xbf\xff\xf6\xff\xff\xfd\xb7\xff\xee\xf7\xdf\xfe\xfb\xdf\x7f\xfb\x2f\xbf\xff\xf6\x3f\xfc\xfe\xdb\xff\xf8\xfb\x6f\xff\xd3\xef\xbf\xfd\xcf\xbf\xff\xf6\xbf\xfc\xfe\xdb\xff\xf5\xfb\x7f\xfe\x3f\xfe\xef\xdf\x7e\xfb\xeb\x9a\xba\x74\xa8\xfe\x8f\xfe\xba\x5e\x88\xc5\xc2\x32\xbc\xd5\x61\x34\xa1\x82\x9f\xaf\x59\x89\x0f\x7a\x46\x51\x88\xe8\xbb\xee\xfe\xc0\xf8\x50\x1d\x62\x35\x89\xb9\xbe\xdf\x9c\xaf\x25\xa7\xf2\xfa\xee\x4e\xcc\x03\x3f\x13\xb0\xe4\x6b\xed\xfe\xad\x4c\x5a\xf0\xb5\xf3\x46\xa4\xa9\x7f\x2b\x5e\x2e\xfd\x28\x12\x21\xac\xf8\xda\xf9\x36\x48\x57\x92\x7b\x81\x3b\xee\xc2\xbd\xdc\x0e\xb7\x87\xd6\xf7\x1d\xc5\x95\x07\x0b\x74\xbf\x17\x79\x4f\xae\x50\xee\x16\x55\x2e\xbf\x11\x6e\xc9\x67\xc8\x90\x84\x7e\x37\xb5\x13\x99\x9b\x14\x2b\x35\x36\xbc\x3b\x99\xdb\xf6\x52\xc5\xc1\x6c\x56\x1c\x9a\x4c\x21\xe2\xe4\xec\xc0\x11\x73\x74\x86\x73\x2f\x3c\x05\x0f\x1d\x75\x3a\xe5\xc5\xc7\xfd\xa4\xd3\xb9\xab\xe9\xc1\xfb\x4d\x72\x26\x31\x16\x65\x88\x42\x81\x21\xc3\x3b\x48\xd0\x1d\x86\xbb\x5d\xd5\xb6\x46\xe0\x4d\x65\x60\x3b\x38\x50\xa8\x9c\xe1\x71\x52\xcb\x3e\x2b\xd5\x14\x63\x74\x0b\x02\x08\xc6\x3b\xb6\xb2\xed\x95\x13\xc5\x0f\x7b\x99\x55\x5a\x35\xdf\x62\x8c\x02\x8e\x22\x25\xf9\x58\x60\x47\xee\x45\x0a\x91\xfa\x25\x4e\x1c\xdd\xe9\x55\xe4\x37\x90\xf0\x18\x05\xce\x2a\x4e\x33\xb3\xb2\x10\xc8\x1a\xd8\xda\xf1\xe7\xf3\xcb\x7b\x11\x65\xdf\x07\x69\x26\x22\x91\x34\x5a\xbc\x56\x0a\xda\x76\x7b\xed\x04\x77\xb2\x89\x8f\x4a\x67\x22\x1d\xa3\x7a\x2f\xd7\xd5\x76\x90\xe8\x58\x16\x48\x58\xb3\x83\xc3\xc6\x90\x65\xba\x68\xc1\x8d\x64\x66\x31\x4b\xb8\x15\x47\x89\xf0\xe7\x8f\x69\xe6\x67\x62\xb6\x94\x20\xd6\x0a\xa2\x56\x88\x2c\xad\xa3\x61\xd5\x95\x03\xd2\x9a\xbe\x52\x25\x17\x76\x0e\x2b\xaa\xae\x73\xea\x24\xe2\x2e\xbe\x17\xba\xa0\x76\x1a\x51\x18\xb2\xef\xea\xae\x2e\x52\xed\xfb\x2e\x5e\x67\xc5\xec\x83\x8b\x6b\x62\x17\x25\x7d\x98\x83\xf6\xaf\xbe\x2c\x2c\x1f\x73\xff\xca\xda\x78\x59\xfb\xfa\x51\x8a\x40\x2a\x02\x82\x3a\xe2\xc7\x25\xf4\x1a\x71\xe9\x08\x52\xfe\x67\x08\x8a\x60\x52\x5f\x20\xe3\x91\x56\x65\xc2\xe7\xee\x38\x42\xa2\xa3\x02\xda\x04\x85\xe4\xd0\x60\x17\xd5\xf6\x51\x81\x7d\x81\x34\x9f\x08\xf1\x54\xa8\x63\x56\xaf\x3f\xdc\x93\x8a\x1f\xad\x80\x47\x86\x6c\x90\x74\x51\xd0\x80\x36\x7f\x4a\xe2\xe8\xb6\xa5\x4f\x6b\x85\xf0\xac\xa1\xc1\x32\x0e\x11\x39\x8c\x05\x56\x31\xf2\x90\xb4\xc6\xd7\x5b\x92\xb6\x82\xf4\xad\xff\xd6\x18\x6a\xb8\x0c\x89\x0b\x77\x1c\xb1\x04\xa3\xc2\x5c\x80\x1c\xc6\xc5\x2a\x24\x5b\xfd\xaf\x64\x5f\x92\x7d\xe2\x39\x57\x04\x24\x4f\x85\x9a\xaa\xac\xfb\x91\xc5\xae\x38\x57\x94\x8b\xac\x66\xfb\xc0\x83\x06\x73\xf7\xd6\xfb\x89\x38\x4e\x5f\x1a\x88\xb1\x67\x4e\x6a\xa3\x51\x75\x7e\x29\x8c\x20\x7d\xc2\xb5\x9c\x8a\x4c\x59\x98\xb3\x92\xc3\x60\x39\x35\x8a\x2e\x58\x20\x25\x8a\xaa\xf0\x42\x83\xaa\xe8\xa2\x24\x7f\x3c\x37\x57\x02\x33\x88\x91\xf4\xba\x06\x33\x1a\x5b\xca\x6e\x1e\x58\x82\xf4\xb4\x27\xe1\x81\x6b\x3c\x09\x93\xbe\xf6\x24\xac\x96\x61\x95\xd3\xd9\x77\xea\xc1\xc3\x70\x9f\x07\x40\xbb\xcd\x95\xcc\x6e\x8c\x7c\xe9\xd1\xdc\x73\x5c\x1b\xd1\xe7\x43\xae\x7d\x73\x69\x1c\x8a\x7c\x36\xa6\xae\xef\x72\x5b\xce\x8f\xa5\x86\xd6\x55\xee\x5b\xe4\x8d\x91\xfa\xc0\xfb\xdc\xb3\xd5\x0b\xe3\x14\xfd\xa5\x56\x51\x81\x4f\x4a\x50\xd4\xc7\xf0\x41\x85\xbf\xa6\x18\x7e\x31\x56\xa3\xdf\x1a\x8f\xc8\x6f\xf3\x88\x19\xaf\x65\x91\x21\x86\xef\xe5\xef\x00\xc3\x2b\x23\xd3\xfb\x95\x2b\xa9\x26\xfc\xc0\x5f\x39\x0b\xf8\x86\xff\xea\x2c\xe0\x1f\x78\xe4\x94\x47\x13\x7e\xe4\x91\x53\xb0\x8d\xf0\x27\x1e\x39\x3f\x04\x51\x36\x54\x82\x4c\xf8\xdb\xbe\x55\x3a\xfc\xc4\x53\x6d\x6d\xfe\xcd\x7a\xb1\x10\x09\x7c\xc7\x53\xe7\x5b\x3f\xf3\x7f\x0c\xc4\x03\xfc\xcc\x5f\x20\x17\xc3\x5f\xf8\x0b\x44\x31\xfc\x23\x7f\x81\xba\x18\xfe\x89\xbf\x40\x3d\x0c\xff\xcc\x5f\xa0\x3e\x86\x7f\xe1\x2f\x90\x87\x41\x08\xfe\x12\xb5\x5d\x0c\x99\x7a\x20\x18\x12\xc1\x3f\x68\xaf\x21\x29\x44\xf2\xf9\x93\x78\x4c\x21\x90\x4f\xc6\xa0\x10\x62\xc1\xff\x56\x0a\xe9\xdf\x2d\xc0\x97\x09\x89\x0a\x00\x05\x69\xf9\xfc\x21\xb8\x5d\x66\x10\xca\x84\x5f\xe2\x20\x82\xb5\x7c\x4a\xe3\x24\x83\x99\x7a\x52\x61\x81\xe6\xf2\xb1\x50\x95\x5b\xea\xb7\x9a\x47\xc2\x85\xe0\xef\x6b\xa6\x81\x2b\x95\x50\x8f\x4e\x73\x27\xf8\x1b\x64\xc9\xa9\x99\x5f\xd7\x14\xd0\xe1\x5e\x7d\x99\x8b\xc5\x5e\xfa\xad\xe0\xbe\xf3\xf2\xdd\xdb\x8f\x57\x1f\xe0\x46\x3e\x5f\xfd\xfc\xfe\xf2\x5b\x78\x94\x8f\x3f\xbe\xbe\xfc\x09\xae\x05\x7f\x81\x48\xdd\xc1\x54\x71\x3e\x3f\x0a\xf4\x09\x09\x10\x93\x7b\x31\x55\xf4\x09\xc6\xf0\x20\x1a\x09\xf6\x16\xe1\x5c\x91\x0c\x7f\x52\x86\xa8\x72\x59\x89\xa7\xd6\x0e\x4d\xc8\x14\x3b\x37\x6a\x05\xf1\xc4\x9d\xca\x4a\x2e\x05\x6f\xb7\xff\x64\xdb\xed\xf6\x9f\x2a\x77\x43\xa9\xc8\x6c\xbb\x5e\xb9\xae\x91\x68\x1f\xe3\x4a\xac\x87\xe1\xb3\x68\x8a\xc0\xc2\x17\x86\xa5\x4a\x24\x4b\x95\xfc\xff\x72\xa9\xff\x3f\xe4\xf8\x20\x5e\x2c\x52\x91\x55\xf0\x41\xb2\x83\x77\x62\x1f\xf9\x5c\x2b\xf3\x9a\x1b\xa1\xa3\x55\xe6\xf0\xd0\x18\xa8\xff\x58\x75\x8a\xe3\xb7\xd4\x42\xe8\x18\x60\x6d\x49\x8b\x7c\xdc\xef\x58\xb0\x40\x6d\x59\xe1\x76\xdb\x46\x77\xa6\x4a\x9c\x57\x65\xbd\xce\x1a\xab\xaa\x9a\x16\x54\x7a\x9b\x07\x3c\xdf\xc1\xd5\x7e\x33\x26\xc7\x9b\xfd\xd5\x82\x37\xfb\x39\x8b\x20\x23\xdc\x85\x88\xe7\x7a\x62\x10\xf0\x8f\x42\xe9\x61\x9d\x45\x17\xc9\x19\x0e\x26\xc9\x94\x67\x93\xa4\xd3\x99\x96\xb8\x13\xde\x8b\x03\x0f\x22\x3f\xa8\x87\x23\x91\x40\xb4\x6f\xf9\xf9\x24\x99\x2a\x63\xaf\x17\xe2\xc8\xbd\x5b\x00\x5a\xf8\xf6\xa0\xed\x02\x0f\xf4\xf4\x67\x7c\x7d\x24\xf6\xc9\xbc\x94\xfa\xce\x60\xc9\xaf\x50\xaa\xc3\xbb\xa8\x6b\x9f\xa5\x6d\xb7\x2f\xd1\xd2\x38\x2a\xf2\xf9\xd2\x68\x2e\x49\xd8\x3e\x99\x42\xc6\xdd\xb3\xb6\xf2\xb8\x52\x73\x2c\x94\x75\x3a\x38\xd2\xc4\x7d\x6c\x02\x20\x9f\xa4\x3c\x52\xa1\xdc\xe6\xb6\xbd\xbe\xa0\xb6\x8d\x66\x3c\x44\x33\xa8\x06\x8d\x04\xaa\x4c\x59\x5c\x48\xf8\x0a\x15\x61\xec\xf5\xbc\x2a\x33\xf2\x04\x9f\x25\x17\x99\xaa\x3e\x98\x64\x53\x3e\x1f\xcf\x50\x3a\xc9\xa6\x90\x61\x26\x7f\x2b\xf3\xfc\xb2\x46\x51\x96\xfe\xc3\x5d\xc8\x0e\x27\x27\x29\x5a\xc8\xf0\x59\x76\x21\xce\xb0\x92\xd9\x97\x7d\x13\x95\x45\x4c\x76\xf0\xc9\x1c\xbc\xfa\x29\x5b\x8a\xd2\x84\xfc\x4f\x3a\x0c\x08\x86\x0f\xa2\xc1\x92\x77\x99\x7b\x45\xf9\x24\xc6\x33\x53\xea\x9d\x30\xc2\x0d\x96\x3f\xd5\xf0\xf1\x2f\x82\x6f\xca\x18\xa9\xac\x71\xeb\x7e\x5f\xaf\x09\x94\x62\xc2\x57\x45\x43\xc5\x3b\x10\xf7\x22\x79\x6c\xb2\x9a\xfb\xa7\x6a\x85\x5f\x17\x4f\x07\xef\x60\x11\x84\x61\xc3\x76\x7e\x6d\x06\xde\x38\xc6\x45\x10\x66\x22\x69\xea\xc3\x95\x59\x9e\xbf\xfc\x81\xbe\xa8\x8a\xa3\x79\x53\xb5\xff\xfc\x07\x87\x16\xcd\x15\x3a\x6b\xaa\xf2\x5f\xfe\x58\x95\x0d\x41\x8d\x7e\xfe\x43\x35\x05\x1a\xcf\x36\x75\x2d\x13\x7f\xb0\xc6\x59\xb8\x9e\x8b\xa6\xa0\x28\x2d\xf1\xc7\xaa\x94\x28\xbe\x61\x73\x84\xe2\xa9\xdd\x51\xa1\x22\x1a\xca\xc6\x4f\x96\xbd\xf3\x57\x4d\xdd\xbf\xfe\x63\xdd\xd7\x24\x4b\x43\x27\xfc\x27\x3b\x51\xa1\x74\x1a\xca\xa6\x5f\x28\x7b\x2f\x92\x54\x34\x86\x07\x83\x8c\xe7\x65\x4a\x80\x56\xb2\x5a\x28\x7b\xae\x9c\xc6\xbb\x67\xd1\x79\x72\x86\xb5\x33\xf4\x49\x34\x05\xfd\xdb\xe9\x4c\x75\xca\xe9\x69\x66\xd2\xb2\x6a\x54\xde\x65\x90\xee\x20\x8d\xef\x1a\x2d\x6a\xff\xf1\x0f\xcd\x9f\xa4\xeb\x9a\x6a\x5b\x8b\x7d\x00\x26\x33\xaf\x6f\x14\x42\x6f\x0c\xb8\x53\xe4\x8c\x0a\x17\xab\x10\xf0\x7b\x85\x85\x2b\x28\x1f\x7d\x42\x09\x24\x0a\xa3\x63\x94\x18\x2a\x0a\x12\xe7\xe6\x31\x13\xef\x14\x41\xd3\x09\x9e\x25\xce\x37\x3f\x5f\x5d\x7e\xbc\x7e\x7f\xf9\xe1\xfa\xf2\xfb\xcb\x37\x97\x6f\xaf\x60\x55\x89\x0d\x9d\x8d\x23\x76\x8f\x32\x88\x30\x3e\x0d\x14\xa7\xf5\xed\x11\x12\x22\x87\x56\xfb\xa0\x1d\x94\xc1\xc9\x0e\xde\xd6\x91\x78\xfe\xd9\xb0\xe7\x9f\x05\xaa\x4e\x1b\x48\x42\x5b\x87\xb5\x32\x03\x8c\x34\x92\x0f\xf8\x0a\x45\x05\x92\x8c\xb5\x4f\xc2\xa0\x93\x5d\x24\xfb\x34\x5b\xc9\xc3\x6b\x81\xf7\x79\x70\x86\xf5\x42\x77\xe2\x29\x8f\x26\x71\xa7\x33\xdd\xc1\x6b\xc1\x37\xb9\x1f\x90\xc3\xed\x19\xec\xa3\xa9\x9d\xf6\x23\x72\x98\x33\x3a\xcc\x69\x1c\x91\x1c\xe6\x4d\x0e\xf2\xee\xe0\xfb\x23\xb3\xaa\x69\x4a\x31\xb9\x11\x53\xdb\xce\x8d\xd6\x0b\x2d\xb2\xcc\xb6\x75\xf8\x06\xdb\x36\xa2\xe7\x4e\x86\x39\x2f\x74\xfb\x76\xf0\xea\x48\xbd\xdf\x4b\xa2\x2d\xe3\xb7\xda\x6e\x08\x8f\x67\x88\x6a\xe3\x1f\xf6\x8d\x16\xcc\xc0\xaf\x87\x34\x9b\x91\xaf\xa3\xbd\xc2\xb6\x7d\x8d\x12\x49\xf9\xa2\x04\x2c\x13\x82\x00\x6f\xb7\xea\x55\xc5\xfc\x30\xcf\xa9\x7e\x56\x96\x7a\x85\x8e\x82\xf9\xf6\x90\x04\x99\x76\x23\x6a\xdb\xed\xc4\xc9\x5f\xcd\x57\x51\x68\xea\x9b\xef\x65\xc2\xf8\x07\xd3\x3b\x86\x94\xc6\x62\x62\x3c\x3a\x0a\xbc\x3b\xb9\x15\xdb\x2d\xfa\xd5\x59\xf0\x57\x02\x5e\x39\x0b\xfe\xab\xc0\x10\xa3\xd8\xf9\xd8\x89\x9d\x57\xcf\xda\xb7\xa2\xd4\xac\xdf\x1c\x33\xc0\x62\xaf\x24\x0b\x56\xb1\x3b\x7b\x64\xbf\x0a\xe5\x98\xa9\x4a\x05\xcd\xcd\x92\x6a\x36\xc3\xb6\xd1\x5c\xf0\x65\x13\x11\x14\x8a\x9a\x6a\xa3\xda\xfd\x3f\x08\xbe\x44\x1b\x49\xed\xe0\x93\x25\xfa\x41\xc0\x6b\x81\x61\x2e\x1f\x16\xf2\xd9\x30\x9b\x18\xd4\xb7\x8d\xe2\x0a\xd9\xb7\x42\xc5\xe3\x7a\x2b\x60\xd6\x14\xe3\x0a\x6f\x76\x85\xa3\x7a\x36\xdf\xf7\x61\xcf\x3e\xc8\x11\xbc\x17\xb2\x3e\x4b\xc3\x05\x0b\xac\x1b\xab\x4c\x2b\x40\x84\x05\x56\x5c\x4f\xff\x3e\xb7\x3f\x0a\xcb\xf4\xc2\x26\x49\x58\x18\x7e\x90\x49\x2b\xf1\x14\x6d\x2f\xb7\xf3\x6e\x77\xd4\x2d\x56\x9a\x2b\xc3\xce\xb8\xe8\x20\x14\xf2\x76\x3b\xc4\x63\xeb\x65\xe8\xdf\xad\xc4\xdc\x62\x96\x85\x3b\xc6\xbb\x11\x2c\xb9\xda\x63\x1d\x01\x0b\xae\x76\x58\x47\xc0\x3d\x8f\x26\xb3\x29\xdc\xf2\xfb\xed\x76\xb3\x83\x1b\x7e\x6f\xdb\xef\xd0\x3d\x86\x07\xde\xbe\xdf\x6e\xdb\xbe\xf3\xe2\x9b\x1f\x75\x14\xa5\x2b\xf9\xed\xbe\x22\x37\x78\x53\xed\x8a\xe1\x53\x92\xa3\x11\x0b\x6b\x59\x8d\xd9\x96\x73\x3d\x2f\x75\x24\xef\x27\xcb\x29\x4a\x9e\x65\x9d\xc8\x89\xe1\x41\xe0\x5d\x4e\xd3\xef\xc7\x53\x6b\xac\x13\xa2\x52\xeb\xf4\x7a\x7e\x12\xda\x36\x8a\x38\x32\xa2\x38\xe5\x30\x05\x45\x4a\xac\xea\xb2\xe8\x82\xf6\xfb\x63\xda\xef\x33\xda\xef\xdb\x11\x86\xc0\xb9\x9f\x2c\x74\xdb\x81\x13\x43\x54\x6d\x5d\xe1\x98\xf2\x0c\x29\x7b\xfd\xdd\xc9\xc3\x18\xdd\xf3\xb4\x6e\xe4\xae\xbd\xb3\xad\x91\x80\x7b\x98\x81\x75\x3d\x37\xd1\x45\x62\x1d\x5e\x1b\x96\xdc\x85\x85\x86\xc2\x12\x08\x98\x70\xc5\x49\x55\xd5\xec\xa7\xed\xd6\xaa\x48\x62\x2c\xce\x51\xc8\x1f\x65\xe6\xed\xd6\xfa\xa8\xd4\x76\xea\x9f\xc3\xc2\x3e\x51\xf3\xd2\xc9\xf8\x8d\x40\xf7\xf2\x88\xbf\x30\xa7\x47\xbe\x9c\xc4\x3c\x81\x85\x44\x1c\x11\x98\x08\xdf\xb7\x5c\x63\x37\xbd\x45\x4f\xaa\xf2\x60\xad\x81\x70\x7b\xc8\xda\x97\x68\x22\x58\x20\xe4\xf3\xdb\xd3\x05\x3e\x77\x8f\xe6\x2a\x82\x9e\x23\x9f\xaf\x50\x80\x9f\x65\xb8\xb3\xb8\xb8\x3d\x5e\x6b\xca\xfd\xe7\x99\x2e\x95\xf2\x3b\x94\x28\x03\x12\xf1\xd0\xfa\x09\xf9\x3c\x7d\x66\x82\x77\xce\x91\x50\x73\x0b\x9b\x1b\x16\x43\xcc\x16\x10\x32\x1f\x04\x4b\xe1\x9e\xc9\xcc\xdf\xa1\x18\xef\xf0\xd9\xf2\x3c\x3d\xc3\x6f\x90\x80\x65\xa7\xa3\xf8\xac\x2b\x5e\xd9\xba\xfc\x33\xfa\x41\x01\x8e\x2b\xa8\x46\xbc\xb0\xe0\x1e\x63\xb6\xe7\xf3\x5c\x1b\x16\x35\x49\x4c\xee\xd1\xa9\xf9\xf6\xed\x61\xb4\xaa\x7b\xd0\x59\x74\x28\x58\xfd\x4c\x9c\x7e\xfe\x28\xf0\x4e\xc5\x79\xdb\x6e\x8f\x6d\x24\xb5\x75\x4e\x2a\xf6\xa9\xf7\x30\xc3\x20\x77\xce\xf8\x4b\x7b\x26\x7e\x72\xcf\xc4\xe3\x82\x9f\x0f\xc6\xb2\x37\xb7\x28\x01\xb3\x37\x20\xc8\xb5\x12\xdb\x9c\x47\xfb\x5f\x31\x33\x09\x98\x3d\xb5\xdd\x4c\x2e\xb9\x82\x6a\xea\x7f\x46\x37\x6d\xce\x0f\x55\xdf\xc7\x1f\xd1\x6d\x61\xac\xf9\x11\xdd\x60\xcc\x64\x4a\x3d\x80\xa3\x6a\xe7\x7e\xbb\x9d\xa3\x7b\x10\x70\x3b\x11\x53\x55\x67\x75\x31\xaf\x20\xd9\x6e\xd1\x55\xcd\xaa\xe3\x1e\xeb\x7d\xfe\x9e\x5f\x4d\x16\x62\x0a\x2f\x78\xbb\xfd\xde\xb6\x51\xe9\x51\xee\xbd\xf2\xb0\x96\x2b\x6d\xe9\x37\x0c\x2f\x79\x81\x45\x4e\x64\x93\x77\x42\x19\x0b\xcb\x9d\x72\x23\xe4\x02\xc8\xa7\xc7\x32\xf1\x5e\x05\xc0\x42\xe1\xd8\xac\x30\x9e\xac\xc4\x94\xf3\x19\x5b\xa9\x8e\x5f\xe1\xed\xf6\x07\x74\xf5\x04\x8c\x9f\x49\xe0\x7e\x39\x99\x4d\xf9\xbd\x42\xb8\xdf\x75\x62\xe7\x27\x85\x74\xd1\x7d\x9b\xdf\xaa\xa8\x5b\x0a\x11\xc3\x0c\x36\x07\x04\x28\xcb\x76\x55\x3c\x5d\xdf\xa3\xb7\x4e\xbc\xc8\x57\x45\x5b\xc7\xcd\x60\xb3\x48\xe2\x3b\xf6\x42\x40\xbc\x60\x2f\x25\x6a\xb3\x0e\xea\xb4\x64\xbf\xe5\x84\x5f\x35\x7d\x94\x9b\x44\x36\xf8\x1e\x66\x12\x0b\xc3\x5b\x34\x33\x09\xaa\x07\x97\x42\x36\xa2\xf1\xed\xae\xfa\xa1\xfd\x02\x66\x0a\x5b\x27\xdb\xed\x55\x21\xa4\xe5\x7c\x2e\xd4\xda\x15\x09\x73\x51\x2d\xd5\x74\xe8\x08\x2e\x8c\x86\xf5\x90\x72\x34\x5f\x6b\x0f\x35\x89\x4f\x27\x04\xe8\x74\x4f\x26\x8c\x70\x9b\xeb\x8a\xd5\x57\x7c\xf0\x59\xc7\xa6\xaa\x57\x77\xb5\x97\x4b\x4f\xb3\xae\x60\x87\x75\xb7\x9a\x08\x89\x5f\xe4\x42\xbf\x18\xbf\x67\x2f\xe5\x3c\xbc\xd0\xb3\xbc\x10\xf0\x32\x77\x3b\xd3\xe8\xb3\xa7\x6e\x28\x97\xbb\xcd\x33\xd6\xe6\xfb\x21\x62\x69\x9f\x11\xda\x57\x97\x93\xa4\xdb\x57\x17\x85\xa4\xeb\xc1\xde\x8d\x5c\x61\x6c\x9b\x5b\xa9\x93\x5e\x97\x91\x5e\x17\x48\xaf\xc7\x48\xaf\x50\x3f\x2d\xdc\xf1\xe5\xfe\xbb\x89\x47\x19\xf1\xf2\xb0\x6e\xdd\x01\xeb\x0e\xa0\x3b\x64\x85\x0d\xab\x0e\x33\xa9\x4c\x1c\xea\x01\x6a\xab\x01\xe0\xf6\xad\x51\x8c\x27\xf0\x6a\x18\xb8\x8a\xb3\xbf\x6a\x10\xdb\x52\x1d\xba\xd7\x3d\xbc\xbc\x3a\x50\x22\xaa\x5e\x30\xe5\x8a\xd0\xc3\xc1\xde\x05\xd3\xc0\x35\xce\x3a\x89\x89\x54\xe9\x51\x7d\xc1\xd4\xed\xeb\xfb\x25\x75\x9d\xb4\xcc\xaf\x93\x16\xf9\x75\xd2\xaa\xbc\x02\xba\x2b\x34\x96\xef\xcd\xb5\xcd\x6d\xee\xfd\xf3\x86\x47\xb5\xdb\x95\x47\x1e\x95\xb7\x2b\xd7\x3c\x72\x24\x85\x02\x0f\xf5\x1b\x9c\x4b\x1e\x39\xaf\xa3\x45\x10\x05\xd9\x23\x7c\xe6\x37\xf0\x8e\x5f\x3b\xfe\x4d\x0a\x1f\xf9\xb5\xf2\x22\x77\xc5\xaf\x35\xf7\x0e\x6f\xf8\xb5\x13\xc6\xb7\xf0\x9e\x5f\x3b\xdf\xbf\xa5\xf0\x82\x07\x63\xeb\xfa\xc6\x62\x05\xb9\xfa\x52\xa5\x84\x32\xa5\x42\x94\x7e\x52\xa9\xb1\x49\x35\x24\x6c\xe9\xdf\xe7\x03\xda\x8f\x21\x0d\xbe\x3a\x27\xfa\xb6\x21\x91\x53\x37\x7c\x96\x9c\x66\xa7\x04\x42\x8e\xc8\xf9\x79\x8a\x4f\x09\xac\x79\x78\x71\x41\x60\xc6\x69\x57\xb1\xc4\x1f\x95\x83\xbb\x1e\x3e\x55\x0f\x83\x01\x66\x2e\xcc\xb9\x2b\x67\xf3\xdc\xdd\x6e\x5d\x1d\x97\x83\x3c\x17\xe7\xee\x98\x30\x57\xa1\x78\x24\xf8\x3b\x24\x30\x6e\x73\xb1\xdd\x0a\xce\xf9\xe5\x18\x05\x5c\x39\x6f\x23\xcc\x85\x88\x87\x98\xa1\x88\x5f\xa1\x37\x48\xe0\xe7\xef\x31\x88\x67\x28\xe6\xaa\x01\x49\xe2\x11\x49\xfa\x9d\x9e\x42\xfc\x8c\x53\x0c\x48\x74\x78\xd4\x59\x5f\x70\x32\x9e\x3d\x8f\xd9\xec\x99\xcc\x47\x4e\xd7\x18\x3f\x8b\x2f\x38\x95\x79\x3b\x1d\x88\x9f\xcb\xbc\x2a\x5f\x28\x1b\x33\xad\x98\x82\x28\xe0\x48\x3c\x8b\x4f\x09\x56\xa5\x33\x99\x93\xaf\x31\x93\xbd\x52\x29\xeb\xea\x27\xee\x62\x7c\x96\x5d\xf0\xe1\x99\x3f\x99\x77\x3a\x53\x2e\xa9\xcc\x00\x82\xe7\x9c\xf6\x3d\xc8\x4e\xf9\x10\x9f\xa9\xd8\xe1\x3c\x3a\x3f\xcf\xb6\x01\xa4\x1d\x9e\x9d\xa5\x17\x6e\x35\x7f\x04\x91\xce\x9f\xaa\xfc\xb9\xfc\x68\x72\x7a\x3a\x9f\x6e\x39\xa1\xc3\x67\x4b\xf0\x77\xc5\x6a\xfd\xb2\xb7\x5a\xc5\xd2\xc4\x6a\x69\x02\xb9\x34\x3e\x8f\xe5\xd2\xa4\x3c\x38\x1d\x40\xc8\x13\xb5\x5a\x62\x12\x9e\x9e\x4e\x61\xc6\x09\x1d\xd8\x6b\x1d\xdf\xe9\xe2\x82\x0f\x54\x7f\x66\xb2\x07\xcf\x66\x1d\x15\xad\x37\x3c\x3d\x35\x9d\xd1\x9d\x9f\xd9\xb2\xe6\x53\xb5\xea\xb3\x8b\x0b\x7e\x9a\x96\x03\x89\x54\xc1\x68\xbf\x60\xb0\x40\xae\x0a\x1a\x30\xe3\xe4\xd4\x2f\x22\x48\xcc\x38\xe7\x71\x4e\xc7\x46\xe3\xb7\xfe\x5b\xb6\x1e\x9f\x5e\xb2\xcb\x93\xa8\xc3\xcd\xac\xce\x4e\xb9\x6f\x8c\x2e\xd0\x5a\x79\xef\xc3\xcf\x22\x35\xe5\xb3\xd3\x0c\x97\x13\xf1\x6d\x2d\xe8\x73\x77\x7a\x7e\x4e\x7b\x5b\x31\xa1\xd3\xf3\x73\xe2\x6d\xc5\x84\x4c\xcf\xcf\x87\x5b\x31\x71\xa7\x65\x99\xb7\x65\x99\x89\x9c\x7b\x51\xf9\xf6\x7a\xff\x1b\x88\x8b\x8b\xa1\x4d\xfb\xfd\x4a\xa6\xef\x8f\x66\x92\x0f\xc4\xcb\x9f\x68\x6f\xaf\xe0\xab\x4a\x6f\xe5\x81\xeb\x53\x18\x56\x06\xf3\xeb\xde\x67\xda\x85\x5e\xe5\x73\xce\xce\x6f\xee\x50\xd5\xc2\xe1\xc9\xab\x22\x73\x4f\x54\xd4\xf1\x4d\x5d\x93\x37\xe0\x0b\xd4\x49\x70\x2e\x29\x12\x93\x97\x53\x43\xaf\x3f\xe4\xf4\xba\x12\x20\xb7\x73\xde\x86\x8b\xc9\x8b\xa9\x73\x7d\x03\x3e\x0f\x3a\x62\xf2\x69\x0a\x29\xcf\x9d\x7a\xf8\xe0\x77\x4a\xf5\xc8\x68\x9c\xb2\xd4\x31\x72\x4a\x54\xe9\xc2\x3f\xa0\x22\xda\x0e\xc4\xb9\xca\x62\xd1\x0d\xff\x4b\xdd\xc8\xc5\x9c\x69\xd1\x95\x90\xfb\xba\x2b\x6b\x1e\xa1\x4e\x20\x61\xb9\x7b\x36\x3b\xcf\xce\x66\x9d\x0e\x4e\x27\x61\x67\x36\xe5\xeb\x49\x3c\x9e\xb1\xec\x74\x76\x4a\xa6\x3b\xd9\x8c\xe4\x73\x35\x4b\xb6\xae\x61\xfa\x1b\x4d\xff\x6f\xb7\x7b\xe9\x2a\x22\xac\x61\x00\xb6\xdb\x75\xd3\x5d\xad\x0e\x1a\xab\x33\x16\xa4\xff\x8d\x8a\x63\x09\x35\x92\xbd\xcd\x6f\x14\xf9\x29\x29\x87\x42\x6c\xfb\x23\xfc\x89\xa3\x9b\x26\x7d\x0e\x13\x67\xfa\x46\x57\xf8\x19\x2d\x94\x62\x47\x35\xea\xec\xe7\xca\x76\xf8\x1b\x5f\xa1\xcf\x18\x7e\xe2\xee\xd9\xdf\x72\xc1\xeb\x4f\x67\x18\xfd\xc8\xff\x36\xf9\xa9\xd3\x99\xe2\x20\x6a\xdd\x6c\xb7\x29\xba\x81\x1f\xe1\xf3\xe4\xc7\x29\x3e\x89\xb7\x5b\xf4\xa7\x1a\x39\x7d\x83\x77\xb2\x4f\xdf\xe9\xf0\xba\x3a\x1c\x2e\xa2\x92\xb6\xaf\x06\x8c\x53\xfa\x89\x51\x36\x3c\xf9\x2e\x7f\x42\x2e\x50\xd2\x1b\xf4\x86\x5d\xaf\x37\xc4\x50\xa6\x93\x32\x7d\x84\xa1\xfd\x9d\x73\x9b\x17\xc0\xb6\x5d\xbe\x11\xbc\xdd\x86\xb5\xd8\xb5\x1b\x53\xc3\x9e\xb8\xf7\xe7\x4a\x90\x63\x01\x99\x3c\xf6\xf2\xbc\x69\xd9\x81\xd2\x7e\xf8\xda\x02\x3b\x49\xdb\x6b\x62\xac\x3e\xfb\xf9\xb4\xd7\xd7\x2e\x97\xca\xaa\x7b\x71\x7d\x19\x7b\xc3\xef\xcb\x8b\x3e\x8d\x2e\x33\x0c\xae\x76\x51\x37\x79\x39\xe5\xd9\x0e\x1e\x0f\x24\x86\xa6\xfa\x47\xb0\x72\xea\xc0\xc2\x30\x43\x42\x36\x58\xa6\xe4\x54\xcd\xe4\xe5\x14\x02\x3e\x37\x2a\x5a\x81\xc4\xa5\xc1\x45\xb4\x7f\x48\xca\xcb\x78\x75\xa0\x51\x52\x89\x43\x31\x8e\x4e\x03\xb6\x94\x3c\xda\x61\xb9\x92\x27\x57\x5d\x7e\x31\xe5\x3a\x46\xd4\xe4\xd3\x94\x07\xc5\x30\x92\x1d\x04\xb6\x8d\x7e\x40\x37\x7b\xe2\xae\xeb\x50\xc9\xb6\x1e\x2b\x12\xb3\xeb\x9b\x22\xe9\x48\xce\xaa\x1c\xed\x3a\xb6\x30\x86\xbd\x85\xbf\x3d\x58\xf8\xe2\x44\x7c\xa3\xe7\x8e\x80\xc0\x13\x77\x9a\xaf\xa5\xf2\x21\xba\xbf\xf6\x47\xca\xa8\xbc\xaf\xa3\x8c\x78\x0d\x61\xf7\x4d\x56\x5a\xbd\xc3\x50\x31\x34\x0c\x42\xca\x0c\x5a\x51\x91\x38\x24\xa2\x91\x40\xbf\x68\xfd\x8f\x54\xd9\xaa\x56\x99\xf7\xad\x4b\x9b\xc6\xf1\x2d\x32\x75\xf5\xf6\xeb\xc2\x45\x17\xfe\xee\x92\x17\x17\x17\xae\x2a\xad\xbc\x6b\x34\x17\xff\xe5\x68\x71\x83\xa8\x8a\xf2\x5e\xef\xc9\xf2\xc3\x83\xf2\x1a\x0f\x42\xf3\x51\xff\x87\x62\xe1\xe0\xad\x12\xbf\x1f\x39\xe1\x4d\xf9\xf6\x57\xb8\x92\x4f\x2e\xc5\xeb\xea\x85\xf8\x44\xf2\x72\x79\xe5\x7f\x7f\xa9\xfd\x05\xab\x14\x92\x13\xf6\xfd\xd1\xa6\xfe\xfe\x52\x87\x8b\xb4\x57\xec\xd7\xe3\xc5\x6a\x6b\x53\x29\x26\x17\xe5\xd5\x41\xb1\x1d\x3e\xb9\x45\xfb\x10\x10\x6e\x51\x1d\x6a\xa5\xb5\x83\x6b\x54\xa0\x94\x33\xfc\x2a\x27\xc4\x6f\x20\x29\x38\x21\xfe\x58\xe5\x71\x0b\x9e\xd6\xb8\x84\x3f\xca\xc3\x6a\x5e\xd5\xf0\xa2\x8a\x0b\xad\x7a\x6e\xac\x04\xe8\xcc\x39\xc9\xdc\x8e\xb3\x77\xa0\x9d\x5f\x28\xed\xd4\xb4\x12\x8b\x70\xad\x3d\x15\xb0\x32\xce\xf5\xc2\xd4\x95\xa3\x1c\xaa\x4c\xba\xd7\xc3\x0e\x79\x1b\xb5\x6b\xcc\xde\x76\xdb\x2e\x99\x3d\xe5\xfc\xc7\x78\xfd\xb1\x5e\x17\xfa\x78\x15\xd5\x3c\xf5\x68\x44\xf7\x3a\xe5\x75\xa1\xdf\x05\x15\x5d\x2f\x50\x7b\xab\x4c\xce\x9f\xcd\x3e\xa8\xbc\x78\x3d\x2d\xfb\xaf\x04\xde\x3d\x9b\x9d\x8f\xce\x30\x4a\x78\x34\x99\x2b\x8f\x43\x53\x3c\x46\x01\x4a\xaa\x2b\xa6\x16\xab\x9e\x96\xaa\xfb\x2b\xb6\x56\xbe\xeb\x4b\xd5\xe9\x17\xdf\xfc\xc8\x42\xd0\xaa\x6f\x6c\x0d\x4a\xef\x8d\xf9\x20\x57\x9c\xa5\x35\x77\xc9\xb5\x60\xa9\x32\xb5\x51\x9d\xd5\xcd\xb5\x67\x13\x3f\x9a\xc7\x77\x47\xc2\x5e\x96\x41\x7c\xb4\x67\x54\x2b\x97\x22\x96\x4a\xcd\x63\xcb\x62\x02\x2c\x7c\x6d\x01\xea\x74\x92\x4e\x84\x0b\x19\x13\xea\x7a\xb8\x50\x14\xee\x3d\xe5\xf8\xa4\x74\x30\xbc\x1f\x35\x6b\x9d\x8a\xe4\xc5\xad\x88\xb2\xed\xd6\xb2\x2a\x31\xb3\x48\xef\xa8\xe1\xe4\xe0\x88\x36\x76\xae\xc2\x96\x28\x15\x36\xe1\x5c\x67\x8d\xd6\xf4\x2a\x06\xf6\x81\x93\x09\x68\x29\xd3\xb8\x56\x22\xfe\xb6\x0e\x12\x31\xaf\xa8\xb2\xd5\x82\xea\x90\xde\x51\x85\xe8\xfd\x08\xc5\xc3\x41\xbe\xe5\x47\x5a\x50\xa2\x04\x1b\x4f\x9a\x5f\x45\x8e\x5e\x88\xed\x16\xe5\x8f\x3c\x18\x6f\x76\x2c\x29\x3e\x6c\x76\xf8\xc4\xba\xb6\x38\x17\xa5\xff\xa4\xed\x56\x09\x49\xb3\xed\xd6\x47\x19\x88\xdc\x8b\x79\xac\xdc\xef\x18\x33\xec\xde\x88\x91\xde\x08\x0e\xac\x7d\x2b\x47\xb9\xc1\xc9\xa4\x76\x05\x49\xfa\x2e\xae\x45\x3e\x90\x4f\x4f\x9a\x6f\x3f\x7c\xaa\x5a\x6f\x6b\xbd\xe4\x21\x36\x83\x80\xb8\xc9\xe1\x4c\xd0\x6c\x40\xdd\x68\xe4\x1d\xdb\xb6\xb1\xa6\x8e\xc7\x01\x8b\x30\x32\x1b\xd8\xb1\x3a\x9a\x84\x4f\xb3\x38\x11\x3c\x39\x34\x03\x2f\x5d\x2e\xf5\x8f\x3a\x94\xea\xf5\x8f\x06\xa2\x52\x3a\xc6\x75\x5f\xa1\x2e\x56\x54\xb6\xc9\xf5\x46\x79\x50\x69\x8a\x84\xde\x2e\x0d\x04\xc4\x24\x9a\x6e\xb7\x62\x3f\xda\x4a\x30\x91\x5b\x77\x5a\x8b\x75\xa4\xe5\x7f\x6a\xd1\xf2\x40\x55\xa4\x5f\x53\x11\xcf\xf7\x8e\xd2\xf8\x3e\xc9\x50\xe6\xbc\x87\xfc\xa6\xb2\xaa\xc9\xa6\xb4\x9f\x77\x18\x04\xea\x76\x31\xb2\xca\x2f\x2a\x86\x78\xb7\xcb\xba\x5d\x23\x86\x54\x22\x46\xd5\x50\xb7\xde\xd0\x81\x58\xd0\xb4\xaa\xbc\xed\xf6\x5c\x8c\x7a\xa6\x03\x9d\xcc\x79\xf5\xac\x2d\x37\x83\x87\xd1\x64\xea\x28\x9d\x37\x05\x0c\x8b\x9e\x1d\x55\x83\x4b\x72\x5e\xa2\x46\xca\x28\xa5\xcc\x0d\xa1\x1e\x23\xd4\x33\xc2\xd1\xb2\x9f\xbd\xaf\x9e\x10\xa5\x2e\xa7\x24\x8b\xe5\x54\xc8\xb4\xea\x24\x28\xfc\x57\x56\xde\xff\x3b\x27\x81\x1e\x99\x04\xad\x75\x57\x9f\x85\xe3\x9a\x78\x7f\x64\x1a\xbc\xbf\xb3\xa7\xca\x94\xdf\xfa\x7f\x88\xfb\xf7\xfd\xb6\x71\x24\x7f\x00\xfd\x5f\x4f\x21\xf1\xf4\x72\x81\x08\xa6\x49\x49\xbe\xd1\x81\x35\x6e\xc7\xc9\x64\x26\xb1\xb3\xb1\xbb\x7b\x66\x35\x1a\x37\x2d\x42\x16\x27\x14\xa9\x21\x21\x3b\x6e\x89\xe7\xd9\xcf\x07\x57\x82\x14\xe5\x4b\x4f\xef\xef\xf4\xee\xc4\x22\x08\xe2\x5a\x28\x14\x0a\x55\xdf\xd2\x66\x76\x16\x8a\x70\xc7\x6d\x25\xed\x28\x19\x8d\x6d\x5b\x9c\xb8\x3c\x38\x4a\xc6\x95\x53\x79\x84\x3b\x1e\x87\x0e\xd7\x9d\x8c\xcc\x0e\x3d\x61\xb3\xb7\xd9\xa7\x67\x2c\x98\xf4\x1c\x25\xe5\xf4\xd4\x3b\x7d\xf0\xca\x4e\xf3\xc5\xdd\x71\x5b\xbc\xdf\x56\xb5\xab\x0e\x4b\xab\xaa\x27\x36\x3a\x9b\x54\x3b\xfb\xc7\xf6\x53\x34\x6a\x7b\x67\x0f\x5f\xd9\x59\x57\x05\x82\x94\x24\x28\xcc\x1f\x19\x0d\x9a\x34\x6a\x76\xa9\xc1\x40\xf2\x3f\xa0\xc8\xa3\x17\xb4\x77\xaf\x27\xda\xab\xfc\x78\x35\x5a\x6b\x3d\x10\x2d\xbf\x35\xe0\x3c\xd7\x2b\x03\xd1\xb6\x4a\x24\xcb\x0e\xf7\xfc\xa8\x5e\x21\x1b\x01\x88\x88\x00\xb6\xd4\x3d\xcd\xd2\xf9\xc6\x81\x32\x53\x61\x83\x05\x96\xe9\xb4\x69\xa3\x62\xa3\x30\x64\xff\xf8\x42\x40\x5c\x6c\xda\x39\xcf\xf1\x62\x8b\x11\xf8\x7d\x69\x04\x3e\x97\x71\x88\x63\x30\xe3\x7a\x85\x7b\x1e\x50\x98\x82\x39\x5a\x34\x1b\x0f\x73\xb3\x6d\x71\xcd\x7a\xbb\x5e\x4f\xb1\x70\x40\xe1\x61\xfd\x21\x87\x82\x5f\x0a\x2f\x48\x90\xe1\x00\xcc\xb4\xbb\xf9\x71\x76\x72\x77\x7c\xd7\xed\xc2\x1c\x2c\xd1\x1d\xba\x1f\xce\xc1\x8c\x87\x34\x86\x3e\xfb\x2b\x03\x4d\x71\x9b\x00\x2c\x23\x59\xcf\x98\x8c\xcd\xcb\x3a\xee\x80\x09\x0e\xab\x56\xe7\x66\x59\x11\x08\xd1\x1c\x8d\x26\xd2\x04\xea\x6e\xcc\x68\xcb\x9f\x28\x63\x74\x75\xed\x2e\x1b\x83\xef\xd0\x52\x12\x4c\xfd\xfa\x4c\x5e\x8b\xed\x79\x3e\xfb\x97\x5f\x78\xc9\xc8\x55\x65\x70\x5b\x71\xa5\xc5\x08\x6b\xdf\x7d\xc5\x42\x50\x98\xb6\x09\x1e\x8d\x1d\x69\xb7\xcb\x58\x5d\x27\xb1\x6d\x6f\x77\xe4\xe9\x44\xe0\xa1\x1d\x17\xbe\x75\x8d\xb5\x01\xa2\xf5\x5a\xf1\xf0\xc4\x24\x9f\x27\xec\x7f\xa3\x61\xd2\x1c\xbe\x7e\xbd\x76\xfd\x97\xac\x22\x89\x62\xab\x56\xd1\xbe\xf7\xf4\xf6\x76\x65\xb4\x4a\x84\xa5\xf4\x79\x54\x6d\x5e\xa6\x1c\xc4\x03\xff\x80\x0b\x79\xfb\x2f\x8b\x46\xd8\xef\x8b\xb5\x78\xb8\xa7\xa5\x1e\x0d\x2d\x5e\x11\x7f\x0e\xfb\x10\x88\x65\xa0\xda\x50\xf3\xcd\x11\xaa\x3c\x2a\x51\xc3\xf9\x43\x84\x5d\xf9\xeb\x1b\xa6\x45\x35\x88\xa1\x70\x1e\x90\x1f\x21\x2a\x7f\x7d\x53\x96\x99\x37\x51\xb7\x2b\x89\xaa\x43\xd6\xeb\xec\x04\xab\x78\xce\x43\xa0\x6a\x92\x8b\x25\x01\x1e\x8f\x76\xe0\x22\x01\x26\x84\x31\x1d\x66\x7e\x69\xb7\x40\x87\x64\x94\x8d\xfd\x51\x86\xd8\xdf\x31\x93\x07\xca\xd0\x6d\x91\x73\xaa\xa6\x07\x47\xe2\x24\x8a\x32\x8d\x4a\x94\x19\x41\xde\x32\x23\x14\x1e\xa7\x6b\x09\x44\xcc\xd9\xf7\x61\xdf\x3f\xec\xa3\xc3\x3d\xff\x70\xaf\x14\xdf\xf6\x5f\x23\x55\x49\x14\xf3\xd1\x98\xbb\x6b\x99\x84\xc9\x3d\x30\x3b\x58\x21\xfe\x36\x12\x69\xd5\xfe\xdb\x00\xe2\x96\xc8\x75\xd2\x5c\xd6\x3c\xed\x21\xcb\x27\x35\x72\x54\x7d\x92\xa4\xa4\xbc\x37\xf7\x07\xaf\xef\x87\xbc\x03\x36\xc2\xbc\x8f\xc6\x55\xb7\x35\xdc\xe9\xa4\x6a\x59\x1a\x2f\x9a\x96\x66\x50\xf6\x3a\x35\x7b\xdd\x68\xc0\x2e\x04\xf1\x00\x6a\xc0\xf4\x6d\x2b\x54\x3b\xef\x8a\xb1\xe1\xb0\xc3\xda\xfa\x37\xc6\xf9\x8e\x27\x90\xad\x37\xb6\x76\xdb\x06\xb1\xf6\x58\x05\x31\x4a\x40\x55\x17\x08\x51\xfc\xd6\xe5\x99\xf2\x6e\x0c\x8f\xe3\x13\xec\x1e\xc7\x3b\x3b\x30\x9a\x82\x98\x1f\xdf\x6c\x9b\x8e\xe2\xb1\xe9\x49\x1c\xb3\xf6\x88\xdf\x3b\x5e\x7d\x52\x94\x0e\x47\xa2\xe4\x4b\x86\x5a\x72\x8d\xd7\xca\xad\xde\x16\xb9\x75\x1e\x2c\xaa\x42\xeb\x16\x23\xff\xdf\x21\x1f\xec\xbf\x46\x62\xdd\x93\x0d\xbc\xe2\x0d\xdc\x8c\xf6\xa2\x2f\xc2\x08\xd0\x21\xfb\x3a\x82\x39\x69\x03\x1e\x02\x4d\xcc\xf5\xaa\x40\x90\x4e\x1b\xad\xfe\x9b\x3d\x99\x38\xe0\x40\x13\x4c\x42\x4d\x3a\x80\x40\x7b\x3a\x81\xa4\x32\x36\xc4\xc4\x60\x50\xf6\xe5\x98\xa2\x44\x8c\x98\xd8\x08\x6b\xf8\x1b\xfb\xaf\x12\x76\xb7\x4d\xa8\xe9\x09\x5a\x99\xd8\x46\xc7\x89\x17\x88\xb5\x95\x19\xe7\xd7\x3e\xd5\x49\xf7\xfc\x81\x67\x4c\xfa\xab\x84\xd8\xa7\x3b\xd1\xd4\xfe\xff\xa4\xe9\xde\x33\x4d\x7f\x89\x3c\xab\x9a\x7e\xe0\xd5\x02\x24\xf7\xf7\xd4\x26\xca\x15\x42\xa3\xb1\xb8\xdf\x35\xfa\xd7\x10\xce\x4e\xc3\x67\x66\x55\x6a\x15\xc6\x5a\x4d\x0a\x8c\x14\x18\x4e\x0c\x22\x00\xa2\x70\x7b\x88\xa6\x80\x62\xc3\xcd\x22\xf3\x29\xd2\x11\x5b\x73\x58\x45\x0e\x56\x17\x7a\xe5\xc5\x70\x8c\x45\x14\x37\xb4\x64\x2c\x91\xfd\x98\xe0\x14\x2c\x77\x62\x88\x42\xc3\xa2\x65\x02\xd1\x0c\xbb\xc7\xb3\xb7\x93\xe3\x59\xb7\x0b\xc3\xd1\x6c\x8c\xcb\x20\xe1\x62\x6d\x68\xa0\xb0\xee\x0c\xfa\xfc\x1a\x2c\xee\xce\xc6\x06\x12\xbb\xd8\x4a\x95\xe5\x95\xe0\x6c\x32\xd6\x96\x61\xff\xc4\x61\x24\xd8\xbc\x1c\xbc\x46\x1c\x64\xbc\xae\xbf\x85\xaa\xf2\x74\x5e\xa3\xa9\x6d\x1e\x39\xbf\x83\xdb\x1d\x78\xaf\x11\x5a\xbd\xda\x69\x48\xf8\xf5\xf3\x36\x66\x94\x91\x8f\x87\x7a\xa8\x3f\xae\xc8\xaa\x15\xd2\x09\x78\x4e\x50\xa2\xa4\x6e\x58\xdf\xc9\x1c\x0a\xb8\x6e\xcb\x76\xba\xcd\x8b\xc8\x90\x1a\x14\xf6\xad\xf2\xac\xac\x3e\x23\x89\x98\x50\xd9\xbe\xa4\xdc\x2f\x60\xfc\x6a\x6c\xee\xa0\xa6\xe0\x12\x9e\xfc\x40\xb6\x48\x14\xc3\xad\xf4\x78\xe6\xfe\xb3\xd2\xf1\xbb\x80\x12\x0b\xad\x92\xf4\x61\xd3\x9a\x83\x5f\x2e\xb3\x0c\x5c\x8d\x77\x1d\xcd\x39\xa0\xba\x96\x9c\x79\x0d\xdb\xd5\x4b\x62\x63\xaa\x50\x13\x60\x85\x19\x77\xf9\x34\xfd\x78\x75\x29\xe8\xbf\x83\x71\x06\x75\x73\x8c\x17\x7e\x26\x78\x7e\xdf\xdf\xeb\x1b\xf4\xf2\x9a\x1d\x9c\xd3\x49\x22\xf1\x18\x9e\x66\x29\x72\xcb\x11\x70\xb3\xaa\xfb\xdc\x9c\xc2\xa1\xe9\x5f\xae\x2e\x2f\x00\x5c\xaf\xbd\x0e\xc6\x1b\x3d\x61\x2f\xa5\xd7\x89\xd9\xfa\xcd\xc2\xb9\xb0\x02\xcd\xbe\xb2\x4f\xfd\x0d\x41\x5f\x49\x59\x94\x9f\xb7\x15\xd2\x5d\xb2\x9c\xdf\x72\x73\x0e\xb5\xa7\xae\xd7\x3a\xda\x3d\x85\xc3\xca\x98\x02\x28\xe3\x9f\x08\xc8\xee\xaa\x31\x66\x9d\xae\xf6\x9b\x27\x52\x21\xa2\x7e\xc9\xa2\x79\x24\x20\xcb\x50\x56\xeb\x7d\x8b\x7b\x3d\x65\xeb\xb5\x88\xc6\x9e\x21\x8a\x08\xd8\x1b\x40\x68\x42\xb3\x0e\xfc\xbd\x41\x79\x37\x73\x70\xd0\x54\x5d\xb5\x58\x76\xb0\x29\xa1\x16\x12\x4c\x15\x15\xb6\x2a\x13\xd3\xb5\xac\x0e\xb6\x3e\x26\xf7\x41\x1c\x85\x3c\xd9\xb2\x6d\x01\x60\x0f\xe8\x36\xe8\x73\x31\xc4\x89\xe1\xfd\xd3\x2a\x71\x8d\xc9\x30\x33\x5e\xf8\xd5\xb2\x25\x00\x7a\x09\x6b\x7f\x70\xf8\xac\x86\x55\xd9\xa5\x5b\x68\x75\x1b\x25\xa1\x4f\xc0\x60\x20\x8e\xa0\x83\x81\x3f\x18\x18\x64\xfd\x92\x4d\xf4\xe0\x48\x92\xb5\xdb\x37\x95\xf1\xb3\x20\xff\x28\x05\x38\xae\x8f\xdf\x34\x86\xe7\xea\xcb\x76\xc4\xe6\x89\xdf\xb7\x80\x08\x25\xea\x42\xa4\x76\x18\x28\xa5\xb7\x8e\x29\xbd\xad\xd7\x1d\x6a\x44\x43\xf5\x44\x34\x54\xa0\x62\x33\x8a\x6a\xb4\xbf\x48\x25\x24\x0f\x87\xfe\xe2\xbe\x7f\x02\x7e\xe8\x98\x09\xf7\xd5\x0f\x0d\xf1\xbe\xa3\x64\xfb\x8e\x92\xed\x95\x4d\xb2\x8a\xad\x5f\x09\x87\xea\x1d\xba\xcd\x93\x20\x0c\x66\xb3\x86\xc1\x40\x09\xde\xfd\xe7\x3f\xf2\x37\x5a\x34\x06\xa3\x7f\xb6\xc1\xf8\x0d\xdc\x6d\x09\x20\x7f\x45\xd2\x7b\xfb\xd0\xb6\x29\xc8\x14\xbe\xff\x73\xf0\xc4\x65\x1c\x0a\x60\x59\x5d\xe1\x12\x3b\xe7\xc0\xce\x09\x1c\x79\x63\x09\xf2\x5c\xde\x2f\x5a\x85\x94\x6a\x2b\x61\xcd\xbc\xc3\x97\xc1\x17\x0e\x14\x10\xd3\xe0\xa0\xaa\x7d\x18\x1c\x41\x60\x7d\x0e\x16\x56\xd5\xd7\xa1\xee\xd6\x54\x5a\x32\xd6\xce\x7b\xea\xec\xe6\x1a\xea\x36\xb7\xa2\x96\xad\x9a\x00\x1a\xb1\x59\xee\x08\x3d\x4f\x68\xf6\x28\x37\x39\xc4\x9b\x01\x51\xa9\xf3\x62\xc7\x39\xe7\xbe\xee\x73\x65\xf8\x43\x66\x4e\x48\xa6\xb5\xcf\xc5\x76\xea\xfa\x12\xa8\x8a\xdf\x16\x70\xbe\x76\xe0\x7b\x83\x03\x34\x38\xf0\xd9\xbf\x47\xfe\x80\xdf\x45\x1e\x6e\xbf\x08\xe2\x8b\xe7\xc8\xd5\x20\x4a\xf9\xbf\x33\xaa\xd0\xb3\x82\x49\x9a\xcf\x8c\xa3\x54\x07\x44\xb6\x7d\xe0\xb9\xd8\x74\x66\x8e\xc0\x05\xe7\xc2\xce\xe7\xd3\xbf\xdd\xfc\x7c\xfa\xe9\xa7\x73\xe1\xbc\xe3\xed\xba\x50\x00\x40\xb2\x36\xd3\x99\x85\x56\xbc\xbc\x06\x09\x41\x00\x4b\xbd\xf5\xb8\x25\x2a\x39\x39\x1a\x1c\xb9\xfb\xbd\xfd\x3d\x67\xbf\x37\xe8\xed\x79\x7b\xfb\x43\x1d\xa0\x9a\xc0\x2e\xff\xfd\xe9\xa2\xe7\x67\x80\xec\x78\xdd\x84\xfd\x0b\xdf\x24\x80\x74\x3d\x68\x6e\xc8\xe8\xc8\xf5\x8f\x38\x1f\x39\xdc\xbe\xf1\x2b\xbf\xec\x20\x8f\x92\x6a\x4f\x33\xdb\xf6\x76\x33\xe0\xc2\x13\xb3\x03\x2c\x9b\x6f\x9c\x1f\x0d\xd0\x66\xbd\xef\xe0\x2e\x85\xb6\xed\x76\x30\x1d\xd2\xb7\xee\x70\x87\x80\x1d\x0a\xcb\x18\xdb\xb4\xab\xc7\x19\xd0\x37\x94\xb5\xda\xa7\x35\x41\xe2\xf0\x49\x41\x42\xb4\x98\x06\xcd\x2d\xe6\xda\x0f\xa3\xc9\x2c\x5f\x93\x54\x66\x46\x5e\xd7\x8d\xe3\x11\xc0\x77\x81\xb7\x43\x20\xdc\xed\xd5\x5b\xb5\xf7\x0c\x15\x79\x5a\x90\x92\x95\x4f\x6e\x9b\x25\xc2\x4c\xd4\xfc\x46\xc5\x68\x07\x66\x0c\x75\x6f\xb7\x5f\x9d\x47\x19\xfc\xdc\x3b\xdc\xb2\x2b\x1b\x02\x9c\xaa\x37\xfe\xad\xd1\x84\x0a\x90\x93\x93\x13\xec\xc2\x61\xdf\xdb\x31\x48\xb8\x24\xaf\xae\xb3\x27\x5b\xf5\xe9\xf2\x43\xef\x1c\xfa\xfd\x8d\x41\x68\xdc\xab\x2b\x53\x43\xbe\x2f\xea\xed\xd9\x42\xf7\x72\x1c\xba\x19\x68\x1e\xf0\xed\x9b\x29\x1f\xf0\xc3\x43\x53\xd1\x01\xb2\x8e\x11\xc0\xbf\xa4\x00\xfe\x28\x05\x47\x31\xa2\x87\x87\xfe\x21\xbf\xda\x3e\x3c\x7a\xe9\x88\x8a\x10\xf8\x3e\x01\x87\x47\xa6\xba\xf8\xf0\xc8\x3f\xe4\x1c\xe6\x68\xcb\x96\x63\x52\xec\x6d\x5e\x2b\x74\xf6\xb8\x48\xeb\x3c\x4f\x1d\x22\x05\x6a\xa7\x2b\x63\xbd\x6f\x9c\xc6\x63\xec\x1e\x07\x6f\xf3\x63\x18\xbf\x05\x09\x36\xb4\x6c\xa3\xa0\xdb\x1d\x43\x38\x04\x29\x4e\xdf\x80\x08\xc7\xbb\x09\x7c\x13\x75\x3d\x14\xe3\x04\xfa\x69\x17\x27\x27\xee\x10\x44\x38\xd9\x8d\xe1\x9b\xc8\x4f\x34\xfa\x35\xe6\xcc\x6a\xe8\xed\xba\x7e\xfc\xa6\x5c\xa2\x69\x5d\xc8\x3f\xda\xae\x64\x57\x3d\x8d\xe6\xcb\xf8\x49\x0d\x94\xd4\xd4\xed\x75\x70\x06\x06\xbd\xa3\xc1\xd1\xfe\x41\xef\x68\x0f\xed\xc1\xf5\xba\xd7\xd1\xc0\x09\x5c\x2e\x96\x43\xc5\x8a\x6c\x3c\xc4\x77\xd9\xde\xdd\x65\x2c\x7b\x7f\x6f\xaf\xbf\x67\x67\x28\x95\xbf\x74\xd7\xdc\x75\xf4\x26\xed\x02\x20\x33\x9c\x9c\x9c\x78\xfb\xf0\x4d\xda\x8d\xde\xc8\xa4\x44\x24\x09\x43\xca\x13\xb7\xb2\xfa\xb4\x4c\x7c\xf4\x8c\x31\x41\x39\xad\x71\x7a\xe7\xb9\x4d\xcb\xde\x60\xe3\x7a\x91\x79\xee\x79\x7d\x80\x9f\x3f\xa7\x19\x15\x2d\x7c\xbe\x7d\x35\xf1\xfd\xa3\x67\x6e\xfb\x2b\x05\x35\x5a\x5c\x1a\x0d\xde\x55\xfb\x4e\xbd\xb5\xdb\x99\x62\xad\x92\x3c\xba\x4b\x7c\xce\x25\x9b\x98\xdb\xd1\x76\xe6\xa6\xd6\xba\xda\xa2\x35\x7f\x79\x9a\xba\x7a\x64\xc7\x3b\xe8\xe0\x8e\xa0\xe5\x28\x99\x01\x91\x04\x4d\xba\xaa\x6c\x68\xf5\x9e\x73\x86\x2c\xb7\x66\x8e\x66\xb8\xa3\x18\x95\x0f\xc4\xbe\xbb\x93\x80\x1d\xf6\x17\xbe\x11\x4c\xf4\x7c\xb7\xb7\x49\x3d\x25\xbf\x39\x7a\x92\x79\x36\x77\x52\x37\x75\x63\x23\xd3\xe0\x99\xac\x89\x3c\x80\xdc\x8e\x21\x55\xc9\xe5\xec\x47\xe2\xc7\x8e\xe7\x03\xba\x13\xc1\x5d\x0e\x32\xd9\x4d\x78\x47\x8a\x26\xa6\x78\xf4\xcc\x11\xc6\x68\x51\xb6\x4c\x26\xcd\xdb\x8c\x3b\x2c\xf7\x17\x5f\x23\x6e\x0a\xc0\xcc\x2a\xfd\xbc\x48\x53\x78\x28\x6f\xbe\x8f\xaa\x9a\xc2\x83\xbe\xb2\x1c\xf3\x64\x4c\xb0\x9e\x84\x70\x14\x5e\x72\x31\x96\x01\x59\xb8\x97\x9d\x10\xff\x27\x95\xc0\x77\x21\xa6\x8e\x90\xdf\xd0\x0c\x87\x68\x8a\x43\xe3\x50\xb0\xc0\x96\x78\x67\x61\x76\xec\x06\x47\xfb\x10\x4c\x21\x44\x73\x6c\xb1\x8f\xd9\xa1\xa0\x1e\x08\x09\xdd\x37\x58\xab\xa5\x80\xa0\x8e\x27\x82\x4d\xe5\x4a\xc1\x67\xc0\x84\x68\x24\x2c\x13\xb2\x39\xc0\x80\xe2\xf9\x90\xf2\x76\x02\xe8\x4f\x00\x45\x7d\x08\xcd\xf0\x02\x2e\x2f\x72\xd0\x17\xc1\x20\x06\x7b\xec\x2f\x3f\xb0\x1d\x1e\x62\x8c\x41\x26\x43\x07\xca\xdc\x3d\x08\xd7\x6b\xaf\xc7\x6d\xf1\xd5\xa1\xec\x22\xb8\xd0\x5e\xf3\x83\x43\xf1\x7d\xfe\x10\xf1\x20\x79\xe6\xb7\x1e\x84\xab\x49\x90\x93\xf6\xfe\xbe\xcf\xff\x1e\x1d\xfa\x09\xee\xa1\x08\x0f\x8e\x5a\xb7\x19\x09\xbe\xb5\x78\xf2\xc1\x91\x78\xed\x79\x9e\x9f\xe0\x43\x14\xe1\xbd\x3d\xf9\x3e\x24\xd3\x60\x19\x53\x5f\xd4\xdc\xa5\x85\xf6\xa3\x41\x31\xa6\xd2\x83\x87\x03\x6e\xba\x28\xd4\x41\x2b\x8f\x97\x6f\xc3\xe3\x65\xb7\xcb\xce\x87\x20\xc7\xb1\xd9\xa8\x25\x84\x6f\x07\x87\xeb\x75\x7e\x12\x19\xfd\x51\x0b\x40\x45\x3a\x04\x31\x0f\x44\xaa\xab\xe5\xa7\xd4\x10\x58\x6d\x37\xf5\x2c\xb8\x5e\xb3\xdf\xee\x2d\xff\x19\x02\xab\xeb\x7e\xf7\x2c\x08\x57\x61\xc3\x34\xd6\x37\xe1\xb7\x1e\x3f\x80\x64\x95\xf0\x52\x15\x57\xf9\xd0\xb6\xc1\x62\x18\x54\x6f\x5f\xc4\x95\xff\xe5\xd4\xd0\x56\xfb\x8a\xce\x3a\x38\x01\x19\x84\xc3\x88\x6b\xdb\x66\xe0\x9e\x87\xac\xc8\x50\x08\x7d\xf6\xb3\xd0\x3a\xe6\x3b\x8e\x24\xba\xb7\x0f\x87\x39\x98\x41\xdf\xd2\x87\x0f\xf4\xf9\xe3\x85\xfc\x75\x11\x5c\xa0\x8b\xf3\x0f\xa7\xd7\x1f\x7f\x3e\xbf\xf9\x78\xf1\xfe\xe3\xc5\xc7\xeb\xbf\xa3\x2f\x97\x57\x1f\xab\x29\xe7\x5f\xae\x3e\x7e\xba\xbc\x40\x4a\x84\x47\x51\xfe\x31\xa1\xe4\x8e\x64\x88\xe3\xde\xa2\x28\xbf\x0a\xa6\x44\xa5\xb1\xaa\xae\x4e\xdf\xb3\x02\xae\xcf\x3f\x9c\x7f\xe5\x35\x56\x12\x8c\x30\x99\x3a\xde\xa4\x2e\xd3\x34\x0d\x46\x8f\xd8\x3d\xbe\x55\xe4\xff\x78\xfc\xd8\xed\xc2\x0c\xcc\xd0\x1d\xbe\x1d\x3d\x8e\x39\x9c\x0c\x08\xd1\x1d\xb4\xed\x25\xfb\x8b\x62\xf6\x0e\xc2\x96\xb1\x48\xf1\x14\x4d\x2b\x9e\x43\x21\x2a\xd5\x3d\x72\x54\x51\x58\x8d\xf0\x2c\xd4\x35\x48\x07\x99\x94\x4a\x30\x09\xc2\xbc\x61\xcf\x2d\xfd\x86\xfb\xfe\x41\xbf\xd1\x33\xb8\xe7\x6e\x17\xfe\x14\xc7\x54\x2d\x59\xc9\xc1\xf6\xb5\xe8\xdf\x43\x3b\x7b\x3d\x58\x61\x8a\x3d\xf7\x49\x19\x4b\x98\x88\xaa\xd9\xda\xa8\x41\xbd\x68\x60\xcc\x4a\x61\x58\x62\x95\xf3\xd8\x44\xd5\x2d\x4b\xda\x7d\xf6\xdc\xe7\x05\x1e\xa3\x4e\x39\xbb\x3e\x01\x07\x87\x15\x83\x8a\x43\xff\x40\x14\xf7\xbc\x58\x63\x14\xc7\x4e\xc2\x0d\xdb\x32\xe9\x60\x52\xd4\xc6\xea\x19\xa5\xf3\x41\xb9\xa7\x1a\x12\xb8\x51\x95\x41\xdb\x5b\xce\x6a\xd0\xb6\x59\xca\x5b\x5c\x47\x4d\x2e\x1a\x3b\xfa\xbc\x44\xa4\x6b\xaf\xaf\x25\x7f\xa3\x86\x6a\x5f\x9f\x3f\x01\x96\x45\xd7\x56\xa5\xbf\xf3\x4c\xd9\xcf\xc8\x26\x9e\xe7\x56\x4e\x5b\x52\xeb\x51\xae\xf5\x0e\xd7\xd9\xeb\xfa\xcb\x17\xf2\xec\xe5\x79\xae\xef\x79\xe5\x35\x4f\xcf\x7d\xe6\x78\xe7\x79\xde\xd6\x1a\x3f\x26\x8d\xf5\x7d\x4c\xca\xda\x3c\xdf\xf3\x3c\xa3\xb6\xd7\x5c\x49\x6a\x48\xf3\x7e\x4f\xdd\x49\x72\x1b\x3b\xcf\x71\x68\xfa\x3e\xfa\x4e\x42\x14\x18\x4a\x20\x94\xe3\x91\x8b\xf4\xff\x8d\x51\xac\x24\x07\x95\xdd\xe7\x21\x1b\xb3\x8c\x4c\x68\x3b\x4a\xee\xd3\x49\xc0\xda\xd1\xb1\x6a\x21\x34\x4c\x28\xd7\x1d\x0f\x25\x98\x1e\x77\xbb\xd9\xdb\xfd\x63\x98\x74\x31\x79\x93\x8f\xb2\x31\x62\xff\xe0\xe4\xbf\x3c\x72\x80\x12\x1c\x80\x64\xd7\x23\x07\x3c\xfe\x85\xd9\xbb\x32\xdc\xc1\x3e\xca\xb0\x7b\xbc\xb3\x43\x4f\xb0\x7b\x0c\xb3\x2e\xe6\xf8\xa4\x1c\x53\x2f\x00\xd9\x2e\x61\x1d\xce\xfe\x8b\xbc\xf1\xc8\x41\x81\xc2\x66\x8c\xd2\x7d\x44\xb1\x65\x1d\xef\xec\x10\x5e\x08\x93\x63\xac\x0e\xc6\x54\xfa\xd3\x8b\xa0\x8d\xf9\x88\x8c\xd5\xa9\x4c\x5e\x39\xf0\xa4\x16\xfb\x56\xdd\xa3\x76\x65\x54\x45\xcb\xb5\xd0\xc1\x8e\x3a\xe9\xc1\x6e\xa6\x02\xdc\xd1\x6a\x90\x04\x13\xdc\xac\xbc\x8d\xfd\xaf\x1e\xc6\xde\x70\xc6\x5e\xef\x78\x28\x7b\x43\xa0\x3f\x03\xe4\x0d\x41\x74\xb7\x87\x32\x58\x98\xb7\x4c\xdc\x4c\x06\x58\xae\xe3\xba\x2e\x6b\xf4\x21\xd9\xd9\x53\xb3\x02\xfa\x70\xbd\xb6\x3c\x96\xec\x1c\xe9\x44\x97\x27\x3a\xbd\x3d\x96\xce\xfe\x96\xf9\x7b\xfc\x95\x5b\xfd\xcf\xeb\x1d\xb2\x9c\xc0\xfd\x1e\x12\xf7\x76\xff\xb6\x1f\x1c\xec\x0f\x5c\xf7\xd0\x85\x46\x91\xe2\xd2\xb0\x7e\x54\x49\x4d\x68\x32\x93\x9a\x15\xd9\x6c\xac\x0f\x81\xaa\x8b\xa6\xf2\xb2\x1a\xc5\x10\x2d\x04\x80\xfe\x1c\x5b\x16\xba\xc7\x96\xcb\xc1\xcf\x17\x6f\xdd\xf5\x7a\x71\xd2\x6b\x88\x3f\x13\x73\xb1\x71\xda\xc1\x53\x29\x36\x59\x17\xc1\x05\xff\x68\xfa\x16\xef\x78\xa4\xe7\xad\xd7\xd3\x13\xcc\x7e\x28\xb9\x4a\xce\xe7\x54\x7c\xc9\xad\x73\xe6\xd8\xda\xb1\xd0\x14\xef\x4c\x21\x9a\x9e\x78\x64\xa7\xe7\x31\xc2\x48\x99\xd8\xda\x4c\x89\x2e\x5b\x5a\xc7\xd9\x09\x1e\xb8\x47\xfb\xc7\x90\x76\xb1\xd7\x43\xd9\x2e\x7f\x14\x97\x01\xd9\x09\xee\x89\x17\x2c\xbd\xa7\xcf\x32\x05\x98\xbe\x99\x81\x1e\xda\x3f\x42\x1e\x84\x3b\xfb\x47\xf0\xad\x3b\x14\x49\x3b\x14\x79\xd0\x9f\xee\xb2\xdf\xec\x27\x4a\xdf\xe0\xc1\x9e\xdb\xdf\x3b\x3a\xda\xef\x1d\xf4\x0f\xdc\xc1\xd1\x3e\x02\x14\xef\xf5\x76\x28\x3c\x71\x45\x7b\x96\xc0\x45\x29\x3b\x31\x2c\x8e\x83\x13\x7c\x70\x0c\x97\x80\x2d\x27\x17\xa2\x60\x07\x1f\x08\x50\x02\x30\x03\x9e\x8b\x02\x11\xbe\x01\x05\x98\xee\x78\x2c\x73\xaf\x7f\x0c\x27\xc0\x7b\xfb\xb6\xd7\xe7\xb9\x7b\xfd\x16\x7f\x0c\x20\x5a\x02\x8f\xe5\x9e\x30\x29\xf6\x1e\x87\x40\x3a\xf5\xca\xca\x96\x1c\xbd\x80\xb2\xc2\xf8\x4b\x73\x25\x2c\xca\x18\x23\x78\x71\xe2\x0e\xe7\x5d\x26\xec\xde\xab\xd5\xf1\x16\x2f\x86\x96\xeb\x58\x95\x4f\x76\x72\xd8\xbd\xf7\xef\x75\x2c\xa4\x7c\x67\x01\xbb\x96\x63\x75\x55\x12\x4b\x80\xfe\xbc\x7b\xaf\xac\x04\x54\x68\x24\x61\x0f\xd5\xef\xf9\xfd\x5e\xed\xe2\xaf\xe7\xbd\xc6\x3e\x60\xbf\x67\xf2\x48\xce\x1a\xbf\x64\x64\x12\xe5\x51\x5a\x31\xc0\xcb\x1a\x4e\xe7\x62\xd1\xc9\xfe\x78\xa8\x72\xf7\x5e\xcd\x1f\x6d\x5f\x22\xba\xb6\x86\x63\xb1\xba\x2e\x10\xd9\xff\x3f\x66\xe6\x2d\xac\x18\x6e\x44\xd8\x23\x43\x59\x39\x85\xbe\xfa\x85\x94\xb4\xd4\x3c\x7e\xcf\x59\xa0\xb2\x11\x31\x90\x0d\x83\x5c\x69\x45\xf6\x2a\x5a\x91\x3d\xff\x68\x8f\x97\xf7\xbc\x0c\xa6\xcb\x9a\x64\x24\xa0\xc4\xe7\xc7\x54\xb3\x2c\x26\xb1\xf2\xb2\x9e\x13\xc0\x94\x8d\xc7\xde\x3e\x34\x8a\xad\x00\x2c\x46\x24\x67\x15\x48\x09\xcf\x04\xda\x39\x3a\xf4\x8f\xb8\xf8\xe3\x3d\xa7\x75\x7a\x41\x35\x8f\xbe\x3c\xad\x6f\x56\x23\x6f\xc4\x7a\xde\x16\x29\x4b\xdd\x87\x1e\xf5\xa0\x93\x26\xef\x33\x42\x7e\x23\x2d\x02\x3c\xf7\x00\x02\x6b\xca\x1f\x9f\xb9\x04\x4b\x4a\x69\xd3\xb6\x29\x48\xe0\x90\x80\x0c\x24\x10\xfa\x49\x21\xef\x7b\xdd\x03\xdf\x73\x0f\xd4\xb5\x63\xcf\x3f\x12\x93\xbf\xed\xd6\xbc\x2f\xd5\x17\x5c\x15\xa1\x1b\xb3\x0d\xd5\xb2\x29\x2c\xb7\x89\x3c\x98\x98\xa6\x35\x3c\xc8\x3c\xac\xb5\x4b\x99\x3a\xea\x03\x8a\x77\xb0\x61\x27\xd2\xd0\x84\x8b\x60\x4e\xf2\xc6\xda\x59\x7e\x97\x4f\x87\xa8\xc6\xf5\x3d\xd7\x45\xb2\x3a\x5e\xc1\x16\x51\x8e\x1b\x5b\xa8\xeb\x69\xb3\xe7\x46\xc4\xdd\x67\xfa\x5b\xeb\x6d\xd9\x57\x79\x05\xac\xfa\x2c\x2c\x1a\x78\x63\xb6\x68\xf5\x0f\x8e\xca\x26\x44\xf9\xf9\x77\x4a\x92\x3c\xba\x8d\x9f\xa3\x87\x12\x5c\xb5\x43\x39\x96\x2a\xe8\x90\xf5\x9a\x70\xb0\xb9\x06\x7a\x60\x2d\xe8\x6d\x39\x10\x56\x5b\xf0\x3e\x4b\x7f\x23\xc9\x8b\x6b\x67\x95\xaf\xd7\x3c\xec\x26\xab\x7c\x6b\xdd\x5b\x58\x50\xb5\xee\x2b\x12\xc4\x24\xfc\xc3\xeb\x7e\x05\xbb\x8a\x18\x27\xf1\x3c\x79\x9d\xe2\x79\x47\xbe\xe7\x95\x56\xb9\xbd\xde\x16\x6e\x65\x50\xd4\x5e\xd9\x21\x6e\x6f\xfe\x3b\xe9\x68\xcf\xf7\xdc\xbd\x26\x3a\xea\x6d\xe1\x64\x4f\xb2\x98\x45\x46\xee\x49\x42\x25\x75\xf1\x28\xb5\xff\x37\xdc\xa6\xf7\x7b\x18\x60\x4e\x82\xf8\xff\xac\x41\xcf\x1f\x4e\xf5\xe4\x57\x63\x6e\x33\x42\xe8\xb9\x3c\x18\x88\xb4\x7d\x73\x7d\xaf\x67\x9c\x14\x7b\x2f\x31\xe7\x1d\xec\xb1\x8e\xaf\x8a\x56\x36\x6a\x8c\xdd\x3c\xc6\xd6\x6f\x16\xca\x84\x85\xd0\x48\x04\xfd\x6f\xff\x36\x2e\xed\x83\x36\x83\x76\x37\x9b\x0b\x49\x09\x46\x15\x61\x75\x85\xcd\x0b\xec\x5a\x63\x4b\x80\x6c\x96\x36\x41\xa8\xe2\xa0\xca\xfb\xf2\xec\xa9\x57\x8e\xd7\x07\x21\x3d\xd5\x0e\xd8\x2f\x38\x57\xf7\xb6\xdf\x6a\x56\xcf\xd5\x66\x0d\xea\x40\xfd\xec\x39\xba\xff\xac\x88\x88\xca\x98\x83\x0a\xfa\x6e\xff\x50\x3a\xa4\xf5\x84\x43\xda\x40\x01\xdf\xb9\x02\xf8\x8e\x11\x6d\x28\x8d\x39\x67\x12\x08\x6f\xca\xde\x2b\xd4\xbb\xde\x9e\x0a\xab\x34\x10\xf1\xd3\xef\x19\x89\xf7\x21\x10\xc0\x77\x47\x03\x11\x5a\xc9\xf3\x7a\x22\xb6\x92\x37\xd8\x17\xc1\x95\x3c\xaf\x0f\xd1\x03\x0e\x8c\xf8\x44\xe7\x38\xd0\x41\x0e\xbf\xe3\x73\xdb\x3e\x57\x41\xa3\x73\x74\x89\xbf\xdb\xf6\x77\xe7\xfe\x70\xbd\xb6\x2c\x74\x85\x03\xe7\x4b\x96\xce\xa3\x9c\xa0\x6b\x6c\x44\xe8\x8b\xc1\x39\x34\xe1\x88\xe1\xaa\x40\x5f\x70\x86\xef\x9c\x29\x47\xfe\xac\x59\x00\x89\x19\xb8\x72\x32\x92\xa7\xf1\x3d\x01\x1c\x41\x1d\xd0\x8a\xde\x72\x55\xc0\xd1\x46\x94\xe8\x31\xae\x6e\xdb\x9f\xd1\x67\x58\x28\x14\x98\xeb\xf5\xba\xc1\xae\x5e\xb6\xf7\x2b\x61\xc4\x19\xa5\x09\x0f\xa2\x07\x6d\x9b\x3a\x74\x46\x12\xf0\xd9\x34\xec\xcf\xb8\x9d\x06\xbe\xd4\x7e\x5d\xd6\xbe\xb3\x6f\x41\xdb\xde\xf1\x30\xc6\x8f\x65\xf2\xd9\x2c\x4b\xe7\x64\x77\x7f\xdf\x52\x71\xe9\x13\xb8\x2a\x0a\x00\xd1\xd9\xa6\xa2\x5c\x19\x6b\x81\xce\x84\x23\x0c\x6c\x9a\x8f\x01\x8a\x09\x6f\x0e\x64\x0d\x2b\xd0\xb7\x06\x74\x02\xe2\xdc\x24\x70\xc5\xfe\xc5\x1d\x57\x59\x38\x39\x37\x93\xd6\x7d\x55\x9d\xae\xee\xcb\xd9\xcb\x7b\x76\x0e\xc1\xec\x57\x2e\x2f\xcf\x75\x4e\x1d\x0e\x53\x44\xa5\x89\x86\xd4\x49\xbf\xf9\xd4\x99\x06\x51\xcc\x2f\x20\xe4\xdc\xa0\x25\xff\xcd\x06\x0f\x4d\x30\x75\xc2\x74\x1e\x44\x49\x8b\xcd\x62\x3e\x04\xd1\x7a\x0d\x7a\xbc\x82\x99\x6d\xbf\x63\xc2\x17\xfb\x89\x3d\xb6\xea\x31\xc6\xf9\x30\xc3\x89\x0f\x26\xb6\x3d\x71\x48\x42\x49\x06\xd8\x44\xe7\x20\x81\x68\x62\xdb\x60\xe2\x90\xef\x11\x05\x6c\x49\x74\x5c\xc8\x5e\x61\xcc\xf9\x0d\x9b\xb0\xe1\x12\x3c\x00\x4b\xce\xde\xce\x64\x16\x44\x49\x7b\xf2\x38\x89\x89\x05\xa1\x0f\x52\x7c\xc6\x2f\x06\xa4\xc2\x20\x43\x31\x5a\x42\x3f\x66\x69\xfe\x12\x24\x6a\x56\x42\xb8\x9a\xd8\x76\x27\xe0\x0d\x10\x75\x2d\x41\x08\x8b\xe2\x58\xa9\x5a\x4e\xd2\x63\x18\x80\x8c\x43\xec\xc3\x16\x1b\x50\x3c\x1a\x23\x31\xcc\x1e\xa2\xb6\xdd\x11\x9d\xfb\x2a\xdc\x40\x8b\x02\x7d\xad\xcc\xf0\x5c\x34\x20\xd8\x30\xa0\x94\xcb\x5e\x4c\x43\x8a\xff\xa5\x22\xe1\xda\x36\xa0\xf8\xb6\x0a\x66\x3a\x3c\x77\xc8\x3c\xa2\xc0\x5a\x26\xb3\x20\x09\x63\x12\x6a\x72\xb5\x50\x84\x08\xf4\x41\x86\x03\x27\x4d\xf4\xfb\x4c\xbd\x87\xc3\x0c\xac\xe4\x90\xf9\x04\x65\x24\xc8\xd3\xc4\x8f\x0a\x8e\xd0\x18\xf0\x15\x95\xc6\x5c\x63\xeb\x10\xb6\xda\xf5\x0f\x60\xfd\xa4\x0a\x6b\xcb\xef\xdb\x99\x51\x2b\xbf\x16\xe6\xb3\x79\xbd\x5e\xb3\xd6\x0f\x7b\xbe\xc7\x53\x02\xe5\x29\x97\xb2\x55\x44\xa4\x42\x85\x3a\xf7\x7c\x3b\xfc\x57\x13\x06\x83\xd7\x51\x44\xc2\xc8\x02\xb0\x42\x38\xd2\xc6\x44\x05\xc4\x28\xd0\xbb\x17\x0e\x6b\xab\x1c\x2d\xdd\xdc\x3f\x8b\x7e\x58\x7c\xa4\x28\x1f\x29\xfd\x4e\xf6\x91\x9b\x29\x6e\x0e\x14\x9b\x1d\x7e\x92\x2e\xd0\x45\xc3\x15\x17\xbf\xc9\xa2\xce\x4d\xb8\x5e\x03\xf6\x07\x77\x5c\x04\x28\xa6\xce\xcd\xc3\x7a\x4d\xa1\x73\x73\x8f\x09\xa2\xce\x4d\x8e\x7b\xec\x4f\x20\xb2\x05\x2c\xc3\x44\x81\xe4\x42\xf4\x4d\x06\x1f\x28\xd0\xc7\xa6\xe0\x50\x58\x05\x7e\xed\x64\xce\x4d\x08\x57\x99\xac\x28\xc3\x19\xaf\x27\xe3\xab\x2d\x9a\x82\x8c\xdb\x80\x6a\xa8\x30\xb9\x36\xca\xc0\xc9\x72\xc9\x86\xed\x88\xe6\x24\x9e\x5a\xf0\x18\x50\x7c\xc6\x84\xbb\xe1\xfd\x46\x04\xee\x04\xaf\x6e\x1e\xfc\x0c\xdd\x84\x7e\xc7\x2b\x78\x15\x54\xfa\x3a\xa1\x1c\x7c\x44\x09\xf2\x20\xca\xc1\x05\xff\xa1\xd6\x53\x04\x57\xd2\x8e\x3b\xe1\x71\xb7\xd9\x52\xcc\xc4\x28\x64\x6c\x14\x3c\xf4\x0d\x64\x3c\x1a\x69\xc9\x16\x95\xe1\xb7\x51\x1b\x3f\xa2\x15\xad\xd3\xf5\x1a\x5c\x55\x46\x64\x26\xb4\x14\x57\x48\x75\xce\x42\xd6\xcd\xcc\x82\x28\xe4\x5e\xa0\xa6\x45\x32\x6b\x30\x01\xac\xa5\x02\x65\x4a\x34\x56\xfe\x56\xd5\x67\xba\x7a\x05\x65\x5f\x20\x53\x1f\xa7\xdc\x4c\xf9\xa2\x17\x3f\x35\x75\x8b\xc7\x5c\xfb\x9c\x86\x9c\x21\xf0\x9f\xf7\xd5\x3c\x33\x9d\x47\x78\xfd\x1b\xb7\x71\x02\xd4\x16\x5c\x99\x38\x6a\x8c\xd1\x37\xda\xee\x7c\x01\x0b\xd9\xff\x32\xd6\x77\xe6\xa4\xdf\x70\x83\xc1\x31\x3b\x72\xa1\x8c\xb3\xeb\x46\x5f\x73\xdb\xa6\x28\x93\xdc\x1a\xb3\x25\x23\x7e\xfa\x95\x86\x4f\x44\x08\xb0\x4c\x39\xd8\x06\xb6\x2d\x7f\xd4\x5e\xe4\xb6\xfd\x4d\x34\x8d\x87\x15\x54\x3c\xba\x40\x7c\x98\x1b\x63\x19\xb1\xef\xf8\x0e\x2b\x6b\xe4\x7a\x22\x94\x6c\xc6\x3d\x4e\xc8\x43\x9b\xb6\x94\xb1\x33\x2b\x56\x82\xdd\xa9\x2d\x08\xb3\x49\xe6\x71\x63\x65\x2a\x5b\xd9\x98\xcd\x36\x4b\x2c\xd0\x9d\x33\xc5\x5f\x1a\xe3\x7b\x62\x8c\xaf\x04\x82\xad\x00\x5a\x67\x2f\xfd\x4c\x60\xbf\x2f\xc1\xd2\xf9\xd0\x5d\x3a\xbf\x74\x97\x02\x1d\x7b\x25\x49\xce\xbf\xe2\xa8\x0a\x5e\xaf\x07\x81\x41\x88\x22\xcd\x83\xc0\x48\x89\x24\x8e\x8b\x92\x89\x58\x99\x57\xaa\xbc\x92\x84\x57\xa2\xc9\x0d\x5a\xb9\x2f\x15\xf3\x7a\xe0\x22\xb5\xd7\x42\x41\xef\x6a\x9c\x65\x7b\x45\xd9\x20\x5d\xaf\x3b\xa7\xb0\x5a\x01\x1f\xa9\xc6\x10\x4a\x6c\xcb\x61\xb5\xf0\x51\xb8\xf2\x85\xf7\x11\xac\x16\xd9\x01\xa7\x4c\xec\xdf\x40\x41\xb8\x72\x84\xf3\xa3\x23\x96\xd3\x67\xa9\x73\x2c\x2b\x0e\xcc\x20\x62\x15\xb6\x89\x18\x3d\x53\x11\xf8\x47\xc9\x12\x11\xff\xcd\x65\x89\xb4\xb6\x07\x8a\x15\x30\x1a\x4b\x39\xc5\x6b\x4d\xb9\x91\x48\xf5\x6c\xc6\xcd\x23\x70\xda\xed\xa2\x18\x77\xbc\x56\x26\xa8\x54\x2a\x4b\x51\xd0\xed\x22\x2d\xb7\xb0\x46\x73\xf2\xab\x14\x10\xaf\xd7\x20\xe6\xbc\x75\x94\x8f\x31\x41\x3b\x3b\xc1\x7a\x9d\x08\x9c\x7c\xb9\xe5\xe9\xa4\xa2\x5c\x84\xa9\x43\x6c\x3b\x02\xa9\x73\x5f\x21\xfe\x2c\xa8\x39\x0d\x6e\xeb\x3d\xef\x71\x54\xeb\x71\x53\x07\x37\x9b\x5f\x0e\x5e\xc2\xb7\xa9\xb2\x51\x11\x6b\x54\x02\xa2\x6a\xa3\xe4\x21\xa5\xe7\x7b\x5e\x0f\x79\x5e\xdf\xf7\xbc\x7e\x03\x46\xb9\xc4\x75\xd3\x58\xe5\x03\xdf\xeb\x0f\x38\x18\x97\x37\x28\x0f\x69\xc2\xc9\x4a\xa0\xbb\x99\x88\x42\x26\xcc\xc2\xfe\xbe\xbf\xbf\xaf\xd0\xc5\x4c\xfc\x70\x01\x12\xd5\xf7\x8f\xfa\xe8\x68\xe0\x1f\x0d\xf8\x61\xe9\x99\x8b\x7c\xe5\xbc\xd6\xe7\x06\x4d\x40\xdc\xec\x7f\x25\xd3\x98\xbb\xaa\xaf\x0a\x28\xbc\xaf\x51\x5a\xfa\x2c\xf0\x84\xaa\x26\xb5\x7e\xab\x54\x75\x5e\x13\xa3\x88\x2c\x59\x2c\x23\x62\x56\x44\x85\x23\xa3\x40\x11\x1b\xbf\x4a\x8a\x71\x02\x82\x72\xe0\x87\x11\xc8\x11\x45\xb1\xf6\x57\x13\x4f\x52\x0f\x2e\xc6\x6c\xdf\xef\x37\x60\xae\xf3\x31\x78\xce\xf8\x7e\x5f\x8e\x81\x27\x18\x4c\x5f\x42\x28\x1c\x1c\x55\x6d\xba\x06\x03\xd6\xb0\xa6\x31\xd2\xc7\x28\xb4\xc4\xc1\x0b\x5c\x9d\xe3\xda\xf8\x20\x26\x01\x6f\x3a\x3c\x4f\x70\xa7\x5a\x5a\xfd\x3b\x4e\x9d\xc6\x05\xf5\x72\xbd\x9e\x54\x06\x5a\x37\xac\xb6\xfd\x25\x3c\x5c\x16\x90\xa1\x51\x82\x4d\xcb\xa2\xfe\x90\xf8\xa6\x5b\x7c\x6f\xcc\x85\x69\x26\xdb\x2f\xb5\xcf\xbb\x9c\x38\x1e\xea\xb8\x6a\xb9\x25\xef\x8d\x84\xc9\x96\xeb\x1b\xf0\xc0\x44\xd8\x69\x79\x95\x34\xc0\x71\x44\xc5\x9b\xde\xe6\x1b\x44\x39\x50\x28\x7f\xdd\xdf\xf2\x1a\x51\xde\x46\x9e\x67\xf0\x54\x1e\x44\x47\xfd\xb1\x00\xf7\x0d\xf1\x28\x59\xc6\x71\xe9\xce\xca\xd9\x9b\xc4\x1b\x08\x39\xb4\x39\x79\x00\xb9\x4c\x20\x28\x84\xe2\xbb\x99\x38\xbf\x4b\xf1\x62\x8a\x33\x90\x82\x19\x1c\xce\xfc\xba\x02\x07\xa2\x45\x6d\xdd\x28\x81\x6f\x8a\x4a\x9c\xe8\x14\x2c\xe0\x70\xe1\x4f\x37\xc9\xd9\xf0\xc7\xaa\x02\x3c\x0a\xc5\x97\xba\x58\xe9\x6f\x51\x55\x1e\x1d\x54\xf1\x7a\xfa\xca\xbf\x79\x50\x41\xe3\xd9\x5c\xbf\x92\x80\x9c\xea\x9d\x08\xa0\xce\x14\xac\x0a\xe4\x29\x2f\x2d\xaf\x80\xe5\x43\xaf\xa8\xaf\xf2\xda\x8d\x8a\x41\x81\x19\x4a\x25\x0d\x66\x38\x02\x02\x69\x2b\x01\xa9\x90\x31\x95\x3c\xe3\x4c\x65\x4e\xd4\x71\xa5\x74\x19\x68\x7d\xb0\x57\x28\x3f\x42\x61\x3a\xb5\xb9\xfc\xf5\x45\x4d\xff\x19\xfb\x1c\x61\x9f\x29\xc7\x47\x29\x0a\xcd\x5e\xc4\x84\x36\xf6\x82\x2a\x04\x71\x11\x37\xbd\x9c\x51\xee\xa6\xd3\x89\x2a\xa1\xcc\xa0\x6d\x8b\x92\xda\x64\x44\xc7\x72\xaa\x8d\x46\xeb\xab\x92\xfe\x6b\x7c\x49\xfb\xfb\x15\x09\x8f\x94\x28\x2e\x59\x05\xc5\x45\xea\xc5\x12\x85\xd2\x82\x47\x63\x7e\xc9\x2c\x02\xc4\xa9\xc8\xb4\x14\x16\x2d\x02\x0e\x7b\x10\x24\xa5\xaa\x74\xc3\x4f\xb1\xc4\x7a\x69\x85\xe9\x4a\xb9\xcd\xdd\x44\x27\x3a\xee\xaf\x64\x10\x92\x30\x54\x50\xdd\x34\xe1\xb1\xa4\x8a\x87\x59\x14\x13\xd0\x01\x80\x60\x3a\xd2\x58\x31\x1c\x95\x5b\x36\x5e\x6f\xb9\xb2\x04\x22\x3f\xf6\x0a\x05\xf0\x55\x99\x21\x19\xab\xaa\xd1\xe0\xac\xad\xa4\xd0\xcd\x11\x3f\xec\xf9\x87\x5c\x6f\xdc\xdf\xa2\x37\x3e\x3a\xda\x58\x3e\x62\xd5\x98\x95\x6f\x0d\x0d\x67\x92\x3b\x34\x89\x5a\xd0\x7d\x43\x83\x4a\x12\x78\xce\x12\x4a\xb9\x5a\x36\x12\x6c\xf5\x72\xab\xd9\xa2\x2c\x31\xfc\xbc\xe5\x3d\x96\xd1\x12\xde\x86\x2d\x5a\xe2\xa3\xba\xbb\xe7\xfe\x91\xf4\x7a\x77\xab\xbb\x26\x6b\x5b\x04\xa2\x8d\xb6\x99\xde\x5b\x11\xca\x45\xc9\x31\x5a\xa2\x49\xd3\x2e\x14\xf9\xe6\x1e\xa4\x38\x66\x00\x22\x88\x31\x9e\x0c\xa3\x51\x3e\xf6\x41\x8c\x29\x77\x1f\xcd\x21\x1c\x26\x20\xd6\x71\x06\x87\xb1\x63\x92\x60\x07\xe3\xd8\xb9\x23\x74\xc8\xff\x15\x9c\x78\xa2\xa2\x3f\xf9\x29\x58\xe2\x0c\x44\x10\x0e\x09\x58\xa2\x1c\xe9\x37\x5b\x87\x49\xd9\x65\x0a\x66\xac\x27\xef\x79\x97\x9e\x72\x3c\x66\x41\xde\xec\x72\x28\x16\x66\xcd\xd2\x70\xf0\xa4\x8f\x8f\xe2\x06\x72\x13\x32\x2f\x18\x37\x2b\x36\xdf\x6e\x33\x3a\x44\x9d\x84\x09\xe6\x0d\x6b\x87\x37\xe6\x79\xac\xab\xb2\xba\xf4\x21\xf9\x2b\x79\xe4\x17\x6e\xae\xba\x70\x73\x8f\x7c\xcf\x35\x2e\xdc\x06\xcf\x88\x69\x95\xde\x6d\xdc\x72\x6d\xd6\xb9\x91\xa5\xda\x4f\x8e\x5e\x5f\x6e\x37\x89\x30\xb1\x2c\xf7\x1a\xba\xb1\xd7\xd4\x07\xe0\x49\xaf\x46\x71\xa3\xd4\xca\x6c\x7b\xa3\x61\xf9\xb6\x05\xca\xe7\xdf\x99\xcc\xc8\xe4\x1b\x7f\x30\xdb\x97\xf1\x48\xf5\x2c\xb5\x6c\x62\xb2\xb9\x1d\xd6\x2f\xae\x06\x5b\x36\x3f\x25\x1a\x1c\x49\x87\x06\xbe\x9c\x23\xb9\x9c\x53\xd9\x0b\x0e\xe5\xe7\xc9\x98\x41\x6c\xf8\x63\x79\x8d\x2b\xc2\x73\x55\xbb\x64\xae\xeb\x94\x2d\x67\x51\x59\x88\x66\x68\xba\xb9\xb2\x07\xc3\xd4\x58\xd9\xfd\x31\x5a\xe0\xcc\x99\x82\x1c\xa4\x10\x2d\xb9\x44\xd9\x59\x70\x35\x7c\x0c\x66\x98\x89\x06\xa5\x1b\x37\x98\x71\xe8\xbf\x29\x6c\x2d\x70\x00\x5c\x58\x44\x53\x10\x81\x45\x19\x5d\x94\x6b\xef\x3d\x8c\xf1\xc2\x08\x15\xda\x89\xc1\xb4\xea\x29\x1e\xf2\x1a\xa7\x68\x29\xbe\x08\x19\x53\x58\xaf\x43\x36\xce\xeb\x35\xff\x3e\xd4\xdf\x97\x1f\x86\x82\xa5\xe0\x09\xa2\xe2\x6b\x14\x42\x15\xc8\x4a\x3c\x07\xc0\x45\x13\xbd\x85\x75\xdc\xa2\x62\xd5\xd3\x61\xcd\xca\x09\xb5\x6d\xc0\xff\x0a\x36\x34\x45\x13\x68\xc0\xf1\xd4\x22\x5e\x6d\xe5\x39\x55\x2b\xf0\xc1\x36\xbb\x5f\x69\xfd\x71\x20\x39\xb6\x70\x43\x89\x4a\x2f\x15\x7e\x51\x26\xe7\x7b\x9f\x4f\x37\x75\xbe\x92\xbb\xf3\xef\x0b\x14\xe3\x1c\x2d\xb1\xe1\x15\x8f\x26\x78\x37\xd8\xbd\x43\xa1\xf8\x33\xe3\xda\xa4\x1c\x4c\x60\x07\xe3\x09\x3f\x09\x08\x17\x75\xd0\x99\xad\xd7\x5b\x21\x2d\x42\x7d\xd3\xc4\x7d\xd1\x2d\x38\xc6\x1d\x0f\x89\x62\x26\xeb\x75\x0e\x42\x88\x71\xb8\x5e\x5b\xbb\xc1\x6e\x64\x75\x70\x0e\x26\xc8\x8a\x2c\xae\x0d\x81\xab\x3a\x96\xb4\xd0\xae\x32\xe1\xc1\xf4\x7d\xc8\x51\x24\xb0\xec\x26\x06\x94\x8e\x9a\x95\xc4\xb6\x23\xdb\x26\x95\x0b\x30\x8c\x73\xdb\x9e\x0c\x89\x9f\x81\x19\xd7\x5e\xc5\x5c\x8e\x9b\x0c\x89\x93\xa7\xcb\x6c\x42\xb8\xb3\xb7\x1f\x03\x10\xe1\x0a\x98\x40\x0e\xcd\x2c\x11\x2b\x24\x50\x28\x56\x3e\x3b\x45\x08\x98\xa9\x25\xca\x0d\x07\x8a\x69\xf5\x66\x8d\xf1\xfb\x9c\xb1\xdb\x1c\x91\x67\x9d\xfa\xd5\x01\x6c\x44\xc6\x35\xb7\x75\x0a\x57\x2c\x15\x0b\x87\xe6\x05\x8e\x40\x0c\xd1\x1c\xbb\xc7\x0b\x75\xfd\x32\x3f\x86\x53\xb0\x18\xcd\xf9\xf5\xcb\xb2\x32\x00\x39\x32\xe1\x0f\x96\x86\x1f\x83\xa0\x06\x8b\x75\x40\x29\xe5\x64\x12\x6c\xf2\x6b\x50\x5a\x0f\x85\xb6\x61\x7a\x34\x0c\xfc\xfd\x81\x3a\xc6\x70\x8f\x86\x43\xd7\x3f\x34\xec\xaa\x06\x2f\x41\x1a\xf3\xbc\x43\xd8\xe2\x4c\x0a\xac\x68\x90\xb1\xe1\xd1\x6d\xe4\x3d\x60\x83\x36\x4d\xb3\x09\x09\x7d\xda\xc1\x78\xd7\xd9\x75\xc8\x77\x32\x29\xd0\x8a\xfd\xf1\xe5\x35\xbf\x77\xe8\x7b\xde\xa1\xc1\x2d\x37\xcc\x94\x38\x2d\x5b\x77\x56\x87\x15\x71\xe7\x4c\xe3\xe0\x2e\xb7\x6d\x85\x58\x21\xaa\x34\x2f\xec\x79\x86\x2d\xa8\x0c\x7c\x71\x99\x06\x65\x7c\x28\xca\x8e\xbf\x04\x6d\x8b\x71\xe1\x4c\x21\x53\x71\x11\x70\x20\xcf\x74\xde\x01\x1f\x91\xbe\x5e\x53\xa8\xa2\xea\x12\xd7\x8e\x3a\x68\xd3\xc6\xb5\x24\x2e\xe3\x86\x0b\xe0\x52\x2a\x83\x66\xfa\x74\x94\x8e\x5b\x75\x1e\x96\x0c\x15\x5a\x89\x0a\x7f\x29\xc6\x02\x50\x38\x4a\xc7\x40\x9a\xeb\x66\x10\x16\xa8\xce\x92\x52\x9c\x83\x00\x09\x8d\xb3\xb8\xa1\xe3\x60\xa5\x25\xde\x1f\x67\xb0\x2d\x01\x64\xc5\xed\xcb\x96\x3a\x68\xb5\xfa\xa4\x13\x3b\x77\x71\x7a\x1b\xc4\xea\xab\x08\xc4\x6c\xdf\xb8\xe7\x71\x81\x63\x67\x99\x44\x93\x34\x24\xad\xb8\x44\x26\xc4\xae\x5e\x7a\x21\x9a\xe1\xd1\x18\x4d\xb1\x7b\x2c\xb1\x75\x40\x88\x45\x09\xf0\x58\x34\x72\xa1\xaa\x0c\xb9\x66\x62\x36\x9a\x8e\xf1\x02\x71\x33\xf2\x85\x6d\x03\xb3\xdc\x04\x2c\x51\x66\xa6\x40\xc6\xfe\xd1\xb4\xdb\x2d\x0c\xb3\xf1\xe9\x90\x55\xe5\xcf\x8a\xb1\x82\x6c\x39\xf0\x3d\xaf\x8c\xec\xd0\x1f\xf8\x7d\xcd\xe9\xfb\xfe\x7e\x9f\x93\xc4\x4b\x5c\x06\x34\x49\x68\x5c\xa1\xfe\x91\xf2\x19\x90\xc0\xf6\x8c\x48\x02\x49\x24\x28\x97\xd0\x87\xc1\x77\x54\xa2\x20\xa2\xa5\xe9\x4d\x30\xc1\xbb\xff\xf8\x01\x8c\x7e\xb0\x7f\xfd\xef\xf1\xfa\x1f\xe1\x3f\xc2\xe1\xfa\xed\xe8\x9f\x27\xe3\x37\x27\x50\xb0\xfe\xda\x5b\xb8\x7b\xa7\x68\x2f\x23\x8b\x38\x98\x10\x0b\xf5\x2a\xd4\x37\x43\x53\xb4\x68\xa0\x3e\x23\x34\xb2\xa4\xbf\x68\x93\xfe\x66\x9b\xf4\x17\x69\xcb\x58\x94\x30\x0a\x94\xce\x6c\x72\xd2\x12\xc8\xcd\xf6\x4d\xda\x53\x15\x2d\xf1\x02\x4c\x25\xf5\x21\x11\x70\x6b\x59\xa1\xbf\xa5\x41\x7f\x13\x41\x7f\x61\x85\xfe\xd0\xac\xe9\xfe\x27\x6b\xcd\xd6\x6b\xa0\x1d\x0f\x32\x19\x8d\xf5\x1e\x4f\x24\xa5\x72\xe0\x60\xd1\x86\x3b\x3c\xd1\x14\x3a\x31\x29\x54\xbb\x24\xde\xe2\xd1\xf8\x58\x92\xe2\x23\x0e\xc0\x04\x85\xbc\xa9\x62\x68\xf0\x23\x14\x2e\x8d\xd1\x14\xdc\x8a\xa3\xfb\x23\x44\x9d\x7b\x99\xca\xa9\x54\xb6\xe3\x91\x91\x2f\xbf\xf9\x2f\xab\x49\x41\x88\x12\x33\x05\xa2\x3b\x08\x75\xdd\x37\xe8\x01\x5b\x16\x3a\xc7\x2e\xfa\x8e\xdd\xe3\xef\x6f\x95\x7f\xdc\xf1\xf7\x6e\x17\xae\x1e\xf1\xed\xe8\xfb\x58\xaf\xa5\xcb\x4a\x4d\xe8\x0a\xe7\x20\x06\x11\x90\xa6\x1b\x10\x85\x1a\xde\xce\x85\xe8\x9a\x2d\xbb\xcf\xd8\x3b\xfe\xfc\xf6\x51\x15\xfa\xb9\xdb\x85\xd7\xe6\xbd\x02\xc6\x18\xdc\xe0\xc7\xd1\xe7\x31\x1c\xde\xf8\xb2\xf4\x1b\x1d\xdd\xf6\xd1\xb9\xcb\xd2\xe5\x82\xdf\xdf\xce\xc4\x08\x9d\xe2\xd1\xe5\x58\x05\xc4\xb8\x46\x57\x6c\xb0\x34\xa5\x7c\xb1\xed\x53\x51\xfc\x17\x51\xc4\x99\x9e\x23\xa9\xd8\x93\x0a\x8a\x53\x28\x05\xb9\x33\x3c\x07\x97\x28\x44\x57\xe8\x1a\x7d\x61\x34\x72\x75\x82\xcf\x6d\x1b\x3c\x74\x71\x28\xef\x98\xcf\xd1\x15\xec\x9e\xa1\x73\x7c\xd5\xbd\x54\x1d\x54\xab\xfd\xa1\xab\x73\xc1\x62\x5c\xc6\x97\x9c\x73\x75\xa9\x0c\x2c\xa9\xb4\xdd\x49\x97\x94\x88\x0a\x91\xfa\x39\xc3\xe1\x06\xc5\xa7\xb6\x0d\x52\x9c\x31\x01\x79\x86\x27\x10\x4d\xd5\x85\xfd\xcc\x58\x68\x99\x2a\x79\xd2\x92\xba\xd8\xa0\x0c\x3e\x21\xd4\xb1\xd6\x0f\x96\x54\x8f\x5a\x3f\x58\x5c\x5f\x6a\xd9\x2a\x45\x6a\x67\xad\x5f\x75\x02\xd5\xe6\xfd\x89\x50\xae\x5a\xff\xbd\xf1\x2e\x97\x6f\xde\x5a\xfe\x04\xa7\xa3\x40\x26\x7b\x68\xc7\x83\xe3\x9a\xf3\xad\x50\xbb\x76\x83\x96\x8c\x8c\x18\xaa\x65\x97\x71\x91\xfc\x44\xc6\x76\x9f\xe1\x25\x08\x77\x3d\x57\xeb\x48\x59\xde\xd9\x30\xf3\x67\x6f\x71\x3c\x2c\x03\x77\x8f\x66\x3b\xde\x78\xa8\xfb\xe8\x41\x5f\x24\x75\xcd\xa4\xac\x98\xe0\x68\x14\xee\x78\xe3\xa2\x6e\x60\x3f\x19\x5a\x96\x3f\x29\x4a\x63\x4c\xcd\x95\x9b\x63\xc7\x36\x72\xe9\xbd\x97\xf8\x2c\x68\x2e\xed\xa9\x13\x97\xb1\x61\xe7\x24\xc8\x36\x77\x6c\x49\x28\xbf\x67\xc7\x8e\x5e\xb7\x63\x47\x4f\xef\xd8\x11\x0e\x40\x6a\xee\xd8\x51\x85\x63\x46\x06\xc7\xcc\x05\xc7\x8c\xab\x1c\x93\x9d\x20\x34\xb7\x69\x65\x60\x89\x78\x1c\xf0\xdc\xe4\x7d\x6a\xf3\x66\x12\x70\x5c\xde\xc6\x9b\x99\xd0\xb2\xfe\xd5\x52\xc1\xac\xe3\xc9\x70\xc7\xf3\x27\x82\xeb\x6c\xec\xb1\xd2\xb6\xb7\x3e\x6f\x2f\x41\x79\x3c\xac\x68\x1f\xa4\x21\x60\x24\xf7\x54\x03\x23\x54\x6f\xae\x42\x38\xe5\x47\xe5\x7d\xee\x4d\xae\xb7\xd8\x09\x1e\x8d\x39\x27\x42\x21\xb6\x62\x19\x10\x6e\x86\x3b\x71\x4d\xf7\xce\x67\xc5\x40\x25\xb1\x1e\xf9\xc1\x47\x13\xcb\x22\x8e\x68\x7d\x7f\x8d\xc5\xfe\xca\x5a\x3d\x57\x63\x37\xc7\xd6\xc4\xc2\xd8\x0a\x6e\x6f\x27\xca\xe9\x79\x17\xdc\xc2\x37\xbb\x70\xe4\x8d\xd7\xeb\x41\x07\x5b\x94\xe4\xb4\x7c\x37\xf4\xe1\x2e\x5b\xb5\xa3\x70\xcc\x81\x50\xac\xe0\xd6\x7c\x19\x88\x6f\x43\xf9\xad\x53\xbe\x73\x86\x90\xfd\x4f\xbe\x34\xdf\x40\x20\x52\x4f\xbc\xf5\xda\xd2\xc9\xce\x90\x27\x0e\x37\xf7\xe7\x64\x43\xd6\x2b\xbd\x61\x84\x31\x93\xc2\x0e\x18\x8d\x25\xde\x5b\x09\xf1\x36\x55\xa6\x32\xac\x38\xbd\x45\xf1\x75\x84\x62\xb6\xf7\x2c\x31\x20\x4e\x74\x97\xa4\x19\x39\x0b\x72\x32\xb4\x22\xcb\xb7\x2c\xd8\x05\xc4\x99\x2f\x63\x1a\xc5\x51\x42\x86\xd6\x5c\x27\xca\x5d\x7a\x68\x2d\x75\x52\x4e\xa3\xc9\xb7\xc7\xa1\xf5\xc8\x53\xd0\x0c\xbb\x68\x61\x06\x19\x2c\x27\xce\xcf\x4e\x4e\x4e\x5c\x34\xc7\xc6\x62\x53\xe7\x44\xb4\xec\x5a\x77\x16\x3c\x06\x11\xce\x45\xa3\xe7\x88\x1b\x23\x76\x00\x48\xf1\xdc\xd8\x9b\x4f\x66\x5c\xde\xe4\x3b\x58\x22\x59\xeb\x0c\x45\x72\x7f\x85\x28\xe2\x83\x6b\xdb\x32\xe5\x6d\x32\x0a\xc7\xb6\x3d\x91\x7b\x5b\x8c\x22\xc5\x8e\x21\x23\xd3\x68\xe4\x8e\x47\xe1\x18\xcd\x70\x8a\x62\xf6\x25\x5e\x30\x99\xd7\xa8\x90\xb1\x55\x51\x94\x6d\x1b\xc9\x1a\xcd\xbd\x3d\xc3\x18\xb3\x4a\x86\x9d\x80\xe5\x60\x14\x04\x2c\x0b\xae\xd7\xb2\x91\x96\x05\xfd\x7a\x7b\x21\x14\xb5\x2d\x86\xb1\xde\x50\x16\xd0\x8f\x0b\xdf\x72\x15\x51\xc8\x6d\xd8\xad\x13\x06\x6d\xc0\x31\x15\x94\x40\x87\xa3\xb1\x92\xfc\x34\x0a\x6e\xe1\x4f\xd1\x6b\x05\xcc\xf8\x79\x01\x73\xfe\xac\x80\x49\xd5\x9e\xbe\x00\x73\x25\x60\x52\x34\xef\x60\x2c\xbc\x16\xf3\x0a\xd3\xcc\x2b\xc7\x9c\x4c\xe8\x29\x2a\x4c\x33\xc4\x09\x88\x91\xa0\x1b\x88\xee\xcb\x53\x0d\xba\xc3\x20\x6e\xa4\xe2\xb8\x89\x8a\xe3\x4d\x2a\x9e\x09\xf2\xbd\xb3\x78\xb0\x6e\xf2\xd0\x0e\xc1\x6c\x18\xfb\xd6\x3f\xc1\xd0\xb7\xba\xb1\xa4\xd1\xae\x05\x2d\x74\x07\xd1\xa3\x09\x45\x6c\x90\x37\x65\xe4\xad\x36\xf2\xc7\xca\xaa\xe4\x7b\x6b\xf5\x36\xa8\x2d\x19\x75\x00\x6e\xd1\x04\x0e\x47\x93\xb1\x3f\x2a\xc5\xc8\x1b\xec\xa2\x07\xec\xa2\x73\x26\xf8\x3e\xbc\x55\xdf\x1e\xc3\xd5\xad\x41\x9a\xb3\xe1\x83\x2f\xee\xb2\xbe\xa3\x4b\x5e\xd2\x6c\x38\xf1\x95\xe1\xdf\x03\x34\x65\xe4\xcb\xf5\x1a\x7c\xc7\x4b\x90\x02\xa3\x04\xd6\x75\xd7\x7f\x80\x10\xe9\xd6\x41\x8c\xf1\x0d\x7c\xc0\x11\x98\xa0\x07\x74\x0f\x75\x90\xe6\x73\x41\xc3\xaa\xf4\x1b\xc4\x3e\x3b\x57\xf0\xdf\x65\x8f\xdb\xe7\xba\x17\x57\xd8\x3b\xbe\x7a\x8b\x95\x48\xb8\xe3\x1d\x5f\x09\xe4\x10\x59\xd6\xe5\xe8\x6a\xbc\xad\x8c\x07\x7c\x83\xbf\x2b\x98\x90\x76\xbd\x72\x56\xf5\xe6\xb6\x26\xd4\x17\xa5\x51\x49\xc3\x51\x52\x28\x5d\xd8\x96\x27\x14\x2d\x7c\xe3\xeb\x3d\xb1\xf1\x11\xd0\x1b\x1c\xc0\x0d\xb9\x65\x7f\x20\x63\xa6\xf1\x3b\xe4\x5d\x67\xb7\xc4\x42\x4d\x2b\x46\xce\x52\x69\xb4\xa9\x1a\x29\x7d\x19\xb8\x71\x66\xd1\xda\xa6\x1d\xb4\x76\x83\xdd\x5b\xab\xa3\x9c\x33\x57\x52\xb3\x66\x05\x16\xe2\xea\x15\xdf\xba\xb5\xf8\x65\xf3\x30\xdd\xb0\x68\x22\x98\x56\x2c\xbc\xac\x5d\x1d\x29\x4f\xb3\x5e\x6b\xd7\x52\x8a\x9a\x28\x69\x93\x21\x11\x6a\x1d\xbf\x93\xd8\x76\x45\xaf\x27\xfa\xa0\xe0\x57\x09\xf4\x4b\x2f\x51\xbf\xec\x0e\x6b\x68\x12\xcc\x89\x6d\xa7\x4d\xaa\xce\xc8\xb0\xa1\xac\xa0\xb5\x72\x75\x53\x6f\x70\x20\x67\x6a\x43\x49\xc6\x67\xaa\xff\x07\xc0\x6e\x5e\x11\xfa\x7f\x08\xbb\x19\x84\xcd\x91\x95\x2a\x98\x99\xac\x09\x10\x11\x5c\xa2\x66\x12\x8e\x9a\xb9\x1d\x32\xb3\x57\x0f\x15\x56\x23\x52\xaf\xc7\xba\x16\x24\x93\x59\xd5\x61\xb1\xa1\x77\xb4\xde\x3d\x46\x49\x12\x3e\x95\x6a\xc9\xbf\x77\xe4\x7b\x3d\x51\xf3\x53\x37\xf0\xaa\xe6\xdb\xe8\xee\x95\x83\x2a\x3e\xb1\xd8\xff\x37\x55\xfa\x94\xda\x53\x57\x1a\x47\xc9\xb7\x57\x57\x2b\x3e\xda\x5a\xf1\x53\xae\x4d\xba\xe2\x34\x7e\xce\x57\x6f\xb3\xde\x27\xea\x7c\x4d\x60\x01\xaf\x77\xc0\xa3\x02\x29\xf8\x62\xc5\x45\x56\x6c\x4f\xfb\x92\x46\x09\x3d\x7d\x32\x08\x82\xc6\x33\x3f\xf0\xbd\x5e\x19\x33\xaf\xf7\xa2\x90\x57\x25\x1e\x87\x3a\xb6\xf5\x78\x9c\x54\xcb\x72\x48\x12\xe6\xbf\x44\x74\x56\x85\xf0\xf6\x20\xb0\xd4\x1b\x0b\x1a\xad\x55\x89\xdb\x5d\xc5\x09\x32\xbf\x4c\x37\x2e\xcd\xb6\x04\xaa\x0a\x70\x66\xc4\x3d\xc9\xcb\xcd\x3a\x1d\x06\xbe\x8e\x72\xc2\x15\x07\x81\x71\x32\x23\xa6\x79\x9d\x12\x75\x62\x94\x43\x5f\x9f\xeb\x77\x14\x08\x16\xca\xd9\x2e\xa9\xa0\xbb\x7b\x87\xbe\xd7\xab\xc5\x31\x41\xfb\x9e\xbf\xef\xb1\x61\x7d\x32\xe0\x93\xa2\xa7\x69\xf4\xfd\x59\xe7\xcf\x0d\x82\xa2\x74\x3b\x45\xd5\x23\x2f\x35\xd7\x9a\x26\x74\x92\xc6\xbf\x83\x61\xb0\x2f\x2d\x64\xc9\x8f\x9b\x98\xc6\xfe\xd3\x7b\x6a\xd9\x80\x3c\x7a\xd6\x01\x7c\x6b\xfd\xe2\xdb\xc6\xea\x9f\xbb\x8c\xee\xf3\x68\x7a\x12\x2d\x6e\x9a\xa5\xf3\x33\x89\x63\x86\xa2\x4a\xaa\x5a\x53\xa6\x59\x61\xa7\x13\xd9\xb6\xd7\xd1\xfa\x29\x93\xac\x2b\x1f\x55\x68\x5b\xe3\x6e\xa0\x48\x98\x19\x6f\x46\xf4\xc0\xee\x71\x7a\x12\x1c\xf3\xfb\x57\x8a\xbb\x55\x0c\x51\x94\x01\x8a\x3c\xcf\x1b\x78\x9e\x07\x8d\x00\xb1\x06\x90\x08\xed\x5a\xed\x28\x6f\x27\x29\x6d\x07\x6d\x81\x8a\xce\x98\x42\x7b\xc1\x1a\x63\xc1\x56\x24\xed\x9a\xde\xee\xef\xed\xf5\xf7\x87\x6c\x64\xfd\x04\xec\xed\xf5\x8e\xf6\xbb\x00\xd0\x1d\x0e\xd4\xb9\x0f\x4f\x4e\x3c\x17\x22\xfa\x5f\x9e\xdb\x1b\x74\xf7\xf6\xfb\x3d\x17\x6a\x6d\x5e\xc4\xc3\x39\x01\x41\x74\x46\xac\x0b\xcd\x46\x5e\x17\x5c\xa9\x77\x08\x37\xf9\x45\x94\x4c\xe2\x65\xc8\x83\x54\x95\x03\xab\x12\x1b\x58\x5b\xa7\xf3\xff\xd5\x41\x2d\x8c\x8f\xb5\xb7\xdc\x6b\xc2\x19\x1a\x0b\xba\xbe\x90\x5f\xb2\x0d\x46\x34\x88\xa3\xc9\x73\x3e\xc6\x1b\xf4\x1c\x3d\xb1\x92\x5f\x74\xff\xc7\xf7\x04\x17\xb6\x44\x5c\x33\x29\x88\x5a\x9b\xce\xb2\x86\x45\x9c\xe6\x7b\xa5\x59\x5c\x53\x48\x33\x1d\xc0\xac\x34\x97\x8b\x74\xf0\x9f\x13\x8d\x0d\x3b\x6c\xb6\x6e\xf3\x01\x93\x40\x33\x94\xe8\x5a\xba\x3a\xf0\x19\xda\x30\x67\x53\x02\xa1\xdc\x9a\x78\x10\x32\x3e\x06\x2f\xd9\x93\x5f\x20\x0b\x34\x4b\x3e\xb3\x8c\x4c\xb7\x70\x91\xe7\x5c\x83\xcb\xd8\x60\x47\xda\xca\x47\x53\x6c\x16\x3c\x34\x33\x00\x76\xbc\x75\xb2\xe0\x81\x9f\xbd\x8d\xbd\xaa\x91\x25\x8c\xc6\x28\xc7\xee\x71\x74\x92\x1f\x43\xe9\x15\xa3\x8e\xc5\xa3\x9c\x43\x0b\xa3\xfc\x6d\x6a\xdb\xd5\x77\x25\x75\xe7\xe3\xd2\x62\x3f\xd8\x58\xbc\xcd\x21\xb8\x7a\xf5\x70\x41\x75\x63\x26\x53\xec\xc8\xc8\x82\x04\xd4\x17\x90\x5c\x15\x64\x1b\x5d\xdc\x93\x51\x6e\xd4\xfc\xe5\xf3\x20\x7e\xce\x17\x7e\x63\xfe\xe4\x47\xdb\x16\xcf\xab\x02\xd7\x34\xc8\x34\x39\x0d\x32\xba\x45\xaa\x29\xdf\x55\xf8\x54\x99\xfc\xa4\x64\x53\xf9\x3a\xc5\x12\xf3\x9b\x49\x26\x2f\x14\x73\x34\xd9\x40\x14\x3c\x29\xc3\x04\x28\x2d\x65\x98\x14\xa5\xdd\x40\x7d\x89\x31\x0e\x5e\x24\xc3\xd4\xc3\xda\x34\xcf\x1f\xcd\xa2\x6f\xcf\x6d\xe5\x9b\x13\x28\xbf\xda\x3a\x83\x4f\xc5\x1c\xd4\x55\x2f\x6f\x5f\x5d\xef\xf2\x09\x79\xbc\x1e\x37\x67\x4b\xa5\xaf\x8d\xde\x20\x3e\xd9\x5a\xe9\x33\xfb\x4b\xbf\x07\x81\x80\xb9\x7d\x5d\xad\x7d\x5d\x97\x80\xd7\xe4\x75\xbd\x28\x7c\x5d\x0d\xe4\x77\x6f\xbf\x6a\xd9\xea\x79\x32\xbc\xed\x51\x0f\x3a\x7f\x3d\xff\x3b\x57\xf6\xef\x4b\x40\x01\xaf\x37\x10\x88\x02\x5e\xaf\x27\x20\x05\x78\x3c\xf5\x50\x06\x44\xe1\xa0\x02\x3c\xbe\x3c\x0f\xd3\x3e\x38\x14\xb0\x02\x7b\x47\x02\x55\xe0\xe0\x00\x72\x40\x81\xfe\xbe\x80\x13\x38\x38\x92\x70\x02\x03\x57\xc2\x09\x30\xce\x7b\xa3\x90\x86\x1f\x94\x61\xde\xb9\x74\x5f\xf9\x8e\x05\x42\x0e\xba\x94\x36\x7d\x57\x3c\xa1\x07\xd1\xb5\x34\xf6\xfb\x2c\x11\x4b\xd0\x17\x7c\xc9\x31\x02\xae\x9d\x29\x3a\xc3\xdf\x9d\x29\xfa\x86\xa9\x8a\xf7\xfe\x15\x53\xe7\x2f\x57\x97\x17\xe8\x5f\xf8\xab\x6d\x7f\x75\x04\x58\x70\x34\x7d\x44\xef\x70\x08\xac\x9b\x59\x14\x86\x24\xb1\x20\xba\x60\x8f\xd5\x38\x3c\x1f\xf1\xaa\x70\x16\xd2\x10\xfa\x63\x7e\x2e\xac\xb2\x6f\x63\x82\x3e\xe1\x18\x58\x39\xaf\x61\x27\x23\x77\x51\x4e\xb3\x47\x0b\xa2\xf7\x65\x32\x13\x7d\x7e\x63\x8f\xe9\x62\xa7\x4c\xf9\x09\x6f\x20\x62\xfc\xd8\x74\xf7\xfe\xcd\xb6\x3b\x9d\x2b\x67\x8a\xfe\x8c\xa9\xf3\x3f\xe2\x1b\xf4\x33\xee\xfc\x79\xbd\xee\xfc\xb9\xfc\xb8\xfa\xc4\x23\x48\x9f\xcd\xa2\x38\x44\x3f\xe0\xc4\xb6\xf3\x26\xe5\xcd\x41\x07\x9f\x83\x53\xb0\x2a\xf8\xce\xb9\x6a\x36\xc3\x3a\x2d\xf7\x56\xb9\xc3\x1f\x14\xd0\x61\x9c\x86\xfd\x0b\x61\x45\x99\x5d\xea\xa3\xbf\x80\x9f\x10\x85\xad\x44\x3b\x06\xfc\x34\xa2\x63\x74\x2a\x33\xa1\xc4\xb6\x49\x07\xe3\x9f\x6c\xfb\x94\x65\x44\x09\x2c\xfc\x53\xf4\xef\x06\x9f\xe9\xf7\x23\x32\xc6\xe7\xe0\x9b\xe1\x77\xa2\x81\xeb\x9c\x9b\x6f\x98\x20\x5a\xa0\x5f\xf0\x8f\xb6\x2d\x47\xdb\x18\x39\x47\x85\xb5\x1f\x6e\x2e\xb1\x8d\xdc\xa4\x68\x84\x44\x35\x55\x66\xdf\x0a\xf4\xa1\x8a\x9e\x98\x54\xbc\x43\x7f\xb2\xed\x0f\xe0\x37\x9e\x8c\xee\xb9\x2c\x86\x6f\x84\xb3\x36\xba\x07\x09\x44\x19\x78\x8f\x28\x1c\x82\xc4\x21\x9a\x7e\x38\xf4\x39\x7a\x07\x6d\x9b\x8c\xde\x8d\x47\x74\x6c\xdb\x40\xfe\xc2\x22\x5a\xf0\x39\x48\xb4\x1b\xc0\x6d\x4c\xfc\x07\xe0\xf2\x08\x81\xdc\x5b\x9a\x7f\xbb\x5e\xb3\x81\x7d\x87\x1e\x80\x87\x56\xdc\xd1\x5e\x15\xe0\x42\xf4\x83\x6c\x28\xf4\x4f\xe5\xaf\x02\xfd\xbd\x6e\x63\xc8\x36\x1b\x8d\x8d\x89\x12\xbc\x00\x14\x3f\x72\x74\xe4\x08\xbb\x28\xc5\x2a\x30\xe4\x71\x7a\x12\x1d\xc3\x0f\x80\x09\x92\xc9\x28\x62\x07\x19\x3a\xca\xca\x00\x92\xa4\x40\x7f\x6d\x98\xc4\x8f\xe6\x35\x06\xbe\x01\x3c\xb8\x5d\xe9\x50\x22\xfd\x49\x7f\xb2\x6d\x36\x42\x44\x20\x13\xff\x86\x08\xe4\xa6\x96\x80\x72\xd4\x3a\xa9\xef\xe0\xbf\xdf\xf3\x1f\x32\x8d\x8d\x1d\x0f\xde\xf7\x6e\x3c\x22\x63\xb8\x5e\x53\x58\xa0\xbf\x6c\x62\x5e\x10\xfc\x58\x9d\x13\x4e\x81\xb2\x3c\xca\xcb\xfb\x0d\x51\x58\x52\x30\x31\x9c\x5e\x92\x4a\xbe\xca\x84\xad\xd7\x95\x09\xe5\x83\x9e\x14\x05\xfa\x9f\x66\xa0\x46\x94\xe0\x33\xc0\x5a\x02\xd5\xd1\xd1\x3d\x4e\x0c\xf8\x08\x5e\x0b\x4e\x04\x84\xc4\x7a\x4d\x31\x7e\xc7\xff\x0d\xd6\x6b\x75\xe2\x2b\x05\x83\x02\xfd\x6d\x6b\x2d\x9c\x22\x51\x84\xcf\x40\x32\xfc\xcd\x17\x35\xa6\xac\x46\x76\x32\x55\xa7\x5d\x76\x40\x15\x1d\xc3\x91\x08\x6e\xb1\x5e\x27\x7c\xfc\x7f\xe2\x7d\x4d\x45\x95\xef\x47\xb4\x9c\xe4\xb4\x68\xfd\xb8\x5e\x83\x14\x80\x6f\xa6\xff\xb5\x74\x96\xa9\x2c\x18\x79\xaa\xd5\xe8\x30\xc0\x12\xbc\xb8\x3c\xd8\x1a\x26\x9a\x1d\x4b\x68\xe6\x09\x9e\x6c\xca\x4d\xcd\x4a\x5a\x64\x78\xdf\x27\xe2\x34\x24\x08\x49\x9a\x1e\xff\x86\xf8\xb2\xd3\x74\x22\x7e\x8e\xde\x8d\x39\x95\x81\x92\x6c\xf8\x5a\xfb\x41\x09\x74\x6c\x21\x25\x50\x63\xc1\xb4\x13\xdb\xfe\xd9\xb6\x7f\x00\x3f\x35\x99\xaf\xe6\x84\xfa\xb4\x80\xe8\xdf\xdc\x13\xfc\xa5\x00\x47\xd2\x1d\xe8\x1b\x5b\xae\x97\xce\x14\xff\x05\x5d\x3b\x53\xfc\x01\x29\xbb\x65\xb6\x79\xe1\xff\xe1\x8f\xfb\xec\xf1\xaf\xe8\xca\x99\xe2\xbf\x31\xce\xd9\xe1\xc8\x3f\xb6\x9d\x82\x9f\x90\xd5\xb4\x27\x59\xe8\xaf\x9c\xc0\x67\xce\xb4\xc9\x91\xfd\xdf\x20\xe4\x1e\x32\x10\x45\x20\x72\x3e\x74\x23\xe7\x97\x6e\xe4\xbc\x7f\xd3\xf9\x11\xad\xc4\xf4\xf8\xdf\x8a\x92\x1f\xfc\x2f\x36\xe3\x9d\xa1\x28\x3f\xe3\x57\x0e\x57\x8b\x8c\x04\x21\xdf\x02\x15\x9b\x45\xdc\x36\x13\x49\x2b\x39\x24\x0c\x3f\x90\x84\xdb\x41\xfc\x22\x14\x19\xdb\x2a\x32\x00\xa4\xd0\x32\xc9\x27\xe9\x82\x15\x97\x57\x30\xcc\x09\xc1\xee\xf1\xff\x2a\x2a\x20\xe4\x18\x86\xe0\x7f\x47\x44\x84\xad\xd5\xe4\x4e\xf0\x67\x10\x3a\x39\x4d\x33\x02\x51\xc6\x3e\xa1\xea\x60\x7a\x92\x91\x63\x38\x05\x94\x8c\x32\xf1\x11\xf7\xdb\x51\x1d\x96\xf4\x68\x21\xb6\x74\x9a\x15\xad\x9f\x10\xe9\x62\xcb\x82\xc3\x4f\x23\x32\xf6\xd9\x3f\xf8\x1b\x9b\x6a\xf4\x8d\x3c\xbe\xaf\x7d\x14\x4d\x41\xe7\x17\x36\xb8\x75\xba\x27\xa6\x32\x47\x6c\x3d\x8c\xdc\x75\x07\xda\x51\xd2\xfe\x04\xa3\x29\xf8\xc4\xf8\xb6\x11\x7b\x99\x16\x68\x99\x93\x2b\x42\xa9\x09\xa0\x0d\x57\x3f\xe3\x8e\x2b\x5e\x45\xf3\x85\xe9\xe6\xc2\x5f\x79\x85\x9c\xdd\xb2\xa3\x75\x24\xcb\xa7\x2f\xa1\xe9\xf0\x1c\x10\xe8\xff\x1d\x9c\x0b\xe7\xbf\x02\xd5\x1c\x1e\x3f\xa0\x0d\xe8\xca\xbf\xa3\xad\xfe\x62\x7f\x41\x0d\x60\x88\xfe\xff\xd4\x52\xc5\x5c\xe4\xfe\xdf\x0a\xc1\x08\x12\x82\xab\x82\xcb\x95\x33\x05\x7c\xe7\x33\x26\x31\x21\x46\xdf\x9a\xcb\x6b\x98\x56\x56\xd2\xad\xf4\x13\x43\x5f\x6d\xbb\x2c\x0f\x74\x7e\x5c\xaf\xf3\x86\xbb\xb7\x6f\x40\xdf\xbb\x09\xcf\x5a\xab\x83\xff\x05\xc4\x96\x63\xad\x0a\xfe\xb4\x0a\x7c\x52\x18\xcf\xa2\x61\x62\xb5\x41\x88\x2c\x26\x7e\xf2\x63\xa5\x94\x3c\xb7\xe8\x14\xd9\x16\x3c\x22\x63\x14\x61\xef\x78\x83\x13\x46\xc7\xca\xa5\xb1\xe4\x88\x91\xa0\xec\x29\xc8\x30\xdb\x3b\xbc\x31\x02\x77\x80\xf1\x6f\x7d\xe5\xcf\x77\xd5\x5f\x0c\x73\x92\x39\x7f\x5f\x81\x13\x96\x1b\x65\x93\x01\x28\xc7\x19\xca\x6a\xd6\x08\x10\x75\x7e\x61\x42\x82\x26\x55\x88\x58\xdd\x98\xa2\x7f\x49\x0b\x8d\xaf\x02\x3e\x13\x19\xe2\xdb\xe8\x62\xac\xa2\x57\x1a\xa9\xe8\xc2\xcc\xa3\x82\x38\x40\xb4\x04\xdf\xf4\x1a\x65\x4f\xec\x60\xad\x22\xa4\x30\x16\xb7\x04\x52\xa6\x97\x43\x2b\xe1\xe1\x34\x86\xa6\xb4\xdd\x77\x7b\xbe\xe7\xf6\x50\x09\x47\xb8\xef\x7b\xee\xbe\xf6\x41\x29\x6d\xfb\x15\x92\xc1\xc0\xf7\x7a\x83\x32\xaa\x79\x2d\xa0\xa7\x37\xd8\xf3\xbd\xc1\x1e\xf2\x06\x87\xbe\x37\x60\xef\x8f\x7c\x6f\x70\x54\x22\x1d\x18\x97\x9e\x7b\x47\xfe\xde\x51\x83\x9b\xb3\xf4\x75\x71\xfd\x03\x17\x1d\x1c\xf8\x07\x0a\xf1\x4f\x22\x1d\xf4\xfc\xa3\x5e\x73\x3c\x84\x7a\x3c\xcf\x67\xe2\xb1\x0e\xd4\xed\x69\xbf\x0a\x00\xc0\x95\xe6\x81\xd2\x94\xe4\xf2\x5c\x16\xcb\xf8\x07\x3c\xc6\xed\x8f\xcb\xe9\x94\x64\xf2\xe0\xb7\xc7\x0e\x7e\x49\xe5\x45\x88\x13\xe7\x5d\x40\x83\x9f\x23\xf2\x80\x66\x38\x73\x4e\x7f\xfc\xd9\xb6\x63\x27\xca\x79\xca\x14\x4f\x8c\x29\xe5\x2a\x0b\xee\x09\xf5\xf3\xc7\xf3\x5f\x34\x42\xde\x2f\x42\x0b\x1f\x77\x30\x9e\x40\xb4\x32\x8a\xf7\x27\x85\xf4\x87\x15\x48\x0c\x99\x73\x76\x79\x71\x75\xfd\x55\x86\x04\x16\x99\xb8\xb7\x1f\xab\xad\x69\x91\xcf\x6c\x7b\xc6\x31\xd2\x72\x1e\x65\x60\xa1\xdc\x0e\x91\x52\xff\xfc\xf4\x64\x8c\xa3\x4e\x42\x1e\xda\x13\xd0\x83\xda\xe6\x53\x4a\x1d\xce\xed\x23\x25\x9f\xca\x28\x5a\xd5\xf6\x34\x85\xc4\xd6\x96\x5e\x1d\x8c\xa7\xb6\x5d\xb2\xd9\x9a\x71\x57\x24\xcd\x63\x4c\x71\x1c\xcb\x44\xa3\x56\x94\xf0\xa8\x37\x19\x9b\xb7\x14\xd4\x62\x69\x67\x1c\x61\x82\x3c\x80\xa5\x58\xa9\x13\x08\x41\x00\xf2\x9d\x04\x42\xe9\xd1\x14\xca\x5a\x16\xf2\x49\x7a\xd1\x24\x6f\xf3\x63\xc8\xfd\xb6\x7e\x8a\x12\x7a\x08\xe6\xdd\x2e\x9a\x39\x77\xea\x31\xe9\x76\x4b\xe5\x63\x5c\x14\x25\x84\x8d\xd9\x7f\x23\x2c\xb2\x61\xbb\x51\x0d\xa1\xed\x0d\xfa\xbe\x37\xe8\x23\x6f\x30\xf0\xbd\xc1\x60\x1b\xbc\x45\x89\x7c\xfa\x5c\xdc\xd7\x92\x90\x3a\x82\xe4\x19\x25\xa2\x95\xa2\x4d\x5f\x90\xbf\xa6\x55\xe9\x5c\x5f\x6d\x44\xa9\xdf\x3c\xda\x80\xf3\x1d\xf4\x20\xb0\x38\x2a\x64\xbf\x67\xa1\xc1\x33\x7a\x69\xc6\xbe\xeb\x7a\x1b\x91\xa8\x74\x37\x83\x9e\xef\x0d\xb8\xee\xa6\x1e\x4c\xb5\x52\xd9\xfe\xc0\x42\x87\x7f\x64\x65\x5e\x73\x65\x1f\x13\xea\xed\xd7\x8c\x2e\xff\xd3\xaa\x36\x63\x67\xab\xaa\xfe\xf0\x21\xec\x6f\xad\xea\xb0\x66\x75\xfc\x9f\xd6\x34\x68\xae\x89\xad\x8f\x3f\x7c\x00\xf7\xb6\xd7\xf5\x87\x8f\xe0\xfe\xf6\xba\xfe\xe8\x21\xdc\xc4\xca\xfe\xc3\xaa\xd2\x51\x6a\xcb\xda\x0e\x9f\xb7\x30\x12\x7e\xfe\x87\x62\x73\x1c\xb8\x10\x34\x28\x44\xf9\xf6\x78\xb4\x27\xd1\x55\x0f\x85\x2e\x94\x6d\x97\x13\x69\x97\x24\x54\xa1\xec\xc7\x0c\x77\x12\xe7\x74\xc2\xce\x37\x7f\x13\xd2\x9f\x6d\x5b\x95\x67\x2b\x4a\xda\x09\x9a\xe2\x80\xb1\xd6\x5f\x48\xf0\x0d\x2d\x9a\xdc\xda\xd1\x1c\xc7\xce\x72\xca\xcf\x34\xb5\xb8\x67\x7f\x98\x85\x13\xba\xc3\x1b\x91\x85\xa3\x29\x58\x32\x31\x51\x32\xd9\x69\x79\x0f\xd1\x11\x7b\xcc\x1c\x4c\xa4\x4e\x90\x35\x9e\x07\x0c\xe6\x41\xeb\xb9\x3f\xe8\x50\xa3\x5e\x8c\x35\xc2\xc0\xf6\xd8\xc3\x31\xb7\xa3\xda\x28\x0e\xc9\xb8\xc3\xb7\x78\xc3\xdc\x4b\xe5\x41\xf7\xe8\x0e\xc5\xa8\xe3\xb2\x49\x6f\x85\xb6\x3d\xb3\x6d\x90\x03\x90\x09\x14\x84\xb3\x52\xab\x00\xee\x2b\x0d\x2d\x25\xce\x3b\x88\x02\xe7\xe2\xfc\xfc\x1d\xee\xb8\x28\x02\x23\x4b\x68\x2a\x2d\xc4\x8e\xbb\x16\xb2\xee\x08\xb7\x4a\x20\xd4\x1a\x6f\xe2\x86\x51\x7c\x5b\x89\x6f\x4d\x47\x64\xdc\x4a\x01\x45\xc4\xc8\x4b\x51\x24\xc7\x93\x32\xe9\x7b\xc1\x64\x65\x79\x63\x3b\x65\xa2\xb7\xf8\xc5\x37\xe1\x4c\x9c\x78\x52\x79\x29\x3b\x1d\x91\x31\xff\x5c\x9d\x38\x58\x33\x30\x26\xc2\xd7\x36\x55\xf7\xf7\x46\x50\x75\x44\x05\xe2\x18\x3b\x67\x98\x00\xc9\xca\xfe\xcc\xf5\x07\x2e\x1a\x1c\xfa\x83\x43\x61\x85\x56\x05\xdb\x11\xd2\xa6\x8a\x8b\x50\x0f\xdc\xda\x0c\x08\x7d\xa8\x24\x4c\xee\xea\xa1\x67\xe7\xff\x2f\x06\x79\x1c\xcd\x07\x64\x06\x21\x49\xa3\x3c\xe1\x77\x8e\x28\xea\x78\xf5\x20\xd6\xe5\x58\xb0\x3e\xd7\x43\xcc\x3e\x1d\x9b\x63\x4f\x09\xd5\xae\x72\x46\x94\xc8\x02\x7d\x19\x2a\x71\xd0\xd7\x77\xab\x5c\x3a\xb2\xd0\x6a\x1a\x07\xf4\x73\xb0\x68\x08\x3a\x93\x73\x48\x30\xd3\xb2\xb3\x9d\x0a\x55\x65\x04\x62\xc3\xf8\x29\x00\x31\x62\x2d\x00\x39\x8a\x51\x8c\x28\x72\x91\x87\x0c\x7b\x88\x91\x37\x86\x28\x17\x92\x59\xbf\x0f\x81\x25\xab\x14\x42\x59\xdd\xdb\x47\x40\x31\xf5\xfd\x7e\x1f\x0d\xfa\xfe\xa0\xaf\x04\xb0\x3d\x7f\x9f\x53\x41\x3d\x14\xed\xd3\x58\x3d\x47\xc2\x64\xa1\xd6\xe7\x27\xec\x3c\xb4\x09\xdb\x2b\xec\x39\x54\xbf\x4a\xb3\x90\x02\xad\x44\x17\xfa\x47\xbe\x79\xe7\xfd\x44\x3c\x59\x89\xf0\x72\x58\x36\xd8\xc4\x4e\x27\x09\xcd\xa2\x6d\x0d\xd6\xe6\x76\xee\xa1\xef\xb9\x86\x6f\xf5\x13\x51\x65\x65\x75\xea\x36\xba\x2f\x77\x9a\x23\x49\x30\x7b\xde\x66\x1b\xb6\xa9\x51\xf2\x2d\xea\x82\x00\xe5\x38\x11\x9e\x49\x11\x8f\xc6\x99\x81\x9c\xed\x4d\xab\x02\x85\xd8\x3d\x5e\xaa\x71\x0d\x8f\xa1\x3e\x85\x80\x00\x73\xa4\x39\xbc\x1c\x85\xdc\xf0\xc0\xb6\x53\x30\x11\x90\x67\xb2\xbf\x93\xa2\x82\x65\xa2\x0e\xc3\x7b\x9e\xbf\xe7\xd5\x51\x7d\x9e\x88\x86\x6b\x8c\x77\x43\x5f\xf9\x49\xff\xd5\xc3\xfd\x1a\x18\xa9\x3d\xe9\x39\xac\xf6\x78\x7e\x94\x4d\x25\x78\xb9\xb6\x04\xf8\x6a\xe2\x50\x4e\xa3\x24\x88\xe3\xc7\x86\x3b\xff\x48\x42\xbf\x2a\x90\xce\xf5\x3a\x51\x3f\xd9\xc2\x6f\x50\x9d\x90\x96\xa9\xf0\xe5\x28\x8c\x41\x79\x1f\x55\xa2\x27\xf1\xcd\x03\xc0\x0d\x9c\xc9\x72\x3c\x18\x77\xf7\x09\x7a\xe5\xd7\x42\x13\x29\x3f\x56\x03\xaa\x90\x1c\xe5\x01\x4d\xe0\x30\xd6\x22\x14\xd6\x63\x06\x3f\x63\x6e\xa1\xfc\xb3\x45\xf4\xd8\xdd\x9f\x05\xe6\xfb\x3f\x76\x3d\xf7\x1f\xce\x3f\xc2\x2e\xe0\xff\xc2\x21\x68\x7f\x4e\x6f\xa3\x98\xfc\x63\xf7\x1f\x0f\x5d\x38\x6c\x5f\x05\xd3\x20\x8b\xfe\xb1\xbb\x2b\x7c\x6d\x12\xd3\x82\x2c\x32\x2c\x31\x16\x41\x78\x9e\x34\x1b\x63\xbf\x8e\x8f\xf0\xbb\x33\x69\xd9\xe2\xfa\x5e\xdf\xd5\x38\x95\x25\x79\xbd\x4a\xc3\xf2\xff\xa0\xe7\x57\x34\xd8\x16\xea\xfe\x95\x7d\x77\x9f\xed\xfb\x53\xd6\xcb\xa6\xe1\xc2\x27\x32\x7d\xed\x46\xcf\x07\x1e\xf1\xaf\x79\x8f\xac\x9a\x21\xc3\x93\xd1\x8a\xcd\xba\xbf\x46\x77\xb3\xd7\x56\xde\x2b\x2b\x3f\x4f\xc2\x5a\xd5\xfd\x7a\x90\x51\x61\xc6\x00\xac\x20\x7f\x4c\x26\x1f\xe5\xfd\x86\xf8\x48\xe8\xfc\xf8\x47\xb5\x1d\xb2\xb4\x09\x23\xc0\xdb\xef\x95\x91\x54\xa4\x4f\xac\x32\xb9\x38\x94\x60\x62\x12\x95\xe6\x70\x5f\xba\x56\x32\x4e\x15\xe3\x1c\x58\x91\xae\x10\x2d\xd9\x73\x25\xd2\x06\x9a\xe0\x40\xa8\xe1\x50\x88\x57\x67\x57\x57\x5f\x97\x31\xf9\x14\xe5\xd4\xef\xb8\xe8\xec\xea\xea\x8a\x3e\xc6\xe4\x1d\x99\xc4\x41\xc6\x63\x6f\xf9\x1d\x8f\x25\xff\xcc\x18\xad\xc8\xe6\xa1\xb3\x38\x22\x09\xfd\x4a\x26\x54\xa5\xbc\xbb\xfc\x5c\x7b\x14\x55\x1a\x09\xd7\xe9\x37\x92\xa8\x8a\xde\x05\x34\xb8\xce\x82\x24\x9f\x92\xec\x23\x25\x73\x95\xef\x7d\x14\xeb\x5a\xfe\x7c\xfd\xf9\xd3\x69\x1c\x9f\xa5\x71\x2c\xd0\xd3\x55\xe2\x66\xca\xfb\x34\x9b\x9f\xc7\x84\xd1\xab\x4a\xba\x22\x2c\x8f\x91\xf8\x99\x84\x51\xa0\xea\xff\x1c\xcd\xc9\xf5\xe3\x82\xf0\x81\x60\x6f\x2f\x82\x39\x09\x2f\xd2\x90\x30\x19\x8b\x3d\xa7\xa1\x1e\x95\x2f\x41\xc4\x7a\xfb\xef\x25\xc9\x75\x0f\xbf\xc4\xcb\xbb\x28\x29\x7f\xe9\x82\xae\x7e\xfe\x20\xb4\x6c\x2a\xe7\xd5\xcf\x1f\x44\x9c\x33\x23\xe1\x4b\x40\x67\x57\xe4\xce\x4c\x49\xa3\x84\x1a\xcf\xd5\xe1\xbb\xfa\xf9\x83\x18\xad\x34\xd3\x43\x75\xc5\x3d\x76\x84\xde\x4c\xa7\xb1\xc9\xbb\x9a\x11\x42\x55\xdb\xaf\xc9\x77\x7a\x9d\x05\x93\x6f\x67\xe5\xf4\xe9\x34\x9d\x90\x2e\x27\xaa\xbd\x05\x9a\xe1\x0c\x84\x90\x43\x80\x4c\xdf\xce\xd4\xd5\xfd\xb4\xdb\x95\xf0\x1f\x68\x8e\x67\xa3\xe9\x18\xdd\xe3\x70\x34\x1f\xa3\x3b\x1c\xb1\x3f\xb7\xf8\xce\xb6\x8d\x60\xdb\x1c\x80\xc1\xb6\xc1\xed\x28\x1e\xaf\xd7\x29\xb8\x45\x31\x9a\x40\x74\x3b\x5a\xca\xc7\x25\x9a\x43\x14\x8c\xe6\x63\x3c\x41\xf7\x10\x32\xea\xe7\x2a\x56\x0a\x6f\x47\x8b\xf1\x7a\x9d\x80\x5b\xb4\x40\x74\xb4\x18\x4b\x29\xbc\x0c\x07\x54\x0b\xdf\xe2\xed\xf7\x7c\xaf\x54\xfb\x71\x9d\xf8\xe1\xbe\x7f\xb8\xcf\x57\xd9\x73\xa2\x5c\x7f\x50\x6a\x01\x7f\xe4\x70\x5d\x1f\xe7\x73\x46\x2b\x94\xf8\x1c\x59\x0c\x4d\x62\x12\x64\x66\x22\x4f\x90\x8c\x50\x80\x15\x2b\x06\xd8\xdf\x1a\x49\xf7\xb0\x0a\x98\x28\xd9\xfd\x68\x2c\x35\xdb\x29\xde\xfd\x7c\xf5\xf1\xbc\xed\xfc\xc3\xd1\x1c\xdd\x0c\x91\xd1\xac\xce\x50\xd6\x06\x1b\xfc\xbb\x87\x52\xdc\xe1\x48\x4e\x12\x0a\x41\x65\x40\xbd\xd2\xda\x02\x24\x43\x83\xdf\x35\x5d\xdc\xd0\x21\xf5\xdf\x97\x16\xb3\x12\xf1\x58\x70\xc4\x14\x16\x5c\x5d\x5c\x14\x1c\xf9\xf1\x43\x37\x73\x7e\xe4\x98\xa9\x29\x1f\xc4\xeb\x68\x4e\xd2\x25\xf5\x03\x40\x9d\xf2\x11\xb2\xd3\xfc\xc7\x84\x92\xec\x3e\x88\xd5\x3b\xf5\x2c\x2d\x46\xcd\x3d\x45\xcb\x13\xfd\x6a\x28\x61\xc4\xbd\xe9\xfa\x6e\x9f\x0b\xf5\x6e\x4f\xfc\xf1\x20\x32\x8f\xfc\x7b\xfc\xc4\xc6\xf8\x6c\xdf\xf5\x38\x25\xf4\xdd\x1e\x9f\xa2\xbe\xdb\x17\x52\x0b\x2f\x79\xaf\x5e\xb2\x50\x9c\x3f\xb3\x87\x6f\xd8\x5f\x65\x98\x3a\xb3\x20\x37\x64\x6f\x94\x34\x89\x74\xe2\x3e\x6a\x28\xef\xca\x57\x05\x8a\x70\xa2\x6d\x8d\xd6\x6b\xeb\x4f\x7f\xd2\x0c\x9c\xdb\xce\x54\x36\x11\xfe\xbe\xba\xad\xa0\x00\x27\x8e\xc1\xe3\x79\x16\x93\xe7\x97\x38\x1b\xb9\xb0\xa0\x42\x89\x02\x2f\xe0\x11\xee\x75\x17\x4c\xe3\x8b\xc9\x90\xfa\x13\x94\xaa\x6e\x8a\x6b\x5f\x10\x99\x00\xbe\x01\xd7\x3d\x9c\x83\x64\xbd\x1e\x19\xf6\x1d\xce\x4d\x94\xdc\xa7\xdf\xc8\x46\xa4\x58\x41\xab\x56\xbe\xcc\x17\x24\x09\x89\x90\x4b\xac\x56\x9d\xae\x23\x94\x8a\x8b\x44\xf2\x9d\x4c\x96\x54\x44\xe4\xc7\x89\xbc\x14\xe7\x55\x0a\x63\x90\x0f\x24\x11\x43\xd0\x8e\xf2\x76\x10\x67\x24\x08\x1f\xdb\xd9\x32\x49\xd8\x27\x22\xa2\xff\x24\x9d\x2f\x62\x42\x49\x28\x8a\xe0\xc5\xf2\x72\xd8\x73\x24\x8b\x4c\x55\x13\x2e\x81\x80\x7a\xc9\x9c\x39\xa1\xb3\x34\xc4\x11\xca\x9c\x20\xbb\xc3\xa9\x02\x9c\x09\x70\xe6\x84\x24\x26\x77\x01\xe5\x1c\x4e\x83\x95\x3c\x82\x40\x42\xe6\xe4\xbc\x96\x1c\x63\xbc\x84\x93\x34\xa1\x51\xb2\xd4\x42\x7c\x5e\x14\xac\x05\x09\xf9\x4e\x59\x03\x54\x3d\x90\xf1\x99\x84\xe2\xcc\xb9\x91\x7f\x83\xec\xae\xa5\x62\xff\x97\x0d\xd6\xf9\x79\x3f\x6a\xe3\x68\x8e\x11\x36\x3a\x2e\xba\xd0\xca\x9c\x30\xca\x17\x01\x9d\xcc\xce\xbf\x4f\xc8\x42\x1c\x00\xd8\x1b\x81\xec\x62\x49\x4d\x91\x51\x8b\x6d\x67\x4e\x70\x9b\x2d\x17\x3c\xba\x09\x7f\x2b\xca\x82\xad\x04\x1b\x93\xa3\x90\xa5\xe4\x34\xf3\x71\x4f\xd2\x6c\x1e\xc4\x16\x77\x75\xe6\xc4\xc2\x5a\x9c\xb0\xc1\x4b\x13\x32\x34\x5a\xe7\x97\xdd\xf8\x7b\x44\xe2\xd0\x42\x13\x3e\xe2\x0d\xa3\x27\x0d\x08\xf9\x7b\xe1\x26\x20\x8a\x2b\x8a\x72\x84\x44\x6d\xb6\x0d\xea\x43\x20\x27\x54\xe6\x94\xd3\x3a\x11\xfd\x2f\x0a\x8e\xa6\x1c\x40\x94\x16\x7a\xa9\xa8\xee\xac\x4a\xa0\xc9\x15\x2b\xdb\x57\x7d\x63\x42\xb3\x4f\x4a\xdc\x90\xa2\x8e\x3c\x29\xb3\xcb\x1a\x59\xee\xa4\x28\x0a\xe2\x3c\x64\xc1\x02\xe7\x2d\x81\xb8\xb4\x2a\xca\xd5\x39\x01\x70\x55\x36\x20\xac\x3c\xcd\xd8\x93\xc0\xc6\x63\x9f\x8c\xa2\x31\x6e\x36\x0a\x2a\x5a\x02\xa3\x4b\xae\xdb\x2a\xe2\x2d\x9a\xe3\x85\x6d\x2f\xc0\x02\x7c\x07\xa3\x31\x84\xb0\x35\xb7\xed\x79\x07\x33\x3e\x90\x29\xac\x85\x08\xda\x36\x98\xe2\xb9\x42\x69\x9a\x19\xc0\x77\xc6\x95\x6c\x8d\x33\x4c\x61\xd9\x91\x3b\xc6\x32\x47\x82\xcc\x91\x1a\x00\x45\x43\x63\x67\x9a\x66\xe7\xc1\x64\x66\x9c\x33\x19\x37\x1f\xd1\x71\xd3\x76\x27\xf5\xc1\x9c\xa3\xa8\x08\xaf\xb0\x1c\x97\x5b\x03\xe6\xb0\x65\xe6\xc5\x55\x7e\xa2\x3f\x08\x40\x05\xff\x98\x1a\xad\x48\x50\x00\x57\xfa\xb1\xcd\xbf\x14\xc8\x70\x62\xae\x62\x40\x46\xd1\x18\x11\x94\x0a\x22\x17\x1d\xeb\x60\xbc\x94\x34\x2e\x16\xc2\x52\x10\x28\x9e\x48\x18\x03\x59\x5b\x68\xdb\x96\x88\x4a\x57\x6e\x05\xa1\x1e\xf6\x10\x59\x37\x37\xc1\x43\x10\x51\x0b\x0e\xcb\xc8\x0b\xa1\x23\x53\x9b\x02\x48\x24\x92\x93\xb0\x03\x1c\xca\x61\xc5\x63\x47\xbc\x96\x43\xaf\xde\x43\xdf\x28\xb9\xa9\x44\xd9\x64\x4c\x50\x00\x26\x1b\x05\xaa\x61\xdb\x2c\xb7\xc8\xc1\x52\xac\x25\xc8\x07\x8d\x8d\x64\x51\x3a\x8a\x25\x1c\x61\x47\x28\x2f\x50\x00\xfd\x00\xc0\xa2\x9c\xc2\x47\x73\xd3\x25\x7a\x27\x1c\x51\xb9\x68\xc7\x15\xa4\x93\x4c\x98\x0a\x6a\x2e\xcc\x11\x2b\x50\xc9\x01\xa8\xc9\x23\xcb\xd2\x1c\xd1\x14\xdb\x06\x54\xf3\x02\xc5\xd4\x28\x67\x06\xf2\x8c\x2b\x5a\xd3\x54\xa0\x46\x41\x6b\xd1\x3a\x3b\x11\x25\x30\x7a\x32\x6c\x15\xaf\x67\xa4\xad\xaa\x6f\x87\x29\x11\xf6\x5b\x8b\x2c\xbd\x8f\x42\xd2\x0e\xda\xff\xcd\x3f\xfe\xef\xb6\x28\xcb\xd2\xa3\xb5\x2c\xc4\x46\x19\x83\x0c\x95\x1d\x10\x75\x98\x84\xc7\x18\xbe\x20\x3c\xad\xc6\x6e\x6e\x16\xa7\xc7\xfa\x88\x2d\x5b\x42\x02\x48\xc4\xee\x50\xba\x8a\x70\x0e\x0d\xe8\x88\x30\x52\x59\xc6\x94\x9d\x8c\xc6\x58\x02\x19\x21\xea\x30\x92\xc3\x84\xff\xf9\x94\x4e\xf4\xb2\xee\x94\x23\x55\x19\x64\x41\xa1\xe6\x10\xc3\xcd\xb6\x40\x3f\xf2\xc1\xcb\x46\x55\x8f\xa8\x68\x9d\x36\x8b\x4b\xda\x72\x71\x35\x15\x5f\x12\xdb\x4d\x29\x94\x33\xce\xfe\x29\x9d\xf8\x64\xe4\x8e\x8b\x96\xc7\xcd\x3b\x78\xd3\x39\x1f\xff\x94\x4e\x30\xe1\x2a\xf1\x5e\xf9\x46\x6a\xf6\xc4\xbb\xde\x98\xb5\x70\x4a\x49\x26\x9e\xfb\x63\xe9\xd8\x46\xb3\xc7\x73\xa1\x07\xd6\xd8\xf1\xba\xfe\x07\xe3\x50\xe0\xc8\x1d\x2a\x4a\x93\xf5\x7a\x55\xb4\x28\x9f\x4d\xac\x37\x18\x69\xfb\xce\x87\x01\x99\xb9\x31\x2d\x0b\x3c\xd7\x7e\x7c\x65\xb5\x78\xa4\xfa\x66\x65\x69\x4a\xad\x62\x8c\x88\xe6\xba\x37\x02\xab\x4a\x47\x35\x22\x14\xb0\xf3\x95\x2e\xf0\xbb\xbc\xc6\x2b\xdb\x39\x8a\xf8\x12\xa4\x25\x9d\x49\xd0\x87\x56\xb3\xb9\x97\x20\x0e\x0d\x4a\xcc\xa1\x88\xa2\xfc\x22\xb8\x00\x44\x3b\x2a\x49\x61\x70\xc7\x33\x20\x32\xda\x54\xc6\x0c\x3c\xee\x76\x93\xb7\x44\xe3\x9c\x44\x53\xa0\x70\x26\x50\x52\xda\x8b\x29\x5e\x35\x4a\xd8\x44\x30\xb2\xe5\x41\xb1\x5a\xb5\xf7\xda\x47\x4a\xe4\x70\x11\x2d\x4a\x51\x95\x13\x73\xaa\xa0\x45\x56\xec\xd1\xbf\x34\x78\xd3\xa5\xde\x2d\xb6\x20\xf6\x2b\xe6\x6e\xec\x8b\xf7\x15\xe0\xd8\x19\x9a\x55\x9e\x43\x34\x1b\x05\x63\x1c\x72\x71\x2c\x0e\xb8\x2d\x23\x2e\x45\x59\x75\xda\xb2\xd8\xd2\xcf\x37\x92\x1b\xac\xe3\x9b\x26\xa0\x06\xdf\xab\x6e\x60\x3b\x94\x1b\xe2\x09\xf8\xe0\xcd\x2a\x31\xc6\x8c\xb1\x96\xed\x5a\xaf\x29\x87\xef\x80\xb0\x40\xc4\x99\x07\xd9\xb7\xa6\x1d\x5a\xca\x01\x55\xe8\xee\x61\x63\x2a\x20\x68\x06\x7d\x40\x9c\x9b\x1b\x3e\x5e\x37\x37\x78\x86\x02\xbe\xbe\xd6\x6b\x40\xd8\xc0\x34\xb4\x8b\xc7\xfe\xdb\x26\x77\xdc\x43\x44\x58\xeb\x02\x2e\x56\x6d\x36\x6f\x25\x37\x50\x9f\x14\x05\xba\x03\xb7\xe6\x01\xc6\x78\x18\xa5\x5b\x05\x2a\x44\x9c\x53\xf3\xc0\x85\x6f\x59\x75\x2c\x05\x57\x4d\x0b\x10\x97\x34\x4a\x8c\x01\x8e\x4a\xa8\xd4\xfb\x32\x9a\x0c\xe3\x66\xb7\x20\x57\x1f\x40\x26\x4b\xa8\x85\xd2\x34\xe1\x20\x83\xc3\xc0\x0f\x38\xa1\x82\xa6\x2d\x5b\x7f\xcc\xf9\xb6\xb4\x7d\xd4\x1f\x70\x0b\x8a\x3b\x36\x48\xf7\xd5\xc1\xb5\xd0\xfd\x13\x32\x24\xba\xd7\x07\xca\xcd\x2c\x3a\xb8\xae\x2e\x6c\x6c\xb1\x41\xfa\x46\x1e\xf3\x06\xfa\x34\x90\x8c\x32\x11\x52\x83\xaa\x80\x6e\xe5\x52\xcd\xc8\x3d\xc9\x72\x02\xa0\x46\x8d\x6a\x67\x8a\x19\xd0\x12\xf0\x48\xa2\x59\x3b\x8b\x74\x01\x04\xa0\x91\x28\x51\xe9\xb3\xe5\x92\x4f\x50\xa6\xf9\x41\x56\xe8\x97\x8a\x01\x64\x05\x6b\xae\xb8\x3a\xc2\xdf\xd1\xb9\x41\x5b\x2b\x63\xd5\xf8\xe7\x88\xb3\xc7\xba\x7d\x83\x8c\x0e\x47\xee\x55\xa4\x3d\xce\x44\xe4\x6f\x7e\x7e\x93\x71\xea\xd8\x4f\x33\xc4\x9d\x66\x51\xfc\xa1\xb2\x45\xf1\xa4\xda\x96\xc9\x92\x0c\xc1\xa4\xbe\xb5\x28\x7e\xfe\x00\x51\x87\xc0\x8a\x29\x38\x67\xf0\x16\x15\xd2\x8b\xc6\xb8\xd4\xb2\xa6\xb8\xf0\x87\xb6\x2d\xb9\x72\x97\x96\x38\x68\xca\xad\x81\x8e\xd5\x6e\x5d\xa0\x9c\xa6\x0b\xbf\x72\x27\xa4\x3b\xe3\x4a\x97\x8b\x5a\xe3\x46\xee\xd8\xd8\xae\xaa\x32\x0b\x11\x32\x8b\x38\xa9\x12\x53\xfa\x10\x3b\xd2\x7d\x10\x17\x68\xe3\xac\xda\x38\x09\x1c\x34\x4c\x16\x24\xb5\x32\x2c\xbd\x65\x88\xf0\xa6\xc5\x4f\x20\xf7\x57\x75\x22\xe3\xa3\xab\x45\x9a\x0c\x25\xcf\x0a\x2e\x9d\x4e\xa2\xb1\x60\xa3\x7a\xa7\x4b\x64\xab\xe8\x04\xbb\xc7\x3b\x3b\x91\x02\x75\xae\x8f\x4e\x34\x46\x01\x4e\xeb\x23\xc4\xb7\x6a\xc6\x37\x1c\xb1\x79\xc3\x52\xde\x26\x49\x68\x49\x3c\x68\xf1\xee\x2d\xd6\x54\xa8\x83\x83\x89\xc9\x4d\x91\xa5\xe4\x17\x0b\xa2\xd8\x48\x2e\x85\x17\x51\x56\x6e\xdb\x71\x95\xa0\xdf\xa6\x5a\xf6\x29\x2b\x2f\xd3\xb8\xb1\x4c\x2d\x7f\x59\xa8\xf9\x85\x91\x5a\x28\x35\x46\xfe\xea\xba\x0a\x05\x37\xd6\x89\x37\x95\x3f\x34\x7b\x6c\xe7\x34\xa0\x5c\xbf\xdf\x7e\x88\xe8\x2c\x5d\xd2\x36\xff\xbc\x9d\x66\x6d\xd9\x02\xeb\x77\x34\xb8\x28\x0a\x24\xf4\x1e\x35\xb3\xa3\x32\x9c\xf1\xd6\x99\x4f\xc4\xcc\x97\xfa\xb5\xda\xcc\x27\x63\x81\x11\xba\x31\x8b\x7a\x71\x46\xd5\x89\x92\x41\x30\x79\xe3\x23\xb3\x99\x92\xb4\x22\x01\x22\x5b\x14\x6c\xb7\xb1\xf8\x6f\xbe\xc8\xd6\x6b\x4b\xa9\x4f\xf8\x33\xb4\x6d\x83\x76\x6c\x9b\xbe\xc5\x66\xaf\xf9\x56\xc5\x38\x91\xda\xa7\xd2\xa1\x49\x9f\xfe\xaa\x68\x55\x17\x11\x91\xcb\x87\xa2\x74\x08\xb6\x71\x2f\x21\x5d\x19\xd5\x30\x49\x9f\xbf\x51\xba\x19\x10\xc0\x02\xa9\x87\x4d\xab\xe7\x17\x70\x0d\xa3\xcf\x8e\xf0\x64\xad\x76\x9c\x27\x0e\xcb\xe6\xf0\x6f\x7d\x43\xdd\x25\x73\x00\xcd\x7d\xb0\xe6\xbc\x44\x9c\x9c\xcc\xde\xe9\x33\xa3\x2e\x50\x2c\x4e\xdf\x50\x79\x11\xa9\x84\xa2\x92\x99\x8a\x7c\x14\xa2\x65\x81\xa6\x51\x12\xe5\xb3\x2d\x58\x10\x5b\xc9\x8a\x0a\xb2\xd2\xa7\xe4\x3a\x59\x51\x4e\x56\x99\x79\x3e\x31\x9d\x80\x2a\x23\x9e\x19\xf3\x8a\x32\x7d\x80\x81\xe8\x01\x64\xac\x89\x4d\x71\x54\xff\xc0\x26\x0a\x1a\xe4\xcd\x93\xdb\x79\xb6\x75\xab\x48\x0c\xbd\x8a\x3a\xa9\xb2\x56\x6a\x00\x9a\xa2\xd8\xe0\x0b\x51\xcc\xf6\xd5\x58\x72\x82\x80\x52\x32\x5f\xf0\xab\x62\xb5\xe1\x72\x35\xa3\x5f\xd7\x4d\x9b\x43\xa5\xb7\xe6\x95\x3a\x6c\xfa\xdf\x79\x60\x2a\x7d\x1e\xf6\x29\x92\xe7\x5f\x3f\x2b\x90\xd6\xe7\x1a\x94\xa2\xa6\xde\xdc\x3d\xd8\xd8\x92\x02\x6c\x68\x81\xe8\x50\xdf\x5a\xf8\xab\x42\x85\xb6\xb9\x53\xd2\xd5\xd7\x65\x42\xa3\x39\xc1\x59\xa9\x60\xd4\xd2\xa1\x95\x71\xc5\x5a\x3d\x6f\x1b\xb7\x33\x0b\x02\x1e\x62\x78\xc5\xef\x38\x9e\x86\x50\xeb\xbb\x0a\xd6\x90\xc7\xbe\xe7\xd7\x62\x3c\xfc\xbb\x73\x73\x43\xf2\xcf\x69\xb8\x8c\xc9\x90\xfa\x2b\x05\x55\xcd\x8e\x50\x8e\x7c\x70\x6e\x6e\x83\x5b\x12\x7f\x49\xe3\xc7\x69\x14\xc7\xb6\x6d\x2d\x13\xe1\xdc\x15\x96\x11\x82\x65\xe8\x6f\xdb\x96\x3f\x9c\x87\x20\x4b\xaa\x4f\xc0\xfa\x13\x2f\x68\x77\x21\x4b\x62\x47\xfb\x38\x0d\x42\x12\xb6\xe7\x69\x46\xda\x74\xc6\x0e\xf9\xc9\x84\xb4\x53\x31\x51\xed\x45\x70\x47\x9c\xf6\x35\x77\x1b\xcd\xdb\x8b\x2c\xbd\x0d\x6e\xe3\x47\xae\x0f\x08\x49\x1e\x71\x6f\xc6\xdd\x28\xa1\x5c\xbd\xdc\x0e\x92\xb0\x3d\x0f\x1e\xdb\xb3\xe0\x9e\xf0\x06\x91\x7f\x2f\x49\x32\x21\x79\x3b\x9a\xb6\xc3\x68\x3a\x25\x19\xdb\x4a\xee\x85\x01\x46\xde\x66\x33\x33\x23\x6d\xd5\x9c\xbc\x1d\x64\xa4\x1d\x2c\x16\x71\x44\xc2\xb6\xf8\x98\x46\x6c\xb9\x39\xed\x8f\xd3\xf6\x63\xba\x6c\x87\x69\x3b\x21\x24\x6c\xd3\x94\x37\xbc\xf2\x79\xad\x0f\xa8\xcd\x66\xa0\xd6\xe3\xdd\x24\x3d\x4b\x93\x69\x1c\x4d\x28\xbf\x8a\x21\x01\x2f\xeb\xf6\x71\x11\xe4\x39\x2f\x8d\x0d\x54\x94\xdc\x39\x16\x44\xdb\x26\x80\x7b\xf6\xad\xbc\xbe\xef\xf5\x51\xdf\x3d\xf0\xfb\xee\x01\xa7\x80\x67\x70\x73\xf8\x0d\x1a\xfb\x87\xdf\xa5\x1d\xb1\x7f\x0e\xb9\x8f\x06\x7f\xe3\xb9\xc2\x5f\x83\xfd\xbb\xc7\xfe\xd9\x67\xff\x0c\xd8\x3f\x07\xe2\xee\x6d\x20\xfe\xec\xf1\x2b\x3c\xdf\x43\x9e\xeb\x7b\x2e\xf2\x3c\xdf\xf3\x90\xd7\xf3\xbd\x1e\xea\xf9\x3d\xd4\xf7\xfb\xfc\x2a\xaf\xef\x0e\xf8\xc5\x5b\xdf\xdd\x43\x03\x7f\x80\xf6\xfc\x3d\xb4\xef\xef\xa3\x03\xff\x00\x1d\xfa\x87\xe8\xc8\x3f\x2a\xc6\x8c\x76\xd1\xa8\xef\xee\x8f\xcb\x63\x01\x80\xab\xd6\xee\x9b\x4e\xab\xfd\xa6\xfd\xa7\xf4\x9e\x64\xf7\x11\x79\x68\xb7\xcf\xe7\xb7\x24\x6b\xef\xb4\xff\x12\xdc\x07\x57\xdc\xdc\xad\x7d\xca\x26\x6a\xc2\x4d\x18\xda\xef\xb3\x60\x4e\x1e\xd2\xec\x1b\xff\x6c\x92\x2e\x1e\xb3\xe8\x6e\x46\xdb\x67\xfa\x57\xcf\xf5\xbc\x9d\x9e\xdb\x73\xdb\xd7\x51\x1c\x92\xf6\xc7\x64\xe2\x70\x82\x61\x7b\x49\x16\xdd\x2e\x69\x9a\xe5\xec\x6b\xe3\xbf\x2f\x69\x46\x39\xa1\x98\xc5\xb8\xfb\x3b\xac\xac\xf6\x15\xcd\xd2\x5b\x51\xce\x8b\x3e\x3b\x14\x9f\xb1\x56\xcb\xda\x4f\xe3\xb8\xcd\x5f\xe7\x6d\x76\x0c\xc9\xee\x49\xc8\x8b\xfa\x13\x13\xd5\x93\x9c\xb4\xdb\xed\x4f\xe2\x57\xd8\x66\x2b\x2e\x6b\x7f\xfe\x78\xdd\x96\x2f\x6b\x75\x5e\x11\xd2\x9e\x51\xba\xc8\xfd\xdd\xdd\x2c\x78\x70\xee\x22\x3a\x5b\xde\x32\xbe\xbb\x4b\xd8\xd0\xfd\x2b\x17\x7f\x9d\x7f\xe5\xbb\xf3\x20\xa7\x24\xdb\xfd\xf4\xf1\xec\xfc\xe2\xea\x9c\xd7\x28\x97\x44\xbb\xdd\xee\x3b\x3d\xd7\xd9\x6f\xb5\xdf\xec\x0a\xc1\x9f\x31\xcf\xd6\x3c\x88\x92\xb3\x34\xa1\x7c\x97\x63\x67\x0b\x63\xb2\x38\x8b\x47\x51\x29\x92\xa7\x25\x9e\x75\x80\x09\xca\x71\x32\x0a\xc6\xad\x7c\xbd\x06\xfc\x67\x17\x5b\xbb\x1c\xab\xcb\x1a\x43\x09\x00\x1c\xb1\x0c\xa6\x0b\x94\x8e\x6c\x12\xb7\xc4\x5b\xbc\x2a\x50\xbe\x5e\x57\xc5\x07\xb1\x33\xd0\xa1\xb1\x37\x9c\xa5\xcb\x38\xe4\xec\x61\x1a\x31\x66\xc0\xf9\x5a\xdb\xea\x92\xae\xd5\xce\xc8\xbf\x97\x51\x46\xc2\xf6\xed\xa3\xdf\xb6\xba\x54\xe0\xc0\x3f\xf7\x21\xe4\x57\x47\xa5\xbb\xd5\x12\xb3\xed\x63\x91\xa3\x89\xc4\xae\xbe\x0d\x26\xdf\x50\xc8\x8f\xfd\xdc\x44\x04\x2c\xb5\x45\xee\x0c\xbb\xc7\xb3\xb7\xea\xf9\x78\xd6\xed\x42\x4b\x6e\x03\x6c\x33\x59\x8e\x66\xe3\x61\x38\x9a\x8d\x71\xcc\xc4\x15\xde\xba\x6a\x3a\xf5\xf9\x9f\x14\xb0\x24\xd3\xf2\xd2\xbc\xa6\x0f\x21\x8a\x0b\x83\x25\xeb\x5d\xe7\x21\x4a\xc2\xf4\xa1\x99\x5d\x2f\xb2\x74\x42\xf2\xdc\xb6\xf5\x59\x5f\xa6\x8c\x59\x0b\x56\x85\xd6\x0e\x08\x99\x55\xbe\x84\x3c\xca\x07\xdf\xf6\xf8\x82\x34\x7e\xf2\x58\xc0\xa8\x54\xe2\xdb\x36\xc8\x70\x35\xc9\xb9\xb9\xe1\xdc\x3e\x1b\x82\xa4\xa6\xe3\xe1\x82\x29\x8a\x1a\x53\x9b\xaf\x99\x23\xcc\x24\xd6\x21\x88\xf8\x6c\x60\x8a\x22\x3d\x1b\x38\x83\xbe\x4a\x1f\x8d\xcd\x17\x14\xa2\x64\x44\xc6\x38\xaa\xc6\xe5\x27\x86\x99\x24\xe1\x98\xfa\xb0\x80\x8a\xf9\x62\x8a\xf8\xad\x7f\x53\xf6\x1f\xd3\x34\x26\x41\x02\x12\xe1\xe5\x6b\x3c\x76\x4b\x22\x2f\x10\x75\x6e\x48\xf0\xed\x26\x27\x24\xe1\x9a\x0b\x35\x0e\x58\x46\x89\xf5\x09\x92\xd3\xef\x53\xa4\x30\x62\xfc\xa4\x80\x3e\x20\xc6\xb0\xc9\x88\xb4\x88\x9a\x69\xf2\x43\x58\x00\xc6\x9e\xad\x3f\xf1\x55\xbe\xbb\xc3\xf6\xc4\x2c\x09\xe2\x7c\xf7\x36\x4b\x1f\x72\x92\xed\x90\xe4\x3e\xca\xd2\x84\x1d\xa6\x64\xd3\xd0\x48\x53\x63\xcd\x83\xa1\xb2\x75\xc8\x39\xa9\x85\xc3\x25\xc8\x2a\x25\x07\x8d\xfd\xd2\x71\x0b\x88\x08\x1b\xae\x77\x97\x9f\x31\x71\xa2\xfc\x7d\x94\x91\x69\xfa\x9d\xff\x3e\x9b\x65\xe9\x9c\x60\xe2\x2c\x73\x92\x9d\xde\x91\x84\x09\xeb\xb3\x28\xa7\x69\xf6\x88\x89\x13\xa7\x82\x9b\x63\xe2\x08\xd2\x95\x72\x95\x3c\xf8\x6f\x48\x55\x39\x89\xa7\xb6\x2d\x83\x18\x89\x07\xf6\xaf\x23\x1a\x8c\x31\xd6\xfe\x35\x0d\x0b\xe0\x17\xb9\x38\xf8\x17\xd5\x40\x68\xea\xd5\xe6\x65\x5e\x3a\xe1\x36\x36\xba\xd2\x32\x81\x17\xa3\x1e\xb1\xf9\x66\xa3\x14\xd5\x4d\x5d\x4a\x99\xc0\x4b\xd1\xc3\x60\xbe\xd9\x28\x45\x0e\x9b\x2e\x44\x3f\xf3\x32\xd4\xa0\x1a\xe9\x1b\x25\x24\xc1\x7d\x74\xc7\x44\x4a\x5d\x86\x91\xc2\x4b\xd1\xcf\xb8\xf2\xce\x12\xee\xe9\x0d\x25\x95\x13\xdb\xd2\x44\x40\x25\x50\x33\x1d\xb2\x32\x7d\x56\x55\x4b\x4f\x70\xd6\x92\xc7\xed\x61\xa5\xeb\x2a\x97\x1e\x8a\x44\xde\x65\xc9\x7c\xb2\x53\x2a\x9b\xea\x6d\xa4\x7c\x64\x86\xd5\xe6\x97\xcd\xf2\xad\x4f\x8f\xc9\xf7\x36\x60\x3b\xd9\x3c\x0d\x09\xb4\x5a\x26\x35\xa6\xf2\x6c\x2c\xf4\xe8\x6a\x39\x67\xce\x84\x13\x2e\xc7\x9d\x71\x18\xfd\x07\xb0\x65\xd0\x73\x20\x83\x7f\xf0\xaf\x9a\x68\x8d\x63\x63\xc4\xf1\x75\x16\xdd\xdd\x91\xac\x65\x2e\x8b\x9c\xc3\xf1\x34\xad\x5b\x29\x39\x6f\xae\x55\xa4\x32\x87\xe4\x76\x79\x67\x3e\x2e\x32\x32\x09\x28\x09\x77\xa6\x24\xa0\xcb\x8c\xd4\xd6\xb5\x60\x9e\xff\xe9\xda\x56\x6c\xd1\x58\x9b\x49\x2b\x73\x3e\x5d\x7e\xf8\x70\xfe\x95\xdb\x65\xac\xe2\xf4\xae\x54\x37\xab\x13\x00\x4b\x74\x1c\x47\xdb\xa9\xc1\x02\xf1\x43\xc1\x46\x46\x9e\x5a\xcb\x49\xf8\x2e\xbd\x91\x55\x24\xd7\xf2\x46\xc9\x34\xdd\xcc\xca\x53\x6b\x39\xf9\x00\x6e\x66\xe5\xc9\xc3\xca\x53\xf5\x4b\xff\xa9\x42\x83\x3c\x27\x19\xdd\x2c\x55\xa6\x57\x73\x4b\x20\x8b\x08\x27\xad\x72\x64\xa3\xa7\x68\x82\x06\x51\x42\xb2\x27\xa8\xc2\xc8\x9e\x3e\x24\x24\x6b\x7c\xb3\xa4\x51\xbc\x9d\x92\xf4\x81\x68\x93\x7e\xf8\x95\xc6\x7f\x4c\x43\x8b\x2c\xba\x0f\x68\xf4\x9b\xb1\xb5\xb3\x1d\x54\xde\x27\x3c\x8e\x48\xed\x3a\x92\x0d\xd2\x28\x41\xd1\x18\x13\x85\xfd\xe2\x5b\x5a\x1a\x62\xf9\x31\x70\x51\xe6\x88\x0e\x42\xf0\xeb\x0f\xab\xa4\xf0\x7f\x58\x45\xc5\xce\x0f\xab\x9b\xe2\x57\x7e\xbb\x75\x47\xe8\xfb\x80\xb1\xf8\xc7\xf7\x69\xd6\xb4\x9b\x93\xd1\x62\xcc\x32\xe6\x95\x8c\x73\x44\x9c\x8f\x17\x1f\xaf\x6f\xde\x9f\x9e\x5d\x5f\x7e\xfd\x3b\x26\xce\x99\x9a\x06\x4c\x9c\xaf\x72\xbb\x56\xeb\x61\x12\xb3\x93\x5c\x6a\x5e\x33\xb0\x91\x63\xa2\xd0\x4a\x5e\xc8\xca\x0f\x44\x94\x0c\x87\x4f\x12\xa6\xe2\xef\x7a\x5d\x5e\x16\x4c\x82\xc9\x8c\x88\x7e\x85\x11\x6f\x6b\x90\x3d\x42\x7e\x7b\x3d\x99\x11\x91\x53\x5e\xf2\x4e\x45\x73\x3f\x07\x49\x70\x47\xb2\xb3\x6d\x1f\x36\x64\xab\x14\x13\xe5\xef\x48\x4e\xb3\xf4\x91\x84\xfa\x16\x43\xa7\x45\xc9\x1d\xee\x78\x45\x9c\xa6\xdf\x96\x0b\xad\xbf\xab\x7f\xb7\xa9\xc6\x3d\x0b\x12\x2e\x57\x33\x21\xac\xfd\xab\x23\xbe\xff\xb5\xcd\xb5\x52\xfc\xc4\xcb\x3b\xde\x9e\x05\x79\xfb\x96\x90\x84\x9d\xeb\x45\x51\xe5\x04\xab\x0b\x0d\x73\xf8\x1c\xa1\x8d\x8b\x7e\x23\x12\x80\x46\x7e\xa7\x6e\x2f\xaa\xed\x76\xd1\x4c\x06\x21\xe0\x0a\xb4\xe8\x37\xf2\x4e\x67\x9f\x02\xe3\xba\xbc\x32\x04\x6e\x21\x6e\xcf\x49\xbd\x4c\x12\xae\xd7\x46\x68\x9e\x21\x90\xa5\x23\x59\x16\x6c\x88\x94\xcf\x88\x85\xcf\xdc\x88\x8e\x5b\x2a\x1a\x7e\xd3\x94\x8c\xe8\x18\x31\xf1\x59\xe7\x99\xe8\x54\x47\x76\xd2\xb6\xf5\x4f\x00\x61\xf1\xdc\xf0\x40\x58\xf0\x41\xfe\x98\xfc\x8b\x98\xc7\x36\x82\xb5\xd6\x17\xb8\x88\x5f\xe5\x5e\xb2\x7c\x10\x98\xb4\x09\x11\x29\xa6\x7a\x3d\x68\x62\xfe\x3d\x93\x5f\x16\xf3\x42\x02\x30\x34\x8d\x8d\x3d\x13\x41\x90\x64\x6c\x0b\xdb\xee\x88\xdb\xec\x7c\x11\x4c\x48\x79\x54\xd1\x5f\x92\xef\x8b\x20\x09\x3f\xa5\x93\x20\xfe\x54\x92\x71\x69\xf6\x23\x7d\xb7\xb8\x09\x9a\x61\x4e\x66\x78\x24\x77\xbc\x0e\xc6\xa4\x2c\xf1\x8e\xd0\xcb\x85\xbc\x1f\xb6\xf2\x28\xb9\x8b\x09\x4d\x13\xcb\x30\xb6\xc8\x5f\xfc\xb9\x30\xcd\xa5\x51\x40\x89\x59\x80\x34\x53\xe4\x63\x2e\x85\x25\xde\xeb\xac\xec\x75\x56\xe9\x75\x62\xd6\xb0\xd9\x65\x26\x04\xa8\x30\xd1\x1d\x76\x2a\xd3\xcd\x56\x07\x2b\x45\x71\x49\xf5\x50\x1e\xe9\x90\x67\x45\xdd\xa0\xb7\x66\x73\xbc\x34\x0c\x45\xcb\x70\x75\xf2\x73\x96\x58\xf9\x70\x65\x74\xdc\xcf\x90\x6e\x0e\x3b\x00\x99\xe3\x96\xd8\xb6\x68\xb1\x6d\x8b\x39\xb1\x6d\x31\xb8\xc2\xb8\x33\x81\xea\xc6\xa4\x5c\x31\x38\x52\x47\xc9\xca\x1d\x7c\xc9\x19\x6c\xbb\xc1\xb8\x22\x2d\x97\x59\x5a\x2e\x33\x94\x16\xbf\xb7\xe5\x6c\x35\x8b\x2e\xac\xd7\xa2\xe9\x9b\x6d\x57\x63\x5b\x36\xf8\x3f\x19\x27\x63\x8c\x3a\xd5\x8a\xaa\x4a\x94\x17\x15\x2a\x09\x65\xbd\x56\xc5\x8b\xa2\x39\x6c\x0e\xeb\x4b\x43\x1f\xd8\x26\xd8\xda\xe4\x06\x5a\xc9\x22\x3a\xd9\x96\xfc\xc0\xe2\x45\x24\x22\xaa\x54\x49\xf9\xcb\xaa\x59\xf9\x36\x66\x59\x21\xd2\x44\xdf\xf9\xb5\x14\x31\xeb\xb5\xa0\x0c\x23\x29\xac\xd1\xf5\xca\x95\x07\x07\xd6\xd6\x7b\x1e\x7c\x30\x2b\xb1\x1d\xb7\x72\x69\x9c\xa2\xd4\x68\xee\x44\x35\xb7\xbc\x45\x64\x12\x89\x64\xb9\x39\x8a\xb0\x7b\x1c\xbd\xd5\xb6\x0e\x91\x74\xb7\x59\x29\x84\x3e\x3f\x15\x50\x78\xd3\x88\x64\x7e\x8e\x64\xe0\x9f\x65\x81\x79\x44\xc3\x64\x94\x8e\xf1\x72\xc8\xb8\x41\x8e\x56\xfa\x25\xf4\x79\x0a\x64\xc2\x4f\xfe\xee\x31\x09\xe6\xd1\x84\x71\xbe\xf2\x09\x77\x02\x9e\xc3\x1c\xd9\xd0\x0c\x39\x57\x8e\x10\x1a\x45\x63\xc6\x10\x36\x24\x2c\x83\x64\x8c\x65\xbe\x2a\x8e\x6b\xdb\x46\x84\x88\xdc\x33\xe4\x80\xae\xca\xfe\xfb\x11\xd2\x6d\xf2\x3b\x5e\xb1\x11\x74\x2c\xb3\xed\x09\xaf\x20\x55\x4a\x23\x41\x6d\x13\x4e\x1b\x29\x5b\x80\xec\x17\x63\x9a\xd7\x8f\x0b\xa2\x37\xb3\x1c\x44\x50\x24\x1b\x49\x99\x69\x42\x3c\xab\x39\xdf\x09\xfe\x80\x32\xa5\x6e\xfa\x46\x1e\x73\x40\x21\x4a\x38\xc8\x91\x02\xb9\x3f\x4e\x94\x43\x54\x84\xe9\x28\x1b\x25\xe3\x71\x2b\x2a\x59\x43\x54\xb2\x06\x63\x64\xb9\x55\x1d\xd9\x26\xbb\x49\x85\xd6\xcb\xe4\x35\xa1\x87\x32\xa5\xcd\x54\x5a\x7e\xf3\xac\x02\x24\x10\x02\xcb\x14\x4e\x2d\x58\x0b\xb9\x0a\x57\x4c\xaa\xc5\xb4\xa8\x09\xb1\x0b\x29\xa8\xde\xd7\x05\x55\x31\xc1\xf2\x42\x51\x8b\xb9\xa6\xa8\x2a\xa7\x58\x0a\xa9\xac\x14\x4c\xa5\x18\xba\x8c\x63\x6e\xed\x26\x5f\xea\x9d\x3a\xe4\xa9\x89\xbc\x68\x0d\x42\x72\xad\x6c\x8f\x4c\xd3\x97\x92\x56\x54\xf2\xbc\x94\x6c\x60\xa1\x34\x92\xa0\x01\x8d\xb0\x5e\xae\xba\x9c\xab\xd4\x55\xed\x54\xc9\x17\xe6\xc1\x37\x9d\x09\x94\xbd\xaa\xf6\x09\xc2\xcd\xd6\x17\x92\x57\x8b\x0b\xcc\x95\x2e\xda\xa7\x85\x30\x53\xe1\x76\xcc\x4f\x09\x48\xbf\x6a\x01\x49\x30\x44\xf6\x46\xb9\xe8\xe4\x2f\x10\x91\xda\xe0\x31\x5d\xaa\x3b\x50\x71\x2f\x25\x4b\xfa\x61\x55\x69\x7e\x01\x7f\xad\x48\x53\xe5\x58\xd7\x6d\xaf\x59\x4f\x8c\x55\x9b\x18\xab\x36\x2d\x70\x08\xaa\xa3\xd8\x34\xd1\xb0\x35\x07\x89\xb4\x41\xcd\x70\x82\x52\x85\x65\x62\x4c\x70\x02\x8b\xfa\xfa\x27\x5c\x65\x0c\x5c\x14\xb1\xb3\x72\x74\x97\x40\xb0\x2a\xb8\x34\x06\x0d\x5a\x53\xfb\x23\xdb\x29\xee\x79\x38\xe9\xdd\x7f\x8e\xfe\xe9\x8f\xbb\x3e\xff\xf7\x87\x5d\x49\xd8\xb7\x55\xc2\x2e\xcf\x5f\x53\xa5\x0c\x26\xfa\xa7\x79\xea\x92\x9b\x44\xc6\xd9\xa2\xf8\x59\x7d\xcd\x89\x26\x10\xbd\xd8\x58\xb3\xa4\x9a\xa1\x72\xba\xba\xa1\x15\xae\xb5\x8d\x3b\x28\x17\x87\x97\xe5\x8b\x4b\xc9\x4e\xb0\x91\x26\x0d\xba\xc8\xaa\x27\xe9\x29\x7e\x23\xf3\xca\xae\xbf\x20\xe7\x34\x88\xe2\x2b\x42\xf9\xd6\x79\x45\x24\x23\xb8\x49\x17\x2f\x68\x3b\xb7\x18\x7d\x32\x63\xa1\xe9\xcc\xf4\x4e\x20\x0f\xed\x54\x87\xb7\x12\xe3\x4d\xb2\x4d\x29\xb9\x42\x98\xec\xac\x50\x69\xb0\x23\x8e\x57\x20\x81\x0d\x13\x3b\x4a\xc6\xb8\xd6\x15\x96\x94\x15\xcb\xa4\xac\x4f\xa9\x2b\xb6\x55\xf4\xa2\xa9\x51\x16\xe0\x9b\x4d\xa0\xe3\xca\xcb\xca\x94\x6c\xbc\x54\x8d\xa4\x63\xd4\xd8\x4b\xca\x06\x4a\x48\x3f\x8d\xfe\x8f\xa6\x9c\x45\x2b\xd2\x11\xbf\xc8\x91\x47\x8d\xf5\xda\x38\x69\xf0\x70\xad\x4c\x7a\xd8\x76\xc4\x90\xe2\xfe\xbd\x08\x42\x8b\x49\xad\x0b\xb5\xd3\x45\xaa\x04\xb7\xb4\xc5\xdd\x3a\x74\x0f\x66\x41\x0e\xb4\x6c\xd9\x2a\x57\xa5\x6d\x83\xc8\x58\xa4\x5a\xba\x4b\xa0\x8a\x7f\xce\x0e\x1d\x3a\x57\x75\x76\xcd\x2c\x43\xa3\xb2\x20\x0c\x41\x02\xfd\xcd\xb6\xe2\xa8\xc4\xd4\x36\x8e\xdb\x35\x25\x44\xab\xbe\x31\x95\xba\xf5\x0a\xef\xe1\x9c\xae\x92\xa2\x9b\x5f\xd1\x0f\x42\x94\x15\x21\x87\x77\xb9\x25\xe6\x0a\x30\x8a\x2c\x87\xa3\xf2\x28\xf5\x2c\x0a\x1b\x26\x4a\x93\xe1\x33\xef\x01\x81\x7e\x53\x5b\x87\xd5\x76\x1a\xcd\xf1\x49\xa1\xfb\xff\x5e\xee\x33\xaf\x6c\xa5\xfe\x7e\xb8\x25\xfd\x85\xad\x6a\x6a\x87\xd9\xbc\x0d\x77\xb3\x2a\x33\x1c\x91\xb1\xc6\xdb\xda\x78\x53\x5b\xe0\x46\x0d\xb0\xa8\x88\x0e\x26\x72\xd9\x4b\x3a\x6f\x7e\x3c\xdc\xfe\x8a\x97\xfb\x92\x41\xd8\xfc\x88\x38\xa5\xd0\x54\xb0\x85\xa4\xd4\x76\x1d\xa9\xba\xf9\x39\x88\xa3\xd0\xec\x91\x3a\x47\x2a\x59\xc1\xb6\x4b\xed\x4a\x8d\xe2\xd5\x0b\x26\x37\xf3\x7c\x86\x12\x42\x2a\x43\xb7\xea\x09\x36\xf6\xfe\xf2\x70\xa6\x0f\x37\x19\xd2\x05\xb2\xd3\xe8\xd6\x65\xc7\xd1\xfd\x24\x03\x7c\x9f\x66\xec\x6c\xa0\xec\x03\x6a\xbb\x0c\x9f\xcc\x42\x2b\x5d\xca\xdc\x15\x56\x5e\xfb\x62\x63\x4d\xd3\xad\x6b\x9a\xd6\xd6\x74\x53\x4d\x10\x51\xd5\x58\x93\x15\x6f\xdb\x44\x14\x63\xcf\xaa\x2d\x7f\x62\xf7\xd1\x21\xbc\xca\x3d\xe1\x3f\x60\x4b\x95\x2a\x19\x3b\x2a\x55\x56\xf5\xd6\xeb\x0a\xc9\xb8\xbe\x83\x94\xbf\x47\x74\xac\x6d\xf9\x59\xcb\xd4\x11\xb4\x3c\x73\x8e\x5c\xd5\x5e\x90\x35\x4c\x48\x32\x86\xb5\xf2\x86\xec\x9f\x97\xac\x8f\x6a\xd3\x15\xfc\x60\x45\x2a\xd3\xc6\x82\xd5\x06\x1d\x83\x26\x09\xce\xe4\x1a\x1b\x6f\xf0\x68\x0c\xa1\x70\x83\x28\x4f\xf8\xd4\x38\xe1\x67\x05\x2c\xa2\x7a\xbd\x8d\xa2\x8b\x50\xa4\xed\x78\xdc\xf0\x54\x85\xb9\x63\x2d\xab\x98\x7f\x6e\xf6\x23\x51\x97\x4b\x1b\x34\xa2\xfa\x53\x4a\x99\xa3\xa8\xec\x4b\x25\xf5\xd9\x7e\xb0\xa5\xf9\x2d\x49\x1f\x12\x63\x35\x19\x61\x26\x50\xba\x4d\x08\x0c\xaa\xc7\xef\x0d\x09\x08\xf2\x50\x68\xf9\x5b\x15\xc1\xea\x38\x57\xe7\xf1\x18\x07\xa3\x7c\xdc\x8a\xab\x93\x24\x42\xa3\x83\x74\x14\xf3\xc0\x26\x45\x03\x27\x7e\x62\xad\xd6\xba\x00\xd1\x4b\x38\xb8\xf9\x11\xbf\xfa\xdc\xfe\x9a\x97\x59\x3f\xdc\x50\x94\x32\xe6\xb5\xc9\x87\x15\x83\xbc\x13\x48\x21\x04\x16\x55\xf5\x46\x8d\x63\x45\x26\xe5\xa9\x30\xe0\xf5\x4e\x57\x16\xab\xb9\x28\x2a\xe5\xb6\x2a\x92\x1f\xc5\x55\xf0\x68\x15\x4e\x3a\x2b\x5d\x7f\x39\x5b\xaa\x29\x64\x1a\x18\xea\xc7\xff\xa8\x89\x1b\xe5\xff\x8e\x66\x36\x6b\xff\x5f\xb3\x61\x6f\x94\x30\xdc\xa6\x01\x27\x9b\xe2\x3f\x4a\x71\xc4\x38\x1e\x3b\x0d\x8b\x9f\x4d\x07\x02\xed\x45\xb6\x5e\x67\x28\xc7\x69\xdd\x32\x2e\xd7\x21\xf4\xa5\xed\x1c\x79\xa2\x79\x12\x0f\x57\x3b\x43\x8e\x82\x31\x8e\xb7\x8b\xaf\xdb\xb6\x77\x63\x67\x7f\x91\x1c\xd2\x3c\xd0\xfc\xcb\xa2\x30\x6e\x4c\x6f\x79\x17\x1e\xb7\xf1\x87\x1b\xfc\xeb\x0f\x2b\x1e\x28\x2f\x0b\x92\x30\x9d\x03\x58\xfc\xb0\x7a\x17\x50\xe2\x24\xe9\x03\x80\xc5\xaf\x8e\x0c\x24\x02\x2c\x47\x44\x59\xdb\x76\x6d\xfe\xa4\xe9\xd3\x6b\xec\x27\x6a\x37\xdf\x86\x27\x9b\x71\x8b\x6c\xdb\xa4\x6e\x82\x34\x54\x6e\xa5\xc5\xef\xb8\x2c\xbf\x23\x54\x0c\x63\x83\x2f\x5f\x2a\xe5\x78\x79\x6d\x5d\xcf\x47\xe0\x4a\xe5\xc0\x44\xde\x81\x9f\x5f\xfc\xdc\x50\x50\xc0\xde\xb2\x57\xdc\xad\x94\x0a\x3f\x8a\xbb\x38\xbd\x0d\xe2\x8a\xa5\x07\x8a\x70\x06\x40\xb2\x69\x8c\x25\xf2\xda\xb6\xf8\x0b\x0d\x0c\xfb\xc4\x49\xd2\x90\x63\x71\x0d\x13\x85\xd5\xb9\x5e\x67\x9b\x56\xf2\xa5\x09\x57\xf3\x7b\x65\xcf\x28\xfe\xc2\xf5\xba\xc9\xd6\xc6\x30\x55\xb5\x6d\xe3\x61\xbd\x4e\xc8\x43\xdb\x30\xab\x2f\xb7\x4e\x0b\x02\xd8\xd2\xbd\x55\x46\x44\xd5\x79\xdf\x10\x02\x87\xab\x68\x2e\x0c\xfa\x09\x52\xa6\xfd\x04\x89\xb1\xf6\x49\xe1\xeb\xd7\xd4\x91\xbf\xd6\xeb\x32\xa7\x76\x07\x60\x89\xf2\x23\x2a\x67\x6a\xbd\x26\x45\x01\x22\x14\x09\xc3\x4a\xd6\x34\x35\x25\xca\x3e\x69\x75\x7e\x71\xfa\xe3\xa7\xf3\x9b\xcb\x2f\xd7\x1f\x2f\x2f\x4e\x3f\xdd\xbc\x3f\x3f\xbd\xfe\xe9\xeb\xf9\x95\xdf\xf1\xd0\xf9\xdf\xae\xcf\x2f\xde\xdd\x7c\xf9\x7a\x79\x7d\x79\xfd\xf7\x2f\xe7\x57\xfe\x4a\x62\x97\xb9\x48\xf5\x9f\xfd\x16\x07\x03\x46\x65\xe8\xd3\xe5\x87\x9b\xab\xeb\xd3\xb3\xbf\x5e\x7f\x3d\x3d\x3b\xbf\xb9\xbc\xb8\x79\x77\xfe\xe5\xeb\xf9\xd9\x29\x2b\x9e\xe5\x65\x19\x7e\x3e\xff\x7a\x25\x1f\xbf\x9e\x7e\xbc\xda\xcc\xe6\xa1\xab\xeb\xaf\x3f\x9d\xb1\x86\xf0\xea\xdf\x7f\xfc\x74\xce\x52\x6f\x4e\xbf\x7c\xf9\xf4\x51\xe4\xba\xb9\x3e\xff\xfc\xe5\xd3\xe9\xf5\xf9\xcd\x2f\x5f\x4f\xbf\x7c\x39\xff\xca\x8a\x2b\x13\x2f\x2f\x3e\xfd\xfd\xe6\xc3\xa7\x8f\x9f\x3f\x9f\x7f\xbd\x39\xbb\xfc\xfc\xe5\xf2\xe2\xfc\xe2\x9a\x77\xeb\xe6\xdd\xf9\x8f\x3f\x7d\xb8\xf9\x7a\x7e\xf1\xee\xfc\xeb\xcd\xf5\xd7\x73\x51\xf6\x5f\xfe\xe7\xa7\xf3\xaf\x7f\xbf\xf9\x78\x71\x7d\xfe\xe1\xab\x6e\xef\xcd\xbb\xf3\xf7\xa7\x3f\x7d\xba\xbe\x39\xbd\xfa\xfb\xc5\xd9\xcd\xe5\x8f\x57\xe7\x5f\x59\xfb\xf9\x27\x5f\xcf\x65\x21\x9f\x2e\x2f\xbf\xdc\x7c\xfa\xf8\xf9\xe3\xb5\xef\x91\x3e\x3a\xff\xfc\x23\x4f\x3c\x7d\x77\xf3\xe7\xcb\xcb\xbf\x5e\xf9\xab\x02\xe9\x81\x5d\x15\x45\x4b\xac\x90\x00\x01\x82\x4f\xb8\xf3\x52\x9d\x42\x89\x96\xab\x0d\x21\x48\xfa\xc4\x46\x53\x50\x07\x94\xaa\x81\x49\x29\x0f\xf8\x0c\xda\xb6\xb5\x31\x8b\x96\xd8\xeb\xac\x7a\x2b\x79\xba\x86\x09\x1b\x65\xe3\x16\xc7\xe1\x4e\x86\xec\x37\x16\x37\xce\xa3\x6c\xec\x77\x98\xfc\x98\xd8\x36\x10\xe9\xdc\x70\x61\x94\x8d\x61\x71\x1f\x64\xab\x4d\x9a\x89\x0a\x4c\x6a\xd7\x64\x4d\x3d\x8e\x74\x8f\x23\x18\x38\x1b\xc5\x38\x52\xf5\xce\x9b\x11\xc9\x27\x44\x9d\xf7\x3f\x5d\x9c\x71\x72\xd0\x59\x6f\xf8\xb7\x8c\xc0\xae\x58\x1b\x1b\x8a\xd2\x1e\xf2\xb2\x30\xf5\x0c\x51\x53\x6e\x4e\xf2\x2a\x2b\x7f\xe0\x70\x4b\xf2\x8a\x58\xa4\xb7\x9e\x68\x71\xfa\x9f\xb6\x32\x7d\xaa\x5d\xa9\x18\xf5\x3a\xc1\xe5\x72\xd0\x37\x59\x63\x69\xe7\xaa\x1d\x81\x63\x46\x57\xf9\x8b\xe9\x2a\x47\x31\x54\x38\x37\xf9\x28\x1e\xb7\x78\x4b\x9c\x28\x97\x56\xeb\x50\x74\xa8\xd6\x24\x26\x4c\x2f\x9d\x69\x14\x73\x95\x27\x3e\x69\xc2\x22\x80\x82\x86\xf4\x52\x99\x6c\xeb\xc5\x44\xf7\x62\xa2\x7b\x11\xb2\x5e\x4c\xe0\x8b\xba\x30\x41\xa1\x68\xa5\xaa\x6a\x14\x4a\x4a\x9e\x8c\xc2\x31\x6c\xb9\x45\x01\x81\x64\x9b\xe7\x17\x3f\x3f\x21\x10\x64\x59\x9a\xed\xcc\x82\x24\x8c\xa3\xe4\xee\x75\xe6\xd0\x5c\xb0\xfd\x3d\x46\x6f\xec\xf8\x99\xf0\x9a\x9b\x9c\xf2\xe5\x0e\xbe\x91\x83\xc0\x15\xd5\x7b\xf7\x3b\xe9\x34\x7d\x79\x4f\xb2\x2c\x0a\x49\x43\x41\x99\x2c\x68\x7b\x56\x26\xaa\x88\x12\xd3\x84\xdf\x42\x5d\x07\xd9\x1d\xa9\x18\x74\x66\x28\xe1\xc0\xff\xed\x34\xa9\x59\x5e\x52\xce\x06\xab\x1f\x26\xdb\xc7\x59\x44\x2b\x48\x93\x9d\x7c\xb9\x60\x43\xfb\x32\xbb\xc5\xcd\xcf\xe2\xe8\x76\x37\x0c\x68\x70\x13\x84\xc1\x82\x6e\x31\x6a\x6c\xfe\x4c\x5f\x21\xdc\x70\x2b\x47\x5d\xc2\x1f\x6e\x1a\xbb\xf5\x83\x77\x01\x0d\x4e\x55\xbb\xcd\x48\x9d\x1d\x17\x35\x07\x55\xa5\xca\x16\xb4\x78\xaa\x5c\x7d\x31\xfc\x8e\x75\xec\x75\x35\x64\x46\x0d\xaf\x98\xbe\xa7\x06\xb4\x69\x52\xa5\xa5\x78\xd3\x6c\x65\xc2\x91\xf1\xff\x95\x89\x32\xce\xa4\x50\xee\xf0\x5e\x85\x60\xa5\xce\x4d\xfc\x60\x82\x26\x41\x72\x16\xd0\x20\x4e\xef\xa4\x3f\xeb\x8f\x8f\x4c\x64\xf5\x19\xcf\x9b\xa7\x21\x89\x2d\x71\x45\x69\x51\x32\x5f\xc4\x01\x25\xfc\x19\x4d\x1a\xbe\x01\xda\xf1\x95\x9f\x6c\x4e\x21\xc8\x9c\x0b\x75\x82\x72\x2e\x4e\x3f\x9f\x5f\x7d\x39\x3d\x3b\xbf\x82\x28\xd2\x39\x20\x12\xd6\x27\x5f\xc9\xdd\xf9\xf7\x05\xe0\x76\x15\xfc\x22\x33\x9a\x3e\x42\x40\x60\xd7\xfa\xa1\x34\xc7\x48\x34\x34\x04\x13\x44\xb4\xb9\xc9\x6b\xe5\x8c\x44\xb8\x8c\x0b\x28\x52\xed\xb0\x35\x4a\xc6\x2d\x8b\x57\xcd\xe1\x62\x58\xfb\x04\xb4\x0b\x04\x01\xb4\x6d\x19\x63\x94\x37\x30\x0c\xf2\x19\xc9\xa2\xdf\x08\x04\x89\x3e\x8c\xa5\xec\x28\x26\xe2\xe6\x45\x45\x01\x0d\xbb\xe6\xd7\xf0\x89\xcd\x05\xff\x2a\x53\xe7\x6c\x99\xc4\x69\xba\x68\xcc\x3a\x27\x34\x88\xff\x33\x12\x55\x48\x30\xff\x07\x84\x1a\xe0\xb4\x4e\xa8\x51\x12\x51\x65\xd6\x7a\x93\x2f\x17\xa4\x66\xf2\xae\x2e\x30\x63\x12\xe4\xe4\x33\x77\x4e\xe6\x17\xaa\x29\x27\xac\x02\x4d\x9a\xf8\x84\xc2\x39\x0a\xa8\xf0\x7e\x24\x9f\xa2\x79\x44\xfd\x3e\x0a\x26\x13\xb2\xa0\xac\xc1\x84\x6b\xa3\x18\x0f\xa9\x96\xed\xeb\xb2\x19\x73\x79\xcf\x65\x83\xdc\x07\x10\x9f\x94\x2f\x1e\xd8\xde\xc3\xcb\x60\x2b\x62\x53\xd5\x7d\x47\xa8\xf1\x16\xa2\xa4\x6c\x70\x8b\x80\xcc\x99\x07\x0b\x4e\xdc\xca\x72\xf6\x1b\xb7\xc8\x90\xaa\xcc\x87\x2c\x58\xe8\xaf\x39\x86\x1a\xc7\x30\x2a\x97\x87\x00\xe5\xe2\x26\x2b\xb7\xdc\xb1\xb2\xcc\x2d\xf2\xf2\xe0\x84\x51\x01\x95\x86\x94\x35\x7e\x55\x59\x56\x04\xc0\xc6\x81\x75\x32\x32\x4f\xef\x89\x0c\xdc\x18\x95\x31\x60\x9b\xf2\xb2\x76\xe8\x9c\x28\x2a\xd0\x0d\xab\xfc\x3a\x3d\x63\xbd\x91\x38\x27\x1b\xde\x34\x44\x0d\x14\x5f\x63\x77\xda\xb8\x8a\x1b\x54\x18\x26\xb4\x40\xf0\x25\xdf\xea\x12\xd8\x22\xec\x6c\x90\x09\x96\xa1\x54\x5e\xa4\x10\xd3\xf0\x95\x4c\xd2\x2c\x54\xc8\xb0\x12\xb3\x24\x40\x06\x8d\x20\x09\x89\x50\x6b\x1e\x5a\xea\xc9\x52\x65\xc4\x3c\xf4\x9c\x61\xf2\x06\x57\x19\xb7\xdd\xe7\xc6\x18\x21\x5e\xaa\x99\x03\xf9\xe6\x2c\x88\x42\x00\x41\x13\x35\xb6\x6c\x26\x55\x2a\xe4\xf1\xe7\x56\x61\x14\x9e\xcd\x82\xe4\x8e\xf8\xc2\x18\x0c\x05\xd0\x60\x72\x31\xce\x8e\xe3\xb7\x59\x37\x38\x8e\x95\x36\x78\xc9\xfa\x91\x38\x42\xd8\x3c\xa5\x10\x10\x14\x43\x14\xe2\x7a\x05\x4b\xd8\xda\xde\xa6\xa5\x68\x13\x60\x72\x64\x91\xda\x76\x04\x32\x94\xc2\x02\x3d\x44\x71\x2c\x9a\x53\x03\x50\x32\x0c\xa7\x13\x27\x08\x43\x2e\x45\x5f\x8a\x32\x33\x08\x96\xbc\x7f\x68\x06\x51\x20\x88\x2b\xdf\x20\x2e\xfe\xa5\xa0\xa6\xad\x1f\x3f\x4b\x80\x01\x2c\x10\x05\x61\x73\x4e\x83\xfc\x02\x88\x02\xd1\x9b\x77\x55\x3b\xf9\x97\x32\x94\x7a\xf3\x0b\x14\x12\x4a\x26\x94\xaf\xfb\x8e\x87\x26\x69\xbc\x9c\xeb\x8b\xae\x1a\x37\xd8\x5c\x85\x8a\x1d\x44\xcd\x84\x97\x6e\x10\x5e\x54\x21\xbc\x80\x35\x1f\x8c\x1a\xb8\x01\xcb\x27\xa9\x31\x37\x88\x49\x5c\x88\x30\xe2\x07\xc9\x89\xbb\x5e\x47\x27\x2e\x3b\x4a\x70\x43\xba\xc9\x8c\x30\xe6\x7c\x99\x4c\x08\x04\x56\x20\x74\xcc\x02\x00\x04\x05\x4f\xd2\xc0\xf1\x96\xd9\x4f\xc5\xc7\x3a\x5c\x8f\x1c\x8d\x2d\xd3\xad\x73\x17\xa8\xda\x97\x06\xa6\x69\xac\x65\x55\xf8\x2a\x11\x78\x15\x93\x74\x99\x50\x9f\x57\x73\x47\x28\x04\x19\xb2\xc4\xc5\x89\x05\xd5\xec\x28\x68\x16\x73\xaa\xf8\x70\x73\x22\x11\x00\x6a\x55\xc6\xbc\x92\x4e\xe0\xba\x01\xc0\x6a\xdc\x4e\x4a\xe1\x84\x60\xea\x6c\x11\xa6\x24\xc7\xe2\xf8\xa7\x8d\x82\x93\x7a\x2f\xda\x79\xc3\x78\x1f\x6f\x59\x7e\x99\x68\x01\x8a\xed\x16\x44\xb3\x2e\x02\x35\xc3\x59\xf1\x3d\xc2\x6f\xa4\x27\x3e\x44\x84\xcb\x1f\xe6\xa7\xe5\xb9\x96\x7f\x25\x28\x1a\xc8\xdd\x46\x2c\x51\x99\xb5\x40\x5b\x5b\x23\x5d\x29\x54\xde\x74\x8b\xac\x47\x8d\x1d\xae\x34\x2c\x6e\x90\xe3\x7e\x97\xbe\xa8\xd2\xfe\x51\x36\x86\x86\x08\x1a\x99\x82\x5a\x06\x5b\x12\x9d\x4d\xc4\xc4\xa3\x7c\xca\x25\x59\xd5\x37\x71\x93\x3b\x2b\x4c\x4d\x4d\x2b\x25\xb6\x9b\x20\xa8\x9f\x05\xdc\x5a\x95\x52\xcf\x8c\x57\xfc\x92\xc1\x11\x51\xbf\xff\x4a\x1e\x1f\x58\x8d\xb5\xec\x2a\x59\x64\x15\xd3\xd3\x58\xee\x7b\xe3\x95\xc8\x3c\x49\xe3\xb4\xbe\x4e\xce\x58\x1a\x7f\x6d\xf4\xd2\x6c\x92\xe8\xf0\xaa\x80\x68\xa3\x09\xb5\xb1\x68\xac\xb9\xe1\x73\x5e\x25\x4f\xe7\xc7\x8a\xca\x2e\xc3\x93\x8d\xb3\x58\x55\x3c\x0e\xb6\x8a\xc7\x77\x71\x34\x9f\x3f\xe9\xf4\x57\x7a\xec\x21\xeb\x4f\x2a\x7b\xba\x98\xa4\x21\xd9\x99\xa4\xf3\x45\x14\x6f\x39\x33\xd7\x84\xe1\x17\x39\x0f\x2a\xb1\xf8\x05\x8e\x85\xc6\x9b\xfb\x88\x3c\x34\xb9\x1c\xaa\xd6\x66\x84\xc3\xb3\x4c\x48\x25\xb1\xac\x4a\x25\xdd\x07\x71\x14\x0a\x80\xc3\x97\x79\xbb\x97\xf9\x22\x6e\x10\xca\xd2\xf8\x0d\xb3\x71\x06\x20\xd9\x7d\x34\x21\x2f\x3b\x3f\xd4\x8a\x56\xed\x62\x3d\x7f\xfa\x32\xe9\x25\x47\x0e\xcd\x5c\xcd\xa2\x93\x34\x6c\x1e\xed\x2c\x15\x00\xed\xfa\x1d\x9b\xeb\x34\x21\x09\xdd\x55\xc7\xd4\x9d\x34\x89\x1f\xcb\x0c\x5c\x9d\x63\x21\x2b\xcb\xef\x17\xdb\xce\x35\x28\x40\x39\x8a\xd1\x12\x4d\x50\x88\x66\x68\x8a\x16\x68\xce\xe3\x29\xde\xa2\x47\x74\x83\x1e\xd0\x39\xfa\x8e\x2e\xd1\xd5\xb6\xdb\xb0\xeb\xf2\x36\xac\x49\x5d\xf8\x7b\xee\xc0\x54\x6f\xf0\x17\x44\x9c\x19\x89\x17\x24\xc3\x7f\x45\xc4\x21\xf9\x24\x58\x90\xf3\xef\x8b\x8c\xe4\x79\x1d\x3d\xd5\x10\xae\x3b\x86\x70\x1d\x4d\x01\xbf\xa3\xa3\xe9\x9f\xaf\x3f\x7f\xd2\x20\xb6\xf2\x59\xa2\x4e\x2e\xe3\xb8\xc4\xd7\xb2\x2c\xee\x71\xa5\xe1\xb6\x94\x89\x15\x13\xbb\xf5\xef\x82\x65\xf9\x9b\xba\xaf\x2f\xb1\x71\x75\xf9\xea\x80\xfc\xbf\x88\x10\xee\x90\x3a\xa3\xf3\xf8\x2a\x98\x12\x4c\x09\xc7\x82\xe5\x41\x6d\xd8\x73\xc6\x9e\x6f\xb8\xef\xe1\x57\x92\x84\x24\x23\x59\x6e\xaa\xfa\x7e\x53\x2e\x0a\xd8\x65\xe5\x64\x3c\xcf\x15\xa1\x34\x26\xa1\x99\x4f\xf4\x02\xff\x39\xb3\x6d\xf0\xe7\x0c\x5f\x69\x3c\xa1\x90\xad\x35\xc0\xf7\xb7\x39\x0f\x87\xb9\xcc\x32\x92\xd0\xaf\xcb\xe4\x53\x9a\x2e\x20\x80\xeb\xf5\xdc\xb9\x0d\x26\xdf\x6e\x97\x59\x42\x4a\x11\xc9\x90\x8e\x38\x77\xfb\x31\x2b\x23\x3e\xff\x39\x63\x1b\xd5\x3c\xca\x95\xb2\xf2\x5a\xcd\x59\x6d\x4e\x5e\xb4\xab\x7d\xe0\x76\xdf\xb2\xe8\x0f\xd9\x88\x28\xcf\xdc\x86\x52\x8d\xfb\x39\x9e\x13\x73\x65\xea\x2c\xc8\x1b\x5b\x50\xc5\xb4\x7d\x41\x2b\x6a\xdd\xc9\x1b\x94\xae\x1f\xb2\x5a\xeb\xaa\x68\x21\x1f\xa4\xbe\x35\x27\x74\xb9\x38\x4f\xee\xa2\x84\xe8\x4b\xf0\x4a\x50\x29\xa7\x66\xc6\x56\x2a\x9b\xaa\x8e\x5a\x1d\x8f\xaf\x0a\x6d\x8b\x6c\x31\xe6\xea\xef\xa4\x4b\x1a\x13\x6a\xa1\x2c\xa9\xbe\x55\xa5\x94\x39\x28\xcf\x51\x9a\x1f\xd5\x0a\x30\xea\xdd\xfc\xb8\x52\xf6\x4d\xe9\xcb\xfd\xab\xce\xa9\xb9\x50\xbe\xbb\x23\x49\xee\x57\xf4\xbf\x19\xfb\xb0\xde\x41\xb1\x96\x9f\xeb\x9e\xc8\xe5\xc7\xe9\xc4\x42\x7f\xcb\xaa\xef\x74\x65\xfe\x0e\x25\xdf\xe9\xce\x54\x04\x99\xf8\x6d\x6b\xae\xc9\x8c\x4c\xbe\xdd\xa6\xdf\x2d\xf4\x69\x5b\x9e\x38\x4a\xbe\xed\xd0\xd4\x42\x3f\x6c\xcb\x11\x25\x8b\x25\xb5\xd0\xff\x64\x5b\x46\xda\x18\x02\x99\x95\x24\xdb\xca\x62\xcd\x0e\x32\x12\x58\xe8\x27\x88\xee\x9d\xf3\x8b\x9f\x9d\x67\x6f\x44\xd7\xeb\x2d\x93\x60\x74\x54\x0f\xfd\x05\xd4\xd4\x67\x80\x66\x6d\x21\x41\x83\x28\x32\xc9\x7c\x2c\x64\x91\xe4\xde\x42\x96\xb9\xad\xfa\xf3\x20\x4a\xaa\xc4\x60\xc9\x7d\xd4\xdf\x09\xd3\xf9\xce\xed\x32\x8a\x43\x3e\xb7\xd2\xc0\x65\x75\x9b\xa6\xca\x9a\x90\x09\xe3\xdc\xd5\xe4\x46\x54\xc2\xce\x1c\x3e\x2d\x30\x69\xe5\x0f\x11\x9d\xcc\x00\x85\xab\x49\x90\x13\x56\x64\xc4\x0d\x52\x2c\x5f\x2e\xb6\x07\x47\xa7\xfd\x28\xaa\x70\x6e\xa3\x24\x14\x56\x23\x2d\xfe\x51\x46\x66\x8f\x61\xc6\xe8\xd7\xd7\x88\x49\x2a\x2d\x4a\x93\x86\xcf\x14\xee\x9d\xce\x3e\xe1\x11\xd0\x36\x73\x16\x3c\xcc\xa8\x39\x4a\xcd\x9d\xb6\x8c\xce\x6e\x1d\xb9\xe6\xb1\x2e\xcb\x68\x2c\xfa\xf9\xf5\xb7\x93\xa5\x29\xfd\x15\x9d\x6e\xaf\x82\x65\xb8\xd6\x6b\xfc\x89\x42\xaa\xf3\xab\x4a\xe0\x0d\xb2\xd0\x2f\xd9\xb6\xd7\x4c\x82\xa1\x16\xfa\x77\xb6\xbd\x09\x0a\x21\xa7\xda\x4d\x99\xc6\x09\xf6\x46\x95\xfc\x39\x98\x64\x69\x95\xa5\xbe\xcb\xc4\x21\x46\xb0\xe7\x49\xb0\x08\x6e\xa3\x38\xa2\x51\x85\xf3\x4a\x4f\x75\x7e\xa8\x52\xdb\x54\x86\xad\xbe\xe3\xf5\xb9\xf6\xbe\x44\x6c\xa2\xce\x72\x11\x06\x94\xfc\x39\x4d\xbf\x41\xb4\xe2\xd8\xdf\x9f\xa2\x29\x39\x7b\x9c\xc4\xe4\x4c\x1a\x36\xe5\x7e\x99\x5d\xe7\x98\x54\x72\x40\xc4\x5d\xb3\x04\xba\x74\x99\xbb\x4c\x84\xa8\xac\xc8\x17\x30\xd5\x39\xa1\x67\x6a\xd1\x4a\x8f\x40\xdc\x00\x1f\xd0\xca\xf0\xad\xa3\x19\xc0\xcd\xe7\xd3\x8b\xd3\x0f\xe7\x5f\x6f\xae\xae\xbf\x7e\xbc\xf8\x70\xf3\xe9\xf2\xf2\xaf\x3f\x7d\x69\xc0\xe6\x21\x43\x33\x06\x8b\x3e\xb2\x49\x18\x87\x92\x0b\xed\xcc\x45\xd5\x5c\x9d\x58\xf8\x5a\x6e\xb9\xca\xc0\x4a\xea\x1c\xfd\x0c\x29\xd1\xd3\xef\x78\x48\x04\xbf\xd1\x05\x58\x05\xa2\x6a\xaf\x7c\xa2\x3f\xea\x1c\x79\x9d\x95\x81\xc3\xdb\x94\xbb\xee\xab\xc2\x6d\xdb\x28\x95\x23\x5c\x0b\x84\x57\xa5\xfb\x54\xb6\x54\x62\xec\x3e\xa7\x21\x37\x44\x6d\x1e\xba\x86\x5e\x90\x86\x5e\xcc\x65\x21\x66\x27\xea\x05\x7f\xce\x10\x71\x54\xc6\xb3\x27\x29\x4e\x2a\x66\xc2\x28\x0f\x6e\x63\x72\xba\xa4\x29\x8f\xc6\x17\x25\x77\x26\x51\x6c\xbe\x85\x1b\x04\xf1\xb4\xb8\x73\xc7\xc3\xd7\xf1\xa0\x39\x88\xd6\xc7\x5e\x7f\xfa\x98\x3d\x71\x37\x79\xf9\x59\xa8\xb6\xf2\x17\x5e\x1c\x4e\x9c\xf2\x93\x27\x6f\x27\xdf\x5d\x7e\xbe\xce\x08\xd1\x91\xd6\xf9\x81\xeb\xe5\x55\xd4\xbf\x7d\xb2\xae\x28\xbf\x92\x5b\x02\xe7\xef\xef\xa3\x2c\xa7\x17\xfc\xd0\xf4\xc2\x0a\xb7\x15\xf0\x64\xad\x2c\xc3\xef\xef\xe5\x83\xb3\xe5\x7b\xb1\xc1\x5c\x72\x61\xeb\xe7\x88\x3c\x60\xe2\x7c\xbc\xf8\xf9\xf2\xaf\xe7\x98\x38\xa7\xb7\xf9\xff\x8f\xbb\xbf\x7f\x6b\xdb\xe8\xf6\x46\xf1\xdf\xfd\x57\x18\x3d\xb9\x7c\x6b\xbe\x0c\x8a\x69\xf7\x77\xef\x7d\x94\x4e\xb8\x09\x90\x86\x36\x01\x0a\x24\x6d\x6f\x6f\x1f\x2a\xec\x31\x9e\x46\x48\xee\x68\x4c\x42\x6c\xfd\xef\xe7\x9a\x35\xef\x92\x0c\xa4\xed\xfd\x9c\xe7\x3a\xbf\x80\x25\xcd\xfb\xcb\x9a\x35\xeb\xe5\xb3\x04\xcf\x26\xed\x0d\x46\x93\x2b\xfa\x79\x41\x39\x83\xdb\x6d\xae\x29\x26\x4d\x20\xf2\x9e\x64\xda\xef\xa8\xb9\x4a\xc0\x5b\xca\x85\xf7\xec\xfd\x94\x17\x10\x6d\x02\x43\x93\x37\xea\xa6\x45\x13\x5b\x1f\xa1\xc9\x5b\x56\x7c\xf4\x9f\x2f\xe9\x67\xb1\xcf\x69\xa6\x7f\xbe\x96\xfc\x97\xcc\xa2\xd9\x2c\xe2\x6e\x6f\x60\x07\x7b\x50\x2e\x65\x9b\x64\xe3\xce\xbd\x53\xc8\xd7\x81\xbd\x23\x2b\x70\xa0\x7e\xc3\x44\x3a\xc4\xf0\xf3\x1d\xab\xaa\x74\xe8\x85\xd2\x3a\x6b\x68\x59\x4d\x1d\x1a\xb9\x07\xc5\x14\x61\x06\x2a\x55\x1d\xdc\x1f\x22\xed\xdd\x52\x91\xe1\x8c\x38\xcd\x12\x03\x99\x26\xed\xf0\xdc\xda\x8b\xdf\x25\xb6\xea\xed\x6d\xcc\x49\x61\x2c\x75\x41\x31\x63\xcd\xb8\x41\x50\x92\xd2\x1a\x97\x08\x61\x06\x1b\x92\x62\x8e\x50\xaa\xf3\xbf\x61\x42\x66\xf7\xf0\xb5\xaf\xae\xd8\x94\x14\x09\x9b\x62\xf9\x5b\xb6\x89\x94\x38\xab\x37\x0d\xd4\x3b\x18\x94\x7d\x72\x16\xaf\xd8\x34\x8d\xaa\xff\x7f\xf9\x7f\x5d\x7f\xbe\x28\x22\x7c\x9d\x97\x93\x8f\xe9\x3f\x56\x91\xf2\x05\xaf\xa2\x74\x34\xc6\x91\xc5\x4c\x97\xcf\xa3\x5d\x3c\xfa\x76\x88\x47\xdf\xfe\x27\x1e\x8e\xf1\x68\xf4\xed\x37\x78\x38\x1e\xc3\xed\x6d\x3c\x1e\xe3\x68\x9e\x55\x47\x77\x59\x1e\xa5\xb3\x2c\xaf\x28\x8e\x96\x8b\xbb\x8c\xcb\x8c\x1e\x09\x1e\xd7\xff\xc0\xb2\x91\xe9\x4a\xc1\x62\x82\x56\x30\x5a\x64\x93\x8f\xd9\x0d\xad\x9e\x6f\x96\x57\xe5\xec\xda\xca\x21\xaa\xe7\x92\x9f\x48\xe6\xd7\x55\xa4\xc4\x5e\xc1\xe4\xef\x43\x17\x0f\xe4\x54\x66\x89\xdb\x3d\x17\xc6\xc7\x7d\xff\xfc\xfb\x8b\x08\xe1\x8f\x1b\x13\xbc\xd9\xbf\xb8\x7a\xf5\xf6\xf4\xe0\xc7\x08\xe1\x73\x95\xca\x3a\xc8\x1f\x1e\x9f\x5f\xfe\x7a\x75\xb9\xff\x7d\x84\xf0\xef\x8d\x6f\xc7\x17\x57\x87\xc7\x17\x67\xfb\x97\x07\x6f\xe4\x31\xba\x7f\x79\x79\x2e\x2b\x3a\x6c\x24\x7b\x75\xfa\xfe\xe4\x50\x7e\x38\x21\x55\x72\x50\x72\x2a\x37\xa6\x51\xd0\x56\xc9\xc1\x9c\xe5\x53\xf9\xaa\xba\x50\xfa\x6b\x5c\x25\xf2\xf1\x42\x4e\x85\x7b\x05\xe2\x68\x90\x0e\x9b\x77\x65\xa2\x6c\x68\xf6\x61\x51\xbb\x94\xcd\x67\x59\xd8\x3b\xf6\x99\x15\x78\xc5\x2a\xbb\xf9\x24\x71\x79\x92\x72\x78\xf4\xfb\xd8\x00\x3a\x8d\xce\x01\x2b\x6b\xaa\xd7\xf2\x65\x76\x83\x62\x9d\xe8\x70\x0c\x00\xf1\x35\xe6\x54\xf1\x69\x31\x5a\x41\xd2\x29\xe3\xe2\x1e\x52\xea\x12\x8c\x07\xaf\xaa\x0f\xd5\x78\x54\x24\x67\xe7\xa7\x67\x47\x72\xa0\x0f\x8f\x0f\xaf\x0e\xde\xec\x9f\x7c\x7f\x34\x0e\xfd\xcd\x46\xbf\x8f\x7d\x75\xc6\xe8\x60\x8c\x19\x71\x76\xfc\x7b\xf2\xee\x9e\x1a\x32\x60\xcd\x0e\x3d\x6f\x1f\x36\x5a\x26\xef\xcf\x0e\xe5\xb5\xe8\xfc\xe8\xf5\xd1\xf9\xd1\xc9\xc1\xd1\xe1\xd5\x87\xfd\xb7\xef\x8f\xc6\x83\xc1\x43\x5f\xe3\x6f\x08\x69\xc5\x50\xdd\xf3\xb5\x25\xda\x9f\x18\x29\x15\xc8\xbe\x10\xbc\xe9\x33\xa8\x08\x85\x1c\x9d\x6c\x7a\x78\xfa\xce\x24\x51\xec\x4c\x3c\xc4\x90\x42\x4e\x94\x0e\x49\xac\x35\xb6\x98\x13\x81\x0b\x12\xcd\x85\x58\xa4\xcf\x9f\x7f\xfa\xf4\x29\xf9\xf4\x6d\x52\xf2\x9b\xe7\xdf\x0c\x87\xc3\xe7\xd5\xdd\x8d\x0a\xc9\x68\x6d\xec\xdf\x9f\x1f\x63\x15\x59\x90\x61\xe7\x58\x9f\x96\xb5\xac\x64\xe2\x2c\xf4\xcd\x51\x84\x62\x8e\x3d\xe5\xf7\x7a\x1d\x65\x42\x70\x08\x7f\xb9\xc7\x13\xdd\x19\x50\xf1\xc7\x25\x4a\xf9\xa8\x1c\xd7\x78\xca\xa6\xe7\x74\x42\xd9\x1d\x95\x1f\xab\x18\xad\xf4\x3b\x3d\xed\x4a\xe9\xe5\x3d\x4e\xd9\xf4\x3d\x30\xae\x2e\xbd\x4c\xa1\xde\x85\x29\xac\x60\xdb\x1d\x12\x27\xf8\xc4\x85\x9b\x89\x11\x79\xd9\x92\x57\x46\xf8\x24\xe1\xb4\x5c\xd0\x42\xe9\x6c\xfc\x65\xae\x49\xba\x5c\xed\x8b\xb2\x62\xe0\x26\x90\x9f\x65\x3c\xbb\xad\xd2\xd1\x58\x43\xe8\x1d\x1b\xf2\x78\xf1\xf3\xf5\x1f\xd5\xdb\xf9\x87\x27\x91\xc7\x87\x28\xe0\xdf\x44\xf6\xe8\xed\x42\xdc\x1b\xba\x87\xdf\x92\x13\x6b\xd7\x91\x67\xf7\xe5\x52\xa4\xc7\x78\x62\xe9\x42\x3a\x8a\xa0\x58\x27\xa4\x18\x63\x91\xdd\xa8\xaa\xb5\x20\xc1\x5a\x6c\xbc\x62\xc5\x94\x15\x37\x32\x93\x5c\x2e\x11\x8e\x20\x17\x9d\x46\x38\x62\xc5\x94\x0a\xca\x6f\x59\xa1\xa4\x38\x9a\xd9\x94\x9f\x44\x76\xad\x15\x09\x91\x5c\x73\x11\x8e\xb2\xa5\x28\x67\xe5\x64\x59\x01\xd4\xbc\x42\x49\x8e\x70\x34\x2b\xf9\xad\xac\x5f\xf1\xf9\x56\x6a\x62\x8a\x92\xdc\x73\x50\x8d\x7c\x31\x65\xd3\xe3\xa2\xa2\xdc\xc4\xe5\x7e\x5c\xcd\x4c\x55\xc2\x24\x28\x8a\x58\x36\x59\xe1\x46\x78\x9f\x50\x8d\x27\x46\x19\x0b\xdb\xb7\xb2\xdb\xd7\xf5\x3f\x28\x59\xbf\x45\x7a\x55\x1a\xbe\xe4\x2d\x7e\xfb\xc8\xa2\x7c\x6e\x3b\x0d\x4b\xec\x35\x99\x6b\x50\xd3\xbd\x0e\xcf\x1d\x05\x46\x2a\xd3\x7d\x71\x73\x5c\x01\x4b\x64\xe8\xf8\x83\x33\xee\x09\xaf\x9e\x36\xe7\xca\x50\x47\x4f\x9f\x09\xfe\xa0\x1f\xab\xec\x4e\xcd\x3a\xd7\xf3\x98\x69\xd6\x14\x1e\x68\x31\xd1\x0b\x46\x3e\xe9\xe8\x84\xea\xa1\x28\xb5\x7e\xc5\x7c\x15\x70\x3e\x45\x38\x9a\x53\x15\x54\x5f\x35\xe9\x56\xa9\x24\xf2\x0c\xb4\x0f\x39\xab\x40\x6a\xa8\x0a\xbd\xcd\xe4\xda\xba\x65\xb2\xba\xdb\x65\x2e\xd8\x22\xa7\x6e\xb1\x2d\x32\x21\x37\x8c\xbc\xf6\xb3\x2f\xf2\x45\x25\xe8\x22\xc2\x11\xc8\xfb\x23\x1c\x7d\x62\x53\x31\x8f\xc6\x58\xc9\xff\xa3\x48\xad\x3f\x98\x69\xd9\xc9\xa5\xa0\x53\x14\xaf\x24\x4f\x0d\x73\x26\x20\x18\x89\x62\xba\xac\xb6\x5c\xbd\x6d\xbb\x1f\xab\xb3\xc8\xcc\x22\x6a\xa0\x38\x2b\x38\x39\xda\x67\x45\xff\xb5\xf9\xf6\x7a\x44\xc7\x1a\x7f\xd8\x08\x27\xf4\xac\x9b\x05\xae\xa7\x48\x05\x75\xd0\x01\xfe\xa8\x0e\xe4\xc0\xd1\xaa\xf6\x0a\xd2\x37\x59\x42\x08\xad\x63\x81\x94\xbb\x2d\xc2\x5c\x12\x06\x39\x18\xca\x12\x51\x0f\x90\x7a\xb8\x65\xe6\x47\xf6\x59\x79\x50\xc9\x35\xec\xf8\xec\x2f\xf8\xcb\x63\x8b\xd8\x5b\x58\xd0\x93\xf7\x1b\x97\xe7\xa6\x55\x09\xc2\xc9\x31\xb6\xab\xd7\xae\x4e\x27\xb9\xec\x5a\xa0\xbc\x04\x85\xdf\xa4\x04\x8d\xa0\x9e\xfe\x8a\xea\xc8\xfe\x47\xc5\xd4\x7f\x54\x21\x8e\x5b\x8b\xf9\x13\xcf\x16\x6e\x9d\xa9\xf5\xac\x56\xca\x18\xcb\xf2\xb5\xf1\x66\x99\x57\xe1\xe8\xc0\x85\xe4\x3d\x7e\xff\xa4\xc1\x81\x2e\xc0\xd8\xbc\x32\xa7\xc8\xf2\xf0\xc7\xcf\xf9\x7f\x17\xb4\xf3\x14\x89\x06\x5a\x5c\x18\xb5\xd8\xed\xff\xc4\xa3\x6f\xff\x4b\xb1\xda\xdf\xfc\x17\x96\xec\xf6\xee\x58\xf3\xdb\x78\x34\x8a\x4c\x3e\x1c\x41\x48\xe6\x31\x1e\xad\x9a\xfc\xfa\x7f\xe3\x5d\xcd\x9e\xcb\xbd\xc2\xb3\x5b\x49\xfa\xd4\x79\x84\x5b\x89\xa1\x86\x21\x1e\x45\x39\x2b\x3e\x5e\x32\x91\xd3\x68\x3c\xee\xc8\x39\x7e\x84\xd9\x67\xb3\xbf\x8b\xcb\xd7\xa2\x73\x7b\xe0\xbd\x31\x5e\x8e\x33\x4e\xe9\x17\x1a\xaf\xcc\x84\xa8\xed\xfb\xfe\xe4\xf0\xe8\xf5\xf1\xc9\xd1\x61\x54\x23\xfc\xa1\x99\xb6\x46\xf8\x59\xfb\xc0\x7c\xe5\x16\x60\x16\x61\x5e\x2e\x05\x4d\xdf\x60\x65\x0c\xa7\xff\x57\xe9\x1b\xfc\xc7\x92\xf2\xfb\xf4\x0d\x8e\x26\x4a\xbb\xb5\xf3\x69\x4e\x8b\x48\x2d\x18\x21\x87\x4a\xfd\xe4\x34\xd7\xef\xf4\xb9\x68\x9e\x24\xdd\x53\xbf\xd5\xfd\x19\x18\x93\x34\x52\x0f\x11\xce\xcb\x4c\x2e\x74\xfd\x56\x3f\xb9\xd3\x51\xbf\x77\xe7\xae\x56\xff\xc9\x43\xb2\x6b\xb3\xcc\x39\x9d\x49\x12\x0a\x73\x28\x8f\xe1\x3c\x3c\xaa\x35\x1d\x1e\xbb\xa3\x23\x38\x0a\x54\x9b\x5c\x33\x82\x03\x9f\x67\x85\x62\x9b\x58\x71\x73\x5c\x34\xdf\x9c\x2e\x65\xb1\xf4\x8e\x16\x2a\xf2\x4d\x34\xc9\xd9\xe4\x63\xf4\xe8\xcd\x42\x6e\x98\x95\xcb\x46\x35\xe6\x95\x32\xae\x2b\x34\x84\xa8\x85\x33\xba\x2b\x3f\x82\x15\x8d\x56\x59\x4b\x82\xbe\xd0\x92\x61\x14\x47\x3b\x46\x93\x8d\xf0\x95\x9e\xae\x73\x98\x57\x65\x60\x95\xb3\xac\x42\x71\x64\x32\x27\x7e\x12\x59\x79\x33\x1b\x87\x8b\xd7\xc3\x99\x21\x89\xcc\xa8\x46\xf6\xf1\x7c\x2a\x9d\xcd\xc6\x5d\xfb\xdc\xb9\x14\xc1\xdb\x08\x47\x1d\xcd\x89\x3c\x6d\xbb\xd2\x7d\xa8\x22\xcc\xc0\x59\xfb\x29\x42\xde\x28\x8f\xda\x70\x28\xc0\x7c\xe9\x4a\x2f\xef\x66\xbd\xca\x70\x0a\xab\xff\x55\xbb\x2a\xb5\x3b\xa8\xd9\x1d\xa2\x51\xe7\x96\xac\x53\x5e\xbf\x04\xfc\x12\xc0\x57\x23\x7c\xa5\xf6\x50\xb3\x32\x78\xdb\xae\x43\x25\xee\xec\xce\x87\x34\x94\x99\xd4\x98\x82\xdb\x81\xe5\x25\x37\x9d\xef\x5b\xbb\xee\x6c\x0f\x00\x5c\x58\x75\xa8\xf3\x12\x81\x01\x79\x5d\x99\x40\xf9\xdb\x4f\xd2\x1f\xb5\x35\x5a\x5d\xf0\xb6\xb4\x9c\x2d\xb3\x81\xe2\x96\x9c\x6e\x4b\x41\xa5\xe8\x14\xba\x16\x2f\x37\x0c\xd3\x86\x4a\x3a\x17\x81\x5a\x50\xf0\xc3\x4c\x56\x74\xa5\x47\xd4\xdb\xbf\x01\xd1\x6a\x0d\x75\xd7\x6a\x0f\x07\x7e\x6b\xcb\x34\xf6\x8a\x55\xfb\xd0\xbe\x58\x8d\xb9\xbc\xb7\xbd\xa2\xfb\x5f\xd5\xe4\xd6\x1e\xf9\x77\xf6\xa3\x6b\x4b\x7a\x88\x7a\x72\xb1\x0a\xd4\x58\x0c\xba\x87\x02\x7a\xe8\xf7\xd8\xe2\x14\xeb\x26\x85\x08\x37\xca\xae\x71\x14\xb6\x12\x3c\xee\xa3\x6b\xc5\x15\x7a\x41\xbc\x02\x38\xf2\x3e\x77\x77\x14\xd4\x13\x84\xef\x09\x03\x47\xd1\x8f\x50\xaa\x4c\x53\xd5\x10\xd9\xf0\xa8\x2b\xb3\x7b\x0b\xb3\xb3\x98\x23\x88\xa5\xea\x21\xce\xc8\xf0\x45\xe6\x60\x42\xb3\xed\x6d\x04\x61\x21\x4d\x9f\x5e\x97\x1c\x06\x26\x2e\x30\xc3\x62\x94\x8d\x31\x48\x1b\x75\xb7\x0c\xe6\xce\xd6\x6e\x8d\x1b\x74\xbf\x3d\xd7\xf6\xd8\xf0\x97\x44\xe7\x26\xb0\x20\x8b\x7e\xca\xc1\xa0\xb1\x37\x0c\xcf\xe8\xd7\xbb\xc3\x8a\x48\xce\x49\xf3\xc8\xf9\x2b\xad\x51\x80\xb4\xad\xf6\xac\xd7\x41\x7b\xd0\x86\x06\x95\x4b\x11\xa9\x55\x02\x87\x92\xb9\x15\x80\x04\x87\x55\x17\x4c\xf2\x9e\x07\xf2\x08\x44\x1e\x20\x12\x08\xa6\x57\xd7\xcb\xeb\xeb\x9c\x56\xa9\xc0\x0b\x0e\x27\xdf\xa1\x51\x1b\xeb\xc9\xd3\x08\x20\xe6\xe6\xa9\xd6\x31\x66\x64\xab\x58\xaf\xa3\xab\x8a\xe6\x33\x88\x7a\xd7\xb3\xe8\xcb\x83\x01\x1b\x0c\x68\x12\x16\x17\x23\x0c\xde\xba\x42\x7e\xaa\x44\xb9\x38\xe3\xe5\x22\xbb\xc9\xd4\x28\xe0\x26\x01\x74\x4b\x7a\xe3\x5a\x87\x00\xdd\xc1\xd2\x5f\xe9\x03\xac\xb4\x47\x4a\x66\x16\x65\x6e\x79\x95\xa5\xee\xd6\x84\x28\xe2\xae\x85\x2e\xb9\x62\xba\xe0\xd8\x2f\x3d\x43\xf8\x59\x32\xcb\xb3\x9b\x1b\x3a\x3d\xb6\x86\x76\x48\xde\x8f\xb4\x0a\xa2\x2c\x12\x6b\x58\x31\xc1\xc6\xc4\x17\xe2\xda\xd1\x4b\x3b\x45\xf1\x04\x2c\xd0\x72\xbc\x44\x72\x18\xc0\xf0\xb6\x95\xc6\x8b\x45\x60\xfb\xe2\x6d\x22\xcf\xec\x7a\x45\x13\x37\xfd\x10\x79\xd5\x3c\x5c\x96\x36\x46\x73\x5d\x63\xc9\x7f\xfd\x0d\x04\x5c\x73\xa6\x01\x09\xd4\xbf\xde\x00\x87\xe7\x2f\x67\x49\x66\x32\x1b\x56\x50\x67\xdd\x44\xb1\xfa\xfe\x3b\x59\x96\x3f\x8b\xd4\xce\xa2\x30\xb3\xc8\x1d\x69\x29\xc2\x23\xb9\x48\xcc\x88\xbe\x3f\x7f\xab\x7d\xee\x6a\xb9\x23\x74\xe1\xed\x61\x68\x74\x78\x9f\xd3\xb7\x10\xb6\xcf\x75\x4e\x9f\xa4\x2d\xfa\xde\x68\x9e\xcd\xe9\x13\xf4\x2d\xa1\x70\x32\x9b\x01\x2d\xfd\xa2\x3d\xde\xc7\x95\xd1\x6a\x67\x17\xf7\xd3\xa4\xbd\xfa\x98\xc4\x82\x0c\x5f\x08\x17\x83\x5e\x18\x77\x12\x4e\x0c\xa8\xb4\x6a\x13\xb7\xdb\xa6\x36\xb4\xc0\x1b\x2b\x39\x11\x69\xf4\xbf\xa2\x0e\x89\xaa\xac\xd4\xb0\x23\x3f\xcf\x69\x61\x0f\x68\x1f\xf1\x14\x3a\x2a\x39\x1c\x8f\x61\x57\xa1\xc4\x57\x0b\xb5\xd9\x7c\x2c\xd9\xc1\x40\x66\x33\x67\x03\x5a\x09\x62\x02\x3b\x6b\x11\xfe\xc7\xf1\x7a\xed\x8a\x74\x97\x42\x2c\x92\x6a\xce\x66\x22\x46\x16\x05\x76\x24\x6c\x68\xcf\x71\x0f\x9c\x87\x58\xf5\x93\xdb\xe4\x7b\xae\x18\xbd\xb6\x75\x50\x6e\x1d\x56\x5b\xdb\xe8\xfb\x09\xde\x20\x0c\xe7\x84\x15\xaf\xdb\x04\x7a\xfd\xbc\xf1\x33\xe9\x77\xae\x61\xd8\x7d\xd3\xdc\xec\x9b\xd6\xbb\x2a\xc2\x42\x47\x0d\x0e\xce\x53\x37\x46\x85\xae\xfd\xe5\xd0\x46\x15\x1d\x15\x5e\x4f\x1f\x42\x30\x18\x0c\x58\x38\x08\x06\x46\x18\x3a\x48\x98\xee\x3a\x2e\xd4\x48\x40\x20\x61\xd4\x6b\x6a\x44\x9f\xe1\x67\xdd\x52\x07\xbd\x1d\xd5\x15\xd9\x93\x7c\x3f\x0b\x25\xdf\x2d\x19\xb7\xba\xcc\x57\x91\x96\x74\xff\xd1\xd0\x4d\x9d\x1f\x1d\x9c\xbe\x3b\x7b\x7f\x79\xa4\x54\x5c\x4e\x45\xfa\xb3\xa7\xc1\xf0\x90\xf6\x34\x78\x30\xb8\xc8\x7c\x4f\xca\xc4\xc6\x4e\xfc\x33\x6e\x87\xa3\x3f\x3a\xd4\x49\x35\xe6\x54\x6f\x4b\x25\xa4\xbd\x4d\x7e\x2f\x59\x81\x62\x6d\x52\xdf\xd2\x28\xfd\x31\x46\x5a\x3a\xab\x35\xce\xdf\xe3\xef\x13\x56\xa9\x07\x2d\xfe\x27\x5b\x26\xb8\xca\xaf\x21\xb4\xaf\x45\xab\x86\x0a\x0d\x56\x75\x3b\xb7\x41\x6b\xb6\xe6\x19\x3a\x47\xea\x67\xaf\x3d\x2c\xef\x1f\x1b\xa0\xb3\xbf\x4a\x06\x5a\x35\xe1\x87\xce\x26\x54\x5a\x6f\xde\x86\xaa\x8e\xa2\x6d\x2f\x45\x6d\x4c\x8d\x83\x2b\x8d\x07\xd5\x58\x07\x7a\xf8\x1f\x60\xda\x7f\x22\xab\x68\x10\xa5\xd1\x20\xbb\x5d\xbc\x88\x70\xf4\x9d\xfc\x9d\x0b\xf9\xf3\xa5\xfc\x79\x23\x7f\xfe\x23\xfa\x47\x1a\x0d\xfe\x58\x96\xf0\xfe\x1f\xf2\xfd\xff\xfa\xfc\xcd\x7f\xc9\x87\xdf\xd4\xc3\x7f\x0e\xe5\x03\x51\x0f\xdf\x1e\xbe\x88\x6a\xfc\x0b\x79\x3e\x1a\x7c\xf7\x32\xfa\xc7\x6f\x64\xfc\x1c\xff\xcb\x7f\xba\x71\xab\x89\xfa\xb8\x64\x3f\x8d\xe8\xd8\x0d\x94\x68\xc2\x7e\x12\x42\xf7\x28\x89\xa2\xb4\x6d\x7f\x3d\x18\xc4\x9e\xd1\x34\xc2\x72\x60\x7f\x90\x03\xeb\xc0\x94\x3a\x40\x44\x69\x47\xfc\x32\xda\x19\xbc\xc1\xd8\x71\xeb\x89\x2a\x68\xe7\x4c\x39\x94\x67\x1d\xd0\x46\x2d\x96\xf6\x3d\xb3\x81\x97\xea\x25\xd3\x19\x8d\x95\xd0\xa3\x59\x83\x84\x3a\xb3\x25\x1a\x2d\x57\xaf\x46\x66\x9b\xf0\x4d\x56\x4c\x73\xe5\x19\xe6\x8e\x28\x7b\x46\xf5\x8d\x0e\x62\x65\xac\xb9\x0a\x0c\x12\xc3\x94\xd5\x8d\x72\x0d\xde\x26\x07\xcf\x73\x30\x1c\xf2\x4c\x9a\x62\xd6\x85\xfd\xef\xe2\x98\x88\x64\xaa\x30\xc1\xdf\x82\x48\xae\x8e\x87\xb8\x44\x7b\x2b\x40\xd4\xa0\x29\xc7\xbe\x41\x5e\x5a\x62\xe5\x82\x02\xf6\x30\x50\xd5\x0f\x0c\xe4\x28\x26\x7b\xcc\x42\xec\x6d\x54\xa7\x4f\x2a\x0a\x00\xc5\xd4\x00\x9d\x65\x5c\xb0\x2c\x7f\x74\x16\xfc\x74\x0e\x12\x79\x43\x16\xf7\xbd\xd6\xcb\x89\xd1\xd5\x82\xd3\x45\xc6\xe9\x3e\xbf\xa9\x5a\x00\x72\xf5\x94\x4d\x0f\x02\xed\x80\x46\x34\xa8\xad\x72\x55\xf7\x18\x72\xba\xe4\xb2\x09\xb5\xb2\x0c\x74\x9f\x94\x3a\xb5\x99\x41\x2b\x59\x65\x06\xb7\x67\x4a\xaf\x13\xc6\x43\xeb\xb7\x67\x2b\xe5\xec\x5c\xa7\xf2\x97\xb2\xde\xae\x7f\x93\xc4\x65\xa3\x19\x11\xa3\xca\x09\x9d\x92\x55\x30\xc1\xa0\xda\x53\x2f\x2e\xb3\x1b\xf9\xe4\x0d\x83\x7c\x54\xb4\x15\x9e\xb4\x05\x73\x0b\xae\xc9\x89\x3d\xc1\xf8\x71\x6b\x17\xeb\x6b\x92\x79\x54\x65\x1c\x64\x79\x4e\xb9\x57\xe1\xc5\xa4\x5c\x80\x1d\x95\x67\x39\xb9\xb1\x0e\x55\xc6\xb1\x86\xd0\x97\xb9\x3e\xf1\x6c\xb1\x50\xda\x4a\xcf\xfd\x15\x22\x50\xa8\x39\xad\x68\x5f\x1d\x79\x30\xbd\x06\xd2\x3f\xc4\xf3\x2b\xf4\xf0\xc1\x15\x00\x97\x44\x24\x92\x01\x0f\xde\x3a\x70\x2e\x15\xe7\x90\x7e\xea\x2f\x9d\x0a\xfc\xbc\x2c\xc5\xb9\xf1\x70\x8a\x01\xa0\x50\xf0\x52\xf6\x14\x53\x84\x7d\xe3\x60\x8a\x4d\x88\xaa\x14\xae\x54\x57\xce\x6b\x09\x74\x24\xc8\x58\xd1\x26\xc6\x5a\xbf\x84\xc5\x0c\x60\x4d\x1b\x86\x05\xad\x32\x9d\x9a\x68\x6f\x51\xb3\x1c\x30\x95\xe7\x3d\xcf\x54\x98\x3b\xb5\x44\x2f\x39\xa5\x46\xb5\x69\xf2\x69\x8b\x84\xc8\xd4\x09\xa5\x98\x8f\xca\xa5\x3e\x93\x93\x3f\x49\x8e\xde\x9d\x5d\xfe\x7a\xb5\x7f\xfe\xfd\x05\x36\x91\x0c\x0c\xd6\x80\xb5\x2d\xd6\x06\x9c\x48\x07\x4e\xd4\x8c\x15\xf8\xa1\x57\x83\x41\xa5\x3d\x5a\xdc\x2f\x1d\x71\x62\x4a\x4a\x93\x32\xf8\x20\xbb\x9e\x0f\x06\x10\x91\x53\xcd\xd8\x9c\x4c\xf1\x82\xcc\x93\xdb\x72\x59\x88\xb3\x92\x15\xa2\x97\x25\x14\x3c\x2f\xc8\xca\xbd\x4c\x17\x4f\x18\x00\x95\xcd\x0c\x80\x7a\xd2\x03\xb0\x78\xa8\xd3\xf3\x76\x7f\xeb\xc7\x2a\x33\xb5\x00\x73\xbc\xe3\xbc\x30\xf4\xa4\xb9\x71\xe6\xc9\x24\x5b\x88\x25\x97\x83\x66\x6b\x0c\x96\x95\xad\x5c\x58\xb3\xb2\x1a\x3c\x7e\x26\xd6\x62\xfb\xd0\x99\x25\xc7\x19\x86\xdb\xb2\xec\xae\x5d\x8b\x1b\x1a\xeb\x7b\x91\x67\x08\x9b\x11\x1a\x0c\xbe\x3a\xb3\xce\xa9\xca\xf8\xba\x9c\x6a\xe5\xa1\xda\x02\x7c\x66\x75\xc7\xc1\xb2\xb2\xa3\x40\x6b\x47\xab\xe3\x21\xbe\x49\x96\x85\xa4\x0c\xc6\x02\x0d\xdc\x81\xb3\x4a\x67\x03\xb8\xd5\xe0\x3c\x74\x40\x89\x54\x7e\xbb\xa0\xf9\x2c\x56\x1b\x9d\xd6\x0e\xfa\x11\xa0\x50\x33\x3f\x42\xc9\x86\x0d\xb9\xd7\xe2\x99\xd3\x69\x72\x70\x7a\x72\x71\xb9\x7f\x72\x29\xf9\xf8\xee\x03\x83\x26\x86\x36\xc4\xd6\x53\xa4\x55\xb6\xe4\xb0\x9e\x30\x9c\xce\xdc\x47\x16\x2d\xb7\x81\x9e\xc5\xaf\xcc\x6c\xf6\x87\x2e\xe3\x6b\x72\x6a\xd2\x22\x10\xb2\x67\x1f\x5a\xfd\xc5\x6e\x99\x82\xcc\x02\xf9\xca\x8e\xd9\xec\x66\x65\x7e\x4d\x26\x84\xba\x8f\xed\xff\x4f\xcd\xd4\x0d\x15\x7a\x17\x4a\x26\xcc\xbf\x62\x6e\x5a\xeb\x86\x53\x03\xfc\x0e\x0a\x36\xb9\x15\xd5\x87\xef\x92\xb6\x22\x65\xe6\xee\x3a\x95\xb9\xfb\x9c\x66\x68\x89\xf0\x23\x6e\x81\xad\x99\x2a\x68\xda\x2a\xc8\x08\x08\x95\x44\xd6\x75\xd7\x94\x68\x6f\xe0\x26\xd4\x87\x24\xac\x26\x74\x91\xd9\x67\xdc\x44\x2d\x9a\x67\xd5\xcf\x8a\x93\xd0\xac\x1d\x61\x5e\x54\x9a\x73\x3a\x23\x5e\xe4\xce\xf6\x2b\x59\xf6\x39\xbd\x63\xe0\xa4\x6a\xb8\xf6\xbd\x61\x0a\x74\x00\xce\xb4\xd7\x25\x07\x4a\xc0\x13\x91\xdd\x18\x08\x0e\xc5\x35\x90\x87\x99\x09\xc9\x41\x6c\xa4\xeb\x20\xeb\x92\xa4\xdd\x8a\xcb\x2d\x00\x08\xde\x1a\x3e\x39\xa3\x1d\x2c\x3f\xee\x64\x08\x27\xa2\x42\x20\x19\xd3\x54\x1a\x30\x35\x8d\x80\x48\x9e\x55\x3a\x02\x01\x2d\x04\x46\x8e\x23\xaf\x40\x3d\xca\xe0\xed\x14\x7c\x3f\xc8\x69\xc6\xd5\xc2\xb4\x01\x22\x3b\xad\x2f\x29\xea\xf1\xc1\x20\x86\x6f\x13\x99\x49\x7f\x91\x89\x90\xbc\xf7\xb8\x2f\x8d\x7c\xf2\x9c\x36\x9e\x4a\x49\x10\xf2\xa5\x76\xf4\x17\xfa\x6b\x97\x89\x15\xee\x19\x51\x9c\xb7\x82\x26\xd4\x5c\x1f\xe6\x8e\xd5\x5c\x6a\x51\x47\x30\x97\xed\x25\x6c\x21\xe1\x8d\xc5\x3a\xf6\xe4\x43\x69\x01\x8c\xc1\x14\x6e\x77\x70\x8d\x33\x7c\x54\xe6\x78\x2a\xe7\xf8\x44\x8d\x90\x23\x2e\x71\x86\x30\x1d\xfd\x31\x06\x08\x94\x29\xc4\x3f\x5f\xde\xaa\x93\x48\xbe\x46\x98\xd7\x3d\x25\xf2\x31\x51\xf9\x54\x07\x66\x7e\x07\x1e\x69\xba\xe4\x9e\x55\x19\xc2\x04\x57\x2d\xbc\x60\x62\xb4\xb8\x23\xa2\xd6\x8d\x0c\xee\x5f\x90\xac\x56\xe6\xb6\x3e\x8e\x78\xd8\x21\x10\x82\xb1\x4a\x09\xad\x50\x2c\xd0\x9e\xdc\x25\x0b\x1a\x8b\x11\x1d\xdb\x2a\xb0\xb6\xeb\x4d\x27\xc9\x19\x67\xb7\x4c\x39\x42\xe8\x36\x1b\xb6\x4b\xd8\xfe\x2d\x5c\xff\x66\x74\xe5\x28\xcd\xad\xbe\x96\x59\x8c\x0e\x42\x75\xb4\x38\xe1\x47\x8b\xe3\x04\x0c\x6e\x63\x01\x21\x66\x2c\x22\xa3\x2d\xc6\x84\xdf\xb1\x3e\xe1\x90\xd8\x93\x7d\xdc\x04\x09\xc0\x90\x17\x60\xd8\xc4\x68\x28\xe7\xca\x0a\x4b\xf1\xae\x27\x68\x45\x7b\xaa\xdc\xd1\x70\x8c\x52\xdd\x52\x20\xb6\xd7\x14\xdf\x53\x7c\x45\xc9\x6a\x91\xf1\xca\x8b\x73\x11\x86\x11\xb0\xd1\x05\x8c\x86\x73\x44\x31\xc5\x5b\xc3\x71\xcf\xa0\x6f\x55\xcb\x6b\x25\xc8\x89\x87\x18\xe2\xe4\xf9\xaf\xc4\xf6\xae\xe9\xeb\x48\x92\xdc\xad\xdd\x71\xad\x78\xd2\x3c\x37\x98\x53\xb8\x84\xaa\x47\x80\x2c\x30\x26\xc0\xb1\x47\x6c\x2a\xbb\x56\x05\x28\x4e\x60\x8b\x4d\x71\xe6\xec\x99\x81\x56\x2e\x07\x83\x78\x49\xa8\x51\xac\x1d\x4f\x11\x5e\x92\x87\xa6\x74\xa9\x63\x08\x82\x3f\x86\x33\x80\x96\x75\xe2\x25\xde\x1a\x62\xe5\xcc\xa9\x40\xab\x32\x37\x1c\x49\x84\x5e\xee\xec\xe2\x39\x99\xee\xdd\x48\xd2\x9a\x19\xa5\x6e\x12\x21\x94\x42\x7c\x92\x0c\xf5\xae\x35\x4e\xaa\x73\xc7\x3b\xbe\xb8\xfa\x70\x7c\x71\xfc\xea\xed\x11\xf8\xe0\xdd\xe7\x14\xfa\xe6\x19\xaf\x5f\xd3\xc1\x20\x9e\x03\x29\xbf\x96\xc5\xcc\x31\x94\x16\xb1\xea\x03\xab\xd8\x75\x4e\x23\xe4\x3c\x48\x5c\x8b\x2b\x3c\xc7\x5b\xbb\xba\xb9\x35\xfe\x44\x89\xec\xc6\x94\x55\x8b\x3c\xbb\x4f\xfb\x45\x59\xd0\x17\xd1\x63\x2d\x8a\xaf\x29\x81\x05\xfe\x40\xb4\x3f\xb5\x39\x85\x91\x9e\xea\x46\x99\xf3\x50\xee\x56\x7d\x12\x8a\xec\x46\x8b\x7c\xcb\xdb\x6b\xc9\x23\xc5\x23\x21\x5f\x62\x38\xb9\x00\x7b\x49\xed\x69\x85\x8b\xe3\x0a\xb7\xd4\x49\xef\x67\x5b\x89\xdd\xd9\x46\x2d\x2a\x1c\x7c\x02\x9b\xc5\x16\x10\x8d\x6e\x47\xfd\x46\xcf\xed\x26\x93\xab\x7b\x0f\xe2\xc2\xa5\xdc\x5c\x09\x3e\x01\x43\xee\xfb\x79\x59\x73\x33\xe7\x22\x50\xd7\xf8\x9e\x12\x4d\x6d\xc9\xcb\x95\x68\xac\x18\x35\x99\x58\xcf\x1b\xc5\x9d\x85\x28\xd7\xbb\x38\x98\x4c\x8e\xdc\xc4\xa9\x83\xea\x88\x92\x55\xb8\x31\x94\x80\x61\x04\xa0\x1b\x8d\xd0\x9b\x72\x87\x80\x11\x3f\x2a\x1a\x2d\x52\xe0\x8c\xf8\xa1\xe5\x5f\x22\xbb\xc6\x1d\xec\x71\x85\x73\xc2\x5a\x4b\x7d\x49\xf2\x3d\xe6\xad\xf2\x74\x34\xc6\x53\x92\xab\xe5\xbf\xd4\x6b\x9e\xa1\x5e\xe5\x62\x2c\x94\x40\x6a\x3f\xd3\x78\x8a\xf3\xbd\xe5\x68\xe9\xd4\x2b\x29\x43\x20\xf9\x38\x95\xdf\xe0\x94\xd9\xd0\xf8\xca\x5b\xd4\x46\x10\xf3\xb9\x75\x88\x04\x4b\x53\x9f\x1b\x8b\x4c\xcc\xcd\x32\x95\x4b\x91\xc2\xda\x53\xc6\x3f\x06\xe6\x68\x7a\x26\x13\x01\xd7\xf9\xd8\x62\x84\x35\x07\x60\xd8\x3a\x1a\x6b\x26\xe6\xa9\xc0\x61\x51\x46\xbf\x6f\x57\x9b\x89\x95\xd2\xa8\x31\x1e\xe2\x7b\x1f\x6c\x49\xb8\xf8\x13\x74\xbd\x56\xb1\xc2\xad\xec\x5b\x73\xc5\xaa\xef\xa7\x6d\x3e\x58\x59\x27\xc2\xbf\xae\x71\x10\x7c\x29\xe6\xf7\x36\xf4\x66\x96\x57\xf7\x66\xb3\xda\x61\xf1\x7b\xbf\x82\xdc\x29\xc5\x2a\x63\x2a\x30\xe4\x69\x76\xcd\x6e\xc6\x3d\x91\x72\xc5\xb3\x5f\xd0\xa6\xd3\x14\xb8\x23\x46\xa8\x67\x3d\x13\x2f\x94\xdc\xf0\xb2\x99\xf2\xe2\xf4\xfd\xf9\x81\x4c\xa9\x7a\xf9\xee\xc9\xec\xc3\x83\xac\x43\x38\xed\xa3\x4b\x3a\x26\x74\x33\x27\x61\x3a\x64\x38\x8a\x76\x02\xed\xd9\xf3\x90\xff\x50\x57\xbe\x87\xd3\xd7\xa3\x0b\xfa\xa7\xf2\xc1\x98\x9f\x35\x47\x72\x1f\x90\xc8\x7d\xf5\xde\xbe\x7f\xf9\xa2\x8e\x87\x38\x68\x4a\x2f\x31\x84\xd4\xeb\xd0\x95\x70\xd9\x44\xc4\x08\xc7\x25\x81\xdf\x8e\x56\x64\x36\x4d\xcf\xb9\x94\x93\x6c\x2f\x66\xc0\x69\x8a\x44\x03\xc1\x0c\x06\xf6\xe7\x88\x8f\x51\xea\xd7\x42\x32\x15\x7d\x4f\x96\x6e\xf6\x41\x9c\x24\x09\x45\x9a\x99\x15\x64\xa5\xcd\x6c\x99\x92\x6a\x51\x9c\x67\xd7\x34\x4f\x1d\xf4\xd1\x24\x2f\xab\x25\xa7\x3b\xda\x7f\xe1\xab\x8c\x4d\x94\xf1\x8f\xf1\x7c\x10\x58\x6b\x1f\x8d\x32\x52\x12\xdd\x24\x49\x0a\x15\x20\xdf\x8d\xdf\xc7\x80\x51\x02\xb7\x2c\x2c\x99\x20\x73\x7a\x15\x9d\x81\x1c\x59\xd7\xdb\x5e\x31\x3a\x18\x13\x66\xec\xbf\xfa\x25\x19\xbe\x28\x1d\xcb\x58\x1a\x9b\x83\x8c\x88\x51\x39\xc6\x15\x51\xc7\x48\x86\x70\x4e\xf8\x28\x1b\xf7\x3a\x26\x2d\x1f\x0c\xf2\xd1\x19\x1d\xef\x71\x08\xe7\x92\x56\x0f\x3a\xc5\xc5\x90\x4a\x92\xe4\xdf\xa9\x82\x80\xc7\x4c\xbe\xa9\x70\xa1\xa2\xc1\x58\x9b\x10\xe0\x35\x09\xc7\x05\xac\xbf\xf3\xe6\xfa\x3b\x3f\x7a\x6d\xb7\xf1\xef\x1b\x08\xf5\xa8\x4a\xde\xbd\xbf\x84\xc8\x14\x07\x47\x6f\xdf\x8e\xc9\xd6\x50\xfb\x1c\xca\x1d\x8a\x1d\x13\x4f\x84\x27\xf0\x31\x29\x9e\xb2\x2d\x0e\x9b\x8e\xf0\x8a\x31\x58\xd5\xbd\x06\x0a\xf2\x57\x40\x20\x0b\x7b\x24\x16\xe8\xbb\x21\x0c\x59\x31\x06\x1c\x64\xe4\xe2\x14\x75\x2b\x1b\x75\x2d\x0a\xa3\xd5\x94\xad\x7c\x52\x2b\xa3\x3a\x18\x42\xd3\xec\xa2\xe9\x4c\x1b\x53\xf4\x82\x7d\x57\xf8\xa1\xc1\xbd\x56\x8d\xd8\x18\x1a\xd6\xea\x93\x89\xc7\x75\x5c\x1d\x59\x8f\x58\xdb\x33\x99\x4b\x75\x66\xc4\xc6\xd0\x1f\xf9\xdf\x9e\x47\xbc\x06\x8a\x7d\x42\xc9\xd3\x21\x7c\x8e\x29\x19\x8d\x5f\xc4\x43\x9c\x2b\x61\xd1\x6b\x30\xd3\x47\xf1\x31\x35\x2b\xe3\x6d\xa0\x4b\xb1\x3e\xd9\xa5\xf3\x94\xb4\x4e\x50\x5c\xfb\x93\x80\x15\x59\x51\x03\x99\x00\xb0\x42\x87\x78\x4b\x51\x23\x38\x71\x18\xe9\x7d\x65\xf0\x92\x0d\x98\x85\x6d\x7d\xb4\x5d\xa0\x9e\x20\x19\x58\x8a\xf4\x85\x4b\x72\x42\x35\x3f\x24\x4f\xfd\xcb\xd8\xda\x4d\xf6\x79\x4f\x10\xcb\x37\x8a\xb8\x44\x5d\xd2\x64\xfa\x98\x08\xd9\x4a\xda\x9b\xb2\xe4\x1f\x98\x38\xf4\xf5\x69\x3e\x85\xb1\x43\x6d\x22\xf7\xf9\xc3\xe6\xc5\x14\xdd\x28\x44\x7c\x8a\x30\xcf\xc3\xa6\x02\xef\x74\x15\xc9\xef\x52\x99\x9c\xb9\x00\xd6\x16\x92\x08\xb7\xe4\x5d\x92\x51\xb0\xa8\x20\x7c\x0f\x22\x3e\x6a\x93\xb5\xf5\x3a\x9a\xb2\x3b\xe5\x5a\xd1\x92\x9c\x7b\x67\x54\x80\xd3\x52\x87\x8a\x54\x0e\x76\x6f\xca\x0d\x76\x0a\x41\x5f\xa3\x2b\x50\xa8\x5c\x5d\x45\x16\xcc\xd2\x7c\xb6\xba\x8f\xe4\x36\x5b\xe0\x95\x49\x98\xb2\x9a\x14\xb8\x24\x87\x34\x2e\xf0\xc8\xe5\xb7\x77\x71\x5f\x76\x72\x4c\xb5\xf0\xa4\x69\x99\x5e\x62\x2b\x3b\xd1\x54\x27\xc3\x6d\xa3\x9c\xaa\xf6\x61\x11\x0e\x54\x68\x6a\xf9\xd7\xa9\xe5\x2b\xc5\xf2\xf1\xc4\x65\x36\x37\x76\x5f\x5d\xdf\x85\x01\x5d\xa1\x8c\xac\x46\xd5\x38\x0d\x32\xdb\x6e\xd7\x38\x68\x74\x86\x3b\x07\xc6\x5b\xea\x71\x18\xec\xa3\x42\x83\x41\xe5\x0c\xa5\x9a\xd6\x03\xfd\x9c\x40\xdc\xad\x5b\x56\xc4\x26\x19\xee\xea\x46\x2f\x23\xab\xa7\xb6\xc5\x10\xe8\x25\x19\xbe\x58\x7e\x97\xbf\x58\x9a\xc3\x6f\x42\xaa\xd1\x72\xdc\xcb\x46\x93\x71\x38\x56\x99\x88\x97\xa8\xae\xdb\x53\x77\x63\xf5\x6d\xe7\xfb\xbf\xea\x59\xcc\xea\x3a\x54\xdd\x5a\xa1\x43\x3f\x23\x45\x72\xc7\xe8\x27\x9c\x13\xd1\x98\x32\xbc\x6c\xaf\x29\x3c\x25\x1f\x69\xbc\x44\x2f\x1a\xa1\xbf\xa8\xbf\x36\xd9\x34\x42\x20\x90\xb1\x12\x09\x22\x12\x36\x45\x35\x8a\x39\x9e\x22\x3c\x4d\xe4\xda\x56\xc2\x46\x92\xe1\xe9\xe8\xe3\x98\x94\x78\x9a\x68\xd3\x76\x4f\xe5\xe9\xd4\x73\x83\x41\x3c\x4d\x14\x51\x24\xee\xad\xba\x3a\xce\x49\x6e\x38\x8b\x29\xc2\x0b\xf2\x88\x6a\xd8\xb3\x2e\x7b\x4d\xf1\x1c\xf5\xd4\x08\x90\xb9\x0e\x6b\x98\x81\xe0\xaf\x4a\xb2\xe9\xd4\x62\x17\xc8\xb9\x9b\x23\x3c\x77\xe2\xd6\x86\x4d\xa3\x16\xb7\xde\x92\x28\xda\x22\x64\x6e\x76\x7f\xef\x76\xbd\x8e\x69\x28\xd5\x1d\x0c\xe6\xa1\xd4\xd6\x08\x6c\xf1\x3c\xb9\x0a\x4c\x70\xc1\x29\xcd\x93\xf5\x3e\x5c\x4c\xe0\x5b\x1c\x69\x63\xc6\x1b\xe0\x6f\xa6\x72\xe6\xe7\x78\x89\x17\xf8\xd6\xc9\xde\xfc\x39\x53\x57\x4f\x39\x6d\x37\x4e\x44\x6f\x52\x28\x68\x63\x95\xa2\xa3\x1d\xb7\x9b\x7b\xf4\xb0\x76\xe7\x21\x75\xef\x8d\x51\xf7\x7a\xd3\xf5\x34\x4d\xef\xfc\x6b\xd5\xbb\x37\x58\x1b\x43\x3f\xae\x5b\xbd\x01\x1f\x8a\x1b\xa7\xe6\xd4\x5a\x88\x50\xd3\xd9\xb2\x74\x09\x64\xff\x66\x78\x53\x11\xa8\x01\x38\x36\x65\x15\xb5\xda\x9f\xb0\x0a\xab\xa6\xe4\x1e\x33\x2d\x9d\xaf\xa8\x08\xa4\xf6\xcc\x18\xc7\xb6\x5d\xe8\x72\xdf\xa9\x7a\xd9\xe1\x26\x37\xd5\x61\x89\x24\x03\x6d\x08\x58\x07\xfe\xa9\x13\xf2\x96\x64\xa4\x78\x72\x23\xde\x78\xb1\xb3\xbb\x45\x48\xf5\xc2\x44\x21\xa5\xa3\x6a\x8c\x97\xe4\x8a\x26\x4a\xbe\x0a\xb0\xf3\xcb\xd1\xee\xf8\x05\x88\x53\x4b\xcb\xc2\x41\xd8\xa2\x52\x21\x96\x4d\x11\xbe\xa2\x89\x11\x03\xc9\x4a\x97\x50\x2d\xc2\xd5\xce\x4e\x6d\x44\xb1\x2e\x2f\x90\x1a\x63\xd5\xe0\xd1\x9b\x3d\xef\x77\x0a\xbc\xfa\xcd\x92\x4d\x5f\x83\xea\x46\xee\xf7\xb6\xdc\xf3\x21\x81\xd1\xdc\x13\x56\x3d\x2c\x4b\xb4\x0c\xd8\x3d\x1d\x0c\x9a\x6d\x55\xc2\x32\x34\x18\xdc\xd3\x58\x9b\xd6\xa3\x38\xc7\x14\x17\xb8\xc4\xdc\x93\x45\xcd\x7d\x61\xee\x1e\xdd\xd8\x15\x8a\x7a\xe5\x9f\xef\x0a\x7e\xb8\x2b\xf7\x92\x4f\x90\xed\x92\xc3\xae\x2f\x13\x4a\xd9\xf6\x99\xc6\x02\x0b\xcb\x60\xff\x48\xef\xdb\xed\xd0\x92\xac\x99\x1b\xb8\xe5\x60\x60\x64\x61\xf2\x97\x0f\xee\xbd\x21\xf3\x43\xfd\xa0\xbe\xfc\x10\x4f\x07\x83\xa9\x2d\x7b\x1a\x94\x7d\xe4\x96\x13\xc3\x05\xa6\xb8\x94\x19\xfe\x44\x8d\xda\x5d\x46\x9e\x14\x91\x37\x88\x51\xc6\x59\x76\x5e\xe6\x34\x62\x10\xde\xb2\x59\x32\x97\x9f\xf0\x9d\x1c\x4c\x97\xd4\xcb\x4f\x1f\x24\xf9\xbc\x49\x6a\xe9\x83\x24\x7f\x93\x61\x84\xa5\x3e\xa3\xc3\x31\x11\xf8\x89\x96\x12\x5f\xaf\x7e\x37\x26\x1e\x2b\x2d\xb0\xf0\x78\x66\x8f\x3c\xee\x35\x04\xe4\x5a\x5a\x35\x3a\x1f\x8f\x51\x2a\xff\x79\xa6\x7f\x0f\x28\x4d\xd1\x4a\x34\x47\x27\x6e\x8d\x26\x2b\x0e\x4f\xdf\x85\x7a\xd2\x26\x0a\x47\xeb\xab\x39\xbc\x02\xc3\x8b\xc6\x0d\x40\x9d\x3e\xd8\xd7\x5c\xa7\x45\xd0\x40\x1b\x23\x70\xe3\xf8\xb2\xc7\x2c\x26\xbc\x89\xe2\x5f\xc1\xd4\x7c\x01\x2b\x06\x3e\x18\x6c\x19\x05\x3a\x60\x56\x38\x05\x3a\x36\x11\x8d\x4a\xc9\xcc\x41\x10\xcd\x40\x05\xbf\x59\xef\x0e\x58\x49\x43\x00\xaa\x17\xfa\x9a\x2e\xaf\x31\xa5\xf9\xb4\x2b\x39\x36\x6f\x28\x3d\x58\x9c\x08\x35\xbe\x85\xdc\x53\xcd\x5a\x93\x29\xc2\xb5\xae\xca\x0a\x8b\xf1\x79\x8d\x0d\xf6\x25\xff\xbe\xc5\xee\xec\x4d\xbf\x7a\x95\xb6\xc7\xe8\x81\x55\xb8\xd1\xa8\x84\x7a\x82\xb9\xd7\xc1\x87\xc4\xad\x93\x43\x2a\x32\x96\x57\xca\x65\x81\x65\x7a\xb8\x00\x3b\xdc\xe5\xfe\xf2\xb5\xb9\x77\x6b\xa5\x1f\x7c\xdf\x36\x86\x1d\x06\xc6\xb0\xc3\xd0\x18\x76\xe8\x1b\xc3\x6e\x0d\x9b\x66\xaf\xc3\xd0\xec\x75\xd8\x30\x7b\x1d\x3e\x64\xf6\x6a\x53\x77\x1a\xb8\x0e\x43\x03\xd7\x61\x8d\x5f\x29\x6b\x9b\xb7\xc6\xda\xe6\xcd\x06\x35\x3d\x88\x1d\x24\xcb\x69\xa4\x74\xe1\x2d\xc9\xaa\x5b\x0c\x5c\x1b\xf7\x0c\x66\x8a\xd0\x3e\xe7\x95\x2e\x41\x19\xef\x28\x6b\x53\x8a\xc3\xf2\x52\xe1\xd8\xd7\x86\x81\xf7\x7b\x5a\x1b\x95\xc8\x07\x27\x4b\x7a\xdb\xb2\xe2\xd7\xc8\x63\x4d\x4b\x1e\xda\x29\xb6\x09\xac\x08\x02\xe9\x4a\x90\xdb\xb3\x2c\x68\xcb\x76\x04\x4a\xac\x44\xc4\x4a\x76\xba\x8d\x85\xc3\x52\x95\x58\xeb\xe9\x97\x35\x66\x2f\x6b\x4c\x1b\x14\xc3\x75\x8b\xd9\xeb\x56\xd6\x75\xdd\x62\x1b\x2e\x27\xec\xeb\xae\x5b\xec\x09\xd7\xad\xca\x5d\xb7\x98\x02\x36\x29\x3d\x7d\xfd\x83\xe4\xe7\xa1\xcb\x50\xf5\x94\xcb\x50\xb7\xa5\x2d\xdb\x70\x1b\xaa\x94\xf8\xe6\x19\xc5\x7f\x50\xfc\xf3\x63\x36\xed\xc3\x07\x6c\xda\x7d\xd0\x8e\xff\xcd\xdb\xd8\xda\xa9\x7f\xdf\xed\xca\xe2\x2d\x7e\xed\xd2\x2e\xa7\xe7\x83\xa4\x76\xbd\xd0\x72\xce\x19\x4b\x5d\xc9\xeb\xee\x6b\x1b\x49\x0c\xd9\xb4\xfe\xae\xe5\xc9\x6c\x99\x43\x08\x38\xed\x63\xb8\x3b\x44\xe1\x66\xfd\xb9\xb5\xb1\x79\x6d\xf9\x23\xef\xbc\xf0\x18\x23\xc9\xfa\x38\x9a\xfc\xab\x4f\x93\xff\xa0\xeb\x75\xfc\x07\xdd\x88\xb3\x94\xc9\x8b\xf9\x1f\x34\x99\x73\x3a\x23\x72\x4a\x95\x24\x7c\x52\xe6\x9e\xcb\x96\xa7\xbb\x01\x69\x96\x36\xa4\x69\xa1\x22\xcb\xb3\x97\x3c\x33\x17\x37\x8a\x6c\x59\x08\x6b\xeb\x3c\xb1\x17\xa5\x51\x2a\x60\x05\xfd\x40\xc9\xd0\x29\xde\x7e\xf2\x5a\x0d\x48\xda\x11\x21\x84\x02\xb4\xd3\x7a\x1d\x19\x07\xb9\xe0\xa5\xb9\x48\x04\x2f\x99\xdc\x78\xa2\xe4\xee\xa5\xa6\x7c\xbf\x74\xcf\x34\x9b\x92\x1f\xe8\xf6\xb6\xaf\x47\x69\x18\x38\xb8\x2f\xb5\x8e\xde\x65\x1c\xf8\x54\x72\x10\xd0\x7a\xce\x69\x4a\x29\x1e\x9d\xd3\x59\x5f\x3b\xa8\xb1\xa9\xe7\x56\xe4\x72\x5a\x7b\x8c\xed\xa8\x1f\xeb\xa2\xa7\x28\x02\xcc\x2b\xf5\xe9\xb7\x67\x2b\x5a\xa7\xfd\x67\x5e\x75\xf5\x6f\x1a\x06\x4b\xf8\xc7\x39\x0c\xe8\xbf\x8c\x0f\x98\xa7\xcd\xe0\x74\x41\x33\xb1\x5e\x77\x04\x6b\x90\x2b\x5a\x49\x2e\xe9\xf6\x2e\x02\xfd\x9d\x02\x57\x34\x7b\x83\x8a\x60\xc4\x9c\x01\xe9\xe4\x23\x6c\x87\x9b\xe4\x42\xfe\x36\x6e\x46\xb3\x2a\x40\x86\xb5\xb6\x96\xea\xf5\x05\xd5\xe7\x5d\x51\x4e\x69\x47\xca\x45\x26\xe6\x27\xcd\x4f\xf5\x35\xbd\x61\x45\xec\xfc\xcb\x68\x70\x40\x70\x0f\xac\x36\x90\x36\x73\xbc\xba\x2e\x97\xc5\xb4\x32\x68\x44\xb3\x2a\x35\x8d\x90\x15\xd9\xa7\x5a\x6f\x51\x68\x94\x46\x99\x2d\xf4\x01\x28\x29\x47\xa1\x24\x79\x71\x01\x60\xd0\xca\x66\x47\x1b\x2d\x86\xba\x36\xf7\x3e\x54\x0a\x18\x6b\x0b\x59\x81\xd2\xd8\xb8\x03\x5f\xd4\x21\x63\xd8\x4a\xa9\xfa\x60\x18\x05\xfa\x99\xc9\xde\xfb\x52\x25\x0a\xb2\x9e\x9b\x84\x7e\x5e\x28\x7b\x3d\x33\x13\x5a\xfb\x8e\xa3\x57\xef\xbf\x4f\xfb\xb7\xac\xaa\x58\x71\xd3\xe7\x74\x16\xa1\xc4\x2e\xe2\x7a\x52\xde\xde\x3a\x77\x54\x3b\xbc\x46\x32\x16\x6c\x00\xfd\xf6\x9c\xce\xaa\xd8\x4d\xad\x99\x8c\xb3\x4c\xcc\x83\x13\x7b\xa5\x9d\xfc\xad\x8f\x1c\x2c\x1b\xa7\xfa\x23\x3a\x62\x62\x89\x33\xd2\xee\x82\x9a\x0e\xd9\x07\x66\xfa\xb0\x2f\xe4\xb8\x09\x3a\xed\x8b\xb2\xaf\x2a\xed\x67\x7d\x39\x99\xb8\x7f\xbd\x14\x7d\x31\xa7\x9c\xf6\x59\xd5\x2f\xca\xbe\xae\xbb\xaf\x58\x81\x3e\x44\xfa\xf1\x3d\xfb\x0a\x54\x92\xcc\x8a\x4d\x56\x4a\xd6\x5d\xd5\x24\x03\xe6\x0b\xe7\x04\x06\x51\x5d\xe3\x2b\x4f\x91\xa9\x44\x55\xf9\x5e\x09\xb6\x7f\xb2\x77\x99\x06\x72\xb4\xf4\x49\x9d\xae\xd1\x3f\xa3\x6d\xc5\xfb\x55\xa3\x7c\xdc\x58\x72\x69\x1c\x2e\x78\x90\xa3\x16\x48\xfb\x98\x7b\xe3\x59\xe0\x48\xbe\xd2\x91\x05\x22\x7d\xf1\xd7\x51\xfc\x5c\x76\x39\x4c\x85\x0a\x17\xde\x5f\x1a\x57\x24\xd5\x2e\x8e\x75\x3b\xcb\x46\x1b\x7a\x25\x14\x00\xb2\xea\x78\x89\x1a\x5b\x50\x6f\x84\x25\xaa\xeb\xbc\xd4\x5c\x05\x6c\xf5\xd7\x25\x57\x33\xed\xe4\x79\xa2\x63\xfa\xc2\xb6\xd1\x87\xa7\x30\x2f\x6f\xfa\xb3\x92\xeb\xc9\xec\xdb\x81\x57\xd3\x5a\x94\x30\x7d\x7d\xfa\x99\x55\x02\xd2\x89\x79\x26\x5c\xaa\x08\x61\x4e\x46\xe3\x17\x56\x80\x26\x06\x83\x9f\x68\x2c\xd0\x0b\x85\x04\xe1\x1f\x07\x0a\x28\xd0\xd0\x8c\xdf\x9e\xad\x84\xd6\x27\x28\x87\xbe\x91\x7c\x01\xbf\xc6\xbf\xf5\xb8\x09\xe7\x86\x05\x31\xc9\x94\xe2\x93\x27\xcb\x42\x19\x8c\x0a\x1d\x21\xd5\x4b\x61\x46\x85\x91\x11\x57\x14\x35\x4a\x22\xe4\x37\xef\x05\x32\xee\x5e\x5b\xa6\x45\x83\x41\xb4\x23\xca\xc5\x4e\x4e\xef\x54\x44\x64\x55\xf0\x5e\xcc\x9a\x55\x79\x8d\x41\xa9\xfb\x6d\xd8\x44\x06\x61\xfb\x80\x96\x90\x97\xee\x08\xe1\x24\xea\x47\xb8\x20\xdf\xfc\xff\x04\xfe\x97\xd6\x65\xcb\x7d\x5a\xcb\xd3\xe5\x37\x13\x9b\xbc\xd6\x47\x40\xf4\x3f\x45\x04\x5e\x9c\x70\x06\xb2\x59\x3c\x34\xb0\x30\xb0\x85\x93\x8a\x7d\xa1\x10\x68\xfe\xc5\x96\xf7\x96\x55\x47\xb7\x0b\x71\x1f\xa3\x17\xc8\x7b\x0b\x1e\xfd\xb5\x21\x8d\x2b\xff\x8b\x8e\x33\xa1\x88\xda\xaa\x95\xc7\x51\x41\x5f\x37\xbc\x81\x48\xb4\x08\x9d\xda\xf1\xb5\x4f\xc1\x9b\xbe\xc0\xaa\x32\x4d\x29\x70\x01\xa7\xce\x2f\x72\xe1\x58\xbc\x17\xa0\xa3\x2a\x12\x40\x81\xcc\x59\xa3\x2f\x22\xa6\x79\x1c\xf5\x98\x4a\x28\x37\x12\x04\xa3\x51\x53\x42\x98\x56\x93\x5b\x52\xa9\x53\xd4\x3e\x21\xb5\x6c\xd5\x68\xdc\x0e\x5f\xc8\xb5\x41\x4f\xa1\xed\x9f\x51\xaf\xd8\x13\x5e\xac\x55\x5d\x90\xdc\x68\xe6\xd6\xb3\x23\xdb\x95\x46\xdb\x3c\x61\x53\x5c\x20\x94\xd2\x64\x4a\x73\x0a\x16\x9c\x10\x96\xd0\xcf\xd3\x1c\x11\xd3\x27\x81\xf4\xa5\x41\x19\xc2\x1b\x33\xa2\xd2\x5d\x0d\x32\x75\xa2\x56\x35\xe1\x26\xc8\xad\x2e\xd8\x9e\x7c\xdc\xc6\xb9\xd5\x5f\x5e\xc1\x59\x26\xdf\x4f\x48\xeb\x40\xb1\x31\x3d\x57\x6c\x9a\x52\xdc\x55\xbb\x55\xed\x79\xad\xb0\x17\x94\x1c\xeb\xe3\x7e\x89\x27\x72\xb6\x39\x2d\xd2\x49\x5d\x37\x1b\xe5\x3b\xae\x39\xee\x09\xb4\x76\x9d\xae\x6b\x40\x65\x38\xe5\x89\x03\x6f\x54\xa0\x2a\x75\xd8\x29\x1f\xb0\xda\x2d\x52\xaa\xcf\xef\xc6\xda\x54\x2f\x23\xa7\x3d\x87\xf5\x62\xec\x01\xcc\x96\xb6\x48\xbf\x78\x66\xc2\x26\xa4\x22\xb1\xbf\x63\x84\xf3\xcc\xbe\x36\x3f\x63\x64\xef\xf9\x42\x74\x73\xbb\xbe\xc5\x1f\x8c\xe8\xa5\x35\x3c\x06\x82\x0c\x42\xa5\xec\x3a\xf7\x31\xcc\xbb\x8c\x93\x3d\x03\x51\x53\xcc\xd3\x8c\x94\xc1\x20\x5d\x64\x37\xaf\x4b\x6e\xbc\x0c\x68\xc3\xfb\xe0\x8c\x97\x9f\x21\xd6\x00\xc0\x1a\x40\xb4\xc8\xab\x49\x59\x08\x5a\x08\x7d\xaf\x02\x45\xd6\x54\x0b\x3c\x2d\xe2\x85\x6d\x09\x98\xd3\xd3\x4f\x7d\x0e\x16\x88\x8f\x59\x28\xea\x11\xe3\x0f\x8e\x98\x77\xbf\x2a\xfc\xe2\x68\xdf\xac\xc7\x72\xd6\xe7\x62\xaf\x01\x8b\x2b\x08\xb5\x57\x9f\xf5\xda\xa0\x2d\x58\xe0\x06\xe1\x1b\x40\x6d\xb5\x30\xd1\xac\xe9\x80\xa5\xf0\xa1\xc5\x01\x45\xeb\xb5\x1e\xb3\xa3\xdb\x6b\xca\xe1\xad\x1c\x9f\xbd\x4a\x24\x33\x5e\xde\x1e\x4b\xd6\x45\x0b\xff\xd2\x2c\x79\xb3\x7f\x71\x75\xb2\x7f\x79\xfc\xe1\xe8\xea\xe2\xd7\x77\xaf\x4e\xdf\x0e\x06\x73\xd9\x99\xbd\x89\x4a\x2e\x53\x4d\x85\x97\xff\xb5\x22\x45\xa6\x84\x8e\x52\xeb\x98\xaa\x21\x42\x69\x13\x11\xb8\xe1\x4b\x42\x43\x8b\x88\x0d\x1d\xda\x2b\x5d\x53\xba\xbb\x96\xb9\x04\x0f\xf4\x68\xd9\xec\x51\xd9\xd9\x23\xd8\xcc\x0e\x81\x84\x75\xaf\x01\x1d\x17\xd0\xd8\x4a\x6b\x9b\x09\x32\xac\xed\xa9\xb7\xb2\x70\x46\xb7\xf4\xb6\x0c\x0e\xae\x3e\xad\x0b\xfa\x59\x68\x7b\x61\x55\x54\x4a\x2d\xe8\x7a\xe0\xc5\xf5\xd2\x81\x35\xd9\xb9\xe7\xde\x8d\x51\x93\x67\x0d\x88\x66\xaa\x72\xe6\x4c\x41\xfb\xb6\xb7\x4d\xbc\x47\x8e\x65\xd2\xb4\xb0\xd4\xa1\x14\xce\xa2\xac\xd5\x65\x25\x05\x34\x0a\x5a\x73\x19\x92\xe3\x4f\x68\x5d\x81\x0c\xb0\xaf\xc7\xd6\x49\x7e\x8d\xd9\x0b\x18\xb1\xcb\x1c\x76\x74\xbd\x1c\xe1\xe0\x3f\x70\xf4\x51\xf2\x52\x18\x16\xc1\x78\x7e\xc9\x1a\x85\x26\x31\xe1\x00\xbb\x06\x8e\xe8\xd8\x74\x31\xfb\xdf\xd8\xc5\x76\x9b\x1a\xc1\xd3\x5d\xf9\xd8\x11\x9c\x6a\x73\x0b\x3d\x53\xed\xb0\x8d\x1f\xe9\x7d\x15\x90\xef\x8a\x08\xbf\xc1\xfe\xd6\xd4\xe3\xab\x0d\x1c\x65\x4e\xc9\x28\x99\x15\xc8\x6b\x22\xe4\x9a\x1b\xb6\x90\x4e\xac\xd1\x27\x19\x8d\x31\x23\xc3\x17\xec\x3b\x0e\xd6\x93\xf6\xc2\x26\x46\x6c\xdc\x2b\x09\x1d\x65\x63\x45\x88\x59\x65\x83\x2d\xc5\x48\xb9\x07\x86\xfe\x6f\xf0\x42\x51\x7d\xe5\x89\x84\x70\xb8\xf3\x4b\xd4\xe1\x35\x17\xe4\x2a\x71\x34\x1a\x47\x08\x21\x5c\xa8\xa5\x51\x5a\xb3\x4b\x3b\x21\x92\x53\x7b\xc2\x82\x83\x2b\x03\x2e\xc8\x10\x33\xb2\xb5\xdb\x5e\x7e\xbe\x01\x43\x89\x56\x31\x23\x6c\xbd\x6e\x06\xba\x78\x49\xbe\x01\x3b\x57\xdd\x16\x6c\x63\xa7\xe1\x62\x7b\xbb\x46\x0a\xb6\xab\xd8\x93\x43\x9a\xb2\x3d\xaf\x89\x5c\x79\x73\x94\x42\x32\x65\x9b\x96\xb3\x9a\x5c\xb9\x9e\xdb\x04\xc5\xae\x04\x6f\xb9\xe7\x1d\x2b\x48\x9d\x5f\x42\x99\xb0\x9a\x55\xc3\x69\xb5\xcc\xad\x77\xae\x47\xcb\x1a\xcb\x5e\x1b\x52\x8e\x94\x31\x6d\x62\xee\x51\xe3\x18\x62\x6f\x24\x8a\xa4\xe1\xd5\xb4\x2c\xc0\xd0\xd4\x86\x82\xd3\x3d\x0e\xfa\xdb\x45\x27\x3d\x9a\x68\x9a\x98\x52\xac\x5a\x97\x0a\x47\x1e\xb9\xef\xe4\x2a\x6b\x6b\x11\xc8\xa2\x49\x20\x31\x47\x98\x35\x48\x24\xe6\x1b\x89\xa4\x3f\x2c\xd4\x76\x4c\x51\xce\x42\x51\x4e\x66\x29\xe7\xd2\x6d\xda\x5c\xac\x3a\x66\x4f\x9b\xb4\xbb\x69\xf3\xb1\x73\x4c\x29\x93\x27\x96\x32\xda\xed\x9a\x7f\xf3\x71\xe8\x4b\x7d\xa7\xe2\xe1\x00\xc1\x66\x71\xbb\x1c\xf3\x47\x72\xb4\xa6\xde\x65\x9d\x89\x80\xd4\x05\x4c\xdb\x5e\xe7\xee\x37\x3c\x9f\x8b\xaf\x42\x71\xa4\x99\xba\x08\x21\x6c\x60\x5f\x7d\x7f\xc5\x48\x92\x95\xa5\x98\xdf\xcb\x5d\x9f\x02\x1f\xa8\xc9\xc5\x57\xd6\x03\x74\x03\x2b\xa0\x36\x4d\x4e\x53\x17\x9f\xa0\x86\x72\x9c\x62\xfa\xfe\x90\x4d\x55\x2c\x36\x85\xad\x16\x04\xed\xa5\x45\xb5\xe4\x56\xc5\x10\x23\x6d\x1d\x56\x51\x71\xa1\xc3\xf9\x6a\xd9\x1c\xb2\xf7\x70\xf0\x8e\x30\xc1\x7e\x51\x33\xda\xaf\x00\xd0\xe6\x4d\xa5\xd0\x29\x02\x6b\x94\x66\x19\xda\x5f\x5c\x97\x21\x4b\xd0\x32\xdb\x45\x37\x07\x03\x88\x2e\x84\x3e\x64\x56\x07\xe9\xae\x1a\x7a\x24\xb8\x16\x53\x65\xa0\xd1\x6f\x7c\x53\xd2\x81\x8d\xe8\x38\xfe\x6e\x6b\x16\xdb\x13\x73\x5e\x7e\x02\xba\x7d\xc4\x79\xc9\xe3\xe8\x20\x2b\xfe\x21\xfa\xd9\x64\x42\x01\x76\xe0\x7a\x79\x63\xa4\x77\x82\x53\xda\x2f\x97\xa2\x62\x53\xda\x97\xdc\xf1\x1c\x78\x6e\x79\xc7\x2a\x79\x3f\x6e\xd7\xdc\x9f\xe5\xd9\x4d\x9f\x55\x7d\x03\xfe\x88\x22\x64\x05\xc9\x9b\x07\x40\xb9\x9e\x35\xd4\x68\x3a\x9b\x93\x94\x7e\x65\x7e\x93\xcf\x6c\xfc\xdb\x4d\x64\x5a\x94\x72\x41\x92\x99\x51\x0a\x97\xc7\x7a\xd7\x91\x42\xbf\xba\x51\x0b\x94\x14\xc9\x95\xfe\xe9\xde\x83\x63\x9e\xfc\x65\xa1\x1d\xf5\xab\x8a\x5a\xe1\xb1\xe0\x19\xcc\xe6\x02\xe4\x25\xea\x6c\xf0\xf5\x94\x44\xe0\x56\x40\x49\x49\x75\x4d\x60\x0f\x50\xee\xfc\x6a\x5d\x21\xa2\x59\x59\x5e\x67\x3c\xbd\xce\xbe\xc8\xcd\x65\x1e\x41\xce\x86\x9c\x16\xe9\x75\xc9\xdf\x9f\xbf\x25\xbf\x52\x10\xb7\xf6\xd9\x2c\x6e\x41\xce\xbd\x3f\x7f\x8b\x9e\x51\xf2\xfe\xfc\x2d\x6e\xe5\xfb\x91\x5a\x73\xeb\x68\x59\xa8\x68\x81\x53\x97\x55\xdd\xcb\xd7\xeb\x8e\x4b\x94\xfa\x94\xe8\xc8\x3b\xa8\xbd\xe0\xca\x65\x3e\xed\x17\xa5\xe8\xcf\x58\x31\xed\x83\xb1\x8b\x6c\x4a\x7f\x91\x71\xb8\xa7\xdf\xd2\xc9\x3c\x2b\x58\x75\x0b\x52\x47\xf9\xe5\x22\x2b\x98\xd0\xc1\x0c\x23\xd4\x7b\x46\x49\x58\x49\x1c\x2d\x79\x0e\x0a\xe0\x56\x2f\xea\x5a\xab\x56\xc2\x2f\xc1\x2d\xc1\x0b\x87\x2d\x67\xef\x50\x2e\xa5\x03\x49\x21\x3f\xfb\x84\xfa\xe7\x39\xcb\xa9\xde\x1b\xac\xb8\x49\xff\xa7\xf8\x9f\x42\xab\x99\xba\x35\xc1\x9b\x24\xb8\xbe\xa2\xa2\x5d\x9f\x0f\x93\xa0\xc4\xcf\xbd\xe0\xaa\xbb\x4c\xd4\x02\x65\x65\x71\x2c\xe8\xad\xb5\x7a\xdb\x2b\x88\x93\xb9\xa6\x8d\x2c\x86\xc0\xda\xd4\x83\x41\x5c\x10\xa7\xc7\x43\xf8\x81\x7e\x34\x14\x0d\x85\xe4\x2b\xca\x02\xe0\x8b\x15\x45\x7d\xe5\xeb\x8a\x54\x19\x66\xfb\x06\xe9\x0e\x02\xad\x87\x4a\xe8\xf6\xa9\xec\xf2\x9d\xf8\x0b\x48\x6d\x6d\xe3\x94\xbf\x82\xc9\xf6\xb0\x56\xbb\x8d\xbe\xe6\x40\x0f\xc4\x46\x27\x91\x64\x43\x24\x5e\x77\xbe\x5f\x3f\x90\xd9\x35\x0e\xc6\xea\x5e\xa9\xc6\xb5\xc6\xb0\x1b\xf2\xcd\xb8\x4c\xae\xa6\x34\xa7\x37\x99\xa0\x00\x29\x8d\x2b\xe2\x9b\x61\xe7\x44\x69\x4c\xa6\x78\x49\x56\x35\x9e\x13\x4a\x5e\xe6\x5a\x46\x23\x0f\x75\x49\x8b\x82\x0b\xff\xd9\xf9\xe9\x2f\xbf\x1a\xfb\xd2\xd5\x8d\x09\x68\xc0\x66\x71\x0e\x2a\x15\x81\x8c\x78\x33\xd7\x90\x10\x4e\xcc\x14\xf2\x0d\xda\x4a\xcd\x39\xb5\x82\xe4\x86\x90\x22\x39\x78\x7f\x71\x79\xfa\xee\xea\x72\xff\xfb\xab\xd7\xa7\xe7\xe6\x4c\x9b\xd7\x78\x9e\x55\xa9\x3e\xe0\x4d\x6d\xb8\xfc\x54\xfc\x48\xef\x2b\x08\xb1\x90\x6b\x1f\xc7\xd0\x33\xed\x90\x56\x13\xce\x16\xa2\xe4\x90\x28\x6e\xc4\x34\x9d\x94\xc5\x8c\xdd\x2c\xcd\x73\x8d\xea\xde\x10\x2f\x61\x7c\x81\xbd\x8a\x97\x78\xa6\x80\x7a\xfb\xdd\xf1\x53\x97\xb8\xd9\x64\xbc\x0a\x0b\xdd\xc5\x7e\x95\xbb\x3a\x20\xd4\xbc\x46\x58\xb7\x38\x30\x82\xdd\x54\x0b\x6d\x46\x63\x6d\xb4\x1c\x2b\x05\xba\xba\x43\xe4\x61\x34\xd0\xd6\xe8\x0b\x6d\x23\x68\x47\xbf\x96\xec\x0c\x23\x5a\x2f\xb7\xf4\xe2\xd3\xa5\x95\xef\xca\x62\xd2\xc3\x2d\x60\x41\x4a\x4d\x22\x1c\xfe\x67\xd3\x31\x45\x39\x28\x60\x86\xf0\x2d\x0c\xea\x95\x88\x4b\xbc\xc0\x15\xa6\x78\xf9\x04\x5b\x9b\xc7\x3c\x0f\x6e\xff\xb4\xe7\xc1\xe2\x6b\x3d\x0f\x6e\x9f\xee\x79\x70\x0b\x9e\x07\xb7\x4f\x02\x03\x03\x63\xc6\xc7\xac\x4b\x7b\xda\xe5\xd0\x6e\x66\xee\xd9\xeb\x16\xaa\x97\x4c\x39\x10\x49\x82\x08\x2b\x57\x6e\x78\xda\x13\x66\x4e\x4b\x7f\x4e\x59\xd7\x9c\xe2\x6b\x79\x3d\x1e\x0c\xb8\xae\xd7\x4d\x6a\xa1\x4d\x28\x8d\xa1\xaf\x6d\x46\xd3\x6c\x18\x28\xa0\xec\x93\x4d\xec\xad\x8c\xc0\x0a\x73\x63\x11\x71\x87\xd9\x84\x2e\x16\x48\x64\x8d\x5c\x15\xef\x1b\xed\x54\x4c\xb3\x39\x50\x37\xd7\xa1\xe3\x4b\xab\x64\x2a\x93\xf2\x10\xa1\xc5\x5d\x4a\xb1\xcd\x27\xbc\x7c\xbc\x0e\xac\x38\x1e\x80\xc4\xf4\xca\xe6\x08\xd3\x07\x8d\x42\x9b\x4e\x86\x5e\x9b\x6b\xef\xb6\x17\x58\x5a\xdc\x09\xbc\x7a\x02\x84\xe8\x7a\xbd\xf9\x14\x69\x5a\x7f\xfb\x75\x4d\x13\x56\x41\x18\xe7\x4b\xf0\x4a\x57\xf7\xbe\x16\xca\x9f\x82\x65\xe8\xb4\x61\xff\x73\x6b\x7d\x93\xc1\xee\xdf\x5e\x72\xb7\x61\xe5\xd7\x7b\xc3\x1a\x93\x9d\xab\xd6\xfd\x22\x00\x6c\x33\x13\xfa\x24\xb4\x36\x0f\x9d\x26\xdc\xcc\x84\xe1\x8e\x7d\xd1\x98\x60\x17\x9d\xbf\x56\x9a\x9c\x47\x21\xd1\x2c\x88\xba\xbf\x87\xec\xcd\xe9\x53\x67\xcf\x9e\x6c\x65\x6b\x7b\xce\x1b\x56\xb7\x0d\x4b\xdb\x7b\xf1\x75\x96\xb6\x85\xdb\xa0\xdc\x0a\x89\x8e\x3a\xda\xaa\x5b\x6a\xea\x09\x0d\x7a\x5b\xe5\x1b\x77\x6e\x5b\xe4\x67\x11\x30\x57\x0f\xd8\xed\xea\xab\x7e\x27\x70\xa7\x2e\x36\xd8\x62\x8f\x81\x76\x02\x97\x77\xfa\x57\x38\xe2\x7f\x13\x76\xf1\xee\xdf\x8f\x5d\x0c\xc0\x2c\x1b\x18\xda\x47\x80\x50\xff\x0e\x18\xd4\x53\xe1\x6c\xdb\xac\x1d\x8f\xb5\xe9\xae\xe5\x72\x7f\x10\x8f\x58\x19\x28\xac\x02\xe0\xe3\xda\x89\xb7\x1f\x64\x5e\xd8\x46\xe6\x45\x9d\xe8\x45\x17\xdf\xa2\x24\x58\xae\x85\x0f\x70\x2c\x4c\x71\x2c\xec\x2b\x31\x69\x19\xaa\x11\x66\xb5\x0f\x07\x6e\x0e\x48\x0f\x81\xea\xe4\xfd\xdb\xb7\x1e\xf8\xd4\xdf\x07\x18\xfb\xa7\x71\x39\xff\xcc\x61\xf4\x75\x5e\x24\x4f\xe6\xe7\x9e\x8a\xb3\xfa\xa7\x8e\xb9\xaf\x6b\xb3\x39\xa6\x2e\x37\x89\xc1\x7c\x42\xee\xec\x24\x43\x12\x7d\x21\x40\x1a\x09\xa4\x33\x34\x52\x54\xb4\xea\x9d\x90\x57\x47\xda\x70\x7a\x1f\x22\x7c\xb6\xe1\x83\x87\xfe\x23\xfc\x48\x21\xde\xae\x76\x91\x9a\xc1\xac\x18\xb2\x59\x4c\xa7\xc8\x05\x96\x4e\x23\x3f\xe4\xb0\x07\x1f\xd4\x2e\xd8\x20\x55\x04\x65\x79\x90\x61\xb8\x11\x4e\x06\x00\x02\x33\x11\xef\xa2\x06\x66\xe3\x96\x52\x34\x35\x61\xb2\x38\x4a\x0b\x85\x95\x50\x18\x78\xac\x02\xa5\x51\xa4\x0f\x94\x8f\xff\x07\x1b\x88\x84\x66\x03\x7b\x0f\x89\xf5\x1b\x1b\xd6\xbf\x63\x3e\x64\x1d\x42\x1f\xb7\x0a\x01\xc0\x1e\x58\x31\xf2\x2a\xac\x03\x70\x74\x8a\x1a\xa9\x8d\x32\x02\xcd\x8d\xa2\xd4\xc2\x91\xb9\xa5\xf5\xfb\xa6\xa5\xe5\xc0\xc1\xc0\x7a\xef\x5c\x18\x3b\xbc\xc8\xf3\xb3\x3a\x14\x76\xd0\x7c\xeb\x09\x0a\xad\x3c\x11\x44\x7e\x77\x75\x1d\x3f\xb2\xda\x7a\x0e\x36\x8a\x6b\xd8\xa8\x51\x81\x93\x24\x61\x63\x07\xc9\xd4\xdb\xa8\x19\x12\xa3\x0b\x3a\xde\x83\xbf\xb2\x08\x86\xa1\x1c\x38\x21\xf2\x3c\x3e\x11\xd8\xbd\xf4\x14\x54\x6f\x9f\xb8\x05\x7a\x6c\x16\xb7\x60\x48\x2d\x58\x61\xe7\x0e\x70\x4a\x23\x81\xf5\xd0\x73\xc7\x39\xbe\x16\x5f\x87\x0f\x6b\xf8\xa9\xb7\x02\x83\x43\xa4\x62\xd4\xca\x25\x9f\x38\xe7\x5e\xd2\x41\x5e\xac\xe9\xeb\xe6\x54\xbb\x8f\xe2\xa1\x79\x3e\x55\x8d\x2a\x9f\x34\x3e\xba\xf7\xed\xa6\x58\xf0\x95\x17\x5e\x78\x77\xcc\xc1\x1c\xc1\x73\xe7\x0b\xe5\x7e\x0d\x0c\x0f\x97\xee\xfd\x23\x73\x89\xed\x4c\x19\xaa\xf5\x4d\x40\xad\xc0\xa2\xd5\xb4\x68\xcf\xee\xfe\xd4\xe1\x10\xed\x15\x8d\x97\xae\xf2\x57\x4f\xac\xfc\x1b\xe4\x48\xe6\xe6\xca\x6d\x95\xbc\xd5\x8e\xd4\xb6\xc1\x55\xfe\xa6\x5d\xb9\x5c\x3e\x65\x0e\x82\x76\x00\x62\x73\x38\x37\x36\xd7\x87\x46\x2e\x0d\xaf\xd2\xb8\xc6\x1f\x25\x5e\x94\xac\xb8\xe5\xd3\x60\xcb\x35\xd6\x4a\xcf\xc4\xdf\x0b\xfc\x27\x69\x22\x6c\xea\x2e\x78\xbd\x0b\x3a\xfe\x1b\xd0\x00\x81\x5e\xfd\x21\xc8\x28\xca\x20\x60\x37\x58\x37\x47\x38\xba\xa5\x22\x8b\x70\x34\x11\x3c\x8f\xc6\xf8\x67\x41\x9e\xff\xdf\x10\x30\x79\x7d\x5b\x2e\x2b\xba\x16\xe5\x72\x32\x7f\x0e\xec\xf9\xf7\x82\xac\x0c\x7f\x49\xa7\xfb\x4a\x97\x9a\x56\x89\xfa\xa5\x43\xae\x24\xad\x14\xd8\xbc\xd9\xf7\x35\x5c\x2b\xa5\x11\x38\x86\xc8\x79\x16\x87\xe9\xd1\xc2\x46\x02\x90\xd7\x6a\xec\x60\xac\x1f\x2a\x56\x99\xe0\x3e\xa9\x58\xcb\x21\xfd\xba\xe1\x22\x0f\x61\x1c\x2b\x6c\xc0\x2b\xf5\x85\xc9\x4c\xa5\xa9\xd7\x5e\xe7\xe1\xf9\x44\x32\x55\xdc\x7f\xb3\xef\xf9\x98\xda\xbb\xbd\xc1\x5e\x77\x0b\x95\x94\x7a\xb9\xdc\x2e\x72\x36\x61\xe2\x52\xc1\xec\x64\xfa\x4a\x5d\xde\x12\x1d\x8a\xda\x06\xac\x26\x46\x25\x79\x64\xde\xf8\x2c\x42\xfe\x04\x60\xf4\xef\x45\xd2\x1a\x55\x50\x9d\xc1\xe2\xf2\x8a\x0d\x16\x99\xed\x84\x82\x9c\x29\x8b\xc8\x9e\x11\xeb\xb5\x8e\xbd\x2d\xf3\xef\xdb\xee\xbb\x20\x86\x7d\xa5\xe5\x56\x76\x48\x8d\x41\x72\xd6\x57\x10\xd8\xb0\xfb\x2b\x84\x39\xa4\x72\x51\x34\xbe\x8f\xc4\xb8\x09\x18\xae\xa3\x59\x70\x2b\x20\x5f\x85\x83\x6b\x68\x03\x5c\x9c\x1b\x01\xa5\x85\x42\xdc\xd1\x41\xcb\xd1\x9e\x50\x9d\x35\xcf\x96\x7a\x59\x0a\x54\xab\x78\x4f\x3c\x5c\x96\x27\xea\x56\xe7\xaa\x71\x71\x56\xd5\x3e\x8d\x74\x44\xd6\x08\x61\x66\x5e\x85\xb1\x54\x23\x84\x4b\xf3\x25\xcb\xf3\xf2\x13\x9d\xfe\x48\xef\x65\x86\xcc\xae\x00\xd3\x49\x9c\x13\x80\x1f\x2e\x9a\x6c\x6b\x08\x04\x65\xbd\x73\xd4\xef\x9f\x45\x22\x68\x25\x62\xe5\xc2\x67\x4c\x47\xbb\xc3\xc9\xf6\x04\x89\xa2\x5a\xa1\xe0\x1b\xcc\x94\xac\xb8\x8f\xd0\x4b\x32\x74\xa1\x66\x1d\xca\xf8\xf0\x05\xff\xee\x0f\x8b\x17\xc9\x55\x2c\x60\x3a\xfa\x43\x8c\xf8\x78\x3b\xfa\x91\xde\x47\x63\x0d\xc2\xe2\x0a\x84\x8f\xc8\x05\x7b\x35\xc5\xd6\x31\xc5\xd6\x36\x1d\xad\xd7\x0a\x6a\xd9\x02\x51\x75\x86\xa1\xcd\xd7\xeb\xae\x08\xb4\x8d\x90\x7e\x3e\x8f\xdc\x58\xb9\x98\x13\x83\x94\xa1\xa1\x3e\x33\x75\x57\x87\xab\x67\xaf\xcb\xa4\x18\x58\xb6\xae\x0f\x7b\x1a\x1e\x8e\x00\x2c\x37\x2d\xa6\x7b\x7f\x02\x06\x94\x9b\x38\x37\xb2\x80\x24\x5b\x2c\xf2\xfb\x38\xc3\x23\xe0\x04\xe9\x18\xd5\x28\xfd\x0b\x85\xca\x5d\x64\x8a\x84\x60\xdb\x7f\xa1\x30\x11\x94\xf4\x57\x0a\x92\x03\xaa\x0b\x53\x26\x3c\x35\xc2\xb9\xe5\x39\x7f\x14\xab\x26\x70\x9a\x31\x9f\xac\x70\x8e\xbb\x54\x5b\x13\x2c\xb2\x9b\x74\x5a\xfb\x4a\x51\xc9\xeb\x4d\x8c\xbd\xe1\x2e\x84\xac\x26\x13\xcd\xe5\xc4\xb9\xfa\xb9\x8b\x10\x20\xce\x56\x24\x57\xb6\x12\xb9\x8f\xb0\xd3\xab\x88\x53\xaa\x98\x2d\x30\x27\xa3\x31\x9e\x91\x6f\x5e\xcc\xbe\x33\xa5\xbf\x98\x6d\x6f\xa3\xb9\x32\x61\x84\x62\x67\xda\x31\x7d\xa1\x2e\x64\xcb\x25\x9b\xca\xeb\x9e\x52\x9c\xfd\x2a\x62\x0a\x8a\xb3\x39\x5e\xe2\x09\x2e\x31\xc3\x53\x4b\xe2\x6e\x6b\x0b\xc7\xad\xe3\xb5\x96\xb7\xa9\x30\xb2\xbd\x94\x63\x7b\x3a\x16\xf2\x74\xfc\x5e\x24\xad\x43\x14\x37\xf0\xc2\x39\x8e\xe4\xad\x73\x27\x9c\x8a\x28\x7a\x52\xc2\x9d\x68\xbb\xc0\x45\x13\x94\xc5\x1b\x79\x79\x48\x83\x51\xa3\x66\x15\xe5\x70\x02\x1c\x80\x7f\x7c\xda\x3d\x8e\xa9\x77\xdc\xd1\xc6\x59\x67\x44\x4f\x3e\x17\xad\x39\xab\x8d\x50\x1c\x3a\xf8\xe5\x53\xe5\xdb\x26\xe4\xe1\x83\xe2\x6d\x2d\x57\x0e\xd2\x6a\x9a\xef\xeb\x94\x78\x1d\x8a\x56\x8a\xbd\x5f\x44\xfa\x2f\x6b\xa6\xf8\xd3\x43\x6d\x6a\xb0\x1e\xb6\x05\x46\x5a\xa3\xab\xee\x82\xb5\x10\x0f\x8b\x14\x9e\x10\x3d\xc5\xa8\x0a\x6c\xfc\x47\x8e\x0b\x8f\x3f\x06\x36\xf3\x17\x4f\x90\xdb\x36\x47\x70\xca\xad\x02\x87\xc3\xa4\xe3\x7e\xf8\x8a\xda\x8c\x08\xdb\x41\xdd\x68\x5b\x33\xf3\xe8\x7f\xcf\xe3\xe6\x7f\x02\x5f\x62\x9c\xe1\xb2\x05\x6f\x24\x37\xba\x08\xd5\x5c\x1e\xec\x3f\xa6\x1a\xf2\xbf\xb1\x8d\xcc\x06\xb2\x20\x42\x5e\x0f\xcc\x68\xa7\x0c\x0a\x2f\xe5\x8a\x5e\x05\xb0\x02\x59\xad\x23\xa4\xcb\x2b\x50\x96\x68\xdb\xb8\xfd\xa5\x28\x9d\xe9\x36\x48\x4d\x0a\x21\x9f\xd5\x19\x54\x18\x0c\x2c\xaf\xb7\xc2\xbf\x89\x78\x38\xf8\x6a\x46\xbf\x22\x33\xde\xda\x85\xdb\x68\x20\xa9\x29\x71\x85\xea\xc6\x56\x85\xee\x0a\x6f\xd5\xba\xee\x16\xd0\x5d\xd6\xee\x6e\x59\xab\x78\x18\xd0\xdd\xf2\x89\xdd\x35\xca\x66\xdb\xe0\xc2\x59\x25\xf8\x7d\xcd\x5a\x7d\x7d\x30\x67\x67\x47\x19\xce\x50\xfd\x20\x5d\xc0\xff\xea\x58\xc0\x61\x64\xcc\xa6\xa0\xbb\x21\xbd\x36\x0b\xc8\x85\xc1\x44\xab\x66\x95\x61\x81\x35\xa6\x1c\x84\x49\x58\x70\xa2\xd8\x10\xc1\xef\x15\x2b\x82\xc5\x46\x14\x89\x29\xbb\x03\x81\xe5\xd0\xb1\xaa\xd9\x74\x0a\x74\xf1\xad\xdc\xc5\x05\xe5\xb1\xe6\xc2\x61\xff\xf2\xed\x6d\xbc\x2a\x95\x3e\xa6\x46\xb8\x43\xc6\x04\x79\xf7\x14\x67\x0e\xbf\x4d\x7e\x94\xc6\x6d\x34\x0b\x95\x00\xfe\x45\x08\x25\xac\x60\x22\xc8\x84\xb7\x86\x10\x97\x49\xc8\x85\xb0\xc8\xc4\x64\xae\x3e\xd3\xce\x57\x92\xf3\xe3\x1a\x65\xa1\xf0\x4c\xd6\x6b\x14\x1b\x33\x5b\xce\x37\x6a\xf8\xaa\x79\xb9\xcc\xb5\x20\xdd\x60\x75\x5b\xfb\xdb\x80\x72\x76\xe8\x5c\x25\x65\x04\x6b\x24\x3d\x61\xaf\x79\x79\xab\x6f\x2b\x6a\x0e\xf4\x66\xd0\x1c\xbb\x1a\x43\x8e\x17\x59\x55\xb1\x3b\x49\x08\x34\xcd\x02\x22\xa6\xe5\x37\x96\xed\x36\x7e\xbc\xa5\xb2\xbc\xb3\xbf\xed\xa1\x11\xb6\x1c\xe1\xc2\xe4\xd0\xe5\x9b\x4c\xfa\xd1\x90\xf3\x56\x3e\x66\xf2\xe9\xd6\x98\x7c\xfa\xd1\x5c\x34\x5b\xf9\xf8\x7a\x5d\xac\xd7\x6c\x4f\x73\xbd\xe5\x02\xae\xc5\xe4\xa1\x5e\xa6\x41\x4a\x25\xb7\xe9\x29\x88\x32\xd1\x12\xd1\xd9\xa1\x28\x4d\x03\xed\x49\x6e\x9a\xe8\x8e\xf6\xb2\xbb\x91\x1a\x3e\xa8\x59\xf8\x2e\xc2\x15\xc9\x6c\x05\x95\xa9\x60\x59\x51\x7e\xc6\xcb\x3b\x36\xa5\x53\x63\x68\x67\xea\xea\xfa\x66\x6e\xd4\x9d\xd5\xca\x9b\x94\xbc\x95\xf0\xc1\x80\xaf\xd7\x5b\xbb\xd6\x55\xd9\x4f\x2d\xb9\xc4\x1c\x29\x30\x00\x3d\xea\xba\x68\x7b\xe1\xf2\x42\x0e\xcb\xa2\x06\x03\x8d\xda\x84\x4b\xbc\xc4\x14\xe1\x4a\x1b\xf9\x72\x08\x81\xea\xfc\x98\x6d\x49\x5a\xd3\x52\x70\x32\xc4\x8c\xfb\x30\x2e\x3e\x9b\xc0\xe4\x36\x17\x7c\x8f\x26\x9c\xde\x96\x77\x34\xa4\x07\x2a\x91\x27\xf2\x1b\x0c\xac\x8e\xf1\x81\x2c\x5b\x43\x79\xc1\xdd\xf0\xd5\x13\xb9\x65\x5e\x43\x0a\xdb\x90\x16\x55\x7a\xa4\x15\x9d\xe9\x55\x13\xba\x3e\x19\xc9\x5c\xd5\x22\x0f\x9a\x38\x5c\xbc\x3f\x3b\x3b\x3d\xbf\xbc\xb8\x3a\xfa\x70\x74\x72\x79\x75\x7a\x76\x79\x7c\x7a\x72\x41\x04\xef\x36\xc8\x6e\x2a\xf4\xfb\x93\x72\x29\x13\x38\x9d\xf1\x2a\x9b\x4e\xab\xb4\xe0\x58\x8d\x48\x95\x32\x1e\x62\x36\x2b\x5f\xcc\x76\xe9\x1d\x6e\x34\xfe\xc5\xc3\x63\x64\xb8\x86\xf4\x52\xe1\x62\xa9\x64\xa5\x5b\x5c\xae\xf6\x71\xa5\x7b\xe1\x09\xa4\x2d\x73\x3c\x46\xc6\x01\x80\x40\x90\xba\x26\x95\xeb\x85\x8c\x8e\xdd\x8d\x80\x68\xa6\x16\x5f\x5a\x60\xbd\xdd\x15\x54\x62\xa6\x27\x51\xc3\xdb\x76\x73\x8e\x14\x8e\x9d\xd2\x25\x95\x6c\x7c\xb8\xc7\x76\x7d\xb6\x23\x68\xe6\xd7\xb7\xa9\xdd\xb1\x46\x75\x83\x41\xec\x35\x06\x67\x10\x48\x52\x55\xe1\xdf\x2f\x30\xb5\x7b\x0e\x53\x43\xe5\x3a\x9a\xfe\x08\x27\x01\xb4\x83\x3f\x02\xb8\xf7\xb7\xda\x34\xff\x05\xa4\xae\x6e\xab\x8c\x25\x7f\xc8\x2a\xa3\x11\x06\xc0\x01\x1b\x98\xf0\x9c\xed\x68\x06\xf2\xea\xce\x26\xda\x96\xdf\x85\x26\xfd\x37\x04\x06\xf0\xe3\x07\x9b\x18\x01\xdd\xf6\x1f\x39\x6f\xd9\x7f\xd4\xce\x0c\xdf\x18\x70\xc0\x3e\x4c\xae\x97\x2c\x57\xd0\x16\x47\xd0\x72\xeb\x92\x04\x38\xc5\xd7\x65\x29\xd4\x6e\xea\x5b\x91\x31\x29\x92\x99\x45\x27\x8b\x23\xd7\xaa\x70\x2c\xc0\xa5\xfc\x28\xb9\x91\x34\x0d\x0c\x1a\x4d\x32\x0d\x6d\x86\x00\x91\xd6\xcf\xd1\x6b\xc6\x18\xb8\x2d\xa7\x34\x07\x4c\xf0\x2a\x84\x02\xd7\x1f\x74\x18\xb9\x21\x04\xaa\x63\x0e\x84\x1d\xa2\xe6\x3f\x64\xcf\xc8\xe4\xe9\x94\x91\x95\x9a\x2c\xc9\x08\xb8\x4e\x30\x0c\x91\x83\x4b\xdc\x30\x7f\xb1\x5c\xfb\x94\xb8\x68\x87\x5e\xa5\x2b\x68\x54\x3a\xad\xff\x9e\xda\xa1\xb4\x73\x3a\x4b\xab\x46\x43\xea\xbf\x6c\x5f\x9c\x75\x86\xcb\x16\x0f\xd8\x15\x17\xed\x68\xd9\x8f\x85\xe6\x66\x0f\x46\xcb\x0e\x26\xfe\x81\x8a\x59\x47\xc5\x1b\x89\x73\xf1\x74\x63\x66\xb6\xb9\xfd\x61\x00\xed\x1a\x21\x9c\x3d\x21\xa8\xb4\x55\xb9\x76\xda\x11\xf4\x69\x62\xe6\x13\xdc\x9f\xdc\xa3\xb2\x59\x7f\x60\x2e\x43\xdb\x55\x14\x0b\x88\x6c\x40\x5a\x16\x47\x08\x8b\x07\x68\xb7\x26\x4b\x5f\x6b\x4e\xf4\xb5\x11\x90\x83\x10\xe7\x5f\x1d\xc8\xb8\x19\x6b\x1a\x20\x8f\xed\xce\x68\x82\xd5\xdb\x0d\x02\xd2\x3f\x9f\xf1\x02\x59\x9e\x21\x12\x9e\x3c\xe7\xa1\x61\xe6\x8f\x62\x21\x3f\x96\xc2\xeb\xfb\xbf\x3f\xd4\xf4\xdf\x30\xd0\x46\x43\x38\xe1\x9d\x06\x3c\x46\x94\xb7\xe4\x1d\x86\xac\xd6\x9c\x74\xba\xf9\xfe\x2a\x53\x9e\x03\x18\xa4\xb5\x02\xee\xb8\xa8\x5e\x01\xe6\x8c\xbc\x27\xb9\x70\xcc\xf0\xee\x30\x88\xd0\xdc\x1d\x34\x4f\x59\xb6\xeb\x8a\x2c\x01\xb3\x5a\x28\xd1\x34\x41\x69\x02\x4d\x16\x7b\x8d\x36\x10\xe2\xbf\x3a\xa4\xb3\x34\x3c\x2c\xe7\x59\x75\x0e\x84\x47\x79\xac\xc5\x9a\x82\x42\x48\xa3\xbd\xb8\xd9\xa1\x46\x6f\x80\x6e\x4d\x96\x1c\x8e\x3e\xc9\x83\xf0\x18\xf0\xa0\xc2\x64\x0a\x0a\x22\x8d\x37\x8d\x44\x63\xc0\x14\x02\xfd\x53\x02\x69\xea\x20\xc7\xdd\xb3\xad\xa0\xc4\x2e\xfc\x98\xde\x0d\xe1\xaa\xa2\x32\x0d\xc5\x3c\xf8\x81\xea\x3b\x1f\x45\x9d\x7a\x7d\xaf\xe4\x26\xd4\xa1\xf7\x49\xff\x96\xcb\x8e\x15\x84\x2a\x34\x88\x29\xe3\xe2\xde\xd9\x5d\x49\x4a\x69\x43\x1d\x6f\xba\x18\x29\xd4\x23\x28\xd3\x5b\x7c\xaa\xf4\x13\xbd\x22\xc5\x63\xc6\x66\x9b\x43\xa5\x86\xc5\x7b\xd6\x66\x96\x11\xa1\xda\x12\x24\xb5\x7d\xb2\xac\xa0\x49\x22\x4c\x12\x31\x6a\xb7\xce\x94\x39\x7e\x78\xa8\x4d\x48\xe4\x87\xc7\xc1\xf4\xff\x23\xbd\x6f\x45\xe5\x7c\xda\x54\xb6\xfa\xde\x52\x44\x0f\x06\x74\x64\x2a\xb1\x30\x12\xb7\xfc\xcf\x9a\x94\x84\x0d\xef\xdc\xf7\x1b\x1a\xe4\xc7\x1f\xd3\xc7\x87\x72\x6f\x55\xd6\x13\xfe\x67\x8b\x8c\x24\xd4\x41\x6c\xe9\xd9\xdd\xa6\xf1\x54\x73\xd4\x4d\xcf\xc0\xad\x4d\xc1\x5f\xb8\x7d\x2a\xb7\xa9\xda\x4f\x8f\x50\xb1\xbe\x1f\x35\xcf\x99\x20\xb5\x7a\xe5\x85\x80\x0e\x40\x7d\x74\x30\xf4\x46\x30\xb6\xae\x5b\xb9\x61\xa5\x82\xa4\x45\x90\xf4\x32\x2e\x10\x38\xd3\x16\x31\x57\x34\xcf\x2a\x23\x56\x5c\x92\x43\xac\xd1\x87\xc1\x11\x4d\x0d\x4a\xca\xf5\xe8\xf8\xde\x0c\xde\xc1\xcd\xfd\xc3\x4a\x31\xc9\xdc\x0c\x7b\x1c\x0e\x2e\x74\x77\x83\x3e\x3f\x84\x34\x92\xa3\xe1\x83\xe1\x36\x35\xea\x7d\xe7\xe0\xa2\x10\x1b\x6d\x18\x27\xff\xec\x84\x4f\xee\xb1\x8e\x69\x63\xf2\x50\x00\x3f\xe0\x26\xba\xd7\x98\x63\x8d\xee\xec\x6c\x6b\x88\x89\x1e\x16\x5c\xff\xfb\x15\x89\xb5\x55\x9e\xed\xb3\x09\x2c\x47\x8b\x3b\x38\xb3\x24\x05\x62\x70\x81\xb8\xd5\x18\x24\x71\xa9\x00\xe1\xa6\x6c\x22\x24\xa7\xa7\x06\x8f\x48\x0e\x3b\xbb\x49\x8b\x40\xf9\xeb\x41\x70\x7b\x92\x45\x6d\x27\xa6\xd3\xdf\x66\x8b\xb4\x84\x57\x55\x3a\xd2\x6c\xd2\x18\x3b\xa4\xd2\x74\xc4\xc6\x58\xc3\xfb\xec\x82\x87\x2a\x25\x2f\x75\x3a\x39\x0f\x18\xec\x4b\x82\x57\x7b\x2c\xed\x0e\xbd\xac\xfc\x42\x95\x93\xaa\x9a\x7b\x6b\xd3\x50\xa3\xda\xd5\x12\x1e\x1d\x5a\xaf\xed\x4c\x72\x2c\xa5\xf5\xd5\xad\xa1\x91\x91\x73\xfb\xac\x51\x2f\x6b\x9d\xb6\x4b\x60\xe2\x2a\x8b\xf5\xd3\xdc\xb9\x59\x83\x1e\x6e\x38\x45\x21\xa4\x15\x0f\x60\x87\xaf\xb9\x17\x3e\xf2\xcc\x20\x26\x9f\xce\x9c\x30\xf3\x9e\x87\x48\xa7\xf4\x85\x5a\x15\xe2\x85\x91\x2f\xdc\x70\xe3\x5a\xec\x93\x29\xee\x07\x40\xbc\x96\x34\x32\x70\x60\x90\x59\xaf\x38\xfe\xc4\xf1\x11\xc7\x9f\xc3\x46\x9d\x3e\xda\xa8\x8b\x10\x53\xe6\x33\xd7\x18\x95\x54\xde\x24\x6c\xaa\xcb\x47\x9b\xfe\xf9\xf1\xa6\x9f\xb6\x9a\x6e\xcb\x7f\xe7\x82\x4f\x12\xa8\xcb\x6a\x7e\x06\x83\x2d\x91\x80\xfd\x44\x91\xe5\x83\x41\x64\x74\x75\x0e\x81\x75\x4f\x18\x41\x44\xcb\xb6\xf3\xcc\xc3\xb9\x59\x29\xa0\x08\xcf\x23\x25\x8d\xb6\x7d\x20\xbe\xfd\x60\x24\x56\xca\x5e\xd6\x89\x72\xe9\x9e\x1f\xbb\xd2\x7c\x50\xfb\x67\x91\x4d\x68\x2a\xbc\xb2\x0e\x78\x88\x79\x10\x86\xb0\xb2\x48\x08\x41\x53\x9c\xb2\xcb\x93\xab\x14\x98\x23\x0d\x12\x29\x27\x05\x73\x2f\xde\xa9\xbc\xe4\xb8\x0b\x8f\xf2\x46\x36\x5e\x3b\xf7\x3c\x36\x6f\x02\x94\x64\xdd\x39\xdf\xc3\x56\x7b\x71\x31\xb5\xaa\xcb\x4d\x6d\xed\x0a\x3b\x1a\xb4\x5a\xcb\xc4\x3a\x5a\x1c\x12\xec\x62\x30\xd0\xbf\x4a\x05\xee\xd4\xd5\x9a\xb2\xae\xaf\x93\xb3\xfd\xf3\xcb\xe3\xfd\xb7\x17\x83\x41\x7c\xc5\x49\xe7\x81\xe0\x68\x2a\x27\x9f\x24\xa1\x3c\xe2\x10\xb1\xc6\x45\x97\xab\x6b\xfc\x89\xb7\x3a\xc5\x66\xb1\x2b\x5f\x09\xb5\xcd\x5a\x05\x3d\xaf\x0f\xf1\x71\x9a\xe8\xe8\xaa\x71\x74\x50\x16\x22\x63\x05\xe5\xfd\x4f\x59\xa5\xe0\x3e\xca\x65\x31\xed\x7f\x9a\xd3\xa2\x2f\x07\x80\x15\x37\xfd\xe5\xa2\x9f\xf5\xef\x18\xfd\x54\xf5\xcd\xa0\x25\xfd\xcb\x39\xab\xfa\xac\xea\xdf\x96\x95\xe8\xe7\xec\x23\xcd\xef\xfb\xd3\x25\xed\x8b\xb2\x7f\x9b\x15\xcb\x2c\xcf\xef\x35\xba\x85\x60\x99\x90\xc5\x64\x45\x1f\xb0\x0a\x93\x0f\x8c\x7e\x4a\xfa\x17\x94\xa6\xfd\xb9\x10\x8b\xf4\xf9\xf3\x1b\x26\x12\x56\x3e\x3f\xfa\xf1\x6c\x51\xec\x47\x8e\x09\xeb\x8a\xb2\x2a\xd0\x7a\xdd\xf9\x81\xa3\xba\xc6\x47\xbc\x93\xed\xd0\x7e\x23\xcf\xdb\x7e\x23\x76\xbe\xfd\x97\x24\xba\x8a\xb6\x39\x16\xda\xd5\xe0\x79\x64\xa2\xe9\x7f\xe4\x64\xc5\x66\x69\x38\x75\x81\xab\x71\x87\x05\x7d\xfc\x5e\x80\xa4\xda\x88\x81\x84\x3c\x14\x51\xad\x0d\x7d\xd2\x8e\xe0\xc2\xc6\x02\x8a\xf9\x07\x03\x58\x2d\x64\xa4\xf4\x4a\x1a\x55\x38\xc7\x49\x92\x2c\xc7\x24\xf3\x30\xb9\xf1\x84\x04\x56\x4e\x78\x4e\x58\xc3\x38\x92\x85\xc6\x91\x69\x85\x67\x5d\x51\x8e\x31\xeb\x09\x8b\xec\x37\x18\xc4\x9c\x00\xf6\xe0\x6d\xb6\x88\xc1\x57\xc8\xc8\x20\x24\xb7\x31\xc9\xe4\x41\x83\x7a\x14\x22\x70\x0b\x6d\xa2\xc7\x5b\x2e\x13\x7d\x3e\x18\x04\x85\x8a\xd1\x70\x4c\x3c\x27\x85\xd1\x70\x8c\x39\x48\x7e\xfc\x2c\x6c\x8f\x92\x97\x2c\x96\xdb\x01\xa5\x7c\xbd\x66\xeb\xf5\x3e\xad\x63\xdd\x31\xa8\x22\x42\x83\x81\xee\x98\x7e\x76\xc0\x05\x31\x27\x5d\x81\xad\xc1\xf0\xef\x80\xc6\x39\xce\x31\x3c\xe0\x19\x9e\x80\xe5\x5b\xcb\xb7\x7a\x8e\x5a\x72\x2b\x78\x9f\x23\x59\x80\x15\x9e\xe2\xb9\xfd\x65\x0f\x6f\x55\x68\x57\xdc\xbf\xa1\xe7\x6c\x52\x22\xf2\x52\x05\x52\xb7\xf9\x9c\xe7\x8f\x4c\xad\x12\xd5\x7e\x5d\x38\x87\xb2\xd1\xe8\x8c\x42\x08\x29\xb9\x08\x67\x34\xe6\x6e\x91\x71\x9e\xdd\xa7\x9d\x0e\xc9\xdd\x51\x5e\xd5\x4c\x7e\xed\x12\xff\xbd\x7b\x89\xcf\x3a\x97\x37\x39\x16\xbd\x47\x4b\xe4\x9d\x05\x4a\x1e\xad\xab\xc4\x0e\x87\x93\xa2\xc3\xbf\x44\x7b\x87\xb4\xe6\xd0\x44\xee\x62\x2d\x3b\x5c\x4d\xe5\xd9\x7a\x1d\xc9\x23\x9a\xed\x35\xdd\x29\xd3\x96\xfc\x85\xc9\x55\x68\x4d\x6d\x93\x08\xbd\xdc\xd9\xdd\xbb\x95\x3d\x62\x9e\x03\x1b\x4a\x15\x87\xa1\x7d\x52\x18\x0a\xf0\x1a\x5f\x8b\xb8\xab\xfb\xf3\xac\x9a\xa7\x5f\x04\xce\xcb\x9b\xaf\x9d\xa1\x37\xdd\x33\x74\xbb\x7c\xea\x80\x6e\xf6\x78\x02\x93\xc0\x3d\x0e\xa8\x86\xef\xfc\xc5\x17\xfd\xb1\xa4\xfc\x7e\x67\x01\x2e\x1b\xd1\xd7\xb6\xf8\x43\x77\x8b\x39\xcd\xa6\x65\x91\xdf\x77\x36\xbb\x6b\xa1\x8f\x2e\xe9\x78\xbd\xa6\x75\xdc\xee\x53\xa0\xc9\x7d\x26\xbc\xa6\x2f\x0b\x40\xa2\xde\xdc\xe6\x19\xed\x28\xcf\x8b\xb0\x6b\x8a\xc9\x69\x55\x7d\x6d\xcf\x5f\x75\xf7\x3c\xda\x91\xf3\x1f\xc9\x05\x10\xed\xd0\x6c\x32\xdf\x61\x45\xd4\xb5\xb7\x01\x5e\x52\x74\xf5\x57\x16\xc2\x8a\xc5\x52\xec\xc8\xb9\xfb\xea\x29\xd9\xdf\xd4\xb0\xa2\xe4\xb7\x10\x0d\x6e\x47\xc5\x7c\xfc\xda\x82\x0f\x36\x15\x0c\x56\x64\x3b\x40\xc5\x36\x76\xf5\xe3\xc6\xae\xde\x50\xb1\xa3\x55\xad\x3b\x77\x19\x8f\xd2\x89\xdc\x73\x5a\x1f\xfa\x21\xe3\x38\xda\xb9\x2d\x97\x85\x68\xb6\xd7\x08\x21\xd4\xed\xb5\x83\xb8\x30\x7b\x13\xa6\x1d\xaa\x3d\x13\x06\xb0\xe5\x23\xa6\xee\xb6\x59\x4d\xca\xde\x10\x33\xa2\x9e\x9e\x7e\xd3\x2d\xff\x4d\x37\x4b\x9f\xf2\x4c\x81\x49\xc7\x0c\xc6\x4f\xc7\x62\xe8\xe4\x51\xe4\xad\xde\x57\x63\x7b\x07\x3c\x01\x91\x61\x3b\x78\xf7\x9e\x51\x20\x16\x95\x37\xf7\xd1\x6d\xc6\x8a\x08\xa5\x5d\x34\x9c\x7e\xea\xdf\x71\xb8\xe9\xce\xe4\x0d\xc0\x93\xad\x82\x88\xd9\x2e\x93\xac\xaa\x28\x17\x3b\xc6\x5b\x64\xc7\xb2\xe0\x3b\x73\x58\x6d\x3b\x36\x04\x49\xfa\x4e\xc0\x1e\xd8\xa1\xf9\x8e\x9c\xc3\x28\x3d\x13\x46\x69\x70\xbe\x49\x4e\xa6\x3c\x45\x2a\x32\x52\xf7\x93\xb1\x96\xbf\x5e\xff\x7e\x59\xbe\x81\x4f\xed\x88\x3d\xd7\x4b\x96\x8b\xe3\x42\x2d\xf6\x8a\x7c\xe4\x0d\x4c\x91\x43\x7b\x49\x3f\xc8\x26\x73\x55\x80\xcd\xdc\x95\x4a\xae\x53\xa2\x0d\xe6\x54\xa7\x36\x7c\xec\x34\x93\xd1\xcd\x31\x16\x98\x15\xd1\xee\x2e\xe9\x4a\xab\x44\x80\x7a\xff\x28\x30\x68\x44\x94\xab\x04\x6e\x7e\xae\xd4\x98\xf8\x69\xea\x5a\xb1\xe2\x0e\x95\xa4\x19\x38\xa1\xf1\x5d\x8d\x17\xa4\x6a\x5c\xa4\xb8\xba\x3e\x41\x26\x4e\xab\x32\xbf\x83\xc0\x0c\x9b\xf3\xfb\xb5\xe8\x19\x32\x91\xe3\x0b\xff\xad\xd1\x3a\x84\x05\xb9\xd1\x53\xaa\x23\xb7\x7a\x95\xba\xed\xa1\x79\xd8\xde\xc6\x45\x6d\xda\xd8\xf0\xe8\xd3\x2d\x19\xd1\xb1\x6e\xba\x5a\x02\x4f\x6c\xf1\x55\x2b\x8f\x7f\x41\x0e\xa2\x6c\xe8\xce\x15\x41\xcb\x99\x6e\x79\xe7\x0a\xd9\xde\x6e\x80\x45\xa8\xca\xac\x59\x6e\x80\xc6\xbb\x61\xfc\x82\xc4\x66\x76\xce\x32\x2e\x58\x96\xdb\xab\xac\x7f\x17\xf5\xba\x7c\xd5\x4e\xdd\xeb\xa8\x8e\x87\x52\x15\x39\x09\x2c\xd7\xe6\xb8\xda\x69\xcb\xb3\x42\x22\x1d\xa8\xf0\x46\x1a\xe9\x36\x68\x88\xb2\xe6\x69\x2d\x40\xef\x1c\x4c\x88\x06\xaa\xde\xd9\x6d\xed\x72\x1d\xf9\x47\xc0\xe5\xa4\x3d\x53\x7e\x57\xc3\xed\x3f\xa2\xe3\x4d\x72\xa4\xbb\x8c\xaf\x5c\x00\x8d\xb4\xa8\x89\xc0\x8c\x08\x6d\x4f\x56\xc2\x9d\x6f\x5f\xd2\x64\x95\x19\xe1\x8a\xb0\xc0\x52\x45\xcd\x74\x1a\x6d\x97\x38\x43\xeb\xf5\xa6\x8f\xb6\xeb\xed\x43\xb4\x85\x39\x4a\x95\x48\x63\x8b\x10\x25\x59\x96\xc4\xd1\xfe\x48\x58\xa5\x7a\xa5\x2d\x5e\xea\xb8\x42\x7b\x06\xcd\x57\x8d\x40\x65\x4d\x56\x64\xaf\x7f\x8e\x39\x32\x62\x97\x55\xfd\xe2\x11\x43\x07\x6e\x9c\x17\x62\xa4\x8d\x92\xb3\xaa\x2a\x27\x2c\x13\xd4\xb7\x02\x28\x34\xd2\xdf\xd0\xe7\xe0\xe6\x1b\xae\x0d\x8a\x54\x75\xac\x3e\xdd\x2a\x33\xda\x8c\x5c\x71\x08\x71\xe6\x6d\x2a\xb0\xf1\x4b\x74\x26\xb7\x9f\x8e\x6f\x17\x39\x04\x8d\xaf\xbb\xf6\x45\xc7\x4a\xb0\x94\x37\x58\x0b\xa0\xd5\x68\xb5\x22\x34\x45\xb2\xe6\xfc\xd1\x36\x0d\xc5\x91\xc6\x6b\x8a\xbc\xe3\x31\xd3\xe2\xb1\x46\xd3\x7f\x10\x10\x33\xb3\xec\x38\x1a\x90\x3d\xf7\x79\x7d\x05\x41\x09\xe5\x0a\x7c\x5d\xf2\x13\x23\x03\xf4\x44\x28\x98\x13\x23\x21\x24\xd4\xdd\x6e\xd2\xd4\x8a\x6b\x20\xfa\x57\xa1\x0d\x41\x54\xf4\xc6\x62\xfb\x1b\xe5\x6f\xae\x1e\x87\xb8\x40\xc8\x42\xf7\x38\x49\x23\xaf\xeb\x47\x88\xb3\x61\x39\x30\x23\x14\x97\x76\xa4\xfc\x8d\x93\x29\xcc\xcc\x0e\xc1\x18\xd7\x58\x01\xeb\xb5\x52\xf0\x40\xa5\x66\xd0\xad\x64\x33\x20\xb3\x66\x00\xcd\x00\x1d\x68\x84\x96\xb8\xc4\x0c\xef\xf3\x38\x33\xbb\xd1\x8f\x9b\x56\x05\x64\x48\x69\xcd\xe4\x6b\x77\x8a\xec\xc9\xad\xa1\x24\x82\x71\x89\x52\xef\x8b\x36\x60\x7e\x90\x45\xd0\xa1\xcc\x82\x15\x90\x9b\x3a\xf3\x9e\x5b\x50\x76\xf7\x9a\xca\x40\x72\xe3\xd5\xac\x84\x59\xcb\xc7\x82\xc4\x02\x3a\x5e\xab\x2d\x11\x3e\x93\xec\x21\x9e\x04\xca\xa0\x46\x47\xb5\x4d\xc8\xe5\xd1\xbb\xb3\xb7\xfb\x97\x47\x57\xa7\x27\x6f\x7f\xbd\xfa\xfe\xed\xf1\xbb\x77\x7e\x64\xfc\x8b\xc1\x20\x9e\x00\xe7\x73\x29\x62\x86\xb9\x72\x5e\xfc\x9c\xb0\xca\xd8\x07\x9e\x16\xb9\x03\x3c\x43\xb1\x57\x85\x5e\xee\xad\x12\xb0\xed\xbb\x0b\xb2\x6b\x0d\xdc\x1a\xb9\xf1\x9c\x5c\xf2\x78\xea\xcf\xfd\x7c\x30\xf0\x30\x9e\x08\x21\x73\x17\x16\x6d\x65\xe4\xf2\x8b\x9a\xcc\x7b\x13\x32\xb7\x82\x7c\x60\x6c\x8f\x44\xbc\x88\x4b\x84\xa7\x26\x86\xc1\x27\xd9\x24\x3f\x2c\x2f\x7c\xf6\x21\x15\xd2\xd2\x48\x32\xaf\x92\x05\x67\x77\x99\x60\x5f\xe8\x6f\x5d\xa2\xe9\x1d\x2d\xb3\xfd\x0d\xc9\xf9\xab\xeb\x90\x75\x9a\xd8\x61\x78\x43\xc3\x3a\xd7\xeb\xd2\x27\x26\x7e\x35\x4e\x4c\xed\x0a\x87\x11\x5c\xb6\x82\x1c\x37\x57\xa2\x3c\x07\x0b\x3c\x41\x78\xe2\x29\x09\x7e\xe7\x5d\x26\xcf\xc0\xd3\x8d\xe8\x68\x38\x36\x62\xc3\xe8\x9f\x92\x90\x61\x3a\xda\x1d\x8f\x41\x46\x7f\xc8\xc9\x68\xec\x54\x38\x27\x5c\x43\x18\x5b\xf2\xc6\x0c\x3f\xc8\x9b\xdc\xa4\x24\x6e\xc9\x2d\x15\x99\x8d\x46\x15\x70\x95\x5b\x84\x94\x7b\xf1\x10\xf3\x44\xc5\x6f\xf0\x96\x52\x89\x47\x36\xea\xea\x68\x9c\x0a\xfc\xbb\x32\x5c\xd1\x17\xb0\x57\x6f\x4f\x0f\x7e\xbc\x18\xa3\x94\x27\xef\x4f\xde\xec\x9f\x1c\xbe\x3d\x3a\x74\x5d\x3d\xb6\x4d\xc4\x25\xd2\x4e\x4f\xe5\x43\x8d\x2c\x1f\x6e\x64\xb6\xa1\x91\xe0\x25\xac\x1a\xc6\xa0\x2d\x27\xa7\x27\x47\x35\x4d\xae\xe8\xe7\x05\xe5\x4c\xee\xd9\x2c\x7f\x97\x4d\x78\x59\x91\x43\xae\x6f\x31\x6f\x37\xdd\x62\x20\xc2\x73\x60\x3b\xa2\xd4\xbc\xa2\x86\xb0\x60\x71\x70\xa9\x7e\xab\xed\xda\x65\xa6\x56\x96\x4e\x28\x0b\xdf\x26\xc6\x30\x4a\x9b\x12\xc8\x6b\x89\x45\xa0\xe9\xb0\xb6\xb2\x60\x0e\x06\xca\x81\x97\xa5\x35\x9f\xe0\xcb\x42\xb0\x5b\x7b\xb5\x61\x53\x02\x9e\xef\x37\x54\x7c\x60\xf4\xd3\x31\xe0\x60\x06\x71\x2b\xf4\xc9\xa5\x95\xa3\x3a\x74\x00\x84\xd5\x57\x89\x24\xb5\x23\xce\xab\x1c\x57\xa4\x13\xa7\xae\xf0\x71\xea\x12\xc5\x96\xea\x58\x6e\x9a\xa9\x91\x05\xfd\xc0\xc4\xbb\x8c\x15\x0a\x40\x86\xe1\x3c\x56\x62\x04\x6b\x23\x5f\xe2\x82\x7e\x16\x17\xec\x3a\x67\xc5\x8d\xe2\x4c\xc0\xfa\xd3\xd4\xa7\x58\x4d\x14\x57\x08\x67\xa8\x37\x2d\x57\x94\x2c\x75\xdc\x8d\xfa\xd3\x5c\xd6\xb8\x45\x55\xa8\x8f\x9e\x22\x6b\x7e\x4f\xb5\xb0\xbd\xd7\xec\xd8\x34\xe1\x54\x3d\xc6\xab\x2c\xff\x94\xdd\x57\xe7\x14\x40\xdd\x25\x99\x81\xb0\xf3\x35\xab\x3a\xe2\xa8\xc0\xb0\x13\x42\x6b\xcb\x94\x69\x0b\x14\x08\x44\x42\xb1\x9e\x8a\x14\x8c\xd6\x44\xad\x11\x19\x9a\x03\x3d\x0c\xe7\xcd\x9f\x0e\xa8\xc0\xd9\x92\x74\x4c\x98\xee\x85\x7e\xe5\xf4\x97\x1a\x34\x93\xf9\xe0\xe5\x72\xd0\x41\x2b\x2f\xbf\x4c\x4d\xa8\x09\x6a\x7c\x5e\xbf\x84\x84\xe6\xbd\xa7\xa5\xfd\xc2\x2d\x53\x43\x51\xef\x0b\x07\x49\xed\x84\xc6\x02\xef\x7a\x6e\x33\xaf\xb8\xbc\x82\xc8\x1c\x6f\x38\xb1\xb7\x8d\x0f\x9c\x0c\x7b\x41\x1c\x8c\xb2\x88\x23\x40\x57\x8f\xb0\x33\xfc\xf0\x21\x35\x86\x2f\xe8\x77\x5f\xb8\xf1\x2e\xa7\xdb\xdb\xe8\x0b\x1f\xd1\x71\x72\x65\xa2\x58\xb8\xe9\x89\x15\x42\x71\xb3\x78\x5a\x4c\x9f\x5e\x38\x9b\xc5\x5b\xba\x02\x56\x7d\x90\x05\xc7\x08\x78\xa3\x0f\xfc\xa5\x3e\xaa\xcf\x8f\xb4\xe9\xe6\xdb\xd3\xd3\xb3\xab\xb7\xc7\xef\x8e\x2f\xb5\xce\x50\x76\x0f\xab\xdc\x8e\x35\xf7\x62\x05\xb0\x02\x0e\x07\x0f\x76\xbf\xcf\x0a\xdd\x7a\x88\xbd\x42\x05\x9d\x08\x3a\x75\x8a\xbd\x0f\x7c\x7b\x3b\xec\x11\x28\xda\x60\x19\xbc\xe2\xa8\x86\x1a\xbd\xae\xb9\xe3\xf9\x0d\x37\xd6\x45\x6f\xb8\xa1\xb7\x3d\x3d\x17\x9b\x4a\x94\x8c\x2e\x0c\xa2\xa6\x8f\xcf\xda\xf4\xc6\x98\xb7\x6c\xed\xe2\x8a\x4c\x92\x49\xce\x68\x21\x5e\x2d\x59\x3e\xa5\xc6\xf0\xf3\x8a\x15\xc6\xec\xd4\x2e\x37\x4b\x42\xc0\x7c\xf1\x9c\xde\xb1\x4a\xbe\x35\x37\xc7\xab\x36\xad\xb9\x92\xeb\xdd\x50\x14\xc2\x2c\xa1\xba\x92\x64\x56\x1b\x61\xde\x1b\xe7\x3a\xc8\xcf\x0a\x3a\x7d\x5d\xf2\xc3\xd3\x77\x06\x59\xe6\x4a\x85\x8d\x1e\x8d\xcd\x23\xf8\x36\x4d\xcf\xc3\xb7\xd7\xaa\xf5\xa4\xf2\x59\xcb\x2b\xbd\x05\xcf\xf5\x49\x05\x2c\xc3\x39\xdc\x79\x1a\x77\x03\x0d\xac\x5e\xd0\x38\x47\x58\xd3\x18\x15\x66\xf0\x33\x98\x69\xf3\xe4\x07\x66\xb0\x93\x51\xbc\x44\x2f\xe2\x86\xde\x75\xc5\x8a\x9c\x15\xb4\x4a\x05\xbe\xce\xcb\xc9\x47\x30\x61\xa5\x3d\x70\x7d\x7d\xa7\x82\x3d\xc6\x27\x5c\x1e\xb8\xde\x8b\x63\x8e\xbc\x00\x5b\xc3\x17\xc5\x77\x87\x76\x1d\x17\xdb\xdb\x10\xcf\xf9\x90\x8f\x8a\x31\x8a\xc1\xfb\xae\x46\xf1\x34\xb9\x85\xf3\x4f\x51\xc3\xb9\x32\x31\x12\x1d\x3d\xea\x05\x23\xa0\x28\xf6\x0f\x4c\x9c\xab\x67\x14\xaf\x54\x3c\xd4\xd3\x85\x0e\xdc\x50\xa5\x85\x8e\xed\x01\xdc\xdd\x24\x39\x3c\x7d\x77\xc9\x29\x3d\x30\x6b\x47\xf9\x0a\x2a\x4e\x2f\x39\x29\xa7\xb4\x3b\x81\xf6\xed\xf1\xcb\x35\xc5\xa9\x38\x3a\x55\x2c\x50\x8d\xe7\x78\x8a\xf3\x4d\x91\x64\x7c\x92\x6c\x7a\xb0\x19\x46\x59\x47\x76\x3d\x85\xe3\x56\x1e\x89\x7e\x30\xf0\x46\x1c\x42\xbd\xfb\xf7\xcf\xce\xde\x1e\x1f\xec\x5f\x1e\x9f\x9e\x38\xa6\xfd\xe7\xf3\xfd\xb3\xb3\xa3\x73\x73\x9b\x6d\x42\x6e\x65\x14\xaf\x7c\x17\xa9\x61\xe8\xf4\xe4\x39\x2d\x0d\x6b\xa4\x63\xc8\x86\x1e\x4a\x15\x78\x28\x5d\x66\x37\x00\x0f\xe1\xe4\x11\x53\x76\x17\x75\x22\xf4\x7e\x15\xa2\xec\xcf\xaa\xfa\xc7\x81\x65\xb9\x03\x4c\x37\x3e\xdb\xc6\xe4\x3b\xc4\xcf\x88\x94\x72\x03\x47\x0a\x40\x43\xee\xd9\x36\xc8\x46\xc4\x24\x61\x1e\xe2\x2c\xb9\x59\xb2\xa9\x09\xc9\x59\xd7\x81\xca\x93\xc6\x54\xd9\x9e\xe3\x22\xd0\xfb\xb9\x0f\xa8\x8e\xed\x9a\x55\xf3\x19\xdc\x89\x03\x43\x30\xc9\xb6\xeb\x49\xbf\x2c\x7d\x01\x84\x2c\xf2\x7b\xfa\xe4\x82\x38\x92\x9b\xaa\x2b\x95\x67\x39\xa3\x95\x5f\x02\xb7\x56\x23\xd2\x16\x7e\x6f\xb9\x22\xbc\x9d\xc6\x66\xc6\x8f\xe8\x35\x37\x66\x89\xa6\x08\x1c\x10\x99\x0e\x7a\x89\x41\x31\x11\xd2\x37\xbb\xad\x61\xf5\x4b\x1a\xa8\x22\xdf\x69\x66\xc7\x10\xef\xce\x63\xd5\x08\xa1\x82\x08\xb5\x0d\x3e\xb2\xd7\x26\xcf\x80\x6f\x56\x3b\x18\x2e\x99\x5d\x83\x98\x75\x24\x6e\x17\x39\xae\x15\xc5\x8e\xc1\xc7\xf3\x4a\xc8\xf3\x04\xc6\xf9\xb2\xb4\xa1\xab\x58\x71\x63\xe2\xbd\x4c\x72\x9a\x15\xcb\x85\xec\x9a\x62\xd0\x3a\x0f\x87\xc1\x80\x26\x82\xb3\x9b\x1b\xca\xe3\x68\xca\xa6\x5a\x56\xa6\xd7\x73\x84\xea\x56\x31\xce\xf3\xd5\x9d\x53\xc8\x99\xc4\x79\x47\x8d\xb1\xe5\x54\x4f\x16\x19\x6a\x67\xe7\x85\x15\x5d\x8d\xf8\xb8\x27\x09\xae\x2a\x7a\x30\x88\x0b\x8f\x57\x10\x86\x99\xe2\x78\x57\xee\x04\xc7\x4b\x36\xaa\x5f\xaf\xe3\xd6\xc1\x39\x34\xcb\x22\xa7\x19\xdf\xcf\x73\x38\xe6\x62\x85\x77\xd6\x0c\x30\x4c\x47\x87\xe3\x7f\x53\xe0\xe0\x10\xd2\x81\x3e\x40\x92\x6f\xa8\xd8\x6f\x9c\x24\xf2\xb6\xd0\xc8\x5f\xfb\x2b\xd6\x74\x00\xaf\xd4\x10\xdb\xb0\x7e\x2e\x6a\x22\xa0\x2e\xe8\xa1\xb7\x22\x6b\xfc\x45\x27\x10\x26\x0e\xa8\x57\x6a\xe5\x31\x2a\x71\x50\x9f\x87\x97\xa0\xeb\x13\xd8\x74\x21\xe5\x38\x60\x28\x40\x20\x2d\x9b\x02\x17\x11\x63\xb7\x83\xbb\x58\x6f\x0e\xf7\x1c\xb8\x46\x85\x68\x62\x01\x98\x98\xd1\x60\xc8\x15\xc3\xdc\x25\x61\x4f\x87\xad\x64\x28\xe5\x2f\x09\x5d\xaf\x59\x62\xb6\x70\xdd\xc1\x62\x81\x11\x87\x89\x0c\x08\xce\x14\xd3\xe4\xe0\xfd\xf9\xf9\x91\x72\x50\x43\xb5\xb9\x2b\x59\x4b\x23\xaa\x38\x8b\x17\x85\x69\x8c\xb3\xf8\x80\x98\xea\x20\x56\x34\x57\x00\x86\x7a\x76\xd1\x96\xf2\x06\x00\xaa\x82\xd6\x1e\x18\x0c\xde\x73\x1d\xb9\x6a\xe3\xc0\x7b\xdb\xac\x83\x83\x7c\x90\xb9\x54\x50\x0d\x94\x6c\xed\xf6\x04\xbf\x5f\xb5\x26\x38\x46\x98\x92\xad\x61\x3d\x63\x45\x96\xe7\xf7\x2b\x6a\xf7\xcf\x57\x8d\x95\x59\x3a\xdd\x0c\x6e\x5d\xd7\xcd\xbd\xe7\x5d\x35\x7c\x2a\xa1\x40\x00\xa9\x0f\xfb\xb7\xa2\x23\xe1\xdd\x1a\xea\x36\xc3\x6a\xa2\x07\x0f\x9b\xbc\x2d\xed\x18\xe3\x2e\x2a\xbe\x0a\xb8\x7e\x93\xe2\x14\x14\xcb\x6a\xac\x22\x28\xda\xee\x0f\x93\x15\xd5\xee\x2e\x14\xee\x66\x8f\x1e\x75\xcf\x3b\x38\x01\xc3\x98\x32\x8b\x58\x13\x8c\x69\xc7\xad\x00\x96\x88\xd7\x6c\x3d\xe6\xa6\x05\xeb\xf5\x23\xfb\xb7\xa6\x89\x9a\x1e\xca\xc9\x33\x23\xea\xf9\xc3\x39\xa4\x3c\xe3\x2b\x1d\xa3\xd4\x38\x49\x1b\x78\x31\x05\x06\xa3\x3c\x0d\x53\x8e\xfd\x13\x35\x2d\x70\x70\x5a\xa5\x25\xd6\xe7\x6a\x9a\x79\x90\x9f\x36\x5c\x69\x3c\xc4\x60\x60\x77\x0a\x3e\x14\x70\x16\x81\xac\xa6\xc4\x5b\xbb\x38\x53\x18\x94\x8e\x44\xb6\xa2\xca\xed\x43\x00\x43\x79\x41\xfc\x4d\x39\x07\xa8\xb4\xbf\xf5\x99\x32\x3e\xd5\x60\x89\x7d\x56\xf4\x8b\xb2\xd8\x61\x8e\x7b\xef\x7b\x9e\x80\x55\x3f\xae\x96\x93\x79\x3f\xab\xfa\xaf\xb3\x4a\xbc\x2a\x4b\x81\x92\x08\x46\xe8\xb8\xa0\x5c\xd8\x61\xfa\xc3\x0c\xd3\xcf\xff\xe7\x0c\xd3\xb0\x3d\x4c\x96\x8f\xb5\x7c\x82\xfe\x88\x00\x13\x56\xf6\xca\x8e\x83\xed\xdb\xcf\x5c\xe1\xbd\x72\xb2\x52\x10\x00\xbf\xb6\x11\x0c\x1e\x8c\x41\x31\xfc\x5b\x11\x0c\x76\xff\x02\x82\x01\xfe\x91\x93\xd1\xf8\x45\x3c\xc4\xb9\xba\xc9\xbc\xe6\x94\x7e\xa1\x28\xfe\x91\x9b\x2b\xfb\x0f\x6e\x02\x3f\x8b\xd5\x46\x46\xfe\x57\x5e\x7b\x7d\x0c\x4d\x79\x1a\x96\x38\xc9\x6d\xb6\xb0\xac\x82\xb3\x91\xf9\x91\x1b\xa7\x92\x2b\xb0\xc1\xb9\xba\x4a\x3b\x6d\x56\x24\xa7\x7c\xbf\x30\xb1\xab\xb4\xff\x3e\x98\x54\xa1\xda\x43\x18\x79\x20\x74\x49\x28\x3c\x2e\xda\xe5\xe0\x8a\x08\xeb\x85\x3f\x51\xe3\x5e\x3a\x03\x33\x59\x7b\xe6\x9c\x4e\x70\x4e\xb4\xe3\xa8\xfa\xe2\x9c\xcd\xab\xfa\xaf\xc7\xee\xca\x37\x85\xbf\x88\xc0\x98\x2c\x7a\x20\x08\x46\xf5\xc4\x08\x18\x26\xca\xcd\xe3\xee\xeb\x39\x42\x08\xe7\xcd\x48\x50\xb6\x42\xf1\xd4\xe8\x4f\x3a\xde\xd3\xdf\x14\x0b\xe3\xdf\x17\x5f\xc9\xf9\x97\x3a\x70\x72\x9a\x98\xfe\x62\xb5\x5c\xb0\x82\x82\x7d\x8a\x57\xf8\x93\xc2\x98\xfd\x7b\xa3\x3a\x6d\xf2\xe7\x37\x9d\x52\xe2\xda\x9f\x38\x29\x13\xed\xef\xa3\xb6\x7f\xbc\x62\xd5\x81\x8e\x26\x91\xc2\x68\xc8\x05\xb9\x14\x74\x8a\xf4\xb6\x09\x44\xa2\x5a\x9c\xe0\x47\xa7\x50\x1e\x8b\xf7\x0b\x5a\x23\x54\xa3\xde\x05\x8f\xad\x56\x8f\x92\x97\xa0\x31\x87\x3b\x96\xd1\xec\x49\xd2\xd5\x5c\xfa\x35\xfe\x89\x23\xfc\x13\xb7\x81\x0d\x40\xc4\x1e\xfd\x13\xa4\x02\xcf\x6d\xba\xe7\x6a\x6f\x00\x75\xfe\x85\x93\x1f\xe3\xae\x78\x69\xf7\x49\x5e\x4e\x34\x52\xaa\x8d\x56\x8c\xf0\xbf\x38\x39\x8b\x57\x6c\x9a\x46\xe7\x6f\x67\xbb\x0b\x7a\x34\x8b\x94\x18\x2d\xfd\xc7\x2a\xaa\x20\xf2\x74\x15\xa5\xa3\x68\xa0\x35\x77\xd1\x18\x47\x20\x36\x80\x03\x32\x4a\x47\xa3\xdd\xff\xc6\xbb\xa0\x0b\x1d\x8f\x71\x34\xcf\xaa\xa3\xbb\x2c\x8f\xd2\x59\x96\x57\x14\x47\xcb\xc5\x5d\xc6\x65\xb2\x71\xfd\x0f\x7c\x4b\x45\x96\xfa\xaa\xf4\x68\x91\x4d\x3e\x66\x37\xb4\x7a\xae\xbb\xb4\x63\x46\xa3\x7a\x7e\x93\xb3\xdb\x5b\xca\x9f\xe7\xec\xfa\xb9\xd9\xd8\x95\xeb\x73\x32\xbf\xae\xa2\xba\x46\x98\x16\xa6\x03\x47\x9f\x8b\x2f\x47\xdf\x9e\x5e\x74\x77\xc0\xcc\x66\x84\xa3\x4b\xfa\x59\xbc\x86\xc8\x20\x38\xfa\xa7\x21\xbf\x11\x8e\x06\xf2\x68\xaa\xda\x3d\xfc\x4f\x3c\xfa\xf6\xbf\xf0\x37\x63\x3c\x1a\x7d\x3b\xc4\xa3\x6f\xff\x13\xef\x8e\xf1\xc8\x0b\x37\x32\x56\xfd\xc7\xe1\x67\x2f\x02\xc9\xd8\x0c\x10\x8c\xfc\x68\x14\xb9\xd1\x1c\xad\x3a\x6b\x1b\x42\x6d\xdf\xe0\x21\x1e\x45\x6e\x29\x46\xe3\x8e\x32\x70\x44\xf3\x8a\x76\x15\xf5\xdf\x58\x16\x21\x5b\x33\xda\xfd\x2f\xfc\x1f\x63\xf9\x23\xfa\xa7\xf6\xc5\xf0\xfb\xee\x55\xa6\x0e\x80\x48\xa6\xfd\xf6\x1b\xfc\xad\xa9\x50\x4e\x2e\x98\x57\x53\x41\xf5\x84\xe2\xee\xea\xbe\xf9\x37\x55\x37\x1e\xb7\x5e\xee\xe2\x6f\xcc\xfb\x8d\x0b\x2f\x62\xb3\x08\xfb\xc7\x49\x94\x53\x11\xfd\x4d\xcb\x11\x36\x9e\x5d\x8a\xc2\x2e\xc5\xbb\xfd\xed\x83\xe1\xcf\x53\xda\xb9\x14\xdb\x3b\x28\x58\x38\xe6\xf7\x50\xcf\xb4\xb7\x72\x1e\xe9\xa9\xb1\xa2\xf5\xbb\xfb\x37\x75\x54\x95\x6c\x7a\x6a\xd0\x17\x8b\x07\x70\x69\xaf\x3c\x46\xda\xea\x53\x0d\x53\x19\x40\xaa\xb5\x42\xc1\xf5\x3c\xdb\x43\x4e\x67\x20\xc5\x9b\xf3\x78\xa5\x01\x01\xd2\xd5\x6d\xc6\x0a\xe3\xb3\x88\xb5\x93\xfa\x0a\x0a\x4b\xb9\x24\xa8\xa5\x71\x32\xd4\x1e\xd6\xca\xf0\x57\x33\x12\x3b\xa2\x5c\xec\xe4\xf4\x8e\xe6\x91\xef\x66\xad\x73\x28\x27\x5b\xa3\x16\xb4\x6c\xb9\xec\x34\xb4\x47\xe3\x78\x70\x3a\xd3\xc1\x35\xc3\x02\xc3\x0a\xbb\x1d\xba\x3b\x6a\xaa\x6b\x7d\x57\xd0\xa7\x8f\xe7\x47\x1b\xc8\xb1\x79\xd1\xb8\x54\x70\x27\x5b\xde\x03\x20\x00\xc3\x48\x35\x65\xe8\x14\x8c\x5e\x82\x24\x10\x73\x44\x17\xc7\x69\xb9\xa0\x05\xf0\x8e\xfa\xfc\x77\xb9\x85\xc6\x34\xe8\xbc\xce\xf8\xd3\x9c\x0a\x6c\x66\x38\xe5\xfe\xe0\x81\x2d\x55\xfb\xae\x92\x91\x22\x2e\x43\xfb\xb7\x02\x94\xd9\xa5\xbc\xbb\x38\x31\xb3\x89\x82\x6e\x64\x85\x3e\x58\x8b\x09\x8a\xde\x72\x8e\xa1\x7b\x16\x9d\x14\x9c\x43\x2e\x68\x4e\x35\x66\x47\x4a\x71\x33\x90\xbf\x7f\x81\xb7\xcb\x14\xf0\xb5\x02\xfd\x86\xb9\xe1\x07\x82\xdf\xba\xa2\xe2\xd4\x59\x1c\x58\x7c\x0e\x4e\x67\x3e\x9b\x63\x65\x91\xf2\xa6\xe5\x8a\x24\xbc\x90\xe7\x30\x8d\xa3\xf6\x5e\x94\x1b\xf7\x39\x88\x8a\x22\x3c\x8a\xe8\xe7\x45\xc9\x45\x25\x29\x69\x77\x4a\xb9\x65\x21\x82\xc7\x18\x37\x50\x00\xa2\x65\x45\xfb\x72\x84\x26\x22\xea\x75\x47\x13\xa6\x38\xba\xba\xa2\xd5\x3b\xa0\x12\x11\x5e\x29\xcf\x73\xd0\xa8\x6c\xcc\x60\x60\x10\xa3\x66\x1c\xe2\xc0\x7b\xca\x09\x3d\x12\x93\xa1\x7e\xa8\xd4\x77\x10\x84\xe4\x89\x25\xca\xc4\x0f\x96\x76\xfb\x35\xa5\xdd\x3e\x56\xda\x82\xd2\x8f\x5f\xd5\x3e\x93\xe1\xc1\x52\x2b\x2a\xbe\xaa\x50\x9d\xfe\xc1\x32\xad\x46\xe4\xc9\xa5\xda\x1c\x10\xf9\xf9\xa1\x25\x69\x17\xda\x23\xab\x72\x29\x58\xee\x7d\x01\x76\x5d\x3e\x9a\x33\x46\x8b\x82\x9b\xeb\x55\x9d\x22\x7f\x6d\xcd\x52\x33\x48\x64\x8a\xa9\x9d\x05\x32\xc7\xd4\x2e\x42\x42\x61\xbe\x09\x85\x45\x44\xa8\x1b\x00\x1f\xc0\x96\xe1\xd2\x40\x01\x2c\x0c\x0e\x40\xcf\x2b\x84\xf5\x2c\x14\xb5\x48\xd4\x21\x8f\xe2\x68\x59\xa8\xa6\x4e\x23\xd4\xf3\x0b\xce\x7a\x0a\xc6\x62\x57\x1f\xa1\x79\x27\x9c\xd0\x55\xae\xc1\x4c\xab\x0f\x94\x83\x68\x75\xd7\x8a\x4e\xe7\x94\x33\x41\xa7\x47\xc5\xd4\xa9\xff\x67\x79\x26\x64\xfa\xa9\x49\x6e\x84\x9c\x1a\x0d\xc6\xb7\x72\xb9\x9a\xda\xe0\xe7\x55\xf8\xe1\x96\x7d\x66\x45\xe3\x5d\x9e\x7d\xb9\x3f\x98\x67\xad\xf7\x30\xd2\x8d\x77\x22\xbb\x69\xbc\xe1\x5a\x24\xd9\x78\xcd\xaa\xe3\x82\x09\x6b\xaa\xa0\x8c\x66\x0d\x8f\x00\x83\xec\xe1\x01\x25\xde\x00\x39\x6c\x20\xef\xa5\x9b\x16\xdc\x18\x3c\x5d\x0a\xa8\xba\xd5\x48\x84\x00\x38\x7a\x78\x02\x23\x69\xab\xe2\x59\xc6\x5e\xe3\x8c\x76\xce\xa0\xeb\x18\x93\x5b\xb1\x5e\x0b\xe7\x8f\x3f\xf3\x60\x1a\xc0\x32\xed\x02\x32\x1f\x5a\x4d\x9b\x3e\x2c\x82\xd7\x74\x2a\xdf\xb2\xaa\x23\xad\x95\xd7\x15\x09\xab\xdc\x17\x14\xb4\xac\x99\x95\x4e\x37\xe4\x94\x57\xd7\x20\x63\x45\x85\x9c\x07\x96\xe5\xec\x8b\xaa\x30\x9c\x9e\x61\xbd\x2c\x1e\x4b\xb3\x5b\xab\x5f\x5e\x82\x40\xc2\xad\xbe\xd6\xac\xb2\x18\x1a\x72\xaf\x35\xd5\x5a\x6a\xce\x89\x1f\x6f\x4d\x7b\x97\xe8\xb5\x41\x08\xad\xaf\x24\xef\xc0\x95\xf6\xfc\xf4\x53\xf1\x2e\x5b\x34\x8a\x19\x41\xb8\x08\xfd\xcb\xec\x59\xcd\xad\x00\xce\x17\x6a\x96\x71\xd1\xb2\x2d\x0c\xcb\x90\x2c\xc9\x05\x15\xa8\xbe\x9a\xb1\x62\x7a\x6c\xf6\x1e\x54\x2d\x8f\x55\xa7\x7d\x92\x39\x34\xb4\x07\xe1\x56\x5b\xc9\x9b\xee\x18\x85\xd3\x05\x75\x80\x7e\x18\x94\x89\x3e\xab\x39\xe1\x5a\x91\x58\xd7\x57\xf3\xac\x3a\x2e\x6c\xed\x17\xc6\xe2\xf1\xeb\x6b\x1f\x0c\xc0\xd2\x24\x16\xc8\xc5\xe3\xf1\x6a\x32\x18\x40\xb5\xd1\xe1\x34\x22\xe1\xe9\x5d\x1f\xba\xb6\x6c\x11\x22\xf6\xc4\x88\x8e\x0d\x2b\x5b\x51\xf1\xc1\xe6\xb7\x26\xa1\x1d\xb3\x17\xe9\xf2\x22\x24\xc7\x5a\x56\xaf\xa8\x45\x47\xc5\x96\x90\x3c\x5e\xf7\xb9\x5f\xca\xc3\xd5\xdb\x52\x4d\x0b\x3e\x71\x06\x01\x30\xde\x5a\xaa\xd7\xd1\x96\xae\x92\x1c\x99\xd4\xc0\x0f\x74\xdc\x72\x00\xe2\x60\x1c\x2f\x3f\x91\xd1\x18\x61\x5e\x73\x9a\x4d\x1f\xad\xcd\x95\xbc\x01\x81\x6b\x44\xc7\x35\x18\x36\x7d\x66\x85\x3b\x40\xda\xeb\x3c\xd2\xf4\x3d\x42\x49\x36\x95\x37\x8c\x7a\x9e\x55\x36\x57\xb0\x69\xdb\xeb\xcd\x66\x96\xf7\x80\x59\xc9\x8f\xb2\xc9\x1c\xf2\x56\x01\xbc\x0d\xde\xb8\x14\xcd\xe9\x12\x00\x4d\xc6\x1e\xee\x9b\xd8\xd3\x9b\x2d\x15\xb8\x48\x74\x15\x31\x87\x58\x41\x72\xc9\x72\x24\xf7\x25\x34\x9d\x4b\xd6\x84\x23\xe0\x51\xfc\x7d\x22\x67\x4f\x52\x41\x73\xba\xa9\xe9\x8f\x5b\xa7\x9e\xaf\xfc\xb7\x27\xa1\xf6\x8a\x44\xc8\xba\x5e\xd5\x92\x69\x08\x8a\x0b\x67\xa6\x45\x12\x22\xbf\xc0\xc8\x83\x52\x91\x47\x44\x66\x41\xeb\xb4\x51\x46\xa3\x64\x28\xb3\xa3\x07\x99\x1d\xef\x46\x86\x27\x0d\xba\xd7\xa0\xaf\x1c\xf9\x58\xf2\x60\x76\xf4\x0b\x37\xfa\x05\xc2\x7c\x8b\x90\x6c\x30\xa0\x00\x59\xd3\x9a\x86\x6c\x3a\xbd\x2c\x0d\x1a\x7b\xd5\x8a\x7d\xbf\x58\x56\x73\x8b\xd5\xae\x3f\xee\xed\xa6\x43\xcc\x90\x1e\x99\xd7\xbc\xbc\x6d\xe4\xdf\x9c\xf7\x1b\x54\x77\x95\x88\x19\xd9\xda\x35\x56\xfd\x76\x6c\x61\xb7\xd9\x92\xe5\x05\x74\x11\x97\xd8\xb9\xe5\x80\x67\x51\x36\x18\x64\xdf\xb5\xb9\xad\xc1\x20\x2e\x8d\xa6\x3e\xc3\xbb\xa8\x83\x21\xdb\xd9\xc1\x19\xd9\xd9\x45\x18\x82\x96\x65\xa8\x54\x96\x06\x2b\xc0\x11\x77\x41\xc2\x04\xbe\xa5\x62\x5e\x4e\x53\x8e\x3f\xb2\x62\x9a\x16\xb8\xba\x2f\x26\x29\xab\x83\x30\x2e\xe5\x28\x1b\xf7\xbe\x51\x2e\xa2\xdf\x80\x9b\x89\x4c\xbc\x17\xb4\x21\x8d\xd5\x5b\x52\xe0\x2a\x91\x85\x10\x86\xea\xba\xa3\xa7\xe1\xfe\x6e\xb2\x8b\xb2\x74\xad\x16\x56\xe7\xad\x8d\x37\x21\xcf\xe5\xc1\x00\x86\xa5\xdd\xdd\xf5\xba\xda\xde\x56\x7d\xed\x1c\xae\x0e\x8e\x75\xd8\x62\xd1\x24\x29\x6c\xbc\xab\x6d\xfb\xfc\x1e\x98\x18\x0b\xad\xd6\x7f\x57\xa1\x95\x31\x60\x50\xad\xb6\x5c\x5d\x08\x74\x24\x08\x4d\xba\x8a\x6e\x10\xd6\x00\x31\x30\x6c\x19\x6a\xb6\x5e\xb8\x19\xe3\xcd\xc4\xbd\x76\xff\x15\xb4\x8d\x99\xc1\x61\xc7\x12\xea\x5a\x56\x64\xd8\xb4\x55\x15\x81\xa9\xaa\xb1\x73\x29\xc6\x2f\x60\x32\x16\x00\x00\x02\x8b\x0e\xb3\x44\x2d\x3a\xe5\xbc\x32\x2f\xa7\x08\x5a\xb0\x2c\x20\xe2\x67\xcc\xba\xea\xdb\xde\x46\x75\x5d\x6f\xb8\x59\x54\x01\x00\x9c\x37\x69\xb7\x99\x98\xcc\x59\x71\xe3\xed\x5c\x63\x6c\xa4\x87\xe6\xd1\xb1\xe7\x28\xec\x26\xef\xe8\x26\x1f\x15\xe3\x9e\xee\xdd\x16\x44\x82\x06\xce\x09\xb6\xc1\x60\xb0\x6b\x7f\xaf\xd7\x71\xc3\xf5\x16\x56\x9a\xb6\xfd\x69\x8e\x0a\x58\x3d\xa9\x8c\x0e\x1e\x45\xd4\xe5\x75\x45\xf9\x1d\xe5\x10\x60\xc2\x19\x33\x89\x27\xf6\x47\xa0\xc7\xcc\x93\xb4\x41\x9b\xc2\x21\x73\x5d\x28\x74\x17\x60\x3a\x0b\xd5\x59\xcf\x15\x72\x02\xd6\xbc\x00\x11\xef\xee\x2d\x83\x41\x4c\xa1\x8f\x54\xf5\xb1\x40\xde\x5d\xa4\xd6\x77\xdc\x5c\xfb\xe3\x75\x62\xdb\xe1\x89\x0f\x2e\xe0\xbc\x17\xa6\xea\x20\x9d\xb8\x93\xd1\x7e\x9a\xbb\x43\x71\x62\x1c\x9f\xbb\xd9\x14\x2f\xee\xe3\x32\xa6\xc8\x3f\xad\xfc\x0c\xb1\x29\x88\x23\x87\x1d\xa9\xe8\xd0\x96\x62\xa1\xf4\x13\xe1\x08\x8b\x9e\x2c\x8c\xb7\x51\xfd\x66\x1d\xd8\x5c\x73\xdd\x36\x5d\xb1\x00\x9c\x6b\x7b\xbb\x70\xed\x74\xf6\xac\xb9\xe7\xc6\x3d\x05\xcb\x66\xcc\x6b\x37\x2c\x0b\x27\xaa\x30\x7d\x63\x84\x5a\x6c\xaf\x17\xec\x25\x19\xbe\x60\x3b\x3b\x16\xa3\x63\xc4\x80\x1d\x2f\xd5\x7c\xaa\x75\x59\xea\x95\xa8\xf8\xc3\x52\x2f\x47\x1f\x57\xd4\xf8\xd1\xef\xec\xd6\x5a\x5e\x31\x7b\x50\x38\x93\x3f\x5d\x60\xf8\x55\x32\x9b\x56\x42\x4f\x0a\xeb\xbe\xf3\x65\x91\x97\xe5\xa2\x4b\xc8\xe3\xbd\xd2\xd6\x49\x25\x77\x19\x17\x65\x7e\x3f\x63\xb9\x5f\x35\xe5\x1c\x52\xa8\xa7\x3b\x45\x80\xfc\x96\x2d\x38\x9d\x64\x82\x4e\x77\x66\x34\x13\x4b\x4e\xbb\x7b\x0a\x7a\x81\x2e\x11\x93\x8b\xe2\x0b\xd1\x13\xa7\x78\xfe\xd7\x85\x4e\x46\x4b\x4c\xce\x28\xa6\x49\xb6\x14\xe5\x81\x79\x63\xab\x4f\x92\xc4\x71\xdc\x8c\x02\xe8\xc8\x25\xc0\x6b\xbe\xa3\xa8\xc6\x14\x30\xa3\x9a\x99\x7c\x1f\xb7\x57\x65\x99\xd3\xac\x88\x33\xaa\xb1\x11\x30\xb8\xec\x82\xc7\xe4\xd4\xdc\xbd\xfc\xac\xd6\xa4\x1a\x84\x54\x46\x18\x86\xcc\x8e\xb0\xee\xc4\xd6\x78\x4f\x6e\x2a\xd9\xfe\x9c\x65\x55\x17\xd4\x91\x6e\xf5\x47\x68\xf5\x81\x6a\xb5\x9d\x0f\x33\x52\x2d\x17\xe9\x4d\xe3\x29\xf0\x6a\x52\x16\x33\x76\xb3\xb4\x32\x4a\x5f\x62\xb9\x8b\x2b\x75\x4f\x3f\x52\x00\x11\x2a\x5c\x3a\x0e\x40\xbb\xaf\xcd\x27\x54\xd7\xd0\x1a\x79\x03\x3a\xcb\xc4\x9c\x5c\x51\x35\x3a\xe4\x5a\xff\xf8\x99\x89\xb9\x0e\x02\xbb\x01\xb2\xf1\x9a\x5a\x3c\x8c\x36\xce\x2f\xb7\xfa\x0a\x5b\x0d\x2f\x17\xe4\x9e\x2a\x91\x23\x39\x92\x3f\x04\xbf\xbf\xa0\xed\xe2\x75\xce\x23\x13\x8e\x74\x6b\x08\x6d\x55\xa8\x08\xfb\x82\x3c\xc3\x34\xe1\x74\x91\x67\x13\x4a\x9a\xab\x95\x7c\x40\x2b\x88\x8d\x9c\xb0\x4a\xc5\x48\xa6\x68\xef\x0f\x4b\x83\x52\x9b\x53\xc7\x52\xaa\x5d\x59\xc7\xc5\x49\x26\xd8\x1d\x85\x6c\xe4\x0f\x0c\x41\x93\xe0\xe1\x54\x1f\x70\x9b\x5a\xfa\xb3\x2e\x7f\x86\xb7\x76\x75\x89\x92\x43\xff\xaa\xbc\x0b\xd3\x4d\xc0\x56\x02\x4f\x9e\x42\xfc\xcc\xf2\x5c\x39\xa5\x90\x57\x8d\x4f\x87\x6c\xaa\xbf\xbc\xc1\x34\xa1\xd9\x64\x7e\xc6\xcb\xcf\xf7\x50\xa7\x97\xad\x2d\x30\x56\x14\xf8\xd0\x22\x70\x38\xb9\xca\x60\xc0\x54\x15\x2e\xbf\xcd\x56\xb7\x2a\x71\x0d\xf8\x53\x75\xd8\xec\x41\x15\xd9\xd4\xb2\x09\x64\x86\xa9\xbc\x55\x59\xb6\xe1\x2b\xb6\xaa\x46\x02\x75\x70\xcd\x46\x9c\xd4\x66\xbf\x38\x6a\x09\x4b\xa0\x91\x06\x10\x11\x56\x5e\xd1\x24\x4b\x86\x51\x56\xa6\xca\x85\xb5\x39\x54\x6e\xc3\xd4\x86\xd9\xaa\x50\x2c\x70\x81\xb0\x70\xab\xc2\xf6\x6f\x01\x5b\xa1\x50\x71\xb9\xc8\x2d\x50\xb4\x93\xb2\xa0\x5d\x94\x44\x03\xab\x28\xb2\x77\x74\xbb\x10\xf7\xe4\x84\xc2\xc3\xab\x3c\x2b\x3e\x92\x63\xea\x4e\xdc\x99\x1c\x1f\xe7\x42\x37\x44\x2b\xb6\x5e\x77\x04\x53\x2e\xd6\xeb\x98\x91\x02\x2b\x64\x04\x30\x05\x53\xaa\x1d\xe5\xaf\x13\xde\x4f\x55\x81\x2a\x3e\x25\xdc\xb6\xfd\xf3\x3d\x88\x18\x9c\xf5\x5a\xf8\x25\xc5\x5e\x5c\x92\x02\x67\x84\xa1\x54\xfe\x5a\xe6\x39\xce\x48\xd1\xac\xb2\xeb\x5e\xab\xb5\x9c\xb6\xba\x5b\xd7\x39\x8f\x25\x22\x16\x7b\x23\x73\x37\x76\xf0\x34\x0f\x17\x47\x5a\xf6\x14\x52\x18\xf8\x78\x67\x9d\xcb\xc1\x08\xc9\x82\xc2\x95\xe5\xb1\x59\x15\x6e\x5d\x19\x96\xa6\xb2\xdf\x76\xbe\x7d\x51\x49\x96\xa6\xda\x21\xdf\xaa\x26\xe5\x84\x8d\xaa\x31\x5e\xca\x7f\xdb\xbb\x63\x3c\x81\x1f\xdf\x00\x97\xb3\x44\xab\xc9\x60\xa0\xc6\x30\xc7\x4b\x88\xb6\x1d\xe7\xc4\xf9\x12\xab\x01\x5c\xf6\x8c\xe2\x76\x8b\x90\xe9\x60\xa0\xcd\x24\xe0\x69\xbd\x8e\x97\x24\x1f\x2d\xc7\x08\x2f\xb5\xe1\x52\x2e\x77\x93\x91\x53\x0e\x6b\xb9\x4c\xce\x38\xad\xe4\x32\x6b\xaf\xad\xad\x63\x50\xbc\x62\x9a\x80\x87\xac\x39\x70\xb4\x2f\x1c\x79\x2d\x8f\x6b\xf8\xad\xbf\x30\x5a\x91\xf7\x10\x0b\x64\xda\x4c\xfb\x05\xd3\xa4\x28\x05\x9b\xdd\x87\x5f\xc8\x5b\x38\xf8\xfc\xf3\x8c\xcc\xd5\xf2\xd5\xa6\xb5\x4e\x6a\x43\x7e\x91\x85\x00\x21\x96\x2f\x0f\xe9\xa4\xe4\x92\x07\x22\xff\x82\x32\x4c\xb2\xd7\x25\x77\x9f\x2a\xda\xfc\x66\xab\xc9\x54\x35\xa0\xb2\x67\x5e\x69\xb9\x3e\x88\x5a\x1f\x96\xfa\xfc\xf3\x7a\xdb\x85\x45\xb7\xaa\x71\x41\x0c\x88\x59\x85\x19\xd9\x05\x29\x84\x7d\x63\xad\xe5\xc3\xc3\x08\xe2\xea\x30\x32\xf4\x33\x8f\x76\xc7\xda\x17\x82\x7d\x67\xbd\x21\xd8\xf6\x36\xe2\xa3\x62\xc4\xc6\x63\x75\xd0\xca\x9f\x1e\xea\xb0\x6a\xfd\xc6\x46\x7a\x98\xf5\xeb\xb5\xd9\x8f\x2e\x8c\xba\xe3\xe3\xf5\x8f\xf7\x71\xe8\x27\x82\x0b\x73\xf9\xf9\x48\xef\xab\x58\x20\xcc\x24\x9b\xde\x68\x1f\x91\x8d\xc2\x70\x4e\x73\x0c\x21\xe7\x6b\x4d\xea\xe8\xe7\x45\x66\xd7\x87\x6c\xde\x94\x2a\xea\x6e\x8f\xc3\x2b\xac\x22\x56\xdf\x65\x82\xda\x97\x9f\x2d\x95\xb4\xaf\x3e\x61\x9a\xcc\xf2\x65\x35\xdf\xaf\xee\x8b\x89\x79\xed\xf7\x17\x48\x9c\x75\x89\xac\x42\xd7\x8a\x2a\x70\xad\x90\x5b\xee\xcc\x8b\x5c\xd0\x3b\x23\x1c\xdf\xb7\xa4\x79\xea\xb4\x68\x50\x8f\x02\xf5\xb8\x9f\x32\x93\x29\xd9\x2c\xde\x32\x95\x3a\xdf\x03\x88\x89\x8a\x79\x12\xf8\x1b\x18\x62\x60\xc3\xd4\xde\xc6\x05\xce\xf0\xa8\xc0\x3c\x59\x64\x62\x3e\xd6\xbe\xf4\x98\x21\xeb\x41\x02\x05\x91\x1f\x62\x93\x06\x43\x5d\x22\xbb\x91\x4d\x02\x57\x46\x43\x44\xfd\x76\xa2\x46\xd5\x1d\xc3\xc2\x75\x9c\x93\x1e\x95\x44\xb2\xf4\x6d\x3c\x94\x87\x43\x15\xe1\x1c\xa5\x79\x0c\x8c\x22\x50\x07\x90\x4c\xfb\xcb\x2c\x49\x12\xc7\x6c\x67\xea\xce\x8b\xa9\xe2\xd4\x9a\x3c\x8f\x77\x6a\x82\xdd\x7d\x66\xce\xce\x5e\x07\x7e\x69\xb6\x17\x0b\x92\xc9\x53\x15\x97\x64\x8b\x19\x1b\xd7\xd7\xfb\xef\xdf\x5e\x5e\xed\x5f\xfc\x7a\x72\x70\x75\xfa\xea\xe2\xe8\xfc\xc3\xd1\xf9\x05\x4a\x65\xda\x64\x26\x8f\xb1\x4c\x32\xd7\xb4\x98\xd2\x42\xfc\x48\xef\x2b\x5c\x92\x0c\xc4\x7d\xc8\x23\xd3\xa3\x31\xce\xc9\xf0\x45\xee\x56\xf2\xf6\x76\x8e\xa6\x34\x2e\x46\xf9\x18\x53\xf2\xd2\xe2\x8d\xa1\xc6\x91\x6e\x97\x9e\x3c\xd2\x57\x72\x36\xaa\xb4\x52\x32\xc9\xd2\x2c\x7b\x20\xbf\x20\xf1\x27\x99\x90\x84\xa7\x90\x7b\xa8\x3d\x68\x6a\xb5\xfe\x22\xf7\x55\x41\xb8\x0b\xd4\x32\x1c\x63\x46\x62\xbe\x5e\x8b\xd1\xee\x18\xfb\x11\x50\xed\xfa\x9e\x7b\xc6\x41\xe0\x86\xa3\x45\x92\x13\x03\x1d\x6e\x69\x84\x81\xb2\xf9\xed\xd9\x8a\xd6\xe9\xb3\x55\xb1\x5e\x8b\xfa\x37\x1c\x22\xcf\x7b\xb0\x4f\x26\xf4\x59\x8d\x7a\x26\x28\xed\x19\x8d\x57\x37\x54\x40\xbc\x38\xad\x4e\x9b\xeb\x2b\x04\x55\x66\x77\xe0\xf4\x6d\xab\xdc\x2b\x15\x5c\x34\x34\x5f\x8c\xbe\x19\xa3\xb4\xac\x55\x84\x70\x9f\x28\xff\x6e\x5f\x29\x22\xd3\x74\x82\x86\x21\x67\x95\xfa\x08\xee\xba\x9e\x4f\x86\xca\x88\x62\x8a\xcf\x6d\xc5\x55\x68\xfb\x2d\x57\x6b\xc6\x3f\xaa\xfc\xfb\xd5\x21\x93\x95\x1e\xc2\x85\x23\x9b\x7c\xa4\x53\x72\x2b\x14\x35\xb2\xc8\x5a\x41\x0b\x5e\xd1\x64\x59\x2c\x78\x39\xa1\x55\x45\x5d\x9a\x8a\x6c\x0d\xf1\x07\x6a\xd6\x87\xac\x05\xac\x13\x2e\x8d\xd5\xf1\xaf\x92\xc6\xcd\x58\xb1\xa1\xd8\xf7\x74\xbd\xfe\xde\x83\xe5\x7c\x46\x47\x74\x5c\xf7\x1a\x59\x2a\xf2\x87\x2c\x46\x57\xef\x4a\xfa\xd9\x7b\xbb\x9f\xe7\x5e\xfa\xef\xa9\xa5\x9a\xdd\x15\x5b\x5f\x5a\x80\x90\x92\x69\x80\x51\xd6\x3e\xb2\xcf\xe8\x48\x8c\x65\xbf\xb4\xbc\xf5\x03\xf5\x90\x37\x40\x82\xdf\x67\x45\x9f\x25\xda\x0f\x58\xaf\xaa\xc1\x80\x02\x43\x14\xbe\x1d\x89\xb1\x3c\xdf\xda\x6f\x35\x57\xa6\xef\xed\xb6\x99\x17\x34\xe3\x93\xf9\xa1\x0a\x77\xee\x5d\xe3\x2d\x59\x79\x4f\xf5\x49\xf7\x68\x16\x18\x60\x62\xee\xfc\x72\x7a\x36\xdb\x63\x69\xd7\x99\xc9\x9c\x3e\xd1\xea\xc7\x00\xe8\x41\x9e\x07\xed\x89\x6e\xb4\x5a\xf7\xc9\x05\x9b\x0c\x0f\x96\xaa\xe1\xb1\x9f\x5c\xa8\x4e\x0f\x86\xdf\xc9\xc9\xfe\xbb\xa3\x8b\xb3\xfd\x83\xa3\x8b\xab\x57\xbf\x5e\x1d\x1f\x12\xff\x15\xa1\xc9\xc1\xfb\x8b\xcb\xd3\x77\x72\xe3\x5c\xbd\x3e\x3d\x27\x34\x51\xee\x04\xc7\x27\x3f\x1c\x1d\x00\x00\xc1\xeb\xf7\x27\x07\x2a\xf2\xaf\x96\x75\xbc\x53\xe2\x37\x9a\x28\x52\x47\x93\x90\x26\x13\x9a\xec\xb7\xde\xbc\x65\xd7\x3c\xe3\x92\x15\xa0\x49\xee\xfd\x3e\x3b\x3f\x3d\x3b\x3a\xbf\xfc\xf5\xea\xf0\xf8\xf0\xea\xe0\xcd\xfe\xc9\xf7\x47\xea\xed\x2f\xbf\x5e\x1d\x9c\x9e\x5c\x1e\x9d\x5c\xca\x36\x6a\x49\x8f\x25\x21\x34\xb9\xba\xc9\xcb\xeb\x2c\x77\x42\x20\x6d\x8d\x64\xaf\x0a\x77\xbe\x2b\xc3\xb6\x95\x07\xab\xe0\x2a\x8f\x9d\x2b\xf8\xda\xe8\x3a\x7b\xad\xee\x5d\x03\x75\xbc\xb7\x09\x6c\x8d\x57\xee\x72\x42\x6e\xec\x7d\x44\x5e\x31\xe5\x9d\x2c\x53\x57\xa8\x5d\x5c\x22\x6d\xde\xd4\xbe\xbc\x1a\xb0\xb4\xc1\x20\xae\x92\xb6\x39\xc8\x7a\xad\x30\x03\x7d\x4b\x12\xb4\x5e\x7f\x86\xd2\x4b\xef\x9a\xf4\x69\x53\x4b\xf0\xdf\x57\xeb\xa5\xae\x15\x2f\x4c\xe7\xbc\x06\x1c\xf9\xcc\xf2\x96\x52\xa0\x5e\xa7\xf7\xee\x70\x9a\x67\x15\x14\x1d\x73\x2d\x30\x37\xaa\x65\x85\xd5\xb0\x39\x2c\xb2\xbf\xe3\xaf\x93\x8a\x7d\xa1\x2f\x87\x83\xc1\x75\xa2\xc8\x99\xec\xce\xbd\x7d\x7b\xef\xde\xd6\x92\x9a\x6d\x0d\x81\x39\x52\x52\x09\xd7\xd8\xcf\x6a\xb4\xac\x2e\x94\x91\x23\x80\x9d\x94\xec\x22\xd3\x7a\x75\xc4\xb4\xc0\x5d\xd9\xb4\x6d\x6f\x5b\x9d\xd6\xa8\x1c\x13\x6e\x90\xe4\xd3\x08\xe1\x8c\xfc\x10\x53\x5c\xb6\x99\x35\xda\x62\xd6\x24\x9b\xc1\x60\x00\x38\x5e\x41\xc1\xe9\x2e\x96\xbc\x45\x5a\x62\x05\x46\xed\x33\x72\x69\x9b\x91\xcb\x10\xae\x96\x15\x70\x3d\x53\x0d\x1c\xd5\xde\x7d\xf7\xb0\xde\x4e\xc9\xd6\x2e\xbe\x08\x10\x97\x2e\x95\xf0\x05\x3a\x2e\x59\xd9\xe1\x16\x21\xa7\x46\xb4\x02\xb3\xc6\xe5\xac\x61\x63\x89\xb3\x09\xef\x92\x19\x3b\x9d\x52\x8d\xce\xce\x0e\x86\x1b\xb8\x7a\x82\x23\x41\x4f\x84\x40\x58\xdd\xa4\xe5\x14\x0d\x06\x85\x9b\x20\xd9\xf2\xbc\xa2\xfd\x0b\x75\xc0\x8e\xa0\x65\x63\x6f\x96\xde\xc9\x19\xbf\xd7\x0b\x47\xce\xad\x6a\x51\x60\x05\x61\x18\x66\xba\x91\x61\xee\x9c\x83\x27\x33\xcc\x08\x5f\xdb\x06\x5c\xff\xbf\xd2\x00\x20\x5f\x67\x7e\x10\xfb\xfd\x58\x6e\x04\x7b\x33\xa1\x98\x9b\x3b\x4c\x4b\x3c\xc6\x91\x64\x37\x5c\x4a\x66\xee\x30\x34\xb1\xab\x68\x30\xe8\xb8\xd1\xa8\x90\x85\xb4\x71\xa3\x91\xb7\x18\x2f\xa7\xe4\x8f\x6e\x63\x8e\x19\x1e\x71\xc9\xac\xf8\x97\x9a\xc2\x5d\x6a\xa8\x1e\x22\x93\xa6\x3d\x44\xbc\x35\x44\x1c\x42\xa0\x3f\x32\x44\x54\x85\xb9\x0d\x5a\xb4\xab\xee\x2f\x2e\x72\x52\x43\x86\xed\x2d\xeb\x86\xd5\xd9\x5d\x2c\xe4\xe6\x84\xc5\xeb\x0a\xe4\x1a\xba\xec\xa3\xe2\xa7\xdc\x71\x7c\x61\x6c\x5a\xc3\xe3\x14\x0c\x5b\x1b\x27\xec\x47\xd8\x8e\xe7\xaa\x04\x6b\x0b\x7b\x71\xf4\xf6\xb5\x4c\x12\x21\x37\xb5\xbf\xdb\xfd\x89\x0b\xd8\xa1\x1d\xb7\x25\x3a\xfa\x38\x36\xf7\x79\xf9\x1b\xa2\xb9\xf5\xec\x15\xd6\x67\x98\x05\x76\x60\xb4\xcc\x8d\xc9\xa1\x36\x01\x92\x89\x4d\x34\x4c\x93\x03\xe1\xae\xd7\xe7\x6a\x19\x9e\x6c\x1c\x84\x8e\x53\x1d\x46\xa2\xeb\xb4\x3f\x81\xc6\x1e\xfb\x4b\xfa\x6d\x43\xa8\xe8\x84\x7a\x45\x87\x50\xaf\x30\x07\x58\x09\xd6\x27\xcd\xa3\x6a\xbd\x2e\x3b\x0e\x35\x79\xf4\x1c\x2a\x75\xe5\xf1\x77\x64\x38\x18\xec\xc7\x08\x9f\x48\x56\x97\x0e\x06\xf1\x7f\x74\xc8\x72\xf6\xe8\xe8\x64\x2c\x97\x37\x4a\xd5\x2f\x84\xbc\x85\xf5\x3a\x46\xab\xe3\xed\x6d\x7c\x0a\x08\x10\xe6\xed\x97\x18\xad\x76\x76\x54\x05\xb1\xac\xa1\x0d\x10\xa7\x09\x5d\x39\x8b\x15\x81\x46\xe8\xd2\x40\xe0\x4a\x62\x5d\xc7\x7e\x2d\xef\x25\x0d\x7c\x1d\x23\x00\xa0\xa0\xb1\xdb\x54\x5f\xe4\x4d\xdd\xe1\xe2\x39\x51\x7c\x0b\x60\x5b\x5e\xae\x87\x98\x93\x82\xec\xec\xa2\x34\x6e\x18\xde\xed\xec\x7a\xe1\xce\x0b\x08\xd2\xb8\xb3\x8b\x10\xbe\x95\x6c\xe8\x3f\x55\xf4\x9a\x6b\x3a\x2b\x39\x8d\xf0\x48\x57\x32\x96\xd7\x7e\x5b\xf7\x1b\x8f\xf5\x00\xc9\x8c\xad\x60\x2f\xe6\x20\xf9\x62\x8d\x9a\x6d\x35\xae\x66\xd8\x76\x50\xb3\x6f\x37\xde\x94\xf3\xcb\xf9\x8e\xd9\x77\xc3\xf5\xba\x90\x7f\xd8\x4e\xb1\x45\x86\x68\x30\x90\xcb\x27\x52\x93\x16\xe1\x0c\x61\x78\x1e\x8d\xe5\xef\xb0\x27\x9a\x25\x94\x3d\x81\x26\x8f\x2d\x5c\x6d\x66\x22\x29\x2a\xe3\x82\xbd\x61\x5a\xe0\xdc\xe9\xad\xe3\x18\xde\xb3\xbd\x61\xca\xd0\x4e\x85\xf0\x92\xf0\xef\x86\x7b\xf9\x36\x4f\x79\x70\x44\x4a\x4e\xc6\x59\x5a\x46\x80\x6c\xa3\xd8\xfc\x08\x0d\x06\xb2\xab\x4b\xdd\x5e\xff\x93\x6c\xf4\xa6\x22\x24\x11\x34\x25\xa0\x7c\x67\xf7\xbb\xe5\x76\x65\xba\x9c\xf9\x25\x38\xbb\x06\x00\x45\x34\x02\xbd\x19\x78\xf3\xc7\xa3\xb1\x47\x67\x9e\x05\x8a\xd3\x96\xfe\x4c\xde\x10\x53\xa7\x80\x8b\x7d\xdb\x06\xa7\x5b\x93\xf4\xc9\x2e\x3c\x23\x29\xb7\xbf\xbe\x23\xff\x49\xff\x03\x51\x87\xe3\xc8\x71\x92\x24\x85\x36\xe6\xf2\xdf\x3b\x71\x4d\x4b\xe6\x08\x65\x68\x92\x50\x68\x14\x6b\x86\xd9\xb6\x7c\xdd\x73\x65\x6c\x33\x3c\xc4\x2a\x38\x53\xfd\xa6\xd9\x22\xd7\xf4\x9f\x7d\xab\x3b\x55\x28\x1f\x0c\x38\x38\xb7\x2b\xc1\xf5\x7a\x1d\x35\x14\x62\x11\xce\x54\xa2\xa9\xd1\x5f\x99\x34\x56\xa1\x15\x61\x79\xaf\x99\x67\x55\xa0\xff\xb3\x36\xb9\x45\xc7\x4e\x12\x92\x8d\x2e\x3a\x16\xa6\x90\x2b\xa1\x52\x1b\x02\xa6\xb8\x55\x6c\x24\x37\x1f\x40\x4f\x28\x6b\x8c\xe4\xea\x67\x9a\x7d\xbc\xa0\xc2\xcd\xee\xaf\x92\x99\x75\x7d\xa4\x49\xb7\x49\x6d\x03\xca\xba\xec\x12\xc5\x30\x64\x8d\x75\x32\x32\x7c\x91\x7d\x57\x9a\xc9\xc9\xb4\xb1\xce\x28\xc7\xcb\x31\x98\xe5\xbd\x80\x93\x43\xb9\x76\xc1\xf9\x9c\xe3\x1f\x62\x86\x97\xed\xf3\x9e\xb5\xce\x7b\x26\x69\x6b\x69\xc1\x68\x3c\xd2\xf6\x63\x97\x3d\xc9\x68\x8c\x4b\x32\x7c\x51\x3a\xdb\xa1\x72\x7b\x1b\xfd\x14\x33\x4c\xb1\x18\x95\x63\x48\xdf\xf3\x84\x48\x36\x18\xb3\x7f\x67\xf9\xa1\x49\x35\xc3\xa4\x3f\xc5\xa3\x31\x36\x29\xbc\x6c\x3f\xa9\xe1\x05\x45\x95\x6d\x13\x18\x4b\x90\x02\x4f\x49\x89\xe7\x24\xc3\x33\xab\x20\xc2\x0b\xb2\xb3\xfb\x42\x9b\x9f\xde\x92\xc5\xf6\xae\xb2\xa9\x24\x84\xc4\x0b\x12\x44\xaa\xc2\xb7\x08\x0d\x06\xf1\x82\xcc\x10\x8e\xfe\x49\xb3\xc9\x3c\x92\xa9\x72\xc9\x3e\xc3\x4a\xbf\xc5\x0b\x99\x62\xb1\x45\xc8\x0c\xad\xa0\x30\xdc\x2e\x03\x48\xe8\x1d\x99\xe8\x06\xc8\xea\xa2\x62\x79\x7b\x4d\xb9\x53\x09\xdc\xad\xd7\x5b\xe1\xbe\x9f\x20\xc9\x09\x46\x66\xd3\x47\xac\xe8\x4f\x10\xba\xe6\x34\xfb\x28\x4b\x90\xa4\xeb\x0e\xad\xb4\x38\xec\xf7\x78\x02\x14\x16\xa1\x1e\xa4\xa8\x73\x45\x38\x17\x7b\xb6\xa9\x28\xf5\x5b\x6d\xf7\xf8\x0d\x19\xbe\xb8\xf9\xee\xee\xc5\x8d\x31\xf6\xba\x26\xcf\xe2\x09\xbe\x41\xbd\xeb\xc1\xc0\x96\x7e\x8d\x73\xb8\xbc\xd5\x8d\xfa\xf0\xd6\x10\x4f\x6d\xa5\xea\x5a\x2e\xbf\xe5\xea\x03\xa8\xd8\x8c\xc2\x6f\xbe\x37\x4f\x9a\xc6\xca\xb9\x51\xf7\x19\x7b\xb0\x7b\x84\x17\x04\x46\xf3\x7b\x60\xf4\x97\x68\x30\x98\x8c\xf2\xb1\xae\xc1\x57\x0a\x2e\xd1\x84\xe4\x92\x61\x98\x74\xaa\x57\x27\xc9\xb2\xf8\x58\x94\x9f\xac\x46\x6d\x4f\x96\x93\xb6\x5e\xc7\xb9\xa2\x81\x7d\x36\x8b\x4d\x9d\x68\x42\xa0\x52\x6b\x36\x79\x45\xe6\xce\x0c\x6b\xb2\x37\x4f\x3d\xcd\xe9\x04\xe1\x4f\xe4\x2a\x38\x24\xf2\xd0\x2a\xe3\xd3\x7a\xdd\xc1\xd3\xdf\xe3\x4f\x5a\x29\x71\x44\xae\x92\x6e\xa3\xfe\x1c\xe1\xcf\x72\xb5\x2d\xaf\x2b\xc1\xe3\xc5\xf6\x2e\xc2\xa7\x8a\xab\x54\x02\x31\x80\xa4\x90\xd9\x14\x08\x47\xef\x48\x5f\xde\x4e\xf1\x67\x67\x63\x77\x6a\xe6\x67\x42\xae\x9c\xed\x4c\x8e\x6a\xad\x3d\xf1\x09\x8c\x5d\x62\x53\xd2\x22\x13\x13\x84\xe7\x4d\x46\x60\xe2\x1d\x73\x76\x47\xfe\xa2\xa5\x9e\x23\xc5\x9e\x38\x44\xa0\x6f\xc1\x55\xca\xa2\xb6\x75\x70\xd3\x9e\xba\xcc\xbd\xb3\x00\xfe\x02\x75\xb8\xd0\x4a\xc6\xa9\xad\xf2\xb6\x79\x8a\xf5\xda\x33\x8f\x71\x8d\xfc\x97\x13\xcd\xb6\x45\x78\xd4\x82\xc4\x2c\xe1\xce\x2c\x34\x36\x37\x0d\x23\x9b\x6b\x83\x6f\xc7\x80\x5b\x7c\x3e\xdf\x52\xc8\x81\xf6\x05\xfa\x91\x86\x5b\x1b\x15\x46\x77\x5e\x57\x54\x2c\x3d\xbb\xbd\xa2\x6d\x71\xaf\x3c\xd3\x51\x2d\x68\xc6\xa7\xe5\x27\x67\xd4\x92\xb4\xcd\xf6\x85\xcf\x99\x0a\x1a\xb0\x1a\x5d\x0e\x96\x20\x4a\x30\x01\xe8\x6d\x46\x4e\x3b\xe3\xca\xf1\xd0\xdf\xd3\xe8\x26\x38\xf2\xf0\x3d\x8d\x3b\x04\x07\x02\x51\xd0\x8d\x07\x25\xa3\x9d\xc8\xac\x3c\xc4\x06\xfa\xb6\xeb\x6e\xe0\xed\x47\x8e\xd2\xb2\x07\x42\xeb\xe5\x42\xe7\xcd\x8c\xc4\xcf\x97\xdf\x52\x6f\xde\x70\x60\xd9\x45\x83\xe9\x03\x29\xaf\xa0\x71\x81\x29\xc2\x15\x15\x29\x57\xbf\x6d\x0f\x2b\x7f\xb1\x40\x2a\xcd\xea\x55\x81\xe1\xaa\xd2\x22\x9a\x67\x84\x0b\x15\x90\x97\x76\x9b\xb3\x66\x4a\xab\x6b\x2f\xc5\x8f\xdc\xc0\xda\x41\x80\xfb\xac\x45\x6d\xb9\xb7\xfc\x2b\x1f\x69\xa6\xa4\x2d\x99\x9c\x8f\x44\xd3\x75\xeb\x1d\x0c\x4a\xaa\x45\x31\x2e\xd3\x12\x16\x09\x5c\x3b\x4a\x17\x1d\x08\xfa\x39\xa1\xe4\xf9\xff\x24\x70\x88\x3e\x7b\xee\x59\xed\xd2\x30\xca\xa2\x3d\x39\x57\x11\xea\x49\x96\x5e\xc4\xce\x64\x6c\x42\x71\x94\xc0\x29\x67\xa5\xee\x7d\x6d\x48\xe6\xd9\xbf\xe0\x8a\x38\xf0\xf2\xa8\x8e\x10\xce\xc9\x50\x5e\x10\x34\x19\x95\x97\xd2\x62\x7b\x17\x57\xc8\x08\x0d\x71\x84\xf0\x24\xf8\x5e\x6d\xef\xa2\x9e\xd8\x0e\xde\x0d\x71\x81\x70\x46\x96\xe6\x18\x07\x93\x81\xfc\xbb\xec\x05\x8a\x4b\x32\x09\x5a\x8e\xbe\x1b\xee\xb1\x38\x16\xdb\xcb\x51\xbe\xbd\x3d\xde\x9e\xa0\xae\x3e\x50\x9b\x00\x4f\x70\x89\x19\xaa\xe3\x28\xc2\xa0\xcb\xf7\x8d\x97\xa9\x6f\x72\xd3\x6d\x63\x73\x6b\xed\x6b\x70\x45\xf4\xca\xc9\x64\xbf\x2d\x37\x59\xf5\xf2\xc1\xa0\x4a\x3c\x7a\xa1\x52\xd0\xb8\x40\x7b\x33\x53\x45\x86\x52\x65\xb6\x50\xec\x2d\xd4\x3b\xa6\x0e\xfe\x74\x93\x6a\x84\xc3\xa0\x74\x0a\xad\xdf\x05\x4b\x63\x46\x1b\xe6\x69\x56\x10\x42\x94\x3b\x8c\x15\x54\x6d\x54\xc3\x08\xcc\x24\x11\x71\xa6\x4f\xd4\xf7\xa3\x19\x5a\x83\x1a\xd8\x25\xeb\xf5\x96\xba\x21\xfe\x39\x73\x4e\x86\xcd\x81\x2c\x3f\x28\xe3\x59\x5e\xa3\x54\x5e\xc5\x08\xd7\xa4\xec\x56\xed\x5d\x9e\x80\x5e\x2a\xde\xa5\xdf\x62\x08\x03\xec\x07\x3b\xf5\x6e\x79\x7e\x6c\xb4\x36\x10\x84\x76\x60\xb9\xb5\x5b\x11\xb8\x33\xda\x90\x52\x05\x8a\x19\x5f\x54\x75\x1d\x12\xf6\x3b\x79\x6c\xed\x5d\xa9\x97\xe9\x3d\x6d\x58\xc4\xdf\x7b\xdb\x4e\x8e\x9e\x69\x04\x2e\x89\x3b\x4a\x89\x9d\xa3\xd2\xe7\xb0\x60\x54\x1d\x73\x13\x17\x44\x0e\x0a\x1a\x0c\x4a\xc9\xb0\x82\xb6\x92\xca\x73\xba\x83\x68\x34\x79\x2f\x10\x3c\xb4\xde\x02\x7c\x2b\x70\x1f\xac\xba\xe4\xd9\xe4\x23\x78\x13\x4b\x4e\x5c\x5f\x08\x8a\x6a\x79\xab\x38\x9e\xa6\x80\x4d\x66\x0c\xd9\x68\xf0\x09\x53\x3c\x0e\x84\xdb\x86\xb7\x60\xa5\x01\x01\x13\x1e\x28\xae\xd0\x1c\x35\x42\xa9\xea\x22\x2e\xdc\x00\xea\x91\xf5\xbc\x5b\x29\x2e\x48\x6b\x56\xc5\x9e\xf0\x62\xdc\xa6\xa2\xcb\x8c\xc7\x19\x0b\xf1\xf5\x9a\x07\x9e\xd0\xda\x4a\x86\x93\x7b\x2a\x4f\xb2\x11\x1b\x23\x17\xa3\xaa\xa9\xa5\xbb\xa1\xf8\x9e\xc6\xd1\xac\x2c\x23\x1c\x65\x11\x72\x4f\xbb\xf0\x7b\x55\xdb\xd7\xab\xda\xbc\x5b\x16\x1f\xcb\xc2\x1b\x7a\xb4\xaa\xbd\x64\x9d\x5f\x77\x11\xbe\x56\xa5\xc9\xc2\xfd\x87\xe4\x3a\xe3\x91\x3a\x6a\x3f\x51\xb2\xf2\xbc\x10\xb4\x2d\x31\x90\x69\x25\xef\xf6\xbb\x09\x86\x84\xd4\xf9\xfb\xf6\x3f\xbb\xe4\x3d\x4d\xd5\xd5\x3e\x50\x0a\x6d\x77\xa6\xa1\x56\xe0\x44\xe5\x1a\x57\xa8\xb3\x29\x03\x74\xb8\xbd\x18\x76\x6d\x81\x0b\x2b\xf5\xda\x22\x24\x2e\xd5\xba\xed\xb0\xcf\xa2\xeb\xb5\x5a\xc6\x9d\x17\x0b\x38\xd8\xde\x37\xee\x16\xa6\x8a\x52\x79\x2e\xbe\x55\x8b\x31\xed\x4a\xab\x2c\x52\x0b\x9f\xb9\xfa\xdc\x24\x8e\xc4\x5f\x36\xb8\x24\x4c\x5b\xba\x66\x04\x16\x1e\xf3\x7c\x44\x32\xe4\xec\xb5\x33\x5c\x6a\x1f\xc1\xad\xc2\x8b\x70\xbf\xb4\x11\xee\x7f\x33\x8d\xe8\x57\x54\xf4\x67\x19\xcb\xe9\x34\xed\xab\xfe\xcb\x1e\x2f\x32\x31\xef\x47\xcf\x56\x4c\x87\x7a\x4f\x22\x54\x47\xfd\x49\xb9\xcc\xa7\x80\x48\x7a\x4d\x55\x44\xfc\xe4\x37\x54\x1b\xc3\x1c\x30\x49\x46\xf1\x27\xaa\x37\x2d\x18\x79\x20\x30\x68\x73\xab\x6e\xd3\xb7\xdd\x0d\x5f\x32\x80\xee\xda\x9c\x33\x4b\x3f\x51\xfd\xdd\xad\xb2\x53\x88\x88\xa8\x38\xf5\x0b\x6a\xe1\x88\x1a\x4c\x3b\x45\x2b\x00\x18\x8a\x6d\xac\x89\x32\xcf\x04\x93\x7c\xba\x8d\x4a\x41\xb3\xe9\x69\x91\xdf\xbb\x37\xf3\xac\x3a\x80\xd3\xc2\xbd\xba\xa1\x42\xb8\x40\x2c\xea\x5d\xe5\xbf\xd3\xa1\x17\xe9\x88\x7a\xf1\xf5\xbb\x95\x08\x62\xbd\x76\x1e\x3f\xed\x0b\x90\xf1\x97\xf6\x5a\x31\xec\xdd\xd9\xc0\xd4\x0b\xe5\xd1\xd5\x15\x8a\x1a\x05\x6d\xe5\xee\x46\x5b\x10\xde\x0b\xbe\x81\xd6\x65\xbd\x3e\xa5\x61\x57\x00\x60\xb1\xae\xa9\x17\xa1\x5e\x83\x4c\x98\xe5\x0c\xb6\x65\xcd\x3b\x0b\x9b\xc5\x0a\xc5\x29\x7c\x8f\xb7\x9c\x1f\xa6\xed\x8c\x82\x68\xb2\x76\x4e\x69\x59\x13\x1e\x98\xac\xc7\x41\x43\x99\x27\x9b\x2d\xed\x47\xdd\xdc\x2e\x5b\xd1\x32\x99\x64\x79\x1e\x6b\x4c\xa4\x2e\x73\x73\x4f\x46\xce\x5c\x62\x24\x4f\xfc\xba\x6e\xf4\x54\xdf\x19\x7d\x35\xae\x82\x44\xb1\x86\x49\xa1\x7b\x20\xf5\xdd\x03\x25\xbb\x3b\x2a\xc6\xd8\xe2\xf4\x87\x37\x42\xa1\xe2\x48\xe9\x40\x7d\xe1\xea\x44\x81\x47\xa3\x1a\x0b\xd5\x56\x6a\x14\x4e\xf2\x24\x0f\xf8\x41\x85\x67\xd5\xd2\x7f\x66\x4d\xc5\x14\xc7\xa5\xe4\x16\x59\x20\xc4\xe0\x8d\xd0\x7a\xfa\xbc\x0c\x64\x18\x19\xce\x11\x2a\x08\xf3\x5d\x72\xec\x1a\x5b\xe9\x56\xa6\x4b\x1c\xf6\x33\x9d\x28\x10\x75\x2d\xa1\x2c\xbc\xbd\xbd\x2a\xc8\xd2\xf5\xaa\xfe\x7f\xb8\x7b\xd7\xf6\xb6\x91\x2b\x4f\xfc\x3d\x3f\x85\x88\xf1\xc3\xa0\x86\x65\x98\xca\xce\xce\xee\x42\x5d\xd6\xaa\x6d\x39\x71\xd2\xbe\xc4\x72\x27\xd3\xcb\xe6\xd0\x10\x59\x14\x2b\x06\x01\x76\xa1\x28\x59\x21\xf1\xdd\xff\x4f\x9d\xba\x03\x20\x45\xb9\xdd\x99\x79\xfe\xfd\xa2\x2d\x02\x75\x43\x5d\x4e\x9d\xeb\xef\x78\x4b\x3d\xd3\xfd\x7b\x0a\xcd\x0c\xff\x39\xa6\x9a\x77\x46\x18\xec\xf8\x16\xd3\x01\x76\x1b\x3c\xf2\xa1\x16\x38\xee\x32\xe1\x23\xfc\x53\xcc\x54\x0c\x44\xa0\x78\x74\x8c\x41\x86\x70\x93\xad\x38\x96\x7d\xc0\x85\xce\xfe\x65\xce\x45\x48\x62\xcc\x71\x02\x6a\xfd\x41\x3f\x54\xf8\xd0\x60\x1c\xeb\xfb\xdb\x3b\xd8\x03\xb3\xbc\xbc\xbe\xa6\xfc\xca\x36\xde\x3b\xbc\x67\xcc\x43\xaf\x82\x41\x0e\x0a\x36\x4d\xaf\x6d\xc2\x33\x27\xc4\x06\x58\x07\xcb\x69\x3e\x21\x78\xe8\xd1\x8b\x4e\xa3\xe9\xdb\xc9\x60\x60\x62\xc8\x00\x03\x70\x30\x50\xee\x3b\xb0\x0b\xb4\x81\xaf\x36\x52\x41\x7f\xa4\x4c\x6e\xaf\x62\x84\x35\xe4\xde\xd4\xce\xaa\xdc\xbc\x3f\xc5\x25\x64\xe9\x76\xe6\xaa\xd6\xae\xcf\xdb\xbb\x3e\x43\x78\xdb\xd8\x9a\x1b\x8d\xef\x6f\x3f\x78\xd3\xde\x77\x39\xec\xbb\x0d\x78\xdf\x20\x5c\x1e\xb3\xc9\x72\x14\xda\x0a\xad\x15\xb8\x7b\xe1\x85\x8f\x16\xee\x5d\xdf\x2f\xb2\x42\x5e\xc3\xf2\xf2\x96\x1b\xe8\x69\x59\xe4\xf7\x27\x86\x3e\xc9\x8b\x5b\xd4\xd1\x49\x59\xe8\x1b\x3d\x3d\x79\xb2\x55\xbc\x6f\x51\xad\xb5\x2b\x67\xfd\x09\xd5\xad\x9d\x63\xa4\x06\x23\x6b\x6e\xf2\xbc\x11\x1b\xe2\x9d\x6f\x64\x3c\xce\x0b\xd0\x61\x04\xbb\xca\x8f\xac\xf2\x37\xae\x39\xd2\xf2\x7d\xad\x57\xce\xe7\x77\x70\xe9\x44\xd5\x22\xa0\x42\x02\x00\xf8\x5c\xff\x42\x2e\x99\x6a\x34\xad\xf4\x5a\x29\xa7\x02\xb3\x47\x18\xa9\xbc\xee\x20\x7a\x45\x4f\xbc\x2e\x77\x6a\xa7\xbf\x1c\x0c\x32\x15\x5e\x12\x17\x01\xf5\x00\x51\xf3\x07\xcd\x84\xca\x4f\x66\x2d\x55\x5b\x78\xd2\x8c\x92\xb1\x4f\x08\x6f\x8c\x5f\x05\xd3\x87\x5b\x44\xd8\xf4\xc5\xbc\xd1\xaf\x49\xa4\x8a\xd5\xf5\xd9\xe8\x55\x5e\xc4\x2d\x5f\xbc\x2b\xaa\x61\xba\x3e\x3a\x9e\xe7\x0a\x52\x09\xfd\xff\xf0\x2a\x51\x4b\x8e\x67\xa4\xc9\x15\x36\x6f\x8e\x96\xf9\x2b\xc3\xb3\xff\xa6\x97\x04\x90\x91\xc2\xe4\x7f\x7c\xe3\x56\xf1\x95\x26\x9c\x5b\x73\x5b\x58\x64\xb0\x4a\xb9\x81\x5b\x6e\x86\xfa\x4c\xab\xe2\x46\xed\xd1\xf4\x3c\x53\x75\x2d\x9f\xe7\xd5\x85\x1b\x4c\x4e\xab\x42\xf8\x5e\xd5\x59\x69\x90\x2c\xc5\x11\x35\x87\x34\xea\xd2\xd3\x0a\xa5\xe9\xde\xed\xb6\x75\x1a\xeb\x1f\x1a\x53\x4d\x25\xfb\xd2\x0b\xdd\x35\x66\xf5\x46\xde\xa6\x27\x4e\x53\x03\xec\xbc\x29\xe2\x29\xe2\xa9\x27\x5e\xbd\xa7\xe1\x57\xfd\x47\x4c\xd1\xb9\x0e\x0e\xbe\x02\x53\x3c\x7e\x43\x51\x4c\xc7\xa3\x09\xa4\x61\xc5\x14\x5c\xe7\x5d\x09\x1d\xf4\x2c\xbf\xf3\x82\x92\xf7\x34\xb9\x66\xc5\x5c\xa1\x75\xf5\x3a\x3c\x61\x2f\xcc\x81\x7c\x71\x78\x29\x9b\x5f\xe8\x5e\xa9\xf9\x2d\x0b\xfa\xb7\xac\xab\xa0\x79\x71\x70\x19\xb4\x91\xb0\xb9\x04\x0e\xaf\xc0\xae\x44\xcf\x2e\x84\xd9\x83\x9f\x8f\x96\x9e\xb2\x5c\xde\x9b\x84\x36\x05\x80\x4e\xee\xff\x0f\x60\x0a\xb0\x8b\xed\x69\xfb\x7f\x0d\xb9\xe9\x66\x23\x95\x42\xcc\x0d\x11\xd5\x48\xa7\xfe\x6b\xd1\xa6\xa6\x44\xb0\x97\x3e\xed\x76\x71\x9b\xaa\xfc\x29\xec\xc7\xe7\x46\x1f\x43\x55\xb4\x9c\xdb\x20\x28\x86\x79\x6c\x07\x66\x7b\x3d\x02\xb6\x84\xdd\x55\x0a\x21\x87\x0a\xf2\x81\xba\x1d\x64\x1f\xfe\xdd\x3f\x18\x1f\xe8\x57\xf3\x1a\xbf\x93\xbc\xc6\xef\x1e\xe6\x35\x9c\x2f\x1d\x6d\x7c\xc6\x52\x2b\x79\x20\xf8\xd5\x04\x9b\xab\x43\xf6\x72\x8f\x51\xe4\xad\x97\x82\x5d\x87\xe4\x02\xd3\xeb\xe2\xe9\x3c\xdb\xba\xa7\x76\xac\xd8\x3f\xcc\xa5\xd7\x57\xbf\xb4\xf4\x6c\x4a\x40\x3d\xa7\xf8\x0c\x63\xec\x23\x59\x21\x42\x9d\x6d\xdb\x18\xe7\xa2\xee\xee\xda\x18\x3b\x7d\x45\x92\x8d\x7f\xeb\x53\xdf\x27\xa0\xd5\x3f\xd3\xfd\x6b\x57\xaa\xee\x11\x18\x7b\x4f\x9f\x39\x64\x3c\x97\x98\xd9\xb7\xf2\xc0\xec\xed\x76\x5d\xaa\x67\x10\xcb\x9f\xfd\x7c\xf5\x2c\x11\xb4\x02\xed\xb3\xce\x9d\xdc\x69\xef\x9c\x72\x93\x99\xd3\xa6\xd7\x9c\x95\x9c\xfe\xc0\xae\x5f\x17\x73\xfa\x85\x8c\x00\xc1\x50\x45\x1c\xdc\x7f\x7f\x6f\xb2\x19\xb6\x92\xa9\xe9\x56\x30\x77\x89\xb4\x34\xa4\x0e\x08\xcb\x72\x65\xc7\xc5\x04\x52\x81\x04\xe8\x27\xe3\x62\xe2\x25\xab\xf3\xfd\x49\xc3\x86\xcd\xe4\x5a\x3e\xa7\x39\xa4\xdd\x2e\xe6\xa0\x83\x6e\x7f\xc4\x70\xe8\x52\x88\xe9\xd6\xb4\x7b\x53\x81\x47\x3a\x69\x3f\xc5\x1a\xee\x23\x15\x35\x72\xf9\xf3\x5e\xa8\x66\x64\x4f\x1e\xb6\x5f\x30\xe0\xfe\x08\xd5\x73\xfa\xa1\x99\x70\xcf\x66\x96\xeb\x18\x6b\x8f\xdb\x3c\x67\xde\x98\x8c\xa9\x81\xef\x1b\xad\x50\x39\xe6\xfc\x00\x90\x1f\xd4\xee\x7f\xa5\x0e\xd9\x0f\xb4\xe7\x47\x84\xbc\xa2\xf8\x15\x4d\xba\x3e\x25\x02\xfd\x79\x04\x99\x84\x81\x44\x28\x7a\xfa\x0f\xda\x02\x9e\x4d\x96\x59\xf5\xce\x29\x3c\xf1\x8f\xa0\x5a\xfb\x9e\x12\xe0\xdc\xd3\x11\x9e\x76\xc6\x77\xa5\xfd\x53\x2c\x59\x80\xce\x97\x4d\x74\xb0\xce\x42\x35\xae\xf6\xd6\xb7\xa0\x83\x15\x15\xc3\x21\x3e\xd0\x8a\xbc\x06\xf1\x1f\x61\xcc\x7f\xa5\x64\x3c\xe9\x05\x01\x3b\x7f\x55\xb3\xf7\x84\x76\x61\x77\x3a\x52\xf5\x0b\x55\x68\x60\xfb\x82\xd9\xac\x1f\x17\xc5\xa2\x15\xc7\xd5\x0e\xff\x55\xee\x55\x85\xef\x5e\x65\x52\xe5\x8c\x4b\xd0\x2a\xc6\x94\x64\xc9\x6c\x99\xf1\x17\xe5\x9c\x5e\x88\x78\x84\xd0\x73\xf2\xef\xff\x73\x30\xa0\xdf\x91\xff\x33\x32\xee\x94\x7f\x96\x3b\x22\x43\xbd\x0a\xae\x38\x6e\x42\xbb\x50\x5c\x49\x41\xc9\xbb\x1a\xfe\xa6\x32\xac\x04\x76\x56\xcf\x89\xcd\x1e\xd8\x8c\x08\xa7\x2b\x76\x81\x9e\x27\x0c\x02\xec\xb2\x09\x29\x70\xd8\x51\x21\xa5\xee\x42\x1e\xee\x7f\x50\xc5\xaf\x17\xb8\xb2\xd1\xb9\xc5\xb8\x82\xaf\x11\xe3\x72\x42\x2a\x9c\x0f\x06\xb9\x4b\x2b\x42\xc8\x4f\xd4\x53\xd6\x85\x11\x75\x39\x42\x61\x47\x39\xf6\x46\xe6\x7c\x7c\xa0\x49\x2f\x06\x0e\x56\x49\x45\x99\xe4\x08\xc9\x75\x60\xc5\x86\xf6\x18\xb0\x2a\x39\xc2\xf2\xc3\x73\xcc\x50\x5d\x9b\x6f\x26\x65\x8d\xe2\x31\xb5\xe3\x8a\xd1\x04\xab\xf8\x19\x40\x61\xb5\x53\xf6\x07\x6a\xd9\xf5\x7d\xbb\x40\x7e\x2a\x1d\x0c\x62\xb9\x5b\xf0\xfe\xb8\xc7\x53\x84\xe9\x6e\xf7\xc7\x80\x86\xfe\x95\xe2\x0e\xbc\xae\xbf\xd1\x18\x02\xc1\x7b\xb0\x7f\xbd\xf5\xfc\xc9\x0d\x26\x9c\xb7\x80\x67\x77\xe9\xc4\x77\xbb\xb8\x23\x8a\x11\x4c\x0b\x3f\xaa\x39\x93\x9f\x87\x7d\x48\xac\x66\x84\x23\x0a\xe1\xaa\x0a\x42\x7b\xf3\x12\x9c\x1a\x8b\x6e\x68\xaf\xb8\x40\x88\x10\x62\x58\x65\x47\x50\x76\xbb\x82\x90\x16\x99\x71\xce\x70\x87\x47\xb1\x15\xe4\x53\x5c\x6d\xae\xd5\x95\x56\x2e\x4e\x24\xeb\x82\x3e\x69\xa7\x28\x9d\x18\xd1\x39\x68\x3b\x64\xb5\xdd\x2e\x8a\xb5\x6d\x12\x45\xb5\x9a\xa9\xc6\x6e\xd6\x8e\x32\x81\x07\xf6\x9f\x0d\x57\xc5\xef\x8d\x5f\xc3\x58\x18\xa4\x55\xe3\xa6\xc1\x3b\xf4\xfc\x3c\x34\xb3\x5a\x1d\xfe\x60\xc0\xfd\x1d\x3b\x18\xf0\x7a\x96\x89\xd9\x32\x2e\x14\x4c\x7f\x2b\xc2\xf0\x89\xa2\x51\x7f\xa2\xf8\x2f\x94\x28\x99\xd4\x11\xe7\x59\x59\xcc\x32\x81\xb7\x5a\x4a\x4d\xff\x83\xd6\xaa\x8c\x23\x5e\xff\xaf\x65\x8f\xe2\x00\x39\x5c\x78\x88\xb1\x62\x4c\x21\xd8\x94\xb0\xf3\xbf\xe8\x83\xcc\xb0\x7c\x88\x52\xf8\x3f\xf6\x22\x1c\x34\x0b\x6b\xcd\x7f\x01\x54\x91\xe8\x19\x87\x62\x2d\xe1\x05\xbe\x73\x65\x58\x2c\x23\x6c\x4c\x27\xb8\x22\x9d\x71\xeb\x15\x8d\x33\x94\x66\x41\x03\xd5\x6e\x07\xfd\x55\x61\x43\x39\xa9\x3a\xfb\xcb\xc3\x62\x1b\xa5\x69\xe0\xc9\x1d\xcf\xd6\x28\x2e\x31\xa4\xff\x2e\x8c\x5e\x0b\x2f\x89\xd5\x71\x29\x67\x47\xbb\x15\x97\xe7\xf6\xcf\xf9\xb9\xd7\xc4\x1c\x2f\x51\xba\x4c\xe7\x78\xd6\x27\xa4\xdc\xed\x36\xb2\x80\x9a\xe6\x85\x6c\x38\x50\x47\xee\x76\xe3\x09\x5e\x13\x23\xa8\x26\x49\xb2\xc0\x60\x29\x99\x81\xa5\x64\x53\x3b\x4c\x8a\xb5\xa7\x01\x28\xdc\xdf\x78\xed\x09\xfb\x85\xfb\x5b\x3e\x07\x99\xaf\x50\xff\xe2\xb5\x2f\x3d\x17\xbe\x6f\x14\xa3\xf1\x1a\x5f\x51\x0f\x71\xd0\xb9\x93\x85\x0b\xeb\x6c\x2a\x72\x07\x34\xd7\xd7\x6d\x9e\x8e\xc5\x2b\xfd\x39\x12\xb8\x44\xa9\xd7\x0d\xd7\xdd\xd8\x08\x21\xb9\x07\x4a\xb5\x30\xab\xec\x33\xd5\x46\x7d\x86\xf4\xe6\x8e\x9b\x6f\x84\x85\x13\x38\x29\x5d\xb3\x45\x47\xb3\x40\xe1\x58\x1b\x10\x10\x7a\xcb\xfd\x5c\x25\x0c\x99\x0c\xf9\x8d\xbb\x7a\x43\x46\x67\x9b\xef\x6c\x62\xe0\x8d\xb9\xab\x67\xa4\x1a\x6f\x26\x78\x4e\xc4\x78\x36\xe9\x02\x5e\x98\x9f\xc7\x19\xe9\x8f\x70\x39\x9e\x4d\x88\x10\xf1\x0c\xcf\x31\xc3\xdb\x1a\xa1\x14\x1e\xcd\xcd\x0a\x64\x10\x68\x33\x05\x19\x9b\xf0\xe4\xc3\xbb\x77\x1f\x11\xf6\x3e\x8c\x89\x10\x3d\xce\xdd\x1b\x15\xf9\x7f\x34\x8e\xd4\x2c\xd1\x22\x73\x6a\x44\x46\xab\x48\xaf\x24\xce\xa1\xd0\x8a\xf2\x9b\xce\xd7\x9b\xe6\x07\xcf\xc8\xe8\x6c\xf6\x9d\x71\x8c\x3a\x9b\x99\x0f\x9e\x93\xcd\x78\x36\xc1\x4b\x22\xc6\xf3\x10\xe3\x7b\x09\xdb\x05\x5c\x94\x4b\xcb\xc3\xce\x11\xda\x6a\x30\xda\xb9\xe2\x2d\x17\x84\xb6\x9c\xd8\xe6\xa1\x6f\xed\x42\x75\xb5\x26\xc5\x78\x3e\x21\x4c\x76\xd4\x31\xb3\xeb\xc1\xa0\x14\x31\xc3\x73\xbc\x06\xfd\x2f\x30\x03\x5c\xd6\x58\xe0\xcc\x74\x89\x17\x4e\xdd\x2a\x8b\x6a\x8d\xcf\xaa\x8b\xd6\x80\xc4\xb6\x52\x7d\xdf\x92\x8a\xc6\xcb\x50\xc5\x79\x8b\xb6\xd0\x3c\x15\xf2\xc0\xe3\x5b\xcc\x11\x86\x11\x6a\xd3\xb0\xe1\x33\xea\xba\x1a\x0c\x2a\x6f\x0a\x9e\x93\xd1\x6e\xb7\x6f\x81\x08\xe0\x0d\xb5\x57\x46\x3e\x3f\x5f\x12\xae\x3a\x2b\x50\xaa\x98\x1c\xd7\xe8\xd3\xd3\xf3\x25\x29\xec\xeb\xd5\x60\x10\x2f\xe5\x0e\x83\xdf\xa0\xe0\x86\xc1\x2d\x31\x77\x63\xf4\xb9\xc1\xd2\x3b\xe7\xf6\x34\x70\x0b\x34\x62\xf0\x9b\x3c\x58\x94\x66\x2c\xc3\x6d\xc6\xb7\xa6\x78\x95\x66\xd8\x42\xb2\xa6\x55\x4d\xca\x30\x66\xc7\xf2\xc6\x39\x61\xe7\xd3\xf4\x4e\x9f\xa8\x0c\xc2\x15\x83\x73\x95\xc7\x14\xeb\xc7\xf2\x68\x29\x48\x0c\x6c\x60\x47\xfc\x46\x1d\xc3\x3d\x23\xec\x7c\x91\xae\xf1\x9c\x8c\xce\xe6\xee\x98\xce\x87\x43\x34\x8b\x29\xae\xc6\xf3\x89\xc3\xd6\x70\xfe\x98\x42\x85\x19\x78\x80\xcd\x1d\xfc\x3f\xce\x3a\x9f\x56\x0d\xe5\x56\x2e\x05\xe7\x8d\x12\x2d\x82\x53\x8c\xdb\x7e\x8d\x0a\xfd\x31\x88\x6c\x80\xd9\x10\xfe\x3c\x48\xbe\x96\x08\xa0\x2e\xc2\xb0\xb2\xf2\x84\x41\x9c\xb7\x82\x4f\xf7\x99\x5b\x9e\x58\x2c\xf6\x1c\x4e\xda\x76\x6d\x37\x53\x3a\xc3\x0a\x04\x3d\x9d\xd7\x24\x77\x76\xb0\xd9\x39\x13\x31\xc7\x33\x6f\x4c\xa9\xbb\xe1\x06\x83\x98\xc6\xf3\x60\xc4\x8e\x37\xcc\x93\xe9\x1d\x13\xcb\x72\x23\xe4\xb6\x34\x7f\xdb\x40\x58\xaa\xc3\x65\x05\xc9\x3c\xe8\x8b\x33\x85\xe7\x3c\x18\x64\xbe\x28\x2b\xe5\x6c\xc5\xc9\xcb\xc1\xe4\x5e\x77\xb5\x94\x23\xe0\x6f\x0a\x50\x5e\x3d\xb7\xde\x92\x3a\xe5\x2d\xea\xb4\x24\xb9\xa4\x4e\x0b\x92\x8d\x97\xf2\x92\x2d\xc7\x4b\x20\x52\xf3\xe4\xe2\x87\xd7\x17\x57\xd3\x37\x97\x1f\xff\xf8\xee\x25\x6c\x9b\x33\xfb\x29\x8b\xc1\x20\x17\xf1\x02\xd9\xf8\x91\x3f\x49\x56\x69\x01\x44\xb6\xb7\x26\x2b\x80\xc1\xc2\x0b\xb2\x52\x8a\xbe\xda\x55\x3c\xef\xf2\xcf\x58\x00\x5d\xa2\x78\x89\x17\xb8\x3f\x42\x18\x5c\x1a\xe5\x0f\xf8\xf8\x8d\x9d\x8e\x25\xc2\x7d\x86\xbc\x09\x5f\x0f\x06\x0b\x55\x76\x2d\xbf\xdd\x43\x9e\xe8\x76\xc4\xc4\xb4\x0e\xbf\x6b\x30\x88\xff\xb4\x17\x3a\x10\x92\x7f\x2b\x90\x57\xc9\x75\xe2\x8c\xf0\x71\x29\xb9\x2e\x10\x36\x9b\xb2\x42\xe6\x19\xbf\x2a\x8b\xf6\x2b\xb9\x71\xa6\x9c\x51\x4b\x84\xe4\xcd\xc6\xb0\xf1\x79\x47\x69\x6c\x9c\x58\x71\x45\xe8\xb8\x9c\x20\x84\xb7\x72\xea\xd2\x4c\x3b\x5b\x56\xb5\xd6\xd7\x56\x02\xe7\x02\x6f\x04\x9e\x09\x3c\x17\x4d\xdf\x71\xc5\xd3\x2f\x45\x33\xc5\x1b\xda\xce\x85\x53\x36\xdb\x9c\x2d\x6d\xb4\xae\x90\x6f\xa1\x5e\xc6\x7f\xff\x92\xa3\xa8\x4b\xd8\xf2\xc0\x91\x31\xf3\x44\x1a\x4f\xf7\xe1\x6e\x2e\x85\x68\xe0\x22\x2c\x65\x41\x4f\x98\x05\x7d\xf1\x6e\xb7\xcf\x5b\xb5\x30\x08\xae\xff\x2f\x66\xa8\xf6\x82\x2e\x20\x3a\x41\x7e\x9d\xce\x8b\xb3\x10\xb1\x36\xcf\xa8\xbc\x75\x2f\xdc\xbc\x84\xae\x4a\xfa\x14\xda\x98\x83\x20\x6d\x9a\x32\x97\x48\x19\x72\xd4\xca\xe6\x4c\x8d\x8d\xd2\xd4\x59\xd9\x14\x0b\xb7\x06\x25\x29\xf4\x4f\xc7\x85\x24\x75\x01\x94\xa2\xf2\x75\x6c\xe4\x68\x20\xcf\xb7\xd4\x5b\xa5\xdd\xae\xb0\x3e\x35\x08\x17\xb5\xca\xfe\xa6\xc7\xc6\x16\x31\x2c\x98\xb1\x6a\x58\x2b\xa7\xab\x6f\x35\xc5\xf4\xee\x64\x29\x62\xff\xeb\xbd\x42\xbd\xe6\xde\xf0\xcb\xe9\x49\x1d\x8b\x89\xa2\x3a\xde\x43\x93\x9f\xc1\x14\x71\x9c\xb8\xff\xd8\xfb\xdb\xf0\xa6\xb0\x42\xda\x74\x53\x2b\xc0\x40\x70\x9a\x3f\x0d\xc1\xbc\xc6\xb2\xc0\x44\x5e\x42\x50\xe6\x7d\xc6\x05\xcb\x72\x4f\x9d\xeb\x95\x42\xf5\x9c\x0a\x3a\x13\x7a\x3b\x77\x39\x34\xea\x69\xa7\x0e\x3b\x51\x92\x3a\xa1\x5d\xf8\x51\x23\x1e\xc4\x5c\x3f\x36\xb7\x0c\x38\xa9\x36\xb2\xb2\x40\x13\x85\x3a\x65\x08\x0b\x0f\xd7\x4d\x7b\xa7\x31\x49\x45\x54\x42\x0d\xb6\x88\xbd\xc0\x84\xaa\x5c\xd1\x58\x90\xe7\x06\x05\xd6\x4c\x5d\xff\xb4\xd6\xa6\x0d\xd4\xdb\xb3\x97\x1a\xbe\x9e\x10\x0b\x6a\xef\x38\x65\x59\xd2\x3b\x3b\x70\xd7\xd2\x7b\x40\x4f\x57\xcf\xd9\xc0\xcc\x31\xa0\x58\xd4\x70\xd4\x5b\xb1\x31\x6a\x2e\xcc\x4c\x1c\x9e\x93\x70\x46\xfc\x6d\xe6\x82\x25\x03\xe6\xd9\x2f\xa2\x95\x7c\xcc\x57\xf2\xc1\x4d\x1d\x33\x49\x21\x95\x06\xcb\xcc\xe8\x60\x60\xfe\xb2\xf7\x68\xc7\x84\x9e\x70\xad\xb6\xa8\x9d\xb2\xca\x78\xa0\x1b\xd5\x86\x3a\xbf\x28\xf2\x98\x1d\xd8\xa2\x06\x64\x75\x30\xa0\x36\xcf\xff\x08\x5b\xe7\x46\x79\xde\x9e\x8f\xd0\x56\xcd\x8c\x81\x57\x6c\xa6\x00\xf0\x41\xf1\xe9\xb8\x98\xf4\xf4\x96\x63\xe8\x9c\x8f\x8b\x09\x61\x29\xfc\x13\x1e\x51\x66\xd1\x33\x4f\x78\xcd\x16\xb1\x01\x3a\x5a\x0a\xbc\xf4\xd5\xcc\xc2\x43\xfe\x6a\xdc\xda\x4a\x28\x68\x5d\x17\xb9\x20\x94\x3c\x5f\x9b\x6d\x8f\x2b\x41\xe0\x06\xe9\xcc\x6f\xe6\x2e\x40\x42\xf1\xda\xbb\x4e\x7c\xce\x78\x25\x1c\x41\xea\xff\x87\x3c\x4a\x66\xde\xc6\xa3\x09\xe6\x44\x9c\x8b\x84\x19\x67\x2a\x97\x56\xb3\x80\x17\x8a\xa4\x9b\xaf\xee\x86\xd1\xbe\x15\x0a\x8b\x65\xeb\xb7\xc2\x77\x3b\xb0\x73\x16\xa8\x9e\x20\x3f\xfc\x88\x21\x6c\xec\x40\xb2\xa6\x1f\x81\xa1\x1a\x82\x28\x7b\xe3\x70\x29\x28\x4f\x4b\xac\xbd\x69\xb2\xda\xf3\xa9\xa0\xf3\x97\x19\xa0\x19\x62\x76\xce\x3a\x3e\xc0\xd3\x74\xe7\x56\xb1\x58\x06\xca\xc4\xb8\x19\xc7\xde\xe9\x88\x4f\x1f\x76\xc4\xa7\xc6\x93\xce\xd3\xb1\x6d\xe4\x2a\x65\x46\xfd\xd6\x01\x92\x01\x6f\x34\x4e\xc6\x8c\x34\x70\xbb\x9a\x81\x1f\x3a\xce\x80\xce\x0d\xa8\x57\xae\xd5\x2b\x8d\x20\xb6\x4d\x13\x32\xb7\x15\x98\x57\x80\x1e\xf8\x46\xc4\x92\x05\x45\x78\x56\x87\x90\x5d\x1b\x81\x5b\x6c\x58\xb3\x44\x27\xfe\x30\xbd\x3b\x51\x76\x39\x84\x0f\x01\x84\xcd\x0c\x47\x74\xd3\xc1\x11\x59\xd3\x12\xf1\x7c\x7c\x89\x68\x5b\xe5\x1b\xa6\x96\x1b\x2a\xb4\x63\x0d\xf2\xad\xd1\xb6\x09\xcf\xeb\xa6\xde\x0b\xfa\x0f\xcc\xc8\x71\xa0\xff\x9d\xd8\xfe\xdf\x38\x59\x28\xb5\x30\x8e\x1d\x50\x7d\x40\xa8\x1a\x79\x39\x28\x68\xd5\xad\x06\x4c\xa1\xe2\x35\x1b\x90\xe3\x92\x95\x89\xc0\xb2\x3c\x81\x72\xef\xfe\xf6\xf6\xf2\x03\xa1\xc9\x0f\x97\x7f\xb8\x78\xf1\xd3\x54\xfd\xf4\x3c\xc4\xf5\x25\xd7\x81\xe2\xe2\xd7\x00\xf8\x96\xa0\x09\xae\xb5\xea\x61\x4a\x47\x57\x58\x95\xda\x9f\xb6\x95\x97\x1b\xc1\x8a\x9b\xe3\xd6\xc4\x14\xce\xd9\xf5\x33\xfa\x45\x3c\x73\x89\x82\x1f\x2c\x9e\x97\xb3\x4c\x4e\xcf\xb3\x6c\xcd\x8e\x2f\x5c\x94\x05\x9d\x9a\x5f\xc7\x57\x5b\x66\xd5\xf2\x6b\xaa\xb1\x4a\x94\xfc\xfe\x2b\x6a\x66\x1b\x51\x1e\x5f\xad\xba\xaf\x04\x5d\x3d\xbb\xa1\x05\xe5\x99\xa0\xd3\x47\x4c\xa3\xae\xea\x6a\x4c\x17\xe5\xd1\xb5\xe6\x55\x7e\x6c\x51\xf9\xe8\xf8\xe1\x40\xe9\x63\x0b\x43\x86\xe3\x29\xe4\x46\x7f\x78\x97\x55\x94\xdf\xb2\x19\xb5\x0f\x1f\x57\xe1\x11\x13\x0a\x38\x94\x47\x25\xde\xc0\x0b\xbc\xc6\xab\xdf\x2c\x4f\xf1\x0f\x76\x17\x1d\x05\x33\xc9\x8d\x1d\xfe\x20\x74\xe5\xdb\xb2\xa0\x8f\x6c\xb8\x38\xaa\xe1\x3f\x66\xd5\xf2\x91\x0d\xb3\xe3\x1a\x56\x67\xf1\x91\x6d\x97\x47\xb5\x7d\xb1\x11\xe5\x23\x1b\xce\x8e\x6a\xd8\x9c\xe8\x17\xde\x81\x3e\x12\x2c\xf4\xeb\x9a\x7f\x95\xc9\x8b\xfd\xfe\x11\x38\xa7\x7b\x5a\x38\xd8\xaf\xa3\x36\xaf\xca\x63\xbf\x28\x3f\xea\x8b\x3e\xc0\x21\x7d\x79\xf5\xc3\x91\xad\x6e\x1e\xd1\xea\x91\x4d\xce\x8e\x6f\xf2\xc8\x16\xe7\x47\xb5\xf8\x17\x49\x06\xdf\x6b\x2a\x78\x54\xbb\xcb\xa3\x47\xca\x8a\x9b\x2b\x45\x07\x8f\x6c\x7a\xf1\x88\x79\x7d\x5c\xcb\xeb\xa3\x5a\xfe\x7e\x33\xfb\xac\x93\x02\x1d\xd9\xee\xca\x6b\xf7\x41\xe6\xa6\x8b\x5f\x79\x38\xe5\x94\x77\x59\xba\x8a\xd0\x96\x77\xfd\x82\xd8\xfc\xe0\x2d\xa3\x98\xd9\xdf\x24\x75\xb8\x9e\x06\xa3\xb0\xb2\xf7\x41\xa2\x15\x65\xdb\x6e\x2b\x52\x3a\x8e\x7e\xf1\x76\xe0\x04\x7b\xbf\x20\xfc\x1f\x4f\x7f\x59\xbf\xa4\x39\xbd\xc9\x04\xb5\x0f\x14\xb6\xd6\xdc\x07\xe8\xf0\x50\x16\x00\xd1\x00\x33\x83\xd6\xc6\x53\xae\xb1\x86\x46\xb8\x00\xff\x5c\x9a\x78\x8d\xa2\x98\x29\x39\xea\x86\x0a\x04\xe1\xac\xa8\xc6\x82\x67\x45\xc5\xe4\x0c\x7d\x2c\x61\xbb\x79\xfa\x1b\xcd\x22\x43\x71\x10\xec\x22\x95\x8f\x2c\xb2\xb2\x26\x4f\x5a\xf5\x77\xbb\xf0\x21\xd2\xd9\x39\xc0\x11\xb7\x48\xd6\x9c\x2e\xd8\x17\x28\x29\x45\xfc\x0b\x7e\xe3\xbc\x39\x6a\xac\xe1\x1a\xbe\x66\x20\x7e\x55\x39\x06\xfd\xfb\x6f\x4c\x2c\x1f\x33\x84\xda\x80\x48\xda\x75\xed\xb9\x25\x67\x47\x6d\xfc\x90\xf3\xee\xd8\xf6\x1d\xa2\xd5\xb7\xde\x96\x3a\x08\x76\xab\x15\xcb\xa1\x5a\x89\xad\xd6\x2a\xff\x08\x0c\xd3\x78\x3f\x86\x4f\x2b\xe7\x3b\x73\xc2\x13\xa7\x9f\xb6\x7e\xed\xa8\xc6\x8d\x1a\xe9\xb6\xae\xbd\xc9\x12\x8f\x9c\xac\x90\xa3\x3f\x4c\x2d\xae\x79\x79\x57\x51\xfe\xb4\x33\xcd\xdc\x7e\xaa\xd2\x4a\xfc\xd6\x49\x46\x5c\x4a\xba\xaf\xcf\x7f\xd7\xf9\x89\xb2\xf6\x21\x96\xf7\x9b\x48\xd7\x9a\x8f\x83\xf4\x66\x33\xfd\x28\xab\x96\xf0\x7b\xde\xde\x27\x4a\x6f\x91\xdb\xb8\x03\x96\xa8\x6e\x1b\x0e\xc8\x2a\xf8\x20\x58\x7f\xdc\xb1\x6b\x48\x24\x97\x31\x32\x7a\xf1\x20\xa1\x3e\x2f\x4b\xf1\xe3\x87\x1f\xb0\x68\x8a\xfe\x5b\x33\x41\xa9\xc0\x9b\x8a\xf2\x8b\x1b\x5a\x88\x94\x63\x2d\x1d\xa6\x05\x9e\x97\x33\xe8\xf4\x4d\x39\xa7\x29\xc3\x2a\xf0\x23\x2d\xb1\x6e\x32\xcd\x6a\x42\x71\x4e\x22\x29\xbd\x46\x78\x43\xfa\xa7\x0a\x32\x0b\x70\xe6\x5f\x6d\xf2\x5c\x7e\x3d\xd2\x19\xd5\xe1\x79\xb5\x59\xc3\xee\xd2\xb3\x85\x20\x26\xc9\xb8\x03\xcd\xe2\x0c\x0b\xd4\x5b\x12\x42\x16\xe7\x39\x89\xf4\x40\xa2\x34\x7a\xf6\x2f\x11\x21\x64\x69\x90\xc1\x46\xf8\xf7\xe8\x3c\x2e\x0c\xad\xb9\x12\xf2\x90\x40\x92\x8c\x74\x51\xe3\x28\xc2\x0b\x84\xbd\xfa\x28\x8d\x37\xa4\x3f\x52\x6a\x33\x5d\x47\x8f\x0c\x2f\xac\x85\xb5\x39\xc2\xac\x5a\xaa\x5b\x40\xd2\xef\x12\x19\xc7\x8b\xb9\x1b\xe4\x7a\xb7\x8b\x9e\xc1\xc0\x06\x83\xe8\xd9\xbf\xc0\x9f\x6b\x18\x78\x56\x2d\xa3\x03\x9d\xae\x11\xa0\x91\x6d\x9c\x69\xc1\x30\x93\x75\xec\xad\x8a\x5c\x3d\xf3\xcb\xae\x0a\x3c\xd5\x3f\xbc\x65\x83\xc7\xf6\xa7\x5d\x21\x1a\xae\x21\x94\xf2\x9f\x98\x35\x85\x17\xea\xef\x1a\xf5\x54\xd8\xba\x42\x20\x01\xef\x3f\x43\xfe\x67\x59\x31\xa3\xb9\x61\x8f\xc4\x66\x1d\x81\x1d\x57\xe8\x2d\xe0\x01\x01\x17\xcd\xc4\x21\x26\x3f\x48\x64\xbf\x2f\x1a\x0a\xb8\x2c\x75\x0f\x0c\x47\x7a\xd4\x91\xd6\x71\x86\x5d\x97\xc5\x8c\x53\x41\x5f\x07\x1b\x3f\xc2\x0c\xd5\x77\x2c\xcf\x35\xbc\x86\xda\xfa\xdb\xee\xc2\x29\xd5\x11\x94\x40\x8d\xe7\xa6\x46\xdd\xd0\xb3\x36\xc1\xc2\x6c\x12\x95\x7d\xcd\x72\xdd\xac\x0d\x94\x2b\x13\xc1\xef\x5f\x17\xb7\xe5\x67\x2a\x77\x38\x0d\x7d\x2b\x66\x5e\xb4\x3e\xd6\xa1\x40\x70\x62\xcc\x69\x31\xd1\x40\x9a\x84\x20\x15\x15\x6a\x1e\x01\x3f\xad\x0e\x95\xe7\x3f\x60\x5c\xcd\xd4\x2e\x2c\xc3\x93\xc2\x49\x5c\xb8\x67\xa7\x16\x09\xea\x5f\x22\x84\x12\x95\x74\x18\x61\xb5\x95\x19\x38\x55\x5f\x88\xd8\x66\x18\x3b\x85\x90\x4e\x8b\x0d\x15\x9f\x22\x84\xd9\x90\xf0\x61\x66\x51\x4e\x07\x83\x98\x0d\x49\xf4\x2f\xd1\xb0\xd0\x3e\xc8\xb2\x65\x94\xb2\x21\xc9\x86\xa5\xef\x1a\x39\x0f\xf0\xaf\x70\x41\xd4\x64\x98\xb6\xad\x7d\xd3\x7c\x4e\xa4\x53\xa3\x47\xcf\xe0\xaf\xf1\x68\x02\x01\x0c\xd1\xb3\x68\x58\x20\xcc\x75\xa7\x08\xf3\xda\x51\xd8\x1c\xe7\x96\x27\x34\xe7\x20\x7a\x16\x61\x56\x30\x01\xa4\x22\xdd\xc4\x91\xfd\x11\x21\xc9\x78\xcb\x32\x9b\x38\x52\x7f\x45\x00\x7c\xa6\x1f\x55\xe6\x91\x3e\xc3\xfa\xb1\xfb\x15\x21\x5c\x16\x80\x4c\x68\xde\x79\x3f\x23\x84\x17\x25\x5f\x65\xa6\x35\xfb\x23\x42\xd8\x1d\xf4\x8e\x53\x6e\x8f\xb8\x39\xa0\xc9\x1d\x2b\xe6\xe5\x9d\x7f\xe4\xbd\xf3\xde\x3a\x98\x0a\x9d\xff\x51\x9c\x40\x43\x99\xf8\x28\xb9\xe1\xd0\x3d\xee\xa5\x9f\xfd\xb5\xf7\xf5\x37\x67\xd7\xb4\x93\xb4\xbd\x86\xf9\xaf\xbc\x86\x81\xf2\xd7\x72\x73\xc5\x00\x71\x2e\x7c\x12\xe6\xe6\x56\x19\x13\xcc\xef\xdd\x4e\xad\xad\xdd\x06\xc8\xc1\xb0\x2c\x15\x36\xef\x1f\xb3\x62\x9e\x5b\xa8\x95\x5a\x53\x86\xd8\x83\x8e\x65\x1e\xb9\xf0\x2f\x0e\x30\x72\xfc\xf8\xe1\x87\x90\x29\xb0\x0d\xb8\x53\x8d\x85\x45\xae\x54\xa7\x4d\xa8\xd3\x26\xe4\x69\xc3\x54\xfe\xa5\x8e\x1b\x98\xf3\x6b\x75\x2e\xac\xf5\xd0\x74\x97\xc8\x31\x13\x8a\x5b\xdf\x9e\x55\xe2\x8a\x1a\xea\x5e\xbb\xe3\xd3\x6e\xc1\x60\xc7\xa9\xbe\x1e\x6a\xc9\x3b\x6c\x2e\xe8\x45\xc1\x42\x42\xaa\x4b\xe3\xac\x17\xef\x9f\x54\xb8\xae\xae\x59\x31\xd7\x5d\xc4\x9e\x14\x7e\xeb\xb2\xc8\x9b\x79\x54\x2e\x14\x6e\x18\x3a\x07\xf6\xa1\x71\x2a\xbf\x38\x1a\x73\x04\x67\x52\x2f\x77\x36\x9f\x87\x43\x8c\xdc\xd8\xa2\x7d\xa3\x05\xc0\x15\x45\x43\x3c\x7c\x35\x39\x55\x8d\x7b\xf0\xc0\x4c\xd4\xdd\x8f\xb7\x7b\xba\x1c\x0c\xf4\x80\xbb\x6a\x1d\x37\x66\x8f\x3c\x97\x8f\xa4\x4a\x2d\x5b\xc5\x37\x23\x4c\x5f\x4b\x87\x7e\x13\xa1\x91\x91\xfe\xa9\xb3\x32\x97\xce\x71\xe1\x8b\xfe\xef\x29\xfc\xef\xdf\xe4\xff\xee\xcd\x4f\xf3\x5f\x64\x0f\xcd\xb3\xf1\x97\xfb\xc9\xb3\x9b\x50\xc6\x55\xc1\x2c\xc6\x9a\x47\x4e\xff\xfd\x5f\xdf\x64\x62\x99\xf0\xac\x98\x97\xab\x18\xed\x46\x38\x8e\xbe\xc8\xdb\x9f\x9e\x8b\xf4\x7f\x0c\xc4\xee\x7f\x23\x17\xee\x73\xfa\xef\xe0\x86\xa8\x28\x65\xf6\xed\x28\xa5\x66\xce\xb1\x2f\xa4\x48\x52\xd3\x45\xdc\x8a\xbd\xc4\x4d\x93\x5a\x6d\x9d\x6d\x77\xde\x53\x44\xcf\xf0\xbc\x09\x68\x7f\xae\x68\x4e\x61\xbc\xd1\x75\x56\x49\x0e\x80\x93\x28\x32\x69\x1d\x80\x39\x5c\x66\xd5\x85\x10\x9c\x5d\x6f\x04\x8d\xa3\x25\xa7\x8b\x48\xb1\x41\x20\xd8\xb5\x5e\xb5\xa9\x94\x6c\x18\x8e\x3e\xef\xa0\x60\xe1\x3d\xf0\xe0\x35\xb0\x2e\xd7\x95\x64\x55\x1a\x97\x80\x65\x61\x42\xd2\xae\x27\xd6\xb6\xa6\x7f\x9f\x35\x47\x61\x17\x40\xa5\x7f\xdd\x42\x17\x92\x97\x95\x6c\x19\xb4\xe4\x08\x4d\x40\xff\x20\x36\x53\xe5\x9b\x01\xf5\x97\x1e\x24\xa7\xb7\xac\xdc\x54\x72\x15\x83\xe2\xa9\x8e\x07\xf5\x44\xb5\xc6\xa5\xe4\x44\x1e\x6a\x05\x17\x81\xf5\x0c\x1a\xee\x1a\x17\x44\x25\x70\x29\xb2\x15\xed\x09\x22\xdc\x96\xff\xf9\xd9\x93\x67\x38\x82\x65\xe4\xed\xa7\x36\x1b\xb3\x79\x53\xd0\xbb\x93\x0f\xf4\xe6\xf2\xcb\x3a\xfe\xf4\x9f\x4f\xb6\xbc\x8e\xcf\xc9\xb3\xdd\x13\xf4\x09\xc9\xe2\xfb\x8a\x89\x3d\xc5\x9e\xfd\xfc\xec\xe7\x67\xcf\x6e\x24\xfb\xec\xb2\x9d\x0c\x49\x4c\x93\x0a\x72\xc7\xed\x76\x51\x84\x86\xe1\xa5\xeb\x5d\x9e\x6e\xe6\x45\x1d\xac\x5f\x8f\x36\x17\x81\x22\x2c\x06\x03\x61\x26\x9e\xea\x54\x8c\xeb\x4d\xb5\x54\xd3\xda\xba\x57\x7f\x7d\xe3\xc1\xb2\x51\x54\xfb\x9d\x69\xd5\x96\x92\xbb\x29\xde\x6c\xd8\x3c\x2d\x63\x54\xf7\xfc\x9e\xbc\xe1\xa9\xe0\x77\x4c\xed\xb6\xde\xb7\x63\xea\x46\xaf\xc7\x75\x14\x54\x3a\xbe\xaf\x47\xf3\x0f\xcd\xd3\x08\x00\x0c\x31\x83\xf4\xd6\x06\xfa\xda\xb4\x6e\x11\xa4\xbc\xfe\x11\x1a\x0c\x68\xe3\x44\xd5\xfb\x59\x02\xd3\x5d\xd4\xdd\x7d\x83\x1d\x90\x2b\xbe\xf7\x08\xf9\x42\x15\x3d\x8f\x1f\x71\x86\x50\xaa\xa4\x43\x0e\x2c\xa1\xfa\x5b\xb3\x87\xdd\xe5\x31\x1f\x8a\x6f\xc7\x91\x34\xbe\xf9\x30\x3f\xf2\xe0\x84\x79\xbc\x48\xf6\x38\x5e\xa4\xe1\xa5\xf1\xcd\x18\x91\x4e\x9f\x1f\xcc\x7f\x23\x69\xa7\xf8\x66\x77\x38\x28\x7d\x02\xa5\xa3\xdd\x7c\x5a\xd5\x12\xd2\x79\x7d\x80\xed\x06\x0d\xb6\xe5\x49\xf7\x7e\xa4\x47\x12\x64\x8f\xa6\x36\x6f\x3a\xd9\xed\x5e\x59\x41\x81\x9b\xbc\xc8\xf2\xfc\x3a\x9b\x7d\x26\xb4\x5e\xc2\x3e\x79\xa0\x29\xdc\x51\x57\x83\x21\xee\x39\x8c\x1d\x47\x50\x21\x1c\x74\x9d\x1e\x79\x76\xbc\x6d\x5a\xe0\xc2\x6a\x34\x60\x0e\xa3\x08\x7b\x9a\x8d\xc7\x0a\xfa\xc0\xd7\x7a\xbb\xf7\x90\x45\xc4\xc5\x3e\x7a\xc6\x0c\x77\x0f\xef\x93\x17\x87\x90\x45\x20\x84\x8c\xb4\xd8\x4d\xea\x62\xf4\x02\x13\xbd\xb7\x2e\x36\x01\x24\xc9\x73\xf5\x8f\x55\x67\xa1\x34\x8a\xbc\xc0\x3f\x7f\x4c\x25\x67\x37\xac\xe8\xb9\x68\xe6\x58\x90\x4f\x4f\x94\x8b\xbd\x28\x67\x65\x5e\x3f\x7b\x26\x7f\x2e\xcb\x4a\xc8\xb1\xd7\x9f\x30\x4d\xe4\x04\x68\xc9\x36\x8d\x86\xea\x37\x88\xb7\x5f\x67\x04\x00\x6d\xbf\x50\x7f\x83\x9e\x8e\x70\x67\x0a\x20\x85\xfa\xdb\x28\xc6\xbb\x3c\x1f\xe5\x2c\x0f\xe5\x6c\x0d\x0b\x9d\xf4\xf7\x86\x8a\x77\xf0\x65\x84\x41\xae\xb9\xa6\x76\xba\xdb\x8d\x16\x70\x55\x0b\x4f\x34\x63\xf0\xcc\x05\x12\xd2\xdd\x8e\x3e\xff\x5f\xd0\x43\x43\x27\xdf\xce\xed\x1e\x43\x78\x8e\x07\xf4\x7d\x51\xcc\xb9\x6c\xe8\xf7\x49\x84\x76\xbb\x7d\x6f\xff\x2d\x19\x45\xf2\xb2\x6b\xbe\x7f\x53\x5e\xb3\x9c\x9e\x5c\x65\x8b\x8c\xb3\x08\x0a\x90\xa0\xc0\x8b\x25\x2f\x57\xb4\xeb\xcd\xdf\x80\xee\x57\x27\xef\x97\xa0\x6e\x6e\xe9\xcf\x4d\x42\x5e\xf9\xf9\x96\xf1\x80\x6f\x87\x2f\xf5\xd4\xf0\x4d\x37\x46\x7b\x0a\xe5\x9e\x1a\x42\x9e\xe9\x23\x8e\x54\xcb\x09\xeb\x01\xb7\xc2\x6e\xc2\x6f\x7f\xaa\x40\x86\x67\x33\x8d\xac\xe5\x5e\x54\xc6\x15\x21\xfa\xbf\x37\x39\x5b\xad\x28\x7f\xa6\xd1\x9a\x8e\x70\x8a\xdb\x6b\x93\x37\xd1\xb2\xdd\x07\xbe\xf2\x37\x94\xbe\xf2\xcf\x69\x4a\xcd\x59\xb4\x98\x18\x56\x69\xfb\x35\x87\xe6\x41\xb3\x98\x2e\xb0\xd5\x82\x9e\x02\xda\x82\x1f\x1d\x17\xd4\x54\xad\x43\x52\x16\x71\x04\x7f\xfa\xa9\xb4\x28\x79\xae\x48\xbe\xe0\xec\xe6\x46\xb2\x0a\xed\x22\xa8\xde\xd7\x92\x97\x70\x6b\x4f\x43\x7e\x09\x54\xa3\xda\xb7\xc6\x3b\xaf\x79\x9d\x6f\xb6\xa2\xab\xeb\x9c\x02\x3f\x08\x48\x6c\x28\x44\x29\xd4\xbd\x4f\xe7\xe5\x8f\x1f\x7e\xf8\x68\x1b\x8a\x23\xbf\xd1\x08\x43\xcd\x9e\xba\x67\xb4\x59\x3d\x15\x78\x55\xce\x69\x5e\xa5\x3c\x74\x75\x00\x7f\xf7\x2c\xa1\x5f\x04\xcf\x66\x02\x54\xc5\x17\xfc\xa6\x82\x88\x25\x03\x32\xea\xba\xf5\xfa\x54\x7b\xa5\x3f\x72\xe2\x4d\x32\xfd\x4c\xe9\xfa\xa5\x5a\x19\xe7\xdf\x03\x40\x83\x90\xb7\x9c\xd5\x9e\x1b\x40\x03\xcb\xa6\x39\x2d\x6e\x0d\x75\x08\x82\x55\xae\x47\xa8\xde\xf0\xfc\x15\x38\x74\x07\xe9\xff\x83\xc1\x1a\x57\x2f\x53\xa8\x66\xd5\xc5\x4c\xb0\x5b\xcf\x91\xe1\x1b\xcf\x8e\xfa\xf7\x0d\x9b\xf1\x32\x67\xd7\xbe\xd9\xa7\xe1\xd4\x5f\x5a\xa7\x7e\xbf\x01\x1c\xcd\x36\x9c\xd3\x42\x99\x01\x10\xee\xf7\x59\x62\xc6\xfc\xba\x10\xb4\x10\x90\x97\x6e\x30\x88\xfb\xb1\x1f\x3d\x53\x20\x8b\x32\x8b\x4c\x38\x96\x1d\xd3\x9a\xd3\x75\xc6\xa9\xe7\x6c\xe5\xd6\x4d\xe5\x38\xae\x96\x59\x9e\x97\x77\x97\xbf\x6c\xb2\x1c\x22\x1d\x12\x60\x8b\x13\x6f\x1a\x10\xc0\x3a\xcd\xca\x9b\x82\xfd\xc3\x13\xbc\x2a\x03\xc0\xa6\x79\x8e\x30\xf4\x6b\xcf\xb4\x24\xae\x21\xe1\xb5\x7a\x51\xcc\x7f\x28\xb3\xf9\x37\x6b\xdc\xb4\x27\x02\xbe\xde\x33\x01\x89\x04\xe4\x03\x3a\xc7\x5b\x3d\xed\xd6\x03\x25\x05\xcd\x92\x81\x8e\x40\x71\x64\x7a\x6b\x16\x8c\x10\x76\x4b\xf6\x50\xad\x86\x71\x67\x5f\x69\x2b\x46\x20\xcb\xca\xed\x2b\x6a\xcc\xa2\x76\x14\x30\xb0\xa3\x46\x1f\xa1\x23\x99\xc3\xb6\xff\x71\xc7\x55\xb6\xf7\x7e\x5a\x97\xf9\xfd\x82\xe5\xbe\x8f\x86\xb9\xb2\xfe\x19\xfa\x53\x75\x6b\x30\x7b\x6b\x58\x97\xde\xed\x32\xab\x94\x53\x53\x23\xca\x43\x4f\x95\xf7\x3a\x24\xd7\xcd\xfc\x04\x5e\x9d\x90\x38\xea\xdc\xa9\xc6\x97\x78\x30\x60\x6d\x2a\x86\x59\x5d\x48\xb9\x20\x67\xff\x08\x0e\xa8\x1f\x59\x72\xe0\x1c\x6b\xa4\x40\x43\xe7\x40\xb8\xf0\x71\x3c\xbc\xfa\x2a\x85\x78\xe3\xb0\x98\x00\xfe\x6d\xed\x0d\x53\x99\xf6\x0d\xbe\x47\x89\x8d\xb2\x71\xef\x40\x4b\x40\x79\x6c\x10\x5b\xbc\xf5\x89\x68\x59\xa3\xda\x52\xdf\x57\x25\xd7\x53\xdb\xcc\x7a\x19\x7c\xef\xbe\x73\x2d\xd7\x06\xe4\xf5\x4a\xa1\x56\xe2\x8c\x94\xe3\xd2\x65\x16\x30\xaf\x71\xd5\xe0\xe4\x5c\x8a\x92\x91\x86\xd7\x13\xce\x4a\xcd\x87\xc4\x62\xec\x19\x28\x04\x0c\x4f\x74\x73\x10\x14\x0d\x51\x7c\x67\x2e\xa4\x90\xe3\xd2\x43\x9e\xd5\x34\xb8\x02\xdd\x47\x86\x70\xd1\x24\xde\x60\xf0\xc7\x7d\x16\x50\x24\x86\x99\x15\xe1\x94\x13\x9d\x32\x45\x83\x80\xe9\x1d\x62\x3d\x2f\x5e\x11\x77\xec\x0f\xd6\xf0\xcb\x34\x28\x85\xa1\x75\x07\xaa\x75\x90\x3a\xc9\x25\x3f\x50\x4b\x16\x39\x9e\xc2\xf8\x01\x08\x47\x4a\x9f\xbf\x9e\x34\xb8\x07\xed\xc8\x47\x7d\xf4\x60\x44\x10\x3a\xf9\x26\x5b\xd7\x2a\x54\x32\x20\x16\x50\xc0\x64\xff\xaa\x44\x56\x2d\x3b\x60\x18\x55\x21\x9d\xdf\xbb\x91\x6c\x58\xb7\x8d\xbd\x82\x2a\xb2\xac\x40\x72\xff\x40\x26\x39\x79\xc4\xb5\x8b\x8c\x6e\x9c\x2d\x62\x05\x87\x1f\x06\x2d\x9b\x40\xa8\x76\xaf\x36\xa0\x41\x05\xe9\x9e\x17\x3a\x4f\x7e\xca\x0f\x44\xaa\x1d\x11\x74\xf3\x9b\xaf\x55\x53\xed\xe5\xce\x9a\xf6\x19\x72\x23\x4a\xa3\xa1\x42\x06\x7f\xc4\xf7\x40\x38\xd0\x5e\x7f\xd0\x8e\x4b\xec\xb7\xd7\xc4\xe9\x98\xe1\x5e\xa8\xca\xd8\x0b\x17\x45\xb5\xf9\xad\x0c\xc3\x1c\x89\x06\x6e\xd1\x79\x19\xbf\xac\x73\x36\x63\x42\xa1\x92\x9a\xc4\x2d\xf2\x36\x29\x6c\x0c\x24\x2d\x20\xeb\x66\x99\xcd\x59\x71\x73\x25\x05\xb9\x4c\xd0\x8a\x78\x72\xb3\xd8\x53\xc6\xe0\x2e\x64\x62\xb6\xa4\x95\x85\x42\x2d\xd7\xe0\x83\x4a\x44\xcd\x1d\xb5\x37\x28\xc7\xb9\x1a\xe0\x86\x7c\x7a\x36\xdd\x14\x9b\x8a\xce\xa7\xf3\xcd\x6a\x75\x3f\xa5\x9c\x97\x7c\xba\xce\xc4\x52\x5d\x00\xd3\x27\x5b\x5a\x3f\x4b\xe1\xf1\x27\xb8\xc4\xe4\xfe\x8d\x0b\xb2\xad\x71\x4e\x04\x4a\x59\xcc\xe1\xb7\xc0\x39\xe1\x28\x2d\x88\xd8\xed\xb6\xf5\xa1\x6f\x1a\x0c\xe2\x4a\xbb\x17\x0f\xa3\x69\xae\xde\x46\x78\x2b\x45\x2f\x61\xc1\xe5\xd2\x22\x09\x1f\xd4\x08\x7b\xd5\x60\x40\x0f\x57\xc2\xa0\x94\xdb\xc8\x3d\x99\x1b\xf0\x2b\x13\xad\x8b\x9b\x85\x01\x51\x8d\xde\x9d\x94\xf1\x2c\x98\x42\xd4\xab\xe2\x39\x8e\xcc\x48\xe5\x38\xe6\x38\x32\x23\x30\x3d\xe0\x5c\xc5\x9f\xce\xdd\x38\x71\x81\xe7\xee\x62\x36\xfe\x8c\xee\xad\xb2\xda\x34\x11\x8d\xfc\x94\x4b\x36\x95\x86\x1e\x4a\x42\x8b\x1b\x56\xd0\xd7\xc5\xc2\xe6\xe0\x13\xda\xc3\x7d\x4f\xb1\x64\xb1\xc9\x73\xf9\x89\xfa\x7a\x1c\x9e\x6a\x18\x20\xc7\x63\x80\x95\x2f\x7f\xa5\xcb\xa5\x59\x8d\xf7\x75\xd9\x63\x72\xf1\x92\x8a\x72\x15\x85\xad\x63\x85\x19\x0a\x6b\x64\xf3\x39\x5c\x5b\xaf\x4a\x7e\x09\x95\x63\x81\x2b\xe7\xcd\xc9\xbc\x94\x50\x2a\xd1\xc4\xa7\x97\xf2\xc0\xb2\xe2\xe6\x24\x3b\x81\x6d\x77\x62\xbb\xe0\x27\x65\xa1\x9f\x19\xa8\xe7\x8d\xa8\xd8\x9c\x9e\x64\xc5\x89\x6a\xfd\x84\x55\x90\x14\x0a\xa4\x28\x3a\x4f\x3e\xa1\x9e\x51\xe3\x2a\xfd\xa7\xfc\x43\x45\x97\xf6\x49\xc8\xac\x18\x69\xad\x71\x42\x47\xe1\x99\x4a\xdc\x32\x39\x6e\x2f\xb4\xed\xea\x92\x81\x88\x14\x34\x6a\xcc\x76\x70\x16\xf5\x68\xf4\xe6\x01\x45\x31\x16\xe4\xb9\xcf\x22\x9d\x71\x97\xb1\x87\x0f\xc9\xff\x40\x22\x86\xd0\xdf\x44\x94\xf2\x8f\x21\xa0\xc3\xf3\xe1\xef\x27\xa8\xae\x57\xe5\x46\x41\xc8\x91\x6d\x1d\xf0\x9e\x66\x41\x38\xad\xca\xfc\x56\x85\x02\xbc\xc9\xd6\x0a\xfa\x89\xf6\x44\x92\xc9\xd3\x98\x13\xf9\x07\xb2\x38\x83\xfa\x80\xe4\xc0\x60\x34\x0f\x88\x41\x1c\x66\x45\x25\xb2\x62\x46\x5f\xcf\xd3\x62\x38\xc4\x30\x84\xf7\x25\x2b\x44\x3a\xc3\x66\xcb\xa5\xb3\x1a\x2f\x89\x32\x5d\xf6\x0c\xdc\xb3\x05\x03\x59\x02\xf8\x57\xf4\x2c\x1a\xe6\x06\x65\xed\x08\x6a\x94\x87\xd4\xc8\x38\xff\xf6\x4f\xf1\x8a\xec\xd9\xb6\xbd\x15\x24\xcf\x36\x26\xc0\x76\x01\x32\x37\xb9\xb1\xc3\x73\xe1\x4a\xa4\xf3\xf0\x50\x20\x7c\x63\x49\xc5\xad\xa4\x0f\x37\x21\x7d\xb8\x69\xd0\x87\x45\x2d\x79\x74\xb8\x2a\x14\x95\xb8\x41\x78\x43\x6e\x3c\xe2\x80\xd7\x26\x85\x54\xc7\xf8\x56\x0a\x3f\xe0\xfa\xe0\xb9\x8d\xb2\xb5\xdc\x6f\x4a\x76\xad\x75\xd6\xeb\x03\x74\x58\x4d\xdd\x3d\xc9\x7d\x2a\x3c\x25\x7e\x33\xee\xf9\xdd\xc1\xae\xa7\xd0\x9d\x26\x6c\xf7\x2d\xaa\xdc\xdc\x47\xf5\x83\xf4\xe2\x1e\xdf\x21\xac\x86\xa6\xe7\xb1\x31\x30\xfd\xf4\x88\x61\xe1\xa3\x87\x85\xed\x52\x1d\x31\xba\xfa\x81\x32\x33\x7c\x6d\xe0\x9e\x24\xf1\x58\xe2\x19\xde\x04\x38\x6e\x0d\x96\xaa\x6d\x72\x08\xd6\x13\x14\xf5\x8a\x63\xa8\x63\x8a\x06\x83\x3e\xa4\x78\x39\x57\x76\x14\xf5\x3c\x91\xf4\xf1\x93\x8f\x57\xa9\x45\x54\x79\x59\x5b\xa1\x54\x77\xdc\x3c\xda\xed\xf3\xa9\x1c\x49\x20\x6b\x0c\xf8\x1e\x68\xe3\x91\x4e\xe6\xad\x1e\x62\x86\x0b\xf0\x06\xd7\xd4\x1a\x3d\xda\x9d\x4c\x73\x82\x6a\xb3\x57\x11\x1e\x4f\x02\x2f\xbf\xc7\xb4\xd1\x19\xcd\xfe\x28\x53\xf0\xc3\x71\x48\xbe\xd5\xcd\xcf\x17\xbc\x50\x41\xac\x52\x24\xf6\x79\xe2\xeb\xac\x62\xb3\x08\xa9\x93\xdf\xe3\x84\x27\x4a\x13\x12\x6f\x8d\x17\x57\x1a\x23\xf2\xfc\x53\x6c\xc6\x3e\x07\x50\xe0\x13\xd7\x04\xfa\xa4\x03\xb0\x0a\xd2\x60\xb6\x9d\xe0\x6b\x21\xdd\x0b\xcc\xe5\x02\x79\x83\x29\xbe\x4a\xf7\xbf\x37\x48\x17\x4c\x68\x1d\xc2\x01\x47\x5b\xe1\x25\xed\x69\x0c\x95\x63\x46\xac\xc8\x50\xa0\x9e\xc5\xf2\x62\x52\x5a\xe8\x1d\xbb\xbe\x61\xd8\xfe\x7f\x07\x39\x55\xf1\xf9\x9a\xcb\x67\x95\xa7\x99\xb1\xb7\xcd\xad\x52\xbd\xd3\xc7\x09\x7a\x70\xdb\x3d\x65\xc5\xa2\xfc\x55\x27\x42\xa3\x22\x74\x9c\x81\x0e\xbd\xe0\x7f\x59\x94\xd8\x9c\xae\x39\x9d\xc9\xcd\xff\x74\x41\x33\xb1\xe1\xb4\x5b\xb3\x99\x89\x03\xae\xeb\x9a\x7a\x61\xad\x08\x99\xfe\xfd\x61\x64\x87\xc6\xa8\x1e\x4f\x5c\x8e\x04\x6b\xf8\x66\x5b\xf2\xca\x90\x59\x72\x8b\x41\xed\xf1\xb2\xf9\xbc\xc3\x70\x4d\x1d\x75\x26\x84\xdc\xd6\xde\x0e\xa7\xc9\x87\x77\x3f\x7e\xbc\xfc\x30\xbd\xfc\xeb\xe5\xdb\x8f\xd3\x97\x97\xef\x3f\x5c\xbe\xb8\x50\x08\x3e\xfa\xdd\xf4\xc5\xbb\xb7\x6f\x2f\x35\xaa\x8f\x27\x22\xaf\xf1\xaa\x3b\x35\xca\xad\x35\x4e\xf7\xad\x21\xf2\xbb\x53\x34\x18\x50\xa3\x94\xd9\xd6\x92\x31\x81\x40\x26\x0b\x9a\x77\x9b\xf1\x31\x9b\x10\xd1\x63\x90\xef\xf6\xbc\x90\xbf\x0c\x82\xba\x0a\xcd\x4d\x9f\x4d\xd9\xfc\x89\x4e\x0c\xc2\xd0\x60\x10\xb7\x0a\x45\x6c\x1e\x19\x29\xab\xb0\x6f\x5c\xc4\x71\x23\x4b\x6f\x5d\x77\x7d\xe4\xca\x20\x17\x7d\x75\x04\xa0\xce\xa1\x40\xb6\x35\xa4\x98\xb3\x1a\x3c\xeb\xd9\x62\x8d\x5e\x46\xf8\x97\x0c\xb3\x2d\x46\xee\xe2\xae\x30\x2d\x4c\x51\x3d\x05\x1d\x17\x5c\xda\x6e\x9a\x95\x39\x06\x14\xa7\x61\xfa\x11\x78\x44\xa8\xfe\xa3\x57\x58\xf4\xb4\xb8\x20\x31\x25\x42\x2e\x8a\x7e\xb9\xdb\x8d\x27\x0e\x33\x8d\x79\xb3\xaa\xbc\x6b\xa6\xbf\xac\x93\x5f\xd6\x15\xe4\x00\x76\x30\x6b\xa6\x45\x84\x33\x32\x3a\xcb\x5c\x5a\x88\xe1\x30\x43\xe5\x38\x9b\x28\x37\x0f\xf0\xe9\x48\x9e\x6c\x8b\x71\x36\xa9\x3f\xb9\xdc\x0c\x64\x74\x56\x39\x94\xb9\xe1\xb0\x32\xc9\x17\xd8\xb8\x9a\xf4\x22\x30\x07\x46\x84\x90\x3c\xa9\x66\xe5\x9a\x4a\x49\x45\xb2\x3a\xa2\x22\x25\xaa\xeb\x7a\x9a\x81\x6e\xf7\x2f\xef\x5d\x48\xb8\x05\x97\x32\x4a\xec\x56\x11\xd5\x94\xcd\x59\x07\xa8\xa2\x02\xd5\x53\x70\x18\x62\xc5\x8d\x57\xb4\xd9\x56\x47\x91\x64\xc3\x73\x48\xe9\xa4\x2e\xa5\x57\x25\x0f\xd0\x27\xf7\x87\xda\x41\x9b\x69\x34\xa4\x21\x88\xb4\xc1\x2d\xdc\xd6\x3d\x4f\x8a\xdb\x67\x6a\x53\x1f\xe7\x4c\x1e\xb8\x24\xec\x9c\x8d\xe7\xc9\xd5\xc7\x8b\x8f\x97\xd3\xab\x9f\xde\x7c\xff\xee\x87\x49\x7a\xb0\x0d\x10\x05\x70\x46\x78\xb8\x07\x0d\x52\xb0\x07\x33\x5e\x26\xea\x23\xc7\xd9\x44\x4a\x8f\xf7\x81\xf2\xdd\xb7\x86\xe6\x28\xe1\x74\xbe\x99\xd1\x18\x56\x84\x3c\x57\x39\xa9\xf3\xb1\x98\x60\x8a\x70\x85\x6a\x4b\x90\xdc\x85\xf9\x67\x7a\xef\xd3\xac\xae\x22\x9d\x69\x1d\xcd\x67\x75\x97\xe7\xa8\x9e\xd3\xc7\x36\xb5\xaf\x06\x47\xf5\x54\xf3\xfb\xaf\x4a\xee\xbf\xf2\xfc\xe1\x83\x53\xe3\x99\x60\x92\x68\x68\x77\x8b\xc6\x9f\x3b\x50\x70\xcd\xcb\x35\xda\xed\xb6\x75\x0d\x5c\xba\x63\xc3\x3a\x06\x5e\xd3\x2f\xce\xd1\x7e\x4e\x61\x53\x28\x89\x32\xf4\x84\x70\xaf\x22\xf3\x4a\x83\x8c\xff\x95\xd1\xbb\x2a\x46\xf5\xd4\x5c\x80\x1f\xa8\x86\x57\x0b\xf5\xe8\x76\x14\xbd\xc2\x47\x51\xe8\x24\x16\x4a\xc4\x4c\x58\xa1\x36\xa9\xe9\xb2\xf9\x39\x85\x0a\xc1\xa4\x85\x4a\xb5\xb7\x52\x1a\x77\xd9\xca\x78\x62\x12\xbb\xed\xfb\x20\xf7\x39\xb5\xff\xd9\xdb\xda\xff\xbb\xc3\xd5\xa3\x6b\xd1\x9b\xc5\xe2\x11\x5e\x1e\x86\x45\x80\xb9\x5a\xd1\x39\xcb\x84\x77\x04\x6d\x27\xf2\x42\x13\x38\x49\x12\x0e\x57\xd4\xc1\xc6\x7a\xc1\x50\xf6\x36\xac\x9a\x43\x35\xa7\x0b\x4e\xab\xa6\xf3\xc6\x7e\x7b\xbc\x2a\x0d\xf4\x27\x70\xfe\xd8\x3f\x1b\x8d\x52\x0f\x4f\x86\x4d\xaf\xe7\xb2\xe8\x35\xb6\x8c\xac\xe3\xab\xc0\x34\x9c\x73\xa3\x94\x24\xa0\x0c\x1c\x5a\xd8\x22\x2e\x48\xa6\x6b\xb4\xc5\x91\x98\x99\x8c\xc4\x9e\xa4\xa4\x53\x0b\x75\x6c\xc7\x08\x61\x2f\x23\x46\x75\xee\x8a\x54\x38\x5a\x7b\x77\x41\x15\xa1\x74\x3c\x39\x6b\x40\xfc\x09\x1f\xda\x74\xeb\x13\xec\x58\xc1\x9d\x18\xdc\xc5\x57\x25\x37\x37\x8b\xe2\x35\xcc\x01\x02\x97\x13\x45\xfc\x1d\x4a\xa3\x66\x47\x34\x22\x6e\xd1\x99\xe4\xbf\x50\xf0\xcc\x9d\x6f\x00\xa8\x59\x8f\xc0\xe7\x25\xa1\x5d\x0c\x69\x22\xfc\x24\x1e\x2f\x80\x85\x46\x31\xe4\xed\x80\x76\x01\x5c\x52\x25\x56\x47\x3a\x8f\x7e\x36\x9f\xbf\xd3\xe8\xf8\xd0\xcc\x10\x20\x55\x30\x55\xc0\x29\xfa\xe2\x83\xd4\x05\xa8\x46\x71\x81\x37\x1e\xcf\xa3\x96\x81\x14\x1a\xeb\xb2\x7b\x1d\x16\x64\xa6\x89\x83\xc2\xa8\xf5\x09\xc9\x22\x01\x15\xee\xbb\x5b\xca\x39\x9b\xd3\x4a\xce\x3d\x6c\x3e\x60\x7b\x80\x3e\xc2\x22\x35\xbc\x76\x44\xf3\xca\x53\x5b\xec\x75\xb1\x28\xb5\x56\x73\xad\x2f\xd2\x6b\x07\xf2\x83\x57\x44\xd6\x7b\x7f\xf1\xe1\xe2\xcd\x95\xa9\xd8\x9b\x25\xc1\x6e\xe8\x80\x86\x9f\x25\xab\x6c\x3d\xa6\x93\x9e\x30\xa2\xdd\xca\xc5\xd6\x2f\x93\x59\x96\xcf\x36\x39\xf8\x1e\xcf\x96\x54\x52\xfb\x58\xa8\xe1\x34\x2e\x58\xa1\x58\x19\x6c\x9a\x91\x9c\xd5\xda\xf0\x07\x4c\x92\xc5\x64\x53\xcc\xe9\xac\x04\xad\x80\x66\xf4\xc1\x8f\xcb\x0f\xcd\x97\xf4\xb3\x34\x19\x25\x6f\xc9\xbd\x4e\x2e\xdf\x9c\x10\x57\xc5\x67\x86\x0b\x7c\xab\xd5\x58\x70\x7e\x5b\x64\x59\xfb\xdb\x79\x90\x22\x56\xdf\x55\x2d\xcb\x4d\x3e\xff\x20\xf7\x16\xd7\x69\xb7\x39\xfc\xf8\x48\x57\xeb\x1c\x22\x89\x2c\x54\xc0\x22\xdf\x54\xcb\x8b\xea\xbe\x98\x99\x9d\x55\xa1\x58\xee\xa0\x00\xcd\xc7\x18\x56\x1b\x29\xf4\xfc\x15\xdb\x3f\xc5\xbc\x73\x8a\xb9\x9e\x62\x6e\xa6\xb8\x57\xa8\x9d\xa4\xe6\x17\xd5\xf5\x35\x5d\x94\x9c\xbe\x91\x8c\x26\x5c\x1c\x0b\x49\x39\xcd\x2f\x4e\xe7\x8c\x2b\xff\xf9\x5a\xb3\xf4\xd6\x91\xd0\x5a\xa8\x95\xb9\x1d\xea\x10\x9f\xf9\xaf\x81\x7b\x05\x43\xb2\x81\xb2\x97\x62\x61\xe7\x5d\xb9\xca\xd6\x5e\xca\xb2\x1c\x24\x20\x04\x02\x54\x00\x90\x24\x39\xe1\xdd\xae\x1a\x0c\xa0\x84\x49\x55\xb6\x21\xb9\x32\x3e\xc4\xcf\xfe\x33\x4e\xfe\x15\x81\x90\x84\x4c\xc8\xdc\x06\x32\x23\x6d\xc6\xa7\x13\x9c\x11\x3a\xce\x27\x72\x9b\xf5\x47\xb5\x4a\x2e\x23\xe7\xdb\xe4\x35\x6a\xb2\x7b\x8a\x33\x2d\x8c\xe9\x00\x6c\x18\xdf\x9d\x1a\x78\x69\x23\x42\x1d\x38\x79\xe3\xb0\xee\xd3\xd3\x89\x9d\x1b\xff\xce\x59\xb0\x62\xae\xa6\x9c\xe1\x2c\x60\xd7\x42\xb7\x69\x30\xb2\x40\x39\x1d\x3c\x62\x39\xee\xc6\xa5\x42\x91\x5c\x5a\xd7\xac\x7f\xcd\x35\x67\xbf\x12\x25\xa7\x11\x82\x41\xa8\x82\x75\xf3\x28\x68\x87\x1e\xea\xa7\x9e\x77\x39\xeb\x40\xea\x54\x82\x8a\xec\x35\xbc\xc9\x3c\x05\x61\xa7\x40\xc7\x08\xef\x14\x08\x06\x03\xd6\xb8\x39\x07\x83\x98\x92\xe6\x43\xa4\xf3\x19\xf1\x6e\x63\x3c\xf5\x32\x0d\x75\x5c\xa0\xd6\xcd\xaf\x6b\x68\xce\x73\xd2\xc2\xb2\xa1\x58\x48\x09\x14\xbe\xd5\x93\x73\x04\xde\xfb\x71\x3e\x8d\x36\xa9\xf9\xbb\x99\x94\xf3\x47\x89\x39\x1a\xf9\xb9\x27\x88\x3a\xf6\xd9\x75\xee\xaf\x0e\x3b\xbf\x8b\x39\xa6\x28\xa5\xad\xf9\x31\x93\xac\x60\x6f\xd4\x11\x61\xc6\x8e\x5a\x0e\x06\xa5\xdb\x46\xbb\x1d\xe4\x98\x7b\x20\xa3\xa4\x4e\x37\x66\x36\xba\xda\x71\x15\xce\x90\x83\x98\x0f\x5f\x49\x09\xd8\xac\x8a\xec\xcf\xa7\x1f\x75\x83\x82\xfa\x29\x3b\xe5\x0b\x08\xbf\x83\x3f\xbc\x8d\xd5\xf4\x86\x30\x69\x33\xfa\x62\x30\xe8\xf3\x5e\xb9\xdb\xb5\x51\xf8\xc5\x6e\xc7\xcf\x19\x11\x69\xcc\x08\x4d\x84\xee\x4f\x7d\x35\xf5\x4e\x12\x27\x02\xa9\x4d\xe6\x29\xb4\x9a\xab\x4d\x11\x5e\x1a\xc5\x10\x07\x63\x22\xb0\xb0\x25\xe4\x8a\x2b\x44\xe9\x07\xd1\x3c\xbb\xc1\x51\x02\xbc\x18\x4f\xca\x8d\xc8\xa9\xc0\x4b\xc2\xbd\x6d\x8d\x67\x84\xab\x53\x8e\x7a\x1b\xb2\xd9\xed\xa2\x55\xc6\x8a\x08\x97\xe7\x71\x46\xfc\xa1\x55\xad\x81\x67\x90\xcb\x83\x75\x75\x57\x91\xcc\x73\xfc\x51\x66\xc7\xf2\x9c\xb6\xb8\xd3\x79\xf7\x41\xca\x50\xba\xf7\x8d\x9c\xb0\x66\x33\xde\x38\x55\xa6\xdc\x66\x9e\xdb\xa5\x81\x55\x5a\xf6\x96\x64\x4f\xd3\x0b\x54\xdb\x11\xcf\xce\x67\x84\x06\x5b\x25\x5d\x82\xa0\x64\x28\xcf\x0c\x59\x9d\x9c\x6b\xce\x4c\x4f\x1a\x0d\x2b\xd4\xcb\xc1\x04\x7a\xad\x60\xce\x25\xbb\xb9\x76\xa3\x84\x55\x33\x70\xea\x8a\x91\xd8\x82\x9e\x37\x9d\x63\xb9\x84\x69\x8e\xd5\x6a\xa5\x1b\x0c\xd6\xdf\x0c\x7b\x63\x5d\x2a\xbf\xed\x74\x86\x6d\x8f\xf6\x2c\xae\xce\x57\xf1\x1c\xa5\x34\x99\x8a\x72\xfd\x03\xbd\xa5\xb9\x94\x35\xed\x0e\x9f\x3b\xc8\xf8\xdb\xda\x78\x45\x08\xd4\x5b\x29\xf7\x28\xd0\x98\x28\x63\x13\xb0\x12\x9b\xa4\x2c\x66\xb4\xe9\xb2\x3d\xad\xa8\x78\x07\xc3\xab\xa4\x24\xc8\xaa\x59\x59\x14\x74\xa6\x9f\x79\x74\xaa\x27\x3f\xb4\x9d\x74\xf8\x5c\x10\x9a\xc6\x10\xa7\xa4\xb6\x24\xb7\x96\x36\x39\xd8\x73\xff\x47\xc7\xee\x32\x38\xf4\x08\x0b\x22\xec\x86\x55\x43\x6c\x0d\x06\x3c\x52\x5d\x66\x82\x83\x64\xcf\xf7\xff\x83\x0b\x15\x33\x32\x3a\x63\x4e\xc9\xc6\x86\x43\x54\x8c\x99\xbe\x73\xf7\xf4\x56\xb7\x1f\x7b\xd4\xe3\xda\x90\xfb\xc1\x00\xd2\x66\x04\x7b\x42\xd8\x3d\xe1\x46\xec\xad\x4c\xd7\x70\xb6\x26\xc3\x1e\x9b\xf4\x4a\x3d\x9f\x04\xfc\x2f\x4a\x20\x06\x1a\xbc\x0a\x14\xb7\x7a\x8b\x95\x2a\x3d\x8c\xda\x68\xaa\x94\xd9\x6d\xa6\x05\xb5\xe9\x4a\xd0\x23\xfa\x3b\xcf\x24\x48\x09\xb7\x9d\xde\x8e\x3a\x14\xff\xc8\x7d\x83\xea\xae\x88\xd8\xa6\x82\xa4\xf1\x5b\xfb\x7f\x78\x73\xe2\xb2\x54\x79\xd9\x2a\x9e\x8f\x06\x83\xb8\xa1\xd9\x38\x76\x54\xd7\x1b\x96\xcf\xed\x16\x78\x43\x45\x36\xcf\x44\x26\x39\x52\x67\xe4\xbd\x76\x77\x79\x78\x1b\x90\x91\x56\x10\x1b\xae\xad\x91\x13\xc3\xac\x9c\x9f\xe3\x1a\xc6\xd1\x48\x72\x3d\xe4\x06\xf8\xb0\x8e\x41\x10\x3c\xa4\x4b\xf4\x38\x40\xfc\xf4\xd4\xc5\x0c\x0c\x06\x5a\x0e\x72\x03\xbf\x57\xec\x71\xe1\x07\x3a\xbc\x2a\x39\x69\x3e\xd8\xed\xac\x3e\xb4\xc1\xe2\x2b\x16\x35\x2c\x3d\x66\x36\xe3\x63\xc7\x2b\x2f\x8f\x62\x68\xbe\xb4\xc8\x8e\xb2\x03\xcf\x90\xb7\xdb\xc5\xad\x67\x64\x5b\xe3\x80\x5f\x6e\x95\xc0\x3c\x88\xde\x90\x93\xd6\xa9\x56\xac\x8c\xe8\xa2\x26\xac\xd5\x0e\x42\xed\x67\x75\x6c\x97\x00\x17\x08\x67\xad\xf9\x82\xd3\x55\x07\xc2\x06\xf5\x55\xf8\x39\x19\x9d\xe5\x2e\xe1\xdc\x70\x98\x1b\x51\xa2\x1a\xe7\x13\x3c\x23\x1b\x90\x82\xa5\x94\x51\xf6\xb2\xb1\xfa\x35\x21\xb3\xf3\xd2\xfc\x9d\x4e\x63\x8b\x83\xac\x64\x52\x9b\x11\xd2\x2d\xef\xd4\x53\xe8\x36\x53\x70\x9c\x03\x2e\xd2\x05\x8a\xa9\xf6\x5e\x43\x28\xf5\x76\xc6\x9d\xb5\x6e\x50\xcb\xe2\x39\x5b\xbb\xf3\x35\xea\x75\x78\x4a\x40\x34\x1c\x4f\x3f\x3d\xd9\x72\xed\x11\xe1\xf2\x85\xde\x68\x4f\xef\x17\x79\x56\x55\xf1\x96\xa9\x18\x03\x6d\xdb\x56\xc6\xb6\x1b\x8f\xd9\xab\x3c\x7b\x9b\xa9\x1a\xb3\xe4\x02\x06\xa9\xa3\xd6\x31\x73\x61\x2c\xcd\x7c\x88\x07\x11\x6e\xb7\x35\xf6\x39\x18\x0d\x70\x0b\xd6\x18\xf5\x77\xc8\x57\xa8\x67\x20\xb0\xa4\xb0\xae\x26\xd6\x43\x29\x74\xfc\xa4\xca\x6d\x76\xbe\x21\x22\xb5\x84\x50\x7d\xa0\x0b\xe3\x0d\x62\x01\x33\xb6\x20\x19\x79\x1e\xd5\xa1\xa7\x83\x22\xb5\x96\xa1\x36\xa2\x64\x41\x0a\xe5\xf1\xa0\x25\x2b\x48\xc8\x81\xad\x4e\xb9\x53\x65\x65\x7c\x22\x4d\xc2\x43\x84\xa7\xbf\xac\x9b\x5f\xda\xc4\x7f\xa2\xb8\x3c\x52\xd1\xd8\x29\xa3\x54\x24\xeb\xe6\xbe\x4a\x79\x48\x0e\x28\xe9\xa3\x66\xf2\xd1\xdc\x45\x80\xc9\x99\xa8\x8c\xaf\x69\xa0\x68\x0c\x1a\x00\xa2\x46\x1b\x44\xc8\x18\x48\x31\x23\x5b\xff\x78\xa5\xfd\x11\x96\x3b\x52\xfe\x0b\x06\x2c\xf9\x47\x56\xc9\x1d\xeb\x08\x9a\xd5\x1b\x1c\x25\xb4\x50\x8b\x9c\x99\x91\x6d\x7d\x16\x90\xb3\x0c\xd3\x71\x39\xc1\x7c\x5c\x4e\x10\x2e\xc6\xe5\x84\x64\x98\xc9\x7f\xfa\xa3\x3a\xc8\xac\xce\x8f\xee\x8e\xe3\x0a\x0d\x06\x7d\x36\xae\x26\xc6\xca\xd7\xec\x35\xc7\x7c\x5c\x4d\x30\x95\x45\x70\x31\xae\x26\x24\xaf\xad\xa9\x36\x06\xd5\x8f\x8d\x81\x71\x82\xac\x4f\x2c\xe3\x19\xc2\xb9\xb6\xff\x6e\x06\x83\x18\x28\xa0\x27\xc1\x66\xb8\x44\x98\x12\xed\x6e\x38\x27\x90\xd3\x78\x5b\xe3\x15\x19\xbb\x8b\xe1\xf6\xb1\xf3\x78\x8b\x06\x83\x48\xe7\xb0\x32\xef\xa2\x3e\x21\xb7\x83\x41\xa4\x80\x8f\x22\x95\x88\x55\xb6\x7e\x43\xe8\xf8\x76\x82\xaf\xc9\x8d\xb2\x44\x4a\x8e\x51\x31\xf1\xf7\x46\x8a\xf2\xb6\xa2\x24\x66\xd7\x83\x41\x7c\x0f\x69\xdd\x64\xfd\x3b\x72\x93\x64\x95\xde\xe0\x7b\xec\x68\xb7\x08\x5f\x06\x3b\xef\x16\xf5\x2e\xc9\x34\xbe\x54\x4d\x7c\x21\x37\x89\x4a\x66\x0e\x44\x58\xa5\x3c\x47\xf1\x25\xc2\xef\xc8\xbe\x66\xe3\x4b\x7c\x87\xbf\x20\x7c\x45\x3e\x3d\xd9\x96\x75\xfa\x64\x7b\x5b\x7f\xc2\x1f\xc9\x76\x8f\x8e\x32\x0d\xbb\xc7\xc1\x66\xbe\xc4\xb6\x87\xb0\xd2\x3b\xef\x85\x79\x02\xdb\xfe\x0b\x56\xa6\xb3\xf4\x0e\xcb\xfb\x27\xbd\xc5\x6d\x33\x6e\x7a\xd5\xa4\x98\x25\x56\x02\x3f\x1c\x5f\x50\x05\xa6\xf7\x2a\xab\xa3\xa6\xb0\xea\x28\x5d\xd7\xbd\xf5\xf8\x76\x42\xd6\xe3\x3b\xf9\xbf\xab\x09\xf9\x88\xe7\x4a\xee\xf8\x88\xf0\x4a\xfd\x75\x6b\x6e\xb8\xed\x2f\xeb\x2a\x9d\xe3\x55\xb6\x4e\xd7\x38\x50\x16\xa7\x2b\xac\x14\xdb\xe9\xd6\x98\xbd\x52\x6d\x01\xd5\x57\x97\xd2\x1b\x03\xbf\xd7\x54\x7d\xd6\x78\x7f\x8d\xc0\x44\xd3\xac\xa8\x45\x8d\xa6\xa1\x9b\x4b\x22\x8a\x43\x75\xfa\xd7\xb6\xdd\x36\x7c\x03\x41\xaf\x11\xc2\x15\x35\x8a\x33\x9b\xf7\xf0\x28\x8d\xcf\x6e\xd7\x87\xd0\x57\x56\x7d\xa4\x95\x6c\x1b\xc5\x08\x05\x15\x5c\xcb\x90\x6f\xce\x82\x49\x18\x50\x54\x0d\xfd\x97\x01\xf5\x04\x6c\x6e\x50\x1e\x5b\x36\x4e\x01\x9c\x6b\x0b\x55\xad\xa6\x17\x20\xb9\x3d\x2a\xec\xd4\xb9\x5a\xcb\x77\xd0\x01\x22\x42\xc9\x2a\x5b\xe3\xb2\x91\x90\xd3\xa4\x53\x0c\x03\x82\x8d\x4b\x44\xe9\xbb\x44\x68\x03\x15\x1b\x97\xe3\x6c\x02\x03\xae\xb4\x2a\xd1\xf6\x94\x74\x9b\x98\x2b\x84\x23\x6d\xc9\x03\x05\x40\x84\x1a\xf3\xeb\x07\x99\x59\xad\x91\xb6\x13\xf6\xae\x39\xcd\x3e\x9b\x54\x76\xfd\x51\x8d\x17\xac\x68\x1c\xf0\x70\x1e\xd8\x22\x6e\x7a\x9f\xb6\xfd\x54\x5c\x8e\x45\xb8\xfb\xad\xea\xe9\x90\x52\xd8\x98\xfc\x0c\xff\x2a\x6f\xe0\x69\xc8\xbd\xc6\x70\xf9\xca\xc7\x6b\x85\x09\x53\x01\x7e\xf5\x59\xb7\x21\x48\x92\xf4\x46\x86\xdd\x4a\xb2\xb9\x6e\xda\x67\x46\xdb\x02\xcf\xc7\x33\x49\xf3\x17\x6a\x48\x78\x45\xd6\xbe\xf6\xe9\x96\x2c\xb4\x8d\x1e\xee\x80\xc1\xc0\xfc\xc4\x37\x26\xb9\xc1\xb5\x97\x76\x30\x87\x70\x2e\x53\x06\x9d\xc7\x37\xde\xb6\x59\xe1\x85\x32\xe3\xe3\x6b\xb2\xee\x24\xa9\x37\xd8\x36\xbf\x00\x2a\x8c\x50\x7a\xeb\x92\xf5\xc7\xd7\x70\x55\xa0\xc1\x20\xbe\x21\xeb\xa4\xdb\x2b\xe1\xba\xa3\x8d\xf8\x9a\x2c\x92\x6e\x0a\x8b\x6f\xc8\x34\x5e\x84\x9c\xbb\x24\x71\xdd\xd6\xfc\xf5\x3e\x53\xfe\x75\x9f\x04\x5d\xa8\x86\xb6\x4d\x61\xec\x5d\x91\xdf\x0f\x06\xfd\xd3\x3e\x31\x5a\xd6\x7b\xb2\xde\xb3\xc1\x17\xc8\xf8\x72\x43\xd7\xf7\xd8\x05\xe9\xf6\xee\xce\x19\xe9\x8f\x52\xc0\xbe\xbe\x03\x83\x46\xff\x54\x9b\x2b\x2b\x7f\xaa\x31\x38\xd5\x4b\x1e\xa5\x39\x36\x22\xe7\xa9\x7b\x4a\xd4\x0d\xdb\x2f\x0e\x22\x27\xec\x76\x42\x5d\x03\xda\x2d\xef\x1a\xdf\xb2\x8a\xe9\xec\x20\x9f\xe9\x7d\x7a\xbb\xdb\x99\x85\xa8\x51\xdd\x1f\x11\x65\x7a\x39\x64\xfe\xc2\x6c\x30\x28\x3a\x42\x92\xd5\xf6\x6d\x1b\x1e\x3d\x61\x4e\xef\x5e\x45\x94\x7a\xfa\xa7\xb7\x91\xf7\x79\x67\xe0\x48\xaf\xa5\x59\xc9\x1a\x61\xff\xa0\x25\xb3\x9c\x66\x3c\x56\xc4\x1d\x1f\xf2\x0e\x5c\xe3\x2a\x78\x7b\x05\xf9\x03\x0f\x94\x27\x5b\xe5\x94\xa8\x4e\x7f\x87\xeb\x5c\x5d\x3b\x11\x6b\x8d\xb7\x9e\x7d\x27\x48\x42\x69\x6d\x30\x8f\xb1\x18\x28\xfb\x82\xef\xa3\x95\x0a\xf0\x3c\x96\x33\x7b\x49\x6e\x3c\x1f\xdf\xcb\x47\xbb\xd7\x3e\xd6\xc7\xfc\xeb\x9c\x69\x1f\xe3\x32\xab\x63\x23\x0e\xb8\xfa\x3e\x1a\xf8\xf9\x98\x94\x79\x8f\x72\xa7\x7d\x6c\x22\xb8\xc7\x65\x8d\x9b\x6a\x9c\x39\xcf\x19\xf8\xe8\xc4\x6a\xfb\x1c\xfe\x57\x31\xda\xbe\xf1\xd3\x78\x4f\x15\xb4\xf7\x55\x5e\xde\x79\x7e\x3a\x6c\xe5\x10\x09\x8b\x52\xb0\xc5\xbd\x61\x52\xf5\x15\x1b\x6d\x78\x6e\xdc\xa1\x40\x89\x1f\xc4\x87\x6b\x1f\x27\x17\x64\x8e\x94\x23\x87\xd3\x15\x06\x5e\x50\x38\x9a\xb3\xb9\xeb\x3d\xf2\xd3\xac\x1a\x93\xd0\xe1\xfa\x77\x2c\xcf\xbd\x06\x24\x2b\x6a\x9b\xb8\x09\x7d\x8c\xbe\x26\x92\x40\xf7\x03\x2a\x12\x72\xd5\x19\x6e\xbb\x05\x0d\x50\x7a\x5d\x13\xa5\x25\xb2\xf2\x96\x76\xc4\xbd\xf7\xd0\x23\x1e\xe9\x88\x6b\x71\x3f\x74\x3c\xae\xf7\xd0\xb9\xdb\xb6\x5e\x01\x0a\x55\x77\x05\xef\xb1\xe4\x96\x21\x3e\x5d\xcf\x8a\xce\x08\xa3\x00\xa5\x4d\x09\x4d\x58\x6d\xd2\x66\xfd\x7c\x43\x37\x74\x6e\xd8\x69\x50\x27\xaa\x17\xa2\x5c\xe7\xc6\x4a\xe2\x77\xa5\x30\x10\xe6\x10\x2c\xd9\x6c\xcc\x84\x89\xa9\x70\xbc\xea\xc0\x70\x5c\x40\xd9\xf7\xf7\xea\x6b\xf6\x96\xf5\xf7\xa4\x37\x10\x6f\x5f\xfa\xc3\x03\xaf\xbe\xbf\xa8\x8f\xb2\x37\x27\x15\x94\xeb\x0f\x54\xbe\x85\x4c\x4d\x21\xff\x53\xe5\x2b\xab\x82\x24\x46\x1e\xf4\x8a\xb2\x8e\x60\xc7\x89\x07\x9a\x9b\xac\x6b\xe8\x7a\xbf\x54\x76\xbf\xd8\xcc\x5f\xdb\x1b\xed\x86\xed\xc1\xd2\x61\x4e\x80\x5b\xed\x98\x17\x29\x4d\x94\x80\x22\x51\x40\xd6\xd9\xcb\x60\x8a\x25\x83\x2a\x48\x99\x04\xb1\x66\xea\x2e\xa9\x88\xb3\x31\xe3\xdc\x59\x9e\x2b\xd0\x8f\x65\x63\x6a\x55\xd3\xb9\x79\x40\xfa\x23\xdc\xb7\x0a\x58\x1e\xa8\xd7\x54\x5b\x8d\x18\x22\x17\xed\x53\xe1\x8d\x09\x27\x42\x28\xec\xae\x06\xf6\x34\xf4\x3e\x17\x08\x97\x83\x41\x1f\xf8\xe8\x8e\xd8\x01\x14\xe7\xa8\x15\x98\x1b\x79\x81\xb9\xb3\x4d\x25\xca\x95\x8b\xcc\x3d\x51\xbc\xcb\x49\x59\x78\xa1\xb8\x2a\x52\x57\x07\xe4\x6a\xfc\x3a\x3a\x4f\x1c\x02\x6f\x5e\xcb\x1d\x64\xa3\x7b\xdd\x82\x74\x2e\x04\x05\x29\x49\x58\x63\x44\x33\xf4\x78\xb7\x5b\xb6\x82\x23\xea\x8d\x85\x92\x0c\xa9\x1f\xe0\xc1\x02\xc0\x83\x7a\xe7\xc1\x3f\x17\x01\xf4\x93\x24\x82\xa8\x0e\x28\xab\x1c\x67\xd9\x64\x79\x8a\x24\x28\x83\x1b\xbf\x63\xaa\x32\xa0\xb4\x40\x69\xba\x5a\x0a\x0b\xe2\xe6\x03\xa3\x26\xf0\xe9\xa9\xbe\xc7\x98\x25\xd2\x57\x80\x95\x1f\x17\xc8\xbe\x51\xb1\xff\x0e\x48\x4d\x7e\x46\x71\x18\x66\x0d\x9e\x79\x92\xb1\xac\xe0\xdf\x53\x3a\x0f\x21\x4d\x44\x19\xdc\x4d\x30\xbb\xcd\xb6\xf7\x23\xaf\xbd\x64\x8a\x9c\x05\xec\x1d\x4d\xee\xb2\xea\xe2\x1a\xf6\x8c\xe4\xb9\x99\xf9\x71\x1e\x8f\xf0\x3a\xc9\xcb\x1b\xf8\x8d\x62\x81\xd2\x58\xd8\xbe\xfa\xa7\x36\xdc\x96\x26\xf0\x07\x16\x58\xb3\xc5\x08\x17\xc9\x94\x55\xd0\x97\x52\xd9\xcf\x63\x5d\x08\x9d\x83\x6f\x9e\xc6\x08\x35\x1e\xca\xe1\xe7\x43\xc0\xa3\x2a\x2d\x7b\xcc\x64\xf7\xb1\x7b\x16\xe0\x3a\x73\x63\xb1\xb0\x8f\xba\xb6\x5f\x50\xe1\x81\x2d\xa8\x32\xed\x2f\x2d\xa0\xa9\xaa\x54\xd7\x8a\x58\xf8\x3c\xb0\xe1\x7d\xe1\x72\xa8\xf0\xcc\xaa\xc5\xcd\x3d\x99\xcc\xab\xdc\xe0\xa1\x56\xbb\xdd\xf8\x66\x82\xe7\xd6\xc7\x8e\xe5\xf3\x97\x57\x3f\xc4\xa8\x37\x37\x01\xea\xbe\xf4\xef\xc2\xd4\x71\x23\x82\xb6\x3f\xc2\xa5\xd6\x2e\x81\x53\x70\x55\x51\x0e\x2e\x3a\xfd\x51\x1d\x04\xad\x19\x09\x9d\x92\xd1\x19\xfd\x6e\x66\xa4\x73\x3a\x1c\xa2\xd9\x98\x4e\x94\x2a\x55\xb9\x28\x23\x84\x37\xc9\x2a\x5b\xc7\x21\x74\x82\x37\x4a\x3f\xee\x7e\xba\xcc\x34\xe7\xf1\x7d\x56\xd1\xf9\x07\xe5\x6d\x03\x1c\x98\x01\x27\xef\xbc\x40\x18\xd9\x76\x47\x45\xa7\x14\x37\xa2\xe5\x53\x4a\x9e\x17\x6d\xba\xfc\x74\x95\xad\xc1\xcd\x0a\xb7\x83\x7f\x55\x40\x64\x37\x41\xdb\xed\xe2\x3d\x6f\x88\x5c\xda\x9e\x97\x69\xdd\xa6\xf1\x84\xfb\x4d\x1e\xe7\x23\xae\xda\xed\x3e\x1e\xa3\xde\x3b\x57\xee\x36\x6e\x4d\x94\x24\xbf\x7d\xea\xe0\x3c\x6f\x5d\xaa\x6f\x63\x58\xf4\xb6\x4a\x32\x9d\xaa\xdb\x89\xdf\x4f\xa7\xc6\xf5\x09\x3c\x7a\x9a\x9d\xba\x0b\xc1\x20\x9c\x14\x80\xe0\xc3\x85\xce\x1e\xba\x97\x47\x90\x8c\x04\xcb\x72\x80\x5d\xb3\x11\xee\xe0\xb5\xa7\xd8\x8b\x18\xa1\xad\x03\x53\x05\xcf\xb9\xfd\x6c\x86\x07\x9d\xef\xe5\x13\xf1\x81\x86\x41\xad\x38\x18\x70\x7d\xe0\xd5\x05\xa9\x7f\xd5\x75\xd0\xaf\xcb\x44\xbf\x59\x9b\xe4\xbe\xb1\xc9\x73\xb0\x7f\x0c\x7a\x22\xfa\xc1\xa4\xb6\xf3\x79\x21\x83\x0f\xd0\x60\xa5\x30\x4d\x02\xf4\x64\x03\x81\xe9\x7f\x44\x8d\x70\x7f\x84\x6a\xcf\xb9\x20\xf6\x62\xc7\x58\xa5\xfd\x1e\x58\x71\x33\x18\x34\x9e\xd1\x79\x78\xde\x1e\xf2\x52\x91\xf3\x45\xdd\x81\x17\xb8\x50\x9c\xa2\xf2\x16\xa1\x1d\xde\x22\xd4\xfa\xb0\xe0\x8c\x2c\xdb\x11\x79\xe0\x5e\x51\x22\x5c\x79\xaa\x37\xb9\xb6\x99\x89\x3e\xab\xc8\x87\xb8\x00\x20\x34\x50\x15\x9f\x58\x4f\x5a\xb0\x73\x9b\x62\x67\xb9\xe9\x72\x43\x3e\x43\xf9\x6c\x9c\x4f\x50\xaf\x20\x9b\x24\x67\xfa\xb8\x57\x20\x90\x80\xbf\xc9\xcc\xb8\xa1\xcc\x6b\xb2\x49\xca\xbb\xe2\x4a\xb9\x37\x80\x0b\x5e\x6f\xd6\x27\xa4\xf4\xdd\x65\x94\xe3\x4f\x9f\x90\xf9\x6e\x17\x57\x5e\x0d\x54\x0b\x52\xd5\xa0\x22\xb5\x2a\x72\x9f\xcf\x47\xed\x47\x89\x5d\x27\x93\x95\xc1\xe9\xc0\x17\xdd\xf4\x6c\x4d\x16\x01\x89\xba\x65\xf4\x2e\x7d\xaa\xbe\x20\x32\x11\x26\x81\x78\xb1\x36\xbc\x33\xea\x10\x3e\xda\x23\xc0\x0b\x6b\x2a\x7d\xea\x9d\xf8\xa7\x06\x07\x24\x85\xef\x47\x92\x03\x7a\x01\xed\x7e\x28\x4b\xf0\x99\xea\xfa\xe4\xba\xae\x43\x34\x6f\xab\xdd\x07\xe4\x9b\x67\xff\x12\x27\x43\x74\xfe\x0c\x8d\x47\x0d\x0b\x45\x0b\x75\xd5\xb6\x02\xfe\xb7\xad\xf7\x9e\xaf\x53\xd7\xf6\x1d\xd3\x49\x2c\x20\x57\xa0\x25\x47\xef\x63\x8e\xd5\x94\xf2\xfd\x38\xb1\xb3\x87\x71\x62\xbf\x35\x3e\xec\xac\x13\x01\xb5\x39\x3b\x4d\x70\xd8\x03\x71\x4a\x06\xb9\xb5\xf3\x58\x3f\x54\x0b\xbf\x39\x2a\xa0\xa8\x3d\x81\x1d\x48\xb2\x4d\x98\xd8\x03\xeb\xd5\x82\x94\x0d\xbe\xdf\xe6\xa9\x72\x58\xef\xdc\x03\x9d\xed\x0e\x76\x72\x9f\xec\xca\xd5\x0d\xdc\xc0\x8e\x68\x41\x5f\x40\x6e\xc2\x0c\x6a\x56\x1d\x2c\x58\x07\x67\xd9\xf0\xaf\x06\x1f\x77\x1f\x26\x66\xb3\x9e\x0f\x8e\x09\x0c\x41\xdc\xdd\x41\x68\x23\xf2\x42\xc2\xa0\x4a\x67\x0e\x08\xff\x98\xda\x0b\x27\xa0\x0c\x36\x3b\xe3\x3e\x9d\x85\x79\xb1\x57\x2d\xa3\xfb\xef\xf9\xd7\x4a\x43\x8b\x61\x4d\x3a\x42\x59\xe3\x2d\x30\x12\xfc\x1c\x8b\x09\x02\xc6\x9a\x6f\xa4\xac\x33\x16\x93\x31\x9f\xe0\x48\x8f\x2c\x42\x07\x43\x83\x1b\x8c\x91\xe4\xbb\x44\xb7\x8e\x6d\xba\x60\x3e\xde\xa7\x3b\x07\x87\xe3\x85\x9d\x3a\x3d\x9b\xcb\xc7\xf5\xde\x76\xac\x9f\xa1\x7f\x4c\x02\xe0\xce\xce\x21\x3b\x24\xec\x23\xf4\x2e\x0d\x6e\xc4\xbf\xcb\x6d\x6e\xc3\x22\xcc\x47\xdb\xad\x73\xe9\x74\x65\xa6\x83\x81\xc5\x2d\x63\x5d\x89\x44\xfd\x00\x67\x79\x65\x22\xcd\x09\x75\x26\x5d\x2a\xbd\x7b\x2e\x23\x5b\xd6\xcc\x11\xda\x3b\x54\xd9\x3a\xa4\x99\x7b\x2d\x43\xa8\xae\x5d\xea\x28\xe3\x06\xef\x8f\x3d\x2e\xc0\x48\x23\x6c\x28\x87\xcd\x73\x5a\x20\xdc\x85\xf6\x97\xa8\x94\x1a\x2a\x4b\xa9\x4a\xae\xd1\x5d\xce\xa6\x80\x82\xf4\xd2\x2e\x1f\x14\xac\x48\x87\x1b\x20\x6c\xd0\x0b\xeb\x03\x8d\xa5\x08\x81\x19\x52\xe1\x86\x0c\xcd\x69\x4e\x05\x3d\x11\x63\x3a\xc1\x62\xcc\xb4\xa9\x69\x42\x98\xb6\xfd\x74\xd9\x06\x39\x36\xe5\xb4\x97\x87\x9e\xdd\xae\x80\xf3\x9e\x80\x73\xa0\xf9\xd7\xae\xb6\xc0\x81\xca\xf8\x8a\x70\xc8\x0b\xde\xf9\x29\x81\x3c\xaf\x42\x1b\xe9\x39\x4d\xa3\x8c\xf3\xec\x5e\x39\xe7\xfd\xe9\xea\xdd\xdb\x44\xed\x24\xb6\xb8\x8f\x29\x4a\xa3\x68\x48\xeb\x7d\x1e\x92\x9d\x53\x53\x80\xb6\x61\x30\x88\xc3\x99\x29\xb4\xaf\x62\xa1\xe7\xa5\xdb\x6a\xca\x71\x61\x66\xa6\xd0\x56\x53\xf9\x35\x7b\x43\xc5\xbb\xbe\xe7\x5a\x89\x2d\xea\x8b\x22\xc1\x37\x14\xd2\xb4\xa5\x51\xb1\x59\x5d\x2b\xcf\x1d\x71\xfe\x16\xfe\x8e\x29\x52\x11\x68\xef\x16\x31\x0a\x66\x02\x26\xf5\x02\xc5\x30\x23\xeb\x8c\x57\x92\xa4\xa3\x94\xd6\xd3\x35\xdf\x14\x74\x8f\x35\xb2\xcd\xd5\x34\x2c\xe8\xd4\x73\xd9\x3e\x81\x1c\x0b\x1a\xfb\x89\x43\xf0\x62\x31\x51\x31\x46\x7b\x0d\xa2\x62\x5c\x4c\x06\x03\x3b\xb3\xc5\xa4\xae\x3b\xb0\x95\x1d\xa4\x94\x72\x25\x9a\x41\x02\x36\x65\x7a\x03\x3d\x31\xe8\x45\xe3\xae\x2b\x08\x61\x00\x3d\x56\xaf\xd6\xbc\x9c\xd1\x4a\x5f\xa1\xae\x13\x7f\x0b\x30\xc9\xdd\xeb\x84\x6d\x95\x87\x8d\xcc\xbd\x2c\x52\x4d\x70\x66\x55\xc7\x49\x97\x3a\x92\xa5\x9b\xaf\x08\x28\x30\xeb\x46\x50\x76\x1c\x62\xa6\x39\xc4\xac\x3e\x66\xf0\x76\xb2\x1a\x1e\x32\x7b\xcd\x95\x66\x5a\xb7\xb5\x71\x6f\xf4\x7c\x21\xf6\x7c\x40\xb3\x8d\xf1\x3a\xf9\xcb\x8f\x97\x1f\x7e\x9a\x36\x02\x5c\x83\x28\xc3\x0c\x95\xe0\xc2\x90\xa3\xdd\x2e\x66\xe3\x7c\x42\x94\x48\xa4\x6f\xbf\x4d\x9e\xdf\x5f\xcd\xca\x75\x0b\x71\xda\xe6\xbf\xdb\x5f\x84\x35\xd6\x0a\x94\x91\xf5\x5e\x10\x6d\xb7\x97\x3e\x7a\x71\x20\x5a\xc3\x73\x3f\x07\x74\xed\xa2\xda\x48\xb9\xc3\xbf\xeb\xe4\x2a\x73\x7f\x8d\xf1\x5e\x12\x56\xc5\x2c\xf0\xb4\x46\xb8\xd0\x5e\x74\x87\xcf\x5a\xa3\x56\x3d\xbd\xa1\xe2\x2f\xef\xdf\x50\x91\xc5\x9e\x4b\x32\x94\x31\x1b\x84\xeb\x4b\x05\x64\x79\xae\xcd\xf4\x75\xfb\x90\x5a\xa9\x47\xc3\x5d\x73\x42\xc7\xe2\xe9\xa9\x02\xc1\x36\x97\xb2\x31\x33\x8d\xf9\x24\xb8\x49\x0b\xeb\xe4\xee\x60\x5b\x70\x89\x33\xd2\x1f\xe1\x5c\x6e\x9d\x0d\x19\x4f\xb0\xf2\x88\x11\xe0\x06\x23\x2f\x12\xdd\xa6\xf7\x0d\xe3\xd9\x04\x39\x71\x7d\x4e\x46\x67\xf3\xef\x98\xef\x41\x33\x1f\x0e\x91\xbc\xdc\x7f\x59\x57\xe3\xf9\x04\x6f\x94\x23\x44\x09\x21\xc5\x95\xe7\xbc\xc9\x24\x6d\xd1\x2a\xcb\x8c\x68\x55\xd1\x92\x80\xbf\xdc\x06\xfc\xe5\x72\xab\xdc\xca\x2c\x6b\xe9\xbe\x8e\x2c\x11\x5e\xd6\x07\xb6\x14\x77\xc3\x2c\x70\xb0\x51\xfc\x25\x2a\xc9\x08\x67\xc4\xa2\xca\x94\xdf\x65\x67\xc3\x61\x89\x00\x4f\xa0\xf9\xf1\x6c\x5c\x4e\x10\x72\x78\x34\xda\xc7\xc7\x04\x43\xe1\x0d\x19\xe1\x19\x29\xfc\xd9\xd8\x7c\x37\x3b\x1b\x0e\x37\x28\xce\x49\x5c\xa9\x57\xe3\xcd\x04\x59\x87\x79\x3e\x18\x54\xf0\x63\xb7\xab\x3a\xb0\x66\x6c\x91\xf6\x2b\x59\xc1\x39\x1f\x41\x21\xed\x58\x34\x18\x48\x16\xa6\xab\xce\x60\x10\xf3\x71\xd7\x8b\x09\xe1\xe3\x7c\x82\x35\x09\x97\x7f\xa3\xfa\xf0\x41\x6a\xcf\x30\xec\xa6\x20\x9e\xa3\xea\x08\xca\x6e\x28\x59\x86\xc3\xbc\x7b\xae\x81\xb2\xd8\xb9\x96\x33\x3b\x6f\xce\xec\x1c\x66\x16\xb6\xa9\x99\x58\x2c\x77\x9e\x99\x5b\x21\x2f\x2d\x35\xb7\x6c\xcf\xdc\x42\x91\xae\xb9\x65\xde\xdc\x42\x21\x3d\xb7\x65\x9f\x90\xae\x1a\x72\x83\x8e\xbb\x5e\x4c\x88\x18\x97\x76\x66\xe5\xdf\x1e\xd3\xba\x54\x92\x7a\x47\x84\x3a\xeb\x8c\x50\x67\x3a\x42\x9d\x6a\xe7\x14\xd4\xdb\xd7\x69\x65\x98\xeb\x25\x56\x73\x80\x59\x23\x00\xa3\x9e\x56\xb3\x25\x9d\x6f\xac\x4a\xdb\xda\x88\x8c\x60\xf2\xa0\xbf\xc2\xb4\x6a\xbf\x23\x20\x1a\x99\xa6\xdf\x81\x88\xa4\xdd\x2a\x5c\xc9\x4a\xf9\x2d\xe0\x48\x5b\xaa\xc3\x3e\x22\x15\x6d\xdf\xf9\xce\x06\x7a\x3c\xe2\x66\xe4\x60\xe4\xb0\x6e\x6c\xbe\xc4\x16\xd6\xef\x7c\xd8\x75\x55\x86\x60\x09\x3d\xe7\x9b\xe1\xa3\xfd\x2b\x6c\x45\x6b\x73\x1a\x39\xc4\x57\x8d\x26\x70\x68\x82\xb7\x7b\x27\x18\x2e\x8b\x3c\x51\x75\x0d\xbb\xd4\x51\xee\xd0\x1a\x49\xbe\xb4\x9e\xae\x32\xfe\x19\xec\x5c\x17\x95\xb5\x74\xb9\xd4\xd1\x9e\x07\x81\x15\x4c\x9b\x76\xb1\x86\xda\x21\xac\xa4\x61\xf6\xa7\xe0\x24\xf6\x47\xef\xd5\xbe\x5e\xd4\x19\x81\x3a\x6d\x23\x7a\x07\x8e\xb0\xf0\x51\x84\x8b\x10\xc9\xb8\xa5\x20\x60\xca\x94\x22\xff\xe9\xf2\x05\x30\xc1\xf1\xf2\xbd\x76\x0e\xee\x5b\xc8\xec\x2e\xf1\xf6\x2c\x2e\x49\x96\x80\x91\xe9\xc5\x92\xe5\xf3\xc6\x70\x29\xde\x9a\x40\xa4\xb4\x3f\x6a\x0c\x14\x25\xd7\x65\x29\x45\x41\xdd\x1b\x29\x6d\x90\x77\x1d\xc4\x43\x85\x69\x30\xa8\xc5\xa1\x3e\xe3\xcf\xc9\xe8\xec\xe9\x53\x17\x66\x33\xe6\x13\xcc\x8c\x18\x13\x5c\xfc\x4c\x63\xbf\x8a\x98\xe1\xc2\x28\x1d\x95\x49\xf0\x8e\x6c\xef\x58\x9e\x6b\x1b\xcb\x1b\x8d\x40\xe1\x52\x99\x74\x53\x08\xe5\x7e\x4e\x8d\x31\x36\xcc\x9e\x80\x19\xa1\x63\x37\xd0\x49\x4f\x7e\x05\xd8\xb7\x94\x68\xca\x9d\x73\x67\x49\xbe\x48\x11\x5a\x19\x62\x41\xec\x2f\x5d\x20\x5e\xd7\xe6\x14\x90\xa2\x63\x9f\xa6\xb1\xc4\x02\xe1\xfe\x69\xad\x96\xec\xd2\x6f\x5a\x1b\x4c\xb2\xdd\x2e\xfe\x9a\x96\x33\xd5\x32\xaa\x11\x0e\x71\x7e\x60\x59\x70\x41\xc6\x93\x1e\xdf\xa7\x32\x68\x3f\x53\xb6\xa0\x8f\x4b\x5e\xde\x15\xe7\xc1\xaf\x94\xf6\xc4\x60\x50\x28\x8e\x49\x40\x98\x6d\xcc\x93\x15\xad\xaa\xec\x86\xda\x17\xf6\x09\xc2\x3c\xa9\x44\x36\xfb\xec\xbd\x82\xdf\x08\xb7\x14\x2f\xdc\x95\x41\xa8\x37\x2b\x8b\xaa\xcc\x75\xdf\x71\x92\x24\x05\xaa\x63\x81\x23\x98\x96\x93\xbb\x25\xcb\xe9\x89\x96\x54\x58\x71\xa3\x9c\x34\xd2\x93\x68\x68\xd2\x99\x80\xa4\x56\x63\x4d\xcf\x9a\xf2\x25\x2e\xba\xf7\x80\x55\x4f\x00\x3b\xea\xef\x01\x0b\x85\x1d\xec\x82\x03\xd8\x56\x65\x73\xa9\x5d\x0b\x86\x65\x3c\x8f\x0f\xd4\xcf\x60\x41\x53\x91\xac\xd9\x6d\x29\xfe\xe8\x52\xc6\xd4\xa8\xae\x9d\x0f\xdf\xa5\x0f\x6a\xd6\xa0\x02\x14\x61\x4f\x17\xcf\x70\x70\x53\xa7\x25\xd6\xd7\x48\x9a\xd5\x84\xe2\x4a\xc5\xc1\x4c\x21\xbe\xd0\x82\xe0\xc5\x05\xce\xf0\xa7\x27\x5b\xa6\x5f\xe0\x0a\x9d\x57\x41\x5e\xcc\x2f\xdf\x6e\x00\xcd\xa0\xc7\xf2\x5c\xa4\x30\xa8\xa4\x63\x50\xcd\xc2\x4c\x15\x66\xba\x70\x7b\xa0\xef\x5a\x89\x96\x9c\xd6\xb9\x90\xe2\x3b\x44\x43\x7d\x50\xc6\xde\x4c\x5b\x38\x1c\xe2\x00\x07\x64\x84\x56\x09\xe3\x1c\xe5\xf2\x32\xb1\xc1\xa0\x74\xbd\x5e\x05\xc2\x72\x5f\x47\x95\x58\x1d\x95\x75\x4e\xca\xec\xdd\xff\xe9\x45\x56\xfc\x4e\x9c\xe8\x5b\xf9\x44\x45\x79\x9c\xfc\xee\xc9\x96\xd7\xbf\x3b\xb9\xa6\xb3\x6c\x53\xd1\x93\xfb\x72\xc3\x4f\xb2\xf5\xfa\x64\x99\x55\xb2\xf4\x82\x15\xac\x5a\xd2\xf9\x89\x13\xfb\xe5\xb1\x60\x85\x28\x4f\x98\xa8\x4e\x16\x8c\x57\x42\x9d\x92\xe4\xe4\x63\xe9\x5a\x2f\x4c\x07\x65\x71\x32\x87\xc0\x15\xf8\x30\x55\xb4\x3a\x99\x6f\xb8\x72\x95\x72\xed\x62\xd9\xf9\xc9\x2c\x2b\x4e\x66\x59\x9e\x9f\xfc\xfc\x49\x05\xb6\xa0\x9f\x3f\xc9\x36\xc4\x92\x9e\xfc\xfc\xc9\xed\x64\xf9\x14\xc8\xcb\xc9\x3a\xab\x2a\x39\xc0\x52\x97\x01\xcb\xd0\x33\x0f\xaf\xe8\x99\x03\x2b\xfa\xf9\xd3\xc9\xb2\x2c\x3f\x57\xc9\x27\x54\xfb\xb2\x60\x45\xfa\xa7\x38\xf7\xaf\x99\x5c\x5e\x33\xf9\xd3\xa7\x92\xc9\x2e\x49\xcc\x00\x12\x48\xfb\xc9\x48\xa6\x58\x07\xc9\x78\x7f\x8e\xf9\x44\xad\x05\x68\x6f\x75\x54\x8d\x77\xf1\x80\x47\x76\xac\x29\x33\x21\x84\xcb\xba\xd6\x2f\xbb\x83\x34\x17\x60\x2a\xeb\x55\xa4\x3f\xd2\x6e\x2c\x77\x5a\xb4\xdd\xa0\x8d\x1f\xb5\x33\x06\xab\x48\xa1\xd9\xeb\x13\x39\x86\x6a\x30\xe8\x0b\xd4\xb9\x0d\xde\x96\x62\x29\xe7\x5e\x73\x20\x30\x6b\xc1\x66\x48\x4e\x5e\x2f\x60\x2d\xe6\x6c\xae\x4b\x79\x85\x30\x70\x3c\x27\xf0\x19\xb0\x5a\xd7\xf4\x04\xf6\xce\xfc\xe4\xfa\xfe\x44\x7d\xaa\x6c\x5e\xf0\x0d\x3d\x59\xf0\x72\xe5\xed\x05\x9d\xa0\x0a\x14\x2a\x1e\x70\x37\x86\x06\xa0\x92\x1b\x8b\x28\x4f\xae\x37\xd7\xd7\x39\x85\xb5\x32\xdb\xfe\x63\x4b\xfa\x22\xb4\xcd\xb6\xca\xa9\xf1\xb2\x10\x6a\x62\x01\x92\x59\xca\xf0\xda\xe8\xa9\x48\xa1\x43\x8f\x58\x67\xe8\x51\x36\xe9\x55\x09\xab\x34\x8f\x30\x3f\x2f\xc7\x15\xe8\x1b\xa4\x88\x61\xda\xf0\x1e\x39\x34\x26\x0b\x6d\x85\x5c\x54\xa6\xfd\x82\x37\x31\x75\x11\xc2\x47\xf9\x08\x80\x0e\xc3\xc7\xff\x3d\x61\xe4\x5e\x57\x7d\x9f\x89\x65\xac\x42\xdb\xc7\x85\x97\x59\xac\x30\xd0\x2f\x37\x92\x37\xef\xf0\xe2\x38\x0b\x94\xf9\x7e\x2e\x2c\xad\x90\x6a\xbd\x74\xe9\xb5\x70\xd6\x5d\x02\xcc\x01\x1a\x47\x2e\x6f\xd3\xec\xae\x00\x62\x9f\xd8\x02\xf4\x4a\x99\x5c\xbc\x7f\x3f\x7d\xf1\xf1\xc3\x0f\x53\xed\xf8\xf7\xfe\xc3\xbb\xf7\x57\x83\x41\x1c\x0c\x92\x15\x27\xf9\x6e\xd7\xed\x65\x9d\x37\xbe\x07\x50\xfc\x62\x44\x9e\x87\x6e\x23\x61\xfa\x2f\xf5\x41\x5d\x6e\xe8\xa8\xd9\x20\xea\x98\x92\xe3\xc6\xe3\x4d\xe1\xc1\x41\x79\x99\xcc\x8e\x1d\x99\x57\xc5\xcf\x9d\xf0\xde\xe7\x50\x1a\xb2\x20\x16\x2d\x29\x90\x76\x48\x78\x81\x01\x77\xb7\x13\x5d\xae\xf8\x52\xe4\xda\x27\x06\xae\x79\xb9\x62\x15\x25\x34\x99\x01\xf8\x1a\x55\xac\x50\x5f\xb4\x9d\x0d\x8d\x57\x2d\xed\x89\xa4\x53\x78\xaa\x71\xe4\xae\x00\xe5\x78\xeb\x3b\xf2\x5f\xb4\xd4\xed\x2d\x85\xbf\x40\x61\x18\xb8\xf2\x44\x3c\x32\x30\xbb\x44\xa8\x88\x4b\x88\xf6\x56\x4a\xbc\x71\x39\xf1\x67\xfb\x85\x03\x63\x70\x76\x58\x32\xa6\x93\x33\x6e\x83\xde\xcf\xcc\xe9\xe7\x26\x40\xd3\xa0\xc7\x15\x73\x0d\x2c\x40\x08\x11\x4e\x67\xa9\xbe\xa4\xd0\x08\x2f\x55\x38\x7c\x86\xb8\xe2\x6d\x59\x63\x28\x9f\xb5\xed\xc7\xc6\x1a\x6e\x55\x07\x69\xa1\x9d\x75\xaa\xb4\xcb\xa5\xfd\x2e\xab\x7e\xac\xe8\x3c\xed\x9f\x1a\x0d\x24\xa8\x98\xe4\x7d\x7f\x2e\xbf\x4e\xfd\x89\x52\x0e\xb8\x14\x9a\x02\x30\x33\x36\x6c\x46\x89\x4b\x94\x52\x52\xe2\xad\x73\x17\x4a\x29\x36\x7e\x3e\xa9\x2f\xeb\x7d\x80\x35\xf3\xd8\x39\x5e\x9b\x19\x7a\xa1\xf2\x24\x98\x99\x00\x77\x40\xdd\x53\xb2\xca\x58\x61\xbf\x49\x49\xc8\xdc\xb8\x21\x29\x07\xa3\xda\x7e\xe8\xb6\xae\xb1\x40\xf5\x7d\x08\x69\xb1\x82\xec\x3e\x81\x18\x1f\x3a\x7e\xc6\xad\x67\x36\x63\x58\xd0\x90\x5f\x22\x6d\xd5\xa9\x8d\xaa\xdd\x7f\xa8\xd3\x24\xa9\x37\x35\xf6\x68\xb9\x03\x61\x52\xd2\x95\x9f\x5c\xad\x91\x1a\xd2\xcf\x7b\x34\x1c\x02\xc0\x80\x14\x86\x21\x8b\x3d\x9f\x34\xf3\x8a\x7b\x80\x04\x25\x39\x3d\x2b\x5d\xdd\x72\x38\x54\xed\x0a\x42\xc7\xa5\xba\x3b\xbc\xc4\x5a\x98\x93\x6b\x75\x00\x0a\x64\xf7\xf1\x60\xd0\x67\x10\x39\x7d\x86\xdc\x3e\xd6\x62\x56\x92\x24\x26\xd3\x96\x29\x8e\xdc\x4d\x98\xfc\xbd\x64\x05\x34\x5c\xd7\x08\x9b\x35\x89\x0b\x87\x0d\x12\x78\x86\xa7\x2b\x1c\xba\x77\xa7\xb7\x36\xd7\x6c\xf4\x2c\x72\x39\x6a\xa3\x65\x56\x2d\x23\xbc\xe1\xb9\x4a\xf8\x78\x00\x0a\xe3\x90\x87\xa1\x67\xba\xb7\x28\x70\x16\xe1\x87\xda\xeb\xb3\x46\x92\x32\xb7\x9c\xd3\xed\xe7\x2c\xf7\x47\xf8\xa9\xfb\xf1\xef\xe4\xde\x8b\xa5\xfb\xfb\xe3\x63\xe9\x4c\xe0\xd6\xa3\x33\x56\xb4\x03\xd1\x7e\xfb\x54\x81\x07\x33\x83\x78\x6a\x17\x18\xac\x72\xd8\x24\xd4\xf3\x32\xe7\x44\xf8\xbf\xfe\x54\xa9\xc0\x1a\xde\x76\x3f\x02\x6d\xbc\x4d\xf8\xd6\xaa\xd2\xb3\xae\x9c\x9a\xf1\xee\x68\x40\x9b\x34\x32\x2f\x35\xbf\x14\x02\x06\x03\x3f\x6e\x9d\x79\x89\xac\x1d\x9a\x72\x80\x0b\xca\x42\x9f\x2b\xef\xdb\xf6\xa4\xc8\x2d\x70\xa5\x81\x60\xc3\x3c\xd7\x15\xce\x02\x8c\x24\x17\x9e\xfe\xa8\x4c\x29\xc2\x53\x33\x7f\x4d\xa6\x14\x1d\xb5\xf8\x8d\x42\x38\x0f\x84\x5e\x3e\x18\x8a\xf8\xeb\xf7\x67\xd3\x43\x30\x48\x07\x72\x6b\xd0\x3a\x25\xd3\x62\x40\x97\x02\xb5\x8e\x90\xd2\xdb\x91\x4c\x43\x08\x66\x73\x4e\x93\x75\xb9\x8e\x51\x12\x02\x1c\x19\x10\x21\x77\x0d\x3a\xfc\x06\xed\xea\x48\x03\x57\x47\x51\xd7\x90\x7d\xa8\xe5\x46\xd0\xfe\x12\x42\xdb\x61\xbe\xed\x47\xe3\x72\x2f\x14\x81\x1c\x4b\x03\xb0\xcc\xee\xec\xb1\x68\x48\x1d\x72\x58\x0d\xec\x81\x46\x76\x63\xb6\x88\x85\x4e\xa6\x71\x25\x0b\xd2\x79\x13\x75\x4d\xde\x7d\xed\x96\x21\x35\xd2\x91\xc9\x96\x41\xf1\x32\x3a\x2b\x1d\x74\xdb\x70\xe8\xc8\x82\xe4\xdf\x00\x5c\x42\x67\x51\xee\x55\x5e\x7a\x65\x92\x41\xa8\xb7\x4a\x09\x22\x8f\x9e\x06\x0d\xf4\x12\x8a\x64\x10\x5f\x14\x7e\x83\x94\xd2\x31\x6d\x1b\xb4\x02\xdc\x22\xc9\x40\x04\xe0\x19\x51\xa4\xc7\xc9\x5b\xe3\xcc\x09\xf0\x99\x1b\xc8\x2e\x9f\x23\x3c\xf3\x9c\xba\xc1\x41\x7a\x33\x18\x6c\x24\x0f\xa8\x99\xbc\x39\x19\x41\x06\x10\x48\x98\xf8\x6e\x11\x6f\xd0\x79\x9e\x54\x9b\xeb\x4a\xf0\x78\xe3\x52\x5a\xa6\x79\x6f\xe6\x5d\x80\xc5\x78\x33\xc1\x73\x6d\x8c\x0e\x5e\xe0\x1c\xf5\xd8\x90\x7c\x4a\xd3\x27\xdb\xbc\x4e\x9f\x6c\x67\x0e\x1f\x8c\x0e\x1d\x7c\x68\x86\xa3\xa7\x11\x92\xdf\x7e\x18\x73\x28\xd8\x98\xd6\x69\x91\x6c\x6b\xdc\xc1\xcb\xe4\xc0\xca\x78\x29\x68\x84\xec\xc0\x77\x25\x26\x1b\x90\x2d\x9a\x50\xfb\xa4\xad\xa7\x66\x44\x8c\x47\x13\x5c\x76\x68\x11\x33\x52\xfa\x18\x69\x92\xcc\x7b\x40\xb9\x2d\x55\xb2\xc2\x81\xde\xc4\xcc\x0f\xff\xb3\x89\xda\xe3\xe8\x3d\x2f\x6f\x78\xb6\x5a\x65\x82\xcd\x3c\xcd\x56\x75\x72\x7d\x7f\xf2\xe3\x87\x1f\x4e\x66\x59\x51\x94\xe2\xe4\x9a\x9e\x80\xbe\xe4\x8e\x89\x25\xf3\x42\x02\x93\x93\xf7\x39\xcd\x2a\x78\x0b\xaa\x10\x15\x22\x58\x28\x8b\x6d\x25\x68\x06\xe1\x81\x8c\x7c\x7a\xb2\xcd\xea\xe4\xc9\x96\xd5\x9f\xb0\xfc\x36\xc2\x6a\x7f\x9a\xfc\xdb\xa3\x63\x3e\xe4\xe9\x1a\x61\x46\x46\x70\xde\xf8\x63\x41\x9c\x38\x52\x12\x4e\x17\xab\x59\x0c\x87\xb5\x6d\x54\xa0\xa3\x5a\x94\xb7\xff\x60\xc0\x86\x43\xcb\xe8\x13\x42\x58\xad\x7d\x90\x9e\xfd\x9c\x3c\xbb\xe9\x85\x69\xfa\x42\xcb\x90\xc7\xa9\x16\xf2\x3c\xa9\xf0\x09\xde\x11\x3e\xc1\x35\x31\x1f\x61\x36\x3c\x45\x8e\x11\x35\x4a\x16\x61\xcf\x4e\x89\x10\x20\xc1\xf4\x0a\x67\xa0\xf2\x74\x38\x79\x38\x99\x34\x90\xc9\x5a\xbb\x06\x32\xd5\x73\xb2\xad\xd1\xb8\x98\x90\x6d\xa6\x20\x95\x6a\x5c\x10\x8e\x8c\xfe\xf6\xa8\x99\x2a\xa4\x00\xaa\x49\xa5\x9a\x9d\x62\x5c\x4e\x7a\xad\x0e\xb3\xc1\x20\xce\xa0\xa3\xac\x06\xf8\x9f\x71\x39\xd9\xed\x4c\xc7\x1a\xcb\x49\x83\x69\x01\x3c\x23\xf3\x9c\x8f\x32\x84\x65\x79\xc2\x3d\x19\x6d\xe3\xa5\x5a\xec\xf0\x6b\x8d\x23\x70\xe8\x83\xe8\x00\xf9\xc7\x78\x34\x39\x94\xdc\x5a\x01\x36\x3c\xd3\x89\x5d\x0f\xb3\x13\xa6\xb0\xc7\xc6\x68\xab\xd2\x43\xa5\x57\xec\x0b\x2b\xaa\x67\x36\xc8\x6a\xcd\xcb\x2f\xf7\xc7\xd6\x9a\x95\x85\xc8\x58\x41\xf9\x91\xd5\x66\xe5\xfa\x98\x42\x2b\xc9\xf3\x3d\x58\x8e\x55\x4f\xa9\x3c\xba\xc7\x0e\x56\x79\x49\x1e\xfd\x65\x72\x10\x92\xbe\x1d\x3b\xdf\x0e\xea\xf0\xc8\x0a\x30\x9e\x23\x27\x2e\x58\xd3\xc7\xd5\x99\x95\x9c\x4e\x1f\xb7\x19\x94\x6a\x59\xdb\xde\x0f\xc2\x89\x84\x53\xb6\xbe\x3f\x6a\xc2\x74\x79\x5a\x6c\x56\xf4\xb8\x29\xd6\x35\x9e\x3e\x6a\x73\x96\x00\x8e\xf3\x98\xf6\x57\xea\x46\x9b\x3e\x7e\x64\x4a\x9d\x37\xd5\x13\xa7\xa3\xd4\x8f\x9e\x08\x25\xd1\x1f\x5b\x5c\x2b\x0a\x8f\xdc\x05\xf4\x8b\x78\xc6\xab\xdb\x3d\xc8\x2c\x5e\x41\x49\xa7\x9e\x96\x8b\xa3\x1a\xb4\xfe\xe9\x47\x63\xa0\xe0\x15\xbe\xc5\x37\xf8\x1a\xdf\xe3\x29\xbe\xc3\x97\xf8\xcb\xaf\x15\x4e\xf6\x56\x78\xa7\xf7\xfa\xd6\x2d\x63\xda\x1f\xe1\x1b\x2a\x52\x4f\x94\xb3\xf1\xff\x9a\x2b\xa9\x0f\x35\xf9\x8a\x67\x2b\x7a\x57\xf2\xcf\x8f\x6c\xbb\x51\xef\x60\x1f\xda\xae\x79\xff\x5e\x2e\xeb\x1b\xb9\xd4\x47\x76\xc3\x8f\xfa\x84\x17\x86\x54\x3f\xba\xfd\xe2\xa8\xf6\x15\x69\x3f\xaa\x41\x76\x64\x83\xfa\x1a\x38\xaa\xcd\xf2\xa8\x36\x59\x75\xa9\x6e\x8c\xa3\xda\xcc\x8e\x6a\xf3\x42\x5d\x2b\x47\xb5\x58\x1d\xd5\xe2\xdb\x4c\x8a\x9c\x8f\x6b\xd7\xab\x73\x78\xb4\x47\xb7\x78\x71\xb0\x9d\x37\x8a\x54\x3e\x6e\x90\x7e\xa5\x83\xad\x73\xba\x2a\x6f\xe9\xc5\xb1\x07\xad\x4a\x4c\x85\x83\xad\x6e\x0a\xf6\xcb\xf7\xc7\x8f\x56\x15\x7f\x60\x3f\x3d\x6e\x02\x74\xf9\x07\x0e\xaa\xe3\x3c\x8e\x6a\x36\x3f\x72\x53\x59\xf6\xe4\xa8\x56\x37\xc7\x6f\xfe\xf7\xea\x22\x3a\xaa\xd9\xd9\x51\xcd\xaa\x17\x8f\x69\x77\x7e\x24\x11\xe4\xf4\x51\x24\x7c\x79\xdc\x2c\xf8\xf0\xdd\x47\xb6\xbc\x38\x72\xc0\x86\xa7\x3a\xaa\xd1\xf5\x51\x8d\x5e\x7a\xec\xcd\x51\xcd\xae\x8e\x6a\x76\xfa\xe8\x9b\xe5\xf6\xb8\x76\xc1\x4b\xa0\x10\xaf\xca\x63\xe7\xf6\x36\x71\x55\x1e\xd8\x67\x8e\x45\x3c\xaa\xe5\x9b\xa3\x46\xac\xe9\xdc\xa3\xe7\xf9\xfa\xa8\xd6\x95\x0e\x53\xed\xb9\x2b\xc3\x69\x1e\xd5\xfe\xfd\x71\xdb\xc3\xb0\xa3\x47\xb5\x39\x3d\xaa\xcd\xf7\x8a\x67\x7d\xf4\x0e\xb9\xf3\x5a\xdf\xcf\x22\x7e\xb8\xfa\xeb\xfb\x23\x1b\xbc\x3c\x6a\xb8\x65\x01\x6a\x77\x1d\xc1\x73\x74\xd3\x61\xb5\x83\x3d\xa8\xb8\xc7\x23\x5b\xfe\xa2\xc3\x24\xeb\x1a\x3d\xa8\x2e\x08\x24\xe8\xe3\x95\x06\xc7\x72\xff\x6d\xf1\xf8\x37\xb4\x8a\x59\xc5\x0a\x8d\x4b\x9c\xa9\xe4\x72\x84\x90\xcc\xd8\x19\x47\x3d\xcf\xa2\x64\x22\x49\x0d\xd2\xbe\x7b\x92\x29\x73\xa5\xf1\x0b\x8f\x08\x21\xd5\x60\x60\xd9\x66\x13\x77\x5b\x22\xc8\x9f\xe5\x01\x1c\xe9\x79\x44\x96\xc7\xec\x78\x09\x23\x6b\xb5\x9f\x77\xb4\x9f\xa1\xc1\x20\x3b\xd0\xfe\xd3\xd3\x7f\xed\x7c\xad\x10\x89\x95\x67\x1b\x8b\x8b\x71\x35\xc1\x05\x04\xd5\x69\x75\xdc\xc6\x8c\x6f\xd3\xab\xee\x98\x98\x2d\xe3\x0a\x6d\x67\x59\x45\x6d\x44\x69\x0a\xbf\x74\x18\x69\x6a\xb8\x70\x35\x72\x78\xa5\x95\x55\xde\x2b\x85\x45\x47\x5f\x98\x21\x20\x3c\xd2\x65\x95\x1a\x25\x75\x08\xc9\x06\x90\x1a\xcf\x2d\x80\x0a\x5e\x92\x37\x99\x58\x26\x2b\x56\xc4\x33\x3c\x47\x78\x41\x46\x67\x8b\xef\x96\x67\x0b\xa3\x65\x5c\x13\x1a\x97\xe3\xc5\x04\x67\xe3\x85\xfb\x94\xb5\xf9\x94\x75\x6d\x87\x22\xeb\xab\x9e\xed\x04\xa7\x4d\xc9\xc7\x2d\xe1\x79\x19\x2c\x4c\x3a\x52\x55\xe7\x99\xa0\xc1\xe7\xdd\x50\xf1\x91\xad\x68\x8c\x70\xe6\xfe\x46\x3d\xdd\x9e\x29\x39\xaa\x6b\x8d\x4f\x04\xb0\xf4\x72\x07\xcf\xd3\x11\xa4\x94\x48\x4f\xb1\x9e\xde\xf4\xf7\x58\x4d\x6d\xfa\x3f\xb0\x9a\xc8\xf4\xdf\x30\xcc\x52\xfa\x3f\xb1\x52\xbc\xa4\xff\x6e\xa3\x12\xd2\xff\x65\x5d\xc4\xd3\xff\x8d\xc1\xcc\x9b\xfe\x1f\x2c\xc7\x97\x9e\x8e\xea\x96\x1f\x83\xd6\xde\x3e\x35\x89\x49\x62\xfe\x7c\x84\x9e\xc6\xfc\xbb\xd1\x11\xaa\x43\xa7\x72\xeb\x20\x04\x0d\xfc\xd7\x6f\xa9\x4c\xb4\x9a\xa0\x0e\xf5\xc0\xb7\xa7\x0e\xd6\x5a\xd6\x4a\x4b\x47\x77\x3b\x9d\x0a\xd7\xb9\x26\x80\x65\xbb\x99\x3c\x06\x80\xf7\xc2\xad\x44\x91\xf3\x66\x90\xdf\x13\x3b\x1b\x8b\x47\x96\x00\x13\x0f\x97\xdd\xdd\x0b\xdb\xbd\x83\x1b\x34\xc9\xef\x34\x08\x54\x5c\x11\x66\xb5\xe9\x02\xa1\xe7\x64\x64\xa9\xcd\xb8\x9a\xf4\xc0\xf9\xd5\x38\xfb\xb3\x45\x1c\x0e\x5c\x28\x13\x43\x46\x8c\x1f\x09\xc2\x1c\x1c\xaa\x4a\x55\x27\xd3\x09\x49\x94\x86\xff\xe9\xd3\xea\x39\x19\x9d\xa1\x6c\x5c\x4d\x08\x8d\xe5\x3f\x7a\xf4\xb5\xf1\x87\x6d\xcd\x82\x40\x48\xb6\x0e\x13\xa0\xca\x62\x2e\xa9\xa4\x6e\xde\x3a\xd2\x8a\x13\xb3\xbf\xcb\xc5\xc9\xcb\x4c\x50\x94\x81\x1b\x9d\xfc\x33\x16\xde\x09\x6b\x57\x57\x46\x3c\x30\x0d\xa8\x10\x62\x30\x75\x79\xa5\xf0\xd1\x06\x92\x1c\x0d\x06\xd1\x74\x1a\xf5\x21\xc3\x3f\x98\xf4\x58\x71\x13\x8f\xf0\xef\xd1\x60\x00\xf1\x82\x84\x9f\xd3\x58\x8c\x73\xf3\xe5\xa9\x80\x40\x46\x9b\x6a\x08\x76\xa9\x38\x1f\x4f\x94\x09\xc0\xfe\x75\xe4\x61\x0b\x74\x63\x78\xdc\x51\xda\x4b\x7d\x7b\x8c\x5f\xc0\x11\x20\xcd\x0f\x9f\xb1\x22\x79\xf5\xe3\x5b\x40\xbe\x9a\xbe\xff\xf0\xee\xe3\xbb\x8f\x3f\xbd\xbf\x9c\x5e\xfe\xc7\xc7\xcb\xb7\x57\xaf\xdf\xbd\xbd\x1a\x0c\x68\x72\xf9\xf6\xaf\x09\x3c\x79\xe9\x8a\x5c\x25\xaf\x74\xbb\xd6\x86\x1f\x1c\x53\x46\xab\xd8\x94\x70\x4b\x83\xb7\x26\x85\x45\xba\x9d\x95\xc5\x82\xdd\x6c\x2c\x77\xe3\xf3\x3a\xa7\xf8\x8e\x33\x1b\xfd\xa4\x0e\x78\x8b\xf3\x69\x78\x28\xf9\xc8\x2f\x2a\x60\xbe\xae\xb1\x52\xf3\xd2\xea\x5b\x75\x57\xda\x64\xd5\xdd\xdd\x15\xdf\xac\xa3\xa2\xbb\x8b\x23\x99\x3c\xa7\xd8\xf5\x89\x7b\xa8\xea\x3d\x84\xca\x0d\xac\xea\x53\xd0\xf1\x43\xc4\x61\xb8\xe5\x1e\xde\x55\xfe\x4d\xd5\xce\x16\x67\xc2\x2d\xb4\x19\x0e\x50\x2c\xbd\x38\x26\xd4\x20\xa5\xbe\x13\x86\x57\xac\x6d\xb3\x13\x90\x46\xd0\xc1\xc9\x0a\x64\xc9\x72\xf7\x55\x22\xe4\x55\xc2\x69\x56\x95\xc5\xf4\x8e\x89\xe5\x14\x9a\x9f\x82\x5d\xba\x98\x4e\xed\xe5\x42\xc3\x55\xac\x11\x16\xb5\x06\xeb\x8b\x7e\x2c\xac\xfb\xc4\xfc\xc7\x0f\x3f\x5c\x9a\xd0\x04\x0a\x6e\x11\xde\x37\x7a\x5e\xb7\x1a\x66\xb4\x5d\xcc\xdc\x2a\xa6\xf5\x56\x46\xdf\x97\xac\x5a\x67\x62\xb6\x34\x59\x56\x90\x72\x7d\xed\x1b\xa8\x40\xd1\x93\x9f\x5d\x7f\x0d\x76\x76\x28\xa0\x10\xd6\xf2\x40\x83\xe3\xa6\x36\x37\x8d\xa3\xac\xba\x2f\x66\x11\x36\x49\x5e\x78\x72\x9d\xcd\x3e\x5f\x6f\x78\x41\xb9\x8d\xdf\x8d\x23\x1d\xd7\x11\xa9\x4c\x5b\x10\xb8\x8a\x1a\xed\x2c\x00\xd4\x9e\xee\x6d\x83\x27\x53\xb9\x71\x61\x62\x01\x7d\x48\xb7\xa5\x5a\x2a\x0b\x13\x0e\x82\x99\x89\xc2\x14\x9e\xaf\x5c\x79\xd4\x79\x71\xe6\x42\x77\x5e\x82\x5d\xfe\x1b\x72\x26\xd4\xcf\xb7\xef\x63\xfa\x28\x7d\xb4\xe3\x34\xf4\x03\x7d\xdb\xd3\xe6\xad\x3a\x18\xb4\x2f\x5a\xdf\xe7\x52\x5d\xb2\x92\xe1\x70\xbf\xec\x86\x93\x8f\x8f\xbb\xc6\x1a\xe6\xb6\x87\x3d\xd9\x1e\xe9\xe2\xd6\xc0\xf5\xb7\x97\xdc\x4d\xce\x56\x2b\xca\x9f\xdd\x66\x39\x9b\x67\xa2\xe4\x47\x3a\xb6\x59\x52\x94\x05\x49\xa8\x5d\xa6\x42\xad\x0e\x8a\xbc\x34\xd4\xa5\x06\xc0\xfd\x98\xdd\xa0\x18\x0a\x8b\xec\xe6\x55\xc9\xd5\xb2\x83\xd7\x4b\xc7\x53\x81\x24\x5d\xf8\x8a\xad\xe1\x14\x52\x24\xeb\xc4\xac\x3f\xa9\x08\x4f\x40\x35\x62\x3c\xcd\xb7\xba\x8e\x62\x45\x58\xc1\x1c\x28\x5b\x17\x10\x1a\x90\x0f\x95\x8f\xff\xcb\xbd\x01\x71\xec\xfa\x04\xb8\x65\x70\x07\x54\x9b\x0a\x58\xd0\x53\x85\x1f\x00\x5e\xab\x31\xab\x3e\xf2\x8d\x58\xde\x37\x53\xea\xb9\x26\xe2\xb6\x2a\xc3\x20\xab\x34\xb3\x21\xd9\x15\x82\xcb\x6f\xcc\x93\x17\x3f\x5e\x7d\x7c\xf7\x66\xfa\xf1\xe2\x0f\xd3\x57\xef\x3e\x4c\x7c\x37\x25\x58\x3d\x91\xdd\xbc\xa1\x22\x7b\x55\x7a\xb9\xf7\xcc\x0b\xfb\x10\x53\x49\x31\xf4\x49\x02\xf7\x52\x73\x5c\x2a\x1d\x7d\x33\xae\x70\xbb\x96\xfb\x02\x86\x26\x78\x43\xb2\x66\x0e\xf3\x22\x61\x95\x99\xcf\x0d\x1a\x0c\x72\xc5\xab\x7a\xb3\xed\xd2\x10\x6e\x80\x24\x22\xd5\xcd\xac\x5c\x5d\xb3\x02\x90\xd1\x6b\xdc\xc8\xf0\xe6\xf6\x6e\xe6\xf0\xd1\x84\x4b\xa6\x6f\x73\xae\x50\x04\xa9\x0f\x7f\x6c\x56\x77\xf1\x1c\xc0\x5f\xc8\xf3\xe7\x21\xad\xb1\x84\x55\xaf\x15\xd2\x2d\xfb\x07\xc0\xe1\xee\x76\xf2\xd9\x7b\xc3\xb9\x01\xa8\x06\x14\xf7\xfb\x3c\x94\x55\xb1\x40\xb8\xd0\xf4\xb8\x35\x45\x3a\x93\x4e\x29\xcb\x4a\xee\xd9\xa3\xd7\xd5\x63\x88\x50\xd3\x17\xe1\x51\x6e\xb5\x9d\xbc\xcc\x37\xf7\xda\xd6\x71\xcd\x8d\xd3\xdb\x91\xba\xd3\xdc\x94\x13\xec\x90\x1c\xb9\xc3\xaa\xb0\xb1\x92\xfe\xaf\x31\x9d\x0c\x06\xfd\x18\x12\x00\x35\x9e\xfb\xb1\x8d\x1c\x05\x2e\x4f\x45\xcb\x77\x5f\x79\x28\x44\xa8\x57\x48\x61\xd7\xe4\x42\xf3\xb3\xe5\xf8\x4b\xc4\x1f\xb5\x44\xca\x06\xf6\xb5\x0e\xcf\xfb\x6e\x83\x6f\xec\x43\x72\xc8\xad\xe8\x21\xa9\xec\xbf\xca\xbb\xc4\x68\x65\x1f\x70\xb3\xf8\xf5\x3b\x5a\xd9\x3a\xc9\x12\x9c\x47\x95\x29\x95\xdc\x63\x6a\x34\x0d\xe4\xce\xdb\xf5\x34\xb0\xe3\x12\xea\xdb\x9e\x09\x4d\x2e\xfc\x63\x31\x33\x48\x1a\x0b\x4e\xe9\x3f\x68\x3c\x9e\x20\x3c\x27\x94\x3c\xa7\xee\xd2\x5e\x82\xc7\xef\xdc\x44\x33\xbd\x89\x11\x66\x36\x23\x49\x49\x3a\x18\x27\x7e\xce\x53\x1a\x86\x04\xba\xf8\x27\xda\x91\xe9\xaa\x04\x5e\x1b\xf0\x46\x04\x20\x93\x01\x5e\x09\x60\x3a\xe8\x08\x23\xc9\x69\x7a\x9e\x8b\x0b\x3f\x7b\xea\xef\x09\x21\xf6\xa0\x68\x6d\x8a\x75\xc2\x3c\x2f\xc8\x73\x4e\x48\xe0\x11\x4c\x51\xca\xc9\x73\xef\xaa\xb3\xc8\x5d\xb2\x23\xdb\xc9\xda\xc4\x9e\x39\x3f\x67\x8b\xdc\x55\x92\xe2\xac\xfc\x8e\xa9\xa0\x23\xb6\x88\x79\xac\x85\x53\x39\x9b\x17\xf0\xc9\x25\xc2\x25\x76\x6a\x2a\xe3\x80\xf9\xf4\xb4\xf6\x32\x0c\xf9\xd1\x6d\x04\x3a\x34\x19\x1d\xf0\xc8\x4c\xd9\xd3\x53\x88\xdf\x57\xcb\x96\xb6\xfa\x61\x5d\x29\x80\x4c\xcd\x3e\x81\x56\x85\x6a\x95\xcb\x56\xfd\x6c\x3f\x21\xfa\x87\x29\xe4\xf7\xbb\x56\xc8\x0f\x02\xf0\x3f\xfa\xc6\x84\x10\x34\x73\x6d\x92\x8f\xfb\x01\x8b\xe1\x32\xf0\xef\x46\x83\x41\xcc\x87\x84\x21\x2c\x5b\x2c\x06\x03\xd1\x27\xe2\x5c\xee\xb4\x3e\xa1\x72\xb7\x00\xff\x1b\x24\x23\xba\x57\xb3\x43\x4e\x03\xb1\x5c\xfb\x6b\x23\xf5\x12\xcf\x10\xa6\x21\xe2\x0a\x4c\xe8\xbe\x0a\x23\x3c\x2e\x26\xc1\x56\xba\xf3\x64\x5b\x15\x56\xa3\x83\x43\x5f\xcb\x23\x7f\x6b\xb9\x7f\x15\x3e\xd3\x54\xf0\xed\x76\xef\x3c\x5d\x9c\x09\x68\xe9\x59\x89\x71\x63\xad\x1c\x4a\x64\x70\x58\x90\x3c\x2c\x2d\xa7\x3f\x98\x33\x07\x2b\xe9\xfc\x6f\x0b\x42\x0a\x1f\x90\x84\xf0\xda\x43\xba\x08\xc2\xc2\xba\xb5\x32\xde\x29\x74\x64\x8e\xf4\x4f\xfd\x39\xfc\xd2\x0c\x27\x5c\x65\xeb\x98\xfb\xc7\x59\x9d\x13\xd9\xd9\xbb\xe6\xb5\x6a\x7d\x87\xf0\xf6\x18\x8e\x18\xb8\x90\x4b\xf9\x9d\x30\xa1\x96\xfb\x55\x5f\x58\x5d\x08\x6f\x2c\x14\x06\x62\xe8\x8a\x3b\x01\x8a\xe3\x41\xa8\xc6\xd1\x78\x12\xa5\x97\x26\x3b\xb6\xf7\x09\x5e\x2a\x6a\xff\xc3\x8c\xeb\xff\x48\xb1\xd1\xfa\x68\x0b\x1d\xce\x58\x23\x0c\xb0\x10\x8a\x42\xa6\x97\x71\x9b\x5d\xee\x1a\xc9\x48\x72\xc8\x09\xa7\xd9\xfc\x5d\x91\xdf\xc7\x08\xe7\xd9\xa3\xdb\xf0\x86\xf3\xf4\xb4\xd9\x9e\x52\x25\x53\x32\x72\x27\x57\xd1\x64\xaf\x16\xa8\x6b\x29\x1c\x3a\x4a\xd8\x90\x22\xec\x00\x60\x77\x3b\xfe\x9c\x9d\x73\xc2\x52\x7d\x2a\x09\x1b\x72\x74\x46\xbf\xe3\x67\xc8\x45\xdf\x4f\x48\xe7\x34\x0f\x87\x2e\x90\xb5\xc6\x46\x33\xee\xcf\xec\xb5\xc3\x6d\xed\x9f\xa2\x1a\x3e\xff\xb5\x2d\x17\x40\x0d\x19\xcd\x77\x1c\x0e\x8e\x14\x48\xa5\x62\x7a\x7a\x8a\xb0\xa5\x1c\x85\x8b\x78\x66\x84\x9f\xb1\xe7\x64\x74\xc6\x14\xb0\x45\xd7\x48\x19\xf2\xcd\x0a\xcc\x92\xb4\x1a\x67\xf3\x39\x6c\x36\x93\x9c\x51\x8d\xca\x5b\x8c\x66\x01\xcb\x54\x73\x54\x63\x7d\xfd\x1e\x6c\xa0\xa3\x4c\xd0\xc6\x32\xab\x82\x97\x95\x22\xea\x05\xdc\xd3\x2f\x69\x35\x7b\xa9\x32\x2c\x4b\x81\xe7\x01\x65\xa6\xbf\xd5\xa1\x91\x65\x56\xfd\xc0\x2a\x41\x0b\xc8\x3a\xa9\x78\xcb\xff\xab\xac\x5d\x33\x95\x97\x07\x01\x76\xeb\xc1\x92\x0a\x75\x44\x85\xb6\xc2\x93\x17\x4a\xe0\xf2\xd3\x0a\xb5\xe8\x6c\x77\x41\xf7\xe1\x52\xce\x08\x5a\xf3\x93\xf1\x1e\x6a\xcc\x96\x6b\xb4\x65\xf9\x08\x2c\x14\x0c\xb9\x17\x4f\xe1\x1f\xe8\x82\x8c\xce\x8a\xef\xf8\x59\x61\x8c\x9b\xfa\xa8\x98\x1d\x03\xd9\x16\x8c\x8d\x82\xe1\x42\x2b\x7a\x03\xfa\x71\x43\x85\xec\x2b\xfd\x22\x29\x89\xee\xb5\x01\x10\x6f\x86\x53\x68\x0a\xa5\x73\xfc\x40\xa4\x49\x8d\x81\x76\xd9\x81\xaa\x41\xbe\x89\xc3\xd0\x4a\xd3\x42\xac\x94\x28\xe4\x39\x1f\xb3\x09\xb1\x43\x53\x4f\x11\xe6\xd0\xda\xf7\xf7\xe9\x17\xbc\x60\xb9\x80\x0d\xf8\xc8\x86\xb7\x8d\x46\x07\x03\x1d\x7f\x5f\x48\x46\x8b\xcb\x6d\xfe\x77\xb0\xb2\xd9\x86\x83\xe6\x54\xaf\x6d\x5a\xd6\xa7\x46\xe6\xc1\x9e\xe4\x22\x3f\x5f\x55\xf9\xfe\x3e\xee\x6c\x69\x11\xde\x0c\xc8\xf4\xdf\x2a\xaf\x87\xd5\x2e\xbf\x60\x20\xb0\x35\x46\xbb\x72\x88\xa1\xaa\x88\xdf\xa0\x7e\xd9\x6e\x8b\xde\x52\x7e\xdf\x6e\xec\xc6\x6f\x8c\x55\x97\x50\xaa\xf9\xb6\xdd\x5a\x56\x74\xb4\x75\x1b\xb6\x75\x51\x78\x2d\xdd\xee\x6b\x89\xd3\xf9\x06\x80\xe9\x1c\x56\x57\xf7\x2a\xdb\x75\x81\xd4\xce\x9c\xd0\x98\x63\x61\xf7\x35\xb2\xd9\x2e\x30\x2b\x6e\xcb\xcf\x61\x1a\x86\x62\xef\xe6\x61\xe4\x79\xe1\xeb\x51\xf8\xfd\x6b\xa8\x8e\x62\xa6\x54\x28\x92\xad\xc2\xa2\x54\xac\x51\x9b\x85\x90\x3c\x1e\xaa\x31\xc8\x79\x33\xd1\xbd\x11\x28\x79\xae\xf0\xdb\x65\x49\x56\xcc\xf2\xcd\xdc\xa0\x5f\x7b\x1c\xad\x7f\xc5\x8c\x50\x8d\xab\x92\xab\xad\xa2\xf8\x1f\x3b\x69\xc1\x67\xd8\x81\x25\xb2\x78\x1c\x6b\x44\x71\x77\xa7\x74\x67\xab\xc9\x20\x5b\x0d\xae\x88\xcf\xfe\x64\xd6\x87\x45\x4b\x14\x19\xc2\x1b\xa5\xde\xd2\xec\x0f\x8a\x2b\x08\x3c\x5c\xc4\xce\xfd\xa3\xb6\x5e\x0b\xa0\x5c\x62\xbf\x78\x7e\x8c\x86\xf1\x51\x82\x9e\xc7\xf5\x2c\x6d\x46\x73\x7c\xc7\xc4\xb2\xdc\x08\x63\xbc\x81\xaf\x72\x73\x14\x64\x23\xe9\x69\x86\x96\x10\x7a\x2e\xc8\x73\xd1\x27\x96\xc9\xa6\xbd\x8e\x79\x17\x40\xea\xaf\x9a\xdc\xdc\x3b\x9c\x3b\x7e\x4e\xa7\x0a\x0e\xf2\x09\x04\x4c\xfe\x48\x45\x4f\x35\x58\x2b\x2a\x59\x74\x45\x44\x59\x51\x51\x2e\x09\xae\xcf\x2f\x4c\xdd\x51\xd0\xc5\x8c\x84\x1b\x14\xbb\xf7\x4f\x8c\xdc\x85\x8a\xa5\xf2\x66\x6a\xda\xe2\x9d\x60\xd6\x5c\xd9\xaa\xc9\xd8\x9a\x41\xfa\x55\x46\xd8\xc2\x59\xac\xcb\xb5\xee\xa4\xeb\xa3\x75\x4e\x22\xcb\x62\xc8\x7d\xeb\xf8\xfe\x36\xe7\xf4\xf4\x34\x3c\x56\xee\x2b\x9f\x9e\xe2\x53\x38\x8e\x10\x29\x6d\xbb\xd4\x1d\x78\x7d\xb6\xba\xa2\x9d\x5d\x8d\xf6\x74\x34\x92\xa2\x12\xde\x14\x7e\x37\xad\xe9\x1b\xc1\xa4\x05\x85\xf6\xce\xdb\xc8\x9f\x2d\x2e\xc9\x66\x45\x4d\x95\x63\xa6\xcc\xdb\xa9\x8d\x23\xaa\x1b\x8b\x9b\x5f\xe2\x36\x95\xdd\x2d\x15\xf5\x87\x69\xba\x68\xcc\x18\x54\xd7\x1b\xd8\xef\x31\xdc\xc0\x4d\xa1\xc0\xff\x38\x39\x87\x6e\xce\x3a\x19\x8d\xdd\x0e\x10\x3d\xc1\x89\x63\xdb\xb5\x30\x1c\xa9\x04\x65\xe1\xb2\xf0\x06\xab\xe1\xf7\x05\xdf\x04\x4d\x5d\xd3\x1b\x56\x84\xb8\x49\x15\x8a\x1d\x4f\xdc\x06\x17\xe5\x4f\x9f\x22\xaf\x27\x33\xf8\x31\x9f\x78\x6a\x60\x91\xd0\x62\xde\x6e\x56\x7f\x76\x36\x9f\xb7\xf6\x49\x93\xec\xe8\x03\x1f\x1c\xc9\x66\x75\x6f\x07\x1d\xfa\x18\x1c\xe8\x86\x94\x36\xd5\x1b\x81\x86\x90\x3a\x30\x60\xd0\x91\x06\xda\xaf\x2b\x58\xed\x8f\x4d\xc2\x76\x85\x2b\x47\xd8\x2c\x1f\x18\x7e\xe4\x98\x4e\xe4\x62\xa8\xdd\xa0\x34\x11\xb3\x2e\xc5\xc2\xeb\xc2\x53\xb0\x05\x2c\xaa\x37\x28\x5f\x07\xf7\x11\xc6\xf4\x06\xbf\x27\xe3\x48\x2d\x59\x34\xe9\x7d\x54\x78\x1c\x28\xd0\x8e\x35\xd2\x23\x83\xae\xf9\xbd\x51\x89\x81\x62\x30\x68\x97\x7c\x4c\xcc\x1d\x91\x24\xc9\x7b\xf9\xfe\x82\xbc\xc1\xd9\x1e\xf7\x11\xa8\x75\x1e\x7f\xd4\x3c\x5b\xa3\x33\x79\xb5\xaa\x06\x02\xb7\x01\x23\x8c\xef\x76\xe3\x49\x8d\xd2\x43\x05\x62\x4a\xc6\x13\x84\xdf\x39\x97\xad\x73\x9a\x9a\xde\x28\x52\xae\x7b\x17\xe4\x9d\xa7\xd7\xbe\x78\x8c\x5e\xdb\x8f\x01\x3d\x46\xb9\xfd\x5f\x63\x67\xd0\x7a\x6d\x15\x2c\xfd\xd5\x3a\xfc\x56\x24\x6f\xc7\x07\x1f\xf2\x26\xe9\x9c\x81\xdf\x00\x21\x47\x7b\x63\x4e\xa7\x6e\xc0\x53\x65\x20\x05\xdc\x94\xd7\x85\xec\x20\x8c\xc2\x03\xfd\x90\x5f\x3e\x69\x16\xad\xb1\x86\xdc\x6b\x69\x70\xc2\x7a\x5e\xa9\x1a\xdb\xac\x55\x41\x32\x43\xbf\x7c\x8f\xea\xb4\x0d\x7f\x2f\x59\x61\xb3\xb5\xba\x6c\x57\x4a\x8a\xd3\x3e\x10\x28\xb6\xd9\xa6\x30\xc5\xd1\x82\x15\x00\x11\xf1\xd2\x66\xa0\x0a\x6d\xb1\x52\xde\x70\xc9\xf9\x24\xff\xbf\xad\x0f\x0d\x3d\x2c\x8c\xea\x1a\xb3\xa6\xbd\xb9\xf0\x37\x0f\x7b\xdc\xe6\x31\x51\x2a\xff\x9d\x8f\xc9\xfa\xfe\x57\x9e\x11\xdf\x70\xf3\xdf\xf6\x43\xbf\xfe\xeb\x4c\xd8\xc7\x7f\xdb\x4f\xdb\x2a\x70\x98\xa6\x26\x67\x3e\x37\x6a\xa6\x8e\xcb\x11\x97\x45\xa7\xfa\xa7\xbb\x12\xdc\x49\xaa\x5e\x90\x49\x8f\x6b\x26\xa9\xa2\xc5\x1c\xc2\x63\x02\x75\x5b\xb9\x58\x74\x9a\x05\x24\x57\x74\x68\x68\x0a\xfe\xfe\x01\xe5\x1a\xfd\x35\x96\xd9\x2e\x93\xe3\xf1\x31\x21\xc7\xd9\x58\xff\xb9\x94\xbf\x41\xb3\x6c\xf8\xb6\x3f\x45\xc5\x63\xa6\xc8\xb7\xe3\x7e\x1b\x47\xa7\x3d\x0e\x94\xff\x9c\x09\x01\xdb\x84\xbf\xa9\x7c\x2f\x1b\x29\x79\xdd\x80\x87\x90\xf1\xdf\xf5\x13\x6c\x9a\xc2\xee\x35\xd8\x76\xc6\xb2\xea\x24\x99\x95\xc5\x2c\x03\x2e\xb9\x65\xec\x70\xde\x1e\x9e\x08\x5d\x05\xfd\xd0\x66\x59\xbf\x13\x3b\xb6\x2e\xb6\x3d\x0e\x6a\xee\x63\xec\xd5\x81\x6a\x73\xee\x61\xed\x43\xa2\x48\x17\x70\x6c\x63\xd8\xdd\xd8\xb2\x7a\xf4\xbe\x48\x62\xd5\xf6\xa0\xfe\x0c\xda\xf0\xde\xbb\xe9\x82\x52\x0d\x49\xf0\x40\x1b\x61\x91\xee\x66\x96\x59\x65\x0a\xe8\xd4\x50\x5e\x03\x5d\x64\x66\x18\x59\xfd\x3d\x6c\x92\xbf\x31\xb1\xd4\x7e\xa2\xad\xb5\x0e\x5f\x07\xcb\xce\x8a\x19\x87\x0c\x8b\xde\x96\x16\x81\x85\x35\xdc\x2a\x31\xe4\xa8\x7b\x95\x97\x99\x68\xfa\x84\x51\x84\x76\xbb\x11\x1a\x2a\x66\xeb\x91\xcd\xb6\xda\x92\x4d\x3d\x95\x4d\x89\xf2\xe6\x26\xa7\xbe\xd3\xd5\x9e\x36\xfa\xed\xf1\xd4\x78\x96\xcd\x96\xd4\x4b\xb6\xa5\x95\x31\x6b\x4a\x3f\xbf\x09\xfd\xad\x74\x9e\x48\xee\x72\x15\xc0\x61\x56\x75\x43\x9a\xfe\x28\x82\xd5\x80\xff\x78\x94\xd7\x8d\xf2\xa2\xfd\x67\x91\xa6\xe6\xf5\xad\xbc\xb0\xb5\x3b\x63\xf5\x9e\x16\x73\x56\xdc\x34\x51\x48\x23\x56\x5d\x51\x21\x72\xc9\x89\x74\x18\x00\x5a\xb9\xdb\x6d\xe9\xa6\x19\xd3\xbe\xe9\xe8\xe1\x03\xa8\xf9\x01\x72\x85\x55\xaf\x36\xf9\x82\xe5\x7b\x3a\x6c\xf7\x67\xeb\x1a\x3b\x57\xf0\xd6\x35\xd6\x1e\x8f\xa9\x99\xf6\x4f\xb1\x57\x52\xfe\xd4\x8b\xda\x1c\xaa\xb6\x34\x3b\x10\x35\x1e\x80\xa8\xd9\x90\xda\xdf\x55\x27\xba\x85\x93\xd5\xa6\x02\xe4\xb4\x8a\x8a\xc8\x92\x6a\x67\x49\xf2\x51\xf6\x82\x6f\x6c\xd0\x64\x8a\xb7\x8d\x21\x06\xe3\xaf\x11\xe6\x89\x58\xd2\x02\x0c\xf7\xd4\x4f\xee\xbe\xdb\xd1\x20\xff\xbb\x9e\xa5\x76\xfb\xc6\xbd\x95\x87\x93\x21\x37\x14\x47\x98\x43\xd6\x79\x40\xb9\xfe\xaa\xd6\xf5\x66\xe3\xc1\xb8\x47\xca\xf8\x14\x81\x47\x40\x7a\xe2\x4f\x61\x84\x6a\xa3\x44\xab\x41\xd6\xa2\x45\xca\xe2\x48\xfe\x1b\x21\x0c\x90\xdc\xf2\x37\xfc\x11\x21\x0c\xf2\x59\x7e\x2f\x1f\xe9\x3f\xe5\x82\x37\x82\x22\x9a\x73\x1e\x90\x0c\x6f\xdb\xe8\xb5\x73\xa9\x49\xf8\x98\x4e\x9a\xee\x79\x5f\x49\x2e\x9a\xc0\x5e\x8f\x8a\x04\xfc\x2f\xe5\xed\xb6\xd3\xa9\x1d\xbc\x96\xf1\xb9\xca\x31\x10\xa4\x00\xe9\x90\xd9\x5d\xb5\x44\xd7\xd0\x32\xbb\x7a\x41\xb9\x5c\x36\xf3\x77\x84\xf0\xa6\xf0\x5f\xb8\x5f\x11\xc2\x8d\x84\x23\xf2\xfd\x32\xab\x22\x64\x9b\xa2\xf3\x77\x6b\xf3\xe6\x86\x0a\xf5\xc3\x7b\xaf\x1e\x54\xf2\x75\xa9\xfe\xec\xa8\x5c\x05\xb5\xab\x76\xf5\x57\x25\xff\x78\xbf\xa6\x5e\x2b\xfa\x49\x57\x63\x5e\x61\xd7\xa6\x2b\xcf\x40\xf1\x21\xdf\x32\xa3\x02\x39\x6a\xef\xee\x9b\xe3\x6f\xb7\x57\xf7\xa0\x68\x1d\xbe\xe2\xbe\x2a\xa2\xee\xbf\x6a\x4b\xab\x2f\x54\x9b\x59\x7d\xa6\xff\xf7\x0b\x95\x0e\xa3\xe3\x91\xf6\xef\x69\x7a\xda\x07\x65\xc2\xeb\xcb\x9a\x6f\x02\x37\xfb\xb0\xc2\x9e\x0c\xdc\xcd\x6c\x42\x96\xff\x31\xe4\xc9\xba\xd3\x14\x83\x41\x1c\x94\x33\x19\x3d\xb4\xaa\x4c\xf2\x4c\xb8\xb0\x68\xa8\x80\xf1\xae\xe4\xea\x0b\x3d\xf7\xa0\xb6\xba\xcd\xf8\xd6\xcc\x06\xd6\x53\xc4\x1a\x73\x52\xd6\xca\x7d\x2e\x2e\x48\x01\x44\xbf\xe3\xbb\xe4\xe6\x26\x6c\xb7\x6b\x46\x95\x15\x61\x34\x88\x75\x85\x06\x84\xd8\x6d\xd7\x1c\xf8\x9e\xf4\xb6\x62\xd1\x9e\x00\x36\x18\xc4\xec\xd0\x04\x14\x08\x61\xe6\xa0\x31\x21\x0e\x6e\xaa\x06\xe0\x22\x77\xf4\x83\x9e\x67\x7e\xab\x75\x50\x83\xed\xa9\x1c\x0c\xe2\xf2\xf0\x7a\x6a\x64\x1b\x6d\x31\x41\x98\x0d\x06\x05\x1a\x0c\xfa\xa7\x7d\x42\x62\x06\xca\x8b\x73\x66\x5d\xbf\xc7\x85\x15\xea\x4a\x84\x52\x36\x2e\xe0\x18\x8f\xfd\xa7\x9e\xc7\xa1\x71\x52\xfc\x1a\xce\xb5\x0b\xf0\xf0\x1b\x79\x8b\x7f\xcb\xb0\xf5\x06\x40\xe4\xe3\xc3\x92\x70\xf6\x9b\x90\x91\x4a\x25\xe1\x53\x02\x67\x1a\x4d\xe5\x38\x8b\x1b\x3a\xd7\xee\x4b\x60\x57\x71\x0e\x51\x11\x9e\x1b\x7f\xa6\x3d\x65\xad\xbf\x53\x54\xf7\x00\x80\xe0\x24\x3f\xa1\x5f\x04\x2d\xe6\x95\x03\x7b\x33\xee\x95\xa0\x6e\x86\x7c\xf3\x0d\xef\x4a\x75\x0f\x68\x47\xca\x97\x8c\x8b\x7b\xf0\xc2\x23\xa3\xf0\x0d\x51\x81\xd4\xf0\x48\x19\xa3\xa0\x2c\xe9\x8f\x82\x87\xb6\x5a\x63\xc0\x7e\xf5\xc6\xab\xd7\x15\x64\xb0\x66\xc5\x0d\xe9\x9f\x76\x17\xf9\x98\xdd\x1c\x68\xe0\x03\xbd\x65\x15\x2b\x8b\xf6\x10\xdb\xf5\xcc\x93\x7a\x2c\x92\xf7\x1f\xde\xbd\xbf\xfc\xf0\xf1\xa7\xe9\xcb\xd7\x2f\xa7\x2f\xfe\x78\xf1\xf6\x0f\x97\x13\xeb\x88\xca\xa9\xde\x26\x34\x46\xb2\x70\x2b\x8e\xc9\x22\xc4\x8e\x27\x10\x1c\x7a\x1e\xb7\x2b\x06\xfd\xa2\xd4\x58\xf1\x1e\x28\x6e\xc7\x8e\xe4\x45\x91\x35\x22\xa1\x50\xdd\x11\xf2\x35\x75\xae\x84\xcd\x5d\x62\x55\x10\xa8\x36\x06\x4c\xfd\xba\xa1\xb4\x74\x46\xe8\x26\x5f\xdb\x98\xef\x08\xc9\x51\x38\x8b\xa7\xcb\x67\xa0\x9f\xd9\xf6\xe1\x55\xdd\x7a\x0a\x2a\xd6\x66\x27\x36\x72\x2c\x09\x6c\xa9\x6e\xd4\xda\x6c\xdf\x31\x6d\x06\x9d\xc1\xdf\xaf\x36\x8f\xb4\xd9\xbf\xe3\x09\xc2\xe0\x15\xb4\x67\xc3\x0f\x06\xf4\xf9\xbe\x77\xfb\x18\xfe\xd6\xc4\x00\x1c\x04\x72\xc9\xba\x82\xf6\xb4\xdd\x3d\xf0\x10\x32\x5b\xc2\xfa\xe5\xb6\x3b\x3f\x63\xdf\x15\xe0\x67\x14\xbc\x1f\xb3\x49\xe8\x9d\x68\xa6\x97\x69\x34\x87\xce\xae\x47\xbd\x7d\xc7\xfd\xe9\x69\x1d\x30\x86\xa6\x1b\x3a\xa9\x6f\xa8\x38\x51\xf5\xe3\x7d\x2b\xd0\xa2\x0b\xfb\x52\x8f\xb4\x67\x2c\xa0\x1e\xf4\x3c\xc8\x0f\x65\x26\x27\x1d\x75\x51\x1e\x33\x62\x38\x24\xb3\xb2\xa8\x36\x2b\x15\x06\xda\x3c\x46\x41\xe5\xba\x72\x9f\x43\x1d\xa8\xb5\xe7\x9f\xf1\x94\xda\x34\x64\x68\x5b\x68\xdf\x67\x29\xb5\x2b\xaf\x93\xa7\x05\xc2\x05\x19\xa1\x9e\x17\xa3\xd7\xb5\x8f\x7b\x92\xa9\x08\x23\x0b\x18\xa6\xb8\xc0\x36\x61\x2f\x2b\xdc\x14\xa2\xba\x9e\xaa\x48\xd6\xae\x43\xec\xd4\x54\x5d\x7b\xfd\x7c\x94\x76\xad\x36\x2e\xf6\xcf\x67\xef\x78\xb2\xa1\x06\xbb\xc7\xbd\x77\xe4\x0c\x21\xe1\xf7\xb4\x6b\x39\x37\xde\xa0\x92\xf6\xa2\xde\xdb\x3f\x45\xf5\x11\x65\xb6\x74\x30\xe8\x07\x1a\x06\x33\xf9\x6d\x2f\x6d\x95\x69\x05\x57\x68\xcf\x55\x25\x7b\x3c\x66\x62\xb6\x9d\xd5\xb5\xad\x78\xaf\x6f\x77\xab\x82\x19\x4d\xfd\x00\x43\x10\xa3\x6d\x77\x91\x86\x7f\x34\x66\x7a\x64\x7b\x96\x4c\x15\xd1\xf1\x9e\xbc\x57\xc2\x06\x2f\x87\x8d\x8d\xdc\x1e\xa6\xdd\x3d\xc3\xe2\x29\x43\x67\x31\x84\xfd\xec\x21\x27\xda\xd9\xa7\xfd\xe2\x79\x89\x9a\x94\xd9\x23\x42\x65\x07\x25\xb1\x1c\x46\xf7\x5e\x52\x5f\x53\x07\x7b\x6f\xfb\x10\x4f\x13\x36\x5f\x07\xb4\xcc\xe6\xb4\x7c\x80\x59\x91\x22\x93\x7f\x16\xdb\x2c\xcb\x6e\xd7\x07\xd2\x64\xda\xf6\x68\x53\xbb\xf0\x61\xd6\x06\xa1\xc0\x3d\x01\xb2\x1c\xb6\x49\xe9\x03\xe3\x39\x3f\xf6\xc0\xa5\xdd\xa3\xf4\x19\x35\x33\x93\x07\x49\xd6\x11\xfc\x1e\xea\xf9\x17\x65\x07\xdb\xd7\xe6\x80\xf6\xde\x21\xfb\xd8\x42\xb3\x08\xa0\xb4\x3f\xb8\x08\x3a\xd6\xc8\x05\x85\x53\x74\xde\xbc\x4d\x88\xbe\x6e\x74\x00\xf8\xb8\x50\xfe\x1f\xcd\x70\x71\x8f\xda\x4e\x42\x3e\xf0\xf8\x06\xc6\x13\x59\x19\xa5\xcd\x11\x84\xdc\x6c\xed\xeb\x69\x72\x9c\x9b\x9c\x5c\x2c\xf0\x70\xc3\xdb\xc6\xe7\x2a\x1d\x75\x96\xb3\xac\xf2\x62\xfd\xd1\xb7\x8b\xbc\x80\xb0\x9e\x23\x41\x70\xba\x30\xee\x0f\x4b\x96\xd6\x29\xe6\x98\xe4\x4b\x87\x33\x84\xed\x17\x45\xbf\x02\x13\xe3\x11\x30\xfc\x2d\xc1\x54\xd7\xfd\xed\xc3\x84\x3b\x84\xd3\x19\xc9\xb4\x8e\xcb\xa1\x73\xa9\x8d\x84\xe7\x44\xe5\x7d\x99\xfe\x8d\x66\x9f\xaf\xa8\xc0\x4b\x78\x20\x7f\xbd\xc9\xd6\x78\x61\x82\x7c\x7b\x7e\x44\x2c\xda\x2e\x12\xe5\x18\xb1\xdb\x79\xce\x52\x61\x4c\xab\x8f\x99\x53\x6a\xa0\x03\x85\xa6\x63\x93\xda\x0b\xcb\x4d\x57\x84\x6a\x95\x06\x2d\x32\xe1\x87\xe4\x43\x2a\xe3\x66\x9c\x3e\xde\x10\xdb\x48\x35\x18\x54\x36\x7f\x99\xcd\x2c\xd4\x07\x7c\xc7\xdc\xbd\x98\x13\x3f\xe5\x99\x40\x78\x49\x46\x67\xcb\xef\xe6\xc6\xd9\x7f\x69\x9c\xfd\x17\x64\x3e\x5e\x4e\xf0\x9a\x88\xf1\x62\x82\x57\xea\x44\xcf\x69\x35\xe3\x6c\x2d\x4a\xde\x38\xc7\x0b\xc9\xf1\xdd\xba\x4e\x57\x10\x3e\x7a\xab\x92\xeb\xc8\x91\x99\xf0\xb8\x05\x7a\xfe\xf4\x54\xf5\x70\x43\xe8\x78\x31\xe9\xad\xc9\xcd\x39\x24\x2c\x59\x65\x9f\x8d\xe3\xe8\x0d\x32\x9a\x9d\x35\x08\x88\xc1\xcb\x35\xaa\xd9\x22\x9e\xc9\xcf\xea\x68\xf5\xda\xb4\x0a\xd8\x17\x5e\xee\xb6\x6b\xbc\x46\x75\x7d\x7b\xbe\x4a\x94\xa1\x69\x81\xd7\x28\x75\x11\xdb\x0e\x89\x2f\x69\x03\x56\xec\x76\x0b\xc8\xa9\x73\x2e\xdb\x26\xeb\xb4\xab\x4c\x2c\x1b\xac\xa9\xd2\x3f\x08\x84\x79\xb2\x29\x20\x74\xd6\xc7\xb1\x80\x7d\x78\x4f\xb8\x85\xee\x02\x17\x9d\x2a\x0e\x37\xc4\xbd\xdd\x10\x53\x32\x3a\x9b\x7e\x77\x6f\x56\x67\x3a\x1c\x22\x58\x08\x48\xf5\x95\x09\xea\x73\x7c\xf7\xe3\xe9\x24\x01\xd7\x28\xf5\x67\x75\x5f\xcc\x20\x29\x70\xe6\x3b\x03\x51\x1c\xc9\x11\x46\x26\x27\x5e\xf8\x0f\x47\xb5\x52\xb3\xdc\x86\x09\xfd\x14\xbf\x31\xe6\xc9\xbb\xbf\xbd\xbd\xfc\x30\x31\x99\xfc\x7c\x08\x50\x38\x53\x81\x4b\xf9\x19\x04\xfd\x1a\x9d\x3f\x70\xad\x50\x14\xc5\x02\xaf\xc1\x7f\xe9\x40\x81\x18\x91\xe7\x22\x09\xf4\x00\x1a\x98\x44\x83\x85\xa0\xa4\x35\xbb\x52\xee\x19\xf3\xe4\x87\xcb\x3f\x5c\xbc\xf8\x69\xaa\x86\x2a\xc7\x5e\xeb\xeb\xa2\xe1\x42\x92\x29\xff\x5b\x20\x09\x0d\xe7\x08\xad\x51\x02\xb9\xd0\x63\xb8\x7d\x5b\xeb\xc6\xe7\xc4\x4d\xb4\x6e\xd5\x28\x4f\x9b\x6d\xc0\x38\x3b\x1b\x61\xc5\x4d\x67\x2b\xb2\x86\x6c\xc6\x39\x71\x2e\x14\x24\x00\x58\xef\x05\xbf\xdf\x42\x3b\xfa\xb5\x69\x42\x5b\xfa\xb6\x8b\x64\x4e\x73\x2a\xa8\x7e\xec\x7b\xd7\x87\x3a\x96\x5a\x94\x57\x0a\x83\xd0\xb0\x61\x1d\x68\x06\x42\x85\x26\xa8\x82\x97\x5f\x04\x2d\x24\xf7\x71\x1e\xa5\xd1\xb0\xfb\x55\x8c\xd2\x28\xd2\x0a\xd9\x4f\xdf\x3d\xd9\xc2\x59\xd6\x69\xed\xf4\x50\x9d\x69\xfa\x95\x75\xfc\xb4\xaf\x5a\xbb\xcc\x8d\xb2\x4e\x4d\x73\x1b\x36\x77\x75\xea\x27\x5b\x5a\x3f\xff\x54\x57\x02\x52\x76\x29\x65\xa1\xfd\x26\xb5\xb9\xb5\x06\x51\x55\xb0\x99\xfa\x4e\x66\xc6\x1f\x3b\x71\x40\x33\x72\x6f\x78\x01\x7c\x98\x9a\x86\xb5\x99\xc4\x21\xd9\x84\x0a\xf7\x3e\xe8\xbf\x14\x38\x84\xec\x26\x6e\x65\x2a\x73\x09\xb7\xfd\xef\x66\xb8\x6b\x36\x28\x42\x28\x75\x8d\xe1\x55\xcc\x9c\xba\xbd\x38\xa7\xe9\x8d\x0f\xb0\xe2\x45\xca\x61\x66\xc6\xab\x8f\x40\x68\x1b\x93\x5b\xe0\x83\x7e\x81\x67\x5e\x1b\x07\x66\x00\xf6\x8e\x6e\xd4\xaf\xef\x33\xef\xf6\x7e\xed\xcd\xf5\x0d\x39\x18\xc4\x73\xb3\x15\x29\xc2\x4b\x05\x70\x21\xe7\x7f\x30\x58\x02\x45\x56\x43\x6f\xf8\xcc\xb5\x87\x82\x10\x0a\x3f\x49\xa5\xec\x3d\x7c\xac\xf7\x0c\xdf\x3a\xe3\x83\x61\xa5\xe3\x2a\x70\x78\x07\x92\x20\x9f\xd1\x33\x05\x91\xa6\x05\x10\x67\x71\x80\xac\x92\x9b\x35\xe5\xb0\xbf\x6a\x6b\x80\x08\xfa\x79\xad\xd1\xd0\xfc\xc8\x00\x1f\x22\xcd\x1f\xd9\x4a\xe1\x45\xb5\xf1\x96\xdc\xf4\xc6\x08\xf3\x83\xb7\xb2\xf0\xcc\x60\x3c\x99\xca\x26\x77\xbb\x6d\x6d\x4f\x46\x36\x5b\xbe\xd0\xf6\xb9\xc0\x55\x49\x9d\x0a\xbf\x23\xed\xe3\xba\xad\xcf\x7c\x02\x1c\x2c\xb4\x0d\xd6\x78\x69\x07\x53\x41\x8c\x2d\x52\xb9\xc1\x99\x07\xb2\x60\x92\xb7\x31\x33\x28\xde\xf3\x62\x70\x4b\xe0\xa8\xf5\x20\x25\xed\x0c\xd7\xdf\x6e\xb4\x25\x88\x88\xc2\x83\x72\x72\xb6\x2e\x3a\x18\xc4\x31\x25\x8d\xdd\x84\x90\x72\xa7\x7f\xe1\xe8\x09\x7c\x2c\xf6\x36\xa0\x3c\x97\xd4\xef\xdd\x2d\xab\xed\x59\x73\x50\xca\xff\x50\x0d\xed\xdd\x22\x1c\x09\xed\x13\xd2\x06\x1c\x3d\xa7\xa9\x1a\xa2\xe9\x40\xcf\x6f\xf7\xd1\x91\x1c\x94\x39\x3e\x68\x3b\x07\xa2\x4f\x83\x90\x2d\x37\xb6\x9e\x18\x0c\x84\xdd\x17\xc1\xe9\xea\x38\x43\x2e\xee\xc4\x9a\x3b\x7d\x24\x14\x75\x4d\x6a\x16\x64\xdb\xcd\x8f\xa6\x02\xb7\x50\xa3\x78\xad\xa6\xb3\x74\x7c\x20\x0c\xcb\x32\x9f\x99\x7b\xc1\x07\x03\x97\x40\x1d\x57\x64\x5b\xe3\x9c\x8c\xce\x72\x17\x76\x9a\x0f\x87\x96\x0d\xda\x10\x3a\xce\x27\x78\x16\x30\xaf\x1b\x84\xe7\x64\x84\x97\x64\x66\xaa\xcc\xbf\x5b\x9e\xcd\x1d\x03\x3b\x1b\xcf\x25\x03\xbb\x91\xfc\xa0\x4a\xf7\x2b\xba\x38\xc6\x15\xa9\x14\xc7\xb8\x6a\xf1\xa1\xab\x87\xf9\xd0\x4c\x7e\x48\x47\xab\xb7\xa6\xd5\x26\x1f\x7a\x2b\xd9\xc4\x0a\xf8\x48\x33\xfd\x95\x6c\xe8\xd6\xde\x6d\x24\x4b\x60\x51\x3f\xea\xdf\x2a\x9f\x5f\x65\x6e\xcd\x5b\xed\x14\x94\x78\x29\x42\x10\xbe\x4d\x58\x05\xa4\x90\xf4\x47\xf0\xe3\x0d\x15\xcb\x72\x4e\xfa\xa7\xb8\xcf\x92\x3f\x5e\x5c\x4d\xdf\x5e\x7c\x7c\xfd\x57\x93\x0c\xd6\x30\xcb\xbe\x94\x73\xef\xff\xda\x23\x73\xdd\x7a\x51\x51\x9a\x1b\xc4\x21\xc8\xc8\xb5\x3b\x97\xda\xa7\x0b\x6d\xaf\xfd\x03\xb6\x3f\xd9\x80\xdf\xb8\x48\x5e\xbf\x7d\xfd\x71\xfa\xea\xe2\xc5\xc7\x77\x1f\x7e\x6a\xf4\x71\xdf\xd1\xc7\x7d\xa3\x8f\x5a\xf1\xcf\xb7\x9e\x09\x78\xfa\x18\x41\xdd\x4b\x92\xf7\xcf\x34\x00\xff\xa6\x38\xe4\x5a\x18\x56\x5c\x10\xdb\x6f\x49\x35\x5a\x65\x9b\x89\xc7\x30\x57\x2d\x26\xb1\x69\x1a\x90\xb3\xd6\xe5\x6e\xb8\x82\x71\xbd\x87\xe4\xae\xce\x79\x8c\xee\x76\x4a\x83\xbd\x60\x85\xeb\x0c\x5c\x9d\x2d\x2d\x8f\x9d\x6b\x88\xc7\x35\x22\x80\x73\x51\x2f\x02\xfe\xcf\x42\xe9\xb8\xc2\x8a\xa8\xa3\x5a\x8e\x0d\x8e\x08\x38\x5b\x2b\x67\x58\x5e\xce\x68\x55\xb5\xbe\xd3\x31\xdb\x9e\xa6\xbb\x59\x0a\x2b\x83\xb3\x13\xfc\x3d\x25\x15\xc3\xcc\xd3\x32\x30\xd7\x83\x3c\x9e\x2c\x79\x7b\xf1\xe6\xf2\xea\xfd\xc5\x8b\xcb\x2b\x22\xbc\x1f\xc1\x9b\xe9\xf7\x3f\x4d\x5f\xbf\x0c\xde\xab\x47\xaa\x69\x39\xee\x8b\x3c\x27\xc2\xfb\xe1\xa6\x10\xb3\xe4\xfa\x1e\x92\x47\x37\x26\xf7\x31\x47\xe0\x5b\xa8\xa9\x0e\x6b\x9e\x1e\x56\x30\x7d\x7d\x6a\xc8\x2e\xd8\xbb\xbd\x88\xd1\xdf\x26\x07\x79\x23\x89\x1e\xd9\x73\xf2\x32\x7b\xf2\x2c\x46\x94\xa4\x6f\x27\x53\x18\x9e\x4d\x7f\xf7\x67\x7a\xdf\x3a\x67\x2d\x19\xa9\x2d\x76\x0c\x06\x34\x59\x6c\xd4\x66\xa8\x81\x0a\x56\x1e\x0d\xcc\x1a\x07\x24\x33\xb7\x89\xbd\x49\x2c\x70\x83\x66\x13\x32\x8f\xcb\xeb\xf8\xc6\xaa\xeb\x59\x28\x68\xfd\x13\x3e\xb3\x35\x6a\x9f\x37\xad\x11\xea\x3d\x6e\xcf\x1f\xe7\xfa\xf3\xab\xdd\x78\x34\x6c\xf1\x6f\xef\xe2\xa7\x96\xa3\xb0\x0b\x62\x83\x91\xb6\xbe\x03\x24\x2e\x9a\x8c\xa2\x96\x1a\xad\x2f\xf7\x71\xaa\x6e\x9b\xa1\xe7\xd1\xd3\xe7\x1f\xf3\x6f\x1e\xb8\xa7\x18\xf5\x26\xf2\x7b\x23\xed\x46\x24\x7f\x47\x4e\x1d\xe7\xbf\xb2\x89\x55\x22\x6d\x18\xe7\xe3\x42\xe7\xd0\x46\x93\xdd\xce\x80\xd1\xf5\x7c\xcd\x09\x61\xe7\xa2\x9d\xb0\x03\x7c\xf1\x22\x58\x95\x08\xa5\x1e\x8a\x1d\x93\xf7\x9a\x2f\x15\x02\xd0\xf8\x39\x23\x1a\x56\x3c\x0d\x45\x46\xd3\xb2\x2c\xe0\x72\xce\x74\x80\x71\xcb\xee\x20\xb3\x8c\x03\xa1\xd7\x09\xb9\x39\xd9\x46\x63\x35\x00\x03\x79\x3c\x89\x52\x9b\x90\x07\xdb\x97\x6f\x01\x84\x4f\xbe\xd3\x70\x7c\xee\x95\x62\x0a\xe4\x2b\xed\x9d\xe8\x5e\x19\x29\x48\xbe\x74\xf9\x26\xec\xeb\x8b\xea\xbe\x98\x3d\x54\x46\xf2\xdb\xf2\x9d\xf1\x7a\x33\x2f\xe4\xa7\xc9\xe7\xf0\x61\xee\xf1\x07\x7a\x73\xf9\x65\x2d\x5f\x70\x7a\x43\xbf\xac\xbd\x57\x6a\xd7\xc8\x57\xf6\xa0\xda\x81\xb2\x1c\x42\x20\x61\x10\x2c\xa7\x39\xab\x44\x54\xe3\xad\x61\x79\xd2\xa2\x26\xcd\xe4\x1e\x7b\x4f\x03\xdc\x7a\x07\xf2\x61\x77\x58\x6b\x8e\x01\x00\xb6\x42\x1a\x77\x1a\x81\x6d\xed\x80\x2f\x00\x3a\x7a\x4c\x27\xe4\x14\x0b\xc4\x16\x31\xf7\x21\x46\xb8\xc3\xf3\xb7\xed\xf8\x30\x05\x3a\x0a\x08\xb2\x7f\xdb\x0d\xe9\xd2\xd3\x74\xa1\xc2\xa3\xaf\xc1\x17\x77\x8a\x80\xab\xfb\xd5\x75\x99\x93\x39\xa0\xb7\xbe\xd6\x93\xa7\x1f\xb6\x71\x14\xc0\xb3\x69\x66\x65\x2d\x8a\x6a\x49\xe7\x18\x94\xca\xf8\x3d\x69\x27\x68\xd0\x83\x33\xaa\x3a\x87\xa0\x92\x4c\x65\x3d\xe5\x37\xa7\x94\x52\xe6\x19\x86\x74\xfb\x9b\x0d\x9b\x93\x12\xd3\xe4\x86\x16\x94\x67\x82\xfe\x41\x3e\xf0\x17\x86\x44\xb0\x6a\x91\x85\x9f\x1a\x96\x31\xea\x15\x70\xb4\xb3\xc4\x84\xb2\x58\xf5\x8b\x6c\x54\xf3\xa9\xed\x71\x82\x73\xaf\x14\xf2\x1d\xcf\x2b\x08\xe4\x7a\x92\x0f\x21\x8b\x84\xee\x4d\x76\x82\x4d\xf3\x02\xb9\xa4\x36\x7e\xcd\xca\xd4\xb4\x63\xd3\xab\xd5\x13\xc4\x79\x0f\x13\x7e\x1e\x55\x02\x5a\x4c\x1d\xbe\xa6\x7c\x5a\x6c\xf4\xd3\x0a\x56\xc2\x94\xbd\xd7\x4f\xe3\x68\x48\x87\x11\x8a\x70\x65\xc7\x61\xd5\xca\xf2\x33\xd5\x21\x20\x1c\xd3\xe4\x8e\x67\xeb\x76\x86\x81\xfe\xd4\xcf\x58\x04\x6a\x8e\x77\x1a\xef\x76\x30\x98\x3a\xec\xd0\x93\xab\x98\xe2\xab\x58\xe0\x7b\x47\xb3\xae\x74\x74\x04\xb5\x06\x14\x13\x1d\xa8\x11\xd6\xbb\xf0\x37\x2e\xf5\x84\xc8\x6a\x00\x91\xa3\xa1\x06\x1b\x43\xfb\x12\x53\x64\x9b\xad\x88\xd0\xc5\x6d\xf8\x61\x57\xf1\xdc\xbe\xd4\xdf\x5e\xad\x25\xff\xd3\xb8\x62\x5a\xf8\xa5\x74\x30\xe8\x42\xea\x0d\xc0\x80\xf4\xdf\x1f\x62\x8a\x47\x30\x74\xe5\xa6\xed\xf4\x6b\xe4\x25\xa6\xc9\x2c\x2b\x14\xf4\x18\x79\x2b\x6f\x38\x03\x44\x46\x9a\xfc\x04\x5b\xc4\x6f\xd5\x9e\xb1\xba\xc7\xb1\x30\xb0\xdc\x10\x1b\x2e\xbb\xb0\xda\x8d\xee\x4b\xd2\x90\x92\xf1\xc4\x8c\xee\xb5\x42\x32\x01\x7c\x18\x6a\x44\xb4\xae\x35\xf8\x21\x5c\x83\x46\x31\x39\x9f\xea\xec\xfc\xe0\x36\x95\xfc\x1e\xa3\x11\xf1\xf3\x58\x75\xbb\xc1\x7b\x79\xab\xdc\xa5\x2e\xf6\x5f\xea\xa2\xe3\x52\xef\xcc\x5a\xe5\x50\x85\xa2\x48\xe3\x27\x1a\x95\x16\xc0\x28\x16\xcf\x35\x2a\x67\x84\x23\x84\xff\x11\x8b\x71\x31\x91\x02\x30\x1f\x12\xaa\x7e\x78\x64\x20\xd0\x33\xbb\xb1\xdb\x0f\xb5\x1f\xe1\x19\x3a\x4c\xed\x57\x5a\x47\x0a\x33\x63\xfc\x37\x48\x01\x3f\x20\x2e\xac\xb5\x68\xde\x39\xfb\x5e\x2b\x12\x9d\x73\xbc\x5a\x88\x76\x45\xb5\x0e\xdf\x6b\x75\xa3\x2e\xe6\x70\x69\x83\xb2\xbf\x78\xa5\x58\xb5\xa7\x90\x1e\xc1\x2f\x7a\x04\xba\xc5\xbf\x31\xb1\x7c\x93\x15\xe0\xa4\x7e\x7f\x45\x85\xa0\x9c\xd0\x44\xd0\x8c\xcf\xcb\xbb\xa2\xfd\xa6\xa2\x62\xb3\x6e\x3f\x7e\x91\xcd\x96\x94\x50\x5f\xc1\xf5\xfe\xc3\xbb\xff\xf8\x29\x7c\xa4\x74\x5e\x84\x26\x1f\xde\xbd\xfb\x48\x68\x32\x5b\xd2\xd9\xe7\x3f\x66\xd5\x95\x14\xe0\x09\x4d\xfe\xf0\xe3\xeb\x97\xd3\x3f\x5f\xca\x5a\x37\x54\xbc\x94\x37\x31\xec\x50\x9a\x28\x1a\xe8\x7b\x11\x30\x32\x72\xf7\x70\x69\x75\x52\xc3\x21\xab\x15\x48\x9e\xaf\x52\xab\xe0\x97\xfc\x2b\x27\x3c\x96\x97\xa2\xa2\xe3\x92\x73\x49\x8a\xf2\x2e\x96\x34\xdc\x75\x9f\xeb\xdc\x89\x1d\x7b\x44\x5d\x8b\x83\x81\xa3\xca\xc1\x0b\x00\xd3\x68\x7f\xf1\x46\x3b\x3e\x8c\x27\x6e\xcc\x73\x77\x41\xf2\xf8\xd3\x74\xfa\x64\x4b\xeb\x27\xdb\x7c\x08\x69\x10\x17\x79\x59\xf2\x18\xfe\xe4\x59\x31\x2f\x57\x31\xfa\x57\x6f\xb0\xf5\x74\xfa\xc9\x5d\xa3\xf0\xc1\x4b\xbc\x20\x9b\x73\x35\x8a\x74\xde\xb3\x53\xb6\xe8\xa9\xe4\x89\xcb\x5e\x63\x52\xd7\x3d\xa5\x75\x7d\xf6\x73\x12\x2b\x88\x98\x9d\xdc\xd8\x3f\x83\xa0\xb7\x03\x8a\xa4\xfe\x46\xcf\xf0\x6d\x87\x16\xdd\x1e\x0d\x7c\x43\x6e\xd5\x99\xe8\xc8\xde\x01\xd6\x14\x84\x2c\xbb\x10\x79\xcf\x23\xf4\xfc\xe9\xe9\x79\xc7\x1e\x5d\x25\x82\x56\x22\xbe\x35\x4c\x3d\xaa\xdb\x09\xb1\xfa\xa3\xba\xd7\xdc\x41\x37\xbd\x2e\x6d\x6a\x88\x27\xef\x8f\x51\x0a\xa4\x3e\x50\xb7\x59\x8f\x6b\x4d\x25\x5b\x06\x0d\x95\x4b\xea\x26\xa6\x08\x5f\xbb\xeb\x1f\x8b\x5a\x6f\xe9\x7b\xfd\xf8\x1e\xf7\x4f\x91\x96\xf6\xee\x02\x13\xbe\xb6\xe8\xb8\x0b\xcb\x64\x51\x52\x0e\xd6\xe6\xd6\xd3\xf6\x09\x58\xd9\xcb\x40\x1f\x1c\x82\x62\xab\xf1\x5e\x1e\x1e\xaf\xac\x7e\x87\x2f\x83\x01\x2b\xa8\x6c\xb0\x64\x5a\x6f\x1b\xd7\xb6\xba\xdf\xb7\x1e\x9f\x6b\x99\x18\x87\x28\xd4\xf3\xfe\x26\x42\x7b\xd7\xd1\x6e\x0b\x68\x80\x67\xa7\xab\x70\x5c\xd4\xef\x80\x72\x71\xe3\x9b\xd7\xfd\x21\x7d\x08\x1b\x53\xe3\x07\x77\x5e\x2e\x87\xef\x24\x82\x8f\x6d\x89\xc0\x93\x17\xde\xd4\x1d\x9b\x17\x6f\xf5\xdd\x92\xbe\xaf\x89\xf6\x5a\xfb\x4c\xef\xab\xf4\xc2\xb4\x85\xb7\xea\x6a\x63\x8b\xfb\xf4\x45\x4d\xfe\x74\xf5\xee\x2d\xfe\x4c\x9e\xfd\xe7\xf8\xe7\xbb\x27\x93\xe1\x93\x67\x6e\xb2\x3e\x84\x90\xf9\xfd\x53\x93\x54\xd5\x45\xc7\x41\x46\x51\x77\xc3\xa5\xed\x3b\x0f\x4a\x68\x76\x3f\x3d\x24\x0e\xbf\x07\x33\x14\x23\xfd\x51\xef\x9a\xd3\xec\xb3\x0a\x10\xb3\x37\x34\x21\x1f\x77\x3b\x27\x32\xbb\x1b\x0d\x0a\x3b\xac\x75\xef\x5e\x83\xae\x2d\xa5\x4b\x5b\x45\x08\x21\x6f\xce\x55\x46\xb2\xf3\x4f\x63\x33\x97\xe9\x93\xad\x7a\x56\x4f\x3e\xa5\xd1\xd8\x93\x1d\xdb\x8d\x37\x92\xc5\xbe\x90\x2b\xac\x5e\x28\x22\x9a\x1e\xc8\x3d\xdb\xc8\xaf\xea\x37\x5e\xfb\x8c\x44\x81\x8a\xe6\x76\x76\x39\x2a\xb5\xf5\xce\x84\xd1\xbc\x60\x7c\xb6\xc9\x33\x3e\x89\x6c\x00\x9d\xbe\x41\x31\x3b\xef\x60\xd9\xc4\xf3\x7f\xb3\x75\xb5\x14\xdc\x73\x91\x17\xd1\x38\xc2\x5d\x58\xad\xb2\xe7\x21\x81\x98\xbf\xf3\xe8\x24\x4a\x23\x7c\x12\x61\xf6\x9c\x9c\x8e\x46\x68\x5b\x0c\xc9\xa7\x24\x49\x4e\xe4\x2c\x1a\x90\xc4\xd1\xa8\x3e\x59\x95\x9c\x9e\x30\x41\x57\xd5\x27\xbd\xbe\xc5\x90\x7c\x88\x01\xf1\x55\x87\xb8\xa8\x01\x0f\x49\x74\x32\x89\x6a\xb9\xf7\x86\xa7\xb8\x40\xff\x1f\x73\xef\xde\xdd\xb6\x8d\x3c\x0c\xff\xef\x4f\x21\xf3\xcd\x6a\x89\x35\xcc\x48\x49\xda\xa6\x4c\x19\xff\x9c\xc4\x69\xbd\xeb\x4b\xd6\x76\xba\xdb\x47\xd5\xcf\xa1\x25\xd8\x42\x43\x11\x5a\x10\xb2\xe3\x95\xf9\xdd\xdf\x83\xc1\x95\x17\xc9\x72\x2e\x7d\x9e\x73\x72\x62\x8a\x04\x06\x83\xc1\x6d\x66\x30\x97\xf8\x1e\xbc\x8d\xc8\xed\x23\xbe\x90\x88\xef\xca\x6e\xb3\xa4\xf7\x82\xfd\x44\x0d\xfe\xac\x8a\x3f\x73\xf8\xb3\x06\xfe\xb4\x89\xbf\x5c\x49\x06\x7d\x75\x18\xd3\x01\x1b\x6e\xe4\x5b\xc9\x1f\x61\x8a\xb6\x82\xb8\x13\x6c\xc9\x3e\xa5\x2d\x7d\x2a\xbd\x3e\x39\x01\xf9\x0f\xef\x74\xf8\xa8\x4e\x07\xe0\x78\xe5\x54\x72\xa5\xde\x54\x32\xe0\x6e\x8c\x99\xf6\xe5\x74\x37\xc5\x5e\x0a\x50\xc7\xc1\x87\x1c\x8b\xaa\xe5\x97\xcd\x36\x98\x6f\xf0\x25\xf7\xcc\x1c\x95\x37\x13\x9a\x11\x17\xb5\xa3\xe2\x8c\x69\x71\x3a\xaa\xb8\x9b\xeb\x50\xc2\xed\xc9\xdd\x06\x62\x08\x1b\x9b\xd9\x9a\xf6\xf5\xd6\x04\x9b\xe3\x41\xe5\x14\x90\x6f\xde\x36\x76\x3d\xbb\x36\xdc\xe6\xf4\xdf\x9a\x66\x21\x49\x08\x0c\xc9\xfb\x36\xe6\x06\xb8\xd0\x8d\x16\x2e\xee\x3d\x34\xf8\xaa\xb1\xc0\x34\xdf\x07\x07\x5d\xd5\x52\xcd\x73\xd5\xca\xe8\x94\x0a\x63\xaa\x26\x1b\x4d\x94\x23\x42\x54\x08\xc6\x49\xc2\xf5\x0f\xfa\x5f\x62\xac\xe6\xa7\xb4\x28\x48\x61\x7e\x4d\xa8\xb0\xcf\xba\xca\xdd\x9d\xe6\xe7\xca\x4a\xf0\xa2\x8e\x2b\xa3\x97\xbc\xb6\xa9\x96\x20\xb6\xb6\x3c\x10\x46\x36\xd7\xf6\xe7\xaa\x41\x5b\x42\x9d\x93\x06\x5d\x90\xe1\xcb\xd6\x74\x0d\xd0\xb5\x97\x16\x7f\xe3\x6f\x20\x9f\xab\xcd\xf9\x47\xef\x6c\xce\xaf\xac\xeb\x80\xfa\xac\xe3\xc0\x36\x29\xe1\xf7\xdd\x50\x45\x67\x98\xfe\x05\xff\x8a\x1f\xe1\xff\x34\xc7\xa4\x95\x45\xff\x05\x2f\xe7\xea\x7f\x5d\x2e\x0a\x3c\x5a\xaa\x5a\xbb\xa6\xe4\x66\x95\x6a\xad\x51\xd4\x53\x2f\xff\xf1\x9f\x39\xe1\xb7\xeb\x95\x5d\x7e\x71\xd5\x28\x0a\x46\x97\xe7\x63\x9d\x0c\x73\xc9\x45\x98\xab\x35\x62\xd3\x19\xcb\x65\x15\x25\xd2\xdf\x53\xdc\x44\x1c\x20\x9f\x84\x0b\x34\xb0\xb2\x86\x7a\x02\x5d\xba\x7c\x5c\x0f\x3e\xac\xa5\x73\xb8\xf5\x5e\xb3\x19\x53\x71\x42\xb3\x31\x34\xf4\xc0\x8a\xf2\xc5\x79\x21\x52\x41\x3e\xa7\xde\x43\x6a\xd4\xc3\x34\xdc\x3b\x3c\xa9\x78\x9c\x0a\xc1\xd7\x1c\x7f\x0d\x7e\x9a\xe6\xe9\x15\x59\xe1\x72\xad\x6c\xdb\xf1\x08\x8f\xf1\x04\x5f\x7e\xe9\x85\xc6\xd2\x0a\x7f\xfc\x53\xcd\xf2\x85\x9f\x1f\xa3\x87\xaf\x88\x68\x4a\x33\x1d\x11\xa9\xe2\xcb\xad\x32\x2c\xc4\x37\xb4\x90\xb0\xc6\x0f\x84\x6c\xaa\xad\x6c\x21\x1d\x8f\x5f\xcb\x79\xf4\x2b\xcc\xd7\xb5\xe0\x43\x84\x32\x5b\x69\x25\x74\x5a\x9c\xd2\xe9\x2c\x23\xaf\x33\x3a\xfa\xb8\x36\xf8\x4a\xad\x95\xf0\xaf\x88\x90\x38\xbc\x62\xf3\x7c\x5c\xac\x0d\xbf\x52\x6b\x1d\xf8\xaf\x33\x0a\x4e\x3f\x23\xf1\xe0\x46\xbc\xaa\x6b\xf7\x84\xe6\x57\xae\xda\x67\xf5\xaa\x02\xe1\xbe\x76\x4f\x18\x83\x9a\x0f\xea\x9b\xad\x74\x1f\x74\x3b\x51\x1e\x04\xde\xd5\x5a\x87\x6a\xfb\xeb\x2e\x0d\x4b\xa5\xfd\xd5\xab\xe2\x8a\x88\xbd\x0c\x82\xc9\x3d\x68\x5d\x54\xab\xad\x83\xb9\x2e\xfe\x50\xf4\x75\xb5\x95\x2d\x14\x9f\xd7\x87\x62\xfd\x3e\x14\x9f\xd7\x87\x62\xfd\x3e\x00\x9b\xf4\x39\xbd\xa8\x57\xbc\xbf\x95\xcf\xe9\x49\xbd\xe2\xea\x56\x0c\xb7\x7c\x2a\x6e\x33\xf2\x46\xa7\xe9\xa7\x2c\x3f\x24\x45\x91\x5e\x91\xf5\x5b\xbd\x07\xd0\x4a\x2c\xc0\x1b\xe5\x8d\xc7\x31\xad\xd5\xa8\x35\x54\x5b\x09\xfb\xb5\xe1\xaf\x0e\x34\x7b\xb5\x16\x6c\xba\x16\xec\x33\xf2\x49\x9c\x1a\x36\x62\x2d\xb8\x6c\x4d\x9c\x39\x79\xc0\xcc\x4a\xd7\x03\x2a\x59\x3a\xb0\xfc\x7a\x18\xca\xc5\x7a\xd0\xed\xde\xf8\x30\xe8\xd9\x5a\xd0\x25\xe0\x53\xc9\x1b\x3e\x0c\xf8\x7c\x6d\xe0\x60\xe0\xb2\x26\xd4\xd1\x5a\x50\x55\xa0\xa8\x87\xe1\x3b\x5e\x0b\xf2\xe1\xfb\xb3\xdd\x57\x07\x7b\xe7\xaf\xf7\x0e\x0e\xd6\x04\x3c\x89\xfc\x4a\x6b\xe0\x7d\xa8\xb9\xd7\xf5\xc0\x5f\x7a\x78\xdf\x23\xaa\x35\x79\xea\xd5\x52\x9b\x12\xbc\xbe\xba\xf5\x8f\x4f\x8e\x6a\xec\x6e\xe5\x87\x03\x1a\x41\x14\x56\x69\x0d\x49\x34\xfc\x8a\xcb\x63\x5a\x37\x3a\x7b\x99\x66\xd9\x45\x3a\xfa\xb8\x2d\xbf\x6c\x9b\x20\x74\xff\x97\x7a\xdf\x1a\xb4\x1c\x3a\xee\x2c\x28\x10\xa8\x94\xd6\x8b\xe0\xbd\x4a\x9a\x5d\xcb\xea\xeb\x4f\x8b\xcb\xae\x21\x69\x47\xb0\x85\x45\xf7\xad\xd3\x16\x69\xad\xa4\xfd\x14\x07\x5b\x2e\x35\x94\x9f\x8f\x20\x87\x20\xea\x59\x7a\xcb\xe6\x2d\xf5\x05\x99\xce\xb2\x54\x90\xd8\x02\x2a\x1e\x57\x20\xe9\xa4\x0c\xb9\x0a\xdc\xf9\x40\x3a\x2f\x11\x65\xd7\x99\x4d\x6b\xc7\x1a\xfc\x1c\xc1\x78\xac\x0f\x7e\x32\xde\xbe\x24\xa9\x98\x73\xd2\x98\xbe\x5f\xcf\xc0\xb6\x65\x8c\xd3\x64\xe1\x52\x94\x8b\x4a\x4e\xcd\x65\x59\xca\xc1\x42\xc0\xa6\x2a\xcf\xfd\x9b\x23\x51\x4d\x4e\x4e\x1b\x61\xec\x5c\x44\xbe\x6e\x97\xb6\x26\x27\x07\x5f\x93\xe8\x74\xef\xe8\xcd\xf9\xee\xeb\xb3\xfd\xe3\x23\x85\x53\xdd\x7e\xc4\xcc\x8a\x6e\x57\x0c\x68\x65\x93\x19\xc2\xe5\x99\x50\xf1\x1c\x10\x16\xe5\x86\xf2\xe0\x55\xfb\xb4\x0f\xc6\xeb\xf1\x46\xc5\xf9\x89\x24\x2e\xce\x60\x23\x3a\x62\x00\x23\x18\x05\x5b\x04\x35\xc2\x13\xda\xf4\xa8\x9b\x49\x12\xe6\x89\xf2\x22\xc2\x39\x98\x21\xb5\x28\x6e\xf3\x1d\xf0\xaa\x15\x3a\x80\x43\x35\x62\xa2\x0b\x94\x58\x8d\x8f\x28\x4a\x84\xd4\x0d\x63\x56\x8f\x3a\x99\xfa\xab\x22\x5b\x7f\x55\xb4\xea\xa0\x3e\xd7\x6d\x63\x89\x2a\xf0\xff\x56\x2c\xea\x91\xe5\xb3\xd6\xcf\x8d\xda\x5f\x9d\x1b\xb5\x26\xdb\x1a\xaf\x87\x12\xe1\x74\x36\x23\xb9\xd2\xaa\xe8\x7c\x5b\x55\x35\xcb\x92\x54\x0f\xcb\x83\x2b\xae\xa7\x67\x7c\xd0\x50\xad\x63\x29\xf9\xb5\xce\x8f\x66\x4e\xf8\x96\x01\x6a\xf7\x90\x1b\x28\xfb\x5e\xe0\xbf\x03\xec\x7e\xbc\xa2\xa0\x18\x91\x13\xea\xbe\xbc\xd0\x25\x76\x20\x62\x8e\x1b\x20\x62\xfe\xb9\xa3\x50\xd5\x26\x7f\xee\x4a\x31\x67\xf9\xb2\x63\xa4\xed\x6c\x58\xba\xe2\xfe\xec\x53\xa3\xff\x34\x0e\x54\x1a\xc6\x23\x72\x93\xd1\x9c\x04\xf8\xc9\x0f\x71\x30\x4a\xf3\x11\xc9\x82\x12\x17\xf5\x81\xe6\xd1\x19\x6c\xfe\x15\x3e\xdf\x34\x15\x04\x58\x6e\xab\xf4\x62\x2e\xdc\xf0\x0c\x82\x74\x2e\xd8\x28\x9d\x51\x01\x29\x92\x02\xac\x5e\x30\xce\x95\xf1\xb1\xfc\x75\xc9\x46\x73\x49\x96\xb1\x55\xaf\x06\x97\x8c\x4f\x03\x1c\x4c\xd3\x4f\x3a\xc0\x0e\x0e\xa6\x34\xb7\xcf\x10\x6a\x6d\xc2\xb2\x31\x5c\x35\x70\x92\x8e\x59\x9e\xdd\xc2\xe3\x7f\xe6\x94\x03\x88\x82\x64\x2a\x60\xf2\x1b\xca\x89\xb1\xa8\x2e\x66\x24\xcb\xc0\x74\x25\x90\x27\xd9\x85\xbe\x45\x09\x04\x15\x99\xe4\xc8\x3c\xc0\x2a\xb2\xaf\xc1\x49\xee\x21\x16\x1b\x1d\x16\xff\xbe\x9c\xe6\xca\xb2\x24\x0f\x83\x59\x5a\x08\x12\xa8\x18\x60\xaa\x38\xd1\x1a\x11\x49\x39\x17\x58\xc7\xd5\x18\xcd\xc5\x83\xca\xd3\x7c\xb6\x56\x8d\x12\x5f\xcc\x2f\x2e\x32\x52\x40\x94\x78\x39\xfd\x66\x9c\x88\x7f\x90\x5b\x1d\x86\xc3\x1a\xb6\xa4\x03\x12\x7d\x24\xb7\xaf\xd9\x58\x71\x0b\x2b\x80\x86\x08\x0b\xdf\x70\x73\x20\x86\x60\xe5\xb6\xac\xf4\xc2\x65\x44\x56\xa7\x31\xcc\x1f\x85\x7c\xa4\xeb\xe8\xa3\xbf\xc4\x23\x9b\xdc\x63\x15\x06\x2a\x43\xac\x37\x93\x65\x85\x2c\x0c\x88\xec\xa1\x26\x0b\x41\x38\x0b\xf5\x7c\xdf\xce\xcd\x84\x37\x9b\x39\x56\xb3\xde\xd4\x2b\x46\xe9\x8c\x6c\xcf\x38\x29\x0a\xaf\x0c\x4c\xd4\xfd\x5c\x17\x82\x5f\xdb\x52\x84\xae\x16\x38\x56\x69\x59\x57\xe3\x8b\x2d\x00\x66\x07\x4e\x42\xf8\x48\x6e\xdf\xc9\x56\x75\x1b\x1f\xc9\x6d\x03\x8b\x8f\xe4\xf6\xfd\xcc\xb6\xd0\x3a\x88\x58\x57\x95\xc2\x88\x5f\xef\x0d\xbb\xc9\x3d\xc8\x63\x76\xe3\x61\xef\x87\x15\xcf\x7c\xcb\x9a\xb4\x1a\xcd\xd2\x31\x4f\x1b\xfa\x06\x3e\xed\x76\x1b\x06\xf3\x69\xb7\x0b\xcc\x65\x3a\x60\x0d\xde\x2e\x4d\x52\xc3\xdb\x59\xa6\x2d\x85\xf7\x7e\x43\x04\x21\x1d\x52\xb7\xd2\xbc\x9a\x2d\x60\x35\x40\x7d\x26\xb3\xdb\x6d\x98\xc4\xa6\x68\xc1\x97\xb0\x64\x69\x8d\x25\x1b\x14\x38\x1f\x96\xa8\x24\x99\x6f\x92\xe3\xf7\x26\x0d\x25\x1b\xb8\x21\xfb\x55\xc1\x47\x2f\xa8\x00\x75\xbb\x79\x54\x08\x36\x93\x5b\x72\x7a\xa5\x02\xde\x23\xcf\xbb\xa8\x58\xff\x70\x6a\xbb\x18\xfc\x7f\x37\xd5\xd7\xb9\xe0\x69\x5e\x50\xd9\xea\x19\xab\x45\x6a\x38\x1f\xcd\x39\x27\xb9\x00\x4d\x16\xe6\x2d\x2f\x8d\x61\x9b\x7c\x06\xd9\xc4\xfb\x9d\x10\x0c\x0e\xf4\xe4\x13\xb5\x7f\xb5\xeb\x29\x8f\x60\x71\x77\xbb\xfa\xc1\x72\x70\x9f\x27\x55\x56\xaf\x54\xbf\xb9\x4c\x79\xc1\xd9\x4d\x41\xf8\xf6\x7d\x01\xf1\xbf\xe4\x52\xbe\x7e\xd7\xff\x00\x39\x15\xa7\xb8\x58\xe6\x79\x93\xd5\x4c\x4c\xbf\xce\xac\x9a\x27\xcb\xb9\xc8\x06\x5b\x11\x0c\x71\x4e\x52\x4e\x0a\x71\x7c\x79\x76\x3b\x23\x7e\x16\x5e\x13\x21\x24\xe5\xfa\xc6\x01\xe7\x49\xc5\x1d\x4c\x0b\x5c\x3b\x22\x79\x49\x8c\x3f\x9a\x14\xdf\xfc\x9f\x7e\xc4\x1d\xf4\x42\xbc\xd0\xd6\xe4\xce\x33\x43\x6c\x48\xf9\xd4\x35\x52\x96\x06\xa3\x7f\x51\x31\xf1\xa3\x96\x2c\xc5\xcb\x80\x25\xe0\xb3\xb4\x02\x30\x27\x9c\xe4\x63\x08\x46\x5a\xb1\xe5\xf4\x17\x51\x64\x0b\xe9\x98\x00\xfa\xdc\x51\x59\x08\xbe\x54\x60\x32\xc9\x90\x65\x03\xc4\xbf\x5d\xab\x8b\x4d\xde\xf2\xb7\x4a\x9f\x84\x46\x93\xb4\x78\x73\x7c\xd8\xb2\x41\x93\x9d\x31\x1b\x01\xbb\x14\xc1\x64\x3d\x05\x9e\x0d\xe2\x6d\xc5\xda\x0e\xc8\xb6\x6a\x5b\xd0\x6a\x0a\x93\xc4\x0b\x5e\xd7\x50\xb5\x65\x2d\xf8\x0b\x36\xbe\x75\x64\xd9\x1f\x2b\x16\xee\x86\x66\xd9\x3e\x70\x04\xba\x43\xb1\xe4\xf8\xc6\xf5\x57\x10\xd1\x3d\x23\x29\x3f\x01\x64\x64\xa1\x5a\x68\xee\xa5\xec\x5f\x75\x94\x4c\x35\x3d\x48\x5e\x00\xaa\x4a\xfb\x8d\x77\x6e\x3e\x58\x1e\x22\xce\xb0\x48\xc1\x9e\xfc\x21\xdc\xa8\xed\xff\xdd\x5d\x10\x98\x30\xa2\x1a\xce\xdd\x5d\x58\x2d\xa3\xcf\xdd\x4a\x74\x01\x54\x62\x15\xe3\x10\x78\x8d\x96\x84\x2e\x95\xfe\xfa\x45\x85\x4d\x3c\x56\x6e\x14\xd1\xdf\xff\xf9\x7e\xef\xe4\xb7\xf3\xfd\xa3\xb3\xbd\x9f\x4f\x76\xd5\xf9\x1d\xce\xa3\x47\x75\x17\x0e\x1f\x23\xeb\x32\xb5\x03\x51\x7f\x94\x71\x85\x09\xf5\x6b\x0b\xc5\x95\x8f\x95\x4f\x25\xd2\xde\x00\x35\xa5\xcb\xdc\x3f\x34\x46\x6b\x1c\x1a\xed\x66\x2f\xde\xb1\x51\xd9\x57\x97\xed\xa4\x10\x60\xed\x0b\xb6\x4f\x01\x81\x19\x4c\x42\x19\xc5\xe0\x14\xc9\xa2\x5c\xbf\x03\x4d\xbb\xad\xd5\x27\xdf\xfd\x21\x37\xef\xcb\x4f\xb4\x96\x10\xdd\x10\x8c\xbf\xba\x6d\x5b\x7d\xe4\xd6\x87\x7f\xae\x69\xe6\x6e\x7b\x3f\xeb\xe0\x7e\xe0\x61\x6c\xcc\xa6\xbe\x09\x47\x37\x49\x16\x53\x36\x2f\x08\xf0\x51\x71\x00\xcf\xec\x5a\x92\x05\x1e\x33\x92\x5e\x13\xf3\x7a\x2e\x82\x12\x5f\x26\xac\x7e\xab\x00\x54\x29\xd4\x71\x63\x63\xfd\x08\x36\x1f\x4d\x0a\x91\x72\x11\x07\xf0\x7c\x2a\x9f\x03\x0c\xcf\x53\x26\xa1\xc2\xe3\x21\xbb\x26\xfa\x2d\xc9\xc7\xfa\xe5\x5e\x3e\xd6\xef\x94\x68\xa6\x5f\xbf\x56\xda\x09\x29\xcd\x48\xf1\x25\x0e\xb4\x58\x03\x6f\xe6\x33\xf8\xfd\x7e\x06\xbf\x40\x70\x82\x17\xef\x94\x08\x05\x5d\x50\xb5\xe0\x51\xd5\x83\x47\x59\x13\x1e\x64\x5d\x9d\x17\x66\x4a\xf2\x79\x1c\xe8\x1f\x87\x24\x9f\x07\x78\x94\xd1\xd1\xc7\x38\x18\x29\x33\xaa\xf1\x45\xa6\x5f\x8c\xd9\xfc\xc2\x5a\x57\x81\x5c\x47\xf3\x38\xd0\xf2\xa2\x7e\xc3\xe6\x42\xbf\x3a\x96\x22\x5f\x31\xbf\x98\x52\x11\x07\xea\x6f\x80\x41\x84\x8f\x8d\x24\x3f\xd2\x49\x41\x46\x26\x4f\x08\x4f\xaf\x34\x25\xe5\xa3\x26\xa4\x7c\x54\x2f\xd4\xb3\x1e\x41\xf9\xb8\xa7\x44\x5f\xf9\xa8\x07\x50\x3e\x1e\xc8\x47\xf5\x56\x8e\xb0\x7a\x79\x7c\xad\x4a\xb2\x99\xfc\xcd\x66\x06\xd6\xd8\x40\x1a\x07\x25\x1e\x47\x87\xc7\xef\x4f\xf7\xce\xf7\x8e\xce\xf6\x4e\xce\x0f\xf6\x76\x7f\xdd\x3b\x3f\x3c\xfe\x75\xef\x7c\xef\xd7\xbd\xa3\xb3\xd3\x9d\xe6\x14\xd2\x18\x34\xe6\x90\xc6\x01\x9e\xd5\x24\x80\x47\x98\x04\x65\xbc\x28\x11\xe6\x8c\xd9\xd3\x37\x90\x27\x77\xd0\x76\xbc\x99\x13\x16\xa6\xde\x2f\x2a\xf0\x6e\x51\x73\x79\x86\xfb\x3c\x88\x90\x64\x32\x86\xfb\xa1\xa8\x21\x46\xa4\x12\x9a\x93\xea\xcc\x2d\xb1\x09\xd4\x68\x94\x14\x6a\x82\x43\x5a\x0c\x2d\xf6\xaa\x28\xf0\xd4\xd7\x64\x78\x88\x07\x58\xe8\xf8\xeb\x18\xc4\xda\x0a\x30\xbf\x1c\xd2\x71\xce\x9a\x27\xe2\xdd\x5d\x51\xb3\x20\x44\x21\xb3\x1e\xcc\x36\x48\x5f\xba\x93\xc6\x4b\xd8\xa8\x14\x21\x15\x49\xeb\x80\x16\x10\xcf\x28\x54\x7e\xd4\xdb\xe9\x6c\x96\x51\xbd\x7d\x39\x27\x6a\x95\xb4\xa8\xb0\x87\xa7\xac\x9e\x8e\xc7\x2a\xc0\x60\x5b\x4d\xbc\xc9\x22\x5a\x84\x41\xd4\xf2\x0d\xb9\x4c\x88\x92\x47\x87\x30\x0e\xe1\x87\xf7\xb9\xec\x48\x47\xb0\x4e\x3a\x1e\x77\xfe\xda\xa8\xf7\xd7\x8e\xf2\xdd\x12\xac\x23\x89\xd4\xd1\x47\x77\x27\x7c\xb4\x60\x51\xa1\xfb\x75\x77\xc7\x06\xbd\xa1\xe1\x5b\x4a\x14\x75\x0e\xd3\x8f\xa4\x53\xcc\x39\xe9\xdc\xb2\x79\xa7\x20\xa2\xe3\x91\x58\x02\x13\x13\xd2\x91\x33\xa9\xc3\x78\x27\xcd\x2d\x58\xc9\x7a\xeb\x2f\xd1\x07\x64\x3d\x34\x32\xf9\x21\x47\x0d\x2b\xff\x49\x5a\x78\x7e\x0c\xca\x49\x2e\xc7\x99\x09\x32\x07\xd3\x4c\xcf\xc4\x90\xe1\x0c\xe7\x83\x6c\x68\xa6\x9f\x79\xef\x9c\x44\xac\xff\xc2\x03\x26\x80\xc9\x91\x25\xe7\x72\xf2\xd2\x65\xcc\x4a\x6b\x36\x6f\x08\x5c\x6a\x12\x9b\x0c\xaa\x93\x43\x08\x8c\xbc\xc2\x92\x71\xb0\x8b\xa7\x25\xa6\x35\x80\x60\xa5\xbf\x6b\xc4\xae\x30\x18\xa7\x22\xdd\xd6\x63\x65\x6e\xd5\x68\x62\xed\x58\x9a\x5c\xc8\x20\x07\xad\x21\xf0\x98\xb9\x09\x77\x48\x22\x2b\xc9\x15\x38\x4d\x98\x76\x5f\xd9\xa0\xe0\x9d\x69\x23\x40\xf7\x5e\x14\x3f\xa5\x2f\x0a\x13\xc6\x6e\x9e\xb0\x88\x0a\x32\x0d\x0b\xb4\xd1\x4b\x92\x64\x0e\xbe\x4f\xce\xad\xb1\x81\xdb\x76\xa0\xa2\x8b\x50\x13\xba\x6e\x15\x9e\x73\xa5\x88\x1a\x22\x54\x96\xf4\x32\xa4\x4e\x60\x1b\x25\x9b\x3d\x3c\x4e\x7a\x2f\xc6\xce\x3b\xc7\xc6\xd6\x9b\x24\x74\x30\x1e\x6e\x4c\xba\xdd\x89\x8a\x38\x0c\x8e\x9d\x10\xd5\x2f\x1c\x25\x13\x4d\x65\x0e\x1e\xfd\x23\xeb\x66\x33\x52\x77\xa3\xf7\x6c\xa5\xdd\xae\xbd\x80\x9c\x0c\xc4\xd0\x50\x4f\x3e\xe3\xcb\x44\xe0\x59\x65\xb0\x78\x62\xd7\xbe\xda\xf3\xd4\xd0\x06\x87\xb0\x05\x5f\xab\x1d\xc6\x59\xf4\xe6\x54\xb8\x2f\x21\xc1\x9b\x7d\xf9\x4f\x44\x92\x5f\xc1\x10\x9f\x25\xa5\x19\x16\x51\x31\xe2\x84\xe4\xff\xb6\x4f\xbf\x61\x11\x8d\xc0\x92\xf5\xdf\xf6\x09\xde\x09\x9e\xfd\x83\xdc\x42\x94\x79\xa1\x1e\x8a\x09\xbd\xd4\x8f\x92\xe7\x53\x4f\x17\x73\x21\x58\x0e\x0c\x6b\x26\xb9\x1e\x75\x91\xb0\xcc\x26\x87\xdb\x6b\x66\xc3\xbd\x88\x48\xbd\xa8\x48\xa9\x3a\x45\xe8\x34\x69\x39\x08\x06\x6c\x98\x90\xe4\xa5\x27\x7f\x13\x03\x82\x27\xa4\x8a\xc6\x0b\xd1\xed\x42\xa2\x8b\x28\x67\x63\x22\x77\x2b\x97\xf8\x81\xdf\xdd\x71\x15\xc7\x71\x33\xec\xe1\x51\xa4\x83\x7d\x15\x28\x94\xcb\x18\xbd\x40\xad\x8b\x4f\xa0\x9d\x3c\x14\x78\x16\x5e\x62\x82\x50\x0c\xd9\xe2\x57\xaf\xa7\x6e\x97\xba\x0a\xd8\x29\x01\x8e\xd8\x98\x94\x1b\x44\xee\xc3\x30\x66\x26\x1a\x43\xc8\xf0\x54\xa9\x2b\x75\xb4\xc5\x36\x1a\x08\x45\x83\x6a\xff\x37\xc6\x4c\xee\x3e\x4b\xf0\x56\x11\x2a\x24\x35\x72\x08\xa0\x8a\x16\x24\x9a\x71\x00\x6b\x52\x4c\x4b\x36\xb2\xa1\xe8\x74\x3e\x91\x9b\xca\xff\x51\x71\x6d\xaf\x40\x3b\xaa\x7c\x20\x4b\x73\xce\xb4\x46\x00\xf0\x29\xd4\xed\xae\x45\x31\x40\x93\x2a\x34\x95\x97\x65\x8d\x6e\xca\x4f\xac\x31\xba\xa8\x95\xa0\x02\x5f\xa3\x52\xe1\x48\x22\x96\x87\x62\x4b\x9f\x6b\x01\x36\x07\x9c\x72\x26\x09\x9b\x81\x56\xda\x89\x09\x8a\xca\xdc\xdb\x84\x05\xe4\x60\x14\xb5\x4d\x58\x87\xaf\xd6\x09\xba\x09\x82\x3c\x8c\x52\x86\xab\x63\x31\x68\x50\x61\x18\x60\x7f\x80\xb5\xf0\xad\x66\xb5\xbf\xdb\xe6\x72\x8b\x85\xe8\x62\x95\x96\xec\xae\xab\xbc\x28\x45\xc5\x8b\x52\x6d\x3b\x42\x6d\xbe\x14\xd8\x14\x88\x40\xc3\xd4\x06\x9c\xa5\x85\xd8\x5f\xb1\x09\xe3\x1e\x32\xd7\x07\xab\x36\x60\xa6\x37\xe0\x8d\xb4\xdb\x4d\xeb\x7b\x29\xa4\x9f\xc9\xed\x5e\x9f\xca\x8d\x3d\xb5\x9b\x2b\x41\x38\x8f\x66\xf3\x62\x22\x19\x95\xb2\x2c\x21\xf7\xb8\xd1\xcb\x40\x38\x35\x2c\xee\x67\xbd\x88\x37\x31\x76\xc4\x32\x4e\xca\x2c\x8c\x35\x8f\xe9\x6a\x40\xa2\xe6\xca\x44\x44\x87\x54\xac\x4e\x41\xde\xc6\xd2\x0e\xf8\x50\xb1\x68\x15\xde\x4c\xa0\x88\x5d\x5e\x86\x6e\x72\xfc\xed\x6f\x5e\x58\x49\x8f\xeb\x53\xed\xb4\xb3\x6f\xcb\xef\xdd\x4b\x6c\xdd\xb8\x43\x94\xbc\x0c\xc2\x9a\xbd\x32\x0a\x2a\x9a\xf6\xcb\xf5\x75\x0e\x46\x4c\xff\xb2\x4c\xb1\x2b\x15\xe8\x6b\x0a\xd7\x35\x61\x5a\x05\x31\xff\x0c\x91\xba\x3a\xf6\x89\x79\x61\x02\x0c\xd8\xdf\x54\xe7\x63\xda\xcc\x5b\x27\xd1\xa6\xda\xa4\xf6\x8e\x7e\x8d\xce\x9b\xdf\x37\x1a\xed\x30\xdc\x06\xa7\xdb\xe5\x56\xdf\x1a\xba\xa6\x13\x97\xed\x94\x4e\x81\xec\xfa\x13\xde\x64\xdd\x2e\xdd\xa1\x6a\xe9\xc9\x5d\x51\x76\xba\xfe\x5b\xad\xf0\x33\x9e\xe6\xc5\x25\xe1\x01\x8a\x07\x81\x95\x48\x03\xac\x25\xd0\xc0\x8a\xa0\xfa\x39\x53\x92\x5e\x60\xc4\x4d\x78\x94\xf2\xa5\x2e\x39\x0e\x86\x26\x6a\x76\x28\xb7\x31\xd3\xe8\x25\xfd\xf4\x0b\x63\x1f\x8b\x01\x19\x26\x8b\x19\x67\xb3\x42\xb6\xe7\x23\x30\x2c\x4b\x14\xfb\xdd\xab\xd1\xda\x11\x29\xd9\xec\xa1\x75\x0c\x74\xef\x55\xf2\x3c\x28\x19\xf7\x7d\xd3\xf7\xa1\xda\xa0\xaf\xa7\xf7\x69\x09\xfa\x41\x1e\xa0\x31\xd4\x88\x3f\x48\x4d\xb8\xaa\xdf\xeb\x24\x78\x6e\x0b\xd6\x16\x04\x9b\x10\x64\x41\x89\x80\xdd\x2e\x71\x6a\xeb\x1d\xef\x39\xae\x06\xc8\xfd\xbc\x78\x6d\x15\x37\xb8\x96\x28\x6b\xc4\xb2\xbc\x77\x77\xc4\xf0\xbc\xf2\x51\xb1\xc4\xf2\xc9\xb0\xc9\x92\xf5\xbc\x99\xd0\xd1\xe4\x65\xdf\x04\x22\x92\x9c\x25\x84\x47\xbb\xcf\x9d\xa4\x65\xe8\xfe\xaa\x6f\xc4\x3a\x85\xac\xd2\x71\x07\x7e\x67\x9a\xde\x76\x68\x2e\x38\x1b\xcf\x47\xa4\x33\xe2\xac\x28\xb6\x0b\x2a\x48\x47\xb9\xde\xcb\x3a\xd7\xf3\x2c\x97\x9c\x34\xcd\xa8\xa0\xa4\x78\xd1\x99\x65\x24\x95\xcc\x4f\x0e\x82\xb4\x98\xa4\xa2\x03\x74\x28\x3a\x17\x44\x56\xb8\x60\xf3\x7c\xdc\x49\x39\xe9\xcc\x80\x6e\xd9\x6d\x47\x19\x4a\x8c\xa3\xce\x5b\xc6\x75\x04\x85\xfc\x92\xf1\x29\xe0\x8d\x3b\x34\x1f\x65\x73\x40\x70\xc2\x6e\xa4\x18\xae\xcd\x69\xe0\x48\xec\xdc\xa4\x3c\xa7\xf9\x15\xee\x14\x84\x74\x26\x42\xcc\x8a\xf8\xf1\x63\x98\x18\x7f\x14\xd1\x88\x4d\x1f\x7b\xeb\xaf\x78\x7c\xdd\x8f\x3e\x3d\xfe\xff\x04\x1b\x9d\x5f\xa8\x4e\x6f\x43\xa7\xb7\x5d\xa7\xa3\xce\xa9\x22\xc3\xe5\x25\x19\x09\x32\x8e\x3b\xc1\x5f\xb7\xc8\xd6\x5f\x83\xbf\xea\xd8\x5c\xd6\x57\xae\x75\x10\xb5\x71\x72\x50\x35\x57\x8f\xa7\x29\x85\x1c\xf1\x89\x0b\xfa\x55\xcd\x20\x54\xd9\xc2\xb4\x7a\x69\x40\x86\x26\x53\x5b\xee\xdd\xe6\xc9\xcd\x19\x18\x96\x1c\x29\xd1\x85\x38\x3f\x38\x08\x64\x55\x65\x21\xdb\x16\x2b\xd5\x0e\xf4\x77\x77\x10\xed\xc0\x41\xd0\xf5\xda\xea\xb0\x46\x9d\x62\x59\x3b\x10\xa2\xae\x12\x82\xac\x58\x06\x5e\x16\x65\x95\xa2\x75\x67\xaf\xea\x65\x8e\xcb\x7e\x61\xcb\x2e\xc3\x9b\x55\xcb\x56\x6c\x35\x1b\x63\xe7\x52\xb6\xda\xd4\x22\xab\xc7\xd2\x0c\x63\xa6\xe2\xbe\x61\x95\xb2\xc8\x6b\xa1\xc0\xa4\x62\xf3\x59\xeb\xb4\x6a\xd4\xc4\x27\x74\x76\xc7\x1c\x92\x88\x42\xbc\x93\x0d\x30\x1a\x55\x57\xc6\x6a\x6d\x67\x92\x91\xf4\xda\xc8\xdc\xc8\x29\xff\xd7\x64\xee\xde\x9c\xa4\xf9\x15\x49\x46\xee\x85\xe7\xbd\xda\x36\xc0\x23\xd9\x67\x49\x25\x57\x2c\x44\x65\xad\x85\x8a\x2f\xea\x2a\x28\xcd\xd2\x0a\xd8\x14\x58\xbf\x25\x66\xdc\x63\x1d\x32\xca\x4c\x05\x2d\x26\x37\xa3\x1f\xba\x00\xc6\x4e\x96\x76\x6c\xab\x7e\x13\x0a\x64\x8d\x4d\x9c\x3c\xa7\x92\x90\x28\x32\x73\xef\x3d\x7a\x51\x8f\xf5\xe9\x27\x41\xc7\xf2\x3c\x38\xd4\xb8\x57\xe2\x98\xf9\xd1\xaa\x58\x23\xca\x47\xda\x1e\xfd\xc9\x33\x92\x33\x39\xd1\xac\x4f\x9a\x59\x0c\x58\x94\x15\x53\x2a\x3b\x69\x06\x43\x9c\xbb\x99\xd3\x12\x6b\x29\x5f\xb6\x9b\x6c\xe6\x77\x77\x79\x25\x59\x52\xe5\x37\x19\xdf\xdd\x55\xf7\x16\x8b\xc0\xdc\x3f\xea\x2b\xb7\xf8\x6a\xe2\x55\x02\xb9\x8c\x5c\xef\x64\x3d\xdc\x50\x2f\x9d\x28\x23\xbe\x0d\xdf\x8b\x14\x6e\x23\x5e\x91\x4b\xc6\x49\x28\xb9\x37\x5e\xa8\x61\x51\x61\xb6\xf7\xf2\xf1\xee\x25\x58\xe8\x80\xcc\xa8\xbf\x80\xf9\xfb\x38\xf1\x22\x31\x59\x85\xb6\xde\x11\x76\xf4\x5f\x4f\xff\xaa\x67\xe0\xdd\xdd\xd2\x4f\xa7\x56\x45\xdc\x52\x84\xfd\xf7\x70\x8d\x52\xc5\x1a\x85\xd8\x1a\x65\x6e\xc8\xc5\x47\x2a\x6a\x05\x75\xfe\x93\x0d\x7f\x4e\x8e\xd7\x60\xbf\x1a\x11\x2d\xd6\xf3\x31\x5a\x27\x4c\x86\xb2\xbc\xfa\x13\xad\xfb\x6b\xc1\xd2\xcd\x1d\xa2\x88\x40\xc6\x24\x63\x2c\x22\xa5\x1d\xd0\x12\x30\x5e\xd0\x42\xee\x62\xf1\x66\x0f\x6b\x3b\xb1\xd8\x06\xe4\x36\x37\x43\xd6\x46\x75\xb9\x29\x86\x32\x29\x0b\x66\x9c\x28\x3b\x8e\xa0\xc5\x44\xa3\x62\x8d\x16\xd9\xa2\x78\xb3\x62\x8c\xe2\xdd\x6d\xe8\x7b\x8d\xd7\x69\x9e\x33\xa1\xed\x8c\x04\x4d\x05\xe9\xa4\x1d\xeb\x06\xd5\xb9\xa1\x62\xc2\xe6\xa2\x93\x76\xec\xfa\xeb\xbc\x6b\xb2\x5b\xb7\x6c\x0e\xfc\x15\x2c\x35\xc9\x36\x3d\x82\x1b\xaf\x12\xea\x77\x52\xcd\x77\x75\x6c\xc2\x81\xc7\xe6\x64\x8b\x3e\xa0\xd2\xb3\x12\x31\x26\x21\x92\x9f\x9c\x82\xe6\x4e\xa4\x34\x2b\x2a\x1b\x81\x32\xd8\xd4\x16\x20\x36\xb2\x97\xdb\xba\x21\x2e\xbd\x26\x47\x23\x5e\x3d\x26\xa0\x31\x56\xe9\x6e\x48\x89\xb5\x91\xa5\xf5\xc8\x59\x3a\x14\x1b\x2e\x98\x9d\xf6\x43\x6a\x51\x06\x72\xe4\x22\x5c\xf8\x9e\x49\x25\x56\xb1\x85\x8c\x0c\xd0\xa2\x46\x54\x70\x4d\x6a\x62\x85\x80\xb2\x6d\x35\xb1\xdc\xd5\x6d\x96\x9e\x52\x3a\xcc\x3e\x4c\x58\x73\x28\x78\x6a\x0d\xba\xf6\xca\xd4\x8b\x68\xed\x78\x3c\x7e\xad\xc7\x33\x4e\xce\xb9\x9e\x92\xeb\xd7\x9a\xa4\x85\x31\x2f\x7e\x48\x35\x9a\x9f\x8f\xd9\xf4\x21\x35\xc6\xf6\xc8\x69\x37\x51\xf8\x26\x1b\x05\xab\x79\x9e\x2c\xec\x5a\x8c\x85\xb7\xf6\xdf\x1c\x1f\xc6\xd6\x29\x5e\x4e\x0f\x73\x6f\xec\x36\x08\x87\x7e\xec\x5c\xdc\x7d\xe5\x15\x7b\xe0\x28\x3f\xd6\x15\x5b\x47\x5b\x45\xa9\xff\x73\x0c\x71\x17\xbe\xb3\x92\x5c\x74\x66\x53\xb2\x14\x0a\x83\xdf\xd8\xbc\x33\x4a\xf3\xbf\x8a\x8e\xc4\xc0\xab\xd0\x61\x73\x51\xd0\x31\xe9\xc0\xb2\x21\x7a\x63\x92\x9b\x8e\x4e\xa7\x12\x54\x6d\xbd\x40\x0f\xb8\xd9\xf3\xcd\x11\x7d\x7d\x6b\x59\xe2\xbc\x36\x64\xfc\xa1\xae\x39\xcb\x66\xdd\x9a\x01\xe4\x15\xe9\x1f\x34\xb1\xd5\x38\xfe\x19\x29\x87\xac\x33\xa5\xf0\xad\x0c\xdc\xd4\x5d\x3a\x96\xbc\x6d\x2c\x25\xaf\x5d\x1d\xcc\xbc\x93\x76\x64\xe7\xb4\xac\x3e\x36\x6c\xa1\x1c\x45\x6f\xc8\xd6\x81\x6b\x8a\xaf\x04\x5a\x22\x5c\x5f\xa2\xf4\x8b\x16\x55\x65\x3b\x5b\x6f\xc0\x1f\xb0\x52\x4d\x15\x3e\xcf\x33\xc6\xbc\x88\x63\xee\x90\x54\x7a\xbe\x3f\x73\x87\xab\xcf\x06\xb7\x67\x2d\xec\x90\x11\xb4\xf0\x98\x76\xef\xb5\x5b\x7c\xf5\x22\xa0\xef\x27\xf5\xd5\xab\x78\xba\xe4\xe5\x26\xd1\xb1\xe6\xc1\xf5\x95\x46\x97\x59\x7a\x75\x45\xc6\xfb\x96\x0e\x28\x0c\x80\xae\xea\x22\x27\x0a\xb6\x04\x56\xe6\x5d\x31\xc7\x92\xb8\x31\x29\x21\x39\x2d\xe4\x75\xfb\x83\xd1\x1c\x85\x04\x42\xaf\x03\x0b\x00\xad\x48\x09\x24\xad\xcd\x0e\xe6\xcf\x8e\xf4\xa1\xb3\xc3\x9c\x5a\x0f\xb2\xcc\xff\x1a\x7b\x84\x3f\x2d\xff\xe4\xb9\x51\xb1\x47\xa2\x6e\x6e\x28\x7f\x87\xfa\xa8\xab\x8b\x35\xc5\xec\x7c\x65\xe2\xfb\xfc\xc9\x67\x31\x38\x8d\x65\xe8\x46\xe6\xcf\x12\x3b\xea\xf4\xb4\x47\x24\xc2\xb4\x46\xac\x1c\x2d\x67\x01\xbd\xfb\xb3\xc7\x57\x19\xbb\x48\xb3\x62\x9b\x93\x82\x65\xd7\xf7\x13\xe7\x73\xfd\x46\x6c\x4a\x99\x87\xc9\x79\x3a\xe3\xfc\xd7\x72\x00\x01\xbb\xa8\x2f\x1f\x0e\x5c\x44\x3f\x1f\x1c\xbf\xda\x3d\x38\x3d\x3f\xd9\x3b\x3d\x3e\xf8\x75\xef\xa4\xdb\x0d\xb3\x5a\xbe\x2c\x63\x5f\xba\xa8\x25\x1b\x76\x11\x7a\x20\xf3\x9c\x7d\x5d\x56\xec\x03\x67\x29\x2f\x20\x59\x9d\x0a\x92\xda\x1e\xe5\xa3\xcc\x19\x9f\x82\x53\xaa\x56\x79\x0c\x04\xe6\xc3\x84\x44\xc5\x2c\xa3\x22\x0c\x62\xab\x28\xb4\x71\x2d\x82\xcd\x24\x11\x3b\x1f\x1e\x2d\x44\x19\x3f\x5a\xc8\x45\x07\xfe\xa2\xe1\xe3\xf0\xf7\xe8\xee\xfc\x6e\x1b\x45\x8f\xaf\x30\x49\x5e\x92\x68\x34\x49\xf9\xae\x08\xfb\x28\x12\xec\xfd\x6c\x46\xf8\xeb\xb4\x20\x21\x42\xe5\x87\x98\x94\x7a\xbe\x58\x4d\x8b\x71\x8b\xb2\x68\xc3\xcd\x76\x22\xe1\x43\x41\x95\xc8\x52\x7e\xf0\x83\x79\x0f\x72\x1d\x26\x41\x3d\x87\x5c\x99\x8d\x68\xd1\x47\x57\x3d\x16\x13\xc2\x43\x8e\x4a\x1f\x76\xd5\x60\xbf\x4a\x2c\x10\x9e\xc2\x25\x5f\x92\xda\x7b\x08\x10\x5f\xf9\xa9\xe9\x98\x57\xe9\x88\x59\x92\x2b\x2b\x48\x5e\x4f\x95\xa8\x12\x4c\x22\x5c\x24\xac\x6a\x51\xf0\x38\x40\x38\x4b\xc0\xe0\xa0\xd8\x61\x51\x91\xd1\x11\x5c\x80\x23\x90\x6d\x41\x70\xac\x0c\x4b\xb7\xab\xca\x3a\xa3\x31\xdd\xfe\xe3\x00\x6d\xb0\x64\x3e\x98\xdb\x68\xc9\x43\xed\x05\x00\xc7\x9f\xf3\x4d\x46\xe1\xdc\x36\xb3\xdd\x47\x70\xb4\x85\x41\x14\x20\xb4\xa1\x71\xaf\xe4\x11\x44\xe1\x08\x19\x25\x16\xe8\x95\x21\x13\x75\x70\x28\x1f\x55\xaa\x54\x98\xd2\xf4\x12\x2e\xeb\xc1\xc8\x93\xdd\xdd\x6d\x8a\x76\xbb\xc8\xfd\xfc\x3a\xcd\xe8\xb8\x63\x12\xba\xc5\x9d\xdf\x3f\x3c\x5a\x90\xf2\xf7\x0f\xb8\x33\x9d\x17\xa2\x73\x61\x19\xf5\x4b\xc6\xa7\x9d\xdf\x3f\x48\x89\x37\x96\x24\xfc\xfd\x43\xc7\xa6\x24\x58\xd8\xfa\x04\x43\x01\x81\xcd\x9b\x7f\x29\x15\xc4\x19\x54\xc3\x63\xca\x65\xdd\x38\xc3\xf0\x87\x81\xcd\x6d\x9c\xe2\xc6\x94\x8b\x03\xfd\x2a\xd8\x1a\x97\x65\x35\x05\x8b\x7f\x81\xd2\x36\x89\x1b\xeb\x27\x49\x12\x0e\x59\xc8\x76\xec\xbb\x4e\x2a\x3a\xc1\x16\x8f\x5a\xd0\x74\xeb\xeb\x77\xb9\xb0\xe4\x48\xc6\xa1\x48\x3e\xc0\xd2\x63\x4c\x94\x91\x4e\x80\xee\x08\xcd\xc1\x36\x05\xd5\x6b\x06\xa8\xfc\x00\x29\x38\x49\x26\x27\x8b\xc2\x41\xae\x9e\xad\xa4\x01\x00\x12\xe6\x21\x2c\x50\x39\x4d\x3f\x12\x93\x82\xb6\xa2\x3a\xf1\x02\xa1\xcf\x0b\x72\xc2\xe6\x82\xf0\xa3\x74\xaa\x8b\x05\x17\x69\x41\x47\x01\x18\x41\x41\xe8\x76\xf5\x27\x09\x82\x58\x3f\xa9\x3f\x75\x24\xcf\x03\x64\xb6\x86\x33\x4d\x1c\xff\x7a\x6a\x3d\x02\x6d\xd8\x10\x17\xa0\x65\x36\x80\x90\xe1\xf7\x6a\x6f\xa1\xf7\x63\x32\x4a\xa7\x44\x2d\x01\x81\x2c\x12\xbf\x52\x72\x53\xdf\x2d\x9a\xdd\xc5\xcd\xed\x86\x58\x10\xaf\x59\x2e\x38\xcb\x94\xb1\xce\x97\x00\x82\xb2\x5f\x08\xe3\x50\x0e\x7f\xc5\x64\xcb\x1f\x78\x35\x26\x1e\xfd\xf4\x56\x45\x60\xaa\xa9\x1c\x4f\x00\xe6\x17\x92\xcd\x9a\xfd\x59\xd2\xa6\xf9\xbd\xb2\xcd\xad\xc6\x6b\x98\x83\xf7\xa3\x22\xf7\x9a\x15\xc0\xef\x83\xf2\x31\x67\x37\xf9\x5b\xc6\xeb\x2e\x94\xcd\x78\x39\xfe\x4e\xcd\x1a\x0d\x49\x76\x53\x6e\x67\x2a\xed\x5c\xc8\xb6\x82\x47\xb0\xa3\xb7\x9f\xbb\x38\xab\x24\xb1\xce\x11\x9e\x27\xbd\x17\xf3\x9f\x32\x63\x7c\x36\x37\xc6\x67\xa3\x24\x1b\xcc\x41\x47\x98\xaa\xc0\xf3\x23\x84\x8a\x81\x8e\xb3\x93\xe6\x85\x9c\xc2\x67\xcc\xaa\x25\xdf\xce\xb3\x2c\x87\x8d\x07\x8f\xd0\x30\xd9\xec\xb9\xec\xd2\xf7\x14\x17\xde\x45\x62\xad\x67\x79\x22\xbc\x43\xe1\x6f\x26\x65\xb7\x21\x2b\xec\xd1\xb1\xde\x86\xc6\x69\x31\x21\x1c\x96\x51\x8e\xca\x0f\xa5\x56\x29\xce\x93\xcc\xe3\x27\xe7\xcb\xf9\xc9\xb5\x42\x7a\xd7\x6c\x2b\xfc\xfa\x92\xed\xce\xd2\xff\xde\x9e\x67\x2c\x1d\x2f\x2f\xe2\x9b\x80\x7d\x03\xcd\xc7\xaa\x48\xab\xc7\x0a\xf9\x35\xa3\x27\x9b\x0a\xf7\xc5\x3e\x7d\x18\xd4\x62\x1d\xa8\x2c\x3f\x00\x1a\xae\x19\x09\x54\x15\x5f\x09\x91\xcf\xa1\x0c\xd8\x35\xad\x0d\xd7\xaf\xb4\x12\x3a\x0c\xf9\xda\x81\xa9\x79\xa4\xcb\xaf\x84\x69\x85\xb6\x07\x47\x26\x5d\x35\xc5\x75\x8a\xce\x87\x6b\x78\x96\xfb\x0f\x3e\xc8\x99\xde\x53\x05\xe4\x57\x34\x27\x1e\x4a\x2b\x64\xa8\xa5\x62\xd2\x37\x91\x56\x25\x33\x6c\x2c\x66\x8d\x83\x9d\x47\x45\x75\xbb\x33\x9a\x17\x82\x4d\x95\xf7\x92\x7a\xe3\xbb\x4d\x3d\xc0\x27\xd8\x83\x1c\x9d\xdf\xa4\x62\x34\xd9\xd7\x24\xd1\x16\xcc\xfa\x80\xd3\x0a\x86\xc0\xb7\x21\xdd\x36\xd4\x53\xa6\x15\x2a\x96\xc8\xc2\xbb\x05\x8b\x37\xfb\x25\x2a\xf1\xf9\x05\x63\xe2\xf4\x16\x52\x3a\x54\xc5\x0f\xf9\x81\x8c\xef\xee\x42\x02\x67\x48\x66\x4f\x71\x70\x9a\x39\xd1\xf7\x5b\x21\x64\x5e\xf6\x3a\xb8\xa3\x90\x72\x2f\x92\xca\xe7\xb8\xf1\xb9\xd1\x55\xef\x23\xe4\x16\x54\xaf\xc1\xa7\x8b\x3b\x9f\xae\x88\x03\x87\x81\x03\x53\x20\xf0\x0a\xb7\x10\x90\xcf\x73\x43\xbd\xfd\x9c\x0a\x0a\x92\x05\x2f\x34\x25\x6d\x9a\xcf\x74\x24\xe8\x35\xf1\xdd\x86\x6a\xf6\xb5\xd6\xbb\x4d\xd1\x27\xd9\xec\x19\x87\xf7\x3a\x5d\xd4\xf0\x7a\x01\x0b\x6a\x94\x53\x60\xce\xcd\x4d\xe1\xf9\x39\x04\x83\x51\xdd\x52\xe6\x71\x23\x36\x9d\xcd\x05\x19\xa3\x65\x69\xc4\xac\x39\x8d\xae\xa5\xcc\x68\x4a\x24\xf9\xec\x74\x7c\x9c\x67\xb7\x21\xc2\x63\x3a\x7e\xad\x2c\x04\xb4\x95\x95\xd2\x50\x55\xdc\xf6\x7d\xa2\xa3\x12\x83\xf9\xa8\x64\xe1\x54\x42\x7d\x8f\xde\x51\xf5\x93\xa6\xc5\x98\x8e\x4f\xa1\x6f\x50\x46\x9e\xf0\x9a\x1a\xf0\xdb\xce\xf4\x6a\x31\x2b\xce\x36\x6a\xe3\x4a\x83\x3e\x20\xab\x3b\x7d\x7f\x72\xd0\x48\x72\xe2\x17\xac\x80\xf0\xab\x68\xcc\x1a\xa3\xaa\xd3\x7c\x57\xa8\x5a\xf7\xc2\x36\x26\x67\x75\x3e\xcc\x9f\x68\x38\xf0\xd7\x3f\xb8\x63\xd5\x99\xb6\x5a\x81\xa6\xba\x39\xc7\xd4\xb3\x18\x57\x3e\x92\x0c\x37\xc6\x09\x93\x52\xee\xf9\xb2\x5f\x35\x9e\x57\x75\x7b\xce\xb3\x12\x5f\xd3\x82\xba\xb0\x47\x15\x1a\x6d\xf8\xe1\x60\xce\xed\xed\xf2\xf9\xb9\xb3\xd2\xf2\x76\x6e\xd7\x79\x7f\xf9\xd1\x24\x44\xc9\x4b\x11\x31\x10\x3a\x8b\xa8\x98\xb0\x79\x36\x56\xf7\x81\x2a\x1a\x80\xd2\x4f\x9e\x12\x21\xc0\x4f\x12\x45\x62\x42\xf2\x10\x6a\xc9\xa5\x07\x1b\x02\x66\xe0\x0e\x03\x79\xbb\x40\x11\xac\x65\x71\xfd\x0b\x94\x0a\x67\x36\x96\xcd\xee\x05\xe3\x82\x8c\x9d\x20\xd7\xed\xe6\xd1\xb9\x42\xe8\x90\x8e\x38\xcb\xe8\x45\xa4\x16\xb2\xab\x64\xd3\x17\xdd\x5b\x52\x21\x48\x31\x43\x1b\x80\xc5\xaa\x96\x77\x9c\xa5\x01\x89\xa6\xca\x1c\x14\xc5\xa4\xc4\x85\x37\xea\xb9\xb7\x49\xd9\x71\x85\xb1\x50\x53\x12\xe7\xde\x0c\x85\x1c\xb9\x30\xa4\xc8\x21\x52\x89\x48\xf1\xc0\x83\x63\x9e\xb7\x1c\x1d\x92\x05\x2e\xaa\xf7\xee\xb5\xed\x0b\x8b\x64\x51\xa2\x85\x88\x04\xdb\x73\x93\x40\xae\x59\x7d\x1c\x08\x70\x84\xf1\x4e\x9f\xc6\x5c\xc1\xb5\xca\x21\x6a\x9e\x40\x15\x10\x05\xe1\xd7\x74\x44\xe2\x6d\x63\xda\x24\x41\x98\xe7\x96\xba\x15\x5b\x02\x08\x60\x61\x32\x0c\x66\xd5\xd4\x4b\xaa\x2b\xb2\xb4\xb1\x4b\x37\x46\xf6\x2a\x54\x97\xbf\xf7\x83\x2b\x66\xf1\xe6\xf8\x50\x83\x57\xf3\x57\xca\xa8\x09\xf1\x7f\x61\xcf\x5e\x8e\x16\xaf\x14\xab\xb3\xa3\xe1\xe9\x9f\x89\x4e\x5b\x1e\x7a\x45\x74\x40\x52\x57\xa6\xda\x9e\x7d\x6f\xb6\x47\x8d\x31\xf0\x0d\x2d\xd8\x6e\xf6\xb1\xde\xb3\xd4\x80\x27\x41\xce\x72\x29\x0e\x7a\xe8\x55\x16\xa5\xda\x07\xbc\x37\x1e\x92\xfe\x6b\x8d\x67\xa5\xa4\xd9\x9a\xfd\x97\x6b\xe3\x09\x3c\x95\x1e\x4c\x85\x85\xf9\x95\xb8\x0f\x71\xf5\x43\x9b\x15\x9a\x85\x61\xeb\x40\x9b\x15\x36\xc3\xa4\x9d\x5a\xca\x87\x54\xe8\xe3\xf1\x18\x55\x5a\xfa\x1c\x85\x57\x5e\x75\xd5\x94\xd6\x1d\x37\xaf\x51\x75\x62\x54\xb8\x8a\xb0\x85\x30\xfe\x14\xf1\xde\x23\x54\xd6\x16\x8f\x3e\xa1\x1a\x87\x85\x77\x54\xa8\x89\x94\x54\x27\x52\x9d\xb9\x49\x9a\x48\xe0\xca\xcc\x4e\xea\x13\x1f\x13\xb3\xbf\x1b\xbb\xa2\x52\xc9\xcf\xc5\x7a\xf2\x73\x5d\xb8\xfd\xec\xeb\x98\x2f\x74\x3e\xaa\x5c\xde\x34\x2e\x9c\x97\x8b\x34\x6b\xc8\xf2\x5f\x1c\x35\x85\x2b\x96\xaa\xbd\xd1\xa6\x28\xa4\x64\xa4\x56\x48\xf6\x20\xff\x26\x97\x4f\x7e\x9e\x28\x3c\xc3\xd3\x6f\x22\x67\x5d\xcb\x6d\xed\x2a\x99\x34\x84\xad\x96\x00\x14\xa4\xca\xc9\x2d\x93\xc1\xd2\xb9\x60\x92\x65\x07\x5b\x45\x7d\x41\x28\xe7\x36\xfc\xf6\x68\x6d\xce\xc9\xe2\x21\x92\xda\x23\xb3\x09\x3e\x4a\xe6\x6e\x1b\xb8\xbb\x0b\xaf\xe5\x96\x39\x6d\xf5\x06\xcb\xad\x37\xd8\xe6\xbc\xe6\x1c\xd5\xed\xa6\x51\x46\x2f\x78\xca\x29\x71\x02\xde\x6b\xc6\xc9\x01\xbc\xbd\x0d\x6d\x26\x2d\x70\x1c\x35\xae\x87\x28\x52\x5e\x52\x08\xd9\xb3\x2b\x1d\xd3\x9c\x14\xc5\x1b\x72\x49\x38\x4f\xb3\x22\xe9\xd7\xc4\x17\xf3\xbb\x8d\x04\xc6\x8e\x5a\x73\x15\x9a\x82\x7a\x7b\xf0\x68\x68\xf7\xb0\x4a\x39\x83\x84\x57\x50\xcb\x55\xe7\x33\x4e\x66\x29\x27\x6f\x19\xff\xd9\x7d\x34\x4c\xbb\xa9\xaf\x0b\xdf\xa4\x54\xbc\x65\xfc\xcd\xf1\xe1\x09\x49\xc7\xb7\x21\x84\x4a\xa5\xd9\xd8\x32\x34\xea\x74\xb7\x7b\xe0\x45\x5a\x10\xbd\x4d\xf9\x8c\x90\x7a\x65\x93\x5a\x78\x37\x94\xb8\x26\x5b\xdb\x10\xa1\x6d\x24\xb1\x69\xc5\x1b\x7c\x55\x5d\x7e\x6e\xad\xed\x79\x4f\x2c\x23\x82\x6a\x5c\xcb\x42\xa1\xf7\xe3\xee\x6e\xa4\x9f\x90\x59\x0f\x56\x16\x95\x04\x79\x63\x17\xb2\xc5\x09\x04\xfc\x65\xdf\x7c\x89\xa7\x4a\x51\xa4\x43\x3d\x9e\x8f\x1b\xd5\xce\xcf\x4d\xda\xca\x8a\xc4\x20\x59\x23\xff\x77\x89\x1b\xc3\xb6\xd8\x34\x4b\x45\xfd\x8d\x68\x01\x5f\xa4\x94\xc0\xa2\x62\x34\x21\x72\x73\x40\xa1\x0e\x0f\x6f\x02\xab\x06\x63\x36\x85\x72\x81\x66\x48\x1e\x85\x4a\xba\xbd\x0d\xa1\xe2\x05\xcd\xc7\x46\xb0\x72\x45\x51\x89\xcd\x0f\x43\xd1\xaa\x85\x7e\xf5\x15\x19\x1b\xc3\x54\xab\x0e\x01\x33\x9e\x4b\xc2\x4f\xcc\x12\xb2\xbb\x40\x73\x51\x6d\x6d\x95\x38\x1d\x5f\x4b\xfa\xac\x53\x7c\x7b\x1b\xf7\x4c\x88\xb7\x96\xcf\xa0\xe9\x60\x11\xcb\x47\x44\x77\x4c\xf1\x44\x74\xfc\x8a\x8c\xd8\x14\x9a\xb8\x95\xab\x80\xb1\x8a\x7d\xb5\xfc\xfd\x8e\xb3\x29\x2d\x08\x6a\x68\x72\xf4\x87\x0d\xc1\x6f\x17\x8d\x9e\x8e\xe4\x44\x96\x13\xb8\x5c\x56\xcf\x57\x14\x29\x7f\xeb\xb0\xaa\x25\x5a\x83\xc4\xa8\x32\xe3\xa0\xe6\x89\x36\xd0\x48\xb2\xe8\xe4\xf4\xd7\x77\x11\x50\xdc\x4e\x3f\xaf\xfd\x84\x44\xb3\x7a\x0f\x40\xa3\xe3\x69\x72\x10\x06\x3f\x6c\x5f\x35\x2b\x67\x93\xcf\x77\x78\x6a\xb3\xe6\x78\x69\x32\x08\x63\x8b\x27\x25\x93\x3f\x54\x10\x4a\x2c\x4a\x88\xf7\x58\x10\x51\x5d\x37\xed\x4b\x64\x63\xad\xdd\xd7\x74\xcd\x71\xcc\x55\x9a\xd4\xde\xab\xcd\x1a\xa6\x86\xb2\xed\x82\xa9\xe1\x2b\x86\xe0\x1b\x9f\x83\xd9\x57\xa0\x6d\xd0\x82\x7b\xb7\x08\x7c\xcf\xfa\xb3\x03\x0f\x8a\xa5\x12\x57\xe7\xa1\x9e\x0d\x8d\xe1\xef\x76\x37\x1b\xe3\x2f\x47\x0e\x68\xb7\xa1\xa2\x5c\xd0\x88\x16\x67\xa4\x90\x6c\x0f\x0a\xd1\xdd\x9d\x8a\x7c\xa1\x8d\x5c\x77\xd5\xa5\x2a\x5c\x6e\x15\x48\xa1\x09\x7e\x3c\xf6\xed\x29\x49\xf9\x68\xe2\x22\x30\x6d\xf6\x50\xed\x04\x41\x21\x69\x1e\x56\x3b\x2b\x06\x2e\x6e\xdb\x0c\x91\xbf\x56\x8c\xce\x15\xba\x0e\xe1\x36\x7c\x75\xd8\x46\x73\x18\xcd\x05\xa4\xaf\xb2\x75\xba\xc3\xfa\x9c\x6b\xad\xef\x4d\x42\xac\x5b\xae\x04\x7a\x5d\x5b\x39\x70\x3f\x09\xfb\x08\x17\xe6\x0e\xa2\x72\x7a\xaa\xed\xaa\xdb\x0d\xdb\x3f\x2b\xde\x0d\xad\xe0\x25\x2a\xd9\x80\xdb\x4b\x78\x0e\x56\x2e\x22\x27\x5a\x09\x54\x67\x09\x46\x56\xcf\x55\x0f\x7b\xa9\x36\x49\xa7\x73\xf2\x73\xf6\xd7\x0f\x3d\x7b\x09\x03\x95\x84\x57\x8b\x47\x46\x8d\x86\x22\xbd\x59\x26\x2f\xd5\x90\xb9\x45\xc7\xfd\x45\x47\x4a\x54\x82\x3e\xe2\xaa\xaa\x65\x81\x36\xad\x96\xa5\xba\x97\xb4\x79\x65\x98\xa4\x56\x9e\x53\xa0\xaf\x31\xf1\xf5\xbe\xd8\xb0\x07\x96\x3b\xa8\x29\x68\x5a\x5c\x2e\xf1\x42\xf1\x41\xb1\xb6\x1b\x6d\x33\xc7\xaa\x42\x81\x16\x63\x65\x49\x61\x5a\xac\x96\x68\xd7\x9a\xe2\x79\x54\x8f\x54\x01\xfe\x9d\x7f\xa8\x14\x00\xb5\xae\x78\x17\xdb\xd8\xdf\xc2\x8d\x12\xd2\x6f\xcf\x88\xe8\xb1\x5c\xf6\x12\xa7\xdd\xb9\x60\x07\x56\x6e\x6f\x2d\x3a\x49\x8b\x89\x2c\xfa\x4b\x5a\x4c\xee\x2b\x4a\x0b\xc1\x24\xab\x3d\x8a\x7e\x51\x8f\xf7\x54\x00\xfd\x0b\x1e\x45\x47\x2c\x27\xad\x45\x2f\xa3\x19\xa7\xd7\xa9\xa0\xff\x25\x1f\xb6\x2f\xe6\xa3\x8f\x44\x6c\x8f\xd2\xd1\x44\xdd\xd5\x7c\xa8\x8c\x89\xe4\xc0\x47\xd1\x2b\x28\x04\xd6\x5e\x4b\x54\x66\x8a\x7a\x6e\x0e\x9c\xaa\xf7\x35\x1a\xd7\x4b\x07\xe7\xf6\xa9\x7a\x83\x10\x12\xd8\x2d\x66\x4a\x61\xbc\xeb\x06\xc0\x4c\x5d\xb8\x83\x27\xe6\x26\xfd\x22\xb9\xf2\x34\x01\x17\xab\x35\x01\x9e\xf4\xfc\xf5\x43\x8d\x7c\x03\xab\x55\x75\x87\xdc\xea\x6a\x4c\xc1\x9d\x7c\x40\x86\x49\x0e\xf6\x79\x83\x21\x96\x0f\xca\xdd\x53\x20\xcc\xbb\x5d\x11\x2a\x4f\x66\x9f\x2d\x69\xfa\xde\x52\x30\xe2\xc3\x3c\xba\xa1\xf9\x98\xdd\xb4\x26\xc3\x7f\xed\x64\x5a\x13\x03\x48\xce\x0e\xef\x75\x48\xf0\x42\x05\x0a\x8b\x85\x32\x1f\x23\x25\xda\x30\x40\x23\xb3\x24\x55\x59\x86\x4a\x89\x6b\xb7\x0b\x18\xfb\x7b\xaf\xf1\x8d\xd6\x1b\x7d\xdd\x4b\x70\xef\xe8\xd7\x68\xef\xf0\xd5\xde\xc9\xf9\xc1\xf1\xee\x9b\xf3\x5f\x8e\x8f\xff\x71\x7a\x77\xb7\x28\x31\x4d\x16\x25\x66\x09\xdd\x70\x55\x59\x89\xd0\x86\x9b\x0a\xa3\x54\x6e\x2c\x56\xcf\xb0\x9e\x61\x45\xeb\x34\xf8\xa6\x76\xca\xb4\xd8\xcb\x55\x94\x92\xa6\x4b\x3b\x0c\xb9\xf1\x65\x56\x61\xc8\x20\x3e\x0c\xdf\xe1\xf1\xe6\xa6\xa6\xce\x11\x64\x55\x38\x7e\x27\x25\xfd\xdd\x83\xf3\xb7\x7b\xbb\x67\xef\x4f\xf6\x4e\x25\x51\x15\xe5\x5e\xef\xbe\xfe\x65\xef\x7c\xf7\xdd\x7e\x62\xde\xfc\x7c\xb0\x7f\x78\xb8\x77\x72\xbe\x7f\x74\xbe\x77\xb0\x77\xb8\x77\x74\x66\x3f\x9d\x1c\xbf\x3f\xdb\x3f\xfa\xf9\xfc\xf0\xf8\xcd\xde\xc1\xf9\xee\xc9\xcf\x8d\x4a\xa7\x7b\x67\xe7\xaf\x8f\x0f\xdf\x1d\x1f\xed\x1d\x9d\x9d\x9f\xed\x1d\xbe\x3b\xd8\x3d\xdb\xb3\xc5\x5e\xbf\x3f\x3d\x3b\x3e\xf4\x4a\xec\x9e\xfc\x7c\xfe\xee\xe4\xf8\xdf\xbf\xd9\x22\x87\xc7\x6f\xde\x1f\xec\x9d\xbf\x3f\xda\x7f\xbb\xff\x1a\x34\x14\xf6\xd3\xd1\xee\xe1\xde\x9b\xf3\x57\x07\xc7\xaf\xff\x71\x6a\x5f\xee\x1f\xbe\x3b\x39\xfe\x75\xef\xcd\xf9\xfe\xd1\xe9\xd9\xc9\x7b\x89\x6f\xb5\xd6\xc1\xfe\xab\x93\xdd\x93\xfd\xbd\xd3\xf3\xfd\xd3\x93\xbd\x9f\xf7\x4f\xcf\xf6\x4e\xf6\xde\x24\x24\x32\xc4\x48\x48\xf4\x66\xef\xed\xee\xfb\x83\x33\x4b\x9f\xea\x4c\x5b\xac\x02\x14\x6f\xf6\xf1\x6a\x4c\x5c\x09\xbf\x03\xee\x6d\xb3\xc7\xee\xdb\x72\x82\xc5\x9b\x3d\xbc\x0e\xed\x5d\xb9\xc6\xe8\x35\x41\xb8\x31\x77\xdf\xec\x0c\x89\x37\xfb\xe5\x46\x0b\xad\x2a\x69\xe0\x8c\x3e\x38\xc7\x6a\x06\x9a\x52\x5e\xe6\x10\xe6\x34\x14\x9b\xe1\x3d\x13\x55\xc5\xa3\xd8\x4c\x12\x82\xee\xee\x48\xe9\x0d\x1a\xd5\x1e\xf8\x2c\xa4\x2b\x07\x1a\x6d\xdc\x33\x11\x52\x63\x50\x61\x01\x2d\x1b\x48\x07\x6a\xe9\xa4\x2b\x94\x11\xbc\x07\xcc\x1f\x73\x07\xa0\x32\x95\x33\x6d\x04\xe6\x2a\x35\xa7\x84\xab\xda\xb2\x40\xe6\xda\x5c\xd9\x01\x58\x3e\x6f\x1c\xa0\x15\x8b\x71\xb4\xa1\xcc\x96\x1d\xc0\xd5\x93\xcc\x01\xbd\x67\x23\x18\xeb\x70\xd2\x0e\x70\x63\x56\x3a\x58\xcd\xed\x66\x02\xd5\x2f\x5b\xf0\x72\x33\xb7\x89\x8b\xb7\x93\x5d\x02\x80\x99\x4f\x29\x33\xbd\x3d\xc2\xd8\x3d\x71\x56\x65\x20\xac\xb7\xf6\x7a\xe7\xc5\x12\xd3\xa0\x6f\x66\x3e\x67\x93\x3a\xaf\x6d\xe9\x66\x6b\x34\x4c\xb2\x5c\x57\x8d\x19\xf6\xb6\x4a\xa0\xb5\x5e\x04\xfb\xaf\x1b\x7e\x0a\x1c\x56\x75\xa4\x17\x29\xa9\x2b\x84\x8e\xf3\xec\xd6\x76\xa0\x35\x6a\x95\x9f\xd4\x43\xc8\xca\xed\x55\xf5\x66\xaf\xc3\x0a\xd7\x2e\x6c\xef\x23\x88\x16\x73\xa7\xd0\x27\x88\x4b\x48\x4a\x67\xfd\x5d\x11\x01\x5d\x99\xb2\x5c\x86\x8b\xa8\x0f\x83\x31\x8f\x5e\x6f\xca\xad\xba\xf2\xa9\xdd\x25\x79\xa0\x55\xe6\x52\xf3\xf3\x1c\x12\xde\x7c\x1b\x97\x57\x25\x02\x24\x8d\xb9\x08\x67\x87\xfa\x88\xc2\xc0\xe1\x12\xe0\x5a\xb2\xbf\x25\x5e\xb3\x4b\x43\x46\x58\xa3\xc3\x15\x1e\x5b\xf7\x51\xe2\xeb\xe5\xfe\xbb\x2f\x89\xf1\xb7\xf5\x2b\xce\xbd\x0c\xce\x72\x4b\x05\x93\x9f\x46\x02\xbf\x46\x60\x0d\x67\xa2\x2f\xb7\x12\x15\x21\x56\xdd\x49\x49\x21\x54\x27\x17\x01\xcf\x09\x95\x7c\xd3\x19\x8b\x2d\x1a\x29\x62\x06\x74\x08\x76\x4f\x0d\xfd\xc8\x80\x0e\x13\xb5\x0b\x2d\xf7\x10\x86\x7b\xd3\xf5\xd6\xc1\xca\xfb\xd7\x9a\x87\xa7\x02\x2b\x47\xde\x6a\xe2\xda\x3e\x0a\xa5\x20\x6c\xfb\x74\x93\xf2\xbc\xed\xfd\x28\x9d\x49\xf1\x62\x5b\x5d\x60\x6f\x0b\x4e\x1a\x39\x9d\xbf\x9e\x9d\xe8\x72\xbb\x62\x2d\xa3\x7b\xf1\xe2\xf4\xe8\xae\x6d\xb8\x6b\x40\xe8\x7a\x2b\x8d\x82\xad\x2a\x75\x4d\xe8\x9e\xf2\xf5\x3e\x33\xee\x87\x02\x76\x55\x56\x1b\x5e\xeb\xde\xfd\x2b\xe5\x0f\xa4\x0c\x7b\x10\x65\xf4\x74\x50\xd6\x2a\x67\x72\x32\xac\xd7\x4a\xea\x27\xc0\x27\xd1\xb9\x9c\x6e\xfb\x97\xef\x0b\x9a\x5f\xc9\x73\x66\x36\x23\xe3\xb7\x4a\x90\x7d\x9b\xa5\x57\x85\x8a\xcd\xfe\x46\xce\xc2\xb7\x1a\x56\x02\xc6\x7b\xf5\x57\x76\xba\xcb\x77\x09\x51\xf7\x18\x50\x08\x3e\xca\xc2\xe0\xee\x6a\x7e\x9d\x92\x34\xf3\xab\x99\xf7\x09\x89\x24\x4a\x89\xdc\xde\x2f\x21\x88\x7b\x51\x10\x5e\xb3\x57\x06\x9d\x67\x89\x33\x30\xd5\xd0\x05\x0c\xe3\x2b\x5f\x41\x55\xc3\xc8\xca\x17\x00\xd2\x30\xa2\xca\xbe\x43\xb6\x65\x38\x48\xf5\xc6\x60\x62\x18\x43\x5b\x0e\x70\x35\xdc\x9e\x7d\xab\xfb\xa3\xa2\x77\x4d\xe1\xbd\xd7\xe9\xa9\xbe\xf2\x97\xaf\x1b\xe4\xba\x86\x8f\x57\xf0\xb1\x41\xde\x2b\xad\x7c\x6a\x19\x3b\x73\x76\x0d\xec\x93\xf3\x32\x2c\x37\xea\x83\x70\xb1\xce\xf8\x2a\xba\xb6\xed\x8d\xcb\x36\x9d\xea\x6e\xa9\xf9\x52\x38\x82\xbe\x5d\x1c\x92\x25\x41\xf8\xc8\xa7\x19\x1c\xf2\x64\xa5\x6d\x67\xf0\xea\xfd\xcf\x71\x07\x3c\x59\x3a\xb4\xe8\x4c\x69\x21\xa9\xd1\x69\x29\x5a\xb5\x1f\xda\x09\x8c\xbf\x7b\xbc\x3d\x66\xd3\x20\xf6\x7e\xd3\x9c\x70\x11\x38\x6f\xa7\x16\x5c\xf8\xd2\x96\x83\x2d\x8e\xd4\x1c\x72\xcb\x37\xd2\xa4\x0e\x51\xb9\x6c\x30\xbc\x13\xe5\x33\x74\x4b\x95\x03\xaf\x09\x5c\x47\xb9\xfe\xea\x9c\xb8\xee\xf3\xb1\xb2\xb4\x7a\x9f\x0b\x9a\x79\x67\x47\x52\x2f\xb0\x3f\x5e\xf5\xb5\xfa\xad\xb6\x5d\x26\xad\xcc\x8a\x3e\x14\xf5\x96\xb1\xd1\xac\x45\x1b\x48\xfa\xad\x88\xc6\xd7\x2a\x86\xfc\xfe\x2e\xe6\x26\xc4\x82\xda\xb4\xd2\x84\x2d\x0f\x8e\xd0\x32\x1e\xdf\x4e\x48\xa2\xf9\x35\xfb\x48\x5a\x09\xf9\xcb\xee\xd1\x9b\x83\xbd\x93\x8a\xee\x4a\x24\x40\x3f\xfb\x49\xe8\xb0\x40\x4b\x29\xcb\x4d\x2c\x04\x53\x40\x37\x98\x2f\xeb\xb3\xe5\x8a\xbe\x5d\x97\x0d\x77\xd0\xb2\xbb\x0a\x1d\x7e\xb4\x51\x82\xa0\x85\x70\x06\x8d\xa8\xd4\xd4\xd8\xec\x2f\xeb\x87\x62\xe1\x96\x45\x70\xfe\xbf\xbd\x06\x1f\xb2\xfc\xd6\x5b\x62\xcb\xa7\x80\x9e\x23\xd5\x15\xb8\x1c\x9d\xe6\x6a\xaa\x22\x64\x96\x12\x5d\xc5\xd7\x37\x0c\xff\x9a\x5c\xfe\x57\xa6\x6f\x3d\xc2\x44\x42\xa2\x77\xbb\x27\x67\xfb\xbb\x07\x4e\xb5\xec\xf4\x57\xfb\xa7\xe7\xbf\xee\x9f\xee\xbf\x3a\xd8\x4b\xc8\xea\xd4\x2c\x09\x89\xde\xbe\x3f\x82\x74\xc3\xe7\xef\x4e\x8e\xcf\x8e\xcf\x7e\x7b\xb7\x77\xbe\xf7\xef\xb3\xbd\xa3\xd3\xfd\xe3\x23\xf9\x7d\xf7\xdd\xbb\xf3\xd7\x67\x27\x07\xa0\xdf\xda\x3b\x91\xc5\xde\xc1\xfb\x83\xfd\xdd\xd3\xf3\xc3\xbd\xb3\x5f\x8e\xdf\x24\xa4\xc5\x54\x2f\x21\x91\x43\xe9\x70\xf7\x68\xf7\xe7\xbd\x93\xf3\xd3\xb3\x93\xfd\xa3\x9f\xcf\x0f\x8e\x8f\xff\xf1\xfe\x5d\x42\x22\x0d\xd4\x62\x73\xb8\x77\xf2\xb3\xc4\xfa\xe0\xf8\xe7\x9f\xa1\x9b\xaa\x6f\x80\xd1\x1b\x87\xa2\x2c\xea\xa5\x4a\x4e\x6c\x10\x4a\xff\xe5\x66\x6f\x63\x79\x7d\xf8\xa8\x5b\x81\x67\xd5\x32\x3c\x56\x91\x82\x57\xf7\xf5\x04\x0a\xb5\xd0\x00\xde\x57\x48\xa5\xde\xb4\x12\x15\x3e\xad\x1e\x0f\x85\xea\xca\x21\xf5\xba\xdd\x3a\x25\xe0\xbb\x9d\x3d\xf0\xab\x31\xbd\x36\x6b\xfc\x9a\x75\x2d\x5c\x26\xcc\xea\x02\x72\x8f\x51\x8f\xdb\x2a\x78\xe3\x3a\x86\xca\xbe\xfe\xe4\x81\x6a\x09\xdf\x66\x77\x9c\x5e\x6d\x4f\xd3\xd9\x67\xa4\x6e\x5c\x1d\x03\xe7\x21\xee\x95\x0d\x6b\x64\x9f\x67\xfa\x24\x48\x5e\x50\x96\x6f\xdb\xb4\xcc\x0f\xb2\x74\xbe\xd7\x75\xb3\x6e\x64\xfc\x2d\x1d\x9f\xf7\x80\x18\xef\xf4\x18\xaf\xef\xff\xec\xd7\xbb\x4f\x7e\xfe\xac\x36\x8a\x66\x1b\xad\x47\xca\x34\xa1\x91\xb5\xe7\x31\xea\x37\x1a\x99\x7b\xfa\x77\x9c\x7d\xba\x05\x55\x13\x5e\xac\x67\xcb\x5c\xb3\x50\x29\xf1\x39\xf5\xac\xec\x4e\xd2\x5c\xa5\x24\x2e\xe6\xbc\xea\x48\x69\x00\xd7\x4a\x1b\xcb\xe8\xa6\xb5\x5e\x6b\xf1\x64\xb3\xb7\xda\xc0\x17\x6a\xb5\x35\x8f\x7d\xd3\xdf\x51\x9b\x9d\x6f\xdd\xf6\xa6\x62\xec\xe8\xf9\x61\x2a\x73\x1c\xdf\x71\xb3\x5a\x53\x79\x50\x61\x0f\xf3\x56\x6f\xcf\xea\xf7\x12\xd3\xa6\xfb\xe9\x92\x7a\x6d\xe5\x4a\xdc\xa0\xa0\x31\x30\xad\xbc\x0f\x03\x9f\xa2\x01\x36\x29\xc9\x84\x87\x8f\xee\x81\x81\xd9\xe2\x15\x4b\x96\x03\x6f\x96\x0e\x70\xa8\x22\xd8\x2d\xfc\x4e\x4b\x9c\xe5\xec\xa9\x41\x00\x61\xd7\x66\xe1\x51\xae\x94\x99\xe7\x4a\xe9\x51\x02\x43\xa6\xbc\x66\x46\x00\x2f\x29\x1d\xa4\xf1\x21\x48\x28\x8b\x0b\x6e\xed\xa5\x44\x19\xe6\x48\x87\x0e\xb7\x7a\x1c\xac\x52\xd8\xd9\xa4\x71\xc5\xd6\x16\xe2\x49\x3e\xa0\x83\x62\x38\xc4\x0c\x4c\xbb\x55\x9c\x1a\xcc\x31\x8f\x2e\x20\x6e\x36\xe6\x51\x7a\x29\x08\x47\x1b\x2c\x12\x6c\x56\x30\x2e\x42\xe5\x69\x66\x6f\x56\xaf\x1d\x6a\x0b\x6b\xb7\x14\x93\xd2\xc8\xbc\xae\x87\x04\x07\xc6\xae\x2f\x40\x77\x77\x2e\xe5\x93\x99\xa6\xc2\x8b\xf8\xed\x87\xb6\xb1\x44\xa8\x85\x6a\x57\xde\x58\x72\x29\xc3\x35\x0a\xd8\x73\x34\xdf\x69\xeb\xbd\x01\x19\x1a\x9d\xc0\xa2\xdc\xe0\xf2\x43\x35\x29\xa7\x29\x64\x8c\x1c\x9d\xdd\x1a\x47\xa5\xfe\x38\x10\x40\x21\x50\x1b\x4f\x6b\x91\x7b\xbd\x39\x11\xb7\xa4\xfb\x6c\x5b\x01\xcb\x0a\xda\x02\xf1\x55\x7d\x46\xfb\x3f\x83\x56\xa0\xaa\x4e\xdb\x44\xb5\xaf\x3b\x55\x20\xd5\x05\x5e\x89\x23\xcf\xec\x5e\x1a\x2e\xcc\x61\x1a\x5f\xc3\xec\xde\xf0\x77\xeb\x24\x93\xff\x7b\x99\x9f\xc3\xa6\xe1\x1a\x26\x2d\x5e\x8c\x55\xdb\x3e\xed\x68\x65\xa2\xbf\x04\x23\xef\x76\x51\x72\xfb\x19\x11\x2c\x37\xae\x93\xf5\xc2\x2a\x02\x79\xb3\x9c\x43\xc9\xf1\x28\xc6\x86\xcf\x8b\x74\xda\xe2\x9c\xe9\x19\x8f\x29\xe0\x01\x84\x39\x37\x24\x09\xf0\x92\xac\x1c\x55\xd3\x3e\xad\x0c\xfa\xcc\xda\x6c\x0e\x57\x03\xe7\x82\xcd\x0e\xc8\x35\xc9\x7e\xa5\xe4\xc6\x5c\xe3\x05\xd8\x06\xac\x8a\xb7\xd9\x5c\x64\x44\xd4\xeb\x43\x68\x4c\xf3\x6d\x0d\xcb\x42\xaf\x6a\x85\xa3\x33\x89\x0f\xab\xa6\x72\x2b\x2a\x3c\xa4\x25\x67\x91\x77\xe1\x6c\xfd\x02\xcc\x56\x9b\x0a\x2e\xa3\xd4\xd7\x80\xd1\x6e\x19\xd8\xee\xaf\x6b\xd9\xc5\x71\xa4\x6d\xa1\x57\xdb\x1f\xba\x0a\xc1\x1a\xcd\x98\x55\xb7\x7d\xc9\xf8\x36\x30\xc3\x57\x34\xbf\x32\x2b\xca\x18\x58\xf3\xfb\xe6\xaf\xe5\xb1\x15\x8c\xed\x74\x9c\xce\x3c\x8b\x53\x8f\x51\x5e\xd5\x60\x0d\x28\xe4\xd7\xab\x41\xb2\x0d\x81\xb6\x7a\x57\x7d\xf4\xdf\xb7\x21\xd0\x5c\xa6\xcb\x71\x9d\x44\xaf\xdb\x9a\xa8\x83\xd0\x1b\xc7\xb6\xd2\xb2\xea\xba\x97\xce\xfa\xe0\x00\xde\xa3\x32\x14\xbe\xb1\xa7\xe2\x3a\x9d\x9d\x27\x18\x9e\x63\xbb\xf3\xc1\xb5\xe3\x89\xff\xcb\xda\x80\x4e\x97\xdb\x80\x36\x64\x8e\x07\xde\xa7\xd7\x44\xa0\xe5\xc1\x62\x57\x3b\x3f\xd6\x04\xb6\xa5\xc2\xde\x9f\x1d\x55\x46\x44\xf5\x8c\x0b\x2d\xfc\xbb\x70\xa3\xee\x73\xf5\x92\xe9\x5d\xd3\x57\x11\x6c\xd5\x6d\xce\x2d\x60\x02\x37\x7c\x27\xb0\xb4\x20\x1b\x04\x22\xbe\x88\x7a\x54\x0b\x5b\x20\x21\xb5\xb8\x11\x1e\xdf\x2c\x8f\x4b\xea\x1d\x97\x97\x69\x96\x5d\xa4\xa3\x8f\x31\xa9\x94\x2b\xad\x7f\x99\xef\x41\x26\x5c\x7e\x83\x70\x01\x17\x01\xe0\x8d\x51\xd6\x7d\x26\xfa\xda\xf3\xa9\x2d\x5e\x8d\x76\xa9\xb1\x91\x45\x2a\x6e\x36\x10\x7e\x1d\xdc\x8c\xf4\xab\x50\x24\x2f\x45\x58\xf3\x86\x22\x08\x21\xd4\xf4\xd2\x59\x2b\x52\x8e\x62\x60\x33\x66\x84\xb6\x37\x64\x26\x4f\xbe\x7c\x44\x89\x15\x78\x1a\xd1\x73\x2c\x65\xef\x09\x51\x53\xf3\x1c\x59\x12\x75\xe6\x81\xd1\x3c\x3e\x33\x48\xcd\x3c\xf7\xc2\x1a\x2f\x5a\x9a\x54\xae\x52\x64\x55\x22\x4b\xc5\x73\x41\x90\x74\xb5\xe5\x38\x79\x4f\xc7\x9e\xf0\x5c\x35\x6c\x44\x16\x28\x19\x07\x5b\x44\x05\xee\xf4\x13\x7e\x58\x46\x26\xfc\xf0\x1b\x9b\x77\x52\x21\x19\x03\x41\xc6\x1d\xc1\x3a\x53\x36\xcf\x05\x04\xe9\x54\x10\x3a\x7f\x7d\xb4\x20\xe5\x5f\x71\xe7\x62\x2e\x3a\x54\x74\x68\xd1\xc9\x99\xe8\xb8\x2c\xa8\x2a\xb1\x07\x15\x45\x47\x6d\x09\xd1\x07\x93\x86\x82\xd7\xfc\x46\x44\x25\xb4\x63\x4d\x6c\x47\x21\xd5\x4e\x67\xb4\xc4\x4b\x67\x86\xf3\xec\x4f\xeb\xba\x05\xbd\x4c\x5f\x0c\xaa\x8e\x17\xcd\x93\xd4\x99\x70\x0b\x15\x59\xc5\x1d\x05\xc2\x1d\x92\x7a\x5c\x53\x2d\x4b\x20\xb3\x96\x57\x5e\x0b\x6e\x54\xc1\xb5\x46\xfa\x68\x1e\xbe\xfa\xce\x63\x50\x75\xec\xa0\xf7\xf8\x3e\xb4\x7b\xa9\x78\xd7\x89\xc1\x56\x28\xea\x97\x8f\xea\xca\x51\x5d\x34\x22\xdc\x12\x46\x64\xb8\x21\xea\xa1\x18\x74\x4e\xa6\xa5\x31\x7e\xf8\x6a\x7a\x6a\x72\x89\x96\x90\x26\x7a\xd2\x2b\x26\xc1\xb1\xcd\xd5\xab\xc6\xb6\xdb\xd7\x4a\x35\xcb\x87\xdd\x5b\x6f\x9d\x58\x2e\x68\x21\x20\xeb\x68\x0b\x3b\x7f\x3f\x5e\xed\xfc\xe1\x1a\xfd\xa9\x8d\x53\x6b\xfb\x9e\x6c\x50\xbd\x43\x6e\x70\x6f\x56\x0e\x5a\x51\x07\x72\x8f\xae\xd9\x88\x99\x2f\x0f\x6b\x46\xd7\x42\xc8\xf8\xbe\x64\x95\x28\x18\x59\x2b\xdf\xd3\xa2\x4e\x5e\x27\x04\xc6\x57\x37\x12\xa8\x6d\x2e\xad\xd6\x9b\x03\x3e\x34\x89\x08\xdb\x8b\x4a\x44\x64\xa9\x44\x94\x1b\x9e\x85\x81\x35\x72\xdb\x3b\xfa\x79\xff\x68\xef\xfc\xdd\xee\xc9\xde\xd1\x59\x50\x33\x70\x05\xce\xed\x9b\x5f\x33\xb5\x5e\xbd\x41\x98\x26\x6f\xa8\x6a\x36\x9f\xb5\x7c\x13\x0f\xf7\x4d\xf9\xea\xa3\xe5\x30\x82\x14\x84\xe7\xee\x37\xe4\x75\x4b\x26\x72\x98\xe6\x17\xc5\x88\xd3\x0b\x52\x1b\x20\x9b\x3f\x1c\x33\x17\xf1\x3b\x0a\x10\x4e\x93\xc1\x50\x2b\xc2\x98\xaf\x08\x0b\xfe\x16\x24\x49\x12\xd2\x84\x0d\x8a\x21\xda\x49\xf5\xf6\x38\xf8\xdf\xdf\x7f\x8f\x86\x7f\x0b\x50\xac\xdf\x50\x33\xeb\x53\x1d\x87\xfb\xf7\xdf\xa3\x00\x6d\x64\x5b\x49\x10\xfe\xfe\x7b\x14\xfd\x0d\xed\x04\xda\xbe\x68\x31\x93\x67\x30\xcf\x63\x82\x39\xb9\x22\x9f\x62\x2f\x16\xed\x87\xff\x7d\xb4\xc8\xca\x47\x1f\x10\x56\xe9\xae\x62\x51\x3a\xff\x4b\x68\x68\x8e\x70\x9e\x2c\x4a\x3c\x97\xb3\x71\x9e\xb7\x75\xd4\x75\x53\x24\x3d\xac\x52\xa5\x73\x3f\x55\x3a\x1f\xd0\x61\x92\x24\xe0\x77\x9a\x50\xb4\xc1\x81\x12\xf2\xd0\xc6\x7d\x05\xbe\x54\x67\x23\xa9\x1a\xc7\x6a\x18\x49\xcf\x96\x69\x24\xe3\x48\x3c\xda\xf3\xa2\x9a\xfe\x67\x30\xdc\xa8\x7e\x35\xf7\xfb\x0b\xb5\x62\xf4\x2d\x87\xa4\x76\x5b\x80\x23\xe3\x03\xa6\xdd\xb6\x66\x84\x43\xe6\xd6\x7c\x44\xc0\xcd\x2a\x64\x09\x8d\x72\x76\x73\x77\x47\xa3\x29\xfb\xef\x91\x7a\x52\x49\xed\xf4\x8f\x69\xa1\x1f\xd8\x11\xbb\x41\x3b\x2a\x4a\x42\x48\x51\xfc\x26\x15\x44\xd6\xf5\xb4\x97\xd9\xca\xbc\x5d\xa4\x92\xae\x10\x0b\x95\x58\x03\xee\x96\x65\x17\x20\x06\x70\xcd\xc2\xea\xa7\xe4\x69\xb7\x9b\x85\x02\xed\x84\x69\x22\x70\x91\xe4\x28\x0e\x59\x22\x70\x9a\xe4\xb8\x48\x28\x82\xe8\x07\x36\x60\xaf\xb5\xb6\x83\x34\x95\x85\x09\xcd\xcb\xa0\xaf\x97\xc9\x24\x24\x90\xd4\x64\xee\x7c\x61\x93\x24\x19\xef\xd8\xf2\xf1\x28\x4c\xf1\x25\x9e\xe3\xa2\x9a\x2d\xd1\x98\xf5\x0a\x7e\xeb\x82\x83\x40\x9d\xdc\xb8\xfa\x53\xe3\x76\xcd\x23\xf2\x69\x44\x40\x99\x96\x50\x4c\xcb\x4b\x9a\xa7\x59\x76\xbb\x10\x21\x2a\x1d\xd0\x71\x88\x16\xee\x97\x44\x8c\x62\x06\xfa\xd8\xb6\x0e\x8d\x4d\xae\x4a\x9d\x4e\x2d\xbd\xbb\x0b\xd3\xf6\xc9\x8b\xa9\x5c\x94\x2c\xe9\xbd\x60\x6e\xfe\xb2\xad\x2d\x14\x8a\x84\x0f\xd8\x10\x45\xb0\x7e\x54\xac\x65\x82\xba\x5d\xaa\x3d\x0c\x75\xae\x38\x4b\x1a\x70\x45\x94\x1d\x90\x62\x0c\x90\x39\x6d\xc5\x2a\xc3\xf3\x84\x86\x0c\xe1\x91\xf6\xe7\x3b\x3d\x3b\x79\xff\xfa\xec\xfd\xc9\x1e\xdc\x2d\xbf\xdd\x3f\xd8\xdb\x18\x41\xf6\x07\x15\x47\xb9\xf3\x68\x31\xd7\x6d\x95\x1f\xb0\x94\x16\x58\x46\x22\x29\xa2\x87\x19\x42\x56\x1b\x3f\x91\xdd\xb8\x4c\xa4\xac\x33\x4b\x7a\x2f\x66\x3f\x99\xd6\x5f\xcc\x4c\xe8\xe8\x69\x92\x0e\x66\xc3\x8d\x89\xea\xc0\x54\x2b\xd9\x43\x22\x47\x10\x22\x9c\x57\xd5\xdd\xfe\x0a\x97\x60\x79\xd2\x7b\xc1\x1d\x58\x6e\xc0\xe6\x49\x3a\xe0\xc3\x8d\x96\x09\x9c\x2b\xf5\x7d\xb7\xab\x1f\x60\x62\xcc\xf1\x64\xc0\x87\xa8\x1c\x75\xbb\x7e\x67\xf6\xf2\x71\x98\xa1\xb2\x6c\x5b\xee\x69\xeb\x26\x90\x26\x75\xdf\x43\xb3\x89\x35\xac\xd3\xa6\x6c\x4c\x2f\xe9\xba\x1e\x05\x7f\xb6\x13\x4b\x41\xc4\xa1\x46\xf0\x30\xcd\xd3\xab\x87\xc5\x6d\xae\x55\xbd\xcf\x1c\x37\xbd\xa0\x99\xa0\x64\xdd\x70\xcb\x22\x32\xb4\x7b\xad\xea\x42\x5a\xec\x86\xef\x8c\x9a\x9f\xe0\x31\x92\xde\xcb\x60\x2d\x4b\xec\x62\x8c\x34\x21\xe9\x43\x2a\x9a\x19\xe3\xbe\x96\xaf\x80\x92\xff\xc4\x3f\x08\x78\xa1\xa4\x22\x61\x5a\xbe\xac\x4f\xa8\xeb\x94\x2f\x24\x5d\x68\x99\xf0\x46\x62\x5a\xda\xed\x86\x10\x65\xd2\x3f\xbe\x40\x9a\xc4\x5c\xf9\x1e\x88\xf4\xca\x6a\x7b\xb0\xd0\xd1\x46\xf3\x48\xf0\x74\xf4\x11\xa9\x90\x08\x24\xa1\x6a\x63\xd4\xd7\x82\x4e\x9e\xcd\xa3\xf9\x6c\x9c\x0a\x72\x96\x5e\xa1\x90\x63\x06\x2a\xa4\x1c\xd4\x05\xf3\xa9\x7a\xcb\x20\xd6\x01\xe6\x65\xc5\xd3\x50\x51\x09\xe2\xc4\xf4\x40\x0e\xd0\x41\xbb\x4c\x82\x0a\x89\xd1\x00\x4a\x0d\x11\x5a\xe4\x09\xd1\xe6\x4a\xad\x19\x8c\xa9\x84\x81\x73\x54\xfa\x46\xa4\x05\x11\x20\xec\xd0\xd1\x1b\x32\x62\x3c\x05\x90\x0c\x61\x56\x7a\xb5\x24\x16\xe5\xaa\xe2\x4b\x67\xd0\x5c\x90\x76\xff\x74\x5d\x46\x79\xac\xa8\x72\xf6\xe1\x7c\x9a\x8e\x38\xbb\xa7\x30\x27\xe3\xf9\x88\x9c\xd7\xeb\x7c\x75\x37\xe6\xa5\x15\xc8\x74\x26\x6e\xd7\x5e\x7a\x50\x7a\xe5\x82\xce\x99\xd8\x7b\x10\x48\x53\xe1\x1e\xa8\xf9\xba\x86\xfa\x12\x62\x4e\xee\xc3\xf1\x21\xe8\xad\x84\x75\xc1\x58\xb6\x36\x30\x59\x78\x25\x34\x48\x8f\xbc\xfe\x46\x28\x4b\xaf\x84\x47\xfe\x33\x4f\xd7\x47\x0f\x4a\xaf\x84\x77\xf5\x00\xb3\x98\xd5\x74\xbb\x12\xeb\x0f\xe8\x95\x58\x3d\x9e\x6b\x47\xbf\x17\x51\xb6\x1a\xab\xec\x01\x58\x65\xf7\x60\xc5\x72\xf2\xaf\x74\xfd\x75\xa0\x8a\xdf\xe3\x23\xa3\xc2\x78\xaf\x0d\xd3\x54\xb8\x27\x81\x80\x36\x14\xcd\xaf\x76\x33\x9a\xae\x7f\x0e\xd7\x2b\xae\x6c\x25\xcd\xd7\x4d\x7b\x20\xa2\x34\x5f\x9d\xf2\x80\xad\xcf\x8e\xb0\x7b\xd2\x52\xcc\xa7\x6b\x27\x63\x28\xe6\xd3\xd5\x6b\x17\x22\xe8\xac\x07\x6b\x4a\xf3\x7b\xf6\x81\x4f\xeb\xc3\x4a\x3f\xdd\x03\x6b\xf6\x00\x58\xb3\xd5\xf4\x02\x03\xbf\x75\x09\xc6\xf8\xbd\xd6\x70\x6f\xe8\xe5\xe5\xfa\x00\x55\xf9\xfb\x7a\xfb\x6a\xdd\x05\x02\xfd\x7d\xb5\x7a\x75\x5c\xd2\x4c\xac\xcd\xfe\xf2\x48\x15\x5f\x03\xe2\x03\x90\x34\x15\x56\x42\x9d\xe7\xf4\x3f\x6b\x43\x94\x85\xef\x85\xf6\x00\x0c\x55\xf1\xfb\x20\xb2\xf5\xd7\x07\x94\x5e\xed\xe1\x28\x99\xf7\x82\x8c\xd6\x9f\x8e\xb6\x46\x59\xa2\xe5\x0c\xd4\x88\x65\xd9\x43\xa0\xea\xf2\xcb\xe4\x8f\xe5\xe2\x5d\xed\x12\x7b\x9d\xac\x2a\xdf\x44\xf8\x50\x01\xfe\x74\x04\x0e\x0a\x17\xa3\xff\x22\xe9\xc7\xc3\x74\x56\xe5\xe1\x85\xe6\xe1\xbd\x78\xd6\xde\x45\x61\x6b\x8c\xa2\x4a\x89\x68\xc6\x99\x60\xdd\x6e\xcb\xcb\x10\xe1\x4d\x8d\x39\xfc\x96\xd5\xa3\x49\x5a\x1c\xdf\xe4\xa6\x0f\x4a\x24\x91\xe7\x08\xb4\x51\x04\xc8\x44\x3d\x32\x3d\x00\x97\x46\xf5\x94\xb0\x9d\x7a\x1e\x51\x86\xe2\x45\x59\x5a\xcd\x8f\x2e\x38\x10\xc3\x24\xc7\xda\x43\x5a\x5d\xbb\x51\x29\x3f\x99\xdb\x70\xe8\xaa\x56\x19\xaa\x3b\xe3\xc3\x74\x86\xc1\xa7\x55\x89\x50\xc4\xbb\x33\x93\xf5\x5c\xf8\x6d\x5b\x17\xa2\x8f\x27\xb9\x52\xba\x09\x9d\x5f\x44\x02\xc8\xb1\x40\x2a\x96\xa4\xa5\x73\xea\x89\x79\x1d\xba\xa1\x25\xa6\x7c\xa9\xc4\x24\x30\x97\x12\x13\xd5\x12\x53\xda\x2e\x31\xa9\xd1\xa3\xbe\xc4\x94\xb7\x8b\x40\x29\xc2\x69\x59\xad\x95\xf0\x08\xa6\x0b\x48\x4e\x4b\xab\xb5\xce\xfd\xd5\x52\xd1\x67\x48\xe4\xab\xd5\x1f\x96\x8a\x5c\x4a\x9c\x36\xa8\x41\x14\x45\xc4\x84\xfa\xcb\x7d\x02\x71\xa3\x2c\x1a\x0c\x5d\x5d\x1a\x12\xb4\xc8\x95\x3e\x8a\xa0\xd2\xe8\x9b\x5a\xb4\x71\x0b\x45\x71\x3e\x60\xc3\x17\xc6\x91\x31\xcd\xc7\x7a\xc2\x52\x52\xa0\x30\x95\x44\x37\xca\x38\x49\x3f\x3f\xcf\x9b\xef\xa3\x1f\x45\x51\x5e\x09\xde\x69\xda\x25\x49\x6e\x3d\x55\xb5\x4a\x9b\x80\x2e\x7b\xe1\xa5\xa6\x76\xc9\x44\xf2\x01\x1d\xea\xab\xf0\x90\x21\xa3\xe5\x33\x42\x70\xa3\x30\x19\x42\x10\xcf\xf2\x33\x76\x0d\x10\x04\x5b\x6e\x8c\x6a\x1d\x23\x5b\x81\xc6\x3f\xc0\xcd\xac\x35\x46\x1b\x20\x61\x41\x92\x43\x1f\x3d\x82\x54\x84\x51\x62\x25\xc4\x2f\x6d\x6e\x73\xed\xf6\x72\xb2\x46\x5b\xcb\x3b\x74\xc4\x72\xb2\xba\x3f\x9f\x07\x7e\xb3\x01\x52\x43\x94\x72\xe5\xe7\x81\xec\x18\xff\xbc\xa5\xd8\x82\x90\x59\x5b\x37\x6b\x80\xb7\x19\x0a\xab\x50\xdd\xb5\x0e\xa8\xaf\x73\xd3\x0a\x88\x9e\x0f\x6f\xa5\x75\x62\x13\x94\x24\x09\xd7\x80\xaf\xc4\x57\x83\xfa\xd2\xc1\x24\x5f\x0f\xa8\xc5\x34\xfb\x7a\x98\xfe\xe4\x60\x7e\x3d\x4c\x7f\xb2\x98\x2a\x51\x75\xd9\x84\x4b\xa5\x2c\x88\x42\x82\x74\xb9\x50\x45\x3c\xd4\xa2\xe8\xfd\xb5\x5c\xb2\x2a\x15\x69\xa6\x2a\x64\xae\x33\xcd\xe1\x40\xe7\x4b\x3b\xa2\x82\x9f\x00\xf3\x54\x55\x21\x9a\x12\x38\x47\x58\x72\x9f\xd0\x57\x2e\x39\x8c\xbc\x16\xf7\x90\xcb\xcd\x3c\x79\x49\xd0\x86\xfa\x68\xc2\xaf\xe9\xf7\x9b\xf0\x81\xf1\x7a\x90\x9b\x07\x68\x00\xd7\x60\x19\x1f\x14\xfe\xe6\x7e\xde\xd1\x3f\x03\x15\xb7\xe7\x85\x05\xaa\xee\xb1\x83\x61\xd0\x58\xec\x8d\xcc\x56\x6e\xb1\xe7\xf3\x2c\x4b\x92\x84\xde\xdd\x05\x8a\x02\xee\x76\x93\xee\xe4\x31\x8d\x14\x0d\x42\x81\x95\x69\x61\x2d\x67\x59\x59\xe3\x43\xcd\x95\xa3\x06\xff\xf8\x7f\x48\x3a\x9a\x3c\x36\xf7\x61\x3b\x2c\xa9\x64\xdc\x85\xaf\xd1\xdf\x1e\x3d\xc6\x41\x00\x57\x8f\x04\x93\xad\x04\xfa\x00\x0a\xec\x4a\xdf\x70\x14\x45\xa2\xd1\x35\x52\xef\x1a\xab\x68\xc5\x69\xb1\xcb\x79\x0a\x41\x50\x77\xe0\xc5\x2e\x0a\x3d\x1d\xba\xdc\x4b\x63\xf3\x7e\x69\xd7\x52\x17\x49\x94\x26\x72\xd7\x9d\x41\xf4\x4d\x45\xec\x4a\x7a\xd8\x0a\xdb\x40\xdb\x57\x2e\xb4\x25\xaa\x38\x2c\x6b\xb9\xa8\x5d\x56\x59\xce\xb5\x9d\xa9\x97\xfc\x2c\x4f\x04\x16\xc9\x60\x88\xb0\x1a\x91\xb0\xcd\x74\x04\xfa\xc0\xed\x80\x96\xfe\x1d\xf3\xb7\x69\x50\x09\xca\xad\x6d\xce\x15\x1f\x68\x23\x82\x54\xb6\x3c\x3f\x37\xaf\x1a\x25\x4c\x4d\xb6\x0b\x97\x4e\xc7\x0b\x8a\xea\xb8\xaf\xea\x84\x7f\x51\x9d\x0f\x0c\x75\xbb\xac\x52\x8f\x4a\xb1\x26\x24\xe8\xee\x2e\xa4\x3a\x79\x04\x16\x86\xdb\x44\x52\x86\xc4\x42\xe2\xfd\x19\x1c\x59\x31\x9f\xb6\x59\xf0\xc8\xc5\xac\xbd\xbe\xc8\x96\xc0\x3d\xa5\xf3\xd2\x27\xfb\xa7\x7b\x6a\x1c\xa6\x62\x22\x8b\xc1\x4f\xbc\xdd\x7f\xdc\x53\xaa\x29\x55\x9d\xe6\x6b\x55\xa7\x8a\x59\xc7\xaa\x36\xd8\xa8\x41\xe3\xb3\xa4\x50\x7f\x5f\xdd\xb6\xcb\x2d\x45\x08\xf7\xcd\x7a\x05\x3f\x5a\x88\xf2\x83\xdc\x5c\xbd\x1c\xc9\x58\xc7\xa6\x55\x03\x9f\x64\xf6\xb1\x06\x52\x6e\x66\x5a\xa4\x4a\x9e\x24\x49\x52\x37\x52\xd8\x69\x80\x8d\x1b\x6f\x92\x24\xc9\xcd\x64\xc8\x5a\x30\xa3\x48\x99\xa6\xd0\xff\x80\x7d\x8e\x52\x89\xb4\x76\xec\x8b\x37\xd4\xea\x2c\xa3\x7a\xd7\x51\x2d\x82\x8d\xe9\xf2\xfd\x06\x0c\x89\xb4\x1e\xc4\x21\xb7\xce\xda\xb0\x7b\x92\x5b\x2b\x6b\x20\x27\xd0\x8e\x88\x07\xc3\x52\xae\x28\x11\xcd\xd8\x2c\x44\x66\x99\x4a\x50\xd6\x73\x0f\x6e\xf2\x45\xe5\x26\xdf\xe5\xb9\xde\x94\xb2\x8f\x18\x70\x63\x15\x41\x7d\x39\x0c\xe2\x25\x33\x30\xec\x41\x8b\x3c\xd9\xec\x6d\x5c\x70\x92\x7e\x2c\xa5\x14\xd4\x97\x83\xa6\xc5\xa0\xcd\xbe\x16\x83\xe4\x7a\xd9\xa8\xee\x94\x54\x2e\x3c\x4f\xa5\x84\xb4\xcd\xdb\x1b\x7a\x79\xf9\x90\x21\x14\xeb\x0f\x25\x6e\x6c\x1f\x62\xf5\xf0\x7a\xbb\xca\x0e\xf5\x68\xb8\x2d\x3b\xc9\x22\x50\x34\x1d\x5f\x86\xfe\x61\x43\x57\xce\x03\xad\xb9\x5a\x6b\x16\x3c\x74\x12\x78\xea\x8f\x1d\x79\xfa\xc7\xa2\x41\x73\x01\x34\x37\xea\x36\x45\x71\xc6\x45\xf3\xc6\xdb\xe8\x9b\xf8\xdd\x1d\x50\xc0\x50\x42\xe5\xca\xb7\x27\xc3\xc6\x52\xab\x25\xbe\x33\xd6\xc0\xe2\x09\x30\xc1\x7a\xa1\xda\x4c\x05\x3a\xe0\xd5\x7c\xc3\x33\xee\xa9\x1e\x51\xab\x4e\x1d\x95\x77\x1c\x01\xf6\xa1\xde\xf9\xb8\x7f\xf4\xc2\x2e\xe5\x1f\x46\x93\xc6\x54\x4a\xe7\x82\xbd\x6e\xcd\xef\xda\x3a\x7d\xe0\xe6\x3e\xf8\x1f\xf9\x0c\xd9\x27\x71\xda\x6a\xbc\xe9\x0f\xd6\x40\x60\x3e\x74\xc6\x7f\xb1\xe5\x29\xe4\x07\x49\xdb\x20\x2d\x46\xc1\xb0\x44\x65\x48\x11\x2e\x12\x06\x99\x31\xe2\xf5\x56\x79\x81\x76\x7c\xf3\x22\xcb\x05\x15\x86\x38\x28\x5e\xb2\x8a\xa0\x58\x93\x86\x14\x79\x9b\x83\x5a\xf4\xa2\xae\x7c\x19\xa4\xb8\x18\x26\x62\xc0\x86\x38\x4b\xb4\x25\xc2\x74\x96\x72\x25\x7a\xdb\x9d\x3b\xd5\x5c\x1e\xfc\xa4\x38\x45\xa0\x20\x91\x13\x2a\xd3\x3b\x43\x30\x26\xc5\x48\xd2\xb1\xd8\xd9\xee\xff\x2d\x8b\x33\xa3\xb3\xe9\xc9\x51\x0b\x0b\x9c\x2e\x5f\x47\x66\x22\x8d\xaa\x8c\xbe\xd5\xe6\xae\x54\x00\x37\x53\xad\x35\xd5\xc1\x20\x2c\x4c\x09\xbf\x22\xcb\x3e\x2a\x2d\xe7\xb2\xaf\x37\x24\xfd\x78\x5e\x90\x25\x5e\x4c\xdf\xcc\xac\xc0\x20\xf5\xe0\xa4\xe4\xf7\x81\x7c\xa7\x7b\xb7\x36\x68\x55\x6d\x75\x5a\xf6\x7f\x91\xf4\xe3\x29\x59\x57\xe9\x4f\xab\xa1\x00\x61\x70\xfc\x9d\x04\xe2\x79\xee\x9d\xfc\xbc\xb7\xc3\x4d\xc9\xd8\x86\x72\x51\xa5\xd9\xb2\xe9\xe2\x0f\xe8\x7a\x06\xd1\x76\x57\x11\x55\x13\xd8\xfe\x0b\xf1\x53\x9d\xcf\x79\x21\x8c\xea\x90\x3b\x1e\x68\x20\xc0\x22\x91\x23\x77\xe0\x6a\x4a\x7d\x24\xb7\x45\xc8\x91\x56\x3c\xe6\xbe\x2d\xad\x49\x39\x30\xa0\xc3\x0d\x22\x8f\x5f\x3e\x60\x43\xa7\x60\xff\x1c\x06\x56\x75\x1b\x22\x87\x35\x2d\xb6\x17\xea\x6b\xcc\x4b\x8d\x1c\xce\xe5\xa6\x25\x3c\x0b\xee\x7c\x15\x4d\xf5\x0a\x5a\x2a\x54\x7f\xf3\x38\xca\x3a\xb5\x83\x16\x85\x45\x8b\x28\x2c\x8c\xbe\x96\x6c\xf8\x11\x11\xfc\xb1\x10\xad\x63\x01\x51\x0b\x86\x58\x59\xe1\x0f\xf8\xd0\x8a\x2c\xe5\x2a\x8a\xd8\x8d\xe1\x4f\x36\xbc\x6f\x39\xa0\xf5\xf2\xdb\xd1\x7f\x63\x88\x54\x50\x09\x01\x6d\xdc\xca\xa4\xd4\xe0\xdd\x50\x95\x4a\x84\xaa\x3a\xe0\x4d\x53\xf0\x5d\x0d\x09\xb6\x7e\x71\x36\xd1\x5e\xb3\xa4\xcb\xc1\xa7\x24\xb3\x66\x09\xf5\xbe\x2c\x97\x3b\x0b\xe8\xe4\xa1\xeb\x5f\xf6\xf9\x3e\x03\x9c\x33\xbe\x0d\x11\xcc\x96\x85\xd8\x31\xca\x9d\x8b\x74\xf4\xf1\x62\xce\xf3\x65\xd1\x72\xbe\x8a\x47\xc8\xeb\x39\xe7\x24\x17\x27\xf3\xfc\x80\xb1\x59\x4b\xb8\x37\xa6\xf3\x97\x80\x94\xf3\x07\xa3\x79\x32\xc6\x24\xba\x20\x57\xbe\x38\x88\x16\x99\x7a\xa5\x58\x4d\x92\x8f\xab\xdf\x20\x21\x11\xb0\x7c\x3a\xd3\x58\x4b\x43\x99\xfd\x58\xf7\x15\x84\xcb\xc1\x53\xfd\x71\x7c\x46\xa7\x84\x17\xad\x00\x26\x69\xa1\xbe\x6a\x8e\x37\xcd\x47\x24\x6b\x96\xcf\x2a\x5f\x54\xd9\x2c\x95\x12\x65\x1b\x50\xf8\xd2\x44\x89\xe5\x23\xb2\x84\x97\x06\x8f\x85\x09\xbd\x14\x2e\x9d\x1a\xc2\xae\x7b\xc7\xf9\x88\xa8\x0a\x3e\x45\x8e\x2b\xf0\x5a\xa8\x62\xaa\x55\xd1\xc8\xc9\xa7\x65\x2c\x3d\x51\x8a\x86\xbe\x6c\xdb\x76\x82\x78\x94\x69\x63\x22\x0d\x6d\x74\xe4\xf7\x31\xb9\x60\xf3\x65\x98\x99\x8f\x4d\xac\xc4\x84\x33\x21\x96\x0c\xb3\xf9\xd8\xac\x76\x41\xf3\x71\x42\x6c\xc2\xb6\x93\x79\x9e\x90\xc8\x2d\x83\x84\x44\xff\x99\x93\x39\x29\x20\x17\x77\x71\x3d\x03\xa7\x9e\x7f\xca\x57\xd5\xf3\x58\xee\xba\xfa\x86\xf4\xc3\xa3\x05\xa8\x25\x78\x9a\x8f\xd9\x34\x44\xe5\xa3\x85\x71\x83\x08\x51\xf9\xc1\x6a\x0e\x83\x28\xc0\x41\x80\x36\x9a\x90\x4d\xae\x8a\x81\xcb\x8d\xa7\xbd\x1a\x5d\x6a\xf8\xc2\x7a\x89\x05\x38\x00\x4b\xf3\x13\xf3\xcb\x64\x05\xc3\xe9\x70\xc3\xe2\x6f\x52\x56\x28\x9f\x69\xe3\xb9\x5a\xe0\x85\x7e\x84\x96\x63\xd7\x20\xcb\x5f\xc9\xd5\x15\xfb\x03\xc6\x12\x52\x62\x96\xef\xe5\xe3\x1a\xb3\xcd\x12\xa1\x2c\x75\x2f\xb3\x79\x31\xd9\x2d\x6e\xf3\xd1\xf1\x45\x41\xf8\x35\xe1\x85\xe4\x68\x65\x25\xd9\xbd\x33\x15\x55\x9c\x47\x95\xdf\xe6\xeb\x21\x11\x13\x36\x8e\x03\x96\x6b\x7f\x7b\x80\x56\x6b\xca\x74\x7a\x13\xee\xcc\xc9\x66\x92\xa4\x77\x77\x2b\xda\xc6\xe0\x53\xe1\xf9\x9f\xcc\xfd\x89\xc1\xe7\x79\x6d\x4e\x54\x46\x3f\x33\x72\x9b\xba\x5b\x87\x60\x31\xbe\x08\xe7\x41\x02\xe7\xa4\x3a\x28\x7f\x5a\x8d\x36\xf4\x6c\x33\xf7\xc5\xf2\xaf\x94\xe4\xc6\xf0\x22\x1a\xb1\x7c\x94\x8a\x50\x49\x72\xde\xd6\xaf\xbd\x4b\xbf\x56\x62\x80\x6f\x91\xbe\x68\xad\x68\xff\xba\x1f\xeb\x85\xfa\xcf\x97\x87\xfa\x47\x1b\x79\x2d\x0c\x50\xa1\x83\x7f\xbc\x4d\xe5\x49\x7e\x0b\x68\x19\x5b\x93\xe5\xe9\x00\x0a\xc8\xdd\xb0\x82\xac\xba\x80\xe4\x64\xd4\xa3\xf5\x4a\xff\xac\xec\x61\xdf\x30\x13\x40\xc6\x46\xc9\x0d\x26\xd1\x4d\xb2\x07\xe4\x1c\xa5\x53\x92\xd1\xff\x92\xe4\x93\xfc\x99\x16\x13\xc2\xe5\xaf\x63\xd8\x86\xf5\xa7\x53\xf9\x03\xec\x2c\x2e\x6f\x93\x33\x50\x57\x8c\x09\x2f\x46\x8c\x93\xe4\x10\x0a\xce\xa8\x48\xa1\xe8\xbb\x15\x72\xcd\x15\x11\x2a\x09\xc6\xfa\x46\x9d\xae\xca\x6a\x91\xa9\x78\x38\xe8\xc2\x07\xad\xa7\xc0\xe3\x41\xe7\x7c\xf8\xf8\x4a\x07\xe7\xca\x23\x88\x52\x13\xf6\xc9\x53\x4c\x92\x97\x9f\xd4\x75\xa0\xda\x90\x29\x0e\xb6\x03\x84\x70\x9a\x3c\x0e\xb7\xef\xce\xef\x7e\x8f\xee\x7e\x2f\xd0\x56\x18\xa1\x9d\xc7\x57\xb8\x48\x1e\x87\xff\x7b\xf7\xfb\x63\x14\x0e\x76\xb7\xff\xcf\x10\x3d\xbe\xc2\x59\x1b\x48\x77\x35\x94\x62\xbd\xc2\x92\x97\x7c\x87\x47\x82\xbd\x9f\xcd\x08\x7f\x9d\x16\x24\x44\x71\x10\xb8\x86\x0b\x55\x4f\xb0\x03\x76\x63\x0a\x20\x84\xe7\xc9\xe3\xff\x95\x88\x68\x14\xf0\x28\x79\x1c\x46\xa8\x05\xb5\xb1\x46\xed\xee\xf7\x08\x85\x83\x74\xfb\xbf\x80\xdd\xa4\x0d\x3b\x4f\x7c\xf3\x90\x0b\xce\x83\xad\x26\x82\x98\x27\x76\x8e\x26\x2f\xc5\x56\x98\xef\xe4\xcd\x5e\xe0\xdc\xe9\x7c\x1e\x07\xad\xe2\x83\x14\x1e\x40\x82\xb0\x3d\x9e\x63\xe1\xba\x3f\xc2\x2e\x90\x5a\xae\xbd\x3c\x1f\x7b\xe4\x19\x1b\xf2\x78\x2d\xa3\x12\xe1\xcb\xe4\x31\xf4\xf6\xf7\xf1\x50\x0f\xca\x96\xec\xf7\x2c\x79\xbc\x7d\xf7\x7b\xb1\xf5\xf8\x0a\x4f\x57\x0f\xd0\x25\x0e\x1e\xf5\xcf\x1f\x3d\xf1\xda\x9a\xe1\xe0\x3c\x40\xb5\xa1\xc0\xd7\x6e\xec\x65\x7b\xf3\x5e\xef\x75\x6f\xfb\xf7\x79\xef\xc9\xb3\xb7\x40\xea\xab\xd5\xed\x5c\xb7\x75\x00\xe1\x8b\x06\xfe\x12\xd6\xed\x6a\x58\x17\x0e\xe7\x2a\x92\xee\x5c\x3a\xf7\x53\x06\xf6\xdc\xf5\x92\xbd\xb2\xfc\xcb\xff\x84\x83\xde\xf6\x8f\xc3\x2d\x98\x3d\x21\x81\xf1\xd5\x7a\xc0\x7c\x67\x96\xf2\x82\xec\xe7\x22\xcc\x71\xbf\x87\xb6\xfb\x31\xdf\xda\xc2\x2c\xa1\x56\x3f\xb6\x23\x06\x74\x68\xf4\x0d\x5a\xc1\xa5\x76\x48\x27\x70\xb1\x1d\x16\x6b\x49\x94\xed\x04\xea\xe4\x0c\x62\xab\xb3\x65\x3b\x41\x10\xeb\xec\x39\x0c\x95\x9e\xe6\xf2\xa6\x62\x44\xb0\x59\xd5\xc7\x72\x74\x77\x57\xd7\x38\xbc\x7c\x82\xe0\xfa\x4e\x95\x74\xd6\x7d\xa0\xf0\x53\x4a\x52\x5b\x05\xf7\x11\xc2\xe7\x21\xb1\x56\x23\x0a\x05\x04\xf7\x65\xa0\xb7\xb5\x78\xec\x55\x35\xb0\x30\xbf\x1f\xcb\x59\xe5\x95\xf9\xe4\x95\xb9\x05\xeb\x3c\xe2\x7d\x3d\xf6\xbe\xb2\xc6\xd7\xd3\x0a\x07\x5c\xff\x7a\xe6\x7d\x9d\x34\xbe\x1e\x7a\x5f\xa7\x8d\xaf\xef\xbc\xaf\x57\xe6\x2b\x57\xf9\xd7\xea\xe1\x7c\x23\x45\x80\x6e\xb7\x6d\x1b\xa6\xa4\x08\xd5\x77\x47\x56\xbc\xb8\x89\xa5\xdc\x7c\x49\xaf\xe6\x76\x3b\xf6\x37\xe7\x3e\xbe\xe1\x54\x10\xf3\x09\xce\x29\xb7\x45\xef\x69\x9f\xaf\x12\x67\x6c\xf4\x19\x80\x2a\xd2\xc6\x8d\x35\xb7\x28\xb1\x39\xd7\xbe\x04\xb9\x53\x8b\x9c\x3b\x42\xbf\x04\xde\x27\x07\xcf\x9c\xc1\x5f\x02\xee\xd8\x82\x73\x47\xf5\x97\xc0\x3b\xb4\xf0\x0c\x1f\xf0\x25\xd0\xce\x1c\x34\xcb\x39\x7c\x09\xbc\x77\x06\x1e\x98\x3d\x6f\x34\xf8\xb6\x56\xb6\xec\x9b\xe9\x99\x1c\x63\x51\x0b\x3e\x4f\x4a\xa5\xd4\x68\x7c\x75\x5c\x49\xa5\x44\x9b\x00\x2c\x06\x64\x58\xda\x40\xfe\x86\x4b\x35\x9e\xa1\x24\x1f\x31\x90\xeb\xbe\x59\xe7\xf6\xb5\x16\x8c\x4a\xd1\x0e\x1a\xdb\x9f\xce\x32\x17\x1b\x7c\xc9\xf7\xa6\x0e\xcd\xc4\x66\xba\x98\x5f\x5e\x4a\xd9\x59\x47\xa0\x92\x3c\x64\xaf\x54\xfd\xb0\x6a\x4a\xf2\xf2\xc9\x77\xdf\x79\xd1\x94\x40\x02\x0c\x3f\x1c\xcf\x64\xa9\x8e\xdc\x6a\x3a\xec\x9a\xf0\xce\xf3\xed\x0b\x2a\x8a\xa8\xf3\x33\x13\x1d\xb8\x11\xff\x60\x22\xfd\x90\x3b\xd1\x38\x0c\xb6\x9f\xfc\xf4\xd3\xf3\x0d\x0f\x09\x1b\xa8\xd5\xa9\x9e\x9f\xbc\xc8\x9b\x6a\xeb\xdc\x68\x9c\xa9\xa7\xb6\xce\x41\x6d\x1d\xe4\x73\x39\xf1\xdc\xd9\x46\xbb\x5d\xfa\xf2\x49\xff\xd9\x0f\xcf\x9e\x3f\xfd\xfe\xd9\x0f\x6d\x9d\x20\x52\xf8\x57\x1d\x78\xfa\xa4\xd2\x03\x0a\x3d\x68\x60\x48\x55\xc0\x53\x45\x2c\xff\xab\xc2\xaf\x9c\xa9\x2c\xe0\x9a\x78\xdb\x7d\x13\x8b\x55\x95\x1a\x90\xad\xfe\xb0\x81\x47\x70\xc6\x6f\x69\x7e\xd5\x11\xac\x03\xd5\x3b\x4c\xe3\x45\xf3\xce\x8c\xcd\xe6\x59\x2a\xc8\xb8\x53\x64\x4c\x40\x06\x3d\x92\x8e\x3b\xec\xb2\x93\x76\x38\x01\xf1\x59\x7d\x8a\x82\x0a\xb6\xd0\x52\x22\xca\x96\x69\x7a\xfd\x0d\xa7\xe8\xeb\x7d\x48\xdf\xfa\xea\xfd\xcf\x6e\x5a\xaa\x9f\x9b\xfd\x0d\xf8\xec\x72\x3e\x18\x8c\x32\x76\xb3\x9d\x91\x6b\x92\x7d\x43\xbc\x4e\x45\x3a\xfa\x98\xc8\xbf\x8c\xa7\xee\x8e\xc6\xbd\x58\xaa\x68\x4e\x25\xbb\x92\x0c\x86\x6a\x8d\x80\x4e\xad\x67\x94\xcd\xd7\x29\x5f\xc8\x37\xb1\xc0\x50\x2c\xe6\x25\x8c\xb6\x9c\x8d\xc2\x0f\xfd\x60\xeb\x6e\x6d\x6d\x90\xac\x20\xda\x26\x96\x0f\xc4\x70\xc3\xc1\xcd\x4b\x5f\xe3\x0c\x10\x07\x62\x28\x97\x67\x39\x26\x9c\x5c\xd6\x75\xd2\xaa\x04\x19\x96\x63\xce\x66\x76\x51\x9b\xb7\x89\x05\xec\xa1\x4e\xca\x72\x49\x62\xc5\xc1\x50\xd7\xbf\x26\xa3\x84\x94\x10\x93\xcc\xbb\x3c\x83\x94\x8f\xe6\xbb\xbd\xcb\x2d\xe1\xe1\x2d\x67\xd3\x46\x7a\xc8\x5a\x59\x62\x0a\xfb\x6c\xe3\x92\xa2\x98\x23\x54\x8e\xd8\xcc\x44\xa8\xd2\x9f\x25\x2d\xec\x33\x19\x96\x70\x2a\x9d\xa4\x37\xb5\x52\x10\x82\xf8\x8a\x08\xf8\x52\x25\x98\xae\xa8\x82\xd0\xb9\x2a\x36\xaa\x4b\x99\x91\x3c\x6c\x54\x31\x4b\xbb\x34\xd3\x48\xd4\x67\x70\xce\xc6\xcb\x92\x3a\x79\x8a\x9e\x82\x4e\x67\x19\xd9\x1e\xb3\xe9\x63\x17\x80\xec\xeb\x6b\x79\x0a\xc2\x55\x84\xc0\x57\x73\x9a\x8d\x7d\xcd\x75\xc5\x13\x24\xba\x64\x5c\x47\x13\x54\x0a\x49\xf8\x2c\xcf\xc0\x23\x36\x26\x6f\x8e\x0f\xcf\x38\x21\xaf\x99\x3b\x52\xaa\x79\x39\xf3\x8e\x52\xf3\x14\x1d\x11\xb5\x14\xae\x1f\x37\x2a\xd0\x1f\x01\x0d\xa0\xbd\x0a\x45\x30\x83\x88\x98\xcf\xde\x17\x24\x23\x85\x71\x6d\x09\xd1\xa2\xa4\x79\x41\xb8\xf8\xe5\xec\xf0\xe0\x95\x89\x04\xc2\xad\xed\x96\x9a\x06\x86\x88\x3a\x44\xf4\x49\x7a\x23\x8b\x9f\xea\x88\x5d\xce\xff\x06\x02\x26\x11\x2e\x34\x20\x8a\x39\xc2\x2a\xe8\xe3\x6b\x96\x8f\x38\x11\xe4\x15\x9b\xe7\xe3\x02\xe2\xb6\x50\x54\x2a\x70\x06\x97\xda\x14\xaa\x35\xea\x4a\xc9\x8e\xec\x0a\xc1\xe9\xc5\x5c\x10\x33\x96\xc0\x90\xb8\xb7\xf2\x9d\x9c\x46\xcb\x28\x9c\xb7\x78\x5e\x29\x72\x33\x8f\xdc\x47\xe4\x46\x37\xab\x47\xb8\xb6\x6d\x2d\x8d\xe0\xef\x66\x46\xc6\x46\x1f\xdf\x90\x19\xcc\xf9\xf3\x73\x36\x23\x39\xbc\x52\x46\x26\x0b\x91\x5e\x1d\xa9\x24\xf1\x8a\xd0\x44\xb5\x06\x67\xec\xd9\xfe\xd9\xc1\x9e\x56\xea\x06\xa7\xaf\x4f\xf6\xdf\x9d\xd9\x5f\x67\xbf\xe9\x4f\xc6\x46\x68\x59\xab\x5b\x5b\x26\xd0\x67\x3a\x9b\x91\x7c\xfc\x9a\x4d\x81\x8a\x1f\xfe\xb2\x75\x11\x3f\x5a\x88\xf2\x2f\x1f\x50\x09\xdd\x88\x2a\xd8\x95\xe7\xe7\xa3\x8c\x15\x64\x4d\x64\x0d\x04\xbf\x0e\x7e\x58\x0f\xb6\xb7\x97\xf5\x61\x59\x0f\xb6\x5d\x0f\x4a\xf3\x55\xce\x4b\x73\x5e\x18\x7c\xf9\x52\xe2\xaa\xe4\xf1\x06\x35\xf3\x0b\x50\x93\x3f\xcc\xdd\xb0\xe9\x5d\xa5\x09\xa3\x94\x6d\xc3\x2d\xf8\xcb\x55\x36\xe5\x7f\x09\x90\x6a\x6b\xf7\x95\x01\x68\x4d\x8d\x8d\xe5\x58\xf0\x93\x2a\x44\x5f\x6e\xf7\x51\x20\x38\x58\x16\xe9\xdd\x99\x6e\xf5\x31\xdd\x7a\x8a\xc0\x0f\xee\xc3\x4f\xe2\x82\x8d\x6f\x5f\x4a\x86\xef\xa7\xc7\xea\xf9\x03\x2a\x03\xa8\xb0\xb3\x04\x8b\xce\x5f\x02\x14\x2f\xc7\x9e\xdd\x87\xbd\x7f\x76\xd4\x97\xb0\x4f\x52\x9c\x63\x86\xec\x18\x9c\x91\x4f\xa2\x3e\x06\xa2\x3a\x06\x98\xd7\x93\x0a\x2c\xf4\x97\x58\x60\x79\x7c\x9e\xd2\x8b\x8c\xe6\x57\x72\xec\x48\xcd\xa2\x9d\xef\x88\x28\x4b\x0b\x01\x71\x4b\x63\x1e\xcd\x38\xb9\xa6\x6c\x5e\xe8\x2a\xa5\xf6\x23\xd4\x5a\x18\x3b\xd0\xa2\x32\xd0\xc2\x1f\x68\xb1\x53\xa5\x91\xee\x40\xbc\x06\x71\x43\xde\xed\x3e\x05\xfe\x43\x9e\x4c\x67\xb7\x33\xa2\xa3\xff\x37\xcb\xdf\xfd\x25\x40\xb8\xb5\x21\x54\xc2\xba\x71\x7b\xb2\xb5\x79\x99\xa4\x55\x42\xcb\xb9\x40\xcd\xf5\x79\xe5\x83\x86\x5c\x05\xd4\xfe\xb6\x94\xeb\xbc\xb1\xe9\x9a\xc9\xd7\xed\x06\x67\xaf\x8e\xdf\xfc\x16\x18\x7e\x5a\xb7\x10\xe9\xa1\x94\xdf\x7f\xd9\xdb\x7d\xb3\xea\xfb\xdb\xe3\xe3\xb3\xe5\xdf\x15\xe2\x3e\x12\x01\xcc\xe7\x00\x79\x5e\x9e\xce\x61\x95\xe6\x57\xd6\xa8\x40\xdd\x68\x99\x6a\xa0\x42\x33\x7d\xac\x76\xaa\x94\x22\xc4\x09\x99\x32\xef\xe0\x90\x07\x05\xdc\x4a\xaa\x09\x37\x66\xd3\x38\x57\xd3\x12\xd3\x24\xaf\x1d\x33\x81\xf2\xf9\x74\x8b\x80\x56\x0f\x98\x40\xae\x91\x00\x0b\x84\xf3\xea\xa1\x27\x8f\x36\x6e\x90\x5a\x82\x05\x6a\x0a\x0b\x0c\xa4\xbc\xed\x11\x9b\xce\x68\x56\x95\x6d\xfd\x98\x48\xd3\x46\x1a\x4b\xef\xf7\x8c\xb3\x2b\x9e\x56\x8a\x18\x51\x79\x1d\xdb\x05\xdf\xe3\xc3\xcc\x8a\x85\x14\xf0\xe2\x00\x38\xdd\x40\x29\x24\x62\x52\x75\x9e\xad\x15\x55\x1a\x88\xed\xa5\x35\x8a\x46\x0d\x9b\x56\x7c\x4a\x44\xda\x56\x25\x6b\x54\x61\x62\x22\x69\xd4\x2c\x3a\x6f\x14\xcd\xd2\x0b\x29\xef\xd8\xa2\x9f\xc1\xe7\xe9\x41\x39\x15\xa9\x80\x41\x2c\x92\x7f\xda\xb7\xe9\x45\x46\x92\xbf\x4b\x66\x50\xa4\x82\x8e\xda\xd2\xb2\x6b\xcd\xf3\x00\x68\x3e\x4c\xe0\x00\xd2\x7b\x19\x31\x47\xcc\x09\xd8\x5b\x39\x90\x31\xc3\x23\x2f\xd2\x56\x9c\x62\x95\x6f\x2f\x2e\xbc\x0d\x91\xed\x0c\x0a\x12\x3e\xef\xe1\x02\xe1\x4b\x12\x2e\xaa\x35\xee\xee\x46\x38\x4b\x6f\xd9\x5c\xc4\x0c\xa7\x42\xf0\x42\xc5\x28\x9f\xa5\x3c\x9d\x16\x31\xc7\x93\xb4\x98\xc4\x39\xbe\x90\x07\x6d\x11\xd3\x12\x0d\x63\x07\x6f\xda\x0a\x6f\x05\x98\x54\x40\x0e\xa4\x78\xb3\xe7\x43\x2c\x6d\xea\xc6\x53\xa0\x0f\x9c\xea\xff\xa2\x62\xa2\xf8\xfb\xf3\xb6\xcf\xc9\xad\x4f\xf3\x71\x72\x43\xc0\xe0\x4f\xa4\xc9\x48\x3e\x99\xe9\xa2\xef\x36\x93\x77\xf2\xe5\x0a\xba\x77\xf2\xe4\x1d\x09\xff\x7e\x7a\x7c\x14\x81\x1e\x5f\x6e\xb8\xbe\x6b\xcf\x3c\xbf\xe1\xe9\xcc\x64\xb3\x40\x61\xee\x32\xc1\xa0\x28\x2d\x0e\x80\x84\xc6\x9f\x0e\x42\x38\xab\x57\x6f\x19\x3f\x4b\xaf\x54\x08\xd0\xdb\x5c\xa4\x9f\x5e\xab\xd1\x93\x8d\xbf\x66\xb9\xa8\xd8\x84\x78\x02\xc1\x42\x2f\xd3\x98\x60\xe5\x76\x16\x0b\x88\x6f\xd9\xac\x93\x2c\x4a\x2c\x92\x20\x65\x22\x90\x3b\x17\xb9\xe9\xfc\xb7\x01\x44\xbe\x3d\x26\xa1\xfc\xa3\x1c\x5b\x90\x81\xca\x01\xea\xdf\xa9\x58\x06\x78\x39\xc0\x53\x07\x10\x55\x91\xdc\x65\x9f\x01\xce\xc7\x0f\x7a\x53\x03\x6a\x46\xb4\x85\x80\xbf\x60\x12\xbd\x51\x32\x8c\xfa\x4a\xce\xe8\x94\x98\xe4\x07\x6f\x48\x46\xae\x54\x3e\xe6\xc3\xfd\xa3\xfd\xc3\xdd\x83\xf3\xd7\xbb\xef\x76\x5f\xed\x1f\xec\x9f\xed\x43\x66\xbf\x37\x7b\x6f\x77\xdf\x1f\x9c\xd5\x5f\xff\x9d\x8a\x77\x0a\xc1\x96\x36\x49\xb4\xea\xdb\xde\xe1\xbb\xb3\xdf\xce\x5f\x1d\x1c\xbf\xfe\x87\x84\xf4\x2f\x2e\x8f\xf2\xb1\x91\x00\x49\xf4\x2e\xe5\x52\xd2\x7b\x23\xf7\x17\x30\x4b\x01\xcd\xa0\x14\x68\xc7\x07\xf4\xc2\x64\x8e\xd6\x9d\x91\x15\x8e\x8e\x8f\xf6\x12\x12\xbd\x3f\x52\xc9\x4a\xdf\xc8\xce\x00\x75\xaa\x2a\xc7\xd6\x9e\x2c\xc6\xb7\x79\x3a\xa5\x23\x35\x23\xe5\xda\xd3\x2f\xce\xd2\x2b\xf9\x6b\xc6\xc9\x2c\xe5\x64\x97\x5f\xc1\xc2\x54\x13\xdb\xfc\x4a\xcd\x61\xf6\x0b\x63\x1f\x21\xa5\x98\x3a\xa3\xcc\x4f\x0d\xea\x74\xc4\x66\xc4\xd5\x7e\x9d\xaa\x84\xf8\x7d\xac\x02\xd3\xa9\xd2\xe6\xab\x89\xc9\x2e\xdf\xdc\x28\xd2\x80\x5a\x9b\x66\xd9\x1b\x65\x83\x13\x6f\xf6\x4b\x6d\x43\x52\xc7\xbe\x5f\xc1\xbe\x5f\xc5\xbe\x5f\xc1\xbe\xff\x40\xec\xfb\x2b\xb1\xef\x37\xb0\xef\xaf\xc2\x7e\xc9\x6c\x1b\x69\x09\x72\xdc\xaa\x01\xa6\x39\x18\x4f\x95\x2a\x6c\xf9\x2f\x24\x9b\x99\x54\x5c\xf4\x32\x74\x25\x22\xff\x7b\x25\x00\x7f\xf3\x33\x54\xdf\xb0\xe1\x41\x40\xc2\x68\x68\x5e\xdf\xe7\x2a\xd9\x33\x19\x77\x26\x50\xab\x13\x4a\x19\xa2\x73\xc9\xd9\xb4\xf3\x68\x01\xfb\xa2\x3a\xb3\xe9\xe5\x2d\x38\x88\x74\x42\xbf\x91\x8e\x5a\xd0\x64\xdc\xb1\x71\x72\xd1\x07\xe7\x52\x5e\x36\x54\xac\xaf\xd3\xfc\xaf\xa2\xa3\xf7\xef\x8e\x32\xf7\x31\x4d\xcb\xbd\x5e\xa5\xb3\x28\x20\xbc\x3f\x9b\x8b\x4e\x9a\x77\x40\x5d\x63\xe3\x3e\x77\xd8\x65\xc7\xc7\x20\x40\x9a\x68\x26\xc6\xe5\x72\xb2\x99\x12\x4b\x09\x57\x01\xf1\x00\xd2\x99\xf0\x97\x6b\x13\xcf\x34\xf4\x75\xc8\x67\x9b\x7f\x20\x01\x0d\x16\x96\x84\xf6\x9c\x5c\x4e\x43\x5b\x64\x29\x11\xab\x40\x1e\x40\x45\x1b\xda\x7d\x6d\x32\xda\xa6\xbe\x0e\x1d\x1d\x02\x0f\x24\xa4\xc5\xc3\x52\x52\xef\xf3\xcb\xe9\xa8\x0b\x2c\xa5\xa2\x0f\xe0\x01\x34\x9c\xa9\x6a\x6b\x53\x50\x37\xf3\x75\xe8\x67\x1a\x7f\x20\xf5\x34\x0e\x01\x2a\x35\x07\x25\x77\xc5\x2a\xcd\xf4\x07\xe4\x6b\x00\x2b\x5f\x42\x82\x36\x9a\x48\x2a\xf4\xb6\x05\x9d\x92\x8e\x4d\x13\xd5\xe1\xe4\x3f\x73\xca\x49\xd1\x8e\x93\x06\x18\xf8\x81\xa5\x27\x21\xc1\x2e\xb7\x9c\xc0\x92\xdd\x8c\x17\x9c\x5c\x12\xce\x09\x97\xbc\x94\xe1\x25\x45\xcb\x22\xe0\xc8\xe3\xe9\x8d\xef\x63\x07\x74\x8c\x0b\xcd\xb7\x53\xbc\x82\xb9\x2f\xad\x97\xeb\x5a\xc5\xef\xee\x46\x1e\xea\xde\x65\xc5\x60\x26\x59\xac\x82\x84\x4f\xfb\x68\xe8\x4a\xcc\x3c\xd5\xaa\xfc\xd8\xc3\x8d\x0b\x3c\x29\x96\x83\x6d\x62\x71\x3a\x4d\xb3\x6c\x3f\x17\xe0\x59\xaf\x65\x28\x29\x4b\x8e\x29\xe4\x7a\x33\x72\x54\xdc\xbc\xb5\xd5\x85\x67\x9c\x4e\xa9\xa0\xd7\x5e\x61\x08\x86\xed\xf0\x99\x86\xa6\x9b\xa4\x2e\x46\xd8\x2c\xa3\x52\x12\xe9\x41\x5f\x82\x53\x18\x42\x79\xee\x07\x78\xb1\x54\xec\xe8\x97\x50\xba\xff\x3d\x56\x24\xe8\x2b\x42\x7c\x8f\x45\xf4\xe8\xba\xe7\x93\xe3\xda\xe7\xc6\x65\x3b\xdf\xfd\x08\x65\xbf\x7b\x8e\x53\xe0\x78\x45\x08\xbf\xbf\xaf\xd4\xba\xaa\xd7\x6a\xc5\x4b\x68\xbc\xa4\x84\xe4\x24\x22\x85\xda\x93\x67\x1a\xb5\x27\xdf\xa9\x8e\xa9\xb4\xe1\x01\x3c\x03\x9f\x0e\x93\x19\x64\xa0\x00\x29\x14\x9e\xc1\x9f\x67\x3d\xdd\x25\x0f\x9f\x0b\x6f\xd8\x6f\x42\xd2\xed\x12\x9d\xff\xe1\x4c\xce\x19\x55\xfb\x89\x6a\xe7\xdd\xbc\x98\xbc\xb6\xd3\x29\xc0\xc4\x87\x73\xeb\xc1\x71\x34\x6f\x56\x69\xc7\x12\xba\xd3\x44\xee\xdc\x86\x7a\x52\x84\x21\x82\x48\xb9\xb1\x4c\x2a\x48\x82\xda\x45\x5d\xf9\x60\x96\x58\xc7\x75\x8e\xa9\x72\x17\x4c\x92\x84\x99\xc5\x74\x6b\x94\x96\x69\x32\x50\xc1\xdc\xd5\x2d\x31\xa0\x8c\x30\x43\x0b\xf7\xe2\xe9\x8f\x5e\x44\x74\x9d\x68\x01\x32\x2c\x78\x45\x9e\xca\x79\x71\x39\xc3\x7c\xbb\x40\x08\xbb\x0f\xfd\x1f\x71\x3e\x28\x86\x2e\x10\xba\xfb\xd4\x42\x14\xbf\x66\xdb\x10\xba\xaf\x4f\x24\x92\xdd\xae\x7b\xf1\xac\x57\x6d\x57\xfe\xaa\xd8\x7c\x39\x5b\xab\x1d\x39\x96\x4f\xb1\x51\xb0\x68\x0d\xb9\xc2\xc1\x2c\x31\x14\xcf\x94\x3e\xac\x66\xaf\x65\xf2\xb5\x62\x9e\xf4\x36\x48\xe8\x6b\x81\x72\xb4\xd0\x61\x10\x16\x10\x6f\x28\x26\x78\x64\xd2\x85\xe5\x18\xf4\x26\x71\xf0\xfa\x60\xf7\xfd\xe9\x5e\xb0\xc5\xb7\xb6\x94\xd9\x89\x0e\xdf\x25\x51\xfa\x11\xab\xa1\xff\xfe\xb9\x5a\x6b\x7a\xba\x41\x6a\x8c\x03\x59\xbd\x08\x90\x4b\x14\x4b\xe5\xde\x2b\xb4\x6e\xbb\x87\xb7\xfb\x08\xe5\xb6\xfb\xdf\xff\x80\xe7\x21\x8d\xa0\x51\x84\xa9\x0a\x80\xe4\x8d\x22\x4b\x84\x8d\xc9\xf5\x82\xbd\x4c\x7a\x2f\xd8\xf6\xb6\x09\x07\x26\x06\x6c\xb8\xe1\x60\x05\x07\x4a\xe5\x93\x1a\x70\x12\xb7\x67\x12\x57\x95\xb1\x40\x76\x30\x44\x08\xf7\x36\x93\x84\x75\xbb\xae\xe2\x33\x3c\x0f\x83\xbd\xa3\x37\x90\x5b\xc6\x5a\x5f\xd6\xc1\xaa\x12\xba\xa7\x6c\x66\x3a\x2a\x5f\xfc\x20\xc7\x34\xf7\xad\xe1\x16\xa9\x14\x57\x08\xbe\x60\xe3\xdb\x58\xa8\x43\x64\x31\x62\xf3\x5c\xc4\x1c\x6b\xcf\x02\x58\x17\xa1\x75\x0d\x6e\x90\x10\xdb\x65\xf9\xbd\x46\x70\xff\x68\xff\x6c\x7f\xf7\x40\xce\xb0\x1c\xab\x91\xe0\x76\xdb\xb2\x78\xbe\xdd\x3f\xda\x3d\x38\xf8\xcd\xa2\x06\x7b\x5c\xb5\x88\x0f\xcb\x6d\x9a\x95\x7e\x0d\x7d\xf3\x3d\xd3\x1d\x7a\x79\xc6\xe7\x24\x16\x98\x5e\xbe\x4d\xb3\x82\xc4\xbc\xf4\x6c\xbc\x2a\x9d\x0e\x8d\x21\x25\x51\x93\x46\xf5\xe1\xe0\x74\x2f\x70\x3b\x2d\x10\xde\xa2\x5b\x43\x11\x8a\x5a\xff\x3a\x2e\x37\x3a\x65\xc1\x22\xc7\x90\x94\x65\xd5\x82\x50\x2b\x7d\x16\x5a\xf1\x19\xe7\x58\x29\x67\x62\xab\x91\x58\x4c\xd9\x58\x1d\xb0\x2a\x6b\x54\x11\xb3\xb2\x2c\x13\xb2\x51\xdc\x50\x31\x82\x94\x0e\x33\xb4\x18\xa5\x05\x31\x1b\x74\xac\xdb\xde\x0f\x09\x6e\x8b\xd1\xc0\x66\xfd\xda\x1d\x85\xd8\x39\x89\x45\x19\x0a\x84\x36\x00\x90\xea\x4c\x6c\xe7\x14\x4c\x4c\x68\xa9\xaf\x4b\xf8\x23\xee\xca\x15\xee\x6d\x68\x0b\xda\xb1\xf1\xcb\x99\x97\xa6\x58\x7d\x33\x5a\xd6\x07\xad\xfc\xff\x83\x0a\x75\xd9\x21\x87\xa8\x8f\xe2\x93\x32\xa4\x06\xf9\x9f\x89\x70\x09\x2b\x41\x54\xf7\x5a\x86\xa1\x60\x6d\x20\x53\xa6\x41\xfe\xf8\x2c\xfe\xf1\x3b\xf0\x70\xaf\x74\x98\x88\x2a\x66\x6b\xc1\x7a\xd2\x8b\x9f\xf4\x7d\x58\xc6\xd7\xd7\x53\xe8\x91\x4f\x93\x74\x5e\x80\x53\xbf\xf0\x79\xbc\x33\x35\x3b\xde\x56\x28\x20\xdf\x34\x07\xbe\x95\x74\xad\xb7\xfb\x4d\x35\xaf\x49\x55\x39\x84\x10\x01\x82\x84\x0c\x0b\x50\x5f\x22\x5c\x24\x9c\x84\x5c\xff\xc4\xc1\x9e\xe1\xe9\x41\x61\xda\x99\x90\x14\x32\xe5\x5d\x90\x4e\xda\xd1\xd6\xc3\xea\x06\x51\xff\xb0\x5e\xab\x85\xbd\x99\xf4\xf2\x1f\xc3\x34\x8f\x94\x62\x2d\x52\x2a\x58\xa3\x45\x0d\x0b\x9c\xdf\xdd\x0d\x86\x98\xe2\x14\x0b\x54\xaa\x99\x87\x09\x2a\x95\xf4\xe1\xf7\x79\x3f\xcf\x68\x4e\x96\x74\x5a\xae\x2c\x0a\x05\x62\x8e\xe9\xe5\xfb\x5c\xf1\x71\x63\xb8\x48\x01\x98\xb4\xdd\x08\xa2\x8e\x9f\x02\xe2\x10\x04\x8b\x88\x90\x7b\xc1\x2c\x8e\x42\x8a\x76\x68\x9c\x87\xbc\x82\xe5\xbe\xa7\x2d\x5e\x8e\xa4\x94\xb7\x60\x59\x4a\xea\x99\xc9\x13\xe9\x1d\x20\x92\x1b\x80\x61\xe7\xb9\x43\xc1\xde\x19\x6a\xe6\xd8\x92\x3b\x97\xab\x22\xd8\x53\x1e\x58\x72\x1f\xb9\xc8\xc8\x34\x96\xa8\xa4\x19\xd5\xa3\x17\x60\x58\xab\x71\x0f\x93\x7c\x1c\xf7\x4a\x14\xcb\x53\x07\xe7\x49\x92\xfc\xb6\x13\xaa\xe8\x14\xb6\xa1\x38\x37\xe7\x8b\xdc\x12\x9f\xfc\x88\xcd\x5e\xa0\x76\xf9\xbe\x66\xab\x86\x65\x68\x74\xcb\xb6\xff\xc0\x6e\x36\xfa\x6d\xd8\x4f\xa2\xd8\x4f\x61\x54\xf0\x8e\x3f\xa6\x25\xf2\x62\x3b\x40\x02\xaa\x1c\xd2\x88\x17\x38\x4b\x7a\x2f\xb2\x9f\xac\xdd\x5f\xb6\xb5\x85\x98\x5a\x8b\x17\x61\x0e\xd6\xd2\xc5\x20\x1b\xea\x4c\x85\xfa\xf0\x9a\xdb\xc3\x6b\x54\x26\x73\x20\x9e\xae\x33\x52\x2c\xc2\x38\x99\xff\xf4\xd3\xb3\x0d\xda\xed\x86\xe3\xbb\xe4\x39\xda\xc8\xd5\xd3\x0f\xea\xf3\x24\xe1\x5a\x93\xba\x7b\x72\xb2\xfb\x1b\x98\x71\xa1\xc5\x24\x11\x83\x9e\xe3\x18\x2e\x13\x31\xe8\x0f\x75\x22\x9b\x4b\x3f\x91\x0d\x73\xa7\xf2\xde\xa7\x19\x0f\xf0\xe5\x60\xe6\xf1\x6c\xee\xf3\xf3\x67\x38\x0d\x27\x08\xa7\x61\x81\xf0\x58\xf2\x60\x65\x65\xdb\xad\xb1\x74\xed\x13\xaa\xe5\xbe\x46\x33\x5b\xfe\xfc\x12\x2d\xf3\x8b\x27\xf6\x26\xc3\x65\xa9\x6c\xcc\x2f\xde\x3e\xbf\xf4\x82\x54\xb2\x6e\x27\x3c\x3b\x7e\x73\x1c\x77\xc4\x84\xcb\x6d\xe2\x82\x08\x41\x38\x6a\xce\xba\x99\x5c\x2f\x4e\xd6\x83\xb9\x25\x85\x2f\xb3\xe4\xf5\x7c\xd2\xdd\x7f\xa3\x94\xa4\x4e\xbb\xb1\x7c\xd9\x8f\xad\x42\x5b\x72\x2e\xea\x1e\xc8\x48\x6f\x14\xc3\x89\xcf\xcc\xb4\x4b\xed\xb4\x2b\xcc\xbe\x90\x25\xb9\x64\xb5\xb4\x83\x42\x6f\xe7\xdf\x61\xae\x6f\x75\x90\x92\x96\xe6\x49\xd5\xb1\x21\x45\x77\x77\x9a\xea\xe9\x8e\x20\x61\x6a\x8b\xa7\x66\x8b\x98\x91\x50\xbd\xc3\x6d\xd8\x65\x0e\x3b\x58\x14\xcc\x21\x65\xf0\x9c\x97\xd5\xbd\xe5\x52\x5f\x2c\x8c\xd7\x21\x48\x0e\xb6\x25\x96\x14\xe6\xd2\x0b\xab\x8b\x40\x73\x9f\x14\x33\xab\xd4\x36\x6f\x52\xcc\xf8\x9e\x64\x9a\x3c\xe2\x4c\x42\xee\xe9\x1f\xcc\x28\xd9\x19\xc5\x6b\x17\x1e\x4a\x3f\xa1\x3a\x5f\x22\xbc\x80\x9f\x73\xc9\xc4\xe8\xb9\x0a\x91\x56\x16\x9e\xfe\x61\x54\xd5\x21\x8c\x7d\xfd\xc2\x65\x99\x64\x78\x96\xc8\x21\x99\x23\x3c\x95\x67\x16\xc5\xf3\x4a\x24\xc1\xcd\x24\xb9\xdc\x61\xe1\x08\x8f\xf1\x25\x5e\xa8\x3e\xcf\x4c\x9f\xa7\x25\x8a\x53\xf8\xd6\xf2\xa5\xa4\x97\xa1\x3b\xaf\xc2\xe5\x4a\x1c\xf5\x33\xee\xbc\x4e\xf3\x9c\x89\xce\x25\xcd\x7d\x85\x61\xb0\x65\xcf\x81\xfb\x8f\x7c\x1d\xa4\xcc\xf7\x0e\xa9\xc7\x35\x8a\xd8\xec\xe9\x8e\xe6\x24\x05\x96\x3f\xe1\xbf\x3e\xfc\xff\x04\xfe\x7f\x8a\xe2\x4a\xf9\x27\xcb\xcb\xd7\x4a\xf6\xdb\x4a\xa2\xb8\xf2\x12\x95\x6b\xdd\x6c\x8d\xf5\xa5\xc2\xbb\x36\x8b\x59\xd8\xbf\xe1\xf6\x0d\x6c\x23\xe6\xf9\xa8\x48\x06\x43\x65\x33\x6b\x2d\x35\xa1\x90\xb5\x52\x85\x42\x1a\x0f\xb4\xdd\x2f\xfd\x03\xd8\x6c\x59\x83\xde\x10\x6b\xcb\x26\x55\xd9\x86\xb7\x08\x7b\x5e\x53\x83\x7c\xa8\xa2\xb4\x95\xa5\xac\xb8\x0b\x37\x80\xef\x9c\x19\xc1\x6b\xbb\x7b\xba\xc0\x54\x77\x77\xf0\xa7\x96\x12\x8d\x6c\x54\xd7\x3e\xc4\xea\x23\xc9\x80\x0c\x9d\x04\xd8\x12\xad\x8c\x38\xe9\xfa\x29\x16\x03\x3e\x44\xce\x12\xd1\x0d\xfe\x47\x97\x34\x4f\x33\x7a\xb9\x63\xf4\x3c\x1d\x4e\x7c\x00\x05\x5b\x43\xd8\xc9\x03\x53\x9f\x7c\xcc\x9e\x7c\x85\x39\xf9\x74\x2e\xb8\xc2\xe4\x65\x64\xf2\xe4\x93\xe7\x5d\x06\x27\x9f\xca\xa6\xd7\x76\xde\xcd\xab\xe7\xdd\x48\x9d\x77\xe3\xa4\xf7\x62\xfc\x93\x31\x86\x7d\x31\xde\xda\x42\xb4\x7e\xde\x8d\x06\x63\xef\xbc\xa3\xd5\xf3\x6e\x2e\xcf\xbb\x4a\x7b\x08\x67\x08\x61\x5a\x42\xd7\xfb\x91\xda\x18\xb1\xfa\x21\x37\x47\xfd\xa8\x37\x48\x84\x29\x52\x01\xdd\xd4\xbe\x08\x4d\x6a\xf2\x84\x93\x04\xca\xe2\xcb\x44\xb3\xb1\xd5\xa1\x9b\xa0\x9d\x5d\x7b\xe4\x4d\xf0\x25\x8a\x07\x33\x79\x00\x6b\xa5\x64\x1d\xb4\xdb\x72\x5b\xe8\xbf\x60\xb3\xbe\x15\x9a\x3f\xd2\x7c\x1c\x73\x0c\xbb\x6e\x8e\xd3\x7c\x7c\x36\x21\x79\x4c\xcd\x5e\xca\x70\x31\x4b\xf3\x38\x2d\x21\xdf\x61\xd3\xa1\xd8\xf0\xf8\x7a\xdc\xed\xc5\x48\x6c\x4d\x57\x6b\x17\x44\xb2\x96\xc2\x51\xdf\x42\xd5\x4b\xea\x3b\x38\x57\xce\x1e\x1a\xee\xee\x37\x88\x8d\xc1\x5f\x5d\x69\x0c\xd5\xcc\xf0\x75\xbb\x34\x52\xfb\x74\xe9\x58\xbe\xe5\x9b\xbf\x14\x30\xd4\xde\x1f\x19\x0d\x75\x7d\xb3\x2e\x76\x68\x58\xa0\x98\xed\xb0\x10\xc5\x29\xa9\xdc\x20\x3c\x5a\xf0\xb2\xf3\x68\x91\x97\x1f\x70\xaa\x24\x4c\x9c\x46\x24\x1f\x4b\x26\x01\xe7\xf5\x11\xd2\xe3\xf3\x96\x13\x12\xc4\x8d\xbd\xfb\x7d\x6e\xf5\xeb\x64\xdc\xf9\x85\x5e\x4d\x0e\xc8\x35\xc9\xa0\xd2\x5c\x52\x40\x79\xaf\x44\x3e\x14\x54\x01\xac\x6f\xd6\xe7\x69\xa6\x9a\x90\x63\x7d\xc9\x09\xf9\x35\xe5\x31\x93\x42\xba\xfc\x2a\xd7\x5a\x6e\x18\x7a\x35\xef\xa2\xb4\xb0\x37\x2c\x6a\xe6\x48\x5e\xba\xdf\xfb\x4e\x8b\x57\xd1\x7c\x76\x9d\xf2\x62\xc0\x86\x68\x68\xbb\x54\xea\x69\x50\xa8\x69\xd0\xe9\xc7\x6a\xc5\xd6\xab\x6c\x38\x88\x4f\x9e\x60\xa5\x3a\x79\xf2\x14\x67\x1e\x28\xe8\x44\xa7\x17\xab\xd5\x2d\xee\x1d\xb4\x51\xa3\x11\x3c\x4e\xe6\xd5\xb9\x34\x32\xb8\xbb\x61\x55\x88\x8c\x77\x9c\xce\x7c\x6c\xf8\x1a\x60\x9b\xac\xba\xb9\x44\x71\x1d\xdd\x91\x8f\xae\x39\x35\x1b\x43\x38\xf7\x87\x10\x8e\xdf\xbf\x8a\x0e\xb9\x4e\xb3\x79\x2a\x48\x87\x7c\x9a\x71\x52\x14\x10\xa2\x38\xef\xe8\xe1\xe8\x04\x5b\x05\x2a\xab\x70\xdb\x4f\xe3\x1c\xc1\xd9\x30\xc1\x97\xe5\x2e\xc4\x5e\x7d\xda\xc7\xe1\x00\x93\x21\xb2\xe1\x0c\x07\x6e\x03\xe4\x1d\x76\xd9\x21\x48\xd4\x77\x3b\xee\x36\x76\xf7\xed\xc9\x73\x4c\xcc\x39\x02\x11\x5c\xb1\x6e\xa1\x07\x2d\x40\x66\x3b\x15\xd3\x8e\x5e\x86\x0d\x86\x7e\xb3\x7e\xe2\xd8\x88\x95\xc0\x42\x25\x04\xe7\x83\xde\xf0\x65\xf2\xf4\x99\x3b\x16\xfb\xe6\x18\xdc\x0c\x37\x85\x1e\xc7\xbb\x3b\x2f\x61\xf5\xa6\x3c\xda\xf4\xf8\xf2\xa1\xea\xba\xb9\xd9\xd9\xec\x97\x10\x63\x4f\xb5\xce\xd5\x41\x58\xcf\x58\xda\x2a\x07\x38\x26\x68\x62\x6e\xe4\xcd\xf5\x96\xe8\x64\x24\x2d\x44\x87\xe5\xa4\x63\x6c\xd0\x1b\x32\x81\x3c\x80\x06\x0c\x82\x4c\x0c\x5d\x02\x43\x27\x3b\x7a\xbc\x73\xe3\x3e\xc6\x93\x1f\x31\xfb\xdc\xbb\x19\xaa\xee\x3f\x9e\x2b\x35\xb1\x1e\x53\x75\xa3\xf0\xc3\x8f\xb8\x08\x19\x6a\xbf\xb1\xa9\xa0\xc6\x0c\x6a\x69\xcb\xd5\x0f\xa6\x6e\xc9\x94\x6a\x49\x6b\x53\x4c\xa7\x64\x19\xa5\x59\xb6\x44\xc7\x52\xf5\xd8\xb6\x72\x59\xb6\x93\x49\x29\xde\x3f\xa4\xb0\x3a\x87\xcc\x99\xa0\x8e\xa3\xcc\x1e\x47\x24\x79\xb9\xf2\x72\x4b\x1d\x52\x8b\xea\x00\x41\x04\x62\x3d\x77\x9f\xa8\xb9\x2b\xe4\xfa\x78\x1d\xaa\xf5\x0c\x56\x5d\xb6\xc4\xd3\x7a\x89\xca\x0e\x5d\x2b\xfc\x6c\x59\xe1\xda\xae\x8b\xed\x96\x4b\xec\x96\xdb\x2b\x2b\xa0\xbe\xfb\x02\x50\xfd\x2a\xa8\xef\xbf\x00\xd4\x93\x2a\xa8\x1f\xbe\x00\xd4\xd3\x2a\xa8\xe7\x5f\x00\xea\x59\x15\xd4\x8f\x5f\x00\xea\xbb\x0a\xa8\x27\x3f\x42\xea\x65\xc3\x42\xbb\xf7\x3f\xd8\x6d\x74\x50\x5f\x53\x4f\xbe\x97\x7c\x96\x2e\xf7\x7c\x45\xb9\xef\x56\x5d\xea\xfd\x80\x86\x8a\x75\x3d\x49\x16\x41\xce\xb6\x15\xd7\x1b\xc4\x9b\xbd\x72\x43\x1b\xad\x81\xd1\x6a\xe7\x0f\xf8\x2e\xb6\xb5\x2a\x50\x95\xb0\xdc\xf7\x1b\xff\x22\xab\xdb\xdd\xdc\x24\x03\x0f\x9a\x77\xb9\x70\xe4\x0a\x6e\x92\xbb\x3b\x55\xce\x41\xf5\x4a\xee\xbb\x4d\xfc\x4d\x28\x10\xa2\x97\x61\x3d\x46\x2d\xaa\x9c\x28\x02\xed\xab\x4b\x7a\x92\x59\x96\x5f\x69\x6c\xe4\x42\xdf\x51\xb7\x06\xf1\x61\x48\x22\x7d\x6b\x80\x1b\x3c\x98\xbd\x2c\x90\xe2\x8e\xc5\xe4\xc0\x89\x16\x0a\x9b\xbc\x05\x9b\xdc\x61\xc3\x24\x36\x39\x52\xd5\x98\x3c\x9b\x25\x46\x1d\x7a\x19\x06\x47\xe6\x42\x3e\xc9\x01\x2b\x74\x08\xdb\x57\xee\x15\x71\x4c\x95\x57\xcc\x49\x37\xae\xa0\xeb\xa1\x2e\x74\x0a\x8c\x9d\xf2\x87\x94\x05\xd4\x11\xb3\x69\xbf\x03\x4f\x60\xb2\x37\x11\x2e\x8e\xc8\x35\xe1\x28\xcc\x71\x30\x77\x6c\x63\xaa\xc5\x29\x9a\x8f\x21\x44\x17\x44\xa4\x0a\xed\x31\xa5\x25\x0b\xf5\xab\xb2\xcf\xa9\x2f\x8a\xd1\x94\x3b\x9e\xfa\x4d\x20\xdf\xa0\xa7\x9e\x7f\xfb\x80\x61\xcd\xd5\xb0\xbe\x85\x5b\xcc\x36\x22\x0a\x4b\xc4\xf5\xc6\xd4\xc1\xd0\x4b\xc1\x03\xa2\xee\x0d\x96\x8d\x83\xb0\xe3\xe0\x5a\xc2\x62\x45\x6b\xad\x03\x25\xcc\x40\x55\x9b\xb2\x03\x25\x56\x0e\x94\x68\x1b\x28\x59\x21\x40\xa5\x6f\x59\xfa\x87\x56\x26\xfc\xb7\xa6\x4c\x90\x3c\xb7\xd6\xd8\x10\xac\x55\xf3\x31\x2f\x5b\xb3\x98\x74\x08\x6c\x2c\x01\xbd\x0c\x5c\x30\x1f\x18\x35\x72\x77\xd7\x87\x14\x65\xd6\x15\xb7\xc6\x69\x9e\xfe\x76\x74\xb6\xfb\xef\xce\xde\xc9\xc9\xf1\x49\xdc\xf9\xff\xe8\xa5\xc7\xc9\x74\x0a\x9a\x5f\x65\x1e\x17\x63\x39\x3e\x73\xeb\x28\xf7\xc1\x50\x0b\xe1\x7d\x2b\x84\xfb\xbb\xda\xa0\x37\x54\x4c\x45\x1f\x41\xf0\x73\x75\x49\x29\xeb\xdd\xaa\x14\xcd\x61\xa0\xb9\xd5\x40\x4a\xc3\xfa\xea\x52\x29\xe7\x27\x69\x11\x06\xb0\x3f\xa0\x1d\x5b\x5a\xfd\x46\xf1\x09\x1c\xd1\xba\xe3\xf3\x3c\x23\x45\xf1\xa5\x9d\x57\x50\xfe\x34\x02\xdc\xd7\xc1\x0a\x35\x5a\xa8\xe5\x13\xe0\x86\x42\xaa\x27\xa2\xa3\x20\x7d\x56\xf7\x25\x8c\xcf\xee\xfc\x93\x95\x9d\x57\xa6\x1d\xc5\x4c\xcb\x41\x4d\x5a\x9c\xeb\x5b\x0d\xd7\x3d\xdc\xaf\x4e\x87\xbc\x46\xad\x7c\xc5\x74\xc8\x88\x68\xcc\x05\xc3\xce\xa7\x04\xbe\x7b\x1d\x35\x7e\xa2\x01\xee\xe1\x9e\x7f\xa1\x92\xdb\x3e\x51\xa3\x56\xd2\xcc\x36\xc5\xe7\x8d\xf1\xc0\x39\x74\x4a\xa3\x40\xd2\x91\x3f\x20\xfa\x02\xde\xc4\x8f\x37\xaa\x3b\x01\xa9\x3e\x3e\x92\x5b\x70\x45\x1c\xf4\x86\x83\xde\x70\xc7\x23\x20\x1f\xf4\xe5\x2b\x34\x8c\x07\x4a\x87\x8c\x86\xa8\x2e\x88\x01\x91\x11\x6e\x8c\x83\x28\x4b\xb8\xed\xb7\xb9\x5b\x24\xdc\x1f\x94\xf1\x52\xf5\xc6\xdf\x8a\x0e\xd6\x02\xa7\xef\x4c\x1b\xf6\xcf\xf6\x4e\x74\xa1\x1f\x9e\xc8\x17\xe0\x88\x56\x33\x08\x50\x85\xa0\xcc\x77\x50\xe6\x64\x6f\xf7\x1f\xf5\x42\xaa\x22\x6e\x19\xea\x27\x9e\x3d\xc8\x3d\xa6\x07\x1a\x32\x34\xf5\xd4\x13\x51\x1e\x60\xae\x50\x99\x49\xd6\x74\xa1\x3e\xa3\x94\x1d\x83\x1d\x4f\x9a\x6f\x6b\x63\xf6\x2f\x5d\x66\x0e\xd2\x43\x16\x9b\xcb\x85\x37\x00\x8f\x25\x8e\xe1\xc6\x30\x4d\x7a\x2f\x52\x17\xc6\x2c\x35\xf1\x41\x8a\x24\x1f\xa4\x2a\x2e\xc8\xd5\x9c\x8e\xe5\x71\x55\x74\xbb\x81\xef\x15\x07\xef\x9a\x66\xad\xcb\xb1\x1d\x33\x52\x74\x72\x26\x3a\x22\xfd\x28\x45\xb5\xdf\x3f\x3c\x5a\x48\x81\xbc\xfc\xfd\x43\x87\x81\x55\xc6\x07\x7b\xe3\xe8\xa6\x27\x1d\xa4\xad\xb7\x80\x2b\xb6\x08\x3b\x99\x9f\xd9\xc9\xcc\xca\xd2\xdf\x2e\xc0\x42\xb0\x87\xf0\x6d\x63\x2e\x29\x8b\x9a\xef\xe5\x52\x74\x8b\x71\x5b\x6e\x6d\xdb\xfa\xce\x67\xfb\x3a\xe5\xf5\xa3\x42\x9b\x09\x28\x5f\x30\xbc\x70\xad\xca\x65\x4f\xed\xb2\x67\xf8\x3a\xcc\xf1\x92\xed\x18\x0d\x4b\x6b\x17\xd7\xb2\x57\x1b\x5c\x9c\x66\x02\x7b\x61\xeb\x16\x9e\x49\x81\x33\x00\x95\xb4\xd1\xca\xee\x09\x09\x73\x20\x96\xac\x52\x87\x2e\xc7\xf9\x28\xa4\x36\xd1\x21\x2d\x7d\xf5\x82\xf5\x4d\x93\x54\x6f\xdc\x2e\xe2\xaa\x40\xdf\xf4\x26\x4b\xd5\x45\xa2\xf0\x64\x7b\x73\x95\xc4\x81\xc8\x7c\x65\xc7\x74\xc8\x82\x6e\x17\xd4\xea\x6d\xdd\x34\x69\xac\x54\x1f\xa9\xac\x68\xee\x71\xd9\x66\x92\xfc\xe1\xd2\x37\xaa\x64\x07\x51\x14\x15\xc3\x44\x78\x37\x8e\x79\xf3\xc6\x31\x6d\xe9\x49\xa1\x64\x7e\xde\xd2\x13\x42\xa0\x2b\x6d\x1c\x57\x09\x8e\x52\xef\x21\x68\xc2\x2b\x13\x65\x06\x8a\x99\xd0\x41\xba\x6c\xc2\xcb\xb2\xe2\x27\xf4\x5f\xcd\xda\xbd\x5f\x7e\x4f\xa4\x02\x42\xd0\x91\x80\x18\xb0\x2b\x6e\x8c\x2a\x77\x44\x78\xe9\x25\x92\xb1\xc7\x93\xb5\x0f\x69\x21\x77\x15\xeb\xed\x32\x55\xbf\x13\xe2\x5f\x30\x19\xaf\x53\xcf\xf7\xdc\xc0\xc5\x69\xe2\xae\x3f\xe9\x7a\xd7\x9f\x54\x5d\x7f\x36\xb2\x9f\x40\x22\x5a\x1f\x0b\x64\x1b\x57\x49\x25\xbc\x2b\x2c\x36\x94\xdc\xb3\xfa\x54\x96\x8a\x84\xaf\xfe\x1f\x26\xa1\x56\x46\x82\x85\xd1\x00\x6c\x8c\x36\x9a\xca\x4c\x97\x85\xf4\x0f\xf9\xf5\x29\x10\xc5\xae\xef\x34\xe1\x24\x64\x83\xfe\xb0\x69\x87\x34\xd1\x01\x8f\x40\x55\xb6\x96\x25\x52\x6a\x59\x9d\x0d\x9e\xa4\x38\x4f\xd8\xe0\xc9\x10\xd3\x84\x0d\x9e\x0e\x4b\x23\x6f\x6e\x52\x52\xc1\x49\x1f\x1a\x9e\x65\x94\x67\x3e\x5f\xb8\x72\x3c\x29\x70\x0e\x1e\xdb\x98\xc2\x1f\xad\xda\xab\xdc\x4c\xe2\xb9\x37\x73\xee\x57\xc3\xc3\xcc\x11\x4b\x66\x4e\xa6\x9d\xf7\x35\xe9\x9b\xf3\x48\x11\x7e\xee\x5d\xf7\x66\x3b\xd5\x09\x95\x0d\xbd\x52\x7f\x78\xe2\xed\x2f\x15\x1f\x50\x6d\x94\x48\xb0\xb5\x53\x24\x37\x9d\xcc\xa0\xa7\x2e\x54\x7f\x55\x17\xaa\xf8\x51\x32\x08\x60\x66\x06\x38\xa0\xe3\x00\x07\x60\xf3\x1b\xe0\x40\x92\x20\xc0\x01\x08\x7a\x38\x28\xc4\x6d\x26\xff\x4e\x38\xb9\x0c\x86\xf8\x3f\xc9\x20\x18\xd3\x6b\xf9\x61\x96\xe6\x01\x0e\x66\x01\x0e\xd2\xc0\x4b\xbb\xfb\x2f\xcf\xc0\xae\x71\x1c\xec\x90\xf8\x3f\x03\xe2\x69\x5d\x7e\xbe\xa7\xf4\x23\x59\xfa\x57\xa5\xff\xc2\x24\x79\x29\xf9\xa4\x27\x98\x0c\xfa\x92\x61\x54\xef\xfb\x4f\xe1\x3c\x93\x87\xe6\x77\xee\xe5\x13\xfb\xf2\x99\x7d\xf9\xcc\x64\x33\xf3\x2c\xea\x86\x09\xc1\x4c\x1b\xd0\x79\x73\xd6\xba\x46\x3d\x48\xb5\xcb\x76\xd8\x32\xd5\xae\xbd\x1a\x54\xca\x5d\xe6\x2b\x77\xef\xd1\x7c\xe7\x6a\xd3\xa7\x0d\xaf\x84\xef\x7e\xb0\x5e\x09\xc3\xe5\x3a\x60\x4d\x10\xa3\xb4\xc5\x7c\xa8\x09\xd3\xc7\x3f\x83\x6f\x2f\x56\xb7\x7b\x7c\x87\xc7\x3a\xf6\x81\xaa\xf2\xa4\x51\xa5\xdf\x7b\x7e\x4f\x9d\xfe\x77\x95\x3a\x9e\x20\x20\x14\xca\x4f\x14\x80\xcd\x7e\x1d\xc2\xd0\x36\xfb\x64\x4d\x10\xbd\xa5\x20\xfa\xdf\xdf\x03\xe2\xe9\xfd\x58\x3c\x5d\x13\xc4\x0a\x2c\x7a\x56\x4b\x2a\xa7\xed\x73\x2c\x97\x86\xa3\x54\xbf\xa2\x43\xfd\x51\x0b\x01\xba\x94\x05\xf2\xdc\xa2\x81\x73\x59\xb6\x65\x95\x54\x67\x9c\xcf\x17\xc1\x54\x23\x9a\x8f\xf0\xcc\xf7\x6a\xc6\x44\x5a\xd9\xb7\xb0\xc6\x46\xaa\x02\x2b\x35\x6e\xcf\x7b\x72\x9e\x35\x62\x01\x08\x13\x08\x20\x37\x15\x9a\x77\x88\xdc\x77\xdb\x6f\xd8\x2c\x41\xc3\x8b\xba\xad\x53\xb5\xd9\x46\xc8\x00\x51\xb7\x13\xf3\x5b\x5b\x12\x2f\x00\xec\x26\xef\xe1\x1c\x1d\x9d\x7c\xb8\xc0\x39\xf2\xa6\xe5\xe3\x66\xaf\x74\x43\xa9\x35\xf3\x7c\x08\x0c\xe3\xfa\xca\x85\xba\xd8\x50\x53\x29\xa8\xab\xe7\x67\xb8\x08\x73\x77\x11\x85\xd3\x30\x8f\xc8\x75\x9a\x9d\x82\xcb\x4b\x81\x30\x0b\x39\xaa\x3b\xf4\x38\xdc\xfc\x0b\x08\xe5\x6d\x64\x3f\x39\x6d\xbf\xfc\x50\x35\xed\xb0\xeb\x40\x2d\xa5\x21\xec\x9b\x80\xcf\xf7\x38\x0d\x45\x1d\x03\x7f\x62\x63\x93\xa7\x0c\x8b\x1a\xeb\x5e\x35\x06\xc6\xc6\xe8\x97\x54\x8c\x7e\x4d\xcf\x7b\xfe\xbd\x9e\x5a\x74\xce\x5b\x45\x8c\x33\x7a\x61\xfc\x54\x82\x51\x3a\x17\x94\xcd\x8b\x6d\x15\x00\x27\x28\x1d\x1d\xec\x06\xf8\xa4\x15\xad\xc6\x72\x12\x72\x39\x3d\xeb\x63\xa1\x2e\xbe\x1f\x80\x84\xe0\xf3\x42\x40\x90\x92\x06\x12\x1a\x85\xef\xf5\x09\x56\x35\x04\xc7\x44\xfb\xbf\xfc\x96\x6c\xf7\x35\xbf\xfd\x8f\xaa\xb3\xb7\x32\x33\x53\x91\xac\x5c\xb8\x10\xcd\xbb\x43\x0c\x0b\x1d\x23\xd0\x73\x83\x4a\x54\xee\x54\x63\x35\x33\x56\xac\x8e\xb3\x16\x6e\x37\x35\x77\x86\x7e\xd6\xc4\x74\x6c\xed\xa9\xec\x9b\x0d\xf7\x98\xfc\x06\xea\x26\x87\x56\xcc\x35\x1f\x5d\xc2\xc9\xfa\xcf\x90\x63\x5a\x4b\x88\x08\x41\x32\x4f\x81\x7a\x05\x0a\xad\x85\xab\x17\x14\x65\x9c\x30\xb0\xa9\x35\x61\x87\x2d\xbf\xf0\x77\xdf\x43\x02\x16\xa5\x1f\x4e\xea\x1f\xa1\xf0\x08\x84\x21\x6c\x21\x5e\x28\xa2\x14\xc0\xc6\xc1\x93\xdc\x2c\xf6\xae\xd3\x2c\x16\x91\x7e\xf2\xdd\x3d\xfe\x69\xe8\xed\x22\x99\xfe\x8a\x69\xf2\x8b\xe4\x10\x90\x4e\x5b\x49\xfc\x0c\x76\x6f\x43\xaa\x33\xd6\x01\x65\x07\x6c\x88\x95\x10\x81\xbc\x30\x3f\x9a\x23\x93\xc5\xa6\x54\x84\xdc\xf2\x92\x13\x92\xce\xb0\x80\x78\xa4\x1e\x12\xff\xf6\x03\x8d\xd4\x8d\x0a\x76\x7c\x72\xeb\xfb\x60\xe5\x0b\x57\x59\xc3\x65\x4c\xaa\xc4\xc9\x7d\xe2\x08\x5c\x71\xa2\x8b\xdc\x8f\x12\x69\x91\xe5\xff\xb4\x07\x9d\xad\x48\x8e\x4a\x82\x21\x3b\x7e\x6e\x2b\x82\xe2\xc1\xb0\x54\x01\xb1\x2b\xc1\xf7\x54\x55\xcd\x0e\xab\x1f\x03\x32\x54\x16\xb9\x26\x69\x93\x77\x6b\xa0\xc3\x7b\xd5\x8c\x90\x44\xb7\x4b\x3a\x34\xef\x88\xf2\x86\x8a\x89\xb3\x9c\x35\x5b\x74\xad\x12\xb9\xe9\xfc\x9f\x30\xdf\x31\xd7\x1b\xf4\x2a\x47\xe1\xa2\x94\xc7\xdd\x80\x0c\x63\x51\xa2\xd8\x3c\x48\x8c\x3b\x93\xb4\xd8\xcd\x6f\xbd\xc0\x99\xba\x51\x87\xb1\x62\xa3\x09\x49\x34\xe8\x6a\xae\x12\x41\x96\x5a\x77\x13\xe2\x05\xc7\xad\xc8\x7c\x03\xeb\xd8\xd1\x7b\x91\xba\x9c\xa8\xa9\x0a\xe9\x3f\x48\x87\xc3\xe4\xdf\x21\x1b\xa4\x43\xb7\x90\x4c\xc7\xbc\x39\xc3\x6d\xd8\x42\x29\x1d\x19\x93\x11\x4f\x6b\xcc\xb7\x02\xdc\xb9\x98\x8b\x8e\x98\x10\x4e\x3a\x37\xf2\xbf\x9c\x75\x2e\x39\x21\x9d\xeb\x94\x53\xb9\x6d\x14\x40\xda\x09\xe9\x98\xf0\x29\x5a\xa7\xdc\x6a\xdc\xd2\x50\xbd\x3d\x5a\xf0\x12\x77\xae\x20\x00\x6f\xcd\x7b\x9c\xa0\xf2\x83\x0a\x4a\x07\xb1\x72\xf4\xd4\xce\x89\xf5\x54\xd7\x94\x76\x8e\xce\x0d\xef\xf1\x7b\xc1\x3b\x5a\x68\xb8\x66\x14\x9f\x26\x4e\xbd\xd9\xed\x92\xc1\x93\xa1\xb3\x19\x87\xa4\xa6\x2d\xd1\xa2\x89\xb2\xd4\x79\x5a\xca\x15\x67\x0d\x70\xa4\xe8\x31\x54\xa6\x51\xb6\x31\x4a\x2a\x31\xec\x35\xe4\xe4\x89\x6c\x09\x60\x3c\x29\xeb\x11\x5e\x08\xae\x87\x6c\xa9\x44\xe7\x64\xa4\x4d\x5b\x00\xfe\x5d\x6d\xea\x02\x01\xe9\x7d\x40\x61\xa0\x7c\xc0\x9c\xca\x40\xd5\x51\x41\x55\x55\x31\xef\xa3\xae\xa7\xdd\x35\x53\x11\x13\xac\x5e\xc1\x72\xd0\xa1\x90\xed\x46\xb8\xd0\xc5\x81\xf1\x93\x50\x4d\x0c\x44\x9c\x27\xbd\x17\xb9\xb3\xa2\x35\x31\x9e\x25\x44\x6a\x20\xb2\x32\x11\x83\x7c\x88\x53\xc8\x2f\xb8\x4d\x37\x88\x3a\x07\x20\x91\x67\xe9\x07\xff\x22\xb5\x8c\xad\x6d\xe6\x4b\x44\x9b\x23\xa9\xbb\x5f\xee\xef\xdf\x05\x71\xf6\x99\x6d\x51\xa5\xed\x7a\xb4\xd2\x76\x6e\x3c\xd2\xf5\x4d\x2f\x66\xb3\x98\x60\x30\x13\xc5\x6c\xf6\x24\xe6\x98\xcd\x9e\xc6\x79\xe9\x99\x63\xdf\x57\xc3\x2b\x2b\x96\x97\x2d\xe3\x96\x4f\x2a\x8e\x0d\xdd\xa8\xd8\x97\x59\x21\xb9\xca\x42\xc9\x69\x7d\x77\x57\xe5\x27\xf4\xbb\x8a\x4b\x93\x7e\x57\xf3\x4b\xd1\x6f\x41\xda\x34\xb5\x5a\xe4\x08\xfd\xa9\xc1\x3d\xcb\xf7\xe0\x83\x4f\x13\x7b\xbf\x6d\x2f\x99\x5b\x50\xf7\xa4\x62\x0d\x12\xd8\x2a\xfd\xec\x49\xbe\xfa\x8d\x6f\x81\x54\x7d\x55\x33\x78\xf1\x11\xf1\xae\xd1\x57\xe1\xa2\x2e\x56\x34\x54\xed\x90\xa9\x7f\xb5\x38\x26\x1a\x14\x3d\x6f\x4a\xfb\xca\xfa\x4d\x2e\xed\x47\xdd\x12\xc6\x14\x34\xae\x8a\x3e\xfa\xfa\xee\xde\x1a\x55\x6c\xb6\xe0\xae\xd6\x82\xad\xd5\xb8\xad\xd9\x33\x86\x92\x9d\x60\x8b\xa0\x0d\x9a\xe8\x1a\x65\x5d\x31\x65\x66\x26\x75\x53\x52\x7d\x33\xf3\x92\xfa\x73\x55\x33\x05\xd9\x8a\xad\x49\x85\x5f\x93\xa8\x70\x15\x6a\x59\x6d\x4f\x9a\xf7\xd1\x29\xd1\xda\xa3\xdc\x87\x83\xa1\xde\xcc\xc0\x02\x04\xf6\x32\x65\x0b\x62\xf8\x0e\xc3\x41\xe9\xf8\xf6\x4f\xe5\xb1\xe4\xd7\x30\xb9\xf7\x4b\xcd\x62\xb9\x6d\xae\x56\xf3\x3b\xdc\xef\x3d\x79\x66\xa2\xdb\xd7\xc3\x37\xbb\x23\x9a\x44\xd3\x34\xcb\xd8\x28\x34\xb9\x76\x78\x4b\xda\x54\x3e\xa0\xc3\x8d\x96\x44\x98\x4c\x3b\x6b\xbc\xcb\xd2\x11\x99\xb0\x6c\x4c\x78\xc8\x50\x6c\x52\x85\x36\xca\x29\x76\x58\x16\xd1\xb7\x79\xcc\xde\x38\x91\x48\xca\xa8\xc5\xe4\x50\x61\x93\x43\x78\x48\xf0\x46\xa9\x90\x57\x07\x8e\x77\x36\xad\x1e\x69\x74\x3e\x99\x85\xfa\x19\x7b\x9f\x4c\x04\x40\x5e\xc6\xbc\x54\x14\xc4\x1c\x47\x51\xa4\x76\x4f\xc8\xdf\x42\x8b\xc3\x74\x34\xa1\x39\x39\x9e\x21\x29\x6b\x9a\x0c\x36\x90\x94\x3a\x54\x77\x50\x26\xfa\x26\x4f\x73\x93\x71\xbb\x86\x49\x75\x10\x38\x0c\x82\x6c\x88\x2a\xdb\x4a\xf6\xa5\xf0\x7a\x12\x18\x83\x38\xa4\xb6\x52\xee\xf8\xcf\x6e\xb7\x41\x7b\xf9\x2e\x33\x1b\x81\x36\xdb\xd2\x61\x42\x55\xea\x4c\xb5\xb2\xf5\x31\x19\x56\x9a\x95\xfc\xfa\x56\x8e\x45\x04\xd2\x1f\xc2\xdb\xfd\x7a\x62\xec\xb6\xb3\x47\xdc\xdd\xb5\xcc\x15\x9b\x2e\x56\x45\x11\xbe\x60\x2c\x23\x69\xcb\xf7\x4d\xb5\x68\xfb\x71\xaf\xf5\x16\xca\x65\x9d\x55\x48\x85\xc2\xd7\x80\xdb\xaf\x3d\xe7\x92\x0e\xd6\x3f\xca\x75\xa1\x12\x60\xd3\x39\x25\xa4\xca\x46\x4a\xf7\x52\x99\xd8\x57\x42\x45\xb8\xa2\xfe\xeb\x7a\x0d\x25\x29\xc7\xb6\x9b\xf0\xd6\xc5\x7f\xa9\x98\x79\x03\x81\xf7\xcd\x37\x54\x03\xe5\xe2\xc0\xc4\xf0\xbb\x1a\xe6\x53\xbd\xd3\x9d\x80\x67\x15\xd3\xb3\xd9\xc0\x2f\x30\xed\x51\x68\x69\xa5\x5b\xd1\xcd\x28\x03\x7a\xed\x9a\xa0\x03\x3a\x72\x92\x8e\x26\x10\x06\x25\xd4\xdf\xe1\x2e\xd9\xbe\x0e\xd6\x76\x22\x03\x49\xa3\x32\xc7\x6a\x51\xeb\xbd\xed\xd4\xcc\x45\xc3\xd9\xe9\x3d\xad\x3a\x43\x2d\xd7\x57\x9f\xa2\xa8\xac\x38\xfb\x37\x36\x6b\xb5\xd7\xc8\x8d\x99\x41\x59\xe7\xf0\xdf\x52\x94\xcd\x42\xa4\x99\x36\xbf\x21\x5f\x3e\x9f\x9b\x20\x4c\xd6\x5c\x45\x2b\xc0\x7a\x56\x01\x76\x52\x6e\xb8\xdc\x68\x2a\x84\xc8\x0b\xee\x24\x6a\xbe\xb5\xd5\x34\xd5\x27\xbe\x1b\x96\x86\x68\x6a\xf8\xe6\x22\x16\x8f\x91\xc7\x92\x2f\xac\x4f\x47\x4c\x9c\x7f\xc7\xdd\xdd\x66\x1f\x7b\x5a\xac\x78\x0c\xda\x02\xc5\xe6\xc7\x5a\xb9\xa0\xb9\x7e\x6c\x43\x36\x11\xab\x88\xc3\x92\xbc\xb6\x9c\xd6\x2c\xd8\x54\x03\x2e\x77\x25\xa9\x08\xb5\x52\xa6\x25\xce\xeb\x40\xab\x1f\x76\xac\x6a\xa2\x26\x59\x4c\x3c\x5e\x56\xdf\xa2\x87\x02\x13\x5f\x5e\xa2\x26\xfa\x87\x17\xd8\x49\xef\xe9\x69\xd5\x3b\xb3\x28\x13\xe0\x2a\x19\x0c\x90\x4b\x12\xae\x3c\xb5\xb9\xf3\xd4\x4e\x9e\x20\x3e\xc8\x86\x83\xde\x30\x09\xfe\x27\xd8\xd2\xcf\xda\xe3\x4c\x6b\x66\x53\x67\x8d\x32\x57\xa3\xd5\xd0\x0f\x17\xab\x02\xc5\xb6\xa8\x88\x95\x44\x6b\xf2\xa4\xc6\x39\x44\x86\xc1\x73\x9b\x8a\xfc\x0f\x2f\x3a\x55\xbd\x2d\x62\xda\x6a\xf1\x22\xd6\x7e\xba\xc6\x8b\x58\x7b\x7e\x79\xaa\x32\x49\x19\x0e\x01\xe7\xcd\x80\xdc\xdd\x91\xc8\x8b\x13\x69\xb6\xce\x86\x2e\x9a\x2c\x6d\xad\xa9\x88\x4e\x2d\x8a\xa5\x71\xe9\x1b\x58\xcf\x84\xa2\x57\xd5\x05\x6b\xaf\x85\xef\xf4\xb7\xa1\xd3\x62\xcd\xcb\xa4\xd8\x20\x91\x0b\x5b\xd9\xed\x66\x5e\xd0\xa2\xa5\xb7\x48\x2d\x98\x49\xf2\xba\xba\xfd\x5e\x0f\x8c\x85\xfc\x10\x97\x3e\xec\xef\x7e\x84\xcf\xd5\x98\x96\x7e\x81\xe7\x3f\xe2\xde\x5d\xaa\x4c\x93\x9c\x65\x94\xea\x80\xab\x59\x47\xb9\x5f\x41\x42\x75\xe0\xc7\x9e\xa9\xa6\x63\x7a\x0e\x86\x1b\xae\xcc\x8f\x4f\x2c\xd0\x91\x16\x5d\x15\x71\xe2\x1e\xa6\x05\xf0\xd4\x70\x45\x66\xb7\x19\xe5\xfa\x38\xf7\x5d\x1f\x17\x2a\x5c\xc0\x7c\x30\x1e\x9a\xe3\x70\x12\x8d\x26\x29\xdf\x15\x61\x0f\xe9\x33\xb1\xab\x1c\xed\x2e\xb5\x6c\xfe\x22\xbc\x4c\x82\x2e\x0c\xb8\x64\x18\x26\x3b\x79\x9c\x82\x1d\xcb\x44\x87\x1f\xea\x23\x84\x76\xc2\xcc\x44\x39\xb8\x6c\x22\x38\xde\xea\x3b\x14\x25\xfd\x63\x57\x5c\xdf\xa3\xdd\x57\xc3\xf7\xa2\xfb\x9f\x20\x96\x5b\x2d\x43\xea\xdd\x75\xca\x07\x33\x3c\x1d\x26\x0c\x5f\x27\x13\x7c\x95\xcc\x6c\x46\x80\x6b\xf4\x02\x72\x19\x5d\x75\xbb\x61\x56\xdf\x5d\xa7\x83\xab\xe1\x3d\x2d\xf7\x4b\x84\xca\xd2\xd5\x7c\xfa\x03\x36\xf4\xdc\xea\x63\x5f\xf9\x97\x22\xa7\x5a\xe9\xc7\x3d\x2f\xda\xd2\x6d\x32\x72\xd1\x96\x6e\x5f\x26\xbd\x17\xb7\x3a\xda\x92\x69\xf2\xdc\x36\x78\x53\x26\xa3\xc1\xed\x70\xe3\x66\xc7\xc3\xd6\x4a\x4c\xf8\x1c\xa1\x38\xf3\xa3\x6b\x9d\x3b\x03\x2d\xaf\x42\x45\x06\x96\x1c\xe4\xca\xf9\xdb\xef\x3d\xb5\x13\xcb\x9f\x9f\xd8\xc4\xd5\x5a\xbe\x36\xbe\xaf\xd5\xe9\xd5\xd6\x2f\xc2\xde\xa6\x3e\x93\x9b\xfa\x3d\x91\x0f\x6a\x6b\x35\x35\x9b\x48\xd6\x8c\x88\x74\xef\x35\x13\x6f\xbb\x66\xb2\x51\x94\x9a\xe1\x93\xe4\x52\x7e\x8a\x8b\xd0\x9d\x75\xfa\x65\xbf\xe5\x36\x4e\x47\xfc\x5d\x17\xf9\x36\xab\x46\x5f\x79\xb3\x74\x87\xe5\x78\xd9\x6d\x38\x6b\x6c\xb0\x85\x0e\xab\x98\x25\x9b\x9b\x29\x9e\x27\xc0\x37\x93\xda\x9e\x7e\x77\xb7\x19\x6e\x52\xe5\x30\x47\x07\x3d\xa3\x10\x44\x78\x94\xa4\x11\x68\x96\x03\xb5\xd4\x5d\xd2\xd4\xb5\xb7\x6b\x67\x8f\x1a\x2c\xb9\xca\xd7\x28\x8f\x5c\x2f\xb4\x37\xdb\x0f\x06\xc4\x35\x09\x47\xf5\xbd\x34\xc3\x73\xec\x22\x5f\x99\x2b\x15\x92\x14\x3b\x83\x9b\xb0\x68\x44\xea\x6b\x84\x96\x2b\x96\xb8\xe6\xa8\x10\xed\x6d\x9a\x0f\x73\xfe\x38\x9b\xdd\x1f\x9f\xbb\x2d\xbd\xac\x9d\x52\x5e\x34\x44\x9d\xf0\x47\x9b\xd8\x18\x69\x79\xa0\xcf\x19\xec\xe2\x23\xc2\xa9\x41\x0c\x04\xcf\x79\x59\x1b\x5a\xd2\x10\x21\xec\x8c\x2e\xed\xd1\x80\xfd\x93\x00\xd0\x78\xee\xfd\xe8\xff\xa8\x0d\xb5\x7f\xb4\x04\x85\x78\x3b\x7d\xf3\x33\x3e\xc1\x10\x20\xa5\xff\xdc\xbd\x50\x16\xbc\x6a\x2c\x7f\xfc\xd1\x87\x66\x77\x06\xec\xef\x08\x3a\x9c\x23\xd6\x2b\x1e\x61\xe6\x05\x76\xf4\x75\xc2\xff\x0e\x2d\x9f\x58\xbb\x9d\x32\x57\x2d\x17\x64\xe9\x8d\xdf\x34\xa5\xb9\xb9\x6d\x31\x77\x8c\x3f\xcf\x53\x3e\x26\xe3\x5d\xb8\x69\x34\x97\x7f\xe6\x16\xb4\xfa\x91\x4b\x61\xa3\x71\x39\x59\x93\x37\x5a\xe1\x42\xc5\xfa\xd5\x6a\xad\x62\x6b\x9b\xb2\xa2\x7a\xaa\xc4\x1b\x5c\xde\x52\xbc\x02\x96\x17\x53\xd2\xe5\x33\x03\x43\xf0\xef\xbd\xa5\xb2\xd9\xc7\xf2\x5f\x65\x0e\x9e\x93\x6a\x10\xca\x1f\x9e\x23\xbc\x17\xf2\xe4\xe5\x82\x87\x7d\x58\x47\x04\x2c\xd5\x75\xa0\xc1\x67\x4f\xd1\x30\x96\x7f\x7f\x40\x08\xf3\xb0\x87\xcd\xee\xf8\xfc\x89\xdd\xfe\x3e\x63\x07\x78\xfe\x5d\x73\x61\x1b\x6c\x6d\x13\x2b\x96\x1e\xf6\xd7\xdc\xb0\xb6\xe0\x86\x12\xd3\xa7\x16\x8c\xe9\xc9\x33\x04\x1f\x9e\x35\x3e\x7c\xa7\x3e\x7c\xd7\xf8\xf0\x3d\x1a\xa2\xd2\x27\xde\x0d\x71\x37\xad\x9f\xe4\x62\xbe\x25\x08\x73\xf5\x08\xee\x0e\x24\xdc\x84\xb8\x84\xd5\x57\x7d\x54\xb9\xa0\xba\x20\xca\x0e\x12\x95\x36\x54\xfd\x05\x01\x9e\x6e\x8f\x24\x9e\x5c\x56\x13\xc5\x54\xe8\x1e\x25\x89\xc1\xb3\x95\xbf\x16\xa5\x92\xbb\x7c\x67\xc0\x4f\x95\x38\x23\xda\xe4\x2d\x57\x99\x03\x36\xf6\x43\x1b\xb4\x4f\x5f\x4c\xef\x11\x1b\xbc\x4f\xe7\x0b\xc8\xb1\x4d\x9e\x50\x96\x58\x84\xc8\xa4\x34\xb7\xd7\xb5\xe4\xff\xa7\xee\x5d\xbb\xdb\xb6\x95\x46\xe1\xef\xfa\x15\xb2\x56\x1e\x2d\x62\x1b\x56\xa5\x24\x4d\x53\x39\x88\xb7\xe3\x38\xa9\x53\x5f\xb2\x6d\xa7\xdd\xad\xaa\xe3\xd2\x12\x64\xb3\xa1\x48\x6d\x10\xb2\xe3\xca\xfc\xef\xef\xc2\xe0\x0e\x92\xb2\xd3\xee\xe7\xac\xf7\x7c\x68\x6a\x11\xb7\xc1\x00\x18\xcc\x0c\xe6\x22\x9f\x69\xe5\x3b\x58\x25\xd2\x52\x52\xd5\xc1\x3a\x81\x11\xa4\x9e\x4d\xc5\x3c\x4e\xb2\xab\x76\xc1\xa7\x4e\x02\x18\x45\x00\x4e\x2a\x04\x40\x1f\xff\x7c\x4a\xcd\x09\xd7\xde\x5e\x2a\x75\xf5\xcf\x2c\xe1\xf4\x24\x4b\xef\xf6\xac\xd3\x99\xa8\x27\x80\x55\x55\x7e\xa0\xf1\xe2\x60\xbe\x48\x65\x41\x68\xb8\x68\x52\x87\x82\x82\x86\xdc\x52\x9d\x0c\x76\x5d\xb6\x82\x13\xaa\x5e\xa9\xce\x68\xed\x03\x71\x08\xa5\x4c\x16\xf1\x28\xf8\x60\xb2\x10\x36\xf0\xab\xe1\x5d\x9b\x7c\xe1\x8c\xb6\x9a\x72\x28\xd4\x64\x57\xf5\x82\xdc\x18\xd2\xab\x14\x4d\x32\x39\xa1\x09\xb3\xad\xcf\x48\x6d\xd2\x0f\xaf\x21\xb2\xba\x87\x48\x9c\x1b\x5e\x8d\x11\xe7\x09\xa5\xdc\x0b\x6a\xab\x44\xfa\xac\x34\x09\x20\xcf\xeb\xb1\x2f\x79\x20\x0d\xb5\x67\xfd\xd1\xf2\xd5\x10\x98\x11\xa3\x77\xd0\x19\x21\x71\x46\x98\x4d\x23\xa6\x84\x1d\x65\x32\x0e\x3f\x80\x63\x90\xcf\x55\x64\x6b\x40\x08\xc9\x76\x54\x66\x55\x53\x7b\x98\x6d\x0e\xaa\xe6\x28\xab\x8a\xd1\x05\xd6\x22\x2d\x2b\x5d\xbb\x14\xab\xda\xf0\x66\xe0\xc5\xf0\x36\x86\x28\x70\x4e\x71\x8e\x63\x5c\xe0\x94\x4c\x54\xfa\x2a\x89\x03\xc1\xca\xfd\x10\x51\x9c\xa2\xd6\xbb\x68\x82\x23\x95\x76\x50\x16\x62\x65\x2a\x1e\x4e\x0a\xd7\x44\x4a\x8d\x62\x22\xe8\xed\x00\x17\x44\xd3\xcd\xef\x5d\x86\xe0\xd9\xa0\xc2\x61\xeb\x9b\x22\x46\xb8\x88\x34\xd1\x8e\x15\xfd\x96\xec\xb6\xe3\x85\xa4\xae\x14\xc5\x79\x28\xfe\xe2\x7b\xc5\x58\x18\x1e\xe7\x2a\xca\x03\x23\x2d\x2c\xed\x5b\xeb\x7c\x94\xee\xa2\x2b\x1a\x25\x35\xdd\xbf\x78\x61\xe3\xd1\x62\x69\x34\x1b\x06\x6f\xed\xb8\xb7\x4c\x5d\xf0\x56\xa4\xa3\xf1\x4d\x42\xbb\x96\x49\x68\x2a\x0d\x74\x33\x95\xba\xc8\xa6\x48\x75\xd3\xfb\xfb\xc8\xdf\xad\x53\x5c\x63\x28\x14\xf6\x8d\x10\x9e\x8a\x93\x1f\x24\x4b\x39\x97\x17\xcc\x11\x25\x7d\x7b\x47\x7c\xa4\xd1\x2a\x99\x0e\xb5\x29\xb4\xe4\xbf\x21\x30\xb8\xda\x41\xf0\x24\x37\x49\x13\x9a\xf1\xad\xce\xe6\x11\xdd\xdc\xd4\x67\x32\x99\x0e\x73\xdd\x4c\x0a\x8f\x43\x65\x49\xd6\x8e\x09\xad\x18\x96\x80\xd7\xb7\x71\xed\x48\xee\xef\xa3\x84\x38\x69\x82\x32\x24\x93\x57\xee\x4a\x80\x94\xf0\x32\x4c\xec\x15\x17\x97\xa8\xd4\x8f\x6d\xbb\xf5\x67\x1c\xba\x9a\x1e\x7a\x27\x9d\xd1\x62\x99\x72\xd2\xc9\x3f\x2b\xda\xa9\x08\x01\xdc\x9f\xba\x95\x20\x3e\xce\x17\x95\x8d\xe4\xd0\xd6\x0c\x48\x44\xcb\x39\xc6\x85\xa5\x16\x8a\x8a\xcb\x63\x4c\xec\x81\x56\x80\xc8\x89\x10\x47\x57\x2a\x9d\x4c\xa6\x84\xf6\x92\x69\x88\xe7\xd2\x66\x43\x0a\x74\xe0\xe2\xe3\x8e\xf3\xf7\xd0\x9d\xd7\x87\x28\xc4\x7c\x05\x35\xd8\xe3\x30\x4a\x84\x4a\x87\x02\x7b\x63\x29\xd4\xec\xb8\x3f\xfe\xd6\x68\x7d\x39\xda\xcf\x2e\x82\x83\x31\x3d\xe4\xef\x54\x3f\x0d\xeb\x96\x88\xde\xb6\xcf\xe9\x5f\x99\x79\x25\x35\x9c\x49\xeb\x56\x9b\x12\x0e\x92\xc0\x05\xe9\xdd\xfe\x7e\x6a\xdb\xeb\xbb\x29\x8b\x39\x15\x77\x7e\x5d\x7e\x76\x31\xbb\x49\x44\x21\x29\x96\xaa\xaa\xae\xf4\x30\xaf\x63\x5b\xa2\x62\xa2\x18\x33\xa4\x12\x59\xc5\x11\x75\x3d\xe2\x9d\x6e\xa7\x60\xbd\x27\x3a\x76\x69\x8a\xd7\xad\xec\xca\x2b\x8f\xa8\xe2\x34\x64\x4b\x09\xcb\x2e\xe3\xc9\x2c\x9e\xf0\x82\xcc\x31\xed\xc5\xe6\x57\xcd\x84\xe6\x91\x69\x05\x3d\x9c\xca\x64\xc2\x27\x0b\x95\xbd\x49\xfd\x56\x93\x54\x1f\x35\x47\x64\xcb\x9d\x2f\x2e\x2f\x65\x2b\x98\x4f\xaa\x56\x95\x2f\xd4\xe6\x45\x92\x47\x56\x4b\x37\x63\x94\xfe\x49\xe1\xe5\x1d\x0c\xd2\xb8\x83\xbc\x88\x21\x08\xa4\xaf\x79\x01\x86\xb4\x69\x52\xdd\xf3\x3f\xac\x72\x41\x32\xc3\x46\x28\xaf\xb2\x29\xfd\x72\xa4\x58\xbd\xa3\x78\x11\x39\x75\xe5\x5b\xaf\x74\xc7\x18\x81\x79\x32\x2a\xe5\x4b\x9c\x9f\x7d\x56\xf7\x01\xcc\x8a\x34\x29\xac\x38\xd8\xb0\x6e\x37\x52\xa9\x50\x54\xe7\xca\x14\x60\x6b\x80\x39\xe4\x7e\x84\x94\xd4\x98\x95\xb1\xb2\x5c\x5b\xa9\x44\x00\x34\x88\x94\x94\x38\x4f\x53\x40\xa5\x65\x7d\xa3\x1b\xaa\x7b\xab\x1a\xb1\xb1\x33\x76\x04\x4f\x55\xde\x4b\xb5\x7e\x8c\x2d\xbd\x17\x52\x33\xcd\x8a\x21\x5b\x7d\x63\x9e\x7f\xcc\xf3\x90\x6e\xc9\xe9\xca\x4b\xb0\xb2\xe4\xb9\x5a\xb1\xb8\xf6\x0e\x51\x4b\x46\x05\x37\xfb\x93\x46\x7c\xb5\xef\x11\x05\x4b\x4e\x6d\xf2\xb7\xb2\xf8\x81\x4a\x4e\x63\x75\x06\x55\x54\x0d\x83\xb2\x06\xdb\xb0\x76\x02\xe6\x60\x2d\x36\xca\xc6\x41\x57\x89\x51\xe5\x82\xee\xe2\x2c\xc0\x9a\x2a\x73\xee\x54\x1f\x5c\x90\x06\x6a\x0f\x46\xdc\x0a\x0e\x90\xc4\x8f\xce\xcc\x1c\xee\xec\xc6\x3c\xcc\x8c\x26\xb3\x84\x4e\x77\x19\x2b\xc8\x6a\x94\x8c\x05\x03\xab\xb9\xfc\x23\xca\xe3\x5a\x4c\x0a\xba\xf6\x75\xa8\x76\xd0\xec\x8c\x28\x0e\xc2\x88\x8e\x83\xdc\x3e\x2b\x27\x6f\xb0\x33\x4a\xcb\x5d\x13\xed\x63\x6d\x35\xf2\xd2\xac\x25\x73\xcd\x5a\xd8\x28\x09\xd7\x23\x1b\x25\x63\xd4\x12\x83\x12\xf6\x57\x56\xc6\x81\x07\x19\xe9\xa5\xa8\xdd\x94\x20\x18\x2a\x86\x26\x9f\xcd\x0a\xca\x49\x1f\x1e\xcb\x05\xff\x68\xf7\xfe\x60\x33\x8a\xbe\x7b\xf1\xb2\x6b\xda\x88\x31\x2e\xef\xe2\xe9\x94\x45\x4e\x5b\x84\x5e\xbf\x7e\x29\x1f\xdb\x8d\x09\x8b\xd3\x49\xff\xe9\xf3\x07\x7b\xd8\x19\x0c\x25\x00\x82\x55\xb5\x6d\x9f\x7e\xfb\xed\x83\x4d\xa1\x59\xbe\x18\x04\x47\xb6\xb9\xc5\xe6\x40\xb7\x79\xfa\xf8\x36\x4f\x75\x9b\x67\x8f\x6f\xf3\x0c\xf9\x69\x50\xdd\x88\xea\xf7\xf4\xd5\xab\xa7\x5e\xe6\x53\xa7\x94\xde\xf3\x57\xaf\x9e\xf5\xcb\xf0\x26\x2b\xd4\xa2\x4e\xc2\x45\x05\x6e\x12\xcc\x92\x86\x1c\x73\x10\x6b\x99\x61\x2b\x8d\x16\xe0\x20\xe3\xcf\x9e\xea\x68\x3c\xda\xa2\x15\x5c\x18\xc4\xdc\x00\xfc\xe0\xc0\x40\xb1\x3a\x2f\x6a\x82\xb4\x3a\x7d\x51\x41\x6c\x9c\x7c\xe6\xfa\x3b\x44\xb6\x07\x4c\x51\x59\x4c\xf2\x05\xad\xd4\x5a\x04\xb5\xca\xea\x65\x3c\x69\x39\x77\x75\x55\x8b\xa0\x59\x75\x6b\xff\x55\x90\xd1\xd8\x55\x5f\xd8\xdf\x7a\xab\x6b\xbe\x5a\x88\xfa\xfa\xd7\x24\x5e\xc4\x93\x84\xdf\x91\x41\xff\xf9\xcb\x6f\xbf\x7b\x81\x1b\x71\xa7\x2a\x78\x18\x1c\x8d\x95\x51\x97\x76\x1f\x49\xfe\xa4\x7b\xd7\x14\x32\xa9\x5b\x3c\xb9\x9b\x63\x73\x4c\x68\xe9\x54\xd3\x57\xa5\x07\x8c\x0e\xc8\xa1\x0c\x41\xa4\x72\xcc\x9d\x0b\x6a\x5e\x62\x6a\xde\x0d\x3d\x78\x61\xbf\xca\xbb\x5a\xdb\xf5\x85\x53\x2f\xbd\xaf\x5b\x5b\x8f\x58\x7d\x5b\xc1\x28\x75\x54\x19\xe1\xa5\x36\xef\x5b\x59\x84\x29\xe7\x6a\x3b\x11\x13\x51\xa5\x4d\x89\xb3\x3a\xde\x1d\x2d\x3f\x6d\x92\x67\x98\x96\x9e\xa9\x9e\x6b\x69\x0d\x1b\x76\x73\x30\x26\x69\xc4\x71\x1f\x95\x3e\x45\x73\x46\x7c\xcc\x9e\x97\x23\x9a\x55\x75\x40\xa7\x38\x8d\xfa\xf8\x19\xd2\x50\xf3\x47\x40\xcd\xff\x5b\xa7\x44\x30\x94\xc1\xcd\x65\x27\xde\x0a\x11\xb1\x8c\x38\x1e\x80\xb9\xe6\x22\x9e\x70\x1b\x1e\xa4\x2d\xf6\xfe\x4a\x52\x0b\x4d\x35\x56\x72\xcf\x0c\x59\x89\xc5\xfa\x39\x29\xb6\xc1\x30\x73\x3b\xd9\x24\xcf\x4c\x08\x80\x51\x32\xc6\xb1\xf8\xdf\xe6\x60\x8c\x0b\x12\x77\xcf\x92\x3f\x69\xef\xec\xe0\xd7\xfd\x8b\xa3\xdd\xb3\x1f\x71\x4a\xfa\xdd\x58\x5c\xa0\x4f\x21\xa0\x79\x32\x8b\x06\x44\xfc\x21\x5b\x90\x65\x14\xe3\xa7\x08\xd3\x4d\x52\x18\x13\x62\xf0\xe3\xb6\x10\x4e\x48\xbe\x3d\x79\x45\x92\xcd\x62\x7b\x02\x4e\x1a\x93\x2d\x3a\x26\xd9\x68\x32\x6e\x89\xd1\x49\xbe\x45\xc1\x4f\x1d\x1c\x0f\xd2\x6e\x37\xd2\x5f\x51\xe9\x1e\x78\xe7\xef\x2d\x5a\x86\xe6\xa2\x35\x67\xd6\x5d\x52\x7d\x5e\x5b\xce\x39\x1e\x93\xa7\x83\xe7\xdf\x3d\x7f\xf9\xec\xc5\xf3\xef\x70\x85\xfe\xc8\x1d\x32\xe2\x58\x30\x49\x8e\xd1\xe9\x7f\x65\x20\x45\xd3\xfc\x31\x84\x2c\xe5\x4c\xc9\x89\x01\xb3\x72\x01\x1b\x52\xb5\x9c\x9c\xf4\xb7\xb9\xe5\xaf\xb9\x62\x16\x47\x0c\x67\x63\x42\x47\x5c\x6d\x22\x7b\xac\x19\xce\x22\xc1\x55\xf8\x52\x9b\x1d\x45\x41\xa5\x5d\x89\x70\x4d\xbc\x6f\x15\x37\x45\x49\xaa\x49\x39\x26\x82\xa5\x0f\x07\xca\x30\x15\x6c\x50\x19\xd0\xef\x72\x12\x2f\xf8\x52\x7a\xde\xb8\xd8\x32\x8a\x9a\x0a\x02\xb0\x2d\xb0\xf0\x2a\xb9\x2c\x20\xa7\x48\x99\xf4\x06\x59\xfc\x9c\xd3\xab\x4e\x87\x73\x0a\xd5\x6d\xcb\xac\x9e\x78\xda\xa0\xdc\xb6\x6a\x7a\xea\xdc\x29\xea\xa5\xe1\x42\x66\x8e\x07\xda\x5d\x58\xa8\xc0\x9c\x90\x27\x93\xb6\x12\xcf\xff\xa6\x38\x2e\x07\x09\x09\x9d\x1a\x5b\x1f\x12\xea\x41\x14\x64\x57\xd4\xee\x4e\xc6\xdb\x82\x4a\x11\xd4\x9a\xc2\x4a\x89\x54\xd4\x73\xbc\xaf\x82\x2b\x89\xa1\x6d\xfe\x8a\xc1\x76\xcb\xc4\xde\x86\x9d\x66\xdc\x90\x9c\x9c\x88\x1a\xd0\xad\x81\x97\x07\xd1\x65\x91\x46\x7c\x73\x30\x7e\xfd\xfa\xa9\x9b\x98\xd0\x9a\x22\x02\xf1\x52\x9a\x06\xb3\x75\xb4\x92\xc1\x49\x1e\xe5\x20\xae\xa7\x25\x3f\x87\x09\x71\x35\x06\xd3\x50\xb3\x03\x5a\x37\x9a\x4d\xe8\x3a\xdd\x8e\xf3\x1b\xf2\xcd\xc4\x3c\x67\xa1\xc2\x47\xe0\xf6\xef\xaa\x7c\x92\x42\x45\x3e\x98\xd6\x29\x48\xe8\x06\x21\x59\x89\x69\xef\x80\x53\x06\x2f\x36\x07\x9c\xce\x4f\xf5\x04\x64\xd2\x6c\x18\xc5\xfd\x26\xc3\xe4\x9e\xe6\x39\x77\xbf\x9a\xf7\xd3\xb0\x20\xfc\xfd\xe9\xe3\xdb\xdd\xf3\xfd\x8b\xd3\xfd\x77\xfb\xa7\xfb\xc7\x7b\xfb\x6f\x2f\x7e\xda\x3d\xfc\xb4\x4f\x14\x14\x97\x29\xf5\xbb\xcd\x0a\xbf\x3b\xfd\xf7\x5e\x3c\xb9\x86\x1a\xe2\xff\x53\x5b\xc5\x24\xd7\x0e\x0b\x1a\x99\xc4\x34\x16\x43\xdc\x24\x45\x92\x67\x8e\x7a\x56\x7c\x06\xc9\x49\x87\x29\x11\x42\x94\x64\xaa\x79\x7c\x05\x36\x8f\xb6\x1d\x78\x65\xa9\xfa\x15\x27\x48\xe3\x39\x09\x9a\x43\xb5\xe0\xf4\x3c\x96\x41\x6c\xd0\xfd\x7d\x94\x91\x60\x48\xa3\x90\x5f\x72\xa3\xd0\xf1\xe0\xd4\x5d\x2d\xa9\xcc\x59\x8f\x20\xcb\x65\x56\x26\x99\xee\xbf\x71\x7a\x65\xd9\xaa\xe0\xb1\xe6\x1d\xce\x69\x6e\xd1\x50\x03\x89\xfd\x0c\x0f\x7b\x42\x24\xa5\x53\xb2\x31\xd0\x8c\xf0\x15\xa1\xe2\x5f\x47\x3d\x2d\x97\xb2\x5c\x50\xfa\x39\xe0\xc1\x9c\x1e\x76\xfc\xd1\x87\x41\x79\x84\x4a\x46\x9d\xa9\x82\xd3\x65\xd0\x05\xaa\xef\x5a\xde\xaf\x2b\x03\x4a\x65\x29\x0d\x77\x03\x80\xb7\xa4\x23\x46\xb0\x70\x09\xe6\xc8\x4f\x0a\x6b\x41\xcd\x55\x07\x31\xd1\xf6\xed\xbe\x56\xe9\x81\x85\x4c\x10\x8e\x21\xe4\x51\x36\x8c\x82\x25\x88\x71\x8c\x4a\x77\x26\xab\x60\x26\xe6\x26\x0f\x1a\xfe\x25\x40\x60\xfa\xa8\x66\x6d\xfb\x98\x97\x65\xcb\xb8\xd2\xea\x97\x09\x14\x75\x8e\x4f\xce\x2f\x8e\x4e\xde\x1e\xbc\x3b\xd8\x7f\xdb\xd1\x0f\xf9\x70\x3b\x35\x6e\x30\x95\x44\xdd\x6e\x17\xd6\xdb\x3b\x39\x3e\x3b\xdf\x3d\x3e\xbf\x38\xdf\x7d\x6f\x0e\x9e\xbf\x98\x19\x65\x81\x8f\x73\x52\x96\x3a\xa2\x72\xab\x42\x38\xfe\xaf\x0c\xdf\x92\x1c\xb0\x8f\x91\x06\x7a\x07\xe1\x76\x9b\x68\xe1\x7a\xdd\x21\xcd\x6e\xcc\x03\xf3\x75\x92\x4e\x19\x55\xab\x10\x78\xa5\x56\xa6\xa2\x00\x76\x98\x4b\xdd\x7e\x44\xc7\x15\xbd\xae\xa0\x57\xd5\x6a\x0e\x4f\x82\x8d\xc7\xc3\x0d\x04\xeb\x2f\x43\x62\x1f\xb7\x1a\xef\x05\x5f\xf7\x17\x57\x99\x24\xa9\xfe\xe3\x66\xf7\xc9\x44\xfb\xcd\x8b\x51\xb6\xea\x6f\xa6\x07\x06\x52\x39\x64\x60\xb0\x4c\x87\xff\x32\x06\x5f\x31\xbb\x2a\xac\xf5\x07\x10\xe3\x1a\xb2\xa7\x4a\xce\xe3\x2b\xf9\x51\x25\x5d\x86\x1d\x78\x1e\x5f\x5d\x49\xe7\x13\xe5\x77\x6f\x68\x7a\x4b\x5f\x24\x39\xb6\x1d\x40\xae\x13\x71\x75\xd8\x67\xf8\xd8\x64\x71\xd6\x1d\xa2\x28\x46\x28\x27\x0d\xab\x5c\x0f\x6d\xf5\x70\xe7\x2a\x76\xb4\x0c\xdc\xc5\x8d\x22\x54\x4c\x03\x6a\xcb\xd7\xd6\x4f\x8b\x69\x0c\xbc\x2d\x34\x42\x2d\x67\x5c\x59\x2b\x9f\x5f\x26\x19\x45\xd1\x88\x03\x95\x2f\xc6\x08\x3b\x90\x4b\xc3\x8c\x85\x21\x9b\x05\x8e\xd1\xe3\x21\x44\xd2\x34\x61\x69\x2f\x33\x07\xd7\xd0\x80\xb3\x78\xf2\x19\x45\x60\x96\xe9\x56\x70\x6e\xd1\x59\x16\x99\xc5\x44\x25\xde\x18\xa0\x9a\xbb\x3c\x80\xa6\x39\xf8\x41\xe3\x15\x1e\xdc\xd8\xe1\xc4\x3d\x04\x87\xfb\xe6\xd1\x28\x81\x4c\xd6\xe1\x34\x9b\xb4\xba\x72\x6f\x2b\x81\x87\x89\x23\x68\x2f\x5f\x25\x07\x29\xf6\xee\x47\x7a\x47\x32\x73\x98\x49\xf2\x20\x71\xa9\x30\x00\x2d\x27\xfe\xdf\x23\xb6\x11\x5c\x8d\xe2\x6e\x6d\xda\x4c\x31\xce\xc7\x75\xeb\xe4\x5d\xd4\x99\xc3\x73\x25\x38\x98\xe3\x30\xc7\x1a\x90\x61\x8c\x9d\x99\x42\x8a\x36\xe7\x8c\x11\x42\xb2\xfb\xfb\x8d\xba\x85\xcd\x90\x36\x65\xce\xcd\xfd\x69\xdd\x32\xdf\x02\x46\x52\x55\x67\x59\xdd\x90\xca\xe4\x85\x66\x37\x3d\x30\x5a\xe2\xd7\x51\x8a\xd5\x1e\xdc\x0e\x37\x48\x8c\x97\x48\x6a\x2d\x12\xcd\xc3\x06\x77\x78\xf2\x48\x36\xd0\x64\x90\xfa\xdf\x26\xf8\xa3\x7c\xac\xd5\xcc\x21\xf2\xb9\x87\x71\x1b\xa9\x80\x1b\x3c\x1a\xd4\x14\x0a\x35\x19\x66\x4a\xd7\x5b\x95\x3a\xb4\x8a\x3b\xad\xee\x70\x9c\xaf\xdf\xe3\x09\xa7\x73\xc5\xbf\xda\x1d\x9e\xe3\x60\xe3\xd5\x6e\xd2\xe6\x53\x50\x7f\x11\xe9\x91\x4a\xb9\xac\x1a\x37\xe6\xbb\xa1\x2a\x54\xd1\x12\x15\x4b\x82\xf1\x3b\x4b\x23\x1c\x96\xcb\x40\x2e\x1f\xaf\xfe\x97\xef\xee\x06\x21\x30\x55\x9e\x67\xab\x12\x4f\x88\x7a\x32\xe6\x78\xaa\xff\x3c\x83\xa7\x53\x71\x51\x5f\x13\x4a\x5e\xeb\xa8\x2b\x3b\xcb\x21\x6d\x39\xa2\xbb\x9b\x93\x57\x3b\xbd\xfe\xf3\x33\xb5\xce\xae\x37\xd1\x44\x39\x7f\xfe\x13\x1e\x9d\x9d\x82\xa9\x29\x98\xd2\x8c\x27\xdc\x6d\x74\x1d\x7a\x7d\xd6\x67\xf4\xbd\x89\x18\x79\xcd\x21\x17\xad\xca\x38\xa8\x6d\x7c\x16\xab\x2b\xca\xdb\xb7\x34\xfe\x7c\x14\x2f\xec\x82\x5a\x4c\x82\xf6\x43\x95\x0b\xac\xba\xbf\x01\xa1\x3f\xcb\xbf\xd5\xa2\xe9\x22\x78\x17\x32\xee\xb2\xeb\xfa\x76\x2b\x99\x01\xdc\x8f\xfa\x01\x5f\x8f\xe0\x96\x95\xfa\x7d\x7d\xa5\x88\x92\x54\x12\x20\x48\xb7\x57\xe3\xec\xac\xec\xc0\x15\x90\xe6\x75\x7e\xa8\xae\x03\xdb\xb1\x29\xf2\xd9\xdc\xbf\x34\x8a\xec\xa1\x66\x0c\x59\x20\x43\xfa\xcc\x61\x9a\x0b\xbb\x69\x6e\x7c\xf5\xd6\x42\x3b\x5c\x78\x71\x81\x29\xfc\xc4\xb9\x32\x4f\x48\xd0\xfd\x7d\xdf\xc9\x9f\x2c\x3e\xe1\x7c\x73\x80\xb0\x0c\x22\x9b\x0c\xeb\xd2\x0a\xcf\xb5\x69\x43\x60\xd3\x30\x1a\xe3\xb9\x35\x60\x50\xf2\x0e\x73\xb4\x53\xa6\x7e\xd6\xed\x46\x19\x51\xba\x17\xc1\x4d\x2c\x33\x3e\xe4\x25\x16\x95\x49\x06\x01\x03\x04\xa1\x32\xc7\xcc\xd3\x72\xd4\xda\xc0\x1a\x07\x04\x43\xd6\x34\x41\xfb\x4c\xef\x08\xb7\xa4\x8c\x19\x62\xc1\x62\x9e\x33\x87\x2f\x35\xa2\x77\x40\xad\x94\x9c\x5c\xec\xcf\x17\xfc\x2e\x42\xa5\xf9\x4b\xaf\xb1\xdf\xa1\xa4\x22\xd2\x6f\x4b\x7d\x8b\x10\x72\xda\x67\xf4\x0b\x37\x41\xe2\xbd\xb6\x3d\x59\x14\x24\x52\xa7\x7a\x97\x7b\x30\x23\x4c\xcb\x70\x14\xff\x6a\x19\x52\xfc\x59\x5c\x26\x98\x66\x37\xce\x13\x84\x11\x6d\x71\x4e\x66\x62\x3b\xe8\xcb\x16\xee\x6a\x3f\x6a\x92\x0d\x71\x0d\xf6\xf1\xb0\x28\x2d\x69\x4b\x98\xf5\x78\x6e\x46\x4e\x42\x98\xe3\x1d\xd9\x80\xbb\x16\xa0\x60\x77\x0f\xb0\x83\xf7\xec\x55\x14\x8b\x35\x06\x82\x7b\x4a\x67\xef\xb4\x28\xe3\x4f\xc2\x03\xdf\xd5\xca\xa6\x32\x08\x6a\x07\x67\xf6\x9d\xfe\xaa\x41\x7b\xec\x09\xad\x9f\xe9\xdd\x3b\xb1\x4e\x95\x85\x74\xe4\xa3\xf5\xcb\x05\x35\xaa\x6b\xb5\x21\xd7\x8a\xca\x2d\x67\x87\xd2\x6e\xfb\x90\xb0\x70\x9e\xcb\x50\xf7\xca\x93\xa6\x09\x60\xbd\xd4\x01\xcc\x8a\x0f\xcd\x0b\xd2\xc7\xae\x49\x90\x24\x20\xca\xcd\x9e\xa8\x28\xae\x54\xcc\xa0\x53\x0e\xeb\xca\x66\x09\x2b\xb8\x8e\x06\x48\x47\xba\xdb\x71\x59\xc1\x8a\xea\xc6\x3c\xaa\xca\x7e\x7a\xa2\x1b\x0f\x37\x5a\x89\xa2\x2a\x80\xef\x81\x1c\x05\xe2\x55\x88\xfa\xa8\x0e\x12\x30\x39\xa3\x45\xd1\x29\x31\xd5\xfc\x8e\x89\x28\xa3\xe1\x7a\x1d\x1c\x14\xed\x99\x89\x1c\xf4\xb7\x82\xd3\x34\xda\xdc\xb4\xd3\x82\xf4\x99\x80\x44\xcd\x5d\xe9\x77\x0a\x38\x23\x3a\x1a\xc1\x22\x2f\x90\x46\x0a\x16\x8b\x35\xd4\x9f\xcb\xaa\x51\x22\x93\xea\xed\x47\x2a\xae\x1d\x45\x77\x9d\x36\x1b\xd7\x18\x3b\x3a\xf5\xbc\x5f\x69\x7e\xbb\x95\xd2\x1b\x5a\x31\x7a\xd4\x79\xf7\x71\xfc\xf7\x75\xe1\x93\x94\xc6\x8c\x5c\x8a\xbf\xb4\x8b\xe3\xdd\xbb\x34\xbe\x2a\xde\xb1\x7c\x4e\x18\xc7\xb4\x77\x1d\x17\x7b\xa6\x8c\x24\xe2\x13\xa3\x05\xe5\x6f\xe9\xe5\xf2\xea\x8a\xb2\xbd\x38\x4d\x2f\xe3\xc9\x67\xab\x4c\x47\xab\x8f\x9c\x1c\xf1\x12\xd3\xde\xda\x7a\x14\x2a\x52\x51\x4f\x6c\x97\x3b\x2f\xf0\x8d\x72\xd2\x73\x68\x41\x21\x03\xe8\x94\xa0\xc2\xdf\x5b\x32\x96\x38\x21\xa1\xac\x0b\x05\x89\x39\xd4\xf8\xf9\x3a\xe1\xb4\x58\xc4\x13\x5a\xa7\xe6\xff\xa5\xc7\x69\xc1\x95\x65\x67\x96\xb3\x39\xa8\xf1\x34\xd2\xc8\x42\x9c\xe3\xdd\x9c\xab\xc7\x8d\x20\x24\x8f\xe0\xfb\x32\xb2\x32\x8e\xaf\x2b\xa0\x5e\xf4\xb6\xfd\x86\x82\x80\x84\x4d\x9c\x6e\xf1\xf1\x17\x1a\x31\x64\xfc\x79\x92\x9a\x07\x13\x6d\x5a\x0a\xe1\x38\x30\x58\x84\xd5\x0d\x2c\x86\x65\x6b\x06\xe6\x76\x14\x19\xd7\xa8\x3a\x92\x13\xe5\xd1\x66\x85\xf2\x23\x3f\x56\xa1\xcf\x24\x54\x49\x76\xce\xe2\xac\x90\xee\xbc\xa4\x12\x59\x86\x8e\xde\xd1\x31\x12\xd4\x12\xce\x35\xed\x5d\xd2\xab\x24\x13\x42\x0d\xbb\x5b\xf1\x08\x95\xb3\x24\x8b\xd3\xf4\x6e\x45\xb5\x65\x3e\x2a\xa1\xdf\x2b\xca\x55\x20\xaf\x9f\x62\x46\xea\x78\x11\xee\x79\x39\x83\x4b\x08\x15\xc7\x15\xd6\x3b\x4e\x7b\x31\x8f\xfa\xde\x63\xde\x5b\x99\x77\xb6\x84\xbd\x9a\x4d\x29\xdb\xcd\x79\x25\x57\x2e\xc9\xa8\xb6\xfb\x3b\xec\xcd\x72\x76\x20\xb5\xb9\xa7\xd0\x00\xb2\x5c\xdd\x60\x26\x2e\x50\xd1\xe3\x1f\x1c\xc7\x24\x65\x5a\xe5\x1b\x51\xbc\x2a\x68\x3a\x1b\x66\xd8\x05\x6d\x98\x63\xce\x28\x55\x76\xff\xe0\x77\x2c\xdf\x47\x4b\x0f\xbc\x6b\x16\xc5\x3e\x70\x66\x1f\x57\xa0\xc4\x89\x58\x76\x0d\x84\x8a\x6c\x8f\x0b\x01\x0b\xd0\x6c\x01\x89\x3b\x26\x37\xe1\x93\x02\xc8\x4a\x84\x53\x92\xf2\xa8\xe8\x29\x92\x66\x5c\x99\xc4\x8e\x5d\xcd\xe3\x2c\xbe\xa2\x6c\xb8\x84\x50\xcc\x74\x38\x29\x49\x0a\x21\x16\xf7\x79\xc4\x78\xb4\x14\xcb\xb4\xe7\xb8\x41\x47\x13\x84\xf0\xb2\x26\xd6\x97\x4a\x6b\x9e\x80\xa3\xbb\x4d\x6c\x5e\xb4\x21\x15\x92\x82\xa9\x2d\x8d\xd8\x8b\x76\x5c\xb4\xe3\x36\xcb\x73\x6e\x6b\xf6\x3a\xa8\x15\x13\x18\x70\x37\xe7\xd2\x55\x5e\x99\xab\x4f\x70\x15\x7a\x83\xd9\x05\x8b\x0a\x1c\xe3\x14\x27\x3e\x6e\x8f\xe2\x24\xab\x43\xab\x8b\xd1\xbc\x6e\x6d\xb9\x8f\xc1\xc4\x5b\x5b\x66\xfd\x9f\xc2\xb5\xcd\x9d\xf1\x95\x63\x73\x65\x6d\x0d\x0d\x17\xab\x5b\x78\xb0\xa4\x78\x49\xa6\x0d\xab\x6b\x46\x4d\x7c\xd8\x8a\x52\x2c\xe2\x44\xac\xef\xb2\xba\xbe\xb9\xb3\xbe\x53\xb5\xbe\xd7\x25\x99\x38\xeb\x3b\xad\xac\xef\x35\x42\x78\xfa\xbf\xb5\xbe\x32\x88\x05\x0c\xfa\x21\xf1\xd7\xf8\x1a\x57\x67\x80\xf0\x42\xaa\x1a\xa4\x3b\x9b\x8e\x94\x34\x33\xfe\x6a\x19\xaa\x61\x6c\x17\x4a\x0b\x35\x27\x8b\x51\x7f\x5c\xc9\xc7\xff\x7b\x90\x8f\xff\xc9\x6a\xae\xd3\xfa\x95\xf0\xa3\x58\xc4\x99\x4c\xe7\x57\xf6\x7a\xe6\x03\xcd\xa6\x65\x7b\x38\x6c\x9f\x9f\xbc\x3d\x69\x47\xfc\x9a\xd1\x78\xda\xbe\xa4\x9c\x53\x86\x7e\x47\x65\x4a\xb4\x51\xc4\x02\xbb\xbe\x73\x33\xd7\xf5\xac\x74\xf6\xec\x12\xa7\x78\x82\x63\x7f\xcf\x34\xec\xd9\x90\x0e\x88\x7d\x62\x77\x2d\x57\xfb\x36\x3c\xf9\xde\xbe\xcd\xcc\x0e\x5a\x4b\x93\xce\xee\xb2\x09\x99\x31\x1b\x60\x62\x97\x73\x96\x5c\x2e\x39\x25\x47\x14\x18\x87\x84\x66\x5c\x3b\x38\xd5\xea\x17\xea\x88\xaa\xb9\xbf\x8d\xa1\xae\x68\xf6\x4e\x70\x90\xc7\xf9\x94\x92\x39\x03\x08\xe4\x7d\x98\xe4\xd9\xda\x01\xae\x58\xf3\x08\x53\x5a\x70\x96\xdf\x91\xcf\xd0\xdf\x55\x52\x70\xca\xde\x52\xcd\x84\x93\x33\x4c\x21\x7c\x56\xa5\x20\xb8\xe8\x37\x06\x68\xd5\x57\x42\xee\x97\x88\x22\x9c\xc8\xd0\x0d\x6c\xa7\x43\xc5\x71\xb2\x2d\x8b\xce\xb0\x33\x75\x7e\xb5\xb2\x51\x32\x26\xfb\x60\xaa\x8c\x39\x68\xd8\x31\xed\xc5\x45\x91\x4f\x92\x98\xd3\xb7\x12\x3e\xb1\x19\xf6\x84\x6c\x44\x4e\x00\x2d\xea\x73\x92\x5d\x91\x3f\xdc\x0f\x81\xad\x82\xd4\x00\xdc\xd5\x7a\x1f\x48\x35\x9a\x8a\x3a\xfd\x9a\x3c\x2d\x5b\xc0\x86\x9d\x4d\xae\xa9\xe0\x00\x55\x87\xb6\x3b\x8e\x56\xb4\x77\x51\x04\xc5\xe7\x44\xf3\x6f\x41\x43\x17\x92\xda\xa6\x74\x4a\xf6\x64\xe3\x0b\xb5\x08\x7b\x5a\x5b\x78\x8a\x69\xef\x7c\xff\xe8\xe3\xe1\xee\xf9\xfe\xc5\xc9\xf1\xe1\x2f\x17\x7b\x27\x47\x1f\x4f\x8e\xf7\x8f\xcf\x09\xed\xc9\x10\x41\x86\x5a\x1e\x49\x82\x45\x6a\x47\xa8\x81\x98\xaa\x54\x91\x0e\x66\x0b\xb7\x01\xcd\xc4\x27\xa7\xf4\x9c\xc5\x93\xcf\x90\x78\xa6\x77\xb6\x7f\x7a\xb0\x7b\x78\xf0\xeb\xee\xf9\xc1\xc9\xf1\xc5\xbb\x83\xd3\xb3\xf3\x8b\xe3\x93\xb7\xfb\x17\x67\xe7\xa7\x07\xc7\xef\xc1\xc4\x42\xf1\x68\x7a\x47\x8a\x4f\xf3\x9c\xd3\xc3\xe4\x46\xc6\xac\x20\xb4\x67\x74\xa5\xf0\x41\x79\xbe\x1c\xd3\xdb\x7d\x99\xec\xcb\x36\x95\x53\x7d\x1b\x9e\x2c\xda\xab\xf9\xb4\x27\x6d\x72\xa6\x1f\x0d\xbf\xb3\xab\x8d\xff\xd5\x08\xba\xc6\x71\x3c\xa7\xd3\xa6\xc2\xf0\xbb\x16\xd9\xdf\x9f\x11\xda\x3b\xcc\x6f\x21\x9d\xfd\x4f\x47\x7a\x16\x49\x76\x25\x7f\x1c\xbf\xdd\x7f\x77\x70\xbc\xff\xd6\x3e\xc8\x82\x09\x8c\x52\x58\xb9\x56\x28\xc7\x9f\x0e\x0f\xbd\x5a\x7b\x79\x36\x55\x20\xbb\xf5\x80\x2a\x69\x28\xb2\x9b\x84\xe5\x99\x00\x4c\x7d\x79\x2b\x35\x97\x6f\x1d\x0a\x26\xbe\x9e\x1c\x9d\x33\x2a\x9d\x27\x54\xa4\x4e\x42\x7b\x07\x6f\x4f\x8e\xf6\xae\xe3\xec\x8a\x16\xb2\x8e\xfd\x71\x74\x70\x7c\x70\xb4\x7b\x78\xb1\xb7\xfb\x71\xf7\xcd\xc1\xe1\xc1\xf9\xc1\xbe\x98\xe8\xdb\xfd\x77\xbb\x9f\x0e\xcf\xc3\xcf\x6b\xa4\x09\x28\x2c\x72\xa6\xd1\x99\x67\x13\x46\x39\x7d\x93\x2f\xb3\xa9\xe7\xc3\x54\x04\x6f\xdc\x07\xc7\xc7\xfb\xa7\x17\x3f\x1d\x75\x04\xdf\xe5\x17\xbd\xdd\x3f\x3b\x3f\x3d\xf9\x65\xf7\xcd\xa1\xd8\x61\xbb\x7b\x3f\x76\x10\x5e\x06\x75\xe0\xfb\x59\x47\x5c\xea\x7e\xc1\xe9\xfe\xfb\x83\xb3\xf3\xfd\x53\x51\x36\x0d\xca\x7e\xd8\xdf\xfd\xd8\x41\xf8\x3a\xf8\xac\x9f\x42\x45\x93\x59\x50\x26\x76\x40\x07\x5e\x5e\x9c\x8f\x1f\xf7\x3a\xda\xb9\x6a\xd1\xa0\xbc\x50\x09\xec\x4c\xd0\x75\xfa\x85\x9f\x25\x97\xa9\x38\x4f\xa0\x39\x77\xb0\xb6\x50\x5d\xcd\x1f\xd0\xe7\xc1\x0d\xa0\xfa\x03\xa5\x82\x56\x85\xa4\x71\xc1\x09\x2b\x65\x2d\x75\x98\xaa\xee\x92\xaa\x87\x72\xa6\x6f\x93\xa0\x0a\x7c\x2f\x45\x5f\x35\x85\xe2\x33\x80\xed\xaf\xef\x5c\x81\x7e\xd3\x80\x85\x2a\xe0\x19\x04\x47\xf8\xbb\xb0\x8a\x5e\x9a\x40\xcd\x7c\x9b\x43\x99\x41\xc3\xd8\x01\x0b\xf2\x12\x0c\x0e\xe2\x92\x33\x12\xe8\x07\x6d\xe7\x82\xa9\xd8\xde\xd6\x1c\x45\xee\x2e\xa5\xe0\xa9\x04\x87\x61\x13\x1c\x46\xb9\x4c\x39\x40\x48\x62\x33\x62\xe5\x24\x76\x00\xba\xf4\x9d\xb2\xaa\xe0\xb0\x00\x9c\xcc\x07\x27\x21\x4c\x83\x93\x93\x24\x04\x87\xf7\x18\x9d\xe7\x37\xf2\xd6\x8c\x12\x51\xdd\x89\xd0\x9e\xb7\x12\x92\x4b\xdd\xf9\x9d\xfb\x10\x61\x35\xe8\x17\x1e\x0b\x61\x9e\x66\xf8\xb0\x92\xd2\x20\xa2\x26\xaf\x19\x45\x43\xf0\x08\x74\x82\x91\x18\xb9\xb7\x12\x82\xde\xae\x44\xd5\x33\x4f\xf9\xe2\xc1\x93\xa6\xd5\x26\x82\x1e\xc2\x74\xbd\xdf\xd8\x75\xb7\x6b\x42\xb9\x0f\xb4\x6c\x4c\x8d\x3f\xa4\x0d\xc4\x4f\x7b\xc5\x02\x6c\x4c\x19\x1e\x20\x4c\x4b\x67\xb2\x76\x98\x2f\x0f\x31\x12\xe6\xc9\x4c\x29\x6a\x55\xe0\x13\xfd\x76\x26\x7f\x85\x5c\x90\xfc\x3a\x0d\x3f\x48\x99\xa3\x5f\xe2\x3b\xf5\x76\xc0\xe1\x85\xcd\x00\x73\xe2\x8a\xfb\xc0\x68\x09\x7e\xcb\xce\x88\xd9\x27\xc7\x8b\xc8\xfe\x80\xb8\xc3\x6a\x7f\x15\xe4\x22\x32\x7f\x63\xea\x75\x7f\xe6\xb0\x73\x7f\x89\x99\xd3\x18\x14\x3c\xdd\x85\xe2\xe9\xc4\x08\xa2\xb3\x73\x08\xc1\xb0\x12\x7c\x56\x95\x8d\x92\x8e\xff\xf8\x23\xde\xc5\x7b\xba\x9e\x01\xeb\xb3\x13\xd0\x26\x92\x21\x34\x37\x22\xc3\xb9\x0d\x90\xab\x26\x2f\x86\xcc\x41\x7d\x15\xef\x89\x87\xf4\xbc\x24\xbc\xa5\x7a\x22\x03\x7c\x1b\x65\xf8\x33\xc2\xb7\x51\x82\x39\x79\xcd\xc1\x64\xe2\x56\x1c\x65\xf2\xfa\x5c\x2d\xc6\x9e\x7c\x9e\xbf\x8d\x98\xf8\x5a\xa7\x85\x81\xf5\x00\x7c\xc9\x7e\xbb\x5d\x67\x25\xc8\xbe\xbb\x2c\xe6\x45\x11\x61\x0d\xc4\x53\x2f\x07\xfa\xa9\x7e\x07\x36\x53\xe2\xa5\xc4\xc1\x6d\xc4\xf1\x67\xe7\x34\xfc\xf1\x95\xfc\xee\xa0\xac\x67\x49\xf1\x3a\x0e\xf0\x08\xaf\xe7\x1e\x3f\xaa\x6b\xe0\x6d\xad\xed\x19\x90\xfc\x07\x68\xb9\x7a\x0a\x38\x5e\xd7\xc1\x5a\x7a\x2f\x50\x70\x10\xde\xeb\x9f\x4e\xcf\x4e\x4e\x35\x0b\xa1\x60\x3c\x0c\xae\x2a\x88\xd4\xaa\xec\x63\x34\xf7\x94\x5d\x39\x4f\x62\x10\x9d\x1a\x42\xf4\xd9\x8f\xa3\x5d\xf9\x30\xce\xdd\xa0\xe9\x3a\x03\x9d\x8d\xa9\xee\x15\x43\x8c\x86\x86\x32\x41\x48\xf5\x05\x00\xfa\xa6\xd0\x68\x6f\x9a\xcf\x09\xa8\x02\x65\x8c\xad\x13\x03\x93\x36\x39\x90\xe6\x03\xf6\xbb\xac\xfd\xf6\xe4\x28\x32\x1e\x00\xb5\xc2\xa0\xab\x41\x16\x1d\x89\x8f\x9a\x79\xc1\xdc\xbd\x5d\x90\x6f\x49\xab\x3a\x65\xb4\x58\xce\x2b\xe1\x9c\x4c\x4f\xe1\xdd\xc6\xa5\x72\x5c\x9c\x30\xdf\xba\xd6\x10\x32\x81\x0a\x23\x34\x88\xcb\x85\xf9\xc6\xab\x1e\xa7\xb0\x2c\xae\xa5\xac\x20\x6b\x4b\x5c\x94\x90\xa6\x03\xbe\x84\x51\x9a\xed\x1a\xf4\x78\x2e\xaf\x0d\xe9\x8d\x49\xeb\x38\x91\xd1\xc1\xd8\x3c\xf5\xa8\x0a\x50\xd9\x41\x4a\x73\x03\xa7\x92\x4e\x53\xf3\x10\x48\x45\xf2\x27\x7d\xdd\x2f\x2f\xe5\x5c\x9a\x6a\xe9\xe8\xd2\x8b\x7c\x61\xf9\x27\x3d\x3a\x44\x7c\xc6\x01\x2c\x65\x05\x4f\x15\x2c\x5a\x8c\x8b\xe5\x7b\x17\xb9\x3c\x2c\x92\xae\x47\xbe\xf4\xf6\x60\x1f\x9f\xea\xfa\x80\xe2\xc3\xa4\xa8\xe4\x19\xaa\xb6\x7f\xe3\xb5\x07\x92\xe9\x57\xa2\x98\x9b\x0b\x8b\x91\x06\x2c\x05\x4f\x93\x4c\x5c\xd8\xf7\xf7\xac\x37\x4d\x54\xb4\x3a\xc9\xc8\x5a\x23\xb9\x8b\x8b\x7c\x41\x33\x77\x3b\xb9\xbd\x2a\xcf\x4c\x4c\x05\xf6\xeb\xf0\xa0\xd6\xae\x07\xca\x7c\xb1\x61\xc5\x57\xd3\xf5\x24\xcd\x0b\xda\xd8\xb7\x58\xba\xd2\x1b\x7f\x55\xfa\x6d\x56\xa5\x28\xd4\xab\xee\x9b\xf6\xc8\x86\xb6\xcc\x33\xda\xf6\x48\x1b\xc7\xbc\x0c\x6b\x7b\x93\x98\xe6\x73\xf5\x78\x6f\x2a\x60\x6f\x31\xcb\x59\xea\x10\x2c\x1f\x0e\xbd\x60\xda\x08\xc0\x19\xb9\xa5\x00\xf5\x5a\x0b\x29\x07\x7f\x2d\xfd\x85\x85\xd0\x09\x3a\x0b\xc8\x6f\x59\x43\x46\xc1\x42\x40\xce\x28\x11\x24\xd3\xcc\x97\x09\x3c\xfb\x73\x30\x22\x8b\x98\xbc\xc7\xd1\x9b\xac\x0d\x2e\x2d\x2c\x61\x59\xea\xe5\x97\xdb\x24\x4d\xf7\xbc\x62\xfd\xae\xba\xa8\x7e\xb1\x93\x90\xfb\x5b\x6a\x4d\x1c\xb0\x9c\xb4\x3a\x0a\x7d\x4d\xd5\xca\xe6\x22\xfb\x8c\xec\xcd\x99\x21\xec\x44\x24\x10\x8c\xf9\xb6\x14\x35\x40\x7a\xd8\x46\xd4\x13\x26\x9c\x22\x6d\xd8\x02\x11\xfb\xc2\xcd\x16\x9c\x65\xbc\xd1\x47\xe2\xb8\xf8\x70\x69\x01\xd1\x1c\xa3\x2a\x8e\x4a\x1f\x58\xfd\xe4\x69\x48\x9d\x8e\x83\x2f\xdd\xb9\x64\x75\x77\x4f\xac\xaa\xb7\xb2\xc9\x38\xe2\x63\xde\x43\x70\xd0\x00\x4e\x65\x95\x5c\xd4\x9e\xfa\x6a\x35\x4c\x6d\xdb\xe3\x1a\xcf\xb9\x4a\x4b\x55\x49\xb6\x3b\x69\x3e\xa3\xba\xa1\x7f\x8c\x31\x2d\xab\xbb\x6f\xe5\x35\xf0\x37\x6e\x29\x83\x84\x9e\xd3\x2f\x55\x2a\xe0\x81\xa4\xf6\x9e\x57\x5d\xec\x38\xbf\xbd\x60\x59\xa7\xf9\x7c\xc8\xb1\x22\x03\x43\x86\x9d\x63\xe3\x58\xe0\x70\x45\x61\x44\x4b\x35\x67\x6b\x83\xe5\x9d\x3f\x86\x13\xc1\x11\x25\x66\xb0\x3a\x3c\x56\x4e\xad\x7f\x79\x54\x0f\x30\xa6\xa6\xbf\x77\x2c\xbe\xf2\x09\x99\x92\xbf\x61\xab\xb7\x4c\xaa\x7e\xc5\xdb\xcc\xfd\xbe\x39\xf6\xce\xc5\xdf\x03\xca\x44\xeb\x10\x03\xdd\x04\x03\xb9\x2b\xb0\x97\xcf\x01\xe4\x4e\xc7\x59\x85\x1f\xce\x8f\x0e\x9b\x11\x23\x4a\xeb\xe0\x08\xa1\xc0\x54\xef\x0a\xa5\x64\xd4\xdd\xba\x3e\xe2\x0c\x12\x64\x40\xb0\x46\x79\xdb\xf8\x5b\x46\xed\x7f\x1e\xf4\xe4\x6c\x13\xdd\xd3\x32\xab\xf6\xb5\x66\x17\x0a\xa1\xd2\xeb\xb2\xba\x78\x1e\x9e\x9c\xe2\xc7\x81\xa8\x37\x57\x4d\x5f\xfa\x68\xca\x6d\x10\xae\x4e\x43\xff\x0c\x95\x95\x09\x06\xf4\xdc\x5b\xbc\xb2\x06\x21\xb5\xf5\x15\x2e\x4b\x7f\x3f\x3c\xfe\x0c\xdb\x16\x76\x03\x39\xbd\x7c\xfd\x49\xb6\x8d\x1f\x3e\xc8\x05\xe5\x46\x87\xef\x69\x3a\xc5\x76\xf5\x0a\x2b\x9c\x01\x36\x97\x5d\x41\xb9\x63\xc5\xc3\x6b\xa4\x38\x19\x34\xa2\xa0\xea\x05\xb5\x7e\xc8\x5a\x68\x44\xa3\xf0\xb1\x21\x4c\xec\x51\x05\x2d\xb7\xc6\xfb\xb1\x6e\xf5\x2e\x67\x51\x82\xa5\x9c\xa9\x11\x93\x83\x96\x07\xf0\x67\xad\x32\x11\xce\xcb\xb2\xee\x3d\xe4\x10\xef\x92\x03\x25\xbd\xbe\x6b\x8a\x2e\xe8\xe8\x9a\xa5\x6e\xd8\xf7\xbc\x74\x7e\x66\x14\xc2\x39\x93\xfe\x23\x94\xb0\xeb\x95\xc5\xae\x96\x72\x9d\xe2\xd8\xd1\x5e\x86\x0c\x6c\xcd\x2e\xd5\xcc\x9c\x82\x73\x73\x33\xe4\xb5\xdc\xd2\xad\xad\xea\xfd\x6a\xcc\xa4\x55\x1d\x6d\x3a\x0a\xd0\x6a\xaf\x1b\x85\x24\x7a\xdb\x7e\x6b\x99\x7f\x89\x29\x7a\xdb\x3e\x86\x63\x51\x73\xeb\x7f\x45\xdf\xd4\xed\x94\x2a\xfb\x1e\x21\x12\x50\xb4\xd2\x19\x9e\x4c\xed\x6e\x97\xf6\x2a\x94\x5d\x6b\x45\xfe\x34\xbe\x68\x95\xe5\x97\x5e\x68\x14\xe1\x33\xb9\x9d\xac\x53\x53\xb0\xb8\xde\x68\x72\x2d\x1c\x45\x7b\xb7\x7b\xa9\xe2\xf2\x4a\x9f\xf5\xe0\xe9\xee\x4f\xb5\xfb\x3e\x39\x80\x48\x39\x1e\xad\x3e\xcb\x86\x2a\xe0\x8a\xea\xa6\x55\xd9\x2b\x8f\xd8\x8f\x98\x8a\xb1\x6b\x1e\x09\x3f\xa9\xe1\xdf\xac\x7d\x65\xd0\xdb\xff\x52\x2c\x96\x90\x31\x8d\xa5\x68\x53\xf1\xdf\x39\x00\xa6\x9b\x51\x7f\xdc\x74\x0e\x1c\x73\x59\x53\xdd\xe8\xa0\x47\xd4\x18\x70\x8e\xd7\x1c\x90\x70\xf3\x57\xb7\x7b\xdd\x36\xf5\x36\x9b\x54\x8e\xfd\x40\x56\x82\x0a\x27\x57\x99\xb4\x83\x1c\x0e\xf0\x94\x16\x93\xe1\x00\xf3\x84\xa7\x74\x38\x28\xf1\x4f\x3a\xcc\xa0\x24\xe8\x2a\x51\xae\xc4\xfd\x93\x5a\xc2\x33\xcd\x27\x4b\xf7\x99\xab\xa0\x7c\xb9\xf8\x54\xd0\x94\x16\x85\xe5\x31\x6b\xbf\xca\x0e\x96\xde\x57\xe2\x75\x1a\xc8\xa0\x9d\x69\x72\xd3\x41\x65\x45\x30\x55\xbc\x19\xce\x80\x53\xdb\x89\x18\xe9\x5c\x73\xbe\x18\x7e\xf3\xcd\xed\xed\x6d\xef\xf6\x59\x2f\x67\x57\xdf\x3c\xed\xf7\xfb\xdf\x14\x37\x57\xd2\x0e\x17\x52\x20\x2f\xe2\x09\xfd\x74\x7a\x70\x7f\xdf\x51\xdf\x29\xce\xc8\xc6\xc6\x0f\xd2\x29\xf1\x38\x9e\xd3\x31\x1a\x8a\xde\xdc\xe2\x01\xc2\xac\xdb\xdd\x90\xa9\xf6\x7e\x1a\xd1\x71\x35\xa3\xae\x32\x00\x92\x70\xb6\xe3\xf6\x93\x15\x2d\xdb\x49\x56\x24\x53\xda\x8e\xb3\xf6\xd9\x4f\xef\xdb\x13\x19\xe4\xfa\xf7\x90\x5d\xac\x9b\xf7\xf1\x59\xb4\x6e\x3e\xd8\xfa\x6e\xad\x43\x1e\x45\x65\x45\xa8\x65\x68\x45\x03\xfe\x54\xdc\x7c\x15\x6e\xd1\x8a\x90\x9d\x4e\x25\x74\x9d\x7f\xf7\x77\x3a\xce\x23\x8b\xd7\xb5\x7c\x8b\x00\xf6\x99\xe2\x0c\x67\x32\x85\x60\x22\xae\xcc\x1d\xde\x5b\x30\x7a\x93\xe4\xcb\x42\x73\x17\x0e\x4b\xed\x25\xc4\xd3\x9d\xee\x4e\xff\x88\x27\x34\x03\x28\xa3\xce\x25\x0c\x41\xb3\x29\x64\x4e\xd1\xaf\x77\xb2\xb5\x0e\x07\xc4\xc5\x12\x40\x02\x99\x7c\xd6\x16\xcd\x14\x66\x10\x5f\xd3\x25\x98\x68\xaa\x4e\x2b\x40\x1a\x57\xd8\x95\xbf\x89\x8d\x3f\x6e\x80\x81\x58\x60\x20\x7e\xe4\x68\x71\x38\x1a\xf6\x65\xf1\x58\xe2\xaf\x20\xf9\x8e\xf7\x22\x39\xf4\x44\x17\x47\x98\x10\x68\x2f\x70\xa2\xcf\x8f\x23\x76\xad\xd6\x6c\x1f\xa7\x5a\x19\x72\x79\xeb\xda\xd9\x5a\xce\xa3\xc6\x7f\xb4\xb6\xdd\x4d\x36\xd7\x86\x34\x5e\x1b\x75\x0f\x2a\xb4\x72\x10\x38\x86\xc3\x28\x6d\x66\xd9\x43\x7b\xa1\xf3\x6a\x92\xb0\x49\x4a\x5f\xbf\xfa\x46\xfd\x21\xc8\x07\x24\xc3\xcb\x34\x89\x4c\xef\x4c\x70\xc1\x0d\x42\xd4\x13\x8d\x98\xb1\x4e\x0c\x77\x7f\xbf\xee\xf4\x41\x1b\x8b\x70\x8f\xb0\x40\xe6\xc0\x0c\xd9\x79\x2a\xef\xa3\x5a\xb2\xa6\x97\xca\x77\x3d\x67\xab\x9a\xc3\xc8\x70\x6e\xdc\x12\xc4\x79\xcc\xef\xef\xa9\x37\x30\xe4\x47\x06\xc6\xa0\x2a\xf9\xc9\xe6\xc3\xd0\xd2\x52\x3d\x27\x83\xbf\xc2\xbb\x93\xd3\xfd\x83\xf7\xc7\x27\x6f\x3e\xec\xef\x9d\x03\xe1\xd3\xf4\xb0\xc7\xf3\x4f\x8b\x05\x65\x7b\x71\x41\x23\xa4\x5f\xc4\x3b\xaf\x8a\x9b\xab\xd7\xaf\xbc\xcb\xe5\x75\x67\x33\xdb\xec\xbc\xfa\xc6\xff\xf8\x4a\xe0\xec\x75\x47\x1a\x53\x80\x69\xbd\x3e\x84\x11\x43\xb8\x7e\x3d\xe3\x19\xa7\x4c\x9d\x8c\x18\xe1\xdc\xc7\xb7\xfd\xb3\x74\x1c\xd3\x25\x44\x0a\x84\xbf\x37\x64\x11\x0e\x59\xd6\xb8\x0c\x86\x49\x68\x6d\x6d\x9c\x90\x0c\xec\x07\xf2\x06\x03\x02\x1e\x5a\x0f\xc0\xe9\xcf\x71\x4e\xe2\xd2\x3b\xbd\x32\xea\x40\x19\xe5\x98\xc2\xff\x29\x98\xc7\x32\x2f\x0f\xf7\xcf\x7e\x5c\xa3\x6e\xb7\x6a\x13\xd7\xb0\xfb\xc0\x70\x40\xf1\x9f\x4a\xd7\x17\x10\x00\xe5\xc6\x02\x2f\x96\x0f\x9d\xbb\x82\x4e\xf2\x6c\xda\x41\xf8\x29\xdc\xb6\x95\x33\xa5\x93\xa3\x0e\xd4\xae\xdf\xe8\x43\xc6\x76\x7f\xef\xf3\x46\x56\xd7\x65\x1c\x14\xa1\x31\xf3\x72\xb9\xe7\x87\x2f\x32\x85\xa9\xc6\xb3\x02\x31\xa8\xe4\xaa\x6e\x0c\xc4\x1d\xf0\xd0\x55\xd5\xed\x26\xee\x3d\x23\xb0\x07\x5e\x7e\x1b\x7d\x1c\x5e\xb5\xd5\x49\x60\xae\x1c\x06\x73\xb2\x1e\x22\xbd\x31\x84\xd0\xe0\x5e\x0a\x35\x7d\x82\x50\x39\xe4\xe5\xa8\x73\xd9\xc1\x9d\xcb\xe4\x4a\xfc\x2b\x18\xeb\xff\x2c\x73\x4e\xc5\x8f\x7c\x7a\x27\xfe\xc7\x3a\xb8\x23\x56\x93\xc2\x1f\xf9\x54\x94\x4d\xc5\x62\x8a\x0d\x82\x3b\xd3\x54\xfc\xc3\x3b\xb8\x43\xe7\xf0\xcf\x25\x15\x85\xd7\x03\xf1\xcf\x53\xf1\xcf\x33\xf1\xcf\x73\xf1\xcf\xb7\xe2\x9f\x17\xe2\x1f\x1a\x43\x25\xd1\x65\x22\xfe\x9b\x8b\xe1\xd3\x04\xfe\x01\xa6\xbf\x83\x3b\xf3\x58\x9c\xb3\x0e\x24\x83\xc5\x9d\x2c\x07\x48\x72\x31\xdc\x42\xfc\xc7\x04\x20\x6c\x79\x29\x80\x2c\xc4\x7f\xf3\x38\x15\x85\xc5\x22\x16\xcd\x0a\xce\x72\xe8\xa6\xe0\x2c\xf9\x2c\xea\x16\xcb\x4b\xf8\x57\xb4\xe6\x32\x89\x56\x87\x0b\xc0\x97\xe2\x3f\xd1\xf4\x26\x66\x9d\x71\x6f\x96\xb3\xfd\x78\x72\x1d\x51\xf2\x5a\xf0\x71\x64\x20\x71\xff\x1e\xff\x42\xbe\x19\xfd\xc6\xb7\x7e\x63\xed\xdf\xbe\xec\xf6\x7f\x5b\x0e\x5e\xbc\x14\xff\xbe\xec\xef\xff\xb6\x14\x84\x7f\x0b\xfe\xb7\x2b\xfe\x7d\xfa\x12\xfe\xfd\x1e\xfe\x7d\x27\xfe\xfd\xf6\xdd\x6f\xcb\x67\xfd\x7e\xff\xb7\xe5\xbb\xfd\x77\xef\xc6\xdf\xe0\x1f\x49\x67\x99\x49\x97\xa3\xa9\x75\x76\xd5\xd7\xe5\x8e\xe0\x6c\x86\xfa\xd7\xb6\x97\xf7\x5c\x1e\x07\x6e\x0e\xc4\x93\x55\x78\x1d\x7a\x61\x60\xd7\x72\x90\x60\xf6\x5b\x55\x73\xe0\x4c\xe9\xd4\xb3\x1d\xea\xa9\x5d\x8e\xcf\x04\xc3\x86\x19\x1a\xd2\x40\x1d\x03\x24\x87\xf6\x2a\xd6\x86\x5c\x05\xc4\xe3\x2d\x46\x7e\x8e\x7e\x14\x74\x8c\x91\xff\x88\x3f\xf0\xba\x0b\x14\xe1\x7a\xe3\x45\x56\xa2\xe8\xfd\xfd\x7d\xf4\x9e\xac\x4a\xa4\x65\x90\x0f\x2e\x2e\xd6\x11\x87\x50\x2c\x31\xb7\xa3\x8c\x65\x55\xa7\x7d\xaa\x9b\xa7\x3c\x5b\x5e\x55\x51\x31\xfc\xcc\x35\xa9\xd9\x15\x17\x87\xa7\x5b\xaa\xf2\xdc\xfe\x2b\x52\xe9\x1b\x69\x7e\x00\x24\xfe\x8b\x7c\x68\xfd\x0b\x90\xf8\x2f\xb9\x27\xff\x4d\xfe\x05\xa8\xfc\xd7\x7a\x54\xb6\x3c\x1b\xcf\x7f\x43\xd3\x5f\xc9\xfb\x3a\xfc\xb6\xea\xb1\xfe\xab\x42\x34\xa5\x96\x05\x09\xa2\x22\xad\xd4\xbb\xbf\x12\x11\x69\xd5\x43\x9d\xee\x64\x74\x68\x0c\xc7\x12\x3a\x94\xc9\xfc\x76\x72\x3a\xdc\x18\xc0\x5f\x31\x1d\x56\xf2\x6c\x53\x70\x96\x15\x58\x92\x8e\xb1\x5c\xf2\x9c\xf5\xab\x1c\x84\x51\xca\xa8\x8c\x00\x51\x35\xba\xd5\x79\x8f\xb8\x9d\x10\x0d\xb3\xe1\x37\x06\x0d\x97\x97\x95\xed\x0d\xf6\x8e\x1a\x59\xdc\x21\xb2\x1c\x38\x24\xa9\x2f\x0d\x1a\xd4\x05\x84\xf1\xe3\x2c\x54\x46\x90\x28\x50\x5b\x27\xa3\xda\xc7\x13\x8c\xc1\xbc\xcb\x4a\x7b\xc1\xcb\xe9\xb1\xc6\xe9\xb9\x48\x03\x89\x21\x33\xa3\xd8\xb8\x57\x75\x46\xcc\x99\xcc\xc9\x92\x98\xea\x52\x19\x50\x31\x63\x4e\x64\xbd\xdc\xd4\xdb\xe8\x23\x1c\xdb\x5f\x03\x7d\x78\x8b\x4a\xba\x2c\x92\xd6\xc7\xd3\xca\xdf\xe4\x79\x6a\xc2\x5a\xaa\x78\x1b\xd9\xba\x78\x1b\xb6\x8e\x09\x06\xe3\xc4\x8f\x13\x5d\xf8\x81\x61\xda\x14\xaf\xe4\x30\x43\x8e\x61\x70\x13\x6e\x24\x91\x1d\x39\x21\x59\x28\xe1\x11\xd3\xfe\xe2\x26\x59\x1a\xd4\x0a\x63\xf5\x88\x91\x70\x02\xae\xcd\x36\x5a\xb7\x73\x48\x36\x36\x68\x98\x78\x5b\xf3\xfd\xe2\xc7\x4e\xa7\x33\x54\xb1\x31\x5c\x83\x47\x37\x33\xb6\xda\x44\xd4\x0d\xa1\x60\xb2\xf2\x08\x06\x5d\xb6\x0f\xb3\x59\x2b\x71\x21\x4c\xa7\x4f\xbb\x5d\x6b\x65\x59\x17\x93\xa1\xc7\x73\xc1\x7e\xf8\xe9\xad\x1f\xd9\x5d\xe5\x84\x83\xa5\xd6\xf9\xdd\x82\x7a\x59\xa1\x6d\x77\x61\x76\x7c\x1a\x24\x60\xb5\x9a\x1e\xe9\x1a\xd6\x52\x62\x7d\x9b\xa2\x8c\x70\xcc\x48\x67\xc1\xf2\x45\xc7\x0b\x51\xd5\xe3\xf9\x61\x7e\xab\x45\x96\x56\x01\xd5\x41\x47\x04\x75\x71\x46\x0a\xa9\xe4\x89\x39\x67\xe2\x27\xd7\xea\x14\x59\x41\xc5\x75\xe8\x14\xfc\x2e\xa5\xe2\x57\xe6\xf7\x08\xc9\x82\x8c\x80\x24\x58\x7d\x1c\xc5\x64\x4e\x47\x89\x2f\x2c\x8d\x51\xb7\x1b\x8f\x72\xbf\xf1\x18\x21\x88\x19\x21\x07\x47\x78\x65\x1c\x6d\xa7\xc3\x0c\x0b\x2c\x0c\x99\x32\xba\xae\x3a\x0a\x14\xf2\xe0\xcd\x29\x59\x1d\x1c\x7f\xfc\x74\x3e\x14\x22\xc8\x1c\xb2\xbb\x2e\x79\x3e\xc9\x19\xa3\x13\x2e\x7e\x0a\x56\x6b\xb8\xd1\x2f\xf1\xd9\xfe\xe1\xfe\x9e\xad\x57\xe2\x93\x8f\xe7\x07\x27\xc7\xce\x87\xf3\xfd\x7f\x9f\xef\x9e\xee\xef\x3a\x9f\x0e\x77\xdf\xec\x1f\x3a\xbf\xdf\x1d\xec\x1f\xbe\x3d\xdb\x77\xbb\x39\xdc\x7f\xbf\x7f\xfc\xd6\xed\x17\x44\x47\xe7\xc3\x9b\x4f\xe7\xe7\xee\x40\x32\xea\xdd\x0d\xc5\x57\x94\x8c\x3a\x7f\xc4\x37\x71\x31\x61\xc9\x82\x0f\x05\x77\x76\xa9\xff\x1e\xe3\x4b\x51\xbc\xab\x53\x64\xe1\xce\xe1\xc1\xf1\x8f\x1d\xdc\x39\x38\x7a\x2f\xfe\x7d\x77\xba\x7b\xb4\x2f\x0a\x77\xcf\xc4\xff\xde\x9d\x9c\x1e\x75\xc6\xf8\x4e\xb4\xd9\x3f\x7a\xb3\xff\xb6\x33\xc6\x17\xe2\xc7\x35\xa3\x33\xc1\x12\xb2\x89\x60\x74\xe3\xc9\xe7\x2b\x96\x2f\x41\x50\x91\xbe\xba\x9d\x31\xbe\x15\xf5\x44\x85\xb1\xb5\x3e\xdd\xa7\x2e\x83\x05\xb9\x98\x5d\x63\xe2\xb2\x92\xcd\x50\x11\x06\x7d\xf5\xdd\xdf\xef\xd3\xe8\x92\x62\x2a\x56\x79\x9f\x46\x17\xc0\x84\x59\x93\x5e\x5a\xb1\xb4\x56\xb1\x13\xf6\x69\x74\x27\x9a\x41\xab\x5b\x69\xdb\x60\x4d\x75\xfd\x66\x6a\xec\xfb\x7b\xd5\x9d\xad\x78\x5e\x79\xaf\x82\xf8\x00\x46\x9b\x96\xd9\x48\x94\xc9\x2c\x9a\x82\x8f\xa0\xfe\xa2\x8e\x7d\x84\x5a\x52\xe6\xa9\x95\xff\x87\x4e\x0c\xaf\xa5\x68\x2e\xfa\xf9\x42\xa3\x04\x33\xa3\x1b\x80\x64\x3a\x62\x37\xa6\xef\x72\xf6\xe9\xf4\x30\xca\xa1\xd6\x3e\x8d\xae\x28\x8e\xf5\x80\x9d\x65\x56\xc4\x33\x3a\xec\x6c\xe6\xfa\x96\x3b\x91\xfd\xec\x38\x45\x43\x27\x57\xeb\x91\xe1\xdb\x54\x98\x2f\x01\xde\x30\xc3\xae\x1a\x64\x98\x94\x44\x9c\xc8\x95\x7e\xc0\xa4\x50\x3c\xe4\xb6\xd6\x90\x95\xa0\xf2\x58\xaf\x2f\x36\x96\xfc\x1f\x41\x8d\xa9\xc2\x7f\xac\xe0\x7c\xc6\xd8\x39\xb3\x45\x49\x14\xa1\xd2\x79\xd3\xe0\x60\x43\x28\x10\x68\x5b\x04\xba\x17\x2d\x8e\xaa\x45\x75\xe3\x8c\x9c\xaa\x08\xc8\xc9\x2c\xaa\x73\xee\x8b\x3a\x70\xe8\x3b\x72\xa3\x75\xf4\xc1\x95\xcc\x48\xb7\xdb\x81\xeb\x0a\x94\xdd\x65\xa5\xeb\xb7\xeb\xbb\xee\x48\xb2\xd0\x91\x51\x57\x3a\x42\x9c\x9c\x70\x10\x5e\xea\x3a\x3b\x56\x9d\x39\x9f\x3e\x2b\xf6\x59\x4d\xb8\x74\x53\xba\xf9\x06\x4d\x6a\xde\xc0\xfa\xfd\x41\x23\x26\x59\xbf\x3d\xf1\xd7\xfa\x74\x6a\xb1\x75\x00\x13\x04\xb2\xe2\x16\xb6\xab\x19\xbf\x3d\xcb\x19\xed\xd2\x95\xb2\xad\xc7\x46\x85\x7d\x20\xb8\x77\x27\x70\xa2\x3c\x2b\x2b\xd8\x27\x89\xb3\x4f\x54\x74\x56\x3b\x6e\x8b\x86\xef\xc6\x09\xce\x20\x5a\x8f\x8e\xe3\x65\xf5\x98\x07\xf0\xa6\x69\xb6\xa1\xdc\xa5\x62\x77\x06\x5d\x2a\xc2\xc1\x76\xb2\x8a\x88\x91\xa0\x61\xd6\x0b\x86\x93\x82\x58\x83\xab\xdc\x9e\x46\xc0\x67\x0f\x01\x0f\x84\xcc\xb4\x7b\xf9\x18\xf2\x68\x96\x0e\xc2\x24\x86\xb8\x7e\xf0\xbc\x91\xc1\x12\xb1\xc2\x83\x79\x88\xaf\xe9\x07\x08\x58\x80\x16\x83\x0d\x56\x41\x83\xed\x5e\xd1\x43\x36\xaa\xe9\xd4\xcd\xe0\x44\x28\x56\x6c\x91\x0a\x98\x19\xa2\x0f\x55\x65\x39\x1f\x0a\xea\xac\x35\xaf\x42\xb4\x53\x11\xfa\x40\x19\x5d\x03\x96\x10\x98\x2b\xf2\x61\x4d\x35\xcd\xb9\x9f\xda\xe5\xf9\x1c\xee\xcf\x07\x77\x0c\xce\xc9\x39\x04\xb3\xc2\x89\xa0\x39\x52\x32\x90\x7d\x80\x6a\xb0\x11\xe7\xb2\xbf\xac\xd2\x5f\x22\xfa\x93\xbe\xd4\x54\xf7\xa7\x3a\x49\x9c\xf8\x67\x7f\x58\xa0\xf7\xfe\x9f\x01\xfa\x6d\x1d\xa6\xc1\x41\xd7\xdb\xbf\x8a\x72\x62\x48\xe1\x85\xfc\xa8\x7c\xda\x20\xc8\x8c\xed\x1a\xbb\xaa\xf0\x46\x19\x51\x69\x9c\x36\x64\x84\x2f\xf5\x9d\x64\x06\x90\xe3\x7a\x40\xcc\xf9\xda\x18\x48\x97\x8d\x0a\x64\x86\x12\x83\x45\xe5\xe3\x20\x6b\xf1\x9e\x6e\x46\x84\xf4\x61\x89\xf1\x81\x2b\x97\x0c\xe4\x3d\x62\x84\x0b\x2b\xcc\x1b\x91\x42\xaa\xaa\x94\x2c\xdf\xe9\x0c\x6b\x43\xb8\x41\x1d\x2b\xc2\x28\x8f\x8b\x9a\x4c\xe9\xc6\xe9\xa2\x48\x73\x9b\xcf\x60\x12\xa7\x29\x65\xd2\xa9\x55\x1b\xc6\xdc\xc4\xa9\xfc\xc0\xcc\x6b\x3e\x4f\xe2\x14\x62\xdc\x19\x27\x84\x3c\x97\x16\xa2\x7d\xd7\xd1\xcf\xc9\x6d\xb6\x39\xd0\x69\xcd\x08\x87\x84\x66\x90\xc4\x2c\xa3\xee\xb5\x75\x48\x95\xcd\xb0\xfd\x47\xfa\x28\x44\x32\x6c\x00\x2d\x8d\xd3\x43\x21\xce\x71\x44\xdd\xe1\xbc\xec\x73\x62\x38\xe9\xde\x46\xa8\x4d\x39\x57\x19\x8e\x87\xc3\x95\xfe\x70\x9e\x6e\x0f\x10\x35\xea\x8f\x15\xae\x64\x36\xaf\x74\x16\x98\x25\x5c\x51\x1e\xf5\x41\x3f\x22\x33\x73\x87\xef\x74\x4a\x6f\x70\x45\xb9\x32\xa2\xf7\xb6\x8f\xef\x3f\xc4\x85\xb8\xa3\xd6\x14\x1c\x1f\xf6\xf5\x5a\x04\x83\x9a\x35\x72\xf2\x2c\x7b\xd1\x0b\x83\x85\x2b\x2f\x93\x6c\xea\xd8\x6f\xe8\x33\x00\xdf\x61\x52\xd4\x29\xe9\x63\xaa\x4a\xd4\x8c\xea\xdb\x19\xa7\x80\xba\x42\x0b\xb9\x09\x88\x6d\xf6\x15\x85\x1a\x0e\xd8\x8e\x55\x95\xde\x69\xb2\xce\x9e\xdd\x9e\x36\x75\xb6\xb3\x65\x61\xfe\x6e\xa5\x30\xf3\xbe\x29\x91\x01\xdf\x22\xcf\xfb\xe6\x50\xdd\x14\xb0\xd0\x7e\x5a\x46\xa7\x65\x70\x2a\xc2\x33\x81\x1c\x05\x15\x55\x01\xc3\x64\x87\x4a\x93\x64\xcd\x15\x4e\xe3\xec\x8a\x2a\x9b\x85\x37\x9f\xde\x0f\xdb\x13\x69\xb8\x70\x45\x79\xfb\x09\x18\x2d\xcc\x58\x3e\x6f\x43\x1e\xa1\xed\xb6\x6c\x4e\x9e\xac\x2a\x5d\x96\x81\x19\x83\xdc\xa8\x32\x95\x93\x8d\x7e\xf4\x7f\x0f\x16\x0f\x08\xe9\x6c\x6d\x5d\xea\x0f\xa5\xd4\xfc\x8e\x06\xae\x62\xe7\xa7\xbb\xc7\x67\xbb\x7b\xc0\xf8\x6a\x8d\xd5\x9f\xa1\xa6\x50\xf6\xac\x7c\xe7\xa6\x07\x59\xc1\xe3\x34\x55\x71\x18\x9c\x54\x61\x61\x05\x6d\x67\x5e\xad\x01\xca\x2c\xaa\x2b\x34\xf7\xe4\xd7\xb3\x15\xa4\x4a\xcc\xfa\xe5\x57\x4a\x2a\x5d\xca\x5b\xa3\xae\x85\x2a\x71\x5a\x94\xd3\x64\xba\xa7\xd4\xbc\xd6\xbc\x32\x1c\xd2\xf8\xc4\xd4\x8d\xab\x3d\x84\x45\x57\x9f\x9c\x8b\xbd\x1e\x16\xbf\xab\x00\x20\xd3\x95\xc6\x4a\x80\x5e\xf7\xe8\x37\xad\x80\x3f\x40\xd3\x4a\x56\x46\xf2\xd1\x5f\x37\x50\xb0\x40\x0d\xe3\xd4\x2f\xb7\x19\x4e\x87\xfd\x32\xa9\x90\x2a\xb8\x1e\x52\x1c\x20\x38\x48\x93\x44\xc3\x34\x49\xed\x8c\x50\xc8\x8d\x34\x62\xe3\x9e\x5d\xcf\x0c\x95\x7a\x90\xca\x2a\x0c\x13\x1c\xa0\xde\x49\x4e\xd1\xdf\x8e\x5f\x25\x7a\x90\x58\x0f\x52\x90\x64\x14\x8f\x5b\xf9\x28\x86\x41\xd4\x4a\x17\x76\x90\x26\x54\x0f\x53\xdc\xb8\x58\xc3\xa5\x1a\x75\x42\xfa\xdb\x93\x57\xa9\x1e\x75\xa2\x47\x9d\x92\xe5\x68\x32\x6e\xa5\xa3\xc9\xb8\x97\xc8\xc6\xd1\xb4\x66\xcc\x7a\xb4\x0f\xaf\x71\xd3\xf2\x0d\x67\x6a\xe4\x05\xe9\x6f\x2f\x5e\x5d\xeb\x91\x17\x7a\xe4\x39\x99\x8d\x16\xe3\xd6\xf5\x68\x31\xd6\xac\xe6\xdc\x7b\x89\xff\xe4\x09\x80\x36\xd5\xd1\x0e\xb5\x89\xc6\x99\x62\x8f\xde\xd4\x88\x65\xf2\x15\x8b\xa6\xf4\x2a\xe6\x9a\x15\x1a\xdd\xd0\xb1\x63\x36\x49\xbf\x70\x16\x13\xaf\xa2\xfc\xa6\x62\xbb\x16\x07\x19\xa7\x2c\x9e\xf0\xe4\x86\x92\xce\x65\x9e\xa7\x34\x76\x74\xc5\x7e\x43\xaf\xf6\xfd\xfd\x9a\x42\x13\x04\xde\xd1\xea\x90\x4f\xea\xea\x32\x4d\xfc\x72\xfc\x83\x3e\x0a\xae\x55\x74\xb5\x95\x5b\x8a\x7f\xd2\x6d\xae\x24\x0f\x5c\xad\xae\x0a\xf0\x13\xb7\x66\xcc\xaf\xeb\x6b\xc6\xfc\xda\xd6\x2c\x9a\x6a\xaa\x02\xfc\x1f\x5d\x53\xbd\x46\x54\x2a\xca\xef\xf8\x67\x5b\x4f\x07\x82\xad\xab\xab\xcb\xf0\x7b\x8a\xb0\xb6\xf4\xb5\xce\xba\x3b\x2a\xdb\x40\xf0\x99\x54\x6b\x36\x3a\xfb\x86\x9f\x84\x20\xaa\x9f\x41\xb5\xcc\x5e\xe9\x5f\x5c\xbd\xbf\x46\xb6\x62\x93\x2f\xb1\xa8\xf7\xc1\xad\x07\x6c\xc6\xb9\x4a\xa0\x2b\x10\x06\x51\x2c\xf7\xa4\x59\x63\xe5\x51\x70\x83\x90\xca\x7a\x34\x35\xde\x79\x74\xcd\x88\xa2\x61\xa7\x23\xb8\x8c\xe6\x1a\x4a\x2c\xad\x87\x62\x4d\x4b\xa5\x47\x78\x4c\x55\xed\x30\xc0\xf3\x3a\x35\x7d\x90\x2b\xbd\xa0\xda\x95\x32\xd8\x48\x80\xd0\xaa\x6f\xb7\xc7\x3f\x86\xcb\x57\x6a\x07\x6f\xaf\x56\xb8\x78\xa5\x8a\x33\xd9\x84\x85\xdc\x0d\x5b\xf9\x46\xd4\x0d\x27\x5f\xad\xa1\x5d\x8c\xdf\xa9\xf8\xf0\x7f\x52\x99\x71\xd7\x56\x0b\xfc\xa2\xdf\xd1\x7a\x6e\xc2\x69\xd1\xf3\xcb\x6b\x39\x86\xa0\xba\x53\xfe\x08\xae\xc0\x23\x63\x6a\x8e\x6e\x87\xeb\x7a\x78\x98\x15\x78\x6c\xef\x35\x1d\xd8\x8b\xdf\x31\x18\x77\xda\xb6\x2c\xae\x21\xa4\x88\x89\x0f\x8a\x1f\xb3\xa4\x7b\x50\x79\xed\x9a\xee\x99\x78\xa3\xe6\x02\xfb\x61\xdd\x3b\xdf\xa7\xd3\xc3\xfb\xfb\x3a\xb3\x96\x4f\xa7\x87\x3b\xae\x09\x4b\x32\x8b\xea\xaa\xdd\x26\xd9\x34\xbf\xd5\x92\xe7\x37\xff\x27\x1a\xc5\x5b\x7f\x8e\xc5\x3f\xfd\xad\xef\x7b\x9b\x5b\xe3\x7f\x0c\xd1\x4e\xf4\xdb\x37\xbf\x7d\x83\x76\xa2\xd1\x6f\x67\xbf\x15\xe3\x7f\xa0\x6f\x92\x1e\xfd\x42\x27\xae\x7c\xda\xed\xf2\xd1\x60\xbc\x23\xfe\xf1\x1f\xd6\x04\x5d\x90\x57\xaf\x1c\xaa\xd1\xa4\x3c\xee\x38\x91\x07\xae\x19\x04\x4c\x67\xe6\xf6\x2a\x81\xc4\xd8\x09\x6c\x54\xcd\x77\xe8\xad\x98\x74\x44\xb1\x19\xe1\x32\x2e\xe8\xa7\xd3\x03\x64\x7a\x19\xda\x4a\xf0\xd0\x50\xa8\x97\x06\xfa\x25\x9e\x2f\x52\x58\xcd\x8e\xad\x6d\x97\xe0\x27\xe7\x01\x47\xc1\xa8\x9e\x3d\x32\x47\xa7\xfe\xc4\x7f\x0f\xa2\x23\x37\x0a\xcf\x7f\x42\x85\xbb\x28\x26\xcc\xb1\x18\x74\x09\xd4\x1b\xc9\x23\x78\x6f\xcf\xef\xdd\x0a\xb4\xdb\xa5\x23\x29\x85\x9b\x00\xd3\xe3\x9d\xea\x27\xf5\x36\x54\x56\xe3\x97\xbd\xa1\xf8\x86\x92\x77\x5a\x39\xfd\x4b\xbd\x76\x5f\x67\x6e\x4a\xf3\xfc\xf3\x72\x61\x38\x53\x23\x4c\xba\xf6\x11\x7e\x15\x2f\x1a\x40\x6d\x0d\xf9\x3c\xe3\xa7\x62\xaf\x98\xf0\x7f\xca\xe8\x97\x05\x28\xcd\x6c\x58\x4e\x69\xc7\x1f\x81\x1c\xfa\x64\xc5\x4b\xd4\x8e\x82\xae\xdb\x12\x4d\x74\xda\x36\x5b\x06\x59\xd9\x98\x95\x95\x50\xa1\x61\x7b\x88\x1b\x2a\xf6\x84\xc0\x17\x9d\xb6\xf3\xac\xad\x42\x14\x9f\xaa\x40\x9f\xbd\x0e\x52\x58\x51\xfa\x8a\x66\x9c\xa8\x0a\x8d\x18\x71\x3b\xf8\x0a\x7c\x28\x55\x43\x23\x36\x54\xb7\x7f\x11\x17\xba\xf5\xe3\x30\xa1\xc2\x9f\x2a\x4a\xe3\xcc\x50\x15\x78\xba\x2d\xaf\x44\x45\x13\xb2\x81\x9c\xd6\xce\x59\x46\x04\x55\x53\x56\x3d\xac\x9f\x20\xaf\x4e\x50\xb7\x7b\xdc\xd4\x64\xe0\x56\x9d\xa6\xdf\x9f\x9d\x2d\xab\x99\xa0\xd7\xf0\xe1\x39\x8a\x8a\x6d\x9e\xb7\x55\xa0\xd8\xf6\x13\x78\xfb\x2a\xdb\x91\xed\xe7\xab\x67\xea\x34\x7d\xdc\x64\xaf\x28\x3f\xc8\x6e\xf2\x49\xec\xdc\x1b\xce\x94\xbc\xe2\x9a\x29\x87\xcd\x1f\x3f\x6b\xc1\xb4\x24\xa6\x69\x7b\x96\xb3\xf6\x93\xd5\x87\xb3\x93\xe3\x9e\xb4\x45\x49\x66\x77\x82\x1a\xb6\x23\x6f\x88\xaf\x46\x88\xdf\xfa\x71\x38\x81\xfb\xeb\x47\x8a\x3f\xd0\x86\x54\x88\x8e\x1e\x73\x09\x0c\x1f\x64\xff\x05\xad\xd6\x2c\x49\xd3\xe3\x65\x9a\x16\x28\x1a\xf4\xbf\x43\x5a\x97\x58\xc6\xd3\xa9\x0a\xf4\xd5\x29\xee\x8a\x49\x9c\xa6\x9d\xda\x5e\x46\x74\x4c\x56\xaa\xc6\xb0\x33\x8f\x27\xd7\x49\x46\xc1\xd7\x01\xeb\x8a\x43\x5e\xaa\x30\x3b\xc6\xb6\xd1\x04\x5d\x2f\x16\x43\x89\x7e\xbc\x98\x0c\x69\x6f\x46\xf9\xe4\x1a\x72\x12\x45\x79\xef\xc9\x62\x82\xe4\x43\x8e\xae\x12\xb3\x78\x5e\xe8\x5f\xf0\xa6\xce\x7b\xe2\x7f\x38\x29\x8e\xe4\xc8\x43\xde\x33\x7f\xe3\x22\xf9\x53\x7c\x10\xff\x53\x51\xd3\x64\x53\x05\x8e\x31\xc1\x44\xab\x52\xc3\xea\x3f\xf9\xd6\xcd\x97\x8d\x5b\x59\x4f\x4d\x78\x27\xeb\xb9\x0d\xd1\xd0\xfd\x3d\x2a\xc6\xf0\xa4\xa4\xee\xaf\x7f\xd9\xa7\x9c\xba\x05\x92\x89\x6f\x4c\xf0\xa2\xf7\xcb\x64\x8a\x94\x9b\x65\xb9\xb2\x77\xec\xbf\xa9\x1f\x11\x70\x34\x6e\xd4\xe6\x24\xa0\xcd\x91\x19\x46\x37\x08\xc9\xbc\x2c\x7e\xdd\x2e\x97\xba\xa4\x44\xdb\x30\x39\x76\x73\x7b\x60\x19\x27\xae\x67\x69\xae\xa6\x1f\x67\x7e\xf5\x4c\x3d\xfd\xf4\xb7\xf5\x96\x84\xc8\xea\x9c\x0b\x37\x07\xe6\xbf\x95\xc5\xa6\xce\xbd\x67\x73\xc3\x9b\x97\x11\x95\x2d\xdc\xb6\x0f\xd3\x86\xeb\x8b\x0a\x0a\x47\x7c\x6c\x32\x7f\xc9\xd7\x31\xd6\xed\x46\xc0\xc2\x50\x1e\x31\x64\x1c\xdf\x4c\xd4\xbf\xfe\x0e\xed\xfd\x91\x27\x59\xd4\xe9\x28\x16\xc4\x62\xd9\xb5\x18\x5d\x6b\x3b\xd7\x60\x85\xc7\x5d\xb9\x96\xc2\xd3\x88\x2d\x64\x6e\x61\xff\x3e\x32\x61\xa1\x65\xd0\xee\x9d\xc1\xb0\x8f\x9c\xaf\xe7\xf1\xd5\xce\x53\xf5\x69\xc1\xe8\x22\x66\x74\x97\x5d\x15\x3b\xcf\xd5\x37\xb9\x64\xf0\xe9\xa5\xfa\x64\x74\x23\x3f\xe4\xf9\xe7\x9d\xc1\x0b\xf5\x59\x3d\xf3\xc1\xc7\x67\x4f\xfd\x51\x40\xeb\xbd\xf3\xc2\xef\x54\x3e\x4f\xec\x0c\x9e\xea\x8e\xa5\xbc\x08\x1d\x3c\xfd\xf6\x85\x57\xf7\x40\x79\x32\xec\x7c\x3b\xd0\x5d\xdf\x32\x21\x85\x4e\x77\x06\xfd\xa7\xba\xdf\xdb\x24\x4d\x55\x28\xb8\x9d\xa7\xfd\xe7\xa2\x5f\x8b\x98\x30\x86\xcd\xc6\x46\xc4\xbb\xcc\xa9\x90\x70\x97\x76\x6c\x6c\x44\xb4\xcb\x51\xf9\x81\xf6\x04\xb1\x1a\xbc\xc0\x11\xc5\xab\x7c\x31\x18\xf2\x52\x27\x70\x62\x84\xf6\x0a\x08\x9d\x96\x11\x5a\x09\x85\x6e\x6e\x78\x8e\x22\xd6\x5b\xe4\x8b\x0f\x45\x84\x30\x45\x2d\xda\x4b\xf3\x78\x6a\xe8\xd0\x4d\x5f\xb0\xd1\x08\xab\x91\x9e\x3e\x6d\x18\xc9\x64\x2c\x79\x97\x33\xf5\x00\xc5\x45\x67\x85\x09\x27\xf3\x01\x82\x3c\x98\x9e\x06\xdf\xaf\x83\x59\xc6\x93\x11\xed\xe5\x03\x51\xcf\x79\xd8\x02\x35\x82\x85\x68\xf0\x50\x3f\x30\xb3\xac\xf2\x25\xa9\x7c\xc9\x49\xb2\x33\x82\x17\xf7\xb1\x34\xda\xf2\x87\x57\x91\xd6\x70\x8e\x4a\xdc\xf9\x23\xe1\x1d\x0b\x43\xff\x21\x18\xce\xe6\x71\x9a\x1e\x98\x28\xaa\xff\x3d\x48\x2c\x3e\xfb\xdf\xd6\x03\x31\xba\x1e\x8b\xab\x5f\xae\x28\x57\xe3\xab\xce\x82\x77\x48\x41\xe0\x83\xbc\x5b\xa0\x5a\x92\x0f\xa8\xf0\xec\xc9\x10\xc2\xc1\xaa\xba\xfb\xe3\xd9\x77\x01\x10\x32\xf8\xe9\x69\x9e\x73\xf9\xd4\xc7\xdd\xa5\x7b\xf6\x15\x10\xbb\xf8\x09\xf7\x55\xa6\x41\x73\xfa\x7e\x5e\xed\x7b\x05\x8d\x86\xac\x04\x1f\x65\x0f\x0b\x3a\x8a\x9e\x36\x2e\xca\x76\x64\x84\x3d\xc1\x1e\x44\x68\xc8\xea\xe6\xfa\xf4\x5b\x4c\xbd\x8e\xb9\xe8\x98\x11\x6e\xc0\x4c\x66\x11\xeb\x76\x37\x38\xc0\x26\x2a\x8e\xc0\x24\x77\x4c\x58\x8b\xeb\x1e\x73\x84\xcd\xdf\x09\xc2\x15\x73\xe0\x6c\x47\x16\x9b\x1d\x94\xa1\x21\x77\xc0\x01\xc7\x5d\xee\x00\x8b\x1b\x7f\x38\xa0\xbf\x58\x03\x7a\x84\x5a\x06\xea\x1d\x0b\x27\x75\xc6\x8d\xa9\xdb\xd9\x77\xd0\x99\x77\x72\x71\xb8\x62\xda\xad\xce\xdf\xe7\x4c\xc6\xdc\x04\xe6\x86\x72\xca\xf4\x45\x57\x21\x1c\x3b\x39\x1d\xfa\x83\xbe\x0c\xd6\xb7\xd6\x9e\x41\xec\x1d\xbe\x9d\xbd\xee\x6f\x67\x5b\x5b\x68\xc5\x46\xd9\xd6\x60\xec\xd3\x98\x32\xdc\x4b\xf4\xb6\xfd\x2b\x95\x9b\x49\x5a\x6d\xf2\x6a\xb8\xcc\xd3\x83\xfd\xb7\x6d\x13\x74\xbe\x0d\x6e\x01\x07\xea\x51\xd4\x90\xec\xd8\xb9\xec\x36\xa2\x0d\x7a\x7f\xbf\x41\x47\x39\x1f\x6b\x96\xa2\xe0\x8f\xc9\x40\xe6\xe4\x49\x1e\xfd\x48\xc7\x64\xa3\x5f\xca\xec\x15\xa2\x73\x41\x77\xe3\x34\xcd\x27\x52\x0e\xc8\x67\xb3\x82\x72\xd4\xb2\x3c\x92\xf8\xac\xa2\x20\xaf\x44\x4f\x43\xa6\xec\xf8\xb3\x92\x70\xb5\x3f\x23\x2f\x09\x8e\xb8\x67\x69\x36\x85\x4b\x41\x7f\x14\xcb\x29\x98\xd1\x69\x6f\x4e\xd9\x15\x8d\x98\xfc\x85\x10\xde\x88\xb9\x6b\x10\xdb\xe2\x24\x2b\x41\xc7\x29\x41\x51\xe6\x63\x72\x48\x8a\x01\x02\xfb\x12\x07\x6e\x82\x76\x64\xb9\xf4\x43\x93\x63\x10\xf0\xb7\xc3\x36\xa9\x9a\xd7\x90\xb9\xee\x02\x61\xd0\x37\x5a\xd1\x60\xc0\x3d\xb1\x36\x28\x7b\xc1\xf1\x8f\x94\xe4\x5c\xb1\xa9\xcb\x8a\x2f\x25\x60\x35\x4d\x0a\x5e\x61\xe0\xb0\x53\x64\x5c\x26\x2c\x2b\x37\x1a\xe3\x15\x18\x94\xfb\xef\x8e\xbc\xe6\xdd\x51\xd0\x38\xc1\xac\x6a\xcf\x89\x16\xf8\x2b\xca\xa8\x6d\x86\x75\xf3\xf2\xb7\x81\xa5\x89\xe6\xe0\xda\x36\xfe\xc9\xa4\xb2\xa1\x1c\x03\x22\x6f\x53\x69\x2e\x40\x5b\x0f\xcd\x29\x8f\xb5\xe1\x10\x6c\xb8\x2c\x48\x73\x68\x23\x92\xa8\x7c\xaf\x5e\x94\x12\x07\xa5\xc0\x4d\xba\xb9\x85\xf5\xda\xdb\x74\xc2\x16\x25\xd4\xcd\xfc\xcb\x40\x0a\x0d\x63\xe2\xd8\xae\x75\x28\x3d\x65\x9d\x1d\x03\x51\xcd\x08\x33\xa1\x0b\x2a\x8e\x11\xac\xdb\x65\x3a\x8b\xbf\x4a\x45\x95\x60\x31\x55\xfd\x50\xdb\xca\x48\xca\xa3\x04\x7c\xbd\x8d\x1b\xb1\xcd\x4c\x77\x67\xd2\x96\xdb\x89\xb3\xfa\x59\xe3\x0c\x0c\x4a\x5c\x57\x2b\xd9\x03\x75\xce\x9e\xef\xe7\xb4\xc1\xbb\x5d\xb9\xc5\xe9\x50\x7a\x75\xa9\xcc\x64\x8a\x23\x97\x6b\x3a\xb5\x8e\x8d\xff\xaa\xb1\x0f\x0b\x84\x8d\xcc\x89\x20\x6f\x38\x32\x37\xfc\xbd\x37\x09\x81\x26\xd2\x51\x5c\xf0\x16\xa7\x5f\x78\xc7\x2e\x3b\xf7\x97\xdd\xcd\x8a\x9c\xf9\x59\x91\x75\x13\x64\x25\x49\x8d\x75\xed\xe1\x45\x31\x8f\xaf\xf4\xfc\xb7\x75\x17\x36\x1d\x34\xaf\x0e\x64\xf2\x7e\x3f\x34\xba\xf7\x18\x17\x51\xeb\x81\x14\x9a\xfe\xe1\x95\xdd\x83\xcc\xc9\x16\x2c\x48\x60\xc4\x89\x71\x2d\x02\x67\x9b\x1d\x6a\x85\x1b\xa4\x23\xa2\x6a\x14\xc3\x3f\x4e\x1a\x74\x8b\x59\x8e\xcc\x69\xbc\xae\xa7\x26\xbe\x0f\x57\x25\x8d\xa8\x97\x1e\x51\xea\x6d\xf4\x19\xa9\x78\xd4\x9b\xdd\x06\x10\xdf\xdf\x4f\xe4\xff\xcc\x23\xb6\x35\x38\xbc\xbf\xaf\xba\x19\x95\x11\x47\x3b\x83\x61\x24\x80\xee\x76\xe1\x66\xda\xe9\x0f\x21\x78\xdc\xce\xb3\x61\xcd\x28\xe0\xd3\xd4\xed\x0e\xc0\x08\xd2\x3a\x29\x89\xfa\xcf\x87\xd7\xd0\xee\xdb\xe1\xa0\xd4\x42\xc9\xf3\x67\x9a\xc7\xa8\x5e\xfc\x26\xad\x28\x13\x68\xe7\xae\x47\x17\x48\x0d\x4a\x5c\x13\x35\xab\x21\xf6\x5c\xee\xff\xf9\xf3\x87\x07\x31\x5e\x1a\xee\x68\xfc\xab\x46\xf9\xae\x79\x14\x6b\xd3\x0a\x9c\xfc\x44\xb0\x0e\xce\x74\x20\xf3\x5b\xf3\x50\x10\x9d\x2e\x41\xf2\x48\x24\x05\xf8\x90\x9e\xc7\x57\x57\x74\x2a\x76\xf6\xfd\xbd\x96\x3b\x7f\x4e\xb8\x0c\xe2\x39\xe5\x51\x8e\x39\x4e\x5c\x5e\xf7\xf9\xb7\x0f\x23\x61\xcd\x74\x4d\xec\x3f\x97\x37\x7f\xfe\xe2\x6f\xf5\xa9\xa2\x10\x3a\x82\xc1\xf7\xa2\x3f\x79\xaf\x81\x17\xbe\xb2\xfc\xb3\x03\xf6\x55\x85\x7c\x11\x16\x7d\xeb\xb4\x7d\xeb\x65\xf0\x33\x55\x5e\xd8\xd6\x0d\x35\x9e\x5a\x79\x93\x29\xc9\xc4\xe3\xfb\x7c\xa9\x43\x26\x24\xa7\x93\x7c\x4a\x75\x96\x30\x86\x5c\x9c\x3f\xeb\x07\xdd\xe9\xa0\x16\xd0\xa9\x93\xc9\xfe\x38\xcf\x8c\xc7\xad\xd3\x95\x51\x53\x3d\x3c\x6a\x2b\xb3\xf2\x81\x64\xf7\xe5\x87\xd3\xf8\xd6\xdb\xa5\xcf\x06\xd5\x25\xb3\x72\x06\xd5\xda\x8a\x48\x31\xf9\xde\x6c\x9e\x36\x36\x35\x72\x07\xef\x2d\x28\xfd\xec\xae\xbf\xdb\x81\x23\xca\xe1\x7c\xf1\x34\x40\x8a\xa3\xdb\xe4\x68\x8b\x19\xf6\x7e\xba\x5c\xf8\xe2\x63\x28\xb5\xb9\xac\xba\xb7\x9d\x42\x61\x57\xaa\x2d\xfc\x3a\xa1\x56\x44\xc1\xe1\x55\xfa\x36\x94\x23\x7c\x19\x54\xcb\x11\x2d\x0a\x82\xb7\xb7\xb7\x5c\xdc\xbf\x08\xb5\x19\xb4\x07\x41\x22\xbc\xb1\xbe\xeb\x2b\x41\x89\x7e\x81\x67\x64\xdb\x3a\x14\x84\x1b\xf6\xa6\xc9\x76\x76\x99\x4a\xb3\x7b\xdb\xc3\x53\x5f\x06\x53\xed\xb4\x88\xeb\xd6\xac\xd9\x25\xae\xe4\x17\x8a\x9b\xd4\x24\xc7\x63\x48\x4b\x80\x4a\x9c\x0c\xb4\x20\x2f\x9e\xaf\x15\x2a\x85\x28\xe6\xa8\x3c\xb8\xa3\xec\xd0\x83\xdb\x10\x56\xc6\x97\x4c\x9e\xfa\x77\x42\x3e\xd4\x0f\xf9\xf2\x93\x5c\x83\xcc\xa4\x98\xc6\x05\x49\x1c\x41\x12\xa7\xc4\x08\x93\xc9\x2c\x4a\x5f\xf7\xd1\x2a\x26\x71\x4f\x19\x14\x1b\x11\x69\x49\xfa\xdb\xcb\x57\xe9\xf6\x72\x73\x13\xc5\xae\x96\xa9\x18\x2d\xc7\x38\xef\xc5\x3c\x5a\x22\x21\x46\xb8\x60\xb8\x10\xc4\x90\xff\x36\x4e\x53\x7f\x3f\xd4\x29\x63\x2a\x7a\x1e\x45\x26\x2a\x94\x3f\x41\x28\xd1\x87\x4c\x08\x03\x57\x39\xcf\x61\x13\x6a\x8f\x5d\x99\xbf\x8f\xf5\x8c\x0a\x1a\x34\xd2\x51\x82\x5a\x39\x9c\x52\xaf\x19\xae\x5c\x22\x33\x1e\xe5\x82\x51\xb1\xe0\xd6\x29\x10\xff\x12\xb8\xe2\xca\xfa\x0b\xe0\x3a\xcd\x1e\x03\xee\x77\xb5\xd4\xc6\x80\x4b\xe9\x67\xab\x70\x93\xae\xc9\xa6\x7b\xa7\x97\x97\x75\x57\x9c\xa2\x71\x8f\xbb\x91\x67\xee\xbb\x45\x54\x3b\x49\xee\x11\xda\xef\xcc\xe9\x83\x9c\xbb\x1c\x5b\x95\x54\xcb\x28\x99\x78\xaf\xc1\x48\xca\x28\x6a\x41\x39\x21\xd9\xcc\x59\xb3\x80\x10\x08\x07\x92\xdd\x97\xf9\x49\x3a\xb5\xf2\xdd\x44\x40\x4c\xa8\x76\xdf\x70\xa6\x66\x9e\x50\xd5\x7a\x50\x27\x7e\x9d\x5c\x41\xcc\x9d\x87\x24\x95\x94\x45\x74\xe7\x72\xfd\xac\x97\x14\xca\xa4\x47\x60\xb3\xc7\xa8\x96\x02\x22\x04\x3b\x16\x9e\x04\x23\xc3\x42\x2f\x1e\x3d\x37\xf0\x37\x36\x5c\x35\x4c\xf4\x8f\xe5\x7c\xb1\x95\xcc\xb6\xb2\x9c\x6f\xa9\x58\xe5\x53\x67\xda\xfe\x9b\x50\x8d\xa0\x93\xf5\x40\xa7\xb3\x7b\xe8\x04\x89\xb4\x16\x56\x02\x71\xba\x33\x76\x45\x39\xa9\x4e\x1f\x44\x1e\x2c\x8b\x87\x0c\xbb\x9d\x6b\x77\xaf\xd6\x06\xed\xc5\xe9\x6d\x7c\x57\x9c\x1a\x54\x74\xbb\x75\xf2\x51\x62\x4f\x34\x03\xa3\x2f\xc0\xe3\x9d\x7e\xde\x7c\xb4\x88\xa6\x30\x3b\x7f\xfc\xae\x91\xd3\xf3\x50\x3b\x4d\xa6\x12\xa5\x77\x8d\x08\x75\x65\x41\xa7\x9f\x9e\x03\xb9\x95\x14\x42\x15\x7e\x0d\x5f\x29\xc3\x38\x07\x9a\x61\x97\x5f\x0d\x1f\x26\x6a\xfa\x30\xd1\xf6\xd6\x74\x13\xb2\x03\x5e\x37\x5e\xcc\xd1\x35\x9d\x7c\xff\xb5\xbc\xb3\xdb\xb1\xc7\x9d\xf4\x6d\x4f\x90\xb6\x35\x14\x3e\xe2\xca\x97\xa2\x71\xc4\x06\xea\x9d\x23\xc4\x49\x6e\xe1\xd2\x44\x3b\xad\x27\xda\x39\x6a\x71\x92\xea\x43\x5f\x47\xab\x53\x84\x4a\x63\x5a\xb0\x41\x48\x6c\xf8\xc5\x06\x08\x62\x84\x12\x5b\xcb\x42\xb0\xac\x87\x20\x46\xad\x84\x2c\xd7\x41\x20\x6e\x6c\xd1\xc1\xc4\x97\xbc\xaa\x59\x1f\x38\xc4\x7a\x6c\x4d\x20\xac\x70\x4d\x4e\xd5\x68\xe2\x2e\xc6\x0b\xcd\xbe\x39\x5d\x56\xf2\x35\x38\xf5\x7d\xd9\xd4\x7f\xdf\xe7\x7d\x08\x90\xbe\x4c\xd3\x16\x87\xe0\x16\xbc\x07\x89\x36\x20\x39\x81\xff\x04\xc7\xfb\xd2\xeb\x4d\x14\x38\x43\x7b\x79\x39\x5c\xde\xe3\x5b\x5f\x1c\x74\x9a\xf8\x31\x72\x5b\xa0\x7b\xd7\xf1\xbd\xa2\x11\xc7\x6c\xac\x59\xd7\x9b\x46\x33\x4f\x86\xb9\x8e\xf5\xc6\x21\x75\x92\x83\x2d\xa6\x94\x97\xb5\xa8\x14\x7c\xbe\x03\x64\xf8\x50\x24\x28\xa6\x4e\x2e\xcd\x94\xc9\x42\x52\xae\x7f\xb9\xac\xd9\xfe\x2b\x37\xd0\xf8\xb0\xc0\xa1\x99\xef\x30\x2d\x3d\x9c\xe0\x25\xa1\x61\x5a\xf8\x09\x61\x5a\x56\x2a\x70\x82\x63\xbc\xc4\x10\xd2\xa7\xb2\x82\x62\x26\x0e\x62\x26\x12\x31\x53\x02\xb6\x36\xe7\xf1\x55\x34\xa9\xf0\x11\x28\x9a\xd6\x89\xf5\x37\x3c\x9a\x62\xd1\x83\xbd\xd8\x6f\xbe\x4a\xf3\xe7\x5c\x48\x0a\x8b\x46\xb7\xab\x00\xf4\xb5\x7e\x72\x7c\x7d\x31\xb2\x8e\xbd\x00\xa5\xe5\xed\xb4\xe6\x16\xa1\xa8\x72\xc7\xe9\x15\xe3\x58\xf7\x34\x64\xa0\xeb\x4b\xb0\xd3\x97\xd6\xb7\xd6\x68\xfe\x12\x9c\xa3\xfb\xfb\xc8\xdf\x73\x81\xf1\x2f\xc3\x1c\x3d\x06\xbe\x04\xd9\x3b\xe5\xdb\x41\xc8\x22\xe2\x7c\xf1\x6c\x98\xb9\xdc\x6d\xf8\xce\x98\x07\x9f\x98\xd8\x60\xd9\x8e\xff\x31\x43\xfa\x45\xd6\x39\x58\x35\xa1\xf3\x21\xf4\x8e\xbb\xe1\x9f\xd6\x02\x94\x18\x80\xc2\xd1\x6b\xb7\x77\x61\xe9\x24\x4e\x49\x12\xc0\x96\x48\xd8\x60\x4f\xfb\xd0\x55\x62\xf4\xe7\xb8\xc0\x1b\x1b\x0c\xa7\xf5\x9c\x6e\x5c\xb7\x49\xaf\x78\x14\xe3\xa5\xb3\x45\xaf\xd6\x6d\xd1\x60\x83\x5a\x75\x34\x0d\x7c\x5c\xf4\x46\x95\x1b\x73\x11\xf3\xc9\xf5\x96\x82\xbe\xd3\xd2\x8c\x14\x70\xc8\x66\xa7\xb3\x47\x29\xa6\x59\x75\xbf\x9a\x41\x87\x1c\x5b\xf5\xb4\xda\xb2\x6b\x36\x69\xbd\x7a\x5a\x2b\x9d\x8d\x8e\x16\xb2\x03\xde\xa0\x47\x41\x07\xbb\x55\x2c\xfc\x65\xe5\x81\x51\x3f\x2c\x5e\x1c\x00\x43\xb5\xb7\xdf\x41\x2d\x2d\x40\xd4\xa8\x22\xbd\x37\x67\xee\x3e\x64\x16\x34\x62\x38\xf6\x98\x93\xef\x6a\xa4\x1e\xd9\x81\x92\x7c\xfc\x1e\xae\x83\x77\xf5\xef\x42\x35\x9a\xa7\xf7\xc2\x09\xc9\x1c\xde\x24\x73\xb9\x92\x47\x68\xba\x70\x5a\x43\xef\xeb\x2c\x52\xe8\x6d\x7b\xc2\xa3\x04\xa7\xb8\xc0\xb1\x0b\xde\xcb\x26\x4b\x8c\x75\xb7\x88\xa1\x62\x59\x49\x18\x4e\x08\xe3\xd2\xa2\x60\x2f\x5e\xc4\x97\x49\x9a\xf0\x84\x16\x91\xca\x56\x89\x04\x99\x58\x8d\x2e\xf9\x78\xb8\xd1\xc7\x53\xf3\x04\x34\x64\xd8\xf4\x82\x27\x4e\xc3\x61\xa2\x2e\x33\x38\x99\x2a\x69\xbe\x7c\x3e\x83\x84\xfe\xf0\xa7\x7c\xba\x94\x0f\x3f\xe1\xdb\xb7\x6b\xe4\xf1\xf2\x59\x1d\xf6\xad\x01\x09\x8e\x49\x52\xd1\xb1\x3f\x0e\xf7\x82\x3d\x0c\x19\x8f\x81\xca\x0d\x56\x79\x59\x8b\xd1\x0a\x9e\xce\xaa\x78\xc5\x31\x2e\xa4\x96\x12\xc2\x57\xc7\x5c\x70\x77\x52\xac\x13\xc3\x2e\x33\x46\xe3\xc9\x35\x18\xe5\x46\xa8\x95\x91\xb8\x4c\xea\x6c\x2b\x5e\x3a\x5a\x2a\xcc\xb0\x52\x28\x65\x25\xa1\x7a\x8b\x45\xa8\x15\xf3\x28\x41\x3b\x8c\xc8\x2c\x09\x43\x2e\x16\x2e\x62\x24\xd1\x37\x20\xaa\x2c\x62\x62\x16\xd1\xe8\x54\x57\xce\x1a\x26\xfe\xca\x71\x1c\x32\x24\x6b\xd6\xd0\x65\x6e\x5e\x5a\x75\x2a\xc3\xb5\x87\xc3\x65\xca\x37\x60\x1e\xcd\x48\x62\x24\xb1\xe0\xba\x8c\xde\x4b\xab\x2d\x65\x70\xa5\x64\xd5\x2b\xc5\xec\x0b\x5f\xa3\xc9\xc4\xb6\x48\x5e\xbf\x7e\x8e\x53\xf2\xb2\x9b\xe0\x25\xf9\xae\x6b\x6f\x13\x59\x07\x0c\x4d\x74\x7e\xf7\xd3\xdd\x5f\x5a\x74\x34\x1b\xcb\xd4\x05\x51\x0e\x5c\x91\xb8\x42\x52\x84\x73\xab\xa7\x9c\x8d\x5d\xf8\xea\x0c\x64\x1c\x8d\xb4\xe8\x8e\xce\x17\xfc\xce\x17\x9f\x5e\x36\x52\x28\x85\xbb\x89\xcc\x45\xef\x92\x2a\x0f\x2d\x35\xac\x65\x60\x0d\xe7\xe9\xa3\xc5\x89\xb7\xfc\xa3\xb3\x1d\xf2\x92\x64\x62\x93\xe5\xa8\xdb\x8d\x72\x12\x06\xa4\xd2\x94\xcf\xb6\x20\x62\xed\xc0\x36\x83\x39\x54\x45\x13\x00\xe8\xce\x68\x4d\x34\x97\x96\x80\xfa\xd0\xee\x3a\xb1\x89\x93\xca\xc6\xcd\xc5\x96\x2d\xa3\x0c\xe7\x38\x91\xd1\x8f\x4d\xf7\xb1\xea\xbe\x28\x09\x04\x26\xcf\xb8\x34\x67\x75\x9a\xe3\xe7\xea\xc1\x21\x25\x89\x4c\x70\xa6\x22\x02\x15\x78\x69\xbf\x40\x68\x1f\x3c\x91\x31\xf5\xb5\xad\x65\x04\x02\x52\x32\x8b\x26\x68\x95\xc8\xc8\xe0\x8e\xf6\x74\x4a\xfa\xdb\x53\xeb\x72\x3c\xd5\x56\x0d\xd7\x24\x1d\x4d\xc7\xad\xca\xa3\xe3\xb5\x32\xab\x32\xda\xb9\x6b\xc7\xb6\xea\xda\xfa\x24\x5b\xab\x90\xe1\x0c\xcc\xa0\xa7\xc3\x45\x49\x26\x78\x4e\x66\x6a\x2c\x7c\x43\xfa\xdb\x37\xaf\xe6\xdb\x37\x9b\x9b\xc8\x74\x31\x1b\xdd\x8c\x2d\x74\x57\x3a\x4f\xc7\x67\x7a\x57\x44\x0b\x84\x2f\x49\x7f\xfb\xf2\xd5\x95\x06\xf7\xd2\x6d\xba\x18\x5d\x8d\x2e\xc7\x63\xd4\x4a\xd4\x16\x67\xf8\x0a\x2f\xf1\x1c\x6f\x0c\x50\xc9\xc2\x17\x18\xf7\x83\xdd\x78\xdf\x37\x3e\x82\x24\xfe\xa6\x63\xc1\x46\x33\x84\x26\x2e\x49\x02\x9a\xec\x70\x4b\xc4\xd5\x2d\xa1\x69\x19\xd0\x10\x58\xf5\x02\x7f\x3b\x78\x8a\x2a\x96\xfc\x9d\x37\x9f\xde\x77\xa4\x6c\x92\x4a\x91\x53\xd5\x7e\xf1\x5c\xec\xec\xb4\x22\x01\xc9\xba\x4b\x32\xe8\x72\x3c\xf1\x5a\xbc\x14\x0d\x26\x15\x6d\xa9\x16\x7c\xdc\xaa\x83\xa7\x50\x79\xea\x9a\x10\xca\x7a\xd7\x24\xd6\xf2\x15\xf0\x4b\x58\x4d\x05\x4f\x70\x8a\xa7\x78\x63\x63\x09\xab\x00\xf9\x9e\xaf\xa1\xc5\x8c\xc4\x5a\xa4\xba\x46\x7a\x80\xa7\xdf\xbe\x40\xdd\xee\x46\x45\xc0\x9a\x81\xaa\x2c\xe0\x5d\xcf\x78\x34\xc3\xd7\x38\xc6\xa9\x4b\x6a\xbe\xaf\x61\x17\x2a\x52\x68\x78\x9f\x97\x15\x02\x92\x4b\x89\xcf\x97\x76\x5b\x79\xa3\x28\xec\xdb\x6d\xea\x57\x21\x70\x40\x05\x15\xc7\x7b\x96\x2f\xa5\x11\x5d\xa0\xbd\xf0\x92\xd3\x3a\xd3\x18\xa8\x2e\x2a\x7a\x03\x7a\xdb\xbe\xf3\x14\x4a\x95\x77\xba\x87\xc5\xa2\x3a\x29\xa4\x59\x2a\xaa\x0a\xc9\x41\x3c\xb6\x18\xe4\x8e\xc2\x43\xc1\xcb\xbf\x04\x55\x28\xac\x7d\x35\x58\x55\x99\x0d\xb8\x17\x2d\xde\xdc\xf1\x3a\x4f\x12\x23\x42\x14\x92\x6d\x9f\x26\x13\x6e\x22\xec\x42\x43\x6a\xa3\x85\xcc\x9d\x58\x24\xb5\x81\xc5\xf5\x43\xf0\xea\x46\xda\x46\x39\x01\xd6\x32\x0c\x19\xee\x92\x4c\x48\x3f\xad\x0e\x74\xad\xa2\x0d\xba\x63\xe9\xb8\x18\x81\x54\x05\x51\x5d\x92\x35\x49\xdd\xe4\xf5\x55\x33\xee\x5f\x1d\x2c\x2b\x5d\x75\x88\xd5\x95\xcf\xfd\x70\x1f\x23\x8a\xf9\x58\xa5\xc6\xb5\xb6\x39\x2c\x08\xcc\x55\x18\x2a\x9e\xb5\x13\xed\xd8\x6d\x0a\x51\x32\x8b\x3a\xe2\x4e\xe9\x98\x60\x84\x3a\xd1\x9c\x03\x53\x36\x76\x26\x92\xed\xdc\xf2\x88\x62\xf5\x01\x5f\xf0\xc8\x9d\x17\xc2\x89\x8d\x7e\x8e\x93\x9e\xc6\x3c\x1a\x42\xab\x0c\xab\x07\xae\xa6\x6a\xca\x0c\x97\x30\x31\x68\xc5\xa9\xbf\xdb\x95\x63\x03\xc4\x58\x87\x40\x73\xf2\x2b\x61\x6e\xbb\x0a\x36\x8e\x63\xf3\x78\xe1\x79\x4f\xb8\x16\x81\x9d\xce\x70\xe0\xfe\xa6\xa3\xfe\xd8\x33\xe1\xb1\x16\xa1\xfd\x6d\x6e\x1d\x66\xf8\xe6\x26\x72\x2c\xe7\xac\x97\xc7\x88\x8f\x1b\xb2\x4f\x38\x76\x87\x8f\x1d\xc1\xbc\xa9\xf3\x71\xab\xce\x48\x4f\xf9\xaa\x18\x03\x05\xc7\x65\x45\x10\xb0\x25\x84\xe2\xf2\x9c\x4c\x6e\x95\xf5\x27\xe8\xc4\x37\x06\xd2\x83\xba\xd2\x33\x7a\x48\x47\x03\x3d\x38\x0a\xe7\xf8\x61\xbd\x09\xc7\x56\xd8\x17\xbc\x58\xad\xf6\x84\x35\x68\x4f\x18\x08\xab\x76\x1a\xfb\x3c\x88\x2d\x07\x37\x1b\xc5\x03\x37\x6a\xae\x5b\xa7\x5f\x5f\xe7\x44\xa3\xc3\xa6\xa8\x21\xac\x07\xb2\x89\xd2\x2a\x14\x26\x22\x2f\x95\x82\xf9\x15\xe5\x11\x47\xdb\x10\xae\x37\xef\x76\x93\x1a\xff\x82\x7c\x73\x80\x63\x84\xb5\x23\x6c\xb7\x1b\xe9\x3f\xc5\x69\x8f\xad\xf7\x49\xbf\xc6\x29\x64\xe5\x89\xc6\xea\x22\xad\xde\x9c\x96\x49\x16\xa2\x77\x5c\xa7\x26\x6f\x25\x36\xe4\x81\xd6\x5d\x67\xfe\xd5\xe8\x25\x97\x74\x95\x6e\xdf\xff\x97\x20\x0b\x65\xf2\xc4\xb0\x34\x99\xc7\x4e\xd4\x38\x34\xfc\x25\x44\xe4\x24\x51\xfc\xce\x71\x3c\x07\x66\x62\x8d\x52\xe0\xfb\x6f\x1b\x95\x02\x3e\xcb\x99\x5b\xd1\xd8\x63\x3f\x81\xe9\x54\x22\x5a\x21\x44\xec\x95\xc7\xf0\xa4\x25\x49\x20\x1a\x31\x8f\x52\x9c\x23\x94\x91\x5c\x00\xf7\x21\x51\xe7\x49\xfa\x6e\x45\xb1\x62\xe2\xaa\x3a\x01\x75\xc2\x04\x9b\xfa\x45\xf5\xd1\x28\xec\x4a\xc6\x53\x95\x08\x51\x4a\xc7\x13\x41\x91\x1e\xf5\xad\xeb\x32\xa6\x45\xfa\xba\x61\x51\x2b\x23\x89\x18\x70\xd0\x7f\xfa\x1c\xed\x2c\x7b\x71\xf1\xb3\xf4\xcb\x52\x6d\xd1\x50\x7c\xd3\x3f\xd4\x93\x51\x66\x0c\x5e\x68\x4f\x25\xa0\x43\xad\xc2\xba\x9a\xc8\x03\x75\x0e\x00\xe3\xc2\x17\x67\x26\x15\xa3\x98\xef\x9f\x3f\x72\x71\xcc\x06\xc8\xf1\xda\xa5\x91\x3b\x28\xf5\x79\xd2\xa5\xae\xc6\xe9\x70\x52\x92\x58\x2d\xd7\xd2\x59\xae\xdd\xdc\x5f\xae\xc9\x83\x0b\xb5\x5c\xbb\x50\xb6\x5b\x7f\x3d\xd2\xba\x7e\xcb\x47\xe2\x2f\xeb\x49\xe5\x8a\xab\x70\x5c\xeb\xdb\xb6\xc6\xbf\x2b\x3c\x51\xb5\x72\xb5\xd5\xea\xc5\x0f\x68\xf5\x02\xdd\x50\x5e\xa7\x11\x52\xd0\x6b\xad\x90\x3b\xd5\x50\xc5\x67\x39\x75\xee\x53\xac\x1a\x7b\x34\xdf\x6f\x89\x05\xfe\x64\xae\xf6\x22\x0f\xe9\x4a\x2b\x57\x30\x91\x0c\xe7\xf2\x46\x20\x89\x63\x22\x57\x3b\x9a\xbc\x31\x60\x3c\xbf\x37\xd9\x41\x2b\xf4\xe9\xd2\xe9\x37\x36\x07\xee\x44\xbe\x6b\x50\x14\x7b\xdb\x1e\x14\x16\xea\xa6\xba\x8e\x8b\xfd\x1b\x1d\x89\x21\x21\x99\xba\x6c\x3c\x2e\x3b\x70\x84\xb3\xf1\x2a\x13\xd7\x3e\x68\x10\x6a\x80\xac\x73\x50\x48\x77\x1d\x3f\x30\xd7\x0f\x4f\xc9\xb5\x40\x32\xa5\xe7\x4b\xcc\x8f\x41\x3f\x12\x93\xdc\x24\x24\xdd\x8e\x5f\x93\xfe\x76\xbc\xb5\xa5\xc3\xbb\xe5\xa3\x78\x8c\xd3\xc6\xbb\x57\x14\x23\x50\xb9\xc8\x3e\xc5\x25\x5c\xe0\x8d\xbe\xba\x87\xd3\x6e\x37\x73\x4d\xd0\xd2\xcd\x01\x5e\xd6\x5f\xc0\xc5\x98\x2c\xbd\x19\x37\xbb\x43\x55\x6e\x1a\xa9\xee\x91\x97\x50\x30\xdd\x84\xf4\xb7\x93\x57\x99\x64\x4c\x35\x0b\x97\x6c\x6e\xa2\x13\x6e\x4e\x2e\xa0\x61\x94\x8c\xb1\xaa\x26\xfe\x94\x41\x85\x9d\xc5\x6f\x72\xee\xf4\x37\xa7\x36\x9c\xab\x9e\xfa\x41\xbf\xee\x2a\xfd\x2b\x92\x79\xf8\x5c\xaf\x84\x67\xab\x34\x49\xd6\x2a\x4d\x98\x60\x3e\x4e\x69\x36\xa5\x4c\x11\xb8\x0c\xe7\xea\x9d\xc7\x0d\x14\x88\x59\x8d\x29\xc2\x39\x87\x00\xce\x39\xf2\x66\xa6\x85\x75\x19\x9e\xc8\x15\xf8\x8d\xe4\x79\xb6\xfe\xed\x57\x88\x8d\x4d\xaf\xbf\x26\x10\x8b\x79\xff\x55\x8a\x46\xf5\x66\xe6\x6a\x7a\x8c\x9b\x8f\xfb\x24\x6c\x3a\xe8\x54\x0d\xba\x74\x91\xa7\x1a\x77\x7b\xd4\x71\xa7\x5b\x26\xb6\x34\x84\xe1\x51\x56\x47\xe7\x5f\xf5\xa4\xad\x01\x6f\x9a\x18\xe4\x0a\x2e\x02\x67\x96\x64\xba\xa5\xe6\x91\xc2\x72\x3d\xc2\x40\xa9\xf2\x94\x6d\xa7\xc9\xb0\x1c\xc4\x4c\x8b\xdb\x78\x5a\x6a\x3b\x88\xc5\xb0\xdb\x41\x85\xda\x62\x10\xfd\xc0\xa6\x61\x50\xce\xdb\x62\xc6\x79\x4a\x7b\x49\x36\xcb\xa3\xce\xa7\x82\xb6\x7f\xd7\x29\x6e\x71\x3b\xce\xa6\xed\xdf\x05\x45\x78\xb5\x88\xf9\xf5\x6b\xf4\x7b\x9b\xe7\x6d\x08\xd6\x00\xd2\x6f\x9b\x2b\x46\xa8\xd7\x41\x98\x47\x1d\xf1\xad\x23\x79\x96\x8f\x9c\x1c\x69\x1f\xb6\xdd\xd0\x07\xcc\x09\x21\x2d\x83\xef\xaa\xc7\xc9\x7c\x12\xa7\xbe\x06\xc3\x48\xdc\x9a\x0a\x38\xe7\x5f\x9b\x71\x8a\xc3\x1e\x13\x36\xca\xb7\x06\x63\x30\x35\xb2\x11\x94\x73\x15\x52\x56\xf6\x3c\x8a\xc7\xa4\x28\x75\x94\x5d\xe5\x7f\x03\x10\x0c\x19\x96\x55\x9c\xdc\xf8\xb4\x57\x2c\xd2\x84\x47\x1d\x31\xb9\x51\x8e\x7b\xbd\x5e\x3c\xf6\xbf\x16\x52\xc7\xe6\xc4\x56\xd6\xc9\x23\x00\x13\x84\x90\x7c\x87\xcb\x3a\x52\xd7\x38\xcc\x46\xf9\x78\x87\x13\xf1\xbf\xa1\x10\x9c\x72\x43\x87\x3b\xff\xec\xa0\x6e\xb7\x90\xe5\xe2\x7f\x43\x9d\x69\x0a\x20\xb4\x7d\xe0\x98\x24\x08\xc7\x3d\x46\xa7\xcb\x09\x8d\x60\x15\xc9\x6b\xaa\xa4\x27\x58\x64\x73\xac\x5f\x84\x8f\x31\x35\xda\x2b\xf3\xf8\x12\x3e\xf6\xd7\xbc\xc9\x65\xc0\x94\x80\x33\x2b\x8f\x9c\x4b\x0a\xe7\xa8\xf5\x51\x7c\xb1\x8e\xd9\xe6\xf5\x99\xbc\x8e\x55\x70\xea\x1a\x1b\xfd\x41\xff\x81\xf7\xa2\xd5\xe8\x7a\x2c\x19\x9b\xc9\x67\xc1\x79\x52\x30\x37\x08\x9f\x13\x53\xc9\xf8\xad\x7d\xc7\x5d\x2a\xe6\x50\xbd\x23\xe1\xc9\x03\x6d\x12\x84\xf0\xb4\xee\x95\xd6\x8f\xc1\x54\xe0\x14\xe1\xd9\xba\xd7\xdc\x29\xc2\x2b\x87\xeb\x1a\x2e\x34\x6f\x36\x2f\xc9\xcc\x71\x77\x77\x78\x7b\x7c\x43\x16\xfa\xa6\xc6\x57\x0e\x3b\x70\x49\x42\x46\xe7\x46\x47\x64\xc6\x77\xe4\x2a\xdc\x8d\x97\x01\x47\x72\x87\xb0\xfc\x04\x8b\x74\xe5\x2a\xc1\xf5\x41\xbb\x08\x12\x89\x5f\x85\x0e\xf9\x08\xdf\x92\xfe\xf6\xed\xab\x89\x3e\x8b\xb7\xfa\x2c\xee\x93\xc9\xe8\x76\x8c\xbf\x90\xe5\x68\x5f\x9c\xc5\x13\x09\x90\x3a\x8b\xfb\xa8\x75\x31\xfa\x32\x26\x27\x65\x32\x8b\xee\x90\x1e\xef\x8c\xf4\xb7\xcf\x5e\xe9\x59\x6c\x9f\xe9\xce\xce\xc9\xd9\xe6\x00\x1f\x91\xbb\xd1\xcd\xe8\x6c\xac\x63\x00\x6c\x10\x72\xd4\xed\xca\x39\x44\xe7\xf8\x08\x95\xf2\x6f\x07\xc0\x0b\x6d\x0b\x6f\x2d\xe3\xe1\x46\x77\xe4\x37\xbd\xc4\x73\x54\x91\x8d\xbe\xab\x71\xde\x6a\xf2\x12\xb0\x4a\x17\xa2\x5d\x04\x76\x3a\xff\x4c\xa6\x34\xe3\x09\xbf\x33\xee\x56\x89\x3e\x33\xac\x07\xb1\x44\x2f\x53\x9b\xe6\x0e\x5e\xcf\xa4\x81\x86\x7d\x38\x8c\x1d\xf7\x7b\x97\x0f\xff\xae\xc6\x9e\x34\xe3\x94\x1d\x26\x85\x6f\xa2\xf9\xdd\x33\xc7\xa9\x03\x4a\xdd\xc2\x86\x98\x0c\x21\xdf\x25\xb8\xfa\x8c\x7e\xe1\xca\x07\xc2\x78\x07\xc9\x31\x0f\x38\x9d\xc3\x3d\xd3\x12\x3b\xfe\x2a\x29\xf4\x37\xfd\x1a\xe5\x18\xb7\xb7\x68\xef\xed\xfe\xbb\xdd\x4f\x87\xe7\x17\x7b\xbb\x1f\x77\xdf\x1c\x1c\x1e\x9c\x1f\xec\x9f\x91\x95\x17\x68\x05\xa4\x1c\x13\x63\x45\xfc\x72\x9e\xfc\xc4\x4f\x1b\x59\x05\x32\x65\xb9\x41\x55\x86\x1b\x03\xec\x84\x53\x11\x3f\x3d\x0e\xc0\xb4\x96\x21\x54\x44\xb9\x8d\x9d\x62\x4b\x75\xd0\x14\xf1\x45\x45\x4b\x11\x55\x9d\x28\x29\xc3\x8d\x81\x4c\x80\xb5\xc7\x2b\xe0\x0f\x3c\xf0\x07\x3e\xf8\x03\x0f\xfc\xc1\x57\x82\x3f\x58\x0b\xfe\xa0\x02\xfe\x60\x1d\xf8\xb4\x77\x74\x70\x7c\x70\xb4\x7b\xe8\xaf\xc6\x9e\xbe\xae\x3f\xf3\x55\x28\x92\x5a\x15\xef\x1e\x2f\xdd\x97\x58\xa5\x51\x0f\xd8\xd4\x4f\x99\x1b\x24\xcb\xa9\xdf\x4e\xb2\xb6\x7c\x2f\x32\xae\xef\x2a\xa6\x73\x47\x27\x29\xb7\x5a\x43\x9c\x3f\xd8\xb5\x4a\xd4\xbf\xae\x57\x4d\xe2\xbc\x94\x93\xea\xdd\x8e\x3e\x38\x80\xac\xb8\x76\x80\x90\x17\x7f\x0c\x4a\x82\x36\x0f\xf5\xbf\x67\x12\x76\x3e\xdc\xef\xde\xc3\x28\x59\x7a\xb1\x59\xd7\x76\x28\xab\x3e\x04\x9f\xc7\x7c\x3e\x72\xfe\x6e\x9b\xc7\xf5\xff\xb8\xf9\x7f\x7a\x18\xe2\xe0\x59\xd4\x4f\xd0\x68\x13\x33\x85\x2d\xc9\x67\x99\x28\xf7\x94\x93\x95\xa3\x68\x31\x26\x56\xf4\xb6\xfd\x99\x8b\xe3\x75\xbe\x7f\xf4\xf1\x70\xf7\x7c\xff\xe2\xe4\xf8\xf0\x97\x0b\x63\x39\x47\x4e\xf5\x09\xfb\xa3\xde\x0d\xfb\x72\x39\xf9\x4c\x39\xa1\x3b\x70\x55\xc5\x45\x91\x5c\x65\x28\x5a\x95\x98\xa2\xe1\xaa\x0c\x12\xa7\x3a\x2d\xbc\x84\x0d\xb5\xc5\x84\xd7\x65\xad\xf8\x43\xbd\x37\xc9\x6a\x90\x92\xea\x2d\x9d\xc5\xcb\x94\xbb\x3e\x85\xe4\x0f\x0d\xf6\xdb\xa6\xe0\x20\x1e\x17\x2f\x04\xf0\x53\x3a\xb3\x59\x85\xaf\x21\xd7\x13\x3b\x5f\x9b\x0c\xd4\xda\x51\x06\xc9\x40\xa5\xcf\x3f\x73\x92\x80\x06\x39\x51\x7e\x8a\x99\xbd\x8a\xeb\x90\x64\xea\xd8\x04\x2a\xf0\x5b\x85\xec\xd5\x3e\xde\x0e\xec\x86\x51\xc5\x21\x0b\x6e\x9d\x8c\x6a\x93\x88\xca\x69\x62\x80\x19\x61\x6e\xd2\x06\xd5\x3e\xda\xc2\x7d\xeb\x44\xad\xb0\x06\x26\xc0\x2d\x1c\x70\x8b\xcf\x29\x7c\x79\xa7\x85\x4c\x50\x96\xc0\xa7\x37\xbc\x94\xd6\x4a\x36\x4b\xfc\x68\x32\x1e\xe5\xbd\x27\xc5\x62\xbc\x39\xf0\x92\x7b\x48\xfd\x8e\xaa\x6e\xcc\x97\x9d\x60\x27\x61\x91\xb2\xc1\x09\x3e\x97\xd2\x14\xc5\x79\xdc\x71\x66\x43\x95\xeb\xa3\x1d\x10\x17\x44\x47\x18\xc1\xa9\x0b\xdd\x56\xb1\x39\x68\xc5\x3d\xdd\x5b\x8a\x0b\xf0\x21\x57\xda\xf6\x74\x4b\xc6\x4e\x76\xe1\xd3\x55\x97\x38\xd3\xc6\x1d\x0e\x9c\xf8\x9a\x68\xa5\x1f\x9e\x91\xe5\xd6\xb3\x7f\x5c\xb7\xa6\xa6\xcd\x0c\x5f\x63\x86\x64\xa8\xeb\xf8\xca\xee\xa2\x7f\xd3\x68\x14\x8c\xe3\xa0\x7d\x2c\x5b\x5c\x42\x64\x62\xff\x68\x49\xdc\x88\x12\xa8\x22\x07\x0e\xd3\xe6\x84\x81\x64\x36\x9d\x85\x50\x5f\x9e\xfd\xc3\xed\x4f\xa5\x42\x89\x2b\x9b\xd8\xe9\x0a\x0a\x4b\x1d\x64\x47\x69\x0a\x8c\x31\x1b\xa8\x04\x20\x6b\x4b\xdf\xa4\x74\xe5\x36\x2f\x85\x63\xc5\xc4\x94\x15\x93\x15\x79\x19\xcc\x67\x93\x0a\x71\x5a\xc3\x97\xd5\x68\x16\x79\x6f\x92\x2f\xee\xa2\x78\x53\x36\xc0\xf1\x66\x82\x5a\xaa\x31\xa1\x38\x33\x7f\x71\x67\x33\x12\x5a\x96\xc6\x4a\x4e\x9d\x3d\x88\xf2\x59\x8b\xa9\x9d\xf7\x7c\x18\x96\x98\xd6\x98\xdb\x96\x2e\x32\x77\x7e\x56\x8d\xe4\x47\x6b\x93\xe7\x10\xbd\x9f\xb8\xf1\x3c\xc3\x62\x0f\x4b\xfd\x80\x14\xa1\x4a\x65\x4b\xe6\x60\x94\x62\x15\x02\x48\xa3\x96\x3b\x78\xa5\x10\x15\x47\xba\x81\xab\xa3\x7e\x50\x7b\xd4\x05\x3e\x48\xdf\x1d\x4b\xff\x0a\x89\x00\xe4\x4c\x76\x7e\x1a\x83\xf0\x42\x86\xb1\xd1\x87\x91\xf9\xc7\x0e\xdb\x61\x58\xdd\x30\x17\x4d\xee\x85\xee\x00\x9e\x65\xa5\x39\xe6\x2c\x3c\xe2\x8d\x63\x25\xb8\x0f\x32\x50\xf4\x17\x87\x44\xc3\xe8\x31\x38\x70\x4f\xb1\x13\x75\x5d\xb4\x32\xa6\x8c\xf7\xf7\x91\xf3\x99\xfc\x5b\xa5\x75\xb0\x3d\x21\x84\xa9\x3a\x66\x62\xb1\xc5\x6c\x86\x5c\xaf\x35\xc3\xc6\xb6\x97\x3b\x49\xc0\xe9\xab\xfe\xfd\x3d\x7d\x4d\x18\x64\x49\x97\xd7\x01\xc4\x80\x37\xbb\xda\x4d\x09\xe5\xec\xb3\x70\xec\x52\x07\xb4\xb2\x54\xdb\xf1\x0b\xe7\xaf\xfb\x0e\x50\x4c\x03\x95\x29\xa0\xb4\x9b\xa6\xb3\x0a\x5b\xc4\xdb\xc7\x24\xdb\xe4\x46\x9e\xcf\x49\x7f\x3b\x7f\xc5\xb7\xf3\xcd\x4d\x94\xc8\xcc\x5a\x3d\xb0\x1f\x85\x94\x7d\xad\x47\x6d\x3a\x40\xb8\xfd\x18\xe0\xdd\x16\x80\x02\xdb\x27\x48\x38\x98\x84\x8e\x71\x53\x69\x4b\xb8\x8a\x75\xcb\x30\xdb\xb4\x41\xa6\xa8\x3e\x58\x87\x35\x81\xa4\xcc\xcd\x52\xf5\x80\x75\x3b\xf6\x70\xc3\xb4\x27\xb1\x3c\x49\xe1\x9a\x85\x1b\xd6\xdd\x9f\xb8\x8f\x6a\x28\xb3\x1d\x49\xf0\x61\x75\x4c\x8a\xad\xd1\x9b\xc7\x0b\x27\x07\xe7\xc9\x0c\x39\xda\x48\x1b\x9b\xa8\x70\xb6\xa2\xa5\xe8\x5e\xd2\x7a\x8d\x1e\xc7\x40\x45\x79\xc0\x2d\x62\x56\x50\x88\x92\x80\x07\x7d\x4b\xfa\xc4\xde\xcd\xd4\xde\xe5\xa3\x4c\x41\x7a\xe2\x0a\x46\x26\x4e\x11\x24\xae\x96\x9b\x7a\xfa\xd1\xd0\xdf\x5d\x9d\x63\x5f\x66\xe3\xd2\x5c\xe1\xbb\xaf\xa4\x78\xe1\xee\x52\x5f\xe1\xdd\xc6\xa7\x07\xaa\x44\xbd\x72\x05\xe4\xe9\xaf\x12\xc2\x26\xe2\xf3\x17\xc1\xb0\x54\xd2\x48\xac\x8f\x00\x26\x03\x4a\x99\x69\x4a\xf9\xdf\x85\xc9\x90\xd1\x10\xd1\xb9\x1e\x4f\x76\xe8\x20\x5f\xf7\x93\x98\xb6\xb2\x4a\x12\x94\x4b\x9f\xcf\x5a\x2e\xaa\x42\xe3\x44\x25\xe8\x25\x20\x17\xf0\xad\x8e\x50\xab\x69\xba\x03\xda\xf3\xc2\xf3\xb3\xbb\x8c\x5f\x53\x9e\x4c\x20\x09\xab\x20\xdf\x62\x04\x55\x31\x18\x43\x7d\xad\x1b\xc5\xa0\xcc\x8e\xe9\x8e\xb2\xcb\x4d\xf7\xd7\xb1\xa3\xf8\x80\xc7\x50\xc3\x5b\xb8\xa6\x4b\xa5\xba\x07\xc0\xe6\xcb\x21\xdb\xde\x15\x82\x13\x12\xa9\xfc\x38\x0a\x00\xcb\xa8\x14\xc8\xe9\xad\xa5\x87\x83\x9b\xd4\xdc\x33\x90\x32\xb8\xf6\x9e\xf9\x33\xbc\x67\xa4\xc9\x7c\x65\x39\x64\x94\x44\x45\x69\x2c\x4f\x43\xcd\x8d\xa3\x39\x44\x68\xdf\x78\xed\x60\x55\x9e\x97\x44\xb2\x89\x3a\xd9\x61\x41\xfa\xdb\xc5\x2b\xbe\x5d\x68\x05\x6e\x4a\xf2\x51\x31\xde\x86\x99\xc4\x66\x86\x29\x82\x10\xae\xb1\xb4\xbb\x4c\x11\x4e\x6c\x60\x18\x87\x92\x16\x63\x84\x4a\xff\xc4\x3c\x4c\x3c\xe2\x9a\xdd\xfa\x97\xee\xae\xf5\xdc\x40\xcd\xdd\x95\x29\x34\x70\xcc\x37\x99\x73\x77\x05\xbb\xd6\xa3\xb5\xb2\xc5\x00\x95\x7a\xd3\x39\x31\xae\xff\xd9\xd9\x34\x17\xdf\x9f\x35\x17\x5f\xf5\xbe\x53\x87\xa7\x72\xf9\xf9\x74\xc7\x48\x62\x72\x06\xf3\x78\x21\x91\x24\x70\x34\x87\xac\x9f\x2e\x72\xe6\xf1\xc2\xc5\x8a\xde\x18\xce\x35\x15\xa2\x44\x74\xb8\xe6\xf9\x8e\x79\xcf\x77\x74\xc4\x46\xc9\x78\x0c\x0f\x78\xa5\xc5\xd9\x57\x1d\x3b\x17\x32\xee\x42\xa6\xee\x4d\x50\xdd\xd7\x9f\xae\x4c\x9c\x2e\x66\x6e\xc2\x28\x3c\x01\xb4\xbe\x3b\xcf\xbe\x5a\x4e\x8b\x7a\xd3\xca\x46\x14\xa6\x25\x26\x67\x2e\x54\x7d\x60\xdd\x3c\x73\x6e\x50\xf3\xae\x58\x70\x7b\xe9\x8a\xed\x30\xf5\xef\xdb\x3f\xf5\x7d\xfb\xa6\xf6\xbe\x4d\x32\x4e\x59\x16\xa7\xf0\x9c\xe5\x9d\x0d\xc7\x42\xc2\xf9\xac\xeb\x9f\x7b\x9c\x5f\xe3\x4d\xe3\x5f\xa2\xf2\x72\x5f\x7f\x05\x37\x76\xb5\xe6\x6e\x7e\x04\xa8\x35\xf2\x44\x30\xf5\x46\x29\xa6\xfe\x76\x96\x70\xe6\x6b\x84\x9a\x06\xd8\x5c\x59\xe7\xef\x80\xa8\xaf\xdc\xfa\x15\xa9\x59\x57\x79\xb5\x4a\x5f\x29\xff\xc4\xfa\x95\xbf\x9a\xa2\x85\x63\x39\x44\xed\xd9\x3f\x5c\xb2\xf6\xf5\x47\x54\x67\xfd\x08\xab\x08\x18\xe1\x34\x9a\x28\xab\xe0\x1b\xb1\xe6\x1a\x95\xf7\xe1\xb3\x7f\x08\x2a\x88\x73\xfb\x73\x73\x80\x99\x35\x23\x16\x1f\x9e\x0a\xf9\xc6\xe9\x55\xdc\x43\x32\x4e\xed\x28\xc6\x39\x4e\xc6\xf5\x17\xea\x0f\x3c\x0a\xef\x51\x89\x6b\x89\x77\x67\x1f\x04\xe4\xd2\x29\x09\x86\xa5\xdd\x6e\x54\x53\xcb\x45\x89\xa0\xbe\x9f\x38\xf0\x1d\x8a\xee\xff\xd0\xa4\x6d\x95\x3b\x96\xba\xa0\x05\x32\x8e\x26\x48\xff\xcd\x85\x72\x28\x27\x57\x58\x74\x00\x18\x01\xc2\xc7\x38\xfc\x34\xa8\x7c\x1a\x8f\xf5\x04\x7f\x5a\x17\x1a\xd8\xb9\xda\x1c\xbd\xa8\xa7\x12\x0d\x58\xea\x40\xf4\x5a\x49\xe5\x96\xad\x6f\x5e\x6b\x1d\x15\x58\xd0\xbf\x95\x7f\x1c\x5a\xec\x93\xe1\x9f\xa4\x5a\xfb\x09\xc7\xff\xe1\xf8\x67\x19\x7b\xea\xcf\x07\xc4\x46\xff\xb8\xe3\xf7\xb2\xd5\x03\xc2\x26\xc2\xbf\xc8\x7a\x3f\x55\xea\xbd\x17\x23\xe3\x3e\x6a\x51\xd3\xe0\xfd\x19\xf9\x45\x5f\x10\x3f\xd6\xe2\xb5\x5e\x8b\x73\x4d\xe3\x85\xc6\xea\x82\xe5\x57\x2c\x9e\x6b\xbc\xd2\x2f\x82\x1a\x98\xb0\xcb\xfa\x91\xd7\x08\x05\x93\x25\x63\x34\xe3\x27\x8b\xb3\xe4\x4f\x71\x1b\x80\x91\xdb\xa9\xaa\x55\x15\x92\x55\x6b\x21\x23\xa7\x79\x3c\xb5\x15\xcd\xbe\x76\xeb\x10\x2e\x28\xf7\xc7\x89\x79\x1b\xb1\x85\x90\x88\x66\x4c\x68\xe9\xbc\xf1\x3b\x33\x0b\x02\x44\x56\xda\xb2\x78\x8c\xf0\xe3\xab\xcf\x16\x63\x84\x6b\x3f\x93\xea\xd7\x62\x31\xde\x1a\x94\x8b\x7c\xe1\x81\x15\x56\xa9\x69\x38\x13\x0d\x6b\x86\x61\xb1\xaa\x2d\x61\x95\x19\xe2\xd7\x81\x63\xeb\x0d\x50\x69\xa6\xf6\xd7\xb0\x54\x6a\x9b\xde\xe6\xd9\x04\xf0\x79\x46\xc0\x25\xbc\xff\x3b\xd9\xe0\x3f\x4e\xb4\xa4\xc2\x24\xbd\x41\xa5\xf9\xb3\x61\xb3\xc8\xb5\xde\xa4\x5b\xd5\x1d\x57\x82\x51\x47\xed\xf6\x30\x50\x85\x1d\xe1\x10\x14\xb1\xfd\x05\xb6\xe2\xe9\x94\x01\x40\x12\x8c\xf3\xfc\x81\x8e\x0d\xdc\x3a\x59\x4f\x75\x96\x55\x74\x66\xf4\x0b\x98\xbb\xab\x50\x47\x4a\xe5\xa3\x6a\x0d\x29\x56\xe7\xcf\x8d\x45\xae\xe0\x36\xb7\x24\x0b\x6f\x49\x88\x78\x94\x43\x26\xa4\x88\x81\x71\x4a\xf5\x68\x66\x90\x71\xa9\xb5\x16\xc3\x24\xc1\x99\xb1\x3e\x3c\x59\xfa\x07\x53\x7f\x3f\xc8\x32\x9d\xf6\xb2\xfa\x69\x45\x6d\xa6\xa7\x1d\xaf\x99\xfa\x18\x51\x34\xf4\xbe\x9f\xc9\xa4\x4d\x7e\x87\xb6\xf2\xaa\xb8\x4d\xf8\xe4\x3a\xa2\x60\x46\x89\x56\x93\xb8\xa0\xed\xfe\xd0\x7b\x14\xb1\x14\xa0\x05\xc5\x03\xbf\xd8\x1c\x44\x59\xfa\x6c\x18\xa6\xf4\x8f\x68\x2f\x5f\x0c\x54\xf1\xd3\x6a\x71\xd3\xde\x56\x2d\x9e\x7b\x2d\xe4\x7e\x77\x3a\xfc\x76\xe8\xe3\x5c\xee\x14\x59\xf6\xa2\xa6\xec\x5c\x37\x2f\xcb\x3a\x1c\xad\x3e\x50\x9b\xce\x8a\x63\x8a\x15\x66\xf4\x7d\xfa\x21\xa4\xfb\xab\x30\x8c\xdf\x90\x91\x8d\x41\xa9\x56\x75\x26\x50\x73\x26\x9f\x1f\xe8\x6d\x9b\xf7\xe0\x6f\x45\xfb\xb3\x1b\x7d\x43\x4c\xf3\xb9\x34\xa9\x84\x74\xb5\xca\xc7\x32\xe8\x97\xb0\x92\x7e\xa1\x93\x25\xb7\xa9\xb3\x57\xb6\x7b\xa3\xc3\x14\xf2\x95\x3c\x3e\x4c\xbe\x27\x6e\x6f\xb0\x5e\x52\xec\x4b\x45\xec\xb6\x97\xe5\x0b\x9a\xf7\x82\x23\x63\x8d\xc0\x32\x37\xd5\x97\x68\x00\x3e\xfb\x90\x3b\x03\xb8\xb4\x99\x22\x59\x2e\x92\x2d\x44\xfa\x80\xf8\x24\x4a\x0e\xa9\x3e\x95\x1a\xc6\x10\x59\x2a\x0b\x02\xbd\x6d\x33\xb9\xf1\x51\xa9\x22\x44\xba\xbd\x48\x0b\xbf\xfd\x2f\x13\xba\x90\x29\x75\x71\xa5\x1b\x09\x2c\xed\xc1\x43\x78\x92\x5d\xfd\x74\x44\x3e\xe8\x2b\xfc\x5f\x8d\x2f\xed\xe0\x80\x6e\x33\x26\x2c\xe7\x60\x13\x74\x29\x56\x91\x97\xf2\x43\xd5\x0e\xc0\xaf\xa8\xd3\x18\x4b\x1f\x25\xfb\x74\xf5\xef\xaf\x34\xf0\xf6\x61\x91\xd6\x8f\x7e\xdc\x24\x78\xd4\x54\xd6\xce\x60\x7f\xc0\x68\xa6\xf9\x09\x6d\x29\x5d\x2e\x62\xb1\x14\x26\x02\x9c\xff\xca\x0a\x95\x7a\x41\x95\x72\x96\xb0\x82\x43\x38\xef\xda\xea\x4e\x71\x99\xc6\xeb\x6a\xda\x52\xcf\xf4\x9a\xc2\x0e\xf5\xc0\x96\x51\x67\x34\xaa\x7e\xb5\xa8\xfa\x77\x1d\xb7\x95\x68\x54\xe9\x9f\x2e\x56\x38\x73\x43\x54\x4a\xa9\x80\xaf\x35\x8e\x28\xa7\xc9\xf4\xc0\x04\x3e\xdd\x53\x20\xc9\x2c\x75\x55\x23\x04\xd1\x19\xd6\x1a\x59\x0d\x3f\x7a\x78\x86\x70\x8c\xca\xca\xce\xd5\xaf\x39\x9c\x0e\xa9\x36\x3d\xe7\x58\xad\xb7\x39\xdb\xa7\xf2\x14\xaa\x3b\xe9\x50\x6d\xb9\x88\x41\x2c\x05\x2e\xfd\x58\xf4\x37\x9c\x09\xc9\x6d\x34\xc6\xca\x4e\xc0\x6c\x8d\xd1\xb8\x75\x12\x49\x39\xaf\x67\x08\x8a\x49\xd8\xa4\x0f\x4a\x94\x07\x6e\x0d\x30\x32\x0e\x2a\xc5\xa8\x44\xbd\x29\xcb\x17\x66\xd1\x28\x33\x8b\xf6\x6b\x03\x8b\x8c\x73\x7f\xe1\x46\x9a\xf9\xfb\x4c\xef\xf4\xc6\x9d\xd3\x79\xae\x79\x60\x90\x17\xb4\xf2\x80\x51\x1e\x27\x19\x9d\x92\x8d\x81\x96\xdd\xa7\xf4\x0b\xd9\x1a\x28\x83\xab\x53\xab\x84\xb4\xdc\x85\x6e\xd2\x77\x3a\x0c\xf2\x46\x20\x3b\xae\x2d\x11\xbf\x50\x59\x5c\xe7\xcb\x74\x7a\x4a\xe7\xf9\x8d\xdd\xe1\x1b\x5e\xd7\x82\x28\x40\x16\x90\x10\x46\x8d\x16\xce\x1e\xd8\xcb\x21\x52\xf4\x6e\x4e\xac\x31\xab\x46\x81\xdc\xe0\x69\x52\xf0\x2d\xf7\xec\x8b\x63\x26\xd3\xe8\xd3\xa9\x8d\x61\x2b\xcb\x24\xf3\x72\x14\x2f\xe0\x16\x3a\x8a\x17\xda\xd1\x82\x7d\xa6\x2a\x18\xa5\x63\x52\xf2\xc0\x41\x69\xb4\x22\xca\x41\x3f\x2e\xb8\xb0\xc4\x3f\x47\xf2\x30\xc8\x95\xf2\x36\xa3\x31\x7b\x08\xc0\x54\x4f\xa8\x9f\xe9\x1d\xa6\xcd\x07\xb3\x3a\xed\x35\x01\x70\xf1\x5f\x3e\xc6\x90\xcc\xc6\x2e\xc3\x90\x63\x77\x4c\xf7\xf1\x70\xa3\x26\x80\xaf\xb4\xac\x42\x4a\x43\x24\x4f\xb6\x51\xf3\x4f\xf3\xb9\x56\xf2\xbb\x0b\x92\xdb\x9c\x94\x32\x0d\x77\x07\xb5\xf2\x5e\x92\x15\x94\x71\x99\xc0\x33\x09\xc9\x35\x8e\x71\xe2\x50\x5a\x49\x23\x94\xf2\xa3\xb8\xcb\x26\x7a\xd9\x82\x66\x3d\x06\xdb\x5a\xae\x52\x8c\x2a\xdb\x02\x17\x2a\x2a\xf1\x23\x11\x57\xb3\x15\x1b\xd6\xc4\xc1\xa8\x0c\x50\x0c\xbb\xdf\x49\x25\x8a\x4a\x09\x77\x05\xff\x14\x9b\x7d\x32\xe4\x58\x8f\xed\x68\x8f\xfb\x38\x21\x7d\x88\x0f\x60\xb9\x21\x43\xfe\xdc\x9b\x09\xfe\x77\x98\x14\x9c\x8c\xc6\x2a\x59\x16\x84\x02\x70\x2c\xb2\x95\x4a\x0b\x5d\x32\x1a\x7f\x36\x9a\xf6\x02\xe2\x3d\xe0\xd5\x67\x7a\x37\x4c\x4b\x12\x6f\x1b\x9e\xa9\xe8\x76\xc1\x59\xdf\x52\x81\x6d\x24\x6a\x6f\x6e\x66\xe3\x96\x1b\x1c\xb7\xe8\x76\x25\xc5\x23\x24\x45\x0e\xd9\x00\xfb\xee\x02\xc7\x08\x67\x9b\x9b\x26\xc5\x11\xef\x5d\xc7\x45\x94\xaa\x68\x4e\x4b\x19\x81\x35\x4a\x01\xc6\xa5\x3c\x59\xaf\x12\xd9\x8d\x58\x4f\xe8\x64\x09\x41\x4d\x94\x67\x2f\x51\xb5\xcc\x14\x26\x82\x82\x4e\x49\xb6\x39\xd8\x9e\xbe\x4a\x20\x82\x93\xd8\xc1\x20\x00\x8d\xa6\x63\x03\x3e\x5a\x4d\xc8\x46\xbf\x05\xf3\x2f\xa1\x78\xb2\x13\x85\xf0\x2e\x01\x5e\x92\x6c\x0e\xb4\xa2\x35\x80\x42\x4c\x46\x30\x62\x62\x3a\xb9\x21\xc4\x72\x47\x43\x35\x88\xbf\xa2\x61\xbb\x26\xfd\xed\x6b\xfb\x90\x71\xad\x5f\xbb\x66\x84\x8d\xae\xc7\x2d\x80\x62\x66\x20\xdc\x89\x6c\x8f\x53\x9a\x52\x2e\x07\x9e\x21\x34\x14\x95\x80\x30\x6b\xb5\x6a\x5e\x3a\x50\x1b\x36\x3a\xdc\x43\x2d\xea\x5d\x04\x5c\x5e\x04\x98\xfa\x37\x07\xd7\x37\x07\xf5\xae\x18\x4d\xe8\x8c\x9d\x9c\x0c\x19\x25\x36\xb4\x33\x5f\x33\xb6\xdd\xcb\xd6\xe7\x4c\x47\xc1\x35\x0c\x40\x8e\xdd\x03\x10\xdb\x4d\x5f\x68\x4a\xa2\x76\x22\xc5\x4b\x62\x53\x3b\xef\x38\xc7\x79\xc8\x5d\x96\x0d\x4f\xc8\x61\x6f\x96\x33\x45\x57\xa5\x9d\x74\x94\x03\x23\xb1\x52\x56\xf2\xc3\xac\x42\x64\x40\x54\x48\x2e\xd3\x24\xbb\x1a\x2e\x4b\xd4\x4a\x34\xbb\x91\xe3\x09\x32\xdc\x04\x27\xaf\x57\xdc\x67\x14\x6c\xe4\x60\xeb\xd8\x10\x63\x8a\x5a\x99\xc2\x96\x56\x31\x2a\xc7\xf0\x28\x43\x98\xc1\x2d\x90\x0a\x46\x46\x31\x2c\x10\x49\xd8\xec\x2c\x37\x9c\x0d\xb6\x6b\x98\xfc\x17\xd6\xd0\xe6\x7a\xdf\xb9\x8a\xa8\x4b\x15\xd1\x90\x3a\x64\xb6\xe7\x20\x64\x83\x90\x28\x23\xcc\xc5\x32\xea\x76\x45\x73\xf0\x13\x94\xd3\x4c\xf4\x34\x13\xb3\x29\x9c\x2d\x4b\xd1\xea\x73\x44\x11\xbe\x34\x79\xe6\xec\x8d\x28\xab\xc9\x4b\xd1\x70\x5b\x8c\x35\x88\x30\xf9\xc2\x28\xaf\xa9\xe6\x32\xa5\x43\x8e\x09\x0f\xac\xc4\x33\xd2\xf7\x05\x34\xfd\x99\x56\x54\x29\x2e\x6b\x9f\x2f\x8a\x91\x5b\x7d\x73\x73\x5c\xc3\xd4\xd6\x8e\xaf\xe2\x0a\x85\x9f\xab\xd2\x9c\x9e\x64\x56\x99\xa4\xa3\xc2\x76\x84\xe8\xa5\xda\x6c\xf5\x6e\xa2\x82\x4b\x25\x99\xdd\x49\xf8\x4c\xfe\x15\x21\xf2\xfa\x32\x72\x1a\x80\x82\x8a\xc9\x03\x51\x15\xee\xa9\x60\xea\x48\xf5\x3b\x88\xfc\x36\xbb\x83\x86\xc5\x50\x14\xc1\x77\x7d\xe0\x11\xaf\xd1\x17\xd0\xd2\x1e\x1d\xa6\x04\x84\xff\x9f\xc8\x6b\x75\x4b\xca\xf2\x5b\xf0\xbc\x6c\x4b\xbe\xb8\x9d\xd1\x1b\xca\xda\xd7\x10\x69\xbf\xa3\xd7\x2c\x09\xd6\x0c\xf8\xce\x58\x69\x3f\x58\x5d\x46\xb4\x3f\x94\x4f\x2a\x34\x8b\x33\x5e\x20\x9d\xf6\xa5\xef\x66\x61\xfb\x43\xf1\x34\x7f\x14\xa2\xe6\x44\x26\x03\x2c\xe5\x1b\x9a\xa6\xa9\x6d\x26\x84\x1c\xad\xce\x33\x66\x5c\xcc\x46\x96\x22\x74\x3b\x7b\xc5\xb7\x33\x13\x07\x50\x76\x2e\xee\xd4\x0c\x99\xf7\x2c\x56\x82\x05\x6e\x90\x9f\xb3\x67\x3e\x96\xb7\x2c\xe1\xf4\x43\x21\x5f\x67\x1d\xbd\xca\x1f\x26\x03\x8d\xfe\x09\x63\x30\x93\xb3\x42\x74\x03\x8d\x4f\xe3\xdb\x88\x62\x98\x38\xcd\x02\x27\x50\xd9\xbd\xcd\xc7\xe3\xe3\xad\xa1\xfd\xc1\x7c\x4e\xa7\x09\x84\x4d\x61\xba\x8b\x73\xb6\xa4\x7e\x1a\x3a\xb7\xf1\x40\xd5\x7a\x17\xa7\xc5\x9a\x6a\x7d\x55\x0d\x52\x00\x35\xd6\x7a\xaa\x6a\x7d\xd2\x89\xff\x9b\xab\x3e\x53\x55\xe5\x2f\xde\x54\x8d\xc3\xc3\xd9\x87\x42\x3f\x9d\x31\x37\x43\xde\x15\xe5\x50\x0b\x79\x8a\xd7\x3f\x8a\x51\xad\x7b\xea\x18\xfc\x94\x0c\x3e\x1f\xd1\x9f\xd3\x8d\x87\x58\xf7\x2d\x8f\x91\xfe\xfd\x43\x5d\x24\x85\x85\x62\x67\x3d\x8c\xc3\xc6\x31\x3d\x19\x53\x0e\xa6\x3e\x61\x7f\xd7\x09\x92\xde\x64\x2d\x2f\xdb\xa5\xd4\xa1\xaf\x39\xab\x75\x9c\x90\x71\x02\x42\xa5\xa5\x1f\x45\x20\x2c\x35\x24\xb8\x52\x22\x33\xcc\x54\x3e\x43\x1e\x55\xe7\xab\x86\x29\x0e\x69\xfe\x6a\x31\x19\x32\x2c\xfd\xc8\x33\xdf\x71\x2f\x31\x8e\xcb\x78\xa1\x25\x70\xa5\x28\xd3\x57\xa0\x24\x92\x52\x0f\x2b\x65\xdf\xd1\x13\x3e\x86\x81\x73\x49\x72\x47\xff\x51\xbf\x3d\xf0\x8a\xbe\x63\x25\x50\x0c\x9c\x1f\xdc\x2d\xe1\x6e\xc9\x4d\xdf\x0a\xd4\x73\x02\xd3\x69\xd6\x33\x9a\x47\xc2\xd1\x04\x9e\xe3\xa4\xd5\x2c\xa3\x05\xcf\x19\x75\xa3\xab\xc9\xec\xc6\x09\x13\xe2\xcd\x76\x66\xad\x61\x32\xcd\x1b\x27\x84\x42\xdc\xbb\x30\xf2\x6a\x02\x02\x9c\xd8\x82\x7a\xe7\x23\x08\x9e\x6c\xcf\x58\xd6\x40\x3f\x12\x84\x86\x1b\xd2\x00\x43\xd5\x06\x42\x92\xa1\xe1\xc6\xc0\xfd\x2a\x09\x87\x8a\xb8\xe8\x16\x00\xa9\xc8\xd0\xd0\x70\x53\xa6\xc4\x92\x87\x0c\x0d\xd5\xb7\x0f\x45\x94\xe1\xc4\x0b\x00\x27\x10\x13\x31\x3c\xea\xe3\xad\x01\xa6\x56\x59\xd0\x1f\xcb\x77\xb7\x0f\x56\xc9\x23\xdf\x0f\x74\x47\x9b\x9b\x0a\xa7\xea\x35\x10\x53\xe7\xa1\x4e\x1d\xfe\xb0\x99\x29\x6b\x6a\x0c\xb3\xaf\xb6\x83\xcf\x61\x1b\xd9\x42\x62\xa6\xda\x44\x7e\xaf\x6f\x23\x53\xac\x55\x9a\xc0\xe7\xfa\x16\x16\x99\xd5\x66\xb6\xac\xbe\xad\x24\x55\x95\x66\xe2\x73\x1d\x1a\xa6\xcb\x85\xb2\xb1\x70\x3a\x72\x5b\xab\xbb\xb1\x3a\x58\x70\x93\x7a\xb5\x39\xbc\x82\x8a\xc5\x24\x03\xcf\x3e\xc2\x3c\xb4\x7e\x28\xa2\xa0\x43\x97\xe0\x3b\xee\x4e\xe2\x34\x95\xee\x2b\x52\x63\x97\xde\xbb\xec\xe3\x3b\x6e\xee\xf0\xab\x3a\x92\xfe\xdf\x94\xf4\x7d\xea\xdc\x3c\xe1\x2d\xb1\x09\xdd\xf4\x66\xcd\x6d\x1b\x66\xa6\x7b\x58\xd3\xb2\xa6\x85\xb6\xbb\x75\x4a\x66\x62\xcd\x1b\xda\x6f\x52\xa4\xbd\x24\x55\x64\x4f\xb7\x51\xcd\x49\x65\x9b\x5c\x6c\x2c\x87\x81\xab\xf6\x6c\x0b\x8d\x31\x91\x67\x47\xe3\x3a\xe3\x89\x51\xb7\xfc\x77\x58\xb7\x13\x88\xcf\xe2\x5d\xa4\xb2\x54\xab\x09\x78\x2e\x43\x57\x18\x30\x74\xe4\x96\x34\xbf\xd2\xd8\xf1\x2c\x1b\x94\xf5\x96\x37\x51\x1c\x02\x85\xca\xb2\xa7\x69\x7a\x8c\x5a\x73\x55\xb6\x98\x8c\x09\xc3\x73\x5b\x93\xc4\x96\xc6\xcd\x6d\x7f\x44\xe9\x47\x47\x53\xf5\x32\xae\x1e\xb1\xe1\x65\x5d\x96\x5c\x07\x25\x86\x8b\x6e\xbe\x00\x97\x63\xe5\x71\xa9\xe5\x6d\xfd\xd5\xbd\x5c\x65\xa1\x52\x46\x8f\x66\xf2\x8a\x3c\x56\x59\xe9\x0b\xf9\xf3\x47\x1e\xcd\x35\x7c\x98\x6a\x10\xf0\x0a\x42\xd8\xbc\xa1\xb3\x9c\x09\xb1\xe9\xf5\x07\xda\x73\xbe\x48\xe1\x8b\x22\x0c\xdf\x40\xa9\x29\x2a\xad\x74\x2d\xa9\xe6\x54\x95\xca\x12\xd0\x81\xb4\x8e\x47\xdf\xa5\x64\x55\xca\x81\xd3\xb1\xc3\xc5\xdb\x72\x65\x4c\x26\x66\xed\xb3\x41\xa3\x62\x2c\xd7\x0f\x2a\x2c\x26\xd5\x52\xdf\xd0\x06\x16\x0b\x49\xeb\x9b\xc0\x86\xcb\x09\x3b\x45\x95\x8e\xd5\x0b\xd8\xc8\x11\x98\xe2\x04\xad\x6c\x72\x53\x13\x3c\x47\x87\x85\x83\x7d\xee\xf5\xba\x92\xe9\xb3\xf2\x5e\x52\x1c\xe6\xb7\x87\xf4\x86\xa6\x1a\x32\x14\x51\x84\xd6\x82\x4e\x51\x4b\xbf\xf1\xab\xe7\x7d\xb1\xd7\xfc\x27\xfe\xa2\xdf\x32\x25\xfe\xeb\x7e\x31\x30\x25\xdc\x6f\xc3\x6d\x1b\xee\xb7\xe1\xb6\xcd\x8d\xdf\xe6\xa6\x5f\x96\xfe\x44\xb5\xfd\xc1\x9a\xe9\x49\x7d\x81\x98\x58\xc5\xa4\x09\xfb\x53\xd2\x2c\x1b\x97\xda\x4a\x77\x4e\x9a\x81\x0b\x8b\xb8\x6a\xc5\xab\xad\xb8\x6a\xc5\xab\xad\x6e\x54\xab\x9b\x3e\xe1\x65\xc5\x44\x4a\x80\xea\x7c\x0b\x4d\x95\xa0\xd8\x7c\xf2\x94\x2f\xa2\x48\x3f\x8d\xbb\x96\x37\xe2\xbb\xfa\x5d\x31\x9e\x11\x65\xce\x37\xdf\x56\xc6\x16\x4a\xaf\xed\xb6\x3a\x9c\xa1\xef\x94\x8a\xaa\xa3\x4a\xa1\x26\xcd\x6e\x1a\x6a\xd1\xec\x46\xd3\x61\x50\x0f\xd9\xfb\xa1\xe1\xdc\x18\x6b\xc1\xc5\x64\xc8\x7d\xde\xbd\x22\x53\x44\x48\x31\xf9\x56\x08\x11\x9f\xa4\x9f\x9b\xc3\x39\x98\x7b\xa0\x2c\x2b\xe1\xd3\x5d\x83\xd1\xa5\xd1\x40\x62\x29\x68\x2c\x78\xa4\x39\x49\xa4\x02\x1a\xea\xb0\xd6\x82\xf8\x81\x9c\xa2\xbf\x96\xd5\x48\x6d\x8d\x7d\x07\x1d\x40\xe2\x5b\xe6\xa5\x8e\x70\x99\xf9\xd1\x18\x27\x84\x57\xcc\xda\x75\x3a\xa8\x64\xdc\xe3\xf1\x55\x2b\xdf\x20\x81\xa5\x73\xb7\xab\xf4\x15\xb9\x59\x69\xfb\x4e\xb7\x07\x2f\x71\x31\xb7\x59\x90\xc4\xb0\x52\xf3\x68\xe6\x2a\x70\x30\xe7\x11\x47\x08\xf3\x9e\x49\x70\xc9\x0c\x7b\x8d\x4a\x99\xbf\xd8\xa7\x57\x16\xdf\x3a\x60\x77\x10\xa0\xde\xbc\x11\xaa\x30\x7b\x38\x03\x6c\xff\xca\x75\x8a\x7f\xb5\x7b\xe4\x7b\xaf\xa4\x79\xd3\x64\xba\x0f\x63\x65\x6a\x50\xa5\xd6\x05\x65\x36\xc7\x32\x40\x39\xc3\x73\x3a\xcf\x87\x59\xe9\x7a\x3c\xea\x07\xb4\x9c\x50\xf9\xb2\x73\x4a\x67\xef\x72\x16\x71\x69\x9e\x1c\x7e\xcc\x50\x2b\xb1\x01\x74\xad\x37\x4c\xec\x3d\x93\xe9\x39\x3e\x45\x38\x7d\xdc\x1c\x65\x9e\x42\xca\xa2\xc2\x9f\x63\x8a\x39\x8e\x71\xee\x6b\x25\xcc\x6c\x97\x08\x2f\x4b\x2f\x9c\x8f\xe6\xc0\x85\x34\xac\xfa\xee\x55\x9f\x50\x4b\x1b\x87\xc8\x2c\xce\x68\xac\xd9\xac\x62\x6c\x0d\xe6\x70\xe6\xcf\xa8\x8f\xad\xd9\x5a\x30\x27\x18\x4e\xc5\x36\xc2\xb9\x77\x39\xe9\x18\x45\x32\xae\x12\x67\x51\xe6\xcf\x32\xc1\x1c\xab\xd8\x6f\x62\xe3\x0b\xe0\xe5\x16\xd3\xef\x88\x66\xc6\x31\xbc\xe1\xee\xeb\x7d\x05\x85\xb5\xf9\x11\x94\xda\xdb\xdc\xe7\x5a\x0d\xee\xd8\x21\xe8\x4f\xde\xf3\x02\xb5\x4f\x90\xa5\xcc\xb1\xbd\x32\xfd\xc0\x49\xac\x4c\xdd\xc4\x83\xd4\xe6\xcf\x8b\xe0\xad\xa2\x72\xc6\x5b\x74\x64\x45\xd0\x71\xaf\xe1\x51\xba\xb4\xd1\xa0\xb4\xfa\x3b\xd1\x1a\x1a\x8b\x25\x30\x4b\xf2\x67\x40\x46\x8a\x41\x16\xb5\xf4\xa8\xe6\x91\xc0\x83\xcf\xe3\x55\xbc\xda\xd0\xaf\x87\xac\x55\x30\x0b\xd3\xa3\xb3\xd7\xc2\xfe\x00\x46\x6d\xbd\xd5\xb0\x4e\x2b\xa9\x48\x17\x18\x56\x35\xb1\xb4\xe7\x7a\x04\x98\xba\xeb\xe5\xe3\xab\xda\xa5\xf3\xae\x24\x97\xaf\x2d\xd5\x65\x11\xf6\x25\x99\x5c\xdd\x91\x7f\xd7\x84\x75\x3d\xd6\x57\x37\x11\x18\x83\x05\xd6\x8d\x6a\xd8\x67\xf7\xb6\xd2\xa9\xc6\xe5\x0a\xbf\xf5\x07\x74\xb6\x96\x0f\x8a\x49\x50\xbe\x0e\x24\x7d\x28\xa4\x5d\xb6\x8d\x4f\x67\xe8\xc1\x21\x05\x3b\xd4\x69\xa0\x12\x0d\xa1\x45\x58\x4e\xcb\xb4\xae\xa9\x24\x77\x5d\xc3\x9c\xe5\x06\xce\x17\xc1\xec\xea\x81\x86\xca\x26\x0a\x9e\x2f\xe0\xa9\xc9\x9b\xd2\xd2\xf8\x83\xbd\xcb\x99\x0a\x6a\x47\x9b\xdb\xe8\x0a\xd6\x34\x52\x61\xa2\x45\xbb\x5d\x65\xb4\xd8\xe2\xec\x0e\xae\xde\xed\x0d\x1d\xed\x51\x3e\xf0\xa3\xde\x34\xcf\xe8\x36\xda\x96\x89\x9e\xd3\x3b\xe7\x82\x0e\x08\xc6\x36\xeb\x5d\xc7\x05\x9c\x97\x62\x1b\x31\x87\x7e\x68\x7d\x95\x7a\x49\x2c\x65\xd7\x72\x9d\xb1\x7a\x0d\x72\xb7\xa9\xeb\x34\xa7\xe8\x76\x68\x80\xe9\x98\x1f\x6f\x18\x07\x66\x51\xd1\xb7\x1d\x56\xc6\x64\x98\x92\x95\x98\xc7\x70\x63\xa0\xae\x4c\x99\x95\x6c\x18\x55\xe5\x5b\x5b\xb7\xaf\xeb\xd2\xdb\x76\xc6\xf4\x25\xed\x91\x19\xcc\x2a\x64\xd2\x15\xad\xc4\x2e\xbc\x4c\xb2\xa9\xb7\x05\xbc\x7c\x10\x75\xcc\x1d\x23\x96\x88\x6e\xb3\xd7\xa4\xbf\xcd\x74\x14\xe5\x8c\xd0\x11\x1b\xb7\x38\x3c\xfb\x66\xd8\x97\x93\x20\xd9\x50\xe9\x78\xf6\x15\x20\x02\x88\x0d\xcf\xf2\x9c\x47\x19\xc5\x7d\x84\x99\xcb\x6a\x52\xcd\x49\xfa\x2c\xa7\xf6\x76\x1a\x8d\xcb\x92\xf6\xb4\xc4\xf1\xd3\x11\x89\x19\x7e\xc2\xc9\x12\xff\x87\x93\x54\x99\x88\xa6\xd6\x6c\x4b\xd9\xe7\x99\x98\x06\x14\xaf\x54\x84\x49\x8e\x39\xa3\xf4\xcd\x32\x49\xa7\x75\x61\x71\xb5\x7a\x76\x29\x00\x16\x50\x7b\xe2\xbb\x31\x8c\xe7\x08\xfb\x73\xc9\x90\xe3\x5a\x95\x04\xcf\xe9\x38\x09\x72\xb5\x7b\xf0\x14\x34\x9d\x0d\x99\x07\x56\xa8\x33\x2f\x0d\xb3\xe9\x83\x03\x28\x13\x24\x24\x9f\xc9\x64\x3b\x1a\x28\x86\x73\x99\x63\xba\x09\xfa\xd4\xcc\xb0\xc0\x31\x4e\xc4\x04\x34\xf4\x69\x08\x7d\x6a\x15\x39\x8f\x94\x1d\x40\x1f\xfc\x2f\x9d\xbb\x25\x90\x3e\x10\x5e\x32\x37\xec\xee\xd2\x78\xf0\x3a\x8d\x53\xfd\xd1\xd6\x9b\x38\x2e\x34\x91\x7c\x55\x26\xaf\x45\xdd\x29\x93\x3f\xc5\x9d\x26\x77\xc2\xd4\xdb\x09\x6b\xec\x76\xe5\x18\xea\xd1\x43\x46\x1a\xb5\xde\x3d\xc5\x72\x4e\xc9\x44\x9b\x24\xa9\x38\xa4\xd5\x95\xe4\x66\x2d\x99\x5c\xcb\xca\x8b\x87\xbb\xb4\x79\x69\x2d\x97\x1a\xd7\x12\xb2\x24\x99\x0d\x86\x63\xb1\x5e\xcd\x9b\x51\xd4\x16\x4b\xb8\x04\x60\x11\x44\x8e\xb2\xec\xec\x32\x5c\xce\x65\xf9\xd7\x8e\x86\x4d\x5a\x32\x61\x51\x82\xfe\xc6\xf9\xc8\x43\x90\xf2\xff\xf6\x0e\x73\x56\x10\xe4\x42\x99\x28\xc2\xec\x9e\x6a\xdc\x53\x6a\xd2\x49\x78\xab\x6d\x9e\xdd\xae\x59\x6d\x7c\xba\x9b\x39\x31\x97\x88\xa7\x3b\x99\xab\x5b\x4b\x9b\xc5\xa9\xc2\x99\xda\x4d\x37\x73\x57\x40\x57\x66\x04\x76\xab\xcf\xf4\xc3\x13\xbb\x93\xaf\x96\x2d\x95\x77\x2c\x42\xad\x69\xbe\x62\x84\xeb\xee\x6f\xaf\x05\xcc\x1b\x0c\x2e\x47\xfb\x16\xae\xae\x37\x7d\x53\xea\x28\xe6\x91\x3b\xc8\x82\x85\xd9\xad\xdc\x3c\x7c\x19\x02\x07\x4c\x4a\x5e\x8f\x28\xce\x46\x74\x3c\x06\x0b\xe5\xce\x3c\x4e\xb2\x0e\xee\xd0\xb4\xa0\x1d\xdc\x89\x39\x67\x45\x67\x0c\x09\x4d\x45\xf5\x68\x44\xc7\x88\xbc\x06\x6f\x7d\x2d\xc4\x6a\x87\x13\x6b\x8e\xd7\xdf\x2e\x5e\x3d\xfb\x87\x0e\xd0\x0f\xf1\x11\xdc\xc4\x29\xf2\x51\xc5\xe6\x60\x0c\x4b\x70\xe2\xa4\x43\xc7\x5c\x65\x43\x0f\xf5\x78\x08\x3b\x89\x30\x4d\x82\x4d\x9c\xe3\x3e\xde\xe8\x23\x1c\x34\x80\x9c\x98\xe1\x47\x5e\xf9\xc2\x10\x24\x6b\xbb\x66\x5e\x9e\xa3\xb9\x43\x99\x3a\xff\xb3\x79\x39\xec\xff\x0f\x84\xa4\xe9\x65\xf9\x94\x82\xfa\xac\xa4\xbd\xb3\xfd\xd3\x83\xdd\xc3\x83\x5f\x77\xcf\x0f\x4e\x8e\x2f\xde\x1d\x9c\x9e\x9d\x5f\x1c\x9f\xbc\xdd\xbf\x38\x3b\x3f\x3d\x38\x7e\x4f\x74\x43\x9d\x57\xdc\x92\xb0\x45\x73\x0c\x76\xbb\xd9\x0b\x1e\x33\x71\x9a\x80\x03\x78\x4b\x17\xfc\x5a\xdb\xd2\x4c\xe2\x6c\x2a\x7d\x52\x5c\x1f\x6a\xb1\xd2\x74\x7a\x32\x4f\x38\xa7\xd3\xe3\x7c\x4a\x8d\x8d\x76\xbe\xa0\x99\xdb\xcb\x96\xb1\x8b\xbe\xb2\x30\x1d\xd6\xc1\x94\xcc\xa2\x2a\x59\x5d\x66\xf3\x98\x4f\xae\xe9\x74\xd7\x66\x64\xb3\x80\x5c\xda\x81\x84\xdc\x5b\x09\x66\x79\x4a\xaf\xef\xa6\x32\x29\x7c\xfb\x36\xe1\xd7\x6d\xc7\x86\xab\x9d\xe5\xbc\x5d\x2c\x17\x8b\x9c\x71\x3a\xed\x20\xc7\x62\x44\x4e\x5c\x8a\x04\x7b\x4b\x56\xe4\x4c\xb3\x87\xd2\xb4\x06\x24\x84\xed\x0d\x6d\x31\x9a\xdd\xdf\x5f\xb2\x28\x43\xdd\xee\x5c\xfc\x0f\x6d\xa3\x8c\x64\xae\xb9\x58\x2b\xc4\x24\x68\xdd\xbc\x01\x02\xf9\xe4\x60\x6c\x5d\x6a\x44\x55\xdd\x34\x20\x14\x5e\x17\x3b\x35\x60\x9b\x86\x92\x51\x2c\xbc\xbe\x02\x33\xb0\xb0\x09\xa1\xe5\x34\x29\xa4\x21\xa2\x41\x63\xa8\x2b\x72\x9b\xb6\x78\x65\xb7\xb8\x58\x20\xb4\xa4\xd9\x5f\xed\x8e\x06\x7d\xc1\x74\xc4\xb1\xd2\x46\x51\x82\xf4\x83\x4b\xc9\xca\x3e\xa1\xdf\xc8\xbd\x14\x6c\x95\xfb\xfb\x3e\x6a\xe9\x40\x7e\xde\xc2\x40\xf2\x0d\x67\x4c\x67\xb5\xc3\xc3\x40\x5d\x68\x94\xc8\x7f\x30\xd6\xb6\x3f\x32\xee\xdd\x51\x52\xc0\xe6\x75\xa2\x92\x69\x8d\x9a\x3f\x51\x65\x7c\xbc\x41\x88\xb1\x2d\x62\xc1\x41\x82\x3a\xaf\x09\xab\x39\xa9\x10\xf9\x7b\x9b\x6f\xc3\x09\xba\x13\xb7\x27\x92\x95\x2f\xe0\x6f\xa9\xce\xe6\xda\x81\x13\x3c\x1b\xb8\x8a\x29\x0d\x2d\x35\x2a\xb6\x51\x58\x49\xab\xee\x2a\x9b\x80\xa3\xb2\xbc\xb8\x30\x10\x2a\xc3\x6d\x6f\x52\x43\x6a\x6d\xe5\x75\x74\x3f\x6f\xad\xed\x82\xb4\x82\xdf\x9b\x9b\x10\xaf\xc0\xee\x5d\xa6\xc2\xea\x04\x48\xc2\x2b\x2e\x73\x67\xc9\xa4\x20\xea\x88\xb6\x5e\x12\x69\x9d\x89\x80\x80\x9e\xdf\x2d\x68\xb7\x0b\xd1\xa1\x2c\x41\x95\x56\xeb\x3a\x51\x80\x20\x9d\x1d\xdc\x47\xdd\xee\x85\x60\x87\xc0\x9a\x36\x0a\xd6\xdb\x45\x0c\x64\x01\x09\xe8\x1c\x47\xc3\xce\xf9\xc1\xf9\xe1\x7e\x67\x83\x90\xa4\xdb\xed\x9c\xed\x9d\x1e\x7c\x3c\x37\xbf\xce\x7f\x31\x45\xb2\x67\x6f\x83\x08\x8e\xb6\xbc\xb8\x98\xa4\x79\x41\xff\x12\x46\x43\x78\x42\x94\x6e\x6d\xd5\xa0\x14\x67\x64\x63\xe0\xe1\x55\xfc\x4d\x36\xfa\xf8\x4e\xe0\xc1\x41\x87\x97\x7c\xd1\x60\x21\x24\x6b\x49\x05\x2d\x5b\x5b\x2a\x67\x62\xdd\x94\xcd\xf0\x32\x2b\x9e\x15\x52\x5c\xca\x69\xa1\xcb\xbb\xdd\x3b\x06\x69\x9a\x2f\xc4\xff\x74\xb8\x4a\x3b\x47\xcd\x19\xbb\x40\xea\x7c\x15\x55\xc2\x13\x57\x17\x71\x6b\xab\x84\x65\x00\xf3\x46\xb8\xd5\x4c\x4e\x14\x83\x37\xee\x47\x30\xe4\xf7\xf7\xd2\x97\x21\x68\x65\x7a\xf9\xe1\xfc\xe8\x30\x20\x72\xd2\xb8\xf8\x0d\x18\x60\x4a\xcf\x03\x63\xca\xe8\xdb\x6d\x67\x84\x3b\x06\x9a\x38\x01\x9a\x36\x8f\x5c\x75\x05\x66\x2e\xb6\x70\xd6\x5b\x30\x7a\x93\xe4\xcb\xc2\x50\xa6\x3c\x5c\x34\xdf\x8f\x11\xbe\x66\x08\x5b\x24\x7f\x91\x48\x5e\x77\x00\x72\x53\x3f\xa4\x9f\x35\x0b\xed\x57\x41\x42\x9c\x55\x20\xf8\x98\x53\x98\x2a\xd5\x18\xce\xd6\x96\xd6\xaf\x02\x0b\xa0\x52\x70\xb7\x87\x51\xc8\xb8\xbe\x2d\x14\x61\x56\xfa\x58\x76\x75\x71\x06\x16\x88\xea\xda\xed\xee\x83\xa7\xba\xa3\xcb\x00\x2a\xed\x0e\xb3\xcd\xba\xdd\x8d\x7d\x71\x18\xb6\x11\x23\xac\x0e\x82\x9a\xa5\x01\xf9\xd3\xd1\xef\x98\x3d\x71\x4e\xbf\xf0\x87\x77\xd6\xce\x33\xb1\xc5\x0d\x0d\xdb\x89\xb8\xa5\x5f\x32\x54\xaa\xfb\x85\x68\x5d\xb9\xb3\x62\xde\xd6\xe0\x7e\x26\x4f\x35\xca\x4b\xc3\x68\x4a\x3a\xd9\xf9\x9f\xfb\x0a\xf3\x19\x71\x74\x7f\xff\x45\xdc\x25\xdd\x6e\x07\x0a\xd7\x52\x47\xcd\x52\x06\xb3\xd5\x3a\xaa\x60\x73\x20\xec\xef\x02\x53\xbb\xf6\xb3\x41\xa1\xf6\x96\x0a\x5f\xae\xf4\xca\x6a\x24\x76\xbb\x97\x02\xf0\xff\x02\xf2\x22\x5e\xbf\xbb\xc3\x09\x58\xc8\x90\xba\x22\x0d\x87\xd2\x00\xab\x20\x00\xdd\xee\xad\x44\xb0\xff\x88\x98\xcc\xa2\xce\x35\xe7\x8b\xe1\x37\xdf\xdc\xde\xde\xf6\x6e\x9f\xf5\x72\x76\xf5\xcd\xd3\x7e\xbf\xff\x4d\x71\x73\xa5\x16\x4a\xe7\x97\xfd\x74\x7a\x60\xa2\x58\xf6\xd4\xcd\x28\xb6\x50\xab\xee\x63\x8f\xe7\x9f\x16\x0b\xca\xf6\x20\x12\x73\x19\x71\xec\x1b\x17\xd4\x32\xde\xa3\xb1\xb4\x81\x51\xbe\xfc\x6e\xae\x5e\xcc\x15\x21\x4b\x66\x91\x9a\x4a\xe7\xfc\xcd\xc9\xdb\x5f\x3a\x72\x34\x39\x32\x0a\x83\x0d\x68\xdc\x70\xe9\x0e\x8c\x6b\xf8\xd1\x5a\x61\x43\x07\xb8\x0a\x10\xdc\xaa\x5d\xa1\x90\xde\xf8\x6d\xca\x8b\x8b\x6a\xce\x66\xcf\xc4\xbb\x06\x15\x5e\x06\x8f\x13\x16\x65\x58\x86\x5e\x4a\x90\x51\xe2\xdd\xa8\xbd\xc6\xbb\xdd\x48\xfd\x22\x5c\x99\xb9\x67\x90\xf4\x68\x42\xa3\xcc\x44\x04\x4a\x10\x1e\x54\x20\xad\x01\x4c\x82\xfb\x91\xe5\x0b\xca\x54\x14\x71\xd7\xb6\xb9\x01\x56\x33\xa1\x13\x16\x31\x05\x6b\x66\x62\x5f\x78\xb0\x66\x01\xac\x4c\xc3\xca\x0c\xac\x59\x03\xac\x1e\x54\xe5\xc5\x05\xa4\x7f\x76\x18\x74\x49\xf2\x6a\x40\x74\x1d\x2b\x99\x25\xc5\xd2\xfe\x95\xb9\xf6\xaf\x5a\xbf\x62\x52\xc1\x2a\xb2\x63\xd1\xc4\x46\xd9\x18\x0e\x85\xda\x0d\x4d\x12\xa4\xe4\x4c\x34\xf4\x15\x50\xcb\xdb\x24\x4d\xf7\x04\x43\x66\x3d\x33\x7c\x82\x4d\xb1\xcf\x9e\x69\x02\x6e\x63\x59\xd7\xec\x46\x41\x69\xba\x5d\x5e\xb7\xab\x55\xfd\x45\xbe\xb0\x4e\x58\x12\xbc\x2a\x28\x42\x2a\x3c\x82\x1b\xce\xdd\x01\xb4\xf7\x9f\x25\x65\x77\x67\x34\xa5\x20\x58\xff\x5e\x4c\x58\xb2\xe0\xa3\xab\x74\xce\x48\xe7\xc9\x8a\x97\x9d\xf1\xef\x56\xcd\x73\x7f\xaf\xae\x25\x78\x60\xa2\xf3\xdc\xe6\xde\xad\x1e\x02\x7f\x40\xeb\xde\x08\x41\x54\x56\xae\x20\xe1\x8a\x4d\xdd\xae\xfb\x6b\x83\x90\x6c\x1b\xb9\x97\x85\x5b\x8a\x5a\xd2\x0f\xb5\x54\xa9\x21\xb5\x00\x57\x27\xee\xab\xa7\x68\x2d\x71\x25\x92\x21\x81\x20\x84\x4d\x32\x0b\x53\xd1\x52\xea\x6f\x2d\x15\x00\x3f\x97\xf1\xa7\x42\x2f\x03\x31\xc8\x61\x72\xa3\x78\xf3\x1c\x6f\xf4\xe1\x95\x7b\x17\x28\xbe\xe2\x31\xa8\xd5\x60\xf4\xaa\x65\xc1\xfd\xe2\x84\xa9\x36\x0c\x5e\xc8\x4e\xc3\x3e\x71\x6e\x21\x27\x82\xb3\xd1\x1d\x5d\xb2\xc6\xcb\xdc\x56\xba\x6b\xae\x24\x25\x23\xda\x28\x19\x6d\x49\xc9\xc8\x49\x4f\xee\xf6\x65\x23\x23\x3b\x1d\x48\x2b\xc9\xe7\x08\x0f\xdc\x76\xb7\x6e\xbb\x41\x03\xa0\xfb\xeb\x00\xed\xfc\x8f\xd8\xc6\x15\xee\xc4\xe6\xd0\x5e\xdf\xb8\xdd\xdc\xf2\x84\x85\x26\x3b\xfd\x6d\x66\xad\x75\x98\xb6\xd6\x51\x8f\x56\x90\xcd\x34\x53\xf7\x28\xb2\x81\x28\x69\x4f\x6f\x37\xad\x05\x27\x57\xac\x44\x08\xd3\xa8\xf3\xcf\xab\x34\x99\xcf\x29\xfb\x66\xc9\x93\xb4\x83\x47\x1d\xfa\x65\x91\x33\x5e\x74\xc6\x38\x72\xd9\xb2\xce\x52\xd0\x24\xce\x92\x09\xef\xb4\x94\x42\x55\x5a\x75\x3b\xb4\xb5\x73\x71\x41\x8b\xa3\x7c\xba\x4c\x69\x07\xab\xdc\xfe\x1b\xfd\x52\x08\x34\x71\x51\x50\xc6\x8f\xe9\x0d\xf5\xed\x91\x48\x67\x99\xd1\x2f\x0b\x20\x39\x6d\x27\xc9\x6f\xfb\x92\xc5\xd9\xe4\xba\x63\xd3\x16\xa6\xf9\x55\xd4\x71\x6a\x74\x30\x45\x58\x17\x72\x16\x4f\x68\xf4\xbb\xa0\x24\xed\xe1\xb0\xfd\x64\xf5\xe1\xec\xe4\xb8\x27\x73\xb2\x27\xb3\x3b\x71\x9b\xb6\xa3\x27\x2b\x5a\xa2\xdf\x51\x69\xc0\x21\x15\xa6\x66\x83\x56\x74\x75\xfc\xfe\xbe\x23\xab\x83\x0a\x3b\x4e\xd2\x25\xa3\x1d\xe8\x65\x4a\x17\x8c\x4e\xc4\x91\x70\x51\xa5\x61\xba\x8d\x59\x16\x75\xde\xee\x7f\x3c\xdd\xdf\x03\xed\xe8\xb0\xdd\xd9\xa4\xb2\x61\x32\xe1\x24\xc7\xb4\x97\x14\x6f\xc5\x9f\x35\x0c\xb0\xa4\x59\xb4\x84\x4a\x12\xe1\x35\xd5\x3a\x39\x94\x58\x4f\x0b\x6a\x53\x16\x94\x90\x6e\xac\x58\x32\xfa\x7e\x99\x4c\x41\x08\xb6\xf6\x3c\xf0\x29\x83\xce\xcf\x28\x83\x6f\x40\x8d\xde\x69\x31\xaf\x6e\xb0\x7a\x1d\xb0\x44\x67\x72\x95\x91\xfa\x8c\xfc\x83\x6d\xfe\x2a\xd6\xa1\xf5\x6a\x32\xf3\x9b\xb2\x11\x1f\xbb\x42\x7f\xb7\x5b\x99\x1d\x43\xf6\x06\x8e\x65\x18\xac\x75\xc9\x22\x5b\x74\x94\x8f\x09\x1b\xe5\x6e\xd4\x59\x2c\x48\x7b\x9a\x1e\x2f\xd3\xb4\x68\x80\x18\xd2\x1e\x82\x09\x36\x98\x9a\xc1\xa1\x83\xd3\xc6\x47\x6c\x2c\x1d\x6b\x34\x11\x2e\xb5\x33\xaf\xdf\x97\x36\x8c\x32\xba\x5b\xd6\x4e\xb2\x36\x45\xca\x38\x49\x1c\x57\xe4\xf5\x01\x97\xb1\xba\xe4\x6a\x7a\x72\xaf\xa3\x96\x51\xab\x69\xd9\xdc\x15\xfb\xa8\x27\x71\x0a\x99\x87\xb0\x52\x8c\xf0\x99\xde\x15\x75\x1b\xcd\x7d\x1d\x91\xbb\x53\x3e\x21\x79\x75\x4d\x14\x82\xea\xf9\xe8\xec\xeb\xe3\x0b\x78\x68\xf3\xbc\x7d\x49\xdb\x0b\x46\x0b\x9a\xf1\x8e\x7d\xef\x80\xed\x08\x55\xab\xc7\xae\xa9\x6f\xee\x37\x77\x4e\xbf\xd3\x07\xf1\xa8\x82\xf7\x92\x26\x7b\x91\xb3\xa2\x5f\xae\xe3\x65\xc1\xe9\xd4\x9b\x58\xcd\x6c\x54\x35\x73\x58\x05\x15\x71\xb1\x81\x7b\xbd\x9e\x47\x94\x3b\x9d\x07\x1c\xa2\x70\x4e\x8c\x13\x29\x1f\x65\xe3\x1d\x9d\x89\x68\x94\x8d\xd1\xb0\xd3\x69\xb1\x4d\xf2\xfb\x93\x55\x52\x3e\x59\xe5\xe5\xef\xa5\xd4\x16\x31\x9d\x7f\xf4\xb7\x4c\xbd\x01\x6c\x6b\xcb\xfc\x6e\x37\x1e\xf5\xc7\x3d\xc9\xb8\x7d\xf3\x7f\x7e\x2b\xfe\xf1\xe4\x1b\xb4\x8d\xe2\x5e\x71\x9d\xcc\x78\x54\x53\x3b\x76\x8c\xc6\xaa\xcd\xa4\x09\xb8\x7c\xc4\x1a\x7c\xd3\x37\x9b\x36\x6d\xe7\xb3\x76\xac\xc3\x3d\xa4\x6e\xcb\x6f\x90\x80\x40\x39\x98\x16\xe4\x28\xe6\xd7\xbd\x79\x92\x45\x05\x5e\xea\x54\xf6\xce\xee\x9f\xca\x8e\x26\x72\xf7\x4f\xd5\x55\x5c\x58\x2f\xd7\x49\xef\x8f\x3c\xc9\xe4\x5c\x25\xc9\x93\x2f\x98\x75\x1b\x96\xbe\x26\x7d\x59\xe7\x38\xcf\x3e\xb2\x64\x9e\xf0\xe4\x86\xae\xab\xff\x0c\x4e\x98\xf6\x46\xb0\x75\x7a\xbd\x9e\xa9\x36\xda\x18\xe0\x8d\xbe\xe4\xe9\xe4\x62\x89\x75\xa6\x63\x39\x92\x76\x67\xa9\xed\xff\x7f\x06\x84\xf4\xbb\x5d\xfa\x8a\x7c\xfb\xec\xc5\xcb\xef\xfa\xdf\x0f\x06\xdd\x2e\x7d\x4d\xb6\xf4\xcf\xa7\x92\x14\x4f\xf2\x29\x3d\xa6\x57\xb1\x00\x97\x2c\xe1\xfe\xf0\x3e\x4d\x4c\x2d\x99\x8a\xe1\x86\x92\xa9\xa9\x65\x3e\x5d\x9b\x5a\x6b\xa6\x5c\x9a\x76\xeb\x2a\xb5\x68\xe8\x70\x47\x66\xa6\xa1\xfd\xb6\x30\x34\xa1\xa6\xb3\x64\x16\x55\xdc\xfd\x6c\xd2\x8a\x96\x26\x5f\x54\x9c\xae\x62\xd4\x1f\xb7\xc2\x13\xf7\xfb\x9e\x7c\xa1\x96\x3f\xc5\xdd\xcd\x7b\x0b\x96\x5f\xa6\x74\x5e\xb6\xff\x09\x3f\x8b\x45\x9c\xc9\xf7\x85\xb2\xd7\x33\x1f\x68\x36\x2d\x7f\x77\x08\xd6\xb9\x4a\x51\x5c\x01\x0f\xc6\x96\xb7\x16\xa3\xc5\x32\xe5\x15\x3a\x53\x85\x81\xfa\x30\xd0\x10\x06\xea\xc2\x10\xd0\x38\xc1\x8c\xf0\x46\xbc\x57\xb1\xb5\x43\x87\x3a\x8e\x9c\xba\xee\x3f\x7f\x45\x6b\xd9\x64\x9f\xb1\xaf\x6c\x23\xc3\x13\x13\xda\xe3\xcb\x45\x4a\x09\xed\xdd\x50\x96\xcc\xee\xce\x38\x5d\x14\x04\xd8\x2d\xf1\x27\x64\x01\x9d\x9e\xd3\x82\xeb\x02\x78\xb0\x77\x3f\x80\xab\xcc\x79\x2e\x69\x1a\x79\xf8\x45\x98\x4a\xe7\x56\x42\x7b\x82\xf7\x39\xa3\x62\x7b\x38\xe1\x70\x15\xa9\x54\x3b\x47\xdd\x4e\x33\x46\xe9\x9f\x34\x1a\x8d\xdd\x50\xb8\xa2\xb2\xce\x3d\xd7\x6f\x19\xae\xd9\xdb\xe3\xbd\x8b\x2b\xc1\xe9\x6c\x6e\x32\xcb\x56\x27\xd5\x0a\xf7\xf7\x99\xf7\xf4\x9d\x47\xe1\xfd\xa8\x92\xaf\xc8\xe0\x70\x16\xf4\xaa\x6b\xad\x7a\xbb\x94\x2c\x5e\x84\xca\x78\x3a\x75\x96\x42\xb2\xa4\xee\xe2\x9b\xda\x23\x3a\x26\xda\x19\x41\xfc\x14\x60\x8e\x95\x67\x6e\xa9\x23\x6f\xa0\x55\x4d\x17\xb2\xb0\xed\xf6\x34\x54\x13\xeb\x76\xab\x85\xb2\x64\x5c\x8a\xf3\x2f\x97\xa2\x71\x16\xd2\x3b\x78\x34\xf6\xa3\x75\x98\x4c\x02\x45\xf2\x67\xf8\xf2\x2b\xed\x0a\x54\x54\x6a\x65\xc3\xf9\xff\x31\xf7\xa7\xed\x6d\x1b\x69\xc2\x28\xfc\x9d\xbf\x82\xe2\xa4\xd9\xa8\x61\x09\x26\x65\x77\xa6\x43\xb9\xcc\x57\xb6\xe5\xc4\xef\x58\x96\x5b\x92\x93\x93\x8b\xe1\x28\x10\x51\x14\x2b\x86\x00\xa6\x50\xd4\x46\xe2\xf9\xed\xe7\xaa\xbb\x76\x00\x94\x3d\xfd\x4c\xcf\x75\xbe\x90\x40\xa1\xf6\xe5\xde\xea\x5e\x6a\x4e\x3d\xea\x4e\x79\xb5\x96\x67\x28\x0c\xf7\x8c\x93\x70\x60\xaf\xa4\x71\x4e\xcb\x6d\xb3\x0a\x15\xa6\x5c\x56\xbb\x02\x53\xb1\x3f\x9a\x39\x67\x2a\x54\x7d\xa7\x55\x2e\xea\x56\x54\xad\xf5\xbf\xa4\x2d\x15\xd2\x59\x65\xbd\x59\x9a\xd1\xdb\x38\x65\xc1\x0c\x34\x6c\xf9\x5c\x16\x35\xff\xdf\xaa\x3e\x71\x9b\xf0\x8d\xa4\xd1\xc6\x49\xa5\x0f\x45\xc7\x1c\x5d\x85\xc7\xc8\x2b\x05\x6d\x4b\x9c\x49\x8a\x48\x9b\xdc\xf6\xf6\xcc\x36\x51\x6a\xaa\x13\xf5\x37\xa6\xe4\xd5\xef\x97\x97\x92\x23\xfa\x6e\x03\xc8\x7b\x91\x15\x05\x8f\xe0\x91\x27\x79\x5a\xdc\x44\xe8\xdf\xdf\x26\x42\x12\xfa\x77\x11\x88\x8c\x7f\x77\x47\x6c\xed\xf9\x1a\x37\x48\xee\x79\xdf\xe3\x5c\xe7\xde\x11\xb3\x58\x70\xeb\x65\xf0\xce\xc4\xff\xf1\x92\x97\xed\xc9\x5e\xec\xa2\x88\x6e\xc9\x10\xbd\x1c\x4e\x64\x1f\xc6\x69\x70\x6a\x57\xf5\x6c\xaf\x5c\xef\x26\xb2\xea\xf1\x1c\xd4\x74\x0d\xec\xcb\xf0\x74\x84\x25\x49\x64\xf4\x6e\x28\x79\xb5\x8a\x64\x63\xda\x77\xd9\x0d\x29\x3b\x75\x00\x77\x83\x1b\x30\x50\xd3\x0b\x35\x50\x69\x53\x7d\xc0\x6a\x13\x0d\x7c\x55\x09\x75\x6e\x5c\xfb\x65\x29\xb8\xcf\x92\xe3\xde\xff\x8f\x4a\x40\xfe\x6c\x55\x64\x0f\x92\x87\xf9\x1f\xe7\xd2\xaf\xd6\x37\x1e\xa5\x8b\x36\xc9\x60\xa0\x48\x27\xf0\xae\x47\x8e\x31\x6d\xb3\xf2\x21\xf7\x36\x5d\xbe\x79\xe5\x3d\x52\x7c\x19\x0d\x01\x57\x37\xbd\xf9\xc1\x8c\xb2\xf2\x8d\x84\x3e\x17\xc9\xf5\xb5\x4f\xa1\x6f\x44\x72\x3d\xa6\x95\x03\xd7\x84\x90\xdb\x2a\xc8\x4f\xae\x15\x0b\x66\xdc\xdd\x01\x65\xe5\xb9\x7a\x23\x19\x30\xdc\x5c\x3c\x5c\x24\xd7\xef\x0a\x4e\x8e\x30\x5c\x38\xc8\xc7\x2f\xea\xf1\x84\x8a\x44\xbe\xbe\x91\x68\xd1\x49\x8b\xdf\xb2\xf4\xcd\x32\xc9\xaf\x43\x9c\x7a\xa2\x38\x6b\xb5\x05\x78\x32\xff\x02\x8a\x60\xe4\xa3\x5e\x7e\x97\xf2\x5e\x13\x9d\xeb\x1b\xe8\xd6\x07\xe8\x35\x7c\x97\xdb\xa8\x65\x96\x14\xdf\xfb\x87\xac\x5d\x92\x10\x5f\x9a\x7c\x60\xe7\x63\xa4\x34\xc9\x29\xf8\xda\x51\x5a\x70\x82\xbc\xf7\x34\xc0\x65\x69\x70\x5c\x19\x32\x59\x0a\x4b\xfe\xac\x34\xab\x72\x12\x21\xf2\xea\x3b\xef\xd2\x35\x9f\xbe\x9b\x11\x8e\x73\x45\x4d\x35\x5b\x7f\xab\x00\xf5\x1f\x08\xff\xa1\xf8\xdf\x7a\x27\xfe\x20\x6f\x8d\xa3\x5b\xb7\x3a\x27\x61\x3f\xac\xdb\xca\xbd\x16\x6a\xf4\x1d\x30\xc8\x15\xd8\x5a\xfe\x19\xd1\xe9\xbb\x99\xb7\x5d\xc0\xf8\x8d\xfc\xec\x6a\x26\x7f\x62\x6a\x63\xfa\x93\xef\xcc\x8c\xd1\xf4\x6d\x22\x92\xd6\xa1\xcb\x3d\xf8\x0b\x4d\xbe\x9c\x24\x2b\x9c\x93\x9e\xc9\xe2\xd0\xa8\xb9\x8e\xda\x5c\x53\x21\x28\x77\x97\x92\x46\x3f\xd4\xcc\xd5\x87\xe8\x4b\xc4\x30\x45\x08\xe7\xfd\xfe\x1e\xe8\xe4\x47\x0c\x4d\xa2\x82\x08\x75\xff\xc4\x8c\xdb\x30\x86\x0b\x84\xc6\x05\xe1\x2a\xb2\x13\xc2\x45\x85\xcb\x5a\xed\x02\xe7\x68\x73\x04\xd7\x5c\xba\x94\x4c\xa9\xaa\x40\xbe\x74\xb2\x16\x20\x9d\x29\xdf\xe7\x47\x6b\x51\x08\xbd\x89\x2e\x78\x92\x97\x09\xd4\x23\x69\xdb\x75\xfe\xd4\xe7\x92\x8a\x1d\x1f\x8f\xf3\x5b\x42\xe3\x9f\x4f\x3f\x1c\x5d\xbc\xff\x70\xec\x3d\x5e\x5e\x1c\x49\x72\xed\xe7\x22\x4b\x04\x53\x67\x95\x3a\x27\x8c\x84\x1a\xff\x9e\xc4\x1d\x30\x42\xe3\x37\x9f\xcf\xce\x8e\x95\xa5\xa0\x7c\x53\xb8\x59\x7f\xd2\x56\x84\xde\xa3\xc9\x76\x7a\xf2\xe9\xf3\x85\x6c\xfc\xe8\xc3\x87\xd3\x5f\x2e\xdf\xfc\xfa\xe6\xc3\xf1\x79\x40\x0b\x2a\xc7\xad\xff\x22\xdc\x86\x8b\xaf\x57\x2c\xd1\x84\xac\xbc\x77\x79\xf9\xe3\x87\xf7\x27\x27\xc7\x67\x97\x3f\x1f\x7d\x78\xff\xf6\xe8\xe2\xf4\xec\xf2\xfc\xd7\x93\xd7\xa7\x1f\x2e\xdf\x9d\x9e\x5d\xf6\x06\xb4\xf3\x95\xe5\x10\xff\xcd\xd5\xe5\xf8\x6b\x0b\x98\x77\xbc\xe9\x1d\x76\xdc\xda\x8c\x3a\xde\xda\x7e\x4c\x3e\x6a\x27\xab\x23\xcd\xef\xb3\xa8\x77\x71\xf4\xe3\xa5\x9e\xff\x1e\x72\x48\xde\xb7\x79\xa1\xd3\x72\x16\x79\x98\x76\x1d\xba\x49\x78\x45\x74\x06\xb7\x90\x25\xd4\x3f\xc7\xa9\x69\xe1\xe2\xd7\x4f\xb2\xfa\xda\x02\xcf\xb5\x5e\xe8\xb2\x55\x0f\x99\xd3\x5b\x56\xca\xf1\x8f\x9c\x4f\xcf\x37\x4b\x2a\x0f\xba\x9f\xa4\xa0\x80\xf1\xc5\x5b\x1a\x0d\x6c\xab\xfa\x59\xae\xaf\xc2\xb8\x97\x2a\xe1\xf5\x7a\xb1\xa0\x5c\xc1\x16\xfb\x6d\x9a\xce\x08\xad\x60\x34\x2a\x80\x9a\x6b\xd2\xd7\x73\xda\xb3\xe4\x9e\x6b\x0f\x35\xfa\x38\x18\x24\xd6\x7b\x26\xdd\x23\x24\x31\x8e\x93\xbc\x3e\x0e\x9b\x43\x4b\x3a\x5a\x43\x7a\xa3\x3a\x0a\x01\xaf\xd4\x4c\xf8\x17\x92\x36\xe6\x2f\x5b\x44\x40\x65\xc6\xac\x54\xd4\xa6\x40\x28\xbc\xaa\x14\x2d\x92\x29\x31\xcd\x67\x30\xce\x0e\xd7\xf2\x9b\xe4\x5e\x85\x9f\x03\x6f\x9d\x4a\x8c\x2a\x54\x8e\xc2\x12\xb7\xf5\x99\x9b\x78\x85\x79\x6d\x49\xac\xf9\x4f\xfb\x74\x07\x25\x0b\x1b\x06\xce\x2e\x28\x77\x28\xae\xb1\xb0\x56\xa0\x1b\x96\x31\x36\x00\x16\x48\x05\xb7\x90\x38\x27\xa2\x93\x4b\x12\x62\xc2\xfd\x4d\x31\x8e\x78\x5b\x1f\x61\xe8\xd8\xe5\xb4\x46\x12\x06\xd8\x29\x97\xc2\x76\x93\x0e\x06\x49\x55\x29\x17\xa1\x4b\x0b\x10\x3b\x1e\x6c\x5c\xc0\x99\x58\x91\xa5\x03\xa2\xee\xb8\xdd\xd4\xe9\xa5\x91\x3c\x4e\x0e\xda\xae\xa0\xf0\x2d\x51\x1f\x9f\x7b\x07\xf5\xda\x3f\xa8\x40\x20\xd5\xc0\xeb\xad\x3e\x64\x57\x1b\xb5\xaf\x75\xde\x8f\xc9\xc7\xaa\x0a\xc1\xfb\x15\x34\xf2\x00\x8d\x5c\x75\x6a\x98\xe0\x41\x57\x73\x19\x56\x93\x40\x0c\x1d\x07\xe6\x2f\xa1\x8e\x3b\xa8\xe3\xd2\xf5\xf2\x38\x94\xb1\x83\xd1\xf0\x10\xe7\xc4\x5d\x67\xbd\xcc\xdd\x95\x16\xd3\x57\x5a\x7b\x84\xdc\xf6\xfb\xc2\xdc\xa6\x9a\x55\xbf\x8f\x84\x07\x8d\xee\x83\x20\x12\x26\x50\x6c\x18\x46\xe2\xb6\x16\x37\x82\x4e\x87\xb3\x4e\xaa\x82\xe0\x8f\x9d\xd8\x7f\x19\x1d\x38\xc1\xbc\x59\x79\x8a\x05\x8c\xd1\x43\x6c\x77\x30\xc8\x53\x72\x13\x21\x7c\x0e\xbf\x17\xf2\xb7\x93\x45\xa7\x08\x2f\xe4\x0f\x3c\xad\xa2\x53\x7c\x1c\x4d\xcf\xf1\xc5\x0c\xe9\xa4\x45\x74\x6e\x9f\x2e\xbc\x6c\x17\xf5\x54\x68\xe1\xc4\x27\x14\x2b\x48\xfa\xe4\xd3\x32\x6e\x7e\x8f\xfc\xad\xfe\xc9\x84\xb0\xf7\xbd\xfd\x7a\x3a\xbc\xe0\x27\xc7\x8f\xb2\xd0\xef\x47\xa0\x3e\x71\x02\x16\x6e\xb6\xd2\x37\x8e\x45\xfe\x14\x46\xc5\xef\x3a\x0f\xaf\xfd\x7e\x24\xac\x4f\xef\x4f\xb1\x76\xbd\x83\x10\x16\xae\xa2\x2f\xe1\xcd\xbd\xe7\xdb\x54\x36\x31\xe6\x36\xde\x97\x68\x36\xc0\xfa\xfd\x88\xc1\x1c\xe7\x9a\x40\x62\xa0\xad\xa7\x76\xe3\x59\x9b\xdc\x42\x24\xd7\x2a\x6c\xfe\x39\x15\x0e\x28\x29\xc1\x85\x16\xc8\xd8\x7c\xb1\x4a\xf0\xb2\xd1\x4a\x73\x3c\x1a\x07\xc8\x5c\x3e\xf0\x57\x57\xd3\x25\x7b\xb4\x82\xce\x5b\x99\x3c\x6a\x24\xdb\x2a\x3b\xf6\x42\xc8\xca\x9d\x3c\x9e\xd3\xdc\x0a\x21\x84\x8f\x41\x85\x59\xe6\x56\x84\x36\x7e\x0b\x72\x74\x33\x8d\x1f\xa3\x1a\x2d\x4e\xef\xba\x67\x6e\x96\xdf\x5b\x19\xca\x1f\xa6\x21\x4b\x98\x3b\x3e\xce\x47\xe4\xa0\x03\x6a\x38\x8f\x7e\xff\x0f\x3d\x19\xd0\x83\x77\x12\x75\xbf\x39\x7a\xf3\xd3\xf1\xe5\x7f\x1e\xff\xda\x53\x1b\xf2\x51\x26\xbe\xfb\xd8\x43\xf8\xb3\x7c\xfa\x70\x74\x7e\x21\xa9\xa0\xcf\xc7\x3d\x84\x5f\x6b\x5c\xdf\x43\xf8\x27\xf9\x78\xfe\xf1\xe8\xd3\xf9\x4f\xa7\x17\x3d\xd4\x61\x51\xef\xed\xf1\xeb\xcf\x3f\x5e\x7e\x38\x7a\x7d\xfc\xc1\x27\x33\x7e\x76\x5b\x6c\x33\x7d\x9c\x8d\x29\x9e\x7e\x9e\x69\x77\x6d\x78\xfa\xda\x3d\xfe\x34\x1b\xef\x8f\x2a\x77\x6b\x66\x6b\xf8\x4e\xd6\xf0\x8b\xe4\x6c\x0d\x47\xa0\xfb\x2a\x08\x9d\x3e\xce\x20\xbc\xce\xeb\x99\x04\x35\xd3\x9f\x42\xff\xd7\xbc\xdf\x5f\x43\x94\x02\xf4\x41\x32\x43\x80\xf7\x2c\x8b\x35\xfd\x3c\x23\xc2\x63\x71\xb8\xe4\xb3\xb0\xac\x4a\x92\x63\xd3\x9f\x66\x24\x8b\x38\xc2\x1f\x40\x49\xda\x42\x95\xcf\x33\xd7\xb1\x3f\x6d\xc7\x34\xdb\xe2\xf5\xeb\xb5\xdd\x0a\xd7\x01\x2c\xfb\x25\x42\x9b\x21\x4c\xff\x8f\xfe\xd1\x67\x8b\xa8\x8d\x3e\xbd\xce\x8a\xab\x24\xbb\x58\xb2\xd2\x6c\x39\x97\xd2\xd9\x51\xa6\xa4\xd9\xc2\xe4\x96\xcf\xbb\xf2\xdd\xb1\x3c\x2d\xee\x4c\x4e\xf5\xb6\x2b\xaf\x6a\x35\xec\x43\x43\xd2\xdf\x5b\x83\xb2\x73\x57\x14\xdd\xac\x90\x84\xaf\xce\xd8\xd5\xd7\xbc\xa8\x8a\x10\xfe\x95\x14\x51\xaf\x49\x5e\x9f\x1d\xff\xf8\xfe\xfc\xe2\x0c\xc4\x64\x3d\x64\x29\xb0\x1f\xa7\xbf\xce\x9a\x37\x92\x17\x4b\xda\xfd\xbd\x29\x4b\xf9\xbd\x9b\xb1\x2b\x9e\xf0\x87\xee\x32\x29\xbb\x57\x94\xe6\x5d\x96\xcf\xb3\x75\x4a\xd3\xae\xb8\x63\x73\x2a\x59\x50\x79\x64\xbb\xc9\x6a\x95\xb1\x39\x10\xe5\x71\xf7\xbd\xe8\xce\xc1\xc9\xec\x15\xed\xa6\x6c\x01\x96\xe1\xa2\x7b\x4b\xb9\x44\xfa\x65\x57\xb2\x8e\x4b\xda\x5d\x25\xf3\x2f\xc9\x35\xc5\xdd\x82\xc3\x7b\x99\xdc\x50\x93\xa9\xde\xcc\xd5\x43\xf7\x86\x95\x22\xf9\x42\xe3\xf6\x7e\xa6\x10\x34\xbe\xec\x16\x79\x77\x99\xdc\xb2\xfc\xba\x9b\x74\x4b\x96\x5f\x67\xb4\x3b\x2f\x56\x0f\xb5\x36\x65\xb7\xd7\x25\xed\x26\xa2\x9b\xe4\x0f\x5d\xc1\x6e\x20\x29\xc9\xfd\x71\xe0\x2e\xbd\x95\x03\x86\x92\x0f\xdd\x84\xd3\x46\x37\xe3\xee\xaf\xc5\xba\x7b\xb3\x2e\x45\x37\xa5\xe9\x7a\x45\xbb\x0f\xc5\x9a\x77\xaf\xd6\x2c\x4b\xe5\xa2\xa9\x8b\x65\x28\x96\xae\x55\xc5\xb6\x0f\xa5\x6c\xb1\xe0\x29\xe5\x32\xe7\x8a\xcb\xc6\x84\x9a\x4c\xb8\x7e\x89\x7b\xa8\x23\x17\x8b\xec\x35\x65\x5d\x37\xff\x42\xbd\x13\x1b\xa9\xea\x74\xb5\xeb\x2e\x11\x6e\xee\x46\x7f\xd3\x57\x2f\xbb\xb2\x8d\xbe\x57\x19\xea\xde\xa1\x5a\xb3\xbf\x24\x70\xe5\xf8\xdd\xed\x90\xd0\xf8\x3b\x31\x82\x5f\x78\x2e\xe1\xb9\x54\xcf\x2b\xf9\xcb\x13\xf9\xbb\x80\xe7\xd5\x9c\xd0\xf8\x82\xde\xac\x0a\xb9\x4d\x6d\x13\x34\x3e\x4f\x6e\xa9\x75\x3b\x65\xb8\x62\x55\x00\xfe\x79\x02\x7c\x9e\xac\xe6\xa0\xa3\xaa\x7e\xde\x51\x0d\xbd\xe8\xa8\x66\xff\xd6\x51\x9d\xf8\xbe\xa3\xba\xf4\x1f\x86\xab\xee\xa8\x8e\xfe\x1d\xd7\x9b\x11\xd8\x1f\x1b\x9d\xd2\x58\x56\x37\x23\xbd\x72\xd8\xc3\xf0\x3a\x22\x7f\x93\xaf\xa3\x5e\x15\x89\xed\x36\x6a\x54\x40\x36\xb0\xd8\x2d\x43\xe2\x8d\xba\x65\xd7\x66\xa4\x27\x74\xdd\xb2\x87\xf2\x55\xd6\xcd\xa1\xee\x96\x4a\xa0\xfe\xfa\x7e\xba\x63\x9c\xee\x2f\x0a\x7e\x93\x88\x6f\xdd\x58\x16\xfa\xfa\x11\xea\x9c\x88\xc6\x26\xd5\xb9\xac\x7e\x5f\x4c\x87\x33\x89\xf6\xab\xea\x9f\xda\x9c\x20\x08\x60\xa5\xd5\x00\x6d\xdb\x4d\xa3\x17\xb2\x81\xe9\x70\xb6\xdd\x8e\xfe\x66\x1f\x0f\x0e\x5c\xea\xf7\x2e\xd5\xe5\x3d\x78\xee\x32\xfc\x87\x7d\x34\xdf\xd5\x66\x36\x11\x2f\xdb\x9a\x3d\x18\xb9\xaa\x86\x41\xa9\x9f\x68\xb6\x6a\xdf\xf8\xe1\xfc\x50\xd4\xef\x3f\x0f\x8b\xfe\x08\xb7\x7d\xac\x7c\xe7\x69\xb5\xfa\x42\x1e\x4e\x44\x34\x3a\x40\x9d\x46\x1e\x6e\x7c\xf7\x47\xcf\xf5\x67\x59\x55\x6e\xd6\xbe\x64\x37\xab\x8c\xee\xa7\xc5\xcd\xb3\xb4\x98\xc3\x98\xfe\x85\x40\x45\xb3\x0d\xe1\x4d\xa5\x4f\xa6\x59\xd3\xd1\x90\x0b\xdf\xe9\x30\x97\x2d\x22\x16\xe8\xcb\x2b\xb2\x9a\xc5\x12\x4f\x66\x5a\x35\xde\x85\x04\xd4\xd4\xc6\xfe\xa8\xf2\x2f\x3d\x9d\x40\xa6\x45\x35\x7f\xf4\xc3\x0f\x3f\x3c\xbb\x5f\x8a\x9b\x4c\x19\x4a\x88\x58\x14\x1f\x8a\x3b\xa3\x67\x3f\x16\xc1\xf5\x28\x16\xce\x7a\x9a\xeb\xd7\x5a\xbc\x7a\xb8\x44\xb3\x81\xaf\xfd\x9b\xd3\xd6\xd2\x87\x10\x93\x96\xf5\xfb\xd4\x68\x6d\x33\x3c\xf2\xc8\x9e\x24\xa2\x2a\x2c\x13\x4e\xdc\x15\xa7\x25\x2f\x92\x7e\x3f\x4a\x48\xaf\x37\x50\xce\xb2\x36\x4e\xbf\x7f\x5c\x6a\x13\xbc\x12\x94\x1e\x4b\x42\x3d\xe5\x7f\xb9\x26\x56\x96\x91\x11\x1e\x95\x38\xc7\x85\x0e\x45\xbc\x47\x88\x25\x58\xe4\x42\x46\xe0\x47\x48\xa9\x98\x27\xa8\xd2\xee\xd2\x37\x76\x05\xc6\x05\x96\x2b\xe4\x1c\x0c\x17\x63\x36\xe8\x8d\x7b\x03\x95\x6e\x56\x6e\x9c\xe3\x15\xa7\x0b\x76\x3f\x66\xb8\x5c\xd1\x39\x5b\x30\x9a\x3a\x57\x27\x49\x65\x9c\x39\x94\xad\x12\xaf\xbc\x48\xa9\x77\x43\x9a\x79\x26\x05\xed\x7e\xb5\xd9\x22\x72\x99\xdd\xad\xad\x2c\x38\xb2\xfa\x37\x94\x0c\xcd\x25\xaa\x6c\xc0\x37\x16\xb6\x46\x96\x54\x2b\xb1\x43\x4c\x56\x99\x3b\x50\x2b\xf3\x34\xf9\x75\x47\x5c\x58\x1b\xd3\x33\x7a\x48\x5f\x72\xa8\xc7\xbb\x73\x9e\xd2\x59\x20\xaa\xd1\x99\x2b\xa6\x7d\x8e\x59\x94\xa9\x78\x25\xf8\x38\xd1\x05\x95\x6d\x70\xe5\x4b\x24\x1d\x0b\x59\xbf\x1c\xe1\x9d\x51\x4d\xb7\x36\xe2\x75\x2b\x14\x0d\x44\x14\xa3\x4f\xe3\xe2\x2e\xa7\xfc\xad\x86\x17\xd8\x15\xd5\x8f\x72\xd5\xb1\xa7\xe9\x88\x39\x6a\xb6\x91\xfb\xfb\xad\xa6\x79\x12\x28\xe2\x8a\x4e\xe0\x79\xef\x2b\x10\x81\x37\xb6\x9f\x07\x0c\xd4\x46\x54\x10\x23\xdc\x7c\x21\x14\xb1\x3b\x31\x56\x0f\x6d\x1b\x52\x5b\x80\x54\x56\xb4\xc2\xab\xc8\x3f\x43\x4e\x47\x2b\xaf\xb4\x40\xc1\x69\x61\xb2\xd0\x14\xb9\x20\xcc\xec\x27\x76\x88\x0a\xc2\x6a\x36\x80\xda\x10\x09\x34\x13\x59\x3c\xcf\x8a\x9c\x82\x86\xf9\xde\x50\xf2\xf3\xa4\x70\x2d\x85\x82\x66\xb9\xe8\xc0\xa2\xfb\x17\x3b\xca\xc3\x83\x64\xbb\x47\x81\x3d\x9a\x7f\xa6\xbb\xcd\x02\xcd\x6e\x7b\x21\x96\x8c\x95\x4c\xc7\xff\xae\xf8\x70\xaa\x25\xb4\x26\x41\x6b\xe5\x33\x9c\x10\xd6\x61\x75\xf3\x46\xc2\x8d\xde\x3f\x9f\xf8\xb6\xf9\x84\x8d\x03\x2b\x3d\xc2\x3a\xbe\x85\x42\x02\xda\x78\xd6\xaa\x90\x08\x5c\x90\x04\x27\x24\x09\xce\x62\x11\x1a\x9c\x7b\x16\x06\x5e\x1f\x8b\x71\xc3\xe6\x92\x14\x60\x4e\x05\xf3\x60\xed\xcc\xbd\xe6\xfa\xfd\x79\xe4\xbf\x63\x81\x3a\xfe\x3b\xd8\xba\x37\x07\x2a\xda\xbb\xc3\x27\xc1\x24\x8a\xda\xc0\x45\xc7\x76\xdb\x9f\x5a\xd1\xd2\x6d\x51\x29\x24\xe2\xea\xb5\xf9\xc7\xbc\x9e\x3b\xf4\xad\xa3\xb0\xe2\x8e\xbd\x13\x8c\x4d\xbb\x05\xa8\xb7\xdd\xe2\x2d\x00\x92\xda\x07\x99\xd7\x06\x99\xb7\x0f\x92\xb7\x0c\x92\xab\x41\x36\x7a\x10\x36\x8e\x6a\x1a\x14\x46\xbd\xee\x12\x1c\xb7\xc9\x81\x94\x4e\xa8\x07\x82\x39\x8b\x45\x0c\xde\xa9\xdd\xb4\xb8\x70\x88\x00\x80\x03\x90\x68\x10\x91\x39\x5a\xc6\xf5\x86\x01\x8e\xc6\xa7\x90\xb3\x57\xd4\xd1\x12\x03\x52\x46\x47\x0c\x6c\xcc\x35\x24\xb6\x4e\xf7\x52\x7b\x47\x6b\xa6\xd6\x4f\xa5\x77\x75\x12\xa6\x79\x40\x59\x0b\x00\xbd\x29\x32\x4a\x17\x12\x91\x6a\x03\xc0\x9a\x82\x8e\x19\xa1\x72\x72\x61\x0b\x86\x2a\x4a\xfe\xa4\xd7\x65\x96\x12\x35\x34\xb3\x01\xe6\x51\x5e\xd5\x25\xe1\x5a\x39\x10\xe8\x30\xa1\x8a\x45\x8c\x41\xbc\x41\x51\xe5\xc3\x4c\x97\x69\xad\xbd\x52\x6b\xeb\x44\xaa\xa3\x7a\x69\xb7\xd6\xfe\xdd\x9c\xcd\x29\x64\xb6\xd0\x1a\xd9\xfa\x17\xb7\x8e\xb0\x4d\x45\x47\xe9\x1f\xc9\x9c\xe6\x42\xd9\x3e\x5b\xb9\x32\x5c\xc0\x2a\xec\xd9\xdc\x2d\x78\x7f\x84\x7b\xff\xc6\x93\xbb\x1e\x16\x5a\xdf\xaa\xee\xf6\xb9\x77\x05\x1d\x04\xdd\x89\xde\x58\xd3\x13\x1e\xc0\x51\x26\x5d\x9e\xa3\xe3\x5e\xb2\x10\x94\x07\xf9\x8d\x5f\x51\x0f\x80\x7b\xf9\x55\x03\x34\x4f\xbd\xec\x00\xae\xeb\x75\x7a\x59\x9a\x3d\x08\xc0\xad\x2a\x69\xae\x0a\x1a\xc2\x26\x96\x83\xe0\xa6\xbb\x02\x05\xdd\x22\xef\xa1\xca\x21\x94\xa6\xeb\x17\x3a\xe8\x75\x39\xfd\x73\xcd\x38\x2d\xbb\x49\xd7\x35\xdd\x43\x9d\x75\xc4\x31\xc3\x39\x18\xd1\x79\xe6\x95\xe6\x98\xe7\x51\xe3\x70\x61\x27\x8f\x67\x51\x6d\xe3\x6b\xfb\xb4\xb0\xb6\x8f\xe7\xc1\xee\x68\x16\x02\x13\xc3\xba\x79\x27\xda\x24\x3a\x64\x95\x81\x7d\xb8\xbd\x33\xf5\xc2\xaa\x39\x4d\xb4\x4d\x73\xcc\x66\x6d\xc6\x0d\x58\xc7\x79\xcc\x09\xb5\xa6\x9c\xbd\x71\xcf\xb1\x1c\xfa\x86\x42\xd2\x73\x4a\x75\x7c\x88\x73\x84\x85\x7d\xcd\x07\x23\x84\xf0\x94\x63\x31\xab\x22\x81\x3a\x89\x3d\x1e\x98\x29\x63\xf7\xd0\x14\xf3\x6b\x53\x5a\xec\x9c\xcb\x5a\x4d\x66\x3a\x9b\x05\x4c\xd0\xa0\x6e\x5a\xcc\x25\x17\x53\x0f\x51\x6d\x77\xaf\xc9\x04\x67\xa8\x3d\xd8\x96\x05\x70\x90\x77\x49\x93\xb4\x96\xa1\x56\xbc\x5e\xfb\x55\x91\xd6\x35\x10\xeb\x25\x5c\x13\x4a\xe3\xc6\xb3\x0d\x0f\x2e\x25\x61\x5e\x47\x98\x86\x66\xda\x6a\x7a\x9e\x66\x3b\x51\x58\xb3\x99\x39\x6d\x42\xf1\x6d\x1c\xab\xd7\xe4\x58\x74\xda\x3a\xa6\xe8\x2e\x70\x99\xa7\x14\xd2\xe8\xbd\xa8\x01\x58\x2f\xff\x73\xdc\xfb\x37\x41\xef\x45\x0f\x53\x03\xb1\xaa\x30\xea\x69\x6b\xb1\xbf\xe3\xde\xbf\xcd\x55\x86\x66\xc9\xb3\xe4\x4e\x42\xcd\x73\xda\xb0\xe8\x72\x15\x38\x48\x59\x2f\x6d\x80\xe9\x3b\x9e\x5c\x87\x3b\xc1\x1f\xa6\x2c\x6e\x56\x70\x7f\xa1\xb3\xf6\x7c\xe3\x05\x64\x6e\xa2\xbd\x3b\x04\x85\xba\x54\x3d\x90\xf5\x07\xaf\x9a\xde\x37\xad\x21\x36\xb7\xa4\x14\x8f\x86\x32\xf3\x4d\xf6\x8d\x05\xb9\x2b\x88\x7b\x72\x82\xbe\xb1\x5c\x1e\x94\x3b\x3e\x7a\xfb\x8d\xe5\x98\x5f\x0e\xec\xfd\xbf\xa9\x9c\x73\x35\xe7\x23\x5e\x08\x04\x19\x70\x2f\x60\xd3\xe8\x25\x88\x7a\x02\x97\xc8\xb4\xe3\x64\x45\x0b\x2d\xaa\xba\x4a\xe6\x5f\xae\xd6\x3c\xa7\xfc\x5f\x28\xa0\x02\x91\xfd\xa7\x2c\x11\x8b\x82\xdf\x80\xe5\x5f\xab\xc8\xaa\xa4\xe2\x82\xdd\xd0\x62\x2d\x30\x07\x95\xc0\x4d\x55\x53\xa3\x67\x8b\xa8\x45\x55\xee\x13\x2f\x6e\x58\x69\x43\x8f\xe9\xd7\x98\xd3\xb2\xc8\x6e\xa9\xf5\x71\x27\x6b\xe4\xb1\x58\x52\xd0\xad\x6f\xaf\xca\xe8\x3e\x9d\x5e\x95\x94\xdf\x52\xcb\xdd\x0f\xf5\x02\xd6\xbf\x4b\x4a\xbe\x20\x66\xd3\xc6\xb5\x43\xde\xeb\x79\xce\x4a\x0b\x55\x24\x2a\xf0\x66\xbe\x4c\x78\x32\x17\x94\xbf\x4d\x44\xa2\x26\x49\x76\x2e\xca\xc9\x60\x90\xff\xe5\x00\x17\x71\x9a\x08\x10\x30\xe5\x12\xfd\xba\xee\x0b\x15\x74\x2e\x34\x1d\x50\x93\xc7\x8d\xbe\xa0\x9b\xc5\x31\x80\x34\xf2\xca\xa5\x28\x7d\x4b\x30\xee\x33\x79\x28\x79\xe5\xbf\x83\xa7\xf4\xe2\x6e\x2c\x5b\x73\x3a\x69\x10\xe4\x74\x2c\xe7\x4d\x15\xfe\x28\x5f\x85\x3a\xd3\x05\x79\xf6\x5b\x3a\x78\xd6\xf1\x65\x67\x56\x8f\x5d\x9b\x04\x74\xea\x96\x1f\x92\x19\xa0\x84\xd0\xed\xd6\xd9\x0f\xc8\xb4\x22\x16\x14\x7c\xb9\x7b\x4e\x6d\x03\xf3\x88\x22\x07\xba\x65\xbb\xb5\x8f\x17\xe0\xe1\xbd\xdf\xaf\x25\x4c\xed\xfb\x09\x15\xcb\x22\x9d\x85\x72\x9b\x9a\x38\x74\x7f\xa4\xe3\x23\x5b\x27\x0a\xec\x65\x71\xc8\x06\xe4\x05\x62\x8b\x88\x4f\xd9\x4c\x11\xd1\x7c\xca\x06\xa3\x99\x72\xf5\x94\x13\xa6\x43\x00\x3f\x21\x27\xa8\x35\x71\xd0\xd2\xc4\xf7\x4f\x36\xb1\x7f\xb0\xb3\x91\xb9\x0e\x29\x34\xf4\x9b\x81\x28\x0a\xc3\x30\x8a\x82\x71\x4c\x05\x61\x14\x06\xcf\x07\x7c\x86\x13\xb2\x51\xae\xf1\xc7\x32\x69\x28\x93\x6e\x60\x9e\xe0\x7d\x04\x59\xf8\x75\x09\x6f\x07\xf2\x4d\x39\x08\xb6\xcc\x5c\xd1\xef\xf7\x20\xa9\xc7\xf2\x6e\x31\x29\x94\x0d\xc1\xb8\xd7\xab\x3a\xb9\xf1\x78\xdf\xd2\xe5\xb4\x66\x41\x0e\x14\xbc\x9c\x77\xa3\x11\xb6\xff\x3d\x4c\x0b\xa2\xaf\x88\x98\x72\xc2\x06\x51\x4e\xa2\x62\x9f\xa1\x67\xdf\xa3\xfd\xfc\x2f\xdf\xcf\x26\x8c\xf0\xc1\xf7\xe3\xc2\x6e\xf8\x2e\x64\x65\xb3\x09\x1b\x7c\x3f\x66\x3b\xb8\x4a\x41\x36\x15\x86\xfb\x19\xc5\x57\x5e\xfe\xb9\xa6\x6b\xfa\x9a\xb2\xfc\x1a\xe4\xfa\x34\xb5\x56\x25\x6a\x5a\xfe\x21\xbf\x97\x61\x68\x78\x15\xae\xd6\xc8\x3f\xa1\x06\x5b\x0a\xec\xdc\xa9\x71\xed\x08\xea\x93\x86\xd3\x53\xb7\xca\xa7\x3a\x91\x57\x30\x53\xef\x94\x90\x95\x2d\x22\x2d\x6a\x54\xf5\x59\x6d\x21\xcf\x0e\x44\x7d\x99\x3e\xff\x77\x3a\x78\x31\x73\x6e\x8f\x84\x9e\x72\x2d\x94\xcc\xb4\x6d\x8b\xd1\x4d\xdd\x28\xd6\x63\x9c\x63\xe0\x2f\x4c\x78\x08\xd3\xb9\x4e\x63\xac\xca\xe6\x37\x42\xd8\xaa\x12\x36\x27\xc9\x9a\x70\x46\xbb\x66\xd1\x4b\xaf\xcd\x93\x17\xb9\x34\xef\xf7\xf3\xc8\x38\x92\xd8\x51\x53\x87\x2d\x22\xe3\xbb\xf4\xd5\xd0\xf8\x2c\x2b\xa3\xe6\x94\xa2\x0e\x27\xc9\x44\xaf\xd0\x6d\xf1\x05\xdc\xfc\x9f\xaa\xb3\x3f\xf6\x92\x9d\x1d\x29\x71\xcb\x79\x98\xbd\xb4\x1e\x52\x33\x7d\xdc\xdd\xd7\x01\x79\x61\x3c\x78\x45\x82\x14\xd3\x6c\x30\x9a\xa1\x7e\x9f\x47\xc5\x34\x9b\x61\x81\x65\xca\xc1\x0c\x27\xf0\xf0\x7c\x86\xbc\x7d\xb2\xf7\xf5\x49\x6c\x0e\x25\xbe\x59\x97\xe2\x57\x46\xb3\xf4\xe9\xaf\x91\xf5\x41\x34\xaa\xec\xac\xb2\x7e\x9f\x19\xa7\xe4\x3b\x5b\x25\xc3\x70\x2f\xef\x8d\x3c\x17\x2c\xc1\x1e\x7c\x35\xd4\xa9\x6a\x6b\xed\x0d\x51\xb5\x4c\xca\x5f\x0a\x5e\x8b\x8e\xb0\xbb\xad\x57\xc3\xed\xb6\xad\xde\x6a\x9e\xe4\x73\x9a\x45\x16\x02\x19\xd0\x23\xaa\xc0\x47\x8f\xde\x46\x9a\x07\x0e\xf6\xaa\xd6\xfd\x0a\x76\x94\x09\x07\x2d\xd4\xce\x62\xc4\xc0\x79\x8b\x83\x5f\xed\x8f\x26\x11\x77\x37\x3e\x2f\x10\xde\x1b\xa2\x71\x64\xb3\xee\x5a\x32\x84\x5e\xed\x8f\x24\xc7\xa7\x60\x33\x50\x6e\x72\x42\x94\x9e\x94\x11\xe0\x35\x27\x25\x0e\x32\xe0\x0d\x24\xc2\x9e\xc4\xcd\xb1\xeb\xc0\x85\xec\xcf\x35\xad\xcb\x87\xbf\x32\x01\x56\x29\x2d\x00\x57\x41\x7e\xa5\x05\xc7\x90\x39\x75\xcc\x68\xb7\xf9\x0e\x6a\x8a\xc0\x35\x60\xdb\x10\xf6\x5f\x74\x98\x56\x7a\x4b\x3c\xc5\xdc\xd2\x2f\xd1\x29\xa7\xc5\xe0\x60\x46\x38\x96\x0f\xcf\x67\xc4\x5c\x10\x7e\x65\xf8\x97\xd7\x54\xbc\xa5\x57\xeb\xeb\xf7\xf9\xa2\x30\xc0\x11\x05\x32\x21\xb3\x25\x5e\xa0\x4a\x9d\x69\xcb\xce\x3b\x05\x3e\x61\xc2\x42\x8d\x85\xa4\x80\xb3\x07\xb8\xa5\xa9\x1a\xa0\xc1\x8c\x09\x33\xed\x01\xfa\xab\x55\xcc\xc1\xde\xbc\x40\x9b\x3c\x2a\x30\x43\x95\x71\xd8\xbb\xa8\xc5\x75\x96\x38\x41\xe3\x99\x3f\x15\x1a\xd1\x31\xd9\xd4\xeb\xc7\xe4\x86\xbe\xf7\x51\x89\x4d\x2d\x09\x85\xa0\xeb\xe9\x7a\x4e\x23\x8f\x02\xf7\xbc\xb6\x53\x70\xf9\x00\xac\x04\xc7\x62\xca\x67\x4a\x90\x86\xbc\x9a\x4a\x54\x95\xf3\x25\x95\x84\xb8\x1b\x23\x0e\xd7\x56\x65\x9c\xd2\x59\xb0\xfe\x49\xd3\x12\xf9\xd7\x62\xdd\x4d\x84\xa0\x37\x2b\x41\x41\xeb\xc6\x54\x0d\xfa\x3c\x9a\x0a\xcd\xbb\x49\x17\x6a\xd4\x4e\x4d\xba\x62\x99\x88\x6e\x5a\xd0\x32\xff\xab\xe8\xd2\x7b\x56\x8a\xdf\x91\xbb\xd7\x68\x4a\xa1\xfe\xc9\x66\x16\x05\xef\x26\x5d\xb5\x83\xda\xdb\xf4\x8f\x64\x63\xf2\xd9\x24\x89\xbd\x33\xa7\x66\xaa\x40\xe3\x44\x47\x04\xd1\xef\x06\xb7\x92\xbd\x91\xa7\x31\x2c\x3f\x92\xda\xf2\x59\x6f\x22\xcd\xe6\x5e\xe6\x87\x40\xe6\xd5\x8b\x4c\x5b\xf2\xce\x30\x78\xfa\x34\x81\x39\xf4\x5a\xf1\x19\x8a\x2d\x00\x76\x17\xad\x61\xd1\xc1\x00\x1b\x60\x5e\x6f\xdf\x61\x0c\x63\x02\xa0\x2e\xaa\x34\x78\x1f\x79\x28\xa5\xfd\x24\xd6\xc6\xbe\xa9\x4c\xf8\xa4\xc6\x04\xe0\x82\x0c\x0f\x8b\x97\xec\x10\x35\xc7\x5b\xcc\x70\x7d\x5c\x38\x97\x9b\x5a\xc4\xf5\x66\x71\x31\x18\xb8\x3b\xb8\xaa\x66\x58\xe9\xf9\xa1\x84\x18\x1a\xc6\x59\xfb\x21\x4c\x1e\xd7\x71\x4c\xb4\x8f\xf6\x20\x47\xa5\x6c\x29\x7d\x4d\x66\x7c\xdb\x62\xda\xed\x69\xb4\x9b\xe0\x25\x6a\xe8\x75\xf7\x31\x46\x09\x37\x47\x87\xfe\xdc\xe6\x48\x0b\x12\x85\xe7\x54\x66\xe8\xe9\x00\x28\x7e\xc0\xff\x86\x13\xef\x75\x34\xc3\xa5\x55\x39\xe8\xd4\x18\x56\x52\x4e\x22\x4e\x0a\x59\xb7\x8a\x32\x6c\x89\x72\xc3\x4e\x95\xfd\x7e\x02\x6a\x70\x13\x41\x64\x56\x34\x4d\x66\xe3\x16\x9e\xb7\x00\xd4\x31\xc2\xb6\xb3\x05\xc2\xf9\x2b\x6d\x66\x96\x91\x7c\x9f\x75\xa8\xe7\x83\x26\x73\x1e\xc0\xd7\x64\x78\xb8\x7e\x99\x1d\xae\x07\x03\x44\xa7\xeb\x99\xd7\xf7\xf5\x80\x59\x2f\x37\x53\x8e\x05\xa6\x1e\x03\x76\x15\xce\x27\x66\x66\x95\x0f\x24\x10\xaa\x4d\xee\x24\x0a\xa7\x0f\xb3\x70\x8a\xd4\xfd\x0d\x1a\x47\x53\xb8\x95\x9b\x91\xeb\x28\x8e\x63\x9b\x05\x39\x5b\xeb\x7c\xc2\xc8\x70\x9c\x48\x3c\xa9\x74\x90\xd1\x76\x1b\x71\xa2\xe2\x39\x63\x97\x8a\xb0\xaa\x0a\x33\x62\x3d\x77\x31\x3c\x1a\x22\xcc\x67\x95\x32\x48\x18\xe2\x4b\x32\xc4\x77\x64\x88\x8f\xc9\x10\x4b\x60\x72\x4a\x86\xf8\x9c\x0c\xf1\x05\x19\xe2\x13\x32\xc4\x9f\xc8\x10\x1f\x91\x21\x7e\x43\x86\xf8\x0b\x19\xe2\x33\x32\xc4\x7f\x90\x21\x7e\x4b\x86\xf8\x23\x19\xe2\xf7\x64\x88\x3f\x90\x21\x7e\x47\x86\xf8\x91\x0c\xb5\x2d\xc3\xe7\x1d\x61\xb1\x41\x59\xd9\x1a\x10\x69\x03\xf3\xf7\xe0\x41\x64\x1e\x7a\x9c\x57\x49\xe7\x81\xa1\xfc\x25\xa8\x3f\xbe\x49\xb2\xec\x2a\x99\x7f\x29\xc9\x86\xe6\xe9\x78\x3a\xc3\x70\x91\x31\x9e\xce\x34\x76\xba\x14\xec\x86\x1a\x41\xc0\x7b\xff\xfa\x4a\x7d\x29\x5d\x85\xc9\x5a\x14\x7c\x9d\xdb\x1e\x99\x04\xd5\xae\x2b\x18\xa0\xb6\x90\x39\xda\x6e\x37\x15\x6e\x78\x0f\xf0\xf3\x18\x29\x11\x90\x30\x8a\xc0\xbf\xf4\x93\xc8\xce\xcc\xe3\x5d\x99\x3d\x40\x34\x34\x63\x29\xf2\xd7\x72\x1e\xc2\xda\x74\xe2\x76\x7b\x63\x73\x1d\xe7\x69\x3d\xcf\x71\x9e\xba\x1c\x57\xc5\x3a\x4f\xcf\xd6\xf9\xf1\xfd\x8a\x71\x9a\x5e\xa8\x29\x53\xdf\x78\x2d\x39\xbe\x62\x79\xaa\x2e\xde\xfc\xd2\x47\x6a\x16\x65\x4b\x20\xff\xfa\x30\x18\x28\x0a\x3d\x98\x64\xcb\x7e\x7d\xeb\x2a\x5c\xd2\x3c\x05\xad\x86\xca\x57\x9c\x31\xc3\xb8\x0c\xc4\x73\xdb\x2d\x53\xbc\xe1\xe5\xca\x08\xec\x8c\x5e\x4d\xad\x8b\xea\x3e\x61\x5e\xac\x73\x41\xb9\x8b\x42\xb6\x51\xbb\xea\x12\xcb\x4d\x76\x87\x61\xeb\x95\x63\x9d\x7a\x0c\xa9\xc3\x0a\xeb\x9e\x96\xe3\x8d\x92\x99\xa5\xe3\xf7\x78\x5e\xdc\xac\x24\x05\x9f\x8e\x3f\x54\x98\xaf\xf3\xf1\x3d\xfe\xa3\x60\xf9\xf8\x14\xa7\x74\x41\xf9\xf8\x1c\x1b\xaa\x60\x7c\x61\x1f\xdf\x0b\xca\x93\xab\x8c\x8e\x4f\x54\xae\xd3\x7c\x4e\xc7\x9f\xec\x67\x78\x3d\xc2\x9e\x50\xec\x0d\xce\x12\xc9\x10\x7f\xc1\x92\x0a\x11\x22\xa3\xe3\x33\x9c\x52\x39\xb8\x39\x1d\xff\x81\x15\x73\xa2\x96\x69\xfc\x56\xbf\x8e\x3f\xe2\xac\x28\x56\xe5\x78\x23\x0a\x91\x64\xe3\x77\x38\xa7\xa5\xec\xe9\x63\x55\xa9\x1b\x13\x6f\xab\xd5\xf9\x23\xff\x5b\xa5\x03\x8c\x6c\x2e\x95\xf7\xf6\xae\x09\xc5\x62\x96\xa3\xe6\xf9\xde\x9c\x71\x0d\x21\x9b\x9b\x61\x12\xd9\x7b\xf0\x4b\xd5\x57\xbd\x42\x11\x42\x63\xcf\x79\x59\xf4\x38\x18\xb4\xc0\x08\xe3\x89\x1f\xe1\x77\x92\x76\x68\x6d\x1b\x80\x7f\x9d\xdc\x28\x25\xe1\x79\x6c\xea\xbc\x14\x9c\x5d\x5f\x53\x1e\xf5\xd4\xe5\x28\x96\x34\x2b\x0a\x0f\x18\xd0\xb1\x98\x56\x72\x33\xa2\xcd\x9d\x2d\x0a\x9b\x73\x84\x2a\xdf\x99\xaf\xc5\x52\x56\xe7\xce\xf7\x92\x73\xf1\xb0\xa2\xfa\xba\xd3\x00\x35\xa5\x27\x7e\x45\xbb\x89\x55\xb2\xd1\xd6\x0d\x86\xa9\x0b\x61\x60\x9d\xf4\xe5\xad\xd5\xff\xfe\x26\xc9\xf3\x42\x74\x25\x91\xd0\x55\x3a\xe4\x92\xf2\xec\x5e\xd1\x79\xb2\x96\x88\x5e\x51\x9c\x10\x22\xc3\x92\x9c\x36\x52\x6a\xb1\x58\x34\xfc\xce\xb6\x77\x63\x8f\x6e\xb7\xdf\xda\x95\xc5\xe2\xdb\xfb\xa2\x44\x82\xca\x7b\xbc\xf0\xd4\xa4\x86\x87\xcc\xb9\x8b\x65\x83\x01\xd2\xe2\x47\xf0\x6b\x4b\xf6\x86\x98\xfb\x6a\x91\x98\xed\xef\x2b\x1b\x87\x7c\xd7\x22\x78\x5d\x9b\x9b\x15\xb1\x04\xb9\xeb\x52\x0f\x55\xb0\x33\x37\xf7\x6a\xf7\x03\x9e\xe5\x0d\x94\x1d\x90\xed\x12\x76\x1a\x9f\xbe\xe0\x95\x0b\x6d\x4e\xff\x1b\xa5\xa1\x88\x2e\x0e\x00\x42\xf3\x44\x71\x1c\x3b\x96\xfd\xdc\x6c\xc6\x1a\xe3\x04\x99\x7c\x6e\x4a\xf9\x5a\xbb\xd0\xed\x03\xed\xa2\xdb\x77\xa1\x42\x01\x57\x4f\x2c\x73\xa3\x65\xa6\x61\xaf\x94\x23\x44\x73\xc0\x22\xe4\x37\xac\xf8\xb5\xbd\x91\x64\x3d\xea\x50\x4e\xed\xa7\x13\x0d\x3b\xf8\xff\x4c\x83\x80\x28\x56\x78\x2a\x24\xe3\x61\xe7\x49\x42\xce\xb6\xb9\xfa\x54\x9f\xab\x7a\xc6\xaa\xf6\x41\xcd\xd9\xd1\xff\xc6\x9c\x0d\x61\xce\xdc\x75\x87\xed\xf4\x1b\xd3\x69\x80\xfd\xe1\x7e\xa9\x54\x1a\xda\x7c\xf1\xb7\x95\xa4\x24\xc3\xcb\xca\x1d\xdb\x0d\xab\xdb\x21\x67\xc4\x35\x31\x27\x6b\x3c\x04\x4d\x6a\x23\xbd\x2c\x08\x9f\xb2\xfd\xd1\xac\x93\xa8\xc0\x01\xb9\xa3\x2e\xb9\xb6\x89\x1b\x49\x1c\xad\x89\x66\xd3\x8b\xea\xa9\xdd\xad\xba\x6e\xa4\x33\x95\xc1\x68\x11\xda\x9c\x59\xfc\x32\xb5\x22\x00\xb2\x37\x9c\x91\xab\x5a\xf7\x13\xb2\x06\x56\xd7\x27\xf4\xb4\x4e\x32\x88\x04\x8c\xda\x90\x6a\x4a\xe6\x2c\x26\xb7\xe3\x1c\x33\x84\x0b\x23\x37\x84\x43\xa6\xfa\xa0\xb8\x1b\x53\x48\x55\x37\x4d\x06\xa3\x99\x36\xf0\x4f\x06\x2f\x3a\xc1\xb7\x72\xa6\x8c\x6a\xa3\x5a\x2a\xb1\x37\x5f\x5d\x5a\x19\xfc\x1c\xa1\xcd\x1f\xad\x03\x1b\xb5\x0d\xcc\xaf\x11\x97\x7a\x9c\x89\x1b\x5c\xf9\xcf\x0d\xce\x93\x21\x5b\x22\x49\xdd\x93\x0d\x18\x9e\x93\x72\xf0\xa2\x93\x4c\xe7\x12\x9e\xde\xc2\x32\xdf\x22\x4c\x49\x32\x2d\xcd\x24\x2c\x49\x1a\x65\xba\x1f\xe5\xe0\x7b\x42\xc8\x12\x25\x72\xc4\x19\x86\x72\xb9\x6b\x66\x11\xce\x63\x39\xf8\xdb\x2c\x98\x3d\x03\xa6\x97\x78\x88\x33\x6c\xf8\xa9\x05\xc2\x6d\x99\x4a\xfc\x3d\xaa\x86\x8a\x33\xd4\xa0\x95\x02\x31\x90\x29\x72\xc7\x9e\x1a\x37\xef\x3e\x31\x14\xa1\xcd\x5b\x8b\xb4\xed\x9d\xa1\x2b\xb5\x83\x55\xa8\x11\x25\xd5\x32\x29\x6d\x7d\xc1\x5e\xd6\x9d\xad\xcb\x8e\x35\x9d\x63\x84\xc6\x4a\x1a\xf1\x71\x30\xc0\xc6\x4b\xa7\xa1\x8c\x3a\x5f\xbd\x73\x9c\xf8\x3d\xfa\x20\x97\x1c\x7a\x12\x51\x34\xde\x8b\x8c\x77\x57\x49\x60\x6d\xb7\x7b\x54\x91\x3a\xf0\xa4\x24\x4c\xa8\xdf\xd7\x89\xb1\xed\x4b\x55\x07\x4a\x9b\x76\x58\x55\x05\xa2\x0d\x27\xbd\x01\xb8\xa7\x47\xb0\xd1\x23\x1d\x37\x69\x79\x6c\xa8\x6c\xed\x9a\x5b\xbf\x61\x35\x65\xe3\x79\x70\x76\xf0\xf7\xf8\x00\xe1\x80\xca\x1b\x4f\xdb\xe8\x3a\x80\xcc\x0d\x8a\x70\x66\x22\xd2\x51\x39\xde\x50\x26\xe3\xf5\x19\x55\x15\x50\x6e\xad\x81\xa9\x6c\x0b\x4a\xa6\xe0\xa9\x34\x37\x9d\x1d\xf6\x68\x9e\x02\xd1\x40\x53\x88\x3d\x56\xac\x25\x1d\x27\x89\x48\x4d\xbf\x60\x26\x29\x18\xc1\x1f\x36\xb9\x15\x57\x51\x67\x07\x2b\xe9\x12\x86\x24\xa0\x95\x84\x4b\x10\x22\xa7\x21\x6b\xab\x0b\xda\xf4\x59\x32\x88\xc4\x6c\xd2\x02\xf9\xe1\x78\xbe\x8d\xd9\xf6\x6e\x4d\x8c\x94\xaf\x46\x68\xbb\xa0\xdb\xf5\x2a\x39\xaa\x53\xd1\x34\x4f\x7b\x5e\x74\x37\xc5\x7d\x42\x28\xf7\xaa\xf2\x49\x1a\xdf\x59\x93\xb9\xb6\xab\xd5\x3e\xa9\x53\x51\x63\x5f\x2b\xd4\x97\x7a\x47\x35\x79\xb7\x57\x46\xab\x41\xe8\xeb\xb7\xc2\x5c\xbc\x99\x6d\xac\x99\x1a\x9c\x23\xb9\x4c\xd6\x5f\x41\x43\x76\xce\xd0\x26\x8f\x18\x0a\x1d\x69\x00\x3f\xa0\x27\x7c\x47\xe9\x96\xfc\x55\x1d\xb0\x6c\xda\x79\x64\x0b\xa0\xad\xe2\x82\x85\x54\x5f\x67\x9f\x51\x55\xc3\xb0\xfe\x7d\x4c\x3b\xcd\x62\x28\x9a\x3a\x66\xc8\x71\x42\x1e\x06\x03\x23\x2a\x6c\x01\x79\x28\x48\x03\x26\xa2\xc0\x89\x06\xea\xcc\x74\xba\x15\x60\x77\xbc\x9b\x98\x34\x2a\x6a\xb8\xbc\x1d\x17\x0c\x71\x4b\xed\x5f\x41\x08\x49\xd5\x06\x3c\x6b\xce\xb5\x5b\x86\x76\x28\xb4\x9a\x43\x80\xcd\x04\x68\x3c\xa0\x36\x24\xa0\x7b\x29\xf6\x47\xf8\x7b\x04\x87\x5a\x7c\x05\x67\xe1\xbd\xa1\xe5\x91\x2b\x7b\x90\x9a\xf1\x19\x9e\xe2\x03\xf7\x24\xec\x08\xb9\xa4\xc0\x97\x77\x3e\x65\x33\x75\x08\x1b\x02\x1d\xbb\xff\xbe\x26\x43\xf3\xe1\x44\x70\x76\x42\x50\x54\xab\x1c\xbb\x9d\x8f\xaa\x5d\x99\x36\xce\xbe\x2a\xc0\x07\x82\x0c\xbd\x18\xd3\xe6\xda\x22\x10\x4b\x18\x51\x7e\x6d\xd7\x1e\x8a\x97\x5c\xad\x1d\x5c\x01\x4c\xc5\xec\x15\xd3\x81\xf2\x8c\x3e\x89\x18\xbc\x80\x19\x2c\x24\x15\x67\x83\xee\x4e\xc5\xe0\x60\x86\x4b\x78\x78\x3e\xc3\x19\x3c\x18\xda\xa5\x06\xa0\x1c\x1d\x9f\xe3\x04\x97\xb8\x90\x5c\x48\x86\xaa\xca\xda\xe6\x0d\x6d\xfc\xcd\xf6\xed\x5f\xed\xda\x14\x9b\xaf\x11\x2b\x3b\xaa\x6b\x29\xb0\xf1\x23\x79\xd5\x56\x79\x07\xb0\x31\x65\xdb\x8a\xa0\xdd\x22\x57\x54\xb5\x77\x4b\x2e\xc1\x70\xaf\x1d\x74\x6c\x9a\xcb\x0e\x02\xce\xd6\x55\xf5\x3d\x1d\x0d\x31\xdd\x17\x01\x88\x70\x9d\xa9\x95\xf5\xf8\xaa\x27\x04\x9e\x0a\x45\x35\xc8\x22\xaf\x7f\xed\x92\x2d\x83\xc2\x68\x5d\xba\xa9\xa0\xf1\x53\x10\x57\xd7\xdb\x7e\x90\x0c\x7e\x68\x8a\x7f\xc1\xe4\xa1\x91\x8f\xa2\xcd\x7b\xcd\x61\x34\x67\x8f\xde\x5b\x25\x01\x23\x3d\x05\x7a\xa4\xc3\x27\x4a\x5a\x3f\x6e\xc1\x2e\xc3\xaa\xfa\x1c\x2b\x19\xf4\x12\x7f\x6e\x28\x43\xea\x94\x8f\x10\x14\x1b\xda\x7d\x4d\x3e\x7b\x9a\x9a\xaf\xb5\xa6\x66\x9a\x5c\xef\xdf\x24\xab\xff\x6d\x3b\x62\x8f\x07\xb6\xf7\x37\x8e\xce\xbd\xa5\x5c\xb0\xb9\x56\x94\xe2\x96\x6f\x88\x57\xbc\x10\x85\xa4\xc4\xe3\x24\x4d\x49\xab\x9d\x5c\x4b\x6c\x8b\x9e\xe1\xde\xba\xbf\x7f\xa1\x0f\xbf\x77\x59\x69\x6c\x13\xd2\x9e\x51\xea\x08\xdb\xc5\x05\x61\xda\x47\x8c\x52\x18\xba\x4d\x32\x22\x21\x34\x5b\x44\x8d\xbb\x05\x8e\x20\xef\x71\x7a\x4d\xa3\x02\xab\x72\x1c\x29\xe4\xd9\x35\xb0\x33\x21\xc3\xc3\xc4\x09\xc7\x92\xc1\xa0\xad\xd4\x34\x99\x21\x1d\x1c\xaa\xad\xa5\xdc\x2b\xa3\x4a\xe4\x08\x17\x5e\x4b\xaa\x95\xbc\xbd\x15\x5d\x42\xb6\x81\x0b\x70\x3b\x19\x4c\xa7\xcc\x53\xb6\xcc\x29\xcc\x0c\xcc\x85\x11\x07\x04\x25\x69\x32\x5f\xd6\x62\x0d\xf8\x33\x19\xdf\x25\xd9\x17\x1d\x9b\xc0\x15\x12\xc5\xaa\x2c\xb8\x68\x96\xa3\xe0\x2b\x48\xe6\xae\x24\xf9\x61\xf7\x8e\x71\x80\xfd\xe4\xb6\x09\x55\x91\x94\x53\x67\xb9\x0b\x72\x63\x9a\x25\x96\xfe\xbb\xf2\x92\xae\x52\xbe\xbe\xc5\x76\x6e\xae\x1b\x56\x96\x2c\xbf\xee\x7e\xa1\x0f\x5e\x14\x63\x50\xa0\xdc\x7a\xdd\xd2\xa6\xb0\x1c\x6c\x60\xd9\x22\xd2\xd7\xf0\xd3\x7c\x86\xe2\x2f\xf4\x21\x20\x59\x02\x61\x8c\x1e\x15\x1f\x28\x72\x72\xca\x67\x64\xc3\xd2\xfb\x31\xc7\x5f\xe8\xc3\x98\xe2\xdb\x24\xb3\x34\xe2\x5a\x8c\xf7\x46\x78\x91\x25\xd7\xf2\xdf\x88\x8b\xaa\xd6\xb5\xae\xf9\x0f\x55\x30\x74\x49\xe7\xe0\xc3\x4a\x76\x09\x79\xa6\xbc\xc3\xad\xd8\x31\x0e\x31\xcd\x81\xde\x8a\x59\x7a\x6f\xec\x4a\x45\xd0\x69\xd9\x63\xf8\x8c\x69\x5c\xac\x85\x84\x5c\x41\x7f\xe4\x0e\x69\xee\x04\x4e\x4b\x2a\xbc\xc0\xe3\x82\x0c\x0d\x11\xd8\x0c\xae\x02\x13\x23\x66\x1d\x2e\x1b\xd0\x1c\xfe\x2d\x2b\x99\x88\x38\xee\xf5\xb4\xcb\x3d\xd8\x5b\xde\xca\xe3\xfa\xae\x84\xd1\x37\xc3\x76\x50\xbd\x3e\x2d\x3c\xe6\xfc\x61\x9e\xd1\x6e\x4a\x05\x84\x06\x19\x77\x7b\x03\x31\xe8\x75\x5f\xee\xcb\x07\x38\xc7\x43\x08\xc8\x65\xb0\xe9\x53\x11\x8e\x34\x15\x3b\xa5\x53\x3e\x9b\xfd\x53\x2d\x42\x3f\x5d\xf3\x95\xa1\x8b\xf5\x4c\x62\x6f\x56\x5c\xe4\x71\x79\x28\x6a\xea\x90\x39\x69\x6b\x45\xfb\x39\xaa\xcd\xa4\x2c\x1e\x62\x8b\x7c\x40\x4c\x7f\x24\x86\x71\x5d\x37\xee\x5e\xdd\x7c\x43\xc7\xfc\x23\xed\xce\x6d\xed\x2c\x7b\xbd\x34\x49\x6a\x0d\x6d\x62\x9b\x13\x00\x3d\xbd\xf4\x65\x60\xf6\x1f\xcb\xe3\x41\xf6\x46\x61\x5f\x60\x5e\x5a\x5d\xea\xba\x4e\x19\x12\x17\x06\x6d\xa3\xf1\xca\x6e\x40\xeb\xfa\x86\x46\x9d\x84\x43\x0b\xea\x8d\xd4\x60\xb8\xd5\xe2\x58\xc0\x28\xaf\xc8\xd0\xd7\x9c\x9a\x16\x40\xed\x26\xd0\x39\x34\x2f\x72\xc1\xf2\x35\x75\x49\x64\x6f\x88\xb5\x02\x74\x81\xb0\x20\x84\x24\x70\x44\x15\xd1\xac\x5b\xfe\x3f\x85\x59\xd4\x75\xb9\x7c\x9f\xcf\x8b\x1b\x96\x5f\x47\x5a\xa1\xae\xab\xd5\x10\x30\xb3\x99\x6b\xcb\xe1\x97\xda\x11\x32\xc8\x9b\x0b\x47\xf9\xef\x8f\x0e\xf9\x2b\xb9\xa3\xf7\xf7\x83\x40\x5d\x1a\xbc\x41\xff\xb7\x5b\xed\xfd\x2d\xaf\xb7\x5a\xc3\x1f\xb5\x40\x60\x4f\x78\x4e\x74\xa7\xa5\x23\x22\x26\x67\x03\x83\x95\x3f\x34\x50\x41\xfc\xde\x6f\xc2\x16\x6d\xa0\x5f\x76\xb5\x01\x92\xa6\x5e\xb1\xc1\x60\x46\x86\x5b\x5a\x9b\xc0\x62\xd5\xe2\xf0\x5a\x61\x81\xe9\xfe\xbe\x57\x7c\xa6\xba\xa8\x49\x30\x70\x77\xbe\x7f\x95\x5c\xd1\x7f\x65\x6c\xb2\x3b\x9e\xac\x3e\x42\x08\x96\xf3\x75\xdd\xb1\x0d\x78\x66\x59\x26\x65\xe4\xa2\x90\x32\xa3\x0b\xea\xb9\x7b\x41\x1b\xeb\x3e\xc1\x0d\x9b\x84\xa1\x23\xbc\x09\xc1\xbe\xd6\xc9\x58\xf7\x86\x63\x9a\xaf\x6f\xf4\xe5\xfa\xde\x08\xdf\x71\x26\xd4\xf3\x10\xcf\x8b\x7c\xc1\xae\xd7\xfa\xdb\xb0\xaa\xe4\x6e\x55\x2a\xa6\x1c\x61\x01\xa1\x33\x55\x18\xa9\xa4\x2c\x25\xaf\xfd\x26\x84\xd8\x68\xa3\x42\xe6\xe4\x4b\xca\x99\x28\x3f\x14\x45\x19\xa0\x39\x8e\x36\xc3\x0e\xdd\xd9\x75\x6b\xed\x0e\x6e\x5f\xf8\x57\x06\x42\xbf\xd6\x75\x77\x49\xae\x06\x50\x29\x37\xec\xd7\x34\x35\x31\x5c\x3e\x30\x41\x79\x92\x35\xfa\x29\xd1\xf1\x76\x1b\x39\xcb\xcf\xa1\xf3\x4f\x41\x63\x9e\xdc\x11\x81\xa9\xe7\x37\x5c\x4e\x47\x8d\x72\x33\x8c\xa5\xe8\xf7\x8b\x60\x4d\x84\x71\x8a\xc0\xe1\x8b\xa7\xc7\x4c\x5d\xc8\xb8\x8b\x25\x2b\xdf\xdb\x28\x6a\x29\x49\xe4\x3e\x2f\xca\x92\x5d\x65\xf4\x8d\x9b\x8a\x33\x28\x48\x4a\x89\xd8\x61\x26\xdf\x52\xf5\x69\x2d\xe9\x56\x88\x1c\xd1\x58\x1c\xd5\xe5\xe6\x16\xac\xbb\xa3\x32\x26\x07\xe0\x5c\x07\x79\x01\x5f\x0b\xad\x38\x82\x62\x6f\x51\x3a\x82\x9c\xd1\x45\x06\x8b\x69\x52\x23\x86\xed\xb5\x0d\xb6\xb2\x57\x49\xd8\x83\x04\x50\xd6\x81\x9b\x17\x60\x4a\x16\x89\x85\x82\x53\xaa\xb7\xef\x0a\x7e\xba\x80\xbb\x52\x51\x70\xe5\x17\xaa\xbe\x66\x46\x5c\x3d\xac\xf9\x0e\x24\xa1\x8f\x6d\x15\xf3\x93\x10\x3a\xd5\xce\xb6\x99\xae\x75\x06\x87\xb0\xee\x59\x6a\xbb\x8d\xea\x1b\x43\x51\xa1\x9a\xd0\x6a\x63\x12\x2c\x19\x99\xa9\x50\xa1\x0a\x92\xea\x9d\xee\x93\xe0\x2a\xd2\x83\xd1\x49\xd6\x3b\xed\xef\x78\x7f\x84\x3a\xbd\x53\x13\x92\x4e\x6e\x13\xea\xcf\xb4\x36\x50\xf6\x52\x74\xb4\x57\xd9\x97\x93\x64\x05\x65\xb6\xdb\xde\x39\x55\xc5\x51\xe0\x34\x6b\xc1\x8b\x9b\x88\xab\xcc\xc6\x2d\x57\xa9\x8b\x3c\xfb\xaf\x68\x32\xfe\xcc\xb6\xef\x51\x2e\xa2\xc9\xf8\xef\xdb\xd1\xf7\xdb\xe7\x07\x28\x9a\x8c\xdf\x64\xc9\xcd\x8a\xa6\x68\x02\x95\x7c\xf7\x4c\x59\x73\x71\x14\x8e\xb4\x82\x88\x16\xcd\x7d\x64\x88\xe9\x57\x16\x95\x4c\x36\x69\x91\xc3\x31\x1d\xeb\xa7\x91\xf6\x13\x43\xa7\x62\x30\x98\x55\x55\xa7\x55\x21\xe1\xbd\x36\x82\xd7\x2a\xc5\x5d\x51\x74\xd5\xfa\xd1\x6e\x5e\xe4\xfb\x4c\xdf\xa6\x77\x8d\x84\x3e\xfe\xed\xb7\xfc\xbd\xe7\x30\xf0\x8a\x76\x4d\x1e\x0c\x25\x12\x39\x1e\xed\x18\xb2\x54\xba\x26\xcb\xe4\x96\x76\x93\x6e\x63\x7f\x44\x48\x6b\x24\xc7\x3d\x6b\xba\x27\x5a\xf6\x51\x84\x10\x08\x14\xb4\x2a\x98\xd6\xcd\xb2\x21\x86\x54\xe0\x07\xb5\x07\x4e\x17\xd8\x6e\x8c\xeb\x30\x3d\x27\x8d\xa8\x84\xfa\x7c\xf5\xfb\x2d\xba\x9e\x8d\xb3\x87\xad\xd1\x40\x27\xf4\x99\x55\x27\x82\x45\x4b\x98\x4f\xc9\x31\x74\xf2\xd8\xe1\x09\xe2\xbf\x6c\xb7\x7b\x23\x9c\xc7\x3e\xc0\x95\xd4\x51\x0f\x16\xb0\xc7\xf2\x6e\x0e\xfe\x8a\x0c\x70\x26\x7b\x43\x84\x77\xa1\xcb\x1c\xc8\x86\xdc\xf7\x05\x9c\x04\xb1\xc3\x7c\x73\x41\xcf\xf3\x58\x7d\x6e\x84\x8d\x47\x29\xb6\xdb\xb6\xa8\x0b\x13\x31\xa6\x35\x4b\x41\xb4\xd1\x08\x47\x32\x2c\xaf\x2c\x93\x00\x6e\x86\xed\x9b\xc7\x82\x39\x55\x59\x88\x6d\x01\xfe\xce\x81\x09\xe3\x92\x03\x53\xee\x94\x8c\x6f\x23\x9f\xb0\x78\x06\x36\x39\x61\x84\x15\x2d\xfe\x70\xb1\x56\xf6\x59\x2e\x28\xcf\x93\xac\x7c\x46\xf3\x5b\xc6\x8b\x5c\x59\x4b\xf7\xf2\x22\xa5\xfb\x37\x9a\xa0\x68\xc9\xbd\x16\x2c\x2b\x5b\xbf\x48\x22\x36\x61\x60\x01\x6c\xbe\x32\xd8\x1d\xb2\x66\xb0\x76\x6d\x2d\x76\x43\x45\xb2\xf3\x43\xe6\xbe\xcc\x93\x3c\xe1\x0f\xfb\x0b\x9a\x88\x35\xa7\x5e\x17\x20\x8e\x4d\x0f\x07\x26\xc8\xed\xdd\x2b\x0b\x7f\x50\xb2\xbf\xbc\xc8\x32\x3f\xbf\x4b\x7b\x96\xb1\x2b\xef\xf5\xf2\x86\xdd\x33\x6f\x00\x1a\x08\xbb\x77\xca\x6f\xd9\xdc\xab\x5d\xef\x98\xda\xfb\xb3\x79\x71\xb3\x4a\xda\x93\xd7\x82\xa6\xad\x3d\xe7\xeb\x5c\xb0\x9b\xf6\xe5\xd0\xde\x21\x7b\x58\xaf\xbd\xf6\x79\xda\x9a\xf7\x96\xd1\xbb\xf6\xa5\xe3\xc5\x5a\x04\xc3\xf1\xb7\xc7\xbd\xa0\xb9\xac\x73\xbf\x5c\xaf\xe4\x7e\x72\xb9\x54\x04\x3a\xfb\xca\xd7\x79\x56\x14\xab\xf6\x5a\x64\xd6\x7d\x88\x06\xb7\xab\x21\xf0\xba\xe2\xbe\x78\x4e\x5e\x5b\x13\x9f\x29\x9b\xb6\x72\x5f\xdb\x67\xb7\x17\x7d\x66\x40\xb3\xd7\xeb\xfc\x9a\xe5\x8d\xf7\x96\x8c\x2e\x1e\x91\xb7\xd7\x74\x70\x8b\xb4\x65\x23\xca\x45\x2c\x72\x9a\x8b\x67\x42\xd3\x7b\xfb\x45\x9e\x3d\xc8\x0c\xc6\x89\xa7\x59\xca\x80\xd4\x77\xb6\x35\x70\x6f\x91\xe1\x35\x9e\xe3\x14\x2f\xf1\x02\xaf\xf0\x0d\xbe\xc5\xd7\xf8\x0a\x3f\xe0\x4b\x7c\x87\x8f\xf1\x3d\x3e\xc5\xe7\xf8\x02\x9f\xe0\x4f\xf8\x08\xbf\xc1\x5f\xf0\x19\xfe\x03\xbf\xc5\x1f\xf1\x7b\xfc\x01\xbf\xfb\x97\x48\x6f\x1f\x9b\xc8\x81\x4b\x78\x2c\x24\xda\x61\x37\x00\x64\xe2\x63\x39\x07\xfd\xfe\x8e\x0f\xdb\xed\xa6\xea\x3c\xc6\xac\xfc\x68\x7c\x92\x48\x18\xfe\x68\xa9\x92\x26\x1f\xd5\x83\x72\xbd\x6a\x07\x2c\x7f\xc4\xbd\xe3\x8f\x3f\xf7\xf0\xe6\x9a\x8a\x31\x78\x7e\x3f\xfe\xf8\x73\xc8\x6a\x54\xbb\xf0\xc0\x23\xee\x65\x45\xf1\x65\xbd\xf2\x8b\x7f\x80\x14\x5c\xc2\x7b\x69\xdf\xeb\x35\xbe\x8f\x8f\x4f\x5e\x1f\x9f\x5d\x1e\xff\x3f\x17\xc7\x1f\xdf\x5e\x7e\x3a\x3b\xbd\x38\xbd\xf8\xf5\xd3\xf1\x79\xbf\xbf\xbb\xa3\xf5\xbc\x3d\xbc\x09\x99\x22\xd9\x0b\xe5\x57\xe0\xf8\xe3\xcf\x71\x23\x7f\x85\xf0\xa3\xec\xe3\xa9\x3c\x22\xe4\xc8\x3e\xe2\x47\xd9\x53\x93\x5a\xba\xd4\x23\x77\x02\xc8\x1b\xb3\xa4\x61\xba\xd5\x1a\x38\xb3\xdf\x77\x0e\xe0\xcc\x1e\xb1\x8d\xe9\xe9\x17\x53\xea\xa9\x59\x7e\xab\xb2\xb4\x14\x7f\x8c\x4d\x22\x8c\xed\x18\xce\x20\xf9\xc3\xeb\xaa\x4a\xb2\xbd\x7c\xeb\x7d\xd2\x71\x99\x3f\xea\x07\xfc\x18\xdf\x50\x7e\x4d\xc9\x47\xf5\x0f\x73\x95\x03\x99\xa6\x42\x44\x07\xaf\xf8\x31\xfe\xf1\xf3\xfb\xb7\x97\xff\x79\xfc\x2b\x61\xf6\x51\x96\x59\xb3\xf4\x5d\xc1\x65\x76\xf5\x84\x1f\x63\x96\x97\x10\xda\x97\x99\x27\xd9\x56\xf2\x85\x02\x5e\x26\xcc\x3d\xe3\xc7\x78\x9e\xe4\xef\xc1\x38\x90\x30\xf7\x2c\xb7\x38\x7f\xb0\xe9\xf6\x19\x3f\x02\x7f\x4e\x18\xfc\xe1\xc7\x78\xad\x7a\xba\x56\x3d\x7c\x63\x70\x29\x29\xdc\x33\x96\x93\x76\xcd\x4a\xc1\x1f\x48\x61\x1f\xd5\x7c\x50\x2e\xc8\x5c\x3f\xc8\xba\x13\x9e\x93\x39\xfc\xe1\x47\x15\xe9\x8d\xcc\xd5\x3f\xbc\x9b\x00\xdf\x73\xf7\xdc\xf1\xd2\xdf\xad\xf3\xb9\xff\x4d\xbe\xe3\x47\x15\xfb\xe7\xad\xae\xcc\xbd\xc8\xc5\x92\xe0\x9d\x5c\x78\x6b\xa4\xb2\x6d\xb8\x76\x6a\xfc\x56\x57\xc5\x8a\x5c\x05\xf4\xe4\xe3\x79\xbc\xfb\x23\x36\x9f\x7e\x49\x78\x4b\x01\x2f\x15\xb3\xf2\x8d\x46\x9e\xe3\x2c\x76\x2f\x95\x5a\x3d\x4d\x7e\x90\xc4\x7b\x91\xa7\x66\x7d\x55\xce\x39\xbb\xa2\x24\x71\xcf\xf8\x31\x7e\x1f\x12\x2c\x64\xe3\x4a\x8d\x83\x2a\x6c\xa1\xb1\x5f\xc1\x3a\xf7\xd3\xbd\x37\x0c\xa2\xcf\x71\xa2\x44\xa0\x95\x9a\x4b\x72\x12\x5f\x6a\x24\x76\xb6\xce\x55\x5a\xec\xa8\x18\x72\xe2\xbd\x98\xaf\x60\x61\x72\xa2\xfe\x4d\x1a\xcb\x53\x99\xc4\xf2\x54\xa7\x28\xdd\x0a\x72\xa2\x1f\x74\xaa\xd1\x7d\x24\x27\xf6\x51\x7f\xa1\x50\x01\xb5\xe5\x97\x49\x79\xae\xaf\x33\x8d\xf9\xc9\x49\x4b\xa2\xce\xfd\x47\x01\x5d\x92\x7f\x3a\x05\x74\x5d\xc8\x89\xfa\xd7\x69\x92\x45\x21\x27\xea\xea\x53\xa5\x14\xaa\x2f\x85\xeb\x87\xb9\x43\x25\x27\xf6\xb1\xf6\xe5\x54\x95\xf1\x5f\x75\x0e\xa3\xb2\x4a\x4e\xec\x63\x30\x1b\x76\x1c\xfe\xeb\x2e\xc8\x25\xcb\xe1\x9e\xbe\x60\x3e\x5b\xe7\x1f\x80\xac\x01\xe0\x75\x22\x81\xef\x9b\xe0\x4b\x1d\x47\x00\xce\xfc\x4c\x32\xbb\xba\x66\x4f\x4a\x2e\xf8\x31\x36\xb4\x1e\xf9\x8c\x1f\xe3\xcb\x94\xca\x1d\xb2\x12\x05\x27\x59\x9c\x83\xb8\xee\x2d\x2d\xe7\x6f\xe9\xbc\x00\xfe\x4e\xe6\xd1\x41\xe0\x48\x66\xc2\xc1\xe1\xcf\x71\x92\xb1\xa4\x24\x99\xfa\x07\xe8\x33\x5f\xd2\x77\x50\x8b\xec\xa0\x7c\x4b\x7f\xd6\xe1\x02\x01\xa0\xa8\x46\xcd\x18\x49\xd6\x48\x92\x2d\x95\x54\x80\x70\x89\xb9\x0e\x90\x2c\x6e\x49\x05\x98\x2b\x12\x52\xc2\x9f\xc2\x4e\xaa\x69\xf5\xfc\x0b\x13\x4b\x0d\xfd\x55\xb2\x97\x20\x1b\x92\xec\x67\x22\x96\x30\x49\xea\x51\xe1\x32\xd5\x9a\x82\x9a\xe7\xf0\xaa\x1e\xf0\x63\xfc\xee\xf8\xe8\xe2\xf3\xd9\xf1\x39\x89\x86\xd8\x80\x7e\x14\x6d\x58\x79\x0c\xf1\x17\xd2\xf1\x3a\xb6\xcf\x15\x5e\xdb\xfc\x12\xbf\x5c\xaa\xd8\x47\x2c\x86\x7f\xfc\x18\x17\x39\xc9\xe2\x42\x6e\xd8\x24\x4d\x3f\x48\xa0\x22\x4f\x5c\xe6\xbf\xc9\xed\x03\x6e\xd1\xbc\xcf\x61\x02\x74\x39\x4f\x8f\x6f\x25\x84\xc9\xdc\x33\x7e\x94\xa7\xc5\xe4\x92\xab\xe4\xbf\xe2\x47\x15\xe3\x9b\x92\x4c\x3f\x40\x8a\x92\x9e\x65\xe6\x09\xd2\x5e\x67\x49\xfe\x05\xd2\xe0\x09\xd2\x3e\xa9\x10\xf4\x90\xaa\x9f\xf1\x63\x9c\x17\x82\x2d\x1e\xcc\x52\xea\xf8\x8e\x59\x6b\x32\x7e\x54\xe0\x23\x4c\x95\xbd\x6c\x4b\xc6\x8f\x12\x30\x34\xf3\x36\x13\xe5\x26\x84\x27\x9d\xce\x20\x5f\x3d\x09\x3f\xc6\xd6\x20\x6c\x13\x9e\xbb\xf1\xde\x10\x2f\x93\xd2\xbc\x1e\xcd\xe7\xb4\x2c\x0b\x5e\x4a\xca\x14\xb0\x96\x9f\x99\x64\xb5\x04\xc8\x51\x0a\x5e\x3c\x90\x77\xe6\x09\x3f\xc6\x2a\x36\x86\xea\x8b\x7d\x56\x7b\x34\xe8\x67\xf0\xae\xf6\x62\xf0\xbd\xac\x7d\xa7\xf7\xab\xc4\x4e\x81\xca\x52\x4f\x52\x9b\xcb\xb8\x78\x52\x9b\xcb\xbc\xd9\xcd\xe5\x7d\x0e\x13\x64\x69\x79\xb6\x95\xdb\x21\x73\xd2\xd5\x9b\xdc\xc0\xae\x5c\xe1\x4a\x00\x97\x4a\x32\xf5\x8f\x1f\xe3\x13\xfd\x0e\xff\xbb\xe9\xb4\x22\xd7\xac\x1c\x80\x38\x08\x89\x74\xaa\x92\x80\x1e\x86\xe0\x47\x26\xe1\x9b\x49\x6c\x41\x4b\xc5\x54\x42\xa5\xf3\x98\x95\x17\x2a\x05\xea\x9c\x83\x1e\x90\x4e\xa8\xd7\xf9\x18\x5f\xbe\x76\x78\x30\xb5\x64\xc5\xfb\xf8\xc3\xe9\x8f\x3f\x1e\x9f\xf5\xfb\xd1\x63\xfc\xa1\xb8\xbe\xa6\x9c\x2c\xcd\x57\x59\xec\x88\x5c\xc6\x47\xf8\x31\xd6\x4c\xc5\x26\x2b\xe6\xe3\x9b\x38\x2b\xe6\xf8\x6e\x7c\x13\xdf\xe1\x34\x29\x97\x94\xb3\x47\x3a\xbe\x89\xed\x33\x4e\xe9\x3c\xb9\xa1\x99\x4e\xb6\x2f\xd8\x4b\x75\x69\x00\x08\x17\x0f\x32\x4d\x3f\xe2\x75\x9e\x52\x5e\xce\x0b\x2e\x73\xba\x17\x3c\x4f\x56\x4c\x24\xb6\x06\xf3\x22\x37\xb3\x9a\x35\x72\xa9\x1f\xe4\x88\x0d\x41\xf7\x89\x17\xf7\x0f\x6a\xe1\x2e\xe3\x66\x22\x40\x33\x43\x12\x06\x79\x5b\x52\xb1\x42\x37\x09\xa7\xe4\xd2\x3c\x41\xda\xea\x01\x12\x56\x0a\xce\x1c\xff\xb9\x4e\x32\x72\x69\x9e\x80\x74\x82\xfe\x05\xb6\xed\x26\x35\xd6\xc2\x0e\x72\xab\x13\xdc\x17\x27\x30\x21\x0b\xf7\x51\x51\xcb\x97\xb1\xa1\x94\xdf\x40\x47\x40\x58\x77\xe9\xbd\x00\xd1\x6f\x45\x80\x97\xde\x8b\xa9\x03\x06\x66\x2a\x82\x17\x3b\x95\xe6\x93\xf7\x26\x4b\xcd\x3d\xa2\x52\x16\xf4\xdf\xa1\x27\x9c\xda\xa5\x70\x2f\xf8\x31\x56\x37\x67\xa6\xe7\xde\x1b\x94\x5a\x3d\xd8\xde\xab\x47\x79\xd6\xd6\x20\x7f\x0c\x86\xd0\x48\x73\xf9\x4c\xd5\xfe\x2b\x7e\x8c\x95\xd7\x31\xd5\xcf\x73\x25\x70\x21\x97\x6d\xa9\x72\xb6\x24\xb2\xa1\xa9\x9c\x2a\xf5\x84\x1f\x63\xed\xb5\x2e\xd8\x18\x8d\x34\x98\x35\xb9\x8a\xba\x9b\xee\x45\x62\x5e\x90\x08\x93\x4b\xfd\x00\x1b\xc4\x74\x56\x3f\xb5\x6e\xe0\x22\xff\x50\x24\x29\x79\xa3\x1f\x14\xf5\x25\x9f\x7e\x2a\x8a\x2f\x25\x79\x13\xbc\x6a\x1e\xc7\xee\x15\xc7\x38\xb8\x64\xd5\xfd\x95\xf7\xed\xdc\x6e\x3c\x97\x76\x19\x0c\xf5\x32\x18\xe4\xd9\xf9\xcf\x9f\xe4\x21\x3a\xff\xf9\x13\x2c\xa9\x11\x3d\x5c\xba\x67\x59\x83\x8e\x46\x7a\x1d\xab\x07\x45\x96\xad\x68\x9e\xd2\x5c\xfc\x27\x7d\x80\x1d\x2a\xc8\x55\xdc\x4c\xc4\x9f\x63\x0a\x78\xfb\x41\xfd\xe3\xcf\x12\xe5\x1e\xeb\x24\xf3\x08\xa9\x39\x85\x94\x9c\xaa\x3c\xea\x33\xfe\x1c\x5f\x15\x45\x46\x1e\xe0\x0f\x7f\x8e\x6f\x12\x31\x5f\x92\x07\xf5\x2f\x6b\x87\x93\xf9\xa0\xfe\xf1\xe7\xf8\x5a\x16\xbc\x16\xf0\x44\xe1\x51\xd6\x97\xc9\xd4\x4c\xc0\x13\x85\x47\x99\x5a\xe4\xf4\x97\x44\xf6\x43\x3d\xe0\xcf\x31\xa7\x49\x5a\xd6\x13\x4e\xf3\x4c\x66\x32\x8f\xf8\xb3\xe5\xfb\x58\x7e\x7d\x04\x64\xe6\x43\x23\x49\x52\xa0\x79\x4a\x1e\xe4\xaf\x6c\x8a\xcb\x5a\x39\xfe\x1c\x97\xeb\x1b\xf2\x20\x7f\xe5\x60\x58\x2e\x87\xc2\x72\x18\xd8\x3d\x0c\xeb\x1e\x9e\x57\xf0\xbc\x92\xf9\xe5\x06\x7f\x80\x3f\xf9\x46\xc5\x5b\xb6\x58\xc8\x04\xf5\xa4\x72\xbf\x7e\x50\xf9\x5f\xcb\xde\x2d\x58\x26\xd9\x8b\x07\xfd\x60\x53\x20\x93\x79\xc4\x9f\xe3\x75\xce\xfe\x24\x0f\xf0\xa7\xdf\x20\x87\x7a\x50\x29\x45\xae\x12\x0a\xd9\x43\x90\x44\x96\x72\x53\x3f\xb8\x67\xfc\x39\x9e\xcb\xcd\x08\xa9\xfa\x69\x37\xca\x53\xd1\xed\xcf\x7b\x70\x7f\xec\x5d\x0f\x2b\x01\xcf\x0d\xd0\xba\x0a\x35\x95\x80\x04\x6f\x80\xe2\xd6\x29\x4f\xe1\xd2\xd7\xa7\xa7\x17\xc7\x6f\x5b\xea\x6d\x8a\x91\x32\x5f\xc8\x76\x4e\x13\x3e\x5f\xbe\x65\x25\x50\xc5\xd0\x26\x90\x32\x3b\x32\x00\xea\x7d\x63\xc4\x98\xe4\xce\x3d\xe3\xbb\x58\xdd\x83\xc6\x4b\x15\x26\xe7\x4e\x3f\xe0\x47\xfd\x81\x98\x1c\xb2\x8a\x25\x9d\x7f\xb9\x2a\xee\x65\x0d\xfa\x51\x82\x36\x7a\x2f\xde\x31\x9a\xa5\xe4\xce\x3d\xeb\xf4\x23\x4e\x13\x9d\x2c\x1f\xf1\x63\xfc\x81\xe5\x5f\xfc\xae\x04\xef\x86\x57\x31\xef\x27\x49\x9e\x5c\x43\x1f\x5a\x52\x65\xe6\x79\x2d\xed\x4d\xb2\x4a\xae\x58\xc6\x80\x74\xbb\x93\xc8\xd9\xbe\xea\xba\x4f\x8a\x94\x2d\x18\xe5\x41\xd5\xb5\x44\x99\xf5\x26\x4c\xaa\x55\x6c\xbe\xbe\xa9\x35\x70\xed\x75\xd3\x68\x07\x90\xbb\xb8\x2d\xb9\x3e\x56\x2f\x7b\x5b\x32\x30\x8c\xfa\x59\x9e\x67\x37\x87\x1f\x7c\xa8\x39\x4f\x56\x62\xcd\xe9\x99\x04\x68\xfc\x82\x53\x4a\xe6\x71\x23\x4d\x2e\x2e\xe0\xca\xab\x84\x97\x64\x63\xaa\x1d\xdf\xc5\xe6\x11\x7f\x16\x2c\x2b\xc7\x1b\x5a\xce\x93\x15\x3d\xbe\x5f\x71\x5a\x42\x40\xdf\xbb\xb8\x9e\x54\x49\x0a\xe2\xa7\x8b\x93\x0f\xaf\x77\x55\x56\xe1\x1d\xf2\x4f\x4d\xcf\xf5\xfb\x91\xbe\xc3\x76\xd7\xda\x4b\x71\x93\x9d\x27\x0b\xda\x14\x20\x47\x43\x7c\x67\x3f\x23\xa5\x42\x00\x1b\x5c\xd7\x61\x4b\xba\x5c\xee\x23\x2b\xc1\xdb\xb1\xfa\xec\x5e\x76\x9f\xd0\x8b\xe3\x93\x4f\x1f\x8e\x2e\x40\xb6\x2b\x8f\x21\xac\xa5\x59\x13\x75\xda\xef\x14\xc9\x6b\x92\x9e\x3c\xca\xd0\xd1\x9f\x8f\xcf\xce\xdf\x9f\x7e\x24\xc7\x1e\x01\xfc\xff\xff\xc7\xe7\xe3\xb3\x5f\x2f\xdf\x7f\xbc\x38\xfe\x51\xc5\x0d\xec\xf7\xf7\xee\xe3\x3f\xfe\xb1\xa6\xfc\xc1\x9c\xe3\x27\x64\xd1\xdf\x79\x42\x58\x53\xac\xae\xcc\x12\x74\x65\xa8\xba\xc2\xe8\x1d\x2c\x35\xd9\xb0\xf2\x1c\xc2\x52\xbd\xc9\xd8\xfc\xcb\xf8\x3e\x0e\xde\x25\x08\xd2\xae\xb0\x65\x91\xf1\x7d\x1c\x26\xc8\xef\xf2\x5f\x27\xa9\xef\x5e\x82\xf9\xfe\xba\x58\xe7\x69\xe9\x3e\xab\x77\xf3\xf5\x4d\xc6\x68\x2e\xce\xe8\x5c\x78\x59\xbc\xc4\xa0\x16\x96\x5f\xbb\x4f\xb5\x1a\x83\x6f\xb2\xd4\x59\x51\xc0\x57\x5d\xaf\x7d\x95\xdf\xc0\x03\xb2\xf7\xd1\xbd\x63\x56\x9e\x53\x0e\xca\x33\x20\x37\x7c\xc7\x78\x09\xae\x7b\xc7\x72\xf3\xb4\x7f\xaa\x34\xe4\x33\x44\xde\xbd\xff\xe6\x83\x61\x75\x11\x41\xee\xeb\x29\x86\x00\x7c\xcb\xca\x95\xa4\x16\x28\x27\xf7\xf5\x14\x09\x47\x0b\x7d\x0f\x70\x6a\x1f\x25\x61\xbc\x16\x85\xf7\xc5\x7f\x85\x43\x5f\x2e\xbd\xaf\xfe\xab\xfc\xca\x4a\x51\xf0\x07\x3f\x43\x98\x22\x69\xad\x22\xa7\x5e\x06\xff\x15\xf8\x0f\x43\xe3\xbd\x2b\x38\x39\x0d\xdf\x3d\xf1\xbd\xa3\x05\xdf\x25\x73\xd9\x02\x39\xdd\xfd\xad\xb5\x5c\x6b\x01\x49\x19\x16\x6b\x41\xf9\xdb\xf3\x0f\xe4\xd4\x3d\xdb\x74\x9b\x68\x52\x4c\x02\x8e\x86\x38\x24\x64\x51\xa4\x2e\xaa\xfc\xab\x95\x1e\x7e\xe3\x33\xa5\x6f\x13\x91\x1c\xa5\xc9\x4a\x56\x7c\xee\xbf\xf9\x82\x7e\x90\x97\xbb\x5c\xad\xe9\xb2\x75\x11\x2f\x13\xd9\xa8\xd2\x21\xb4\x17\x8d\x12\xbf\xb1\x8c\xf2\x1e\xea\xf7\x21\x97\x69\xff\x89\x9c\x6d\xd5\x29\x96\x1d\x29\xcd\x8c\xd7\x64\x47\x55\x3a\x57\x47\xee\xe0\x52\x90\xd7\xf0\x87\xd5\x5b\x6c\x06\xf1\x3a\x76\xc3\x84\x0f\xff\xf8\x9c\x33\xe1\xbe\xfa\xaf\x4a\xe0\xb2\x5e\xbd\x2b\xb8\x96\x09\x90\xd7\xf5\x94\x6a\xe7\xdc\x6b\xa3\x8e\x9f\xc8\xa3\x67\x41\xf0\x13\xce\xe3\xf7\xe7\x97\x1f\x4f\xdf\x1e\x4f\xf2\x58\x69\x34\xc4\x5a\x23\x82\x3c\x8e\xdd\x3d\xa5\x4e\x53\xf7\x94\xa4\x2d\x9d\x3c\x06\xfa\x15\xf6\x8e\xfd\x7f\xcb\x82\xc6\x25\xf4\x9e\xc7\x07\xc3\xf8\xfb\x9e\xee\x8f\xa7\xac\xd1\xd4\xfa\xf8\x1f\xee\x93\x56\x21\x21\x54\xcf\x25\xa1\x66\x7a\x03\x43\x1f\x70\x6c\xd7\xb8\x2e\x56\x45\x5a\x55\x89\xf4\xca\xe8\xea\x3b\xae\xd6\x1c\xdb\xa6\x84\xd7\x3e\xc7\xf9\x24\x72\x5f\x88\x7a\xf0\x33\x90\xb0\x4a\x34\xf6\xb3\xeb\xa8\x57\x2e\xb3\x32\x95\x53\xf3\xc9\xe5\x19\xdf\xe7\x74\x5e\x5c\xe7\xec\xf1\x5f\xea\xcb\xbe\xd5\x48\x2a\x50\x4f\x0d\x15\x71\xb5\xe1\x1b\xa8\x10\x79\xba\xa1\x97\x97\xba\x06\xac\x83\xd3\xc9\x24\x4c\xab\x7a\x30\x39\xa5\x22\xea\xcc\x62\xb4\x17\xb5\x1b\x8d\x38\xb4\x8b\x69\x59\xc7\xb5\x24\x2d\x39\xb8\xdf\xf6\x74\x07\x77\x6b\xca\x9b\x32\x10\x42\xad\xdf\xe7\xf1\x1d\xcb\xb2\xa3\x34\x05\x78\x09\xe1\x82\xc2\xa4\xc8\x6f\x58\x3b\x97\xc5\xd4\x38\x79\x32\xe9\x49\x9a\x7a\x06\x07\x10\x81\x65\x63\x4c\x9e\x9d\x9d\x73\xcd\x56\xc2\xc6\xf9\x55\x3a\x75\x79\xd7\xda\x81\x41\x04\x64\xda\x75\x9e\x1f\x93\xb2\x54\x0e\x42\x7f\x17\xc5\xef\x3d\x6d\xb8\xe8\x35\xae\xc3\x1f\xb8\x1e\xe0\xda\x14\xa1\xaa\xd2\x96\x64\x4d\x4b\x96\x02\x02\x34\x71\x6b\xa6\x2f\xeb\xe2\x34\x77\x29\x6a\xd4\x84\x56\x35\x65\x39\xcf\x12\xdf\xd6\xca\x70\x82\xb4\x49\x36\x1d\x30\x70\x9f\x94\x20\x2f\x78\x46\x1e\x95\xca\x3b\x71\x12\x15\xfa\xb1\xa6\xde\xd6\x88\xd9\xd9\xf4\xec\x3e\x40\xf9\x80\x40\xdc\x4b\xcf\xf2\x42\xdb\xe6\x6e\x64\xd2\x58\x10\x01\x17\x9d\x82\x47\x39\xc2\x4b\x7d\x25\xcb\xab\x0e\x35\x56\x0a\x15\x7b\xc2\x5c\x2f\x98\x1a\x88\xc5\x58\xe1\x5a\x7e\x15\xeb\xaa\x3d\xb4\x5d\x02\xda\x70\x2c\x32\x26\xa6\x66\x4a\x65\x4d\x89\xf6\x08\x23\x67\x30\x81\x18\x70\xfd\x7e\x6e\xa0\xf8\xb1\x64\xe4\x25\x41\x5c\x4f\x89\x04\x2e\x11\xe6\x51\x89\xbc\x45\x08\x63\x04\x94\xab\x8c\x89\xa8\xf7\xac\x87\xc0\x95\xc5\x1a\xc1\x1d\x27\x24\x54\xca\x77\xcb\xb3\xbf\x6c\x7f\x7b\xf6\xec\xba\xe3\xfb\xeb\xf7\x2a\x50\xd3\xf8\xf2\xf9\x76\xbb\xaf\x02\x2c\xda\x28\x40\x7f\xe9\xa1\x09\x1d\xa7\x74\x5e\xa4\xf4\xf3\xd9\x7b\x4b\xd9\x45\x14\xc5\x9c\xae\xb2\x64\x4e\xa3\x0c\xd3\xbc\xfe\x5d\x35\x3c\x27\xcf\xfe\x12\x4d\xc6\x07\xd1\x64\xfc\x62\xfb\xfd\xf6\xf5\xf6\x0d\xda\x3e\x8f\x26\xe3\xd7\xdb\xb7\xdb\x23\xb4\x7d\x31\x44\x7e\x9f\xfc\x90\x58\xcd\x1a\xfd\x16\xe7\xb8\xd9\x23\xd5\xe2\x92\x3c\x8b\x7e\x7b\xb6\xfd\x2d\xde\xfe\xf6\xef\xdb\xdf\x06\xdb\xdf\x26\xdb\xdf\xb6\xdb\xdf\xa2\xed\x6f\x68\xfb\xdb\x74\xfb\xdb\x6c\xfb\xdb\x66\xfb\x5b\xb5\xfd\xed\x37\xf4\xec\x1a\x2f\x48\xa0\xd7\x8c\x57\x4d\x6d\xe4\x65\x52\x9e\xde\xd9\xbb\x26\xd7\xd9\x1b\xe7\xbb\xcd\xfa\x51\x31\x7a\xce\x46\x97\x9a\xb4\x18\xe5\xd9\xa3\x2f\x4f\xb6\x3c\xfa\xaa\x74\x37\x29\x55\x3c\x70\x3a\x2f\xf2\xd4\xc1\x03\x79\xf0\x0d\x5d\xf8\x7b\xac\x23\xaf\xaf\xb4\x6a\x34\x16\xe8\xa9\x06\x78\x71\xcb\x52\xda\x5d\x25\x3c\xb9\xe9\xfe\x0e\xf6\x58\xbf\x37\x2b\x54\x10\x92\x4e\xc5\x4c\xe2\xc3\x86\x09\xe9\x84\x8f\x7b\xbd\x01\xb7\x1e\x5f\xbf\x0e\xd3\x4c\xbb\x49\xd8\x72\xdc\xf3\x22\x59\xca\x46\x6f\xc9\x74\xd6\xb9\x9d\x0e\x67\x3b\x8d\x6c\x04\x18\xd9\x00\x36\xc2\x2d\xde\x09\xb4\xd2\x7d\x1e\xcf\x97\x09\x7f\x53\xa4\xf4\x48\x44\x0c\x75\x24\x69\xb4\x5a\x8b\x08\xcc\xea\xf7\x46\x5e\x60\x4d\x7c\x3b\x1d\xd5\x5b\xb3\xde\x37\x64\x91\x17\xff\x81\xf7\x86\xe0\xe8\x1c\xdf\x4e\x0f\x9e\xcc\xba\x3f\x82\xea\x55\xd6\x17\xbb\xb2\x2a\xd0\x7b\x2d\x47\x7a\x1d\x8e\xd4\x3b\x7d\x30\x40\xbb\xb7\x97\xb8\xf7\xdb\x6f\xdf\x8d\x7a\xa8\xc2\xd7\x41\x77\xad\xbe\x59\x34\xfd\xaf\x67\xb3\x01\xea\xc9\x0c\x07\xad\x19\x62\xfd\xf5\x45\xdb\xd7\x9e\xea\xd4\x95\xec\xd4\xd5\xd3\x9d\xaa\xf0\x55\x73\xc6\xd4\xda\xdc\x44\x92\xd6\x81\x5c\x76\x5d\x3f\xc5\xc7\x1f\xdf\x9c\xbe\x3d\xbe\x3c\xfa\xf8\xf6\xf2\xed\x31\x3c\x7e\x3a\xba\xf8\xe9\xf2\xfc\xf8\xc7\x93\xe3\x8f\x17\xe7\x93\x34\xe2\x68\xcc\x65\xb5\xbb\x66\xd7\xaf\x57\xe6\x7b\x6a\x08\x0f\x35\x1f\xc6\x9b\x0a\xe1\xcb\xa7\xfc\x1a\xdf\x59\xfa\xc2\xf3\x4a\xf1\xe2\x3f\x00\x57\x7b\x9b\x68\xa8\x74\x9d\x2d\x1e\x19\x21\xa7\xee\x9c\xcb\x64\x0b\x6f\xad\x1f\x34\x5c\x98\x87\x16\x4b\x67\x85\x15\x71\x46\xf2\x69\x32\xc3\x73\x32\xec\x8c\x0e\xfa\x51\x49\x0e\x5e\xbe\x8c\xe6\xa4\xd7\x23\x84\x64\x93\x17\xe3\xbf\xfd\x5d\x3e\x84\x1d\x99\x8c\xc6\x2f\x0e\x5a\x92\x0f\xc6\x43\x24\x7b\x99\x91\x4c\xdb\x47\x8c\x10\x8e\x18\x61\xdb\xed\x74\x86\x14\xa6\xcb\x10\x8e\x0a\x52\x78\x29\xc3\x3d\x12\xbd\xe8\x97\x08\x21\x3c\x7a\xd1\x2f\xfb\x7d\x3e\x9d\xcf\x06\x03\xac\x51\xe3\x46\x1e\xfa\xf1\x5c\x5b\x1c\xac\x23\x49\x6e\x1a\x57\xf6\x10\xa2\x6d\xcc\xb6\xdb\x4b\x5c\x2e\x8b\x75\x96\xbe\x05\x08\x5c\x8e\x8b\xed\xf6\xd2\x43\xe3\xc7\x35\xf2\x80\x42\xc7\x75\x00\x9c\x38\x57\x54\x1b\x21\x1c\x40\xc0\x7d\x03\x8b\x82\x73\x7a\x6d\xcb\x27\x9c\x13\x5d\x96\x1a\xca\x0f\x6a\x33\x71\x30\x55\x6d\xb9\x17\xb1\x52\x95\x62\x13\x31\xf6\x82\x5c\x26\x42\x50\x9e\x93\x5e\xcf\x3a\x7d\xb9\xa6\xf7\x66\xbd\x20\x49\x93\x09\x65\x90\x28\x67\xc3\xc6\xaa\x74\x9b\xe8\x34\xd8\xaf\x66\x4c\x13\x35\x50\x15\xf6\x13\x22\xe6\xa9\x84\xb1\x9b\x00\x8b\x5d\x65\x82\x9b\xb1\xf3\x3a\xd8\x53\xd1\x89\x31\x73\x06\x86\xf9\x4b\xe6\x22\x14\x17\x5a\xa5\x5e\x71\x80\xf3\x44\x44\x85\x22\x08\x23\x81\x3c\x60\x77\x1f\xd8\xb3\xca\x01\xb7\x58\x9e\xb8\xe9\xd8\x6e\x23\x7f\x72\x24\x60\x3f\xa3\xd7\xc7\xf7\xab\xc8\x9f\x43\x84\xfc\x29\xac\xb0\xdf\xc8\x35\x7d\xc2\x4c\xd5\x2d\x8e\xf1\x8d\xb5\x47\x08\x78\x2d\x58\x44\x1c\xa1\x30\x4e\x3b\x6f\x89\xca\xec\x6d\x8a\x29\x9f\xe6\x33\xb0\x4a\x3d\x8e\x18\x04\xfa\xb3\xa6\x81\x2e\x42\x43\x11\x96\xd0\xd9\x8b\x20\x7b\x51\x85\x23\x58\xad\x45\x83\x13\x81\x5e\x41\x9f\x55\x85\x60\x7b\xe8\xd5\x91\x77\x1a\xfd\xb3\x68\x0e\x66\xf1\x3e\x62\x98\x19\x13\x75\x55\x29\x66\x53\x93\x32\xb3\x01\x7b\x6b\xd3\x34\xa9\xef\xe9\x3c\x66\xe9\x58\x1b\x4e\xbb\x64\x54\xcf\xa7\x8d\x59\x63\x96\xa2\x71\xbd\x8a\x69\x2d\x01\xcb\x6c\x33\x9c\x87\xb3\xa0\x6e\xf6\x9a\x06\x64\x2d\xeb\xb8\x67\xa2\x6b\x4f\x67\x1d\xb3\x77\x3b\xb0\xa6\xa2\xbe\xa6\xe2\x2b\x6b\x2a\x60\x4d\x4f\xe5\x82\x22\xc9\x9c\xc1\x30\x18\xda\xb5\xa0\x42\xe6\x2d\xfc\xbc\x85\xb7\xf7\xa1\x33\x17\x4d\x86\x27\x34\xd4\xfe\x73\x4d\xf9\xc3\x27\x49\xa3\x94\x84\x6e\xb7\x9b\xca\x3b\xe4\x27\x76\xdc\x1d\x4a\x1c\x72\x7e\xf6\xdb\xe0\xd9\xf5\x0d\xee\xfd\xe5\x60\x28\x79\x31\xfe\xb0\x11\xa4\x95\x38\xd6\xfe\xbf\x24\xaa\x21\xbd\x9e\x8d\xc0\x5e\x5d\x78\x13\xad\x9c\xfd\x68\x12\xb4\x9e\x8c\x83\x9c\xed\x19\x1b\xf9\xc0\x3a\xb8\x9e\x4d\x26\xc2\x84\x7c\x6a\x58\xb4\x03\x50\x97\xdc\x9e\x72\x30\x09\x3e\x0c\xf5\xa6\xa5\x78\x88\x25\x8d\x33\x94\x24\x54\x87\x4a\x3a\x41\xe0\x16\xc8\xcc\x8b\x42\x6d\x08\x22\xaa\xce\xa7\x27\x19\x2b\x2f\x08\x16\x09\xcb\x62\x46\x7a\xff\xd5\xc3\x05\x99\x0e\xf1\x10\x43\x54\x00\x67\x54\x64\x4d\x8e\x30\x38\x59\xcc\xc8\xde\x10\xaf\xc9\x50\xe2\xd1\xc3\xb9\xe3\x0d\xe7\x72\x5f\x99\x26\x52\x42\xa7\xf3\x19\x5e\x92\xbb\xa8\xc4\xa9\xe2\x8c\x0b\x84\x17\x64\xa9\xc6\x8c\x57\x64\x19\x07\x78\xec\x70\xfd\xd2\xda\xe5\xaf\xcd\x16\xbd\x21\xe5\x74\x3d\xeb\xbc\xd8\x23\xe4\x06\xd0\x01\x60\xdc\xbd\x11\xce\x49\x6e\x09\x46\x20\x32\x31\x1b\x90\xde\xb3\x1e\xce\xc9\xed\x54\x65\x9d\x45\x37\x38\x87\xf4\x6b\x97\x82\x50\x05\x1e\x2f\x37\x86\x2f\x4d\x0d\xea\x51\x71\xe4\xc7\x8b\x1a\x76\x5d\x55\x55\x06\x3e\x35\xdb\xdb\x43\x38\x77\xb8\x2b\xc1\xb9\xc5\x75\x6c\xd0\xfb\xae\x87\x73\x8d\xc3\x0a\xfc\x94\x61\x58\xbf\x2f\xe2\xa4\x54\x6e\xfc\xe2\x44\x32\x9b\xc6\x25\x11\xf4\x09\xfc\x7a\x94\x14\x62\x5c\x96\xe3\xd2\xb0\xd4\xe5\x38\xa9\x50\x85\x3f\x05\xbc\x92\xfa\xf2\xae\xe0\x3b\xe1\x07\xd4\xa8\x9d\x40\xb7\x78\x91\xb8\x58\x52\x4e\xbb\xac\xec\xe6\x45\x17\x78\xf0\xae\x2c\x91\x76\x7b\x03\xba\xc3\xe4\xcc\xb6\x6a\xb7\x89\x01\x38\xb5\x0f\x01\xe4\xb1\x1f\x01\x95\x4e\xf3\x19\x61\x1e\x9f\x10\x0e\xaa\x54\x92\xf5\x26\x99\xbc\xb7\x17\x8c\x29\x2c\x67\x98\xac\x27\x70\xa2\x2e\x27\xf9\xae\x1e\x4c\x48\x33\x50\xcc\xb7\x4d\x08\x23\x3c\x36\x2b\x64\x62\x91\x98\x51\x17\x66\xd4\x09\x61\xd3\x42\x6d\xe6\xc4\x6c\xe6\x5c\xef\xda\x01\xb9\x9a\x26\x7a\x93\x26\xd8\xd1\x11\xbd\x67\xbd\x3d\xa2\x39\x2c\x43\x18\xe7\xb2\xc8\x20\x47\x18\x36\x8e\x07\x44\x55\x7d\x1a\x4b\xaa\xc1\xc3\xad\x9d\xba\xa9\x8c\x82\xbc\x08\x49\xb4\xd3\x36\x5f\x5e\x91\x96\x4d\x34\x9d\x39\xcb\xd0\x2f\xf4\xa1\x8c\x24\xf7\x01\x4a\x19\x91\x4f\xa3\xef\xa2\x22\xe4\x4a\x63\x88\x0a\x38\x73\x74\x88\x8d\x14\xd4\x22\x74\x60\x48\xe1\xb3\xc2\xe1\xb3\x92\x0c\x0f\x4b\x17\x44\xad\x34\xb5\x67\xf2\xd0\x4d\x67\xa4\x37\x68\xa9\xa7\x98\x96\x33\x88\xe6\xaf\x08\x73\x65\xf2\x9d\x0c\x48\x6f\x47\x76\x84\x85\x8d\x2a\x68\x36\xa6\x2f\x53\x9c\xf4\x7a\xe3\xde\xa4\x37\x10\x5a\xd4\xd3\xef\xd5\xce\x22\xb8\x5a\xde\x35\x97\x5e\x28\x19\xc3\xcc\xf4\x21\x46\xec\xa6\xc2\x4f\xa0\xeb\x69\x3e\x33\xd9\x49\x0f\xe1\x82\x9c\x44\x6c\x3a\x9c\x21\x9c\x10\x33\x1d\xb8\x94\xe0\x31\x33\xd2\x62\x49\xef\x9a\x9d\x38\xc9\x48\x4f\xf0\x35\xed\x8d\xa3\xe4\xd5\x41\xbf\xdf\x9b\xce\x24\xe7\x53\x68\xfe\x25\xd9\x3f\x90\xbb\xab\x04\x6f\xec\xd3\xc2\xa6\x0f\xb1\xfc\x32\xdb\x6e\x23\x3e\x2d\x66\x64\x3a\x43\x08\x67\x84\x4d\x47\xb3\x89\x6c\x7e\x34\x43\xe3\x5e\x0f\xe1\x72\x22\x3f\x9b\xf9\x1d\x43\xde\x6c\xc7\x91\xb6\x72\xf3\xe6\x06\xc3\x5c\x53\x49\x16\x37\xcd\x4c\xe8\x9f\xbd\x91\xdc\x39\x4e\x34\xf6\x6f\x3d\x74\x08\x84\x7e\x01\xc2\x63\x6a\xb8\xc5\x21\x2e\x74\xd4\xb1\xc4\xcf\x3e\xe9\x69\x3f\xcc\xf2\xfc\x99\x1d\x63\x0b\x25\x83\x11\x76\xb6\xb5\x41\x6d\x09\x72\xee\x5d\xc2\x35\x95\x1b\x49\x9d\x50\x1a\x9c\x50\x0a\x27\x94\xaa\x4e\xac\x09\xed\x7c\x9d\x31\xa7\x44\x1e\xa5\x71\x44\x1d\x39\x13\x51\x84\xd7\xde\xeb\x5a\x8f\x6a\x6e\xf9\x92\xce\xfc\xd5\xa8\xdf\xef\x3d\xeb\x11\xaf\x07\xf3\xfd\x11\xaa\x4f\x88\x4c\xc3\x6b\xb2\x76\x29\x6b\xeb\xa2\x45\xf2\xd0\x7b\x43\x77\x78\x53\x32\x3c\x4c\x2d\x5a\x07\xac\x74\x1e\x71\x4c\x7d\x06\x38\x45\x08\x99\x0d\x9a\x0e\x06\xe8\xd0\x14\x5e\x4a\x00\xb1\x20\xc3\xc3\x85\x3b\xfe\x0b\xb0\x44\x5e\xcc\x2c\xc8\xef\xf7\x97\x3a\x0a\xc4\x74\x31\x43\x9d\x56\x6f\x0f\x54\xc1\x94\xa8\x0d\x78\x53\x85\x55\xb7\x5b\x43\xad\xe4\x84\xab\x38\x3d\x7c\x3a\x92\xe0\x85\x4f\x0f\x24\x09\x23\xea\xf9\x4a\x92\xc8\x7c\x19\x49\x64\xbe\x35\x49\xa6\x07\xd6\x95\xe4\xda\x32\x25\xfb\x6b\x48\x03\xd9\x62\xbe\x47\x48\x69\xbe\x94\xfb\xc0\x88\xb0\x3d\x42\x32\xeb\x60\x60\xdf\xe2\x2d\x48\x9f\xb0\xfd\x6c\x0c\xa5\x26\xe5\x7e\x3e\x1e\x56\x08\x55\xd1\x52\x2d\xdc\x8a\x2c\xa7\x43\x6b\x8b\xbd\xea\xf7\x57\xde\x94\x44\x4c\xbe\x6b\xf2\xa1\xdf\x07\x19\xd2\x77\x72\x61\x6d\xa2\x3e\x8f\xfb\x7f\x93\xcb\xbb\xd6\xe4\xc7\x0e\x86\x89\x38\x62\x00\xf8\x58\x60\x17\x95\x83\xa1\x3d\xb6\xdd\x06\x71\x15\x34\xa2\x03\xb2\x12\x22\x27\x30\xe7\xdf\xa3\x67\x83\x66\x6a\x16\x97\x49\x60\x33\xc2\xca\xff\xde\x45\xc4\x51\xc7\x52\xf5\x46\xe4\xe2\x85\xbd\x1c\x1e\x66\x4e\x12\x93\x19\x48\xb6\x26\xf9\x34\x9b\xe1\x39\x59\x6b\x62\x30\x95\x3b\xd3\x27\xbb\xf0\x92\x3c\xe0\x85\x8e\x23\x31\xdf\x23\xe4\xb2\xdf\x4f\xe5\x9f\x45\x02\x2b\x32\x3c\x5c\xbd\x9c\x9b\xba\x57\x40\x7c\x92\x3d\x75\x3f\x76\x43\xe6\xd3\xd5\x0c\xdf\x4a\xc8\x50\x4c\x93\xc1\x60\xd6\x59\x12\x42\x1e\xfa\xfd\x68\x49\x36\x15\xc2\x5f\x3d\x8f\xfd\x7e\x3a\x5d\xcd\x26\xcb\xe9\xcd\x8c\xdc\xf6\xfb\x2d\x2c\xc6\x2d\x1a\xab\xaf\x55\x39\xcd\x3c\x82\x72\x6d\x09\x4a\x90\xbe\x96\xe3\x25\x66\xe5\xdb\x87\x3c\xb9\x61\xf3\xf1\xc2\xe2\x92\xb2\x8a\x56\x78\x8d\x81\xa1\x97\xc0\xd1\x68\xf0\xf4\x86\xf1\xf3\xf8\x45\xef\xeb\x3d\x94\x60\xfa\x53\xfc\xb1\xe0\x37\xb0\x52\x9c\x6c\x72\xf3\x7c\xae\x28\x91\xf1\x1a\xdb\xa4\x4f\x89\x58\x8e\x4b\x7d\x4f\x20\x5f\x4c\x9e\x34\x84\xcc\x37\xc9\xaa\x95\x5e\x82\x4b\x95\x0e\x8d\x8a\xa8\xd7\x33\xae\xfb\xed\x05\x17\xc2\x9e\x0f\x25\x2b\x45\x32\x2b\x55\x10\xae\x6f\x73\x70\x19\x50\x0e\x85\xc4\x23\x72\x87\x94\x2d\x3b\xa4\x54\x3b\x44\xe8\x4d\x8f\x3a\x49\x34\xc7\x6b\x5c\x4c\xd7\x33\xb5\x25\x53\xc2\xdd\xe5\xce\x7a\xd6\x49\x27\x70\x2d\x01\x6d\x8f\x73\x25\xa0\x67\x78\x8e\xaa\x2a\x92\x34\x4b\x78\x27\x2b\x26\xca\xa5\x28\xa6\x9a\x49\x57\x1e\x1d\x75\x54\x43\xed\x19\xe3\x88\x7c\xf2\x2e\xd4\x8f\xfc\x9b\x5f\x7e\xf9\x47\x19\xfa\x4d\x68\xb1\x04\xe7\xe5\xed\x4a\xfe\xd5\xaf\x8a\x5b\x4c\xba\xff\xef\x6f\x89\xb3\xe2\xfa\xe8\x0a\x54\xc0\x31\x8d\xdf\x6b\x53\x79\xa0\x9b\xdf\xe7\x0b\x89\x36\x2f\x78\x92\x97\x4c\x36\xaa\x4c\x30\xfd\x14\xc5\x3f\xd2\x58\x69\x8c\x7d\x3a\x3a\x3b\x3a\x39\xbf\x3c\xff\xf5\xe4\xf5\xe9\x07\x42\xe3\xfa\xfb\xf9\xc5\xd1\xc5\xb1\x7b\x35\x8d\xb9\xea\x48\xeb\xa5\x35\xdb\xe1\x74\xcb\xee\x31\xe8\x97\x5a\x38\xed\x68\xa7\x63\xc9\x74\xd2\x73\xd5\xc3\x38\x69\xaa\x85\x89\x37\xb4\x2c\x93\x6b\x0a\xee\x35\x5a\xf2\x98\x4a\x41\x5f\x11\x3c\xbb\x5e\xf0\x64\x4e\x27\x3b\xd2\xc3\x5d\xa1\x1c\x45\x72\xf5\xdf\xe2\x0d\xac\xe6\x25\x4a\xd5\x69\xbf\xa2\xd0\x85\xa0\x73\x8b\x43\xa8\x72\x43\x56\xec\x90\x28\x24\xdf\x7e\x0b\x56\xd6\x38\x7b\xb8\xbf\x46\x89\x9e\x45\xcc\x81\x12\x80\x60\x87\x53\x3e\x43\x81\x9f\x11\x47\x70\x81\xdf\x7d\x17\x58\x90\xf7\xfb\xdc\x79\xfc\xa3\x53\xbe\x3f\x52\x42\xa5\x16\x2c\xdd\xef\x27\xe6\x2e\xac\xe7\x71\x17\x3d\x54\x45\xb9\x15\xd1\x09\x92\xfb\xac\x07\x9e\x16\xa6\xcc\x10\x73\x49\x80\x88\x99\x8b\x41\x22\x59\x82\x59\x15\xde\x93\x5a\x72\x59\x0e\xcf\x86\xdd\xa7\x53\x01\xfd\x72\x01\x17\xac\xdb\x55\xf9\x89\xc0\xb5\x99\x09\x8f\x18\xfa\x4f\x0a\x25\x9e\x92\x70\xa8\x4b\x7a\x81\x25\x95\x35\x4c\xf3\x59\x15\x46\x40\x57\xe1\x65\xc0\xfd\x63\x56\x5c\x23\xb6\x88\x0e\x7c\x65\x83\x8d\x0e\x3a\x33\x23\xa2\x03\x39\x22\x6f\x5f\x76\xff\xad\x37\xe0\x83\xde\xb8\x2b\x19\x38\x2b\x5b\x9b\x32\x97\x99\xf9\x77\xf2\xde\x8d\x6c\xd3\x9b\xd3\x76\xeb\xfc\x09\x15\x8b\xae\x22\x49\xb7\xdb\xc6\x74\xd4\x33\x7e\x84\xef\xae\x91\xe5\xd7\x7c\xeb\xf5\xfb\x2a\x0a\x18\xec\x24\x04\xfe\x78\x0e\x5d\x71\x3f\xe4\x94\x24\xd5\x93\x2c\x1b\x6f\x2a\xac\xcc\xf9\x52\xf9\xa8\xcc\xd5\xe4\x63\xd5\x29\xa3\x3c\x4e\xb2\x0c\xdb\x98\xc9\x7b\x23\xe5\x22\x51\x2e\xed\x1a\x48\xde\x48\x20\x4c\x91\xdd\x57\xb0\x87\xbd\x1d\xbd\xdd\xaa\xc0\x0b\xb9\x36\x83\x4b\xc1\x8b\xa8\xec\x19\x72\x35\x09\x04\x0e\x12\x6d\x21\x27\xb9\xe7\x92\xfe\x13\x5a\x20\xbd\x82\xc0\x38\xab\x28\x43\xc8\x8b\xfe\x2d\xe9\x38\xb3\x9a\xb9\xb6\x4b\x4c\xcd\x21\x02\x6a\x39\xf4\xe0\x3b\x27\x43\x9c\x5a\x0e\xec\x70\xfe\x32\x05\x61\x58\x31\x9d\xcf\x64\x55\xd3\xf9\x0c\xfc\x0e\xb5\x55\xa4\x3d\xf4\xca\x6e\xc9\x19\x9e\xf2\x27\xb2\x5a\x3a\x73\x92\x6b\xb7\xae\xb5\x00\xa5\x81\x3f\x2d\xe7\x2a\xac\xf2\xef\xcc\xed\x76\x52\x6a\x8b\x63\xf0\xc6\xa9\x6e\x83\x7b\x97\x97\x0a\xb4\x5f\xee\x1f\x7c\x3f\xfa\xe1\xef\xdf\x0f\x87\xc3\xd1\xf3\x17\x7f\xfb\xe1\x60\xb8\xff\xfc\xf9\xc1\xc1\xdd\xf3\x5e\xa7\x06\xfd\x6f\xf5\xf5\x6a\xef\xd2\x60\x0d\x53\xf6\xe0\xf9\xc1\x0f\x3f\x1c\xfc\xfd\xf9\xf0\x60\xf8\x7c\xff\xe0\xf9\xf3\x03\x28\x1c\xa2\x92\x6b\x7d\x0f\xda\xbb\xbc\xfc\xc7\x27\x57\xf4\xf9\x0f\x07\x3f\xfc\xfd\xe0\xc5\xdf\x5f\xbc\xd8\x7f\x7e\xa0\x0b\xb6\x61\xa6\x2b\x1d\xc2\xf2\xa1\x1e\xc2\xd2\x84\x1f\x36\x6e\x4e\x17\xbc\xb8\xf1\xfc\xe2\x8b\x22\xb8\x65\x62\xa5\x46\x16\x36\x2c\x03\x2b\x8f\xe6\x82\xdd\x82\xe3\x11\x48\x58\xf3\x4c\x1b\x57\xf6\xd6\xab\x34\x11\xb4\x67\x3d\x8d\x16\xd9\x6d\x23\xb6\xb2\x01\x74\x60\x2f\xe3\x2a\xf5\x10\xe4\x9e\x6d\xfb\x4d\xb2\x2e\x69\xfa\xfa\x01\xfa\xc0\xf2\x6b\x3f\xd3\xa8\x9e\x49\x3b\xde\x7b\x32\x8f\xa9\xe8\x4c\x49\xcc\x5b\xf2\x5e\xde\x32\x70\xd7\xf7\x0f\x4f\xfc\xae\xe3\x45\x4f\x6f\x67\x24\xdf\x6e\xa9\x92\x31\x9b\xa0\x23\x82\xe6\xc2\x08\x9f\x15\xf9\x63\x84\xcf\x69\x22\x12\x25\xbf\x94\x4f\x10\x60\xd3\x9f\x98\xf4\xa4\x48\x69\xe6\x6a\xbf\x9a\xd9\xc0\xd4\x2b\x65\x69\x16\xac\x04\x98\x8d\xfa\x29\xd3\x6b\x57\x80\x1b\x5a\xc6\x45\xfa\x51\xca\x51\x1f\x25\x79\xe0\x57\xb3\x62\xb7\x85\x30\x96\x7c\xfe\x87\x92\xfe\xb9\xa6\xf9\x9c\x92\xfd\x11\x66\x41\x14\x08\xd3\x1b\x6e\x2c\xe0\x62\x4e\x25\x06\x96\xec\x8e\xac\x21\xf2\xfa\xc7\x5c\x14\x92\xa7\x97\x6f\xaf\xf8\x86\xf5\xdb\x2b\xfa\xfd\xa8\x78\x2a\xcf\x76\x3b\x54\x52\x1a\xdd\x7b\xf4\xdf\x58\x71\x59\x7b\x4f\xdf\x9d\x28\x59\x8f\xdd\xca\xfd\x7e\xb4\x57\x3c\x39\x82\xed\xb6\xed\x7b\xa3\x15\x64\x5c\x81\xcb\xd5\xca\x63\xc5\xf5\xd8\xf5\x0e\x31\x7f\x7d\x25\x73\xef\x45\x4b\x6c\xfc\x24\x43\x94\x24\x46\x1e\xee\xad\xb8\x9f\x6f\x9a\xec\x8f\x66\xda\xd9\x60\x28\x25\x4c\x0e\x07\x83\xd2\x06\x16\xf6\x8b\x94\x4a\x04\x9e\xc5\xac\xd4\x0e\x66\x52\xed\x33\xb7\xb9\x89\x32\x55\xb0\x0a\x77\x11\x35\x81\x05\xce\x75\x8a\x89\x55\x65\x76\x53\x6e\xce\x41\x14\x21\xf2\x2a\x04\x36\x93\xc6\x56\xdb\x1b\xe1\x9b\x80\x54\x48\x54\xce\xee\x7e\x57\xe5\xe8\x21\x34\xf6\x4b\xa9\xaa\xf7\x86\x9a\x69\x89\xd5\x8d\x17\x25\xaf\x1a\x55\x7b\x27\x37\x16\xb6\x81\xb7\x2c\xb5\x71\xe9\x65\x05\x48\xb6\xaf\x86\xdc\x85\x5e\xf6\x90\x1f\x96\xa8\xed\x8c\xa8\x2e\x68\xc8\x81\xbc\x33\x5b\x89\x25\xad\x87\x0c\xf2\x6b\x89\xbd\xef\xfa\xaa\x2e\xd0\xdb\xf1\xb3\xba\xcf\x26\x2c\xcf\xee\xbc\x7e\x86\x0a\x26\x30\xb2\x0a\x85\x2a\x00\x8b\xbd\x6b\x93\x2c\xed\x83\x3f\x35\x3a\x6e\x73\xf8\xe7\x69\xd0\x0a\x7d\x03\x2a\xd1\x09\xa6\x0a\xab\xf8\x09\x1e\x22\x19\xfa\xc0\x52\xfd\xfd\xc2\xb2\x4c\xf9\x3f\x88\xcc\x11\xf6\x3f\xbf\x65\x69\xf8\xb5\x72\x1d\xde\x84\x5b\x67\xbb\x8d\xe6\x41\xbf\x83\x6d\x59\x07\x8d\x92\xd8\x74\x6b\xde\xbd\x4b\x4a\xb3\xb1\x7a\x26\x52\xb5\x09\xf1\xa1\x20\xbd\xbb\x97\xf2\xd3\x22\xef\x2d\x5e\x71\x5a\x67\x1e\xfd\x01\x01\xf2\x40\x0d\xec\x3a\xac\x63\xd7\x51\x30\x0d\x09\xa4\x7a\xd0\x4b\x2f\x40\xc5\x69\xca\xb8\xdc\xc6\xb4\xb1\x94\x5f\x99\x66\x49\x31\xf1\x07\x33\x81\x7a\x3b\xe8\xe5\x6f\x3f\x13\x12\xfe\xca\x21\xfa\xc3\x85\x0b\x58\x2f\x66\x88\x99\x1a\x0f\x94\x9a\x88\x6d\x51\xf8\x01\x61\x5a\xe9\x0f\x34\xdc\xaf\x8e\xa2\x50\x0b\x56\x95\x10\xda\x0c\xe6\x24\x50\xc3\x09\xe2\x0a\x41\x7a\x65\x93\x54\xee\x38\x8e\x39\xda\x34\xd9\x03\xe5\x2e\x12\xcb\x5c\xe1\x3c\xe9\xf2\x60\x00\x64\xce\xae\x0f\x74\x8d\xd8\xbf\x41\xe2\x0c\x46\x48\x2b\x50\x54\x8b\x22\xcb\x8a\xbb\x33\xbd\x32\x65\x18\x6f\x45\xb5\xd3\xd9\x7d\x96\x1d\x2b\xe9\xeb\xf1\xd4\x37\xc0\xa4\x99\x14\x37\xda\x1d\x37\x81\x1d\xaa\x10\xaa\x8c\xbb\x38\xa7\xb3\xe6\x41\xd6\xc8\x1c\x96\x6e\x6f\x10\x1c\x9e\x41\x0f\xf5\x2a\xc9\x85\x51\xb4\x79\xea\x8c\x51\x9f\x49\xbb\xf4\x16\x77\x1e\x51\x53\x82\xba\xec\x3d\xe3\x2f\x5f\x1d\xbd\xb8\xa7\xbc\xdf\xb3\xca\x57\x8c\xdb\xe9\x42\x54\xb2\xe7\x3e\xff\xf6\x20\xf7\x9b\x4f\x4e\x56\xad\x42\x98\x07\xd8\xe8\xc7\x00\xe7\x7e\xa1\xc9\x97\xc0\xe3\xea\xbd\x64\xac\xd4\x6d\xd3\xde\xc8\x5b\x83\x9b\x64\x15\x45\x92\x78\x26\xaf\xe4\x8a\x82\xd6\xd9\x38\x31\xa2\xcc\x52\x3d\x80\x4d\xf0\x38\xc3\x5a\x4f\x7a\xbc\xc6\x30\xe4\xf1\xbc\x22\xa0\x76\x7e\x0c\x0e\xc3\x19\xea\xf7\xb5\x52\x76\x4a\x8e\x41\x6f\x87\x21\xbc\x24\xa7\x51\x5a\xf3\xbc\xad\xd8\xf0\xcd\x35\x15\xdd\x1b\x2a\x12\x49\x4a\x3a\x15\xa9\xf3\x08\x34\xe8\x25\xae\xd6\x52\x11\x56\x1e\x2b\x4f\x93\x57\x19\x8d\x24\x3f\xc8\x6b\xe2\x91\xa8\x67\xaa\xe9\x59\x19\x44\xa8\x94\x08\xd6\x4a\xd6\x31\x50\x05\x22\x38\x73\xc6\x83\x6f\x10\xd5\x24\x9a\xe3\x14\xe1\xb5\x05\x02\xc7\xe0\x79\x9c\xe1\x25\xc2\x4b\xe0\x9d\x16\x64\xb3\x60\x3a\x5c\x9e\x1a\x0d\x66\x64\x3a\xeb\x3c\xf7\xe4\x02\xfd\x7e\xc4\x08\x35\xa1\x0e\x8f\xb5\x0f\x75\x4f\xb1\xb1\x20\xc3\x43\xc3\x75\xbf\x2a\xe0\xda\x18\xb4\x9e\x74\xd6\x69\x21\x11\xac\xe2\x68\x25\x20\x28\x30\x73\x3a\x50\x15\x96\x93\x27\x17\xcb\x4d\x5c\xa2\x12\xdd\x8a\xb9\x4f\x99\xfa\xd4\x36\xd9\x4c\x6d\x5f\x64\x0b\x4b\x20\x61\x2e\x7f\xe9\xb4\xd8\x1f\xd9\x0b\x0c\x1b\xc9\x4f\x28\xb7\xe8\xaa\xa3\x42\x17\x05\xd9\xac\x5f\x72\xf0\xad\x25\xb3\x62\x9e\x64\x1f\xd5\x58\x3c\xa8\x22\x47\x67\x6e\x3f\x3d\x5d\x66\x3a\x75\xd1\x06\x66\xde\x90\xbd\xe1\x96\x2a\xd9\x23\x44\xdd\x37\x5e\x55\x16\xb6\xf7\xfb\xd1\x82\x9c\x46\x0b\xbc\x46\x08\x9b\x45\x5e\x20\xbc\xa8\x3c\x1e\xfa\xb4\xb1\x67\x13\x21\x38\xbb\x5a\x0b\xda\x5a\x6d\xeb\xae\xa5\x48\x32\x59\xf5\x5d\xeb\x2a\xea\xa1\xc9\xd3\x1b\x96\xca\x0d\x3b\x0e\x52\x65\x52\xa0\xd4\x18\xc4\x6a\xdc\x73\xb1\x17\xe1\xba\x12\x42\x40\x59\xf9\xf0\x89\xde\x09\x93\x5d\x1f\x22\x04\xfa\x9c\x95\xe2\xb8\x2f\x1a\x1c\xb7\x8b\x07\x74\x09\xfb\xe7\x53\x0b\x7b\xa7\xbe\x10\x5f\x2f\xd4\xe7\x3d\x3d\x42\xdc\x92\x06\x20\xfa\x15\x5e\xee\x8f\x4a\x61\xaa\xc6\x8b\xe6\x26\x54\xdf\x8a\x17\x73\x5a\x2a\x7d\x91\x28\x87\x20\xa8\xc0\x82\x7a\x93\xd1\x4e\xbe\x1a\x9b\x0f\x54\x95\xda\x06\x97\xd6\x51\xb6\xea\x2d\xa8\xa9\x99\x92\x3e\x19\xba\xa3\x5e\x7f\x36\x90\xa2\x7a\x85\xe6\x05\x20\xa8\xcc\xbb\x82\x03\x81\xa4\x74\x1a\x55\x06\xcb\x2d\xf0\x75\xfe\x9a\x2e\x0a\x4e\x61\x10\x3f\x15\xc5\x97\xa8\x99\xa9\x5e\x0d\xd8\x7d\xd5\x33\xd9\x89\xb0\xe5\xbf\xda\x0b\xea\x3a\x71\xb4\x10\x94\x7b\x7d\xc0\xb4\x9e\xe9\x8a\xce\x8b\x1b\x6a\xd6\x4f\xe5\xa8\x6a\x89\x81\x98\x50\xe3\x53\x33\xd7\x02\x75\x6c\x1c\xb6\x52\x24\xe5\xf2\xcc\x97\x20\xa8\xa8\x34\x54\xb2\x16\xf2\x07\xe4\x0c\xf2\x61\x6a\x37\xc9\x8c\xe4\x36\x5e\x97\x0d\x4b\xaa\x96\xb4\xb3\x17\xf5\xf4\x63\x8f\xa9\xb5\x44\xfd\x3e\xdb\x6e\x23\x4e\x84\xb9\xde\xd4\x10\x48\x7e\xd3\xba\x6f\x27\x4d\xf4\x2f\x1b\xaa\xef\x45\x9c\x7b\x7b\xd1\x0b\x99\x60\x8f\x5a\xd1\xef\x2b\x50\x92\xe0\x02\xe1\xa4\x52\xf7\x9c\x10\xe5\x60\x4e\x53\xea\xc2\x47\x69\x70\x61\x2c\xfc\xa8\xe9\x7f\x7d\x38\x4e\xef\x39\xb9\xa1\x86\x16\x95\xcf\xdb\x6d\x7d\x9c\xfd\xfe\x9e\x89\x79\x54\x87\x35\x2b\x2d\xa7\xef\xf7\xf7\x5a\xa2\x08\xec\x11\xab\x59\xaa\xee\x60\xfd\xfe\x05\x97\x0d\x14\x81\x20\xbc\x56\x3d\x47\xfd\xbe\x27\xd3\x74\x55\x99\x4a\xaa\xc8\x3b\x53\x98\xea\x07\x38\xb0\x4a\xcb\x2a\xaa\x41\x2f\xe2\x81\x90\x89\xf7\xac\x2e\x6a\x16\x54\xcc\x97\xea\xd4\x43\x38\x76\x5d\x07\x0d\x60\x12\xa1\xae\x7a\x7d\x22\x1b\x9a\xd8\xde\x37\x3d\x71\x7e\xd5\xb8\x99\xcb\xb5\x66\xaa\xa4\xad\x80\x90\x2a\xb2\x52\xce\x30\xc8\xf9\xe1\xca\xa5\xb8\x76\x6a\x7e\xea\x52\x40\xa0\x4a\x49\x18\xcf\xcc\x00\x9c\x01\xa7\x71\x80\x0d\xe2\x8f\xda\x86\x34\x03\x6c\x81\x18\x56\x8f\xd6\x31\xb2\x8a\x01\x90\x5d\x30\xbc\xc4\xde\x10\xf7\xee\x58\x96\xe9\x63\x07\xa5\x7b\xd8\xaf\xdc\xe7\x21\x3c\x4c\xe2\x12\xe3\x2b\xd7\xb0\x32\xdf\x68\xfd\x24\x89\x1e\x7c\x17\x09\x65\xe2\x01\xc0\x0a\xb7\xc0\x4e\x54\x35\xe1\x8e\x05\x20\x2a\x04\xbb\x9d\x82\x80\xd3\xd8\x05\x3d\x5a\x7a\xdc\x3e\x8c\xc4\x36\x0a\xba\x76\xad\x5f\x14\x80\xc3\x39\xb9\x8b\x18\xc9\x91\xa2\x62\x58\xcb\x38\x72\x0f\x10\xd3\x9a\x58\x54\x52\x74\x55\x13\xfc\xee\x46\x28\x34\xb2\x70\xbd\xc5\x94\x40\xc7\x95\x41\xd5\x8e\x19\xd8\xd4\xdb\x27\xf5\x04\x05\x57\xeb\xbd\xf4\x60\xac\xa8\xfc\xd3\xd0\x64\xf9\x94\x23\x0c\x6b\xba\xab\x04\x72\xc1\x01\x0b\x10\x34\x45\x55\x3d\x21\x38\x8e\xc1\x01\x6a\x99\x0e\x1b\x48\x47\x32\xba\xa8\xdf\x6f\xd3\xb1\x6d\x0b\xb9\x00\x73\x38\x69\xe2\x67\xd2\x48\x09\x91\x5c\x78\x32\xfd\x03\x61\x64\x15\x63\x0d\x9b\xc2\x9c\x63\xdf\x74\xbb\xaa\xda\xee\xe7\x2f\xf4\x5d\xc6\x49\x17\xbc\xe8\xa7\x3b\x68\x2c\x75\xaf\x51\x4a\xe4\x11\x85\x81\x94\x35\x2d\x95\x37\x49\x29\x4d\x7d\x19\x6c\x52\xb4\x52\x2f\x20\xc3\x0f\x17\x5e\x9e\xcf\xa7\xf6\x82\x4f\x35\xb5\x9d\x60\x50\xa4\xd0\x04\xe3\xa7\xaf\x0d\xeb\xc9\x41\xd9\x3b\x03\x3d\xc6\x80\xac\xf3\x74\x9b\xd5\x77\x49\x48\xd0\xe9\xd5\xac\xdf\x8f\xca\x48\xd4\x0a\x4b\x16\x2a\x30\x3b\x98\x5e\x69\x7d\x12\xff\xa4\x5b\xab\x32\xcb\x1a\xc4\x29\xb5\xc4\xca\x84\x91\xe0\x1d\x80\xc1\x18\x3c\x47\x00\xcc\x90\x9f\x6f\x3c\x28\xc1\xfa\xfd\x3b\xe0\x86\x23\x53\x6d\xdb\x7c\x31\x3b\x59\x47\x4f\x4f\x56\x30\x55\x28\x5c\xdc\x1c\x87\x74\x15\xaf\x9f\xce\x73\xfb\x45\x82\xd8\x16\xf2\xb8\x05\x22\x72\x85\xaf\x6a\x09\x21\xe6\x52\xa3\x60\xf9\xb5\xb1\x3e\x4d\xbb\x30\x05\x3d\x84\xa1\xb7\xb1\xd7\x54\x48\x62\xdf\x26\x7c\xe3\x49\x15\x84\x95\x2a\xf0\x0a\xfa\xd0\xa1\x10\xea\x88\x9b\x55\xda\x80\x2c\x20\xf5\xe2\x91\xe5\x53\x31\x1d\xce\x66\x92\x0f\xb0\x37\x33\x6e\x06\x82\x7b\x1e\x97\xac\x18\x69\xe5\xe3\x01\xab\x88\x8c\xad\x18\xc2\x03\xff\xb6\x30\x6a\x00\x29\x8f\x92\x35\xb5\x8d\xea\x3a\x01\xa0\xc0\x6b\xd5\xff\x9e\x5d\xb2\xd4\x84\x2b\x62\x68\x92\x4f\x99\x0a\x85\x39\x56\x4f\x38\xaf\xcc\x76\x78\x53\xdf\x04\x64\x53\xf9\x46\xf2\xb5\xcb\x38\x53\xec\x4b\x50\xcc\x2f\x10\x5e\xa2\xfd\xd9\xbc\x05\x74\xe7\xae\xd2\x72\xbb\x0f\xc9\x95\x7f\xda\x7a\x3d\x73\x30\x96\x51\xad\x5e\xdc\xa2\x26\xd2\xeb\x29\x2b\x87\x48\x0c\x88\x64\xdd\xb1\x18\x10\x45\xbe\xe2\xbd\x61\xa5\xee\x1d\xfe\x0a\x46\xca\x7f\x85\xfb\x68\x14\x82\x28\xef\x74\xea\x13\xde\x6c\x95\x92\x57\x51\x3e\xa5\x1a\x36\x51\x8f\x59\xc3\x7b\x43\x09\xaa\x6b\x77\xb5\x9e\xd1\x18\x2e\x88\x25\x4c\x5b\x90\xae\xc7\xae\xfa\x73\xd1\x3b\x17\x09\x17\x9e\x64\xbd\x67\x70\x73\x86\x77\x15\xd1\x30\x59\x91\x8b\x32\x7f\x5d\x1a\x4a\xcd\x60\x99\x3f\xb6\x84\x84\xbd\x7f\x65\x35\x2d\x27\xb9\x15\x7d\x8c\xc3\x3c\x6d\xe3\x01\xe9\x28\xd8\x15\x46\x14\xb3\xe0\xfa\x4c\xcb\x7f\x95\x50\xa9\x42\x6d\x9d\xd7\x17\x43\xca\xfd\x2f\xf2\x6c\x7a\x3d\xf1\x51\x2b\xc9\xa2\xbc\x37\x78\x35\x81\xa3\xbf\x2e\x5b\x74\x15\x2b\xd4\x35\x31\x2d\x77\xcc\x88\x51\xcb\x05\xbd\xf4\xfa\x70\x40\x67\xaf\xde\x80\xee\x6a\x62\xee\xb0\x42\xaf\x0d\x4a\xc7\x25\x18\x7f\x38\x77\x33\x0f\x7d\x82\xbe\xef\xee\xac\x83\x81\x3c\xab\x7b\x4a\x1e\xb4\x51\x0c\x49\x5e\x11\xda\x71\xe1\xfd\xfb\xfd\x3c\x36\x37\x18\xfe\x73\x64\x19\x3c\x2c\xac\x6a\x47\x12\x85\x9b\xa8\x3e\xb2\xfa\x0e\xf2\x15\xba\x3c\xfb\xf8\x60\xaf\x93\x60\xac\x66\xe7\xb0\xf1\x93\x33\x60\xd6\x2f\xc1\x42\xf7\xa8\x6c\xef\xd1\x27\x49\xbf\xd1\x54\xf6\x45\x52\x36\xf5\x6b\xa1\x2f\x9a\xae\x39\x7b\x42\x62\xa4\xae\xd5\x03\x46\x46\x8b\x7c\xee\x12\x7b\x7b\xc4\x3d\xdb\x37\x92\x87\x4d\x29\x85\xc6\x33\xdd\xd4\x1f\x16\x7d\x36\x20\x27\xb8\x1c\x9a\xce\x30\x93\x90\xce\x23\xa4\x6c\x74\xd4\xe6\xbd\x96\x2f\xc0\x0a\xa4\x51\xfe\xfd\x30\x0f\xb0\xb0\xa5\xc2\x7c\xd0\xca\x2a\x88\x2d\x78\x51\x40\xb5\xbe\x6a\x6d\x16\x79\x64\x95\xb1\x28\x0e\xea\x43\x68\x0a\x4a\xee\xc1\x65\x97\xd5\x27\xf5\xad\xbe\x22\x0e\xe6\x20\x8c\xe4\x53\x07\x1a\xac\xe2\x7d\x40\x8a\xeb\xee\xe8\x21\x94\x11\x05\xea\x12\x2e\xbb\xaa\xe6\x37\x4b\xa6\x81\xb8\x04\x27\x38\x03\x21\xc9\x17\xbc\x0e\x08\x41\x7b\x79\x84\x40\x77\xd7\xe9\x14\x36\xe6\x0c\xf4\xef\x0a\x32\x04\xe8\x66\x2c\xa5\xe0\xba\xbe\x50\xb1\xa3\x0b\xdb\x6d\x23\x00\xf1\x8b\x87\xdc\x30\xda\xcc\x49\xd1\x81\xdb\xfb\x4a\xd5\x2b\x5c\x04\xda\xe2\x15\x19\x1e\xee\xef\x17\xe6\x2a\x42\x56\x8d\x97\xc4\x19\xfe\x2d\x08\xf5\x8f\x42\x31\xc3\x2b\xe0\x4b\x41\x41\x8c\xa4\x4a\x47\xdd\xfa\x2b\x98\x14\xaf\xc8\x5c\x51\xf9\x4a\xed\x13\x16\x58\x77\x4b\xd6\x10\x2d\xb1\x2e\x83\xd7\x78\xa1\x35\x49\xaf\xa9\xf0\xb2\xbc\x2b\xb8\xd6\x08\xd7\x6a\xd8\x61\x19\xcc\x71\xa1\xcb\x7d\x53\x13\x72\x5d\x56\x64\x55\x17\xc2\xc1\x79\x5d\x59\x1a\x5d\x6b\xc6\x2f\xfa\xfd\x85\x95\x25\xd5\x07\xe7\x71\xc4\x36\x53\xbf\xbf\xf2\x44\x51\x37\xfd\x7e\xb4\x32\x04\x02\xd4\x65\x08\x6b\x97\xeb\x46\x2b\x94\x2d\x0e\x23\x39\x59\xdb\xed\x2a\xae\x4b\xbd\x16\xe0\x3c\x61\x4e\x4e\x12\xb1\x8c\x6f\x58\x1e\x15\x78\x8e\xf0\x2d\x59\x21\x9c\xf7\xfb\x7b\xac\xdf\x8f\x6e\xc9\x6d\xeb\x88\x6e\xed\x88\x10\xce\x7c\xc8\xb6\xce\xcb\x25\x5b\x88\xe8\x16\x02\x5c\xaf\x5d\xec\xea\x86\xa9\xc3\x49\xc1\x69\x57\xd7\x62\x63\x2c\xde\x51\x4e\xad\xbb\xa7\x65\x02\x7e\xa0\x38\xed\x26\x9c\x76\x53\xb5\x58\x5d\x63\xe2\xd7\x5d\x14\x1c\xbc\xc5\x28\x88\xdf\xed\x0d\x9c\xe0\x2f\xd7\x72\x23\xa6\x22\x42\x26\x82\xbe\xd1\x5a\xea\x91\xdf\x5b\x39\xdc\x32\xca\x9a\xda\x31\x5e\x82\x24\x5f\x10\xce\xaa\x96\xaa\x5a\x1d\xb5\x78\xd1\x90\x07\x03\xae\x54\x54\xa7\xdc\x47\x67\xc8\x5d\xea\x31\x73\xa9\x57\xe8\xdb\xbb\xc4\xbf\xdc\x2b\x2b\x15\xa9\x19\x74\x87\xe5\xcc\x7d\x0a\xc4\xa1\x0c\x97\xb8\xc0\x89\x84\xf9\x5f\xdb\xd9\x01\xe7\x0a\x2a\x3e\xa0\x63\xec\x45\x16\x07\x72\x3e\x21\x7c\xca\x1d\xc8\x42\x01\x8d\xbd\xe3\x14\x18\x34\xd2\xd1\xe1\xb3\x95\x3e\x2d\x5b\x44\x80\x74\x01\x5a\x7b\xb1\xf3\x73\x65\xf2\xda\x0e\xe7\x43\x6f\x02\x25\xd9\x91\x2d\x84\x13\x9d\x84\x94\xfd\xbe\x05\x7e\x95\xe7\x6b\xeb\x28\x98\x2e\xd9\xd1\x04\x55\x5f\x19\xc6\xc6\x59\x93\x4a\xf4\x64\x61\x18\x4e\xc8\x74\x76\x58\xec\xef\x1f\x1a\xf7\x5e\x79\xbf\x4f\xc1\x17\x90\x1c\xa3\x1c\xab\x47\xee\x66\xe1\x44\x4a\x00\x2d\xbb\x9a\x46\x19\x9a\xb0\xe9\x5a\x29\x35\xab\xf9\x1a\x37\xc4\xc2\x6b\x9d\xa7\x9c\xae\x67\xe3\x44\x19\x69\xad\xe1\x38\x25\xbb\x8f\xd3\xef\xbf\x16\xeb\x6e\xca\xd2\xfc\xaf\xce\xf7\x10\xcd\x8b\xf5\xf5\xb2\xab\x94\x12\x9e\x81\x93\x58\x36\x57\x17\x73\x54\x50\x5e\x76\x45\xd1\x2d\x13\xc1\xca\xc5\x43\x37\xc9\xb2\x6e\xb1\x80\xf3\xd4\x7a\xd0\x94\xd5\xed\x77\x1b\x5a\xc5\xdd\x13\x56\x96\xc0\x65\xaa\xbd\xdb\xfd\x7d\x90\xb8\x93\xd7\xd8\xa6\x72\x66\x25\x5f\x2d\x67\xed\xed\xff\x9d\xf9\xc1\xe7\xdc\x62\xdc\xf4\xf3\xd9\x87\x63\x15\x05\x03\x32\xf8\x16\x08\xb5\x6c\xff\x9f\xb6\x3f\xd0\xf4\xd2\xc7\xa7\xe8\x25\x47\x23\x19\x51\xc3\x9a\x67\x96\x06\xda\x45\x2e\xd5\x68\x1d\x6b\x69\x80\x73\x4d\x35\xb0\x5d\xb4\x8c\x7d\xb4\x9a\x34\xda\x66\xcd\xdb\x75\x6f\xbd\x6f\xea\xf6\x66\x6f\x84\x13\xab\x93\xd3\x09\x8d\x1c\x24\x10\x04\x85\x89\x3c\x81\x30\x31\xec\x2a\xa3\xaf\x1f\x3e\x9f\x7d\x08\x6a\x4c\xbc\x58\xd7\xf2\x18\x0a\x32\xc4\xdc\x5a\xce\x1e\x8a\x97\xfc\x70\x30\x10\xc6\x38\x89\x4d\x85\x32\x5f\x33\x24\x44\x4a\xa6\x2a\xaa\x7d\x2b\x79\xa6\xa5\x9b\x73\x89\xf2\xd2\x6f\xa1\xe2\xe6\x68\x2a\x94\x3e\x63\xa9\x86\xb8\x6c\x81\xc1\x73\x9c\xe2\xb5\xc5\xbe\x0b\xb2\x54\x1f\x3a\x8b\x49\x16\x2d\xd0\x78\x19\x8a\x36\x97\x2d\x72\xcd\xcc\x98\x25\x06\x70\x4d\xcc\x3a\xc5\x76\xbb\x6c\xa0\xec\x15\x9a\x44\x85\x56\xbc\xf7\x73\x93\x25\x1a\xd7\x93\x56\xd6\xcc\x2d\x0a\x15\x40\x59\x60\x83\x8e\x73\x4f\x8d\xe6\xbd\xbd\x7f\xa2\x4e\x0f\xdf\x4a\x50\xec\x0d\xd2\x6e\x33\x05\x40\x7a\x1a\xe7\xed\xbe\x78\xb2\xed\x7d\xf0\xee\xbb\xfa\x7d\x77\xdf\x35\xec\xe8\x24\xb1\xdd\x06\x1f\x46\x61\xc0\x6c\x6d\xfd\x8e\xf3\x20\x41\x09\x7f\xb8\x1b\x41\xbe\x73\x04\x8c\x0c\x71\xe1\x2c\x4f\xd8\xcb\xe2\x70\x30\x60\xc6\x16\x9e\x6b\x13\x79\x3a\x4d\xd4\x68\x12\x37\x9a\xca\x8e\x46\xe6\x7d\x47\xe0\x20\x87\x87\xd7\x5c\x42\x65\x49\x29\x5a\x14\xbd\x35\x23\xe5\x73\x37\x45\x96\x36\x59\x9e\x1d\x4a\x79\x9a\xdf\xd1\xc1\xcd\x9c\x50\x29\xb8\xee\xd7\x46\x0c\x7e\xeb\x2d\xa5\x8d\xf2\xac\xd1\x9f\xcf\x8a\x6b\xcb\x0b\xda\xd3\x01\xdb\x3f\xb7\xce\xcd\xf5\xd7\x92\x8a\x08\x55\xa0\x51\x63\xe4\x5b\xee\x3c\x41\x32\x8e\x76\xba\xb6\xb3\x28\x12\xe7\x64\x6f\x78\xc8\x5f\x91\x61\xbf\x9f\x1f\xee\xef\x73\x27\xad\xe3\x33\x5c\x10\x66\xd9\x27\xaa\x9c\x8d\xe2\x4d\x52\x8e\x8b\x4a\xae\xbc\x32\xbd\x66\xe0\xdf\x64\xbb\xed\x05\x2f\xca\xf2\xdc\xb7\xb0\xdf\xff\x1e\x55\x15\x42\x95\x85\x08\xf5\xfb\x8e\x16\xa0\x41\x51\xe5\x9d\x18\xb7\x10\x8e\x6a\xb0\x56\x0e\x8c\x7b\x2a\xfd\x4e\x9f\x34\xc7\x14\xe1\x3d\xa1\x45\x99\xf5\x05\x0d\xe8\xac\xfa\x47\x2d\x25\x73\x9a\xb2\x3b\x74\x63\x59\xd3\xea\x61\x88\x79\xc0\xff\xea\x2e\xe6\x20\x24\x75\xdd\x34\x7d\xf4\x29\xe3\x1a\xc4\x40\x98\xed\x50\x24\x17\xc5\x99\x0e\x45\x02\x05\x23\x86\x73\xff\x52\xc6\x53\x05\x65\x9e\x90\x88\xb0\x9a\x12\x32\x79\x15\xb1\x40\xbb\x56\x6d\x5f\x75\x87\xf3\xf9\xec\x43\xc4\x2c\xf2\x4b\x59\xea\x2d\x41\xfb\x21\x30\x9e\x5b\x0b\xdb\x29\x7f\x70\x46\x5d\xbb\xae\xf5\xcb\x10\xc2\xfa\x42\xab\xa6\x06\x3e\x2f\x6e\x56\x19\x05\x71\x0f\x66\x55\x8b\xaa\xaa\x72\x9a\xca\x1f\x82\xbd\x74\x4d\xc5\x45\x7b\x56\xe7\x19\xc9\xa3\x9b\xf4\xf2\x52\xb3\xc0\x46\x19\x1a\x9c\x5f\x18\x94\x6c\xe5\xbf\xb2\xc4\x47\x43\xaa\x60\x1e\xba\x1c\xf9\x48\xef\x14\xde\x57\xa0\x50\x7b\xe2\xb4\x72\x78\xae\xe5\xf8\xf7\x11\xf7\xe7\x25\xd8\x2d\x8e\xa4\xf3\xc5\x18\xae\x27\x47\x79\xfa\xa1\x48\xd2\x5d\x1d\xca\xbf\xa5\x43\x76\xe7\x37\x64\x8a\xbf\x7f\x3e\xfb\x00\xe4\x26\x28\x4b\xe7\x85\xe8\x3a\x9a\xee\x77\xd4\x3c\x13\x02\xe7\xcd\x03\x61\x6f\x7d\xf5\x2d\xe9\x7d\xb8\xc7\xe5\x96\x96\x7b\xa1\x5d\x8b\x0d\x55\x8d\xbe\xd3\x60\x89\x69\x1c\x50\x58\x0e\xa2\x83\xf8\x66\xae\x9d\xd1\xf9\x1a\x14\xc0\xa8\xed\xd8\x11\x56\x29\x47\xfb\xd3\xa9\x83\x01\xcc\x48\x3e\x69\xfd\x32\xbd\x9d\x8d\xbd\xc6\x0b\x52\xeb\x18\xc3\x02\xe1\x84\x2c\xa2\x00\x42\xe0\x22\x5c\x6c\xb6\x88\xde\x47\x45\x30\x3d\xde\x0b\x02\x10\x67\x5d\x1b\xd7\x99\x64\xef\x3c\x26\x9a\xcd\x34\x93\xda\x62\x8c\x35\xc4\x65\xf5\x14\xc4\xdb\x6e\x77\x02\x3b\xc9\x05\x09\x6b\x4a\xf2\x35\x90\xd8\x0a\xa0\x32\x2b\x69\x04\x8f\xf5\x6f\xb4\xd0\x2c\x2a\x76\x80\xad\x0c\xb5\x63\x61\xeb\x56\x85\x04\x67\xb7\xc0\x4f\xa1\x6e\x67\xa5\xff\x3f\x42\x68\x59\xe9\x82\x51\x43\x32\xcf\xa1\xde\xd0\x07\x95\xc9\x58\x05\xb9\x67\xd4\x42\xcd\x3c\xb1\x09\xfa\xfd\x88\xb7\x2c\x27\x6a\xc7\x04\xdc\x4e\x74\x7d\x16\x76\xa0\x41\x27\x96\xe7\x3b\x0a\x12\x8e\xb9\x67\x03\x53\x47\x21\x01\x7e\xf3\xf6\x24\xf7\xa1\xfa\x39\x15\x22\xa3\xbe\x39\x86\xae\xa6\x7b\xb7\xa4\xb9\x9f\xce\xca\xae\xa9\x2c\x95\x80\xdf\x48\x95\x54\x98\xce\xe3\x7b\x06\x81\x0e\xac\x80\xb6\xb0\x18\x6a\x17\x15\x50\xe0\x04\x61\x5e\xa5\x45\x48\x42\x28\x7f\x4e\x7b\x23\xa7\xb6\x2c\xa6\xc2\x93\x1e\x14\xfa\xbe\xd5\x8a\x05\x59\xbf\xcf\x1a\xca\x64\x81\xe5\x77\xbf\x0f\xf2\x57\x90\x30\x84\xd4\xbe\x55\xfb\xb5\xda\xf5\xb8\xf7\x59\x62\x59\xc9\xd1\x43\xce\xae\x51\x4b\xeb\xd8\xfb\x14\x58\xd0\x71\x52\x79\xde\x07\x3b\x8a\x8d\xfc\x43\x55\x91\x4c\x13\x4f\xd4\x0d\xb7\x8a\xfa\x18\x4c\x67\xb8\x50\x42\xa1\x9a\x8b\x9c\x21\x9a\x44\xa6\x03\x47\x42\xd0\x9b\x15\x74\x41\xc2\x7d\x6f\x0d\x44\x01\x97\x91\x9a\x69\xb5\xe8\x05\x8d\xdb\xca\xee\x2c\xf7\x47\x0d\xb3\x0a\xf0\x4e\x14\x40\x89\x26\x54\xce\xc1\xc6\xa2\xb9\x9b\x2c\xaa\xdf\x61\x67\x60\xe4\x7c\x20\x53\x81\x0b\xf8\xb2\x5b\xe4\xdd\x14\xe2\x62\x40\xc4\x11\x25\x4d\x39\x34\xbb\x2b\xec\xba\x71\x47\x9d\x13\xe1\x1b\xe6\x85\x37\xe8\x3e\xe0\x12\x18\xa4\x0c\xce\xaa\xcd\x43\x45\xfe\x65\x73\x3b\xa5\xd4\xbc\xce\xbb\x04\x95\xf8\x71\x83\x02\x53\xfa\x9f\x4d\xd3\xa1\x27\xd9\x93\x86\x9d\x4b\x4b\x0f\xf6\x86\xb8\x17\x10\x75\x3d\x3c\x9d\xfd\xf3\xc4\x1e\xc5\xe2\x5b\x88\x3d\x8a\xb0\xde\x42\xfe\xe2\x5d\x9c\x1d\x7d\x3c\x7f\x7f\xf1\xfe\xf4\x63\xf7\xcd\xe9\xc9\xa7\x0f\xc7\x17\xc7\x60\x29\x12\x5c\xe5\x68\xed\x7c\x85\xe2\x13\xc5\xbe\x46\x89\x6f\x1e\xc2\x3c\x63\xf7\xc0\xb0\xa7\x13\xaa\xfb\xe9\x40\xae\x89\x44\x1c\xd3\xa2\xd1\x04\xa6\xc6\x60\xaa\x52\x82\x92\xa4\xaa\xc2\xc5\xf7\x49\x07\xa7\x90\xb7\x4a\xb8\x80\x19\x83\x49\x2a\x7d\xda\x44\x5b\x67\x2a\x84\x52\xc4\xf4\x9e\x09\x9a\xfa\x78\x85\x0f\x06\x48\x45\xa7\x88\x98\xcd\x20\x51\x86\xea\x92\xbd\x30\xf5\xa1\x91\x07\x9a\xdc\xa5\xd0\x99\xe4\x0d\x25\xa4\x0a\x53\xe4\xb8\x7d\x55\x40\x06\x4d\xc8\x7c\xf2\x3f\x12\xd6\x6d\x58\xc8\x10\x7b\x90\xc7\xe3\x9d\xa9\x2f\x2a\x6e\xb2\xc2\x45\xbc\xce\x35\x07\x6c\x7d\xd8\xc8\x93\xeb\xcf\x00\xb0\xb0\xf5\x09\xb0\xbd\x83\x39\x80\x2c\x6e\x0a\xbc\x0b\x9a\x6f\x19\xee\x08\x8b\x70\xce\xd5\x91\x4a\xf5\x1a\xd6\x9b\x76\x7b\x55\xc7\x3e\x38\xe5\x9f\x55\x81\x48\x12\x6d\x61\x61\xc9\x1d\x37\x1b\xa0\xaa\xe0\x7f\xb3\x66\x5d\x0a\xaa\x1c\x3a\x1e\x25\x93\x6c\xbd\xdc\x7b\xde\xb4\x27\xbb\x64\x0f\x89\x7f\xf2\xb2\xca\x03\x44\xdf\xce\x87\xca\x03\x19\xb0\x99\x12\x0a\xb7\x23\x54\x05\x8a\x8d\xce\x7a\x9b\xb0\x43\x28\x47\x17\x0d\x50\x44\x43\x10\x11\x38\x4e\xb1\xf5\xf7\xf0\x54\x18\x37\x10\x58\xd7\x64\x1c\x5e\x18\x00\xb5\x5b\xc2\x82\xaa\xf6\xb9\x0e\x42\x65\x14\x06\xca\xc3\x1d\xac\xb9\x12\xf4\x94\x25\x94\x0b\x05\xee\xed\x39\xbd\x52\xfd\xbe\x7e\x88\x72\xb8\xaf\xcb\x1d\x06\xf0\xa4\xaa\x60\x0b\x56\xd8\x5b\xc1\x04\x7b\xd5\xe8\x44\x3b\x5c\x59\x63\x3d\x2d\x42\x7e\x09\x80\x3d\x32\x1b\x3c\x48\x5a\xff\xc9\xa6\x9d\xb0\x7c\x5d\x4a\x5e\x08\x17\x55\xdd\xf8\xa8\x98\x88\x9a\xfa\x67\x8b\x8c\xb4\x44\x63\xa0\xcf\xf7\x86\x55\x1d\xb2\x35\xe0\x1f\x6d\x68\xed\xb8\xd7\x92\x6c\xc2\xe3\x33\x9e\xce\xb0\x02\x70\xf0\xa4\x56\x4a\x3e\x5a\xb0\x21\x5f\xe0\xf8\x8f\xa7\xb3\x0a\x67\xc6\x53\x8a\x72\x58\x93\xb4\xba\x26\x5f\x93\x62\x9a\xcf\xf0\x9c\x24\xd3\x7c\xd6\x59\xf7\xfb\x6b\xad\x50\x41\xc8\x5c\x3d\x81\xd9\x83\xc4\x4b\x7c\x12\x95\xf6\xb4\xc2\x24\xcd\x11\x5e\xf7\xfb\xa5\x81\xcb\xe6\x3a\x75\x8d\xd0\x38\xdb\x6e\xd7\x66\x7d\xf6\x64\x5d\xfa\x79\x12\x81\x37\xe0\xb2\x0e\x57\x74\x7d\x68\x5c\x7a\x50\xd0\xdc\x26\xa9\x41\x98\x01\x60\xe6\x3c\xa7\x98\xb1\x34\xfa\x20\x47\xe5\xb1\x75\x30\x2b\xa4\xd1\xaa\x06\xb3\x58\x67\x88\x39\xbd\xa5\xbc\x84\x94\xaa\x46\x4c\x58\x4f\x82\xd6\x10\x17\xc4\xb6\x56\x42\xe8\xd3\x9e\x79\x45\x04\xd6\x97\xa6\x55\xa8\x59\x01\xf4\x31\x4e\x88\x4b\x3a\x4c\x94\xba\x81\xf5\x30\x99\x4f\x93\x59\x47\x52\xe8\x99\x95\xd5\xeb\x7b\xe0\xe6\x95\x04\x38\x5b\x54\x4a\xdc\xaa\x37\x45\xa8\xac\xda\xe6\xba\x63\xbb\x0d\x34\x5a\xb5\xcb\xc9\xba\x3c\xd1\xc8\x13\xc0\xb6\x13\xcf\x09\x7d\xca\xe3\x04\x4e\x89\xef\x34\x82\xf7\xfb\x7b\xf4\x49\x4f\x11\x78\x49\x68\x9d\x39\x0b\x1d\x4f\x70\xbc\xa8\xd7\xd9\x56\x65\xc3\xb9\x44\x67\xbe\xdd\xa6\xdb\xed\x72\xbb\x5d\x4c\xf4\x98\x20\x87\x5c\xc7\xb5\xbe\x25\x73\x2b\xbb\x46\x55\x55\xed\x04\xee\xf5\xf0\x46\xca\x4f\x90\xa8\x73\x33\x39\x52\x16\xf0\x84\x80\xc3\xd5\x7e\x5f\xc7\xcb\x92\x2f\x5a\xf8\x63\x2e\x7b\x42\xb0\x0e\xb0\x7c\x57\xeb\x12\x9e\x63\x86\xf9\x4c\x79\x77\xe6\x3b\xbc\xb0\xf8\xe6\xa0\xb0\xb3\x86\xb8\x74\xd7\x50\xc9\xcb\xf2\x70\x30\xb0\x5b\x8b\xc9\xad\x55\x4c\xb3\xf8\x0b\x7d\x98\x91\x4c\x07\x6a\xe1\xda\x5d\x53\x16\xeb\x16\x76\x35\x57\x2b\x68\x95\xd0\x8a\xaa\xce\x4e\xd7\x1d\x27\xd7\xe9\x7b\x35\x1b\x0b\x5e\xdc\x98\xfc\xfc\x49\xc2\xd8\xe0\xaf\xfa\xe5\x44\xb0\x93\xab\xb0\xbe\x8d\xcf\x85\xd2\x7e\xdf\xd7\x20\xb0\x12\x45\x5c\xb7\x93\x6c\x6d\x07\x81\xe4\x4d\x7b\x70\x08\xce\xb3\x0a\x1c\x54\x55\xae\xdb\x5c\x5b\x48\x7f\xa5\x75\xd6\xda\x3a\x68\x97\xe3\x5c\xb6\x25\x0a\xe2\x82\x0e\x78\x2d\xed\x60\xe8\xeb\xb8\xc5\xdc\x6f\x36\x66\xbe\x06\x4c\x39\x19\x2a\x8f\x5d\x11\x23\x89\x24\xa7\xa2\x10\x2d\x4d\xf9\x0c\x49\x42\x51\x2b\x47\x14\x4a\x62\x03\x24\x5a\xe1\xab\x3d\x36\xb7\x77\x82\x8d\x8d\x50\xc0\x2c\x89\xd9\x0e\xd9\x95\xd0\xe9\x61\x89\x28\xc1\x01\x96\x04\xd5\x47\xb8\xc7\xf1\xa2\x8e\xf4\xfb\xcb\x76\x3e\xd2\x40\x78\x0f\xb2\x37\x94\x67\x85\x19\x6f\xc3\x12\x4f\xf8\xf6\x3e\x9a\xf2\x57\xff\x11\xd2\x8a\xc8\xbb\x2f\xc2\xb4\xe2\x21\xdc\x5e\x3f\x79\xf9\x55\xa9\xdb\x22\x40\x34\x56\x01\xfa\x09\x1f\xc1\x9a\xd7\x0c\xe4\x32\xc8\xb8\x93\x50\xb8\xc0\x31\xe8\x17\x85\xf5\x3f\xb7\xcb\x59\xc0\x24\xd2\xe8\xb7\xb5\x6a\x2b\x84\xd8\x1b\x21\x0d\x3e\xeb\x22\x21\x54\x01\x13\x71\x43\x53\x96\x08\x0f\x14\x37\xda\xee\xb6\x16\xc7\xca\x53\xd9\x82\x53\xe8\x83\x6f\x9f\xd1\x90\x2b\x73\x22\x26\xa2\x26\x43\xce\x09\x0f\x9c\x02\x59\x99\x11\xcc\x59\x3e\x1d\x5a\x06\xd5\x48\x61\x40\x13\x9b\xe5\xd7\xdd\xa4\xab\xdb\x0d\xd4\xb2\x8d\xc0\x3e\x60\xa3\x41\x4c\x54\xf8\x02\x1a\x86\x29\x36\x3a\xf1\x2d\x84\xf5\x76\x1b\xde\x50\x98\x03\xd9\x22\xbc\x29\x7c\x87\x21\x22\xc4\x83\xc2\xf7\x1a\x92\x58\xaf\x21\xbe\xcb\x90\xa4\xd2\xf9\x7f\x61\x62\x59\xbf\x22\xdc\xb1\x4f\x6c\x13\xee\xe6\xc0\x2e\x96\x93\xe3\x66\xf2\x50\xd6\x7d\x25\xb7\xc9\xa8\x72\xf4\xd4\xfd\x02\x4e\x24\x6a\x52\x11\x20\x8a\xa6\x6a\xf1\xe1\xfa\xe5\xfc\x70\x30\x58\xa3\x4d\x19\x25\xd8\xcf\x30\x5d\xcf\x3c\x43\x09\x17\x2b\x27\x09\x35\x65\xeb\x97\xbf\xb1\x37\xa4\x44\x2b\xa7\x36\x6e\x2f\xda\x65\x6d\xf6\x2e\xe8\x1b\xc5\xc0\xd3\xdb\x99\x16\xb4\x2a\x76\xdf\x5e\x11\x05\xd3\x91\xc3\x2d\x8b\x11\x46\xb9\xae\x38\xd6\x4a\x72\x03\xb9\x5f\x13\x78\x68\xf7\xb6\x35\x04\x67\x6c\x88\xdc\x15\x5a\x6f\x11\x68\x36\x09\x3a\x5f\x5d\x24\x43\x10\xd3\x4a\x2e\x34\x23\x6b\xe7\x86\x90\xf5\xfb\xc9\x74\x6e\x25\xf4\xf4\x70\x30\x98\xa3\x43\xb6\x88\xe6\x84\xd8\x7c\x61\xeb\xa9\x02\x71\x9d\xd4\x97\xde\x25\xd6\x25\xcc\x7c\x60\xfc\x88\x7b\x09\x5a\x43\xe5\x7d\xe4\x2d\x41\xe6\x96\xa0\xa1\x69\x9c\xe2\x35\xce\x74\x9c\x37\x1f\x17\xf8\x6d\x2a\xad\x1f\xbe\xdd\xee\x99\x0e\x76\x97\x5a\x59\x65\x53\x75\xca\x68\x85\xb9\x51\x68\x0d\x68\x64\x4b\x3e\xdd\x4a\xea\xee\x06\xdd\xd4\xa9\xbb\x5b\xa4\xdc\x6e\x37\x12\xa3\xd5\xf4\x76\x46\x6e\xa6\xb7\x8e\xd1\x58\xf6\xfb\x7b\x0b\x68\xca\x2e\xb6\x3d\x55\xee\x44\x05\xe2\xd1\xc6\xa6\x80\xc3\x26\x8f\x9a\xe7\xb7\x47\x57\xf1\xed\x42\xca\x11\xd8\x28\x55\x95\xe7\x8e\xf8\x9d\x71\x47\x0c\x4e\x86\xbf\x2d\xf8\xac\x17\x26\xd6\x43\x96\x97\xfa\x0e\xe2\x4d\xa2\xbc\x2a\x39\x79\xef\x76\x1b\xb5\x66\x00\x17\xda\xa2\xfa\x27\xbc\x14\x27\x65\xb2\x22\xff\x29\x1f\xb2\x8c\xbc\x51\xff\xea\x52\x24\x25\x67\x92\x32\x48\xe6\x94\xfc\x81\xc1\x9e\x7c\x49\x3e\xea\x07\x93\xe3\x03\x18\xa7\x02\x97\x4f\xde\xa9\xc8\xb8\x94\x93\x47\x78\xca\x8b\x94\xb2\xc5\x03\x39\xc1\xa0\xea\x06\x41\xea\x29\x29\x30\x8d\x8b\x9c\x2c\xa8\xfc\x5f\x2c\xc8\x8a\x3a\xfb\x56\xf2\x13\x36\x72\x67\xf2\x33\x56\xae\xaf\x5f\x63\x1a\x2f\x58\x26\x28\x27\xbf\x40\x77\x1f\x72\xc9\x2b\xc1\xea\x5c\xe8\x50\xac\xb1\x35\xe9\x8e\xe7\x49\x29\xda\x9d\x1d\xe7\x64\x73\xc3\xee\x59\xe8\xd1\xbe\xd0\xc0\xa8\xc8\x75\x77\xd4\xdb\x62\x81\xad\x64\x96\xf8\x9b\x02\xb7\xcd\xbd\x3e\x57\xb4\xc2\xde\x45\x9e\xb3\x72\xb5\x41\x30\xfd\xd8\x2e\x17\x0f\x2b\xaa\x55\x9f\x4d\x45\x2a\x54\xe4\x15\xed\x26\x36\x80\xac\x15\xfe\x73\xed\x08\x41\x22\x4d\x3a\xeb\x30\xf0\xb8\x0a\x11\x54\xa7\x33\x84\xf7\x55\x4c\x09\x13\x57\x41\x00\x3d\xa9\xa5\x2c\x15\x2e\x16\x0b\xdf\x6a\x4b\x57\xd5\x71\x77\xa7\xaa\x26\xd0\xab\x71\x55\xd8\x38\x0e\x4c\x47\x5f\x8a\x0a\x3c\xd2\xce\xe7\x74\xc3\x15\xf6\x5d\x61\xe5\x36\xa0\x88\x6a\x40\x47\xb4\x61\xc8\xf7\xa6\x53\x0b\xc2\x12\x0d\x31\x9b\x16\x33\x14\xc9\xe2\x70\x98\xfc\x75\x35\xca\x2e\x1b\x06\x5a\x54\xe0\x1c\x7d\x6f\x54\x8f\xbb\x0b\xb3\x7d\xb0\x47\x88\x09\x10\x5a\x86\x60\xb4\xcb\xa0\x27\x2a\x6e\x6d\x1e\xab\x3d\xc0\x8c\x58\x79\x3a\xab\x79\x6e\x96\x7c\x8d\x9c\x4e\xad\x6a\xab\x84\x0c\x14\xaf\x92\x87\xac\x48\xd2\xf1\xe6\x0b\x7d\x18\x8b\xf8\xf2\x7a\xcd\xd2\xff\xa4\x0f\x98\xa5\xf2\x8d\xa5\x98\xca\x8e\x7f\x54\x99\x53\x2a\x12\x96\xc9\x0f\x9c\x96\xeb\x4c\x60\xf0\xbc\xf3\x3e\x1d\x43\x8c\x65\x99\x3b\x4b\xae\x28\x64\x80\x07\x2c\xd8\x0d\x3d\x17\xc9\xcd\x6a\xfc\x56\x92\xd7\x79\x71\x17\x21\x0c\xb7\x01\x63\x36\xed\xb9\xe1\xef\xdf\x31\xb1\xdc\x07\xdd\xd3\xde\x6c\xe2\xf4\x7d\x4d\x45\xda\x25\x4c\x85\xfa\xfd\x92\x8a\x0b\x76\x43\x8b\xb5\x50\x3a\x0f\x66\x15\x28\x19\x1e\xd2\x97\x56\x56\x45\x8d\x9c\x4a\x90\x44\x6e\x02\x4e\x44\xac\xc7\xda\xe1\xb1\x1c\x25\xe1\x92\x27\x1d\xf0\x98\xa5\x58\xfb\x77\xff\xd1\x4f\xd6\x63\xc3\x5c\x59\x0d\x01\x6b\x6b\xb4\x64\x21\x45\xbd\x21\xcc\xec\x5d\x87\xd0\x6e\x12\x4c\x4b\xa8\x4a\x6c\x1c\xb2\x0a\xff\x6d\x18\x7a\xc5\x36\x37\xe3\x2d\xd6\xe4\xa0\x46\xea\xab\xd1\x2a\xbb\x14\xb3\xf2\xb4\xe3\x08\x11\x99\x1e\xad\xb1\x43\x0e\xa9\xba\x08\xe6\xbe\x63\x6b\xb4\x09\xfd\x4a\xeb\xc0\x98\x61\x0b\x41\x8b\xfd\xbe\x4c\xba\xaa\xf5\xc3\x02\x34\x42\xb2\x49\x78\xc7\xaf\x8c\x50\x2f\x81\x04\x99\xc0\xc1\x34\xbb\x04\x8d\x0f\xfc\x6f\x72\x51\x8d\x21\x95\xb2\x1b\x09\x32\xa3\xf1\x4d\x24\xac\x6e\x10\x79\xb5\x11\x84\x10\x0e\x35\x72\x34\x4e\xe1\xaf\xc2\x82\xbc\x5a\x29\x0f\x32\x15\xfc\x8d\x5b\x8c\xef\xf9\xa4\x1e\xaf\x82\x29\x30\x1b\x51\xad\x2b\x03\x8e\x6a\x59\x4b\x78\x67\xc1\x1f\x36\xd4\xba\x74\x96\x67\x78\xae\x43\x52\x18\x10\xcb\xaa\x2a\xe2\x32\x3b\x79\xb5\xc9\xb7\xdb\x48\x39\xda\x6d\x76\x55\xf5\xd5\x65\x31\xbd\x96\x00\x57\x6d\xed\xce\x5e\xde\xef\x33\x70\x00\xa1\xbf\x33\xf8\xae\x46\x26\x6b\x5a\x68\x8f\x94\x9e\xab\x6e\xb3\x77\xe4\xc4\x22\xf5\xdd\xfa\x1f\x67\x7a\x02\xa2\x9c\x08\x84\x8d\x0e\xd2\x76\xeb\x82\x17\x13\xe6\x7b\x2b\x90\xef\x7e\x1d\x8a\xe0\x80\x1b\x24\x79\x6a\xc4\x92\xe6\x7a\xf8\x45\x68\xbb\xbd\x02\x7b\xb6\xca\x6c\xa8\x4a\xdf\xeb\x07\xee\xbe\xd1\x86\xda\xe5\x96\x9b\xc9\x3c\x47\xd4\xae\x38\xbe\x0d\x3c\x47\x1b\xa0\x6e\xb9\x31\xbd\x71\x24\x53\x66\xca\x40\xf0\x7d\x95\x4c\x46\xd8\xe4\x5a\x5f\x95\x73\xce\xae\x5c\x18\xb0\x89\x04\xfc\x06\xc6\xf4\xfb\xa5\x44\x5e\xd9\x82\x65\x19\x4d\x7b\x98\xa2\xb1\xd9\x0f\xb7\xe0\x43\xc8\xf7\x70\xfd\x44\x0f\x54\xab\x07\xd8\xef\x8c\xa9\x68\x19\x56\x74\x53\xbf\x05\x09\x7b\xe9\xc5\x52\xea\xd0\xda\xa1\x28\xa6\xc9\x8c\x08\xf9\x37\x18\xcd\x08\x87\x87\x83\x19\xc9\x61\xb0\x09\xcc\xa4\xee\x93\x3f\x08\xd7\xf4\x6d\x40\x77\xf9\x8d\x72\x3b\x1e\x65\x71\x1a\xce\xd0\x08\xb6\xb0\x37\x4f\xe3\x9e\x22\x5c\xd4\x94\xe1\xa1\xaf\xc0\xe3\x04\x9c\x20\x36\xb2\x33\xa2\x83\x6d\x08\x17\x6c\x83\x3c\x47\x39\x11\xd3\x4c\x62\x63\x31\xcd\x06\x7c\x86\xf3\xc9\xb5\xf6\x2e\x97\xa0\x71\x11\x25\xa8\xd3\xba\x86\x64\xe8\x29\x6e\x5f\x37\x78\x1f\x9c\x90\xb6\xa3\x8f\x4b\xa2\xb4\xab\x13\x24\xf7\xb1\x44\xde\xb9\x77\xd5\x57\xaa\x08\x4f\x99\x42\xfb\x4c\x62\x64\x27\xae\x51\x93\x03\x94\x08\x21\x62\xb2\x92\x48\x3c\xa4\x6c\x8e\x8c\x32\x4d\xd9\x9d\x1b\x22\x67\x9e\xe4\x4a\x7f\x4f\x53\xe8\x89\xe8\x96\xc9\x0d\x35\x39\xe3\x1e\x42\xe3\x3d\x39\xbb\x25\xd4\x58\xa0\x71\x32\x49\x23\x81\x19\x1a\x43\xa4\xd8\xc9\x42\xbd\x1c\x28\x01\xc4\x0a\xde\xbc\x05\xbd\x0a\x83\xee\x28\xe1\x81\x5d\x46\x59\x45\xde\xef\xef\xd1\xed\xf6\x40\x3f\x0a\x4b\x27\xd4\x0f\xc1\x7c\x99\xb0\xdc\x44\xb5\x50\x0e\x79\xe1\x57\x89\xe2\x82\x7d\xa8\xad\x1e\x0c\xa2\xf1\x71\x41\xb4\xc6\xdc\xca\x26\xf4\xc2\xb7\xed\xa8\x5a\x73\x85\xa7\x9c\x93\xa3\x1b\xc5\xc3\xa9\x58\xad\x0e\xfa\x64\x04\x06\x34\xa1\x63\xd1\x31\xfb\x5b\x62\xfb\xeb\x48\xee\x97\x0c\x27\xc8\x13\x21\xef\x72\xcd\xee\x39\x8a\x33\x3a\x0b\x6f\x02\xcb\x14\xa5\x44\x60\x3c\x28\xd3\xbb\x2e\x8d\xd6\x56\xaf\xf7\x12\x54\x12\x4e\xf3\x33\x45\xb6\x6b\xbb\xdb\x4b\x56\x7e\x2e\x59\x7e\xad\x58\x3a\x45\x9b\x13\x42\xee\x1b\x5f\xb5\x78\xd3\x39\xbe\x91\x28\xd3\xe4\xca\x99\x88\xe2\x38\xb6\x84\x1d\xaa\x54\x9a\x2f\xfc\xd6\xdb\x7f\xbb\x1d\xaa\x65\xd1\xa7\xc1\xf4\x83\xd3\x9b\x84\xe5\x2c\xbf\xf6\x52\x00\x18\xb9\x70\x89\x46\x30\x7e\x49\xc1\x28\x4a\xa9\xa5\x56\xde\x5b\x10\x1d\xce\x6b\xc4\xa8\xd9\xea\xa9\x81\x30\x71\x76\xcd\xb8\x05\x3c\xf9\x4b\x01\x57\x68\xba\x91\x64\xbe\x3c\xce\x05\x7f\x88\xe8\x34\x9f\xe1\x1c\x04\xdf\x46\xc4\x45\xe7\x5f\xde\xad\x33\x00\x29\x60\xa9\x87\xaa\xb6\xc4\x8d\x0e\x3c\x5f\x1b\x61\xe0\xfd\xc7\x6c\x34\x63\xe7\xab\xbb\x48\x51\x6d\x16\x80\x5c\xbc\x2c\x81\x9d\x3b\x49\x1e\xae\xe8\xc5\x92\xe6\x09\x38\x44\x6c\x1e\xa3\x96\xed\x61\x2d\x89\x9b\x6b\xea\xc3\x9e\xbd\x61\x47\xc1\x17\xea\xe3\xc9\x0c\x6d\x12\x03\x61\x00\x21\x03\x25\xe5\xb9\x44\x54\x53\x88\xea\x40\x5f\x1f\x6a\xc5\x83\x1e\x09\x8b\x6d\xb0\x70\xd8\x06\x73\x87\xe9\x5b\x78\x31\x86\xea\x95\x8c\x64\x69\xbf\xd4\x8e\x8d\x6c\x2d\xfe\xe8\x5d\x37\x8f\xd6\xa8\x03\xd0\x2a\x99\xac\x22\x79\x68\xc7\xd1\x3c\x2a\x31\xb5\xfe\x72\x2e\xef\x98\xe1\xa7\x8f\x44\x54\xc2\x9c\xfa\x2e\xbc\xc3\xef\xaa\x4e\x41\x5e\x09\xe5\xcd\x48\x52\x0b\x3b\xf3\xfa\x5e\x97\x20\xa7\xbf\xb7\xd4\xe2\x69\x67\x4c\xad\xa4\xf3\xc4\x9f\x80\xb6\xa5\x1f\xdb\x0c\x67\x30\xa3\xde\x1c\x55\xfe\xe4\x07\x98\x26\x38\x11\x4e\x54\xcc\x1c\x69\xd0\x02\x35\xfa\x7d\x80\xe6\x93\x15\xe8\xf5\x1b\x5d\x33\xbf\x61\xd3\x08\xde\x79\x52\x90\xea\x54\xa3\xc4\xa6\x76\x4a\xf6\xf7\x83\x13\x30\x15\x33\xc2\xab\x70\x66\xf5\xe4\x49\xaa\xc4\xb0\xf6\x5a\x9b\xb4\x65\xbb\xb4\x7d\x3b\xd0\xdf\x6a\x2e\x89\x35\x3b\xf1\xd5\xfe\x28\x3c\xb7\x81\x09\x1b\xfb\xa4\x98\x12\xdc\xf0\x6a\x6c\xbe\x39\x92\x83\xd3\xa4\x2c\xf2\x31\x57\x96\x95\x77\x04\xa4\x50\x97\xbd\x81\xe3\x27\x07\xbd\xfd\x1e\x3e\x26\x43\x6d\x63\x78\x5f\xc7\x03\x16\x07\xa4\xe4\xd8\xb8\xcd\x57\xa4\xb7\x31\x2e\xbc\x6c\x5a\x28\x19\x38\x12\xa4\x79\xc4\x09\xb8\x76\x68\x20\x3a\xb0\x8d\xd4\x88\x0e\xe1\xb5\xda\xa1\x6d\xa7\x94\xf6\xfb\x41\x7c\xe6\x16\xe9\xc9\xaf\xc5\x5a\x09\x4e\x56\x72\x54\x89\x76\x7b\x44\x79\xd7\x79\x43\x29\xc1\x90\x75\xc1\x78\x29\xba\x06\x97\x74\x45\x01\xa9\x46\xdb\xd7\x9b\x8c\x1e\xaa\xb4\x5f\x41\x5f\x87\xef\x7e\xd2\x16\x84\x6d\x6f\xa4\x22\x5e\xcb\x33\xbb\xe1\x5a\x93\x03\xa7\x86\x79\x09\x52\x0d\x4b\x63\xe8\xab\x1c\x6d\x56\xca\x45\x6c\x65\x6d\x4c\xbf\x36\xda\x77\x09\xcb\x68\x2a\x3b\x6f\x3b\xdc\xfd\xab\x06\x4c\x7f\x1d\x77\x3f\x65\x34\x29\x69\x77\x0d\x10\x83\x76\xff\x9a\xd3\xbb\xbf\x76\x8b\x95\x44\x63\x05\xc7\x00\x45\xb4\x71\xbd\x3f\x60\x43\x93\x5d\x51\x20\xd3\x68\x2a\xa7\xcc\x09\xa1\x62\x98\x10\x54\x39\x96\x04\x38\xc4\x85\xa0\x5c\x89\x16\x02\x72\x48\x12\xda\x86\xcf\x37\x0a\x8d\xd4\xdf\x4d\x6e\x02\x1a\x21\x03\x40\xbd\xc7\x1c\xb9\x46\x70\x01\xef\xb6\xdb\xeb\xbc\x66\xe7\x5b\x88\x5b\x0d\xe1\x8c\x6b\x55\xde\xe6\xb4\x0f\x91\x57\x02\xe1\x27\xbe\x1a\x6d\xb7\xca\xdc\xcd\xe9\x28\x09\x81\xbb\xf1\xd3\xba\x29\x1b\x78\xf1\xa6\x4e\x9d\xc6\x11\x1b\x39\xd2\xc1\x88\x73\xe5\x4e\x7a\x5a\xcc\x08\x9d\x16\x33\x2b\x25\x4f\xc8\xf0\x30\x71\x2c\x41\x32\x18\xa0\x0d\x9f\x8a\x69\x32\x9b\x11\x06\x5c\x8e\x8b\xe0\x1a\xba\x16\xf6\x23\xd8\x5a\x02\xc5\x8b\x0a\xbd\x3f\x42\x38\x27\xa3\x43\x43\x8f\xf0\x69\xbe\x3f\x92\xad\xe7\xd6\x0b\xb4\x57\xe5\x85\xbf\x3c\x1b\x39\xea\x31\xb8\xde\x26\xaf\x42\x86\xbf\xf2\xe3\xc3\xbb\x65\xf2\x2d\xbb\xed\xb4\xd4\x25\x74\x5a\x1f\x5b\x93\x61\x03\x15\xf7\x74\xa4\x27\x88\x83\xe3\x11\x6d\x7a\x69\x4b\xca\xa9\x52\xd6\xc7\x1b\x1b\xac\x58\xf2\x79\x0d\xfc\x96\xe8\x70\x53\x81\xe8\xe6\x1e\xb9\x50\x51\x8a\x1e\x49\x7c\x7a\x64\xee\xe3\xf6\xfb\xc8\xb9\x17\x97\xb8\x7d\x8e\x70\x69\xf8\xa0\xbd\x51\x87\xf5\xfb\x7b\x46\xdf\x35\x21\x17\x11\x03\x62\x3b\x97\xeb\x99\x54\xce\x22\xc5\xaf\x25\x9f\xf2\x59\xcd\xcf\xba\xc4\x79\x19\xb6\xfe\x08\x81\x91\x4a\xa3\x4c\x62\xc1\xff\x97\xb7\x7f\xdb\x72\xdb\x56\xfe\x45\xe1\x7b\x3d\x45\x4b\x23\x93\x83\x88\x20\x59\x72\x66\xe6\x9a\x7f\x76\xa3\xf5\xf9\x98\x78\xc6\xa7\xd8\xce\xc1\x69\xf7\xf2\x60\x53\x50\x8b\x31\x45\x28\x20\xd4\xed\x4e\x53\x63\x7c\x77\xfb\x62\xbf\xc1\xbe\xda\xcf\xb2\x1f\x65\x3d\xc9\x1e\xa8\x02\x40\x80\xa4\xda\xc9\xda\x6b\x2c\x5f\xb8\x45\x9c\x8f\x85\x42\xa1\xea\x57\xc3\xe6\xeb\x6d\xdc\xb0\xc0\x24\x09\x9d\x49\x29\x02\x49\x5e\x35\x49\x34\x91\x49\xb0\x90\x3d\xcd\x17\x0f\xe2\x82\x96\x66\x0b\x92\xe4\xb5\xff\xb5\x6f\x5e\xd3\x3e\x7e\x04\xbb\xf4\x8f\x1f\x19\xf7\x45\x62\xaf\x43\x59\x8f\x79\x75\x8b\xcb\x46\x21\x34\x47\x2a\x96\xbb\x8b\x06\x6f\x72\x3f\x68\x72\x9b\xc8\xcf\x53\x58\x3a\x0d\xe0\x71\x53\x81\x77\x87\x7b\x14\x90\x06\xcc\x03\xf4\xa0\x91\xf4\x7f\xa6\x9f\x51\xd6\x5f\x50\x88\x6f\xb9\xc8\x34\x59\xdb\x7e\xb7\x16\x81\x71\x0e\xe8\xb5\x5a\x5e\x25\x31\xcf\x79\x0e\x92\xcb\xa3\xba\x56\xfd\x10\x54\xf8\x8d\x90\xde\x50\xca\xeb\x5c\xad\x8f\xd2\xf2\x28\xd5\x35\x8c\x88\x6e\x24\xfd\x8c\x8f\x26\x87\x9c\x76\x36\x92\x48\xbd\x90\xdb\x4d\x24\x6e\xc9\xc9\xf6\x75\xda\x69\xe6\xa7\x19\xff\x42\x3b\x08\x95\x81\xeb\xef\xde\x6b\x09\xf7\x1d\x5a\x6f\x8c\x25\xbb\xa5\x82\x67\xe5\x39\xf1\xd8\x1f\x23\x2d\xe5\xec\x74\x0b\xbf\x48\x43\x32\x74\x7f\xcd\xdd\xad\x80\xdf\x70\x11\xfc\x72\xef\xbd\x8e\x82\x1c\x96\x7e\xf6\xb0\x11\xac\x80\x9d\x5d\x07\xc1\x7a\xd9\x38\x2f\x63\x9f\x1c\x4c\x42\xcf\xa5\xd6\xc7\x64\x1c\xce\xf5\x5e\x68\xd6\xd7\x9b\x2f\x2f\x92\x4f\xf1\x67\x38\x82\xdc\xf2\xf8\xfc\xe5\xb5\x61\x1e\xc5\xfe\xc2\x12\x71\x2d\xf9\xbd\xb5\xd2\x01\x70\x02\x96\xfa\x27\x7f\x30\x3c\xc6\x96\x7d\x34\xbd\x7f\x7c\x57\xef\x01\x14\x20\x44\xf0\x2c\x83\xdb\x73\xc0\xbd\x39\xad\xac\x3b\x6e\xc0\x0d\x5e\x44\xcb\xd8\x3e\x77\xaa\x96\xce\xde\xc0\x70\xff\xed\x1b\x78\x1e\x1c\x72\x8d\xd2\xaf\x5b\x92\xe9\x49\x0e\x07\x1e\x38\x92\x04\x35\x4d\xab\xfd\xd1\xdc\x6c\x24\xea\xb3\xdc\x71\x65\x6e\x46\xf7\x65\x7b\x74\x3d\x0c\xc3\x36\x6a\x2f\x77\x07\x8a\xe6\xbe\x7d\x29\xb0\x65\x27\xfa\x5f\xef\xec\xfc\xaf\xd3\x6a\x7d\x68\xe6\x4d\x51\x01\x2c\xca\xe3\xd6\x02\xdb\x13\x62\x24\x34\xcf\xdc\xc4\x3e\xfe\x7b\xcb\xfa\xf9\xff\x86\xee\x7a\x8f\xbf\x7f\xa7\xb7\xcf\xa0\xb7\x60\x9b\xe0\x77\xd8\x35\xfd\x29\xe2\x05\xe8\x0a\xdb\x0f\x57\x18\xca\xf7\x84\x7a\x27\xcb\x9f\x8d\xd8\xf6\xd6\x74\x33\xb1\x6f\x21\xb0\x4d\xad\x3b\x46\xf7\x72\x1e\x08\xb0\x3e\xc7\x70\xfc\xea\xd2\x1d\xed\x02\x7d\x48\x23\xc4\xda\x83\xa0\x64\xff\xec\x4b\x7b\xf0\xa7\xbb\xf6\x60\xb8\x01\xf5\x86\x84\x9b\xb3\xdd\x83\x01\x7c\xdb\x41\x39\x96\xe8\xc8\xb1\xc4\x21\x39\x96\xb5\xaf\xfc\xb8\x49\xb7\x4f\x4b\xab\xb4\xd3\xda\xd3\xbd\x57\x64\xbd\x12\x40\xfe\xdb\xde\x6c\x5e\x79\x7a\xe3\x11\x03\x46\xe7\x4e\xfe\xbe\x8b\x6f\x0e\x49\x3c\xa9\xc5\xdd\x57\xef\x66\x4e\x1f\xc6\x81\x73\xb2\xbe\x07\xf4\xc5\x21\x2a\xbc\x49\xb7\x47\xfc\xf3\x16\x50\xc3\xd2\xe0\xea\x97\x1e\x55\x3c\x13\xe5\xd2\xdd\xfc\x46\x44\x73\x57\xfe\xee\x90\x07\x76\x47\xf7\x6c\xee\xdd\x12\xba\xee\xbb\x49\xbe\xbf\x13\x7e\xc2\x7d\xaf\x2b\xed\xdb\x08\xdf\xdf\xb1\x87\x9b\x54\x3f\x77\x52\x21\xf4\xa6\x4e\xa4\xd7\xd3\x57\xec\x76\x6f\x96\xe8\x1f\x6e\x89\xfe\x74\xfb\x37\x84\x89\xa1\xcb\x31\xfb\x04\xd5\x23\x61\x34\xca\x19\x31\x67\xa7\x7c\xc8\xd8\x57\xe4\xaf\x8b\x1c\x0f\x2c\xc4\xdb\xce\x22\x19\x58\x05\x2e\x27\x46\x6c\x2f\xcc\xc6\xfa\x4e\x34\x4e\x35\xc3\x75\x99\xc2\xba\x14\xd6\x2f\x49\xb3\xc8\x2d\xc4\xe2\x81\x25\x2b\x1d\xfc\x44\xd3\xa2\xaf\x7c\xb2\xfb\xcb\xff\x87\x75\x8b\x83\xe7\x96\xee\xff\xde\x85\x6b\x2a\xff\xeb\x6b\xf7\x8f\xde\xb5\xab\x27\xe7\x3b\xfa\x9e\xcd\x1a\x4d\x8a\x1f\x70\x7d\xee\xf8\xd9\xfb\x73\xc6\xa9\xfe\x3b\x9e\x9f\x33\x45\xef\x33\xc6\xe2\xf7\x63\x76\x9f\x44\x91\xe4\x31\x66\xfe\x0f\x1b\xed\x4a\xd4\x59\x5a\x36\x83\x76\x9d\x97\x4b\x71\xbd\xc0\x3f\x96\xb8\xff\xc8\xfe\x03\x90\x6a\xbf\xb2\x1f\xa7\x2f\x76\x0a\xec\x67\x5f\x5d\x54\x5c\x5e\x71\x59\xd7\x3f\x4e\x7f\xe1\x17\x3f\xe4\xaa\x1d\x43\x7f\xf3\x6b\x70\x57\xc4\x8a\x17\xab\x28\xea\xab\xdb\x40\xe0\x47\xd1\xe8\xcc\x88\x4b\x4c\xc8\xf9\x88\x31\x76\xbb\x9f\x5a\x5f\x66\x78\x15\x36\x91\x84\x72\xde\xdb\x95\x9f\xf2\x52\xfd\xfb\x51\x91\x6e\xb6\x7c\x09\x53\xd2\x5f\x6b\xbe\xd9\x0a\xa9\xde\x66\x32\xdf\xaa\xaa\x3f\xc9\x0b\x04\x36\x7b\xb4\x4e\xcb\x92\x7b\xb8\x5a\x9e\x77\x0e\x7d\x68\x7a\x67\x68\xc6\xe9\x1c\x87\x59\x72\x5a\x72\x9a\x73\x2a\x38\x4d\x39\xad\x38\x2d\xf4\xd4\x78\x27\xc8\x9c\x7f\xe3\xa1\x08\x67\xdc\xbb\xbc\xa3\xda\xc8\xfb\x63\xae\xe7\xee\x36\x9e\xe9\x39\xe5\xe7\x24\xd6\x7f\xc6\xf3\x73\x82\xdf\x56\x0e\x68\x42\xad\xfe\xf5\x7b\x36\xdb\xff\xb6\x88\x2b\xce\xcc\x48\x4d\x4b\xfe\x59\xbd\xcb\xb3\x4f\xb4\x68\xc2\xae\xb8\xac\x72\x51\x56\xd3\x52\x2c\xf9\x74\x03\x1b\xfa\xde\x7f\x8f\x17\x49\xfc\x61\x39\x26\x1f\xa6\x64\x11\xfc\xfe\xf0\x75\xad\x7f\x7f\x75\x8f\xd0\x70\xb9\x17\xe0\x78\x60\xa6\x67\xaa\xe0\x67\xf3\xf3\x28\x1a\xcd\xed\xd7\x7d\xc0\xa0\xe7\xac\xe2\xea\xd9\xc6\xe8\x53\x13\x2a\x39\xc3\x51\x8b\x33\x4e\x48\xf2\xeb\x22\xce\x39\x9b\x51\x81\x63\xf3\xab\x0e\xa5\x29\x67\x4b\x91\xc1\x46\x34\xe0\x6e\xef\xf8\x67\xf5\x52\x2c\x79\x3c\x1a\x11\x2a\xf8\x54\xe0\x6a\x8b\x53\x4e\x6f\xb3\x75\x2a\xd3\x4c\x71\xf9\x38\x55\x29\xaa\xda\x99\x4a\x52\x8e\xa8\xe0\x39\x67\xe3\x71\xce\xff\x71\x9f\x24\x9c\x2f\xe2\xb8\xc4\xca\xc2\x09\x26\x53\xbd\x22\xe6\x53\x51\x5a\x44\xbb\x8c\xdb\x82\x4a\x0e\x91\xf7\xa7\x5b\x51\x29\x93\x2d\x9e\x11\x92\x48\x2b\xa2\x65\x8c\xfd\xa7\xdf\xdd\xc2\xc2\x97\x33\xca\x1b\x43\xd6\x9f\xda\xc0\x91\x27\x94\x1b\x11\x50\xee\xff\x63\x97\x4b\x1e\x8f\xae\xb8\x54\x9f\x47\x5d\x97\x3a\xf1\x77\x8c\x4f\xe5\xae\x7c\x55\x3e\x17\x62\x5b\xd7\xe6\xc3\x98\x81\x11\xbf\xbe\xef\xf4\x70\xee\x13\xf0\x0b\xd3\x86\x45\x81\xc0\x7d\x4c\x20\xd6\x6a\x0b\xb0\x1f\xa8\x11\x37\x32\x1e\x2c\x6d\x4e\x67\xa8\xc6\xb5\xe4\xec\xfb\x81\xd1\xfd\x5b\xa2\xd2\xcf\x9a\x33\xa0\x41\xec\xd4\x29\xb3\x80\x5d\xac\xd3\x9e\xd0\x8b\x3b\x9f\x8a\xb2\xf5\xc0\xd8\x28\x37\x98\x04\xab\x55\x2b\x05\x80\x74\x60\xc3\xd6\x9c\x1e\xa6\x5c\x3d\x32\x29\x8c\x98\x7e\xfc\xf8\xfa\xcd\xab\x17\xcf\xde\x3e\xf9\xf8\xec\xe5\xdb\x77\x6f\x7e\x7a\xf1\xe4\xe5\xbb\x07\xef\x9e\xbd\x7a\xf9\xf1\x23\x9e\xb0\x1b\xce\xbe\x9c\xb4\xd1\xab\xe5\x47\x79\x79\x24\x62\x4f\x4f\x6c\x04\x76\xee\x1b\x4e\x36\x1d\x3f\x40\x57\x7a\x77\xac\x78\x7c\xc5\xe9\x86\x9f\x5d\xf1\x73\x24\x0e\x97\x9c\xdd\xa6\x55\xba\x4d\x7e\xa0\x7a\x18\x93\x25\xa7\xaf\xed\xcd\x97\x7a\x4a\x79\x49\x49\xd3\xa2\x48\x1e\xd1\xe6\xbe\x9b\xbc\xa1\xfa\xda\x9a\xfc\x4e\xf5\xe5\x20\x79\x49\xbd\x3b\x42\xf2\x9c\x1a\xf5\xd0\xe4\x29\x05\xe5\xd0\xe4\x4f\xea\x54\x43\x93\x17\xd4\x29\x86\x26\x82\x8a\x32\x59\x71\x2a\x56\xab\x64\xab\x57\x39\x72\xf5\xdf\x5b\x86\xfe\x67\xba\x49\xb7\xc9\x43\x0a\x43\x9f\xac\x39\xc5\xe3\x2b\xf9\xc5\xd7\xc1\xbd\xe4\x60\x33\x12\x8f\x38\x38\xdc\x07\x49\x3e\x5e\x23\x02\xb5\x5b\x64\xd6\x8f\x38\x7b\xa2\x93\x4d\x3f\x7e\x2c\x44\xba\x04\xf0\x3f\xb3\xce\xff\x7f\x97\x45\xbe\xd9\x70\x79\x4f\xee\x4a\x95\x6f\xf8\x88\x0c\x4c\x52\xc9\x2f\xf3\x4a\x6f\x6c\xde\xbc\x90\x4f\xbb\x81\xd4\x24\xdf\x95\xbd\x19\xfa\x82\x6d\x96\xb4\xaa\x44\xa6\x09\x13\x44\x89\x9b\xf4\xa2\x40\x94\x59\xa6\xd7\xdd\x81\x38\x9b\x39\xaf\x4c\x8c\xbe\x2a\xf0\xa9\xff\xd9\x49\xc2\x97\x7e\x0a\xbe\xf4\x1a\xc0\xa5\xf2\x6a\x08\x32\xdc\x11\x6b\x0b\xc0\x67\x44\x2f\xc9\x3b\x99\x66\x9f\xb0\x45\x07\xe3\xf6\x7b\x12\xfb\x80\x38\xa8\x45\xdb\x79\xb6\x44\xa5\xea\x9e\xcd\xb5\x01\xf5\x66\x82\x7f\xa6\x26\x1d\xe3\xb1\x51\x97\x08\x9e\x81\x5d\x26\xdc\xbb\x51\x84\x7f\xa7\xe9\x66\x69\xe5\x6f\x18\x12\x9f\x9d\x53\x4e\x8e\x81\x01\xac\x6b\xdc\x94\x64\xfa\x48\x2c\xf9\x8b\x1c\x31\xd2\x81\x60\xf9\xce\x7f\x82\x85\x86\x84\xb5\x4c\xaf\xf2\xcb\x54\x09\x39\xdd\x55\x5c\x3e\xb8\xe4\xa5\xa2\xca\x0b\xdd\x16\xa9\x5a\x09\xb9\xa1\x92\xdd\xbb\xe4\xd9\x27\xf1\xe1\xde\x87\xe5\xbd\x1c\x5d\x51\x00\x6c\xc9\xbd\x17\x6f\x9f\x3d\x39\xfa\xb0\xbc\xe7\xc2\x72\x76\xef\x9d\xcc\x97\xbc\x54\x1f\xee\xc5\x8b\xe4\xec\xbf\x4d\xfe\xeb\xbc\xfe\xb0\xbc\xbd\x4f\xf7\xe4\xc3\x74\xfa\xb5\xbc\xc2\xb3\xf2\xde\x94\x7f\xe6\x99\xce\x01\xf6\x0f\x39\x4d\x99\x88\xa2\xb8\x5c\xb8\xd3\xcc\xfe\x78\x21\x96\xbc\xae\xff\x95\xe4\x67\xfa\x3c\xaf\xd8\x3d\x64\xa6\x3e\xdc\x6b\x2a\x2d\x58\x15\x45\xf7\x7e\x54\xba\x7d\xe3\x0f\xd3\x0f\xcb\x71\x13\xb7\x63\xf7\x1e\xad\xa5\xd8\x70\x3f\x43\xc6\xee\xbd\xda\x72\x99\xfa\x61\x4b\x76\xef\xc1\x76\x5b\xf0\xa3\x47\x62\xb3\xdd\x29\x2e\x4d\x54\x33\x1e\x57\xbc\x5c\x0a\x49\xe8\x9a\xdd\x7b\x91\x66\x47\xaf\xde\x1e\xfd\x7a\x34\xff\xb0\xfc\xf0\x38\x3e\xfb\x37\x76\xf3\xc3\x92\x7c\x78\xdc\x14\xb9\x62\xf7\x5e\xaf\xd3\x52\x89\xcd\x7f\xde\x36\xa1\x5b\x53\x11\xf6\xc3\x85\x47\xd1\xbd\x17\xe2\x22\x2f\xf8\x87\x7b\x1f\xae\xbd\x0e\x6c\xd8\xb6\xae\xef\x3d\x28\x97\x52\xe4\xcb\xfa\x9a\x5f\xbc\x7a\x5b\x3f\x2c\xd2\xec\xd3\x43\x2e\xe5\x4d\x0d\xfd\x38\x7a\x91\x97\xb9\xfd\x29\x2e\xf2\xfa\xd9\x13\x2c\xcb\x9b\xad\x2b\x28\xe7\x45\x9a\x99\xa2\x15\xa1\x97\xec\xde\x87\x8b\x47\xf2\xd5\xdb\x0f\x17\x4d\x7d\x17\xec\xde\x75\x5e\xda\x8c\x8a\xd0\x1b\x96\x81\xdf\x62\xe4\x7c\x7e\x46\x76\xe8\xc3\xbd\xf8\xc3\xf2\x6b\x3d\xd6\x5f\x93\x7b\x64\x70\x13\x45\xf1\x0d\x7b\xb9\xd3\x1b\x2d\xbe\xd1\x33\x45\xe8\x4d\x14\xdd\x9c\xb2\xf9\xb7\x00\xdf\x3d\x9c\x83\x4e\x17\x1e\x8c\x1f\xd9\x55\x14\xc5\x45\x5d\x67\x7a\xca\x41\xd8\x73\x53\xd7\x37\x27\xf3\xfb\xd3\xf9\x9c\x10\x7a\xcd\x64\x5d\x8b\x28\x4a\x4f\xd9\x7f\xd1\x27\x3a\xef\x67\xb0\x69\x6f\x3d\x6c\x01\xa2\x49\xfb\x41\xf4\x55\xe3\xed\x85\x5f\x9b\x94\x28\xba\x10\x5b\x9d\xb9\x62\x8a\xa9\xc5\x13\x11\x2b\x92\xdc\xee\xe9\x13\x11\xff\x2a\xf1\xa6\x45\x9f\xc5\x06\xfb\x5c\x32\x85\x96\xae\x83\x8e\xb3\x64\x89\x96\xd7\xfc\xfa\xe8\x32\xd7\x57\x3c\xf0\xdf\x63\xfc\x78\x4c\x8b\xbc\xe4\x6f\xf9\x36\x85\x77\x4d\xe2\xac\xea\x32\x66\xa1\xec\xa0\x49\xd3\xbc\xdc\xee\xd4\x5b\x75\x53\xf0\xea\x4c\x79\x5f\xe7\x4e\x9b\x1e\x33\xe6\xd5\xb6\x48\x6f\x20\xd3\x5b\x34\x30\x25\x83\x7c\x7a\x2d\xd3\xed\x96\x4b\x7f\xb7\xc3\xc3\xc1\x1b\x93\xfb\x91\xf9\x8b\xcd\xf9\x45\xa7\x86\x8b\x73\xec\x17\xea\x4a\x81\xdb\x38\x78\xff\x66\xa3\xa3\xa6\xc8\x89\x8e\x1f\xe9\x42\xd2\x9d\x12\x2b\x91\xed\xaa\x28\x1a\x6e\xa2\x28\xc7\xf6\x4e\x21\x28\x26\xf4\xa7\xb8\x51\x40\x33\xa6\x8f\xb7\x9f\xf8\xcd\x8b\x74\x5b\x25\x67\xe7\x54\x5c\x71\x59\xa4\x37\xf0\x5b\x8f\xd4\x77\xbc\x4c\x66\x10\x7a\x2d\x73\xc5\x93\xe1\x9c\x2e\x79\x91\xea\x73\xe0\x61\xb1\x43\xe3\x16\x1d\x08\xc5\xf3\xa5\xfe\x59\xed\xb6\x5b\xc9\xab\xea\xc9\x32\x57\x95\x0e\xd8\xa6\x95\xe2\xcf\xca\x4c\x6c\xf2\xf2\x52\x07\x64\x3b\xe5\x7f\x56\xbc\xe0\x19\x98\x9d\xf3\xcf\x50\xd8\x52\xa6\x97\x97\xde\xf7\x3a\xbf\x5c\x17\xf9\xe5\x5a\x25\x7a\x68\x33\x41\x3f\xf1\x9b\xb7\xfc\x0f\x50\x52\xa7\xd5\x96\x67\x79\x5a\x3c\x5a\xa7\xb2\x42\xb5\x75\x63\x6c\x05\x2a\x76\x96\xb9\xd9\x01\x6f\x13\x45\xe9\xc9\x7c\x1e\x2a\xb5\x7b\x24\xb7\x70\xa3\x8d\x63\x26\x0d\xb2\x0c\xd9\x13\x7a\x7f\x16\x1e\x2a\xf6\x85\xd4\xe4\x18\x7c\x97\xc7\x6a\x5a\x65\x52\x14\x05\x97\x74\xb4\x11\x7a\x38\xc4\x75\x39\xa2\x3f\x68\x0e\x73\xa7\x97\x57\x2b\xcd\xf2\xa2\xc8\x8a\x3c\xfb\x34\xa2\xa6\x61\x0b\x48\x1a\xb8\xd0\x06\x60\x73\xb4\x4f\x70\x96\x49\xd2\x79\x22\x92\x51\x34\x5c\xe2\x67\x14\x0d\x2b\x19\xbb\xf6\x40\xfa\x87\xb9\xdd\x20\x25\x03\x07\xfa\xcb\x5f\x84\x5c\x3e\x50\xb1\x24\x83\x87\x5c\x27\x16\x19\x2d\xa7\x69\x99\xad\x85\xa4\xe5\x74\xcd\xd3\x25\xd9\xef\xf7\xc4\x53\x20\x50\xe4\xd6\xd4\x5f\xd7\x50\xde\x9e\x0c\xae\xeb\xba\xd5\x15\x03\x1a\xb1\xe1\xe5\x6e\x14\x76\xe0\x13\x36\x6f\x6f\x00\x78\x24\x2d\xd9\x2d\x2f\x97\xc9\xcc\xb3\xbf\xc8\xf5\xf5\xc1\x5a\xec\x89\x5d\xb6\x86\x3d\x7b\x60\x92\x82\x84\x28\x05\x22\x54\xdf\x38\x69\x5c\xb2\x20\x92\x4c\x79\xb9\x64\x63\x90\x92\xeb\xfb\xd9\x3e\xb4\xd0\xf0\x24\xd7\x6a\x5a\xf0\x95\x0a\xfd\x74\x4a\x13\x3a\xe1\xf0\x87\xea\xc2\x95\xd8\x4e\xb8\xfe\xdf\xbd\x5a\x7d\x2d\xc7\xe5\xd7\xe5\xe9\x3f\x67\xb3\x7d\x6b\x48\x94\x6e\x42\xa5\x52\xa9\xfc\x11\xc9\xbd\x29\xcd\x43\x17\x9d\x10\x33\x1f\x32\x5d\xc1\x2e\x5b\xf3\xaa\xd7\x8c\x4f\x35\xf1\x8d\xcb\xa9\x23\x35\x95\xe9\x32\xdf\x55\xbf\x9e\xb0\x39\xf8\x7b\x83\xaf\xf7\x27\x6c\xbe\x8f\x73\x42\x6e\xb3\x82\xa7\xd2\x8e\xa6\xb4\xe0\xda\x6e\x68\x06\xe1\xa0\xde\x42\xb3\x13\x41\x01\x93\x06\xb6\xb0\xe4\x57\x89\x98\x94\x7a\x44\x4f\xd8\x37\xb3\xd9\xa2\xc4\xbd\x46\xe7\x8c\xe5\xad\x06\x83\x7b\x39\xaf\x3c\x18\xbf\x26\xd5\xd9\xec\x7c\xba\x4d\x2f\xf9\xaf\x34\x4c\xa5\xc4\xb6\x9b\xe8\x3d\xe0\xea\xb6\x77\x0e\x24\xd2\x8d\xf3\x87\xb6\xbb\x86\xc2\xf2\xa1\x33\x0c\x76\x73\x7f\x81\xbc\x5c\xfa\xe5\x35\x4a\x8b\x7e\x31\x03\x74\x42\xa0\x37\x9b\xa2\x92\x58\xf9\x66\x09\x9d\x8c\xa2\x61\x89\xf5\x44\x91\x1d\xdb\x49\x39\x85\xe1\x3c\xf9\x66\x36\x73\x4e\x56\xc0\xf8\x43\xc8\x65\xa5\xc9\x56\xd8\x4e\x3a\xd2\xfd\x1e\x91\x81\x60\xc3\x72\xaa\x07\xbe\xae\xab\xb8\xa4\xf8\x1b\x5f\x15\x7f\xe7\x71\x4a\x53\x92\x98\x04\x9d\x54\x26\x69\xb0\xe7\x53\x92\x98\xac\x2b\x1e\xa7\x70\xd6\xd0\x19\xa1\xcf\x2d\x1d\x70\xa1\xe3\x39\x9d\x11\x42\x00\xc0\x4c\xbd\x45\xda\x2c\xca\x58\x58\x3a\x21\x90\x4e\x50\xee\xce\x94\x87\x79\x2c\xc9\x3e\x8f\x0f\x8e\x6c\xa6\xcf\xfa\x62\x44\xf3\x4e\x34\xfe\x6a\x4f\xa3\x8d\x9f\x66\x45\xce\x4b\xf5\x3d\xd7\xc4\x3f\x8a\xe2\x0d\x10\x93\x26\x1a\x7f\xbc\x13\x5b\x42\xaf\x7a\xa3\x9e\xeb\x9d\xab\xef\xb0\x3f\xe6\x31\x6f\x6a\xe3\xa4\xaf\xa9\x40\xb3\xaf\xd7\x9c\x17\x2d\x1a\xf6\xd1\xd1\xb0\x76\x96\xc7\xaf\x5e\xbc\xd0\xb9\xde\x76\xba\xd1\x93\xcd\x1c\xe1\x87\x3a\x6d\x4f\x78\xd7\x29\xd6\x0e\xd3\xbd\x61\x88\x66\x30\xd5\x67\xa4\x15\xb4\x54\x9a\xa4\xea\x3b\x6c\x2f\xd5\xfe\x2a\x47\xf3\xbd\xab\x43\x09\xe2\xbe\x37\x76\xef\x94\x19\x5a\x84\x5f\x73\x94\xb4\xe4\x57\x8f\xcd\xe7\x53\x99\xa2\x5f\x10\x32\x00\x7f\xa7\xa0\x67\xe9\x0e\x24\x68\xf0\xa3\x9d\xac\x84\xac\xeb\xb8\x2f\x98\x7d\x12\xf1\x68\x99\x5f\x8d\x90\x3b\x1b\x79\xcc\x4d\x06\x09\x2a\x9f\xdf\xd1\xf9\x4c\xf0\xc8\xaf\x06\x58\xba\x6d\x9a\xf1\x69\x5e\xea\x0b\x26\xfa\xcc\xed\xad\xd0\xcb\x85\x25\x3d\xce\xaf\x08\x19\xfc\x2e\xfa\x53\x97\xc6\xf6\x89\xc2\x80\x92\x3d\x45\x2a\xe9\x0f\x69\xdc\xc1\x61\xd5\x77\xa4\x21\x37\x70\x17\x3e\x5f\x53\xd7\x8e\xfa\x4e\xd6\xf2\x64\x3e\x9b\x39\x3e\x18\xa4\x61\x50\x09\x68\x45\xdb\x69\x6a\x1f\xef\x66\x4e\x74\x12\x10\x05\x82\xad\xfb\x4a\x2f\x16\xae\x1e\xa7\x2a\x8d\x47\xba\x9e\x11\xe5\xe8\x1d\xd2\xee\x63\x5c\x3d\x7e\x7a\xbe\x5a\xf1\x4c\x3d\x28\x0a\x71\xcd\x97\x6c\x94\x89\xed\xcd\x0b\xa0\xad\x3d\xe5\xca\xf4\xf2\xd9\x26\xbd\xe4\x9a\xf1\xb0\x4b\x45\xcf\x5b\xbe\xb9\x34\xf3\x86\x93\xb7\x15\x68\x76\x9f\x1c\xad\xf2\xcf\x7c\x79\x7c\xa4\xc9\x63\x72\x34\x3b\x3e\x52\x62\xab\xff\x8e\xc8\x40\x4e\x2b\x99\xb1\x91\xae\x23\xc9\x75\xa1\xf7\x2e\xf3\xd5\xf1\x45\x5a\xf1\x7f\xfd\x93\xbe\x99\x15\xdf\xbd\x7a\x5c\xac\x1f\xfc\xf8\xe0\xe1\x03\xfd\xef\xd1\xf7\xdf\x3e\x7c\xf0\xe4\x87\x07\x0f\x9e\x3c\x78\x0e\x01\x3a\xfc\xc9\x83\x07\x0f\x9e\x3d\x7a\xf7\xe0\xc9\x83\x57\xd7\x8c\x8d\x68\x06\x66\x83\xd7\xf9\x52\xad\x99\x9c\xae\x81\x6e\xb0\xb9\x37\xd1\x76\x43\xe9\xff\xcb\x25\x88\x3c\x62\x49\xa8\x9c\x7e\xd4\xc7\x8f\x9c\x8a\xd5\x4a\xf3\x1d\x9a\xa2\xdc\xd1\xfb\x58\xd2\x99\x26\x9e\x59\x14\xc9\xe9\x36\x95\xbc\x04\x09\xae\x41\x71\xb3\xa5\xee\xf7\x04\x09\x00\x5d\x4a\xb1\x4d\x80\xb9\x5b\x49\x42\x0b\x9e\x5e\xf1\xfe\xad\xb8\x95\x31\x27\x7b\xc7\xc1\x1a\x3e\xf4\x92\xab\xa7\x39\x2f\x96\x31\xd1\x6c\x66\x41\x47\x9f\xf8\xcd\x6e\xdb\xa2\x36\x2f\x8c\x87\x13\x8f\xe4\x60\x4a\x8f\x0b\x7d\x27\xfd\x08\xe0\xd2\x4d\xcc\xeb\x26\x06\xa8\xfa\x88\x7e\x16\xf1\x03\xd0\xd0\x31\xc1\x17\xc5\x4e\x42\xe8\x23\x08\xdd\x9b\x7b\x84\x47\xc2\xf2\x55\xfc\x50\xd8\x65\xf9\x5d\x1e\xa3\x98\x83\x8e\x24\xaf\xf2\x3f\x5b\x47\x35\xf2\x5d\x88\xfc\x71\x80\xd1\xe3\xa8\xa4\xff\x93\x88\x53\xa9\x39\x70\xd8\x22\xa6\x67\xb6\x68\x6c\x94\x9f\xeb\x27\xdd\x40\x48\xf6\x10\xde\xf9\x40\x72\xb2\xd7\x87\x94\xf2\x6f\x3e\xd9\x4e\xbe\xda\x4e\x57\x42\x66\x1c\x11\xf4\xd8\x70\x46\xaf\x73\x54\xe9\x92\x9d\x7b\x54\x5d\x17\xd3\x75\x5a\x3d\xc5\x03\x6f\xe1\xb5\x18\x87\x09\x4b\xbe\x3f\x23\xc9\x23\x6b\x62\xfd\x9b\x24\xbf\xc9\xae\x17\x9e\x28\xfa\x4d\x9e\xed\xce\x0d\xbe\xf8\xd9\xee\x9c\xaa\x92\x0c\xfe\x70\x77\xc0\x55\x5e\xe6\xd5\xfa\x59\x89\x10\x36\xcd\x97\xb1\xb6\xb6\xf7\x99\x35\x9b\x1d\xaf\x4f\x52\xab\x32\x73\x3c\x1e\xaf\x49\x5a\x9e\xad\xcd\x95\x74\xf0\xbd\xed\x6d\xa5\x8b\x09\x2f\x96\x23\x7d\xb1\xde\xe4\x7f\xf2\x82\x5f\xe6\x17\x79\x91\xab\x9b\x11\x63\x97\x5c\x19\x41\xca\x12\x2e\xb7\x71\x0e\xd9\x34\x4d\x9c\x6a\xde\xfe\x0d\x2f\x97\x5c\xe2\xcd\xd4\x45\x4d\x2b\x9d\x34\x8c\x67\x23\x3d\x74\x23\x12\xa8\x95\xfa\x86\xdd\x8d\xed\x13\x2c\x6f\x56\xd2\xdc\x1c\x70\x17\xa9\x7c\x9a\xeb\x93\xf5\x8e\xb3\xc0\xa5\x9c\x80\x3a\xbb\x1c\x91\x6e\x76\xbd\x59\x1f\x28\x25\xf3\x8b\x9d\xe2\xf1\x28\xdb\x4c\x4a\xa1\x26\x70\x49\x29\xd5\x88\x8e\x94\xdc\x71\xc8\x77\xb9\x53\x8a\x7f\xb9\x4e\x4c\xe6\x57\xe8\x67\xfc\xcb\xb5\x99\x41\xbb\xeb\xa0\x13\x4b\x4c\x5a\x59\x7a\xdd\x4d\xdf\x26\xb0\x92\x17\xa9\xe6\x1e\x8f\x8f\xfe\x9c\x80\xdd\x7d\x72\x34\x87\x32\xdc\xa1\xf6\xe5\x93\x15\xd2\x6f\x78\x5a\xed\x24\xbf\x23\xb5\x49\xe1\x3a\xf3\xe2\x6f\xe7\x80\xa3\xb9\x49\x7f\xe6\x6a\x0d\x4b\x6c\x8d\x80\xdf\x99\x66\x1c\xcf\xef\x18\x0a\xb1\x53\x3a\x55\x72\x54\x8a\x12\x6b\xd7\x94\xd9\x9b\xe3\x33\xbf\x0d\xae\x65\xe7\x41\xe3\x75\x70\x35\x22\x87\xeb\xc1\xa9\x02\x37\x26\x41\x97\x74\x55\x61\x51\x90\xa8\x49\xfe\x0b\x9c\x50\xc6\xed\x26\x1e\x53\x4f\x35\x2d\x6a\x2f\xc2\x76\xc5\xe9\x45\x25\x0a\x40\x79\xc6\x4c\xc9\xd1\x68\x2c\xc4\x78\xb4\xfd\x7c\x7c\x04\xa7\x5e\x72\x34\xdf\x7e\x3e\xf6\x96\x68\xf5\xc5\x65\x5d\xb9\xc9\xf9\x0e\xbe\x6d\xb3\x2c\x97\x1b\x74\x0d\x5a\xdf\x6a\x73\x53\xd7\x79\xcf\x4e\xf5\xf6\x67\x67\xab\xa8\xf4\x02\xbc\x92\x8e\xe8\x68\x82\x6b\xd6\x9c\xcf\x61\x9d\xe1\xe6\x6e\xed\x3e\xaf\xf4\xa0\xfa\x11\x41\xb1\xca\xbf\x81\x5e\x99\x06\x1a\x7a\xf5\x27\xfa\x4f\x9d\xcc\x83\xa6\x41\xd4\x36\x5d\x2e\xf3\xf2\xf2\x0d\x70\x0e\x33\x42\xab\xba\x96\x51\xb4\xa9\xeb\xd8\x4b\x0a\x8c\x5c\x7a\x51\x70\xc0\xdb\x44\x43\x65\x8f\xa3\x58\x04\x5f\xb1\xeb\x15\x49\xb8\xf7\xa1\xbb\x7b\x95\xf3\xeb\xa7\x52\x6c\x18\xfe\x7c\x27\x98\xa6\xf9\xb2\x52\x34\x9f\x4a\xbe\x05\xf0\xd3\x9f\x9b\x34\x7e\x50\x90\x56\x67\x46\x1b\x19\x09\x64\x18\x93\xd8\x99\xe4\x9f\x11\x3a\xd8\x6c\xae\xa5\x0d\xd7\xb9\x5e\x01\xc3\xc3\x66\x7a\x09\xa4\x95\xd2\xa7\x04\x5e\xb7\x58\x13\x80\xab\x75\x36\xc8\x0d\x20\xe3\xf3\xbc\xe4\x28\x3a\xae\x6c\x51\x25\xec\x87\x87\xa9\x59\xd9\xf9\xf4\x22\x95\xae\x9c\x0b\x1b\x3c\xf3\x49\x75\xf5\xa8\xc8\xb7\x5b\x7d\x25\x9f\x9b\xf5\xf7\x72\xb7\xb1\xd9\xcd\xe7\xb3\xb2\xe4\xb2\x15\x06\x92\x3e\x5b\x6f\x5a\xe4\x97\xe5\x2f\xf9\xf2\x92\xab\x0a\x0b\xca\xd2\x6c\xcd\x97\x3a\x91\xcd\x87\x21\x9a\x19\x76\x2d\xc2\xa0\xd7\x38\xd7\xdf\xdb\xc2\x36\xe9\x67\xdd\xb5\xd6\xe7\x73\x63\x17\xdd\x84\x20\x0e\x9e\x69\x38\x5c\x18\x1f\xff\xca\xec\xaf\xf7\xf6\x17\x80\x97\xfd\x1a\x7c\xbd\x77\x7b\x6b\x9d\xaf\x14\xe6\xaf\x78\xf1\x54\x48\xf3\xc2\xfd\x82\x97\x3b\xd7\xb5\x96\x98\x8b\x96\x53\xd0\xf9\xcb\x49\x60\x5d\x41\x6e\xe1\xfe\x0e\x72\x6d\xf6\xca\x7a\x63\x8f\xb9\x15\x9f\xd3\x26\xfa\x15\x84\x10\xfa\x22\x00\x00\x78\xd1\x94\x91\x83\x2d\x8e\x2f\x92\x32\x57\x97\x07\x2b\xc0\x06\x8e\xfd\x4f\x84\x33\xa5\x1c\x37\x4e\x65\x62\xf5\x4f\x03\x74\x0a\x32\x04\x5d\xec\x4a\x8a\x52\xe5\x5c\x32\xf3\x09\x8b\x56\x68\xb6\x53\xf3\x74\xd4\x5e\x8f\x8c\xbc\x79\x3c\xa6\x1c\xf9\xb3\x28\xe2\x32\x68\xea\xeb\x46\xf2\xfa\x52\x35\xb7\x21\x02\x46\xf6\xa6\xbf\x01\xb3\x43\x4b\x26\xa3\x08\x5d\x91\xa6\x9f\xe3\x6f\xbd\x9b\x40\x4b\xc6\x00\x8b\xe5\xde\x33\xbf\xd4\xc9\x37\x4e\x41\xa1\x25\xbf\xfb\xbe\x34\x42\x93\xdc\x5d\xda\x66\x46\xa6\x36\x43\x9b\xec\x6b\x5c\x92\x24\x34\xc7\x71\xe1\xbe\x59\x8e\x0b\x3c\x4b\xcf\x0d\x5d\x8d\xa2\x58\x8c\x59\x4f\x44\xa3\x2e\xbf\x10\xe3\x18\xfa\x95\xf1\xbc\x88\xf3\xa9\x07\xfa\x7d\xaf\x24\x75\x3d\x27\x5f\xab\x44\x8c\xd5\x3e\x30\xa3\xf0\xe4\xd6\x22\xa3\x92\xe9\x01\x1d\xa8\x9e\x79\xc7\x64\x12\xa2\x87\x8c\xbb\x76\xbd\xcd\xed\x05\x23\x30\xb3\x80\x05\x74\xe8\xa5\x82\xdd\x11\x67\x51\x5f\xe3\x7b\x1f\xaa\xaf\xb3\xcd\xa4\x9a\x7c\x78\x3b\xbe\x77\x49\x47\x23\x32\x6e\xa6\x54\xad\xb9\x9f\x34\xfe\xef\xf5\x87\x8a\x7c\xa8\xbe\xd6\x09\x8f\x20\xd7\x88\xd0\x57\x2a\x58\x2b\x9f\x74\xab\xde\xc4\x9c\x50\x58\x44\xf4\xc0\x2d\xe3\x2b\x74\x34\x7e\xdf\x07\x8b\x79\xd3\x23\xe0\xb7\x27\x48\xb0\xd4\x4c\xd8\xe0\x8d\x88\x15\x09\x0c\x25\xca\x13\xd9\xb0\xe6\x0d\xa4\xd1\x59\x09\x88\x0c\xc1\xf1\xf0\xa5\xf3\xf9\x68\x34\xce\x09\x19\xb4\x19\x93\x12\x09\xf0\x08\x4d\x87\x42\x01\x88\x39\xc8\x05\x15\xe6\x54\xc3\x1b\x71\x2b\x95\x25\xb7\x7a\xb1\x68\x16\x62\x44\xf6\xca\xa4\x77\x4f\x59\x8b\xd1\x28\x19\x01\x0f\x45\x7f\x0f\x86\xf7\xf7\x3b\xc6\xc8\xdc\xa2\xa1\xf0\x81\xb7\xe3\x00\xde\x0e\x2b\xd8\xa4\xf2\x32\x2f\x41\xa0\xa5\xa0\xee\xa6\xe4\xc7\x46\x14\x3e\x63\x6e\xdd\x35\x9b\xcc\x19\xa7\xc1\x3c\x78\x8b\x9e\x96\x8c\x1f\x2b\xf6\xac\x8c\x4b\x72\x4c\x6e\x4b\x16\xe7\x70\x3e\x96\xcb\x18\xe0\xe8\x08\x60\xc2\xa2\xd8\x53\xea\xbd\x05\x9f\xd9\x7a\x92\x4f\x95\x98\x66\x6b\x83\x5d\xad\xcb\x78\x6e\xca\x30\xb7\x15\xaf\x90\x81\x9c\xb0\xd2\xaf\x75\xe2\xca\xd1\x85\xc6\x25\x08\xb0\xa1\x12\xd2\x4a\x86\x95\x74\xed\xe3\x5e\xf6\x8c\x23\x35\x94\x72\xa0\xdc\x91\xf4\x24\x8f\x25\x95\x48\x3a\xf5\x35\x31\x3c\x9b\x1e\xc7\x2e\xc4\x8b\x74\xc7\xd4\x8c\xca\x03\x5b\x5c\x32\x3d\xda\x03\x79\xda\x2a\x11\x84\xe7\x61\x1d\xb2\x29\x98\xf1\x90\x00\x3c\x6b\xfa\x70\x21\x62\xee\xb6\xca\xa1\x25\x4b\x8e\x27\x73\x00\x6d\xe5\x76\x1d\xea\xe0\x85\xcb\xc8\xdc\x2f\xeb\x34\xfd\xec\x50\x51\xe7\x24\x51\xa7\x93\x39\xe0\x58\x7b\x65\xc1\x8e\xe8\x96\xe6\x5c\x98\x7b\x41\x08\x4a\xa6\xe8\xdc\xef\xd1\xf3\xfe\x59\x51\x7d\x2b\x9c\x96\xe8\xeb\x5a\x8a\x5d\xb9\xc4\x73\xc1\x2c\xdb\xf1\xce\x3f\x4e\x2c\xed\xbe\xf5\x85\xda\xc9\x01\x61\x37\xd5\xbc\x99\x4b\xd2\x90\x4d\x2f\x05\xe6\x83\x26\x24\x1d\xc1\x37\xb6\xcc\x3b\xda\xba\x15\x61\x12\x5d\x8f\x4d\x10\x56\x83\xf1\x17\xa9\xd4\xbb\x34\x69\x88\x1e\x08\xf4\x90\xc2\x2c\x64\x32\xa3\x4b\x91\x99\x86\x96\xa6\x4d\xf6\x73\xbc\xd4\x24\x79\xac\x1a\x66\x90\x86\x7c\x62\xa2\x5a\x8c\x23\xc5\xf1\xc5\x48\x5f\xa9\xff\x69\x60\xf6\x9e\x6d\xdc\x0b\x3d\x7c\x5f\x71\xa9\xfa\xae\x76\xde\x1d\x6a\x93\x97\x93\xe6\x86\xa4\x2f\x75\xfe\x92\xba\x72\x5c\xe9\xc8\x3d\xe7\xaf\x85\xcc\xff\xfc\x42\xa9\xf6\x16\x36\x9f\xcd\xfe\x71\x7c\xa4\xeb\x70\x21\xdd\x4a\xd6\x5e\x25\x03\x1e\x97\x84\x82\xfb\xc2\xef\xf2\xb8\xec\x7f\x13\x28\x5b\xef\x1f\x2a\x2e\x9b\xd7\x01\x0a\x4a\x94\x79\x96\x16\x23\x2b\x15\xcb\xfb\x8b\xc9\xfd\x09\xd5\xa5\xe4\xfe\xeb\xc8\x08\xfa\x29\x4a\x65\x0b\xc2\x11\x5e\xf3\xec\x13\x5f\xfe\xc6\xa5\x40\x36\x7a\x38\x6f\xae\x53\xcd\xf0\x58\x6a\x9e\x97\x86\xb5\x76\xd3\xd1\xc4\x60\xfe\xd1\xfc\xdf\x70\xc2\x78\xa6\x37\x3e\x4a\xda\x4f\x21\x0f\xd1\x5c\x12\x82\xb3\xad\x09\x9e\xc2\x8b\x66\x4c\x3a\x0c\x1d\x44\xa6\xcb\xe5\x23\xcd\x61\x44\xd1\x73\x5f\x98\x6f\x1f\x60\xee\xcc\x43\xfa\xcb\x34\xaa\x20\x2e\x40\x33\xd9\xc5\x59\xb3\x2b\x5c\x84\xd1\x0c\x09\x64\xb3\x5d\x06\x28\x78\x9c\x50\x7d\x35\xe2\xed\x16\x9f\x8e\x02\x7d\x82\x40\x46\x6a\x58\x67\xa3\x7e\x71\x50\xb3\x81\xb7\x34\x1b\xcc\xcb\xdd\x9e\x50\x7c\x0e\x55\x7f\x4d\x86\xb5\xf7\x51\xb9\x61\x3b\xfa\xab\x87\x31\xb9\xc0\x67\x38\x92\x6c\xec\xdb\x17\xba\x91\xba\x73\x8e\x9e\xfe\xfd\x39\x6a\x59\xfb\x90\x5b\x44\x34\xd5\x64\xdb\x6a\x04\x35\x05\xd8\xeb\x27\xd8\xd2\x7b\x81\xb8\x64\x07\xdf\x1b\x95\xde\xc6\x77\xef\x71\x7e\xf2\xcf\x28\x92\xc3\x9e\x32\xea\xba\x1c\xf6\x95\x72\x9c\x8f\xc7\xa4\x37\x87\x3e\xe5\xfa\xae\x26\x51\xf4\x9b\x66\x4b\x75\xed\xd0\x6c\xfa\xd7\x9b\xdc\x31\xf3\x69\xf5\x18\x90\xb6\xbd\x61\xc3\x5b\x3b\x00\xda\x06\x4c\x58\x20\xeb\x88\x65\x73\x4f\x2f\xa7\x12\xd8\x2e\xe0\xcc\x68\x6f\xa6\x87\x42\x29\xb1\x31\xb9\xcc\xe6\x2f\xa7\x17\x10\xea\xf2\xf9\x52\x22\x93\xfd\x42\xc8\x25\x97\x26\xb7\xcd\xa0\xd3\x1f\x55\xa2\xc8\x97\x88\xef\x8d\x4f\x2a\x23\x6a\xda\x11\x45\x36\xe1\x22\x96\x5d\x59\x6f\xc0\xb1\x8e\x2e\x0a\x91\x7d\x82\x46\xf7\xa6\x5b\x87\x4d\x75\x3d\xec\x4d\x7c\xed\x8f\x06\xb2\xc8\xc9\x17\x1b\xa0\x9b\x8d\x85\xfb\x53\x9f\x89\x2b\x2e\xf1\xd4\x7c\xc9\x3f\xab\x77\xe2\xad\x2d\xc5\x4f\xe5\x9f\xad\xb1\x6c\x49\x99\x0f\xf4\xb3\x27\xd1\x81\x4e\xf6\xa4\xc4\x1e\x5a\xbe\x06\x66\xdf\xf5\xf3\xae\xda\x47\x2d\x23\xb2\x06\xe2\x49\x5a\x95\x08\x39\x55\x62\xbb\x70\x77\x6f\xcd\x84\x2a\xb1\x25\x09\xef\x79\xbf\x1f\x18\x1e\x6a\x55\x08\xcd\x86\x4f\x0a\xe5\x76\x72\xee\x97\x68\x56\x81\xfd\x91\x94\x63\xde\xcf\x1c\x09\xf6\x22\x07\x34\x58\x9a\xe2\xaf\xdc\x2a\x4c\xc9\x29\x2f\xab\x9d\x74\xf8\x4b\xf6\xdb\xbb\x1f\x14\x4d\xa0\xe1\xe6\x07\xd5\x89\x58\xc4\x82\x55\xb6\xb8\xd7\x79\xfc\x44\xff\xad\x08\x39\xd0\x04\x42\x12\xec\x7b\x5e\xc6\xa0\x6b\x98\x56\x4a\x33\xcf\x31\x21\xa7\x2c\x05\x57\x8a\x41\x49\x05\x21\x93\x03\x25\xd1\x94\x15\x16\x17\xe1\x56\x37\x33\x11\x54\x89\xc4\x0d\x6d\x4a\xc5\x78\xee\x9b\x92\x7d\x75\x88\x7d\xd5\xdc\x1e\xbe\x18\xfb\x82\xb3\xba\x6e\x18\x5b\xb8\x61\xc0\xc5\xf4\xc0\xba\xf4\x50\x08\xd9\x77\xb1\x22\x93\x5e\xa5\x8b\x31\xf2\xc1\x1e\x9f\x91\x1f\xe0\x9e\x05\x2b\x71\x7d\xa2\x88\x44\x06\xa2\x91\x55\x3c\x94\x20\xfd\xc8\x97\x4b\x5e\xea\x73\xac\xa7\x45\x51\x04\x69\x2e\xcd\x47\xec\x7d\x99\x65\x0b\x0a\x48\x82\x18\xb7\x6e\x10\x0f\xfd\x4f\x2f\x0a\x80\xf3\x6b\xe4\x34\x88\xa4\x58\x35\x48\x8a\x63\x52\x9d\x15\xe7\x41\x39\xfb\x03\xad\x88\x55\x4b\xcc\x0c\xc9\xcb\x71\x6e\x2e\xd7\xcd\xfc\xfc\x61\x0d\xec\xc2\xa3\xc1\x5c\x5e\xba\x0a\x5f\x28\xac\xf9\xc5\x13\xea\x19\xd1\xef\x58\x01\x6d\x46\x48\x96\x46\x19\x31\xf0\x53\x5f\x06\x82\x53\x07\xd5\x6c\x1f\x5e\xfa\x65\x11\x0d\xb7\x2b\x49\xf7\x51\x04\x6f\x5f\x47\xdd\x17\x32\x5e\xa8\x11\x21\x00\x01\xdd\x2c\xa4\x60\xba\x53\x96\xfb\xdf\x13\xe1\x0c\x03\x3d\xc9\x45\x40\x9c\x80\xa0\x76\xe5\xc1\x6e\xf5\x0b\x1a\x64\xf5\x0b\x4f\xc9\x78\xde\x64\xb6\x67\x5b\xa7\xac\x71\x4a\xcb\x96\x74\xb9\x9b\x68\x61\x47\x34\x99\xcc\xe9\xc1\xc6\x86\x95\xe1\xc2\xfe\x5d\x9f\xf3\xc3\xd9\xde\x79\xc5\x0d\x4d\x3e\x9d\xd5\x12\x9a\x02\xc6\xfe\x45\xf6\xa9\x90\x9b\x54\x57\x12\xeb\x1d\x05\x43\xda\x08\xdf\xfd\x0b\xeb\x77\x01\x1c\xb9\xdb\x90\x97\x5c\x3d\xd4\xd7\xd2\xbc\xbc\x7c\x04\x14\xe5\x0d\xcf\x54\x4c\xac\x62\x63\x65\x9c\x30\x1c\x4e\xd4\xd4\xf0\x3e\x24\xf3\xcd\x62\x43\x96\x3f\xe7\xd7\x5b\x21\x95\xc5\xf8\x32\x3e\x89\xd8\xcf\x71\x89\x42\x60\x6a\xbd\xc6\xf0\x65\xae\x84\x7c\x56\x7d\x0f\x5b\x9a\x0d\x4b\x47\xf3\xfc\x65\x02\x49\x4d\x84\xe3\x2e\x7a\x29\xbd\x9f\xd2\xce\x70\xdf\x45\x56\x19\x07\x30\x8f\xb1\xd9\x98\x74\xad\x9c\x33\x15\xd0\x05\xb0\xe8\x8e\xcb\x7c\x53\x31\xc5\x5d\x24\xa0\x72\x57\xec\xec\x7c\xdf\xb6\x4d\xed\xb2\x5e\x28\xba\x01\x22\x1b\xf6\xd5\xb9\x25\x07\x79\xa4\xf1\xa2\xac\xb0\xe2\x28\x52\x76\xcc\xe0\x20\x3a\x65\xd2\x3d\x0e\xf9\x71\x4a\x9c\x98\x98\x77\xc2\xe9\xe2\xcb\xee\xbb\x4c\x5d\xf7\x04\x9e\xba\xac\x44\x9f\x83\xc1\x53\x91\x89\x8a\xa2\x19\x63\x80\xcd\xd5\x50\xa1\x3f\xc0\xd8\x21\xc6\x66\x2b\x6f\x6c\x9c\x03\x16\x43\x8c\x4a\x58\x50\xfa\xec\xb5\x7b\x33\xec\xd4\xa4\x21\x77\x76\xbd\xbc\x00\x39\x20\x2d\xad\x64\x2b\x65\xee\xd0\xcc\xa9\xdf\xed\xf1\xa1\xbc\x9a\xa9\xb5\x23\x75\x22\xa2\x48\x4c\xbc\xef\xfb\x33\x3c\x68\x6d\x7b\x4c\x3d\xb4\x49\xa2\x19\x6f\x33\x28\xa7\xa9\x1e\x15\xfc\x3d\x49\x31\x6f\xd0\x1e\x37\x7a\x84\x7e\x86\x72\x7f\xb2\xef\x00\x42\xb7\xfc\xa1\xfd\x4a\xcd\xc8\x14\x4c\x0c\xbd\x79\xac\xeb\x74\xe8\x66\x40\x4f\x50\xf8\xe0\x36\x6c\xf4\xfd\x30\xc0\x4f\x02\xcb\xd5\x4b\x01\xdf\xc7\x71\x1b\x71\xbb\xbd\x37\x67\x8c\x95\x50\xa1\x83\x85\x50\xa7\x26\x04\x9a\x70\x62\x3e\x74\xf3\x16\x31\xfe\x66\xbf\x59\xe8\x42\xda\x44\x32\x45\x92\xb8\xf9\x3c\x55\x8b\x30\x71\x13\x45\xac\xcc\x0e\x83\x48\xd2\x44\x9d\x28\xbd\x64\x31\x9f\x69\x16\x4a\xe4\x4a\xbc\x2d\x92\xb0\x46\x6a\x1b\x7a\x22\x17\x61\x2e\x53\x03\xd4\x6d\x13\x51\x49\x6c\x5d\xef\xc4\xa9\x3c\x50\xd3\x8c\x42\x5d\x92\x10\x42\x06\x36\x35\x93\xa0\xa9\x85\x8e\xb4\xfd\x57\x51\xe4\xcd\xcc\xf9\xeb\x2f\x99\xe6\x52\x06\x6f\xfd\x56\x0d\x06\x54\xc8\x9a\xfc\x40\xfe\x8d\xdb\x3e\xd8\x53\xb0\xe3\x0b\xd8\x63\xbb\x28\x6a\xf6\xfe\xa1\xbd\xf8\x3f\xbf\xbf\x43\x1e\x22\x63\x2f\x45\xec\xde\x8e\x76\xa7\xff\x04\x35\xb9\x50\x87\xc7\xb1\xf6\x46\x63\xe2\x0b\x4b\x8b\xe6\xac\x97\x79\xd1\xfc\x9c\x2d\x19\x00\xb7\x1b\x3e\xa0\x51\xf8\x2f\x62\x0f\x78\xb7\xe4\x9f\xd5\xdb\xfc\xa2\xc8\xcb\x4b\xe7\x07\x32\x8a\xae\x34\xfb\xe9\xa9\x67\xea\x0b\xe1\x2f\x6b\xce\x0b\xe3\xd4\x81\xa9\x45\xfb\xb1\x02\x5b\x9e\xa8\x43\x1a\x79\x0a\x50\xfa\xad\x41\x88\x59\x17\x34\xf3\xb6\x00\x5d\xb2\xd9\xf1\xf2\xc4\x39\xda\x59\x5a\xaf\x06\x6b\xb6\x3b\x5b\x02\x62\xdc\xda\xf2\xa2\xc7\x16\xdf\x75\x0d\x86\xe6\x51\x84\x7f\xbd\xca\x19\x13\xc8\x2c\x1f\xa7\x43\x86\xb1\xc7\x24\x65\x45\x9c\x22\x79\x58\xb1\xdc\xde\x6c\x54\x14\xa9\x13\x96\xe9\x42\x9a\xb1\x1c\xac\x8d\x9b\xd8\x2a\x8a\xe2\x0b\x11\xbb\x4f\x3a\x42\x76\x6b\x44\x40\xf4\x1d\xaf\xd8\x70\x4e\xa8\xe4\x31\xa7\x6b\x9a\xe9\xc5\x4d\x57\x51\x14\xbf\xd1\x59\x9a\xe2\x08\xf5\xbf\x02\xb6\xef\x90\x45\xba\xcf\x71\x66\x7a\xcb\xd0\xd4\x74\xc4\x9f\xb5\xbd\xc3\x91\xde\xb2\x5d\xd3\x88\x81\x08\xa5\x5c\x5b\x9a\x92\x7d\x36\x66\x6b\x38\x25\xf6\x38\x30\x76\x40\xf6\x7a\x53\x76\x57\xb4\x39\x6e\x08\xfd\xc2\x9a\x1d\xe9\x8d\x1b\xec\x21\x69\x66\x37\x8a\xf4\xd2\x1f\xea\xb1\xcd\x0c\x87\x61\xc5\xa9\x99\x53\x60\x7f\x23\x62\xe9\xe9\x00\xe3\xb7\xaf\x80\x44\xdc\xed\xb9\x0a\xaf\xd8\xa1\x6c\xa4\x91\x83\xce\x68\x81\xed\x0d\x75\x2a\x5a\x14\x9e\xb6\x08\x7c\x8b\xbe\xe3\x1b\xf9\x3f\x67\x33\x38\xa4\x0e\xe8\x5e\x0c\x67\x0d\x4f\xf2\x9f\x36\x80\xa4\x72\x87\x25\x2d\xd9\x70\x76\x1c\x97\x87\xc5\x51\xaa\xcd\x1d\x0d\x91\x3d\xaa\xeb\x38\xbc\xd3\x83\x75\xce\xad\x12\xdb\xe6\x82\x7b\xf8\xd5\x63\xb2\x02\x16\x0b\xef\xfe\x7b\xd2\x9c\xe9\xec\x67\x4f\x9d\xd9\x90\x58\x42\x87\x71\x9b\x0f\x6a\xa8\xc0\x21\x7e\x28\x4c\xa1\x89\x1f\x89\x22\x64\xcf\x8e\xd1\xc5\xe3\x6f\x9a\xf6\x22\xaf\xf2\x5c\xff\xe4\xd0\xa6\x87\x60\x83\x43\x7f\x45\xd8\x41\x7d\x93\xba\x2c\xd3\x22\xe6\x74\x84\x43\x3d\x0a\x65\x97\xee\x60\xf2\x2a\x6c\xeb\xe8\xf8\x44\xcb\x9c\x2d\x07\x52\xeb\xe3\x37\xf6\xeb\xb4\x13\x65\x9d\x8a\xf2\x9e\xaa\x69\xa7\xab\xf4\x70\x5b\x7a\x46\xee\x40\xea\x77\xa2\x3b\x86\xcd\xa2\xfa\xb1\x0d\xbd\xf7\xde\x59\x06\xfc\x80\x47\x29\x8c\x2f\xfd\x0f\x7c\x98\x67\x99\xd6\x30\x97\x38\xcc\x25\x81\x37\xcc\x32\xaf\xd6\x01\xc0\xda\xaf\x58\xc5\x81\xa7\xe2\xe6\x71\x61\xea\xde\x9a\xf0\x66\xd5\x64\xe8\x91\x34\x2a\xb0\xa0\x38\x98\xa3\x77\x3b\xfb\xe9\x7b\x04\xaf\xe6\x41\x2b\x7c\xaf\xfe\xad\x0d\x9a\xea\x0b\x5c\x2c\xbd\x72\x7a\xe5\x14\xb5\x03\x94\xcf\x95\x35\x5e\x9e\x73\x5a\x99\x3d\x7b\x56\x22\x40\x69\xe5\x64\x1f\x68\x4d\x90\x9e\xfc\xdb\x3a\x89\x35\x08\x27\xae\xe8\x71\x10\x60\xa4\xdb\x39\x2b\x26\x92\x4a\xe3\x7b\xc1\xb8\x92\x36\x09\x0f\x5c\xfc\x06\x39\xdb\x19\x01\xdb\x64\xa7\x87\x71\x8f\x3c\x04\x12\x0c\x33\x54\x13\xf0\x01\x9e\x9f\xdc\x07\x87\xa4\x2f\xc1\xc5\x3e\x8d\xb3\xd3\xe9\x6c\x36\xaf\xeb\xec\x64\xa2\x7f\xe8\x6b\xc3\xdb\x3c\xc6\x8c\x7a\xaf\x71\x6e\x3e\x8c\x2b\x67\x45\x9c\xe4\x05\x8f\x5e\x0c\xf5\xcf\x5f\xc8\xa2\x03\xcf\x96\xe7\xe0\x04\xd8\x8e\x3b\xe7\x46\x8a\xc2\x3b\xda\x36\x8a\xcd\x8e\xd5\x09\x6f\x6b\xdb\x8c\xc7\x8a\xb8\xc0\x33\x65\x95\x6a\x58\x10\xd6\x3a\xc4\x83\xd1\xdc\xfb\x40\x39\x07\x67\x1d\x50\x7b\x6f\xf7\x81\xc4\x0b\x6f\xa2\x20\x08\x13\xac\x4f\xda\x06\xe2\x2f\x71\x2c\x98\xf0\x8f\x56\x3a\x1e\xa7\x44\x9e\x75\x34\x4e\x00\xc6\x57\x98\xb6\x81\xbc\x4d\x78\x55\x8c\x73\x5a\x1e\xcc\xe3\xdd\x89\xed\x83\x34\x48\xb1\x5e\x8b\x2a\xf9\x0e\x8c\xcc\x21\xf9\x3b\xa1\x52\xf7\xb8\xdc\x27\xb7\xc3\x30\x78\x1b\x96\xc1\xb3\x6d\x49\xfd\x33\xac\xff\x59\xd9\x9b\x46\xc9\x1b\xdc\xae\xf0\x0d\xc6\x7a\xc9\x77\xf3\x97\xdb\x6d\xa2\x87\xd0\xc4\x9d\xe5\xe7\x83\x91\xe2\x9f\xd5\x88\x31\xb1\x10\xdc\xb8\x27\x32\x0c\x92\x0e\xab\x9a\x0a\x92\x11\x28\x1e\x41\x70\xca\x63\x9d\x10\x67\x7e\x04\x2e\xca\x0c\x64\x7d\xa9\x0f\x03\x53\x3c\x1a\x98\xba\xc6\x96\x3c\x90\xb3\x94\xc0\xe5\xa1\x1e\x0a\x3c\x54\x42\xc0\x5f\x53\xd7\x06\xab\x25\x74\xa9\xee\x16\x9b\x3e\x3e\x5a\x41\x56\xeb\x09\x19\x35\xac\xc1\x64\xd4\x05\xc0\x6a\xf5\x59\x39\x1b\xe5\x1e\x6b\x4d\x9a\x40\xf1\xf5\x3e\xb1\x79\x9b\xae\xe5\xbc\x57\xa0\xd1\x51\x1e\x75\x1a\x68\xe0\x2a\x39\x2f\x39\x33\x64\x6e\x11\x1f\xce\x64\xfc\x2d\x38\x15\x73\xe9\xd4\xbe\xe5\xf4\x62\x97\x17\x8a\x24\x69\xde\x02\xa7\x13\x3c\x74\xd0\x01\x03\xe3\x14\xc7\x68\xc9\x4c\x8b\x07\x18\xa5\x9b\x81\x8c\x78\x8c\x3f\x18\xd8\x42\x6a\x8e\xe3\xce\x21\x85\x54\x26\x91\x4d\x8c\x59\x69\x39\xbd\xb8\x84\xf7\x46\x7d\xf1\x36\x3f\xeb\x1a\x15\x80\x5c\xb8\xfb\x58\xc4\x2e\x11\x73\x39\xa9\x97\x80\x79\x39\x29\x2c\x3f\x92\xa0\xd8\x38\xec\x1a\x93\xde\x28\xa4\xb0\xe2\x7a\x7d\x21\x9b\x2a\x16\xee\xd7\x78\x74\x34\x1a\x1b\xf9\x61\xd3\xde\xd1\x88\x24\x61\x18\x08\xa7\x74\xc5\x2d\x0c\x01\x9d\xe6\x22\xcd\x3e\x5d\x82\x2a\x0b\x2c\xd0\xe6\x93\xa8\x85\xff\xe9\x35\x57\x25\x71\x10\x73\xe0\xfa\x15\x14\x16\x14\x8d\xfa\xa2\x8d\xc3\x8c\x86\xd9\x00\x2e\xc2\x4f\xd9\x7a\x39\x0f\xb7\x9a\x22\x56\x45\x0a\x6a\x44\x03\x2c\x5d\x15\x74\x5e\x93\x21\x1c\x30\x28\x37\xd0\x4f\x0c\x13\x24\xb8\x37\x86\xed\x9d\xed\x65\x19\x19\x97\x8a\xca\xa4\xb1\x33\xe1\x7e\x07\x73\xe1\x42\x83\xd9\x70\xa1\x03\xde\x5e\x01\x4a\x27\xf4\xec\xd5\x79\x80\x6d\xa8\x9a\xb7\x0e\x5c\xea\xe1\x35\xd7\xc4\xea\xc5\x7c\xd9\x68\xf4\x37\x9f\x0f\xdd\x70\xde\x5d\xc0\x43\x6f\xba\xba\x61\xae\x50\xe8\x0b\xc6\xe2\xe3\xbc\x7d\x61\x80\x17\xe7\x9e\x8c\x5f\xb4\xb3\x69\xe6\xfb\x68\x34\xee\x56\x40\x47\x68\x4c\x08\xe3\xdb\xf7\x72\x5a\x4e\xdd\x89\x36\x29\xa7\xed\xf3\x8c\x04\xe6\x12\xa3\x71\x37\x05\xbe\xd7\xa0\xc3\x09\x4f\x4b\xa3\xd3\x13\x4b\x35\xf6\x0e\x7b\xb5\x69\xe9\x8b\x54\x7e\xe2\x12\xb6\x5a\xaf\x9c\xa4\xae\x05\xb9\xb5\x83\x84\x1a\xc2\x6e\xba\xbe\x38\x40\xe6\x44\x1d\xfd\xaf\x18\x89\x11\xc1\x36\x86\x0a\x22\x15\x57\x3f\x95\x7c\x99\x2b\x70\xe4\x92\x76\x06\x23\xf5\x28\x66\x7b\x7e\xa2\x28\x4e\x43\x9c\x92\xbe\x59\x24\xb4\xff\xf5\x0b\x80\x64\xc4\x61\x85\x3f\xb8\x36\x35\xe9\x59\xda\xff\x80\xe5\x8b\x2e\x24\xf9\x7b\x2f\x58\xcd\xb0\xda\x31\xd3\x6c\xce\xe1\x26\xb5\x16\x54\x47\xcb\xd6\x7b\x69\x82\x01\x27\x84\x0a\xc7\xab\x56\x6c\x76\x5c\x9d\x74\xb8\xb5\x86\x67\xad\x2c\xbf\xdf\xe5\xe8\xaa\x73\xba\x63\xa2\x6d\x64\x58\x10\x3d\x80\xc5\xf9\x60\x17\x45\x07\x46\xe7\x6c\x77\xde\xb7\xae\xee\xe8\x7c\xd1\xee\x65\xe9\xeb\x0c\x98\xe8\x11\x09\x38\xf4\xc6\xfb\x93\x6a\xde\x5b\x11\x97\xc1\x7e\x19\xd2\xdf\x3c\x29\x1b\x7a\xd4\x50\xf1\xe3\xf2\xb8\x64\x79\xf3\x6c\xe9\x8b\x0b\xdb\x33\xe2\x98\xb9\xb2\x59\x7f\x51\xd4\x43\xe2\x4a\xb2\xcf\x6c\xe3\x3c\xc7\x9d\xbc\xed\x85\xc8\xb2\x18\x0e\x66\x03\xb8\x03\xc3\x5f\xe4\xc0\x24\xe4\xf6\x54\x85\x8e\x59\x06\xc0\x85\x82\xbf\x52\x4b\xe8\xdd\x61\x6f\x13\xb9\xdf\x04\x19\x02\xea\x51\x7a\x9a\x59\x76\x94\xaa\x16\xaf\xe6\xda\xae\x4f\x83\x25\x7c\xe0\x15\x4b\xe7\x1c\xce\x08\x40\x50\x57\x8a\x84\x1a\xe9\x2a\xb8\x5b\xe9\x3b\xa7\xc9\x0a\xb7\xab\xf2\x1c\x73\xcf\x7d\xcf\x97\xdc\x47\x98\x86\x93\xa7\x7d\xd5\x12\x9a\x84\x81\x63\xba\x19\xdc\x5d\x4d\xfc\x71\x7a\xe2\x2d\xe1\xd4\x5d\x59\xcf\x52\xbd\x64\x9b\x75\x58\x40\xcf\xba\x2f\xcc\x66\x26\xc9\xa0\x30\xfe\xd0\x01\x66\x01\xe0\x86\xaa\xba\xde\x75\xd5\xd5\xf2\xcb\x52\x48\x3e\xc1\x87\xba\xc6\xe8\x72\xcd\xe3\x82\xee\xda\x58\x04\x7d\x34\x6e\x47\x68\x1e\x45\xc5\x34\xbd\x10\x57\x7c\xd1\x92\x5d\xee\x9c\xfc\xaf\xae\x25\x12\xbe\x44\x04\x5b\x6b\x47\xe8\x6f\x60\x27\x2d\xf9\x52\xa6\xd7\xc1\x73\xff\x3a\x3c\xbe\x35\x33\xf1\x3d\xaa\xff\x90\xdb\x58\x36\x9b\xa1\xae\xfd\x2f\x76\x76\x4e\x88\x75\xbf\xec\x5e\xda\xfc\xbb\xd5\x40\x05\x8a\x06\x8e\xd6\x5b\x51\x87\xa7\x73\x54\xd7\x71\x3e\x61\xdd\x23\x80\xaa\x50\xad\xeb\x39\x96\x74\xe0\x44\x54\xc1\x5b\x37\xea\x35\xec\x83\x7a\x60\x85\x07\x77\x8d\x6f\x9b\x2a\xcc\x1d\x88\x8d\xdc\x1d\x88\x7a\x63\x81\xf2\xb0\xb6\x75\x40\xcf\xb1\x65\x29\xcd\xd3\x06\x56\x9d\x3d\x11\xf1\x2d\x4a\xed\x92\x3e\x56\xd9\x53\x8a\x3e\xe5\xfe\x45\x74\x3c\x07\xbd\x3b\x5f\x6f\xd9\x25\x30\x32\x9f\x39\xbc\xe9\x86\x7a\xca\xa0\x61\x61\x94\x91\x3d\x6d\xd7\xb6\x72\x56\x3b\x1e\x85\x2a\x4c\x2d\x50\xe5\x25\x19\xcd\x46\x66\x62\xf9\xb4\x51\xf8\x9e\xc4\x6a\x51\x26\xd6\x37\x01\x64\xf7\x94\x29\x02\x79\x95\xa7\x5d\x15\x76\x62\xd2\xea\x44\x6e\xa4\x56\x0d\x38\x75\x5f\xb3\xfd\x16\x1f\xaa\x52\xb7\x19\x99\xf4\x8e\x1a\x70\x6f\xf7\xfd\x04\x12\x65\xe6\x5e\xf7\xbb\x69\x60\x2d\x6b\x9e\x1f\xce\x9d\xe6\x09\x4d\x98\x31\x42\xcd\x0e\x97\x60\x12\x4b\x6f\xb0\xb0\xa0\x4e\xd3\x71\xbd\x06\xcb\x60\x12\x2e\x03\xd1\x1e\x9e\xde\x7e\x05\xcd\x3d\x50\x8b\x1e\x1f\xf3\xf8\xd6\xab\x49\x0d\x2e\x9e\xbd\xa9\x39\x9d\x45\x51\x3c\x03\x1f\xa2\x90\xfe\x4f\x9b\xf0\xfb\x34\xfb\x14\x1f\x54\xc7\x9e\x11\x7a\x0b\xc3\x99\x40\xff\xa9\x51\x88\x83\x95\xb3\xdf\xd3\x8a\xab\xb7\x4e\xf7\x2a\xd8\x12\x7e\xef\x5c\x8a\x21\xe3\x2d\xbd\xee\x06\x70\xc6\xea\x40\x2c\xf3\x4a\x93\xa5\xef\x75\xbc\x69\x2b\x82\x70\xba\x56\x3d\x4c\xa5\x57\x46\x37\x17\xf1\xda\xf5\x4e\x6c\xbb\xcd\xc2\x35\x69\xe3\xbd\x46\x85\x11\xed\x26\xfd\xcc\xa5\xfa\x42\x8b\x74\x01\x9d\x3c\x64\x4f\x83\xd1\xf6\xdd\xa6\x21\xe2\xe6\x55\x14\x0d\xd7\x8b\xd1\xfc\x3e\x2c\x57\x50\x61\x1f\x74\x96\xc7\xba\x5f\xf5\xdd\x2c\xba\xee\x0a\xdf\x8a\xbc\x54\x1c\xb1\xf3\xaa\x4e\xb6\x30\xd6\xd8\x5e\x75\x86\x92\x19\x24\xbc\x76\x97\x4c\xf8\x9e\x76\x07\x22\x09\xc1\x69\x78\x7f\x7d\x80\xdd\x80\xfa\xe0\xf1\x9c\x7f\xd3\xe8\x7b\x1f\xc9\xb8\x79\x04\x3e\x24\x39\x76\x0f\x89\xbc\xe0\x88\x09\x24\x36\xaf\x75\x05\x31\x02\x64\x81\x3a\x96\x11\x2d\xcf\xc9\x90\xf1\xc5\x81\x66\xd8\xa7\x5c\xdb\x0c\x80\xf4\xd8\x53\xd0\xfa\xef\x4e\x93\x37\xc4\x8d\xf0\x61\xd0\xba\xd5\xba\x34\x9a\x13\xe8\xc4\x5c\xc1\x7a\xd8\x53\xef\x50\x21\xf4\xcf\x2f\x9c\x30\xce\xaf\x99\xd9\x7d\x33\x8a\x5b\xf2\x8e\x1d\x48\x6e\x0f\x6d\x02\x1d\xd3\xe9\xdf\x7e\xef\x37\x82\xd0\xb6\x05\x02\xbb\xc5\x83\x29\x79\x0a\x97\xc5\xe4\xcf\x3d\x7d\xef\x79\x1b\xc1\xe7\xa5\x96\x13\xa5\x52\x18\xc4\x40\x4f\xb5\x09\xf9\x0c\x0f\x9e\x3a\x28\x06\x9f\x6c\xfa\x9c\xb1\x21\x9e\xbb\x5f\x90\x61\xfa\xf8\x78\x4c\x7e\xcc\xad\x9f\x2f\xe7\x6d\x15\x13\x9d\xf1\x73\x82\x20\x37\x2b\xce\x5e\x4d\x5f\x8b\x8a\x75\x90\x93\xba\x48\xa1\x2b\x1e\x40\x85\xae\xb8\x87\x15\x0a\x82\x48\x6e\x89\x25\x53\x7b\xba\xd5\x25\x67\x9b\x6d\xb7\x70\x27\xbe\xd5\x99\x26\xc8\x39\xd7\x35\x9f\x66\xeb\x89\x9a\x66\x6b\x0f\x98\x70\xe3\x8b\x7b\x75\x7d\xc8\x65\xeb\xa4\xbe\xef\x6f\x1e\x94\xbb\xc5\xcf\x93\xd9\x42\x25\x1e\xcf\x7e\x79\x28\x15\x4f\xbc\x77\x85\x0b\xee\x59\x5d\x5b\xb3\x8e\x00\x30\x2b\x84\xf3\x7c\x00\xaa\x5a\x20\x80\xb8\xc1\xcb\x54\xd3\xfa\x8f\xbc\xeb\x1f\x06\x95\xd3\xbc\x87\x36\x6b\x88\x8e\x1e\xf3\xc5\xb4\xe2\x85\x95\x47\xd8\x56\x04\xf8\x9d\x75\x3d\x82\xef\x11\x63\x39\xad\x74\x86\x6d\x91\x83\x52\x62\xa5\xef\x2f\x05\xb6\x21\x5f\xc5\x69\x14\x95\x53\xe9\xcb\xef\x4f\xe7\x24\x5f\xc5\x37\x3c\x8a\x6e\x8c\xc0\xeb\x77\x91\x97\xf1\xe8\x43\x39\x22\x8c\x19\x3c\xc6\x30\xcb\x3f\x6e\x02\x23\x4f\xc6\x66\xe4\xb6\x60\x67\x8d\x9b\xc3\x1d\x9b\x1d\xef\x4e\xc2\x54\xc7\xbb\xf1\x98\x14\xb8\xa2\x83\xf6\x99\x64\x67\xbb\x73\x7d\x4f\x85\xb3\xde\x39\xc8\x61\xad\x9a\xa3\x28\x2e\xd8\x8d\x88\x2b\x1a\xc8\x5e\x71\xf6\xce\xf8\xf9\x9e\x10\xbc\xb6\xee\xda\x39\x27\xf3\xe3\xdd\xa9\x6e\xd6\x64\x82\xa3\x9e\xb9\x14\xfa\xda\xbd\x64\x60\x10\xbf\x89\x09\x5d\xb3\x6c\xaa\x44\x4c\x06\xd9\x94\x6f\xb6\xea\x26\x06\x35\xbb\x28\x92\xa7\xb3\xc5\x92\xad\x78\xbc\xc4\xf5\xb6\xd4\x4b\x53\x82\xe6\x3c\x4c\x88\x83\x63\x8d\xa2\x61\xba\x58\xeb\x94\xa8\xda\x41\xdd\x83\xfc\x93\x3c\x16\x46\xdf\x23\xb0\x44\xa5\xeb\x69\xb6\x1e\x5f\x89\xb8\x22\x16\x5e\x92\x24\x66\x4a\x40\x1d\x20\xaf\x0e\xcd\x4f\x14\xc5\x4b\xb6\xf6\x9a\x35\x23\xc4\x2a\xb2\x18\x83\x7d\xa3\xa3\xf0\x4c\x2f\x51\xba\x65\xa8\xab\xbe\xa4\x4a\x24\x6b\xaa\x0b\x4c\x8a\x45\x71\xb6\xfb\x47\x61\xaa\x3e\x4f\x2a\x2a\x64\x7e\x99\x97\x49\x5e\xd7\x71\xba\x30\x4b\xcb\x75\xd4\x03\x8a\x5d\x8c\xb2\x9d\x1a\x25\xa3\x31\xac\xff\x11\xd9\x0f\x9e\x4b\xa3\x99\xb5\x85\xab\x17\xa7\x23\x88\x7a\xc3\xd3\xe5\x88\x72\xba\x25\x7b\xa5\xc7\x27\x8a\x9e\xe0\x56\xa3\x7f\x48\x94\x06\x77\x9a\xca\x56\x2e\x54\xdd\x6c\xf3\xf2\x92\x0d\x67\xb4\x77\xf5\xb3\x9e\x96\x31\x5f\xa3\xf7\xba\xf5\x8a\x92\x15\xf9\xf6\x42\xa4\x72\xf9\x38\x55\xa9\x61\xfd\x9a\x00\x7d\x8e\x22\x54\x9b\x1e\x9d\x7b\xdb\x22\xcd\x4b\x94\xc7\x59\xc8\xbd\x23\x0e\x58\x8e\xbc\x54\x8f\x11\x9a\x5e\x73\x84\xd3\xbc\xd2\xbd\x7c\x55\x16\x37\x31\xa9\x6b\xe5\xe4\x42\x86\x11\x80\x4e\xd5\xf5\x7b\x15\xab\xc0\x5a\xec\x23\x07\x6f\x9b\x33\xfb\x26\x05\x83\x0d\xf6\x5f\xbe\x12\x89\x19\xae\xdb\x40\x72\x09\xba\x30\x32\xcf\x40\x3d\xda\xd7\x21\xa9\x36\xa9\x54\xfa\xa6\x57\x36\xe2\x06\x0b\xf4\x50\xf1\x02\x4c\x91\xda\xdb\xa3\xd4\xdb\xa3\xb4\xdb\x23\x77\x29\xec\x9b\x77\x9c\x03\xc4\xe4\x34\x5b\x9f\xce\x67\xb3\xba\x2e\x41\x43\xce\x24\x99\xcc\xcf\x31\x16\xdf\x9e\xf2\xe6\x83\x34\x44\xce\xa0\x60\x3c\x50\xa6\x28\x42\x53\x86\x0a\xb7\x22\xec\x4a\x73\x92\xa1\x1c\xae\x15\x6d\x29\x4a\x85\xc6\x08\x6a\x0a\x00\x4b\xaf\x3a\xc5\x4c\xb3\x75\x2a\x1f\xa8\xb8\x22\xe4\x74\x32\x27\xb7\x29\xfb\x4e\xc6\x9c\x7a\x8d\xa3\x23\x18\xa9\x11\x19\x5c\x48\x9e\x7e\x32\xe4\xa7\x29\x06\xe6\x2c\x8a\x5a\x01\x88\xe9\xed\x74\x10\xfd\xce\xe2\x0e\xb5\x5a\x8d\x6e\xc4\x08\x01\xad\xd5\x83\xd5\x93\x41\x1a\x45\xb8\x5d\x82\x9a\xf4\x96\xf1\x8b\xf7\xe5\x78\x9f\x5b\x8f\xdd\x67\xe7\x54\xea\xff\x50\xac\xe4\xe6\x3a\x9c\x67\x4f\xa9\x81\xb5\x93\x9c\x95\xde\x1c\x52\xc1\x6e\x11\x5a\x34\x59\xf1\x38\xa7\x33\x42\x75\x1c\x7c\x00\x16\xe9\x7e\x20\x0d\x31\xd7\x6b\x1f\x7e\xc1\x0c\xbf\xd1\x65\x75\x70\x49\x9d\xa1\x0c\x10\x1c\x45\xb1\xc6\xc0\x98\xf8\x95\x3d\x64\x03\x21\x92\xe6\x7c\x33\x21\x25\xcf\xd4\x88\x8e\xc4\x6a\x35\x32\x18\xa8\xed\x34\xe9\x36\x57\x69\x01\x90\x76\x07\x92\x55\x5b\x5e\x14\x70\x67\x1b\xd1\xd1\x2a\x2d\x2a\x1e\xc0\xa1\x71\x77\xe1\xc9\x36\x96\x69\xd1\xbb\x1c\x89\x91\xbd\x65\x6e\x45\x51\xe4\xe5\xe5\xd3\xb4\x52\xce\x17\x95\x09\x0b\xb8\xff\xbc\x4c\xb3\x6c\x27\x53\xc5\x1d\xc8\xa3\x4b\xbf\x4e\xab\x6e\x60\x26\x36\x5b\x51\x41\x31\xc1\xe3\xf6\x3b\xee\x18\xea\x4f\x02\x49\x52\x2a\x79\xfa\x45\x28\x2a\x23\x3a\x02\x74\x47\x0f\x84\xca\x41\x54\xcd\xf9\xa6\x0b\xc8\xe5\xdb\x6b\x73\x8b\xb0\xa5\x0f\xb6\x55\x21\xae\x93\x23\x54\x7a\x39\x3e\xea\xc3\xf6\x32\x75\x7c\xe3\xd7\x31\x03\xd4\x2b\xa7\x3f\xea\xae\x15\xe6\x4e\x3e\x9f\xcd\x66\xfa\x0a\xd7\x9e\x28\x40\x4d\xb7\xb3\xb8\x6d\x20\x6c\x8c\x99\x22\x1b\xcd\x9d\x61\xe2\x45\x91\x66\x9f\x46\x84\xbe\x42\xab\x00\x0f\x3f\xa7\x6f\x3a\x8b\xb4\x52\x0f\x60\x5d\x82\x26\x68\x2b\xcc\xa8\x17\xbb\x50\xc0\x15\x0c\x13\x42\x90\x49\xd7\xb0\xcf\x7d\xf3\x7f\x29\xd3\x8c\xbf\xe6\x32\x17\xcb\xe0\x28\x7a\x1d\x1c\x45\x57\xca\x49\x89\x0d\xa8\x6b\x5d\x4b\xab\x5b\x64\xb9\x6a\xcd\xba\xe1\x15\xcf\x91\x1c\x93\x85\xe6\x6c\xab\x62\xcd\x4a\xda\x00\xc1\x1e\xe4\x31\xd8\xd7\xc1\x83\xc1\x68\x20\x80\xf0\x54\x69\x2c\xa8\x66\xa3\xc9\x3f\xee\x2f\x46\x70\x1d\x1a\x25\x98\xc2\xda\x5f\x5d\x6b\xaa\xbc\x49\xb7\x90\x8c\xa6\xcd\xac\x19\xfd\x12\x66\xb2\x31\xa6\xd7\x6a\x51\xa4\xdb\x8a\x2f\xf4\xd5\x7e\x99\x54\x88\xa5\x4c\x2b\x0f\xd5\x26\xe4\xab\xf1\xb5\xf6\x22\x5d\x22\x34\x97\x87\x52\xc3\x03\x4d\x66\x90\x61\xf9\xca\x79\x16\xec\x10\xef\x1e\x65\x37\x66\x9a\xe9\xdb\xa2\x9e\xa5\xea\x4c\x9e\xbb\xab\x88\xae\x1f\x4e\xf5\xd7\xa2\x8a\x57\x3e\xd2\xac\xb1\x24\x98\xc3\xf9\x4a\x06\x66\x1e\x25\x9b\x21\xed\x47\xc0\x11\x75\x7c\x5c\xb2\xd2\xbb\xb6\x62\x03\xca\xba\x2e\xfb\x5a\xe7\xcf\x14\xb0\xcb\xbe\xf2\x48\x19\x28\x1f\x77\x33\xe3\xc9\x13\x2a\xd9\x84\xcd\xed\xd1\xb4\x09\x13\x9c\xe5\xe7\x78\x8a\xa2\xea\x8b\x5b\x3a\x9f\xb8\x9e\xf6\xd0\x8f\xe8\x27\xde\xd6\x1d\x87\x23\xcb\xd3\x79\xca\x99\xb5\x82\xa9\xeb\xe1\x63\x01\xfe\xa0\xbd\x71\x5d\xf1\xf8\x5d\x6e\x2e\x5d\x44\x9f\x0b\x7a\x18\x71\xde\x4a\x50\x3b\x1b\xce\xa8\x62\x65\x38\x31\x7a\x80\xe9\x50\x79\xcc\x80\xe4\x95\x5a\x5c\x89\x18\x7f\xd9\xe7\xf7\x41\xbb\x1e\x41\xa8\xf0\x59\x65\x42\x73\xbc\x58\xa5\xec\x1b\xab\x5c\xf2\xee\x66\xcb\x17\xca\x38\x1e\x60\x0a\x2e\x00\x69\x5d\xcf\x87\xa0\x90\x64\x5b\xe1\x8c\x2d\xbe\x19\xb2\x40\x90\x6a\x8b\xd0\xcc\x6e\x10\x43\xd1\x4d\x45\x0a\x29\x7e\x4e\x8b\x1d\x77\xdc\xf9\x71\xe5\xcd\xea\x90\x95\xc7\xa4\x62\x7e\xd0\xc0\x3e\x0e\x5a\x8d\x9a\x1d\x2b\xf4\xee\xaa\x3c\x0f\x6c\x71\x47\xbf\x6a\x32\x3f\xce\x4f\xe2\xdd\xc2\xaa\xba\x27\x33\x02\x93\xde\x3c\xeb\xe4\x27\xb3\x05\x14\x94\xec\xce\xf2\x73\x63\x9d\x29\x1a\xeb\x4c\xf6\x8d\xb5\xa0\x15\x67\xe9\xf8\x3e\x2c\x8b\x8a\x31\x55\xd7\x15\x63\xd2\xde\x7c\xde\xe5\xb1\x2e\x08\x87\x3c\xc1\x19\x38\xcb\xcf\x09\x5d\xea\x6c\xe7\xe3\xd2\x4c\x43\x5c\x9e\xcc\xea\xba\x1a\x32\x45\xe0\x9e\xa1\xcb\x8c\xcb\xc5\x3c\x99\x91\x73\x42\x57\x3c\xce\x28\xb8\x26\x40\x4d\xc1\x2c\x4e\x69\x45\x25\x2c\x86\xa5\xb7\x60\x96\x34\xf7\x21\x52\xab\x40\x95\x6e\xc5\xd2\x45\x77\x80\x27\x32\x99\x1d\xaf\x8f\xd7\x6c\xed\x27\xc6\x87\x35\x96\xc5\xfa\xc2\xe4\x4d\xd3\xac\xb5\x3c\xfd\x0b\xda\x8a\x40\xed\x63\xb6\xc6\x67\x3d\xc4\x4e\x30\xd5\xec\x51\x3d\x1e\xcf\xf9\x5c\xec\x2a\xfb\x84\xa9\x5b\xbb\x62\xf2\x78\x7b\xbc\x65\xdb\x76\xac\x6b\xc6\x96\x6e\xfd\x66\x68\x9a\x72\xa8\x1d\xe3\xbb\xdb\xe1\xa1\x5c\x71\xcf\x85\x33\x72\x49\x0d\x33\x92\x6f\xf0\xf5\xc6\x3b\xe7\x7e\xf7\xd3\x23\xcf\xe5\xa4\x9b\x3c\x5d\xfa\x49\x1f\x87\xb7\xa0\x33\x75\x3e\xe0\xd3\x4a\x48\x1f\x94\xa2\x2d\x0c\xb1\x97\x62\x65\x7e\x20\x2e\x05\x00\x0a\xe9\x99\x6e\x9e\x32\xe7\xc7\x2d\x97\xe3\x96\xc9\x44\x70\x2d\x0e\x57\x04\xbd\x32\xb6\x9a\x39\xd4\xf7\x6b\x9a\xdb\x32\x4f\x99\xc1\xe0\x4f\x19\xb0\x8e\xa6\x4e\x17\x4f\x2b\x76\xe5\xe5\xd2\x7f\x08\x2d\x98\xb0\xf7\xf3\x85\x4d\x69\x2f\x1e\x89\x70\x01\xc8\x7f\x0e\xca\x13\x7d\x55\x9e\x4c\x94\xe6\x0a\x11\x5c\x68\x32\x29\xe9\x7d\x6a\xd0\xf7\x8b\x45\x95\xa4\xb4\x58\xa4\x49\x45\xc8\x7e\xef\x09\xb4\xde\xb4\xdd\xb3\xbe\x0c\x8f\x36\x93\xe6\xcc\x14\xc4\xa9\xaa\x6b\x4e\xce\xa9\x0f\x5d\xf6\x2c\xcc\xe2\xde\x87\xcc\x8b\x7a\x23\x20\xd0\xcd\x43\xab\x3d\x6e\x4d\x88\x7d\xfc\xa3\xe6\x0e\x88\xe7\xfd\x89\x49\x4d\x7c\x61\x18\x16\x39\x6b\x10\x37\xc2\x02\x9b\x57\x73\x5d\xc2\xa9\x5c\xac\x78\x2c\xa9\xe6\x2c\xc0\xe3\xa8\x47\x69\x93\x3e\x04\x7a\x3e\xcd\xd6\x03\xef\xbc\x63\x4c\xb3\x2c\xa7\x6a\xd1\x08\xe2\x14\x49\xe4\xc9\xcc\x0b\x98\x91\x84\xef\x63\x85\x95\xa8\xae\xf8\xc3\x77\x15\xdd\xe2\x1b\x4e\x6d\xfb\xa3\x48\x9d\x84\x5d\xf1\x40\x6b\x78\xdb\xc2\xc2\x5d\x83\x82\x87\x75\x79\x56\x9e\x33\x1c\xc4\xb3\xf2\xdc\x73\x72\xdf\x00\xde\xb4\xdf\x84\x33\x30\x1e\xc8\x36\xa1\x68\xae\xae\xf9\x14\x1d\xef\x36\x78\x64\xb8\xf7\x06\xe8\xe4\x16\x89\xf5\x56\x8f\x6c\x4e\x4e\x66\x03\x31\xd4\x1f\x25\x7c\x2c\xe2\x9c\x49\x2a\x59\x49\x12\x0c\xd6\xb5\x9d\xcc\xd0\x23\x12\xf1\x97\xde\xef\xfa\xe2\x25\xdb\x41\x65\x5d\xcb\x40\x41\xe2\xa1\xd7\xe8\x5f\xf4\x6f\xbb\x24\xa1\x37\x1c\x6e\x78\x9a\x76\xa4\xf2\x46\xef\x64\xb0\x1d\x9f\x11\x5a\xfa\x8e\x89\x1d\x53\xd0\xec\xe8\xb3\x73\x6a\x99\x91\xee\x35\x52\x9f\x4a\xe5\x59\x7e\xce\xbc\x3a\xa4\x55\xfd\xa5\xfa\x30\xa1\xa8\x43\x02\x0d\x7a\xcc\xc1\xe0\xd8\x36\x04\x88\x18\x09\xfa\xf0\x73\x47\xc9\x23\xa8\xd5\x42\x84\x0d\x72\x70\x19\x4c\x6d\xa9\x79\xb7\x54\xbf\x5b\x5f\xb5\x47\xe6\x25\xc8\x5a\xc2\x44\x7f\x74\x18\xa2\x75\x5e\x29\x21\x6f\xa6\x4b\x51\x72\x9a\xb3\x2b\x11\x97\x64\x90\x47\x51\x6e\x9a\xb3\x88\xcb\xb3\xd2\x09\x4e\xce\x99\xa2\xdf\xd9\x32\x48\xf2\x4b\x57\x83\xc5\x05\xdd\xba\x74\x2d\x43\x3e\xbf\xdb\xa6\x76\x2a\x34\x3b\x55\x4e\x51\x14\x37\x90\xcc\x40\xbf\xbe\xe5\xc5\xab\x2d\xa8\x63\x35\xdf\x90\x04\x94\xa5\x63\x0c\x7c\x21\x96\xef\xf2\x0d\xf7\xf2\xe8\x4f\x9b\xc5\xa5\xaf\xeb\x43\xcd\x50\x56\x76\x32\xb3\xdb\x64\xf4\xf5\x88\xb1\xbc\xae\x47\x63\x04\x37\x6c\x09\x90\x7a\x44\xb5\x72\x5a\x89\x0d\x57\xeb\xbc\xbc\xc4\xeb\x2e\x5f\x6a\x8a\x5c\xf6\x05\x7b\x9e\x59\x9a\xf1\xf7\x9a\x7e\xc2\x60\x33\x2e\x60\x2f\x5a\x29\x97\x49\xf7\x04\x05\x71\x45\x7a\x93\x7c\x3b\x9b\x81\xd1\x9a\xa0\x57\x22\xce\x61\x02\x89\xe6\x5e\x17\xf8\xfb\x0c\xff\xf8\x53\x97\x3c\x06\x1c\x12\x4c\x3a\x08\x86\xab\xf1\xc4\x43\xdb\x43\x2d\xbc\x90\x2d\x93\xb4\x8c\xa2\xe1\x7c\x88\x1a\x4e\x3c\x95\x6f\xf8\x52\x44\xd1\x9b\x3c\xce\xa7\xbb\x12\x4a\xde\xdb\x5d\x42\x9b\x6e\xa0\x6c\x33\x5f\x26\x2f\xd3\x97\xc1\x7a\x71\xab\xe4\x36\x86\x57\xa1\xd1\x05\xe8\xbb\x38\x99\x81\x31\x46\x22\xf0\x3c\xb2\x89\x22\x9d\x68\x9a\x6d\x0e\xa6\xd3\xcc\x9b\x62\xfd\xa6\xa3\xb7\x46\x12\xa3\xcc\xec\xd1\xf6\x6b\x5a\x8b\x17\xf1\xa4\xfc\x92\xcd\x8e\x65\x43\x61\xe5\x78\x4c\xbc\x94\x67\xf2\x9c\x19\x8a\x65\x48\xae\x3c\x37\x44\x12\xfd\xdb\x60\x88\x91\x0e\x59\x89\x33\xe8\xaf\xe3\x6f\xe7\xdd\x1f\xbd\xc4\xf4\xf7\x8d\x72\xd4\x21\xd2\xc3\xa0\xd3\xdd\x31\x0c\x90\x4a\xa7\xb6\x0b\x55\x5f\x03\xcc\x86\xd6\x04\xca\x0e\x40\xe7\xe1\x80\x24\x6a\x6f\xb7\xf7\xc0\xc1\xe9\xc8\xe9\x45\x9e\x56\x75\xad\x19\x1a\xd5\xd0\x57\xe8\x50\x9b\xe8\x62\x2f\x4f\x66\x8b\xc9\x3c\x99\x93\xc1\x7b\xdd\xfb\xff\x18\x3d\x32\x80\xc1\xd4\x37\x8d\xe1\x9c\x31\x87\x10\x55\xd7\x43\xdd\xdc\xba\xfe\x43\x42\xa7\xbc\xd5\xf1\xde\x72\x7c\x53\xfe\xc7\x2e\x2d\xaa\x18\x2a\x23\xf0\x1c\x55\xf1\x82\x29\x33\x1c\xb1\xb7\xc8\x7c\xb1\xba\x17\x5c\x85\x43\x84\xa0\x94\xb8\x98\x88\x15\xdf\xa3\x01\xe6\x83\x4c\xe5\x57\xb9\xba\x41\x2f\x3d\x0d\xdc\x02\x48\x59\x9a\xfe\xe0\x12\x47\x0b\xc8\x80\x75\xf9\x4f\x9f\x3d\x09\x15\x6c\x76\x2c\x4e\x54\xeb\x6c\x11\x96\x7b\x4c\xdd\x04\x9d\x89\x73\xd0\x63\x6b\x91\x9c\x9e\x93\x49\x1f\xd7\xde\x61\x24\xce\x69\xc1\x7e\xd5\x95\xa7\x56\x22\x59\x45\x91\xe5\x94\x51\x03\x6d\x67\x13\xc0\xd4\x41\x34\xfc\xd2\x91\xc7\x71\x5e\xd7\xc5\x90\xd9\xdc\x75\xbd\xd3\x1f\x30\x9f\x9a\xda\xd6\x35\x20\x9a\x86\xc7\x14\x15\x84\xd0\xfc\x4c\xb8\x0d\x50\xd0\x9d\x93\x80\x1e\xe5\x0b\x38\xb8\x94\x77\x68\xf9\x6f\x8d\x3f\xf6\xbc\x0f\xfa\x8c\x13\x5e\xf4\x37\xa9\xfc\xc4\x97\x6f\xb7\x69\xd9\x46\x33\x0e\xe2\x3a\xca\x7e\x15\x0b\xe2\xcf\x52\x3d\x3e\x15\x06\x01\xf3\x62\x8c\xdb\x2b\x60\xa0\xeb\x3a\x2e\xa6\x79\x99\x15\xbb\x2a\xbf\xe2\xcf\xf9\x4a\x2d\x30\xe2\x04\x0e\x88\xc4\x7c\x28\x2b\xe1\xb6\x79\x95\x08\x73\x02\x96\xd9\x42\x87\x9f\xda\x8c\x4a\x9c\x62\x36\x60\xb4\xf2\x28\x8a\x7f\x44\x87\x26\xb0\x77\xd1\xb9\xcf\x93\x12\xcc\xa9\x69\x31\xe5\x9f\x35\xcf\x9e\xab\xe2\xe6\x91\xa6\xaf\x7c\x89\xd9\xc2\x71\xb8\x9d\x4c\xd2\x41\x26\x4a\x95\x97\x3b\xbe\x47\xb1\x0a\x98\xf6\x4f\x53\x25\x36\x79\x46\x6c\x9c\xd1\x13\x83\x97\x4a\x9a\xb1\x02\xb1\x64\xcb\x93\xd9\x62\x9e\x4c\xe6\x04\x87\x01\x2e\xda\x61\x0f\x92\xd6\x60\x10\xf0\xc9\xf9\x9b\x9e\xb0\x8c\x4e\x4a\x0a\xd6\xcc\x81\xf1\x8d\x00\xa1\x04\x21\xdd\xa8\x28\x8a\x77\x9a\xf9\x03\xc3\x70\x3d\x74\x27\xb3\xc5\xee\x64\x96\xec\x4e\x9b\xdb\xec\x8f\x58\xb2\x82\xa5\x60\x2e\xd9\x5e\x63\x91\x98\x34\x37\xf5\x45\xab\x79\x49\xbb\xfd\x78\x89\x87\xf6\x2e\x69\x49\x97\x07\xda\xba\x5c\xfc\x88\x49\xb0\x62\x74\x29\x67\x57\xaf\xb7\x52\x7f\xed\x59\xa9\x65\x5d\xcf\x69\xca\xdc\x22\x16\x34\x27\x75\x3d\xcc\xa3\xc8\x0b\x1a\xce\x48\x5d\xbb\xef\x49\x4f\x9a\x89\x40\x60\x5f\xac\x33\x05\xda\x96\xa5\xa5\x7a\xb2\xcc\x95\x26\x52\xc1\x45\xc7\x23\x33\xbf\x79\x64\xc6\x72\xf7\x9a\xb5\x9e\x31\x58\x77\x0b\x73\xe9\x31\x79\x17\x70\x0c\xad\xb8\xb9\x4d\xe9\xcb\x16\x74\x36\x91\xa7\xb3\x28\xd2\x19\x18\xd3\xec\xb6\xbf\xfd\x82\x8b\xcb\x22\xbc\x86\xb9\x3b\xd6\xc2\x95\x09\x4f\x25\x58\xa8\xd1\x8e\xb0\x3a\xc1\xd3\x6c\x3d\xf6\x0f\x7d\x30\xcb\xed\x40\x42\x56\x6b\x71\xdd\x78\x89\x6a\xc7\x6e\x25\xdf\xa6\xde\x49\x17\xfb\x63\xa1\x54\xfb\x56\x64\x5c\x4b\xa2\x15\x64\x69\x4c\xeb\xab\x2f\x7b\x0e\x03\xf4\x08\x77\x56\xfc\x85\xf4\x16\x34\xac\x7b\x6f\xb0\xf8\x61\x9a\x59\x52\x06\x7a\x25\x64\xe0\x1d\x00\x9c\x47\xc5\x53\xf3\x02\x59\x99\x6b\x3d\xce\x62\xc7\x3c\xba\xae\x2b\x10\x0e\xd8\x49\x69\x1b\x5a\x93\xc6\x46\xd7\x48\x0e\x8e\xe3\x42\x33\x51\xee\xd9\x74\x2d\xae\x91\xf4\xfc\xb2\xe6\xe5\x5b\xeb\x01\x95\x44\x11\xf8\x4e\x33\xe7\x42\x4e\x68\x51\xd7\x25\x84\x50\xe1\x49\x0b\x3c\xf3\x49\x15\x72\x59\x8f\xf0\xbb\x6d\x80\xe8\xd9\x5a\x54\x79\x79\x59\x18\xba\x87\x2a\x88\xaf\xb9\x7c\x6e\x84\xfc\xb2\xdf\x5e\x60\xf4\xff\xfc\xdf\xa3\x1e\xbf\x31\x23\x42\x10\xee\x3e\x50\x43\x2e\xac\xde\x26\xcd\x3d\x53\xec\x52\xff\x1f\x06\x77\x95\x58\x9d\x72\x18\xa4\x26\x5f\x7b\xf8\x89\x5e\x7b\xb1\x94\x72\x2a\xd4\x9a\x4b\x4b\x0f\xfe\x5e\xcb\x7d\xcb\x8f\x8a\x67\xa2\x5c\xa6\xf2\xa6\xe9\x94\xe8\x6a\x7e\x8a\xb0\x93\x50\xb7\xd7\x55\x11\x74\x15\x63\x5d\x87\x45\xd8\xe1\xe9\xbf\xbf\xfd\x3a\xb6\x89\x5c\x87\x5d\x1e\xa3\xaa\xeb\x59\x9d\xaa\xbb\x40\x58\x00\x7f\xe8\x2f\x6d\x95\x2c\xf0\x99\x50\xb1\x14\x3d\x9b\x16\x3e\x3e\x52\xe3\x9e\x86\x02\xfa\xc3\xc4\x04\x79\xb6\xc6\x64\x92\xa2\x26\x6f\x23\x61\xde\x35\xc4\x50\x81\x80\x01\x7c\xa7\x28\x1f\x18\x5b\x91\x10\x28\xbb\x24\x54\xfc\x45\x1c\xfc\xca\x5c\xde\x46\xfd\xef\x8f\xd6\x5e\x85\xa3\x85\x0a\x38\x98\x1b\x8d\x55\xcb\x5e\xc5\x62\xe9\x2c\x8a\x09\x4f\xa4\x31\x02\x6b\xbc\xe8\xc4\xe5\xc4\xe0\x9d\xfa\x94\xcd\x49\xce\xaf\xd0\x6f\x27\xcd\x34\x87\x94\x53\x45\x40\x8f\xc7\x23\xd0\xcd\x58\xac\x63\xff\x50\x78\xa0\x0c\xe1\x07\x2b\x24\xe8\x5f\x46\x1b\xe1\x4b\xf7\x56\x0c\xb0\x80\xee\x9d\x07\xea\x1f\x15\x4a\x8e\x7c\x84\xda\xe1\xdc\x30\xb4\xbc\x61\xbb\x84\xe5\x64\xf9\x99\x38\x3f\x8e\x53\x64\x98\x64\x14\xa5\xc0\x01\xd5\xb5\x62\xcc\x7c\x31\x94\xb2\x97\x71\x83\x20\x09\xa9\x75\xb7\x9c\x80\x50\x27\xd4\x6d\x9e\x33\x58\x27\x57\xbc\x58\x8c\xa4\x2a\x46\x09\xb6\x86\xe6\xe0\x4a\x35\xaf\x6b\xbf\x8d\xfb\xf8\x41\x1e\x67\x84\xca\xba\x46\x2d\x13\xc6\xca\xc5\x32\x29\x69\x88\x54\x65\x0e\xf1\x8c\xae\xe8\x96\x6e\xd8\x5a\x73\xff\xe6\x89\x30\x5f\xc5\x9a\x51\x20\x19\xdb\xd0\x15\xdb\xb2\x0d\xac\x51\xe7\x7b\x3f\x63\xeb\x58\x4d\xe6\xd4\x3c\x11\x12\x0a\x6d\x62\xd6\x40\xe8\x8a\x6d\x06\x1b\x96\xd1\x8c\x5d\xed\x57\x26\x2f\xdd\xb2\x0c\xd7\xeb\xde\x2c\x01\x38\xa5\x39\x00\xe7\x54\x84\x66\xe0\xd6\x77\xa3\xff\x3f\xfd\x46\x33\x4b\xf1\x8a\xc2\x17\x2e\xc4\x8d\x05\xb5\xa5\x2b\x56\xb9\xaf\x93\x0c\x91\x50\x30\x31\x86\x61\x7a\x88\x20\xc4\xf6\x3e\x8a\x14\x63\xcb\x28\x8a\xb7\xac\x20\x34\x1e\x8a\xba\x86\xc2\x4f\x84\xfe\xdf\x7c\x30\x26\xb0\x38\x6c\x31\x3c\xb3\x20\xd3\x27\xd8\x46\xe7\x4a\xeb\x3a\x33\xb5\x9c\xa6\xe6\x47\x13\xa4\x67\xc8\x22\xce\x9a\xae\x9e\x9a\x2d\x8a\xda\x20\x19\xa1\xab\x93\x6a\x3c\xb7\x5d\xd6\xad\x86\x76\xd2\xed\x44\xff\x32\x3d\xdc\x13\x42\x9d\xef\x5f\x5e\x2e\x93\xd4\x3e\xb8\xa8\x46\x65\x4d\xa1\xca\x5a\xbe\x8a\x2d\x57\x67\xd4\xcc\x32\xff\x15\x02\xf4\xcc\xd0\xa4\xf7\x16\x55\xc4\x60\xdf\x18\xe5\x12\xba\xc5\x4f\x93\x93\x6e\xd8\x9f\x65\xbc\x22\x4c\xff\xd9\x12\x7a\xc5\xc2\xb2\x36\x8b\x95\xbf\xd5\xc6\x73\xe4\x1f\xa7\xbc\x5c\xd2\x4b\x96\x59\xe5\xb7\xcd\x62\x86\x2f\x73\x50\x37\xbe\x14\x0f\xf4\xf5\xf4\x0a\x06\xfc\x12\xe6\xf9\xfe\x22\xde\xc5\x57\x38\x38\xf4\xaa\x99\xe6\x2b\x37\xcd\xbb\xb8\xa2\x90\x96\x5e\xe2\xfa\xb9\xb4\x51\x24\x69\x67\xc5\x14\x93\x26\xd0\xa6\x74\x3f\xb1\x5a\xbd\x50\x2a\x17\x86\x35\x5e\x22\x24\x4e\x78\x6e\xf9\xc0\x2b\xb9\x72\x00\x17\x81\x3a\x68\xd7\xf9\x38\x88\x82\x9e\xe9\x3b\xcc\x55\x5a\xc4\x6a\x7a\x51\xe4\xe5\x27\x2e\xad\x60\x7e\x38\x1b\xa8\x06\xde\xc8\x9c\x45\x80\xa0\x03\xce\xff\xf4\xe9\xd6\x3e\x68\x1f\xea\x12\xde\xa4\x8a\x9f\xce\x16\xae\x3c\x56\x71\xe5\x6a\x09\x9d\xd7\xde\x51\x7a\x2c\xd9\x50\x12\x70\x24\x82\xea\x06\xa3\x3d\x39\x5c\x1f\x49\x0e\x46\xe1\xc1\x72\x67\x47\x4c\x05\xfe\x2b\xb4\x50\x0e\x5c\xc6\xb8\x41\xc2\x95\xf1\x56\x0f\x29\xe0\xf5\x78\x1e\x8a\x4e\xda\x8c\x1e\x5c\xf2\x61\xf0\x9d\x13\x7a\xd0\x49\x57\xf4\xb3\x88\x53\x15\xca\x28\x52\xd5\xf2\xb0\x83\x28\x90\xae\x70\x65\x1f\x18\xbc\x40\xfb\x0c\x8c\xd0\x47\x36\xb4\xcb\x71\x3a\xf7\xef\x4e\x54\xe8\x21\x22\x5e\x0b\xf9\xe9\x5d\x0e\xa0\x08\x45\x19\x2b\xe8\x25\xad\x50\xe3\xc3\x16\x49\x34\xc9\x3e\x3b\xb7\xde\x7e\x9a\x08\xef\x4d\x28\x00\x95\xed\x80\x0d\x8d\xbf\x9d\xcd\x7c\x00\x78\x61\xde\x87\x0e\x35\x1a\x18\x61\x73\x28\x19\x0e\xa8\x02\x95\x61\x6f\x2f\x9f\x36\x9d\xd8\xa4\x9f\xbf\xb7\x63\x8c\x3e\x47\x68\xc1\x78\x0e\x32\xd6\x6a\xd1\xf4\xab\x24\x09\x88\xb2\x2c\x93\x56\xb1\xc2\xfc\xb0\x50\x7b\xf8\x09\x76\x95\xbc\x82\x6b\x77\x86\xbf\x07\xd9\x22\x8c\x64\x59\xb2\xd3\x54\x36\x0c\x0c\x6d\x52\x97\x4c\x93\xdf\xd4\xe1\xe9\xda\x6a\xdd\x2b\xff\x0e\xd0\xc5\xe2\xe1\xae\xae\x87\x59\x5d\xef\x1a\xd4\x88\xac\x41\x61\xd8\xf9\xa8\x11\x99\x6f\xf8\xb9\x66\xb3\xe3\xe1\x32\x8a\xd6\x27\xa9\xef\xcd\x73\xc9\xd2\xb3\xf5\x79\x53\xdd\xd9\xfa\x7c\xb0\x8c\xa2\xdc\x58\x04\x36\xf3\x0a\xdc\xa5\x73\xca\x55\x2d\xca\xc4\x1f\x2b\xab\x67\xe8\x8d\xf9\x09\xbb\x6b\xd0\xa3\x48\xc2\x98\x43\x0e\x5a\xb6\x8a\x6f\xea\xfd\xc7\xb7\x8c\xcd\x5a\xd3\x62\xb4\x52\xc6\x63\x6f\x75\xb9\xf5\x7a\xea\x74\x5a\x61\x4b\x86\xab\x17\x84\xea\xa0\x87\x0a\x7e\xf1\xac\x84\xed\xbd\x4e\x19\xf7\xd8\x1d\x20\xc2\x8f\x4d\x78\xac\xc6\x63\xa2\x40\xe5\xf1\x4c\x9d\x53\xc4\x83\x01\x8b\x11\x0f\x43\xa1\xcb\x44\x8b\x0c\x19\xe8\x06\x35\x19\xdc\xb7\x07\x14\xc2\x02\x29\x5a\xff\x5e\x6d\xd9\xb6\x7b\xc5\xa2\x39\x35\xea\xf5\x34\x65\x72\x31\x99\x27\x6a\x12\x7b\x44\x27\x2f\x4b\x0e\x36\x1b\x8b\x39\xff\x26\x01\xc7\x67\x15\x53\xc7\xd5\x69\x7a\x3c\x99\x54\xb0\x95\xaa\x13\x8b\x97\xe8\x46\x0a\x3f\x8d\x8e\x07\x28\x75\x57\x46\x6e\x54\x84\x9e\xd9\x86\xb2\xae\x31\xbf\xdb\xef\x56\xad\xca\x6c\x8b\xb5\x88\x0b\x33\xa9\xfa\xf8\xf1\xbc\x6b\xa5\x17\x6f\xf3\x3f\x39\x39\x36\x2c\xb2\xe6\xe9\x4e\x77\x20\x74\x64\xd5\x64\x4e\x4b\xb6\x6b\x44\x8a\x56\x3e\x4d\x53\x26\x4e\x4b\x4b\xd0\x9e\xe4\x71\x49\xc5\x64\x4e\xbc\x46\x39\x99\x0a\x4b\xf5\x32\xc1\x91\xa5\x29\x49\x76\xf6\x83\xd0\x12\x89\x91\xa0\x2a\x74\xbc\x0f\x4b\x10\x0d\x6d\x69\x6a\xf5\xc6\x34\xdf\x3a\x99\xd7\xb5\x80\xa5\x57\xd7\xe2\x94\xe5\x1e\x28\x9c\x38\xb1\x4e\x14\x07\x32\xdc\x11\x41\xed\xd0\xf9\xf1\x58\xec\x51\x16\x1e\x97\x0d\x29\x16\x84\xa6\x9e\xf5\xba\x0a\xb0\x7e\x9c\x8f\xd0\x06\x70\xcb\xb3\x1c\x0f\xd3\x22\x28\xa8\x8f\x1c\x35\xe9\x16\xd0\x86\x94\xca\x9a\xe3\x3e\x74\x4f\xd8\xa8\x82\x87\xe1\x06\x80\x04\xfc\x95\x5b\xe5\x1f\x7d\x89\xda\x4a\x3e\xa2\x23\x7d\x91\xa1\x92\xa1\xa7\xe4\x69\xdb\xbb\xef\xe2\x40\x78\xac\x48\xa2\x2c\xde\x26\x84\xd0\x92\xdd\xc2\x0d\x6b\x9b\xca\x8a\x3f\x2b\x55\x2c\x7d\x63\x61\x62\x4c\x9e\xba\xb1\x28\x08\x74\x6f\x2b\x79\xf5\x32\x7d\x69\xcc\xc0\x48\x5d\xdb\x4f\xe4\x52\x8d\xd8\x2d\x74\xca\x48\xa8\x27\xe7\x58\xfa\x23\x2c\xc4\xa4\x39\x6a\x42\xcb\x5c\xcf\xea\x3a\x9c\x93\xbb\xfc\xfe\x4d\xa0\xf4\x49\xd7\xff\x46\x53\xda\xea\x2f\x95\x66\x26\xbb\xa7\xb8\xf6\x6c\x6f\x95\x67\xc2\xcf\xad\x7c\xd4\x4c\xf5\xed\x26\xdd\x26\x6e\x52\x41\x57\x12\x06\xc7\x0b\x83\xef\x7d\xcb\xe7\x1c\xef\x58\xf8\x43\xe1\xc6\xbe\xff\xae\xf2\xab\xb3\xf2\xbc\xbf\x0e\x1d\x83\xf5\xdc\x51\x07\xa8\xe9\x99\x6a\x88\x23\xf4\x7f\xb7\x1a\x8a\x22\xf9\x64\x38\xf3\xe8\xf6\x46\x75\x04\xad\x17\x3a\xe8\x12\xf9\x3a\x88\xf0\x6c\xb1\x54\xa3\xb8\x72\x00\x3b\xb2\xc3\xe3\x91\xce\xac\x22\x00\x1f\x82\x12\x9f\x77\xfc\xc9\xdc\x81\x88\xa5\x4e\x19\x82\x62\xbd\xd4\x15\x99\x9f\x63\x04\x09\x5d\xc8\x04\x3c\xfb\x7b\xa6\x16\xa6\x0f\x86\xb3\x7b\x97\xa3\x90\x04\xfa\x20\xc9\xa0\x8c\xa2\x21\x42\x46\x2d\x4a\x86\x82\xdd\x28\x2a\x3d\x4c\x58\x80\x4e\x2b\xa9\xa4\x88\xc6\xed\x8c\x58\x42\xb7\xe6\xc4\xd8\x76\xf5\xe9\xd8\xe8\x2a\xf5\xa5\x4b\x91\xc0\x81\x40\x0f\x7e\x17\xbf\x3e\xfa\x55\x59\x9d\x60\x68\x1d\x76\xce\x38\xe2\xca\x59\x89\x40\x5e\x0c\x70\xbc\x4a\xd2\xc0\xfa\x03\x64\x06\x62\x65\xfc\x2e\x5a\x2e\x08\x1b\x77\xcf\x00\xd5\x55\xee\x11\x07\xda\x14\xb9\x55\x71\x89\x95\x99\xf5\x04\x4a\x84\xe8\x1b\x2d\x29\xa9\xe4\x99\x51\xc5\xd4\xeb\x2c\xf7\xb6\x89\x71\xf0\x6a\xd7\x53\x3e\xc5\x1f\x74\x9d\x56\xb8\x0f\xab\x64\x38\xf7\xd6\xd8\x85\xf2\xdf\x17\x94\x49\x0e\x7a\x32\xfa\xb4\x85\xe3\x87\x16\x4c\x8e\xe3\x12\x10\x9c\x1a\xcd\x26\xa8\xa7\x0b\xc0\xb2\xa8\x98\x89\x3b\x2b\xce\x93\x58\x4d\x75\x5b\x01\xe0\x40\xff\x30\x10\x8f\xc8\x93\x1d\x30\xa5\x25\x54\x4d\x9b\xe6\xd6\xf5\x41\xa8\xef\x5e\xb7\xa7\x39\x2b\xa3\x08\x08\xa0\x01\x99\xb7\x7b\x6d\x6d\xcb\x2b\xa3\xa8\x09\xbd\x46\xb8\xd7\xbc\x41\xd7\x6b\xa5\xd7\x17\x07\xd4\x37\x6a\x65\x62\xf9\xa0\x79\x14\x54\x6d\x05\x5f\x38\x5e\x5c\xa7\xaa\x58\xb3\x3c\xb3\xe3\xca\x31\xba\x93\x39\x58\xd6\x18\x59\x79\x8a\x78\x36\xe9\x59\x35\x9e\x9f\x0f\xe0\x56\x92\x5e\x54\x71\xd1\x60\x51\x9a\xdb\xf5\xe9\xfd\x28\x12\xc8\x07\xbb\xd8\x31\x20\x55\x92\x7b\xf7\x27\x06\x6a\x76\x6f\x52\x38\x09\xab\x0d\x87\x5b\x11\x80\x03\xe3\x6c\x84\x23\x0d\x1b\x26\xae\xd8\x01\x75\x15\x0a\xea\xeb\x0a\xd6\x1a\x3c\xe9\x5a\x18\x4e\xba\x63\x56\x39\x3d\x63\xa0\xac\x4e\x97\x9e\xfe\xba\x1e\xbd\x6f\x18\x2b\x9c\x0a\x70\xc3\x39\xa2\x2b\xff\x7f\x1e\xaf\xf5\x48\x00\x2a\xf2\x2e\x8a\x1e\x09\xf3\x7c\x63\x90\xc1\x8c\x79\x11\x42\x6d\x80\x2f\xe1\xf1\x8e\x90\x63\x32\x99\xec\x60\x02\x8e\x83\xa8\xec\xc4\x7c\x3e\x29\x97\x7f\xa9\xac\x4c\x97\x35\x1e\xc3\x85\x15\x90\x03\xff\xcb\x82\x94\x67\xa8\x85\x8f\x65\x4d\xfc\x4c\x24\x67\x85\x8f\xf5\x76\xc8\x26\xdc\xc2\xba\x89\x43\xd0\xc3\xc4\x48\x88\x5e\x0b\xc0\x6a\xc9\x48\x67\xd9\x0c\x72\xb6\xb2\x0f\x61\xab\x33\x67\x1e\x50\x2e\x56\x6e\x21\x25\xb3\xf3\xe4\xa3\xc2\xdb\x4e\x1e\x16\xd5\xd7\xaa\xba\xfe\xa8\xf0\xe9\x42\xf3\x23\x75\x9d\x23\x23\x52\xd7\xba\xd7\xa8\x28\x3f\xc8\xd8\x8e\xee\x26\x6c\x4e\x97\xd6\x22\x61\x0f\x63\x33\x9f\x03\x6b\xdc\xb5\x58\x36\x3c\x55\x95\x49\xce\xcb\xba\x36\x6f\xd4\xf0\x35\x2d\xc4\x65\x9e\xa5\xc5\xaf\x8f\x5f\x3f\xab\xeb\x6e\x98\x4b\xb7\xe4\x57\x79\xc6\x31\xd9\xd0\xb7\x3c\xd5\xdb\x0f\x30\x98\x7f\x74\x07\xd6\x8f\xc2\x63\x01\x81\xf5\xab\xb6\x69\xd9\xf0\x7e\x07\x89\x0b\x2d\xf5\x08\x29\x3a\xa3\xf3\x83\x23\xe4\x74\x62\x8c\xfb\x04\xbd\x15\xf1\xc1\x63\x62\x98\xb8\xd3\xf9\xbe\xf1\x13\x71\xa4\xcc\x39\xd9\xed\xdb\xbd\x4e\xd7\x68\xd9\x4a\xf6\xbe\x93\x4c\x87\x38\xb2\xaf\xd9\x4f\x05\x95\x7e\x2d\x0d\xbf\xa9\x70\xc2\xbe\x96\x54\x89\x6d\xa2\xf4\xde\xfe\xba\x74\x28\x18\x66\xcf\x7f\x5d\xea\xed\xde\x60\xf5\xdb\xd3\x86\xe0\xb5\xf8\x76\x07\xe0\x1b\x4b\x56\x32\x27\x4f\x6e\xc3\xda\x37\xf8\xd8\xf1\x8a\x15\x9d\x95\x49\x9c\x6d\xf3\x5d\x0b\xb3\x38\x34\xc8\x7b\x6f\xbf\x0d\x77\xfa\x1a\x97\xd7\xf5\x10\x17\x65\x14\x0d\xcd\xaa\x34\xb2\x9f\x6d\x67\xbf\x05\x4d\x39\x9b\x9d\x0f\x72\xb6\x5d\x18\x6e\x1d\x65\x97\x86\x39\xc7\x87\xaa\xc0\xbb\x35\x8c\xdb\x16\xa4\x98\x66\xd4\xb6\x66\xd4\xf6\x7a\x23\xe9\x0a\x37\xe0\xce\x76\x3b\x41\x3a\x09\x49\xaf\x58\x6e\xe9\xa9\x17\x7a\xc9\xe2\xcd\xf8\x8a\xdc\xbb\x4f\x2f\xec\xd9\xd6\x3a\x40\x80\x48\x21\xa5\xbb\x70\x43\x13\x45\xc3\xf8\xf2\xe4\xe2\x6c\x7d\x4e\x80\xfa\x1d\x83\x19\x3b\x5b\x2f\x2e\xce\xd6\x93\xf9\x79\x32\xa3\x1f\x99\x8e\xa5\xd7\xe6\x0a\x12\xbb\x11\x5e\x2e\xcc\xd8\x24\x38\x58\xc4\x36\xc7\xeb\x75\x8c\x6f\x0a\x98\x18\xf2\xdb\xf1\x0c\x12\xeb\x71\xb8\xb1\x63\xf0\x71\x3f\xe8\x90\x84\xf8\x7a\x7a\x21\x2e\x77\x70\x34\x0c\xfe\xc2\x3b\x2a\xe4\x90\x4a\x6c\xd9\x86\x5e\x4f\xa5\x91\xd1\x5f\xb9\x1d\x75\xbd\x77\x87\x0a\xc1\x92\x81\x33\xb0\xec\x02\xab\x08\xa1\xd8\xdf\xca\xef\x4e\x65\x84\xcc\xba\xbd\xf9\xa2\x82\x1a\x40\xbd\xc5\x4d\x20\x84\x9a\xdf\x95\x9d\xcc\xfd\x5b\xde\x42\xb1\xc8\xcb\x5c\xf5\xa0\x24\xa9\x75\x5e\x69\xa2\x81\x86\x6c\xd4\xb8\x56\x35\x78\x53\xec\x1d\x8f\x9d\x67\x54\x6b\x19\x68\x1d\xbf\xb4\xbc\x3b\x54\xd6\xbb\x95\x12\xb1\xa4\x1c\x15\x68\x7a\x55\x34\xc9\x0d\x67\xb7\xd6\xec\x3c\x19\xce\xd1\x48\x1c\x3c\x12\x39\x4d\x83\x2a\x26\x7b\xaa\xfa\xac\x1c\x41\x8e\x1a\xda\x4d\x1e\x32\x86\xcc\xa7\x57\x69\xb1\xe3\xac\x6b\xd8\x4e\x2f\x45\x9c\x13\xe2\x1e\x98\x86\x32\xdc\xfe\x79\xc5\x1f\x89\xed\xcd\xa3\x9d\xbd\x3b\x19\xbd\xbc\xcf\x3c\x96\x64\x10\xb6\x7f\x86\xed\x47\x96\x77\x4f\xc1\x62\x1d\xe0\x81\x6f\xb6\x7c\x21\xa7\x55\xd0\xab\x46\x0b\x10\x8c\x89\x04\x49\xda\xbd\xb1\x8d\x2e\x0f\xb4\x79\x1f\x54\x00\xee\x06\x7a\x8c\xd3\x67\x64\xbf\xe7\xfd\x7e\x47\x4b\xda\x44\x78\xb0\xa9\x60\x08\x99\xb7\x40\x8d\x00\xff\x0b\x7d\xcc\xa2\x05\x7e\x20\x96\xd3\x34\xec\x94\xfd\x97\xe6\x29\x7d\x93\x53\x98\xa1\xc0\x06\xd5\x82\x86\x6e\x45\x51\xc4\x9e\xdf\x5a\xb4\x45\x0f\xb1\x16\xcc\xf2\xa9\x6b\x30\xaa\x97\xe0\x88\xa0\xd7\x28\x5f\x0f\xfc\x74\x95\x56\xea\x35\x94\xea\x15\xab\x07\x88\x56\xee\x4b\x6c\x6f\xec\x67\xe3\x24\xab\xa7\xf2\x92\xdc\x56\x12\xae\x31\x75\x0d\xad\x28\xbf\x54\x39\xc2\x71\xd8\x9a\x3d\x61\x0f\x1d\xe1\xeb\x35\xb0\x86\x7e\x1d\xca\xd4\xa1\x48\x5d\x3f\xd4\x37\x3f\xaf\xd5\x68\xa0\x0b\xeb\xa4\x9d\xcd\x5a\xe8\xc2\x26\x41\xe2\x13\x8f\x56\x52\x6c\x46\x64\xa0\x1a\xd3\x5e\x50\x2a\xb2\x1f\xb8\xd2\x9c\xcb\x5c\x2f\x86\x99\xe7\x3e\x8e\x66\xd2\x89\x04\x35\xb7\x77\xfc\x33\x5c\x41\xfd\x2a\x94\x18\x11\x7a\xeb\x50\x15\x93\x40\xa5\xc2\x16\x37\xda\x93\x7d\x6f\x37\x78\xb9\x0c\x3b\x11\x34\x35\xb6\xeb\x81\xfe\xb5\x46\xc3\x22\x02\x3c\xa0\xb6\x5a\xd2\x01\x68\xa0\x6c\x43\x7b\xdc\xab\x6b\x12\x67\xaf\x48\x9e\x44\x5c\x5c\xa1\xfa\xea\x2f\xb9\x5a\x63\xef\xad\xaa\xfa\x23\x1c\x95\xae\xc2\x2d\x3e\xec\x13\x80\x76\xb7\x1b\xea\x10\xeb\x95\x7a\x5e\x01\x0e\xb1\x5e\x7a\xc7\xbf\x13\x5b\x5f\x33\xc6\x7b\xa4\xe9\x73\x83\x36\x99\xcf\xc0\x5e\x69\x3b\x4e\xe1\xc8\x16\xf6\x15\x7a\xaa\x40\x43\xef\x2f\x15\x85\xb2\x30\x28\x09\xf8\x05\xd4\x0f\x99\x98\xd7\xe8\xc6\x3a\x64\x4f\x03\x65\xb1\x03\x67\x89\x67\xcb\x32\xf8\x5d\xf8\x0f\x77\x28\xa8\xa8\x84\xac\x08\x85\x18\xdf\xd5\x0a\x6a\xf6\xe2\x27\xbe\xa2\x23\x0e\xf3\x3b\x70\x3c\xe2\x9f\x49\x9e\xc6\x8d\x49\x80\xda\x36\x3d\x69\x0c\xa8\x1c\x8e\x85\x71\xc7\x48\x25\xaf\x78\x78\x10\xc2\xa1\x85\x26\xf2\xa5\xa6\xb9\x2f\x78\xb9\x7b\xcd\x61\x7e\x4c\xcf\xf4\xa9\xed\xd6\x54\xce\x4a\xfb\xca\xd7\x6b\x6a\x60\xf4\xd9\x7d\xa2\x6e\x44\xd9\x79\xcb\x54\xa6\x60\xb1\x62\xff\x11\x51\x14\x7b\x7a\x65\x93\x50\x09\x0d\xa0\x30\x62\xc9\xca\xe0\x78\xf4\x59\x50\xfe\x0d\x21\x8b\xd1\x64\x94\xc8\xba\x6e\xa7\x1a\x04\x27\xb7\x39\x59\x0a\x5a\xb6\x1d\x48\x5f\x8a\x38\x48\x89\x48\xf2\x40\xdb\xe3\x2e\xa4\x40\x61\xde\x97\x34\xcf\xd3\xea\x6b\x5f\x7d\xa3\xd1\x9d\xa5\xa1\x56\xe8\xe0\x20\xaa\x81\xda\xef\xe9\x25\x57\x4f\x73\x5e\x2c\xbb\x20\x5c\x47\x41\x8d\x7b\x5a\xed\xb6\x5b\x21\x55\xf5\x4e\xec\xb2\x75\x37\xf9\x70\xbe\xa7\xd0\x6b\x3f\x2a\x5f\xc5\xa3\x52\x18\x3d\xb0\xa1\x5b\xc6\x96\x36\x48\x83\xba\xa2\x19\xf5\x4d\x5d\xa3\x67\xa1\x70\xb8\x88\x92\x37\xb7\x61\xdf\xad\xb3\xed\x2c\x55\xd9\x3a\xfe\x4e\x00\xaa\xd7\x45\xb1\x0b\x80\xbe\xc2\x2c\x3a\x36\xb6\x4b\xf4\xb5\xd5\x79\x6a\x27\xef\xee\x83\x43\x4b\x7f\xa6\x8b\xca\x78\x7e\xc5\x97\x4f\xdb\x7d\x86\x3c\x55\x21\xae\xf1\xf4\xdc\x53\xfb\xbb\x9f\x98\x0e\xb8\x8f\x4c\x51\xd7\xee\x13\xdf\xc5\x5b\x23\xa6\xe3\xac\xca\x40\xcb\x73\xb9\x21\xf9\x60\x24\xd0\x5a\x84\xdc\x6f\x8f\xa6\xf3\xf6\x70\xef\x36\x49\x33\x8d\xd8\x2e\x15\x22\x66\xcc\xa8\x0a\x5a\x76\x7f\xd6\xc2\xb2\xb3\x87\x4e\x5d\xf3\x45\xac\x3a\x70\x1b\x5e\x13\x48\x12\xf3\x6e\x81\xff\x9a\x51\x49\xcc\x31\x74\x70\xb4\xf0\xe8\x09\x26\xd7\xf2\xd8\x6e\xab\x80\x96\x40\x3f\xd5\x01\xe3\x8c\x16\x16\xd8\x0f\x22\x56\x24\x8a\x86\x32\x8a\x86\x21\x9e\x87\x9e\x8c\x10\x1a\x88\x1f\x80\x06\xb2\x85\x7e\xe2\x37\x6f\xf9\x1f\xa1\xb3\xb8\x52\x5f\xe1\xf4\x76\x05\xba\x06\xea\x52\xba\x11\x3d\xe4\xcd\x65\x33\xb7\x58\xe4\x00\x3b\xdb\x9a\xb1\xb2\xae\xaf\xa2\xe8\xde\xd9\x87\xdd\xea\xbf\xcd\x66\x13\xfd\x67\xb5\x3a\xbf\x87\xe8\x36\x25\xe9\x0a\xe0\x51\xe9\x18\x56\x7f\x6c\x5d\x65\x3a\x10\x19\x1f\xda\xa0\xe2\xc5\x53\x21\x1f\x35\x03\xd7\x00\x45\x67\xeb\x54\x3e\x42\x10\x20\x84\x0d\xf8\xf7\xfd\xd9\x37\x43\x96\xd7\xb5\x04\x3a\x3a\xfa\x1f\xff\xff\xff\x73\x44\xe8\xbf\xff\xf5\xaf\x7f\x31\x96\x13\x9f\x88\xd8\x8a\xed\x6a\xe6\x9f\x79\xf6\x48\x6c\x36\x69\xb9\x8c\x47\xbb\x72\x29\x46\x64\xef\xe1\x06\x39\x0d\xca\xbc\x74\x7e\x77\xa9\x35\xdb\x23\xc7\xd5\x49\x11\x45\xd2\x6f\x4f\x05\xc6\x69\x41\xc0\x31\x19\x8f\xed\x4b\x2d\x2c\x67\xd3\x9e\xce\x0b\x38\xa0\xba\x95\xc6\x00\xa4\x22\xd4\x56\x38\x31\x37\x89\x5d\xb3\x1e\x16\xa3\xaf\xf1\x37\x1f\xa1\xc6\x94\x6b\x94\x3e\x2b\xf4\x19\x61\xe1\x8c\xe0\x5a\x71\x3a\x99\x2f\xcc\xd4\xb3\x5d\x70\x6a\x25\xfe\x67\xe9\x57\x11\x45\xf1\xee\x20\xcf\xd6\x89\x61\xbc\xe1\x2f\xfd\x48\x94\x9b\xf2\xff\x19\x7e\xd3\xc2\x57\x51\x74\xd8\xad\x37\x2c\x5f\x76\xc8\x9b\xb7\xb9\xcd\x0a\xc5\xbd\x6f\x8f\xa1\x70\xf3\x93\x3d\x15\xe5\x0f\xfc\xe6\xb5\xe4\x55\x40\x2a\xbf\x78\x78\x19\x57\xb2\xee\x2a\xa2\x0b\xf2\x16\xe7\x1d\xb7\x6e\xbc\x72\x4b\x4f\xb3\x57\x35\x14\xa3\x60\x85\x84\xbb\x10\xdd\xb1\xb2\xcf\x7d\x7a\xbe\x8a\x8b\x28\x1a\x66\xe4\x56\x7a\x87\x95\x7f\xe1\x7c\xe5\xb7\x23\x8a\x26\x73\xa6\x2b\x33\xa8\x4c\x9a\xf0\xa4\x79\x59\x01\x74\xfc\x0f\x2a\x96\xf4\x17\x4e\x62\x88\xa7\x2f\x79\x5c\x10\x7d\x3f\x1d\xa0\x32\x8c\xbd\x18\x66\x55\xa5\xe7\x91\x7a\x4e\xeb\xc2\x98\xc1\x81\x70\xd6\xa3\xc4\x3b\x32\x38\x72\x5f\x64\x9f\x7d\x75\xf3\x3b\xca\x6b\x40\x82\x66\xbe\x9a\x2f\x7e\x19\x05\xe1\xd8\xe2\xf0\xbe\x9f\xac\x80\x67\xfe\xd6\x28\x05\x7b\x3e\x15\x30\xc1\xaf\x93\x15\x72\xc2\x36\xc5\x9f\x13\xd8\x38\xc9\xd1\x7c\x36\x9b\x1d\x1f\x35\xfe\x2a\x20\x9b\x58\x8c\xe4\xe5\x45\x1a\xdf\xff\xf6\x5b\x7a\xd4\xfc\x37\x9d\x7d\x4b\x46\xc9\x48\xc9\xb4\xac\x50\x8c\x37\x22\xe3\x51\x0b\x19\xe9\xf8\x08\x91\x87\x26\xa6\xfd\xb3\x4e\x7c\x17\x23\x49\x6c\xd3\x2c\x57\x37\x89\xae\xe1\xf8\x68\x95\x17\x8a\xcb\xe4\x28\x2d\xb6\xeb\x34\x36\x71\xec\x5b\x72\xac\x6f\xbe\x28\x46\x6c\xe4\xd4\xa2\x28\xde\x23\xfb\x1a\xc2\x4a\x56\x51\x14\x24\x7a\x27\x10\xc3\x73\x0b\x2a\x1b\x01\x71\xee\x15\xec\xd4\x75\x6c\xa5\x17\x81\x50\xe3\x68\x84\x37\xb9\xf6\x39\xa7\x4f\xd7\xb2\x4b\xcc\x9b\x25\x8a\xc8\xa8\xef\xf2\x0d\x17\x3b\x15\x97\xd3\x25\x57\x68\x31\x81\x75\x3e\xd0\x7b\xcf\xed\xce\xab\x98\xd0\x6b\x72\xfb\x55\x6e\xdd\xfe\x6d\x7c\xe8\xd2\xff\xe4\x31\xf6\x8d\x8e\x36\x62\x57\xf1\xdd\x76\x44\x37\x84\x56\x5c\xd9\xe2\x2f\xe9\xfd\x19\xd9\x0f\xbe\xeb\x4d\x68\x70\x23\xfd\xd4\xdf\xfa\x08\x0c\x57\xb1\x27\xab\xcf\x9b\xbb\x0c\xbe\x99\xb8\xdb\x7b\xcf\xa0\x51\x81\x67\xd2\x38\xe6\x0b\x33\x7a\xc9\x68\x44\x06\x76\x24\x47\xff\xe3\xff\xf8\xbf\x1a\xa9\x90\xa0\xfe\xc8\x72\xd0\xaf\xd4\xb9\x69\xbb\x4e\x36\xf7\x83\x9e\x94\x4b\x26\x9a\x33\xea\x8e\x21\xf7\xde\x47\x2f\x63\xa3\xea\xd7\x37\x73\x9a\x57\xea\xdf\xe8\x6b\xda\xde\xaa\x4b\x6a\xa5\xdd\x65\x03\x64\x5b\x4d\x7d\x40\xdc\xb8\x8f\xc0\xb1\x9d\xbd\x0a\x76\x47\x14\x74\xaa\xb1\x58\x02\x73\x3f\x30\xc0\xb4\xb4\xf2\xa7\xbd\xaf\xaf\x4d\x67\xe1\xb9\xab\x5d\x76\x14\x85\x03\x77\x3a\x8b\x22\x18\x63\xe6\xaf\xea\x05\x10\xcc\xcc\xda\x2d\xe9\xa5\x18\x4b\x92\xf0\xf1\xf8\x64\x3e\x5b\xf4\x2d\x55\xe6\xad\x9e\x8a\x7e\x3b\x9b\x91\xa4\xb5\xab\xf6\x83\x2f\xe7\xbb\x3f\x9b\x91\xfd\x5e\x33\xf6\xc8\xef\x19\xcb\xda\xe0\x8c\xe1\x75\xed\x33\x34\x00\x3d\xdc\xf8\x3c\x48\x3e\x0a\x5a\x72\xbe\xac\x0c\x46\x8c\x03\x46\x4b\xf4\xe5\xc8\x97\x1b\x13\xfa\xe2\x6f\x4a\x91\x8d\x08\x79\xba\xcc\xaf\x8c\x7f\xa5\xc7\xf9\x55\x23\x23\xce\xff\xd7\xcb\x88\x5b\xd2\x50\x69\xdd\x7c\x35\x97\xe0\x91\xb5\x2d\xd1\x29\xff\xae\xc8\x57\xdd\x25\xf2\x55\x7d\x22\x5f\x30\x30\xdf\x72\x99\x42\xe5\x3e\x0f\xd7\x96\x05\x3b\x93\xf8\x99\x3e\x68\xe9\x17\x9b\xae\xd9\x1e\x54\x14\x0b\xe1\x45\x87\x5b\xd2\x83\x17\xda\x06\x1d\x05\x52\x0a\xb0\xa3\xdd\xb8\xaa\x07\x90\x94\x76\xa5\xe6\x9e\x66\x7f\x69\x9f\x06\x82\xc7\x00\x19\xa8\x79\xa0\xda\x5b\x4b\xf6\xdc\x97\xc4\x97\x42\x1f\x96\xd9\x1b\x55\x4c\x67\xf2\x94\x66\x2a\xbf\xe2\x4f\x10\x72\x7c\x00\xc2\x71\x9f\x9c\x87\x23\xdf\xad\x34\x74\x0c\x43\x85\xbb\xb0\x13\xa0\xec\xfb\xfd\x2b\xae\xc3\xbf\xcb\xe3\xf2\xaf\x09\xaa\x8d\x08\xb4\xbc\x5b\x92\xcb\x3d\x4d\xd4\x54\xa5\x03\x43\x60\x1b\xc9\x2c\x2f\x92\xe6\xfc\xd3\x49\x92\x92\x42\x29\x8f\xe1\xf7\xbe\xc1\xd0\x68\x38\xb9\x46\xa4\x24\x50\x44\xfc\x3c\x2f\x79\x1c\xe0\x86\x5a\x9e\xbf\xa4\x9e\x4c\xd0\xe1\x87\x4e\xdc\xbd\x85\x0c\x04\xb8\x97\x16\x27\xcc\xc5\xa2\x02\x7e\xc3\xb7\xf3\x82\xbd\x04\x00\x2a\x1f\x6a\x54\x00\x60\x57\x10\x32\x6e\x4a\x75\x12\xe2\x70\x78\xac\xcb\xdd\x70\x60\xbd\xba\xf4\x00\x98\xa1\xea\x2d\xa0\x25\x62\xe6\x8d\xe3\x40\x57\xc6\x40\x02\x56\x01\x94\xc4\xe4\xd4\x8d\x65\x5d\xdf\xfb\xb0\xbb\x3f\x9b\x5d\x98\x1b\x29\x26\x41\x91\xbf\x57\xed\x1d\x8b\x0a\x7d\xd4\x2c\xeb\x5a\x21\xe2\xf9\xa3\xa6\x5d\xb1\x0c\x85\xd7\x4c\x86\x83\x68\xa5\xd9\x7a\xad\x79\x2b\x47\x89\x5d\xb6\xee\x91\xfe\x1b\x9f\xf1\x5e\x05\x4f\xca\x65\xec\x65\xec\x79\x9d\x51\xbe\x88\x60\x28\x03\x19\x41\x14\xa1\x54\xc3\x1c\x01\x9a\x75\x7b\xaf\x62\x20\xdf\x81\xb8\x46\xc6\x08\xc1\xef\x0d\xfd\xf6\x66\x44\x73\xf7\xa9\x2b\xcd\xff\x9a\x48\xde\x89\x89\xe8\xd0\x99\x95\x1f\x19\x09\x87\x93\xb9\x05\x52\x0f\xca\x0f\xcb\x9c\xc1\xb8\xc3\xdc\xea\x3c\xf8\x24\x0f\xce\x30\x8a\xe2\xd8\x14\x55\xd7\x0e\xf8\x5e\x97\xf7\x1a\xb7\x8b\x27\x27\xa5\x2e\xee\xc5\xae\x50\xf9\xb6\xe0\x1e\x9d\xe6\x84\x60\x3b\xda\xf9\xba\x9d\x6c\xf4\x6b\x83\xc2\x1b\xc9\x78\x67\xc3\x96\xec\x11\x77\x03\xc3\x0d\x0a\xc4\x4b\x74\xf7\x99\x7a\xb0\xa1\x9a\xd6\x06\x29\x57\x16\x3d\xd4\xfe\x36\xe9\x06\x16\x48\x72\x7a\x91\x2e\xeb\x7a\x98\xd7\x75\x8e\x3f\x67\x80\x06\x75\x89\x38\x51\x0d\xe2\x9a\x8d\xb8\x72\x11\x00\x80\x66\xb5\xc2\x5e\x37\x95\xba\x2c\x34\x0d\x83\x21\x03\xc8\x83\xea\xda\x01\x41\xf4\x4d\x0d\x2d\x18\xc7\x53\xef\x91\xd8\x95\x2a\x8a\x1a\x48\x5f\x27\xb0\x41\x03\x93\xa1\x29\x67\xc7\xaa\xb3\x06\x2a\xe5\xdc\x69\x73\x64\x6c\x07\xaa\xa5\x0b\xfc\x73\x86\x7f\x9a\x84\x09\x04\x0c\x52\x76\x5b\x8a\x25\x4f\xb2\xb3\xac\x89\xa3\xa8\x8a\xed\x07\xde\x3f\x9f\x78\x5f\xdf\x9c\xef\x2d\x54\xb3\xc9\x5f\x9d\xcd\xce\x7d\x95\xd6\xb3\xfb\xae\x94\xd9\x7e\xa0\xe4\xcd\x2d\xde\x93\x5f\x0b\x83\x92\x49\xad\x9f\x5e\x9a\x36\x3f\x74\x44\x20\x11\x5e\x82\x0e\x7f\xb3\x8c\x83\xe5\xbf\xd0\x47\xbd\xd1\x24\x6b\x97\x4a\xe8\xd2\xc5\x2d\xeb\x9a\x4f\xd3\xe5\x12\x91\x91\x97\x20\xb8\x34\xc7\xdb\x83\xa2\x80\xd0\x0a\x0e\x7d\x3f\x0d\x2d\xd0\xbb\xbb\x66\x5b\x9a\x45\xb7\xf0\x12\x15\xe0\xa7\x14\x37\x86\xa6\x48\xdf\x35\x88\xb3\xa0\xa8\x88\x1c\xe6\x86\x6f\x2e\xb8\xf4\x56\xbb\x66\x4e\xdb\xe9\x0f\xc8\x94\x83\xdb\x5d\x1b\xd5\x96\x74\x71\x6e\x0f\x10\x62\xde\x02\xc3\xf5\xdf\x92\x0c\x7b\xac\x29\x9e\x81\x76\xea\xe3\xcc\xee\x86\xac\x01\x02\x08\x97\x43\xda\x4f\x21\x02\x86\xf8\x77\x11\xb7\x57\xfe\xc1\x27\xb0\x56\xba\x83\x0f\x62\x9a\xdd\x6f\x0d\xf4\x5f\xa4\x3d\x83\x3e\x5c\xe2\x80\xcc\xf4\x83\x14\x87\xc4\x87\xf6\x60\x16\xfb\x14\xa8\x17\xbf\x38\x20\x4b\xfa\x0e\x62\x1a\xf5\xac\x7c\xb2\xcc\x95\xe8\x71\xe8\xd2\xdf\x03\x30\x8d\xf6\x88\x46\x28\xb7\x56\xac\x45\x42\xf4\xa9\xb7\x11\xe5\x83\x32\xe3\x95\xc2\x8b\x5f\x9a\x97\x8d\x61\xca\x63\x33\xee\xcb\xfc\x8a\x2a\xd2\xf3\x1a\xf4\xd7\x9e\x82\x6c\x19\x8e\x6d\xec\x7f\xdb\xd1\x29\xec\xb3\xce\x97\x1e\xb1\x96\xf9\xd5\x97\xdf\xaf\xee\x7a\xd3\xf1\xb6\x16\x6e\xdb\xf6\x90\xc7\x64\xe1\x04\x9f\xde\x10\x27\xef\x9b\xb3\xf9\x6f\x6d\x8b\x00\x9e\xfa\x6f\xbc\x04\x1d\x29\x5b\x7a\xeb\x09\x28\xe6\xed\xb6\xd1\xf0\xa5\x89\x1f\x2c\x5c\x99\x57\x99\x76\x4b\xff\xea\x32\x73\x0c\x49\xb3\x37\x86\x6d\x04\x6f\x1d\x08\xc4\xd6\xdb\x1b\x9d\x44\x18\xac\x93\xb9\x0d\x32\xec\x01\xfd\x76\x09\x3a\xc5\x3c\xf5\xb7\x4d\x30\x1c\xad\x47\xcb\xd6\x43\x90\x7d\x19\xf2\xa8\xa1\xa5\xdf\x1d\x72\xf8\x17\x19\x96\xc1\x21\x2a\x6f\xd4\x3e\x35\x47\x72\x37\xd7\x52\xda\x34\x07\xf9\x15\x19\x45\x25\xd8\xfc\x85\x6e\x2b\x7e\xe1\xb1\xb2\xa2\x68\xd0\xb9\xd6\x77\xe4\x58\x22\x2b\x03\xcc\x0d\xb1\x86\xc1\xfd\xeb\x13\x2d\x01\xa9\xc7\xe6\x76\x96\x42\xd3\x51\x10\x5e\x58\x29\x3c\x48\x30\x3a\x9c\x1a\xdc\x75\xd1\x1e\x5e\x00\xae\x89\x95\x4b\x03\x1a\x8c\x74\xc6\x26\x75\x2d\x0c\xf4\x69\x83\x05\xee\xbf\x99\xe5\xc6\xec\xc7\xcf\x31\x63\x2c\xe6\xac\x94\x00\x15\x88\x38\x40\x04\xb5\xeb\xdf\xe5\x31\x26\xd4\x0c\x08\xda\xcd\x57\xac\x09\x29\xc1\xe5\x95\xe6\x54\xfc\xa4\xbc\x93\x94\x6b\xde\x09\x1c\xa2\xfa\x9e\x54\x51\x03\x1f\xaa\x15\x0d\xfa\x57\x61\xdb\xd6\x20\xd4\x21\x27\xd6\x74\x88\x66\xc6\xe2\xe5\x71\x7e\x05\x6b\x16\xef\xff\xd0\x90\x9d\xd7\x90\x62\x3c\x37\x4d\x31\x79\x9a\x50\x68\x4c\x1f\x2e\xb2\xc5\x1e\x80\x19\x68\xdc\xf8\xb4\x55\xf3\x1b\x4c\xa8\xd1\x08\xfc\x7c\xd0\xca\x78\x9c\x80\x3b\xbe\xbe\x8e\xa4\x40\xf2\x1a\xf1\x53\x11\xa3\xca\xf6\xdc\x07\xf6\x6e\x6e\x8c\x97\x6d\xef\xa2\x68\x50\x3a\x70\x72\x5d\x6b\xe1\x34\x1a\xe1\x7d\xce\xfa\xa7\xb7\x60\xcb\x46\x7e\x13\xdb\x7b\xe5\x25\x1d\x8d\x08\xa1\x57\x22\x5f\xc6\x62\xcc\x8c\x65\xfe\x8e\x66\x7d\x95\x21\x44\x1a\x56\x97\x11\xc3\x4e\x82\x13\xae\xe5\x8b\x54\x7e\x02\x94\xf9\x92\xce\xf0\x96\x0d\xb0\x4f\x34\xde\xb2\x71\x46\x7d\xe6\xc3\x11\xb1\x7c\xc9\xd8\x76\x4f\x1c\x59\x83\x36\x2c\x9b\x9b\xd1\x8e\x2d\xf5\xf2\x01\xac\x2f\xc0\x07\x13\x63\xf6\xd9\xa2\xff\xef\x10\x17\x64\x37\x55\x82\xa0\x00\xa6\x22\x28\x7b\x32\x6e\x2d\x58\xb7\x03\x38\x04\x56\xc6\x38\xb2\xaf\xbb\x83\xd0\xde\xa1\x07\x2f\x1d\x74\x80\x8b\xd8\x8f\x01\xd5\xe0\x7b\xff\x3d\xde\x4a\x5e\x2f\xf3\xab\x7a\x4b\xbe\xba\x97\xe3\x25\x1d\xe7\xed\x65\xba\xe1\x88\x71\xa1\xb7\xb9\x35\x35\xf8\xa6\x3b\xad\x2b\x13\xf2\xb3\x7d\xd9\x1e\xae\x6c\xc3\x52\xec\x74\x05\x6b\x87\x50\x31\x66\x2b\x84\xeb\x86\x37\xde\x63\xbd\x56\xa8\x1a\x32\x79\x4c\xc0\xf5\xaf\xb7\x6b\xac\x39\xe2\x3e\x56\xb4\xa2\x19\x4d\xe9\x8e\x10\xba\xd6\xe3\x87\x14\x6b\xc5\xe3\xd4\xcc\xd4\x8e\x3e\xb1\xa1\xbb\x10\x93\x98\x1c\x2f\xdd\xb3\x6c\x14\xad\xdd\xef\x63\x92\xaf\xe2\x2b\x11\x2f\x09\x63\x57\x22\x5e\x13\xb2\x9c\x6e\xc5\x36\x26\x74\x6d\xfe\xee\x26\x13\x27\xc5\xd4\xb3\x38\x64\xeb\xb3\xd9\xb9\x31\x5f\x58\x22\x82\x30\x24\xb7\xbf\xd2\xf1\xd8\x3d\x5c\xaf\xd8\x8c\x6e\xd9\x8c\x6e\x60\x01\xd0\x2b\xc8\x4b\x2f\x9b\xa7\xec\x8d\x7d\x26\xb8\x72\x4f\xd9\xab\x93\xcb\x28\xda\xf8\x2f\xd7\x2b\xdd\xb8\x30\xe0\x98\x8c\xc7\x2b\x37\xdd\x17\x0c\xba\x40\x6f\xb0\x0f\xf4\x63\x53\x81\xd3\x04\xd7\xfb\x70\xe9\x0c\x3c\x92\x19\xa1\x37\x7e\xd4\xda\x8f\x22\xc7\xdb\x93\x8f\x51\x74\xe1\xd7\xe9\x0a\xda\x4e\xe6\x84\xb1\x1b\x3f\xee\xc6\x8f\xd3\x4d\xdb\x0e\x96\x67\x4b\x0f\x98\xf5\xc2\x81\x29\x36\xc5\x10\xaa\xc7\x04\x77\x06\xc6\xae\x70\xcb\x5e\x33\x98\xd2\x15\xa1\x4f\x18\x4c\xaa\x6b\x1b\xf4\xce\x15\x90\x34\x98\x72\xcd\xe4\xd6\xb5\x2e\xb0\xae\xb7\x3c\xbe\xa6\x4f\xc8\x22\xfe\x5e\x9a\x15\xb1\xa4\xd7\xf4\x09\x75\xce\xad\xe8\x70\x46\xac\xb1\xe0\xdd\x0f\xdb\xfd\xc2\xa0\xb6\x6a\xdb\xdd\x89\x7b\x82\x3b\x59\x3b\xac\x45\x23\x98\x33\xb2\x2f\xfb\x28\xde\x91\x7f\x85\xc9\x09\xed\xcf\x0e\xfa\x35\x21\x9f\x4c\xdb\x9c\x35\xd9\xd3\x76\xe9\x5d\x1f\xa2\xd9\x26\x90\x6f\x2d\x7e\x68\x38\x5a\x2e\x89\xfd\x4d\x12\x94\xe9\x01\x00\x48\xaa\xd2\x21\xe3\x8d\x3c\x10\xde\xc0\x6d\xa6\x8f\x9c\x78\xb2\x16\x9d\x96\xce\xf0\x4a\xd6\x79\x4e\x09\x5e\x5e\xa6\x86\x10\x3e\x31\xb1\xcc\x50\xcc\x7e\xdd\x02\xc8\xd1\xf5\xf4\xd5\xd3\xa1\xba\x3e\xd0\xb8\xb7\x4a\xea\xf1\xd4\x04\xfb\x91\x59\xfe\xb1\xbd\xd7\xdb\xfd\xb0\x00\x95\x1f\xfd\x2b\x69\x02\x09\x9d\x91\xbb\x9f\x91\xdc\x44\xb4\xfb\x84\x75\x06\x3a\x73\xbc\xa3\xf4\xf0\x51\xb4\xf4\xd8\x0e\x3f\x3b\xcd\xf6\xc1\x43\x13\xa1\xaf\xf0\x5d\xec\x2d\x02\x7d\xdc\x5a\x8d\x88\xe4\x2d\xa7\xad\x83\x26\x79\xc1\xf7\xf4\x8d\xff\x4a\x75\x6b\x38\xb6\x43\xb7\x2c\x03\xf9\x17\x7a\x3c\x38\xdf\x53\x04\xbb\x6d\x2b\x86\x72\x06\x1c\x62\x83\x07\x01\x0f\x30\x2e\xdf\x90\x85\xe5\x68\xa6\x3e\x00\x24\x34\x09\x82\xb0\x86\x1b\x0c\x71\x2d\xba\x29\x01\xe1\xc2\xf2\x27\x7e\xe3\xcf\xc1\x6e\xd7\x7d\xe9\x56\xa1\x10\x4f\x5a\xe4\xd9\xd2\x62\x21\x5b\xf1\x9e\x44\x9d\xe5\xd2\x20\x22\x3b\x75\xc8\xe6\x5e\xb9\xe4\x7c\xfb\x48\x6c\x83\x91\x6b\x3c\x7e\x9e\x9d\xd3\x3b\x9b\xc9\xcf\x94\xc3\xa3\xdd\x18\xe1\xa0\x6b\xa0\x03\x66\xee\xc6\x60\x73\x06\x1d\x8f\x08\xc1\xb8\xea\x4d\xd7\x7e\x24\xec\x6f\xa6\x73\x4c\x1a\xb6\x90\x1b\x5c\x48\xbf\x72\x7e\x6e\x61\x1a\x9b\xe9\x6d\xb4\x44\xad\x76\x4c\x4b\xe6\x0c\xf6\xbc\x8c\x93\x36\x4a\x75\xb7\x4a\x69\xe7\xae\x64\x21\x6c\xb5\xf1\x52\xa1\x68\xe9\x39\xa8\x88\xa2\x2d\xaa\x78\x81\x2c\xf5\x84\xcd\x88\xf3\x1e\x80\x3f\x26\xf3\xfd\x9e\xfe\x1e\xac\x74\x70\xb4\xd8\x5d\xe6\x97\x66\x8c\xcd\x4a\x70\xbe\x3a\xc8\x9e\x2a\xd1\x93\xfe\xea\x70\x7a\x18\x9f\x43\x3b\xc9\xf3\xc7\xe7\xe5\x37\xe8\xb3\x4d\x8a\x6c\x1d\xc6\x67\xeb\x3d\x7a\x81\xbd\x51\xf4\xa3\x32\x36\x5e\xce\x87\x2e\x18\x3a\x39\xc7\xd6\x33\xcf\x2d\xeb\xb5\xea\x45\x5f\xa1\xa9\x31\x2f\xe6\x8d\xdb\x3e\xeb\xa5\xa6\x60\x1c\xad\x8b\x39\x5a\x17\xe7\xab\x58\x9d\x14\x8b\x38\x67\x33\x2a\xd8\xdc\x79\xb1\x22\x89\x3a\xd9\x2d\x04\x8b\x73\xa6\x26\x05\x19\xcf\x93\xb8\xd2\x04\xd4\x8a\x83\x01\x46\x6f\x17\x45\xba\x98\x6f\xce\x4f\x15\xa2\xa4\xc4\x82\xed\x26\x85\xbe\xd9\xa8\x53\x1d\x1b\xa7\xce\xa0\xd0\xe9\x2d\xa0\x56\x08\xd4\x7f\xff\x9c\x16\x50\x8a\x64\x0c\x54\x6f\x2a\x2e\x01\x59\x71\x81\x8d\x48\x6c\x66\x28\x49\x12\x6a\x0d\xd9\x10\xb9\x2e\x27\x68\xf1\x0b\xad\x98\xdc\x3f\x67\xba\xd0\xc9\x37\xe7\xf8\x3d\x3f\xf7\x0a\x3c\x26\xba\xc6\xfb\xe3\xb8\x9a\xb0\x6f\xc8\x79\xe3\xac\x4b\x73\xf0\xd6\x96\x4e\x46\x51\xce\xa0\x03\x58\xee\x49\xd3\x5d\xdb\x51\xa8\x62\xfc\xcf\xf3\x28\x1a\xea\x1f\xdf\x76\xeb\x88\x61\xac\x75\xd7\x5c\xdf\xad\xa7\x43\x63\xc5\x09\xd2\x73\xf3\x82\x99\xe4\x80\x2f\x27\xa8\x95\x5c\x27\x29\x6d\x2c\x8b\x93\x82\x5a\x8b\xe3\x64\xe7\xa9\xa1\x3c\x69\x10\x52\x8c\x00\x1e\xe4\x44\x01\x8e\x04\xbb\xdd\x53\xde\x31\x5f\x37\x88\x37\xe0\xff\x89\x84\xb4\x36\xc4\xb3\x00\xfa\xd5\x46\xa6\x50\xe7\xec\xd6\x77\x87\xd8\xc2\xcf\x6d\x81\x25\x60\x65\x6f\x0e\x40\x1d\x90\x41\xbb\xfa\x3e\xff\x5b\xba\x19\x4f\x54\xcb\x97\xd8\x99\x3a\xf7\xf4\x8c\x5e\x41\x2b\xa0\x2d\x1e\x52\x17\x62\xa8\xe8\xf3\xff\x17\xe3\xf3\x3e\x8c\x79\xc7\x3f\x1b\x8b\x91\x4e\x54\x03\xbc\x12\xc2\x03\xf9\x56\xb0\x81\x27\xe2\x4d\xfa\x59\x5f\xc8\x3d\x39\x0b\x0d\xbb\xfc\x72\x07\x9c\x48\xd5\xf2\x33\xf8\x56\x35\xe4\xc3\x48\x9d\xb6\xe9\x25\xff\xd5\x8a\xcb\x62\xf7\xb0\x6f\x7f\x98\xa7\xfd\xba\x76\x31\x17\x62\x79\x43\x3c\x2f\xf5\x9e\x17\xc3\xfe\xd2\xdf\xff\xcf\x96\x1e\xe0\xfc\xbc\x50\x01\x50\xa7\x9a\x5e\xe7\xcb\x4b\xae\x1a\x64\x74\xf4\x63\xe2\xc2\x1b\x40\xaf\x9c\xf8\xe9\xcf\xf2\xf3\x69\x7a\x21\xae\xb8\x95\x5c\xfc\x52\x06\x91\x64\x80\xe8\xb1\x4c\x50\x8b\x5f\x30\x66\x02\xee\xdd\x7a\x60\x47\x9e\xe7\x35\x39\x40\x78\x8f\x51\x21\xb2\xb4\x18\x59\xe7\xcd\xaf\xf3\x18\x5f\x00\x4d\x38\x63\xe5\x22\x1d\xb3\xc2\x37\x01\x4e\xd2\x49\x0b\x22\xc5\x08\xf9\x47\x7a\xc4\x46\xa0\xb7\x3d\xc2\x31\x84\x1a\xcd\x73\x1e\xef\xd1\xa1\x38\xa4\xae\x99\x8e\x01\xa4\x7d\x3b\x8e\xbd\x82\x16\xb3\x44\xcf\x12\x19\x58\x8c\x64\xb0\x36\x6a\xa5\x78\x0b\x29\x0c\xc4\x2e\x2b\xa8\x44\xf3\xd7\x31\x2b\xac\x1d\x92\x19\xa2\xd4\x1b\xa2\x94\x7a\x2e\x76\x5e\xfb\x10\x3b\x60\xa1\xc5\x9c\xe0\xc6\x98\xab\x97\xcc\x18\x01\x83\xba\x2d\x2a\xd2\xda\xce\x4b\x52\x4e\x98\x6e\x05\xcd\x27\xec\x9d\x8f\x64\xe0\x86\x54\xd6\xf5\x50\x76\x1d\xe5\x21\x60\xee\x41\xe3\xae\x31\x13\xa6\xd2\x31\xe2\x7e\x1a\x2f\x73\x7f\x67\x5c\x7d\xcb\xf8\x72\x92\x36\x96\xcc\xf9\x04\x0c\xc0\x3c\x72\xf5\x20\x00\x37\xb1\xdc\x15\xac\x99\xb6\x97\x47\x42\x61\x81\x97\x74\x83\x7f\xc0\x41\x63\x1e\xfa\xcf\x79\xe4\x15\x47\x05\xb9\x6d\xd0\x0f\x63\x45\xdd\x93\x2f\x20\xaa\xe4\x54\xd1\xb4\xe5\x04\x92\x8a\x06\x6c\x7d\x81\x33\xcf\x8c\x65\xb3\xb5\x70\x36\x0b\xc2\xb6\xa5\x0a\xaa\xaf\x7c\xf8\x9a\x02\xf9\x5f\x89\xf8\xb4\xff\xb8\xef\x44\xf7\x8c\xf1\x34\x96\x24\x8a\x54\x14\x99\xd8\x93\xe2\x4c\xe9\xc3\x11\xa1\x6c\x63\xce\x54\x1a\xeb\x12\x26\x13\x75\x4e\x26\xb1\x2b\x63\x31\x4b\xe6\x84\x96\x9a\x9c\x25\x9a\x9f\x31\xe5\x9c\x14\x9e\xd9\xba\x57\xe4\xd8\x16\xa9\x8f\x22\xa8\x95\x15\x67\xe3\xb1\x2e\xd3\x15\xa9\x4b\xd3\x65\x46\x11\x08\x7b\x95\x88\x22\x7e\x2a\x81\xe5\x5b\xa4\x31\x9f\xcc\x49\x92\x82\xb5\xe9\xbe\x64\x06\x04\x3e\xf4\xbd\x09\xbe\x1f\x00\x2c\xa8\x74\xbb\x06\xbd\x6f\xee\x00\x6d\x1e\xe4\x59\x85\x5d\xda\x69\xbc\xc3\x44\x19\xab\xe2\x1d\xad\x52\xf4\x0a\xe1\xfb\xd2\x1a\xb2\x5f\x45\x14\xc5\x19\x82\x4e\x43\xb2\x5f\x05\x21\x34\xf3\xbc\x37\x06\xd8\x44\xb3\x81\x02\x7f\x56\xd8\x2e\xdf\x0c\xbe\x75\x3c\x48\x16\xa0\x0c\x7c\x0d\xae\x17\x0e\x3b\x15\x7d\xad\x7b\x31\x0e\xa8\x52\xb0\xb6\x2d\xdc\x03\xc2\x3c\xe4\xce\xd2\x7d\x5c\x9a\xb3\xdd\x77\x68\xa7\xda\xbe\x85\x56\xe8\xc0\xc4\x41\x90\x4d\x3f\xbf\xe1\x05\x2b\x01\xf7\x2d\x9f\x8a\x9d\xaa\xf2\x25\x42\x24\xe5\x9e\x9f\xbb\x3e\xa0\x40\xf0\xd4\x20\xc7\xbd\xe4\x92\x9c\x38\x16\xfd\x8d\x8a\x4b\xeb\x2d\x80\x0e\x67\xd4\xa2\x07\xe5\xec\x45\x1e\x97\x54\xe2\x83\x01\xa2\x6c\x96\xd6\x4d\x5a\xbe\x8a\xf3\x53\xd1\x2d\xc2\xa5\xa0\x08\xaf\x17\x3a\x72\x1f\xce\xe8\x9c\x0c\x1a\xb4\x6d\x0f\x87\x07\x92\xe7\xe4\xf8\xd8\xee\xc6\xc7\xba\x4b\x29\xec\x47\x49\x68\xc1\x9e\x97\x71\xaa\xd7\x4e\x11\x45\xc6\xcb\xc3\xcc\xfa\xd6\x1c\x16\x75\x3d\x8c\xab\x69\xb6\x3e\x45\xe1\xef\x34\x5b\xd7\x75\x05\xbc\xbb\x0b\x88\xa2\x0a\x86\xd2\xf3\x20\x51\x0d\x72\xf6\x2e\x8f\x53\xb6\x9b\x2a\x61\x5d\x48\xbb\x31\x7d\xac\xba\xc2\xfa\x7c\x02\x67\x94\x95\xd8\xdf\xff\xba\x19\xdb\x1e\xb3\x54\x5a\x30\x83\x96\xe5\xa3\x8e\x97\x81\x69\xee\xca\xbc\x0f\xe1\x19\x49\x15\x2d\x1a\x5a\xc3\x86\x33\x2a\x4e\x2d\x78\x85\x01\x84\x98\x54\x89\x38\x01\xb3\x59\x13\x30\xae\x92\x38\x45\xc0\x00\xb0\x79\xdd\xe3\x36\x7a\x00\x0d\x5d\x5a\x80\x23\xeb\x4a\x9f\xc9\x54\x87\xaf\x58\x09\x7f\xb7\x6c\x17\xaf\x09\xdd\xb0\x94\x5e\xb1\x5d\xbc\x22\xf4\x92\x81\x5a\x5f\x79\x7a\xe5\xcd\xae\xa4\x2b\x7a\xa9\xe7\x0e\xb8\xed\x63\x38\x9d\xb2\xc5\x8a\xb1\x75\x5d\xaf\x18\xdb\x69\x3a\xba\xa6\x73\x92\xac\x26\xeb\x13\x36\x6f\x2e\x39\x17\xac\x3c\xd9\xd6\x75\x39\xd9\x9e\xb0\xab\x49\xb9\x58\x27\x2b\x7a\xc3\xca\x49\x7c\xc1\xd8\x7a\xb1\x4d\xae\xc8\x31\x40\xfd\xf8\x28\x3f\x17\x08\xec\x73\x31\xf0\xeb\xbf\xa0\x90\x63\x93\x5c\xd2\x9b\x93\xc9\x7c\x31\x99\x27\x37\xa7\x73\x70\xb6\x09\x1d\x36\x22\xda\x8c\xe7\x45\xbc\xbc\x77\x9f\xd0\x6b\xb6\x1e\x7f\x34\xcf\x11\xd7\x6c\xed\x96\xda\x13\x36\x3b\x7e\x72\xf2\xf1\x78\x3c\x7e\x42\xae\xb1\xe5\xd7\x74\x8e\x85\x7c\x66\xbb\xf8\x9a\x0c\x3e\x9f\x96\x8b\x78\xc5\xae\xe9\x15\xfb\x4c\xe3\x4b\x96\xea\x4b\xcd\xd5\x98\xcd\xf9\x37\x7a\x44\x3f\x92\x24\x5e\xb3\x6b\xba\x65\x9f\x61\xe0\x96\x13\xf6\xd1\x5f\x38\x2f\x55\x80\x7d\xc3\x3b\x6c\x6c\x1b\x1c\xb1\x89\xb1\xaf\x35\x8c\xdd\x28\x72\x7b\x83\x0e\xa7\xb7\x92\x8f\xda\x2c\xf8\x3f\xff\xeb\x78\x3c\x56\xe4\x46\x05\x48\xcc\x2d\x40\x7d\x5d\xee\x4b\xb1\xe4\x31\x82\xeb\xb4\x12\xeb\xa2\x2f\xc0\x73\xc0\xdf\x29\x65\x1f\x40\x37\xde\x28\xfb\x96\x7a\xa3\x02\x88\xc8\x7b\xdf\xce\x1c\xc4\x1c\x20\x94\x77\xfb\xaa\x2f\x89\x6f\xbc\xc2\x00\x81\xdd\xf3\x05\xfd\xac\x7f\x18\xdd\x3d\xa1\x3d\x8a\x2e\xc2\x68\x56\xf8\xd8\x42\xee\xdf\x88\x50\xe9\x06\x95\xea\xdb\xc9\x20\xe8\x90\x24\x8e\xc7\x3a\x64\x0c\x9f\x33\x0b\x01\x69\x41\x85\xee\xcd\x5d\x67\xf3\xd3\xfb\x5e\x67\x9b\x3b\x4d\x0e\x27\xe2\x7c\x06\xcb\xec\xb9\xa2\x4f\x15\xfd\xd3\x38\x57\xfe\x49\xb1\x59\x43\x1f\x1e\x9a\x8b\x1a\x3c\x0c\xb3\xdb\x6c\x93\x70\xc0\x8e\xb3\x22\x4e\x4d\x77\xf4\x7d\x13\xc7\x30\xc1\x37\x43\x3c\x56\xa8\x87\xa1\xa7\xd3\x79\x6e\xad\x10\x72\x4e\xdd\xe8\x03\x4f\x47\x21\x1e\xdf\xab\x8b\xdf\x2b\x8c\x09\xdd\x58\x7d\x0f\xe2\x6d\xd9\x1b\xf7\x28\x05\x99\xfe\xac\xab\xa9\xe0\x6a\x7c\x81\x77\x2c\x68\xaa\xbb\xec\x18\xff\xc3\xf6\x7a\x12\x7e\xbe\x16\xa6\x2e\x54\x67\xd1\xb4\x6c\x99\x8c\xc7\x3f\xa9\x3d\xfd\x53\x2d\xfe\x54\x53\xb1\xad\xac\x13\x7d\x18\x18\x92\x58\xdc\x40\x71\x5d\x56\xdf\x49\xb1\xdb\xb2\x3f\x15\xbb\x15\xdb\x2a\x39\x33\x51\xe7\x74\xc9\x8b\xf4\x86\x2f\x75\x93\x2f\xd2\xec\x53\x95\x9c\x9d\x7b\xdb\xf4\xfb\x00\xf9\xba\x55\x1a\x08\x5b\xc0\x2e\xba\xa3\x9e\x0b\xb7\xd0\x56\xc9\x54\x73\x1b\x4b\x81\x50\x68\x6d\xaf\x6f\x67\xf2\x7c\x9a\xa5\x45\x11\x87\x18\xcd\x16\x9a\x52\x38\xc5\xbf\xc0\x33\xac\x0e\x3f\x2b\xcf\xf1\xcd\xbd\x7f\x7e\x50\xf6\xd1\x8e\xc5\x19\x3a\x39\x94\xc9\xd6\x45\x0e\x25\x38\xeb\x2f\x70\x3c\xf6\x7a\x41\x73\xf0\xba\xb6\xbf\x5e\xe7\x05\x8f\x9b\x0e\x93\x3d\x89\x15\xd9\xaf\xf2\x32\x2d\x8a\x9b\x5b\xb3\xc4\x3b\x3e\xf1\xbc\x2e\xc3\x08\x41\x5f\xf5\x28\x19\x85\x1d\xc8\x75\x1c\x8c\x7c\x43\xfe\x60\x64\x68\x8f\x7b\xbd\x9f\x55\xac\xc7\x1a\x47\xb8\x27\xfe\xab\x2f\xc4\xff\xf1\x85\xf8\x5f\xbe\x10\xff\x9d\x89\xc7\x31\xf0\xbc\x77\x86\x0b\x2d\xd0\xd6\x38\xee\x5f\x5e\x06\x82\x62\xa8\x3c\x8b\xa3\x47\x45\xbe\xdd\xf2\x65\x14\xa9\xc6\xd8\x08\x49\x2e\x90\x18\x50\x27\x09\x71\x65\x59\x7f\xca\x89\xea\x05\x94\xa5\xca\xd0\x91\xa7\x9a\x8c\xc8\xd0\xfd\x0b\xa0\xc3\x1a\xa8\x0a\x73\x57\xc4\xf8\x4d\x2a\x2f\xf3\xf2\x21\xe2\x45\x4d\xda\x2d\xe8\xcb\x81\xc6\x82\x80\xb4\x8b\xad\x0c\xcb\x6e\xf7\x17\x75\x61\x34\xaf\xc2\xa7\x01\x7d\x89\xa2\x97\x18\xba\xd9\x55\xca\x20\x87\xf2\xa9\x47\x2b\x51\x47\xc9\x91\x44\x04\xb7\x83\x47\x33\x4b\x85\xc0\xa8\xbc\xa1\x41\x40\xb9\xbd\x6f\x64\x1d\x3b\x0a\x32\x61\x1a\xc3\x39\x9e\x3a\xfd\x12\x52\xd7\xb2\x25\x67\xd2\x73\xd6\x8b\x79\x69\xbb\xc4\xfc\x5e\xa0\xb7\xcf\xf7\xa0\x77\xe4\x87\xde\xea\xeb\x84\xd7\x7a\xf3\xca\x9a\x04\xed\xd9\xd3\xa0\xd3\xbe\xbb\x57\x73\xb2\x60\x8d\xcb\xc7\xc6\x4d\x50\x58\xc7\x0f\xe8\x24\xd2\xa6\xf2\x1d\xc1\xde\xb1\x8a\x07\xed\x52\xa3\xe8\x37\x9c\x9b\x8b\x54\x5a\x11\xe3\x73\x1d\xd2\x1d\x99\x61\xff\xd0\xc0\x5c\xa4\xcb\xdf\x77\x15\xae\x92\x77\x82\x6d\x54\xac\x9a\x02\x9a\x5f\x81\x62\x02\xb2\xc4\xdf\x50\x15\x4a\x36\xac\x64\x31\x28\x31\x68\x9f\x19\x44\x4c\xe8\xac\x4c\x64\xff\x56\x91\x1d\x07\x43\xe3\x56\xd9\xe3\xa5\x8a\x15\x19\xab\x0e\x3c\x33\xac\xd8\xf4\xf3\x5b\x77\x32\xfa\x30\x37\x5f\x2e\x77\xb2\xd6\xe5\x12\x42\xe3\xf6\x98\xc3\xc2\x6c\x1d\xca\x04\x95\x12\xd1\xbc\x61\xd9\x18\x7e\xcb\x43\x2e\xd2\x8c\x76\x9b\xef\x21\xe2\x97\xd6\xc4\x0f\xec\x36\x0a\xda\x05\xe4\x27\x14\x26\x19\x02\x91\x97\xbd\x83\x8f\x1b\xbe\x35\x16\x27\x46\x71\xca\x05\x44\xd1\x95\x8c\x7d\x17\xe0\x5d\x14\xeb\x26\x71\xbb\x34\xd0\x49\xf0\x56\x42\x5b\xf8\x3b\xf7\xbc\x80\xeb\x5e\x47\x91\x35\xe8\x60\x2f\x05\x18\xda\x0f\x1d\x2f\xbc\x4e\xab\xa7\x68\x8c\xd1\x09\x8a\x09\x19\xf4\x0c\xb2\xde\xf4\x77\xbb\xab\xeb\x64\xd1\x37\xdd\xfe\x79\x6d\x58\xbe\xa1\x51\x2e\x43\xc2\x4c\xa2\xe8\x21\x10\x8a\x66\x21\x37\x84\xb2\xd9\x8d\xbf\xf6\xa4\x69\xaf\x95\x28\xca\x15\xa8\x0d\x75\x91\x4d\x3c\x4e\xb2\xdb\x2b\xb4\xd3\x04\xf3\x41\xd0\x95\x90\x51\x74\xc1\xdb\x6e\x59\xbf\xbb\x83\x7a\x58\x8d\x45\x7c\x9d\x6e\x37\xfd\x3f\xd0\x74\x43\x8e\x8c\x87\x22\x39\xbd\x5e\x73\x5e\xc0\xc3\xcb\xaf\x16\xb4\xd4\xa3\x8c\x8d\x71\x80\xbf\x92\x86\x01\xa1\x04\x4b\x29\xaf\x98\xa0\xd0\xf7\x06\x1a\xa1\x53\xb2\xa6\xed\x3d\xa6\xbe\x61\xe5\x43\x43\x82\xdf\x1a\x67\xb5\xce\x3c\xf8\x10\x3e\x56\xa7\x4c\x03\x90\xd5\xa1\x3e\x18\x4e\xbd\xda\x08\x58\xb3\x7f\xc1\x2c\x59\xa7\xa3\xbd\x0d\x0f\x52\x74\x07\xad\xa7\xbb\x40\xb2\xba\x23\xdb\xdf\xe1\x83\x30\x5e\x9d\x62\x91\x33\x39\x40\x6e\xfd\xda\x0e\x76\x58\x47\x06\x15\xf7\x74\xf9\x39\x3a\xc2\xf3\x48\xc6\x57\x80\x23\x1e\xac\x0c\x27\x89\xeb\xc0\x29\x3b\xff\x58\x71\xe9\x4b\xaf\xf0\x01\xe5\x5b\x70\xfb\x6e\x04\x45\xc3\x39\x4d\x8d\x5f\x43\xd0\x63\x8d\x22\x39\x64\x6a\x81\x68\x6c\x24\x49\x69\xc1\x7e\x96\x31\xf7\x5d\x97\x81\xfc\x18\xc5\xc8\x2d\x97\x66\x5b\x0a\xef\x11\x64\xe2\x99\x3f\xf6\xa6\x87\x70\xe3\xaf\xc9\x82\x69\x92\x31\x88\x5c\xb9\x47\x58\x35\xef\x90\x05\x21\x7a\x28\x1a\x4d\xd1\xc2\x5f\xcc\xf1\x46\xb7\xb3\xf0\xd7\x89\xc3\xd6\x6d\x15\x3a\xd9\x91\xd3\x39\x38\x00\x03\xaf\xcd\x61\x61\xb8\x52\xe2\x2b\xbf\xb4\xe7\x4d\xdb\xdb\xc5\xe9\xa8\x49\x16\x94\x37\x14\xa8\x25\x68\xdf\x52\xd2\x7d\xac\xe8\x73\xe3\x3c\xbf\xc5\xb5\x91\xbe\x08\x25\x5a\x33\x6d\xb8\x57\x4d\xbe\xfd\xd0\xbc\x42\x44\x17\x60\xb5\x43\x5a\xd8\x01\x50\x56\xe0\x82\x1c\x73\x63\xae\x67\xa5\x12\x3f\xe7\xfc\xba\xd1\x22\xbd\x0a\xc1\xf8\x41\xfa\x7f\xe7\x7b\x0b\xcd\xf1\xde\x04\xef\x3b\x63\xf0\x2b\x79\x32\x5b\xe4\x6c\x38\x73\x30\xc1\x18\x7a\x6a\xd0\x1e\xd0\x53\x0b\x52\x07\xef\x84\x6a\xbd\x16\x06\x44\x04\xb5\x00\x86\x73\x4f\x43\x38\x8f\xa2\xe1\xca\xae\xe0\xc6\x1b\x25\x20\x34\xa0\x25\x77\x1f\x6a\x89\x85\x26\x81\xc6\x4e\xa4\x27\x64\x9e\x04\x32\xf2\xae\xfb\x42\xd5\xc0\xf2\xea\x7e\xe2\x3d\x40\x36\x9e\x27\x5a\xd8\x26\xca\xb9\xae\x74\x50\x29\xf7\xb7\x9f\x8f\x47\x7a\xfa\xba\xaf\x50\xa1\x87\x32\x2a\xcc\x0c\xdb\xd9\x89\xf3\xf6\xcb\x6f\xd7\xb0\x5a\x90\xbd\x5e\x62\xc6\xbb\xb0\x00\x24\xa0\x9b\x0b\xfe\x3d\x60\x98\xbc\x00\x8d\xe7\x8a\xa6\x36\xf8\xa7\x72\xed\x47\xa0\x31\xa0\x87\xb8\x74\x5c\x9d\x88\xe6\x6d\xb5\x22\xe2\xac\x42\xed\xf2\xc6\x2b\xd3\x8f\x79\xac\x43\xe9\x68\x9d\x2f\x39\x2a\x53\xa7\x50\x44\x08\x41\x0f\xd9\xd3\x76\x76\x70\xf1\x0e\x78\xf4\xa3\x5d\x69\x0a\x90\x4e\x2c\xed\x0b\xe7\xc0\x83\x4c\x73\x06\x1c\xe4\xa9\x60\xb3\xf3\x69\x23\x2c\x82\x2a\x14\x1d\x19\x77\x0e\x23\xaa\x82\xe8\x86\xf3\x68\x98\x86\xe9\x2a\x2f\xf3\x6a\x1d\xfb\x2e\xda\x1b\x7f\x17\x56\x9c\x63\x1f\x38\x63\x32\x00\x01\x18\xd8\x24\x36\x81\x4e\xa0\x00\x32\x1b\xef\x6a\xfd\x83\x29\xaa\xed\x99\xb2\xb7\x70\x54\xf3\x8c\x39\x4d\xe5\x25\x6c\x8b\xaa\xaf\xb6\x9e\x54\xed\xea\x3d\xc7\xed\xbe\x87\x95\xb0\x76\x54\x71\xf4\x1b\xc0\x4d\xd1\x00\x37\x11\xb6\x01\xb4\xf4\xfc\x66\x1c\x48\xeb\xb7\x04\xf2\xf8\x8d\xf9\xf1\x40\x63\x02\x78\x4b\xf4\xad\x50\xd7\xea\xaf\xb7\xed\x6f\x37\x2c\x68\xd5\xaf\xee\x69\x0a\x4d\x84\xf2\x92\x33\x65\xed\x2f\x2b\xc5\x3a\xf2\x0f\x2a\xf1\x95\x41\xb1\xe7\x3a\xf0\x98\x70\xf0\x37\x57\x2e\xe3\xb9\xe6\xe7\xd1\x3a\x3f\x46\x3c\xb4\xb3\x73\x42\x8c\x60\xd0\x3d\x9b\xc8\x3d\x70\xb1\x60\x39\x94\xff\x69\x20\xed\x74\x55\x8b\x77\x79\x7c\x65\xec\xe7\x50\xab\x66\x22\xc7\xf3\x64\x8e\x69\x4b\xb1\xe4\x0d\xe8\x1d\x8a\x66\x51\x0d\x0c\x76\x35\xfb\x1e\x69\xbe\xe7\x4d\xbb\x4f\xa3\x8b\x9d\x9d\x53\xc1\xd4\xb1\x38\x91\xc7\xc2\xaa\x1f\xa4\xa1\x2b\x12\xf7\xa4\xa8\xc9\x12\x19\x94\x4c\x8c\x53\xf4\x5e\x67\x1c\xa5\xa5\x9e\xeb\x2a\x57\x1d\x97\x6d\x3e\x04\x9c\xf2\x99\x63\xdc\xf8\xe3\x73\xce\x42\x63\xe9\x47\x8c\xcd\xc9\x9a\xff\xc9\xad\x67\x95\x99\x7d\xe4\x0b\x7c\x89\x95\x51\x24\x9d\x4b\x2a\xe7\xb2\x3e\x37\x7b\xf9\x39\xea\xc7\x5c\x70\x59\xd5\x75\x4f\xa0\x51\x2d\xeb\x46\x30\xd5\x38\x7a\xf1\x04\x34\xa0\x3f\x6d\x1d\x62\xbd\x13\xe4\x73\x14\xfd\x54\xba\xf7\x5a\xaf\x1d\x52\xea\xf9\xb5\xaa\x0c\xf2\xc4\xf3\xa1\xa5\x33\x3d\xb4\x99\xe4\xb8\x24\xa7\x4d\xdc\x02\xf2\x25\x71\x13\x32\x66\x25\xb5\xc5\x8e\x59\xd9\x94\xa9\x4e\x02\xbf\x5c\xd2\x6b\x55\x58\x79\x90\x90\xdc\xc6\x82\xe5\x7a\x62\xa4\xae\x9b\xce\x09\x59\x98\xda\x4c\x2a\xa3\x89\x2f\x10\xc1\x82\xd0\x26\x2f\x43\xb9\xd1\xcb\xa0\x3d\x09\x54\xe6\x6c\x42\xfc\x66\xe0\xb1\x7c\x6c\x2b\x54\x54\xd1\xc9\xc1\xfa\x66\xb4\x55\xe3\x3b\x61\xeb\xf3\xeb\x30\xab\xd3\x2f\x90\x56\x61\x87\x06\x69\x14\x55\x87\x2a\x49\x4d\x25\xd3\x4c\x94\x59\xaa\x62\xd8\x12\xa9\xe9\x57\x65\xea\x73\xb1\x41\xe6\xca\x64\x25\x7d\xfd\x47\x6d\x81\xbc\xeb\xb5\xa8\xd0\x2b\xfb\xa4\xc0\x92\x17\xe6\xef\x98\x95\x89\xb2\x81\xe3\x02\x96\x39\xac\xc3\xae\x47\x20\x00\x6b\xf5\x9c\xc0\x4b\xbb\x85\xfb\x57\xe7\xe0\xaa\xcf\x77\xf5\x21\x97\x4a\xf9\x2a\xce\xc1\x9d\x52\xde\xb8\x53\x32\x3f\xc7\xb9\x6d\x55\x79\xa0\x55\x74\x18\xab\x93\xd2\x93\x32\xaa\x53\x56\x86\x7e\x34\x85\x09\x68\xbc\x3c\x39\xce\x0d\xed\xeb\x1b\xc7\x95\xe6\x80\xae\xeb\xd8\xfd\xd6\xb4\xf2\x78\x32\x67\xec\x42\xc4\x29\x95\x24\x8a\x52\xe3\x6c\x26\x20\xd7\x30\x01\xb7\x5d\x27\x54\x1d\xe7\x9e\x3e\x7d\x69\xb9\xdd\xd4\x44\xb0\x4f\xe9\x80\x79\x6e\xa4\x4c\x1f\x7a\x9d\x5e\x35\xee\xad\xac\x77\xc6\x58\xb5\xb5\xbe\x60\xfb\x35\x4a\x0c\xad\x67\x86\x30\x2d\xc5\xa7\x16\xd9\x72\x00\xa6\x0b\x95\x67\xe5\x39\xd2\x45\xaf\x2c\xcf\x9d\xad\x6c\xfb\xd2\x11\xcc\xb4\x9c\xa6\xad\x5a\xe0\x64\xfd\x5c\xd7\x92\x1d\x22\xbd\x46\x49\x04\x71\xf8\x04\x85\x95\x91\xc8\xc6\x21\x1a\xc2\x72\x76\xfb\xa9\x39\x47\x70\x3a\x54\x8c\xc1\xe1\x10\x94\x06\xb6\x8e\x43\x86\x43\x58\x9e\xce\xe0\xaf\x40\xc7\xd7\xc6\xee\x31\x18\x44\x56\x8c\xd3\x33\x81\x79\x27\x8a\x8a\xf1\xd8\x3a\x9e\x29\x26\x6a\xa0\xc6\x2c\xa7\x72\xcc\x72\xb4\x1f\x73\x64\x58\x12\x30\x22\x33\x65\xc7\xe5\xc9\x6c\x31\x4b\xbc\x2a\x82\x3a\xe4\x98\x95\x5f\xa7\x67\x62\x02\xe9\xe6\xc9\x8c\x60\x75\x54\xef\xed\xfd\x81\xde\x7b\x5e\x6f\x65\xfb\xa1\x27\x98\x44\xc9\x66\x66\x22\x55\xcf\x7b\x99\x82\xb7\x32\x73\x58\xeb\xd3\x49\x6f\x08\x70\x47\xe2\xf6\xc2\x78\x2c\x9d\x1a\x9e\xe7\x00\x57\xf6\xbd\xbc\x28\xb0\x0b\xfd\x45\xa6\x5b\xf3\x58\xcd\xfa\x31\xcc\xf5\x15\xd1\xa6\x44\x31\x67\x27\x21\x04\x37\xde\x32\xbc\x47\x61\xd5\x7d\x13\x57\xbd\x8a\xad\xbd\xcf\x22\x88\x14\xa1\xde\xe6\x7f\xf2\xd8\x27\x6a\x06\xa1\xff\xb6\xd9\x0d\x7f\xe4\xb1\x22\xc7\x72\xc8\x9c\xeb\x84\x63\xc9\xa4\xe7\x97\x05\x8c\x0b\x64\x5d\x03\xc0\xa6\xb5\x41\x8c\xa2\x91\x92\x3b\xd0\x2a\xec\xda\x7b\xe6\x97\xa5\x90\xff\x2f\x6f\x6f\xbf\xe5\xc6\x8d\xec\x09\xfe\xcf\xa7\x28\xe6\xf1\xcd\x49\x34\x41\x8a\x54\x5f\xcf\xdc\xc9\x2a\x14\x8f\x6c\x49\xb6\xdb\x92\xe5\xb6\x64\xbb\xdd\x14\x5b\x27\x8b\x04\x8b\xb0\x92\x00\x1b\x09\x96\x54\x2e\xf2\x11\xf6\x9c\x79\x84\x3d\x7b\xf6\x49\xf6\x51\xe6\x49\xf6\x20\x02\x40\x22\x3f\xaa\xa4\xdb\x33\xbb\xff\x54\x31\xf1\xfd\x19\x08\x04\x22\x7e\xc1\xc7\x60\xfb\x53\x25\xf0\xe4\x51\x17\x07\xe2\x21\x7b\xbf\x05\xa9\x87\x73\x2d\x19\xac\x14\x22\x6f\x95\xed\xdd\xd5\x72\x6c\xaa\xeb\x26\x40\x17\xba\xcd\x90\xca\x8c\x9d\x4d\x4d\xd2\x5c\x8b\x37\xce\xf9\x7d\xe5\xa8\xf1\xc3\xaa\x89\x96\xc1\x55\xcc\x04\xec\x4c\xa7\xcd\x57\x84\xa0\xdf\xc6\x20\x82\x71\xe8\x27\xf5\x8d\x03\xb4\x84\xe1\xb8\xa2\x07\x06\x5a\x58\x8a\x16\xc4\xb1\x52\x33\xc6\x0e\xa0\x73\x94\xa6\x59\x59\x6b\x92\x1d\x1c\xa8\x95\xe5\x33\xbd\xf5\x9d\x4d\xb9\xda\x3a\x17\xf3\xe0\xf6\x94\x7a\xe5\xbd\x1e\xaf\xa7\x63\x1f\x37\x38\x80\x45\x1f\xf2\xc4\x6d\x39\x1b\xa0\x7b\x66\x99\x1a\xaf\xe2\x6b\xb8\x53\x59\x68\x68\xbc\x91\xf1\xaa\x86\xca\x3f\x44\x2e\x42\x75\x0f\x48\x5e\x3c\x43\x99\x51\x99\x01\x18\x31\xed\x10\xcd\x00\xf9\x21\x4d\xfd\x03\x43\x03\x10\x22\x23\x84\x20\x64\xde\x56\x00\xb6\x3d\xfc\xff\x9e\xdf\xd2\x0a\xa1\x62\x09\x4a\x65\xc3\x35\x74\xad\x8b\xeb\x6b\x30\xda\x1a\xce\xee\x07\xb2\xea\x4b\x3e\x3d\x11\x3a\x9b\x4e\x49\xcd\xb8\x0d\xd7\x1a\x9a\xea\x55\xe4\x4a\xfc\x1c\x54\x1f\x84\x9d\x52\x27\x47\xf1\x60\xa2\xbf\x8a\xcc\x26\x5d\x15\x15\x3f\x9b\xe5\x5e\x0c\xe4\x44\xe6\xf2\xda\xee\xd8\x79\x6f\xa8\x65\x38\xe5\xbc\x29\x3a\x24\x77\x6a\x1e\xb5\xfe\xa3\xca\xae\x38\x05\x13\xb6\xbc\x76\x7f\xb8\x3a\x54\xf0\xea\x30\xf0\x37\x89\xe0\x84\x78\xf0\xdc\xa4\xe9\x73\x33\x31\x62\xc7\x2f\xc5\xf8\xdf\xa7\x53\x30\xa9\xd8\xf3\xec\xb9\x99\xec\x55\x45\x35\x99\x4b\x96\x18\x2d\xf6\x25\x4f\xf2\x17\x26\x4d\x5f\xf4\xa5\x7e\x11\x52\x67\x92\x25\x6b\x75\xb8\x2a\x79\x42\x9f\x1b\x76\x67\xd3\xe6\x82\xee\x55\x95\xeb\x13\xc9\x6d\x34\x7a\x0a\x4a\xe8\x8b\x4e\xf4\xc0\x2f\x77\x5e\x03\x9d\xb2\x9b\xb9\x99\xec\xb8\x29\xbe\xe7\xb7\xb9\x99\xac\x8c\x2e\xbf\xe7\xb7\x91\xc6\xa5\x9d\x9a\xa7\x5a\xed\xd3\xf4\x0b\x05\xf2\xe2\x26\x9e\x97\xaf\x0e\x85\xab\xa5\xdd\x0c\x1e\xde\x57\x13\x02\x90\x6e\xd9\x9e\x67\x10\xe3\x2c\x91\xca\x25\xf1\x80\x06\x9a\x5c\x4c\xed\x0a\x74\xea\x7d\x98\xb6\x04\x5b\x24\xaa\xc9\x65\x88\xbb\x98\x92\x79\x57\xa8\xdb\xa2\x3c\xb4\xac\x47\x9e\x1e\xd8\xf7\x4d\x2c\xeb\x15\xb9\xab\xd0\xd3\x4c\xdf\x1a\x05\xf1\x22\xac\x09\x08\x75\x4b\xc2\x2e\xde\xbf\x88\xa0\x56\x15\x21\xb3\x1e\x88\x8d\x10\x91\x5b\x97\xb5\x56\x18\x1e\x84\xa2\x35\x51\x5a\xf9\x5f\x64\xd4\x89\xfd\x2d\xc4\xfe\x46\x2e\x66\xd3\x34\xcd\xbe\x12\xd9\x8a\xd0\xa1\x4c\xd3\xd0\x9d\xf1\xe3\xe9\xf4\xa2\x4c\xd3\xaf\x78\x38\xdd\x69\x05\x38\xa4\xff\x9d\xb1\x62\x7e\xcf\x06\x6b\x58\x18\x84\x0d\x22\x9a\xe8\xbb\x08\x31\x94\xb7\x42\xc9\x89\x90\xc1\xfd\xe3\x05\xae\xa9\x7a\xc6\xeb\x40\x5b\xe9\x71\xe5\xf4\x04\x66\x64\xf0\xcd\x7d\x23\xfb\x4d\xff\xc8\x7a\x47\x56\x2b\x92\xdf\x0f\xca\x50\xaf\x86\xc2\xe9\xd2\x82\xbb\x1b\xef\x55\x93\x1e\x58\xe1\x16\xbe\x5f\x8f\x03\x01\x4f\xd9\x9e\xa2\xcd\xb3\x12\x93\xc4\x0b\x99\x56\xac\xbc\x1c\xcf\xe6\xab\x45\xb9\xcc\x9d\xb1\xa1\xa6\x9a\x90\x3c\xab\x5c\xea\xd8\xbd\x46\x1d\x82\x56\x84\x96\xe2\x5e\xcf\xeb\x3a\xd0\x1b\xa6\xdf\x73\x45\x69\xc3\x88\x64\x89\xe6\x2b\x93\x80\x02\x76\xc5\xe2\x5a\xa8\x66\xee\xc4\x1d\x82\xea\x2c\x2d\xd9\x78\x56\x1b\x08\x38\x82\x10\x8c\x26\x3c\x7e\xc3\xaf\x4a\xaf\x9f\x98\x4c\x93\x41\x6c\x46\x01\x8d\x38\x1e\x0b\xb8\xce\xc8\xf5\xfc\x67\x9e\x15\xb4\xa2\x6b\x6f\x87\xb7\x46\x23\xbc\x7c\x1d\x2e\xb3\x9e\x40\x85\x0a\xb6\xbe\x75\x1b\x9e\xa1\xe1\x1d\x9d\x82\xdc\xbe\xa0\x21\x04\xa0\x22\xc8\x67\x55\xbd\xf5\x55\x6f\x5d\xd5\x5b\x07\x7b\xcc\x5c\x02\x4d\x06\x62\x6e\x6f\x40\xa5\x9d\x1d\x0f\x97\x46\x7f\xb5\xb1\x4f\x79\xb6\xf2\xf7\xd4\x45\xb5\x24\xb4\x24\xf4\x0e\x17\x4f\x3e\x9c\x51\xa5\xc5\xb5\x90\x79\xf2\x27\x58\x60\xc9\x89\x90\x7c\x15\xe1\x1f\xd8\x09\xf5\xd6\x98\x2d\x62\xd6\x58\x13\x75\x55\xfe\x06\x5d\x86\xdb\xb1\x0f\x2b\x47\x33\x62\x8f\x86\x07\xab\xf7\x0b\x90\xe4\xbf\xd8\x22\x4b\x5a\xd1\x52\x91\x3c\x2b\xd9\x14\xfb\xe3\x2c\x51\x17\xd5\xd2\x16\x55\xaa\x3a\x87\x43\x2d\x47\x17\xb8\x7b\xa6\x3e\xe9\xfc\x67\x17\xab\x27\xde\x64\xc6\x53\xcc\xd1\x68\x47\x57\xd1\x8a\xc2\x75\x67\x67\x17\xb5\x6e\x83\x55\xef\x8a\x6e\x48\x7d\xc3\xae\x4f\xba\x1a\xfb\x03\x2f\x31\x98\x7a\x43\x0d\x70\x09\x1b\x66\xa2\x22\xef\xea\xb7\x36\x90\xb0\x75\x78\x22\x0a\x5c\xd3\x33\x61\xef\xb6\x11\x7f\x45\xf5\x64\xb5\xa5\x8a\xd0\x75\x88\x36\x71\xb4\x71\xd1\xdb\x1a\xe1\x61\x45\xd7\x84\x46\xef\xb4\xf0\xbd\x6b\x78\x4b\xb0\x4b\xd5\xdb\x03\xdc\xd4\x31\x1c\xae\x02\x80\x5e\x1a\xbd\xc8\x35\xd3\x93\xf3\xdd\x05\xbb\x39\xdf\xf9\x9b\xcb\x35\x83\x46\xed\x5c\x7b\xae\xd8\x46\x65\xd7\xd4\xb6\x69\xb0\x65\x6c\x3f\x77\x22\xc1\x7a\xa7\xec\xe8\x15\x60\x73\xd8\xff\x84\xe4\xd7\x7e\x19\x5e\x59\x02\x79\x6f\x5a\x28\x75\x4f\x15\x01\x28\x94\xf0\xe0\xd0\xcc\x81\x54\xc2\x2f\x52\x4f\xd9\x7a\xd6\xaa\xc0\xfd\xd1\x5a\x96\x34\x2c\xd8\x53\xfd\xce\x16\xde\x5b\x4c\x24\x72\xba\x65\x15\x7d\xc7\x6e\xfd\x86\xfd\xc0\xe0\xf1\xd1\xef\x9b\x21\x93\xce\xfc\xa9\xa6\x48\xa8\xb9\xdd\x20\x48\xc6\xf1\x76\xcf\x22\x32\x62\x3a\x64\xc4\x34\xc8\xc8\x9e\x67\xcf\x7c\xad\xef\xc8\xe5\x74\x9e\x7d\x60\xcf\xd0\xb4\xfc\x1d\xbb\xe6\xd9\xad\x67\x29\x7c\x2a\x4b\x9b\x6d\x12\x9f\x87\xdd\xd8\x44\xc0\x59\x3c\x73\xc6\xdf\xa7\x4c\xb0\xf6\x58\x11\xb2\x28\x83\x3d\x39\x34\xe5\x1d\xa1\x1f\xea\xb1\x15\x76\xfc\x4a\x78\x5f\x5a\x79\x27\x05\xbf\x64\xf6\xea\x70\x9e\xad\x9c\x3e\xd9\x7a\x62\xd4\xf1\x88\x5f\x17\x6b\x7c\xd5\x4c\xd3\xe8\x90\xfe\xbe\xed\x66\x63\xc7\x98\x48\xd3\x1b\xe7\x97\x6d\xf6\xe5\x34\x1a\xf2\x6d\x7d\x95\xb9\x00\x0f\x9a\xf3\xf1\xe3\x69\x1e\xc2\x2e\xbd\x23\xcd\xf9\xe3\x69\x3e\x1d\x6c\x3f\xa7\xa2\x4c\xf5\x3c\x18\x8d\xd8\x96\xda\x16\x40\x13\x00\x8a\x38\xd0\x8e\x2b\xbb\xcf\x79\x1f\xd3\x6c\x39\xa4\x1d\x9b\x3d\x9a\x52\x38\x66\x41\x78\x19\x43\xfb\x77\xb9\x27\x7b\xa5\x4c\xe8\x6d\x5f\x94\x3d\xfe\xdf\x11\x5a\x4c\xb6\xa2\x32\x4a\xdf\xc2\xa6\x7c\xcd\xcb\x57\xb0\x5a\x59\xb8\xb1\xdd\xb6\x79\x3b\x4e\xee\x80\xed\x9f\xdf\x58\x26\xfe\x2a\xe3\xd0\x87\x77\x98\xec\xaa\xe6\x55\x9a\x4d\x7f\x47\xbb\x1c\x48\x68\x5d\x3f\x73\xf2\x2e\x30\x21\x92\xae\xc8\xc9\xde\x43\xa8\x24\xf9\x3f\x6d\xe5\x00\xf2\xeb\x46\x35\x4d\xbf\x02\x77\x00\xce\xb5\xaf\xbd\x8b\x3c\xce\x2b\xd0\xb4\xc2\x96\xd8\x9e\xbd\x14\xeb\x75\xc9\x9f\xaa\x0f\xb2\xe6\x5b\xc1\x6e\xeb\x2b\x0f\x41\x26\x1f\x00\x01\xee\x61\xe2\x68\xa7\xd2\x3f\xe7\x1f\xe6\xef\xf1\xba\xd4\x42\xff\x70\xcc\x1b\x2f\x8b\x5b\x21\xaf\xbf\x2a\x0f\xfa\xd9\x0d\x97\xe0\xc9\xe8\x5e\xb8\xcb\x7b\xf2\xa0\xf2\xe5\x7d\xe5\xcd\xe8\xd7\x1a\xa0\x6c\xf1\x5a\x77\x6a\x3d\x32\xad\x22\x49\x82\x87\x33\x15\xf5\x7d\x9e\xd6\x77\xfb\xdf\xda\x57\xf8\xe1\xec\x04\xc6\x4c\x48\xc6\x37\xa5\x52\x3a\xb2\x17\xbe\x3e\x18\xc3\x75\x75\xdf\xe1\xe8\x7d\xdd\x06\x4c\x0c\x09\x73\x66\xbc\x45\x6b\xcd\x47\x5a\x06\xef\x53\x2e\xf4\xc4\x26\x53\x97\x5e\x6f\xe3\x78\x1c\x4a\x05\xda\x22\x5e\xae\xf1\x0b\x14\xac\xc6\x68\x9d\x3a\x2e\x22\xc9\x6a\x10\x21\x96\x6c\x7a\x5e\x5e\xd4\xa7\xa3\x6f\x7f\x78\x38\x2e\x3d\x30\x6d\x11\xe2\x22\xe8\xaa\x12\x64\xca\x87\x34\x3d\x3c\xdc\xe3\x4b\xef\x77\x7d\xc5\x5e\x46\xaf\x59\x6b\xd6\xa9\xd9\x16\xe9\xbd\x32\x0b\x78\x57\xe0\x74\x45\xd7\xd4\x10\x0a\xfd\x89\x67\x71\xad\x1b\xaf\xb9\x6e\x52\x13\x2c\xe9\xeb\x52\xac\xde\x27\x96\x6f\x85\xdd\xbb\xd5\x31\x5b\xb2\x69\x09\x2a\x00\xa4\x42\x5b\x52\x32\x74\x12\x8a\x34\x1d\x56\xba\x56\x1f\x04\x41\x00\x2c\x74\xaa\xd2\x34\xdb\xea\x68\xf3\x38\x7d\x0d\x14\x10\x00\xa3\xec\xf1\xce\xdf\xe8\x42\x56\x1b\xf0\x3c\x5a\x72\xa8\x04\x1c\x5a\x35\x2e\xb3\x04\x65\x3f\x32\xbc\xca\x3b\xc9\xc2\x73\x51\x72\x9b\xca\x6e\xeb\x28\x28\xb2\xc2\xf6\x59\x68\xc1\x9e\x68\x5d\xdc\x02\x24\x3c\x88\x84\xa3\x8b\x8a\x74\xd8\x89\x61\x9c\x8b\xb2\x54\x1f\xec\x5d\xc8\x96\xf6\xe6\x76\xcf\xab\xe3\x71\x3c\x1b\xb2\x2b\x95\x3d\x94\x88\x22\xde\x7f\xfd\xb4\xc0\x3f\x9c\xd5\x4d\x1c\xa8\x89\x92\xa5\x2a\xd6\x96\xf8\x99\x1e\x57\x9e\x6a\xa2\x79\x75\x28\xe1\xdc\x7e\xb4\x78\xfb\x71\x3a\x1d\xbf\xfd\x38\xfd\x8f\xb7\x1f\xa7\x7c\xfc\xf6\xe3\x6c\xb3\xbc\x7b\x7c\xf2\xc8\xe4\xa0\x84\xca\x92\x84\xd0\x62\x21\x97\x8c\xd3\xd1\xa8\x62\x7e\x01\x95\x0e\x08\x44\xb3\x17\x9e\x5e\x69\x42\x8d\xca\xb5\xf7\x52\xd0\x42\xd2\x2b\x10\xd3\xcd\xf4\x81\xe5\x11\x12\x58\x65\xc4\xbc\x3f\x0d\x5e\x78\xb8\xaa\x92\xd0\x7f\x36\x40\x19\x7f\xd2\x59\xe9\xa1\xdd\x15\x60\xa3\x3e\xa9\x9c\x04\xe7\x74\xa2\x07\x36\x3d\x3f\x5c\x88\xf3\xd1\xe8\x40\xca\x4c\x2e\x0e\x4b\x7a\xa8\xdd\x2f\x98\x9e\x6b\x2b\x68\x46\xb6\x9d\x13\x69\x72\x59\x0b\xe2\xfb\x72\xd9\x15\x08\xa8\x59\xf7\xd0\xcb\xb6\xb6\x65\x83\x54\x83\xdc\x52\x6c\xb2\xa2\xbd\x3e\xaf\xbd\x4b\x84\x37\x00\x02\x48\xee\x6f\xf3\x30\xbb\x99\x73\x77\x79\xcc\xb9\x97\xdc\x20\x7e\xe3\x0a\xdc\x7e\x56\x0d\x9f\x15\x76\xc2\xbf\x69\x8c\xa3\xe5\x19\x57\xb0\x8c\x71\xcc\x56\x35\xb1\x39\x90\x80\x16\x96\x24\x74\xb5\x38\x78\x28\x1d\xfc\xed\xdc\x90\xea\xe2\x1a\x1c\xc1\x76\x1c\x48\x14\x34\x29\x40\x88\x99\x78\x1f\x06\xb1\x36\x6f\x73\x3c\x1c\x59\xe7\xe4\xee\x14\x93\x94\x7d\xeb\x39\xcb\x56\xe6\x95\xbb\xb2\x4f\xe9\xff\xf4\x65\x8b\xb5\x86\xea\x50\x07\x88\x1f\xaa\xdd\x39\x4a\x76\xaf\xa6\x9c\x21\x17\x8f\x11\x98\x22\x0e\x66\x86\xea\xe3\xf1\xaf\x19\xa7\xa0\xeb\x6f\x4e\x71\x6d\x5d\x5e\x6b\xc8\x4c\xa3\x17\x3d\xfa\x9d\xa6\x5b\x42\x57\x4d\xd4\x80\xd2\xee\x5f\x81\x18\x5a\x5e\x07\x04\xa7\x91\x77\xa0\xf0\x4a\x9a\xe9\xb9\x61\x1d\xc5\xc1\xfc\x7e\x05\x3e\xdb\x4d\x02\x98\x43\xb5\x06\xf7\xfd\x5d\x42\x1d\xd0\x9e\xe8\xe8\x21\x05\xfa\xd3\xa8\x84\x19\xfa\x45\x13\x50\xa4\x47\xe9\xf3\x13\x43\x85\xe5\x7c\x6a\xac\x40\xc3\xd4\xb2\xb6\x70\x71\xd3\x6c\x4a\xaf\x70\xe6\x07\x6a\x7e\xa5\xd9\x78\xf2\xe5\x9f\x73\x6d\x7f\xcd\xbe\xcc\x0f\x18\xf2\xdf\xf2\x75\x9a\x66\xf6\xe7\xec\xd1\x9f\xf1\x64\xb9\xd5\x5d\x9d\x17\xc6\x51\xf9\xf8\x29\x2f\x4d\xf1\x37\x70\xf6\x5b\x7f\xff\x16\x5b\xc1\x83\xda\x87\x65\x91\x4c\x21\x4a\xfb\xab\xf8\x28\x00\xed\xe7\xdb\x57\x3f\x7d\xf7\xf7\x57\x3f\xbc\x79\xf2\xe2\xdd\x93\xbf\x7d\xf7\xda\xeb\x86\x40\xba\x48\x31\xa4\x2f\xeb\x2f\xcf\x7e\x7a\xf3\xdd\xd7\x2e\xe3\x5c\x87\x6c\x79\x53\x9d\xa4\x6e\x11\xa1\x77\x1f\x73\x43\x6f\x73\x7d\x8a\x20\x8e\xde\xe9\xda\xfa\x5e\xb2\x5b\x38\x7e\xed\xa9\xf6\x11\x0c\xc8\x6f\xe3\x07\x53\x94\x6e\x79\xd9\xdc\x21\x28\x89\xc2\x14\x5f\x96\x0d\xe5\xdf\x75\x88\xc5\x37\xb2\x10\x5d\x9b\xcc\x8a\x34\x3d\x80\x1c\x73\x8d\x2f\x95\x69\x7a\x93\xa6\x15\xe1\x79\x8d\xdf\x69\x26\xa6\xd0\xd7\xdc\xd0\x0d\x43\xc6\xe9\x7c\x3b\x64\xe5\xf9\x96\x6d\xe3\x77\x30\x9f\x7e\xcf\xa6\xe7\xfb\x8b\x8d\xa7\x64\x7b\x7c\x30\xde\x2c\xf6\x88\xfc\xca\xd8\x36\x26\x2a\xab\x83\xb6\x25\xfc\x6a\xc7\xe7\x0d\xd4\xc2\xb6\xc8\x3f\x9f\xf1\x13\x36\x0f\x3c\x5f\xae\x50\x2f\x7d\xc8\xae\x02\xa4\x87\x6d\x73\x9a\xee\x6a\x55\xe0\xa6\x9a\x74\xa4\x76\x3b\x52\x7f\xba\xd2\xb4\x39\x14\xe3\xe6\x50\xd8\xf3\xef\xe6\x53\x45\x81\x51\x89\x88\xcb\xc2\x6d\xd7\x18\x74\x30\x30\x71\x3e\xaa\xd6\xc4\xf1\xb4\x08\x05\x5b\x34\x94\xe6\xd1\xa4\x11\xc7\x3c\xf4\x0d\x56\xc0\x8e\x41\x83\xaf\x3b\x9a\xc7\x57\xec\x7a\x54\xf4\x3e\xa6\x0e\x76\x17\xd3\xf9\x75\xac\x2f\x7e\x3d\xda\x8d\xbf\x9c\x92\xfc\x2a\x16\xb2\x44\x16\xaf\x57\xa3\xdd\xe8\xcb\x29\xa1\x81\x64\x5e\x7b\xb4\x85\xab\x13\x39\x5d\xeb\x8b\xc7\xd3\xa0\xc5\xd4\x68\xf8\xbc\xd5\x8f\x78\x74\x68\xd1\xb0\x04\x88\xe6\xc0\xc7\x3c\xfd\x1b\x13\xe1\xf7\x6f\x4c\xdd\x77\xd9\x09\xfa\x19\x8d\xca\x3c\x0f\x15\xd7\x39\x6e\xa4\xa0\x26\xae\xb5\x11\xf7\x1b\xd5\x96\x02\x84\xca\xd3\xd4\x3c\x0a\x1f\xc7\x23\xaf\xa3\xfe\x96\xa6\x3c\x44\xfd\x6d\xd0\xec\x6f\xd1\x31\x76\x00\x80\x89\x2b\xcd\xb2\x2b\xfd\xa7\x6b\x3d\xd2\xe4\x51\x76\xad\x47\x33\x42\x47\xa3\x6b\x6d\xb9\x24\x70\xde\x45\xf2\x2c\x14\x39\x8a\x07\x61\xc4\x14\x89\x2f\xfb\x1f\x74\x0c\x64\x53\x01\xe6\x62\xc2\x98\xe5\x39\xd5\xe6\x0c\x18\x0f\xc3\x56\x72\x61\x96\xd1\xed\xa9\xed\x4c\x35\x86\x11\xf5\x2f\x63\x6d\x41\x30\x15\x6c\x38\x03\x46\xa8\xfd\xa8\x14\xee\x93\xd5\x61\xbf\xd7\xbc\xaa\x9e\xad\x85\xa9\x00\x3a\xa3\x79\xfa\xe3\x73\xe4\x70\x66\xc9\x95\x65\xc8\x86\xac\x50\x41\xa1\xb1\x9d\x4c\xd2\x7b\x8a\x9d\xd5\x4a\x7b\xaf\x70\x54\xe0\xee\xfa\xa3\xf8\xc8\xcb\xaa\x87\xe4\xdf\xea\x48\x69\xd1\x4c\x3e\xfe\x89\x5d\x69\x6a\x26\xb7\xf8\x1f\x41\xe6\x9e\x69\x60\xcc\x57\xaa\xa6\xb2\x1f\x7b\x1e\xcd\x63\xc7\xb8\x40\x0f\x61\xd4\xf7\x32\x0b\x57\xd3\xc4\x41\x96\x26\x83\x67\xe0\xc8\x2b\xfb\x72\x4a\xfb\xae\xe5\x58\x06\x8a\x77\x5a\x61\x0e\x62\xab\xd7\xdd\x2d\x48\x4a\x0c\x13\xa3\xe4\x2c\x19\x19\xa7\x2e\xdd\x7e\x04\x6d\x1b\x3e\x87\xd2\x5f\x16\xbd\x26\xd0\x1b\x64\x16\x1a\xc9\x16\x72\x69\xaf\x90\x88\x5d\x4e\xc2\x80\x07\xe5\x54\x7f\xe1\xe1\x1f\x8d\x2e\xbe\xe7\xb7\x55\x9a\xba\x62\x3a\x31\x14\xfd\x5f\xb5\xa2\xb1\x1e\x88\x43\x21\x8d\xf4\x73\x94\xec\x0e\xa5\x11\x09\x63\xaa\x3b\x36\x86\xd0\x30\xc2\x90\xe0\xef\xf6\xae\x9b\xbc\xe7\xce\xaa\x7a\x9d\x50\x1c\x84\x3a\xd9\xd0\x26\x73\x65\x0e\x99\x3a\x1e\xb3\xaf\x44\xa6\x09\x15\x76\x05\x12\x6a\xcf\x0c\x95\xa6\x8f\xde\xfe\x97\x2f\xdc\x3d\xca\x90\xb9\x4b\x32\x9c\x92\x7c\x38\x54\x11\xae\x9a\x8e\x71\x6f\x76\xb6\x47\xc3\x00\xe6\x3b\x1c\xa2\xf7\xa6\xfa\xd9\x68\xd8\x6c\xfd\x1c\x96\x54\xf2\xda\xc6\x8f\x93\x91\xa6\xf1\x85\xaf\xbe\x8e\x7f\xf0\x92\x7e\x3b\xd9\xc7\xe3\x47\xd4\x12\x6c\xa5\xed\xdd\xec\xf3\x47\xff\xb8\x56\x8b\x27\xe3\xbf\x2f\x43\x57\x72\x33\xd9\x29\x9b\x89\x34\x4a\xb7\x45\xe7\xfd\x25\x77\xd2\x21\x1b\xf6\xda\x71\x60\x35\x96\x5a\x8f\x28\xc0\x74\xdf\x1e\xbc\x5c\x00\x1d\xe4\x5e\xcc\x66\x69\xfa\xf8\xbf\x59\x66\xc8\x61\xcd\xc2\x1c\x63\x9d\x00\xbf\xdd\xb0\x16\x74\x69\x06\xa6\x45\x1b\x66\xff\x15\xf0\xb5\x6a\xc5\x06\x47\xb2\x5e\x39\x5d\x83\x55\x9a\x66\xb6\xc1\x73\x8d\x70\x07\xf2\x78\xfc\x8f\xff\x18\xda\x2c\x7f\x51\xc7\x23\x5e\xc5\xfc\x8b\x5e\x7d\x17\x3b\x1e\x7b\xee\x46\x4d\xe7\x7a\x84\xce\xb0\x9c\x47\x6f\xaf\x62\xa7\xc3\x5a\x55\xd5\xb6\x10\xfa\xad\x77\x13\x66\x1a\x57\x9e\xa7\xe2\x66\x12\xdc\x15\xdb\xbd\x70\xbf\x2d\x7a\xd7\x1d\x22\x8c\xb3\xad\x36\x1a\x33\x7f\x93\x3c\x1e\xb3\x17\x76\x7c\x93\xbe\xc6\x24\x2d\xa9\xed\x7b\x7e\x7b\xd8\x27\x76\x73\x74\x85\xb9\xea\x86\xeb\x04\x7c\x96\x3f\x7f\xa8\xbc\x6f\xfa\xcb\xeb\x8a\x5f\x7d\x79\xa7\xa6\x89\xfe\x4b\xec\xcc\x7f\x6d\x2e\x00\x84\x10\x76\x57\xfa\xfa\x90\x30\xa8\x43\x4e\x63\xeb\xe8\x1f\x7b\x56\xdd\x30\x6b\x49\x9c\x8e\xc7\xa0\x2e\x13\x66\x17\x76\xa3\x1f\xb4\x1b\x3b\x82\x6e\x01\x10\xbf\x9d\x43\x8b\x40\x0c\xe5\x01\x90\xe1\x8d\x0d\xd0\x38\x5f\x07\x66\xd2\xed\x05\x94\x27\xa0\x14\xd7\x36\x63\x65\xab\xfb\xb0\x15\xab\xad\x3d\x75\xdd\xcf\x8b\xd9\x94\x1c\x8f\x43\xb7\x32\x49\xd6\x26\xd6\xae\x48\x24\x0d\xff\x25\x19\xe9\x51\xf2\x5f\x92\xcf\xa1\x0c\x27\x02\x62\xb3\xfb\x91\x9d\x61\xf5\x13\x58\xd5\xcd\xb3\xa4\xc6\x98\x6e\x1a\x79\x3c\xd1\x0f\x0a\x9b\x3f\x21\x38\x26\xb4\x81\xf4\xdc\xe3\x0c\x27\xeb\xb8\xab\xcf\x40\x54\x99\xc0\x77\x42\x79\xad\xd6\xe1\x52\xb0\xe1\x94\x3e\x8f\xc1\x32\x1d\x37\xdb\x58\x9f\x2e\x6d\x12\x54\xdf\xed\x34\xdc\xeb\x03\x9e\xd5\xea\x34\x0d\xc0\xca\xa6\xe3\xe2\xaa\xf1\x2e\xd3\x3c\xc0\xfb\x72\xc0\x94\xd0\xc7\x53\x42\x7a\x4e\xee\xc8\x0f\x4f\x46\xfc\xc1\x13\x81\xe6\x3d\x3c\xec\xd0\xca\xb6\x03\x1c\x1c\xb7\xab\xf2\xa0\xfb\x87\x6d\x46\x5f\x7c\xf6\xb0\x11\xf4\x9f\xec\x5d\xe4\x44\xd9\xae\x4a\x21\xdf\x73\x7d\xef\xb3\x46\x77\x3e\x7b\x78\xbd\x13\xbe\x90\x45\x1d\x7e\xef\x4e\xd1\x2a\x7a\x00\xa0\xa6\x41\x16\x6b\xe9\xf4\x10\xa5\xf3\x5e\x38\x5d\x4f\x64\x42\xd2\xb4\x25\xb9\x8e\x22\xa9\xad\x19\xca\x01\x62\x00\xa9\x9c\x83\xe2\x1d\x64\x8e\x17\x89\xdf\x16\x51\x01\x99\xc3\xf7\xfa\x49\xb3\x57\x4e\xb3\xf5\x99\x5c\xb3\x5e\x2f\x1a\x36\xcf\x7c\xc3\x33\x5e\xe3\x58\x8c\x1a\x60\x09\xe3\x19\xbd\xb1\xd3\x11\x2b\x22\x8e\xb2\x19\xf8\x82\xad\x53\xcd\xb9\x87\x50\xcb\x2d\xff\xcf\x27\x46\x45\x97\xfe\xdf\x6b\x3d\x6e\x80\x80\x46\x2f\x7b\x91\x36\x35\x1f\xd4\x51\x46\xc5\xd8\xd0\x3f\xe9\xcc\xd4\x67\x2a\x34\xaf\x01\x56\x36\x06\x93\x42\x88\x18\x9b\xba\x0f\x64\x3c\x73\x94\xb0\xf6\x7a\xe4\x70\x9c\x7d\x72\x7b\xe7\x1b\x31\x28\x7f\xb2\xda\x82\x79\xe1\x64\xb5\x25\x1e\x6c\x2d\xc2\x78\xeb\xe8\xca\x2e\x96\x34\xf0\xa7\xbc\x6c\x81\x62\x37\xf0\x79\xea\xe8\x85\x5c\x0e\x74\xe3\x25\xfd\x77\x9d\x89\x80\x48\x4d\x28\x7c\x82\xb4\xd3\xde\xd1\x3d\xb7\xfa\xd4\xb6\x86\xb7\x94\x7c\x22\x18\x31\xdd\xa2\xc5\x75\x37\xed\xff\x79\xad\x35\xc3\xb1\x93\xab\xed\x48\xdb\x6e\xe6\xb5\xf6\x4c\xc6\xfd\xf0\xa1\xb2\x82\x4d\x19\x55\xf1\x9d\x6e\xc2\x06\xde\xad\x0a\xb9\xe2\x25\x82\x39\x81\x58\x1e\xc7\x9d\x1a\x95\xdb\x41\x8c\x1d\x07\x7b\x49\xbb\x99\xe0\x0f\x8a\x79\xbb\x5e\x18\x5c\x91\x6c\x38\x3d\x9d\x82\x8d\x16\x58\x42\x38\xec\x93\xfa\x44\xf1\x4a\x58\xc6\x1f\xbe\xb6\x72\xc0\x70\xa4\x60\xf7\xed\x83\x8d\xc2\x40\x4d\xe0\xa5\x33\x8b\xcc\xb6\x9c\x34\x7d\x3a\xc4\x3b\x0c\xc4\x60\x03\x99\xb0\x7b\xde\x51\x28\x70\xe8\x8b\x86\x1e\x09\xbc\xbe\xda\xa1\xd9\x81\x7d\x23\xc0\x13\xb4\x53\x80\x6b\x68\x42\x65\xe8\xce\xdc\x1e\x66\x39\xbe\x5d\xc8\x30\x48\x32\x0c\x92\x6c\x0c\x92\x74\x6d\x88\x4e\xb5\x17\xf1\x05\x19\xd0\x12\xee\xd0\x57\x9c\x07\x41\xf2\xdb\xe4\x7b\xf4\x1b\x46\x5f\x68\xe2\x72\x0c\x5c\x8e\xbe\x7b\xa8\xcb\x75\x02\xfe\x03\x49\x54\xa3\x2b\xc8\x7b\xec\xd2\xd4\xc6\x75\x7b\x4a\x50\x5a\xfb\x5d\x38\xd1\x83\xbe\xec\x33\x14\x62\xb5\xf9\x04\x8c\xf4\x76\x1a\x7c\x22\x0c\xd7\x5e\x0d\x23\xa8\x70\x65\x6d\xbf\x04\x13\xf0\x17\xb4\x7e\xbd\x2f\x64\xd5\xc1\xb6\x8e\xe2\xea\xa7\x04\x53\xb3\x43\x51\xfc\xc2\x2c\xf1\x53\x0f\x86\x3a\x1c\xe9\xc7\xa3\x4c\x53\xf7\x06\x26\xa9\xb6\x5d\x42\xa3\xb7\xda\x5c\x50\xe3\xbb\xcf\x50\xf6\x1a\x90\x08\xb6\xc0\x99\x35\xf0\x12\x75\x5a\x52\xc5\xa6\xe7\xea\x42\xd6\xed\xa9\x4d\x7b\x0b\x26\x17\x6a\x09\x0f\xbc\x08\x4b\x49\x28\xbe\xc2\x8a\x9e\x57\x57\xe1\x9e\x58\x87\x96\x24\x1e\xec\x6a\xa9\x3c\xc1\x04\x1f\x2b\xce\x79\x11\xd8\xaa\x5f\x4e\x89\x7f\x64\x5d\x94\x74\xb6\xa4\x6b\x16\xa7\x40\x33\xf7\x2d\xab\x0b\x32\x8a\x9c\x67\x6b\x5b\xd2\xb0\x98\x08\xb9\x2a\x0f\x95\xb8\xe1\x0e\xa2\x61\x6d\xcf\x25\xec\x3c\xf6\xed\x10\x56\x2d\x96\x75\x22\x34\xdb\x5e\xb6\x32\xff\x84\x46\x0e\xc3\x6d\x3b\x77\x05\x2b\x5d\xe5\xb6\xea\x13\xa1\x02\x9e\xe8\x56\xde\x3a\x54\xd0\x15\xa1\xe5\x88\xd5\x6e\x4b\x4f\xb5\x74\x24\x9c\x12\x78\x22\x80\xb2\x7c\xcf\x33\xe8\x78\x76\x2e\x2e\xd9\xf4\x7c\x3c\x16\xe4\xb9\x5d\x8f\x6e\xb3\x2d\xc4\xb2\xde\x6f\xf6\xc3\x6f\x39\x31\x5f\x24\xc9\xd2\xfb\x35\x77\xda\x41\xcf\xdd\x7d\xb1\xde\x78\xcf\xeb\x13\x6b\x36\x6c\xc2\x63\x1e\x8f\x49\xe2\x83\xc0\xeb\x0d\xaa\xa4\xc5\xad\xf5\xcb\xd0\x9d\x1c\x83\xdf\x85\x13\xc7\xd8\xcd\x34\x8f\x7c\x0e\x8a\x75\xfe\x43\xf1\x03\xa1\x5f\x79\x79\xcd\x4b\xe4\x1f\xbc\x18\x6b\xb1\x1c\xbc\x13\x4d\xfd\x13\xa0\xf5\xe1\xf5\x56\x52\xee\x55\x58\xec\x0a\xfe\xd9\x52\x26\xf7\x6d\xcf\x14\xe9\x01\xf1\x7c\x9a\x50\x15\xdc\x01\x7c\x6d\xa7\x86\x54\xee\x8f\x98\xe8\x00\xad\x39\x1e\x87\xf7\x92\x92\x86\x61\x6b\x5d\xb9\xc2\xc3\x8f\x16\x2c\x39\xc8\xb5\xb2\x17\xfd\xb9\x98\xac\x95\xe4\xb9\x98\xd8\x10\xc9\x69\xd5\x88\xc3\xc0\x1c\x13\xb9\xdd\x51\xd4\xee\xbc\x24\x2b\x16\xe5\x92\xea\xf9\x50\xba\x13\xf5\x78\x94\x13\x74\x69\x92\xa1\xdb\x9a\xdc\xc7\x90\xf3\x72\x34\x22\xe7\x68\xfc\xe4\xcb\xc0\x96\x0a\xd0\x87\x71\x6a\x3e\xa2\x47\xed\xe7\xdc\xd6\x84\x6e\xa8\x88\x2b\x0e\x4d\x9b\x9e\x8a\x4c\xd2\x0a\x0e\x98\x61\xab\x62\x12\xb9\x20\x3b\xfb\x15\x9c\x5c\xd0\x3b\x60\x4c\x7f\xe2\x6b\x05\xba\x6e\x03\xc5\xe4\x09\xb7\xf7\x62\x39\x78\x2a\x32\x65\xcb\x72\x80\x85\x77\xce\xfc\x28\x3f\xd0\x6b\x2e\x9d\xfb\xd6\x5c\x4c\xea\x0f\xd8\x3d\xf5\x27\x93\xd1\xc7\xf1\x38\x1a\x89\xc9\xae\xf8\xf8\x4d\x08\x72\x28\xc9\xff\x02\x69\x07\xf2\x56\x32\xe9\x2d\xa2\xea\x7d\x56\xe2\x3e\x2b\xbd\xe2\x6f\x48\xe2\xa8\xd5\xda\x1f\xa1\x86\xae\xd2\x74\x08\xa7\xc3\xda\xb2\xb2\xf1\xe8\x64\x7e\x36\xd8\x94\x0c\x0e\xd8\xfb\xf7\x76\x85\xaf\xdd\x9a\xdf\xb2\x72\x0e\xdb\x66\x4d\xf2\x1b\x95\x15\x64\xf0\x15\x16\xb4\xa5\x4f\x24\xa6\xa3\xc3\x12\x5d\xdd\x3a\x87\xb7\x2d\x1d\x42\xa4\x00\xeb\xb0\xfd\x7f\xd2\xd9\x9a\x9c\xbc\x4a\x6b\xdf\x8e\x42\x9f\x27\x6e\x47\x6d\x1e\xd8\x51\x6b\x42\x37\xf7\xec\xa8\x35\xee\x28\xdf\x46\xd8\x51\xd1\x9e\xfa\xb9\xa6\x27\x53\xff\xcc\x88\xa6\x7f\xcc\x20\x7b\xc7\x9c\x36\xee\xad\xca\x62\xb6\xb1\x79\x2c\x46\x2e\x64\x50\x97\x91\xc7\x2e\x49\x46\xb5\xa3\x4a\xcf\xc9\xf2\xda\x85\x09\xc4\x3a\x77\x25\x28\x8b\x6d\xb3\x95\x40\x9e\x08\xf8\x44\x77\x00\x6f\xde\x70\x13\xfe\x8f\x0d\x80\x14\x47\xf6\x93\xb5\x63\x5f\x80\x2b\x09\xa6\x88\xf2\xc2\xe3\xdc\x01\x37\x6c\x5c\x79\xd2\x5f\x76\x92\x98\xdc\x7c\xa5\x1b\xae\x07\x70\x62\x1f\x60\x71\xbe\xf2\x2c\x0e\x45\x25\xe2\xc0\xd0\x5f\xb8\x76\x12\x1c\xec\xe6\x25\xe6\xbe\x7b\x42\x64\xfb\x93\x45\xe1\x97\xb1\x9a\xae\x57\x8d\xa8\x91\xfe\x7c\x4d\x41\x87\xac\x55\x57\x18\xb1\xa8\xa6\x01\x34\x4b\x10\x6a\xbc\x5b\x1b\xee\xd3\xd1\x29\x68\xb3\x80\x26\xaa\x6b\xe4\x48\xd0\x70\x23\x81\x83\x6b\x71\xe3\x21\x90\xc9\xb2\xcd\x56\x9f\x02\xf6\x48\xdd\xe8\x41\x28\xea\x12\x70\xd7\x5c\xa5\x35\xaf\xbe\xe1\x99\x02\x98\x81\x16\x00\xb7\xaf\x2f\x9c\x70\xdd\xea\x08\x35\x4e\x07\x62\x0d\x2e\x15\x1b\x47\x35\x45\xd4\x05\x77\xf6\xe1\xa2\xea\xd8\x3a\xdd\xd4\x08\xe4\xb1\xbd\x34\xe8\xe0\x41\x51\x05\x5c\xd4\x68\xc5\x86\x33\x5a\x3a\xb3\xf4\xfb\xc1\xd9\x4b\xf6\x46\x64\x7f\xc8\x0c\xf1\xc4\xbd\x7b\x51\x2a\x91\xd3\x2c\x9d\xb9\x79\x1f\x93\xc9\x98\xf0\x90\x6f\x01\xf1\x9b\x81\xe9\xc3\x89\x10\x32\x90\x4d\x4d\x9d\xb8\x9f\x60\x70\xa4\x55\xc6\xc9\x60\x63\xab\xb5\x2b\xf2\x47\x10\xcb\xdf\xdb\xcc\xd0\x1e\xd5\x73\x93\xa5\x3d\x28\x9f\x4f\x01\x78\xe4\x32\x34\xf1\x85\x3f\x0d\x43\x08\xe3\xb4\x15\xcb\x4c\x1d\x12\x61\x28\x54\x28\xcf\x00\xf1\x90\x47\x3d\x69\x62\x65\x02\x80\xd2\x00\xee\x29\xd2\x08\xae\xeb\xe7\xd4\x3a\xcc\x0f\x2e\xea\x80\xfc\xfb\xd4\x21\x44\x1c\x5a\x5b\x20\xc3\x01\x1f\x2b\x7f\x19\x1f\x98\xc9\xe6\x50\x96\x73\x0e\x60\x0b\x18\x3c\x74\xda\x8e\xc7\x63\x97\xc5\xda\x06\x44\x7d\x02\x79\x5c\xbd\xf5\x44\x1e\x48\x6e\xa2\xf0\xc4\x39\x32\x8d\xcf\x3d\x0f\x40\x43\xe8\xba\x11\x82\x98\x39\xeb\xe3\x71\xe5\x4d\x4c\x70\x6b\x00\xab\x5a\x34\xae\xaf\x6e\x91\xe7\x61\xb9\x77\xb6\xc2\x60\xed\xdf\x71\x56\xe1\xa2\xb8\x25\xf6\x04\x0c\x83\x5c\x63\xdf\x80\x90\xa9\x1d\x18\x5d\x38\xb6\xe4\xf4\x90\xf4\x0f\xb4\x92\x91\x08\x1a\x2a\x49\xbe\x11\xee\xf1\x89\x7e\x03\x17\x5d\x5a\xa9\x98\xb0\x7e\xab\x63\x9b\x25\xcb\x40\xc3\xfd\x46\x13\xba\xe7\x70\xe5\xb9\x98\x06\xc5\xbe\x81\x64\x9a\x6a\xa6\x4e\x7d\xaf\xb0\xa0\x24\x12\x69\xd7\xd9\x5d\xfd\xa2\x66\xb6\x35\x30\xd9\x6e\xdc\xfc\x00\x89\x53\x24\x42\xf8\x45\x3f\x6c\x3d\xf5\x43\xd3\x4d\x02\x40\xff\x6b\x8f\x3e\x52\x79\xe0\x65\xaf\x3c\xe0\x87\x30\xbc\x7d\xcf\x3b\x21\x79\x9f\xd6\x39\x2d\xd9\x06\x54\xe9\x0e\xec\xee\x34\x10\x63\x7d\x59\x02\xbc\x95\x1e\x95\x7e\xe1\xc4\x7a\x03\xa3\x83\xc9\x40\x5d\x55\x5f\x14\x74\xcb\xc4\xe5\x6a\x0c\xa0\xf7\xfa\xa2\x22\x87\x48\x7b\x6a\x3d\x9f\xe6\x3a\x9c\x22\xe2\xb2\xf2\x17\xb9\x4d\x64\x0e\x42\xb3\xed\x7c\x95\x0b\x32\x2e\xc9\x60\x33\x64\x76\x0f\xc6\x65\x6c\x50\x60\xb7\x7f\xb8\xab\xe0\x49\xab\x1b\xd4\xed\x2c\x28\x28\xec\xd8\xd6\xf6\xd6\x1e\x46\x9e\x1c\x6d\xc4\x47\xbe\xfe\x06\x8e\xe0\xb9\x0a\xaa\xbd\x11\xea\x6f\x3e\x25\xf4\x86\xc9\xb1\xb9\xdc\x05\xb7\xba\xc0\x7b\x9b\xd1\x8e\x50\x73\x31\x9b\xce\x0f\xb1\x36\xd4\x34\x37\x17\xfb\x66\x50\xa4\x98\x61\xc6\xd9\xcd\x7c\x9a\xcf\xa6\x84\xe4\xf2\x72\x37\xda\x8f\xff\x1c\xf5\x1b\x61\xf6\x46\x3e\xc9\x78\x47\x68\x64\x55\xfc\x45\xb8\x84\x04\x85\x26\xa7\x68\x74\x3c\xfe\x6a\x89\x88\x43\x8e\x33\xd1\x46\x8b\xca\xad\x1d\x44\x76\xc7\xaf\xa5\x98\xd6\x4d\x43\x46\xc6\x17\xaf\x3b\xc5\xdb\xe9\xea\x2d\x1d\x17\x62\x43\x8d\x25\xef\xa4\x20\xa3\xd8\xe7\xcb\x3f\x41\x7a\x0e\xdd\x89\x3d\xfd\xa3\xba\x60\x46\xa8\x66\x86\x4a\x66\x1e\x72\x4a\x62\x26\xab\xed\xbc\x36\x6a\xb1\x9f\xe3\x19\xc9\x6d\xbe\x66\x28\x58\x8c\xb5\xdb\xf3\xa3\xaa\x58\x63\x13\x23\xd6\x5d\x5e\x57\x88\x8f\x22\xa8\xda\xf6\x12\x22\xa9\x47\xbe\xcb\x87\xd3\x88\xda\xfc\xaa\xbb\x48\xe9\x51\x35\x88\x95\x7e\xd7\xd7\x80\x60\x8a\xaf\x19\xfa\x66\x71\x52\x0b\xe9\x3f\x2d\x53\x21\x5a\x50\x88\xe8\x3f\x89\xca\x36\x14\x22\xf8\x4e\x02\x1f\x83\x7b\x32\x36\x0e\xbb\x2f\xb6\xb3\x02\xd5\x74\xea\xc0\xf9\x1b\x16\x58\x0e\x13\x51\x06\x4c\x44\xd3\x03\xfd\x17\xcc\x45\x61\x8f\x89\x68\x66\xa3\xb1\xf8\xa6\x07\x11\x04\x2d\x44\x63\x65\xb9\xa4\x58\xaf\x13\x42\x93\x6a\x57\x68\xe7\xae\x2e\x53\x93\x9d\x5a\x73\x80\xbd\x91\x66\x2e\x58\x85\xd8\x65\xb9\x66\xc9\x5e\xf3\x9b\xa4\xb6\x19\x68\x9b\xb6\x55\xec\x99\xbd\x54\x1a\x42\x4b\xb6\x55\x19\x8a\x3a\xf1\x52\x52\x90\x41\x85\x77\xf7\x27\x1b\xc3\x6d\x35\xf1\xa7\x53\xcf\xba\x71\x7e\xbb\x31\xe3\x64\x07\x9a\xb2\x8f\xfe\xf1\xb6\xfa\xd3\x23\xb2\x98\x22\x8c\xcc\xf1\xf8\xe8\xed\x6b\xf7\x48\x8c\xe9\x88\x7b\xcd\x8f\xba\x90\x1d\x58\xa3\x17\x99\xa0\xae\x4c\xb4\x7b\x5a\x05\x3e\xd3\x17\xc1\x58\xa1\x8e\xc7\xc3\x25\x3c\xb5\x80\xd0\xc1\x4b\xdc\x06\xbe\xdf\xa7\x93\x73\xbc\x3e\xa5\x9a\x25\x52\x99\x64\x80\x11\x8c\xe9\xf9\x81\x99\x4b\x85\x9c\xf4\x1c\x0d\xf8\x14\x35\xe3\x19\x69\x0c\x41\x3e\xcd\x61\xc0\x31\x43\x39\xaa\x47\x10\x9b\xf9\xb3\x14\x26\x4f\xaa\xc3\x95\xd1\x05\xd8\x13\x42\xb2\x71\x7f\x32\x09\x90\x55\xf5\x21\xa9\xc1\xdf\x78\x39\xd2\xf6\x70\x89\x28\xe0\xc1\xdb\x6d\x25\x09\xdd\x32\xe7\x5a\xb5\x59\xe0\xaf\xc2\x6c\xdf\x14\x57\xb5\x84\x73\x13\x1b\x99\x1c\x1e\x15\xe4\x7c\x73\x3e\x1e\x6f\xc8\x76\xc4\x0a\xba\x1e\xb1\xe4\x2d\xba\x39\xdc\x5e\x1c\xd2\x34\x5b\x8f\xd8\x4e\x65\x87\xf1\x96\x10\xba\x1e\xb2\x95\x67\x62\xbf\xd5\x99\xa2\x6b\x30\x6e\x73\x7e\xba\x0d\xad\x47\xbe\x76\xc8\xdc\x59\x09\x74\x38\x85\x3b\xde\x86\x4d\xcf\x37\x17\xaa\xe7\x81\x63\xe3\x1f\x38\xf6\x2c\x8e\x5e\x6c\xd0\xed\x67\xc3\x69\x66\x9a\xee\xfd\x9d\x33\xe8\x7c\x93\xbb\x5f\xec\xd5\x63\x43\xdd\x35\x76\xcb\x5a\xad\xdb\x12\xe2\x5d\x2c\x46\x80\x80\x1d\x95\x26\x63\x6f\x0b\x5e\xef\xa6\x3d\x23\x66\xae\x00\x4c\x83\x7e\xe7\x1e\x06\x72\x70\xe3\x13\xe0\xcf\x04\xca\xe6\x33\x99\x29\x2a\x88\x97\x27\xf8\x9b\xaa\x00\x8f\x46\x11\xa5\xfe\xbe\xf3\x06\x14\x5e\x62\xfd\x45\x5d\xb2\xc5\x92\x22\xca\x6b\x00\x11\x02\xb0\x57\x9f\x47\x31\x93\xe9\x85\x58\x92\xf3\xda\xee\x63\xcf\x33\x85\x77\x8a\x1b\x95\x49\xe2\x1e\xbf\xce\x03\x24\x1c\x0a\xa2\xdc\xeb\x58\x81\x29\x55\x78\x3d\xbb\xc3\x9f\x0c\x23\xfc\x98\x39\xa1\x9f\x22\xa7\xdf\xda\x36\x79\xb5\x14\x3d\x12\xa0\x9a\x4b\x36\x3d\x37\xe3\x31\xf9\x56\x3b\xa6\x3b\x49\xa8\x5c\x18\x27\x41\x85\x5f\x46\xd1\x64\xb4\xe6\x25\x37\x96\x7d\x86\x73\xeb\x14\x3f\x8b\xfe\xa5\x87\xc3\x73\x87\x0f\xe0\xa3\x6c\x69\xc5\x34\x45\x7c\x13\xaa\x1a\xae\x8e\xbc\x32\x30\xad\x58\x26\xe6\x87\x22\x5f\x15\xc4\x5e\xd9\xa8\xf6\xae\x9b\x70\xc6\x2a\xbc\x85\x03\x0f\xab\x46\x9a\xf8\x4b\xf8\xf1\x28\x2f\x19\x0f\x40\x4a\x95\xf8\x83\x1f\x8f\x99\x62\x92\x0e\x1d\xa0\x0a\x95\x84\x44\x0a\x84\x05\x13\xf3\x4c\x5f\x4c\xe7\xb2\xc8\xb5\xad\x8b\xe4\xf6\xab\x8c\x6f\x20\xf9\x14\x09\x4e\xc1\xaa\x41\xc0\xa4\xb1\x94\x6e\xb5\x2d\x34\x18\x9b\x1e\x62\xbf\x79\x2b\x55\x1e\x76\xd2\x85\x03\x64\x81\x8f\xf9\xa0\xf4\xda\x39\x1c\xbc\xd6\xea\xb0\x87\x34\x7e\x1a\x56\xb8\xe3\xd6\xac\x8e\xa3\x5b\x16\x89\xb6\xae\xb9\xf9\x96\x97\x7b\xae\x33\x43\xa1\x28\x70\x3b\x99\x10\xba\x61\xc3\xe9\xf9\xd0\xf6\x82\x1c\x8f\x87\x6c\xb8\x21\xe7\x1b\x7b\xc1\x73\xfb\xb2\x6c\xf8\x4a\x2a\xc8\xf1\x98\xbc\x95\x09\xdd\xb1\x37\x2a\xdb\xd3\x2d\x99\x27\x1f\x92\x7c\x9d\xa6\x36\x94\xb1\xfd\x3c\x91\x49\x3e\x5c\x5b\xf2\x5e\x39\xf2\xbe\x27\xb8\x41\x92\x3d\x10\x1b\x1b\xb9\x39\x1e\x77\xc7\x63\xb6\x63\x89\x6d\xc1\x2a\x4d\x57\x43\xb6\x23\x77\x9e\x5d\x9f\xd1\x43\x16\x36\xae\xd8\x64\xbb\x34\xcd\x56\x6c\x47\xa8\xbe\x9c\xa6\xe9\x10\x1a\xe9\xb0\x79\x6d\x23\x6f\xd8\xdf\x38\xba\xb6\x52\xb4\x20\xd4\xd0\x2a\x52\x47\x3b\x03\xe7\xc1\x37\xe4\x78\xcc\x6e\x26\x5b\x61\x5e\x7b\x77\x66\x37\x11\x92\xe5\x7d\x87\x2c\xac\xb8\xd2\x81\x15\x07\x8f\x8f\xde\x65\x58\xac\x23\xdc\xeb\x95\xcb\xc1\x67\xff\xeb\x98\xb9\x03\xe7\x73\x71\xa4\xff\x94\x55\x63\x58\x69\xb3\xc9\x97\xf9\xe4\x4b\xf2\xa7\xc6\x45\x07\x0d\x6f\x83\xdf\x4b\xbc\x8b\x5c\x4e\xe7\x01\xbd\xf7\xcf\x39\xc2\xe5\xfe\xb9\x76\xa9\x85\xd6\x50\xbf\x3b\xb7\x67\xce\xb1\x99\x77\xf8\x86\xa3\x8b\x77\x94\xe9\x5c\x5c\xb0\x69\x2e\x2e\x99\xf2\x28\xf0\x77\x65\x34\x94\x7e\x9e\x46\xec\xcb\x3f\x05\xc4\xab\xf2\xf4\x2a\x76\xbe\xbc\x52\xb2\x32\xfa\xb0\x32\x4a\xe7\xaf\x9c\xdb\x9d\x88\x98\xb4\xd0\x70\x9c\x2f\xf5\x3e\xbb\x1b\x5a\x71\xf3\x0a\x4e\xbd\x96\xab\xe9\x9b\xda\xef\xb7\x3b\x15\xa9\x64\x7a\xc1\x97\x03\xfb\x07\xce\x8f\xc4\xb2\x12\xc9\x90\xd9\x4d\x0d\x81\x86\xfe\x5d\x4f\xb6\x45\xf5\xea\x83\xfc\x51\xab\x3d\xd7\xe6\x16\xcc\xc7\x9c\xf7\x78\xfa\x77\x9b\x0a\xbd\xc7\xc3\xe5\x98\x9c\xe8\x75\x4f\xf5\x4d\x47\xcf\xae\xf6\x05\x5f\x42\xea\xa7\x6a\x75\x9f\x4b\xe8\xb5\x5a\x9d\x68\xb1\x5e\x7f\x0f\x3a\xa0\x6d\xd7\xd9\x00\x28\xda\xd0\x45\x35\xf3\xc4\x92\xe3\x24\x4f\x0e\x12\xf4\x4a\x92\x65\x76\x23\x41\x8b\xc6\x89\x17\x3a\x25\xc5\x74\xba\x5b\x62\xdb\xab\xcd\x68\xa4\xc1\x05\xeb\x42\x2f\x99\x1d\x25\x70\x25\x24\x8b\x1d\x67\x8c\x47\x46\x65\xf0\xf2\x96\x69\x3a\x23\x74\x38\x85\x1e\xbc\xba\xe1\xba\x2c\x6e\xf3\xbf\xc4\x8a\x31\xd1\xb4\xf0\x89\x51\xef\xb9\x9c\xf3\xfc\x95\x25\x44\x2f\xd5\xda\x79\xd1\xf6\x53\x85\xaa\x63\x1a\x1d\x0f\xbc\xb6\x6d\x24\x66\xab\xd5\x07\x90\x4f\x3f\xd3\x5a\xe9\x2c\x71\x95\x54\x67\xbb\xe2\xf6\x4c\x2a\x73\x76\xc5\xcf\xa0\x3b\x9b\x43\x39\x49\xc8\x20\xea\x9f\x72\x49\xdd\x9b\x88\x9d\xf7\x5c\x53\xfb\xef\xf5\x9e\xaf\x72\x4e\xd5\xbe\xf8\xe7\x81\xe7\x06\x3d\xa5\xd8\xdf\x27\x8f\xe1\x0a\x05\xd8\xa4\xdf\x70\x39\x1a\x51\x4b\x30\x01\xf9\x96\x10\x37\xc8\xfd\x9d\xbd\x67\xa4\x7d\x4b\xfa\x86\xda\xfb\x3b\xb7\xa3\xec\xdb\x06\x87\x14\x0c\x7e\x47\x7c\xc2\xd3\x54\x3e\x3c\x1b\xbd\x1d\x80\x97\xa4\xd0\x0b\xdb\x0d\xe4\x16\xc1\x67\x56\x7b\xc2\xec\x2d\xd9\x57\x3c\x8c\xe4\x36\x9e\x29\x1a\x36\x65\x39\xee\x42\x3d\x8f\xe7\x72\x02\x1c\xfc\x77\x78\xed\x70\xec\x7c\x8e\x1c\x76\x6e\xe6\xc0\x38\x47\xcc\x31\xa1\xcf\x79\x50\x7c\x04\xbb\xd9\x6f\xb4\x53\x77\x84\xd6\xd4\xed\x0d\xba\xa8\x9f\x1a\xf8\x16\x33\xa5\x19\x28\xf0\x3c\x0c\xe4\xb7\xc9\x44\x70\x6f\x2f\x6a\xb6\xf3\xd2\x72\xe3\xbe\x41\x51\xb8\xb3\xd3\xd5\x2c\x0e\x93\xac\x59\x7f\x78\x0d\x49\xd3\x7f\xba\xe1\x77\x16\x9d\xc8\xd4\x08\x0f\xfe\x50\x30\x81\x10\x0f\x55\xe4\x08\xc6\x8b\x47\x07\x91\xf0\x14\x11\x8d\x6b\xcc\x0f\x27\x1a\xcd\x0a\x7b\x73\x9f\xe6\x33\x42\x46\xb3\xc8\x34\xbb\x3a\x2f\x2f\x34\x68\x03\xf8\x2e\x94\x94\x07\x29\x6b\x77\xa8\x06\x53\x06\x58\x9e\x00\x32\x18\x60\xe2\x3c\x7f\x79\x58\xc8\xa5\x6b\xf1\x64\xb5\xb5\x07\xf1\x2f\xd1\xcc\x49\xcf\x82\x2b\x0a\x09\xc1\x31\x3f\x4a\x11\xed\x14\x5e\x73\xf3\xc6\x52\x80\x27\x26\xef\xd3\x6e\x3b\xfb\x9b\x0c\x93\x8e\x44\xd6\xf6\x10\x72\x54\x0f\x67\xd8\xf0\x8c\x13\xa7\x0c\x1a\x6a\x79\x73\xbb\xe7\x8d\x9a\xc8\x1d\x07\x7b\xdf\x7a\x9d\xa1\x90\x84\x6a\x66\x04\x16\xf4\x4c\x44\xd1\xde\xd5\xaf\x64\x53\x2a\x58\xa6\x6b\x00\xca\x47\x8f\x81\x37\x40\x7f\xb2\x76\xbc\x88\x61\x7a\xf1\x78\x89\x6c\x5a\x7c\xb6\x16\x4c\x8e\xc4\xe5\x25\xf8\x2e\xcd\x8a\xb9\x5e\x3c\xfe\x53\x31\x9e\x2d\xf3\x29\xb9\x64\x8a\x08\x56\x04\xeb\xde\x61\x06\x91\xa3\xd9\xf2\x42\x11\x72\x07\x05\xfe\xa9\x18\x3d\x5e\xba\x93\x55\xb2\x62\x34\xc3\x87\x99\xca\x6e\x36\x84\xb2\x7d\xb5\x01\x48\x42\x47\x60\xce\x12\x92\x8f\x67\x9e\xe7\xa9\x2e\xa6\x73\x93\x4f\x19\xab\x90\xf5\x32\x01\x54\xa5\x1a\xcf\x70\xa0\x2c\x0d\x6e\x8d\x51\x6b\x0f\x59\x12\x52\xdb\x8b\x00\xf7\x62\x33\xcd\x5f\xd5\xbf\x33\x87\xac\x5d\x4f\x6f\xc6\x09\x52\x20\x02\xf9\x73\x03\x95\x21\xe7\xd9\x3f\x93\xbe\x00\x4c\x83\xbe\x8b\x17\xd3\x65\x94\xaf\xbd\x04\xbc\xe6\x1c\xb0\x2c\x95\x6c\x9f\xe0\xc1\x08\xe5\x4c\x3b\xdd\x87\xca\x5e\x3c\xa8\x60\xbe\x2a\xec\xbb\xd3\x57\xee\xd0\x59\xb1\x30\x4b\x22\x17\xf6\xdf\x32\x4d\xbd\xa2\x1d\x7e\xd7\xec\x38\xa4\xaa\xef\x63\xd3\x73\x75\x61\x83\x3c\x85\x51\x9e\xc2\x14\x0c\xb3\x2e\xd4\x72\x39\x28\x42\x79\x85\x47\x5d\x9e\x6c\xa1\x8f\x88\x80\x29\x17\xf1\xf7\x72\x5e\x57\x1e\x07\x93\xdc\x06\xd8\x93\xa0\xd1\x3e\x0c\x41\x06\xcf\xeb\x0f\xbd\xbb\x2e\xd5\x55\x51\x76\x5a\x55\xb1\x10\xb7\x50\xcb\x41\x35\xd9\x6b\xbe\xce\x04\xcc\x26\x49\x53\x87\xdb\xab\x69\x35\xb9\x29\x4a\x12\x6a\xc1\xcf\x1a\xd5\xd4\xce\xd1\xeb\x70\xe9\xbf\x9f\x23\x5b\xab\x55\x58\x9a\x8e\xb7\xca\x38\xfb\x0e\xd4\x23\x51\xfe\x39\xd7\xee\xda\xa5\x9d\x43\xdf\x9c\x5b\x6a\x06\xe4\x00\x05\x87\x5f\x2b\xa5\xd7\xfd\x4b\xa1\x43\x76\x01\xd2\xcc\xd7\xf8\xb5\xab\xb1\xae\xc9\xd2\xec\x3c\x51\x57\xbf\x23\xdc\x93\x3f\x5f\xe7\x4d\x12\x91\x43\xa3\x80\xe0\xe5\x1a\x09\xb4\x39\x1e\xf1\x16\x60\x5b\x05\x6a\xe6\x3d\x6d\x72\xd5\x3e\x71\xd5\x36\x0b\x6d\x16\x01\xd9\xed\x45\xac\xbf\x88\xdf\xeb\xb1\xfa\xd1\x04\x02\x19\x0a\x40\x6c\x4d\xca\x41\x42\x79\x02\x84\xdb\x27\xde\x51\x67\x6f\x79\x75\x31\xe8\xdb\x8d\x82\xab\x8b\xe9\x29\x2a\x13\x64\x9e\x2f\x63\x5a\x38\x6a\x70\xe3\x91\x4b\xe7\x13\xc5\xdb\xc0\x13\x64\x25\x7a\x26\x06\x9c\x7a\xc3\x1e\x6b\xcb\x54\x78\x38\x7e\xfd\xd4\xe1\xec\xd7\x33\x89\x7e\x9f\xf9\x45\x33\xc1\x9c\xb7\x72\xe4\xfc\x12\x6c\xc7\x98\x40\x7f\xe4\x54\xb3\x06\x25\x77\xdb\x4c\xb3\x40\xca\x5e\xba\x21\xd0\x38\x08\xd3\x7b\x06\x61\x94\xc9\x79\xa8\x0a\x3b\x3a\xfe\x51\x64\x9a\xe4\xf6\xa4\x59\xf3\x4d\x71\x28\x4d\x8d\xa4\xdb\xc3\xe3\xff\x60\xb2\x78\xe8\xea\x5c\x01\x91\xb7\x27\xd3\x77\x9d\x4c\x15\x37\xf8\xce\x82\x8e\x3e\x7a\x59\x36\x97\xf9\x37\x1d\xf5\x3c\x68\x48\x74\x5f\x83\x25\xe3\xee\xc9\xc6\x39\x0f\x81\xd7\xc4\x46\x08\xbb\x3b\xd5\xde\xd0\x17\x66\xc9\x34\x1d\xea\x34\x7d\xa9\x32\x89\xa6\x8e\xcd\xd4\x0e\x53\x7c\x7a\x42\x75\x10\x50\x58\xc2\x56\x77\xb8\xb5\x9b\x16\xbc\xab\x65\x1e\x98\xdb\xfd\x03\x8d\xcf\xda\x75\x06\xdb\xb9\x66\x5d\x96\x18\x35\x02\x16\x96\x0c\x66\xdd\x40\x87\x65\xac\x33\x13\xab\x8b\xd0\x97\xaa\x9d\x96\x74\xb3\x3b\xe8\x76\x3a\x1a\x49\xd7\x25\xbb\xbb\xbe\x93\x1b\x95\xb7\x9e\xfd\xfb\x96\xb6\x3d\x97\x9a\x6c\x6d\x07\x2b\xd8\x30\x8e\x7a\x99\xbc\xb5\x5e\x1b\x49\x4f\x9e\x45\x40\xda\x95\x19\xf6\x06\x80\x62\x1b\x69\xbc\x2f\x78\xbb\x09\x0d\x45\x7b\xbf\x9c\xe3\x23\x2a\x6a\xd6\xd3\x46\xdf\xf2\xd6\xe4\x41\xca\xaf\xcb\xa2\xaa\x5c\x72\xf8\x4d\xaf\xae\x7d\x98\xfb\x45\x3f\xe8\x62\xef\xc3\xc2\x6f\xfa\x41\xac\xaf\xb9\x81\x30\xfc\x75\x82\x63\xe1\x17\xc1\x3f\xec\x95\xee\xd9\x18\x4e\x7b\xa4\x4d\x55\x9e\x7b\xc5\xef\x76\xc4\x1b\x75\x82\x4b\xe6\xaf\x50\xfc\xfd\x28\x9a\xb4\xa0\x80\x95\x49\x57\x74\xcd\xe2\x52\xe8\x96\x65\x9c\x7d\xdd\x4b\x8f\x09\xf1\x8f\x35\x1b\xc6\x83\xa8\xc7\x38\x67\x82\xde\xff\x10\x4b\xbc\xff\x21\xf0\x19\xfa\x30\x3a\x35\x45\x10\xe9\x5e\x31\x46\xc5\xcd\xcf\x92\xaf\x85\x29\xae\x4a\x0e\x0e\xd3\x9d\x67\xa6\xd8\x7d\x90\x21\x34\x01\xc3\x31\xc6\x24\xd9\xc2\xe5\x79\x5f\x8b\x01\x8b\x2b\x75\xc3\x9d\x1c\x50\x72\x27\x42\x74\xc2\xba\x70\x7d\x58\xf7\x4b\xa2\x5a\x04\xad\xc6\x19\x84\x2c\xd8\x92\x06\x16\x42\x84\x54\x12\x9b\xeb\x9f\x37\x9a\xc1\xbd\x94\xa9\xe9\x93\xfb\x72\x0f\xc2\x70\xa3\xf6\x97\xcd\x88\xb9\xeb\xd3\xb8\x19\x9c\xdf\x53\xce\x05\xdb\xa7\x69\x66\xf3\xb8\xd7\x34\xba\x09\x29\x10\xc0\x61\x97\xa6\xd9\x86\xed\xc6\x8d\x50\x72\xf2\xb3\x68\xd4\x9e\xd5\xae\x61\x21\xa8\x04\x00\x0e\xf7\x01\xef\x77\x2c\x49\x68\x02\xbf\x12\xc6\xc4\x3c\xdb\xb0\x9e\x01\x69\xd6\x40\x5b\x05\x4c\xf7\x1f\x13\x92\x67\x89\x2d\x1c\x0a\xd9\xb0\x69\x9e\xec\x00\x30\x2d\x41\xfb\x80\x0d\xeb\x1b\xe7\x56\xc3\x1f\x3d\x26\xcd\x86\x6e\xa0\xf1\x68\x90\xa0\x90\x74\x16\x6c\x43\x2b\xb6\xa5\x25\x6b\x0d\x06\x3d\xb0\x6d\x6b\x00\xdd\x03\x74\xb6\x62\xbf\xe8\x2c\x6c\x13\x42\x62\xb7\x6b\x3b\x1b\xb3\x6a\x7b\xe7\x1b\xb2\x8e\x73\xcc\x3a\x15\x7a\xc7\x3b\x51\xa3\xc5\xf5\x35\xd7\xaf\xe4\xf7\xfc\xf6\xa9\xfa\x00\xf7\xf3\x37\x9a\x34\xc2\xc1\xcc\xce\x46\xfc\xd8\x8a\xf8\x79\x9f\xbf\xd4\x94\x7f\xe4\xab\xaf\xd5\x6e\x57\xc8\x75\x9b\xbe\xae\x3a\xfc\x7d\x4d\x4d\x57\x72\xc1\x63\x2f\xd1\x28\xe2\xf0\xe5\x3f\x2b\xf9\xca\x68\xb1\xea\x9c\x40\xcf\x78\x30\xa8\x24\x84\x6e\x84\x5c\xff\xa8\xaa\x6f\x3b\x84\xc5\xb3\x28\xb3\x81\x01\xb9\xb4\x60\xe3\x19\x35\x6c\x1c\x69\x2e\x2a\x36\xa5\x45\xeb\x66\x79\xae\x2e\x00\x6e\xa0\x60\x7f\x89\x8e\xe3\x82\x0a\x28\x93\x78\xc1\x29\xe8\xf4\x9f\x07\xd7\x72\x74\xa7\x6e\xf8\xb7\xf7\x0a\xd0\xc0\xc6\x53\x3b\x04\xda\x1a\x1f\xe9\xab\xdb\x28\xb9\x0c\x7c\x80\x6e\x63\xd7\x6a\xd8\xf4\x98\x1b\x74\x9d\x51\xd4\x31\xff\x8b\xce\x34\x9e\xc0\x68\x2e\x04\x3d\xaf\x4d\x16\x4d\xf9\x52\xdd\xf0\x5f\x44\x75\x28\xca\xf2\x96\xe4\xfc\x62\x3a\x97\x9e\x25\x96\xc0\x12\x9f\x08\x3d\x28\x18\x47\x7c\xd2\x79\xb8\x0b\x01\xc1\x5b\x46\xf7\x82\x49\xa5\x76\xdc\x6c\x85\xbc\xc6\x8e\xf1\x75\x46\xe6\xf2\x01\x13\xe4\xf0\x7a\x94\x7f\xef\xe4\x1a\x0d\x7e\x01\x67\xed\x2f\x3a\x93\x54\xd7\xdd\x1a\xce\x02\x3f\x63\xbb\x81\x87\x90\x00\x7b\x0b\x48\x74\x72\xc6\x35\x2e\x8b\x51\xb9\x38\xb9\xa3\xdf\xad\x90\x5f\xee\x5f\x21\x54\x31\x79\xff\x2a\x29\xd8\x94\x56\xed\x55\x52\x5c\x98\xf3\xd1\xa8\xf0\x72\x78\x7f\x3a\x55\x14\xbc\xe0\x45\x8f\x55\x6a\xae\x58\x09\x74\x20\xc7\x7f\x4c\xd1\xac\x62\x7f\x0d\x22\x1d\x41\x75\xbd\xac\x9a\x2e\x0b\x2b\x5c\x57\xbf\x3c\x38\x29\xd1\x64\x78\x87\x52\xc3\xd6\x0a\x42\x3d\x75\x58\x3e\x69\x8a\x8a\x8c\x3d\x93\x06\x6d\x7e\x78\x8d\x16\x08\x98\x43\xa2\x99\x28\xfc\x82\x2a\x60\x41\x39\x45\xad\xaf\x4d\xa6\x69\xe1\x21\xbb\x60\x44\x3c\xb4\xc9\xb5\x2a\xca\xaf\xe1\x95\x0c\xd4\x0f\x60\x48\xe2\x50\xe2\xfd\x5a\x39\x67\x95\x08\x20\x6f\x07\x4c\x53\x94\x30\xf9\x97\x5e\xf7\xa0\x63\xd2\xb4\x60\x4c\x36\x6f\x8f\x69\xfa\x85\x76\xd7\x53\xfa\xc4\x36\xa6\x74\xed\x80\x93\x0b\x1d\x64\xd2\x12\x97\x3f\xf5\xa6\x37\x91\x91\xce\xf4\xbc\xb8\x90\x3d\x4f\xde\xc5\x68\x44\xe2\xf0\x45\xb1\x8c\xda\xce\xc4\xa2\x58\xfa\x35\x87\xc0\xb3\x3d\x22\x9a\x1e\x59\x95\x53\x32\x04\xd1\x94\x37\x57\x44\x3d\x99\xe8\x9e\x55\xbf\x01\xf2\xc6\x1b\xe0\x79\xc6\x1d\x60\xfd\xf1\x28\xc1\xe0\x0f\x7b\x93\xa6\x7a\x3e\x1e\xeb\x7c\x34\x92\x11\xc9\x0b\x8f\x81\x9a\xd0\x82\xbd\x51\xf0\xec\x3d\xef\x79\x0e\x79\xa3\x40\x4b\xf9\x94\xd7\x6f\x81\xaa\x2f\x61\x1d\xcd\xc9\xa9\xe7\x5d\x65\x18\x27\x48\xd3\xa1\x2d\x97\x9c\xce\xe1\x31\xb0\xc8\xea\xe6\x8c\x67\x84\x9c\x93\xf1\xd8\x39\x74\xab\xe5\xbd\x8d\x64\xd2\x26\xb2\x7c\x7d\x8f\x06\x3c\x9a\x91\x39\x75\x77\x14\xea\xc2\x09\xa7\xae\xaf\x4b\x90\xfb\x7f\xd0\xc2\xf0\x46\x13\x9d\x76\x5d\x9a\x72\xd6\x96\xfb\x43\xe2\xe3\x31\xcb\xfa\xc2\xd9\xb0\x2f\x94\xcc\x9f\xab\xc6\x05\xd0\x69\x4d\x3d\x15\x37\x0d\xab\xe5\x90\x21\x21\xf9\x8b\xff\x6c\x0e\xfa\x57\x27\xf3\x4c\x42\xe0\x1b\xe8\x61\x42\xf1\xa9\xab\xaf\x61\xf6\xba\xef\x1c\x50\xdf\xfb\x9e\xd5\x60\x75\xaf\xb9\x79\x2e\x78\xb9\xce\x08\xba\xb7\x3e\xd1\x1a\x2e\xa7\x5b\xc2\x30\x1b\x36\x1e\x11\x6a\x73\xf9\x61\x38\x38\x56\x85\x34\xcf\xd6\xc2\xd8\x4b\xb1\xe3\x53\x7a\x08\x9b\x13\xf3\x78\x25\x3f\x03\x4a\x7e\xc0\x19\xd0\x30\x57\x91\xb7\xc4\x58\xd5\xaf\xa1\x0a\xd8\x49\x82\xf8\x76\x4e\x9a\xfd\xda\x59\x8a\xc4\x17\x42\x0f\xb4\xd4\x18\x0c\xaf\x4f\x39\xf0\xd7\x34\x54\x14\x8c\x34\xbf\xda\x6e\xf6\xb7\x9e\x1b\x6e\x40\x6f\xad\x9d\x07\xc6\x71\xa3\xf4\xe0\xbb\x94\xa2\x87\xd2\x86\x5b\xf9\xfb\xf3\x20\xa7\x18\x5f\x0d\xf2\x8d\x4b\x4b\x23\xbe\x34\xdf\x06\xb7\x8f\xb4\x69\x1a\xd3\x33\xee\xe1\xc0\xe2\xf3\x8c\xb3\xf8\x92\xd7\x16\xcc\x85\x13\x16\xae\xaf\x34\xf6\x2e\xd8\x58\x03\x5d\x85\x41\x42\xba\x0a\x53\x7c\xce\x23\x2b\x08\x67\xff\x00\x25\xe7\x5e\xb7\x72\x03\x4e\xf6\x42\xab\x78\x48\x41\x40\x78\x06\xd2\x0f\xa3\x5c\x42\x74\x98\xaf\xc1\xfc\xe8\x78\x9c\xfa\x45\x13\x99\x5f\x84\xf5\xd4\xb3\x44\x7e\x54\x15\xe3\xf5\x2b\x8f\xb6\x2c\x37\x6c\xaa\x48\x59\x00\x4b\xf2\xa2\xbb\xb6\xda\xa1\x8b\x37\x6a\x8f\xd1\xa0\x7e\xc8\x3b\xea\x87\x2e\x99\x76\x0e\xba\x8d\xea\xa8\x21\xba\x14\xee\x7a\x0b\x49\xbc\x3a\x22\x0f\xea\x88\xb8\xd7\xbd\x46\x62\x43\xeb\x57\x37\x34\x12\x09\xc0\x1f\xbc\x16\x7f\x74\x1f\x0d\x1b\x4c\x6a\x50\xaa\x88\x08\x78\x77\xce\x8e\xc7\x47\xff\x78\xbb\x1e\x79\xac\x21\x44\xef\xb0\x9c\xfd\x9c\xc3\x5d\x27\xe7\xa7\x7a\xb3\xea\x8e\x7a\x05\xde\x8d\x60\xc9\x33\x78\x00\x8f\xf6\xed\x7d\xa9\x71\x5b\x31\x00\xa9\x8a\x98\xdc\x58\x0d\x36\x4d\x3f\x7a\xdf\xa8\x78\x6a\xea\x8e\x84\x62\x80\xac\x34\x48\xa9\x04\xd5\x2d\x41\x45\x8f\xe5\xb1\x13\x8a\x74\xac\x8e\x5d\xb8\x67\x0b\x0c\x42\xfe\x85\xf0\x85\x59\x4e\xa4\xfa\x16\x17\x3f\xb9\x33\x96\x17\x11\x34\xc1\xd8\xc4\xeb\xc6\x8c\x46\x02\xde\xa5\x03\xde\x90\x5e\xf1\x9f\xd1\xca\x7d\x38\xb5\x64\x5e\xd3\x44\xf3\x8d\xe6\xd5\x36\xa1\xe1\x19\xdb\xde\xa3\x8a\xfb\x74\x18\x7e\x33\xe1\x72\x44\x5d\xd6\xe6\x84\xf7\x52\xb9\xb6\x63\xb1\x01\xef\xd9\x23\xad\xe6\xbd\x32\x71\x92\xb0\x06\x6b\x9a\x11\x91\xc8\x66\x18\xdc\x4f\x7f\x77\xb9\x3d\xd5\x39\x1e\x6b\x5c\xd0\x71\x5b\xf6\x4a\x2e\x27\x5f\x92\x34\x7d\xe2\xf2\x84\x03\xb0\x3b\x38\xd5\x87\x62\xff\x54\x75\x2f\x8d\xcd\xc7\xb1\xfa\x5d\x6c\xb5\x43\x39\xe3\x07\xe1\xc7\xad\xd5\xb1\x7e\x64\x95\x66\x9f\x1b\xe7\x41\xec\x6d\xbf\x33\x7c\xb8\x20\xec\xf0\xfd\xdd\xf7\xc1\xb5\xd8\x1f\xde\x84\x1a\x77\x46\x7d\x67\x6b\x84\x33\xf8\x3f\x7b\x62\x83\x04\xef\x57\xdc\x3e\x4e\x31\xe9\x53\x45\xb8\xcd\x76\xaa\x0f\xc7\xcf\xce\xea\x8f\x48\xc8\x8b\x52\xe3\xcf\xcc\xe9\xec\x0e\x4e\x27\x2a\x54\xf6\x0a\x77\xed\xdf\x34\x7b\x35\x71\x92\xf6\x8a\xdd\x9d\xe8\xdf\x6d\x00\x6e\x77\x44\x47\x03\xe9\x76\x4d\xa8\x78\x74\x9f\xab\x73\xa2\x7e\x90\x4e\xd3\x0c\xb4\x80\x58\xcb\xc9\x96\x24\x77\x72\xc8\x8c\x4c\x53\x67\x04\x4d\x4e\xb9\x46\xd3\x0b\x23\xd9\xab\xc9\x77\x52\x18\x76\x67\x14\x52\xb6\x6e\x3f\x22\xd6\x0c\xd2\x26\xa7\xd3\x80\xcb\x2c\xb9\x29\xca\x03\x4f\x68\x92\xb4\xcd\x4a\xc1\xf9\x1e\x40\x83\x81\xbf\x05\xd0\x3f\xb0\x19\x40\xa7\x09\xaf\x29\x9d\x1c\xfe\x15\x17\x35\x96\x98\xa1\x6f\x40\xd9\x32\xe4\xad\xf5\x90\x13\xfa\x98\xbe\x69\x85\x7b\x75\x62\x00\x91\x81\xf0\x48\xb3\x23\x09\x89\x9d\xd6\x78\x42\xff\xbd\x49\xfd\x5e\x66\xb8\x15\x38\xa1\x5c\x37\xeb\x6d\xc0\x68\xf7\x37\x1e\x68\x61\x04\xb9\xcd\x4c\xfc\xf2\x4b\x65\xec\xf3\x72\xc0\x6b\x9a\xdc\xab\x18\x22\xd8\xd4\xbf\xca\x2b\x0f\x36\xe3\xdf\xd0\x8d\xd3\x7d\x1b\xcf\x18\x53\x5e\xed\x8d\xa9\x51\xb0\xa5\x73\x4f\x9f\x1b\x9e\x49\xaa\x08\x39\xc9\xd1\xe8\x44\x48\x84\xdd\xa0\x5b\x00\x02\x22\xd6\x7f\x35\x54\x2f\xc4\x12\x90\x60\x16\x62\xe9\x2e\x18\xf6\xd7\x6a\x1b\xaa\x70\xa0\xe0\x30\xc2\x7b\xbe\x12\x45\x89\xf7\x32\xfa\x68\xf1\xf6\x30\x9d\x4e\xa7\x63\xfb\x6f\xb6\xb1\x7f\xff\x1b\xfc\x2d\xd6\x6f\x0f\x8f\xa7\xd3\xab\x31\xfc\xdb\xd8\xbf\x8f\xff\x03\xfe\xfe\xf7\xb7\x87\x0d\xdf\x6c\x96\x8f\xae\x69\xe7\x95\x28\x00\x49\x46\x95\x38\x5b\xe1\xeb\x67\x1f\xf7\x99\x99\x54\xea\xa0\x57\x1c\x7c\xeb\xdb\x63\x39\x79\x6b\x12\x32\x4f\x92\x3c\x39\xda\x5f\x34\xb9\x4e\x08\xd5\x43\xb7\xbc\xd3\x94\x4f\x1c\xfd\xcc\x48\x4f\x07\x7e\x2c\x8b\x15\xdf\xaa\x72\xdd\xfb\x06\x65\xc0\xe3\x7f\xb5\x2f\x24\xb8\xfc\xff\xbf\x12\x0a\x92\x74\x79\x53\x94\x62\x0d\xaa\xb1\x11\x58\xa5\x11\xa6\xe4\x2c\x79\xfb\xf6\x90\x8c\x6a\x4c\xb2\x27\x26\x9b\xda\xeb\xb8\xe3\x1e\x66\xff\x95\x74\x84\xf3\x85\x16\xc5\xb8\x2c\xae\x78\x99\x50\x57\x0c\xd0\xc7\x66\x7b\x1a\xfd\x08\xab\x94\x3b\xf9\xa1\x9b\x8c\x7a\x73\xec\x0f\xe6\xb5\x65\x29\x12\xba\x9b\x27\xce\x1d\xa4\x97\xe9\x27\x39\xd8\x0f\x16\x9a\x17\x49\x43\x5f\xba\xa3\xce\x56\x97\x73\xb6\x2a\x24\x28\xb4\x65\xb7\xdc\x90\xb3\x2b\x7e\x86\x26\x7d\xeb\x33\x21\xcf\x8a\x33\x7d\x90\x52\xc8\xeb\x33\x5b\x85\xd2\x49\xdc\xc4\x96\x84\x2e\xa1\xc3\x2b\x8c\xf8\xb0\x55\x25\x78\xc4\xc6\xe3\xf6\x2b\x30\xcc\x8f\xf6\xec\x96\xef\x2c\x95\x71\xc4\xae\x35\x3d\x5f\xdb\x3d\xfb\xbe\xb9\x65\x51\x63\xf0\x9e\x2c\xb1\x21\xee\x8d\x44\x1c\xe6\x68\x99\xdc\xc8\x4c\x93\x81\x48\x53\x01\x40\xcf\xab\x6d\xfd\x0b\x34\xaa\xa9\x9c\x14\x06\xc3\xfd\xaf\x8c\x53\x71\x3c\x22\xca\xb9\x5b\x59\x01\x48\x13\x09\x46\x4d\x49\x3c\xf7\x66\xe9\x54\x7b\x5e\xfb\xb8\xbc\x79\xf6\x49\x2c\x35\x1b\x96\x34\xe0\xb9\x41\x64\x8f\x8c\xe4\x4e\x48\xf4\xa7\x9a\x24\xed\x14\x18\x0e\xcd\xcb\xb3\x4f\x42\x8f\xb9\x5a\x7e\x00\x06\xf6\x49\x20\x94\x8e\x68\xde\x03\x36\xf6\x15\xce\x0b\x78\x25\xa9\xa7\xc7\x1d\x84\x09\x5d\x2c\x9b\x43\xf0\x5d\x6d\x25\xd2\x99\xd3\xc8\x86\xcf\x2e\x8d\x9e\xf3\xa3\xe5\x95\x24\x7e\x3b\x99\x7f\x13\xe9\x1f\x23\xcf\x9e\x4c\xed\x80\xf4\x6d\xa5\x95\xba\xe1\xee\x3d\xf8\x07\xfe\xd1\xbc\x51\xaf\x3d\xdc\x79\x77\xd2\xbe\x6a\x36\x32\x00\xa3\xbb\x2d\x97\xc8\xc2\x88\x1b\xde\x5a\xb2\x3f\xdb\x11\xfb\xaa\x0f\x96\xbd\x0b\x3f\xcf\xdb\x9c\xe4\x67\xa0\xb0\xb7\x4d\xfd\xda\xa7\x99\x73\x3c\xdf\xed\xcd\xc3\xe3\xaf\x51\x95\x0f\x73\x27\x74\x46\xdf\xf7\x94\xfa\x5c\xe9\x5d\xd1\xf3\x92\xef\x65\xa8\x27\x12\x65\xab\xb6\xea\x03\xda\xd4\xfd\xba\xe5\xf2\xb5\x77\x1d\x04\x0d\xe3\xa6\x26\x1c\x96\x0d\x0d\x32\xda\x57\xb2\x89\x19\x17\x35\xe1\x57\x51\xf1\xaf\xd5\xfe\xf6\xeb\x43\x74\xe4\x7b\xe1\x4c\xbb\xbb\x76\xd5\xd4\xe8\x87\x8c\x99\x79\x06\xa8\x7e\x1d\x30\xc0\xab\xf2\xa0\xb3\x86\x6b\x03\x51\x59\xea\xb9\x66\x43\x70\x52\xda\x0d\x9e\xf5\x00\x0a\x62\x23\x9c\x61\xba\xf3\x42\x65\x9b\xe7\x72\x01\xfb\xdb\xd7\x44\xd3\x05\xbd\x73\x6c\x79\x34\x39\xde\xe5\x63\x77\x67\x78\x38\x1b\x33\x64\xc3\x0c\x7d\x0e\x23\xa5\x23\x11\x18\x41\xe4\xb2\xe1\xb9\xcb\x5b\x51\x61\xb7\x8d\xc8\xff\x22\x06\xa2\xc7\x37\x00\xba\xa6\x00\x0d\xe8\x84\x4a\x54\x85\x26\xf4\xfe\x94\xf6\xd4\xb1\xdc\xd3\x04\x7e\x3c\x94\x12\x51\x48\x25\x48\xf3\x1e\x4a\x57\xf2\xc2\xee\x2c\x39\x81\x1f\xf7\xa7\xb4\xa3\x22\x27\xf6\x3f\x70\x2e\xc0\xb8\x76\x5d\xbe\xc4\x74\x1a\x97\xc4\x57\xa5\x90\xef\x7f\x2a\x0c\x4f\xe8\x97\x7f\x9e\xc6\x31\xb1\x90\x27\xa1\x8d\x28\xbc\x50\xda\xcd\x11\xad\x5f\x74\xdd\xf6\x75\x94\xe0\x47\xae\xed\x56\x82\xe9\x8a\x12\x7e\x50\xfa\xbd\x25\xa3\x09\x50\xcc\x10\xf4\x94\x97\xc5\x6d\x14\xb6\x29\xed\x0e\x93\x00\xf2\x05\x45\xbc\x0c\x25\x14\xeb\xf5\x4b\xb5\xe6\xa0\xec\x00\xab\xa9\x8e\xda\xa3\x44\x0c\xf0\x22\xa3\xc2\x0e\x72\xad\x9e\xf2\xbd\xd9\x26\xf4\xf1\xb4\x8f\xac\xaa\x55\x70\x16\x16\xd2\x32\xe3\x97\xaf\x8b\x02\xd4\x4b\xdf\xce\xc7\x5f\xba\xb2\x6f\x9c\x5a\x85\x1f\xaa\xd9\xf4\x73\x58\x99\x5d\xf1\xf1\x5b\x71\xbd\x2d\xed\x40\x21\xb4\x43\x42\x67\xfc\xdf\xa3\xae\xec\xd4\x0d\x6e\x18\xcb\xf5\xe3\xb8\xf6\x9d\x09\xf7\x6d\x9d\x1f\x9d\xa2\x44\xcd\x08\x9a\xe2\x0a\x58\xec\x7b\xef\x26\xf7\x5c\x3d\x27\xa6\xb8\x02\xad\x69\x66\x8e\xc7\x24\xf1\xc5\x15\x07\xa3\x1c\x3e\x6a\x6d\x64\xaa\xed\x4d\xcb\x5e\x70\xe0\x9e\x27\xe1\x4b\xec\xf8\x4b\x17\x32\x80\xdb\x9c\x90\x10\xc0\x9a\x0d\xa8\x2f\x7a\x50\xc0\xf1\x98\xd8\x62\x13\x90\x23\x64\xad\x48\xc6\x09\x2d\xf4\x35\x98\xe9\x78\x81\xcd\xe5\x63\x00\xb9\x5e\xf3\x3d\xb7\xf7\xa1\x95\xe0\x15\x7a\x51\xaa\xad\x5e\x50\xe7\x16\x9f\xa7\x43\x76\xfa\x98\x10\xaa\x25\xdc\x2e\x4f\x34\x34\xf0\xbb\x97\xcf\x5a\x0d\x94\x75\x1a\xcd\x2b\x55\xde\xb4\x7b\xd1\x0f\x7e\xcd\xd3\x54\xf6\xbd\x98\x73\x06\x05\x06\x35\x12\x9e\xa6\xdd\xbc\xa0\x41\xda\x5b\x00\xc4\x10\xcf\xb9\xdb\xa2\x50\xdb\x74\x70\x0f\xc8\xc3\x9d\x8d\x05\x87\x32\x19\x67\x1f\x1c\xf4\x35\x1a\x2f\x18\xf8\x57\xbb\x69\xed\xe9\xc1\xa3\x7f\x2c\xde\x7e\x78\x3b\x5e\x8e\xde\x3e\xf2\x3f\x46\x1f\x77\xe5\x17\xe1\x11\xc8\xbf\x1f\x36\xc6\x26\x4b\x8a\xfd\xbe\x14\x2b\x10\x6d\x3d\xfa\xb8\x2b\xc3\x0d\xa2\x5b\xc7\x1c\x1b\xc8\x4f\x39\x3f\x1e\xf1\x37\x2e\x80\x93\x1d\x70\xa7\x22\xdc\x9a\x11\xc3\x9a\xd5\x05\x30\x51\x2d\x17\xc6\x0d\x07\xb8\x91\xaf\x5b\xe7\x6d\x5d\x1c\xaa\xc8\xa3\x7d\x59\x08\x99\x78\x48\x36\x07\xe9\x26\x36\x99\xea\x2a\x31\xc7\x23\x2e\x98\xaa\xab\x08\x0f\x71\xf6\x76\x20\x88\x68\xe7\x54\x04\xc0\x2e\x7b\x43\x17\xc9\xbb\x64\xa4\x96\x80\x20\x48\xa8\xfd\xcb\x84\xfd\x79\x82\x97\xdb\x68\x7a\xa8\x69\xe8\x25\xdb\xf2\xc2\x27\x8b\xe3\xec\x95\xcb\xee\x11\x5b\x51\x2d\xe4\x84\xb6\xc5\x11\x50\x55\x14\xb0\x50\xc1\x4d\x9b\x8c\xb6\x01\xcc\x22\xcc\x43\xe3\xee\xe4\x9e\x4e\xc0\x86\xa8\xed\x11\xf0\xbd\xd8\xbf\x51\xcf\xe4\x3a\x73\x96\x06\xf1\x96\xca\xe2\x51\xa7\x58\x30\x0e\xbe\xf2\x94\xe3\xd9\x47\xc3\x65\x65\x4f\x67\x24\x18\xf8\x7a\xdd\x33\xfb\xcf\xec\x22\xee\xce\x13\x27\x73\x65\x37\x56\x0e\x7f\xd9\xdd\x89\xd4\xdd\x09\x65\x77\x68\x4f\xa0\x11\x2d\x3a\xf0\x54\xad\xee\xcb\x74\x2d\xee\xcd\xe5\xc4\x3b\x1c\xb1\xda\x0a\xc0\xfa\xf3\x71\x96\x2f\xf9\x56\xa9\xf7\x0d\xc2\x51\x78\x30\x3f\x82\x6e\x1f\x2a\x3b\x1a\x38\xa7\x6e\x18\x34\xbf\x16\x95\xe1\x1a\x9f\x8b\x3b\xae\x15\xba\x4a\xf7\x9c\x1c\x8f\x59\x05\x63\xf0\x0a\x06\xc2\x69\x97\xe7\x8b\xe5\x89\x50\x88\x00\x2d\x52\xa4\x67\x58\xf8\x37\x90\xa2\xb7\x0a\x94\xc5\x35\x5b\xe1\x11\x6a\xa0\xb0\xa0\xd9\x8e\x16\x5e\x7b\xcd\xd7\xb9\xa6\x37\x45\x99\xcb\x93\xeb\x55\x69\x7b\xb5\x52\xfb\x5b\xd0\x50\x67\x1d\xf9\xd2\x70\xca\x18\x33\xc1\x92\xca\xa1\x9c\xfa\xf4\x41\x45\xa1\x0e\xaa\x77\xfc\xdd\x29\x6c\x43\x09\x4b\xbd\x69\x4d\x74\x26\x64\x65\x0a\xb9\xb2\xa4\x06\x0e\x05\xd0\x0b\x11\xc1\xe1\xf3\xd2\x9e\x01\x0b\xb9\x64\x22\x52\xa5\x3f\xd8\xe6\xd6\xf6\x6f\x9d\x31\x77\xef\xa4\x3c\x4a\x03\xd0\xff\xe1\x2b\x03\x7b\xa9\x41\x64\x9e\xd1\xea\x33\xbc\x8a\xf3\x3a\xfa\xbc\x36\xcf\x8b\x2c\x3a\xd0\x12\x54\x1f\x8f\x1a\x0f\x3f\xe6\x8d\x41\x0d\xd3\x28\x40\xa2\x9c\x61\x5c\x68\xfd\xf1\x88\x36\x76\x9c\x42\x82\xdc\x9c\x70\x0a\x56\x38\x05\xa0\xd8\x55\xb1\x3b\xf4\x64\xfa\xa4\x2c\xdb\x9b\x38\xba\x8b\x64\x35\x96\x99\xb3\x72\x9a\xfa\xf7\xf8\x1a\x45\x0d\x0c\x8b\x28\x32\x81\xb5\x5d\xd8\x03\x85\xc6\x60\x28\x09\xe2\xda\xc1\xfd\x3e\x0a\xdd\xf2\x62\x9d\xb8\x92\xdf\x8b\xb2\x6c\x29\xb5\x93\x3b\x30\xdc\x6f\x7b\x9f\x30\xc1\x6c\xcc\x8d\xe5\xb3\x00\x37\x55\x9b\x86\x35\x40\xd1\x6a\xa9\x96\x43\x33\x00\xac\x8b\x28\xf5\x45\xdc\xd5\xb9\xc7\x5a\xf3\x6f\xa6\x00\xc5\x52\x23\xf1\xcd\xe8\x94\x78\xd5\xa5\xfb\x12\xd9\x65\x71\x6a\xe8\xde\x7a\xcb\x33\x87\xb3\x9c\x01\x1b\x7f\x72\x2a\x5c\x9f\xd1\xf1\xb8\xb0\x8d\x07\x2c\xcd\x48\xf0\x86\x6c\x54\xfe\xc2\x3b\xfd\x77\x50\x74\x2e\x16\x3d\x23\x87\xea\x10\x6b\x6c\x63\x1e\xaa\x8f\x77\xea\xe3\x3d\xf5\xf9\xb0\x50\x34\x3e\x5f\xac\x3f\xa7\x86\xc8\x4e\xb5\xb6\xea\x70\x23\x18\x69\xfd\x8c\xbe\x1c\xc4\x0d\xb1\x94\xc1\xdb\x6f\x64\xf8\xae\x3f\x85\xc7\x7c\x7d\x72\x99\x70\x7c\xef\x6f\xd7\x4f\x2d\x53\x8d\x7f\xbd\x61\xa8\xf2\xd3\x6e\x4e\xc7\x9b\x46\xac\x28\x3a\x9a\x4d\x5b\xcd\x1d\xdc\xb7\x46\x24\x36\xde\xde\x55\x5a\x9b\xcc\x06\x65\xf0\x52\xd8\x89\xb2\x41\x99\xcb\x75\xdf\x1e\x6d\xc4\xf9\x72\xee\x4b\xdc\x88\x83\x37\x2a\xf5\x54\xad\xc0\xa5\x54\x2b\x65\x4b\x05\xad\x8f\xa4\xf8\xec\xcf\x5a\x1a\xa7\xf7\x64\x8e\x11\x1c\x6d\x4e\xfb\xfb\x33\x6a\x6e\x2a\xbf\xd5\x86\x38\xa2\xc8\x78\x83\x40\x9c\x22\xf7\xe6\x23\x74\xe7\x7c\x25\x8a\x2a\x9f\x9d\x9a\xd5\xbd\xde\xfd\xcb\x75\xaa\xba\xce\xcf\xa9\xee\x93\x03\x73\x5f\x3d\xfd\x76\x40\x35\x59\x74\x08\x04\x9a\xbd\x90\x99\x24\xe7\x04\x8d\x3f\xe4\x3a\x9b\xd9\xcb\xa8\x43\x99\xaa\x91\x9c\x04\x7b\x22\x32\x49\xa8\x62\x62\x2e\x16\xd3\xe5\xa4\xe4\x37\xbc\xfc\xb7\xc7\x73\x5d\x64\x92\xe4\x12\xff\xf6\x11\xd8\x8d\xf7\x00\x62\xe6\x6f\x6c\x11\xb9\xa1\x0a\x9d\x21\x7c\xc6\xc0\x8f\xa3\xa1\xe8\x6e\xd3\x4f\x0f\xc6\x7f\x8a\x9e\x9c\xfd\xaf\xef\x5d\xa7\x87\xeb\x5a\xdc\x21\x78\xff\x3f\x34\xf8\x93\x0d\xfa\x57\xd6\xee\xff\x0a\xf5\xeb\xa7\x6e\x67\x72\xb2\xda\x5e\xc0\xc9\x0f\x1b\x5a\xba\x13\xba\xe2\x85\x5e\x6d\xb3\x47\x6f\x5f\x3f\x22\xf3\x78\xaf\x58\x86\x32\xee\xca\xcf\xfb\x56\x1f\x40\xc3\x36\x1b\xcf\x28\xe2\x6f\x84\x84\xa0\x0b\xdf\x97\xb4\x91\xf2\xc7\xe2\xfa\xa1\x22\xbd\xa9\x20\x26\x7c\xa8\xc8\x3a\xa5\x1d\x83\x9e\x15\x00\x1a\xe6\x50\x28\x3e\xaf\xf9\xa4\x7d\xcb\x1b\xd3\x36\x93\x82\x82\xea\xc3\xe5\x22\x76\x4d\x94\xfc\xe1\xb2\xa3\xe4\xbf\x2a\xbd\x7e\xb0\x6c\x40\xbf\x81\xa4\xdf\x68\x75\xd8\x3f\x58\x30\x42\xe0\xd4\x89\x1f\x2c\x38\x4a\x6c\x1b\xf1\x60\xc1\xbe\x11\x6b\x0e\x2f\x9c\xf8\xac\xd6\x4a\xec\xf4\xe0\x1b\x03\xed\xd2\xb7\xad\x64\xe3\xe4\xcd\xd4\xb6\x25\x9f\x2c\x3d\x6a\x0d\xa8\x0a\x3f\x5c\x7a\x94\x1a\x06\xe5\x93\xc5\x87\x81\xf1\x39\x3e\x51\x41\x48\x8f\xea\x03\x4f\x0e\xa6\xcd\x12\xb4\x80\x1c\x3c\xd8\x5b\xc8\xf2\xb2\xdb\xa0\x4e\x16\x40\xba\xf3\x19\x5e\xf0\xaa\xfa\x64\x1d\x01\x6a\xc2\xe6\xaa\xb8\x36\x6f\x8a\xab\x0e\x6b\xd1\xb6\x35\x78\x1b\xa5\x7f\xad\x36\x9d\x3c\xb5\x3a\xd7\x62\x49\xd1\x9f\x4c\xd3\x71\x35\xd0\xa4\x36\xb2\x5e\x1f\xa6\x17\x6a\x25\x68\xef\x66\x00\xf0\x20\xb6\x2a\xab\x29\x54\xc0\xc9\x05\xd5\x6e\x32\x30\x78\xe7\xdd\xa9\x4c\x8e\x8b\x7f\x93\x84\x9c\xba\x1d\xa8\x32\x13\x59\xa9\x76\xfa\xdb\x67\x71\x71\xdf\x58\xe7\x96\x4a\x07\xf3\x9c\x2c\x09\x63\x98\x80\xa9\x4d\x21\xab\xbd\xaa\x38\x3c\x92\x37\x6a\x79\x00\x31\xac\x67\xb4\x22\x4f\x38\xf7\xa1\x74\x20\xdd\x57\x35\x2b\x21\xa2\xcb\x15\x48\xd1\x08\xe0\x78\xd8\x1b\x95\xaa\xd1\xfe\x05\xa8\x38\x6c\x78\x86\xc9\xa9\x40\x5c\x4b\x02\x3f\x2e\xa7\xa4\x2f\x7e\x34\x23\x34\x0c\xea\x4f\x85\xbc\xb6\xb3\xe0\xf4\xc7\x5d\xfe\x51\x33\xe0\x31\x5c\x52\xe3\x2a\x1e\x13\x2a\x68\x32\x0a\x23\x94\x44\xd8\x01\x1e\x18\x3c\xa8\xb0\x78\xac\x80\x56\xdf\x3c\xf2\xe0\xa0\x40\x65\x8b\xbe\xf6\x4c\xc9\x88\xf7\x39\xa7\x1f\x15\x01\xb4\xab\x86\xaf\xa8\x1b\x39\x9e\xd1\xde\x70\x3a\x23\xcd\x56\x9f\x9a\xae\x86\x04\x15\xb0\xe2\xe2\xeb\x75\x95\x01\x50\xcb\x89\x4a\xfe\x01\xac\xd0\xe5\x1a\xb5\x84\xfe\xf5\x05\x11\xb4\x6f\x10\x36\xe7\x5c\xfb\xb5\x20\x7b\x12\x2f\xf4\x72\xd0\x1a\x9e\xde\x21\xa1\xd2\x3b\x49\x72\xf6\x4e\x35\x78\xa1\x5f\xfd\x8e\x27\x88\xee\x97\xa3\x19\x75\x60\x86\xe4\x14\xd0\xea\xa8\xda\x73\xd9\xb9\x28\xf7\x12\x12\x99\xd0\x04\x1f\xf5\x3e\x61\x49\xc0\x27\xad\x58\x7b\x69\xa4\x6b\xc9\x5e\x39\xbc\xa6\x86\xd6\xda\xb6\x49\x86\xd0\x12\x16\x7d\x65\xec\x4b\x61\xb2\x47\xe3\x6c\x3e\xfc\x82\x3c\xb2\xe4\x24\xe3\x4c\x2d\x54\x98\xed\x25\x9d\x92\xf3\xe2\xa2\x0e\x00\xa3\x14\x87\x0b\xa1\x16\x05\x88\xb1\x1f\xfd\x23\x5b\xed\xd6\xc7\x1d\x37\xc5\x71\x47\xbe\x78\x24\x1c\x56\x27\x21\x82\x0d\xa7\x61\x29\x3f\xfa\x47\x91\x95\x86\xcc\xe3\x04\xa6\x99\x20\x5b\x1d\x57\x46\x97\xc7\x95\x92\x46\xab\xb2\x51\x96\xf6\x49\x41\x20\xf7\xe8\x1f\x55\xb6\x15\x1b\xd3\x48\xd2\x51\x9c\xf9\x59\x6a\xbe\x52\xd7\x52\xfc\xc1\xd7\x67\x3b\xb5\x16\x1b\xc1\xf5\x19\xc8\xf0\xcf\x92\x51\x45\x06\x12\x7c\x3f\x79\x31\x0b\x28\x7e\x27\x4f\x4a\x33\x4e\x46\xdc\xb9\xe2\x65\xc9\xd7\x46\x97\x18\x20\x5c\xc0\x6e\x8d\xdf\x12\xbf\xbd\x7b\x52\x4e\x28\x3f\xad\xe5\xe4\xaa\xa8\xc4\x8a\xdd\x01\x2b\x91\xd4\x3c\x56\x42\x91\x61\x48\x22\x5e\x2a\xa1\x3f\xef\x6d\x00\x72\x8b\x09\x05\xae\x2d\xa9\x99\xc2\x84\xda\xcb\x55\x12\xee\x59\x09\xfd\x56\xed\xb8\x0f\xa8\xef\x79\x09\x75\xcc\x61\xe2\xd9\x44\x0c\xf1\xe5\xf9\xdf\x09\x7d\x0a\xa7\x70\x9e\xc4\x7c\x46\x42\xbf\x2a\x56\xef\xab\x7d\xb1\xaa\x23\xbc\x1e\x90\xeb\x5d\x48\x90\x74\x52\xd8\x33\x23\xa9\xcf\x8f\x90\xc5\xfe\xce\x93\xfa\x84\xb7\x7d\xb1\x5c\x41\xd2\xde\xfa\x09\xfd\x0e\x0e\x8a\x3c\x69\xad\xea\x84\x3e\xab\x56\x79\xd2\x12\xde\x25\x76\xa5\x4f\xf6\xab\xa7\x58\x25\xbb\xc3\x19\x7a\x92\xe4\x49\x90\x1a\x26\x14\x03\x9f\x62\x73\x9d\xa8\xca\x87\xfe\x1d\x70\xd1\xd6\x2a\x34\x35\x84\x6a\x0e\xa1\xf0\xfd\x5b\xeb\xdb\x8e\x7c\x62\x07\xd3\x8b\x12\x7c\x84\x9d\x17\x17\x0e\x53\x84\xa1\x3f\xef\x93\x78\x66\x5d\x7b\xec\x1c\x34\x27\x18\x23\x60\x81\xd8\x88\xc0\x85\xfa\x18\x5c\x27\x21\xca\x2d\x1b\x58\xa5\x21\x53\x58\x0c\x2e\xa2\xce\x13\xd6\x0d\x16\xd6\x9a\xc6\x88\xbb\x0b\x2d\x44\x83\xc9\x3a\xda\xad\x10\x8c\x7d\x6d\x07\x19\x5e\xfe\xf1\xfb\x79\x92\x27\xf6\x46\xee\xbf\xbf\x71\xdf\x3f\xf0\x8f\xa6\x39\xba\x3e\xe6\x47\xcd\x6f\x9a\x31\xcf\x61\x9c\x81\x18\x36\x23\x7e\xaa\x23\xa2\x29\x5d\x84\x45\x65\x59\x3a\x1f\xba\x0c\xa1\x2f\xa3\xce\xfc\xec\x26\xba\x5e\x3b\x8d\x0a\x7e\x76\x33\x1c\x47\xdb\xe1\xeb\x09\xdf\x14\x65\x69\xc9\xcb\xe1\x7a\x9b\x27\xb0\xc1\x71\x19\xf2\x5d\xb1\xaa\x6e\xfd\x1a\x7c\x9e\xb4\x76\xb7\x1b\xf5\xa4\x49\x07\x30\xf4\xc7\x9e\xf5\xf1\x43\x7b\x71\xd8\xe6\x60\xa9\xe1\xc6\xe1\x42\xbf\x0a\xa1\x71\xa1\x4f\x3a\xeb\x01\x97\x68\xdf\x62\xf8\x25\x69\x92\x86\x78\x68\xea\xb8\x68\xf1\x26\x6d\xb2\xe1\x36\x46\x97\x26\x40\x0b\x5d\xfa\x70\xe1\xf0\x0d\x6f\xae\xc1\xfa\xfe\xe2\xcb\xfb\x3e\xc9\x13\x2f\x56\xf7\x61\x6f\x92\x3c\x69\x72\x90\x3e\xe6\x55\x92\x27\xfe\x88\xc5\x39\xd9\x15\x31\x6d\xd8\xad\xbb\xa4\x61\xb7\xee\xa1\x0c\xbb\x75\x0f\x61\x70\x81\x9e\x0e\xec\xd6\x0d\xb2\xb0\x5b\xf7\x53\x85\xdd\xda\x6f\xff\x56\x68\x97\x54\xd8\xa6\x78\xa2\x10\x42\x1b\x9b\x3b\xa6\x08\xcd\xcd\xdd\x20\x08\xb6\xa4\x06\x41\xf0\xcb\x62\xb7\x6e\xd1\x83\xc6\x2a\xfa\x24\x41\xb8\x2f\x55\x3c\xa5\xf7\x13\x8d\xdd\xba\x41\x33\x76\xeb\x06\xc9\xd8\xad\xef\xa1\x18\x51\x84\x23\x18\x30\x8f\x6e\x33\x74\xa8\x45\x37\xae\x9e\xe8\x2e\xbd\xd8\xad\x7b\xc8\xc5\x6e\xdd\x59\x98\xcd\x57\x01\x3f\x59\x51\x57\xdb\xf2\x79\x3f\xf5\xf7\x53\x1d\x17\xdb\x26\x3a\xf1\x81\xd1\x3e\x5d\x3a\xab\x23\x26\x45\x0b\x47\x8b\x68\x82\x84\x28\x59\xc2\x0e\x70\xa7\x31\xbb\x99\x37\xb6\x43\x1e\x9f\x9b\xf4\xd5\x44\x2a\xbd\x2b\x4a\xf1\x87\x03\x03\x65\x5d\xc5\xeb\xe8\xf5\x52\x9f\x09\x79\xc6\xd1\xf2\xa8\xf5\xa2\xab\x6b\x75\x36\xcb\x5f\x23\x2b\x67\xb9\xac\x63\xd4\xd6\x63\xb6\xe6\xc7\xc2\x10\x53\xac\xb6\xc4\xeb\x67\x68\x42\x2c\xaf\x27\xe4\x01\x30\x6e\x92\xc9\x64\x82\x20\x25\xb8\x35\xcf\xa0\x3c\x9f\xe2\x54\x2b\xd2\xdf\x82\x01\x1a\x70\xaf\xc9\x59\x42\xe8\x16\xc4\xbe\x80\xac\xd6\x85\x55\xa3\xd5\x40\x31\x26\x02\x0f\x3b\xcf\x2a\x26\x26\xbf\x2b\x21\x31\x73\xc1\x24\xc9\x21\xcc\x43\xdf\xa9\xd1\x8c\x34\x12\x40\xc3\xbc\x79\xb8\x59\x54\xd0\xc9\x12\x9e\xf5\xca\x21\x2b\xba\x9c\xe7\x77\x72\xa5\x64\x25\x2a\xc3\xa5\x39\xbb\x12\x72\x2d\xe4\x75\x75\xb6\x51\x1a\xf8\x4e\x54\x69\xb1\xe5\xb0\xe2\x14\x75\x35\xf4\xf0\x80\x4f\xc5\x7c\x71\x58\x32\xb3\x38\x04\x0d\x08\x8e\x8f\xa5\x1b\xcb\xe9\x97\x4a\xbd\x3f\xec\xbf\xe7\xb7\x3d\x0f\xe2\x38\x4a\x99\x41\x1d\x6b\x02\x9a\x45\x73\x83\x0a\x46\x9c\x4a\x92\x9b\x85\x53\x41\x99\x31\xc6\x04\xf1\xc6\x77\x0a\xae\xfa\x49\x34\x17\x75\xe4\xee\x50\x1a\x91\x78\xb4\x81\x21\x13\x69\xaa\x33\xe1\x15\x6c\x12\x44\x13\x5a\x27\x08\x8a\x13\x4d\x3c\x6a\x1f\x2d\x10\x43\x0d\x1f\xb9\x97\xc9\x90\xbd\x82\xef\x48\x07\xca\x6b\xe7\x63\x2b\x9b\x45\xf8\x27\xf6\x8d\x44\x57\x0d\x75\x14\x7a\xe4\x6a\xa2\xeb\x35\x12\xf4\xc0\xec\x75\x4b\x59\xa8\x65\x70\xed\x55\x90\x00\xb5\x71\x3a\xd1\xbd\x1d\x6a\x51\xbd\x74\x97\x87\xe6\x70\xfb\x6d\xd2\xa3\x35\xc4\xf3\xbf\xab\x45\x70\x90\xee\x27\x10\xb6\x74\x02\xa6\xc6\x96\x70\xba\x5f\x40\x1c\xdc\xef\x97\x6a\x6d\x7f\x9d\xe8\xce\xdd\xe6\x7e\x28\x76\x3d\x1a\x09\xab\x34\xfd\xf3\xbf\xb3\xa6\x83\x7b\x7b\x87\xaf\x01\xc7\x51\x1e\xde\x68\x04\x95\x4c\x0f\x22\x3c\xa8\x21\x93\xde\xc9\xfb\x37\xba\xd8\x6f\xc1\xe9\x7b\xe6\x9d\xbe\xa7\x29\x34\x11\xdd\x91\x48\x7f\x2f\x92\x84\x66\xef\xe6\xc1\x17\x7c\x1e\xdc\xc5\x93\x34\xc5\xde\x85\x0c\xee\xe2\xe4\x73\xb8\x74\x79\xed\x47\xde\xe6\xd8\xad\xa3\x0c\x70\xb1\x92\x84\x0e\xc1\x62\x04\xf0\x24\xb0\x21\x38\x42\x21\xa1\xbf\x71\x49\x42\x25\x89\x6e\xba\x37\xb1\x25\x69\x77\x4e\xd6\xa0\x7e\xc3\x4f\xaf\xe0\xd2\xfe\x86\x7f\x34\x4f\x34\x2f\xba\x83\x9b\x19\x66\xe6\xcf\x54\x66\x48\x7e\x77\x22\x13\x30\xb4\x62\x1c\xff\xd3\xa1\x99\x78\x85\x45\xc0\x2c\x72\x3a\x88\xa0\xe3\xe7\x23\x58\x1d\x6e\x3b\x33\xd9\xd7\xf6\x2d\x36\x4f\xe3\x33\x6b\x44\xb3\x46\xac\xf7\x1b\x60\x26\x41\xa9\xd1\x3f\x74\xfc\xa0\xc0\xdb\x5a\x08\x67\x1a\x14\x12\xbd\x09\xf2\x75\xd3\xb6\x25\xa8\x44\x12\x70\xcc\x1f\x20\xc5\xaf\xd4\xfa\xf6\x14\xd9\xe1\x92\x3b\xd7\x4d\x06\x10\x10\x68\x44\x06\x3a\x5f\x7c\xb2\x51\x7a\x97\xa6\xd9\x37\xc2\xfd\xa6\x49\x75\xb8\xda\x09\x93\x50\x98\x31\xd4\x04\x7e\x0d\x41\x2f\xb9\xd9\xaa\xf5\x93\x52\xc9\x5a\x2f\xcd\x65\x52\x96\xcc\x42\xa2\x81\xd1\xb7\x6e\x43\xfa\x20\x16\x89\x7c\x64\x06\xbe\x5b\x31\x5c\x85\x9f\x71\x68\x71\x3a\xad\xc0\x63\xc8\x37\x8a\xdc\x9d\x4e\x66\xb2\x11\x52\x54\x5b\x30\xa8\x8b\x9f\x86\xcc\xc4\xf2\x1f\x4c\x52\xd0\x1e\xed\xce\x7b\xa4\x20\x0f\x8e\x5f\xfa\x52\x34\xc2\x45\xf5\x43\xf1\x03\x95\xa0\x97\xbe\x2f\x34\x97\xe6\x07\xb5\xe6\xce\x5d\x97\x43\xe6\x9a\x74\xec\x22\x33\xf4\x7e\x08\x96\x11\xee\xc5\x0e\x0d\x43\xdc\xc8\xfe\xa5\x77\x64\x13\xdf\x88\x58\xfb\xd2\xa6\x72\xa3\x80\x5e\x1d\xeb\x6f\xa6\x08\x39\x9d\xba\x15\x49\x25\x79\xe2\x20\x53\x5e\x35\x9f\xce\x1a\x9d\x40\xa1\x2d\xf2\x80\x99\xa1\x7c\x22\xf9\x47\xf3\x5a\x5c\x95\x42\x5e\x93\x13\xa9\x31\x51\xce\x2a\x3c\x8c\xae\x2d\xa1\x42\xd2\xfd\xda\x68\x5e\xec\xda\xca\x90\x5b\x51\x4d\xf6\xaa\x0a\x98\x17\xda\xb0\xa9\x47\x8e\xb0\xb9\x18\xc7\x2f\x27\xfa\xb6\x64\xf0\x3f\x68\x00\x30\xc6\xd7\xa1\x1f\x7d\xfe\x3a\x08\x16\xa7\x2f\xa9\xf4\x37\x1e\x36\x3d\x0d\xae\x65\x0c\x28\xcf\x55\x79\x9f\x71\xe8\x5e\x55\x97\x2c\x6a\x89\x3b\x2b\x4e\xb4\x7a\x30\x8f\x83\xef\x08\x75\x9e\xe8\x9e\xf3\xf7\xf7\x65\x70\x45\x3b\x09\xab\x2f\x83\x1c\x8f\xe8\x0e\xfc\x44\xed\x00\xc7\x99\xed\x01\xea\x52\x5d\x74\x1b\x47\x3e\x5d\xf6\x68\x44\x4e\x94\x17\xf7\x42\xf6\xde\xd3\xa2\x5e\x88\x5b\x4e\x9c\xc5\x3e\x73\x60\x05\xf6\x37\xac\x39\xcb\xc0\xcd\xf1\x9f\xa5\x94\xdc\x32\x1a\x00\xcd\xee\x5a\x38\x1a\xf9\x92\xa9\x81\xe6\xfc\xba\x15\x25\x7f\x08\x71\x7e\xaf\xaa\x73\xf8\xc1\x0b\x93\x71\x72\x1e\x40\xaf\xc2\x64\x61\x41\x80\x32\x97\xf7\x88\x87\x79\x5d\xce\xa3\xc5\xdb\x0a\xec\x1f\xa7\x4b\xc7\x6b\x3e\xd4\x75\xc0\x79\xf1\x5f\x83\x76\xad\xfc\x44\x83\xf2\x68\xc7\x8b\x7c\xb4\xb2\x9b\x4b\x08\x72\x7c\x62\x0a\xbc\x69\xa9\xdb\x01\x7e\x16\xcc\xe5\x78\x46\xda\x8b\xce\x00\x84\xfe\x55\xb1\x7a\xdf\x7a\x04\xf6\x29\xc6\x8c\x9f\x28\xbe\x94\xde\xb7\x16\x1b\x1b\xea\xa2\xde\x90\x1e\xc4\xa4\xbd\xbb\xb6\x2a\x1e\x36\x5a\x67\x68\xec\xd8\x9e\xcd\xda\x0e\x82\xe2\xc8\xbd\xbb\xda\x59\xb0\xf4\x65\x1a\x67\xcd\xcd\x36\xef\x6b\x53\x88\x6d\xb4\x0b\x01\x58\xf1\x9e\xd7\x42\x31\x08\xc3\xd2\x2a\x2d\x80\xc3\x85\x32\xfe\x97\xeb\x07\xa7\x56\x79\x8f\x59\x50\x07\x3d\x3f\x60\xae\xc6\x4b\x04\xef\x24\x61\x79\x38\x1f\x59\xbc\x56\x52\x48\x53\x89\xeb\xe8\x72\xea\xdd\x0b\xa5\xe9\x70\x36\x64\x35\x36\x8d\xa5\x09\x4c\xa2\x4a\x0c\x7a\x3b\x92\x68\x80\x2e\x58\x8f\x99\x98\xb6\xbb\x5a\xbd\x50\x1f\xb8\xfe\xba\xa8\x78\x46\x72\x7e\x02\xdc\xfb\xc6\x16\xaa\x0e\x57\x95\xd1\xa1\x7c\xca\x83\x89\x32\x63\xa2\x56\xbc\xef\x69\x48\x48\x09\x0b\x7a\x75\xd0\xfa\x01\xfb\xfd\xee\x28\x44\xeb\xcf\x0e\xc8\x89\x6e\xc5\x9a\x3f\x17\xba\x32\xed\x97\xc5\x70\xfa\x84\xe9\x19\x31\x0e\x6c\x87\xaf\x21\x23\xa7\x8d\x90\x45\x59\xde\xb6\x12\xda\xbd\xe4\x34\x53\xaf\x24\x9b\xd2\x5b\x7b\xc8\xd9\xf3\x1f\x91\x50\xfb\x8e\x38\x9b\xb7\x62\x8b\xa5\x5b\x02\xa0\xfe\x1e\xe0\x28\xfc\x19\x27\xd6\x6c\x34\xba\x92\xa7\x81\x50\xd9\xad\x24\xf4\x36\x3a\xaa\x26\x80\x85\xcb\x9a\x27\x01\x62\x1a\xf1\x8f\xfb\x52\xac\x84\x29\x6f\xbf\xb6\x69\xf8\xba\x09\xad\xa1\x56\xe0\x9e\x93\x71\xf4\x61\x7c\xd0\xaf\xf6\x40\x46\xd2\xf4\x2b\x30\x10\x95\xca\x01\x40\x40\x0d\x09\x69\x00\xed\x81\x46\x15\x19\x68\x70\x29\x1a\x27\xa3\x88\x69\x4d\xf5\xc4\x28\x12\xae\xa6\xe8\xb0\x9c\x0a\xfc\xe7\x2e\x5c\xa1\xff\xb5\xd3\x0a\xe5\x6f\x5b\x75\xa4\xbd\x65\x55\xec\xb5\xcc\x8a\xc9\xce\x0e\xe3\x1a\x8c\xa8\x10\x50\x63\xc0\x3d\x7e\xd3\x4a\x95\x65\xb1\xaf\xf8\x7a\x0e\xbe\x56\xdf\x88\xac\x20\xde\xd5\x6a\x0e\x16\x06\xc0\xe3\x56\x13\xa3\xe0\xcd\x16\x12\x78\x58\x97\xca\x23\xf8\x48\x17\x4e\x68\xa3\x32\xf6\xa6\x5d\x7b\xe5\x99\x6c\x9f\xb5\xd9\x88\x34\x1d\x7e\x2b\x23\x70\x46\x92\xa6\x3c\x4d\x5f\x8b\xac\xa0\x2d\xbf\x3a\x68\x2a\xd3\xc9\xdd\x6f\x59\x4c\x6a\xe8\xf5\x07\x06\xaf\x64\x7f\xc8\xac\x31\x7e\x84\x1e\xd8\xd3\xac\x24\x83\xc3\x65\xad\xf6\xd5\xf6\xd3\xdb\x89\x61\x25\xbd\x27\x35\x3b\x74\x63\x6a\xff\xbd\xe4\x14\xae\x89\x3d\x5d\x03\x3d\x7b\x49\xc5\xc8\xfb\x13\x89\x3b\xe1\x19\xb3\xce\xca\x65\x43\x17\x53\x18\xb5\x13\x2b\x57\x6c\x0c\xda\xe5\x89\x45\x1c\x06\x66\x9d\x69\xfa\xbd\x7b\xae\xb5\x9c\xb4\x77\x81\x0b\x93\xa9\x5d\xe9\x09\xc5\x8d\x46\xa8\x49\xd3\x6f\x61\xf1\x23\xa5\x00\x06\xd7\x55\x86\x1f\xb8\xdd\xe0\xe5\xb4\xb1\x0b\xed\x7e\x60\xbd\xaa\x89\x83\x00\x18\x96\x5c\x29\xf5\xde\x56\x9c\x38\x5e\xd0\xa0\xf1\x0b\x67\xb3\x18\xef\x61\x7a\x2e\x7a\xa7\xb7\xf6\x56\x56\xcf\xad\x58\xd2\xc2\xee\x0d\xd5\xb3\x37\x82\xcc\xa5\xf0\xcb\x5b\x83\xfb\xba\xb9\xca\xdf\x88\x4c\xd9\x35\x8e\x78\x54\xe3\x19\x63\x3c\x72\x6a\x10\x65\x84\xdd\x22\xdb\xd9\x8c\x22\xb4\x91\x27\x80\xdd\xe9\x34\x8d\x9d\x74\xb6\x47\xc9\xe1\x0e\xc4\xd4\x2a\xa2\x48\x40\x53\xc6\xa0\xa6\x49\x6b\x04\xef\x9a\x56\xd9\xdd\xae\xd3\xf4\x37\x93\x69\xda\xc6\x0b\xc2\x67\x7b\xc9\x29\x6c\x6d\xee\x55\x5a\xd8\x8d\x4d\x8c\x08\x1c\xb6\x2b\xcf\xc0\x51\xae\xc7\x33\xaa\xbc\x34\xd5\x2f\xde\x7e\xa0\xa3\x3a\x43\xdb\x09\x35\x85\x6d\x8e\x08\xa7\xc4\x7b\xc2\x35\xc1\x8b\x95\x23\x65\xee\x7b\x60\x02\x46\x94\x57\x3e\xad\xd8\xaf\xf6\x2e\x35\x2e\x06\x15\x90\x07\x09\x8a\x03\xe0\xd2\xb7\x72\x1a\xdd\x8d\xf1\x43\xf0\x02\xa8\xbc\x65\xa8\x37\xec\xac\x98\x78\x8f\xec\x3a\xce\x37\xbc\xcb\xfa\x81\x99\xec\x8a\xdb\x2b\xfe\xad\x58\xaf\xb9\x0c\x10\xe8\xe3\xd9\x90\x5d\xa9\xac\x2f\x12\x57\xd7\xf1\xe8\x23\x7f\x96\xdb\x38\xfa\xde\x88\xc8\x79\x34\x82\x21\x45\x2d\xf6\xd6\x42\xcd\xde\x22\x84\x43\x5f\x6f\xa3\xac\xce\x3f\xd1\x95\x8a\x02\x29\x27\xe0\x3c\xea\x5f\x1c\x93\xf3\xde\x7e\xd7\x1d\xfb\xf6\xc1\x6e\x9d\x06\xf6\xec\xaf\xc5\x4b\xef\x64\xdb\xb7\x35\x40\x9c\x6e\xe1\x40\xee\xd1\x69\xf6\x29\x33\xc9\x9e\xa9\x4c\x12\xe2\xd2\x32\x27\x9e\x53\x6c\xd1\x28\xd2\x52\x00\xb5\x98\xda\x43\x52\x3a\x74\xaf\x1f\x22\xcf\x2a\xef\x44\xdb\xd8\xa1\x02\x7b\xbb\x3a\x25\xab\x26\xab\x52\x49\x6e\x7f\x67\xc3\x29\x21\x54\x61\x7f\xa0\x9a\x17\xe8\x94\x12\xff\x6b\x02\x55\x92\xc8\x09\xd0\xf4\xbc\xbc\x80\xed\xf6\x9e\xaf\x6b\x5a\x55\xa2\xc8\x1f\x83\x17\xe5\x72\x22\xaa\x1f\x81\x7e\x7a\x6f\xa9\x05\xbb\x51\x19\x02\xfb\x4a\xfe\xe1\xec\x83\x04\xdf\x7a\xa7\xa8\x5f\xce\x5e\x6a\x87\xdc\x89\x9b\x1a\x3f\x60\xdf\x1b\xf4\x7e\xf9\x4e\x92\x38\x0b\x8e\x8f\x2d\xf0\x56\x02\x36\x28\x2d\xd8\x1e\x0d\x97\x06\x38\xf2\x76\x48\xa9\x02\xc4\xa1\xe2\x72\x7a\x3c\x4e\x19\x2b\x1c\xe3\xab\x90\xb6\xff\xba\xe5\xf2\xd9\x6e\x6f\x6e\x7d\x5d\x0a\x88\x87\x57\xbd\x59\xff\x2a\xe0\xb8\x54\xf5\xa1\x66\x09\x81\x8a\x07\xb4\x46\x9e\x59\x34\xf3\x2d\x9b\xf8\x1c\x0e\x6c\xcd\x6e\x7a\x90\x83\xbf\x54\x87\x8a\x83\x5d\x76\x75\x3c\xc6\x25\x7e\x36\x24\xbc\x74\x92\x18\x84\xd3\xce\x1a\x65\xd4\x31\xcc\xcd\x72\xe8\x01\xac\xcb\xe7\x28\xe0\x46\x05\x79\xaa\xa9\x22\xc7\xa3\x71\xee\xef\x35\xfc\x4f\x53\x48\xa3\xe3\x34\x7d\xaf\x18\xb6\x1e\x21\xaf\xcf\x42\xf9\x67\x78\xdc\x9e\xed\x0b\x6d\x84\x65\x9c\xcf\xd0\xad\x10\x70\x35\x67\x85\x3c\xe3\x1f\x45\x05\x59\x94\xe4\x09\x19\x7c\x64\xc3\xe9\x49\x4d\x8a\xf5\xfa\x8d\xfa\x16\xcd\xd5\xd3\xf4\x77\x11\xfc\xb8\x1b\xc0\x55\xf6\x0e\xdc\xe1\x30\xb7\x6c\x76\x02\x12\x2c\x5e\xd2\x1f\x8a\x1f\x1c\xd0\x2f\x2d\xbd\x73\xcf\x03\x78\xab\xc4\x55\x05\x50\x4e\xa5\xeb\xc8\xa8\x05\xa9\x71\x48\x53\xd5\x60\xc6\x0e\xf7\x80\xf9\xfd\x61\x93\x33\x76\x68\xb3\x42\x69\x9a\x55\x70\x6c\x34\x8a\x81\x93\x01\x47\xf1\xb5\x40\x20\xc9\xb6\xcd\x7a\xcc\x72\x36\xbe\xe6\x8d\xaf\x60\xe7\x67\x96\x24\x5f\x98\x25\x35\x18\xab\xa3\xf3\xc1\x52\x53\xcb\x68\xf1\x0f\x67\xaf\xec\xde\x02\x79\xb0\xad\x7d\x6e\x26\xab\x2d\xa0\x53\xda\x30\x1c\x81\xb9\xf6\x61\xe0\x92\xa2\x3c\x91\x56\xdb\xdd\x88\xb9\x91\xec\x19\x36\x43\xee\xbe\xc5\x6e\x40\xef\x0c\x9d\x12\x57\x88\xdd\x52\xaf\x24\x28\xf1\xa4\xe9\x37\x22\x53\x34\xb9\x02\x31\x21\xda\xc5\x3d\x93\x2d\xe0\x11\x72\xa7\x02\x8f\x05\x25\xd4\x48\xad\xd9\x33\xbb\xd3\x32\x1e\xc0\x0d\xd6\x4a\xfa\x6b\xe1\xf1\xc8\x1b\x98\x07\x21\x02\x1d\xe6\xda\x02\xdd\x42\xca\xda\x9d\xcb\x94\xbf\x60\x51\xe5\xf8\x4b\x98\xbd\x03\xec\x0a\xf4\x7f\xdf\x7f\xfc\x37\xf7\x10\xd7\xd9\x81\xb6\x86\xa8\xd6\xc9\xb4\xbd\x2a\xaa\xea\x87\x62\xc7\xed\xde\x06\xa8\x28\xfb\xc3\xd9\x57\xde\xe2\x17\x97\xeb\xf0\x7b\x55\x55\x91\xfb\x55\x2c\xf8\x7c\x75\xe1\xe6\xec\x7c\x35\x1a\x11\x63\xab\x5c\xf9\x7b\xce\x40\x05\xf6\xf8\x7b\x9e\x1d\x80\xe5\xa5\x7f\x17\xd9\xc1\xb3\xbb\x4f\xd6\x6b\xcb\xec\x1e\xa8\x0a\x3e\x96\x14\xdc\xe8\x3f\x80\x34\x16\x8e\x99\x87\xaf\xab\x3b\x77\xe8\x79\xd1\x13\x42\xae\x32\x53\x3f\xf8\x82\x3e\x25\x8f\xdd\x10\xf2\x85\x5e\x3a\xee\x19\xce\xda\xe8\xe9\xe5\x59\x03\x68\x06\x18\x40\x5b\x77\x15\x59\x54\x01\x58\xc7\x64\x55\x8a\xfd\x8f\xaa\xea\x1a\x4b\xf5\x43\xd6\xb8\xea\x1a\x7e\x7f\x3f\xb6\x84\x87\x08\x93\x19\xc1\x63\x7a\x63\x10\xbb\xa3\x24\x5b\x68\xdf\x3b\x3b\x8e\xcb\xc1\x3b\x91\x35\x42\x9a\x15\xd7\x06\xcf\xa4\xcd\xca\x6b\x3f\x68\x7d\x5a\xd9\x3e\x6e\x21\x96\xe7\xce\x29\x96\x5d\x85\x76\xe6\x60\x61\xba\x61\x83\xed\x5a\x17\xe4\x78\x1e\x31\x1e\xd3\x19\x21\xb1\xeb\xe9\x57\x41\x54\x14\x4d\x97\x9f\x2d\x70\xc0\xec\x85\x4d\x8a\xe9\x3a\xdb\xeb\x08\x15\x8f\x3c\x30\x95\xad\x07\x7b\xe9\x2b\xa8\xcd\x9c\x65\xd4\x98\x37\xb2\xe5\x89\xda\x29\x60\x47\x45\x4a\xc2\x17\x72\xe9\x80\x55\x8f\xc7\x4c\x47\xec\x94\x8d\x09\x02\xab\xa8\xb1\x2f\xeb\xc6\x9a\xc9\xc6\x12\xad\xb6\xf3\x1b\xcd\x9e\xf3\xe0\x9d\x1f\xaf\x02\x69\x0a\xee\x95\xe3\xa0\xc6\x95\x49\xfa\x2c\x46\xb5\x32\xf8\x80\x38\x39\x9a\x30\xa7\x69\xf0\xfe\x7e\x16\xd9\x93\xb9\x3a\x56\x5b\xaa\xc0\xbb\xae\xfd\x55\xb0\x29\x03\x4e\x04\x85\x23\x06\xae\x50\x55\xc7\x06\xbb\x31\xfe\xd2\xa9\xf3\xf3\x9e\x2b\x20\xc7\x9b\x9f\xbb\xf6\xe9\x08\xcd\x1f\x2a\x38\x1e\xb3\x62\x22\xe4\xaa\x3c\x54\xe2\x06\x14\x51\xe6\x18\x71\xc1\x4c\xee\x7e\x19\x62\x89\x0c\xac\x09\x70\x5e\x1b\x5d\x4e\x0b\x7f\x33\x1d\xea\xe3\x71\xe8\x2b\x89\x18\x08\x12\xbc\xbc\xb9\x4a\x01\xe4\x38\xaa\x12\x34\x5b\xe6\x36\xfc\x12\x6a\x34\xea\xd2\x90\xf3\x4c\x82\x4b\xec\x7a\x8a\xdd\xf1\x54\x38\x47\xe1\xd4\xb9\x13\xb4\xe9\x49\xb0\x29\x3e\x93\x27\x00\xa7\x2d\x08\x2d\xff\x3f\x19\xb1\xcf\x6a\xfc\xe7\x0d\xd6\xe7\x8c\xd5\xe7\x4f\xd0\x03\x03\x16\x46\xca\x26\x1d\x1b\x5a\xf7\xa5\x1e\xc2\xb1\x69\x0e\xa2\x65\x7c\x0b\x42\x0f\x6c\x66\x99\x81\xc8\xa2\x91\xae\x2c\x37\x8e\x41\x5e\x33\x7e\x94\x1d\xe6\x22\x47\xaf\xe6\xf5\x39\xb4\x66\xd3\xf3\xf5\x45\x24\x94\x58\x47\xc0\xdc\xd9\x96\x55\x8b\xf5\x12\x5c\xc3\x67\x1b\xf6\x5a\x66\x25\xdd\xba\x01\x21\x64\x7e\x48\xd3\x6c\x6b\x09\x0f\xa6\xde\x84\xb6\xda\x5f\xa3\x15\xc9\x21\x52\x9c\x40\x49\xc6\x56\x88\x95\x95\x8d\xca\x6c\x23\xb6\x74\x53\xcb\x28\xb2\x2d\x2b\x5d\xa5\xae\xfc\x11\x5b\x79\xe9\xdc\x16\x25\x1c\xd8\x98\x2a\x6a\xcc\xf1\x98\x61\x1c\x5b\x51\xdb\x2e\x7b\xbb\x8b\xaf\x72\x5b\xe7\x4a\xf5\x0c\x53\x8d\xee\x4d\x76\xaa\x80\xdb\xfb\x51\x66\x15\x21\xb4\x04\x36\xcf\x06\x95\x36\xa8\x24\xc8\x85\xee\x99\x53\xfe\x19\x1e\xb0\x07\x3b\x7a\xd3\x9c\x81\xf1\x63\x1b\x7d\x73\x39\x4d\xd3\x2a\xea\x7b\x63\xa0\x9d\xc0\x71\xb1\x5e\x62\x5f\xd1\xc3\x79\x67\x6d\x40\x02\xec\x27\x3e\x4c\x20\x5f\x37\xa8\x4b\xbd\x81\xe2\xf6\xce\xcc\x87\x0c\xdc\xaf\xda\xf1\xe2\xbe\x26\xb6\x3f\x3e\x74\x6a\x8e\x46\x26\x3e\x35\x9d\x07\x0d\xed\xc4\x4d\xda\xed\x17\x0d\xcd\x85\x2b\x96\x3f\xc2\x5a\x37\x2d\xd0\xdb\xc0\x33\xcd\xc0\x99\x76\x0a\x07\x39\xd6\x34\xe7\x88\xa7\x1e\x9a\xf5\xa4\x01\x0c\xde\x23\x77\x63\x66\x01\x57\xb0\xea\x5d\x32\xe2\x13\xb1\x6e\x41\xe7\x00\xb9\xae\x85\xd3\x53\x70\x4c\x02\xb6\x41\xd1\xa4\xc0\xf9\xe4\x7c\x7d\x7c\x27\x32\x6d\xcf\xa3\x70\x20\x89\x13\xde\x8b\x25\x73\xe7\x51\xab\x02\xf8\x94\xb5\x50\xad\xcd\x14\x74\x29\x94\x46\x0a\x25\x17\x62\xe9\xc4\x55\x05\xe1\xb9\xcf\x57\xb1\xe9\x79\x75\x51\xd4\xf9\xaa\x7a\x5a\x4a\x56\x2c\xaa\x25\x3d\xb0\xe9\xf9\x21\x98\x5d\x9c\x8f\x46\x07\x7b\x0b\x57\x8b\xc3\x32\x9c\xd3\xa5\xdf\x01\x5e\x3d\xee\x8c\x0f\x54\x98\x7e\x58\xf1\x85\x3d\x8a\x17\x62\xc9\x8a\xc8\x11\x67\x18\xf8\xaf\xa3\x37\x49\xde\x3e\x12\xe3\xb3\xbe\xeb\x8e\x1a\xfd\x50\xe3\xfc\xd7\xa2\x9d\x8c\x93\x41\xf3\xe6\x03\x33\x5d\xd7\xf8\x3e\x3a\xee\x3f\xbb\xfc\xc6\x45\xa8\x55\xbe\x89\x0a\xff\xa9\xc9\x36\x36\x29\xf2\x78\x96\x4f\xeb\xa4\xbf\xdf\x93\x14\x4f\x8b\x46\xd2\xa7\x2d\xe7\xe4\xb1\x08\x6a\x6c\x1a\x9f\xe0\xe6\x77\xc8\x74\xdb\xa5\x2c\x77\x2f\x2c\x14\xf8\x09\xfc\xa9\x2c\x07\x81\xb6\x43\x14\x9d\x3b\x93\xe3\x11\x7a\x30\xfe\x49\x3a\x60\x15\xef\xfa\x66\xac\x10\xac\x07\xb3\x18\x45\x85\xa5\xca\xc7\x23\xf4\x62\xfc\x3b\x24\xf7\x1a\x6b\xf6\x9a\x2f\xd6\x63\xbb\x4d\xea\x3e\xfc\xd0\x32\xb0\x07\xbd\xa5\xd6\x7c\xcb\x70\x2e\x08\xea\x3d\xc2\x46\xaf\x11\x99\x40\x20\xa8\xb0\xe9\xeb\x3b\x97\xf7\x37\x38\xc7\x7e\xe4\xd0\x3a\x77\x86\x3e\x95\xf6\xb8\xf7\x0b\xf5\x62\x0a\xee\x13\x59\x08\xe8\xe1\x08\xbf\x8b\xa7\x06\x1a\x3e\x9c\x46\x9c\xff\x8b\x6e\xf4\x2c\x8a\x7e\xde\x75\xf5\xc7\x90\xf7\x23\xb4\xb0\xfd\x56\xed\x7e\x17\xe4\xa1\x5d\x59\xef\x48\xd0\xf7\xec\xf4\x1e\x53\x1c\xc2\x5e\xc4\xe9\x9d\x12\xba\xb2\x93\x75\x70\xcf\x67\x38\xb5\x61\xbf\xda\x19\x16\x84\xae\x31\x89\x51\x54\xe2\x64\xd6\x09\x7e\xb7\x09\xd0\xe7\xe3\xea\x92\x4d\xd3\x74\x7d\xc1\xa6\xc7\xe3\xea\x02\x7e\x5f\x32\x18\x47\xfc\xaa\x1b\xd5\x5c\xc5\x69\x2a\x5a\x5b\xc0\xd7\xa6\xc9\x25\x9b\xe6\xd1\xd7\x94\x1c\x8f\x58\xcd\x7f\xb2\x30\xe8\x9d\x24\x17\xbe\x38\xff\x3d\x0d\x5e\x27\x87\xd3\xf8\x46\xf3\x47\xf3\x00\x3a\x37\x0c\x66\xfb\x9c\x70\xbf\x31\xc6\x35\xb0\x43\xad\xf1\x1a\xf2\xff\xdc\xd8\x8b\x7e\x5e\x25\xfb\x03\x40\x83\xfd\x5a\x62\x4c\xce\x4d\x0e\x30\x0e\x75\xd6\xaf\x22\xca\x73\xd9\xb8\x76\x06\x4c\xa7\x18\x7e\xc2\x9f\x01\x20\x08\x91\x51\xa2\x4f\xe2\x51\xf8\x66\x40\xfd\xa3\x59\xdd\x82\x6f\x1b\x8d\xff\x98\xa6\xa6\xbd\x14\x75\x87\xf9\x6d\x1c\x2d\x62\x93\x65\x12\x4e\x96\xee\x2e\x8c\x38\x37\x24\x2a\x61\xfc\xf1\xec\xf2\x19\x6a\x11\x62\x9a\x4e\x7d\xda\x34\x95\x9d\x69\x47\xa1\xe3\x2f\x1e\xc0\x3e\x9a\xce\xd0\xa1\x5f\x62\xc6\x1d\xeb\x86\x87\x62\x77\xb1\xd4\x8d\x2d\x01\x03\xe4\xc7\x06\x72\x22\x98\x02\x7d\x2d\x1d\xac\x42\xe3\x0a\xa7\x03\x77\x67\x59\x48\x7d\xdf\xaa\xb4\xf5\xb5\xf8\xdf\xba\xe3\x6d\x7a\xd6\x18\xef\x98\xb6\xd9\x81\xb5\xa4\x39\x8a\xbe\x87\xd4\x0d\x45\xdf\x40\x8a\x06\x73\xe4\x86\x42\xc0\x55\xc4\xfe\xf5\x5c\x94\xdd\xb3\xa2\x77\xa0\x01\x3f\xab\xaf\x87\x24\x4c\x81\x88\xa6\x40\xa8\xec\x83\x24\xf4\xc3\xbf\xac\x39\x70\xef\xbb\xec\xa0\xd6\xa3\x9a\x9e\x3b\x7f\xca\x2d\x89\xc7\x68\xc4\x49\x1c\x0e\x5e\x15\x51\xc6\x37\x68\xa9\x0f\x90\xd3\xa9\xd9\xc8\x9e\x87\xd5\x86\x8e\x93\x93\xc8\xc0\x82\x01\xef\xfe\xb0\x27\xbf\x90\xec\xd5\xe4\x05\xe0\x0b\xdb\x31\xef\xbb\x36\x46\x3b\xe7\x4c\xc8\x33\x4d\x74\xdb\x42\x01\x3c\x11\xdb\x5a\x16\x72\xc9\x80\xfb\x1b\xb4\x35\x33\xa4\x5a\x73\x66\x22\x89\xd6\x3f\x43\x15\x3f\x8a\xcc\x90\x8b\xcc\x69\x56\x80\x14\xb2\xe9\xec\x09\xa0\x4e\x1b\x48\xd1\xe0\x13\x8e\x23\xd7\xae\x23\x42\xf4\xab\x7f\xf7\xf2\x8a\xba\xee\x81\x31\x30\x23\xee\x81\xd1\xb3\x65\xee\xb9\x14\xa6\xd3\x27\xc2\x4d\xfd\x54\x65\x0d\x35\x5e\xca\xa1\x0b\x41\xb7\x23\xf1\x1e\x69\xf3\x33\xcd\x4b\x40\xc2\x3e\x4f\x06\x7c\x12\x01\x6c\xdb\xd3\x78\xc4\x12\x74\xf0\x33\x06\x24\x94\xb3\x71\x32\x32\x1d\x34\xef\x18\x4f\x26\xd9\x7f\x3c\x07\x2b\xe8\xe0\x73\xc6\x15\x83\x6e\xa5\xce\xe2\xfc\x4d\xcf\xb2\x8d\xfc\xbf\xdb\x5b\x6a\x90\xb6\xf3\xa2\x3a\x68\x4e\xdf\xab\x0c\x10\x58\xe8\x02\x3b\xb3\xf4\x03\x18\x5d\x23\xdc\xc3\x2b\x26\x88\x15\x57\x63\x3f\xa6\x76\x93\x7c\x21\x09\xfd\xe2\xc1\x4d\xd2\xa7\x42\x13\x1e\x1a\xbd\x7b\x1d\xff\x70\x8d\x3e\xde\xd8\x1b\x91\xe9\xe8\x41\x5e\xa6\xa9\x69\x7a\x8f\x10\x31\x2b\x2b\x88\xb1\xfc\x37\x94\x60\x49\x7e\x43\xdc\x37\x30\x41\xe2\x9d\x79\x92\xe2\xdc\x49\xbb\xe7\xaf\x5f\xa5\xf3\x31\xf4\x5a\x64\xba\x76\xd7\x34\x05\x6f\x95\xe0\xeb\x4b\xa1\x26\x44\xc7\x60\x1e\x16\xaf\xa6\x63\x45\xa8\x41\x35\x8d\xe0\x10\xe8\x04\xfa\xc1\x5f\x7c\xfe\x63\xfe\xd6\x79\x04\x6e\x8c\x54\x34\x2a\x83\x28\x55\xfd\x20\x2e\x43\xeb\xc7\x7c\x20\xd3\x34\x83\x3e\xf8\x86\x8f\x24\x68\x68\xfc\x66\x32\xd3\xf4\x7d\xd0\xef\x00\xe8\x9f\x32\x43\xcb\x96\x13\x21\x8e\x2e\x7c\xe3\xe9\x42\x87\x22\xa0\x54\x94\x7f\x34\x8c\xd3\xf7\xd8\x06\xea\x95\x0b\x5d\x2b\xf5\xdc\x39\x1d\xca\x67\xd1\x8e\xff\xcd\x19\xd7\xc7\xa2\x5a\xb8\x25\xd5\xfb\xf7\xfb\xb6\x78\xf5\x3c\x82\x46\x44\xd5\xbc\x47\xd9\x3c\xff\xc7\xf1\x6d\x35\x22\x00\x9e\x90\x5d\x15\xab\xf7\xd7\x5a\x1d\xe4\x7a\x4c\xe6\xd9\xdb\xd7\x23\xf2\xc8\xdf\x30\x11\x2d\x91\x33\x1e\x2c\x8f\x34\xaa\xf2\x91\x91\x0f\x72\x01\x23\x1d\x69\xef\x79\x50\xd8\xc5\x6c\x39\x4f\x9c\xcb\x6d\xe7\x4d\x02\x7f\x3b\x45\x15\xb3\x90\xcb\xb9\x41\x92\xf7\x78\x99\x47\xfe\x3b\x12\x68\x63\x45\x92\x91\x8d\x19\xd9\xcf\x2f\xec\x27\x71\xaa\xb2\x96\x42\x1e\x8f\xf0\x7f\xc4\x92\x33\x4c\x56\x6f\xc2\x7a\x3c\xfe\x12\x3b\x61\xb9\x2a\x0b\xf9\xde\x4e\x49\x4d\xce\x42\x90\xbb\xd4\x44\xf8\x91\x7e\xdc\x22\x14\xca\x2c\x72\xb9\x79\x86\xc0\x91\x75\x09\xf3\x76\x40\xe6\x40\x26\x49\xee\x34\xa9\xeb\x66\xfd\x35\xb2\x85\x6a\x6e\xce\xd9\x14\xa5\xf6\x12\x40\x6e\xa7\xcb\x56\xf5\x9a\x40\x25\x7e\x03\xf2\x09\x20\xc9\x86\x67\x67\x83\x5a\xc8\x4e\x5f\x35\x3c\xbc\x74\x1e\x4e\x6d\x69\x67\xc9\x08\xa1\x8f\x47\xc9\xd9\xa6\x10\x25\x5f\x9f\x19\x75\x56\xac\x6f\x0a\xb9\xe2\x67\x15\xa8\xca\x4f\x92\x68\x6d\xfd\x2d\x6e\xb4\x0f\x14\x11\xa8\x21\xd4\x9a\xaf\x9d\x06\x24\x97\xeb\x7c\x0d\xaa\x97\xa8\x23\x99\xaf\x27\x4e\x97\x32\x23\xd4\x6e\xeb\x5c\xa1\x3d\x88\x43\xda\xe4\xf3\x12\x74\xdf\xd4\x9a\xd3\x15\xc9\x57\x27\x78\x2f\x52\xb4\xc0\x63\x86\x56\x0c\x23\x07\x86\xbd\xe0\x59\x41\xbd\x3b\x54\x7a\xb0\x3c\x71\xe1\xde\xc3\xec\xdd\xa6\x32\xf5\xf3\xb2\xb6\x37\x19\xdb\xf3\x6b\x69\x6f\x14\xfc\xa3\xa1\x1d\x30\x1b\x94\x58\x49\x90\xa5\x2d\x96\x28\x0b\x5d\xa3\x7a\xfb\x64\xb5\x25\x69\x3a\x5c\x4f\xb8\x2a\x33\x72\x4e\x5c\xe7\x18\x76\x4c\xb1\xbf\xca\xac\xa2\x6b\xba\x02\xb0\x05\x07\xe1\x2a\x40\xb5\x21\xe8\xbf\xce\xcb\x5c\x64\xd1\x30\xfe\x3d\xba\x04\x82\x98\xd4\x09\x6d\xf5\x24\x86\x6e\x77\x5b\x04\x65\x7e\x75\x8b\xe3\x24\x75\xff\xa7\x74\x85\xd4\x20\x74\xb5\xaf\x97\x74\x1b\x15\x14\x63\xc1\xa7\xe9\xc2\xe6\x46\x40\xe6\x04\xdd\xc8\x7e\x2f\xb3\xbf\xd8\xdb\xb1\x24\x54\x91\xf3\x7a\x00\xec\x4e\x5a\xa3\xd6\x79\x28\xab\x8b\xc9\x3e\xcf\x2a\x36\x9c\xd1\x22\x4d\xb5\x40\x1e\x9d\x42\x26\x82\xff\x82\x5f\x56\x5a\x3a\x17\x23\x25\xfb\x5e\x66\x7f\xb5\x15\xae\xa9\xa4\x5b\x5b\x29\xdd\xe2\xc8\x6c\xd8\xd6\xd2\x16\xbb\x52\x07\x1b\x98\xa3\x64\x37\x4e\x46\x59\x39\xdf\x8c\xec\xd6\x2f\xf3\x0d\xf2\xe1\xc3\xea\x78\x5c\x0d\x59\xe9\xe0\x61\x0f\x17\x6e\xb2\xce\x89\xc8\x0e\x2c\x78\x25\xf4\xeb\xf3\x30\xfa\x92\xff\x3b\xa1\x2b\x32\x58\xb1\xf2\xd4\x98\xd8\x53\x28\x60\xaf\xaa\xf3\xa6\x4b\x7a\x28\xc1\x4e\x3e\xe6\x1f\x88\x6c\x6f\xa7\xff\xc0\xf6\xd1\xfe\xe6\xa2\x6d\xeb\xb8\xf0\x2e\x8b\xec\x12\xfe\x86\xcb\x25\x55\xec\xee\x34\xc0\xc5\xe0\xd7\xa5\xf7\x72\x45\x75\xc7\x89\x94\x7b\xa8\xa2\xe0\xaf\x43\xc5\x36\x85\xe8\xa0\x97\x47\x6e\x4e\xcb\xe2\x36\x62\x88\xc3\x02\x6b\x27\x59\x14\x4b\x5a\xb2\x99\x5d\x3f\x8d\x76\x20\x54\x7c\x0f\x64\x7e\x2d\x11\x2b\xcf\x0f\x17\x1e\x74\x57\x32\xb1\x28\x97\x03\x79\x09\x77\x0d\xc7\x41\x94\x74\x46\x39\x15\x8b\x72\x34\x5b\xda\x35\x54\x8e\xd8\x63\x1a\x4d\x82\xbd\xb6\x9e\x40\xce\x26\x36\x59\x35\x51\xfb\xe2\x9f\x07\x4e\x42\x76\x4d\xcb\xb1\xa6\x1c\x1c\x29\xb9\xe6\x5a\xc6\x8d\xd0\x92\xe9\xd1\x63\x94\x97\xe3\x5d\xf7\xa2\x3c\xd7\x23\xf6\xd8\x4b\x53\xc4\x42\x8f\x66\xcb\x01\xfe\x63\x99\x9a\x2b\xbb\x46\xf2\x24\x21\xa3\x56\x59\x27\x3b\x8e\xfe\xc8\xb8\x03\x63\xa4\x2a\x17\x14\x9e\xce\x79\x95\xab\x89\x3b\xb8\xe0\x09\xdd\x9f\x5c\x73\xe7\x6d\xb3\x9e\x69\x23\x1a\x8e\x34\xd0\xaa\xa9\x3a\x1e\xfd\xaf\xc5\x74\x39\x64\xad\xb9\xf7\xe3\x06\x74\xea\x8d\x00\x37\x8e\x82\xb9\x35\xd3\xb8\x2e\x3e\xbc\xc9\x4a\x99\x45\x6b\x46\x92\x1c\x20\xb5\xa0\x2a\x30\x70\x07\x8b\x32\x6c\x06\x13\xee\x07\x15\x13\xd7\xc5\xb9\x8b\xfb\x1a\x3f\x59\x88\xc8\x9b\x11\x60\x02\xd8\x48\x89\xce\x30\x34\x63\xde\x75\x99\x56\xd2\x08\xb4\x1d\x8c\xbf\x47\xa3\x00\x5d\xe3\x6a\xaf\xc7\x4d\x77\x76\x48\xd4\x15\xf5\x10\x19\x83\x85\xef\xb4\x19\x98\x02\x72\x22\x8f\xc7\x29\x75\x84\xeb\x2f\x32\x13\x54\x93\xf3\xa1\xf2\x24\xeb\xaf\x36\x44\xd9\x93\xa0\x91\xcb\xf2\xe0\xdf\x48\x42\xbf\x89\x39\x4d\xf0\x55\xa3\x7a\x4c\xef\xde\x08\xa7\x74\x87\xcc\x8d\x60\x77\x27\x2a\x44\x03\xc7\x48\x89\x1a\x90\x1b\xdd\x82\x56\x7f\xea\x02\xfd\x47\x4f\xc7\xa6\x41\x85\xe7\x42\xe4\x52\x04\xee\x62\xc1\x97\x96\xef\x5e\xf0\x25\x0b\x60\x4c\xd9\xa3\xb7\xaf\x47\x8f\xae\x61\x5b\x7c\x91\x26\xb1\xce\x41\x21\x62\xf9\x4d\xad\x16\x16\xde\x65\x68\x35\x4f\xf6\xc5\x7a\x2d\xe4\xf5\x18\xfc\xab\xe6\x67\x93\xd9\xfe\x63\x82\xca\x38\x54\xb2\xbb\xbd\xe6\xb9\xcd\xb8\xd7\x3c\xa1\x0b\xdd\xd4\x20\x43\x98\x47\xea\x7c\x84\xe5\x9a\xae\x54\x99\x4f\xe9\x5e\x55\xf9\x94\xae\x76\x39\xa7\x60\xee\x0e\xa6\x4f\x55\x9e\xa9\xe3\xb1\x02\x7d\x98\x6b\x6e\x10\xd4\xbd\xe5\xe1\x8a\x9c\x06\xc6\xdf\xab\x62\x33\x7e\xe4\x82\x58\x06\xde\x38\xcc\x1c\xff\xb9\xdd\x90\x4f\x49\xad\xd2\x50\xd0\x92\x09\x17\xbf\x10\xe3\xd9\x32\xc7\x13\x7f\x20\x61\x49\x4c\xa9\x44\xa5\xae\xf7\x5c\xb2\x4a\xd0\x5f\x63\x17\x56\xae\x5e\x7b\xe9\x2e\xd8\x13\x91\x95\x04\x3d\x0d\x84\x0c\x07\x11\x7d\x51\x50\xdf\x9f\xec\x8a\x3d\x5b\x2c\xe9\x5a\x64\x25\x95\x14\xf6\x7d\x49\xcd\x30\x72\x91\xc3\x3f\x1a\xae\x65\x51\xbe\xc4\xe2\xd7\x69\xfa\x06\xca\x26\xb4\x6c\xef\xa8\x66\x80\xa7\x35\xd0\x08\xf7\x9b\xfd\xa1\xee\x49\x45\x65\x4d\x9b\x92\xa4\x53\x7a\x4d\xad\xa0\xb8\xf0\xd5\x53\x60\x88\xa3\x51\x3a\x2c\x94\x50\x10\xc0\xed\x8a\x7d\x50\x68\xc5\x2f\x38\x87\xa6\xd4\x8e\xaf\x5b\x0c\x13\x7b\x89\x96\x6b\xb4\x2b\xfd\x67\xdf\x38\x63\x69\x62\x9e\x85\x29\x87\xd1\x84\x02\x69\x1d\x06\xae\x57\xd9\xdd\x89\xe4\x59\x33\xa5\xd3\x88\x8d\x02\xe2\xc7\x48\x1b\x40\x68\xd6\x2a\xa7\x99\x07\x83\xa2\x5c\x77\x27\x64\x1a\x2a\x2f\x23\xaf\xbb\x03\x06\x5e\xb6\x33\xe7\xd9\xa3\xb7\x57\xab\xdd\xd8\x14\x57\x6f\xaf\xdc\x46\x3e\xd4\xca\x55\xe4\x78\x3c\x4c\xfe\x79\xe0\xfa\x16\xb1\x32\x94\x4e\xd3\x56\x40\x96\x4c\x30\x7f\xe2\x56\x98\xaf\x23\x14\xc2\x12\x4c\x00\x2e\xd4\xc6\xdb\x62\xf5\x3e\x09\xf7\x98\xbf\x82\xfd\x80\xe6\x72\xed\x3d\x02\x05\xb6\xd6\xd2\x2c\x4e\xf0\x5f\x5d\x58\x77\xc2\x5b\x09\xba\xf3\x4c\x65\x4d\x43\x2a\x11\x71\xa6\x15\x2d\xfd\x4b\x18\x0e\x90\x83\x63\xc3\x1d\x0e\x1b\xcf\xd1\xa4\xb3\xbb\x3f\xd3\xd3\xa3\x6b\x5a\x0a\x92\x1b\xba\x02\xe5\xc7\x1e\xff\x8c\x14\xf4\x8a\xc5\x26\x5b\x79\x9b\x4c\x72\x77\x55\x9b\x7a\xaf\x34\x2f\x0c\x7f\xea\x3e\x9f\xeb\xe2\x1a\x6d\x92\x03\x65\xd8\xa2\xeb\xcb\x15\xcc\x0f\xfa\xd5\xd9\x22\xda\x04\x5b\x01\xae\x63\x66\x08\xdd\xb3\xcd\x7c\x83\x57\xd2\xf1\x36\x0f\x6f\xde\xf0\xf8\xb5\x77\x2f\xe2\xed\x3a\xdf\xf0\x8f\x20\xa1\xc9\x0e\xee\x4e\xbb\xa5\xdb\xd1\x9e\x90\x81\x4a\xd3\xe2\xe2\xbf\xcf\xaf\x1a\x0b\x3c\xd2\xb8\xdd\x2d\x09\xc9\x9b\xb1\xce\xe7\xb6\xdb\x26\xdc\x59\x9e\xed\x55\x35\xda\x53\x88\x5b\xa9\x72\xc4\xf6\x2e\x8c\xed\x81\x6f\xdd\x78\x67\x9d\x9b\x6c\x3b\x62\xfb\xd1\x8c\x26\x6f\x4d\xc2\xd8\x66\x31\x5d\x62\x9b\x6f\x70\x50\xdb\x20\x9c\xd7\xec\x66\x0c\x45\xfe\xdb\xcd\x79\xb6\x63\xf7\x35\x74\xa7\xb2\x6b\x42\x93\xb0\x12\x49\x4b\xc9\x57\x2b\x70\x47\xb7\xd7\xbc\xf2\x96\x88\x09\xa1\xbb\xae\x2a\xb0\x41\x10\x9c\xb7\x08\x33\x08\x5d\xb9\xae\xdd\xdf\xbc\xd5\xae\xcd\xc7\x63\xf2\x56\x86\xf6\x3f\xd0\xb0\x3a\xcb\x3c\xf9\x9f\xff\xe3\xff\x48\xf2\xe4\x7f\xfe\x8f\xff\xbb\xc7\x7d\x66\xa7\xc5\xa1\x2d\x50\x85\x6f\xcb\x0c\xda\x62\x2b\x6c\x8c\x56\xbf\x23\xcf\x0c\xb2\x7e\xa2\xe0\x7f\x75\x05\xf8\xe6\xf4\x2f\x85\x19\x2e\x05\xb0\x84\x3e\x61\x9b\x5d\x96\x00\xfc\x0d\x86\x7d\xf7\x2f\x54\x7c\x68\xee\x29\x3a\x5c\xac\xae\x7c\xe3\xd3\x34\x03\x53\x29\xbf\xe4\x7c\x0a\x78\xb9\x38\x1e\xe5\xf1\x28\x8e\xc7\xf5\xf1\x58\xe2\x4a\xbb\x65\xda\x12\x06\x90\x88\xdd\x8e\x98\x44\x54\xc1\xdb\x11\x73\x3a\xef\xef\x62\x95\xf3\xab\x25\xbd\xa5\x65\x6d\x70\x9f\xa6\xd9\x3b\xe7\xe1\xb4\xc2\x61\xe8\x1e\x10\xef\xc8\xa9\x3f\xe2\x8a\x44\x6c\x75\x29\x9a\xca\x20\xc9\x59\x42\x9b\x5a\x82\xe3\xc7\xf8\x14\x3f\x62\xfa\xdf\x1e\xcf\x81\xc9\xff\x7f\xfe\xcf\x24\xd8\x46\x83\x58\xa8\x2e\xef\x20\x1a\x02\xfd\xc0\xdf\x85\x5b\xb8\xa3\x77\x4c\xcc\xc5\x28\x39\x5b\xed\xc6\x20\xe1\x1b\x5f\x29\xbd\xe6\x3a\xc9\x93\x76\x48\x20\x4b\x07\xa6\x61\xfc\x57\xec\x30\x0a\x6f\xd2\xe7\x75\xdb\x51\x11\x26\xc8\x5c\xd7\x9e\x7f\xd9\x32\xb3\x40\x5d\x91\xed\xc4\xa8\xcb\x43\x9a\x6e\x9d\x5a\xd6\x01\xc9\xc1\xc9\x47\xb1\x55\x90\x57\xb5\xda\x3b\x80\x80\x20\x9c\xb3\xa9\xc7\x07\x02\x09\x90\xe5\xa3\x25\xa1\xa8\x05\x45\x25\xf3\x09\x7d\xb2\x03\xb3\xbf\xe2\x17\xd0\x55\x87\x29\x1f\xca\x34\x8d\x9f\x93\x06\x02\x1f\xe7\xfb\x96\x1e\x15\x84\xda\xf4\xb0\xf9\x9a\x4e\xd1\x24\xe7\xeb\xea\x6b\x9c\xf4\xb0\xdb\xd2\x34\x13\xc7\x63\x26\x58\xff\x7a\x68\x2d\x7e\x0f\x52\x81\x6b\x8f\x00\xea\x6d\x67\xef\xe2\xab\x4f\x42\xf5\x44\xac\x89\x03\xc4\xec\xb6\xa6\xe2\xe6\x67\xe9\xdd\xdc\x66\xe2\xbe\x95\x2a\x48\xbd\x69\xea\x31\x5a\x8b\xa6\x97\xd8\xe6\xcb\xa0\x70\x4e\x99\xa9\x62\xd3\xa6\xde\x02\xcc\x18\x3d\xd0\x15\x5d\xd3\x2d\xdd\x04\xbc\x27\xba\x67\x53\xba\x63\xd9\x6b\x36\xa3\x49\x42\xe8\x0d\x1e\x73\x62\x93\xdd\x30\xb6\x27\x77\x25\x3b\xb0\x15\x5b\xb3\x8a\x25\x09\x45\x8f\xac\xf4\x86\xcd\x1e\xd5\xaf\x61\xd7\xf4\xca\x32\xa6\xb7\x6c\x7a\x7e\x1b\xab\x45\xdc\x62\x13\xdf\x31\xb9\xb8\x5d\xd2\x0f\xec\x9d\x57\x48\x8c\x75\x0a\x3f\x38\x9d\xc2\x77\xee\x95\x70\x9f\xa6\x1f\xa2\xf9\x9e\x5f\xe1\x44\x7f\x20\xf9\x3b\xb7\x3c\xf7\xe1\x11\xf1\x1d\x3c\x22\xda\xbf\x97\xfb\xe3\xf1\x43\xfc\x14\xf9\x0e\x9e\x3e\xf7\x51\xb9\x64\xee\x9e\x24\xde\xc1\x3b\xe4\x3b\x78\x7a\xdc\xa7\xe9\xcd\x25\x06\x64\x37\x10\x43\x0f\xcc\x8e\xc2\x87\x06\x53\x53\xa2\x90\x37\x0a\x84\x14\x15\x4a\xc7\xb2\x6a\x5e\x8d\x92\x73\xbc\xe5\x43\xb0\x8d\xad\xb5\xdd\x1b\x9d\xcb\x56\xbe\xac\x3a\x81\x4d\xee\xd5\xe1\x7d\xd3\x6f\xd2\x34\xbb\x3e\x1e\xb3\xeb\x88\x67\xac\x53\xd1\x77\xa0\x56\xfb\x01\x89\x5d\x9a\x0e\xd7\x40\x66\x3f\x78\xbf\xcc\x8d\xb1\xc8\x86\x5b\x50\x35\xf1\x3a\x81\xf4\x83\x53\x35\xd9\xb2\x77\xc4\x8f\xeb\xa5\x1b\x0a\x67\x3f\x69\x07\x03\x5e\x65\x2d\x15\x40\x6b\x5c\x9c\x5f\x0f\xe0\x70\x7e\x3b\x62\x8f\xc9\xf5\xe2\x76\x34\x5b\x62\x6b\x0f\xd8\xb1\xeb\xc5\xed\x12\xe5\xf7\xdb\xe3\x71\x1b\x46\xbf\x2e\xe1\x2a\x5e\x21\x2b\xb0\xa0\xa0\x57\x3e\xd3\x16\x34\x1b\x51\x6f\x74\x4a\x60\x01\x5a\x8e\xcd\xa6\xca\xbc\xa2\xa3\x51\xf3\xcd\x68\x06\x3a\x94\x64\xbc\x0f\xaa\x8e\x4d\x45\x48\x5a\xa7\xf6\x86\x58\x5b\xbf\x26\xb2\x2d\x1b\xce\xc8\xc9\x76\x6d\x7f\xc9\x3c\xf7\xe3\x97\xf3\xb3\x5a\x4a\xb4\xa1\x37\xc4\x6d\x06\x67\x43\xf7\x91\xed\x47\xbb\x48\xa1\x69\xe8\x84\x84\xaf\xd8\xc7\xcb\x67\xf3\x5d\x20\x85\xcf\xc6\x7b\x92\xef\x06\x26\x5c\xe2\x32\x43\x5f\xd1\x62\x5e\x8c\xca\xbc\xa4\x2b\xba\x1f\xbd\xf2\x86\xc0\xec\x66\x7e\xc8\x93\x84\xae\x69\x05\xa3\xfd\xf1\x92\x3d\x23\x77\x3b\xe6\x0b\xb3\x45\xd1\x3d\x7b\x36\x40\xaa\xbc\x67\x1f\xe9\x8a\x25\xc9\x69\x17\x00\xd9\x14\x55\x4c\x2f\x5e\x8f\x46\x4b\x42\x0b\xa6\x44\x86\x1f\xd4\x44\x5c\x08\xc1\x83\xfe\xcc\xf7\xf2\x35\x9b\x9d\xbf\xae\x35\x28\x5e\xdb\xd9\x6c\xb4\xb6\x55\xb8\x65\x46\xb0\xe0\x59\xab\xe0\x48\x08\xb0\x6d\x9e\x72\x53\x56\x6b\x88\x83\x42\x85\xd3\x11\x4f\xd3\x24\x61\x91\x1e\xae\x5d\xa2\x96\x4c\x1e\x8f\x0d\xbe\xa9\xd7\xf3\x76\x54\xdb\x46\x3c\xfc\x1e\x70\xa6\xe7\x7a\xc1\x97\x2d\x7d\x4a\x05\x0f\x7f\x82\xdc\x65\x5d\x58\x38\xa4\x9d\xcc\x50\x1e\x49\xb1\x80\x86\xc7\x42\x2d\x74\xc5\xea\x24\x4a\x2e\x16\x64\x5c\x4e\x92\xe1\x5e\xae\xe1\x9c\x86\x68\xf8\xe5\x62\xe1\xbd\x8c\x82\xa6\x9f\x26\x4e\x8d\x5e\xce\x6d\x60\x3e\x1b\x88\xfa\xc5\xdb\x99\x4e\x09\x72\x22\xd8\x60\x2a\xc1\xc2\x85\x83\x73\x03\x79\x8d\x97\xb1\x58\x00\xd3\x96\x91\x72\xaa\xd8\x62\x09\x90\xdf\x96\x51\x51\xb5\xea\xec\x37\x32\x3b\x2c\xf4\x92\x8a\x4c\x13\x2a\xeb\xa7\x02\xb4\x90\xa9\xdc\xa4\x81\x3d\x19\x10\x44\x27\x97\x5d\xa1\xee\x4f\xe5\xde\x39\xd6\xf8\x59\xba\xcf\xad\x9d\xd0\x03\xb1\x27\x4b\x76\x88\xe0\xd0\xf7\x0c\x53\x8c\xdd\x63\x68\x6d\xcb\xe0\xed\xf4\xb2\x29\x2d\xb2\x29\x3d\x04\x80\x0c\xea\xa1\xa2\x42\x41\x76\xb8\xc5\x1f\x7c\x1c\xd2\x04\x63\x23\xb7\xe4\xfc\xd5\x2a\x2e\x68\x3c\x23\x03\x95\xad\xe9\x1a\x9b\xbf\x21\x74\x8f\xd8\xef\x50\xb4\x7b\xb1\xde\xdb\x8b\x86\x97\x30\x84\x16\xb9\xc8\x1d\x09\xb7\x8b\x15\x63\xa8\x46\x34\x63\x2c\xb4\x42\x65\x2b\xba\x42\x79\xa9\xdf\xf8\xd5\x64\xb5\x25\xa3\xed\xa8\x11\x5c\xda\x40\xba\xc1\x56\x67\xb6\x95\xb3\xb8\x95\xa4\x31\x35\xfd\x79\xed\x3c\xd1\x7b\xeb\x3b\x2c\xa6\x76\x3a\xa7\x04\xe1\xd7\xa3\x3e\x00\xb3\x1f\x7a\xf1\x59\x8d\xb7\x85\x8d\xd6\xdd\x36\xf8\xf2\x1b\x03\x38\x9a\xd1\x3d\xf6\xeb\xee\x73\x5a\x67\xe7\x63\xdb\x57\xf8\x86\x0c\x3a\xe3\x32\xd8\x5f\xce\x3a\x33\x66\x2b\x1c\xcf\xee\xe9\xe7\x43\x1b\x64\x2f\x02\x18\x10\x42\x91\xf0\x18\xfa\x80\x35\xf4\xa4\x0d\x9b\x02\xbb\xdf\xd2\x00\xe7\x0b\xd3\xb0\xef\xa2\x7a\x04\xea\xe0\xc1\xec\x3d\x7e\x42\xaf\x6b\xde\xd5\x35\xaf\x2c\x67\xa7\xb9\x64\xbc\x5d\x57\x9f\xc5\x90\x97\x4c\x2f\xe4\x72\x60\x46\x4c\x4c\x56\xdb\x83\x7c\x6f\xaf\xde\x19\xb1\x75\x0b\xaf\x7b\x20\x1a\x56\x67\x08\x03\x03\x50\x61\xcd\x57\xfd\x4e\x87\x4f\x7b\x11\x43\x81\x85\xe2\xef\xc5\x47\x8a\xf4\x79\x4f\x14\xe7\xe5\x3b\x29\x1b\xbe\x4c\xda\x54\x48\x32\x3e\x32\xe7\xfa\x42\xd6\x76\x55\x22\x06\x76\xd0\xcb\x78\xdc\xc6\x75\xa7\x7e\x03\x3d\xd0\xbf\x8b\x4c\x50\x07\x45\x9c\x34\x4c\xe9\xdd\x5b\x0d\xcc\x32\xf5\xfc\x4e\xcb\x0f\x80\xdd\x58\x96\xa9\x2e\x6f\x3d\x86\x14\xe4\x0d\x0e\x49\xba\x8d\x0f\x1a\x12\x4e\x11\xc3\x8f\x1a\xae\x99\xb8\x7a\xb7\xc6\x39\xf1\x56\xaa\xa6\xfe\xd5\x4e\xc6\x23\x63\xb9\x96\x6f\x0e\x3b\xd1\xe0\x94\x23\x9e\x42\x2a\x0c\xd7\x3f\x74\x1a\x56\x17\x61\xc7\x94\xc3\x98\x02\xe6\xac\x8e\x61\x50\xf8\x32\xd6\x48\xa4\xbb\xff\xdc\x1c\xdb\x85\xf3\xd0\xdc\x86\x44\xe3\x8e\x31\x64\x63\x89\xf7\x58\xd3\x35\xe2\xe1\x04\x62\x32\x5e\xd3\xa0\x01\x71\x11\x54\x93\x03\x1f\x66\xa8\x18\x73\x00\xa2\xf5\x3b\x0d\x4c\xf2\xa2\x36\x66\x9c\xaa\x86\x0a\xcb\x98\x15\x63\x19\xb6\x07\x63\xca\xa3\xa6\x84\xe6\xf9\xa7\x3e\xd0\x35\xa2\x32\xde\x16\x20\x2e\xce\xcc\x98\x29\x12\x74\x50\xa6\x48\x44\xf9\x18\xed\x76\xea\x51\x30\x17\x8f\xbf\xec\x14\xee\x9e\xcf\x66\xc7\xe3\xb0\x19\xb3\x98\x2e\x23\x97\xa6\x7b\x41\x82\xd1\xd4\xc2\xed\x03\xbf\x92\xb3\xca\x75\x28\xd0\x8c\x85\x3d\x21\xf6\x22\xab\xc8\x92\xb6\x0b\x6d\xac\x9e\x7b\xb6\x43\xd3\xb6\xe5\x9e\xc9\x32\xa4\x59\xb4\x59\xd6\x2d\xe2\x9f\xb3\x6f\xec\xa0\xd4\x62\x1e\xda\xdc\x4b\xed\x4d\xd0\xdf\x06\xd9\x20\x13\xa1\x29\xf0\x68\x2d\xba\x0b\x86\x29\x38\x99\xc5\x24\x6a\x9b\x6b\x92\xf3\xfe\x52\xa5\xa9\x68\x10\xaf\xcb\x2f\xa7\xf5\x78\x14\xac\x19\xf9\x6f\x8f\xbf\x1c\x3d\xfe\x92\x56\xac\x38\xaf\x2e\x9a\x51\xe7\x5e\xe9\xdd\x4d\x85\x68\xec\xf2\x8a\x56\x23\xf6\xf8\x4b\x42\x06\x22\x2c\xc3\x32\xe8\x87\xf5\xad\xbe\xd1\x48\xd2\x29\x2d\x09\x2d\x1b\x13\xe8\x8a\x65\xa2\x45\x6b\x0a\xb7\x24\x00\x9c\xe3\xf5\x5e\x94\x65\x46\x4e\x78\x2f\xe0\x63\xa6\xec\x66\x0f\x31\x2d\xc8\xc4\x61\xef\x0a\xbd\x60\xb3\x29\x89\xb5\xd9\x06\x6b\xe5\x5d\x93\xf3\x0f\x70\x72\x75\xda\xcc\xdb\x85\x8c\xbf\xa4\x5f\x12\xa7\xbe\x84\xbd\x00\xcf\x48\x48\x22\xe0\x3f\xe5\x61\x3c\x4c\xac\xc2\xa9\xd9\x95\x0a\x99\x42\xb1\x14\x0c\x59\x5a\x81\x61\xbf\x8e\x66\x74\x6a\x49\x3e\xf0\x1c\xb8\x94\x3a\x4d\x25\x83\xb0\x9f\x6d\xdd\xd1\x0e\xa2\x66\x49\x39\x93\x27\x13\xe2\xbd\x05\xf5\x87\xad\x28\x7b\x3a\x77\x39\x9b\x46\xad\x69\x0c\xfc\xa7\xa9\xf4\xff\xbe\x35\x1e\xe0\xc2\x22\xa2\xa8\xc6\x1c\x62\x05\x60\x16\xfc\x90\x71\x5a\x50\x4d\x1a\xba\xed\x8e\x8e\x15\x7d\x74\x4c\x79\x04\xb7\x1b\xc1\xa6\xf4\x5a\xb0\x57\x93\xa7\x6a\xd5\x83\x96\x1d\x56\x4f\xec\x8d\xf9\x5a\xd4\x4f\xca\xfc\xc3\xd9\x75\x7d\x19\x73\xaa\x43\xa0\x3e\xcb\xa6\xc4\x9e\x3f\x08\x59\x6d\x39\x26\x4f\xc3\x16\x8e\xdb\x4d\xf0\x89\x98\x2c\xc9\xd2\xad\x6d\xb0\x85\xf7\xa7\x6e\xd0\x18\x66\xd1\x27\x00\x7b\x38\x94\xac\x18\x00\x0b\x03\x4a\x5e\xc8\x6f\xb8\xe4\x1a\x1e\x12\xd8\x2c\x58\x84\x83\x4e\x00\xd3\xee\xd2\xb5\xe1\x99\xa6\x53\xa7\xe7\x5c\xf1\x92\xfd\x00\xa2\x38\x24\x57\x88\x9f\x00\xeb\xea\x6b\x91\xe1\x91\x60\x02\x3e\xdd\x8d\x70\xbb\x50\xad\xbd\xc7\x70\x13\xe1\x1c\xf2\x3d\x93\x1e\xdc\xcb\x70\xb9\xb6\x4d\xeb\xf3\xcd\x9f\x39\xfd\x51\x78\xd6\xb2\xf7\xdc\xca\xb2\x09\x74\xe3\xd4\xc4\x11\xff\x43\x50\xa3\xec\x1f\xfe\xd1\xe4\xfc\x44\xe8\xaf\x88\xf2\x47\xb1\xb5\x95\x22\xa7\x41\xec\xcf\x9c\x7d\x50\x59\x7c\xde\xd3\xbb\x95\x92\x95\xd1\x87\x95\x51\x3a\xbf\x16\xb0\x62\x3b\x0b\x56\xcf\xb1\x73\xb8\x8a\xc6\xf5\x34\x50\x33\xb6\xf7\xd4\x3c\x8a\x8e\x23\xc3\xcf\x51\xa0\xfc\xb4\x3e\x23\xee\xe5\x09\xa7\x6d\xf7\x64\x76\x37\xe8\x91\x77\x4d\x56\xb3\xd2\x0d\x7a\xde\x68\x16\xd5\xc4\xf3\x28\x7d\xec\x49\x83\x33\x68\x64\x24\x27\xea\x81\x9b\x7b\xb0\x47\x5f\xb9\xb1\xff\x44\x27\xfd\x8d\x19\xd0\xe1\xf9\xdc\xe4\x06\xd1\xf0\xf9\xf1\x18\x2f\x03\xef\x2c\x8b\x9c\x68\xe5\xeb\xfc\xab\xc9\xb2\x6e\xbd\x1b\x1e\x8f\xeb\x94\xd0\x80\x3d\xd8\xa8\x77\x3c\x1b\xbc\xd0\xf1\xea\x30\xce\x45\xb5\xa6\xcf\x5c\xcb\x75\xc3\x43\x36\xc1\x85\xd3\x5d\x66\x01\x50\xc6\x37\x2c\xa1\xf6\x4e\x9e\x0f\xa7\x27\x00\x25\x8b\x96\x99\x21\x00\x4f\x12\xfb\x04\xcb\xbb\x34\xe2\x5b\xd7\x2e\x4e\x41\x3d\xd2\x2b\x15\x6b\xa6\xe7\xfe\xd3\xae\x23\x2a\x71\x02\xfa\x8a\xf1\x5c\xe2\x47\xd7\x15\x9f\x8f\x13\x5a\x97\xd8\x18\x7a\x3d\x97\xb9\xc4\xa1\xd7\xf7\x0e\xbd\x73\xfe\x77\x1f\xd2\xac\x8b\xfe\x16\x60\x89\x22\xdc\x50\x93\xa6\x28\xf7\x08\x25\x60\x92\xbc\x05\xd0\xf5\x3c\xb4\xd2\x93\x43\x3f\x15\xbc\xae\xfc\x87\xc3\xee\xaa\xe5\xf0\xb1\xd6\xeb\x89\xd2\x61\x15\xbf\x88\xea\x50\x94\x5d\xa7\xc8\xde\x0b\x01\x14\xd6\x26\x25\x75\xad\x84\x82\x25\xd9\x89\xda\xb1\xf8\x5a\x1d\x1e\x00\x0f\x05\x56\x3f\xb8\x73\xbe\x2f\x19\x24\x38\x51\x6f\x15\xf6\x60\xb2\x78\xb1\x9e\xa8\x03\x33\xe9\xeb\x78\x3d\xbb\xd0\x7b\xc4\xc8\xb9\x17\x0e\x98\x97\xde\xfe\x25\x23\x31\x44\x3f\x80\xba\xa3\xc3\x79\xd8\x89\xe0\x8c\x2e\xf7\x7e\xe9\x31\x08\x3f\xf2\x84\x4b\x48\x74\x3c\x26\x46\xe1\x0f\xbf\x7f\xc1\xa9\x7a\xed\x5f\x9c\x36\xbd\xe2\xdd\x3b\x7a\xbc\x9c\x68\xbb\x8e\xab\x13\xed\xb8\x81\x7c\x28\x53\x8f\xcf\x48\xa0\x10\x6e\x0c\x9a\x24\x02\x77\xc6\x17\xbc\xb9\x27\xba\x8b\x60\xbe\x81\xab\xf0\xf1\x38\x25\x39\x27\xc1\xb2\x86\x10\x1a\xfb\x17\xfc\xac\xc2\xe3\x0d\x77\x3c\x72\xe2\xca\x69\x79\x18\xee\x2d\xea\xab\x6e\x51\x26\x4d\x63\x82\xd0\x57\x54\xd5\x29\x8b\xdc\x7d\xeb\xf2\xfc\x11\x95\xd4\x9b\xf7\xab\xdb\xcf\xc8\x7d\xeb\x41\x89\xc3\x9c\xc1\x46\x31\x9d\x01\xea\x36\xc5\x63\x6f\x78\x92\x7a\xd7\x63\x4c\xcf\x63\x47\x9b\x62\x21\x97\xcc\xf9\x78\x0c\xe3\x60\x8f\x36\x5c\x88\xf5\xe0\x72\xef\x8a\x93\x78\x9e\x09\xb0\x3d\x23\x2d\xd5\x20\x0b\xa3\x8d\x6d\x80\x9e\x13\x6a\x2a\xfd\x94\x67\xc2\x0d\xae\xed\x4f\xb1\xfe\xc4\x2c\x45\xb7\xf1\x7a\x40\xfc\x25\x03\x78\xe7\xc8\x4d\xe5\x7d\xab\xa2\x59\xbf\xa4\x32\x12\xfa\xe2\x2c\x5f\xc7\x0b\xaf\xf7\x22\xea\xcf\xb9\x68\x5a\x90\x35\xd0\x3d\x9e\x4b\xfd\xb9\xa0\xed\xb0\x39\x07\xaf\xf0\xdb\xee\x5e\x32\x30\xcc\xcc\x8d\x17\xc0\x08\x92\x8b\xd3\x7f\xf6\x90\xbe\xe6\xbd\xbb\xbe\xeb\xa3\xf6\x7f\x5b\x9b\x01\x2a\x02\x1e\xa2\xbd\xc7\x9d\xfb\x5a\x47\x28\x18\xaa\x88\xa0\xd1\x7a\xa2\x6d\x0f\x99\x0f\xdc\x43\x16\x4b\x1a\xa1\xad\x46\x73\x1e\x01\x35\xc9\x85\x58\x32\x67\xac\xd4\x75\x82\x2b\x6d\x91\xc7\x63\x70\xf3\xd9\xad\xbe\x7f\xe7\xb4\xda\xe0\xeb\x0f\xde\x88\x9a\xed\x88\x9c\xd0\xf8\xa8\x85\x5a\x0e\xe4\x42\x2d\x19\x72\x3c\x85\x1f\x45\xa3\xf2\x02\x46\xf1\x1e\x16\x07\xc0\x80\x1d\x97\xa3\x4f\xfe\x65\x23\x4d\xe1\x18\x00\x18\xa6\x4f\x34\xb5\x09\xcc\xa5\x98\xa0\xa8\xe9\x1e\xb8\xd6\xc8\xd5\xa7\x41\x5d\xf6\x1f\x74\x56\x39\xd0\x02\xaa\x08\x3d\xd8\x80\x9f\x74\x56\x81\x4a\x04\x5e\xd5\x00\x97\x99\x2a\x76\xa0\x49\x01\x46\x4f\x09\x63\x6e\x47\xae\x18\x8f\xa6\xc6\x96\x08\x36\xf0\x2b\x74\xb0\xba\xf2\xe4\xe3\x62\x3a\x90\x8b\x22\x50\x98\xf5\xfc\x90\x97\x74\x3d\x2f\xf3\x83\x93\xf3\xc7\xb1\x25\xad\xb1\x4e\xd0\xbe\x29\x93\x88\x1c\x18\x11\x92\x13\xae\x51\x49\x8d\x53\x6e\x66\xf5\x5e\x3e\x57\x97\x76\xa6\xc6\x63\xe2\x39\x4f\x00\x3a\x18\x54\xf3\x7f\xba\xcd\x5f\xb9\xeb\xc1\x6a\x97\xa6\xff\x74\x72\xc8\xd5\x0e\x08\xc0\x41\xae\x55\x73\x55\x90\xbb\x3f\x5c\x31\xe8\x48\xce\xb1\x96\x0f\x24\x03\x5f\x72\xa1\xb4\x7b\xe8\x5a\xbb\x58\x40\x45\x70\x25\x7f\x3a\x0b\xba\xab\x73\x59\x2a\x6e\x9e\xc1\x09\x23\xe4\x75\xd7\x8d\x80\xbb\xd1\x71\x20\x16\x3d\xe9\x9a\x87\x3d\xa6\x3e\x51\x77\x9f\x6c\x4b\x5d\x5b\x6e\x19\x5c\x2a\xda\x7e\x10\x88\x20\xfe\x80\xb4\x60\x88\x25\x22\xb8\x52\x8e\xc7\xd1\x08\x25\xb1\x3e\x47\x03\x16\xd0\xe5\xc1\xb0\x66\x2e\xef\xed\xe8\x0e\x26\xca\xe0\x44\xe8\x93\xe5\xdb\x6a\x14\xc1\x8e\x47\x87\xd6\xed\x38\x0e\x9b\xec\x8a\x8f\xf5\xdd\x1b\xc0\xfd\xf5\xfb\xaf\xed\x8d\xbc\x53\x4a\xfb\x9e\xee\xc4\x20\xb6\x6d\x75\x68\x66\x27\x85\xb6\x43\xfb\xd8\x49\xee\x45\xb0\xbe\x25\x96\x5b\x7d\xb5\x67\x9d\xb0\xd7\xbc\xec\x0b\x7e\x05\x94\x82\x45\x57\x7d\x1f\x7b\x1d\xea\x3d\x51\x51\xb5\x3a\xc3\x9b\x13\xde\xcd\xc3\x58\x20\xe9\xad\x1e\xe3\x81\xd3\x33\xc8\x6e\x4e\xec\x74\xe5\x2f\x5a\xe3\x6b\x03\x71\x27\xf4\x44\x62\x30\x39\x01\x33\xd9\x29\xb8\xc9\x51\x7f\xfe\x24\x0e\x0c\xd4\xca\x5e\xa0\x43\x6d\x19\x8c\x31\xff\x5f\xf2\xde\x75\xbb\x6d\x1c\x5d\x14\xfc\xaf\xa7\x90\x39\x5d\x1a\x62\x0b\x92\x25\x3b\x89\x63\xda\xb0\x26\xd7\xae\x74\xe7\x52\x9d\xa4\xaa\xba\x8e\xa2\x4e\xd1\x24\x64\xa1\x42\x11\xda\x20\xe4\xc4\x6d\x71\xad\xf3\x7f\x5e\x62\x9e\x60\x1e\xe2\x3c\xc5\xfc\x9e\x27\x99\x85\x0f\x17\x02\x94\xe4\xa4\x7a\xd7\x3e\xb3\x66\x4f\x56\x16\x2d\x12\x77\xe0\x03\xf0\xdd\x3f\xe4\xa2\x39\x63\x69\xda\xd6\x99\x0c\xf8\x6d\x65\xab\x15\x66\x02\x1e\xd4\x8b\xb4\xda\x7d\x5d\x98\xc9\xfc\xc5\x51\x93\x91\xb6\xb1\x56\x88\xee\xc4\xfe\x4e\x22\xd0\xc3\x89\xf0\x16\x25\x5d\x12\xed\x20\x12\x72\x37\xf6\x9e\x49\xd4\x18\x99\xea\xb4\xc6\x2a\x74\xbb\x7e\x9b\xf2\x59\xa4\x2b\x63\x2f\xaa\xf0\xbf\x69\x39\x03\x44\xf0\x05\x8f\x85\xb1\x03\x85\x6f\x4d\x48\x31\xda\x98\x83\x1a\x26\x1b\xd8\x96\x76\x9c\x2c\xc6\x52\xd2\x4b\x7e\x4d\xff\xbf\x38\x0f\xd8\xc8\x22\xd9\x3c\x3e\x60\xcd\xb8\x1b\x07\x17\xe0\xe3\x50\x8b\x52\x1d\x7b\x96\x83\x43\x1b\x99\x2d\xf4\xcc\x69\xdd\x20\x1e\x06\x62\x4b\x09\x37\x76\xbc\xbc\xb1\xe3\x85\xf9\xf4\xa3\x0e\x5a\xdb\xdf\xd8\xfc\xea\xf5\xd2\x03\xa7\xc7\x36\xb1\x76\x56\xb6\x40\x8a\xb4\x79\x67\xdd\x9a\x7e\x03\x83\xda\x5d\xc2\x5d\x93\xbf\xcd\xe4\x30\xea\x1a\xf4\x73\xf7\x4f\xda\x7e\x1c\xc2\x2a\x82\xb3\x5d\xab\x42\xd1\xeb\xb1\xc0\xf2\x9f\x3b\xdd\xbf\xb4\x60\x57\xe5\xcf\xc6\x8a\x5d\x6d\x9a\x5f\xb4\x90\xc2\x1a\x9e\x87\x3e\x66\xad\x85\x8e\x31\x7b\x07\x63\x02\x6b\x02\x3f\x9d\xa1\x66\xce\xad\xd4\xe3\x91\x9c\x98\xf0\xf2\x0c\x25\xc2\x72\xcb\x1d\x29\x21\x1a\x52\xc2\xb3\x93\x6f\x0a\x23\x84\x47\x98\x59\x79\x09\x91\x98\xeb\xc8\x0e\x8d\x72\x45\x49\xb4\x9f\x07\xda\x30\x65\x3b\xe0\x00\xd7\x72\xf4\xfb\x3f\x97\xa0\xb3\x58\x82\x73\x07\xa3\x02\x6a\x05\x21\xe0\x40\x76\x87\xe9\xba\xbf\x3a\x98\xd5\x8e\x89\x64\x48\x88\x66\xaf\x98\xf5\x0a\xc5\xbb\xd6\x7d\x2e\xb6\x7e\x91\xb7\x59\x9b\xc6\x37\x78\x79\x07\x4f\x09\x0b\x2c\xc0\x5b\xca\xcd\x8a\x6e\x36\x11\xdc\x8f\x91\x26\xc9\x1f\x1b\x4d\xc5\x64\x97\xe3\xb5\x5b\xdf\xe1\x75\x22\x9d\x5e\xa2\x04\xdf\x0b\xef\x6f\x56\x74\x62\x17\x2d\x91\x08\x37\x8e\x12\x13\x60\x2e\x35\xef\x38\x74\x12\x97\x1c\x8c\xb1\xf6\x84\xae\x33\xea\xdf\x78\xcb\x73\xb6\x4e\xdd\xfa\x5c\x77\x5a\x83\xa6\xc4\x1b\xb6\x02\xdb\x46\x01\x13\xd5\xd8\xb9\xa2\x7d\xb4\x2b\x20\x16\xd0\x3b\x96\xb7\x14\xfb\x35\xa1\xdd\xce\x42\x3d\x67\x23\x21\x55\xe4\x89\x3c\x14\x05\x74\xe6\xe0\x57\x6b\xfb\x31\xa3\xde\x49\xb5\xc9\xf3\x96\x9f\x98\x0b\x9b\x22\x0d\x94\x5b\x9f\x30\x5a\x32\xa3\x32\x19\xa7\x38\x1e\x89\xe4\xc6\xb6\x05\x17\xc1\x9c\xf8\x2c\xcb\x8e\x47\x02\xd0\xc0\x67\x91\x63\x82\x9b\xa0\x0b\xc6\x16\x26\xf0\x0e\xed\xc4\x34\xdf\xee\x49\xab\xb2\x64\x84\xf1\xa4\xa5\xf5\xc7\x0a\x50\x4a\x65\xc4\xf4\x41\xc7\xaf\xbc\x80\xcf\xfa\x58\x23\xa4\x30\xca\x9a\xa0\x35\xa6\x32\xd9\xf0\x86\x2e\x81\x38\x3f\xdc\xfa\xd3\x05\x91\xc3\x6c\xb1\xd9\x88\x5e\xef\x40\x34\x0e\xb5\x36\x1b\x43\xf1\x17\xed\x39\x75\x59\xea\x7e\x9f\x81\x07\x7b\x40\x5a\x1e\x15\x45\x6b\x56\xad\x08\x71\x3a\xdb\x9e\xad\x9d\xe7\xda\xef\x81\x1a\xe3\x6c\xd1\x92\xd0\x10\x22\x52\x75\x17\xbe\xd8\x0e\x22\x84\x69\x8d\x57\xbc\x7a\x2e\xb8\xa6\x6b\xb6\xa1\x39\x60\xab\xe3\x92\xec\xa2\xb4\xed\xe5\x73\xc7\x30\x9c\x82\x02\xf3\x79\xed\x7d\x70\x84\xc8\x2f\x9c\x77\x07\x49\x28\x3e\x18\x75\xe8\x80\x70\xdc\xef\x0b\xd5\x43\x0b\x66\xc0\xb2\x97\xc8\x44\xdf\xfa\xa2\xba\xdc\x66\x93\xea\xed\xd7\xda\x71\xd9\xa2\x63\xa3\x0d\x18\xff\x43\x30\x14\x50\x9c\x5c\x9c\x8f\x1a\x0f\x38\xd7\x4d\xfc\xa2\x6f\x1d\x9f\x37\x33\x06\xbe\x03\xb4\x42\xf6\x8d\x6a\xb9\x1d\x2e\x0c\x48\xd6\x38\xe3\xab\x5d\x58\xa6\x11\x0a\x7e\xab\x44\xa5\x2d\x51\xdb\x2a\x60\x86\xd1\xf0\xe7\x77\xcb\x06\xdf\xf3\x15\x96\xbe\x9c\x50\x86\x72\x43\x95\x48\x8b\x86\x0f\x21\x3d\x21\x1d\xd0\x10\x01\x36\xfd\x94\xae\xe4\x82\x6c\x21\xd9\xf0\x19\x6a\xb2\x68\x76\x6c\x65\x09\x8d\xeb\x75\x98\x1c\x1d\x16\xe2\x29\xcf\xc2\x8b\x6b\xb3\x89\xc1\xd0\xb0\xe3\x61\xe4\x7a\xac\xbb\x05\x3f\x1d\xab\x54\x6a\xe1\x1f\x76\xb3\xe6\x16\x52\x4f\xe1\xf9\x00\x3c\x72\x40\xdc\x55\x7e\xae\x05\xb0\xea\xa7\x3d\xd4\xda\x6b\x82\x05\x98\x8b\xf1\xdc\x92\x28\xfe\xfc\xef\x9e\x76\x6a\x6e\x23\x35\x4e\x30\xf7\xb3\x84\x84\x3f\x49\x08\x3b\x75\xa4\x4f\x34\x57\xb8\x4b\xf3\xe6\xdb\x40\xe6\x3c\x4b\x4a\xdc\x54\x98\xf8\xb5\xd7\x48\x3b\x41\x83\x32\x90\x15\x3a\x6d\xc3\x6b\x24\x07\xa3\xbd\x25\x67\x78\xaf\xe8\xd1\x77\xa5\x29\xec\xc9\x5b\x12\x69\xb5\x91\x9c\x03\xca\xc6\x13\xbb\x71\x40\x09\x8e\x40\x9a\x6f\x52\x33\x74\x56\x14\xc2\x79\x58\x46\x10\x04\x12\xe1\x38\x05\xcb\x48\x90\x57\x34\xbf\x00\xbf\x40\x9d\xd2\xf9\x0c\x83\x49\xa8\x10\x6e\x54\xf2\xea\xba\x8e\x4b\xfc\xcc\x38\x06\x82\xe3\x76\x5d\xaa\x39\x68\x43\x90\x3a\x05\x7c\x69\xfc\x1b\x90\x01\xe9\xd8\x4f\xd8\x9b\x6d\xb4\x43\xe7\xa7\x1d\xc1\x44\x06\x81\x66\x3e\xd1\x7c\x2a\x67\xe0\xf9\x8b\x78\xfa\x92\xaa\x84\x75\x5c\x8b\x41\xfd\xd2\x75\x4c\x77\x16\x7f\x29\x63\xd7\x71\xa3\xab\xae\x03\xe3\x5a\x08\x09\x41\xc4\xdc\x04\x53\xed\xb2\x76\x3b\x76\x8b\xb0\x16\x3e\x2c\x47\x35\xc2\xda\x82\x6c\xa7\x60\x3e\x8c\x92\x40\x76\x91\xcc\x1a\xd0\x43\x3a\x79\x2b\xa3\xfe\x0c\x4c\x74\x10\x93\xbf\xb4\x7b\x37\x3c\x98\x3f\x86\xe2\xbd\x57\x3c\xdf\x2b\x11\x53\xdb\x49\x73\x8a\x72\x26\x7d\xe9\x56\x98\x2d\x5b\xd6\xb8\x61\x5d\xee\x65\x2e\x98\xad\x38\x31\x86\xb0\x71\xb0\x3f\x93\x5f\xb8\x93\xf9\xb9\xd3\xfe\x2e\x35\xce\x77\x74\xa5\xed\x24\xeb\x1a\x61\x5f\x85\x60\x48\x6d\x28\xa2\xe0\xab\x9a\x11\x6d\x16\xc8\x48\xa4\x5e\xba\x1a\x7f\xed\x6a\x14\xbd\xab\xae\x81\xae\x1b\x6a\xd7\x53\x3b\x88\xbc\x48\xf4\x4e\xff\xeb\x86\x75\x59\xd9\xf5\x5b\x40\x41\x73\x2d\x07\x75\x37\x0c\xf5\x7a\x97\x3c\xbe\x64\xf8\x86\xa1\xf3\x51\xaf\x17\xbf\x69\x72\x4f\x6f\xd8\x6c\x57\xa4\xc6\xed\xe1\x53\xa3\x0c\x0a\xd3\x00\x01\xeb\xc4\x15\x58\x79\x55\xa8\xae\x63\xbf\x07\xaa\x4e\x84\xbc\xe0\x46\xce\xee\x2a\x6e\xdc\xac\xc4\x60\x0d\xa7\x1d\xd6\xb5\x77\x9c\xe6\x16\x97\x5b\xdb\xcd\xf9\x43\xb1\x49\xd3\x14\x28\x6a\xe8\xcf\x01\x61\x16\x19\xe4\xbd\x5e\xe5\x1d\x6a\x1d\x85\xb4\x15\xea\x2c\xd5\x39\xb1\x82\x7c\xf3\xb3\xc4\x05\x04\x47\x40\xd6\xa5\x5e\xe0\x14\xf6\x33\xf3\xa2\x08\x64\xcb\xed\x30\x36\xef\x17\xac\xea\x5a\x73\xb7\x2e\xab\xba\x69\x21\x68\x9a\xdf\xa8\x15\x5a\x57\x74\x18\xa1\x0e\x9c\x2c\x44\x82\xe5\x07\xa1\xf8\x51\x4c\x11\x7e\xaf\x1e\xbb\xc3\xf7\x6d\x36\xaf\xc3\xc4\x25\x78\x0f\xf4\xef\x17\x85\x46\x7b\x9d\x7c\xc6\xbc\xf0\xe2\x03\x62\x38\xef\xe8\x7c\xb4\xd9\x48\x85\xfa\x03\x92\xb0\xa3\xe7\x54\x50\xd5\xe3\x92\x77\x55\xfb\xdd\xa8\x1f\xcb\xbe\x2d\xdc\x8f\xd4\x08\xe4\x82\xba\xc1\x0d\x3d\x08\x14\x84\x9e\x1d\xe8\x08\x23\xd5\x59\x80\x7e\x06\xa4\xca\xd7\x54\xb3\xe4\x39\x47\xb7\x82\x30\x73\xe4\xc9\x01\xe1\xce\x99\xb4\xd1\xc7\x95\x33\x2f\x36\x47\xcb\x7c\x4f\x4b\x45\x42\x97\xae\x5f\x0b\x41\x43\x9d\xa7\x7f\x40\xc8\x3a\x8c\xb8\xa8\x45\x31\x27\xdc\x73\x96\x96\x2d\xc0\xb5\x8b\x23\x03\xbc\x64\xa9\x13\x0d\xe6\xcf\x11\x76\x18\xbe\xeb\xeb\x9b\xad\xbe\xb6\xbb\x18\x3a\x0a\x6a\x82\x83\x68\xbb\x9e\x56\x75\xef\x02\x17\x21\x72\x40\x3d\x65\x5e\x1f\xff\xa7\x67\xe5\x59\x49\xac\x02\x1f\x2a\x1b\xed\x51\x2f\xe0\x06\xf3\xfc\x44\x12\xa7\xc4\xb7\xd3\xe9\x79\xa3\xe3\x87\x85\x0e\xf5\xe6\x42\xa7\x95\xc4\xea\x01\x9e\x95\x67\x92\x94\xd8\x6b\xd7\xf7\x08\x52\x36\x50\xc0\x66\x07\x44\x82\xeb\x42\xd1\x27\xc1\xf7\x00\x32\x2c\x08\xf4\xa5\x51\x9f\x70\x5d\x7f\xc5\x42\x97\xd9\x90\xdc\xa1\x49\xce\x5b\x8a\x83\x5b\xaa\x88\x81\x4d\xc0\x16\x5c\x36\x93\x09\x20\x49\x09\xeb\x34\xae\xcf\x01\x2e\xb5\xc9\x80\xd7\xcb\xc6\xeb\xb9\x56\x7e\x3c\x30\x0e\xbc\x51\x20\x4d\x68\x05\x67\x2c\x2d\x89\x6b\x52\x3c\xa5\x2d\x68\x3b\x35\xaa\x86\x72\x40\x52\xd7\x40\xdf\x83\x83\x1f\x5a\xb6\xd5\x23\x2c\x14\x9d\x03\x4a\x2b\xc8\xae\x94\x23\x03\x77\x36\xce\x88\x70\x8d\x6b\xb1\x1a\xa1\xb6\xd9\xc6\x2c\xc2\xc5\x64\xe5\xc4\x92\xb4\x67\xfc\x8c\x93\x58\x10\x8e\xfc\x65\xd6\x8d\xf1\xfd\xf3\xad\xe8\x79\x6f\xbe\x81\x9e\x27\x44\x34\x4d\xa6\xb6\x49\xc7\x7b\x70\xc3\x7d\xc4\x7c\x3f\xf2\x60\x0b\x16\x6a\xb0\x58\x34\x5e\x9b\x89\xe5\xa9\xdd\x3e\x8a\x80\x70\xb5\x3c\x69\x6c\x48\x00\x79\xb1\x71\x74\x0d\x2e\xe3\xbf\x6a\xa2\x65\x7c\x38\x6a\xe2\x45\xbf\xe2\xf9\x7b\xb6\xa4\x4d\x88\xf8\x77\xb4\x80\x0f\x5e\x1e\x2b\x15\x69\x84\x24\x4d\xb0\x67\x4f\x42\x12\xe4\x69\x84\x26\xd8\x10\x40\xa1\x3c\x27\x90\x24\x10\xba\xd9\x78\x1e\x9f\x3f\x05\xfb\x40\x4b\x77\x97\x36\x6e\x0c\xc8\x77\xdf\x8a\x58\x1a\xf1\xee\x97\x26\xa4\x8d\x0e\x29\xe3\x98\x5c\xaf\x19\x70\x62\xbd\x70\x37\x4d\x24\x9b\xfe\x18\xe1\x6d\xcc\xf2\x2b\x25\x0c\xb2\xe9\x1d\x36\x6f\x1d\xc0\x9e\xd1\x46\x0f\x9c\xcd\xe3\x83\x6b\x85\x74\x19\x81\x9a\xd5\xb0\x1d\xae\xf8\x2a\xf6\x7d\x09\xfc\xb6\xc3\xd5\x94\xc1\x39\x3b\x2c\x94\xd5\x11\x4d\xb9\x73\x9c\x92\xbe\xba\xe6\x9e\xa6\x12\x2c\xe6\x62\x66\x97\x88\x94\x9b\x0d\xf3\xd7\x83\xc8\xa1\x96\x72\xf7\x7a\xcd\xaf\x38\xea\x47\x4d\x8a\x0d\xe7\x3e\xd2\x11\xc2\x96\xa0\x0c\xdf\x40\xc5\x45\x3a\x08\xec\x2e\x4d\xdf\x80\x99\xf8\x94\x16\xe9\xcd\x66\x13\xfd\xdb\xce\xea\xc0\xa9\x0c\xdf\xe3\xb3\x78\x12\xbf\xb5\x12\x23\x84\xaf\xb9\xfd\x89\x92\x40\xa2\xd9\xeb\x1d\x34\x69\x66\x26\x27\xcd\x97\x30\xf3\xc5\x18\x42\x24\x82\x20\x33\x48\x18\x1c\x59\xb1\xe6\xc4\x0a\xa9\x60\x15\x82\x76\x8d\x17\xcc\x98\x61\x6f\x36\x1b\xfb\x8b\x6b\x1e\x73\x23\x80\xac\x50\x67\x3b\x88\x11\x58\xb0\x36\xdf\x2a\xf5\x6d\x02\xe1\xa5\x00\x4e\x13\x57\x58\xdf\x81\x06\xbc\x3d\x3d\xf5\x42\x35\xc1\x74\x6f\xe0\x80\x2d\x7a\xbd\xc2\x49\x63\x9f\xaa\xc9\xaa\x68\x81\x4d\x0e\xcc\xc9\xad\xa9\x30\x99\x9a\xca\x66\xb8\xd9\x60\x09\x0b\x25\x93\x66\xd4\xfa\x32\x3f\x63\xc1\xb4\xb1\xe6\x5c\x38\x43\x26\xa9\x5a\xb0\xb9\x8c\x91\x29\x38\x1d\x35\x72\xe1\x30\x43\xed\xd7\x0c\x06\x15\xde\x26\xef\xf7\x59\xb8\xc7\x71\x00\x59\x84\x05\x87\x4d\xda\x4c\x3c\xf3\x8f\x19\x1c\x00\x34\x6b\x9d\x2e\x16\xec\x70\xb5\xd9\x68\x8f\x44\x06\x40\x75\x8c\x37\x0f\x87\x7c\x1a\x9c\x28\xd7\x1c\x22\x3f\xf4\x7a\xc2\x8c\x4c\xfd\xa2\xff\xbe\x4e\x8b\x2a\xa6\x10\xf0\xd1\x06\x32\x73\x15\xbc\xde\xda\xa9\xed\xd8\x2a\xe0\x57\xc1\x60\x3f\x4e\x8e\x62\xd5\x44\x04\xc2\x9e\xea\x96\x66\xe1\x68\xcc\x15\x97\x7e\xf8\x36\xa1\xa8\x5b\x8f\x01\xda\xeb\xc5\xc6\x13\x45\xbb\x39\x72\x5b\x23\x34\xe5\x33\x12\xe4\x57\xb8\x1a\x0f\x22\xbe\xbd\xb0\xe8\xd0\x01\xdd\x8d\x02\xe1\x7d\xd1\xea\x0c\xc3\x77\xcb\xdd\xf9\x44\x2a\x52\xc3\xf7\xbc\x8b\x90\x96\x37\x98\x88\x65\xa2\x89\x58\x26\x27\x96\xa5\x32\x91\x60\x6d\x9d\x78\x1e\x70\x5f\xb2\x1d\x66\x11\x5b\x7a\x73\xee\xa6\xe5\x4e\xc2\xc8\xed\xb9\x6a\x7c\x4f\x8a\xc9\x5b\x1a\x84\xcc\xa5\xab\x27\x7c\x75\xa3\x6d\x0b\x38\x4a\x38\x6a\x64\x8e\xfa\xbe\xd6\xca\x59\x60\x59\x65\xea\x70\x3b\xaa\xaa\xdb\x91\x5d\x53\x3f\xa4\xab\x76\x39\x85\x33\x92\x4e\x0b\x43\x9c\xe9\xf2\x70\x4b\x65\xe6\x54\xe0\x49\x36\x94\x5c\x5f\x50\xda\xf0\xb5\x46\xb8\x41\x1c\x73\x45\x7d\x64\x28\x5e\x93\xdc\xba\x3e\xfe\x87\x5e\xdd\xf8\x43\xde\x47\x7f\x3a\x44\x9a\xa6\x95\x58\xab\x07\xc7\xeb\xe9\x78\x86\xd0\xc5\x60\xdc\xeb\xc5\xd7\x3c\xae\xd0\x34\x9f\x91\x6c\x9a\xcf\xb0\x36\x7f\xec\xaa\xdf\x8a\xce\x73\x81\x79\xdc\x2c\x3f\xf7\x20\x57\x18\x9c\x6d\xa2\xff\xf4\x49\x99\xc8\x73\x2b\x46\x30\xcc\x63\xb0\x71\xcf\x16\xc4\xa7\x13\xff\xc9\xf6\x39\x05\xbe\x23\xca\x98\x36\x33\x71\x6b\x75\xcb\x87\x19\x5f\x31\x60\xfa\xc5\x3a\x13\xe1\x6e\xad\x62\x84\x4c\x32\x39\x18\x35\x0b\xa0\x05\x22\xbc\xa5\x0b\x56\xf5\xfb\xe8\x39\x73\x55\x4f\x2b\xab\x40\x69\xfa\x88\x5b\x89\xa0\x25\x65\xbc\x60\x03\x20\xa8\xea\x6d\xd5\xf6\x68\xde\x8e\x5e\xe2\xd2\x4c\x14\x13\x71\x5e\x78\x91\xf3\xf4\x6f\x32\xa7\xb1\xf7\xb5\x5f\xe2\xc2\xfa\x35\x40\xb8\x50\x57\x00\x64\xb0\x38\x44\x09\xdf\x54\xa2\x33\x53\x97\xe7\xc4\xa5\xa3\xdb\x94\x1c\x8c\x2d\x8b\x2c\xdd\x6c\x62\x17\x13\x6a\xa4\xa3\xc5\x33\xb5\x2e\x1e\x06\xf1\x63\x48\x39\x79\x88\x4b\x49\x1c\xea\x02\x74\xa4\x1f\x68\x2b\x2e\x07\x02\x0d\xc6\x9d\x7f\xda\x6b\xd8\x04\x7e\xc1\xff\x6c\x94\x34\xcc\xa7\x9a\xf1\xf8\xca\x78\x58\x7a\xcc\xc8\x9b\x21\xfd\xb8\x12\x54\x23\x00\xf3\x74\x5d\x48\xd2\x32\xab\x0d\x12\x27\xed\x0f\xb1\xba\xb7\x35\x90\x82\x71\x01\x39\x18\xd7\xf8\x7b\x5d\x6f\x25\xf9\xea\x07\xc1\x57\xe9\x95\xbe\x42\xc2\x8a\x5b\xa9\x93\xad\x2f\x50\x75\x96\x96\x19\x2d\x1e\xaf\x2f\x2f\x0b\x90\x21\x37\x5c\x9a\x9f\x7c\xff\x0f\x96\x23\x9e\xeb\x5e\xfd\xa0\xfb\x48\xf3\xc9\xf6\xa7\x64\x44\x48\xd0\x65\x50\x18\xfc\x53\xd3\xe5\xa0\x9f\x8f\x55\x2b\xf8\x7b\x50\xdd\xf7\x02\x22\xb0\x20\x6c\x92\x4c\xc5\x15\x05\xd1\x4c\x25\x32\xe3\x3d\xc8\x0b\x74\x10\x50\x05\x9f\x17\x2c\x5b\x6c\x53\x05\xe3\x1e\x1d\x5e\xae\xa5\xe4\xe5\x44\x92\x71\x72\xe4\xbf\x1e\x27\xf7\xdc\x2b\x10\x10\x47\x08\xe1\x6b\x40\xf0\xa4\x28\xfe\x4a\x6f\x7a\xbd\xb1\xa5\x2d\x8e\x15\x29\xa1\xda\xfa\xb3\x1a\x50\x30\xe9\x9e\x7e\x73\x9a\xe7\x80\xf3\xbd\x64\x95\x54\x17\x3a\xda\xfe\x04\x14\xff\x81\x17\xeb\xd5\x06\x6a\x87\x5c\x28\x78\x8b\x23\x5e\x46\x7d\xf0\x0c\xee\x99\xea\xd1\xe1\x47\x2d\xb0\x86\x30\xe3\xde\x9b\xba\xea\xce\xe2\x72\x2a\x67\x9b\x0d\xfc\xf1\x04\x05\xc0\x92\xfd\x45\xdd\x19\xcd\x6c\xff\x75\xcb\x0f\x92\xab\x4a\x4d\x82\x7b\x99\x4a\xc7\xb5\x10\x13\x08\x48\x6e\x90\xa2\xd1\xc4\x3a\xa4\x42\xc9\x2f\x2c\x29\x37\x9b\x5f\x18\x4c\xd2\x5f\x60\x92\xe6\xf3\xdd\xb3\xa4\xd9\x9d\xed\x89\xda\xf1\x75\xc7\x5c\xe9\x58\x60\x76\xae\xbc\xb7\xd6\x5c\x75\x9b\xab\xd2\x0c\xf3\x40\x9f\x0a\x67\xcc\x77\xb0\x04\x41\x6f\x40\x6d\x97\x08\x74\xeb\x2c\x24\x19\x1e\x3b\x06\x3c\xfe\x9b\x1a\x4c\xc5\xae\xca\xb4\xd8\x19\x3c\xce\xd6\xaf\xc3\x1f\x5a\xb1\xab\xc7\x8d\x79\x24\x44\x7a\xe3\xdd\xbb\x30\x65\xfa\xd2\x75\xbc\x53\x7c\x84\x76\x85\xe4\x11\x53\x36\x33\xfc\x56\xed\x02\x0c\xd5\xf8\xef\xcc\x78\x5a\xb0\xeb\xf8\xdf\xd8\xae\xee\x8c\xc3\xee\xe8\x35\xc6\xec\x5b\x7b\xd3\xf9\xa7\x9c\x94\xe4\x9f\x72\x98\x2b\xfa\x85\xe6\x4f\xd2\xa2\xb8\x4c\xb3\x4f\x55\xf2\x77\x36\x29\xc9\xdf\x59\x12\xab\xa7\x22\x9b\x2b\x2a\x15\x72\xca\xd7\x32\xa6\x1c\x8f\x3c\x3b\x7d\xad\xa2\x2c\xfc\x58\x38\x86\xbf\x95\xc6\x62\xca\x67\x28\xf4\xbe\xb2\x8b\xeb\x4c\xfd\xe1\xb3\xe0\x4c\xa7\xdc\x09\xcd\xff\xce\x3a\x6e\x5a\xf6\x87\x1f\xa4\x53\x39\xf3\xfd\xb8\x4b\x1e\xea\xb8\x6c\x99\x18\xea\xbd\x7f\x0b\xae\xee\x25\x0e\x4f\xe8\x2d\x75\xcc\xf6\x81\xa8\x8e\xd5\x1a\x61\x40\xb8\x85\x42\x96\xc1\x9a\x10\x22\x4a\xfd\xc4\x62\x09\xf8\x73\xc6\x73\xba\x04\xf7\xbc\x2f\x20\x46\xbb\xe7\x5d\x99\xfb\xa7\xdb\xee\x8d\x39\xcc\xc0\xdc\xe5\x51\x26\xd9\x35\x93\x37\x3a\xaa\x9e\xc7\x9c\x35\xea\x42\x61\xae\xef\xfd\xb3\xe3\xae\x0c\xea\xf4\xd8\x65\x66\x68\x42\x0f\x0b\x50\xa7\x47\x8a\x24\x80\x15\x85\xb7\xa6\xff\x25\x0f\x68\x59\x0d\x95\xc8\x9d\x1c\x4d\x46\xc6\xed\x85\x68\x21\xb2\x75\xba\xa2\xdb\x3f\x33\xa7\xd4\x84\x6a\x1c\x64\x6d\x9d\x31\xe8\xf6\x2f\x7e\x5e\x1d\x7f\x80\x93\xe3\x11\x4e\x39\x79\x33\xfc\x21\xad\x2a\x72\x2b\xf9\x3b\x1d\xce\x60\x4b\xb8\xe1\xb9\x4b\x86\xbc\x51\x5d\xe3\x8a\x93\x5b\x2d\xfc\x4e\xd4\x1d\x5c\x70\x72\x6b\x2d\xff\xfe\x6d\xc9\xd7\x15\x8d\x6a\xbc\xf6\x3e\xf6\xd5\x31\x16\x79\x97\x5a\xc6\x2d\x84\xb0\x5c\xbb\x0c\xc9\xb8\xbf\xff\x5a\x11\x87\xd0\x2d\xa8\x32\xd9\x1d\x65\x0a\x36\xc6\xb3\xde\x6e\x93\x98\x1a\x6f\xd6\x0b\x35\xba\x8c\xaf\x4b\xf9\x84\x17\xeb\x65\xfb\x7a\xd2\xd1\xea\xdc\xad\xa8\x56\x50\x53\x26\x34\x15\x0a\xa9\x9e\xfe\xe3\x43\xf5\x61\x3d\x1a\xa5\xa3\x19\xa0\xd4\x90\x68\xfd\x04\x35\x9b\x19\x9c\x74\xa7\x84\x6d\x36\x23\x1b\x94\xa4\x22\x54\x6b\x12\xbe\x99\xc7\xd1\x07\x19\x19\x25\xfd\xea\x7c\xb4\xd9\x54\x17\x4d\xa8\xe7\xb4\x1f\xcb\x01\x47\x9d\xb4\x4f\xaa\x01\xc7\x69\x9f\x88\x41\xfa\x9d\xc0\x9c\x54\xfd\x71\x5d\xe3\xb9\x1a\xc0\x9c\x95\xf9\xce\xfe\xb7\x29\x1f\xd7\x3c\x6f\x37\x5f\x22\x08\x8d\xcd\x81\xab\x42\x83\x70\x26\x29\xe1\x03\xad\x60\x42\x48\x13\x09\x9e\xf5\x53\xaf\x9b\x65\xdf\x91\x9f\x29\x96\x03\x1d\x23\x8f\xf5\x55\x49\x5c\x12\xde\x1f\x63\xf5\x26\x06\xec\x3b\x81\x2e\x82\x40\xd6\x78\xc5\xc9\x34\x8a\xbc\xeb\x75\xc9\x1d\xcf\x6b\xc5\x9d\xb3\x00\x7a\x86\x56\xc6\x91\xd4\x35\x8f\x57\x1c\xf5\x41\xa8\x67\x2a\x5a\xf1\x29\xf5\x44\x1d\xc0\x1c\x73\xf8\xd0\xb4\x31\x66\x9a\x01\x64\x5f\xf1\x36\xee\x07\x8a\xfa\xb1\x8f\x52\x5d\xf2\x5d\x02\xfc\x80\x8a\x05\xd5\x5c\x31\xf3\x02\x73\x5b\xf6\xea\xc0\x63\x36\xde\x6c\x55\x34\x9d\xb5\x3d\xee\x94\xfd\x3e\x12\xd3\x72\x46\xb4\x62\x2f\x2e\x77\x05\x60\xfc\xa8\xf6\x83\x27\x5b\xe3\xde\xed\x65\xb3\xbf\xb9\xfc\x8d\x66\xd6\x6f\xe4\x44\x90\xe0\x3d\xa6\x28\x89\x3f\x7a\x7b\x88\x50\x2c\x40\xa0\xfd\x91\x83\xb1\xdc\x33\x0e\xe1\x54\x7c\x06\xe4\x33\xbe\x05\x49\x20\xd9\x02\x12\xfd\xb6\x46\x98\xa2\x83\x2d\x91\x69\x89\x8c\x81\xa3\xd0\x5a\x82\x5b\x89\x70\xe8\x91\x20\xf6\xb8\x87\xa0\x7e\xf1\x8e\xf0\x6f\xba\x75\xc7\xae\x96\xfd\x62\x57\xcd\x29\x46\x75\xbd\x9a\xec\x59\x7e\xc6\x4b\x30\x7c\x25\x23\xec\x7d\x7a\x56\xe6\x84\x0e\xaf\x15\x62\x6e\xbd\x0f\x25\x6a\x97\xb4\x2a\x91\xe2\xc6\x87\xa3\x0c\x88\x6e\x89\x6e\x6b\xa3\x69\xf3\x86\x93\xc3\xa9\x3a\x2a\xf2\xf9\x87\xf5\xe8\xfe\xc3\x13\xf5\x3c\x1d\x0d\xd4\x9f\xf9\xbd\x0f\xeb\xd1\x83\x11\xbc\x3c\x98\xcf\x3f\xac\x8f\x47\xf7\xd4\xcb\xf1\xe8\x14\x5e\x52\xfd\x02\x29\xf7\x20\xdb\xbd\xfc\xf2\xfe\x87\xf5\x3d\x0a\x2f\xa7\xf3\x2c\xfb\xb0\x4e\x33\x78\xc9\x4f\xd2\xf9\xec\x10\xbf\x53\xc7\x02\xab\x7e\xe6\x22\x7f\xb2\xf0\x43\x6b\xb9\x6d\x71\xf8\xe1\xb3\x73\xd0\xbf\xd9\xd0\x8b\xe8\x7f\xfc\xf7\x08\x68\x74\xc9\x7f\x5c\xad\xa8\x78\x92\x56\x34\x46\x5a\xab\xe7\x25\xff\x6c\x3f\x6c\x36\x6f\xb8\xf3\xeb\xef\x6d\x97\xf7\xbc\xc5\x82\x3d\x38\x88\xe5\xb0\xe2\x6b\x91\xf9\x27\xcd\x87\xcf\x91\xe6\x32\xbc\x53\x6b\x0c\x57\xb9\xa9\x2c\x81\x2f\x9e\xac\x8a\x07\xa2\x1a\x05\x74\xe0\x6e\x68\x0b\xd8\x24\xea\xf5\x14\x82\xd2\xa8\x75\x3b\xbd\x5e\x55\xf2\x07\x8e\x1f\x99\xb9\x3f\xd6\x53\x7c\xfc\x40\x2d\xc1\xbd\x87\xc7\x03\xf8\x73\x0a\x2b\x31\x86\x95\xb8\xcc\xe1\x09\x4b\x94\x8d\xe1\x79\x04\xcf\x7b\xf0\xbc\x0f\x4f\xb5\x74\x0f\xc6\x7a\xb5\xc6\xa9\x7a\xde\xbb\x84\x97\xfb\x54\x3d\x4f\x46\xea\x99\x3f\x80\x4f\x79\x06\x4f\x0a\x2f\x14\xd6\x99\x42\x79\xfa\x10\x9e\xa9\x4e\x50\xcd\x9e\x8c\x55\x83\x27\xc7\x50\xf1\xc9\x3d\x55\xf1\x49\x0a\xb5\x9c\x5c\xaa\x2a\x4f\x28\xb4\x72\x32\x3f\xfe\xb0\x1e\x3d\x1c\x43\xca\xc3\xf1\x29\x3c\x21\xe5\xe1\x11\xa4\x1c\xdd\xd7\x2f\x27\xf0\x3c\xd5\x2f\xaa\x81\x53\x3d\xfc\xd3\x91\x1a\xd2\xe9\xb1\xea\xd9\xe9\x3d\x18\xf7\xe9\xbd\x87\xf0\x84\x5c\xf7\xf5\xa7\xfb\x6a\xb0\xa7\x0f\x20\xef\x03\x55\xf1\xe9\x43\xd5\xbf\xd3\x4b\x28\x77\xa9\x86\x7a\x9a\xe9\xac\x30\x3b\xa7\x19\x94\xce\x55\xb3\xa7\x14\x8a\x51\x55\x2c\x1d\x8d\xe1\xa9\xbe\xa4\xd0\x68\x7a\x0f\xbe\xdc\x83\x2f\xf7\x4e\xe0\xf9\x10\x9e\x30\x8c\x14\xba\x91\xde\x87\x4c\x30\x99\xe9\x89\xfe\xad\x7a\x94\x42\x2f\xd2\x87\x50\x18\xfa\x92\xea\x5e\xa4\xb0\x3a\x29\xac\x4e\x9a\x41\x7d\xd0\xa3\x14\xfa\x92\x42\x5f\x2e\xa1\x2f\x97\xd0\x8b\xcb\x63\x0a\x4f\xb5\xd6\x97\x7a\x1a\x2e\xef\xdd\x83\xa7\x2a\x76\x79\xff\x01\x3c\x55\x75\x97\x30\x0b\x97\x30\x0b\x97\xd0\xf2\x25\x8c\xff\x32\x1b\xc1\x13\xf2\xc3\xc0\xb3\x63\x58\xe9\xec\xde\x08\x9e\x0f\xf4\xcb\x43\x78\xa6\xfa\x45\x65\xce\x60\x72\x33\x68\x22\x83\xca\x33\xa8\x3c\x83\x01\x65\x00\x7f\x19\x40\x5e\x96\x41\x9e\x0c\xbe\x43\x43\x59\x0e\x65\x73\xf8\x0e\x63\xcb\x60\x6c\x39\x8c\x27\xd7\x23\xc9\x61\x24\x39\x34\x96\xc3\x18\x72\x68\x26\x87\x66\xf2\x2c\x85\xa7\x6a\x26\xcf\x8f\xa0\x40\x0e\x05\xa0\xd6\x1c\x8e\x28\x7a\x3c\x86\xe7\xbd\x01\xfc\x51\x25\xe8\xbd\x13\x78\xb9\xa7\x5a\xa2\x97\x90\x7e\xa9\xd3\x2f\x4f\xe1\x79\x09\x4f\xd5\x59\x9a\x3d\x84\x04\xe8\xf3\x7c\xfc\x10\x9e\x2a\xd3\xfc\xf8\x3e\x3c\x4f\xe0\x09\x5f\x4e\xa0\xcf\xf3\x13\x55\xed\xfc\x21\x00\xe9\xfc\xe1\x3d\x78\x3e\x80\x27\xe4\xd5\x87\xe5\xfc\x54\xbf\x00\x5c\xcf\xa1\xa9\xb9\x9a\xa3\xf1\xe8\x28\x1f\xa8\x3f\xc7\x23\x78\x1e\xe9\x97\x13\x78\x9e\xc2\x33\x85\x67\x0e\x4f\xaa\x9e\xf7\x1f\xc2\x13\x52\xef\x53\x28\xf0\x00\x4a\x43\x87\xc6\xa3\x93\x7b\xea\xa9\x16\x7c\x3c\x7a\x78\x1f\x9e\xd0\xd2\x43\xa8\xe3\x54\x3d\x8f\xef\xcf\x3f\xac\xc7\x27\x63\x68\xee\x64\xac\x0a\x9c\xe8\xb6\x4f\x8e\xe1\xe5\xfe\x11\x3c\x8f\xd5\xf3\x04\x7e\x9f\xc0\xef\xcb\x13\xc8\xa4\x0e\x9c\xf1\x09\x0c\xe0\x24\x3b\x85\x4f\x39\xa4\xe7\x2a\xe1\xe1\x48\xed\x88\xf1\xc3\x11\xbc\xa4\xaa\xa3\xa7\x47\x6a\x1a\xc6\xa7\x47\x47\xf0\x3c\x81\xa7\x1a\xc7\xe9\x31\x7c\x39\x86\x4a\x4e\x8f\x2f\x3f\xac\xc7\xe9\xf8\x04\x9e\x2a\x39\x55\xc0\x36\x4e\xef\xab\x55\x19\xa7\xea\xa4\x1a\xa7\x30\xd8\x54\x01\xc6\x38\x7d\x70\x1f\x12\x1e\x64\xea\x79\x72\x0c\x2f\x27\xfa\x45\x8d\xf0\x12\xce\x8e\xf1\xe5\x48\x75\xee\x12\x86\x76\x79\xfc\x00\x3e\xc1\xbc\xc2\x9e\x1a\x5f\xaa\x3d\x3d\xbe\x7c\x00\xbd\xbe\x84\x81\x5e\x3e\x1c\xc1\x73\xac\x9e\x29\xcc\xcc\x65\x7a\x1f\x9e\x0f\xe1\xa9\x06\x95\x1d\x65\x2a\x21\x3b\x3e\x86\xe7\x03\x78\xaa\xbe\x67\x39\x34\x9b\xe5\x47\xf0\xbc\x07\x2f\x74\x04\xcf\x23\xfd\xf2\x10\x9e\x6a\x82\xf2\x0c\x32\xe7\x54\x95\xcf\xe7\x00\x0e\xb9\xba\x34\x8f\x46\xa3\x0c\x9e\xb9\x7a\x42\x95\x47\xa3\xf9\xe8\xc3\xfa\x28\xa3\x73\xf5\x92\xcd\xc7\x1f\xd6\x47\x39\x85\x94\x5c\xdf\xc0\x47\x29\x5c\xba\x47\xf0\x72\x7a\x0a\xcf\xf4\xc3\x3a\x7d\xf0\x40\x15\x49\x1f\xa8\xc5\x4c\x1f\xa8\x29\x4a\x1f\x9c\xe4\xea\xa9\x6a\x4c\x1f\xa8\xaa\xd2\x87\xea\xb8\x4b\x1f\x8e\x1e\xc0\xf3\x52\x3d\x8f\xee\xc3\x13\xbe\xa8\x03\x33\x7d\x08\xcd\xa5\x0f\xa1\xc0\xe9\x91\x9a\xcc\xf4\x54\x1d\xd4\xe9\x29\xec\xb3\xf4\xf4\x3e\xa4\xc0\x86\x48\x4f\x15\x18\xa6\xa7\x97\xc7\xf0\xd4\x99\xd5\xa6\x4b\xe1\x40\x4e\x53\x38\xe8\xd3\xf4\x88\xaa\xa7\xda\xba\x69\xaa\x00\x22\x4d\xd5\x76\x4b\x53\x35\xa7\x69\x7a\xef\x18\x9e\x50\x40\xdd\x29\x69\x7a\x79\x04\xc5\x2e\xef\xc1\xf3\x04\x9e\x0f\xe1\x09\x15\xa9\x93\x28\x4d\xd5\x4d\x98\x5e\xd2\xfb\xf0\x7c\x08\xcf\xfc\xc3\x3a\x37\x08\xc7\x5c\xcd\xd7\xfc\x72\x4c\x3f\xac\xe7\x1a\x21\x99\xd3\x91\xfa\x44\x8f\xf4\x8b\x1a\xf3\x7c\x7e\x4a\xe1\x39\x9f\x1d\x36\x48\xc3\x93\x00\x4d\x07\xe1\xae\x22\x24\x41\xc0\x7b\x41\x4e\x1e\x3c\xec\xf5\x1e\x39\x6c\xc3\x13\xdf\xf3\xb6\xac\x6c\x8f\xc3\x74\xed\xa3\x4a\x40\x78\xdf\x26\xec\x88\x00\x3b\xa1\xd8\x84\x85\x1a\x66\x55\xf5\x9e\x7e\x91\xa4\x44\xdb\xae\x92\x24\x62\x77\x39\x66\x77\x51\x09\x24\xf2\xf8\xed\x28\xe4\xe2\xc8\x20\xa2\x71\x50\x9d\x04\x7b\xe6\x6d\x91\xca\xdb\x10\xf7\xb1\x1a\x37\xaa\x29\x27\x47\x90\x17\xa3\xb3\xc1\x40\x3a\x06\xa0\xae\xd1\xc8\xfe\xe0\x05\xed\x08\xd4\xfd\x5b\x88\xa6\x41\x43\x61\x97\x50\xfd\x03\x6f\xcf\x27\xb8\xcc\x99\xec\x33\x4a\xdb\x95\xb9\x51\x43\x02\x57\xf5\xcf\xca\x3c\x2e\x37\x1b\xaa\xdd\xe2\x55\x54\x02\xa2\xad\xa3\x84\xb3\x7a\x8f\x33\x9e\x20\x86\xae\x37\xe3\xb6\x01\x85\x72\x97\x43\x35\xf6\xf7\xdc\xac\xb8\x4a\x8e\xfd\xd0\xb3\x16\x13\xff\x33\x6f\x58\xf3\xce\x28\xbd\xf1\x2e\x78\x30\x82\x30\x47\xfc\x9a\xaa\x9e\x46\x0a\x10\xd3\x4c\x82\x3b\x7d\x9b\xa0\x7b\xec\x27\x49\x84\x4b\xcd\x45\x78\xaa\xb9\x08\xa5\x4c\x59\x59\xb5\x98\x12\x6c\x1e\x1f\xfb\x76\x59\xc0\x24\x90\x7e\x17\x8d\x0f\x7e\x55\xb6\x89\xce\x69\xbf\xc4\x12\x75\x72\x0e\xde\x7f\xc7\x3b\xaa\x59\xf0\x4a\x22\x2c\x09\xa1\x8d\xdb\x4d\xad\x50\xd5\x6a\xc4\x43\xd5\x5f\xf3\xc0\x00\xdc\x4d\x73\x9a\x49\x76\x6d\xf7\xce\x19\xd8\xfd\x08\xce\xa5\xfd\xdb\x4a\x47\x94\xec\xfa\xbe\x03\xe6\x5e\xf8\xbb\x3c\x88\x74\xfa\x8f\xcd\x87\x0f\x15\x8a\xfa\xd4\x84\x39\x55\x6f\x1f\x3e\x54\xff\x16\xa1\x1a\x22\x78\x8c\xc7\xbd\x5e\x1c\xc6\x24\x53\x8b\x6e\xaa\xda\xdd\xf1\xed\x05\x0f\xe0\xc8\xd2\x63\x2f\xd5\x92\x89\xa5\x8e\x16\xb4\x8b\x3b\x1d\x84\x0e\x22\x2f\x78\x2c\x91\x0e\xb5\x63\x62\x0c\x37\xda\x60\x9a\x93\x5f\x1a\x2b\xd2\xd2\x8f\x06\x4b\xfd\x63\xc7\xc9\xb3\x4b\x67\x4d\xca\x26\xe5\x74\x3c\xeb\xb3\x24\x82\x98\xdc\xcf\x55\xa7\xd2\x3c\xff\xa6\x5e\x75\x74\x9f\xe0\x74\x14\x48\x73\x25\x6d\x5a\x9f\xc4\xc2\x59\xa5\x4a\x7f\xf1\xff\xb9\xc5\x8d\xa0\x9e\x8e\xf4\x2e\x77\x22\x62\x5a\xce\x7a\xbd\x83\x17\x1c\x8c\x9e\x6c\x18\x5a\x60\x76\xd9\x00\xb4\xbb\xc9\xf8\x1f\xb9\xd1\x0c\x08\x37\xf2\x15\x95\x66\xa9\xaa\xc7\x37\x4f\x5c\x54\x83\xe6\xb4\xfb\x96\xec\xb1\xc7\x71\x8c\x10\xbe\xdb\xba\x62\xd8\xe4\xed\x94\xbd\x1e\x8d\x4b\xc3\xe1\x7c\xcc\x89\xb1\x02\xfe\x9e\xe3\x9f\x38\xfe\x13\x6f\x05\x6a\xd7\x71\x64\x42\x83\x61\x4a\x6c\x2c\x6c\x3b\xe8\x28\x17\xe9\xd5\x55\x7a\x59\xd0\x48\x51\xa9\x9b\x0d\x7c\x78\x2a\xf8\x0a\xde\xeb\xd8\xd3\xe5\xfe\x77\x1e\x68\x8f\x7e\xcf\x2d\xa3\xc3\x0b\x0d\xf4\x7f\xff\xf7\xff\x3d\x42\x1d\x38\xaa\xbd\x88\x33\x12\xef\xbb\x7d\xa2\x2f\x11\x9a\x21\x84\x47\x07\xc4\x3f\xff\x83\xb0\xdb\xbd\x5e\xfc\x3d\x27\xd2\x8f\x17\x7e\x4e\xc6\xa0\xb8\xe5\xe5\xba\x38\xea\xf5\x0e\xf4\xa8\x1f\x22\x54\x6b\x00\xf9\x9e\x4f\xda\x9d\x4b\xbc\x0f\xff\xe3\xff\x30\xa1\xf6\x22\x63\x6e\x9c\x74\x59\x09\x6e\xd7\x2f\x0b\x9e\x7d\x3a\xeb\x9a\xe8\xe3\xe3\xd5\x97\xb3\xae\x09\x68\x6e\xa2\xf0\x0d\xc6\xab\x2f\x91\x17\x55\x78\x5f\xd4\xa5\x28\x60\x49\xfd\xcc\x83\x40\xed\x3f\x59\x83\xee\xee\x4f\xdc\x18\x35\xc1\xd4\xed\x9d\xad\x47\xff\xd7\xff\xf9\x28\x42\x0a\x68\x7e\xe0\x10\x02\x62\x8c\x14\x94\x3d\xe6\x6b\xf0\xa8\xf1\x04\x22\xa2\xbf\x05\x3e\x8e\x0e\x06\xbd\xd9\xa8\x0d\x31\x97\x84\x88\xa1\xf0\x62\xc2\x1b\x80\x28\x75\x3d\x63\x7c\xb4\xbf\x1e\xd7\x43\x52\xea\x2a\x06\xa6\xaa\xf3\x63\x2d\x1d\xe5\xf8\x17\xb5\xf9\x1b\x5b\x0c\x72\x7c\x40\xa2\x0f\xe5\x87\xf2\xd2\x1a\x31\x1c\x7e\x28\x0f\xad\x20\x60\xe2\x33\x74\x42\x7d\x56\xe0\x2e\x3a\xce\xa2\x3c\x27\xe5\x59\xa3\xfc\xd7\x70\x62\x4a\x75\x81\x01\xcf\x97\x81\x13\xa0\x90\xe7\xcb\x9d\xfa\x8d\x34\xa1\xaa\xa8\xd5\xbd\x63\x83\x31\x9a\xb0\xc1\x38\x61\x10\xf2\xc1\xab\x52\x44\xaa\xc2\x03\x92\x4e\x62\x23\xdb\xe0\x9e\xfb\x58\x84\x65\x9f\xa4\xfd\x31\x4a\x5c\xaa\xba\xb9\x58\x7f\xec\x29\x03\xef\xf4\xaf\xe1\xc6\x2f\x3e\x94\x93\x8d\x9a\x85\x1a\xff\x95\x93\xcf\xac\xcc\xf9\xe7\xa1\xef\x3a\x69\xd2\x66\xc9\x35\x55\x04\x2c\xbe\x03\x12\x72\xf8\xb6\x2e\x8d\x83\x71\x1d\xf6\x45\x55\xe6\x14\x69\x3f\x97\x54\xd8\x70\x6d\x4d\x3d\x21\xfe\xe3\x55\x69\x0d\xcd\xe3\x03\x09\xba\x5f\x70\x2b\x5b\x1c\x15\x1d\x10\x8a\x7a\xbd\xd1\x01\x91\xc3\x8c\x2f\x55\xe2\xb3\x32\xff\x81\xb3\x52\x56\x71\x04\xbd\x7d\xcf\x9f\x95\x79\x04\x32\x9c\xbf\x70\x12\xf1\x32\xe3\xab\x9b\x88\x95\xf1\x9f\x79\x73\x16\xa9\x1b\xe0\xcf\xbc\xb5\x85\x4c\x56\x1c\xe9\x1e\x9c\x45\x08\x47\x76\x54\x0d\x96\xfb\x67\x3e\xd4\x19\x11\xfe\x1b\x6f\xc2\xc4\xff\x9d\xe3\xff\xa6\x60\xf2\x13\xbd\x51\x47\x6e\x45\x6e\x8f\x93\xe8\x59\x09\xb8\xcf\xc3\x24\x7a\x9c\x66\x9f\xaa\x55\x9a\xd1\x08\x9f\x26\xd1\xfb\xf4\x32\xc2\xe3\x26\xc3\xf8\x41\x12\xbd\x5b\xb0\xb9\x8c\xf0\xf8\x24\x89\x9e\x48\x51\x44\x78\xfc\x30\x89\x1e\x15\xea\xd3\x69\x12\xfd\x90\xae\x2b\x1a\xe1\xa3\x51\x12\x3d\x49\x57\xd5\x4b\x9e\x7d\x8a\xf0\xd1\x49\x12\x3d\xab\xb2\x08\x1f\x1f\x25\xd1\x3b\x5d\xfb\xf1\xb1\xca\x7c\x45\x7f\x5c\x45\xf8\xf8\x9e\xfe\xfd\x94\x7f\x2e\x23\x7c\x7c\x5f\xb5\x97\x47\xf8\xf8\x41\x12\x7d\xcf\x97\x2a\xf3\x49\x12\xbd\xa4\xaa\xd9\xe3\x87\x49\x04\x45\x4e\x93\xe8\xad\xda\x6a\x11\xbe\x37\x4a\x22\x5d\xf2\x9e\xaa\x47\xb0\x52\xbe\xcb\x84\x7a\xbd\x9f\x44\x2f\xc0\xa6\x28\xc2\xf7\x1e\x24\xd1\x53\xed\xf3\x1d\xdf\x3f\x4d\xa2\xb3\x08\x3f\x18\x27\x11\x89\xf0\xe9\x38\x89\x5e\xf1\x3c\xc2\xa7\x47\xf6\xc7\xb1\xf9\x31\x1e\x3d\x48\xa2\x7f\x53\x7f\x4f\x20\xeb\x78\x74\x9a\x44\x83\x08\x8f\xc7\xa3\x24\x1a\xaa\xbf\xe3\x24\x3a\x8c\xf0\x58\x0d\xd0\xd6\x3e\x3e\x39\xd6\x99\x1e\x3e\x80\x66\xc6\x0f\x4d\xe1\x87\x0f\x93\x08\xab\xbf\xa6\x92\x53\x53\xc9\xa9\xa9\x44\xb5\xff\x6b\x84\x8f\xd4\x34\x4e\x23\x7c\xa4\xe6\xf0\xc3\x07\xf5\x63\x9c\x44\x33\xf5\xf7\x28\x89\xfe\xd7\x08\x3f\x38\x3e\x52\xf3\xa8\x66\x41\xfd\x3c\xb6\xa3\x57\x2f\xf7\xec\x3c\xa9\x97\xfb\x6e\x8a\x1e\x1c\x1f\x9d\x1c\x35\x5d\x54\xaf\xc7\x76\x6e\xd5\x8b\x9d\x71\xf5\xfb\x41\xb3\x2e\xea\xf5\xc4\x5f\x9a\x07\xc7\xc7\xa3\x23\x37\xa9\x1e\x02\x42\xd3\x60\x6b\x17\xf4\x9a\x16\xdf\x1d\x4d\xe8\x50\xf2\x44\xdb\x93\x7a\x72\xe6\x7d\x79\x41\x17\x4e\x15\xf1\xe4\xbe\xa9\x27\x34\x60\xbe\x37\xcd\x09\x4d\x63\x39\x1d\xcd\x50\xe2\x49\x4f\xcb\xfd\xd9\x65\x1a\x83\x02\x27\x4a\x02\xab\x63\x4f\xf2\x9a\xfa\x28\xd9\x33\xad\xe3\x94\x01\x3d\x40\xfe\x59\x2a\x04\xb1\x3c\x00\x1f\xc4\x92\xbc\x67\x71\x89\x6c\xb0\x95\x47\xea\x05\x73\xc2\x26\x4c\x23\x89\x7a\x38\x65\x1a\x97\x28\x11\xf0\x1c\x39\x41\x86\x3a\x79\xb9\x47\xf4\xf2\xa0\x51\xdd\x05\x13\xff\xa4\x6c\xfa\x20\xcc\x27\xd3\x98\x76\x97\xb2\xd9\x8c\x08\x69\x9a\x0c\x7d\xdc\x83\x33\x8e\xd2\x44\xc5\x30\x62\xcd\x0f\xef\x0e\x91\x3a\xdc\x75\x03\x8d\x89\x8f\x1c\x66\x8b\x73\xc2\xf5\x0f\xaf\xa7\x3a\x1d\xa7\x93\x51\xc2\xbd\xc3\xbc\x51\x51\x48\x5b\x0a\x33\xae\x2f\x6e\xd6\x41\xbb\x5c\x1c\x90\xb2\xd7\x93\xe7\x5e\xd1\xca\x0c\xfb\xef\x3c\xd4\x52\x10\x5f\x0b\x5a\x01\xce\xa9\xc1\xaf\x83\xec\xf5\xc0\x8b\x43\x23\x75\x6c\x12\x09\x91\xda\xc7\x03\x21\xd2\xc3\x29\x84\x13\xbf\xaa\xe6\x99\xee\x2b\x06\xad\x55\x3d\x85\x13\x53\xfe\x00\xdc\x44\xf4\x7a\xf1\xdf\x39\xf0\x15\x50\xb2\x23\xa1\x44\x58\xa0\x8e\x20\x65\xbd\x63\x6e\x8a\x34\xf4\x76\x5d\x3a\x1b\xfe\xbe\x50\x94\x1f\x18\x1f\x19\x92\xee\x62\xd4\xeb\x3d\xe1\xc6\x48\xc3\xde\xc7\x12\xa1\x5d\xd8\xf7\x3a\x6d\xd3\xe9\x1a\xcc\x7d\x07\x3a\xdd\xac\xc9\xe4\x89\xab\xab\x54\xfb\x74\x4c\x09\x9b\xf2\x19\xae\x88\xe9\x63\xea\x40\x76\x20\x12\x55\xc6\x04\xa8\xaa\x2e\x52\x63\x1d\x5e\x9d\xa7\x4d\xd4\xab\x2e\xb8\x57\xa8\x08\x49\x8d\x9f\x0d\xf8\xe9\x25\xab\x66\x2a\x44\x08\x9f\x54\x89\xb8\x18\x11\x12\x43\x8b\x7d\x22\x66\xc8\x35\xa5\x4a\x18\xd7\x7b\xd0\x77\x2f\x4f\xa0\x6f\x5c\x11\xa8\xa2\xe9\x23\x74\x5a\x95\xc6\x83\xb1\x5a\x18\xf3\x0e\xfa\xb3\xea\x83\x1f\xfc\x6f\x6b\xae\xd4\xe4\xbb\x18\x76\x67\x6c\xe7\xc4\x33\x84\xce\x10\xeb\x3b\x2f\x4b\x5d\x76\x3e\xda\x6c\xd8\x45\x70\x6a\x4c\x40\x29\x99\xd5\xbe\xf7\xb7\x86\xf6\x1e\x9d\xd1\xf3\xf1\xe8\x8c\xf6\xfb\xe8\xbf\xf1\x29\xed\xdf\x7b\x38\x23\xf0\xe3\xf4\xc1\x8c\x68\x65\x8b\xd8\x68\xec\x53\xf2\xe0\xfe\x19\x3d\x27\xa7\x4d\x76\x9b\x05\xc6\xf4\xc4\x30\xcf\x9a\xfc\x63\x95\x7d\x7c\xd4\xd4\x3e\x1e\x8f\x4d\xf5\x70\xe6\xcf\x48\xf4\x3c\xea\xd3\x1a\xc5\xfa\x80\xca\x53\xb2\xe5\x54\x03\xe4\x66\x7b\xe5\x94\xa3\x13\xfd\xf2\x30\xcd\x66\x87\x58\x92\xc3\x69\x25\x3f\xbf\x9e\x1d\x62\x41\x0e\xa7\x2f\xdf\x8a\xd9\x21\x2e\xd5\xaf\xcb\x71\x39\x3b\xc4\x8c\x1c\x4e\xd5\x0f\x2f\x6c\x78\x10\xbd\x01\x16\xce\x86\xc6\x81\xcd\x69\x1c\x01\x48\x4e\x44\xdd\x16\xf0\xa6\x46\xe9\x5c\xd3\xa3\xa9\xe7\x0b\xcb\xe9\xf6\xe2\x82\x58\xd5\x6a\xbc\x56\x78\x71\x46\x46\x67\xd9\x79\x71\xd6\xef\x67\x68\x6d\x74\x09\x48\x5c\x91\xd4\x67\x3d\x66\x08\x9d\x93\xa3\x7b\x27\x93\xe8\xd2\xfe\x93\x95\xfc\x5c\x5d\x06\xff\xaa\x4a\x0d\xf5\xf5\x77\xdf\x7d\xf7\x1a\xfe\xe1\xd7\xf8\xf5\xd8\xfd\xd3\xdf\x5e\xbf\xdc\xfb\xef\x5b\xd2\x4d\x43\x97\x7b\xff\x61\xd5\x3c\xb4\xaf\xeb\xfb\xee\xbb\xf1\x18\x7e\x8e\x5f\xde\x55\xfd\x1d\xcd\xea\xf4\xc8\x42\x78\x85\x92\xf1\xbd\xa3\x7b\xe7\xa4\x52\x5b\x9b\x8c\xef\x1f\xdd\x9b\x44\x6f\xa3\x64\x7c\xff\xf8\x81\xfb\x78\x72\x72\x3c\x89\x84\xf7\x0f\x8b\xd7\xaf\x97\xf0\x4f\xfc\x2b\xff\x96\xc1\x3f\xf3\xb1\x74\xff\xbe\x2b\x4b\x95\xe9\x5f\xaa\xfa\x3f\xd6\x15\xf8\x07\x23\x6b\x26\x68\xa0\xa6\x02\x25\xe3\x93\x13\x37\x4b\x47\x47\x47\xa3\x49\x24\xa2\xe4\xe1\xf8\xf4\xc8\x7e\x7c\x78\x34\x3a\x9e\x44\x9f\xa3\xe4\xe1\xd1\xe8\x1e\x21\xd5\x24\xba\x8c\x92\xe8\x65\x84\x3a\x19\x69\xc2\x59\xe6\x24\x7a\x19\x39\x08\xbd\x8d\x96\x11\x21\xf1\x35\x59\x4f\xb3\x19\x9a\xa8\x27\xc9\x93\x9c\x5c\xd7\x7e\x99\x45\xab\xcc\xd8\x2b\xd3\xeb\x45\x8a\x74\x5b\xe8\xb2\x51\x19\x25\x42\x6f\x97\x6b\x1d\x83\xf1\x1a\x43\x3a\x84\x50\x84\x1c\x6f\x21\xb0\x3e\x17\x71\x46\xc6\x38\x27\xeb\xe9\x68\xa6\xaa\x1e\x8c\x4d\xe5\xfd\xb0\x72\xd5\x56\x6e\xfe\xae\xa7\x59\x7f\x3c\x33\x2d\x8d\x23\x85\xc0\x1e\x90\xeb\xcd\x26\x3f\x30\x49\x9b\x4d\x34\x8e\x0e\x20\x7f\xa9\xfe\x6e\x36\xba\xd1\x1c\x61\x35\x26\xdd\x6a\xb3\x3f\xd5\xee\x8e\xb0\xd7\x1e\xd2\x55\xbf\x8e\x1c\xa7\x3d\xfa\x4e\x75\xbe\x39\x4f\xe7\x24\xeb\x8f\xcf\xe6\xe7\x45\xaf\x07\x49\xeb\xe9\x7c\x76\xd6\xef\xcf\xd1\x99\xcd\xb1\x22\x59\xaf\x17\x1d\xe8\xee\x0e\x54\x9f\x74\xee\xb1\xc9\x3d\x81\x9e\xbf\x8e\xf0\x92\x64\x67\xcb\xf3\xf9\x59\xbf\xbf\x44\xeb\xe9\x72\x46\x56\x9d\x8c\xcc\x07\xe3\xda\xf6\x13\xb7\xe6\xfd\x1a\x42\x55\xab\x2e\x76\xa2\x97\x6a\xce\x4d\xad\xd7\x66\x46\x5e\x6e\xcd\x3d\xda\x1a\x32\x58\xc9\xeb\x50\xeb\x30\x60\x18\x98\x37\x28\x97\x38\x9f\x21\x3d\x2e\x50\x66\x22\xd0\x60\x9c\x4d\xf4\x98\x00\xac\xf0\xa5\xf9\x3a\x3f\x2f\x26\xaa\x80\x06\x36\x55\xe1\x8a\x5c\x6d\x36\x97\x13\xd5\xa3\xe8\xed\x1d\x23\x05\x57\x09\xf8\x23\x68\x3e\x7b\x1d\x05\xc5\xdf\xa0\x97\x2a\xe3\x67\x92\x41\xae\x7e\x3f\x53\xb9\x7a\x3d\x3f\x0b\x0c\xee\xec\x63\xe3\xda\x99\xc7\x23\xfc\x19\x67\xbe\x85\xda\x33\x92\xe1\x2f\xe4\xa3\x75\x11\x14\xd4\x15\xbd\x8c\x00\x88\x66\xba\x22\x95\xb6\x24\xcf\xce\x96\xe7\x19\xf4\x86\xd9\xa6\x96\xaa\x37\xcf\xce\x97\xbd\xde\x47\xab\x90\xfc\x05\x8f\xb0\x6e\x71\x8c\x9f\xe1\xa5\x41\xc5\xdf\x90\xa5\x69\x61\xa9\x6a\x01\xfc\xd0\x55\x01\x33\x71\xb6\xa3\x86\x23\xfc\x46\xd5\x80\x9f\x91\x25\xf4\xbb\xdf\x5f\x76\x9e\xa9\xd2\x7b\x5a\x53\xe3\x33\xb7\xd6\x98\x90\x8f\x0e\xe7\xed\xf5\xe2\x1b\x92\x3a\xbb\x9c\x0f\x55\x5f\xeb\x0e\x42\x0e\xb8\xf7\x6e\x1a\x1e\x32\xfe\x38\x5c\x97\xda\x1e\xce\xce\xdc\x08\x7b\xe9\x08\x21\x3c\x86\x88\x96\x1f\xd1\xae\xea\x3f\x54\x7d\x6d\xed\x13\xeb\x2c\x92\x0f\x5a\xd5\x07\xab\x52\x0c\xfc\xc4\x42\xd5\x7e\x14\xf6\xbd\xdd\x9f\x31\x86\x54\xc9\xed\x5f\x84\x70\x93\xff\x20\xec\x59\xd0\x5a\x93\x0b\x17\xaa\x29\xfc\xb1\xae\x1b\x56\xd9\x9b\xe1\x35\x15\x15\xe3\x25\x89\xee\x0f\xc7\xf7\x87\x47\x11\x7e\x53\x23\x84\x7d\xa6\x4c\xc4\x41\xbd\xcd\x73\x45\xff\x65\xc5\x85\xac\x7a\xbd\xad\x94\x25\xcf\xd7\x05\x9d\xd0\x58\xd0\x7f\x5f\x33\x41\xe3\x68\x38\x3c\x1c\x0e\x0f\x0b\x76\x79\xd8\x28\x13\x47\x08\x25\x3b\x18\x24\x39\x9d\x03\xfd\xa3\xff\x0e\xd3\x65\x3e\xd1\x3f\xe3\xe9\xee\x6a\x66\x98\xa2\x84\xc6\x0d\xdf\x19\xd5\x61\xec\x8d\x68\x5d\xd1\x6e\x25\x05\xcb\x64\x64\x98\x96\x1e\x47\x7b\x50\xb0\x52\x9a\x88\xce\x55\xd4\xe0\x4b\xc2\x68\xfc\x3a\xb1\x0e\xf8\x23\x73\x6f\xa1\x24\xd0\xd7\x29\x8e\xa5\xd6\x64\xd5\xf8\x7d\xe3\x14\x6d\x87\xb0\xad\x15\x72\x5a\xf3\xb9\x1b\xd2\x37\x96\x86\x4c\xf1\x85\x4b\x8e\x42\xe7\xf3\x86\xdb\x8f\x23\xd0\xf2\x05\xad\x5e\xcc\x50\xa7\x34\xf2\x56\xc9\x57\x3e\xe9\x29\x87\x19\x30\x4a\x7f\x19\x94\x01\x2b\x7a\x70\x1f\xf5\xa3\xd5\x97\x08\xdb\x72\xc0\x81\xb5\xb9\xff\xde\xbf\x0f\xa9\x9e\x2c\xcf\x09\x5a\xb6\x26\x52\x72\x5e\x48\xb6\x52\x55\xf9\xa2\x4e\x31\xcc\x0a\x5e\x52\x60\x0a\x1f\x8c\x10\xc2\xa1\xe0\xc1\xcf\x5a\x82\x43\x91\x72\xdf\xd8\xb0\x9a\x16\xe3\x05\xcb\x76\x97\xaf\xd2\x8c\xc9\x1b\x70\x54\x15\x7c\x21\x63\x84\xcb\x5a\xad\x88\x37\xaf\xa9\xc1\xb8\x65\x47\x4f\x22\x33\x2d\xf0\xb5\x8c\x70\x0a\x01\xed\xe3\x58\x36\xbe\x03\xf4\xe2\x3b\xa7\x8f\xad\x26\xb5\xf1\x7a\xab\xd9\x91\x6f\x6f\xe0\x93\x23\x2a\x77\x8d\xf0\x83\x11\x44\xc9\xd4\x7e\x88\x8d\xd3\xf2\x8a\xca\x17\xa5\xa4\xe2\x3a\x2d\x82\x22\x6c\x1e\x73\xd4\x90\x31\xec\xec\x8c\x92\x40\xec\x0a\x06\x2b\xbd\xde\x78\x4c\x08\xf5\x65\x96\x2a\x9b\x96\x59\x52\x12\x0a\x7a\x6c\xa8\x64\x6d\x49\x7a\x9b\xc6\xbe\x27\x27\xe7\xb4\xb5\x0b\x3a\xde\xae\x4f\x95\xea\xf8\xbd\x11\x84\xc9\xe2\x65\x7b\xd6\x3c\x8e\x4d\x40\x68\x68\x7b\x56\xe7\xb8\xc0\x18\x9f\x3b\x6a\x43\x4f\x91\xe7\x5a\x60\x91\x56\x7f\x06\xb7\xb4\x36\x34\x14\x2f\xc1\xe7\xe5\x9b\x6b\xea\x69\x56\xca\x56\x5c\xdf\xc6\x66\xce\x9a\x63\x49\xcf\x1c\x0b\xc6\x79\xf8\xe1\x72\xd7\xa6\x1f\x18\xc5\x4c\xe1\x05\xfd\xb6\xd3\xd3\x58\x47\x8a\x7d\xc2\x06\xcc\x49\xcc\x60\xbb\xf4\x99\x91\x57\x1c\x1e\xe1\x94\x80\xe7\xb0\x55\x9f\x0d\x2f\xb9\x94\x7c\xa9\x3e\x16\x20\x30\x72\x4e\x38\x63\x3a\xcc\x38\x17\x79\xa5\x88\xc9\xf8\x56\x55\x91\x70\x2c\xf9\x2a\x49\x6b\x1c\xe9\x9d\x17\x21\x14\x10\x53\x0d\xff\xc5\x60\x41\x39\x29\xa6\xd9\x6c\xf8\xf1\x63\x5a\x96\x5c\x82\xe5\x5c\x27\xef\xf5\x0c\xbd\x95\xa3\x7a\xed\xec\xef\xf7\xb9\x4a\xdb\x3d\x65\x78\x4b\xd5\xc0\xf2\xe0\x9f\x8b\xf4\x4a\x33\xd3\x8d\x73\x7f\xba\xc3\xab\x3f\x9d\xf2\x59\x27\xd4\xbf\xa8\x14\xdd\x58\x43\x90\x47\xac\x8e\xe8\x35\x44\xe5\x30\x61\x3d\x61\xa5\x3f\xa7\x4c\xb2\xf2\xea\x39\x17\x64\x14\x04\x72\x6e\x04\xb2\x10\x9f\x79\xa8\x16\xaf\x23\x1a\x50\x01\x6b\x38\x05\xab\xfa\x35\x96\xed\x20\x9c\xd6\xac\x3a\x08\x44\x65\xbe\x4d\xcb\x99\xf5\x2f\xdb\x69\xe5\xf3\xbb\x91\x82\x9d\x17\x78\x81\xd2\x43\xbc\xf3\x10\xc7\x15\x49\xed\xe5\x9a\xde\x75\x5c\xea\x7b\x67\x10\xf5\x05\x66\xea\xd8\x51\xf4\xf1\x1d\x4a\x30\x61\x2b\x08\x7d\x43\xd5\xcb\xb5\x3a\x8f\x0b\x1a\x81\xcc\x12\x9c\x06\xf2\x32\xae\xec\xee\xbd\xa6\xa2\xe5\x58\x5a\x6b\x86\x54\xda\x89\xb2\xc7\x1c\xf4\x4d\x7d\x2a\x7a\x4d\x05\x93\x37\x1d\xad\x9b\x1e\x51\x7d\xa1\x1b\x7f\x94\x77\xdf\x6f\x4e\x02\x79\x57\xdf\x69\x55\xa5\x57\x74\x00\xc6\x72\xdf\xa4\x15\x44\x87\xa6\x0c\x0a\xe4\x97\x85\xef\x8c\xb4\x81\x1e\x7b\x0e\xe1\x92\x08\xfb\x7b\xb3\x11\xd8\xec\xf4\x47\x6e\x37\x55\x6a\x5b\x5c\xa9\x7b\xb2\x58\x81\x47\xd8\x1f\x78\xa5\xd0\x42\x84\x23\x55\x4f\x84\x3a\x6a\xd9\xc4\x30\xad\x6e\xca\x6c\xb3\x61\xfa\xc7\xc4\xbf\xf5\x3d\x46\x97\xd7\x03\xcc\xc1\xab\x42\x03\xf3\xe1\xfd\xc4\xc9\x60\x8c\x41\x5e\x1c\xbb\x38\xc7\x29\xaa\xa5\x5a\x3b\xef\x03\x16\x31\x74\x0f\x6c\x59\xe3\xc0\xf9\x80\x6a\x76\xab\x02\xec\xb7\xa8\x2d\x50\xca\x5e\x4f\xf8\x2e\x06\x29\xb8\x93\x2c\x11\x5e\x03\xca\xa2\x0e\xfd\x52\xed\x51\xd8\xb8\x25\x4a\xd4\x67\x16\xb6\xaa\xd2\x7d\x2b\xb9\x35\x44\x3d\xbf\xe5\x96\x3d\x66\xac\xfa\xe0\x04\xf4\x66\x60\x4d\x0a\xb7\x0e\x19\xd9\x2d\x64\x05\xbf\xc4\x5b\xc6\x20\x8e\xb5\x6d\xbd\x39\x5a\x43\xe9\xb3\x58\x4e\xd9\x0c\x6c\x1e\x98\x6f\x59\x5a\x7a\xde\x82\x63\xa1\x88\xe0\xd1\x59\x7e\x9e\x35\x75\xe6\xba\xce\x05\xd8\xe1\xab\xfb\x62\xe1\x93\xba\x70\x3d\xad\x48\xe1\x1f\x39\x5f\x3f\x1e\x97\x64\x74\xb6\x3c\x5f\x34\x8d\x2c\x2d\xe9\xba\x98\x2e\x67\xf8\x8a\x5c\x37\xfb\xe8\x6a\xb3\x89\xaf\xdc\x3e\xc2\x8c\x5c\xe1\xb9\x7d\x25\x24\x2e\xc9\x1c\x4d\xca\x84\xe1\xf5\x70\xce\xc5\x32\xf5\x20\x54\x51\x1b\x64\xfb\x73\x7c\x8d\x10\x0e\x3a\xbc\x6a\x1d\xc7\x2a\xc3\x35\xf0\xcd\x0b\x7b\xec\x19\xaf\x5e\xd6\xcb\x76\x7c\xad\x39\xb8\x2a\x17\xbe\x75\xdb\x35\xd9\x79\xd4\x0c\xa2\xfe\x15\xf6\x2f\xa2\xe4\xba\x46\xa8\x2e\xc2\x63\xba\xa2\x52\xbf\xbc\x82\xd3\x29\xce\xb1\xc4\x69\xbc\xc2\x73\xbc\x70\xce\x5f\xb0\x03\x8b\xa1\xc1\x26\x2b\x84\xea\x7a\x3d\xe4\xa5\xf6\x27\xfe\x92\x95\x0a\x84\xd5\x3d\xd7\xfa\x14\x0b\x9c\x61\x1f\x1b\xcf\x82\x53\xab\xb9\x3d\x64\xaf\x17\x87\x26\x6c\x16\x17\x51\xc8\x9c\x45\x4b\xf6\x20\x71\x85\x42\xf8\x55\x3e\xdb\xcd\x5c\xbb\xcf\xb9\xaf\xb0\xba\x1a\xac\xce\x59\x69\x1c\xe0\xc5\xfa\x9c\xc0\x07\xe3\x70\x73\x62\xcd\x53\x4d\xc1\xb9\x3d\x1d\xbe\x28\x99\xea\x12\x57\xc0\x09\xd1\x82\xc4\x8e\xd3\x0a\x5e\xde\x94\x4f\x60\x3b\xf7\x7a\x22\xdc\xdd\x19\xe0\xcd\xf3\x79\x0c\x47\x18\xb8\xe8\xa3\xc2\x49\xbe\x83\xf3\x3e\xac\xbc\x41\xb0\x10\x0e\xe6\x24\xc8\xe6\xa6\xc7\x38\xa9\xf0\x13\x91\xef\x4b\xa2\xd2\x67\xa8\x1d\xbe\x0e\x32\x50\x45\x0a\x93\x39\x18\x9b\x9d\x57\xf9\x3b\xaf\x9a\xe6\x33\x6d\xc2\xbe\x06\x7f\x11\x7a\x23\xfa\xf5\x83\xdd\x14\x8b\x05\x8e\xe7\xa4\x44\xde\x61\xf5\xdc\xcc\xe8\xe4\x36\x3c\xb5\x93\x79\x9d\xc4\xf3\x5e\xef\x60\x74\x40\xc8\x7c\xb3\x89\xe7\x60\x3f\x35\x47\x78\x6d\xa2\x31\x2d\xf6\x4f\x6a\x19\xcc\xe9\xe8\xc0\xcb\x6b\xe1\xd1\xdc\xa2\x5f\x9f\xe9\x45\x38\xbd\x45\x2c\x34\xba\x3f\x07\x47\xd6\x06\x52\x20\xc0\x4c\x05\xb3\xb5\xa2\x42\xed\xe4\x97\x00\x33\x71\xdb\x7a\xb7\x99\x91\x5e\x4f\x07\x5a\x45\x26\xda\xc1\x7f\x41\x4a\x5d\x91\xd8\x57\xac\x92\x54\x98\xcb\xd7\xec\xa4\xe8\xb7\x8a\x97\x3b\xc3\x28\x4c\x67\x1d\x95\x06\xe0\xba\x4a\x45\x45\xc1\x7d\xa4\x4f\x82\x37\xc1\x1d\x86\x05\xcf\x3a\xc2\x77\xf7\xa2\xef\x76\xa6\x95\xba\x3e\x82\x52\xd5\x18\xdb\xd7\x0c\x2c\x3e\xc1\x5d\x99\xcd\x57\xa4\x7e\x36\x78\xb3\xb9\x0c\x2a\x92\xc8\x1a\xd5\xa0\x3a\x1b\x76\x4b\xd1\x80\x5a\x63\xa5\x74\x0a\x2b\x5d\xf1\xff\xc3\x95\xbc\x49\x97\xc5\xbe\x95\xd4\xd3\xa6\x72\x0c\x0b\x9e\xe6\xcd\x9c\x31\x7b\xfd\xeb\x48\x00\xbb\x16\xb1\x34\x5e\x53\x86\x5b\xcb\xb6\x95\x62\x97\x8a\x59\xfc\xb1\x46\xff\x93\x57\x04\x47\xd9\x6f\x55\xf4\x47\xad\x4b\x30\x99\xa0\x51\x96\x2e\x73\x08\xac\x15\xac\x17\x8e\x56\x45\xca\xca\x28\x5c\x37\x0c\x11\xbd\x97\x3c\xa7\x3f\xbe\x7d\x09\x5a\xae\xe6\x37\x51\xcd\xa9\xdf\x87\xdf\xbd\x3e\xfc\xee\xf5\x50\x75\xd8\x20\xfb\xb7\x9e\xbe\x49\xc0\xe5\xd2\x85\x2b\xf0\x32\x4d\x15\xe2\x41\xcb\x8c\x51\x90\x53\x37\x82\x77\x45\x75\x35\x64\xf6\x74\x66\x68\xca\xd2\xd7\xe3\x37\x15\x6d\xd9\xb6\x4e\xf9\x0c\x29\x94\x5b\x63\x78\xa0\xde\x0f\x02\x77\xcb\xad\xf5\x9a\xd0\x24\xdb\x4e\x8e\xc1\x0e\x6b\xd6\x11\x21\x83\x81\x42\x57\x62\x54\xd7\xb1\xc0\x2c\x30\x33\xb7\x21\xed\x82\x1e\x9a\x35\x7e\xa5\x48\x11\x10\xe4\xa7\x0a\x11\xf0\xbe\x36\x8d\x5b\x4f\xc2\xd6\x00\xe2\xc0\xae\x36\x33\x01\x02\xcb\x74\x49\xad\xc3\xf6\xad\x51\x7b\xe1\xb8\x63\x1b\x6d\x4e\xec\xcf\x04\xbe\x39\x8c\x02\xa0\x99\x05\xb7\xa8\x36\xfc\x5f\xac\x16\xf5\x0a\x6b\x3b\x72\x03\x17\xa0\xa2\xa1\x6f\xf3\x7d\xd4\x5c\x95\x09\xb6\x52\x14\x50\x35\xac\x44\x46\xd2\x8e\x76\xb4\xe4\xb2\x07\xca\xc4\xef\xd3\x2b\xad\x4a\x6c\x4b\x4d\x47\x33\xbc\x26\x02\xd0\x74\x3e\xeb\x58\xa2\x54\x6d\xf5\xf0\xe2\x53\xc3\xdc\x2f\xd0\x5f\x37\xcb\x40\xd1\x7a\x4a\x67\xb1\xbd\x11\x0b\x9f\x59\xab\x7d\x58\x3f\xa6\x73\x2e\x68\x5c\xe1\x42\x0b\x43\x60\xe3\x11\x22\x27\x6e\x8b\xa6\x08\xf3\x58\x9d\x91\x6a\xd3\x00\x4e\x62\x52\x7e\xab\xe2\x69\x3a\xc3\x1c\x5c\x3b\xa4\x6b\xc9\x5f\xf2\x34\x0f\xd7\x55\xc7\x1b\xd9\xbd\x6a\x02\x6d\x36\x21\x90\x88\xf0\x76\x57\x88\xb1\xc5\x98\x54\x0d\x11\x96\x3e\x12\x05\x9f\x60\x5c\xf5\x7f\xd1\x3b\xa2\xd1\x43\x73\xa6\x1c\xdb\xb6\xee\x12\x6d\xfb\x86\xfe\xb1\xd4\xdd\xc8\xbb\x80\x1d\x75\xa3\xbe\xd4\x0e\xa1\x2b\xb6\x5c\x15\xb4\xab\xa7\xae\xf6\xf9\xfa\xae\x7e\xb3\x4b\x0e\xe3\x49\x82\x0e\xcd\x79\x16\x45\xce\xac\xc2\x27\x8b\xb5\x1d\xc5\x24\xa6\x43\x06\x4e\x50\x9e\xa4\x95\xa6\x94\x23\x16\x21\x4c\x15\x75\x01\xf6\xd7\x28\xa1\x8d\x32\x09\xf6\x2c\x30\x62\x30\xd2\x97\x93\x28\x4a\xa2\x7f\x44\x08\xac\x30\xc0\x1a\x03\x45\x58\x04\xf2\x03\xaa\xd0\x94\x98\x0e\x4b\xfa\x05\xfc\x4a\xa9\xed\x8b\x7a\x3d\x09\x21\x1d\x83\x8f\xd8\x44\xf1\xbc\xa2\x5f\x88\x00\xa7\x45\x57\xf4\x0b\xb2\x8a\x1c\x9f\x68\xe8\x76\x6b\xdb\x6f\xa0\x77\x0a\x35\xe0\xd3\x48\x18\xdc\xf9\xf0\x61\x78\x78\x85\x03\xbf\xee\xbb\x28\x73\xd1\xef\x23\xcf\x6f\x60\xaf\x07\x3a\x5c\xdb\x95\x78\x1a\x54\x60\x02\xff\x89\x96\xa6\xcf\x79\x2a\x53\x42\x5b\xac\xe4\x6d\x87\x3b\x56\x7f\xab\x1c\xae\x74\x60\xc6\x06\xab\x33\x1f\xac\x57\x4b\xdb\xd2\x88\x78\x69\x96\x23\xda\x94\x37\xf1\x00\xc5\x70\xc5\xab\x7e\x18\xee\x05\x33\xdd\xc3\x5a\xfb\x7e\xe7\x59\x5a\x58\x3f\xf0\xea\xf7\x90\x96\xb9\x22\x1a\xb4\x04\xd0\xfb\x88\xac\x00\xc8\xfb\xf6\x5e\x55\xa4\xa3\xf7\x38\x27\x60\x3a\xd5\xe6\x7a\xa7\x40\x58\xb3\x1b\xb8\x16\x0b\x74\x9a\x1a\x14\x24\xeb\xce\xa8\x19\xf0\x0a\xa0\x56\x6d\xaa\xad\x77\x59\x5a\xf6\x7a\x71\x45\x5a\xdf\x8c\x5d\xcd\x30\x5b\x0b\x01\xe4\x0a\xc8\x2b\x61\xe4\x9a\xe4\x12\xb2\x5f\x19\x9b\x19\xcc\xeb\xc6\x79\x22\x9d\x96\x9a\xfe\x50\xe7\xf6\xe8\x6c\xdd\x70\xa3\xd7\x96\xef\x9b\x91\x62\xba\x9e\xe1\x9c\xc4\x07\x19\xac\xe5\xb0\xe2\xc5\x66\x23\xd4\x9f\x18\xa1\x66\x9e\x32\x03\xa9\x0a\x00\x73\x98\x4e\x93\x5f\x41\xf7\xc4\xb4\x43\xbc\x6f\x89\xf9\xad\x80\x6b\x12\x83\x94\x27\xcd\x3e\x6d\x36\xf6\x97\xcf\xea\xd1\xa5\x11\x6e\x55\x03\x1b\xc6\xd5\xc3\x57\xbd\x9e\x29\xeb\x7e\xf8\x80\xa1\x8b\xda\x04\x70\x32\x8b\xb0\x29\xbc\x04\x79\x50\x0a\x72\x3e\xef\x13\xce\x2c\x2c\x9b\x8f\x6a\x12\x15\xa5\x56\x9a\x5f\xc6\xc9\x99\x79\x33\x6e\xee\xfa\xd2\xbc\xff\x58\x32\xe9\x8a\xe6\xb4\x5d\x14\xdc\xdc\x5a\xc6\xf4\xc5\x11\xf8\x60\x37\xc0\x6b\x94\x06\x34\xd9\x7c\x74\xb6\x38\x77\x7c\xee\x45\xbf\x8f\xf2\xe9\x62\xa6\x2a\xb2\xd0\xaf\x91\x65\x70\x66\xa9\x92\x30\xf4\x39\x31\x7d\x9f\x82\xdb\x16\x8f\x47\x7b\x99\x66\x9f\x7e\x5c\xc5\x79\x23\xa8\x1e\xc4\xf9\x74\x3c\x9b\xa8\x87\xf9\x92\x8c\x60\x6e\x74\x05\xa3\x99\x45\x9f\xcd\x97\x5e\xcf\xfc\x80\xc0\xc7\x93\x26\x9f\x6d\xb3\x51\xd4\x84\xa5\x8e\xb5\x70\xaf\xae\x43\xcd\x35\x2d\xe5\x22\x8d\xff\x17\xed\x91\xf2\x80\x6e\x36\xf6\x9e\x73\x88\x14\xdd\x6c\x0e\xe4\x8e\xef\x2d\x5b\x12\xe1\x69\xf6\x94\xfb\x7d\x5e\x94\x48\x1f\x9d\x3b\x9d\xab\x1c\x70\xed\x44\x46\x86\x21\x22\x45\xbf\x5f\x87\x3e\x5c\xd0\x8e\xe2\xbd\x9e\x18\x0c\xbc\x23\x4a\x84\xe2\x86\x12\x33\x6c\xa3\x48\x68\x2d\xda\x15\x15\x15\xb8\x9d\x6b\xec\x5e\x0b\x38\xd8\xec\x67\x38\x0e\xaa\xb3\xa2\xd7\x3b\xa8\xce\x0a\x52\xc0\x8c\xa2\x98\x0d\xab\x15\xcd\x26\xdc\xfc\xc0\x05\xfc\x41\x8a\xe8\x51\x28\x0c\xd1\x67\x0b\x82\xf3\xa2\xd0\x78\xe2\x9a\x54\x13\x1d\xcf\xc1\xe4\x52\x97\x8e\x89\x83\x12\x4b\xac\x2b\x42\x38\x83\x6c\xb0\x5b\x12\xaa\x8f\x0f\xe8\x43\xbc\x46\x1d\xbf\xbf\xaa\x43\xe6\xc4\x0d\xfb\x4a\x6e\xa1\x8d\x35\x56\xf5\x25\xa6\x7f\xba\xbe\x0c\xc3\xd6\xdf\x2e\xa3\x43\x06\x35\xe7\x65\x66\x5f\x5d\x65\xb4\xcc\x13\x66\xce\xe6\x18\x7e\x20\x6c\x0e\x40\xfb\x1d\xb8\x40\x4c\x87\x29\x7c\xe6\x65\x04\x1f\x7c\xf6\xb0\x4e\xd2\x5e\x2f\xd5\x80\x9b\x4e\xd3\xc6\xb3\x51\x92\xd6\xbe\x64\x64\x67\x38\xc9\x20\x66\x88\xea\x1d\x38\x25\x6c\x4e\x72\xbd\xb3\x51\xeb\xe8\xf6\x92\x62\x7f\x90\x2e\xb4\xb4\x16\x43\xdb\x83\x61\xb3\x31\x99\xd4\x31\x9b\xf3\x52\xbe\x80\xcf\x7a\x9e\xf6\x0b\xfd\xb6\x2c\xf8\xd8\x3c\x96\xe0\x5e\xc9\x37\x6e\xb5\xe7\x20\xde\xae\x1a\x5d\x0c\xc6\x0d\xa2\xf0\x43\x5a\x55\x86\xba\x70\x27\x96\x8b\x43\x59\x11\xe9\xae\x8e\x0e\x4d\x40\xc9\xf7\xac\xe9\x8c\x76\xcb\xeb\x18\x82\x85\xbd\x4c\xd6\xa4\x32\x4e\x79\xd7\xe1\x99\x08\x0b\x17\x7c\x7b\x31\x7f\xc9\x4a\x6d\x34\x6c\x2f\xa2\xb5\xbe\x61\xf4\x6d\xa7\x29\x9b\xac\xd7\xcb\xa6\xa3\x19\xba\x4d\x07\x03\x1c\xaf\x0d\x26\xb5\xb6\xe8\x55\xac\xfa\x19\x7e\x9d\x21\xcc\x5c\x60\xd2\xcc\xb7\x35\xf5\x22\x2e\xd4\xb5\x16\x9d\x5b\x69\xdf\xf9\x68\x32\x4a\xec\x2c\x4c\xd3\x59\xed\x18\xc2\xef\x00\x21\xdd\x49\x34\xe8\x0c\x66\x6f\x05\x24\x7c\x63\x54\xe5\x4a\xc7\x26\x6a\xa6\x22\x45\xaa\x1d\x75\x0a\x05\x76\x32\xe6\x38\x82\xfd\x18\x59\xc2\xef\xb6\xc6\x05\xe1\xc3\x25\x95\xe9\x66\x73\x5b\x03\x3f\xd6\x1d\x80\x99\x3a\xa5\xb8\x82\x83\xec\x80\x14\xbd\x1e\x6f\x1f\x57\x19\x6a\x3c\x1e\x93\x74\x9a\xcd\x14\x06\xb8\x20\x7c\x9a\xcd\xf0\x9c\x8c\xce\xe6\x8d\xa4\x63\x6e\xd7\x70\x45\x16\xd3\xf9\xac\x93\x37\x9a\x48\x65\xbc\xc2\x1c\x21\x1c\xaf\x1c\x00\xaf\xcc\x2a\x22\xcb\x00\x06\xc4\x67\x49\x6e\x9b\xd3\x64\x47\xd8\x64\x7d\x44\x98\x11\x62\x73\xb9\x81\x57\x6a\x0c\xfb\xc1\xfb\xa9\xab\xd0\xbe\x19\xa1\xcd\x64\x3d\x99\xce\x12\x7d\xcb\x40\x5c\xbb\x56\x23\x4d\xb4\x02\xdd\x8a\x91\xdb\xb9\x56\xa4\xbd\x4c\x4d\x53\x52\x6f\xc1\x7d\xad\x49\x87\x09\xd8\x5f\x2e\x66\x72\xdd\x91\xde\x1e\x07\x44\xcc\x3b\xd7\xe8\xd0\x75\x2e\x96\xde\xf9\x80\xfd\x42\x48\x6b\x9f\x00\x22\xa3\x39\xf6\xd9\x27\x62\xbe\xb8\x76\x7c\x81\xb8\xdc\xbe\x2f\x74\x20\x16\xb8\x2b\xc4\xbe\x13\xba\xd4\x4d\xc3\x31\x5d\xfa\xc7\xb4\x45\x96\x88\xdf\xab\x89\x3f\x90\xc4\x1f\x88\xa9\xa7\x41\xd3\xd4\x19\xbf\xdd\x6a\xdd\x38\x65\x33\x28\x0a\x8b\x53\x70\x69\x50\x96\x54\x84\xd1\xb8\x02\xbb\x25\x7d\xd2\xea\x3e\x53\x7f\xd2\xec\x25\xd5\xf4\xab\xae\xed\x12\x55\x71\x8a\x0b\x54\xab\x63\xa2\x70\x60\x7e\xad\xb6\x44\x81\x8a\xf6\x4e\x00\xa5\xd2\xe5\xf4\x7a\x46\x8a\xe9\x75\x63\x8d\xbd\xfc\xaf\x4a\x9a\xd3\xa1\xd5\x21\xf8\xc2\xca\xab\xd6\xf9\x65\xb7\xca\xb7\xfa\x8e\x0b\xe8\xdc\xc6\x14\x67\x87\x37\x90\x2d\x3b\x5a\xf0\x9b\x6b\xaf\xcb\x5e\x8f\x5d\x0c\xc6\x13\xd6\xb7\x37\x4d\xa2\xbd\xfa\x72\x22\x0d\x89\x33\xb1\x56\xb5\x02\x25\x0d\x89\xc4\x27\x36\x04\xb5\xe8\xc7\xe5\xc4\x8b\x43\x9d\x8c\x50\x32\x18\xd7\xcd\xf9\xb2\xff\xf0\xe1\x6b\x49\x45\x88\xef\x48\x03\x99\xe0\xa0\xd4\xed\xff\x92\x8a\x3b\xce\x19\xb1\x55\xa1\xb7\xdf\xb1\x18\xc2\xd7\xb0\x5e\x45\x3d\xb8\x37\xd3\x40\xf0\x0d\x74\x61\x5c\x2d\x41\x92\xde\x06\xe6\x13\xaa\xed\xbe\xda\x62\x4c\x72\xbf\x50\x13\x18\xc7\xfb\xd8\x59\xab\x6b\x11\x56\x0c\x90\xf0\x74\x98\x15\xbc\xa2\xbd\x1e\x33\xa4\x9e\x9d\x6c\xbf\x90\xad\xc2\x53\xf6\xd2\xc4\xac\xc5\x6c\xe2\x9c\x98\x8a\x26\x65\xbc\xc6\xe6\x37\x66\x8a\x36\xc5\xa9\x16\x9d\x3c\xa5\x05\x5b\x32\x49\x45\xa5\x16\x0b\x29\x0c\x6e\xc5\xab\x5e\xef\x60\x3b\xdd\xf9\x44\xd1\x34\xa7\xa9\x0e\xe1\x3b\x3a\xa5\x10\x8a\x82\x2d\xdf\xc9\x9b\x42\x51\x78\xde\x5b\x3f\xea\x46\xfd\xf0\xc3\x00\xea\x8b\x3a\xb9\xf6\xe4\x6f\x27\x84\xac\x9d\x1d\x76\x6e\x54\xa0\x2b\x92\xfa\xc4\x3b\xb3\x5d\x70\x40\xb9\x55\x05\xc2\xb9\x1b\xda\xd6\xc8\x20\xdc\xf8\xbe\x31\x20\x9c\xea\x37\x33\x88\xb8\x52\x18\xba\xe9\x7e\x93\x90\xf8\x2f\x08\x57\x1e\xa1\x3f\x3e\x1c\xe1\x66\x7d\x8d\xea\x99\xd8\x56\x3d\xc3\x0b\x22\xa6\xd9\xcc\xac\x9c\x5a\xb1\xc5\x90\xaf\x68\xa9\x17\x0c\xd9\xb5\xb1\xeb\xb0\x68\x0f\x43\x87\x72\x56\x4b\xa3\xcb\xb5\x57\x66\x61\xdf\x49\xb0\xd1\x16\xf6\x0a\xd4\x47\xf7\xc4\xfe\x88\xb9\xde\x2f\x38\x8a\x50\x32\x42\x78\x11\xac\xe5\xa2\xbd\x96\xe1\x87\x81\xea\x40\x04\x06\xf5\x79\xaf\x97\x9f\x17\xbd\x5e\x5c\x90\x1c\xd5\xc5\x81\x9a\x8f\xdd\xcb\x5b\x98\xe5\x9d\x83\x73\x7e\xbb\xb2\x7a\xd3\xda\x95\xdd\x51\x1e\xe1\xb9\xbb\x77\x42\x96\x96\xd5\x35\xf4\x66\x61\xb2\xbd\x83\x13\xd9\xb8\xfb\x31\x73\x60\x7f\xc4\x3b\xcb\x26\xe6\x24\xc1\x25\x4a\x34\xae\x5e\xe3\xcb\x22\x2d\x3f\x29\xac\xb9\xe9\x82\x27\x1b\xf5\x2b\x29\x77\x75\x00\xa8\x51\x57\x87\xda\xf7\xee\x25\xde\x59\x3c\x29\xed\x69\x16\x24\xa3\xe8\x83\xba\xc7\xc2\x26\xed\x61\x12\xd6\x64\xf3\x68\x28\x0f\xfd\xa7\xef\x70\xe1\x6d\x8e\x2d\x31\xe5\xb3\x8e\x69\x24\x05\x30\xdb\xaa\x37\xb5\x5d\x0a\xe1\xcc\x30\x75\xb6\xe7\xb8\x0c\xe0\x4c\x9d\xa3\xe0\x94\x40\xb0\xec\xc9\x22\x15\x55\x22\x87\xc1\xfb\xd7\x10\x16\x48\x9e\xdc\x5a\xec\x04\x5e\xb1\xc1\x5e\xda\x33\x5f\x27\x2e\x9f\xee\x83\x5e\x8e\x5a\xfd\xfb\x23\x71\x8f\x4b\xfe\x99\x8a\x8f\x19\x5f\xae\x78\xa9\x2e\x6e\x0f\x77\xd8\x16\x5f\x7e\x53\xa9\x34\xcf\x79\xa9\x25\x88\x9a\x64\xf9\x17\x50\x99\xdf\xd1\x2b\xfc\x3b\x3b\xf3\x7b\x11\x22\x8f\x5e\x8b\x16\x72\x59\x68\x67\xe7\x97\xa9\xa8\xa2\x3d\xe4\x5b\x1b\x85\x8a\x7d\x6e\x4a\x24\xe9\x17\x79\xa8\x2a\x8a\x10\xbe\x55\x50\x9a\x44\xb7\xb7\x11\x86\x8d\x90\x44\x75\x1d\x59\x88\xf0\xca\x78\x6d\x22\xdc\x3a\x5b\x93\x83\x51\x8d\x7c\x15\x93\x57\x2f\x5e\x3d\x8b\x75\x33\x5f\x06\x4d\xc9\x81\xa4\xcb\x55\x91\x4a\x1a\xe1\xf6\x38\xfe\x70\xd1\xf7\x7e\xc0\x19\x0e\xcd\x92\x68\x9b\x78\xf3\x47\x3b\x7c\xdf\x99\x8f\xe6\x4c\x1e\xc2\xdd\x71\x29\xd2\xec\x13\x95\xd5\xbf\x86\x19\x6f\x41\xcd\x9d\x3d\xc1\x77\x76\xe0\x5f\x31\x43\xa1\xc3\x4f\xf4\xe6\x55\xba\x1a\x56\xeb\xcb\x82\x2d\x29\xb9\x9d\xa7\x45\x21\x17\x82\xaf\xaf\x16\x49\x64\x9c\xf5\x47\x35\x06\x67\x54\x7c\xb9\x4c\xcb\xbc\x02\x8f\x33\x3f\xf0\x0a\xb3\xa6\xbc\xc9\x49\x9a\x2f\xcb\x34\x33\x31\x00\xc0\x09\x42\xf4\x64\x99\x0f\x22\xed\x1b\x64\x10\x75\x42\xb5\x66\x74\x6b\xc3\xa3\x3b\xe7\x2e\xd5\xe3\x9b\x30\x12\xbe\x15\xd9\x0c\x8d\xe3\x21\x2d\x61\xd9\x6c\xe4\x30\xe7\x99\x29\xad\x6e\x74\xba\x5c\xc9\x9b\x18\x85\x1a\xb0\x0c\xf0\x4a\x76\x3e\x82\xe0\x6a\x10\xaf\xd4\xd5\x67\x43\x6d\x97\xc6\xb3\xc1\x60\x8c\xac\x5b\x1c\x10\x81\xc2\x9d\x62\x5c\x2d\xc0\xbd\x73\x31\xea\xf5\x54\x15\x17\x84\xb7\x24\xfd\xdb\x95\xf5\xc7\x41\xa8\x87\x14\x57\xc4\xb2\x0c\x0a\xe8\x87\xc2\x74\x80\x63\x63\xeb\x02\x7c\xa7\x38\x20\xeb\xb3\xa2\x4f\x18\xce\x2c\x2b\x23\xd7\x11\x84\xc0\x16\xfd\x7c\x34\x29\x06\xe3\xa4\x40\x78\x41\xa2\x8f\xda\xce\x92\x7a\x1e\xa0\xe3\x1c\x81\xfd\x69\xc4\x23\x10\xb1\x7d\xd6\x36\x8a\x79\xe8\xee\x19\xcc\x39\xe3\x05\x89\x7e\x8e\x90\x65\xd5\x10\x52\xa1\x88\x47\x07\x2a\x7b\x5c\x91\x88\x95\x11\x4e\x89\x17\x60\x28\x02\xd9\x7c\x05\x5a\x83\x0b\x4d\x39\xa9\xda\xd3\x5e\x2f\xfa\x59\xb7\x02\xb3\x5c\x0c\x06\x18\x3e\xa8\x04\xd3\x3c\xbb\x18\xa1\xdb\x94\x44\x9f\x23\xc7\xbe\x32\xac\x2b\x67\xd8\x63\x9d\x4b\x14\xa8\x8e\x61\x61\x31\xd3\xf1\x96\x04\x4a\xc4\xf9\x68\xa2\xdd\x2d\xc4\x28\x61\x43\xc9\xb5\xa4\x5d\x4c\xe5\x34\x7a\x54\xc8\x01\x38\x38\x99\x91\xe8\x8a\xbf\x5b\x5f\x7e\xe6\x22\x37\x1f\xfc\x2d\x90\xc6\x14\x0f\xc6\xa8\xc6\xae\x94\xf6\x84\xe2\x17\xb3\x5f\xda\xe5\x54\x31\xd6\xeb\xc5\x72\x0a\xb0\xdc\x34\xe7\x78\x7f\xef\x96\x0d\xb7\xab\x02\x98\x57\xc0\xae\x5a\xd9\x01\xf8\x45\x6c\x63\xbd\xc8\x21\xab\xde\xd2\x34\x7f\x53\x16\x37\x0d\xe9\x62\x98\x9a\x52\xe1\x0c\x3a\xe6\x5d\xbc\x5b\x0b\x41\x0e\x0b\x56\x35\x5e\x91\xaa\x18\x39\xc9\xa1\xd6\x67\x19\x8c\xb1\x8e\x11\x4d\xcf\x52\x0b\x4d\xd5\x8e\x62\xd3\x54\x07\xb7\xd2\x9e\x17\x74\xa0\xe5\x73\xc2\x91\x8d\x60\x55\x9a\x6f\xfd\x58\x4c\x46\xc9\x18\xe1\x11\xea\x48\x2b\x5e\xd5\x8e\x90\xc0\xd3\x54\x61\x3c\x84\xf5\xb5\xd2\x83\x9a\x9e\x08\x39\x7c\x19\xb6\x53\x61\xb4\xa0\x4c\x0c\x69\x6c\xc3\xa6\xa9\xe6\x93\x02\xeb\xf8\x5b\x49\x51\x23\xcc\x89\x69\x74\x5c\xd7\xa0\xa4\xe0\xf5\x98\xc1\x15\xa1\xc9\xed\x27\xfa\x70\x52\xf0\xa9\x5a\x79\xb4\x96\x3c\x0a\x34\xc2\x03\xb7\xf6\x3a\xde\xb2\x3a\x98\xc0\xf1\x49\x6b\x97\x9f\xb1\xd6\x76\x4a\x7d\x77\x58\xe8\x0c\x0d\x06\x0c\xb6\xf4\x19\x77\xe1\xdc\xf6\x95\xe0\x2a\x7f\xbf\xcf\x0d\xca\xac\x95\xc4\x1c\x9c\x33\xd0\x0c\x73\xaf\x1c\x61\x05\x81\x49\x6a\x50\x7c\x45\x98\xd6\x00\xe1\x55\x3f\xfa\x71\xa5\xc0\x4d\x07\xd9\x50\xbd\x85\x77\x1f\x48\xed\x91\x7e\x45\xe5\x3b\xc8\xf5\xa2\x9c\x73\xe3\xd6\x8c\x0e\x2b\xbe\xa4\x72\xc1\xca\x2b\x3d\x81\x34\x8f\x51\x63\xd6\xa2\x5a\x7f\x64\x6c\xf1\x62\x09\x96\x43\xd6\xf8\x4e\x7f\xc4\x11\x70\xad\x20\x42\xf7\x15\x95\x4f\xe0\x42\x52\x90\xc6\x4a\x7a\x41\x40\xb3\x3a\x58\x05\xbd\x2b\x7e\x5c\x45\xa8\xa6\x43\xdd\xe7\xf7\xdc\xb8\xe5\x57\xd5\x0f\x5c\x68\xac\xf7\xf4\x8b\x6d\x18\x99\x8d\x59\xf5\xb5\xeb\xa2\x60\xb8\xe6\xcb\x7f\xda\x80\xdd\x08\xfb\xe3\x1d\x63\x3c\xdf\x3b\x46\xe8\xd7\x9e\x51\xf6\xef\x1a\xa5\xf6\x98\x35\x88\xfa\xbc\x1f\xbd\x84\xb1\xae\x0a\xd6\x80\xf7\xe3\x1b\xd8\x38\xb3\x3d\x76\x09\x74\x6b\xfb\x6a\x6f\x70\x3a\x3c\x92\x13\xad\xb0\x7e\xdf\xf3\x50\x2b\xa7\x6c\x66\x4e\x50\x05\xf7\xea\x4d\x1d\xa3\xb8\x22\x3a\xb4\xdb\x59\x75\x4e\x52\xfd\xab\xdf\xaf\x90\xfe\x79\xc1\x8d\x43\x20\xf0\xe8\xa2\x7f\x82\xef\x95\x6c\xb1\xd9\x58\xdd\x47\xb3\x63\x2b\x62\x6a\x9a\x28\xa8\xae\xb0\x22\x83\xd5\x96\x76\x45\x27\xa9\xfa\x8e\x6a\x05\x47\xe1\x66\x16\x78\x84\x6a\xec\xa6\xe5\x7d\x7a\xa9\xe6\xc4\x9c\x19\xb4\xaa\x22\x35\x69\xc3\x67\x55\x46\xa2\x8a\x95\x57\x05\x75\x65\xdf\xf3\x7d\x3b\x61\xeb\x84\x1b\xcd\x5a\xed\xc6\xd2\x05\xfb\xd3\x17\x8d\x17\xc5\xc6\xac\x93\x5b\x1e\x28\xf3\x47\x2d\xca\x6d\xb3\x22\x9d\xd6\x24\x96\x31\x37\x8b\xa4\x4f\x05\x3b\x89\xea\xbb\x5a\xae\x06\xb1\xa8\x01\xee\xc2\x69\xf4\x27\x11\xee\x9c\xbf\xaa\xce\x6b\x9d\x79\xe8\xbc\x1d\x94\xf6\xdd\x06\x73\x6c\x8f\xe9\x47\x73\xfd\x69\x07\x9d\x58\xc4\x14\x1f\x8c\x77\x80\xee\x8e\x6a\xb4\x9a\xdb\x1d\xf5\x8c\x9a\xa9\x7d\xda\x4c\xed\x6b\xfa\x45\xbe\xc9\xb4\x5e\x48\x16\x14\xf7\x4c\xa8\x9a\x8d\x19\xa9\x39\x02\x53\x95\xe0\xab\x3a\xf7\x31\x77\xa6\x4e\x06\xb1\x7d\xce\xca\xfc\xf9\xba\x28\xd4\x01\x4d\x88\xc6\x19\x2b\x0a\x0a\x48\x10\x91\x2f\x5b\x02\xda\xa6\x30\x45\x4b\xb9\xeb\x2b\xc3\xb0\x17\xd5\xb1\x6c\xad\x32\xc3\x6b\x28\x36\x5e\x86\xc0\xd9\x11\xe6\xe4\x60\xd4\xf8\x39\xa8\x74\xd7\xf4\xdd\xa8\xea\xc6\x05\xe1\x13\xdf\x2b\xee\x87\x0f\x97\x51\xbf\xea\xc3\x5f\x94\x54\x38\xd3\x25\xde\x01\xda\x6f\x86\x54\x60\x86\xce\xe2\x0c\x6c\x37\x5f\x83\x82\xc2\x66\x13\xef\xce\xa8\xe0\x19\xf4\xc5\xe1\x3a\x53\x37\x34\x42\x5e\x39\xd4\xeb\xc9\x61\x9a\x37\x58\x76\x9c\xd9\xe3\x20\x03\xd0\x02\x57\xbc\xf1\x5d\x73\xe7\xa6\xce\xf7\x33\x9b\xb5\x4e\x63\x7b\x74\x02\xd9\x50\x65\x69\xf9\x9c\x8b\xc7\x9a\x4e\x89\xa5\x42\xc0\x9a\x50\xfc\x67\x9e\xbf\xca\xad\x9c\xe3\xd0\x83\x95\xe6\xfa\x64\x0b\x42\xa2\x18\xdd\xd6\xd3\x99\x73\xcd\xe2\xde\x2d\xab\x1e\x50\xfc\xfe\xd8\xc3\xa6\x82\x35\x2b\xb5\xc2\x91\xde\x5f\xfa\x67\xb6\x80\x88\x98\xc0\xeb\x3d\x18\x23\x7c\x30\xea\x48\x52\xc6\xac\xc9\xc7\x9a\x7c\xfa\x52\xf6\xb7\x81\x76\x5f\xe8\x60\xf9\x5d\xc6\x57\xed\x1d\x90\xe9\xe0\x2b\xe1\x25\xa2\xb3\x3f\x2a\x8a\x68\xc7\xde\x7a\xd5\x54\xf8\x98\xca\xcf\x94\x96\x8f\x1d\xb5\x17\xec\x0e\x35\x4b\x59\x2c\x5b\xc8\xa3\xdb\x64\xaf\x34\xa2\xfa\x9e\x9b\xe2\xad\xd2\x5f\x21\xbe\x84\x67\x3e\x18\xae\x90\xd0\x67\xa6\x5e\x26\x06\x7e\x2d\xdd\x56\xd2\x33\xa9\x73\xa0\x86\x17\xbe\xe2\x95\x23\xae\x76\xd7\x36\x68\x02\xfc\xf0\x5e\x4f\x1d\x7a\x6e\x05\x78\xb3\x02\xea\xea\x51\xd9\x15\x09\xa0\x1d\x5a\x59\x22\x53\x23\xda\x89\x7f\x04\x7a\x68\xf7\xe2\xdb\xd0\x6e\x87\x28\xc2\x51\xb2\x75\xaa\xa7\x10\xd1\xcf\xc4\x7c\xf5\xe2\xc8\xda\x58\xaf\x26\xc6\xeb\x41\x61\xc9\xd1\xe6\x96\x58\x93\x22\x38\xdd\x33\x08\xd8\x6a\xde\xbc\xfa\x06\xe3\x5e\x8f\x4f\xab\xfe\x78\xe6\x67\x27\x24\x3b\x43\x19\x29\xa6\xfd\x7e\x35\x6b\xca\x75\xb4\x7a\x59\xbc\xc6\x19\xaa\x6b\x8b\x93\x4e\x18\x39\x18\x25\x26\x29\x3c\x18\x24\xd8\x8b\xe8\x17\x6d\x48\x76\x37\x91\xe1\x14\xe3\xd3\xc6\xd8\x9a\x1c\x59\x5a\x22\x9d\xf2\x19\x2e\xd4\x9f\xfe\x78\x86\xd7\xc4\x5c\xfd\x19\x29\xe3\x02\xe1\xdc\x3f\x05\xd7\x38\x83\xa8\x8b\x62\x92\x0f\x2b\x2e\x64\x8c\x12\xf3\x63\xa7\x3d\x7d\x2b\x42\x91\x89\x43\xeb\x7d\x71\x52\x5a\xf0\x26\x18\x53\x22\x30\x78\xf7\xa7\xe7\x72\x32\x18\x27\x94\x10\xa9\x88\x15\x4d\x28\x04\xb4\x4a\x8e\xd5\x6c\x61\xc0\xf5\x83\xfb\x77\xad\xaf\xdb\xac\x46\x35\x53\x07\x66\x78\xc1\x52\xb8\x77\x35\xdd\x99\x3b\xac\xfc\x73\xba\xda\xc6\xc9\xe5\xb7\xc3\x99\xd8\x05\x65\x86\x7e\x0b\x56\x0e\x88\x39\x07\x7c\x62\x07\xf0\x89\x69\x35\xc3\x2d\x28\x1b\x8c\x43\x38\xb3\xf0\xd2\xa0\x1c\x85\xc1\x83\x6c\x76\xf7\x9e\x2d\x1c\xfa\x51\xc0\x8e\x6b\x72\xc0\x5b\xb6\x40\x35\x18\xa9\x99\xea\x15\x56\xe8\xc0\x7e\xb3\x19\x0c\x32\xbc\xbe\xe0\x13\xd6\x00\x68\xc2\x1a\x45\x47\x36\x65\x8d\x52\x13\xc9\xd4\x05\x9a\xd5\x5f\x07\xc7\xd1\x19\x6d\x0c\x20\xa8\x83\x44\x41\xd8\x94\xaa\x29\x63\x53\xaa\x20\xb1\xf2\x69\xbb\x6d\x62\x35\xc2\x25\xa0\x9d\xea\x0f\xe0\x53\x38\xea\xdb\x95\x54\x48\xc4\x85\xbf\x4b\x26\x3b\x48\xdd\x7e\x05\x37\xae\xbf\x95\x0c\xe9\xdb\x54\x93\xb4\xca\xa9\xcb\xbe\x54\x2d\x73\x68\xb9\x9d\x7d\x8b\xc8\x4d\x41\xbd\xc2\x90\x37\x92\xff\xc4\xe8\x67\xcd\xf8\xc0\x06\x02\x1d\xa9\x64\xea\x68\x13\x4a\x7f\x18\x14\x36\xc3\xec\x2b\x20\x14\x6e\xe1\xce\xd2\x0b\x32\x3a\x4b\x07\x03\x7b\x1e\x88\x69\xaa\xce\x83\x2a\x40\x57\xd7\xa4\xf2\x41\xb2\x33\x3a\xb0\x19\x14\xc8\x54\x0d\xc8\x14\x83\x01\x2e\xce\x1d\xc8\x14\x78\x7d\x07\xc8\xac\x15\xc8\xac\xbf\x01\x64\x5c\xa1\xa3\x33\xaa\xba\x4b\x07\xfb\xa0\x26\x0d\xa1\x46\x10\x72\x27\x1c\x00\x14\x0d\xc6\x00\x45\xe8\xce\xa5\xff\x1a\xc0\xb5\xb2\xa7\x5f\x87\x94\x7d\x60\xc1\xfb\xd1\xa1\x82\x09\xc9\xaf\xae\x0a\xaa\x90\x0d\x6a\xd5\xe7\x68\xde\x42\x4b\xd4\x11\xeb\xe5\x8a\x6f\x8d\x68\x10\x38\xf8\xb6\xb6\xbf\xa8\xda\x7e\xe3\xac\x04\x77\xe5\x7f\x08\x01\x14\x92\xa5\xe0\x5d\xdc\xe0\xa2\x95\x21\x16\x41\x5b\xac\xb9\x1b\x9b\x0a\xd4\xdd\x28\xa7\x6c\xeb\x6e\x2c\xce\x50\x41\xe4\xb4\xdf\x67\xfe\xdd\x68\xc9\x2b\xe0\x70\x26\x15\xe8\x66\x3a\x1e\xd3\x01\xb7\x80\xd7\xeb\xa5\x40\x4f\xdd\x0d\x48\x12\x42\x6b\xba\xeb\x50\x04\xbe\x47\x7c\x36\xaf\xd0\x77\x62\x65\xce\x51\x85\xc9\x54\xc1\x19\x2b\x71\xe5\x9f\xb1\x6a\x7b\x40\x0f\xcf\xd6\xe7\xa4\x1a\xd2\x32\xf7\xf5\xda\xd7\x03\xd9\x59\x13\xfd\xbd\xd7\x8b\x53\x52\xc6\x19\xa6\x0e\x4c\x33\xcb\xf3\x53\x28\x2f\xce\xce\xa9\x07\xb0\x10\xe7\x2f\x84\xc3\xae\x82\xaa\x4c\x81\x61\xd6\x1f\xe3\xc3\x7f\x7c\xa8\xfe\xed\x50\x2b\xad\x78\x55\xaa\xaa\x7c\xd7\x63\xb8\xdf\x97\xa8\x66\xe1\xc5\x51\x6c\x36\xa9\xbe\x1e\xd2\x1d\xc4\x28\x33\x77\xe5\x16\x62\x0b\x54\x5f\xbe\x5e\x15\x2c\x4b\x0d\x59\xda\x06\xca\xaf\x2d\xc3\x36\xa8\x59\xb6\xa7\xd1\x2e\x6d\x02\x43\xb0\x5d\xac\x00\x31\xeb\x34\xc2\x82\xd6\x04\x35\xb3\xc0\x9a\x2b\x0f\xd9\xed\xe8\x7d\x53\x04\x56\xb2\xab\xb0\xfe\x69\xd9\xd5\x58\xb3\xab\xd5\x5f\xfd\xa1\xe1\x17\xb5\x36\x2f\x6c\xb6\xf7\xb0\x75\x45\x5a\x56\x2b\x5e\x51\x10\xe2\x6a\xee\xc7\xf3\x53\x12\x29\x5c\x69\xd7\x26\x5c\xb4\x08\xeb\xe7\xa7\x70\x29\xd8\xdc\x2f\xca\x8a\x96\x15\x93\xec\xba\x3d\xd5\x0b\x8f\xb2\x1f\x3e\x3f\x22\x51\x49\xbf\xc8\xc7\x9c\x7f\x5a\xa6\xe2\xd3\x1e\xc6\x4a\x40\x1f\xda\xbc\x55\x13\x5a\xf9\xcc\x6d\x75\xcf\xf9\x89\xb6\x88\x01\x8f\x27\x8a\x24\x8d\x4d\x68\x15\x27\x3b\x31\x21\xd8\x71\x9b\x56\xd3\xf4\x75\xa9\xe8\xeb\x3a\x00\xa5\xe7\x47\x6a\x88\x2b\x41\xaf\xff\xc0\xee\x4a\xe7\xf2\xce\x18\x3d\x58\x3b\x53\x39\x6d\x8e\x9f\x99\x37\x02\xb1\x87\xc6\x14\xba\xdf\x42\xf5\xbb\x63\xea\xaa\x9b\xe5\x39\x6a\xce\xe7\x3d\xbd\xff\xca\xb1\xba\x6f\x58\x60\x36\xbb\x3b\x69\x57\xb0\xea\xd2\x3f\xb8\x18\x91\xd3\xd2\xb1\x08\xb9\x7e\x03\x16\x61\xea\x3b\x8f\x02\xc6\xb4\x41\x41\x53\x1f\x05\x65\xf3\x38\x9d\x56\xb3\x76\xc3\xe8\x16\xbe\x5a\x2f\x47\xa1\xe6\xb5\xf0\x35\xaf\xc5\xb4\x98\x11\xa2\x72\xf7\x7a\xc2\x7a\x5a\x54\x08\x81\x0b\x35\xaf\x59\x89\x06\x19\x10\x5b\x1e\x43\x18\xe6\xf8\xb6\xd5\x7c\x72\x30\xd2\x7e\x25\x7e\x5e\xd0\xf2\x99\xda\xf2\xc0\xde\x6b\x41\x13\x1c\x4c\x7a\x59\x20\xb3\x9b\xb5\x7f\x11\xa8\xf6\x28\xba\x43\x8c\x1a\x3b\x13\xb2\x71\xf4\xd4\x88\xa4\x74\x1f\x0c\xd9\xff\x2f\x75\x02\x2e\xdd\xb0\x27\xbb\x56\xdd\x5f\x71\x03\xce\x93\x16\x2f\x52\x1f\x58\xfa\x84\x57\x87\x58\xad\x90\x1a\xb3\x2c\xe5\x60\xa0\xce\x77\xe1\x49\x40\xf6\xb0\x74\xd5\xa8\xfe\xa6\x06\xf5\x59\x68\xec\xa5\x8a\x8c\xe2\x12\xef\x47\x7f\xed\x7a\xe4\xf9\xca\x8a\x83\xef\x3e\xfe\xcb\x3b\x10\xd5\xe9\xcc\x88\xbb\x9c\x0d\x37\x48\xbd\xe2\x82\x94\xd3\x74\x86\xdc\x99\x1f\x9b\xab\x2c\x45\xd8\x84\x9a\x8e\x22\x84\x12\xf3\xdb\xf8\x35\xd2\xe7\xb8\xa5\xa5\xb0\xa6\x71\x10\x52\xc8\x97\x39\xf4\xbd\x2e\x70\x1c\xa5\x82\xaf\xcb\x3c\xc2\x51\x96\x56\xd4\x8a\x02\x01\xe0\xd3\x06\x03\x6d\x23\xcc\xaa\x67\x6c\x9a\xce\x66\x46\xf2\x06\x2a\x94\x9a\x8b\xa2\x89\x2c\x5c\xa1\x8b\x11\x72\xb8\x40\x2c\x0d\xf1\x85\x3a\x15\xd1\x1c\xbc\x36\xee\x28\xe2\x4c\xf3\x2c\xb1\x49\xcf\xf4\xf1\x59\xfb\x6e\x92\x96\x77\x33\x56\xcb\x6d\xc6\xea\x36\xbf\xb4\x44\x16\x8e\x3c\x7e\x29\x0b\xf8\xa5\x82\x18\x28\x2a\xc1\x4d\x7e\xed\x4b\xc2\x04\xc8\xbf\xf0\xbf\xaf\xa9\xb8\x49\x02\x66\x69\x69\x64\x61\xcc\x33\x74\xb9\xf6\x59\x03\x4b\x1b\xf1\xaf\xd1\x5b\x83\x6a\x30\x37\x22\x21\x9f\x35\xca\xb0\x9c\xa8\x93\x38\xd1\xa7\x32\x3a\x8b\xe5\x84\x7b\x9c\xd1\x44\xbf\xfc\x20\xe8\x35\xe3\xeb\x2a\x46\x0a\x27\x08\x8e\x73\x87\x9d\x6a\x94\x14\x25\xf1\xbe\x76\x4a\x1b\x98\xcf\x31\x61\x13\xea\x29\x06\xf8\xb8\x19\x42\x08\xff\xc7\x7b\x22\x60\xba\xdb\xfb\x2f\xb8\x80\x50\x5d\xcb\xe9\x5c\x9d\x70\x4d\x24\x17\x2d\x16\x50\x1d\xd1\xb1\x41\xd4\x01\x04\x59\xfe\xea\x25\xed\x92\x86\xff\x2b\xc8\x19\x06\xda\xd2\xc2\xbf\x50\xf0\x2f\x06\x03\xd4\xc6\x4c\x23\x0c\xe7\xa3\x91\xc9\x94\x60\x13\xd4\xa0\xf2\x8a\x5e\xd2\x92\x0c\x10\x44\xee\x25\x7f\x60\x14\x3f\xaa\x51\xac\x57\x6a\x23\x3e\x32\x40\xdc\x1a\xc7\x2a\xa6\xa1\xe7\x39\x77\x91\x07\x2c\xa6\xb0\x5a\x90\x05\xe5\xfc\x73\xf9\x2f\x56\xec\x85\xd7\x0e\x2b\xf6\x38\xc8\xf2\x9d\x3e\xd0\x5f\x6d\x23\x05\xad\x23\x5f\xe5\x80\x85\x6f\x7f\xb4\x57\x0c\xde\x91\x06\xfe\xf3\xdc\xd5\x12\x07\x2c\x7b\xbf\x47\x8f\x9a\x7b\xe8\x3d\xdf\xdf\xa5\x9d\x77\xd1\xfe\x8e\x99\xab\x46\x6e\xc1\x6b\x28\x3a\x90\x7e\x4f\x7e\x6e\x64\x58\x7b\x7b\xb2\xe5\x67\x2f\xe8\xc9\x8e\x8f\x01\x0e\x67\x23\xc8\x05\x7d\x60\x04\x02\x43\xb8\xe3\xae\xc4\x4c\x1d\xc4\x46\x76\xc7\x3a\x8c\x94\xb8\x24\xbc\x6e\x55\xfe\x57\x56\x14\x34\xe0\x7a\x96\x20\xe9\xdf\xe6\x06\x60\x66\x91\x10\x18\xe6\xdf\x2d\x1f\xe7\x67\x26\x17\xff\x09\x13\xde\x46\x0c\xff\x43\x80\xa2\xf1\x74\xf3\x2a\x03\xc0\xf9\x05\xc6\xa1\xeb\xf9\x25\x2d\xdb\xfd\xd7\xbe\x73\xe9\xae\x49\x83\xf8\x93\xad\x8b\xb5\xdd\x6b\x9d\xd3\x30\x44\x56\x69\xa5\x4e\x03\x85\x66\x40\xd3\x7f\xde\x81\xbf\x35\x1d\x7b\x02\x1d\x5b\xf0\xcf\x2f\xca\x27\xb4\xdc\x16\x76\xda\x99\xd5\x0a\x77\x4f\xc0\x3d\xaa\x96\xe7\x7b\xfa\x0f\xa1\xa0\xdf\xa9\x4b\x38\x47\xab\x83\x2d\x8d\x84\x40\x95\xe2\xf0\x28\x24\x88\x15\x72\x64\xb8\xc8\x4e\xc2\x5c\xfd\xb8\xfa\x9c\x8a\x6d\x4e\xcd\xbf\x74\xee\xee\x8e\x96\xc8\x20\x5a\x62\xc7\x23\x66\x2f\x82\x6b\x4b\xad\x44\x20\x2a\x0c\x08\x5f\x70\x39\x65\xf9\xbf\xe0\x13\x64\x6b\x4c\x8e\x2f\xd9\x8c\x4a\x7d\xfa\x9f\x3f\xae\x16\x37\xe4\xae\x61\xf5\xf7\x0c\x4b\x51\x06\xc7\x6a\x30\x6a\x2f\xfd\x58\xe6\xdb\x80\xe3\x53\xdf\x01\x41\x11\x16\xb3\xd7\xfa\xae\xe2\x81\x5e\x5a\x53\xee\x51\x51\xec\x6c\x11\x26\xc6\x22\x41\xad\x20\x9f\x6d\xb4\x44\x6a\xd4\x48\xe1\x74\xc0\x8d\x53\x57\xb0\x87\x73\x9c\xa1\x32\x44\xfb\x85\x45\x31\x00\xf1\x17\x46\xd9\x0e\x0b\x9f\xdd\x76\x4e\x64\xe3\xf7\x52\x91\x62\x26\x2d\x5b\xb8\x94\x6c\xd1\xeb\xb1\x7e\x7f\x4b\xd7\xc3\x9c\x7b\xe1\x4c\x4d\x61\xc0\xbc\xc8\xa3\x56\xc2\x0c\x2e\xf2\xd2\x26\xc1\x46\x1e\x45\x33\x62\x7e\xfe\xd6\x24\x3f\x2a\x8a\x48\xb3\x50\x5e\xd8\xd9\x7b\x51\x66\x02\x7c\x00\xa5\x45\xbb\xde\x5d\x79\xde\xd2\x6b\x2a\x2a\x6a\x6a\xf9\x5e\xe5\x30\xc7\x51\x84\xe5\xf0\xf9\xb1\x2e\xf0\x1a\x22\x55\x36\x7c\x08\xb7\x56\x6a\x79\x23\x4c\x87\x25\x17\xcb\xb4\x60\xff\xa4\x7f\x05\x65\x58\xf0\xb9\x8d\xb0\xd1\xfc\x8d\x7c\x8d\xdf\xe9\x2c\xf0\xc3\x13\xe8\xe8\x1a\x44\xd9\xa8\x10\x25\x8d\x66\x6f\xed\xd7\xf6\xbf\xd1\xe5\x25\x15\x83\x3c\x95\xe9\x61\x9a\xa7\x2b\x49\xc5\xe1\x60\x25\xd8\x35\x68\x55\x4f\x23\xa3\x25\x0d\x71\x01\x41\x8f\x39\xc2\x91\x2e\xc2\xca\xb9\x5a\x92\x96\xdb\x2e\xe3\x3c\x7b\x4b\x5b\xb8\x24\x4e\x1f\x98\x41\xe4\x34\xab\xdb\x94\x48\xcc\xc8\xe1\x07\x31\xf9\x50\x1e\x1a\xd9\xee\xe1\x87\xe9\x87\xd9\x9f\x0e\x7d\x35\x5f\x1b\x13\x8c\xb3\xbc\x3b\x3a\x20\x10\x32\x4d\x9b\x92\xc3\x4f\x41\x20\xf0\x27\xd9\xa1\x43\x2d\x26\x22\x46\x89\xc0\x74\x6a\x3d\xbd\xcc\xc8\xaf\x7f\xba\xa5\x65\x06\x6e\xa4\x5e\x3c\xb1\x3a\xf6\x6a\x9a\xc9\xce\x04\x81\xea\x5f\xad\x9b\x73\x17\xf2\xb0\x20\xcf\xd4\x34\x0c\x5f\xb1\x2f\xcc\xc6\x73\x8c\x6f\x2f\xd7\xac\xc8\x7f\x7c\xfb\xd2\x5a\x07\x62\x86\x6e\xab\xcf\xcc\x38\xcb\x03\xb2\x4e\xad\xf4\x5b\x9a\x71\x91\x47\x89\xe5\x5e\x2d\x58\x35\x5c\x8b\xe2\x39\x17\xcf\x5d\x6a\x2c\x31\x55\x24\x91\x2b\xa4\xe0\x73\x4f\x89\x47\x45\x11\x37\x99\x61\xb7\xee\xca\xfa\x37\x95\x10\x33\x4c\xfd\x8c\xfb\xfb\xf2\xb7\x26\xd9\x2b\xa4\xf9\x38\xe5\xce\x06\x9e\x9b\xb4\xad\xbe\x7f\x9f\x56\x77\x95\x31\xc9\x5b\xc5\x1e\xd3\x82\x97\x57\xd5\x7b\xbe\xaf\xa0\xcb\x10\x14\x35\xd1\x35\xf7\x0e\xec\x89\x97\xee\xcd\xdb\x1a\x7c\xb1\xee\x2f\xf6\xa3\x97\x1e\xb4\xa7\x71\xcb\xfd\x05\x9f\x7a\xe9\xb6\xa0\x05\x7f\x3f\xf7\x47\x1f\x7c\xd4\x19\x17\x7e\xd0\x18\xaa\x3d\x85\x35\xf8\x5d\x51\x09\x9e\x34\x71\xb4\xe0\x95\xd4\xca\x4b\xa6\xe1\x1f\x04\x9d\xb3\x2f\x8d\x90\x5b\x3b\x7c\x82\xd4\x55\x2a\x17\xcf\xb9\x78\x7f\xb3\xa2\x31\x45\x08\x1c\xac\x18\xfe\xa9\x74\x2f\x3b\xb7\x08\xc4\x17\x28\x1d\x97\x93\xab\x4b\x41\xfb\x46\x89\xa3\xc3\x08\xe1\x03\xd6\xeb\x95\xbd\x5e\x74\x18\x1d\x10\x52\x5a\x0d\x9b\x11\x52\xfb\x95\x44\x87\x51\xbf\x44\xb8\xac\xf1\x16\xb0\x9b\x0d\xbe\x7b\x36\x24\xa6\xc8\x2f\xa3\xc1\x5d\xee\xcb\xde\x64\xd6\x00\x7f\x47\x56\x19\x66\x6d\x3a\xf3\xf5\x02\x0e\xd6\xef\xee\x7a\x90\xdf\xc2\xf9\xef\x1a\x6d\x03\xe3\xdf\x5c\xac\x05\xe0\xdf\x30\x53\x01\x6c\x7f\x73\x3b\x01\x60\x7f\x5b\x29\x03\x95\x7e\x54\xcc\xdd\x80\x5c\x6e\x25\x94\xe9\x92\x6a\xe6\x83\x26\xbb\x2c\x98\x89\xcd\xc6\xdc\x00\xce\x25\xda\x3f\x3e\x1c\x7e\x38\x34\xb1\x11\x28\xda\x6c\x0e\x17\x52\xae\xe2\x0a\x4d\x92\x20\x61\x42\x93\xe8\x30\x22\x5e\xc8\xe2\x11\x9a\xfc\xfa\xa7\x5b\x51\xff\xe9\x96\xd6\xbf\x26\xbf\xfe\xe9\x56\xd6\x87\xf0\xdb\x04\xe6\x9c\xce\x9c\xce\x48\xaf\xc7\xdc\xae\x29\xdd\x4b\x89\x30\x6b\xf6\x43\x8d\xc3\xad\x66\x10\x2f\x3d\x32\x13\x92\x2f\x4b\x97\x54\xdd\xf6\x5e\x64\x51\x31\x5c\x15\x6b\x01\x38\x80\x82\x20\x50\x78\x7d\x6c\xa6\x12\x2e\x1c\x52\x80\x6d\x94\xa4\x62\xc9\x4a\xfa\x98\xe7\x37\x3f\x08\xbe\x64\x15\x6d\x79\x89\xd4\xf5\xc5\xa0\x0a\xa3\xbd\x13\xe9\xa6\xdf\xbe\xfb\xe9\x87\xa1\xa0\x15\x2f\xae\x69\x2c\xd0\x50\xfb\x26\xa5\xe4\x82\x22\x34\x94\x0b\xaa\x8a\x5c\xb4\x2f\xf5\x6b\xed\x08\x5d\x93\xb5\x07\x74\xc8\x3f\x39\x3f\x8d\x4d\x24\x68\x99\xca\x75\x85\x53\x12\xa9\x69\x15\xda\x5d\x98\xfa\x85\x2b\x02\xf1\xcc\x08\xdf\x6c\x8e\x46\xf7\xf5\x8f\xe8\xfb\x67\x8f\x9e\xaa\x8c\x72\xb8\xa4\x72\xc1\x73\x57\xf3\x66\x73\x00\x76\xd1\x3a\x9c\x32\x23\x7f\x79\xf7\xe6\xb5\x71\x3f\x2b\xac\x2b\x55\xed\xca\xec\x20\x2e\x7c\x4f\x77\xef\x6e\x4a\x99\x7e\x01\xef\x7a\x4e\x51\xa1\xe8\x14\xc3\x55\x7a\x53\xf0\x34\x27\xea\xfc\x2c\x9c\xc9\xc8\x66\xc3\xea\xda\x8c\xcf\x88\x6a\x6a\x4c\x87\x73\x2a\xb3\x45\x2b\xc0\xbb\xa6\x3b\x89\xb3\x08\xae\x34\xf1\x0f\x8e\x91\xe2\x08\x4a\x44\xc8\x06\x43\x2c\xdd\x17\x8b\xe7\x74\x2a\x12\x23\x72\x41\xb5\x7e\x27\x9b\xc7\x0d\xae\xe2\x3c\x3c\x41\x91\x6d\x1f\x81\x19\x78\x25\xef\xaa\x0b\xb1\x2b\x17\xb4\xfb\x2b\xe4\xfb\xd5\xd8\xa9\x75\xb9\x08\xbe\x5e\x15\xfc\x32\x2d\x86\xdd\xa7\x2c\xef\xde\xf0\x75\x77\x49\xd3\xb2\x2b\xb9\x9e\xa3\xa2\xd0\x79\x35\x0a\x67\x4a\x80\x51\xd8\x24\x42\xa6\x8b\xf0\xb5\x6e\x46\xa9\x26\x04\x66\xfe\x2d\xad\x56\xbc\xac\xe8\xf7\x34\xcd\xa9\xa8\x76\x10\x14\x6f\xc0\x92\xce\x62\x43\xda\xd4\x35\xf0\xdb\x27\x3b\x3e\xa1\xa1\x83\x75\x33\x2b\x55\x12\x3b\xa5\x4a\x9c\x88\x69\x09\x5c\x79\x5c\x91\x83\xf1\x59\xda\x28\xcd\xa5\x5a\x68\x74\xff\xa1\x82\x26\x3f\x30\x63\x8a\xd0\x6d\x45\x0e\x46\x46\xea\xa3\xba\x30\x86\xb5\xb3\x2a\x76\xc3\x6a\x7d\xa9\x2d\x9a\x21\xe0\xf8\x50\x0a\xa6\x08\x96\x75\x90\x92\xf6\xc7\xd8\x19\x69\x99\x2c\xe0\xd1\x07\xc9\x69\x11\x32\xe3\x66\x64\x8d\xe5\xb4\x98\x91\x75\xdd\xb8\xea\x07\x1e\x87\x60\xb0\x8d\x5f\x94\x92\x7f\x9f\x56\x0b\x12\x6e\x2a\x5c\x92\x5b\x56\x66\xc5\x3a\xa7\x2f\x72\x50\x9a\x68\xf4\x59\x6d\x51\xf1\x1c\x68\xb0\x25\xcf\x69\x01\x01\x5e\x3a\x01\xf4\x38\x4c\x97\x6d\xb7\x66\x99\x4d\xb7\x75\x63\x74\xbd\x95\x29\xe6\xc6\x93\x05\xb6\xdc\x75\x3f\x17\x30\xd3\x83\xa1\xc0\x4d\xf9\x43\x2a\xd2\xe5\x2e\x10\x68\x0e\x48\x87\xbe\x53\xcf\x3e\x1c\x57\xb8\xd0\x3c\x33\x36\x8f\xb5\xd7\x0d\x56\xc1\xdf\xb8\xd4\x2e\x7a\x18\x2c\xb4\x13\xbf\xb0\xf3\x0a\x34\x3e\xb8\x09\x74\x83\x26\x3a\x96\x49\x39\x65\x33\x94\xd0\x58\x28\xda\xaf\x1f\x6f\x19\x71\xaa\xf4\x09\x4b\xa2\x08\x29\x1a\x50\x67\x77\x76\x68\xdb\xdc\xd5\x68\xaa\x2b\xe8\x6a\x10\x9e\xa9\x43\xc9\x40\x73\xe3\x15\x44\x72\x77\x64\x17\xe0\x45\xdf\xf6\x59\x9d\x40\xdd\x12\xd9\xde\x14\xa6\xc9\xc2\x36\x69\xba\xdc\x74\xe0\xf7\x8c\x1c\x9c\xa9\x4d\xd9\x0c\x3c\xeb\xea\x5f\xd7\x69\xb1\xa6\x9e\x15\xb9\x6b\xbf\x30\xad\x36\x2e\x2a\xa3\x08\x53\x64\x2e\xa4\x5e\x84\x3c\xaf\xb9\x47\xa3\xc3\x2b\x1c\xf5\xd5\x25\x65\x46\xaa\x89\x42\xe7\x29\x86\xe2\xe8\xe3\x47\x5a\xbd\x82\x63\x26\xc2\xb7\xd0\xaa\xb3\xcd\xbd\x8b\x82\xa4\x86\x3c\xf5\xc8\x47\x3f\x5b\x25\xb9\xa0\x0d\x99\xd9\xa2\x1f\xf7\xb9\x56\x05\xd7\xa7\x24\x7a\xa4\xdb\xe8\x3a\xae\x4f\x77\x9e\xb2\x82\xe6\x91\xf1\x32\xcf\x2a\x93\x43\xbb\x4f\x3f\x18\x75\x7c\x34\x03\x3e\xea\xf5\x03\xa4\x42\xa2\x0e\x84\xdf\x36\xfe\xe9\xb3\x4f\xc4\x38\x21\x32\x2e\x3d\xa9\xf6\xf8\xcb\x78\x49\x84\xff\x66\x42\xcf\xb2\x82\x42\x08\x18\xe1\x7e\xea\x84\x82\x95\xf4\xf5\x5a\xb5\x68\x22\x62\xeb\x17\x9d\x68\x5c\x75\x13\x61\x7f\xe9\xcf\xa5\xae\xa8\x74\x95\x94\xb6\x02\xfd\xc3\x78\x19\x85\xb9\xad\x08\xdd\x6c\xa6\xb7\x92\xc9\x82\x26\x6e\x4a\x9e\xe9\x69\xcf\xa9\x4c\x59\x91\xc8\x7a\x56\xff\xde\x85\xdd\x0f\x09\xba\x59\x75\x5e\xbc\xe7\x00\xb5\x11\xbe\xa5\xe5\x7a\x49\x45\x7a\x59\xa8\xc2\xf8\x8a\xca\x6d\x67\x33\x5d\x39\xdc\x2a\x59\x7f\xbd\x1d\xc8\xf7\x1e\x8e\xa7\xdf\xd9\x8e\x57\x52\xb5\x43\x87\xef\xa8\xb8\xb6\xc0\x40\x87\x4f\x78\x39\x2f\x58\x26\xed\xfb\x6b\x2e\x9f\xf3\x75\x99\xdb\xf7\xe7\x5c\x5c\xb2\x3c\xa7\xa5\xfd\xf0\x63\x99\xae\xe5\x82\x0b\xf6\x4f\xea\x32\x3d\xba\xe4\xc2\xd5\x60\xc2\x4d\xd8\xd7\x17\xe5\x75\x5a\x30\x97\xd5\x9a\x36\x6b\xce\x85\x61\x85\x08\x3f\x4a\x1e\xdd\xf6\xbd\x77\xdb\x78\xe0\x27\xb7\xb5\x4b\xe7\x86\x2c\x6c\xbb\x96\xd4\xf0\x1d\x3a\xe3\xa0\x1e\x8c\x0b\x5c\x6e\x36\x12\xd5\x1e\x76\x69\x8f\xb4\xd6\x8d\x4d\x9b\x14\x84\x85\x51\xec\x27\x4c\x61\xb8\xa2\x6e\x06\x53\xe2\xfd\x55\xf8\xdb\x2c\xa8\xac\x39\x46\x15\x59\xe9\xf6\xb1\x81\xd9\xa0\x31\xe3\xf1\x8d\xc7\x02\x47\xef\x17\xb4\x6b\x8e\x95\xae\xa0\xbf\x81\x2d\x1e\xe0\x30\x19\x5f\x2e\x99\xec\x5e\xd2\x2c\x55\xc7\x05\x93\xdd\xcf\x69\xd5\x65\x7a\xfa\x81\xd5\x1e\x2c\x45\x8a\xd3\xad\x2e\xf8\x19\x22\x63\x78\xbb\xd5\x68\x73\xce\x48\xb6\xa4\x79\x97\xaf\x25\xd4\x1e\xac\x7b\x85\xab\xad\xda\xfd\x0c\x91\xe1\x19\xdd\x51\xbb\xea\x7d\xaa\x00\x8b\xea\xde\x7b\x40\x56\xe0\x62\x7b\xfa\x5c\x72\x64\x3c\x5e\xde\x51\x37\xab\xba\x6b\x0f\x8e\xa1\xfe\x6d\xc0\x5e\xe3\xf5\x56\x33\x5b\xb9\x74\x6b\xd9\x57\x5a\x9b\xdb\x6d\x04\x4d\xb5\x36\x55\x86\xb3\xad\x76\xc2\x2c\x91\x31\xca\xd8\x6a\x24\xe3\xeb\x22\xef\x06\xd8\xb0\xa2\x62\xd6\x22\xd3\x42\xdd\x70\x3b\xe7\x38\xdf\x6a\x28\xc8\x11\x99\x68\x2d\x77\x0c\x46\x5f\x2e\xdd\x7c\x4d\x15\x12\x9d\x76\x33\x73\x80\x40\x73\xe1\x69\xb2\xc0\x8b\xad\xe6\x82\x1c\x4e\x6f\xe5\xdb\x9b\xab\xe0\xf4\xea\xda\x08\x65\xe1\x71\x36\xc7\xf3\xad\x06\xbd\xf4\xe8\x6b\xd7\x34\xd8\x3b\xed\xbf\xa6\xb7\xf8\xc1\x77\x5f\xd4\x7f\xdc\x5d\x13\x90\xba\xdf\x7c\xfe\x07\xa5\xf4\xd9\xbf\xe3\xf4\xb5\x88\x80\x69\x5c\x9f\x3a\xb1\x65\x93\xbf\x73\x48\x77\x12\x0d\x2c\xc3\x1a\x37\x2c\x5b\xed\x19\xcd\x70\x63\xf5\x8b\xd6\x3e\x69\x7e\xfa\x19\xaf\x68\xa9\x16\x96\xbe\xc8\x9f\x73\xe1\x27\x38\x64\x3a\x81\x89\x24\x17\x1e\x7e\x1d\x4b\x84\x7d\x0e\xa6\x2e\xe1\x33\x27\xf5\x17\x9f\xeb\xa8\xbf\x64\x3c\x2d\x68\x95\x51\xcd\x57\xfb\xf7\x35\xad\x64\xa5\x66\xcc\xb2\x6c\x4d\xa7\x04\x5f\xaf\x74\xb1\xca\xe3\x63\xd9\x9e\x4c\xe5\x0c\x57\x0b\xb5\xcf\xde\x52\x45\x31\x9b\x06\x14\x65\x78\x30\x0e\x52\xd4\x14\x98\x42\x07\xce\xe1\xb8\xce\xf0\x38\xcd\x3e\x5d\x81\x36\xd3\x76\x25\xa3\x3d\x79\xa0\x3a\xc8\x00\xfc\x0e\xbb\x76\xe2\x6b\x50\xfc\x5b\xc5\xcb\x41\xba\x62\x21\x20\xb7\x85\x14\x5f\x01\xed\xdd\xc9\x82\x56\x72\x5b\xbc\xa1\xee\xd7\xff\x18\xe4\xef\x84\x4c\x46\x4a\xfb\xf9\x4e\xb0\x6c\xc6\xfb\xd1\x24\x3f\xe1\xa5\xa4\xa5\x7c\x7f\xb3\xa2\x49\x94\xae\xb4\x62\x34\xe3\xe5\xe1\x75\x99\x0f\xd3\x15\xeb\xeb\x98\x43\xe9\x6f\xe9\x17\x1d\x92\xa1\xd2\x03\x01\xe4\xc2\xa8\x2e\x00\xbb\xae\x5a\x43\x98\x40\x1c\xf8\x2a\x04\x91\x26\x15\xd5\xf0\x51\x96\xd1\x95\x24\xed\x0f\x9b\xcd\x1d\x6d\x96\xf5\x1e\xa8\x1c\x3b\xa8\x6c\x26\xd5\x48\x60\x55\x57\x1a\xc6\x61\x43\xf8\x82\x40\xa5\x91\x3f\x34\x54\x8e\x2a\xa0\x06\x17\x33\x1c\xfd\xf9\xd9\xfb\x08\xdf\xaa\x55\x4c\x6e\xe7\xac\x90\x54\x24\xb7\x2c\x4f\x84\x21\x81\x70\x04\x7a\x6c\x3b\xf9\x72\x22\xe4\xcb\xe5\x69\xb5\xa0\x22\x60\xcc\x41\x10\x62\xc7\x9a\x43\x60\x2f\xbd\x6e\x73\x4e\xdd\x40\xe2\x11\x16\x3b\x68\x72\x93\xc9\x72\xea\x77\x8e\xb4\x1c\xb2\x5c\x0d\x36\x10\x49\xec\x18\x30\xc7\xd1\x0f\x8f\xde\x3f\xf9\xde\x0e\x99\xd5\x86\x5b\x68\xe1\x8b\x7d\x6d\xf7\x00\x88\x7f\xed\x0a\xd8\xb3\x3d\x0c\x99\xf7\xbb\x2e\x8d\x3f\x66\xfb\x00\x8f\xca\xc0\x32\xc9\xf7\xed\xa7\x68\x6d\xa3\x6b\x34\x3c\xb6\xdf\xfe\x66\xd4\xfc\x76\x25\x96\x6a\x52\xb7\xe4\x8e\x6e\x45\x3b\x9a\x17\x49\x87\xda\xd1\x94\xe5\x87\x19\x47\xd3\xeb\x0a\xbb\xad\x01\x3b\xc8\xb0\x29\xb9\xbb\xa3\x3c\xde\xab\x61\xd7\x0e\x35\x4a\x1b\x73\x17\xb6\x89\xf5\x7a\xac\x45\xc3\x4e\xf6\x97\x63\x28\x61\x41\x90\x53\xec\x87\xef\xd6\x26\xcf\xb0\x4a\xef\x17\x82\x7f\x2e\x7d\x46\x29\x54\xdd\xeb\x45\xd1\x01\x21\x12\x71\x12\x64\x6c\x3c\xf6\x98\xc0\x79\x11\x21\x26\xb2\xc4\x3b\x18\x2a\xe2\x10\xd5\x4e\x04\x68\x70\x53\x0a\x10\xd9\x76\x99\xcd\x66\x04\x5f\x2a\x5b\xc3\x96\xcd\xe6\xad\xe6\x02\x27\x25\x5e\x8b\x22\x61\xd8\xeb\x51\xc2\x6b\x42\xf1\xad\x2e\x9b\xa4\x35\x91\xb8\x22\x5f\xa1\x80\x7f\x35\xc7\x8d\xc1\xaa\x92\xee\x9f\x6e\xcb\xba\xfb\xa7\x5b\xa6\x1e\x7c\xb3\x89\xa2\xfa\x57\xcb\xfa\x73\x15\x3b\xfe\x95\x1e\x5f\x83\x67\xc7\x15\xaa\x41\xf9\x40\x0f\x53\xc1\x02\xdf\x86\x05\x3b\x3c\xa3\x0a\x02\xb0\x00\x9e\xa5\x9a\xa1\xe0\xd2\x82\x46\x8a\x6e\x39\x49\xed\xd2\x73\x3f\xf0\x2b\x0d\x7c\x45\xaf\xab\xc4\xf1\xd6\x9b\x09\x4d\xa8\x37\xbb\xd8\x34\x97\x64\x31\xb5\x4d\xfb\xc4\xe2\xfa\x5b\xab\xd4\xdf\xde\xd3\x2f\xd2\x55\x19\x8f\x70\xb9\x93\x07\x8c\xb4\x5a\xd7\xa3\xa2\x68\x25\xc4\xc8\x6f\xdb\x33\xf1\x6f\x58\x91\xe0\xec\x75\xce\xc5\xb3\x34\x5b\xc4\x20\x86\x25\x17\xe0\xc5\x9d\x22\x2c\x9b\xb2\xb9\x09\xfe\x42\x15\x85\x99\xd3\x52\xb2\xb4\xa8\x48\x54\xa5\x4b\x3a\xe0\x82\x5d\x29\x0c\x91\x82\x3f\x75\xa4\x20\x4f\x9d\xff\x20\xd0\xd1\xa0\xe4\xc9\x18\xec\x27\xa8\xcd\x9c\x39\x9f\xe8\x4d\x15\x9b\xd2\x96\xd3\xeb\xf4\xb8\xd6\xa2\x70\x2e\x01\xa2\x49\x84\x2e\x06\xe3\x49\xd4\x8b\x92\x68\x12\x75\x20\xb5\x4f\x40\x40\xf4\xa7\x5b\x98\x9f\x5d\x0c\x52\x64\x2b\xaf\x7f\xad\x75\xd0\xa6\x7f\x81\xcf\xa8\x6b\x98\x50\x08\x7e\xae\x25\x21\x9a\x43\xcd\xe6\x37\x36\x35\x31\xa9\xfa\xd5\x4d\x71\xad\xe9\x1b\xd9\x46\x2c\x5a\xd8\x32\xde\x89\x68\xe8\xab\xe1\xab\x48\x86\xba\xe8\xcf\xba\xd9\x42\x81\x87\x24\x6b\x39\x1f\x3c\x8c\xf0\x3c\xad\xe4\x25\xe7\x32\xd1\x67\x57\xc6\x97\xab\xb5\xa4\x79\x7c\x7b\x45\x65\xdc\x12\x12\xda\xbc\x93\xf0\x35\x09\x5f\x1b\x71\xe0\x9b\xcf\x25\x15\x3a\x7e\xe4\xb0\xe0\xfc\xd3\x7a\x15\x47\x8a\x4e\x62\x19\x4d\x6c\xee\x08\xd5\xb8\xa2\x72\x87\xf0\xd3\xd5\x27\x15\x8d\xb0\xae\xe8\x73\x75\x97\xb4\xfb\xe9\xab\xd5\x68\x91\xce\xce\xe6\x8d\x08\xed\x2d\x04\x08\x34\x4a\x68\x91\x22\x11\xd9\x55\x42\xcb\x6b\x26\x78\xb9\x84\x48\xe8\x66\x45\x0e\x0e\x62\x00\x7b\xa8\xec\xd9\xeb\x9f\x7a\x3d\x88\xab\xd4\x7c\x18\x7e\xfc\xcb\xdf\x7e\x7c\xf6\xf6\x97\x8f\x2f\x5e\xbf\x7f\xf6\xe7\xb7\x8f\xde\xbf\x78\xf3\x1a\x02\x75\xf4\x7a\x07\x70\x97\x57\x5c\x48\x0f\xc0\xb6\x64\x2f\x1a\xa2\x7d\x8d\x69\x60\xb7\x9f\x1f\x39\x43\x23\xcf\x99\xfa\x6d\x0d\x0e\x50\xb4\x29\xbd\x35\x4a\x04\x6b\xc4\x72\xca\xa6\x7c\x36\x23\x54\xff\x75\x67\xe2\xdd\xe8\x9c\x2f\x09\xfe\x5d\x08\x9d\xc5\x70\x02\xa4\x48\x4b\xef\xcb\xaf\xe2\x79\x5c\xe1\x73\xf3\x46\x2f\x60\x77\xdb\xb6\xb6\xbb\xf1\x2e\x45\x20\x99\x3e\x81\x5b\x0d\x4f\xda\xab\x8e\x76\x56\x66\x94\x58\x4e\xac\xc5\xc0\xbc\xae\x28\xfc\x4b\x93\x81\x81\xd0\xf4\xab\x2d\x82\x92\xa8\xd6\xdb\xf1\x50\x6f\xcd\x95\x0e\x17\xbc\x51\xe2\x68\x43\x82\x40\x7e\xbf\xca\xa0\x5f\xc2\xf5\x2b\x14\xd6\xff\xde\xde\x99\x75\xfa\xcf\xeb\xe3\x7f\x3e\x51\xc0\xf2\x2a\x11\xb5\x6d\x2b\xd0\xc8\xf0\x63\x9d\xb3\x1c\xcc\xd6\x5d\x3b\x0e\x10\xda\xfa\x35\x86\xa9\xef\xfa\xc6\x31\xc3\x12\x07\x5a\x4f\xc1\xa0\x85\xee\x8e\x69\xbf\xa5\xdc\xf1\x47\xf7\xa0\x51\xa0\xda\xd3\x87\xac\xa5\x29\x82\xc5\xd7\x67\x1c\xe0\x41\xe0\x50\xcd\x4a\xed\xab\xf0\x1a\x0c\x09\x1e\xb1\x7b\x65\x7e\x78\xf3\x2e\xdc\xc7\x5b\xe4\x94\xf0\xc8\xa9\xfd\xb5\xe3\x5b\x70\xf7\x27\xd4\xac\xa5\x77\xf4\x9d\xab\x8e\x7f\x8d\xaa\x4a\x71\xf4\xc3\x8f\xe1\x9e\xce\x77\x68\xba\x18\x66\xfe\x90\xe5\xdb\x55\xdc\x31\x7b\xaa\x07\x81\xc6\x18\xc2\xd1\xd3\x67\x2f\x9f\xbd\x7f\xa6\x16\xe4\xa3\xba\xda\x57\x2f\x9e\x3e\x17\x7c\xd9\x56\xfc\xc2\x77\xad\x0a\x00\x8c\x44\x46\xa8\x0e\xca\x58\x9c\x04\xee\x0e\xc0\x37\x41\xd3\xd9\x9c\x6e\xe9\x77\x71\x44\x08\x49\x27\xa1\x93\x84\x28\x4a\x62\x41\x38\x2e\x49\x34\x61\x39\x89\xfa\x29\xde\xa5\xbc\x60\x50\x96\x06\x8b\xa1\x65\x5e\xfd\xcc\xe4\x62\x32\xd0\x11\xc1\x2d\x2a\x55\x62\xe7\xfc\xc1\xca\x3a\x51\x22\x5c\xf6\xb8\x84\x98\x6e\x61\x1f\x42\x81\xbd\xf3\x72\xd3\xc4\x34\x42\xa8\xa5\x77\xb3\x4c\xbf\xfc\xf8\xf6\xe5\x4b\x1d\x1b\xe1\x68\x74\xef\xe1\x3e\xbe\x97\x2f\x43\x51\x28\xff\xab\x74\x85\xf5\x91\x68\xa7\xdb\xaf\xaa\x23\x1d\xca\x2a\xc9\x85\x73\x39\xbe\x6b\xd5\x3a\x10\xd8\x34\x66\xe0\x6d\x48\xe1\x22\x0c\x4f\x67\x08\x6b\x8d\x26\x66\xe2\xbd\x49\x54\x5b\x7f\xb1\x9e\x6a\x51\xd0\x46\xdc\x76\x46\xab\xb3\x8f\x70\xba\xbb\xe1\xe9\x68\x86\x14\x6d\x34\x6d\xae\xed\xa6\xd3\xd4\x74\x5a\x92\x1d\xea\x7d\x74\xc8\x72\xe7\x0b\x80\x75\xec\xec\xf6\x79\x5f\x82\x9b\xc6\x58\xb5\x5a\xe9\x8e\x4f\x67\x08\x61\xde\x27\xd2\xc8\xb4\x2a\xb7\x14\x9d\x6a\x5a\x9a\xa8\xad\x10\x68\xbe\xaa\x51\x2c\x31\xc3\x51\x8f\xe5\xd5\x77\xf7\x1f\x7f\x77\xff\x29\x89\x9c\x5a\x85\xd7\x31\x6e\x0b\xa9\x52\xbc\xc6\x2d\xca\xca\xd1\xb6\x6c\x1e\x1b\x49\xef\xbb\x75\x96\xd1\xca\x90\xbd\x4d\x68\xd9\x4e\x93\xc3\x88\x78\xda\x39\x80\xb4\xf3\xc5\x3f\x71\x69\xe4\x87\xce\x7b\x2f\x48\x60\xad\x26\x36\xe4\x09\x7b\x82\xec\x39\x63\x99\xbc\xf9\x53\xa0\x3a\x69\xfe\x4a\x4b\xef\x5c\x87\x3b\x46\x03\x98\x6a\x0d\xe0\xee\xbd\xd1\x38\x09\x3a\xb2\x25\x64\x89\x39\x4e\xb5\x6e\x69\xf7\xde\xe8\x38\xcc\x1c\x4a\x4a\x82\x9c\xf7\xc2\x9c\x81\xa8\x23\xc8\x78\x1a\x66\x0c\x84\x14\x3a\xa3\x55\x4f\x55\x84\xd7\x05\xb9\x3f\x1a\x85\x53\xe7\x49\x19\x20\x7f\x1d\xa4\x9a\xc2\x3a\x05\xbb\x65\x4a\x28\xb9\xa0\x17\xe4\x68\x34\xea\xf5\xe8\xf9\xf1\x68\xb4\xd9\x1c\x83\x4a\x18\xc5\x6e\xa1\x54\x9e\x7b\x47\x47\xf0\x11\x0e\x52\xff\x0a\x30\xa8\x1b\xce\xb6\x54\x03\x2d\x1a\x1f\x21\x9c\x93\xdb\xb5\x28\x12\x8a\x0d\x2f\x41\xd6\x78\x41\xf8\x70\x8b\xf9\xe9\xce\xfd\xcc\xd2\x1d\xaa\x02\x83\xd1\xc6\x0b\xa3\x06\x47\xc9\x45\xcc\x08\xc5\x70\xf9\xec\x52\xb8\x53\xf7\x4f\x8e\x50\x93\xfd\x56\xdb\xb0\xf2\x4f\x9b\x0d\xdd\xe2\xb7\x18\xe5\xae\x36\x43\xac\xd9\xd5\x45\x2c\x50\xe7\x68\x34\x02\x8d\x26\x4d\x89\xf7\x7a\x72\xab\x9e\x49\xcc\x7d\x8e\x02\x91\x58\x92\xe0\x8b\xd5\x77\x43\x49\x2b\x67\x89\x15\x69\xdb\xc4\x97\x77\x40\x2d\x9b\xc8\xa6\x7a\x86\xc0\x7f\x6c\xcc\x31\xc5\x4c\x5f\xf9\x39\xda\x8a\x36\xdd\x42\x5a\xa0\xf7\x26\x4f\xea\xe0\xdf\x56\x92\xa3\x1a\x25\xa0\xd7\xb6\xc5\xcf\x6a\xfb\xef\x5a\x0c\x2b\x0d\x33\x41\xac\xb1\xa6\xa1\x7d\x1d\x58\xef\xed\x80\xfa\x95\xa3\x8e\x6e\x5a\xac\x8d\xce\x32\x8c\x8b\xaa\x2c\x78\xa1\xa7\xc9\xaf\xfa\x9b\x1a\x94\xa8\x13\x70\x77\x48\xa3\x0c\xb9\x6b\x96\x15\xc9\x08\x3f\xdf\xd3\x2f\x32\x98\x71\xee\x4d\xd6\xde\xbe\x4a\xe8\x2b\x1f\x7e\x84\xcd\x01\xde\xb3\xa2\xa7\xef\x92\xee\xdb\x67\xef\xde\x1b\x26\xd8\xff\xa2\x92\x4c\x20\x61\xc9\xbb\x51\x9f\x2a\xb4\x42\x7d\xb4\xc0\x4d\xd1\xad\x66\x83\x6a\x5c\x05\xd2\xcb\x56\x06\x05\xc5\x7c\x5b\x17\x11\xb2\x75\x73\x4e\x2b\x90\xc2\x56\x94\x2e\x55\x23\x97\xb4\x6b\xe3\x18\xb3\xb2\x7b\xc3\xd7\xa2\x9b\xae\x56\x8d\x12\x22\xbf\xa6\x42\xb0\x1c\xc4\xf4\xd7\x2c\xed\xfe\x9a\xe6\xf9\x1b\xf1\xc6\x7c\x7d\x97\x96\xf9\x25\xff\xf2\x67\xd0\x5c\xac\x7e\x85\x88\x93\x0b\xda\xb5\x94\xba\x11\x82\x4e\x22\xd4\x29\x9b\x0e\x07\xdb\xd5\x51\xc1\xb0\x4f\xb5\x1e\xa5\xd1\xcf\x74\xaa\x87\x31\xf0\x6c\x30\x45\x9d\xff\xd7\x34\x2c\xcd\x3a\xa8\xee\xee\x3f\xc1\x76\x1d\x47\x14\x25\xed\x02\x76\x76\x86\xac\x7a\x9e\x56\xf2\x31\x30\x3d\x4c\xd9\xd6\x62\x1a\x4e\x4a\xf8\xb1\xde\x96\x07\xa1\x5b\x2b\x02\x49\xab\x8a\x5d\x95\x71\xeb\x24\xc5\x0a\xaf\x53\x07\xaa\x51\xd1\xd8\x56\xd1\x36\x0c\xc3\x08\x75\x9c\xa9\x4e\x39\x11\x96\x1d\xd9\xaa\xbc\x56\xb8\xb0\x63\x55\x26\xee\xe7\x66\x13\x37\x45\x6e\x0d\x7e\x04\x4e\xb7\x1b\x16\xd4\x66\xa3\xc7\xb4\xcd\x9c\xea\x04\xcc\xf6\x9d\x13\x1c\x0b\xe0\x92\xf5\x7a\x40\x05\x01\x72\xaa\x46\x06\x11\xe8\x4c\xbb\xd3\xc8\x54\x39\x50\x75\x46\x33\xeb\x31\x12\x92\x4c\x3f\x06\xd2\x24\xc5\x7b\xd3\x08\x43\x08\x0b\x92\x1b\x1a\x0d\xa1\xe4\x8e\xb6\xc3\xe9\x11\xf8\xd6\x1b\x6f\x02\xcc\x1f\xd1\x62\x99\x6b\x6e\x9f\x4a\x27\x91\x96\xb7\x51\x3d\x49\x5f\x24\x91\x86\x2b\xda\xb4\x44\x6d\x4b\x3a\x61\x0f\x27\xb1\xb1\x17\x19\x5e\x82\x2b\xde\x77\xb4\xcc\x03\x43\xe9\x90\x77\x6a\xd7\xcf\x61\x72\x82\x5c\x80\x1b\x3a\x03\x6a\x9a\x21\x1c\x0b\xec\xb2\x4e\xc5\x0c\xc2\x3f\xd6\x6e\x56\xb0\x50\x5b\x93\x34\x60\xaa\x50\x59\xf8\x86\xb0\x30\x9b\x46\xdb\x2b\xa8\x73\xe9\x9b\x76\x42\xa8\x6a\xbf\x23\xb3\xd0\xdd\xd3\x04\x4b\xc6\x0b\x30\x20\xfb\x6a\x6e\x6d\x9c\xa0\x0e\x96\x96\x8d\x81\x39\x66\x0c\x43\x98\xd6\xbf\x82\xe2\xf3\xe1\x3f\x16\x52\xae\xaa\x96\xd9\x01\x92\xe2\xe6\xd6\xcb\x7f\x78\xe8\x4c\x0e\x8c\x60\xa0\x44\xb7\x5b\x87\xd4\x2f\x7c\xdd\x4d\x05\xed\xae\x2b\x56\x5e\x69\xf0\xee\x3e\x4d\x65\xda\xfd\xcc\xe4\xa2\x5b\xf2\xae\xea\xdb\xf6\x31\xac\x2f\x85\x61\xf7\xfd\x82\x55\xdd\xcf\xac\x28\xba\xa9\x94\x74\xb9\x92\xea\xc8\x5a\x57\x14\x8e\x2b\x28\xca\xe7\xf0\xdb\xce\x61\xd7\x8c\x19\x77\x3f\x2f\x58\xb6\xe8\x32\x7d\xe4\x6b\xee\xe6\x5a\xd0\xbc\x3b\x37\x07\xa3\x89\xc6\xed\xd5\xc2\x2a\x5b\x7a\xd8\xfd\xa1\xa0\x0a\xeb\xac\xa8\x74\x4d\xfd\xbc\x60\x92\x16\xac\x92\xdd\x95\x11\xf7\x41\x5d\xb6\xcf\x1e\xe7\x74\xf8\x5b\x35\x6c\x7a\x04\x33\x91\x74\xa3\x7e\x69\x55\x27\x91\xd3\xb7\xa6\x35\xde\x71\xdf\x36\x66\xd9\x20\xbc\x93\xbe\x21\x01\xb5\x62\x18\x81\x6e\x3d\xad\xed\xdd\x48\x7f\x62\x8e\x48\x72\x21\x76\x84\x8c\x11\xbd\x9e\x30\x04\xc4\xc4\xfe\x48\xa6\x56\xce\x12\x45\x7d\x8a\x8d\xa4\xea\xfd\x82\x76\x2f\xd3\xec\x13\x2d\xf3\xae\x46\x05\x72\x9a\xeb\x25\x4c\x4b\xa3\xe7\x63\xe5\x57\x51\xd4\x17\xf5\x0c\xef\x23\x30\x92\x3d\x48\x09\xb8\x5e\xda\x3a\xa4\x22\xf0\x5d\xd4\x0d\x8e\x35\xa7\x15\x4e\xbc\x18\x3e\x0a\xf5\x54\xc3\xb1\xc1\xba\xef\x8f\x26\xd1\xf4\xcd\x92\x49\x49\xf3\xae\xa6\x82\x6f\xba\xdf\xbf\x7f\xf5\x72\x16\x25\x02\x4f\x23\x0f\x12\xad\xbc\x2d\xea\xc7\xa5\x91\xb6\x40\xb8\xb2\x12\xb6\x72\x3f\xea\xea\xf6\x68\xde\x4d\x15\x5e\x82\xa3\x1f\x34\x96\xda\x8d\xc1\xa6\x16\x45\x98\xcd\x0c\x11\xff\xa1\x54\xd7\xa5\xc7\xb9\xf5\x25\x48\x8a\x2a\xd1\x02\x43\xa3\x3c\x9f\x88\x9a\x50\xad\xc9\x3b\x34\x9f\x88\x40\xcd\xa2\x06\x32\xf1\xc5\x3e\x99\x78\x4e\x2f\xd7\x57\x5f\xd3\x8a\xd2\x99\x2a\x2a\xd7\xab\x3f\x5a\x21\xea\x4e\x85\x25\x35\xc1\x06\xc3\x73\xea\x21\xa0\x48\x6d\x30\x03\x56\x42\x6b\x46\x10\x12\x47\x90\x16\x21\x7c\x45\xe5\x73\xd0\x83\xa8\x40\xbb\x66\x7a\x5b\xa6\x4b\x9a\x44\xac\x7a\x4d\x3f\x2b\x48\xab\xb2\x24\x52\x3f\x6b\xec\x52\x5e\xf1\x9c\xcd\x19\xcd\x6d\xb2\x7b\xf7\xf2\x3c\x29\x68\x5a\xda\x0c\xfa\xa5\x9e\x29\x34\x72\x49\xdf\xf3\x27\x45\x5a\x55\x9e\x66\x6b\xfb\x58\x35\x7d\xd3\xdc\xab\xe7\x5c\x00\x3a\xf2\x59\xed\xc5\x57\xea\x8b\x82\xcd\x0a\x24\x82\xb7\xbb\xd1\x0c\x3b\x36\x60\xbd\xf8\x6c\x48\x35\x49\xd6\x8b\x13\x28\x6b\x28\xe8\xaf\x5e\xa5\xab\xe7\x5c\xa0\xb8\x44\x9d\xb4\x91\x38\x2a\x54\x9a\x5c\x68\xa5\x71\x68\x5b\x35\xfb\x62\xfe\x63\x59\x51\x5a\xc6\x25\x4e\x31\xc3\x8a\x06\xe0\x08\x22\x76\x6f\xb5\x43\x24\xb9\x88\xef\x28\xad\x1b\x37\x55\x60\xa6\x85\x79\x25\x96\x2e\xac\xa2\x5a\x8e\x5b\xee\x73\x40\xb4\x13\xd8\x1d\x4d\x31\x9c\xfa\xa2\x52\xa9\x4a\xa6\xc0\x54\x92\x60\xfa\x6f\x98\xbb\x82\xc2\x59\xfb\x0a\x76\x9e\x7a\x5d\xf2\x6b\xaa\xc1\x30\xae\x1a\x05\xe0\x5d\x79\x57\xeb\x6a\xe1\x72\xe2\xca\x2c\x47\x30\x28\x47\xac\x9a\x48\x9b\x07\x0a\xbd\x03\x3f\x25\xb1\x70\x8e\xef\x69\xb3\xa8\x02\xe1\x4a\xdf\xe9\x9f\x45\xba\x72\x2b\x0b\x81\x70\x3b\x86\xd9\x03\xc9\xfc\x12\x30\xfc\x26\x07\x78\xd2\xc7\x65\x3c\xad\x66\xe0\xc0\x56\xb5\x00\x1e\x12\x6a\x9c\xf1\x62\xbd\x2c\x5f\x03\x98\x3d\x55\xc0\x47\xc9\x45\xcb\x9c\x6e\xc5\xa4\x56\xa4\x0b\xbe\xaf\x4b\x85\x7b\x64\x5c\xa8\x83\xbf\x31\x83\xf8\x78\x78\x85\xa3\x6e\x64\xed\x7b\x90\x69\xa0\xda\xb2\xd9\x73\x1b\xc7\x6d\x8b\x17\xb9\x02\x79\x41\x46\x86\x5f\xb8\x8d\x79\x52\x1c\xa5\x52\x0a\x76\xb9\x96\xb4\x8a\x90\xbf\x84\x00\x7b\x6c\x1e\x8b\x7e\xff\xa2\x1c\xba\x5c\x2f\xd9\x92\xb5\x02\xfd\x1b\x5e\x54\x7b\xe0\x31\x03\xc7\x80\xe0\x78\x01\x7a\xc6\x74\xb7\x78\x0d\xe0\x50\xab\x8d\x6f\xb8\x9d\xfa\x6c\x62\xf3\x26\x96\xad\x39\xdc\xcf\x8f\x1a\x57\xd9\x1f\xe1\x60\x53\xd7\x43\xca\x4a\x2a\xfe\x4a\x6f\x02\xdf\x36\xc2\x44\xbb\x84\xc0\x73\x45\x12\x0f\xff\x0d\x1d\xa2\x8e\x31\x8a\x2b\xd5\xc1\x4b\xca\xe9\x78\xd6\xdc\xc7\x86\x37\x26\xdd\x49\x34\x5c\x51\xfa\xe9\x51\x51\x80\x4d\xac\xeb\xdc\x13\x18\xd6\x4f\xea\x10\xf4\x84\x99\x23\x2c\xc8\x2d\xcb\x93\x60\x2a\x59\x1e\x35\x30\x4c\x87\x34\xcd\x16\x8f\xec\xbc\xc5\xa5\x9e\x4e\xd9\xef\x5f\x68\x2e\xfc\x9e\x19\x15\xd3\x72\x46\xfc\x6a\x4b\xf0\x4d\xe1\xf5\xe8\xaf\xf4\xe6\xb3\x9e\xb5\xc6\xa6\xc9\xa1\x86\x8f\xe2\xa9\xea\xc7\x0c\xed\xeb\x07\x25\x17\xc2\xf1\x31\xb1\x08\xb1\x62\xf8\xee\x37\x2e\x10\x0a\xd7\x4a\x1f\xd5\x7a\x3a\x14\x68\xc7\xb7\x70\x50\xeb\xd8\x79\xb1\x39\xb5\x11\x6e\xce\x68\x9b\xb2\x48\xab\xa7\x4c\xc8\x9b\x47\x1e\xbc\xf5\x7a\x07\x5b\xe5\xe0\xa8\x4e\x0e\xee\x28\x55\xa3\x60\x75\xe0\x74\x36\x13\x11\x5d\x16\x69\xf6\x29\x6a\xc6\xee\x57\x3e\x91\x24\xba\x12\x94\x96\xd1\xdd\x7d\x8a\xa1\x9e\x35\xf8\x2c\xae\xb1\xd9\xfb\xbe\xad\xb2\x7f\xeb\x3d\x8a\x1b\x4b\x60\x33\xf7\xd8\xde\x5d\xbb\xea\x9f\xa9\x8b\x7e\x6b\x45\x4a\xb7\x22\x9d\x46\xb8\xd5\x29\x9b\xfd\xd8\x0e\x23\xca\x7d\xe3\x4f\x19\x33\x38\xc1\x6c\x1f\x11\xaa\x0d\x6f\x26\xcd\xf3\x37\xba\xff\x42\x41\x92\x3a\xe7\xcd\xe2\xfb\xfa\x03\x86\x8f\x63\x0e\xe3\x20\x7b\x8d\xd4\xff\x2d\xb6\x1a\xba\x15\xed\x6b\xa1\xae\xbf\x4d\x2b\xd6\x47\x4f\xee\x36\xc0\xfa\xe3\xb1\x17\xef\xb2\x25\xe5\x3e\x6c\x46\x51\x34\x3f\xd3\xf4\xd3\xab\x74\x15\x84\xd3\xb6\x30\x66\xb6\x86\x9b\x14\x5d\x98\x10\x22\xf5\x21\x63\x44\x34\x5a\xa4\xa2\xba\xad\xc0\xc8\xca\x4c\xad\x9a\x4b\x23\x85\xda\xba\x4b\x3b\xdf\x94\x6b\x87\x65\x63\xa9\x75\x3e\x1a\x99\xca\x22\x55\xf4\x2f\xd8\xb7\x6c\x36\xfa\x96\xd2\xaf\x10\x02\x84\x79\x16\x38\xd4\x84\x99\xe0\xc4\x5c\x22\xc1\x8a\xa5\x32\x1d\x38\x45\x4b\x56\x32\x69\xf4\xc0\xd1\x6d\x5d\x7b\x4b\xce\xf7\x2d\x39\x9c\xc8\x7b\xbc\xb6\xdc\x61\x76\xf7\x0d\x20\xb1\xe5\xca\x25\x5c\x30\xa3\x14\x3b\x1c\x0e\x15\x42\xd2\x9a\xb1\x29\x20\x0b\x33\xe2\x18\x32\xc7\xa0\xe8\xe2\x3c\xb1\xef\xb0\x60\x95\x9b\xcd\x16\x65\x25\x7b\x3d\x73\xc9\x48\xd4\xeb\x6d\x05\x5a\x57\x28\xff\xb6\xed\xa7\x2b\x53\xf6\x7a\x51\x63\x3d\x10\x31\x08\xbd\x1e\x59\x12\xd6\x7d\xdb\x6c\x1c\x94\x95\xa8\x8e\x25\x9a\xd0\x18\xe9\x71\x25\x54\xff\x35\x20\x56\x06\x9c\x6a\xb1\x2b\xae\xe8\x24\x16\x84\x62\x6a\xa0\x1e\x25\x82\x88\xcd\xe6\xb6\x36\x1c\xb3\x5b\xe0\xa1\x51\xcc\x2a\x77\x42\x25\x07\x23\xfc\x89\x95\x79\xd2\x20\x0b\x11\xe6\x9a\x31\x97\x88\x3a\x44\x2b\x42\x4d\x2a\x1a\xea\x6f\xb3\x52\x52\x51\xa6\x05\x60\x52\x3b\x98\xf5\x9e\x7b\x86\xa1\x70\xb0\xae\x11\x70\x05\xce\xaa\x4b\xb1\x00\x35\x47\x8a\x26\x25\xa8\xf6\xd9\x2e\xc1\x9d\x14\x53\x94\xb4\x01\x64\xb7\x35\xb2\xdb\x65\x50\xae\xf1\xd3\xec\x7f\x1d\xa6\xab\x55\x71\xa3\x19\xdb\x0e\x35\xb1\xac\xc5\x30\x6b\xa3\x80\x64\x6d\xda\xe8\x5e\x0d\xaf\x60\x16\xd4\xb6\x0c\x2f\x09\x63\x45\x87\x14\x81\x9a\xc6\x25\x1c\xc0\x7a\x73\x96\xbb\xc2\x88\x94\x98\x75\x76\x2d\x72\x49\x28\x66\x6e\x91\xe3\x92\x48\xcc\x08\x85\x58\x98\x21\x88\xb2\x5e\x2f\x66\x44\x34\xc2\xc4\x57\x56\x66\x1f\x33\xd7\xb4\x06\x0b\x86\x59\xf5\x96\x16\xa0\x47\x56\x2d\xd8\x4a\x41\x86\x05\x84\x92\x94\x0a\x8c\x0c\xa4\x5c\x3a\xc5\x0e\xac\x4f\x14\xa3\xe9\xd1\x55\x5f\x3e\x51\x6d\xea\xf1\x35\xd0\xb9\x63\xd6\xae\xa8\xf4\x54\x53\x7e\xe7\x54\x07\x4a\x2d\x86\x34\xf9\x4a\xfd\x76\x39\xb8\x5b\x8e\x74\x7b\x39\xb6\x97\x01\xae\x04\x6f\xb3\x61\x49\x24\xcc\xd2\xd6\x2a\x50\x1d\xdf\x65\xd7\x2a\x58\xb4\xa0\xd9\x9c\x76\xce\xe5\x8e\xf5\xd0\xf3\xbf\x30\xaa\x3d\x66\xf6\xbf\x4f\xab\xae\x7e\xff\x63\xe6\xde\xa9\x25\xf9\x33\x6f\x1c\x54\xee\xdf\xe9\xc2\xad\x80\xa7\xd6\x64\x34\x0e\xbc\x1a\x03\xd0\xc7\x96\x2b\x0f\x86\xb3\x3f\x08\xfe\xe5\xa6\x51\x12\x7d\x4a\x57\x82\x66\xa9\xa4\xf9\xb3\x6b\x88\xfe\x80\x6f\x3f\x0a\xd0\x75\xa4\xe2\x7b\x90\xce\x0b\x43\x5c\xe8\x5e\xd9\x34\x9a\xdb\x54\x72\x7b\x49\xb3\x74\x49\x9d\x78\x17\xeb\xf7\x9f\xe0\x4d\xd6\xb5\xd6\xf1\xae\x1e\x37\xfb\x53\xad\xc9\x5d\xea\x98\x9e\xa8\xf9\x55\xba\x82\x30\xd1\x50\xc5\x73\x1f\x53\x6d\x73\x0c\x76\xb6\x12\x69\x35\xc9\x3d\xf8\x86\xf0\x78\xf2\x8f\x62\x4b\x87\x02\xce\x8e\x9b\xea\x05\x8e\xa6\xb3\x08\x28\x08\xc3\x92\xac\x5a\x9d\x1f\x2e\xd3\xd5\xe3\x9b\xd8\x32\xe4\x22\x1c\x99\x8c\x91\x22\x36\xe1\xdb\x37\x0c\xd7\xf5\x43\x0d\x78\x5d\x7e\x2a\xf9\xe7\xb2\xc1\xca\xec\xb0\x3d\x0b\x71\x3d\x1d\xe0\x73\x19\xc8\xf4\x56\xb0\xe1\x1a\xb3\x4a\x7b\x33\x6f\xf5\xb6\xe4\x32\x8e\x74\x66\x70\x17\x60\xa3\xbe\xe0\x34\xdf\x81\x9f\x37\x33\x6c\xaa\x8b\x50\xc7\xb0\xf1\x4d\x76\x2c\x7a\xbd\x83\xbd\x99\x7b\xbd\x7d\x90\xb3\x3f\x65\x18\x80\x54\x0c\x52\x35\xdb\x37\x33\x05\x1f\xe7\xac\xcc\xdf\x18\x3f\x48\x86\x5d\x5a\x79\xa7\x11\x20\xee\xea\x2c\xa9\x62\x19\xd8\xd5\x9b\xbb\x70\x47\x7a\xc9\x25\x9b\xdf\xd8\x29\x7f\xb2\xd0\xe1\x1a\x40\x12\xb9\xaf\x2d\xcf\xab\xe2\x56\x13\x8e\xaa\x59\xa6\x9f\xa8\x76\x03\x21\x81\xa1\x45\x3f\x77\x8d\x57\x08\xbb\x64\x46\x31\xb7\x0c\xa2\x85\x98\x23\x72\xca\x67\xb8\x32\x31\x11\x14\x90\x59\xd0\xc2\x29\xea\xb0\x29\x9f\x91\x6a\xb3\xb9\x75\x68\x05\xc8\xf2\x34\xef\x38\x75\x84\x3a\xab\xb1\xa6\x4d\x76\x89\x25\xdd\x42\x6d\x36\xb1\x5d\x0f\x93\x17\xff\x67\x2c\xea\x4f\x7a\x49\xd5\xb4\x36\x9d\x62\xf3\x78\x3f\x04\x05\xa0\xaf\xcd\x62\xd4\x44\x78\xa8\x14\xb5\xa2\xf4\xa6\xb4\xdd\x8b\x48\xed\xe9\x66\xa5\x3b\x77\x2f\xd8\x96\x93\x1a\x31\x2d\x67\x0d\xa7\x41\xe1\xb7\xbd\x9e\x70\xbc\xa5\x12\x8f\xb7\x5b\xde\x73\x10\x0d\xb5\x46\xa0\x6a\xe7\x2e\x68\xbb\x23\xd1\xed\xd9\xba\xc6\xc6\x2b\xef\x37\xac\xa6\xf5\xdf\xfb\x47\x2c\x98\x6d\xf5\x1b\x96\x8b\x7e\xf3\x01\x0d\x1e\x65\xe8\x0e\x4a\x9d\x6a\x57\xff\xc6\x03\x17\x5c\x03\xce\x1b\x71\xa8\xef\x76\xe7\xf6\xb5\x60\xec\x5d\x7f\x9e\x49\xb5\xaa\xaf\xa1\xe3\xd4\xd4\x02\xd1\x17\x5e\xdf\xc1\xc9\x61\xa4\x26\xa3\xba\x46\xd8\xfa\x88\xbc\xc3\xaa\xc0\xdc\x62\xfb\x84\xd6\xc2\x43\x3e\xaa\xc7\x37\x06\x56\x5a\x1a\x88\x1a\x6b\x11\x35\x91\x1d\x0a\x44\xa9\x80\x48\x91\x9a\x6b\x3a\x9d\x21\x1d\xea\x27\x16\x9e\xca\x21\xa6\x35\x0a\x0e\xf7\xf5\x5d\x5d\xd5\x5a\x90\x4e\x0f\xd9\x5f\xc0\x47\x71\xa8\x3f\x4b\xd3\x6c\xf1\xc4\xd4\xe1\xae\x27\x70\x49\xa1\xf9\x73\xe5\x30\xc4\xa8\xd0\x6d\x39\xfc\x44\x6f\x8c\xd2\x8c\x22\xe1\xd5\x60\xc0\x5a\xba\xc9\xf4\x4a\x63\x2b\x1d\x6a\x65\x3b\x5a\xab\xd2\x44\xde\x63\xa8\xde\x31\xa0\xec\xeb\x73\xbf\xc3\x5b\x15\x36\x1b\x7f\x4b\xe9\xfa\x8e\xc1\x95\x86\x97\xdb\x1a\x19\x18\x0c\xa8\xa1\x95\x98\x69\xdf\x2e\xea\xc7\x2a\x15\xb4\x94\x0e\xf7\x24\x02\xd3\x69\x39\x23\x8a\x1c\x6b\x8a\x3e\x17\x7c\x09\x63\x66\xc8\xae\x15\xce\xef\x1a\x4f\x13\xa8\xcc\xb2\x47\xb6\x31\xa0\x00\x94\xf4\xd0\x01\xff\xf1\xa5\xf9\x72\xb7\x2b\x2e\xe7\x19\x79\x5a\xce\x4c\x0c\x64\x3d\x36\xcc\x50\x23\x7e\x0d\xe7\xff\x36\x83\x2d\x66\xa6\x89\xd1\x2a\x59\xd4\xba\x4f\xda\x09\x02\x5e\xe1\x65\x7b\x48\x91\x11\x24\xbf\x93\xc0\x9f\xd8\xe5\x04\x3f\x1c\x55\x1b\x73\xf6\xcb\x2b\x02\x31\xec\xd2\x35\x89\xdb\x0d\xea\xad\x6b\x06\x1b\xe1\x6d\xbc\xeb\x20\x6e\xf8\xd8\x61\x66\x74\x31\x6a\x37\xb0\x44\x9d\x39\x59\xe2\x15\x59\xc2\x18\xaf\x76\xba\x1a\xd8\x89\x55\xb3\x92\x49\xbb\xd1\x8c\x15\xf6\x70\x38\x6c\x68\xe2\x1a\x7f\xd4\x07\xd8\x6b\x2a\x3f\x73\xf1\x49\x9f\x5f\x95\xef\x07\x61\x1a\xb1\x0a\x0e\xe3\x68\xe6\x9f\x7e\x77\x1d\x7e\xa8\x41\x02\x97\x98\x55\x2f\x79\x9a\xb3\xf2\xca\xfd\xa6\x79\xb2\xc4\xdb\x3c\xd6\x36\xb2\x1a\xac\xda\x90\xe9\xec\xbb\xe6\xd2\x13\x09\xec\x2c\x02\x87\x38\xab\xde\xa5\xd7\xb6\x17\xda\xbf\x64\x9e\xcc\xb1\xe6\x82\xaf\xb0\x19\x63\x72\x8d\x3f\x2e\x53\xf1\xc9\xe0\x80\x46\xee\xfc\x48\x73\xb7\x63\x74\x5b\xe3\x5c\x55\x09\x9a\x33\xaa\x22\xad\x38\x70\x30\xd6\xa5\x8c\x60\xbf\x55\x46\x4f\x3e\xf5\xd2\x2a\x32\x9d\x99\x9b\xb1\x48\x2b\xe3\xe5\x43\xab\xe1\x69\x35\xab\x1d\x4b\x12\xc3\xa4\x6a\x8f\x06\x6a\x18\x07\x63\xec\x0f\x36\x91\xc3\xb7\x9c\x9b\x81\x43\x30\x19\x1c\xc2\xb0\xf1\x0f\x01\x82\x5d\xad\x9d\xa8\x95\x09\xbe\x7a\x9a\x55\xf6\x20\xf3\x44\x13\xdb\xc4\x5a\xec\x44\x9e\x95\x02\xc6\x28\x40\xa5\x23\x54\xe3\xdd\x19\x7e\x32\xc9\xdb\xe7\x2c\xf3\x94\xa8\x2b\x3d\x07\x60\xb1\xa9\x91\x72\xf8\x6c\x70\xe2\xf7\x3c\x64\xc1\xdc\xb6\x77\x56\x84\x1a\xaa\xc1\xa2\x13\x7e\x05\x55\xbc\xbb\x8c\xb9\xf5\x6b\x9c\x7a\x46\xd3\x2d\x3f\x1b\x5f\x21\xb9\xf5\xd4\xbd\x2b\xd3\x55\xb5\xe0\x32\x46\x43\xbf\xa0\xc2\x8f\xd3\xdc\x78\xcf\xc8\x59\xae\xf6\x86\x7b\xd1\x8e\x53\xdd\xab\xa6\x02\xdc\xab\x06\x60\xfd\x1a\x12\xc2\xde\x27\xaf\xbf\x82\x17\x05\x05\xcf\x18\xb6\xff\xe5\x2e\x07\xae\x6d\xb6\x4b\x69\x27\x0d\xe2\xbe\xfd\x3f\xd4\xfd\x6b\x7b\x1b\x37\x96\x20\x8e\xbf\xe7\xa7\xa0\x38\x79\x98\xc2\x0a\x61\x4b\x3d\xdb\xfd\x9f\x3f\x9d\x8a\x1e\xc7\x8e\xa7\xdd\x9d\xc4\xd9\x38\xe9\xec\x2c\x87\x2b\x97\x59\x90\x84\x76\x09\xc5\x46\x81\x76\xd4\x24\xbe\xfb\xef\xc1\xc1\x1d\x85\x2a\x52\x89\xd3\x33\xfb\xc6\x16\xab\x50\xb8\x1c\x1c\x1c\x9c\xfb\xa1\x02\xea\xda\x1f\x59\x72\xd2\x34\x09\x71\xb1\xc7\x21\xfe\x26\x6e\xa2\x3e\xe9\x04\x6f\x5d\x4c\x59\x3c\x5e\xdc\x58\x1f\x99\xae\x7a\xaf\x21\xba\x63\x3e\x2d\x48\xe1\x32\xb7\x3d\xd7\xfd\x91\xda\xba\xf7\xc5\xc3\xc7\x1f\x39\x9a\xe8\xef\x18\x5d\x91\x0e\x50\xd8\xa5\xff\x37\x06\x5a\xe2\x72\xfd\x7f\xce\x74\x29\xad\x92\xac\xf8\x7a\x84\xa1\x56\x7c\x92\xc4\xfa\x1a\xab\x3d\xf9\x4b\xa3\x57\x13\x44\xea\x37\x97\xb0\xab\x6f\xab\xcd\xbb\xa8\x93\xdc\xd7\xb9\x86\xea\x24\x24\xd8\xf9\x18\x4c\x96\xd8\x46\x13\x7f\xa5\xee\x9f\xae\x4f\x90\xe3\x0e\x2c\xc3\x1f\xf7\x4a\x6b\x89\xcd\xde\x79\x0d\xb2\xf1\xdd\x8e\xd9\xa8\xfd\x56\x3f\x5d\x66\x31\x55\x77\xa1\x7d\xe5\xd5\x36\x69\xae\x1a\x4e\x98\xda\x5a\x97\x89\xc3\x90\xb0\x9c\xc2\xcf\x68\xf6\x89\xae\xc5\x00\x07\xde\x38\xb1\x82\xbe\x66\x1f\x3f\x5b\xa6\x8d\xa4\x92\x0e\x1e\x3f\x73\x33\x3f\x9e\x9b\xbb\x12\x00\xe1\xce\x79\x1b\x68\x34\xc7\xf6\x88\x93\x1b\xc2\x09\xdb\x28\x3e\xb7\x08\x55\xb9\xea\x64\xdc\x39\x45\xdd\xe9\x5d\x38\x6d\x24\xe8\x23\xc0\x04\xa8\x6b\x87\x98\xbb\x41\xdb\xac\xb1\x28\xf7\x52\x57\x77\x73\xec\xac\x27\xc9\xa2\xfc\x82\x58\x01\xc1\xea\x43\xad\xcf\x43\x60\x60\xc5\x5b\xcf\xd1\x11\x4c\x7e\xde\x56\x0c\x12\x97\xae\x7b\x9c\x72\xc8\x0c\x3b\x8f\x87\xf7\xb6\x66\xeb\xe2\x1d\x65\xf5\x7a\xe2\xb4\x6d\x2d\x84\x17\xb9\x17\xea\xe6\x65\x91\x77\x03\x3c\x0f\x47\x6f\x83\xd1\x91\x2b\xc3\x46\x9c\x09\x96\x68\xbf\x9d\xa0\x8f\xd9\x8b\xa6\xba\x8d\x97\xa0\xb8\x26\xcd\xeb\xe4\xed\xc9\x4a\x72\xd5\x0c\x09\xfc\x69\x18\x12\xf8\xdb\xe4\x9a\x70\xd6\x68\xc7\x7e\x49\x84\xf7\xd6\xaf\x51\x6d\xc3\xd2\x7a\xa9\xbd\x12\x77\x84\x07\x1c\xf1\xd9\x85\x0e\x4a\xeb\x96\x4c\xad\x45\x9d\xce\xf7\x21\xc7\xcc\xa5\x94\x58\xd3\x26\xa7\x2c\x77\xcc\xdb\xb8\x58\x8b\x7b\x3b\xe0\xaf\xdc\x4d\xcb\x3a\xc1\x77\x1b\xd1\xf2\xfe\x46\xe9\x7b\x24\x92\x46\xb4\x5e\x35\xcf\x80\x07\x7d\x0d\x49\xab\x5a\xbd\x2a\x15\xa7\x40\x78\x47\xe2\xee\x7a\x13\x0a\x5b\x65\x2d\x07\xc0\x1a\x21\x0b\x17\xa3\xd6\x7e\x5a\xd7\x9a\xed\x38\x0e\x94\x1c\x13\x92\x42\xa4\x67\x2b\x9a\xdc\x2e\x38\x69\xb7\x84\x15\x7b\xc1\xe9\xed\x2d\xe1\xb1\xce\x75\x45\xd6\x03\x59\x79\x23\x2d\x60\xea\x7f\x83\x59\xa0\xef\x83\x32\xd0\xb4\xbc\x7c\x42\x3f\xe7\x90\xf8\x95\xad\xe8\x67\x97\x6b\xff\xd1\x8a\xae\x27\xc2\xd8\xcc\x40\xa6\x63\x48\xc2\xf4\xb5\x4e\xc2\x52\xee\x9c\xf8\x30\x98\x6d\x2d\x08\xd8\xc4\xb3\xba\x12\xd5\x0c\xdc\xce\x9d\x79\x54\xf1\xaf\x71\xca\x86\xc4\x70\x08\x54\x70\x71\xad\x3e\x55\xa3\x04\x70\x6a\xff\xfc\xfa\xd5\xb7\x89\x6a\x3a\xb7\x97\x49\xa6\x63\x9f\x77\xcd\x49\xe3\x47\xae\x38\x6f\x91\x0f\xb3\x16\x83\xa1\x03\xe8\xd8\xdb\xb2\xb7\xa4\xce\xdb\x4e\x79\x29\x16\x9b\x96\xf0\x0d\x79\xa9\x30\xc8\xba\x34\xf1\xfc\x45\xd8\x11\xf1\xb2\x86\xbc\x4f\x11\x54\x46\xc5\x52\x3c\xbb\x16\xd5\xed\x2c\x6f\x08\xa3\xb5\x94\x03\xbe\x16\xd1\xde\xd0\x7a\x86\xdf\x7a\xf8\x6a\x0f\xcb\x3d\xf8\x01\x91\x46\x51\x12\xa7\xb2\xd0\x9c\x63\x46\x8d\x32\xa6\xbd\x1f\x3b\xba\x41\x0e\x04\x11\x78\xf7\x69\xcf\x07\x77\xae\xbf\xa9\xb6\x27\x98\x31\x32\x3a\x17\x90\xfa\xa2\x53\x3f\x68\x62\x70\x23\x99\x0a\x00\x2b\xb2\x76\x29\xe8\xd5\x11\x0c\x6d\xe1\xba\x36\x4f\xd4\xed\x24\x68\x5b\x32\xcc\x8c\xee\xfe\x65\x76\x70\xe8\x65\x08\x8a\xe0\xdc\xef\x6a\xf7\xba\xa2\x30\xe0\x1b\x89\x2b\xeb\xf6\x78\x4f\xe0\x8c\x04\x66\x1a\xa8\xe9\x6d\xac\x8b\x13\x93\x54\xbe\x2c\xcb\xc6\x92\xbd\xa8\x47\x7a\x53\xf8\x17\xcc\x37\xc2\xb4\x2c\xda\x32\x32\x41\x0d\x6f\x1f\x43\x48\xdf\x9c\x55\xd9\xba\x91\x21\x07\xbd\x5e\x1d\xee\x52\x9d\x94\x49\x27\x1a\xa4\xef\x4e\x62\x14\xe9\xe1\x00\x0e\xb6\xc3\x33\xd0\xdb\x73\x56\xd9\xe5\xb4\xc6\xe3\xb5\xd2\x9b\x19\xe4\x32\xc7\x4d\x19\xe7\xc2\xee\xd0\x15\xe4\x55\x16\x8a\xc4\xba\x60\x65\xde\x87\x25\xe8\xd4\x90\x5b\x92\x51\xd7\x08\x0b\x24\xef\x36\x62\x9f\x1c\x0e\xac\x0c\x7e\x4a\x04\x07\xc5\xe2\x44\x33\x9f\x6b\x0e\xc2\x10\xd8\x16\x37\x60\xf2\x53\xc4\x74\xa3\x0e\xdb\x7c\x4e\x8a\xf0\x37\xc0\xa4\x45\xb8\x0d\x3c\x12\x4c\x85\xd3\x72\x97\x58\xdb\x1c\x82\x6c\xca\x9d\x5d\x9c\x0d\x1f\x67\x99\xc5\x89\xec\xe2\xa6\xa4\x2c\x4b\xe6\xe7\x3f\xb9\x2c\xcb\x72\xe3\x3d\x6a\x76\xe5\x06\x61\x56\xee\x56\x17\x26\x57\x38\xd5\x7f\x9b\xed\x87\xbf\x4d\x8f\xb6\x8c\xaa\xd6\x1c\x6b\x23\x36\xd3\xa6\x6d\xea\xac\xdf\x95\x8c\x19\x81\x6e\xd9\x44\xbf\xd5\x06\x9e\xa0\x98\xd8\x1b\xee\x74\xb9\x5a\x7b\x0e\x79\xb9\x5a\xcb\x13\x74\xab\x3a\xe2\x62\xcf\x7b\xba\x55\xb2\xe2\x9a\x51\x4c\x74\xda\x7a\x82\xa4\x06\x17\xf2\xe5\x0e\x67\x0e\xc6\xb2\xc6\x19\x5d\xe8\x72\x83\x6f\x28\x69\xea\x13\x16\x94\xe8\xec\x1f\x3f\x7d\x5d\x93\x55\xbd\x85\x35\xa0\xa5\x6a\xe0\x78\x0e\x53\xda\xb2\x10\x81\xf3\x70\x56\xf5\x92\x67\xf1\x1e\x67\x42\xb0\xaa\x79\x9b\x2f\x1a\x33\xcc\x41\xa8\x71\x9d\x6b\x58\xa6\xf6\xcc\xec\x28\x06\xec\xb3\x31\x2d\x32\x5f\xb1\xf5\xc4\x8d\x06\x95\xdc\x5c\x58\x75\xb8\x18\x3f\xa8\x75\x50\x7e\x47\x1e\x40\x8e\x07\x74\x36\xa9\x19\x82\x7b\x83\x07\x04\x9e\x5e\x05\x52\x15\xe4\x9c\x53\x1f\x25\x0f\xd9\xd5\xac\x65\xe4\x87\xf6\x15\x23\xb3\xe5\xec\xbe\x62\x0f\xf6\xef\x6c\x33\x5d\xbf\xca\xb4\x33\x3f\xb2\x0d\xbf\x6d\x83\x0e\xe1\x87\x16\x11\xf3\xda\xd3\x8f\x84\x5e\x01\xf6\x14\x3a\x87\x3c\x04\x00\x1a\x34\x43\x39\xf4\x01\x05\xd0\x4d\xcb\xef\x43\x75\xc5\x2f\x9f\x9e\xe7\x99\xfd\xbc\x74\xbc\xa1\xc7\x76\xcd\x31\xe4\x31\x39\xe1\xcb\x53\x04\xcb\xfb\xd1\x8f\x61\xef\x0f\x99\xf5\xe5\xfb\xce\x42\xe2\x94\x61\xac\x6a\xc5\xf1\x37\x33\xed\x1d\x3f\x3b\x4f\x87\x70\x37\xde\xcc\xb1\xa5\x0f\x59\xf3\x80\xa9\x2a\xb7\x13\x8a\x55\x85\x2b\x11\xe7\xfd\x70\x0c\xea\xbf\xec\x9e\x76\x0f\x6c\xa3\x98\x5a\xa7\xb5\x57\x7f\x1f\x31\x28\x60\xa3\x71\xd3\x5f\x94\xd1\xaf\xc3\xe1\xec\xd2\x94\x31\x30\xf5\xe5\xf5\x2f\xa3\x1f\x09\x34\xe0\xea\xde\xf2\xac\x8e\x2e\xf6\x63\x7b\xfe\xae\x6d\x1e\xee\x5b\xbe\xbd\xa3\x9b\xb2\xff\xc8\x8f\x11\x6a\xc7\x9d\xbe\xfd\xa6\xd9\x75\x77\xcf\x2a\xd6\x32\xba\xa9\x1a\x93\xcc\x43\x7b\xc6\x6a\xe3\xce\xd9\xa5\x5d\x42\xf0\xd4\x78\x81\x49\x5c\xb1\x87\x1f\x41\x57\x48\x6a\x6f\xc9\x39\xeb\x0d\x17\xf0\x19\x64\x71\xad\xa4\xfb\xfb\x4a\x18\x11\x82\xb2\xdb\xc3\xe1\x8c\x38\xa0\x14\x08\xad\x2e\xd6\xd6\x55\xc2\xf6\xfe\x32\xe4\xe5\x23\x43\xdc\xc5\x13\xf2\x79\x7f\x40\x43\x0f\xcf\xcf\x63\xb1\x28\x6c\x63\x44\x49\x91\x9f\x90\x08\x27\x14\x65\x1d\x52\xa8\x62\x82\xfb\x7e\xa2\x4d\x63\xa5\x5e\x7c\x89\x2f\x50\x1f\xd2\xb6\x0c\x3f\xc1\x16\x90\xea\x8c\x5a\x1f\x82\x4c\x7b\xeb\x8b\xd2\x1b\xec\x39\xad\xe3\xb1\xce\x2e\xa4\x8d\xb6\x90\x58\x2b\xf0\x9e\x8a\xe2\xe8\x82\x5d\xc0\xb8\x8f\xd8\x5f\xb8\x38\x84\x02\x49\x9c\xe0\x04\xc1\xbc\x3c\xbb\xd0\xd9\x60\x16\xd7\x7a\x9c\x97\xdd\xd3\x86\xbe\x27\x5a\x28\xf5\x55\x99\x6b\x7a\x73\x63\x5c\x6c\xd2\xc1\xb1\x97\xf8\x98\x2e\x60\xab\x17\xf3\x92\xd5\xe4\x67\x5b\x18\x64\x00\xb6\xfd\x0f\x30\x33\x6e\xfe\xf5\xb3\x76\xc7\x04\x66\x8b\xaa\xae\xcd\x8f\x1c\x98\x13\xb0\x46\x47\x81\x2c\x3a\xd8\xa1\x51\x90\x3f\x76\x0a\x7c\x3e\x0f\x1f\x7c\x71\x61\xa4\xdc\x58\x26\x55\x57\x17\xc0\x4b\x03\x5f\x2b\x57\xbc\xe5\xe5\x1d\x79\x98\x21\x04\xb5\xa7\x8d\xa7\x4b\x98\x2a\x63\xc2\x55\xaf\x05\xed\x6f\xb4\x59\x10\xc1\xe4\xdc\xa6\xd0\x83\xfe\xbc\x42\x01\x1c\xce\xd4\xe4\x5f\xf0\xf6\xde\x15\x85\x8c\x07\xc6\x74\x71\x5f\x6d\xc1\xb4\xd9\xf3\x61\x46\x08\x4a\xb1\x0d\x74\x5d\xd5\x35\x14\x06\xc9\xf6\xca\x46\x7a\xc5\xc4\xc5\xd7\x09\x4e\xc9\x7b\xf2\x75\x05\x91\xdc\xa0\x28\x8b\x9f\x98\x4b\x72\x60\x06\x81\x1f\x66\x0a\x4e\x6c\x4e\x86\x56\x89\x5c\xfb\x96\x5f\x3e\xfc\xb9\x6b\xd9\xd3\x2d\xfd\xde\x14\x3a\x50\x12\x39\xe4\x32\xad\xcc\x4a\x01\xa5\xd4\x6f\x85\x50\xea\x7f\xa4\x10\x8b\xb2\x77\x5d\xd8\x00\x1e\xcc\xec\x1b\x94\xa7\xb3\xa6\x0c\xb1\x53\xc6\x0f\xc6\x72\xe9\x26\xdf\x58\x44\x31\xc5\x74\x5c\xb3\x08\x9f\x66\xe1\x66\x6b\x68\x83\x5f\x6b\xf5\x9e\x44\x00\xc3\xbc\x84\x5c\x26\xae\xd7\x7f\x51\x4d\xa6\xfd\xcb\x14\x42\x9a\xbd\x07\x1d\x24\x92\xb1\x3e\x3a\x8a\x25\x6c\xdf\x91\x62\xa6\xbe\x9d\x21\x1c\x6a\xec\x4d\xea\xba\xdc\x20\x66\xa1\xee\x69\x90\x16\xce\x5a\x0b\xb4\x9c\x9a\x1a\x0b\x98\xec\x65\xd1\x1b\xf2\x41\xb5\x51\xab\x7d\xee\xd9\x2d\xc8\x6a\x46\x4c\x57\x3c\xc8\xef\x46\x62\x47\x9b\x20\x5e\x13\x4a\x6a\x4a\x84\xaf\xcb\xd4\xb2\x61\xe3\x84\x15\x52\x8c\x71\x76\x46\x70\xf2\x16\x98\xfd\x3b\xf2\xb0\x14\xc6\x0c\xcd\xb1\xce\xb3\x5b\x09\xca\x6e\x5f\xc6\xc6\x6a\x69\xb4\x2d\x8e\x13\x86\x93\xee\x1d\x92\x75\xaf\x41\x99\x56\xd0\x5b\x62\x81\xfb\x56\x20\x89\xf0\x87\x32\x81\xb6\x5d\x00\xe0\x6c\xea\xa9\xaa\x18\xc8\xce\xf9\xd5\x6a\xbc\x9e\xa1\x01\xec\x85\x33\x60\x36\x6d\x16\xe0\xa3\xf7\x04\x74\xdf\x69\x74\x8d\x77\x75\xf9\x55\xd1\xcb\x77\xc8\xd4\xc3\x96\xc1\x9f\x44\xff\x0d\x1e\x6b\x5a\x41\xac\x1e\x98\x3f\x55\x8b\x9b\x1b\x68\x71\x73\x33\x43\xf8\xae\xea\xd4\x8f\xbb\x0a\xa2\xed\x7c\x50\xcd\x57\xb9\x62\x40\x83\x41\xd4\x6e\xe6\x2b\xb2\x4e\xd5\xbd\x44\x57\xe0\xe9\xca\x0e\x93\x85\x43\xea\xf2\x41\xfd\x52\x1b\x57\xde\x62\x62\x21\xed\x36\xa7\xbc\xf6\x0f\xfd\x37\x1f\x30\x59\x5c\x5b\xad\x9f\x2e\x3e\xd9\x0f\x92\xe0\x69\x7a\x5c\xf0\x97\xe4\x8b\x9b\x6a\x23\x5a\xfe\x00\x7a\xdd\x7b\xf5\xed\x72\x76\xae\xdd\x5c\xd5\x45\x04\x7a\x14\x48\x52\x6e\x55\x4b\xb7\x76\xc7\x29\x9a\xb4\xb1\xaa\xf3\xfa\x9a\x76\x30\xfc\xf2\xec\x02\x5f\x5f\xeb\xde\x28\xd4\x15\xb7\x5e\x0e\x85\x63\xbf\x05\xf6\x19\xd5\x93\x59\xd8\x16\x50\xd4\x4e\x49\x15\x25\xc5\x64\xe1\xf0\xb7\x6c\x31\x38\xd1\x29\x00\x94\xd5\x47\xab\x8c\xa6\x63\xb4\x8e\xa4\x16\x48\x02\xb9\xfe\x59\xe5\x56\x5c\x9d\x93\x13\x0b\xad\x00\x06\x8d\x16\xf1\x52\x60\x3d\xb9\x3b\xd5\x78\xb4\xb7\xc0\x40\x7a\x62\x97\xee\x8b\xd1\x7e\x9d\xd5\xf4\xc4\x5e\x4d\x7b\x39\xbc\xcb\xfa\xb2\xd7\x7f\xff\xe2\x78\xbc\xdf\xb5\xbc\x26\x9c\xd4\x9f\x75\x24\x53\x7c\xe4\x84\x80\xbc\xa9\xd6\x2a\x93\xc3\x01\x8a\xb0\x92\x2b\xf5\x7b\xd9\x8f\x88\xb9\x22\xcb\x59\xf7\x70\xff\xb6\x6d\xa2\x87\x0b\x2f\xd5\x42\xe6\x12\x19\x17\x2b\x33\xc9\x0c\x6d\x7b\x53\xd5\xdc\x18\xea\x6d\x5e\x41\xa2\x0b\x63\x9b\x21\xcd\xd3\xfd\x1d\x27\x37\x4b\xe2\x1c\xcf\x21\x4c\x86\x97\x7c\x3e\xef\x65\x40\xbf\xab\xba\x57\x3e\xbe\x41\x8b\xdd\xdc\x63\x2a\xba\x72\x49\x06\x97\x7c\x02\x64\x64\xda\x4e\x35\xe9\xe8\xa6\x1c\xf2\xae\xd0\xcd\xd4\x3a\x44\x85\x21\x23\x40\xda\xab\xba\xfe\x89\x8a\x3b\x60\x98\x33\x44\x6c\x47\x6b\xe7\xf3\x6d\x24\x5f\xd2\x11\xb6\x21\xaf\x89\xb0\x9a\xa7\x86\x76\x62\x62\x93\x20\xb0\x15\x77\x86\x08\xf5\x77\x79\x76\x81\xf5\x26\x88\x2b\x6a\xad\xd1\x4b\x6a\x85\x2e\x81\x2f\x1c\x4b\xd9\xd1\x7f\x90\xf3\x52\xcb\xc2\x52\xbb\xcc\x7c\xbc\xa9\x95\x66\x6a\x7b\xdd\x31\xcc\xcd\x04\x9c\x79\x71\xeb\x4a\x2c\xa9\x4b\xce\xea\xb9\x8c\xf6\x8b\xcf\x2e\xe7\x73\x37\xe7\xd6\x0b\x8a\xf4\x1f\xa4\xb4\xc9\x59\x23\x69\x4f\x86\x95\x33\x5c\x78\x68\x9f\xa1\x3e\x1c\x08\x5a\x5c\x47\x8a\xc9\xa4\x88\x85\xdb\x32\xd5\x91\xbe\xf3\x50\x54\x1d\x21\x08\x65\xec\x7b\x89\x0e\x0e\x49\xef\xd5\x62\xa8\xf8\x3e\x1a\xba\x20\x68\xc5\xd7\x52\xa3\xd1\x6e\x1f\x18\x83\xc3\xfc\x8c\xa1\xbe\xd1\x28\x5d\x0c\x10\x35\x58\xde\x51\x56\x47\x0f\xfc\x14\xa2\xc7\xf7\x70\xc8\xbb\xe8\xd9\xc6\x72\xe0\xdf\x64\x5e\x02\x99\x88\x87\x22\x0f\xd1\x6f\x33\xab\xbf\xa4\x8f\x33\xb3\x8c\xf5\x32\xf1\x74\x63\x87\xeb\x81\x11\x5e\xb4\xfc\xa5\x81\x62\xb2\xac\xe4\x93\x6b\xab\xa1\xea\x75\x76\x2d\xc8\xfd\xd6\xbb\x40\x47\x6b\x85\xca\x50\x2f\x5a\xbe\x21\xda\x85\xb2\xb4\x6a\xa2\x70\x7a\x2f\xbb\xd7\xa2\x6a\xe2\x2f\xef\xaa\x48\x5b\x42\xac\x55\x2f\x6d\xf4\x94\x3d\x84\xbb\xdf\xdb\x9e\x78\x1c\x70\x8e\x4d\xbb\x78\x01\x49\x98\xbe\x6e\xab\xfa\xa9\xce\xa4\xe5\x26\x09\x2c\x68\xd4\xfc\x03\x6d\x9a\xd7\xbd\x4d\x88\xb1\x88\x06\x08\xa4\x2d\x02\x26\x00\x92\x5b\x73\xcd\xa2\x52\x0d\x21\xd0\xc7\x3e\xd9\xfa\x6d\x9c\xa4\xe8\xc6\x62\x4c\x53\x64\xaf\x1d\x40\xb4\xe0\x9d\xc6\x33\xe2\x51\x8c\xab\x7f\x23\xa5\x9e\xc7\x33\x91\x43\xb1\xb2\x2c\xab\xc3\xa1\x1a\xc6\xb4\xb3\xb2\xec\xe6\xf3\x6e\x00\xe1\xf8\x18\xae\x65\x30\xe7\xdc\xce\x34\xc0\xc0\xc0\x3b\x77\x10\xff\x72\xa8\x64\x77\x70\x10\x8d\x82\x06\x39\x14\xca\xa3\xa9\x46\x9f\xb3\x0b\x79\x4b\xc4\x14\xfc\x84\x12\xdf\x3b\xbf\x69\x0b\xf3\x5a\x26\x8a\xdd\x54\x7f\x19\xbf\x0d\x5a\xbf\x8e\x1a\x17\x67\x09\x2c\x8d\x47\x65\xfc\x39\x92\xd7\x77\x55\xf7\x7a\xb7\x55\xec\x49\x00\xed\x88\x3e\x06\x8c\x85\xdb\x45\x32\x40\x4b\xbd\x7b\xde\x10\xb1\x8d\x07\x3c\x65\x20\x3e\x34\x40\x7c\x81\x28\x10\x87\x5b\xae\x03\x91\x7c\xf6\x88\x1e\x4e\x38\x83\x86\xb1\xb5\x27\x00\x4b\xe2\xca\x62\x5c\xd5\xa6\x73\x1e\xaa\x6c\x9c\x63\x84\x40\x13\x72\xaa\x75\x3e\x1d\x53\x66\x50\x97\x44\x19\x75\xa2\x77\xd2\xe3\xcf\x73\x5a\x47\x88\x1b\xab\xa2\xfc\x10\x13\x62\x94\x42\x37\x2d\x7f\xda\x58\x3a\x00\xd6\x68\x0b\x83\xb1\x2d\x12\xc8\x32\x24\x5d\xa1\x84\x78\xd0\x59\x24\xc1\xdc\xf1\xce\x4c\x40\xd4\x33\x13\xf0\x09\x36\xcc\x2c\xfc\x02\xce\x02\xdb\xb6\x6f\x76\x38\x38\x97\xb0\xde\x0a\x93\x0e\x90\x62\xcc\xe3\x55\x11\xaf\x91\xcf\x16\xa7\xc7\xbc\xbc\x78\xc2\x3f\x0f\xa9\x25\x70\x4f\xce\x57\xd8\xda\x2d\x59\xd9\x6b\xb3\xe2\x6b\x4c\x13\xb6\x8c\xa1\x89\x58\xd1\xf5\xe1\x50\xa8\xff\x14\x17\x48\x0a\x86\x60\x56\xa6\x96\xfd\xc5\x93\xf6\xf3\x2c\x25\x8e\xc6\x0d\x22\x3c\x87\x1b\xeb\xd0\xcf\x78\x02\x95\x9a\x40\xa7\x27\xd0\x99\x09\x54\x08\x49\x39\x04\x43\x82\xf6\x67\x21\x25\x3f\x1c\xc0\x60\x67\x88\xd1\x95\x85\xf1\x7d\xfb\x3e\xd8\x94\x17\xbc\xbd\x7f\xf5\x81\x15\x5e\x2d\xaa\xde\x3b\x35\xe2\x70\x43\xc8\x0a\xda\x23\x90\xc5\xd9\x05\x32\x39\x6a\x3b\x50\x7b\x66\x29\xb0\x6a\x25\x75\xe5\x06\x38\xde\xd6\xd9\xef\x5e\x9f\x11\x1b\x7c\xe8\x2d\x30\xbd\x1d\x7b\x42\x5c\x74\xde\x13\x97\x16\x72\x75\xb1\x9e\x64\x17\x09\x1c\x67\x1c\x0e\x9a\xdd\x86\x27\x3c\xed\x95\x95\x3c\xe9\x35\x03\x9a\x82\x41\xaa\x2c\xf5\x16\xaa\x67\xd9\xe7\x9d\x85\x19\xda\xe7\x41\x06\xf7\x95\x02\x46\x74\xc9\xdb\xd0\x47\xdf\x65\x66\xcc\xb4\xef\xde\x7a\xa2\x68\xd0\x58\x37\xfc\xb5\xda\x11\xd7\x7f\xd0\xa7\xda\x08\xd2\x8b\x38\xea\x41\x93\x20\xa4\xc4\xae\xe8\x43\x9d\xc2\xb6\x17\xaa\x19\x35\xd3\x41\xdb\x5e\x5a\x99\xcf\xc5\xf9\xb9\x84\xbe\x72\x2b\x4c\xfd\x14\xd4\xf1\x26\xe1\x71\x0e\xe5\x1e\x33\x58\x6e\x77\x20\x36\x80\x9f\x0b\x83\x97\x23\xad\x86\xa6\x12\xba\x97\xa6\x70\xd6\x0e\x9b\x36\x08\xb7\xf7\x1a\x82\x60\xfc\x91\xd9\x6d\x5f\x5a\xb2\x18\x3a\x7b\xa0\xb1\x7d\xc2\xc1\x71\xca\xf0\x2b\x70\x98\x46\xba\xde\xe7\xee\x43\x25\x52\x1e\xbd\x20\x5c\x26\xdc\x49\x67\x1d\x78\x83\x3e\x86\x00\xd9\x23\xe5\xe0\xa1\x36\x30\xe0\x10\x97\x62\x07\x36\x27\x7b\x80\x03\x51\xb7\xf6\x6a\x98\xd1\x5c\x4f\xf8\xe1\x50\x1c\x69\x03\x6c\xf3\xae\xf0\xb7\xbf\x63\x9a\xf1\xde\x7a\x4f\xed\x81\x67\x5f\x86\xc4\x55\x4a\xac\x93\xc2\x9d\x0a\x05\x39\x48\x3e\x1e\x8f\xe8\xc3\x94\x28\xc1\xf5\xf1\x86\x68\x78\x4e\xc7\x31\xde\x1a\x54\x8f\x5f\x18\x2e\x53\x83\xdf\x80\x23\xcb\x50\x9f\xda\xab\xc2\xa5\x3c\x3f\x09\x6f\xd4\x85\x97\xc7\x95\x31\x1c\xf8\x65\x5f\x8d\x40\x37\xdd\xfd\x51\x32\xdc\xa7\x91\xfb\xe8\x3a\x88\x29\xcc\xbd\x27\x2c\xb1\x72\x29\x0c\x7f\xd2\xfd\x85\x2b\x31\x5e\xf5\x3e\x87\xcf\xe8\xb9\x77\xa6\x64\xb7\x61\x43\x14\x60\x64\xd1\x8f\xdb\xb7\xe2\x97\x6c\xc1\xe1\xf0\x8b\x3e\xfb\x15\x67\x3e\x92\x95\x21\x51\xc1\x2f\x40\x9c\x71\xb8\xa1\x93\x28\x7e\xe6\x56\xce\xa1\x4d\x7c\x4c\x87\xd9\xb9\xfc\xd9\xfc\x7f\xf4\x48\x8e\x01\xb7\x07\xb8\x78\x65\x27\x49\x4e\x99\x03\x62\x99\xd0\xdc\x39\x99\x28\x4e\x67\x70\x07\x86\x6e\x8a\x3c\x25\x8d\xf7\xd8\x65\x1a\x19\xa6\xe4\xff\xdc\xe5\x8d\xdc\x03\x8f\xb8\x11\xfb\x0b\xee\x5d\x42\x39\xf5\xfa\x71\x5e\xf7\x59\x7b\xbf\x55\xdf\x35\x0f\x21\x58\x72\x2c\x52\xac\x63\x89\xd1\xcc\x88\xe3\x78\x48\x0e\x4d\x56\x3a\xe9\x09\xee\x57\xc4\x39\x8c\xa7\xb6\x80\xc9\xa9\x1b\xe4\xb5\x21\x2b\xb6\xce\x32\x79\x59\x92\x9d\x83\x83\x02\x35\x57\xd2\x26\x53\x62\xa6\x94\xcb\x91\xe9\x3d\xea\xe0\x47\x73\x9c\xcf\x8b\xa6\x3f\xa3\x10\xac\x23\x93\xc3\x66\x72\x48\xc6\xa2\x92\x13\x38\x50\x5e\x29\xda\x6b\xe0\x64\x63\xdd\xdc\x48\x5a\x59\xf4\xd0\xe4\x71\x14\xff\x5c\xb7\xfd\x03\x99\xb8\xe3\x44\x2a\x9c\x50\x92\xd5\x10\x75\xba\xe5\xb3\xcb\x89\x57\x73\x40\xb2\xe2\x1e\x37\xa8\x58\x37\x2b\xd5\xab\x93\xa7\x6d\x52\x8a\x9f\x9b\x84\xbd\x0f\xc8\xb9\x9b\x76\xfb\x50\xa0\xa0\x70\xec\xc5\x13\xf6\xb9\x08\xbd\xbb\x53\x36\xa3\x00\x0c\x93\xd9\x73\xb5\x8f\x66\x6f\x79\x14\xbf\x9a\xd0\xee\xb1\xb8\xb6\xc5\x1a\x3d\x9e\x80\x8b\x89\xf1\xf1\x33\x1a\x81\xaf\x29\x7b\xd7\x39\xc0\x6b\x35\x3c\x91\x61\x9d\x47\x27\xff\x9a\x1c\xfa\xae\xf1\xe8\x8d\x69\x10\x44\x7b\x9c\xd8\x0c\x0f\x04\xc9\xde\x93\xbd\x3c\xce\x44\xed\xe5\xf0\x58\x76\x36\x03\xea\x65\x22\xc7\x34\x23\xc1\xc7\x79\xe5\x35\x7c\x9e\x53\x23\xd8\x2f\x73\x2a\xf1\xcc\x47\x5a\x5d\x93\xff\x48\xeb\xba\xe1\xa3\xd7\xa9\x15\xc7\x03\xbb\x67\xdf\xb1\x2b\xeb\x19\x55\xc2\x55\xf5\x2d\x2e\x44\x6a\x0c\xf6\x06\xd2\xb3\x4b\xcc\xd4\x49\x80\x52\xe1\x81\x77\x5c\xa8\x32\x32\xde\x71\x81\x76\x19\x4a\xde\x70\x87\x73\xba\xb1\xde\x11\x78\x87\x05\x72\x55\xed\xa1\x54\x73\x48\x10\xe6\xf3\xb3\x91\x4d\x43\x7b\xd5\xaf\x31\xb7\x3a\x67\x03\xdb\x05\x04\x24\xac\xd6\x3a\x06\x29\x1d\xbb\xc5\x02\x49\x58\x88\x76\xd6\x0b\x75\x81\xf0\xc4\x51\xfc\x08\xfd\xad\x6b\x9f\xf9\x63\x61\x82\x32\xf4\xe7\x5d\x49\x8b\xf4\x05\x6e\xca\x6a\x3e\xaf\xec\xef\x2b\x5a\xb8\xbf\x75\x74\x14\xde\x95\xcd\x55\xb3\x00\xc3\x3d\xcc\xb4\x9b\xcf\x3b\xf8\x69\xff\x3f\x2b\xcb\xdd\x7c\x5e\x30\xa0\xb3\xd2\x4e\x6b\x68\x4f\xcf\x2e\x91\xad\xea\xb0\x29\x4d\xf0\x9b\x06\xf4\xe1\x10\xc7\x81\x99\xad\x99\xcf\x2f\x5c\x13\x5b\xcf\xfa\xd4\x63\x3b\xa4\x3a\xbb\x8c\x78\xe5\x01\x65\xe3\xe5\xb8\xca\x72\xa3\x55\x14\x0a\x2d\x98\x65\x97\x47\x54\x75\x67\x56\x6f\x5e\xf7\x2e\xfa\xe4\xb7\x26\x7b\x3f\xf1\x6a\xbb\x25\x3c\x1f\xc9\x5c\x07\x5e\x81\xf5\x82\xd6\xb8\x5e\x6c\x1a\x4a\x98\x78\x59\x3b\x99\x04\x49\xd9\xb4\x1b\xe3\x17\x6f\x27\x8d\xf6\x32\x44\x70\x20\x49\x26\x85\x07\x24\x9b\xd6\x16\xf0\x8d\x73\xa4\x18\xb4\x85\xeb\x80\x02\xff\x20\xba\xa0\xbf\xcf\xdb\xbd\xdd\xa5\x12\xba\xea\xe7\xed\xd9\xce\xf8\x38\xd4\xaf\xb7\xf2\x25\xbd\xfa\x17\xae\x0f\x4d\xc5\x42\x89\x87\x5c\xe5\xd4\x8c\x46\x3e\x19\x36\x54\xe4\x84\x84\x5e\xeb\x53\xc4\xb0\x93\xb1\x33\xab\x2b\xbf\x04\xc5\x5d\x56\xfd\x12\x2e\x2d\xdf\x60\x99\x01\x5a\xb4\xc0\x41\xc5\x44\xfc\xcd\x28\xdb\xdc\x11\xf1\x52\x47\x65\x0c\xcd\xd2\x9e\x98\x51\xcd\xe7\x7d\xe6\x59\x1f\x15\x72\x58\x40\x8e\xab\x4e\x07\x95\xb6\x8f\x54\xd9\xfe\x5a\x08\xf6\x66\x0e\x47\x6b\x78\x03\x7f\x39\x7a\x39\xf4\x41\x83\xc6\x20\x73\xb0\xc7\x0d\x6e\x43\x28\x9f\xcf\x53\x91\x17\xa2\x0c\x97\xac\x47\x1b\x6e\x90\x05\x11\xa4\x7e\xc9\x41\xb4\xd4\xa2\xd4\x00\x9e\x04\x9f\x8d\xd1\x93\x81\x55\x1c\x93\x05\x87\x57\xe2\xda\x8c\xd1\xb2\x3e\xe3\x3f\x4a\x8b\x7a\xcf\x3d\x67\x7f\x96\x01\xcc\x55\x2a\x2d\x2c\x07\xe0\x70\x56\xe6\x8e\xd3\x30\xd8\x32\x8d\xc7\xa1\x68\xb0\x3b\x5d\x6d\x4f\x9d\x39\xaa\xcc\xfc\x38\x14\xba\xbf\x9a\xe0\xec\x65\x8e\xdc\x11\xc4\xc8\x29\xc9\xc6\x54\x6b\x03\x38\x18\xe2\xd1\xb0\xde\xed\xc8\x5c\x86\xec\x89\x61\xe7\x03\x6d\x8e\x5f\xb8\x43\xc7\x7c\xe0\x79\x28\xc1\x3e\x8e\xe9\xe9\x65\xbc\x09\x63\x21\x14\xd7\x43\x72\x5c\xcf\xaf\x51\x0f\xc5\x3b\x34\xc8\x59\xfc\x0a\xe2\x7b\x81\xa2\x1d\x3e\x32\xcd\x93\x8d\xb9\xc9\xc6\x8e\x36\x1e\x64\x9b\xe4\x2d\x11\xb0\x0a\xaf\xa9\xda\xc7\x21\xfa\x99\x83\x57\xc4\x6a\xaa\x80\x22\x41\xe8\x9e\x0e\x58\x7a\x59\x13\x26\xe8\x0d\x55\xcc\x01\x32\x7e\xb1\x03\x9f\x99\xa3\x9c\x17\xa8\x60\xb8\x80\xc8\x9b\x10\xa7\xc2\x84\x7e\x04\xe2\x51\x28\xe2\x41\x03\xa8\x77\xea\x19\x0b\xe8\x4b\x24\xe1\xab\x08\x8b\xd8\x73\x45\x07\x25\x89\x1e\xcf\xac\x33\x94\x99\xaa\x7b\xdd\xb7\x2d\x23\x1a\x6d\xb8\x99\x9c\xcf\x20\x53\xf4\xf4\x7a\x31\xa6\x27\x5e\xaa\xa6\x60\xdc\x82\xd6\x08\x61\x63\xb6\x1b\x67\xa6\xb8\xf7\x9b\xc8\xbf\xb6\x4c\x7d\xfd\x4b\x99\xfa\x11\xb6\x3d\x0a\x57\x8c\x1c\x3c\xd5\x5d\xa3\x13\x23\xfa\x38\x92\xa8\xc1\x96\xb0\x9a\xb2\x5b\xf7\x56\x37\xee\x46\xa5\x82\x64\x26\x36\x54\x38\x1b\x3f\x9c\x9d\x81\xf5\xd1\x1b\x1c\x3d\x27\x3d\xfc\x0a\xe3\x7e\x6a\x81\x8d\x17\x10\x3b\x83\xe7\x18\x73\x97\xd0\x6c\x9c\x27\x04\x4a\x31\xe2\xdf\x33\xce\xd3\x25\x3a\x4e\x73\x00\x35\x09\x76\x00\xb2\xc2\xc9\x23\xec\x8e\xd9\xbb\xd4\xbb\x72\xb8\x7a\x4e\xbd\x3d\x1c\x0e\x89\xcd\xb9\xcf\x47\x59\xc0\x7a\xdc\xda\x91\x6b\xc0\xb8\xf6\x4c\x8e\x5c\x07\x49\x45\x88\xdc\x4e\x79\xf7\x79\x84\x39\x38\xce\x8f\xec\x38\xc7\x97\xff\xed\xee\x81\xac\x07\x50\x7e\xfa\xd9\xe3\xe8\x76\xed\x31\x73\xf8\x35\xb2\xc1\x24\x8c\x26\x1f\xda\x8c\x27\x9f\x5d\x1a\x9f\xa1\xb1\xf3\x77\x19\xb9\xb1\xe5\xd8\xae\x51\xc5\x7c\xca\x00\x67\x50\xda\xa7\xfc\x11\x9e\x55\xff\xec\x12\x34\x5b\x76\xb6\x02\xa1\x09\x29\xa1\x7e\xf7\xa6\x12\xae\xec\x44\x1c\x13\x3e\xc0\x40\x8f\x9c\x85\x71\xc3\xe0\x11\x7e\x13\x0b\x64\xaa\xb6\x09\x6b\xfc\x88\x12\x37\x27\x80\xe6\x8e\x77\xca\x9c\x5a\xee\xe0\x3c\x70\x66\xc7\x15\xe8\x51\x6a\xbf\x74\x8d\xa9\x3a\xbe\x5c\xad\x43\xcf\xcf\x3c\xaa\x8b\x56\x6b\x1a\x75\x11\x18\x8d\xbf\x9f\x5d\x3e\xe1\x5f\x94\x17\x4f\xf8\x67\x9f\xa1\x63\x32\x3d\x78\xcd\x44\x46\x11\x4c\x7d\x9a\x59\xf6\x39\xf5\x86\x91\x41\xf7\x31\xb6\xc6\x2c\x54\x98\x24\x7e\x75\xa0\x74\x3e\x2b\x93\x14\x59\x60\x1e\x9f\xcf\xb5\x02\xdb\x9c\xbb\x60\xb5\x17\x4f\x84\xb7\xfd\x08\xeb\x49\xca\x4b\xb2\x12\xeb\x11\x52\xc7\xc7\xfd\xd1\x78\x46\x2b\xc3\x8f\xf9\xa8\x71\x64\x3c\x9a\x93\xbb\xfb\xc8\x86\x48\x39\x74\xff\x0c\x88\x13\xe4\x04\xad\xe9\x69\xf2\x43\x16\xbf\x1e\x33\x6a\xfc\xe9\x69\x83\x26\x9c\x77\xca\x77\x0f\x73\xc3\x9a\xaf\xed\x1f\x39\x93\xca\x80\x0c\x72\xe1\x09\x07\x4d\x32\x1c\x74\xc8\x2a\x93\x1e\xab\x4c\x72\xac\x32\x19\x60\x95\x5d\xcd\x7e\xc7\x2d\x23\x6e\x8b\x42\x82\xa3\x1f\x0f\xd2\x60\x3a\x94\x4e\xcc\x8d\x24\x2d\xbc\xf2\x28\xd6\x7a\xc5\xd6\x86\xbb\x56\x7f\xd1\x1a\xc9\x1e\x7f\x1d\x9e\x3d\xcb\x57\x8f\x5a\x10\x3d\x77\x7d\x17\xf3\xd4\xce\x3e\x16\xe8\x16\x34\xe7\xd9\x8f\xe5\xba\x0e\x67\x9d\x44\x09\xd9\x4a\x90\x11\x39\xec\x4e\x6b\x94\xf3\x32\xc8\x0c\x28\x16\xbb\xed\x2d\xaf\x6a\xf2\xa2\xe5\x36\xb4\xbf\x88\x11\x3b\xfa\xae\xec\xf7\x61\x7e\xc9\xa8\x32\x8a\x8b\x56\xc9\x4f\x6f\x45\xd6\xd2\x5b\xd9\xc3\x48\x8b\xa1\x2f\x26\x71\x9d\x8a\xb0\xae\xee\x5e\x5d\x2e\x02\x7c\x13\xe1\x2c\x9d\xd8\x23\x38\x82\xea\xdc\x33\x67\x3c\x72\xf3\xf7\x1b\x67\x43\x2a\x87\xb1\x2c\xe8\xf0\x39\xb9\x81\xb1\x5a\x66\x13\xa3\x86\xdf\xf9\x9c\x87\x30\xa8\x66\x25\x57\x64\x5d\x0e\x54\xf1\x2f\x79\x3c\x94\x4f\x75\x16\x93\xd8\x80\xc2\x30\x84\xdb\x81\xcf\x4c\xc0\xcf\xf8\xd7\x36\xeb\x76\x60\xab\xd4\xe9\xd6\xae\xd4\xf1\xac\x0b\xe1\x2a\xa2\x2f\xd5\x83\x4d\xf0\x40\x16\x34\x44\x13\xcc\x30\x41\x3e\x02\x5f\x42\xf5\xcc\x9b\xf2\xd2\xc4\xea\x6e\x53\x19\xd4\x2a\x3c\x1d\x8d\x72\x3a\xfc\x08\x59\xcd\x10\x3a\xf5\x7f\x12\x6d\xc8\x07\xcf\xc8\x75\xde\x27\x2c\x0e\x5f\xcc\x86\x23\x5a\x5a\x1d\x1f\xb9\xe4\xa7\xcf\x5a\x1f\x8f\x0a\x8c\x5e\xfc\xe8\xed\x4d\x97\x74\x76\x7d\xed\x13\x9b\xf5\xc2\x27\x5f\x34\xf4\xf6\xce\x57\xe0\x4c\x1b\xd4\xa9\x89\xed\xba\xdb\xdc\x91\x7a\xd7\x90\xda\x4c\x29\x9d\x90\x49\x5f\x9d\x7d\x4c\x5b\xf6\xac\xbd\xbf\xa7\xbd\xf7\x35\xe5\x64\x23\x9a\x07\x93\x0d\x30\x20\x86\x2f\x85\x0e\x9a\xd7\x95\xec\x83\x4b\x32\xde\x8c\xe1\x13\x28\xa2\xea\x33\x04\xc1\xc5\x25\xca\x2f\x14\xab\x82\x4c\xe2\x7e\xc5\x55\x5d\x18\xcc\xdc\x53\x35\xa2\x68\xf9\x52\x8d\x58\xec\x19\xf9\x59\x2c\x83\xc1\x7d\xea\xff\x27\xdc\xfb\xa7\x68\xe6\xe8\x09\xfb\xfc\xf7\x4f\xa2\x0c\x5d\x90\xb3\x4f\xd1\x8d\xc8\xb7\x66\x09\x4f\xf2\xa1\x1e\xd4\xdf\x42\x36\xdc\x9b\xac\xe8\xf9\xf9\x7a\x42\xd5\x5c\xcf\xcf\xa5\x9a\x2f\x3f\x3f\x97\x12\xb9\xbc\xc4\x26\x07\x03\xc1\x75\xcb\xc8\xd2\x09\x93\x44\x4a\x89\xa4\x4c\xd1\xcf\x28\x81\x62\xf4\x53\xf7\x73\xed\xb0\x0f\x18\x89\x2c\xd6\x47\xd1\x8f\x59\x9c\x0f\x33\xb4\x79\xbc\x75\x9a\x11\x8d\xb3\xc1\x4f\x8b\x31\xee\x91\x46\x61\x17\x49\xd9\x11\x51\x00\xd1\xcd\xb1\x19\x51\xa8\xa3\x3f\xdb\xe0\xba\x91\xf2\x08\x71\xae\x7b\x35\x0d\x2b\x4c\x24\x93\xd2\x6c\x16\xf0\x39\xde\xae\x20\xbc\x64\x7e\x6d\x4a\x30\xfc\x05\x50\xca\x57\x67\xeb\x5c\xd9\xc6\xaa\xeb\xe8\xad\xf1\x2d\x84\x43\x84\xa3\x66\xfd\x83\x69\x53\x41\x6b\x6e\xe0\x59\xbf\xc4\x03\x26\x8b\x24\x4a\xd1\x9c\x47\xc5\x18\xa7\x2e\x6e\xc0\x08\x3a\x3b\x40\x5d\xb2\xc2\x68\xfc\xb8\xfc\x40\x9b\x46\x1f\xc2\xa0\x40\x44\x8f\x0a\xe8\x17\x7e\x7a\x38\x7d\xa0\xf5\xb9\x77\x55\x97\x99\x6a\x98\x23\xe2\xcc\x85\x45\x86\x6b\x8d\x2e\xda\xf4\x75\x50\xe0\x2c\x28\xd0\xa2\xfa\x55\x48\xe0\x7e\xe8\x41\x56\x6b\x49\x9d\xeb\x41\x94\x9b\x22\x37\x6e\xfc\xa6\xbf\xee\xb4\x05\xa4\x1c\xcf\x17\x2d\xf1\x68\x7b\x31\x88\x34\xd2\xb5\xea\xd5\xc3\xb0\x2f\x40\x30\x73\xad\x48\xbf\x7b\x82\x23\x7c\x35\x18\xe5\xa8\x29\xbb\xa1\xfc\x9e\xd4\xb1\x7c\x9e\x9d\x84\x23\xbe\xc3\xd3\x09\xe8\xb3\x34\xe7\x6e\xdf\xbf\x42\xe2\xf8\xe7\x1e\xea\x84\xaf\xeb\xd8\xb0\x13\xdf\xaa\x32\x8f\xbb\xa9\x50\xfd\x28\x66\x28\xc8\xfa\xfc\x88\xb2\x63\x90\x30\x16\x7c\xa1\xa2\xfe\x57\x74\x6d\x93\x06\xf5\xdf\x4c\x72\xb7\x90\xe2\x0c\xa9\xa9\x81\xd7\x22\x29\xe5\xf0\x79\x4e\xa3\x08\x33\x55\x5d\x7a\x77\x97\x4b\x56\x1f\x1c\x4c\x7d\x7b\x89\x54\x27\xe0\xaa\x60\xb0\x35\xae\x4a\xb2\x6a\xd7\x93\x6a\x75\xb1\x2e\xcb\xb2\x5a\x5d\xae\xe7\x73\x93\xad\x83\xaf\xda\xb5\x94\xb9\x02\x34\xc9\xf4\x34\x11\x13\xfd\xf1\x7d\xfe\xfc\x14\x13\x5c\xf2\x34\x43\x0c\xf7\x12\x73\x0c\x99\x99\x72\x82\x43\x1b\xad\x95\x21\x5c\x95\x17\xb8\x2b\x5b\xbb\xb0\xea\xf3\xee\x49\x65\x17\xd6\x94\xed\xaa\x5a\x4f\xe8\xaa\x59\x97\x2b\xb2\x6a\xd6\x98\xad\x9a\xf5\xda\x97\x1b\xcd\x05\xc2\xeb\x23\x24\xb3\x95\x72\x60\xa5\xe9\x05\x91\x5e\x4c\x79\x6a\x07\x26\xa3\x3e\x41\xeb\x53\xfb\xe4\x08\x39\xa5\xb8\xd1\xd5\x85\xf1\x10\x81\x55\x3f\x3e\x1e\xce\xfc\x97\x21\x40\xee\x12\xf3\x55\x00\xc6\x0e\x67\x44\x5a\x07\xa9\x07\x26\x32\x47\x6d\xf6\xa7\x4c\x16\xc9\x9a\xd6\xe6\xae\xe9\x53\x36\x77\xf7\x0e\x12\xb3\x1c\xdb\x18\x02\x40\xaf\xd6\x68\x69\xc1\x75\x10\x2a\x70\xff\xd2\x7b\x32\x22\x34\xce\xa3\xeb\x65\x9d\x50\x16\xec\x79\x23\xcb\x3c\x21\xdc\xbb\x68\x45\x19\x5e\xf8\x3a\xc3\x85\x53\x74\xf6\x78\x08\x9f\x56\x7a\x88\x7d\x18\xa4\xb7\x61\xf5\xf3\xb1\xed\x1e\x66\x2c\x1e\x85\x0e\x5c\x66\x9e\xc2\xc5\xfc\xa7\x81\xa2\x42\x7d\x0a\xa9\xd3\xed\x68\x75\x94\xcc\x95\x13\x8f\xca\x90\xe7\xbe\x9f\x70\x67\x45\x48\x0c\x40\x0a\x96\x32\xca\xc2\x69\x52\x5a\x8d\x4c\x26\xed\x00\x73\xab\xd2\x0e\x73\x84\x46\x35\xc8\x33\xbd\xf4\xa3\x96\x05\x68\x8d\xef\xa9\xf8\xa9\xea\xbe\x87\xaa\xc1\x24\x2a\x6f\xdd\x27\x1a\xfd\x2d\xd4\x45\x28\x1c\x47\x84\xbc\xc2\xaa\x47\x89\x69\x79\xf1\x84\xfa\xfb\x8d\xba\x00\x4d\x9d\xa2\x69\x45\xd7\xeb\xf9\xbc\x30\x7f\x0d\x52\x6d\xfd\xda\x06\x54\x0c\xe0\x94\x4c\xd2\x31\xfc\xa2\x1d\x8f\x4b\xf8\x8f\x81\x36\x76\xaf\x14\xbe\x8b\x5c\xa1\x9d\x00\x24\x2b\xb2\x56\x02\x7d\x59\x96\x05\x99\x52\x5f\xe5\x2a\x5d\xd3\xd5\x20\x30\xc8\x7a\xe9\x0f\xe1\x8a\xac\x91\xbb\x39\x33\x63\xc9\xeb\x6b\x5d\xbb\x85\x38\x5d\xc3\x59\xe8\x13\x56\x97\x04\xe4\x18\xd5\x7f\x00\xb4\x60\x6a\x55\x3a\xa5\xa8\xff\xe5\x47\x5a\x84\x62\xdb\x4f\x99\xc3\xe1\x30\x3a\x60\xf4\x1a\x38\xe5\xa3\x15\xf7\x1c\xc5\x37\x35\xfd\xa2\xdb\x22\x92\xf7\x06\xb4\x0d\xae\x8b\x9e\x1a\x42\x13\x4e\xbe\x63\x0b\x75\xb9\xbf\xdd\x71\xa6\xa8\xb8\x69\x55\xcc\xcc\x90\x3a\x2d\x27\x9e\x01\xb9\x63\xbb\xed\x2b\xbe\xbd\xab\x58\xa4\x71\x80\xbc\xc3\x23\xef\x63\x5d\xfd\x75\xd5\x34\x7d\xad\x45\x01\xc7\x36\xcc\x1a\x36\x60\x3b\x39\x3f\x17\x48\x31\x9e\x2b\xb1\x86\x02\x0e\x70\xe3\xb0\x1f\x3b\xe2\x52\x6f\x9f\x5d\xda\xba\x23\x17\xb2\x20\x08\x8d\x74\x14\x1a\x61\x78\x0c\x78\xbe\x70\x4e\xd8\x72\x00\x80\x70\xae\xbd\xab\x76\xee\x38\xba\x64\xf5\xea\xb4\x95\x5f\x08\xdf\x29\xca\x08\xfc\x17\x7d\xf5\xda\xa2\xa6\xdd\xa6\x65\x8c\x6c\x6c\xd2\xed\xe4\x6e\x35\x07\x25\xb9\x5e\x65\x02\x9a\x38\xeb\x6a\xa4\x8a\x8c\x1a\x9e\xd6\xf9\xd0\x16\xda\xc2\x76\x6b\x6c\x22\x9e\x6e\xce\xcf\xc1\x60\x60\x42\x9b\x54\x37\x28\x52\x59\xf0\x27\xa2\x9f\xa8\x43\x2c\xba\x3b\x7a\x23\x0a\x34\x31\xde\x16\xcc\x9b\x1d\x68\x79\xaa\xfe\xab\x40\x0b\xab\x98\x2a\x14\xb3\x4c\x17\x8c\xfc\x2c\x0a\xf4\xe4\xac\x5d\xd4\x2d\x23\x4f\xfc\x23\x1b\xca\xd1\x2e\x40\x2b\x34\xa9\xa6\x94\x75\xa2\x62\x1b\xd2\xde\x4c\xb7\xf3\x79\x65\xa6\xfb\x39\xd8\x52\xf5\x9c\x2a\x84\x2b\xb7\x0a\x24\x7d\xc5\x65\x5d\xf6\x01\x88\x6d\x2e\x77\x52\x86\x4a\x39\x6f\x06\xf7\x3a\x4b\x92\x1e\x41\x73\xf3\xe3\xe8\x6c\x4c\xd5\x80\xde\x21\x2f\xff\xf7\x95\x0d\x39\x59\x24\xa3\x9e\x51\x37\x4e\x34\x18\xc9\x49\xc6\x44\xcf\x89\xc7\x74\x2d\x3f\xad\x84\x49\x2d\x72\x8f\xc1\x64\x65\x10\x0d\x65\xd5\x71\x7a\xc0\x5a\x5b\xf6\xb2\xe3\xd4\xda\x8e\x17\x0a\xe4\x63\x4b\x06\x3a\xde\xb9\x4e\xfd\x32\xb5\x7b\x9b\x49\x81\x95\x8d\xac\x04\x5b\x72\xa2\x61\xc9\x35\x1c\xa9\x8d\x3e\x49\xd2\x50\x65\xf5\x8b\x04\xf7\xd2\x55\x65\xd3\x80\x99\x6c\x5d\x29\x7e\x0d\x01\x2a\xa7\x0d\x2a\x86\xd5\x1c\x63\x40\xec\x37\xd7\x20\xcd\x4c\xc6\x03\x38\x33\x06\x91\xd7\x94\x51\x43\x2a\x75\xd9\x5f\x53\x62\xd4\xdb\x9f\xf6\x32\xaa\x6c\x40\xec\x05\xb1\xf7\xc5\xda\x38\x0e\x69\xa4\x4d\xa8\x8d\x69\xc9\x02\x11\x25\x56\xa6\x70\x45\x63\xd8\x98\xba\x85\x2b\x09\x3d\x73\x49\xe0\x2e\x55\x5a\x34\xe5\xc5\x93\xe6\x73\x5b\xe9\xe3\x49\x63\x85\xf8\x5d\xd9\x29\xc9\x7d\x53\x92\xd5\x4e\x97\x36\xa4\xf5\xec\xac\x2c\x77\x36\x8c\xa9\x5d\xed\xd6\x87\x03\x5d\xed\xd6\xf8\xce\xda\x72\x4d\x6a\x58\xb7\xde\xfa\xaa\x06\xf3\x11\x84\x8e\x99\x44\xb1\xbe\xa4\x91\xf3\x5c\x4c\xb8\xc5\x1d\xde\xa0\xc9\x5b\x4e\xaa\x77\x3a\x89\xac\x4f\xff\x1b\x7f\xe1\x59\x54\xf5\x05\x2e\xee\x4c\x79\xb1\x1d\x42\x47\x7c\x74\xef\x46\xa2\x23\xc2\x91\xad\x1d\x2c\x1e\xd7\xca\x1c\xbf\xc1\xa8\x36\xa7\xad\x58\xed\xd6\xe5\x46\xea\x10\x33\xcb\x9f\x6e\xdc\xc1\x92\x47\x64\x7b\x52\x9e\x5d\x1e\x61\x12\x5c\x89\x9e\xf1\x98\x05\x48\x21\x4b\xe6\x73\x27\xd2\xc9\x3c\xa9\x2b\x5d\x85\x33\x57\xe8\x31\x77\xec\x27\xa3\xb4\x03\x04\xe2\x11\x33\xaf\xb9\xb2\x57\x7c\x3d\x61\x27\xce\x9b\xf9\x79\xcb\x01\xce\xf6\x14\x66\xea\xde\xd5\xc4\x25\x1f\x71\x79\xc4\x2f\x4f\x94\x5f\xec\xef\x81\xd3\x54\x33\xd5\xec\xcf\x73\x5b\x4d\x3c\xd0\x6b\x83\x56\xe5\x42\xc6\x36\x0e\x4b\x6d\x56\x5a\x4f\x6a\x58\x4d\xec\x8b\x11\xf6\xce\xbc\xab\x3f\xba\x2b\x47\x94\x67\xc0\x09\xed\xe6\xf3\xa2\xea\x5d\xf1\xbe\x88\x81\xd1\x86\x0c\xbb\x1b\x8c\x6b\x48\xac\xe6\xb7\x01\xc5\x28\x2d\xc9\xaa\x2d\xbb\x15\x5b\xaf\xf5\x16\xee\x6c\x3e\x80\xb3\xb2\xac\x56\xed\xfa\x70\xb0\x8e\x24\x5f\xfd\x7d\x57\x35\x05\x5f\xb5\x6b\x4c\xd1\xe1\x20\x9c\x5e\xd7\x1d\x92\x5e\x71\xa6\x37\x9f\x7f\xb2\x8f\xb9\x4e\xb9\xfc\xc4\x0a\x83\xf2\x8b\x37\x41\xfe\xe2\x7b\x9d\xd5\x6c\x2c\xbd\x22\x64\x71\x89\x93\x6f\x1a\x05\xd7\x58\x7c\x05\x39\xd1\x35\x12\x49\xb2\x70\x04\x2e\xc4\xa3\x72\x63\x32\xfa\x47\x0f\x6b\x4c\x16\x41\xb8\xc6\x16\x7e\x06\xef\x77\x89\x85\x0a\x34\x44\x2f\x5a\x0e\xf5\x01\x22\xd4\x57\x0f\x3f\x5e\xda\x7b\x5f\xda\x35\x9b\x0f\x3d\xca\x6e\x9e\x64\x36\x0f\x6b\x68\x40\xde\x7f\x57\x7a\x83\xb5\xfc\xde\x38\x2f\x6b\xf5\x51\xa8\x73\x09\xbc\xd8\x13\x8e\x85\xfc\x2c\x78\xb5\x11\xaa\xc7\xba\xb6\x7c\x7c\x17\x54\x2e\xd1\x9e\x0b\x04\x33\x24\xf1\x3b\xc8\x32\x91\x56\xd7\xf3\x59\xa7\x67\x6e\x65\xb3\xd2\x17\x8b\xbd\xab\xba\xd7\xf6\xb9\xe9\x5f\xf3\x04\xe0\x13\xad\xe4\xdc\x81\xaf\x9e\xfb\x37\xe9\x77\x9a\x17\xd7\xf3\x09\x55\x2a\xd6\x45\x29\x5a\xf1\xe1\x40\x24\x76\x5d\x45\x4a\x1c\x0f\x28\x70\x6c\x77\x11\xe4\xac\x75\x53\xd6\x63\xbe\xde\x92\x0d\xbd\xa1\xa4\x2e\x18\x42\x19\xa0\x82\xc7\x56\x20\x20\x85\x8b\x7e\xe9\x26\x0e\xbe\x28\x47\x80\x02\x86\x84\xa0\xf6\x82\x92\xbe\x7c\x35\x08\x6b\xe8\xbc\x25\xe2\x1b\xc5\x1c\x29\x6a\x57\xe8\xb0\x60\x6d\x24\x47\x93\x4e\x41\x51\x3d\x31\x90\xec\xef\xda\x7c\x5e\x98\x7e\x32\x3b\xaa\x3b\xd3\x29\x97\x71\xb0\xa3\x08\xe1\xea\x4a\x67\xd0\xac\x94\x4c\x9a\xcd\xba\xec\x6a\xeb\x98\xaf\x82\x6c\xc7\xb6\x76\x21\xe6\x08\x2d\xa1\x1b\x90\xdf\xe1\x36\x6f\xbd\xce\xdb\x7c\x68\x11\x32\xdd\x2d\x29\xf1\xf1\x46\x66\x4b\x43\x20\xc2\xaa\x90\xf5\x5c\x1a\x03\x1f\x3d\x05\x7c\xf4\x97\x80\x8f\x5d\xe9\x0c\xa8\x2c\x28\xc9\x6c\xab\xa0\xbf\xd4\x15\xdb\x43\x9f\x6b\xbb\xba\x17\x2d\x27\xf4\x96\xa9\x99\x12\xcc\x30\xc7\xaa\x13\xf4\x6b\xe1\x4f\x0d\xfc\xfd\xc1\x48\xd4\xcf\x1f\xed\x58\x4c\xed\xd7\x43\x67\x02\x85\x07\xe7\xbf\x66\x6b\x00\x1e\xae\xc4\x49\xc1\xf0\x9e\xd6\x9d\x26\xe2\x9e\xdd\x1c\x3b\xb3\x57\x03\xf8\x1b\x03\x75\x99\x83\xc3\x53\xa6\x2b\x84\xba\xbe\x7a\x87\xc1\xd6\x73\xef\x82\xd6\xf6\x3c\xe0\x93\x9a\x85\xb7\x41\x4a\x35\x35\x58\x42\x78\x80\xcb\xb6\x85\x85\x3e\x39\x3a\xa7\x91\xbe\x78\x9e\x16\x54\x3b\x25\x15\xfd\x2a\x03\x7b\x5a\x2f\xb5\xb9\xe9\x61\x4b\x96\x81\xa7\xaf\x94\x08\xe5\xce\x6e\x16\xeb\x8e\x62\x02\x3b\x05\x13\xd8\x2f\xc3\x04\xeb\x44\x7b\x7d\x4b\x18\xe1\x95\x20\x6e\xb3\x82\xc9\x02\xe4\xc7\x1a\x44\x79\x28\x3d\x34\x85\xa6\x43\xcc\x81\x92\x43\xe1\x1f\xe7\xe8\xcb\x5c\xcc\x88\x4e\x8b\xcc\x32\xd9\x8f\x99\x4e\x72\x5c\x0d\x93\x91\xc9\x31\x32\x52\x61\x81\x3b\x84\xe9\xaa\x5d\x97\x9d\x37\x42\xe3\x91\x4f\x8c\x1b\xa6\x92\x7a\xa3\x0a\xaf\xa6\x5c\xaf\x39\xc3\x7a\x83\xa2\x12\xb4\x3e\x67\x05\xf0\x12\x28\xaa\x6d\x44\x75\x51\xe6\x2a\x4c\x1a\x1e\x97\xbe\x0f\x0b\x63\xe7\xf6\xb2\xc5\xd4\xec\x63\xc8\x49\xa0\x49\xe5\x0c\x1f\x6c\x55\xad\xa5\x94\xf8\xae\xea\xec\xca\x9e\x36\x1f\xaa\x07\xcf\x4e\x84\x9e\xb1\x8a\x9f\xf7\x6f\x1c\xb7\x34\x9f\xcf\x2a\xf8\x08\x92\xd5\x2c\x88\xe9\x08\x7a\x1d\x64\x6f\xc2\x7e\x87\x47\xb7\x1e\x09\x03\x23\x1f\x0e\x7c\x3e\x37\x25\xf3\x3a\x0d\x71\xb7\xce\x78\xf8\x97\x03\x43\x0f\x2e\xa9\x98\xd1\xda\x2c\xc8\x75\x79\x38\xcc\x68\x9d\x3c\x43\xbd\x71\x12\xa2\xf5\x98\xf1\x3e\xab\x58\xfd\x99\x80\x9a\xc8\x99\x91\xdd\xdb\xfe\x14\x46\x6e\x9f\x13\xc6\x3f\x2b\x20\xb6\x2e\x1c\xce\x6f\x23\xd2\x2b\x1c\xe1\x38\x7f\xab\xad\x0c\x90\x56\x57\x44\xce\x0f\x09\x65\xd9\xe0\xf5\x2c\x02\xa8\x58\x69\x42\xa2\xa5\xba\xc5\xa6\xba\x27\x26\x82\x71\x7d\x38\x88\x15\x59\x2b\x3a\x35\xc0\xe4\xbb\x33\xed\x6a\x82\xf5\x8a\x67\x17\x1c\x53\x5d\xe4\x77\x0c\x3a\x5c\x09\x79\xa1\x83\xb4\x3e\x91\xf6\x1e\x4b\x86\x77\xc5\x1e\x6d\x48\x6d\xae\x2c\xf5\xc0\xb7\x41\xcd\x3c\xf3\x35\x92\x08\xb3\xfe\x1a\xa3\x6b\xc5\xbb\x8f\x87\x15\x08\xde\x40\xfa\xa4\x58\xc5\xf1\xc9\x5e\x48\x88\x1f\x79\x63\xc9\x94\xcf\x52\xef\x89\x34\x75\x44\xba\x2a\x2f\x9e\x54\x9f\x53\xe7\xf2\x63\x89\x74\x57\xd2\x55\xb5\xc6\x7b\xd5\xd5\xb2\xc1\x86\x3a\xd7\xcb\x9d\x2d\x0d\xe8\xc4\x35\xbf\x29\x91\x54\xc5\x70\x87\x26\x7c\x61\x3f\x2c\xfd\x9f\x87\xc3\x6a\x8d\xfd\x4f\x2d\xe2\x37\x08\xef\xe6\xf3\xf4\xe9\x62\xb1\xd8\x21\xdc\xae\xaa\x75\xa9\xee\xe5\xc6\xdd\xcb\x0d\x50\x69\xed\x80\xbe\x29\xf5\x2c\x5b\x69\xa2\xb7\x3b\x5d\x9f\x21\x03\x9d\xd9\xb9\xc0\x1b\x60\xc1\x07\xb7\xe5\x57\xc3\xfb\x7d\xc5\xcd\x7c\x3c\xd4\xaa\xd3\xa1\x46\x1f\x03\xb5\x16\xe1\x2a\x0b\xb5\x4a\xeb\xb5\x3a\x03\x1a\x05\xbc\xd6\x01\xaf\x35\xc0\x3b\x09\x5c\x1d\x80\xeb\xd8\xbc\x43\xd6\x07\x7a\x9f\x88\x3c\x77\x5f\x28\x8e\x5c\xb3\x40\xf6\xbe\x75\x25\x36\x5c\xa8\xc2\x34\xbd\x42\x19\x5a\x78\xf5\x00\x55\xfb\xb3\x6b\x1a\x24\x31\xed\x12\x92\x60\x4b\x09\x4a\xeb\xf8\x93\x2b\xc6\xbd\x77\x9d\xeb\x6c\x68\x01\x05\x83\x07\x52\x57\x39\xb4\xad\x83\xd7\x9a\x2d\xea\x07\x3e\xcd\xe7\xa0\xd7\x12\x8b\xaa\x69\xda\x0f\xdf\xaa\xc9\x05\x06\x0f\xeb\x83\x64\x6a\xab\xd9\x78\x8c\xb7\x6d\xdb\x90\x8a\x01\x15\x85\xa2\x6d\xb6\x92\x5b\xc9\xaf\x7e\xf7\x7f\x0b\xc1\x77\xe4\x20\x0e\x97\xe8\x93\xdf\xd1\x05\x94\xa1\x25\x68\x39\x63\x3b\x35\xb2\xd1\x33\x40\xa8\x69\x20\x00\x2d\x8d\x62\xf3\xe8\xec\x74\xed\xb8\x2f\xf5\x04\x0a\x28\xde\x4e\x87\x56\xec\xa8\xb8\x9d\xbe\x62\xa0\xfc\x5c\x83\x52\xfe\x36\x70\x74\x76\xee\x48\xbc\x0d\x20\xb5\x46\xf3\xcf\xfe\x00\xcb\x2b\xf8\x79\xf9\xaf\x58\xd1\xa3\xe7\x95\x20\x85\xad\x21\x7c\x81\x39\x3a\x9f\x2d\x67\xe7\xf6\x01\x47\x48\x07\xa5\xe8\x66\x56\x0d\x18\x40\x41\x5c\x05\xaf\x97\xa6\x44\xde\x95\xd9\xc7\x00\x32\xa4\xfc\x82\x84\x46\xd9\xe7\x90\x02\xe7\x8c\x76\xdf\x56\xdf\x16\x04\x41\x7d\xbc\x97\xaf\x5f\xb9\x12\x79\x1a\x0f\x7c\x21\xbe\xd0\xe5\x86\x80\x12\x9a\x9c\x95\xe5\xe5\xef\x2e\xf4\x1f\x9f\x5d\xfe\xee\x42\xda\xf2\x4e\x63\x60\xb4\x9b\x0f\x51\x38\xda\x47\xcd\xd5\xf2\x6b\x0b\x51\x7e\x0b\x2b\x2b\x08\x42\x57\x22\x5d\xc4\xaf\xe8\x44\x22\x28\x33\x95\x99\x99\x82\x4c\x82\x2f\xba\x23\x03\x0a\x82\xf0\x23\xda\x4a\x34\x21\x0b\x83\x57\xae\x52\x7f\xc9\x30\x59\x28\x80\xfb\x27\x14\x93\x45\xee\xe8\x96\x02\x93\x85\x9e\xbe\x6f\x5c\x61\x62\xd8\x03\xff\xac\xc3\x64\xe1\x7f\x71\x6c\xc8\xc8\x9f\xb4\x9b\x0d\xc8\x85\xaf\x22\x36\x5b\xb1\xdf\xc0\xf1\x95\x7d\x99\x2f\x28\xc2\x6a\xca\x5c\x6a\x35\xf6\x0c\x41\x0c\xad\x29\xe4\x6b\xb5\xd4\xa6\x59\xbe\xfc\x4f\xd0\x5e\xfe\x16\xfa\xd6\x5e\xad\xd1\x31\x65\xeb\xa3\x8b\x89\x12\x5b\x7f\xd1\xda\xfe\x42\x75\x6d\x42\x44\x1d\x41\xfe\x9e\x74\xdb\x96\x75\x86\x98\x26\xb4\xd5\xb5\xb2\xb4\x49\x00\x8a\xd8\x61\xc4\x09\x4b\xfe\x5b\xd7\xb2\xcf\xaa\x2d\x8d\x4b\x6e\xea\xb6\x94\xdd\x34\x64\x23\x5a\x9e\x16\xe1\x8c\x3f\xcf\x95\xe8\xec\x17\xe1\x54\xb7\xfe\x6f\x00\x3f\x5a\xba\xb2\x96\x0e\x78\xfe\x42\x7d\xde\x6e\xa0\xbe\xef\x9f\x48\xb3\xd5\xf9\x6b\x15\x7d\x35\x85\x37\xcb\xd2\xc0\x5e\x61\xd4\xab\x1b\x9b\x3e\x13\x85\x21\xc2\xd7\xe1\x46\x40\xb0\x8e\xed\x4a\x37\x76\x2a\xac\x6c\x26\xce\xd0\x4d\x2a\x8c\xd6\x0d\x32\x73\x22\x97\x79\x38\x78\x18\x16\x51\xd2\x2f\x56\x7c\x3d\x11\x2b\xbe\x3e\x32\x2b\x86\xa4\x9d\xbd\xcc\x4c\xca\x72\x32\xc1\xc4\x02\xed\x82\xd1\x29\xf8\x66\x19\xe5\x82\x7f\xa9\xb5\x0c\xe3\xd3\xa9\xd0\xc4\xc4\xcc\x74\xf3\xb9\x29\xea\xd9\xa9\x29\x3a\x16\x8c\x7a\xcf\x1c\x1c\x76\x13\xdb\x82\xfd\xf6\x39\x16\x46\xed\x59\x19\x5b\xa6\x5e\xf0\xf6\xfe\xbb\xea\xa1\x69\x2b\x50\x09\x19\x65\x10\x4e\x7a\x8e\x77\xd1\xd2\x7c\x7a\x63\xf3\xaa\x1c\xeb\x6e\x36\xd0\x60\x86\xcf\x02\x25\xc5\xb5\x12\x77\x7c\x75\xb3\x1c\xc3\x72\x97\x2b\x83\x66\x4b\x94\x66\x55\x1d\xc8\x48\x0c\x54\x96\x2c\x60\xd9\x78\x50\xe7\x9c\x4a\xac\xa0\x6c\xa6\xd5\x77\x3e\x1e\x3a\x19\xc2\x79\x73\x81\xea\xaa\x47\x7e\x7c\x8e\x23\xdc\x26\xde\xb1\x43\x5d\x72\x90\xc9\xcd\xbb\xff\xb5\x23\xdc\xe5\xa9\x30\x5d\xc6\x7e\x87\x5a\x31\x1c\xd5\xe4\x9e\x78\xdc\x30\x12\x45\xe8\x68\xe2\x97\x16\xc4\xfe\x2f\x42\xef\x28\x02\x12\x6b\x60\x00\xf2\x06\xf1\xbc\x7d\x28\xd1\x11\x79\xb7\xaf\xa0\x5b\x9d\x61\x9d\x83\x2b\x6e\xfc\x58\x31\x7a\xdc\x4d\x35\x53\x1d\xe8\x08\xe1\x49\xb2\x13\x1c\x3f\x0e\x86\xc8\xe0\xff\x32\xda\x93\x9d\x56\x48\x83\x7a\x1b\x98\x38\x5d\xe4\xf7\x30\x71\x25\x23\x19\xc5\x03\xc1\xcc\x86\xb0\x0e\x6b\xf4\x09\x66\x59\xdd\x5f\xe8\x5f\x24\x06\x43\xa4\xfa\x6f\x26\x7a\xd7\xd5\x68\xb9\x4d\x6e\xa1\x1e\x3f\xf7\xf2\xaf\xb5\xa9\xc4\x07\x66\x88\xc0\x68\xd1\x0e\x49\x3c\xd0\x40\xf1\x87\xc5\x05\x16\x8b\x8e\xb2\xdb\x5d\x53\x71\xfa\x0f\x82\x8a\xe2\x02\x07\xb4\xc0\xd5\xf9\x44\x90\x56\x69\xeb\x3e\x56\x5d\xb9\x97\xae\xa7\x6d\xb3\xe3\x5a\x7d\x06\xd5\x91\x43\x1b\x31\xda\xc7\x67\xc9\x18\x78\x4c\x8b\x1f\xd5\x1c\x9e\x93\x4d\x53\x71\x52\x7f\x53\x6d\xb7\xc0\xa0\x62\x11\xc7\x84\x66\x03\x57\x8e\xf7\x11\x7d\x65\x45\x4d\x25\x64\x87\x90\x7f\x69\x8b\xec\x28\x99\x3b\x52\x06\x39\xa8\x63\x3f\x99\xe8\xd3\x84\x88\xe0\x68\xbc\xe5\xd0\xf6\xea\xc6\x71\x96\x91\x6a\xbb\x6d\x1e\x1c\xa3\xac\x5a\xf0\x08\x02\x9a\x5c\x73\x69\x6d\xe3\x6e\x64\xcf\xeb\x1b\xcd\x5c\x5d\x75\x77\x84\x9b\xe4\x62\x7d\x54\x1e\x6f\x9f\x48\xd0\x21\xbd\x1f\xa1\xaa\x3c\xb8\x43\x07\x10\x25\xcc\xc5\x12\xae\xc6\x0d\x18\xc5\x2b\x84\x9a\x1d\xa6\xf5\x14\xae\xc8\xc6\xa6\x62\x4e\x3b\xab\x04\xcf\x08\xbb\x22\x42\x7a\x38\xec\xe5\xc4\x06\x29\xaa\xc7\x05\x37\xca\x1f\x63\x1b\x17\x16\xde\xea\x4e\xa4\x28\x30\x73\xb4\x98\x59\xbd\x08\x9a\x04\xe9\xdf\x13\x53\x91\x33\x13\x55\x26\x3f\x59\x35\x60\xf9\x4a\x6d\x3f\x21\xb9\xaf\xd6\x65\x2b\x1f\xeb\x37\x10\x83\xc1\x99\x36\x71\x9b\xb3\xe8\x97\xed\x7c\xde\x1a\x77\x9a\xf9\xfc\xcc\xfe\xa9\x75\xbd\xe0\xd6\x34\x73\x99\x21\xdb\xc3\x81\x2a\x98\xc6\x0e\x66\xc9\x6f\x07\xd9\x2c\x58\x58\x04\x16\x96\x82\x25\xa2\x74\x2c\x54\xca\xc6\x50\x32\x9a\x31\x5b\x20\xb6\x45\x5d\xb9\xf7\x67\x74\x08\xcf\xda\x10\xcf\x8c\x3a\x4d\x4e\x52\x0a\x5c\xad\x8d\xc6\xad\x93\x52\x3e\xce\x34\xad\x8b\x28\xbc\xee\x7f\xc1\x30\x47\xde\x3a\xe5\x2c\xbc\xf1\x25\xf1\x08\xd8\xb6\xe3\xb0\x6d\x35\x6c\x87\xad\x92\xed\x18\xd0\xad\x0e\x3d\x01\xb9\xbd\xe8\xab\x92\xda\xb4\x69\x90\xc9\xc8\xe1\x0e\xc9\xe1\x0e\xc2\x5d\xc0\x18\x78\x9e\x40\xbb\xb7\x56\x19\xf7\x56\xaa\xdd\x5b\x47\x77\x72\x17\xec\xe4\xa4\x5b\x35\x6b\xb3\xfd\x1b\xb5\xad\x3b\xb5\xad\x32\xdd\xd6\x36\xda\x56\xa3\x5c\x6c\x4b\x1a\x48\xb2\xed\x89\x92\x6c\x2c\xc5\xe6\x1b\x66\xc5\xd5\xcc\xb3\xc0\xfb\xea\xa8\x7f\x56\x46\xda\xc5\xf4\x37\x91\x77\x15\x5f\x92\xca\xbb\x5b\x4e\xef\x2b\xfe\xa0\x78\x84\x19\xad\x67\xf8\x9e\xf0\x5b\x52\x9b\x21\x28\xe9\x96\x2b\x63\x1b\x5a\xe3\xfe\x8d\xe5\x2e\x8c\x41\x35\x8d\xd7\x1b\x2b\x3e\xcc\x7d\x1c\x38\x3e\x3a\x7e\x2c\xe2\xac\x56\x64\x1d\xf9\x6e\x44\x84\xdb\xe4\xdd\x31\xe1\x8f\x90\xd4\x87\x86\xd6\xae\x42\x3d\xc2\xad\xa3\xe7\x8a\xb5\x12\x81\x40\xd1\x17\x4c\xd0\xde\xf8\x52\x53\xe3\x36\x7d\x43\x99\x51\x7f\xcd\x96\xe1\xad\xed\xfa\x78\xe1\x1a\xb8\xde\xe2\x9b\x12\xba\xf9\xbb\x17\x5d\x06\xfa\xc9\x09\x37\x99\x8e\xd4\x7c\x9e\x36\xcd\xc8\x64\xc0\x03\x72\xbc\x83\x2f\xbd\x67\xf7\x60\x37\x81\x13\xe4\x78\x67\x7f\xb2\xce\xda\x83\x5d\x99\x16\xc7\x3a\x3a\xd2\xcb\xb1\x2e\x00\xc4\xe3\xc0\x1d\xfe\x58\xbb\x38\x8e\x6e\xd0\xb3\xa0\xc9\x58\x57\x61\x66\x8c\x81\xae\x9e\x07\x4d\xc6\xba\x0a\xb3\xa0\x0d\x74\xf5\x63\xd0\x24\xdf\x95\x0c\x10\x3e\x83\xac\x01\xea\x67\x07\x78\x4d\xd9\x6d\x43\x06\xba\x1e\x97\xcd\x3f\x52\xd7\x29\x52\x1f\xeb\x16\xee\xa2\x93\x7a\xed\xe3\xf8\x47\x9c\x72\x8a\xf5\x1f\x6f\xda\xbf\x41\xb7\xf1\x01\xf9\x38\x7d\x66\x0f\xcc\x51\x00\x57\xef\x8f\x83\x37\x7b\x7e\x3e\x4a\xcf\xd9\xe3\xf4\x51\x7a\x8e\x1a\x7d\x24\x34\x4b\x9a\x0d\xf4\x3a\xaa\x88\x83\x2a\x7d\x03\x1b\xfb\x8b\xfa\xbb\x3c\x41\xf5\xa7\xf9\x4c\xcd\xaf\x81\x0d\xc2\x99\xe1\x57\x6b\x69\x15\xc2\x46\x7c\xd6\x05\xc4\xb4\xab\x27\xbd\x29\x3a\x25\x53\xe8\xac\x98\x1d\x32\x7d\x0d\xba\x40\x78\x65\x04\x7c\x5e\x69\x8d\x52\x83\x21\xb6\xc2\xeb\x8f\x77\xa6\xec\xb5\x65\x81\x37\x01\x4b\xcb\x1d\x4b\x5b\x97\x17\xf8\xae\x74\x99\x04\xea\xcf\xef\x9e\xd4\x96\xad\xbd\x29\xf9\xaa\xb6\xbe\x18\x5b\x3f\x91\xfb\xcc\x44\x6e\xd0\xe4\x7e\x3e\xaf\xfa\x1e\x01\xf7\x08\x6f\x56\xf5\xba\xdc\x4a\x33\x51\x17\x78\x54\xc9\x54\xaf\xa2\xb9\x2d\x10\x90\x42\x4f\x9d\x93\x74\x23\x08\x0f\xe9\x10\x4d\x42\x7f\x74\xb2\x96\xc5\xa4\x2c\x3d\xa2\x59\x09\x93\xb1\xfe\x16\xea\x14\x7c\x8a\x1e\x25\x54\x3d\xc4\x93\xb4\xba\x8e\x95\x67\x5e\x21\x36\x61\xe6\x59\xe2\x19\x5a\x1b\x38\x83\xaa\x6c\xd3\x12\xc8\xb8\x86\x40\x3f\x3d\xa6\x56\xc6\x2c\x50\x4a\xe6\x54\xc9\xfc\x34\x35\x72\x50\x88\x7f\xc5\x75\xc6\x0a\xb2\x2e\x4d\xee\x4d\xcc\x06\x14\xc6\x39\x57\x88\xc4\x8e\x30\xa2\x51\x16\xa0\x61\xd1\xa9\x60\x16\xb4\x2e\x93\xa5\x0b\xc8\xe9\x32\x62\x88\x08\x9c\xd2\xa0\xcb\xf9\xfc\xac\xb8\xc0\xf4\x64\x33\x30\xd2\x4e\x5f\xe2\x04\x33\x8d\x51\x7b\x2a\xee\xde\xfb\x08\xa7\xf3\xb5\xd8\xe8\x11\x20\x70\x5d\x1f\x8e\x38\x99\x0e\xea\x6a\x35\xf2\x9d\xae\x94\x3e\xaa\x83\x06\x5a\x38\x2c\xbc\x9f\xa4\x8a\x5e\xb5\x6b\xe7\xc4\x0b\xd6\x5e\x78\x34\xe9\xf9\xd4\xea\xae\x50\x55\xb2\x9c\x1b\xd0\x55\xb8\xe8\x21\x30\x69\xfd\x1c\xee\xf0\xfe\x1d\x79\x58\x12\xcc\xad\x5d\xac\xea\xee\x96\x22\x3a\xc3\x8a\x8a\x2f\x99\x44\x83\x47\xd9\x75\xe6\xad\xa1\xa1\xb7\x1f\x33\x1e\x7b\x67\x11\x2e\x77\x08\xd1\x9b\xa2\x0a\xc8\x75\xe7\xc8\x75\x76\x59\x2e\x51\x44\x53\x5e\xe0\x5d\xe9\xc3\x6f\x3f\xdf\x79\x1d\xc5\x06\x42\x70\x27\xd5\xaa\x89\xf5\xf4\x47\xc0\xb0\x79\x04\x18\xb4\xc7\xbf\x9d\x8c\xbe\x59\xba\x81\x9b\xa5\x5b\xd5\x6a\x32\xf5\x88\xd1\xc0\xcc\xe0\x06\x49\x6a\x6e\xd5\x4a\x3b\xde\x6d\x43\x5c\xfa\x9a\xb2\x77\x0e\x87\x74\xed\x62\x9b\x88\x3a\xb0\x64\xc0\x93\xd5\xd6\x20\xd1\x7d\xf0\xe4\x49\x41\x4b\x7a\x38\xec\x25\x32\x59\xab\xf7\xa6\x64\xe5\xf2\x5e\x4a\x6a\xed\x59\xd4\x58\xb0\xc6\x0d\x10\x7c\xc0\xdc\x80\xb3\x86\xa1\xf0\x3c\x4d\x06\xd5\x5e\x23\xc7\x8b\x9c\x95\x65\xc1\x1f\x7b\xb0\x50\x08\x18\x4d\x76\x85\x25\xbb\xd8\x66\xbc\x31\xe9\x8f\xf1\xf1\x6b\xd7\x87\x87\x96\xe9\x4d\x63\xbd\x6e\x41\x45\xed\xdc\x41\xa7\x94\x4d\x29\xe2\x65\x36\x58\xa1\xc5\x24\xba\x15\xc0\xa2\x38\xee\x25\xd3\x22\x9f\xad\x33\xbd\x70\x5a\x97\xa5\xf3\xa8\xf3\x4c\xbf\x9b\xc4\x82\x85\x30\xb3\x45\x09\xc0\xe2\xb7\x62\x01\xb8\xd8\x1a\xe9\xb8\x86\x60\x2d\xd1\x7d\x39\x04\x1b\x7b\x6b\xcd\xe7\x4c\x27\xd4\x28\x78\xa9\xfe\x42\x3a\x46\xa3\xe0\xa5\x09\xc0\xf2\xae\x6f\xc6\x21\x8e\x43\x36\x3a\x8e\xb4\x19\x3f\x52\x9f\x3b\xdf\xb9\xf1\x51\xcf\xc4\xe1\x70\xa6\xf6\xfe\x70\x80\xba\x00\xea\xcf\xd0\x43\xfe\xfa\x7e\xd7\x89\x47\xf7\xaa\x78\x36\x01\x6b\xd1\xde\x7f\x49\xa7\x83\xea\xe6\x28\xfe\x0c\x62\x21\x6a\x22\x08\xbf\xa7\x2c\x3a\x35\x60\xc3\xe2\x51\x58\x44\x94\x23\x3c\x99\xb4\x40\xa6\xd4\x44\x0c\x21\x01\x8e\xd7\xf7\x15\x7b\xf8\xa1\x55\x44\x17\xa8\xf1\xe1\x60\x9e\x38\xfa\x8c\x64\xde\x82\xa4\x33\x31\x40\xd1\x79\x17\x3f\xe2\x27\x4f\xeb\x09\x03\xc2\x31\xca\x7a\xa9\xde\x07\x58\xa8\x42\xe8\x03\x1e\x87\xa4\x45\xe1\x9a\x58\x35\x01\x4d\x68\x9f\x3c\x98\xaf\x73\x37\xe3\x55\xdc\x65\x68\x9a\xe1\x98\xa1\x65\xee\x76\x8a\x3f\x09\x22\x79\xf4\x0c\x78\x00\xa3\x97\x4c\xb4\xea\x82\xf0\x36\xaf\x28\xac\xdb\x55\xd2\x74\xe6\x2e\xcc\x10\x1a\x37\x9a\x0d\xdb\xc9\x42\x73\x1a\xfe\xa7\x99\xc4\x72\x74\xe6\x11\x86\xb2\x8f\x6a\x1d\x8b\x6d\x63\x58\xb1\x87\xa0\x1e\xff\x4d\x2d\x2d\x43\xe6\x2d\x1c\x31\x31\x14\x5d\x29\x0e\x0d\xb8\xb5\x25\xfc\x45\x7f\x4d\xe0\xe5\x6f\x6c\xd3\xf2\x51\x8b\xa9\x71\xeb\xbf\xc8\x70\x85\x35\xc8\x22\x5b\x5e\x0a\x19\xb4\x77\x6c\x7a\xa0\x4e\x50\x07\x86\x07\x57\x3c\xd7\x25\x36\x1c\x98\xd4\x2f\x4b\xa9\x6d\x66\x58\x78\x88\x99\x17\x21\x4c\x72\x48\x7d\x08\xbd\xa2\x84\xcf\xe7\x5e\xac\xf2\xd7\x10\x5f\xe8\x64\xbf\x70\x5d\x81\x7c\xa2\x7f\x03\xf3\x0a\xd9\x19\xef\x50\x61\x1b\xb9\x84\x93\x63\x8c\x85\x5a\x08\x16\x03\x3e\x4a\xe2\x44\x1f\x25\xa1\x33\xf2\x79\x48\xac\x84\xf3\x4f\x52\x7f\x63\x97\x18\x17\xf2\x64\x98\xf1\x62\x16\x2a\x37\x64\xc2\x64\xfd\xba\x51\x81\x7e\x66\x5c\x20\xc8\x80\xab\x83\x7d\xae\xd8\x5e\xfd\x3b\xa2\x70\x39\xa3\xd5\xab\x0f\x8c\xe8\x9c\xc9\x68\xd1\xb4\xed\xbb\xdd\xb6\x98\xb9\x8f\x96\xb3\x73\x2f\xd1\x72\x19\x39\xc9\x9e\x62\x5a\xe4\xa4\x13\x1f\xdb\x41\xf6\xb7\xb0\x38\xe2\xf6\xd7\xda\x1c\x07\x3f\xc8\xf9\x93\xcf\xf0\x9e\xb0\xdd\xbd\x4e\xe8\xb6\x3c\xbb\xc0\xb7\x44\x2c\xdd\xac\xdc\x81\x6a\xb3\xce\xe8\x72\xc8\xc2\x59\x65\x3c\x7a\x35\x3a\xe4\xa9\x66\x24\xeb\xe7\x90\x17\x9d\xcf\x54\xf3\x59\xa8\xdc\x34\xde\x70\xb1\xd3\x8a\x96\xbf\x56\xeb\x58\xa7\xd9\x96\xb1\x87\x66\x55\xf6\x1d\x33\xe3\x6c\xb7\xf7\xd5\x3b\x33\x00\x8f\xd3\xd5\x38\x85\x27\xf7\x43\x74\xbd\xe8\xa5\x48\x58\x85\xa4\x82\x6a\x9e\x0c\xb7\xb8\x42\x13\xaa\x7d\xf5\x8c\xab\x26\x06\xbf\xda\x9e\x3a\xb2\x83\x98\x93\x70\xbd\xf9\x3e\x8d\x86\xd8\xf8\x0e\xe0\xae\x64\x50\xd9\xa5\xb8\xc0\xed\x23\x54\x3d\x10\x92\xae\xaf\x09\x93\xcc\xfa\x14\x85\xcf\x24\x71\x92\x6d\x10\x30\x18\x29\x6c\x1b\x84\xbb\x70\x03\x1a\x5f\x22\xa5\x0a\x74\xb3\x9d\x0d\x77\x1f\x56\x5f\x2b\xf0\xed\xc3\xb8\xad\xbe\xfa\xba\x19\x54\x5f\x37\xf3\x79\xa1\xeb\x38\x95\x8d\x77\xb8\xd8\x45\x69\x82\x38\xc2\x9b\xf2\x02\xd7\xe5\xce\xaa\x03\x36\x9f\xd7\x4f\x36\x56\x1d\x70\x57\xee\x56\x9b\x35\xbe\x29\xef\xf0\xb6\x3c\xbb\x9c\xcc\xae\x15\xff\x79\xb7\xd8\xdc\x55\xfc\xa9\x28\x2e\xd4\xfa\xb7\xe5\xd9\x85\x6a\xb1\xe8\x76\x6f\x3b\xc1\x8b\x4b\xa3\xa5\xbb\x1f\x07\xe9\x0d\xd2\xd9\xde\x23\x80\xde\x1b\x1e\xe0\x7d\x79\xb6\xb5\x45\xb0\xbb\xef\x34\x73\x6e\x8e\xcf\x3d\x16\x08\xdf\x96\x7c\x75\x07\x5a\x26\xe3\xab\x7d\x8b\x14\x12\xbc\x3f\x1c\x62\xbf\xd2\x5b\x14\x68\xec\xdf\x7a\xc0\x3d\xf4\x10\xd8\x1e\xae\x7b\x7c\x8b\xef\xd0\xe4\x61\x3e\xef\xfa\x38\xfa\x80\x70\x75\xf5\xd6\x1d\x0f\x7f\x09\xbd\x9f\xcf\x41\xd7\xe8\xd5\x7f\x90\x82\x5a\xf1\x1f\x93\xf7\xf3\xf9\x19\x9b\xcf\xcf\x3a\x38\x05\x87\x83\xb8\xea\x4c\x9d\xda\x65\x3a\x04\x41\x12\x2d\xdf\xdb\xf7\x6f\x97\x6f\xb3\xb3\x78\x6b\xec\x07\x6e\x61\xd7\x7e\x61\x1f\x4e\x3a\x99\xb7\xf8\x0e\xeb\x22\x3b\x68\x62\x06\xbb\xc6\x1f\xb2\x83\x7d\x40\xd2\x65\xa2\xec\x24\x8e\x76\x63\x69\x30\x0d\x54\x2c\x79\x8f\x4e\x81\x20\x24\xd8\x2b\xe4\x07\x3c\xbd\xb3\x64\xcc\x57\x06\x83\x1c\xb7\x91\x63\xc6\x10\x5a\xb1\x1c\x5a\x51\xe4\x6b\x08\xdc\xfb\x87\x19\xb2\x18\x3a\x75\x4d\x52\xca\x08\xda\x84\x74\xf7\xf5\xcc\x85\x9f\x38\x95\x65\x78\xca\x5b\xac\x4b\x2e\x05\x34\x50\x20\x4c\xb3\x41\x9a\x14\x49\x24\x65\xe0\xd4\xfe\xf1\xdc\x6a\x13\x69\x39\x32\xb0\x65\x1c\x2e\x47\x45\x47\xb2\x1a\x75\xa7\x0a\xd3\x1b\x18\x2d\x62\x2c\x58\xca\x31\x27\xdf\xa1\xe0\xef\x61\x76\xbb\x2f\x6e\xe0\xc8\xbf\x3a\x6d\xcf\xb0\xb6\x39\xc4\x09\x42\x7a\xfe\x8c\x91\xd4\xd4\x2a\xa9\x89\x3a\xa9\x89\xda\xc4\x21\xe9\x3c\x43\xfc\x39\x55\xef\xaf\x90\xe8\x1d\x79\x58\xb2\x58\x95\x4b\xfb\xaa\xdc\x56\x96\x1c\x57\x65\x9b\x13\xd7\x70\x37\xbe\xe6\x1e\x3f\x6c\x6f\xa4\x80\x25\xa6\xab\x6e\xed\x25\x89\x33\x2b\x49\x88\x2b\xb0\xb7\x05\x7e\xcb\x43\xa7\x4f\x75\x80\xe4\x72\x18\xad\xa4\x75\xb6\xac\x02\x76\xb6\x3b\x81\x9d\x75\x7c\xf1\x29\xee\x72\x83\x2c\xe7\x6f\xe2\xde\xc6\x4b\xe1\x23\x0f\x83\x65\x71\x89\xd0\x24\xbb\xac\x84\x71\x0e\x17\xc4\xc9\xdf\x77\x14\x58\xed\x94\x5d\xef\x71\xcf\xc9\x62\x5c\x64\x6a\x18\xc7\x68\x22\x41\x0f\x07\x1d\x1a\xaa\x83\x33\x7b\x1a\x4b\x02\xd1\xc6\x0f\xf7\x6f\xdb\x26\x7a\xb8\xf0\xb9\xf5\x96\xb3\xd9\x39\xf1\x89\xf3\xa8\x57\x3a\x3a\xbb\x5e\xbf\x57\xe1\x0a\x97\x7e\x71\x61\x42\x70\x5d\xc0\xb2\xc3\x2e\x72\x38\xd8\xa0\xdb\xc3\xa1\x10\xa5\x1a\xc8\x97\x8f\x47\xe2\x8e\xb7\x1f\xa6\x8c\x7c\x98\x82\xec\x5b\xcc\xbe\xfa\x79\x0b\x59\xfc\xa7\xb4\x9e\x8a\x76\xfa\x96\x4c\xab\xa9\x1e\x7a\xda\xf2\xa9\xee\x1d\x4f\x39\xd9\x10\xfa\x9e\xd4\xd3\xd9\xb9\x8b\x45\xf5\x8a\x50\x99\x0d\xe3\x1d\xf4\x56\x97\xa2\x14\xae\x60\xd2\x96\xb7\xa2\x05\x35\xe8\x5d\xd5\xbd\xfa\xc0\x2c\xde\x2c\x36\x55\xd3\x14\x42\x1d\x33\xd8\xff\x19\xba\x72\x6e\x8f\x4b\x61\xc4\x84\xd9\x8e\x69\x8c\xa8\x3d\x00\x5e\x03\xe0\xaf\xf4\x7f\x8a\x04\xbe\xb9\xbe\xfe\x64\x4f\xe4\x27\xfb\x6f\x2a\x71\xb7\xb8\x69\xda\x96\x17\xf0\x27\xaf\x58\xdd\xde\x17\xe8\x7f\x3c\xaf\x04\x59\xb0\xf6\x43\x81\x90\xbc\xbe\x7e\xe3\xf7\x3e\x28\xcd\xd8\xdf\x0f\x1f\x75\xfd\x85\x8e\x4d\x6e\xc0\x94\xf5\x13\xa9\xde\x7d\x53\x6d\x27\x9a\x3b\x2c\x82\x3a\x6b\xb9\xd9\x7e\xa0\xac\x6e\x3f\xc0\x86\x67\xde\xbe\xa8\x3a\xf1\x65\xdb\x0a\x63\xf4\xdd\xdf\x12\xf1\x3d\x4c\xfa\xaf\xea\x10\xe9\x54\xbb\xfc\xc1\x02\xdc\xb6\x5e\x18\xac\x2f\x66\x1b\xfe\xb0\x15\xed\x0c\x99\xa5\xbe\xa0\x4d\x03\x39\x17\x09\x92\x9b\x4a\x28\x91\x04\xed\x53\x8c\xf8\x14\x34\x15\xd3\xd0\xa7\x4e\xf1\x0b\xaa\xf3\xb7\x6d\x2b\xa6\xa6\xf3\x6e\xfa\xd0\xee\x14\xc6\x54\x75\x3d\x15\x77\x64\x6a\x07\x9b\x6e\xab\xcd\xbb\xea\x96\xa8\x77\xb3\x1b\xf3\xd5\x73\xb2\x25\xac\x26\x6c\x43\x49\x37\x53\xdd\x3d\xb4\x3b\x6e\x5b\x2e\x94\x84\xfc\xa9\xe2\x8c\x80\xd9\x08\x28\xa8\x86\xce\x42\xf7\x6c\x2d\xdf\xd1\xc3\x81\x2f\xee\xbb\x67\xf0\x7a\x3e\x9f\xd9\xcd\xf4\x3b\x97\xb4\x59\x24\x50\x4d\xc6\xb1\xcd\x26\xbd\xa3\xe3\x69\xd0\x72\xfa\xac\x62\xac\x15\xd3\x1b\xca\xea\x69\x35\x7d\x5f\x35\xb4\x9e\x7e\xa8\x1e\x14\x10\x6c\x12\xa8\x69\xd3\x6e\xaa\x66\xea\x2b\xba\x75\x33\x04\x05\xef\x9c\xe7\x0a\xae\xf1\x1d\xbe\xc1\xdb\x72\xb5\xc6\xf7\xe5\xc5\x93\xfb\xcf\x7f\xff\x87\x3f\x3e\x39\x3f\xbf\x47\xdb\xd5\xfd\xba\x2c\xee\xcf\x7f\xff\x87\x3f\x22\x4f\x46\x2e\xff\x88\xbc\x98\xe0\xb1\xf6\xbd\x8d\xab\xd3\x1c\x46\x59\x10\x40\xcc\x1f\x29\x13\xff\xa6\x59\xaf\xcb\x3f\x22\xbc\x4b\xd7\x1d\x1e\x69\xb6\xfa\xe3\xba\xbc\xfc\xc3\x5c\xfd\x7f\xf8\xe3\xff\xc4\x6c\xf5\x6f\xeb\xf2\x8f\xff\x3a\x57\xff\x1f\x2e\x7f\xff\x6f\x78\x55\xf0\x72\x8b\x56\x85\x28\x19\x5a\x5d\xac\xd7\x98\xaf\xc4\xea\xd2\xfc\xff\x7b\xf3\xff\xbf\xae\xd7\x78\xf6\xd9\x0c\xfe\xfe\x9f\xe6\xd9\x1f\x82\x67\x7f\x34\xcf\xfe\x7f\xc1\xb3\x7f\x33\xcf\xfe\xff\xc1\xb3\x4b\x37\x80\x1d\xe1\xd2\x0e\x71\xf9\xaf\xf6\x0f\x3b\xc0\xe5\x1f\xd6\xeb\xf5\xe2\x6f\x2d\x65\xc5\x6c\x86\x3c\x69\xba\x35\x21\x78\x1d\xd4\xed\xad\x9d\x23\x05\xfc\x52\xa7\xd5\x04\x29\x60\x5a\x2f\xb9\x2c\x5d\xe9\x24\x25\xd5\x5d\xbd\x09\x2e\x9c\x65\x43\xeb\xcf\x3e\xd9\xb7\x85\x40\xf2\xb3\x4f\xf6\x5c\xbe\x59\xbe\x2f\x10\x50\x80\xb7\x11\x05\x70\x43\x3f\x78\xf2\xfe\xd6\x95\x7b\x09\xd3\xce\xbb\xba\xfe\xea\xf3\x0f\xf8\x2d\xe4\x0c\x81\x22\xf6\x38\x20\xae\xd7\x05\xda\x9b\xd2\xb9\x1f\xa2\x52\xa0\x36\xd3\xed\xa6\xda\xdc\x91\x72\xdf\xd0\xba\x5b\x66\x53\xcb\x3e\x6c\x49\xf6\x8d\x71\xc2\x71\xf9\xca\xe2\x52\x96\xda\x91\x35\x7e\x76\xd3\xf2\x5b\x22\xe2\x67\x50\xe7\x22\x7e\x04\x7e\xe8\xf1\x23\x37\x46\x7d\x38\xdc\xc6\x23\xdc\x1c\x0e\xd7\x71\xff\x1b\xff\x44\xf7\x7e\xe7\x1f\xe8\xbe\xaf\xe5\xf5\xf5\xa6\x65\x37\xf4\x76\xc7\xc9\x37\xea\x91\x4f\x40\xae\x5b\x90\xc3\xe1\x5a\x5e\xdf\xfa\xea\x47\xae\xd4\x22\xc1\x02\x72\x3e\x27\x85\x2d\xcc\xd6\x34\x0b\x5d\x9b\x17\x6a\x54\x58\x64\x31\x2c\x0a\x33\x48\x84\xb5\xdb\xc7\x59\x59\xf2\xab\x60\x0f\xd4\xbb\x6e\xc5\xd7\xa6\x6e\x65\xa2\x6c\xb7\x81\xba\xe6\x12\x6b\x5d\x60\x71\x67\x8b\x2d\x4d\x6c\x09\x73\x71\x38\x54\xf3\x79\x67\xc3\x2f\xbe\x2a\xc2\x41\x60\x3b\x41\x23\xe4\x04\x77\x0e\xf9\x0d\x77\x6a\xfc\x15\x5f\x5b\x13\x73\x59\x96\x54\xd7\x01\xd4\x71\xd8\xd0\x84\xd6\x8a\xbb\x0c\x5a\x58\xff\x89\x78\x9b\xb4\x35\x19\x7c\x98\x93\x81\x36\xea\xbf\x3e\x43\xf1\x1f\xed\x6e\xaa\xed\x12\x53\x45\x11\x75\xce\x65\xb8\x21\x3e\x6f\x68\xfd\xc5\xb4\xbd\x99\x56\xd3\x74\x2b\x66\x3a\x4c\xbc\x8c\x57\xb0\x59\x9b\x9c\xd4\xc2\x55\x60\xd0\x4b\x29\x68\xf9\x73\xd1\xe1\x0a\x6f\xdc\xe4\xb0\x2f\x12\x16\x6c\x01\x55\xff\xad\x4b\x8a\x75\x87\xc1\xcf\xeb\xaa\x69\xfc\xf8\x9d\x16\x12\x29\xd2\xac\x92\xda\x26\xed\x3b\x05\x70\x52\x7f\xaf\x4b\xea\xf5\x4e\x54\xca\x2d\x21\xef\xfa\x08\x95\x88\x82\x79\xa4\x3b\xbb\x84\x9a\x39\xaf\x78\xe8\x63\xfb\xf8\x5e\x2e\x90\xd4\x67\xd8\x3f\x7e\xd1\xf2\x6f\xc9\x07\xab\x98\x88\xf2\x83\x65\x37\x14\xf3\xf2\x67\xc0\x38\x9d\xe4\x04\xdb\x32\xaa\x01\x54\x2f\x20\x17\x61\x06\xef\xac\x59\x28\x9a\x6a\x88\xfd\x1a\xd6\x1c\x33\x00\xbd\xd0\x7f\x66\xc1\xce\x11\xe6\x32\x74\x97\x8f\xcf\x68\x14\xcf\x38\x0e\x38\x48\xb3\x43\x6b\x5c\x95\x4c\xbb\xb8\xe1\x2e\x3b\x79\x93\x23\x09\x37\xbd\x3a\xd2\x46\x1b\xaa\x44\xb4\x4a\x8b\x68\x1d\x6e\x68\xbd\x6c\x64\x29\x02\xfc\xaf\xe6\xf3\xea\x0c\xec\x61\xe6\x01\xf3\x67\x94\x60\xa3\xe0\x54\xb8\xc3\xd6\x93\xb4\xc2\xc8\x6e\x3e\xdf\x99\xcc\x5a\xdc\xf8\xd6\xb5\x85\xcd\xda\x14\x0f\xa1\x4d\x6e\x9b\x12\x8e\x2d\x40\xd4\xfc\x77\x56\x96\x8d\x2d\x2a\x40\x0d\xac\x7b\x03\xd5\xf3\x79\x2d\xb3\x1d\xea\xd3\x9b\xf4\x59\xba\x3e\xef\x60\x15\x1b\x58\x40\xd5\xef\xf7\x6e\x3e\xbf\x93\xb6\x96\x8f\xcc\x81\x17\x0b\x5c\xf5\x4e\x23\x2c\xae\x09\x6a\xce\x02\x7d\x4e\x77\xb1\x2b\xd4\xf7\x8d\xea\x01\xb9\xfd\x4c\x45\x35\xb3\x43\x14\xb6\xa6\x52\x5b\x23\x1c\x24\xad\x76\x59\xe7\x98\xf5\xb8\xee\x29\x30\x84\xd9\x43\x69\x3b\x75\xa6\x0b\x8e\x45\x74\x0f\x21\x4c\xcf\xca\xb2\xa8\x60\x68\xe4\x76\xb8\x1a\xa3\xc2\x76\xfb\x76\x1a\x64\x25\x77\x74\xc4\x65\x99\xd4\xa4\x64\xed\xcb\x7b\x0f\xad\x3f\xd1\xcb\xb7\x21\xb4\x74\x5a\x3b\x84\xab\xb2\x85\xec\x4c\x7c\x29\xa2\x13\xa8\xef\xcd\xde\xc9\xa8\x74\x5d\xc0\x15\x5d\x97\x2d\x1e\x99\xbf\x6b\x03\x87\xb6\x6c\xa1\x82\x72\x2b\x07\x7a\xed\x65\x20\x1c\x3b\x99\x3c\x0b\x37\xbb\x59\xb6\xb0\x2e\x50\x5d\x67\xaf\x55\x74\x43\xd1\x5e\x1c\x55\x28\x0b\x88\x8c\x00\xc4\x77\xb6\x46\x4d\x69\xf4\x61\xb0\x0a\xac\x94\xe2\xd8\x2c\x5a\x02\x4d\xfa\x2f\xbb\x2d\xe4\xc5\x62\xf8\x12\xe1\x90\x25\x68\x16\x7a\x08\xc3\x0e\x44\x4c\x4a\x11\x20\x59\xa6\xda\x94\xae\xf5\xec\xb9\xb8\xaf\x42\x92\xa6\x0b\x5b\x25\xac\x20\x87\x23\xa2\xd8\xb8\x2c\x17\x37\xf0\x38\x59\x0a\x58\x33\x08\x90\x5d\x45\x5d\xdd\xf0\x3f\x47\x0a\x3e\x4c\xf5\x38\x5c\xf5\x4a\x8c\x4a\xca\xb9\xbc\xb2\x92\xe2\x06\x78\x51\x86\x67\xb4\xfb\x8c\x06\xf7\x35\xa6\xbe\xcf\x57\x61\x9f\x54\x91\x5e\xcd\xc1\x74\xa0\x2a\x06\x9e\x9b\x5b\x16\x4a\x73\xd9\x04\xbb\xd3\xcb\x65\x5f\xb2\x72\x4a\x09\x42\xc5\x1d\xe1\x53\x5a\x4f\x5b\x3e\x6d\x02\x15\x85\x96\xb0\x8c\x4c\xee\xee\x65\xe0\xd5\x33\x23\x2c\xc3\x67\xda\xb9\xf2\xb5\x4d\xb0\xab\x04\xa2\xef\x78\xfb\xf3\x83\x35\x35\xea\xe7\xdf\xf1\xf6\x9e\x76\x04\xde\x80\xb5\x12\xef\xef\x89\xa8\x96\xfa\xed\xa6\xbd\xdf\xee\x04\xa9\x17\x9c\x54\x75\x57\xcc\x36\x2d\x13\x84\x09\x30\x0f\x29\xa9\x0e\xff\x10\x25\x75\x3a\xa5\xff\x40\x80\xfb\x26\xd2\x2a\xff\xe0\x52\xf8\x6f\xf5\x37\x66\x0e\xdf\xbf\xfe\xeb\x77\xb6\x9b\x05\x27\x5d\xdb\xbc\xd7\xea\x68\x19\x48\x3d\xdf\x45\x5d\xbd\xfe\x35\x5d\x3d\x8d\xba\xfa\x46\x71\xad\x77\x84\xe9\x38\x63\x47\x1d\xa0\x6e\x9a\x16\x86\x9e\xe1\x77\x20\xcf\xe8\x21\xae\xbf\x74\x35\xec\x8a\xd5\x2c\xef\x28\x3a\xc3\xb3\xee\x81\x6d\xd2\x67\x37\x94\xd1\xee\x8e\xd4\xb3\x35\xc2\xdf\x97\xbf\xfb\xbf\xff\xf9\xbb\x2b\x25\x87\xfd\xe7\xef\x8a\x20\x67\x40\x9c\x32\xe2\x3f\x7f\x57\x2c\xfe\x07\xfa\x1d\xfe\x9b\x6f\xfe\x3b\x0f\xdf\xe7\x51\xad\xa1\x48\x5d\x45\xbb\xef\xd4\x91\x65\x02\xf2\xfa\x91\xc8\x3c\x01\x96\x10\xad\x52\x56\xaf\xf4\x5f\x8b\x6d\x4b\x99\x20\xdc\xa7\xe9\x8b\x9f\x2f\xee\x41\xd1\xf2\x3d\x9a\xf0\x2b\x5e\xf2\xd5\xef\xd7\x4b\x48\xda\xd7\x6b\xd7\x91\x8a\x6f\xee\x8a\xbf\x69\xff\xcc\xd9\xdb\xaa\x23\x8a\x41\xf3\x7e\x98\x7c\x0d\x39\x2a\xa1\xd0\xbe\xb6\x6f\x2d\x6a\x22\x2a\xda\x1c\x0e\x64\x21\xa8\x68\x08\x32\x31\xb2\x6e\xa1\xdf\x7a\x5e\xb2\x80\xc2\x1b\x82\x70\x56\x35\x60\x21\x50\x5f\xa5\x0f\x90\x22\x58\xb6\x1e\x86\xe6\x09\x7d\x67\x2f\xa3\xfd\xcf\x08\x4c\xe9\x08\x61\x67\x49\xa9\x18\x69\xea\x67\x2a\x19\x3a\x92\xbd\xc8\x62\x4b\x58\x4d\xd9\x6d\x39\x33\x7f\xcc\x30\x59\xdc\xec\x9a\x1b\xda\x34\xa4\x2e\x67\xee\xcf\x19\xd4\xe0\xd0\x25\x48\xcb\x99\xfd\x6b\x26\x51\xf1\xec\x70\x28\x9e\x95\x7b\x89\xd0\x44\x4b\xcb\x5f\x47\xd2\x72\x54\x3d\x15\x94\xc7\x25\xef\x97\x47\x0b\x0b\xcd\xbe\xcd\x95\x14\xc9\xd6\xcb\x4a\x3f\x78\x59\x8f\x35\xbb\xb3\x41\x86\xa7\xf5\x6a\x9a\x8f\xf7\x19\xed\x40\x2c\x79\xf7\x6a\x62\x47\xaf\x3d\x71\x8f\x1e\x3b\xdb\x44\xd2\x38\xfe\xa9\x4d\x6f\xd1\xb3\xaa\xae\xb6\x82\x70\x53\xdd\x2b\xd4\xf0\xb3\x32\x37\x55\x9e\x3c\x00\x27\x0e\x7d\x46\xd4\x7d\x92\x4c\x46\xf3\x0d\x98\x29\x19\xfd\x7b\x93\xe4\x40\xf7\x9a\x56\xf8\xa7\x35\x70\x15\xd9\x49\x91\xe4\x41\xbc\x1a\x97\xa4\x2c\x85\x04\x0b\x2c\xb0\xd1\x0c\x8a\x21\x40\x7f\x5b\x30\x94\xab\x87\x0e\x82\xe0\x94\xdb\xf2\xa2\x91\x2c\x15\x9f\xa5\x80\xc2\x66\xca\x04\x7a\x26\xbf\x87\xc8\x28\x2e\x2c\xe7\x5f\x84\x95\x99\xf4\x0c\x5c\x31\xf4\x23\xd5\x04\x2d\xc9\xec\x57\xfb\x35\xa9\xcf\x86\x6a\xb0\xc5\x70\x44\xd6\xad\x37\xf0\x23\x2d\xbf\x00\x6a\x17\x3a\xb3\x73\xd0\x82\xa9\x35\x0b\xed\x0e\x38\x02\x25\xe8\xfb\x99\x3a\xf4\xf0\x81\xad\x99\xde\x63\x30\xe0\xc5\x94\x76\xd3\x96\x35\x0f\xd3\xea\x7d\x45\x9b\xea\x6d\x43\xa6\x1f\xee\x08\x9b\x6e\x76\x9d\x68\xef\xa7\xd0\xd7\x54\x53\x90\x9b\x1b\xdd\x78\x86\x64\x65\xca\xcc\xaa\xdb\x20\x57\x62\x36\x86\x77\x5c\xdf\x31\x57\xda\x31\x2d\x28\xdf\xeb\x2f\x5b\xcb\xfe\xfd\x60\xbd\x41\xc5\x78\x0d\xa0\xa1\xd7\x62\xf9\xc4\x60\xfd\x3d\xec\x7f\x86\x79\x79\x81\x99\xaf\xc8\xcf\x3f\x67\x3e\x47\x18\xd5\xb5\xc5\x88\x92\x1b\x06\x3a\x58\xd1\xb5\x49\x38\xeb\x5d\xc1\xe5\xdb\xb8\x56\xb2\x0f\xaf\x38\x2b\xb4\xc3\x3e\x88\xef\x6d\x8e\x56\x68\x87\x78\x58\xa9\x51\x08\x05\x3b\x11\xd2\xde\x78\x2f\xc2\x37\x2b\xb2\xd6\x4a\xb6\xe1\xef\xe3\x0a\x8f\xf9\x9e\xa2\x36\xaa\xcf\x36\xbe\xe8\xbe\x21\xa2\xea\x23\x3e\xd6\xca\x16\xeb\x8e\xfd\x52\xbb\xcd\x87\x15\xa5\x71\x07\xd2\x3a\x78\x39\x38\xaf\xc5\xb2\xbb\x6a\x47\x88\x64\xa7\xb3\xea\xe2\xd0\x04\xad\x7b\xd0\x69\xa1\xe7\xf3\x33\x5d\x42\x17\x6a\xd5\x17\xe8\x8a\x5e\x29\x09\x6b\xc9\x0d\xfe\xbc\x66\xd5\xb6\xbb\x6b\x85\xc9\xce\x8b\x30\xbd\xca\xc2\xad\x64\xcb\x23\x50\x28\x19\x66\xf2\xae\x57\xfd\x1c\xb3\x70\x6f\x3b\x5f\x6c\xc7\x5f\x6c\x90\xf1\xa3\x1c\xbe\x1d\xed\xb6\x5d\x68\x3d\x46\xb0\x6d\xbe\x0f\xaf\x5f\xb5\x1b\x9c\x6d\x99\xdd\xde\x36\xf2\x90\xcf\x20\x1d\xee\xca\xa2\x7a\xcc\x1e\xe3\xcc\xee\x3a\x02\xda\xd9\xed\xe1\xe5\x6a\x8d\xf5\xaf\x8c\x3f\x54\x35\xb2\xeb\x04\x4d\x44\xb8\xab\x87\x43\xc1\xae\xb8\x65\x10\x69\x8d\x96\xe6\x87\xe8\x6d\x33\x02\xbf\x5c\x76\x95\xd9\x84\x92\x2f\x47\x37\xa1\xe4\x98\xcb\xc4\x6d\xd9\x95\x2b\x37\x99\x86\xfa\xaf\x65\xdf\xf1\x38\xf7\x51\x3f\x4c\x33\x4a\xd1\x1c\x3b\xdb\xe4\xb2\x64\xc6\xb7\x4c\xe0\x2e\x63\x76\x22\x90\xc6\x5f\x14\x04\x2f\x16\x8b\x0c\x5f\x1b\xb0\xb5\x10\x9c\x5c\x58\xe6\x26\xfc\xfc\x1f\x91\x30\xbf\xb8\xa1\xac\x6a\x9a\x07\x6d\xf4\x15\xb0\x19\x7c\x71\xdd\xed\xde\x76\x1b\x4e\xdf\x12\x6e\xa3\x04\xcb\x0b\x24\x03\x6f\x64\xd7\xdd\x8f\x7e\x7d\x67\x71\x38\x58\x50\x86\xba\x97\x29\xd9\xbd\x03\x59\x38\x90\xd8\xbe\x4c\xfc\x63\xff\x51\x04\xe2\x9e\x17\xf3\x38\xd2\x92\x9c\x9a\x35\x41\x58\xfd\xf7\x63\x21\xc2\x8e\xfe\x94\x4d\xfe\x49\x16\x7d\x57\x4b\xdf\x4a\xe6\xca\x97\x1b\x86\xfc\xaf\x31\x43\x8e\x92\x02\x83\x25\xb1\xcc\x6c\xfd\x43\xab\xb9\xc3\x61\x86\x17\xbe\xea\xa0\xa6\xb5\x51\x93\x89\x0a\x7c\xf0\x6c\x55\xff\x1e\xce\xb8\x5e\x21\x24\x0c\x9a\x69\x4b\xcf\x3e\x8e\xb0\x0a\xdb\x01\x3b\xa1\x37\x2f\xe5\x40\xf4\x04\xcc\xce\x4a\x6b\xb9\xdb\xf7\xfb\x28\x85\xac\x6a\xe3\xa7\xe7\x02\xfe\x83\x16\x62\x5d\x92\x78\x55\xce\x8f\x51\x97\xdd\xd1\x9f\x46\xba\xb0\xf0\xeb\x30\x9a\xdb\x76\x60\xb5\x5d\x04\x3d\xb1\xb9\xe2\xa3\xf7\x46\xe1\xc5\xf1\x25\x92\x9b\x96\x89\x8a\xb2\x00\x12\xf0\xc9\x40\x7f\x00\x11\xfd\x34\x0f\x11\xdd\xc0\xec\x46\xaf\x89\x79\xee\xaa\xdf\xbb\x6d\xcb\x55\x21\x96\xa6\x1e\x69\x94\x2e\x56\x8f\x32\x49\xb0\x60\x32\x50\x4d\x5e\x28\x7e\x05\x8a\xd2\xc7\x25\xfd\x65\x0e\x6b\x8c\x95\xf5\x93\xac\x95\xf5\xbe\xda\xe6\x26\xa9\x38\x1b\x4e\xc9\x7b\x92\x1a\x5e\xee\xab\xad\xba\xb6\xf2\x06\xdf\xb0\x09\x68\x4b\xfe\x5a\xe8\x48\x78\xbb\x62\xbb\x1c\xe2\x9b\x62\x91\xd6\x26\xd5\x49\x5c\x45\x94\xbf\x95\xac\x14\x5f\xb6\x76\xa5\x5c\xb5\xda\xeb\xef\xa1\x85\x1a\xff\x94\xb7\x57\xff\xbb\x5f\xc2\xdf\x8f\xdb\xab\xff\x43\xcd\xe0\xef\x91\xc9\x5a\x83\xef\x3f\xb2\xa7\x5c\x4b\xdc\xfe\x84\x2b\xa9\x53\x3c\x7c\x53\x6d\x63\x61\x95\x91\x0f\xcd\x83\xd6\x26\xd7\x03\x72\xea\x33\x30\x77\x8f\xbd\x7b\x70\xba\xda\xe4\xcd\xa2\x67\x34\x76\xce\xb7\x36\xbc\x71\xa2\x6e\x4f\xa3\x92\xbe\xd2\xe1\x8e\xe0\x7c\x4b\xeb\x2b\xb2\x14\x4b\xad\xc0\x86\xf7\xda\xf0\x50\xd8\x78\x4e\x68\xa5\xfe\x50\xed\x5c\x19\x0e\xc5\x86\x5c\x89\x25\xb1\xec\x0d\x20\xec\x37\xd5\x16\xa2\x59\x8c\x35\xaa\x2a\xc1\x19\xa5\x60\xda\xb6\xdc\x99\x9f\x60\xb5\x04\xc6\xbe\x9a\xcf\x3b\xc5\x16\x06\x22\x67\xe7\x7f\xf4\x6c\xb1\x6f\x5e\x54\xb4\x21\xa0\x34\xd5\x96\x0d\x30\xc3\x7e\x4a\xeb\x4f\xa7\x37\x2d\x87\x1f\xa9\xa6\x7e\xfa\xe9\x27\x7b\x22\x3f\x55\x9f\x7c\xfa\xc9\x5e\xad\x56\x7e\x8a\xa7\x6f\xc9\xa6\xda\x41\x95\xbb\x4a\x4c\x69\xad\x64\xa1\xaa\xe1\xa4\xaa\x1f\x14\x5b\xa5\xde\xbc\x7d\x50\xed\x85\xfc\xf4\x8d\x67\x6e\x74\xf2\x4a\x20\x5c\x1d\xd6\x8b\xb0\x8e\x68\x95\xb6\xaa\x94\x65\xd9\x29\x86\x25\x7a\x78\x06\x0f\xab\xf9\xfc\x2c\x5e\x68\xbc\xd6\xf9\x5c\x41\xc3\x0d\x50\x61\x03\xb4\xa2\x2a\x3b\xa4\xf0\xaa\x64\x4a\xea\x6f\x17\x8a\xe4\xda\xb7\x08\x33\x57\x8a\x39\xc4\x3c\x05\xb2\x4f\xa4\x09\x1a\xd2\x37\xba\x8b\xcd\xb6\x8e\xf3\x09\x02\x8d\x59\x3b\x44\x94\x58\xe3\x31\x5f\x12\x97\xfe\x7b\x4b\xc8\xbb\xc2\x17\x63\x65\x57\x05\x68\x1a\x5e\x6f\xee\x48\xbd\x6b\x48\xfd\xdc\x1a\x1a\xa0\x5c\x73\xc5\x36\xa4\x71\x8f\x30\xb3\x55\x4e\xdf\xee\x68\x53\x17\x1c\x4c\xce\xd0\x23\xc9\x64\x22\x8e\xb1\x50\x1f\x78\x00\x97\xa2\xe0\x5f\x3e\x04\xac\xa6\x21\x0a\xaf\x4c\x5b\xb0\x29\x61\xdd\x36\xb2\x42\x19\x48\x02\xe7\xe6\xcc\x46\xb1\x67\x71\xa0\x91\x07\x4e\x59\x2b\xea\xad\x48\xf0\x18\x98\xf9\x9a\xa9\xb0\x42\xea\x6c\xa8\x65\x59\xb6\xfd\x33\x61\x3c\xb5\x3a\x22\xe0\x00\xd0\x7a\xaa\xf0\x76\xda\x32\xf8\xa9\xd9\xd0\xa9\x3a\x04\xcb\x4f\xf6\x5c\x4e\xab\x4e\x3d\xe7\x44\xe1\x3c\x6b\xa7\xdd\x6e\x73\x67\x1b\x51\xfd\x89\x36\x47\xbd\xb1\xd2\x1c\xd4\x01\x52\x47\xd7\xb1\x33\xc1\x7c\x8c\x52\xf5\x0c\xea\xba\xb8\x39\x7f\xf9\xf0\xb2\x2e\x3a\x2c\x9c\x13\x84\x76\x3e\xc8\x42\x62\xc0\x4c\x4e\x71\x00\x50\x21\x11\x6e\x15\x41\x7e\x59\xab\x3d\x90\x6e\x8c\xd4\x98\x9e\x76\x9e\x75\x6a\x48\x3a\x66\xd6\xd5\x25\xc2\x1d\x8d\x36\x60\x80\xd3\xe2\x63\x18\xf1\x3f\x84\xb8\x05\x5b\x18\x7b\x99\xae\x04\x8d\x59\xa9\x39\x3b\x26\x35\xe2\xa6\x9c\x9b\x79\x0a\xbe\x0f\xee\x87\xf3\xe1\xb1\xae\x22\x20\xf6\xc4\xc0\x0d\xf0\xd5\x9c\x4d\xbc\x4f\x16\xbf\x64\x3a\xd8\x63\xc2\x4b\xdd\xd1\x95\xad\x9d\x3c\xe8\x5f\xb1\x24\x86\xba\x83\xdb\x16\x29\xfc\xfd\x96\x96\x51\xce\x9d\x33\x45\x98\x28\xe6\xc6\x8f\xc8\xb1\x78\x11\xf3\x10\x7f\x17\x64\xc8\x85\x7a\x40\x6e\x5e\xe0\xc2\x26\x16\x8e\x4b\xe4\xb0\xc8\x60\x85\x6a\x71\x64\x92\xdd\xf3\x01\xdb\x2e\x43\x32\xde\xe0\x94\x87\x76\xd4\x73\x11\x30\x3e\x32\xba\xb7\x81\x31\xed\x72\x9f\x87\xad\xa2\xef\x35\xb7\x42\x2c\x01\x06\x2f\xeb\xfe\x88\x86\xa7\x59\xe6\xf0\xd0\xf1\x3b\x8e\x9d\xf9\x4b\x68\xa3\x00\xaf\x5d\x9d\x37\xc5\xfc\xb1\x30\x89\x50\x80\x3f\xfa\x73\xc4\x11\x69\x3e\xe6\x7f\xa5\xe6\x83\x1c\x27\xe3\x4d\x1d\x96\x23\xf9\x33\xb0\x44\x20\x72\x0a\x24\xaf\x6d\x34\x42\x81\xf6\xb0\xd7\x82\xfc\x10\xa9\x33\xff\x52\x38\x8b\xb1\x69\x87\xae\x66\x6a\x82\x33\x48\xe9\x2a\xd5\x9f\xde\xb1\xb3\x4c\x1b\x4f\x7c\x37\x10\x8c\x67\xd6\x58\x90\xb2\x20\x36\x0d\x8c\x5d\x29\x9a\xcf\xad\x3b\xf3\x59\xe8\x9f\x7e\xc7\xc9\xcd\x92\x20\x6c\x6a\x1e\x49\xc5\x14\x3b\xa6\x5b\xdb\x43\x06\xc7\x85\x24\x11\xea\x83\x4c\xec\xb4\x7d\x01\x33\x81\x30\x6d\x4c\xa4\xfc\x5f\x81\xef\xb7\x4e\x49\x13\xc8\xde\x21\xcb\xdb\x1f\xcc\xef\xe2\x95\xf9\xdf\xd4\x72\xca\x87\x20\x04\x23\xe1\x59\xa4\x49\x99\xe1\xbd\xa2\x5b\x6e\x13\xfe\xec\xb2\x58\x40\x70\x85\xde\xff\xff\x3d\xd5\x96\xdb\x0c\x26\xe8\x08\x1e\x57\xd1\xd8\xf0\x16\xef\xc8\x43\xc9\xf4\x9f\x59\x1d\x99\xb5\x37\x01\xb7\xc8\x17\xa9\x32\xc9\x38\x61\x01\x01\xab\x38\x61\x02\x52\x4d\xeb\xa4\x86\x37\x84\x13\xb6\x89\xde\xbe\x8c\xcc\x28\x42\xd2\xfa\x51\x7b\x66\x34\x50\x6a\x6b\x40\xfd\xa4\xa8\x11\x89\xd0\x15\xfa\x9a\x44\x21\x10\x0a\xa9\x02\x58\xa1\xc3\x21\x38\xaf\xfa\xcf\x25\x89\xec\x7f\x8a\x95\xf0\xb5\x19\x0d\x94\x90\x34\x02\x6e\xac\x0c\x8f\xf5\x13\xc8\xd9\x99\xa3\xea\x5c\x53\x91\xab\x34\xf5\x93\x91\x57\x24\x14\x1d\x5b\xfa\x73\x6a\x45\xe9\x91\x6d\x51\xe7\xf5\x59\xc5\x5a\x46\x37\x55\xf3\xbd\x9b\x7a\xf1\x6d\xa1\xa5\x1a\x24\x21\x76\x25\xc6\xce\xcc\x1e\x98\x2b\x20\x03\x77\x9b\x4c\x05\xca\x73\x38\xad\xd1\x88\xdd\xcb\x94\x18\xd2\xb9\x0e\xf8\x82\x76\x5f\xb7\x55\x4d\xea\xc2\x39\xa4\xf2\xc8\x30\x14\xec\x91\xd4\x31\x81\x31\xdd\xcd\x4d\x36\xbb\x31\x18\x74\x0e\xa7\x76\xa1\x5b\x66\x7b\xf1\x9a\x25\x78\x68\x00\x88\xac\x84\xfd\x7f\x7e\xc5\xd1\xca\xa8\x26\x7f\xdb\x83\xf5\x5b\x9c\x09\x57\xeb\xd4\x9d\x88\xe8\x6e\x38\x95\x0c\xf6\x2e\xb3\xe0\xea\xe8\x66\x92\xd6\xdd\x60\x67\x58\x94\xab\xb5\x4f\x72\x67\xc8\x81\x30\x95\x5f\xa0\x8c\x37\xb8\x78\x80\xf8\x24\x7e\xc9\x81\x2d\xc9\xa4\x77\x25\xc0\xd4\x93\xb1\xac\xd4\x14\x00\x11\xac\x4e\x66\x0a\xdf\x16\xfd\xd3\x8c\x62\x36\x2b\x83\x12\xd6\x55\xe7\x19\x18\xa5\x3a\x25\x2d\xf0\x1e\xe0\x73\xdf\xc1\x66\x20\x79\xed\xcf\x5c\xac\x1e\xcc\x7d\x73\x57\x75\x4f\xe3\x47\xcf\x61\x89\x83\x1f\xdc\x43\x58\x41\xb7\x10\xad\x0e\xcc\x40\x0b\xf2\x9e\xf0\x07\xb5\x5c\xcd\x84\x8e\x92\x98\x31\xb3\x80\xa6\x0b\xfa\x57\xc0\xd6\x21\x14\x12\x91\x84\xa0\x05\x80\x8f\xdd\x7a\xfd\x27\x57\xd0\x31\x54\x91\xd7\x41\xbc\x16\x6f\x97\x39\xa2\x13\x74\x98\x43\xf6\x2c\x95\x09\xbf\xd1\x2f\x73\x9f\x19\xfa\x41\x48\x40\x40\xfa\x26\xe2\xb0\x2f\x5f\x68\x1e\xcc\xe7\xb4\xce\x37\xa3\xb5\xa4\x7d\x53\x7c\x9d\x63\xd9\x66\x96\x25\x9d\x3d\xee\x54\x64\xd0\xd8\x6d\x44\x6a\xc8\xa7\x75\x6e\x73\x74\xd0\x13\xc9\xdc\x07\x64\xfc\x3e\xc8\x0e\x10\x2e\x55\x4f\xcb\xe7\xcd\x2f\x1c\x3d\x75\x6a\x13\xd4\xf3\xd7\x7b\xf3\x23\x03\xeb\xb9\x68\xa7\x37\x44\x78\x01\x59\xb1\x7e\x0f\x5b\xa2\x04\x6c\xdb\x8b\x9c\x7e\xa0\xe2\xae\xdd\x89\x69\xc5\xa6\xb4\x7e\xe3\x10\xe0\x63\xcc\x0c\xef\x75\x67\xb6\xc4\xfd\x47\x9c\xa5\x97\x26\x9c\xa9\x6b\x41\xbb\xe7\x94\x8b\x87\x2b\xb2\xe8\x08\xab\x8b\xd9\x5b\xb2\x69\xef\x09\x3c\x9b\xa1\xa5\x7d\xba\x35\x5c\xe8\x4f\x55\xf7\x3d\xe9\x88\x98\x69\xef\x38\x4e\xca\x3d\x78\x46\x54\xcd\x6b\x51\x09\xb2\x9c\xed\xd8\xa6\xbd\xbf\xa7\x42\x90\x7a\x86\x4d\xdf\xcb\xb3\x0b\x1c\x3c\x5f\xee\x6b\x5a\xbf\x26\xc2\x72\xb6\x4b\x41\xb0\x5a\x30\x65\xb7\xda\xb2\xb8\x97\x38\x1d\x4f\xcf\x16\xc2\x2b\x9f\xf5\x1d\x09\x0e\x07\x3b\x4f\xde\x36\x0d\xa9\xbf\xac\x36\xef\x66\x48\x97\x90\x23\x9a\xfd\x21\xe3\x5f\x43\x28\x31\x78\x78\xfc\xd0\x16\xb3\x06\xf0\x71\xd1\x55\xef\x49\xad\xfa\x09\x60\x02\xb3\xfb\x40\x9b\xe6\x19\x2c\x47\xf7\x1b\x7f\x4d\xd9\x8b\x86\xde\xde\x29\x18\x61\xbd\x95\x2e\xc9\xc2\xde\x1c\xa4\xa5\xc0\x26\x5c\x7b\xc9\x25\xda\x8b\x82\x58\x5a\x98\x7c\xc0\x91\xea\xc4\x2d\x2a\x37\x5c\x3c\x59\xac\x5e\xd3\xdb\x5b\xc2\xbf\xae\x04\xe1\x29\x44\xde\x92\x4d\x75\x4f\x5e\x32\xf0\x3c\xcd\x4f\x1e\x5e\xcd\xcc\xb0\x6f\xdd\xa0\xf6\x57\x08\xb9\xfe\x60\xa4\xaa\x1f\x66\x48\x4a\x6c\x81\xb0\xdc\xd3\xee\x75\xf5\x9e\xb2\x5b\x85\x05\xfd\x8d\x4f\x41\x1b\x6c\x99\xfa\x19\x9a\x39\x96\x0d\x09\x21\xaf\x5e\xd7\xb4\x1e\xde\x07\x0f\x11\x8d\x1b\x94\xbd\x6f\xdf\x91\xaf\xe9\x0d\xd9\x3c\x6c\x1a\xf2\xac\xd2\x0b\xea\x66\xfa\xe8\xd5\x6a\x0e\x3f\xe8\xd2\x65\x7d\x88\x7f\x0c\x90\x1e\x9f\x89\xeb\x4e\x1f\xf6\x4c\x67\xe1\xf9\xea\xc3\x3f\xf8\x78\x06\x17\x0c\x36\x83\xab\x6d\xf8\x2b\xfc\x71\x76\x89\xc3\xf2\x10\xb9\x31\xf4\xfb\x7a\x11\x8d\x25\x93\xcd\xb3\x27\x52\xab\x6b\x60\xc8\x6f\x48\xd7\x55\xb7\x10\xff\xef\x4d\xe6\x62\xc1\x40\xd7\x63\x28\x0e\x86\x53\x68\x52\x96\xd9\x74\x8f\x7a\xda\x7f\x35\x00\x4c\x41\xaa\x36\xfa\x08\x9a\xa4\x07\x12\xd4\x27\xe1\x9c\x2c\xb2\x0e\x9e\xd3\x64\xc3\x4f\xea\xe0\xd8\xc9\x33\x87\x01\xc7\xcb\x1b\xdf\x52\xd8\xb1\x2c\x72\xe4\x30\x31\x02\x94\xde\x71\x19\x04\xfd\x1b\x22\x6f\xad\x6f\x5c\xa7\x4c\x21\xd6\x13\xd7\xd7\xa5\xf4\x31\xfc\xa1\x73\x02\x23\xce\xab\x75\x4a\x8a\x38\x9f\xb8\xab\xbb\xaa\xfb\xe4\xa5\x58\xd1\x35\x66\x2b\xba\x2e\xb3\x89\xe7\xae\x48\xc1\xd1\x92\x3b\x61\x43\x16\x9c\x20\x35\x61\x08\x0e\x21\x25\x25\xc5\xde\x9d\xc0\xa5\x29\x86\x02\x57\xc8\xb7\xe4\x83\x22\x1d\x1d\x11\xbb\xad\x86\x41\xa8\x3d\x06\x06\xae\x2b\x40\xd1\xd1\x92\x85\x41\xf7\x85\xdf\xcf\x32\x76\xcc\xcd\x63\xfa\x69\xc4\xb3\x25\xe1\x91\xf8\x4d\xc6\xd0\xea\xf7\x1e\x38\xf4\x8a\xeb\x59\x58\x6c\xbc\x23\xa7\x8d\x76\x94\xe4\xb8\x1e\x1b\x50\xeb\x25\xab\x0c\x89\x45\xd9\x11\x1c\x00\x39\xf3\x2a\x85\xcf\xdb\x14\x3a\x3c\xdf\xc6\x78\xa7\x80\x9e\xd1\xa7\x06\xe9\x9d\xb8\x64\x75\xbd\x2d\xf1\x64\x61\x74\x4b\xcc\xc1\x35\x50\x5d\x8c\xd3\xd4\x9a\xd6\x8a\x3f\xcd\x8d\x96\x30\x29\xa1\xea\x4f\xe2\xca\x03\x2a\x20\x00\xa7\xcc\xcb\xad\x0e\xba\xd0\x44\x2a\x32\xf8\x97\x0d\x51\xef\x06\xb7\xe9\x14\x74\x4c\xa8\x4e\x75\xc2\xd9\xf9\x28\x44\xb1\x87\xed\x3b\x5f\x6c\x7d\x6a\x23\xc3\xf6\x21\x79\x01\x0b\x7d\xc1\xaf\x62\x77\x05\x8e\x96\x7b\x89\x05\x42\x46\xb2\x04\xfe\xb3\xe4\x58\x2c\x3a\xf5\x97\x76\x71\xc6\x02\x9d\x98\xa1\x83\xa2\xf9\x7c\x16\xf4\x34\xd3\x51\x6f\x33\xd7\x99\x7d\xd0\x53\x0b\xaf\xa8\xce\xca\x4d\xd7\x25\x81\xff\xb0\xc0\xec\x7c\xb6\x98\x9d\xd3\x30\xbb\x48\xb1\xa7\xdd\x57\xf7\x5b\xc5\x0d\x5f\x62\x2d\xf2\x00\x53\x64\x7f\x90\x5a\xff\x6d\x38\x66\xf5\xa7\xe5\x9b\xe0\xb1\xde\x36\xfd\x03\x48\xa2\xfa\xc3\x5c\xe9\x17\xe1\xfd\x95\xb2\x4d\x6a\xef\x32\x0c\x35\x24\x24\x85\xf9\xf8\x89\x5d\x44\x7c\xb8\xb9\xe0\xaf\xb7\x41\x90\x0f\x94\xde\xef\x6f\xb8\x8e\x5f\xc2\x7a\xef\x3d\xbf\x9d\xc5\x0c\x43\xda\x8f\x9c\x3a\x77\x79\xa6\x3c\xfc\xa3\xb0\xcd\x9d\xdd\xe1\xfe\x59\x2b\x5e\xb4\x3b\x06\x6c\x86\xb4\xeb\x57\x30\x71\x3b\x74\x81\xc9\xcf\x96\xb1\x88\x81\xa1\xd5\xf5\x3d\xd9\xe5\x37\x9d\x31\x26\x0b\xc5\xf5\x36\xa4\x62\x9a\x49\xcc\xf3\x8c\x63\x5c\xa1\x5f\x73\x66\x7e\x80\x13\xc0\xc2\xeb\x99\x2e\x13\x01\x4f\x4f\x3c\x40\xda\x8b\x1e\x00\xa0\xc9\x72\x1f\xdc\xd8\x79\xc1\x4b\x09\xff\x26\x74\xe1\x39\xad\x0d\x73\x97\xf2\x99\x4a\x48\x48\xb8\xbd\x90\x19\xcc\xf1\x53\x39\xb2\x7e\x4c\x68\xb3\x1f\x7d\x74\xe1\xed\x17\x32\xdb\xfd\x13\xec\x65\x1d\xf5\x2b\x46\x5b\x73\xa6\x96\x2d\xc1\x66\x21\xcb\x8a\xd8\xb1\x7b\x5b\x18\xc9\xe8\x01\x97\x61\x9a\xcf\x42\x72\x73\x11\xed\x74\x20\xd0\x1f\xe3\xc7\x62\x89\xff\x11\x12\xf3\x2f\x97\x3a\xc7\xf0\x04\x20\x18\x6e\x85\x7a\xf0\xeb\x04\x6b\x77\x1e\x47\x6e\xb8\x21\x41\xf8\x9f\x22\xd7\x7e\x6c\x69\xf2\x71\xa2\xee\x51\x49\xc5\xd2\x89\xe0\xce\x0b\x90\x4a\xcb\x95\x4a\x96\x7c\xc9\xde\x13\xde\x25\xd5\x38\x1e\x29\x28\xd5\xb4\xd6\x28\xad\x86\xce\x11\x5d\x0d\x6e\xbd\xcc\xc1\xcd\xe8\x4b\x9e\x03\x02\xf6\x7f\x23\x49\xb9\x87\xf4\xc9\xea\xfe\xfb\x48\xbe\x72\x6c\x4b\x21\x4f\x9f\x95\x0a\xc1\xb1\x25\xb7\x89\xf0\x5e\x6d\xe2\x32\xf3\x56\x17\xd6\x3b\x01\x01\xa4\x0e\x7b\x98\xf1\xb6\x15\xb3\x40\xe2\xda\x90\x63\xc1\xa3\xdf\x16\x3a\xfa\x74\x20\x48\x14\x32\x5d\x10\x7c\x47\xf0\x0d\xc1\x5b\x82\xf7\x31\x2f\xba\xbc\x27\xb2\x4c\xf9\x55\xfc\x9e\x94\x67\x97\x93\x2d\x09\xa5\x0b\x48\x6c\x4b\xac\x52\xdd\x65\x4a\x0b\x13\x0a\x82\xa5\xc0\x27\x14\x44\x4f\x8a\xbd\x33\x78\x2c\x6b\x82\x4d\xa0\xb4\xb3\x77\x2e\xef\xdc\x33\xdf\xee\x86\xc8\x92\x20\x5c\x93\xf9\xfc\x8e\xcc\xe7\x37\x64\x3e\x2f\xd4\x7c\x2e\x9c\x56\xfe\x3d\xd1\x5c\xfc\x6d\x36\x8e\x0b\xbf\xcd\x3f\x7e\xc8\x47\x7d\xf9\x24\x51\xa1\x1a\xe2\x81\x80\x8b\x7b\x01\xff\x97\x04\xbc\xbd\x45\x31\x5b\xcc\xc0\xa5\x1a\x12\x49\x91\x53\x9c\x5b\x82\xd8\x50\xe1\xb4\xed\xb1\xbf\xae\xa8\x6e\xcb\xd1\x90\xd1\x4d\x43\x09\x13\x2f\x93\xcf\xae\xfb\x7e\x33\xd6\xe4\xe4\x02\x1e\x62\x17\x5f\x7d\xae\xe3\xc6\x26\x54\x38\xb8\x47\xbf\xa9\x58\x75\x4b\xf8\x8b\x66\xd7\xdd\xf5\x3b\xbe\x57\xb8\x0b\x31\x21\x94\xdd\x26\xdd\x7f\x4f\x0c\x53\x16\x7f\x56\xb7\xdf\xb6\xc2\x4c\x29\xf9\xc2\x47\x5f\x24\xb3\x0a\x19\xde\x24\x53\x16\x08\x9b\xd1\xb3\x2e\x71\x90\x4b\x12\x69\xb9\xc0\xc6\x04\x7e\x35\xb9\x21\x9c\x93\xfa\x07\x7d\x2a\xd3\xd7\x3c\x60\x2d\xd2\x39\x18\x93\x77\xef\x79\x64\x10\x4f\xa6\x61\xf1\x5b\xfb\x57\x0f\x47\x65\x70\x22\x2a\xca\x48\xfd\xcd\xe9\x1f\xf8\x93\x6f\x0e\x53\xf7\xc8\x6f\x7e\x3e\x36\xc8\x66\xc7\xbd\xbc\x1b\xae\x8b\x84\x28\xb5\x05\xa3\xb8\x45\x72\xb1\xa0\xf5\x40\xf0\x71\x8c\xd6\x90\x76\x24\x83\xd5\x2e\x8e\xdc\x94\xc9\xf9\xf7\x1f\x5f\x3e\xbf\xfe\xcb\x57\xff\xb1\x8e\xbe\xe8\x09\x47\x31\xa6\x04\x4f\xc2\x83\x71\x76\x19\x1f\x0a\xfb\xfb\xd8\x81\x70\xed\xfa\x87\xc1\xbd\xea\xe1\xa3\x9f\x03\x24\x35\xb1\xf7\x62\x1f\x41\x83\xc9\xf6\xd1\x33\x7c\x19\x21\x67\xb4\x68\x87\x9a\x3d\x50\x78\xc4\xb4\xf1\x3d\xd3\x9e\xbd\x36\x70\x8c\xa4\xb5\xec\x74\x13\x13\xb2\xdb\xb3\xac\x0a\xe3\x8a\x9c\x7e\x09\x5b\xdc\xd8\xca\x98\xb1\xaf\x25\x64\x4b\x91\x93\x87\xc0\x23\x01\x0d\x79\xe6\x26\x9f\x2b\xf6\x44\x23\x82\xf3\x0e\x9c\x29\xe2\x39\xf3\x74\xf4\xfc\x12\x49\x1f\x5d\x03\x30\x2d\x7c\x81\xa0\xb8\x4e\x23\xea\x07\xde\xc0\x07\x3e\xae\xc6\xef\x4b\xe6\xf3\x5e\x44\xf6\x50\x9c\x75\x12\x58\x9d\xec\x45\x91\x64\xc8\x2d\xb3\x3b\xe6\x42\x9e\x7a\x3b\x49\x3e\x4c\x49\xe4\x3e\xab\x3d\x68\xf2\x1b\xaf\xed\xf7\xfe\x84\x79\xd3\xb1\x1b\x38\x78\x1b\xb9\xbd\x18\x61\x33\xcc\x6d\x0a\x3d\x24\x7b\x94\x78\x3f\x04\x87\x99\x60\x22\xe3\x78\x7a\xff\x12\x10\x2d\x9c\x97\xcb\x43\x18\xf5\x10\x4e\xdf\x8a\x7c\x59\xe8\x45\x6d\x1c\xec\x92\x43\x43\x3e\x4c\x5f\x13\xeb\x1c\x15\xbf\x34\x1b\x65\x8f\xd2\xe0\x1e\xd9\x06\xc1\xf6\xb8\xe3\x97\x0b\xc6\xea\x1d\x52\xbd\xa2\xf4\xa4\x0f\xad\x2a\x6d\xe7\x57\xd6\xa3\x15\xab\x35\x1a\xa2\x23\x92\x76\x7f\xa2\x75\x4d\x98\x12\x04\xbe\xcf\x01\xd3\xb8\xe9\x18\x0d\x1d\xc4\x62\x92\x12\x18\xd3\x45\xac\x0b\xb7\x53\x0b\x6f\x07\xaf\x09\x1d\x22\x94\x46\xaa\xc8\x7a\xb6\x9b\x77\x01\xa5\x3e\x1c\x4c\xb4\x37\x91\xd7\xd4\x84\xb0\xbc\xd8\x35\xcd\x83\x8b\xdb\xdd\xbb\x7c\x6a\xf6\xfd\x4b\xf6\x63\xd7\xf7\x01\x53\x6f\x02\xff\xaf\x33\xed\xe9\x53\xa4\x01\xa2\xe9\x53\x13\x1a\xea\xa0\x11\x1d\xee\x68\xe5\xa6\x89\x74\x6a\xbc\xf1\xc6\xa6\x91\xec\xb9\x49\x0d\xb6\x26\xb5\xbc\xab\xb4\xe0\xfa\x34\x93\x0f\xa1\xff\x59\xbf\xb5\xb4\x0a\x81\xf1\xd1\x74\x1b\x19\x44\x47\x8f\xb5\x36\x8d\xa4\x4d\x1a\x31\xd2\xf4\x5b\xf2\x41\x1a\xa1\x75\xbc\x21\x34\x91\x4e\x51\x34\xd6\xd8\x35\x92\xde\x83\x47\xdf\x59\x67\xe1\xde\xcf\xe7\x67\x03\x18\xa9\xb3\xe2\x01\x89\x5b\x0a\x1d\xcb\x80\x79\x69\x1f\xe0\xd8\x57\x0c\x6e\x35\x1c\x4e\x60\xd9\x9b\x12\xa4\x63\xe6\x8e\xb9\x08\x39\x0d\xcc\xad\xfa\x31\x78\x07\x5c\x94\x4f\xb3\xa7\x27\x3f\xa3\xf5\x8c\xb2\x29\xf1\xc9\xc1\x74\x10\x86\x4f\x8f\xa7\x29\x33\x04\xab\x50\x63\xd4\x2c\x45\x22\x0a\x8e\xa6\x11\x09\x72\x26\xb6\xae\xfe\x66\x85\xbb\x34\x4a\xb2\x29\x2f\x9e\x34\x9f\xfb\xb2\xb1\x36\x83\xc5\x0e\x4a\xc6\xe2\x4d\xd9\xae\x76\xeb\x89\x9b\xff\x06\xaa\xd1\x84\x95\x02\x37\xba\xb6\xe0\xcf\xa4\x20\xab\xdd\x1a\x2d\x5f\x99\x3f\xb0\xfa\xb7\xac\x90\x0e\xb1\xac\xcb\xf4\xda\x58\x5c\xab\xc9\xeb\x3d\xd5\x82\xb6\xc9\x37\x53\xb8\xb2\x18\x26\xff\x07\xc7\x75\xc0\x1e\xe8\x8a\x56\x1c\xa7\x25\xae\x92\x9b\x51\x41\x4b\x5f\xe8\x95\x12\xe2\x1e\x72\x31\xf0\xce\xf4\x83\xef\xa2\xe9\xe1\x9b\x34\x12\x08\xff\x04\x9c\xc9\x1d\xbe\xb1\xa3\x18\x81\xff\x79\x8f\xc0\xc3\x72\xef\xf0\x4d\xee\xba\x94\x11\x93\xb8\x1f\xe0\x66\x43\x71\xcb\x72\x9e\x9a\x19\xf7\x6d\x22\xae\x7d\x47\x16\xa0\x66\x97\x75\x80\xfc\x24\x19\x26\xc3\xd5\x66\xc5\x38\xc7\xeb\xf2\x38\x7f\x8f\xc9\x45\xe0\x72\xf9\xe1\x7e\x92\x94\xbc\xe8\x11\x97\x33\x19\x6b\xb9\x22\x6b\xdb\xbf\x8d\xc8\x3e\xda\xb0\x40\x71\x1e\xc4\xc1\x0f\x64\x6e\xc6\xb1\xe8\xd6\x2b\xbc\x32\xf5\xee\xea\x39\xc9\x0d\xc2\xd7\x33\xfd\xac\xc8\x7a\x12\x4d\xaa\xf7\x1a\x0b\x45\xb2\xd4\x11\x00\x5d\xe4\xcb\xee\x69\xf7\xc0\x36\xf3\xb9\x70\x91\x3a\x09\x3a\xc3\x89\x89\x83\xb4\x07\xc5\x8e\xac\xfe\x3c\xd1\xdb\x19\xfa\xc2\x6a\x6b\x31\xf8\xde\x26\x6b\x54\xf7\xbf\x0f\xb8\x9a\x3d\x7f\xbd\x9c\x02\x71\xfc\x17\xf5\x62\x3a\x3b\x37\x24\x34\xf0\xe6\x04\x36\x24\xa8\xf6\x15\x70\x95\x56\x5e\x7a\xad\x3a\xd5\x5f\x62\x82\x30\x5f\x18\xd1\x4e\x76\xa2\xe2\x82\xd4\x0e\xe1\xed\xd4\xa2\x33\x70\xe1\x7c\xdb\x6d\xdc\x6b\x2c\x2c\xb8\x73\x3b\x0b\x3e\x83\x34\xbd\xd2\xa6\xc9\x1b\x1f\xe0\xf2\x17\x0e\x70\x19\xba\xea\x9a\x65\xa7\xeb\x99\x78\x3c\xc2\x3c\x84\xa7\xfe\x72\xda\xde\x18\xa0\x3a\x5f\x16\x97\x1e\x30\xcc\x40\x58\xf8\x8c\x70\x1c\xed\x85\xf5\x4f\x0c\x2c\x44\x33\x6f\x51\xe2\xce\xa2\x44\x24\x94\x69\xb5\x21\x07\xfd\x44\x1e\x22\x35\xff\x61\x21\x11\x8e\xd2\xcf\x69\x9f\x51\x68\x68\x35\xff\x98\x48\x84\xfb\x6b\xd9\xb4\xf7\x5b\x85\x4c\xd8\x86\x56\xdf\x34\xd5\x6d\x37\x43\x3e\x07\x48\x30\x01\xb1\xc8\x6c\x8e\x44\x48\xc6\x68\xbe\xef\xb3\x8d\x45\x80\xbd\x61\xe3\x99\x39\x00\x59\x32\x88\x23\x8e\x3b\x15\xe4\x1d\x99\xeb\x49\xf8\xb9\x8c\x1d\x0e\xaf\xd5\xe9\x81\x66\x5a\x52\xc5\xb3\xeb\xcd\x1d\xd9\xbc\x7b\xd1\xf2\x57\x7c\x7b\x57\x31\x52\x47\x1e\xea\xdd\x0c\x21\x24\xb3\xec\x71\x92\x66\x23\x9d\x86\x4c\xa2\x99\xf7\x39\xca\x3d\xac\xcd\x3b\xbb\xc4\x7e\x1d\xba\xab\x81\xf5\xa2\x31\x4d\x87\x8c\x22\x53\x87\x2e\x16\x43\xbb\xd3\xf8\x6b\xdd\x7a\x1c\x3e\xb6\x59\xb4\xdd\xf1\x13\x2f\x66\xb8\x1b\x40\x1e\xed\x75\xf8\x0e\x3c\x41\xb3\x13\x4c\x66\x20\x59\x4f\x5e\x29\x30\x90\xb7\xe7\xfa\x86\xb2\x3a\xa9\xfc\x8b\x59\xdc\x89\x91\xc9\xa3\x96\x5f\x3e\xfc\xb9\x6b\xd9\xd3\x2d\xf5\x91\x50\xd8\x90\x54\x66\xce\x37\x2f\xbf\xf8\xca\x26\xf4\xc1\x09\xbb\x88\x75\xf6\x65\x84\x47\x1b\xc1\xaa\xb9\x56\x79\x7c\x99\x49\x46\xd6\x67\xe3\xe2\x86\x10\x0a\x3d\x9f\xeb\x52\x64\x57\xb1\x2e\x68\x2c\x5e\x5d\x7f\x60\x92\x75\xd1\x48\x31\xf1\x88\xb4\x52\x6d\xf0\x21\xae\x4a\xea\x8a\x58\x55\xea\x7a\xc5\x56\xa9\xab\x63\xce\x2b\xdc\x94\x50\x14\x8b\x60\x2d\x0e\xb4\xb8\xe5\xf4\x96\xb2\x4a\x50\x76\xfb\xb2\x2f\x18\xb8\xf1\x96\x54\x3b\xc4\x2b\x1e\xdb\x95\x21\xb0\x29\xcf\x47\xd3\x91\x31\x13\x07\x0e\x32\x44\xb4\x32\x75\xf9\xe8\xcc\x14\x4a\x1c\x7c\x2a\x84\xe2\xe8\x50\xc2\x43\x0e\xb0\x36\x93\xb0\x46\x41\x8a\x5d\x1c\x53\x9c\xdc\xcd\x26\xa5\x77\x98\x6d\x57\x01\x35\xac\xee\x4c\xb0\xcb\x86\xbb\xc1\x26\x91\xef\x72\x77\xb5\x0b\x23\x29\xf4\x66\xf9\x8c\x67\x5a\x62\x6a\x64\x14\x62\x01\x29\x3e\xa0\x2a\xd3\x38\x5c\xd2\x5c\x8e\x3e\x9a\xc6\x06\xb3\x07\xf8\xf7\x78\xcc\x60\x59\xc4\x75\xb5\xa1\x7d\xda\xb5\x3e\x27\xa7\x84\xcd\x38\xeb\xb8\x19\xde\x77\xd0\x3f\x9a\x90\x8d\xfc\xec\x8c\xc5\x93\x9c\xcf\x93\x07\x29\x07\x58\xa0\x09\x2d\x6b\xe2\x32\x12\x1b\x39\x35\xd0\x01\x3a\xad\x6c\xa2\xb3\xb4\xc9\xfb\xfd\x02\x97\xe9\x8a\x31\xe4\x6a\x66\xba\xe0\xb3\x09\x10\xd6\x01\x72\x58\x1f\x03\xda\x05\x35\xdd\x96\xd9\x8a\xdd\x38\x72\xfd\x68\x6d\x06\x43\x9c\xac\x63\x59\xe1\x8c\x64\xed\x5d\x3f\x84\xcb\x38\xd2\x83\x77\x49\x65\x82\xf5\x03\xac\x77\x20\x99\x0c\xb4\x18\x96\x11\x06\x3e\x80\x04\xde\x44\x6c\xee\x60\x11\x51\xad\xf1\x7e\xea\xf9\x41\xe3\x4c\x90\xd8\xa8\x3d\x1c\x8a\x18\x69\xd4\xf1\x1c\xc4\x1a\x1d\xa9\x89\x05\xa6\x41\x8c\x68\xc1\x5c\x32\x80\xaf\x2b\x41\x3a\xa1\x78\x19\x60\x4d\x67\x16\xa0\xa6\x24\x05\x32\x5f\x89\x90\xc2\x27\x74\x06\x0b\x73\x0d\x8c\x36\xd2\x97\x1f\x3a\x6a\x87\x52\xfb\xd5\xe2\x16\x4e\xec\x9f\x7a\xb9\x0d\x8f\x9d\x39\xf6\x4b\x4f\x33\x2d\x59\x42\xda\x5b\x4f\xda\xe9\xe1\x40\x71\xe5\xd2\xef\x87\x84\xa4\x05\xb5\x48\xab\xeb\xa4\x7f\x64\xfa\x6b\x4c\x09\x39\xf4\x61\x98\xe3\xea\x54\x22\xec\x6a\xc2\x07\x24\xb8\x73\x24\xb8\xf2\xd4\xb5\x92\x03\x5d\x44\x29\x65\x46\xa7\x2e\x74\x7d\x5b\x14\x14\x8c\x37\x03\x29\x4a\x05\x28\x66\x7e\xcf\xb0\x7b\xe5\xb0\xcf\xcc\x6e\xe6\xc5\x39\x34\xb1\x55\x63\xa7\x34\x52\x12\x91\xab\x1b\xb2\xbc\x33\xc9\x36\x86\x67\x53\x52\xaf\x93\x49\xa9\xc0\xc0\x27\x32\x0e\x87\xcc\x20\xdf\xc8\x29\x55\x68\xe0\x82\xc6\x27\x31\xc0\xf2\x38\x3b\xe9\x51\xf4\x22\x25\xe9\x1d\xb4\xef\xe1\x52\x71\x76\xa9\x20\xd7\x6b\xfb\x1a\xca\x02\xbd\x68\xf9\x86\x68\x39\xa8\x38\xbb\x40\x36\x43\xd6\xaf\xe3\x83\x62\xec\x47\xf6\x50\xe4\x50\x94\x42\x25\xe8\x14\x45\x07\x31\xfe\xea\xd1\x28\x5c\x49\xb4\xac\x64\x1a\x14\xff\xdb\x6c\x57\xc8\x8f\xfe\x3f\xb5\x61\x3d\xe6\x8d\x65\x98\xb7\x5f\xb8\x29\x79\xe6\xae\x95\x68\xd9\x5a\xb1\xce\x9b\x8d\x8c\x09\xb1\x2f\x64\x5e\x65\x35\x86\xcb\x44\x1e\x4b\x0a\x7e\x44\xde\x20\x67\x17\x59\xcd\x61\xee\x46\xce\x6b\x0e\x3f\xd6\x65\x2f\x11\xfe\xf7\x48\x3e\x31\x99\x82\x04\xc4\xd8\x7b\x81\xd1\xf9\x15\x5c\xe4\x92\xbb\x8e\x88\x7e\x49\x9e\x57\xc3\x21\x65\x32\xff\x04\xdf\x45\x8d\x24\xf8\x2f\x5a\xb3\x69\xac\x8f\x74\xf8\xbe\xdd\x75\x77\xd6\xbf\x3e\x52\x62\x99\xf4\xf0\xbd\x5c\xf0\x46\x91\x7b\xcd\x5a\x41\x6f\x1e\x8c\xb3\x18\x25\x5d\x61\x2d\xa6\xa1\x4b\xa2\xba\xd8\xdd\x3a\xa0\x24\x62\x2f\x6d\x51\x7c\xf6\x9e\xea\x4c\xe0\x6a\xea\x60\x9f\x8a\x08\xf3\xd0\x77\xfd\xc6\x3f\x13\x48\xb6\x6a\x5f\x24\x14\xe3\x58\x3f\x61\xf3\x57\x71\x4f\xc9\xf6\x59\x07\x82\xc0\x1c\x16\x66\x47\x03\x9d\x89\x89\x94\x36\x64\x41\xa7\x0e\xec\x88\x88\xb3\x02\x0a\xf9\xa9\x4d\x97\x66\x2c\xa9\x3e\x6d\x9a\x1a\x41\xbe\xd1\x99\x4e\x0c\x5d\xee\xc1\x34\xc8\x7e\x96\x5b\x51\x3c\xed\xc9\x00\x7b\x45\x3b\xd5\xce\x7a\xb2\x4f\x42\x25\x6f\xe4\x42\x3a\xc3\x7b\x06\xb5\xb0\x9d\x07\x36\xf7\x7c\x85\x30\x59\xe2\x1d\xe6\xf7\x02\xff\x03\x7d\x88\x6a\xea\x30\xac\xa7\xc5\x32\x56\x8f\x24\xc7\x72\x18\x11\xf8\x61\xfa\x75\x41\x0e\x07\x9b\xe2\x3d\x74\x09\xf1\x27\x53\x46\x61\x24\x91\xf2\x3a\x78\x03\xbe\x96\x41\xc8\x48\xaf\x9d\x7e\x3e\x43\x32\x70\x76\x0f\x9a\xd8\xa7\x33\x9d\x80\x27\xd7\x8b\x7f\x3e\x03\x35\x5e\x26\x08\xc1\x65\x2a\x36\x68\xe5\xec\xc5\xd6\x46\x19\x68\x90\x51\x7c\x24\x61\x0b\xf3\xbd\x66\xd3\xdd\x47\xde\x3d\xa3\x03\x5d\xed\x65\x4f\x1a\xcc\x55\x5e\x90\xc6\x7e\xf9\x53\xe8\xd3\xdb\xfb\x30\xf4\xf8\xc5\x01\x74\xfc\xf3\x99\xeb\xc9\x07\x62\x84\x70\x8c\x92\x02\x48\x78\x96\x72\x02\xa1\x81\xcb\x25\x85\x06\xc7\x4d\x73\xcb\xb1\xbb\x8a\xd5\x0d\xa9\xbf\x7a\x4f\x98\x28\x38\x06\x1f\x67\xd5\xc2\x65\x17\x73\xa2\xa5\x31\x85\xd4\x35\xf1\x8a\xfa\x21\xb2\xa8\xa9\xa2\x21\x44\xf6\x13\x19\x3d\xd5\xfb\x63\xec\xd0\x09\xcd\x4d\x92\xdc\xa6\xba\x04\x48\x74\x94\x4a\x73\xd2\x74\xef\xa8\x96\x1f\xe0\x84\xa9\xf6\xbe\x8a\xec\x46\x48\xba\x0c\x2b\xf7\xed\xfb\xaa\x79\x76\x47\xb4\x67\xf6\xe8\x3c\x2d\x90\x07\xef\x4e\xcc\xcb\xb3\xcb\x20\x63\x56\xc1\x4b\x9b\x69\xef\x47\xa6\xcf\x5a\xa4\x40\x2b\x06\xc5\xfd\xf9\x9c\x1f\x17\xe4\x87\xe6\x89\xc7\xad\x6c\x08\x61\x2e\xa3\x6b\xee\xe1\x51\xa0\xed\x7d\x34\xf9\x75\x50\x83\x0b\xc0\x61\xf9\x38\xbc\x26\xff\x15\xf0\xb2\x98\x08\xa7\x6e\x18\x54\x05\x99\xcf\x75\xb5\x90\xd9\x19\x54\x7e\xb7\xb7\x9a\xbd\x06\xf2\xf0\x33\x9f\x20\xac\x3f\x37\x17\xee\x63\xbb\xb0\x9f\xa1\xa8\x1f\xda\xb2\x67\xce\xf7\x3f\xe8\x31\x6f\x0b\xb5\xae\xfd\x59\x4b\xbc\x26\x8e\xe0\xc1\xfa\xdc\x36\x2c\x90\xcc\x85\x0e\x65\xdc\x90\xe0\xeb\x5c\xdb\x89\x4f\x4f\x0f\x04\x6a\x66\xbc\x46\x66\xf6\x16\xe8\xd9\xe1\x3c\xbd\x0c\x63\x80\x12\xeb\x7c\x54\x71\xfd\x28\x8b\x47\x90\x8c\x42\x26\x2c\x21\xb0\x09\xea\x73\xd9\xe3\xde\x1a\x7f\x79\xf8\xbf\x04\x57\xfa\xd5\xc5\x5a\x97\xfc\xab\xfa\xc4\x1a\x77\xe5\x9b\x4f\xf6\x95\x77\x16\x93\x9f\x7d\xa1\x18\xa5\x37\x93\xba\xdd\x57\x0b\xf2\x33\x15\xf3\xb9\xfe\xdf\xb0\xda\x55\x59\x85\x41\xb7\xf2\xc3\x1d\x6d\x48\x71\x56\xad\xda\xb5\x3e\x71\x4d\x79\x4b\x56\x1d\x1c\x9f\x06\x89\x12\xaa\xef\xed\xb6\x1d\xe6\x65\xb3\x20\xea\xd8\x74\xb8\x52\x4f\xe1\xae\x00\x0d\x84\x28\x57\x8a\x46\xad\xd6\xa6\xe2\x3c\xcc\x1a\x92\x0c\xb0\xf2\x02\x43\x29\x5d\xed\xef\xc2\x3e\xa7\x4f\xd8\xf9\x39\x2a\xaa\xb2\x5a\xed\x56\x6c\xbd\x46\xba\xcb\xf9\xdc\x94\x88\xa8\x10\xae\xf4\x80\x8a\x76\x9b\x47\x13\x98\x50\xa9\x63\x12\xbb\xa5\xc0\x7a\x1a\x4b\x8e\x61\x12\xcb\x4a\x4a\x3f\x18\x4f\x07\xe3\x2b\xb6\xd6\xa3\x98\xd4\x45\x37\x56\x32\x8c\xdc\x3a\xaa\x93\xad\xd2\xe1\x67\x33\x5c\x21\xac\x07\x16\xe9\xc0\x42\x0d\xac\x83\xa2\x60\x60\x99\x5e\xa3\x91\xea\x68\x16\x71\xbc\xba\xdd\x94\xa8\x76\xd3\x37\xb3\x73\x71\x3e\x7b\x33\x9d\xd9\x84\x42\xe7\xe5\xac\x65\xd3\xd9\xb9\x29\xc2\x0e\xbd\x9f\xcf\xa6\xb0\x95\x53\xca\xa6\x00\x96\xe9\x0c\xb3\xf3\x32\xf0\x23\x3c\x9f\x2d\xa6\x33\xef\x1c\xa5\x28\x9b\xea\xe9\x59\xa5\xd0\x1d\xd2\x0d\x4d\x67\xe7\xa6\x06\x1d\xeb\xb6\x64\x23\x0a\x8e\xce\x67\x8b\x19\xc2\x29\x7b\xce\x14\x66\x07\x31\x38\x8b\xc5\x82\xa0\xfd\xa5\x33\xf8\xa6\xbe\x92\x36\xcb\x94\x75\xb5\xd2\x22\xbb\x26\x17\x31\x29\x36\x90\x1a\x74\xf8\x19\xe2\x02\xc8\xc0\xc8\x38\x16\xe2\xb0\xba\x0a\x4c\xe7\x26\xa7\x61\xa6\x3c\x3f\x77\x3e\x5c\x7a\x6b\x49\xba\xb5\x46\x35\x4d\xa0\xb6\xae\x4d\x7f\x80\x5b\x24\x89\x2b\xaf\x21\xe5\x91\x20\x38\x02\x76\x96\x3e\x35\x3b\xf2\x15\x92\x5b\xad\xd7\x89\x25\xd5\xbd\x9c\xc4\xbe\x66\x4e\x9a\xe7\x2e\xa1\x7c\x5c\xd2\x6a\x92\x4a\xc3\xf7\x5a\x6b\xe2\x22\xdf\x38\xd2\x5c\xad\x1b\xfd\xaa\x10\x51\x42\x43\x70\xf1\x8e\x9f\x94\x7b\x89\x70\xf2\x0c\x32\x96\xc0\x32\xb7\xd6\x83\x22\xb0\xd2\x72\xcc\x10\x5a\x16\x62\x11\x54\x52\x3c\x44\x3f\x4d\x9f\x41\x1d\x2b\xbe\x2e\x19\x92\x19\x9f\x1d\x27\x9e\x0b\x24\xb3\xa3\xa5\x8c\xef\xc8\xf2\xb5\x75\x15\x0c\x3d\x86\xf7\xda\x43\xed\xfd\x50\xd3\xca\xb5\x3b\x9e\x4b\x10\xa8\x27\xb4\x69\xd5\xce\x89\xef\xfa\xe3\xff\xd0\xfe\xf9\xf5\xab\x6f\x0b\x02\x6b\x3e\xb1\xb1\xc0\x0c\x49\x79\x4a\xa7\x4e\x56\xb7\xa9\x75\x7d\xae\xc3\xc3\x61\xc6\x76\x6a\xfb\x83\x67\xa6\x4c\xa9\xd0\xa1\x04\xa6\x40\x69\xd1\x4f\x07\x7a\x95\x3e\x58\x92\x20\x97\x1d\x86\xfa\x4d\xb4\xd6\x91\x64\x71\x11\x6d\xe7\x0f\x1d\x9c\x7a\xde\x0b\x08\xb1\x89\x8b\x69\x6d\xf8\x0e\x4d\x03\xb4\x3f\xa6\x43\xf0\x30\x6c\x62\x62\xff\x28\xc9\x09\x91\x0c\x58\xb8\xac\xfe\x2e\x00\xc0\x16\xed\xf1\xa9\xe1\x13\x5d\x61\x12\x5b\x93\xc1\xb5\xeb\x6b\x98\x61\x46\xaa\x34\x6f\x74\x19\x0d\x9f\x7a\x31\xe2\x7d\x07\x18\x2e\x28\xe0\xeb\x3d\x7f\x34\xe0\xb4\x3b\x22\x49\x02\x6d\xfa\x7e\x5a\x11\x3b\xd2\x39\x05\x84\x62\x45\xf6\xe6\xb3\xe5\xd9\x05\x0e\xdd\x66\xc1\x65\x29\xe1\x85\xc2\x41\x43\xbf\x8c\x38\xc0\xe7\xb1\xe3\x5e\xc6\xe3\x82\x83\x4b\x28\xb8\xfa\x90\xe9\x1c\x7f\x36\x19\xd0\xc7\x85\xb1\xd6\x89\x06\xc6\x0a\xc7\xc3\x6e\x7a\x8a\xa5\x3d\xaa\xa5\x93\x55\x5d\x87\x11\xb5\x3f\xb4\x89\x52\x2b\xe6\x34\x43\xae\x1a\xcf\x00\x88\xdd\x0c\x2d\xae\x6d\xd9\x1d\x79\x2c\x90\x98\x9c\xda\xa3\xcb\xd6\x2e\x73\x51\xbf\x27\x76\x62\x1d\x20\x83\x60\xe5\x38\x83\xe4\x91\x0e\xc0\xc5\x5f\x5f\x79\x33\xf4\xc5\x45\xb0\x9f\x26\xac\xb9\xb2\x60\x02\xea\x00\xbc\x17\x64\xb2\x22\xe8\x9e\xe8\xf4\x2d\xea\x2e\x32\xfb\x30\x02\x6a\x8e\xc9\x8a\xaf\xa3\x3d\x8e\xa3\xd2\x33\x27\x54\xc7\x27\x43\xd2\x14\x5d\x9a\xb5\xb0\xba\x05\xbd\x56\x73\xea\x6c\x2a\xdd\x9c\x82\x55\x37\xd4\xc9\xa9\x07\x5f\xf7\x82\x77\x74\x95\x5c\x7f\xcc\xcd\x1c\xa3\x51\x09\xb2\x93\xc9\xbf\xdd\xf7\x64\x34\xda\x6f\x07\xea\x12\x0f\xf3\x98\x6c\x84\x50\x32\xc2\x8f\x4d\x96\xe7\x5d\x0b\x4f\x02\x9a\x68\x0d\xa7\x69\x91\xe3\xcd\xe7\x9f\x24\x05\xb3\xe4\xd2\x3c\xa1\xb5\xfc\xe2\x8d\x74\xa1\x39\x2f\x6c\x48\x6f\x70\xe9\xfa\xb8\x1d\x63\x13\x3d\x73\x5c\xf0\x86\x58\x85\x12\x98\x9d\x7b\xe9\x93\xd5\x75\x3b\x09\xac\x2b\x65\x59\xd2\x2b\x0e\x41\x48\xff\x3b\x8d\xde\xc2\x0c\x0b\x14\x5d\xd7\x14\x74\x27\xaa\xf1\xff\xc9\x36\x76\x5e\xbe\xc1\xfc\x4a\xee\xcb\xe5\x07\x25\xd4\x49\xe8\xa8\x40\x6f\x0a\x23\xeb\x93\x31\xa3\x9a\x58\x63\x3e\x60\xd3\xba\x44\xaa\x1f\x3e\x6c\x1d\xbb\xd0\x24\xb0\x2d\xfb\x23\x04\xf6\x65\x2d\x1f\xb4\xf3\x79\x0c\x22\xcd\xa6\xcc\xe7\xad\x37\x38\xbb\x3f\x23\x7b\x91\x7a\x1e\x1b\xa2\x4d\x1d\x46\x07\x83\x51\xfb\x1d\xd7\x37\xaa\x9f\xdd\xcb\xee\xb5\xa8\x94\x78\x79\x89\x30\x0b\x2a\xc0\x93\xa8\x66\xb3\x62\x9e\x5e\x91\x20\x97\xd9\x2b\xab\xef\x3b\x23\x28\xf0\x6e\x82\xa4\xb3\xe0\x74\xe1\x98\x02\x75\x40\x94\x4c\x7e\x1b\x4e\xda\x9b\xf0\xae\xbe\x2d\x84\xc9\x0b\x1c\x04\xf9\xeb\xea\xeb\x24\x53\x67\xe1\x87\xa1\x58\xf4\xeb\xeb\x28\x1a\x3d\x08\xc4\x05\xa5\xfc\x0d\x25\x4d\x2f\xc1\xf5\x23\x4b\xd1\xfa\xd2\xb7\x19\x8b\xe6\x91\x4f\x35\x52\xab\x75\x98\x65\x0e\xc8\x02\xa4\xfc\x82\x9b\x32\x59\x33\x37\xad\x19\x4a\x9c\xf5\xb3\xed\xc5\x8a\xac\x01\x8d\x40\xcf\xa7\x16\x5d\x0d\xe9\x66\x1e\xb9\xf0\xd0\x15\xfb\x1b\x85\x0a\x7a\x2e\x84\x09\xae\xb5\x28\xb6\x44\x71\x00\x8e\x2f\x1f\xd4\xa7\x03\xe3\x3e\x22\x6e\xe7\xf8\xd0\x19\x2b\x64\x68\x0f\x7a\xec\x5a\x43\x40\x73\x0f\x68\x56\x7e\xb1\x27\x36\x9d\x19\xc3\x7c\xc5\xd6\x48\x0e\x55\xab\xcc\x8d\xff\x88\x35\x3f\x7e\x0a\x3f\xf0\x8a\x75\x37\x2d\xbf\x0f\x0c\x18\xbf\xf5\x54\x40\x6d\xa3\xeb\x9a\x65\x66\x05\x47\xf8\x1b\x62\x44\x5a\x50\xa7\x90\xda\x1c\xe2\xef\x7a\x87\x18\x73\x25\x43\xda\x7a\xeb\xc6\x32\x96\x4d\x3a\x00\xac\x61\x92\x56\xe2\x61\x1b\x87\xea\x1b\x09\x3f\x2a\x51\x4e\x92\xe4\x11\xd9\xd2\xe3\x86\x91\xce\x54\x2a\x0f\x26\xd5\x0b\x37\xd7\x53\x22\xd1\xd8\x24\x66\xbc\xc2\x99\xfa\xef\x61\x52\x22\x3b\x1f\x3e\x5a\x75\x9c\xdb\xbf\x06\x4b\x5e\xab\x67\x2e\xbe\x1b\x86\xed\xcd\x58\xcf\x50\xbd\x9b\xa1\xa0\x52\xa3\x39\xb6\x19\x9b\xb2\xfe\xca\x33\x14\x0e\x24\x71\x18\xaf\x13\x03\xdd\x7b\x37\x11\x0f\xc4\x7e\xbf\xd7\xa2\x7a\x17\x16\x9e\x4d\xe1\xae\x31\xea\xa9\xc5\x28\xf8\x08\xee\xd6\x85\xce\xee\x5e\x7c\x43\x30\x64\xe2\x72\xfa\x6b\x5d\x17\x62\xb1\x58\x04\x29\x2f\x0d\xdf\x15\x5e\xa0\x5a\x8c\xd4\xbf\x74\x51\x1b\xe7\x75\xaf\xdd\x09\xcb\xe8\xd7\xe1\xe0\x33\x2a\x40\xce\x9b\xd0\x6f\x5e\xdf\x41\xfe\x4f\xdd\x9f\x59\xca\xce\xb4\x36\x3c\x87\xc9\x6f\xc7\xc9\xb6\xa9\x20\x3c\xbe\x97\x8c\xfc\x07\x28\x36\xd6\xed\x1a\x31\x6d\x6f\xa6\xd5\xb4\x23\xfc\x3d\xe1\xd3\xbf\xef\x08\x7f\x98\x16\x37\x2d\x9f\x56\x4d\x33\xed\x31\x7a\x80\x10\x1d\x9a\xd2\x6e\x4a\xef\xef\x77\xa2\x7a\xdb\x90\xc5\xf4\x87\x56\xed\x2f\xbd\x79\x98\x9a\xb5\x76\x18\xaa\xf2\xb9\xb2\x02\x6f\x90\xd4\xfe\xb4\x1a\xc0\xa6\x26\x42\x5d\xcc\x5c\xcf\x33\x9c\x8b\x98\x89\x06\xbf\x0a\x84\xf7\xa1\x04\x02\x46\xb4\x44\x0b\x4e\xaa\xfa\x15\x6b\x1e\x0a\x84\x75\xde\xc7\xa7\xe2\x99\x9e\x9b\xd7\x2a\xa4\x66\x02\xc7\x42\x2c\xec\x27\x41\xe5\x49\xb0\x27\x86\x9e\xd3\x26\x5f\x9b\xd6\x4a\xf6\x2d\x0e\x76\xff\x66\x08\xf5\x7d\x11\xfd\x4e\x4d\x3c\xd6\x04\xdf\x60\xcb\xf2\xd9\xb3\x65\xc7\x4a\x4a\xfc\x0e\xee\x3d\xb6\x02\x44\x1a\x83\xed\xcd\x3f\xbd\x98\xed\x81\x99\x5c\x06\xb5\x82\xf3\x03\x12\x4c\x24\x76\x53\xcc\x44\x57\xdc\x50\x56\x3f\x6d\x9a\x54\xcd\x12\xa6\xcb\x97\xf8\x7a\xbb\xeb\xee\x92\x68\x92\x9e\x3c\x1c\x6e\x92\x6a\xaf\xef\x10\xd0\x8c\x62\x23\x14\x3f\xa6\x0b\xfd\x45\xd8\x09\xc4\xe4\x59\xce\x02\xc2\xae\x02\xb5\x41\x18\x98\x17\xac\x43\x94\xfd\x20\xb2\x45\x65\xd7\xab\x33\x63\xe9\xe4\x6f\x33\xd4\xab\x49\x63\x32\x56\x65\x47\x32\x90\x0c\x9e\x7b\xf6\xf6\xb5\xf3\x5c\xb7\x0e\x66\x02\xa0\x58\xd3\xae\x6b\x37\xb4\x12\xa0\x5a\x78\xf5\x81\xe9\xaf\x9d\x22\x2e\x66\x96\x33\x61\x98\x24\xc9\xe3\xa0\x2d\xe9\x5a\xc4\x31\xda\x39\x35\xce\x8e\x71\x72\x4b\x3b\x41\xb8\x1a\xc7\x68\xf3\xec\x20\xf7\x46\xb9\xe7\x1b\x05\x6b\x30\x9d\x40\x3a\xb3\x34\xca\x6a\xa0\x57\x1b\x3d\x3b\xb8\xb6\x9e\x26\x30\x91\x61\xd2\xd7\xe6\xf2\xc4\x17\xee\x2e\xe8\x13\x74\x89\xaf\x47\xdd\x69\xbe\xb3\xe2\xaa\x03\xab\xba\x74\x61\x8b\x25\x4e\xae\x9c\xbc\x5e\x25\x44\x45\x57\xe8\xa6\x57\x26\x5d\x4a\x84\x9f\x91\xf2\x29\xb1\xb7\x51\x74\x15\x65\x2e\x9c\x78\x8b\x6d\xb5\xee\xa7\xc1\xc5\x37\x74\x7b\x01\xf9\x2f\xfd\x9f\xe1\x1d\xa3\x6b\xa4\xf9\x3f\x4d\x91\xb6\x5f\x7e\xc9\xb4\xac\x7f\xbf\x24\x37\xcb\x1b\x14\x12\x16\x7d\x28\x53\x10\x02\x89\x51\x6c\x50\xef\x0d\x8c\xe3\x4f\x0c\x59\x5c\xc3\x93\x94\x0c\x69\x2e\x49\x8d\xd4\x11\x91\x52\x0f\x27\x04\x26\xe7\xa6\x23\xc2\x93\x0d\x77\xf5\xc7\xca\xcf\x30\xfb\xa6\x25\xa8\xcb\xb3\x4b\x1d\x1c\x12\xc5\xdd\xef\x25\xb6\x95\xe9\x74\xb4\x48\xff\x2d\x3c\x77\x76\x0f\x7b\xc0\xae\x2b\x7b\x22\x7e\xa2\xe2\x2e\x3c\x64\x26\x89\x8d\xd3\xd7\x06\x09\x6a\xad\x75\x93\xef\xd8\xa2\x65\x56\xeb\x32\x33\x96\xb1\x19\x0e\x12\x67\x4b\x84\xdf\x91\x6c\x60\xa6\xe1\xb7\xbf\x27\x63\x55\x96\x03\x1d\x4b\xe2\x9a\x7a\xd9\x0b\xf8\xf3\x01\x82\x0d\x7d\x1f\x29\x6b\x47\x52\x70\x99\x44\x53\x23\x2d\x0c\xaf\xfb\x5d\xbb\xdd\x41\x65\xaa\xa8\xe3\xd5\x5a\xa6\xf6\x07\x6f\x73\x88\x2b\xa8\x9e\x91\x63\x69\xad\x74\x96\xe1\x23\x99\xaf\x2e\x22\x87\x42\xd3\x7a\x72\x59\x96\x65\xc1\x41\xe1\xb4\x12\xeb\xc3\x61\xb5\x46\xde\x6a\xfa\x8e\x04\x41\xb0\x15\xb0\x48\xa6\xf2\x85\x59\xe2\x0d\x8c\x2e\xa5\xfe\xe3\x3b\xdd\x67\x8c\xc8\x2f\x5a\xfe\x8d\xe3\xc0\xe3\xd2\x02\xe5\x6a\x8d\x59\x79\xf1\x84\xf9\x02\xde\xce\xca\x49\x4b\xb1\x62\xeb\x09\x3d\x25\xa3\x17\x5d\x0c\xe7\xc4\x71\x26\x7e\x9f\x61\x23\xbb\xd3\x2b\xb2\x9e\xb4\xf3\xb9\x77\x8d\xc8\xcc\x74\xb5\xc6\xb4\xbc\x78\x42\xfd\x74\xa9\x37\xca\x42\x16\x6f\x28\x82\x3b\x38\x17\x28\x8e\x1b\xdf\x70\xd5\xe1\xd0\x86\x99\x7a\xf4\x81\x21\xe8\x70\x28\xcc\xbc\x5b\x84\x41\x43\x0d\x66\x9d\x0a\x3c\xdb\xfd\x73\x73\x37\x12\x84\x24\x0f\x1c\x44\x14\x36\xf4\x59\x1a\x8e\x26\x2c\x6e\x94\x65\x5b\x18\x92\x45\x0b\x7e\x76\x41\xe3\xd0\x65\x64\xa4\xce\xfc\x73\x52\x90\x95\x58\x23\x59\x70\x64\x90\x22\x51\x96\x58\xbc\x73\x9d\xe8\x62\xc2\xc7\x4e\x14\x41\x01\xc2\x1d\xc7\x33\x81\xf5\x34\xae\xbb\x07\xb6\xf9\x3a\xde\xea\xbe\x06\xc1\x0c\xbc\x12\x6a\x93\xb5\xdc\x46\x3b\xdd\x96\x23\x4c\xcb\x33\x76\x38\x5c\x80\x3e\x53\x2f\x15\xb7\x65\xec\x54\x1e\x16\x62\x15\x08\x57\xc1\x7d\xd0\xba\x1b\x1f\x95\x65\x64\x0a\x77\xcf\x75\xf0\xe1\xe1\x70\x56\xa1\x3d\x73\x7e\x5f\x27\xaf\x94\x27\xbe\xf0\x7e\x35\xc8\x41\xd9\x8a\xa6\xef\x69\x47\xdf\x36\xc9\x8e\x7f\xa9\x33\xf4\x08\x84\x1b\x85\xe2\xbb\xf2\xe2\xc9\xce\x27\x8b\xd9\x59\x14\xdf\x94\xdd\x6a\xb7\xc6\x75\xb9\x49\x70\xf8\x4c\xd1\x90\xda\x20\xee\x7c\x5e\xd4\x06\x5d\x71\xa3\x31\x75\x83\x90\x6c\x4c\x77\x43\xb8\xd9\x28\x22\xe2\xf2\xad\x2a\x8e\x3d\x71\x5f\xcc\x9d\x57\x11\x39\xcb\xe0\x9e\xf0\x90\x7c\x63\x9c\xf2\x8f\xf5\x0a\xfe\x7b\x86\x5b\xc9\x60\x8f\xc0\x61\x04\x14\x3f\x01\xb0\x04\x4d\xcc\x78\x61\xfa\x35\x8b\x8b\x1c\x0d\xdc\x3d\xe0\xe2\xe7\xfd\xb5\x8f\x0c\x11\x9c\xca\x61\xdc\x24\xc8\xe4\xcb\xe9\xf0\x29\xc4\x17\x36\xf6\x54\xe2\xea\xac\x15\xb9\x45\xba\x03\xf7\xd4\x87\xbd\xfa\x48\x6b\xe2\x22\xdf\x2c\xbf\x28\xe0\x22\xc2\xbd\xc8\xd8\x90\xb3\x31\x8c\x08\xbc\xf6\x72\x62\x7c\x7c\x05\x9a\xcf\xbf\x35\x87\xc4\xce\xec\xe9\xf0\xb5\xec\xe3\xf4\x01\x0a\xf9\x3e\x39\xba\xfa\x96\x14\x1c\xd3\xf2\x59\x7e\x31\xc0\xea\x2d\x45\x6f\x51\x3c\xb3\xa0\x70\x11\xf8\x91\x7c\x1b\x1b\xe5\xdb\x98\xe3\xdb\xd0\xf2\xd1\x53\x3d\x32\x53\x79\x0a\x8b\x63\x31\x03\x53\x99\x17\xc6\x06\xf9\x9d\xf8\x12\xb6\xc5\x62\x29\xab\xc9\xcf\xaf\xd4\xe1\x54\x8d\x3e\xbb\x3c\x2b\x4b\xee\x8b\xff\x75\x5b\x08\x52\xe6\xf8\x12\xe1\xb3\x8b\x89\xcb\x29\x57\x1c\x9f\x28\x26\x28\xbe\x0f\x7a\x27\x51\xac\x27\x7c\x3e\x27\x25\x78\xaf\x45\xc4\x36\xd3\x54\xca\x51\xd6\x18\xed\xbf\x35\xb1\x42\xb1\x14\xda\x8f\x97\x4a\xfb\x8e\x44\xe6\x41\x9a\xe1\x43\xa4\x4e\xda\x24\xdb\xe5\xdf\x48\x3f\x2b\x47\x79\x76\x71\x2c\xca\xeb\x18\x87\x18\xac\x31\x2c\x25\xf8\x37\x53\x87\xc8\x47\x93\xb9\x57\xcf\x23\x46\x38\xd1\x07\xb8\xe9\x7a\x95\x1d\x14\x24\xcc\x73\x32\xe0\xed\xac\xc0\xe0\x12\x2e\xb9\x51\xbe\xed\xf1\xa2\x17\x98\x79\x87\x3b\xfe\x39\x7b\xc2\x15\x35\x24\x2b\xbe\x8e\x27\x01\x97\x9b\x08\x17\xf3\x32\x30\xca\xe2\x56\xcf\xdd\xb2\x00\x4f\x0b\x3a\x28\x5f\xb7\xa6\x62\x33\x42\x8a\x33\x14\x41\x98\xbf\xba\x89\xb5\xee\x4a\x97\xff\xc4\x1d\x66\xb8\x42\x78\x57\xbe\x79\xfe\x7a\x39\xfd\x93\xf6\xd2\x34\x84\xec\x5f\x6c\x3b\x25\xe9\x7e\xfa\xc9\x9e\xcb\x4f\xdf\xa8\x13\xe2\x62\xa5\x1b\x94\x8a\xc7\x33\x83\x12\x6e\x08\xa3\xef\x21\xf5\x74\xc7\x74\x09\xf1\x1a\x03\x86\x4f\x3f\x54\xdd\xf4\xbd\x12\x9a\x1b\xfa\x8e\x34\x0f\xd3\x6a\x7a\x4f\x3b\x51\xbd\x23\x4e\xba\x2d\x9a\xf2\xcb\xa2\xc1\x02\xef\x50\x52\xff\x96\x95\x7f\x2a\xc4\xa2\xb3\x49\x7a\xb8\x59\x9b\x5a\x8e\x89\x8a\x9c\xd9\x09\x04\xc6\x53\xcd\x1f\x28\x36\x34\x50\x50\x7d\xf5\xb3\xe0\xd5\x46\x4c\xb7\xd5\x83\x4f\xa8\xc4\x83\x0d\xfd\x9a\x24\xc4\xbb\x8c\xa9\x48\x96\x94\x13\x74\xa5\xcd\xc0\x02\x2d\x75\xed\x6c\x5d\x77\x1a\x0b\xbd\x82\x3d\xad\x97\x54\xab\x8f\x5b\x59\xba\xfa\xdb\x61\xcf\x6e\xc4\xb8\x2d\x99\x90\x9e\xcf\x22\xe9\xfb\x2c\x2a\x91\x6c\x1f\x3d\x5d\x56\xb2\x24\xb8\x2b\xfb\x63\xa4\x83\xef\xb5\xe1\xeb\x27\x5e\x6d\xb7\x84\x2f\x89\x0c\x27\x03\x91\x5f\x54\x96\x1c\x07\xf4\x5e\xad\x01\x57\x40\x4a\x6d\x00\x62\x64\xe5\x6b\x31\x05\xda\xaa\x53\xc7\xee\xe1\xd2\xd9\xbf\xa3\xac\x5e\x76\x52\x96\xc9\xf4\x63\x0b\x1b\x43\xab\xca\x26\x44\xd8\x9b\xee\xff\x42\x1e\x96\x15\xb6\xdf\x4b\xb7\x12\x59\x70\x2c\x30\x33\x81\xfa\x9d\x81\x9e\xff\xa6\xd1\xdf\xec\x64\xd9\xe1\x4d\x59\xad\x9a\xf5\x7c\xae\xfe\x85\xad\x99\x84\x8e\x15\xbb\xf9\xdc\x61\xf9\xe6\x70\x28\x54\x2b\xf8\x00\x82\xcd\xdc\x37\x31\x30\xd5\x46\xf1\x20\xcf\x0b\x93\x06\x63\x70\x5b\xea\x77\xb0\x89\x4c\x46\x43\x89\xab\x82\x96\x24\x90\x8f\x5b\xb4\xd4\x4f\xf6\x12\x47\x77\xaf\xa2\x01\x0e\x9b\xa9\x2c\x36\x78\x87\x05\x42\x52\x42\x9d\x2a\x82\x19\xc2\x11\xae\x48\x64\x07\x5e\xd0\x5a\x3f\xe4\x81\x8e\x28\xc6\x8e\xfd\x8a\xa9\x2b\x62\xbd\xd4\xbb\x23\xc2\x3c\x1f\x46\x53\x83\xc1\x5d\x94\x4a\x29\x07\x78\x22\x6b\x66\xab\x11\x78\xbc\xda\x5f\x3a\xe9\xac\xfb\xe9\xa4\x4c\xe1\x0f\xd9\x8b\xde\x21\x8b\xa9\x56\x5b\x8a\xc5\x96\x90\x77\x8a\x7f\xe7\x08\xa4\xe1\x54\x91\xc9\x14\xad\xcb\x28\xad\x6d\xb5\xe0\x40\x47\x1d\x68\xef\x31\xd5\xb4\xa0\x72\x90\x2d\xba\xf2\xcb\xa2\xc3\x42\x93\x87\x0c\x45\x7c\xda\x34\x9a\x4a\xd0\x93\xc9\x12\x8d\xc8\xd2\xd3\xa6\xc9\x51\x25\x2c\x16\xb1\xa0\xa2\xd6\x7d\x84\x54\xd9\xf9\x7c\xe2\x0f\xa3\x34\xd5\x70\xff\x41\xf0\x8f\xa4\xac\x8a\xd9\xf3\xaf\xbe\xfc\xf1\xdf\x3f\x13\xdd\x67\x6f\x79\xc5\xea\xb0\x84\xc4\x97\x91\xdb\x8a\x29\x5f\xf0\xa7\xbc\xf6\x2b\xf2\x17\x59\xfd\x48\xd6\xb1\xbd\x57\x5d\xc7\x7a\xe6\x2e\x9c\xa8\xcb\x16\x14\x70\xaf\x75\xeb\xee\x84\x6e\xd2\x14\xec\xbd\x2e\x56\x6b\x93\xb4\xdc\x3a\xac\x81\xff\x90\xd7\x50\x3f\x14\xc1\x12\x90\xbc\x56\xa7\xcf\x22\x57\x1a\x8f\x6c\x6c\xfe\x71\x13\xe9\x12\x7c\x25\x63\xbb\x30\xe0\x62\x7c\x86\xa3\x6f\x43\xdd\x18\x16\x8a\xcb\x74\x36\xe1\x1c\x3c\xec\x86\xe4\x61\x15\x2b\xe3\xcc\x6a\x02\x15\x27\x5f\xfc\xad\xa5\xfa\x18\xec\xc3\x4c\x74\x4a\x22\x8d\x3c\xf3\xfb\xea\xb8\xef\xf2\xd3\x07\xf7\x85\x8c\x1b\x62\x14\x0d\xf2\xca\xfc\xc4\xb4\x8c\x77\x63\x34\xaf\x17\x43\x5e\x23\x62\xdb\x2b\x32\x50\x50\x34\x69\xe7\xf3\x76\x91\xf3\x7e\x94\xa3\xb3\x35\xf5\x4a\x2e\x8f\x80\x38\xa3\x59\x4a\x7b\x9a\x1c\x43\xca\x71\x9c\x9e\xf4\xe4\x6a\xb3\x42\xcc\xcb\x8b\x27\xdc\xab\xbf\xf8\x79\xf9\x7b\x0b\x46\xc5\x35\x62\xaa\xfe\x3b\xbf\x5c\x3b\xaa\x58\xb0\x08\x1c\x71\xa0\x29\x45\x52\xca\x21\x6f\x9e\x01\xec\x1f\x6e\x2e\x47\xae\xea\x81\xce\x46\xbf\x90\x03\x1c\x43\x4f\x95\x96\xd8\xc8\x49\x6c\xbf\x1d\x1d\x63\x25\xd6\x2e\x53\xd6\x5f\x48\x84\x7e\x98\xbb\x19\x98\xdc\x53\xff\xac\x89\xd8\x94\x5d\xc9\x64\xf2\xa1\xa3\xf1\xd5\xe8\xce\x52\xfb\x98\xb3\x44\xd5\xb5\x99\x3b\x4b\x2d\x9a\x54\xf3\x79\x95\xf7\xe0\x67\x03\xd1\xcb\x1f\x67\x46\xe6\x08\x0d\x11\xd7\x16\xbb\xe1\x33\x71\xca\xff\x34\x90\xa4\x63\xbb\x49\x45\x81\xae\xff\xc4\x09\x85\xe3\x32\x24\xbd\xb3\x73\x9a\xbf\x09\x53\x45\x68\xe8\x4d\x21\x0e\x07\x6e\xed\x09\x76\x6a\x13\xf6\x98\xa9\xb5\x48\x92\xa6\x23\x53\xaa\x84\x73\x66\x0a\x7c\x10\x39\xc9\x9c\xf8\x78\x3e\x0c\x53\x88\x7d\x71\x81\x29\x66\x82\xe1\x17\xfd\xd7\x49\xca\xfe\xdf\xf8\x2e\xb1\x79\x27\x80\x88\x26\xc5\x02\x64\x4d\xbb\x4d\xcb\x18\xd9\xb8\x14\xf2\xff\x84\x8b\x6d\x20\xa7\x8e\xf6\xea\xfa\x2b\xc1\x9f\x10\xfc\xf7\xbc\x11\x13\xef\xbf\xfa\xf6\xaf\xcb\x9f\x88\xd4\x6f\x8d\x4d\xf3\xdf\xc9\x54\x5b\xda\x3b\x63\xaf\x7f\x4d\xf8\x7b\xba\x89\x79\x3d\xb4\x1f\xb4\xa2\x07\x2c\x44\xf9\xce\x7a\x95\xa7\x76\x33\x70\xda\xfd\x3e\x4a\x3c\xe8\x14\x7a\x80\xb9\x74\x03\xc4\xd1\x36\x8f\x58\x3f\xa3\x39\x38\x56\xa0\xc8\x73\xd7\x47\x5b\x06\x42\x2c\xcc\xec\x4f\x71\x76\x1e\x73\x71\xbf\xae\xde\x13\x7f\x59\x9b\x82\x95\x11\x27\xd4\x7b\x1b\x6b\x83\xfc\x6b\xd3\xe3\x0b\x22\x36\x77\xd6\x81\xd9\x32\x50\xea\x59\x76\xdd\x8a\xf8\xdd\x57\xfe\xaa\x30\x1b\x93\xf8\x6c\xf2\x6a\xf3\x8e\xd4\x4f\x35\x97\xf6\xf7\x1d\xe9\x12\x77\xcf\x0e\x5c\xf0\x9f\x76\x1d\xe1\xe2\x1b\x22\xee\xda\xfa\x59\xd5\x34\xdd\x2b\xe6\x74\x6e\xaf\x81\x7f\x77\x9e\x77\xd0\xfe\x07\xd5\x6d\xdc\xa9\x6d\x70\x4b\x18\xe1\x4a\xbe\x12\xd5\xe6\x9d\x6a\x47\xba\x17\x2d\xff\x41\xcf\xa3\xd7\x5a\x4f\x30\xec\xe9\xb5\xa8\xb8\xc8\x2c\x22\x6c\xf3\x15\x4b\x4b\x97\x41\x3a\xbe\x9f\x2a\x2a\x1c\x94\x74\xe9\x06\xdb\xa5\x20\x06\x3c\x05\xda\x9f\xc2\xf3\x23\x79\x4d\x59\x27\x2a\x26\xa8\x0f\xd8\x0f\x02\x1d\xa4\x0b\x04\x7c\xde\xab\x8c\x1a\xe7\x3c\x97\xc3\x4c\x51\x98\x53\xe8\xca\x3a\x56\xbc\xce\x6f\x6b\x81\x16\x83\x9e\xd5\x26\x82\xf2\x17\x7d\xac\x64\x94\x31\xde\xe3\x91\x73\x1c\x73\x79\x3e\x65\x9a\xe3\x3c\x9f\xd5\xd9\x0f\x7d\xef\x65\xce\x81\xb3\x01\x8e\xbc\x83\xa3\xef\x65\x36\x79\x9a\x21\xdb\x83\xd9\xd0\xfa\xec\x1a\x5f\xcb\xfb\xbe\x9c\x98\x33\x22\xbc\x26\x46\xe5\x3a\x71\x6a\x23\x0e\xb1\x39\x39\xf2\xf4\x9a\x98\x10\x04\x6e\x12\xbf\x31\x70\x91\xb0\x57\xa9\xeb\x81\xcd\xe7\x85\x7e\x05\xc4\xe4\x07\x2d\x6d\x22\xcc\xa4\x49\xbc\x39\x2e\xca\x8e\x6e\x50\xdd\x92\xee\x87\x87\x2d\xf9\xea\x67\xda\x81\x82\x32\x34\xae\x45\xe8\xf2\x77\xe2\x25\xc6\xf4\x2a\x08\x64\x49\x0d\x87\x56\x27\xc3\xed\xb9\xfa\xd8\xfc\x15\xb4\xfb\xb6\x65\xa4\xa0\x0b\x5a\xa3\xf9\x1c\xfe\x37\x6c\xb5\xa5\x37\x2f\xeb\x82\x63\x8a\x10\x86\x77\x4c\x37\x9d\x68\xcd\xb7\xbe\x30\xd1\xe2\xed\x8e\x36\x75\xa1\x59\x10\x8e\x69\xbd\x54\x8d\xbc\xa5\xae\x5a\x84\x79\x9c\xb0\x0e\xaa\x8c\x32\x76\xe0\x2a\x70\x7b\xa5\x90\x36\x3e\x9c\x40\xca\xf3\x9b\xab\x29\x66\xf7\x21\xc7\x83\xff\x08\xe4\x06\xd5\xdf\x55\xf6\xa9\xcb\x98\x6d\xdc\x79\xfb\x85\x98\x13\x72\x93\x96\x5c\x26\x49\xfd\x06\x79\x43\x59\x9d\xc3\x69\xf5\x3c\xd8\x46\x19\xff\xf6\x8c\x4b\xab\x33\x70\xd0\x42\x20\xdc\x95\xaf\x0a\xb0\x03\x34\x0e\xc6\x4d\xdb\xbe\xdb\x6d\x8b\xce\xaf\xb7\xe4\x3e\xd3\x96\x0b\x96\x7d\xd1\xf2\x97\x35\x7c\x7b\xf5\xd4\xfa\x17\xf8\x01\x1b\xc5\x18\x81\x65\x01\x6e\x9f\x7f\xf1\xaf\xa6\x9f\xec\x99\xd4\x39\x1a\x68\xbd\x9c\x7e\xb2\x17\xf2\x8d\x8d\x20\x87\x34\x86\x0f\x71\x1a\x05\xd5\x93\xbc\x4e\xd6\x06\xb9\x13\x16\xda\xe3\x36\xf6\x48\xb6\x12\x05\x5c\xc5\x61\xd2\xb3\x9e\xad\x44\xb8\x44\xb2\xe1\x2e\x67\x42\x6a\xdc\xb1\xb4\x23\x42\x92\x53\xb8\x46\xbf\x0f\xea\x28\xe4\x9f\x9a\xea\x15\xe8\x6a\x68\x7a\xcb\x02\x6c\xe2\x02\x18\xb9\x5b\xde\xee\x98\xf9\x1e\x34\xa9\xfd\x87\x67\x76\x94\x2f\x93\x57\x7a\xbc\xc3\x61\xfc\xbd\x9d\x8f\xcb\x21\xd6\x9f\x11\x1e\xd1\xa5\x12\x64\x13\xd1\x27\xdb\x44\xb0\x80\xc8\x14\xa7\xdc\xdc\x5a\x58\x91\x45\x98\xe6\xc1\xbd\x40\x38\x44\x1b\xf0\x56\xea\xf5\x38\x8c\x42\x24\x74\xe3\x0f\x90\x89\x28\x7a\xf0\xc6\xcc\x71\xa0\x53\x1f\xae\xe7\xbc\xa4\x86\x77\x87\x84\x29\xd2\xae\x92\xca\xfb\xcb\x51\x48\x49\x03\xa7\xba\x4b\x0d\x83\x8a\xa8\x5b\xcd\xb9\xd6\xf5\x28\x5c\x34\x24\xb4\xe7\x0d\xc6\x57\xd4\xa4\x9d\x08\x4e\x01\xc3\x62\x45\xd7\x0e\x47\xbf\x2b\x82\xa9\x54\xa0\x42\xd6\x1a\x6a\x63\x33\xd4\xca\xe4\x04\x9a\x30\xb7\x69\x7b\xa3\x8f\xa4\x2d\xc2\xf1\x06\xb6\x58\x41\x20\x3c\x70\xf6\x10\x79\xb3\xfa\x80\xe5\x2a\x34\x58\xd2\x9e\x7d\x12\x85\xc6\xa3\x4e\x96\x14\x37\x8f\x52\xdd\x5b\x24\x86\x91\x2a\x34\x66\xbf\x34\xb8\xa2\x2d\x98\x9d\xfc\xd4\xa3\xc9\xa7\x6a\xbd\x9f\xbe\xc1\x7b\xcf\x43\x2e\x37\xb2\xa4\x47\xad\x8f\x34\xa3\xe6\x57\x52\x85\x36\xc2\x68\x1d\xbf\x2d\x29\xe2\xcc\x35\x60\x2f\x5a\x34\xb4\x2e\x37\xba\x46\xa9\xd1\xfb\x53\x24\xb1\xce\x4f\xca\xdb\x0f\x53\xba\xf0\xd9\x05\xc1\xfb\xd0\x60\xe6\x7c\x4e\xd3\xfa\x3d\x44\xea\x8d\xcc\x58\x05\xf4\x4a\xdf\x20\xe3\xa3\x10\x10\x36\xe3\x13\x84\x89\xae\xc5\xa9\xce\x09\xd6\x65\x25\x22\xa4\xf7\x39\x37\x73\xd8\x4a\x02\x6c\xbd\x78\xc2\xbc\xa6\xd2\x66\x27\x2a\xb3\xe7\x68\xc5\xd6\x41\x36\xda\x81\xf0\x02\x9e\x4e\xe5\x87\x3b\xde\xee\x6e\xef\x5e\x04\xf2\x93\xa3\x32\xc1\x15\x7d\x92\xb8\x32\x21\x8b\x30\x17\xa4\x65\xbe\x48\x10\xea\xde\xc7\x67\xa4\xa9\x09\x18\x68\x7a\xa2\xdc\x22\x5e\x23\x83\x0b\xd6\xa5\x51\xdf\x6b\xa3\xef\x7c\x7e\x96\x1a\xca\xa0\x5c\xc5\x7c\x6e\xfe\x02\xb4\x60\xea\xdf\x38\x37\x27\x20\x88\x08\x39\x8e\xb3\x9e\xc7\x90\xb6\xcf\x3a\x04\x22\x21\x02\x91\x10\x81\x52\x06\x02\x0b\x99\xc2\xda\x5d\xaa\x09\x81\xf3\xce\x30\xd1\xe3\x89\x31\x4e\xc7\x36\xcf\x92\x38\x06\x30\xa8\xef\xf4\x06\x06\xa0\xec\x16\xa8\xcc\xa7\x21\xb1\xe6\xf2\x8d\x36\x54\xc6\x29\x59\xb0\x39\xfd\x7c\x49\x5d\x3d\x22\x21\xa1\x2e\x87\x99\x44\xb2\x9d\x15\xc2\x17\x2e\x61\x53\x28\x8a\x2f\x3a\xfa\x0f\x32\x9f\xff\xfd\x88\x47\x09\x58\x0d\x9e\x36\xcd\x77\xc1\xa7\xa4\x43\x61\x7a\xf6\xa8\x5b\xdc\x94\xda\x85\x9e\xf5\x79\x84\x66\x3e\x2f\xc0\xe7\x51\x07\x33\x30\xdc\x20\xe7\xb5\xd8\x22\x5c\xc9\xfc\x60\xd9\x7a\x45\x3d\xf7\x18\x17\x1f\x18\x2d\xd2\x3a\xb0\xf4\x0d\x36\xf0\x5e\x9d\x06\x5b\x61\x19\x65\xf4\x15\xd6\x93\x25\x31\x9f\x84\xdf\xa6\x14\x01\x40\xc7\x7c\xec\xa5\x71\x52\xa5\x50\xb9\xc2\xfa\x5f\x28\x7e\x68\xd3\x56\x0d\xe9\x36\xe4\x05\x10\x46\x7d\x16\x71\xeb\x9c\x62\x70\x15\x10\x97\x16\xe1\xbc\x73\x7c\x13\x86\xb7\x1b\x5f\xd2\x36\x74\x22\x25\xd6\x89\x34\x42\xa4\x49\xb5\xda\xad\xcb\x1a\x43\xda\xb7\xa2\xc6\x1b\x9b\xfa\x1f\xe1\x6e\x55\x2f\x68\xbd\x2e\x37\xde\x0e\x7d\xe7\x5d\x84\xf8\x22\xbe\xfe\xe2\x6e\x31\x71\xfd\x4c\xdc\x45\xc5\xdd\x8d\x25\x02\x07\x92\x9b\x14\x6e\xb9\xd5\x1d\xcf\xcb\x85\xab\xb2\x5b\xb5\x6a\xc2\x90\xe7\x4b\xff\x59\xb6\xb8\x42\x55\x7f\xfc\x16\x49\x3b\x9e\x75\xbd\xc5\x1b\x9f\xd1\x6d\xf7\xf9\xc6\x43\xae\x2e\xc5\x6a\xb7\x9e\x70\x0d\x8d\xc3\xc1\xa0\x69\x1d\xfa\xd6\x6e\x8b\x26\x58\xd1\xf6\x34\x17\x27\x7d\x57\x82\xc9\xaa\x2d\xbb\x15\x85\xb9\x83\x76\x33\x98\xaf\x02\x45\x21\x0e\x87\x20\xc4\xe6\xab\x9f\xb7\x90\xa8\x03\xae\x68\xaa\x73\x24\xbf\x25\xd3\x2d\x27\x1d\x61\xc6\xad\x9b\x4c\x0d\xd2\x4d\xb7\xbc\x7d\x4f\xeb\xff\x8f\xbd\x37\x6f\x6f\x1b\xb7\x16\xc6\xff\xf7\xa7\x90\xf8\xce\xa3\x12\xaf\x21\xc5\x4e\x66\xbb\xca\x30\x9e\x6c\xd3\xe6\xed\x64\x92\x9b\xa4\x4b\xae\xaa\x9f\x87\x16\x21\x09\x0d\x05\xaa\x20\x64\xc7\x23\xf1\xbb\xff\x1e\x1c\xec\x24\xb5\xd8\x4e\x66\xda\xde\xb6\xf3\xc4\x22\x76\x1c\x00\x07\xe7\x1c\x9c\x85\x64\xe6\x02\xc4\x9d\x8b\x95\xe8\x50\x01\x0a\x46\xac\x10\x9d\xa9\xc4\x86\x03\x49\xcf\x54\x74\x1a\x53\x37\xee\x05\xbe\x0c\x37\xde\x2c\x39\x79\x38\xfb\xae\x78\x38\x3b\x3e\x46\x97\xa3\xd9\x38\x49\x47\xb3\x71\x9d\x78\xc9\xe1\xcc\xbf\x45\x4e\x07\xfa\x22\x39\xc1\xd7\x49\xbc\x48\xd8\x40\x52\xda\x4b\x6d\xc1\xf5\x43\xc1\x7f\xd0\x87\xe0\x6c\x6b\x8e\x22\xc4\x2f\xd1\x70\x74\x39\x46\x06\x82\x17\xdf\x5d\x3f\xbc\x90\x10\x34\x3d\x9c\x27\x8b\xd1\xc5\x18\x5f\xc1\x1f\x73\x6a\x9e\x7b\x83\xbf\x42\xf8\x63\xf8\xf9\x2a\x39\x79\xf8\xea\xbb\xab\x87\xaf\xcc\x4a\xbc\x4d\xce\x47\xaf\xc6\x35\xcf\x57\x47\x1f\x47\xaf\xc6\xc9\x5b\xfc\x1c\xfe\xc8\x7b\x8e\x4e\xe3\xab\x47\xa7\x28\x08\xe1\xf6\x82\xc4\x0c\x73\x2c\xf0\x73\x4c\x70\xde\x88\x06\x27\xb7\x02\x68\x2f\x57\x08\x0d\x26\xa9\xa8\x6b\xd1\xe9\xc8\x55\x08\x55\x28\xfe\xa8\x54\x9c\x3b\x74\x1a\x4b\x7e\xe7\xb9\x21\x25\xd6\xf3\xb8\x1c\x7d\x1c\x9d\x8c\xe5\x26\x41\x55\xa5\x1e\x1b\xcc\xfc\xdf\x25\x27\x0f\xdf\x7d\x57\x3c\x7c\x77\x7c\x8c\x24\x25\xf1\x6e\x8c\x94\x5c\xd0\x04\xcb\xf6\x88\xd3\x57\xb1\xa2\xa0\x63\xe1\x94\x65\x6a\x4c\x2d\x47\x83\x7a\x00\xec\x25\x21\x1f\x9a\x84\xae\x0e\x49\x45\xb5\x6a\x68\x1b\xeb\x0b\xee\xde\x34\xa1\xfb\x0a\xbe\xb6\x74\x9a\x86\x41\x8a\x3c\x0b\x70\x10\x57\x79\xcc\xbe\xee\xbf\xed\x6a\x3d\xaa\x13\x74\xac\x66\xc7\xda\xbc\xcf\xab\xda\x80\xbd\xe9\x29\x09\x8a\x02\x57\x36\x94\xb3\xac\xb0\x79\x14\x52\xef\x11\xcd\x48\x5b\x48\x62\xeb\x5e\xef\xf7\x5e\x21\x37\x88\x6e\x17\x5e\xa9\x5c\xe0\x62\xfd\x36\xd5\xe8\xf9\x55\x4c\xf6\xad\x90\x0f\x2c\xab\xb0\x78\x67\x9a\x74\x1b\x43\x78\x28\x71\xea\x05\xe0\xd9\xae\x40\xd7\xc2\x03\xf1\x16\x1e\x28\x50\xcd\xa4\x3a\x02\x53\x0e\x46\x21\x0d\x87\x77\xec\x8c\x0d\xd9\x60\xce\xc9\x14\xaf\xb4\x06\xa7\x19\x86\xc0\x29\xce\x31\x45\x78\xb2\x95\x09\xd2\x45\x8d\x1e\xa7\xc7\x35\xff\xae\xa3\xb0\xac\x0a\x49\xf6\xbb\x9f\x0d\xf3\xb3\x4a\x7e\x89\x57\xc9\x93\x78\x85\x05\x9e\x20\xfc\x43\xfc\x27\xcc\xd1\x21\xfa\x4e\x66\x1e\x75\x5d\x4c\x3d\x04\xc7\x11\xb1\xe4\x47\xa2\x5c\x60\xc8\xb1\x37\x94\x33\x77\xf0\x36\xf5\xf1\x6b\x65\xba\x60\x1e\x2d\xbc\x0f\x09\x7c\xd3\x68\x71\x9c\xd2\x1b\xdc\x1d\x57\xc9\xae\x73\xe0\xc0\xc7\xdb\x23\xe6\xd6\x1d\x8d\x83\x40\x1e\x3e\xdf\xa5\xa1\x12\xa8\x64\x6a\x67\x42\xc3\x02\xcf\xd3\x20\xb4\x20\xc9\xb4\xab\xcc\x61\x2a\xb3\x1e\xb3\x6b\xff\x3d\x0a\xa2\x73\x95\x38\x6c\x09\xf6\xf4\x30\xc7\x65\xdd\x15\xd3\x70\x55\xd5\x5d\x2c\xe1\x49\xf2\x47\x13\xbb\x09\x29\x1f\x44\xa0\xdf\x07\xbe\x80\xe5\x0f\x25\xbe\x27\x59\xaf\x17\xb7\x38\x13\xa5\xfe\xee\xdb\x6c\x2c\xcd\x4b\x2c\x57\xb3\xda\x6c\xd2\xcd\xa6\xd8\x6c\xba\x93\x5e\xaf\x9b\x87\xde\x02\xc2\xad\x5b\xeb\x11\xe0\x7c\xa4\xa8\x92\x52\xd6\xc5\xf3\x24\xdd\x6c\xf2\x5e\xaf\xa6\x5f\x6b\xfa\x22\x9a\x81\xd2\xf6\x64\xa0\xe5\xbf\xea\xf5\xba\x45\xaf\x17\x67\x9b\xcd\x5c\xe3\xe6\xa9\x1e\x5d\xe8\xd7\x72\x6b\x40\x39\x82\x42\xb4\x6a\xf1\xcf\x54\xee\x16\x3a\x8d\x61\x6c\xb2\x79\x68\x7d\x79\xb7\xd6\x5b\x78\xef\x25\x66\xf6\x8a\x68\xdf\x68\xd5\xce\x00\x72\x96\x8a\x1d\x8d\xbd\xc8\xf6\x44\xb3\xa3\xb1\xb8\xf1\x80\x41\x5b\x73\x67\xe4\xc9\x5f\x19\xfb\xb9\x81\x1c\x80\xff\x6c\x61\x25\xe6\xf2\x11\x48\x47\xb2\xa0\x1a\x6d\x7c\x3e\xec\x67\x07\xe0\xe1\x3f\x15\xe4\x32\xde\x86\x07\xf5\x43\xc1\x6e\x6c\xb8\x63\x2e\x37\xc5\x80\x72\xef\xd9\x61\xfe\x48\xd9\x07\xa5\x7b\x50\xc7\x81\xfe\x6e\x6a\xc7\x1a\x67\xf6\xc8\xf8\x6b\xd4\x76\xd0\x2d\x3c\xc9\x19\x69\x84\x86\x44\xc3\x96\x8d\x0f\x19\xd5\xbe\xc8\xa6\x07\x23\x6c\x68\x4e\xa3\x6c\x75\x22\xce\xf6\x1d\x05\x3f\xd2\xe8\x3f\x1f\x36\xc7\x59\xb2\x03\x99\xd7\xf1\xb2\xc4\x96\xb4\xd7\xa3\xbe\x70\x1b\x59\x81\x65\x20\xeb\x71\x12\x58\xea\xaf\x14\x34\x51\x7b\x7b\x39\x70\x27\x01\xd8\xe7\x12\xcb\xc3\x60\xf0\x54\x23\x7a\x05\x61\xbc\x4c\x6a\x17\x8b\xf2\xcd\x60\x3f\x03\x4c\x3f\xdf\x6c\xa6\x76\xe4\xcb\xb3\x6d\x2b\xbd\xe3\x7d\x89\x9a\x11\x2d\x92\xee\x52\xb9\xd7\xb5\x5d\x0d\x68\x66\xc5\xb8\xbd\xde\xa2\xad\xf9\x10\x28\x43\xda\xeb\x75\x97\xad\xaf\x09\xd4\x6e\xfb\x26\x2c\xb7\x6f\x78\xe5\xe3\x21\x78\xbe\x5b\x57\x47\xf0\x02\x19\xfa\xbd\x02\x2b\xee\x3d\xbe\xb1\xcc\x86\x2f\xea\xba\x8b\xda\x95\x04\xd5\x41\x1e\x01\x2d\x78\x3d\x7b\xa7\xff\x75\xbc\x0b\xdb\x07\xaa\xfb\x47\x34\xa1\x9b\x8d\x68\x73\x93\xbc\xdf\x6a\xd2\xee\x93\xc3\x35\xfb\xb5\x3b\x0c\x9c\xea\x31\x1d\xa4\xd6\xaf\xbc\x77\x68\xd3\x9f\x1a\x9a\x2f\xb6\x29\xf5\xa7\x16\xc3\x6b\xa7\x1c\x70\xa5\x9d\x6b\x19\x9f\xdd\x31\x67\x74\xd0\xe2\x84\xa3\xc4\x05\x1a\xd2\xe4\xf6\x70\xc1\xb2\x05\x4c\xf7\xd8\x07\xa8\x89\x81\x41\x53\xf3\x36\xa8\xdd\x01\x7a\x9b\x6d\x7d\x2b\x6e\x52\xb5\x10\xa6\x76\x5d\x05\x2f\xe2\x8d\xfd\x98\xee\xdd\x8f\xf8\x65\xcb\x76\xb2\xde\x0f\x02\x3b\x90\xf4\x66\xfb\xc0\xbe\x13\x15\xd0\xa4\xdd\x0b\x69\xf2\x24\x4e\x77\xed\x05\xf7\x6a\xd4\xb2\x23\xb6\x9a\x79\x14\xe1\x8e\xa8\xbf\x01\x1d\x6c\x80\xe6\x0f\x41\xad\x1d\xb5\x3e\x5d\x71\xba\xe7\xda\x54\x3c\x2a\x18\xba\x87\x82\x8c\xa3\x26\x96\x06\x2b\x13\x1d\xb6\xcd\x59\xd7\x08\x43\x0e\xe8\x46\xb4\xb7\xc1\x4b\x17\x31\x31\x54\x88\x80\x70\xa8\xe1\x2b\xfc\x76\xeb\xf9\x13\x84\x5f\xc7\x3f\x90\x98\x99\xcd\xc7\x5d\xf4\xc3\x86\x4d\x0f\xb7\x82\x05\x30\xca\xb5\x0f\xef\x71\xf8\xc6\xfe\x38\xcf\xeb\xcf\xee\xc6\x35\x17\xa6\xc8\x7b\x2c\xf7\x8a\x43\xac\x57\x23\x34\x38\x8b\x6f\x36\x60\xf3\x5c\xcf\xdb\x9e\xeb\xdb\x12\xb7\x3e\xd7\x3f\xce\xf3\xed\x6f\xf5\xde\x24\x24\x5b\xb5\x73\x8c\xb5\x11\xe2\xe0\x29\xb8\x7e\x52\x04\x42\xa8\xe9\x15\x61\x8b\x56\xe7\xa0\x5e\xb0\x32\x7b\xc5\x72\x19\x8d\xed\xd5\xd2\x4a\x8b\xcf\x04\x61\xd4\x5c\x82\xc6\xb4\x28\x28\xb0\x34\x25\xc8\x9a\xda\xfa\x2e\x12\xa0\x5f\x93\xc3\x51\x55\x4d\x69\x2e\xc0\x65\x57\x65\xae\xdd\xb7\xe9\x65\x4d\x7d\xb8\xa1\x02\xc2\x35\x13\x7c\x6e\x34\x7f\x7f\x58\xe5\xf9\xb5\x8b\xe8\x67\x8f\xaf\x45\x34\x58\x78\x6f\x50\x2d\x51\xcf\x9a\x1a\xa6\x4a\xa6\xbe\x36\xee\x19\x87\xcc\x3d\x6f\x89\x0a\x61\xef\x6d\xea\x15\x9b\xec\x78\x9f\x7a\xed\x9a\x44\x55\x3d\xa5\xdd\x23\x0a\x74\xaf\x23\x6d\x1f\xb5\xa9\xbe\x7a\x96\x28\x27\x98\x3b\x41\xbe\xf8\x8e\x83\xef\x15\x6b\x7b\x22\xc6\xe0\xc4\xda\x4c\x02\x17\xe0\xd1\x5a\x4d\x03\x1e\xe6\x42\xba\x19\x97\x0d\x6c\x91\xfa\x1c\x48\xae\x49\xbc\xa3\x88\x17\x85\x71\xc7\x96\x0d\xca\xf4\x52\x45\x61\x4a\x83\x80\x36\x2e\xee\xcb\x59\x9c\x27\xe9\x00\xc2\x41\xc5\xe8\x2c\xf2\x35\xd7\xa2\x61\xea\x07\x63\x3c\x8b\x7c\xad\xaa\x68\x18\xf9\x5e\xf3\x23\x6c\x1f\x22\xe2\xf7\x24\x56\x50\x06\x4e\x12\xa1\xa1\xcb\x42\x55\x95\xd1\x4c\x82\xaa\xe5\x66\x3c\x12\xa0\xa3\xa7\x1f\x74\x35\x1e\xd3\x02\x54\x78\xe1\xf2\x5e\x96\xc3\xb1\xa8\x80\x35\x0c\x1e\xf6\xbd\x41\xf9\x1a\xf7\x98\x21\x6c\xb7\x97\x8b\x28\x60\x35\xfe\xff\x92\x96\xda\xd5\xba\x19\x93\x5f\xda\xf3\x57\x2f\xbc\x1a\xda\x51\xba\xbc\x1a\xfc\xd2\x2a\x59\xb4\x6a\xea\x1b\xd9\x6c\x8b\x96\xfe\x39\x78\xfb\xb6\x47\x17\x64\xef\x9a\x05\xa6\xb1\x9c\x3d\xc2\x0c\xc4\x4b\xe0\x65\xb9\xae\x5c\x26\x30\xa8\xa0\xa9\xe5\xd7\x4f\xb9\xca\xbd\x77\xfb\xc2\xe3\x32\xd1\x68\x37\xc8\xd7\x8f\xdc\xbd\x5e\x17\xb8\x82\x72\xb3\x51\x76\xc6\x9d\x3c\xe1\x7e\x4c\xc8\x95\x15\x6d\x6f\x81\x78\x8e\x09\x3a\x5a\x75\xcd\xf3\xed\xaa\x39\x62\x79\xbd\xfa\x9e\xc3\x6d\x7c\x55\x5c\xea\x87\xda\x03\xc2\x81\x80\xcb\x10\xed\x0a\x2b\x70\x1a\xa3\xd3\xb6\x79\x1c\x71\x61\x59\x48\xc8\x37\x68\x6e\x45\x9c\xc9\x1f\xc3\xd0\xa5\xa7\x69\x34\xd4\x7b\xdd\xaa\xc2\x09\xd4\x17\x18\x72\x2b\x63\x5d\x15\xe1\x1b\x22\x4c\x01\x72\x60\x75\xe4\xe0\x46\x1e\x32\x54\x0c\xdc\x04\xd1\x69\xdc\x2a\xb8\x43\x6b\x9e\x04\xa2\x3b\x7d\x74\x9c\x40\x9f\xeb\xb8\x56\xe0\x0a\x4a\x75\x45\x47\x62\x9c\x6c\xeb\x4f\xb5\x06\x9d\x5a\x0b\x69\xef\x8d\xc5\x32\x73\x1a\x46\x3b\x5b\x41\x95\x86\x5b\x2d\x53\x1e\x19\x2f\x7c\x8e\xf1\xd4\xa1\x8e\x00\xac\xe8\x6b\x45\xc4\x79\xa4\x17\x66\x3a\x6e\x1f\x4b\x44\xc0\x78\x69\xb7\xb7\xa1\xf8\x48\x1b\xd9\xb0\x84\xe0\xd6\x02\x51\xba\x5c\xe6\xda\x8a\x42\x12\x96\x03\xbf\x53\x45\x22\x22\x1d\x26\xdb\x8f\x5c\x1f\x72\x6f\x46\x81\xd1\x48\x61\xb9\xab\xb4\x5d\xbc\x67\x2a\xb9\x12\x4a\x6e\xb4\x43\x68\xb8\xae\xbd\xed\xcc\x88\x78\x72\xed\xe5\x37\x2b\xbf\xd8\x62\x5c\xb3\xe5\x95\x88\x49\x74\xa5\xc1\xe3\x3f\x9e\x55\x65\x80\xad\xd1\x3a\xb0\x5a\x7c\xd3\x08\xe5\x50\x9d\xfb\x77\x88\x89\x43\xe5\x2f\x72\x3d\x5f\x49\xd3\x3c\x1d\x2a\xa5\xd3\xd5\xb0\x3b\x09\xf5\xaa\x9d\x89\x96\x61\x71\x0c\x7d\xf3\x0b\xe9\xf5\xe2\x5f\x48\x22\xe2\xe8\x7b\x22\xe9\xb6\xbe\xdc\x87\xf7\x14\xe6\x50\xbf\xfb\x4b\x4e\x2f\x53\x41\x22\x34\x70\xad\x99\x20\x0a\xd7\x0e\xc4\x5b\x6d\x8e\xb4\xc9\x16\xc4\x37\xc2\x39\xcd\x86\xac\x0a\xfc\xc5\xff\x42\xc0\x4f\x43\x75\x7e\x5e\x33\x28\x33\x48\xea\x90\x4e\x5a\xe9\x40\xd3\x92\x00\xe7\x59\x0d\x73\x35\x13\x4b\x45\x93\xfa\x27\xca\x29\x42\xcc\x5b\xf5\xbd\x35\xd4\xe5\xf0\xb5\x5b\xe4\x40\xd9\x9b\x37\x95\xbd\xd1\xb0\x81\xc6\x09\xc2\x3f\xc5\x60\x6d\xc9\x17\xb0\x7b\x5a\x1e\x7d\x5b\x4e\x1f\xb7\x4c\xb0\x2f\xe0\xb0\xf2\x5c\xd7\x1a\x95\x3c\x14\x23\x57\x4f\x75\xb4\xa5\xd8\xb7\x34\xb1\xbe\xd6\x5a\x8e\x48\xe8\x53\xab\x0a\xf8\x2c\x8f\xd6\xc6\xeb\xc0\x5c\x6a\xc8\x2b\xab\x8c\xa3\x23\x90\x30\x1b\x67\x42\x23\x1d\xeb\x20\xee\xd5\x15\xb3\x91\x03\x2d\x89\xdd\x4d\x92\x98\x49\x7e\x48\xc1\xc7\xb8\x71\x19\x46\xc7\x92\x55\x68\x30\x75\xcc\xb8\x28\xd5\xea\x44\xca\x46\x41\xa1\x3a\xbf\x41\x15\x4a\x4e\xe3\xab\xcd\xa6\xd9\x7e\x80\xce\x0e\xef\x28\x68\x17\x3a\xd6\x92\x27\x8f\xdc\xdc\x6c\xa2\xfe\xdf\xcb\x82\xf5\xd3\x25\x8d\x42\x05\x2d\x35\xb8\xf4\x8c\x8f\xd2\x71\xdb\xa8\xa2\xe3\x14\x0d\x55\xd1\x80\x35\xdc\x36\x9a\x51\x0a\xb3\x47\x43\x30\xd7\xf0\xba\x6d\x6d\xdd\x65\xfb\x3e\x7c\xb7\xb6\xed\x37\x07\xbd\x54\xe1\xa6\xac\x6f\x8c\x9a\x81\xdc\x01\x7b\xc3\x77\x2b\xb8\x63\x77\xa4\x76\x26\xae\x8b\x4f\xbc\x41\x5a\xbb\xf8\xa4\x7b\xa4\xc9\x92\xd4\x35\xfc\xd5\xc0\x62\xef\xc4\xc4\x25\x8e\x32\x32\x4d\x57\xb9\x78\x6b\x87\x15\x21\x74\xc6\x47\x74\xbc\x65\xd0\xd1\x31\xbd\xd9\x16\xa2\xe1\x16\xd2\xfd\x45\xdb\xda\xb7\x05\x0e\xdc\x43\xb6\x3d\xb5\x85\x9c\xf3\x2d\xc3\xfb\x11\xe7\x2e\xd3\x47\x2d\x21\x81\xea\xe7\x8c\xc8\xf8\xa8\xe5\x75\x58\x18\xd3\x55\xe5\x61\xdb\x7a\xe1\x32\x3a\x1b\xae\x9b\xda\x46\x0d\x04\x4c\xf5\xcc\x11\x6f\xed\x8c\xb9\xce\x98\xd7\x99\x5e\x4f\x30\x66\xf5\x92\x43\xb7\x68\x2a\x37\x48\xdb\x66\xd7\xea\xda\xc0\xe6\x0e\xcc\xc2\x3a\x4e\x8c\x81\xaa\x73\xc3\x5d\x38\x92\x03\xf8\x94\x38\x88\x28\xda\x66\x68\x5a\x8b\x2a\xda\x4e\xa5\x37\xb2\x6e\xe4\xc3\xe3\x4f\x2d\xdd\x02\xb9\xbb\x35\xd7\xdf\x23\x3b\xc6\x8e\xb7\x08\x0f\xc8\x48\x8c\x95\xe8\xe2\x69\xca\x0a\x46\x27\x69\x1e\xa3\x23\x2f\xac\x68\x6b\xd4\xd4\x36\x50\x85\x12\x74\x07\xab\x7d\x7a\xbd\xc1\xd4\xc2\x46\x6a\xf3\xae\xc9\xe8\xb7\x4e\x3c\x2c\xb7\x73\xe6\xdb\x03\xbf\xfa\x30\x70\xaa\x95\xef\x1b\x9e\x04\x58\x5d\xaa\x52\x24\xcc\xf3\xe2\x14\x3c\xb7\x14\x37\xf0\x81\x34\xe2\x63\xf5\x4c\x82\x10\xce\x93\xba\x3c\xbb\xb0\x36\x15\x46\x3e\x9d\xb2\xac\xa3\xdc\x0f\x74\xd2\x8b\x62\x25\x40\x73\xdb\x98\x8b\xc8\xa1\xc3\x73\x34\x75\x8f\xe8\x65\xf2\x8b\x7d\x74\x59\xa9\x47\x74\xea\x3f\xa2\xc7\x62\x07\x1f\x5a\xe0\x12\xaf\x8e\x24\x55\x1c\x17\xc9\x1f\xc0\x0e\x03\xde\x5b\x24\xb1\xcd\x11\xb2\xfc\x69\xaf\x17\xaf\x92\xc2\x39\x9e\x02\x4f\xc8\xc0\xc3\x61\x31\x08\xe5\x36\x14\xab\x78\xa7\x65\x85\x39\xc2\x2b\x89\x9f\x14\x73\xac\x92\x41\x22\x6f\xda\x19\xae\x2a\x54\x21\x4c\x11\x0e\x14\x21\x15\x9d\x4a\x7a\xbd\xae\x7a\x97\xa4\xe5\x63\x2f\x06\x64\xaf\x17\xf9\xa1\xef\x22\x28\x32\x29\x32\x72\x16\xf3\xa4\x05\x7b\xe5\x03\xa2\x60\xab\xfc\xd7\x9c\xd5\xbe\x63\x37\x65\x34\x7c\x16\x13\x15\xc1\xb2\x54\xe1\x68\x6b\xf2\x1f\x8a\x39\x26\x08\x0d\xbd\x2c\x25\xd1\xa1\x18\xe2\x48\x82\x69\x40\x85\xf0\xca\xd3\xe2\xfd\x63\x40\xf5\x5e\x6f\x17\x3c\x28\x78\x9e\x75\xb5\xb1\x02\x27\xd9\x6a\x42\x62\x88\xe3\x9a\x3c\x12\x9b\xcd\xff\x23\x8a\xa3\x41\xce\xdc\x40\x12\xfa\x43\x5d\x61\xb3\xe9\xea\x12\xba\x25\x57\xcc\x0d\xe6\xff\xd5\x84\xb4\x62\x27\x97\xc1\x7d\x07\xf8\x5b\x39\x50\xe6\xb5\xff\xdf\xf5\xf6\xe5\x8d\x42\xa7\x71\x57\x69\x09\xc4\xac\xdd\xab\x5f\x8d\x2e\x22\x68\x30\x4d\x27\xa2\xe0\x20\xbe\x56\x91\x5e\x80\x04\xaa\x94\x35\xef\x66\x13\xb3\xe4\xcf\x44\x7d\xe0\x2e\x0b\x82\xbd\x99\xe3\x0c\x0e\x19\xe0\xe9\x7d\x40\x95\xf1\x2e\xa2\xee\x40\xf7\x7a\x5a\x3d\x7c\xc9\x0b\x51\xc8\x9d\x32\x98\xa7\xe5\xab\x2b\x66\x1c\xb3\xa8\xd8\x51\x14\x7b\x71\x66\xd0\x66\xa3\x2b\x29\x17\x8b\x36\xe4\x6f\x50\x0a\xaf\x2f\xd3\x7c\x25\x09\x42\x74\x24\x20\xe4\xb0\x15\x90\x54\x6a\x9e\xb5\xda\xbf\x27\x6e\x10\x96\x02\xd2\x1b\x3e\xc2\xf5\xb0\x37\xa9\xc9\xf0\x83\xde\x78\xc8\x73\x17\x59\xde\xa4\xc9\x2a\x84\x10\xfe\x33\x49\x9a\x01\x74\xbe\x20\x9b\x4d\xfc\x45\x83\x55\x86\x79\xfa\x4c\xf2\xb9\xc1\x8a\x2f\xe9\x47\xca\x10\xfe\x82\xd4\x42\x61\x38\x3f\x68\x7f\x75\x0a\x53\x76\x44\x49\x01\x5a\x52\x2a\x30\x14\x19\x7c\x20\xd7\x08\xfb\x6e\xfb\x88\x0e\x41\x18\x8b\x84\x0f\x4a\xca\x66\xab\x3c\xe5\x92\xf7\x83\xa8\x8b\xda\x97\xda\xff\xb4\xfb\x52\x83\x40\x56\xdb\x3c\xa9\x41\xf4\xa9\xc8\x44\xfc\xf5\xfc\x16\x35\x13\xb5\x0f\x21\x1b\x3a\xf7\xfc\x7c\x9e\x96\x4f\xd3\x7c\xa2\x5e\x8c\xb5\xda\x89\x75\xd2\xa0\xa2\xe4\x5b\x0f\xdf\xb5\x20\x5e\xaa\x6c\x4b\x9a\xe9\xc5\xcf\xaa\x37\x45\xea\x29\xe0\x9c\xe1\x03\xb9\xae\x07\x3e\x82\x98\x97\xe4\x5a\x65\x53\x96\xb5\xe6\x53\x96\xdd\x20\x52\xd7\x5f\x49\x6c\xeb\x22\x3f\x74\x18\xb4\xa1\xad\x34\xda\xfa\xd1\x59\x50\x8c\x35\xc3\x78\x41\x19\x99\x5e\xf9\xce\xa3\x3c\xec\xd0\x75\x24\x4a\x2b\xe0\x0d\x19\x37\x31\x19\x3a\x5d\xd9\xb4\x36\xd6\xb7\xaa\xbb\x86\xfa\x4c\x5d\xe9\xe6\xab\xf6\xc2\x56\x6a\xb9\x73\x47\x9d\x68\xce\xb1\xc0\x29\x2e\x71\x9e\xa8\x68\x96\x89\x85\x1b\x8e\x8b\x84\x5a\x0b\x19\xab\x4f\x53\x98\x3d\xb5\xd9\xc4\x92\xe6\x70\xce\xbf\xd4\x12\x7e\x20\xd7\xf2\x1a\xc3\xb9\xbc\x31\x73\x00\x3e\x66\x4e\x11\x28\x2e\x93\x38\x4d\x72\x64\x1a\xee\xf5\xec\x22\x0e\xc0\x73\x08\xda\x6c\x4a\x34\x8c\x75\x98\x67\x96\x74\x4f\x5b\xe0\x9c\xf0\x2d\xc7\x88\x55\x15\x19\xec\x50\xbb\x48\x9e\x12\x4c\x06\xcf\xc8\x92\x93\x89\xcc\xd2\x51\xfa\x92\x97\x32\x39\xa0\x09\x93\x2b\x99\xa4\xa9\x2f\x55\xf7\xad\x4b\x50\xb8\x3a\x79\x87\xc9\xc0\x6f\xfd\x31\x09\x13\x8c\xb7\x98\x37\x2e\xfd\x59\x2a\xd2\xb7\xbe\x5b\x9b\x3f\x40\x5e\x51\xa8\x97\x90\x64\x25\x3f\xcd\xbb\x66\xf2\xa3\xf7\xe1\x77\xf4\x1a\x4a\x81\x3b\x18\x85\xa6\x8c\x67\xa0\xdf\x87\xe8\x6a\x30\x18\x10\xcf\x25\x90\x0d\xae\xab\x10\xab\xba\x07\xf7\x39\xe1\xa9\x3b\xd8\xd8\x57\x3e\xf0\x6f\xb2\xb5\x70\xb5\xd5\xa9\x8b\xb5\x3a\x52\x62\x42\x13\x94\x63\x87\x94\x1a\xa7\x89\xe7\xaf\x08\xd7\x22\xc3\x17\xd8\x7f\x6a\x1a\x16\xc1\xcb\x13\x78\x37\x4f\x29\x23\x3a\xfc\xf7\x51\xe0\xf7\x22\x75\x46\xf4\xa5\x21\x20\x52\xdc\x26\x69\xb1\x71\x16\xd2\x81\x6d\x31\x30\x3b\xf4\x21\xae\xde\x09\x0c\x38\x52\x4f\xfe\x58\xae\x2e\xca\x09\xa7\x17\xf2\x20\xc3\x59\x4e\x1e\x35\x9d\xfd\xd2\x69\xec\x22\xa5\x96\xe0\x80\x16\xf1\x41\x18\x14\x54\x24\x8f\x74\x80\xb1\x89\x5c\x01\x90\x73\x62\x81\xba\x49\x83\x19\x09\x41\x59\x8f\x26\x2d\x5b\x04\x4f\xf9\xbc\xdd\xb9\x9c\x40\x95\x33\x07\x8a\x82\xad\xe2\x0f\x2c\xf0\xc7\x17\x0b\x4c\x2d\x93\xb0\x67\x3c\xf5\xc0\xca\x70\xb3\x9c\x6d\x1d\x4c\x18\x5a\xd9\xdc\xef\x34\x44\x31\xbd\x5e\xbc\xb5\x01\x5c\x0c\x74\x0b\x6f\xc8\xa2\xb8\x4c\xf3\xa7\x73\x32\xf9\x00\x14\x41\x31\x38\x5f\x98\x07\x19\x13\xdd\xb8\xd7\x6b\x4b\x1d\x70\x22\x38\x25\x97\xe4\xc7\x54\x90\x12\x82\x65\x79\x40\xd2\x81\xca\x01\x3a\x5b\x18\xc4\xdd\x6b\xa2\x79\x0b\x49\xec\xb7\x07\xe0\xd6\x6f\x50\x11\xbc\xba\x6a\x07\xc5\x5b\x66\x1c\xc1\x1b\x7c\x84\xf0\xf6\x7c\xfd\x14\x1f\x21\x34\x8c\xd4\x53\xac\x50\x5e\x8f\xb7\x6e\x8a\x88\x66\x11\x52\x3e\x9d\x15\x03\x8f\x10\x2e\x2b\x41\x52\x9e\x15\x26\x3a\x5a\xdd\xc7\xbb\xef\xa5\xc7\x97\x57\xd5\xcf\x0d\x38\xd7\x84\xd8\x6f\x80\xf8\xce\xf4\xdf\xa1\x00\x1d\x26\x39\x24\x43\x91\x9b\x47\xde\x23\xcf\xc3\xb9\x0a\xcd\xaa\x6c\x14\x7f\x2a\x54\xf8\x4f\xb0\x32\x04\x0b\xc3\xce\xb4\xe0\x9d\xdf\x7d\xb1\x26\xd5\xef\x34\xaf\xdc\x51\xee\x8b\x3a\x73\x50\x30\x2b\xc1\x6a\x51\x62\xa5\x9f\x51\xd5\x32\xb2\x16\x55\x9a\xff\xf6\xa3\xb1\x35\xd1\x2e\x28\x6a\xd5\x1c\x00\x35\x1b\xd1\x31\x46\x0f\x69\x6b\x87\xd7\x24\x4f\x36\xd7\xe2\xfa\xd2\x89\x4a\x19\x8e\x5a\xe2\x1a\xeb\xc0\xfa\x7c\x9f\x17\x2d\xdf\xf8\xbd\x79\x13\xe8\x18\x2a\xce\xc3\xd2\xb6\x61\x61\x5f\x78\xcb\xb0\x8f\xef\xd0\x51\xbb\xfd\x2d\x75\x01\x00\x14\xe6\x04\xd9\x29\xd9\x7e\x2d\x8d\x48\x10\x49\x7d\xaf\xf3\x2d\x7f\x6a\xad\x97\xe2\xc1\xb3\x3b\xe2\xc9\x76\x78\xab\xb9\x49\x8e\x30\x88\xbb\xdb\xde\x9f\x3f\x81\x9d\x0e\xb5\xe0\x10\x44\x7a\x3b\x97\x2a\xb9\x43\xcb\x4e\xc1\xf2\xeb\x4e\x7a\x99\xd2\x3c\xbd\xc8\x49\xe7\x6a\x4e\x58\x67\xb2\x2a\x45\xb1\xd0\xa7\x43\xd1\x17\x53\x92\x8a\x15\x27\x9d\x69\x9e\xce\x54\xb5\xa8\xaa\x30\x19\x9c\x5f\x50\x96\x25\x3f\xc8\x5f\xb3\x55\xca\xb3\xe4\x17\xf9\x53\x05\x2a\x7d\x51\x3e\xce\xe9\x25\x49\xfe\x84\xc9\x60\x52\x10\x3e\x21\x2f\xb2\x84\x61\x32\xc8\xe8\x74\xaa\xe8\x98\x6d\x21\xb5\xac\x5d\x39\xb3\x16\xcf\x98\x26\x2f\x53\x31\x1f\x2c\x28\x83\x77\x6b\x5c\x28\x12\x31\x4d\x4e\x1e\xa6\xdf\xd1\x87\xe9\xf1\x31\xa2\xd3\x98\x8c\xd2\x71\x37\x49\xc4\x28\x1d\xa3\x75\x91\xa4\x47\x17\x9c\xa4\x1f\x2a\x43\xbd\xf6\x7a\x4c\xa9\xed\x48\xea\xd6\x28\x26\x9f\xe0\x3c\x01\xbb\x23\x7d\xd0\x0a\x37\x94\x55\x42\xfb\x05\x9e\x24\xa7\x0f\x27\xdf\x25\xf4\xe1\xc4\x74\xc2\xfb\x13\xd5\x0d\xeb\x4f\xc6\x68\xbd\x4a\x26\xfd\x53\xdd\x55\x99\xb0\xfe\xaa\x5f\xe0\x3c\xe1\xf2\xaf\x5e\x9f\xf5\x94\xf2\x52\x28\x04\xf9\x82\x65\xe4\xe3\xb0\xc0\x69\x96\x91\xec\x69\xb1\x62\x02\xcc\x07\x16\xc5\xa5\xf9\xcc\x01\xb8\xea\xa6\x00\x48\xbd\x2b\xfe\x90\x96\xf3\xe4\x99\x4d\x95\x9f\xef\x8a\x3a\x14\x9b\x36\x43\xc6\x69\xd7\x6b\x65\x7a\x0d\xe2\xd6\x2d\x91\xd8\x79\xf2\xc8\xce\x9b\xe9\x0d\xba\x48\x3f\x10\xad\x82\x30\xe2\x63\xe3\xd5\x86\xb5\xc4\x38\x33\x82\xb3\x8e\x25\x42\x22\x9c\x26\xd1\x3d\x60\xed\xdd\xe1\xbb\x17\x1d\xf3\xa3\xe8\x22\x2d\xe1\x62\x52\x0b\x61\xab\x3e\x2b\x26\xc0\xda\xbb\x9a\x11\x28\xea\x81\x88\x4f\x50\x01\xb6\x19\x19\x11\x29\xcd\x87\x6c\x44\xc7\x58\xdd\x91\xc3\xf5\xb2\x80\xfb\x73\x98\x56\x15\x44\x07\x14\x12\x7c\xb0\x21\x6b\xce\x13\x9f\x60\x5f\xa1\xeb\xa9\xa6\x8d\x92\x6b\x4c\xdc\xdb\xaf\xe3\x89\x0b\x5c\x73\x85\x9a\xfc\x64\x53\x9c\x2c\x4b\xa6\xfb\x4b\xa0\x21\xff\x17\xed\x4f\xae\xc2\x61\x74\x04\x08\x21\x4a\x82\xc8\x03\x41\x00\xcf\xff\x21\xba\x52\x49\x44\xd0\xc9\x8c\x68\xbf\x90\x41\xcd\x49\x42\x1a\x85\x7f\xaf\x5c\xa9\xd0\x82\xb5\x54\xc8\x5a\x2a\xbc\x21\x65\x6b\xe3\xf3\x96\xb2\xda\x11\x76\xb3\xf0\x54\x15\x96\xf7\x63\xcd\x05\x33\x4c\xf7\xaf\xe4\x88\x0c\x56\xcb\x19\x4f\x33\x99\x6f\xb8\xad\xe4\x09\xc1\xed\xa2\x2f\x82\xa3\xf3\x73\x22\xef\xc6\x55\xee\x64\x5f\x10\x96\x17\xe8\x6d\x59\x38\x94\x20\x01\x13\x70\x0f\x82\x01\x45\x78\x14\x91\x8f\xcb\x82\x8b\x32\xc2\x2d\x85\xac\x98\x69\x8c\xe3\x10\x0b\x45\xab\x92\x74\x4a\xc1\xe9\x44\x44\x47\x37\x1d\xd9\xf6\xa9\x98\xe7\x3b\xbc\x26\x6c\xb5\x20\x5c\xa2\xdb\x61\xf7\x04\xcf\x88\x18\xb6\xc4\x98\x56\xdc\x5d\xb5\xab\xc5\xe6\x86\x3d\xb8\xf1\x66\xd5\x9d\x3d\xed\xdc\x5c\x07\x77\xba\xb3\x95\xc3\xfb\xf7\xf7\xdf\xed\xfa\xf6\x5b\x38\xbc\x5f\xff\x04\xde\xae\x5f\xbf\x85\xc3\xfb\xf5\xce\xe6\xed\xba\xf5\x1a\xd8\xd9\x6b\x0b\x5e\x3b\xb8\xc3\x96\xba\x55\xfb\x39\x95\x05\x53\x51\xf0\xf2\xde\xa4\x58\x2c\x0b\x46\x98\xd8\x75\x62\x5d\xf1\x95\xa0\xb9\xac\x94\xe7\xe9\xb2\x24\x7d\x90\x6b\xef\x28\x68\x13\xea\x27\x5c\xd2\xc2\x77\x3b\xe3\x64\x90\xa7\xd7\xc5\x0a\x84\xcb\xe9\x4c\x4b\x4f\xed\x15\xf7\x84\x82\x66\x76\x99\x10\xc5\x9a\xc8\xfc\xb6\xb4\xe0\xc3\x6f\xc0\xe8\x54\x83\x20\xa7\xc3\x92\xf8\x04\xf3\x81\x9d\xce\x5f\xa8\x98\xbf\x4e\x79\xba\x28\x51\x6c\xd4\xd0\x92\xd1\x58\x32\xd4\x74\x1a\xc7\x27\x18\x66\x22\x51\x0d\x92\x74\x74\xb7\xfe\xf8\xe0\xc9\x0e\xcc\xa8\x22\x84\xd6\x39\x11\x10\x54\xab\x91\x79\xd4\x36\xb5\x16\xbd\x56\xad\x9e\x3e\x1c\x8d\x2b\xd9\x56\x91\xd0\xd1\xc9\xf8\xec\xe7\x2f\xd6\xbc\x1a\x7e\xb1\x96\x1f\xd5\xcf\x43\xee\x1e\x7d\x1a\x8d\x5a\xd7\x4a\xe0\x34\x75\x30\x29\xd8\x94\xce\x56\xb0\xf3\x92\xee\x09\xc2\x4c\x32\xd1\x1e\x94\x98\x06\x10\xfd\xe4\x00\x6a\x2c\x9b\x0f\xa0\x46\xe6\x51\xdb\x3a\x1f\x04\x20\x6b\xf3\xee\xc0\xa4\xde\x50\xa3\x61\x84\x42\x68\x35\x7a\x38\x04\x5a\xf6\x75\xa4\x70\x24\x46\x13\x56\x6f\xc8\x3f\x56\x94\x93\xcc\xc2\x8c\xc3\xab\x60\x13\x58\xdc\xbd\x25\x21\x0c\xca\x26\x7e\x8a\x06\x90\x97\x24\xd9\x21\x36\x58\x49\x0a\x60\x2a\xe2\xc1\x60\x20\x3c\xcd\x6b\xbf\x54\xc2\x30\xaf\x30\x41\x95\x7f\x20\xa8\x5e\xde\x34\x29\xbc\x15\x91\xec\x5f\x70\x86\x52\x5d\xac\x0c\x8a\xb9\x85\x6b\x5d\x9d\x52\x57\xca\x65\xa5\x96\xe3\xd0\xba\xe7\x73\x5d\x69\xd5\xb2\xdf\x1a\x30\x54\x1c\xa8\x84\xc9\x88\x8f\x5d\x74\x30\xef\x39\xce\xa2\x0e\x8e\x49\x85\x23\xfd\x05\x7d\x9b\x9c\xd5\x91\xc5\x34\x4a\x7a\x9b\x3c\x12\xae\x51\xa7\xc3\xec\x35\xaa\x8b\x73\x2c\xaa\xdd\xc8\x57\xb1\x68\x37\xc1\xbc\x5b\x11\xea\xdd\xd1\x69\x31\x9d\x26\x64\x50\xb0\x84\x0c\x56\xac\xb8\x80\x80\xec\x12\x3d\xda\x9f\x01\x46\xe4\x89\xde\x97\x7b\x16\x00\xeb\x8d\x2c\x79\x1a\xb9\x39\x69\xa7\x98\x76\x18\x52\x8c\x0d\xf9\xb8\x4c\x59\xe6\x45\x46\xa7\x98\x5b\x99\x69\x9a\x65\xaf\x54\xd7\x5a\xd3\x17\x18\x71\xe4\x94\x6d\x79\x85\x23\x33\x38\x58\x32\x3b\x52\xee\xa3\xed\xcf\x3a\x48\xc5\x30\xee\x1f\xa7\x83\x28\x8c\xd4\x03\x70\x80\x41\xef\x3a\xd6\x34\xcb\x7e\xa4\xa5\x20\xf0\xc8\x6e\x62\x72\x89\x10\x62\x4c\xc1\x8a\xd9\xc3\x5d\x7c\x8a\x9e\x15\x20\xf6\x76\x3e\x9d\xaa\xde\xa7\xd3\xa4\xd8\x7d\x36\xd4\x7e\x37\x1c\xc2\x3d\xc0\x1f\xfd\x29\x25\x79\xd6\xcf\x48\x39\xe1\x74\x29\x4f\x81\x77\x68\xc6\xa1\x8e\x49\x70\x1c\x2c\x12\x96\xbc\x20\x9c\x5d\x98\x8d\x77\x7e\x1f\xc0\x5b\xb4\xf1\xd3\x16\xa9\x93\xe9\xa9\xe3\xa9\xb7\xb7\x2e\x48\x5c\x1b\x7e\x35\x24\x07\xdd\xa8\xc2\x6c\x15\xd6\xeb\x45\x8e\x82\x8b\x28\x93\x79\x91\x7f\x5b\x40\x9a\xe7\x03\x86\xa1\xea\x16\x27\x98\x96\x3f\x48\xf8\x3c\xb3\xe0\x49\x04\xa4\x7a\x09\x2d\xec\xae\x80\x68\xe6\x7e\x06\xc0\xc7\x83\xcd\x69\x08\x9b\x16\x65\xc5\x5e\x2f\xb2\xe8\x4f\xce\x45\xf4\x7a\x5d\x31\x38\x3f\xa7\xe5\x53\xad\xd8\xf0\xcc\xac\x6c\x25\x19\xeb\x43\x96\xbe\x4e\x64\x1e\xb6\xd2\xb7\x00\x9b\xbe\x5b\x03\xd8\xb4\x4c\x92\x0c\xbc\x47\x3d\x85\xed\x7b\xbd\x96\xc4\xf8\xb0\xe9\x39\x4c\x7e\x10\xe2\xdf\x77\x10\x3e\xf9\x75\xd0\x42\xca\xb5\xed\x1e\x9b\x34\x18\x0c\xb8\x47\xdf\x88\x60\xdf\xa1\x98\xa3\x33\xa2\xca\x0c\x15\x15\x92\x3c\x82\x6f\x30\x7f\xab\xea\xfd\x85\xe8\x67\x5f\xbf\xf6\x79\x5f\x75\xa0\x5b\xe6\x12\x09\xb7\x2c\xc5\xbd\x82\x67\x84\x93\xac\x5f\x92\x96\xab\xf7\x53\xee\xad\x23\xa0\xc6\x8e\x84\x7a\x1e\xae\x85\x88\x51\xf6\x30\x3a\xec\x6d\x29\x52\x41\x27\x1d\x2d\x4a\x0f\x24\x51\xb2\x5c\xa5\xcb\xa9\x4a\xca\x81\xe3\x84\xbc\x25\x62\xfb\x0b\x70\x4e\x4b\x61\x23\xaa\x94\xf4\x17\x92\x9c\x54\x10\xf5\x5d\xee\x0d\x39\x2e\x9e\x88\xcd\x46\x0b\xc0\x57\x34\xd3\x12\x7f\x2d\x26\xf7\xba\x30\xa6\x1a\xb2\x41\x6b\x5a\x22\x91\xda\x88\x8f\x25\xd5\x2b\xa9\x20\xa3\x38\x03\xfd\x50\xa3\x52\xaa\x46\xa2\x5d\xf4\xdf\xb1\x63\x3a\x8d\x41\x57\x50\x76\x87\xd6\xfa\x99\x57\x7e\x28\x18\x27\xd4\x46\x9f\xf6\x2c\x67\x1e\xf5\x4f\x7b\x3d\x6a\x22\x4f\x0b\x6c\xb4\x18\xf4\x30\xb5\x48\xbb\x7b\x52\x19\xe5\x90\xca\x6a\xd4\x99\x15\xb0\x9e\x70\x65\x9d\x4a\x45\xd0\x97\x44\x79\x90\x8e\x4c\x7d\x3d\x98\xfa\xe4\x02\x8b\x9c\xda\x2c\x47\x62\x5c\xd9\xa8\xd1\x5b\x9b\xd6\x0d\x07\xf0\xb8\x9f\x24\x89\x55\xc3\x32\x16\xf8\xe6\x6e\x56\xb1\xef\x84\x8b\x7d\x77\x8c\x88\xd2\x78\xb3\x55\x46\xa7\x63\x2c\x69\x58\xfd\x2a\xba\xab\x66\x0c\xe5\x2a\xa1\x44\xdd\x35\xfd\x1e\x39\x1e\xc3\x57\x55\x93\x62\x29\xf3\x65\x43\x24\x61\xe4\x2a\xd6\x3b\xc3\xdb\xfb\xf2\xfe\xdf\xb3\x85\x8f\xcc\x60\x84\x55\x73\xf7\x6a\x20\x52\x03\x60\x1b\x50\x1d\xb1\x0f\x27\x01\x4a\xd8\xf1\x63\xa2\xf6\x80\x05\x33\x26\x1a\x07\xa9\x9b\x40\xb4\x60\x0d\x4e\x58\x46\x78\x7f\x51\x64\x20\x5b\x29\xef\xb9\x5f\x19\xcd\xfa\x94\x95\x84\x8b\x5f\xe1\x96\xd2\x54\xb8\x7a\x62\x50\x3b\xed\xbc\x24\xe2\xa5\x1e\x8d\xf1\xed\x1d\xa3\xe4\x51\xbc\x9e\xa4\xcb\xf4\x82\xe6\x54\xd2\xad\xda\x2d\xce\xf9\x22\x2c\xf9\xd4\x2b\x12\x47\x0f\x06\xa7\x0f\x22\xbc\xce\x68\x29\xc9\x92\xc7\x2b\x51\x80\xef\x6f\x88\x72\x2f\xc7\xa1\x56\xc9\x74\x16\xa3\x75\x85\x41\x87\x24\xcf\x6d\x9a\x96\xee\x48\x22\x82\xe1\xc1\x60\x40\xc7\x92\x1f\x2d\x4a\x78\x0b\x4b\xf3\x23\x06\xd1\x62\x39\x68\x25\x65\xa8\xc2\x4a\x19\x3c\x68\x52\xbf\x48\xfb\x69\xb2\x6f\xc0\xa2\x20\x80\xb8\xc3\x42\xa9\xee\xfe\x97\x2d\xd4\x50\xf5\x42\x72\x22\x8f\xbe\x36\xf9\x6b\x5b\x39\xb4\x26\x03\x5d\x2a\x11\x8d\xb5\xb1\x0d\x90\x4a\x63\xf3\x11\x97\x4b\xcc\xc6\x89\xf0\x97\x58\x36\xc5\xb0\xb0\x4b\xfc\xb9\xd6\xf3\x8a\xe6\x79\x5f\x37\xfe\x9f\x15\xbd\xcd\x8a\xb6\x9d\xb6\x5b\xae\xf2\x81\x2b\xca\x0b\x9a\x11\x7e\x6f\x91\x4e\x78\x51\xde\xe3\x2b\x26\xe8\xe2\xe0\xe3\x18\xf2\x71\x56\x63\x6b\x99\x4e\x3e\xa4\x33\x52\x8e\xc8\xd8\xa9\xaa\x73\x8f\x8e\x1a\xcc\xf2\xe2\x22\xcd\x6f\xc3\x54\x91\x74\x32\x0f\x08\x50\x49\x8a\xd4\xa3\xd4\x37\x03\xf8\x83\x6b\x6d\x7d\xd5\x76\x44\x01\x4a\x2b\xb2\xa9\x18\x75\x60\xea\x9d\xc5\xaa\x14\x9d\x0b\xd2\x49\x59\x27\x95\xad\x38\xff\x46\xf0\x80\x07\x85\x9e\x16\x2c\x03\x68\xb7\x51\xc0\x50\x4c\x31\x91\xc0\xe7\xcd\x88\xf8\x3d\xcc\xf2\xa9\x4a\xe3\xc0\xfb\xbd\x23\xa5\xa0\x6c\xe6\x2b\x80\xeb\xcb\x59\xc3\x04\x8b\x84\xf4\x7a\x64\xd4\x5c\x9c\xc8\x5e\xa2\x4f\x8a\x22\x27\x29\x8b\x41\xe5\xc7\xb6\x89\x2a\x2b\x66\x59\x9b\x15\x18\xae\x2b\xac\xda\x1d\xae\x5b\x5a\x1c\xae\x6d\xed\x61\xf7\xb4\xaa\x2a\x20\x6c\x68\x12\xad\x98\x5a\x93\x2c\xea\x1a\x7e\xeb\x8a\xb2\xac\xb8\x3a\x53\x7f\x06\xe7\xb6\xad\x73\xd5\xd6\xb9\xde\x3a\xe7\x0a\x04\xda\x48\xf0\x48\xb9\x26\x57\x53\x5c\xeb\x2c\x81\x6b\xb0\x19\x72\x5c\x12\xa1\x7e\xab\x33\x12\xec\x21\x79\x4e\xca\xb0\x86\x29\xa5\xe6\xa6\xca\x54\x1e\x99\x52\x4c\x3b\x14\x89\x36\xd6\x56\x03\x40\x72\x71\xf7\x14\x6f\xa7\x39\x39\xd0\xdc\x3f\x70\xdf\x2b\x46\xe2\x36\x6f\x24\x60\xf2\xf8\x74\xc5\x39\x25\xd9\x53\xf3\xd6\xe3\x74\x53\x6a\xca\x1f\x8a\x00\xac\xc9\x02\x40\xe2\x6e\x6c\x27\x15\x36\x06\xcb\xc9\x62\x11\xa1\x81\x59\x86\x37\xda\x7f\x8d\xf2\xd2\x60\xe8\xc3\x23\xd5\xa0\x1e\x38\x61\x82\x4b\x54\x47\x06\xe7\xe7\x56\x41\xf3\xfc\x5c\x69\x47\xa2\x81\x8a\xc4\x95\x3c\x22\xa3\x93\xf1\xa0\x14\x29\x17\xa5\xe4\x05\xe3\x48\x90\xc5\x32\x97\x10\x9b\x14\x8b\x25\xcd\x09\x1f\x2e\x52\xca\xfa\x91\x72\x9b\xc8\xad\x92\xd9\xe8\x74\xdc\x70\xe1\x1f\x68\x9e\xa9\xa3\x59\x5b\x95\xce\xa4\x58\xe5\x19\xfb\x9d\xe8\xe4\xc5\x24\x15\x04\x8e\xaa\x9e\x55\xc7\xb4\xd2\x29\x14\x1d\xda\x81\x25\xec\x5c\x12\x5e\x82\x1d\x6d\xa5\x5d\x9a\xb7\xc8\x0b\xb8\x01\xbe\x81\xba\x72\x90\xa6\x40\x4a\x93\x2d\xd9\x31\xc1\xcd\xb3\xbe\x2e\xae\x18\xe1\x43\x52\x55\xe0\xeb\xdb\x2a\xc9\x50\xe4\x31\x8a\x2c\x76\x71\x0b\x28\xc2\x5a\xc1\x77\x1a\x77\x1b\x3d\xa9\xf8\x77\x75\xb8\xfc\xfc\x58\x48\x40\x0b\x92\x49\x7c\xa5\x5b\xea\xfc\xed\xe7\x2f\xd6\xa4\xfa\xdb\xcf\x9d\x4b\x9a\x76\x08\x2b\x57\x9c\xbc\x4d\xa7\xc4\xb6\xa5\xc2\x04\xb0\x42\x40\x50\x12\xab\xc5\x37\xf8\xd9\xf9\x0f\x89\x4f\xc0\x37\xde\x1a\xee\x09\x89\x20\xdc\x1d\x32\x1c\x8d\x2b\x50\xb3\xa0\xe5\x8e\x3d\x6a\x2c\x26\x12\x8d\x0b\xf4\x6d\x0a\x1e\x43\x60\xa5\x41\x58\x10\x47\xdf\xcf\x72\xba\x58\x48\x92\x41\xdf\x2a\xc0\x81\xaf\x77\xb5\x3d\xe4\x78\x47\x26\x03\xad\xe5\xeb\x21\x35\x85\xfe\x0c\x67\xab\xa8\x12\x71\xb4\x67\xcc\x1c\xf3\xcd\x26\xde\x57\xa8\x15\xaf\x77\x94\x56\xf6\x44\x6e\xa2\xa2\xf9\x7e\xeb\x23\x94\x2d\x2f\x07\xbb\x71\xce\x6e\x51\x91\x77\x7f\x12\x17\x13\xaf\x21\xf2\x24\x67\x5e\x1b\x8a\xdc\xb7\xfa\x4a\x56\x2b\xdb\xda\x97\x81\x40\x68\x1f\x2e\x42\x92\x9e\xd0\x26\x60\x43\x2d\x42\xda\x59\x1a\x19\x5f\xa6\xe4\x8c\x0c\x0f\x1a\x0e\xa6\xad\x08\x4f\xf8\xa6\xe1\x97\x74\x42\x86\x7d\xb5\xd5\xfb\x26\xc4\x26\xf1\xfc\x0f\xca\x1d\xa7\x52\x55\x60\x00\x18\xf6\xcd\x26\x4a\xed\x44\x6f\x45\x92\x34\x8f\x21\xdc\xf6\xcf\x9b\xe9\x7f\x20\xf9\xd2\xc6\x80\xd5\x31\x8c\x59\x2d\x84\xb1\x2a\xb3\xd6\x26\x68\xf1\x88\x8c\xed\x5e\x84\x19\x42\xfc\xd7\x6a\x57\xf3\x6c\xd7\x1e\xd5\x20\x2d\xef\x35\x41\x7a\x0b\xaa\x2f\x0c\xd4\xd8\xa1\xac\x43\xce\xb6\x81\x50\x58\x53\x3d\x1c\x2a\x50\xf8\xa2\x77\xf9\x7d\xc5\xa9\xd0\xbf\x2b\x34\x24\x23\x31\x86\x07\xc1\xbb\xb3\x0a\x0a\xe0\xfc\x80\x98\xd1\x2d\x46\x22\x4a\xd1\x58\xbf\xa7\x16\x6c\x42\xca\x08\x7b\xb1\x7b\x5c\x09\x26\x33\x41\x67\x91\xf0\x08\x9f\xb8\xc0\xb0\x10\xe1\xab\xd5\x52\xc2\x6c\x7c\x25\x84\xb4\x1d\x98\xe8\xab\x81\xc7\x27\x15\x81\x35\xd2\x47\x22\x3a\x86\x4a\x7e\x9f\xc7\xc7\xb8\xd1\x90\x89\xcc\x0a\x56\xb6\x7a\x34\x91\x55\x36\x19\x46\xc7\x60\x68\x8b\xb9\xdc\x58\x06\x68\x3c\xd8\x46\x06\x99\x3b\x0d\x15\x2b\x03\xbf\x48\x4b\x45\x0c\x40\x7a\x7f\xa1\xd8\xa9\x1a\x1e\xdc\x51\xdf\x26\x7d\xfe\xa7\x84\x60\xbf\x2a\xfe\x28\x14\xf6\x92\x86\xb4\x37\x16\x10\x18\xd2\xdf\x1d\x02\xad\x1b\xea\x33\x9f\x73\xf3\x57\xc8\x6c\x3e\x8f\x45\x8d\xe4\x72\x1a\xf5\x77\xe3\x91\xc9\x27\x2a\x78\x30\x15\x12\x0b\xed\xc0\xcf\xca\x7a\x66\x40\x74\x0b\xf2\x51\x04\x7c\x4c\x4d\x4a\x7f\xd0\xc2\x1d\xbc\xd6\x40\x3a\xed\x29\xa3\x39\x60\x09\x85\x72\xaf\xa6\x12\x5c\x2d\x77\xd9\x1c\x64\xf0\xf8\xcd\xef\xdf\x9e\xbf\x7d\xfe\xce\x50\x36\x5e\x0a\xf3\x78\xe7\xe6\xb3\x01\xb1\x36\x04\x98\xe2\xe2\xa8\x30\x0d\xc4\x34\x89\x52\x3e\x2b\x23\x44\x59\xac\x44\xe9\x68\xcb\xce\x90\x35\xf5\xb8\x8a\x1b\xed\x0c\x36\xa2\xe3\xa4\x50\x27\x5d\xf6\x95\x70\x0c\xb7\x9d\x31\xca\x42\x36\x9a\x32\x04\x14\xf7\x02\xad\xc5\x81\xde\x8b\x9f\x83\x74\x74\xf1\xa0\x06\xc9\xb6\x54\x20\x99\x29\x1f\xba\x20\x39\x7c\xff\x04\x0b\xfd\xf9\x04\x46\xde\x88\x13\x12\x4c\x38\x54\xa2\xb0\x52\xa4\x03\x48\xd9\xa0\x99\xa3\x5a\xab\xc2\x6a\x65\xdc\xa6\x41\x92\x1d\x85\x63\x3e\x18\x11\x2b\xe2\xf2\x0e\x98\x78\x1b\x26\xff\x74\xc7\xf5\x13\x5c\xe2\x12\xb4\xeb\x92\x08\x0b\xa0\x21\xc3\xee\x93\xb2\xd9\x90\x56\x09\xc7\x85\x01\xbe\x1d\xf2\x4e\x39\x1f\x31\xa7\x5a\x1e\x35\xb0\x89\xfb\x91\x4e\xc9\xe4\x7a\x92\x93\xa7\x69\x9e\x5f\xa4\x93\x0f\xe5\xb0\x7b\xaa\x25\x76\x7f\x28\x8a\x0f\xc3\xee\x69\xe5\x7c\x77\x6b\x28\x58\x4f\x25\x07\xad\xb9\xb9\x8b\x9f\xd9\xde\x35\x8d\x92\x1b\x1a\xa5\xa6\x6f\x16\x1a\x5e\xd6\xcc\x2e\x71\x81\xd0\xba\x79\x0f\x08\xb4\x36\xdb\x51\x79\x07\x6a\x2b\x62\x68\x8c\x32\xe6\x18\xdc\x95\xd4\x9c\x08\x55\x92\x38\xd0\x73\xf4\x6a\xa2\x75\x0a\x52\x16\x65\x17\x92\x7b\xd8\x72\x75\xe8\xa6\xd5\x37\xc2\x67\x3b\xfd\x06\x58\x6d\xf2\x62\x93\x77\xe4\x15\x13\x7b\x06\xde\xc6\xe4\xdd\xe6\x4c\xde\x86\x24\xfa\x2c\x07\x4a\x31\x67\xdc\x24\x1f\x39\x51\xfa\xd3\xda\xc9\x89\x49\xf2\x08\xc8\x22\x53\x16\x9e\x8a\x8d\x83\x60\xff\xae\xa4\x3e\x10\x2f\xf2\x62\xf2\xa1\x5f\xe6\x85\xf0\x14\x9c\xcb\x7b\x2e\x39\x84\xa6\x5f\xdc\xc8\x9a\xb6\x56\x0c\x4a\x2f\xe8\x47\xca\xca\x7b\xf0\x51\xcb\xf2\xaa\x5f\x83\xb2\x06\x54\x6f\x00\x17\xb3\xcf\xf2\x3e\x61\x2c\xf7\x2c\x40\x07\xea\x78\xc7\x6b\xa5\x9c\x38\xb4\x10\xc5\x5a\xd1\x71\x18\x45\xf8\x5c\xd2\x69\xc3\xba\x47\x12\x06\x46\x0d\x71\x8b\xc6\x39\x30\x02\xe9\x82\x00\xec\x69\xf6\x02\xde\x40\x9f\xeb\xd7\x03\xaf\xbc\xc2\x06\xfa\xbd\x95\x91\x94\x93\x52\xbc\x9a\x42\x2c\x54\xbb\x0b\x40\xac\xd5\xd5\xde\xc3\x0d\x87\xa8\xfd\x53\xc8\x3e\x90\x17\x3d\x37\x9d\x08\xd8\xb5\x6f\xf3\x42\xf8\x45\x30\x40\xc0\xf3\xef\x0e\x34\xac\x04\xbc\xf0\x18\xf1\x08\x13\x64\x2f\xe0\x96\x21\xb1\x60\x48\x02\xad\xeb\x0d\x9e\xc3\x82\xbe\x85\xed\x20\x4c\x53\xc4\xb3\x26\x14\x38\x82\x01\x45\xc8\xba\x9b\x90\x9f\x47\xf5\x86\x68\xf9\x2e\xe5\x33\x22\x64\x53\xef\x65\x9b\xe0\x86\xde\x8e\x8e\xd7\x9a\x84\xed\xa5\x54\x62\x22\x74\x44\x7a\xbd\xba\x5d\x19\x07\x1b\xf1\x9a\x05\xe6\xba\xd5\x29\x8d\x1a\xc0\x32\x3a\x16\x35\x0f\x34\x03\x4e\xd2\xec\x15\xcb\xaf\x63\x6f\x9e\x03\xbf\xef\x01\x38\x2b\xac\x50\x55\x61\x0f\x63\xb7\x2c\xbb\x7a\x5e\xaf\x41\x5f\xbb\xd8\xa8\x27\x0f\xce\x33\xb2\x6d\x59\xab\xe0\x45\xe9\x90\x93\xee\x9d\xb8\x9b\x9d\x74\xbf\xe2\xf6\x93\xfe\xf9\x51\xa4\x6f\xfe\xf7\xeb\x9d\x61\x7f\x95\x1b\x4d\x2c\xd5\xc6\xdb\xda\x88\xca\x87\x66\x94\x13\x9b\x3f\x53\x72\x55\x6f\x65\xeb\x08\xb6\x20\x05\xd9\x1c\x2d\x1f\xcb\x8d\xd1\x9c\x94\xd7\xcf\xe0\x1c\x56\x66\x30\x1a\x47\xe6\xec\xb5\x0d\xd4\x3b\x4f\xea\x24\x37\x5a\x88\xac\x4f\xb4\x32\x6e\x94\x56\x67\x5a\x85\x60\xf5\x76\x24\xdb\xb6\x23\xe7\x20\x1e\x33\xf7\x87\x01\xe0\x1d\x9e\x3a\xd5\x88\x1e\xc7\x36\x10\xc1\xad\xe4\x87\xde\x2a\xc3\xcb\x61\xcb\xde\x33\xa8\x47\x09\xf8\x06\x6a\x22\xb1\xf0\x67\xcd\xb7\xcd\xba\x85\x5e\x39\xf4\x24\x7d\x96\x73\xc4\x13\x7b\x50\x0e\x19\x7e\x78\xa7\xff\x16\x4a\x05\xe0\x69\xcb\x28\x44\xad\xd5\xbe\x3c\xe0\x20\x99\xcd\x01\x87\x26\xbc\x23\x89\xb9\xc4\xbc\xcd\x6c\xb6\x3b\xe8\xd9\x43\xf8\x68\x82\x2a\x5c\x47\xc3\xbb\x6a\x1a\xe5\x77\x57\x39\xb8\xbb\xeb\xdb\xb6\xa5\x05\x7b\xd4\xea\x48\x5e\x6c\x5b\x9d\xbd\xf4\xd9\x6f\xb1\x60\x7f\x78\xf7\xf2\xc7\x27\x29\x2f\x07\x66\x74\xf1\x9a\x66\xc3\xe8\x4f\x5f\x4e\xdf\x3f\x11\xef\x5f\x45\x18\x06\x38\xfc\xdd\x3a\x2a\xaf\x17\x17\x45\x5e\x46\xc3\x51\xd4\xb3\xbe\x64\xb1\x72\x12\x02\x5a\x79\xd1\x70\x34\xfa\x1a\x8f\x1e\x7c\x83\x4f\x4f\xc7\x78\x34\x7a\xf0\x15\x3e\x3d\x19\x8f\x95\x32\xfd\x68\x14\xb9\x4a\xa3\x75\xad\xda\x7d\x1c\x75\x3a\x32\xe3\xf4\x5b\x7c\xaa\xaa\xfe\xd7\x18\xcb\x3f\xdf\xaa\x3f\xdf\xa8\x3f\x5f\xab\x3f\x5f\xa9\x3f\x5f\xaa\x3f\x0f\xd4\x9f\xfb\xea\xcf\xa9\xfa\x73\x32\x1e\x8f\xb1\x6c\xf7\x6f\x7f\x63\xd1\x78\x8c\xd5\x1d\x40\x04\xe1\xb2\xc3\x71\x35\x96\xf9\xd1\x3c\x2d\x9f\x5f\xa6\x79\x34\x9c\xa6\x79\x49\x70\xb4\x5a\x5e\xa6\x50\x20\x5a\xfe\x57\x84\xa3\xe5\xb7\xf2\x9f\x6f\xe4\x3f\x5f\xcb\x7f\xbe\x92\xff\x7c\x29\xff\x79\x20\xff\xb9\x2f\xff\x39\x95\xff\x9c\x44\xdb\x28\xa2\x88\x4e\xa3\x71\xf5\x3b\xbc\x20\x22\x1d\xae\x17\xb0\x3c\xea\xbe\xbb\xc1\xd6\x18\xcc\x2f\xca\xe8\x2e\xbb\xac\x9d\xa8\xf8\xcd\x77\xd9\xfb\xa7\xff\xfd\xf2\xd5\xec\xe9\x1f\xb7\xec\x32\x70\x42\x83\xf7\xef\x36\xbd\xd9\xda\xf6\x1a\x8e\xa0\x91\x3d\x5b\xee\x3e\xd4\xdb\xb9\x5f\xf0\xee\x2d\xbb\xb7\xfe\xbe\xfd\x66\x28\x85\x3b\xed\x18\xb7\xcc\xfb\x76\x8c\xe2\xb4\x95\x9b\xaa\xbe\xba\x22\xed\x95\xaf\x52\x3f\xc1\x65\xaf\xbd\x60\xad\x2b\x0c\xcf\x42\xb7\xb9\xef\x55\x13\x9f\xea\xaa\x57\xb3\xbe\x48\x4b\x3a\xe9\x67\xbc\x58\x66\xc5\x15\x0b\x4e\x5c\x90\xd3\x9f\x14\x4c\x1c\x20\xb0\x97\x9b\xac\xad\x61\x6d\x0b\x62\x5c\xe7\xf5\x8d\xee\xc0\xee\xf2\xe5\x84\x17\x79\xae\xd7\xa4\xdc\x5d\x76\x9e\x96\x7d\xf0\xfa\xd1\xc6\x9c\x63\x5a\x5b\x29\xe5\x54\x17\xbc\xf5\xe1\x15\x9e\xe0\x0c\xcf\xf1\x14\x2f\xf1\x02\x5f\xe2\x99\x5b\xc7\x8b\x5f\xf7\xa5\xd2\xf6\x7b\xdd\x8c\xfc\xe7\x02\x0b\xfa\x2e\x47\x98\x73\x39\x12\x6c\xcb\x02\x4c\x41\x47\x64\x5c\x81\xb7\x2d\x37\x9a\xa4\xdb\xf5\x3f\x71\x51\x33\x77\xed\x86\x09\x38\x8e\x60\x46\x11\x65\x9d\x62\xb3\x29\x06\xf0\xf6\xad\x1c\x23\xa3\x5e\x2f\x2e\x06\x66\x2a\x60\x29\x5b\x24\xdc\x90\xb4\x03\x4e\x94\x1b\x45\x64\x5d\xe4\xda\x01\xfa\x91\x54\x0c\xeb\xb5\xd9\xf0\x0a\x41\x10\xc7\x5e\xcf\xba\x9e\x0f\xfa\x83\xee\x60\x34\x61\xfa\x59\xf0\xa5\x1d\xc2\x1a\x77\xf3\x38\xc8\xd4\x07\x46\x4b\x18\x4e\x92\x66\x0f\xdb\x97\xb6\x30\x6e\x72\x10\x2e\x3e\xc1\x9b\x72\x4e\x44\xe7\x3c\x89\xad\xb4\x59\xf0\x74\xf2\x81\x64\x56\x2e\x7c\xae\x7c\x77\x3b\xb9\xb0\xfe\xce\x6b\xdf\xab\xda\xf7\xa4\xf6\x9d\xd5\xbe\xe7\xb5\xef\x69\xed\x7b\x59\xfb\x5e\xd4\xbe\x2f\x6b\x5e\x12\x2d\x51\xde\xf2\x0e\x6e\x43\x28\x61\x7a\xe4\xbf\x89\x5f\x68\x02\x52\xf0\x94\x29\x3c\x40\xd9\xec\x05\x7b\x2a\x1b\x8e\xdc\xd3\xd4\xa0\x2d\x7f\xb3\x69\xc5\x02\xfd\x7e\x50\xb8\x4f\x59\xd4\xd6\x0f\xc9\x76\x76\x63\xb3\x0f\xe8\x85\x64\xdb\x3a\xa1\x6c\xf6\x6a\x25\x76\xcf\xc6\x14\x38\x70\x3a\xc5\x4a\x78\x5d\xd1\xf2\x5d\xb1\x9a\xcc\x9f\x91\x4b\x3a\x21\x7e\x17\x41\xc6\x66\x63\x14\x3e\xbb\x5d\xa5\x72\xd5\xeb\x45\x05\x13\xb2\x04\xe8\xe5\xc9\x43\xad\x32\x90\x6b\xdb\x8c\xe0\x45\xb6\x05\xdf\x9a\xab\xa0\xaf\x55\x08\xa0\x63\x93\x39\x58\x31\xfa\x8f\x15\x79\x91\x79\x70\x91\xfd\xbd\x2c\x2e\x09\x38\x08\x8d\xb0\x39\x82\x26\x5f\xf9\x83\x7b\x53\x14\xe2\x65\xb1\x2a\xc9\xb3\xe2\x8a\x35\x0b\xa9\x9b\x00\x34\xaa\xd9\x84\x94\xa2\x90\xd7\xc1\x68\xec\x0a\x2c\x56\x02\x3c\xa0\x18\x1b\x5e\xd7\x84\x12\x0e\x62\x9e\x44\x29\xa3\x0b\x28\xa4\x97\x46\x59\x26\xe1\x98\x25\x33\xe7\xc9\xa9\x2e\x60\xc3\x3c\xf0\xdb\xc1\x7c\xe4\x19\xa0\xf5\xd0\x71\x80\x43\xf1\xcc\xa2\x48\xac\xf0\x01\x0b\x90\x17\xdb\x81\xbc\x2a\xf5\xa4\x9a\x81\xaa\x2d\x8c\x5c\x8b\xe7\x1c\xb7\x98\x69\x37\x4f\xe0\xcc\x50\x65\x3e\xb9\x7e\xa1\x25\xae\x6a\x69\x5c\x6d\xd5\x9c\x05\xc3\x73\x26\x47\xe5\x9e\x69\xbb\x27\x15\x2b\x8a\x25\xc4\x8b\x24\x02\x02\x03\x69\xc5\x51\xdb\x0b\xc4\x62\x7d\x4b\x72\x02\xa7\xfc\xe7\x51\x96\x8a\xb4\x4f\x2e\xb2\x3e\xcd\x92\x2f\xd6\x3b\xf6\x43\xd5\xd7\xae\xff\xc7\x3f\xeb\xb0\x8b\x2d\xeb\x9e\x70\xe5\x2b\x41\x7b\x18\xe3\x03\x01\x5c\x84\x6f\x3d\xc5\x6c\xea\xc3\xf8\x04\x53\xcf\xa3\x02\xd6\xc6\x41\xfe\x6e\x43\x9b\x0d\x31\x4e\x44\xe5\x65\xb9\xd9\x28\x77\x87\x2e\xe5\xac\xa5\x96\x46\xd1\xc3\xae\xbd\x8f\x49\x2c\x3c\x75\x34\xad\x2c\xaa\x47\xc9\x9c\xdd\x98\x86\x16\x73\x1e\x0f\x4a\x4c\xb7\x03\x2f\xe5\x34\xed\x17\x57\xac\x94\xa0\x1b\xd0\x4c\x5d\x6e\x95\x84\x90\x6b\x9e\x86\x66\x69\x45\xf2\x3c\xa6\x7e\x7e\x11\xe6\xa7\x49\xe1\xf5\x6e\x48\x86\xa2\xd7\x4b\x6d\x07\x12\xb2\x9b\x0d\x89\x0b\xb0\xd9\xd4\x71\x52\x07\xee\xdc\x6b\x98\x84\xeb\xa8\x23\x49\x0c\x26\x79\x51\x92\x98\xe3\xee\x89\x8e\x1f\xde\x0a\xba\x0a\xdb\x49\xa7\x99\xf2\x0c\x6c\x6d\xca\x5d\xe3\xbc\x28\x04\xe4\xbd\xbb\x5e\x2a\x05\xb5\xb6\x4d\x01\xf1\x5c\xb5\xca\x68\xa3\xb1\x88\x93\x92\xfe\x62\x70\x20\x5f\xb1\xbc\x28\x96\x8f\xaf\x52\x4e\xde\x10\x43\x63\xee\xa8\x5d\x70\x4a\x98\x42\x1c\x13\x70\x27\xb7\xa7\x21\xc8\x0c\x90\x6c\xaf\x17\x6f\x9f\x6a\xe4\xe1\x5a\x6f\x7b\xbe\x95\x09\x4a\x4f\x18\x00\xb9\x03\x58\xaa\x05\xc2\xb2\x68\x27\x7c\x94\x9e\xb0\x32\x6b\x57\x00\x6e\x41\x98\x2d\x0a\xe1\x23\x70\xb2\x48\xcc\xce\x36\x7e\xcb\x7f\x2a\x32\xe2\xf9\xf0\x63\x46\x13\x1f\xf4\x38\xc0\x35\xa2\x6c\xfc\x35\x94\x45\x31\x53\x86\x7e\x0f\x49\xaf\x17\x3d\x79\xf5\xec\x7d\xd4\x4d\x9c\x37\x9f\x81\x28\xfe\xb4\x5c\x12\xfe\x34\x95\xa4\x60\xaf\x17\x49\xf6\x77\x47\x89\x87\x68\x2d\x8c\xe5\xe9\x51\xcb\xa8\x48\x62\x8e\xdd\x99\x3e\xa5\xdb\x06\x55\x55\xc6\x43\x8a\xa8\x94\x1b\x7a\xe5\x56\x3f\x53\x05\x01\xfe\x94\xcd\x62\x82\xac\x3b\xd5\xd8\x46\xfd\x95\x9c\x84\x32\x1c\x80\xf5\x28\x5d\x34\x1c\x99\x53\x6b\xc1\xd8\xa3\xb6\x80\x7c\x34\x76\x8b\xab\xea\x7e\x82\xc3\xb0\x7b\x17\xb6\x75\x73\xe3\x8d\xb8\xbd\x91\xfd\x7b\xb1\x52\x17\x0c\x79\xc1\xac\x8b\xff\xfa\x95\xd3\xeb\x7d\x8c\x09\x76\x01\x7c\xc2\x9b\x59\x9b\x79\x36\xa9\xb2\xca\xb6\xfd\x6a\x25\x8c\x11\x4f\x6b\x07\xa1\xc1\xad\xd9\x41\xfa\x82\xf4\xb0\xa7\xbd\x5b\xe8\xd4\x5f\x0b\xb0\x8e\x78\xc1\x5e\xe7\x29\xc0\x56\x24\x22\x6c\x41\x9d\x37\xbf\xbe\x52\xc4\x24\x12\x3f\x32\x22\x77\x6a\xdc\x3d\x01\xa7\xc2\x19\x44\x5d\x3d\x8e\xfa\x7d\xc8\x8a\x30\x57\x0a\x96\x12\xac\x1a\xcc\x60\xfc\x1e\x4e\xd9\xd1\xbb\x60\xf7\x2c\xe2\xa8\x13\x21\x14\xd4\x4d\xb3\xac\xbd\xa2\x21\x2d\x83\x9a\x62\x90\x2e\x97\x84\x65\x4f\xe7\x34\xcf\x20\xac\xf9\x0d\xe0\x8e\x3f\xc6\x3c\x78\x87\x31\x23\x37\xad\x55\x08\x29\x92\xe1\x65\x8d\x0c\x73\x41\x1e\x6a\x19\x10\xdb\xb4\x59\x5a\xb9\xe4\x81\x25\x2b\x8b\x05\x91\x09\x57\x31\x19\x80\x77\x4f\x09\xd5\x12\x6d\x36\x32\x41\x7b\xf8\x54\x49\xe8\xc8\x3c\x47\xc2\xea\x99\xe0\xe6\x06\x6d\xab\x05\xdc\x9a\xad\x75\xa3\xc3\xfb\x4e\x42\x4c\xb7\xd9\x7e\x17\x80\x66\x4b\xeb\xcc\x8c\xff\x9a\x98\xe0\xf5\x44\xc2\x47\xae\x96\x64\xfa\xcb\xd5\x85\xe0\x44\x7b\x5d\x34\x28\xa7\x01\x02\x13\x06\xb3\xab\x9f\x9c\xeb\xcd\x1b\x04\xdf\xe8\x36\xa3\xe5\xa4\x60\x8c\x4c\x6c\xc4\xed\x06\xcc\x35\x49\x5c\x35\x0e\x7f\x8c\xd6\xfb\xee\x20\x09\xef\xa8\x46\x63\x79\xa8\xa3\xaa\x27\xda\x95\xaf\x11\x08\xe4\x10\x24\xb3\xaf\xb3\x6d\x6b\x62\xdc\xf9\xac\x98\x72\xfe\xb5\x83\x90\xe1\xee\x5a\xaf\xda\xf0\xfd\x5a\x13\x0d\xad\x83\xbc\x09\xd5\xd1\xda\xc0\x0d\x09\x8f\xaa\xed\xda\x5a\x1b\x6f\x0a\x6e\x96\x4b\x4e\x64\x3f\xaa\xa8\xb9\xe4\x45\x40\x54\x8b\x16\xa2\x9a\xdb\x54\x15\xfa\xdd\xd2\xc7\x5c\x12\xd0\x7e\xa5\xb5\xe7\xe5\x88\x81\x53\x7b\xe3\xee\x58\xf7\x19\x73\xac\x2e\xee\x75\x46\x72\x91\xfe\x15\x9c\xcc\xe6\x22\x7d\x3f\x4c\x2b\x5b\x49\x95\x7d\x26\xd3\x4b\x24\xa9\xe9\xe2\x3b\x49\xc9\xcb\xf2\x3f\x91\x59\x2a\xe8\x25\x39\x83\x90\x19\x61\x1a\xc4\x99\x87\x09\x3e\xd3\x6a\x44\x08\x0d\x8b\x47\xa6\xd8\x6b\x80\x56\x58\xd5\xa4\xb5\x56\x4d\x4d\xaf\xef\x5d\xaf\x69\x52\x4f\x6b\xaf\x6a\x7a\x7d\x6f\x7a\xe8\xf5\xbc\xba\xbb\xba\x75\x6a\x79\xaf\x55\x16\x84\xed\x2a\x36\x9b\x14\xf5\x7a\x00\xa1\x8c\x96\x9a\x80\x37\x40\x2d\x70\x0a\x21\xad\x54\x3c\xe4\x66\xa3\xd5\xd1\x8e\xe3\x7b\x35\x27\x24\x8f\xb0\xc0\xeb\x49\xba\x14\x2b\x0e\x12\xc8\x65\x5a\x96\xf4\x92\x28\x5d\xc4\xad\xa4\x4d\x02\x57\xf4\xee\x03\xdb\xd6\x7c\x85\x2a\x3d\xd4\x80\xe6\xda\x4f\x4b\x25\x8d\x1c\x55\xa7\x6a\x27\xbc\xd6\x55\xa3\xed\xf5\x56\x62\x5f\xd1\x67\x87\x50\xf8\x2d\x94\x9c\x15\xb3\xca\x2b\x8a\xdc\xb2\xf5\x0a\x55\xcd\xa9\xed\x41\x35\x9f\x72\xd4\xb7\xee\x00\xb4\x84\x66\xc9\x75\x7c\xe9\xc7\xc0\xaa\xcb\x53\x46\xc5\x18\xaf\xeb\xa2\xee\x50\x10\xee\x09\xbe\xb1\x27\xf7\x68\xf3\x83\xda\x46\xd6\x9d\x6d\x25\x93\x86\x51\x54\x55\x08\xd7\x46\x08\x34\x49\x84\x47\xe9\xd8\xb8\x6a\x55\x3a\xaf\x46\xbc\xe3\x5c\x1b\xb5\xd5\x43\xf8\xd2\x77\xd3\x58\x6b\xdb\xdc\xe0\x11\x1e\x95\x37\x6c\xde\x56\xdd\xdd\x83\xa5\xa3\x23\x3c\xca\x6f\xd8\x85\xab\x7b\x50\x1f\xaf\x56\x22\xc2\xa3\xd5\xed\x3a\x79\x05\xc2\xc9\x5d\xbd\xb4\xd2\x86\x11\x1e\x4d\x6e\xb3\x2e\x8d\x76\x0e\x5b\xa7\x96\xee\xb3\x5b\xae\xdb\x4d\x47\x50\x27\xb7\x22\x3c\x9a\xdf\xb4\xeb\x46\x1b\x07\xf4\xe9\x91\x4d\x11\x1e\x4d\x6f\xd3\xa5\xdf\xc4\xee\x1e\xdb\x51\x47\x84\x47\xcb\x1b\xf6\xbb\xa5\xa1\x3d\xbd\x37\x48\xb8\x08\x8f\x16\x37\xed\xb9\xd9\x48\xad\xd7\x4b\xcf\x13\xec\x15\x38\x6a\x37\xbe\x03\x92\x93\x87\xe2\x3b\x17\xf5\xf4\xf8\xd8\x69\xcf\x13\x1d\x69\x3a\xfa\x3f\x93\x62\x01\x3e\xf9\xbb\x49\xc2\x07\xac\xc8\x88\x8a\x71\x18\x47\xff\x47\x90\x8f\xb5\xe4\xcd\x26\x72\x09\x60\xb1\x6c\x74\x67\x7d\x57\x57\x76\x34\xcf\xcd\x68\x1e\xca\x06\xbb\xc4\x71\x8a\x9b\x8d\xff\xe5\x88\xbb\x9d\xd2\xfd\x08\xa1\x87\xc8\x23\x1b\x6b\x2c\x74\x10\xca\x91\xd4\x73\x2b\x6b\x13\x66\x87\xf7\x51\xe9\x85\xd9\x9b\xee\x1f\x2b\x52\x8a\xc7\x06\xbd\xff\xc0\xd3\x05\x09\x94\xa1\x14\x59\xaa\x8b\xcf\x94\x4a\xf9\x4a\x90\xec\xad\xb8\xce\x21\x98\x91\x84\x27\x93\x0c\x35\xc0\xc8\x5e\x14\x0a\xa0\x72\x0f\x31\x65\xe8\xec\x67\xbe\xce\xd3\x6b\x08\x55\xd5\x70\x91\x80\xb6\xdd\x8e\xb6\x2e\xc8\x3d\x24\xdf\x2c\xa9\xad\x36\x02\xa0\x5e\x52\x13\x40\xa0\xc7\xe5\x59\x47\x9e\x57\x08\x1d\xdd\xf2\x11\x5e\x85\x5e\x4a\xf3\xbe\x48\x67\x7b\x5f\xe2\x3f\xb7\x4e\x5e\xdd\x28\xd6\x3d\x04\x6e\xb3\x05\xbd\xe1\x6c\xf5\x83\xc1\xdd\x54\x0e\x76\xa8\x05\xb4\xa8\x04\x80\x3d\x9e\xaf\x16\xe0\x4e\xfb\xfc\x37\x52\x05\x98\xfe\x47\x15\xe0\x7f\x83\x2a\xc0\x32\x89\x59\xed\xa5\x9d\xd6\xbe\x8b\xda\xf7\xa7\xd6\x14\x98\xc6\x71\x76\x83\xc7\x7d\xff\x41\x7f\x6e\xdf\x7a\x67\xb3\x9c\xbc\x28\x9f\x10\xca\x66\x8a\x6c\xc8\x9e\x5c\x83\xa0\xda\x5c\xca\xdd\x53\xbf\x78\xeb\xd3\xb0\x7d\x85\x54\x12\x66\x2b\x5d\x76\xe2\xe4\x40\xa2\xa3\x5d\x6d\x65\x9b\x4d\xb4\x90\x45\x81\xb2\x0e\xc4\x22\xc4\xc8\xd5\x7b\x3d\x15\xa9\xfa\x62\x25\x84\x12\x0c\x3a\xb1\xa0\x28\x96\x72\xf5\xd2\x59\xaa\x84\x86\xa4\x9e\x64\xf8\xd6\x73\x99\xfe\x8e\x7c\x14\xea\x29\x8f\x16\xec\x4f\x4c\xd0\x1c\x86\xb9\x5a\x9a\x52\x7b\x41\x71\x76\x58\xb1\xa4\x7b\x3a\xdc\x21\xc6\x52\xf5\xc1\xd2\x5c\x41\xeb\x69\x4e\x27\x1f\x94\x66\x5a\xd3\x19\x93\xe1\xe4\xcd\xcc\x3d\x6b\xd1\xcd\xa6\xdb\xec\x66\xb3\xd9\x09\xef\x50\x52\x59\x07\x75\x34\x91\x43\x89\xda\xb3\x37\x9b\x93\xae\x5b\x09\x13\xc2\xf6\x86\x2b\xf1\xab\xc3\xd8\x00\xf9\x8f\xe4\xfa\xa0\x0d\x19\x9f\x2a\x87\xd4\x1f\xc8\xf5\xd3\x22\x23\xbb\x1e\x56\x6d\x27\xc3\x07\xf7\x83\x3a\x31\x69\x88\x7b\x5a\x04\xd6\x2d\x83\x1d\xde\xff\xc6\x6f\xc8\x17\x91\x6f\x79\xd6\x75\xbb\xe8\x9d\x65\x37\x6e\x26\x1a\x3e\xaf\x33\x0d\x41\x83\xcf\x59\xa6\xe5\x96\x87\xae\xcb\x09\x26\x72\xfd\xeb\x02\xb3\x9d\xfb\x52\xd3\xa6\x0f\x75\x68\x01\x13\x9e\x62\x8b\x7e\xc0\x21\xa0\x6c\xab\x6a\x6c\xf6\x6f\x26\xcd\x6e\xc2\xc7\x3e\x51\x69\x01\xac\x7b\xc8\x15\x83\x69\x31\x59\x95\x31\xc2\x25\x11\xef\xe8\x82\x14\x2b\x11\xd0\xc8\x20\xab\xd5\x82\x59\xc1\xaf\xeb\xba\x1a\xca\xf2\x00\x06\x14\x47\x80\x9d\x0c\x4f\x73\x24\xe0\xaa\x73\x69\xb1\x3e\xab\xb8\x7b\x22\xff\x53\x64\x37\x3e\xb1\xff\xef\x9e\xba\xff\x4e\x94\x4f\x2a\x6c\xba\x96\x70\x5f\xa6\x42\xaf\x59\x2c\x50\x35\x91\x5f\x10\x94\x12\x00\x05\xbe\xa9\xfc\x5e\xb6\xd6\x85\xf2\xe0\x82\xf0\x44\x96\x69\x48\x39\x7d\xfe\x4c\xc3\xaf\x8c\xf7\x62\xba\xbb\xae\xd0\x9e\x25\x5e\x28\xbc\x1f\xd9\x58\x92\xf0\xe9\xbd\x56\x40\x7c\x4b\x3f\xd1\x3f\x52\xb7\x6b\xd2\x0d\xe9\xa2\xc8\xae\x9b\x0f\x8a\xed\xac\x9d\xe4\x31\xfb\x25\x5c\x5a\x7d\x73\x58\x22\x54\x35\x66\xfc\xa9\x9e\x6e\x5a\x90\xc1\xbe\xbb\x73\x17\xae\xb9\x3d\x54\xd2\x2c\xbb\x19\x48\x2a\xe4\x8b\x05\x6a\x64\x48\x84\x47\x6c\xbf\x60\x21\xdb\xd5\x02\xc2\x99\x2f\x55\x98\xb6\x95\x7e\xaa\x4e\xe4\x88\xde\xaa\xaf\xa7\xfa\xa4\xed\xef\x47\xdf\x65\x4a\x7c\x7b\x8b\x9e\x4c\xfd\x43\xfa\x72\xd7\xca\x61\x42\xd9\xdd\x4d\x1c\xdc\xe3\x73\xc9\x91\x1f\x22\xa5\xdd\xd5\xc0\xee\xde\xda\x50\xd3\x61\x62\xdb\xfd\xcd\xec\xee\xb9\x76\x10\x0e\x13\xe3\xee\x6c\x61\x4f\x7f\x2d\xa2\xc5\x03\xe4\xb8\x7b\xda\xa8\xf5\x99\xf9\x76\x0b\xcb\xdb\x0b\x11\x3e\xb9\xbd\xc2\xad\xa4\x08\xbe\x71\x01\xbe\xc0\xd7\xf8\x1c\x5f\xe1\xe7\xf8\x23\x7e\x85\xdf\xe2\x77\xf8\xa5\x93\x32\xbc\x76\xee\x04\xf8\x36\x95\x54\x10\x2e\x78\x42\x05\xbe\x55\x25\x95\x6f\x51\x49\xe5\x75\x95\x54\x1e\x30\xd1\xbc\xc9\x44\x33\x4f\x25\xd5\x0e\xf6\xf1\x6f\x24\x12\x79\xfa\x1f\x91\xc8\xbf\xbb\x48\x44\x89\xce\x3f\x24\xeb\x0a\xbf\x49\x46\x91\x28\x96\x11\x8e\x72\x32\x95\x07\x96\xd3\xd9\x5c\xfe\xbd\xa2\x99\x98\x47\x38\x9a\x13\x48\x50\x31\x24\xfe\xee\xc9\x51\x8c\x49\x05\xad\x27\x6c\x37\xba\x30\x09\x65\x3d\x21\xaf\x27\xac\xea\x09\x93\x7a\x42\x56\x4f\x98\xd7\x13\x6e\x6e\x7b\x11\x7e\xcf\xb6\x8a\x6b\x66\x44\x74\xe6\x05\xa7\xbf\x14\x4c\xa4\xf9\x6b\xa7\x20\x13\xbc\xae\x4a\xae\xa7\x59\x6a\xb3\x89\xd2\x95\x28\x22\x50\x16\xbf\x24\x5c\xd0\xc9\xee\x26\xea\x65\x82\x06\x3c\xf5\xf3\xb6\xba\x5e\xb6\xe6\xc5\xce\x67\xca\x27\x93\x4e\x7d\x91\xc5\x5a\x0b\x5e\x93\x67\xd6\xf5\xb5\xd7\x88\x65\xb8\xbb\xa7\x47\x7e\x17\xe7\x92\x85\xa0\xc5\xaa\x7c\xa6\x4b\x74\x93\xe4\x83\x66\x84\xdb\xf2\xac\x33\x0e\xbe\x62\x83\x72\x32\x27\x72\xab\xc6\x91\x66\x08\x23\xa5\xb1\x68\x38\xe9\xe5\xea\x22\xa7\x93\xc7\xaf\x5f\x0c\x68\xf9\x6a\x49\x98\x13\xaa\xc8\xaf\xa4\x7b\xea\xf3\xe9\xc6\x63\xd3\xe3\xd7\x2f\x7c\x46\xdc\x4b\x8e\xc3\x46\xad\x7e\x59\x63\x9c\x09\xc1\x04\x20\x62\xcb\x5a\xc0\xae\x8d\xba\xbd\x12\x67\x9c\xaf\x68\x86\xd5\x70\x86\xde\xd0\xb0\x81\x97\x4a\x34\x5f\x58\x4f\x53\xd7\xd5\x5f\x55\x15\x7a\xae\x13\x46\xf2\x27\x7f\xe2\xd7\xc6\x88\xe3\xb5\x7d\xef\xbb\x50\xae\x46\x6d\xd6\xa5\xcb\xba\xae\x65\xc1\xb1\x3e\xaf\x25\xaa\x53\x7e\x55\x4b\xd5\x87\xfe\x79\x2d\x59\xe3\x80\x8f\xb5\x64\x8d\x12\xf0\xab\x5a\x7a\x21\xe6\x84\xc3\x13\x52\x19\xe1\xb7\xb5\x4c\x05\x9c\x08\xbf\xab\x77\xed\x6b\x83\x46\xf8\xa5\xce\x7e\x6c\x9c\xaf\xe8\xe5\xf9\x73\xed\x14\x38\x0b\x94\x7a\xc9\x3f\x34\x8e\x5c\xb3\x6c\xd3\xe6\xa3\x59\x46\x2e\x6f\x84\xc3\x30\x35\x30\x36\xaf\x88\x6f\xce\xd3\x14\x75\xbc\xc8\xb6\xd9\x1f\xd5\x8c\x7c\x64\x57\x5e\xab\xf5\x2d\x19\xe1\x0f\x5e\xae\x3d\x2e\xeb\xc2\xee\x3c\xf9\x0b\x83\x94\x49\x7d\xc3\x4f\xac\x24\x2c\x43\x4f\x1a\x84\x9d\x5e\xde\x50\xeb\x02\x99\xef\xca\x3f\x4f\x05\x7b\xc1\x68\xa0\xf6\xa9\x52\xea\xa7\xe8\x6e\x47\x30\x74\x50\xa8\xbc\xa0\x05\x69\x37\x6b\x5e\x39\xf3\x96\xa0\xb0\x2c\x76\x20\x81\xad\xa1\x15\x87\xd6\x5a\xf1\x8d\x2f\xbb\x2a\x98\xc2\x40\xdd\xd3\x40\xf0\xad\x92\x6b\xd3\xc2\x04\x19\x79\xab\x41\x55\x27\x77\x02\x13\xaa\xb4\xf8\x50\x22\x07\x23\xdc\xf3\xdd\x3d\xd6\x74\xac\xdb\x66\xd8\x6d\x9d\x62\xab\x76\x76\xc1\x9e\xca\xee\x5a\x26\x0b\xe9\xcd\xd9\xd6\x5b\xd9\x31\x34\x8b\xc7\x54\xbb\x16\x77\x25\x2a\x0a\xa2\xda\xa7\x4b\x1d\xc1\x89\x4c\xb5\x5e\x31\x20\x27\xf5\x13\x10\x92\xfa\xa9\x90\x90\x75\x7b\x3e\x57\xc1\x8d\x5a\x71\x45\x12\xe4\x36\xf1\x43\xd0\x88\xbd\x5f\xee\xb4\x68\xb8\xa6\x01\x7a\x13\x13\x2f\xb7\x4c\xad\xe6\x5d\xbc\xd7\xe3\x03\x91\x5e\xbc\x60\x19\xf9\x08\xd1\xbb\xb8\x11\x65\x56\x56\xa6\x5a\x6f\x49\xcd\xea\xcc\x21\x87\x98\x20\x87\x3a\x62\x82\x2a\xee\x2b\xfa\x5a\xcd\xff\x6d\x5b\x46\xd1\x08\x3b\xcd\xe3\x3c\xe4\x88\xf0\xcd\x8c\xdc\xf6\x40\x00\x7c\xa0\xc9\x4d\x6d\x46\xa3\x2e\xda\x06\x4e\x4f\xb6\xa4\x6f\x36\x3b\x07\xee\x9b\xf4\x81\xae\x6d\x93\x88\x1b\x32\x5c\x27\xcb\x86\x14\x6f\xdf\x61\xc3\x02\x6f\xdb\x9c\xc3\xb4\x52\x86\x92\xeb\xe0\x26\x1c\x96\x72\x0b\x2e\x52\x31\x99\xbf\x53\x33\xff\x8b\xdc\xfb\xc3\x3c\xe9\x9e\x56\xee\x58\xe2\x55\xe2\x9d\x5d\xcb\x51\x3b\x5a\xd1\x93\xd1\x0b\xac\xa5\xf4\x4d\x88\xe0\xcf\x3d\x47\x5c\x9b\x5c\xdb\xcc\xb0\xd9\x30\xb0\x31\x5d\x68\x58\x35\xbf\xe5\x32\xbf\xf6\x94\xd1\xe5\x64\x56\xa8\xaa\x27\xbb\xb8\x5a\x1d\x96\xac\x2d\xbe\x19\xf2\x16\x4a\x1c\x5f\x7a\xd9\xf5\xa9\x62\x8f\x98\x19\xd6\x9d\x4c\xa8\x83\xe3\x0a\xa0\x0a\x62\x6c\x0c\x4a\xf9\xd5\xeb\xc5\x96\x87\xd4\x49\x12\xab\x41\xf0\x6b\x89\xdd\xbc\xb4\xe3\x68\xf9\x31\x32\x0c\xa1\x57\x5c\xe2\xbe\xb3\x98\x29\x1c\xe8\x27\x42\x05\xcc\x34\x4a\xd4\x68\xab\x51\x1d\x72\x7b\xbd\x38\xf8\x36\xec\xa7\x61\x4e\x5b\xca\x9b\x76\x83\x74\xd3\x25\x8c\x25\x64\x61\xbd\x26\x00\x31\x43\x13\x0a\x45\x07\xe9\xdb\xa6\xa9\x50\x38\xd4\xd2\xd8\x3c\xcc\x09\xea\x99\xcb\x48\x14\x4b\x84\x5c\x74\x5d\x88\xed\x0d\x95\x50\xbd\xfd\x11\x1d\xf7\x7a\x71\xc4\x56\x72\xf5\xfc\x90\x23\x26\xf7\x4c\xe8\xee\x4a\x22\x2c\x1f\x4d\xb1\x2b\xa0\x06\x30\x6c\x2f\x16\x45\xc7\xae\x24\x72\xe1\xf8\x82\x31\xf5\xe5\x25\xfa\xc6\xc6\x5d\xa4\x08\x66\xeb\x6d\x1d\x1c\x7c\x8d\x20\x0e\x9c\x6d\x34\x38\x01\xee\xf2\x64\xee\x37\xae\x5f\xa4\xee\xb7\xbb\x4f\x61\xdf\x61\x77\xab\xaa\xc5\xc4\xde\xe5\xaa\x57\x1e\x7b\x97\xac\x5e\x49\xec\x5f\xb6\x66\x9d\x1a\x07\x20\x09\xe7\xb4\xef\xbe\x6d\x3d\x8d\xbb\xaf\xf0\x96\x13\xca\xaa\x16\x66\x56\x73\xaf\x6d\xfe\xfc\x4d\xe0\x17\xe5\x7d\x8b\x2b\xa6\x59\x47\x18\x1e\x12\x76\x49\x79\xc1\x80\x15\x70\x41\xa6\x46\xad\xe4\x7b\x34\x86\x58\x50\xed\x59\x21\xcf\xdd\x4e\xfe\x5f\x15\x7c\x31\x2f\x72\x12\x55\x15\xbe\x48\x9e\xc6\xb3\x40\x30\xee\xd8\x96\x11\xfb\x84\x2a\xdf\x10\xfd\xac\x42\xf8\xba\xde\xa1\xc7\x42\x8e\xe8\x67\xe8\xf0\xbc\xde\x21\x30\xa6\x77\x50\x67\xd7\x71\xdc\xae\xea\xed\x2a\xde\x76\x94\xde\xb5\xe1\xe7\xf5\x86\x35\x7b\x3c\x2a\xef\xda\xf2\xc7\x7a\xcb\x9a\xc3\x1e\xe5\x77\x6d\xf9\x55\x63\x1b\x69\x26\x7d\xb4\xba\x6b\xd3\x6f\xeb\x4d\x07\x7c\xfe\x68\xf2\xe9\xb6\x0c\x38\xa9\xc7\xef\xea\xfd\x19\xd1\xc1\x28\xfb\xe4\x16\x10\xe0\xd6\x43\x95\xcb\xaf\x65\x2f\x4a\xcc\x25\x87\xf1\xb2\xb1\x0b\x42\x49\xc5\x68\xfe\x09\x47\xd3\xa2\xeb\x53\x33\x93\xdd\x92\x21\x47\x5a\x5f\x1e\x05\xac\x03\x14\xd2\x9b\xd5\x10\x9e\xf9\x0f\x45\xb5\x96\x81\x73\x38\x4c\xe7\xbc\xa5\xde\xee\xb6\x15\xeb\x72\x98\x5a\x79\x5b\xc5\xdd\xad\x73\x5f\x65\xfe\xf2\x86\x3d\x70\x5f\x4d\x3e\xe8\x65\xe6\x3f\xa4\xfd\x7d\xef\x43\x5a\xbb\xf3\xbd\xbd\xae\xc0\x7e\x73\xef\x79\x6f\x1e\xb0\xd7\x57\xec\xe3\x3f\xda\xbd\xe7\x7d\x5f\x3b\x18\xd1\xf7\xc5\x25\xe1\x79\x7a\x2d\x7f\xce\xc5\x22\x7f\x97\xce\xe4\x4f\xdd\xaf\x36\x67\x8a\xbe\xf7\xee\x9d\xe8\xfb\xb9\xff\x91\x51\x1e\xe1\xa8\x97\x0a\x01\x7e\xc9\xbe\x37\xb8\x2c\xfa\xde\xbc\x4a\x7c\x6f\x9e\x29\xbe\xd7\xcf\x16\xdf\xab\x47\x8c\xef\x03\xdc\x14\x7d\xef\x5e\x2a\xa3\xef\x0b\xf6\x83\x64\x93\x5f\xf8\x1f\x60\x99\x23\xbf\x94\xb6\x8e\x0a\x0e\x64\xbf\x7f\x24\xe9\xe5\x21\x7e\x01\xef\x83\x5f\xc0\xfb\xf8\xf4\x2b\x3c\x32\xd8\x6a\x7c\x4b\x1f\x81\x27\x38\xca\xe8\x25\xfc\xfc\x12\x9f\xec\x71\x12\x64\x08\x89\x7e\xc1\xe9\x8c\x32\xa8\x75\xdf\xf3\x0e\x88\x47\xdf\xe2\x68\x91\x5e\x5f\x90\x3e\x65\x7d\x62\x44\x9d\x23\x39\x5e\xb9\x20\x4d\x29\x68\x7d\x35\xf5\xcc\x4e\xf0\xa8\x4d\x68\x3a\x1e\x63\x98\x37\xb8\xc0\xdc\xe9\x77\x33\x04\xd4\xfd\x1b\x38\xeb\x54\xff\x3b\x1c\x36\x66\xf3\x19\x58\x9c\x3e\xd8\xe7\x2e\xd1\x64\xbb\x9e\xbe\xc5\xd1\x6e\xe3\x80\xd1\xe9\xd7\xf8\x14\x5b\xc8\x38\x31\x30\x34\x77\xfa\xb5\x4c\x7e\x70\x8a\xdb\x89\x44\xb3\x7c\x9d\x9d\x6b\xdb\x8f\xa0\xfd\xaf\xc7\xde\xd8\xe4\xff\x0e\xa9\xf4\x55\xbd\x52\x64\xc7\x5a\x33\x2b\x84\x15\x94\x83\xfd\xda\xed\xe2\x31\x8e\xf6\xf4\x42\x59\x7f\xa9\xb7\x87\xf2\x47\xd9\xd6\xdb\x97\x63\x03\x8c\x08\x0e\xb4\x4c\xfb\x06\x52\xbe\x01\x67\xab\x5f\xe2\xd1\x83\x6f\xb5\x4f\xcd\xfb\xf8\xf4\x4b\x37\x92\x13\xb7\x3b\x0e\x7a\x9b\xd4\x2d\x3c\xd0\xbb\xf1\xbe\xfe\x7b\xaa\xff\x9e\xa8\xbf\xff\x35\x1e\x9b\x43\x69\x7b\x7f\xe0\xed\x6f\x65\x96\xb8\xb5\x08\x1c\x6e\x2b\x7c\xf7\x2f\x85\xfd\xad\x36\x4c\xda\x76\x56\x71\xd6\x85\x8d\x62\x5f\x7a\xc5\xb6\xda\xcb\xed\xac\xe5\x59\x15\x1e\xd4\x7a\xb3\xd4\x37\x63\x3c\x8a\x40\xe2\x48\xe5\x6d\xaa\xd7\xec\x6b\xa8\xab\x7e\x7f\x65\x40\xf6\xf5\xd8\xee\x3b\x56\x14\x01\x70\x01\xa2\xe6\x73\x6b\x0f\x05\x58\x4e\xee\xea\xe2\x9b\x3b\x74\x01\x9a\x39\x44\x21\xfd\x9d\x9d\x7c\x7b\xd7\x4e\x72\x75\x93\xec\xec\xe4\xbf\x6e\xd6\x89\xc2\xe1\xe6\x7e\xd5\x8d\x3c\xd8\x8f\x89\xef\x07\x87\xd5\xf8\xa5\x3d\x09\x1d\xcb\x9a\xcc\x9d\xf8\x72\x57\xb6\x6e\x79\x37\xee\xdd\xe1\xea\xf6\xd4\xa1\xfa\x5d\x98\xf6\xfe\xfe\x3b\x12\x10\xd5\xbc\xc8\x33\x79\x32\x42\xac\xd3\xc0\x36\x19\x2d\x97\xfa\xee\x50\xe6\x6f\x3e\xc6\x38\xf0\x36\xd9\xe9\x7c\x77\x9e\x96\x12\x71\x81\x84\x47\x39\xe0\x95\xf3\xcc\xfa\x14\xa2\x82\x00\x6a\xf3\xa3\xb5\x47\x85\x24\x47\xa6\x92\x62\x91\x78\xa6\xd5\x57\xef\x5d\x29\xcd\xc3\x1c\xf8\xde\xa2\xfd\x6d\xf6\x74\xbf\x39\x39\xfb\xdf\xff\xf5\xec\xf7\x97\xff\xef\xab\x27\xed\xe4\xac\x23\x85\x2c\x01\xda\x73\x04\x9c\x77\xe0\x5a\x29\x1c\x83\x42\xbf\xbc\x11\xf9\xa7\xea\x3e\xf0\x36\xe5\x7d\xef\x77\x6d\xb3\x06\xed\x07\xd8\x40\xfb\xfc\x8a\x5c\x99\x36\x2a\x74\x3b\xa1\xa5\x48\x1f\x4d\x03\x8c\xe4\x3d\x7d\x1f\x1a\x1e\xe3\xd1\x8d\xd0\x8a\x46\x2a\x0f\x9a\x38\xe5\xc6\x18\xe5\xd4\x9c\xa9\x5b\xa1\x0e\x45\x71\x7a\x24\xf1\xae\xd1\x1d\x80\xb0\xf6\x1d\x6f\x47\x62\x47\x3a\x90\x6b\x99\x4e\xbd\xd8\x6d\x11\x8e\xfc\xdf\x39\x11\xbb\xbc\x70\x7f\x92\x93\xf7\xd9\x8e\x77\x8b\x01\xe9\x6f\x7e\xb2\xff\xfe\x3f\x6f\x7e\xf9\xe5\xe5\xec\x78\x0b\xa3\x7a\x2b\x66\xb4\xc1\xdd\x7a\x3c\xa5\x63\x51\x0b\x66\x35\xbd\x2d\xfb\xe8\x3e\x9d\x9e\xb4\xfc\xd2\xba\xe7\x7b\xd9\x4e\xc3\xa4\xaa\x9f\x4f\xf2\x15\xdf\xcd\xc6\x6e\x67\x53\x0f\xe2\x67\x76\xb2\x2c\x7a\xb5\xcd\x11\xc2\x21\x6e\x52\x1c\x47\x3b\xd3\xa0\x6b\xee\x60\x1a\x9a\xad\x85\xbc\xc0\x68\x5f\xcb\x96\xdf\x08\xa9\xb0\xed\xed\x3f\xb8\x4d\xfb\x0f\x76\xb5\x0f\x3c\xad\xa6\x48\x22\x5e\xc0\xed\xae\xac\xef\x34\x0d\x13\x89\xf4\xc2\x04\x7d\xa9\x31\x5c\x5f\x63\xa0\x3c\x94\xae\x8f\x44\x30\x27\x91\xc3\xea\xc0\x3e\xb9\x27\xf2\x48\x2d\x92\xa9\x66\xde\xc7\xa1\x9a\x3d\x92\x96\xef\xb2\x3e\x50\xa3\x03\xd8\x51\xc3\x70\x86\xcd\x86\x6d\x91\x8f\xcb\x94\x65\xa4\x3e\x0c\x27\xf3\x08\x4a\xdb\x49\x35\x16\xa0\x31\x65\xc1\x57\xc4\x9f\xf5\x37\x40\x3c\x37\x79\xa3\x56\x15\xfe\x56\x46\xc6\x33\x57\xb5\xe4\x63\xdd\x52\xa4\xbd\xa2\xb6\xd6\x0a\x2b\xa9\x43\xdb\x5e\xe1\x03\xb9\x6e\xeb\xc7\x60\x84\xf6\x4a\xbe\xd3\xc8\xb0\x9e\x67\x84\xb1\xa3\x2a\x38\x42\x68\xa9\x28\xd1\xcc\xde\x61\x6e\x67\x43\x76\xb3\x3a\x5f\x6f\xe1\x74\x9a\x00\xdf\xde\xc3\x6e\x3e\x67\x67\x0f\xfe\xc4\x77\x70\x52\x27\xb7\xef\xc1\xae\xfd\x8e\xe6\x4f\xef\x08\xa2\x43\x38\xce\xfb\x77\xec\xe3\x10\x86\xf3\xc1\xed\xfb\x98\xaa\x7b\x69\x67\xf3\x5f\xde\xbe\xf9\x0b\xb8\xeb\x76\xb6\xfe\xd5\x1d\x07\x7f\x47\xd9\xc5\xfe\x0e\xee\x2a\xba\xa8\xf7\xd0\xca\xef\x1f\x20\x79\x0d\xc8\xdb\x6f\xf1\xe9\xb7\x77\x0f\x21\x33\x29\xd8\x24\x15\x86\x7f\x5d\xb1\x9c\x00\x11\x55\xe7\x5d\x99\xc7\xc0\x7e\x62\x0a\x57\xdf\x74\x9f\x8b\xb8\xfd\xa7\x22\x6a\xaf\xaf\x5e\xfc\xfd\xe4\xcb\xe9\xb7\xed\x44\x6d\xba\xa4\x21\x87\xea\x68\xd2\xc0\xe9\xb1\x4c\x08\x1c\x58\xca\x04\x7d\xf3\x7b\x51\x3f\xa3\xef\x35\x68\x9f\x7a\xae\x6e\x5a\xb9\xd5\x6f\xbc\x2d\xfd\xb5\xe3\x32\x2d\xe9\xe0\xde\x6d\xdd\x4d\x8f\x3d\x01\xea\x3b\xc3\x3f\x44\x4f\xf5\x93\x97\x77\xcd\x5b\x0d\x40\xd8\x5f\x8e\xc6\x69\xcb\xb7\xc4\x47\x6b\xae\x4f\x65\xb4\xe5\x9b\x01\x8d\x43\x92\xb0\x7e\x58\xe5\x6c\xef\xff\x97\x77\x40\x55\xb6\xc2\x56\xed\x8c\x91\x3a\x98\x8e\x59\xf0\xb9\x8a\x3a\x53\xe1\xd8\x8f\x06\xdf\x5f\x1f\xf2\xb8\x31\x08\xbf\x9c\xeb\x64\x77\xb9\xda\x2b\xcf\xce\xb2\x97\xcd\x36\xc7\xe3\x10\x06\xe6\xf7\x03\x0b\x2e\x1f\x6b\xfd\xfb\x02\xa1\x5e\xa3\x6d\xeb\x7c\x7d\xf8\xd6\x99\x78\x27\xe1\x50\xa8\xd5\x0f\x75\xfd\xd4\xfb\x9c\xad\xf7\x84\x17\xe1\x83\xde\x56\x42\x6d\x8f\x7f\xb2\x75\xf9\xaa\x91\x73\xdf\x31\x90\x9a\x94\xbb\xe1\x9a\xb6\x96\xf3\xc1\xb6\xbb\xa4\xa8\x5d\xe3\xcd\x12\x00\xee\x3d\xd3\x57\xaf\x5a\x3b\xcb\xa8\x65\xda\x03\x6e\x72\x40\x43\xc1\xf2\x1e\x7a\xbc\xbf\xbe\xcd\xf1\xfe\xcf\x46\xfd\xcf\x46\xfd\x0c\x1b\xb5\xfe\xeb\x20\x45\x84\x93\xbd\x8b\x78\x03\xbd\x8d\x86\xdc\x79\xfb\xab\x94\x96\x4a\x3f\xb0\xcf\x49\xdf\xe2\xfb\x3e\x25\x7f\xab\x07\x33\x2f\xba\xa4\xd7\xd4\x3e\xf2\xbe\x5d\xcc\xbe\x23\x6e\xe4\x14\xce\x74\x9a\x15\x2c\xb7\x4f\x53\x87\x48\xb9\xc9\x3f\x22\x6c\x1e\xbe\xae\xa8\xdc\x0c\x9f\x94\x17\xb8\x15\x0f\xb0\x3d\x62\xe2\x67\x23\xfc\x6b\x41\x54\x5a\xe2\xc5\x6c\xf7\xc7\x09\xf1\xb5\x2e\xca\x22\x5f\x09\x02\xce\xd7\x06\x4b\xab\x05\x9d\xdc\x8b\xd3\x95\x28\x36\xca\xd3\x34\xba\x07\xbe\x3b\xa7\xf4\x23\xc9\xc2\x92\xa8\x1e\xd3\xea\xa2\xc8\xae\x9d\xd6\x7a\x42\x1e\xd2\x84\x86\x9e\x46\x1f\x22\x3a\x8d\xb7\x8f\x8b\x22\x1c\x77\xf9\x66\x03\x7b\x92\x4e\xc0\x17\x99\xeb\xae\xd7\x63\x03\x41\x4a\x11\x8b\x41\x71\x49\xf8\x34\x2f\xae\x8e\xdd\xcf\xf7\xde\xef\xbf\x1a\x1b\xb2\x0e\x3d\x6a\x1b\x64\xe5\xb1\x4d\xc4\x19\xb9\xe8\x13\x6b\x55\xc4\xbd\xac\xbf\x68\xbd\xa8\xac\x66\xe2\xa5\xdd\x41\x69\x0f\x07\x07\x1b\xbd\x34\x8d\x55\x8a\x5d\x86\x30\xe9\x76\x43\x98\xb2\x42\x3a\x08\x47\x6e\xc0\xba\x4c\x67\xe4\xaf\xaf\xa6\xd3\x92\x08\xbc\xf2\x13\xdf\xeb\xc4\xb5\xc4\xc4\xc3\x09\x16\xc5\x72\x98\x61\xc0\xa7\xc3\x39\x56\x38\x73\x38\xad\x12\xd8\x5a\x4f\x8a\x15\xcb\x28\x9b\x3d\xcd\x29\x61\xe2\x8d\x8a\x53\xb1\xd6\x85\x96\xba\xd6\xa2\x4a\xc4\xd6\xc2\x97\x49\xdd\xc1\x8f\xcc\x84\xe9\x6e\x36\x7a\x58\x94\x31\x0d\x01\x3c\x4b\xd6\x15\xbe\x48\xb8\x17\x3e\x08\x5f\x6f\xdd\x2a\x17\xc8\x6e\x0c\x15\xce\x28\xe2\x24\x87\x00\x00\x72\xd7\x5c\xf7\x7a\x6e\x7b\xeb\x6f\x13\xeb\xe8\x62\x5b\x24\xa3\x8b\xe4\xe2\xe6\x7d\xcb\xb3\x61\x7b\x4e\x92\xe4\x7a\xb3\x09\x0e\xd6\xb5\x31\x20\xb8\xd8\x06\xa7\xa3\x49\x3f\x51\xc6\x38\x38\x93\xbf\x44\xb1\x04\x23\xb1\x02\x16\x4b\x9d\xed\xa1\xa8\x92\x8b\x23\xd1\xeb\xc5\x93\x7e\x22\xb4\xeb\xf8\x1f\x75\x15\xf3\xfd\xae\x58\xa2\x6a\x91\x14\x67\xf3\xe1\x02\x17\xbd\x5e\x3c\xd3\x96\x17\x0b\xa4\xc3\x57\x4e\x8e\x73\x18\x30\x98\xfb\x27\x49\x62\x4c\xff\xfb\x70\x35\x27\x5e\xe8\xa8\x97\xa9\x98\x0f\x16\x94\xc5\x97\x78\x72\xbc\x40\x7d\xf5\x9d\x7e\x8c\x4f\xf0\x04\x61\x11\xe6\xcf\xc3\xfc\xe3\x79\x7f\x81\x8e\x58\xb2\x78\x44\x7a\x3d\xf1\x88\x9c\xe9\x6b\x7d\xb8\x78\x24\x7a\x3d\xf2\x48\x9c\x29\x52\x60\x98\x6e\x36\xea\x97\xf2\xbd\x6b\x46\xd6\x57\xc5\x3f\xfd\x70\xc2\xde\x1b\xc3\x93\xc3\x51\x3f\xab\xc8\x0d\xe1\x6c\x66\xcc\x9d\xfa\xf1\xf9\xf1\x1c\x0d\x67\xca\xe6\x25\x9a\x28\xa9\x2b\x94\x39\x3f\x8e\x65\x2f\xf7\xee\x0f\xcf\x01\xd4\x57\x49\xd6\xd8\x19\xdb\x76\x53\x70\x48\x90\xcc\x37\xe8\x1f\xbc\x48\xc7\x91\xd3\x15\xde\x6c\xe2\xab\xe3\x64\x85\x70\x94\x5e\x14\xaa\x55\x8a\x66\x60\x92\x73\xd5\x5f\x1e\x59\x28\x5e\x90\xbc\xb8\x0a\x72\x8f\xa7\x90\xab\xc1\x79\x75\x3c\x3d\x5e\x7e\xb7\x3a\xf6\x0f\xe1\x1f\xb4\x21\x4e\x92\x3d\x5a\x1e\xd1\x84\x6c\x36\xe2\xcc\x35\x54\xf6\x7a\x5d\x09\xae\x33\xdd\xf3\xd0\x8d\x40\x66\x49\xc8\x9a\xd2\xc3\x72\xb3\x89\xdd\x97\x2e\x88\x86\x3a\x01\x9b\x11\xf9\xc3\x3c\x9b\x0e\xfb\x4b\xa4\xfd\x50\x1f\x8c\x45\x41\xe9\x65\x38\xab\xaa\xa3\x9d\x98\x5a\x68\x93\xd9\x1b\x22\x69\x8b\x58\x0b\x9c\x26\x6d\x95\x34\xff\xd0\xa8\x69\x26\xaa\x86\xb7\xae\xaa\xf0\xcc\x19\x67\xd6\x5b\xb1\xec\x51\xb1\x1d\xa9\xea\x18\x6b\x4d\x4c\x7f\xdc\x40\xa8\x47\x69\x8b\x51\x54\xc2\x95\xd9\x5f\xa1\x50\xc3\x23\x66\x77\x7f\xfd\x24\x7a\xdb\x1b\x46\xbc\x56\x18\x9f\xef\xbc\x1e\x54\x19\xb6\xe3\x56\x38\x4a\x95\x35\x5a\xa2\x2e\xa1\x98\xf7\x19\xba\x77\xbf\xda\x83\x01\x76\x40\x0b\xb3\x9d\x9d\xb5\x82\x00\x9a\x7f\xa4\x0d\xd2\xda\x20\xe0\x9d\xff\x5e\x2f\x6e\x6d\x45\x17\x31\xa6\x5d\xde\x89\x3c\x8b\xd3\x86\x6d\x59\x42\x71\x91\x14\x9b\xcd\xf6\xdb\x32\x75\x56\x9c\x49\xbf\xd0\x76\x71\x68\xd8\xd2\x94\xd9\x5f\x69\xb0\xef\xeb\xc4\x0b\x57\xbe\xad\xe4\xae\x07\x07\x57\x28\x79\x54\x84\x96\x1e\x67\x1c\xf2\x4e\x70\x81\x86\xc2\x16\xf3\xa8\x5e\x76\x20\xd5\xeb\x9c\x76\x7f\x7e\x29\x77\xe8\x23\x1d\x22\xa9\x83\xf9\xb6\x70\x71\x35\x9d\x17\xfc\x18\x42\xbc\x41\xc0\xa6\x0c\x9e\x32\x21\x20\x99\x35\xff\xe4\x9b\x4d\x97\x8f\x4e\xc6\x40\x70\x5e\xe7\xab\x52\x11\x9c\x61\x85\xd1\xc9\x58\x39\x56\x7c\x77\xbd\x24\xd6\xa3\xbf\x3e\x87\x70\xcf\xa4\x17\x65\xdc\x56\x0b\x4e\x67\xbf\x3e\x00\x9b\x83\x30\xdd\x5f\xff\xfd\xd6\xfa\xef\xad\x51\x21\x7b\x94\x7c\xb5\xd9\xd0\x47\xc9\x57\xd5\x81\x0b\x56\x0f\xd4\xfe\xf9\x59\x14\x15\x3c\xca\xad\x9e\x09\x37\x45\x92\x13\x13\x70\x4a\x98\x9f\x2f\x8b\x8c\x0c\x59\x72\x52\x81\xdb\x80\x13\x15\xd1\xf2\xbe\x3e\x8b\xe4\xff\x26\x0f\xb0\xf8\xbf\xc9\x03\x74\x64\x62\x5b\xf1\x18\x1d\x59\x73\x27\xaa\xca\x50\x59\x86\xda\x1b\xc5\xf4\x66\xfb\xaa\x2a\x7f\x74\x3f\x52\x46\xfe\xa0\x0d\x86\x55\x7a\x2d\x4e\x56\x6d\xdb\x99\x48\x11\xeb\x30\xe0\xd5\x50\x4f\xc0\x86\xb1\x32\x09\xef\xeb\x25\xde\xbb\x12\x95\xda\x4a\x98\x2a\x32\xd6\x0b\xf8\x40\xd0\x66\x23\x92\x24\x21\x0f\xd1\x5a\x32\x23\x6a\xd5\x00\xb7\xcb\x5d\xe1\xa8\x69\x4c\x6d\xae\x9a\x85\xcd\xd6\x97\x3a\xaf\x45\xe6\x3a\x4e\xfa\xc4\x27\x22\x79\x2d\xfc\xd6\x71\xc2\x5a\x0b\xbc\x6f\x69\xe0\x5d\xb1\xb4\xd9\xae\x3e\xf5\xf3\x6b\x61\x1d\xfd\x70\xa5\x10\x93\xf1\x82\x93\xf4\xc3\x11\x49\x6c\x20\x0a\x0e\x0c\x5a\x2d\xac\x56\x12\x3a\xf2\xc3\xcc\x45\x37\x0b\x03\xff\x2a\x44\x96\x8c\xc6\xa6\x40\x9a\xac\xb5\x1a\xdd\x90\x61\x37\xab\xe1\x09\xb6\x43\x1c\x9e\x54\xb8\x4c\x58\x00\x63\x16\xc0\x38\xb7\xb9\x1a\xc6\x2c\x84\xf1\xaa\xb1\x1b\xfa\x2c\x20\xd4\xc3\x9d\x51\xb6\xe4\xbe\x6f\x56\x95\xd0\xad\xed\x98\xdc\xcf\xac\xf0\x64\x2b\x61\xc9\xd0\x51\x34\xa7\x59\x46\x98\xc4\x6b\x13\xc7\x1d\xc3\x95\xe6\x3a\x4f\xfc\x91\x1c\x0b\x2c\x1e\xad\xea\x21\xda\x44\x3f\xa9\xa7\x0d\xc5\x77\xab\x7a\x10\x38\xaf\x98\x9d\x8a\x48\x4e\xb6\x8c\xe3\xbd\x37\x8e\x77\x60\x55\x6e\x7f\x1f\x73\xcc\xcd\x28\xec\xcc\xcf\xb8\x6d\xde\x41\x83\x9b\x51\xb8\xa0\x70\x5e\x31\x3b\x0a\x2e\x47\x21\xf7\x9c\x46\x11\x62\xb3\xe1\x56\x48\xa0\x77\x8d\xcf\xfc\x51\xe5\x4b\x70\x92\x8a\x78\x94\x8e\x91\xc5\xb5\x41\x6a\x65\x77\xa2\x8a\xf5\x6c\x65\x1f\x69\x72\xf2\x30\xfd\x8e\x9a\xe8\x32\xe9\xf1\x31\x2a\x12\x3a\x4a\xc7\xb8\x18\xe8\x9d\xe8\xc3\xbf\xf0\x77\x42\xbd\x84\x84\x4c\xe1\x2f\x38\x19\xfc\xf8\xe2\xa7\xe7\x6f\xcf\x5f\x3f\x7f\x73\xfe\xfa\xf1\xef\x9f\x27\x64\xf0\xec\xd5\xcb\xf3\x67\xcf\x7f\x7c\xf7\xb8\x99\x20\xcb\x86\x25\x5e\xfc\xf5\xf9\x8f\x46\x7a\xd1\xcc\x08\xd3\xa0\xf6\xe9\x51\xa3\x87\xfb\x47\x8d\x51\x3c\xd0\xa7\x5c\xb7\x6c\x8f\x24\x57\xde\x5f\x9c\xcf\x05\x73\x2a\x49\xc3\xf5\xb5\x0e\x96\x1e\xd1\x29\x4f\x17\x24\x92\xa4\x48\xc9\x27\x49\xf4\x7f\x22\x4c\x34\x75\xb4\xb4\x44\x90\x65\xb2\x6d\xde\x25\x2d\xe9\x05\xcd\xa9\xb8\x4e\xcc\x7e\xb3\x79\x8a\x11\x8e\x4e\x96\x1f\x5d\x9a\xf6\x41\x10\x26\x5e\x14\x3c\x23\x3c\x51\xca\xfa\x35\x0f\xc5\x7e\x48\x56\x62\xee\x1f\x20\x31\xd4\x2b\xdb\x5f\xd4\x41\x34\x95\x8e\xb8\xf2\x85\x83\xb0\x72\xe0\x49\xe2\xe8\xbb\x6e\x56\x4c\xc4\xf5\x92\x74\xe6\x62\x91\x3f\xfa\x4e\xff\x4b\xd2\xec\xd1\x77\xf7\xd4\x1f\xd9\xd3\xa3\xef\xca\x65\xca\x1e\xfd\xf5\xbb\x7b\xf0\xf7\xbb\x7b\x2a\xf1\x1e\x14\x8f\x54\x5c\xd9\xa2\x24\x96\x1d\xe0\x4a\xf4\x26\x4f\xf2\x94\xf2\xd2\x48\xdb\x60\xa4\x03\x25\x47\xd0\x58\x2a\x9c\x90\x1f\x15\x96\x20\x17\x7f\xb9\x49\x46\x4c\x52\x76\x2f\x55\xc0\xfd\x6d\x54\x19\x74\x6b\xca\x75\x62\xbc\x5e\x14\x19\xc9\xc1\x9e\x1c\x2f\x53\x5e\xda\xf6\x87\x24\x79\xa4\x2a\xbc\x15\x9c\xb2\xd9\x60\x92\x2e\x48\x4e\x7f\x21\x71\x34\x49\x59\x3f\x3a\x26\x08\xcb\xeb\x5d\x4d\x45\x8e\xd9\xb7\xde\x9e\x11\xe3\x90\xcc\x6f\x13\xfc\xec\xef\x13\x07\x4b\x00\x4d\x34\xfa\xfd\x8c\x10\xd2\x6b\x50\xa3\x47\xcc\x1c\x12\xb1\xd9\x10\xed\x61\xce\x0c\x26\x16\x41\x28\x60\x5d\xb4\xd5\x9d\x45\x5e\x14\x1f\x56\xcb\x38\x2a\x09\xbf\xa4\x13\x32\x9c\xa4\x2c\x42\xa6\xcb\x1f\x94\x3b\x41\x0b\x26\x84\x2a\x84\x06\x9c\xa4\xd9\x2b\x96\x5f\xc7\x68\xcb\xa6\xd1\x34\xe6\x3d\xd9\xd6\x6f\xa3\x03\x03\x03\xb0\x1b\x67\x92\x32\xed\x7d\x87\x32\xe8\x46\x4f\x56\x72\x60\x6a\xa2\x7a\x57\xe9\x7e\xe1\x29\x01\x52\x34\x40\xe3\x11\xc1\x62\xac\x7d\x02\xad\x75\x1d\x55\x2a\xac\x44\xb5\x57\xa5\x49\xca\xd4\x7e\x8a\x09\xc2\x85\x4b\xf3\xe0\xca\xc0\xc9\x90\xb9\x63\x68\x52\xd4\x36\x20\x35\xbe\x25\xd5\x81\xd5\xbb\xd7\xc5\x20\xd6\xb9\x69\x96\xd5\xb3\x0a\x4c\x11\x2e\x46\x74\x5c\xe1\xcc\x3a\xc6\x0b\x5c\x6e\xee\x6e\xd2\x46\x8d\x49\xf9\x0c\x10\x47\x89\x2a\xdc\xd6\x11\xec\x43\x05\x58\xe7\xd5\x86\x92\x52\x39\x19\x34\x70\x1a\x92\x10\x46\xa2\x42\x7a\xbb\xa6\x59\x66\xdb\x52\x7e\x09\x75\x95\x41\x74\xac\xdc\xc3\xe0\x88\x13\xbd\x06\x91\x1c\xc4\x96\x81\x9b\x98\xc2\x90\xbb\xbd\x49\xe5\x1b\xc6\x0d\xa5\xd9\x85\x76\xd7\xa6\xaa\x18\x77\x09\xba\x01\x0b\x4b\xbc\x7f\xca\xed\xdb\xa9\x3a\x0c\xa5\x78\xc7\x87\x15\x22\x74\x8f\xdd\x7e\xc8\x3e\x77\x1c\x31\x60\xb9\x13\xeb\xba\xd6\x1d\x2c\x7d\x3c\xcc\xf6\xea\x6e\xdf\x40\xc1\xc4\x5b\x42\x8e\xc9\x29\x19\xcd\xf6\xd6\xf9\x9a\x9b\xe8\x13\xcf\x75\x6b\x85\xc7\xe6\xe6\x5b\x87\xee\x38\x66\x44\xb4\x39\x02\x31\x73\xab\x2a\xb4\x6d\x72\xd6\x75\x47\x79\x0f\xec\x79\xfb\x36\xb3\x6d\xce\xda\xcf\x10\xdf\x33\xe1\x80\xe6\xba\x8d\x57\x67\x37\x2e\xe0\x83\xc3\x95\x77\x81\x90\x07\x9c\x00\x61\xb3\x96\xe5\x63\xed\x1a\xb0\x6d\xa5\x75\xa0\x5b\x22\xe2\x68\x99\xaf\x38\xb4\x9c\xbd\xbb\x5e\x12\x7b\x92\x22\x73\x28\x29\x29\x21\x90\x83\x96\x5a\xad\xdd\x50\x86\xbc\xda\x2d\x93\x92\x10\xd5\x58\xbc\x71\xcf\xb4\xed\x1a\x3f\x4d\xc9\x43\x58\xc1\x17\xd0\xd7\x5e\x7f\xf1\x9f\xe6\xfc\x18\x97\xd7\x6f\xd5\xa8\xed\x19\x02\xac\x2f\x49\x98\x5a\x2c\x1c\x7b\x37\xe9\x4b\x18\xf3\x64\x5d\x19\xa7\x74\xad\x57\xf9\x34\x9d\x88\x82\x43\x79\x83\xf5\x86\x92\xf8\x71\x82\x12\xf0\xe7\x96\xd4\x1d\xd1\x69\xc2\x4a\x54\x98\x23\x45\x5d\xd2\x84\x69\xfa\x3c\xf6\xae\xa8\x4a\x79\xa2\xb7\xe3\xc1\x5a\x50\x4b\x13\x1f\x4f\x82\x87\x5b\xc8\xc4\x45\x42\x07\x01\xe1\x65\x9b\xf2\x90\x69\x51\xe1\x49\xea\xfb\xdc\x5b\x87\x78\x13\xfb\xd7\xad\xb9\x5f\xcd\xdd\xaa\x1b\xec\x2a\xc4\x63\x87\xc7\x30\x85\xe6\xa0\x69\x56\x88\xd0\x09\x7e\xd7\x5c\xc7\x3a\x39\xc4\x4d\x5b\x36\x5b\x7d\xd3\xb4\xec\x37\xca\xa6\xca\x1f\xe5\xe7\xc3\xc7\xf5\xe7\x7e\x10\x11\x2d\x73\x2a\xe2\xa8\x13\x21\x0c\x31\xdf\xc5\xa0\xa4\x6c\xb6\xca\x53\x4e\x7f\x21\x28\x66\x83\x65\xb1\x8c\x11\xf8\x7e\x1f\x31\xcd\x9e\xf6\x4f\xc7\x47\x92\x1a\x9a\xe4\xab\x8c\x94\x71\x01\xef\xec\x50\x4e\x43\x34\x5c\x84\x76\xea\x5a\x07\xf0\x97\x3d\xa3\xda\x2a\x55\x96\x51\x1a\x45\xc5\x34\xc2\x11\x65\x11\x8e\xa6\xa0\xed\x21\x0a\xf9\x93\x17\x0b\xa3\xdd\x9d\x96\xd1\xb8\x05\xe8\x20\x01\x2d\x89\xe8\x4f\x0a\x96\x51\x6d\x68\x76\x99\xe6\x34\x03\xd5\xa4\xf2\x9e\xfe\x5d\x48\x7c\x5a\x2c\x88\xa0\x0b\xf2\x39\xe5\x9a\xed\xd2\x68\x3a\x8d\x1f\x73\x9e\x5e\x0f\x68\x09\x7f\x63\x8b\x09\x47\x27\x63\x64\xef\x07\x3f\x75\xb0\x48\x97\x31\xb7\xac\x17\x0f\xab\xf8\x18\xdd\xb1\x2a\x7e\xe4\x01\x15\xba\x42\x6d\x80\x32\x59\x4b\xca\x9c\xe8\x48\x53\x76\x45\xa3\x41\x84\x8c\x46\x88\x45\x16\x71\x81\x55\x54\x56\x87\x10\x8c\x38\xc4\xbc\x97\xd9\xed\x34\x88\x10\x96\x4c\x26\x6c\x0a\x4c\x13\xae\x17\x5b\xa6\x97\x41\x93\xd4\x1e\xeb\xb2\xd7\x2b\x07\xf3\xb4\xf4\xbc\x21\x35\x53\x62\x86\xce\xc4\xd0\x35\x90\x62\xc7\x85\x16\xf5\xb2\x04\x9d\x85\xa3\xaf\x57\x34\x31\x25\xba\x42\x85\x4d\x28\x01\x34\x9b\x0d\xf1\x00\x55\x55\x6d\x7c\x8a\xdd\x5e\xfe\x96\xb2\x44\x95\xc9\x6d\xbd\x57\x4c\x66\x4b\xf1\x83\x2f\xeb\x11\xc1\x7c\xec\xa2\x48\xc0\xb9\xb5\xcd\x20\x9b\x7d\x9b\x1b\xdd\x36\xd3\x72\xa1\x07\x57\x91\x66\x93\xd4\x2c\x24\xa6\xdf\x8d\x05\x5b\x21\xd6\x42\xb3\xe9\x6c\x92\xf5\x0f\x85\xcb\xa7\xa3\x50\x15\x3b\xfb\x67\x83\x19\xf6\xd0\x9c\xad\x33\x52\x98\x7e\x46\x44\x7f\x41\xca\x32\x9d\x85\x48\xc5\x6c\x82\x99\x42\x4c\x53\x3a\x6b\xee\x8b\x96\xe6\x5c\x53\x07\x14\xbe\xa2\x62\xde\xd7\xe3\x2e\x9b\xe4\x89\xdc\x35\x9f\x1e\x99\x25\x9c\xfc\x63\x45\x39\xf9\x7b\x39\x20\x4c\x70\x4a\x4a\x2c\x92\xee\x89\x41\x33\x96\x34\x01\x3f\xdc\x26\x06\x03\x2d\x5f\x73\x52\x12\x26\xe2\xd4\x4a\x56\xd3\x23\xa5\x99\xa4\x4a\x3c\x8e\x69\x4c\x10\x1a\x4c\x29\xcb\x62\x92\x3c\x22\x49\x92\x14\xe8\xa8\x5e\x3d\x47\xbd\x5e\x5c\xca\xeb\x8b\x39\x1a\x48\x8f\x48\xcd\x20\xce\x91\xc9\xc1\xa5\x13\xce\xa6\x49\x89\x4b\x7d\xdd\xac\x3f\x90\xeb\x52\xd2\x08\x0a\x20\x92\xf1\xb6\xe4\xab\x52\x12\x7c\xcd\xc9\x94\x7e\x3c\x8e\xee\xf9\x40\xb7\x6b\x73\xa4\xe4\xb8\x8a\x55\xbb\xc9\x66\x51\x86\x93\xfd\xc5\x2a\x17\x74\x99\x13\xbf\xc4\x5d\x8f\x86\x7f\x1b\xc0\xf3\x86\x8f\xd3\x1f\xc7\x04\x0d\x38\x91\x93\x95\xb0\x8d\x2e\x8a\x22\x27\x29\x44\x56\x55\x05\xc4\xf5\x92\xbc\x9a\xc6\x04\xf5\x7a\x8e\xfa\x3a\xb1\xd9\x20\xd4\xc1\x91\xa2\x09\x22\xb4\xd9\x88\xbb\xc4\x85\xf1\x66\x21\x57\x62\xc8\x30\x23\x57\xa0\xcf\x32\xa4\xb8\xc8\x33\xf5\xb3\xc0\x7a\xea\xc3\x14\x6b\x19\xea\xb0\xd4\x84\xad\xdb\x34\x04\x2e\x49\xb9\x5f\x62\x1b\xaa\x09\x21\xb8\xbc\x4c\x91\x1c\x0d\x52\x76\x1d\x0b\xd8\x45\xc5\x82\x96\xd6\x8b\xbc\x96\x74\xbd\x79\xfb\xe7\xd7\x03\x79\x29\xe4\x68\x20\xe6\x84\x79\xb4\x2c\x8f\xf3\x56\xe1\xd5\x41\x27\xb8\x89\x0c\x3c\x4a\xc4\x16\xfb\xec\xb1\xbd\x35\x81\xd5\x70\x2b\x6d\xcf\x4f\x80\xeb\x75\x01\x8e\xd7\x17\x79\xca\x3e\x0c\xdd\xc9\x58\xaa\x23\x88\xf5\x5f\x2f\x07\x4a\x62\xe5\x1e\x17\x7c\x1a\xd2\x82\xfd\x50\xf0\x61\x4c\x92\x28\x42\x0d\xa1\xeb\x92\x0a\xa0\x8d\xe3\x20\x3d\x4b\xcb\x39\x91\xa4\xa8\xdc\xab\x8a\xb8\xb8\x37\x1a\x9c\xf7\xc7\xf7\x66\xc8\x23\x20\xf7\xd2\xe0\x3b\x96\x46\x14\x7d\x79\xa8\x7e\x55\xda\xcf\xbc\x68\x08\x8d\x6c\x9c\x43\xc7\x81\x28\x2c\x48\xf2\xdc\xe3\x7a\x48\x87\xb2\x52\xa4\x6c\x42\x8a\x69\xe7\x59\x2a\xc8\x66\x13\x15\x50\xd9\xf9\x95\x26\xbd\x5e\x34\x52\x89\x50\x64\x0c\xea\xb7\x67\x64\xd8\xf0\x40\x2d\x6b\x9b\x92\x3f\x41\x9e\x2e\xcb\xc8\x15\x54\x8d\x09\x1a\xc6\x51\x09\x43\x71\x41\x37\xfd\x0e\xd4\x30\xc7\xa0\x01\xb1\xd9\x78\x21\x3a\x6d\x27\x72\x8e\x45\x4e\x36\x9b\x58\xff\x1a\x5c\xa5\x9c\xc5\xd1\xeb\x9c\xa4\x25\xe9\x48\xa8\xfe\x2c\xfb\x52\x0c\xd9\xcf\x1d\x51\x74\xe0\x57\x47\x75\x5b\x4a\x6a\x31\xa8\x19\x43\xa4\x51\xce\x0b\x8e\x06\xa5\x48\x27\x1f\x10\xc2\x76\xc0\x3f\xa5\x3f\xa1\x9b\x1e\x4b\x97\xd2\x27\xb2\xd9\x4f\x71\x59\x07\x77\xff\x67\x94\x0e\x78\xed\x5a\x56\xda\x43\xcc\xf6\xba\x8b\x5a\x07\x3b\xe0\xe9\xd5\xab\x95\x58\xae\x84\xc4\xdc\xdd\x53\x5c\x24\xa1\x08\x01\xe1\x34\x29\x06\x8d\xe3\x1b\x2b\x1e\x80\x0d\xf4\x14\x0d\xd2\xb4\x09\xa0\x89\x2a\x37\xc0\xb0\xd4\xb1\xe7\x72\x85\xa9\x3f\x8a\xe1\x2a\x59\x57\x55\x02\x2a\xb0\x2b\xdb\x80\xbe\x93\x6c\x82\x52\x1e\xd7\x93\x73\x9b\x49\x18\xbd\x2e\xc9\x8f\x43\xe0\x3d\x87\x8f\x1d\x07\x30\x95\x2c\xb6\x78\xa9\x5a\x8a\x05\x0e\xf1\x5b\xe6\xa6\x32\x4c\x2b\xbc\x42\xa8\x92\x6d\x4e\x02\x8e\xa4\x74\x82\x86\xb3\x78\xd5\xc0\x90\x2b\x5c\x6b\x06\x99\xf5\xc9\xb1\x9e\xb6\x9e\xc8\x70\xe2\x26\x5e\xa1\x61\x7d\x70\x93\xfd\x83\xbb\xd9\x66\x0e\x09\xbf\x5f\x13\x9d\x25\xf2\xe6\x00\x01\x53\x70\x85\xea\x99\x35\xee\x18\x04\xbc\xd7\xcd\xe6\xc6\xd3\xe5\xaf\x8c\xa1\x2d\xb1\x60\x78\xf3\x3a\x85\xf0\xd8\xc3\xce\x26\x65\x44\xc6\x87\x4f\xcd\xbb\xf8\x01\xbf\xf0\x45\x5a\x37\x00\x39\x04\xe1\xb4\x20\xb1\x06\x65\xf1\xeb\x20\x22\x6f\x0b\x38\xc2\x4b\x26\x5a\x83\x83\xfa\x5e\x28\x71\x8a\xf0\x4a\xa1\x1e\x43\xde\x22\xed\x11\xdf\x82\x83\x62\x82\x73\xcc\xac\xbc\x4e\x92\xa0\xab\xcd\x26\xf6\x04\xcc\x28\x66\x78\x85\x0e\x67\xd5\x3d\xd0\xd7\x2f\xff\xbb\x81\xfc\x06\x07\xf4\x06\xb4\xc9\xaf\xc5\xc5\x79\x47\x98\x24\xf5\xf0\xea\xeb\x34\xcf\x8b\xab\x27\x40\x00\x76\x4f\x31\x4c\xfc\x07\x40\x69\xc3\xe8\xe5\xcb\x97\x9d\x67\x05\xee\xbc\x7f\xff\xfe\x7d\x54\x21\x1c\x73\x4c\xf5\xaa\xfb\xd5\x8a\x2a\x21\x78\x7d\x41\xa6\x05\x27\xc3\x14\x17\xec\x15\x7f\xa2\x3e\x4a\x9c\x4e\x05\xe1\xc3\x1c\x12\x1f\xc3\xef\x95\xc3\xa4\xb2\x5e\x96\x44\x00\x0c\x79\x41\x14\xbd\x9e\x52\x06\xa3\xa1\x82\xe5\xbc\xc6\x04\x5a\xf1\x52\x3c\x4d\xe6\xa8\x46\x41\xf5\x7a\x5d\x5a\xfe\x94\xfe\x14\x4f\xd1\x59\xda\xeb\xc5\x69\xad\x72\x8a\xf0\x24\x99\x48\x4a\xe9\xc9\xf3\x1f\x5e\xbd\x79\x3e\xee\xc8\xfe\x3b\xb4\xec\xfc\xf4\xea\x5d\x47\xcd\xa2\x13\x1d\x53\x39\x32\xf5\x15\xe1\xf9\xa3\x24\x45\x67\xe1\xd6\xe4\x58\x5d\x88\x99\xbe\x10\xa9\xbd\x17\x1c\x28\xdc\x4c\x2b\x34\x2c\x5b\xd8\xd9\xd2\x0e\xe6\xd5\x4f\x9d\x57\x6f\x3a\x6d\x43\x2a\x58\xa7\xe0\xb5\x81\x39\x18\xcb\xc1\x95\x37\x18\x5b\xb0\x3a\xc1\xf8\xf2\x5e\x2f\xce\x6b\xe3\xcb\xed\xf8\x1e\xff\xf0\xee\xf9\x9b\x70\x60\xb0\xb6\x66\x44\xf0\x11\xe1\xf9\x77\x49\x7e\x83\xd1\x98\xed\x11\x0c\xa4\x1b\xaf\x7a\xbd\x78\x55\x1b\xca\xaa\x06\xaa\x96\x01\x29\x48\x05\xc3\xb2\xfb\x4e\x0e\x6d\x85\x50\x1d\xc1\xec\x81\x54\x73\xcb\x56\x68\xb8\xbb\x85\x88\x15\xa2\x93\x76\x14\x02\xb2\x8d\x99\xd6\xfd\x86\x80\x19\x9b\x82\x0a\xaa\x77\xec\x9c\x4e\x96\x9f\x58\x3f\x8b\xe8\xe8\x86\x08\x91\x7c\x9c\xe4\xab\xf2\x5f\xff\x22\x22\x83\x9c\x96\xa2\xd7\x03\xc9\x76\xa2\xbe\x2c\x3a\x60\x16\x3f\x75\x8a\xc6\xf5\xe3\x41\x40\xde\x3d\xf0\x1e\x1f\x5e\x3f\x45\xf3\xfa\x29\x6e\x77\xfd\x28\xa2\xf0\x5f\x1c\xd4\xea\x35\xa9\x6b\xe8\xa5\xe7\x8b\xa5\xb8\x8e\xfd\x40\xcd\xc4\xca\xdc\x62\x65\x59\x00\xf1\xdd\x58\x88\xbc\xd3\xc6\x42\x18\xe0\x14\x66\x15\x68\xb0\x0a\x69\x7d\x15\xa8\x12\xd8\xdf\x7c\x15\xe0\xe9\xe3\x7f\xf5\x9e\xf7\x20\xf0\xd9\xf7\xfc\x76\x55\x8d\xc3\x88\xb5\x43\x4b\x2b\xa1\xd4\xe4\x06\x35\xb4\x30\xf3\xe0\xf2\x5a\xae\x72\x70\x79\xb3\xa1\x6f\xb1\x2f\x6f\x81\xbe\x6f\xc5\x7d\xb4\xd0\x9a\x2e\xdc\xfd\x67\x53\x98\x31\x3b\xf1\x19\x2c\xf0\x8d\xb5\x66\xf6\x37\xfc\xda\xee\x85\x83\x1a\xe7\x37\x6a\xfc\x47\xbd\x6d\x0e\x6a\x9a\xdd\xa8\xe9\x9f\xf4\x0e\x3b\xa8\x69\x7a\xa3\xa6\x7f\xd0\x9b\xf1\xa0\xa6\x8b\x1b\x35\xfd\xc2\xed\xdb\x83\x5a\x4f\x6f\xd4\xfa\xf3\x8f\x37\x6b\xbd\xbc\x51\xeb\x4f\x03\xe6\xf3\xa0\x0e\xf2\xdd\x0a\x5c\x87\x62\x9d\xdf\x8e\x09\xdd\x75\x59\xfd\x26\xbc\xe6\xaa\x24\x4f\x88\xb8\x22\x84\x69\x79\x99\x6a\xc9\xe3\x2b\xd5\x1d\xc6\xfc\x3b\xcc\xc0\xd1\x5e\x60\x7c\xf7\x05\xc6\x6f\x7b\x81\x19\xb4\xff\xbf\x6e\xc1\xe2\x6d\x62\x01\xf5\x1a\x20\x4f\x08\x7c\xfe\x54\x30\x32\xec\x9e\x56\x08\x0d\x1c\xfb\x0f\x64\x89\xcd\x4e\xba\x27\x96\x32\xd9\xb9\xaa\x06\xd8\x9f\x7d\x55\x1d\xb9\xf0\xaf\x4a\x03\x6a\x4a\xfc\xc8\x7b\xcb\x35\x2f\x37\x67\x24\x59\x9b\x09\x0e\x49\x35\x24\xbd\x9e\x55\xe4\x21\x83\x82\xf5\x7a\xf6\xb9\xc7\x55\x1a\x14\xec\x8c\x25\x23\xf9\x77\x3c\x0c\x35\x95\x64\x1a\x84\x12\x85\xda\x12\xd6\x39\x11\x04\xaa\xf8\xa4\xbe\x26\x1b\x14\xc1\xcf\x7a\xbd\x2e\x1b\x94\xc5\x82\xc4\x24\x79\x54\x8e\xc8\xd8\xb3\xad\x95\x9f\xbd\x5e\x3e\x22\x63\x14\xb2\x05\x4d\xf1\xa0\x5b\xa8\x26\x63\xd0\x9c\xfa\x0a\xac\x75\xc3\x99\xad\xce\x56\x43\xd3\x0e\x58\x6d\xaf\xe0\xb5\xfb\x4c\xfd\x49\x22\x78\xbc\x8c\x86\xfa\xaf\xcd\xef\xf5\x62\x53\xc2\xd4\x45\xb8\xce\x82\x80\xe4\x7e\xc7\xf6\x6b\x2a\xfe\xf4\x67\xe4\xe0\x68\x6b\xf6\x49\x5f\x28\xbb\x02\x87\x44\xb5\x95\xc5\x9d\x94\x7e\x7e\x4f\x44\x22\xb6\x29\xc8\xb4\xe9\xfd\x88\x7d\x9a\xd9\x3b\x66\xdd\xd0\x90\xba\x93\x82\x03\x28\x3d\x81\xd8\x1e\x16\x84\x96\x4f\x9d\x42\x94\x13\xdd\x8b\xe4\x11\x44\xd1\x8d\x39\xbe\x23\xa8\xde\x7e\x36\x15\xa9\x1b\x2a\x92\x1d\x06\xb8\x06\xc2\xb1\xa0\x63\x12\x74\x6c\x8c\x29\x60\x78\x3a\x8d\xcd\xa3\x1e\x1c\xbb\x1a\x1c\xcf\xc8\x50\x27\x2b\xd8\xa1\x98\x81\x10\x8f\x7b\x8a\x14\x50\x4c\x29\x4d\x28\xcd\x64\x31\xf0\xdb\xc0\x50\xbc\xa6\x6b\x25\xdb\x91\x8c\x06\xd2\x42\xb3\xc3\x2b\x0c\x5b\x7a\xd7\xbf\x4d\xb8\xdd\x98\xa0\x1d\xc3\x61\x78\x5d\x6d\xe9\x58\x67\xdd\x4d\x8f\x8e\xb5\x6f\x12\xda\xba\x49\x98\xbf\x49\xe8\xae\x4d\x72\xa0\xee\x5c\x53\xef\xd0\x68\xa4\xf0\x19\xe9\x67\x84\x2c\xb7\x16\xa1\x65\x5f\x6b\x18\xec\x27\x31\x60\x46\x06\xdd\xe3\x15\x9e\xe0\x0c\xcf\xf1\x14\x2f\xdd\x3e\x5b\xb8\xaa\xbc\xd7\xdb\x06\x52\x11\x50\xdc\x7c\xe0\x3e\x70\x10\xe9\x94\x0f\xfc\x4f\x17\xe7\x54\x59\x4e\x42\x9a\x5a\x0f\xee\x19\x29\xf0\xb3\xe0\x4b\xe9\x58\x30\x13\x8f\xbc\x42\x95\x1d\xec\x65\xa8\xf5\xdd\x11\x1d\xca\x3a\xe4\x6c\xc7\xa8\x75\x6f\xb5\xf8\xab\xf5\xe8\xac\x5e\x3c\xd6\x0a\x0d\xc9\x48\x8c\x25\x12\x71\xfd\xce\x1c\xcf\xad\x9c\x55\x14\xc9\xda\xa8\xa9\x76\x7c\x89\x1a\x43\x83\x69\xc1\x9f\xa7\x93\x79\x1c\x5c\x16\xc5\x88\x8c\x13\x36\x22\xa0\x14\x5d\x78\xe0\x4b\xba\x5d\xff\x53\x99\x2b\xdb\xb1\x41\x6e\x00\xd1\x38\x82\x19\x45\x94\x75\x8a\xcd\xa6\xf0\xe1\x26\xef\xfd\xc2\xc2\x59\x12\x72\xb8\x48\xf8\xa0\xcc\xc1\x2c\x6e\xc0\xc9\x25\xe1\xa5\xfa\x95\xad\x26\xc4\x1b\x20\x77\x4a\xab\x1d\x83\x96\x36\x1b\x5e\x21\x5c\x20\x4c\x3d\x92\x24\xe8\x0f\xba\x83\xd1\x84\xe9\x67\x45\x73\x35\xa9\x59\x4d\x1c\x64\xd6\xe2\xc6\x27\xcd\x1e\xb6\x2f\x6d\x01\xea\xef\xab\x3c\x47\xb8\xb8\x0d\x2a\xb8\x58\xd1\x3c\x7b\xa5\x55\xd8\xca\xe4\x3a\xc0\x0e\xcf\x31\x71\x38\x27\x50\x0f\x4f\x2e\xc0\x6a\x03\x33\xc0\xcb\xc6\x73\xc1\x73\x67\x42\x6e\xe0\x48\xae\x3a\xaf\x79\xf1\xf1\x3a\xa6\x78\x2d\xf9\x53\xb8\x27\xe5\x3d\xa7\x14\x41\x8c\x46\x51\x8c\x10\x2e\x75\x36\xe6\x28\x79\x14\xab\x9b\xd0\x2f\x81\x39\xc2\xdd\x13\x54\xa1\xd0\xe1\x1d\x60\x2a\x37\xca\x40\x89\xec\x22\x89\x51\xf2\xa8\xeb\x19\x70\x5f\x9b\xb3\xa3\x0a\x30\xa3\xe4\xa4\x8d\x42\x00\x92\x5e\xac\x7a\x50\xee\x60\x23\x2a\xf7\xf5\x38\xe1\x31\xc1\xf0\xd3\xcd\xcf\x9d\x8e\xf3\x36\xa5\x76\x9b\xd4\x8d\xbb\x64\xb3\xe9\xc6\x81\xaa\x94\x6f\x0c\x0c\x50\xda\x6c\x5a\xf2\x81\xa6\x85\x6c\x84\x2a\x79\x83\x9c\xc7\x4e\x27\x84\xe0\xc8\x78\x45\x46\x68\x48\x2a\xe5\xaf\x2b\x36\x08\xfc\x5c\xf0\x74\xf2\x81\x64\xb8\xa8\x27\xa4\xf5\x04\xa3\xfb\x7e\x9e\x91\x25\x61\x19\x61\xe2\x8f\xe4\xfa\x69\xb1\x58\xa6\x02\xe7\x3b\xf2\x56\x3b\xf2\x26\x3b\xf2\xb2\x64\x92\xa7\x65\xd9\x51\xe6\x42\x65\x47\x0c\x9e\xac\xa6\x53\xc2\x49\x66\x17\x53\x2d\x12\x5f\x4d\x44\x01\xb6\x58\x04\xad\xad\x5d\x16\x41\x78\xa1\x0d\x21\xcf\xf5\x8e\x8d\xb0\x8a\xc7\xef\xe5\x18\x9e\x67\x5a\xcf\xb0\x71\x84\x97\x3a\xe7\x52\xe7\x18\xe2\x21\xf2\x5e\xed\x6c\x26\xc4\x8a\xfd\x13\xbb\xe2\xe9\x12\x16\x24\xc2\xe7\x2e\x13\xf4\x91\xe4\x95\x65\x57\x07\x55\x65\x3a\x25\xbf\x87\x65\x12\x4d\x6b\x65\x48\x85\x22\x6f\x49\xcd\x92\xa7\x63\x2d\x31\x8d\x29\xcf\x4c\xee\xc7\x12\x48\x0c\x4f\x78\x24\xa1\x31\xd0\xc9\xba\xc8\x0b\x76\xd9\x5e\x48\x67\xe8\x62\xaf\x39\x2d\x85\xbc\xbc\x1b\xe5\x4c\x8e\x2e\xf8\x8c\x4a\x24\xd2\x28\x05\xc9\x50\x44\xae\x2c\x65\xb3\x67\xa9\x48\x63\xe3\xe2\x4e\x19\xd1\x69\x20\x63\x61\xbe\xd5\x3a\x61\x56\x63\xd4\xc3\x33\xe8\x82\x4f\xbf\x36\x9a\x87\xa0\xe9\x8b\x30\xc1\x6b\x0d\x50\x67\x2d\x81\x35\xfc\x86\x16\x62\x95\xe5\xf1\x82\x4e\x98\xbc\x08\x0f\xaa\x5e\xa5\x59\x06\x9a\x7c\xc1\xb2\xa9\x89\x07\x59\x7a\xa5\x59\x21\xe8\xf4\xda\xe0\x5b\xb5\x7b\xd5\x9e\x20\x08\x8b\x6a\xb9\x2a\xe7\x50\xa7\x8c\x09\x1e\x0c\x06\xc6\x67\x84\xbd\x95\x1d\x8f\x3e\x64\x55\xa2\xfa\x69\x56\x0a\xd5\x79\x76\xf6\xd9\xde\x72\x75\xee\x0c\x7b\xaf\x63\x50\x64\x36\x74\x88\x70\x5a\xcc\xbc\xd2\x87\x6c\x70\x68\xf1\x03\xa0\x50\x9d\xab\xdc\x3f\x53\x2e\x56\x69\xee\x59\x17\x13\xb4\x8e\x63\xa2\x27\xbd\xa3\x14\xda\x6c\x46\x63\x47\x56\x58\xc7\x08\xbb\x7a\x45\xd5\xb9\xe2\xfc\xff\x48\x00\xed\x27\x51\xe4\xbc\x1d\xe9\x1e\x83\x02\x07\xc3\x58\x20\xcc\x2b\xf2\x91\x4c\x94\x8d\x30\xec\x79\x30\x1f\x90\xdb\x5c\x1f\x47\x6d\x64\xad\x4f\x8a\x51\x25\x0c\x0f\x06\x0b\x0f\xc6\x11\x49\xae\x63\x65\x1f\x6e\x6e\x61\xeb\xa3\x40\xa2\x16\x63\xc7\xae\xab\xd7\x4e\x91\x90\x2c\xc1\x61\x1b\x3c\xb0\x99\x37\xde\x58\x75\x9c\x89\x44\x59\x8f\x57\x15\x9e\x27\xb3\x38\xf3\x23\xbd\x3b\x44\x3b\xa2\xb7\x8e\xee\xaf\x8c\x10\xf0\xb4\xd1\xb8\xd5\x72\x2d\xee\xda\xf6\xb2\x39\x70\x1b\x36\x3e\xbd\x6b\xe3\xb5\xa6\xf5\x6a\x47\x78\x54\xee\x8f\x9b\xdf\x5a\x13\xe1\x2c\x08\x9a\x5f\x2f\xa5\xf1\x76\x84\x47\xf9\x8d\x7b\x30\x75\xf7\xf5\x61\x70\x7e\x84\x47\xab\x1b\x77\x62\x2b\xef\xeb\x05\x4e\x42\x84\x47\x93\x1b\x77\xa1\x6a\xd6\xda\xcf\x3c\x93\xc2\xe7\x4d\xaa\x14\x54\x81\x9d\xe5\x99\x47\x91\x7a\xc9\xad\x14\xeb\x95\x4d\xad\x1a\xf4\xe5\x95\xc7\x03\x03\x01\x13\x10\x29\xbf\x39\x69\xbc\x53\xb8\x57\x67\x9d\x7f\x5d\xa5\x55\x33\xef\x55\x9e\x77\x93\x84\xf4\x7a\x6d\x36\x02\x35\x0a\x59\x19\x13\x04\x49\x6f\xc8\xec\xf9\xc7\x25\xea\xf5\xba\x75\x15\xd8\x03\xe6\xee\x4b\x16\x3e\x9d\xf9\xd2\x2e\xba\xbf\xdb\x3a\xd1\x0a\x2c\x97\xba\x4d\x27\xe7\x87\xda\x5c\x58\x53\x07\x05\x0e\x65\x21\xe1\x19\x4e\x38\x13\x0b\xd9\x55\xe5\x09\xd4\x60\x2a\x82\x5f\x87\xd2\x83\x6a\x92\x8a\xc9\x3c\x76\xa6\xe4\xa7\x95\xab\x44\x6b\x66\xe6\x75\xd9\x9d\xf1\xdb\xe4\xa8\xdd\xc8\x3b\x14\x83\x29\x25\x79\x56\x46\x6e\xe7\xfb\xcb\xf9\x32\x5d\xf6\x7a\x6c\x30\x4f\xcb\x58\x18\x1f\x64\x20\xbb\x87\x81\xca\x0d\xd1\x00\x49\x68\x4a\xab\x01\x03\x85\x1b\x45\x8d\xb1\xf7\x8b\xf2\xb9\xc5\xf1\xae\x02\xf2\x00\x53\xc4\x04\x17\xb8\xdc\xb1\x94\x9d\x50\x69\xa8\x8a\x0b\x47\x8f\xe4\xea\x11\x41\x02\x2a\xc7\x25\x02\xe4\x53\x0e\xf4\xd5\xeb\x88\x0e\xcf\xb5\x9f\x56\x5d\x68\x6d\x9c\xbb\x86\x53\xfd\xf4\x54\x26\x7c\x94\x8e\x8f\xca\x96\x39\xb6\x81\xa3\xc4\x5a\x42\x82\x7a\xbd\xd2\x07\xb7\x11\x22\x9e\xd1\xd1\x68\x30\x18\x14\x38\x1d\x3b\xfb\xe7\x71\xa2\x5d\x0d\x0c\xcb\x96\x4d\x5b\xf6\x7a\x24\x2e\x61\xd8\xa6\x2a\xaa\x10\xa6\x55\x5c\xe0\x12\xaf\x2b\x3c\x1a\x83\xfd\x45\x6d\x26\xea\xe1\xf3\xd1\x09\x02\xae\x5a\x6e\x36\xee\x4c\x8c\xf8\x28\x1f\x1f\x59\x40\x01\xf4\x84\x44\x62\xe0\xde\x19\xd4\xb0\x64\x1a\xda\x6c\xba\x3c\x2e\x46\xf9\x18\x6d\x36\xf2\x4f\xcb\x84\x8c\x09\x86\xcc\xb6\xc6\x17\xbd\x1e\x6f\x9d\x7c\xd8\x23\x57\x93\x46\xc3\x30\x19\x44\xae\xd6\x2f\x82\x11\x29\x73\x84\xaa\xb0\x5c\xaa\x57\x5a\xed\xfc\x1c\x61\xf7\x59\xc0\x27\x58\x4b\xf8\x82\xb4\xd4\x73\x7b\x61\x4f\x8d\x3b\x3f\x9b\x4d\xab\x43\x2c\x32\x12\xe3\x0a\x73\xd3\x77\x62\x7f\x85\xe5\x3d\x26\x52\x89\xf0\xb4\x4f\xce\x24\x7c\x23\x13\xb0\x56\xdd\x98\x25\x49\x2d\x87\x20\xf7\x22\x01\xf6\x34\xee\xcb\x43\x1b\x85\x61\x4c\x15\xe2\xa0\x68\x2d\xe6\xbc\xb8\xea\x58\x33\xa8\x38\xfa\x13\x93\xc7\xad\x23\x8a\xce\xcf\x80\x77\x25\x09\xfb\x73\xe7\x8a\x8a\x79\xe7\xba\x58\xf1\x4e\x96\x8a\x74\xd0\x79\xcc\x89\xfc\xec\x08\x7e\x4d\xd9\x4c\x96\x86\xc2\x1d\x71\x55\xe8\xb8\xb3\xb2\x5c\x47\xed\xc6\xf2\xac\xa3\x2d\xb4\xa6\x34\x27\x9d\x94\x75\x68\x59\xae\x88\x6a\xb4\x86\xf2\x07\x11\xaa\xee\x62\xf5\x99\xb6\x5c\x27\x39\xed\xa7\xcb\x65\xff\x92\xf0\x92\x16\x81\xeb\x9b\xbe\x76\x52\xf2\xeb\xfa\x69\xb0\xc8\xb7\x7b\x7a\x54\x47\x5c\x48\x1d\xa0\x5e\x8f\xf4\x7a\x3c\xb4\xc2\x32\x57\x8a\xa4\x5f\xe8\x14\x1c\x98\x88\x01\x27\x33\x5a\x0a\xc2\x63\x2a\xc9\x09\x96\x74\x4f\x2a\xeb\xee\xc2\xd8\xe5\xe6\xf4\x82\xa7\x9c\x92\x72\x3f\x6c\xd4\x85\xcb\xc9\x8c\x7c\xfc\x6c\xe6\x31\x47\x64\xa0\xbb\x53\xd7\x60\x72\xef\x6f\xd9\xf1\x68\x30\xb6\xff\xde\xc3\xb6\xc4\x73\x90\x33\x91\x6c\x4b\xc9\xfe\x28\xed\xff\x32\xfe\xbf\xb1\xfa\x42\x67\xb2\x66\x39\x4f\x4d\x69\x99\xfb\xb7\x6c\xbc\xfe\xb6\xfa\xe2\x5e\xfb\xdc\xa7\x79\x5a\xce\xfd\x38\x2c\x90\x60\xcc\xed\x5a\x5f\xc9\x6c\xad\xd6\x38\x2e\x61\xfd\xdd\xd4\x08\x3c\x82\xfa\xca\x70\xfe\x33\x07\x5e\xe0\x4b\x3c\xc3\x17\xf8\x1a\x9f\x3b\xba\xe5\xea\x5f\xe9\xc9\xe3\xf9\x6f\xf4\xe4\xf1\xf1\x3f\x4f\x1e\xff\x76\x4f\x1e\x6d\xe6\xe6\x6b\x46\x3e\x8a\xe1\x2b\x3c\x91\x94\x42\x3e\x7c\x5b\x69\x7c\xc7\x57\x0c\x6e\xcf\x77\x89\x75\x2f\x65\x5c\x51\x3a\x6f\x91\x11\x9c\xd4\x41\x39\x2f\xae\x5e\xf3\x62\xc6\x49\x59\x82\x8f\x99\x5a\x79\x56\x88\x38\x22\x1f\xa9\xa0\x6c\x06\x2e\x8d\x6a\xf9\x29\xcb\xe2\x28\x68\x04\x47\xac\x10\xcf\x6d\x8d\x62\xdf\x08\x5c\xe3\x69\xbd\xe8\x45\x51\xe4\x71\x64\xf0\x8c\xe7\xea\xc6\x7a\xd6\x8c\x34\xa6\x01\x77\xcb\x11\xb2\x32\x7f\x57\x40\x75\x22\x54\x38\x3a\xbf\xb4\x72\x3e\x11\xe1\xe8\x5c\xc3\xf6\x65\x33\x13\xd9\x87\x82\xd6\x06\x91\x7d\x2b\xa8\x67\xaf\x7d\x90\x60\x41\x17\xa4\x58\x89\x2a\x42\x38\x33\x8f\x0b\x2a\x46\x29\x9e\xd7\xbe\xa7\xb5\xef\x65\xed\x7b\x51\x7b\x80\x50\xb9\x36\xb0\xeb\x9e\xc7\x87\xe7\x5a\xea\xaf\xc3\xef\x44\x38\x8a\x5c\x62\x9e\x5e\x43\x7c\x63\xa7\x7b\x63\xb3\x64\xe7\x97\x24\xc2\xdd\x53\x97\x16\x40\x1e\x47\x17\x45\x21\x4a\xc1\xd3\x65\x84\xf0\x95\x2e\x12\xee\x8b\x4b\xfd\x68\x61\x72\xbd\x6d\x82\x67\xb5\x3c\xbf\xe6\x93\x94\x47\xf8\xa2\x56\xc0\xec\x1a\x7c\x5d\xcb\x98\xa7\xe5\x93\xbc\x98\x7c\x88\xf0\xb9\xca\x01\x71\xff\xf6\x35\xb6\x8f\x04\xd1\xb4\x58\x31\x25\x77\x06\x16\x74\x4e\xcb\x81\x3f\xc7\xb3\x28\xcd\x09\x17\xfd\x8b\xe2\x63\x27\x1a\xaa\x8f\x8e\x4a\x8a\xa0\x0f\xf8\xfd\xee\x7a\x49\x62\xe7\x5f\x19\x5a\x71\x3b\x66\xb3\x89\x22\x8d\x88\x7f\xfe\x62\xdd\xe8\x42\x8d\x68\xb3\x51\x22\xce\xad\x43\xae\xbe\x58\x93\xea\x67\xe8\x13\x9a\xd6\x7d\x06\x62\xe0\x3a\xb1\xd4\x32\x10\x05\x99\xa5\x86\xf2\xb3\x15\x4f\x35\x05\x26\xaf\x0c\x82\x85\x1f\xc5\xc1\x9f\x89\x1f\xbf\x81\x6c\x36\x5d\x12\x20\x11\x17\x04\xc2\xf0\x8f\xb6\x11\xb1\xa5\x11\x71\xa6\x7e\x0e\xc5\x40\x9f\x14\xb4\xd9\x9c\x1c\xb5\xcd\x67\x2e\x16\xf9\xdb\x74\x4a\xe2\x9f\x05\x4f\x99\x72\x44\xdd\xcf\xf4\xd0\x87\x9d\x2f\xd6\xbc\x5a\x94\x3f\xa3\xea\x1c\x02\xa6\x3f\x67\xc2\xf3\x47\xea\xdc\xdb\x78\xc3\xd0\x02\x6f\x05\x19\x1d\xcd\x52\xee\xca\xd8\xb4\xf1\x23\x49\x2f\xc9\xbe\x36\xba\x5e\x23\x7a\x67\x06\x0d\x83\x8e\xa6\x69\x56\x3b\xdb\xfb\x41\xe6\x18\xdb\x75\xed\xc1\x11\x4a\x07\x35\x75\x61\x5b\xae\x2a\xd8\xd3\x9c\x4e\x3e\xb8\x65\x7a\xe8\x2d\xd2\x0d\x20\xad\x1b\x7e\xa5\x9a\xab\xad\x29\x31\x70\x69\x1f\x2c\x0c\x02\xbc\x5f\xaf\x77\x97\x7a\x46\xb3\x17\xac\x24\x5c\x04\x1e\x3a\xd4\x49\x8d\x51\xf2\xc8\xb9\xab\xad\x23\x9a\x13\x54\x19\xb7\x44\x2e\x57\x3f\xda\xbd\x25\x12\x4b\x79\x8e\x5f\xcd\xfb\xa8\x5b\xf4\x3f\x80\x0b\x20\x1e\xe9\xb7\x07\x97\xb1\xad\x16\x2c\x73\x5b\x2d\xc8\x00\xbf\xcf\x59\x06\x91\x4d\x7f\x94\xfc\x06\x23\x3c\x0e\x02\xff\xd7\xfb\xd1\x4d\xed\xa8\xa8\xa3\xf9\xd7\xbb\x32\x15\xab\x82\xfd\x85\xe6\xf9\x33\xed\x99\x91\xa0\x35\xd1\x1e\x75\x6f\x37\x8a\xed\x75\xf7\x0c\x04\xbf\xd5\x0e\xb9\x2d\xf0\xcd\x8b\x4e\xfb\xaa\x57\xf8\x32\xf9\x18\x2f\x7c\x51\x78\x78\x0f\x8c\xf8\x9d\x5f\x33\xea\x1d\xf8\x57\xc9\x88\xdd\xb5\xf9\x8b\x5d\xe3\x87\xdb\xe8\xee\x2f\x49\xd7\xf5\x3e\xec\x85\x76\xf7\x97\xa4\xf3\x7a\xdb\xee\x4e\xbc\xfb\x4b\x52\xad\xe9\x1d\xc4\xd3\x41\x8f\x4b\x87\x36\x86\xf0\xc2\x7f\x45\xa9\x8d\xc2\x5e\xbd\x87\xbd\x37\x6d\xa9\xbb\xbb\x0f\x7b\xd5\x1e\xf6\xdc\xb4\xa5\xee\xee\x3e\xea\x97\xf1\x61\xcf\x4e\xbb\x9b\xd8\xdd\xa3\xbe\x4e\x22\x3c\xca\x6e\xd8\x91\xa9\xb9\xbf\xfd\xa2\x94\x30\x9b\xdf\xa2\x7d\x59\x73\x5f\xfb\xf6\x8e\x89\xf0\x68\x7a\xe3\x3e\x5c\xed\x7d\xfd\x78\xd8\x38\xc2\xa3\xe5\x8d\x7b\xf2\xeb\xd7\xfa\x5a\xf8\x3a\xaa\xef\x76\x49\x6a\xd4\xbf\xcd\x97\xb0\xa6\x74\x46\x47\xc3\x35\xf1\x10\x0e\x94\xc4\x1c\x05\x4f\x0b\xbf\xa2\xf0\xe2\xee\x2c\xb1\x36\x78\xe6\xca\xe9\xee\x6c\x45\xb3\x1f\x0a\x8e\x2c\x87\x18\xf9\x91\x12\x30\x0b\xd9\xa8\xb8\x2d\xc2\x85\x4a\x83\x1b\x93\x64\x08\xb5\xb0\x56\x10\xe4\x00\x04\x2d\xe9\x91\xcf\x66\x15\x1e\x93\xf2\x8e\x2e\xe4\xcd\xac\x59\xff\x3a\xf7\x22\x19\xaa\xc2\x2a\x71\xc9\x3b\x4c\xc2\x06\xe8\x1f\x97\x6e\x91\x70\x26\x1b\x33\x6d\x29\x1a\x0f\xf3\x24\x3a\x97\x93\x8d\x70\xaa\x12\x62\x96\x50\xb4\x4d\x36\x06\xd1\x17\xbd\x05\x62\x5b\x65\x63\x6c\x8b\x6c\x8c\xd5\x65\x63\x2c\x90\xa6\xb0\xa6\x34\x25\xf5\x64\x63\xda\x5d\xb9\xd6\xc7\x92\x1f\x6d\xde\xca\x05\x9d\x7c\xb8\xde\x6c\x14\xdd\x21\x59\x02\xfe\x2e\x2d\x3f\xb8\x88\x08\x44\xbc\x08\x61\x12\x23\x54\xd5\x29\x65\x4d\x9a\x2a\xe1\x08\xac\x82\x69\x00\x96\x25\x2d\x3f\xbc\xd0\x8f\x2c\x67\xb1\x95\x9b\x0c\x54\xf1\xb8\xb5\x9c\xe9\x5f\x90\x94\x67\xc5\x15\x8b\x11\x1a\xba\x82\x6e\x98\x95\xfc\xae\x8d\xc3\x2d\x6e\xaf\x17\xb7\x55\x52\x6d\x0b\x15\x90\x38\x8e\x32\x9a\x3d\x77\xad\x44\x08\x55\x57\x1e\x35\xa8\x1b\x2d\x98\x4e\xd0\xd4\xba\xfd\xb6\xa0\x6a\x99\x7d\x90\x16\xd5\xe7\x18\x21\xac\x16\xc7\xef\x2e\x8c\x1d\x10\x70\x49\x0d\x0a\x3e\xd8\xc5\xa7\xa8\xf2\x58\x9f\xdd\x65\x4f\xec\xf8\xe6\x64\xf2\xe1\xc5\xf4\xed\xbc\x58\xe5\x99\x66\x9a\xbc\x4d\x00\x0f\x04\x76\x67\x48\x66\x51\x61\xa8\x23\xc3\x73\xbb\xc5\xcc\x53\xc9\xff\x01\xa3\x61\x41\xee\x08\x55\x1c\x34\xd2\x60\x36\x6c\x97\x16\x34\x98\xa8\xa5\x7d\xd7\x36\x18\x5a\x6a\x68\x91\x0c\x59\x4f\x57\xae\x35\x77\xe2\x4f\xec\x2e\x54\xa2\xfd\x77\x7a\x00\x5a\x09\x71\xfb\xe8\xbd\x7d\x57\xb5\x37\xd1\x98\x43\x63\x75\x61\x0a\x79\x49\x3a\x8d\x16\x5b\x4f\x95\x1e\x53\x6c\x7c\x02\x42\x6c\x5c\x95\x75\xd4\xd0\xf9\xdc\x82\xad\xcc\xb1\xa9\x65\x54\xe7\x33\x22\x9e\xe7\xe9\xb2\xb4\x9d\x19\xaf\x0a\xcd\xce\xfa\xed\x2d\xf8\x3b\x99\x24\x2d\x2b\xa6\xce\x09\xd8\xc1\xb5\x1e\x71\xf0\x2e\xd6\xb6\xe1\x34\xc4\xeb\x43\x7c\x94\xf8\x7b\xc6\xf0\xfd\x0a\x5f\x99\x73\xbd\x0d\xe3\xd8\x8d\x87\x2a\x0f\xee\x8a\x8b\xb7\x0f\x56\x6d\xf2\x16\x1d\xa2\x20\x60\xd1\x0d\x1f\x4f\x06\xff\x58\x91\x15\x39\x12\xbd\x9e\xb0\x01\x57\xc0\x01\xad\x92\x8a\x41\x2b\x59\x88\x14\x7c\x1c\xf3\x2c\x40\x9a\x91\xe4\xde\xca\x84\x79\x84\x4b\x6e\xaf\x97\x55\x22\x19\xb7\x49\x72\x17\xf6\x01\xcf\x93\x75\x85\xfd\x27\x88\xc9\x96\x27\x88\xf9\x88\x8c\x93\x89\x7e\x82\x98\x87\x4f\x10\xfe\x27\x9e\xd7\x9f\x20\xe6\x5b\x9f\x20\xe6\x9b\xcd\xbc\xfe\x04\x31\x0f\x9f\x20\xe6\xc9\xea\x90\x27\x88\x20\xe4\x53\x5c\xe2\x1c\xcb\xe5\x21\x15\xc2\x73\x84\x33\xef\x09\x62\x5e\x7b\x20\x98\xeb\x27\x88\x20\xfd\x6c\xde\xbc\x34\x33\xfb\x04\x31\xdf\xfd\x04\x51\xef\xa1\xfd\xde\x97\x43\x9c\xcb\xe9\x29\xda\x81\x26\x73\xcc\x94\x13\x24\xef\xd9\xed\x68\xef\x33\xb2\x22\x2d\x6d\xa4\x8f\xe0\xb1\xaf\xd5\xd5\xe7\x36\xca\x75\x0b\xb9\xaa\xb2\xfb\x57\x54\xcc\x41\x14\xbd\xa5\x58\xd0\x6f\xbf\x00\x17\x8f\xdb\x69\xe0\x19\x51\x2d\x1a\x9b\xef\x76\x87\x1c\x2d\x14\x71\xed\x55\xd2\xd1\xc6\xd3\x7f\xa5\x57\xc8\xe5\x7f\x5e\x03\xff\xdd\x5f\x03\xe5\x2d\xbd\x48\xe2\xc6\x53\x1b\xf9\xc7\x2a\xcd\xe3\x08\xae\x88\x81\xf1\xe5\x70\x12\x30\x42\x8d\x37\xb7\x45\xba\x7c\x72\xad\xeb\x44\x58\x23\xff\xa0\x4a\xfd\x11\x6e\x50\x16\x5c\xd8\x1a\xed\x48\x92\x0c\x96\x9c\x16\x9c\x8a\xeb\xef\x84\xfd\x79\x76\x3a\x74\xe9\x8f\xbc\xf4\xfe\xe9\xf0\x24\x0c\x6d\xd7\x78\xd8\xc3\xab\xd6\x87\x30\x7d\x57\x06\xbc\x9a\xf7\x04\xe6\x71\x1a\x53\x47\x83\x2e\x96\xe2\x3a\xc2\x13\xfd\x90\x64\x32\x60\xe6\x65\x84\xb3\x5a\x7a\xca\x39\x04\x83\xfe\x6f\x35\x5f\x63\xbd\x63\x59\x93\x67\xda\xb3\x84\xb9\x6e\x01\x2e\xd6\x93\x7a\x9d\x8e\xdf\x43\x6c\x6b\xb5\xfa\x9c\xa4\x5c\xdf\xd1\x65\x0c\xa6\x1e\xa1\xbf\x0f\xd5\x39\x61\xd0\x97\x26\x43\x18\xb9\x0a\x24\xb3\x04\xa9\xd6\xaa\x5a\x6b\xe1\x5b\x95\x22\x27\x24\x55\x6b\x1e\x3c\x7e\x2a\x18\xf1\xec\xbd\x89\x6f\xce\x40\x1a\xef\x13\x60\xa9\x2b\x3b\xd0\xd3\xaf\x8c\x82\x0e\xc4\x9c\x8a\x3d\x40\x78\x7b\xc3\x6b\x51\xe8\x88\x78\xae\x92\x1b\xf8\x92\x90\x0f\x3f\x50\x5e\x8a\x5a\x00\x3d\xb5\xbf\x21\xec\xa6\x3a\x4b\x50\xf2\xc7\x74\x4b\xc1\x3c\xb5\xe5\x66\x44\x00\x8c\x34\xcd\x14\x96\x76\x8d\x54\x4d\x60\x7a\x7a\xd2\x60\x18\x44\x3d\x93\x06\xd8\x26\x53\xaf\xf8\x33\xeb\x6c\x64\x2d\xf1\x52\x52\xb7\xf1\x19\x45\x92\xd6\x2a\x21\x30\x8f\x1c\x08\x2d\xd8\x0f\xa0\x98\x45\x21\x51\x33\x5c\xcf\x56\xcb\x9c\x4e\x52\x41\xca\x68\xec\x0e\xae\x73\xfd\x5a\xe0\xb5\x4f\x2f\x02\x6b\x5a\x39\xbb\x40\x25\xc0\x71\x6a\x9d\xa1\x45\x97\xb5\xea\x98\x11\xf1\x0a\x2e\xd4\x57\x5c\x0f\x3b\x86\xc8\x88\x8e\xce\x4f\xb1\xc0\xcc\x99\x63\x58\xff\xf4\xda\x12\x2a\x45\x55\x5b\x23\x41\xd4\xee\x9b\x01\xcc\x0b\xb0\x15\x73\xec\xb4\x89\x7d\x0f\xe9\x61\x84\x05\x81\xce\xd8\x50\xb8\x17\xd2\x5a\xb3\xde\xa6\x6f\x0d\xdd\xa5\xad\xdc\xdf\xc0\x2e\xd4\xcf\xa2\xca\x85\xee\x6c\x48\xd8\x25\xe5\x05\x5b\x28\x57\x15\xa2\x36\x15\xb2\x63\x1e\xce\xc0\xcb\x73\xad\x29\x14\xe7\xd5\x32\xb2\x1b\xc1\x68\xeb\x2a\x47\x86\xe8\x39\xde\xf2\x2e\xdc\x60\x1a\x39\x26\x23\x31\x46\x15\x6c\x87\xf0\xf4\xb6\x0d\x49\x7f\xbe\x53\x1b\xd8\x9d\x6e\x54\xd5\x4f\xb1\xe1\xc5\x92\x58\xab\x91\x26\x8f\xec\x09\xaa\xef\x65\xde\xe4\x2f\x3d\xcb\x2a\x86\xd7\xc6\x99\xa7\x50\x3e\xc2\x25\xe9\x0d\x03\x96\xa8\x91\xa1\xaa\x3a\x9f\xa7\xa5\x3d\x30\xf5\x20\xb3\x0a\xb5\xbb\xf0\x4c\x04\x55\x16\x79\x7a\x0f\x95\x64\xd0\x38\x79\xe0\x4b\xbd\xe1\x10\x45\x9c\x89\xa1\xe6\xb4\x00\x18\xaf\xeb\xd5\xfc\x36\xa1\x73\x6b\x77\x15\x8e\x53\x18\x34\x5b\x35\xd1\xd6\x72\x65\xf1\x14\x91\x7c\xda\x24\x59\xc6\xab\xd0\xe0\x44\xdf\x64\x77\x7f\x41\xca\xea\x6d\x9b\xcb\xf0\xee\xef\x47\xf3\x7a\xd3\xb5\xfb\x74\x54\xde\xd9\x90\x2a\x6c\xbf\xfd\xcc\x1c\xf2\x4c\xb4\xbf\x19\x84\x57\xbe\x1c\x7f\xe5\xcb\xf1\x17\xbb\x58\xa8\x03\x74\x27\x7f\x9b\x50\xbd\xef\x5e\xfe\xf8\x24\xe5\xe5\xc0\x0c\x30\x5e\xd3\x6c\x18\xfd\xf2\xfa\xf5\xe9\xdf\xbf\xf9\xeb\x87\x08\x5f\xe4\xc5\xe4\xc3\xf0\x77\xeb\xa8\xbc\x5e\x5c\x14\x79\x19\x0d\x47\x51\xcf\xe0\x18\x1c\xf5\x52\x21\xc0\x37\x53\x54\x8a\x54\x40\x08\x6c\x59\x64\x74\x7a\x8a\xa3\x8c\x5e\x46\x63\x3c\x3a\xfd\x1a\x9f\xe0\xd1\x83\x53\x3c\x8a\x82\x09\x77\x22\x3c\x7a\x70\x5f\xe6\x79\x4f\x72\xe3\x31\x8e\x20\x43\x56\xf9\x1a\x9f\x8c\xf1\xc8\x14\x32\x12\x35\x59\xc4\xfe\x06\xd9\xf8\xf6\x3a\x5a\xbd\x40\x56\x31\x3f\x55\x8d\xf1\x78\x8c\x47\xf7\xbf\xc4\x11\x2f\x40\x9b\x09\x46\x00\xa3\xfd\x06\xdf\x1f\xe3\xd1\x97\x78\xf4\xe0\x5b\xfc\x60\x8c\x47\xd1\x44\xbf\x97\xe9\x26\xcd\x33\x98\x6c\x41\x75\xae\x0b\x7f\xe9\xf5\xeb\xbf\x33\x35\x0a\x7e\x15\x14\xf4\x9f\x89\xbc\xa2\xa7\x72\x14\xf7\x71\xf4\xb7\xbf\x31\x39\xac\xaf\xf1\xe8\xc1\x37\x6a\x6a\xf7\xbf\x81\xb1\x9c\x9a\xc2\x78\x34\x8a\xdc\x82\x90\xbc\x94\x93\x1c\xad\x6b\x0b\x72\x1f\x47\x9d\x4e\xa7\x03\x53\xfc\x16\x9f\xea\x11\x8c\xf1\xe8\xc1\x57\x30\x61\x0d\xbc\xd3\xb1\xcd\xb1\x0f\x72\x16\x64\x6e\x40\x63\x1c\x2d\x53\x9e\x2e\x88\x20\x5c\x36\x3f\xae\xf0\xae\x0e\x2d\xf0\x60\x03\x38\xbd\xbc\x28\x68\x34\x98\xa5\xae\x50\x7f\x89\x6f\x9b\xf4\xf6\xd9\xea\xee\x4f\xdc\x5e\xfc\x12\x9f\xe8\xc5\xee\x9b\x87\xd3\x28\x84\x76\xa7\x73\x70\x4d\x18\x10\x1e\x9d\x7e\x85\xbf\xb2\x33\x6c\x3c\xc7\xc2\x14\xa1\xfd\xd3\x07\xb5\x4e\xa2\x30\xb1\x0d\xac\xb0\x51\x5b\x12\xa1\xe2\x18\x5e\xfa\x9f\x5f\xa6\x79\x34\x9c\xa6\x79\x49\x70\xb4\x5a\x5e\xa6\x50\x2a\xa2\xd3\x48\x6d\x7a\xf0\x63\x6a\x00\x0f\x1f\x19\xcd\xfa\x54\x3f\xa1\x46\x92\x15\xe9\x67\x66\x03\x56\xbf\xc3\x0b\x22\xd2\xe1\x5a\x05\xec\x82\x78\x92\xb7\x40\x66\x83\xf9\x45\x19\xed\x8f\xb6\xbc\xed\xf1\xf2\x33\x06\x73\xcf\x32\x67\x99\xa0\x1e\xf5\x42\xdb\x01\xab\xd8\x09\x81\x1d\xfd\x7b\x5c\x47\xc4\xaa\x95\x37\xf1\xeb\x75\x68\x47\x17\x27\xa8\x4e\xa0\x5a\xfb\x94\xaa\x11\xf3\x42\x20\xe8\x36\x95\x1c\x89\x15\x78\x68\x3b\xcb\x63\x01\x01\x52\x2d\xf1\x6d\x6c\xc5\x06\xe9\x72\x99\x5f\xc7\x02\x13\xf0\x34\xa2\x9f\x3f\xdb\x4c\x19\x6b\xf3\x22\xb8\x36\xb3\xd6\x79\x84\xdc\xa0\xa8\x05\xee\xd0\xbd\x85\xf6\x9f\x55\xd5\x6a\xdb\x78\x98\x28\xef\xb7\xb0\xf1\x0c\x69\x50\x2d\xe3\x1f\x3e\x20\x0f\x70\xed\x9d\x65\x78\x82\x8d\xa8\x62\x78\x7a\x72\x82\x95\xfc\x7f\xd8\x3d\xc5\x3e\x7a\x92\xdf\x40\x9b\x46\x94\x4d\x8b\x08\x7e\x97\xc3\x51\x54\xae\x26\x13\xa5\x27\xad\xd2\xa3\xab\x94\x33\x78\x1a\x8a\x32\x49\x08\x71\x7b\xfd\xe0\xa8\x24\x93\x82\x65\x29\xbf\x8e\xc6\xb8\xc9\x1a\x0e\x47\x11\x2f\x56\xe0\xbf\x79\x52\x30\xc1\x8b\x1c\x94\xd7\xa2\x4b\x4a\xae\x20\x4d\x1f\xc6\x68\x8c\x1b\x84\xec\xb0\x7b\x5a\x6d\x89\x1a\xb3\x4f\x7c\xfa\xeb\xc6\x74\x75\xd6\x42\x21\xc3\xea\x02\xa7\x26\x49\x62\xad\xbd\xb8\xf3\x71\xb3\x7f\x66\x5a\xda\xac\xcf\xda\x6f\x14\xaf\x6c\x5d\x59\xde\x8d\x07\xbc\x1b\x4b\xc8\x88\x8f\x1b\xa1\x19\xc1\x47\xa4\x18\xf1\x71\xe2\xf1\xe0\x87\x4f\xb6\x60\xf9\xaf\x6b\xed\xa5\x42\x19\x99\x50\x89\xdc\x9f\x2f\x53\xf3\xed\x9f\x76\x93\x44\x0c\xc0\xfd\xda\xab\xa9\x9a\x20\x1f\xb1\x71\x42\x46\x6c\xec\xc5\xa4\x3a\x78\x8e\xf6\xf9\xe0\x9f\x6c\x9a\xc9\x1d\xa6\xa9\xfc\x6d\xf6\x8d\x23\xc3\xfe\x92\xd3\xcb\x54\x90\x7b\x4a\xe8\x12\x66\xff\x36\xe8\xd3\x26\x8d\x3c\x1f\x9a\x81\xd0\x81\x96\x92\xbd\x00\xf5\x6d\x01\xbb\x38\x11\x03\x35\x70\x84\x89\xfc\x52\x5a\xe9\x87\x41\xc0\xba\x74\xb4\x81\x0e\xb7\xbd\x3f\xdd\x08\x74\x9f\x2d\x4e\x24\xf1\x42\x32\xd6\x83\x46\x86\x0e\x4f\xb7\xc4\x71\x94\xc4\x93\xd7\x04\xbf\x8b\x63\xcc\x1d\xe0\xd4\x82\xa1\x7f\x7a\x60\xea\x71\xde\x04\x94\xba\x0a\x00\xd2\x54\xff\x4c\x60\x9c\xaf\x16\x29\xab\xed\xc9\x4f\x7c\x14\x4d\x17\x6d\x3e\x53\xcd\xe5\x72\xef\xfc\x78\xd3\x3f\xbe\x37\x0b\xdd\xba\x8e\xbd\x58\x6c\xcd\xa3\x49\xe4\xd1\x24\x09\xb1\x47\x53\xe9\x24\x18\x1f\xa6\x51\x64\x63\x93\x8b\xe2\xc7\xe2\x8a\xf0\xa7\xa9\x7e\x99\x5b\xe6\xe9\x84\xc4\x42\x72\xdf\x0e\x9f\x0d\x26\xf3\x94\x3f\x16\xf1\x09\x1a\x88\xe2\x4f\xcb\xa5\x29\x7f\x6c\x5e\xf7\x4e\x51\xf5\x59\x96\x20\x97\x63\x9b\xa4\xe5\xa1\x78\x41\x5d\x21\x5e\xad\x4f\xb4\xeb\x3f\xa5\x63\x6a\x32\xb0\xe3\x0b\x97\xba\xee\x9c\xcc\x0b\x3b\xeb\xd7\x61\x37\x71\x94\x5a\x0f\x73\xb4\x1d\xd4\x82\x8a\x9c\x1c\x8e\x81\x75\x28\x36\x5b\xe9\x9f\x12\xd0\x66\x78\x37\x80\xb3\xad\x72\x23\x30\x1f\xbe\xa3\x05\x5f\xb1\xc9\x0d\x22\xeb\xd6\x3c\x5b\x27\xa7\x5f\x9e\x60\x9e\x74\x4f\xc6\xd6\xf9\xc9\x99\xe8\x3f\x18\x8a\x56\x4b\xab\x5d\x18\x81\xf4\x7a\xe6\x3d\xf9\x11\x3b\xe3\x67\x64\x50\xae\x2e\x54\x66\x7c\x82\x19\x3a\x8e\x06\x83\x41\x34\xac\x27\x0f\x6f\xa5\xe6\x6b\x66\xfd\x89\xdd\x68\x6f\x07\xf3\x4a\x22\xa9\x1b\x23\x0e\xaf\xd6\x3f\xe5\x7e\xb6\xe3\xbb\xc1\x86\x76\x75\x3e\xf1\x8e\x6e\xe0\xda\x5f\x93\x52\x8f\x22\xb8\xff\x9a\xb1\x98\x91\x73\x06\xf2\xee\x7a\x49\xb4\x43\x90\xe7\x1f\x97\x64\x22\x48\xd6\x49\x75\x18\x65\xdc\x99\x41\x98\xb9\xe8\xd8\x56\xb4\x31\xa5\xc3\x3b\xf1\x30\x4a\xb6\x8e\x0e\xff\x3d\x61\x61\xe9\x83\x7b\xf1\xd9\xf0\xff\xdb\xfc\xad\xdc\xf4\x37\x7f\xbb\x87\xfe\xf6\xf6\xde\x2c\x9c\xa5\x57\xdd\x23\x17\xaa\xf6\xe8\xbd\x5b\xa1\xc9\xe9\xe2\xdf\x09\x92\x9c\x2e\x6e\xb6\x9d\x5a\x91\xd8\xbf\x3a\x14\x82\x0d\xd1\x02\x8c\x22\xcf\x95\x88\xcc\x17\x44\xd7\xf3\x5a\xb1\xfa\x41\x35\xad\xa0\xbb\xad\x9e\x76\x53\x97\x11\x26\xa8\xb8\xde\x5e\x82\x11\x92\x95\x7d\x4e\x8c\xf3\xb6\xcf\x1b\x6d\xc6\xe0\x7a\x50\x95\xa2\x75\xaf\x7f\xaa\x2f\x78\x63\xfe\x40\xae\xb5\x0f\xcd\xc1\x9c\x66\x19\x61\x49\xf7\x54\xeb\x6d\x0b\xb2\x48\x84\xd1\xe1\xce\xc8\xc7\x84\x1b\x33\x8d\xeb\x9c\x24\xac\xf2\xdd\x91\xa1\x35\x10\xf3\x46\x39\xc5\xfa\x25\x30\x36\x35\x6b\xe5\x64\x60\xe8\xa2\xa9\x6b\x8b\x10\xf5\x18\x7e\x01\xce\x94\xf5\xa8\x8d\x39\x00\xc9\xf3\x1f\xa1\x56\x98\xce\xd3\xab\x17\x82\x2c\xca\x30\x95\x36\x93\xca\x09\x2f\xf2\xfc\x47\x32\x15\x6d\xe9\xef\x8a\x65\xad\xbf\x9c\x12\x26\xfe\x42\x33\x31\x6f\xcb\xf8\x03\xa1\xb3\x79\xad\x25\xed\xa8\xf3\xad\x23\x17\xb5\xde\x96\x4a\x7f\x9e\xc3\x4b\x54\x73\x5a\xa5\xd3\x86\xf2\x52\x5f\xa6\xcb\x36\x07\xdf\x66\xd4\xa0\xcb\x86\x8e\x3c\x97\xc5\x33\x22\x1e\x0b\xc1\xe3\x48\x81\x2f\x42\x47\x01\x34\xdd\x1b\x84\x0b\x5d\x33\xfc\xaa\x09\x9c\x93\x4d\xd8\x9a\xca\xea\xe7\x64\x0a\x9a\x2e\x35\x98\x6d\x29\x2d\x8a\xa5\x2d\xec\x43\xb2\x5e\x9c\x94\x82\x2e\xc0\x77\xe1\x95\xcc\xaf\xd5\xd1\x40\xde\x5e\x69\x0e\x05\x6a\xc3\x52\x7e\xd2\x92\xd6\x71\x29\x07\x5b\x11\xaa\xf0\x39\x9c\xc0\x37\xf6\x00\x3a\x0b\x1d\x6b\xc0\xa1\x3d\x30\xd8\x14\xca\x66\xc6\x1a\xe9\x9c\x96\xbf\xcf\xe9\x62\x41\xf8\xfd\x18\x9d\x69\x1d\x19\x4e\x58\x26\x17\x65\x58\xd3\xed\x99\xd3\x12\xa1\x0a\x67\x34\x7b\x43\x26\x84\x5e\x12\x39\xa4\xd2\xee\x76\xbd\x94\x6a\x0e\xab\x25\x84\x79\x93\xdb\x37\x4c\x7a\x0b\x13\x78\x5d\x28\x67\x07\x31\xaa\xb0\xa7\x2d\xa8\xb7\x96\x6d\x12\xb6\xbf\xb1\xdd\x87\x0f\x6d\x15\x00\x5e\xd2\x5e\x5d\x94\x84\x5f\x12\xbe\xb7\x80\x7a\xfa\x59\xcb\x8e\x14\x50\x87\x85\x9c\x85\xfe\x1d\xd5\x41\x18\x55\xa8\xc2\xc1\x04\xd6\x8d\xb3\x1b\xae\x8a\xcc\xe8\x6b\x87\x23\x4a\x0f\xbd\xbe\x6e\x30\xb6\x08\x39\x45\x19\x73\xde\xbb\x49\x42\x7e\xf3\xe9\xd6\x71\x10\x09\xb4\x28\x20\x90\xbd\xc2\x91\x44\xc4\x91\xea\x18\x5c\x16\x80\x9d\x46\x9a\x65\xf5\xf1\x35\xd2\x6e\xb1\x02\x66\x09\xea\x1b\xc6\xd9\x28\x05\xe7\xc4\x98\x4d\xb5\x21\x92\xe0\xe8\x1f\xb9\xb0\x56\xc0\x07\x2e\x53\x5e\x92\x17\x4c\xc4\x04\x9f\x9e\xa0\x06\x1e\x51\xe5\xbc\xd9\xbb\xac\x08\x13\xa4\x30\x57\x7d\x3f\xf8\xd8\xc3\xf5\x27\x40\x48\x6c\xfb\x13\x8d\xfe\xde\x15\x4b\x55\xac\xd1\xdd\xbb\x62\x29\x01\x6e\xf7\xe5\x53\x87\xa2\x8d\xd1\x4d\x52\xdf\xa3\x03\x0f\x8f\xc7\x0d\x14\xd6\x82\xa0\xfc\xa1\xd6\x2f\x02\xc9\x22\x03\x6a\x4b\x5a\x32\x55\x8e\x2c\xa2\x10\x59\x6b\x19\x95\xa5\x71\x91\x9a\x9b\x97\x0d\xa6\x5c\x80\x0a\xde\x00\xf6\xf1\x83\x28\x7a\xd8\xe3\xa9\xbc\x66\x42\x84\x12\x80\xc2\xc2\x47\x95\xf3\xf6\x0a\x6c\xda\x76\xdb\x3a\xf3\x38\xac\x0b\x61\x13\x27\xd0\x5c\x3c\x1e\x48\x55\x8e\xde\x3b\x5b\x72\x13\xa2\x50\x80\xf8\xff\xd9\x7b\xfb\xef\xb6\x71\x2c\x41\xf4\x77\xfd\x15\x32\x4f\x3d\x35\xb1\x86\x19\xb9\xfa\xcd\xce\x8e\xd2\x88\x26\x95\x38\xd3\x99\xae\x4a\xb2\xb1\xab\x7b\xe7\xa8\xb5\x0e\x2d\x42\x36\x3a\x34\xa8\x01\xa1\x24\x6e\x89\xff\xfb\x3b\xf8\x24\x40\x82\x12\xe5\xd8\xee\xee\x79\x73\x4e\x9d\x8a\x45\x00\x17\x5f\x17\x17\x17\xf7\x13\x52\x13\x09\x0e\x79\xd7\x21\x5c\x07\x2f\xc4\x45\x7b\x07\x25\x83\xf2\xd2\x8c\xae\xc6\xbc\x26\xd6\xb4\x6f\xa8\xd0\xf6\xc2\x2c\x84\x23\x6b\xfa\x60\xf0\x6f\x90\xbb\x8c\x4b\xf4\x4b\xca\x6f\x92\x5b\x42\xe3\x05\x74\xaf\x70\x30\x58\x9c\xa0\x25\xcc\x8e\xc5\xff\xea\x4a\xd9\xb1\x5b\xa9\xce\xe0\x10\xdf\xd4\x3b\x72\xb2\x50\x6b\xbb\x42\xb3\xb9\xd4\x48\x71\x34\x7e\xce\x7f\x97\x3d\xe7\xc7\xc7\xa0\x40\x8b\x63\x0e\xd3\x86\x08\xe0\x26\x51\x7a\xb4\x97\x3c\x2e\x00\x80\xb9\xcc\x9d\x9f\xcf\xd2\x39\x80\xe5\x34\xa6\xed\x25\x51\x39\x78\x05\x21\x94\x11\x1b\xe2\xa2\xe7\xec\x6b\xc3\xd3\x12\x46\xa5\x8a\x23\x45\x1b\x9f\x15\x33\xaa\x23\x4f\xb9\x05\x9f\xf1\x5d\x04\xd3\xc6\x47\x9d\xc2\xa9\x00\x70\x3d\x4b\xe7\xa8\x04\x93\x95\xb4\x9b\x8c\x0b\xe0\x4c\xde\x61\xc0\x34\x06\xca\xd5\x10\xa8\xbf\x9e\xc5\xa5\x33\xc1\x72\xc6\xe7\x40\xa6\x51\x11\xa5\x2b\x5d\x1b\x6c\x0a\xb4\x4a\x56\xc5\xca\xb2\x61\xde\x92\x0d\x9a\x0b\x8a\x6b\xeb\xea\x27\x5a\xb5\x3d\x8b\xe3\x7f\xe6\xf8\x56\x7a\x69\x76\xae\xbb\x5a\x4b\xe5\x37\x1a\xae\x34\x0e\x0f\x2b\x52\x24\x6c\x32\x1c\x3f\x1f\x66\xa4\x5c\xe5\xe9\xdd\x64\x48\x0b\x8a\x9f\x47\xee\x7e\xac\xdc\x5d\x10\x6b\x3b\xe3\xf3\xbf\xc1\xc2\x96\x48\xbc\x4e\x49\x9c\x42\x0c\x0b\xb1\xa4\x6a\xde\x2e\xbf\xee\x1a\xe1\x96\xda\x44\xda\xf2\xec\xeb\x0a\x7a\xdc\xa1\x09\x3c\x6d\x5c\x1a\x04\x95\x7e\x57\x64\xb8\x82\xca\x0c\xab\x9c\x6c\xdc\xfb\x58\xc7\xb8\x6e\xdd\xd3\xd3\xf6\x27\x59\x75\x82\xed\xad\x51\xd3\xa1\xd1\x88\x37\xbe\x5e\x14\xab\xed\xb6\xe5\x8e\xdc\xb8\x94\xdb\x41\x91\xbc\x5b\x54\x2f\x41\x8b\x71\x06\x15\x54\x4b\x28\xee\x92\xf6\x2c\x5c\xfe\xbf\x66\x0a\x7c\x16\x5f\x06\x00\x6f\x0f\xcf\x69\x1a\x1e\x9f\x0b\x64\xf7\x10\x7d\xb3\xb3\x90\x63\xe3\xa1\x8f\xff\xbf\x23\xc3\xdc\xbf\x7c\xcd\xf3\x31\xe1\x24\x6c\x98\x2b\x30\x33\x82\xb5\x7d\x6e\xcb\x2c\x57\x19\x58\xfe\x73\x6d\x43\xa9\x19\x8c\x93\x52\x29\x66\x5c\x3e\x10\xba\x4c\x9a\xf9\xa1\x36\x3d\x82\x51\x13\x0f\x22\x69\xb4\xf9\x4f\xf0\x7f\x2a\x93\xd2\x7f\x52\xff\xfc\xbf\xb5\x65\xe9\x6f\x1d\xcb\x52\x0f\x96\x35\x79\x0d\x54\x0c\xf4\x62\x6d\x51\xf7\x1b\x80\x36\x4d\x38\x7f\xb4\x26\xa6\x3f\xca\x3e\x5c\x93\x57\xf7\xef\x7f\x82\x63\x63\x88\xeb\xfd\xb3\xa7\x4f\xa7\xab\x1f\x7f\xd4\x26\xa1\xa7\x70\xa6\x89\xa3\x63\x07\xfa\xbf\xe0\x8f\x6a\x8a\xa2\x54\x92\x63\x51\x66\x7e\x4b\xaa\x3d\x77\x6c\x3c\x3d\xeb\xcf\xd3\xda\xfc\x73\xbf\xdd\x68\xb7\x75\xa8\x22\x6f\x11\x8c\x4e\x64\x66\xad\x93\x54\xbc\x45\x22\x18\xe1\x74\x71\xe3\xda\x8d\xba\x74\xc1\x27\x22\x0d\xe6\x54\x9f\x2d\x9a\x72\xf2\x05\x9f\xa8\x8a\x32\xd0\xc3\x4e\x93\xd2\xc3\x4e\x62\x4f\xab\xd2\x1d\x40\xdb\xc3\xdb\x2d\x1c\x34\xc2\xe5\x94\x96\xbb\xe5\x80\x72\x8f\x4f\x56\xd6\x65\xe5\x31\x75\x3b\x21\x7d\x4e\xa9\x42\x67\x29\x30\x20\x8e\x8a\x2f\x98\x2d\xf3\xe2\xab\x7a\x1b\xca\x70\xab\x9e\x46\xa7\x2d\xa8\xf3\xe4\x72\x9e\x24\x27\x28\xa9\x09\x88\x93\xda\x22\x23\xfd\x25\xa5\x44\x25\x83\x7f\x23\x70\xb4\x21\x94\x53\x32\x91\x6e\xa1\x89\x2b\x6b\x6b\xc8\x14\x5c\xda\xd5\x7e\x97\xee\x7a\xe2\xb6\x86\xda\xfd\x3a\x95\x23\x53\xa6\xfc\x0d\xe1\x4b\x43\xda\x27\xbf\x61\xf5\x43\x39\x27\xea\x92\x57\x37\x24\xcf\xb4\xb7\xd2\x6a\x95\xdf\x29\x2e\x05\x38\x5f\xbc\x17\x9a\x16\xb6\xde\xd1\x85\xda\xbc\x37\xac\xb8\x95\xc3\xb2\xd1\x72\x52\xc6\xcf\x35\x05\xc5\x8b\xcf\x7a\xf1\x7e\x5d\xb9\xc2\xad\x43\xc0\xee\x12\x30\xa9\xd8\x16\x5e\x6f\x3b\x44\x9d\x15\x74\x27\xb8\xa1\xd3\xd8\x5b\x14\x89\xa4\x89\x41\x4d\xa4\x97\x59\x47\x22\xf4\x2a\xcd\xe8\x1c\x45\xbc\x58\x2f\x6e\x22\x13\x72\xa7\x03\x46\xba\xe6\x45\xa4\xb2\x20\xd8\x63\x0a\xbc\x6e\xe1\x18\xda\x10\x2c\x1e\x90\x95\x96\x98\xa0\x28\xbd\x2a\x8b\x5c\x1a\xd6\x06\xaa\xe5\x0e\x72\xfb\x25\xbc\xc6\x71\xbf\xe0\xaa\xe0\xbc\xb8\x0d\x97\x31\x75\x7e\xf4\x52\xf9\x62\x8a\xc0\xca\xb6\xc6\xca\x70\x9e\xaa\x98\x99\xdd\xb5\x95\x1c\xa2\x43\x0a\x71\x1c\xad\xbe\xed\x6a\xac\x25\x14\x5d\xf2\x09\xd9\xbc\x82\x21\x44\xd2\x27\x56\x4c\x8c\xe0\xec\xdc\x95\xd8\xf8\xc7\xcd\x8a\x06\x9a\x55\x9b\x15\x9b\xe7\xf4\x05\x1a\xdb\x70\x4a\x66\xd0\x5d\x6d\x81\x39\xe5\x5e\x27\x5a\x62\xd5\xe6\xa3\x43\x23\xaa\xc9\x48\xd7\xd3\x5f\x7c\xe8\x1c\x54\xb0\xb9\x60\xa2\xdb\x47\xd8\x73\xca\x76\x0d\x39\xc0\x06\x27\xa5\x77\xfc\xc4\x89\x75\xcc\xbb\xc0\xe6\x2b\xa1\x59\xf1\x35\x61\xf8\x3f\xd7\xb8\xe4\x2f\x3d\x62\x3b\xc5\x2d\xf2\x1b\xac\x17\x8b\xf7\x45\xab\x6a\xa9\xe2\xf1\x14\x6b\x29\x8b\xfb\x9f\xa0\x92\xd4\x22\x40\x13\x36\x21\x42\x3f\x1a\xc5\x3b\x87\xa6\xe0\x34\xc7\x11\x00\x04\x26\xd2\xc3\xdc\x0e\x25\x54\x65\xd7\x55\x23\x56\xdc\x1b\xad\x23\x02\x35\x44\x82\x23\xec\xec\x1a\x64\xf6\xa7\xc0\x42\x99\xb9\xa2\x7e\x68\xb5\x70\x64\x34\x62\xe1\x42\xf5\x18\xa3\xe8\x68\xdc\x85\x8b\x46\xd3\xd6\x3e\x0a\x4c\x09\x1b\x88\x34\x7e\xac\x5f\xb2\x85\xfd\xad\xae\x62\x98\x8a\xc1\x91\x5a\xa2\x58\xd7\x1d\x8d\x8a\xc6\xe7\xdf\x6b\x11\x63\x9c\xd6\x43\x72\xef\x7a\x12\xba\xeb\x0b\x00\x63\xba\xdd\xa6\xc0\x0d\xaa\x24\xd3\xf1\xc8\xb7\x59\xec\x08\x22\xa9\x91\xcc\xba\x8f\x57\xc1\xfc\xc0\x54\x97\xb4\xde\x8f\x04\x16\x5a\xd9\xbf\xc7\xaa\xa4\x66\xb9\x94\x1e\xa1\x7c\x76\xcd\x48\xe6\x33\x70\xaa\xe4\xe4\x8a\xd0\x93\x55\xba\xf8\x8c\xd9\xb3\x25\xf9\x86\xb3\x13\x55\x73\x37\xf3\x76\x8d\x29\x66\x29\x2f\xd8\x53\x30\x6f\xbb\xd3\xb3\x31\x7d\xa0\xb4\xb8\x54\xef\xd4\x15\xa1\x52\x62\x61\x75\xa9\xda\x61\x47\xe6\xb7\x71\xee\x11\x6b\x53\xb1\x91\xf4\x7e\x82\xa1\x16\xcb\x18\x28\x9a\x92\x4b\xb7\x62\x23\x40\xad\x03\xdc\x38\x8e\xc8\xa2\xee\x17\x52\x92\xab\x1c\x9f\x0b\x92\x45\xe8\xf5\x5b\x51\x3f\xd6\x79\xe7\xcc\xad\xf4\xd2\xcf\x1d\x6b\xdb\x9a\x72\x95\x43\x56\x8e\xe6\x25\x6f\x3a\x67\x8b\x8a\xba\x48\x01\xc7\xa0\x52\x03\x0c\xd7\x35\x65\xb6\xb2\x92\xd0\x76\x4e\x40\x69\x43\xff\xa8\xa6\xf1\x27\xc2\x6f\x04\xe2\xca\xf8\x38\x47\x63\x50\x35\x85\x47\x58\x06\x3b\xd0\x79\x68\x24\x0c\x7f\x92\x90\x02\x58\xa8\x02\x3b\x1f\xf5\x55\x85\x63\x4c\xea\xa1\xcb\xcf\x6e\x96\x57\xd5\xd7\x07\xf2\x0d\xe7\xb2\x33\x10\xcb\x4c\x28\x61\x0b\xf8\x36\xba\xdf\x3a\xa8\xbc\x1b\xe9\xcb\x1b\x9c\x2f\x4f\x24\x0f\xfa\x0f\x88\xf5\x0b\x2f\xc5\x67\x00\xed\xff\x6e\x30\xde\x0d\x97\x1a\xc2\x79\x31\xce\xff\xc6\xfa\xef\xc3\xfa\x15\x66\x0b\x4c\x79\x7a\x8d\x45\xe9\xfa\x96\x96\xff\x45\xb1\x5f\xee\xe2\xee\xd0\x73\xf8\x98\x57\xc0\xb0\x05\x5a\xbf\xa3\x22\x7c\x8d\x61\x8a\xc6\xcf\xd3\xdf\xe1\xe7\xe9\xf1\x31\x20\x4a\x09\xa2\x4f\x03\x9b\x15\x73\x73\x20\x28\xd4\xeb\x29\xbf\x56\x00\x1e\x1f\x17\x2f\x10\xd3\x37\xcd\x68\x14\x17\x68\xac\xb5\x7a\x06\x03\x4a\xc3\x15\xb4\x0f\x22\x81\xa7\xe3\xf1\x3d\x8f\xa2\x6c\x79\xef\xc3\x78\x3a\x1e\x1f\x7c\x1c\x45\x9b\xbf\xb7\x03\x29\xe7\x71\x9f\x23\xa9\x16\xc0\x1c\x4a\xbb\x57\x33\x3c\x4f\xf4\x0e\x07\x8e\xa6\x6e\x54\x2a\x95\xe2\x32\x2f\x0a\x16\x93\xe4\xdb\xb3\xd3\xf1\xf8\x7f\xf0\xd0\xa1\xb5\x67\x4f\x9f\xdc\xcd\xb7\x49\x09\xef\x26\x24\xb9\xab\xfa\x9c\xe1\xa6\x8d\xdc\x93\xba\xa9\x49\xb3\x03\xc8\xac\x11\xd4\x80\x23\x63\xa6\x88\x10\x62\xdb\xad\xe3\xab\xcd\xa6\x78\xe2\xbb\x36\xd7\x76\x88\x41\x67\xcb\xbd\x56\x7e\x4f\x3b\x57\xec\xea\x9b\x4c\x36\x6f\xc1\xe2\xfb\x05\xc5\x57\xaa\xff\xc2\x0a\x19\xf1\xd7\xa4\x5c\xdc\x60\xd1\x8d\xa3\x44\xf1\x1a\x41\xec\xa6\xf0\x8d\x8c\xf1\x13\xa1\xd7\xc3\x2f\x24\x1d\x36\xed\x52\xf6\xd8\x69\x76\x10\xdf\xc3\xa4\xb0\x0f\xee\x66\xd6\xbc\xa2\xbc\xe4\x85\xf5\x29\x8c\xcc\x31\x9b\x18\x81\xd1\x73\x5e\xac\x26\xe3\xe7\x39\x5e\xf2\xc9\xf8\xb9\x49\xf5\x33\x24\xc7\xc8\x97\x48\xbd\x3a\x3f\x07\x31\x4e\xbe\x41\x9c\xdc\x01\x48\x8e\x51\xa4\xa8\x63\x74\xcc\x8e\xa3\xd5\xb7\xe7\x9a\x46\x46\xc7\x54\xfe\x8c\x20\xa9\xea\x61\xf9\x87\xf0\x69\xc7\xf6\xff\x84\x86\xd6\x7b\x87\x1d\x79\xf8\xe3\x9d\x07\x4f\xf4\x1d\x72\x54\x25\x31\x96\x91\xa9\x21\x4e\x16\x65\xb9\xb7\xe6\x18\xd4\xf9\x24\x67\xd1\x57\x7c\xf5\x99\x08\x3e\xe2\x4f\xe6\x8f\x5b\x81\xa3\xbf\x14\x7f\x8d\x60\xf4\x3e\x9a\x43\x86\x66\xd1\x89\xaa\x75\x12\xc1\xe8\xe4\xb6\x54\xff\x14\x7f\x95\xff\x16\x27\xd1\x1c\x52\xe4\xc4\x2e\xb3\x36\xd2\x59\xb1\x90\x51\xff\x46\x23\xf3\x57\x62\xfe\xd0\x12\xb9\xee\x12\x35\xeb\x81\x97\xfc\x98\x28\x5c\x28\x10\x99\x36\x5c\x4a\x6f\x71\xae\xee\xe6\x89\x0c\xf5\x57\x0c\x09\x1d\x5a\x17\x7a\xac\x23\xe9\x77\xb8\xa1\x1a\x53\x0a\x95\xdf\x77\xfc\xbc\xfc\x9d\x31\xe3\x79\x5e\x1e\x1f\x9b\x2e\xf9\xac\x9c\x1f\xa7\x6d\xe0\x64\xca\x44\x09\x9e\x14\xbd\xae\x0a\x47\xd3\xd2\x83\x22\xec\x53\xba\x7c\x3f\x6e\xd9\xf1\x18\xeb\x3a\x94\xba\x5f\x2f\xc4\x1f\xe2\x94\xfe\xf8\x1a\x95\xc1\x82\xdf\xbe\x46\x79\x08\xce\xab\xf3\x73\xb4\xee\x00\x25\xca\x16\x1d\xd0\x44\x59\xe6\x96\x89\x0f\xce\x4f\x84\x93\x72\xbd\x92\xeb\xf6\xe3\x6b\xe7\xc7\x6f\x5f\x07\x1d\x67\x9d\xf3\x00\xe2\x88\x9b\x7e\x64\x62\x40\x59\xa1\xa9\x57\x72\xab\x10\x74\x74\x14\xac\xb4\xc2\xac\x5c\x61\x19\x6f\xe9\x3d\x23\xd7\x84\x46\x60\xe0\x0d\x85\xe8\x51\x14\xe8\xe8\x88\x0e\x9a\x19\x87\xa5\xc8\xb3\x16\xbd\x2b\x89\xb3\x39\xe8\x52\xe8\xce\x94\x10\xda\x36\x2c\x1b\x0d\x67\x74\x8e\x6e\xa4\xdc\xa9\xae\x93\x07\xea\x2c\x1b\x75\xd6\x2e\xb7\xfd\x49\x52\xce\x1f\x36\xb8\x5a\x7d\x93\xb4\xf4\x87\x0d\x17\x7f\x7e\xaa\xeb\x2f\xbc\xfa\x3f\x6c\x58\x35\xf9\x61\x73\xa3\xa4\x1d\x6e\xbd\x2c\x54\x6f\xd9\xae\x77\xe3\xd5\xbb\x4d\x39\x23\xdf\xe2\x53\x38\x1c\xcb\xff\x4e\xe1\x50\x8c\x46\xfc\x9f\x57\xc0\x69\xb6\x0c\x34\xfb\x6d\x56\x37\xb4\xcd\xdb\x3f\x6b\x80\xea\x23\xf8\x54\x79\x18\x54\xe8\x9d\x5a\x21\x32\xcd\x27\xc5\xb4\x9c\xa4\x03\x17\xdd\x56\xba\xfc\x16\x91\x69\x36\x29\xa6\x8b\xc9\x7a\xd0\xc0\xce\x50\x5c\xb4\xe2\x76\x55\x94\xe9\x55\x8e\x03\x9e\x72\x79\x51\xae\x19\x3e\x49\x5b\xce\x1b\x8f\x6b\x7c\xa1\x32\x6c\x5e\x5e\xe6\x45\x9a\x61\x36\xe1\x3a\xb9\xa6\x76\x7e\xde\xbc\x7c\x75\xf1\xf6\xfd\x3b\x15\x72\x6e\xa0\xa7\x71\xc3\x6f\xf3\xab\x94\x95\xcf\x3e\xe3\xbb\xaf\x05\xcb\xca\xe6\xe0\x09\x1d\x9a\x8c\xc5\xec\x6e\xca\x10\x97\x92\x70\xc2\xec\x42\xec\x85\x00\x8c\xaa\x9c\x15\x6b\x2e\xbd\x7e\x0e\xea\x73\x34\x8a\x03\xbd\xf6\x86\x05\x80\xf6\x96\x67\x89\x9a\xff\x1e\xe7\xec\x1d\xdb\x7a\x8d\xf9\x89\x5c\x7e\x65\x6a\x70\x92\xd2\xec\x64\x5d\xe2\x93\x0c\xe3\xd5\x89\x8c\x5b\x7c\xb2\x64\xc5\xed\x89\xb4\x63\x78\xea\x80\x40\xe6\xa9\x80\x67\xe3\xb9\x12\xf6\xff\x88\x10\x32\x2e\xaf\x53\x8e\xf0\xec\x74\x3e\x89\xa9\xfc\x17\x8a\x9f\x3f\xda\x08\x1e\x9b\xc5\x9a\x31\x4c\xf9\x1f\x75\x36\x1c\x39\xbd\x09\x87\xeb\x52\xa6\x12\x3f\x13\x53\x9b\xd0\xf0\xed\xd7\x5a\x2e\xf3\x6f\xba\x5a\x61\xda\x3b\x0e\x96\xeb\xf7\x9b\x24\x09\xb6\xe1\x38\x66\xf3\x64\x51\xd0\x45\xca\x55\xa8\xab\xfb\x78\xe3\xaa\x91\x3c\xb0\x2f\x6e\xf7\xc4\x17\x37\x6b\xfa\xf9\x11\x77\x5f\xc2\x47\xb4\xeb\xf8\xdf\xa6\xdf\x26\x1c\x2e\x30\xc9\x27\xac\x92\xaf\xe4\x7a\x71\x05\x4b\x61\xd9\xed\x86\x4d\x7c\x81\x78\x4c\xe0\x18\xc0\x14\x8d\x07\x36\xd6\x82\xc9\x55\x2f\x43\xbf\xa4\x88\x1a\x73\x52\x78\x94\x6e\xb7\xc5\xef\x4e\x81\xd9\xa5\x81\xd6\x48\x8d\x21\x47\x27\xa7\x90\x48\x31\x8b\x6a\xcb\xe2\xf4\x59\x01\x14\x0b\xf6\x1c\xff\x2e\x7d\x0e\xc8\xec\xf8\x98\xcf\x11\xd5\xe1\x14\x30\xc4\xc7\xa8\xb0\xaf\x55\x52\x55\xdd\x9e\xbb\xf5\x52\xce\x30\x74\xa2\xb6\x68\x01\x3d\xd8\xab\x82\xe9\xde\xb7\xc3\x62\x2a\x79\x9e\xea\xda\x3d\xdd\xba\xa5\xf3\x56\xaa\xff\x29\x9e\xcc\xf0\x1c\xf2\x64\x49\x72\x2e\x73\x7f\xbc\x68\x86\x49\xc2\xe0\x5e\xe8\xad\xc7\xfd\x74\xf8\xad\xc2\xb0\xdd\xcf\xa3\x3f\x49\x12\x67\xd3\xb0\x38\xd4\xfc\xde\xb3\x5e\x3f\xb8\x87\xfd\xae\x59\x53\x9e\x92\xa6\xe4\xb6\xb3\x99\x16\x1b\xe9\x68\xbd\x7b\xb8\x7a\x47\x15\x8e\x6b\x01\x60\x28\x2c\xcc\xcb\x98\x01\x88\x1d\x76\xcf\x13\xae\x1e\x1d\xf9\x87\x56\x46\x2c\xf2\x3f\x09\x44\x74\xe2\xf3\x51\x80\x5e\xe0\xd1\x88\xc5\x14\x72\x20\xde\x8d\x13\xe9\x64\x79\x5f\x44\x54\x4b\x14\xa2\x4d\x7f\x8b\x03\x9d\xe1\xc5\x3d\xc3\x4e\xb8\xd1\x66\x74\x88\x62\x13\xfe\x09\x43\xab\x92\x87\x1c\xbd\x93\xe2\xb7\x58\xac\x1d\x29\xdf\xa5\xef\x9c\x30\x83\x75\xe2\x1b\xe9\x81\x74\x0a\x20\x3f\xb9\x67\xce\xb8\xc5\x93\x61\x79\xc6\x8a\xd5\xfd\xd7\xcc\x10\xbf\xed\x36\x96\x71\xc5\xc4\xbb\x4a\x11\xf8\x7b\xe1\x93\x18\xcc\x93\xcd\x1c\x53\xce\x0e\x10\xf2\x34\xa9\xbf\x21\x68\x26\xd9\xa0\x06\x27\xe5\x15\xf7\x99\xfb\x67\x7c\x57\x3e\xd9\xdc\xd5\x95\x74\x72\x15\x8e\xa0\xd5\x49\xdc\x4a\xc5\xf4\xf6\x27\x6e\x33\x29\xee\x53\x87\xeb\xa8\xcd\x5f\xf8\x5f\x64\x7e\x15\x8a\x18\xac\xb3\x96\xf8\x07\x12\x83\xed\xd6\xff\x42\x41\xcd\x8e\x48\x1e\xc7\x72\x14\xa8\x79\xd7\x32\x30\x8d\xcc\xc8\x6a\x2f\x63\x36\xe5\xe8\x05\x8b\x1d\x8f\x31\x88\x01\x98\x50\xf4\x22\x44\x8c\x45\x05\x0a\x31\x80\x0c\x4c\x38\x7a\x61\xa8\xaf\x69\x07\xa9\xb9\xeb\xc9\xbd\xd0\x5f\x35\xfe\xe9\x2e\x14\x2c\xeb\x3b\xa2\x4f\xed\x43\x83\xef\x3e\xfe\xed\x5d\x3a\xe2\xd3\xd9\x7c\x52\xb3\x3e\xdf\xb1\x1c\xdf\x79\x26\x9a\xf1\xa1\x76\x2d\x06\xcd\x1a\x27\xe2\x80\xd5\x80\xac\x7b\x3d\xc4\x5a\xd4\xb7\x79\x22\x3a\xfa\xe9\x4e\x5d\x76\xf7\x5a\x16\xd1\xfc\xe9\x48\x45\x9e\x72\x8e\x7b\xcb\x34\x9c\x65\x69\x06\xad\xed\xe0\x48\x98\xe0\x48\xcc\x93\x4f\x9c\x53\x00\x67\xf3\x7b\x12\x51\x3d\xd8\xc3\x16\xc7\xe5\x47\x9c\x3b\x4d\x60\x2d\xf8\x8e\x75\x63\xc5\xed\xc9\x81\x77\xcc\x03\x7b\xe3\xf4\x98\xa5\xbd\xbe\xc4\x70\xcf\xdc\x2b\x0c\xec\xf5\x58\xe8\x9c\xfa\x35\x2b\xd6\xab\xfb\x1f\x25\x37\x3c\xa9\x0d\x21\x6d\xb2\xef\x70\xf4\xa2\x15\x69\x57\xd2\x5e\x82\xd8\x8c\xce\x07\xfe\x2b\x8c\x80\xed\x36\x26\x68\x36\x87\x32\x88\x29\x01\x50\x5b\x19\x08\x3e\x13\xb2\xfb\xa0\x98\x9c\xdc\x13\x9e\xbf\x9b\xb4\x3c\xa1\xf8\x5b\x38\x91\x72\x77\x33\xd5\xa4\xf7\x8d\xbe\xa3\xe6\x7d\xa5\x61\xfb\x43\xc6\x78\x8a\x20\x0a\x09\x3a\x3a\x05\x1b\x2a\x6d\x4f\x67\x73\x65\x31\x52\x28\x89\xbe\x98\x0d\x50\x95\x8c\xd0\xe0\xc8\xf7\xb2\x2c\x20\x86\xc4\x61\x29\xcc\xb5\x5f\xdc\x8b\xc6\xde\xa4\xe5\x3b\xfc\x8d\x23\x12\xde\xe4\x62\xcf\x09\x53\xd2\x39\x5f\xc8\xc6\xb5\x90\x8d\xf9\x42\xb6\xa2\x42\x7e\x3c\x8e\x5a\x87\x4f\xa4\xed\x53\xd1\xa0\x42\xc5\xc1\xd8\xb3\x62\xf8\x0b\x29\xd6\x7d\x1f\xb2\xe6\xdf\xba\xd9\x7f\x15\x2c\x32\x33\x7a\x62\x4c\xfa\xa0\xbb\xfd\xc7\xc7\x26\x42\xff\xce\xde\xd7\xc7\xf7\xe2\x12\x08\x7d\xba\xf7\x35\xa1\x1c\xb3\x12\xdf\x4f\xca\xe8\xc9\xc5\x87\x36\x9b\x43\x9b\x9d\x9a\xcc\xe6\x40\xf9\xfa\x1b\x96\x5b\xdc\x93\x36\x64\x3b\x1a\x3f\x67\xbf\x33\x9a\x81\xe7\xcc\x68\xc0\x65\xf8\x2c\xa2\x22\xb8\x9b\xba\x18\x8d\x9f\xe3\xdf\x11\x53\x17\xab\x90\x03\x64\x86\xe7\x08\x21\x0e\x36\x14\x1d\x8d\x07\x57\x0c\xa7\x9f\x2b\xf1\xa6\x3b\x75\xe2\xda\x1f\x9d\xea\x50\xef\x62\x99\xef\xb7\x2f\x7a\xad\x9e\x70\x77\xbe\x14\x9f\x1f\xd3\xee\x49\x75\xd0\x19\xfd\x78\x93\xe6\xb9\xd5\xda\x25\x1f\xcf\xff\xf8\xa1\xf1\x7a\x4e\x92\x84\xd5\x91\x50\x75\x38\x87\x20\x57\x4d\xc1\xd4\xf1\x69\x50\x02\x7f\x2a\x31\x86\x1b\x8c\xe1\xec\xee\xad\x1c\x8f\xe0\x98\x20\x03\xb5\xb5\x98\x78\xb0\xba\xb1\x59\xbc\x1e\xea\x66\x54\xd9\xed\x7f\x4f\x28\xe4\xee\xbd\xf8\x4b\x41\xee\xf3\xca\xe8\x92\x44\x35\x0f\x89\xa5\x35\x11\x8c\x00\xe4\xca\x17\xe4\x7e\x0f\x53\xd1\xf4\xc9\x50\xf4\x33\xbe\x7b\x30\x19\x95\xcc\xa0\xfb\x0f\x21\xa0\xba\x4d\xbf\xef\x01\xb1\xe3\x25\x1e\xbb\xd2\x4a\xef\x7c\x58\xf9\xcf\xbd\xb0\x42\xe6\xa4\x7d\xca\x05\x7a\x94\xd5\x51\x4b\x72\xbf\x73\x71\x9b\x3e\x9d\xf4\xf6\x80\x27\x51\x9d\x21\x46\x07\x97\x79\x02\x2e\xb5\x6b\x0b\xb4\x01\xa4\xe4\x51\xd9\x76\x1b\x33\xcb\xa3\x92\x46\x56\x00\x06\xb1\xb2\x95\x36\x76\xee\x27\xa7\x5e\x8e\x23\xb5\x69\xc4\x72\x47\x04\x21\x54\x58\x8b\x60\x29\x68\xb2\x51\x69\xc8\xf1\xe9\xbd\x36\x54\x2c\xf2\x7d\x75\x3b\xbb\xb8\x56\x12\xe2\x5a\x59\x88\x6b\xa5\x31\x87\xa4\xc5\xb5\x1e\xa6\x15\xa2\xc5\xbd\x54\x1c\x56\x2b\x07\xd0\x8b\x4d\x75\xaf\xe5\x2b\x9e\x50\x9d\xa1\xd3\xca\xa4\xf7\x61\x34\xa5\x0c\xbf\x65\x01\x50\x73\xde\xad\x70\x7a\x4e\x12\x30\x8b\x64\xf7\xa3\x19\xa6\xf9\xfd\x45\x76\xae\xe4\x55\xbb\x59\x7d\x87\xd8\x4e\x25\xf7\x12\x6f\xd9\xef\xb9\x72\x03\x9a\x06\x3c\xc5\x13\x8c\x5e\xdc\xeb\xea\x35\x83\x7a\x32\x64\x5a\x91\x55\xc8\x98\xad\x8f\xd4\x80\xac\x70\x2f\x0a\xdb\xb0\xda\x7a\xba\xd0\x23\x3c\x11\x63\x1c\x58\x72\x33\x1a\xc5\x74\x66\x7f\xcd\xd1\xd1\x18\x7c\x4f\x1c\xf9\x7d\x4b\x73\x98\xbe\x6d\xc5\x8a\x5b\x52\xee\xf3\x1e\xe8\x63\x4e\x20\xa5\xee\xfc\x06\xd3\x98\x49\x9d\xbf\x6f\x52\x20\x93\x42\x35\x73\x24\x49\x53\x8d\xfa\xf5\xe9\x18\x11\x40\x02\xd0\x0b\xf1\x14\x27\x53\x5d\x4d\x9a\x11\x50\x00\x8d\xf3\xfa\xfd\xde\x7f\xe2\x95\xf1\x46\x77\x2f\x1f\x4d\x62\xcd\x0e\xbb\x81\xbe\x67\x83\x0e\x13\x94\xfd\xbd\xf2\x15\xdd\xdc\xc4\x4e\x06\x42\x6d\x67\x07\x03\x71\x72\x3f\x06\xc2\xac\xe8\x3f\x3e\x13\xf1\x9f\x3a\xf1\xf3\x23\x9f\xde\xae\x73\xc8\xfa\x9d\x43\x06\x26\x4e\x47\x74\x1f\x25\x10\xac\x8d\x6e\x07\x26\xfa\x8f\xea\xfb\xcf\xb1\x5c\xab\x27\x53\x62\x33\x15\xdc\xed\x80\x9d\x91\xf6\x73\x8c\x94\xed\x6b\xa7\x87\x25\x03\x45\x4e\x6a\x75\x3f\x5f\x2a\x05\xa3\x11\xad\x1d\x5d\xc9\x32\xc6\xbf\x63\xc6\xd9\x84\x4e\x79\x92\x73\x3c\x11\xff\xaf\x13\xe1\x23\xfc\xbc\x90\xf6\xfc\x2a\xb8\xa7\x55\x4e\x89\xb6\x2f\xbc\xb6\xd7\xb2\xed\x75\xb8\xed\xc9\x89\xd3\xd6\x32\x6d\x08\xb1\xd1\x88\x8e\x46\xba\x88\x01\x48\xee\xb3\x9d\x72\x81\x9f\x6e\x3b\x25\x76\x3f\x92\x16\xde\xba\x2a\xdf\x57\xf9\xae\x9a\x3f\x19\x1f\xc6\xb0\x64\xea\x9f\xce\x4e\xc7\x35\xa2\xb9\x8f\xc1\x8e\xd5\xbb\xc0\x83\x2c\x70\x8e\x82\x26\x38\x47\x7d\x6c\x70\x1e\xd6\x04\x47\x2d\xf8\x13\x9a\xe0\x30\xbc\xc2\xf7\x7a\xb3\x79\xa2\x1c\xe3\x15\x7c\xd4\xa0\x48\x02\xeb\xf9\x7c\xa2\x94\xe2\x2a\xf9\xb2\x8c\x09\xb9\x51\x22\x85\x09\xae\x80\x94\xf7\x88\x8b\xe0\xbe\x07\x42\x8c\xff\x09\x0f\xc4\x17\xcc\xfa\xe7\x8b\xe9\x10\x88\xb6\x14\x28\x75\x44\x7c\x6d\xbf\x38\x06\x89\xee\x2a\x06\x93\x19\x9e\xdf\x6f\x69\x24\x80\x27\x5b\x9b\xf2\x66\xbd\x5c\xe6\xf7\x59\x1b\x49\x1b\xa4\xa6\x48\x2a\x50\x55\x1a\x35\xbd\x0e\x40\x8b\x9f\x74\x28\x64\xf7\x04\x37\xb3\x85\x8f\x46\x7c\xbb\x95\x5e\xfa\x2c\xa5\x59\x71\xfb\x9c\xbc\x38\x7d\x0e\x98\xeb\xb8\xcf\x63\xf0\x3f\xc8\xc9\x09\x80\x14\xe1\x19\x99\x43\xf1\x3f\xa9\x80\x82\x58\x66\x0b\xb6\x79\x74\xee\xb3\xe0\x7a\x01\x1e\x46\x94\x60\xb5\x8d\x4c\xfa\x23\xb9\x5a\xca\x26\x15\x9c\x72\xc1\x5f\x83\xc9\x8c\xcd\xbf\x47\xf4\x20\x57\xfc\x3b\xd4\x84\x9a\x29\xf0\x95\x44\x6d\xd3\xdc\x7b\x7b\xd5\xc8\xe6\x4f\x87\xcd\x05\x6b\x5e\x7c\x4f\x6e\x3a\x65\xc2\x8c\x6a\xd7\x03\xeb\x75\x65\x8f\x07\x80\x0c\x71\xb5\xe0\x70\x46\xe7\xc8\xb8\x83\xc4\xdd\xc7\x84\x3a\x46\xac\xe6\x62\x55\xca\x29\xda\x8e\x20\xad\x23\xdc\xb2\x76\x89\x58\x1e\x31\x4d\x95\xb1\xa3\xad\x58\x57\x5f\x1a\xcb\xa1\x9a\xea\xc8\x27\x11\x14\x58\x11\xb8\x91\xf9\xb4\x4f\x63\x55\xc7\x64\xe8\x4f\xc4\x78\x62\x33\x5e\x0e\xc0\xe4\x7b\x61\x38\x33\x04\x7e\xf8\xce\x1e\xc1\x74\x3b\xb1\x8a\xa7\xfd\xd5\xbd\x07\x98\xbb\x8f\xe1\xfd\x8e\x94\x18\xce\x93\x19\xb8\xf2\xe2\xfa\x3a\xbf\xa7\x58\x4f\xb5\xfd\x7b\x17\xec\xa9\x51\xfe\x0d\x44\x7b\x66\x79\xee\xf7\x68\xd1\x4a\xfe\xe6\xb3\x1f\x04\x0d\x1d\x5d\x4f\xbd\x9a\xb3\x36\x52\x1f\xe6\xa4\x6e\x87\x05\x0a\x05\x64\x52\x29\xde\xb7\x5b\x7e\x2c\xfe\xc0\xd3\xf1\x84\x1f\x9f\x56\xb1\x51\x33\xd5\x76\x51\x4e\x1a\x05\x69\x2f\x30\x2b\xe6\xf6\x71\xe9\x17\x1d\xd1\xfb\x09\x0a\xd4\xb2\x3d\xd9\x95\xb2\xa6\x07\x38\x67\xf7\xf5\x4f\x35\xef\x0d\x8d\xdc\xe8\x45\xbd\x05\x18\x48\x9b\x99\xfb\xac\x8c\x1c\xea\x93\x2d\x8c\xec\xfa\x1f\xc1\x4a\x59\x0d\xf4\xbb\x0d\x94\xbf\x12\x7e\x53\xac\x0f\xd3\x1f\x7f\x97\x67\x5f\xd3\x4f\x8f\x85\xfc\xf4\xea\x7c\xc5\xd3\x3a\xa4\x1a\x93\x1e\x7b\x6e\xf8\x9c\x3e\xde\x82\xf2\x85\x3c\x65\x13\x66\x50\x95\x2a\xa3\x7a\x47\xb6\xab\xd7\xe0\xbe\x3e\xa8\xba\xf9\x61\xef\xe4\x2e\xcf\x3f\x16\xf0\xfc\xeb\xf7\x8c\xd6\x92\xf7\x83\xee\x32\xe3\xa7\xde\xdb\xb1\xfb\x00\x4f\xe2\x03\x9c\x69\x0f\xf1\x40\xed\xe9\xfa\xd8\xd7\xdd\xef\x20\x07\xb1\xfe\x6e\x44\x07\xf8\xd8\x1c\xe0\x77\x72\x88\xbf\xc1\x21\xe6\xf4\x87\x1a\x4f\xf7\x34\x8f\x3d\xc8\x24\xb4\xbf\x85\x62\x5f\xfb\xb9\xfe\xa6\x55\x3d\x6d\x8c\xbe\xdf\xd5\x20\x60\xa1\x70\x88\x1e\xfe\x40\x6d\xf5\xf7\xab\xa8\xdb\xea\xc0\xde\xea\xa1\xde\xda\x8a\xfe\x72\xf0\x83\x84\xc4\xfd\xe5\x8d\x07\x88\xda\x0e\x90\x3c\xf5\x16\x72\x1c\xf0\xfe\xef\xfb\xa8\x3b\xf8\x01\xf4\x10\xaf\x9e\x06\x6b\xd9\x9f\xf5\x08\xf8\x35\x40\x62\x12\x0b\xc2\x35\x5c\xc0\x0c\xde\xc0\x25\x5c\xc1\x5b\xf8\x05\x5e\xc3\x2b\x78\x07\x2f\xe1\x57\x78\x06\xbf\xc1\xf7\xf0\x1c\x5e\xc0\x5f\xe0\x07\xf8\x12\xbe\x82\x9f\xe1\x47\xf8\x17\xf8\x1a\xbe\x83\x6f\xe1\xcf\xf0\x0d\xfc\x2b\xfc\xf5\x7b\x19\xb6\xce\x06\x2f\xe5\xd5\xa9\x2e\xf5\x08\x6e\x30\x5d\xdf\x62\x26\xe6\x39\x39\x1a\xc3\x6b\xcc\x03\x36\xc4\x96\x47\xa9\x76\x01\x7e\x25\x6e\xda\x83\xe0\xb2\x7e\x70\xd5\xc5\x7c\x10\x64\xda\x1b\xf2\x9a\xe3\x83\x20\x93\x9e\x90\xd5\xb5\x7f\x10\xe8\xa2\x17\xe8\xd7\x78\x71\x10\xd4\xb4\x1f\x54\x56\xac\x0e\x02\x5b\xf6\x02\xfb\x46\xbb\x43\x1f\x04\x3a\x3f\x00\xf4\x41\x80\xd7\x3d\x01\xd3\xec\xc0\x11\x2f\xfa\x01\x56\xec\xd0\x41\x90\xb3\x5e\x90\xff\x4d\x39\x34\x1e\x04\xf9\xa6\x17\xe4\xdf\x2b\x2f\xba\x83\x20\x2f\xfb\x42\x36\x5e\x55\x07\x41\x5f\xf5\x82\xfe\x96\x1e\x76\x4a\x6e\x7b\x42\xd5\x6c\xdf\x41\xb0\xbf\xf4\x84\x2d\xb8\xc4\x83\x00\x5f\xf7\x02\xfc\xef\x05\x39\x0c\xe7\xae\x7a\x81\xfd\x25\x3d\x14\xe3\xee\xfa\xc2\x3d\x08\xea\x65\x2f\xa8\x07\x23\xf1\xd7\x5e\x60\xdf\x6b\xeb\xaa\x83\x40\x9f\xf5\x03\xad\xb9\xe7\x83\x40\x7f\xeb\x05\xfa\x03\x59\xe1\x97\xb2\xe5\x41\xc0\xdf\xf7\x06\x7e\x10\xd8\xf3\x7e\x60\xef\x43\x2b\x2e\x7a\x81\xfe\xdf\x82\xf1\x3f\x08\xee\x2f\xbd\xe0\x7e\x14\xef\x84\x83\xe0\x7e\xe8\x07\x57\x3e\x2b\x0e\x02\xfc\xd2\x01\xdc\xcd\x4b\x7e\xd4\x96\x13\x07\x81\x7e\xd5\x73\xcc\xe2\xcd\x72\x10\xe0\xcf\x3d\x01\xcb\x27\xce\x41\x90\x3f\xf6\x82\x7c\xae\x5e\x44\x07\x41\xfe\x4b\x3f\xc8\xe2\x01\x75\x10\xdc\xd7\xfd\xe0\x16\xec\xd0\xdd\x7b\xd7\x0b\xf0\x45\x7a\xe0\xcd\xf4\xb6\x1f\x58\xf9\x36\xbb\x07\x25\xfa\xf9\x00\xf0\x07\x01\x7e\xd3\x0b\xf0\xaf\xf4\xd0\x01\xff\xb5\x17\xdc\x3f\xa9\x87\xe5\x41\x90\x7f\x75\x20\xf7\x12\xb7\xb6\xec\x27\x1f\x4f\x65\x90\x73\x1c\x54\x5f\x0d\xf1\xef\x10\xaf\x64\x85\xae\x72\x59\x7c\xdd\xd9\xfe\x05\xd2\x15\xba\xca\xc3\xc9\x13\xf6\xdb\x7f\x3f\xbc\x89\xde\x83\x84\x8a\x75\x23\xee\xb3\x01\x1d\x8d\x62\xa3\xff\x94\x06\x4f\x4b\x42\xb3\x18\x37\x03\x5e\xa9\x56\xc0\xc4\x4f\x70\xea\x1b\xed\x56\xad\x27\x2c\x5e\xa0\xf1\xb4\x50\x61\x86\x0f\x58\x39\xab\x51\x79\xca\xb8\xb9\xd0\x75\x6a\x88\x65\x2c\x00\x39\x88\xed\xb6\x0e\x67\x08\xb4\xa9\x9c\x54\x4a\x1c\x32\x21\x1b\x07\xe3\x29\x27\xc4\x21\x53\xee\x84\x5a\x2e\x32\xfd\xf7\xf3\xf7\xef\x12\x95\x34\x84\x2c\xef\x94\x16\xb2\xf1\x8d\x1b\x55\x10\x29\xa5\xf5\xbc\x9c\xaa\x13\x5c\x4d\x7e\xe3\x10\x1f\x3a\x7d\x25\xe2\x7d\xe2\x40\xc8\xda\x04\x52\xf7\xdd\xb4\xb7\xc1\x60\xbb\x8d\x08\x2d\x79\x4a\x17\x38\x50\x7a\xe0\x0c\x8d\x49\xff\x81\x87\x5d\x0f\xee\x09\x4e\x7b\x97\xcd\xff\x68\x54\xd7\x41\x9b\x2a\xe4\xa9\xd6\x58\x1a\xe9\x23\x00\x46\xa3\x5d\x55\x16\x29\x5f\xdc\x80\xaa\x6b\x1d\xa9\xf2\xdc\x58\xdc\x9d\x64\x78\x51\xa8\xbc\x29\x21\x9d\xdd\xbf\xaa\x06\x4e\x25\xb5\x72\xf6\x83\xb3\xc8\x16\x66\xe8\x9b\x0b\x22\x4f\x4b\xed\x6c\x73\x60\x14\x99\x5d\x5e\x7c\xb5\xd7\x54\x21\x2a\x9a\x9c\x1b\x01\x7c\x0c\x34\x4e\x08\x25\x9c\xa4\x39\xf9\x2b\x66\x53\xef\x57\xb2\x48\xf3\x3c\xd6\x06\x86\x93\x60\xdb\x6b\xcc\xa7\xf2\xff\x7e\x5d\xac\x94\xe2\x53\xfd\xef\x44\x27\x35\xf6\x23\xbf\x80\xed\x76\xd7\x89\x31\x7d\x8c\x46\x82\x86\x1f\xc9\x08\x2b\x24\xc6\xc9\x0a\xb3\x65\xc1\x6e\x41\x15\x73\x30\x95\xde\x35\x3c\x2d\x3f\x03\x41\x3e\x74\x37\x76\x35\xd2\xd8\x41\x3c\x55\x4f\x0a\x96\x80\x9b\xf8\xb5\x14\xd7\x8a\x83\x7c\x1a\x47\xf5\x8e\x09\x0e\xe6\x83\xf4\x7b\x02\x71\xcc\xa5\x3c\x7c\x56\xcc\xd1\x6c\x0e\xd0\x0b\xb5\xd0\x1b\x67\xc5\x26\x29\x54\x13\x2e\x2b\x64\xc3\x3e\x66\x38\xc7\x1c\x0f\x89\xbb\xb4\xd0\x7e\x94\xf5\xa1\x7f\x00\x4d\x66\x09\x3f\x42\x82\x34\x76\xd5\x76\x45\xc3\x62\x39\x64\x75\x45\x3c\xa3\xf3\xc1\x91\x34\x0c\x9d\xf2\x19\x9d\xc7\x60\x22\xff\x61\xd6\x36\x86\x57\xf1\x26\x49\x12\x26\xae\x9a\xa2\x82\x58\xfe\x22\x30\x3c\x76\x00\xd4\x54\xc1\x7d\x42\xa6\x74\x36\x10\xa8\x2f\xbd\xa5\xee\x23\xf2\xc6\x09\xa6\x52\x9f\x75\x61\x36\x11\xe1\xe4\x33\xc6\xab\x9f\x53\x8e\x4b\xee\x7e\xcd\x58\xb1\x72\x7f\x33\x2c\xb3\x04\x8b\xce\xdc\xcf\xdc\xf9\xdb\x81\xdd\x02\xeb\x40\x6c\x03\xd3\x70\x7c\xab\xaf\x1c\x95\x71\x01\x06\xba\x28\xd7\x5f\xd7\xe2\x2b\xdc\x38\x00\xe4\x7a\x0d\xda\x30\xd7\xba\xc5\x42\xb5\x10\xbd\x9b\xaa\x76\x24\x0b\x5d\x27\x53\x75\xea\x21\x9b\x9a\x8d\x49\x64\xba\xfe\x8d\xaa\xaf\x27\x6c\x2a\xbb\xf3\xbf\xd1\x35\x97\xa8\x8c\x53\x33\x0b\xb5\x50\x4b\x9b\xc3\xa2\x8c\xd3\x3e\x53\x51\xcd\xea\xd4\x16\xb2\x59\x68\x3e\xaa\xe2\xad\xae\xf8\x45\x55\xdc\x37\x29\xd5\xe8\x8b\x6e\x74\xad\x1a\x75\xcf\x4c\x55\xbf\xee\x7d\x25\x38\xa4\xfa\xc0\x7b\xe1\xd1\x6e\x54\xcf\xde\xaa\x4d\xa8\x3e\xaa\xec\x14\x99\x25\x58\x8d\xfb\x65\x46\xe7\x20\x40\xb4\x48\x85\xd8\x40\x13\x24\xe6\x52\x29\xdf\xe6\xce\x98\xc4\xc6\xf4\x38\x4a\xc4\xe2\x9c\xaf\x17\x0b\x5c\x96\xcb\x75\x1e\x79\xb9\x8b\x4d\x06\x6e\xc7\x46\xf0\x86\x94\x30\xd0\xcc\x5e\x07\x78\x5a\x57\xc6\x30\x52\xab\x0e\x26\x64\x4a\xd4\xc5\x22\x00\x58\xfa\x0e\x80\x49\x09\xba\xdf\xb0\xdd\xee\xac\x63\x0b\x2a\xb3\x65\x4b\x96\x48\x33\x4e\x86\x35\x0a\x33\x50\x01\x10\xe2\x48\x9c\x58\xfe\x6d\x67\x55\xfc\x8d\x63\x46\xd3\xfc\xd9\x1d\xc1\x79\x26\x7a\x7d\x94\x0c\x99\x37\x69\x79\x73\x8e\x39\xcf\x71\x86\xd4\x2f\x41\xac\xd2\x05\x46\x38\x49\xf3\xbc\x2e\x4a\xf3\xbc\x69\xa3\xba\x88\xeb\x50\x4f\xc9\x07\xb5\x24\x30\x4a\xf3\x3c\x82\xb9\x58\x60\xd1\x84\xea\xda\xc4\xab\x2d\x6b\x69\xd8\x75\x65\xd3\x59\x9d\x9c\x28\xdc\x83\x18\x9e\x6e\x25\x47\x6a\x52\xe4\xa4\x8d\x3e\xc4\x6c\x22\xb8\x16\xf5\xe4\xc4\x52\x5d\xaf\x0c\xd4\xb3\x83\x59\x83\x9a\x7d\xca\x9d\xb0\xaf\xd8\x4b\x52\x54\x8b\x82\xbd\xab\xd6\x84\xe0\xc1\x33\x3e\x07\x7e\x96\x22\x71\x2d\xb6\xac\x62\x0b\xf5\x94\x4d\x11\x11\x84\x3f\xb5\x81\x41\x31\x7a\xb1\xc1\xa3\x11\x1e\x1a\x5c\x29\x96\x43\x9e\x08\x62\xf4\x56\x7f\x18\x8d\x62\x9c\xe0\x6f\x78\xb1\xe6\x05\x4b\xd2\xf2\x8e\x2e\xce\x18\x2b\x58\xf9\xfb\x94\x66\x62\x11\x8f\xc6\xa0\x52\x0f\xde\xd2\x89\xc8\x25\x70\x03\xb3\x18\x0c\xc4\xcd\x1f\x17\x40\xb9\xce\x96\x82\xfe\x16\xf9\x17\x0c\x4b\xed\x34\xa6\x5a\xe6\xe8\xe8\x14\xae\x91\x0c\x1a\x92\x6f\xb7\x71\x8e\x8e\xc6\xb0\x35\xca\x78\xc7\x30\xa7\x82\xab\x16\xc7\x26\x0e\x33\x82\x33\x96\xd4\xc7\xea\xfc\xee\xf6\xaa\xc8\xe7\xa3\x51\xf0\x73\x0c\x64\x96\x72\xb8\x40\x65\xa2\xcf\x9f\x78\xee\xa7\x79\x7e\x17\xaf\x2d\x41\x58\x84\x9a\xa2\x35\x5c\x54\x95\x8f\xec\x65\xcf\x53\xaf\x8a\x30\xfd\x42\x58\x41\x6f\x95\xab\x41\xbf\xc3\x6e\x4f\xb0\xdb\xf8\xc1\x49\xfc\xd9\x2f\x3f\x9d\x7d\xbc\x3c\x7b\xf7\xc7\xb7\x1f\xdf\xbf\xfb\xe5\xec\xdd\x05\xc2\x89\xdc\xef\xb3\xba\x57\x7b\x70\xf3\xb4\x2c\x87\x6c\xa8\x5c\x41\xca\x21\x4f\x9c\x4a\x9b\xb4\x2c\x31\xd3\x86\xc0\x9b\x4a\xa2\x94\x40\x74\x85\x3c\x36\xe3\xbc\x40\x86\xfa\x53\x41\x17\x58\x79\xe1\x61\x20\x78\x46\xb1\x2c\xbf\xd2\x45\xba\xbe\xbe\xe1\x4a\x88\xae\xb9\xf4\xba\x09\xc5\xdf\xb8\x6a\xe2\xd2\xfe\xda\x99\xbf\xa0\x58\x20\x32\xe0\x37\xac\xf8\x3a\xc4\x03\xef\xab\x8a\x63\x5c\x69\x2c\xf6\x5d\xe0\x5c\xfc\xae\xae\xf3\xe2\x2a\xcd\x5f\xe3\xab\xf5\xf5\x35\xa1\xd7\x67\x54\xa0\x43\xd6\x6c\x72\xf6\xee\x8f\xc9\xeb\xb3\x9f\x7e\xfd\xb7\xcb\x8b\x97\xe7\x7f\x38\x17\x38\xd2\x5a\x3b\x66\xe9\x1d\xc5\x5f\x87\x6c\x10\x5a\xf2\xa0\x7d\x67\x5f\x94\x78\x3c\x01\x43\x00\x05\xfc\x8f\x2a\x0d\xb2\xde\x78\xbb\xe9\x60\xd3\xb9\x93\x60\x63\xd7\xbe\x7b\x89\xc3\xa9\x96\x76\x2d\x87\x4d\x44\x7a\x52\xf2\xc7\xcd\xdd\xfa\x6f\xa6\xa7\x73\xae\x92\xf5\x39\x1f\xf0\xea\x23\x2e\x5d\x5f\x0c\x79\x5c\x78\x23\x4d\x34\xb7\x69\xd2\x25\x60\x93\x24\x3d\x2b\x28\x46\x5c\xfd\x2d\x51\x15\x67\x88\x09\x84\x0a\x75\xc0\x07\xad\x91\x04\x32\x52\xeb\x6e\x24\xe4\xa3\x53\x05\xda\xae\xd4\x9b\x54\x54\xba\x33\xdd\x13\xae\x3e\x23\x29\xb8\x2c\x39\x5e\xe9\x7c\xee\xec\x4e\x7b\x5e\xe8\xe6\xfc\xad\xae\x19\x03\xb3\x34\x04\x8a\x2e\x26\x45\x85\xe8\x8c\xcd\x9d\xc7\x76\x31\x95\x8d\x24\x95\x25\x7f\xc5\x31\x81\x47\xa7\x60\x22\x33\x50\xcb\xbf\x65\x52\x4f\x29\x35\x89\x1b\xf9\x96\x6d\x13\x95\x5a\xb9\xf2\xfa\xf5\x6a\x9a\x81\x6f\xb7\x76\xb2\xdb\x6d\xec\xcf\x29\x38\xf3\xd8\x78\x52\x99\x6a\x95\xed\x14\x37\xf3\x50\xab\x25\x1c\x07\x96\x0a\xaa\xd9\x60\x78\x24\x53\x53\x1f\x8c\xb9\x26\x79\x2f\x7b\xb6\x2a\x72\xb2\x20\xb8\x7c\x76\x55\xac\x69\x86\xb3\x13\xf9\xe1\xc9\x7d\xfe\xba\xf1\xe8\x36\xfd\xf6\xaa\x9e\x0b\xc2\xdb\xed\x69\x55\xed\x73\x3b\x38\x70\xee\xe2\x5d\x16\x98\x78\xbf\x7b\xb2\xc7\x5a\xde\x17\x8e\xe2\x94\x48\x41\x15\x81\x79\x8a\x64\xf3\xe6\xd6\x90\x22\xa4\xdb\xf4\x33\x7e\x25\xd9\x12\x79\xda\x41\x1c\x11\x3e\xbc\xc2\x79\x41\xaf\xcb\x21\x2f\x86\xe9\xf0\x37\x62\xe9\x7e\x33\x14\xcc\xd3\x90\xdf\xa4\x7c\xf8\x35\x2d\x87\x69\xce\x70\x9a\xdd\x0d\xd9\x9a\x52\x42\xaf\x23\xa0\x69\x12\x09\x6e\x30\xc3\xb7\x29\x11\xf5\xce\xf3\x82\x97\x08\x2b\x32\xe0\x9f\x04\xbf\xce\x8b\xf1\x34\x0e\x7c\x3e\x39\x81\x2c\x39\xbf\x78\xf9\xf1\xe2\xec\x35\x98\xd0\xaa\x52\xbd\x16\x0e\xe3\xa0\x27\xbb\x11\x13\x53\x6a\x78\xe7\x60\x8b\x33\x45\xe2\x00\xd2\xe9\x70\xab\x29\x2a\x1c\xbc\x4b\x1f\x00\xef\xf4\x73\x3d\x74\xe8\xfe\x7f\x89\x7b\x72\xbf\xe8\x53\x62\x09\x4b\xfe\xf7\xaf\x67\xbf\x9e\xbd\x36\xc8\x42\x0e\x41\x16\xba\x03\x59\x0a\x44\xf6\xc5\xf8\xfe\xde\x0d\x79\x3c\x12\xdd\x38\xf7\x08\xeb\x55\x42\xd8\xac\x1c\xc2\xc9\xc5\x7f\x7c\x38\xbb\xb4\xdf\xe5\xaf\x46\xe1\xab\x97\xef\x5e\x9d\xfd\xfc\xf3\xd9\xeb\x9a\x8d\x6b\x7c\x8f\xec\x9f\xd1\xa0\x01\x23\xd2\x7f\xd8\x02\xdd\x55\xa4\xfe\x8d\x6c\xae\xed\x8d\x78\x95\x4d\x6c\x75\x71\x37\x18\x18\xdc\x66\x2d\xd6\x95\x74\x5b\x51\x47\x83\x13\x9c\x71\x6b\xba\xe8\x45\xac\x1b\xd4\xe3\x83\x0c\xa7\x65\x41\x27\x38\xac\xa7\x3f\x70\x33\x3f\x63\xbc\x3a\xc9\xa5\x6c\xef\xbf\x0f\xff\xbd\x2e\x9e\x5a\x38\x7a\xcf\xeb\x47\x3c\x63\x83\xa4\x45\xf1\x5b\x74\x7d\x7b\x51\xa8\x31\x20\xfe\x40\xd4\xa6\x09\xd8\x36\x72\xbe\x9d\x9c\x40\xda\xa6\x4b\xfb\x2e\xb1\x3a\x7c\x08\xc2\xc7\x36\x23\x66\xe7\x8d\x06\xd9\x49\xe0\xeb\xc9\xe9\xa3\xdd\x74\x8e\xa4\xfc\xbf\xf1\xfd\x5e\xf8\xee\xac\x60\x13\xe1\x8d\x92\x30\x06\x38\x1b\xa6\xd7\xa9\x4c\x9c\xbe\x8b\xe5\x72\x71\x3b\x78\x93\xf6\xc4\x51\x8d\xd8\x07\x21\xa9\x87\x9a\xf8\x98\x87\x10\xf1\xd1\xd0\x70\x4d\xbb\x9f\x39\x8f\x86\x3c\x8f\x84\x3a\x4c\x4a\x76\xd4\xc3\xa9\xb1\x85\xf5\xc6\x68\x4f\x60\x55\x2b\xc8\xc8\x30\xef\x35\x75\xb0\x48\xa8\x5e\x0f\x86\x97\x0c\x97\x37\xff\x98\x4b\xaa\x74\x4c\x81\x57\xa8\x23\x38\x91\x43\xb9\x60\xe9\xe2\xb3\x4c\x89\xa7\xbe\x99\xb1\x7f\x90\xf8\x64\xe5\x1a\x4a\xab\xe4\xca\x94\x4b\xc4\xa0\x01\xc3\x38\xa1\xd7\x75\xc1\x6c\x5e\xad\x58\xb1\xc0\x65\xa9\x02\x4e\xe8\x30\x7a\x48\xcb\x24\x72\x8e\xd9\x1b\x42\x49\x79\x83\x33\x0f\x62\x0c\xa0\x16\x90\x34\x86\x91\xb8\x3b\x2d\x26\x00\x09\xc2\x4e\x12\x64\xd5\x06\x73\x17\xda\x99\x59\x72\x49\x81\x62\x0c\x69\xa2\xb0\xca\xc9\x51\xd1\x5c\x05\xa3\x24\x7b\x43\x68\xaa\x28\x57\x69\xc1\x4b\xfb\x2d\x0d\xcb\xc8\x3c\x5a\x53\x77\x85\xf2\x58\x15\xc7\x00\x40\x52\xed\x9c\xb5\x93\xf5\x7a\xac\xc7\x36\xeb\x5c\x76\x33\x6d\x66\xb3\x96\xb5\xa7\x21\x7f\xbc\x29\x58\xac\xad\x2b\x20\x41\xac\x56\x53\xc8\x52\x6b\xc9\x91\x90\xd2\x0c\x6b\x1a\xd3\xa4\xa0\xaf\x8a\xdb\x55\x8e\x25\x66\x32\x20\x45\x4d\x31\x49\x6e\xd2\xf2\x5c\xcc\x06\x67\x53\x7c\x8c\x4e\x27\xfc\x18\x9d\x4a\x99\x12\x80\x18\xf2\x79\xb5\x6f\xf1\x19\xd8\x3f\x58\xa5\xab\x06\x83\xf2\x2b\xe1\x62\x09\xeb\x11\x2f\x8a\x35\xe5\x38\xdb\x6e\x03\x1f\xd1\xd1\x18\x8a\x61\x7f\x50\x77\x06\xce\xe4\xf6\x28\x7b\x22\xb0\x59\xa4\x25\x1e\xf2\x06\x9b\x3e\xb1\x71\x4f\xb5\x56\x84\x25\x8a\x19\x16\xd3\x1d\xb8\x4d\x34\xdd\xa9\x1b\xf8\x8b\xe8\x2c\x8b\x91\x96\xb5\x51\x42\x06\xca\x94\x61\x04\xe5\x72\x30\x19\x1f\x41\xfe\xfa\xa8\x18\x3a\x51\x78\x34\xf6\xfa\x55\xcc\xd2\xc4\x9a\x52\x14\x54\x3a\x05\x64\xaa\x6a\x55\x79\xc8\x28\xe3\xd9\x8a\xa5\x93\xaa\x7c\x5e\x21\x2c\x83\xf2\xf2\x44\x2f\xbf\x8e\xc6\x3b\x50\xec\x94\xa6\x2d\x69\x59\x92\x6b\x1a\x6f\xe8\xfa\x56\x0f\x63\x82\x93\xfa\x07\xa4\xeb\x5b\xd5\xa5\xfa\xac\xfe\x16\x5f\xed\x3a\xbf\xa5\x0b\x55\xe6\x7e\xa9\x20\x4e\x52\xce\x59\x09\x06\xb6\xff\x98\x49\xa3\xc7\x7b\xe8\x7a\x03\x24\xd5\xfe\xf5\x3d\x74\xd9\x92\xf6\x43\x3b\x17\xd3\x39\xe1\x0a\x71\xfd\x5f\xdf\x09\x8b\xae\xf3\xfc\xc4\x07\xb8\xdf\xc0\xec\x61\xae\x09\x12\xbe\x26\xcc\x25\x11\xbe\x10\xea\x13\x5c\xeb\x1c\xcc\x1d\xc2\xbd\x5b\x62\x36\xaf\xd4\x29\x7b\x99\xe7\x2e\x5b\xdf\xae\x2a\xd5\xb6\x82\xac\x29\xaa\x95\x5c\xaf\x49\x56\xce\xf0\x7c\x34\x72\x88\x97\x3e\xb1\x1c\x54\xc0\xb9\x00\x8e\x8e\x6a\x71\xb9\x56\x50\x27\x69\x9e\xc7\x0c\x54\x86\x97\xc4\x60\x83\x93\x82\xbe\x31\xd2\x69\x19\x9f\xd2\x9d\xe1\x47\x85\x14\x56\xa0\xed\x8f\xcd\x9c\x62\xfd\x26\xd2\x55\xab\x56\xe3\x4d\x65\x0b\x35\x59\xef\x5c\xaf\xa9\xd4\x64\x99\x2d\x91\x02\x7d\x6b\x34\x05\x89\xe4\x86\x2c\xdf\x19\x87\x36\x03\xe2\xc0\x48\xc1\x20\xb0\x09\x24\xb1\x17\xb2\x77\x10\x83\x21\xa9\x1e\x08\x7f\xbf\xe3\x7c\x76\xc1\x7e\x52\x4e\xd4\xae\xbd\xc7\x73\xda\xdb\xca\x61\x38\x03\x5c\x03\xd8\x3c\x14\x1b\xda\xb9\x16\x7f\x13\x8d\x86\xc7\x1e\x80\x4d\xe5\xde\xbb\xf2\xa7\xba\xe1\xe4\x9f\xe6\x7a\x93\x3f\xf4\xfd\xd5\x58\x97\xef\x50\x76\xec\xa4\xc5\x0f\x85\x7a\x4f\x83\x75\x5d\xcc\xba\xcb\xa7\x97\x68\x53\x55\x35\xab\x64\x85\x23\x92\x4a\x42\x97\xaf\x2a\x67\x6c\x6e\x05\x26\x32\x76\xb2\x5f\xd6\x20\x2c\x92\x19\x09\xa1\xb0\x79\x5c\xeb\xa2\x8f\x78\xb1\x66\x25\xf9\x82\xd5\x9d\xae\x29\xa1\xe6\x77\xd5\x37\x8e\x5e\xe0\x98\x03\x50\x75\x34\xd9\xb4\x9b\x60\xcd\xc5\x72\x84\xa5\xfd\xa1\x68\x50\x9b\xfb\x95\xb6\x9c\x39\x93\x50\x0b\x30\x60\x0e\x4b\xfe\x86\x15\xb7\x31\x07\x50\xb2\x16\x15\xa8\xfc\x3e\xc0\xc6\xb5\x0f\x72\x56\x03\xb8\x39\x80\xb1\x5b\x32\xe3\x73\xd0\xe6\x59\x5a\x81\x11\xef\x8f\x53\x07\xa3\xa8\x67\xb4\x26\xfd\xa5\xd4\x29\xfc\x9b\xbf\x28\xf5\xb6\x1a\x06\xd4\x70\x08\xd7\xda\x38\x57\xfe\x6b\x45\x90\x9a\x26\xa0\xb1\xfd\xa2\x08\x83\xf3\xc1\x65\x27\xcd\x67\xc9\x52\x8a\x13\xe0\xd1\x1f\xe7\x14\xd4\xeb\x21\xf7\x7c\x50\xb7\x92\x46\x8b\xa6\x5b\xa9\x6b\x6e\x94\x69\x80\x62\xe0\x0c\x21\xc4\x93\x57\xef\x7f\xf9\xf0\xf3\xd9\xc5\xdb\xf7\xef\x2e\xcf\x7f\x7d\xf5\xea\xec\xfc\x7c\xda\x68\x52\xdb\x40\x22\x3c\x89\x5b\xad\xce\x3e\x7e\x7c\xff\xb1\xd9\xe6\x4c\x5b\x23\xe0\x49\xab\xbe\x7a\x98\x8c\x46\x71\x73\x64\x92\xd7\x11\x6d\x40\x73\xd0\x6f\xe9\xc2\x0e\x1b\x54\xfe\xeb\x67\x13\x5a\x49\xf1\x5e\x6b\xc0\xb0\xc5\x08\x57\xf5\xd3\x64\xd3\xa8\x25\x0b\xeb\x97\x4a\xb3\xd8\xac\x2c\x6e\x6e\xf1\x31\x3a\x75\xc9\xbe\xbf\xdd\xa2\x30\x70\xd8\x4d\x2c\xdc\x1a\x81\xa4\xd5\xfc\x73\xfe\x1c\x60\x75\xbc\xb9\xfa\x5c\x35\x8e\x7e\x7d\xc4\xf5\xbb\xa6\x1e\xa5\x7d\x90\xb4\x07\xe8\x3d\x78\x9a\x03\x74\x9f\x3d\xe1\x05\x6d\x3f\x7e\xbe\xeb\x8d\xe3\x1f\xf0\xab\xb4\xcb\x23\xa8\x3f\x0c\x2d\x3e\x30\xfc\xc2\xa1\x76\xae\xf7\xa2\x4b\xca\xe8\x8f\x07\xc3\xb4\x3e\xc4\x03\xe6\xa7\x54\xa1\x8c\xe1\x6d\x7d\x5d\xab\x2f\x1e\x96\x8f\xe2\x09\x86\x29\xbb\x2e\x27\x1c\x9a\x37\xc4\x84\x41\xfd\x28\xb8\xb8\x5b\xe1\x09\x85\x37\x69\xa9\x59\xf2\xb3\x2f\x98\xf2\x72\x42\x2a\x87\xa8\x19\xd4\x16\x50\xcc\x13\xc7\x69\x8f\xa8\xb6\x36\xd2\xd0\x8d\x58\xcc\xbe\x58\x5c\x4e\x5c\x62\xb6\x2a\x6f\x76\x8a\x48\x55\x62\x6e\x6e\x4a\x73\x20\x2d\x5b\xa5\x28\x8e\xfa\x21\x49\x89\xfa\xf3\x95\x36\xeb\xdc\x88\x2b\xef\x36\xd5\x24\xe3\xa3\x94\x66\x88\xaf\x25\xce\x97\xea\xdb\xcf\x45\xb1\xfa\x53\xca\x6a\x8e\xcc\xbe\x84\xcc\xa1\xb6\x23\xf6\xca\x94\x28\x4f\x10\x16\x47\x74\x68\xab\xea\xc2\x57\x37\x78\xf1\xd9\xd6\xa9\x66\x2c\xb1\x78\x64\xec\x46\x5d\x61\x79\xb3\xbb\xff\x10\x95\x55\x73\xa0\x5f\x8b\x31\x46\x91\x35\x5a\x95\x5a\x01\xfc\x6d\x95\x93\x05\xe1\xf9\xdd\x70\x91\xe6\x39\xce\xa2\xe6\x60\x74\x75\xf5\x90\x32\x2b\xf1\x9f\x6b\x5c\xf2\x98\x26\x8a\xc8\x5e\xfe\xe1\xed\xbb\xd7\x97\x67\xff\xe7\xc3\xcf\x6f\x5f\xbd\xbd\x90\xe6\x92\xd2\xf6\x56\x99\x5b\x06\x87\xa7\xad\x5c\x63\x6d\xa5\xab\x62\x9d\x2b\x73\xab\x5e\xad\x9c\xaa\x95\xb1\x94\xed\xd5\xd0\xab\x5c\xf1\xe2\x5c\xfa\x5a\x36\x34\x1b\x02\xbb\x8e\xa3\xa1\x7b\x24\xa2\x4a\x0b\x1e\xc3\x1d\xe8\x42\x89\x85\x55\x15\x38\x51\x04\xfa\xb4\x54\x3e\x1e\x79\xc1\xef\x56\x18\xf2\xe4\xed\xbb\xb7\x17\x6f\x5f\xfe\x7c\x79\x7e\xf1\xf2\xe2\x0c\xec\xa8\xaa\x9e\x4a\x93\xe8\x6b\x4a\x38\xa1\xd7\x11\x24\xe5\x6b\x56\xac\x56\x38\x9b\x1c\x9d\x42\x52\x1a\xb1\x93\x4c\xed\xfc\x5d\xb4\xd2\x25\x3a\x8f\xf8\x2a\x22\x99\x56\x31\xb5\xfd\xde\x86\x78\x34\x8a\xc4\x22\xbe\x72\x86\x82\x90\xb8\x22\xd2\x5b\x5c\x41\xec\xa3\x23\xc2\x1e\x3a\x7e\x78\xf9\xf1\xec\xdd\x85\x66\x03\x1a\x65\x3f\xbf\x7d\x73\x76\xfe\xe1\xe5\xbb\xcb\xb3\x77\xaf\x1b\x45\xff\xf1\xf6\xec\xe7\xd7\x2f\x7f\xfa\xf9\x2c\xdc\xd2\x20\x39\xc2\xc9\xc5\xcb\xf3\x3f\xe8\x4a\x2f\x25\xc7\xf1\xee\xe5\x2f\x67\x8e\x11\x43\xb0\xb8\x35\x9f\x41\x07\xfc\xc8\x9c\xcc\x66\x8d\xd6\x00\xa3\x3b\x75\xd0\x9b\x15\xbd\x49\x46\x39\x59\xe2\x72\x95\xd2\x4b\x4c\x5b\x35\xfd\xa5\x8a\x56\x29\xc3\x94\x5f\x2a\x04\x90\x75\xbd\x65\xde\x25\xd8\xfa\x4c\x68\x66\x48\xbb\x92\xfe\x5a\xe2\xae\x4e\xa0\x7c\x27\x69\x61\x92\x7c\x87\x78\x26\x95\x08\x57\xf7\xb0\x53\xdc\xc7\xc4\x3f\x1e\xf6\xb6\xd8\x4d\x84\x5b\x2c\xab\xff\x49\xf3\xbe\xfe\xc7\x0f\x67\xef\x5e\xbf\x7d\xf7\x6f\x35\xee\x04\xca\x1a\x9f\x0d\x9c\xd3\x41\xa0\xc7\x1f\x07\xa1\xa1\xfd\xf6\xfb\xd6\xd5\x90\xba\xc3\xf9\xa7\x96\x05\xf4\x3f\x08\xd7\xd5\x46\xa4\x87\xe7\xdd\x64\xbe\xbb\xef\xc6\xc3\x6b\x6c\x9e\x0c\xf6\xbe\x09\x04\xf3\x9b\x95\x36\x43\xf1\x5c\x50\xcf\xb6\x6e\xa9\x10\xaf\xbe\x0f\x67\x1f\xdf\xbc\xff\xf8\xcb\xa5\xd4\x99\xfc\xfc\xf6\xdd\x1f\xa4\xad\x96\xf7\xf5\xd7\x77\xe1\xef\xaf\xcf\xde\xbc\xfc\xf5\xe7\x8b\x1a\x91\x83\xa5\x51\xe8\x6b\xd4\xac\x6d\xfb\x88\x82\x9f\x5b\xf5\x83\xb5\x4d\x5d\xe3\x44\xb5\xa9\xb4\xdb\xd0\x6c\x3e\xe8\x58\x80\x36\x79\xdb\x34\xcd\xb3\x27\x18\x62\xfa\x65\x42\x61\x86\xaf\xd6\xd7\x35\x63\x7b\xed\x9b\xbd\x2b\x91\x90\x6f\x0b\x6f\xa5\xdd\x12\xa5\x9a\x7a\xa3\x0a\xb2\x26\x2b\xa0\x55\x96\x19\xfe\x66\xde\x9a\x19\x29\x57\x45\x89\x99\x98\x04\xf4\xc8\xe7\xab\x34\xcf\xaf\xd2\xc5\xe7\xba\x04\xd3\x2f\x86\x95\x96\x63\x45\x44\x67\xe8\xf0\x28\xba\xb6\xab\x57\xec\x4d\x3d\x3a\x4f\x11\xd7\x6e\x66\x95\x73\x86\xc1\xde\xd4\xf5\x15\x62\x1a\xc2\x2f\x98\xd9\xf3\x3b\xba\x88\x69\xe2\xdc\x5e\xef\xdf\x5d\xbc\x7d\xf7\xeb\x99\xc9\x60\xd8\x96\xba\x27\x0e\xbb\x5e\x73\xb0\x4d\xfb\x2a\x39\x96\x57\xa6\x70\x1a\x07\xc7\x3f\x75\x87\xf2\x27\xc2\x6f\x54\x83\x97\xca\x27\x64\xe2\xad\x62\x5d\x6c\xe4\x71\xde\xb4\xcd\x4d\x06\x26\x31\xae\x7d\x01\x54\x12\x4d\x55\x50\x3f\x39\xc2\x2f\x68\x39\x38\x88\x43\x33\xb6\x2d\xeb\x8a\xf6\xad\xe0\x3f\x07\xdc\x7d\xaa\x95\xcd\x7a\x9f\xd2\xec\x8b\x00\xf7\x56\xa0\x8d\x0c\x29\x11\x73\x84\x90\xb7\xfa\xf2\x4e\xb0\xd6\x68\xee\x22\x0a\xb4\x2d\x1a\x9c\x7e\xb1\x93\x05\x01\x90\xf9\x9b\xdd\x5a\x61\xbd\xc4\xba\x58\x7d\x14\xb3\xb0\x93\x6b\xb5\xd8\xb4\x1b\xb8\xe3\xff\x78\x76\xf1\xeb\xc7\x77\x30\xb5\x00\x54\x95\x9a\x13\xf1\x96\xa0\x3e\x44\xc0\x9e\x0b\xe5\x58\x58\x6b\xac\x5c\x3c\x15\x60\x2c\xe4\x73\x1f\x70\x7b\xc9\x63\xf7\x58\x1a\x9c\xf1\x69\x81\xf4\xd2\x98\xea\x27\x2a\xcd\x72\xfc\x51\x39\x25\x66\x1f\x25\x2e\xe3\x4c\x06\x01\x90\xbd\x4c\x02\xb5\x5e\x15\x94\x13\xba\xc6\x75\x2d\x50\xed\xab\xe1\x4a\x78\xe5\xd4\x21\x45\xcd\x91\xe1\x95\x4a\x55\xd2\x5e\x31\x95\x32\xd0\x78\xfb\x34\x7c\x65\xa8\x8e\xd0\x40\x5a\xac\x87\x37\x7a\xfd\x00\x55\x43\xa2\xad\x21\xb7\xa7\xbe\x31\x46\x0a\xda\xc4\x20\x44\x2e\x26\xad\x12\x85\x0a\xfe\x19\x8e\xb9\x3f\x38\xcd\x2e\x81\xc1\x15\xc3\xe9\xe7\x41\x0b\xc6\xc5\xef\x3f\xbe\xff\xd3\x6e\x10\x6a\x7e\x55\xe5\xcd\xed\x57\xfa\x99\x16\x5f\xe9\xc5\x0d\x96\x52\x87\x86\xb0\x4d\x2e\xfb\x40\xe7\x70\xb5\xcc\x6e\xe3\x38\x73\x18\xa4\x8a\x18\x54\xb0\x5f\x13\x39\x76\x51\x1f\x54\x8d\x73\xbf\x21\x4b\x07\xf5\xc5\xcb\x49\x5b\x2d\x1c\x1f\xd7\x9f\xab\xc0\x66\x39\xf9\xb3\xe4\x4e\x0f\xb8\xa6\x14\x69\x96\xbd\xd6\xd7\x4f\xcc\x67\xb4\xed\x8e\x0a\xa0\xf8\xdc\x94\x53\x4c\x75\x77\x5f\x8a\xcf\xaa\x23\xb9\x58\x3c\xe8\x37\xcb\xe5\x72\x4d\xdb\x78\xd4\x5c\x6b\xee\x13\x15\x41\x41\xce\x89\x60\xd9\xd4\x1c\x38\xd8\x57\x5e\x75\x94\xe0\x7d\xc4\xc7\xdd\x24\x77\x45\xc4\x8b\x22\xe0\x08\x3c\x1a\xf9\xf7\xb6\x51\x7b\x57\x96\x64\xb8\x4a\x6d\x5b\x6d\x30\x3e\x12\x6f\x5d\xc5\xb2\x19\x39\xb6\x77\xf9\x63\xcf\x32\x2a\x06\x00\x54\xfe\xe1\x56\x87\x4a\x27\x9c\xbd\x21\x25\x18\x38\x44\xa1\x41\xa1\x4a\xd3\x60\x40\x96\x71\xa9\x73\xa5\xc9\x8a\x97\xf8\xdb\x0a\x2f\x78\xf9\x33\xa1\x9f\x71\x26\x77\xc3\x8c\x98\x69\xfc\x10\x2f\xf5\x10\xe3\x25\x5f\xeb\x8e\x5c\x6f\xbb\x15\x8c\x55\x91\xe3\xe4\x6b\xca\x68\x1c\xfd\x47\xb1\x1e\xae\x8c\xb0\x77\x98\x0e\x93\x5c\xf6\x11\x83\xa1\xb8\x16\x87\x3a\x08\xfb\x90\xdc\xde\xe2\x8c\xa4\x1c\xe7\x77\x43\x89\x5b\x84\x5e\x3f\x53\xa8\x4c\xe8\xf5\x90\xf0\x64\x78\x71\x43\xca\x21\x29\x87\x3a\x05\x75\x7e\x37\x5c\xd3\x72\xbd\x12\xef\x14\x9c\x0d\xe3\xab\x35\x1f\xde\x92\xeb\x1b\x3e\xbc\xc2\xc3\xfa\x3b\xa1\xc3\xe5\x9a\xaf\x19\x1e\x7e\xc1\xac\x94\xd1\x82\x96\xc3\x16\x93\x0f\x92\xa8\x7b\x29\xd0\xd1\x69\x65\x95\xd6\xb7\xe9\xdd\x95\x21\x70\xaf\xb5\x33\xa9\xe6\xbe\x96\x98\x69\x44\x68\xde\x20\x66\x6f\xd5\xf7\x86\xd2\x05\x21\x14\xa2\x64\xd3\x1a\xaa\x71\x70\x77\x81\xc8\x5d\xd1\xf8\x6f\x2a\x09\x3e\xc4\xad\xa3\x5c\x91\x41\x48\x68\xd9\x62\x28\x7d\x4b\x8d\xf6\x04\x14\x1b\xb1\xb6\x90\x6c\xc3\x18\x54\xe1\xcf\x5d\x1d\x35\x30\x7a\x1f\x83\x1b\x58\x70\xa7\xe0\xe2\x86\x15\x5f\x7f\xa5\x8a\x8c\x48\x03\x41\x29\xe5\xfd\x39\xe5\xd2\x91\xda\x4a\x05\x7d\x87\x4a\x01\xc6\xde\xea\xe2\x07\xb2\x3c\x43\xe6\x76\x11\x8c\x4c\xd0\x39\x2c\x00\x9d\xdd\xd0\x3d\x57\x3d\x46\xb9\xe9\xe8\x4b\xb3\x7a\x41\xa4\x39\x6a\x20\x8d\xbc\xbb\xb6\xdb\x78\x0c\x8b\x5a\xe2\x06\xda\xc8\xa0\x61\xfa\xdc\xd1\x9e\x01\x88\xca\x5d\x2e\xd5\xad\x0e\x2a\x50\x35\x39\x76\x93\x79\xa9\xcd\x69\x8f\x46\x47\x3b\xcf\x8b\xff\x88\xc1\xd2\x72\xd2\xf1\x93\xe5\xf5\xfd\xe7\xd5\x04\x21\x67\x5e\x97\xe9\xd7\x44\x72\xd3\x58\xd4\x09\xaf\x06\xbc\xeb\x38\xc6\x2c\x21\xa5\xa3\xc1\x3c\x1a\x43\x66\x9c\xa8\xc1\xa4\xd5\x4c\x29\x33\x65\x23\xb9\xa6\xaa\xbe\x5c\xa3\x60\x7d\xab\xcc\xac\x2b\xf9\x27\xe3\xfc\x26\x65\x38\x8b\x59\xbd\x02\xee\x8c\xdc\xfb\xc5\x7b\x6f\x04\xf4\x1b\x81\x17\x8f\xb1\xe3\xe4\xf2\x49\x7b\xa6\x83\x15\x0c\xea\x67\xa5\xf5\x8f\x1f\x8d\x0c\x7d\xcf\x0b\x69\x82\xc9\xa5\xac\x16\x15\x61\x71\x68\x70\x0e\x1b\x52\x1a\x1d\xed\xe4\x68\x0c\x9b\xbb\x10\x58\x17\x28\xd7\x64\xc2\xe1\xc2\x99\xc8\x04\x57\xc1\xe7\x5b\xfd\x64\xab\xfc\xb1\x37\x88\xc0\xd5\xfa\xda\xc1\xf0\xae\x80\x00\x55\x63\xf0\x86\x82\x4a\xd6\xea\xf8\x18\xba\x78\x6b\xa9\x83\xf3\x3e\x84\x3b\x28\x67\xfd\xdc\x4f\xf9\xe2\xc6\x54\x50\x8a\xad\xb8\x75\xe6\x15\x3b\x11\xaa\xd9\xe2\xab\x43\x18\x3c\x09\x3e\xbf\x8d\x82\xcc\xe5\x9b\xdb\x88\x1c\x6c\xab\xd0\xa4\x45\x01\x3a\x21\xa9\xad\x0c\x82\xd2\x68\xec\xd2\x3b\x67\xa3\x41\x55\x35\x39\x4b\x5c\x07\x07\xe0\x08\x07\x18\xd2\xb8\xd5\x8d\x23\x68\xb1\xef\x21\x87\xd7\x35\xca\x29\xf3\x0a\xdc\x49\xf5\x40\x55\xf9\xea\xb7\x2e\x12\x6a\x31\xa2\x61\x42\xd9\xb2\xce\x69\x99\x62\xb0\x2e\x42\x84\x0d\xdb\xda\xf5\xb0\x68\x73\x09\x2d\x58\x8a\x3a\x75\x41\x52\xef\x8d\xd6\xc6\xb6\xc1\x18\xa2\xd5\x39\x24\x75\x78\xe9\x3a\xcf\x4d\x3c\x1f\xcb\x9a\x1a\x3b\x0a\xc1\x34\xc6\x92\x25\xed\x10\x03\x1e\x21\xc4\x34\x45\xaf\x2f\xab\x0c\x73\xbc\xe0\xe7\x9e\x9a\x56\xa6\x7e\x76\x09\x42\x0f\x41\x87\xa7\x18\x01\x2a\xd6\x83\x37\xb0\x96\xd6\xd0\x62\xad\xc7\xf4\x86\x25\x9e\x55\x70\x98\xe6\xe2\x0a\xb7\x39\xaa\x1f\x71\x66\xc1\xac\x12\x72\x34\xe2\x4d\xb5\xad\x9e\xd6\xe0\x88\x6d\xb7\x4c\x6a\x67\x8e\x10\x2a\x3a\xd5\x44\x61\x31\xdf\x2e\x49\x53\x43\x7a\x15\xd2\x8b\xf3\xef\x56\xe9\x34\x84\xff\x7f\xf7\x46\x5e\x9e\x08\xb7\x69\x05\xdb\x66\x2b\x02\xea\x1e\x1d\x76\x52\x45\x1f\x92\x97\x9b\xfc\xd3\x65\x31\x94\xbe\x57\x92\x13\xf5\x67\x7d\x69\x9e\x42\x57\x12\x2b\xca\xcc\xae\x4d\x8e\x4e\xab\x41\x73\x80\xf7\x32\xaa\x79\xa6\x4d\x72\x1e\xdd\x6e\x56\x63\x7e\x68\x31\x39\xda\xe4\x69\xc9\xd5\xda\x38\x76\x53\xf5\x07\xb3\x08\xf6\x83\xb5\x2c\x72\xea\xd4\x4b\x6a\xbf\x19\xf3\xb5\xfa\x8b\xb6\x34\x73\xaa\x98\xe5\xb6\x5f\x6a\xf3\x31\xf5\x4d\x93\x80\x57\xc5\x9a\xf2\xc9\x58\xac\xbb\x3f\x17\x6e\xf4\xfc\x4b\x86\xf1\x5f\xa5\x44\xe2\x3e\x1b\x21\xd1\x5b\x1a\x70\xdd\xef\x68\x3c\x33\x46\x86\x0f\x7f\x10\x9c\x88\x94\x5d\x51\xba\x2e\x74\xe7\x9b\xca\xad\x7e\x3f\x94\x14\xff\xfb\xde\x35\xb8\x0f\x49\xb1\xaa\xd1\x47\x70\x08\xbe\x70\x43\xa9\x86\x42\x5f\x38\xda\x00\xd7\xb0\xca\x35\xa6\xd2\x2a\x78\x25\x5b\x51\x63\x40\xcc\xfa\x70\xb4\xcd\x66\xa4\xa3\xc8\xa5\x2e\x37\x8c\x6d\x0b\x6c\x1b\x28\x08\x05\xc8\xb0\x1b\xdc\xb0\x6f\x2d\xd7\x2b\x29\x32\xf3\xe0\xaa\xeb\xdf\x74\x9d\x5c\x11\x9a\x29\xc1\x55\x65\x04\x43\xfa\x29\x23\x1d\xa2\xdb\x6a\x4f\xa0\x78\x85\x23\xac\x43\xac\xd5\xef\x15\x29\x6a\x5a\xa4\x74\x58\x50\x6d\xeb\xe4\x08\x9b\x96\xac\xb8\x95\xc2\x26\x42\x87\xa9\x14\x3d\x25\x75\x1c\xce\x3a\x88\x07\x64\x21\x95\x23\xc4\xa0\x5a\x53\x3b\xbe\xbd\xad\x0c\xeb\xa2\x19\x9f\x4b\xeb\x97\xbd\xa9\xf4\x19\x38\xdc\x83\xa4\x81\xc3\xf7\x3a\x02\x0d\x82\xfe\xd0\xba\xee\x87\x39\x0a\xd2\x18\x5a\x1f\x07\xe5\xfb\x18\xb6\x52\x34\xef\x30\x95\x9e\xb4\x44\x18\xb6\x15\x71\x96\x1f\xbc\x5e\x93\x0c\x45\x78\x71\x19\x1d\xd3\xe3\xe3\xfa\x5b\x89\x36\x95\xf3\x6b\x66\xff\x9c\x5b\xc6\x5d\xd2\xdd\xd1\x28\xa0\xe5\x93\x4d\x9c\x4a\xea\x03\x70\xfd\xb6\x94\x93\xa1\x0e\x19\x52\xbf\x5e\x25\xdb\xf5\x07\x42\xb3\x09\x85\x0c\x9b\xc7\xe2\x84\x54\x08\x6f\xb7\x9b\x6a\xc0\x11\xdf\x6e\x8d\x1d\x9f\x00\xd4\x61\xca\x37\x2c\xc4\x79\xc6\xd2\x8c\x2d\xd2\xf9\x21\x94\x77\x54\xc3\x8c\x4f\xf0\x86\x41\x4b\x3e\xde\xf0\xea\x35\xc6\xf7\x4e\xdf\x76\xae\xd0\x44\xdc\x94\x6c\x38\xd1\x32\xc1\xcb\x7a\x02\x31\xa8\x40\xe5\xfd\xde\xf8\xaf\x61\xee\xdf\x8f\xc0\x33\xdd\xac\x9c\xfd\xdf\x6d\x4b\xe7\x03\xd9\x65\x4b\xe7\xb8\x69\x8e\x1d\xdf\xcc\xb1\x6b\x47\x27\xb8\x27\xfd\x5d\xfe\xfd\x36\x53\xf1\xb9\xb5\x1d\x1e\xc9\x72\x1c\x1d\x6e\x6a\xe7\x9a\xa6\x3c\x1a\xe7\x94\x52\x72\x2b\x0f\xe3\x1b\x96\xde\x86\x2c\x42\x24\x32\x54\x10\x27\x2c\xfd\x7a\x41\x6e\x71\xb1\x0e\x05\xc8\xd7\xa4\x4c\x2a\xa4\x92\x65\x21\xd3\xcd\x22\x9c\xd8\xd7\xb6\xf8\xbb\x6d\x34\xd7\xd4\xcf\x79\x9f\xe4\x13\xd2\x6f\xa7\x9f\xa7\x08\x37\xdf\xea\x08\xb7\xb4\x4c\xb5\x7d\x49\xab\x44\x2c\xc7\x42\x9b\xae\x5d\x5e\x46\x83\x36\x38\x55\xc3\x7e\x55\x95\x02\x03\x89\x64\xba\xe4\x41\x7b\xd8\x91\xbc\x5a\xfc\x12\x3d\xc7\x48\x07\xec\x1f\x04\x96\x24\x32\xf6\x74\xa1\xd0\x8b\xfa\x28\x34\x87\x86\x82\x5f\x9d\x6b\x11\xd6\x15\xcc\x9c\x51\xfb\x93\x7b\x8f\x5e\x4a\x01\xb4\x94\x92\x98\xbb\x74\xa3\x15\x08\x3a\x96\x34\x54\xaa\x02\x13\x59\xda\x86\xa3\x0e\x9a\xf0\x49\x2d\x3e\x7a\xb1\xc1\x46\x0b\x81\xb8\xc0\x27\xac\x79\x0c\x00\x71\x75\xc9\x8b\x0f\x56\xd0\xee\x08\x22\xdd\x91\x40\x8e\x36\xb5\x90\x40\xd9\xb4\xcb\xf5\x47\x88\x6d\xb7\x66\x59\x11\x62\x53\xdb\x51\x4c\xc1\xc4\xf4\x14\x53\x50\x55\x90\x85\x97\x2b\xe6\x70\x0c\x5a\xb3\x68\x2c\x9a\x89\xd1\xe8\x7d\xad\x6d\x3a\xba\xec\x99\xdd\xb9\xf5\xb1\x64\xf6\xea\xf7\xb3\x61\xf6\x9a\xf8\xd6\xcb\xad\x99\x82\x4d\xe5\x4d\x40\x13\xce\xfa\xa8\xf2\x36\x07\xde\xc0\x43\xc5\x96\x19\xdb\x14\x72\x8b\xd9\xdb\x4c\x19\x08\xb5\x7a\xab\x25\x5b\xa6\x9e\x96\xed\xbf\xf4\x08\x8f\xba\x10\x5c\x21\x90\xda\x5a\x88\xe5\xed\xb0\xce\xb9\xbc\x18\x1a\xe3\xd6\x37\x8c\x0f\xc9\xed\x2c\x34\x44\xcd\x7e\xd2\x8e\xd9\xe1\xc6\xf4\x6e\x6d\x1c\xa7\x43\x27\x5a\x62\xae\x09\x66\x9f\xd9\x99\xde\x02\xb3\xcc\x71\xca\x0c\xa4\xfd\xb3\xd3\xe1\xc6\x6d\x48\x17\x67\x9e\xfd\x70\x61\x50\x53\xf0\xbe\x3c\x66\x20\x0e\xfc\x03\xdf\x53\x82\x89\x54\xe9\xd0\x5e\xe5\x45\xb9\x66\x18\xb5\x3d\x5c\x74\x56\xac\xd9\x78\x0e\x0b\xc4\x12\x99\x9d\x3c\x3e\xb5\xc7\xda\x36\x50\xe7\x87\x2c\x63\xe2\xe7\xc3\xd1\xba\x78\x32\xe3\x73\x59\x4c\x47\x23\x6d\xc5\x52\x9b\x3a\x48\x95\xf7\x00\x2b\x5d\xa7\x13\xa8\x1f\x9a\x9a\x36\x73\x88\x00\x23\xba\x2a\xa0\x3a\x88\xbd\x05\x5c\xb5\xfb\xa2\xaa\xf4\x20\x81\x17\x6a\x20\x8f\xee\xc9\xdd\x7a\xbe\x9b\x08\x4e\x6d\x97\xfd\x46\x20\x6d\x6e\x7d\x74\xb4\x2b\xbf\x0e\xdf\x44\x65\x70\xbd\x43\x5d\xba\xe5\xbb\xa3\xce\x36\x71\x58\x92\x82\xa5\xb2\xe2\xdc\x5d\x53\xe6\xaf\xd8\xfb\x8a\xb1\x61\xf0\x75\xfa\x36\x48\xd0\x6c\xae\x30\xaa\x80\x8d\x2c\x38\xd7\x98\x4f\x4a\x2d\xd8\xcb\x2b\x44\x07\xe9\xb4\x40\xa9\x9f\x24\xa8\x9c\x16\xa8\xf4\x3f\xe5\xa3\x51\x5c\xa0\x1c\x48\xd5\x6d\xb9\xca\xd3\xbb\x77\x82\x9b\x63\xc7\xd1\x30\x96\xa1\x5d\x14\x6b\xbf\x96\x54\xe1\x4f\x38\xfd\xfc\x4b\xba\x82\x0b\x44\x66\xe3\xb9\x78\x2d\xc0\x4c\xdb\xa1\x0a\xee\xd9\x84\x17\x66\xb0\x80\x0b\x7b\x78\xb2\xe4\xb2\xc4\x7c\xbd\x92\x3b\xf6\x87\x3f\xbe\x17\x8f\xf2\x8d\xc0\x7c\x73\x5d\xaf\x6d\xc2\x8a\xfa\x1e\xdd\x6e\x63\x8c\xb2\x64\xc1\x70\xca\xa5\xa7\x8b\x66\x48\xd6\x82\x9f\x37\xcf\x2b\x71\xfd\x57\x95\x9b\xb2\xa9\xb9\x48\xde\xa8\xd3\x7a\xd4\xa5\x33\x6a\x29\x12\xaa\x87\x2e\x65\x6b\xa9\x19\x89\x37\xd0\xa2\x6b\xa0\xa5\x33\x50\x09\x4e\x8f\xb6\xd8\x31\xda\xc2\x61\x81\x5d\xfa\xc2\xdb\x5f\x15\x11\x99\x49\x5a\x35\x47\x36\x0c\xd0\x6f\x91\x6b\xc0\xd3\x4a\xe3\xc4\x6d\x1a\x27\x3e\x1a\x45\x2a\xe9\x5b\x5d\xca\x46\xa3\xb8\xd5\x84\xda\x26\x74\x34\x8a\xea\x8c\x41\x11\xa1\xa2\x2c\x5a\x14\x74\x49\xae\xd7\xf5\xb7\xed\x56\xe1\x11\x42\x88\xaa\xf4\x50\x58\xcd\x61\x22\xfe\x11\xac\x9b\xfc\xad\x82\xc9\x38\x49\xa2\xb0\xe0\xc8\xaa\x3a\x6b\x7d\x1c\xb3\x46\xa2\x27\x95\xdc\xa1\x65\xc0\xbc\x11\xd0\x55\x46\xa5\x7a\x0f\x4c\xe3\x74\x7e\xaf\xf4\x49\x9d\xf9\x8a\xc2\xc9\x8e\x02\x59\x91\x9a\xf9\x8f\x78\x77\x2e\xa4\x50\xb2\x23\x3f\x17\x92\x93\xfa\x48\x49\xdc\x12\x9b\xc6\xc9\x97\x4f\x97\xa8\x88\x25\xd9\xa0\x70\x46\xba\x13\x64\x15\x82\x18\x90\x65\xac\xd3\xcd\x50\x2f\x29\x16\x4b\x7e\x3d\x3f\xbb\xbc\xf8\xf8\xf2\xd5\x1f\xce\x5e\x83\x00\xce\x0b\xe4\x9d\x91\x79\xc3\x85\xba\x4e\x22\x63\xf2\x8d\x15\xd3\x22\x90\x37\xa6\xea\xc8\x67\x43\xf6\xe4\xb3\x51\x7d\x37\xb2\xd9\x04\x1a\xed\xcb\x66\x13\x1e\x95\xce\x66\x43\x81\xcc\x57\x54\xaf\x6e\x69\xb3\x49\xa5\x31\x0d\x64\x93\x4a\x63\xda\x91\x1b\xaa\xce\x1f\x25\xeb\xec\xc8\xf5\x54\x67\x91\x92\x35\x0f\xc8\x22\x25\xeb\xf7\xc8\x65\x55\x67\x93\x4a\x63\xd2\x95\x4d\x2a\x8d\xc9\xae\xb4\x50\x75\xfe\x28\x59\x71\x5f\x86\xa7\x3a\x8b\x94\xac\x7e\x68\x16\x29\xd9\xa8\x6f\x6a\xab\xdd\xd9\xa4\xba\xee\xe2\x07\x88\x07\xd8\x8e\xdb\xf8\x60\x21\xb7\x1f\x24\x66\xfc\x43\x86\x01\x7e\xc8\x10\xab\xfb\x36\xa9\x07\x4b\xb5\x52\x54\x9c\xec\x73\x92\x72\x75\x55\xf7\xe3\x93\x3b\x7c\xa8\x60\x0a\x4b\x98\xc3\x75\x17\x7f\xb6\x30\xec\x9b\x79\x5a\x0f\x89\xa0\x49\x5d\x57\x11\x37\xf7\x0f\x83\x7e\x5a\x3e\xf7\x82\x15\xbf\xbf\x32\x52\x9f\x88\x09\x9e\xf1\x39\x62\x10\xdf\xe7\x8a\x6b\x72\x3a\x08\xbb\x2c\x9b\x2b\xf3\xce\xd0\xb8\x9e\xd8\x8d\xef\x49\x46\x96\x31\x03\xcb\x82\xc5\xea\x7a\x1e\x3f\x4f\x7f\xc7\x34\x07\xf2\xfc\xf8\x38\x55\x84\xbb\x44\x6c\x96\xce\xa1\x92\x85\x89\xf5\xbd\x74\x36\xe1\x52\xd9\x21\xb2\xcb\xe8\x38\x3b\x3e\x1e\xf0\x59\x3e\x47\xcb\x58\x81\x87\x38\xe6\xb0\x54\x1c\x58\xee\x32\x0c\xcb\xc6\xf2\x36\x6e\x0a\xda\xbc\x29\x30\x18\xb0\x69\xfd\x42\x30\xdb\xfb\x5e\xbc\x14\xa2\x54\x36\x2d\x23\x48\xa1\xe4\x24\x52\x76\xbd\xbe\xc5\x94\x97\x60\x42\x67\x7c\xae\x93\xfe\x52\x58\x7f\x37\x4f\xe3\x15\xc2\xe8\xc5\x4b\xc6\xd2\xbb\x84\x94\xf2\xdf\x18\x83\x29\x9e\xcc\xf0\x1c\xde\x22\x2d\x53\x78\x4f\x27\xf2\x71\x84\x5e\xe0\x24\xcd\xb4\x31\xa4\xb6\x95\x4a\x92\x64\x15\x73\xc1\x09\x6a\x82\xaa\x42\x4e\x62\xfe\xd3\x7a\xb9\x34\x11\xc2\x62\x1b\x5e\x0c\x40\x2c\xda\xe1\xcc\xd6\x3b\x53\xbf\xe3\xa3\x31\xd0\xde\x61\xa6\x44\xda\x8e\xa9\xef\x82\xaa\x07\x01\xd3\x1a\xb0\x3c\x24\xf5\x40\x4b\xcc\x35\xdf\x0a\xa0\x43\xbd\x83\x50\x48\x0d\xc5\x8f\x98\xeb\x81\xfb\xc5\x2b\x12\x70\x8b\xab\x12\xb3\x2f\xb8\xf4\x96\xe7\xbd\xfa\xc8\xfe\x80\xef\x9c\xe5\x29\xfc\x35\xd4\x5a\xf5\xe6\x22\x1a\x0b\x07\xb7\xdb\xf7\x3a\x7c\x21\x07\xd0\xbd\x50\x82\x13\x29\xec\x44\x2a\xfd\xf4\xfc\xe2\xcb\x73\x50\xf4\xbb\xb5\xf2\x0a\x78\x11\x41\x93\xf4\x44\xf2\xad\x0b\x85\x67\x91\x16\x7f\xc8\x91\x89\x77\x93\x78\x2a\xce\x01\xb4\xc5\x72\x8f\x22\xa5\x8a\xab\xbf\xe2\xae\xea\x37\x69\xf9\x6b\x89\xb3\x5f\x8a\x8c\x2c\x89\x78\xb5\x1f\x9d\xfa\xa5\xe7\xfe\x14\xda\x15\xbc\xf0\x14\x8d\x62\x7f\xb7\x5a\xa3\x32\xfb\xd3\x18\x93\x5e\x65\x63\x38\x18\x41\xbd\xdc\xdc\xb5\x33\x74\xea\x37\xe2\xdd\xbd\x12\x0b\x1b\x39\x39\x88\xeb\x9a\x96\x2f\xf9\x90\xf2\x1b\x33\x1c\xf9\x86\x97\x46\x9d\x4e\xa0\xbc\xd7\x82\xd0\x11\x71\x6c\x4d\xa4\x8e\x4b\x1d\x1b\xef\xbd\x52\xc0\xc5\x14\x54\xce\x5b\xd1\xf7\x93\xb9\x2c\xa5\x8e\x59\x94\x7c\xb0\x17\x49\x9d\xab\xa7\xfd\x70\x6a\x77\x2b\xc3\xfe\xa5\xc9\x19\x5d\xa4\xab\x72\x2d\x2e\x4b\x09\x2e\x6e\xbc\x4f\x44\xa3\xf7\x57\x7f\x99\x04\x20\x54\x90\x03\x95\x00\x28\x4d\x42\x4d\x5b\x4e\xa0\x5c\x3b\x8e\xf9\x60\xdc\x94\xe4\xd2\x4f\x2b\x40\x62\x9a\x12\xde\x26\x8e\x2a\x09\x94\xac\xa8\x02\x4a\x04\xce\x61\x13\x86\x41\x8e\x50\xdb\xd6\xf1\x6c\x36\xc6\xdd\x5d\x37\xcf\x64\xb3\x69\x1b\xe7\xad\x6e\xb4\x79\x5a\xea\x82\x10\x0a\x6a\x74\xaa\x2c\xa9\x6c\xf6\xa4\x1c\x58\xeb\x5a\x86\xd4\x06\x46\xe4\xc7\x80\xa9\x9b\x34\x68\x5e\xa0\x65\x78\xbc\xcd\xf4\x42\x16\xa0\xa2\xc9\x2d\x89\xbd\x7b\x6e\x9c\xda\x62\x85\x9b\x95\x9d\x93\x54\x39\xe4\xb1\xb5\xbd\xfe\x21\x77\x5a\x5c\x78\xe8\xd7\x6c\xd8\x38\x9c\xba\x59\xf3\x70\x62\xb0\x31\x3c\x03\x1f\x16\xcb\x46\xe6\x47\x1b\x10\x6c\xc6\xe7\x83\xdb\x19\x9f\x4f\xc5\xff\xd4\xb3\xcd\xc6\xfe\x82\x2c\xe8\xcd\x55\x26\xce\xa9\xbe\xab\x95\xaf\x33\x3e\x1f\x8d\x76\x14\xd6\x8f\x42\x99\xba\xaa\x25\xa0\xda\x18\x09\x6d\x9a\x65\x3f\x93\x92\x8b\xc3\x69\x22\x77\x3a\xe8\x5c\x53\x2b\x18\x69\x3b\x0b\x45\x73\x77\x35\x6f\x1e\x47\x17\x88\x55\x7c\xb7\xc0\x98\x03\x6a\xc1\x98\x13\x19\x1e\xc3\x18\x54\x5d\x64\x4f\x91\x46\xc1\xd3\xa1\xe0\xe6\x0f\x8c\x5b\x83\x8f\x68\x80\x8b\x1d\x6a\x7f\x9f\x43\x86\x78\xad\xbb\x1f\xe0\xbc\xc4\xfa\xfd\x2e\x65\x6c\x9d\x27\x32\x0e\x21\x3f\x18\xa8\x40\x9e\xeb\x3a\xd6\xa1\x78\xa7\x6b\xc1\xc4\xa2\xa0\x1c\x7f\xe3\x13\xac\x99\x1f\xe7\xe4\x42\xb1\x02\x93\x7a\x2d\x14\x83\xc3\xa1\xed\x79\xc2\xda\x31\xa3\xc2\x27\x1a\x36\x16\x64\x42\xa5\x65\xae\x34\xdc\x79\x43\x03\x56\xb9\x0e\x95\x2f\xeb\x7a\xb8\x36\x40\x68\x1d\x22\x63\x6f\x60\xd9\xef\x41\x80\x43\xf7\x75\x30\x5f\x36\x4d\x19\xe3\x41\xb7\x9c\x54\xb3\xe7\x89\x23\xa1\xec\x6f\x37\xfb\x20\x26\x80\x7d\xde\x65\xc6\xc4\xe8\xe4\x96\x7c\x23\x74\x4f\x5d\x19\x9a\x31\x0b\x07\x99\x7d\x98\xb8\x65\x1d\xf6\x85\x4d\xf3\x33\x59\xc5\x37\x30\x24\x90\x26\x5a\xa8\x76\x69\xac\x61\xa5\x8b\x8a\xb4\x1a\xb1\x06\x3d\xde\x60\xc4\x76\xb9\xf6\x23\xbb\x20\xec\xb2\x3b\x61\xd2\x19\x46\xda\x06\xfc\xf2\xf6\xff\xbc\x7d\xd7\xd7\x7a\xa4\x91\x61\xf9\xfb\xcc\xa0\x55\x28\xbc\xfe\xfb\x77\x1f\x65\xc9\x43\x6d\x71\x47\x58\x3a\x67\x97\x9b\xe1\xb6\x36\x6e\x08\x06\xf7\x0c\x32\xac\x45\x9c\xa6\xf4\x79\x3c\x86\x54\xef\x52\xbd\xcf\xca\x37\x4e\x0a\xb3\xb1\x6b\x0d\xe4\x5a\xc0\x3b\xa1\xb7\xa2\x4c\xfd\x11\x21\x84\xb8\x36\x0d\xe2\xca\xda\xa9\xd1\x9d\x0d\x6d\x95\xd8\xd6\x53\xdb\x7a\x22\xbe\x1a\xbb\xe2\xa9\x17\xbf\x42\x5f\x3c\xa2\x92\x5f\xdd\xa6\x19\x88\x96\xfa\x2f\xf1\xdd\x6d\x69\x32\x1c\xd5\x41\xc3\xbc\x38\x78\x8a\x48\x32\x72\x7d\x8d\x99\x24\xaf\x71\x54\xaa\xc2\x08\x2a\x93\x11\x37\x50\x5e\xa8\xb6\x28\xc4\x99\x5b\xdf\xb8\x88\x85\xaa\xeb\x90\x02\xaa\x32\x94\x71\x36\x6b\x5f\xc0\x40\x7d\x3b\x71\xdb\x20\xe0\xb4\x66\x17\xf6\x93\x8b\x05\xc3\xdf\xfc\x60\x02\xb3\x28\xde\x0b\x54\xbf\x91\xa6\x72\x06\xe6\xf0\x0a\x2f\x52\x81\xa0\x3f\x6c\x70\x95\x0c\xdf\x14\x6c\x78\x5b\x30\x3c\x24\x54\xf5\x41\x0a\x0a\x87\x25\xc6\x93\xe1\x0d\xe7\xab\xc9\xb3\x67\xad\x33\x90\x2c\x8a\xdb\x67\x59\xb1\x28\xd5\xf1\x72\x2c\x20\x65\x02\xf5\x4f\x95\xed\xba\xc5\xf5\x19\x17\x53\xc9\x01\xda\xab\x4a\xdb\xcd\x49\x1b\x54\x55\xcb\x79\xe3\x3a\xaf\xaf\x8e\x20\x84\x16\xdd\x3f\xfd\xf9\xd3\x0f\x1b\xec\xcc\xfc\xcf\x9f\x3e\x41\xa6\x3e\x37\xd6\xe4\xcf\x9f\x3e\x0d\x3c\xb7\xec\x4f\xad\x69\x0e\x95\xab\x8a\xf4\xd1\x5e\x15\x1c\x53\x4e\xd2\x3c\xbf\x1b\xde\xa4\x7f\x4d\x59\x56\xac\xcb\x61\x24\xc6\xa3\xe7\x3f\xcc\x8b\x62\x15\x0d\xaf\x30\xff\x8a\x31\x1d\xaa\x78\x62\xca\xa3\xfb\x87\x0d\xaf\x86\x29\xcd\x86\x8b\x1b\x92\x67\xe6\x1b\xab\x92\xe1\xdb\xe5\xf0\xae\x58\x0f\xbf\xa6\x94\x37\x0b\x87\xbc\x18\x5e\xe1\x7a\xd7\xbe\xde\x84\xa0\x92\x7a\x5f\xe1\x70\x95\xe3\xb4\xc4\xc3\xc5\x4d\x4a\xaf\xf1\xf0\xcf\x9f\xea\xec\x47\x7f\xfe\x24\xc0\xfd\xf9\x93\xb5\xfe\x75\x8b\xf6\x0e\xe3\x33\xc6\x2b\x93\x33\x6c\x98\x2e\x39\x66\x7b\x06\xa2\x47\x40\xb8\xee\xb5\xb6\x14\x76\xfb\xfd\x04\x2a\x0f\xeb\xad\x19\x83\xf2\x80\x6d\x32\x40\xae\x07\x10\xaf\x71\x47\x32\x7a\x9a\x05\x13\xcc\xe3\x68\xa4\xdc\x2f\x05\xc3\xc8\x46\x23\x66\x4e\xd6\x68\x44\x8d\xc2\x32\x49\x12\x22\x35\x96\xa6\x2c\xfe\xf4\xc3\x86\x56\x13\x31\x91\x4f\xb2\x54\x70\x21\x0d\x32\x4c\xc4\x15\xd6\xb8\xfa\xde\xbe\x3b\xbf\x78\xf9\xee\xd5\xd9\x21\x17\xe8\x3e\x28\x07\x5d\x8c\xae\x08\xfa\x21\x92\x0b\xfd\xb7\x0a\xa0\xcb\xd6\xa2\xb7\x52\xa7\x53\x56\xff\x30\x36\x43\xaf\xb4\xb2\x12\x2d\xf5\x07\xd4\xb4\xd5\x20\xcb\x78\x1d\x63\xb0\xdd\xf2\xd1\xc8\x7a\x09\x8e\x61\xa1\x72\xe2\xc4\x9e\x6c\x79\xa0\x09\xe7\x32\x8e\xdb\x96\xb2\x7c\x56\xce\x03\xef\x04\x9e\xa8\xa7\x04\x80\xb2\x42\xd3\x18\xa2\x72\xb2\x22\xe9\x9a\xe2\x05\x3e\x2b\x55\xb8\xf8\xd4\x7d\x61\x18\x7e\xb1\xc4\xfc\x83\x39\x20\xef\x97\x31\x87\x8b\xfa\xc0\x00\xc8\xab\x0a\x7a\xfa\xc2\x43\x26\x2c\x9b\x04\x67\x8d\xbd\x59\xd7\x06\x0e\x58\x4f\x5b\x5e\x14\x1c\x40\xec\xcf\xd2\xb1\xa4\x70\xa6\x8a\xfd\xf9\xb9\x2f\xa6\x8e\x49\x62\x98\xb9\x93\xc4\x55\xe5\xf2\xf6\x06\x21\xb4\x42\xc4\xf9\xa9\x8f\xfc\x9d\x11\xd8\x94\xae\x96\xa4\xd4\x96\xbe\x62\xe6\x97\x06\x23\xad\xfe\xd8\xd5\x66\xfa\x77\xb3\x9e\x72\x97\x44\x5d\xca\x4f\x8c\x7a\x60\x7f\x4b\xde\x6c\x29\xc8\xc1\xfe\x66\xac\xd9\xac\x96\xf9\xef\x6f\x4c\x9b\x8d\x6f\x77\x89\xbd\x34\x84\x96\x68\x4c\xb7\xbd\x0e\x48\xb8\x74\x13\xf3\xc8\x35\x6b\xa2\xe5\x71\xa1\xaa\xae\x5a\x44\xaf\x83\x94\xf1\x85\xea\xd6\x8a\x12\x55\xb3\x08\x8a\xc4\x74\xe5\x5a\x5e\xa6\x43\xef\xd6\x9a\xb1\xb5\x13\x5c\xe2\x08\x8f\x46\x71\x2d\x9e\x3a\x72\x62\xf3\xc4\xd6\xca\xa6\xfe\xba\xdd\x1e\xc5\x56\x56\x43\xe8\x50\x9c\xa8\x50\x6b\x73\x85\x03\x7b\xdf\x5d\x37\x30\x1b\x20\x64\x6c\x64\x6a\x0c\x07\x95\x40\xd0\x05\xcc\x06\x21\x1c\xce\x61\x03\xd1\x17\xc1\xd3\x90\xb5\xaa\xe9\xd0\x85\xe1\xc3\x93\xd9\x52\xff\x61\xea\x9c\x3c\x98\x37\x5f\xad\x0b\xb7\x10\x6e\xa4\x10\xce\xb1\x86\x5d\xa4\x79\x7e\xbe\x5e\x61\x76\x2e\x0a\x34\xe7\xea\x7f\xf4\xa9\x0d\x74\x76\xce\xd0\x14\xf3\xa9\x25\xe2\x13\x3b\xdf\x46\x90\x90\x38\xbb\xd1\x41\x05\x8d\xa2\x2f\xd8\xbc\x29\x8d\x6f\xb5\x36\x82\xbb\x60\xeb\xa6\x1c\xbe\xd9\xba\x02\xd6\x1e\x44\x89\x06\xc5\xbc\xa4\x38\x8d\x2c\x5e\x9b\x4b\x74\xbb\x75\xca\xf4\x2d\x66\x0b\x07\xae\x56\x15\x6c\xcc\xb5\x64\xa8\xb3\x7c\x55\xeb\x71\x29\x72\x77\x84\x90\x24\xa9\x72\x0b\xd4\x1f\xb2\x16\x6c\xd8\xf4\xe0\x06\xed\xb7\xb6\x3f\x37\x72\x1f\x0e\x92\x36\x7d\x87\x9c\xa9\x07\x03\x51\x0b\x39\xbe\x2b\x50\xed\xce\xc6\xb2\x08\xd3\x2f\x84\x15\x54\xac\xc7\x63\x09\xbe\x1e\x29\x68\x2c\x4c\x61\xf9\xfd\x6c\x54\x53\x5f\x86\x42\x0e\xa7\x79\x43\x9c\xd6\xe9\xc9\xa9\x91\x9a\x94\xaf\x71\xc9\x59\x71\x27\xbd\xff\x25\x4d\x50\x6f\x12\x60\xf1\x9e\xe1\x6b\x52\x72\xcc\x64\x45\x05\xc8\xad\x08\xeb\x50\x0e\xb5\xa7\x99\x71\x94\x8b\xf8\x0d\x1e\x2a\x92\x2d\x9e\x55\x39\xf9\x82\xcb\x61\x41\xe5\xc3\x3e\x53\x1d\xe3\x6c\x58\xb0\xe1\x9a\x32\x4c\x33\x2c\x85\x0d\x6d\xdf\xba\xb2\x33\x0a\x82\x4c\x76\x73\xd9\xed\x1e\xdb\xf2\x8c\xa5\xc1\x38\xb7\x0d\xff\xce\xda\x8f\xd6\xe4\x6d\x24\x5a\x26\x25\xd0\xe2\xee\x25\xbb\x2e\xa7\xb3\x24\x49\x1a\xdf\xa4\x85\xf9\x7c\x82\x61\x81\x6a\xd9\xbe\x79\x89\x19\xa3\x58\x22\x81\x5a\x5e\x53\xc6\xfa\x0c\x78\xaa\xca\xf8\x41\xc1\x10\x66\xe3\x1e\x9b\x37\x1a\x15\x36\x77\x40\x23\xaf\xa9\x7d\xca\x16\x00\x16\x55\x70\x88\xcd\xb4\xbe\xcc\x7b\x52\xea\xac\x12\x52\xc2\x23\x13\x4b\xe0\x3a\xb1\x84\xca\x3c\x10\x8a\xd5\x1b\x50\xca\xda\x70\x9e\xcd\x12\x81\x9f\x98\x7e\x99\x90\xe4\xec\x97\x9f\xce\x3e\x5e\x9e\xbd\xfb\xe3\xdb\x8f\xef\xdf\xfd\x72\xf6\xee\xc2\xd5\x55\xc8\x3f\x2b\xe0\xe5\xb2\xe0\x1d\x7a\x89\xe6\x57\x81\x35\x72\xdf\x34\xce\xb8\x72\xc7\x45\x5e\x50\x1c\x3b\xcf\x81\x7a\x87\x51\x60\xd7\xb7\xdb\xd9\x5c\xed\x3c\xe4\x95\x69\xec\x2e\x9f\x76\xbc\xd4\xee\xad\x81\x44\x06\x9f\x7e\x27\x56\x6c\xa2\x85\x3d\x52\x62\xf4\xe2\x93\x75\x30\xce\x61\x7a\x2f\xf1\x77\xee\x30\x04\xbb\x20\x34\x19\x09\xb7\x5d\xd1\x14\x7f\x0f\x02\x74\xc8\x57\xad\xe4\xbb\x9d\xc7\xb5\x56\x5f\xdb\xe3\xbe\xbf\xfa\x8b\xd1\x03\x36\xa0\xaa\x1c\x5c\x9e\xc9\x79\xb8\xa2\x41\xb4\x0f\xac\xf8\x46\xfc\x16\x3b\xb0\x5b\x19\xb4\x5b\x4b\xa7\xf7\x5f\x29\xf6\xc9\x1a\x80\xa9\x2e\xd6\xab\xa3\xe6\x17\xbb\x93\x00\xfa\x7d\x15\x5b\x5d\x9a\x0b\xa1\x02\x03\x05\xa0\x34\xf0\x53\x58\x00\xfd\xde\x79\xe4\x63\x95\x9a\x53\xae\x4d\x1c\x52\xf8\x14\x47\x6a\xe0\x1b\x2a\x04\x77\x54\x1a\xf1\x97\x30\x35\xee\x90\x5f\x59\xba\x5a\xe1\xac\x89\x54\x76\x55\x4a\x50\xed\xad\xa3\xc5\x6f\x26\xd8\xce\x50\x10\x73\x57\xde\xb6\x0f\x67\xa4\x2c\x4e\x1a\x3b\xab\x88\x04\x7e\xae\xde\xae\x89\xe8\x06\xcc\xf8\x58\x7e\x13\xa8\xb5\xb9\xc6\xdc\xd8\x50\x69\xbb\x45\x3c\xe3\xf3\x49\x6d\x53\x47\x21\x4f\x6a\x0a\x00\xc4\xe2\xfa\x0d\xb6\x5b\xf9\x2f\x85\xc5\x57\x2a\x38\xd7\x09\x46\x2f\x3e\xe2\x65\x2e\x90\x50\x7f\x8a\x31\x10\x58\xb6\x48\x79\xdc\x2c\xa1\x96\x2f\xb4\x5c\x05\x53\xe6\x86\xca\xca\xd0\x4e\x54\xaf\x55\x3a\x1a\xc5\xd2\x15\x63\x2a\xff\xaf\xdc\x32\x94\x13\x6a\x0a\x26\xa9\xb8\x48\x4a\xcc\x65\xa5\x52\x16\x97\x75\x31\x00\x90\x88\xa1\xb2\xa9\x19\x45\xb0\xe7\x49\x47\xa9\xb2\x53\xac\xa0\x3a\x7f\xe6\xf3\x6b\x5c\x2e\x18\x59\x09\xb4\xf7\xd7\xd1\x40\xe9\xaa\xae\x22\x32\xef\xad\x45\x21\x07\x15\x80\x92\xf9\x96\x79\x99\xeb\x88\xa0\x87\x30\xd5\x2e\x83\xd9\x93\xbd\x0e\x6a\xde\x1e\x40\xeb\xe6\x51\xe8\x56\x08\xa3\x4b\x3f\xb4\x0d\x74\xb5\x6d\x1e\x8b\x24\x2b\xa0\xf6\xa7\xe3\xb8\x95\xe7\x6b\xbb\x1d\x9b\x18\x60\x6e\x0a\xb1\x17\x63\x48\xdd\xb4\x61\x2f\xc6\x90\xb4\xbd\x4e\x30\xdc\x78\x43\x6a\xf7\xe8\x68\xf1\x58\xed\xd2\x4f\xad\x47\x3f\x1b\x8d\x8e\xa8\x56\xdd\x31\x57\x69\xa6\x3d\xfc\x9f\xc7\x63\xc8\xbb\xf4\x84\x04\x38\x62\x0a\xf9\x3c\x4e\x1a\x26\x0a\xe2\x65\xd6\xf8\xa4\x6c\xc4\xaa\x41\x6b\xb5\xfb\x06\xbf\x69\xbc\x33\xfe\x46\x41\x3f\x0e\xc8\xcc\xd1\x57\x4d\xec\x39\x8c\xd5\x6c\xa3\x6f\x95\x94\x30\x99\xba\xde\x78\xa0\x37\x25\xa1\x0a\x57\x29\xaa\xe5\x32\x5d\x07\x9c\x81\x81\xe7\x72\x83\xbc\x5f\xdb\xad\xf4\xf0\xc5\x33\x36\x17\x9b\xa2\x3d\x74\x54\xd4\x63\xe3\x8f\xab\x59\x67\xbd\x1f\xda\x81\xdd\x5e\x5c\x33\x36\x47\x04\xf2\x4a\x8f\x4c\x6c\xba\xf2\x0f\x4c\xef\x75\x32\x77\x6a\x4c\x50\xbb\x42\xcd\x94\xe9\x63\x1c\x00\xe2\xd4\x29\xf6\xf7\x91\x42\xea\x3a\x25\x8d\x46\xf1\x6e\x88\x88\x34\x43\x7b\xc0\x4d\x70\x2e\x8d\x46\x0f\x17\x9f\x43\x9a\xae\xef\x9d\x16\x22\x71\x23\xfd\x46\xc7\x38\x03\x0d\x7b\xe7\xe5\x3a\xad\x04\x9f\xe2\x07\xfe\x2a\x9a\x1f\x52\xd0\x57\xf5\xa5\x8e\x54\xef\xb3\x7f\x98\xd0\x23\x14\xae\xe4\x11\xe2\xfa\x90\x52\x8b\x87\x75\x68\xaa\x70\x26\xb0\x38\x14\x5a\x3d\x29\x28\x0e\x3a\x7a\xe3\xa4\x58\x2e\x5d\xa1\xad\xd7\xe6\xe0\x26\x69\xa6\x18\x52\x63\x2b\xd8\x01\x80\xe1\xdb\xe2\x0b\xf6\x6a\xca\xa8\x29\x7c\x77\x70\x95\x42\x07\x57\xc9\xf0\x8a\xe1\x45\xca\xf1\x07\xb5\x01\x6a\xb9\xbc\x56\xbe\x9e\x3e\xd5\x7e\x7b\xc3\x34\xcb\x04\xb9\x2c\x87\xe4\x56\xa0\x81\x54\x4e\x0f\xf5\x36\xb6\xe3\x99\x0f\x6f\x25\xe0\xe1\x6f\x7e\xd8\xe0\xea\x37\x43\x7e\x93\xf2\xe1\x4d\x5a\x0e\xc5\xe0\xb3\x4f\x72\x28\x12\xac\x1b\xe2\xa5\x79\xf3\x21\xec\xd2\x80\x3a\x22\x8b\xfb\xf1\xc8\xb0\x0c\xd4\xbf\xb1\x07\x01\x70\xb4\x65\xd5\xc3\xea\xb8\x15\x1b\x2f\x6a\x89\x7d\x43\xb7\x9e\x1d\x26\x3e\xb7\x78\xe7\x36\x66\x40\x34\xfc\xc2\xc2\x6f\x05\x8c\xea\x13\x1b\xa2\x33\x09\xa3\x57\xb5\xf6\x6c\xc9\x65\x10\xef\x56\x8c\x08\x16\xcc\x26\x10\x8a\x18\x31\x63\xed\x24\x0b\x9e\x77\xfd\xc2\x09\x8e\xbb\x2b\x78\x44\x4f\x82\x22\x08\xd8\xc9\xf2\x3e\x69\xbe\xfa\xa6\xdb\xea\xe7\x59\x7f\x0f\x3a\x22\x86\xfe\xa6\x60\xf2\x36\xd8\x17\xc7\x48\xd7\x95\x47\x15\xf9\xbc\xb3\x53\x9b\x68\x3b\x7e\x5b\xdf\xaa\x53\x9a\x63\xf7\x4f\xb3\x4a\xd8\x39\x68\x46\x23\x61\x0d\xa4\xdc\x89\x80\x52\xc1\xf8\xce\xf5\xb3\xf0\xf0\x90\x87\xf0\x90\xa9\xb8\xc7\x1d\xb8\x68\xc4\x75\xb1\x0f\x1f\x36\xb0\x93\x41\x1e\xc2\x4e\x1d\xa6\x57\x87\xb6\xa1\xa0\xb3\x85\x8a\x0f\x4c\x41\x25\x06\xf9\x30\xb8\xdb\x26\x0d\xbb\x16\x52\x26\xbd\x70\x97\x52\x09\x8b\xcd\x3a\x5a\xeb\x70\x13\x17\x71\x49\x9d\x14\xd6\x19\xc9\x94\x49\x1d\x3a\xd2\xf9\xb6\xd6\x25\x2e\x5f\xbf\xff\x45\x3b\x13\x98\xaf\x0c\xff\xe7\x9a\x30\x5c\xbe\xca\x71\x4a\xd7\x2b\x74\x74\xba\x63\x4f\x4c\x2f\x36\x3e\x71\xdd\x89\x72\x31\x08\xaf\x14\xdc\xbf\x29\xa0\x82\xa1\x1c\x2a\xf5\xac\x5b\x57\x97\xce\xe4\xd2\x98\xd5\x18\xee\x6a\x13\xfb\x0b\x67\x96\x0d\x84\x13\xb8\x38\x80\x6c\xd6\xa3\xfa\x77\x17\xac\x49\x1c\x5e\x57\x7f\x64\x26\x40\x7d\x60\x2c\x5d\xe8\xa6\x2b\x98\xac\x01\xde\xc4\xbd\xc1\x05\x6e\xef\xce\xc1\xfa\xdb\x68\x32\x15\x34\x06\xaf\x63\x4a\x99\xa1\x2f\x97\x5d\xe0\x3c\x3c\xb4\x51\x34\x8b\xde\xf8\x0e\x19\xfa\xa9\x28\x44\xa7\x3b\x31\xff\x33\xbe\xab\xd3\x71\xe2\x8c\x2c\x5c\x8f\x92\xc0\x4e\xb2\x29\x93\x8e\x79\x08\x19\xaf\x2e\xad\x1a\x65\x3f\x15\x6b\x9a\xed\xc7\x79\x53\xfd\x0d\x45\x36\xac\x79\xd3\x17\x54\x8f\xd1\x8e\x10\x58\xf7\x86\xd6\x18\x63\x0a\x80\x1b\xc7\x6b\xf7\xc9\x80\x47\xe3\x0a\x36\x86\x11\x83\xed\xb6\xed\xb2\x11\x1c\x07\xac\x69\x42\xdd\x1e\x04\x97\x61\xbc\x1b\xf7\xbc\xda\x5a\x4b\x5e\x83\x1c\x8d\xf4\x80\x14\xfa\x7d\xf7\x98\xde\x58\x2c\xda\x73\xe3\xdf\xcf\x9c\xfc\x00\xfd\xec\xa3\x5d\xf4\x7e\x54\x22\x28\x63\xc1\x86\x79\x67\xd0\x63\xe6\x60\xa0\xe2\x10\x71\x4f\x18\x7e\x40\x50\x22\xd7\xfc\xb0\x7f\x24\x83\x07\xf6\xac\x7f\x34\x13\xfc\xce\x06\x32\xac\x28\xdc\xf8\xfe\xf1\xd7\x98\x4f\x02\xe6\x73\x72\x69\xab\x7d\xd0\x3e\xd8\x35\xec\x05\x95\x79\xf6\x2f\x02\xba\xb4\xe5\x3f\x18\x13\xec\xd6\xed\x79\x74\xeb\x48\x68\x5a\x3b\x7f\x92\xe6\x79\xef\xcd\x36\x41\xd4\x1e\x5c\x50\xab\xc6\xa2\xa2\xa7\x21\xd6\x8e\xd8\x65\x45\x69\xcc\x98\x86\x33\x84\x67\xe3\xb9\x96\x4e\xa9\xbc\x00\x56\xc7\x0e\xa5\x90\xb3\x15\x8f\x0d\x18\x2b\x7c\x35\x67\xd7\x09\x6e\xc6\xa0\xa7\x97\xff\x4d\x5d\xf1\x37\x43\x8e\x6f\x57\xe2\x01\x34\x54\xd3\x97\x1a\x7a\x95\xaa\x23\x8b\xaa\x39\xd0\xf1\xbf\x14\xf5\x53\x1d\x26\xaa\x66\xcc\x40\xff\xf3\x67\xb6\xc5\xfa\xd6\x3d\xe8\x9e\xb8\x0b\x58\x33\xfa\x9d\xeb\x64\x07\x51\xff\x25\xf5\x01\xf7\xd8\x5a\x0d\xa0\x7b\x6f\x1f\x76\xf9\x9a\x56\x3d\x0f\x9d\xe8\xbd\x3d\x76\x1e\x1c\x7b\xdd\xeb\x0c\xc3\x24\x49\xf8\xdc\x71\x9a\xa9\xf5\xeb\x32\x58\xbe\x33\x4b\xbe\x7b\x96\x32\xb1\xcb\x81\x5a\x95\x07\x0e\x7b\xd2\xef\xd2\xac\xb9\x88\x13\x1d\x7b\xf4\xc4\x46\x60\xec\xf7\x6e\xff\xde\x5c\xff\x0f\xfa\xd8\xef\x79\xcb\xf5\x74\x3d\x74\xcd\xd0\xf7\x04\x82\x81\x8b\x47\xbb\xf8\xb4\x34\xaf\xf7\xdd\xa7\xeb\x3f\xfe\xf5\xb7\x13\xba\x67\x0e\x7a\x50\x17\x5e\xcb\x9d\xfd\xf0\xfe\x2c\x01\x93\xe4\x73\x2f\xb4\x7f\x53\x88\x71\x00\x48\xd9\x62\xef\x6a\xbc\xb5\x87\xb1\x17\x68\xdf\x50\x62\x27\x74\x79\x45\xf6\x02\x4a\x92\x34\xcf\xf7\xc1\x3a\xc7\x9c\x4b\xef\xb7\xfe\x20\x75\x93\x9d\x90\x6f\xd2\xf2\xa6\x37\x4c\x51\x79\x2f\xb4\x43\x07\xea\xb4\xd9\x09\x9b\xa5\xbd\x77\x89\x24\xa2\xf2\x4e\x68\xae\x8c\xb0\x27\xd4\xc2\x13\x2c\xf6\x81\x2e\x45\x08\x87\x42\x97\x8d\xfa\x40\x3f\xf0\x0c\x17\x4d\xd9\xe5\xce\x3e\x6c\x76\xc8\x9e\xd0\xd3\x3a\x9f\xe4\x6e\x4c\xf6\x02\x39\xf7\x04\x5e\x36\x42\xd8\xef\xec\x41\xc7\x35\xee\x0d\x5a\xd7\xdf\x83\x7b\x26\x2e\x7e\x6f\xb0\x75\x93\xbd\x34\xa8\x27\xcc\xbc\xdf\xe3\xe9\x10\x4a\xb9\xae\xe9\xfa\x6e\x6c\xd0\x31\x07\x7b\x82\x5d\xd8\x20\x85\xbd\xa0\x1e\x32\xe2\x85\x1f\xff\x70\x27\x7c\x27\xfa\x61\x6f\xe8\x4e\x9b\xbe\xb0\x0f\x1b\x7e\xb3\xe1\xce\x5e\x6c\xc4\xcb\xde\xe0\x6d\x8b\x9d\x70\xfd\x28\x8f\xbd\x81\xfb\xcd\x0e\xe8\xe1\xb0\x25\x0a\xb4\xdd\x7d\x3a\xfd\xe8\x93\xbd\xfb\x69\xb4\x3b\xa4\x8f\xc3\x26\x14\x6a\x5c\x85\x93\x85\xac\xee\x9e\x89\xff\x85\x5f\x28\xba\xf0\x71\x72\x74\x99\x07\x94\x03\x55\x39\x12\x86\xdc\xa2\xe8\x3a\xcf\x9d\x3c\xf2\x43\xe9\x5a\x7c\xd4\x8c\xb8\x37\x1a\x59\xb7\x37\x9d\x8a\x31\xc6\x8e\xe4\x56\xcc\x25\x66\xad\xd8\xed\x36\x4c\x70\x11\xee\x9e\xd9\xee\x8d\x67\xe3\x90\x49\x83\xb1\x14\x96\x03\x15\xd2\x3d\x2e\x11\x51\x39\x3c\xdf\x2f\x63\x06\xc0\x0b\x34\x36\x55\x8b\x59\x39\x17\xb5\xfc\xb1\x32\x20\xfb\x4a\x6d\x48\x79\x00\xa9\x0c\x9f\x58\xa2\xd4\x84\x4d\x3c\x39\x29\x5f\xa0\xf1\x73\x90\xce\xca\x39\xc2\xb1\xf8\x47\x0f\xb3\xc2\x79\x89\x87\x64\x19\xb7\xa6\xcb\x00\x10\x30\xe5\x4c\x55\xdd\x81\xa9\xcb\x86\xe6\xd9\x55\x2c\x87\xaf\x53\x8e\x41\x2a\xad\x3d\xc5\x9f\xb1\x14\x8b\x8b\xfb\x23\x06\xa0\x0e\xd4\xc3\x07\x62\x48\xd2\x64\x31\x45\x9b\x0a\x32\xd0\x74\x29\x13\xdc\x94\x63\xdf\xa4\xa2\x27\x31\xc8\xc1\x68\x14\x5d\x5e\x46\xca\x43\x68\x7d\xa5\x62\x4c\xc7\x63\xf8\x23\x18\x8d\xe2\x74\xc6\xe7\x88\x4e\x71\xcc\x66\xdc\x4c\x69\x22\xfe\x06\x95\x58\x4b\xa2\x62\x81\x31\x00\x0b\xf5\x57\x5a\xfb\x78\xa6\x95\x0c\xe5\xcd\xa6\xb3\xb9\xca\x75\x67\xff\x02\x95\x78\x97\x77\xa0\x77\x33\x3b\xd5\x23\xc9\x18\x94\x58\xe1\x17\xf2\x8d\x50\xc7\x9a\x7a\x75\x27\x07\xd8\x79\xfe\x76\x88\x08\xec\xe9\xec\x73\x24\xbf\x5f\xc2\xdd\xd9\x40\x0d\xa2\xe7\xb3\x53\xaf\xc6\x4e\xf2\xf6\xca\x6e\x4a\xcf\x17\x56\x0d\xb4\xbd\x8a\x59\xca\xd3\x93\xdb\x22\xc3\xf9\xc9\x92\xa5\xd7\xd2\xc9\xec\x59\x2a\xce\xd9\x33\xf3\x3b\xb4\xbc\x3b\x9a\x49\xa3\x2a\x19\x7b\x7a\x57\xdd\x1a\xf8\xae\x5a\x6b\x4e\xf2\x67\xe6\xe8\x9d\x14\xcb\x13\x71\x6e\x0e\x0b\xf0\xcf\xc5\x21\x31\xd1\xfd\x53\xe4\x05\xb4\x2e\xbe\x52\xcc\x22\x00\x4b\xe7\x73\x0a\xa3\x92\x17\x0c\x47\x00\xe6\x7e\x6d\xd9\x37\x80\xeb\x06\x0c\xe5\xcd\x11\x01\xb8\xf0\x0b\xa8\xe0\x99\xeb\x40\x51\xc9\x6d\xba\x8a\x63\x0a\x33\x80\x5e\x6c\x02\x70\x05\x9d\x93\x4a\x11\x52\xbe\xd1\xf3\x07\x31\x05\x60\x53\x20\x15\x33\x42\xe7\xcf\x23\x54\x49\x73\x7e\x11\x4b\xf5\xa6\x60\x20\x2e\x80\x0a\x91\xc3\xb2\xd7\x29\x4f\x6b\x2f\x06\x30\xc0\x32\x7d\xbc\x74\x3c\x30\x30\x65\x11\x88\x0b\x98\xc2\x85\xa6\x85\x05\xe2\xb3\x6c\x0e\x8b\x29\x99\x36\x6b\x0b\x80\xa2\x32\x05\x13\xeb\xc2\xe0\x78\x96\xc8\x82\x42\x8d\x4b\x9d\xd9\x7a\xe8\x25\xcc\x45\x1f\x70\xed\x98\x55\x16\xf7\x0b\x24\x1f\x10\x43\x12\x54\x93\x6f\xed\x90\xb1\x11\xeb\xa8\x08\x9b\xde\x13\xf5\xe3\x92\x16\xec\x56\xda\x85\x8a\xd9\xb8\xa6\x25\xca\x0e\xb8\x11\xe5\x36\x92\x5e\x1b\x94\x47\x00\xaa\xec\xf4\xf0\x52\x4d\xed\x9c\xa6\xab\xf2\xa6\x68\xf8\x72\xcb\x6d\x95\x81\x50\x5b\xd5\x44\xd3\x65\xbe\x2e\x6f\x5e\xc9\x70\x22\xd9\x4b\xce\x19\xb9\x5a\x73\x6c\x63\xf2\xe8\xb6\x1b\x9c\x74\x56\xac\x04\x14\xf1\x5c\x2b\x6e\x6f\x09\xaf\x6d\xb5\x95\xc6\xb8\xed\xcb\x2a\x9e\x48\x67\xe9\xe2\xc6\x26\x79\xe2\x89\xdb\x7c\x34\x92\x46\xb1\x12\x6a\x9a\xa5\x2b\x8e\xd9\x6b\x92\xf9\xa1\x7f\xf6\xc3\xe6\x0a\x6e\x1b\x80\x80\x7b\x93\x96\xaf\x09\xe3\x77\xf5\x2c\x26\x0d\x9f\xd6\xe8\x5f\x71\xba\xb8\x49\xda\x15\x23\x18\x5d\x16\x8c\x5c\x13\x9a\xe6\xe7\xca\x34\x39\x14\xd7\xa1\x6b\x90\x5a\x75\x4f\xca\x97\xf4\x2e\x8e\x02\xe0\x25\xfd\x63\x85\x52\x4c\xb7\xb7\xa3\x7b\xe2\x4a\x01\x12\x47\xed\xb6\x11\xa8\x60\x89\x19\xd1\xe9\xe9\xbd\x31\x9a\x56\xb6\x5c\x54\x66\x78\x95\xa7\x0b\xfc\x4a\x61\x99\xef\x5a\xd8\x8d\x8a\x05\xd2\xd8\x4a\x34\xcf\x83\x21\x3e\xe6\xc0\x71\x20\x24\x89\x86\x2c\x41\x16\xa0\x82\x69\x96\x99\xe3\xd8\x8c\x30\x29\xf5\xe8\x7f\x51\x3c\x9e\x18\xd2\x6d\xf1\x05\x77\xd5\x35\x2a\x6e\x5b\xdd\x3f\xe9\x75\xf4\xa2\xe6\xe8\x0d\x75\x65\x6e\x49\x4d\x5d\x5b\xf1\xa5\x0d\x81\x25\xa8\x49\x4d\x62\x0a\xb1\xef\x54\x24\x78\x1b\x3d\x24\x02\x2a\xf8\x95\xe4\xb9\x76\x81\xdc\xbf\x99\x06\x8b\xd5\xc9\xcb\x4c\xb3\xca\x78\x22\x79\x18\xd8\x5d\xbb\xaa\x5c\x55\x46\x20\x33\x53\xaf\x3b\x32\xcc\xb9\xec\xbe\x15\xc3\x29\xb0\x1f\x5e\x49\xef\x29\xab\x24\xef\x2d\xbd\x9b\xac\x07\x5c\x62\x38\x11\xb8\x91\x7b\xad\xe8\xad\x0c\x19\xa9\x32\x5f\x53\xc2\xf7\x6f\xc7\xe5\x0a\xd3\x8c\xd0\x6b\x41\x9d\x8d\x75\x80\xbd\x6c\x6c\xbc\x64\x9f\x2a\xcc\xe6\x02\x0f\xd5\xe9\x68\x52\x97\x00\xc5\xd0\x33\x88\xe5\xf9\x97\xfc\x7d\x9b\x86\x73\xc9\xf8\xcb\xd3\xcc\xd7\x2b\x73\x55\xd8\xa8\x9d\xee\x20\x9d\x74\xee\xed\x42\xec\x39\x9c\xf9\x77\x8f\x1a\xc7\x6d\xfa\x19\x9b\x57\x57\xe3\x74\xf8\xa7\x7e\xb0\x6f\x19\x04\x01\xb0\xc7\x7e\xec\xdc\x64\x0c\x46\xea\x21\x14\x01\xc8\xbb\xd7\xb9\x6a\x5c\x8e\xd2\x70\x68\xcf\x7d\xc7\x0b\x35\xf6\x9d\xb7\x5b\xf3\xce\xd2\x06\x65\xee\xd2\x4e\xf6\x4e\xce\xeb\x2d\x74\x61\x89\x7e\x7a\xdc\x36\xb3\x79\xbf\x7b\x65\x7c\x84\x50\xdd\x36\x65\x26\x75\x9d\x19\x42\x8b\x53\x68\xc0\x04\x7b\xae\x97\x12\x73\x75\x24\xcb\x78\x3f\xa4\xce\x4b\xc5\x59\x7f\x49\x4b\xf4\x45\xf2\x9a\x64\x6a\x23\x76\x1d\xb8\x41\x30\x03\x8c\x25\xd4\x6d\x12\xae\x79\xd8\xe6\xe7\xd0\xd5\xaa\x78\x47\x43\xa4\x5e\x93\x4c\xd6\x50\x39\x61\xb8\xcc\x13\xd3\xac\xf0\x11\x97\x98\x03\x13\x75\x5b\x7b\x42\x9e\x09\xda\x52\xba\xfb\xf2\x49\x0e\x2f\xfe\x61\x13\x1c\x76\x42\x32\x71\xad\x7f\xf2\xa9\x71\x40\x7d\x1e\xa6\xc6\x0e\xeb\xd1\xf3\x91\x63\x1f\x2e\x07\x98\x20\xd8\x2b\x9e\xa2\xe8\xe4\x76\x79\x12\x1d\x4b\x19\x0c\x1f\x8d\x62\x7a\x8c\xa2\x1f\x22\x79\x95\x8f\x46\x2c\x59\x15\xf9\xdd\x6d\xc1\x56\x37\x64\x01\x36\xba\x2c\x66\x89\xb8\x19\xff\x80\xef\xb6\x5b\x7d\x47\x1a\x57\x45\x5a\x05\x92\x99\x1d\x9d\xc2\x02\x1d\x9d\x1a\x47\x4f\xc5\x17\x63\x48\x4a\xbb\x5d\xe2\xb1\x58\x3f\x33\xc4\x2f\xc3\x31\x33\xc4\xb6\xdb\x4d\x67\x86\xa1\x8d\xf2\x19\xdd\x68\x09\x0e\x92\x26\x15\xed\x17\x09\x77\x93\x79\xa5\x88\x4c\xcb\xe6\x0b\xc5\xf4\xad\xe9\xa0\x1c\xb9\xdc\xd5\x02\x4c\x3a\x2b\x3b\xf5\x00\x4c\x25\xa5\x8e\x31\x34\xf9\x31\x60\xde\x6b\x38\x64\x1a\x97\x28\x3f\x60\x3c\xb0\x59\xbd\x6c\x54\x97\x22\xdc\x18\xc3\x12\xa6\xaa\x0d\x85\x0c\x16\x00\x4c\x76\x75\xe4\xcd\x65\x47\x0f\x21\xe0\x00\x40\xbf\xbe\xc5\xce\x19\x9e\xa3\xb2\xaa\x40\x72\x8b\x79\x1a\xa7\xc0\x4f\xe3\xc6\x21\x13\x4f\x61\xfb\xfc\x51\x5f\x04\x2e\xdc\xeb\x59\x66\x7a\xed\x30\xc5\x8f\x59\x1c\xd5\xaf\x7c\x0c\x65\x06\xec\x8d\xe0\xb2\xa0\x4e\x4b\xec\x2e\x62\x18\x08\xdf\x6e\x63\x99\xd3\x0c\x12\x17\xdc\x89\xa4\x7c\x12\xa8\x04\xa7\xde\x69\x38\x49\x03\x90\x5a\x89\x08\xf0\x34\xe6\x08\x43\x13\x98\x16\x4c\x6c\x27\x16\x45\x44\x5f\xa6\x0b\xd1\x81\xe4\x66\x8e\x4e\xbd\x51\xcb\x87\x74\x20\x3f\xf3\x5e\x6e\x64\x17\x92\x7a\xbb\x7a\x29\x09\x5c\x05\xf4\x6e\x6e\xea\x13\x2b\xfb\x96\xdb\x90\x30\x9c\x66\xef\x69\x2e\xee\x83\x9e\x34\x4f\x26\x3a\x0d\x13\xbb\x67\x8a\x37\xf7\x3e\xc9\xe6\xfe\x27\x63\xde\xd1\x68\x6b\x2e\x2c\x56\x3e\xfb\x4b\xe9\x18\xa5\xec\xe2\x61\x77\xd6\x51\x6b\x21\xcb\xee\x47\x93\x1f\x32\xee\x4e\x67\x83\x73\xb5\x66\x0f\x28\xe0\xfb\x45\x2d\xf9\xc1\xd2\xbd\x6e\x88\xff\x7e\xfe\xfe\xdd\xb9\xdd\x9f\xde\x9a\xf9\x1a\xb4\x8d\xc1\x47\x93\xb7\x2e\xea\x3a\x21\x42\xd6\x88\x26\x1f\x6b\xec\xb5\x05\x9a\x7b\xd0\x7e\xdf\x6b\xb8\x11\x8f\x7f\x83\xc9\x7f\xc0\x77\xb5\xdc\xc1\x6e\x28\x6a\xfc\xde\x6e\xf5\xcc\x8c\x60\xb8\x9e\xab\x74\x2c\x6e\x54\x07\xf5\xa3\x4d\x1c\x59\xbf\x3b\x4d\x50\x75\x9f\xcd\xb1\x70\x93\xec\x6f\xa8\x13\x53\xbb\x24\x9b\x83\x01\x1b\x8d\xb0\x94\xac\x54\x36\x5e\x01\x66\x4d\xd1\x84\x3a\xb7\xd0\x86\xfb\xb0\x13\x94\x05\x08\xcb\x22\x93\x57\x42\xbf\x13\xa4\xcf\x90\x04\x19\x88\x3c\x2c\x8b\x65\x61\xd7\x23\xfd\xb0\xb5\x6b\x54\x99\xe1\xb9\x1c\x92\x73\x37\xf1\x87\x05\x6f\x3c\x18\x1a\x7d\x06\xe4\x5a\xa4\x7c\x87\xbf\x0a\x16\x06\x4f\x63\x9c\x30\x6d\xe0\x56\xde\x90\x55\xa9\xad\xf0\x55\xcc\xb9\x8f\x6e\x89\x8c\x13\x94\x90\xcc\xb8\x8b\x48\x32\xf6\x27\x19\x2c\x44\xbe\x30\x14\x5a\xbe\xd5\x41\x5b\x24\xf5\x90\xae\x1c\xa2\x8d\x1a\xd8\x22\x27\x98\x72\xeb\xc9\x44\x32\x24\xcd\x92\x17\x05\x66\x0b\xfc\x36\x03\xb1\xa8\x0a\x00\x94\x5e\x95\x96\x69\x84\x21\x1c\x52\x08\xa6\xc5\x6f\xcc\x93\xbe\xcd\xf8\x1c\x00\xed\x87\x12\x6e\x65\xb2\x00\x39\xad\x80\x39\x7c\x36\x2c\x91\x7a\x70\xe9\xf8\x1f\x3e\xa7\xa6\x4f\x99\xaa\x28\x68\xa5\x49\x36\x4f\xe8\x9b\x9c\x5c\xdf\xf0\x97\x8d\xc1\x5f\x3a\xb3\x31\xa1\x79\x9c\x6f\x8e\x93\x55\x00\x84\x5b\xba\x5e\x65\x29\xc7\x81\xc7\x20\x94\xa4\xa9\x16\xd7\x32\x5c\xac\x30\x8d\x75\xe2\x85\x9a\x62\xbc\x31\x6e\x31\x36\x75\xb4\xbd\x8f\x91\xde\x14\x4c\xb9\x8c\xb7\xf8\x2a\x5d\xdc\xc8\x30\xd9\xef\xd9\x2b\x07\xca\x5b\x5b\x21\xb6\x4c\x6f\x36\xe1\x30\x27\xd9\x84\x55\x00\xaa\xf8\xa6\x26\x05\x06\x91\x8e\x58\x4d\x61\x96\x89\x09\xc4\x06\x1b\x6f\xd5\x9b\x9d\xab\x76\x75\x8f\x6f\x0a\xf6\x0e\x7f\x55\xe3\x30\xbd\x0b\x8e\x02\x99\xb5\xf3\xef\xfb\x8f\xb8\x2c\xd6\x6c\x81\x63\x0e\x2a\x96\x28\xc3\x49\x15\x8e\x03\x15\xb5\x60\xfb\x76\xc5\xef\x20\xf3\x99\x02\x49\x29\x94\xfa\x2e\xc0\x2d\x98\x92\xbc\x48\x33\x2c\x0b\x62\xf5\xea\xa3\x48\x3e\x9d\xf4\x00\x6b\x61\xda\x68\x44\x1b\x42\x7d\x0e\x20\xb5\x81\xa5\x23\xc1\x5f\xdc\x45\xe2\xd3\x65\xcd\x7f\xa0\xa3\x31\xa4\x95\xf3\x84\xd0\xa2\x92\x28\x5d\xad\x72\xb2\x48\xb5\x47\x12\xc2\xdb\x6d\x74\xa2\x67\x13\x39\x62\x93\xa3\x53\x57\x48\x72\xab\xd7\xc4\x41\xe6\xb2\xa9\x9b\xe5\xee\x8b\x98\xa9\xca\x4d\xb1\x63\x1d\xbb\x09\x40\xa6\xce\xaf\x95\x6e\xfc\x62\xce\x3c\x88\x1b\x92\x44\x67\x12\x0c\x4c\x7d\xde\xd1\x44\x36\xc9\x8b\xe2\xf3\x7a\xe5\x08\x72\xd9\x44\x3c\xd9\x06\xcd\x88\x8e\x6c\xca\x26\x71\x47\x03\xcb\xae\x44\x00\xd6\x0d\xb6\xdb\xce\xfa\x66\xdd\x00\x10\xd7\x8d\xa4\x27\x93\xce\x97\xbd\x38\x62\xac\x75\xc4\xfa\x8a\x45\xe3\x31\x2c\x7b\xb1\xa4\x0c\x3b\xd7\x44\x19\x07\xbb\x55\x69\x68\x36\x4b\x82\xf3\xac\x25\x8c\x69\xa7\xa3\x15\x87\xf2\x97\x74\xe5\xed\x89\xa0\x8d\x26\xc4\xa6\x65\x63\x8c\x42\xc3\xd5\x90\x4d\xb1\x12\x20\xc1\xfa\xa5\x01\x26\xa2\x82\x7b\x3d\xd8\x4a\x2c\xf9\x4c\x68\xa6\x2a\x58\x0a\x35\x1a\x59\x18\x96\xec\x45\x40\x3c\x70\x04\xe7\xed\xb0\xd7\x00\x36\xa5\xad\xea\x5c\xc9\x0c\x4b\x32\x89\x64\x7b\x6e\x3a\xea\x16\xd7\xb1\xbc\x8c\x18\xc6\xf2\x6e\x75\xc2\x24\xec\x65\x46\x8c\x73\x18\xf9\x52\xb8\xc8\xd7\xba\x9b\xf4\xf7\x0e\xa9\x1e\x04\x22\xae\x70\xe0\xc9\xaf\x15\x3e\xf3\x19\x9e\x0f\xc2\xd1\x10\x58\x53\x8b\x25\x6e\x54\x71\x7f\xb7\x0a\x62\x60\xd6\x08\x92\x16\xde\x71\x96\xd2\x72\x59\xb0\x5b\x7d\x50\xc9\x32\x16\xd8\x8e\xad\x99\x87\x92\x82\x58\xf3\x92\x6e\x81\x95\xa1\xc1\x1d\x87\x3c\xb2\x3d\x4d\xb4\x4c\xe5\x88\x27\x37\x69\xf9\x51\x86\xaa\x64\xa9\x0a\xbe\x0a\xea\xc8\x32\x38\xb9\x95\xae\xd0\xcf\xfe\xaf\x18\x41\x6c\xb0\x66\xeb\xbf\x2c\xb7\xf2\xff\x20\x9e\x4e\xfe\xfc\x43\x3c\xfb\xbf\x3f\xcc\x8f\x01\x98\xaa\x5f\x89\xf8\xf3\x87\x67\x00\x12\x44\x67\xa7\x73\x58\x20\x3a\xfb\x71\x0e\x53\x44\x67\xbf\x9d\xeb\x98\x6e\x3c\xd1\xa1\xab\xc5\xf4\xbd\x21\x12\x30\x28\x51\x39\x1a\x09\x86\x23\x2d\x4b\x58\xa2\xd2\x57\x5f\x16\xd0\x91\x00\x5d\xdc\xad\x24\x17\x3f\x49\xa1\xe4\x68\x26\x35\x73\x23\x6f\x54\x13\x90\x33\x66\xb0\xb4\x22\x21\x6e\x88\x09\x03\xfd\x15\xfe\xbb\x54\xfd\xfb\xf5\x11\xe2\x45\xf9\x08\xca\x88\x6b\xcc\x5f\x2e\xf8\x3a\xcd\xcd\x69\x17\xeb\x81\xa8\xe0\xda\x1a\xa4\x0a\x11\x88\x5b\x4a\x6e\x19\x15\xa7\xa1\xcb\x46\x29\xc4\x0d\xdd\x52\x23\x2a\x00\x24\xb0\x84\xb9\x3a\x60\x6b\x44\x65\xea\xd4\x1c\xc0\x05\x6a\xb6\x8b\xd7\xb5\x5a\x3b\x5e\x48\xc9\x0a\x4c\xe3\x85\xac\x5c\xc9\x00\x29\x81\x1e\xdc\xd8\x28\xd8\xbd\x51\xab\x1d\x5e\x60\x6e\xa0\xf8\x23\xee\x8a\x08\xb7\xdb\x23\x56\x5b\x75\x19\xaa\x32\xe3\x4d\x79\xe1\x7c\xbb\xc5\x9e\x28\xc8\xf5\xce\xf1\x16\xd3\xcb\xa4\xef\x52\x39\xe2\x26\xbd\x0a\x31\x1e\x1c\xd2\x00\xa3\xc2\x1c\xa1\x39\x4e\x1c\x0f\xe8\x9a\x62\xcb\xcd\xaa\xf9\x8f\x08\x78\x6a\x66\x9c\xd0\x82\x93\xe5\x9d\x41\x19\x2d\xe4\xe6\x8a\xfa\xf8\xc9\xef\xc1\x46\x8c\xd2\xd1\x32\x6c\x6a\xea\x28\x53\xfb\x7c\x49\xd9\xb0\x44\x2c\x51\x4f\x57\x7d\xf0\xd4\x00\x5f\x49\x91\xbf\x54\x66\xb9\x7a\x2d\xad\x09\xb0\xd9\x50\x11\x42\x7c\x3a\x9e\x9c\x1a\x2d\x52\x9d\xce\xdd\x9b\x1c\x43\xfe\xab\x48\x1a\x59\x0d\xb0\xbc\xd8\xec\xcd\x23\x49\x32\x13\xd4\x55\x8a\x84\xa4\xfa\xa9\xa9\x19\xc0\x82\xcc\x6a\x06\x0e\xd7\x2f\x17\xad\xe9\xf6\xf7\xae\x2e\xf6\x2e\x53\x49\x2f\xda\x0a\x55\xb6\x53\x81\x43\x02\x97\xbf\xe0\x26\xcc\x9b\xa4\xa9\xe0\x31\xf5\x6b\x15\x8d\x2e\x73\xb7\x00\x37\x1f\x8b\x26\x3c\x45\x48\xb5\x13\x1a\xc1\x42\xc2\xfc\x93\xa0\xef\x7f\x91\x99\x6d\xe2\x0e\xcd\x81\xda\x16\x0d\x02\x72\xa4\x8e\x5b\x0b\x69\xa5\x10\x7e\x97\x9e\x01\x46\x46\xbd\xa0\xea\x44\x51\x25\x65\x6e\x2e\x9f\x13\x46\xe3\xfd\x8c\xcf\x6c\x7e\x3f\x9e\x47\x76\x24\xe6\x23\xed\xfb\x78\x90\x55\x71\x54\x21\x65\xcf\x2b\xa0\xd3\x92\x2e\x58\xfb\x0b\x66\x25\xd9\x27\xe3\xeb\x67\xe3\xd5\x34\x36\xdb\x55\xd7\xde\xa5\x7d\x81\x07\x1a\x18\xe1\x71\xcf\x66\x3d\x6a\x3b\x5a\xa4\x47\x0d\xfc\xdd\xb8\x20\x8c\x48\x4e\x61\x9a\xcc\x7a\xb9\x4a\x17\xd8\x4a\x62\xfe\x78\xf6\xf1\xfc\xed\xfb\x77\x13\xfb\xf4\x86\x56\xe3\xc3\x5a\x9f\xa4\x10\x7e\x42\x5b\xdf\x2f\x2c\xf7\x42\xc2\x6d\xea\x0a\xf6\xe1\x0a\x1b\x05\xf6\xcd\x0d\xcd\x9a\x4d\x4a\x2b\x47\x87\x9e\x1a\xc0\x29\x90\xbf\x95\x8e\x73\x52\x2a\xd1\x3e\xf4\x0e\x9b\x53\xf7\xbd\x92\x94\x6b\x51\x63\x4e\xae\x58\xca\x08\x2e\x47\xa3\xc6\x87\x9a\x65\x52\x42\xd6\xa1\x7d\xcb\x44\x30\x4f\xf4\x82\xa9\xd8\x02\x6b\x94\x3b\xa7\x68\xdd\xf3\x14\x79\x22\xeb\x0e\x21\x7b\x4b\x7c\xbe\x9f\xc3\x0a\xdb\x41\x7e\xb7\x80\xfd\x10\x83\xcd\x43\x8e\xe9\x53\xc8\xe3\x6b\x4d\x4c\x2d\x42\x2a\x51\xeb\x90\x08\x5a\x9b\xbb\xb1\xa0\x07\xe1\x86\xb9\x0e\xfc\xb4\x76\xe2\xe6\xd7\xe5\x5d\xb1\x8a\xb0\xb5\xae\x58\xba\x5c\x66\xe0\x96\xd3\xc1\xd7\x55\xb4\x0f\x2b\x4c\xed\xac\x68\x64\x6d\x3d\xaa\x2e\xfb\x57\x91\x34\x42\x5c\x3c\xfa\x21\xe8\x88\x32\xeb\x04\x49\xf2\xcd\x26\x39\x48\x25\x1f\xc5\x49\x4e\x32\x30\x70\x9f\x95\xcc\x7f\x56\x0a\x1e\xc6\xb9\xa0\xb4\x9c\xd6\xeb\x54\x5d\x56\x58\x5c\x56\xb9\x0e\xb8\x2b\xef\xe6\xea\xda\x67\xd0\xff\x44\xf8\xcd\x6b\x9b\xa3\x96\x5b\x51\x20\x6a\x2d\xb2\x7c\xc4\x36\xe4\x2f\x64\x4a\x26\x6d\x09\x0e\x15\xd7\x7c\x30\xf4\x9f\xc6\x15\x29\x7b\xad\x5d\x1d\xdc\xaf\xb1\xb4\xcb\x8d\xdc\x4f\x2a\xb7\x0c\x45\x7e\x45\x65\xf8\x2f\x65\x60\xf2\xc2\x38\x42\x88\x7b\x61\xa8\x29\x9a\xcd\x2b\xab\x01\x64\x9a\xdd\xa3\x52\x75\x19\x8b\x89\x56\x92\x6f\x75\x25\x91\x8e\x28\xb4\xa5\x8c\x08\x2d\x96\x51\x75\x02\x93\x77\xc0\x95\xb6\x3b\xfa\xef\x62\xbb\x8d\xa5\xd5\x6e\xd9\xb2\xda\xa5\x8a\x5d\x94\x07\x55\x80\x24\x61\xc4\x15\x4c\x6b\x01\x60\x61\x02\x40\x05\x8a\x09\x24\xde\xee\xee\x9b\x90\x98\x4c\xb1\xe6\x52\x9e\xab\x92\x22\xfa\xdb\x8b\xc4\xf6\xd6\x56\x44\x2d\xb0\x13\x52\x75\x29\xe6\x15\xdd\x91\x1e\xe6\x0d\x35\x6d\xed\x52\x32\x8d\x95\x1a\x78\x3d\xb5\xb7\x95\xbd\x48\xe5\xcb\xbc\xb4\x36\x12\xda\xc4\x0d\x43\x6d\xf4\x56\x81\xfa\xea\xb3\x6d\xba\x2b\xeb\x90\xd3\xc6\x14\x88\x01\x30\x31\x2e\x32\xa3\x51\xcc\x1d\x99\xba\xa7\x41\xe9\xa6\x22\x33\x3c\x17\xd8\x66\xf2\x74\x68\xc6\xb5\xcb\x46\x87\x04\x6c\x74\xe4\x5e\x4b\x03\x1d\x12\x30\xd0\xa1\x52\x31\x50\x05\x8c\x12\xd4\xc2\x16\xc6\x04\x23\x47\x1a\x7d\x64\xee\x42\xa0\x0c\xda\x4b\xcf\xa0\x9d\x01\xc0\x15\xe6\xb5\x6d\xd2\x25\xce\x01\x7b\x90\xec\xf1\x09\x59\x9e\xab\xa0\xbc\x03\x1e\xc6\xe2\x1c\x16\x12\x7f\x53\xf1\xca\x91\x36\xee\x6a\x59\x3d\x86\xdb\xc7\xcd\x54\x34\x01\x62\x1d\x75\xac\xb5\x86\xfa\x6a\xe7\xca\xed\x5b\xba\x80\x81\x89\xbe\x0b\x4d\x02\x82\x5e\xc7\x5b\x51\x16\x00\xd3\xfb\x1c\x9e\x74\x1a\xeb\x76\xde\xf9\x31\xe3\x11\xdb\xc8\xd4\x81\x4f\xc1\x24\xad\x82\x95\xcc\x05\x5e\xea\xfd\x1e\x38\x04\x4e\x8a\xbf\xe3\x1c\x95\x5d\x07\x88\xda\x03\x44\xfc\x33\xc1\x77\x1e\xa0\x76\x65\x75\x83\xe8\x27\xbe\x38\x3e\xb9\x73\x66\x02\x94\x28\x87\x79\xb5\x73\xad\xda\x99\x99\x9a\x08\x30\x6d\x7d\x99\xf8\x95\x5b\xf7\xb5\x6d\x14\x2a\x69\x34\x6e\x8f\x79\xda\xf1\x5d\x37\xf4\x77\x47\x19\x54\xd6\xfa\x8a\xfa\x61\xe9\xea\x2a\x83\xb7\xb2\xb9\xc5\x29\x7a\xb1\x51\x06\x69\xfe\xc8\x76\x2c\x1b\x05\xd2\x5e\x4d\x5c\xeb\x14\x40\x2a\x43\xf3\x3b\xdd\x99\x10\x7e\xee\x8d\x4d\xe7\x9e\xf6\x74\x46\x2d\x23\x12\x9a\x2d\x9d\x2b\x32\xa2\xef\x0b\x31\x2b\xd7\x0b\xcf\x62\xcc\x94\xb9\x76\xa5\x3e\x7c\x30\x21\x88\x35\xc5\x24\xae\x1c\x40\x8c\xbf\x25\x2a\x6a\x00\xa9\x24\x93\x37\x1a\x11\x97\xe9\x61\x61\xb9\x14\x06\x9a\xe0\xd4\x24\x5d\xc7\x1f\xef\x98\xa3\xd4\xa0\x54\x76\x18\xae\xda\x09\x52\xb4\xa9\x06\xac\xef\x1e\x4a\x03\x75\x99\x85\xc1\x6b\x11\x53\x25\xbf\x77\xa6\x84\xe7\x26\x28\x7a\xe3\xb3\x91\x35\x91\x00\xa1\x68\xad\x12\x95\xeb\x52\x20\xc9\x09\xd7\x0b\xc9\x20\x77\x14\x1c\xee\x48\x3c\x0d\xb5\x5b\x04\x29\x80\xc4\xe4\xb1\x28\x40\xe5\x0a\x9a\x94\xb0\x04\x2a\x6f\x4a\x39\x3d\xff\x28\x02\xde\x3e\xad\x50\xaa\x2d\x12\x6d\x47\x3d\xb5\x7f\x35\x6c\xf9\x7d\xb4\x50\x02\xd9\x4e\x44\xf1\x84\x5f\x60\xc2\xfb\xd6\xb5\xf1\xe7\x03\xa3\xec\x22\x0f\x88\x0f\xd4\xa2\x7a\x9d\xde\xa4\x65\x48\x52\xe7\x93\x60\xad\xed\x77\x97\xbd\x6d\x28\xe3\x14\x03\xed\x30\xfb\x62\x5c\x49\xdd\x9e\xd1\x0f\xab\xf7\x4d\xe2\x7d\x33\x31\x54\x1b\x2a\xc0\xe6\x87\xef\xd8\x31\xeb\x5d\xd1\xb9\x68\xa0\x01\xb5\xb5\x7c\x06\x7a\x68\x5d\x77\xf6\x12\x6a\xd0\xec\xad\x71\x7c\x4d\x5f\x6d\x3a\xbd\xb3\xa7\x76\x75\x50\x2d\x02\x3b\xab\xc4\x84\x6a\x23\x02\xe5\x72\x6c\x52\x0f\x38\x34\x01\x5c\x3d\xc2\x60\xec\x18\xc8\x32\xde\x77\x57\xf1\xf9\x68\x14\xb3\xee\x52\x47\x63\xdd\xd8\x11\xb7\xe5\x32\xdc\x82\x01\xa9\x1c\x9d\x05\xe7\xce\xe7\x4d\x56\x97\xcf\xe7\xb5\x13\x35\x83\x34\xbc\xc4\x7c\x3e\xa0\xa3\x11\xed\xb8\x10\x90\x9b\x65\x27\xc8\x09\x4f\xa8\x1c\x37\xdd\x75\x8c\xc3\x07\x4e\x1a\x6a\xc7\x6a\x4a\x14\xd2\x39\xa8\x8c\xe6\x0d\x57\x41\xdb\x7f\x2b\xed\xad\xf7\xab\x7d\x26\xac\x34\xb7\x03\xf3\xb9\x2f\x2c\x0e\xdf\x00\xbc\x56\xf1\xee\xb9\xbc\x95\x25\x5b\xcc\x92\xd0\x88\xa1\x1d\x0c\x50\xe1\x0a\x15\x61\xd6\x14\x21\xd0\x00\x54\x9e\x2e\x40\xce\x11\xb2\x01\x53\x62\xf7\x9a\xd8\x4c\xdd\x1f\x93\x90\x86\xc4\x2c\x11\xbd\xcf\x01\xa7\xf3\x3d\x07\x9a\xce\xc3\x3c\x22\x15\x14\x77\xff\xf2\x8a\x5b\x63\xe7\x89\xf7\xcc\xb6\x98\x38\xd7\xf6\x9e\x9d\xe1\x79\x05\xa0\x5a\x42\x77\xb1\xaa\x80\x4a\xa3\x83\x80\x1e\x46\xea\xf6\x91\x36\x68\x1f\x06\x2d\x1a\x6b\xac\xe8\xfc\x17\x10\x78\x8c\x5b\x35\xa4\xd0\xd9\x73\xb9\x06\x9a\xd4\x66\x43\x8a\x56\x06\x80\x96\x58\x9a\xad\x79\x96\x8d\xaa\xb6\x5b\x22\x9e\x09\xea\x47\xa3\x52\xfd\x5d\x5c\xc3\xc1\x2a\xf5\x77\x79\x1a\x24\x56\xff\x5c\x2c\xd2\x3c\x77\xbc\xcd\x6a\x04\xf0\xcb\xab\xea\x70\x51\xb3\x11\xf0\xee\x93\x32\x3f\x78\xf0\x91\xe6\x2b\x58\x2a\xda\x9b\x6f\x5f\xa9\x69\x0f\x2a\x2c\x18\x0a\x1a\xb2\xb4\x95\x73\xb8\xad\x4f\x1e\xf0\xd1\xa8\x88\x39\xa8\xb4\x4a\x74\x43\xca\xb3\xdb\x15\xbf\x53\xf9\x5a\x7e\x2e\xd2\xcc\xe6\x97\xf9\x59\x5a\xc0\xa9\xbf\xe5\x30\xd5\x9f\xe7\xe9\x17\x5b\xe5\xb5\x3c\x23\xba\xce\x3b\xfc\x55\xfd\xf1\xc7\x34\x27\xd9\xe4\x68\x0c\x33\x92\x9d\x5b\xa1\xc3\xdd\x84\x27\x1f\x8b\x42\xd9\xe8\x69\xf3\xba\xa4\x4c\xbf\xe0\x2c\xf1\xeb\x41\x13\x99\x56\x22\x60\x89\xb9\x74\x53\xbb\xc2\x8b\xe2\x16\xcb\x71\xc8\xdf\x82\x8c\xe2\xec\xa7\x74\xf1\x59\xfe\x94\x96\x7e\x93\x7a\x36\x63\xe8\x18\xf0\x61\xb0\xc1\x89\xd4\x48\x49\xf9\xec\x45\x11\x47\xba\x7f\x45\x3b\xb3\x08\x54\x50\x50\xec\xbd\xf5\xe5\x78\x23\x50\x55\x1a\xfc\x64\xb3\xa6\xe2\x2f\xcb\xf5\xed\x83\x63\x00\x40\xf9\xc7\xc4\x24\x97\xde\xb5\x8d\x90\x35\x3f\xab\x8d\xdc\x75\xc6\x77\xdc\x5c\x0c\xd8\xd8\xdb\x4a\xd0\xc5\x8e\xa3\x90\x27\x39\xd8\x6e\x53\x29\x25\xf2\xd7\x46\x4c\xd1\x31\xad\x6d\xec\x4c\x60\xc6\xca\xac\x55\x2d\x9a\x5e\x6e\xb1\x4f\x1a\xa3\xc6\x06\x71\xc6\xca\x6d\x74\xc2\x7c\x9b\xe6\xae\xf5\xab\xa0\x86\xeb\xc1\x32\x20\x9a\x18\x14\x42\x3d\xdd\x3e\x59\x53\x45\xee\xc4\xdf\xcd\x76\xfd\xc6\xe2\xe2\xe2\xae\x21\x57\xd5\x80\x22\x27\xee\x8f\x96\xe6\xc6\x4d\xff\x1f\x73\x87\x33\x79\x73\x01\x3c\x63\x73\xc4\x67\xac\x16\x4a\x54\x31\x9b\xfa\x97\x3f\x03\x93\x8d\x78\x4d\x82\x64\x95\xd6\x86\xb0\x0c\xf2\x44\x12\x39\x99\xf7\x81\x5a\xe6\x80\x28\xc0\xbc\x11\x3f\x27\x26\x60\x34\x8a\x1c\x00\xd1\x11\x42\x64\x34\x8a\x2c\x0c\xf3\xa1\xe9\x11\xc4\x67\x44\x5e\x7a\x33\x32\x47\x58\xfe\x03\x39\xfc\xf4\xc3\x86\x56\xc9\x0f\x1b\x52\x7d\xaa\x2f\x18\x5e\xc5\x54\x79\x03\x45\xac\x28\xb8\x0e\x43\x4e\xc4\xe0\x1c\xbb\x19\xb1\x88\xae\x49\x6f\x62\x49\xcd\x76\x8b\x93\x12\xd3\x2c\x8e\x1c\xb4\x8b\x40\xcb\x8e\xa5\xd5\xfe\x1d\xfe\x5a\xb7\x6d\xee\x73\x24\xae\xae\xc3\x5d\xd1\xdb\x4a\xee\x8e\xab\xc4\x56\x7c\xbc\x40\x56\x8e\xc3\x39\x0b\x84\xf6\x50\xe6\x6f\x5a\x66\x4f\x65\x2f\x82\x05\x53\xc1\x9f\xea\xb8\x1f\x19\xb6\x06\xb4\x13\xf7\x92\x21\xcb\x58\xc9\x63\x42\x99\x41\x5b\x51\x08\xec\x6c\xed\xb6\x1b\x97\x59\xd7\x73\x1b\xf2\x29\xd6\x8e\xe3\x4e\xb7\x90\x83\x09\x76\x4c\x95\x1f\x78\x18\xd8\xb8\xff\x4e\x71\xed\x08\x3c\xc1\xce\x58\x9a\x23\xa9\xad\x0f\x9b\x6e\xd1\x4a\x85\xdc\xb6\x4b\x31\x6f\x87\xd8\x09\x4c\x13\x4c\xa9\x1a\xb2\xc9\xb4\x96\xcc\x9e\x61\xa6\x73\x7e\x80\x6f\x9d\x12\x48\x9b\x78\xa8\x1d\x47\x4f\x8b\x95\x90\xe9\xc8\xdf\x0a\x9d\xbb\xf0\xd4\x59\x63\x84\xf0\x54\xfc\x3b\xc1\x26\x4a\x8c\xdc\x17\xa7\xe5\x39\xa1\xd7\x39\x36\xf9\x94\xc1\x0e\xa4\xeb\x4e\x88\xab\xb4\x35\x56\x5a\x6c\x7a\x4a\x1a\xa6\xf6\xb5\x65\x19\xa8\x8b\xa4\xac\xf3\xa1\x36\xb3\x07\xed\xd9\xe9\x6c\x78\x92\xae\xc8\xdf\x3b\x75\x0a\x59\xf6\xee\x24\x5b\x21\x74\xe8\xc4\x82\xfe\xfb\xdf\x36\x0e\xec\xb9\xdd\x15\xb4\x05\x61\x0f\x0c\x3f\x8e\x4b\x3b\xb2\x45\x60\x05\x1c\xea\x36\x1a\x31\x15\x9e\x48\xaa\x41\x55\xf2\x4e\x5e\xc1\xd0\x64\x37\x4d\x1c\x86\x0c\xf9\xbe\x5d\x6a\x80\x90\xa2\x26\x32\x33\x00\x09\xe2\xb5\xd3\x09\x93\xc1\x75\x6a\x4f\x91\x98\xc0\xa6\x53\x95\x98\x40\x01\x23\x81\x78\x8e\x00\x23\xba\x27\xf6\x77\xd8\xf2\x3c\x7a\x80\xbd\xb0\x83\xb5\x2b\x41\xc3\x7d\x5d\x88\xad\xf5\xdf\x53\x65\x1e\xa8\x3f\x44\xff\x94\x8c\x93\xf1\xc9\x15\xe6\x69\x32\x8e\xc2\xe3\x75\x2c\xac\x5c\xaa\xf2\xaf\xbb\x1d\x9d\x6b\x93\xc6\x7f\x6d\xba\x3f\xbb\x26\x5b\x2d\x28\x5d\x85\x8e\x29\x58\xe7\x63\x1c\xda\xe0\x99\xde\x82\x71\xc4\xad\xdc\x7e\x77\xb8\x48\x0e\x23\xeb\x27\x34\xb5\x94\x69\xc2\x21\x43\xac\x27\x08\xe6\x82\xb0\x86\x81\x13\x26\xc9\x5d\xba\xd7\xba\x90\x29\xfd\x6c\xf4\xfa\x3c\x3a\xc4\x00\xef\x55\xc1\xf0\xcf\xf2\xeb\x5d\x1c\xa9\x7c\x98\xaf\xa5\xd1\x1c\x13\xdb\x2f\x7d\xaa\x11\xef\x76\x68\x96\x56\xc2\x65\xef\x40\xf0\xaa\xfa\x6e\xa7\xeb\x94\xde\xbd\x54\x1c\x45\x4f\xa0\xb6\xc5\x4e\xb8\x1f\x54\x42\x88\xc3\xc1\x37\x1b\xee\xec\xe5\xa5\xb2\x9f\xfe\x50\xac\x54\x7a\x7a\xf5\xa2\x3f\xa4\x43\x92\xec\x80\xb1\xb3\x6f\xcf\x21\xbc\x77\x6f\x5e\xab\x3e\x2b\x78\xd8\x64\xdc\x46\x7d\xa0\xab\xf2\x43\xc1\xab\x56\x3b\xe1\xdf\x67\x27\xfa\xae\xbc\x53\xef\x97\x94\xa6\xd7\x07\xb8\xf6\xb7\x9b\xee\xee\xc9\xc8\x1f\xfa\x77\x60\x5a\xec\x84\x5b\xbb\xb7\xf5\x04\x6b\x1a\xf4\x82\x7a\x9f\xb5\x0f\xb4\xdd\xd9\x97\x71\x11\xef\xdd\x81\x69\xb0\x13\x6a\xdb\x71\xb5\x37\xfc\x76\xd3\x1e\x38\xa4\x68\x6f\xcf\xdc\x04\x75\x93\x3d\x90\x6b\x1f\xcc\x03\x60\xd7\x8d\x2a\xc9\x0a\xbc\x3e\x47\x69\x77\x27\x1d\x2c\x44\x07\x63\xa0\xdd\x4c\xba\xf9\x02\x53\xe1\x81\x9f\x12\xdd\x61\xf5\xf5\xcd\x7b\x78\xf8\x90\xdd\x33\x2c\x9f\x61\x7d\x43\xee\x99\xa9\xaa\xf7\x64\xf3\x7d\x79\x55\x30\x2e\x6f\xe3\xde\x53\xae\x9b\xf4\xb9\x01\x0f\x83\xdd\x2f\xdc\x32\x5d\xe6\x64\x71\xe0\xa8\xbd\x56\x3b\xe1\xbf\x29\xd8\x15\xc9\x32\x4c\x0f\xeb\xc0\x6f\xb6\xe7\x82\xfe\x92\xe6\xda\xb3\xaa\x37\x7c\xb7\xd1\x4e\xe8\xef\x0a\xfe\xa6\x58\xd3\x03\xc1\x7b\xad\x76\x13\x73\xa9\x6b\x3d\x0c\xba\xd3\x66\x77\x0e\x0e\x95\xf5\xe3\x30\xe0\x6e\xa3\x9d\xd0\x7f\xa5\xe9\x9a\xdf\x14\x8c\xfc\x15\x1f\xb8\x3a\xad\x96\xbb\xf3\x5b\xc8\xa3\xae\x9c\x6e\x8a\xdf\xf7\x4f\x12\xc4\x93\x56\xcb\x1e\xfd\x88\x6a\x17\xc5\x21\x97\xaa\xe9\xc7\x69\xd9\x83\x80\x59\xb1\xce\x5e\x12\xf6\x58\x02\xa0\xbf\x01\xd5\x66\xb8\xe4\xfb\x27\x2c\x6b\xfd\xe3\x4e\x96\xf3\x1d\x37\xb0\x8a\x37\xf6\xf7\x3a\x39\x31\xf6\xee\x99\x75\xfa\x50\x12\xba\xcc\xf1\x82\xcb\x4c\x7f\x21\x76\x63\xd7\xd5\xbc\x07\xe7\x77\x60\x88\x5f\x94\xe1\xab\xf5\x75\x70\xb1\x1b\x42\x0d\x27\x4e\x58\x47\x41\xa7\x3c\xa4\xae\xa1\x23\xc0\xed\x28\x0d\x8c\xde\xa9\x11\x98\x80\x53\xea\x4a\x85\xf7\x88\x75\xc2\xc1\xea\xa4\xaf\x93\x04\x76\x22\xdb\x9c\x68\x81\x6d\x53\xca\xcc\xd7\xab\x93\x45\x41\x79\x4a\x68\x9b\x2b\x6c\xa7\x2f\x84\x19\xbc\x81\x4b\xb8\x82\xb7\xf0\x0b\xbc\x6e\x60\x2d\x59\xc6\xdf\x9f\x37\x59\xc9\x53\xb4\xf0\xc5\x06\xb3\x38\xfd\x73\x12\xcf\xc6\x27\xff\x32\xdf\x9e\xce\xc6\x27\x3f\xce\xc1\x9f\x93\x67\x00\xf0\x1b\x56\x7c\x1d\x52\xfc\x55\xcb\x31\x95\x6b\xb5\x23\x6d\x19\x9a\xdc\xe7\xc3\x94\x0f\x73\x9c\x96\x5c\xd5\x1c\x9e\x26\xa7\xbf\x4d\xc6\x70\x78\xb5\xe6\xc3\xbb\x62\x3d\xbc\x49\xbf\xe0\x61\x74\xec\x75\x7e\x1c\x25\xc3\x0f\xa2\x11\x1e\xae\x57\xd7\x2c\xcd\xb0\xa8\xca\x86\x5a\x8e\x36\x2c\x96\x0a\x18\x1c\xf2\x1b\x4c\x6d\x9d\xba\xf7\x24\x02\x83\xdb\xe4\xf5\xb9\x96\xf6\xac\xac\x97\xa8\xfc\xe8\x3e\xe0\xd1\xad\xf7\xd3\xab\xa0\x96\xb4\xae\xa1\x7e\x7b\x55\xac\x08\xa5\xae\x65\x3f\xa9\x8a\xf2\xa9\x84\x4a\x7f\x04\xf6\x05\x8b\x6e\xeb\xbf\x55\x91\x20\x03\xa8\x94\xff\xa8\x0f\x4a\xc0\x84\x6e\xf5\x1f\xea\xa3\x27\xe2\x40\xb7\xfe\x6f\x55\xc5\xbc\x36\xd1\xad\xfd\x53\x15\x68\x76\x16\x31\x7f\x4c\x2e\x97\x8b\xa8\x5f\xe6\x72\x6c\x32\x4e\x5f\xfd\x53\x55\x70\x19\x17\x44\xbd\x9f\x1a\xba\x65\xb5\x11\x75\x7e\xa8\xc2\x16\x4f\x82\x68\xfb\x9b\xaa\xea\xf3\xa6\x88\x36\x3e\xa8\x4a\x1e\x07\x88\xa8\xff\x5b\x55\xf1\x98\x68\x44\xfd\xdf\x7a\x01\x6b\x4e\x0f\x51\xf7\x97\x2a\x6e\x31\x1e\x88\xb6\xbf\xb9\x55\x1d\x5e\xc8\x56\x75\xbe\xd9\x4e\x35\x25\x42\xb9\xbf\x07\xaf\x05\x91\x35\x7b\x97\x36\xf0\xa9\x96\x28\x08\x8c\xaa\x7f\x79\x5b\x1b\x12\xbf\xa1\xdb\x5d\xa5\x1a\x85\x1d\x24\x6f\x60\x77\x5b\xd6\xe3\xf7\xaf\x3f\xea\xca\x67\xe7\x17\x66\x02\x85\x3f\x81\x9f\xd6\x24\xcf\x7e\xfd\xf8\xb3\x4c\xd2\x83\x98\xff\x7b\x60\x5b\x3b\xab\x73\xe3\x03\xf0\xc3\x50\xa2\x45\xbb\xf4\xe5\x87\xb7\xa6\x73\x12\x2c\x75\x9a\x67\x7e\x05\xeb\x6f\x8e\x96\x8d\x3d\x49\x39\xae\x0b\xd7\xfe\x6f\xbd\xa1\x32\x82\x84\x5b\xa9\xf1\x45\xa3\xec\x5a\x10\x2f\xb7\x5a\xe3\x8b\x5e\xa7\xa2\xc8\x71\x4a\xdd\x7a\xcd\x4f\x9a\x6a\xdc\x5e\xe1\x2c\x33\x9b\x59\xaa\x75\xbd\x09\x7e\x56\x0d\xae\x70\x5e\xd0\xeb\xf2\xa2\x40\x65\xfd\xb7\x2a\xba\x49\x4b\xb1\xed\xa8\x34\x7f\x99\xbd\xaf\xe5\x29\x72\xd7\xeb\x9f\xaa\x82\x0a\xa7\xf8\xca\xdc\x71\xe8\xda\x5f\xbc\xcb\xfa\xa6\x94\x64\xfa\x5c\xdd\x93\xe8\x8b\xad\x16\xbe\xd3\x44\xe3\x5e\x62\xac\xaf\x8c\x70\xf5\xf7\x29\x5c\x14\x74\x49\xae\xd7\xcc\xfc\x56\x17\xe1\x2a\x24\xd2\x52\x96\x37\x57\x48\xf4\xe3\xa8\x87\xae\x3a\x39\xb3\xae\xfb\xfe\x09\xf5\x6e\x60\x13\x9b\x50\x6f\x53\x3c\x91\x86\xd5\x6a\xd1\x81\x1b\x00\x4e\x0c\x6b\xa2\x93\x64\x74\x28\xe4\x0c\xdf\xf6\x8f\xc9\x43\xef\x7d\x20\x78\x51\x3f\xff\x5e\x66\x69\x8f\x5b\xef\x79\xda\x16\xfb\xd2\xf0\x8a\xd3\xda\x1b\xaa\xae\xdf\xbd\x7a\x2e\xff\xde\xa9\xfe\xac\xeb\xfc\xc3\x62\x89\x6b\x02\x82\x35\xc5\x3c\x51\x4a\xd7\xf2\xe4\x56\xd0\xcc\x3e\xf3\xff\xfb\x7e\x4b\x87\x6e\x82\x7e\x2b\xb2\x5f\x7a\x12\x7a\x8e\xfd\xbd\xae\xc3\x41\xc8\xa0\x9e\x9e\x3d\xa7\xfd\x5f\x63\xca\xbb\xc5\x46\xff\x28\xd8\xee\x4d\x79\x10\x9c\xb2\xff\x1e\xdf\x63\xde\xf1\x04\x69\x57\xc1\xc6\xe3\x19\x04\x4f\xc2\x65\x9c\x4b\x01\x7b\xbb\x35\x7f\x91\x82\x0e\xb8\x32\xb7\xc0\x2a\xc1\x8f\x34\xba\x66\x91\x49\x87\x05\x9b\x37\x3f\xac\xab\xb3\x62\x2d\xc5\x17\x1d\x35\x2b\x10\x63\x37\x36\x29\xd8\x8c\x07\xd8\xda\x59\xbc\x57\x6e\xf4\x6f\x0a\x76\x71\xb7\x72\x73\x91\xb1\x08\x6e\x4a\x69\x4f\xc5\x0b\x3a\x39\x3a\x95\x13\xec\x6a\x65\xe5\x54\xed\x26\xcd\x68\x9b\xcd\xe1\x89\x45\xa8\xa3\x2e\xf9\x85\x75\x54\x68\x50\xc5\xb8\x93\xdb\xd1\x95\x9f\x74\xb3\x9f\xee\x1c\x3b\xb2\xac\x1e\x07\xf8\xd1\x6c\xb1\x9f\x6e\xc2\x7f\x4b\xeb\xb1\xdf\x26\x3f\x8e\x93\x7f\x0a\xd8\x8d\xe1\x1c\x4b\xa3\xe2\x1b\x9c\xaf\x30\x7b\xa6\xfe\x29\x9f\x99\xef\x7d\x07\x6b\x0d\xf9\xa5\x73\xc9\x43\xc5\x78\x33\x96\x94\xaf\x8a\xdb\x55\x41\x31\xb5\xa6\xa7\x75\x16\xbd\x76\x91\x76\x4d\x50\xc5\xbf\x97\xf3\xb1\x16\xab\xfd\x32\xb3\xf1\xf4\x5a\xba\x5e\xe8\xe0\xfd\x0b\xd3\x85\x8c\x7c\x28\x63\x6e\x54\x50\xdb\x93\xd7\x81\x0b\x08\xc2\xb3\x71\x1d\x6d\xc8\xb8\x0c\x6b\x58\xc6\xb7\xd0\x80\x26\x82\xac\x89\x97\x76\xed\x8d\xa1\xa3\xfc\x34\x7a\x43\x88\x05\xbf\xd3\x49\xe8\x2b\xd3\x71\x89\x02\x43\xd6\x12\x54\xb6\xa6\x6f\xa9\x94\xd6\xc4\x31\xd0\x7e\xb3\x18\x45\x17\x37\x78\x68\x96\x61\xb8\x4a\xcb\x12\x67\x43\x5e\x0c\xf9\x0d\x1e\x7e\xd2\xa8\xf0\x69\xa8\x90\x63\x78\xbb\x2e\xf9\xf0\x0a\x0f\xd3\xa1\x9e\xc2\x80\xb3\xbb\x0d\x3e\x46\x9f\x86\xf1\x5d\xb1\x36\xcd\xff\xfc\xe9\x87\x0d\xa9\xfe\xfc\x09\x7c\xaa\x16\x52\x5c\xcb\xc1\x46\x50\x3a\x10\x5a\xd5\xbd\x49\x05\x3b\xf0\xf4\x40\x34\x7d\x18\x5b\x68\xee\x23\x97\x1a\x4b\x28\xff\x9e\x4a\xe1\xec\xce\x8c\xb7\x67\x76\x8d\xf9\x89\x12\x00\x84\xf4\x28\xe2\x20\xac\xf3\x93\x35\x79\xa6\xeb\x60\xfa\x85\xb0\x82\x3e\x86\x1d\xff\x93\x90\x42\x42\x4f\xbe\x10\xfc\x55\xcc\xcf\xea\x28\x9e\x15\x57\xca\xb3\xf8\x24\xcd\x6e\x9b\xef\x17\xe9\x2e\x57\x2a\x66\xe2\xa4\x51\xf1\xb1\x2d\xdf\xeb\x0f\x32\x4a\x9e\x17\x0e\x4f\x93\x11\x63\x47\x2c\x63\xed\xd5\x53\x4f\xb3\xac\x8e\xfc\x65\xc2\x82\xe8\x38\x26\x69\x96\x9d\x89\x49\xbd\x4a\x95\x4f\xb9\xcc\x62\x0f\xa9\x53\xfa\x8d\x70\xa7\x90\xda\xe0\x78\xaa\xab\x44\xaf\x82\xf2\xdd\x0d\x40\xe3\x8d\xb1\x85\x7a\xd4\x2d\xfd\x9e\x82\x0d\x9b\x55\xaa\x35\x35\x03\x48\x92\x04\x37\x9b\x34\x4a\x2b\x13\x0c\x22\x54\xd7\x2b\xab\x02\x7c\x50\x10\x5b\x58\xba\x0c\x21\x8a\xf8\xbc\x2a\x8a\xdc\xd1\x3e\xd6\x8d\xd7\x9c\xe4\xe5\x33\x52\xba\x1f\x1f\x23\x78\x77\xc9\x53\xc6\x3f\xbe\x7c\xe3\x7b\x0c\x6e\xca\x85\x60\x7c\xc5\xb9\x79\xc9\x70\x3a\xa1\xd0\x8c\xe1\xa2\xc8\x31\x13\x6b\x31\x21\xf6\xdb\xf9\xea\x6e\x52\xa0\xa3\xd3\xca\x28\xd8\x4c\x1c\xf7\x05\xa2\xd3\xac\x58\x48\x2a\x9d\xfc\xe7\x1a\xb3\xbb\x73\xac\xf4\xab\x31\x05\x3a\x46\x12\xcc\xd0\x62\xba\x48\x8a\xe5\xb2\xc4\xfc\xf7\x98\x5c\xdf\xf0\xe3\x45\x72\x8d\xf9\x4f\xc5\x5a\xe6\xc1\x7c\x25\x53\xbe\x7c\xc4\x0b\x1e\x83\x84\x17\xab\xc9\x57\x42\xb3\xe2\x6b\x42\x28\xc5\x4c\x35\x80\x37\x88\x5a\x18\x7f\x22\x19\xbf\xd9\x01\x22\xc7\x4b\xee\xc1\x90\x0d\xe0\x12\xf1\xae\x26\x03\xb2\x8c\x97\xf5\x9c\xb8\x71\x33\x57\xd1\xa1\xa5\xbf\x81\xbb\x4d\x27\x58\xa0\x2e\xce\x22\xf0\x3c\xa8\x86\x94\x39\xff\x14\xb0\x14\x45\x9c\xad\x71\x84\x10\x2a\x46\xa3\x23\x3e\x28\x46\xa3\x68\x99\xe6\xa5\xf4\x81\x2c\xb6\xdb\x23\xbe\xdd\xc6\xd8\x38\xbf\xef\xeb\x10\x1e\x8d\x01\xa4\x31\x00\x83\x74\x34\x8a\x49\x2c\x63\x60\x1c\xd0\xfa\x14\x88\x57\x8a\x0c\xa2\x66\xf5\x59\x20\x5e\x4a\x6d\x29\x01\x5a\x81\xba\x00\xb0\xd8\x6e\xd5\xb8\x8f\x10\x5a\x4c\xf3\x18\x27\x57\x84\xaa\xac\x3d\xf0\x5e\xc8\x53\x63\x0e\x98\xac\x63\x50\x05\xc2\xac\xf7\x20\x6d\x97\x2c\x5d\x7e\x28\x8a\xdc\x27\x6d\x3a\xf9\x8f\xba\x78\xf5\x13\xe8\xce\x8d\x34\x2a\x69\x9f\x3a\xed\x5e\x9e\x03\x0d\x2d\xb1\xc5\x95\x0c\xc3\xdd\xcc\xf9\x64\xaa\xe9\xc2\x4a\xe5\x61\xde\x05\xd0\xad\xa1\xc2\xf2\xb8\xc4\xc6\xa9\x66\x4b\xa0\x5f\x52\xf2\x62\xa5\x9b\xef\xa0\xa6\x8d\x29\xeb\x70\x9e\x9a\x46\xe8\xf0\x4e\x9b\x2a\xb8\x3c\x2a\x0e\x3c\x10\xf7\xa7\x03\x7b\x22\xdd\x02\xbb\xa9\xf0\x83\x74\xe8\x80\x56\xfd\xed\xa1\xb2\x57\x0c\xa7\x9f\x57\x05\x91\xb1\x81\x9f\xfe\xa5\xb2\xb9\x2d\xae\x48\x8e\x27\x51\x7c\x9b\x7e\x3b\xf9\x2a\x48\xc9\x64\xf8\xcf\xff\xf3\x9f\x57\xdf\x40\x04\xa5\xc2\x84\x8b\x32\x42\xeb\xb2\xff\xb5\xfa\x06\x86\x29\xcd\x86\x6e\x93\x7f\xf9\x97\x53\xd9\x24\xc3\xe5\x67\x41\xe4\xbc\x36\xff\xf2\x2f\x3f\x86\xda\x9c\xfe\x38\x1e\x8b\x46\x7b\x56\x68\x87\xb5\x4b\x5d\x49\x0a\x62\xcb\x67\x3b\x6e\x9b\xc7\x76\xd3\xdb\xed\xa2\xe5\x4f\xc8\x28\x89\x58\xf9\xcc\x92\x31\xc5\x6f\xee\x9b\xa7\xba\x57\x17\x29\x3d\x59\x97\xf8\x24\x2b\x1e\xc1\x57\xba\x1e\x9e\x4c\x82\xd1\xf1\x52\xdc\x98\x21\x9d\x51\x81\x25\x32\x92\x85\xf9\xf4\x9a\x64\xe7\x92\x86\xba\x1f\x05\xa1\x3c\x3a\xad\x7f\xca\x0a\xe7\x58\x86\x00\xf8\x42\xf8\xdd\xa4\x2e\xfb\x88\x97\x0c\x97\x37\x1f\x53\x8e\x27\xa7\xe3\x1a\xc4\xcf\xa4\xe4\x98\x62\x56\x4e\x66\x1b\x19\x15\xe6\x9b\xb9\x09\x21\xfe\x82\x29\x9f\x44\x8a\x74\x47\x15\xec\x28\x67\xb8\x24\x7f\xc5\x51\x35\x0f\xd0\xf4\x8d\xc0\xdb\x31\x94\xf7\xeb\x18\x5e\x15\x9c\x17\xb7\x93\x31\x64\xe2\x86\x9e\x8c\x2b\xe8\x32\xc6\x17\x37\x62\x80\x45\x9e\x4d\xc6\xb0\x79\x5d\x88\x47\x88\x9b\x55\xc3\x5c\x96\x18\xd9\x87\xef\xec\x74\xbe\xdd\xd6\xbf\xc6\x73\xc8\x11\x16\x04\xb3\xc8\xbf\x60\x5f\xcc\xa5\xd0\x62\xe2\x3e\x43\x00\xb4\x8b\xff\x4a\x95\x52\xb4\xa9\x2a\xc4\xa1\x79\x86\xd7\xc4\x4a\xf0\xc3\x03\x57\x32\xa6\xe1\xb9\x07\x05\x12\xb8\x51\x2c\x22\x27\x62\xc9\x8f\x4e\x2b\x50\x59\xbc\x1e\x8d\x58\xd2\xda\x00\x15\xb9\xc9\x2e\xb2\x61\x92\xcc\x32\xf3\x62\xbd\xb8\x11\x97\x44\x54\x19\xf9\xc0\x46\xb9\x6f\xb5\xd0\xbd\xc6\xb6\x09\xad\x76\xbf\x49\xf7\x9c\xf7\x3d\x27\x27\xc4\xce\xf6\x3a\x60\xfb\x6b\xb1\x74\xb9\xa3\xd6\x92\xd0\x4c\xbe\xa7\x7b\x40\x0a\x3e\xbe\x76\xb5\xbb\xc1\x8b\xcf\x27\x0a\x03\x4f\x32\xc2\x54\xcb\x6e\x03\xb2\x47\x4a\x0e\x50\xa2\x4d\x05\x73\xb4\xa9\x74\x48\x7b\x85\x85\x52\x8d\x64\x1d\xf9\x2e\x33\x7c\x55\xac\xe9\x02\x67\x67\x02\x49\x7e\x9f\xd2\x2c\x37\xb9\xfc\x2f\x05\x47\xa0\x90\xcb\x44\xcd\xa1\x7f\xd4\x33\xed\x72\x78\xb6\xf4\xe7\x1b\xe1\x38\x6b\x84\x1d\x48\x68\xc1\xe3\xa8\x26\x51\x9a\xa1\x75\x92\x57\xc0\x7d\xb2\x29\x2f\x89\xb9\x39\x50\x06\xe2\xaf\x25\xfe\xf8\xf2\xcd\x44\x26\x7f\xb3\x8c\xa6\x33\x26\xd5\xa1\x4b\xef\x1c\xda\x35\xd7\x3c\xc4\xe5\xd5\x9a\xe4\x99\x96\x81\x0b\xae\xb7\xd1\x1b\x86\x6e\x7f\x6f\x1d\xd4\x78\xaf\x31\x43\x0c\xa0\x70\x06\x50\x99\xe4\xf1\x8d\x28\xc6\x2a\xc5\x0b\x6c\xa5\xc2\xc7\x5f\xec\xb8\x5e\xe5\x45\xb9\x66\x32\xd0\xd3\x1c\xc8\xe0\x35\x6f\x69\x89\x19\x3f\x53\x8c\x4e\x2c\x3d\xbc\xbb\x05\x79\x47\x35\xc3\xad\x78\xc6\x56\x32\xf7\xc6\x7d\x11\x01\xfd\xfe\xfe\x9a\xf2\xc5\x8d\xe9\xa5\xd9\xc8\xc8\x9b\x00\xa8\xa0\x93\x65\xae\x1e\xd4\x1e\xd1\xe2\xe5\x9a\x0a\xd6\xde\x2e\xfe\xce\x0e\xfc\xfd\xc0\x68\x53\x81\xcd\xae\xc4\x60\x83\x76\xf4\x68\xbb\x73\x36\x3d\x56\x88\xe0\xca\xd9\xb8\xd3\xb6\xbc\x73\x89\xf9\x5b\x45\x10\x0d\xfa\xc7\x75\xb6\xcc\x2c\x33\xfb\xfe\x76\xf9\xae\x10\x17\xaa\x8e\xc1\xdc\xb5\xd4\xf6\x1e\x8e\xea\x68\x46\xd2\x3c\x37\x8e\x66\xad\x3a\xf3\xe1\xc5\x0d\x29\x87\x62\x95\x87\x57\x78\x28\x5f\x71\xc3\xab\xbb\xa1\xde\x56\x15\x1f\x0e\x0f\x29\xfe\xc6\x87\xb7\xe9\x5f\x0a\x36\x64\x58\x9a\x65\x46\x66\x80\x62\xa5\x15\xac\xd7\x86\x12\x99\x85\x6f\xad\x7b\x27\x1b\x10\x01\x00\x60\x57\xed\x8e\x63\x10\x01\x2f\x28\x79\xb3\xc9\xc7\x97\x6f\x76\xd5\xb0\xc8\xd1\x48\x09\x95\x63\x6e\x2f\x38\xa6\x6f\x36\x5a\x21\x3e\x68\x07\x1c\xf0\x59\x00\xd1\x19\x73\xd6\xa4\xc6\x3e\x15\x7a\x5c\x67\x22\xea\xd8\xcd\x4d\xe7\x52\xad\xee\x04\x64\x23\xb4\x32\xad\xdb\x64\x4e\x25\x70\xb7\xf2\x67\xe7\x71\x1b\xe9\xf3\xf0\x76\x69\xeb\x62\x89\xf9\x41\xbc\xf3\x33\x14\x93\x52\x1f\x3e\x9c\xe9\x41\xd8\x2f\x84\x5e\xab\xe8\x2d\xdb\xad\xc9\x13\x36\x30\x99\xf0\x9a\xb3\xa9\x09\xbb\x0a\xf9\x72\xf0\x56\xfb\x07\x4e\xcc\xaf\x5c\xdc\x60\x71\x55\xbd\xa7\x0b\x1c\x47\xe9\x92\x63\xf6\x11\xd3\x4c\x5c\x9c\x12\xa6\x14\xbc\xb7\x0e\x72\xc7\xd6\x05\xc2\x49\xb4\x58\xc5\x08\x58\x4e\xcb\x9d\x58\x80\x3d\x8c\xc0\x80\xfa\x14\x0e\x0b\x5e\x2b\xc4\x48\x92\x00\x4b\xca\x9a\xcc\x25\xaf\x82\xfb\xaa\x70\xad\xa0\x72\x57\xdd\x65\x03\xbb\xab\x7f\x23\xdc\xab\x0d\x2a\x15\x86\x67\xdf\x61\xba\xe7\x1e\x58\x1a\xf7\x47\x1f\x63\x65\xc2\x8e\xc1\x86\x5a\x69\x5e\x0c\x1a\x1a\xa9\x1d\xfb\xd5\xde\x89\xd0\x7e\x15\x9d\xb5\xe4\xb1\x82\x29\xf2\xb0\xa4\x07\xc6\xab\xb4\x90\x4a\xf8\x85\x7b\x8b\xd4\x06\x7c\xbb\x3d\x2a\x46\xa3\x23\xb6\xdd\xc6\xcd\xfb\xb8\x75\x90\x8f\xc6\x46\x45\x66\xf2\xe4\x66\x44\xc9\x4b\xfe\xe8\xde\x25\xa5\x1a\xfc\x51\xdc\x63\xd8\x60\x34\x2a\xec\x65\xb0\xab\xeb\xd3\x50\xd7\xdf\x08\x77\x7b\x7e\x2e\x33\xca\x99\x5d\x03\x02\xb9\x1b\x08\xcb\xfa\x0a\xcf\xa8\xa0\x69\x1f\x5f\xbe\x51\x68\x2a\xb3\x2f\x66\x00\x52\x2d\x6c\x6a\x16\x80\x4a\x11\xad\x36\x22\xf5\x3e\xe8\x5d\x92\xdd\x7d\xed\xac\xe0\x97\x21\x3e\xe5\xbe\xe0\xb7\x53\x04\xdb\x25\xf8\xa5\x0e\x0c\x25\xf8\xed\x06\xd1\x21\xf8\x25\x0a\xfb\xc2\x82\x5f\xa3\x07\xbd\xd4\xbb\xf8\x9a\x64\x2f\x17\x0b\x5c\x96\x96\xcc\xef\xa2\xcf\x09\x29\xdf\xfe\x7f\xec\xbd\xe9\x92\xdb\x38\xd2\x28\xfa\xbf\x9e\x82\x85\xe3\x51\x93\x53\x90\x2c\xd9\xee\x4d\xdd\x74\x8d\xdb\xcb\x74\x4d\x7b\xbb\xae\xf2\xf4\x37\xa3\xd1\x57\xcd\x12\x21\x09\x63\x0a\x50\x83\x50\x2d\x2d\x31\xe2\xbc\xc5\x8d\xf3\x3c\xf7\x4d\xce\x93\xdc\xc0\x4a\x80\xa4\x96\x5a\x5c\xb3\x7c\xd3\x11\xed\x12\xb1\x23\x91\x48\x64\x26\x12\x99\xf6\x33\xc4\x52\x8c\xd8\x61\xb3\xad\x3f\xbf\x2d\x23\xbe\xf1\x88\x97\x24\xa6\xd5\xaa\x51\x21\x5f\x4a\x10\x45\x36\x0e\x5e\xe1\xd3\x3a\x8e\xef\x28\x05\x9b\x88\x63\x1d\xb7\xc4\x49\x29\x8e\xca\x06\x2a\x6b\xef\xa6\x36\xee\x3c\xc3\x81\xdc\x72\xbf\xab\x21\x54\x28\xf7\xdd\x8d\x60\xfb\xb6\x2f\xa0\x83\x4d\x15\x7e\x2f\xd4\x31\xc3\x79\xdc\x2b\xd9\x87\x4d\x2b\x40\xe2\x7c\xc0\x86\x10\xc7\x99\xf8\x43\x63\xa9\x84\x41\x1d\xb5\xe9\x4e\xe8\x5c\xa9\x63\x4c\xc2\x6b\x34\xe6\x05\x5c\xc4\x61\x17\x26\xa5\xd8\x23\x24\x5b\x1e\xed\x2d\x5a\xad\xc5\x7e\x1c\x93\x3a\x5a\x34\xf3\xc3\xb5\x69\xea\x3c\xb8\x88\xa0\x18\x54\xbc\x88\xa0\x18\x55\x4c\xbd\x19\x57\xf6\x0f\x8a\xf7\x7b\x32\x24\xe8\x78\x27\xea\xab\xb9\x23\xe5\x3e\x1b\x80\xbd\x7d\xde\x6a\x21\xe9\x23\xbc\x61\xa9\x21\x6f\xb5\xf6\x9d\x5c\x6f\x19\xe0\xda\x53\x5a\x9e\x68\xad\x16\xdf\x61\xb9\x91\xbc\x62\xf1\x20\x21\x03\x76\x56\xd8\xc4\x4d\x6c\xa9\xdd\xd3\x96\xd6\x54\x65\x2e\x64\x5d\xfa\x0b\x52\xbe\x8d\x6f\xad\xf3\xa8\x75\xc1\xb5\x09\x6d\x65\xac\x50\x4f\xc5\x10\x22\xd8\xe9\x74\xb8\x19\xba\xd8\xe6\xa6\x40\x68\x99\x12\xf1\x63\x80\x86\xa1\x2c\xb9\x96\x2a\x39\x1a\x49\x2d\x2a\x6e\x90\x75\x50\x89\xfc\xdb\x8f\xa1\xd5\x4a\x6b\x28\x65\x28\x79\x5c\x62\x35\x8f\xf6\x14\x38\x1b\xf5\x26\x71\x53\x9e\xc7\xe9\xaf\xdd\xa3\x00\x32\xb9\xee\xf2\xb2\x59\x54\xb3\x03\x37\xea\x53\xb8\xa1\x63\xb8\x9c\x0b\x21\xf7\x5c\xfb\xbf\x30\xa8\xb2\x0e\x16\xa5\xf2\x73\x13\x15\xb8\x1d\x98\xb4\x8b\x79\x89\x5d\xb7\x9d\x90\x71\x68\x9e\x39\xce\xcd\x55\xe8\x04\x58\x91\xe5\x2c\xa5\x93\x7f\x98\x0a\x9c\xa5\xa3\x18\xfb\x43\x44\x82\xfd\x34\xb8\x56\x1d\x45\x08\x1a\xce\x1a\x00\x99\x59\xfd\x06\x15\x8d\x56\xbe\x2a\x89\x94\x43\xa7\x44\x9f\x16\x91\xe2\xa4\x7c\x38\x70\x48\xc5\x16\xb1\xab\xe5\xee\xcd\xa5\x15\xc2\xf2\x75\x27\xad\x3c\x97\xae\x2d\xa8\xad\xa7\xc3\x8e\x0a\x68\xe3\x09\x6e\x4d\x1b\x9a\x3a\x10\x60\xdd\x24\xa8\x5c\x77\x50\x56\xb6\xd9\x05\x63\x6b\x2a\x17\x6f\xdc\x96\x67\x15\x82\xcd\x3f\x5c\x97\x81\x2a\xba\x0c\xa3\xa5\x67\x45\x8c\xf6\x76\xd9\x79\x7c\xaf\x09\xab\x79\x04\x97\x3e\xea\xc5\xeb\x31\x76\x2c\x08\x13\x8a\x9f\x32\x29\x2c\xc9\xfe\xa3\xd5\x6a\x59\xec\x91\xc6\x7d\xcb\x34\xbe\xee\xa8\xda\x72\x8f\x9d\xb5\x84\xc8\x37\x79\x6b\xf0\x7e\xef\x5d\x2f\xd0\x14\x8f\x31\x62\x5b\x6f\x18\x4c\x41\x00\xc1\x38\xc9\x79\x3b\x45\x68\xde\x46\xbf\x2e\x92\xda\x8b\xa1\x9a\xb5\xcb\x79\xc2\x02\xfb\xae\xbb\xbc\x30\xca\x4c\x61\xc7\x75\x62\x80\x0e\xd7\xa9\xea\xb9\xd1\xcf\x33\xe8\x1b\x8b\xf9\x8f\xdc\xdc\x07\x70\xdd\x22\xea\xcb\xc0\x22\xcc\x0d\x6d\xbe\x70\xa3\xc5\x89\xb1\x51\x19\x16\x4a\x0d\xc2\x0d\xee\x43\x4a\xd4\xf2\xee\xa8\xa9\x0c\x1f\x28\x23\x50\x44\x90\x76\xca\xd1\xc4\xfb\xfb\xee\x27\xa4\x1d\x77\x6c\x32\xd7\x4d\x80\x21\x38\x37\x01\x30\xe9\x6a\x45\x9d\x0b\x49\xe9\x95\x9d\x76\xcc\x54\x62\x41\x97\x68\xcc\x3a\x79\x26\xef\x04\x3a\x0c\x9d\x8b\x0d\x25\x7f\xa5\x8b\x11\x72\x06\xe8\x1a\x86\x99\xf5\x58\xad\x58\x11\x41\x1a\x41\xec\x04\x24\xf3\xfa\x93\xdd\xc9\xd1\xf8\xe9\x87\xde\x97\x32\xa1\xc7\x56\x32\xf4\x32\xf5\x4d\x49\x54\x46\xc2\xa8\xf6\xb0\x7e\x69\xa9\x74\x1a\x2a\x23\x32\xd2\x3b\xb0\xf2\x15\xdb\x78\x14\x87\x46\x29\xe7\x5f\xa9\x58\x45\xca\x69\x22\x21\x66\x55\x26\xe6\x3b\x51\x96\x2b\x4e\xe0\x5a\xdd\xbc\x67\xcb\xa2\x2c\x41\xa4\xd9\xa6\x42\xa6\x3d\xab\x9c\x17\x7c\xa0\xa4\x11\x90\xc5\x2e\xc1\x84\x2a\x0e\x18\x0c\x49\x9c\x47\xd6\x9b\x64\x65\x9e\xa2\x35\xd7\x1c\x92\xb8\x18\xe5\xe1\x3a\xf1\xb1\xc9\xe2\x3d\xb1\x78\xa3\x1f\x7c\x12\x6f\x45\xc9\x86\x15\x2d\x22\x98\x69\x02\x44\xe4\xe3\x52\xe0\xa9\xf3\x6d\x66\x96\xe4\x5c\xdf\x1f\x00\xbd\xde\x32\xd8\x47\x40\xcd\x25\x8f\x82\xd5\x52\x0b\x91\x7d\x04\x95\x2c\xd7\xe7\x82\x55\x65\x9a\x84\x26\x6c\x92\x77\x44\x47\xa9\x8d\x70\x26\x5b\x99\x26\xf9\x31\x4f\x32\x64\xaf\x8c\x34\x42\xef\xfb\x06\x4f\xb2\x0d\xdd\xa3\xe2\x7c\x9c\x71\x45\x85\x7c\xae\x9f\x70\xf4\xcc\xdc\x95\x84\xd1\xb2\xd0\x03\x32\x72\x64\x39\x82\x8e\xce\x31\xd6\x92\xb5\x0c\x05\xaa\x32\x32\xa2\x3e\x25\xa3\x42\xcd\xac\xb9\xc5\x4b\xcc\x1b\x1b\xbc\xc4\x7c\x6d\x7b\xf2\x55\xce\xcf\x09\x1f\x4d\x91\x63\x0d\x6a\xb0\xc8\xd7\xb2\xba\x35\x61\x1d\x1e\x7a\xe8\xf6\xe3\x12\x9b\xf8\xca\x0e\xa4\x62\xb7\x9e\x31\xab\x5c\xdf\xbf\x60\x99\x64\xae\x0c\x7c\xe4\x8d\x5c\x5d\xa6\x71\x31\x2f\x5d\xcf\x9f\x8b\x28\xf0\x71\x5e\x5d\x13\x59\xb0\xb2\xe4\x46\xc6\xaa\x8e\x06\x36\xb4\x2a\x9b\xfd\x80\x46\x08\x9f\xd7\xdb\x6d\x40\x02\x19\x0f\xef\x83\xb2\xed\xd2\xa5\xaa\xdd\x14\x05\xcc\xe3\x45\x98\x94\xae\x5e\x3d\xce\x07\x0e\xc8\x50\x5a\x5e\x78\x07\xcf\xba\x77\xd8\x5d\xe7\xee\x5f\xdd\x03\x17\x11\xac\x34\xae\x17\x0a\xc0\x01\x1e\x1a\x4b\x2c\x75\x09\x67\x08\xc3\x0b\x94\x8f\x18\x9e\x0b\xd2\xd3\x58\x33\x82\x4e\x72\x53\xfb\x97\x58\x0c\x9c\x5e\xbf\x79\x51\xb1\xd2\x7a\xe2\xb2\x18\xa3\xcd\x2c\x86\x26\xbb\xd7\xb2\x61\x68\xb4\xaa\xbd\xad\x7d\xc2\xf5\x6d\x0f\xd6\xda\x91\xef\x66\x76\xb1\x9b\x73\xe2\xbb\xb2\x4d\xd0\x9a\xfd\x42\x07\x5e\x2f\xcf\x2f\x75\xba\x69\x47\x03\xe6\xa9\x8a\x8a\x9c\x24\x3f\xfc\xeb\xe4\xaa\x88\xc4\xb4\xe5\x1f\x80\x8e\x29\xe6\xae\x46\x03\xcc\xbd\xb3\xbf\x4b\x63\x00\xb2\xb3\x31\x40\x21\xb5\xf6\x8d\x82\x95\xde\xfc\x66\x71\x9f\x89\x45\x93\x06\xa7\x96\xfb\x2f\xca\x8b\x1a\x55\x96\x25\xe3\xb2\x98\xb5\x48\x28\x2a\x37\x5f\x3c\xd6\x16\x49\x56\x5b\xb6\x65\x4a\x4d\x23\xd1\x5a\xb5\x0d\xc3\xd7\x0b\xaf\xa3\x8b\x2a\xb8\xea\x4c\x03\x5f\x6e\x24\x0b\xf7\xee\xaa\xe9\xde\xaa\xa4\xab\x4d\x7d\x41\x04\xa5\x56\xdc\x44\x7f\x76\x41\xe1\x8e\x53\x42\x0a\x5e\xa3\xc7\x53\x55\x2d\x19\x43\xf3\xa8\x41\x73\x02\x96\x73\xe0\x4d\x2f\x1b\x1c\x05\x10\x8a\x2c\x6b\xd1\xf0\xca\xc1\x2b\x58\x6c\xb2\xc2\xdd\xb2\x42\x87\xf5\x05\x6a\x7e\xfd\xd0\xf7\x80\x73\xed\x17\x12\x37\x1c\x46\xb5\xb1\x86\x51\xd4\x9e\x5b\x24\x69\x7a\x42\x8d\x61\xaf\x33\x04\xb3\xe3\x35\xe3\xc2\x7c\x33\xe1\x25\xf5\x51\xac\xcf\x0b\xcd\xb2\x34\x2b\x2f\xcc\x5b\x95\x9d\xd4\xf6\xa1\x59\xc3\xca\xc0\x60\xf3\xb4\x6d\xeb\x51\xd1\x88\xfd\x6b\x6e\xa0\x51\x5c\x33\x66\xd4\xda\xad\x86\x9b\xe9\x78\x59\x58\xf3\x18\x12\xd7\x5e\xd7\xf1\x75\xd7\x6b\x62\x0d\xdc\x60\x00\x3f\x9e\xbc\x79\xad\x29\xc4\x21\x37\x02\x94\xbc\x05\xc0\xb1\x36\xc6\xa4\xb1\x35\xc7\x4c\x62\x63\x90\x99\xc7\xdd\x22\x66\x66\x57\x30\x4a\x79\x9f\x40\xf1\xe7\x4d\xc2\x26\x98\xf4\xe5\x6b\xb8\xf9\x65\xf0\x60\x99\xab\x3f\x89\xfa\x43\x8b\xf9\xe5\x2f\x90\x97\x93\x2e\x8a\x6d\x6a\x26\x2f\xb6\xc5\x9e\x77\x45\xcc\x7c\xfb\xef\xbd\x7a\xcc\x27\x8d\x2d\xfe\x1a\x95\x6f\x76\x10\xe4\x9d\x0a\xe6\x48\x0c\x94\xca\xa3\x12\xf5\x1c\x84\x55\x48\xea\xaa\x98\xfc\x32\x06\x3d\x4d\x15\x6d\xad\x8f\xa2\xc2\xbb\xcd\x73\xed\xfb\xe5\x2d\xae\x3d\x38\x94\x61\xbe\xc7\xce\xa2\x26\x42\xac\x3b\xda\xaa\xa4\x6b\x1c\x9d\xab\x21\x73\x0c\xbb\x42\xa3\xac\x6f\x3c\x68\xa5\x20\xdc\x34\x90\xb0\x01\xc6\x65\x50\xdc\x6a\x8b\x5e\x39\xdd\x6c\x6d\x98\x61\x15\x8a\x32\xc4\x5e\x9d\x0d\xd0\x05\x4c\x33\xc5\x7d\x1a\x91\xd9\x53\xe2\xba\xe4\x84\xc5\x6c\xb5\x4a\x20\x89\x89\xf8\x23\x8d\x08\xdd\x4b\x7c\xc5\x92\x19\x9a\x63\xef\xde\xd5\x71\x21\xef\xe5\xfd\x45\xac\x66\x47\x5e\xa0\xc9\x7c\x33\x1f\xdc\x60\x70\x7b\xbf\x8f\x4b\xf7\x43\xb0\x20\xaa\x95\xb4\xdc\xb8\xea\xba\x61\xb5\xda\xd7\x37\xee\x86\x9c\xd5\x53\xb4\x85\xab\x26\x62\x5b\x5e\x9f\x5e\x9b\xfd\xfe\x87\x3f\x07\xa8\x39\xa3\x50\xf4\x90\x57\xec\x3d\xf7\x7b\x46\x57\x51\x89\x0a\x04\x1a\xb5\xdc\x58\x06\xe2\x69\xcc\x7b\x49\xc4\x6e\xd7\x05\x5c\xa8\x7c\x48\x38\xa6\x32\xa3\xb3\xb6\x9e\x23\x8d\xa9\xe1\x00\x41\xf5\x4c\x61\x32\xd9\xb9\xfa\x6a\xb5\x06\x56\xbb\x54\x86\xd5\x5e\xe1\x72\xcd\xdb\x5d\xa5\x44\xa8\xcc\xf1\x69\xb7\x28\x22\xb8\xdf\xdd\x33\xa0\x2d\x42\x85\x73\x4d\xae\x2b\xb6\x88\x7d\xff\xca\xf8\xa3\xf4\xe0\xf2\xf2\x01\xe2\x78\x00\x66\x62\x12\x33\xfa\x1b\x80\xe0\x02\x9d\x7d\x12\x82\x3b\xa0\x40\x45\xbc\x26\x71\xf7\x3b\xf2\x3d\xd6\x71\xe6\x5b\xad\x7d\x34\xe0\xc3\xef\x0e\x0e\x88\x0a\x0b\x8e\x06\x78\x40\x86\x07\xe0\x03\xfa\x75\x81\x72\xfe\x8c\xe0\x99\x7c\x60\xf1\x8a\x25\x33\x04\x86\x50\x86\x8f\x34\x85\x9e\x0b\xde\x24\xab\x96\x59\xad\xfc\xfc\x35\x4d\x99\x45\x0b\xe5\x08\x56\xab\x7d\x19\x61\xca\xac\xa0\x38\xcf\x9a\xaa\x41\x30\x6a\xea\x74\xc7\x05\x6f\x7e\x05\x70\x9f\x3e\xe7\xcc\x2d\xe8\xb2\x80\x24\xee\xf9\x2c\x13\x20\x94\x20\xa0\x18\x27\xc5\xd9\x69\xbe\xae\x88\x99\x62\xf5\x12\x95\x90\x17\x31\x82\x99\xb2\x01\xe1\x61\x88\xdb\x49\xf4\x90\x44\xbf\x27\x2a\x97\x87\x21\x6d\xe7\x2a\xa5\x10\xc7\x66\xd6\xe1\x74\xfe\xb4\x6b\x7a\x49\xe9\x05\x01\x36\xfd\x7b\x9b\xbe\x98\xeb\x54\xd1\x4a\x59\x5c\xb2\x91\x4e\x4e\x59\x41\x7c\x81\x42\x8f\x77\x9c\x51\xca\xfa\xbc\x88\xdf\x24\x7c\xba\xcb\x62\x38\xcf\x3d\xee\xd5\xe7\x9f\x0c\x55\xb6\xc7\x63\xd4\x21\x34\x45\x27\x57\x73\x14\xc7\xf1\x5b\x9a\xa2\xce\xcb\xd7\x2f\xdf\xbc\x7c\x7b\x72\xfa\xf6\xdd\x8b\x97\xab\x55\x3d\xff\xc5\xbb\xe7\x1f\xdd\x02\x2e\x7b\xfe\xb3\xc4\xda\x43\xd4\x5f\xc3\xce\xbb\x31\x17\x77\x81\x4e\x55\x77\x75\x9f\x28\xba\x2c\x20\x8b\xbb\x90\xc4\x5d\x88\x63\x6e\x54\xf1\x02\xd9\xa8\xc2\xb0\xc4\x88\x19\xb9\x16\x32\x32\x38\x95\x76\x7a\xfd\x05\x54\x6f\x16\x47\x02\x43\x53\x5f\x33\x53\x7d\x72\xc5\x23\x88\x23\x85\xd7\x53\xd5\xee\xd8\xb4\x3b\xd7\xed\xce\x8a\xd8\xaa\xf6\xe9\xc1\xf4\x69\xdc\x6d\xb5\x92\x83\xb1\xfc\x2b\xf0\xac\xc3\xe8\x82\xa4\x61\x1e\xb5\xe7\xed\xc5\xf7\xb1\x93\xc4\x22\xaf\x44\x16\xb5\x67\xed\x91\x57\x82\x44\x85\x95\x51\xb6\x3c\x69\x6b\x5a\x30\xed\x40\x7c\x07\x1f\xe3\x0f\x33\x7c\xf6\x30\xbf\xca\x39\xba\x77\x27\x41\x1f\x16\x19\xda\x35\x2a\x97\x3d\x68\x64\xa5\x8d\x3e\x12\xe7\xd9\x82\x49\x75\xf4\xce\x4d\xdb\x1a\x1b\xdb\xcd\x31\x99\x2c\xb2\x84\x5d\xa7\x65\xa7\x4e\xb1\xe9\xf5\xe9\x91\x59\x8e\x6d\xef\x4f\xdd\x55\x43\x97\xfc\xa1\x96\xd8\xc5\x0a\xaf\x5d\x57\x53\x68\xc3\xde\xfc\x2e\xdc\xef\xc6\xb1\xde\x11\x2f\xdf\xfe\xb9\xf3\xf2\xbf\x4e\x5e\xbe\x7d\x71\xfa\xfe\xc3\xbb\x93\x77\x27\x7f\x79\xff\xf2\xd8\x58\x2b\x34\x66\x6a\x07\xb8\xd1\xda\x6b\x50\x95\xef\xb2\x56\xee\x2a\x09\xe8\x85\x51\xfc\xd4\x3e\x6e\x99\x33\x34\x4a\x38\x0a\x41\xb5\x5e\xb9\x54\x61\x14\xe0\x3c\xb0\x45\x53\xeb\x5e\x1c\x5d\xce\x33\x3c\xc2\x3c\xbb\xea\x07\x78\x26\xb0\x3e\x58\x06\xb6\x5a\x50\x04\x63\x46\x67\xc1\x17\x15\x70\x7d\xf1\x1d\x80\xfb\x3d\xb8\xc4\x69\xbf\x0a\xc9\xce\x24\xa3\x67\x49\x96\x03\xb8\x20\x1c\x67\x7d\xf0\xb8\xd3\x95\xd1\x04\x61\x6d\xc5\xc3\x2e\x74\x86\xa8\xee\xf0\xe4\x43\x91\xea\x75\xca\x5a\x3c\xab\x03\xca\x47\xbb\x6b\x80\xca\xa9\x78\x3d\x60\x39\x15\xef\x01\x5c\x4e\x6f\x1b\x01\xd6\xe8\x15\xc7\x45\x76\xe3\xdd\xc8\xc1\xac\xcd\xb1\x15\x9a\x1a\x51\xe7\xdb\x2c\xf9\x84\xb4\xd3\xa4\xcf\xe1\xee\xa4\x81\x08\x48\xbb\x1c\xe7\x42\xc1\xed\xd3\x70\xcf\x52\x2d\xaf\xc2\x38\x4b\xed\x8e\x39\x7b\x1e\xc5\x71\x4c\x2c\xcb\x4c\xb4\x61\xd9\x85\x8e\x85\x4f\x17\x84\xf7\xd9\x00\xe8\xef\xf6\x48\x24\x80\x61\x11\x41\xa9\x30\x72\xb0\xb5\xd3\xe9\x90\xc8\xf7\xbc\x44\x76\x05\xba\x87\xa5\xff\x16\x60\xf7\xd4\x6a\x1e\x92\xa2\x41\x77\x78\x5d\x38\xe9\x13\x76\xc7\x93\xf8\xe1\x36\x78\x6d\x20\xec\x77\x01\xab\x0d\xc1\xa1\xec\xb8\xee\x30\x68\xd6\x75\x4f\x6c\xf6\xd9\x4e\x6c\x56\x39\xb1\x77\x5b\x56\xb3\x5c\xca\x62\xe4\x1f\xe0\xfe\x43\x81\x23\xef\x0f\x06\x0f\x1f\x3c\x84\x40\xf4\x3c\x78\x98\x3f\x78\x88\xcd\xef\xff\x0e\x93\xcb\x15\x47\x39\x8f\xb0\x4a\x7e\xd0\x43\x2a\x27\xa4\x23\x4e\xe7\xab\x73\xcc\xa2\x85\xc9\xc2\xd5\x1c\xec\x67\x24\x19\x4e\xf2\x55\xce\x13\xbe\xc8\x57\x67\x94\x2c\xf2\xa8\xd2\xe8\xd9\x22\x32\x8d\xe5\x65\xda\x78\x9c\x64\x2b\x4e\x67\x09\x8f\xa8\xce\xa5\x26\x77\xc0\xf1\x30\x5a\xcc\x74\x72\xe2\x24\x26\x5e\x5a\xae\x27\x60\x9b\x3d\xec\x87\x83\xff\x1e\x0f\xa3\x31\x5a\x85\x83\x8c\x0d\xa3\xb1\x19\xcc\x83\x47\xe7\xa6\xd0\x14\x9f\x23\x93\x6c\x3a\xfc\xef\x04\x61\xba\xb8\x1a\xae\x7e\x5d\x44\x57\x66\x82\xa6\xc2\xe5\x6a\x34\x5d\xe5\xf9\x2a\x9f\x56\xa7\x36\x4b\x38\x5b\x9d\x23\xc6\x57\x98\xa4\x51\x78\xd8\xc7\x97\x2b\x74\x69\x4a\xe1\x11\x32\x10\x9f\xad\xb2\x88\x2e\x72\x54\xe6\x38\x19\x78\x54\x4f\xa7\xb6\x15\x44\x6c\x12\x22\x26\x51\x75\xff\xeb\x02\xff\x66\x52\x7e\x13\x7d\x0d\xa1\x41\x59\xb1\xfc\x0a\x38\xaa\x68\x9e\xfb\x55\x49\x84\x2e\xec\xea\x5f\xe4\x0d\x20\x5e\xcc\x54\x62\x98\x44\x24\xc9\xae\x56\xe1\x59\x94\xac\xc2\x34\xc2\xc9\x84\xd0\x55\x38\x8f\x12\x86\x08\x9f\x22\xf1\x93\x51\x99\x96\x47\x57\x84\xce\x57\x21\x8f\xa6\x28\x0a\x73\x9c\xaf\x72\x64\xfb\xcd\xb1\xee\xe5\xbf\x13\xd1\xde\xfa\x7c\xb9\x82\xe7\xc8\x8c\x6e\x8c\x9c\x65\xcb\xbd\x49\xf0\x7a\x92\x5c\x75\xa7\x72\xc3\xfa\x62\x9b\x7b\xa5\x61\x13\x21\x56\x26\xca\xdf\x7a\x79\x23\x7a\x5e\x66\x88\xdf\x35\x84\x40\x5e\xf7\xd5\xf5\x14\x4b\x6e\x10\x3e\x8f\x42\x94\x47\x87\xde\x68\x69\xa5\x7e\x98\x4f\x69\x75\x46\x23\x86\x73\xb5\x5d\x43\x9c\xaf\x4a\x78\x61\xbb\x9b\xa3\xcb\x01\x46\x43\x53\xeb\x12\xd7\x36\x73\xb8\xc8\x57\xd8\xd4\x5b\xe4\x6b\x37\x6e\x6d\x80\x12\x0f\x11\x71\x87\x63\xb1\x5d\x60\xb7\x01\xd9\x65\xb9\x1d\xdc\x74\x7c\xe9\xe0\xe9\x6f\x95\xa9\xa6\x09\x4f\xce\x92\xdc\x9d\xee\x10\x62\xc6\x90\xc4\xdf\xf7\x09\x66\x82\x86\x01\xc1\x51\xc8\x80\x50\x73\x44\xe7\x99\x84\x26\x98\x25\x22\x61\xa6\x76\x06\x18\x4d\x71\x96\x02\xa8\xfe\x32\x9d\x98\x0b\x51\x57\xfc\xab\xd6\x12\x48\xd7\x25\x50\xfe\x51\x09\x23\x7a\x01\x20\xf8\x84\x89\x6a\xf2\x37\x3a\x3b\xc3\xa2\x84\xfa\x21\xf7\xd2\x82\x48\xfe\x48\x9e\x12\x03\x80\x7e\x5d\xe0\xb9\x72\x95\x09\x30\x19\x53\xa6\xb4\x7a\x00\x02\xa6\xc2\x3f\xcd\x28\x41\x57\xa2\xd3\x39\x1a\x89\x16\xa4\xbf\x65\xf5\x63\x8c\xf3\xa9\xf8\x9e\x22\x34\x07\x10\xfc\x1d\x25\xe2\x70\x00\x73\x9a\xc9\x1d\xbf\x51\x6c\x6f\xe6\x04\xae\xc7\x3b\xc8\xc3\xe8\x73\x7b\x4f\x32\x8f\xc3\x1e\xfe\xf7\xdf\xf2\xdf\x3f\x78\x08\x49\xfc\x30\x1c\xfc\xed\xe2\x61\x7b\x78\x30\x38\x7d\xf8\xb7\xbc\x3d\x8c\xc2\x41\xd2\xfe\xed\x6f\xe9\xf0\xe0\x41\xf4\x10\x62\x9d\x2f\x72\x0e\xa2\x70\xf0\xac\xfd\xd7\xa1\xce\xff\xbd\xc8\xa7\xf1\x43\x3f\xed\x61\x69\x52\x9d\xa8\x19\x8c\x29\x0b\xd5\xc3\xab\xae\x0c\xd8\xaf\xf8\xde\xef\xd8\xf7\xe4\x3b\x76\x70\x10\xa1\x8e\xb3\x84\x03\x3e\x60\xc3\x0e\xa7\xaf\xe9\x05\x62\xcf\x93\x1c\x85\xd1\x30\xde\xef\x96\xe6\xd2\x79\xe9\x8a\x96\xed\x99\x96\xb5\x6a\xc9\xb4\x4c\xbe\xc7\xdf\x91\x83\x83\x88\xc5\x7c\x40\x86\x10\x75\x2c\xc2\x0e\xd8\xa0\x5b\x6b\x9e\x0d\x7a\xd5\x42\xbd\xad\x85\x8e\x88\x34\x79\x5e\x53\xb6\xbb\xa6\x6c\x53\xe7\xdd\x61\xe1\x1a\xa1\x47\xcb\x10\xc5\x68\xb5\x5a\x16\x91\x0b\x98\xd8\x03\xd3\x6a\xb5\x08\x23\xb7\x0b\xb9\x13\xe3\x6a\x82\x2c\x56\xb9\x39\x5f\x64\x28\x2f\xf9\x0f\x23\xfc\xe6\xab\xd5\xc0\x39\x97\x4a\x21\x4f\xa6\xdb\x56\xfb\xa2\xdb\xea\xbc\x64\xa2\xbb\x0d\x17\x61\x54\xec\x25\x21\x87\xde\x98\x23\x98\xcb\x24\x7f\x88\xfa\x4e\x13\xc9\xa7\x29\xcf\x93\xd1\x14\x85\x51\x81\xc7\xe1\xbe\x46\x75\x75\xc9\xd7\x6a\xf9\xdf\xd2\x4e\x35\xaa\xc4\xbb\x77\x03\xa2\xa9\x50\x68\xd2\xb3\xc6\x19\xa3\x17\x39\x62\x41\x4a\x51\x1e\x10\xca\x83\x7c\x31\x97\x72\x73\x43\x8b\x30\x98\x2b\x31\x7b\x4e\xb3\xab\x31\xce\x02\x21\x83\x05\x28\xff\xb2\x9d\x4f\x93\x59\x3f\x98\x72\x3e\xef\x3f\x7c\x38\xc1\xbc\x83\xe9\xc3\xab\x1f\x3e\x3e\x62\x13\x10\xed\x39\xc6\xfc\xca\x06\x1b\xc5\x0d\x8d\x1b\xe9\x0f\x75\x4e\x53\x3c\xd2\x26\x1e\xfa\xad\x93\x4e\x83\xa8\xc8\x4a\x85\x40\xbc\xf4\xc0\xa2\x2e\x99\xe7\x0b\x36\x31\x29\xda\x4c\xaa\x64\x80\xe3\xba\x34\xa4\x9d\x08\x8e\x44\x8d\x8f\x39\x4a\xe3\xfd\xae\xb1\x75\x92\xad\x0c\xd0\xd0\x18\xba\x94\x29\xfa\x49\x89\xab\x90\x90\x0e\x2b\xd4\x08\x0c\x2b\x1f\xfb\x32\x8c\xbc\x73\xaf\xf7\xa6\xc5\xb6\x81\x2c\xd3\x71\x85\x5c\xeb\x46\x5a\x55\x9a\xab\xde\x49\x39\x1e\x9b\xa2\xc7\x53\xea\x92\x94\xd0\x14\x15\x05\x74\xe1\x51\xef\xbd\xe7\xcd\x35\x5e\x18\x98\xe9\xa6\x45\x42\x01\x53\x9c\xd7\xc0\x6c\x6a\x94\x06\xd1\xa6\x4a\x99\xb2\x13\xe0\x7d\x18\xae\x07\x61\xa5\x5a\x39\x55\xcf\x1e\x52\x4c\x58\xe6\x38\x56\x2a\xe5\x7c\xb5\x95\x47\x1d\x45\xe4\xae\x37\x5b\x5d\xa9\x1b\xc4\x7a\x54\x88\x51\x54\x58\x0a\x70\x93\xe6\x4d\xdd\x4d\xed\x3b\xf4\xa0\xf4\xbe\xb3\xb1\x83\x24\x2c\xbb\x80\x03\x54\x6f\xd2\xd2\x93\x9d\xc7\x9c\x7b\x4d\x8a\x81\x0e\x45\x43\x8e\xa6\x72\xb7\xb5\x80\x55\x84\x94\x3b\x40\x57\xb5\xcf\x4e\xf8\xa1\xbe\x6d\x96\x87\xbc\x28\x58\x5b\x11\x37\xc9\x4e\x27\xea\x87\xbd\xfd\x38\x9e\x27\x2c\x47\xaf\x32\x9a\xf0\x10\xc9\xb7\xbe\xb1\xd7\x1c\xdf\xb9\xb9\xa8\xb2\xfb\x0e\x79\xff\x97\x07\x4b\x54\x04\x0f\x96\xbc\xf8\xc5\x59\x7b\x85\xa9\x9b\xb1\xf8\x74\x43\xe1\xc6\x99\x9a\xf2\x8d\x63\xd3\x07\x89\x58\xcc\xb2\x2e\x4c\xd4\x31\xdf\x10\x7b\x53\x7a\xd6\x8d\xa5\xdf\x9b\x8e\x60\xba\x43\x14\xc1\x79\x4c\xed\xef\xb1\x31\xec\x41\xa2\xe4\x28\xae\x60\x0d\x4c\x63\xd2\x41\x97\x68\x14\xa2\x68\xb5\xc2\xe6\x27\x4c\x5b\xad\x70\x1a\xa7\x83\x47\x95\x53\x3a\x82\xe7\xce\xe1\xe9\xb1\x2b\xa3\xa1\xb6\xf4\xa9\x67\x4d\x87\xf0\xbc\x1c\x87\x60\x55\x66\x01\x26\x41\x12\x89\x21\xe9\xd0\x9e\xb3\x03\xf0\xa0\x74\xeb\x92\xc5\xc9\x60\x36\x84\xf3\x56\x2b\x19\x4c\x87\xad\x56\x98\x69\xfd\xbe\xd6\x14\x8f\x92\x39\xe6\x0a\xdd\xb2\x08\xce\xd6\x66\xce\x22\x15\xec\x63\x9e\x25\x23\x14\x8a\xf3\xf0\x03\x9a\xbc\xbc\x9c\x87\x33\x08\x30\x88\x60\x16\xc9\xe1\x08\xba\x3c\x29\xb9\xa6\xc9\xd3\x6e\xab\x15\xe6\x31\x1f\x4c\xda\xbd\x21\x9c\xc5\xd2\x41\xe2\xfe\xcc\x40\x35\xfa\x6e\xd2\x6e\x47\xdf\xe9\xb1\xe6\xb1\x62\x19\x74\xb1\x2c\xce\x05\x83\xb4\x88\xcb\x7e\x67\x30\x8b\xe0\xa2\x28\x60\xe6\xdd\x04\x95\x9e\x3b\x61\xd6\xb1\xec\xb0\xd4\x94\x66\x61\x69\x9d\x20\x4f\x8d\x51\x9c\x6d\x33\xec\x5f\xaf\x63\xbb\xbe\xe6\xee\xce\x79\xef\x8d\x64\xde\xcc\xab\x04\x42\x67\x2d\xa1\x41\x5b\xcf\x9a\x86\xd6\x2a\x7b\x76\x1b\xf4\xea\x1a\xdd\xfb\xbd\x48\xb7\xef\xa1\x55\xbc\x01\xdf\x36\xcf\x8f\x41\x80\x1c\x17\x56\x3f\x9e\xbc\x79\xfd\x43\xc2\xf2\x4a\x79\x9d\xda\x11\xf3\x91\x3e\x5a\x7e\xb4\x55\xfd\x82\xf2\x35\xfa\x59\x73\xd1\xa2\x1e\xa8\x08\x13\x9e\x95\x8f\x2b\x64\x00\xd1\xb6\xe0\xd5\xf2\x9a\x37\xff\xac\x3d\x43\x79\x9e\x4c\x90\x92\x42\xef\x1e\xbb\xde\x1c\x1d\x1f\x1f\xbd\xfd\xe3\xe9\xc9\x87\x67\x6f\x8f\x5f\x3f\x3b\x39\x7a\xf7\x36\x2e\x53\x8f\xde\x9e\xbc\x3e\x7d\xf6\xfe\xa8\x2a\xf8\x71\x15\xc3\xf6\x39\x4d\xeb\x65\xf7\x1a\xaa\xb3\xbd\xe6\x9e\x40\x43\x62\x43\xe0\x15\x1f\x5e\x0a\x14\x32\x14\x7a\xfb\x2c\xc9\x77\x8e\xcf\xe8\xc4\x5d\xb9\xd7\x57\xba\x77\x27\x6f\x37\xc9\x03\xea\x65\x0c\xf1\xde\x71\x0a\xa6\x48\xdb\xb8\x1a\x57\xad\xe6\x21\x6b\x69\x99\x9b\xa4\xaf\x24\x20\x9f\xaf\x29\xa1\x7a\x79\x9b\x70\x7c\x8e\x5e\x19\x90\x3b\xc5\xa6\x32\x30\x89\xa8\x1b\x9b\x43\xba\xd2\xa6\xa4\xe3\x7e\x52\xe5\x41\xa5\x5a\x80\xc1\xb0\x18\xe3\x8c\x23\xf6\x13\xa1\x17\xc4\x9a\xdf\xfa\x86\x48\x01\x2b\x2d\x23\x0a\x79\xf4\x68\xa8\xc8\xc5\x8b\xdc\xf7\x7e\x1d\x4c\x46\xd9\x22\x45\xb9\xb4\xb8\x08\xb9\x32\x0f\x63\x43\xc7\xdc\x45\xfa\x12\x2d\x3b\x92\xf6\x37\xea\x78\x6e\x1c\x89\xa0\x14\xa8\xd5\x02\x7a\x17\xca\x1e\x97\x3c\x5e\x76\x3a\x1d\x59\x69\x82\xf8\xdb\x64\x86\xf4\x54\x43\xd4\x51\x05\x23\xe9\xc3\xa4\x28\x6c\xb7\xe6\xe5\x9e\x85\xa7\xed\x42\xec\xe5\xa2\xda\x4c\xb4\xac\x18\xac\xfb\xc0\x0c\xa3\x81\x59\x05\xb3\xf4\x1d\x41\x46\x86\xd2\x2e\xb9\xd5\xe2\x03\x34\x34\xd0\x13\xbf\x5d\xc3\x5e\x02\x79\x48\x20\x10\xc5\xcb\xd7\xae\xd7\xd8\x78\xea\x77\x5b\x4c\x86\xe3\x59\xe5\xf6\x4f\xbe\xa6\x9f\xa1\x19\x95\x57\x30\xbb\x6d\xe2\x6d\xb7\x59\x8e\x53\xe6\x7f\xc9\xdd\x8b\xe3\x01\xc8\xe8\x28\xc9\xd0\x1b\xf5\x22\x53\xc0\x49\x02\xa1\xfc\x16\x90\xfc\x2b\x25\x02\x66\x53\xba\x60\xbd\x47\xd2\x58\x12\x7d\x4a\x93\x2b\x01\x46\x96\x00\x08\xae\x50\xc2\x94\x0a\x92\x4f\x01\x04\x2a\x4b\x94\x16\x89\x98\xe8\x30\x70\x68\x44\x49\xea\xb4\xa8\xc2\xea\xca\x72\xcf\xaf\x46\x19\x02\x43\x4d\x38\xa8\x7d\x52\xc7\x36\x3c\x09\x77\x9f\x81\x93\xcd\xf4\xc1\x7f\x8f\x20\x11\x3b\x7e\x2a\x18\xb3\x23\xc2\x33\x15\x57\x19\xcf\x90\xc1\x70\xc8\xa3\xa8\xfa\xca\xda\x84\x85\x2a\xc6\xb6\x90\x58\x6e\xf3\x5c\xc5\x6e\x05\xb3\x77\x8c\xbb\x95\x0d\x9b\x8b\x44\x9e\x96\xa0\x71\xe8\xb2\x98\xde\xb8\x92\xdf\x15\x63\x0d\xb9\x6f\x0f\x4f\x21\x09\xe9\xcd\xb7\x8d\xb3\x6b\x9a\x59\xcb\x5d\xb7\xdb\x67\xd7\xf0\x4a\xe4\x60\x0d\xfe\x02\x0a\xeb\xfa\xc2\x35\x5a\x82\x34\x06\x6a\x56\x21\x8e\x15\x78\x22\x4c\x42\x12\xb3\x68\xcd\xce\x14\x4d\xe8\x21\xd0\x6b\xed\x4c\x32\xc0\xc3\x98\x5e\x1f\xe8\x9a\x91\xda\x48\xa9\x1a\x38\xae\xe6\xb5\x51\x7c\xae\x14\xab\x9b\x9e\xc4\xae\xa3\x5d\xf8\x5f\x92\x76\x2d\x4b\xfe\xb6\xbf\xfc\x28\x66\xde\x5f\xa2\x7c\x94\xcc\xd1\xcb\xcb\x39\x43\x79\x8e\x29\xe9\xd3\xa2\x28\x94\x30\xa9\x91\x27\xa9\xb2\x24\x78\x0d\x4b\x82\xb7\xb2\x24\xf8\xba\x24\x07\x12\x4d\x74\x2c\x51\x53\xa9\x70\x89\x27\x84\x32\x74\x92\x4c\x94\x75\xd1\x8d\xf9\x18\x9f\x36\xa9\xa0\x76\x7c\xaf\xfe\x94\xae\xd5\x0a\x71\xec\x3f\xee\xe5\x51\x64\x9f\x37\xb3\x56\x8b\x75\xa6\x7c\x96\x1d\x27\x63\x04\xb5\xdb\x82\x66\xf2\x84\xe1\x9a\xe1\x85\x51\x04\xb3\x38\x39\xac\xbe\xdd\xd0\xcf\xd9\xf6\xcd\x58\x6a\xaf\xe0\x9a\x5d\xc4\xa0\xd2\x45\x0c\xb3\x5e\x55\x89\x64\xa0\xf6\x3c\x65\x01\xce\x85\x80\x24\x06\x1e\x92\xe8\x50\x72\x59\xa4\xc3\xa9\x48\x0c\xa3\xbe\xfc\xae\xc1\x83\x1c\xd2\x90\x44\x7d\x52\x44\x90\x17\x21\x8b\xfa\x0c\x2e\xe2\xdc\x50\xdd\x52\xbd\x9d\x1c\x7a\x5d\x19\x08\x85\x8b\xa8\xbf\x70\xe9\x71\x02\x71\x98\x18\x7a\x0c\xcc\x16\xbf\x01\x49\x26\x32\x48\xff\x7f\xd8\x98\x9b\xb0\x31\x39\xbf\xca\xe4\x2b\x88\x05\x63\x88\x8c\xae\x9c\x9f\x2f\x70\x3e\xcf\x24\x8b\xb2\x20\xf2\xc9\x87\xf8\xe3\x24\xe6\xe8\x8f\x8c\x2e\xe6\x52\xd5\x22\xd8\x17\x3c\x5b\xcc\x8e\x08\x47\xd2\xf9\xdd\x04\xcb\x65\xd0\xc9\xaf\x98\xf2\x65\x53\xa6\x27\x97\xcd\xe9\xaa\xfc\x31\x9e\x10\x3c\xc6\xa3\x84\xf0\x6a\x95\xa6\xac\x11\x9d\xcd\x93\x91\x33\xb6\xfa\x14\x4c\x8a\xa8\x0e\x20\x20\x94\x9b\x7b\xe1\x1c\x4f\x88\x3f\xd5\xca\xc4\xff\x41\xec\xd6\x5b\x89\xd5\xff\xec\xcc\x16\x5f\xcf\x62\x01\xbd\x2f\x6f\xb0\xa3\x19\xca\x64\x9f\x77\x73\xe0\x7b\x4a\x9a\x1b\x92\x02\xe5\x9e\xab\x99\x1c\xd0\x7f\x4d\x72\x90\xc4\x03\x20\xfb\xc7\x23\x87\x10\x78\x28\x5f\x3a\xed\xc0\x3b\xa2\x3c\xbd\x01\xca\x4b\x5d\x81\xc0\xf9\xd5\x4a\xfe\xe9\x7c\xd0\xcb\x5f\x4a\x1b\xa5\x73\x40\xc5\x19\xa8\x54\x75\xcb\xfb\xc5\x9a\x3a\x01\x56\xd7\xbd\xc9\x79\x82\xe5\xcb\x7a\x15\x4a\x01\xe7\x81\x13\xd4\xa7\x13\x9c\xb0\x2b\x73\xdb\x9b\x61\x32\x09\x30\x0f\x16\xb9\xf8\x01\xfe\xa0\xd0\xe2\xef\xf9\x43\x89\x6a\x06\x29\x05\x13\xaf\xf1\xed\x0b\x48\x6a\x0a\x33\xb1\xc9\x18\xbd\x08\x1c\xe6\xa4\x43\x89\x1a\xea\xf2\x13\x26\x69\xbf\x5e\x07\x4a\x14\xed\x23\xb1\x58\x46\xe3\x60\x09\x41\x7d\x66\xea\x29\xfa\x3a\x7a\x90\x54\xe8\x81\x64\xfa\x7d\xdf\x1c\xd7\xa4\x0a\xd8\x30\x3d\xca\x29\xda\x7e\x1c\x87\x44\xfe\x8a\x63\x76\xa8\x70\xaa\xcf\x3a\x02\x73\x22\xc7\xa1\x1b\x39\x24\x7d\x2c\x53\x77\xa2\x29\xd8\xd2\x14\x43\x38\x1c\xa7\x06\xbc\xef\x48\x75\x9d\x09\xe2\x02\x18\x61\x04\xa9\xff\xe2\x19\xd2\x30\xb7\xe4\xc7\x12\x91\x1b\x10\xa0\xba\x5e\xe4\xdf\x41\xca\x53\xb3\xfa\xe7\x93\xf2\x36\xbc\x79\xda\x65\x99\xae\x25\xb9\x5f\x93\xa7\xbc\xae\x80\x7a\xdd\x03\xee\x33\xf9\x64\x5a\x5b\x41\xed\xb8\x13\x09\xb7\x3b\xb4\x07\x57\xcd\xbe\x90\x10\xde\xd1\x6c\x7b\xf7\x66\xdf\xea\xb5\xd8\xa9\x61\x72\x8d\x86\xdf\x98\x55\xdb\xa9\x65\x7c\x8d\x96\x3f\x58\x06\x66\xa7\xa6\x69\x67\x73\x28\x69\x17\x99\x72\x4e\x19\x7a\x38\xa2\x84\x27\x98\xac\xf3\x54\x50\xaf\xc0\x59\x42\xf2\x4c\x31\xbd\xf7\x13\xa1\x51\x49\x81\xba\x35\x13\x99\x5e\xc9\x1f\x79\x25\x6c\x58\x08\x4e\x9d\xf1\xbd\xa1\x29\xca\x72\x00\x1b\x22\x8d\xcb\xb7\x34\x9d\x31\xa3\x33\x1b\x5f\xa1\x52\x4d\x09\xc2\xf2\xed\xd1\x96\xa8\x63\xc6\x12\xa8\xd6\x84\xe4\x31\xde\x24\xf3\x02\xaa\xb3\xea\xa4\x52\xc0\x0d\xd1\xe3\x85\x8c\x75\x5f\xe5\xae\x19\x9d\x72\x5a\xc4\x74\xdf\x84\x72\x3c\xbe\x32\x30\x7e\x3e\x4d\xc8\x04\x85\x5a\x46\xcb\x41\x04\x59\x01\xc7\x98\xa4\x4d\x03\xd8\xd2\x8f\xf2\x8b\x53\x40\x69\x8a\x53\x5a\x4c\x9a\x7b\x92\xc6\x36\xf7\x98\x74\x51\xe2\x9c\xd2\x0d\x85\xb4\x03\x73\x27\x27\x17\x42\x00\x9c\x26\xfa\x26\xc4\x0b\x5e\xb4\xae\x27\x3c\x0e\xed\x05\x2f\xeb\x88\xba\xa2\x8d\x53\xed\x76\xe5\x7a\xed\x48\x35\x8c\x6c\xa1\x6c\x51\xfa\x3d\x16\x4d\xaa\x16\x9f\xe5\xbc\xa1\x51\xb7\xbb\xca\x88\x92\x9c\x9b\xba\xd7\xab\x48\x19\x9e\x60\x92\x64\xbe\xd7\xe3\xc6\x87\xa1\x9b\xf7\xe8\xd6\x6d\xad\x5f\xbd\x67\xe2\x60\x21\x37\x51\x75\xfe\xdb\x68\x37\x54\xa0\x4b\x15\xde\x59\x70\xc4\x6a\xff\xbc\x4d\x66\x35\x43\xae\x32\xa7\xa8\x28\x38\x8d\xa8\xee\x2c\x41\xae\x5c\x0c\xbe\x49\xe6\xa5\x24\x9f\xe4\xbc\x29\xd9\x69\xb8\x72\xcb\xea\xe4\xc4\xa8\xa8\x6e\x1c\x54\x4a\xeb\xbe\x64\x84\x22\xe7\x9a\x54\x2e\x00\x51\x3b\x18\xc5\x64\xc0\x87\x56\x59\x59\x2a\x08\x5b\xad\x10\xc5\x00\x1c\x20\x1b\x47\xa4\xec\x47\xf9\x4d\x82\x26\x4b\x4c\x42\x27\xf9\x6f\xe9\x50\x14\x15\x85\x72\x19\x5e\xba\x0a\x94\x1b\xdb\x6c\xad\x65\x92\x1b\xc7\x76\xa2\x11\x1d\x7d\xd9\x20\x7d\xbf\xde\xb3\xa6\x43\x85\x6a\xc5\x5b\x0d\xaf\x9c\xca\x2f\xb6\x46\x22\xad\x63\x37\x9a\xcd\xf9\x55\x5b\x2b\x4c\xef\xed\x29\x97\xd1\xc3\xd6\xaf\xf5\xa1\x2b\x21\xf7\x75\x23\xda\xbf\x9a\xbb\x41\x7a\xde\x86\x28\x1c\x23\x62\x16\x46\xcb\x82\x39\x66\xc0\x5c\x9b\xd0\xb2\x6d\xef\x17\x37\xd0\x87\xdd\xc8\x89\x07\xcc\xcf\xee\x92\x26\x40\x21\x31\x3b\x00\xfb\x47\x69\x03\xfa\xe3\x71\xb8\x6f\xbc\x1e\x43\x1e\x45\x82\x05\xc2\x64\x81\x4a\xd9\x54\xec\x0c\x47\x7b\x6e\xe5\x47\xda\x6a\xd1\x92\x84\xa3\x90\xba\xbb\x4b\xaa\x05\x58\x84\x07\xbf\x3c\x58\xf2\xa2\xf3\x60\x89\x8a\x5f\x86\x31\x1b\xa0\xa1\x72\x2e\x89\x05\xa1\xa2\x85\x55\xb6\x55\x2d\x3a\xca\xe7\xdb\xbe\x35\xfa\x6e\xeb\x33\x41\xfc\x9e\x7c\x6f\x55\x7c\x96\x2c\x99\x74\x7e\x89\xa4\x8f\x15\x69\x26\xb9\xcf\x57\xab\x7d\xde\x39\x4d\xe9\xcc\x70\x0b\xbe\xe3\xb4\xc3\x8a\x1f\x35\x14\xf5\x51\xc7\x32\xa2\x90\xc4\xcc\xfa\x4d\xd3\x4e\x76\xfb\x6d\xe3\xbe\x44\x05\x1d\x24\xe6\xa0\x24\x7b\xdc\x29\x6d\x87\x22\x41\x21\xcd\xff\xd5\x38\x5a\x2d\xf5\xd7\xfa\xfc\xb2\x26\x11\x7e\xb2\xe1\xba\xa4\x33\xe3\xdd\x00\x3f\xbd\x4a\xd9\xa6\xab\x5c\xef\x20\xf8\xfc\xce\x99\x50\xb4\x2c\x4d\xf8\xac\x9b\xff\x01\x87\x6c\x18\xc5\x4f\x97\xa8\xce\x73\x41\x16\x15\xcd\x46\x7d\xf5\xc9\xe2\xbc\x9d\x08\xce\x59\x47\x48\xb8\x4f\x64\xd3\x31\x9a\x74\xc4\x10\x9c\xab\xd7\xf0\x28\x5a\xad\x2a\x49\x96\x7d\xdb\xef\x49\x93\x9d\x38\x8e\xad\x8f\xaa\x6e\xf9\x74\x82\x53\x75\xaf\x14\x46\xa2\x80\xf3\xb9\x23\x28\x66\x38\xcf\x31\x99\x34\x5d\x29\xdf\x17\x2c\xcc\xbc\x5f\x0a\x62\x5b\xce\xfb\x97\xb7\x54\xb3\x2e\x81\xf6\x8a\xd7\x09\x82\x8f\xf2\x01\x48\xc0\x69\xa0\xa3\x94\x07\x0e\x62\xf6\x03\x20\xc8\x15\xf8\xc5\x31\xee\xfb\x3b\xc5\x24\x04\x30\x00\x46\x14\xf9\xe5\x8d\x9a\xb1\x5b\x51\xd7\x0b\xc6\x94\x99\x2e\xc1\x83\x25\x2b\xc0\x2f\x3b\x42\x91\x08\x29\x37\xc3\xbf\xa1\xb6\xaa\x7e\xff\xa6\xa2\xb5\xeb\x49\x6b\x6c\x56\x5a\x20\x3f\x3c\x7d\x38\x81\xa0\x0d\x22\xdf\x9c\x7b\xc7\x39\x2a\xb6\x79\x8b\x55\x67\x5b\x96\xfa\x0c\xa6\xc3\x4d\xd3\x76\xdc\x1b\xc8\x6e\x65\xe0\x47\xbb\x14\x3f\x26\xf9\x94\x27\x93\x23\xf2\x5e\x5a\x11\xcb\x68\xde\xde\x8d\xf9\xba\x79\x1b\x8f\x10\x46\x87\x79\x1d\xc3\xcc\xbb\xe3\xa4\x3c\x3b\x5f\xa3\x2e\x10\xe3\x53\xa1\xca\xb5\x00\x6f\xb8\x52\x87\xc7\x92\x84\xa2\xf6\xf4\x4b\xe9\x61\x54\x73\x01\xce\x83\x84\x04\xc9\x59\xce\x59\x32\xe2\x81\x14\x15\x60\x30\x4a\x88\xbc\x20\x38\x33\x9e\xb7\x64\x18\xfe\x34\x50\x9e\xdc\xb2\xab\x0e\x30\xc1\xa0\x3c\x85\x81\x18\x53\xa3\x4b\xd1\xda\xe9\x27\x4a\x02\xa7\x56\x87\x12\x23\xdd\x2b\x59\xdf\xc6\x5e\x63\x48\xab\x42\x40\x54\x40\xad\x06\x8f\x96\xb5\x49\x89\xd1\xe2\xd9\x5c\x79\xbc\x44\xa9\x28\xac\xeb\x85\x03\x34\x6c\x24\x2f\x28\x52\x37\x00\x4c\x9e\xbf\x5a\x7b\x2f\x08\x45\x92\x65\xf4\x42\x96\x71\x95\xf6\xec\xd0\xb8\xb8\x2e\xb3\xb5\xe9\x01\x1e\x87\xf6\x4d\x0b\xaa\x01\x5c\x54\x3a\x00\x81\xc2\xa5\x80\xa1\x5f\x17\x98\xa1\x3c\x90\x2b\x1f\x24\x26\x44\x6b\x07\x44\x85\x2b\x03\x8c\x9d\xfb\x0c\xe8\xfb\xa3\x5d\x03\xf9\x0e\x1d\x8f\x77\x00\x62\x11\x19\x4f\x4d\x3b\x88\xe1\x66\x03\xec\x62\xe2\xd5\xb8\x59\xee\x47\xa1\x56\x32\x08\x66\x7b\x94\x8b\x24\x04\x6c\x07\x98\x55\x3f\x97\x99\x86\xb4\xbc\x41\x91\xd0\xde\x49\x3f\x51\x01\x4c\xa3\x19\xd6\x3f\x2b\x6c\x76\x80\x86\xd6\xff\xde\x1c\x20\x4d\x96\x27\xff\xc2\xf0\x50\x8a\xf6\x9b\x83\xa3\xf9\xda\xfe\x5f\x18\x20\x46\x8d\xaf\x09\x94\xa1\xb5\x2a\xa2\x42\xf5\x85\x9c\xa4\x54\x37\x86\xdd\xc6\x1b\xc7\x7f\x35\xb8\xc9\xdb\xd9\xeb\x83\x62\x4d\x1c\x96\x7f\x29\x00\xf0\x6b\xcc\x7b\xf3\xbd\xa7\x13\xa8\x86\x67\x7e\xd6\x2c\x19\x31\x5a\x13\x4b\x6f\xed\x45\x4a\xab\x99\x96\x3a\x36\x8b\x48\x5b\xdf\x86\x2e\x74\x8b\x6b\x44\x79\x53\xc3\x9a\xa2\xda\x89\xb5\xd4\xe5\xc1\x7e\x1c\xf3\x56\xcb\x1d\xb2\x4a\x09\xb7\xe8\x5f\x4a\x4d\xd1\x6a\xa5\x54\xd8\xad\x96\x54\x3a\xc7\x31\x93\x0e\x82\x37\x28\xb4\x77\xba\xc1\x1c\x70\xe9\x12\x64\x8d\x9f\x3b\xbb\x4a\x5b\x56\xd9\x16\x6a\x5e\xe3\x87\x35\x35\xdc\x67\xf4\x15\xa6\x06\x71\x87\xd7\xc2\xfc\x4e\x6f\x83\x59\x72\xb1\x73\x7b\x2c\xb9\x58\x7f\x97\xea\xc1\xfc\xfe\x04\x57\x65\x2d\x65\xd5\x90\x9d\x39\x9d\x87\x11\x24\x31\xf2\x5f\x24\xda\x4b\x51\x7e\x00\x3a\x46\xbc\xee\x74\x3a\xc4\x1f\x5e\x25\x42\x27\xb7\xd1\x49\xab\x01\xfc\x64\xae\x19\xdb\x75\xe4\x16\x4f\x5b\x5d\x18\x1b\x20\x52\x8d\x5c\xca\xed\xa5\xa7\xd6\xce\xca\x54\xa2\x4d\x9e\xe5\xfe\x80\xa8\x73\x7a\x2a\x5a\x3d\x92\xa1\x0f\x31\x25\xf2\x42\xa4\x22\x01\x2a\xf1\x1a\x1c\x08\x26\xb5\x43\xe8\x85\x0c\xdf\xaf\xd5\x3b\x8f\xbf\x12\x04\xb5\xa9\x91\x46\x67\xff\xee\xfe\xb9\x89\xea\x7b\xed\x16\xbd\xd6\x2d\x9a\x63\x8c\xe9\x2b\xb7\x1b\x4c\xb7\x1d\x3a\xc8\xe3\xa7\x4b\x22\x28\x55\x09\x68\x04\x05\xb9\x89\x8a\x08\x92\x9b\x5c\x98\xb1\xe4\xa2\xe9\xd1\xb0\x8c\x2d\x25\xaf\x89\x1b\xb5\x55\x56\x67\x9e\xc4\x74\xb5\xf2\x66\x00\x07\x39\xcc\x86\x5e\x9b\x8d\x37\xe2\x70\x87\x99\x23\x7f\xe6\x46\x9b\x2f\x68\xf5\x1e\x75\x7d\x62\xe3\x43\x09\x15\x1d\x18\xf4\xdd\x38\x8c\xfa\x4c\x29\xe7\x23\x38\x60\x90\x0c\x8b\x30\x89\xe0\xc2\x28\xe6\x65\xa9\x3c\xcc\x0d\x7a\xfa\x77\x5d\x9d\x4e\x67\x01\x65\x74\x4b\x1c\xc5\x4f\xb9\x3c\xb7\x97\x9d\x4e\x27\x93\x5b\x2d\xc4\x50\x61\xae\xb6\xb3\xc2\xd5\x07\x11\x35\x2c\xf8\x9c\xb7\xa4\x45\x64\xee\x19\x55\x80\xd6\xca\x15\xa3\x8a\x93\x8a\x0a\x0b\x16\x9f\x31\x95\xc9\x45\xa9\x28\x35\xb9\xfa\xdb\x29\x14\x15\xeb\x1e\x3c\x57\x78\x91\xdd\x2d\xb5\x36\x6e\xb9\xaa\x5a\xfa\x5a\x0a\xc7\x5d\x2e\x55\x76\xd1\xff\xef\x64\x64\xb3\xc6\x4c\x0b\x26\x9f\x85\xe9\xcc\x63\x2f\x46\x9e\x61\x3c\xb5\x3b\xe7\x73\xa9\xfb\x81\x9a\x0d\xcd\x95\x7a\xac\xd9\xae\xa6\xb4\x80\xf1\x0c\x6c\x9e\x9b\x79\x75\x4a\x53\x13\xf5\xab\x6e\x97\x63\xc0\xbd\x54\x96\x2b\xbc\xbc\xaf\x53\x45\x67\xc9\x27\x64\x14\xf8\x9d\x59\x32\x0f\xcb\xd7\x32\x8d\xfb\x0e\x7b\xf7\xe2\xd1\x6a\x55\x0f\x82\x6e\xba\xc4\x6e\xe8\x36\x15\xa6\xc1\x58\xfd\xe0\x19\x62\xd6\x7e\x47\x7c\xc4\x65\x49\x82\x2e\x79\x28\x63\x0f\xea\x6b\x66\x19\x8f\xbf\xaa\x33\x32\xb5\x17\x32\xfe\xe7\x0b\x7d\x91\xf4\x3a\x21\x93\x45\x32\x41\xa1\x37\xc8\x22\xf2\x6f\xf3\x0b\xc1\x76\x94\x1b\xa9\x1a\x2b\xdb\x4c\x40\x48\x01\x70\xce\xf0\x2c\x61\x57\xaf\x9b\xc0\xeb\x2c\x8f\xaa\xd2\xe9\x82\x08\xfa\xa2\x67\x3f\x0b\x1d\x4b\x56\xe8\x29\x2e\x44\x9e\x7d\x37\x03\x5d\x19\x5e\xe4\x18\xf3\x7b\x58\xca\x64\x22\x59\x0a\x9a\x26\x51\x1c\xb5\x22\x51\xaa\xbc\x22\xd8\x88\x24\x0a\xc1\xf4\xa4\xf4\x87\x84\xb9\xfe\x5d\x6e\x76\x4f\x53\xeb\x4a\xc5\x9e\x37\x8b\xbd\x75\x71\xde\x0d\xd8\x56\xab\x01\x40\xa4\xbd\xc8\xc1\x50\xe9\x5f\x73\xc4\x15\xfc\x6c\x58\xab\x53\x2a\xd8\x97\x46\x2d\x6c\xdd\xaa\xcb\xce\x24\x4e\xac\x2c\xa7\x2f\xec\x4d\xe9\x72\x0e\xda\xc2\x47\xe5\x5b\xfb\xe4\xdc\x94\xd4\x9b\xce\x78\xa8\xd2\x9f\xb1\x33\xa8\x8e\xbe\xa8\xd1\x01\xe3\xe4\x08\x42\x60\x36\xeb\x2c\xc1\x04\xc8\x10\xec\x91\x8a\xff\xe4\x45\x0f\xde\xa8\x04\x6d\x8a\x8b\xb9\x66\x67\x14\xd0\x5a\x9c\x5b\xcb\x72\xad\x4d\x46\x9b\xed\x9a\x04\x94\x7f\xc6\x7c\xfa\x42\x5b\xb4\x71\x15\x5a\x93\x58\x57\x7b\x38\xee\x7e\x87\xbf\x67\xd6\x79\x75\xa8\x1f\x9a\xac\xa3\x2f\xb2\x2b\x36\xc0\x43\x88\x9c\x50\xdc\x24\xfa\x0e\x1f\x1c\x58\x67\x32\xa4\x62\xa8\xa5\x3d\x29\x79\x2f\x59\xd6\x0f\x0e\xdb\xc1\xd1\xb8\xfb\x1d\xfd\xbe\xf4\xac\x1d\xe2\xed\x83\x13\x5d\x92\x01\xf5\xc7\x87\xa3\xef\xa8\x18\x9f\xab\xf3\xc6\xad\xd6\xbe\x54\x91\x8b\x15\xc6\x19\x46\xa4\x22\xff\x6f\x5a\x7f\x71\xe8\xf4\x15\x37\x59\xb9\x80\x8c\x1c\xa6\x19\x41\x02\x59\x54\xda\x1a\x40\x63\x94\xff\x13\xba\xca\xfb\x28\x7e\x8a\x4a\x61\x59\x06\x57\x8d\x20\xb7\xda\x28\x75\x65\x3f\x40\xc3\x3d\xcb\x6e\xb5\x5a\xa1\xb2\x98\xb4\x97\xac\x16\xdf\x0e\x59\x3c\xe8\x74\x3a\x4c\xba\x39\x30\xa9\xc3\x7e\xfd\x15\xa4\xd3\x96\xa9\x52\x96\x37\x84\xd1\x1d\x67\xc8\x22\xd7\x31\xe3\x77\xc4\x62\x8b\x74\xca\x68\x5f\x72\xb0\x01\x19\xea\x10\xe4\x1d\x6f\xf5\xf5\xa9\x24\xd9\x31\x0e\x2d\xb0\xfb\xa6\x99\x76\x6f\x3f\x8e\x49\x21\x2d\x0a\x70\x54\xbf\x4e\x30\x6a\x5d\x2c\x15\x31\x10\x5d\xe2\x9c\x37\x19\x27\x36\x63\x54\xe9\x57\x9a\xce\x90\xe0\x48\x37\x60\x90\x34\x3b\x84\xd2\x33\x9e\x4b\xa3\x6a\xb1\xf4\xcc\x89\x26\x58\xed\x9a\x0d\x58\xe9\xb4\xac\xb1\x0f\x69\xc1\xe9\xbf\x42\x15\x54\x30\x2a\xa0\x6b\xa2\xf0\x4a\xb1\xa5\xeb\xac\x42\xcb\xe6\x1a\x2d\x29\x6b\xcd\xef\xf7\x94\x39\x66\x15\x3e\x65\x17\xe8\xb0\x7e\x03\x7b\x58\x65\x09\x50\x95\x25\xe8\xfb\xe8\x88\xa2\x43\x54\x2d\xa1\xdf\x93\xac\x3d\x54\x57\xab\xc1\xb0\x80\xeb\xce\x6d\xc7\xef\x46\xd8\x85\xb8\x42\x5e\x55\xd0\x3f\x55\x42\x7a\x16\x11\x5b\x45\x37\xa1\xe3\xc8\x89\x55\x7b\x66\xae\xab\x42\x90\x25\x64\x02\xc4\x9e\x2c\x60\xc3\x99\x60\x71\x79\xa9\xe9\xad\xba\x3b\xd3\x1f\x65\x78\xbe\x08\x56\x1f\xfe\xca\x90\x10\xee\x11\x62\xde\xf3\x2e\x35\x5d\xe8\x2b\xb9\xe9\x95\x7f\x51\x21\x1a\xd2\x7c\x81\x9b\x5f\xea\xa9\x23\xa8\x8e\x7d\x2f\xdb\xe8\xf5\x23\x28\x8e\x07\x2f\x4b\x69\x6a\x23\x28\x80\xe9\x65\xa8\x9b\x22\x29\x11\xec\xf9\xee\x49\xab\xe1\xc2\xca\x60\x61\xd6\x0c\x47\xbd\x8d\x56\x2b\x76\xb8\x6e\xaf\x99\x02\x51\x6d\xad\xcd\x52\xd7\x0e\xe7\x01\x1a\x5a\x2f\x0f\x52\xec\xda\x1a\xef\xb0\x6a\xc9\xf3\x0f\xf0\xf5\x3e\x30\xdc\x0c\x5c\x8e\xe8\x6c\x46\x49\x7f\x79\xc6\x12\x92\xf6\x97\xc9\x45\xde\x07\xcf\x7e\x3e\x06\x42\x0a\xcc\x17\x59\x1f\x3c\x97\x7f\xe5\x93\x56\xf1\xa3\x9d\xcc\x71\x7b\x92\x70\x74\x91\x5c\x01\x93\x1b\x3c\x7b\x7f\x14\xfc\x51\x27\xc2\xbf\x5f\xf0\x3e\xf8\xd3\xcf\x27\x00\x7e\x5a\x9c\x21\x46\x10\x47\x79\x1f\xfc\x64\x7f\x03\x48\xe8\x2c\x49\xfb\xe0\xad\xf8\x03\x20\xc5\xe9\xa8\x0f\xde\x1d\xbd\x78\x0e\x20\x47\x8c\x25\x02\x9e\x7d\x70\x62\x7e\x02\x78\x2e\x46\xdd\x07\x7f\x96\xda\xd7\xc2\x0c\x6d\x99\x8c\x46\x28\xcf\x29\xc3\x69\x1f\x3c\xd3\xbf\x8f\x5e\x00\x38\x62\x98\xe3\x51\x22\x06\xaf\x7f\x01\x81\x4d\xc9\x08\xc9\x78\xc9\xe0\x85\xfd\x0d\x60\x8a\x72\x8e\x89\x5c\x0a\x92\xcc\x50\x1f\xbc\x28\x13\x02\x65\x3d\x9b\xaa\xc7\xb7\x3a\x5b\x7d\xe8\x2c\xa9\xa1\x11\x13\x09\x64\xe0\xb5\x1c\x40\x0d\x9a\x3e\xb0\xe0\x00\x98\x4c\x18\xca\x73\x07\x6a\x47\x2a\xa5\x04\x99\x44\x2f\xb1\x37\x93\x34\x15\x39\x7d\x20\x29\x77\xf0\x03\x26\x69\xf0\x4c\xa5\x39\xa5\x04\xb6\x78\x45\xde\xcb\x08\x5a\x33\x94\x4f\xfb\xe0\x0d\x92\x3e\xa3\xc5\x87\xd3\xa5\x48\x2d\xfb\x53\x73\xd1\x6e\x5c\x08\x4d\x51\x5b\xa4\x00\x31\x93\x14\x05\x4e\x7a\x67\x86\x78\x62\xd2\xdf\x88\xdf\xf2\xa5\x72\x5b\x85\x62\x45\x0c\xa5\x32\x93\x07\x1f\xca\x04\x38\x4f\x24\x3f\xd1\x07\xef\xd5\x0f\x00\xcb\xe2\x7d\xe0\x96\x34\xea\xbd\x52\x75\x6f\x34\x7e\x66\x40\x3a\xc3\x8c\x49\xe7\x9a\x61\x99\x5c\x35\xb2\x9c\x2e\xd8\x08\xa9\xb9\x1d\xcb\xdf\xba\x9a\x72\x56\xde\x07\x3f\xa2\x24\xe3\xd3\xe0\x58\x7e\x02\xc8\x93\x49\xde\x07\x27\xc9\x24\x07\x10\x70\xc4\x66\x72\xdd\xc9\xc4\x01\xdb\x49\x99\x5a\x42\xef\x22\x61\x44\xce\xef\x67\xf5\x03\x88\xb3\x36\x61\xa3\x69\x7f\x59\xa2\xde\xab\x04\x67\xea\x21\x3a\x26\x82\xb3\x9a\xca\x75\x0f\xf4\x04\x02\x99\x02\x31\xe1\x68\xa2\x18\xb2\xbc\x2f\x43\x60\x9a\x2f\x0d\xe7\xb2\xae\x00\x32\xae\xd6\xd7\xdd\x82\x63\xf9\xd7\x7c\xcf\x35\x75\x30\xe9\xc1\xb3\x11\xa3\x02\x81\x14\x80\x0c\x70\xc4\xb0\x05\x22\x2d\x05\x6d\x5f\x26\xb9\xd8\x84\x99\xd8\x0f\x01\xa7\xc1\x5b\x74\x81\x72\x2e\xf7\xc7\xa8\x0f\xd4\x97\x48\x57\x25\x40\x01\x93\x6c\x3e\x4d\x74\xb5\x67\x22\xe7\xaf\xa6\xf0\x5f\xc5\xd7\x33\x50\xc0\x74\xa1\x26\xa3\x4b\xbd\xa6\x64\xa2\x5b\xc9\xa7\x94\x71\xa7\xfd\x63\xfd\x2d\xf2\x32\x55\x0c\x14\x50\x3f\x05\x36\x9d\xe4\x23\x44\x52\x09\x52\x55\xe9\x05\xb2\x29\x85\x59\x62\x55\xf4\x23\x99\xca\x95\xbe\x12\xed\xa9\x45\xbf\x32\xb5\x7e\x2c\x73\x6c\x31\x50\x14\x70\x81\xc5\xea\x21\x35\x60\xf0\x5c\xff\x92\x3e\xd8\x33\x89\xad\xed\x33\x81\x10\xaf\xf4\x57\x70\x76\x15\x2c\x31\x47\xb3\x02\xc0\x59\x72\xc9\x79\xd6\x07\x6f\x92\xcb\xe0\xe4\xe4\xb5\xbf\xbd\x54\x68\x5c\x81\xf6\xe2\xaf\xa9\x53\xa8\xab\x5b\x4a\x84\xe8\xd4\x5f\x26\xf3\x79\x7f\x09\x46\x34\xcb\x92\x79\x8e\xcf\x32\xd4\x26\x94\xcb\x30\x10\xfd\xa5\x4e\x45\x82\xd8\xaa\x5f\xc1\x0f\x09\x21\x52\x93\x85\x2e\xe7\x82\x6c\x83\x97\xf2\xaf\x4d\x57\x8d\x2b\xee\x21\x61\x57\xa2\xa6\xf3\x29\x06\x8c\x89\x18\x2e\x26\x00\xe6\x9f\xf0\xfc\x94\xd3\xd3\x11\x25\x5c\xb0\xb4\xe0\xf8\x13\x9e\x0b\xe8\x3c\x57\x09\x00\x72\x3a\x99\x64\xe8\x74\x86\xc8\xa2\x0f\x4e\xe4\x47\xf0\x06\x91\x85\x47\x89\xb3\xfe\x12\x28\xec\x6b\x9f\x25\x0c\xf4\xd5\xbb\xe2\xa5\x82\xc4\x89\x7c\xfe\xaa\x9f\x05\xf7\x97\x23\xc5\x3c\x83\xe7\xf2\xaf\x18\x0e\x49\x26\x72\x74\x62\x50\xe6\x37\x28\x8a\xa2\x80\x20\x59\xf0\x69\x7b\x86\xf8\x94\xa6\xa0\xbf\x04\x82\xfc\x89\x2d\x9a\xe1\x9c\x9b\x6f\xf9\x90\x1e\xf4\x97\x82\x60\xf5\xc1\xc9\x14\x05\x22\x35\x10\x7d\x6b\x6b\x1f\x9c\x07\x8b\x1c\xa5\x41\x22\xad\xae\x9e\x3d\x7f\x2d\xe8\xd9\x51\x8a\x08\xc7\xfc\xaa\x23\x3e\xc4\x62\x05\x63\x8c\xb2\x54\xbd\xc9\x46\x01\xa7\x9f\x90\xf8\xa5\x9e\x6d\x2b\x4e\x2b\xed\x00\xc8\x68\xb6\x53\x2f\x1f\x68\x86\x5e\x63\xf2\xa9\xb3\x7b\xd3\x96\x1c\xee\x34\x07\x4d\xfc\xec\x34\xf4\xf7\xce\xdd\x09\xe8\x6e\x5e\xb2\x42\x1d\x39\x98\x5f\x99\x64\x4d\x39\xca\xb5\x54\x81\xba\xf4\x86\x41\x79\xa0\xbe\x55\x97\xe6\xc8\x2a\x73\xe5\xa7\xc9\x54\xeb\xab\xb6\x60\x5b\x9e\x9f\xa0\x8a\x44\x32\x75\x0d\x16\xc9\x38\x14\x7d\x20\xff\x00\x98\xd2\xd1\x27\x71\xb6\xab\xbf\x00\x4e\xd8\x7c\xd4\x07\xe2\x5f\x00\xa5\x8b\x74\x20\xfe\x05\x30\x1f\x31\x3c\xe7\x7d\xa0\xfe\x4a\x90\x8f\xfb\xe2\x58\x19\x03\xc8\x47\xf3\x3e\xe0\xa3\x39\x80\x72\x3b\x73\x9e\x09\x18\xb9\x50\xf9\x09\x93\xd4\x19\x82\x42\x38\x79\x36\x3e\x97\xe3\xaf\x1d\x68\x3a\xbd\x30\xa4\x56\x35\x26\x89\x94\x29\x21\x88\x2d\x4d\x91\x25\xb5\xa2\x35\x4e\x03\x7b\x22\xaa\x9e\x65\x3b\x81\x5e\x15\x99\xb4\x74\x33\x24\xad\x91\x00\xc5\x72\xd7\x4a\xaa\xab\x68\x48\x7f\x39\x17\x87\x98\xf4\xab\x94\xf7\x97\x67\x34\xbd\xea\x83\xf7\x65\x52\x90\x30\x14\xbc\xfe\xba\xb4\x88\xcb\x3b\xc1\xd1\x38\x48\xc8\x55\x20\x84\xed\x29\x0a\xc6\x34\xcb\xe8\x85\x38\x02\x9d\x96\x02\xe9\x2e\x58\xe6\xeb\x38\xb6\x50\x7e\x1c\x99\xfe\x83\x0b\x9c\x65\x41\x32\x9f\x67\x57\x9d\x40\x47\xc8\xcd\x15\x16\x8e\x13\x2c\xb0\x40\x37\xe1\xf4\x34\x67\xf4\x1c\xa7\x28\x0d\x18\x15\x03\x51\x4d\xa8\xee\x65\xbe\x66\x60\x05\xf6\x07\x32\x08\xc6\x55\x07\xc0\x31\xa5\x92\xad\x7b\x8d\x12\x46\x82\x19\x65\x28\x48\xce\xe8\x82\xbb\xa3\xad\x23\xbb\x62\x1e\x0d\x14\x4b\x78\x78\x18\x96\xd1\x8b\x3e\x78\x26\xfe\x00\x08\x92\xf9\xbc\x9d\x5c\x24\x4c\xb0\x25\xcf\xe6\xf3\x40\xfd\x86\x29\x22\x57\xe2\x30\x22\x57\xe5\x32\x9b\xc6\xd5\xc1\xa5\x86\x4f\x03\x59\xc6\x1e\x5e\x44\x9e\x41\xba\xf1\xda\x28\x0a\x08\x1c\xd6\x54\x73\x43\xaa\x3d\x87\x43\xed\x07\xfe\xd1\xeb\x65\xe9\x73\x18\xd6\xf8\x5a\x50\xc0\x39\x43\x23\x94\x22\x32\x42\x3b\x9c\xae\x66\x74\xb6\x8e\x18\x9d\xe2\x25\xbc\x81\x29\xe2\x50\x1d\x93\x49\xf5\x87\x63\x58\x10\x81\xb2\x9f\xce\xaf\x71\x78\x8c\x69\x96\x8a\xd5\x7e\x25\xff\x02\xf8\x09\x5d\xf5\xc1\x4f\xe8\xaa\x71\x8f\xa9\x42\xb9\xe8\xf9\x27\x74\x95\x9b\x21\x89\xdf\x22\x4d\x67\xab\x51\x28\x7c\xba\xc6\x48\x80\xa2\x75\xed\xf2\xf8\x02\x7d\xf0\x47\x45\xff\x9c\x63\x4c\xb0\x26\x24\x4d\x58\xda\x07\xc7\xfa\x97\xea\xd0\xd0\x8a\x4a\x8f\x9b\xf8\x45\x39\x1a\x4b\x39\x4e\xb4\x53\x9b\xad\x7c\xa2\x42\x7e\xc5\x57\x9b\xdb\xcb\x1a\xad\x55\xc0\x73\x49\x8b\xc7\x7b\xab\x21\xab\xb5\x5c\x4e\x51\x22\x17\x41\x46\xb3\x30\x4e\x4d\x82\x92\xcb\x0f\xb4\x5c\x68\xd8\xf5\xe0\x88\xff\xdf\xff\xfd\x7f\x72\x51\x86\x2e\x24\x33\x6d\x2f\x19\x25\xa9\x90\x54\x41\xef\x79\xce\x92\xf1\x18\x8f\xd4\x03\x83\xc4\xb6\x91\x8b\x59\xa9\x66\x3b\xc1\x2b\xca\xd4\x46\x77\x02\xea\x40\x51\x3c\x0d\xe8\x82\x05\x46\x81\x22\xd3\x3b\x00\x66\x98\x7c\xca\xfb\x4b\x2f\xb9\x0f\x5e\xb8\x9f\x02\xa5\x05\x87\xd3\xe6\x98\x67\x72\x87\x4b\x12\xf2\x41\x0f\x57\xa9\x48\x04\x67\x25\x0f\xaf\x6b\x60\x89\x39\x20\x35\x62\x1c\x8f\xa8\x5c\xb4\x1d\x71\x47\x9f\x9f\x4a\xd4\x53\x75\x15\xea\x8c\x18\xe2\x47\x2f\xc4\x1a\x89\x5f\xc1\xd1\x0b\x31\x01\x4e\xe7\x34\xa3\x93\x2b\xc1\x2f\x31\x3c\x12\xdc\xe3\x9c\xce\xe9\x39\x62\xfd\xa5\x24\x53\x4b\xe5\xdc\xaa\xbf\xc4\xf9\xcb\xcb\x64\xc4\x2d\x71\x23\x94\xeb\x04\x75\x54\x83\x02\xca\x83\xa2\x2c\xa8\x6e\xa9\x24\x15\x4e\xb4\x93\xa1\xb1\xf2\x5d\x63\x4f\x1c\xb1\x64\x92\x66\x76\xdc\x06\x9f\xa5\xa9\x60\x58\x9c\x52\x62\xb1\x65\x39\x71\x1c\xa0\x1c\x05\xfc\x82\x96\xcb\xcc\xa9\x40\x0e\x82\x46\xbc\x03\x0a\x68\x30\xed\xb9\x4a\x12\xf5\x5f\x20\x82\x51\x2a\x98\x93\xaf\xed\x84\xc0\x9f\x31\xba\x00\x6a\xcc\xe0\x39\x62\x3c\xc1\x24\xf8\xf1\xe4\xe4\xbd\x39\x9c\x24\xa6\x04\xb3\x45\xae\x8c\xeb\x25\xcf\x34\xc6\x92\xeb\x32\x5d\xbc\x4e\xae\x10\x0b\xbe\xf6\x8f\x0d\xb5\xbd\xf4\xeb\x17\x50\xf6\xe7\x23\x8f\xea\xf8\x0b\x31\x55\xb0\x5c\xcc\x73\xce\x50\x32\x2b\x80\xe6\xd5\x4c\x80\xd4\xc0\xe4\x08\xd0\x81\x65\x4a\x2f\x88\x2d\x49\x59\x90\x23\x2e\xc1\x5b\xc9\x99\x33\x7a\x29\x8f\x0a\xf5\x12\x78\x2e\xc3\xa7\x81\x60\xa6\xf9\x04\xa4\x9f\xe3\xa8\x5d\xd3\xf9\xc2\x4e\xe7\x2d\x35\x89\x6a\xff\x2b\x7a\xad\x59\x65\x20\x5b\xd5\x62\xbc\xda\x84\xa0\xbf\xe4\xe8\x92\x0b\xca\x2f\x27\x2b\xf6\x9b\xea\xdb\x2b\x05\x39\xa5\x19\xc7\x73\xbd\xf9\x47\xe5\xba\x5c\x24\xb9\x79\x26\x24\xa3\x0a\x34\xd4\x16\x2b\x0a\x34\x09\x68\x6b\xcf\x8d\xa6\xdb\x0f\x4d\x94\xa1\xda\xdd\xfd\xd3\x1a\x79\xae\x68\xe1\x52\xdd\x5c\x81\xf2\x05\x54\x46\x93\x34\x30\x9b\xad\x49\xd3\x23\xd0\x52\x0c\x41\x97\x91\xcf\x9b\x2a\xda\x1f\x3b\x29\xe5\x10\x8e\x67\x57\x26\x1c\x10\xb2\x1c\xfc\xc7\x23\x41\xc5\x68\x92\x4a\xb5\xc3\x6b\xf5\xc3\xe9\x58\x08\x99\x1c\xb5\xd3\x11\x70\x47\x37\x46\x82\xbd\x72\xbb\x16\x70\x13\x25\x83\x52\x1d\x26\x91\xc3\xc1\xac\xb6\x5c\x35\xd0\x07\x27\x65\x5a\xf0\x5e\xa6\x41\x83\xbf\x55\xf2\x67\xce\x14\x5f\x78\x90\xec\xfd\x88\xce\xaf\xda\x67\x0b\xce\x25\x82\x69\x00\x9e\x4c\x11\x43\x12\x5f\x24\x92\x9c\x65\x68\x26\xa4\x9f\x85\xe2\x9a\xc0\x73\x3a\xc7\x28\x0d\x64\x63\x05\x80\x92\x22\xcb\xd4\x2b\x9d\x26\x26\x27\xc0\x32\xca\xf0\xfc\x8c\xaa\x03\x15\xce\xa4\x9b\x89\xfe\xb2\x22\x31\xfe\x80\x49\x2a\x0e\xb0\x7c\x9e\x08\xbe\x5c\xaa\xcb\xec\x37\x80\x5a\xf7\xbd\x94\x74\x10\xa5\x1f\x90\x7a\x6a\xf3\xf1\xc3\x51\xae\x89\xa3\xe0\x46\x75\x6a\x20\x92\x01\x94\x1e\xf9\x9f\x2d\x52\x2c\x78\xa1\xbc\x0f\xe4\x77\x90\x98\x04\x5d\xe0\x28\xcf\x17\x62\x1f\xaa\x5c\x2c\xbf\x00\x7c\xfe\x4c\x50\xa7\x3e\x78\xfe\x2c\x10\x3f\x00\x7c\x9e\x25\x78\xf6\x26\x99\xcf\x31\x99\x88\xb9\x8b\xcf\xc0\x7c\x8b\x6c\x3a\xfa\x74\xfc\x09\x5d\xbc\x46\x4a\xaf\x28\x13\x82\xfc\x13\xba\x08\x32\xa4\xf4\x51\x2f\x2f\xe7\x58\x21\xb7\x29\x54\xa6\xd8\x42\x3f\xd2\x9c\xf7\x81\xf8\x17\xc0\x3f\xfd\xfc\xd3\xb1\x19\x88\xf8\x1d\xd8\xd1\x88\xaf\x8f\x1f\x5e\xeb\xe4\x8f\x1f\x5e\x8b\xa4\x93\x63\x83\x8f\xcf\x32\x31\xc6\x3f\xfd\x7c\xe2\xa0\x68\x92\x4d\x28\xc3\x7c\x3a\xcb\x65\xd9\x3f\xab\x7b\x37\x4c\xc9\xfb\xc5\x99\xbc\x24\x94\xe5\xcf\x6d\x72\x30\x5f\x9c\x05\x9f\x24\x37\xf6\x1a\xe7\xbc\x32\x7f\x91\x14\x54\x81\xf0\x96\xf2\x1f\xd0\x98\x32\x64\xe6\xf7\x56\xbe\x91\x12\x29\x76\x7e\xef\x8e\x5e\x3c\x57\x0a\x05\x71\x2c\xaa\x5f\xe2\x58\x74\x32\xd4\x59\x69\x33\xd5\x21\xaa\x0a\xbc\xc0\xf9\x48\x9c\x93\x57\x06\x2c\x22\x31\x48\x4d\xaa\x00\xd0\x48\x02\xc8\x2b\x2c\x21\x65\xbf\x14\xb8\x44\x01\x79\x50\xe7\xba\x91\x5c\x7e\x00\xa8\xb9\xa9\x67\x23\x19\x8f\xe5\x4f\x3f\x9f\x94\x0c\x56\xa2\xd2\x82\x3f\x1d\xbf\x7b\x1b\xfc\x8c\xce\x82\x13\xc1\x64\x00\xf8\x67\xc4\xce\x68\x8e\x44\x33\xaf\xe9\x64\x22\x37\xbf\x4e\x0b\x64\xdb\x99\x4a\x05\x05\x14\xec\xba\x90\x68\xd5\xe1\x54\x7e\x00\xa8\x35\xd6\x6f\x3d\xf5\xb5\x64\xdb\xe1\x9b\xe4\x52\xf6\x74\x72\xf2\x5a\x6a\xaf\xf0\x6c\x31\xd3\xda\x02\xa9\xc7\x3a\x46\x2a\x18\x87\x18\xa9\x09\x20\x28\x2b\xbc\x36\x6a\x01\x20\x3f\x03\xa3\x26\x00\x50\x6c\x7d\xab\x3d\xb0\xda\x1a\xb6\x10\x3c\x95\xdc\x8b\x4e\x81\x0d\x83\x6e\xe8\xb9\x28\xa0\xa2\xda\xfd\x65\x3a\x52\xb2\x77\xde\x5f\xe6\x53\x7a\x21\xf9\xd1\x8c\x4f\x95\x0e\xbe\xbf\x04\x46\x0b\xdb\x16\x72\xbd\x56\xa5\x01\x23\xfa\x7e\x3f\x7f\xfa\x37\x12\x04\xf2\x38\x11\x8d\x04\x53\x49\x87\xc6\x4a\x5f\x2b\x8e\x80\xb1\x4a\x97\xcd\x75\x82\x93\x29\x0a\x54\xfb\x81\x3a\x07\x50\x1e\x88\x5e\x49\x40\xb5\xf3\xbe\x79\x32\x41\x52\x8a\x16\x34\xc9\x96\x49\x24\x77\x73\x15\x5c\x08\x5a\xf7\x89\x88\x0a\x1a\x65\x45\x31\xd9\xc3\x19\x1a\x25\x33\x14\x2c\x08\x43\xc9\x68\x2a\xc8\x76\xe7\x6f\xe4\xfb\x87\x62\x80\x25\x5b\xf2\xca\x1d\x98\x52\x93\x14\xe6\xe2\xa1\x71\x2e\x84\x9a\xf1\x2a\x80\x48\x95\x63\x0e\x83\x5c\x42\x12\x8a\x0a\x41\xd0\x0d\x96\x85\xfa\x45\xf9\x14\xb1\x60\xa9\x84\x71\xf9\x2a\x57\x1c\x90\x8a\xbe\xcb\x22\x45\x39\x28\x49\xd2\x6b\xe7\xb7\x51\x2b\xfb\xcc\xb2\x39\xc1\xad\xa0\x93\xbb\x07\xc5\x4d\x57\xcc\xb4\xf0\xef\xb2\x6a\xde\x7c\x3e\xe7\xca\xd9\xc3\x5b\x80\x9b\x2b\xf6\x4f\x1c\x99\x06\xca\x5f\x08\x88\xd9\x32\x41\x26\xb8\xab\xd4\x07\xd6\x34\x39\x17\xb3\x47\x64\x2b\x9b\x17\xa8\x13\x7e\x96\x5c\x09\x6e\x5b\x4a\x6a\xb6\x69\x18\xf0\x29\x5d\x4c\xa6\x50\xc0\xba\x81\xa7\x95\xde\x30\x05\x54\x9d\xde\x45\x0f\x9d\x2f\xac\xa6\xe7\x83\x10\xf4\xa4\x3e\xc8\xe7\xc2\xad\x58\xea\xb0\x2e\x6a\x74\x72\xa6\x52\x72\x92\xf4\xc2\x08\x4a\xa5\x8e\x0c\x24\xa3\x2c\x6f\xeb\xb0\x7b\xa9\x45\x3d\x97\xc7\x6d\x13\x79\xa3\x5d\x8a\xd6\xc9\x95\x02\x49\x8a\xe6\x88\xa4\x88\x8c\x30\xca\x61\x70\xb6\xe0\x86\x25\xc5\x39\xf9\x82\x2b\x3d\x91\xd6\x70\xcd\x82\x8b\x29\x92\xda\x5b\xa5\x77\x33\x1d\x76\x82\x97\x8a\x6d\x93\x39\x52\x35\xf6\x09\xa9\xc9\x9f\x63\x74\xa1\x41\x98\xa3\xb1\xe0\x48\x0d\x1c\xbe\xd0\x88\xf4\x7d\x12\x4c\x19\x1a\xc7\x60\xf9\xfc\xdd\xdb\xe3\x8f\xaf\x4f\x5f\xbc\x7b\x7e\x7c\xfa\xf1\xc3\xeb\xe2\x61\x8e\x46\x0b\x86\xf9\xd5\xc3\x64\x94\x89\xff\xdb\x2a\xc2\xd4\xff\x32\x2c\xb1\xd8\xc7\x62\xe6\x20\xe0\x09\x9b\x20\x1e\x83\xd3\xb3\x2c\x21\x9f\x40\xc0\x50\x16\x03\x42\xe9\x1c\x11\xc4\x02\x42\x19\x1a\x23\xc6\x10\x03\x4f\x9b\xa1\xff\xfd\xc3\xe4\xa9\xc1\xb6\x52\x08\x71\x66\xa5\x54\x5a\x52\x7f\xd7\x96\xd2\x9f\x05\xf2\x5f\x84\xcc\x5e\xea\x0d\x73\xc4\x05\x19\x51\x00\x72\x98\x62\x24\xaf\x87\x8c\x0a\x50\x09\x9a\x6a\x13\xcd\x50\x42\xb4\x6a\xb1\x04\x99\xd4\x1d\x8a\xe5\x76\x64\x14\x09\x5a\x24\x0f\x6b\xb3\x8a\x98\x04\x57\xa2\xff\x51\xb6\x10\xf2\x44\x27\xf8\x19\x05\xf2\xd9\xee\x0c\x91\x34\x18\x09\xa9\x57\x6c\xad\xab\x35\x63\x74\x46\x24\x24\xec\x20\x11\x95\xe4\xe5\x91\xd8\xfc\x73\x34\xc2\x42\xbe\xb0\x15\x15\x1b\x6e\xe5\x40\x51\xba\x14\xf6\x4a\xf1\x43\x14\x2a\x67\xc2\xa9\xd8\x45\xdb\x57\x5f\x1e\x8f\xa7\x56\xd0\xce\x0b\xf0\xf4\x65\x8a\xb9\xd3\x7b\xf3\x22\x39\xa3\x13\x20\x6f\x02\xb4\x58\x3c\xe7\x22\x4c\xe1\x8c\xb7\x49\x36\xee\x0a\x01\xbe\xe0\x82\x92\xff\xfb\xbf\xff\x8f\x20\x50\x8a\x86\x2e\x72\x24\xd3\x53\x9d\x2e\x6b\x29\xcd\xa9\x66\xf0\x67\xae\x74\x8e\x67\x58\x50\x24\x75\xd1\xaf\x04\xf3\xb6\xdb\x87\x33\x9c\x72\x8f\x8a\xf6\xc5\x9c\xce\xb5\x1c\x56\xa2\x93\xa6\xb7\x6e\x0b\x9d\xe0\x2f\x62\x98\x02\x6f\x28\x91\x18\x87\x3c\xe9\x49\x8a\x1c\xaa\x01\xdb\xc1\x82\x70\x9c\xf9\x73\x15\xfd\x25\x69\x2a\x75\x0b\xbb\xef\x54\x8d\xa4\x0f\x5d\x3a\x6a\x8c\xdc\x3d\x39\xfd\x7f\x19\xec\x69\x7b\x72\x6d\x5b\x6e\x50\xa9\x9d\xfd\x4c\x7b\xf9\xad\x0f\xad\x8a\x6e\xa4\x6d\xf1\xce\x5d\x08\x01\x8a\xf9\x1c\x25\x4a\x07\x7b\x86\x82\x84\x38\xbb\x28\x31\xf7\x0a\x5a\x0e\x57\xc4\x93\x97\xeb\xa7\x80\xb9\xb0\x12\xad\xd8\x96\x0b\x82\x47\x09\x37\x90\x97\x9b\xde\x51\x42\x38\xa7\xc7\xd9\x95\x3a\xa7\x44\x07\xcd\x5a\x18\x26\x4f\x07\xb3\x66\x1a\xef\xbf\x70\x8e\xa4\x2f\xe4\xc1\xf1\x99\xd7\xf1\xb3\x11\xdf\xe7\x0e\xdd\x13\x13\x24\x94\x5b\x28\x64\x57\xe6\x10\x17\xeb\x78\x81\xb3\x74\x94\xb0\xa6\x45\x7c\x47\x50\x60\xb4\xad\x74\x5c\xa1\x83\x1e\xe0\x12\x75\xcf\x51\xaa\x54\x12\x92\x3e\xa4\x2c\x18\x33\x3a\x13\x99\x9a\x5f\x71\x75\x2c\x89\x14\x44\xa4\x28\xae\x49\xf9\x89\x3e\x99\xab\x34\x5c\xd6\x17\x47\xa8\x90\x7d\x5c\x82\x8e\xc7\x5a\xa3\x83\x66\x09\x26\x79\xb0\x20\x23\x65\x4f\x5f\xa1\xe4\x9a\x62\xab\x89\xdc\x98\x30\x57\x4e\xe6\xdf\x16\x49\x86\x7f\x53\x62\xed\x8e\x47\xf4\x4d\x89\xb4\xb9\x1b\x3a\x77\xae\xd8\x84\x4c\xa4\x0d\x05\xfa\xcb\x51\x46\x9b\x8d\x04\x04\x16\xd5\x4d\x04\x3c\x86\x10\x13\xce\xa8\x1d\xec\x47\xcb\x05\xaa\xd5\x35\x73\x17\x60\x16\xe4\x9d\xa1\x11\xc2\xe7\x56\xe7\xa8\x16\x58\x42\x44\x2b\xbe\xe4\x05\xa2\x21\xbd\x02\xeb\x94\xfb\x72\xcd\x15\xbd\x78\x7b\x6c\x83\x5a\x4b\x60\xe6\x0b\x86\x14\x62\x7d\x3f\xa2\x29\x7a\x2a\x55\x15\xdf\x3f\x94\xbf\x03\x35\xff\x40\x32\xe7\x92\x00\x53\x26\x55\x31\x29\x15\xeb\xad\x2e\xc8\x0d\x71\xd6\xdd\x2b\x4a\xc1\x94\xcb\x94\x52\x7f\x8a\x79\x5e\x72\xa1\x9d\xa0\x76\x5d\xe8\xf0\x44\xa6\x25\x89\xa4\x72\x60\xdb\x37\x7c\x45\xf9\x77\xad\x5d\x5d\xdb\xcc\x96\x71\xff\xa2\x90\xff\x0d\x87\x75\x53\xc2\x8c\x26\x62\xc3\x62\x8e\xe5\x33\xa4\x66\xaf\xd5\xda\xed\xc9\x96\x97\xe9\x8e\xa3\x3f\xa4\x9d\xb3\x54\xdd\x3f\x42\xf9\x92\x42\xfe\xb3\xdf\x95\x66\xab\xfb\xac\xe6\x72\x05\x1d\x00\xa5\x63\x57\x03\x50\x7a\x7f\x3b\xc0\x0e\x30\xef\xb9\xed\xeb\x1b\xd9\x0e\x59\xdf\x8e\xe2\x09\x2c\x2f\xa2\x9a\xb5\x8e\xa4\x02\xd2\x11\xeb\xbf\x5a\x85\xea\x47\x8c\x3a\x79\x86\x47\x28\x44\x9d\x2c\xc9\xf9\x91\x00\xc7\xbb\x71\x08\x1e\x82\xe8\xa0\x17\x45\x90\x14\xbe\x4b\x51\x63\x39\x2a\xcd\xb7\x51\x07\xeb\xf2\x1c\x22\x63\xd7\x6d\x42\xd1\x46\xb7\x71\x0a\xea\x03\xde\xc4\xb9\xc5\x31\x3f\x00\x0f\xbd\xf5\x03\x90\xea\x44\x25\x14\xb6\x2b\xb9\x49\x3c\x18\xc2\x5c\xfc\x93\xc5\xde\x4b\x4d\xb5\xc8\x7f\xcf\x3b\xa7\x28\xf9\x74\x9a\x23\x44\x22\xb8\x88\xbb\xdf\x2d\xbe\xcf\x8c\xa1\xfb\xe2\xe0\x40\xad\xec\x28\xce\x06\x8b\xe1\x5e\x37\x8e\xe3\x91\x07\x26\x0c\xbb\xd1\x21\x09\x47\x10\xb4\xa5\x6d\x56\xb4\x5a\x25\xca\xd6\x7b\x14\xf5\xeb\xc5\x29\xec\x46\xad\x56\xe8\x57\xc8\x4d\x85\xa8\x08\x9b\xa7\xad\xec\xef\xb9\x6b\x7f\x2f\x20\x6f\xe7\x19\xb2\x90\x0f\xc8\x30\x8a\x0a\x81\x74\x49\x04\xaf\xd5\x8c\x82\xdb\x51\x53\x73\x21\x82\x79\x93\xc3\xa9\x59\xc2\xa7\x6d\xe3\xcd\xc1\xfc\x4d\xce\x76\x36\xcc\x75\x02\x81\x0e\xd0\xd0\x1a\x23\xbf\x49\xf8\xb4\x93\x9c\x49\x1f\xa2\x37\xc0\x9d\xe4\x2c\x8f\xf9\x66\x3f\xd6\x7e\x00\x5a\xbe\xc5\xbd\x43\xf3\x34\x47\xf4\x6e\xe6\x39\xa2\x37\x9e\xe8\x88\xde\xd7\x4c\xa7\x77\x35\xd5\xe9\x2d\xe6\x3a\xbd\x8f\xc9\xa6\xe9\x4d\xc2\xd8\x96\x2f\x29\x3a\x0c\xa5\x8b\x11\x32\xe1\x50\xac\xb5\xfe\x81\xfe\xc5\xa3\x9b\xcd\x3f\x4d\xef\x63\xf6\x39\x26\x77\xb2\xd2\x39\x26\x37\x5d\xe8\x1c\x93\x7b\x9a\xe9\xdd\x20\xb5\x68\xe8\x16\x73\xbd\x17\xa4\xe6\xc9\xdd\x2c\x2b\x4f\x6e\xbc\xac\x3c\xb9\x97\x65\xe5\x09\x79\x74\xa3\xa9\x42\xde\x30\xd9\x47\xca\xff\xcf\x0d\xe7\xfb\xe8\x9e\x26\x7c\x37\x78\x2c\x1a\xba\xc5\xe2\xde\x07\x1e\x8f\xce\xd8\xce\x5e\xc1\x37\xcd\x55\xb4\x73\xc3\xa9\x8a\xaa\xf7\x31\x53\x84\x77\xf6\x66\xb3\x71\xa6\x08\x67\x37\x9d\x29\xc2\xd9\x7d\xcc\x34\xfb\xed\xf1\xcd\x76\x6c\x75\xaa\xa2\xa1\x9b\xce\x55\xd4\xbd\x8f\xc9\xde\x0d\xcf\x78\x73\x96\xf1\x7e\x38\xc6\xbb\x62\x18\x6f\xc1\x2f\xde\x13\xbb\x98\xe2\xf3\xcf\xc3\x2e\x3e\xbc\x1d\xbb\x98\xe2\xf3\x7b\x98\x3d\xba\x9c\xdf\xc5\x32\xa3\xcb\xf9\x0d\x57\x19\x5d\xce\xef\x67\x9a\xb3\xde\x1d\x4d\x74\xd6\xbb\xf9\x54\x67\xbd\x7b\x98\xec\x38\xa3\x94\xdd\xc5\x64\x65\x43\x37\x9c\xac\xac\x7b\x1f\x93\x65\x74\x41\x6e\x22\xf0\xd5\x67\x2b\x5b\xba\xe9\x74\x65\xe5\x7b\x98\xef\x64\x74\xb3\xc9\xc6\x5d\xc8\xe2\xee\xb0\x74\xe2\xe1\xa8\x68\x20\x2e\xbf\x98\x55\x2f\x4a\xbf\x20\x87\x58\x2a\xbf\xf0\x21\xe9\xf3\x70\x80\x21\xf9\x1d\x1e\xde\x08\x40\x93\xd1\x7d\x40\x67\x7a\x35\xa7\x37\xe1\x2f\x91\x8f\x0a\xb2\x19\xe5\x1f\xf0\x26\x73\x95\xd5\xef\x61\xb6\x78\xb6\xb8\x19\x8b\x59\x93\x94\x44\x4b\x37\x16\x94\x44\xe5\x7b\x98\x6d\x36\x9a\x35\x79\x3a\x5b\xbb\x4b\x76\x56\xfa\x3b\x9b\xc3\x41\x7d\xb4\x5a\x89\x3f\xec\xb0\xdb\x2f\xb7\xca\xef\x59\xf4\x50\x5e\x0d\x4c\x46\x69\x24\x00\xc9\x6e\xb6\x1b\xb2\xd1\x2c\x66\xcd\x10\x23\x8d\x10\x63\xd1\xe6\x58\x43\xcd\x10\xa3\x93\xf6\xce\x91\x03\x36\x91\xc6\x8c\x4e\x6e\x48\x17\x33\x3a\x79\x79\x1f\xb8\x41\x27\xbd\xee\x1d\xcd\xb4\xd7\xbd\xf9\x5c\x7b\xdd\x7b\x9a\xec\x9d\x70\x6d\xb2\xa1\x5b\x4c\xf6\x3e\x38\xb7\x8c\x4e\xee\x44\xb6\x14\xed\xdc\x7c\xaa\xb7\x95\x2c\xf7\x76\x98\xe9\x2c\xb9\xbc\xfd\xc9\x35\x4b\x2e\x6f\x7e\x6e\xcd\x92\xcb\x7b\x58\xd1\xd9\x8d\x14\xd4\xd5\x79\x62\x72\x8b\x79\xde\x8b\x7e\x7a\x46\x3f\xd3\x3d\xc4\xef\x6e\x27\x58\xce\xe8\x7d\x70\x62\xb3\x45\x76\x3b\x46\x6c\xed\xf4\x7f\x7f\xcb\xe9\x8b\x59\x7c\xfe\xf9\xcf\xe9\xc5\x9d\x4e\x5f\x62\xfd\x9c\x5e\xc8\xcf\x1b\x4d\x7c\x4e\x2f\xee\x61\xde\x2c\x21\x9f\x37\x7e\x9e\xea\x20\xc6\x6b\x22\x17\x2d\x67\x98\xf4\x39\x9c\x25\x97\x7d\x56\x48\xb1\x06\x92\x78\x99\xa2\x11\x9e\x25\x59\xde\xef\x16\x25\xb8\x71\x88\x60\x99\x83\x8b\x58\x05\x35\xac\x85\x2b\x44\xad\x56\x2d\x5c\x9a\x71\x73\x87\x63\x1b\xaa\x47\x8c\x47\xb5\x75\x58\xfe\xec\x13\xfb\x13\x1e\xc8\x35\x54\xe3\x97\xbe\xb4\x5f\xe1\x4b\x94\x86\x4c\x30\x94\xe1\xa3\x2e\xc4\x51\x24\x4d\x4b\x50\xab\xd5\x13\x0c\xa8\xb1\xbe\xd0\xfe\xd1\xc8\xd0\x7a\x26\x3f\x08\xbd\xa6\x7e\x4f\xd6\xb4\x56\xa8\xd6\x1e\x79\xad\x65\x88\x0f\x08\xa4\x65\x6b\x01\xfd\x9e\xb4\x5a\xa1\x4a\x1c\x50\x48\x86\x11\x3c\x08\x89\x3f\xdc\xdf\x87\xb4\x4d\xa2\x75\xfd\xe8\x61\xed\x30\x41\x19\x0d\x9f\x36\xe2\x1b\x76\xf1\xad\x21\x5e\x7d\x33\xbe\xdd\x50\xfc\x47\x4e\x44\x5d\xeb\x52\x92\x49\x9e\xff\x80\x1d\xaa\x89\x68\x7d\x40\x3f\x64\xf1\x01\x93\xd6\x3f\x71\x1c\x87\x28\x3e\x40\xd1\x6a\x85\xf3\xb7\xc9\x5b\x19\x38\xcf\x78\x76\xb5\xc1\x5f\xd9\x6a\xc5\x7e\xd7\xdb\x8f\xbb\x87\x6f\x93\xb7\x7d\xf4\x7d\xf7\xb0\xcd\xc3\xb6\xe8\xb1\x1f\xa2\xd8\x8d\x99\xd7\xc9\xe7\x19\xe6\x21\x40\x20\x82\x07\xbf\x3c\x58\x86\x48\xb4\xef\xf4\x2e\x12\xd1\xa0\x3b\x2c\x90\xf8\xdb\x1b\x1e\x1e\x88\x7f\xdb\xac\xdf\x66\xc5\x2f\x51\xd4\xdc\x54\x54\xab\x70\xc0\xfa\xb2\x7c\xe1\xda\x3a\x09\x08\xc8\x68\xc9\xf2\x5f\x8b\xa7\xd6\x83\x63\x28\x3a\x86\x6d\x27\x47\x06\x57\xee\xa0\xcb\x79\xa5\x8c\x4a\x2b\xdc\x03\x5a\x03\x6f\xd0\xbd\x99\x80\xa4\xd4\x29\x9f\x5f\x44\xca\xf1\xe4\x4e\xee\x55\x45\x3b\x37\x64\x2f\x45\xd5\x7b\x20\xcc\x77\x64\x17\x70\x73\xb3\x80\xfb\xb1\x0a\xc8\x7f\xbd\x9b\x0b\x46\xd1\xce\x4d\x27\xfa\xeb\xbd\x5c\x30\xe6\x8b\xb3\xcf\xc3\x60\xb5\x6f\xc7\x60\xe5\x8b\xb3\x7b\x98\xfd\x1d\xd9\x43\xdc\xdc\x1c\xe2\x7e\xac\x21\xee\xca\x36\xe0\x16\xa6\x01\xf7\x64\x19\xc0\xd9\x82\x8c\xee\x64\xaa\xa2\xa1\x9b\xce\x55\xd4\xbd\xeb\xc9\x5e\x9d\xa1\x36\x26\x6d\xa4\x7c\xd0\x3d\x2c\x5d\xdf\x3d\xac\xe6\xfd\xc3\xa2\x7c\x9e\xbc\x79\xfd\x43\xc2\xf2\x0e\x47\xb3\x79\x96\x70\x14\x2e\x71\xda\x07\xdf\x1e\xfc\xf4\x88\xfe\x1d\x67\x00\x9e\x65\x74\xf4\xa9\xff\xc5\x12\xe4\x57\xb3\x33\x9a\xe5\xa0\x3f\x00\x2d\x13\x11\x0a\x82\x3f\x38\xde\x9a\x5e\x9a\xa9\x80\x3f\xa8\x38\xd2\x47\xe4\x7d\x96\x8c\x10\x18\x42\x90\xf3\x84\xcb\x5c\xd1\xc0\xe0\x2b\x38\x78\xfc\x35\xec\x0d\xe1\x60\xf0\xf8\x11\x7c\x3c\x1c\x2a\x03\xeb\xc1\x00\x94\x2d\xa3\x4c\x06\x16\x1b\x2c\x2b\x75\x7b\xdf\xc0\x9e\x2c\x3e\x1c\x42\x30\x4f\x58\x32\x43\x32\xbc\x45\x7f\x30\x2c\x60\xb5\xb0\xea\xa8\xab\x3b\x7a\x34\x14\x3f\xc0\x64\x81\x53\xe9\xb5\x22\x47\x4c\x3f\xb0\x17\x1d\x81\xdf\x8d\x16\x2c\xa7\xac\xdf\xfd\x1d\x30\x1d\x38\x23\xba\xe6\x50\x86\xc3\xb5\x89\xd3\x24\x7f\x79\x9e\x64\xa0\x3f\x4e\xb2\x1c\x41\xb0\x98\x9f\x27\xb2\x00\x70\xf1\x01\xe0\x31\x18\x16\x5f\xc0\x19\xe2\x49\x7f\x39\x93\x4b\xab\x1e\xb3\x5f\x1f\xbb\x3a\xd3\xb3\x1c\x94\x91\x38\xd5\xd2\x9f\xe6\x88\x3f\x37\x75\x4e\xcc\xf2\x73\xed\xcf\xfe\xd4\x20\xc4\x3b\x92\x5d\xd9\x62\x61\xb4\x0d\xe7\x69\x8a\xc7\x18\xb1\x32\x80\x87\x0c\xdb\xf2\xd0\xa4\x6b\xcf\x3f\x37\xb9\xa4\x44\xd1\x12\x75\x2e\x70\x96\x29\x97\x92\xa1\xc0\x6d\xcf\x47\xff\x6d\x6c\xd5\x6b\xbe\x82\xe5\xb0\xab\xb1\x66\x04\xf8\x64\xc8\x11\x15\x0d\x41\x85\x3e\x40\x90\x4b\x2f\xe6\x90\xc5\x60\x94\xcc\x93\x33\x9c\x61\x8e\xa5\xbf\x5f\x03\x69\x33\x7b\xe5\xe2\x88\x3d\x77\x4a\x85\xe0\x71\xa7\xf7\x18\x44\x90\x49\xa7\x27\x6b\xc2\xd6\x88\x4e\xf5\xc0\xc9\xb5\xc2\xd6\x48\xe7\xda\xa4\x50\xce\x0f\xdf\xe8\x61\xd4\x02\x22\x85\x5d\x69\x47\x93\xe4\xb9\x72\xcf\xad\x66\x06\xcb\x1b\x41\x3d\x0f\xe3\x7d\x46\x82\x5c\x41\x85\x40\x1e\x41\x52\x48\x13\xf4\x2c\x73\x7a\xe0\x62\xb9\x34\xfe\x29\xba\x8a\xd3\x0f\xea\x05\xcd\x33\x13\x3c\x21\x54\xe6\x0e\xe9\x91\xaa\x1d\x46\x85\x72\x26\xee\x37\x53\xfa\x70\x47\x10\x24\x6c\x92\x03\xd1\xa7\xac\xf8\x51\x16\xaf\xb5\x57\xef\xa7\x48\x15\x96\x94\x2d\x9b\x76\x75\x86\xf6\xb0\x7d\x5d\x7c\x6e\xbc\x97\xda\x75\x0f\xec\xfe\x38\x45\x45\x36\x32\xa2\xd7\x67\x0c\x70\x04\xd1\x1d\xec\x22\x15\xa9\x89\xf8\xbb\x47\x3e\x3b\xd1\x6e\xc5\xd5\x22\x9a\xd8\x49\x26\xd5\x92\x3e\x41\x52\x4d\x5c\x8d\xdc\x0d\x29\x02\x4d\xd4\x11\xd1\x40\xcc\x8b\xc6\xa5\x5e\x16\x4d\x88\x21\x53\x2d\x9e\x2d\x0b\x97\x90\xa8\xaf\x32\xd6\x47\x31\x41\x3c\xc0\xb9\x4e\xf0\x42\x35\xe9\x8d\xe0\x65\xaa\x78\x21\x5e\x1d\x94\xae\xaf\x82\xb4\x27\x7a\xd7\x63\x3a\x81\x25\x4d\x7e\xe3\x13\x8b\x10\xc5\x4f\xbd\xc8\x5d\xd2\xb5\x7c\x43\x40\xbd\x3a\xda\x19\x0c\x4a\xb2\x1b\xd3\xdf\xbb\xe3\x37\xc4\x1c\x7e\x46\xc9\xa7\x37\xc9\x1c\x32\xf7\xcb\x8b\xd4\x56\x06\x0d\xd0\xe1\xd6\xa2\x3d\xde\x6a\x01\x53\xc4\x89\x86\xd1\x6a\xf1\xd0\xd1\x6a\x60\x89\xf9\x44\xd7\x5f\xce\x69\x8e\xd5\xd4\xfb\x58\xba\x5e\x4c\xfb\xb4\x88\x09\x4c\x62\x71\xc4\x61\x48\xa3\x3d\x43\x52\x12\xa3\x99\x12\x63\xaa\x93\x7d\x45\xf5\xe5\x0e\xdc\x43\x8a\xd0\xf3\x2a\xa1\x67\xd7\x21\xf4\x9f\x35\x3e\x59\x95\xd0\xdb\x50\xf5\x9d\x4e\x47\x88\x7a\x9a\xcc\xab\xcf\x06\xaa\xcd\x04\x08\xb9\x86\x0c\x8b\x20\xd6\x69\x75\xc2\x6c\x4f\x10\x1a\x73\xb3\x54\x44\x9a\x94\x84\x08\x52\xc8\x1a\x49\xae\x14\xb9\x8a\x2d\xca\xbe\x5d\xf0\x78\x37\xba\xbb\x69\x03\x7c\xb6\x98\xb5\x0d\xe1\xfd\xd6\x6f\x6e\x19\x7c\xc2\x54\x85\xa8\xf1\xa1\x56\x6d\x5a\x98\x70\xc4\xc6\x89\xf4\xb9\x35\x70\xe7\x11\x2d\x37\x54\x5f\x1b\xfd\x74\xfb\x19\x77\xbd\x95\xd9\x65\xdc\x0d\x61\xdc\x3e\x5b\x30\x55\x2b\x53\xdc\x61\x3c\xd5\x72\xb6\x77\x18\x56\xd5\x20\xc7\x33\x79\x3c\xee\xd4\x30\xe9\xb8\x95\x1a\x03\xad\x4a\xea\xd7\x96\x72\x5c\xde\x9e\xd3\xec\x6a\x8c\x33\x27\x8e\xf3\x34\xc9\x55\x66\x5b\x0a\x2b\x79\x13\x86\x34\x36\xf1\x99\xcf\x0d\xc9\x6b\x37\xca\xdd\x5e\xaf\x19\xe2\x03\x89\x3e\xce\xad\x06\x3f\x54\xcc\x74\xab\x25\xd8\xdf\xa7\xdd\x3e\x29\x3c\xb9\xa5\x21\x50\xe9\xae\x40\xfa\x37\x82\xce\xed\xa1\x82\x73\xb7\x44\x1b\x93\x73\x3a\xd2\x2e\x89\x6e\x04\xa5\xcf\x16\x39\x7c\x2b\x9c\x6c\x7c\x44\xde\xc1\xb9\x90\xb2\xd3\x1f\xc4\x40\x8f\xec\x8c\x22\x75\xdd\x81\x06\xbd\x61\x54\x6c\x13\x82\xb7\x80\xed\xdf\x0f\x66\x64\x2d\xc4\x6e\x0a\xac\xda\x61\x75\xc7\xdb\xa9\x69\xc4\x71\x65\xe7\x04\xcc\xbc\x36\xd7\x31\x0a\xa5\x5c\x52\x09\x9c\x5b\xe9\x94\x41\x60\x2e\xe6\x64\x94\x21\x9f\x65\xf3\xe2\x38\x3b\x0c\x5c\x0f\xaa\xc1\x09\x6e\xe0\x97\xe5\xf2\x4a\x46\x31\xe0\x34\x7e\xb0\xfc\xd3\xf1\xbb\xb7\x1d\x15\xde\x0b\x8f\xb5\x90\xfa\x4b\x11\x41\xc5\xa2\x31\x21\x10\xb1\x02\xa2\x35\x58\xeb\x3e\xc1\xb7\xf2\x63\xd3\x2d\xb7\x98\xd9\x7e\x1c\xa3\x56\x8b\xcb\x50\x6a\x28\x3a\x64\x71\x6c\x19\xbb\xbe\x3d\x43\xe3\x38\xd6\xfd\xc9\xae\xf2\x23\x32\xa6\x0d\x1c\xcf\xe6\x3e\xf4\x7d\xaa\x86\xe0\x04\xf1\xf7\x26\x72\xfc\xbb\x71\x88\xa2\x56\xcb\x8f\x1b\x8c\xa2\x8e\xf4\x5d\x25\x24\x21\x73\xe3\x5a\x36\x1c\x15\x4d\x22\x46\x1d\xcf\x28\xd1\x8a\x67\xbb\x11\x29\x69\x1b\x07\x14\x4d\x9b\xaf\xa9\xc2\x3d\xed\x3d\xcb\x83\x98\x80\xb3\x4b\x1d\xa8\xd4\xf5\xde\x10\xb8\x21\x29\x07\x66\x26\xb0\xd3\xe9\xa0\xa1\x8c\xb7\xb7\x65\xe3\x35\x02\xe4\x02\x93\xd4\xb7\x5f\xf9\xd7\x04\x87\x9a\xc7\xed\x80\xb1\x19\x0a\x3a\x56\xf9\x39\x22\x5c\x46\x65\x41\x0d\xd1\x89\x6f\x0f\x8f\xd3\x53\xe9\x22\x35\x8f\x6b\xac\xdf\x32\x49\xd3\xbc\xcf\x74\xa0\x9d\xbc\x4f\x8a\xa2\x0e\x3f\x45\xc5\xba\x90\xc4\x5d\xdf\xfa\x85\x49\x19\x78\x89\x5a\x2d\xd6\x6a\xe1\x56\x2b\x24\x07\x07\x50\xd2\x72\xd5\x9e\x8c\x6d\xfc\x5a\x4f\x2b\xb2\x15\x1a\x8d\x38\xcc\xa2\x48\x58\x9c\x48\xe7\x2f\x2a\xfe\xac\x4c\x90\x3a\x6b\x35\x1c\x38\x4a\xb2\xec\x2c\x19\x7d\x32\xdf\xb2\xc0\x3b\xed\x32\xde\x94\xd1\x4b\x3b\x40\x90\x40\x3a\x84\x49\xb4\xc4\x4a\x29\xe9\xb4\x0f\xcb\x04\xd1\xbe\xfa\x34\xad\x3b\x99\xba\xed\x08\x56\x1b\x88\x2b\x75\x5c\x4a\x49\x14\x6c\x0c\xeb\x6e\x00\x93\xa4\x69\x0d\x2a\xaa\x28\xc4\x45\x7d\x84\x44\x06\xa5\xae\x0c\x34\x26\xf5\xc1\xc5\xc9\xa6\x58\xb3\x42\x9e\xbe\xed\xec\x7d\xec\x6f\x10\xb9\xb7\x60\xf5\xe7\x3b\x86\xab\x30\x7d\x47\x46\x48\xda\x7e\x54\x33\x1a\xd6\xc7\x44\xc4\xc7\x7b\xfc\xb0\x5e\x21\x24\x30\x81\x34\xea\xd3\x56\x8b\x76\x28\x19\xa1\x43\x26\xab\x26\xf0\x07\x4a\x33\x94\x90\x90\x76\x46\xc9\x9c\x2f\x18\x8a\xa2\xfe\x9a\xfa\xb6\xa8\x68\xc4\x96\x16\xfb\xac\x61\x97\x78\x87\xad\x18\x64\xb4\x14\x03\x6b\x28\x19\xaa\xec\xfe\xfa\x4c\xd3\x31\x6e\xb5\xb0\xdf\xf1\xf1\xc7\xf7\xef\xdf\x7d\x38\x39\x3e\x7d\xf9\xe7\x97\x6f\x4f\x4e\xdf\xbd\x3f\x39\x7a\xf7\xf6\xb8\xaa\x6c\xd3\x51\xb7\xd9\x95\x8d\x8b\x69\xce\x07\xcd\xcb\xe8\xbb\xba\x10\xa4\xf8\x1c\xa8\xe0\xbd\x1c\xb2\xb8\xbb\x67\x4d\x04\x6a\x00\x01\xa3\x0c\x0b\x01\x48\x34\x2d\x36\xc5\x52\x40\x55\x2d\x64\x83\x7e\x4e\xd6\x3d\x54\x67\xb2\xfc\x6d\xea\x47\xfd\x90\xd7\x46\xa3\x0a\xc8\x3f\x40\x30\x37\x98\x60\xee\xd5\x82\xfb\x5d\xb8\xdf\x8d\x94\x7e\x3f\x9f\x27\x7c\x34\x55\xf9\xbc\x31\xa9\x27\xf9\x94\x91\x48\x2b\x99\x92\xfd\x5e\x51\x44\x61\x54\x53\xac\x43\x12\xef\xf7\xa2\x65\xc3\x94\x79\x89\xed\x01\x0e\x45\x91\xa6\x05\xe3\x10\x43\x12\x41\x16\x46\x85\xd4\xcc\xae\x5d\x24\x5e\xb7\x07\x97\x0e\x0c\x73\xfc\x1b\x2a\xd5\x25\xe6\x87\x3c\x8f\x55\xe6\x26\xad\xcd\x96\x33\x47\x9e\xa0\x6a\xcb\x94\x13\x4f\xca\xd0\xf9\x4a\xbd\x49\xe3\x65\x51\x61\x6c\xa5\x87\x25\x12\x95\x61\x8e\xdd\x7d\x4f\x07\x68\x18\x93\x01\x92\xee\xb9\x68\xa7\xe4\x6b\xe3\xfd\x7d\xf7\x13\xd2\x8e\xcb\x03\xcb\x5c\x37\x01\x86\x40\xd2\x03\x80\x49\x40\x57\x2b\xea\x7a\x44\x8a\x5a\xad\x90\x76\x0c\x93\x1c\xef\x77\x23\x48\x63\xa6\x3d\x5d\x45\x1d\x26\x78\xc2\x5c\xfd\x52\xc6\x2c\x76\x80\x52\x99\x64\x14\x24\xfa\xf2\x64\xb5\x62\x45\x24\x69\x75\xab\x65\x0d\x37\xbd\xfe\x64\x77\x72\x34\x7e\xfa\xa1\xf7\xa5\x62\x44\x63\x13\x1d\x17\x7a\x99\xb1\xb9\xd2\xb0\x76\x85\xd5\x1e\xd6\x6b\x7d\xa9\x98\x9e\xba\xf9\xa0\x77\x70\x07\x23\x76\x74\x1e\x87\x46\x8e\xc3\x44\x36\xa8\x9d\xda\x95\x37\x93\x2a\xae\x07\xc4\xea\xbe\x33\x50\x47\x79\x5e\x2a\xc1\x3c\x55\xb8\x34\xbb\x2f\x2f\x41\x21\xde\xb3\xf1\xd0\x51\xe4\xdc\x82\x2a\xa4\x7d\x77\x26\x7a\x13\xc7\x87\x0a\x2d\x0d\x43\x12\xd3\x92\xb9\x6f\xba\xe1\x74\xe4\x23\xe2\x62\x91\x27\x47\x11\x1f\x83\xac\x14\x45\x2c\xae\x68\x69\x8a\x78\xab\x48\x36\xac\x62\xa1\xae\x6f\xcc\x11\x1a\xfa\x3c\x65\xc2\x26\x79\xa7\xbc\x50\x18\x74\x87\x1b\x2e\x9e\xca\x2b\x26\x59\xd7\x07\x45\x87\xaa\x1f\xfa\x44\x57\x34\x58\x1d\xd8\xd3\x84\xa4\x19\xfa\x20\x8b\x47\xfe\xed\x54\x53\x43\x0b\xb2\x6b\x53\xee\x97\x5e\x41\x8f\x5f\xd0\x8f\x29\x0a\x48\xe3\x24\xc4\x9d\xb9\x11\xc5\x60\x6d\x19\x07\x6c\xb8\x59\xa4\xf5\xee\x24\xa0\x03\x6e\xc9\x0e\x16\x11\xac\x74\xe0\x0e\x0d\xc0\x01\x19\xc2\x52\x24\x7c\x77\x41\x0c\x6e\x18\x0f\xf9\x94\x6d\xa8\x1e\x41\x27\x2f\x82\x9e\x45\x71\x43\x3c\xe2\x79\x32\x41\x2a\xe6\x51\x69\xb7\x6f\x93\x76\x65\x78\x4a\x73\x80\xbb\xd9\xaf\x38\x0e\x79\xe3\x7e\x0d\x41\x39\x38\x15\x02\x32\x82\xac\xb2\x65\x5d\x96\x7c\xc3\xae\x15\xe7\x40\xf3\xae\x35\xb1\x0b\xa9\xde\xad\x38\x26\x3b\xef\x56\xbc\x76\xb7\xe2\x35\xbb\x15\x57\x77\x2b\xf6\x76\x2b\xae\xef\x56\x5a\xd9\xad\x72\xbc\x47\xb5\x8b\xd6\xc9\x02\xa7\xaf\x28\xd3\x77\xac\xa2\x95\x30\x5a\xca\x19\xcb\x26\xc5\xb4\x13\xb3\x67\x35\x7b\xae\x66\xae\x5c\xf8\x2d\x71\xda\x2f\x13\x8f\xd2\x22\x2a\x3c\x61\x53\x49\x54\xaa\xab\x24\x97\xc6\xbf\xcb\x02\x72\x58\xad\xa7\xc3\xb7\xa0\xce\xdf\x29\x26\x21\x00\x51\x61\x35\x47\xb5\x3e\x99\x3f\x8e\x7c\x34\x45\x02\x63\x4e\x44\x0b\xea\x22\x3b\x8c\x20\x00\x95\x5b\x6a\x35\x27\x2f\xcd\x6b\x46\xb1\x2a\xa1\x3b\xa8\x1d\xfa\x91\x84\x80\x39\xdb\x2c\x29\x31\x23\x8f\x07\x7c\x08\xb3\xf8\x36\x44\x00\x8e\xe2\x65\x01\x5d\x1e\x23\x5b\xc3\x63\x8c\x04\x8f\x91\x69\x1e\x63\xe4\xf3\x18\x23\x0f\xdf\xaa\x3c\xc6\x68\x2d\x8f\x31\x5a\xad\x46\x55\x1e\x63\xe4\xf3\x18\xa3\x38\xdf\x85\xc7\xf0\x34\x0f\x21\x85\x09\x44\xd1\x6a\x85\x8a\x08\x8e\x22\xb8\x70\x78\x8c\x51\x85\x03\x18\x69\x1e\xc3\x4b\x3f\x1c\xd5\xf1\x7d\x61\x79\x8c\xd1\x66\x1e\xa3\xda\x43\xf3\x96\x15\x43\x1c\x89\xe9\x29\x1e\x83\xc4\x23\xc8\x94\x41\x98\xc8\xc9\x61\x06\x17\x70\xe4\x10\x4d\xbc\x91\x68\x1a\xef\xb8\x0f\xab\x84\xe9\xba\xa4\x53\x10\x24\xd1\xbf\x17\xda\xde\x5c\x08\xb2\x75\xf4\x47\x5e\x93\x3b\x58\xc7\xd6\xd2\x1f\xb6\x86\xfe\xb0\x2a\xfd\x61\xde\x7a\xb0\xfa\x7a\x10\x87\xfe\xd8\xc1\x2e\xee\xd7\x36\xc7\xf6\x3b\xfa\x0f\x07\xff\x3f\x81\x83\x4f\x63\xb0\x20\xaa\x8d\xb4\x7c\x65\xf4\x2a\xc9\xf9\x0f\x94\x72\x2d\xee\x4f\x63\x19\x9b\x06\xbd\xc0\xa9\x8a\x56\x08\x64\xdd\xf1\x3a\x6e\x02\x6e\x11\x0a\xaa\xbc\x47\xa9\x25\x8f\x6a\x82\x82\xaa\xa1\x03\x3a\x35\xb0\x1d\x2e\xab\x91\x69\x3b\x2f\x41\x32\x4e\x14\x9f\x45\xe5\x81\x54\x66\xc9\x79\x30\x00\x93\x4a\x7a\xa9\xa7\xcf\x75\xce\x42\xe7\x98\xb3\x69\x30\x2c\xd3\x4e\x35\x24\x55\x40\x1e\x00\x97\x39\x9a\x27\x2c\x91\x71\x95\x82\x55\x00\xe0\x9c\x49\x87\xfe\x62\xa3\x31\x34\xcf\x92\x11\x32\x1c\xaa\x69\xa2\xe1\x6c\x54\x9a\x0f\x6d\x35\xc8\x16\xc4\x9e\x9f\xef\x88\x80\x52\x32\xe6\x88\x7d\x90\x76\xcf\x00\x2a\x33\x21\xa9\xc6\x53\x86\x33\xb2\x9d\xa8\x68\x62\x48\xf4\xa1\x7c\xaa\x43\x85\xa1\x97\x97\x38\xe7\x98\x4c\x64\x15\xa3\xa7\x51\x2a\x1a\xa4\x57\x68\xe2\x1a\xc5\x89\xed\x93\xd3\xec\x1c\x7d\x70\xbc\xec\x87\x40\x6d\xd2\x3e\x22\xe7\x98\x51\xa2\x96\x6f\x0f\x75\x2c\xf0\x5b\xad\x01\xb0\x70\x01\x10\x68\x98\x48\xdf\xd9\x73\x65\xb6\x6d\x29\x07\xb7\xf3\xc6\xf9\xcb\xd9\x5c\x20\x72\xd9\xd0\x80\x0f\xa3\xd5\x4a\xf1\x19\x3e\xe4\x05\xd5\xaa\x14\x2c\xf4\x6c\xd5\x42\x77\x28\x09\xa7\x2a\xa1\x01\xe0\x51\x21\xa3\x28\xcb\x50\x5b\x2f\x54\xbb\xb9\xb9\x9a\x53\x6c\x6b\xa5\xbf\x8e\x9d\x0f\x64\x8d\xf9\x7a\x8e\x90\x34\xe6\xea\x79\xef\xa9\xeb\x29\x54\xb6\xd6\x6a\x85\xce\x57\xcc\x23\x68\x8a\xe8\x06\xcd\xe5\x96\x2a\xa9\x13\x63\x56\x96\xd3\x4d\x9b\x72\x44\x96\xd3\x89\x31\x11\x58\x31\x45\x0c\xf3\x57\x8c\xce\xde\x33\x74\x8e\xe9\xc2\x99\xa9\x6c\x51\xa6\xed\xf1\x56\x2b\xdc\x3a\xbc\xf2\x77\xc3\x40\x9d\xf1\x71\xf3\x2b\x8a\x0a\xc9\x87\x56\x60\x3b\xc6\x24\x95\xc0\xff\xe1\xea\x28\x0d\x51\x07\xa7\xf2\x19\xa0\x65\x82\x5d\x5e\xd2\xfa\x10\x17\x9c\xc5\xa0\xd3\xe9\x38\x99\x43\x88\x55\x5f\x6a\x0e\x56\xc3\x68\x52\xe4\x8b\x5e\x82\x2e\x79\xcc\xe5\x1f\x85\x10\xcd\x20\xd1\xe6\x9f\x4d\x78\x01\x89\x7c\x08\x39\x42\x21\x83\x3d\x88\x14\x09\x77\xd8\xdf\x5c\x00\xba\x3e\x72\x75\x1a\xb5\x7b\xd1\xa0\x3b\xdc\xb3\x0b\xa8\x06\xc6\x20\x53\x03\x43\x9b\xc6\xb4\x71\x50\x6e\xff\x15\xb8\x40\x34\x2c\x34\x93\xbe\x19\xf2\x11\x5c\x8a\x51\xf4\x19\x34\x23\xeb\x93\x22\xe6\x72\xb4\xac\x1c\x2d\x89\xa0\x40\x2c\xa2\x86\x2c\x84\x8a\x32\x4f\x41\x56\x9e\x4e\x5a\xd4\xac\x2e\xd2\x1e\x36\xe0\xc3\xee\x6a\xf6\xfc\x29\x60\x29\x7a\x9d\xe3\x1c\x9f\x65\x48\x0e\x31\x0f\xd5\xd8\x91\x0b\x55\xc8\x63\x74\x68\x1e\x1e\xf7\xbb\x90\xc5\x83\xe1\xde\x98\xb2\xf0\x3b\xde\x6e\x7f\xa7\x2a\x90\x58\x50\x04\x81\x51\xc4\x6c\x85\x68\xc9\x3a\x0b\x92\x4f\xf1\x98\x87\x24\xda\x3b\x63\x28\xf9\x54\xb8\x49\xe6\xa1\x29\x93\xc3\xc8\x65\x24\xc6\xa6\x51\x78\x03\x84\x3c\xde\x57\x43\x10\xb8\xc9\x04\x3a\x0e\x86\x25\x1a\x1a\x22\x87\xe2\xa7\x4b\x3c\x0e\xa5\x47\x2f\xc2\x23\x6c\xbb\x45\xd1\x1e\xca\x72\x14\xc8\x4c\xb3\x65\x96\x62\x2b\xf2\x78\xbf\xa7\x1b\x36\x92\x5c\xa4\xc1\xcb\x04\x3a\xe1\x56\x2b\x0c\x51\x4d\x5a\x44\x51\xe4\xec\x57\xec\xee\x57\xe6\xf4\x5a\xc8\x5e\xb9\xa0\xad\xe5\x04\x6c\x3f\x90\x75\xf4\xa6\x2d\x22\x28\xa5\xec\x51\xc2\x25\x28\xdd\xa7\x7d\xc8\x64\xf0\x48\x1c\x91\x51\x51\x3e\x1b\x76\xe1\xe5\x42\x12\x72\xb3\x58\xe5\xed\xa1\x59\xca\xef\xd8\xf7\xe4\x3b\x76\x70\xa0\x2a\xe3\x18\x0d\x98\x40\x1c\xae\x0e\x94\x90\xab\x21\xe9\x84\x08\xb2\x83\xde\xf7\xa4\xd5\xb2\xc9\xe5\x44\xed\x4a\xf2\x52\x40\xde\x51\xbc\x35\x47\xc7\x78\xbc\xf1\xec\x70\x0f\xde\x30\xb2\xf7\x20\x1a\x49\x0d\x10\xf6\xd2\x43\x99\xa2\x0a\x0b\xc6\xea\x8c\x52\xae\x2a\xa1\x48\x49\xf4\xf6\xb2\x42\xce\xca\xd0\x02\x7b\xac\xa9\xe4\x17\xc6\xe6\x5c\x2c\xc8\x96\xb3\x7c\x59\xd4\x76\xf8\xb2\x41\x37\xa0\x02\x4f\x89\xc3\x97\x77\x70\x1a\xc7\x31\x92\xcf\xbb\x9b\x87\x2a\x50\x77\x3f\xd5\xaf\xb3\xed\x3d\x90\x3f\xfe\x29\x4a\x52\x71\x32\x76\x46\x53\x9c\xa5\x6f\x69\x8a\x72\xbb\xce\x34\xee\x7e\x47\xbf\x67\x66\x9d\xa9\x59\x63\x14\xb3\x01\x1d\xee\x01\xa5\x18\x93\xee\x04\x08\x4d\xe5\x4b\xa4\x0e\xa7\xaf\xe9\x05\x62\xcf\x13\xc1\xc4\x8b\x65\x56\xd4\xec\xb9\x68\x5d\x80\x41\xed\x72\x7f\x0c\x95\xeb\x27\xd5\x6c\xa4\x55\xc4\xd5\x62\x27\xe8\x92\x8b\x61\x4a\xdb\x62\x41\x60\x11\x49\x55\xeb\x58\x50\x37\x37\x81\x28\xcd\xc5\xc8\x57\x11\x3a\xac\xe6\x80\xdf\x5a\x7b\x59\x6d\xdd\x70\xab\xb7\x57\x8c\xe6\xd5\xa6\x1d\xc3\x14\x72\xdb\xc6\x3d\x5d\xe8\xf8\xba\x62\xfd\x3d\xbe\x14\x90\x92\x05\x5f\x23\x5b\x54\x76\x59\xb4\x74\xdf\x4f\x34\xd8\x2e\xce\x05\x6a\xb6\x55\x08\xc9\xf6\x05\xe6\xd3\xb6\xc2\x29\xf7\x9d\x9c\x57\x66\xb6\xc8\x38\x9e\x67\xc8\x2d\xdc\x74\xf1\x76\xed\x86\xbd\xf6\xb6\x35\x62\x9e\xdd\xe5\x3b\x35\x57\x33\xa3\xfe\x2c\x16\x38\xa4\xc1\x02\x27\x4b\xae\xe8\x82\xf7\xad\x61\x33\x94\x63\x54\x51\x6b\xed\x73\x41\xf5\x5e\xb1\x11\xca\x00\xaa\xab\xa7\xbc\xbf\x54\x39\xef\x98\x0a\xc1\xef\xaa\x59\x91\xa1\x81\x48\x9c\x64\xa7\xa7\x38\x3f\x5e\x4c\x26\x28\x17\x15\x4f\x4f\x15\xc7\xa6\xe8\x37\x25\xba\x36\xeb\x9c\x9e\xca\xf9\x9c\x9e\x42\xae\x09\x38\x25\x4a\x2e\x56\x7e\x0e\x7d\x6b\x88\x06\x77\x11\xb7\x5b\xe0\x6b\x20\xcc\xf5\xd6\xba\xa9\x39\x6d\xaf\x31\x61\x74\x31\x6f\xcb\xdf\xf7\x86\x12\x6a\x77\xda\xa5\xb6\x88\xc1\x93\x89\x5a\x76\x00\x35\x8e\x94\xef\x1b\x64\xc4\x56\xc4\x4a\xac\x79\xa3\x12\x60\xae\x96\x15\xa5\xca\x64\xc5\xb6\x5a\x41\x1e\x17\x78\xb6\x4a\x9b\xea\xe0\xc9\xbb\x61\x20\x80\x2a\x52\xac\x0a\xd1\x99\x1a\x9a\x59\x31\xbb\xf1\x6e\x09\x0a\xa8\xba\x50\x3e\x80\xfa\x6a\xe6\xfa\x56\x20\x0d\x81\xce\xec\x0c\x86\xc0\x7b\x8b\xe1\xf0\x57\x13\xc4\x6d\xb9\x32\x8c\x93\x60\x91\xf9\x14\x11\xfd\x47\x60\xb9\x6a\xfb\x59\x88\xa2\x0e\xa7\xca\xe5\x50\x14\xf5\x9b\x52\x6d\xa2\x34\xf9\xcf\xa7\x74\x91\xa5\xc7\x53\x7a\xa1\xf6\x81\x82\xa3\xab\xa5\xde\x2f\x07\x92\xdb\x62\x3f\x4f\x11\x01\xd1\x6a\xb5\x3e\x4f\xed\x19\x98\xa4\x69\xbd\x61\xc5\x7c\xad\xef\xb9\xd5\x0a\xc1\x19\xe5\x9c\xce\x04\xe3\xd0\xd4\xc7\x7b\x7d\xab\x0a\xa2\x43\xcd\x24\xca\x52\x67\x0b\x9c\xa5\xe5\x56\x7f\x45\xd9\x09\x62\x33\x21\x6a\xf5\xb9\x65\x90\xb7\x94\x14\x83\x2e\x29\x8c\x58\xf1\x67\xc4\x94\xf4\xb4\xf7\x0a\x8e\x1f\x8e\xff\xfc\xde\x28\x52\xc2\xda\x9a\x49\x98\x83\x28\x52\xeb\xc4\x94\xa4\xd0\x75\x9d\x2b\x19\xc1\x64\xcf\x61\x7a\xd4\x64\x65\xdf\x4e\xec\xae\xc3\x86\x0e\x15\xbc\x74\xf3\x3c\x7e\x1a\x72\xb3\xd0\x52\xca\xe0\x0e\x32\x68\x61\xb3\x61\x3d\x44\x0b\xfd\x50\x4b\xb7\x9a\x70\x1a\x24\x61\x51\xf9\x76\xb2\x56\x55\xc8\x1d\x51\x11\x15\xb0\x4e\x89\x05\xf9\x40\xad\x56\x9d\xf8\x56\xc8\x2e\x72\xc9\x2e\x64\x0d\x84\x57\x74\x51\x40\x43\xcf\x0d\x8d\x27\x16\x2c\x5a\x10\x91\xd0\x7a\x85\x51\x96\x1e\x6a\x11\x46\xa6\x6b\xca\x11\x5a\xfd\x57\xa8\xd9\x70\xa7\x82\x00\x40\xbf\xa9\x92\x04\x4e\xd8\x85\x4c\x43\xc5\xd8\xc5\x85\x68\xb5\x1a\x0c\xe5\xb3\xc1\x02\xae\xc5\x24\x63\x6f\x59\x85\x80\xa0\x1c\x76\xd2\x7d\x04\xb9\x10\xd1\x9b\x90\xf2\x75\x72\x86\x64\x20\x87\x5a\x27\x26\xc7\xe3\xfe\x2b\x65\x0e\x9b\x12\x85\x6c\xf2\xcb\xb3\x34\x0d\xc0\x83\x25\x2a\x40\xa7\xd3\xf9\xe5\xb3\x1e\x6b\x0d\xd4\xf6\x73\x9d\x73\xf5\xae\xee\xf3\xbd\xc3\xb5\xce\xb3\x6d\x46\xc5\x77\x75\xf0\xdf\x17\x03\xee\x3d\x2a\x6a\x76\x0c\xc2\xdf\x3f\xfb\xf8\xf7\xbf\xf0\x17\xcd\x8e\x41\x8e\xf5\x09\x0b\x0c\x92\x00\x8e\xd8\x0c\x40\xcf\x63\x88\x54\x94\xeb\x2d\x68\xc1\x2d\x33\xb2\x8c\x5e\x3c\xcf\x50\xc2\xe4\x17\xc3\x89\xb2\xfc\x38\x43\xe9\x0f\x57\x26\xe9\x88\x48\xd9\xda\x7c\xca\x1d\xe4\x7d\x64\xa6\xb4\xda\x32\x72\x44\x6a\x2c\x7f\x18\x25\xd9\x68\x91\xb9\xc7\x8e\x48\x14\x52\x87\xfa\x41\x73\xf4\x8e\xd8\x39\xfc\x41\x8f\xf9\x47\x3c\x99\x66\x78\x32\xe5\x28\xad\x38\x3c\x91\x9f\x98\xa9\x3f\x3a\x82\xba\xf8\xcd\xe8\x3c\xa5\x17\xe4\xb9\x69\x19\x5d\x72\x96\x88\x1f\x92\x4f\xf3\xe6\x3c\x35\x8d\xbf\x23\x3f\x52\x69\x65\x03\xfe\x30\xa5\x0c\xff\x46\x09\x4f\x32\x77\x9c\x5a\xb0\xcb\xae\xde\xcd\x11\x51\x1d\x65\x34\x49\x31\x99\xbc\x41\x79\x9e\x4c\x04\x83\xf8\x07\x49\xf1\x4e\x18\x9e\x4c\x10\xfb\x19\xa7\x7c\x2a\x12\x09\x55\x6c\x56\xee\x14\xa4\xe4\x87\x6c\xc1\xd4\xaf\xe7\x62\xe2\xea\xe7\x2b\x3a\x5a\xe4\xea\xe7\x11\x99\x2f\xb8\xfa\xf9\x13\xba\x12\xf3\x51\x1f\xa2\x7b\xf9\xab\x61\x05\xa5\x12\x6f\x4a\xb3\x54\x4d\xc4\xf9\xf4\x8b\x31\x69\x60\x7c\x3c\x62\x34\xcb\x94\xbb\x18\xe5\x57\xe2\xd9\xfb\xa3\xba\xf7\x18\x08\xfe\x90\xcb\x92\x27\x54\xfe\x2e\x09\x7e\xf9\xe9\xcc\xcc\x4b\xf0\xba\x55\x39\xef\xfd\x31\xaa\xfd\x86\x52\xf7\xf7\x11\x47\x33\xaf\x26\x4f\xce\xf4\x83\x24\xf0\x07\xae\xa0\x6b\x17\x57\x7f\x1f\xa5\xce\xc7\x07\x9a\xc9\xb1\x08\x59\xfe\xd9\x14\x25\xa9\xe6\x73\x45\xda\x39\x62\x1c\x8f\xbc\xb5\x6d\x25\x9c\xb3\x7c\x9d\x9b\x9c\xc7\xd2\x7b\x4d\x17\x0e\x1e\x7f\x65\x3d\xd9\x74\xe1\x00\xac\x63\x77\xc1\x50\xfb\xd3\x69\x70\xab\xd3\xe0\xc4\xe6\x11\x04\x41\x20\x32\xbe\x81\xa2\x65\xe9\x94\xa7\xf7\x35\xfc\xf2\xb1\x72\x7f\x73\x7f\xdb\x55\x3a\xe2\x69\xea\xe8\x3f\x1b\x59\x6f\xe4\x59\x89\x45\x5b\xf7\xb4\xba\x08\xbe\xfd\xfe\xfe\xc7\x6f\xf5\xf2\x97\x16\xd9\xfe\x89\xa9\x80\x5f\xfe\xb6\x94\x41\x6f\xf6\x2f\x87\x72\x67\x7e\xa5\xfe\x7c\xad\xfe\x7c\xa3\xfe\x7c\xab\xfe\xf4\xba\xea\xaf\xa0\x0b\x6b\x36\xd2\x50\x97\xec\xe9\xbf\x8f\xf4\xdf\xc7\xfa\xef\x13\xfd\x57\xf7\xd6\xd3\xdd\xf5\x74\x7f\x3d\xdd\x61\x4f\xf7\xf8\x48\xf7\xf8\x48\xb7\xf7\x48\xb7\xf7\x48\xb7\xf7\x48\xb7\xf7\x48\xb7\xf7\xe8\xab\x72\x84\x06\x8f\xf5\x90\x1e\xe9\x2e\x1e\xc9\x2e\x14\xa1\x33\xbe\xc1\xba\x82\x28\x7a\x52\x09\xd0\xc4\x4d\x55\xd1\xa3\x79\xac\x47\xf3\x58\x8f\xe6\xb1\x1e\xcd\xe3\xc7\x65\xaf\x9e\x28\xa7\xbb\x7e\xac\x47\xf9\x58\x8f\xf2\xb1\x1e\xe5\x63\x3d\xa4\xc7\x7a\xd6\x8f\x75\x3f\x4f\xba\xeb\x86\xe8\x0b\x98\xde\x20\x45\xe7\x3e\x02\xeb\xde\x9f\xe8\xd1\x3e\xd1\xa3\x7d\xa2\x47\xfb\x44\x8f\xea\x89\x1e\xd5\x13\x3d\xaa\x27\x7a\x54\x4f\xbe\x29\x1b\xae\x21\x9e\x69\x5b\x8f\xf8\x4b\x0d\x99\x2f\x75\x5f\x5f\x3e\x1a\x6e\xf5\x6b\xf6\x08\x82\xbf\xfd\x4d\xa2\x9f\x3a\x81\x1e\x19\xff\x69\x70\x00\xaa\x52\x90\x3d\x6d\x76\xf3\xde\x26\x4f\x1b\xf1\x9f\xc8\xec\xc1\xa6\x73\x6d\x9d\x2e\x08\xe8\x81\xfb\xbc\xa5\x75\xed\x06\xb5\x2b\x39\x59\xca\xcc\x60\x07\x17\x71\xfe\x88\xbe\x81\x4f\x6a\x0d\x6e\x6a\xce\x64\x8b\xea\xd5\x5c\x51\xbb\xd8\x58\xbf\xb7\xdd\x25\xdc\xc8\xa1\x28\x89\x39\x00\xf1\x18\x40\x90\x21\xbe\xd1\x41\xdc\xdd\x48\x1f\xd6\x75\xdc\xcd\x94\xed\xb7\x14\xfd\xfe\x99\x44\x9f\x1f\xa6\x27\x2f\xde\x3c\xbe\x4c\x1a\x45\x9f\x1a\xef\x26\x70\xfb\x4b\xb5\x43\xd1\xa5\xc6\x5d\x07\x0d\xd6\x2f\xb8\x11\x7a\x3f\xfb\xca\xd6\xa0\x7d\xfd\xa5\xde\x7a\x97\xe2\xab\x09\xfe\x30\xc9\xf0\x6c\x86\x58\x59\xed\x3f\x8f\x97\xfe\x63\xfa\xb8\xd6\x67\x58\xbe\x79\x3f\x5e\xd1\xb3\x1f\x3e\xf2\xab\x35\xaa\x08\x7b\x4a\xe4\x56\x0c\xa8\xb0\x60\xb7\x96\x58\x76\x94\x8c\xee\x40\xb0\xb9\x99\x3c\x73\x43\x41\xe6\x96\x42\x8b\xe2\x65\x77\x56\x44\x54\xd3\xbc\xb1\xec\x20\xd1\x94\x62\xcc\x3f\x46\x5e\x61\xe8\xd7\x05\x66\x5a\x72\xb8\x4b\xd9\xe5\x26\x12\x8a\x7a\x23\x7e\x35\x57\x22\x86\xba\xbd\x6f\x90\x55\x1a\xe4\x98\xb5\x72\xcb\x7a\x75\x85\xa3\xd5\xab\x9d\x7e\xdf\xc0\xca\x9d\x9b\xd2\x29\x3c\xd1\x3a\x85\xff\xec\xc4\x7f\xc3\x9d\xf8\xcf\xaf\x5b\xf8\x57\xdc\xab\x37\xd8\x9f\xe5\x06\xb7\x0e\xb6\x95\x48\xa8\x25\xc0\x6d\xea\x04\x5f\x24\xeb\x75\x8d\x2c\x6b\x24\xda\x4a\x7e\xaf\x14\x46\xf5\x76\xf8\xc1\xdf\x4d\x56\x1f\xf9\x0f\x55\x3c\xf8\x5a\x86\x52\x75\x20\xc6\xad\x5e\x92\x2a\x04\x1e\xfa\x1a\x85\x32\xdb\x60\xf2\xb0\x9a\x21\xb1\x7a\xb8\x59\x01\x71\x33\x45\xc3\x6d\x55\x04\x3d\xc1\x7e\xd7\x45\x06\x6b\xe9\xa4\x31\x29\x00\x46\x65\x30\xac\xaa\x37\xfc\xb5\xfe\xb2\x37\x84\xcd\xe6\x3c\x0f\x75\x53\x60\xe8\xb8\x4e\xaf\xe2\xe1\x97\x5d\x25\x9d\x2b\x35\x84\xfa\xeb\x28\x68\x8c\x45\xc5\x49\x72\x76\xa4\xaa\xed\xaa\xaa\xb0\xc2\xfb\x97\x5f\x6a\xa4\xd4\x6b\xbc\x59\xfa\x86\x8f\xea\xf2\xf9\x06\xc1\x4c\xec\x6d\x47\x72\xd9\x51\x40\xdb\x2a\x23\x59\xb1\x2b\x43\x3c\xc8\xca\x27\xfb\xe6\x6d\x7e\xfd\xad\xbe\xff\x9d\x84\x21\x5d\xfb\x7c\x5f\x3e\x6b\xaf\xc0\x35\xac\x87\x3f\x2a\xdf\xb9\x57\x09\x4e\xab\x55\xe6\x79\xd4\xf1\x10\xb4\x7b\xa0\xef\x54\xd4\x8b\xbd\x5a\x81\x2e\x28\xca\x9d\xa1\xc4\x3a\x3c\x0e\xcb\xa2\xea\x20\x68\xb5\xf6\x7b\x5e\xd7\x2a\x59\x59\x42\x18\x8f\x1d\xca\xd1\xfa\x58\xec\x4c\x79\xa8\x84\xf6\x45\xbb\xdc\xad\x8e\x1d\x8a\x6e\x42\x26\xbb\x83\xd6\x49\xda\x42\x62\x5d\x6b\x7a\x73\xd7\x1d\x4a\xe9\x36\x74\x7e\xc3\x98\xdd\x9a\x87\x21\xef\xe4\x9c\xce\x85\xd0\x93\x4c\xd4\x43\x9c\x08\xee\xf7\xa2\x7e\xef\xb1\x74\xa7\xf6\x09\x5d\x3d\xa7\xa9\x34\xa8\xc0\xb9\x98\x6d\x73\x0d\x27\xb2\xd8\xb4\x64\x2d\x0e\x51\xc7\x9c\x26\xad\x56\xbb\xb7\xaf\x1e\x81\xa8\x04\x6b\xb2\xef\xd5\x88\x0e\x43\xd4\xd1\x56\x30\x1d\xc9\xbc\x84\x5c\x8d\xc7\x4d\x9f\x52\x91\xe1\x55\x84\x0d\xc5\x9c\xea\xf6\x25\x64\x23\xc1\x77\x2d\xf8\xc4\xf4\xf4\x10\x57\xab\xc1\x30\xd2\x12\x70\x37\x82\x24\x6e\xf7\xac\xf5\x31\x8e\xbb\xdf\xe1\xd2\xfa\x18\x1f\x1c\x44\x78\x1c\xda\x27\x47\xbf\x2e\x92\x2c\x64\x03\x3c\x84\x28\x8a\x96\x24\xc6\xe6\x69\x80\x16\x93\x9f\xb6\x7b\x87\xcc\x3c\x5f\x20\xb0\x17\xf5\xad\x71\x3c\x64\x85\xb7\xde\xd2\xc4\xdf\xbc\xb6\xb0\xe6\xc6\xbf\x2e\x10\xbb\x52\x13\xa0\x2c\x04\xff\xab\x81\x68\xea\x8d\x51\x12\x4f\x2c\x5a\x6c\x83\x03\xd4\x59\x10\xfc\xeb\x02\x1d\xa5\xd2\x57\x35\x57\xf8\x15\x4a\x43\xc3\xba\xbb\x02\xc5\x02\x0d\xd8\x76\x5f\x07\x74\x4d\xe5\x08\x52\xd7\xd3\x41\xd2\x54\x50\xf3\x62\xbb\xb8\x54\x58\x5b\x7b\x97\x7e\x2c\x77\x27\xd6\xe6\x06\x3d\x99\xfa\x95\xbe\xa8\xab\x83\xca\xe0\xa6\x78\x15\x39\xcc\x1a\x7c\xde\x5e\x8b\x00\xdb\xb3\xeb\xce\x94\x55\xe6\x41\xf5\x5e\xf5\xbd\xee\xbd\xbf\x13\x4e\xff\xa3\x2c\xfb\x9f\xa1\x2c\x9b\x6e\x56\x96\xbd\x9f\x1e\x7c\xb9\xa0\x69\xbe\x56\x59\x06\x20\xc0\xe9\x65\x29\xb1\x48\xb9\x12\xe7\xfc\x8c\x5e\xea\x0b\x4c\x47\x6b\xe0\x09\x7b\x46\x30\x9c\x57\x85\x20\x5f\x94\x72\x4d\x80\xac\xd0\xbb\x4e\x3a\x5a\x67\x11\xd1\xeb\x41\xb0\xc8\x24\xb3\xf7\x15\xec\xed\xc0\xe1\x6a\xf1\xb2\xad\x38\xdc\xc7\x70\x00\x0c\xb1\x06\xe6\xaa\xe8\x09\xec\x36\x5a\xb0\x55\xdb\x90\xbd\x7e\xad\xe4\x96\x27\x70\xf0\xf8\x1b\x29\x3b\x95\xb7\x8b\x48\x0b\xc6\xf6\x7a\x4f\xf4\xa6\x4e\x79\x57\x04\x52\x55\x05\x47\x0d\x38\x5d\x8c\xa6\x39\x4f\x64\xdc\x3a\xc3\x04\xcb\xd3\xf8\xdd\xbc\x2a\x39\x39\xd5\x66\x74\x91\x23\x4d\x76\xb7\xd4\x92\xc2\x56\xf5\x3a\xef\x5b\x87\xb3\xff\xa6\xf6\x5b\x8d\xdb\x8a\xb0\x15\x63\x92\x9b\x5c\xf6\x49\xc0\x75\x21\xc8\xb0\xfc\x25\x6f\x45\x76\x5c\x38\x29\x99\xa8\xd1\x3d\x31\xf2\xa6\x90\x33\x8d\x46\x45\x70\xec\xdb\x5b\x69\xb7\xcb\x0a\x7a\x16\xc3\x75\xc0\xf9\xca\x01\x82\xd3\xcd\xee\xa6\x34\xce\x65\x62\x17\x82\x7c\x9e\xc8\xc6\x7b\x4f\x20\x60\x4a\xdd\x75\xb6\xe0\x9c\xda\xc4\x84\xe1\xa4\x9d\x69\xd5\x96\x7a\x3f\x15\x98\x40\x28\xaa\xc8\x16\xec\x54\x75\xda\x67\x9c\x68\xe8\x82\x34\xe1\x49\xdb\x2c\x60\xdb\x78\x52\x36\xf1\xaf\x9c\x59\x07\xf6\xbf\xff\xef\xff\x75\x3e\x65\x3b\x8f\xb7\x5f\x7b\x2a\x80\xd9\x75\x79\x74\xb3\x8b\xe0\xea\x55\xf0\x97\x6e\x7b\x03\x71\x22\x2b\x5a\x51\x55\xe8\x57\xd4\x0f\xbd\xdb\x5f\x00\x5b\x29\xb2\xd7\xf5\xa4\xc8\xdd\xef\x80\x77\x80\x9d\x14\x3a\xd7\xc4\x29\x7b\xe2\x6c\xc6\xc7\x7a\x7e\x8e\x4d\x84\xb9\x86\xff\x76\xeb\x96\xdc\x7a\xf1\xee\x63\x66\x33\x86\xb9\xf4\xdc\xe0\x4d\x4f\x2b\x8b\x76\xc2\x90\x9d\xd0\xe6\xdb\x6b\x0d\x5f\x0e\xa4\x07\x81\xe4\xbd\xc1\x26\xea\xdd\xcc\xae\xeb\x2a\x20\x59\x70\x2a\xf8\xba\x0c\xc9\x87\x35\x74\x3c\xf6\x73\x18\xd3\x76\xac\x95\x8c\x64\x8e\xb9\x3c\xe1\xcb\xbc\xde\x57\x02\x96\x28\xcb\x46\x53\x34\xfa\x04\xa0\xd4\x1b\x6c\x3d\xa0\xd6\x49\x13\x6b\x8f\xa9\xde\x57\xf0\x11\x2c\xa9\xb3\x38\x5b\x4f\xec\xc5\xb2\x18\x83\x24\x24\x23\x4a\x38\x13\x87\xba\x56\xf8\xa9\xbc\x2f\xab\xd6\x22\x6f\x74\xaf\x52\x28\x3a\xe6\x57\x19\x2a\xdb\xf1\x8e\xf1\xd2\x62\xe7\xea\x0c\xb9\x5a\x4e\x5b\xbc\x54\x6e\x37\x52\x4d\x59\xa6\x64\x1d\x94\xfe\x51\x41\xf4\x89\x31\x9b\x01\xfe\xf1\x36\xd6\xb2\x8b\xd4\x51\x36\x9d\x7f\x67\x92\xe1\x50\xca\xcb\xa6\x7c\xb5\xd2\x15\x25\x9d\x52\x49\x37\x1f\xa8\x9f\xac\x14\xb3\x46\xe1\x57\xa9\xd4\x73\xad\x55\x38\x65\x0e\x1c\xf3\xda\xe9\xbb\x0b\x25\xf5\xca\xec\xb8\x3d\xc5\xfe\x58\xe4\x6d\x3c\xd2\x67\x49\x53\x5f\x1b\x94\x59\x82\x92\xa6\x58\x1c\x0f\x39\x12\xfc\x07\x20\x54\x9a\x98\x48\x0f\x20\xd2\xbe\xc4\xb5\x3c\x59\x90\x0c\x49\x85\xb4\xa8\xb2\xd0\xee\x50\x40\x9b\xb3\x64\xf4\xa9\x9d\x48\x8b\x2a\x08\x50\x22\xd6\xf2\xae\xd4\x62\x46\x2a\x33\xea\x31\x38\x8e\x95\x53\xef\x56\x4b\xfd\xed\x90\xe4\x1c\x4f\x12\x4e\xd9\x61\x35\xa1\xb3\xc8\x11\x7b\x36\x91\x0f\xc8\x00\x9c\xc7\x63\xab\x1e\x01\x6f\x8e\x8f\x5e\x06\x20\x7a\xda\xee\xad\x56\x4e\xf2\x09\xc3\x29\x22\xfc\xa1\xcc\x91\x9a\xb8\xd9\x35\x9c\x67\xfa\xdf\xb4\xaa\xa0\xab\x7c\xe7\x95\xef\xec\x0e\x9c\x6f\x8e\xb4\xdf\x1a\x89\xfb\xaf\xa8\x58\x34\x23\xa1\x98\xac\xd3\x2c\xc9\xf9\x91\xe2\x47\xa1\xab\xd4\x13\x60\xd7\xea\x28\xcf\x1f\x20\xba\xe4\x6f\x50\x92\x2f\x98\xef\xc3\x73\xf1\x4f\xed\xc3\x73\x2d\x85\x0b\xa5\xea\x67\xad\xf7\x9e\x91\xbe\x91\x92\x67\x51\x0d\x3a\x46\x09\xc6\x90\xf1\x03\x1a\xd5\x0b\x95\xca\x39\x21\x71\x96\x2f\x95\xd6\x16\x84\x40\xe9\xbb\x40\x64\x1e\x0b\x76\x3d\x1f\x81\x76\x31\x5b\xad\xd0\x78\x2e\x70\x16\xa5\x73\x81\x53\x3e\x6d\x6a\xde\x9c\x0e\xd0\x6f\x26\x32\x41\xf5\x94\xf7\x83\xce\x94\xcf\xb2\xe3\x64\x8c\xc2\x5f\x64\x4b\xfd\xe0\xc1\x12\x1d\x3c\xfa\xb2\x98\x5f\xfe\x62\xfd\x33\x34\x57\x00\xba\x42\xaf\xdb\xfd\xdd\x77\x40\x41\xbe\x7a\x46\x28\x80\xef\x97\x11\xe3\xef\x10\x5e\x87\xc0\x55\x3d\x3b\x47\xd6\x6a\x05\x40\xe1\xc8\x62\x21\x82\x03\x3e\x8c\x96\x4a\x6d\xdb\x6a\xed\x5b\x6d\xb7\xb3\x1d\x5a\xad\x5b\xa2\x85\x82\x38\x04\xc0\xf8\x72\x2a\xdb\x8e\x79\x51\x3d\x22\xb4\xfe\x71\x39\xa6\x44\xa5\xf4\x39\x14\xbf\xff\x2c\x8e\x70\xc2\xfb\x4c\x7e\xfd\x8c\xf0\x64\xca\xfb\x44\x7e\x1c\xe3\xdf\x50\x1f\xc3\x0c\x13\xf4\xa3\x4a\xa7\x32\xfd\x55\x32\xc3\xd9\x55\x3f\x29\x34\x6d\x14\xf0\x7b\xae\xd5\xfd\x0a\xeb\x51\xb4\xe7\x23\x41\xfc\xcb\x83\x25\x2f\x82\x07\x4b\x26\xfe\x21\xe2\x1f\x5c\x3c\x7c\xb0\xa4\xe2\x57\x52\xfc\x52\xb8\xb2\xa4\x56\x98\xea\x80\x1d\xa8\xc3\xa5\xff\x79\xe3\x65\xc2\xb8\x27\x52\xa9\xa2\xef\x67\x9c\x33\x7c\xb6\xe0\x28\x6c\x94\x42\x7c\xff\x41\xf3\x84\xe5\xe8\x88\xf0\x90\xc3\x5e\x37\xda\x43\x0d\x8a\x70\xe5\x8b\x07\x11\xae\x5d\xea\x68\x3f\x58\xf6\xb1\xa0\x6a\x5d\x51\xa3\x0d\x78\xc3\x34\x10\x9a\xd6\x4e\xab\xbf\x49\x54\x14\x0e\xa7\x10\x22\xff\x5a\x41\x26\x36\x68\xff\x4d\x61\xfd\x84\xb6\xa9\x03\x2a\x2f\x35\x6a\x17\x0d\x16\xb0\xfb\x0e\x60\xab\xf7\x24\x3b\x5c\x3b\x98\xbb\x92\xa0\x09\x7e\xfb\x3d\x01\xf1\x6f\xe4\xda\xe9\xbb\x07\xa5\x01\x6f\x28\x6b\xb4\xed\x3f\x64\x09\xf9\x14\xda\x55\x95\x74\x38\xf2\xfc\x13\x35\xc1\x78\xb0\x36\x47\x2b\xf5\xdb\xbd\xa1\x74\x5f\xb5\x61\x13\x65\xfe\x2a\xfa\x46\x19\x21\xaf\xed\x3f\xf9\xa6\x15\xa8\xe8\x38\x4e\x64\xc8\xc3\x2d\xfb\x34\x34\x7e\x01\x36\x14\x71\xa8\x11\xac\x5e\x80\xa9\xc7\xa6\x0d\x07\x40\x65\xc5\xa3\x42\x7a\xf0\x09\x2d\xe8\x9f\xc6\x4f\xbe\x69\xb5\xec\xe7\xf7\xf1\xb7\xdd\xd5\xea\xf1\x23\x6f\x75\x44\x7e\x6d\x6d\x8a\xa2\x82\xea\xce\x35\x55\x83\xef\x7d\xd4\x51\xe1\x77\x9e\xf1\xc3\xf2\xa7\x98\xb5\xf7\x7a\x36\x2a\x0a\xb8\x88\xd3\x30\x73\xd5\xf2\xfe\xa1\x7f\x7b\xc7\x26\x95\xe6\x5d\x2d\xd9\x4e\xb7\x13\x6b\x6b\x47\x30\x73\x6f\x0c\x2a\xfd\xd4\xb8\xf2\x9d\x2e\x28\x36\x37\xb1\xb9\x47\x4f\x03\x07\x07\xf4\x9a\xbd\x79\xd5\x37\xf7\xe4\xca\x33\x70\x90\x5c\xb3\x23\xb7\xf6\x2e\xfd\x94\x37\x3c\xf9\x8d\x7a\x2a\x6f\x78\xbc\xbe\x32\xf7\x86\x67\xb6\xf1\x86\x67\x0a\x67\x37\xbc\xe1\xd9\x7a\xa1\xb3\xa3\x4b\x0d\x53\x6c\x44\xc9\x68\xc1\x18\x22\xa3\xab\x76\x8a\x46\x54\xba\xb2\x6a\xcc\x6e\x8a\x6f\x09\x71\xc3\x85\x91\xe3\x7b\x17\xa6\x70\x0a\xc7\x70\x0e\x67\xf0\x1c\x4e\xe0\x19\xbc\x82\xa7\xf0\x02\xbe\x84\x97\xf0\x1d\x3c\x86\x27\xf0\x0d\x7c\x0f\x9f\xc1\xe7\xf0\x13\xfc\x00\xff\x0e\x5f\xc0\xb7\xf0\x08\xbe\x86\xaf\xe0\x6f\xf0\x23\xfc\x01\xfe\x58\x5e\x36\xfd\xf9\x5f\xc9\x83\xee\x83\x7f\xd0\xcd\xd8\xaf\xff\xb9\x19\xfb\x9f\x71\x33\xf6\xf3\xe6\x9b\xb1\xd9\x6f\x57\x67\xf9\x37\x0f\x8f\x9b\x6f\xc6\x8c\xbd\x26\x80\x60\xbe\x38\xcb\xf0\x48\xd9\x16\xba\x37\x63\xcf\x1c\xe3\x53\x00\x41\xf9\xab\x6e\x82\xfe\xb6\x6e\x76\x79\x5c\xb1\x28\xfc\xc1\xb5\x51\x05\x10\x9c\x98\xbb\x69\x7d\x49\xa7\x1f\xd4\x97\x57\x68\x75\xe3\xcf\x9a\x25\xa9\x7b\xf5\xd6\x64\x6f\xb9\xd1\xf2\x73\xdb\x4b\x4a\xc7\x58\xb2\x76\x03\xb8\xc6\xf4\xb1\xd1\x68\xb2\x62\xaa\x5b\x33\xc8\xad\x58\x62\xfa\xe6\x93\x15\xab\xc9\x5b\x1b\x14\xbb\x96\xa2\xd5\x97\x9b\x15\x53\xcd\xfa\xed\xa8\x6b\xef\xeb\x58\xba\xba\x56\xa1\x4d\x66\x9d\x35\xd3\xe0\xf5\xe6\xca\x6b\xed\x9d\x9b\x4d\x86\x2b\xf6\xc8\x0d\x16\xc4\x0d\xa6\xb4\x15\xdb\xd9\x26\x3b\xd3\x26\x1b\xe9\x75\x37\xb7\xdf\x40\x70\x96\xe4\x78\xd4\x2e\x77\x94\xff\xce\xfc\xa6\x43\x6f\xb4\x6f\xae\xcd\xc7\xb3\x54\x36\x66\xc8\x3b\x4d\xd2\x5d\xcd\xfa\x84\xb5\x26\x78\xd3\x0b\xcd\xfa\x00\x87\x75\x2b\xda\x27\xdf\x0e\xcd\xcd\x81\xff\x70\x54\x71\x51\x6a\xf0\x1b\x2d\x4f\xab\x0f\x3d\x8d\x25\xe9\xcd\x1f\x7c\x6a\x3b\x50\xa3\xed\xee\x39\xb6\xa1\x8f\xca\x4b\x1b\x07\xad\xa7\x9e\x19\x7c\x89\xfa\x0c\xe5\x8b\x8c\x3b\xbf\x9e\xd3\x85\xc4\x57\x4d\xbb\x00\x04\x38\x7f\x36\xe2\xf8\x1c\x01\xe8\x5e\x6e\x40\x90\x25\x39\x57\x24\x12\xa5\x3a\xc9\xe8\x64\x5c\x25\x7c\x79\x5b\x5d\x42\xc8\x19\xcc\xb0\xf6\x0a\xd8\x4d\x32\xc3\xab\x27\xa9\x71\x3a\xe9\x66\xc0\x4e\x92\x1d\xf9\xb0\xfa\xda\x57\xdf\xcf\x94\x95\xab\x73\x71\xad\x6d\x7b\xce\xf5\xb6\x9d\x61\x59\xf7\xd4\x9e\x3e\xcf\x6c\x66\x79\x97\x5d\xb5\xcd\x96\xcf\xc1\x9b\x2e\x0d\x7c\x73\x88\x5e\xe5\x9e\xe9\xfa\xd7\x89\x8e\xdf\x08\x38\xb0\x67\x95\xc4\xb7\xde\x57\x9b\xee\xf9\x7d\xcb\xe3\x47\x8e\xdd\xf9\x63\xe7\xb1\xb1\x0b\x5b\x10\x6c\xb8\x46\x6b\x27\xba\x9c\x7b\xbd\x6f\x2e\xc5\x52\x73\x12\x9c\x5d\x01\x63\xdb\xed\xe6\x63\x73\x2c\x68\x03\x6e\x37\x4f\xdf\xcc\x6b\x93\xee\x5a\x4e\xe6\x34\xfa\xd8\xcb\x2e\x4f\x10\x6d\xfe\xad\x33\x95\x11\x40\x75\xfb\x3f\xfe\x72\xe8\x18\x06\x18\x0b\x6a\x79\x77\xa6\x7d\x70\x2a\x9b\xf1\xf2\x5e\x51\x9a\x8e\x37\xdc\xaf\xb9\x97\xe8\xbe\xe1\xc4\xe3\x6f\x6b\x78\x62\xbb\xff\x66\x08\x41\x17\x54\xaf\x95\xf5\x75\xd7\x57\xce\x4e\xd3\x5e\x75\xdf\xf9\xbb\xe8\x49\xb7\x7a\x45\xf6\xf5\x0d\xea\x34\xf4\x73\x5c\xd9\xd8\x4f\x7a\x3b\x74\xb4\xbd\x92\xd7\x93\xfb\x6a\x64\x68\xed\xc6\x37\xf4\x72\xed\x0a\x73\xc4\xc6\x94\xcd\x8e\xf5\x6d\xe7\x1a\x3a\x51\x69\xe1\x9b\x0d\x37\x93\x7a\xa3\xad\xbd\xa0\xfc\xa6\x72\x8f\x5a\x7f\xe3\xd0\x54\xa1\xbc\x57\x2d\xcb\x4b\xe3\x2e\x87\x34\x88\x93\xba\x64\xbd\x1a\x9e\x08\x3c\x12\xa8\x54\x5a\x28\xd9\x0d\x79\x9b\x13\xa8\xa1\x9b\x27\x8f\x2a\x2f\x11\xea\x0f\x10\x6e\x60\x1b\xe1\x11\x34\xd1\xad\x76\x81\xb3\x85\x35\xad\xb3\xe0\x1b\x58\x5f\x63\x5c\xb7\xed\xa9\x51\xa3\x8d\x5d\xc9\xf5\xbb\xa6\x79\xeb\x1e\x5c\xed\xf2\x8e\xca\x2c\x9b\xf7\x5a\xa6\xf2\xc2\x47\x10\xa7\xd7\x6a\x8e\x81\x71\x76\xd9\xe9\xf8\x8e\x38\xcc\xeb\x9b\xca\xe3\x9c\xaf\x37\x3e\xb2\xa9\xe1\x99\xf7\x22\xe8\x71\xb5\x90\xb9\xc3\xdf\xfc\x30\xc7\x3c\x08\x92\x3e\x92\x1a\xa7\xbc\xfb\xb3\x92\xaa\x61\xd0\xd7\xd6\x36\xc9\xbc\x61\x1a\xd6\xac\xa9\x1a\x6c\x7e\x64\xc9\x2d\xae\x20\x7a\x55\x43\xa2\xf5\x86\x46\xba\x33\xff\xf0\x7d\x4e\x09\x37\xfe\x3f\xb6\x1c\xbe\x0e\x0b\x7e\x93\x43\xd7\x54\xaf\x9e\xba\x10\x98\x87\x44\xc6\x0a\x4b\xec\x9f\x3b\xdb\xfa\xae\x1f\xac\x6f\x0d\x19\x10\xa8\xf2\xa8\x3c\xd8\x7c\x92\xa0\x04\x28\x6b\xbf\x69\x1e\x4e\xdd\x19\x85\xe8\x5a\x0a\xb1\x61\x5b\xaf\x7f\x0d\xb9\xdd\x86\x76\xdd\xcb\xc7\x66\x32\x70\x0d\x79\xdb\xf7\x9a\xf2\xa8\x77\xb3\x9d\x76\xad\x5d\xbd\xc3\xb6\x6c\xda\xfd\xce\xb3\xbe\xf2\xd0\x5a\xbb\x89\xba\x9e\x8d\xd9\x63\xe7\x10\x9e\x2d\x72\x7e\x3c\xa5\x17\xbe\xbe\xe5\x7a\xce\x6b\x76\x3b\x9a\x1e\x75\xab\x78\xa8\xe0\xdf\x9e\x99\x4e\x6f\x85\x7f\x2e\x06\x7e\xeb\x20\x60\xed\x61\xaa\x6b\x25\x59\x32\x1b\xe5\xcc\xcb\x17\x72\x5b\xa0\xfa\xed\x1a\x6b\xbe\x35\x56\x8c\x4d\x50\x7f\x4b\x75\xbf\xf9\x67\x01\x79\xef\xdb\x2a\xc8\x09\x6d\xab\x37\xd0\xf9\x67\x00\xfb\x37\x16\xec\x4d\xef\xa8\xeb\x90\xaf\x95\xba\x06\xf0\xbf\xb9\x1e\xf0\xb7\x42\xea\x9b\x2a\xa4\x4a\xeb\xf6\xbb\x02\xcf\x97\xfa\x04\xea\x19\xeb\xd9\x0d\x66\x9a\xae\x38\x3e\x58\xcf\x49\x55\x54\x69\x52\xc3\x79\x64\x5f\x23\x34\x28\xc2\x2c\x85\x6c\xf2\xcb\x57\x51\x90\x36\x81\x69\x17\x96\x47\xff\xf1\x35\x08\x00\x58\x18\x38\xc4\xcc\x53\x48\x98\x91\x34\xa8\x81\x7a\x5f\x55\x97\xc7\x83\x96\x1c\xf8\x35\x79\xea\x20\x58\xcb\xc6\xd8\x27\xe0\x75\x26\xa6\x89\x01\xf9\x0a\x7e\xbd\x85\x89\xf9\xd2\xe7\x61\xd6\x72\x31\x1b\x2d\x83\xeb\x28\x2c\x9f\x39\xdf\xfa\xb8\x7e\x62\x77\x6d\xe5\xf9\x89\x35\x25\x7f\xb2\xfb\xb6\x7c\x72\x2d\x6e\x6d\xbd\x6f\xb0\x66\x8f\x60\x37\x7b\x91\xac\x5c\x82\x69\xeb\x4d\xd7\x9c\xd3\xb3\xf3\xf4\x2c\x38\xa5\xfc\x82\x7e\x95\xcd\x90\x51\x22\xab\xc8\x30\x45\x40\xf6\x7b\x7b\x73\x4e\x6b\xbd\xf9\xc7\x18\xc5\x4f\x1b\x6d\x15\xf8\x14\x11\xf8\x17\x91\xfd\xc7\x10\x95\xb6\x85\xd3\x24\x77\x2e\x99\xd5\x95\x13\x92\xe3\xe4\x2a\x14\xe1\x4f\x6b\x5b\x1c\x25\x64\x84\x54\x9c\xab\x3f\xc5\xa1\x35\xc7\x94\xd6\xaa\x28\x2d\xed\x31\x4d\x42\x5e\x4d\xc8\xaa\x09\x8b\x6a\xc2\xa8\x9a\x90\x56\x13\xa6\xd5\x84\x71\x35\x61\x5e\x4d\x98\x55\x0c\x43\xcf\x2b\xdf\x93\xca\xf7\x59\xe5\xfb\xaa\xf2\x7d\x5a\xf9\xbe\xa8\x7c\xbf\xac\x7c\x5f\x56\xbe\xdf\x55\xbe\x8f\x2b\xdf\x27\x95\xef\x37\x95\xef\xf7\x95\xef\x67\x95\xef\xe7\x95\xef\x4f\x95\xef\x0f\x3b\x19\xc6\x4a\x5b\x18\x65\x0b\x2b\xdf\x78\x3f\x30\xf6\xae\x35\x95\x29\xd4\x81\x00\xfa\x3a\xd2\x83\xb2\xda\xb3\x74\x59\x27\xdb\x6f\xed\x0e\xdf\x96\x16\x1f\x50\x19\x6a\xe8\x34\xf5\x01\x8d\x2f\x11\x53\x52\x7f\x16\x11\xfc\xb3\x19\x8b\x76\xf4\x9f\xda\x8b\xbd\xbf\xeb\x38\x96\xb5\x12\x56\x7b\x05\x5f\xd4\x8b\xcc\x51\xc2\x31\x99\x3c\x9f\x26\x0c\xc0\xb7\xd5\x7c\x74\x39\xc7\xf2\x4a\xf9\xd8\x51\xa1\x1f\x55\x4b\xa9\x69\x7f\x90\x47\x16\x80\xaf\x2b\xd9\xa5\x22\xfe\x55\x25\xc7\x2a\xeb\x7f\xab\x64\xb8\x0a\xfb\x8f\xd5\x4a\x35\xfd\xfd\x0f\x95\x12\xde\xa5\xc1\x8f\x3a\xd3\xac\xa1\x34\xc2\x49\xe5\x9d\xab\xb9\x56\x7e\xe0\x9a\x33\x6b\x70\xbe\x67\x74\x86\x73\xb4\xa6\x90\x81\xe8\xb6\x52\x52\x48\x5a\x5b\x46\x85\x0e\xf8\xa0\x2f\x06\x92\xd1\x14\x01\xb8\xd4\x07\x7f\x7f\x30\x34\x21\x42\xc4\xcf\x12\x20\x7d\x27\x46\x81\xf8\x2e\xaa\x51\xce\x4a\x73\xd1\xca\x28\x5b\xad\xbf\x84\x6b\x33\xa3\x56\xcb\x58\x32\xcb\xd7\x5f\x26\x46\xff\xfa\x1a\x25\xe1\x74\x63\x93\x96\x56\x65\xaa\xfe\xf3\x24\xcb\xce\x92\xd1\x27\xd7\x8c\xb5\xd2\x90\xbd\xde\xaf\xc5\x67\x53\x01\x10\x15\xb8\x9c\xd8\x29\x13\xc4\x83\x2a\xeb\xb3\xd1\x03\x45\xb5\xb0\x6b\x5a\x59\xcd\x93\xad\x37\x49\x93\x61\x83\x17\x87\xa6\x72\xab\x55\x85\xdd\x72\x84\x64\x15\x63\xd0\x95\x9a\x36\x8e\xdb\x2b\x79\x08\x4e\xae\xe6\x28\xe0\x54\x37\x00\xfa\x6b\x0a\xca\x4e\xaa\x02\xc2\xc6\x7e\xaa\x85\x0f\xc1\x5b\x1a\x68\x44\x0c\xc6\x74\x41\x52\xb7\xb3\x6a\x69\x6d\xaa\x5d\xb9\x92\xdc\xd8\x61\xad\xb4\xbb\x22\xb5\x4c\xd5\x41\x93\xb4\x1d\xfa\xa1\x68\x34\x3d\x69\xb5\x6c\x6f\xe5\x3e\xd1\x36\xa3\xad\xd6\xfe\x7e\x15\x6e\x36\xcd\x03\xa3\xd3\x8a\x7b\x77\xe7\x0d\xa6\x14\x42\xb7\x8e\xc4\x6d\xa3\xd5\x0a\x6b\x83\xd0\x10\xa8\x52\x37\x3d\xec\xa7\x5d\x85\xf6\xba\x95\xb0\x34\xeb\xad\xcd\xf0\x69\xb7\x62\xf3\xab\x4a\x18\x9b\xde\xbf\x86\xee\x51\xa5\x88\x8f\xee\x5b\xd3\x9b\x68\xcf\xd6\x6f\x20\x51\xa6\x94\x99\x97\xfe\xd4\xfe\x51\x9a\x2a\x94\x23\xac\xaf\x8a\x67\xc9\xdf\x54\x59\x4f\x78\xcf\x89\x7c\x74\x6a\xa2\x18\x3a\xdd\xc3\x6a\xbb\x7b\x5b\x1a\x8e\x2d\xa1\x45\x96\xce\x7a\x0d\x6e\xa0\xb8\x10\x15\x85\xdb\xbc\xae\x22\x17\x48\xff\xae\x10\x8b\xea\x61\x7d\x68\x56\xa1\x92\xee\x5a\x11\x53\xbf\xa8\x9b\x16\x09\x61\xc0\x41\x07\x89\x54\xb6\x4b\x19\x96\x66\x24\x92\x6c\x54\x1a\x17\x03\x23\x4d\x84\x14\x0d\x5e\x37\x50\x43\xa3\x6b\x23\x35\x19\x75\x83\x67\x94\xb6\x5a\x25\xf3\x6c\x43\x8b\xd7\x8b\xa9\x08\x55\x7f\xad\xd9\x6d\x8b\x46\xb5\x35\xdf\x2d\x9c\xfd\xa8\xd5\x32\xa7\xbc\xef\xf9\xa7\xd5\xe2\x01\x26\x39\x17\xdc\x3c\x1d\x07\x3f\xa1\xab\x33\x9a\xb0\xf4\xe5\xb9\x74\x4b\x64\xef\xc6\xa4\x63\x1d\x31\xfc\x56\x2b\x7c\xfc\x8d\xeb\x66\x67\xb5\x7a\xd2\x75\xbf\x65\x8c\xca\xea\x83\x02\x68\x21\x86\x5c\x3f\x7e\xa1\x31\xd8\x97\xa6\x17\x8d\xf3\x92\x39\x0d\x13\x53\x35\x36\xcd\xcc\xe7\x33\x43\x7d\xa4\x56\xdf\x1f\x6c\x79\x78\x01\x59\xec\x1b\xe9\xef\x35\x3c\x58\x08\x79\xc3\x73\x05\x06\x2b\x83\x43\x11\x54\xb3\x30\xef\x18\x6a\xbc\xb3\xb1\x8b\x6f\xb2\xb6\xef\xb3\x86\xc7\x0d\x1a\xbb\xf7\x1b\xde\x2c\xac\x56\xfb\xbd\xfd\xe6\xd7\x0c\xb5\x71\x45\x86\x54\xc9\x58\x9b\x6b\x8b\x15\x4d\xf7\xa2\x1a\x86\xd7\x7b\x4f\x51\x1f\x81\xb2\xc7\x3f\x9a\xcd\x50\x8a\x13\x8e\x3c\xc3\x7c\x27\x30\xf0\x88\xb3\xec\x27\x74\xb5\x5a\xa1\x8e\x10\x98\x7f\x42\x57\xbb\xd6\xdc\xf4\x3a\xe0\xbf\x42\x14\x45\x72\x4c\xfa\x7e\xf3\xe4\x6a\x8e\xc9\xe4\x24\xc9\x3f\x75\xf4\xb5\xb2\x89\x4f\x2c\xe6\xfa\xf8\xd1\xbe\xfb\x98\xc0\x27\x16\x1b\x21\x68\x90\xd2\xac\xe3\xf1\x3c\x19\xd5\x90\x18\xd9\x47\x32\xda\xa7\x96\x66\x60\x71\xae\x79\x40\x4c\x26\xab\xd5\xd6\xc7\x54\xbc\x1a\x1d\xff\x48\x0b\x1d\x70\xbf\xeb\x3e\xab\xd8\xe0\xcd\x6b\x1d\x06\xfc\x90\x2d\xd8\x67\x18\x56\xcf\x1f\x96\xe8\xc5\x1f\x95\xec\xb7\x3e\x28\x7d\x70\xdb\x11\x95\xe7\x92\x58\x27\xf3\x1a\xc6\x39\x73\x51\xed\xb5\x89\x09\xad\x5f\xe5\x35\x4c\xd1\x06\xca\x15\xd9\xe8\xc7\xef\xec\x01\xe7\x6f\x04\x7d\xd4\xe0\x71\xf8\xc7\x86\xe4\xb2\x74\x83\x90\xe5\xef\x1b\x5d\xc3\xa1\x4b\xa8\x9e\xbd\xb7\xb6\x2d\x3d\x07\xcd\x80\xc5\xfb\x5d\xb8\xae\xa8\x0d\x8d\xb7\xdc\x30\x30\x0b\x51\xdb\x60\x0f\x36\x1e\xdd\x31\x5f\x0f\xbc\x22\xea\x8c\x04\x53\x1b\x86\xd1\xb5\x7b\x8b\x0a\x1d\xb5\xfb\x3a\xc8\x56\x1d\x83\x5d\x3d\x6f\x5c\x4b\x1f\xbb\xf4\x83\x5d\x4b\x1e\xeb\xc7\x57\xc5\x1a\xa6\x8a\x03\xf6\x14\xc7\xe3\xb0\x41\x8b\xb6\x86\x11\xa8\xa0\x46\x55\x38\x8c\x6b\x0f\xc4\x90\x8d\x49\x7d\x63\x51\xf7\xb3\x4a\xba\x35\x9c\x35\x25\xf7\x34\xca\x95\x58\x60\xc9\x09\x4a\xf5\x31\xe9\x13\x98\xbf\x84\xe5\x68\x93\xd4\x76\x15\x5e\x77\x48\xc5\x26\xf1\x1b\xad\xcf\x6b\xda\x22\xf5\x05\xb2\x58\x5b\x63\x12\xed\xa6\x28\x39\x13\x1e\x59\x8c\x5e\x53\x47\x3f\x01\xa8\x55\xac\xa3\x41\xb1\x76\xc6\x56\x0f\x52\x1f\xd1\xda\x55\x6e\xec\xb0\xce\xf7\x16\x4e\x11\x24\x43\x59\xba\x6f\xe0\x4a\x5f\x15\x91\x21\xb3\x8e\x3a\x2a\x46\x76\xcc\x8a\xff\xf3\xfd\x11\x56\xf6\xa3\x7d\x6c\xea\x3f\x06\x75\x43\x60\x56\x39\xc2\xe2\xd4\xf8\x5e\x2c\x1d\x26\x96\x35\x7d\x3b\xa3\xc3\x75\x19\xb5\x86\xa3\xbe\xe6\x04\xcb\xb1\x55\x9e\x58\x32\xe5\xde\xd1\xe3\xc1\x3c\xd7\xd6\x9a\xaa\xd4\x1b\x30\x4e\x20\x0b\xab\xe4\x2c\x9d\x29\xfa\x55\xf6\x64\x3c\x7a\xed\x5f\x71\xb5\xda\x37\xcc\xc8\x9e\x4f\x84\x74\x2b\x0d\x6f\xc4\x6d\xfb\x90\x9b\x47\xbf\x6b\xdc\x35\xfe\x32\xf0\x7c\x9f\xc4\x9b\xfc\xad\x3c\x58\x72\xeb\xae\xb1\x00\xc3\x5f\xe4\x8b\xe4\x7d\xe2\x1e\x60\x38\x96\x32\x99\x76\x0d\xa1\xa8\x7e\x14\x72\x23\x91\x09\x5e\x09\x8f\xc3\xb6\x60\x20\xb1\x5b\x8f\xc6\xc4\x1f\xd8\xb3\x2c\x0b\xc1\x40\xbe\x83\xd6\x7e\xa8\x64\x9b\x43\x10\x75\x30\x47\xb3\x10\xab\xce\xa9\xdb\x48\x12\xd3\x0e\x1d\x8f\x73\xc4\x4f\xe8\xbc\x4d\xca\xdf\x30\x8f\x93\x03\x93\xa7\xde\x80\xef\xe5\x4f\x89\x97\x70\x40\x2c\xd8\xe6\x87\xce\xef\x38\x6f\xfb\x05\xfb\xc9\xf7\x4e\x76\xab\x15\xba\x85\x93\xa8\x70\x4d\x1c\xcd\x0b\x7a\x7f\x79\x63\xf7\x59\xac\x53\xfa\xfa\x4f\xe9\x9d\xca\x72\x4b\x78\xc6\x92\xa6\x73\x01\xa7\x35\x3a\x12\x01\x43\x20\x85\x40\x0f\x89\xaa\x1c\x40\x8d\x7d\xe2\x52\xc5\x1b\xda\x77\x50\x2e\xa9\x71\x34\xc1\xad\x56\xf8\x53\xb8\x26\xcf\x0a\x27\xb5\x1c\x7d\x05\x15\xfa\x94\xdc\x29\x60\xd4\xa8\x0a\xb5\x59\x4d\x8d\x68\x9e\x1d\x97\xbb\x7a\x8f\xb5\x5a\x7f\x0c\x59\x74\x18\x56\x59\xa6\xed\x53\xf8\x2c\x33\x60\x90\xd9\xb0\xd5\xcb\x75\x85\xe2\x98\xd9\xf3\xc6\x55\x62\xd5\x38\xbf\xf5\xcb\x74\x6d\x46\x6d\xed\x08\xb6\x77\x16\x15\x51\xd4\x5f\xc3\x6f\x73\xd8\x30\x0d\xb6\x61\x78\xa7\x6b\xbc\xe3\x5a\x25\x0e\x2a\x7c\xa1\xcc\x75\x3e\xbc\x59\x93\x71\x58\x91\xd6\x3e\xce\x5f\x98\x06\x2a\xae\x86\xab\x25\x5f\x12\x13\x7f\xb9\xff\xed\xa6\x72\x27\xc9\x99\x2a\xf5\xe8\xeb\x8d\xcd\x1d\x3f\x57\xc5\xb4\x2a\xa8\xde\xc0\xb2\xee\x42\xb8\xa8\xd7\xdf\x52\xca\x0e\x5a\x39\x2f\x30\xbc\x6f\xb3\x9f\xe4\xd2\x21\xc2\x36\x17\xc7\x7c\x83\x80\x0e\xf7\x7b\x45\x55\x1c\x96\x23\xd0\x3e\x1b\xb8\xd6\xbd\xb4\x5a\x03\x70\xf2\xf2\xbf\x4e\x9e\x7d\x78\xf9\x0c\x40\x70\xf4\xf6\xfd\xc7\x13\x30\xec\x60\x32\xca\x16\x29\xca\x43\x53\xae\x43\x68\x2a\xaf\xcf\xa3\xc3\x4d\xdd\xf6\xb7\xcd\x4e\x20\xf3\xa6\x61\x37\x68\xb8\xb6\x02\xc2\x85\xb5\x83\x4a\x2e\xb0\xa3\x65\x93\xea\xac\xee\xaa\x40\x1f\xd5\x15\x74\xed\xf5\xdb\x3d\xa8\x0f\xd6\x24\x3d\x17\xa4\x45\x6d\x08\xc1\x7d\x99\x23\x16\x95\x47\xac\x37\x3e\x12\xed\x95\x33\x28\xd9\x39\xec\x4e\xcc\xb2\x0b\x58\xb3\xab\xc8\xf7\xc6\xc0\xe5\xa1\x56\xdd\xa3\xca\xeb\x0e\x74\x75\x64\xf5\x88\x1e\xab\x15\x6b\x48\xdd\x43\x71\x93\xd4\x74\xc8\x43\xab\xab\x96\x8d\x9a\x29\x39\x13\xea\x57\x19\x4d\x68\x78\x47\xa3\xbc\x56\x5f\x45\xd4\xaf\x73\xe4\x82\x27\x2d\x83\xa8\x43\x22\x84\xce\xa5\x62\x5b\xfe\x1f\x87\xb1\xd2\x01\x40\x9c\xb1\xeb\x40\x93\xb0\x96\x50\x3d\x7a\x94\x7b\x8b\x3d\x47\x3d\xbd\x26\x6a\x3a\x86\xc4\x4a\x99\x46\x55\xe2\xe8\x5e\x54\x42\x8c\x8a\x31\x26\xe9\xcf\x98\x4f\xdf\x49\x0e\x44\x0d\x1b\x62\x3b\x70\xea\x0d\xdc\x06\xc6\x54\xdd\xbd\xa9\xcd\xe3\xa4\x12\x39\x13\xae\xcf\xd9\x65\x66\x44\x77\x54\x0e\xb0\x9c\x20\x95\x8f\xc3\x8b\xdf\xd7\x54\x6f\x96\xe9\x85\x24\xee\x41\x1a\x9b\x33\xc0\xb9\x9e\x87\x49\xa9\x87\xdb\xfb\x2f\x29\x19\x86\x49\x3b\x7e\xf2\x8d\xda\x21\x79\xac\x5d\x2a\x8d\x19\x9d\x89\xf2\xa2\x5c\x98\x44\x7b\x3c\xb6\x97\x35\x7e\x83\x87\x1a\xa1\x9a\x6e\xf9\x0f\x72\x68\x2f\x94\x7a\x87\x21\x89\xbb\x90\xc6\x00\x44\x7d\x1a\xe7\x70\x93\xde\xa0\x4c\x76\xfd\xcc\x93\x83\x66\x16\xd8\xaf\xe1\x5f\xe6\x34\x35\x14\xf5\xf7\x37\x76\x6e\x6e\x2d\x6e\xd2\x9f\xbd\x83\x10\x93\x5d\x0b\x98\x78\x23\xc8\xea\x40\x8e\xa9\x8e\xc2\x20\xf3\x2a\x88\xbb\x6e\x3c\x90\xc0\xfd\x6e\xb4\x67\xc9\x75\x66\xf5\x7a\x95\x79\x1f\x56\x93\xeb\x44\x2d\x8b\xaa\xf0\xac\x51\xb8\x2c\xd2\xb7\x39\x6b\xe5\xbb\x0c\xa2\x28\x82\x57\x02\xdb\xc3\x2e\xc4\x1d\x8e\x67\x88\x2e\x78\x14\xf6\xd0\xe3\x68\x03\xb0\x00\x68\x84\x09\x00\x45\x01\xff\x1e\xff\x1a\x7e\x70\xdd\x7b\xd4\x4d\x5a\x06\xf4\xb6\xde\x62\x5e\xac\xed\xa4\xb4\x8a\x19\x24\xb7\xed\xe5\x6d\x43\x2f\x9e\x61\xcd\x20\xbf\x71\x17\xd6\xff\x82\x75\xcf\x23\xad\xdf\x8e\x6a\x5d\x36\xda\xea\x0c\xb2\xbb\xee\xf8\x75\xad\x63\xdf\xfc\x67\xb0\xb8\x2d\x34\x5f\x55\x7b\x28\x2d\x88\x06\xa3\xbb\x9b\xce\x7e\x4f\x4c\xe7\xb7\x6a\x67\xd6\x28\x69\x90\xde\x75\x5f\x1f\xab\x7d\xb9\x76\x4e\x83\xe9\x5d\xaf\xd4\x0f\xb5\xa9\xd5\x4c\xa7\x06\xe3\xbb\xee\xf4\xc7\x6a\xa7\x9e\x35\xd6\x60\x7e\x5b\xe4\xa8\xb6\xee\x86\xc0\x98\x6d\xf7\x27\xb4\xae\x72\x04\x3f\xb8\xce\x84\x1a\x7b\xd1\xef\xfd\x07\xe7\x37\xea\x46\xd5\xde\xa5\x1f\xe3\x88\x69\x72\xa3\x7e\x8c\x23\xa6\xed\xfd\x94\x8e\x98\xce\x6e\xd4\x53\xe9\x88\x69\x7b\x5f\x95\xf7\xa5\x70\x70\x75\xa3\x2e\x2b\xcd\xec\xd2\xb3\x09\x5c\x72\x7a\xa3\x0e\x4d\xe0\x92\xed\xfd\xa8\x07\x57\x83\x8b\x1b\x75\x23\x2b\x6f\xee\xe5\xd4\xc4\x94\x1b\xbc\xbc\x66\x17\xa6\xe6\x96\xf6\xfd\x37\xd5\x70\x70\x79\xdd\x6e\xfc\x06\x76\xea\xcd\x0b\x73\x38\x78\x77\xb3\x1e\xff\x7f\xf6\xfe\xad\xcf\x8d\xa3\x5a\x18\x87\xef\xe7\x53\x68\x7a\x07\xa5\x2b\x2a\x69\x34\x0e\x64\xb3\x65\xf7\xcc\x76\x1c\x07\x0c\x71\x92\x6d\x3b\x04\x90\x15\xa7\x47\x2a\x8d\x1a\xf7\x74\x29\xd5\x25\xdb\xc3\xa8\x9f\x1f\x87\x24\x1c\x02\x6c\x88\x81\x70\x88\x0d\x84\x00\x09\x67\x03\x01\x1f\x80\x5c\xf8\xfc\x5c\x64\x7f\x86\x99\x4b\xdf\xbc\x5f\xe1\xfd\xd5\x61\x55\x57\xb7\x5a\x1a\xcd\xc1\x43\xf6\xff\x89\x2f\x3c\x4b\xd5\x75\x58\xb5\x6a\xd5\xaa\x55\x55\xab\xd6\xb2\x2b\x99\xaa\x55\x6b\xe9\x3f\xbe\xbd\x26\x4d\x0d\x9b\xb4\x67\x84\x9f\x83\x9b\x27\xb6\xda\x54\x5a\x78\x53\xce\xd0\xbe\xc9\x8e\x6e\x9d\x33\x64\xc9\x4d\xea\x57\x7b\x7c\x07\x37\x9f\xde\x6a\xfd\xba\xe4\x66\xf8\x9b\xc8\x89\xcd\x83\x5b\xee\x01\x94\xdd\xa4\x8d\x4c\x24\xc7\xe6\xa1\xad\x36\x63\x17\xdf\xa4\xa5\xec\xdb\x7c\xdc\x3c\xbd\xd5\xb6\xb2\x15\x4c\x6e\x6d\x64\x23\xe9\xe0\x66\x54\x63\x44\xc6\x00\x11\xcb\xa8\x48\xdb\x22\x02\xa3\x75\xe6\x70\x38\x86\x52\xcf\x70\xff\x95\x73\xb6\xc6\xca\x65\x79\x69\xbb\xe8\x72\x1c\x21\x6f\x81\x64\x1c\x5f\x32\x84\x23\xd4\x90\x80\xf8\x24\xfe\xa6\xfe\xd3\x3e\x6d\x1f\x64\xa6\x36\x2c\xff\xf1\x48\xc6\x86\x65\xbe\xfe\x91\x24\xf5\xcb\xf5\x09\xed\x92\xeb\xb3\xe3\x1f\x83\xd0\x83\x8c\xf9\xab\x8b\x06\x72\x51\x83\xcc\x4c\x72\x0f\xf8\x2c\xfe\xc4\x36\xdd\x03\x8e\xbe\x0f\xfe\x20\x56\xf9\x07\x4e\xe6\xee\x4b\xac\xf2\x4f\x1c\x3a\xf3\x99\xa8\xf7\xf0\x0b\xc5\x4e\xe6\xc6\x85\x5c\x2a\xf4\x93\x96\x79\x4f\x5e\xf0\x84\x3c\xfb\x00\x7d\xc4\x0f\x57\xf6\x8d\xee\xbf\x6f\xe1\x3d\x1d\x44\x26\xe8\x04\x67\x26\x07\x26\x30\x41\x1d\x72\xa1\x66\x8a\x82\x77\xec\x45\x24\x8e\x7d\x69\xec\x9d\x36\x5d\x59\xa2\x4b\xf4\xdc\xc4\xd0\x21\xfa\xb9\xb6\x41\xd3\x84\xde\x98\x9f\x3e\xf4\xc6\xbe\xb1\xe1\x34\x1e\xde\x24\xfc\x85\x15\xbd\xe2\xc3\x85\xd1\x2a\x2c\xbf\x2e\x1f\xd9\x24\x3e\x46\x71\xfc\x8c\x9d\x84\xbb\x48\x63\x29\x8e\xe6\xdb\x67\xe5\x6b\x87\xc4\x67\xc6\xe1\xcd\xd8\x88\x18\xd3\x06\x1b\xda\x62\x2c\x8b\xb3\x41\x18\x56\x3b\xca\x34\x47\x3d\x88\xdc\xe9\x3b\xc6\xdc\x5a\x71\x5f\x63\xb6\x5a\xb4\x73\xc1\xe8\x64\x13\x4b\xb2\x22\x37\xd4\x86\xbf\xb0\xe3\x14\x7b\x1f\xdf\xdc\xa9\xf8\xec\xfc\x8c\xbc\x4e\x24\x69\xe4\xd2\x71\xcd\xe9\x7b\x3b\x82\x72\xf1\x36\x53\xfc\x85\x38\x64\xea\xb2\x36\x67\x7c\x22\x66\x74\x57\x99\x7a\x12\x13\x3e\x13\xd7\x51\x2e\x82\xa6\xcd\x54\x5b\x0f\xa1\x69\x97\xde\x5a\x6c\xcb\xed\x45\xd1\x1c\x13\xdb\x32\xd7\x96\x35\xa1\xb6\x1e\x44\xd3\x2a\xfc\xaf\x88\xa0\x59\xe4\x65\xc1\x52\xa2\x32\xfa\x52\x4e\x5b\xda\xad\x75\x97\x4f\x5e\x77\xff\xe3\x74\xe7\xcc\x27\x3e\xb7\x6f\x69\xcc\xba\x3b\xea\x98\xa1\x78\xb9\x34\xcf\xf3\xb7\xb1\x5c\xea\x70\x85\x9b\x3a\x40\xc8\xc4\x88\xd3\x6a\xc0\xb8\x45\x34\x0d\xa6\x37\xb9\xda\x22\xef\x3d\x10\x12\xaf\xd0\x43\x86\x8d\x83\x76\x5f\x5b\x14\x32\xce\x31\xa1\xc0\xe6\x47\x5d\x12\xed\xb6\x78\xdf\x0d\xe9\x3d\xda\x59\x23\xc1\xa5\xde\xee\x4d\x9a\x20\x1c\xa6\x0f\xf0\xd6\x53\x51\xb8\x6a\xbd\x34\xb4\xa7\x1a\xdb\xe6\x4c\xda\xe5\x3d\x48\xba\x03\xa1\xff\x22\xf7\xda\x1f\xec\x7c\x3e\xd8\xf9\xc8\xc0\xb3\xc7\x1e\x1e\x7c\xb6\x7b\xf6\x33\xc5\x12\xf8\x63\xd2\xa1\x49\xce\x69\xb6\xd0\xd8\xb4\x6f\x17\xe3\x42\xdb\xda\x22\x65\x9c\xbf\x14\x46\x95\x2d\x72\x08\x33\xe2\x14\xdb\xf6\x27\x33\xe2\x76\x66\xf3\xf8\xb3\xfb\x8a\x85\x75\xd1\x6e\x60\x93\x10\x80\x5a\x55\x2f\x8a\xf9\xf7\xef\xca\x27\xc9\xa8\xd3\x4a\xbf\xd3\xf9\xb8\x54\x32\x58\x81\x33\x47\xdb\xf7\xa4\xb2\x9a\x2f\xca\x5b\x18\xfd\x14\x54\xfd\x47\x32\xbe\x6e\xa7\x5a\xf4\xb2\x15\xcc\x3f\xbc\xcd\xb0\x94\x3b\x5e\xd7\x34\xda\xd3\x2d\x6a\xf3\xc6\x8d\xdf\x8e\x03\x5a\x8e\x46\xd5\x95\x3e\x24\xf3\x2e\x57\xcd\xa7\xfa\x96\x3c\xda\xa8\x36\x46\xdd\xba\xe6\x62\xe3\xee\xdb\x8e\x73\x3b\x7b\xe4\xb2\xee\x00\x1f\xde\x41\xd4\xdf\x9c\xaf\x3c\xe3\x7c\x67\x59\x4f\x79\x6b\x46\xab\x89\x6b\xda\xc4\x96\x6f\xa2\xff\xd8\x9e\xaf\xc6\x8f\x1a\x0f\x4d\xf6\x44\x05\xf7\x49\x53\xbb\xa3\x1a\xf1\xde\x3e\x9d\xf3\xa9\x51\x59\x93\xed\xe1\xa8\x1b\x6a\xd9\xdb\x79\x38\x93\x01\x77\x45\x4e\xcd\x38\xc5\xd3\xce\xbd\x21\xda\xed\x36\xc8\x62\xbc\x3f\x7d\x54\x35\xf3\x11\x68\x79\x3a\xe7\x4f\x1f\x19\x71\x3f\xb9\x2d\xbf\x47\x53\xc4\xdf\x9d\x56\x08\x40\xb8\x63\x29\x6f\x53\x2f\xe4\x9a\x8e\x39\x07\xc7\x2d\x23\x64\x0b\x22\x5b\xb7\xec\x9a\xec\x80\xa6\x59\x27\x54\x0f\xe7\x23\x4f\x73\x36\x20\xb6\xbb\x66\xa8\x42\x45\x81\xe1\x39\x5c\xf6\x8d\xe2\x92\xf5\x51\x9e\x47\x67\xe4\xe5\x80\x53\xc0\x24\x26\x77\xd6\xb1\xb4\x3d\x9b\xa7\x6d\x18\x3b\x7e\xa8\xce\x4f\x0c\x81\x4d\xd7\x8a\x82\x46\x67\xf9\xe9\xe1\xf1\xfc\x34\xf5\x26\x20\x93\xf8\x30\xfe\x70\xb1\x8b\x2c\xbc\xaf\x28\x6c\xea\xc4\x3d\x44\x01\x13\x05\xb1\xc5\x34\xca\x67\x96\x74\x84\x55\x9c\x15\xa4\x56\x51\xc8\xd3\xc9\x87\x4f\x79\xff\x5c\x3b\xde\xcb\xe4\x8e\xa0\x70\xe8\xcd\xce\x42\x64\x54\x87\x46\x56\x50\xf9\x20\x2a\xa9\x0f\x72\x63\x30\x98\x71\x06\x91\x52\xf7\x3a\xe9\x95\xcb\xe3\x7e\xcc\x1f\xa5\x94\x97\xcb\xee\xa8\x3b\x00\x77\x00\x71\x05\x0f\xab\x90\xe4\xd6\x11\x83\x36\x31\x8d\xcb\x65\x77\x00\xb0\x37\xa8\xad\xc4\x7a\x4b\x0d\xaf\x60\x86\xc3\x41\x6d\x85\x7e\xbe\x20\xf5\x2c\x59\x3a\x1d\xf0\xdc\x07\x84\x0b\xbc\x12\x0c\xd4\xe1\x52\xcc\x65\x63\x1a\xf6\xec\xdd\x42\xfa\x04\x69\xa6\x4b\x99\xbb\x1f\x8c\xb4\xcb\x65\x79\xc6\x25\x8d\xaf\x4f\xac\xf6\xc9\x7e\xf5\x80\x11\x10\xb6\xc2\xe7\xf1\x19\xee\xf1\x5a\xdf\x17\x33\xf7\x49\xda\x21\xe0\x34\x42\x59\xb2\xa8\x93\xbe\xf6\xe6\x27\x7d\xbe\xeb\x06\x5b\x88\xe7\x6a\xc7\x70\xa5\xc6\x05\xd3\x09\x31\x86\x8f\x91\x33\x41\x9b\x38\x38\x4c\xbf\xf4\xfc\xf8\x28\x3d\x23\x18\x76\x76\x3e\x4d\x95\xde\xb6\x9f\x3a\x43\x98\x56\xf3\x1c\x2c\xcf\xd8\x92\x5c\x8e\x67\xfa\x63\xbf\x4b\x9e\x39\x1c\x75\x26\x67\x38\x9a\x6a\x92\x63\x72\x1c\x17\x6c\x97\xcf\x92\x58\xca\x6a\x3a\x54\x24\x17\x2e\x52\x8a\x2f\xf9\x20\x4a\x2f\xd3\xd6\x8b\x1e\xfd\x46\x46\x6f\xb3\xbc\x05\xcb\x33\x02\x2b\xf0\x8c\x10\x99\x54\x60\x95\x31\xcf\xb0\xb2\x6f\xbf\x44\xa5\x56\x81\xcc\x62\xe0\x09\x51\xdf\x72\x50\xf6\x9d\x58\x54\x14\xf2\x32\x23\xb0\xd1\x8c\x66\xc4\xa0\x5c\xd6\xaf\xe9\x4f\xa9\x0c\x8f\x33\xba\x22\x95\x08\x37\x40\xb2\x5b\x89\x7a\xb4\x97\x1d\x2a\x8f\x78\x0b\x6c\x7c\xc8\x44\xed\x7f\x2c\xff\x1d\x13\x69\x1a\xdf\x51\xae\x32\x9e\x08\x62\x4e\x22\xc2\x5c\xc5\x06\x42\x8c\x15\xb4\x64\x3f\x70\xcf\x7b\x59\x02\x7b\xd6\x3c\xa3\x6d\x82\x5d\xea\x48\x6d\x4b\x08\x2a\x2f\x9d\x85\x0d\x42\xd0\xc5\xcc\x0c\x01\xec\xf2\x3c\xea\xa5\xcf\x82\x60\xde\x78\xb3\x75\x4c\xca\x65\xa2\x1f\x13\xe7\x5a\x97\x15\x88\x74\xdd\x7a\xbe\x42\x94\x58\xe9\x36\xab\xab\x96\x8a\x3a\xb4\xa5\x2a\xd3\x09\x28\x08\x3b\x7d\xdc\xd5\xcd\x99\x5c\xd7\xc3\x2d\x56\x1f\x8d\xac\x8a\x33\xa4\x42\x96\x3f\x28\x37\x47\xc4\x79\x15\xc7\x75\x2b\x93\x85\x79\x85\xf1\x61\x8b\x27\x0b\x9b\x74\xcb\xa0\x5e\xb0\x14\x4f\x25\x86\x30\x41\x49\x21\x6b\x59\xcb\xe2\x98\x51\x2c\x66\x49\x99\x8d\x44\x1d\xa7\x70\xa0\x10\x82\x5d\x85\x5a\x6c\xc6\xa2\x6d\xac\xb7\x47\x72\xd8\xf6\xf2\x49\x76\xbb\x2e\x5f\x2c\x17\xf3\xea\xe4\xa9\x3c\xa9\xd0\xa4\xe9\x35\xae\xe0\x74\xc4\xdb\xde\xa4\x9a\x58\x70\x3c\xe1\x93\x91\xc1\xb7\x96\x96\xb8\x1f\x06\xdc\x75\x6a\x0e\xc2\x6c\xd4\x1d\x45\x33\x0d\x3c\xdc\xac\xb7\xf0\x7c\x1d\xb5\xa4\xd2\xa0\xd6\x8e\xf9\xfd\xd1\x01\x78\x4c\xb1\x3f\xaa\x54\x10\xf3\x58\x51\xc9\x48\x97\x04\x4b\x9a\xdc\x5d\x95\x7d\x42\x33\xd5\x5d\x55\x30\xae\x34\xc2\x41\xf6\xfe\x28\x93\x33\x77\xc0\x33\xd5\x65\xd5\xa4\x0a\x72\xad\x05\xf6\xe1\x76\x7b\x93\x7b\xa4\xf6\x76\xef\x91\xb2\x97\xe4\xef\xa7\x0b\xa4\xee\xea\xa7\x3f\xf1\xc2\xbe\x0f\xfb\xc5\xc7\x97\xfa\x98\x30\xe7\xb8\x7f\x93\x4b\xa4\x7d\x5b\xbd\x44\x9a\xc7\x4e\xdc\xf7\xa3\x89\x07\x17\xd9\xf6\xe5\xc9\x61\xf6\x8c\x6b\xdf\xd4\x47\x5c\xf7\xf7\x26\xc6\x42\xf4\x7d\x76\x05\x53\xe0\x69\xfb\xfd\xc5\x8b\xcb\xc7\x8e\x7c\xfe\x93\xc7\xea\x47\xc6\x5c\x66\xc2\x16\xb5\x9c\x32\x55\xfe\xf4\x7a\xf3\xa3\x15\x73\x44\x36\xe1\x3c\xa4\x6e\x85\x2a\x9b\x78\x1e\xb2\xe9\x5d\x22\x9c\xf7\x00\x7b\x4f\x46\xab\x1a\xf9\x2b\x24\x7f\x74\x8b\x9b\x6a\x01\x7e\x52\x7e\x6b\x15\xde\x3f\x7e\x14\xef\xcb\xfb\xf3\x96\xd9\xee\x3f\xb3\x8f\xf4\xe1\x7d\xc6\xf3\xb9\xc8\x14\xef\x2f\x7e\xa7\xa4\xf2\xe1\x27\xce\x9d\xae\x8f\x35\x9a\xcb\xc4\xb3\x28\x62\xf6\x5d\xbd\x7b\xdf\xb5\x1b\x8a\x91\x70\x20\x53\xdd\xba\x8f\xb9\x73\x1f\x39\x5b\xdb\x94\xb3\x77\xcc\xd5\x59\xfc\xdf\x67\x1c\x0d\x61\xc0\x76\xe5\x22\x7d\xd7\x38\x3d\x98\xcc\xe9\xfd\x33\x87\xbb\x1f\x89\x57\x83\x31\x9c\x3e\x65\x54\x20\x73\x45\x51\x78\x29\x3a\x36\x3a\x90\x15\xdd\x6c\x13\x6b\xd1\x87\x8b\x8e\xcf\xb7\x12\xc7\x05\x2a\x7a\x64\x3b\x17\x4a\x30\x01\xb2\x8b\xd0\x23\xea\x22\x04\xba\x99\x8f\xb9\x5c\x70\x0c\xfe\x91\x91\x3b\xb9\x7d\x93\xfa\x57\x90\x2d\x13\x79\x73\x1b\x57\x1d\x53\x2f\x7b\x80\x4c\x35\xe0\x64\x25\x5d\xf9\x3e\x8a\x3f\x5c\x88\x30\xd8\x97\x4e\xa5\xe9\x65\x83\x24\xd9\x61\x23\xf5\xed\x42\x2e\x7a\x64\x76\xb1\xdf\x7e\xb4\x98\xa9\x55\x5a\x69\xaf\x57\x5d\xe2\x91\x93\xb1\x44\xb5\x82\x0b\xe2\x8c\xb5\x69\xb1\xe1\x6a\x66\xef\x3a\x36\x3f\xc8\xda\xeb\xaf\x6d\xef\xae\x62\xdc\x58\x17\xf3\xec\x3e\xc5\xb3\xfd\xd1\x80\x5c\xf3\x9b\xf2\x94\x1a\xdd\xa9\x98\x87\xfb\x7c\x10\x57\x83\xb6\x7d\xdf\x3d\xf5\x8d\x89\x7d\x6d\x21\x27\x14\x23\x7e\x87\x46\xe1\xea\x68\x80\x91\x1d\x2f\x28\x5a\x66\x67\x8c\x6a\x69\xd1\x51\xfb\x44\x8b\x59\x6d\xd4\x4a\x46\x7d\x92\x8c\x35\x91\x85\x07\xf3\xca\x26\xc6\x66\x15\x75\xea\x26\xb6\xc0\xe9\x93\x60\xec\x7b\x91\xb5\x73\x8e\x3d\xcd\x47\x38\xf4\xc4\x06\x7f\xe0\x6d\xb6\xef\x8e\x46\xcc\x51\x1d\x84\xdb\x99\x4a\x3b\xde\x5a\x82\x6d\xf3\xa8\xc1\x18\xf3\xa8\x4e\x93\xb4\xbc\x81\x36\x8f\xea\x64\xcd\xa3\xec\x9f\xb8\x93\x37\x8f\xea\x8c\x35\x8f\xea\x0c\x87\x9d\xbc\x79\x54\x27\x6b\x1e\xd5\xf1\xc2\x69\xcc\xa3\x6c\x4f\x46\xdc\xf5\x71\x2c\xbd\xe2\x91\x04\xe1\x0e\xc2\x6d\xcb\x3c\xaa\x93\x33\x5e\xea\x68\xf3\xa8\x4c\xfa\x62\x67\xd4\x3c\xaa\x6d\xcc\xa3\x3a\x93\xcd\xa3\xf2\x2d\x14\x2f\xe9\x02\xc5\x8e\xe8\x9e\x62\x85\x48\xa9\x33\x22\x35\xc4\x03\xdc\xc6\x1d\x4b\x35\xa1\x13\x8f\x41\x02\x4c\x37\x3b\x06\xe9\x91\xb0\x4f\x58\x3c\x37\xf1\xaa\xd1\xd6\x5f\x0a\xea\x18\xf0\x20\x8c\xe7\xd4\xbe\x48\xc2\x9b\x68\x34\xc6\x30\x8f\xb9\x4d\xd2\xb2\xbc\x8f\xf3\x5a\x10\x4b\x33\x2c\xe4\x12\xb4\x1d\xab\x30\x89\xdc\xd3\x02\x37\x75\x87\x77\x44\x55\xe7\xb1\x51\x65\x48\xd0\x14\x2e\xcc\x3e\x2e\x89\x50\x53\xb4\x70\x99\xad\xfb\x45\x3b\xa2\x9f\x65\x0a\x30\xd5\x6e\xc6\x50\x86\xbb\x4d\x82\xb5\xb7\x39\x75\x62\xce\x53\x33\xf8\xa0\xeb\x82\xfb\x47\xf5\x2e\x8d\x23\xb4\x06\xa7\x86\xcc\xab\xef\x67\xe9\xa9\x21\xab\x54\x90\x95\x5f\xbb\x8b\x14\x32\x22\x35\xac\xaf\xcf\x18\xc1\xa2\xe7\x49\x36\xbb\x18\xc1\xdd\x19\x0d\xcb\xbd\x67\xe1\x80\xb0\xc2\x01\xe1\x5b\x51\xc6\x15\x33\x0a\xf1\x3e\x10\xda\x4a\x57\xfb\xf5\xac\x06\xdd\x6a\x7a\xe5\x7c\xff\x37\x97\x76\x9d\x19\xa2\x02\x66\xee\xda\x32\xe1\x0d\x17\x79\x0b\x04\xc7\x02\x52\xf7\x89\x46\x56\xb0\x45\xd2\x60\x09\x4a\xa6\xea\xae\x3d\xf7\xb6\xce\x6a\x06\xc5\xd9\x59\x52\x2e\xcf\xce\x66\xdc\x92\xa6\x27\x1a\x68\xe4\x1b\x6c\x5a\xad\xa7\x98\x0c\xce\xbe\x99\x07\x6c\x55\x32\x1f\x89\xab\x9c\xf6\x46\x08\xb8\x35\xf0\xea\xfb\x83\x03\x69\xa5\x11\x76\x14\xe3\x3a\x68\x7f\x50\xa9\x80\x57\xa6\xa8\x46\xe5\x50\x1c\xe4\x8b\x29\xe8\x06\xa8\x11\x35\x83\xd6\x0c\x77\x29\x5a\xb4\x9f\x8b\x52\x0b\x35\xd4\x60\x95\x4a\x92\xb8\x04\x61\x96\xa2\x29\xc4\x12\x53\xb5\x47\x85\x88\x06\xea\x55\x0a\x78\xd5\xac\xce\x9b\x63\x79\xea\xd5\xf7\x53\x0b\xe5\xc0\x42\x99\x02\xca\xbe\x17\xa4\x28\xa7\xa0\x4b\x51\x23\x68\xd2\x96\xbc\xb3\x72\x7d\x64\xae\x09\x2c\xe4\x7d\x1b\x79\x99\x71\xa1\x3a\x6f\x2c\x03\x12\x70\xaf\xee\x0b\x1e\x81\xe4\x68\x26\x12\x9d\x04\x5c\x13\xf9\xf4\x05\x3a\x13\x6c\xda\x57\x4c\x75\x6f\x87\x43\x76\xa0\xae\x2b\x5d\x03\x15\xbb\x31\x3b\xaf\x23\x5d\x80\x67\x3d\xed\x1e\xb4\x6e\xa2\x95\xe5\xe8\xa0\xed\x1e\x0e\x78\xac\x5c\xf6\x0f\xc4\xfb\x55\xe3\xf1\x18\x9a\xf8\x82\x26\xbe\xa6\x49\x5c\x48\x93\xd8\xa2\x09\xa6\xc3\xa1\xcd\x87\xb1\xed\x3a\x57\x11\x6c\x94\x5a\x91\x45\xad\xb4\x63\x93\x6a\x82\x2e\xc7\x89\xa4\xad\xaf\x98\x08\xcf\xce\xa3\xe1\x70\x02\x69\x92\xac\xb5\x3b\xcc\x85\x35\x33\x8d\x1a\xa4\x66\xe0\x34\x80\x88\x31\x47\x27\xb9\x60\x73\xae\x85\x52\xb9\xec\xb2\x9a\xb9\xd9\x24\x06\xcc\x70\xb6\xaf\xcd\xab\x35\x1b\x8a\xf9\x88\x63\xef\xa8\xcf\x7b\xb5\x95\x20\x72\x15\xe0\x9f\x73\xd5\xc2\x5c\xa1\xb8\x8e\xb0\x5f\x9d\x47\x38\xed\x54\x08\x7d\x1a\x24\x9e\x60\x9e\x58\x0f\xe8\xa0\x5c\x0e\xf7\xc3\xf0\xc8\x0f\x15\x8f\xa2\x99\xd0\xe3\x06\x15\x3c\xf0\xb8\xbe\xa1\x82\xb5\x64\xb0\x9d\xa5\x43\xeb\x01\x72\x9d\xb0\x23\x92\xc8\x95\x3c\xe3\x9b\xcb\x8b\x30\x84\x96\x39\xc8\xe5\xed\x9b\x17\x60\x52\xe8\x4d\xcd\x12\xca\x58\x3f\x8f\x36\x9e\xdf\x7c\x1c\x7b\x75\x1c\x7a\xb3\xf3\x78\x20\xef\xd0\x67\x67\xc3\x82\xa9\xd2\xc6\x1d\x95\xbf\x67\x71\x7e\x3b\xc7\xf9\xe2\x7b\xd7\xab\xef\xef\x1e\xe8\xed\xef\x82\x44\xe8\x79\xed\x94\xfb\x53\xd0\xed\xa2\x46\xbb\xd9\x6d\xe1\xbe\x67\xb3\x62\xcf\x66\x45\xe5\x9a\x77\x38\x9c\xed\x2b\x8b\x21\xb7\xa7\xdc\xe2\xdb\x33\xa4\x67\xcf\x90\xce\x70\xd8\x47\x78\xe0\xc2\x0a\xaf\xdc\x10\x46\x6e\x0f\x33\xb4\xe0\xd5\x17\xdd\xf8\x40\xb0\xe8\x0f\x87\xae\xef\xf5\x50\x23\xf4\x7a\x38\xae\x54\x50\x23\xae\x54\x44\x53\x56\x39\x60\x79\x1c\x0e\x87\x7e\x22\xc9\x6a\xb9\xdf\xf3\x2c\xc2\x28\x7a\xfa\x86\x9e\x20\x19\x0e\xba\xc8\x84\x30\x14\x78\xb2\x02\x5a\x0d\xbc\xfa\xfe\xc1\x81\x70\xff\x00\x68\x15\x7a\x2c\xa5\x55\x0a\xba\x03\xd4\x60\xcd\x81\x94\x14\xb3\xfe\x70\x68\xd1\x2b\xcc\x08\x01\x49\xa4\xb0\x50\x92\x84\x36\x9d\x24\xca\x68\xc6\xf6\x33\x60\xb0\x5b\xa8\x97\xcb\x71\xad\x3f\x88\x7b\x2e\x75\x43\xe9\x98\x52\x85\xc9\x70\x43\x1c\x09\x2a\x9a\xcf\x21\x02\x56\x8f\x93\x54\x03\xb0\x7c\x8b\xa4\x7c\x67\xc5\x0e\xca\x38\x61\x4c\xbd\x2e\xb2\x04\x5c\x28\xf2\xe1\x90\x89\x9e\x1a\x8d\x20\x18\x0e\xa5\xa7\x67\xc1\xbe\x81\xb1\x15\x13\xf3\x3d\xc0\xf3\x26\x6e\x51\xa0\x6c\x0e\x0a\xfd\x5a\x7a\x3e\x16\x5b\x52\x16\xf4\x1f\x0b\xfc\x36\x0b\x78\xd0\x8e\xbd\x30\xc5\x59\x3b\x2b\xf4\x0a\xf7\x4e\xa1\x4b\x50\x8d\xd3\x67\xfa\x7d\xc2\x0e\xf9\x72\xaf\xa5\x27\xa2\x1b\xba\x3c\xf7\x09\x59\x94\xc8\xfb\x42\x9c\xba\x7a\xb9\xfd\x8d\xc5\xfc\x2d\x6a\x41\x3a\xf2\x4c\xcc\xcb\x8f\x35\x67\xe3\xd5\xbf\x3a\x0d\xe7\xa0\x83\x9d\xff\xdf\xdf\x7f\xa6\xa1\xeb\x5f\x00\xe0\x8b\x00\x7c\x49\x03\xeb\x57\x7f\x69\xa0\x37\x0d\xf4\x6b\x03\xbd\x05\x05\xbe\xac\x81\x1b\x50\xd7\x8d\xb4\x8a\x3f\x1a\xe8\xf7\x06\xfa\x8b\x81\xfe\xa4\xa1\x3b\xd0\xd2\xed\x9f\x42\xa5\x2f\x42\xca\x45\x93\xfb\x0d\xf8\xf6\x12\x7c\xbb\x0a\xc0\x37\xa1\x22\x40\xe1\x4e\x8a\xc2\x4f\x0d\xf4\x5b\x03\x01\x21\xd6\x2f\x1b\x9c\xa1\xc1\x3b\x50\xe9\xc6\xa5\x3f\x68\xe8\xde\xeb\x12\x51\xd9\xf6\xcb\x02\x3a\x2c\xda\xfc\xbb\x81\xde\x00\xe8\xde\xeb\xb2\x6f\x4f\x49\x50\xb6\xf1\x8c\x04\x2f\x0b\xf0\x53\x12\xbc\x9a\x82\xb2\x82\xcf\x88\x96\x5e\xfd\x9b\xd3\x70\x1e\x95\x03\xf3\x86\x86\xd6\x2f\x7f\xc9\x40\x2f\x1a\xe8\x65\x0d\xdd\xfd\xb2\x06\x6e\x41\xae\x5b\x5f\xd4\xc0\xc6\xab\xa2\xb5\x43\xb2\xb2\x9f\x6b\xe8\xc6\xcb\x00\x7c\x15\x80\xaf\x03\xf0\x0d\x0d\x5c\xff\x8a\x06\xd6\x2f\x43\xa6\x5b\x90\x74\xe7\x9a\x06\xee\xbd\xfe\x4f\x0d\x6d\xbc\x7a\xc5\x69\x38\x8f\xc9\x66\xde\xd4\xd0\xfa\xe5\xaf\x6b\xe8\xc6\xb7\x4c\xd2\x37\x0c\xf4\x6d\x03\xbd\x6a\x20\xc8\x77\x03\x3e\xde\x7a\x05\x00\xa8\xeb\xd6\xd7\x34\x70\xef\x02\x34\x79\xfb\x92\x00\x3e\x2b\xa0\x17\x0d\x24\xc6\xe8\xb1\xcf\x0b\xe8\x25\x80\x36\x5e\x15\xe4\x3e\x2c\x91\xfc\x85\x86\xae\x7f\x15\x80\xaf\x01\xf0\x75\x0d\xac\x5f\xfb\x02\x40\x57\xff\x69\xd2\x5e\x34\xd0\x97\xcc\xd7\xbf\x6b\xe8\xc6\xab\x90\x74\xf9\xbb\x06\xfa\x3e\x7c\x84\xa4\x1b\x90\x72\xfd\x15\x53\x03\x20\x76\xe3\x47\x1a\xb8\x03\xed\xdc\x79\xd9\x64\xba\x6c\x9a\x86\xb4\x3b\x6f\x99\x66\x5e\x87\x1a\x7e\x60\x92\x52\x08\x6a\xbd\xf5\x6d\x00\xbe\xa5\x81\x8d\x57\xc5\x60\x3e\x2e\x69\xf2\x4b\x0d\xad\x5f\xbe\xa8\xa1\x5b\xdf\xd1\xc0\xbd\x0b\x90\x6d\xe3\x55\xd1\xdb\x8f\xc9\x02\xbf\xd2\xd0\xed\xbf\x68\xe0\xc6\xeb\x1a\x58\xbf\xfc\x53\x48\xba\x08\x00\xa4\xdc\xfe\x25\xa4\xbc\x01\x29\x6f\x6a\xe0\xd6\x79\x0d\xdc\xbb\x08\xb9\xef\x5d\xf8\x87\x81\xfe\xa9\xa1\x8d\x57\x45\xda\xc7\x25\x0e\x6f\x69\xe8\xc6\x9b\x1a\x58\xbf\xfc\x86\x81\x7e\xa9\xa1\x3b\x17\x4d\x52\x9a\xed\x2d\x03\xfd\x1a\xea\x80\xfc\x1b\x97\x7e\x65\xa0\x77\x34\x74\xef\xe2\x37\x21\xed\x55\x81\xc8\x11\xd9\xfc\xdb\x1a\xba\xfe\x0d\x00\xbe\x09\xc0\xb7\x34\x70\xe3\x2d\x00\x7e\x0d\xc0\x6f\x01\xf8\x23\x64\xfe\x6f\x0d\xac\x5f\xfe\x3d\x40\xd7\xbe\xaa\xa1\xdb\xf0\xf1\x0e\xa4\xdc\xf9\xba\xc9\x04\xd0\x0d\x53\xee\x32\xd4\x7e\xeb\x35\x0d\x6c\xbc\xfa\xae\xd3\x70\x3e\x21\x11\xfe\xb5\x86\x6e\xfc\x45\x03\x77\xbf\xaa\x81\x8d\xf3\x82\xdf\x3f\x29\x73\xfd\x46\x43\xeb\x97\xff\xa8\xa1\xdb\x6f\x99\xa4\x3f\x69\xe8\xc6\x5f\x4d\xd2\x5f\x34\x74\xeb\x07\x1a\xd8\xb8\xf4\xb6\x86\xee\x5d\xf8\x82\x81\xbe\x64\xa0\x17\x01\xba\xf8\x06\x94\x38\x2f\x64\xd6\x13\xb2\xf9\xdf\x6a\xe8\xc6\xbb\x00\x5c\x01\xe0\x1f\x1a\x58\xbf\xfc\x57\x03\x5d\x86\x8f\xd7\x4c\xd2\xdf\x0d\x74\x55\x43\x37\xa1\xfa\x3b\x50\xc5\xc6\xa5\x37\x0c\xf4\x53\x0d\xdd\xbb\xf0\x55\x03\xbd\x0c\xd0\xc5\x2f\x68\xe8\xb6\x10\x81\x4f\x08\x62\xdd\x96\xd9\x3e\x27\xf1\x16\xbd\x3a\x2a\xf1\xfe\x9d\x86\xd6\x2f\xff\x13\xa0\x2b\x5f\x30\x10\xe4\xdb\xb8\xf4\x7b\x0d\xdd\x7a\x1d\x92\xce\x0b\x11\xfe\xa4\xac\xe4\xf7\x1a\xba\x7d\x59\x03\x37\xe1\xdb\xf5\xef\x68\x60\xfd\xca\x8b\xf0\xed\x2b\x26\xe9\x65\x48\x7a\xc9\x24\x7d\xdd\x40\x5f\xd5\xd0\x9d\x9f\x6a\xe0\xd6\x05\x0d\xdc\xbb\xf8\x6d\x03\xbd\x09\x4d\xcb\x82\xb2\x9f\x42\x46\x3d\xa9\xfa\x29\xda\x7c\x4a\xa2\xf8\x07\x0d\x5d\x7f\x15\x80\xf3\x00\x7c\x57\x03\xeb\xd7\x5e\x35\xd0\xb7\x0d\xf4\x7d\x03\x41\xbe\xeb\xdf\x83\xa4\x2b\xdf\xd0\xd0\x9d\xdf\x9a\xa4\x6f\x69\xe8\xe6\x37\x4c\x92\xa9\xec\x0a\x34\x70\x13\x72\xdd\xf9\x3d\x00\x7f\x84\xda\xa1\xc1\x3b\xbf\x36\x2d\x9b\x3a\xa1\xa6\xdb\xdf\x81\x4c\x06\x03\xc8\x73\xeb\xa7\xa6\xd8\xeb\x06\xfa\x91\x81\xd2\xaf\x17\x0d\xf4\x86\x81\x0c\xce\xd7\x7e\x00\x2d\x01\x16\xb7\xa1\x8b\xd7\xcd\xa7\x7f\x42\x93\x2f\x03\xf0\x13\x0d\xdc\xbb\xf0\x75\x03\x41\x9d\xb7\x64\x33\x47\x64\x9a\x44\x56\xa2\x2d\x13\x9f\x91\x83\x25\x98\xe0\x69\x39\x58\x7f\xd4\xd0\xfa\x95\xef\x1a\xe8\xfb\x1a\xba\xf5\xa6\x06\x36\x2e\xfd\x5c\x43\xf7\x2e\x7c\xdb\x40\xaf\x1a\x08\x8a\x6e\x9c\x17\xe8\xfd\x97\xac\xf8\x92\x86\xee\x5d\xf8\xbe\x81\x7e\xa0\xa1\xbb\x5f\xd7\xc0\xc6\x79\xc1\xa1\xc7\x64\x81\x3f\x69\xe8\xe6\x77\x35\xb0\x7e\xe5\x07\x90\x04\xc0\x9d\x6f\x03\xf0\xaa\xc9\xf4\x23\x03\xbd\x0e\xd9\xbf\x6f\x92\x2e\x6a\xe8\xee\x37\x34\xb0\x71\xe9\x4d\x0d\xdd\xbb\x00\x25\xef\x5d\xfc\xa5\x81\xbe\x04\xf9\xce\x8b\x49\x71\x5c\x62\xf6\x67\x0d\xad\x5f\xbd\xa8\xa1\x9b\x3f\x82\xa4\x2b\x6f\x42\xd2\xeb\x26\xe9\xa7\x90\xf4\x53\x93\xf4\x4b\x03\xbd\x61\xa0\xb7\x34\x74\xe7\x07\x90\x1f\xaa\xdf\xb8\xf4\x4f\x0d\xdd\xbb\xf8\x96\x81\x5e\x84\xaf\xe7\x85\x36\x72\x42\xa2\xf6\x17\x0d\xad\x5f\xf9\xb5\x86\x6e\xbe\x69\x92\x7e\xab\xa1\x3b\x3f\x82\x6f\x6f\x98\x6f\x7f\x34\xd0\xef\xe1\xe3\x2f\x35\x70\x0b\xca\xdd\x82\x4f\x77\xfe\xa9\x81\x7b\x17\x5f\x06\xe8\x75\x81\xd8\x89\xcf\x4a\x7c\xc4\x70\x3e\x23\xf1\x79\x47\x43\xd7\x7f\x08\xc0\x8f\x00\xf8\xb1\x06\x6e\xbe\xa5\x81\xf5\x2b\x97\x21\xe9\xd7\x26\xe9\x2a\x24\xfd\x16\xca\xbd\xae\x81\xdb\x50\xc1\xed\xd7\x00\xf8\x1e\x00\xd0\xda\xfa\xb5\x5f\x42\xf9\xdf\x03\xf0\x47\xc8\x74\x5e\x03\x77\xbe\x0b\xc0\xf7\x35\x70\xeb\x0f\xa6\xbc\xc1\xe4\x9a\x41\xf3\xda\xef\x0d\xf4\x5b\x03\xfd\xd1\x40\x6f\x1a\xdc\xff\x04\x4d\xfe\xc9\x24\xfd\xd5\x40\x7f\xd1\xd0\xdd\x17\x35\xb0\x71\x5e\x48\xcf\x4f\x49\xb2\xfd\x55\x43\xeb\x57\xfe\x6e\xa0\x7f\x6a\xe8\xd6\x9f\x34\x70\xef\xc2\x45\x0d\xdd\x7d\xc9\x24\x09\x16\xfb\x94\xdc\x18\x9c\x17\x2c\xfe\xac\xac\xee\x6f\x1a\x5a\xbf\xfa\x05\x03\x7d\x49\x43\x37\xff\x62\x92\x5e\x36\xd0\x8b\x06\xfa\xaa\x86\x36\x2e\xfd\x09\xa0\xf3\x42\x69\xf9\xb4\xac\xf8\xb2\x86\xd6\xaf\x7e\xdd\x40\xdf\xd0\xd0\xc6\x79\x21\x6a\x3e\x23\xf3\x5d\xd1\xd0\xfa\xb5\x3f\x69\xe8\xfa\x05\x0d\xdc\xfc\xab\xf9\x76\x59\x43\x77\x20\xd3\xfa\x55\xa8\xe2\xe6\x65\x93\x2b\xcd\xff\x17\x0d\xdd\xfa\xb3\x06\xee\x7e\xcb\x7c\xfb\xa7\x86\x36\xce\x0b\x7d\xe8\xb3\x12\x8b\xab\x1a\xba\x79\x45\x03\xeb\x57\xbf\x0d\x49\xd7\x00\xf8\x87\xf9\xf6\xaa\x81\xbe\xab\xa1\x5b\xef\x68\xe0\xce\x9b\x1a\xd8\xb8\xf4\xae\x81\x7e\xa3\xa1\x7b\x17\xde\x80\xb4\xf3\xa2\x7e\x5f\x34\xfe\x8f\x2f\x6a\x68\xfd\xea\x8f\x34\x74\xfd\xa7\x00\xfc\x0c\x80\x37\x4c\xa6\x5f\x19\xe8\x17\x06\xfa\x8d\x81\xde\x86\x02\x3f\xd7\xc0\x0d\xa8\xfe\xc6\x97\x4d\xa6\x4b\x06\xfa\x83\x81\xde\x31\xd0\x9f\x35\x74\x07\x5a\xba\x6d\xb0\x78\x13\x52\x7e\x62\x72\x43\x3b\xd7\x01\x9b\xdb\xd7\x00\xf8\x16\x54\x04\x28\xdc\x49\x51\xf8\x99\x81\x7e\x67\xa0\xbf\x01\x74\xd9\xe0\xfc\x92\x06\x36\x2e\x41\xf5\x77\x81\x70\xf7\x5e\x97\x88\xca\xb6\xc5\x5c\xf6\x89\x68\xf3\x1f\x06\xfa\x39\x40\xf7\x5e\x97\x7d\xa3\x12\x94\x6d\x0c\x24\x28\xc6\xda\x3f\x23\xc1\x6b\x29\x28\x2b\x58\x95\x43\x24\xd6\xf3\x25\x39\x44\x5f\xd2\xd0\xfa\xe5\x2f\x1b\xe8\x25\x03\x7d\x45\x43\xb7\xbe\x00\x00\xe4\xba\x7b\x5e\x03\x1b\xe7\x05\xcf\xb4\x65\x65\x5f\xd6\xd0\x8d\xaf\x00\xf0\x35\x00\x5e\x01\xe0\x9b\x1a\xb8\xfe\x2b\x0d\xac\x5f\x86\x4c\xb7\xbe\xaa\x81\x3b\x7f\xd7\xc0\xbd\xd7\xdf\xd5\xd0\xc6\xcb\x2f\x02\x74\x5e\x34\xdd\x91\x0d\xbe\xa8\xa1\xf5\xcb\xaf\x68\xe8\xc6\x7f\x9b\xa4\x6f\x1a\xe8\x3b\x06\x3a\x6f\x20\xc8\x77\x03\x3e\xde\xfa\x86\x06\xee\x7e\x1f\x80\xd7\x34\x70\xef\xc2\x55\x0d\xdd\x16\x23\xd3\x91\xbb\xe6\x97\x01\xda\x38\x2f\xe6\x0a\x91\x08\xbd\xa4\xa1\xeb\x6f\x01\xf0\x36\x00\xbf\xd6\xc0\xfa\xb5\x2f\x02\x74\xf5\x5d\x93\xf6\x92\x81\xbe\x6c\xbe\xfe\x43\x43\x37\xce\x43\xd2\xe5\xef\x19\xe8\x35\xf8\x08\x49\x37\x20\xe5\xfa\x6f\x4c\x0d\xd7\xe0\xdb\x8f\x35\x70\x07\xda\xb9\xf3\x15\x93\xe9\x8a\x69\x1a\xd2\xee\xbc\x6d\x9a\xb9\x00\x35\xfc\xd0\x24\xa5\x10\xd4\x7a\x17\x0a\xde\x85\x94\xdb\x50\x6e\xe3\xbc\xc0\xaf\x2b\x89\xf3\xb2\x86\xd6\x2f\xff\x44\x43\xb7\x5e\xd5\xc0\xbd\x0b\x7f\xd7\xd0\xc6\x79\x41\xfe\x65\x59\xe0\x2b\x1a\xba\xfd\x8e\x06\x6e\x5c\xd0\xc0\xfa\xe5\x9f\x41\xd2\x4f\x00\x80\x94\xdb\xbf\x82\x94\x9f\x43\xca\x2f\x34\x70\xf7\xa7\x1a\xb8\x77\x11\x72\xaf\xbf\x73\x05\xd2\x2e\xbc\xab\xa1\x8d\xf3\x82\x96\x3d\x89\xc3\x57\x35\x74\xe3\x17\x1a\x58\xbf\xfc\x73\x03\xfd\x4a\x43\x77\x7e\x62\x92\xd2\x6c\x6f\x1b\xe8\x37\x00\x5d\xfd\x3e\xd4\x06\x25\x37\x2e\xbd\x65\xa0\xbf\x6a\xe8\x2e\xd4\x71\x4b\xd0\xae\x77\x46\x62\x24\x14\xa4\x40\x62\xf4\x35\x0d\x5d\xff\x2d\x00\xbf\x03\xe0\xf7\x1a\xb8\xf1\x36\x00\xbf\x01\xc0\xe4\xf9\x83\x06\xd6\x2f\x1b\xe8\x1a\x54\x79\xfb\xdb\x1a\xb8\x03\x29\x77\x5e\x31\x99\x00\xba\x91\xd6\x00\x95\xde\x7d\x0b\xbe\x5d\xd2\xc0\xc6\x79\xc1\x26\x9f\x93\x08\x7f\x5d\x43\x37\xde\xd1\xc0\xed\x3f\x6a\xe0\xee\xd7\x34\xb0\x71\x5e\xac\x10\xa7\x65\xf6\x57\x34\xb4\x7e\xf9\x92\x86\x6e\xbf\x6d\x92\xfe\xac\xa1\x1b\x7f\x33\x49\xef\x68\xe8\xd6\x0f\x35\xb0\x71\xe9\xd7\x1a\xba\x77\xe1\x8b\x06\xfa\xb2\x81\x5e\x02\xe8\xe2\xcf\xa1\xc4\x79\xc1\xb8\xa1\x6c\xfe\x1b\x1a\xba\xf9\x05\x0d\xdc\xb8\x0a\xc0\x3f\x35\xb0\x7e\xf9\x6f\x06\xba\x02\x1f\xff\x6e\x92\xfe\x61\xa0\x6b\x50\xd7\xbb\x00\x7c\x49\x03\xb7\x7e\xa4\x81\xbb\xbf\xd1\xc0\xc6\xa5\x9f\x69\xe8\xde\x85\xaf\x01\x74\xf1\x8b\x26\xed\x2b\x1a\xba\x2d\x3f\x2a\xa2\x09\xbd\x70\x45\x62\xfd\x4d\x0d\xad\x5f\x7e\x17\xa0\x2b\x5f\x34\xd0\x97\x35\x74\xf7\x12\x00\x7f\xd0\xc0\xc6\x79\x31\xa5\x22\x59\xc7\xb7\x34\x74\xfb\x8a\x06\x6e\xbe\xa8\x81\xeb\x97\x34\xb0\x7e\xe5\x25\xf8\xf6\x55\x93\xf4\x15\x48\x7a\xd9\x24\xbd\x62\xa0\xaf\x69\xe8\xd6\x45\x0d\xdc\xfd\x13\x64\x87\x4f\xf7\x2e\x7e\xc7\x40\xbf\x00\x1c\xc4\x30\x44\xaa\x97\xa2\x24\x95\x18\xfe\xb7\x86\xae\xff\x09\x80\x3f\x03\xf0\x17\x0d\xac\x5f\x3b\x6f\xa0\xef\x18\xe8\x35\x03\x7d\x0f\x0a\xbc\x03\x49\x57\xbe\xa9\xa1\x3b\xbf\x33\x49\xd0\xd0\xcd\x6f\x9a\x24\x53\xd9\x15\x68\xe0\x26\xe4\xba\xf3\x07\x00\x2e\x41\xed\x7f\x85\x94\xdf\x98\x96\x4d\x9d\x50\xd3\xed\x57\x21\x93\xc1\x00\xf2\xdc\xfa\x99\x29\x76\xc1\x40\x3f\x36\x50\xfa\xf5\x27\x06\xfa\xb9\x81\x0c\xce\xd7\x7e\x08\x2d\x01\x16\xb7\xa1\x8b\xd7\x2f\x43\xca\xbb\x1a\xb8\xfb\x5d\x0d\xdc\xbb\xf0\x8a\x81\xa0\xaa\xbb\x40\xad\x5b\xb2\x19\x29\x19\x24\x24\x15\x8e\x0b\x12\x6d\x2a\x07\x4b\x20\xd4\x97\x83\xf5\x6d\x0d\xad\x5f\xf9\x9e\x81\x5e\xd3\xd0\xad\x5f\x40\xd2\x3b\xff\xd0\xd0\xbd\x0b\xdf\x31\xd0\x79\x03\x41\xd1\x8d\xf3\x42\x74\xbf\x20\x2b\xfe\x8e\x86\xee\xbe\xa2\x81\x7b\x17\x5e\x33\xd0\x0f\x35\xb4\x71\x5e\x10\x89\xc9\x02\xaf\x6a\xe8\xe6\xf7\x34\xb0\x7e\xe5\x87\x90\x04\xc0\x9d\xef\x00\x70\xde\x64\xfa\xb1\x81\x2e\x40\xf6\xd7\x4c\xd2\x4f\x34\x74\xf7\x9b\x00\xfc\x43\x03\xf7\x2e\x40\xc1\x7b\x17\x7f\x65\xa0\x2f\x6b\x68\xe3\xbc\xd0\x78\x63\x89\xd8\x79\x0d\x5d\xff\x89\x06\x6e\xfe\x58\x03\xeb\x57\x7e\x01\x49\x17\x4c\xd2\xcf\x20\xe9\x67\x26\xe9\x57\x06\xfa\xb9\x81\xde\xd6\xd0\x9d\x1f\x42\x7e\xa8\xfe\xce\xbb\x1a\xb8\x77\xf1\x6d\x03\xbd\x04\x05\xaf\x42\xe3\x1b\xe7\x45\x65\x5c\xa2\xf8\x5d\x0d\xad\x5f\xf9\x0d\x40\x57\x5f\xd3\xd0\xcd\x5f\x98\x8f\xbf\xd3\xd0\x9d\x1f\xc3\xb7\x9f\x9b\x6f\x97\x0c\xf4\x07\xf8\xf8\x2b\x0d\xdc\x82\x72\xff\xf7\xab\x1a\xd8\xb8\xf4\x4b\x0d\xdd\xbb\xf8\x15\x80\x5e\x17\xd8\x72\xa5\x6c\x09\x4d\x7d\x20\x51\xfb\x9e\x86\xae\x5f\x01\xe0\x2a\x00\xd7\x34\x70\xf3\x6d\x0d\xac\x5f\x81\x4c\x37\x7f\x63\x92\x4c\xae\xdf\x41\xb9\xbf\x6b\xe0\xf6\xeb\x00\xfc\x00\x80\xef\x03\xf0\x23\x28\x7f\xed\x57\x50\xfe\x0f\x00\x5c\x82\x4c\xdf\xd5\xc0\x1d\x40\xf2\xce\x6b\x1a\xb8\xf5\x47\x53\xde\x60\x72\xcd\xa0\x79\xed\x0f\x06\xfa\x9d\x81\x2e\x19\xe8\x17\x06\xf7\x3f\x43\x93\x7f\x36\x49\x7f\x33\xd0\x3b\x1a\xfa\xbf\x5f\xd3\xc0\xc6\x79\x51\xf2\x8c\x24\xdb\xf7\x35\xb4\x7e\xe5\x1f\x06\x7a\x57\x43\xff\xf7\x15\x0d\xdc\xbb\xf0\x13\x48\xfa\x86\x49\x12\x6c\x77\x46\xed\x20\xc4\x20\x9d\x95\xd5\xbd\xa6\xa1\xf5\xab\x5f\x34\xd0\x97\x35\x74\xf3\x1d\x93\xf4\x15\x03\xbd\x64\xa0\x1f\x18\xe8\x6b\x1a\xda\xb8\xf4\x67\x80\xce\x0b\xea\x9e\x93\x4d\xfc\x40\x43\xeb\x57\x5f\x31\xd0\x37\x35\xb4\x71\x5e\xe8\x1e\xab\x32\xdf\x0f\x35\xb4\x7e\xed\xcf\x1a\xba\xfe\x0f\x0d\xdc\xfc\x9b\xf9\x76\x45\x43\x77\x20\xd3\xfa\xd5\xff\x86\xec\xef\x9a\x5c\x26\xff\xd5\xb4\xd6\x77\x34\x74\xeb\x2f\x1a\xb8\xfb\xdf\xe6\x1b\x94\xdc\x38\x2f\xc6\xf2\xf3\x12\x9f\x1f\x69\xe8\xe6\x55\x0d\xac\x5f\xfd\x0e\x24\xfd\x1d\x80\x7f\x9a\x6f\xe7\x0d\xf4\x3d\x0d\xdd\xfa\xab\x06\xee\xfc\x42\x03\x77\xbf\xa0\x81\x8d\x4b\xbf\xd5\xd0\xbd\x0b\x3f\xd7\xd0\x7b\x62\x01\x7e\xef\x3b\x02\x12\xd3\xe9\xbd\xef\x09\x48\x90\xf6\xbd\xd7\x04\x24\xf4\xb0\xf7\x7e\x28\xa0\x5f\x1b\x48\x0c\xee\x7b\x3f\x11\x90\x58\xfd\xdf\xfb\x85\x80\x7e\x63\x20\xd1\xbd\xf7\xde\x16\x90\x68\xec\xbd\x4b\x02\x12\x6c\xf9\xde\x3b\x02\x12\xda\xe6\x7b\x7f\x13\x90\x60\xda\xf7\xae\x38\xd8\xf9\x9f\xaf\x03\xf4\xde\xb7\x4d\x9a\x6c\xe3\x5d\x01\x89\x41\xfb\x9f\x97\x04\xf4\x0a\x40\xef\xfd\xd1\xa4\x09\x4c\xff\xe7\x6b\x02\x12\x5a\xd2\xff\x7c\xd9\x49\x52\xab\xc2\x30\xb5\x2a\x74\x1d\xa7\x42\x50\x8d\x11\xf9\xc8\xc0\x9d\x6b\x3e\x77\x72\x50\xaf\xd7\xeb\x55\xf1\xe7\xdf\x0f\xb7\xe6\x96\xb3\x66\x8a\x60\x4c\xd1\x24\x2d\x69\xa7\x5d\x64\x03\xc9\x48\xb7\xba\x42\x3b\x41\x37\x20\x6c\x0e\x80\x78\x8e\x91\xee\x4e\xec\x1f\x1d\x65\x69\x62\x05\x81\x28\x97\xb5\x1f\x08\x52\x2e\xcf\x4a\x63\x5b\x63\x74\x4b\xf2\x56\x8f\xba\x8e\x58\x06\x53\xb4\xea\xb0\xad\x0e\xb5\x55\xaf\xce\x5a\x10\x75\x62\x71\xad\xbd\xd4\x20\x49\x63\x4d\x39\xd4\x68\x10\xdc\x67\x54\x19\x8e\xf1\x64\x17\x1c\x65\x9e\xf1\x99\x79\x01\x76\x2a\x26\xfc\xa8\xa6\xdd\x51\x3f\xf2\x97\xb5\x4b\x6c\x77\xed\x14\x1b\x44\x87\xfc\x76\x8f\x34\x22\x72\xb6\x74\x9c\x70\xdc\xf6\xfb\xfe\x52\x10\x06\x3c\x20\x71\x43\x17\x5f\xc9\x96\x3d\x64\x65\x59\xdc\x3c\x8b\xeb\x3c\x5c\x9b\x7f\xd8\x31\xb6\xf3\x6d\x46\x7c\x4e\x00\x9f\x86\x42\x84\x28\x5f\x4f\x90\xc7\xd0\x02\xca\x2c\x01\xa4\xc9\xa5\xad\xf0\x10\x0e\xa2\x98\xfb\x61\x08\xd5\x49\x23\x99\xb5\x3e\x8d\x03\x41\x6f\x3f\x6c\xd0\x04\x29\x17\x48\x6b\xa6\x4e\x1f\x2a\x89\x45\xbd\x61\xe2\x45\x2e\x95\xb6\x57\x61\x1a\xc5\xb7\xbd\xe4\x85\xca\x9e\x5f\x47\x27\x1c\x44\x47\xa2\x43\x34\xe2\xe4\x1c\x77\x43\x1c\xa0\x19\xe6\xfa\xa8\x5c\xe6\x6e\x8c\xac\x60\xd3\x3c\xcd\x14\x63\x1f\xcb\x70\xb1\xd0\xae\x34\xca\x51\x2d\x7b\xb1\x34\x9b\x56\x7d\xf6\x82\x04\xab\x98\x41\x56\x27\xec\x2e\x04\xa3\x5d\xa0\xd0\x05\x5f\x74\x21\x16\x5d\x50\x91\xdd\xe3\x4c\x17\xe2\xb1\x5d\x88\xd3\xf6\x45\x57\xa8\xec\x8a\x2f\x2d\x0f\xdd\x14\x65\x99\x6a\x3c\xc1\x40\x9c\x75\x65\xbc\x4a\xd1\xac\x67\xd9\x7b\x41\x2e\x9c\x2d\x3d\x4a\x97\x82\x8c\x58\x3d\x80\x28\xc8\xec\x63\x6a\x21\x6a\x13\x93\xa6\xc4\xf4\x51\x82\x73\x6d\x28\xf7\xc3\xca\x64\x08\x8c\xff\xd9\x20\xaa\x45\xe2\xab\x72\x1e\x25\x4a\x7c\x4a\x4c\xa0\xd8\xc1\x2a\xff\x8c\xa1\x93\x9c\x12\x35\xbf\xd3\x71\x23\x51\x77\x86\x72\xd2\x96\x49\xd5\xcc\xc6\xd4\x2c\x6a\x58\x92\xb5\x16\xd6\xc9\x74\x9d\x87\x20\x58\xb5\xcb\x75\x0f\x14\x3e\x80\x3e\xa9\x05\xf1\x63\xca\xa7\x1b\xe9\x0c\x87\xd6\xcf\x20\x5a\x1e\x0e\x55\xdb\x10\xdd\x56\x54\xaa\x1d\xc0\x19\x36\x2a\x90\x2d\x91\xe0\x17\xc1\x50\x39\xbc\xe0\xbd\x0f\xf1\x16\xd2\x3e\xe9\x70\xec\x04\x21\x1c\x0c\x87\xcc\x8d\x14\x3f\x8c\x19\x57\x1c\xa9\x71\x4c\x12\x84\xe5\xa3\xa9\xb5\xc4\xb6\xe7\x0f\x8a\x84\x7b\xd4\x21\xac\x0a\x4f\x2b\xe0\xaf\xed\xd9\x6e\xcf\x1e\x87\xcb\x57\x5e\xdc\xbc\xf3\xb2\x9f\x27\x14\xb8\x50\x13\xd2\x55\x7a\x9a\x9e\xb1\x9d\xa9\x45\xde\xec\x3c\x76\x99\xe7\x74\x82\xce\xb1\x41\xe4\xa0\x20\x72\x95\x83\x38\x34\xc6\xf9\xb5\xa8\x43\xe3\x15\x6d\xc9\xf9\x35\x6f\xb2\x96\x17\x25\xfa\x91\x41\x96\x29\x49\xb3\xde\x52\x7c\xa7\xf0\x18\x0e\x5d\xeb\x97\x37\x5b\xc7\x62\x8e\xab\x17\x55\xf3\x48\x5a\x3c\x5a\xf1\x92\xf8\x96\xc6\x49\x09\xae\x0f\xc6\x69\xdb\xe3\x14\x74\xdd\x59\x6b\x74\x8c\x45\x7b\x76\xc0\xd2\x09\x0a\x3e\xf0\x24\x3d\x34\xb2\x67\x94\xd8\x90\x92\x3c\x33\xb0\xdb\x1b\xd7\xac\x33\xc9\xad\x6b\x59\x7b\xe9\xfb\x7d\xb7\x38\x8a\x4d\xcb\x51\x36\x1f\x81\xc0\xef\x46\x0e\x86\x37\x80\x90\x96\xae\xdf\xa3\xdf\x22\x7f\x85\x74\x4c\xf2\x66\x93\xb8\x1b\x79\x3a\xac\x78\x5a\xa7\x67\x0f\xb3\xf8\x24\xab\xf4\x78\x22\xc6\x4e\x2f\x12\xae\x32\x22\x57\x55\x68\x91\x9d\xd6\xa0\x13\x64\x39\x50\x2f\xba\x51\x83\x24\xca\xa1\xa5\xf6\x76\x96\xe6\xb7\x9a\x41\x89\x24\x42\x2d\xd3\x96\xcd\x6a\x05\x4f\xb7\x72\xac\x26\xb4\xe0\xd8\xc1\x4d\x9b\xa5\xd0\x5a\x51\xb1\x17\x06\x01\x23\x55\xf5\xc8\x77\x0e\x3c\xd2\x5a\xcf\x14\x75\x8e\x4d\x5e\x22\xee\xca\x03\x2f\x2c\x24\x86\x7e\x6b\xae\x5d\x7a\xea\x9f\xb5\x9e\x6f\xb9\xf5\x94\x0f\x1c\xf5\x17\xe4\x12\xd4\x64\xad\xc2\x9d\x4d\x1c\x7c\x9e\x54\xe9\x52\x4c\xd8\x19\xf9\xce\x8b\x9d\x09\xda\x64\x4e\xff\x15\x7b\x9c\x4c\x86\xa2\xd7\x99\xe3\xea\x50\x8f\xc5\x82\xe5\x88\x32\x52\x65\xb4\x4a\x18\xa3\x6c\xcf\xdc\x4f\x28\xb3\xf6\x4d\x9f\x52\xab\xaf\xc7\x15\xca\x6b\x41\x14\x70\x7b\x8a\xd5\xd2\x04\x88\xbe\xce\x07\x7d\x17\x25\xfa\xaf\x52\x60\xda\xfa\xd5\x5f\x2c\xdf\xd0\xaa\x8c\x40\x0d\x95\x34\xd9\xff\xac\xf5\xd5\x38\x7e\x05\xbf\xb6\xda\x0b\xed\x31\x49\xe3\xa7\x74\xa5\xe5\xb2\x9b\x1d\x5e\x8d\x9d\x85\x08\x39\x5b\x7a\x96\xf8\xa7\x8f\xfa\xfd\x3c\x3e\xe4\x6c\xa9\xb0\x52\xf0\x75\x18\x75\x42\xa2\xbe\x20\x94\x2c\x0b\x2a\xc6\x3a\xa6\x5a\x1a\x26\x7a\x36\x53\x67\xa2\x01\x35\x9e\x66\x2d\x31\xe5\xc0\x1d\x22\x48\x95\x2c\xae\x4a\x71\x47\x33\x6c\x91\x49\xc5\x94\xa3\x86\x9b\xcb\xa1\xd4\x4b\xbd\x39\x74\x9b\xbc\x05\xee\x30\x01\x83\x9a\xc1\x00\xa1\x64\x10\xed\x0e\x3e\xea\x01\x14\x09\x09\x17\xba\x31\xe6\xe5\x32\xab\x09\xb2\x80\x26\x93\x96\xd0\x99\x48\x1e\x2b\x0b\x13\x84\x50\xa2\x1e\xeb\x6b\xa6\x31\xd8\xc0\xc6\x6d\x8a\xc1\xab\x75\x82\xb8\x4d\xa3\x88\xb4\xb9\x8b\x50\x4e\xcc\xaa\x4a\x54\x13\x89\x3d\x8c\x62\x99\xec\x52\xe6\x6a\xd7\x43\x25\xb1\xf1\x07\x11\x4f\x8a\x3a\xcf\x61\xaf\x25\xdd\x65\xa2\xb4\x2c\x53\x65\x99\xd8\x2a\x24\x09\xa6\x99\x07\xfc\xbe\xe7\xd8\xad\x3a\x38\x96\xce\x01\xc2\xad\x39\x07\xc8\x54\x81\xf0\x20\xd3\x44\x3b\xef\x23\x20\x1c\xe3\x23\xa0\xdd\x24\x2d\x2f\xd4\x3e\x02\xda\x59\x1f\x01\xf6\x4f\xdc\xce\xfb\x08\x68\x8f\xf5\x11\xd0\x1e\x0e\xdb\x79\x1f\x01\xed\xac\x8f\x80\xb6\x17\x6f\xdd\x47\x00\xc5\xbe\xf1\x11\xd0\x46\x78\x60\xf9\x08\x68\xe7\x5e\xf0\xb7\xb5\x8f\x80\x4c\xfa\x62\x7b\xd4\x47\xc0\x20\x3d\xe7\x98\xec\x23\x20\xdf\x42\xb1\xdc\x15\x28\xb6\xa5\xc3\x06\xdb\x47\x80\x48\xd5\x5e\x02\x72\x3b\xac\x99\xe9\x16\x99\xe2\x05\x62\x0f\x5f\x4b\x4b\xe1\x50\xe0\x75\x5b\xcb\x47\x1a\x49\x8c\xb2\xe2\x82\x78\xd9\xaf\x33\xd9\x9f\x9e\xcb\x71\xad\x56\x03\x67\xcd\x4e\x56\xc6\x96\x42\x4a\xfb\xa5\x30\x58\x09\xc4\xe6\xa1\x4d\x48\x47\xae\x08\xe9\x73\xfb\xba\xd0\x79\x54\x05\x49\xf1\x72\x4d\xc3\x33\x84\xcd\x75\x89\xcf\x07\x6c\x4a\xed\x45\x97\x29\xd0\x5b\x72\x39\x00\x88\xe7\xe4\x22\x19\xb4\x77\x5b\xa1\x19\x5b\xc0\xf8\x42\x5a\xcb\x2a\xe0\xcb\x84\x8f\x46\xf0\x4f\xfd\x9f\x24\x49\x81\xc7\x89\x91\xee\xfc\xbf\xd8\x67\xd3\x9d\xb9\x36\x8d\xb8\x1f\x44\x84\x55\x3b\x64\x69\xb0\x5c\xf5\x3b\x7e\x9f\x6f\x95\x28\x9a\x79\xa6\xf6\xb4\xa1\xb7\x5f\xea\x15\xb8\x76\x3a\xef\x8a\x75\xed\x18\x59\x3e\x7c\xae\xef\x3a\xcf\xcd\x2d\x3a\x15\x56\x71\xe6\xdc\x5a\x05\xcd\x39\x15\x52\x71\x1e\xd0\x0f\xaa\xf5\x19\xb8\xd9\x85\x46\xcd\xf9\xd6\x2e\x9d\x45\xc3\x29\xdc\x21\xa0\xc9\x63\x82\x24\x07\x15\x45\x6a\x4a\x27\x74\xd7\x4e\x29\x45\xff\x98\x8c\xa5\xcd\x56\x1b\x52\x85\x93\x9a\x20\x9c\x58\x99\xfd\x97\xcf\x96\x07\xd2\xf1\x11\x1c\x1c\x66\x8b\x82\xaa\x90\x4b\x96\x2b\x3c\xaf\x1d\xcd\x24\xa2\x04\xb7\xfd\xe8\x90\xcf\xfd\x90\x2e\x1f\x8e\x38\x0b\x48\xfc\xe8\xea\x89\xd5\x3e\xb1\x8e\xfb\x57\x68\x87\x84\xd2\x47\xcf\x70\x38\x16\x15\x51\x51\x71\x2d\x69\xb0\x80\x3c\x4a\xb5\xd4\x83\x51\xec\x22\xe3\xdc\xff\xa0\x8b\x70\xe0\x99\x5d\x57\xdc\xf7\xdb\x44\x67\x7d\x9a\x91\x6e\x70\xce\x76\x54\x80\x7d\xcf\x78\x02\xa1\x07\x7c\xdb\x3f\x01\xd7\x6e\x08\xaa\xf3\xb3\x9e\xe7\x9b\xa7\x9c\xc4\xbc\x9a\x15\x2c\xe3\xe3\x5c\x43\x7d\xda\x39\x6a\xb5\x35\x1c\x06\x68\x86\x0b\x9a\x7a\xbe\xf6\x74\x4c\x2a\x4e\x3c\xe7\xa0\x5a\x9f\xf6\x5d\x84\x70\x24\x34\x48\xc5\x2a\x52\x47\x01\x0e\x4a\x92\x4d\xbc\xac\x6c\xca\xf9\x93\x66\x8b\x76\x02\x22\xf2\x57\xbb\xbe\xd8\xa6\xaf\xde\xbf\x9d\x20\xc9\xb1\x8d\x66\xef\x74\x49\xd7\x7b\xd1\xcf\xc5\x35\xa2\x86\x5f\xe8\xb1\xf9\x34\x2b\xd7\x29\xe2\x9f\x3e\x15\x13\x12\x21\x38\x85\xc8\x1c\x38\x10\xe0\x79\x28\x49\x86\xc3\x91\xea\x92\x0c\xf7\xac\x15\x04\xbb\xcb\xd4\x21\xf4\xd3\xd8\x8e\xa2\x5e\x0a\xf4\x61\x13\xe4\x48\x94\x12\x6e\xa2\xb5\xab\x06\x5d\x22\x77\xf8\x39\x02\xb0\x99\xec\x11\xbb\x6e\x16\x66\xb3\x1e\xa6\xa7\x78\x8f\xb0\x46\x3e\x72\x86\x56\xfe\xbb\x41\xa4\x39\x4d\x74\x41\x68\xff\x41\xd7\x4d\xe5\x97\xc2\xec\x1c\x67\x7e\x1b\xbc\xc6\x1f\x96\xcc\xe0\x32\xac\xf2\x1a\xea\x47\x88\xf7\x18\x3d\x5b\x12\x33\xfc\xb0\x50\x08\xdc\xe7\x4b\x87\xcf\xf5\xe5\x73\xeb\x12\xa7\x25\xd1\x52\xa3\xf4\xe0\x03\x6b\xa4\xd6\x1d\x84\xa1\x68\x2e\x79\xb0\x74\x36\xe0\xbd\x20\x12\xc9\x2c\x79\xb0\xb4\x34\xe0\xa5\x65\xca\x4b\x0f\x9a\x7d\xe1\x83\xb5\xd2\x63\x41\xa7\xb4\x4a\x07\xa5\x2e\x15\xaa\xb9\xa8\xea\x41\xc5\x90\x25\xcd\x19\xb9\x5a\x16\x9f\x37\x8f\xb4\xd5\xce\xb5\x47\x07\x61\xe7\x59\xe6\xf7\x8f\x44\x87\xc4\x38\x3f\xae\x38\xd5\x8d\x30\x11\xaa\x6c\xe4\x65\xb7\x94\x91\x98\x4e\x49\x82\xa5\xe3\x6f\x79\x6a\x6f\xd3\x4e\x6c\xaa\xea\xd2\x55\x98\xfc\xde\x91\x37\x2d\x30\x9a\xca\x4d\xbf\x72\x7a\x90\xfa\x24\xff\x4f\xe5\x5a\xe0\x61\xcf\xf3\x02\x2d\x25\x64\x3d\xf2\xb1\x79\xb3\xde\x32\x69\xdc\x73\xfe\xd3\xa9\x04\xcd\xf9\x96\xac\x88\x78\x41\x73\x5f\x0b\x6a\x69\x38\x68\x46\x9d\x4b\xe1\xc8\x23\x62\x65\x90\xef\xe4\xd3\x32\x98\xa9\xda\x94\x1e\x5e\xc7\xd5\x79\x21\xcd\x44\x15\x33\x0e\xf8\x9e\x6c\xa4\xfe\xd8\x84\x2c\x65\xb2\xfb\x8e\xe5\xa4\xcd\xa9\x44\x98\x79\x26\xbf\x03\xaf\xf1\xbb\xee\xbe\x0c\xfa\x80\x5f\x3d\x83\x9f\xce\x46\x20\x9b\x24\x54\x73\x1e\x7a\xb8\xe8\x9a\x0e\x00\xd2\x62\xcb\x2b\xb3\x60\xf3\x49\x26\xcf\x48\x8f\x22\xd0\xca\x7c\xa6\x15\x2e\xdb\xc5\x59\x62\xa4\x28\xab\x7e\xd5\x65\x0c\x98\xd0\x8f\x95\xb3\x8a\xa7\xba\x6e\xa6\x9b\xb8\x8e\x0a\xfb\xce\x3d\x0e\x47\x7b\xf3\xc6\x15\x41\x3a\x94\x0d\xe9\x5e\x3e\x48\x11\xd5\x8e\xeb\x22\xec\x5b\x97\x71\xe9\x31\xa3\x94\xe6\x0e\xf0\xe3\x5a\xca\x32\x42\xdd\x81\x69\x20\x2f\x88\x84\x98\x6f\x70\xbd\xb6\xa9\x9f\xee\x9a\xd0\xca\x1b\x2c\x41\x58\x01\xa6\xc4\xb3\x01\xef\xd1\x81\x7c\xf1\xdf\xa0\x38\x52\x37\x4b\x8c\x52\xde\xf0\xb1\x9e\xf5\x47\x09\xef\x51\xd5\x94\xa3\x93\x9c\x8a\x3e\xf3\x91\x37\xe7\x35\x25\xe6\xbb\xab\xae\xd0\xb8\x71\x3f\x1c\x30\xb9\x19\xea\x88\x5a\x63\xb5\xf4\x17\xa9\x03\x2b\xfe\x69\x72\x82\xaa\x3a\xb2\x1b\xba\xf1\x6b\x65\x45\x0c\x37\xaf\x38\x0d\x27\xc1\xe3\xa6\xa3\xbc\x89\x9e\x9d\x2f\x52\x37\x10\xc4\x2e\x10\x35\x3e\xea\xc7\xa4\x73\x4c\xaf\x40\xde\x6c\x7d\xcb\xea\x07\xc4\x3d\x39\x15\x51\xb6\x22\xbb\x2c\xef\xe0\x60\xb7\xae\xee\xc7\x5d\xeb\x4e\x34\x47\x1a\xaf\x28\x71\x38\x9c\xb6\xb8\xde\x66\x03\x86\xc5\x5f\x05\x5f\x8a\xbf\x0e\xe0\xda\x21\x7d\x46\xda\x3e\x27\x9d\xa7\xb3\xaa\x81\x37\x3b\x9f\x60\xd3\x13\x6b\xe5\x28\xea\xa3\x34\xf5\x70\xc7\x7c\xf1\x72\xe9\xf2\x48\x09\xd8\xc9\xe8\x50\x10\x5d\xc1\x48\x47\x57\xde\xe8\xb0\xda\x08\xdf\xcd\x8c\xb5\xbe\x10\x15\x34\xa3\x56\xb9\xac\xaf\x7d\x9a\x51\xcb\x65\x42\xea\x2a\x0f\x6c\x26\xbd\x66\xaf\x60\x32\x07\x4f\x70\x06\xc1\x7c\xf8\x07\x2d\x84\x40\x19\x5b\x98\x07\x49\xc5\x9b\x75\x88\xdb\x60\xf9\xb9\x54\xea\xa4\xa3\x8e\xc5\xe1\x17\xd8\x52\xc0\x6f\x5b\xb0\x10\x2d\x58\x84\x44\x0a\x8a\xe4\x0a\x5a\x24\x82\xcd\x2b\x32\x87\x31\xc5\x39\x35\xb7\x8c\x9d\xaa\x83\x1a\xea\x63\x66\x1a\x76\xfc\xb8\x47\x98\xe8\x4e\xb6\xcc\xc9\x9a\x28\x34\xe7\x20\xe3\xf6\x84\x58\xb3\x34\x3f\xd0\x39\x36\xb2\x06\x7a\xf4\x8b\x27\x74\x47\x07\x25\xb8\x4f\x3b\x72\x36\x3d\x41\xe9\xe9\x41\x5f\x08\x15\xc5\x53\xb6\x47\x25\x5e\x2b\x10\x3a\x40\x49\x9b\x34\x5c\xfa\xce\x14\x2a\x97\x64\x06\xdd\x8b\xe7\x52\xe2\x9c\x9c\x9b\xc3\x8e\x83\x10\x26\x15\x67\x4e\x6d\x81\x9c\x8a\x2a\x95\xa2\x92\xd1\x45\x6c\xad\x7d\x82\x6e\x3c\x49\x49\xcf\xd0\x68\x5c\x77\xb9\x0c\x21\x03\x9f\x8d\x7f\xc7\xf8\x48\x74\x7c\xb0\xd4\x09\xd8\xee\xa0\x22\xf8\xb2\xe2\x39\x96\x4b\xd4\x4c\xa8\x38\xe3\x7e\x74\x38\xb4\xa9\x36\x57\xe3\x24\xe6\x2e\x29\x1a\x06\x84\xb6\xd0\x3d\x3d\x97\x0e\x47\xcb\x42\xfb\xb7\xa6\x4e\x41\xc5\x15\x67\x8e\xc8\x7c\xce\x0c\xdc\x61\xe5\x77\x4d\x42\x8f\xe5\x59\x04\x8a\x15\x45\x9e\xb6\x7d\x8c\x0e\x38\x39\xea\xf7\x37\x69\x5d\x88\x98\x8a\x33\xc7\x44\xee\x78\x32\x06\x0c\x99\x09\x3e\x41\x55\x35\xfa\x20\x49\x0c\x2e\xc6\x79\x67\x76\x6c\x33\x12\x87\x98\x82\xb6\x64\x52\xb3\xf7\xc4\xe1\xa3\x4f\x3f\x71\xf0\xc4\xe1\xe3\xcd\xc2\x3e\xb4\xa4\xac\x5a\xf1\x83\x28\xcb\xd1\x41\xd7\x75\x44\xaa\x1a\xee\xa2\x31\x35\x06\x44\x7d\xbd\x74\xce\x39\x15\xa2\x67\x09\xf8\x0f\xca\x54\x59\x54\x20\x3b\xf3\x5d\xed\xd7\x56\xd7\x55\xd0\x6a\x82\x23\x12\x73\xc1\xfb\x21\x6d\x4b\x17\xba\x66\x16\x8c\xe2\x5f\xc0\xb3\x85\x58\x6f\x15\x89\x8a\xa3\xb7\x9c\x89\xd6\x87\xc6\xce\xbb\xb1\x53\xdc\x64\x69\xaa\xd6\x2a\x8e\xca\xe4\xa4\x8b\xcd\x84\x3c\x6a\xcc\x4c\x7f\xd5\x44\x7a\xda\xe7\x9c\xb0\x08\xac\xf1\x8c\x5f\x49\x77\xe4\xa4\xaa\x99\x99\x86\x29\xdd\x70\x26\x7d\x54\xbc\x68\xed\x26\xc3\x2b\x2a\x6d\x64\xbc\xf5\x39\xc1\xe6\x63\xd5\x4a\x10\xaa\x31\xe2\x77\x9e\x8a\xc2\x55\x17\xe1\xfc\x3e\xcf\x08\x78\xac\x77\x79\x42\x6f\x75\xc6\xf5\xdd\x72\x22\x16\x78\x75\x79\xfd\xa1\x4f\x3b\x82\x03\x34\xe3\x40\xb2\x19\xb4\xd4\x41\xbc\xd4\x81\xd5\x16\x91\x96\xcb\x2e\xd5\xd7\x2d\x32\x94\x97\x85\x08\xc5\x04\x21\x4c\xc1\xa4\xa9\x60\x8a\x53\x69\x15\xe7\x51\x84\x41\x3b\x3e\x15\xd2\x65\x85\x9f\xd8\x85\x62\x8a\xb0\x71\xd0\xc8\x92\x04\x8f\xb4\x61\xad\x66\x99\x95\x57\x6c\x32\x59\xdc\xa6\x0c\xf6\xbd\xc4\x0a\x44\x56\x84\x4a\x6a\x7a\x55\x2c\x8a\xd2\x0d\xb0\x60\x67\xbd\x09\x3e\xb8\xb2\x14\x2c\x0f\xe8\x20\x2e\xa9\x42\x25\xc9\x7f\x6a\x27\x9c\x3c\x58\xf2\xa3\x8e\xde\xb7\x3e\x8f\x26\x8a\xba\x54\xda\x93\xcd\x44\x22\x10\x43\x87\x46\x24\x96\x52\x31\x57\x75\x9b\xcf\xcd\xb5\x1e\x42\x0f\xcc\x61\x67\xee\xd4\x03\xf3\xce\xe4\x56\x23\x53\x5b\x94\xe0\x50\x12\x1d\x2e\xb0\x46\xc2\x70\x66\x74\xc2\xcc\xb4\xcc\x71\x1f\xc7\xb3\x75\x94\x60\x6b\x1c\xf5\xa9\xa9\xd8\x5c\xab\x21\x3a\xfc\xe4\xa7\x6a\x4f\x3c\xf5\xb1\x53\x47\x9f\x7a\xec\x99\x27\x0e\x9f\x3a\x76\xf8\xf8\x53\x4f\x7c\xea\xf0\xb1\x72\x79\x96\xd7\xc4\x46\x47\x7e\x84\xd4\x4c\x24\x48\xb1\xf3\x5e\x74\x9a\x1b\xaf\x9f\x6f\x39\x0d\xa7\x59\x6a\x39\x33\x91\xa5\xc5\x80\x66\xf8\x48\x7d\xd1\xa9\x39\xd2\xee\x56\xd9\x19\x3f\x52\xaf\x8e\xe4\x42\xb5\xcf\xd1\x20\xd2\x51\xc5\x86\x43\x57\xeb\xbe\xa3\x74\xe0\x08\xe1\x36\x8d\x62\x1a\x92\x72\x59\x03\xb5\x20\xea\xd2\xec\x2f\x37\xc0\x69\x1b\x38\x92\x56\x83\xa7\x23\x7a\x36\x7a\x9c\xb2\x2d\x9f\x54\xb2\xa2\x1d\x8b\x15\xd5\xac\x8e\x83\xf4\x54\x32\x3a\x10\xc8\xc8\x66\xe0\xf4\xae\x19\xb5\xb0\x9e\x93\x9c\xf9\x51\x2c\x96\xc2\x13\xd4\x9c\x0e\x3f\x3e\x08\xc3\x48\xcd\x9d\x00\xcd\x88\x09\xcc\x9a\xb4\xe5\x89\x61\x33\x33\x0d\x6f\x52\x90\x67\x0e\x9a\x32\x5b\x5a\x92\xc8\x3d\x83\x58\x0a\x70\xe0\xc9\x05\x41\x60\x63\x54\xea\x08\xc9\x13\x55\xf8\xa9\x6c\x6b\x85\xe2\x4d\xcb\x65\x5f\x6d\xec\x65\xb7\xaa\x70\x20\x51\x2e\x1b\x95\x1f\x44\x53\xc5\x1c\x56\xc0\xb4\x51\x8a\xb9\xde\xde\xd3\x0a\x64\xc4\xbe\x72\x3f\x1f\x7b\xac\x70\xd9\x92\x2b\x16\xb0\xb3\x3a\x56\x00\xc4\x62\x64\x35\x1c\xc3\x29\x47\xb6\x21\x48\x86\x8b\xc9\x04\x17\x6b\x29\x66\xe8\xcd\x91\x9f\x8a\xb0\x20\xff\x9b\xad\xa7\x13\x4a\x34\xa9\x17\x06\xb5\xa8\x99\xa3\x2b\xcc\x93\x04\xcd\x44\x35\x46\x68\x9f\xa8\xcd\xb5\xbb\x56\xb0\x6b\x96\x27\xab\xda\x44\x3d\xda\xcc\x46\x74\xc2\x51\xef\xbf\xc2\xbd\xf3\x9a\xe2\xf6\x06\xf7\x16\x8a\xec\xfa\xf5\xe1\xe7\x22\x00\x2e\x47\x0d\x52\x78\xa1\x28\xb4\xcb\xaa\xb2\x8d\xd1\x76\x51\x73\xd5\x3e\x0b\xce\xf8\x9c\xcc\x05\x91\x58\xf6\xfc\xe9\xbd\x3c\xcb\x91\xdb\x7a\x47\xb9\xa7\xb1\xe9\xf1\x95\x70\xc9\x67\xf1\xdc\x69\xb2\x7a\x96\xb2\x8e\xa0\x34\x8d\x07\x0c\x30\x74\x02\xf0\x6b\x7d\xea\x54\x48\xfd\x0e\x11\x5b\x2c\x25\x15\x16\x47\xd2\x15\xfb\x4c\x5b\x33\x6a\x58\x14\x09\xa2\xe5\xfb\x88\xcb\xd4\x2d\xa0\xc6\x5a\x32\x43\x6a\x07\x0f\x9d\x38\xf2\xd4\x93\x1e\xd7\xc0\x74\x83\x08\x36\x6e\xf6\xb7\xc2\x4b\x8c\xe9\x18\x60\x2b\x17\x7f\xa9\x4a\x05\x77\x48\x36\xc3\x48\x63\xd8\x82\x08\xd6\xa4\x76\x4a\xe2\xc2\x8e\x06\x6d\x46\xc3\x60\x69\x38\x24\x35\x95\x02\xe7\x86\x3a\xba\xfc\x91\xa8\x4b\xe3\x06\xaf\xe9\x9f\x72\x3b\x25\xd3\x86\x43\x93\xa8\xa3\x3a\xca\x64\xbc\xe2\xf7\x1f\x5d\x2d\x2a\xb0\xe8\xc8\x06\x9c\x86\x36\x3b\x61\x8e\x74\xdd\x9d\x1a\x06\xd5\xec\x26\xb1\xba\xc9\xec\x3f\xba\x3a\x93\xf1\xb1\x7e\xd0\x65\x48\xa5\xbb\x91\x65\xf7\x21\x6a\x42\x72\xcd\x77\x89\xb7\xb0\x06\x4a\x88\x0e\xc0\x21\x7a\xa7\x6d\xd2\x62\x13\x49\xd3\x8b\x9a\xbc\x85\x0b\x26\x34\x4b\xcc\xe1\xa9\x2a\xd3\x60\x58\xa3\xdc\x88\x76\xf4\x50\x27\xe3\x01\xdf\x5c\x99\x48\xb2\x6f\xae\xea\x97\xcc\x61\xef\x53\x67\x23\x6d\x41\x86\xb4\x5e\xe0\x3a\xba\x16\xb9\xcf\x43\x39\x45\x1c\xac\x4d\x9b\x04\xd7\x6a\xb5\xa8\x05\x2b\x72\xfe\xf4\x58\xd5\xe1\x80\xd7\x5c\xf9\x06\x42\xde\xd9\x2a\x13\x64\xe6\x06\x98\x20\x6d\xb4\xc6\x4c\x00\x15\x83\x68\xad\x56\xe3\x8a\xe5\xa8\xa7\xf2\x6a\x67\xe2\x54\x8f\x03\x8e\x3d\x0a\xc5\x71\xe8\x45\xb5\x36\x8d\xda\x3e\x97\x56\xcc\x76\x17\xd9\x20\x52\x4a\x50\x8c\x7d\x81\x71\x88\x8c\x0f\x6d\xda\x84\x99\x29\x34\x03\x4c\x8b\xef\xe7\x65\x3f\x46\x8c\x9c\x83\x58\x4e\xbd\x33\x64\xec\xd4\x4c\xcb\xa8\xa5\x47\xe1\x5a\x7d\x61\x40\xd8\x6a\x55\x46\xc8\xd9\xa4\x80\x0e\xdb\x2f\x5b\x51\x39\xf2\x93\x59\xa8\x9c\x23\x46\x98\xd2\x5f\xf5\x2e\x99\x61\xfa\x9e\x0b\xb2\x20\x88\x64\x85\xda\x02\x08\xe7\x03\xc6\x4f\x6b\x48\x8f\x83\x8c\x29\xbd\x52\x14\x31\xf3\x80\x5f\xf4\x9d\x35\x76\x23\x4f\x6c\x9c\x26\x98\xd3\x5b\xa6\x17\x51\xc6\x30\xcc\xb6\xfc\x8e\xb2\x46\x61\xc6\x0a\x3c\x32\xe6\x5f\x58\x9b\xe5\x67\x0c\xb3\xa2\x51\xc3\xac\xc0\xe8\x3f\x96\xc5\x35\x5a\x73\xeb\x98\xa5\x57\x6f\xea\x08\x46\xf6\x04\xe9\xcd\x4b\xde\x9a\x37\xb3\xaf\x50\x59\x6b\x41\x7c\x50\x8e\xb2\x20\x4a\x84\x92\x04\xc7\x9e\x1d\xef\x36\x4c\xa9\x33\xf0\x84\xe2\xdb\xf6\xd6\xf2\xf6\xed\x59\x43\x14\xcb\xda\x1d\x5b\x3d\x91\x17\x20\x09\xee\xe5\x8d\xf1\xda\x63\x8c\xf1\x7a\x4d\xd2\xf2\xda\xda\x18\xaf\x97\x35\xc6\xb3\x7f\xe2\x5e\xde\x18\xaf\x37\xd6\x18\xaf\x37\x1c\xf6\xf2\xc6\x78\xbd\xac\x31\x5e\xcf\x1b\x6c\xdd\x18\x2f\xc6\xa1\x31\xc6\xeb\x21\xdc\xb1\x8c\xf1\x7a\x39\x53\xb9\x9e\x36\xc6\xcb\xa4\x2f\xf6\x46\xc7\xbc\x63\x8c\xf1\x7a\x93\x8d\xf1\xf2\x2d\x14\xb3\xad\x40\xb1\x27\xba\xa7\x2e\x57\xa8\xd7\x13\x9b\x13\x31\x35\x4c\xc8\x1e\xdc\xb3\xd4\x59\x7f\x6a\x69\x24\x76\x94\xd5\x01\x0b\xa7\x55\xf7\xd2\x77\x2d\xbb\x66\xae\xcd\x8b\xe5\x04\xdb\x9e\x9c\x10\x22\x6c\xb2\x9c\xa0\x5a\x4e\x04\x5e\x34\xb5\x9c\x08\xc6\xca\x89\x60\x8c\x9c\x08\xf2\x72\x22\xc8\xf0\x4c\x30\xca\x33\xb4\x40\x4e\x64\xaf\x3a\xf4\xa4\x17\x63\xf6\xcc\xb1\x27\xa4\x35\x2e\xcb\x5a\xe3\x42\x1f\x63\x4f\x68\x15\xe1\xce\x66\xfb\x07\xa6\xb7\xef\x0f\xd3\x5b\xaf\x8d\xd9\x66\xe6\xb7\xd3\xce\x76\xa1\xf9\x83\x0a\x31\xa5\xfa\x91\x29\x34\xd5\x53\x0e\x1c\x6c\x47\x3a\xc4\x44\xa9\xe9\x4f\xcb\x96\xe4\x1e\x3e\xb3\x67\xa0\x1e\x49\x8a\x85\x08\x4d\x4f\x02\x40\xf9\x60\xc5\x42\xa5\xf8\x29\xc8\x14\xca\xc7\xb4\x42\x25\xf2\x82\xf7\x95\xf2\x51\x24\x54\xd2\x9b\x93\x88\x9c\x2d\x51\x5b\xf7\xc0\x44\x29\x11\xd1\x58\x25\x82\x7d\xa0\x44\xfc\x7f\x43\x89\x08\xbc\x1e\x58\xf5\xef\x54\x89\x90\xc7\xa1\xf2\xb9\x5e\x95\xd3\x1d\x6d\x6b\xee\xa3\x78\x29\x94\x1b\x1f\xc8\x89\xa9\xe4\x04\xf3\x16\xd6\x0c\x3f\xb3\x72\xb9\xe8\xb8\xa2\xd6\x17\x93\x25\x82\xb3\xdd\x72\x39\x9f\xe2\x6e\x65\x63\x93\xb2\xd4\x09\x0a\x9b\x9b\x82\x98\xa4\x40\x56\x08\x4a\xba\x23\xc1\xf4\x41\x38\xd2\xf7\x45\x38\xd2\xc0\xeb\x6c\x12\x92\x74\x6a\xc1\x34\x60\x61\xb5\x4b\x8b\xdf\x3d\x7c\x20\x92\xfe\x77\x8a\x24\x75\xb3\x36\x8d\x0c\x19\xb0\xf0\x71\x45\x0f\x69\xe7\xf9\x81\xf0\xf8\x40\x78\x4c\x23\x3c\x26\x1c\xba\xee\xe9\xad\x9f\xbe\x23\x69\xc2\x95\x7c\x75\xbe\x35\x23\xaf\x40\x83\xf8\xbf\x04\x56\x6a\x9f\x54\x2e\xbb\x2e\x31\x5e\x19\x10\xb2\xb3\x7b\x6b\x2f\xa4\x19\x1b\xe0\xae\x23\xb1\x8d\xc2\xa6\x23\xc6\xb6\xf6\x8d\x7b\x71\x6c\xbd\x73\xa1\x9b\x26\x28\xd7\x41\x99\x77\x30\x62\x32\x28\x7b\x04\x85\xb0\xa7\xcd\x90\x4e\x05\x51\x7f\xc0\x15\x5d\x3d\xae\xd3\x6c\x95\x05\x5e\xe8\xe8\xc2\xca\x08\xe5\xd9\x80\xf7\xb2\x1f\xfa\x8c\xb6\x49\x1c\x93\x8e\xae\x4a\xcb\x3b\xf5\x02\x5f\x9f\xec\x5a\xd1\xab\xf3\xe7\xc5\x1a\x2b\xb0\x94\x2e\x38\x13\xd6\xcd\xc8\xda\xd5\xcb\xfe\x01\x0b\x73\xa7\x4a\xa7\x46\xc4\xe5\x68\xa9\x8c\x3a\x66\x8a\x9b\xa9\x3a\x4a\x00\xe3\x9a\x2c\x43\x15\xe2\x2d\xb8\x46\x82\x90\x42\x3d\x92\x8c\xe8\x91\xf9\x14\x37\xd7\xdf\xbc\xaa\x98\xc1\x1e\xbc\x06\x64\xf0\x90\x5d\xb2\x06\x65\x6c\x8f\xac\x3c\xa6\x43\xf6\x60\xba\xc8\x5b\xc8\xe0\x62\x57\x3a\x82\xca\x28\x37\x48\x44\xf4\xf7\xfc\xa8\xe4\x78\xc3\x58\xaf\xe7\x79\x26\xbb\x12\x8e\xb0\xa7\x69\x36\x57\x6e\xac\x65\xc0\x14\xb3\x72\x6f\xe5\x20\x81\x1b\xd9\x67\x8e\x3d\x81\x49\xe6\x46\x57\x3e\xa5\x1a\xed\x47\x4c\x78\xfe\x4e\x3c\x26\x7b\xe8\xd3\x4b\xdd\x77\x17\x05\x1a\x77\x73\x02\xbe\x29\x55\xb4\x96\x07\x76\xe5\xa5\x87\xad\x47\x44\x8b\x82\xbd\x52\x67\x6b\x32\x2b\x6a\x90\x7c\x1a\x41\x09\xb2\x9f\x3a\x16\xf8\x5b\x8a\xb9\xcf\x96\x7d\x4e\x2c\x0b\xec\x39\x41\x08\x3f\xac\x2a\xb7\x0f\x59\xa1\xfe\x9f\xcb\x61\xb0\xb2\x42\x58\x9a\x7d\x5a\x2d\x18\x53\xec\xa7\xa6\x01\xda\xa1\x9c\xf8\x00\x37\xb2\x6b\xe6\x0e\xd5\xd6\x95\xa2\x31\xba\x12\x15\xba\x52\xa4\x75\x25\x9a\xd5\x95\xec\x9f\x98\xe6\x75\x25\x3a\x56\x57\xa2\xc3\x21\xcd\xeb\x4a\x34\xab\x2b\x51\x8f\x4d\xa3\x2b\x89\xe1\x30\x27\x69\x7a\x79\x1a\x0e\x59\x82\x30\x45\x38\xb0\x74\x25\x9a\xd3\x64\xa8\xd6\x95\x32\xe9\x8b\x74\xc2\xd5\x21\xa6\x93\x75\xa5\x7c\x0b\xe3\xbd\x5e\x51\xd1\x3d\x7d\x8d\xb4\x1b\x4e\xac\xa4\xd9\x04\xc4\xdf\xfd\xf8\x89\xa3\x4f\x3c\xea\xb3\xb8\x06\xcf\x23\xdc\xb5\xa0\xd3\x70\xce\x3e\xf3\xd1\xc3\x1f\xeb\x1c\xf2\x1d\xbc\x14\xd2\xf6\xe9\xc6\x83\x6b\x4e\xbc\xba\xb2\x44\xc3\xd8\x69\x34\x9d\xb2\xcf\x39\x13\x6c\x57\x86\xd7\xf1\x2d\xec\xc4\xdc\xe7\xd2\xf7\xa2\xc8\xd2\x9c\x9f\xc7\x4e\x27\x38\xe3\xb4\x70\x73\xfe\xdf\xf1\x7c\x0b\x37\x3f\x8c\x9b\x0f\x7f\x14\xd7\x5b\xb8\xd9\x7c\x78\x1f\xae\xe3\xa6\xa3\x2c\x71\x08\x73\x5a\xad\x96\x34\x1d\x33\xb9\xe6\xad\x5c\x83\xa8\x28\xdf\xfc\xbe\x16\x6e\xee\xc3\xce\xc9\x93\x51\xa9\x24\x5b\xf9\x28\xde\x97\x16\x92\xf1\xa1\x45\x7e\x93\x4b\xe6\x79\xb8\xd5\xc2\x4e\xcf\x8f\x0f\x9f\xf1\x43\xa7\xd1\xf5\xc3\x98\x60\x67\xd0\x3f\xe3\x33\xd9\x2f\xdb\x9b\xa0\x93\x71\x6d\xd6\x4a\x1e\xc4\x2b\x84\xfb\x8d\xb5\xd4\xae\xb1\x31\xed\x54\xad\xf5\x96\x62\x27\xd1\x76\x0f\x83\x71\xdb\x45\xd7\xa9\xaa\x52\x4e\xfa\xb0\x1b\xfc\x21\x05\xb9\xdf\x34\xb7\xb3\x34\xcb\xc9\xb6\xae\xe3\x55\xb3\xda\xbb\x92\x7d\x2b\xef\xbf\xaf\x76\x97\xf6\xad\xbc\x58\x85\xe5\x18\xe7\xd6\xe0\x4c\x57\x6a\xcb\x84\x3f\x2d\x13\x0e\xc9\xac\x32\x87\xcf\x96\x95\x59\x3d\x4a\x80\xaf\x5c\xe3\x68\x87\x7b\x6b\x2b\x83\x90\x07\xfd\x90\x34\xd2\xdc\x90\x84\x69\x74\xa8\xe7\x47\xcb\xf6\x37\x48\x4a\x66\x0a\xda\x87\x06\x4e\x48\x36\xc8\xb5\x2f\x7d\x7e\x26\x29\x77\xc3\x3b\xc2\x6c\x15\xe9\xf7\xc2\x4a\xd4\x2e\x39\x76\xa9\xed\x9d\x27\x37\x9e\x62\xab\xbc\x93\x8d\x32\xc2\xb9\xfa\xcd\x7c\xc4\xcd\xa8\x85\x37\x73\x1c\x54\x5c\x54\x2c\x0e\x26\x7d\xa4\x05\x6b\xce\xe3\x66\xb0\xc5\x36\xac\xc2\xb9\x56\xa8\xbd\xe8\x0e\x70\xea\xf1\xd8\x3c\x4a\x30\x2f\x6d\x42\x3c\x28\x30\x10\x1a\x3f\xd5\x77\x6b\x39\xde\x0d\xbf\x97\x92\x95\xe9\x64\x01\x4f\xfb\xcf\x7c\xfa\xb3\x9f\x8b\x3f\x3e\x46\xc0\x8f\x95\xeb\x8f\xe0\xe6\xc3\xff\x9e\x91\xcf\xca\x5d\xdf\x91\xe8\x69\xa1\x22\x1b\x11\x8d\x9b\xcd\xd4\x75\x8a\x43\xc2\x58\xec\x0c\x9b\x6b\xb9\xda\xf6\x61\xc7\x48\xef\x79\x10\xed\x20\xaf\x5b\xd8\x91\x7a\x36\xe1\x44\x8a\xe7\x56\x82\xf3\xe5\x47\xb1\xd1\xca\x51\x11\x1a\x05\xed\x8f\x2d\x8f\x1d\x98\xf4\x5b\xec\x91\xaa\xb1\x5e\x54\xa3\x76\x4d\x2c\x2b\x6c\x36\x9d\xe5\x41\xd0\x71\xb0\xa3\xd6\x9b\x47\x49\x97\x4a\xcf\x84\x4d\xe7\x43\xed\x01\x8b\x29\x6b\xcc\x7f\xc8\x51\x14\x69\x6d\xd2\x09\x49\x44\xf1\x6f\x7a\x42\xca\x85\x71\x4a\xea\xee\x46\x5f\xea\x1f\x72\x70\x73\xdf\x7f\xb4\xf6\xac\x2f\x5b\x4d\x1c\xaf\x13\x04\x51\x15\x3a\x8b\x9d\xa0\xbb\x4d\x4d\x20\xa3\x02\x8c\xbd\xec\xce\xaa\x00\xd3\x2c\xf1\x6a\x79\xd7\x3a\xfb\x4c\x91\xc3\x1b\xf5\xda\x10\xf3\x91\x65\x3e\xd2\xcb\x3c\x9b\x70\x88\x2c\x9d\xae\x5a\x4b\x05\x1b\xbb\xcc\xb3\x31\xcb\x3c\xcb\x2f\xf3\x2c\xb3\xcc\xb3\xd1\x65\x3e\x4a\x97\x79\x9c\xf3\x99\x6d\x36\xef\xc5\xcb\xac\x5a\xeb\xad\x15\x52\x3b\xc8\xd3\x07\x22\x6a\xfd\xcc\xea\x0b\x56\x36\xe3\xf6\x34\xa7\x41\x8c\xac\xbb\xba\x56\x7d\x24\x61\x09\xbf\xd4\xf3\xa2\x39\x8f\x90\x05\x32\x99\x86\x43\xe5\xe7\x10\x1a\x75\x82\x48\x1e\x2e\x38\x99\x22\x5d\xed\xea\x2f\xe7\x3d\xb0\xc0\x99\xea\x94\x34\x4a\x17\xc5\xf1\x54\x2a\x30\x23\xc8\xf1\xcc\x07\xd6\x04\xff\x2f\x59\x13\x4c\x54\x90\x28\xf6\x27\x29\x48\xc6\x35\x6d\xb5\x48\x3f\x92\x27\x54\xa4\x53\x5d\xf1\xfb\x71\xd5\x8f\x3a\xd5\x98\xe4\x8f\x78\x36\x7d\xbe\xa0\x49\x9f\x2d\x21\xfd\x29\x08\x6e\x36\xfe\xd8\xc4\xfe\x4b\x52\xd3\xba\x71\x52\x03\x90\xb8\x04\xe7\x8f\xaa\xa5\x1b\x52\x78\xc2\x58\xf4\x44\xd2\xf1\xb9\x50\xa4\xb4\x9f\x20\xe9\x19\xa0\xa4\x1f\x62\x94\xba\x01\x09\x3b\x25\x1a\x95\x22\x1a\x55\x65\xb0\x89\xc8\x72\xa8\xa2\x70\x71\x09\x4a\x64\x63\x8e\x58\x48\x11\xb2\x03\x81\xfc\xaf\xf4\x86\x1d\xe4\xcf\xdf\x45\x17\xe4\x73\xad\x99\xc8\x72\x2e\x93\x7a\xb6\x86\x54\xb3\xaa\xe6\x3f\x18\xcd\x6b\xe4\x0b\x6c\xb6\x2c\x37\xd9\xf0\x48\x1a\xce\xf9\x21\x50\x86\x3e\xe2\x87\xba\x3c\xed\xae\xce\x0d\x3c\x66\x12\x91\x35\x49\x83\x72\x39\xd0\x6e\x5c\x75\x23\x1e\x4b\x37\x77\x89\x3a\x0a\xb3\x5d\xbe\xfa\xf6\x2f\x4d\x8b\x71\x0e\x8b\x27\xbb\x06\xa7\xea\x5c\x50\xf4\x70\xcd\x96\x9c\x7a\x5b\x2c\x9d\xd0\x9d\x50\x13\xe6\xa8\xdf\x4f\x10\xf6\xb7\x58\x20\x49\x57\x31\xcb\x40\x44\x55\x40\x11\x70\x65\x6e\xb3\x0c\x27\x07\xb6\x57\x01\x41\x40\xee\xe9\x92\x3e\x94\xb4\xc9\xc8\x17\x79\xa3\x9e\xe4\xb6\xac\x82\x29\x22\xb4\x96\xb6\x98\x7a\x0a\x0e\xf4\x47\x7b\x23\x6c\xa1\x6a\x4a\x18\xdf\xbd\x49\x6e\x19\x33\x68\x82\x77\x31\x77\x0b\x88\xa2\xca\xfc\x4c\x9a\x49\x63\x05\x0f\x8b\x02\xf3\xd6\xdc\x20\x34\x23\xb8\xc4\x70\x85\x0d\xbb\x91\xdd\x83\x3c\x6e\xca\x88\x66\x0b\x88\xcd\x44\xd5\x2a\xde\x3d\xcc\x2c\x7f\xeb\x71\x91\xcc\x66\x41\xb4\x5c\xed\x46\xa9\x15\x86\x4e\x6a\xf7\x7c\x56\xf5\xa7\x3e\x86\xb7\x1c\xfb\x37\x89\xe7\x38\x56\x58\xa3\x12\xa9\x89\xca\x0e\x4a\x17\x1b\xdb\xb1\x34\x95\x08\x1d\x92\x55\x78\xbc\xf8\xfc\x9e\x15\x9e\xdf\x73\x7b\xcf\x5f\xe0\x6d\x7e\x93\xde\xb7\x69\x87\xec\x2a\x09\x0e\xd1\x0e\xd9\x05\x32\xa8\x6a\xf6\x8c\x14\x82\x0a\x7d\x1a\x44\x7c\xf7\x68\x41\x3b\xe4\x69\x51\xe3\x4e\x89\x91\xd6\xb3\x77\xd4\x88\xda\xdb\x23\x83\x10\xf8\x36\x11\x40\xa9\x14\xba\x8b\xb7\x40\x2a\x1e\xc7\x8e\xb3\x23\x62\x08\xcc\xf6\x8a\x0e\x62\xa5\xab\x9e\x0d\x78\x6f\x5b\x1c\x21\x34\x05\x6f\x76\xbe\x05\xfe\x1b\x67\xe7\xa5\x5b\x8b\x72\x59\x3f\x4d\x0d\x30\x35\xf7\x6a\x33\xb4\x6a\xde\xd1\xe3\xc0\x63\x8b\xa4\xc6\xe9\x13\xf4\x2c\x61\x87\x7c\xa9\x9d\xc3\x23\x77\x9e\x4d\xc7\x14\x35\x48\xfa\x11\x53\xb1\xaf\x96\xde\x4d\x85\xbc\xf4\x3c\x8f\xa6\xce\x47\xb7\x4d\xf4\xc3\x51\x27\x96\x77\xcb\x7b\x45\xf6\x17\x06\x5b\x78\xed\x5d\xc0\x7e\x82\xcc\x9a\x98\x07\xf6\x81\x4f\xeb\xf9\x19\x38\x02\x27\xb5\xb8\x17\x74\xb9\x9b\x1a\x9d\xd4\xc4\x2e\x68\xd5\x25\xde\x02\x91\x6e\xb0\x77\x40\x2b\x89\xfb\x5e\x51\xaa\xcb\xe8\x4a\x2a\xc6\x77\x3e\x61\xb5\x2f\x16\x51\x2d\xc8\x60\xa5\xc3\x6d\x9f\x20\x8f\x5b\x75\xed\x2d\x59\x8c\x48\xdf\x5d\xba\x80\x38\xde\x15\xc2\x40\x65\x7b\x45\x99\x1e\x5f\x09\xab\xb1\xdf\xdd\xc3\x28\x55\x53\x5a\x1e\x18\xfb\xaf\x11\xc3\x81\x99\x69\x3b\x17\x44\xed\x70\xd0\x21\xdb\x92\x1c\x45\xd2\x1a\x50\x2a\x97\xb9\x74\x4f\xca\x16\xa5\x64\x9d\x52\x34\xa3\x86\xce\x6d\xbe\x4b\x57\xb6\xdb\xe6\x97\x23\xba\x77\x7b\xc5\x2a\x12\xed\x2a\xdd\x4e\x6c\xd1\x51\x6a\x56\x8b\xa8\x39\x35\x21\x77\x91\x86\xb2\x9a\xbd\x22\x61\xe8\xc7\xfc\x5f\x40\x47\xdb\xcf\x6e\x01\x2d\x33\x9f\x77\x46\xcf\x27\xd2\xaa\xf6\x8a\xa6\x11\xe5\xff\x0a\x05\x21\xa6\x2b\x44\xea\x07\xb3\x3b\xd3\x0f\x9e\xa4\x7c\x6f\x55\x84\xbe\xdf\x11\x7a\xec\xf6\xf7\x34\x9e\x53\x72\x30\xf3\xea\x86\x07\x49\xc5\x91\x7e\x20\x5d\x5e\x71\x1c\x04\x0e\x97\xea\x2a\xba\xcf\x7e\x70\xe4\x74\x80\xed\x47\x51\xc5\xe3\x33\x90\xb0\xa0\xfc\x5b\x47\xb5\x78\xb0\xa4\x70\x73\xeb\x98\xa5\x0e\x55\x77\xc0\x86\x4f\xfb\x9d\xc3\x51\x67\x2f\x29\x1a\x73\x7f\xfa\x88\x9c\xbb\x4b\x53\x8f\x57\xa2\x49\x44\x85\x4f\x55\x86\x01\xdc\x2d\x22\x1f\x17\xbd\xde\x2b\x32\x33\xd2\x27\x3b\xd9\x8b\x1b\xea\x32\xcf\x71\x6c\x4f\x6c\xfb\xa3\x03\x5c\xba\x5f\x63\x95\xd4\xc8\x91\x6d\x9f\x30\xc7\x24\xa2\x7b\x48\x96\xd0\x6f\x93\xaa\x1f\x86\x45\x66\xef\x9b\x16\x9c\xfe\x12\xa2\x49\x30\xc3\x91\xa0\x65\xa0\x96\x20\x2b\xa2\x9f\xe9\xb9\xa8\x12\xe9\xac\x38\xc0\xb3\xf5\xd6\x0e\x84\xa3\xae\xef\x60\x18\x7a\x6c\x72\xe4\x94\x2c\x35\xd9\x26\x61\x35\x36\x27\xca\xb6\xb9\x0c\x0b\xee\x52\x41\x54\x35\x95\xe4\x0d\x4b\x36\x08\x01\xf5\xb8\x8c\x28\x33\x1c\x06\xe0\x21\x57\x4c\xf7\x72\xd9\x25\x15\xcf\x59\x76\x10\x8e\x34\x1c\x38\xd2\x16\x32\x8d\x50\x23\xdd\x05\x5b\xc7\x29\xca\x75\x24\xc5\x6c\xe7\x64\xde\x2b\x8e\x95\x57\x8d\x3b\x99\xc7\x98\x81\x9c\x34\x67\xf5\x5e\x1a\x67\x64\x11\x1e\x9a\x70\xa1\xdc\x68\x10\xb3\x1d\xe9\x35\xc7\x45\x2d\x7b\x46\x9f\x7e\x18\xec\x68\x2d\x71\xec\x13\x37\xe5\x7b\x7d\x27\x2a\xca\x71\x51\xc3\x9e\x75\x5e\x2c\x29\xbb\x7b\xc8\x36\xaa\x20\xab\x10\x21\xd3\x1d\xa8\xd5\x51\x43\x65\x4f\x0f\xd5\xea\x3b\x53\x92\xe5\xaa\xb9\xa7\x07\x68\x46\x19\xb8\xbf\xb3\xce\xa8\x1c\x6a\xe6\xa5\x3f\x77\x3a\xfb\xa0\xa6\xbd\xa2\x17\xa7\xd5\xb6\xbf\x42\xc2\x6a\xdb\x8f\xb7\x2d\xa9\xec\x49\x98\x65\x35\x1d\x0e\xa1\xe4\x48\xff\x7c\x70\x18\x2e\x4d\x68\x16\x49\xe3\xf9\x07\xd6\xcc\xdd\x51\x1d\xd5\x38\x7d\xa6\xdf\x87\xa2\x89\xf8\x06\xc1\x8d\x93\xe7\xc1\x03\xee\x4e\x4e\xd0\x4f\xd0\x43\xa2\xab\xa2\xfe\x3d\x24\xef\x69\xb2\xe4\x2f\xdd\x7f\xf2\x2a\xf2\x54\x77\x46\x9f\x4f\x0a\x5c\xf7\x98\x3e\xa1\xe8\xcf\xfd\xa1\xcf\x4e\x48\x61\xaa\xd9\x43\x52\xf4\xfd\xb8\xed\xef\xd1\x54\x24\xde\xc2\x9e\x4f\xbf\xa7\x65\xff\xf6\x98\xa8\x31\x89\x38\x89\xda\xe4\x3e\x91\xd5\xb8\x34\x77\x9f\x3b\x19\x3f\x74\xf2\xec\xb0\x59\x9b\x5d\x6c\x49\x10\xcd\x2d\x63\xe2\x2d\x90\x2c\x65\x77\x44\xc1\xe3\xba\x33\x7b\x4d\xc3\xc8\x3f\x7d\xbf\x08\x38\x22\xc3\x4e\xed\x8c\xc9\x8e\x0b\x5c\xf7\x98\x3e\x3c\xe0\xe1\x1e\xd0\x67\xfb\xf3\xb6\xb4\x33\x9a\x9e\x10\xfd\xdb\x63\x9a\x0e\x44\xa7\x76\x91\xa6\x36\x91\x76\x40\x0a\x53\xcd\x9e\x91\x82\x05\x2b\x3b\x39\xc6\xcc\xda\x24\x40\xfc\x85\xca\xb0\x79\x32\x3e\x39\x78\xfc\xf0\xe3\x8f\x9f\x3c\x77\xb0\xde\xaa\x3c\x30\xb7\xbc\x33\xfb\x84\x13\x2c\x58\xd9\xc3\xa3\x48\x49\x96\x1d\x9d\x45\x16\x12\xe6\xb9\x1c\x59\x76\x83\x2a\x7b\x7a\x76\x28\xe8\xb2\x2b\x13\x86\x05\x2b\x3b\x9a\x29\x2c\x58\xd9\xed\x3e\xaf\x86\xa4\x0a\x51\xd1\xe6\x00\x10\x3d\x5f\x0d\x0b\xfd\x37\x9b\x08\x6a\xd3\x5b\x1f\x9b\x38\xbf\x54\x76\xdc\xf2\x84\x50\x2e\x3f\x4a\x69\x48\x7c\x41\xc6\x5d\xb3\xb0\x8d\x0a\xde\x80\x2c\x13\x5e\x92\x5d\x8a\x5d\xfd\x76\x71\xad\x4f\x95\xb3\x04\x3f\x6c\x10\x19\x66\xb1\xd3\xe0\x49\xfa\xa4\x40\xef\x52\x9b\x2d\x70\x9e\x5d\xab\xd5\xe4\x7d\x4f\xad\x1b\x84\x5c\x9e\x12\x62\xde\x82\xe5\x03\xa2\xb3\xaa\x38\xaf\x2e\xd1\x5b\xb3\x26\xc1\xbc\x85\xbc\x85\xe6\x98\xa8\x70\x44\xd4\x81\x10\x4a\x62\xc2\x8f\x2b\xf4\xac\xb7\x95\xca\xab\x01\x0d\x3b\xea\xd3\x70\x18\x91\xb3\xa5\xe3\x84\xcf\x90\xd4\xfe\xbf\x49\xc4\xc6\xda\x78\x62\x77\x9c\x19\x56\x2e\xb3\x1a\xdc\x5d\xbb\xce\x6c\xb0\x22\x2d\xca\x23\xee\xe8\xa8\x98\x69\x02\xb6\xc3\xb9\xd9\x39\x75\x2c\x37\x6f\x02\xda\x96\xf1\x70\x4d\x52\xb6\x16\x13\x6e\x8d\x1a\xc3\x11\x92\x6e\x1b\xc0\x10\x55\xfc\x02\xb4\x89\x7e\x73\x91\xad\x80\x91\x15\x7a\xc6\x1a\x79\xe3\xd8\xc1\x90\xc0\xd3\x14\x70\x09\x10\x9e\x34\xeb\x2d\x84\x92\x4e\xd0\x39\x46\xda\x24\x38\x43\x0e\xc2\x53\x1e\x78\x1f\x9a\x92\x56\xfd\x94\x70\xc6\xc6\xb3\xe0\x88\x97\x93\x98\x57\xcf\xfa\x01\x17\x73\x61\x69\x10\x84\x1d\xfd\xab\x68\x4a\xd8\x99\x0b\x13\xe7\x22\x4a\xfb\x76\xca\xfd\xf4\xfa\x62\x4b\xa6\xfa\x8c\xe5\x06\xd3\xf8\x56\x91\x01\x87\x27\x77\x79\x6c\x78\xe8\x4c\x2e\xf5\xb7\xba\xe2\x47\xfe\xb2\x20\x4d\x51\x1e\xbb\xd7\x85\x19\xb2\xd4\x1d\xd7\x4c\xb5\x4b\x59\xb5\xcf\xe8\x4a\x10\x17\xf8\xcc\x51\xfe\x17\xee\x53\x44\xfb\xf4\x69\xed\x94\x21\xed\xa1\x40\x32\xa9\x56\xfb\xc9\xee\x94\xf5\xa6\x45\x26\xd6\xbc\x4c\xf8\xb3\xc0\x8c\x53\xd6\x9c\x16\x99\x58\xf3\x29\x46\xa4\x97\x91\x29\x6b\x55\xd9\x37\xc3\xf5\x69\x12\x75\x82\x68\x59\xb5\x7f\x9c\xfb\x9c\x6c\x05\xed\xd1\xd2\x13\xdb\xeb\xf9\x71\xa6\xc4\xf4\x24\x1a\x29\x39\xb1\x9d\x13\x24\xd6\x14\x9d\xb2\x01\x33\x39\x27\x56\x2b\xe7\xca\x96\xea\x8d\xa6\xaa\x57\xcc\xb0\xc7\x29\x7b\x5a\xcf\xaf\xe9\xaa\x0e\xac\xaa\x37\x11\x27\x23\xf2\x6f\xcf\xcc\xc5\x26\x3a\xbf\xd2\x2b\x84\x7a\x0f\x93\x2c\x91\xe5\x20\x3a\x18\xaf\x46\xed\xec\xa3\xc7\x84\x44\x1d\x48\x4e\x04\xfe\xcf\x44\x3c\x08\xad\xc7\x8b\x49\x87\x2c\x0d\x96\x8f\x44\xdd\xd4\x71\x54\xb3\x95\x48\xe6\x17\x45\x36\x93\xb5\x63\xe8\x32\x8d\xc4\xbd\x6f\xf1\xf8\x2d\x7f\x8d\xcc\xab\xcf\x58\x8f\xae\x52\x8e\xad\x54\x92\xe9\x5c\x8b\x05\xf1\x31\x2d\xb7\x48\xc7\x9b\x9d\x57\x8b\x7a\xc0\xc9\x8a\x5a\xcf\x8f\xfa\xfd\xd1\x77\x49\x11\x39\xc7\x4f\xd0\xd3\x24\xf2\xf8\x70\x18\x25\x79\xa7\x0f\x76\x95\xc3\xa1\x2b\x2f\x91\x21\x8f\x72\x11\xa5\x75\x87\x6c\xdb\x75\x64\x8f\xb2\x0e\x2c\x6a\x9a\x72\x11\x3c\x89\x53\xd1\x42\xa1\x49\x0b\xe1\xd1\xa7\x6e\x3a\x12\x60\x5a\x6d\xa9\xed\x87\x21\xe9\x94\xba\x94\x95\x1e\x58\x23\x89\x0c\x7c\x1f\xf0\x52\x10\x97\xfc\x90\x11\xbf\xb3\x5a\xea\x2b\x41\x52\x7b\x1e\x69\x0a\x9b\x8a\x32\x4e\x1e\x55\x8b\xea\x31\x8b\xd6\x60\xfd\xf6\x69\x5b\x66\xc8\x84\x04\x87\xfe\x12\x09\x1b\x5c\x8c\x60\xca\xac\x3a\x9e\xfd\x14\xb8\x43\x91\x09\x98\x47\x94\x97\xb4\x5b\xaa\x30\x83\xbf\x55\x7d\xaa\xea\x8d\x4e\x92\xd4\xe3\x98\xee\x54\xf0\x79\x52\x34\x6d\xc0\xa3\x98\xca\xa5\xbc\xf9\xb9\x28\x9d\x4c\xd6\xc7\x76\x48\x7c\xe6\xa2\xcd\xa7\xd7\x6a\x9f\xa4\x0a\x8d\x3d\x63\xd0\xda\xa8\x39\xe8\x64\xc5\x63\xb3\xe9\x39\x41\xc5\xbb\xaf\x1e\x14\x67\x8c\xa2\xc7\x93\x19\xf5\xa0\x0d\x74\x3d\x47\xe3\x0e\x68\x6d\x26\xaa\xf3\x3a\xdd\x7d\x13\xd4\x30\xbf\x32\xfd\xe1\x8a\xdd\xb5\xc3\x17\x94\x60\xfb\x25\x76\x2e\x27\xf0\x9b\x76\xec\x82\x89\xa5\xc6\x78\x23\xcb\x95\x64\x2d\x8b\xa3\x30\xd1\xfa\x89\x9d\x95\x1b\xae\x52\xb5\x8d\x6a\x17\xd2\x92\x64\x44\x17\xf0\x22\x63\xec\xa7\x25\x9a\xbd\x01\x06\x23\x8d\x35\x3d\x6f\x1a\x75\xac\xa9\xdd\x58\x4b\x92\xf4\xb9\x2b\xec\x8e\xb8\xb7\xa0\x1f\xd6\x5a\x13\x09\xad\x91\x9a\x2e\x5f\xa9\xcc\x40\xfc\x6e\x6b\x0a\xcd\x90\x9a\xae\xb5\xc9\x25\x49\x5a\x1e\x1b\x0e\x67\xeb\x89\x14\x0b\x85\x12\xdc\x45\x50\xe5\x42\x3d\xd1\xa1\x8f\x49\xcc\xcb\xe5\x14\x36\xc3\xa4\x7a\x2a\x9f\xcb\xcf\x46\x2e\x2a\x64\xa3\x73\xbc\xba\x42\xfc\x78\xc0\x08\x4b\x1f\x34\x67\x92\xff\x35\x76\xe2\xf0\xa8\x1f\x22\x81\x05\x51\x60\x84\xc9\xa9\x22\x27\x10\x2a\x9e\xad\x1f\x9d\xf1\x63\xaf\x43\xdb\x32\x59\x87\xe2\x3c\xac\xb6\xac\xae\xa3\x3e\x43\x10\xff\x36\x3f\xe7\x59\xa5\x04\xf3\x1c\xa2\x91\xe8\xbb\xeb\xec\xeb\x38\x28\xc1\x67\x83\x0e\xef\x09\x49\xa0\xde\x93\xaf\xa5\x21\x1f\x5d\xa8\xa1\xd6\xa5\x11\xf7\x78\x5a\x65\x4d\xd3\xed\x84\xa8\x87\xa0\x9a\xac\x23\xc1\x61\x10\x11\xed\x79\x0e\x2a\x1b\xa9\xc5\x04\x59\x02\x1b\x8e\xb9\x93\xd1\x1c\xc2\x81\x09\xef\x6b\x6c\xd8\xa8\x57\xdf\x4f\x0f\x98\xa8\xbf\x14\x22\x89\x12\x2f\x6a\xd2\xd6\x4c\xd0\x75\x1d\x67\xd6\xf3\x8c\x63\x62\x62\x1d\x9f\xe3\x48\x86\x0c\xae\xcb\xca\xf6\xd3\x03\xcc\xb8\x66\xb5\xeb\x29\xec\x0e\x6b\xd2\x56\x45\x1e\xc1\xcb\x5e\xcd\x44\x15\x8f\xe0\x68\x41\xd0\x23\xa8\x54\x70\xe4\x11\x94\x28\xef\x1f\x63\x8b\x5b\x45\xfd\x4c\x51\x1f\x25\x60\xe5\x14\x24\xb8\x1b\x70\x51\xe4\xb8\x3c\xba\xb0\x88\xa6\xe8\x23\x6b\x87\xc1\x61\x48\xbb\xf3\x32\x84\xac\xad\xf8\xbc\xdd\x73\xe7\x4e\x76\x2a\x73\xa8\x59\x6f\xc1\x74\x3d\xea\xf3\x5e\xad\x1b\x52\xca\x5c\x19\x1a\xf7\xf1\x90\xfa\xdc\x0d\xd0\x43\x7c\x2e\x12\xdb\xeb\xc9\xee\x0a\x39\x1b\xf0\xde\x88\x33\x6f\x3f\x7b\x22\x8d\x0b\x33\x83\xcf\x4a\x91\xd6\xa6\xd1\x19\xc2\x36\x73\x96\x94\x3d\x8b\x83\x61\x67\x5e\x5d\x10\x19\x86\x9d\x1d\x88\xf6\xb3\x4a\x05\x09\xc1\x33\xef\x79\x79\xf7\xd3\x4d\xd6\x4a\x63\x14\x37\x99\x21\x43\xc6\x79\xef\x76\x8e\xf0\xfc\xa8\xb3\xbb\xd6\x79\xc5\xa4\x95\x36\xde\xdb\x38\xc3\xb5\x9e\x92\x34\xeb\x2d\xcf\xf3\x48\x73\x7b\xfd\x94\x08\xec\xee\xe1\x6d\x71\x4f\x97\xb7\x77\x78\x8f\x79\xcb\x72\xa6\xc0\xc4\x62\xd4\x26\x4f\x0e\x44\x43\xe5\xb2\xeb\x44\x12\x72\x66\xad\xa3\x5b\x97\x78\xea\xbb\x3c\xa9\x1b\xc9\xa1\x02\xd8\xea\x1c\x1c\x21\x84\xc9\x02\xdf\x0e\xe5\x96\x77\xf9\x9c\x7f\x1c\xd9\xb6\x77\x27\xb6\x27\x74\xf3\xb6\x49\xb8\x5d\xbe\x50\x2b\xa6\x5c\x10\x57\x7d\xc6\xfc\xa9\x43\x06\x67\x67\x17\x88\x23\x69\x22\x96\x8a\x23\x7e\x80\xed\xe7\x96\x38\xd2\xee\x9f\x62\x15\xcf\x9b\x34\xb9\x11\x47\xc6\x44\x6f\xb6\xbe\x1d\x22\xe9\x2a\xf7\x88\x50\x64\xa5\xcf\xf7\x22\xb6\xf2\x16\x1e\xcb\x35\xad\x87\x89\x40\xe5\xc3\x02\x4d\x77\x0a\xb7\xbb\xe3\x3b\xba\x4d\x79\xab\x6e\x4c\x46\xf0\x11\xb5\xc9\x95\x6d\x7b\x43\x7c\x78\xaf\x84\x6f\xf8\xfe\x15\xbe\x07\xb6\x25\x43\xc2\x3d\x11\xbe\xe1\xfb\x58\xf8\x1e\xd8\x9e\xf0\x0d\xf7\x46\xf8\x9a\xf7\x6b\x3b\xd6\x6d\x66\xb7\xaf\xdb\x44\xfa\x15\x9a\xea\xd0\x1e\x75\xfb\x7d\xa1\x29\xd7\x27\x6a\xca\x3b\x5c\x9a\x22\xca\xf7\x42\x35\x2e\x8e\x1e\xf4\x3e\x23\xe5\xee\x6e\x3a\x28\xdb\x0b\xc2\x9e\xdb\x0b\xca\x5a\xaf\xa8\x2c\xc2\xd5\x5b\x68\x76\x94\x9c\xf3\xdb\x7b\x4d\x75\xee\xfe\x92\xab\x88\x02\x7b\x1b\x7f\xc1\x3c\xd4\x85\x93\x2f\xe5\x85\xcb\x09\xe2\x13\x02\xab\x55\x07\xc9\x53\x90\x25\x65\xab\x92\xda\xaf\xa4\x6e\xf3\x66\x72\x0a\x8b\x56\x53\xd1\x62\x7d\xd6\xf3\x32\x75\x2a\xbe\x75\x50\x63\x76\xb6\x28\xb0\xc3\x19\x3f\x0c\x3a\x3e\xa7\x2c\x9e\x6b\xd3\x30\x24\x12\xc7\x22\x2e\xb2\x32\x2a\x02\xea\x84\x80\x46\x55\xc2\x18\xdd\x93\x03\x68\xb1\xf8\xaa\x53\x94\xb4\x8f\x0c\x3b\x16\xe6\x92\x72\x72\x6e\x47\xe5\xf2\x6c\x9e\x3c\xa8\x88\x7b\xed\xe2\x58\x34\x31\x03\x9b\x80\x08\xc6\x67\xb3\x1a\xe2\x20\x5a\x1e\x84\x3e\xd3\xe5\x8d\x10\xde\x84\xde\x51\x37\x60\x2b\xfe\xfb\x9c\xe2\x38\xd2\xfe\x7e\xb2\x34\x07\x5a\x67\x12\xfd\x30\xa4\x67\x1f\x0d\xfd\xe8\xb4\x83\x52\xda\x81\x76\x0f\xab\x54\x5d\x12\x38\xaf\x6b\xa7\x15\x45\x38\x40\x63\x87\xca\xa6\xd9\x16\x88\xdd\xf1\x79\xe1\x75\xca\xe6\x44\x36\x01\x96\xc8\x0b\x83\x80\x49\xe3\x35\x41\xb9\x3d\xb1\xa8\x01\x97\x97\xd1\xc8\x25\x9a\x73\x94\xae\x90\x88\x7f\xe2\x78\x29\x88\x4b\x1a\x35\xe9\xf2\x52\xe0\xc0\x7b\xa4\xf4\x98\xcf\x49\xc9\xf4\xae\xe6\x20\xfd\x94\xd3\x90\xf9\xd9\x80\xf7\x20\xfe\x0f\xc3\x8e\xec\xec\xe3\x54\xd0\xd6\xc1\xce\xd1\xa3\x47\x4b\x8f\x51\x5c\xfa\xcc\x67\x3e\xf3\x19\x47\x07\xff\x4a\x8b\xea\xee\x04\x24\x76\x19\x6e\x3a\x5d\x28\xd5\x67\xa4\x1d\xc4\x72\x68\x6c\x56\x68\xa9\xb6\x63\xcf\xaf\xa9\xac\x38\xf4\xfc\x9a\xc9\x8c\x07\x9e\x5f\x4b\xb3\xcb\xc6\xda\x63\x1b\x5b\x52\xde\xab\x05\x03\x3e\xc5\x1e\x85\x1f\x7e\x57\x59\xf3\x88\xc4\x83\x12\xd6\x8d\x76\x70\xcf\x6b\xd7\x54\x21\xdc\xf5\xda\xb5\xb4\x18\xee\x7b\xed\x9a\x2c\x88\x57\xf4\x07\x59\x54\x70\xe7\x60\x13\xee\x8d\xd1\x5a\xc7\x0b\x5c\x82\x63\x3c\x5b\x57\x02\x43\xfe\x42\xb5\x20\xfe\x94\x20\xba\x3b\x86\x81\x15\x1f\x1a\x29\xd3\xd9\x2c\xff\x59\x46\xa3\x65\x31\x96\x30\x34\xa2\x68\x42\xc2\x98\x94\x82\xae\x2b\x71\x40\x78\xf3\x6a\xb2\xcd\xf6\xca\x65\xb7\xe7\x05\x6e\x0f\xc7\xba\xb0\xa2\x88\xdb\xc3\xa1\x99\x79\xa5\x34\x26\x0e\xc3\x86\xec\x3d\x3d\x84\x2e\x45\x08\xe7\x1a\x81\x3c\xd0\x4c\xb7\x5c\x76\xbb\x5e\xe0\x76\x4d\x33\xc7\xfd\x15\x02\xe4\x77\xbb\x63\x1b\xb3\x87\xb6\x3b\xa1\x41\x3b\x1f\x34\xda\x2f\x97\xdd\xbe\x17\xb8\x7d\xd3\xa8\x1c\x54\xb7\x3f\xb6\x35\xcd\x3b\xfd\x09\x0d\xe9\x2c\xd0\xc6\x4a\xb9\xec\xae\x78\x81\xbb\x92\xeb\x98\x6a\x69\x65\x62\xbf\x14\x77\xe2\x95\x4d\xba\x75\xd0\x6a\xd1\x48\x38\x4c\x6a\xf2\xec\x5f\xf0\x83\x17\xa4\x2e\x35\x33\x71\xcc\x9c\x15\x29\x19\x1c\x94\x2a\x6e\x81\x0b\x0f\x4d\x8d\x69\x6c\x44\xcf\x3a\x9e\xe7\x91\xe1\x30\xcf\xe7\x8b\x91\x8b\x1a\x90\xf8\x24\x8d\x88\xcb\x45\x9a\x10\x3d\xa2\x5d\x31\x13\x1a\x20\xf2\x36\x91\xb9\x31\x88\xd0\x82\xf8\x76\x59\x69\xba\xed\x35\xef\x3e\xc9\x5d\x8e\x29\xf6\xc7\xca\x5e\x49\x9d\xea\x63\x3e\xf7\xc7\x4a\xdf\xe3\x2a\x6f\x56\x02\x4b\x5f\xce\x5e\xe0\xfa\x4a\x36\x85\x5e\x5c\xeb\xfb\xbc\x87\x07\x5e\x5c\x3b\x4d\x56\xb1\x25\xf5\x5c\x8a\x43\x94\x59\x27\xe5\x50\xb4\x51\xb9\xdc\x2e\x81\xef\x62\xda\x2d\x45\x35\xd9\x4e\x5c\x2e\xb7\xa5\xbd\xc5\xc0\x12\x00\x36\x53\x74\x62\x15\xad\x00\x73\x6b\xa1\x6d\xd7\x24\x4d\xe3\xc7\x29\x73\x07\x08\x3b\xa1\x1f\x73\x4d\xbf\x15\x12\xc7\xfe\x32\x71\x50\x96\xfd\x84\x3c\xf6\x79\xef\x60\xd4\xf9\x24\x59\xcd\xb2\xa0\xcd\xc1\x6a\x30\x3b\x3e\xf7\x73\x6c\x68\x2c\x08\xe0\x4e\xaf\xe6\x20\xcc\x3c\x5e\xeb\xd3\xbe\x6b\x79\x62\xee\x0f\xe2\x9e\xab\xd6\xa4\xd8\x41\x78\x4d\x90\xa9\xc1\xf5\x43\x18\x51\xe6\x34\x59\x6d\xb0\x22\x5b\x0c\x8b\x83\xc8\xb9\x76\x38\x88\xdf\xd7\xda\x55\x81\x6e\x15\x61\x27\x88\x34\xb3\xd0\xc2\x65\x30\xc2\x4d\x87\x29\x3f\xcb\x05\xcb\xac\xef\xd1\x9a\xfc\x2a\xb8\x87\x5a\x0b\xeb\x26\x4b\x5a\x50\x2e\x2b\xcf\x8b\xe6\xe9\xf8\x38\x6d\xd7\xa2\xab\xf4\x7a\x1b\x74\x5d\xbf\x5c\xde\xe7\x79\x9e\x0f\x1e\x5b\xd6\x14\xab\x33\xd7\xc7\xfb\x14\x5a\x81\x17\x37\xeb\x2d\x4c\xbd\xb8\x39\xdf\x4a\x15\x47\xb1\xb3\x91\x4d\x99\x33\x77\x9d\x12\x18\x05\x72\x6c\x16\x8a\xca\xe5\xe0\x80\xd8\x45\x91\x03\x1e\x9d\x0a\xd7\xc4\x30\xb3\x3e\x22\xca\x8e\x70\xd0\x75\xa5\xa2\x3f\xaa\xf0\x97\x24\x39\x8f\xcb\x10\x2c\xb5\x80\x13\x26\x58\xa7\x14\x40\xd0\x35\x2b\x63\xb6\x46\xd5\x4a\xb3\x85\x23\x6f\xb6\x2e\x7d\x6c\x60\x08\x65\x39\xc3\xd9\xaa\x3c\xa8\xd0\xa1\x55\x3d\xd2\xcc\xd5\xdf\x72\xd1\xfe\x59\x37\xf2\x5c\xdf\x53\x66\x63\x2e\x42\xb5\x0e\x8d\x08\x2a\x97\x5d\xa6\x26\x89\xaf\x6c\x4c\x10\x9e\xe5\xc3\x21\x5c\x87\x4b\x2f\x4f\xfb\x45\x93\x68\x7f\xd2\x96\x17\xca\x21\x5a\x0b\x04\x0a\xd4\x0b\x93\x6e\x10\xf9\x61\xb8\xba\x26\x10\x98\x8d\xca\xe5\xb8\xa6\x70\x4f\x21\x17\x99\x4c\x82\x35\xb4\x08\xa4\xe6\x96\x9b\x49\x27\xe9\x68\xa6\xd0\x05\xfb\x91\x48\xce\xa5\x92\x76\xc5\x2e\xe4\xa2\x8c\xd3\x35\x68\xf3\x01\x23\xca\xfb\x3a\x57\xd6\x9e\xa5\xd4\x0d\xfb\xe4\xb9\x0c\x3a\xe6\xfb\x62\x22\x33\x22\x77\x7b\x87\xcf\xf5\x19\x89\x05\x73\x41\x9c\xd1\xe2\x49\x6e\x42\xf5\x15\x4d\xe6\x40\x05\x5a\x23\xe7\x1c\xec\x08\xbe\x96\x61\x5a\x64\x50\x83\xf1\xb3\x5b\x64\xc7\xb1\x47\xe5\x44\x90\x8c\x1c\xca\x78\x75\xb2\x98\x8e\x62\x66\x1c\x56\x87\xe5\x72\xb8\x15\x51\x10\x97\xcb\xb3\x7e\xb9\x1c\x35\xe3\x56\xb9\xec\xfa\x9e\x00\xd0\x8c\x43\x56\xfc\x20\x14\x2a\x43\x2c\x53\x3d\x2f\xaa\xc9\x24\xf9\x6b\xd4\x44\x4c\x7f\xad\xc5\x74\xc0\xda\x24\x73\x1e\x9b\xed\x3f\xc1\x4d\xd5\xcd\x27\x69\x74\x22\xec\x38\xd8\x59\x09\x04\xf0\x84\x3a\xb7\x68\x81\xf4\x60\x35\x2b\x97\x8c\x27\x68\xe7\x9b\xc9\xac\x92\x14\x0d\x87\x23\x47\xed\x74\x38\x74\xb9\xc7\xd3\xf7\x27\x4d\xbf\xfa\xf9\x7a\xf5\x3f\x5a\xee\x62\x43\x83\xd5\xd6\x43\x90\x88\x16\x1f\x70\xf0\xf3\xf0\x6b\xed\x81\x35\x9a\xe0\x64\x5c\xce\xe7\x91\x74\xf0\x9d\xad\xfe\x3f\xd3\xdc\xe3\x9a\x38\x79\xb2\x86\x1c\x3c\x65\xce\x45\x94\x2e\xc6\xa5\x8c\x8b\x1d\x27\x70\x50\xe2\x06\x08\x62\x8d\x08\x6d\x33\xc0\xc0\x55\x3e\x52\x7a\x04\x13\x3c\x2d\x8d\x4b\x1c\x34\x1c\xfa\x23\x2c\xa0\x0d\x4f\x7c\x84\x66\x3d\x6f\x50\x28\x4d\xe3\xe1\x50\x30\xa7\x98\x5f\x42\x9c\x06\x96\x6e\xa0\x35\x01\x18\xe3\xb6\x1f\x1d\x89\xce\xd0\xd3\x44\x9e\xbe\x16\xcc\x97\x35\xc9\x1e\x8d\xb9\xe7\x74\x1f\x67\xff\xed\x81\x0f\x95\x1f\x7c\xa8\x72\x72\xce\x5b\x7c\xee\xd4\xf3\x6b\xc3\xe4\xff\x54\x5b\x15\x77\xb1\x71\xb2\x36\x31\x07\x7a\x68\x1a\xea\xd5\x50\x65\xb3\xd1\x9e\x0b\x70\xbf\x47\x23\xd2\x98\x7b\xce\x6d\x9e\xac\xb4\x16\xe7\x4f\xc6\x0f\x35\xab\x27\xe7\x4e\xd6\x5a\x8b\x27\xe3\x87\xd0\xa2\x7b\xd2\x75\x4f\x76\xd6\x1e\x4e\xd0\x49\x34\xd4\x10\xca\x66\x82\xef\x23\x89\x1f\x96\x89\xae\xdb\x3c\xf7\xe9\xd6\xb0\x49\x0e\xb7\x04\xd0\xe4\x27\x5a\x8b\x4d\x91\x6b\x28\x2d\xc5\x04\x65\x64\xb6\xe6\xbf\x3d\x74\xb2\xd3\xaa\x20\xf4\xd0\x03\x73\x78\xc0\xc2\xc6\x9c\xbb\xd8\x70\x9b\x07\xab\x9f\xf5\xab\x9f\x6f\x55\x50\x43\x20\x33\xb7\x56\xc7\x0f\x27\x48\x74\xe1\x60\xf5\xb3\xa2\x17\x1a\xac\x0a\xf8\x21\xf7\x64\xad\x79\xf2\xac\xa0\x50\xc5\x6d\x9e\x3c\x5b\xc3\xff\xb9\xf8\x9c\xf7\xa1\xb2\xbf\xd2\xdf\xdf\x38\x39\xf7\x7f\x2a\xff\x56\x5d\x4b\x5a\x0f\x35\x4f\x9e\x4d\xd3\x4d\x32\x5a\x5c\x9c\x9b\x2c\x8e\xe5\x7b\xaf\x0f\x54\xab\xad\xa8\x56\xde\x34\xaa\x95\x45\xd7\x1d\xa8\x56\xb3\xbb\xa2\x5c\xa1\xe1\x30\x58\x20\xc3\x21\x59\x18\xa3\x5b\xe5\x90\xfd\x40\xb7\xfa\x5f\xaa\x5b\x8d\x7d\x7c\x37\xf9\xc8\x73\xe7\xb3\x56\xe3\x40\x6c\x4e\xa9\xd5\x6a\xe6\x90\xbf\x70\x57\x69\x21\xee\x54\xd2\xa0\x41\x91\x2b\x4b\x4e\xee\xa9\xbe\x0c\x79\xdf\xca\x2c\x1d\x9a\x27\x1a\x7b\xfa\x09\x3a\x50\x4e\x3e\x61\x81\xcb\xa3\x84\x9f\x25\x24\x3a\xaa\x77\xee\xd8\x09\x62\xa5\x4d\x89\xff\xfd\x73\x4e\x4b\x59\xe3\x9a\x2a\xf4\x81\xb0\x71\x8a\x15\x0c\x87\x01\xf6\x21\x87\xac\x58\x06\x1c\x1b\xa9\x1a\x87\x5e\x54\x0b\x62\x3c\xf0\x22\xa1\x84\xe1\xb6\xf8\xeb\x9f\x4b\x37\x75\x5a\x0d\x4b\xa5\xe0\xac\x50\xbe\xf2\xc2\xc3\xe8\x11\x0c\xe4\xdc\x78\x21\x2a\x8f\x72\x8b\x2f\xb6\x46\x0f\x49\x42\x54\x2e\x87\xb3\x9e\xd7\x99\x70\xa4\xaa\xd5\x4b\xd3\x7a\x6c\xdd\x16\xc9\x4a\x06\x28\x9f\xd2\x16\x92\xa1\x73\x60\x30\x1c\x76\x16\xda\x63\xe4\xf7\x92\x22\x94\x75\xc2\x3b\x52\xe9\x60\x61\x0c\x5e\x9c\xd2\xe3\x3d\xca\xf8\xb8\xc2\xf2\xec\xe7\xc0\xf8\xc2\x4f\xd0\x68\x79\x4b\x77\x22\xfa\x8c\x67\x6a\x4f\xc4\x3b\xe0\xf1\xb5\x53\x52\x1b\x6d\xcc\x9d\x5c\x73\x4f\x9e\xad\xa0\x93\xc9\xdc\x32\xd6\x1f\x21\x4e\x6c\x40\xa3\x86\x73\xa2\x17\xc4\x2a\x50\x97\x83\x97\x89\xfd\xed\x71\xf5\xc6\xcb\x5b\x4b\x72\xe6\x5a\x32\xfa\x1f\x76\x3a\x69\x56\xa1\xe0\x5a\xdf\x64\x6c\xaa\xd1\xc6\x1c\x94\x88\x26\x34\x53\x17\x54\x2f\xed\xb2\xd5\xc6\x53\x67\x72\x73\xb5\x12\x84\x39\x4a\x70\x36\x0f\xd4\xa2\xad\xd7\xf5\x60\x64\xa7\x06\x13\x3b\x14\xed\xe4\xce\xec\x50\x64\xb0\x3b\x6b\x97\xa4\x31\x87\x99\x82\x10\x4e\x5f\xcf\xe7\x33\x29\xfa\x3a\x08\x4b\x29\x02\x01\xed\x15\x69\x18\x42\x09\xf6\xdb\x6d\xd2\xe7\xa4\xd3\x70\xd6\x2c\x4a\x25\xa5\x95\x41\xcc\x4b\x4b\xa4\x04\xdf\x1d\x2c\x0f\xbb\xc7\x66\x13\x1f\x4b\x6b\xf2\x4f\xe2\x60\x75\xe4\x3f\x2e\xb3\xfa\x5a\x5a\x53\x7f\x45\x76\x21\x54\xf2\xb9\xdb\x7e\xf4\xa0\xca\xae\x64\x59\x7a\x1d\x3b\x16\x89\x92\x7d\x65\x6b\xdf\x09\xe6\x4b\x74\x28\x89\x45\xed\x72\x6f\x53\x5a\xa3\x51\xe2\x60\xb1\xe2\x8c\xaf\x59\x2d\xaf\xfa\xbe\x44\xee\x51\x36\xc9\x2a\x33\x95\xfc\x4e\x47\xec\x6d\x44\x99\x3e\x5f\x1d\xdb\x45\x6d\x8f\x29\x2d\xa8\x4e\xd0\x71\x55\xcb\xcf\x62\x69\x5f\x0b\xe2\xc4\xc1\xe4\x0c\x19\x4b\x0a\xf1\xcd\xc1\xe6\x94\x2b\x9f\x4d\x1e\x4f\xc7\x84\x9d\x11\x03\xbb\x2c\x1f\x94\xb0\x13\x3d\x7f\x6c\x75\x3a\x4b\x89\xf7\xfc\xa8\xb4\xb6\xcc\x93\x4c\xa9\xa7\xd8\xe1\xc9\x88\x67\x8a\x53\x66\x75\x64\x99\x8b\xf1\x37\x1a\x63\x01\x9e\x11\xe5\x25\xed\x46\xa2\x23\x94\x3f\xde\x23\xa5\x30\x88\xb9\x28\x25\x29\x5d\x50\xc6\x2c\x22\x21\x89\xe3\x49\xfd\x12\xdf\x75\xa7\x42\xd1\x29\xc8\xbf\x69\x8f\xd2\x82\x99\xee\x84\xb2\x3b\x11\xe5\x07\xa3\x23\x11\x27\xcb\x13\x26\x4c\x54\x0a\x54\x0e\x95\x5f\xd9\xfa\x8d\x67\x2a\x7d\x6c\x81\x69\x67\xec\x54\xa5\x9d\x8e\x83\xcd\x25\xd1\xd8\x5c\x12\x65\x3d\x5f\x4d\xee\x44\x95\x7c\x74\xe2\xbc\x55\x45\x61\xf6\xa6\xf9\x45\x61\xde\x9b\xcc\x41\x32\x83\x26\xb5\x0a\xe3\xe8\xe8\x8d\xf5\x26\xf3\x48\x66\x32\xdd\x57\xde\x52\xce\x8c\x2d\x05\xdf\x1d\x0c\xd1\x02\x9f\xea\x8e\x6f\x01\xf2\x94\x68\xb7\xb4\x96\x16\x10\xa8\x89\xe9\x11\xf1\xb1\x12\x4c\x89\x24\xb0\xef\x18\x3b\xaf\xb3\x12\x49\x2f\xc6\x05\x0c\xcb\x29\x2d\x85\x34\x5a\x2e\xb9\x2b\xfe\xb9\x60\x65\xb0\x22\x12\xd7\x56\xfc\x73\x49\xa9\xdd\xf3\x99\xdf\xe6\x84\xc5\x48\xd6\x20\x75\x81\x31\x55\xc4\xe2\x5b\xc9\x5d\x09\xa2\xb4\x8e\x20\xca\xd5\xa1\x75\x91\xf1\xc2\x59\x7e\xd6\x25\xfd\xa8\x33\x82\x87\x23\xcf\x1e\x36\x19\xb6\x01\x0b\x1d\x9c\xbb\xa5\x1e\x57\x46\xcf\x6a\xb5\x5c\xca\xb1\x50\x60\xa2\x6b\x50\x4a\x59\x51\x9f\x7b\xa4\x24\x73\x94\x94\xd6\x57\x72\xe3\x1e\x1d\x84\x1d\x51\xa9\x90\x91\x99\x8e\x4f\x56\x7a\x80\xc1\x76\x7f\x0b\x60\xdb\xc9\x61\x86\xb5\xaf\x6c\x9a\x31\x9b\x21\x08\xfb\x5e\xa0\x55\x02\xa1\xa0\x7b\x9e\x47\xca\x65\x7f\xd6\xf3\xe8\x62\x7e\xbb\xa3\x24\x93\x83\x03\xcc\x50\xc3\x09\x39\x64\x5e\x18\xcd\x0b\xf2\x2c\xcd\x4c\x4c\xee\xb1\x99\x8d\xf0\x83\x52\xcb\xa6\x89\x03\xa3\x4d\x58\xeb\x40\x9a\xdf\xb4\x72\x60\x52\xfe\x91\x86\xcc\xec\x85\xd2\xf5\x7c\xe9\x74\x7e\xab\x12\x42\xe6\xe9\xcc\x1f\xda\xe7\x79\x23\xf9\xa5\x4c\x54\x59\xe5\x92\x68\xf2\xce\x8e\xe6\x55\x6b\xa6\xcc\x3c\xeb\x3a\xa9\x38\xd0\x85\x66\x23\xd7\x9f\x93\xc7\x1f\xb9\x72\x56\x4e\x59\x3a\x13\x1b\x36\xbd\x59\x57\x0c\x66\x3b\x9d\x0a\xe2\xc7\x83\x28\x90\x77\xe7\xe5\xb2\xf5\x90\x4f\x9e\xba\xec\x28\xd4\x6b\xf6\x96\x41\xf1\x9b\xb1\x37\xc7\xbe\x67\x87\x71\x0e\xe0\x02\x7a\xdc\x35\x44\x66\x43\x39\xb2\xd3\x3c\xae\x5d\x32\x3b\xb0\x9c\xb5\xd2\x5b\xec\x9c\xf5\xce\x00\x92\xcc\x36\xb3\x9d\x6e\x33\x07\xc3\xe1\x00\x77\x20\x87\xaa\x15\xf7\xbc\xb8\xa6\xeb\x15\x1b\x9f\x76\xba\x17\xcc\xed\x24\xe5\x79\x5a\xb8\xc9\x79\xdb\x98\x8f\xb9\xe1\x4c\x57\x63\x7d\x98\x1d\x74\x5d\xd0\xc9\xed\xd1\x9b\x1d\xb3\xe5\x2a\x2a\x3f\x6b\x6f\x9e\xc6\x33\xc4\x6c\x10\x3f\xe9\x3f\x29\x63\x0d\xd3\x2d\x60\xd7\x93\xcc\x39\xa9\x04\x68\x23\xba\x8c\xf5\xd8\x69\x3f\x3f\xe0\x9b\xc7\x4e\xe9\x53\x59\xe6\xfa\x4d\xde\xc2\x01\xa6\x59\x9b\xd3\xf4\x0d\x83\x39\xa4\x4b\xa6\xdb\x55\xaa\x15\xb5\xbd\x43\x6b\xbb\x91\x9c\x83\xe8\x2c\xf3\xfb\xd5\x3e\xa3\xe7\x56\xf7\xc8\x08\x24\xd2\x81\x92\xc7\x9e\x14\xa7\x5d\x75\x82\xe5\x88\x32\x92\x39\x2d\xa6\x5e\x50\x83\x1c\x42\xea\xd7\xac\x3c\x38\xce\x59\xed\x10\x84\x43\xcf\x5f\x04\xce\x7d\x5a\xa9\x25\x6e\x8c\x1a\xb3\x59\x6e\x8e\x53\x0b\x57\x5a\x2e\xcf\x86\x63\xce\x21\xd4\x2c\x86\x33\x64\x69\xcd\x4a\xcb\xe5\x31\xb9\xb5\x12\xa4\xf3\x4f\x37\xcc\x6a\x54\x82\xb8\xc8\x57\xc5\x1e\x98\x50\x6b\x24\xdd\x59\x19\xb0\x5f\x94\xe7\x3d\x12\x39\x08\x25\xc6\x33\x42\xee\x26\x6a\xd4\xf7\xc6\x64\x1e\xdb\xc1\xfb\x16\x8d\x96\x4b\x6c\x4b\x1d\x85\x8e\xea\xfe\xd3\xa2\x85\xe1\xb0\xe0\xbb\x3c\x1a\x97\x9f\xb7\xe7\x64\x38\x4f\xab\x12\x71\xad\x90\xe5\x2e\x43\x8b\xc4\xcd\xd9\x4e\x47\x5c\x9a\x8b\xa1\x06\x4b\xe4\xe3\x35\xd9\x7a\xd1\xe3\xbb\x29\x66\xef\x1e\xf2\x80\xf2\xc3\x06\x7d\x5b\x13\xe2\xaa\x41\x74\x8c\x6d\x8e\xdb\xca\x19\x42\x83\x61\x7d\xca\xd5\x88\xb2\xd6\x42\xc1\x99\x55\x19\x63\x71\x25\x10\x98\xcf\xb5\x21\x80\x7e\x3c\x97\xfd\xb2\x07\x7d\x52\xe3\x61\x42\xf8\x1b\xb7\x11\xdc\x5f\x7e\xd2\x5f\x21\x0d\x47\xf4\xc4\x67\xc4\x77\xb0\xc0\xeb\xa8\xc4\x0b\x4c\xf4\x22\xd9\xac\xf6\x7e\xe1\x22\xdc\x09\x3a\x47\xa2\x98\x30\x0e\x8e\x23\x36\xf5\x3b\x71\x2a\xad\xd4\x04\xae\x76\x9d\x34\xd1\x41\x32\x72\xe4\x09\x72\x8e\x1f\x64\xc4\x77\xd3\x3c\xda\x9d\xe2\x91\x0e\x78\xa5\xb0\x53\x1d\x70\xa7\x18\x13\x3e\xe8\x1f\x32\xd5\x1d\x3e\x43\x22\xfe\x71\x3f\xea\x84\x84\xb9\x4e\x5b\x07\x8c\x97\xa7\x58\x2a\x7b\xbb\x47\x04\xb5\x3e\x25\x48\xf5\x4c\xbf\xe3\x73\xd2\x39\x28\x69\x8e\x12\x2c\xfd\x2e\x46\x9d\xd4\x31\xd3\xf8\x6e\x0d\x64\xd1\xb4\xdd\xa7\xe4\x76\x22\x76\xc7\x7c\x96\xcd\xb9\x28\xc1\x41\xfc\xa9\x20\x0e\x96\x42\xf2\x58\xd0\x51\x21\xba\x35\xa9\xe9\x92\x3c\x48\x61\xae\x63\xb2\x38\x19\xef\x3e\x0a\xa1\xb3\x3e\x7c\x9d\xf5\x2c\x7a\xa6\x65\xcc\xdd\x1b\x1b\x44\xa6\xb7\x4f\x45\x6d\xe2\x3a\x4c\xf6\xcd\xa6\x06\xa7\xcb\xcb\x21\x91\x45\x83\x30\xe0\xab\xd2\x0f\xca\x78\x12\xa9\x6d\x49\x5a\x3d\x15\xd5\x5a\xb4\x25\x51\x67\xb4\x90\xb2\xeb\xd3\x04\xc0\xf2\xd5\x2b\x9e\x34\x68\x7a\xc5\x05\xdb\xbf\xb4\xb5\xa5\x20\xea\xc8\xf3\xc6\x99\x3c\x63\xd5\xf4\x82\x0a\x21\xfc\x89\xeb\x9c\x0d\xc2\xf0\x31\x12\x73\x46\x57\x35\xab\xea\x7e\x8f\x92\xd4\xae\xa7\xdb\x95\x15\x25\x48\x22\x59\xd4\x1d\x1d\xc2\xdf\x74\x58\xa7\x3a\x67\xac\x9c\x0e\x56\xe1\x4f\x71\x9e\xbe\xe0\xae\x15\xbc\x88\xe4\xc7\x6e\xa6\x60\x90\x09\x38\x43\xb1\x92\x3d\x82\x49\xb9\x3c\x82\x3e\x23\x5d\x46\xe2\x9e\x2b\xb0\x2f\x66\x50\xcb\x8f\x99\x5d\x70\x99\x70\xf8\x8e\x04\x5f\x15\xd4\x1d\xa7\x59\xe4\x10\x8e\x9d\x00\x05\x3d\xa4\xea\x9b\x83\x66\x48\xb9\x6c\x6f\x1a\x08\x4a\x7d\xbf\x9a\x71\x01\x04\xc7\xf4\x80\x63\xf9\x5e\x3e\x51\xa3\x5d\x80\x89\x66\xb5\x02\x3c\xe4\x18\x09\x2c\x60\xee\xe4\x68\xa0\x4b\x16\xf7\x5e\x7d\x24\xc3\xa1\xa3\xfc\xdf\xe4\xf9\x6b\x4b\xa2\xb0\xc6\xa9\x91\x78\xb6\x74\xcb\xc8\xc5\xd4\x57\xd4\x11\xbd\x90\x17\x4b\x47\xb1\xec\x84\x84\x93\x52\xbe\x95\x9c\x2b\xc3\xdc\xa2\x64\x7c\x1a\xc9\x60\xc0\xa3\xeb\x11\x76\xac\x75\xea\xbe\xdd\x4f\xee\xc4\xa7\xd1\x29\x50\x70\x62\xd8\x8a\x2a\xaf\x46\xae\xf4\x88\x93\xe0\xcc\xc2\x42\xac\xb7\xd5\x19\x97\x78\x86\xb8\x24\x55\x5b\xb3\x6b\x92\xbc\xe2\x80\xb6\x1e\xa7\xd6\x4b\xc5\x52\x0e\x8f\x26\x69\x25\xb8\xa8\xe2\x09\x05\x3c\x8e\x79\x82\xe3\x60\x39\x92\x2f\x95\x98\x10\x1e\x91\x72\x09\xa6\x70\xc9\x7f\x4a\x70\x01\x67\x10\xb4\x96\xe1\x82\x0c\x4a\x59\x3e\x08\xfd\x55\x3a\xe0\xd5\xa5\x20\xaa\xf6\xfd\xf6\x69\xc2\xe6\x96\x82\x9c\xa9\xcd\x68\x16\x12\x71\xb6\x3a\xb5\xae\x6a\xa4\x8c\x74\x45\xe4\xf1\xe1\xb0\xae\xdd\x40\x29\x85\xd0\xb3\x7c\x78\xd9\xe4\xcc\x08\xe7\x02\x03\x85\xa3\x83\x98\x1f\x59\xe9\x2b\xde\x6f\x94\x9c\x0a\x41\xc9\x4e\x14\x59\x8e\x89\xb2\xb9\x91\xf5\xe7\x6c\x4a\x52\x0c\x8e\x99\x2c\xae\xf3\xb4\xcf\xfc\x15\xc2\x09\x33\x07\x8f\x67\x03\xde\x0b\xa2\x46\xa9\x59\x97\x07\x9d\x4e\x85\x54\x1c\x24\xdd\x0d\x9e\xf5\x63\x81\xa4\x90\x97\xbc\xd6\x67\x94\x53\xa1\x48\xd6\x94\xe7\xf0\x83\x3c\xd7\x9e\x79\x0f\xcc\x5b\xd9\xfc\xe0\xdc\xdb\x63\x70\x74\x45\x23\xa1\x14\x59\x59\xba\xe1\x20\xee\x89\xef\x12\xc8\x7d\xec\x91\x60\xb9\xc7\xc5\x57\x05\xe5\x3e\x07\xf1\xc7\x58\xd0\xf1\xa4\xea\x21\xa0\xdc\x67\xb5\xad\x1f\xf5\x41\x57\xb2\x07\x54\xe7\xca\xe2\xbd\xe2\x9f\x3b\xa4\x3e\x3f\xd5\xed\x66\x9c\xd3\x59\x16\x36\xb2\x16\x85\x97\x9b\x1a\x5c\xc8\x73\xac\x15\xff\x9c\xcb\xaa\x1c\xd7\x73\xf4\x3b\xa3\x56\x41\xe9\x35\x1f\x02\x17\x0b\xf4\x8b\xd2\x73\x9d\x51\xc7\x25\x7a\x19\x7d\x56\x0e\x9c\x28\x59\x90\x5c\x48\xc3\x83\x2a\xa2\x6f\xc1\x66\x31\x43\x8d\x26\x69\xe9\x02\x59\xc4\xe5\x6c\xd8\x42\x1d\xca\x43\xda\xe4\xb9\xab\x26\xe6\xbf\x62\x6f\x64\x8d\x1c\x38\x3a\xd5\xd3\x5d\xfd\x30\x6c\xbb\x76\xae\xc1\xf0\x6a\x7e\x8f\x34\xda\x95\x6e\x70\x8e\x74\xaa\xcb\x82\x05\x37\x91\x46\x42\x60\x6d\xe1\xbc\x5c\x6a\x94\x4a\x2e\xea\x75\xf3\x59\x1b\x51\x48\xfc\xb8\x9e\x27\xd8\x5a\x77\x1e\xc8\xfa\xd8\xdd\x89\xb0\x61\x98\xa5\xbc\x90\x5b\xb1\x52\x69\x6f\x72\x20\x3b\x7b\x01\x36\x9e\x29\x93\xc9\xa8\x24\x81\xed\x16\x34\xf3\x59\x4f\xf6\x51\xe6\x73\xed\xa3\xe3\xb9\x74\x34\x35\xbb\xba\x75\x84\x86\xc3\x79\xb4\x30\x9f\xad\xaf\x70\x2e\xe6\x8f\xcf\x88\xa7\xe6\x73\x20\x53\x44\xd5\x79\xd1\xa0\x0c\x09\xf4\x2b\x7c\x0b\x13\x3e\x16\x93\x02\xd7\x75\x1a\xed\xcc\x54\x15\xb9\x1f\x8a\xb2\x38\x17\x09\x81\x51\xf6\x56\xa7\x73\xb2\xc6\xa2\x4e\xea\xbe\x61\x3a\x1d\xba\x58\x7b\xfe\x53\x72\xd2\x45\x38\xf6\x0a\x91\xc5\xa1\xaa\xaf\x4d\x82\xd0\x65\x73\x31\x7a\x88\xce\x44\xe5\xb2\x1b\x56\x3c\x8a\xf4\xf9\xb7\x5f\x0d\x46\xe4\xa4\x21\x70\x88\x07\x48\x4a\x4c\xb6\xa9\xe0\xc9\x29\x25\xf6\xd4\xc8\x16\x1f\x23\xfc\x8a\xcb\x7f\x5c\x0b\x3e\x56\xb4\x82\x8d\x5d\x01\x80\x2e\xfb\x5d\x19\x42\x71\x38\x24\x0b\x0c\x95\xcb\xe9\xe2\x2c\xef\xb7\xa6\x63\x10\x62\x33\xc8\xda\xb9\x06\xf9\x50\xf4\x50\x51\xae\x61\x1d\xaf\x36\x32\xfc\x13\xa1\x87\x0a\x46\x45\x28\x19\x05\xf4\xc8\x4c\xa2\xa0\x5b\xe0\xa1\x07\x15\x2a\x31\xaa\x74\xa9\x43\xfa\x32\xae\x07\xd5\xf7\x96\x01\x8b\x79\x09\x54\xdc\x12\xed\x96\xce\x00\x83\x76\x78\xcf\x55\x75\x23\x6d\x5f\xcc\xb3\x44\x9b\x09\xba\x92\x6c\xc6\x85\x03\xf8\xa8\xc9\xb2\xc7\xa4\xc9\x8d\xe7\x53\xfb\x7f\xe6\xb1\x85\xfa\x22\x6b\xcc\xe3\x94\x15\xf9\x1c\x2b\xa4\x4d\x1d\x6d\x22\xd4\xe3\x1e\x09\xbb\x55\xd9\xbb\x69\xa4\xfa\x94\xba\x67\xc1\xb1\xbc\x7d\x5f\x96\xee\x72\x0b\x84\x38\x06\x9f\xa4\xa7\x80\x2d\x0f\xab\x48\x27\x5e\x73\x5b\xfe\x57\x8c\x6f\x10\x1c\x6d\x4d\xbe\x47\xd3\xca\xf7\x68\xb2\x00\x17\xdb\x9d\x59\xf9\x52\x0d\x36\xb6\x72\x70\xe1\xe0\x40\xae\x08\x62\x88\xad\x25\x9a\xa8\xeb\x9b\x02\x5e\xc2\xcc\xab\xef\x67\x07\x38\xb8\xb2\xd1\x73\x5b\x0c\xc1\x41\xee\x32\x64\xe6\x72\xed\xdc\x42\x3d\xbd\x18\x03\x1f\x41\x49\x06\xd9\x82\x89\xb2\x3d\x64\xa7\x63\x7a\xe8\x12\x93\x9e\x5c\x03\xe9\xcd\x95\x57\xe7\xf7\xd3\x05\xaf\x5e\x2e\xcf\xba\xc1\x82\xab\xc5\x8d\xe9\x10\x45\x56\x8f\x56\xd1\x7e\x5a\xad\xa2\xe8\x00\xd3\x98\xab\x18\xb9\xfa\x07\xc2\x81\xc7\xac\xcc\x30\x5d\x82\x4a\x94\xed\x75\x6e\x09\x26\x4a\xd0\x41\x08\x9c\x1c\xd3\xcd\x80\xee\xbc\x20\x4f\x7a\x40\xdd\x26\x28\x5b\xe7\x74\x6b\x16\x9f\x9a\xa6\x5c\xd1\x74\xf3\x05\x2e\xe3\xc4\xfd\x54\x01\x1a\x6e\x20\xdb\xce\xa2\x0b\xf4\x1d\xa1\x42\x04\x2e\x69\x0d\xbf\x51\x0b\xe3\x19\xb2\xe0\x05\xe5\xb2\xf2\x80\x6f\x44\x3f\x72\x03\x90\xfd\x3e\x8e\x71\x88\x07\xb8\x5d\x4c\x4c\x5d\x2b\xee\x78\x75\xdc\xf3\xe4\x75\x2d\x39\xd0\x46\x99\x2e\xe4\x8a\x34\x49\x4b\xf2\x8d\x60\xa5\xf6\xa2\xeb\x7b\x75\x1c\x7b\x75\xd4\x70\x7d\xaf\x5d\x9d\xc7\x3d\xcf\x8d\x8a\xdb\x6a\xfa\x2d\x7b\x32\x54\x22\xd5\x05\xdc\xf1\x22\xcd\x30\xd2\xc0\x39\xe5\x17\xec\x57\x2a\x08\x0f\x3c\x7f\xff\xe0\x00\xa9\xcc\xef\x1f\x54\x2a\x8a\x26\xdd\x22\x55\x60\x80\x70\xdf\x1b\x95\xd4\x03\x24\xd4\x81\x7e\xa5\xb7\x40\x17\xdd\x6c\xfd\x15\xd3\x6e\xa8\xba\x8f\x3b\x5e\x17\x35\x42\xaf\x87\xbb\x0b\x9d\x72\xd9\x15\x3f\xf1\xb8\xde\x0c\x5a\x5e\x36\xae\x4e\x07\xf7\x71\x88\x63\x84\x7b\x5e\x58\xe9\xc3\xfb\x81\x1c\xab\x17\x31\xc4\x88\xfa\xa7\xc7\x1d\x53\xac\xa8\x9b\x1d\x7f\x81\xec\xc0\xab\xcf\x0c\x3c\xb2\x50\x2f\x97\xc9\x81\x78\x31\x3b\x45\x89\x3d\x43\x1b\xe9\x2c\x6f\x7b\x64\x7f\xfb\x40\xbc\xbf\xad\x04\x55\xe8\x79\x9e\x1b\xa4\xc3\x05\xc5\xdb\xd6\x0c\x47\xb5\xd5\xe1\xd0\x0d\xbd\xa0\xb6\x5a\x1d\x60\x56\x2e\xcf\xd2\x72\xd9\xa5\x66\xc4\x10\xc2\xe1\x01\x8e\xfc\x4a\x65\x86\x84\x31\x91\x4f\xf4\x19\x5a\x62\xc4\x3f\x3d\xc3\x64\xb4\x87\x4a\xba\xa6\x52\x6c\x8a\x55\xe6\xc5\xe0\x02\x8d\xfc\x2c\x8d\x8a\x94\x1f\x63\x8b\x9f\x15\x69\x70\x81\xea\x79\x5e\x24\x54\xa0\x08\x15\x4c\x86\x08\x8b\xbd\xc1\xd4\x33\x9d\xc1\x6a\x57\x40\xcf\x2c\xa2\x53\xe9\xf2\x72\x4a\x79\xf5\x54\xe8\x2a\x81\xce\xcb\xe5\xad\x08\x1f\x3c\xf5\x96\x00\x46\xdb\x08\x0e\x7d\x56\x60\x04\x87\x61\x24\xdf\xa3\x38\xf6\x82\xfd\xfb\x15\x6d\x43\x2f\x9e\xf3\x85\x04\x88\x04\x63\xf8\x69\x7b\x19\x5d\x28\x44\x98\x56\xe7\x53\x97\x1a\xbe\xd6\xb1\xb3\x24\xf3\x11\x6e\x7b\x03\x43\x36\x55\xab\x8f\xdd\xd8\x6b\xd7\x56\x2b\x03\x60\x83\x05\xed\x1c\x6e\x7f\xbc\x20\xcf\xed\x45\x9e\xea\xfc\xac\x57\xad\xfa\x68\x3f\x8a\x3d\xb7\xed\xb9\xa3\x55\x67\xd8\xd3\x54\x66\x9e\x9e\x24\x82\xe2\x9e\xe7\xc5\x50\xf7\x01\x8f\xec\x17\x2c\x8a\xb7\x57\xa1\x0f\x6f\x81\xaa\xf3\x19\xd5\x8d\x53\x16\x04\x73\x7e\xc7\xef\xcb\xd0\x09\x7e\xbf\x1f\x06\xed\x11\xff\x51\xbb\x79\xba\x90\xf1\xe8\x0a\x41\xe7\xf4\x09\x30\xed\x93\xa8\xe1\x22\x6f\x41\x7a\xc6\x90\x39\x8e\x1d\xff\xd4\xd3\x35\x1d\xd5\xc7\x75\x0b\x8f\x0a\xb5\x86\x7d\xa2\x47\x4a\x27\x44\x77\x4a\xba\x3b\xea\xac\x2e\x80\x93\xc3\xd2\xf3\xa2\xfa\xe7\x65\x6c\x10\xbf\x14\xab\x67\xa3\x25\x4e\xa5\x89\x69\x9f\x44\xa4\xa3\x22\x4b\x74\x09\x6f\xf7\xee\x23\x16\xb2\xfe\x62\x34\xe4\x27\xc0\xa3\x1d\xd2\x98\xdc\x47\x3c\x64\xfd\xc5\x78\xc8\x4f\x0a\x8d\xf1\x6e\xe0\x15\xeb\x2c\x51\xca\x63\xce\xfc\xfe\x1c\xa3\x03\x9e\x8b\xb0\x8f\x75\x26\xfd\xc9\x66\xaf\xaa\x48\x23\xd5\x95\xe0\x9c\xd4\xff\x73\xf9\x06\xbc\x47\x22\x2e\xb2\x92\x4e\x61\xce\x30\x58\x9a\x6b\xd3\x88\xfb\x41\x44\x58\x55\xda\x0e\x14\xc5\x54\xbb\x5f\x46\x3c\x54\x46\x55\x13\x78\x35\x32\x53\x26\x35\x81\x31\x22\x2c\xf0\xea\xfb\x83\x34\x36\x41\x00\xeb\xbf\xef\x45\xcd\xa0\x35\x63\xd5\xe4\x54\x7c\xcb\x7e\x27\x49\xb4\xae\x26\x44\x6d\xba\xcf\xa1\xca\x95\x8c\xae\x43\x19\xfd\x44\xb5\x90\xd2\xd3\x83\x3e\x52\xaf\xfc\xe2\xc5\xb8\xc6\x88\x60\x69\x97\x4a\x95\xc6\xca\xf2\xb8\x2f\x76\x19\xab\x28\x6d\x75\xc9\x8f\x83\xb6\x83\x70\x30\x1c\xba\x81\xe7\xc3\x5c\x4c\x11\x91\xce\x84\x22\x2b\x36\x91\x40\x20\x40\xa8\x40\x8e\xa4\xcc\xa0\xf9\xa9\x88\x19\xd2\xb0\x1a\xe2\x67\x15\x72\xee\xe9\x63\x38\x47\x23\xd1\x70\x2a\x6c\x26\x0d\xe4\xe2\x46\xd6\x08\x62\xa2\x4d\x21\xdc\x48\xa3\xee\x60\x53\x4e\xfd\xb6\xf2\x28\x6a\x3a\x2a\x68\x64\x9a\x2a\x78\x94\xd1\x30\x24\x4c\x7d\x9a\x48\x34\xdd\xc8\x28\xc9\xfa\x8c\x9e\x09\x3a\xd2\xcd\x70\x10\x9d\x26\x9d\x6a\x10\x55\xa9\x98\x24\xfb\x0a\xb2\x2c\x53\xba\x1c\x92\x29\xbf\x57\x97\x88\x2f\x83\x9a\x4c\x95\xad\x7a\xa6\xa8\xc2\xae\xdf\x26\x4b\x94\x9e\xae\xb6\x69\x14\x91\x36\x9f\x94\x25\x87\x55\xf1\xc2\x33\x52\x9c\x9f\x0d\x38\x27\x4c\x95\x9e\x2f\x42\x36\xe0\xbd\xc1\xd2\xf8\x3e\xfb\x9f\x1f\x30\x52\xf5\x3b\xe3\x73\x08\x46\xeb\x93\x09\x5d\x20\x9d\x15\xda\xa1\x23\x19\xb2\xdc\x3c\x9a\xdc\xa7\xfd\x41\x7f\x34\x39\xe8\x32\x7f\x65\x4c\x18\x48\xa1\x32\xc3\x8e\x07\x77\x70\x0f\x77\x71\x1f\xaf\xdc\x1f\xa3\x37\x8b\xf7\x73\xbc\x8d\xbb\xf6\x4c\x48\x73\xa9\x59\x0b\x74\x69\x8c\x32\x24\x9f\xaa\x5c\x8e\x4b\xd9\xd6\x0b\x19\xd6\x8d\xb6\x5d\x56\xf2\x73\x30\x55\xf1\x51\x26\xa7\x5b\x2b\x07\x3d\xf5\xa7\x2a\xa6\x39\xde\xc1\xe1\x74\x9d\xcb\xf2\xff\x60\xaa\x42\x23\x93\xa2\x3d\x55\xb1\xfc\x4c\xe9\x4c\x55\x2a\x3f\x7d\x7a\x93\x4a\x69\xb1\x90\x5d\x5b\xe3\x49\x25\x80\x77\xf5\xbc\xc2\x2b\xd3\x64\xd6\x73\xb3\x6f\xad\xb9\x23\xd2\xb9\x4d\x57\xfa\x3e\x9f\x5b\x26\x5c\xe9\x21\xac\x6a\xde\xc0\xff\x2b\xcc\x53\x4b\x44\x59\x82\x28\x5c\x1c\x34\x1c\x12\xbd\xb2\x43\x5a\x63\xc5\x0f\x22\x67\xba\xae\x84\xc1\xd2\xbf\xaa\x17\xa7\x14\x0a\x47\x83\x36\xa3\x61\xb0\x24\xfa\xa1\x52\xc6\x20\xae\x2d\x29\xd5\x00\xaa\x51\xae\xca\x77\xab\x3d\x1a\x76\xf6\x24\x2a\xd7\x38\x9b\x4a\x19\x37\xf2\x49\x7f\x85\xc4\x8d\xa6\x33\x16\xbf\x56\xd6\x1c\x03\x3a\x16\x75\x83\xe5\x01\xbb\xbf\x1b\x2e\x65\xae\xbf\x96\x64\x03\xba\xc1\xf1\x58\x42\x6a\x06\x8d\xa5\x90\x14\x9b\x27\x68\xc3\x67\xba\xd2\x1f\x70\xd2\x71\x47\xed\xe9\xe4\x41\xb6\x67\xc1\xc3\xe1\xa4\xdd\x89\x7e\x6b\xe5\x87\x67\xfd\xd5\xb8\xd4\xf3\xcf\x90\x92\x2a\xe6\xa0\xc4\x85\x0b\x1f\xc7\x2c\xbe\x35\xa7\x92\x1a\x41\x45\x62\x82\xa3\x8a\x53\x73\x2a\x04\x3c\x39\xb9\x23\x1e\x58\xdc\x40\x1b\xaa\x9b\x57\x22\x54\x1e\x63\x18\x27\x56\x70\x82\xec\x00\x9e\x96\x53\xec\x45\x5e\x6b\xfb\x61\xa8\xa2\x70\x36\xf8\xcc\xa8\xbb\xc6\x73\x7d\xd2\xe6\xa4\x53\xca\x8c\x60\x49\x12\x5d\xd9\x82\xe8\x9d\x94\x1a\x25\x15\x90\x12\xba\x53\x92\xa1\xda\x4b\xa3\x7d\x02\x7f\x27\x25\x2a\x6d\x11\xd3\x81\x21\xd9\xb8\x81\x1e\xd1\x8e\x13\x0f\xd9\xad\x67\x1c\x9c\xaf\x15\x4c\x23\xb1\x67\xf2\xe3\x78\xaf\x9d\x93\xcb\x6b\x99\xe1\xb0\x4d\xa3\x98\x86\x44\xf9\x87\xcc\xc7\xef\x1e\xbf\xa9\xbb\x7f\x98\xf6\x7c\x1d\x58\x55\x93\xaf\xd8\x2e\xa7\x5c\x1e\xc9\xb9\x38\x92\xe2\x72\xd4\x80\x65\x86\xad\x4a\xaf\x99\x5c\x0e\x60\x41\xdc\x47\x75\xa0\x66\x57\x6f\xad\x72\x8b\x99\x5f\xe9\xc2\x25\xca\xd8\x2d\x64\x3e\x88\x86\x32\xbb\xbb\x09\x5d\xc9\xe4\x5b\xcc\xfd\x96\xdd\x10\xb9\x18\x89\x69\x78\x86\xe4\x3a\x5d\x90\x6a\x4a\x8c\xef\xc3\xa9\x53\x66\x48\x4f\x9d\x2a\x68\xaf\x66\x3e\x8f\x7c\x4c\x3b\xb6\x69\x8f\x4c\x57\xb6\x89\x51\x31\x2a\x1a\x87\x65\xc2\x9f\x3a\x1b\xe5\xa2\x77\xe6\x1d\x46\xc8\x1c\x8b\xd9\x9f\x2e\xc9\xd4\x3a\x86\xe5\x43\xea\x0b\x05\x3a\xe0\x81\x1f\x06\x9f\xdf\x93\xb5\xcc\xae\x53\x9b\xa2\x47\x4f\x50\xbf\xa3\x1d\xd1\xd6\x0e\xda\x8a\x57\xd6\x4a\xb7\x66\x61\xaa\xe2\x2b\x4d\xee\x96\x52\x96\xfe\x57\xf5\x4f\xa1\x7c\x64\xca\x7e\x4a\xff\xc9\xd5\x17\x06\x84\xad\x56\xf5\x5b\xbf\xbd\x52\x46\x72\xc7\xa7\xb6\x01\xad\x7c\x48\xf3\x49\xb2\xaa\x2f\x5e\x4e\x93\xd5\x38\xc1\x12\x55\x17\x19\x37\x56\xda\x4e\x7a\xc0\x42\xac\x2f\x2a\x4d\x31\xcc\xbc\xb5\x04\x47\x5e\x7d\x7f\x74\x00\xee\x27\xf7\x47\x70\x78\x15\x78\xbc\x19\xb5\x30\xf5\x2c\xaf\x81\x41\xc5\xf1\xdc\xe6\x73\xe5\x7f\x6b\x3d\x84\x1c\x54\x23\xe7\x48\xdb\x25\x68\x86\x96\xcb\x2e\x6b\x06\x2d\x8f\xca\xe0\x1d\xc6\x23\x55\x91\x3e\x24\xc9\x29\x94\xf2\x6a\xd0\x11\x5a\xfa\x7d\x66\x18\x7d\x14\xbd\x66\x5a\x6a\x10\x6f\x01\x36\x2e\x02\x8d\x86\x53\x21\xb8\x43\xcc\x77\x88\x48\x6d\x5e\x30\xca\xb3\x39\x55\x0b\x78\x3b\x9c\x7b\xce\xb5\x6b\x40\x6e\xed\x21\x34\x97\x5e\xa8\x2e\xf2\xe6\xbe\x56\x43\x94\x4b\x92\xc9\x27\xab\x82\x18\xdb\xe1\xaa\xe2\xf0\x48\xc3\xa1\x7c\xb1\x97\x35\xc1\xb5\x6d\x9e\xb4\x4d\xb6\x6c\xaa\xd6\xf6\x57\x88\xec\xb0\xb4\x75\xb2\x9d\x24\xe9\x47\xa9\x91\x0e\xcd\x2d\x3d\xe6\x72\xd7\xce\xc1\xd0\x68\x80\xee\x07\x9f\x89\x49\x09\x2a\xed\x94\xce\x10\x26\x7d\x36\x96\x68\xb7\x34\x60\x61\xa9\xef\x33\x7f\x25\xae\x95\xdc\xc7\x82\x8e\xf4\xda\xd1\x0d\xa2\x4e\xc9\x79\xb0\x12\x54\x1e\x74\x84\xde\x24\x47\x52\x5a\xd7\x76\x82\x8e\xf9\xca\x2a\x0f\x3a\xb5\x07\x15\x42\xf2\x52\x7f\xa4\xd9\xa3\x41\x1c\x07\xd1\x72\xda\x48\xc3\x94\x2b\xb9\x4f\x50\x7a\x5a\xa9\x66\x8d\xb4\x0d\xad\x9b\xa9\xa6\x6b\x0f\x1a\x86\x15\xf5\x2f\x92\xa8\x4d\x3b\xe4\x99\x63\x47\xcc\x2e\xc0\xa5\xa8\xa1\x54\xca\x9d\x18\x91\x6c\x3a\x9b\xe9\xd2\xe7\xd4\xfc\x04\x1d\x12\xc3\xc4\x95\x96\xc9\xf0\x00\xfb\x20\xc4\x7d\x57\xee\xc3\xd5\xb7\x5a\x1c\xca\x77\x5c\xa8\x36\x88\x82\x17\xe0\xe5\x81\x7a\x9e\xe1\x87\xcf\x14\x57\x01\x9f\xd5\xb7\xc5\x82\x34\xa8\xb6\xd1\x6c\x6d\x52\x73\xc1\x73\x0f\x92\x06\xa9\x37\x7d\xb0\x3c\x19\x2e\x54\xe7\x47\x5d\xa4\x1f\x03\xa7\xe8\x7d\x30\xc6\x8e\x4b\x6d\x3f\x12\xec\xe2\x87\xb1\xbe\xc6\x51\x4d\x37\x4a\x0f\x4a\x25\xfc\x41\xc7\x7a\x32\xc2\xa9\x62\x6e\x57\x71\x7c\x2a\xfb\x54\xf3\x70\x47\x3e\x82\x3e\x5c\x41\xd2\xa5\xcf\x99\xb9\x70\xd0\x6d\xb6\xcc\x9c\x26\xc5\x1d\x54\x62\x81\x29\x33\x06\xaa\xdc\xff\xa9\xd8\x80\x62\xae\x47\xe3\x0b\x8d\x51\x45\x95\x4d\xeb\x6c\x1d\x25\xaa\x4a\xee\x46\xa8\x5c\x4e\x2b\x8e\x54\xc5\xb4\xb6\xe2\xf7\xb3\x95\x1a\x3c\x95\xb3\x73\x4f\x5e\xec\xe8\x1f\x65\x79\x54\x50\x2c\x7d\x98\x1f\x75\xe8\x4a\x75\xc0\xc2\x6a\xec\x77\xf7\xfa\xc0\x23\x35\x55\x72\x0e\x3e\x7a\xe8\xb1\xc3\x8f\x7f\xec\xe3\x47\x3e\xf1\xc9\x27\x8e\x3e\xf9\xd4\xd3\xff\x75\xec\xf8\x89\x67\x3e\xf5\xec\xa7\x3f\xf3\x59\x7f\xa9\xdd\x21\xdd\xe5\x5e\xf0\xb9\xd3\xe1\x4a\x44\xfb\x2f\xb0\x98\x0f\xce\x9c\x3d\xb7\xfa\xf9\xfa\xfc\xbe\x87\x3f\xfc\x91\x47\xfe\xfd\xa3\xff\xe1\x60\xe6\x39\x8e\x5e\xcb\x88\x5c\xc4\x58\xc5\xe3\xb5\x76\xcf\x67\x07\xb9\x7d\x33\x2c\x41\xd5\x6b\x17\x3d\x04\xcb\x9e\x65\x23\x37\x46\x05\x80\x09\x57\x05\x31\xb2\x97\xa4\xda\x7c\x93\x4e\x0a\x76\xe0\x8f\x89\x26\x03\x75\xa5\xd4\x4d\xc5\x9f\xda\xbb\x2e\xad\x96\xfc\x52\x3c\x58\x92\x47\x1b\x76\x40\x82\x9a\x33\x41\x11\x8a\xb9\xcf\x49\x75\xc5\x6f\xf7\x82\xe8\xbe\x31\x8b\x5e\x6d\x95\xdf\xcf\xd4\x8a\x41\x0a\x23\xcc\x6c\xef\x14\x33\x59\x5f\x1a\xb0\x4a\x6b\x45\x54\x86\xc2\x9f\x01\x21\x24\x51\x8f\x3d\xa2\x01\x3c\x6b\xa5\x8e\x4a\x22\x59\xf6\xa8\xea\x67\x29\x22\xa4\x13\x97\x54\x56\xe5\x3a\x30\x2d\xeb\x59\xd5\x34\x79\xcb\xae\xb6\x20\xfc\x8e\x5e\xab\x34\x82\xaa\x4a\x78\x1e\xd8\x1e\x30\x46\x22\x2e\x5b\x7e\xd2\x5f\x21\xc6\x8a\x3d\x1e\x2c\x19\xc7\x36\xb1\xb7\xa6\x1d\xa5\xaa\x6b\x04\x8f\xe8\x30\x35\x27\x98\x1f\x29\xdb\x80\x78\x38\x6c\xb6\xb0\xef\x11\x15\xa6\x26\xf7\x41\x5e\x5a\x2a\x2b\x3a\x6a\x2e\x2c\x17\x22\x35\x65\x3c\x2a\x54\x3e\xd9\x6a\xbe\xd6\xf4\xb4\x04\x33\xcc\x6a\xdd\x08\x59\x35\xf9\xa3\x35\xf9\xa6\xa6\x1c\x16\xa3\x15\x25\xfa\x12\xb4\x76\xfc\xe9\x27\x0e\x9e\xf0\x9c\x87\x9c\x99\xa8\xc6\x4d\x81\x13\xb4\x68\x53\x96\x3f\x9e\xb2\xf3\x2b\xc3\x5e\xdb\x68\x73\x4d\x0d\x50\x63\x2d\xb3\x46\xe8\xd3\xa1\x03\x99\xc1\xb6\x87\xa1\xf1\xa0\x3e\xc1\xc9\x8f\x4d\xc5\x79\xb0\xb4\xe0\x24\x38\xd7\xaa\xb4\x16\xae\x49\x8f\x30\x20\x7a\xea\x28\x63\x25\x98\xaf\xc8\x8a\x68\xa1\x57\xdb\x3a\xae\xce\xa3\x19\xe2\xd5\x8d\x4e\xbe\x68\x85\xb0\xa8\x90\x06\xa9\x09\x86\x50\x7d\x98\x57\xc4\x63\x19\x2e\x24\x2d\x58\xe8\xf2\xad\x29\x97\xde\xa3\x7c\xf9\x4c\x74\x3a\xa2\x67\xa3\x92\xea\x74\xe9\x79\x29\x22\x9e\x07\xc6\x3c\x1b\x84\x61\x3a\x7e\xca\x4c\xc9\x9a\x00\x5a\x51\x19\x61\x5f\x6d\xfe\xd3\x09\x3a\xb9\xc2\x09\xce\x33\x97\x6d\xd8\x9b\x92\x54\xbd\xf6\x4d\x73\x39\xfa\x95\x71\x8e\xa1\xc6\x15\xce\x34\x0c\x65\xed\x1c\x19\x2b\x36\xeb\x42\xce\x53\xcf\x04\x87\xc3\x00\x77\x3c\x5e\xe3\x74\x38\x0c\x66\xea\x9e\xe7\x75\x8c\xfe\xe2\xcc\x3a\x68\xd1\x8d\xbc\x8e\x1e\x0b\x77\x1e\xe1\xd0\x9b\xad\xa3\x86\x48\x14\xe0\x3c\xc2\xd2\xf2\x30\x57\x84\x7a\x6d\xab\xc8\x40\x15\xa1\x5e\x5b\x80\xf3\x48\xba\xe7\x87\x02\x01\x92\x7e\x55\xad\x9f\xb1\x34\x77\x75\xa9\x47\x2d\x16\x88\x71\x1d\x21\xec\xab\x4f\x91\x17\x59\x9f\x7c\xf9\x49\x69\x36\xa2\xbb\xee\xa8\x95\x7e\xe0\x71\xdc\xf6\xc8\x8c\xae\xba\xed\x91\x71\x55\x07\x1e\x1f\xa9\x3a\xf0\x3c\x2f\x52\xd1\x02\xda\x9e\xe7\xd1\x59\xcf\x1b\x94\xcb\xcc\x9a\xe2\x92\xea\x48\x3f\xac\x2d\x1e\xb3\x88\xf2\xa0\xbb\x3a\x6e\xb0\xb3\xec\x53\x50\xac\x78\x98\xf5\x57\x3d\xc4\xc6\xd6\xcc\x2b\x90\xa8\x4d\xd2\x92\x12\x53\x99\x15\xa7\x56\x1c\x07\xa8\xb4\xe4\x88\x9a\x41\xcb\xea\x90\x3a\x8d\xa3\x39\x5b\xf4\x6c\x75\x93\x5a\x29\xfe\xa4\x34\x3c\x81\xb9\x7a\xaa\x9e\x7d\x43\x31\x9a\x1d\x98\x82\xa3\x19\xbe\xc8\xe0\x61\xf3\x48\x36\x21\x5c\xda\xc4\x65\x78\x1e\x35\xc6\xa0\x2a\xb7\xa9\xf2\x4d\x3c\xac\xa0\xb6\x30\xd1\xb2\x44\xf5\xdf\x3c\xd3\xc5\xf3\x72\x11\x64\xb0\x45\x66\xf2\xec\x6d\x55\x11\x28\xd2\x52\x63\x10\xf5\xe4\xcb\xff\x8e\xf4\x02\xe0\xca\x67\xf3\x6c\xf5\xf8\x6e\x36\x94\x48\x27\x97\x3c\xc3\xcd\xa9\x1c\xc4\xd4\x5b\xb3\x66\x3b\x88\xe1\x42\x23\x56\xb5\xbf\x1c\x15\x8c\xda\x55\x64\xc9\xe2\x30\x8d\xd1\x5a\xb1\x0a\xef\x32\x8f\x60\xa1\xa1\xa5\xe6\xfe\x9e\xd2\x64\x16\x59\x83\x2d\x36\x59\x4b\x6e\xa6\x18\xe9\x0c\xda\xb6\x79\x97\xfd\x8a\x99\x34\x59\xcb\xe3\x98\x24\x08\xaf\x69\x6d\x88\x25\xea\x18\x18\x8c\x57\xb9\xdd\xc2\xac\xa7\x75\xa2\x51\xfc\x63\xba\x42\x78\x4f\xa8\x1c\x67\x49\xc4\x95\x37\x3c\x07\xcd\x44\x1e\x4f\xed\x7e\xdd\x3a\x36\x04\x6f\xd6\x5b\xd6\x8f\x79\xb1\x01\x72\x79\xd1\x63\x7e\x06\xd1\x49\x78\x93\xb5\xf6\x17\x58\x38\xc0\x77\x19\x11\x57\x7a\x97\x67\xe5\x72\x54\x2e\x53\x04\xb6\x51\x86\xb8\xe9\x20\x29\x85\xa8\x51\x72\x2a\x2e\x15\xfb\x9e\xfc\x9a\x82\x2a\x4e\x49\x88\x66\x91\x83\xc9\x0b\x18\x01\x45\x23\x97\x37\x3e\x4a\x44\xbb\x4d\xde\xf2\x82\x44\x5a\x99\x63\x86\x29\xce\x6a\x15\x2e\x45\x4a\xd3\x9d\xd1\x6c\x47\xe5\x0b\xec\x1c\xd7\x6a\xae\x31\x4b\xa4\x4c\x37\x4b\xa4\x3a\x59\xd0\x4a\x42\xaa\x59\x8c\x20\xc4\x85\x42\x32\x26\xda\x6c\xaa\x5d\x0f\x06\x41\xa7\xba\x4c\x22\xe5\x6b\xfe\x7e\x1f\x89\xe9\x86\x88\xd9\x2c\x9b\x68\x6d\xa8\xb6\x4c\xf8\x89\x60\x85\x18\xcb\x65\xe7\x9c\xfe\x57\x95\xff\x7d\x58\xfc\xb7\x0a\x3f\xe1\x9f\x63\xfc\x0c\xcf\x35\xcf\xad\xb6\xe6\x96\xb3\xc7\xae\x6a\xca\xbb\xa4\x32\xff\xc8\x43\x99\x5d\x18\xfa\xd0\xfc\x23\xc3\xba\xd9\x6a\x7b\x19\x3b\xde\xf9\x47\x10\x76\x9d\x73\x42\xa7\xe2\x8b\xac\xf1\x70\x99\x0d\x3f\x8a\x52\x52\xcf\x3f\xa2\xc7\x70\xf2\x39\x5b\xee\xf8\x3d\x2e\xb2\xc0\x2a\x3e\xa7\x9f\xee\xb4\x5b\xe7\xb2\x9b\xb0\x7e\x54\xb3\x86\x43\x13\x73\x55\x05\x2b\x2e\xf9\xed\xd3\x53\x66\x37\x56\x78\x26\xf7\x28\x7e\xf1\x9c\x74\xcc\xa2\x4c\x02\xe2\x4d\xb2\x9e\xf5\xc3\xd3\xc6\xa6\xa3\xd0\xe2\x12\xcc\x97\xee\xcb\x46\x37\xeb\x64\xcc\x32\xdc\xc9\x7e\x88\xc6\x7d\xa0\x99\x0f\x96\xaf\xb4\x78\xdc\x07\x7f\x92\x6d\x88\x34\x49\x8d\xe7\x06\xc6\xa2\x04\x8c\x54\x8b\xf9\x27\x3f\x83\x37\x3b\xf4\xde\xe4\x8e\xa1\xe0\x56\xb7\xd0\xac\x60\xcc\x20\xed\x7c\x80\x9e\x3d\x78\xec\xc9\x23\x4f\x7e\xec\xd4\x27\x0f\x7f\xc6\x23\xb5\x43\xcf\x1c\x3b\x76\xf8\xc9\x13\xa7\x8e\x1d\xfe\xaf\x67\x0e\x1f\x3f\x21\x53\x75\xe4\x0c\xe5\x94\xc5\x1f\x93\xc9\x39\x75\x4a\xa2\x7d\x8a\x91\x17\x06\x24\xe6\x0e\x16\x1b\x71\xbb\x72\x2b\x47\x27\x60\xa4\xcd\x4f\x9d\xf5\x59\x24\x88\xa0\x23\x55\xa9\x93\x8f\xa3\x82\xf8\xf0\xf6\x6e\x4a\x6f\x22\x8c\xac\x50\x4e\x8e\x74\x3e\x06\xc3\xe2\x15\x27\x0f\x87\x86\x8d\x12\x2c\x4d\x6b\x05\x29\x43\xe5\xf3\x10\x5e\x26\x89\x1d\x41\x5a\xda\x0e\xac\x34\xd1\x7a\xbb\x87\xbb\x68\xad\x53\x2e\xb7\x6b\xd2\xee\x5a\xdb\x32\xf4\xbd\xf6\x28\x1a\xb5\x54\x2e\xcf\x0c\x46\x9e\x59\x05\x9e\xe1\xdc\x5a\xe6\xd6\xa2\x76\x9a\xac\xaa\x50\xa6\x9e\xe7\x99\xd5\xb7\xf0\x94\xd1\xcc\x1d\x43\xc8\x01\x0b\x1b\x04\x9f\x26\xab\x71\x83\x27\xa8\xa6\xef\x90\x12\x97\xd4\x22\x72\x56\x3a\xc8\xc1\x1c\xcd\x84\xb4\xed\x87\xc7\x39\x65\xfe\x32\x91\x78\x9f\x21\x47\x38\x59\xd1\x6d\x63\xe3\xd1\x29\x63\x3b\xd2\x13\xcb\x2a\x02\x53\xe7\x15\x0b\xfd\x14\xf9\x7e\xae\xee\x98\x70\x59\xb1\x8f\x57\x10\x1e\xd7\x6a\x8c\x70\xbb\x26\x86\xe9\x98\xa4\xa0\x4b\xf0\x0a\x0e\x45\x1a\xf8\xb9\x7a\x9a\xfe\xff\xd9\x7b\xdb\xdd\x46\x92\x65\x41\xec\xbf\x9e\x82\xaa\x33\x97\x5d\x29\x26\xc9\x2a\x7e\x49\x2a\x29\xc5\xab\xee\x56\xcf\xf4\x99\x6e\x69\xa6\xa5\x9e\x39\x33\x14\x47\x53\x22\x93\x62\x4e\x17\xab\x38\x59\x49\xb5\x34\x12\x17\xe7\xc2\xd8\x85\xe1\x5f\x36\xbc\x86\x01\x03\xde\x5d\xff\x5a\x18\x36\xbc\x6b\xc0\x5f\x0b\x03\xbb\xc0\xfa\x49\x7c\xef\x03\xec\x2b\x18\xf9\x55\x95\x55\xac\xa2\xd4\x3d\x3d\xe7\x9e\x73\xaf\x1b\x33\x54\x55\x56\xe4\x57\x64\x64\x64\x64\x64\x44\x64\x10\xc8\xd5\x98\xd7\x7c\x8d\xde\x93\x70\x1c\xbd\x6f\x44\xa1\xdc\x7d\x2e\x42\xce\xcf\x39\xc6\x0a\x3f\x98\x3c\xa9\xc0\x7e\xe4\xba\x5a\xbd\xb6\x79\x6d\x6a\x3c\x97\x70\x53\x8f\xe5\xfd\xbd\x7e\x92\x1f\x75\x20\xd0\x4a\x59\x4f\x7c\x00\xc5\x2c\x9a\xd8\x86\xe4\x26\x4b\xa8\x8c\x84\x11\x4d\x18\x31\xe1\xbf\x50\x89\x68\xe5\xbd\x1f\x27\xc6\xfb\x60\x23\xa9\x6a\x12\x8d\x16\xb1\x68\x91\x88\x93\x35\x26\xe3\x67\x1c\x28\x1b\x6b\x8c\x4c\xec\x4c\x23\xae\x14\xa2\x63\x00\xee\xca\xf1\xbc\x21\x83\x7e\xda\x0e\x8c\x56\x2c\x52\x80\xf0\xec\x36\x0c\x2c\x6d\x6b\x20\x7c\x12\x86\x95\xb7\x42\xd5\xe5\x87\x95\x93\xc3\x05\x9b\x56\xf4\xc4\xae\xb0\xa9\xcf\x2a\x1c\xc5\x71\xe5\x36\x5a\x50\x39\x71\x2a\x87\xf3\x79\x85\xc4\x95\x31\x9e\x53\x2c\x7c\x02\x44\xcc\x15\xbe\x27\xac\x5c\xe2\xf3\xb0\x92\xf9\x27\x9b\x27\x02\xbe\xfb\x95\xc9\x42\x5c\x62\x43\x71\x80\xfd\x18\xc3\x8a\x1f\x57\xc6\x11\xaf\x3a\x8e\x78\x89\x7e\x65\x1e\x31\x1c\x4a\x7d\x1b\x1e\x2d\x28\x61\xb7\x95\xeb\x45\xc0\x27\x99\x8c\xde\xd5\xc8\x17\xff\x05\x19\xcb\x70\x3b\x15\x15\x06\xb0\x72\x79\x5b\x89\x31\x63\xbc\xd4\x1f\x45\x04\xda\xb7\x61\xec\x4f\xf0\x1b\xd5\x27\xaf\xc2\xe8\x02\xff\xc8\xdb\x23\xba\x24\xbd\x32\x32\x3c\x3a\x53\x89\x05\x71\xa3\xa0\x18\xa9\xcc\xc1\xa8\x70\x8c\x7c\x11\x65\xcb\x2e\x9d\x84\xe5\x33\xc5\x07\x9c\x2c\x18\x99\xe1\x68\xc1\x8c\xc0\x6b\x81\xcf\x30\xb5\x47\x19\x0a\x29\xa2\xc1\x94\xe2\x60\xc5\x5f\xb0\x69\x44\xc9\x2f\xd2\x18\x8a\x7f\x19\xe3\x90\xf0\x2f\x11\xe5\x63\x6d\xb8\x75\x70\x00\x8d\x3f\x11\xdf\xfd\x3d\x89\xb1\x20\x65\x8a\x47\x98\xf0\xf1\x53\xc1\xe2\x45\xa0\x6e\x31\x09\x55\x3d\x0d\x8b\x8b\xe6\xd0\x75\x1c\x71\x6c\xa1\x26\xa8\x3f\x96\x52\xf9\x2b\x12\x33\xce\x23\x6d\x2b\x96\x9d\xb5\xe0\x42\x1c\x77\xa8\x0b\x92\x32\xfc\x27\x99\xa1\xba\x14\x89\x98\xb5\x05\x2d\xa1\xca\x73\x67\xf0\x7a\xed\xf7\x26\x3e\x29\x9e\x93\x59\x61\x90\xbc\x29\x57\x2a\x23\xc9\xd5\x15\x2f\x37\x99\x86\x5a\x0f\x33\x0a\xb0\x1f\xbe\x9d\xdb\xa2\x0e\xf5\x78\x97\x7c\xa1\x67\x72\x90\xf8\xe7\x15\x36\x26\xc1\xe6\xf2\x75\x65\x18\x59\x61\x10\x3c\x0e\x9d\x6d\xeb\x4a\xb1\x4b\x00\xdb\x5d\xd5\x9c\xb4\x7e\x23\x1a\xe0\x88\xcb\x88\x52\xfb\xa1\x89\x48\x95\xa5\x49\x4a\xe9\x10\x58\x34\x57\xa5\xea\xd8\x87\x61\x19\x23\x2a\x2e\x5d\xf5\x6d\xc5\x27\x29\x58\x95\xcb\x52\xa3\xfd\xfa\x9c\x92\x6b\x9f\xe1\xe6\x6f\x6d\x4c\x16\x5d\x63\x4a\xc9\x18\xbf\x8a\xfc\xf1\xa9\xd0\xa1\x14\x99\xec\x51\x1c\x63\x56\x04\xc2\x21\x36\x5d\x69\xef\x54\x58\x00\xdf\xd6\x27\x1e\xcd\x36\x96\x6c\x97\xa2\x71\x34\x12\xe2\x8c\x5a\xac\x75\x54\x3a\x4b\xaa\x71\x2c\x00\xc3\x14\xe4\x0a\xeb\x00\x9e\xf1\xd3\xdb\x33\x19\x08\x34\x85\x1c\x38\xc3\x0d\xda\x88\xe9\x08\x61\x18\xf2\x45\x1e\x87\xec\x38\x1a\xe3\x06\x11\xa1\x3f\xd5\x05\xeb\xc2\x85\x45\x19\x94\x6e\xba\x66\xfc\xdb\x07\x3d\x2e\xd6\x79\xb5\x28\xa3\xfc\x51\x34\xc6\x8f\x15\x62\x3f\xc5\x3e\x37\x4c\xa3\x2d\x24\xa7\xee\xa1\x08\x8f\xba\xd2\xfa\x4b\x3f\xc6\x6f\x69\xe0\xad\x31\x84\x55\x9b\xe1\x29\x63\xf3\xd8\x6b\x36\x83\xe8\x8a\x84\x0d\xc9\x57\xe2\x46\x88\x59\xd3\x34\xf8\x64\x38\x0c\x7d\x19\xc9\xaf\x66\xa9\xfe\x37\x35\xff\xc4\x16\xa7\xe9\x04\xc4\x13\x5b\x12\xd3\x48\x17\x98\x05\x40\x6b\x14\xcd\x66\x22\x38\x98\x3e\xa6\x4b\xce\xae\xbd\x81\xe5\xcf\x49\x5d\xd9\x5b\x70\xd0\x80\xe0\x90\x5d\x90\xb1\x35\x84\x2b\x27\xdd\xde\xc0\x8a\x47\x91\xb8\x30\x36\x8c\x64\x10\x6a\x8a\xe3\x79\x14\xc6\xf8\x62\xc6\xc7\x66\x08\xf5\xfb\xeb\x68\x8c\x0b\xdb\x65\x02\xc8\xfb\xc1\x41\x92\x49\xd5\xf2\x20\x0e\x07\x29\x9e\x74\xd6\xb3\xdb\x39\xb6\x00\xb4\xe4\xa1\xd8\x90\xe3\xc7\x9f\x93\x6f\x64\xbf\x3c\xcb\x6d\x38\x16\x34\x61\xd7\xb6\xed\x4c\x5e\x8a\x2b\xc8\x8d\xb7\x4e\x2e\xb0\x6f\x29\x29\xc9\x95\x7c\xcf\xf2\xa9\x4c\x80\x01\xb9\xc3\x58\xe1\x4e\x05\xca\x9c\x94\xec\x39\x51\x95\x6d\x16\x0b\x8e\x94\xd7\x59\xc9\x3e\x76\xe7\xf7\x29\xa6\x0d\x29\xb6\x57\x11\x33\x27\xbb\xdf\x06\xf2\x26\x25\xc1\x6a\xe2\xb9\x3f\xc2\xf9\xb1\x97\x86\xcf\x05\x58\x5d\x6b\xfb\xcd\x71\x2a\xad\xab\xf2\xc5\x25\x06\xd3\x63\xb9\xb0\xa9\x10\x93\xc7\x2b\xb5\x28\xa5\x16\x1f\x6e\x6d\xac\x09\xa4\xb9\xb7\xb6\x84\x53\xa1\x39\xcb\xcb\x03\xf7\xf7\xe9\x66\x89\xe6\x3f\xdf\xdf\x5b\xd2\xbd\x24\xb5\x12\xd1\x7e\x1a\x59\x27\x14\x11\x29\x10\x68\x4c\x15\x56\xe5\x09\x07\xcc\x15\xb2\x5c\xe9\xa0\x8c\x80\x69\x92\x1f\x59\x47\x7e\x79\x97\x9c\x47\x70\xe8\x9c\xb7\xe0\x6f\xcb\xa3\xcd\x90\x8d\x25\x7c\x3a\xdf\x05\xcd\xa6\x13\x2e\xec\xcf\x49\x43\x02\x71\x2a\x91\xdd\x30\xf8\x6c\x9e\x35\x0d\x2c\x7f\x34\xc2\x71\x7c\xc1\xa2\x77\x38\x14\xfc\xee\xf1\xcc\x01\x40\xc1\x3d\x0b\xe1\x34\x5f\x55\xde\xb6\x45\x16\x37\xeb\x1c\x2a\xd7\x0d\x8d\xe4\x22\x0f\x8a\x3e\x1f\xc9\x21\xc4\x84\xcf\xb8\x1f\x03\x79\xc7\xa8\x8e\x83\xa3\x34\xc6\x4a\x80\x9e\x5c\x1e\xc6\xb7\xe1\xe8\x65\x48\x98\xb8\xa7\x59\x6c\x3b\x12\x55\x88\x0a\x56\xaa\x93\x21\x41\x0f\x2a\x47\xe4\x35\xaf\xaa\xf4\x17\x4f\x53\x19\x08\x6c\xac\x56\x69\x0a\x54\x2f\x9e\x0a\x53\x0f\xbe\xf7\x49\x95\x0f\x52\x0a\x07\x4b\xa9\xe5\x4b\x65\x2d\x60\x5b\xcd\xa6\xc2\x76\x43\xa3\x5f\x2d\xda\x61\xcd\x6a\xc6\xe3\x77\x8d\x9f\x62\x69\x37\xc5\xf7\x30\x99\x45\xab\xa0\x1d\x0c\xae\x26\x56\xab\xf6\x6a\xa2\xf0\x24\x58\x88\xdb\x66\x57\x3f\xda\xf2\x0c\x22\x41\xbe\x9f\x1e\x39\xdc\x2d\x62\x4c\x5f\x8e\x3d\xdc\x10\x0f\xcf\xa1\xa4\xdb\x33\x4e\xb6\x1e\x6e\x18\x6f\x10\xdf\xcc\x09\xc5\xf1\x4b\x9e\x9e\x3c\x2f\x53\xb6\x74\x45\xfd\x90\xe1\xf1\x29\xa7\xd0\x58\x44\x23\xca\xa4\xa0\x1c\x04\x80\xec\x83\x4d\x1d\xd5\x2d\x31\x65\xb3\x78\x95\xde\x93\x89\xb4\xc2\xf6\xf4\x44\x92\x97\xc7\xf3\xd5\x9b\x77\x43\x36\xad\x84\x4f\xa6\x00\x16\xdc\x74\xb9\xe0\x30\x97\x42\xd5\x0a\xac\xf8\x62\x01\xa8\xe4\xa5\x42\x98\x54\x96\xba\x6e\x35\x5a\x16\x80\x37\x93\xcb\x59\x50\x08\x2a\xbe\xc8\x3a\x47\x53\x3f\x0c\x31\x17\xb5\x0a\x21\xd3\xcf\x5a\x66\x92\x33\xa4\x10\x58\x7e\xe2\x38\x08\x2f\xde\x9e\x5a\x00\x3e\xa8\xea\x8c\x94\x4d\x92\xd4\x52\xc4\x22\x56\xb8\x54\x62\x82\xbb\xc4\x3f\x8a\x6f\x62\x31\xba\x5b\x66\xe2\x6e\x89\x55\x50\xe2\x1c\x40\x8a\x70\x83\xf3\x4e\x2e\x3f\x69\x2b\x12\x25\xa5\x19\x38\x4e\xac\xe5\x56\x6b\x5d\x9d\x3b\x05\xb7\x30\x1b\x87\x9d\x0f\x72\x07\x71\x96\xf8\xe2\x69\x43\x08\xdb\x59\x8b\x37\xd9\xd4\x37\x8a\xbf\xf7\x73\x3c\x20\x84\xd9\xef\xc0\xcb\x01\x10\x28\x8d\xc1\x16\x31\xdf\x04\xdf\x49\x82\xc4\x8a\xdc\x2e\x62\x49\x6f\x0c\xf2\x32\x2e\xc4\x45\x11\x54\xf0\xf4\xa5\xcd\x60\x08\x69\xca\x28\x7c\x19\xf9\x5e\x61\x40\x5f\x2d\x21\x4b\xf6\x36\x1d\x38\x8a\xa2\x77\x84\xcf\x12\x45\x47\x29\x52\x25\xf5\xa4\xc4\x98\x7e\xd1\x24\xa8\x49\x39\xfd\xa2\x09\xd8\x20\x37\x43\x98\x49\x89\x2c\xa1\xaf\xf4\xab\xa2\x2a\xb0\x5c\x66\x24\x88\xf8\x51\x0b\x55\xf9\x26\x2f\xe7\xe2\xb8\x76\xeb\xf7\x1b\x0a\x10\xf4\x21\xd6\x93\xdf\xe8\x25\x12\xc4\xfb\xf7\xef\xd3\x15\x81\xcb\x10\x63\xe2\x07\xd1\x95\x6c\xb8\x55\xb8\xe5\x1a\x93\x78\x1e\xf8\xb7\xc6\x76\x29\xf9\xa4\xb6\xb8\x6a\x1b\x93\xf2\x39\xf6\x10\x9f\x53\x65\x7a\x4a\xaa\xcc\x0b\x26\x2b\xf9\x3f\x74\xd7\x22\xf9\x41\xf1\xe7\xfc\xb4\x95\x22\x80\x9c\x40\x89\xbe\xef\x59\x34\xc6\xd5\xaa\xd5\x72\x1c\x69\xe2\xb6\xf2\xb1\xc0\xb2\x2c\xc6\xb4\x22\x75\x3c\x78\x9c\xd5\x1e\xa6\x5c\x04\x4b\x83\xd3\x75\x64\x98\xf3\x7e\xff\x8b\xd2\x34\xe4\xda\xbe\x42\x7e\xf2\xbb\x20\x3c\xc1\xe4\x1e\x21\xc2\xe6\x68\xec\xef\x6f\x7f\x5b\x1a\x72\xe1\x2f\x6b\x84\xca\x7a\xb1\xba\xd9\x18\x8d\xa2\x45\xc8\xe2\x86\xcc\x22\x77\x1c\x5a\xb9\x73\x2d\xf5\x3b\x16\x14\x5b\x8b\x6f\x92\x7b\x8e\x56\x98\x8d\xcc\xec\xcf\x45\x54\xf0\x99\x91\x5d\x64\x24\xe1\x24\xb2\xd6\xaa\x6e\xd4\x31\xea\x85\x0a\xec\x76\xe1\x0b\x4c\xc5\x26\xb7\x29\xd9\x9e\x48\x05\x12\x8e\x99\x8a\xec\x27\xaf\x39\x89\x4b\xa8\xa6\x00\xd2\x82\x96\x05\xb2\x7a\x18\x4b\xee\xa4\x1e\xd8\x68\x41\x09\x26\x56\x52\xce\xf4\xa4\x98\x7a\x41\x3e\x7c\x0b\x96\x88\x35\x39\x19\x46\x6a\x0e\xa0\x3a\xdf\xbd\x5c\x90\x80\xb3\x6c\x1b\xe4\xe4\x18\xb3\x28\x82\x56\xf5\x50\xb2\xf9\x56\x12\x87\x4e\x2a\xf3\x56\x46\x94\x2f\xcd\xc8\x5c\x96\xc9\x97\xf8\xd6\xca\x86\xd5\x14\x5f\x24\x37\x07\xe2\xac\xd2\xa6\x5c\xea\x28\xe2\xb6\xd2\x3a\x66\x20\x6c\xa5\x48\xf1\xed\x29\xa9\x18\x37\x60\xc3\x6a\x95\x26\x46\x83\xe2\x8e\x6f\xe5\xc8\x50\x18\x25\x4c\x77\x4d\x18\x4f\x89\xe3\x96\xc4\x51\x9d\xc4\x95\x99\xb2\x4a\x67\x53\x1c\xe3\xc4\x0f\x20\xcd\x24\x5d\xb7\x84\xcd\x95\x32\x44\x86\x15\x2b\xf5\x98\x78\x50\x82\x4b\x6e\x35\x8d\xc5\x5e\xf0\x0f\xaf\x5f\x7d\xc1\xd8\xfc\x8d\xa4\xae\x8d\x38\x51\xac\xbf\x26\x33\x41\x50\x42\xc6\xd1\xbe\x9b\xcd\x9f\x62\x21\x06\xc5\x8d\x68\xe5\x5c\x56\x9e\x71\xff\xfe\xf4\xe4\x58\x1d\x59\xc7\x8d\x84\x30\xf1\x0d\x03\x1b\x51\xc3\x5f\x8c\x09\x0e\x47\x18\xa1\xe4\x9e\x3c\x71\x42\x0d\xd0\x01\x55\x2e\x6d\x7e\x1c\x93\x2b\xce\x66\xee\xd2\xd0\x2c\x19\x8a\xe4\x0c\x50\xbb\x80\x21\x84\xd2\x42\x73\x05\x12\x3b\x63\x52\x8d\x75\x00\x81\x1c\xf6\x39\x25\x55\xd2\x4b\xd0\x2a\xf2\x7e\xa8\x46\x85\x0f\xd4\x13\x5d\xf4\x13\x79\x9d\x7d\x65\xe6\xdf\x56\x2e\xb1\x1e\xa2\x86\xc5\x5b\xb2\xa6\xd6\x43\x31\xe3\x54\x1d\xe9\x55\xd7\x95\x88\x56\xa6\x7e\x5c\xb9\xc4\x38\xac\x30\x3c\x9b\x63\x3e\xc0\xef\x09\x9b\x36\x2a\xdf\x45\x0b\x5d\x4b\xbc\x10\x6c\xb5\xc2\xa2\x8a\x5f\x79\xc2\xe7\xe0\x22\xc6\xe3\xca\x18\xcf\x17\xec\xf6\x49\xc5\x67\xcc\x1f\xbd\x13\x6d\x58\x8a\xf1\xc0\xd9\xcb\x35\x8c\x63\x9d\x95\x96\xfd\x78\x96\xef\xb6\xe2\x2e\x95\x89\x4f\x02\xd5\x98\x8a\x94\x99\x2b\x4f\x3e\xbb\x8b\x95\x64\xce\xc7\x71\xf9\xa4\x62\x4b\x24\xf1\x2f\xd1\xf2\x89\x04\x30\x87\x7a\xf9\x04\x34\x7e\xd4\xed\xe2\xf3\xcc\xfa\xfc\xe8\xcc\x82\x3f\x72\xf0\xbe\xc9\x86\xd0\x67\x77\x05\x1e\x7e\x7a\x37\x2d\x61\xc0\xf2\x47\x4e\x6f\xc2\x26\x56\xae\x86\x60\xa9\x42\x06\x62\x74\x80\x7f\xdd\xe2\xf8\xe7\xa7\x83\xfb\x88\xb5\xf1\x43\x17\x46\xb9\x2a\x7e\xcc\x8a\x06\xad\xe9\x58\x2c\x10\x9f\x70\xd1\x2a\x53\x04\x3e\xac\xda\x4b\x35\x12\x1f\x20\x6f\x09\x14\x89\xd3\xa2\x91\x1f\x4c\xa3\x98\x79\x9d\x96\xe3\x28\xd4\x24\xd6\x7e\x00\x4e\x8b\x4f\x81\xa6\x63\xd1\xfa\x8f\xa4\xba\xbf\x64\x41\xec\x4f\x49\x65\x9a\x14\xa4\x70\xe2\xcf\x39\x8e\xfc\xe0\x62\x4e\xa3\xd9\x9c\x7d\x52\x2a\x54\x7a\xbb\xb2\x03\xac\xf4\x73\x09\xd1\x96\x6d\x2f\x1f\x24\x5a\xdd\xa9\xaf\x44\x9f\x8a\x2b\xcf\x80\x70\x44\x2c\x58\xf4\xeb\xe9\x7d\xc7\xf9\x2d\xe9\x7d\x35\x3c\xdd\x5f\x14\xc9\xaf\x36\xbf\x50\x3f\x21\xc1\x48\x28\x48\x7e\xe1\xc7\xf9\x03\x65\xa5\x7c\xf9\xf3\xdd\x29\xea\xc0\x8e\x8f\x3e\xe7\xf8\x7b\x1d\x15\xdd\x5a\x35\x91\x85\xf4\x52\x8e\xb3\x0c\x8c\x05\xa0\xd8\x7b\xbc\xc9\x24\x07\x39\x1c\xaa\x2d\x47\x2e\xe7\xf2\x43\x36\x37\x2b\x15\x3c\xb8\xf7\x50\xe4\x30\x2c\xde\x82\x24\xc7\x05\x7a\x40\xa4\x13\x0a\x58\x7e\xe0\x20\x7f\x90\xa8\x53\xa4\x15\xfc\x14\x43\x4b\x0b\x86\xb6\x70\xd7\xfa\x27\xda\x4d\xfe\xa3\xdb\x17\xde\x65\x38\x93\x3a\xb5\x82\xa5\x5b\xac\x15\x3a\xa3\x8f\xa0\x33\xc9\xdc\x3e\x92\xa3\xc0\xd2\x20\x2c\x8f\xb6\xd1\xc8\x47\x4f\xf8\x6d\xec\xf0\xe5\x05\x19\x05\xf4\x3c\x8a\xc2\x91\xcf\x70\xe8\x33\x3c\x4e\x2f\x99\xf7\x06\xd6\x8a\xc6\xda\x82\xd6\x8a\x5c\xa4\x04\x9a\xbc\x66\x3b\x31\x07\x52\xb2\x50\x6a\x4e\x04\x13\x72\xbf\x58\x88\x85\x5e\x2f\x2a\xe5\x22\xd7\x30\x59\xcc\xb2\x46\xc2\xc2\xb4\xe7\x4b\x7c\x5b\x22\x85\x48\x55\xca\xc3\xb2\x8d\x3c\x47\x93\x2d\x2c\x31\xa2\xd2\x1f\xcb\x57\xb3\x8c\xfa\x46\x5c\x94\x2c\x9c\xd0\x0a\xab\x15\x1d\x5e\x5f\x92\xa4\x89\x53\xe9\xd9\xcf\x8b\xbb\x30\x52\x44\x54\x20\x68\x26\xe4\xcd\x5b\x4c\xe8\x22\x7b\x96\xb4\xa2\x0c\x64\xaa\x4b\xbf\xbf\xb7\x95\xad\x76\x82\x6d\xb7\x97\x5e\xaa\x9d\xaf\x01\x03\x20\x98\x7c\x4e\xa5\x27\x67\x56\x4e\x9a\xc8\x8f\xe1\xaf\x14\x26\x6c\xab\x69\x6d\x22\x64\x63\x34\x50\x07\xe3\x5c\x64\x14\xc6\xd2\xc2\x73\x7f\x14\x05\xd0\x6a\x36\x2d\x98\xff\xca\x85\xca\x95\xc4\xb9\xcf\xa6\x9c\x67\x0f\x15\x2f\xb2\x00\xd0\x9e\xd6\x75\x17\x54\xab\x36\xae\x21\xab\x69\x01\x88\x41\x4d\xc7\xa2\x57\xed\x6b\x4c\xd9\x2c\x90\x76\x10\x02\x15\x82\xd9\x7f\xcd\x59\x42\x51\x38\x99\x64\xe5\xce\xce\xb0\xac\x55\xd1\xea\x6c\x4b\xf5\x65\x2b\xee\x17\x29\x53\x14\x51\x11\x32\xa1\x7d\x3c\x0c\xb3\x41\x79\x84\x87\x46\xea\x6a\xb8\x84\xe9\xd2\xb4\x6a\x5b\xa7\x66\x9f\xbe\x69\x7d\xb5\x63\x1a\x5b\xfd\x0f\x94\x3d\x3e\x99\x62\x35\x67\xfd\x67\xaa\x54\x55\x74\x0c\x18\xa3\xba\xbb\x89\x10\x49\x5d\xe9\xe3\x2c\xcd\xff\x23\x58\x53\xc9\xc4\x8e\xab\x55\x15\xbc\x64\x13\x21\x7f\x35\x10\xd6\x03\x95\x4f\xfd\xb8\xe2\x87\x15\x12\x8e\x22\x2a\xfc\x30\xf4\x7d\x10\xa2\x48\x1d\x3a\x4b\x45\x6d\xbd\xc4\x15\xeb\x49\xcd\xaf\x3d\xb1\xa0\x08\xc9\x45\x62\xfe\xae\xaa\xaf\x3d\xb1\x9e\x14\xaf\xf2\xcf\xa2\x31\xf6\xc6\x78\x55\xbf\x36\x88\x86\xe0\x03\xd6\x7e\x7f\xdd\xda\x9f\x0f\x4e\xfd\xe7\xb5\xdb\x7b\x84\x45\x5b\xbe\x03\x2b\xfb\x3d\x6d\xa5\x24\x01\xcb\xac\xda\x56\x96\xee\x92\x85\x58\x14\x72\x11\xf8\xe1\x58\x0a\x37\x32\x22\xaf\x56\x6d\x7c\xc0\x01\x76\xa9\x86\x81\x62\x7f\x7c\xf1\x9e\x12\x39\x5b\x45\x7d\xaf\x64\x75\x25\xab\xa8\x01\xa1\x94\x22\xa2\x4d\xeb\x34\x13\x06\x80\x05\xad\x89\x1f\xc4\xbf\x8d\x61\xef\x3a\xca\xcb\xdf\x51\xf0\x20\xe5\xb9\xbf\xdd\x95\x17\x65\xc4\xa5\xa3\xca\x17\xf5\x44\x63\xa3\x2e\x7d\xdc\x0b\x37\x68\xa5\x0e\xaf\x7f\xaa\xd9\x23\x7c\xa7\xb4\x47\x94\xbc\xbe\x5b\xfb\x98\x8a\x50\x55\x61\x45\x76\x38\x56\x87\x4e\x02\xe4\xce\xbc\x08\x12\xdc\x95\xfa\x82\x72\x1c\x21\x6b\xb5\x0a\x6b\xb9\x2c\xac\x39\x5c\x67\x0d\x4d\x17\x39\xb1\x4c\x8a\x24\x12\xea\xd1\xa7\x63\x24\xb9\xe9\x45\xdb\x52\xe6\x3d\xbf\x58\x91\x4f\xad\x58\x12\x72\x19\x0c\x9f\xaf\xe2\x3c\xd0\x97\x55\xc5\xaa\x2a\x21\x38\x19\x61\x0b\x72\xe5\xc5\x49\x03\x0c\x57\x5d\x68\x31\xba\xc0\xe2\x5e\x94\x12\xa7\xcd\x18\x40\xb5\x10\x23\x84\xd2\x5b\x66\xd6\x18\x50\x03\xbe\xb4\x69\x4f\x4a\x1c\xc4\xb8\x12\x89\xb3\xa3\xd0\xb6\x8e\x23\x56\xf1\x2b\x82\xf6\x2a\x0a\x58\xc5\x27\xdb\x20\xea\x0a\x9c\x67\x9c\x2e\xec\x3b\x49\xd4\x1e\x46\x07\x24\x91\xac\xcc\x11\xf1\xf0\x12\x88\xb3\x29\x90\x99\x48\x05\xf6\xd3\x2a\x74\xfe\x38\x0e\xea\xf8\x46\xac\x30\xeb\xa2\xeb\xaf\x73\x33\x32\x2f\xc2\x7a\x23\xb2\x3c\x3f\x7d\x95\xc6\xa5\x82\x54\x5e\xfd\xc3\x1a\x99\xeb\x90\x04\x24\xca\xfb\x72\x89\x2a\xcd\x00\x28\x06\x71\x2b\xf9\xc4\x8c\xe3\x01\x96\xd0\xac\x57\x5f\x17\x74\x77\x41\x42\xc2\x64\xda\xef\x85\xb9\x1a\x32\xa2\xd2\xcc\x31\x2d\xa9\xc1\x76\x52\x9c\x29\x33\xfa\x82\x46\xc7\xa8\x38\xea\xeb\x83\xb7\x43\x3d\x64\x55\xf6\x9b\xf1\xd1\x22\xbf\x72\xe9\x96\xf8\x3a\x1a\xe3\x20\x2b\x0e\xc3\x4c\xfc\xfb\x62\x4c\x25\x81\x04\xb9\xd4\xc8\xf1\xd3\xa7\xa5\x36\x91\xac\x31\x9a\xe2\xd1\xbb\x57\xc2\xb4\x51\x04\x20\xf6\xf2\x49\xd0\x78\x95\xa7\xe8\x62\x77\xc7\x8a\x3c\x71\x57\xe4\x61\x3e\x2b\x85\x90\x67\x4c\x3a\xd0\x10\x47\x99\x36\x68\x8c\x44\x30\x5b\xb3\x59\x65\x76\x58\x8f\xb8\xb4\xeb\x1f\xeb\x00\x9a\x28\x49\x86\x30\x9f\x08\x73\x09\x3a\x16\x4a\xc9\x38\xaa\x7d\x95\xb9\x89\xa2\x45\x23\x69\x6e\xa4\x8a\x00\x6a\x56\x83\xc4\x87\xe6\x98\x89\x1d\x56\x72\x3f\x42\x94\x98\xf1\xf6\x8d\x25\x4a\xc5\x80\xb7\x81\x67\x93\x86\xcf\x18\x9e\xcd\x19\x36\x62\x6c\x21\x0c\xfd\x7e\xa8\x4e\xcc\x9f\x0b\xef\x5f\x1b\x03\x8f\xac\xa1\xab\x64\xe7\x9b\xcb\xb4\x14\x47\xf6\xb9\xc4\x3b\x2c\x8f\xde\x2d\x33\xdd\x82\xb8\x98\x34\xf3\xd7\x2d\x7d\x80\x48\xf3\x9b\x68\x9d\x8b\x24\x05\x25\xa8\x5c\xe3\x90\xe1\x71\xea\x3c\x05\xef\xcc\xf0\x05\x19\x67\xe3\x52\xaf\x4f\xd5\xcb\x8c\xe3\xb1\x72\xe9\x34\x53\xc8\x18\x65\xee\x29\xb1\x36\x92\x02\x85\xaa\xf3\x14\x07\x58\xc8\x4a\x56\xa3\xf4\x3a\x13\xc0\xa7\x07\x0e\xc7\xcf\xa6\x24\x18\xdb\x46\xe9\xda\x3f\x5a\x3b\x16\x9b\x0d\x57\x32\x88\x0d\x96\xd0\xf4\x3d\x16\xb7\x43\x23\x84\xca\x5a\xf1\xbb\x4c\x63\x81\x0a\x68\x56\xe0\x46\xfd\xa0\x8e\x38\x7f\x2b\xd7\x5f\x2a\x39\x18\xc1\xc9\x0a\x6e\x9c\x56\x71\x3c\x45\x1d\x15\x12\x56\x30\x10\xd2\xe0\xd4\x8f\x4f\xde\x87\x49\xeb\x28\xd0\xe1\xcd\xe2\xf7\x84\xcf\x49\x3c\xa0\x43\x70\x37\xf2\x63\xbc\xe9\x78\x21\xb2\x5c\x6b\x43\xde\x81\x2b\x92\x5c\x9e\xe4\xe8\x24\xd5\x2a\x2f\x14\x21\xbc\x96\x4c\x4a\x18\xb4\x66\x21\xab\x16\xa6\x31\xb3\xb5\x96\xc2\x02\xcb\x82\xd0\xc8\x58\x5e\x0c\x7b\x7f\xdf\x75\x1c\xe1\x5b\x20\xaf\x2c\x15\xef\x1b\x99\x98\xb6\x33\x4c\xaf\xb0\x7d\x17\xe0\x09\xf3\xe2\x11\xc5\x58\x5d\xbb\xdc\x6c\xd5\x59\xb3\x05\x59\x34\xd7\xc9\xb2\x88\x66\xab\x4e\x9b\x2d\x28\x60\x3c\x06\x65\xa2\x47\x97\x9c\x4f\xd8\xf4\xfe\x9e\xaf\x65\x1b\xe6\x8c\xd2\x51\x3e\x74\x60\x97\x70\x85\x8c\x73\x24\x9b\xf1\xfd\x37\x49\x5c\xc6\x28\xf8\x14\x34\x9a\x0b\xe1\x54\x74\x91\xa2\xf8\x94\x8f\xbb\xbb\xc6\x4d\xf4\x43\x6f\xd3\x97\x64\x9a\xf7\x5c\xd4\xb7\x73\x59\x35\x96\xae\x87\xf7\xf7\x76\x39\xa4\x79\x8f\x17\x00\x90\xfe\xfa\x58\xe9\x6a\x21\xcb\xce\x9a\x8b\xaf\x68\x74\x73\x2b\x56\x7b\x28\x83\xba\x4a\x95\x7a\x6c\x84\x70\x7d\xd8\xfb\x38\xeb\xc2\x2a\x84\x59\xa1\xf8\xc7\x6c\x31\x17\x7a\x71\x51\x8b\x11\xc5\x80\xcb\xcc\xeb\xb5\xf1\x66\x03\x12\x5d\xf0\x06\x6e\x14\x44\x22\xcd\x44\x69\x90\x3a\xf9\x91\xbc\x20\xd9\x52\x1e\x29\x18\x40\xfd\x21\x17\x01\x8f\x43\xac\x44\xc5\x93\x36\x6a\xbc\xf9\x2a\x4a\x5d\x82\x6e\x4e\xd4\x9a\xe2\x75\x00\xa1\x42\x8f\xd8\xa8\x30\x39\x19\xeb\xfc\x9d\x98\x2b\x6a\xda\xa4\xe7\x8f\xde\xf7\x62\x70\xe7\xab\x85\x3e\x66\x3e\x65\x27\x73\x1c\xf2\x5d\xa5\x5d\xec\x81\xa7\x25\x95\x64\x02\x17\x81\x19\x31\x8e\x44\x00\x75\x09\x5c\x08\x9a\x9e\x77\xeb\x56\x4c\x48\x48\xe2\xa9\x68\x06\xc4\xf2\x50\x64\x45\x94\x29\xc8\xe5\x93\x20\xc9\x93\x91\xa2\xc4\xed\xa0\xd8\xb0\x1e\x7c\xc4\x20\x7c\x0a\xac\x46\x26\x56\x5f\xf0\x8a\x1f\x46\xab\x42\x97\x6c\x66\x19\xbe\xa2\x0c\xa2\x64\xc9\x50\x74\x70\x0d\x9e\x22\x03\x4f\x49\x96\x72\x44\x49\x25\xc0\xdf\x03\xa2\x14\xef\x7e\x24\xa2\x64\x33\x0b\x11\x95\xc7\x93\x5e\x14\x1e\x8d\x25\x15\x2e\x65\x0d\x96\xd6\xca\xc1\x2a\xd6\x60\x71\xc8\x81\x07\x56\x8b\xb2\xb5\x82\x66\xe2\x93\x66\x5d\xf3\xd6\x04\x1a\xcb\xaf\x15\xc9\x01\x80\x70\x88\xb7\xf5\xf6\x27\x33\xb4\xf2\x46\xb7\xcd\x68\xf5\x70\x25\xb9\x90\xcd\xcf\x5f\xb3\xf6\x44\x78\xf0\x3e\xa9\x40\x71\x75\xc8\x6d\xb4\xa8\x4c\x22\x7a\x85\x85\x21\xb3\xbe\x46\xab\x42\x58\xdf\x52\x65\x0f\xf0\x50\xb8\x37\x15\x44\xc2\x4e\x2a\x49\xaa\xd0\x85\xb3\x48\xdd\xf4\x26\x8e\x55\xd4\xe5\x13\x95\x19\x66\xd3\x68\xdc\x48\x09\x6f\x95\xe8\x92\x0d\xd5\xdd\x32\x11\x9b\x1e\xe3\x13\xcd\x6c\xde\x50\x9b\x28\x7d\xd7\xa7\x5e\x4f\xe5\x4d\xec\xd4\xb6\x22\xc1\xbd\x36\x1d\x7d\x2d\x3a\xb5\xad\x89\xe2\x1a\xf2\x7e\x72\x6a\x5b\x23\x4d\xc4\x45\x84\x57\x28\xa2\x14\xd3\x5f\x16\xe8\x4f\x70\x1f\xb4\xa6\x4f\x8e\xf0\x64\xc9\x97\x91\x03\xf5\x0d\x01\x9e\xb5\x08\x33\x8a\x0d\x0b\xea\x68\xf1\xb9\x0f\xde\x9d\xb0\x78\x7f\x2d\x83\x5a\x49\xc1\x23\xb7\xc1\xf6\x36\x5d\x98\x2c\x67\x1e\x91\xd8\xd5\x37\xfb\x18\x99\xad\x21\x80\x29\x83\xe6\x80\x02\xe7\xc5\x90\x59\xfd\xc1\xd8\xbb\x53\x12\xc0\xdb\x18\xd3\x92\x56\x38\x30\xe5\x6a\x7a\x00\x79\xe1\xea\x94\x97\x84\x57\xde\x1d\x89\xbf\x8d\xe8\x3b\xfe\xb8\xe9\x40\x12\x9f\xa8\xf4\x4d\x07\xa6\x4b\x21\xc7\xa0\x18\x9c\x34\xae\x72\x56\xed\xa7\x43\x41\x99\x81\x75\xad\x2c\x3a\xf9\xfa\xa7\x56\xc9\x64\x9b\xab\x8a\xca\x21\xb8\x61\x76\x5c\x6f\x69\xb3\x45\xe7\xc7\x0a\x2c\xd5\xea\x5a\xd4\xa5\x17\xfa\x43\xd2\xa7\x17\x72\x21\xfe\x64\x9d\x4a\xca\xfb\xf4\xbd\x52\x43\xb6\xd2\xa9\x67\x2a\x5d\xbc\xac\x0c\xbb\xb1\xe8\x14\x5e\x8d\x50\x50\x15\x4c\x56\x9d\xdf\xa4\x23\x7c\x3b\x64\x2c\x73\x82\x5b\x20\x0c\xa3\xe5\x8a\x9d\x9e\x59\xd4\xca\x46\x25\xb7\xdf\x2d\xd8\xec\x56\xab\x36\x1b\xd0\xa1\xd8\xaf\x1a\x21\x15\x48\x66\x4d\x32\x63\xdd\xe9\x12\xf7\x68\x7a\xff\x19\xad\xd5\x00\xef\xd7\x80\x17\x35\x54\xea\xf9\xc2\x0b\x26\x32\xac\x90\xfa\xa3\x77\x78\x5c\x9f\xf9\xf3\xb8\xee\x87\xe3\x7a\x8c\x99\x11\x9f\x63\xe6\xe7\x35\x11\xeb\xe1\xf9\xe2\xfc\xe9\xb9\xe3\x99\xac\xf4\x5b\xec\xbf\x7b\xed\xcf\x51\x92\xc0\x5f\x32\x47\x6c\x34\x39\x62\x7b\xed\xcf\xef\x84\x22\x39\xb3\x73\x1a\x45\x61\xbc\x98\xe1\x2f\xf1\x2d\x50\x51\xfe\x01\x94\x0a\x55\x09\xbb\x9c\xfa\xf1\xa3\xb3\x48\xd8\x25\x0e\x19\x25\x38\xb6\x8b\x72\x3d\x8b\x82\x00\x8f\xa4\x72\x54\x4a\x09\x32\x6b\x92\x67\xf9\x0e\xdf\x7e\x58\x56\x99\x61\x29\xf0\xf3\x61\x39\x75\x96\xa5\xb6\x1b\xc1\x2a\x68\xf1\x03\xf9\x52\xf0\x25\x17\x4d\x62\xf2\x0b\xfe\xa0\x7a\x79\x86\x65\xac\xae\x5f\xcb\xec\x63\x09\x65\xb7\x19\xc4\xa6\xc9\xa5\x85\xa9\x72\x96\x32\x5c\x4b\x6e\xb0\x3e\xa6\xc4\xa4\xa0\xa5\x08\x24\x98\x4a\xcc\xd9\xde\x8b\x5a\xd1\x41\x51\x35\x14\x3c\xa6\x1e\x55\xfa\x72\x29\x14\x5e\x06\x05\x53\x98\xde\xfb\x2b\x63\xb4\x9e\xde\xce\x2e\xa3\x40\x1f\x9a\xd0\xf4\xd8\x6d\x20\xbf\x34\x08\x93\x21\x77\x87\x25\xb3\xc9\xc8\x02\x73\x59\xa0\x98\x16\x8f\x1b\x3f\xcc\x05\xf6\xfc\xe1\xb5\x9a\x85\x7f\xa2\xd9\xf5\x38\xba\xf9\x38\xda\xc8\x8f\xff\x72\x85\xd3\x84\x1f\xc0\x2a\x63\x9c\x37\xe9\xf9\x7b\x66\x95\xa7\x98\xa5\xac\x92\xbf\x94\xb0\xca\x53\xcc\xee\xfe\x7f\xbe\xf7\x1b\xf1\x3d\x7f\x3c\xfe\x04\x3c\x4a\x96\xf2\x0f\x84\xe7\x71\x52\xfc\x0b\xe4\x79\x1f\x39\x4d\x1e\x43\x00\x1f\x33\xc8\xeb\x99\x17\xc7\xf1\x87\x30\x2f\xc1\x8c\x7e\xbb\x08\xb4\xf2\x2c\xf0\xcc\xbf\x2a\xb8\x19\x90\x6f\x70\xa9\xba\x50\x5e\xa1\x12\x8d\xf8\x96\x58\x75\x19\x8d\xf5\x4b\x3a\x58\x08\xaf\x0e\x20\x52\x50\xbc\x96\xe4\x33\x7f\x51\x6c\xaf\xe8\x12\x9d\xe4\x86\x59\x18\xa1\xe4\x1c\x5d\x09\xd4\xd0\x47\xd1\x7e\xbb\xcf\x3c\x75\x02\x18\xf6\x43\x7d\x83\x9f\x54\xfd\xe8\xae\x3f\xc7\x32\x4e\x6d\xa4\xae\x42\x17\x77\xf2\x58\x91\x00\x4d\xe3\xae\xbf\xc1\x13\xde\xd0\x6a\xb5\x20\x26\xbb\xfa\xd6\x18\xe3\x51\x44\x7d\x86\x81\x8f\xf2\x49\x49\x7b\x37\x84\x95\x91\xde\x01\x08\x7b\x28\xd1\xdc\xba\xbb\x17\x1f\x20\x67\x2f\xae\xd7\x81\x4d\x10\x1e\xc4\x43\xbe\xaf\xf0\x91\xcd\x7b\x41\x6c\x1f\x78\xd1\x01\x7f\xe0\xc5\xf8\xc0\x13\x0f\x00\xdc\xdf\xfb\xe9\x26\xe7\xa0\x5d\xad\xfa\xd5\x6a\xf1\x00\xcb\x7c\xd0\x5f\xea\x05\x44\x9c\x62\x90\x51\x25\x45\xb5\x3c\x03\xbf\xb8\x60\xfe\xd5\x85\x18\xff\x8b\x8b\xa5\x02\xd2\x43\x53\x00\xa2\x06\x68\xb9\x64\xf6\x40\x9d\x95\x28\x6a\x1d\x42\x73\x52\x5b\x99\x5c\x96\xe2\x20\x40\xdd\xe0\x10\x22\x6a\x0c\xfa\x46\x86\x02\x42\x05\x23\xee\x20\x50\x0d\xd9\x30\xc8\x85\xa8\xef\x11\xba\x93\x01\x84\x7d\x84\xd1\xc1\xdd\xc8\xc6\x30\x02\xcb\x8d\x22\x62\xf3\x37\x64\x5c\x08\x0e\x37\x4e\xe0\xf2\x64\x1a\xa7\x6c\x4e\xf4\xac\x5a\xb5\x0b\x0b\xe3\xc5\x98\xd7\x14\x5b\x83\xa1\xb0\x53\x5b\x29\x2f\x05\x94\xf7\x84\xe9\xd1\x79\x36\xf5\xc3\x2b\xac\x73\x6a\x9c\x04\x42\x7b\xa4\x84\x99\x74\x5f\xba\x90\xa2\x06\xef\x40\x88\x02\x25\x9c\x6d\x24\x86\xe3\xa1\xbc\x8e\x0d\xbf\xe7\x9b\x28\x18\x28\xb1\x2a\x04\x32\xae\x33\x41\xa1\xc8\x91\x1e\xaf\x25\x19\x89\xb8\x6c\x4d\xcc\x67\x18\x8a\x6c\x0c\x12\x00\x20\x49\xb7\xb4\x23\x59\x75\x68\xcb\x36\x18\x9b\xdd\xb1\xfc\x42\x92\x2f\x0f\x73\x2f\x61\x55\xff\x41\x32\x97\xd8\xce\x3e\x46\x90\xfb\xe4\xe6\xa1\xa5\x19\xd2\x8d\x80\x05\xef\x70\xb8\x98\x61\x61\x02\xec\x6d\x3a\xf0\x0a\x33\xaf\xc8\x72\x27\xcd\xb2\x7c\x44\xc9\x6a\xf8\x3f\xb4\x74\x95\xed\x31\x35\x9c\x72\xc9\xf7\x51\xa5\x53\x43\x06\x78\x6c\xdb\x3f\xa2\x74\x95\x4d\x1e\x37\x08\xc6\x7f\x71\x81\xf9\xac\xb9\xf0\x17\x2c\xba\x20\x33\x4e\x2e\x17\x17\xd9\x1b\x7d\x35\x21\x72\xd2\x4e\xef\xdd\x83\x3e\x8c\x11\x1b\x38\x43\x18\x20\x36\x70\x87\x70\x81\xd8\xa0\x35\x84\x63\xe4\xc0\x29\x1a\x0c\xf7\xc6\xfb\x7a\xc1\xd8\x1b\xd7\x6a\xc0\x47\xf1\x60\x3c\xd4\x1d\x4b\xef\x80\xcd\xea\x7c\xe4\xb5\x5d\x04\xfa\xa0\x5a\x25\x03\x7f\x58\xad\x4e\xa5\x95\x02\x7f\x19\x38\x43\x00\xf9\x03\x72\xe4\x4d\xa5\x15\x12\x56\x02\xf0\xa8\x22\x03\x18\x0a\x8f\xa1\x41\x38\x44\xc1\x20\x1c\xca\xbb\x4e\x47\xd5\xea\xc8\x66\x60\x6f\xaa\x5b\x0a\xa6\x8d\x78\x4a\x26\xcc\x36\x6c\xef\xe4\x65\xcd\xca\xb2\x2c\x82\x8b\xfb\xfb\xc1\x10\x40\x2e\xbd\x19\xa7\x29\xc6\xf5\xfc\x90\x21\x67\x8f\xed\x27\x77\xb1\xb2\x5a\xcd\xd0\x4c\xa1\x68\xc0\x86\x50\xc4\x0e\x8d\x91\xbb\x17\xef\x6b\xdf\x93\xbd\x58\xdf\xd3\x1f\x20\x3a\x88\x87\x1b\x9c\x39\x92\x41\x30\x14\x5c\x67\xd3\x05\x4b\xce\x7f\x22\x7d\x03\x20\xab\xd7\xa1\x0b\x20\x46\xbe\xed\x37\x62\x44\x39\x72\x92\xc3\x08\xbc\x94\x66\x26\x77\x4b\x48\xd0\x9d\xe3\x39\x4b\x18\x09\x0b\x93\x34\x28\xa9\x0c\xd1\x1a\x0e\xd8\x30\xb9\x16\x7f\xc0\x86\x0d\xc5\x31\x94\x22\x8f\x27\xa1\x3b\xe2\x31\x18\x78\x9b\x2e\x54\x1f\xbd\xbb\x65\x1a\x89\x94\x67\x12\x18\xa6\x3a\xaf\xb8\x04\x56\x3f\xfb\xc2\xb9\x86\xf7\x36\x49\x5b\xfa\x8d\x19\xc2\xd0\x6f\x8c\x50\x08\xfd\xc6\x78\xe5\xfe\x3e\xbf\x11\x09\x56\x77\x7f\x5f\x36\x0d\x58\x11\xdd\xd3\x25\x58\x42\xbf\x41\x51\x56\x40\x0b\x65\xee\xb1\xb5\x99\x95\xa8\xab\x55\x25\x0c\x6b\x6b\xe9\x33\xff\xaa\x6c\x89\x4f\x04\x67\x03\x56\x73\x31\x4b\x71\xb5\x75\xb3\xb6\x84\xf9\xf1\xe6\xb2\xdc\x41\x1b\x99\xd8\x6e\x95\x89\xa8\x9e\xbe\x8d\x01\x80\x3b\xd5\xe4\x0e\x01\x71\xdb\x6b\x87\x7f\x5d\x91\xa2\x70\xb5\xca\xff\x6b\xa4\x35\xa5\x99\xe4\x58\xaa\xc6\x29\x83\x4a\xe1\x67\xc9\x8b\xf3\x1b\xd4\xa6\x65\x4d\xa7\xd0\x52\x9a\xdc\x15\x4e\x23\x7b\x81\x97\x00\xb6\x44\x83\x94\xa7\x6d\x82\x64\x0c\x12\x56\x21\xd5\xbb\x7e\x63\x6c\x53\x18\xc2\x82\xa3\x7d\x4e\x44\xcb\xc6\x25\x09\xc7\x2a\xce\xa7\x79\x79\x37\xf4\x1b\x45\xf6\x52\xb9\xde\xf6\x57\xb9\x5e\x72\x78\xb4\x2c\x60\x89\x38\xa1\x60\xde\x2e\x06\x2d\xdf\x82\x0c\x40\xc6\xab\x2b\x39\xfb\x7c\x14\x9f\x51\xf7\xd9\x36\xe6\xc8\xb2\x54\x00\x5d\x65\xa6\xf4\x1e\x5f\xce\xfd\xd1\xbb\xdf\xc7\x51\x38\x2f\x60\xba\x8f\x04\x13\x37\x8e\x06\x28\x96\x3c\x49\xa0\x2c\x06\x1b\xf2\x15\x31\x18\xa3\xe4\x8a\xff\xc4\x9c\x6c\x81\x9c\xbd\x45\xca\x8c\x17\xb5\x1a\x60\x76\x3c\x58\x0c\xe5\x0a\x30\x42\x41\x96\xd3\xd9\x83\xee\x36\x6c\x29\x16\x67\xdf\xb5\x76\xbd\xd5\xb0\xc9\x17\xd8\x27\x17\x14\x29\x97\x25\x68\xa6\x8e\x91\x24\xa2\x25\xec\x6e\x7b\x2b\x21\x62\xed\xd6\x2e\x97\xdf\x14\x2b\x40\xd4\xee\xee\x80\x25\xec\xee\xac\x40\xca\x45\x86\xc0\x68\xa3\x68\x0a\x6b\xab\xc3\x6a\x95\x6f\x6f\x91\x1d\x96\xd8\x21\x1e\x06\x41\x7a\x5b\x06\x18\x84\xc9\x9e\x60\xd8\x88\xe9\x28\xbd\xdd\xf0\xbc\x39\xf8\xa1\x39\xdc\xfa\xac\x09\xad\xa6\x05\xcc\x16\xda\x04\xc9\x6e\xc1\x48\x3e\x50\xdd\x5b\x31\x38\x87\x0b\x16\xbd\x14\x43\xf3\xfc\x36\xf4\x67\x64\x54\x74\xb3\xb5\x8b\xd0\xca\x2e\xaa\x1f\xd9\x96\x2c\xf8\x36\xbc\xb0\x6a\x18\x78\x46\x02\x13\x29\x76\xe1\x7d\xe9\xab\x17\xaa\x82\x25\x24\xb6\xf5\xd7\x01\x61\x4d\x8a\xfd\x11\x23\xd7\xb8\x8e\xa5\x79\xa9\x05\x07\xc3\x22\x2f\x29\x6a\xbb\xad\x6d\x71\xf4\xcb\x73\xde\x88\xc3\xa1\xe6\x24\x9e\x95\xc3\x77\x77\x35\xb8\xef\xba\xb7\x75\x19\x4f\xb5\x1c\xbc\xe7\x68\xf0\x4b\x3f\xc6\xbd\x4e\xfd\xa7\x78\x0d\xb0\xab\x81\x47\x01\x99\x5f\x46\x3e\x1d\xaf\x01\x6e\x69\xe0\x71\xbb\xee\x73\x0c\xad\x69\xb4\x01\x1a\xcb\xf8\xcb\xe5\xf8\x70\xf3\xc0\xf5\xd1\x94\x46\x33\xbe\x4b\x5b\x97\x2d\x53\x07\x56\x1b\x92\x75\x19\xda\x66\x86\xa9\x3f\x5f\xdb\xa8\xb4\xb3\xfe\xed\x5a\x14\xb6\x33\x80\xcd\x79\xb0\xb8\x22\x61\x93\x77\x23\x1c\xfb\x74\x4d\xc6\x4e\x92\x11\xe3\xb9\xb0\xd9\x5c\x03\x9c\x74\x76\xe2\xc7\xac\xce\x73\xd4\xf1\xcf\x0b\x3f\x58\x93\xa5\x97\xc9\x32\xc3\xb3\x48\x78\x3b\x96\xc1\xb7\x76\x12\xf8\xc0\x5f\x43\xbf\xbd\x84\x7c\x49\xc8\x30\x8d\x25\xde\xeb\xd1\xa5\x8c\x2b\x57\xf7\xc7\x33\xb2\x66\x18\x7a\x3b\x46\xf6\xa0\xae\x6e\xb5\x9a\x44\x74\xb6\xae\x52\xb7\xd5\x2b\xcf\x56\x17\x11\x0b\xd7\xa0\x3a\x9d\x71\xb3\x10\xcf\xa2\x90\xc4\xac\x39\x5b\x04\x8c\xd4\xe5\x69\x62\x59\x53\x77\x57\xb3\x49\x9d\x7a\x49\x86\xed\x84\x68\xc2\x2b\xea\xcf\xa7\x0d\xf1\xbb\x06\x3e\xa1\x1d\x79\x63\xe5\x38\x89\xa7\x51\x9a\x23\xa1\x83\x39\xc5\x8c\xdd\xd6\x67\x6b\x48\x73\x3b\xc1\x19\xf5\x27\xf5\x79\x14\xad\xa1\x96\xed\x64\x58\x18\x99\xcf\x6f\x1b\xeb\x48\xde\x6d\x25\xa4\xab\x82\x10\xe2\x71\x7d\x24\xf6\xfb\xeb\xd1\x23\xf1\x29\x76\xe7\xc4\xb6\xde\xfb\xb7\x13\x15\xdb\xa6\x24\xc3\x8e\x23\xdd\x1a\x96\x60\xcf\xfe\xe4\x8b\x39\x50\x6b\x2e\xdf\x3b\x0d\xd6\x6e\xad\xa9\x14\x54\x2e\x0b\xdd\x5e\x89\x74\x63\xd7\xa2\x4c\x91\x9d\xa5\x01\x31\x2a\x84\xf0\xf9\xa6\x70\x63\xaf\xb9\xb5\x59\xd9\xfa\x94\xff\x36\x9e\x45\xf3\x5b\x4a\xae\xa6\xac\x62\x8f\x40\xe5\x35\x19\xd1\x28\x8e\x26\xac\xf2\x2c\xa2\xf3\x48\x5d\xa6\xb7\xb1\xf1\x15\xa6\xc2\x97\x9e\x6f\x35\xa3\xca\x22\xc6\xb0\x32\x8a\xe6\xb7\xb0\x32\x8b\xc6\x64\x72\x0b\x2b\x7e\x38\x6e\x46\xb4\x32\x26\x1c\x23\x97\x0b\xa6\x6e\xf4\xe3\x45\xbd\xf7\xa9\xd0\xfd\x55\xfc\xf0\x76\x63\xbe\xa0\xf3\x28\xc6\x32\x00\x65\x44\xc5\xdf\x68\xc1\x2a\x13\x8c\x2b\x24\xae\x4c\x31\xc5\x97\xb7\x15\x75\x3f\x42\x63\x63\xe3\xec\x8b\xa3\xca\xe9\xc9\x8b\xb3\x6f\x0f\xdf\x1c\x55\x5e\x9e\x56\xbe\x7a\x73\xf2\xcd\xcb\xe7\x47\xcf\x2b\xd6\xe1\x69\xe5\xe5\xa9\x55\x39\x3c\x7e\x5e\xe1\x40\x87\x6f\xcf\xbe\x38\x79\x53\x79\xfe\xf2\xf4\xd9\xab\xc3\x97\xaf\x4f\x2b\x87\xaf\x5e\x55\xbe\x3d\x7c\xf3\xe6\xf0\xf8\xec\xe5\xd1\x69\xe5\xdb\x97\x67\x5f\x6c\xbc\x39\xfa\xfc\xf0\xcd\xf3\xca\xd9\x49\xe5\xec\x8b\x97\xa7\x46\xc1\xc7\xcf\x5e\xbd\x7d\xfe\xf2\xf8\x73\x91\xeb\xe5\xeb\xaf\x5e\xbd\x3c\x7a\x6e\xe6\x3e\x79\x51\x79\x7d\xf4\xe6\xd9\x17\x87\xc7\x67\x87\x4f\x5f\xbe\x7a\x79\xf6\xdd\x06\xaf\xf8\xc5\xcb\xb3\xe3\xa3\xd3\xd3\x46\xe5\xe5\x71\xe5\xf8\xa4\x72\xf4\xcd\xd1\xf1\x59\xe5\xf4\x0b\x5e\x88\xd1\xa6\xa7\x47\x95\x57\x2f\x0f\x9f\xbe\x3a\xaa\xbc\x38\x79\x53\x39\x3c\xfe\xae\x72\xfa\xd5\xd1\xb3\x97\x87\xaf\x60\xe5\xf9\xcb\x37\x47\xcf\xce\xe0\xc6\xcb\x63\xf5\x54\x39\x79\x53\x79\x76\x72\x7c\x7a\xf4\xf5\xdb\xa3\xe3\xb3\x97\x87\xaf\x2a\xcf\x0f\x5f\x1f\x7e\xce\x9b\x20\xb3\xea\xd7\x6f\xbf\x38\x3c\x3b\x3d\x39\xfa\xe6\xe8\x4d\xe5\xcd\xd1\xe9\xdb\x57\x67\xbc\xf5\x2f\xde\x9c\xbc\xde\x78\x75\x72\x2a\x1a\xfc\xf6\xf4\x08\x56\x9e\x1f\x9e\x1d\xf2\xac\x5f\xbd\x39\x79\xf1\xf2\xec\x14\x56\xbe\xfd\xe2\xe8\xec\x8b\xa3\x37\xbc\xc5\x87\xc7\x95\xc3\x67\x67\x2f\x4f\x8e\x39\xf4\xb3\x93\xe3\xb3\x37\x87\xbc\x05\xc7\x47\x9f\xbf\x7a\xf9\xf9\xd1\xf1\xb3\xa3\xca\xc9\x9b\x8d\x13\x01\x7d\x76\xf2\xe6\xec\xe5\xc9\xdb\x53\x95\x01\x56\x0e\xdf\xbc\x3c\xe5\x35\x9e\xbc\x3d\xe3\xb9\x4f\x44\x81\xcf\x4e\x8e\x8f\x8f\x64\x89\x1c\xdd\x02\x07\x6f\x4f\x45\x31\x5f\x1d\xbd\x79\x71\xf2\xe6\xf5\xa1\x28\xf5\x45\x16\xfd\x8d\x8d\x4f\x4a\xd2\x95\xad\xe6\x46\xde\x93\xc3\xb8\x32\x3e\x51\x88\xc7\x98\x7d\xa5\xc5\xb7\x93\xc9\xfd\xfd\xdd\xc5\x85\x10\xe7\x2e\x2e\xbc\xc1\x70\xa9\xaf\x6b\x8e\x26\x15\x21\xea\x55\xab\xd9\xd2\xf8\x06\x47\x81\x23\xb6\xbc\xbf\xcf\x7e\xcd\x98\xcf\xb0\xc7\xa9\x41\x38\x57\x11\x6a\x10\x3a\x14\xf7\xbc\x83\x25\x90\x5b\x96\x8d\xbc\x71\x0d\x99\xd8\xa9\x42\x3e\x91\xbb\x59\xb5\xca\x77\x68\x9b\x08\x99\x57\xd3\x9f\xdd\xce\xb1\xb2\xb6\x14\x9e\xbb\xc9\xf1\x90\xd8\x24\x56\xac\x9a\x72\x47\x66\xa0\x66\xf1\x19\x18\x0a\x0f\x60\xc3\xc1\x9b\xcf\x52\x5e\xae\x05\x36\x32\x3a\x15\x61\xa6\x63\xde\xbc\x8f\x97\xb2\xf3\x10\xa7\x1d\x45\xea\x1c\x82\xf5\xb3\x5b\x5c\x06\x3c\xf3\xec\x0b\x19\xb8\x81\x42\x17\x2b\x2f\xe7\x8c\x56\x8f\x5e\xec\x48\x8f\x9f\x8c\x24\x6c\x62\x3e\xc5\x3b\x83\x14\xb9\x30\x5c\x91\xec\xf7\xe8\x7e\x28\x8c\x8e\x34\x20\x11\x03\x94\xc2\x71\xbc\x3f\x72\xb4\x88\x1c\x2d\xc2\x47\x8b\x0c\xcd\xf0\xfa\xc5\x9e\x8e\x4b\x53\xc5\x93\xa5\x12\xe4\xc0\x10\x69\xa3\x28\x48\x92\xf3\x11\xdd\x5c\x48\x6a\x35\xa0\xaa\xa2\xc3\xb4\xa6\x0c\x52\x61\xe6\x6d\x09\xd7\x9c\xd1\xb3\x86\x5f\x62\x43\xbc\xcf\xfa\x75\xd7\xc3\x07\xac\xcf\x7f\x11\xeb\x3b\xde\xb1\x7f\xbc\xcc\x96\xb6\xb2\xfc\xa9\x0d\x61\xee\x56\xa3\x64\xaf\x2f\x86\x18\xa1\xb0\x11\x88\xc3\xcd\x20\x77\x01\xcf\x2a\x9c\x46\x5a\x0a\x18\x17\x03\x86\x0b\xbe\x70\xa7\x60\x41\x31\x18\x97\x3f\x96\xe6\x51\x42\x11\x10\x23\x33\x9c\x51\xfa\x17\x01\xc9\x5d\x44\xe6\x04\xa0\x08\x6c\x1e\x2c\x32\xfd\x9c\x96\x80\x45\x8b\x70\x9c\x42\x4d\x4a\x1a\xe6\x5f\xa5\x30\xf3\x14\x66\xd3\xde\xc4\xf7\xf7\x5a\xdd\x94\x6a\x77\xee\xef\x65\x66\x11\xc5\x47\x62\xc8\xd0\x87\xce\x3e\xb0\x00\x8e\xbb\x33\x32\xc3\x46\x11\xd7\x69\x11\x77\xe2\xaa\x96\x64\x64\x13\xd5\x53\x0a\x7c\x65\x12\x98\x06\x97\xad\xd2\xd0\x30\x66\xb7\x01\xf6\xd8\x72\xb9\x56\x8e\x0a\x1f\x94\xa3\x4c\x49\x6b\xfa\xa0\xa4\x55\x1c\x5b\xcc\x37\x20\x8a\xc3\x98\xc4\x06\xc4\xa4\x10\x22\x30\x20\xa2\x42\x88\x85\x01\x31\x2b\x84\x18\x19\x10\xef\x0a\x21\xc6\x06\x44\x50\x08\x31\x35\x20\xc2\x42\x88\x89\x01\xf1\x53\x21\xc4\xdc\x80\xb8\x2a\x84\x98\x3d\x28\xbd\x5e\x1b\x10\xc5\xb1\xe1\xae\x38\x84\xc9\xc9\xf1\x00\x6b\xa2\x42\xce\x10\x59\xea\xd9\x82\xfc\x83\xe6\x0f\xc8\x1d\x22\x4b\xbf\xc8\x4f\x92\xb2\x50\x6b\x88\x2c\xf9\x28\x93\x39\x15\xa3\xf6\x10\x59\x63\x19\x87\x6d\x80\xc5\x7c\x47\x9d\x21\xb2\xf8\x83\x4c\x92\xb3\x1b\x75\x87\xc8\x92\x8f\x32\x59\xce\x66\xd4\x1b\x22\x4b\x3e\xaa\x64\x3e\x7b\xd1\x36\x4f\xe5\x4f\xaa\x54\xff\x0a\xed\xf0\x42\xfd\x2b\x6b\x69\x87\xf7\xf7\x76\x88\xee\x8a\x3a\xa7\x1a\xea\x14\x34\x94\x4f\x37\xd1\x35\xfd\x62\x2d\x6d\x72\x7f\x6f\x13\x51\xd2\x12\xc2\xf5\xdc\x98\x36\xa8\xcd\x12\x7c\x5f\x92\x58\x74\xa4\xd0\x43\xdc\x24\x21\x09\xf8\x86\xef\x05\x4a\xa0\x47\x2b\xd0\xaf\xf0\xa4\x0c\xf8\x72\x05\xf8\x19\x0e\x19\xef\x66\xb1\xaf\xba\x39\xb9\xe3\x11\x56\xe1\x8a\x8a\x26\x79\x06\x56\x16\x1d\x15\x17\x1b\x65\x40\x45\x30\xeb\x07\xe7\x3c\xdf\x00\xc5\x0f\xce\xc8\xd1\x62\x16\x2f\x8a\x27\xae\x89\xd3\x31\x5e\xdb\x95\x69\x06\xf4\x9a\xa8\xad\xfd\x03\xb3\x50\x48\x70\xc5\x1d\x31\xa7\xe2\xe1\x78\x5c\x82\x6d\x73\x3a\x4e\xca\xba\x71\x65\x02\xad\xe9\xae\x39\xce\x57\x34\x5a\xcc\x0b\xa1\xce\xf2\x50\xc5\x28\x7e\x6d\x32\x5f\x79\x52\x5e\x00\xf5\x2c\x0f\x85\x8b\x4b\x7b\x67\xc0\xd1\x28\x08\x4a\xda\xf6\xd5\x0a\x58\x71\x71\x87\xf9\x3e\x9c\x46\xb4\x78\x18\x5e\x66\x08\xb4\x78\x44\xbf\x31\xd7\x2a\x12\xb3\xe8\x8a\xfa\xc5\x18\x36\x21\xd9\x94\xe2\x78\x1a\x05\xe3\x17\x14\xe3\xf1\xcc\x0f\x9f\x13\x7f\x14\x85\xa4\xb8\xc5\x3f\x17\xe5\x3c\x1d\x45\xac\xb8\xd9\xdf\x16\x82\xb3\x05\xbd\x2a\x41\xf0\x17\xe6\x2a\xe6\x17\x0f\xd6\xe7\x99\x39\x38\xf3\x6f\x5e\x96\x8e\xeb\x77\x26\x20\xf6\x8b\xf1\xf6\x65\x06\x68\x4c\x4a\xc0\x7e\x9f\x01\x13\x9a\xd3\x02\xa8\xaf\x4d\xa8\x92\x81\xfa\x43\xb6\x03\x24\x2c\xef\xc0\xf7\xe6\x7a\x4b\x46\xc5\x75\x3e\x35\x80\xe6\x3e\xa1\xc5\xa8\xc5\xd8\x04\xc3\x74\xb6\x28\x89\x85\xfa\xdc\x80\xfb\x79\xe1\x87\x8c\x04\xc5\x80\x9f\x65\xfa\xa1\x41\x39\x0d\xe3\xe2\x35\xf9\xb3\x0c\x0f\xff\x79\x41\x46\xef\xf4\xaa\x58\xa4\x8b\xc3\x99\xf2\xa9\x1f\x96\xe0\x3c\xcc\x02\x06\xd8\x8f\x8b\x4b\x24\x38\x0f\x56\x8e\xf9\x08\x67\x26\x27\xdf\x01\x95\x94\xea\x17\x41\x96\x17\x1c\x9b\xe0\xf1\xa8\x84\xda\x82\x0c\xd4\x74\x31\x99\x94\x0c\xc2\xa2\x00\xb0\x98\x49\x8f\x32\x90\x65\x6b\x8d\x09\xc4\xf8\x00\x15\x82\xbd\xcd\x60\x9c\xc3\xbd\x0c\x47\x54\x9d\x42\x15\xc2\x5f\xe6\xe0\x4f\x19\x2e\x66\x9e\x6f\x33\x52\x81\x70\xdb\x99\x0b\x8f\xda\xa2\xe5\xce\x6c\xed\xb5\x4f\x89\x1f\x96\xcc\x11\x53\x2c\xfd\x85\x14\xd7\x3c\x37\x4b\xc3\xd7\x98\xde\x16\x2f\x89\x19\x3c\x46\xc5\xb7\x63\x57\xae\x4d\xa8\x09\x09\xca\x04\x95\x2b\x9c\x61\x66\xc5\x2d\xbb\x34\x81\x28\x1e\x2f\x4a\x7a\x79\x9b\x85\xbb\xc6\xb4\x04\x71\x17\xd9\x3e\x94\xac\x3a\xc7\xa6\x34\x41\x26\x13\x4c\x71\x19\x7e\xdf\xe3\x0c\x6c\xfc\x53\x44\x4a\x48\xe1\x08\x67\x16\xdb\xf4\x38\xa7\x10\xfa\x24\x4b\xb4\x97\x42\xd9\x5f\x24\x0e\x64\xe1\xe6\xbc\xd4\x62\xc8\x53\x13\x72\x11\x96\x55\xfc\xda\x04\x7b\xc9\x9b\x19\xbe\x2e\x19\x9d\xdb\x15\xc8\xd3\x92\xba\x2f\xb4\x25\x56\x88\xa8\xed\xba\x00\x12\xfe\x17\xc0\x88\xff\xd9\x01\x2b\xfa\x9c\x00\xb3\x0a\x45\xce\x06\x99\xd8\x89\x7d\x21\x13\xaa\x26\x61\xb6\x58\x11\xa6\x17\x52\x47\x27\xed\x15\x6b\x21\x38\xe0\x8f\xb5\x1a\x15\x26\xb2\xca\xbc\xb1\xee\x6e\xe8\x4c\xc4\xcc\x64\x13\xc4\x6c\x02\x6b\xb5\x10\x62\x00\x84\xe1\x62\x8d\x80\x03\x44\x44\x09\xda\xc0\x88\x16\x6b\x4d\x9c\x7b\xad\x55\x2a\x54\x97\x6c\xda\xf8\xc0\x01\x85\x4a\x92\x22\x05\x81\x25\x8b\xb2\x48\x58\xc1\x7d\xec\xc9\xd3\xf0\x09\x8d\x66\xb6\xa9\x28\x18\xd9\x8d\x46\x03\x03\x19\x2f\xb2\xc2\x50\x81\x19\xb1\xd8\xe7\xe9\x83\x7f\x53\xc9\x9a\x34\x9c\xa1\x03\xcc\xcb\x61\x60\x69\xf3\x4d\xd7\xdc\xe6\xe3\x87\x6c\x8c\x70\x63\xe6\xcf\xed\x05\x00\xe2\x6f\x0c\xe4\x05\xd9\xaa\x30\x75\x17\xb6\x68\x99\x1d\xd6\x5c\xd0\x98\x90\x20\xb0\x1d\x20\xcd\xad\xc8\xc4\x0e\xf7\x9d\xfb\x7b\xda\xe0\x3c\xc1\x0e\x80\xb6\xc9\x89\x04\xee\xf7\xf6\xc0\x9d\x32\xb9\x20\xa2\x74\xa1\x9e\x45\x07\x78\x40\x87\x03\x36\x54\x76\xa5\x3e\x0a\x25\x74\xad\x26\x6c\xdf\x10\xa2\x03\x7f\xb8\x27\x34\xb4\x7c\xf0\xfd\xe4\x76\xed\x7e\x24\x4a\x61\xc0\x8b\x36\xc8\xc0\xaf\xd7\x87\xc8\x59\x2e\x57\x2c\x49\x53\x6d\x60\x12\xb0\xe7\x45\x10\xf9\xac\xd7\x31\x31\x0c\x53\xea\xea\x63\x74\x40\x6b\xa8\x86\xef\xef\x1d\x8f\xc8\x67\x4e\x23\x61\xad\x06\x31\xb8\xbf\x77\xa4\x22\x75\x5a\xac\xee\x63\xfb\xb8\x5f\x77\x3d\x76\x80\xfb\xfc\x17\x61\xa5\xee\xdb\x30\x55\x52\x09\x65\xf3\x56\x41\x82\x1c\x18\x95\xd2\xb8\x6f\x92\xab\x2f\x4c\xb9\x6b\x3e\x38\x10\x8f\x14\xf9\x75\x02\x49\x0d\xd1\x26\xa7\xe0\xa8\x86\xe8\x96\xed\xd7\x09\x00\x29\xed\xfb\x26\xed\xc7\x19\xda\x8f\x11\xb3\x63\x58\xab\xf9\x8a\xf6\x63\x54\x8b\xc1\x01\x8a\x45\xc9\xf1\x6a\xc9\x31\x2f\x79\xc9\x87\xf9\xc0\x4d\xc6\xb6\x69\x87\x75\x17\x64\xb4\x69\xbc\x7b\x92\x3e\x29\x92\xbd\x4d\xec\x9b\xfa\xaf\x7d\x36\x6d\xc4\x3f\x53\x66\x53\xe0\x51\x81\xc9\x59\x0e\x93\x0a\x33\x05\xf8\x50\xe6\xdb\x66\x27\x48\xb5\x9a\x42\xd1\x3e\x11\x53\xd7\xa6\x28\x44\x04\x78\x36\x3d\x90\x6f\x04\xc0\x70\x9f\x08\x06\x41\x80\x89\x1d\x62\x62\x27\xca\x60\x27\x42\xcc\x8e\x60\xad\x46\x14\x76\x8c\x5a\xa2\x03\x14\xa9\x5a\x22\x51\x8b\x7c\x8b\x78\x2d\x91\xa8\x25\x02\x89\x79\xe2\x80\xc2\x70\xa8\xad\xe5\xaf\x73\x81\x5e\x65\x30\xbf\xb9\x4f\x19\xf1\x03\x79\xbd\xa0\x49\x9d\x76\xbb\xa5\x5c\xb9\x2f\x42\xe4\x68\x27\x12\x3d\xf7\xb3\x99\x37\x34\xaf\x4c\xb8\x23\x72\xf6\xc2\x7d\x95\xbb\x5a\x0d\xf7\xdb\xad\xbd\xb0\x56\xd3\xf9\x09\x62\x83\x70\x08\x23\x84\x6b\x04\xfa\x48\x0c\x8c\x7f\xc9\xf9\xdb\x7e\xf2\x4c\x40\x1f\xd7\xed\xa8\x4e\x80\x47\xf8\x5f\x0c\x36\x7c\xe9\xa5\x5c\xab\x0d\x91\x0f\x20\x46\x51\x12\x49\x4b\xb8\x2e\x27\xad\xa5\x35\x57\x3c\x4b\x57\xad\x93\x89\xad\xeb\xc5\x45\xed\x56\x57\x4d\xa8\x4f\xa1\x9e\x0f\xe4\xc0\x91\x3a\xfd\x08\xe1\x41\xbd\x4e\x86\x7b\xe4\xc0\xe1\x0d\x40\x11\xa4\x2a\x09\x46\x88\xd5\xf8\x4c\xa2\xbc\x85\x0c\xc0\xcd\x10\xec\x01\x05\x18\xee\x3b\xd5\x2a\x1e\x90\xba\x3b\xe4\xac\x29\x3c\x48\x5e\x0f\x1c\x20\x06\xad\xb5\x15\x42\x86\xa2\x1a\x85\x14\x21\x56\xe7\xc3\x17\x21\x96\x1a\x97\x46\xab\x8a\x57\x4d\xdb\x7c\xb4\xae\xd7\x2f\x4d\x72\x45\xaa\x56\xa5\x5b\x4f\x08\xd6\xaf\x49\x7c\xf5\xc9\x2c\x47\x32\x1b\xd1\x8d\xa9\x19\x0b\xd1\x65\x51\x5b\x92\x82\x1f\xcf\xe9\x44\x0d\x82\xd9\x01\xc1\xed\xe4\x7b\xda\x0a\xfe\x41\x7b\x42\xdd\x66\xfc\xaa\x4d\x4a\xc6\x90\xa1\x13\xc1\xa4\x55\x2c\xea\x42\x13\x4b\x82\x63\x79\x84\x73\x77\x21\xe4\x9e\xd0\x53\xe6\xa1\xca\xcb\x60\x09\x2f\xde\xe1\x5b\x9d\x28\x4c\xc3\xe5\x64\xc4\xe9\xf4\x17\xd3\x49\x60\x2b\xb9\x11\x82\xc2\x50\xf8\xe6\x19\x2b\x5c\xea\x6f\xfa\x5e\xbb\x4a\xe5\xfc\x4e\x2b\xa9\x7b\x96\x01\x22\x9d\x1c\x58\x0e\x88\xa7\x1e\x25\x2e\x57\x6c\xd5\x39\xab\x92\x71\xc3\xba\x49\xcb\x53\x88\xbb\xc8\x78\x59\xfe\xfd\x20\xae\x42\x2b\x29\xda\xf8\x20\xd3\x47\x61\x24\xe3\xb8\x56\x49\x5d\xd4\x8e\x52\x90\xc7\x63\x23\xa1\xde\xf7\x76\xd2\x13\x2c\xdb\xce\x96\x90\x6a\x72\x0e\x11\x5f\x1e\x92\x43\x39\xd1\xa4\x10\xf4\x45\x44\x69\x3b\xe4\xeb\x46\x52\xd0\xd1\xaf\x2a\x48\x04\x98\x65\x76\x08\x29\x80\xe6\x89\xce\xcd\x47\x94\x2a\xb8\x89\x2c\x99\xca\x58\x2e\xa2\xfb\xa1\x08\x26\x97\x94\x7c\x62\xa0\x49\x9d\x2d\xe3\x22\x03\xe7\x3e\x6e\x24\x8c\xd3\x93\x06\xee\xa7\x45\xc6\x96\xd8\x90\x2c\xce\x6c\x0c\x85\x54\xa7\x3f\xfe\x64\x63\x78\x0a\x4f\x39\xc5\x26\x40\xaf\x8b\x80\x52\x06\x91\x83\xfe\x4a\xa8\xc3\x1b\x8d\x06\xcd\x15\xca\x32\xf8\x3a\x2c\x06\x33\x8a\xcd\xc2\x3f\x2b\x6e\xe9\x9b\x4c\xdd\xef\x1e\x68\x69\x16\xfa\x8d\xba\xf2\xdd\xe5\x18\x2d\xbd\xe0\x62\xbc\x90\x51\xfe\x70\xe5\x9d\x79\xd9\x31\x1e\x38\xc3\xb4\xa8\x9f\x52\xaf\x40\xbd\x79\xd6\x9f\xb0\x0c\x77\x4e\x26\x76\x74\x80\xb4\x7d\xad\x96\x85\xa8\x4d\xb4\xcb\x95\x2f\x18\xf2\x2d\x8c\x51\x38\x88\x6a\xb5\xa1\xe0\xcc\x81\x66\xf9\x6a\x01\xe7\xf3\x91\xa4\xcb\x62\x6c\x33\x58\xab\x05\x90\x70\x59\xdc\xd7\xfe\x58\xb4\x9f\xdc\xdd\xe1\xf9\xca\x09\x8b\x8b\xcb\xcb\x94\x23\x32\x48\x39\x47\xf4\x81\xaf\xbc\xad\xb0\x4d\x61\x94\x5a\x95\x33\xdb\xe7\x82\x3e\x54\x92\xeb\xf3\x62\xc9\xd5\x58\x24\x18\xe4\x3b\x04\x51\x4b\x4a\x5d\xc7\xc9\x70\x14\x1b\x4b\xac\x7a\xe8\x16\xdb\x4c\x48\x3f\x6c\x6d\x18\x21\x80\x2f\x03\x6c\x81\x0d\x8c\x32\x7b\x1e\x8e\xb2\x01\x45\xa4\xe1\x0f\x11\xe3\xab\xac\xcb\x65\x2f\x85\xf2\xfb\x7b\x7d\xb6\x7f\xe0\xa6\xd3\xf2\x2d\x09\x59\xbb\x95\x59\xed\x44\x17\xd1\x41\x2a\x82\xa6\xf9\xfa\x36\x43\x4c\xee\x21\xd0\x01\x56\x9b\x09\x00\xc3\x46\x1c\x51\xa6\x9d\x9e\xef\xd2\xf1\x12\x4b\x3a\x4b\xc5\x2f\xc9\xa8\x6d\xd2\xf0\x81\x1d\x0e\xf0\x10\x86\x03\x3a\x14\x5e\x06\x89\x0b\x03\xe7\xc4\x5c\x40\x54\xfb\x2a\x6a\x96\xce\x9b\x65\x16\x41\x79\x11\x54\xec\x84\x00\x7c\x2e\x5c\xed\x12\x07\x17\x99\xc9\x9c\x41\x2f\x13\x1b\x73\x01\x22\x90\xa3\xbb\xd6\x3f\xb6\xbf\x52\x9f\xa1\x3d\xc0\x90\x0d\xa1\x58\x35\x73\x15\x32\x18\x26\x4e\x27\x32\x85\x77\x19\x78\xc7\xf6\x99\x78\x12\x79\xe9\x10\x0e\x42\x18\xf1\xbc\x4c\x50\x55\x3e\x47\x08\xd4\x66\xd1\x1e\x60\x0e\x85\x25\x91\xbd\x42\x39\x73\x6e\xf8\x02\xbd\x92\x26\xdd\xf0\x17\x64\xbf\xe2\x59\x60\x01\x3f\x2b\x50\xdb\xf2\xd5\xec\x2d\xa2\x76\xcf\x50\x0f\x3c\xd5\xdd\x17\x12\x4f\xb2\xbf\xd4\x92\xad\x6a\xe2\xdb\xc6\x25\x50\x80\x42\x9a\x44\x08\x85\xf7\xf7\xc2\x47\xf1\xfe\x7e\x93\xc4\x2f\x48\x48\x18\xb6\x89\xde\xa9\x0a\x5c\x6d\x90\x03\xa7\x6f\x63\x29\x10\x4f\x82\x88\x2f\xd2\x4d\x02\xb6\x08\x64\x32\x6d\x84\x49\x60\x33\x91\x04\x3c\xc2\x05\x4c\x0d\x2d\xbe\xe0\x2d\x02\x9a\x09\xb0\x2c\x80\x89\x34\xbe\x9b\x26\x4b\x81\x9e\x2f\x8a\x78\x79\x5a\x86\x78\x0a\xa2\x2b\x5b\x38\xc5\x34\xc5\xeb\xab\xe3\x16\xa8\xb9\x4b\xf8\x4d\xfe\x06\x71\x8c\x4e\x21\x43\x33\x48\xd1\x17\xa6\x5d\x13\x01\x77\x72\x08\x48\x2c\xf7\x12\x04\x88\x03\x4f\x63\x7a\x10\xa5\x8c\x89\x84\x7b\x1b\xd1\xd6\x32\x81\xb1\xcd\x8f\xa5\x67\x45\x84\x9c\xbd\x68\x3f\xde\xab\xd5\x22\x10\x0c\xa2\x21\xc2\x36\x19\x44\x43\x18\x41\x22\x8b\x58\x20\x66\x07\x00\x8e\xd0\x62\xe0\x0c\xe1\x18\x2d\x06\xee\x10\x4e\x11\xb5\x03\x38\x82\x63\x19\xb7\x2e\xdb\x9c\x29\x48\x59\xdf\x18\x52\x54\x9b\x8a\xa9\x83\x10\x9a\x55\xab\xf6\x60\x04\xc7\x43\xf4\xd4\x1e\xc1\xb1\x0c\x32\x30\x4d\x07\xd5\x07\x3a\x79\x30\x4d\x35\x1d\x07\x68\x2c\x82\x08\x1f\xa0\x71\xb5\x2a\x8a\x49\xcb\x37\xe9\x41\x66\xdd\x48\x46\x1f\x0b\xa3\xa3\x03\xa7\x3f\x46\xb6\x31\x64\xe3\x26\x06\x35\x17\x6c\x61\x0f\x8b\x21\xd6\x5f\xc5\xf8\x8c\xb7\xea\xe2\x6b\xb3\xce\xc5\x1a\xe1\x8a\x3d\x95\x7a\x94\xa5\xb6\x40\x9a\xa0\xc4\xcd\x6e\x3a\x70\x86\xfb\x68\x64\xb8\xdb\xc1\x7a\x7d\x22\x89\x76\x3a\x98\xf0\xb6\x8f\xf9\x47\x51\x80\xf8\xc4\x0b\x98\xc3\x6b\x63\x1c\x26\x35\xd7\x1c\x09\x34\x11\x43\x61\xcf\xd1\x35\x1f\x8d\xc1\x10\x34\x6e\x1c\x14\x1d\x38\xfd\xe9\x20\xaa\xbb\x43\x6f\x04\xe7\x8d\x1b\x17\x45\xfb\x13\x9e\x32\xf4\xc6\x2b\xc3\x38\xda\x47\xb6\x8f\xf8\x60\x82\x6a\xd5\xdf\xe7\x58\xbb\x1e\x28\x44\x85\x8d\x31\xb0\xa7\xd0\x87\x0e\x9c\x80\xa1\xf6\x49\x8c\x52\x93\xac\xeb\x65\x72\x74\x2c\xf8\x79\x4a\x93\xe9\x82\xb2\xe2\x03\x62\xe3\x22\x75\x15\xeb\x33\xef\x17\x9b\x01\x48\xb8\xa0\x03\x49\x63\x1c\xcd\x7c\x12\x16\x4d\x90\xd5\x12\x8b\x15\x60\x7d\xec\xfd\x62\x0f\xf8\xa2\x0e\xf1\xc0\x1d\x0e\x45\xd9\x8c\x97\x9d\x9c\xc1\xc5\x8f\x2b\x9f\x96\x95\x9f\xa5\x65\x0c\xfa\xbf\xd8\x2f\x94\x4f\x14\x00\xde\x2f\x36\x16\x75\xd2\x25\x24\x4b\xf8\x19\xa2\xb6\xeb\x00\xf8\xf3\x8a\xef\xdf\xca\xc4\xb7\x69\x9d\x81\xa6\xdd\xda\xb2\xd5\x48\x7c\x26\xb9\x6c\x63\xbb\x0b\xea\xb9\xa4\x56\x17\x80\x2d\x91\x75\x1e\xbd\x17\x9c\x02\xd6\xdd\x66\x5b\x84\xa4\xff\xf6\xd1\x55\xb5\x1b\xdd\xad\xb9\x8d\x4b\x4b\xfa\x9c\x37\x7e\xd7\x60\xbd\xdf\x65\xf5\x57\x42\x2d\x58\x77\x4b\xb5\x35\x4a\xa9\x52\xab\x11\xb5\x25\x11\xba\x92\xfd\xe8\xfe\x3e\x55\xa8\x54\xab\xd1\x01\x8a\xa4\x04\x1d\x71\x26\x69\x84\x37\x78\x58\x31\xf3\x70\x61\x5a\xde\x4e\x97\xcf\x2f\x33\xea\x65\xa1\x1c\x2c\xde\xc7\xaf\x28\x9b\x52\x05\xb1\x5d\xab\x51\x18\xd6\x74\x6b\x3f\x54\x9f\x14\xa1\x5a\x04\xa4\x22\x49\x15\x14\x09\xe5\x1a\x4d\x3c\x54\x9b\x52\x3f\xf6\xfb\x75\x0e\x7a\x09\x35\x74\xb3\x76\xad\x5f\x1b\x64\x6d\x70\x7c\xfd\x7d\x4b\x9b\x76\x1a\xa2\x28\x06\xb7\x04\x07\xe3\x2d\xb6\xe4\x34\x2c\xaa\xfe\x03\x1f\xfc\x96\x31\xf8\xdf\x7f\x8a\xc1\x3f\xf8\x94\x83\xff\x60\x61\xab\x83\x8f\x45\x18\x0d\xc4\x70\xaa\x3e\x19\x48\x09\x3d\x84\x04\x6d\x9a\x32\xba\xaa\x9c\xa4\x37\xe8\xd9\x21\x17\xad\x61\x88\x22\x0e\xeb\x6c\xac\x1e\x11\x30\x6c\x8e\x93\x90\x29\x04\x32\x29\x46\xd4\x6e\xf5\x00\x0c\xf9\x43\x7b\xdb\x40\x2b\x91\x2d\xe2\x22\x55\x82\xdb\x4d\x57\x0b\xbd\x5a\xae\x93\xdf\x22\xa3\x79\x4a\x39\x9c\x6a\xd6\x6c\x1f\xec\xd9\x61\x3f\x2b\xa2\x45\x60\xdf\xf1\x38\x7a\xb2\xc9\x0a\x81\xc8\x87\x11\xc2\xc2\x47\x1b\x2c\x97\x09\xea\x33\xba\x56\x3b\xec\x33\x9b\x40\xaa\x0b\xe2\x2f\x44\x65\x27\x32\x6b\x01\x22\x22\xa3\x57\xf9\xae\xe8\xe3\x7d\xa9\x1e\x36\xe8\x29\xca\x6e\x92\x88\xa6\xa0\x08\xda\xe1\xbe\xd3\x4f\x6b\xf7\x74\x8b\xd2\x66\x44\x45\xa3\xed\xff\xc6\xb8\x3d\xf8\x54\xb8\x3d\xf8\x10\xdc\xc6\x0f\xe3\xf6\xbb\x5f\x8d\xdb\x83\x87\x70\x1b\xe0\xac\x16\x52\x8e\x78\xda\xde\x7d\xa7\x2f\xe7\xa6\x52\xf5\x2f\x30\x1a\x61\x29\x47\xc9\x4b\x5c\x8d\x39\x30\xc2\x45\xdb\x00\x06\xb3\xa6\xdc\x40\xb1\xd9\xb0\x6e\x53\x54\xa3\x52\x26\xda\x23\x7b\xe9\x26\x10\xdb\x60\x8b\xd4\xeb\xf7\x0e\x8c\x10\x1b\x90\x1a\x1d\x6e\xc8\x3f\x88\x0d\xc2\x1a\x1d\x42\xf9\xc7\x50\x5c\x9b\x87\x46\xf8\x03\xce\x1d\xb5\x72\xd7\xa6\x35\xf4\xc1\xaa\x5d\x9e\x29\x51\xec\x56\x24\x7a\xa6\x38\x23\x95\x70\x99\xd9\x4e\x4d\xd7\x93\x5d\x4a\x7a\x77\x06\xe3\xa3\xaa\x9d\xdd\xed\x3f\x48\xda\x9b\x60\xce\x9e\x52\xd1\x91\x82\xbd\x5a\x8d\xed\xd3\xbd\xd4\x44\x5f\x50\x02\xf4\x65\xc4\x83\x14\x92\x70\xc8\x68\x9f\xec\x01\x5f\xc8\xf8\x83\x68\x38\x60\xc3\x74\xdc\x8d\x43\x2c\x9c\x31\xac\x56\xa7\xa0\x42\x6c\xc5\x05\xc1\x9d\xa6\xd8\x2e\xb4\xda\x9f\xe1\xb5\xee\x17\xc5\x0a\x04\x86\x63\x96\xfa\x55\x24\xd9\x14\xa5\x67\x49\x5c\x8d\x14\xc7\x24\xe7\xdc\x7c\xa1\xc5\x1a\x8f\x9b\x5a\x4d\xbe\xe9\x18\x86\xd8\x7f\xba\x16\xad\x36\x48\xaf\x26\x9b\xae\x71\xe6\xf0\x49\x1b\x94\x5f\xef\x0a\x19\x42\x4a\xa7\xc9\xb2\x47\x8a\x78\xd0\xe5\xda\xa6\xfd\x6a\x7d\xd0\x07\xf5\x78\xe6\xcf\xe7\xf2\x86\xda\x95\x3e\xaf\x4a\x41\x18\x8a\x33\x03\xa9\xd2\x10\xf3\x31\xed\xd4\x6d\x72\x77\xcd\x07\xd5\x2f\x6d\x52\x8a\x1b\x90\x70\xa6\x15\x8c\xd8\x2a\x98\x12\x8c\xa0\xaf\xe4\xa8\xfc\x1e\x64\xbf\x2d\x5a\x62\xdf\x8d\xa3\x10\x7b\x44\x19\xf8\xd3\x25\x0a\x1b\x21\xbe\x61\x36\xe0\x1b\x0d\xd9\xc5\xbd\x5a\xcd\x17\xfb\xcf\xbd\x1c\x74\x64\x42\x6f\x92\x3d\x40\x91\x50\xe6\xa8\xb3\xdf\x82\xa1\xbd\xc0\x8a\x01\xfd\x16\x03\x5b\x30\x20\xa0\xa1\x8c\x75\xcc\x38\x33\xef\x71\xa2\x72\xc4\x82\x4b\x9d\x4a\x95\x68\xee\x48\xc3\x14\x38\x85\x20\x4b\x41\xa2\x7d\x67\x86\x13\x51\x7a\x66\x90\x5b\xb5\x58\xc1\xb8\x28\x0e\x7a\x8a\xd9\xea\xfc\x10\xa1\x64\x84\xd6\x9f\x18\xbc\x44\x44\x2c\x84\x12\x7c\xcf\xbe\xd3\x8e\x18\x62\x20\xd8\x12\x51\x3d\x00\xd5\xea\x26\x93\xf6\x0c\xea\xa4\x87\xc4\xe2\x4e\x86\xb4\xa4\x50\xc7\x00\x5c\xae\xf2\xa7\x9b\x0c\xe3\xad\x18\x3e\x75\xa7\x98\xf5\xe5\x81\x90\x44\x93\x71\xe6\x50\x8c\x47\xa8\xd5\x9f\x37\x18\x6c\x60\x6f\xe5\xa0\x68\x45\xf3\xc9\xb9\xa8\xec\x37\x05\xe0\x2e\xc1\x31\x15\x14\xce\x48\xb8\xc0\x15\xbc\x5c\x45\xf7\x69\x0e\xdd\x45\xd3\xa0\x1c\xdd\x2c\x8b\x6e\x5d\xd3\xa3\xd1\x2d\x51\xcd\x52\xec\x8a\xd2\x24\x82\x61\x6e\x04\xc4\xc5\x51\x45\x58\x3f\xcb\x88\xf4\xbc\x47\x0c\x9a\x18\x7e\x8d\x73\x66\x39\xab\x9d\x59\x41\x2a\x96\xa4\xca\x54\x5b\x36\x52\x69\xe4\x21\x5f\x84\x35\x0e\x3d\xfe\x83\x8e\x23\x71\x6a\x81\x95\xda\x62\x74\x1d\x00\x89\xf1\xee\x0a\x9b\x9e\xf4\xbd\x95\xb7\xcc\xd2\x31\x4b\x7c\x64\xb3\x3a\x56\x1a\xca\x99\x7f\x63\x3b\x90\x02\x18\x9b\xba\xcf\x54\x97\x99\x28\x32\x79\xf1\x01\xf2\x9b\x89\xca\xc1\x75\x60\x7a\x6f\x61\x7c\x80\x9c\xbe\x1d\x1c\xa0\xb0\xef\x3a\x5e\x70\x80\x48\xbf\xcb\xff\x44\xfd\x96\xe7\x1a\x7a\x0a\x91\xc9\xab\x9b\xef\xf5\x18\x34\x4b\x73\x66\x8c\xb8\xcc\x2e\x24\xe6\x0e\xe5\x5d\x51\xe5\x3f\xd8\x2d\xd9\xaf\x58\x77\x45\x34\x25\xde\x42\xba\x35\xf1\x16\x92\x0d\xaa\x56\xed\x78\x0b\xb5\x00\x14\xf6\x42\xb1\x17\x2f\xf3\x0e\x84\x99\xa8\x30\x30\x86\x81\x5a\x1f\xb8\xd4\x0b\x6d\x8c\x6a\x18\x20\x64\x33\x54\x63\x7c\x95\x3e\x70\x12\x15\xb6\x30\xc4\xb2\x43\xc4\xf6\xb1\x34\x68\xc3\x10\x23\xc6\xf7\x0a\x00\x72\x31\xd6\x8e\x91\x1e\x42\x60\x6a\xc1\x63\x43\xbe\x24\x13\x3b\x3e\x70\x04\xb1\x66\x54\xdb\xcd\x18\xe4\x14\xdb\x4d\x71\x9b\x8d\x21\x42\x9a\x3a\xf2\x3a\xae\xb9\x80\xcb\x94\x01\x97\x29\xa3\x41\x30\x44\x36\xae\x05\x60\x2b\x4e\xb7\xf8\x31\xaa\xc7\x30\xab\x3f\x5f\xa9\x64\xeb\x63\x2a\x49\x47\x21\xac\x56\xa3\x74\x7d\x81\xd1\x43\x33\x2c\xa1\x93\xcc\x15\x63\x59\x77\x5b\xc3\x23\x37\x8d\x3d\x14\x4a\xdf\x64\x3a\x08\xc5\x66\x63\x98\x2e\xac\x0f\x7b\xe1\x15\x8d\x3f\x2e\xf6\xe7\x45\x54\x5e\x14\x6e\xf8\x09\x3f\x8e\x67\x14\x73\x04\xd3\x81\xef\x61\xae\x52\xec\x26\x18\x67\xec\x3a\x3b\x60\xc5\xc1\x3a\xbf\xaf\x4b\x35\x92\xb8\x46\xb7\xcc\x2d\x58\x64\x22\x9d\xd5\x71\x6a\x3b\xc6\x8b\xa2\x07\xee\x8e\x73\x7f\x4f\xf7\xeb\xee\x8e\xd3\xa7\xf5\x76\xcf\x91\x1c\x81\x46\x8b\x70\x6c\xd3\x66\xbb\xe7\x00\x8f\x02\x2f\xd1\x64\xfb\xc0\x26\xf1\xb1\x7f\x6c\x63\xd0\x67\x9e\xc9\xb5\xfd\x6c\xd0\x22\x39\xa9\xfa\xb1\x67\x6e\x3e\x53\x63\xfc\x3a\xeb\x97\xe8\x54\x71\xca\x23\xc4\xb9\x19\x4b\xdf\x39\x58\x1d\x43\x8a\xdc\x26\x4d\x87\x28\xcc\xaa\x63\x45\xc6\x5a\xb8\x25\xce\xc8\x97\x22\xc2\x2a\x2e\xea\x00\x03\x7d\xea\x31\xd3\x8c\x22\x5e\x8f\xab\x75\x58\x78\x1c\xc5\x3c\xec\x14\x5a\xec\xe8\xf0\xb8\xf0\x1b\xeb\xdd\x46\x2f\x1e\x74\x93\xbc\x79\xd0\x6d\xf4\xe4\x41\xda\x3e\x35\x29\x37\xa3\x93\xb3\xc1\x9d\x72\x99\x6f\x6c\x43\x1f\xb9\xcd\x08\xc6\xc8\x3a\x3f\x8f\xb7\xec\x41\xad\x3e\xec\x9f\x9f\x8f\x6b\x80\xbf\x5a\x30\xc8\xa5\x6f\x9d\x9f\x37\xc4\x77\xbb\xef\x0d\xf0\xd1\x30\x85\xef\xab\x1c\x8b\x0f\xc8\xf1\x57\x32\xcb\x08\x35\x7f\xf8\x9d\x3d\x70\xea\xbb\x7e\x7d\x32\xbc\x6b\xc3\x9d\x25\xf8\xac\x09\xc7\x82\x31\xbe\xc1\x57\x47\x37\x73\xdb\xfa\x81\x5e\x5d\x9e\x9f\xdb\x56\x6d\x10\xc3\x18\xc6\xc3\x9a\x75\x7e\x0e\x3e\xb3\x00\x9c\x96\x80\x2d\xe0\x02\x2e\x52\xb0\xc9\x0a\x98\x6f\x14\x07\x83\x14\x72\x5e\x06\x29\x4a\x34\x21\x67\x59\xc8\x69\x1c\x48\xc0\x20\x5b\xf5\xf5\x0a\x98\x6f\xc0\x99\x05\x5e\xa1\x3b\x3f\x20\x23\x7c\xc9\x65\x3e\xb7\xbb\xbd\xdb\x6a\xef\xb4\xa1\x1f\x32\xf2\xf3\x02\xbf\x9f\x12\x86\x3d\xb7\xd7\xe9\x74\xda\xdb\x5d\xe8\xff\xbc\xf0\xbd\x5e\xb7\xdb\x96\x8f\x33\x9f\x92\x10\x7b\x3b\xed\x9d\x9d\x6e\xaf\x03\xfd\x5f\x16\x54\x16\xd1\x71\xb7\xbb\xf0\x12\x93\x2b\x9e\xd7\x75\x77\x5b\x3d\x07\x5e\x92\xf8\x67\x5e\x43\x6f\x7b\xdb\x69\x75\x3a\xf0\x32\xf0\x47\xef\x3c\x87\xff\x0d\x47\x53\x3c\xf6\x83\x59\x14\x8e\xc5\xf7\x96\xd3\xe9\x42\xd1\x9e\x56\x57\x3e\x5c\x93\x28\xc0\xcc\xdb\x75\xba\xdd\x96\xd3\x82\x97\x34\x7a\x1f\x7a\xae\xb3\xd3\xea\xb4\xda\x1d\x78\xb9\xa0\xc1\xed\xfb\x28\x1a\x7b\x6e\xa7\xbb\xdb\x6b\xb5\x5d\x38\xf2\xc7\x98\x89\x22\x7a\xad\x5e\xaf\xdb\xda\x81\xa3\xa9\x4f\x19\xc5\x8b\x58\x36\xb8\xdd\x6d\xc1\xd1\x34\x1a\x45\x81\xcf\x7b\xd8\xde\xde\xd9\xed\x6c\x3b\x70\x14\x51\x3f\xe0\x8d\xe8\x74\x5a\xdb\x2d\xfe\x1a\x4e\x82\xe8\x3d\xa6\xb2\xac\xee\xae\xbb\xbb\xe3\x8a\xe4\x98\x04\xef\x44\x6b\xbb\xed\x9d\x1d\x38\xa2\x64\x16\x47\xa1\xe7\x76\x3a\xad\xb6\xeb\x38\x70\x74\xeb\x87\x0a\x55\x63\x9f\xbe\x93\xd8\x6d\xef\x8a\x17\xf1\xad\xdd\xdd\x6e\xb5\xc5\xeb\x55\x14\x8c\x71\x48\x79\xf3\x5b\xce\x6e\x6b\x57\x41\x5d\x51\xff\xd6\x73\x5d\xd7\xdd\x75\xdc\x6d\x95\x82\x71\xe8\xb5\xba\x3d\xc7\xd1\xef\x39\x88\x77\x53\xff\x1d\xf1\xdc\x56\xa7\xdd\x6e\x75\x65\x31\x33\xff\x0a\x87\xcc\xf7\x76\x5d\x67\xb7\xd7\x91\x35\x46\x01\xb9\xc6\xb2\xb4\x6e\x77\x77\x7b\x77\x57\x82\x46\xc2\x2b\x4a\xf4\x7e\xbb\xdb\x72\x54\xda\x68\x4a\xc6\x9e\xeb\x38\x1d\xc7\x71\x5b\x22\x8d\xe2\xb1\x28\xae\xeb\x74\xc4\x7b\x2c\xc6\xce\x73\xbb\x6d\x67\xa7\xe3\xca\x7c\x31\xf6\x65\x05\xbb\x1d\x77\x77\xd7\x95\x15\xc4\x1c\xd9\x02\x15\x9d\xed\x76\xa7\xdd\xd9\x4e\x53\x45\x6f\x39\xe6\x3a\xbb\x5d\x33\x15\x67\x53\xd9\x82\xfe\xbc\x88\x48\x8c\xbd\x6e\x6b\xb7\x23\xd3\x34\x71\xf4\x76\x77\xbb\x1c\x77\x18\xcf\xe7\x24\x14\x83\xe3\xf6\x76\x79\x25\x18\xcf\xe3\x77\xb7\xb2\xe2\x5d\xb7\xeb\xc2\x31\x99\x89\x0a\x7b\xbb\xce\x4e\xab\xd7\x95\xef\xd8\x78\x8f\xc6\x57\x6a\xcc\x5b\x8e\xd3\x76\x77\x77\xe1\x84\x50\x7c\x49\xc9\xe8\x9d\xe7\x72\x04\xb9\x9d\x1e\x9c\x04\x9c\x5a\xf4\x1c\xd9\xde\xee\xee\xb6\x1c\x38\x89\x28\x8e\x99\x1a\xaa\x56\xaf\xbd\xd3\x69\xc1\xc9\x62\x34\x8d\x89\x2f\x5a\xe4\xee\xb6\xbb\xf0\xca\x27\x61\x7c\x19\xd1\x88\x13\xcc\x76\xa7\xd3\x73\xe0\xd5\x34\x8a\x99\x2e\xab\xed\xf6\x7a\xdb\x2e\xe4\x94\xc1\x33\xf5\x7a\xdb\x2d\x07\x1a\x74\xd2\x69\xb7\x76\x5d\x9e\xc4\x3b\xb1\xd3\x69\xb9\x7c\x28\x64\x9d\xed\xd6\x76\x6f\x47\x3e\xdf\xe2\x20\x88\xde\x7b\xae\xdb\x71\xda\x4e\xb7\x0b\x45\x17\x35\xf4\x34\x0a\xf1\xed\x18\xbf\x57\x13\xb6\xe7\xc0\x69\xc4\x34\xde\xda\x3b\xdb\x1d\x07\x92\x70\x4c\xfc\x90\x8f\xb6\xdb\xee\x74\x77\xba\xad\x8e\x48\xba\x8a\x04\x16\xdb\x6d\x07\x92\xeb\x88\xde\x8a\xbe\x6f\xb7\x1c\x07\x2a\xf2\xeb\x6e\xef\x6c\xf7\x7a\x0e\x0c\xfc\x6b\x1c\x8e\x31\xf5\xdc\xae\xdb\x6e\x71\xca\xd0\x29\x97\xc1\x22\x9e\x8a\x7c\xed\x76\xaf\x0b\x03\xff\x7d\x28\x5b\xbf\xe3\xee\x3a\xbb\xdb\x3d\x18\xe0\x59\x14\x8e\xa6\x64\x32\xe1\x84\xc5\x71\xbb\xb3\xd3\x85\x01\xb9\x9a\xca\x59\xed\xba\xed\xdd\x76\xab\xdb\x91\x49\x6a\xd6\x76\xb7\x7b\x6e\xb7\xdd\x53\x69\x7c\x92\xb9\x9d\xed\x4e\xb7\xbb\xbb\x2b\x93\x12\x04\x6a\xc4\xf4\x3a\x9d\x9d\x16\x6f\x96\xf8\x2a\xe6\x5b\x7b\x67\xa7\xd5\x6e\xb5\x75\x92\xa4\xe0\xdd\x9d\x56\xb7\x97\x24\xe5\xa1\x34\xd2\xba\x3b\x9d\x9e\x6a\xa3\x9e\x11\xbd\xed\x6e\x6b\xbb\xd7\x52\x89\x7a\x4a\xb4\xdc\x4e\x6b\x67\x57\x55\xab\x09\x73\x67\xd7\x71\xda\x1d\x55\x4b\x3a\x25\xb6\x77\xda\xed\xed\x6e\x3b\x93\x8c\xf3\xc9\x0c\xe3\x40\xa1\xa5\xbb\xc3\xa7\x96\x4c\x4f\xba\xb9\xbd\xbd\xed\xee\xf0\xc4\x19\xe7\x61\xad\x1d\x47\x3c\x2a\x7a\x69\xb7\x76\xf9\x50\x06\x24\xc4\xa1\x40\x49\xb7\xb7\xed\x40\xcd\x36\x12\x92\x9d\xf9\x34\x8a\x42\xc1\x3b\x7b\xce\x0e\x9c\xe1\x31\x59\xcc\x8c\x55\xa0\xb7\xdd\xde\x6e\xb7\x5a\xea\x83\x9a\x3a\x5d\xf5\xaa\xb9\x48\xab\xe5\x72\xca\x56\xa9\xf3\x05\x9d\x07\xd8\xdb\xed\xf5\x5a\xbd\x9d\xb6\x4a\x4c\xb0\xd4\xde\xdd\xde\x71\x76\x35\x6c\xca\x3a\x76\x9c\x9d\xed\xed\x5d\x47\xa7\xcf\x29\x09\xaf\x64\x8e\x5e\xc7\xed\x76\x54\x7a\xca\x28\x3a\xdb\xdb\xad\xb6\xa3\xe1\x25\xb3\x90\x34\xed\x74\xb6\xdd\xed\x36\x9c\x91\x71\x98\x12\x56\xaf\xd3\xd9\x75\x5b\x70\x46\x42\xc6\xb7\x27\x33\xbe\x82\xb5\xdc\x9d\xae\x03\x67\x24\x66\xb7\x34\x8a\xf5\x22\xc6\xb3\x46\xa3\x91\x1f\x93\x50\xa5\xb4\x76\x61\xe8\x5f\xfb\x3f\x45\x09\x4f\xe8\xed\xf4\x76\xba\x3c\xf1\xd6\x73\x5b\x3b\x30\x0a\xc6\x81\x3f\xe2\x5f\x7a\x9d\x76\xb7\xcb\x13\xc8\x35\x16\x73\xb2\xbd\xdd\x93\x6f\x63\xea\x5f\x7a\xdb\x4e\x67\x67\xbb\xbd\x0b\x53\x96\xdc\x6d\x73\xee\x22\xdf\x45\xf3\x7b\xdb\xad\xdd\x76\xa7\x03\x35\x6e\x3b\x6d\xb7\xcb\x87\x7e\xee\x07\xd8\x60\x15\xdd\x5e\x77\xdb\x6d\x3b\x32\x59\xa0\xc9\x75\x9c\x56\x77\x67\x47\x26\xa5\x78\x72\xdd\x6e\x6b\x77\xb7\xd7\x13\xc9\x06\x9a\x3a\xed\x1d\xb7\xe5\xb4\xe1\xdc\x9f\xfb\xb7\xfe\xfb\x29\x99\xcb\x89\xeb\x6c\x6f\xc3\x39\xf6\x47\xd3\xf9\x62\x32\x11\x7d\xdd\xee\x6d\xb7\xe1\x1c\xd3\x05\xe7\x17\xbd\x9d\xdd\x5d\x17\xea\xb9\xd1\x73\x9d\x76\x17\xce\x83\xc5\x8c\xaf\xd1\xad\x4e\xaf\xbd\x0d\xe7\xd1\xfb\xb1\x62\xb2\xae\xcb\x57\x56\xd7\x81\x8a\x24\x38\x95\x6d\xb7\x7b\x90\xe2\x4b\x3c\x1a\xf9\x2a\xb5\xd7\xdb\xdd\xde\xd9\x71\xa1\xea\xbe\xeb\xf6\x76\x1c\x48\xa3\xf8\x56\xc9\x03\xad\x76\x77\xbb\xeb\xee\x42\x1a\xdd\xfa\x72\x3e\x74\x5a\x3b\x3d\xbe\x4c\xc4\xfe\x78\x1c\x60\x09\xb6\xeb\xb6\xb6\xdd\x9d\x6d\x98\xcc\xd1\x8e\xdb\xdb\xd9\x69\xc1\xd8\x0f\xc7\xba\xa4\x9e\xd3\x6e\xed\xf4\x3a\x30\x25\x46\xa7\xeb\xb4\x5b\xdb\x3c\x21\x9e\xe2\x40\x88\x08\xdb\x9d\x5e\x7b\x07\xc6\x04\x87\xa1\xef\xb9\x4e\xd7\xe9\x6d\xef\x6e\xc3\x98\x04\xd7\x9c\xe5\xb5\x7a\xed\x16\xe7\x1a\x99\xf9\xdd\x76\x61\x4a\xc8\xbd\xdd\x6d\xc7\xe9\xa9\x14\x39\xd9\xdb\xdb\xad\xdd\x4e\x07\x1a\xf3\x5c\xa7\x84\x6a\x22\x77\x77\xdb\x0e\xcc\x10\x7d\xb7\xe3\x6c\xc3\x94\x05\x74\x7a\x2d\x67\x77\xc7\x81\x8c\xb3\xbf\x36\x9f\x2c\xfc\x05\xfb\x81\xd7\x6e\xed\xec\xf6\x84\x1f\x09\x0b\xb0\xe7\x76\x5a\x4e\x67\x67\x67\x07\xb2\x68\xe6\xb3\x48\x70\xfd\x6d\x67\xb7\x0b\x8d\x99\xd3\xea\xba\x3b\xdd\x1e\x54\x0b\xac\xdb\xed\xb5\x5d\x67\xa7\x07\xdf\x4f\xb1\xcf\x84\x64\xd7\xe6\x3d\x4a\x17\xc0\xed\x96\xdb\x95\xaf\xf1\x2c\x7a\xa7\x85\xbf\x9d\x2e\x34\x38\x51\x6f\xb7\xe7\xa8\x77\x4d\x8e\x6e\xa7\xeb\x6c\x77\x8c\xa3\xac\xcb\x74\x4b\x21\xef\x5a\xbf\xba\xb4\x41\x43\xc6\xca\xfc\x02\xdf\x98\x7a\xed\xdb\x35\xa0\x6f\xf8\xb3\xa1\x87\x4f\x42\x40\x43\x9a\x68\xb2\x91\x8d\x6b\x96\x05\x1a\x8c\x92\x99\x0d\x1a\x2c\x7a\xc5\xa5\xbd\x67\xbe\xd0\x6e\xd8\x0c\x8d\x1a\xf8\x06\x8f\x6c\x0c\x40\xdf\xa6\x22\x5c\xbd\xb6\xec\x63\x48\xc4\xbc\x7c\x19\x32\x5b\x44\xb1\x77\x7b\x00\xf6\x84\x4b\xd3\x7b\x9b\x01\xaf\x2d\x1e\x85\xee\xd2\x66\x07\x07\x3b\x55\xb7\x7b\xcf\x0e\x0e\x3a\xd5\x56\xc7\x81\xe2\xc1\xed\xde\xb7\x3a\x4e\x95\x41\xdb\xed\x56\x19\xd8\xdf\xef\xdc\xf3\x07\xe8\x02\x6f\x47\x64\x3e\xe2\x19\x5b\x9d\x2a\x97\x82\xd9\xc1\x81\xdb\xd3\x4f\x3b\xe2\xc1\x6e\x75\x79\xbe\x66\xab\xdb\x05\x5e\x27\xcd\xe1\xb6\x54\x5d\x3b\xba\xae\xb5\x95\x67\x6b\x57\xc5\x89\x20\xdf\x9e\xcd\xd0\x38\xed\xbf\xea\x0b\xef\xab\x88\xd7\xcf\x06\xed\x21\x6f\xac\xcd\xd0\x34\x0f\xd5\xea\x76\xb7\x38\x64\x93\xcb\xc2\xf2\xa5\x65\xbe\xb4\xe5\x8b\xcc\x3d\x49\x73\x1f\xe5\xcb\x67\x83\xce\x50\x00\xcd\x4d\xa0\x47\x16\x9f\x64\x9e\xa5\x99\x0f\xd3\x1a\x14\x4c\xa6\x2d\xd7\x8f\x80\x94\xc5\x5e\xe5\x2f\x9d\xc4\xa0\xff\xde\xbe\x1a\xe0\x21\xf0\x94\xa7\xb9\x4f\x71\xc8\x2c\x84\x10\x56\x68\x39\xf6\x8f\xa1\xfe\xdf\x91\x58\x36\xfd\x38\x0c\x77\x06\x01\x8e\x93\x41\xc7\x7a\xd0\xf9\x98\x63\x68\x2a\x60\x8f\x56\x2c\xec\xc3\x7d\x24\x0d\x69\x19\xa2\xe8\xd8\x3f\x06\x50\x15\xa7\xe0\x4c\xdf\x8c\x92\x03\x10\x72\x7f\x6f\x63\x74\x21\xc2\xc8\xeb\xc6\x0b\x97\x56\x31\xbf\x40\x83\x42\xdc\xb8\x82\xb8\x71\x09\x71\x23\x9a\xfb\x23\xc2\x6e\x81\x3c\x2f\xc9\xb8\x67\xe4\x1a\x56\x18\xcd\x9a\xb7\xc1\xcb\x34\x50\x04\xe5\x0b\xfb\xae\x67\x36\x35\x6d\xbe\x74\xf4\xa3\xa8\xa6\x1c\xe4\xae\x50\x8d\xc9\xa7\x4b\x54\xa3\xf2\x49\xb5\x09\xd5\x0c\x03\x8b\xb3\x84\x55\x58\xbf\xb3\x6a\x5f\xd9\xb2\x18\xa0\x9f\xae\x92\xa7\xcb\x8c\x8b\x47\xe6\x7a\x7f\x55\xee\x86\x61\x29\x6e\x63\x94\x68\x83\x5c\xcf\xd0\x78\xcb\x47\x12\xda\x2e\xc4\x00\x80\xbe\xc5\x71\x67\x79\xfc\x8f\x6f\x5b\xa0\x56\x04\xca\x87\xd8\x50\xc1\xa9\x26\x0a\xbf\xb1\x9a\x05\x2b\xd6\xa3\x33\x5d\x7d\x4c\xa6\x4b\x95\x49\xf4\x0b\xf7\x2d\x60\x79\x22\x3f\xae\x59\xc0\xca\x7a\xb2\x24\xc6\xf2\x5a\xa9\xbd\xbe\x78\xe5\xfb\x06\xf6\xdd\x5e\xdf\x72\x2c\xcf\xb2\x40\x0d\x27\x77\x22\xd8\x6e\x6f\xc5\x01\x26\x4f\xd0\xfd\x84\x9c\x3d\xba\x8f\x9c\xfb\x7b\x7a\x80\x5c\x91\xc8\x93\x98\x26\xf9\x84\xdc\xdf\x15\x90\xfb\x33\x75\x10\x9b\x21\xf5\x77\xc0\x98\x73\xef\x6c\xdc\x98\x42\xdc\x88\x21\x6e\x04\x06\x6d\x6f\xe4\x73\x99\x13\x64\x13\x67\x8a\x58\x81\x7d\x97\xbd\x50\x81\xa1\xcc\x4c\xe2\x0c\x17\x0a\x6f\x27\xf1\x14\x22\xdc\xb8\x14\x4f\xea\xd0\x88\x63\x53\x76\x44\x7b\x96\x72\x54\xab\x94\x98\x77\x18\x06\xc8\xaf\x47\x70\x81\x6c\xbf\x16\x81\x66\x2b\x39\x31\xe9\xdb\x31\x62\x7c\xce\xf5\x6d\x5a\x0f\x41\x33\xa8\xf5\xb6\x6c\xba\x1f\x02\x8f\xca\xd4\xb0\xce\x78\x6a\xcb\xb3\x59\x9d\xf2\xa7\x0e\x0c\x9a\x68\xb1\xdf\xe8\xf6\xfd\x5a\xe4\xb5\xea\xbc\xdc\x78\x0b\xf5\x1c\xe0\x05\x68\x71\xe0\x54\xab\x8b\x7d\xb7\xef\x78\xb1\xc2\x71\x0c\x03\xb8\x30\xf0\x94\xf5\x38\x32\xe7\xeb\x34\x99\xaf\x71\x32\x5f\x83\xb5\xf3\xf5\x4d\x4e\x35\xcc\x59\xbb\x8d\xf7\x7b\x4e\x9f\xd5\x84\xc1\xed\x16\x6e\xf6\x1c\x0f\xef\x0b\xed\xb5\x87\xf7\x5b\x9d\xf4\x93\xdd\xea\x38\x75\x0c\x38\x00\x03\xcb\x8c\xea\x16\x5e\xc0\xbb\x51\x34\xbf\xf5\x0a\xac\x96\x33\xc1\x3b\x6d\x71\x51\x78\x2e\x90\x28\x54\x1e\x78\x4b\x38\x26\xf1\x3c\xf0\x6f\xc5\xb5\x16\xab\xba\x50\x43\x1a\x31\x00\x6d\xb0\x84\x53\x7c\xe3\x5d\xc2\x44\x9a\x49\x9f\xe3\xa0\xa0\x9c\x67\xf2\x12\xbd\x46\x02\xc3\x8b\x48\xe4\x1b\xef\x16\xea\x49\xe4\xdd\x26\xf7\x88\xc8\x8e\x9e\xc2\x93\xf4\xfd\x92\x77\xfc\xee\x52\xc4\x52\xc6\xb4\xa8\xeb\x3a\x1a\x2a\xee\xfb\x5e\x6a\xbf\x0c\xb1\x5e\x3d\x64\x87\xb6\x34\xd3\xd5\x0f\x97\xfa\x21\x21\x01\xa1\x94\x79\xa8\x8e\x28\xad\x23\xfa\x98\x3a\xe8\xd5\x65\x09\xd2\x1f\x18\x98\x7a\xa3\xbb\x2f\x79\x39\xad\x56\xe5\xdf\xfd\x56\xb7\xdb\xe8\x56\xab\xe9\xa7\x2b\xf5\xe9\x6a\xf5\xd3\xa5\xfa\x74\xa9\x3f\x39\xfb\x99\xa5\x41\x7d\x56\x6f\xfb\xc8\x95\x03\x7e\x66\x0c\xf8\x99\x31\x7e\xaf\xd3\xf1\x13\xd1\xc5\xcc\x01\x7c\x67\xe8\xd8\x1f\xb5\x94\x3e\xd3\x4b\xe9\xbb\xa2\xa5\x14\x7c\x3a\x6a\x78\x27\x47\x6a\xaa\x26\xb4\x9a\xcd\x9f\x8e\x12\x1e\x5b\x7e\x8e\x0a\x8c\x85\x7a\xfa\x57\xed\x9e\x53\x6b\xf7\x9c\x2d\x55\xd4\xbe\x03\x20\x4b\x56\xea\xfb\x7b\x75\x0c\x24\xca\x07\x7d\xc7\x53\x35\x51\x99\x3d\x80\x21\xa2\x35\x9b\x72\x4e\x48\x3d\xb7\x4e\xc1\x16\x83\x04\xb5\xb6\x68\x3d\xdc\xc8\xc8\x68\x6f\x6c\x7c\x80\x38\xe7\xc1\xf5\x56\xc7\xf1\x70\xcd\x6d\x39\x90\x70\xde\xcc\xf9\x97\x7e\xd8\x77\x5b\x4e\x1f\xd7\x04\x44\x3d\x81\xc8\x63\x6b\x1d\xdd\xda\x9a\xce\x62\x45\x61\xf1\x3e\x72\x73\xdd\x00\x29\x35\x06\x0a\x2a\xd8\x47\xee\x63\x68\xb4\x90\x05\x7d\x2a\xc1\x67\x1a\x07\x5c\xf0\x99\xc6\x81\x10\x7c\xd4\x88\x70\x89\x40\xca\x27\xae\xa3\x87\x29\x96\x89\x7f\x95\x4d\x0d\x54\xaa\x55\x26\x99\x88\xb8\x93\x1f\x7f\x06\x17\x3f\x78\xb2\x15\x64\xce\x64\x77\x55\xac\x9d\x96\x0c\xb6\xd3\xea\xf1\xa5\x99\xda\x2d\xc7\x38\xf2\x8a\x0d\xd3\xb7\x98\xe3\x6a\x35\x7e\x80\x9a\x8e\xbe\xf4\xac\xa3\x00\x80\xc4\x30\x97\x4c\x6c\x69\x8f\x20\x44\x9d\x78\xbf\x05\xb2\x9e\x0a\xd2\x34\x5a\x3a\x48\x1e\x20\x37\xf7\x35\x54\x5f\xc5\x2d\x42\x30\x40\x76\x5c\x77\x39\x01\x2f\x4c\x4b\x00\xe1\x61\x66\x66\x50\xcf\x91\xb4\x7c\x5d\x80\x46\xbc\xb8\x14\xb7\xa4\xd8\x0e\x5c\xd4\xdc\xd4\x07\x76\x54\xb3\x33\xcd\x48\x01\x05\x58\x7d\x04\xb6\xec\xa0\xbe\x30\x0f\x57\x03\x89\x0d\xe4\x2b\x1b\xeb\x34\x14\x4e\xbe\xaf\x61\xd2\xd7\x1a\xb5\x85\xdb\x91\x03\x57\x3a\x2a\x3e\x85\x75\x77\x08\xc3\x3a\x27\x32\x1d\xe2\x19\x89\x00\x2a\x5b\x4c\xcb\x4e\xb2\xa7\x84\xcb\x49\x22\x8b\xf0\xb2\x4b\xed\x83\xe2\x9a\x2d\x93\x6b\xee\x10\x46\x35\x5e\x52\x3d\x06\x5b\x36\xa9\x47\x60\xf9\xab\xec\x00\x1e\x47\x51\xeb\xed\x00\x16\x19\x9a\x53\x24\xb7\xa3\x48\xce\x49\xbd\xa3\x33\xbe\xb3\x0d\x9f\x77\xd6\x6f\x08\xd6\xce\x05\xc3\x46\x80\x27\x7c\xe4\x4d\x28\x3e\xc4\x8d\x91\x88\x77\xba\xc1\x1a\x63\x14\x7f\xa0\x11\x87\x30\xc5\x2d\x75\x54\x59\x89\x24\x45\x0f\xc2\xac\x5f\x49\x78\x80\x94\x8f\xff\x43\xa6\xde\x25\x91\xa5\xe8\x01\xc9\x96\x48\x0e\x10\x51\xf6\xf5\x86\x1d\xf8\x5a\xf4\x86\x32\x58\x6d\xd6\x1f\x68\x25\x0e\x39\x46\x07\x36\x40\x07\x78\x09\x1f\x8a\x6b\x9b\x8e\x54\x2e\x80\xb9\xc4\x17\x43\x98\x4b\xf9\x39\x63\x0e\x18\x42\x22\x9d\x87\xd4\x52\x2d\x22\xde\x38\x40\xad\xdc\xd2\x49\x2a\x99\x2a\x7b\xe1\x7e\x6a\x9d\x1f\xa1\xb0\x46\x0e\x0e\x0e\xdc\x0d\x45\xd9\x0c\xec\x3b\xfd\x10\x45\x35\xd7\x23\xa9\x45\x7e\xb8\x34\x24\x06\x5d\x92\x08\xfb\xa2\x63\x46\xd9\x0c\xd4\x29\xa4\x05\x4e\x7c\x0a\x22\xc3\x55\x44\xec\x5e\x20\xdc\x9a\xe0\x1d\xa7\x2d\x8f\x40\x49\x4a\xe6\x45\x5c\x14\x86\x30\x02\x77\x85\x9d\x92\x61\x61\x92\x4e\x25\x74\x4c\x74\xbe\xba\x9b\xcc\x50\xff\x20\xac\x56\x99\x8d\x07\x3e\x9f\xec\x14\x1c\xd4\xc5\x0b\x7f\xec\xfb\x75\xd7\xf3\x97\x50\x50\x7a\xf6\x12\xb0\x4f\x8a\xd4\x03\xa7\x4f\x50\xe4\x09\xc4\xa6\x48\x7d\x90\x3d\xfc\xda\x39\xb3\xff\xc9\xe7\xcc\xfe\xa7\x9a\x33\x8f\xea\xf7\x56\x7a\x2b\x61\x81\xd7\x07\x35\x9b\x4a\x45\x23\x6a\x14\x1c\x88\x47\xe1\x39\x57\xa1\x46\x2f\xa9\xd9\xcb\x0c\xaa\xec\x10\x19\xa6\xff\x99\xa8\x75\xaa\x9c\x10\x3c\x26\x6e\x7b\x7e\xc6\xea\x6f\xf2\x7e\x08\xdc\x3f\xf6\x8f\xbd\x1a\x5e\x0a\x2e\xf0\x60\x7c\xeb\x07\xac\x7d\x4c\x4e\x91\xe3\x06\x14\x39\xd0\x37\xa3\xc4\xc5\x88\xcf\x3a\x41\xcb\x7b\xfe\x01\x95\x06\xb8\x7e\x9d\x1e\xf4\x1c\x27\x75\xd3\xf1\xeb\xb4\xe6\xc2\x08\x31\xf1\x37\x40\x89\x3d\x65\x08\xe0\x02\x35\xba\xd2\xaa\x0b\xdf\xcc\xed\xd6\x56\xd0\x6c\xf3\x85\x5f\x27\x0a\x93\xd4\x60\x6b\xb1\x65\x87\xf5\x05\x68\x86\x60\xcb\x8e\xea\x61\xb3\xb5\xef\xf4\xeb\xae\xe7\x82\x0d\xd9\xb0\x44\xba\xa3\xa6\xdd\x26\xab\x47\x5b\x8b\x66\x58\x1b\x01\x90\x0a\x7d\x7e\x06\xa2\x66\x87\xf5\x08\x24\x50\x31\x58\xa6\x16\xfc\x4c\x87\xf2\xa0\x70\x81\x7c\xe9\x54\x2d\x78\x00\x03\x30\x96\xd3\x3c\x04\x07\x4e\xb5\x2a\x53\x7d\xb0\x17\xec\x2f\xf6\x54\x10\x2b\x1b\xc3\x00\x2e\x80\x88\xf2\x51\xaf\x2f\xf6\x78\x86\x80\x67\xd8\x77\xf6\x40\xad\x16\x48\x63\x66\x9e\xba\x90\xc5\xec\x81\x7a\x7d\xb1\xe4\x64\x18\x8b\x5b\x4c\x60\x08\xfa\xb2\xe0\x05\xf0\xec\x5a\x6d\x01\xf9\xdb\x02\xfa\x00\xc0\xc5\x3e\x12\x17\x04\x22\x2e\xd0\x40\xb6\x8f\x16\x22\x58\xdc\xa2\xee\x82\x02\xa3\xec\x48\xd3\x41\xa6\x6b\xfc\x07\x89\x8a\xc4\x9d\x29\xe1\xc3\xf2\x84\x19\x17\xfd\xec\xbb\xaf\x8e\x4a\xe2\x8b\x9b\xc1\x4f\x4f\xbf\x3c\x7a\x75\x74\x76\x72\x7c\xb1\x06\x3e\x73\x65\x40\xfc\x4a\x46\xaa\x3f\x0a\xca\xe3\xab\x92\xc6\x34\x93\xe5\x50\xed\x33\xd7\xe7\xc9\x44\xe2\x8c\x8f\x45\xd0\xf8\xf5\x39\x48\x26\xc7\x73\x9f\xe1\xf5\xf0\x93\x0c\xfc\x19\x99\x3d\x00\x1f\x65\xe0\xe5\xc5\x8e\xeb\x73\xcc\x32\x39\xbe\x12\xd1\xf4\xd7\xe7\x78\x97\xcd\x11\x2d\xc2\xf1\xfa\x0c\x41\xb6\x13\xfe\xd5\x7a\xf0\xb0\x00\xab\xa7\xef\x70\x80\x59\x49\xa8\x51\xd2\xf8\x69\x05\xad\x1c\x55\x0f\x64\xba\xca\xc4\x98\xc7\x3e\xc3\x8f\x22\x94\xd1\x4a\xb6\xc7\x0c\xbc\x19\x83\xfe\xf4\x36\x64\xfe\x8d\x70\x73\x79\x30\x66\xfc\x1c\x5f\x7d\xe5\x97\x45\xa1\xbd\xce\x04\xae\x2e\x83\xba\x34\x19\xb0\x23\x85\x6a\xb1\x8d\x6b\xda\x7d\x6f\x70\x84\x47\xc3\x3b\x17\xf6\x96\xf7\x9f\xdf\xb9\xb0\xbb\xbc\x1f\x7c\xfd\xf3\x50\x3e\xf1\xcf\xb7\xdf\x2d\xe8\xb0\x76\xff\x56\xa4\x80\xfb\xc1\xeb\x57\xea\xe3\xf8\xce\x85\xad\xe5\xfd\xf3\x3b\x17\xb6\x97\xf7\x2f\xee\xdc\xe5\xfd\xc0\xbf\x7c\xaa\xbe\x0e\xa6\xef\xbe\xf8\x72\x28\x41\xde\xcb\x3f\xdf\x72\x90\x99\x7c\x8e\xe5\x9f\xc1\x2f\xdf\x9f\x5c\x7f\x73\xf3\x07\x0e\xd8\x59\x02\xbb\x8f\xec\xc1\x0f\x4f\x86\x5b\x4f\xe4\x2f\xd8\x12\x7f\x3f\x03\xcd\x2b\xe8\xa3\xe6\x0f\xe7\x0d\xbb\xef\xd9\x4e\x0d\xd8\xe7\x5b\xa0\x7f\x6f\xff\xae\x06\xee\xc5\xeb\xef\x6a\x00\x7c\xd6\xbc\x82\x31\x6a\xfe\x60\xff\x75\x0d\xf4\xed\xf3\xda\xfd\xef\x6a\xa0\xcf\x13\x03\xd4\xe4\xf0\x1c\x50\x64\x91\x0f\x4e\x8d\x97\xba\xe0\x19\x9c\x1a\xf8\xac\x69\x38\x92\xa6\xd7\xe6\xde\xa5\x37\x37\x27\xb7\x9f\xc6\x19\x0d\x95\xa1\x9f\x5a\xb9\xd4\x37\xec\xdb\x8c\x2f\x0f\x64\xb6\x98\x9d\x92\xab\x90\x4c\xc8\xc8\x0f\xd9\x73\x72\x45\x58\x9c\x84\x22\x82\x8c\x2f\x32\xeb\x61\x80\x67\xd5\x2c\x84\x50\xd8\x7f\x44\x81\x9e\xf5\x3b\x4b\xc4\x3d\x75\x86\xfd\x47\x94\xed\x7d\xaa\x46\xd6\x6c\x8d\x01\x94\x62\x40\xc7\xb8\xf2\x1c\x00\xa0\x65\x09\xb9\x23\x77\x57\x4f\xfc\x9e\xb0\x91\xb8\x8e\x67\xe4\xc7\xd8\x8a\xc9\x55\x58\xf7\x17\x2c\xb2\x3c\x89\xd7\x3b\x9e\xf2\x5c\xea\x89\x3c\x4b\x7c\x59\x6e\x18\xa0\x23\x71\x8b\x04\xaf\xd7\x13\xa9\x36\x48\x72\x8e\x16\x94\xe2\x70\x74\xcb\x1b\xed\x59\x06\x64\xa6\x80\xe0\xbd\x7f\x1b\xab\xcc\xb5\xcd\x92\x6a\x25\x50\x71\xc5\xd9\x22\x6c\xb0\xbe\x0c\xf8\xa8\x56\xe1\x9b\x11\x9e\xb3\xfa\x2f\x98\x46\xba\x69\xfd\xe2\x62\x25\xe4\xf7\x1c\xb0\xa4\x79\xab\x65\xd9\xe0\xe1\xc2\x1e\xd7\xce\x10\x5f\x63\xaa\x5b\x78\x51\x5c\xa8\x84\x31\x83\xeb\x4e\x93\x39\x26\xdc\x34\x8f\xc4\x81\xf1\xc0\x19\x56\xab\xfa\xd9\x1d\xf6\x6d\x86\xee\xc2\x88\x89\x2b\x38\x3c\x0b\x87\x57\x24\xc4\x58\x10\xd8\x12\x62\xa4\x2e\xf8\xb5\x5b\x00\x78\x66\x01\xd9\x5c\xf1\x88\xe0\x90\x71\x82\xcd\x64\x72\x39\x1d\x6a\xc3\x77\x9d\xe8\xc0\x96\xf4\x1a\xad\x6d\x8a\x09\xc4\xa7\xaf\xd1\x0f\x94\x0c\x60\xae\xf2\x5a\xdf\x92\xbb\x8b\x3c\xbc\x89\xcc\x4c\x1e\xb8\xb9\x68\x30\x1c\x33\xbe\xa3\x5c\x89\x31\xf7\xda\x0f\x26\x11\x9d\xe1\x71\x65\x14\x85\x23\x12\xe3\x0a\x0e\xaf\x9a\x69\x47\x2a\xba\x77\x16\xdf\x75\xab\xa9\xfb\x32\x64\xf8\x0a\x53\x35\x25\x13\x8f\xea\xc4\x29\x2c\xc1\xbc\x79\xa3\x95\x3c\xa3\xbc\x5b\xe6\xee\xb2\x4a\xbd\xc3\xef\x96\x42\x3c\x27\x08\xef\xd1\x7d\x92\x5c\x81\xa6\xaf\xde\x8f\x10\x19\xd0\xe1\x86\x9a\xc0\x51\x23\x66\x78\xa6\x66\xf1\x1c\x53\xbe\x43\x56\x84\xf1\x57\x96\xc7\x1a\xe2\x4a\x29\x94\x7c\x49\x9c\xfe\x24\x31\xfd\xd5\x8d\xeb\x38\x05\x60\x90\x35\xc4\xf5\xc2\xc8\x75\x9c\x5c\x16\x4d\x9f\x46\xae\x24\x09\xb2\x86\x7e\x46\x51\x23\x9a\xf3\xde\xc5\x03\x67\x98\x2b\x42\x5c\x1a\x52\x8f\x26\x13\xd5\x50\x78\xc1\x0b\x5b\xc4\xf8\x73\xfe\x81\x84\x57\x68\xd3\xcd\x65\x99\x53\x3c\x22\x31\x89\xc2\x3a\x91\x38\x57\x59\x1b\x3c\xa7\x62\x92\x2f\xa8\x2f\xf0\xa9\x86\x23\xdf\xf0\x19\xf6\xe3\x05\xc5\xf5\x45\x48\x34\x86\xe4\x63\xd2\x0f\xf1\x0a\x59\x83\xff\xcd\xb4\x3f\xbd\x84\xfb\x07\xbb\xb1\xd5\x07\xf5\x26\xb4\x2c\x90\x47\x4c\x34\x9b\xfb\x23\x56\x8f\xa7\x11\xd5\x15\x7c\xc9\x4b\xd7\x94\x83\x34\x88\xc0\x93\x7c\x4c\xa8\x56\xe6\x2a\x29\x32\x88\x12\x3e\xfb\xe5\xe3\x8b\x14\xb9\x72\x25\x1a\x33\xd3\x63\x45\x4a\xd9\x95\xe7\xbb\x25\xdf\x25\x95\x4c\x6e\x00\x13\x34\x35\xa4\x33\xb5\x6d\x67\xf5\x5c\x05\xfa\xe2\x5c\xe9\x18\xc0\x89\xcd\x00\x58\x02\x78\xc7\x65\xa6\x6c\x83\x4d\x06\xf4\xb1\x2d\xce\x30\xb1\xdf\xbe\xc9\xba\xe2\x7a\x4c\x66\xf3\x00\x67\xc7\x2b\x66\x7e\x38\xf6\xe9\x38\x3f\x30\x9c\xe6\xea\xef\xc9\x98\x4d\xeb\xa1\x4f\x69\xf4\x9e\x67\xd3\x93\x29\x19\x52\xf9\x49\x7a\xe2\x6a\x4a\xcd\x7d\x5c\x53\xb0\xa2\xcc\x82\x72\x47\xd1\x18\xaf\x94\x57\x48\x92\x46\x71\x93\x45\x10\xd4\x43\x7f\x86\x4b\x9a\x3a\x5b\x2d\xb2\x88\x24\x8d\x12\x49\x1c\xd5\x45\x53\x8a\x0a\x8c\x65\xaf\x57\x08\xda\x97\x28\x96\xfc\x4a\xc8\xe3\xe2\x00\xc4\x36\x27\x70\x7e\x88\x14\x13\x91\xd5\x5a\x1e\x99\xa4\xd0\x69\x84\xca\x74\x8d\x78\xe3\x87\x57\xda\x41\x3e\x93\xb5\xc2\x99\x6f\x5c\x89\xc2\xe0\xb6\xe2\x8f\xf8\xba\x53\xf1\x2b\x31\x09\xaf\x02\x5c\x91\xe5\xf9\x81\x7a\xb0\xc0\x46\x21\x4b\x09\xf2\x92\xad\x70\x1d\x95\x87\x17\x14\x94\x2c\x35\x5a\xc0\x93\x9a\x2b\x32\xb1\x49\xb5\x1a\xad\x2e\x6a\xdf\xe2\x8a\x44\x23\x0b\x6e\x2b\xe3\x48\xb8\xf4\xc7\x8b\xf9\x3c\xa2\xac\xa2\x98\x66\x45\xf5\xa7\x32\x16\x25\xcb\x08\x0e\xfe\x87\x15\x85\x6f\xfc\x11\x5b\x29\x48\x2d\x83\x42\xfc\x4c\xd0\xbf\x24\x13\x5b\xad\xc2\x6a\xe5\x2a\xeb\xa2\xfc\x6c\xf6\xb3\xc2\x5b\x96\xcd\x7b\xf7\x21\x23\xa7\xd7\x87\x7a\xb2\x98\x7c\xe8\xf0\x89\x16\xe9\x81\xf3\xcb\x06\x4e\xf5\x7b\x2b\xb7\x77\xc8\x2d\x4f\xc9\x4e\x80\x54\xab\x72\xef\x40\x32\x7b\x87\x1c\xb8\x96\x03\xbc\xa8\x5a\xf5\x8d\x2d\x4e\x0e\x2c\x5a\xd9\x3a\x94\x00\xd4\xfc\x64\x97\x53\x5a\xd8\xea\x3e\xa4\x04\x40\x6f\x32\xf2\x43\x21\xe4\xc2\xf5\x6c\x7a\x94\x9d\xa7\x3a\x30\x23\x99\xd8\x71\x8e\x4c\x1e\x51\x90\x84\x94\x93\x42\x84\xb5\x41\x63\x9d\xba\x31\x7f\x44\x63\xe6\x6a\xcb\x3e\x43\x89\x60\xb5\x31\x7b\x44\xbe\x19\x48\xc2\x3e\x54\xd8\xca\xf5\x08\xe0\x2e\x91\xf4\x64\xe8\x12\x11\x8d\x58\x7a\xb1\x63\x75\x8b\xee\x94\xc4\xe0\xfe\x9e\xff\x49\x0e\x24\x1a\xea\xe6\x7e\x44\xa1\xdf\xc0\x37\x73\x3c\x62\x78\x8c\x42\xe8\x37\x26\xe2\xc2\x45\x02\xfd\x46\x10\x8d\xe4\xba\x12\x41\xbf\xc1\x39\x2e\xca\xaa\x39\x0a\xe2\x20\x8a\x2f\x8d\x91\x3f\x67\x0b\x8a\x4f\x99\x3f\x7a\x77\x46\xfd\x11\xae\x56\x4b\x3e\xd8\x3e\xef\xa1\xbf\xcc\xaf\x8a\x97\x40\x84\x53\x80\xac\x71\xb9\x20\xc1\xf8\xb5\x6a\x6c\x76\x29\x4d\x3a\x4e\x33\x91\x87\x46\x53\x9f\x3e\x8b\xc6\xf8\x90\xd9\x0e\xc8\x18\xe7\x35\x58\xf4\x76\x3e\xd7\x76\xd1\x4b\xf3\x6c\xc3\xc8\x9f\x88\x63\xe7\xe7\xcd\x2b\x68\x9d\x9f\x9f\x9f\x5b\x20\x4d\xb5\x9a\x57\xf0\xc9\xf9\xb9\xf5\xc4\x48\x3b\x77\x24\xa4\x63\x02\x9e\x33\x99\xc8\x32\x89\xa1\x4c\x0c\x33\x89\x54\x26\x52\x33\x71\x70\x7e\xe3\x38\xf5\xf3\x1b\xe7\xc5\xb0\x79\x65\x72\x83\x84\x07\x9c\x9f\xdf\x38\x56\x8d\x77\x7e\x09\xb2\x19\x5d\x9e\xd1\x7d\x71\x7e\xb3\xfd\xa2\x7e\x7e\xb3\xbb\xae\x84\xa4\x80\xa5\xa9\xc4\x7f\x3c\x3a\xce\x87\x32\x75\x98\x49\xfc\x41\x26\xfe\x60\x26\xd6\x65\x5a\xdd\xfa\x07\x8b\xb8\xc8\xd4\x7d\x88\xcb\x7d\xd5\xd6\x49\xdf\xab\xaa\xb6\xd2\x4f\xac\x27\xb5\x90\x43\xe0\x1b\x06\x6a\x4f\xac\x27\x4a\x20\x0f\xfc\x38\xb6\x3c\xb9\x4f\xc3\x8d\xb9\x4f\x59\x2c\xe3\x28\x17\x9c\xe9\xac\x44\x1b\x25\xc2\xcc\x00\xd4\xac\xba\x55\xe3\xcf\xee\x10\x78\x44\xb6\x50\xcd\x7a\x6b\x60\xd5\x6c\xdc\x20\xe1\x35\xa6\x0c\x8f\xfb\xd6\x0f\xd2\x82\x95\xd5\xac\xa1\x25\x9b\xe0\x87\xb7\xba\x91\xfc\xb9\xc2\xe7\x92\x3f\x62\x98\x5a\x5a\x60\x1e\x27\xdf\x71\x38\x16\xe1\xca\xc3\xf9\x82\xa9\xcf\x11\x9b\xf2\xcd\x53\x42\x3b\x63\x1c\x8f\x28\x11\x0c\x58\xb3\x30\xeb\x48\x31\x9b\x8a\x55\x33\xbb\xa5\x3c\x1a\x84\xe1\x28\xef\x73\x04\x64\x58\x16\x11\xe6\x1a\x40\x2d\x93\xe8\xdb\x3f\x18\x72\x21\x45\xee\x1e\xdb\xd7\x5f\xf6\x58\xad\x06\xc2\x01\xab\xbb\xc3\x4d\x24\xc2\x98\x55\xab\x76\x28\xce\x2c\x06\x6c\x08\xf9\x0e\x77\x43\xc3\x22\xba\x54\xc3\x94\x04\x6c\x17\x03\x55\x71\x75\xdb\x43\xb1\xb1\xe4\x49\x2d\x33\xa9\x66\x55\x22\x5a\xb1\x6a\xe1\xc0\x1d\x6e\x8c\xf1\xc4\x5f\x04\x2c\xf9\x9e\xe8\x1c\xea\x2e\x68\xfc\x14\x91\xd0\xb6\x60\xc5\x12\xc6\x41\x2a\x53\x98\xc6\x26\x5e\x2e\x6d\x0c\x6a\x56\xe5\x72\xc1\x2a\x56\xcd\xb6\x7d\xc4\x40\x5f\x12\x86\x2f\x68\xc2\xcb\x22\x98\xc3\x0a\xd6\xdc\x90\x67\xf4\xfe\x12\xb2\xa5\x2d\xd8\x2a\x80\xd7\x39\xce\xc8\x90\x3c\xac\xdc\x44\x88\xf5\x99\x77\xb7\x14\x59\x28\xf4\xf9\xf6\x3f\x46\x77\x31\xf3\x29\xf3\x9e\xe1\x25\x0c\xd0\x33\x0c\x17\xe8\x04\xdb\xd6\xbe\x05\x37\x5d\x00\x47\x85\x77\x0a\xa8\xfe\x58\x60\x09\xc7\x02\xfa\x77\x12\x7a\x8a\xce\xb0\x6d\xb1\x54\xff\x0f\xe0\x44\x7c\x6f\x1e\x48\x80\x6b\xf1\xa6\x5e\xae\x64\x45\x4d\xf9\x76\x29\xf2\xfa\xb9\x63\x19\x00\x6f\x05\xd4\x9d\x04\xba\x10\x2f\x4b\xf9\xf2\x5e\xe4\x08\x33\xc7\x07\x2f\xc7\x16\x80\x47\xa8\xf9\xc3\xe0\xc9\x79\xf3\x6e\x39\x6c\xc2\x1b\x74\x8a\xed\x81\xf5\xc4\x82\x56\xd3\x82\xbc\x20\x6b\x69\x0d\xe1\xa6\x2b\xca\x38\x41\xf2\x7e\x6c\x41\xeb\x4b\x78\x5a\x50\xe4\x59\xf4\x0e\x87\x27\x4a\x32\x83\x67\xb2\x3f\xb2\x05\xaf\xcb\xc0\x2d\x00\xbf\x12\x80\x9e\x27\x21\x0f\x8b\xf0\x48\x99\x0a\xe9\x6c\xf2\xd5\x78\xeb\x33\xb1\xe5\x5f\xc2\x67\xa2\x04\x28\x0b\x78\x27\x5e\xf4\xb5\xc5\x3c\xe5\x4d\x59\x08\xdf\x8c\xd0\x20\x7b\xa7\xf2\x89\x4b\x5d\x48\xe3\x52\xdd\x84\xec\xc9\xab\x99\x93\x54\xfe\xe6\xf1\x07\x46\x66\xfa\x86\x70\x5a\xad\xd2\x41\x6b\x98\xdc\x32\x0e\x09\xb3\x01\x58\xc2\x9f\x44\x7b\x9e\xc8\xa6\x3c\xe7\x08\xff\xe1\xc9\xb0\x09\x8f\x35\xb6\x87\x70\xd3\x11\xdf\x5e\x8a\x6f\x7e\xfd\x97\xc3\xfa\xf7\x4f\xc4\x88\xbc\x12\x30\x03\xcb\xb7\xa0\xf5\x8b\x35\x84\x03\xeb\xd0\x82\xd6\xf7\xd6\x10\x8a\x51\x4a\x46\x48\xe6\x7f\xc1\xf3\xcb\xec\xc3\x26\xfc\xa5\x2c\x6f\x32\xa2\x6f\x45\xc3\xe4\x9d\xd3\xfc\xfd\xa9\x78\x97\x17\x4e\xf3\xf7\x2f\xc4\xbb\xbe\x54\x9a\xa7\x7c\x23\x52\xe4\x3d\x9b\x11\x1d\x93\x50\x7f\xf8\x4c\x7c\x88\x26\x93\x18\x33\x35\x8e\x3f\x1b\xb0\x32\xe5\x5b\x91\x82\xe4\xcb\xe7\x82\x20\xa4\xb7\xd8\xdc\x1f\x61\x0b\xc0\xef\x78\xfb\xcf\x59\xfd\x9c\x56\xce\x6f\x76\xba\xe7\x37\x87\xce\xf9\xc2\xed\xed\x38\xe7\x8b\x96\xc3\x97\x26\xfe\xe7\x90\xff\xb6\x76\xc4\xef\xae\xf8\x7d\xc1\x7f\xbb\x2f\xce\x17\x6d\xc7\x71\x86\x4d\xf8\xa5\xea\xf8\x39\xb3\xa0\x75\x4e\x39\xb2\x2a\x16\xb4\xfe\xe3\x3f\xe5\x3f\xff\xca\x82\xd6\xff\xfb\xdf\xfd\xd1\x82\x03\xeb\x6f\xff\xf8\x47\x0b\x5a\x7f\xfb\xc7\xff\x82\x43\xc8\x52\x2d\xf5\xb0\x2b\x3e\xfc\x1b\xfe\xfb\x37\xff\xd2\x82\xd6\xdf\xfd\xf1\x8f\xe9\x44\xf8\xbd\x68\x79\x2c\x24\xba\xca\xdc\x67\x0c\x53\x4e\xc5\x5f\xf3\xd6\x6f\xd6\xcf\x9b\x5e\xfd\xaf\x07\xf5\xf3\x1f\x7e\xbc\xab\xff\x93\xf3\x9b\x43\xb7\x7e\x7e\x73\xb8\x7d\x7e\x73\xb8\x7b\x7e\x73\xf8\xf4\xfc\xe6\xf0\xd9\xf9\xcd\xe1\xd1\xf9\xcd\x53\xe7\xfc\xe6\xa9\x7b\x7e\xf3\xb4\x77\x7e\xf3\xf4\xe9\xf9\xcd\xd3\x17\xe7\x37\xcf\xb7\xcf\x6f\x5e\x6c\xf3\x16\xb8\xb2\xb7\x2d\xf1\xd2\x96\x2f\xed\x23\xfe\xdb\x71\xc5\x4b\xb7\x2d\x7e\xbb\xf2\x85\x7f\x71\x77\x05\x58\x87\x63\xa2\xd5\x95\xe8\xda\xde\xee\xf2\xdf\xdd\x0e\x7f\x79\xfa\x82\x7f\x39\x92\x5f\x8e\xb6\x25\xc2\x78\x69\x6d\xc7\x69\x8b\xdf\x1d\xf1\xd2\x72\xf8\x6f\xdb\x39\x5f\xbc\x78\xce\xeb\x7c\xf1\xbc\xfd\xe2\x7c\xf1\xe2\xa8\xd3\x15\xbf\xbd\x61\x13\xfe\x41\xa1\x78\x53\xb0\x0a\x4e\x5b\x9e\x05\xad\xbf\x16\x4f\x03\x0b\x5a\x3f\x70\x94\xfe\xc8\x91\xcc\x49\xf4\x9f\x88\xf4\xff\xf8\x3f\x70\xfc\xff\x6b\xfe\xe5\x3f\xfe\x8f\xfc\xf1\x7f\xe2\x3f\xff\x33\xff\xf9\x5f\xf8\xcf\xbf\xe5\x3f\xff\x2b\xff\xf9\x3f\xf8\xcf\xff\xcd\x7f\xfe\x83\x05\xad\xff\xe7\xbf\xe5\x3f\xff\xa7\x1c\xb1\xff\x52\x0c\xcc\xbf\x16\x05\xfe\xed\x1f\xff\xad\x78\xfb\xf7\xf2\xed\x6f\xfe\x46\x0c\xd7\x7f\xad\xde\xfe\x1b\xf1\xf6\x2f\xe4\xdb\x3f\x13\xf9\xfe\xab\x7f\x29\xdf\xfe\xb9\x18\xf7\xff\xfe\x7f\x97\x6f\xff\xe2\x9f\xf3\xb7\x7f\xf3\x1f\xe4\xdb\xff\x25\xbe\xfd\x3b\xf9\xf6\x77\x7f\xfc\x1b\x31\xf8\xff\x99\x7a\xfb\xcf\xc5\xdb\xbf\xe2\x5d\xf8\x3b\x51\xf9\x7f\xfa\xdf\xfe\xbd\xf8\xe5\xed\xfc\x4f\xff\xee\x9f\x8a\xdf\x7f\x96\x52\xca\xf7\x82\x52\x92\x3d\x6b\x86\xd8\x31\x36\x38\xa2\x05\x20\xc3\x62\x76\xd4\xe5\xec\xa0\x18\xd9\x82\xc9\xcf\xa3\x98\xd1\x68\x3e\xe5\x59\x78\xc2\x38\x5a\x5c\x06\xb8\x92\xa6\xc7\x16\x10\x61\x90\x05\x8f\x51\x4c\x86\xc8\xd7\xf3\x50\xbe\x46\x58\x2f\x18\xc7\xfe\x0c\x9f\xd0\x63\x5d\xa7\x2f\x3f\x5c\xfb\x01\x19\x9f\xf9\x57\x16\x80\x71\x0a\xaa\x81\x02\x59\x98\x23\xcb\x5a\x60\x4e\xe6\x6e\x7d\x77\xd8\x84\x23\xac\xc8\xc0\xb5\xa0\xb5\x6b\x30\x96\xb1\x00\x72\x04\xd0\x54\x03\x39\x39\xa0\x49\xa6\x55\x16\x80\x73\xac\xd7\x44\x95\x30\xc3\xc8\x81\xd7\xfc\xe7\x0a\xa3\xc1\x5d\x40\x42\xec\xb9\x70\x14\x05\x8b\x59\xe8\xb9\xcb\x21\xbc\xe4\xdf\x6e\x31\x1a\x0c\xe1\x05\x36\x43\xcc\xf2\xf5\xbb\x21\x16\xeb\x37\x8b\x40\x87\x7f\x35\x52\x2a\x24\xac\xc4\x05\xe7\x0d\xcf\xfc\xf0\x09\xab\x08\xb0\xca\xdc\xa7\x31\x09\xaf\x2a\x13\x1a\xcd\x2a\x94\x67\x3a\xb7\xac\x9a\x51\x48\xed\x89\xd5\x78\x02\x36\x02\x14\x0f\x8c\xd4\x61\x26\xe8\xa2\x21\x08\xc4\x8b\x4b\x79\x26\x68\x5f\x63\x38\x33\x83\x27\x1d\x19\x70\x5f\xe1\x95\xcf\x37\x2a\x62\x9e\x6c\x6d\xa1\x56\x94\x77\x61\x66\x63\x38\x18\x42\xcb\x82\xe2\x2e\x4a\x98\x93\x65\x92\x82\xf3\xd1\x0c\x93\x52\xd4\x02\xa8\x65\x6e\xc8\xa5\x6c\x0f\x43\x72\x15\x46\x14\xf3\xad\x9f\x67\xc6\x96\x3a\xc5\xd9\xb5\x54\xe5\x96\xb2\x38\x14\x32\x38\xcf\xac\x64\x66\x8f\x99\xe5\xd0\x65\x36\x1e\x60\xae\x0c\x29\x0d\x43\x43\x08\xf6\xf0\x32\x13\x21\x50\x9f\x57\xc1\x10\x5d\x09\x6b\x1b\x2e\xf2\x26\x5e\x58\xc2\xf6\x87\x22\x56\x77\xf7\x36\xaf\xf0\x80\x0e\xf7\x00\xad\xd7\x45\x6a\x88\x24\x19\xd9\x22\x23\x1d\x82\x06\x7f\xd5\x34\x15\x36\xe4\xc3\x72\x8f\xee\xb3\x3d\xe0\x3a\xc2\x66\xd2\xd8\x17\x53\xd0\xe7\x92\x2f\x09\x71\xad\x06\x35\x34\x72\x41\x92\xb3\x56\xe3\x02\xb3\xd6\x16\x88\xb6\xa1\x10\x1a\x5e\x4d\x5f\x61\x33\xce\xd4\x6b\xde\x79\x18\xa2\xd7\x46\x78\x4d\x25\x64\xde\xa9\xc5\x14\x8b\xd0\x0c\x1e\xcd\x34\x94\xea\x86\x42\x1c\x8e\x13\x50\x26\x41\xc3\xe2\x3e\x19\x18\x3c\x14\x38\x9f\xe1\xfd\x4b\x7c\x7f\x6f\xcf\xf0\xc1\x25\xae\x56\xed\x4b\x8c\x66\x58\x4e\x27\x00\x6f\xb1\x8c\x56\x9b\xa1\x97\x67\x06\xa1\xbe\xcb\x68\x02\xf8\x9b\xf4\x17\x50\x71\x24\xc5\xa4\x64\xe8\x0d\xb6\xc1\x1e\xdb\x44\xc8\xdf\x03\x58\x5f\xbe\xa4\xd2\x0b\xc2\x89\xbe\xd1\xc5\x18\x3e\xda\x8c\xb7\xea\x5a\xb4\xcd\x8e\x58\xdf\xf7\x24\x59\x03\x5e\xa8\x30\xd2\xca\x7b\x2c\x08\xd7\x17\x11\xe7\x0f\x2e\x74\x21\x17\x7c\xc0\x6c\x8c\x8e\xb1\x0d\x00\x92\x39\x65\x91\x0c\xbd\xe4\x69\x49\x69\xef\x8c\xb7\x08\xbd\xd2\x6f\x7d\xfb\x1a\x23\x0c\x03\x44\xa1\x1d\x23\xc6\xd3\xec\x85\x08\x8f\x7f\x83\xed\x27\xaf\x49\x3c\xf3\xd9\x68\x5a\x61\xfe\x55\xc5\x7a\x52\x8b\x6b\x4f\xac\xca\x26\x42\xfc\x79\xc1\x37\x25\x90\xcf\x71\x00\x31\xca\x2a\xad\x24\xc1\x0b\x39\xd2\xbf\x52\x82\x63\x0c\x47\x53\x12\x8c\x29\x0e\xbd\x40\xc9\x90\xc0\xb3\x67\x58\x04\x1f\xf4\x01\x80\x17\xb8\x5e\x87\x58\x75\x82\x21\x5f\x84\x22\xbc\xc0\xd5\xea\x21\xb6\xa7\xbc\x92\xa5\xd9\x66\x06\x19\xa2\xb2\x00\xfe\xe8\x73\xec\xeb\xac\x45\x98\x4b\x5d\xe3\x25\x76\x7e\x32\xf0\x21\x50\x40\x45\x39\xc5\xbd\x50\xbc\x23\x89\xac\xab\x9a\xcf\x77\x5c\x09\xda\x57\xaa\x4d\x86\x2b\x33\x58\x62\xd8\xdd\x56\x3b\x3f\x05\x67\x58\xb8\xe2\x73\xc1\x62\x86\x6b\x35\x71\x25\x54\x06\x05\xb7\x00\x40\x2a\x1b\xfc\x39\xb6\xd3\xa1\xfc\x43\xda\x11\x9d\xde\xb7\xdd\x56\xb7\xb0\x82\x18\xf1\xad\x93\xaa\x20\xce\x56\x70\x01\x00\x8c\x0d\xfc\x06\x28\xe2\x38\x2e\x41\x89\xde\xa6\x29\x9c\x64\x87\x54\x8e\x48\x66\x74\xc4\xe8\xea\x21\xca\x75\xed\xf2\x41\x54\x6a\x07\x9d\x72\x24\xc3\x05\x1c\xc1\x31\x9c\x66\xa6\xd7\x6f\x8e\xe7\x4e\xa7\x0c\xcd\xb0\x0c\xcd\xcf\x34\x9a\xcd\x72\x8c\xed\x99\x5e\x51\xed\x19\x86\x3d\xd0\xb7\x03\x94\xec\xf9\x66\xb8\x86\x7a\xc0\xb3\x83\x6c\x89\xef\x00\x80\x41\xbe\xc4\x05\xef\x7f\x49\xf3\x46\x66\xf3\x46\xab\xcd\x1b\xa9\x4e\x8f\xd1\xe7\xc6\x2c\x99\x16\xe2\x3e\x83\x6f\xbe\xd9\xcd\x75\xa1\x25\xd1\xcd\x77\xc1\xbc\xf9\xad\x55\x84\x7f\x95\x22\xdc\x8e\x4a\xb8\x9e\x70\x3e\xe6\x35\x30\xce\x7f\x6d\x8a\xde\xea\x86\x09\xdb\xeb\x3d\x2a\x59\x31\x93\xac\x98\x02\x28\x21\xe4\x49\x0e\x43\x7e\xd2\x4a\x73\xc6\x47\xa5\x33\xde\x57\xdb\x63\xc8\xf8\x56\x3e\xf6\x22\x28\x8e\xfa\xc6\x52\x07\x10\x7b\x3e\xeb\xcf\xed\x08\x78\x77\xcb\x2c\x2b\xc8\x72\x27\x71\xf3\x6f\x11\x7f\x4a\x18\x3f\x55\x0d\x56\x23\x7c\x48\xaf\x4e\xf9\x96\xdb\x02\xbc\x8b\x36\x45\x9b\x0e\xd0\xb7\x23\xf8\x29\x25\xfe\x84\x57\xab\x3a\xb4\xa3\xec\xdc\x33\x1a\xb4\x40\x23\x34\x10\x93\x63\x28\x20\x16\x70\xc1\xdb\xb3\x50\xed\x59\x08\x9f\x45\x00\x17\xaa\x82\x51\x3a\xea\xe5\x8c\x64\x6c\x32\x92\xf1\x2a\x23\x19\xe7\xda\xf7\xc6\x8e\x84\x61\x73\x19\x7f\x78\xcc\xf3\xc3\xec\xd6\xe0\x03\x70\xf2\x1b\x71\x82\xf8\x83\x38\x41\x60\x4e\xb5\x60\x75\xaa\xad\xcc\xdb\x44\x21\x63\x4e\xa2\x0e\xe0\x13\x5a\xa9\x34\xf8\x34\xea\x00\xcf\x5e\x64\x4b\x7b\x0b\xd2\x21\x95\xca\x8e\xe2\x42\xa4\x1e\xa4\xa4\x90\xa7\x9c\x94\x17\xf9\x36\x8d\xd6\xf0\x92\xb1\xd9\xc1\xf1\x6a\x07\xc7\x09\xf7\x30\x79\xc9\xa4\x70\xf4\x3e\x2d\x2f\x89\xd7\x52\x88\xbc\x49\x8e\xcf\x41\xfe\x13\x0b\xb6\x12\xa0\xa7\x86\x1c\x15\xa0\x2f\x84\x70\x13\xa4\x6c\x26\x90\x6c\x26\x96\xb3\x36\x00\x25\x59\x24\xdb\x89\x13\xb6\x63\x53\x24\x17\x56\x73\xb7\x44\xf9\xa6\xc5\x8b\x0d\x19\x84\xc1\x05\xa2\xb0\x78\xc1\xf5\x85\x6a\xee\x8c\xcc\x30\x54\xaa\x19\x6f\xb1\xca\x94\xec\x11\x5a\xc0\x31\xba\x5b\xc2\x51\xa2\x4f\x8c\xb2\x07\x16\xfa\x34\x41\x1d\x75\xeb\xd3\x89\x81\x33\x54\x67\x13\x9f\x5b\xde\xb8\x81\xa9\x8f\x3a\x42\x2b\x28\xad\x28\xbc\xae\x7c\xd1\xd6\x22\xda\x5c\x43\x84\x43\x97\xba\xfe\x5b\x9e\xef\x16\xfb\x14\xb5\x24\x6c\xab\x2e\x0e\xe7\x2d\xa1\x7b\xc4\x94\x8c\x32\xe0\xdf\x69\xab\x28\xf5\xf7\xad\xfa\x4b\x2d\xaf\xf8\x40\xfd\xc7\xef\x9a\x8b\xe6\xdb\x26\xfd\xb1\x62\xf3\x5a\x80\x56\x51\xc5\x15\x9f\x62\xd3\x42\x00\x8f\x61\x65\x11\xe3\xca\x8f\xb7\x3f\x8a\x70\x15\xd8\x1f\x5b\x40\x56\xfa\xb3\xaa\xe4\xeb\xd2\x4a\x7e\x6e\x7e\xfd\x63\xc5\xfe\x79\xe1\x53\x86\xd7\xd6\xa1\x8b\x7c\xad\x8a\x7c\xc5\xbb\x3f\x8b\x42\x36\x45\x83\xa4\xc3\x30\x41\x02\x54\x18\x83\x12\x9f\x50\x63\x72\x28\x0e\x28\x4c\xc4\xbc\x57\x05\x7e\x5b\xda\xc6\xf7\xcd\x6f\x7f\xac\xd8\xef\x31\x7e\xf7\x98\x06\x8e\x79\xc3\xc6\xfe\x6d\x61\xb3\x56\xab\x7f\xae\xaa\x7f\xa1\xfe\x5e\x95\x36\xe3\x79\xf3\x45\xf3\xea\xc7\x8a\x3d\xf6\x6f\x1f\x31\x18\xe3\x95\xc1\x38\xe2\x0d\xe3\xbd\xe0\x8d\x53\xc4\xa6\x8c\x86\x1e\xa6\x36\x2c\xec\x68\xd8\x7e\xa7\xc4\xfc\xe2\x47\xdc\x68\x60\x8c\x15\x9e\x1e\x68\xa2\x05\x36\xd2\x96\x0c\x4a\x46\x4a\x8f\x20\x47\x59\x27\x83\xb2\xd1\x43\x6d\x19\x35\x1a\xa3\xd1\xe8\x4f\xd2\x16\x9f\x23\x75\x1a\x2d\xa8\xdb\x42\x9b\x8e\xf9\xe5\x52\x0d\xe8\xd3\xd2\x01\xbd\x6c\x3e\xfd\xb1\x62\xcf\x31\x25\xd1\xf8\x11\x23\xea\xaf\x8c\xe8\x54\x57\xfe\xec\x76\x14\x60\x64\x4d\xdd\x96\x05\x65\xca\x23\xa9\xef\x8b\x7c\x09\xad\xf6\x07\x96\xf0\xe5\x4a\x1b\xdc\x0f\x2c\xe1\xdd\x4a\x1b\x3a\x1f\x58\xc2\x4f\x0a\xd5\xbf\x57\x7f\x9f\x95\xa2\xfc\xa7\xe6\xef\x9b\xcf\x7e\xac\xd8\xbc\xf0\x47\xa0\x7c\xda\xfc\xa2\xf9\x65\xf3\xdd\x0a\xe2\x67\x82\xf9\x90\x70\xc1\xf0\x23\x9b\x18\xf3\x1c\x31\x1e\x45\xe1\xf8\x91\x39\x4e\x55\x67\x0e\x4b\x3b\x73\xda\x3c\xfc\xb1\x62\xcb\x42\x1f\xd1\x99\x78\xa5\x1b\xbf\xf0\x46\x71\xf9\xe4\xfb\x28\xc4\xc7\x3e\x17\xfc\xf6\x3b\x09\x53\x50\xf6\x7c\x46\x93\xbe\x57\x4d\x3a\x51\x7f\xaf\xd5\xdf\x6f\xd4\xdf\x3f\xa8\xbf\x37\xa5\x4d\xfe\xbe\x79\xd2\xbc\x6e\x7e\xd3\xfc\x43\xf3\xe6\xc7\x8a\xad\xab\x7e\x44\xe3\x7f\x31\x1a\x6f\xda\x9e\xc1\x71\x66\x57\x40\x0b\x76\x05\xf1\xa3\x77\x05\x7c\xc9\x3f\xa1\x7c\xd1\x7f\xd4\xce\x20\x2e\xd9\x19\xc4\xa5\x3b\x83\x11\x1a\xa3\x81\x10\x96\xe5\xce\x60\x04\x47\xbc\x4d\x23\xa4\x77\x02\x72\x67\x50\xb0\x1f\x2c\xdf\x19\x4c\xcd\x9d\xc1\x74\x75\x67\x30\x5d\xd9\x19\xc4\x5c\x22\xfb\x04\x3b\x83\x47\xaa\x63\xd2\x1d\x02\x9c\x27\x52\xe0\xaf\xda\x1f\x00\x32\xb1\xb5\xb4\xcc\x9f\x4d\x6d\x41\xfe\xdb\xaf\xd1\x18\xe4\xcb\xd2\x67\x98\xc5\x5a\x03\x7d\xc0\x59\xa2\x35\xf8\x42\xdc\x44\xa2\xf6\x0b\xd9\xa3\xcf\x5c\x79\x6e\x5b\x16\x98\x3b\x1f\xe5\xe5\xba\xed\xd5\x82\xbf\x01\x89\xd0\xfc\xb8\xbe\x2f\xcc\xbe\x2f\x56\xfb\xbe\x28\x2a\x4b\xec\x49\x92\x93\xd9\x5c\x8b\xb7\xe5\xc6\x24\x39\xb7\xe5\x4d\xdd\x5e\xdd\x9f\x7c\xb6\x66\x7f\xf2\x1d\xfe\x98\x49\x22\x46\xdf\x98\x26\xe2\x88\x66\x2a\x36\x17\x13\xf4\x59\x56\x67\x31\x91\x9b\x89\xa9\x9c\xec\x13\x00\x25\x84\xdc\x3c\x4c\x91\xbf\x31\x4d\x1a\xf3\x88\x69\x37\x37\xa7\xdd\x7c\x75\xda\xcd\x73\xd3\x2e\x17\x82\x29\x5a\x63\x3b\x40\x1a\x97\x0d\x49\x4c\x50\xfe\x39\x13\xc7\x19\x29\xf1\xb1\xbe\x35\xf2\x15\x59\x78\x56\x42\x20\xfa\xc2\x25\x35\x0c\xb4\x4f\x07\xad\xa1\xe7\x40\x65\x81\xe9\x45\x25\x26\xf1\xea\xae\x8a\x06\x19\x8b\x5b\x1d\x45\x31\x90\x20\x96\x18\x20\x26\x77\x58\x54\x48\x58\xc1\x52\x55\xfd\x7c\x31\x0f\xc8\xc8\x67\xda\x96\xb6\x62\x3d\xa9\xd1\xda\x13\x8b\x83\xc8\x96\x56\xb0\xb4\x28\xf1\xf8\xa7\xf7\xd8\x06\xa6\x02\x7b\x40\x87\x48\xdd\x10\x15\x42\x5d\x8f\x47\x96\x10\x4b\xb3\x7b\x6d\xf5\x20\xd4\x18\x23\x38\x2d\x65\x45\xd2\xa2\x54\xbf\x6e\xfc\xf9\xbe\x25\x16\xa4\x1f\xc2\x33\xff\xc2\xf9\xa5\xb2\xda\x28\xe6\x97\xda\xa4\xa3\x84\x5f\xfe\xfc\x9b\x73\xb5\x3b\xc1\xd6\x38\xaf\x18\xa3\x6f\xb2\xbc\x62\x2c\x79\xc5\x48\xf2\x8a\x31\x80\x12\x42\x0e\xe9\x08\xf9\x1b\xbf\xd9\x12\x4d\xd7\x5e\x2d\x9d\xe3\x12\x12\x85\xe9\xc4\x57\x13\x9d\xfd\xa9\x26\xba\xac\xff\x53\x4d\xf4\x11\xc8\x9f\x31\xfd\xd9\x4e\xf4\x47\x4e\xe6\x8c\x82\xad\x5d\x4c\x1c\x14\x59\xbf\x2b\x9b\xc1\x63\x43\xbd\xa6\xa8\xa3\x64\xb9\x88\x16\xe1\x38\x2b\x05\x9b\x4e\xc1\x3f\x19\xe7\xa1\x30\x84\x24\x61\x2b\xea\x3c\x54\x88\xb8\x11\xcb\x89\xb8\x2a\xc4\x16\x9f\x20\x04\x7d\x69\xa8\xdd\x08\xfa\x7d\xe6\xed\x6b\xe3\xad\xb7\x72\xd8\x2d\x7a\x49\x90\xb5\x9f\xf4\x92\x64\x7b\xb9\xe0\x6d\x26\xe9\xe4\x23\x72\xf2\x85\xfa\x9e\xd3\x3f\x41\xf5\x72\x78\x43\xe4\x6f\x84\xb9\x75\x7b\x64\x87\xeb\xc8\x50\x20\x52\xe3\x4a\xe9\x37\x39\xc2\xc2\x4c\x8b\xc3\x4c\x8b\xc3\x4c\x8b\x43\xf4\x5c\xcc\x94\x30\x45\x40\x28\x11\xa0\x2e\x7a\x0d\xc1\x47\x14\x27\x3b\x44\x39\xa9\x66\xe9\x67\x64\x53\x20\xe6\x59\x81\x23\xeb\xf3\x0c\x99\x64\x88\x57\x68\x6d\xe5\xe9\x77\x28\x4f\xba\x93\xfa\x5e\x65\xde\xc4\xc9\xb8\x3c\x7d\x0c\x45\x74\x58\xaa\xec\x47\x04\x0e\x29\xa4\x5c\x96\xa3\x12\xc9\x25\x83\x15\x9a\x83\x15\xae\x0c\x16\xcc\x0f\x91\xb5\x6f\xad\xd9\xa8\x24\xbd\x3b\xc6\x2b\xab\xec\x08\x8e\x57\x7b\x59\xd2\xaa\xc8\x6c\x55\xb4\xda\xaa\x28\xd9\x15\x7e\x6f\x08\xb6\x81\xb9\x3e\x58\xcd\x83\x22\x15\xfb\x08\x09\x6b\x5d\xad\x62\xcf\x1d\x10\x4e\xf4\x01\x61\x9f\xa2\x08\x0d\x54\xc3\x87\x06\x3a\xc1\x0a\x6a\xf5\x70\x8f\x4b\xf5\xdb\xf9\x33\xf6\xb1\x61\x60\x9c\x70\x91\x04\x75\x2f\xf3\xfc\xc3\x44\x5a\x09\xbe\xa8\x89\x2f\xba\x8a\x2f\xdd\xd0\x30\xc5\x57\xdf\xee\xb5\xca\xa6\xef\x41\xd9\xf4\xbd\xd6\xcc\xc3\xa0\x88\xf0\x31\xf4\xf0\x6a\x5d\xa7\xac\xfd\x66\xc9\x69\xc8\x7e\xb3\xf4\x34\xe4\xea\xcf\xa1\x5b\x2f\x72\xdd\x92\x87\xb9\xa9\x2d\x84\xe0\x4f\x21\x7f\x22\xe9\x9c\x8e\xd0\xcf\xc6\x2c\x3e\x52\x9e\xf4\xa2\xc1\xb2\xb1\x62\x02\x98\x09\x25\x33\xe1\x06\xe8\xd9\x1f\x89\xd9\x4f\xcc\xd9\x4f\x20\xe1\x8d\x55\xdd\xd2\x67\x22\x07\x33\xfc\xc8\xc2\x4f\xf4\x34\xeb\x87\x88\xa0\x01\x81\x91\x9c\x06\x21\x0c\x13\x84\xc8\xe7\xb5\xdc\xf4\x1f\x7a\xe7\x0d\xde\xaf\x29\x9a\xae\x1c\x87\x31\x71\x1c\x46\xd7\xda\x89\xbc\xcf\x4a\x11\xbf\x14\x2e\x0f\x29\x65\x75\xb6\xcb\x18\x41\xb3\x8c\x11\x9c\x65\x66\xcc\x8b\x02\x75\x5a\xf8\x68\xab\x96\xd3\x6c\x6b\xdf\xe2\x8c\x49\x43\x98\xcc\x02\x21\xf2\x64\xb6\x43\x2c\xad\x59\x7a\xb7\xa8\x39\xc2\x3b\x5c\x44\x3e\xbf\x08\xab\x33\xc3\x9c\x2b\xef\x19\x97\x58\xe0\xe1\x99\x29\x96\xcb\x9b\x24\x33\x66\x58\x89\x38\x21\x5e\x37\xb2\x6f\x09\x86\x53\x43\x2d\xa3\xbf\xaf\x01\x34\x4c\xde\x9e\x96\x89\x78\xed\xdd\xb2\x51\x79\x52\x36\x2a\x3f\x25\x1b\xc7\x32\x09\xf0\x79\xe1\x24\x21\x85\x74\x9c\x63\x6c\xc7\x1f\x28\xed\xfd\xca\xaa\x56\x24\xbb\x12\x7c\x10\x13\x1f\x64\x15\x1f\x72\xde\x72\x8a\x1c\x08\xfc\x0e\x1f\xb7\x4d\x49\xe4\x43\xf1\x20\x6d\x69\xcc\xde\xbd\x2c\xec\x1d\x2d\xec\x5d\x6e\x94\x5e\x81\x64\x98\x8a\x6d\x72\x3e\x6d\x55\xab\xb6\x3d\x29\xf1\x7d\x61\xda\x5b\xea\x9e\xbe\xf8\xf8\xfa\x7e\x79\xa0\x67\xbf\xae\xe8\x75\x3d\xf9\xc6\x9c\x46\x24\x6f\xfe\xc9\x4c\xd6\x21\x38\x10\x63\x85\xd6\x80\xc5\xca\x1a\x62\x2a\x6b\xc8\xaa\xb2\x26\x5d\xef\xcd\x53\x09\xa5\x27\x01\x30\xb1\xc3\x96\x66\x49\xef\x1e\x56\x3c\x7c\x98\xf9\x21\x85\x0b\x14\xc1\xc4\x45\x2a\x67\xaa\x45\xc6\x9e\x16\x16\x17\x0f\x18\x1f\x3e\x46\x4c\xf9\xec\x03\x11\x5d\xa0\x29\xcb\xcb\x6c\x52\x7a\x77\xcb\xf6\x14\xa8\x6c\x4f\xf1\xad\xde\x53\x88\xdd\x64\xaa\x88\xa6\x28\x44\x83\x64\xaa\x2b\xf9\xda\x5e\xb3\x98\xa6\xaa\x00\x41\x16\xe9\xc1\xcf\x6f\x47\x1c\x4a\x29\xfc\x0f\x8c\x38\x7e\xc6\x39\x43\x54\x29\x65\x7c\x57\x38\xed\x59\xe1\xb4\xcf\x19\x34\x7f\x09\xb2\xc2\x83\xf1\xe9\xf3\x4c\xd5\xdf\x16\x57\xfd\xf5\xc7\x57\xfd\x87\xf2\xaa\x7f\x9f\xa9\xfa\xf3\xac\x7c\xc5\x59\xdf\x8a\xd8\xfe\x73\x89\x48\xf2\xb3\x61\x08\xff\xb1\xe2\xde\xf7\x59\x01\xea\xbb\x92\xfd\x91\x21\xf0\x95\x6a\xb4\xea\x65\xa2\x05\xc3\x9c\xb5\x27\xf5\xcb\xa3\x9c\x54\x02\xc4\x6c\x55\x02\xb4\x09\x0a\x41\x9f\xf6\xeb\xc4\x23\x9e\xf3\x68\x71\x10\xe3\x6c\x77\xbe\x2c\xf0\x09\x48\xbb\x62\x3d\x79\x52\xb2\xdf\x7b\xf2\xa4\x74\xbf\x17\xe2\x55\xfd\x9c\xf5\xc4\x52\xed\xe2\x9c\x02\x14\xb7\x8d\xe6\xda\xf6\xfb\x95\x3d\x1b\x8c\x3f\x8d\x00\xc7\xc5\xdb\xb0\x84\x79\xe6\x8c\x89\x05\xfb\xcc\xec\x4b\xc2\x42\xf2\x0e\x57\xf7\x25\xa1\xc9\x9b\x6c\x82\xa4\xbe\x0d\x21\x64\x47\x28\x04\xf7\xf7\x96\xd0\x7b\x44\xf7\xf7\xd6\x9d\x7e\x58\xaa\x87\x90\xd9\x40\xc7\x48\x89\x72\x0a\xc8\x42\x0e\x9c\xd1\x76\xac\x21\xf5\x65\x46\xa2\x17\xdb\xbd\x88\xcf\xa1\x92\x91\x8e\xb3\x23\x1d\x17\x8c\x74\xbc\x56\x22\x8d\x0b\x91\x15\xaf\x4a\xa4\x7b\xb1\x9c\xbe\x91\x9c\xbe\x31\xf8\x33\x68\x92\x4d\x50\xb4\x82\x48\x22\x10\x19\x81\xb5\x72\x73\x64\x92\x61\xb4\x4a\x86\x11\xd2\x4b\x92\x9c\xeb\x51\x7e\x7f\x57\x23\x89\xe9\xa4\xe8\x2e\x9f\x40\x1f\x75\x06\xb0\x2a\xcc\x7d\xbd\x4e\xc3\xf3\x69\xc9\x7d\xd5\xd7\x7c\xd3\x96\x53\x00\x6b\xaa\xc7\x59\x62\xc7\xf7\xf7\x94\x25\x51\x8d\xaa\xff\x1f\x7b\xff\xb7\xe7\xb6\x8d\x2d\x0a\xc2\xf7\x7a\x0a\x89\x9f\x5b\x01\x2c\x14\x2d\x95\x1d\x27\xa1\x0d\xeb\xab\xb6\xcb\x6d\x77\xbb\xec\x6c\x57\xa5\xb3\xd3\x0c\x77\x6d\x96\x08\x95\xd0\x96\x40\x35\x08\x95\xad\x94\xf8\x00\xdf\xe5\xf7\x04\x73\x3d\x0f\x30\x77\x73\x75\x1e\x60\x9e\x65\x1e\x61\x7e\x58\x00\x48\x90\xa2\xca\x4e\xa7\xcf\xef\xec\x39\x27\xee\x74\x89\x04\xf1\x1f\x0b\x0b\x6b\x2d\xac\x3f\x43\xb3\x23\x18\x2e\x91\xc0\xbf\x7a\x1f\x38\x8c\xba\x6f\x6a\xe6\x70\xc5\xcf\xe2\x10\xb2\xe0\xac\x62\x24\x3a\xf7\x51\x35\x9d\xff\x7e\x27\x06\xd5\xe4\xb7\xaa\xb9\x0d\xe9\x68\xa0\x7f\xf2\x30\xca\x5b\x28\xf2\x6f\xbf\xae\xf1\x83\x18\x6f\x5f\x16\x76\xe0\x14\x13\xfe\x29\x26\x3a\x4e\x31\x51\xc9\xbc\xef\x12\x27\xe5\xf4\xc7\x5a\x22\xfe\x3f\x54\x2c\x74\xb7\x50\xec\x7f\x99\x59\xf8\x97\x49\xc7\xd6\x0c\x57\x8a\x50\xff\x64\x15\x69\x0b\xc8\x35\x0c\xdf\x05\xaf\x8f\xbe\x3d\xb4\xbd\xc7\x87\x76\xf7\xb2\x83\x46\x19\xe3\x9a\x38\xf1\x2f\xae\x56\x8c\x6c\x58\xe7\x49\xf2\x45\xa8\x71\xc6\x2a\x18\xb3\x67\x6e\x9c\x90\xac\xbb\xc2\x2f\x5a\xd5\x05\xc3\xf8\x49\x6e\x20\x95\x1b\x48\xcd\xf1\x6f\xae\xb1\xc7\x0f\xe2\xd4\xea\x7c\x81\xd7\xf6\xd5\x59\x15\xa8\x57\x56\x97\x25\x64\x32\x6e\xde\xa6\xdd\xb5\xda\x45\x6b\xb5\xd5\x67\x56\xfb\x0b\x24\xf5\xff\x75\xf6\xd5\x6f\x90\xb8\xff\xd7\x19\xc4\xbf\x0c\x37\xcc\xcd\x52\x83\xc2\x85\xa2\x71\x20\xf3\x5c\x05\x89\x17\xcd\x45\xd5\x51\x64\x6b\xbd\x2e\xa9\xe2\x8a\x24\x38\x9a\x78\x1e\x00\xb8\xf2\x82\x13\x0e\x87\xca\x39\x72\x7b\x63\xf5\x29\xa6\xb7\x95\x66\xc5\x29\x43\xb8\x8c\x6e\x4b\x68\x3b\x57\x14\xb2\x1b\x9b\xf9\x8b\xf4\x9a\xa4\x36\xa5\x58\xe4\x9b\x65\x06\x6e\xf0\x9d\x1b\x1d\x0d\x7c\x48\xd2\x65\x25\xb3\x58\x31\x2f\xd6\x8f\xb3\x8a\x97\x3d\xa3\xda\x2b\x5d\x9e\xa7\x75\x34\xa0\x13\xe6\xbc\xdf\x30\x91\x05\x25\xde\x8b\x54\xd1\x70\x33\xb0\x6a\xf8\x96\x03\xc1\x39\x31\xf9\x4a\xb4\x65\xe4\xaa\xae\x79\x5a\x2d\xf2\x15\x33\xe1\x8e\x1b\x5f\xbf\x67\xe8\x4a\xe7\x1f\x4d\x70\xe4\x9e\x31\x2e\xc9\x35\x7d\x80\xfe\x63\x17\xff\xc7\xcf\x3f\x27\xf8\xff\xf3\xe0\xda\x0f\x0c\x6e\xbd\x34\x35\x64\x18\x22\x97\xab\x74\xc9\x7f\x61\xaf\xd2\x62\xa1\xd2\xeb\xd7\xc2\x44\x6e\x88\x06\x63\xd2\x31\x5d\xd1\x60\x5c\x12\xb5\xdb\xdd\x96\xc6\xad\xa0\xa4\x37\x50\x6d\x05\x3a\xe1\xa1\x0a\x87\xc3\x1a\xe1\x23\xdd\x8f\x70\x9e\xcb\xd3\x74\xb6\xf0\xf4\x75\x14\xbe\xad\xa3\xa3\x7d\xc0\x48\xe1\xdd\xae\x7a\x5f\xe9\x77\x3c\x1c\xda\x30\xa3\x1f\xd8\xb6\x40\xca\x39\x5a\xc4\x1d\xb5\xc9\xda\x03\x75\x4e\x52\x5a\xe5\x8d\x65\x42\x0a\x7a\x34\x21\x4b\xbb\xdf\xc8\x86\x8e\x9f\x6c\x9e\xa6\x46\x37\xc8\x79\xf6\xda\x38\xef\xd4\x33\x6a\xbf\xc4\x1b\xf0\x95\x50\xf5\x68\x81\xd1\x0c\x0f\x87\xd7\x06\x33\xcf\x4c\x26\x8c\x6f\x0b\xba\x21\x4b\x3a\x33\x4a\xe4\x65\xc9\xe7\x68\x69\x6a\xca\xe8\xd2\xb6\xe1\x88\xff\x6b\x12\xdc\x9b\xdc\x06\x23\xab\x97\x34\x0a\x48\xdf\x58\x69\x96\x01\x26\x0b\x7a\x83\x32\xfc\x44\xef\x6c\x5b\x77\x58\xac\x97\x7c\xc6\xc2\x74\xbd\x5e\x6e\x51\x5e\x07\xa5\x9c\x61\x14\x17\x64\x92\x90\x05\xc6\x25\x43\x2e\x7f\x89\xe1\x3f\xb0\x55\x6d\xc4\x50\x69\x38\x70\xac\xe2\x63\xea\x3e\x72\x92\xdb\xf0\x92\x20\x82\xd8\xed\x6a\xab\x61\xeb\x6e\x91\xef\x76\xc1\x55\x9e\x2f\x59\xea\xf9\x60\xe4\x53\x11\x49\x04\x71\x76\x55\x78\xcd\x14\xca\x2b\x98\xa8\x42\x18\xa5\x10\x08\xc6\xf3\x0f\x09\x71\x1c\xc3\x42\xe7\x86\xd0\x31\x69\xe9\x7b\x57\x34\xbb\xc7\xc4\x9b\x30\x8e\xe7\xd6\x32\x57\xb9\x6e\xd0\x38\x3d\x33\x15\x55\x91\x3c\xc9\x43\x13\x92\x42\x68\xfe\xcb\x74\x82\xef\x77\xc2\x45\xd0\x32\x53\xd8\xec\x05\x27\xb9\xc6\x9a\x65\x33\xfe\x94\x39\xa7\x6a\x6f\x5a\xe1\x15\x17\x19\x52\x84\x41\x72\xc3\x83\xa1\x97\x0d\x8a\xea\xda\xfd\xd8\x61\x53\x15\x49\xc2\xc3\x59\x3a\x5b\xb0\xd0\xc4\xfc\x40\x98\xf0\xb0\x60\x92\xc3\xa6\x91\x0d\xc7\x7e\x55\x65\x7f\x3e\x7f\xf7\x36\x34\x98\x98\xcf\xb7\xf5\x90\xbd\xdc\x29\xb2\xc1\x82\xa1\x72\xbb\xc9\x5d\x1b\xc0\x85\x96\xa9\x37\x81\x8b\xb4\xe8\x74\xb9\xd6\xe7\x36\xfc\x2e\x54\x53\x12\xbf\xcc\x35\x53\x5d\x65\xea\xec\x31\x4b\x9a\x25\x8a\x46\x09\xe3\x87\xc5\xcb\x4c\x95\xf1\x11\x57\xd0\x5b\xd3\xd1\x8e\xb0\xb4\x1a\x6d\xa6\x65\xd9\x63\x21\xfb\xb4\xce\xa5\x2a\x68\xa7\x7a\x9f\x39\x1f\x66\x0b\x36\xb5\xbf\x51\x41\x84\xc5\xfa\xd5\xe4\x4e\xfd\x97\x28\xaf\xec\xfd\x21\x97\x92\xa9\x62\xd7\xdb\x69\xfd\x18\x71\x8c\x18\xb9\x35\xd5\x49\xe2\x15\x15\x25\x2e\x49\xd5\x23\x57\x80\xb3\x82\xea\xfe\xf0\x34\xe3\xb3\xa8\xdb\xd7\x8c\x83\x0a\x49\x54\x1b\x0c\x54\x03\x0c\xc8\x2a\x17\xed\x7a\xe4\x7e\x3d\x8a\xc8\x76\x3d\xb2\x51\x8f\x8b\xbb\xf5\x45\x81\xb7\xba\xa3\x7c\x15\x7e\xdc\x97\xef\xf6\x03\x6f\x99\xed\x61\x1c\xf9\xb3\xfb\x8c\xa4\x34\xbf\xcf\xdc\xe4\xa2\xc9\xd1\xc3\xfb\x6c\xf4\xf0\x7e\x7e\x94\xe2\xfb\x6a\x84\x1e\x1d\x3d\xbe\x9f\x8f\x1e\xde\x4f\xf1\x7d\x39\x42\x93\x91\xfb\x0a\x29\x62\x94\xde\xe7\xf8\xc1\x63\x73\x90\x53\x89\xbe\xf5\x9a\x4b\x3d\xa0\xf3\xcf\x0c\xe3\xcd\x86\xc3\xae\xb7\xee\x7d\x53\xaa\xe1\xc6\xb8\xa9\xcc\x31\x29\x9a\xaf\xcb\xc6\xab\xf5\x78\x33\x7e\x22\x9f\xe6\x4f\x46\x23\x89\x79\x7d\x44\xce\x31\x52\xb1\x4c\x30\x49\x63\x99\x50\x1e\xca\xdd\x6e\x4c\x0a\xf3\x7c\xad\x9f\x97\xe6\xf9\x6a\xb7\x1b\x57\x6e\x6e\x29\x43\x10\x49\x92\xa1\x42\xb7\xc5\xd0\x52\xef\x71\x17\xa6\x7b\x42\x3a\xf6\x10\x0f\x25\xd5\xc3\x23\x3c\xbc\xa6\x85\x79\xb8\xa2\x4b\x78\x18\x05\x41\x59\x96\x7e\x94\xb5\x7e\xed\xc4\x87\x56\x91\x47\xaf\xf4\xf9\xd8\x5a\x1b\x8b\xd2\xa9\x44\x88\x35\x06\xc5\x30\x0e\x25\xf1\xbd\x00\xcf\xe1\x78\x0d\xa5\x09\xc7\xca\xc2\x6b\xa2\xc2\x6b\x3d\x0a\xfd\x72\x45\x54\x78\xa5\xc7\xd2\x88\x73\xea\x86\x44\x54\x1d\xeb\xbd\x63\x79\x6a\xa7\xae\x94\x23\x4d\xee\x84\xd7\x34\x35\x0f\x57\xb4\x30\x0f\x6e\x72\x96\xf0\x0a\x23\xae\xc3\x2b\xa5\xab\x55\x4a\x19\xe1\x25\x9a\xd8\xb8\xac\x34\x45\x77\xd8\x1b\x1f\x4d\xf6\xba\x51\x1d\x24\xf2\x29\x1d\x4f\x25\x1d\x47\x10\x02\x1f\x49\x3a\x21\xea\x68\x82\x23\x2f\xee\x9a\xbc\xaf\xf4\x09\xc2\x62\x91\x90\x54\xff\x8c\x26\x9a\x60\x10\xcf\xc6\x53\x13\x38\x35\x3a\xd6\xc0\xac\xa1\xe8\xa9\x3a\x9a\xe8\xc4\xd1\xb1\x4e\x4c\x8f\x2a\xd9\x32\x47\x48\x1e\x89\x07\x0a\xdf\x57\xa4\x20\x39\x49\xc9\x12\x22\xed\xf6\xee\xec\xf8\xe1\x6e\x7b\xdd\x43\x48\xfe\x81\x4e\xf0\xd3\xf1\x74\x34\x92\x91\xc4\xae\xb7\x48\x8c\xf4\x48\xfe\xa0\x6c\xaf\xf5\x43\x61\xd2\x4d\xea\xd2\xbc\x1c\xeb\x97\xae\x7e\xea\x5e\x16\xb6\x9f\x9f\x0f\xee\xd9\x46\x27\x0c\x62\xd4\xd3\x91\xe6\x19\x11\xdf\x8b\xaf\x8d\x9f\x1e\xc3\xcd\x11\x61\x74\x4c\x26\x38\xe2\x4f\x1f\x4e\x27\xd1\x48\xf6\x1c\x89\x26\x34\x45\xc6\xe9\x78\xd7\x0e\x86\x3c\x63\x7c\x89\x90\x3a\x62\xf8\x81\x04\xd1\x6a\xbd\x77\x39\x7e\x32\x1a\x41\x08\xca\x3c\x16\x09\x65\x23\x71\xbf\x12\x93\xe5\x77\xd2\x3b\xc6\xab\x19\xdb\x73\x62\xa6\x76\xbb\xe0\xa4\x28\x98\xd4\x59\x8d\xc7\x69\x5c\x42\xb0\x83\xd3\x7f\x6c\xd2\x25\x6d\x47\x6c\x52\x88\x0d\xa8\x7e\x2a\x09\xe4\x7a\xf7\x81\x36\xf1\xb5\x42\x03\xfd\xab\x3f\xb3\x43\x35\xd0\xaa\x86\xfc\x03\x55\xf5\xb9\x42\x95\xc3\xdd\xcd\x7f\x77\x62\xf2\xde\x93\x07\xf7\x07\xfd\xfb\xff\xca\x7f\xbd\xe7\xf9\x7a\x0b\xa1\x42\xfb\x68\x86\xfb\x67\x7c\x26\xf3\x22\x9f\xab\xfe\xf3\x5c\xae\x73\x09\x2c\x58\xd8\xeb\x7d\xcf\xe4\x8a\x17\xe0\x84\x5e\xe5\xfd\x4d\xc1\x48\x7f\x96\xaf\xb7\xa4\xbf\xca\x33\x3e\xdf\x92\x7e\x2a\xb2\x07\xb9\xec\x67\x5c\xf7\xf5\x6a\xa3\x18\x90\x0e\x7d\x5d\xd5\xc7\x54\xb2\xfe\x3c\x97\xfd\x54\x6c\x7b\xeb\x8d\x5c\xe7\x05\xeb\x7f\xe4\x6a\xd1\xcf\x25\xfc\xe6\x1b\xd5\x9f\x33\xd6\xe7\x45\x7f\xc1\x24\xbb\xda\xf6\xaf\x65\x2a\x14\xcb\xc2\x5e\xef\xe2\xd5\x69\xff\xfc\xdd\xcb\x8b\x1f\x4f\xde\x9f\xf6\x5f\x9f\xf7\xbf\x7f\xff\xee\xaf\xaf\x5f\x9c\xbe\xe8\x07\x27\xe7\xfd\xd7\xe7\x41\xff\xe4\xed\x8b\xbe\xce\x74\xf2\xc3\xc5\xab\x77\xef\xfb\x2f\x5e\x9f\x3f\x7f\x73\xf2\xfa\xec\xbc\x7f\xf2\xe6\x4d\xff\xc7\x93\xf7\xef\x4f\xde\x5e\xbc\x3e\x3d\xef\xff\xf8\xfa\xe2\x55\xef\xfd\xe9\x9f\x4e\xde\xbf\xe8\x5f\xbc\xeb\x5f\xbc\x7a\x7d\xee\x55\xfc\xf6\xf9\x9b\x1f\x5e\xbc\x7e\xfb\x27\x28\xf5\xfa\xec\xfb\x37\xaf\x4f\x5f\xf8\xa5\xdf\xbd\xec\x9f\x9d\xbe\x7f\xfe\xea\xe4\xed\xc5\xc9\x1f\x5f\xbf\x79\x7d\xf1\x53\x4f\x37\xfc\xf2\xf5\xc5\xdb\xd3\xf3\xf3\xb0\xff\xfa\x6d\xff\xed\xbb\xfe\xe9\x5f\x4f\xdf\x5e\xf4\xcf\x5f\xe9\x4a\xbc\x3e\xfd\xf1\xb4\xff\xe6\xf5\xc9\x1f\xdf\x9c\xf6\x5f\xbe\x7b\xdf\x3f\x79\xfb\x53\xff\xfc\xfb\xd3\xe7\xaf\x4f\xde\x90\xfe\x8b\xd7\xef\x4f\x9f\x5f\x90\xde\xeb\xb7\xf6\xa9\xff\xee\x7d\xff\xf9\xbb\xb7\xe7\xa7\xff\xf6\xc3\xe9\xdb\x8b\xd7\x27\x6f\xfa\x2f\x4e\xce\x4e\xfe\xa4\xbb\x60\x8a\xba\xd7\x1f\x5f\x9d\x5c\x9c\xbf\x3b\xfd\xeb\xe9\xfb\xfe\xfb\xd3\xf3\x1f\xde\x5c\xe8\xde\xbf\x7c\xff\xee\xac\xf7\xe6\xdd\x39\x74\xf8\x87\xf3\x53\xd2\x7f\x71\x72\x71\xa2\x8b\x7e\xff\xfe\xdd\xcb\xd7\x17\xe7\xa4\xff\xe3\xab\xd3\x8b\x57\xa7\xef\x75\x8f\x4f\xde\xf6\x4f\x9e\x5f\xbc\x7e\xf7\x56\xe7\x7e\xfe\xee\xed\xc5\xfb\x13\xdd\x83\xb7\xa7\x7f\x7a\xf3\xfa\x4f\xa7\x6f\x9f\x9f\xf6\xdf\xbd\xef\xbd\x83\xdc\x17\xef\xde\x5f\xbc\x7e\xf7\xc3\xb9\x2d\x40\xfa\x27\xef\x5f\x9f\xeb\x16\xdf\xfd\x70\xa1\x4b\xbf\x83\x0a\x9f\xbf\x7b\xfb\xf6\xd4\xd4\xa8\xa7\x1b\xe6\xe0\x87\x73\xa8\xe6\xfb\xd3\xf7\x2f\xdf\xbd\x3f\x3b\x81\x5a\x5f\x36\xa7\x3f\xec\xfd\x4b\x41\xba\x7f\xff\x41\x93\xc8\x77\xc7\x69\x87\x7b\x79\x13\x9b\x64\x38\x64\xb1\x79\x0a\x41\x87\x58\xe5\x12\xb8\xc1\x81\x74\x42\x02\xe6\x22\x69\x93\x9c\x4a\xc3\x9b\x30\x7d\x9a\xc6\x49\x4f\xc9\xad\x89\x43\xea\xc5\x73\xdd\xed\xd4\xd1\x51\xff\xd9\x18\x0f\x87\x03\x24\x68\x1e\x0a\xf6\x49\x21\x8c\xc3\x2c\x17\xec\x09\x4e\xad\x1c\xc9\x71\x72\xb3\xd4\x06\x37\xe3\xf4\x96\x69\xc4\x04\x6e\xfd\xb8\x48\x97\xcb\xed\xad\xae\x5f\x0c\x87\x03\x01\x85\x41\x32\x93\x87\xa6\x5b\x78\x38\xb4\x9d\xc9\x71\x95\x9f\xcf\x11\xb7\xb8\x8f\x87\x50\x5b\x75\xde\xa6\x40\x7a\xf1\x56\x48\xcd\xd7\x42\x31\xb9\x96\x4c\x31\x79\xae\x52\xb5\x29\x0e\x46\x68\xad\xe2\x72\x17\x05\xbf\xee\x8e\x98\x58\xec\x05\x3e\x3c\x4b\x67\x0b\x2e\xba\xa3\x0e\x36\x22\x57\xba\x6e\x1c\x0e\x77\xe8\xe3\x7c\x16\xb3\xf0\x6d\xae\xce\x55\x2a\x15\xcb\xe8\x38\xa1\x41\xfd\x1a\x10\xfd\xf9\xfd\x46\x08\x2e\xae\xe9\x24\xa1\x81\x7d\x36\x1f\xce\x55\xbe\x5e\xb3\x8c\x1e\x27\x34\xb0\xcf\x41\x89\xf8\x6e\x87\x38\xbd\x75\x04\x71\xee\xdc\x3a\x7f\x2a\x54\xaa\x58\xc8\x05\x57\x41\xd9\x4d\xb1\x56\x2b\xcf\xa6\x71\x12\xc5\x49\x38\xcb\xc5\x2c\x55\xc8\xf7\x56\x59\xec\xb9\x73\xb4\x15\xbb\xd9\x34\xbf\x60\x77\xc4\xda\x21\xe2\xdb\xf1\x03\x1d\x00\x23\x46\xf7\x02\xea\xb1\xe1\x50\x73\x3d\x31\x4b\xa6\xfa\x4f\xc4\xf0\xd4\x34\xc8\xca\xa8\x63\x0b\x30\xf7\x15\x22\x32\x10\xf6\x89\xcd\x74\x4e\x4f\x13\x73\x73\x80\x36\xaf\x1c\xe2\x51\xea\x3b\xc0\x9c\x79\x6e\xed\xf7\xfa\x56\x77\x85\x35\x42\xfc\x79\x4a\xa6\xce\xf8\x6b\x96\x0b\xf0\xb4\xa9\x88\x89\xe2\x51\x44\x71\x42\x66\x8b\x54\x5c\xb3\x2c\x1a\x4c\x08\x38\x16\x64\x45\xa4\xbb\xd7\x0c\x1b\xe7\x4b\x17\x14\xe1\x74\xe0\x88\xc6\x98\x85\x73\xbe\x54\x4c\x36\x29\x35\x3e\x47\xad\xc5\x00\xbe\xde\xf8\xdb\xe7\x74\x30\xee\x19\x5a\xce\x32\xde\x26\x0f\xba\x2d\x89\xa8\x3c\xe1\x77\xcc\x6b\x58\x2f\xe8\x54\xd3\x81\xf5\x2b\x12\x44\xe2\xc8\x17\x76\xf9\x5f\xbb\xe4\x5d\x1c\xdf\xaa\x98\x27\x5d\x28\xcc\x2f\x1a\xf3\x64\xda\x7a\x37\x6d\xb5\x12\x4b\xb8\xe7\x52\x64\xe0\x22\x77\x0f\xc6\x90\x44\x78\xd2\x88\x02\x07\xb8\xb3\xc2\x6a\x26\x6e\x5e\x25\x1d\x14\x68\x81\x52\xc4\x42\x98\xb8\x22\x36\x3b\x84\xa7\xcb\x24\x64\x42\xc9\x2d\x3e\x18\x69\x00\x20\x3a\xb4\x8b\x8a\x75\xc3\x2c\xb4\x8b\x4d\x72\x4c\x8e\x41\xd4\x13\x8f\x35\x89\x2b\xe3\x49\x42\xe6\xf4\x76\x96\x8b\x39\xbf\x8e\x18\xb9\xac\x74\x8f\x89\x6d\x4e\xe3\x2c\x16\x39\xa8\x71\x9d\xa8\x60\x86\x57\x70\x54\xf8\x10\xe3\xf2\x69\xd2\x4c\xa6\xa2\xe0\x20\x6b\xae\xa1\xdb\x01\x10\x68\xae\xec\xef\x31\x35\xb5\x0d\xaa\xaa\xfa\x6a\x0c\x65\xa4\xc8\x9a\x16\xd6\x1a\x71\x45\x8b\x6a\x70\x37\x60\xac\x44\xae\x69\x35\x69\x6b\x38\x67\xae\xc3\xdc\x4a\xe8\xae\x68\x0a\x6f\xf1\x0d\x40\x5f\x82\xab\xe3\x45\x7f\xdd\xd2\x7d\xfe\xe2\x8e\x43\xad\x75\xa4\x11\x10\xa5\xb0\x58\x25\x44\x18\x9f\xc0\xd5\xf1\x56\x1d\x69\xe0\x26\x6f\x38\xdc\x93\x0b\xb6\x84\xe6\xb7\xfa\x3c\xeb\x10\xe8\x30\x88\xc7\xee\x45\xd3\x67\x56\x0c\x8b\x89\x5b\x20\xdd\x03\x31\x1a\x25\x44\x9f\x66\xd1\x80\x95\x65\xd9\xab\x29\xf5\x8b\xed\xda\xba\xd6\x50\xd3\xc0\x6c\x10\x4d\x16\x8a\x5c\xf5\x61\x18\x57\x4b\x16\x06\x51\xd0\x1a\x99\xcb\x92\xb1\x39\x17\x2c\x0b\x03\x5c\xa2\x2b\x4c\x2e\xe9\xd6\x1e\xbc\x4f\x06\x97\xe6\xe8\xad\x93\xcc\xfc\x7d\xa4\x97\x66\x9d\x1a\x11\xe8\x3f\xba\x79\xc9\xd0\x9a\xac\x0c\xbc\x9f\xee\x03\xc1\xc7\xe9\xad\x4a\xe5\x35\x53\xd1\xc7\x32\xfa\x48\x3e\xd1\xd3\xd0\xbc\x93\x77\xf4\xd4\xc1\x37\x39\xa7\x55\xbd\xef\xf4\xe9\xf0\x8e\x5c\xd0\x53\x0d\x12\x19\x39\xab\x3f\x7d\x82\xcb\x8a\xea\xf5\x62\xba\x37\xb9\x83\x71\x19\x5d\x60\xb4\x22\x37\xb6\xef\xdf\xd7\x60\x64\x82\xbe\x7f\x9a\x7e\x8a\xd6\x09\x39\x81\x9d\x89\xce\xa6\x29\x3a\xc7\xde\x61\x74\x1d\xb2\x4f\x5c\x91\x73\xf2\xbd\xdb\xa0\x5d\xb8\xb0\xf2\x3d\x8b\xf1\xdd\x3b\x78\x1e\xba\xbd\xd8\xd8\xca\xba\x7f\xe4\x21\x26\xcf\xe9\x89\xde\xc2\x1f\xe8\x89\xde\xc2\xef\xe9\x49\x7c\x9c\x90\xbf\x53\xaf\xa7\xbd\x06\xbe\xff\x7b\xb5\x91\x3e\x54\x7b\xf7\x79\x85\xee\x3f\x0d\x28\x5d\xef\x76\xcf\xab\xa0\x1d\xbb\xdd\x7b\x6f\x3b\xff\x1d\x97\x65\xf9\x79\x32\xea\x72\x38\xb4\x80\x00\x82\xe2\x6d\x4d\x46\xe5\x66\x03\x6c\xef\x26\xa3\xca\x06\x58\x94\x55\xe0\xdf\x79\x69\xc2\x37\x75\x8a\x05\x99\x9b\x9e\xee\x6b\x0c\x2b\xba\x08\xf5\xb9\xeb\xea\x13\xc3\xa1\x40\x35\x4e\x54\x20\xe8\xaf\x29\x8f\x95\x2f\x5d\xf0\xb1\x20\x91\x94\x7b\x44\x11\x11\xc0\x4f\x9f\x33\x45\x52\x7a\x7b\xb9\x32\x84\x58\xc4\x48\xc1\x44\x56\xef\xde\x1c\xdf\x4a\x4a\x29\x77\xf4\x12\xa0\x79\x16\xd6\x68\x11\x01\x5a\x5e\x23\x45\x66\x28\xd7\xc7\x44\xc7\x48\x3c\xc8\x41\xd0\x5f\x5c\x92\x62\x73\x55\xcc\x24\xbf\xf2\x44\xbf\x75\x36\x11\xa6\x59\xa6\x89\x68\x9d\x9f\xdc\x6e\x44\x47\x6e\x2f\x73\xc6\x96\x4c\x31\x38\xe9\x4b\x62\x1c\x41\x57\xd9\x84\xb1\xea\x30\x73\x52\xd0\x20\x07\xbc\xd1\x88\x30\x1c\xdd\x36\xd0\xf4\x9c\x5f\xd7\x48\xd9\x98\x72\x97\x3d\xe5\xcc\xba\x1d\xea\xf6\xc9\x0e\x77\x86\x54\xc5\x6a\xe0\x2b\x1c\x19\xef\xc0\x43\xd6\x73\x09\xb3\x96\x63\x92\xea\x4e\xe7\xeb\x8e\xa1\xe9\xcc\x96\x06\x25\x22\x9c\x2d\x59\x2a\x11\xe4\xbf\x66\xe0\x70\x5d\x79\xae\xa5\x55\x9d\xba\x29\xbc\x2a\x6a\x48\x4c\xbf\x2c\x9a\xbe\x95\xf8\xc6\x5f\xa5\xf1\x42\xb2\x79\x12\x89\x5c\xa1\x58\xa5\x57\x5c\x64\xec\xd3\x7f\xd0\xe0\x28\x48\xf0\x57\xe4\xab\x54\xb2\xcf\xe4\x80\x58\x32\xf6\xe3\x76\xcd\x68\xb0\xe0\x59\xc6\x44\x90\x60\x3f\x51\xa6\x19\xcf\xab\xb4\x8c\x17\x1a\x91\x67\x55\x9e\xee\x5a\x9b\x65\xbf\xa8\x68\x34\x5b\xb0\xd9\x07\x96\x7d\x45\xbe\x32\x46\x06\x5f\xda\xa0\x5e\x52\x3d\xd8\x2f\xcd\x7f\xb5\x51\x2a\x17\x5f\x3c\x9c\xb9\x4c\x57\xec\xe0\x24\x6f\x32\x9e\xc7\x1a\xae\x64\xbe\x2c\x0e\xce\xf4\x0d\xcf\xd8\x17\x64\x83\x1c\x4c\x28\x96\x71\xa5\xbb\x75\x38\xa3\x4b\x3a\x90\x23\xd9\x93\x37\xc3\xfd\xce\x65\xb1\xc8\x3f\x52\x78\xd4\x4f\xf6\xc2\x6c\xc1\x0b\x4c\xcc\xf7\x05\xcf\x98\xf9\xae\x9f\xf6\xbf\xaf\x52\x2e\x54\xca\xc5\xcb\x7c\xb6\x29\x68\x47\xda\x7e\x11\x9d\xf0\x17\xb6\x5d\x4b\x56\xb8\x12\x7e\xd2\x7e\x81\xb5\x64\x37\x3c\xdf\x14\xcb\x2d\xd4\xc8\x32\x38\x77\xcc\x47\x3d\x3f\x29\x17\x4c\x52\x73\xcd\x12\x66\x3c\x5d\xe6\x9a\x26\xfb\xc7\x86\xc9\xed\xb9\xf5\x51\x84\xbe\x32\xe9\xa4\x1f\xcb\x7c\xc9\x68\x60\x5e\x83\xa4\x4a\x48\x97\x4c\x2a\x97\xfa\x95\x6d\x1a\x3e\x79\xd5\x86\xd7\x4c\x9d\x28\x2b\x13\x43\x81\xfe\x1c\xe0\xdd\xce\xd5\x66\x0a\x6d\x0a\xf6\xc2\x74\x22\xd0\x73\x1a\xb8\x7b\x3a\xdb\x03\x33\xa6\x25\x2f\x14\x13\x4c\x16\xf4\xb6\xb4\x23\x31\xb7\x42\xaa\x1d\x30\xcc\xe2\x82\x3b\xee\x55\x59\xe3\x72\xd1\x3f\xad\x72\x84\xd4\x6e\x97\xe5\xb3\x8d\x61\x45\x1a\x73\x72\x02\x45\xdb\x3c\xad\x39\x89\x40\x20\x22\xf7\x66\x31\x88\xd3\x8d\xca\xe7\x7a\x15\x12\x3d\x70\x15\x8f\x93\x9e\x1c\x0e\x65\x08\x69\xbe\xab\xfc\xa5\xd7\xf7\x14\x09\x17\xf0\x2a\xc0\x84\xdd\x45\xaa\x0c\x06\x88\x85\xc6\x43\xd0\x8f\x3c\x53\x8b\xdd\xce\xbd\xbe\x62\xfc\x7a\xa1\xf4\xfb\x35\x53\xcf\x97\x9c\x09\xf5\x9e\xcd\x54\x81\xb0\xa3\x66\x1b\xc1\xd6\x36\x08\xdf\xa6\x28\x88\xb3\x54\xa5\x47\xe9\x64\xb2\x3d\x32\xf3\x9f\x04\x5d\x1c\x19\xc3\xb7\xfa\x70\xd5\x5b\x83\xb5\x16\xb9\x5d\x81\x1e\xb7\x25\x83\x75\x83\xdc\x5b\x13\xb3\x84\xfb\x64\xbd\xe7\x69\x03\x16\xdf\xd0\x95\x0e\xf8\xed\xdb\x6e\xd7\x71\xae\xbe\xcd\x33\xf6\x86\x17\xca\x6b\x84\x17\xdf\xbb\xe7\x77\x73\xc4\xf0\x54\x43\x49\x64\xc3\x63\xdd\x95\x2f\x66\x49\xd4\xc1\xc2\xa7\xba\xb8\x19\x50\x09\xd1\xc1\x11\x92\x54\x03\x0e\x6d\x6e\x30\x1c\xae\x53\xc9\x84\xd2\x5d\x0a\xc1\x77\xbf\x7e\x2a\xee\xa4\x3b\xcd\x8d\xba\xc8\x33\xa6\x59\x01\x20\x42\x8d\x5e\x04\x92\x21\xa0\xa7\x77\x73\x4d\x2f\x4c\x30\x91\x76\xc7\xe9\x1d\x23\x1a\x5b\x6e\x91\x16\xde\x6a\xe4\x6b\x88\xa5\xe5\x67\x28\xf6\xf7\x64\xbd\x7b\x71\x6b\x4f\x4e\x51\x73\x54\xad\xd2\xed\xc5\x3e\x12\xa9\xe2\x37\x2c\x20\x81\x6b\xb4\x2e\x29\xd9\x2a\xbf\x61\x5e\xe1\x54\xf2\xf4\xc8\x9e\x98\x18\x47\xf5\x78\xa6\xbf\xaa\x64\x74\x67\x0f\xfd\xac\x64\x30\x76\x38\x52\xcf\x8b\xc6\x26\x29\xfa\x6a\x0f\xe4\x8f\x00\xc9\x07\x5f\x8d\x5a\x15\xf3\x6c\xf4\x55\x8d\xeb\x5c\x15\xd5\xee\x68\xc8\xe7\x34\x7d\x77\x7a\xc3\x84\x7a\x63\x11\x17\x0a\x66\x4b\x3e\xfb\x60\xa7\x1a\xce\x11\x5c\x7a\xb8\xdb\xd5\x3a\x5b\xe6\x85\xe9\xd8\xfe\x5e\xd4\xe3\x60\x49\x40\xda\x80\x66\x59\x9c\xce\xb1\xc0\x81\x74\x78\x2c\xad\x66\xff\xb9\xc1\xe8\x36\x3a\x07\x33\xe7\x92\x21\x2b\x09\xb5\x00\x51\x12\x1f\x03\xc0\x4c\x1f\xd2\xbc\x00\x58\xd8\xed\x90\x07\xe8\x83\xf1\xc1\x33\xce\x61\x6d\x60\x38\x6e\x98\xdd\xe0\x6d\x70\x6e\x6c\x84\x45\xfe\xf1\x2c\xcf\xd2\x25\x62\xe0\x8d\x32\x15\x33\x08\xba\xaa\x47\xea\x34\xf6\x19\x8e\xd0\xe1\xcd\x03\xbb\xeb\xd7\xc3\x3a\x69\x20\xb2\x6e\xf4\xca\x5a\x1b\xb9\x51\xc1\x70\xc8\x3e\xb7\x11\x73\xc9\xaf\x35\x33\x77\xd4\xd8\x00\x6d\x64\xdd\xdc\x82\xa4\x5d\x6b\xa3\x6c\xa0\xe4\x86\x05\xc0\xdd\x90\xc2\x9f\x14\x4c\xaa\xb9\xbf\xca\xb3\x6d\x07\xb4\xc0\x69\x17\x74\x91\x40\xb0\x25\xeb\xa5\xdb\x2b\xf9\x81\x6d\xb3\xfc\xa3\x08\x3a\x68\xa1\x26\x90\x01\xe9\x40\x18\xee\x82\x32\xd8\x03\x77\x42\xd9\xb4\x01\x64\x93\xbb\xa0\x06\x76\xca\xaf\x80\x98\x3d\x50\xf0\x51\xf2\x17\x61\x2d\x3b\xf1\xff\x0c\xd4\x7c\x19\x58\xe0\x29\xba\x73\xe5\x3f\x77\xc4\x1f\xa8\xd5\x84\x65\x6c\x8d\xfe\x4b\xcb\x46\x1d\x65\x1b\x39\x00\x0e\x0f\x20\x83\xe1\xf0\xc0\x07\x43\x77\x7d\xe6\x33\x6a\x03\xb4\xe9\xc8\x3f\x09\xd3\x9d\x85\xbf\x18\xac\x35\xe8\x06\xc4\x1e\xcb\xe6\xa8\x6b\xc2\x76\xc6\x0a\x25\xf3\x2d\xdd\xe7\xad\x2b\x2e\x04\x7d\xd9\x89\xd5\xd9\xd1\x5f\x75\x68\xfd\xd3\x15\x7f\xe6\x00\xb1\x63\xac\xb6\xc0\x1e\x33\xd0\x9c\x92\x5c\x74\xcb\xa2\x6a\x59\x7e\xb3\x96\x98\x25\xc3\x21\xda\x4f\x84\x88\x57\xfb\xc9\x75\xbc\xaa\xfd\x96\xe7\xf3\x4e\x25\xbe\x8e\xca\x77\xbb\x38\xc1\x1e\x51\x57\xf9\xea\x7b\x76\x34\x71\xf0\xd9\x68\xd5\x11\x82\x9a\xfa\xdb\x6f\x19\x66\xaa\xd5\xf6\xc1\x56\x3b\x97\xa9\x45\xe8\x11\xd5\x5c\x90\x56\x73\x0d\xa6\xd4\xaf\xa7\x81\x2a\x4d\x65\x05\xea\x3e\x9b\xb1\x9b\x75\x40\xbb\xc3\xe1\xb1\x71\x38\xf3\x71\xc1\x67\x8b\xe1\xb0\xc1\x61\x0e\xec\xa2\x69\x12\x75\x38\x44\x2c\xd4\x5b\x97\x09\xf5\xc2\xc4\x0c\x76\x10\x0e\xd0\xee\xce\x00\x57\xed\x77\x7e\xad\x5d\xab\xb3\x34\xd1\xd6\x6a\x12\xfb\x40\x77\x7b\x2a\x2c\x16\x7c\xae\xfe\xc2\xb6\xc6\xec\x5b\x4c\x91\x8c\x65\xad\xe1\x5f\xa1\x0f\xb5\xd7\x3f\x1c\xd5\x85\x77\x3b\x31\xa0\xb4\x2e\xb7\xdb\x21\x19\x8f\xef\x2c\x5d\xfa\x47\x0a\x61\x7b\xcb\xd1\x14\x2b\x74\xe9\x61\x99\x63\xe3\x73\x88\x1c\x4e\x51\xdc\xf3\xa7\x6f\xd0\x3a\xa8\xaa\x45\x75\x75\xe2\xe1\x50\xb9\x4d\xe5\x13\x98\xc3\x61\xd1\x82\x29\x5c\x92\x60\x23\xec\x3d\x45\x30\x70\x3c\x95\x9b\xee\xe1\x10\x05\xcb\x3c\xcd\x0c\xc3\x45\x3d\x0c\x9a\x66\x5b\x10\xf1\x4e\xef\xa0\x14\x5e\xbc\x3b\x7b\x6e\x84\x3f\x6f\xf2\x34\x63\x59\x40\x36\x38\xfa\xc8\x45\x96\x7f\x0c\x25\xfb\xc7\x86\x15\xea\x44\xf0\x15\xe8\xf4\xbc\x94\xe9\x8a\x4d\xef\xfa\x88\xea\xc2\x05\x53\x17\x7c\xc5\xf2\x8d\x42\x1b\x32\x79\xac\xa1\x2b\xb4\xb1\xaa\x29\x2f\xef\xd6\x26\xbb\xda\x2a\xf6\xc6\xc4\xc8\xde\x5f\x14\x2b\x34\x50\xf1\x38\x21\x82\xaa\x78\x52\x29\xaf\x3d\xbc\x8f\xe4\x48\xe0\x07\x8f\x8e\x44\x49\x54\xa8\xf2\x3f\x6e\x15\x03\x89\x46\x17\xb3\x4c\x72\x6a\x15\x32\x72\x73\x6f\x98\xc7\x93\x84\x6c\xa8\xe1\xd0\x0f\x18\x6d\x3c\xbc\x8f\xd4\x48\xea\x26\x64\x89\xc6\x24\x25\x1a\xe9\xce\xe8\x98\x64\xb4\x78\x36\x9e\xa6\x47\x8f\xa2\xd4\xd3\x1f\xcd\x9e\xc8\x11\x7d\x84\x15\x15\x71\x2b\xf4\x61\xf2\xf4\xe9\xe4\xdb\x5d\x3b\x79\x34\x81\x0f\xc7\xfb\x1f\x8e\xf5\x87\xc7\xfb\xe9\x0f\x71\x42\x36\xf1\x6c\x34\x4a\xa8\x7a\xf6\x6c\xf2\x78\x78\xfc\xf5\xd7\x5e\xc2\xb7\xfe\xfb\xf1\xd7\x5f\x0f\x2b\x87\x0e\xc7\x94\xd2\x02\xc4\xf6\x5d\x7d\xeb\xe8\xc1\x04\x27\xcf\x9e\x3d\x6a\xd4\x85\x41\x99\xfd\x70\x2d\x93\xf1\x81\x11\x3e\xea\x1c\xe0\xb3\x67\xc7\x77\x76\x1d\x93\x8d\x5e\xd7\xb9\xcc\x57\xdd\x2b\xeb\xee\x3c\x15\x04\x70\xb7\xaa\xbf\x9c\x8a\x3f\x3c\x34\x56\xef\x29\x1d\x93\x82\x8a\x23\xfe\x24\x7d\x5a\x3c\x49\x47\x74\xf2\xf8\xe1\xb7\x0f\x9d\x0d\xfa\x06\x31\x92\x92\x74\x04\x89\xcf\x8a\x69\x11\xd9\xe7\x2a\x76\x3d\x48\x1a\x38\xe8\x2d\x82\xe2\x27\xb1\x25\x65\xac\x9e\x3d\x3b\x4e\x46\x32\x56\x4f\x9f\x3e\x1a\x3e\x7e\x98\x8c\x02\x4a\x35\x39\xa6\x67\x99\xc3\xfc\x20\x5d\xe4\x38\x79\xfa\xf4\x5b\x3c\xea\x28\x3d\x19\x43\xf1\x67\xcf\x4c\x71\xa8\xe9\xd8\xd6\xa4\x69\xc2\xbc\x76\x4d\x58\xa9\x48\x5a\xd3\xb8\x38\x21\x9c\x76\x61\x88\x1f\xb8\x50\xdf\xc2\x2c\x4d\xeb\xc7\x08\xfe\x92\x9c\x06\x27\x7f\x7c\xfe\xe2\xf4\xe5\x9f\x5e\xbd\xfe\xf3\x5f\xde\x9c\xbd\x7d\xf7\xfd\xbf\xbd\x3f\xbf\xf8\xe1\xaf\x3f\xfe\xfb\x4f\x7f\x4b\xaf\x66\x19\x9b\x5f\x2f\xf8\xdf\x3f\x2c\x57\x22\x5f\xff\x43\x16\x6a\x73\xf3\xf1\xd3\xf6\x97\xf1\xe4\xf8\xe1\xa3\xaf\x1f\x7f\xf3\xed\x77\xa3\x07\x81\x9d\xcf\xdc\x59\xc8\xe8\x49\x1d\x8d\x52\x2c\xe3\x34\xa1\x79\x9c\x26\x44\xc4\xb9\xbf\xca\x29\x4e\x68\xda\x6b\x0a\xef\x5a\x1a\xaf\x7c\x8e\xd4\x1f\x1e\x3d\x1b\xef\x87\x93\x7d\x2d\x20\xb4\x6e\xdf\xc8\x96\xc2\xbe\x41\x10\xfd\xd5\xa6\x50\xfd\x2b\xd6\x4f\xfb\xab\xcd\x52\xf1\xf5\x92\xf5\xf3\x79\xff\x51\xe0\x34\x0e\x58\x75\x3e\xe9\x89\xb4\x0b\x79\xa4\x17\x52\x1a\x03\x6d\x4c\x62\x09\xa6\xe3\x6a\x3a\x8e\x1e\x1d\xc9\x3f\x3c\x4a\x1a\x6a\x2c\x44\x11\x51\x83\x16\x27\x39\xa8\x70\x91\x82\xaa\x27\xc5\x53\xf1\xa4\x18\xd1\x87\x98\xeb\xe5\x2d\x34\xc4\x3f\x1e\x4e\x1e\x7f\x33\x99\x3c\xfe\x76\x8c\x47\x3a\x6d\x34\xd1\x4b\x3e\x7c\xfc\xf5\x31\xa4\x68\x38\xd6\xa9\xc7\x09\x26\xa9\x5b\x7e\x94\x53\x8e\x9f\x3d\x9b\x7c\x6b\x97\x3e\x7f\xf6\x6c\x72\x5c\x3f\x3f\xb6\x8f\x8f\x1f\x0e\xf3\xa4\x02\xc5\xb4\x06\x08\x11\x07\x47\x81\x3f\xcf\x63\x9c\xd0\xc7\xc7\x44\xc4\xc1\xe5\x7e\xfa\xc3\xa6\x1e\x6c\xef\xc1\xfd\x41\xaf\x7f\xbf\x3f\x5b\xf2\xf5\x55\x9e\xca\x2c\xfc\x7b\xd1\xbf\x39\x0e\xc7\xe1\xb7\x3a\x79\xa1\xd4\xba\x88\x1e\x3c\xa8\x3e\xff\x5d\x9f\x4c\xab\x07\xbd\xfe\x7d\xfd\xf9\x0d\x9f\x31\x51\xb0\xac\x7f\xf6\xfa\xa2\xff\xdf\xfe\xf7\xfe\xdf\x98\xc8\xfb\xef\xf3\xd9\x22\xed\xf5\xef\x3f\x30\x2a\x30\x3d\xd5\x41\x66\xb7\x4c\xd3\x19\xbd\x9d\x3c\x7c\x14\x7d\x81\x4d\xc2\xad\x3d\x44\x3a\xae\xc5\xae\xca\xb2\xb6\x4b\x38\xfe\xe6\x3b\xd0\x09\x09\x85\x31\x00\x92\xe8\xe1\x37\x63\x50\x66\x0f\x85\x31\x01\x90\xe8\xdb\xc9\x37\x98\x2c\x21\xa5\xf0\x54\xe5\x3d\xdd\x25\xb4\xb9\x4b\x59\x22\x28\xe0\xa1\xfd\xa1\xd2\x31\x98\x76\x71\xcf\x56\x22\x5a\x76\x5d\x70\xb2\xe1\xf0\x2e\x85\x43\x4d\x13\x14\x4a\x6e\x66\x2a\xd7\x00\x5b\xa5\x0f\xdc\x73\x4d\xdc\x4c\x5d\xdf\xa2\xaa\x41\xdc\x10\xe1\xcf\xcc\xc9\x5b\xe3\x12\x7d\x5e\x39\x7b\x89\x27\xd2\x19\xbb\xe9\x13\x56\x26\x3d\x11\x32\x08\xd7\x92\x5e\x2d\x19\xf5\x5f\x76\xbb\xc1\x04\x82\xf7\x8a\x39\xbf\xde\x98\xef\x83\x31\x09\xe0\x7a\x33\xe0\x70\x2f\x8d\x44\xf8\x51\x9a\x9b\x25\xaa\x99\x3c\xab\xc4\x64\xf0\xd5\xf7\x32\x5f\x33\xa9\xb6\x88\x11\x11\x7e\x60\x5b\x22\xb0\x31\xdb\xcc\x7c\xa8\x69\x5a\x3a\x0c\x9a\xd4\x03\x04\xa4\x6e\x88\x16\x94\x1f\x8e\xba\xd6\x0f\x09\x9e\xa7\x42\xe4\xaa\x3f\x4b\x97\xcb\x7e\xda\x87\xf0\xca\xfd\xb4\xe8\xa7\x15\x38\x06\x96\x66\x74\xbc\x63\x28\x59\x91\x2f\x6f\x98\x0d\x77\xe6\xf8\x17\xb8\x41\x37\xf7\x15\xd0\xbf\x72\xcf\xd5\x35\x78\x63\x88\x6f\x3f\xb0\x6d\x14\x34\xeb\x70\x21\x0a\xf6\x76\x40\x5b\x45\xfe\xd9\x78\x38\xac\x1d\x5a\xb9\x8f\xf1\x38\x99\xfa\x2f\xd1\x6d\x69\x08\x4f\x73\xf3\x4c\x9d\xea\xc0\xde\xc5\x95\xcf\xa4\xe8\x4f\x6c\xc5\x95\x82\x0f\xf6\xc9\x24\x1b\xea\xb4\x22\x7d\x6d\x22\xfb\x04\x49\xa0\x59\x00\x09\x92\x5f\x5f\x43\x61\xfb\x64\x79\x07\x98\x12\x96\x5d\xe8\xfc\x41\x50\x96\xc4\xcc\x40\x63\xba\x3a\x26\xa0\x6a\x64\xea\x55\xf3\x32\xfd\xc0\x90\x95\x53\x9b\xce\x58\x0e\xcf\x7c\xbe\x80\x24\x84\xab\x46\x8c\xc0\x54\x97\xb2\xac\xc7\xc1\x99\x0e\xa4\x5a\x36\x68\x65\xf7\xe0\xee\x37\x5a\xf4\x3e\x97\x8e\xba\x9f\xdb\xda\xeb\xa2\xa6\x55\x5b\x10\x05\xee\x52\xd8\x71\xdd\xae\x40\x58\xa8\xed\x92\x85\xf3\x5c\xa8\x73\xfe\x0b\xa3\xc1\xe4\x78\xad\x82\xce\x3c\x57\xb9\xcc\x98\xf1\x66\xd0\xf5\x79\x9d\x66\x9a\xd6\x3f\xf8\x7d\x95\xca\x6b\x2e\x0e\x17\xcf\x8d\x82\x06\x0d\xd2\xab\x22\x5f\x6e\x14\xeb\xcc\x17\xb3\x69\x00\x2a\xfe\x41\x14\x2c\xd9\x5c\x05\x09\x0d\x8e\xbe\xfb\xee\xbb\xef\xd6\x9f\x02\xab\xd9\x68\x09\xfd\x75\x7a\xcd\x7e\x7a\x07\x97\x67\xf5\x25\xe0\xde\x8c\x16\x33\x99\x2f\x97\x17\xf9\xba\x71\x47\xd5\xea\x9b\xca\xd7\x34\x08\x9c\x60\x5e\x91\x60\xfd\x69\x7f\x1e\x9b\xf7\x30\x2c\xcd\x72\xb1\xdc\x7a\xe2\xe4\x2a\x27\x2c\x3e\xad\x40\xab\xf9\xb5\x82\x9a\x1a\xd6\x0e\x82\x0b\x20\x04\x77\x51\xd5\x06\x32\xe4\x41\xc6\xab\x54\x64\x4b\x26\x9f\xa7\xcb\xe5\x55\x3a\xfb\xd0\x71\xec\x39\xb1\x8e\x81\xed\x92\xb4\x8b\xb6\xf9\xc1\xbb\xaf\x10\x3a\xda\xc4\xbb\x9d\x93\xf6\x7b\xb5\xac\xd7\x4c\x64\xcf\x17\x7c\x99\x55\x18\xac\xb1\x55\x97\x08\x57\x1f\x66\xf9\x7a\x7b\x01\xea\x6e\x0e\x03\x7a\x1d\x76\xb3\x56\x27\x1e\xda\xcd\x5e\xdf\x9c\xc0\xa2\x2d\xe8\xff\x95\x23\xdb\x9f\xac\xfa\x82\xbe\x6b\xf6\x8d\xab\xa5\xc6\xaa\x1f\xea\x89\x9d\x1a\x3f\x6b\xab\xa4\xa9\xad\x05\x35\x06\x05\x1d\x9a\x81\xfd\x19\xae\x31\xd9\xde\x5c\xd7\x58\xcc\x26\x1d\x82\x46\x50\xee\x64\x35\xfe\x61\x9f\xd8\xec\x79\xbe\x5a\xa5\x56\xe6\x64\xd1\xbf\x33\x10\x50\xf8\x96\xd1\xc1\xa4\x34\x82\x1e\x98\xa1\xf7\xac\xd8\x2c\x41\xcf\xdc\xb5\xe9\xa7\xef\xb5\xeb\xa4\x53\xf6\x94\x80\x5f\xa4\xe9\x8b\xcd\x6c\xc6\x8a\x22\x88\x02\xd0\x74\x0b\xc8\xad\x69\x39\xf2\x7a\x41\x8c\x32\x76\x7b\x36\x88\x3d\x34\x22\xff\x2c\x21\xa0\xc7\x54\x9d\x12\xf6\x7e\xb2\x91\xe6\x49\xd6\x4a\x6f\xc6\x1a\x79\x0e\x9e\x2e\xa6\x15\x7b\x84\xd8\xb7\x7d\xc9\x75\x43\x76\x15\x5e\x2d\x37\x12\x61\x62\x31\xdd\x35\xf3\xcf\x7c\x27\x68\x5f\x2e\x21\xb8\x5b\xe1\xad\xa1\x93\xbc\x1e\xe8\x4a\xe7\x8e\x4a\x6d\xef\x0b\xa6\xfe\x65\xa4\x01\x00\x53\x00\x3c\x15\xc8\x34\x1d\x89\x40\xcc\x07\x27\x1e\xb4\xe9\xc3\x61\x30\xdb\xa8\x76\xea\x1e\x23\xf6\x95\x63\xc4\x5c\x97\xfb\x46\xf3\x0d\x42\xd4\x31\xae\x16\x4c\xf6\x4d\xfd\xfd\x5c\x3f\x6d\x54\xf0\x15\x06\x25\xb4\x0e\x92\xdd\x6f\xa9\x9a\x0a\x65\xb7\x55\x63\x2a\x8c\xca\x7d\x35\x68\x66\x2d\xf6\x76\x3b\xa7\xba\x37\xa0\x74\x03\x9a\x05\x93\x81\xaf\x0e\x70\x47\xff\x6d\x3b\x7e\xff\xd3\xbe\xf9\x66\x01\xe0\x2b\x50\x6e\x36\xa3\x71\xc2\x3a\x37\x59\x7b\x97\x46\x56\xa5\x2b\xc0\x5f\xd0\x64\xea\xca\x85\xfd\xef\x97\x2c\x2d\x18\xb4\x5e\x1f\x67\x2e\xce\x9f\xe6\x65\xeb\x9a\xeb\x62\xae\x63\x1b\xb5\xd7\x2f\xd4\xee\x58\x55\x29\xde\xed\xee\xe8\xf4\xaf\xeb\xf5\x4f\xf9\xa6\x3f\x4b\xc5\xcf\x5f\xa9\xfe\x6c\xa3\xfa\x7a\x9f\xf7\xe7\x32\x5f\xb9\x30\x38\x85\xb1\xd6\xf3\x46\xa4\x81\xa1\x63\x24\xc5\x57\xf6\x00\xbd\x74\x94\x67\x79\x37\xb0\x98\x6c\x65\x99\xe0\xe1\x70\x86\x3c\x5d\x14\x22\x31\x61\x25\xf2\x18\xb9\x85\xc7\xc8\x2d\xfe\x67\x65\xe4\xe6\xff\x95\x19\xb9\xaa\x97\x6b\xff\x4e\x09\xad\x9d\x59\x4c\xc1\x94\xa7\x3f\xe4\x2b\x27\x35\xb4\xa1\x2f\x2f\x61\x3e\x2e\x2f\xa9\x22\x30\x7e\xe2\x2b\xb0\xad\xfc\xdc\x03\xd5\x40\x09\xfa\x04\xf4\xd7\x62\x50\x5b\x63\x74\xa2\x16\xf0\x3e\xe8\xc5\xed\x64\x73\x26\x99\x98\x39\x06\x52\x83\x60\x7f\x91\x16\xe2\x2b\xd5\xbf\x62\x4c\xf4\xad\x2a\x35\x2f\x58\xd6\x3f\xea\x17\x9b\x35\x93\x08\x37\x72\x68\x66\x13\x22\xec\x56\x5a\xf2\x88\xe1\xc8\xf3\x80\x75\xe3\x41\xe9\x4d\xf7\xc4\x4c\x6d\xea\x75\x23\xb5\x13\xf0\xea\xb9\x72\xbe\x72\x5a\xa5\x34\xf0\x34\x21\xe8\xba\x61\xf0\x08\xb7\x1b\x95\xb8\xe7\x28\xa8\xed\xd2\xe0\x20\x69\x22\x10\x89\x71\xe5\xe9\xa7\xc1\x34\x49\xc3\x13\x5f\x35\xe4\xb3\xfb\x7c\x7b\xd7\xc2\x0c\x87\x46\xe1\x9f\xaa\x6e\x26\xfe\x5c\x4f\x72\x9f\x7d\x82\x5b\x34\x58\xff\x4d\xa1\xdc\xc9\x73\xc5\xfa\xba\xb4\xc6\x36\x3e\x57\xdf\x63\xf5\x8e\x6a\xf9\x42\x01\x6f\x1f\x35\x12\xb9\xf5\xb6\x66\x65\x21\x44\x1c\xd8\x47\x83\x31\xf1\xb7\x48\x34\x18\x97\x25\x26\x6a\x38\x34\x00\x5e\xa2\x9c\x30\x23\x84\xb2\x8e\x30\x3a\x6e\x30\x3c\xcc\xa6\xa7\xa0\x96\xdc\x56\x88\xe2\x3d\x9b\x6b\x3a\x63\xb7\x1b\xd8\xa7\x1a\x61\xd8\xf9\x1e\x4c\xf4\x6a\xec\x7d\x0d\x8b\x45\xba\x6a\x64\xe9\x40\x43\xdf\xcb\xfc\xd3\xd6\x65\x1a\x03\x41\x69\x17\xf1\x45\xaa\xbc\x89\x0a\x55\x7e\x6e\x84\xad\xa0\x00\xba\xd7\x18\xd2\xd9\x09\x84\x99\xac\x47\x04\x0a\x06\x83\x71\x6d\x58\xe1\x3a\x53\x96\x68\xdf\x1d\x84\x73\xd6\x21\xe8\x8d\x03\x30\xe7\xa3\xe2\xc6\x10\x7a\x3e\xaa\xec\x49\xba\xdf\x09\x41\x6a\x8f\x3f\xdc\x3a\xaf\x93\x54\xf8\x0e\x7d\x6a\xff\x38\xae\x03\x2b\xf3\x41\xe2\xb2\x04\x8f\x1f\x9e\x2e\x6c\xb5\x15\xf6\x3a\xfb\xdf\x4d\xd8\x94\x43\x98\x02\x5e\x3b\x42\xc2\xb8\x43\xf0\x24\x43\x73\x27\xfd\x5c\xf3\x49\x70\x09\x56\x45\xaf\xa2\x39\x11\x4e\xda\xc4\x8b\xf3\x2a\xac\xf7\xbf\x58\xd4\x14\x1b\x4a\x88\x00\xdd\x91\x10\xd5\x61\x47\x0a\xfa\x9f\x8c\x48\x3a\x18\x54\x34\x35\x68\xf7\x5a\x1e\xa5\xea\x5b\xed\x21\xac\xdb\x30\x84\xca\xe1\xf0\x73\x75\x00\x2a\x03\x57\x56\xc9\xff\x28\x71\x5b\xb7\x71\x25\xa4\x4c\xdd\x83\x61\x65\xac\xdc\xfa\xc4\x93\xce\x59\x8a\xa7\xb3\x0e\xf3\x6d\xea\x1e\x1a\x75\x5c\xb4\x45\x73\xdd\x35\xb0\x4f\x50\xbe\x62\xc1\x5c\xe9\x4a\x18\x52\x4b\x07\x6b\xfb\x17\xba\x40\x9e\xa8\x10\x4f\xbd\x97\xa8\xa1\xdf\x53\x91\xeb\x1e\x54\x76\x31\x8f\x06\xe7\xe9\xf6\xcc\xc4\x39\xc5\x0a\x9a\x22\x7d\x90\x3b\xb6\xbf\x4b\xb1\x57\x85\x79\x05\xed\x25\xae\x79\xa5\xfc\x73\xad\x31\xb0\xfd\xb9\x4e\x15\x33\x53\xa5\x09\xdf\xd9\x46\x4a\x26\xec\xdc\xf5\x2c\x77\x69\x4f\xb9\x13\x47\x3b\x77\x25\xfb\x82\x84\xbd\x4f\xec\x63\x3f\x43\x1d\x9c\x2f\x88\x53\xbc\x95\x33\xcf\x90\x5a\xad\x87\x7e\xd2\x29\xf5\x04\xb7\x95\x49\x1c\x9b\x4c\x2c\xf3\x6d\x34\x99\x7c\x46\xd3\x83\xa9\xae\xe9\xb0\x13\x79\x8d\x2a\xfe\x92\xed\x95\x3e\x20\xc5\xa8\x26\xf3\x1a\x55\x1c\x99\x43\xd1\xce\xa6\xad\xb1\x3b\x2b\xfd\x7d\xb5\xdf\x44\x97\x40\xa3\xd1\x3d\x05\x39\xd8\x17\xf3\xd0\x0e\x8a\x9c\x26\x17\xea\x5e\xa0\x03\x4b\xfa\x99\x52\x4e\xd8\xa3\x59\x8c\x79\x9b\xc5\x10\x90\x46\x04\x26\x79\x89\x38\xc2\xb8\x24\xdf\x1e\x7f\xdb\x66\x54\xbb\xee\x63\x2d\x53\x39\x1c\x0e\xf6\xf5\xe8\xad\x69\x98\x9b\xf3\xbd\x0c\x3d\xe5\xb2\xd0\xea\xc9\x4d\xf8\x6e\xa7\xc2\x55\xfe\xcb\x59\x47\x6a\xd1\x91\x98\x77\xa4\x7d\x64\x57\x1f\xb8\x6a\x7d\x28\x0f\xf9\x58\x03\xd7\x15\x6c\x38\xfc\xae\xc1\x69\x3f\x69\x51\x74\x1e\x2a\xb2\x1d\xd6\x9c\x8f\x7d\x44\x0a\xd7\x7e\x32\x18\x65\x9e\xda\x7f\x59\x96\xe4\xd1\xc3\x6f\xf7\x2e\x03\xdd\xcd\xde\xb7\xc7\xdf\xde\xe5\x73\x2c\xa5\xf9\xdd\x67\x7f\x87\x62\xb6\x24\x29\xe1\x98\xdc\x5a\xb0\xf0\xa1\xad\x5b\x11\xcf\x14\x28\xcb\xb2\x49\x39\x10\xe9\x79\xfc\xf3\x2d\x36\x65\x0b\x21\x51\x81\x64\x75\xc3\x02\xee\x2c\x1a\x9f\x87\x43\x4b\x0c\x80\xaf\xa0\x03\xeb\x00\x83\xae\x42\x68\x77\x1f\x44\xad\x81\x4e\xb9\x9d\x1a\x90\x9c\xd6\x53\xd3\xe5\xe3\x41\x67\x06\x79\x1b\xe4\xad\xad\x7b\xba\x2b\x40\x5d\x2e\x25\x90\x27\xa7\xec\x32\x0a\x22\x6d\x73\xa3\x55\xba\x76\xe3\xee\x3a\x0f\xb8\x37\x6c\x30\x17\x2d\xc9\xb7\xdf\x7c\xd7\xf2\xac\xa7\x00\x20\xbb\x14\x97\x6b\xe1\xd1\x70\xd8\xa0\xe0\x5e\x5d\x9c\xbd\xa9\x36\x67\xcb\x9a\x84\x98\xfa\xf4\x0c\xee\x91\xf2\xce\xdb\xda\x41\x92\x99\xb5\xfc\x4d\x9a\xb6\x51\x10\x9b\xe3\xb6\x32\xbc\x49\xc0\xf1\xed\x6e\x57\x7d\xd0\x3d\x7a\x9e\x2f\xad\xb0\xd1\x7c\xd6\x7c\xac\x21\x55\x02\x13\x98\x18\x8d\x3d\x57\x92\x7a\x17\xeb\x8e\x22\x16\x8f\x13\x0c\xde\xa3\xcc\x8a\x74\xcc\xc4\xfe\x5a\xed\x76\x8d\x09\x31\x63\x00\x65\x1b\xd1\x55\xde\x75\xf3\xa5\xfd\x04\x1d\xfc\xec\x5c\x94\x25\x79\xf8\xcd\xf8\xf0\xbe\xb6\x37\xf6\xe8\xd1\xc3\x6f\xf1\x01\xff\x8e\x3a\x3f\xc8\xfd\x86\xc3\x81\x46\xa4\x72\x5f\x4f\xe4\x8c\x17\x05\x17\xd7\x7d\xc9\xfe\xb1\xe1\x92\x65\xfd\x0a\x4a\x03\x38\xbd\x06\x22\x74\x3e\x8c\x0f\x10\xee\xe7\x6c\x96\x8b\xba\x9c\xa7\x62\x62\xc6\x53\xd5\x33\xd7\x7b\xbb\xbb\x8e\x8b\x05\x97\x9d\x55\xbc\xac\x79\x52\x3e\x47\xc2\xae\x59\x85\x0c\x0f\xe8\x9d\x75\xe0\x2c\xfd\xf9\x57\x60\x2c\x70\x29\x5c\x96\xb6\xde\xba\x6d\x9d\xe1\xf3\xed\xb7\x37\xaa\xa5\xd9\x3b\x37\xeb\x81\xbe\x6a\x4a\xbd\xab\xbb\xbf\xae\xea\x83\x43\xc3\x7b\xa3\xb3\xab\xfc\xd9\xb1\x71\xd4\xa0\x6b\x2b\xf7\xcb\xb6\xae\xce\xe5\x7d\xc9\x65\xa1\x0e\x43\x08\xf1\x51\x0a\x69\xed\x66\xd2\xcf\x65\xb5\xf3\x03\x40\x62\x93\x6f\xa2\xe6\x30\xf7\x61\xdf\xc5\x63\xd2\x47\xec\xf9\xe9\x9b\xd3\xe7\x17\x41\x85\xa8\xde\xa6\x2b\x86\x59\xad\x09\x4b\x99\x75\x50\x01\xcc\xb0\x2e\xf1\xfa\xed\xf7\x3f\xb4\x0a\xec\x76\xc1\xc5\xe9\xbf\x5f\x9c\xbc\x3f\x3d\x69\xd5\x74\xeb\x34\xa7\x0e\xc9\x91\x7b\x52\x13\xd4\x77\xdd\xc4\x32\x7b\xdf\x83\xac\x75\x4c\x75\x6f\x02\x77\x25\x68\x4c\x58\xc3\xb9\x32\x26\x50\xe3\x9e\xe9\x42\xdd\x64\x3d\x28\xe0\xf0\xf7\x4c\x36\x5a\x16\xcc\xc6\xd8\xc7\x4e\x88\xd5\x09\xea\xbc\xc5\x21\xbc\x7d\x95\x6f\x7a\x88\x7b\xdc\x0e\x41\xaf\x94\x55\x91\x05\x47\x9c\x62\xff\xe2\x87\x80\x63\x02\x53\x90\xeb\xae\x8a\x0a\xf7\x21\x5c\x87\x98\x2e\xc9\x71\xe3\xb4\x6a\x38\x21\xc4\xb7\xa5\x87\x3b\xe9\xad\xef\x59\xa6\xe9\x9c\x08\x2e\xe3\x9c\x81\x17\x03\xe7\x3a\x56\x7a\x28\x40\x57\x1d\x7e\x68\x9c\x60\x6c\x14\xcc\x6e\xe7\x22\x52\x64\xa6\x3e\x45\xb2\x74\x4a\xf0\xb9\x98\xb1\x3b\xea\xf7\xc9\x2b\x7c\x2b\xc2\x7c\x3e\x07\x67\xc6\x44\xd9\xe3\x5f\x7a\x67\x7f\xed\x99\xf3\x92\x5a\xc6\x12\xea\xe4\xe0\xe7\x50\x73\x2e\x51\xa7\x92\x26\x8d\x93\x6e\xbf\xcd\x13\x4c\x24\x45\xa8\x63\xa0\xb8\x52\xc6\x87\x82\x7a\xe6\xe9\x18\xb4\xbc\xac\xb8\x5b\x3c\xe5\x4f\xc4\x68\x84\x65\x2c\x92\x70\xee\x84\x40\xf0\x36\x53\x9f\x7c\xc7\xe4\x66\x1a\xe6\xf3\xa8\x4b\xb7\xbd\xa3\x69\x22\xa8\x8c\x59\x42\x38\x8d\xc1\xff\x8e\x18\x0e\x15\xae\xfc\x89\xd3\x31\x49\xa9\x70\xbd\xc8\x9f\xa6\x4f\xf2\xd1\x08\x8b\x38\xd7\xbd\x18\x80\x1f\x24\xfb\x12\x5e\x9a\x57\x1b\xca\x41\xa7\x56\x9d\xe2\xce\x2d\xb4\x6e\x89\xf2\xc8\x38\xb0\xe8\x43\xbb\xd0\xe1\xd2\x77\x06\xe9\x39\x1c\xbe\xe0\x62\x7b\x6a\xf5\x79\x34\x9c\x29\x7a\xeb\xf9\xfe\x90\xd6\xdb\x85\x8a\x45\x52\x89\x6b\xf5\x94\xd8\xe2\x3d\x23\x70\xd3\x49\xf4\xd6\xa6\x45\xb7\xb5\x83\x08\x16\x8b\x04\x71\xc2\x5d\x7e\x7d\xf0\x54\x2f\x95\x03\x8b\x50\x74\x69\xd0\xeb\x6d\x78\x79\xc9\x8a\xb3\x3c\xdb\x2c\xd9\xbe\x87\x9a\x3e\x73\x62\x89\xb2\xcb\x37\x50\xd5\x07\xab\xfc\x97\x46\x4a\xc3\x70\xa9\x29\xe6\x0e\xa6\x04\x20\x18\x5c\x56\x63\x19\xe6\xc0\xa5\x69\x22\x21\xd4\xc4\xb9\xa8\x7d\xc5\xef\x5f\x58\x90\xdb\xfa\x26\x24\x1a\x8c\xe1\x02\x4a\xcf\x47\x89\x75\x53\x79\xb7\x65\xcc\x1e\xc1\xb3\x48\x8b\x77\x1f\x85\xab\xd7\x9d\x60\x4a\xd7\x81\x26\x0f\x1f\xe1\x12\xe1\x6a\xb4\xfe\x4a\x22\xdc\xd4\xc9\xec\xc0\xff\x2d\x5d\x48\xab\xc7\xb4\xe2\xcb\x25\x2f\x80\x5c\x09\x40\x1c\x67\x1f\xa5\xfe\x24\x40\xb7\x47\xd0\x60\x91\x6f\x64\x40\x38\x0d\xb2\x74\x1b\x90\x9c\x06\x1f\x19\xfb\x10\x90\x94\x06\xab\x5c\xa8\x45\x40\x0a\x1a\xfc\x63\x93\x4a\xc5\x64\x40\x96\x34\xd8\xb2\x54\x06\x64\x03\x57\x01\x2c\x20\x33\xfa\xe0\x3f\xd0\xcf\xd9\xed\xa3\x12\xc7\x47\x0f\x92\xa9\x7e\x9e\x90\xe3\x12\x4f\xab\xd7\xb1\x7e\x8d\xff\x63\x7c\xf4\x5d\x72\xbf\xfe\x1c\x4d\xbb\x9f\xe3\x30\x82\x62\x23\x3c\xbd\xf7\x80\x64\xf4\xc1\xcf\x31\x8a\xff\xe3\xe7\x24\x19\xe1\x64\xf7\xd3\xed\x84\x3c\x2a\x77\x67\xe6\xe7\x05\x14\xd9\x65\xe6\xed\x95\x79\x5b\x98\x9f\x74\x77\xb2\x5b\x99\xc7\xc2\xfc\xfc\xcd\xfc\x9c\x9f\x9f\x3f\xb8\x26\x0b\x7a\x2b\xd2\x15\x84\x61\x08\x88\x1e\x71\x96\x6e\x8b\x28\x38\xdf\x88\x2c\xdd\x5e\x9e\xe5\xf0\x73\xb1\x61\x85\xfe\xfd\x91\x65\xc2\x3c\x5d\x2c\x36\x12\x1e\x5e\x4a\xae\x7f\xce\x53\xb5\x91\x7a\xe2\xc0\x94\x48\xa1\xe0\x32\xc0\x04\xe6\xad\x88\x82\x3f\xa7\x62\x93\xca\xed\xe5\x4b\x76\x25\xe1\xe1\x2c\x95\xb3\xc5\xe5\xc9\x5a\xf2\xe5\xe5\x59\xba\xbd\xfc\xf3\x46\xb0\xcb\x3f\x6f\x96\xdb\xcb\x93\xcd\xf5\xa6\x50\x97\xe7\x6c\xad\xd8\xea\x8a\xc9\xcb\x77\x33\x95\xeb\xdf\xb7\xf9\x8d\x49\x78\xc1\x66\xf0\xe0\xb7\x54\x92\xf9\x1e\xfd\x6b\xd0\xf4\xb9\xa3\x6e\xec\x0e\x19\x88\xdd\xce\x21\xa0\x67\x54\x4d\x59\x14\x04\x23\xe3\x16\x57\x8d\x26\x47\xee\x13\x36\x6a\xc3\x12\x8f\x58\x49\xd6\xf4\xb6\x88\xe6\xe4\x97\x0e\xa1\xcf\x11\x0b\x37\x6a\x66\xd4\xba\x90\xc6\xc7\xe0\x7b\x37\xbd\x02\x49\x74\xc3\xff\xb0\x7c\xf0\x78\x0c\x74\xfb\x1f\x1e\x8f\x2b\x0f\xea\x4f\xe9\x78\x1a\x8c\x82\x28\x38\x0a\xf0\x68\x8e\x04\x39\x26\xc1\x38\xc0\x3a\x65\x34\x47\xdc\xbe\x96\x64\x15\xf9\x9a\x9d\x96\xba\x57\x61\x06\x2e\x6c\x9e\x4a\xfb\x60\x91\xd6\x11\x43\x92\x54\x8e\x68\x26\xc7\xf7\x91\x0c\xb7\xe0\xfb\xe6\x48\xd9\x07\x3c\x42\x32\x84\xd5\x81\x44\xfb\xa4\xbb\xa7\xc2\xd9\x32\x17\x0c\x61\xf0\x21\x24\x48\x0a\x4a\xc1\x47\xfc\xe9\x98\x14\xed\x8f\x23\x94\x4f\x8f\x26\xd1\x04\x93\xd4\x4d\xef\x08\x1d\xe9\x74\x79\xc4\xf1\x03\x94\x4f\xf9\x51\x11\x15\x47\x1c\xe3\xdd\x6e\x8c\x4b\x92\x76\x5e\xc5\x3d\x1d\x4f\x6b\x8f\xc5\x4c\x67\xf5\xdd\x4a\x33\x5c\x12\xcf\xb9\xcf\xac\xf2\x65\x78\x16\xa5\x64\x1b\x2d\xc9\xc7\x28\x27\x59\xc4\xc9\x8b\x68\x43\x16\x91\x20\xab\x48\x92\x22\x52\x64\x55\x44\x8c\xfc\x5b\x54\x94\xf1\x2c\xd9\xed\x2c\x1c\xcc\x76\xbb\x20\xc0\xa1\xca\xdf\xe4\x1f\x99\x7c\x9e\x16\x0c\x34\x54\x4c\x54\x89\x07\xc5\xbd\x07\x9a\x2c\x2b\xc9\xa6\xab\xa3\xf5\xcd\x67\x59\x92\x15\x85\x0d\x73\xa3\x4f\x90\x9b\x78\x95\xd0\x05\xcc\x77\x17\x1b\xd9\x6f\xf0\x8c\x1f\x4b\x72\xd5\x0d\xab\x3d\xe3\x5b\xd9\x5d\xbd\x00\x09\xbb\xc7\x81\xe2\x1b\x63\x50\x28\x28\x83\xfb\x34\x74\x03\x01\x01\x88\x7e\x07\x3a\xd6\x5e\x0b\x19\x97\x93\xbd\x9b\x98\x27\x94\x11\x41\xb9\xf3\x46\x28\x87\x43\x31\x1c\xa2\x15\x15\x98\x88\xdd\x4e\xbf\xaf\x4a\xb2\xa5\x7b\xd7\x37\x3e\x4b\xc0\xdc\xc2\x5b\x6b\x81\x3d\x3f\x50\x6a\xaa\xa2\x5b\xff\x14\x4a\x15\xa3\x8c\xc8\x30\x95\xd7\x45\x7d\x4d\x40\x34\x7f\xf0\x11\x69\x82\xe7\x92\xae\x7b\x97\xe1\x92\x5e\x91\xcb\x90\xd3\x6b\x72\x19\x7e\xec\x3e\x3e\xf4\xc1\x03\x21\x6b\x96\x2c\x52\xe1\xbd\x37\x64\xa3\x66\xfa\x61\x43\x3e\xe9\x9f\x4f\xe4\x9e\x71\x49\xa2\x5f\xcc\x53\x89\x4d\x7c\x84\x8f\x9d\xaa\xd1\x8b\x4a\x55\xeb\xde\x1b\x7a\x85\x58\x68\xea\x26\x20\xaa\xa9\x7c\x38\x40\xfc\x26\x0d\x7c\xba\xa2\x39\x5d\x78\x22\x46\xc7\x26\x99\x3c\xfb\xf6\x89\xf7\xb2\x4e\x1b\xb9\xcc\x78\x11\x03\x84\x01\x94\x11\x44\x0b\xa1\x95\x94\x58\x4f\xcd\x0b\xbd\x8f\xdf\xa6\x6f\x81\x35\xbb\x0c\x37\x9e\xf8\xcf\x7d\x06\xc9\xb2\x0f\x50\x3a\x71\xaf\x0e\x85\x3b\xc1\x47\x0d\x87\x83\x07\x7f\xbb\xf7\x80\x9b\xd8\x2b\x0a\x57\xd4\xac\x11\x38\xa2\x99\x61\x0a\xdd\xe5\xa2\x88\x8f\x93\xa3\xc9\x6e\x37\x26\x39\x45\x22\xfe\x26\xd9\xed\x34\x42\xf2\x02\x1c\x8d\xc9\xc3\xda\xba\x74\x5a\xb5\x0f\x37\xa4\x3f\x5c\x3c\x47\x22\x9e\x24\x84\x13\x11\x3f\x4c\x76\xbb\x09\x11\xf1\xa3\x44\x57\x27\xe2\xaf\xed\xef\x63\xf8\xcd\x31\x8e\xaa\xc2\x5f\x5c\xa6\x72\x0b\xe6\x8d\xbb\x44\x4e\x27\xfd\xde\x27\xca\xc2\x4f\xbb\x9d\xf3\xe9\xc3\x05\x37\x24\x04\x3c\xb5\xa3\xfe\x59\x15\xd8\x7b\x99\xb9\xf3\xb8\xb7\xa5\x60\x98\xfe\x72\xb3\x5c\xfe\x64\x1c\x87\x99\xf4\x33\x93\x7e\x66\x50\xa6\x4d\x7c\x61\x12\x5f\xd8\x88\x14\x90\xf6\xa3\x4b\xab\xc4\xe7\xf7\x5e\x99\xa4\x57\xf9\x46\x16\x55\xe2\xca\x56\x08\x84\x48\x9d\x5c\x98\x64\x23\x64\xf1\x72\x17\x2e\x7b\x45\xd2\x14\x66\x50\xf7\x36\x8a\x2f\x8b\x0e\x65\xda\x4b\x18\x72\xf1\xd7\x74\xc9\xb3\xfd\xcf\x83\xda\x64\x48\x77\xbf\xd2\x93\xba\x97\x79\xcc\x99\x99\xb5\xe2\x3c\x5d\xb5\xcd\x80\x0d\x3e\xd8\x7a\x22\x3c\xa3\xc6\xa8\x52\xa9\xc0\xf4\xf8\x29\x95\xc3\xa1\x7c\x6a\x79\x05\x91\x41\xa2\xa9\xee\x64\xae\x09\xf1\x43\x9b\x1e\x3f\x6d\xd5\x64\x0a\xfd\x91\xcd\xf3\x3d\x63\x64\xbf\x69\xd7\xc6\xd3\x2d\x9c\x1d\xf3\xf0\xde\xf5\x1e\xbe\x75\x33\x13\x6e\x10\xc3\xa0\x4c\x1f\xab\xc4\x29\x60\x2a\x24\x89\x29\xb9\x11\xfc\x53\xc7\x84\x7a\xa7\x13\x14\x01\x7e\xfb\xdd\x1c\xe1\x07\x13\xf6\x10\x0a\xda\x94\x43\x76\xf3\xf7\x32\xbd\x84\x17\x7c\xc5\xcc\xd2\xd9\x31\xfa\xdd\x2c\x5c\x10\x25\x90\xce\x67\x74\x30\xd0\x9d\x2d\xf0\x6e\x57\x90\x05\xbd\x0c\xd7\x1a\xcc\xbb\xed\xc1\x2f\xc3\x8f\x68\x16\xde\xdb\x4c\xab\x4d\x38\x0b\xef\x6d\x89\x22\xcc\xdb\x63\x55\x12\x99\x55\x2b\x97\x4d\x65\x24\xed\xfc\x71\x7d\xec\x76\xcf\xb2\xa9\x5f\xe5\x06\xda\x63\x96\x58\xf6\xb1\x4a\x0b\x8a\x00\x13\x94\x4d\xe3\x31\x81\xff\x25\x51\x7c\xfc\x90\x7c\xfd\x9d\xfe\xef\xbb\xef\xbe\xab\xd8\x52\x85\x75\xeb\xfa\x2c\xb5\x3b\x86\xdc\xd8\xa7\x33\x72\x6d\x9f\x5e\x90\x2b\x4d\xaf\xab\x60\x64\xe6\xfa\xde\x66\x1a\xfc\x70\xf1\x3c\x88\x82\x00\xf7\x8a\x8f\x5c\x23\xad\x05\xbe\x9d\xa5\x05\xeb\x2f\xa3\x6a\x20\x73\x34\x21\x63\x1c\xcd\xd1\xc3\x09\x99\x4c\x70\x0f\xbe\xa7\xcd\xef\x37\xfa\xfb\x98\xdc\x8c\xdc\xf7\x3c\x32\x9e\x60\x4d\x43\xe6\x58\x40\x38\xd4\x44\x31\xb8\x7d\xd4\x48\xe7\x23\x45\xab\xa7\xdb\xe9\x6a\xf4\x4d\xb4\xc2\x47\xdb\xea\x30\x40\xd9\xf4\xfa\xe8\x63\x74\x3d\x42\x8f\x8f\x3e\x62\x72\x63\xab\xe4\x11\xfc\x6c\x5c\xcb\x6b\x74\x35\x0a\x60\xff\x07\x64\x6c\xf3\x88\xc6\x47\x8b\x07\x02\xe2\x7a\x25\x1b\x9f\x2d\x3e\x08\xc8\xb1\xfd\xac\x5a\xa5\x6b\xb4\x10\x68\xd4\xec\xcc\xc0\x7c\xf0\xb3\x67\x79\xa9\x41\x0f\x56\xfb\xb0\xfb\x12\xbb\xf9\x18\x19\x4c\xcc\x5e\x6a\x84\x26\xca\x2b\x30\x25\x19\xc0\x64\x8e\xc9\xe2\xe0\x72\x91\x39\x45\x33\x7a\x5b\x92\x99\x26\x4a\x16\xa3\xe0\x85\xe1\x9b\xe2\x4d\xe3\x2d\x85\xb7\x33\xc3\x72\xcd\xe2\x25\xbc\x3a\x34\xac\x53\x04\xa4\xd8\x49\x9c\xc5\xd2\xe4\x77\xd3\x36\x8b\x15\x24\x54\x13\x35\xd3\x04\xd2\xa2\x3d\x35\x33\x1c\x67\x09\x59\xd3\x0c\x4c\x55\x2d\xac\x8d\x50\x71\x64\x41\x11\x47\x10\x54\x5b\x7f\x4e\x77\x3b\xfd\x63\x83\x91\x59\x60\x75\x84\xb0\x46\x17\x1b\xbd\x56\xab\xf0\x5e\x16\xcf\x13\xb4\xc6\x64\x65\x8f\x1a\xe2\xc8\x81\x95\xcd\x66\x62\x74\x70\x81\x1c\x6c\xaf\x42\xcd\x6d\xbd\x16\xf6\x34\xc1\x38\xbc\x97\x19\xd5\x9c\xb9\xd5\xc0\x76\x95\x36\xb0\xab\x57\x3d\xa0\x8f\xbd\x70\x51\x1d\xab\x0d\x4b\x67\xd9\xec\xf9\x5d\x31\xa9\x62\x83\x5c\x12\x83\x9a\xd2\x2c\xeb\x40\x4b\x1b\x62\x10\x53\x8f\xd1\xb7\xe0\xce\x18\x59\x6d\x2e\x03\x06\x85\x06\x83\xaa\x94\x77\x4a\xd4\xb8\x46\x23\x11\xcb\xb7\x38\xf6\x65\x04\xd3\x23\xf3\x8d\xc8\x90\xba\xcf\x0c\x72\xa8\x16\x01\x37\xe0\x92\x29\x94\xba\x03\x79\x64\xae\xdb\xcd\x1a\xb5\x73\x59\xc3\x87\x7b\x5b\x2f\x17\x77\xb9\x16\x68\x52\x25\xe6\x75\xe2\x37\x66\x2c\x73\x8a\x36\x1a\x5c\x37\x1a\xc4\x1e\xb3\x47\x64\xa3\x41\xef\xe1\x63\xf6\x35\xd9\x68\x20\x9b\xb0\x87\x64\xa3\xc1\x48\x13\x29\x6b\xba\x87\xd9\x47\xec\xfe\xdc\x1f\xee\xda\xb8\x59\x81\x15\xdb\x5c\x29\x99\xce\xee\x5a\x36\xcd\x61\x1d\x4d\xee\xbb\x05\x9b\xe7\x72\x95\xee\x5f\xad\x59\x8d\x11\xcd\x39\x18\xc8\x30\xc7\x7c\xc5\x0b\x36\xcf\x76\x67\xeb\xbb\xdb\x05\x3f\xfd\xf4\xd3\x4f\x47\x67\x67\x47\x2f\x5e\x5c\xbc\x7a\x15\xad\x56\x51\x51\xfc\x2d\x20\x82\x5e\x86\xbf\x58\x77\x8f\xbc\x85\x07\x49\x6e\x13\x5e\x91\xd4\x3e\xad\x48\x51\x21\xec\x25\xe5\xa1\x13\x1f\x90\x0d\xe5\x86\xa9\x2c\xc8\xcc\x1f\x23\x44\x79\xf0\xb5\x7f\x11\x8b\x45\xb2\xdb\x19\xa6\x16\xef\x76\x3c\x16\x89\x8b\x6c\x0e\x14\x1e\x59\x74\xc1\xe9\x65\x58\xa0\xfc\x0f\x93\xe3\xdd\x6e\x72\x4c\x98\x65\x92\xe7\xba\x51\x26\x79\xc6\xd9\xaa\xa9\x22\x5b\x8b\x03\xd8\xd3\xc9\xf1\x34\x38\x39\x0b\xa2\xe0\xfb\xb3\xc0\x23\x5c\x9b\x2c\x61\x24\x80\xeb\xff\xe9\xa7\xc8\x52\x40\x16\x88\xdc\xc9\x75\x74\x8c\x89\x9e\xc1\xc8\xa6\x93\xb3\xa8\x18\x4d\xc8\xd9\x59\xa4\x7b\xa6\x1f\x0d\xe7\x4e\xce\xce\xce\xa2\x19\x72\x93\x71\xbe\xc8\xa5\x22\x05\xd9\x90\x87\xf0\x49\x7f\xdb\x90\x02\x93\x17\x91\xc3\x08\x2f\x5e\x40\x15\xee\xd5\x56\x93\x35\xfb\xf1\x23\x26\x59\x06\xf5\xba\x19\x3f\xe3\xc2\x91\x9d\x64\x49\x8e\xf5\xf7\x66\x06\xd3\x74\x9d\xe5\x21\x64\xc9\xa2\x65\x6c\xd3\x12\xf2\xca\x35\x92\x63\xf2\xea\x15\x74\x23\x77\x1d\x58\x44\x7a\xaf\x90\x85\xfe\x3d\xc6\x9a\x91\x47\x39\x49\x81\x5d\x3a\x71\xcf\x13\x4c\x56\xae\x8a\x14\x93\xd5\x0a\xaa\x48\x5d\x15\x45\x73\x0c\x05\x26\x45\xe1\x8d\xb5\x70\xf9\xce\xcf\xcf\xbd\xe4\x55\x41\x1e\x9a\xf4\xbf\x45\xc2\x63\x30\x1d\xcf\x9e\x11\xd4\xbd\x87\x76\xbb\x35\x48\xc1\x45\x1d\x31\x3e\x82\x4b\x97\xd2\x50\xb3\x95\xd8\xa6\x83\x48\x9b\x7c\x7d\xff\xc8\x47\x46\xcd\x9d\xfd\x4b\x2e\x98\x93\xf8\x3c\x98\x7c\x0d\xb5\x65\xbc\xe9\x9c\x67\x43\x66\x36\x76\xa5\xa5\xd6\x36\xfa\xf8\xd3\x14\x29\x59\x6b\x5c\x72\x1f\xcd\x7d\xc1\x91\x39\x75\xbc\x04\x6c\x89\xa2\xa3\x39\xb9\xa1\x97\xa1\xd5\xc3\x9c\xd7\xf7\xe4\x14\x65\x1a\x37\x65\xfa\x7c\xbc\x79\x30\x39\x26\x99\x3e\x38\x6f\x48\x16\x17\x3a\xe1\x21\xc9\xe2\x3c\xa1\x68\x75\xb4\xc6\x0f\x1e\x8f\x1f\x7d\xcb\xbe\x26\x99\x3e\x76\x4d\xca\xb7\x8f\x1f\x41\x82\x48\xe8\xea\x01\x60\xb4\x4c\x23\xb9\xd5\x03\x8d\xe6\x32\x8d\xdc\x56\x9a\x96\x25\x19\x8e\x17\xc9\x6e\xb7\x22\xb3\xe9\x4d\x74\x19\xa6\xe8\xc6\x8c\xb6\x3e\xb4\x0e\x91\xb8\x86\x8a\x4c\x71\x78\xef\x05\xd0\x0d\x06\x8b\x74\xe4\xbe\xb1\x00\xf8\x26\xd1\xf9\xda\xd9\xbc\x98\x53\x0d\x02\xfa\x4d\xcf\xbb\x81\xb0\x27\x1c\x11\x14\x82\xb5\x6a\xa8\xf4\xdc\x7d\x23\xa9\x19\x7d\x81\x89\xd4\x0d\x40\xde\x2e\x26\x29\xfc\xe8\xd6\xb9\x46\xd3\x86\x9e\xed\xc8\x5d\xf3\x9b\x0d\xfa\xdf\x16\xfa\xf3\xf9\xbb\xb7\x87\xe6\xa5\x42\xd0\x86\xe6\x50\xf9\xeb\xf3\x77\x8e\xcb\x82\x68\xb5\xa6\x8a\x2a\xf5\x0e\x16\xa2\x51\xd6\x14\xfb\x82\x32\x3f\x5c\x3c\xaf\xcb\x2c\x4a\x84\xc9\x29\xfd\xb8\x2f\xdd\xf0\xae\x9a\xe9\x29\x89\xe3\xe0\xde\xaa\x08\x08\x4b\x48\x1c\xdc\x2b\x02\xa2\xe0\x61\x15\x10\x09\x0f\xaf\x02\x22\xe0\xe1\xc7\x80\x70\x78\x38\x0b\x48\x0a\x0f\xdb\x80\x2c\xe1\xe1\x45\x40\x36\x49\xd2\xad\xc6\x7a\x1a\xb3\x78\x92\x24\x0d\x9a\xa1\xd1\xf3\x6b\xa4\x08\x8b\xc7\x09\xd1\xf9\x20\xd4\x1a\xd9\x86\xec\x93\x62\xa2\x7d\xbf\x51\x49\xac\xee\xf1\xdd\x0e\xe9\x83\xe5\x23\xd9\x62\xa2\xdf\xc1\x18\x63\x5b\x92\xad\x03\xb3\x2b\xb2\x0d\x79\xf1\x22\xdd\xfe\xbd\xa0\xd7\x64\xdb\xe2\xf7\x98\xc7\x8d\x4e\xd8\xc3\xfb\x9a\x27\xdc\x86\x4c\xd0\x9b\x78\x95\x90\x6d\xf8\xa6\xa0\x37\x64\x1b\xae\xf5\x3e\xdc\x96\xbf\xfe\x72\xe2\xc0\x75\xbb\x39\xa8\x82\x45\xb4\x5a\xf5\x4f\x02\xc2\xe9\xed\x32\x2d\xd4\x8b\x74\x1b\x05\xf1\x4f\xac\x50\x4c\x66\xe9\xb6\x9f\xaa\xa4\x1f\x8c\x04\x29\xd2\x15\x33\xdf\x2e\x72\x3f\x5d\xb0\x4f\xca\xa5\xaf\x72\x29\xf3\x8f\x8d\x4f\x3f\x32\xf6\x21\x0a\xf4\x09\xd0\x8f\x5d\xba\x6e\xc6\xa4\xc7\x6f\xd2\x42\x25\xfd\xe6\x67\xdd\xd2\xe9\xb2\x60\x51\x70\x76\xf6\xe0\xc5\x8b\x07\xfa\xfc\x0b\xca\x9e\x7f\xb1\xa3\x27\x55\x64\x69\x9b\xa7\xb7\x22\xa6\xdd\xae\xc5\x58\xb9\xec\xbb\x1d\xc4\x7e\x42\xac\xf2\xe5\x5b\x31\x1e\x41\x16\x60\x47\x6e\x68\x1c\x8b\x72\x12\x64\xc6\xd5\x6a\x41\xd3\xa7\x47\x8f\xa7\x81\xeb\x57\x10\xa5\x4f\x8f\x26\xd3\xc0\x0d\x43\xbf\x8f\xcd\xeb\x8b\x74\xab\xdf\x26\x26\xb3\x7d\x3b\x9e\x06\x76\x92\xf4\xdb\x37\xe6\xcd\x14\xac\xeb\x24\x4b\x2a\xe2\x22\xd1\x84\x49\x91\x1c\x0e\x48\xb3\x9c\x2e\xbd\xf0\xbc\x12\x39\x87\xb3\x86\x6a\x43\x4b\x50\xba\x68\x01\xc8\xde\x45\x55\x27\x45\xbe\x9f\x34\x18\xb0\xe1\x70\x4f\x00\x0b\xe6\x32\xc3\xe1\x60\x9f\x40\xfc\x52\xdd\xab\x4a\x5b\xe9\x3d\xbb\x3e\xfd\xb4\x06\x5d\x25\xe5\xe9\x5a\x69\x7c\xe7\x12\xbb\x84\xdc\xe1\xbd\x7b\xa6\x2f\x94\x52\xa9\x7b\x03\xff\x27\x77\xc6\x06\xb3\x56\x5c\xf3\x5c\x4e\xeb\x47\xd0\x67\x98\xa9\xd0\x9a\xc8\x05\x38\x7a\x3c\x9e\x8c\x1f\x7a\x01\xd1\x1b\x86\x4c\x93\x01\x75\x17\x13\x10\xbe\xbc\x38\x63\xf2\x9a\xa5\x57\x4b\x66\xa3\x6e\x32\x3c\x2d\x10\x92\x94\x59\x3d\x3a\x5e\x98\xfb\x1e\x89\xa7\x71\x12\xdd\x96\x10\x49\x1c\x47\x26\x0e\x99\x2c\xdb\x2a\x93\xde\x08\x9d\xc5\xfd\xe1\xe8\x1d\x26\x7c\x61\xc3\xf7\xb5\xef\x37\xbc\x11\x97\xa8\x72\xad\xdb\x51\x4f\x6d\x92\xe4\xdd\x94\x9a\x29\x2a\xa6\x77\x7d\x44\x5d\x0e\xbd\x7d\xb4\xb8\xb6\xf9\x5f\x17\xa7\xd5\x55\xae\x09\x2b\x11\xc5\x49\xd9\xf4\x41\x6e\xfd\x97\x7b\x96\x2f\xaa\xcf\x45\x9f\x75\x59\xad\x54\x85\x0a\x08\xd1\xb8\xc4\xb7\x68\x49\x97\x10\xf2\x3c\x4c\xf5\x7c\xc3\xb2\xd0\xa5\xf7\xa2\xf7\xfd\x72\x7f\xc1\x68\x47\xda\x6e\xa7\xc8\xd2\x2c\xf2\x0f\x62\xc9\x8a\xe2\x9d\x5a\x30\xf9\x91\x17\xec\x7c\xcd\x66\x7c\xce\x59\x46\x05\x2c\xe0\x86\xb6\x57\xd9\x21\xda\x0d\xa5\xad\x6f\x0c\x4f\x37\x53\xbf\x47\xb6\xeb\x9d\x2a\x1f\x9c\xfa\x17\x1c\x5d\x60\x36\x1c\xe6\x30\xfd\x5d\x01\xda\xb9\x26\xaa\x04\x82\x10\x41\x46\xc9\x2b\x47\x9d\xe1\xa8\x72\x7c\xdb\x4d\xd1\x9a\xc5\x18\x0e\x07\x36\x92\xfa\xc1\x6b\xf4\xea\xfe\xbe\x6b\xa9\xeb\x6c\x60\xde\x46\x72\xbc\xdb\xa1\x14\x1e\x86\xc3\xae\x61\xa9\x38\x4f\xf0\x94\x6b\x6a\x72\x9f\x2a\x53\xe1\x6c\x53\xa8\x7c\x05\x85\x1c\x85\x56\x38\xda\xcc\xff\xe8\xe1\x99\x2e\x1d\x5a\x19\x15\x25\xca\x89\xc4\x88\xc5\x79\x42\x74\xa3\x44\xe2\x08\x9a\x15\xc8\xbe\xc2\xb4\xf1\xd2\x2d\x92\x40\xfa\xa7\x2c\xc2\x74\xb9\xec\xe8\x5b\x7b\xa9\xf7\x55\x20\xe7\x4d\xed\x34\x13\xb7\x1f\xf4\xd3\x44\x1f\x60\xc2\xb3\x46\x0c\x25\xcb\x36\x33\xe6\x6f\x7a\x0f\x35\x18\x98\xd7\xbb\x88\xdc\xba\xdb\xa7\x25\x2d\x3c\xed\xcc\xe5\x67\x91\x7f\xa3\xbf\xa4\xd2\x99\xd5\xb8\x82\x88\x7d\x2c\xde\x5c\xfd\x0e\x3d\xd0\x3e\x83\xc0\xec\x10\x6d\xc7\x93\x6f\x0c\x20\x3c\x15\x1f\x0e\xf3\x8e\x53\x84\x77\xa4\xe5\x56\x5f\x9c\x14\x64\x49\x36\x54\x21\x8e\xc9\x8c\x42\xa4\x7a\x3e\x47\x9b\xe1\x70\x06\x6d\xa0\x82\x3a\xbd\x1c\x3c\xa8\x9c\x9d\xd5\x36\x76\x1a\xb1\xa7\xb4\x78\x32\x1e\xd0\xf4\xe8\xe8\x09\x06\xa2\x1e\xf1\x38\x4d\x48\x1e\xa7\x09\xae\x73\xba\x7e\x96\xba\xfa\x01\x9d\xd5\x5f\x8c\x84\x89\xb7\x6f\xbf\xc8\x82\xe6\xed\x34\x10\xeb\x0c\xe8\xa2\x61\xe4\x97\x0d\x87\x2e\xa1\xcf\x6b\x41\x0d\xa5\x79\xfd\x62\x45\x3f\x8d\x46\xcc\x89\x48\xd6\xcd\x66\x4c\xaa\xae\x77\x3e\xa0\xeb\x46\x43\xf3\xe1\x70\x5d\x37\x54\xdf\xa3\xe8\x96\xea\xb7\x9e\x91\x27\x4a\xc4\x61\x2a\x51\x41\x57\xf5\x0c\x52\x89\x72\xfc\x45\xb3\x28\x6c\x9c\x4a\xb2\x6a\xce\xe3\xa1\x19\x5f\x52\x9d\x51\x4f\xfb\xb2\x73\xda\x5d\xbf\x07\x54\x43\xc9\x80\xde\x15\x12\xd8\x97\xe5\x34\xcc\xb5\x3b\x0d\xbb\x1b\x39\x42\x5e\xfc\x71\x33\x9f\x33\xd9\x2a\x59\xa5\x37\x8c\x6f\x65\x23\x80\x56\x83\x14\x10\xd8\x18\xa3\xf6\x39\x45\x82\x0a\x73\xe4\x64\x6c\xc9\x57\x5c\x31\xb9\xdb\x05\x61\x40\x72\x2a\xc2\x55\xfa\xe9\x05\x5b\x9b\x28\xe7\x26\x04\x93\x26\xcf\xc0\x65\xaa\x24\x85\x87\xdd\xbd\x1d\x24\x35\xcc\xe3\xdb\x0d\xdd\xec\x76\x13\xe2\x1f\xdf\xb2\x0b\x79\xcf\x5c\x57\x32\x2a\xe3\x59\x42\x16\x54\x84\x45\x3a\x67\xc3\x61\x13\x1b\x65\x98\xcc\x3f\x47\x98\x65\x98\xac\xa9\xd2\x3f\x2b\x5a\x11\x61\xa6\x0c\x90\x61\x73\x8f\x36\x83\x5a\x4d\x2a\xb9\xa1\xcb\xe9\x72\xc4\x47\x29\x9a\xe1\x28\xb5\x37\xba\x83\xc5\x70\x38\x58\x0f\x87\xab\xea\x70\x80\x41\x64\xb8\x8e\x27\x37\xa8\x67\x68\xb7\xdb\x3c\xcd\xeb\xcb\x7f\x94\x91\x1b\xb2\x19\x4d\x70\xaf\x88\x6f\x12\x9a\x69\xf2\x06\x31\x4c\x0a\xcf\xe2\x42\x10\x11\xce\x97\xa9\x52\x4c\xc0\xf3\x46\xb8\xb7\x36\x3e\x32\x13\x94\x52\x94\xd3\xbc\x73\xad\x0a\x9a\x87\xf9\x0d\x93\x1f\x25\x57\xc6\xde\x7e\xa9\xb7\x4d\x6b\xc1\x36\x7a\xc1\xf8\x1c\x69\x7c\xe4\xcd\x84\x9b\xa0\xc1\x67\x15\xed\x79\x35\x40\x5e\x93\x96\x10\x60\xd3\xf4\x50\x79\xa2\x6d\x97\xb1\x78\x9b\xbe\x45\x0a\xef\x76\x47\xc6\x7b\x46\xe5\x33\x31\x0c\xf0\x6e\x97\x87\xa6\x13\x53\x16\xa9\x6a\x17\xf9\x78\x1c\x71\xdc\x75\x8e\x28\xd7\xe4\x67\x0d\x25\x34\x15\xb1\x47\xaf\x7b\x43\xd6\xdb\xae\x05\x13\x03\xb0\x98\xf0\xf7\xaf\x1b\xde\x67\x19\x03\x4d\xbb\x77\x00\x9e\xf3\x8d\x3a\x60\xbb\x1d\xea\x00\x41\x35\x1d\x38\x85\xe5\x48\x4e\x07\x2d\x9a\xd7\x7e\x70\x41\x5b\xcc\x90\xa6\x40\x18\x51\xfd\x4c\xd8\x3e\xf9\xd5\x41\x3d\xcb\x8e\x99\x04\x0f\x94\x95\xe2\x26\x1b\xa5\x23\x91\x50\x19\x8b\x84\x80\x36\x24\x2e\x91\x22\x8c\x08\x68\x92\xe4\xd8\x9e\xd6\xa4\xb5\x40\x9d\xe4\x9b\x5b\x1f\x65\x95\xce\x52\xc3\x02\x2c\x71\x6f\xc9\x54\x5f\xd0\x19\x92\xc6\x03\x33\xc2\x98\x64\xfa\x35\x1e\x27\x98\x2c\xe8\x06\xd0\xf0\x93\xca\xae\x25\xb3\xe6\x5f\x95\xfb\x01\x3d\x63\xc2\x42\x62\xcf\x34\xc3\x3e\xb7\x34\x8b\x58\x24\x98\xa8\xce\xd5\x61\x9d\x68\x01\xce\xc3\x41\x61\xcc\x41\xaa\xce\x2c\x6a\x4d\xd7\x27\x08\x3e\xee\x76\x3a\x93\x51\x4d\x81\xaf\xc3\x21\xb4\x46\x5d\xd8\xca\xda\xaf\xb2\x07\xef\xb7\x65\x14\xc3\x68\x75\x56\x22\x3d\x4b\x61\x74\x68\x6a\x70\x09\xd5\x32\xb7\x18\x9a\xb4\xdb\xfc\x9a\x08\x6b\xbe\xcb\x80\x86\xe3\xc3\xca\x7b\xd0\x35\x2f\x94\xdc\x82\xed\xe9\x8f\x2c\xfd\x70\x96\xae\x4b\x9f\x0b\xb2\x33\x6b\xb9\xcc\xd3\x4f\xbc\x68\x19\x12\xf8\x02\x28\x57\x9b\x26\xbb\x80\xad\xf5\xab\xb8\x66\xce\x7f\xdb\xe7\xcb\x5f\x33\xb5\x57\x3e\xcd\xb2\xfd\xf2\x1a\x2b\x30\x7b\x09\x58\x95\xb6\x57\x78\x80\x36\x9b\x75\x58\x83\x8f\x8e\x6e\x34\x6b\xa8\x83\xfd\x35\x8a\x5b\x83\x93\xf7\x6e\xd2\xbc\xa9\x3d\x3c\x9b\xe0\x46\x86\xe4\x7e\xe6\xb2\x37\x68\x09\xc1\x84\x62\x92\x06\xf0\x13\x80\x32\x2f\x57\x34\xd0\x7f\x83\x12\x89\xdd\x0e\x89\x3a\x2c\x74\x4a\x8a\x5f\xb1\xa6\xbc\x6b\x35\xd3\x2c\xdb\x77\x2b\xe7\x33\x71\x24\x27\x69\x8f\xe9\x3d\x67\xba\x36\x45\x26\x30\x75\x6c\xdf\x13\x2a\x49\x4a\x39\x8e\x10\xca\x5d\xfa\x27\xae\x4c\x72\x5e\xf9\x7a\xb3\xb3\x59\xaf\x1c\x52\x64\x2f\x84\xf1\xde\xca\x57\x79\x31\x49\x71\x7b\x05\x78\xb1\xd6\x5c\xf5\xc1\xee\xf3\x39\xf2\xfa\xed\x78\xd2\x3b\xda\x30\x19\xbd\xd8\xe9\x7c\x9a\x47\x1c\x23\x69\xbc\x3f\x58\x2b\xd0\x3b\x2b\xf8\xc4\x95\x57\x3e\x9d\xe6\x51\x0a\xe5\xed\xd2\x2f\x29\x4a\x3b\xc5\xaf\x28\x3d\xe4\xb9\xe6\xb6\x42\x7c\x51\x9c\x94\x1e\x35\x0d\xb8\xaa\xed\x42\xbf\xe1\xd2\xa6\x6c\xfb\xbd\xa9\x7c\xf9\x18\x55\xf6\x36\x47\x8c\x24\x86\x0b\x46\x99\x80\x4f\x1f\xec\x1c\xe2\xb4\x9c\xaa\x7b\x24\xa6\x05\x33\xdf\xeb\x10\x2b\x0d\xdf\xed\xaf\x15\x75\xaa\x7b\xd3\x96\x8b\x14\x1c\x21\xe9\x65\xf3\x2d\xa2\x35\xc4\x6a\xbe\x9f\x6c\xe8\x01\x5a\xba\xd6\x14\xac\xfd\x5b\x18\x91\x69\xed\x03\xc2\x22\xab\xf7\x8d\x7d\x40\x2a\x62\x63\x89\x40\xa3\xc7\x3f\x38\xf2\xab\x82\xc9\x9b\x3d\xad\xad\xbd\xc0\xd3\x84\x39\x1b\xf0\x56\x1b\x3e\x8c\xc3\x44\xb8\xab\xf5\xcd\xfa\x9d\xa9\x5b\x5a\x71\x42\xa3\xdd\x8d\x38\xd0\x72\x7d\x6d\x33\xe7\x22\x03\x53\x6a\x2e\xae\xdf\xe7\xb9\x3a\x15\x4a\x6e\x21\x58\x05\x48\x22\x34\xf0\x16\xc6\xfe\xc8\x35\x54\xd7\x0a\x08\x4c\xb5\x70\xa8\x2e\xd1\xb9\x7d\xec\xba\x7a\xc8\x01\xd9\x6d\x44\x0c\x44\xb4\x6b\xfa\xc4\xd5\xaf\xa8\xe8\x13\x57\x1d\xf5\xb8\x0d\xfd\xd9\x6e\xb5\x77\xfe\x1d\x7d\xab\xea\xfc\x4c\x07\xbb\xaa\x3c\xd0\xcb\xfd\x08\x2f\x9d\x50\xd0\x3a\x20\x50\xab\x1a\x03\x0f\xe2\xb5\xb7\x68\x87\x74\x15\xda\x82\x6d\xd9\xf0\x63\xe1\xd7\x60\xcd\xba\x3b\x1a\xb2\xf0\xd0\x05\x5b\xe0\x4c\x48\x85\x32\xcf\x15\xc9\xa9\x87\xfb\x8c\x5d\x5b\xc4\xdd\x75\x82\x06\x3f\x0d\x76\x2f\x65\xbe\xaa\x86\x65\x84\x1a\x29\x10\x2e\x66\x26\x99\x62\x72\xc5\x05\x73\x90\x6a\xf7\x42\x81\x94\xc6\xe1\xa4\x0a\x8d\x2b\xdc\x94\x15\x64\x49\x45\x27\xf8\xf6\x0a\x63\xcc\xc4\x30\x59\x0e\x87\xcb\xd0\x83\xe5\x0a\x21\x6f\xe8\xad\xab\x27\x02\x3b\xaa\x8e\x7a\xa2\xa5\xe9\x9b\x60\x1f\x1b\x5b\x90\x54\x01\xdc\x4b\xab\x9f\x63\x8d\x3b\xf9\x7c\x5b\x3b\xc8\xe9\xa5\xd3\x34\x9e\x25\x74\x13\x7d\x6e\xbb\xe7\x04\x21\x09\x87\xa0\xce\x0e\x02\xb8\xe6\x62\x78\x1d\xe8\xde\xe6\x66\x19\x84\x7d\x38\x03\x97\xbb\xb0\x3c\x6a\x21\x59\xb1\xc8\x97\x99\xe6\xcc\xd9\xc7\xfe\xeb\x8e\x61\x22\x0f\xd3\x34\xe1\x42\x61\x3f\x2e\xe9\xad\xae\x3b\x92\xa4\x6e\x22\x12\xa4\x6a\x20\xe2\x95\xe1\x5f\x3f\xf7\xa6\x9c\xe4\xcd\xb1\xe4\x87\x80\xb7\x89\xb5\x7a\x5d\x8e\x78\xea\x3b\xae\x90\x17\x75\x35\xe2\x1a\xc6\xea\x2f\xe1\xfb\x54\xf1\x9c\xe4\x94\xd5\x33\xb0\xdb\x8d\x7b\x4d\xe9\x40\x8e\x21\x86\x76\x1e\xe7\x75\xf4\x17\x4b\x21\x51\x79\x00\x6d\x32\xdc\x13\xbb\x1d\x7f\x96\x4f\xd3\xe1\x30\xad\x60\x31\x2c\xf2\x15\xeb\x0c\xed\x09\x4e\x21\x19\xdc\x9d\x28\xeb\xfc\x05\xc9\x6e\xa4\x65\x80\x6b\x0c\xf2\xd7\xe8\x5f\x53\xbd\x87\xbf\xfc\xda\xcb\xf6\x31\xd2\xb5\x49\x1b\x88\xc5\x39\xed\x6c\x81\x71\x43\x5b\xa0\x0d\xe2\x1e\x91\xd3\x3e\x46\x3a\x27\xb7\x53\x9d\x1f\x20\x5b\xd6\x08\x46\x39\x04\x03\xf0\x7e\x10\xc1\x58\xab\xeb\x4a\x61\x3f\xee\xde\xa6\x0c\x27\x6d\x3c\x7d\x00\x0f\x1d\x84\xd4\x5a\x68\x0c\x9c\xad\xea\xb8\x17\xaa\xf4\xfc\xc1\xcc\xd1\x62\x8f\xfa\x8e\x23\x95\xce\x3b\xd4\x79\xba\x62\x60\xd9\x5a\x62\x0c\x51\x66\x1d\x93\x2d\x5a\xdd\x6c\x16\xd9\x97\xca\x33\xcf\xe2\x61\x30\xee\x7d\xa1\x77\x88\x2e\xf9\x77\x33\x8f\xb1\x77\x90\x83\x9a\x97\xb6\x6e\xdd\x3e\x23\x24\xf1\x92\xab\x35\x81\x3e\xea\xc2\x9a\xfd\xea\xba\x6a\xed\x48\xab\x6d\x5c\x39\xdc\x90\x61\x3e\x47\x5f\x68\xf7\xc8\xf1\x70\x38\x98\x54\xee\x49\x5b\x73\x1e\xf3\x84\xa8\x98\x77\x0a\x6a\x9b\x07\x63\x0b\x84\x0e\x02\xad\x5b\xbc\x3f\x9f\xbf\x7b\x5b\x97\x6a\xba\x10\xb0\xfc\x46\xa0\xf3\x83\xf8\x60\x38\xac\x70\xdc\x1d\xb1\x8f\x55\x08\xee\xdb\xde\xf0\x42\x1d\x12\x74\xb9\x39\x1e\xa9\x12\x93\xa0\xbe\x60\x51\x21\xcf\x46\xc1\x51\x30\x12\x95\xa5\xac\x41\x06\x25\x2a\x70\xaf\x8e\x89\xb4\xd9\x17\x11\x38\xc7\x18\xdf\x18\xfb\x3a\xf4\xcd\xa4\xe9\xa9\xce\x52\x34\xcf\x6b\x1f\xff\xbb\x9d\xb9\x64\x31\x1a\x39\x8a\xad\x0a\x38\x84\xce\xd2\xb5\xf3\x73\x64\x2c\x3e\xba\xed\x60\xeb\x52\x24\xf0\x58\x85\x80\x58\x37\x88\x39\xf1\x8d\x64\x27\x25\x2e\x73\x5f\x47\x42\xd7\xbd\x47\x6e\x15\xfc\x17\x46\xc7\x2e\x92\xee\x8a\x89\x42\x1f\x42\x63\xaf\x87\xae\x53\x25\xc9\x9b\xe4\x50\x37\x11\x44\xbd\x92\x46\xe6\x50\xa9\x44\x39\x7b\xed\xaa\x9d\xd1\x88\x18\x17\x5d\xcd\x79\xf2\x1b\x37\x82\x07\xe1\x82\x9f\xd5\x73\x49\xe9\x39\x53\x53\x24\xa9\x80\x31\x18\x13\x7f\x70\xc3\xf7\xd4\xa4\xb8\x60\x04\xfc\x17\x36\x1a\xe1\x08\x89\x46\x84\x3b\x97\xee\xec\xed\x1b\x18\x6f\xc9\xba\xe2\x37\x1f\x1c\xd9\x60\xa0\xaa\x98\x6f\xfc\x17\x76\x44\x3b\xbb\xaa\xe0\x63\xe4\x3c\xbf\xb6\xa6\xfc\xe8\xc8\x1f\x75\x25\x2c\x21\x83\x71\x6b\xe2\x8d\xbc\xe5\x30\x01\x7a\xb0\x8f\xdc\xf5\x71\x6f\x0e\xc1\xb7\xa1\x6d\x52\x61\xec\x4d\xdc\xd1\x11\x01\x1a\xd6\x4e\x28\xea\xec\x62\x7b\x20\x98\x48\x1c\x81\x9c\x1a\x09\xca\xbd\x60\x80\xb8\x31\x4b\x47\x10\x9c\xaa\x32\xa9\xff\xb2\xba\xf5\x7c\x44\x88\xbb\xb0\x81\x82\x4c\x60\x8a\x70\x6b\x92\x16\xe9\x61\x89\x9a\x69\xc2\x89\xd3\xf2\xa6\x38\xed\x33\xa5\x9c\x10\xcd\x2f\x65\xc3\x1a\xf1\x19\x57\x5d\x07\xf6\xc1\xed\xe0\x1d\xe0\xe3\xe8\x4b\x20\xa6\xd9\xec\x2c\xdf\x08\x45\x0f\x75\xa4\x91\xd5\xd2\x8d\x5d\x30\xe3\xeb\xb6\x08\x7c\xeb\xd0\x29\x11\x9a\x01\x52\xfb\x3e\x18\x27\x53\xe3\x1b\xcf\x07\xd6\x0e\xc5\x3a\x40\xb8\xe0\x01\xc1\x7d\x14\x86\xc4\xea\xe8\xd6\x49\x51\xe4\x33\x9e\x76\x10\xbf\xbf\xb2\x7d\xc3\x63\xfa\x2d\x68\xfa\xe3\xa0\x3e\x24\x94\x05\x0a\xa5\x55\x0a\x90\x69\xb1\x67\xa6\x67\xbc\x87\x39\x65\x74\x53\xdc\x64\x45\x98\xa4\xb4\x3a\x1f\xfb\x9d\x6b\xa9\xb1\x9c\xa8\xa7\x08\x64\x3e\x7c\x8e\x06\xa9\xb9\xc3\xd6\x2b\x29\x20\xd0\x00\x0e\xb3\x5c\x38\x95\x86\x5b\xfd\x1c\x0d\xc6\x65\x2f\xa5\x83\x31\x61\x54\x59\xb7\x2c\xae\x61\x7b\x66\x21\x7d\xc6\xfa\xe5\xa7\x48\xf7\xc8\x28\x84\xd9\x4a\x26\xd6\x53\x9f\xad\xa2\x2c\xad\xe5\xa3\xdf\x2b\xf1\x9b\x7a\x45\x24\x38\xfb\x70\x77\x30\xd5\x79\xfa\x8c\x72\xdb\x1f\xd1\xd1\x1f\x16\xcb\xd1\x28\x29\xf7\xc0\x83\x09\x25\xf9\x1d\xeb\xe0\xd8\x69\xb3\x12\x36\x37\xc2\xa4\xf8\xb5\x4b\xe1\x06\x5d\xb8\x41\xa7\x77\x0f\xba\xd0\x83\x96\x6e\xd0\xa0\x1b\x5a\xbd\x4c\x92\x2f\x58\x9a\xe2\xd0\x54\xc4\x92\xd8\x8a\x92\x3b\x97\xe7\x5f\xd3\x53\xc2\xe9\x18\x38\xc2\xe6\x72\xf1\x67\x34\xbf\xbb\x8f\x2c\xe6\xa3\x51\xd2\xb1\x64\x95\x67\xcc\xcf\xec\xba\x6a\x8a\x1a\xa5\xd3\x1a\x11\x7c\xa6\x7c\xb5\xd8\xdd\x91\x37\x9d\x92\x1f\xf2\x6a\x8f\x5b\x1e\xe3\x13\xda\x01\x6b\xb8\xd1\x1f\x2e\x8a\x35\x9b\x75\xa9\xe9\xd7\x5d\xf9\xf5\x1d\x00\x3d\x43\x91\x67\xec\xef\x45\xb8\x51\x7c\xe9\x9a\xb1\x3a\x4b\x01\x6e\xf6\xcc\x7e\x6d\xf6\xec\x33\x9a\xde\xa6\x63\x39\x04\x62\xec\xe4\xd2\x34\x5c\xe5\x5e\x74\x5e\xde\x22\xc2\x35\xf6\x06\xca\x4b\x11\xe7\xc1\xd7\x73\x87\x92\xdf\xa5\x95\x71\x98\x72\x25\xc1\xa5\x00\x27\xa2\xb7\xb5\xb3\xee\x49\x93\x62\x75\x18\xa1\x74\x07\x7f\x2e\x4c\x70\x94\x86\xe8\xe7\x53\xdb\x43\x77\x95\x77\x6f\x03\x78\xf6\xd5\x97\x66\xa7\xd4\x7a\x55\x19\xe8\x6d\x22\xaf\xa1\x31\x26\xec\x33\x0b\xaa\xee\x82\xa8\xee\xf5\xd0\x83\x09\xf3\xf9\xbe\xd9\x77\xed\x9c\x40\xd6\xd1\x30\x05\x1d\xf7\x3c\x5d\x7f\x85\x50\x87\x11\xc0\x33\x2a\xa7\xd5\x20\xf7\xf1\xa9\xa8\xf0\xa9\x0a\xd9\x6a\xad\xb6\xfb\x6d\x9b\xba\xc1\x8d\x6a\x73\x46\x00\xa1\xeb\x82\xbc\x93\x82\x6a\x3a\xd6\xae\x3d\xf9\xfb\x3c\xaa\xf5\x0e\xdf\x1d\x62\xc1\x2c\x60\xc3\xbb\x4e\x13\x9c\x0c\xd5\xd4\xb5\x08\xc0\x3a\x19\x0d\x1d\x22\x3b\x73\x98\x15\xe9\xb5\x95\x74\xaa\xfb\x37\x52\x90\xa5\x75\x76\xb1\xa7\x93\x97\x5f\x2d\xdd\x4a\x3e\xb0\x14\x45\xd4\xe7\xd6\x88\x0d\xbe\x5c\x2d\x59\x68\xbc\x02\x76\x78\xc5\xdf\x8f\xc3\xd2\x5d\x23\xfb\xb4\x36\x12\xba\x7e\x0a\x9e\xc7\xaf\xd2\xd9\x07\x5b\x6b\x5b\x6f\x70\xb7\x53\x56\x7d\xc7\x0c\x3a\xe4\xc5\x5f\x39\xfb\x08\x5f\xba\x3c\x44\x7a\xb7\xef\x16\xb0\xcc\x0d\xbc\x6f\x4e\x6f\x54\xb3\xc6\xa4\xa8\x20\xce\x86\x5a\x1d\x61\x81\x58\x9c\x26\x24\xc5\xb5\x57\xba\xfd\x61\x56\x54\x1b\xe6\x73\x24\x2b\x3d\x6a\x37\xce\x3e\x6f\x85\xd6\x18\x34\xd7\x1d\x5c\x8e\xee\xef\x1c\x84\x31\x39\x58\x06\xfa\x9c\x1b\xe1\x46\x5b\x94\x01\x12\x4b\x61\x54\x37\x73\xdb\x71\x9d\x9d\x53\x46\x52\x3a\x7e\x32\x18\x6b\x2e\x64\x49\x79\xe3\x9c\x7c\x82\x05\x5a\x5a\x92\x25\xc5\x24\x1d\x8d\x4c\xc9\x06\xb5\x2a\xdc\xcb\x8f\x5c\x2d\xde\x6e\x96\xcb\xbf\x34\x88\xc9\xdf\x04\x58\x7e\x95\xff\x7a\x20\x6b\xd6\xfe\x5f\x1e\xe0\x0c\x12\x72\x30\xd7\x74\x73\xca\x14\x66\xdd\x86\x3b\xb0\x02\xe0\x05\x1a\xff\xaf\x05\xb0\xc6\xd9\x79\x37\xcc\x7a\x58\x55\xb4\x6f\x9b\x9b\xd7\x01\xad\x13\xb4\xcd\x67\x3d\x3d\xde\x87\xb4\x95\x60\xab\x5c\xf0\x42\x3d\x38\x67\xcd\xca\xa2\xbe\x60\x2c\x2b\xfa\xa9\xea\x2f\x59\x5a\xa8\xbe\xfa\x98\xd7\x5e\x5d\x43\x1b\xea\x17\x08\x77\x38\x78\xce\x99\x22\x82\x4e\x1e\x68\x66\x01\x9c\xdf\xe4\x7b\x8c\x1e\x28\x2f\x29\x3a\x7e\xa2\x9e\xe6\x4f\xd4\x68\x04\xbd\xd4\xcc\x32\xf2\xce\xcd\x58\x25\x18\x58\x64\x27\x40\x95\x3d\x06\xef\x4f\x85\x71\x54\x64\x24\x43\x9c\x32\x5c\x3a\x29\xa9\xd5\x26\x26\x33\xca\x2b\x32\xf4\xc9\x00\xa5\x74\xd6\x9a\x71\xb8\xe4\x2f\x68\x6a\xa7\x7d\xa9\x0f\x46\xbf\x43\x9a\x00\xdf\x34\xfb\x32\x80\x58\xd2\x83\x0d\x08\x17\x0a\x8c\x6f\x97\x9a\x15\xb9\x92\x2c\xfd\x50\x2e\x87\x43\x88\x16\x88\x6a\x7f\x8c\x52\x1f\xb3\x1b\xf1\xaf\x58\x0d\xa8\xe5\x57\x2c\x83\x15\xbb\xe9\x85\xe0\xdd\x73\xcf\xe8\xf8\x09\x7b\xca\x9f\xb0\xd1\x08\x9b\xb5\xa8\x87\xca\x12\x7f\xea\x34\x7f\xd1\x02\x56\x18\xa8\x34\x99\x6a\xf1\x9f\x1e\x6e\xc6\xe7\x36\x60\x4f\x97\xa9\x65\x63\x31\x6d\x07\x8d\x89\x79\xd7\x17\xc4\x70\x1d\x6a\xbb\x31\x22\xd6\xec\x5f\x7b\x33\x81\xbe\x46\xd5\xbf\xdd\xee\x8e\xfe\x16\xdb\xd5\x8a\x29\xc9\x67\x2f\x0e\x75\xfc\xbf\x47\x0f\x0c\x46\x50\x77\xd7\xc1\xbe\x7c\x14\xbc\x38\xdf\x5c\x1d\x96\xd8\xd6\x9d\xed\xed\xdf\x94\xe8\x14\x98\xfd\x67\x8d\x45\xb0\x6a\xde\xd0\x33\xd1\xea\x99\x59\x31\xbf\x77\xdd\x77\x08\x10\x09\x45\x63\x91\x46\xc7\xfc\x6b\x79\xd7\x71\xeb\x18\x47\xb5\xbd\x42\xb4\xe6\xbf\x35\x63\xed\x7e\xb1\xc6\x0c\xc1\xf2\x76\xbb\x43\xf8\x55\x75\x5a\x61\xa5\x5f\x6d\x85\x1c\xef\xa8\x97\xdd\x5d\x6f\x1b\x42\x3a\xdb\xc9\x78\xf1\x77\xdd\xc0\x17\x35\x03\x9e\x51\xbf\xa0\xad\xca\xf5\x69\x03\x1c\xbf\x60\x22\xda\x1d\xde\x03\xe9\xda\x13\x2b\x6f\x7b\x62\xad\x86\xc7\xe3\x3c\x69\xce\x21\xcf\x05\x44\xe4\xed\x92\x5e\xb6\x81\x13\x22\xc6\x33\xc2\xa8\x22\x8a\x4a\x4c\x8c\x03\x76\x1f\x77\x8c\xdb\x20\xde\x37\xdf\xab\x0e\x8a\xc6\xee\x25\xb9\x3e\x94\x41\x8e\xdd\x35\x67\xa2\x9a\xb3\x7c\x34\xaa\x2e\xfb\x2b\xbc\xde\xee\xb7\xf4\xae\xeb\x5b\xc3\x83\xaf\xbd\x46\x97\x46\xd2\x08\xca\x61\x0b\xff\x3d\x9d\xcd\x52\x99\xfd\x33\xb5\xe9\x49\x10\xd3\x71\x24\x1e\xa0\x56\xc5\x30\xd1\xf9\x0d\x93\xcb\x74\xfd\xdb\x6a\xae\x1c\xcc\xd8\x33\xd7\xb4\x80\x3b\xf4\x6a\xbb\x7d\x67\x9b\x88\x1c\xfc\x1f\x1b\xf6\x86\x8b\x0f\xaf\xb3\x40\x57\x45\x19\xe8\x9b\x0e\x87\x68\x96\x8b\x22\x5f\xb2\xf0\x63\x2a\x05\x0a\xc4\xb5\x4c\xd7\x8b\x10\xfe\x46\x7d\xf0\x90\xa4\xe9\x5b\x08\x6f\x78\xc3\x24\xc4\x1c\x1b\x87\x93\x47\xfd\xff\xf4\xab\xfc\xcf\x3e\x2f\xfa\x19\x5b\x4b\x36\x4b\x15\xcb\xc2\x9f\xc5\x0f\x05\xeb\xff\x27\x48\xcd\xa1\xaa\xff\xec\x9b\x8b\x68\x17\xdb\xf1\x67\x11\x90\x00\xfe\xbc\xcd\x15\x8b\xfa\x6a\xc1\x24\xd3\x95\xa4\xcb\x22\xef\xcf\x16\xa9\xb8\xd6\xd4\x6a\xdf\xde\x10\xf6\xaf\xd8\x22\xbd\xe1\xb9\x8c\xfa\x2f\x75\x4f\x44\xfe\xb1\x9f\x8b\x3e\x4b\x67\x8b\x3e\xd4\xff\xb3\xe0\x45\x5f\x8f\x84\x67\x4c\xb2\xac\xaf\x72\x88\x86\x96\xab\x7e\xda\xaf\x7b\xd1\xbf\xda\x56\x35\x22\x28\xcc\xb2\x6b\x68\xd6\x0c\x06\x87\xe0\xbe\xbb\x2e\x40\x59\xe8\x0f\x13\x93\xda\x5d\xa4\x97\x0b\xe2\x4e\x7a\x85\x06\x93\x4e\x0a\xf6\x2c\x5d\xef\xd3\x1a\xfe\x7c\x3b\xb7\xfd\x45\xff\x3f\xcf\xd2\xf5\x7f\xda\x41\x58\x4e\xbc\x0a\x96\xb9\xce\x97\xdb\x39\x5f\x2e\xfb\x5c\x4f\xcb\x3c\x97\xac\xbf\x01\xa7\xff\xa6\x2a\x4b\x8a\xa8\xea\xf2\x53\xd2\x38\x01\xc3\x0a\x32\xa3\x63\x92\x35\x7a\x3e\xed\xbe\x76\x35\xb6\x84\x84\xd3\x4d\x9b\xc4\x16\x70\x8c\xf1\xdd\xee\xc2\xe8\x07\xde\xf2\xdd\x0e\x81\x0b\x9d\xb1\x69\x37\xa7\xc1\xff\x37\x18\xf5\x47\x23\x9d\xd8\x83\xaa\x46\x39\x51\xa3\x1c\xfb\x6e\xfd\x0a\x17\xcc\x02\x97\x87\xec\x02\xfc\x6c\xce\xb6\x91\x2c\xf4\x58\xe6\xf4\x8c\xac\xe9\x19\x59\xd1\x33\x72\x43\xcf\xc8\x35\xbd\x4d\xb3\xec\x6d\x9e\xb1\xe8\x92\xa4\x59\xa6\xd7\xaa\x59\xab\xc0\xb7\x2b\x6b\x99\xc5\xa9\xe1\xb9\x2e\x41\x5b\x88\x7e\x04\xc3\x8f\x4b\xa4\x30\x29\x68\x66\x33\xd7\xca\x12\x80\xab\x0b\x4c\x52\xc4\x49\x81\x09\x33\xee\xab\x53\xf0\x91\x45\xe6\xa8\x20\x41\x9a\x65\x01\x26\x37\x08\x93\xa2\x24\xe6\xfe\x10\xda\x3f\xb7\x2f\xd0\xad\x53\x72\xcd\xc0\x97\x7a\xf4\xd1\x3d\x3d\xcf\x37\x42\x45\x9f\xf4\xab\xce\x6f\x5e\xdf\xb9\xd7\xc2\x7b\xd7\xb9\x8b\x56\xf6\xa2\xc3\x6b\xed\x47\xdf\x5d\xdf\x54\x85\x4b\xc8\x67\xbd\x4f\x18\x3e\x06\xba\xf0\xdc\xbd\xe9\x8a\x98\x99\x37\x1f\x3f\x55\xcc\xb7\xa9\xd1\xd8\x15\x72\x53\x5d\xa7\xd8\x49\x56\xb4\xe3\xb4\x5d\x4f\xa5\x3f\x41\xc7\x4f\xf8\xd3\x8a\x4b\x1d\x8d\x6c\xbc\x9a\x9c\xb2\x98\x83\x4b\x71\x23\x51\x7d\x9d\x51\x50\xe5\x10\x08\x2c\xa1\x51\x1e\xaa\x5c\x6f\xbb\xca\x6e\x69\x30\x2e\x4b\x64\x3b\x43\x34\xba\xdc\xeb\xfa\x97\x35\x49\x52\xea\xb7\x38\x35\x0d\x45\x2e\x0d\xd4\x79\x6c\x1f\xd2\xbb\x9a\x2f\xfd\xc9\xdc\x5f\x14\x22\x0e\x84\x21\x64\x96\xf0\x1f\x13\x51\x3b\x70\x57\x4f\xc5\x93\xd1\x48\x61\x86\xa4\x66\x79\x4a\x72\xc5\xae\xb9\xf8\x61\x9d\xa5\x8a\x45\x2b\xc2\x44\x66\x9f\x6f\x4c\xbc\x68\xdf\x69\xf8\x0a\x61\xf2\xbc\xe5\x7f\x03\xb1\x90\x67\x20\x63\xbe\x01\xbf\x20\x69\x01\xbd\xbc\xd0\x4f\x35\x34\x9a\xb4\xca\x4e\x4e\xa0\x6b\x4c\xf6\x64\x9a\xd7\x61\x2e\x7a\xfa\x4f\x87\x20\xf6\x3a\xf4\xfa\x49\x57\xf4\x7b\x72\x1d\x56\x7d\xa5\x37\xf4\x84\xcc\xe9\x15\x59\xd3\x2d\x81\x0a\x18\x61\xd6\xb7\xe0\xb5\xef\x48\xbf\x44\x98\x5c\xd7\xe2\xc5\x2b\x43\x8a\x2c\xac\x1b\x7f\x3d\xe3\x11\x23\xe6\x60\xb8\xd8\xae\x59\xa4\x4a\xcf\x90\x70\xdb\xcc\x2d\xf4\xe0\x0e\xe7\xbe\xac\x74\x61\x3a\xe3\x9e\x5a\xcc\xec\x9c\x6c\xe9\xca\xfa\x3c\x63\x42\xf1\x39\x67\x32\xc0\xbd\x55\x1d\x56\xc1\x57\xc1\x98\x22\x11\x66\xa9\x4a\xa9\x24\x6b\x24\x48\xb0\x81\x09\x08\x30\x8e\x90\xb0\xd7\x02\x10\x44\x0b\x3e\x02\xde\xc0\x44\x55\x4a\x18\x80\x43\x44\xdd\xc9\x8f\x8d\x58\x70\xf6\x72\xbc\xfa\x7a\x5a\x87\xe1\x71\xbb\x74\x20\x6b\x4e\xa0\xee\xa1\x34\xc0\x6a\x1d\xc0\xda\x37\x90\x0c\xf4\x9a\x3b\x45\xf8\x3b\xe5\x1c\x89\x98\x27\x75\xf8\x06\x4f\x6b\x60\x8d\x24\xb1\x21\xf0\x2d\xe2\x1b\x8c\xeb\x7e\x7d\xf2\xe4\xf3\x40\xa6\xd4\x9f\xde\xd5\x9f\x1c\xc4\xd7\x1f\xcf\x11\x6b\xba\x04\xb2\x86\xc1\x8a\x72\x43\x15\xf1\x39\x52\x4f\xc7\x8d\x11\x6a\x42\xc8\xa8\x2a\x28\x32\xf1\x56\xc4\xee\x61\x83\xde\x99\xc1\x20\xbe\xeb\x20\x53\xa7\x30\x53\x81\xf1\x33\x3a\x1e\x0e\xed\x9b\x5f\x21\xc9\xab\xbc\x79\x23\x6f\xde\x91\x77\x8e\xd8\x1d\xb3\x72\xd1\xe4\x09\xab\x15\x13\xbb\xdd\xc0\xf5\xc3\x75\xd0\xad\x8c\x89\x65\xec\xfa\x55\xad\x4d\x65\x23\x62\xbf\xc4\x12\xd0\x27\xaf\x91\x19\xd3\xd8\x5a\x0f\xda\x27\xc4\x2b\xbb\x1a\x38\x0f\xaa\x8e\x9d\x21\x7c\x5b\xbf\x7d\x8f\xf0\xed\x6c\x44\x27\x75\xca\x09\xc2\xb7\x63\x4a\xd1\xec\x88\x4e\xf0\x70\xb8\xf0\x8d\xc0\xae\xc3\x39\x97\x0c\x05\x66\x97\x65\x01\x59\x60\xe2\x32\xd0\xb1\x07\xab\xcf\x1d\x11\xda\x21\xd4\xdb\xdf\x76\x2e\x46\x90\xa6\xca\x8c\x7c\xd5\x90\x73\x46\x3e\xc8\xfa\x9a\xa4\x36\x34\x1f\xec\xcc\xc2\x84\xe3\x5e\xa7\x45\xc1\xb2\x7e\x30\xf2\xe5\x16\x1e\x5b\x05\x68\xd6\x70\x19\x4f\x06\xc2\x89\xa1\x34\xbb\x52\xf1\x19\x35\x5b\x5e\xe7\x2d\xcb\xb2\x57\x69\xa2\x3d\x6a\x47\x5e\xb3\xee\x12\x9c\x87\xf6\x89\x89\x11\x6c\x75\x72\xea\xd8\xc0\x4e\x49\xc7\x7a\x53\x34\x8c\xaf\x27\x0e\xb2\x2b\xfd\x44\x8e\xe8\x04\x43\xa8\x0a\x99\x00\x4a\xaa\x24\x6f\xae\x81\x56\xc4\x35\xab\x66\xc6\x33\xca\xcc\x9d\x5e\xbd\xb9\xed\x1d\x9f\xc6\x46\x6a\xcf\xf5\x07\x33\x19\xa7\xf6\xd7\xe9\x6e\x45\xf6\x9d\xc6\x2a\x69\x7a\xfe\x30\xa4\x9a\x69\xcd\xc2\x99\x6d\x11\xe0\x4c\x79\xad\x39\x05\xb3\x8c\x7a\xb8\x6c\xd9\xf2\xe2\x54\xcb\xb0\x47\xc1\xff\xfd\xbf\xfd\xff\xff\x7f\xfd\x60\xa4\xfc\xa8\x31\x9f\x75\xba\xd4\x8c\xa7\xec\x30\xc7\x1e\x2c\x41\xa8\x24\x3e\xdf\xf6\x67\x26\x1c\xed\xa6\x60\xfd\x79\xba\x2c\xb6\x7d\x2b\x5c\x4f\x8b\x3e\xbb\x81\x88\xed\xc5\xc6\x5c\xb6\xd5\xe0\xa3\x68\x1c\xe4\x9a\x43\xd1\x60\x1e\x90\x20\x9f\xcf\x83\x84\xb4\x42\x8c\xeb\x0d\x09\x8c\x72\x8b\x4e\x06\xdb\xa4\xfd\x0e\x9d\x9b\x56\x5c\x7f\xae\x98\x69\x1e\x5c\x9d\x90\x7e\xc1\xc5\x8c\x69\xb2\x3e\x5d\x4a\x96\x66\xdb\xfe\x22\x2d\xfa\xce\xdf\x47\xff\xab\x60\xa4\x6b\x1d\x05\x5f\x05\x60\xa9\xdd\xe1\x5e\xa8\xe1\x1b\xc8\xda\x2f\xf9\xf7\x90\x8d\xc0\x3a\x36\x6c\xe0\x17\xdf\x86\xb8\x0b\x8e\xf6\xc6\x84\xd0\x4f\x55\x0d\x8e\x0b\x80\x80\xeb\x8e\x69\xdf\xed\x90\x49\xa1\x71\x02\xb7\xed\x70\x4a\xbb\x0a\x23\x01\x01\x7a\x78\x09\x57\xc4\x8d\xb0\x34\x00\x76\xfe\x39\x5d\xd1\x9a\x9d\xc3\x24\xc6\x91\xba\x9e\xfb\x43\xc3\xb2\x61\x65\xa0\x7b\xd5\x0d\x81\xd3\x97\x96\x09\xc8\x24\xf2\xa7\xbc\x5e\xdf\x1c\xf3\x38\x4f\x42\xd7\x59\xcd\x95\x6b\x04\x6b\x91\x7f\xae\x4f\x9e\xca\x83\x01\xd1\xa0\x12\xf9\x46\x30\x4e\xea\xa1\x2c\x9e\x1e\xf0\x3a\xf2\xe3\xbe\x02\x16\x48\xd6\xf7\x54\x71\xd7\xdd\x71\x82\x1a\x72\x9f\x76\x9f\xad\x1d\xa0\xee\x7a\x2f\xad\x3a\x6f\xe9\xae\x14\xe2\x01\x89\xea\x78\x67\x10\x3d\xcc\x93\x90\xe4\x1a\x43\xe5\x82\xb0\x30\x9f\xcf\xf5\xe3\x7c\x4e\x18\xa0\x7b\xaa\xe0\x87\xb0\x2f\xb4\xea\x35\x86\xd4\x0f\xd0\xd1\x14\x4d\xa3\x9f\xb3\xd1\xcf\xe1\xf4\xe7\xec\xfe\xee\xe7\xec\x3e\x3c\x8d\x30\x9a\x46\x2c\x3e\x1a\x25\xf0\x32\xc5\x3f\x17\xf7\x51\xfc\xf3\xfa\xf6\x4d\x99\xdc\xc7\x0f\xae\xf9\xa6\x81\x72\x69\x00\x91\x5e\x56\x45\x50\x69\x5b\xe8\xe3\xd2\x2a\x03\x31\x8a\xd8\x28\x08\xbc\xd0\x0f\xe8\xe7\x0c\xc7\xe4\x32\xd1\xbf\x0f\xae\x49\x70\x6f\x72\xef\x38\xc0\x75\x06\xd1\xd4\xcc\xd0\xc0\x86\x04\xcd\x91\x00\x75\x4a\x49\x91\xdc\xed\xc6\x78\x04\x21\x01\x5e\x2e\xf3\x54\xe9\xc3\x7e\x8c\xef\x0b\xa3\xb8\x31\x1c\xca\x07\x28\x07\x0e\x72\x72\xc0\x37\x14\x07\x77\x95\x3c\x66\x9f\x89\x4e\x91\x94\x3c\x14\xa9\xc8\x8d\x2b\x63\xca\x43\x51\xd0\x09\x3b\x7a\x4c\x78\x1c\xfc\xb7\xff\xa3\x08\x12\xca\xe3\xe0\xff\xfa\x3f\xe1\x21\xdc\x14\x94\x87\x2b\x3e\x93\x2e\x7b\x38\x1e\x4f\x88\x4e\xaa\x9c\x21\xeb\x0c\x85\x2e\x13\x24\x54\x7f\xaa\x52\x0b\x36\xd3\x7f\xe9\x84\x3d\xbc\xaf\xf3\x40\x31\xb1\x51\x0c\xaa\x14\xfa\x2f\x7d\x3c\xbe\xcf\x43\xfd\x65\x91\x6f\x24\xe5\xe1\x02\xfe\x98\xe4\x15\xe1\x61\x96\x6e\x29\x0f\x33\x7a\xfc\xe8\x3e\x0f\x17\xc4\xf8\x23\xa5\x3c\xfc\x08\x7f\xe8\x37\xf7\x79\x98\x11\xeb\x1e\x95\xf2\xf0\x8a\x3e\x1c\x87\x8f\x1e\x7e\xf3\xb5\x4d\xdf\xb2\x54\x57\xb8\x85\x3f\xf4\xe1\xe3\xaf\xc3\x63\xf3\xa9\x56\x08\xe7\x9f\x81\x2e\x63\x52\x0f\xa7\xf2\x37\x7e\xb8\x44\x9d\x99\xde\x96\x98\x3e\x83\x23\xc1\xf8\x7a\x08\x79\xf1\x92\x0b\x0e\xe4\x6b\x77\xc0\xc2\x53\x87\xce\xd2\xfe\x1c\x72\xf6\xad\x61\x3c\xee\xa9\x70\x96\x2f\x73\xf1\x36\x57\xa0\x3c\x05\x6a\x2a\xb3\x7c\xb5\x4e\x67\x8a\x0e\x26\x44\x59\x6f\x70\xe7\x9b\x2b\xdf\x15\xb5\xf9\x54\xb0\x75\xaa\x69\x96\xfd\x2f\x37\x4c\x5e\xe5\x05\x03\x49\x51\x55\x1f\xd4\x6d\xb3\xbd\x60\x33\xbe\x4a\x97\x2f\xf8\x35\x57\x05\x1d\x13\xe5\x2f\x6e\xfb\x2b\xee\x39\x4f\x06\x71\x42\x38\xad\x5c\xf2\xda\x59\x40\xe3\x01\xad\x98\xcc\xe1\xb0\x35\xa2\xdd\x0e\x22\x73\xee\x76\x7b\x23\x0d\x56\x01\xf8\x55\x76\x7e\x0c\xf4\x5e\x4e\x09\xb0\x12\x39\x45\xf9\x6e\xc7\x6c\xe0\x88\xfa\xe4\x26\xad\x4a\xf0\x6d\x4a\x6b\xcf\x01\xd3\x20\x0a\xa2\x00\x42\x2e\x05\x95\x57\x84\x3c\xe4\x62\xb6\xdc\x64\xac\x00\x87\x1b\xd3\xdc\x45\x00\x0a\x03\x1c\x8f\x13\xe7\x5a\x22\xaf\x54\xbb\xfd\x0a\x8f\xa3\x49\x2f\xa7\xc1\x38\xd0\x1b\x8a\xa5\x0a\x19\x59\x69\xfa\x09\x8d\x89\x3a\x62\x18\x8f\x72\xe3\x79\x3b\xa5\xd0\x6e\x35\xf3\xd3\xa0\x1f\x8c\xd0\x92\x0a\x50\x94\x66\xd3\x65\xb4\x1c\x05\x45\x80\x23\x6e\xdc\x3c\xf5\xac\xec\x27\x1d\xe5\xa3\x02\x97\x24\xa7\xc2\x09\x43\x4c\x1b\x4a\x6e\xc4\x0c\xe5\xe0\x35\xf5\xc1\xc3\xc7\x5f\x63\x62\x43\x47\x05\xdb\x00\x13\x6e\xbf\xfc\xe1\xe1\xe3\xaf\x89\x09\x3d\x05\x4e\x0f\x75\xba\xde\x54\x05\xb1\x81\xa9\x82\x85\x4d\x35\x9b\xb0\x20\x55\xec\xaa\x60\x15\xe0\x03\x30\xa4\xd7\xaa\x13\xec\x76\xbb\xc1\xde\x2a\xb2\xa7\x13\xf6\x10\x43\xc7\x73\x07\x5d\xa4\x0a\x96\x05\x5e\xfd\x0f\xd4\x86\x4d\xbf\xea\x04\xd2\x8c\xb9\x05\x78\xd8\x76\xbe\xc2\x45\x90\xa9\x7a\x0b\x08\x60\x2f\x93\xab\xc6\x6f\x05\x09\xea\x97\x80\x04\xa2\x08\x6c\x9c\x9b\x1a\x2a\xfc\x86\x47\xcd\x26\x1e\x4c\xd8\xc3\x51\xa3\xbe\x07\x13\xf6\x98\xc8\xca\x9f\x45\x6d\xc1\x73\x78\xdb\x4c\xef\xf8\x16\x8d\x89\xa0\xec\x19\x9d\x4c\x3d\x87\xc1\x0c\x47\x7e\x44\x23\x92\x52\x39\xd5\x68\xfd\x25\xff\xc4\x32\x24\x71\x24\x7a\x1c\x59\x8c\xe3\x9d\x18\xa9\x3e\x31\x3a\x66\x8e\xa4\xd6\x40\xd4\xed\x5d\x04\x44\x32\x7d\x56\x25\xf8\xf1\x92\xee\x4f\xc6\xf7\xef\xab\xd1\x84\x1d\x7d\x53\x45\x3c\xf4\xfa\x26\xf1\x03\xc8\x80\xab\xfe\x28\xb0\x8c\xd7\x33\xf5\x87\xc7\x63\xd2\x31\x31\x07\xe6\xa4\x73\x3a\x26\x18\x78\x96\x0f\x8c\xad\xed\x87\xe2\x9d\xf8\x71\x91\x2f\x99\x75\xc8\x0f\x31\x26\xaa\x33\xed\xe7\x70\x3c\x32\xc7\x5a\xe7\x8c\x08\x33\x23\x1e\x08\x6a\x5a\xc4\xea\x20\xc8\xa6\x77\xac\x60\x1c\x8c\x90\xbf\x6b\xfd\x35\x0b\x22\x00\x41\xc3\x76\x59\x24\x5a\x31\x4d\xf1\x18\x08\xae\x8e\x91\x6f\x04\x57\x20\x4f\xc5\x15\xb8\xb5\x76\xcd\x34\x08\xa2\xa0\x5f\x7b\x12\xb7\x0e\xc2\xc7\xa4\x42\x2f\x5e\x2d\x9a\x14\x33\x81\xc5\x98\x27\x30\x69\xd6\x27\x4d\x86\x20\xc0\x91\x7b\xec\x07\x6d\x3e\xa7\x71\xc2\xd5\x67\x1a\x33\x68\x7c\xcf\x57\x0b\xfb\xec\x59\x56\x1d\x62\xce\x39\x10\x7b\x66\xa3\x72\x01\x54\xd5\xe0\xec\xd8\x03\x88\x12\xa7\x10\x33\xae\xa4\x31\x01\x54\x05\x09\x0f\x1f\xb3\xaf\xf1\x1f\x8e\x1f\x11\x8b\xa7\x20\xf1\x31\x7b\x84\x35\x74\xd9\xe5\x80\x34\x8d\x6c\x74\x9a\xbf\x4e\xfa\x03\xfe\xc3\x84\x3d\x24\xfe\x2e\x8e\x94\x75\xc0\x0b\x5f\xbc\xcd\x0c\x1f\x1e\xdb\x0f\xe5\xe7\x08\x4d\x13\x65\xcb\x73\x22\xf3\x19\x17\x32\xeb\x3c\x5f\xea\x73\xd2\x30\xb3\x4b\x8d\xe4\x71\x97\xd3\x11\xf8\xd4\x1d\x4f\xa8\x57\xc5\x53\x95\xec\x1f\x1b\x56\xa8\x13\xc1\x57\xb0\xd0\x2f\x65\xda\x30\x9d\xad\x8d\xf4\x74\xb3\x3d\x16\x4a\x66\x62\xca\x75\x19\x1c\x6b\x56\x37\x6e\x3a\x56\x8a\xc7\x49\x82\x80\xd8\x64\x55\x5f\xdb\x3e\x46\xf6\xaf\xed\xcd\xfd\xad\xaf\xb6\xac\x5b\x37\x07\x9a\x33\xfe\x86\xf8\x62\x12\x43\x3c\xc9\x7d\x97\x33\xfb\xbe\x66\x60\xda\xea\xba\x0e\x7b\x23\x1d\xa8\x98\x25\x7b\x9d\x84\x71\xef\x19\xc8\xd9\xb5\x68\x66\x2d\x54\xbe\xf6\x73\xda\xa9\x9e\xa5\x62\xc6\x96\xad\x99\x06\xbd\xac\x12\xf9\xb6\x84\x9f\x23\x1d\x0d\xa4\x10\x13\x53\x33\x30\xca\x78\x2c\x7b\x0e\x42\xac\x82\xa9\x80\x74\x28\x05\x73\x06\xf4\xbe\x29\xf2\xfc\xd5\xc9\xdb\x3f\x9d\x9e\x9f\x5e\x74\x66\xbd\xf0\x73\x42\xa5\x9d\xd9\xc4\x5e\xb6\x43\x6d\x17\x7e\xdb\xa7\x52\x76\x66\xca\xbd\x3c\xe0\x8a\x3c\x55\x9f\x1b\x53\xea\xd7\x7b\xb5\xe1\xcb\xec\xdd\x32\xfb\x2b\x88\xcb\x3a\xf3\xbf\xf5\xb2\xcf\xee\xac\x39\xf7\x6b\xbe\x66\xea\x05\x63\xeb\xce\x8c\x59\x33\xdf\x5f\xd8\xf6\x8e\xf6\x97\x5e\x66\x5e\xdc\x3d\xb6\xb3\x46\x5e\xb3\xa5\xba\x17\xb6\x91\xf1\x7b\x99\xaf\x78\xd1\xbd\x60\x1b\x2f\xe7\x07\xb6\x7d\x2d\xee\xa8\xf5\x7b\x2f\xef\x32\xcf\x3f\x6c\xd6\x76\x4d\xf2\xee\xd5\x5b\x78\xf9\x57\x4c\x5e\xb3\x83\x33\xf6\x63\x3b\xe7\x5b\x56\x28\x96\x75\xe6\x7d\xe1\xe5\x15\x9a\xbe\x5b\xf2\x5f\xd8\x1d\xbd\xbe\xf4\xf2\x1b\xf1\xd8\x8f\x5c\x2d\xf2\x4d\x77\xee\x1f\xbc\xdc\xeb\x8d\x64\x27\xe0\x20\xa9\x33\xeb\xa9\x97\xb5\xb8\x03\x1c\xde\x7b\xf9\x54\xfa\xa1\x7b\x1d\xfe\xe8\xfc\x4a\x89\x7d\x1c\x05\x72\x5c\xca\xca\x86\xcc\xa0\xde\x72\xb5\xea\x7c\x87\x62\xfd\xa0\xa9\x1d\xfb\x22\x55\x6c\xb7\x63\xfb\x9e\x41\xf1\x70\xb8\xe7\x84\xb6\x34\x42\x98\x96\x4e\xa8\xd7\x23\xe2\x5e\x34\x10\xf0\x5c\x50\x55\x92\xb6\x8f\x25\x23\xcf\xb8\xc3\xad\xf6\xbe\xa6\x6c\xe3\xd6\xa7\xcf\x9c\x0b\x35\x92\x53\x59\x19\xd9\xa7\x34\x4e\x7a\x4a\x6e\xe1\x5e\xd4\x73\xfb\xa4\x76\x3b\x75\x74\xd4\x7f\x36\x06\xe7\xc3\xa2\x65\x8c\xf6\x04\xa7\x36\x44\xb3\xd3\x88\xaa\x9c\x43\x73\x7a\xcb\x34\xa5\x11\xb1\xb2\x9c\x73\x91\x2e\x97\x5b\xf0\x25\x2d\x86\x43\x2b\x58\x07\xd1\x49\x1e\x9a\x6e\x81\x03\x62\xe3\xca\x14\x57\xf9\x35\x37\x62\xa9\x17\x1e\x42\x6d\x55\xd0\xbf\xb4\x6c\xf9\x0b\xb3\x32\x2e\x06\x67\x36\xe8\x88\xb6\xe5\x66\xa0\x32\xca\x68\xe5\xc9\x3b\x45\x0d\xcd\x51\x4f\x3e\xd7\x6b\x4b\xa4\x5b\x2e\x93\xe2\xc4\xc5\xc2\x8c\x93\x5e\x23\xa6\x32\xc3\x2c\x16\xc9\x70\xc8\x21\xb6\x0d\x1e\x0e\xbf\xd0\x11\x40\x2c\x12\x12\xc0\x14\x06\x78\x6a\x79\xca\xdb\x0f\x6c\x1b\x15\x48\x11\x5d\x93\xa5\x06\xc3\x00\xd7\x26\x26\x56\x05\xb4\xc4\x91\x2d\x3a\x00\xa1\xa3\x29\x5e\x05\x21\x2f\x90\xad\xdf\x55\xa5\xff\x55\x24\x6b\x2d\x8e\xda\xf8\xe2\x28\x70\x68\xbd\x6f\x7b\x32\x18\x20\xf0\xf5\xaa\x16\x4c\x80\xe7\x56\xbd\xda\x10\x45\xde\xac\xd8\x01\x73\x13\x93\xbd\xdb\x27\xac\xa9\xa1\xf3\x9b\xad\xd4\xf8\x92\xaf\xfa\x39\xeb\x74\x90\xef\xee\x1e\x6a\xad\x10\x24\x77\x3b\x24\xa9\x45\xd6\x18\x7b\x44\x08\xb8\x22\xf5\x6f\x3b\x8c\x9b\xf3\x25\xb2\x0a\x75\x0c\x7b\x80\x9c\xeb\xd6\x1b\xf7\x1c\x75\x6e\x80\xcd\x3b\xb3\x2f\x2b\x79\x7b\xcf\x18\xf7\x4c\x39\xb2\xaa\x6d\x38\x42\x55\xc0\x7e\xd2\x88\xea\x29\xa7\x0a\xec\x0e\x65\x8b\xea\x33\xae\xda\x31\xcc\x27\x4a\x49\x81\xcb\x25\x42\x82\xba\x10\xee\xe0\x1c\x10\x62\xda\xdb\x3d\x0a\xbe\x5a\xc1\xee\xcb\x00\xb0\xfb\xd9\x23\x3c\x89\xec\x0a\x48\xe1\xd9\xb4\x83\xa9\xe7\xed\x32\xbd\x62\xcb\x48\x13\xf2\x42\x45\x4d\x7d\xe9\xc9\x90\xc7\xe3\xc4\x6d\xd6\x78\x52\x09\xf5\xf5\x73\x49\x94\xdc\x16\x51\x9c\x90\x7c\xad\x7f\x2a\x25\x82\x9c\xde\xea\xae\x46\x05\x82\xd0\xab\x32\xff\x18\x15\x68\x82\x89\xf9\x1c\x15\xe8\x18\x97\xe4\x0e\x5c\x87\xf2\x5f\x61\x01\x96\xf7\xbc\x45\xcc\xf7\x61\xa8\xd8\x4f\x32\x1e\xb4\x65\x37\x07\xf5\x27\x26\x9c\x01\x43\x51\x5d\xc5\xb0\x4f\x6c\xb6\x51\x5c\x5c\x87\xf6\x8a\xe8\x49\xfa\x04\x6b\x70\xd1\xf5\xd0\x09\x11\xc3\x21\xe2\xf4\x78\x98\xc7\xe3\x64\x2a\x2c\xf2\x8b\xec\x1b\x34\xb3\xdb\x21\xc4\xa9\xa8\xf1\x22\x37\x38\x42\x60\x32\xc6\x91\x81\x50\x40\xc6\x9c\xba\x2f\x24\x8f\x27\x49\xd3\x00\xb5\xcf\x5d\x80\x44\x88\xfe\x0f\x3e\x85\x62\xd3\x2c\xb1\x5a\xf7\x09\x26\xfa\xd5\xc6\x4f\x1c\x9b\x60\x85\x93\x88\xd3\xdc\xe8\xcb\x9b\x10\x83\x8f\x5c\xf4\xc0\x34\x84\xe5\x1f\x8d\x2a\x57\x17\xf1\x24\x21\xd6\xee\xad\x34\x99\xbf\x8e\xea\x5c\x82\x42\x86\x9c\x6a\x0e\x7b\x96\x0b\xc5\xc5\x86\x99\x6c\xdf\x44\x39\x4d\xc3\x7c\xad\x29\xfb\x35\xc2\x24\x0d\x35\x7c\x98\x97\x3a\xab\x8b\x5e\x08\xb2\x49\xc4\x29\xe2\xd4\x64\xc4\xde\xf5\x32\x8f\xb9\xe7\x27\x69\xb7\x7b\x3c\xa0\x54\x8f\x6a\x38\x3c\xb6\x4f\x18\xdf\xa6\x74\x5c\x55\x5b\xf2\x39\x7a\x48\x5d\x26\x34\xe0\xbb\x9d\xee\xe7\x33\x0e\xef\xfa\xf1\x29\x8f\x1f\x42\x29\x33\x14\x18\x86\xb5\x20\xe0\x73\xf4\xb8\x2a\x6b\xbf\x3f\xd5\x10\x5e\xe7\xe6\xc6\xaa\x37\xaf\x4b\x70\x3f\xeb\x71\x23\xeb\x71\x42\xec\x3c\x68\x84\x9f\x63\x57\x28\x3e\x86\xfa\x3f\x33\x43\x65\x4e\x95\x73\x24\x93\xfa\x28\x88\xc6\x8f\x09\x4b\x88\xa0\xe3\xea\x28\x95\x94\x53\x70\xaa\xfe\x35\xc0\x80\x85\xe8\xbc\xde\xa8\xd5\xa2\x8e\x93\xa9\x4e\xb6\x4e\x7a\x89\x33\x71\x2c\x51\x9c\x93\x22\x81\x60\x26\x80\x52\x1a\x9e\x84\x1c\xac\x99\x91\x55\x20\xe5\xb0\xb1\xed\xbd\x1e\x64\x3c\x26\xc7\x84\x3c\x4c\x30\x89\x1f\x11\x8b\x9c\x43\x43\x84\x24\x3d\x0b\x82\xd5\xdd\x9d\x08\x35\xaa\x41\x98\xc4\xc7\xa0\x47\x0c\x86\x0e\x7b\x3c\x65\x75\x1e\x04\x57\x79\xbe\x64\xa9\xaf\x38\x30\x1c\x32\x40\x99\x06\x46\x76\x3b\x69\x1b\x39\xb6\x8d\xc4\xc7\xc4\x35\x62\xbf\x3c\xac\xbe\x18\x03\x4e\x3f\x26\x46\xe6\xd3\x60\x70\x89\x78\x04\xce\x7b\x1a\xbe\xa0\x6b\xd1\x92\xf2\xa8\x03\xba\x1f\x8f\x79\xaa\x3c\x19\x76\xa4\x48\x4b\xc1\x86\x5b\x93\x1b\xe3\x70\xd2\xd1\x6f\x3d\x49\x65\x2c\x62\x9e\x24\xe5\xfe\x19\xbe\xe8\x3a\x1b\x3d\x8f\x6c\x1f\xd8\x16\x24\x74\x82\x7d\x04\x16\x8a\x68\x08\xca\x2d\x3f\x47\x52\x0d\x4e\x86\x61\x32\xf1\xde\x73\xa1\x98\x50\x64\x49\x33\x04\x6a\xc0\x56\xc1\x06\xfc\xd7\x59\x2a\x55\x53\x71\x4b\x5a\xbf\x1a\xdf\x6c\x4b\x8c\xc9\x60\xb9\xdb\x71\xfd\xe4\x9b\x31\x34\x49\xe2\x25\xd6\x35\x1d\x72\x23\xd6\xa5\x07\xa2\xd7\xf2\xae\xfa\xf0\xe1\x63\xac\x6b\xf8\xdc\x1f\x7e\xee\x0d\x3f\xf5\x86\x5f\xd8\xab\xd6\xb9\xcc\x57\x88\x1d\x8c\xfe\xc2\x50\x75\x52\xc2\x29\xed\xce\x38\xeb\x27\x6d\x83\xa7\x3e\xb4\x17\xf6\x14\x9f\xe1\x0e\x15\x4d\xf6\xcf\xc0\xb8\xaf\x10\xae\x2a\x78\x07\x17\x4a\x25\x5a\x12\xa0\x26\x25\x71\x43\x8f\x04\x71\x03\x8f\x72\xab\x01\x57\x44\x29\xb1\x83\x8e\x8a\xd2\x90\xb8\x0b\xba\x84\x71\x81\x81\x65\x1d\x4d\x05\x2d\xf0\x74\x61\x46\xd0\x39\x17\x25\xc6\xd1\xa2\xb4\xf1\xd3\x7f\x67\x60\xba\x19\x98\xf5\x6f\x64\x60\xe6\x07\x19\x18\xb2\xba\x5b\xb8\xb9\xe4\x85\x62\xe0\x23\x22\x4e\x0e\x78\x52\x7e\x63\xb3\x7c\xc6\x93\x67\xb3\xba\xca\xc5\x65\x07\x11\x16\x3a\xad\x67\x93\x17\xc8\xe4\x0e\x91\x62\x67\xbb\xb5\xae\x8d\x9e\x97\x56\x9b\xde\xe4\x38\x47\x04\xd5\xc7\x58\x35\x54\xa4\x00\x2a\x5a\xc5\x3d\xf5\xbc\x66\x7f\x94\xe4\xd7\xd7\x4c\xfe\x53\x8b\xa4\xdb\xf5\x17\xa7\xd7\x6a\xb4\xd3\x8d\x64\x35\x53\x86\x9c\xb7\x07\xf0\x1a\xf8\x0b\xec\x24\x98\xd5\x62\xde\xb4\x58\x53\x16\x5e\x82\x92\x10\xcb\xde\xe6\x46\x05\xb5\x00\x83\x83\xbd\x54\x7a\x5b\x3a\xf6\xb5\xe3\xab\xee\xac\x3b\x58\x80\x81\xea\xce\x03\x8a\xaa\x2b\x4c\x24\xec\xf1\x6b\x72\xd5\x01\x27\x9f\x8f\xfd\xe5\x76\x38\x91\x9a\xb3\x86\xf8\x48\x82\x02\x62\xaf\x76\x7b\xb5\xc3\xad\x53\xbe\xbd\x8b\x1a\xd6\xbc\x09\x32\x0c\xc5\x3e\xfc\xb1\xe1\x50\x3c\xab\x0c\xa0\xc1\xa6\xd8\x86\x21\x70\xf4\xac\xc6\xa3\xe0\xb7\xc1\xd2\x3c\xac\x2c\xcb\x5e\x17\xe5\xaf\xa6\x81\xe1\xea\x35\xe1\x2f\x72\xe5\x59\x8d\x47\xc1\x9e\x71\xb3\xc9\xe2\xac\x33\x02\x5c\x92\xed\x3e\x8f\x82\xb6\xb4\xe1\x41\xbc\x19\xb4\xa1\x02\x7f\x02\x2c\xc4\x9e\xb5\xa8\x55\x0b\x1c\x35\xfd\x10\xfa\xe6\xa2\x32\xc1\x5f\x24\x88\x50\xe0\x91\x10\x3c\x0f\x52\xf0\x3c\x58\xe3\x14\x6c\xc1\x12\x88\x3f\x4f\x21\xbb\xe7\xeb\x4b\x5b\x15\xbb\xdd\x6e\xc0\x11\xab\x83\x88\xf4\xda\x56\xe5\xb5\xbf\x45\x83\x77\xad\x92\xda\x16\xdd\x96\xc4\x57\xcd\x34\xce\xbd\x6f\x3d\x5d\xb1\x7c\x38\xe4\xc6\x49\xea\x17\x0d\x28\xaf\xc4\x2a\xc3\x61\x23\x80\x8f\x98\x82\xa2\x59\x1e\x5a\x8f\x4c\xfa\xe5\x12\xe5\xb8\xbe\x9b\x6b\xe9\x58\x57\x8b\x60\xe4\x3c\xa0\x14\x1a\xab\xa4\x63\x50\x36\xca\x12\x7c\xc6\x9e\xfa\x35\xc4\xef\x68\xc0\xb6\x3b\x0d\x06\x13\x5f\x65\xfb\xb7\xe0\x99\x6a\x5a\xef\xf4\xc0\xd8\xe5\x21\x86\xb3\x02\x31\x72\x8d\x94\x8b\x8d\x51\x5e\xd3\x2a\x58\x44\x67\xd4\xb9\x17\xac\x98\x49\xbe\x56\xb9\x3c\x10\x96\xce\xcb\xd0\x41\xe5\xd4\x31\x77\x5a\x51\x42\xf6\x91\xa3\xc4\xb7\xb0\x40\x9f\x69\xc5\xc5\xdf\x23\xca\xa8\xe3\x7e\xfa\x9d\xf4\x38\x40\x7a\xbc\xfb\x8d\xa4\xc7\xa7\x2f\x90\x9d\x9e\xfb\x04\xe1\xd4\x23\x42\x40\x54\x47\xea\xd0\x62\xbd\x6a\xc6\x72\x23\xa7\x48\x70\x35\x9d\xa0\x65\xf3\xfb\xd9\xf2\xa5\x67\x0b\x12\x98\x6c\xe8\xb2\x52\x61\xdf\x18\x50\xab\x93\xcc\xfc\xcd\xe8\xc6\xca\x1d\x33\xaa\xe2\x59\xd2\xeb\x98\xce\xac\xe2\xe9\xa6\x32\x9e\x25\x34\x8b\x38\xca\xf0\x94\xa1\x8c\x48\xd2\x8c\x23\x45\xde\xa1\x9c\xc4\xb3\x04\xe3\xa8\xcb\x88\x29\xb3\x2e\x57\xbd\x08\x58\xc3\x61\x16\xb2\x1b\x26\xb7\x77\x33\x7e\xb4\xc1\xf8\x69\xa0\x8f\x5d\x53\xb5\x40\x3c\xa1\x19\x2e\xeb\xcd\x93\x1e\xd8\x3c\x1b\x70\x0b\x61\x37\x4f\x41\x97\xf5\xe6\x29\x0c\x18\x2c\x1b\x9b\x27\xb5\x9b\x27\x6d\x6d\x1e\x59\x22\x46\x6e\x4b\xd2\xc4\x59\x38\xba\x35\xdc\xce\x05\x0d\x2e\x2f\xab\xab\xdf\xcb\xcb\xa0\xde\x0f\x67\xed\x88\x69\x97\x97\xd5\x05\xe9\xe5\x25\xa5\xf4\xc2\x37\xb1\xf0\x10\xd6\xef\x48\xac\x13\x89\x21\x5f\x7c\x02\x96\x1b\x20\xdc\xa4\x4e\x0d\x67\x52\x1b\xcf\x20\x7b\x39\xd3\x70\x0f\x3d\xe0\xad\x08\x7b\x03\x16\x8b\xa4\xe7\x8c\xff\x44\x75\x98\xda\x1b\xc1\xae\x98\x89\xf9\x70\xf8\xbd\xb9\x5d\xe1\x35\x40\x9a\x8b\xbe\x93\x0e\x2a\xef\xe4\x7f\x02\x2a\xef\xf9\xef\xa0\xf9\x45\xa0\x09\x30\x78\x34\xc1\x64\x82\x35\x5c\x36\x1d\xb2\x77\x05\xea\xf5\xb0\xc3\x80\x52\x59\xe2\xce\x28\x67\x9e\x6b\x0e\x4d\x11\xb1\x58\x9a\x08\x67\x1d\x66\x0e\xd5\xb2\x9e\x68\xb2\x5a\x78\x72\xcc\x0f\x1e\xb2\xad\x83\x91\xd9\x5b\x6f\xdf\xad\xb5\x4d\xaa\xc0\x09\x12\xea\x7a\xde\xdb\x8b\xb7\xdc\xe3\x43\xcd\x19\x7e\x5b\xa4\x73\x76\xce\x94\x15\x23\x97\x2e\x84\x41\xd7\x68\xbd\x6d\x5c\x7a\xae\xea\x3f\x60\x52\x18\x21\x6b\x1e\xda\xda\x68\xf5\xd4\x0c\x07\xe4\x07\x6a\xd6\x24\xb1\x2c\x41\x5f\x37\x6d\x6e\xf0\x7e\x55\xda\x96\x21\xb5\xcb\x89\x25\x1d\x3f\x59\x3e\x75\x05\x9e\x2c\x47\x23\x6c\x43\x72\xa4\xf1\x32\x21\x33\xaa\xc9\xf9\x8d\xa1\xdf\x4d\xcc\xd3\x99\x06\xe7\x4d\x93\xfe\xbf\xb5\x74\xff\x26\x71\xc6\x62\x50\x49\x46\x9f\x7b\x89\x24\xc5\x64\x41\x65\x93\x19\xb1\x4e\x3a\x22\xd9\xd3\x19\xa9\xf1\x3a\xfa\x1e\x65\x24\x75\xd8\x8c\x54\xa3\xf1\xee\x82\x17\x24\xc7\xee\xd6\xc0\x1f\xdd\x06\x08\x78\xa3\xd3\xbc\x97\x0e\x32\x5c\x6f\x7a\x8e\x26\xf8\xb6\x99\x49\xba\x3a\x19\xd5\xdd\x71\x80\x5d\x00\x62\xfb\xbb\x0f\xc9\x35\x5e\x78\xf1\x9b\xf8\x16\x83\x3a\x6a\x96\xe0\x80\xcb\x31\xfb\xf5\xef\x07\x43\x2d\x3b\x1d\x11\x24\x89\x22\xc0\x71\x19\x19\x3e\xf1\xa4\xe4\x6f\x1b\x5e\x0c\x00\xd9\x74\xd9\x42\xf9\x24\x68\xfa\x3b\x09\xfa\xc5\x24\x28\xf8\x48\x48\x2b\x12\xd4\x78\xf6\x7c\x52\x27\x99\xf9\x5b\x52\xab\xf6\xd2\xcb\xe3\xa5\x06\xa5\x84\x6a\xfe\x0d\x1e\x7d\x72\x4e\x1c\xc0\xd5\xc5\x70\x68\xab\x86\x1b\xd5\x74\xef\xbe\x34\x6d\xe0\xea\xca\x50\xad\x85\xab\x73\x00\xe9\xd7\x1d\x67\xf5\xeb\xff\xd7\x9e\xd5\xe4\x0d\xbd\xbd\x66\x2a\xea\xd2\xf6\x84\xcb\xd4\xa0\x80\x55\xf4\xae\xa2\x76\x3b\xe6\xee\x3e\x5a\xbd\x00\x35\x8f\xce\x2f\x48\x61\x17\x4e\xd2\x5c\xcd\x31\xc0\x21\x7f\xd2\x38\xa4\xba\x48\x51\x18\x63\x73\x89\xde\x29\xfe\xb1\x68\xcf\xc8\x4b\x24\xae\x5c\x2f\x84\xb3\x05\x5f\x66\x92\x09\x8d\x1b\x7c\xc3\xbe\xdc\x06\x0c\x56\x4c\x28\x67\xbd\xd6\x68\xd7\x5e\xda\x28\xdc\x6b\x55\x03\x38\xf5\x17\x24\x49\x4a\xaa\x02\xa0\x4e\x9e\xd7\xc7\xc3\x5a\xe6\x9f\xb6\x65\xd5\xde\xc0\x33\x24\xb4\x8e\x8e\x1a\x4d\x17\xb4\x4a\xb0\x6e\x90\x6c\x3f\x60\xdc\xf5\xf1\xe6\xa5\x96\x87\x59\x9c\x58\x25\x7a\x19\xf6\x26\x79\xaa\xbf\xb8\x73\xb4\x24\xf9\x47\x01\x5e\x25\x3b\xd0\xe2\x7b\x36\x5f\x6a\x88\xb2\x59\xea\x65\xc0\x25\x39\x24\x33\x89\x3a\x05\x44\xae\xa6\xc3\x92\x16\x6f\x85\xc1\x65\xc4\xdd\xf5\x80\xab\xff\x46\x91\xa2\x05\xa0\x0d\x9f\x63\x85\x4a\xa5\x2a\x7e\xe4\x6a\x81\x82\xcb\x00\x4f\x5d\x35\x45\x75\x74\x47\x8d\xa4\xba\x66\x62\x4e\x4e\x08\x57\x55\x9f\x4d\x2f\x9b\x86\xc5\xb1\x4a\x60\xdb\xff\x72\xe0\x96\xc4\x1d\x0f\x95\x68\x1d\xf0\xe9\x6d\xe9\xf9\xf5\xa9\x63\xe7\xd5\x36\xa7\x40\x34\xbe\x74\xb1\x2d\xcc\xa2\x3b\x43\x67\xdb\x41\xa7\xe3\x67\xa1\xc6\x99\x44\x03\xdc\x01\x80\x7e\xaf\x9f\xcc\x8e\x7e\x83\x5d\x51\x03\xc3\x5d\x87\x54\xd7\xe5\xcd\x5d\x21\x14\x1c\x28\xfa\x7d\x22\xed\x78\xa0\xfb\x5e\xea\xaa\x53\xb5\x59\x0e\x16\x92\x35\x02\xff\x7d\x94\xe9\xba\x5b\x1b\xde\x15\xb3\xb2\x51\x8c\x6f\x19\xbd\xac\xed\x93\xfd\x69\x31\x59\xbc\x2d\x04\x19\xc9\x6b\xf4\x1a\x22\x6b\x62\xc2\x3c\x9b\xd4\xd6\xb5\xc8\x0f\xcd\xfb\xa2\x38\xd1\x18\xfa\x89\xdc\xa7\x43\x34\x76\x56\xb1\x3c\x9a\x24\x0d\xac\xdc\xf3\xee\xab\xee\x20\xbe\xdb\xd1\xc0\x0f\xea\xb9\x83\x82\x00\xf3\x22\x70\xec\x76\x03\xb9\xbf\xc9\x35\xb5\x7f\x17\xc5\xa3\x62\x96\x50\x69\x54\xe6\x81\xde\xbf\xf5\x3d\x95\xfc\xb1\x7d\x17\x74\x08\x60\x6b\xcd\xc5\xdb\xb2\xad\xb9\x08\xe1\x42\x6a\x55\x06\x61\xe4\x2d\x22\x01\x5e\xd8\xd3\x18\xd4\x45\x5e\xfd\xce\xf9\x1d\x90\xac\xfe\xf5\x37\x4a\x56\x5f\x7d\x81\x64\xf5\x9e\x55\x1d\x96\xdb\x0a\x3c\x60\x09\xeb\x71\x56\xd7\x0a\x35\x8c\xfc\xa3\x85\x65\x3b\x80\xac\xc5\xa1\xba\x6b\xe6\x83\x19\x9b\xa7\x83\x59\xe0\x03\x57\x01\xf6\x63\x27\xe3\xeb\xbb\x7c\x70\x6e\x0c\x5e\x17\xa7\x95\x57\x7a\xb3\x3d\xa2\x38\x29\xe1\x2a\x14\x58\xc4\xbd\xad\x62\x5c\x14\x74\xa2\x2d\x33\x5d\x1a\x52\x6c\xd7\xba\x63\x71\xe9\x2c\x35\x49\xb6\xd7\x8b\x3a\x1b\x2e\x21\x72\x97\x21\x6b\x1c\xdf\xe4\x48\x97\x96\x9c\x1b\x54\x4d\x3b\xa6\xb7\x73\x0c\xa9\x23\x2b\x54\x9c\x26\xbd\x62\x38\xdc\x23\xb9\xea\xcb\xac\xa2\xc9\x3f\xf2\xf8\xaf\x28\x27\x71\xda\x14\x8c\x5a\x12\x3b\xda\x93\x5b\x15\xc3\x21\x43\x05\xf4\xcf\x95\x03\x2e\x89\x97\xd0\xeb\xdb\x92\xc4\x86\xd7\xf5\xfb\x9c\xd7\x8a\x77\x40\xd7\x02\x4d\x5b\xf9\x10\xc8\x63\x9e\xf4\xa4\xc7\x46\x72\x92\xe2\xd2\xf0\xa0\x70\x2b\x78\x0f\x66\x6d\xb7\x1b\x74\x00\x54\x97\xaa\x71\xa7\x06\x7e\x09\x9a\xc9\x83\x7d\x6e\xec\xb3\x71\xe4\xda\x91\xf3\x8d\x9e\xbe\x09\x5a\xef\xf9\xd1\x7e\x91\x2a\x66\x12\x41\xed\x18\x01\xcd\xbd\xdb\xe9\x9f\x26\xab\xef\x56\x8a\x57\x47\x46\xb1\xb7\x2a\xcd\xe9\x28\x9c\xde\x6f\x33\xf9\x12\x15\x18\x97\xcd\xb4\x1f\x2d\x60\xfd\xc9\xbc\x83\x0f\x23\x77\x74\xc3\xab\xa6\x6f\x30\x26\x9e\x2c\xe6\xc7\x3d\xb2\xc5\x10\x24\xb7\xb6\xa0\x53\xe8\x6b\x0b\x66\xea\xaa\x69\xf5\xd4\x0e\xb6\xec\x13\x4e\xa4\xea\x29\x95\x5f\x2a\x8d\xb1\x96\x18\xcd\x5b\x80\x3a\xf6\x85\xa0\x94\xb6\x8d\x25\xa6\x62\xaa\x22\x87\xb3\x22\x05\xa7\xce\x9f\xe8\xef\x0a\xdf\x9f\x55\xf8\x26\x3f\x1d\x0a\x4c\xf6\xbb\x12\xf7\xef\x4a\xdc\xbf\x2b\x71\xff\xae\xc4\x0d\x4a\xdc\xe4\x2f\xbf\x93\xf0\x07\x48\xf8\x3f\xff\x46\x12\xfe\x2f\x87\xf5\x32\xff\xcd\x97\x9d\x93\x7f\xa7\xc1\xa5\x65\x79\x03\xf2\x37\xfd\x62\x58\xe4\x80\x30\x46\x83\x4b\xe8\x58\x11\x10\x3f\x10\x66\x45\x1e\x8d\x4b\x22\x19\xbd\x2d\x3e\x70\x67\x35\x6a\xb6\x70\x85\x1e\x05\x6b\x28\xe4\x82\x10\x92\xdd\x25\xf0\x00\x87\xae\x4d\x76\x51\xb1\x3d\xf9\x46\x83\xa9\x34\x31\x1e\x6e\x5d\xac\x28\xa7\x30\xf0\x52\x38\xc1\x46\x6d\xcb\x78\x96\xae\x9d\x2c\xa4\x79\xef\x7d\x61\x13\x3b\xd4\x14\xad\x8f\x38\x6b\x99\x4b\xb9\x79\x5f\xa5\xdb\x2b\xf6\x03\x48\x1a\xbe\xb7\x72\x13\xe2\xa2\x85\xbf\x60\x6c\x4d\xdf\x9b\x57\x6b\x52\x4c\x33\x78\x8d\xff\x3d\x71\xc2\x97\xcb\xb5\x64\x37\x3c\xdf\x14\xcf\xad\x14\xc6\xa4\xc7\x7f\x4b\x5c\x9b\x31\x63\xd5\x73\x78\x79\xe3\xac\x72\xdd\xa8\x2e\x6d\xb4\x64\x7a\x8a\x24\xf8\xe4\x34\xa9\x72\x23\x04\x17\xd7\x7f\xad\xc6\xac\xc7\xd0\x25\xa1\xd9\x8b\xb2\xe8\xd4\x53\x8d\xe0\x87\x61\x5f\x01\x17\xb5\x85\x2c\xf9\xbc\xad\x52\xbd\x57\xbc\xa5\x6a\xdb\xae\x61\x4f\xb3\xf5\x37\x8a\x4c\x0c\x75\x57\x35\xdf\x13\xc3\xa1\x70\x8d\x58\x52\x45\x90\x3f\x83\x66\x59\x53\xd0\x64\xe9\xce\x3b\x88\xcd\x76\xf6\xf3\x56\xf6\x8e\x9b\xbf\xee\xf0\x67\x5e\x45\x24\xb8\xbc\x4a\x25\x7b\xee\x36\x5b\x53\x58\xee\xcb\xac\xe2\xbf\x55\x24\xd0\xbf\x21\xf6\xa5\xf7\xb1\x8e\xc2\x3b\x70\x2b\x5b\xb6\x02\xae\xcd\x72\x31\xe7\xd7\x1b\xfb\x3e\x2e\x0f\x85\x1e\x6e\x8c\x60\x76\xa8\xf3\xb6\x33\x4b\x64\xfb\xff\xaf\x69\xce\xa1\xa2\x03\xad\x35\x99\xde\x3d\x16\xc4\x49\x9d\x84\x6f\x2f\x9b\x1a\xdd\x4e\xcd\xea\x0e\x87\x1c\xe9\xdf\x2f\xd6\xea\xd4\x99\x3d\xc5\x4e\xfd\xea\x51\xd3\xf9\x54\x34\x2c\x68\x65\x8b\x2f\x26\x35\x56\x8a\x74\x51\x0f\x4b\xb9\xf8\x9c\x36\xb5\x65\x5c\x9b\x6a\xb8\xf6\x8c\x6b\xc5\xff\xc3\xde\xbb\x6e\xb7\xad\x2b\x09\x83\xff\xfd\x14\x36\xbf\x44\x0d\x88\x45\x89\x94\xe3\xec\x7d\x68\xc3\x5a\xb9\x38\x3b\x77\x27\x71\xee\xda\xda\x5e\xb4\x04\x59\x4c\x24\x52\x01\x21\xdb\x4a\xa4\xfe\x3d\xbf\xe7\x5d\xe6\x05\xe6\x51\xe6\x49\x66\x01\x20\x48\x90\xa2\x64\x39\x3b\xe7\xf4\xe9\x5e\x9d\xac\x65\xf1\x52\x28\x80\x40\xa1\x50\x28\xd4\x05\x12\x44\x55\x63\x74\x2d\xa6\x73\x6d\xa4\x3c\xa5\x04\x33\xf9\x95\x83\xbe\x21\xc1\x5e\x66\x14\xd0\x3e\x45\x54\x1a\x28\xfd\x32\x4a\x58\x49\x08\xfa\x7b\x7f\x49\x55\xfd\x80\x07\xeb\x6b\xfa\xf8\x6b\x2a\x0a\x13\xc9\xb3\x57\xd6\x25\x28\x79\x94\x8f\x65\x96\x0b\xf8\x97\x54\xfd\x8a\x85\x09\x0f\xa3\x95\xc3\x5a\xd0\x1a\xa5\x23\x0a\xa9\xbe\x5c\x2f\x44\x8d\x6c\x41\x7d\x46\x67\x99\x6f\x46\x79\xbb\x5d\xab\x71\xf3\x7c\x78\x9d\x97\x91\x0c\x47\x9b\x86\x5b\x93\xe9\x27\x75\x1e\x0f\xed\x57\xb4\x73\xf9\x6b\x19\x4c\x98\xa4\x71\xb4\x57\x0d\xc2\x4e\x2a\x0b\xc8\x91\xfa\x45\x55\x3e\x0c\x19\x9f\x5d\x57\xa1\x1e\x9f\xeb\xeb\x2c\x9d\xa1\xbc\x8b\xbe\x46\x71\xce\xb9\x2a\xc5\xed\xc2\x28\xca\xe0\xc3\xc5\x91\x94\xdb\xa6\xe2\x38\x0a\x89\x36\xca\x15\x71\xf3\x79\xd4\x18\x84\x51\x7f\x85\x3e\x75\x2c\xc5\x66\xa5\x46\x48\x23\x42\xb3\x86\x29\x34\xa6\xc9\x94\x3b\x1f\xbb\x3a\x99\xaf\x56\x34\xc5\x90\x46\xb2\xc3\xe6\x09\xd2\x69\x42\x79\xd6\x9f\x92\xc1\x52\xcd\x34\x73\x8f\xb2\x40\x0b\x89\xaa\xc8\x30\x88\xfa\x23\x9a\xcb\x45\x68\xc7\x85\x62\xd1\x05\xde\xba\x19\xf6\x82\x64\x46\x9f\x51\x15\xd9\xbd\xe4\x51\xa4\x55\x80\xcb\xe2\x73\x1e\x9a\xc6\xb7\xec\x23\xa4\x7b\xe0\xc7\xc2\x8c\x52\x58\x44\x36\x61\x74\x12\xb0\xaa\x9c\xf4\x54\x1d\x8b\x99\x42\x85\x0a\x36\x66\x4a\xaf\x59\xd2\x7b\xe3\x81\xa6\x82\xd7\x88\x57\xc8\x16\xb4\x20\xdb\x30\x6d\x14\x24\xc3\xd6\x02\x55\x47\x40\x5b\x5a\x70\x65\x0b\x53\x4f\x52\x68\xb8\xd2\x66\xd0\xa5\x53\x39\xa3\x89\x72\x68\xd2\x9c\xf3\xe9\xb4\x30\x9d\xbd\x44\xd7\xb0\x6c\x7d\xa1\xe4\x25\xe2\x85\x53\xcd\x82\xbc\x8d\x33\x71\xfb\x83\x14\x06\xcc\x86\x69\xa1\x10\x59\x69\xa3\x2c\x5c\x16\xbd\x57\x49\xe7\x65\x51\xb0\x14\x7c\x2a\xad\xe4\x8f\x0d\xc3\x1d\x28\x75\x98\x66\x94\x9f\xca\x1e\xcd\x41\xe6\xd1\x1c\x94\x3c\x9a\xcd\x0e\xd1\xfe\x9c\x8c\x26\xf1\xe8\x42\x51\x41\x3a\xc8\xe9\xe7\x21\x5c\xa5\xf8\xe2\xb2\xf9\x6d\x46\xd4\x85\x58\x9c\xab\xa0\x0a\xe7\xb5\x60\x09\x50\x21\xec\xa0\x88\x54\x6e\x83\x04\x0d\x49\x74\x69\x50\xda\x08\x83\xd6\x51\x78\x25\xc7\xea\xc0\xf4\xc7\xf6\x60\x17\xe0\x8e\xf2\xc7\x2e\x7b\x47\x6f\x87\x24\xd0\x2e\xd8\xb2\x52\x16\xab\x08\xc1\xca\x25\x3b\xcc\x5c\xa6\x53\x4d\x44\x09\xba\x3c\x94\x69\xaa\x5f\x4d\x1b\x95\x30\x90\xe9\xab\xcd\x0e\xc8\xb4\xd6\xd9\xc3\x13\xca\x17\x18\x43\x5c\x54\x70\x19\x4e\xdb\x05\x7a\x91\x41\x90\x56\xb8\x32\x76\x3e\x4a\x45\xc6\x0b\x44\x31\x50\x31\xb2\x25\xc6\x5f\xab\x51\xe3\xce\x64\x86\x5b\x39\x13\xef\x7c\xee\x42\x44\xa8\xf8\x09\x89\x96\x14\x20\x26\x54\xfe\x06\x72\xee\x06\x34\xfb\xe8\x6c\x4b\x89\x21\x21\xef\xd0\x6b\x14\x61\x08\x31\x8c\xe4\x75\x8c\x81\x61\x98\x92\x87\x28\x81\x18\x43\x8f\x3c\x44\x23\x23\xdd\x4c\x20\x77\xa7\x53\x08\xc4\xac\xe9\x41\xd0\x38\x8d\xc4\x9e\x79\xf6\x3e\x64\x7c\x1a\x8c\x0c\x77\x1e\x0c\x41\xc9\xc5\x32\x1d\xbe\x15\x27\xf4\xa7\xfa\xbd\xb4\x1e\xc1\xa6\x8f\xe7\xca\xcd\xf1\xaa\xba\x69\x4a\x03\xd9\x8c\x0f\x06\x9c\xb2\x37\x69\x05\xe9\xbc\xaf\x6e\x5d\x2a\x09\xac\x18\x2e\x90\xfc\x52\xcb\x62\x99\x6e\xa5\x8d\xd6\xb7\xa7\x43\xbb\x38\x6f\xbe\x82\x55\x41\xbe\xe5\xe2\x41\x81\x62\x60\x46\x0c\xfe\x43\xc7\xd3\xe4\xfa\x79\x19\xfe\x33\x50\x8c\xb1\x7f\x4d\x9d\xb8\xd0\x5f\xac\xfa\x80\x9f\x4b\xfc\x65\xe4\x52\xe4\x5a\xdd\x45\x15\x42\x45\x51\x32\x5e\xd1\xe6\xeb\x7a\x60\xb9\x46\xbd\xc4\xfe\x1a\x37\xd8\x1b\xb2\xe9\x82\xab\xf1\x12\x97\xce\xe5\xf3\x1d\x92\xd2\x44\x51\xe1\x94\x87\x7d\xd0\x82\x6b\x5b\xca\xbd\x59\x5c\x60\xea\xbf\x46\x27\x55\x05\x85\x84\x5d\xe1\xea\xaf\xa8\x90\x75\xa4\x5e\xb6\x70\x82\xf3\xbd\xcd\x53\xeb\x17\x84\x7d\x9e\x47\x04\x2d\x89\x28\x2a\x22\x78\xa7\x55\x88\x7c\xc1\x71\x17\xfb\xc6\x33\xbd\x9e\x48\x75\x41\xb7\x8a\x9d\x05\xfd\xbe\x3c\xbf\x58\x91\x4c\x52\xf6\x5a\xe1\x34\x3c\x3f\x27\xcb\xe5\x0f\x5a\x19\xa3\x4c\x88\x25\xe5\x13\xf2\xec\xd8\x79\x3e\xe7\x5a\xb9\x51\x05\x92\x76\xa0\x85\x21\xcb\x6f\x9f\x81\xe7\xaf\xd3\x10\xbe\x69\x30\x7d\x49\x8f\xdd\x2d\x5d\x20\x14\x52\x9c\x3a\x50\xd6\xa4\xba\x55\xda\x5b\x12\x53\xd9\x87\x02\xa0\xc0\xe0\x47\xf5\xfa\x50\x8e\x5a\x29\x56\x3c\xd9\x71\xc9\x2f\xd6\x7d\x65\x1c\x5f\x7d\x91\x96\x85\x50\x04\x32\x2d\xa8\xfc\x34\x99\x6f\xa3\xd3\xc5\x32\xf7\xa2\xa1\x72\x48\xb2\x4e\x28\x8d\x46\x80\x6b\xb5\xfb\x2a\xda\x83\xbc\x46\x66\x31\xd2\x09\x52\xad\xca\xa8\x80\x6e\x2b\x20\x4f\xd1\x08\xd2\x20\xa7\xd3\xb4\x5b\x13\x08\xf0\xfa\x7e\x8c\x40\x5a\x87\xaf\xe8\xc7\xf4\x60\x21\x31\x55\x27\x41\x49\xda\x4e\xa2\x60\x92\x0c\x63\x5e\xbd\xb8\x88\x95\x91\x97\xc7\xf4\x87\x0e\x3c\xf1\x73\xda\xb5\x1f\x62\xd3\x25\x87\xd3\x5f\x23\x42\xa7\x23\x64\xd8\x76\x49\x69\x3a\xfd\xa4\xf4\x80\xc1\xfc\xb0\xc8\xe8\xce\x85\x96\xb4\x97\x82\x15\x24\x3c\xae\xde\x0d\x64\x52\x31\x23\x54\x1d\x2e\x24\x10\xfe\x0d\x19\x1f\x02\xf2\x1a\xb1\xca\xc2\x5c\x7f\x1d\x33\x7d\x7f\xb5\xb1\x6b\xac\x4f\x4f\xc0\xfc\xa2\x7c\xef\x50\x5a\x2f\xc2\x7c\x71\x08\xae\x59\xdc\xab\x16\x8a\x5e\x90\x94\xb2\x8c\x14\xad\xd1\xb4\x12\x90\x67\x1b\x89\x8a\xf4\xe7\xb5\x9a\xa9\x66\xa8\x90\xb5\xee\x23\x0e\xaf\x0d\x27\x91\xea\x5d\x6f\xa6\xbb\xe0\x85\x50\x2c\xd9\x66\xa9\xa2\xf9\xe9\x26\x28\xe0\x85\xfd\x62\x41\xf2\xa8\xd2\xf0\x2b\x69\xc4\x10\x43\x98\xa9\x38\xf1\xf3\x18\xf4\xc5\xda\xcc\x65\x61\xa5\x62\x20\xe5\xe4\x42\x24\xad\x60\x2b\xe9\xc6\x3d\x47\x25\xd5\xe1\x61\xbe\xf3\xcc\x24\x2f\x95\xfd\x31\x6f\xb4\x25\x4a\x4f\x51\x96\xad\x2e\xdf\xd8\x3f\x31\x3a\x01\x51\xd8\x71\x31\xc4\xe5\x28\x2f\x91\x91\x9e\xab\xaa\x8c\x27\xe4\xa8\xe5\x2d\x7f\xb4\xb4\xe3\x5f\x68\xc3\x86\xaa\x31\x64\x25\xc1\xb1\xd4\x7a\xae\xc3\x7b\xa6\x3a\x8b\xe5\xfa\xe2\x65\x0d\x43\xe5\x46\xb4\x0a\x7b\x49\x6a\x5e\x42\x5e\x3d\x62\x59\x78\xa1\x8b\x34\xb6\xd0\x8e\xa4\xe5\xb2\xf3\xab\x20\x72\xcf\x20\xf2\x5a\x4d\xc1\x75\xdc\x15\x2b\x5d\x51\x48\x63\x18\xc2\x76\xa4\xf8\xb3\x16\x03\x10\xd3\x0c\x3a\x32\xf9\x18\x5d\xe0\x15\x54\xb7\x74\x84\x92\xaf\x62\xc6\xde\x44\xef\x64\xd4\xfe\xa8\x62\x8b\x1a\x69\xa3\xb7\x48\xeb\x6a\xb2\xf0\x42\x86\xba\x86\x65\xe1\x85\x0c\x9d\x41\x16\x68\x28\xcc\x06\x66\x39\xb2\x51\x5c\xab\xed\xe8\x05\x30\xc6\xf3\x79\xbc\xc8\x0f\x3f\x0b\xdf\x65\x68\x8d\x2a\x39\xb2\x18\x19\x96\x99\xde\x84\x84\x16\xa2\x3e\xe5\xec\x28\x94\x16\xff\x3f\x0c\xc2\xd2\xcb\x63\x6c\x98\x96\xaf\x5a\x25\x33\x65\x4c\xa0\x1c\xaf\x5e\x89\x52\x78\xed\x2e\x62\xe9\x48\xac\x3c\xa3\xd6\x68\x0d\x2b\x98\x51\x24\x65\xd3\xf9\xdc\xdd\xe2\xf3\xb9\xb7\x43\x48\xd4\x2e\x7c\x05\x03\x0a\xbc\x1d\xd9\x9e\x1f\x39\x1e\xf6\xd3\x24\x47\xd2\xac\xb8\xd8\x8a\x15\x8c\xbf\xd2\x7d\x6f\x3e\x47\xd5\xfb\x47\x99\xa7\xa9\x80\xd6\x7c\x7f\x03\x31\x61\xfb\x29\xd2\xf9\xe6\x9f\x22\x21\x2a\xc8\x25\x00\x2f\xf5\x5d\xd6\xb3\xe5\x5e\x2b\x9e\x6a\x5b\x16\x36\x77\xee\x4a\x98\x37\x9c\x10\x05\x25\x88\x19\x1a\x65\x33\xb4\xc2\x60\x1b\x67\x9d\xc7\xd3\x0c\x51\xe1\x00\xb1\x4e\xd4\x71\xbb\xdd\xdc\xeb\x87\x3c\x13\x3b\xfb\x98\x84\x1d\xb7\x2b\xe5\x3e\xed\x9a\x0c\x09\x61\x30\x22\xac\x13\x77\x61\x4a\xe2\xfd\xa2\x6a\x70\x84\x6b\xb5\xe9\xbe\xf6\xd5\x1f\xed\xe7\xfe\x28\x3d\x45\xc3\xf3\x79\xcf\x5c\xd2\x6b\xb5\xb4\x35\x49\x67\xda\x85\x84\x8c\x00\x4d\x49\xd0\x48\x86\xe1\x80\x2b\x7d\xd0\x88\x8c\x3a\xd3\x3c\x53\x23\x2b\xf6\x5c\xd9\x65\x40\xcd\x9b\x67\x88\x16\x3c\xac\x19\xe1\xca\xc3\x9a\xe7\x9f\x91\x4d\x9f\x54\x7b\x9c\x32\x8b\x0d\x63\xb3\x68\x8f\x9f\xa4\xb8\xbc\x69\xcd\xf3\x4e\xb1\x57\x92\xcc\xdf\x68\x87\x90\x2c\x13\x62\xb2\xb8\x49\x7d\xb5\xda\xa5\x58\xf8\x52\x17\xb4\xb8\xc3\x44\xf7\x9f\xa2\x51\x85\xc2\x76\x9a\x05\x4b\x58\xa1\x6f\x33\x9b\x3c\x2d\x38\x80\xe3\x82\xcf\x52\xcf\x0c\xa5\x9b\xf3\xdb\x10\xe2\x95\x71\x71\xd2\xb4\x96\x41\x81\x2e\xa5\x3b\x6c\x31\x30\xc6\x19\x0a\x6e\x16\xf0\x41\x76\x6b\x52\xf0\x83\x0f\x3a\xb9\x23\x68\x77\x47\x36\x97\xa1\x04\x7a\xb8\x3a\xb4\x4d\x42\xd4\xdb\xc5\xf5\x26\x39\x85\x90\x0b\xb1\x19\x72\x21\xae\x0a\xb9\xb0\xc2\x24\x67\xc7\x5b\x08\x8a\x28\xb8\xd5\x14\x6d\x80\xcb\xde\x9c\x85\x4e\x0b\x4a\x9d\x96\x90\x33\x14\x63\x18\x91\x24\xeb\xb4\x91\xea\xb4\xfc\x91\xf6\xfd\x1d\x19\x9d\x16\xcc\xe7\x3b\x1b\x91\x59\x00\x53\x23\xd0\x40\x40\x98\x7c\xb2\x81\x4b\xe3\xa8\x56\x4b\x9b\x22\xed\x0b\x93\x25\xeb\xc1\x64\x13\x97\xc6\x1d\xb7\xb2\xbb\x0a\xd4\x1a\x40\x16\x0b\x61\x99\xee\x7b\xca\xb2\xbd\x57\xe9\xb0\xd7\x33\xe2\x35\xf5\x8b\xe7\x45\x81\x90\x4d\x86\xc5\x99\xdc\x2f\x4c\x0b\xa8\x8e\x05\x78\xa3\x40\x9a\xe1\x06\x81\x34\x4b\x89\xee\xe2\xd5\x81\x34\xc3\x4e\xdc\xed\x16\x4d\xb6\xd5\x33\xed\x8e\xad\xee\x8c\xe0\x1f\x92\x37\xe5\x46\xc7\xdb\xdf\xd1\x00\x86\xc5\x03\x90\x0a\x37\xc2\x5e\xd6\x7f\xe2\xf1\xa8\xd0\xb5\x6a\xcf\x53\x0a\x46\xb1\x9d\x92\xde\x22\x75\x9d\x94\x32\xa1\x8a\x34\x2f\x2f\x0b\xa2\xbb\xee\x6d\x9e\xda\xdf\x88\x7e\x9a\x6c\xc2\xb5\x24\x1d\x14\xe4\xe2\x8c\x0a\x26\xb8\x8d\xd0\x60\x99\x2f\xe3\xf9\xbc\xfc\xb8\x24\x28\x51\xb5\x2f\xc7\x18\x74\xff\x4c\xaa\xfa\x07\xfb\x93\xeb\xdc\xce\x64\xa9\xd2\xca\x4b\xf1\x7c\xfe\x4a\x7f\x69\x3b\x5d\xc0\x89\x16\xc5\x96\x4e\x5d\x51\xea\xa4\x56\xf0\x11\x8b\x69\x95\xfd\xf8\x76\x98\x3f\x56\x2a\xa8\xb2\x9c\x9c\xa7\x3c\x37\x30\x98\xc4\xa0\xba\x38\x84\x0a\xf7\xdb\x6c\x6f\x7a\x4e\x39\x32\xb3\x98\xae\xf7\x85\x94\xdd\x52\x80\x17\xb3\x6c\xc7\x5d\x2c\xcc\x98\x1c\x09\xfd\xb7\x6c\xe0\x72\x8a\x95\x54\x5b\x81\x76\x7f\xc7\x10\x12\x86\x7e\xf7\xcc\xb4\x7c\xa6\x19\x91\x8a\x24\x27\x07\xda\x9c\x2d\x79\x50\x39\xf1\x39\x54\x27\xf3\x61\x04\xf1\xf9\xbc\x90\xd4\xf1\xaf\x3f\x9b\x32\xb7\x94\x90\xbe\xf2\xb3\x8c\xa0\x71\xca\x59\x48\x49\x0c\xc1\xb2\x19\x9e\xe0\x11\x0d\xfa\x6d\x1a\x8c\x90\xf6\x37\x01\xcd\x6d\x30\x94\x5e\x71\xe3\x68\x0f\x03\x15\x1b\x3d\xab\x69\x01\x6f\x9c\x5e\x06\xb3\x41\xc0\x28\xab\xd5\xb8\xaa\x0d\xc7\x8d\x71\x3c\x8d\xa4\xef\xaa\x7a\xd2\x90\x8f\x73\x45\x28\x23\xb1\x36\x12\x13\xec\xa5\xd1\x3b\x23\x1c\x58\x83\xc5\x53\x4e\x09\x35\x6c\x53\x83\x06\x1d\x87\x9c\x04\x10\xa8\xa3\x7d\x92\x40\x90\xd7\x48\x76\x5c\x08\xb6\x8a\x8e\x0e\x4a\x96\x93\x07\x32\x4a\xc9\x9a\x2a\x17\x4b\x0a\x4e\xbc\xc5\x3a\x6e\x97\xf0\xc6\x24\x60\xc1\x38\x31\x02\x17\x7b\xfb\xd1\x41\x96\x7b\x3e\xb2\x6d\x2c\x9d\x02\x73\x25\x68\x64\xf8\x4c\xf6\xce\xb4\x4f\x7a\xa3\x77\x06\x0c\x97\xdc\x28\xa2\x46\x14\xf3\x23\xd9\x8b\x54\xab\xfd\xad\xff\x90\x5f\xf9\x1f\xdb\xe3\x69\x22\x53\xdd\xa6\xb1\x04\x2c\xad\x2e\x8a\x53\x23\x06\x25\x13\x72\x99\x99\xf0\xcc\xa4\x82\x51\x9e\xd2\x49\xc3\xaa\x40\xc5\xa1\x5c\x39\x4b\xb0\x21\xde\x5a\xca\x59\x2b\x5b\xb0\xfd\x1f\x96\x4d\x6d\xeb\x3f\xb6\xfb\x32\x9b\x3b\xdf\x96\xa8\x2c\x5c\xf2\xed\x50\x9b\xd8\x33\x42\xc5\x17\xa6\x87\xa2\x72\x94\xd4\x6f\xea\xd0\x2b\x3b\x91\xd0\xf4\xa2\x2a\x3b\x95\x31\x15\xcc\x44\x24\x2b\xe8\x3e\x2c\xd0\x7d\xb8\xa5\x95\x18\x94\xc8\x2c\xf6\x89\xff\x63\xb1\x58\x4a\xfb\x5c\xf4\x3b\xbb\x26\x05\x85\xe0\x93\xf9\x54\x0c\x21\x34\x75\x7b\x92\x34\x0b\x5b\x84\x95\x13\x05\xd2\xde\x4c\x86\xf1\x74\xd4\x57\x69\x7f\xf5\x1c\xda\xd2\x1b\xf2\xa5\x59\xaa\x17\xf0\xa6\x85\xcb\xa9\x08\x54\x64\xe5\x8c\xb1\x49\xad\x70\xad\x96\x65\xca\xf5\x64\xf2\x49\xdd\x39\xa9\xd8\x6c\xe4\x7b\x6d\xfe\xe5\xcf\xff\xfa\xb3\xde\x6c\x70\x9a\x70\x14\xe2\x36\x8a\x91\xa0\xc3\x3e\x4d\xc0\xba\x75\xcb\xc2\xed\x80\xa4\xf7\x8d\x5b\xb7\x7c\x14\x18\x3d\x0a\xf9\x0b\x12\x60\xb0\xea\x32\xd3\xa5\x72\x3a\x88\x1a\x97\xe1\xa8\xdf\x0b\x58\x9f\xec\xb8\x82\x3b\x44\xc1\x98\x92\xd0\xf8\x34\x55\xaf\xf8\x3a\xec\xe7\x75\x86\x46\x85\x9d\xb0\x5b\x5d\x61\x27\xec\x8a\x0a\x29\x62\xb6\x07\x01\x5e\x20\x37\x3b\x4d\xa5\x78\x51\x18\x1b\xc5\x06\xfe\x35\x43\x03\x8c\xfc\x58\x40\x68\x32\x6a\x9d\x1c\x3a\x13\x75\xc2\x4c\x7f\x22\x38\x83\xb9\x0f\x0a\x72\xb7\x96\x70\x80\x62\x14\xa6\x3d\x12\xe4\x8e\xde\x28\xb2\x3d\x48\x9f\xcb\x03\x0e\x99\xb3\x5e\xf4\x6c\xea\xee\xda\x51\x77\x5d\xd2\xa7\xbd\xb8\x4f\xdf\xbd\x79\xf2\x20\x1e\x4f\xe2\x88\x46\x1c\x65\xee\x13\xc6\x6a\x86\xa2\x94\xcf\xe4\x1e\xe3\x66\x1d\x8d\x5b\xb7\x64\x0c\x88\x30\x1b\xcc\xb4\x9e\x7c\x70\x2b\x2a\xd2\xfb\xdf\x48\x1b\x95\x36\x2d\xbc\x51\xdd\x79\xad\x85\xd6\xe0\x45\x71\x80\x4d\xab\x2b\x14\x16\xe3\x90\x20\x31\x00\x18\x6b\x0e\xc3\x20\x2c\x91\x83\x58\x68\x4a\xeb\xda\x4f\x11\x44\xc5\x7a\x97\x7a\x63\x82\x25\x5a\x59\x28\x14\xeb\xac\xe8\xa9\x44\xbf\x9e\x8a\x42\x95\x7b\x3e\x56\xd3\x34\xd5\xb6\x64\x19\x1d\x63\x1d\xc8\x4d\x71\x5a\xb5\x2a\xc6\xc6\x62\x19\x10\x96\xf7\xfb\x56\x25\x78\x80\x17\xc5\x5e\xd3\xb4\xc6\xd5\x2f\x16\x17\xc1\x58\x6e\xb4\xd4\xc4\x55\xf7\x38\x23\x3e\xcb\xea\xe6\xd6\xc8\xd2\xf8\xd2\x78\xb3\xc2\x57\xdf\x92\x00\x69\xd0\x2c\x14\x0a\xc1\xd4\x28\xd4\xa1\x32\x18\x11\x54\x37\xcc\x00\xd4\x4d\x4c\x75\x3a\xcb\x6f\x16\x0b\xd8\xf0\x5f\x79\xd1\x59\x93\xe2\x2e\xe9\x05\x23\x7a\x3f\x88\xaa\xb3\x84\x99\x69\xd5\x24\xe4\xab\x38\x8c\xaa\x53\x7e\xf5\xca\xa0\x4f\xfa\x34\xe2\x21\x9f\x55\x42\x7f\x2c\x43\x3f\x0f\x23\x99\x20\xb7\x02\xf6\xf5\x12\x6c\x7c\x7e\x7d\x32\x3c\x09\x79\x32\x1b\x8f\x56\x00\xf7\x97\x80\x8f\x59\x5f\x6c\xb3\xab\x51\x2f\x7d\xdd\x78\x32\x0a\x7b\xe1\x8a\xec\x79\xcb\xdd\x76\x59\x09\x78\xb1\xdc\xe2\x6f\xac\x1a\xe7\xf9\x12\xe8\x9b\xa0\x1f\xae\x68\xee\xe9\x12\xf0\xeb\x69\x10\xf1\x70\x54\x9d\x36\xed\x6a\x05\xf8\xf7\x6a\xf0\xe3\x25\xf0\xb7\x43\x46\x93\x61\x3c\xaa\xa6\xa2\x93\x65\xf8\x70\x5c\x8d\xfa\x09\x2b\x83\xbe\xe3\xbd\x4a\xc8\xf7\x4b\x90\x27\xf4\xdb\x54\x90\xdc\x8a\x3e\xf9\xb0\xa6\xc0\x2a\x8a\xfa\x63\x4d\x99\x55\x63\xfa\x6c\x4d\x99\x95\xa3\xfb\x74\x5d\xa1\xd5\x44\xfc\x69\x4d\xb1\xb5\x23\xfe\x7a\xa9\xe0\xc3\xf0\x82\xb2\x73\xb9\x3c\x54\xc0\xd3\x68\x25\xfc\xaa\xbe\xe3\xab\x8b\xac\xea\xba\x68\x75\x91\x95\x3d\x17\xaf\x29\xb3\xba\xe3\x98\x59\x8a\x87\xbd\xaf\x8f\x64\x8e\xeb\xea\x01\xcd\x93\x0a\x32\xb4\xfb\x5b\x41\x6e\x97\x0b\xad\x36\x1a\x2d\xef\xad\xb4\xf5\xa8\xe1\x92\xeb\x29\x8d\x05\x0b\xa2\x73\xb9\xe7\x53\xaf\xb4\xbb\xac\xf1\x8e\xe3\x46\x3f\x1e\x07\xc5\xbc\xc1\xc3\x30\x59\x92\xf6\x6f\x54\x79\x55\x00\x2a\x75\x56\x14\x46\x9c\xb2\x49\x3c\x0a\x64\x98\x27\x7c\x7d\x33\xb3\xd6\x55\xda\xba\x56\x20\xe5\xb8\xf8\x7d\x85\xaf\x52\x39\x88\x03\xa2\x7c\x4d\x91\x15\x6a\xf6\x8a\x4d\xcf\x6f\x7d\x64\x24\x36\x43\x2f\x82\x09\xa4\x96\x3b\x9d\x2e\x44\xc4\xd8\x00\xc7\x28\xd4\x47\x94\xa1\x2d\x33\xbb\x2b\xf5\x46\x8c\x53\x3d\xb8\xdc\xf2\xef\x18\xa2\x69\xb4\xa5\x14\x1a\xb1\xcc\x80\x23\x2d\x64\xc3\x3c\x26\x3c\xeb\xa0\xc4\xf1\xf0\x6d\x2d\xab\x64\x8a\xc1\x38\xed\x85\x5c\xf0\x62\x6a\x23\xb7\x34\x1a\xd9\x56\x59\x89\x90\x78\x4b\x36\x3d\xfb\x12\xb9\xef\x56\x7d\x10\x6d\xc7\x83\x6d\x86\xb3\x3c\xdf\x91\x6d\x59\x5b\x72\xf3\x86\x18\x9e\xcf\x55\x3b\x19\xa4\xad\x8c\xf2\x56\xc6\x0b\x88\x55\xe7\x56\x9d\xd7\x95\x5b\xd4\x46\xac\x90\xe0\x06\x43\x2c\x23\x54\xa8\xe6\x09\x54\x53\xa5\x52\xdb\x0c\x59\x44\xa8\x40\x10\x89\x82\xbd\x78\x52\x91\xeb\x60\x3b\x91\x5b\x38\x8d\x56\x26\xe7\x0d\x53\xb5\x41\x6c\xc4\xb1\x83\xd8\xdc\x79\xa7\x23\x2e\xc4\x18\x92\xa0\xbc\xb4\x8e\x72\x18\x13\x96\x8e\x01\x08\xf9\x50\x7e\x3e\x4c\x89\x0b\x3d\xe2\x41\x9f\xec\x78\x30\x24\x2e\x0c\x88\x0b\x13\xd2\xd8\xcb\x49\x64\x8c\xb4\x1a\x3a\x46\xda\x5e\x10\x42\xd2\x3b\x98\x42\x42\xc2\x76\xcf\x9f\xc2\x88\x84\xed\xa9\xdf\xdb\xa2\x04\x8d\x9c\x04\x37\xb3\xec\xde\x1e\x30\x67\x68\xb7\xea\x03\x0c\x7d\x69\xe3\x62\xa6\x62\xc7\x18\x12\x5b\x96\x70\x68\x1d\x31\x67\x88\x71\x5d\x10\x2a\xad\x23\xcf\x19\xaa\x12\x09\x31\x92\xb3\x0b\xa1\xd4\xbc\xe7\x29\xb3\x19\xa7\x1b\x00\x14\x35\x02\x8c\x18\x2e\x99\x25\xe6\x1b\x8e\xc4\xa6\x75\x6e\x64\x02\x0a\x50\xd8\x1e\x37\x18\xbd\xa0\x2c\xa1\x08\xfb\xe3\x8c\x42\xf4\xd9\xa5\xee\x45\x60\x4b\xf4\xbb\x6e\x8c\x63\x41\x25\x63\x24\xb7\xb5\x78\x01\xec\x26\xc4\xd6\x99\x42\xaf\x4b\xc4\xd0\xd8\x53\xe8\x11\xbb\xa7\x10\xc9\xc7\x19\xaa\x37\xa2\x03\x2a\xf0\x2d\x17\x16\x9b\x6f\x81\x41\x14\x3d\x0b\xa2\xfe\x65\xd8\xe7\xc3\xaa\xf0\x11\x32\x6e\x09\xa7\x93\x8a\x77\x74\xa1\x54\x6d\x95\x55\x56\x7c\x42\x9f\xec\xec\x50\xd5\xec\xbe\x28\x3a\x09\xfa\xfd\xb2\xd5\xd0\xca\xc2\x43\x35\xc4\xe3\x30\x42\x1e\x0c\x88\xad\x7b\x72\x68\x60\x7a\x12\x95\x13\xe0\x6c\x86\xae\x0a\xd7\xf1\x94\x6f\x8a\x4b\xb4\x46\x21\x18\x08\x04\xc1\x28\x3c\xdf\x90\x20\x26\x24\x9b\x13\x3a\xf9\x7d\xda\xa0\xb4\x45\x13\x81\x70\x05\x3b\x18\xa1\x18\x61\x90\x43\x8b\x53\xd2\xef\xe3\x42\x57\xa0\x21\x2e\x7c\x0e\x1a\x60\xd5\x3a\x34\x31\x78\xc7\x18\x61\x33\x0a\x66\x36\xc3\xa7\x05\xdb\xbc\x78\x32\xcb\x63\xcc\xea\x91\xa3\x05\xf4\x7a\xe3\x45\x0b\x8d\x58\x7a\xaa\x60\xe9\xaa\xcf\x9a\x22\x19\x91\xc5\x0c\xd1\xd3\x33\xdf\x8e\xb4\x13\xa9\xd8\x0a\xe7\xed\x2e\x7e\xb8\x97\x06\x13\xef\x13\x86\xee\xca\xb0\xc1\xc8\xf3\x30\x0c\x08\x43\xff\xc0\x30\x11\x62\xc8\x1e\x36\xb3\x3d\xa9\x73\x93\xf9\xdc\x8c\xf5\x06\x11\xa1\xed\x6c\x54\xb4\x0f\x20\x64\x56\x76\xbe\x6b\x9c\xe9\x2f\xa9\xdf\x50\xac\x0c\x64\x19\x71\x65\x54\x53\xdb\x66\x38\xd4\xc6\x98\x82\x97\xc5\xd8\xe6\xe2\x32\x73\xa7\x09\xcd\xd0\x8b\x17\x25\xd3\xe4\xb6\xae\x5f\xd6\x6a\xb4\x2b\x2a\x34\x28\x36\x54\xd5\x21\x4e\x1d\x28\xb4\x03\xdc\x56\xde\x9e\x50\xb6\x27\x96\xc9\x41\x90\x0a\x86\xdd\x61\xdd\x34\x6a\x8b\x6e\x6e\x20\x5e\x9b\x06\xa0\x65\xe3\x5f\x13\x97\x04\x16\x08\xf3\x98\x51\xdb\x81\x0a\xee\x5f\x6d\x8d\x23\x5a\xf6\x30\xe0\x34\x23\x2b\x31\x8d\x38\xb1\x39\x54\xda\xcc\x25\x94\x8b\x4d\x0f\x92\xeb\x40\x84\x6d\x5e\x8f\x30\xb0\xc5\xa2\x90\x42\xc9\x3c\x90\x59\x46\x67\x9c\xbe\x08\x24\x4c\x20\x11\x18\x2a\x4d\x09\x21\x52\x3a\xbb\x34\xe0\x9f\x3c\x4c\x5c\x97\xe3\x5a\x9a\xf3\xfc\x58\x60\x48\x81\x78\x05\x90\x22\x30\x19\xf7\x01\x4b\x84\xb4\x1d\x95\x87\xc0\x0f\xaf\xed\x75\xd9\x14\x45\x4c\x51\xb1\xc3\xc3\xc5\x02\x4e\x49\xb3\xe3\xd8\xdd\x36\x6a\xfb\x7f\xf6\xed\x3f\x1b\xed\x3f\xfb\xf5\xb9\xfc\xb1\x31\x6a\xfb\x1d\x7a\xd4\x95\xef\xc5\x7d\xbb\x79\x0e\x97\x72\x24\x54\x58\x2f\x74\xda\x48\xe2\x29\xeb\x51\xb0\xce\x2d\x0c\x47\xab\x43\x22\x91\xd3\xc6\x28\x48\xf8\x93\xa8\x4f\xaf\xc8\xa5\x71\xed\x42\x40\x1c\x0f\x12\x21\x9e\x8d\xb4\xe3\x3a\xb5\x89\x65\x01\x17\x7f\xf7\x11\x23\xa7\xd2\xd1\x4b\xac\xf5\xd2\x2f\xeb\x52\xdd\x72\x8c\xf7\xb1\x0c\xff\x23\x4f\xb3\xf1\x61\x2c\xcf\xf3\xf5\x0c\x8b\x21\xc4\x90\x74\x82\x6e\x5b\xfc\xb1\x49\xe8\x27\x1d\xdb\x0e\xba\x24\xc4\x80\x98\xd4\x66\x61\x42\x08\x8a\x48\x24\x2e\xdb\x06\x68\xa4\x41\x23\x1f\xe9\x2b\xc1\x3e\x46\xa9\xbf\x7b\xe8\x07\x70\xe5\x9f\x49\x7d\xb9\xf4\x8e\x32\xbf\x28\x8b\xd7\x74\x60\xb8\x01\x1b\xcd\x5a\xd9\x28\xcd\xe7\x0f\x5a\xed\x51\xc7\xed\xb6\x2b\x96\x84\x2a\x2b\x5c\xc4\xb1\x6d\x59\x8b\x05\x12\x85\x1a\x57\xb8\x2a\x62\x6d\xd5\x62\xbc\x10\x1b\x04\xc4\xc9\x48\x33\xaa\x2a\x53\x7d\x41\xd6\xee\x7e\x74\xc0\xf7\x6d\x3b\xc2\x49\x07\x31\x32\x92\x79\xb2\xc3\x2e\x61\x8d\x2b\x83\x94\x92\x54\x57\x68\xe1\x05\x5e\xc0\x95\xe0\xa0\x77\xb0\x99\x00\xa7\xc8\x9f\x52\x02\x37\x73\x3f\xa8\x00\x71\xda\x3a\x91\x10\x12\xa5\x31\x0e\xd1\x95\x90\xc8\x44\x6b\xf3\xb0\xdd\x24\x6a\x9f\xf9\xb9\x89\x02\x89\x84\x7c\x9d\x82\x0f\x1a\x54\x80\xe3\x36\xe2\x84\xc1\xa4\x11\x60\xff\xc8\x2f\xb8\x91\x0c\x1a\xb4\x3d\x69\x04\xc5\x87\x82\xb9\xb4\xcf\xab\xba\x4f\x32\xc4\xfb\xd3\xc1\x80\xb2\x46\x98\xbc\x0f\xe9\xa5\xf2\xea\x58\x4a\x52\x1f\x88\x77\xd2\xb9\xa3\x3d\xf6\xcb\x7e\xe1\xed\x0b\xbf\x22\xd7\x66\x6a\xc7\x7a\x3c\x30\xb3\x73\x1b\x6f\xf5\x81\xef\x7c\x1e\x26\x2f\x83\x97\x02\xcf\xcc\x3f\xc3\xe9\x81\xfb\xc9\x4f\x30\x33\x43\xf6\x35\xf8\x5a\x21\x90\xef\xdb\xfc\xe3\x6d\x15\xd3\xe6\x05\xe9\xb8\xe0\x75\x73\x90\x57\x85\xb0\x37\xd9\xe3\x7b\x66\x3b\x10\x77\x88\x68\x0a\x6e\x2f\x37\x03\x31\x87\xe2\x26\x5f\xf8\x88\x91\xec\xcb\x5e\x06\x2f\xfd\xc6\x5e\x45\x5a\x43\xa6\x73\xe9\xe5\x35\x3d\x28\x9e\xf0\x51\xa5\x9d\xa6\x2a\x8e\x16\x57\x86\x80\xdc\x0c\xae\x76\x10\x89\x6d\xd3\x3d\x14\x82\xb4\x15\x64\x28\x80\x18\x63\x5f\x3e\x8b\x04\xb3\x10\xcf\x62\x08\x30\x86\x0a\x1a\x88\x51\x24\x03\xd2\x15\xb2\x3b\x98\x0d\xc8\x56\x58\xbd\xbe\x82\x9e\xff\xd8\xf1\x20\x2c\xac\xac\x85\x75\x37\xc2\x92\x05\x2a\xc6\xd7\x89\xba\x07\x54\x9d\x7c\x51\x42\xb5\xb0\x90\xef\x2e\x80\xe7\x22\x44\xfe\x14\xef\xdb\x76\x70\x10\xed\xe3\xb0\x13\x74\xc9\x3d\x44\x3b\x41\x17\x68\x27\xb0\x3d\x19\xb8\x2c\xe8\x12\xa6\xe2\x67\x70\xf5\x6c\x69\xa9\xc8\x56\xd9\x74\x0a\x0d\x1b\x7d\x49\x62\xe0\x41\x84\x1d\x2f\xe3\x69\x62\xf9\x10\x0b\x89\x0c\x32\x53\x4a\x50\x61\x04\x35\xd0\xba\x0a\x7d\x81\xb1\x56\x6d\xa4\xbf\x18\x1b\xba\x0a\xf1\xd8\xbc\xc3\xb8\xd1\x1b\x05\xe3\x09\xa2\xe9\x2f\xce\xf7\xa1\x34\xbb\x32\x13\x06\x7f\x31\xf7\xad\x59\x0c\xbe\x17\x90\x90\x17\x30\x22\xc7\x30\x25\xaf\xb6\x0a\xe2\x61\x0e\x3c\xca\x07\x4e\xdb\xe7\x81\x71\x58\x9f\x8a\x91\x3b\x84\xbc\x92\x43\x12\x08\xc2\xe2\x24\xe8\x8c\x1c\xaf\x0b\xf4\x90\x4b\x27\x60\x0a\x94\x70\xe0\x44\xfa\x93\xae\x9a\x72\x42\x6c\xa7\xb9\xd8\xce\x65\x74\x49\x0c\x11\x19\x1d\xb6\xda\x5f\xfd\x07\x10\x12\x75\x54\x03\x7d\x33\x15\x72\xde\xaf\xe9\x34\x21\x36\xc7\x6d\xe6\xa3\x70\x3e\x17\xab\x1f\x0a\xe4\x4e\x95\x62\x48\x60\x84\x31\x46\x14\x4d\xa5\xd9\x6e\xb6\x0b\x6d\x84\xd1\x05\x65\xbc\xaa\x61\x42\x7a\x46\xf1\x7c\x8e\x62\x12\xa1\x04\x32\x54\x67\x02\x11\x93\xa6\xbf\xfd\x1b\xed\x59\x83\x82\x92\x03\xde\x62\xe8\x89\x8d\x49\x90\x2b\x3a\xfa\x37\xd9\xc6\x26\x25\x9d\x89\x44\x96\x2c\x21\x5b\xb5\x91\xdd\x2e\x97\x1f\x91\x13\x81\x43\x14\x94\xa4\xb5\x59\x2b\xa6\x62\x27\x3a\x9f\xbf\x52\xd5\x4b\x62\x10\x18\x0c\x9a\xdd\x0c\xcf\x88\x50\x85\x62\x24\x8a\xdf\x48\xdf\x23\x68\xac\x8f\x7d\x66\x18\x38\x98\x76\x55\x94\x30\xe0\x24\x92\xdf\x96\x13\xcf\xc3\x9c\x81\x7e\x41\x18\xbd\x82\x57\x6a\x9b\xf3\x92\x34\xff\x42\x6d\x1f\x35\x70\x1b\x75\x0e\x0e\xc9\x5f\x5d\xb1\x58\x76\xec\x3f\x1d\xb4\xdd\x15\x57\xb7\xfe\x8f\xf8\x71\x71\x1b\x49\xa9\x0f\x81\xb8\x6a\xa8\xeb\xff\x14\x00\x81\xf3\xfd\x76\x17\xb7\x6f\x35\xc3\x7c\x5e\x3d\xd1\x79\x29\x11\x27\x2f\x33\x89\x0d\x2f\x59\x81\x84\xca\xef\x78\x7b\x20\x35\xc0\xfe\xb6\x65\xeb\xe8\xe4\xa6\x09\xd5\x73\xf4\x63\x10\x8e\x46\xbe\x60\xe1\x20\x77\xa1\x3e\xef\xb4\xba\x90\xa8\xab\xdd\x2e\xa8\xec\x0a\x3e\xef\xdc\xe9\xc2\x77\xca\x62\x9f\x77\xf6\xba\x20\x35\x13\x3e\xef\xdc\xed\x42\x2f\x1e\x8f\x03\x9f\x77\x7e\xeb\xc2\x84\xd1\x5e\x98\xa8\x48\x44\xbf\x77\x6b\x35\xf1\x37\xb7\xae\xe6\x2c\x1c\xfb\xbc\xf3\x8f\x2e\x88\x65\x57\x54\xe9\x76\xcd\xb8\xdf\xcf\x33\x83\x14\xd1\x24\x62\xe4\x82\x15\xf7\x6d\x6b\xdb\xf2\xd5\xa5\x2d\xa4\x56\xe9\x32\x22\x37\xf5\x06\xa0\x7c\xd0\xb6\x0e\x05\xa4\xbc\xce\x40\x93\x12\x64\x22\x01\x1d\x01\x98\x14\xe0\xe4\xe7\x16\x20\xe5\x93\xb6\x25\x41\xe5\x75\x06\x2c\xfa\x43\x10\xad\xbc\x50\x8f\x94\xca\xc6\x28\x2e\x1f\xb4\xd5\x03\xdf\x4e\xef\x75\xdc\xfc\xf1\x38\x90\xe5\xe5\x95\x8e\x9e\x9f\xf6\xa1\x89\x24\x7b\x68\x20\xca\x9e\x65\x67\xed\x63\x89\x4b\x5c\xa4\x8f\x66\x13\x6a\x62\x11\xf7\xea\x3b\xc4\x95\x10\x67\xb3\xbe\x7f\x94\xd9\x8c\x21\x46\x10\x25\xbc\x4d\x1b\x3c\x3e\xba\x52\x36\x02\x61\x30\x42\xdc\xf1\xb0\x5f\x7e\x28\x17\x98\xd4\xc6\x95\x5a\x18\x1f\xb8\xd8\x10\x35\xf3\x0d\x7b\x4a\x04\x2e\x30\xcd\xec\x3b\x59\xd4\x17\xaf\x2d\x76\x06\x76\x94\xc2\xb4\xb0\x1f\x81\xad\x4b\x30\xdb\xc3\xdd\xc5\x93\xdc\x24\x80\x3c\x37\xa2\xde\x3c\xdf\x28\x3c\xca\x76\x46\x53\x76\x4e\x35\x76\x46\x15\xb6\x31\xee\x36\xca\xc6\xb5\x6d\xb9\x96\x6f\x59\xd8\x36\xa2\x3c\x66\x03\x2c\x7a\xd1\x50\x9c\xba\xf3\xfc\x15\xc6\x29\x12\x39\xa6\x6d\x0b\x2a\xb1\xe4\x03\x6a\x59\xbe\xd5\xb0\x6c\x43\xe5\x94\x62\xcb\x40\x32\x8c\x62\x64\xdb\xd6\x7f\x2a\x84\xd9\x08\xab\x78\xc4\xdf\xe1\x1d\xdc\x87\xc7\x66\xc4\xf6\x8c\xd1\x21\x4a\x1e\x21\x59\x41\x70\x26\xf3\xfb\xe1\xb6\x10\xe0\xfc\x97\xc1\xcb\x05\xdc\xaa\x54\x03\x28\x7a\x28\x85\xc4\xb4\x2d\x4b\x1f\x18\xa5\xc9\xe9\x0a\x82\x9f\xdb\xb6\xdc\x86\x65\xe7\x22\x97\x13\x6a\x93\x12\xd7\xc2\x76\xe4\x67\x43\x1e\xda\x5e\x3b\xca\x68\x22\xb4\x3d\x6c\x8b\x3e\xd0\x8f\xc4\x03\x3f\x32\x10\x85\x8e\x2e\x6a\xb7\x0c\x94\x0b\xf8\x46\x7e\x58\xb7\x2d\x5f\x36\x96\x1c\x22\xcf\x75\xeb\x14\x37\x78\xfc\x28\xbc\xa2\x62\x4d\x87\x33\x9f\x92\x43\x53\x14\x37\x42\xe2\xb4\x30\xf4\xc4\x6b\xf1\x5d\xd0\xaf\xda\x91\xe4\x7d\x46\x0a\x38\xf0\x21\xf1\x68\xcb\x93\x73\xe4\x79\x2c\xcf\x27\x15\x4a\x8b\x46\xa6\xd5\x26\x34\xcf\xc1\xb2\xd4\xb4\x49\x21\x3c\x17\x2f\x80\xea\x16\x2f\x4d\x32\x0c\x03\xf3\x5d\xf6\x1d\xe7\xe6\xd3\x57\x9a\x32\xc4\x9b\x78\xcd\x17\xfe\x8e\x61\xa2\x0b\xde\x52\xbd\x03\x1c\x03\xf3\x6f\x41\x39\xc5\xc9\x4d\x87\x1d\x62\x12\x3a\xe8\x3b\xd9\xad\x67\x94\xeb\xfc\x9e\x8b\x5d\xe9\xa5\x3a\x3d\x08\x9b\xbb\x18\x63\x6c\x7b\x10\x64\x6e\x48\x79\xbc\x65\x42\x82\x76\xe4\xc7\x87\x41\xdb\x1c\xf2\xd8\x09\x6c\xcf\x18\x6b\x3f\x3e\x74\x0d\x9a\x89\x8b\x14\x13\x63\xbf\x44\x7b\x9e\x13\x9b\xc4\xf7\x28\x93\x09\xe5\x14\xe3\x76\xec\x78\x18\x77\xdc\xee\x02\x3e\xae\xe9\x40\xef\xae\xb8\x79\x37\x99\x50\xf6\x20\x90\x1b\x83\xab\xf5\xd0\x0b\xf8\x50\xe9\x56\xb6\x80\x3f\x52\x19\xc9\xb4\x75\x9b\xc0\x27\xd2\xb1\x66\x16\x58\xdf\x2d\xb0\x02\x0b\xac\x81\x05\xd6\xc4\x02\x2b\xb2\xc0\xfa\x7f\xff\x1f\x0b\xac\xb1\x05\x96\x05\xd6\x57\x0b\xac\x17\x16\x58\x7f\x58\x60\xbd\xb5\xc0\x7a\x65\x81\x75\x64\x81\xf5\xd9\x02\xeb\x93\x65\x6c\x18\x9f\x95\x6c\xa7\xb3\x74\x60\xa8\xdf\xe8\xe1\x74\x2f\xa5\x03\x31\xa3\x88\x3c\x49\x1d\x09\xa2\xb6\x05\x03\xcb\x8f\x30\x96\x4c\x45\x9d\xb3\x5a\x89\xe5\x2b\x1b\xa5\xac\xef\x0c\x36\x02\xd9\x35\x37\xc2\x04\x4a\x3d\x5b\x94\x73\x2f\xbd\xa3\x0e\xab\xf7\xd0\xc6\xa0\x6c\x42\x4a\xef\x11\xc7\x92\x9a\x9c\xf7\x45\x8e\xb6\x50\x7b\xca\xf9\x1c\x19\x75\x93\x10\xc3\x63\x14\x41\x80\xe5\x49\xb1\x65\xc9\x88\xd2\x16\x4d\x7f\xcf\xd3\xdf\x49\xfa\xcb\x2c\xff\xa6\xcd\x4f\x19\x43\xda\x21\x9c\x18\x5d\xe2\x14\x28\x4e\x34\xdc\x79\x2f\x9a\x6a\x4b\x0f\xa0\x6b\x3b\x74\xf9\x5b\x1c\xb1\xc6\x4a\x4f\x3e\x39\x42\xd8\x88\x89\x6d\x0d\xd2\x4f\xb8\xbd\xe1\x27\x54\xf5\x7f\x45\x97\x56\x34\xa2\x55\x47\xd6\x6d\xb3\x19\x7a\x03\x74\x1f\x99\x49\x19\x9f\x9a\xe7\x14\x6a\x6b\x93\x9f\x54\xf0\xb0\xf7\x35\x59\xf2\xd1\x63\x84\xe7\x0a\xfb\x8c\x68\x03\x8c\x24\xdb\x61\x1d\x96\x3b\x76\x81\x22\x5a\xda\xf6\x5c\x5f\x25\xfc\xc9\x8d\x1d\xcc\x81\xca\x9d\x81\x73\xcc\xcf\x50\x24\x53\x58\x66\x12\x48\x19\x1f\x30\x89\x31\x0a\x7b\xb4\xb0\x99\x4b\x3d\x6e\xe4\x56\xd4\x73\xb1\x11\x20\x9a\x23\x0c\x01\x71\x21\x21\x71\x86\x13\x46\x24\xee\x04\xd2\x1f\xb2\x93\x74\xa1\x47\x3c\x57\xea\x1e\xa6\x07\x23\xa9\xa9\x1c\xc1\x88\x4c\x61\x4a\x42\x08\x49\x00\x01\x49\x20\x21\x21\xde\xef\xc9\x30\xd2\xfb\x4a\x14\x0b\xf3\xb9\x7b\x86\xd1\x48\xe6\x32\xc4\xa2\xeb\xb3\x24\x5f\x9d\xa0\x4b\x46\x20\x6a\x20\x53\xd0\xa6\x00\xe1\xa1\x8b\x47\xe6\xf1\xed\xa8\x19\xe2\x7a\x08\x53\xf5\xac\x47\xc3\x11\x9a\xca\x47\x5b\x59\x3e\x0b\x14\x1e\xb8\x18\x2b\x8a\x1a\x19\x70\xa3\x7a\x88\x9b\x59\x51\x85\x6e\x2a\x9f\x2d\x22\x12\x16\x12\x17\x65\x63\xff\x3a\xb3\x68\x78\x98\x77\xfb\xca\xa3\xa5\x37\x88\xc2\x6b\x79\xb8\x14\x66\x99\x00\x8c\x73\x73\x41\x48\x39\xea\x8f\x79\x42\x82\xec\x19\x33\xc8\x59\x51\xba\xd2\x86\x71\x3f\xf3\x35\x60\x7a\x73\xce\xf2\xc3\xe1\xa5\x83\x5e\xbe\x66\x63\x48\xcd\x1d\x2e\x17\x1b\x6e\x26\x96\xf5\x6c\x87\xcc\x6e\xb6\xcf\xe4\x84\xaa\x44\x10\xab\x0f\x12\xc5\x97\x66\x5a\x18\xe9\xf5\xb3\x94\x97\xaf\x5d\x52\x02\xf8\x52\x79\x08\x4f\x91\xe9\xaa\xf0\xb9\xa8\x12\x76\x21\x24\xa6\xce\x0b\xe7\x04\xab\xf2\x04\x43\x40\xa8\x91\x06\x24\x38\x88\x55\x00\x36\x88\x24\xa9\x32\x60\x24\x86\x58\x92\x2c\xc3\x20\x4a\x10\x9e\xd2\x45\x2c\xee\x43\x71\x2f\x49\x27\x28\x64\xf4\xa0\xb4\xcc\x75\x46\xf1\x79\x61\x6c\xf9\x12\x04\xbd\x9a\x14\x20\x98\x01\xe1\x64\x38\x1c\x13\x24\x5a\x02\x11\x48\x0a\x20\x21\x2d\x10\xcc\xa3\x30\x0a\x65\xd5\x6d\x1b\x59\x1e\x15\xfb\x64\x9f\x1e\xb8\x6d\xd7\x37\x5a\x1f\xd3\xb5\xe7\x03\x0e\x45\x0e\x37\x75\x02\x01\xcd\x08\x15\xe4\x0e\x08\x51\x0a\x9c\x4a\x6b\x61\x6d\xd9\x11\x4b\x96\x90\x95\x30\xf6\x2b\x95\x22\x04\x21\x6a\x0e\x1e\xb5\xf5\x97\xfb\x5e\x1a\x90\x44\x3f\xf0\xdc\xf9\xbc\x55\x7c\xd4\x92\x27\x60\x46\x7f\x43\x05\xbd\x67\xaf\x39\x6e\xd2\x85\x64\xfc\x50\x79\xcc\xae\x2a\x6c\x87\xd4\x2f\x37\x87\x5e\x4d\xfc\x55\x98\x27\xf1\x65\x1a\xd0\x52\x20\x0e\x91\x90\xbb\x0e\x5c\x31\x0b\x62\x2a\x6d\x76\xc5\x2f\x93\x0e\x02\x14\x22\x8a\xb1\x9f\x75\x57\xa4\x67\x70\xd4\x38\x0b\x92\x0d\x15\x40\x31\xb1\x29\x04\xd2\xa2\x63\x01\xd1\x8d\x14\x6b\xa1\x8c\xf2\x2f\x8a\x86\x62\x5a\x47\x2b\x96\xaa\x08\x02\x12\x22\x99\x1a\x54\xac\x25\x23\x52\x70\x3b\xde\x47\x11\x19\x1d\x24\xb8\x56\x43\x03\xc9\xd7\x05\xaf\x1f\xa4\x31\x8c\xa0\x07\x43\x18\x10\x8e\x12\x0c\x13\xc2\xd1\x08\xc3\x98\x18\xcb\x8f\x4d\xe1\x82\x74\x94\x37\x08\x8a\x6f\x7b\xb8\x56\x9b\x38\x83\x83\xb1\xca\x08\x65\xb2\xe1\x81\x40\x90\x73\xea\x09\x86\xe4\xd0\x55\x87\x4a\xfb\x83\x03\x32\xd9\xb7\xed\x81\x74\xde\xef\x11\x0f\xa6\x44\x14\xd8\xef\x1d\xc4\xfb\xb6\xdd\xc3\x2a\x83\xc5\x90\x4c\xeb\x3d\x7c\x90\x28\x1f\xd9\xe1\xe1\x28\x5d\x00\x2e\xd4\x09\xdc\x50\x27\xdd\xad\x42\x19\x3b\x39\xd2\x43\xe2\xed\x3b\xce\xe6\x58\x5b\xf5\x0b\x7d\x0a\x37\xae\xd5\xd0\x05\x31\x57\xfb\x04\x46\x30\xc6\x58\xd5\x5c\x7c\x35\x80\x49\x2e\x17\x4e\x9c\x81\x80\x93\xba\x54\x96\xcb\x9f\xed\x0b\xc3\x48\xe8\x42\x0f\xe1\xb2\x68\x10\x1a\x5e\xb4\xa1\x5c\x91\x25\x71\xc7\x6d\xab\xe1\x52\xcb\xb7\xc0\x32\x4d\x00\xb3\xa3\x22\x05\x7a\x1f\x85\x18\x83\x98\x03\x5e\xd3\xcd\x1d\x41\xd2\x61\x94\x2a\x6c\x2d\x21\x18\xb2\xb3\x07\x71\x9d\x36\x53\x9a\xca\xec\xb3\x96\x8f\x09\x68\x76\xda\xd2\x64\xc8\xb4\xa1\x92\x62\x59\xf6\xa5\xf5\xf8\x20\x76\x1a\x7b\xb5\x1a\x8a\xea\x24\xc6\x10\x1d\x90\xa0\x1d\xca\x00\x9c\x96\x72\xbe\x29\x48\x30\x39\xcb\x43\x9f\x91\x20\xde\x1f\x92\x8c\xaa\xf6\xbd\x69\xad\x8a\xcc\x54\xad\x0b\x10\x44\xb6\x06\x58\xd2\x60\x0a\x2b\x43\xbc\x45\x86\xbb\x1c\xcd\x24\x82\x80\xa2\x2f\x2a\x2f\x86\x3c\xb2\xe8\x78\xe0\xb9\xdd\xcd\x84\x04\x79\x04\x23\xd9\x00\xa2\xea\x67\xa5\xd0\x60\x70\xee\xd1\x7a\xce\xad\x38\x94\x74\x5e\xe0\xb8\x9e\x31\xd2\x49\x2e\x0a\xf3\x66\xf1\x40\x6a\x7a\x63\x84\xf4\x6a\x32\xf6\x90\x29\xdc\xd7\xa9\x81\xb0\x97\xaf\x15\xc4\x03\x46\x28\x92\x59\xe2\x60\x4a\xcd\x8d\x95\x10\x14\xe4\x29\x68\xe5\x09\xc3\x12\x27\x53\x48\x88\xcd\x34\x1e\x21\x6c\x14\x25\x83\x7e\x3e\x2a\x3d\x35\x2a\x1b\x0d\x43\x5f\x1d\x1d\xa5\x8d\x51\x59\x64\xd5\xe5\xaa\xe1\xc8\xab\x1c\x5e\xd3\x77\xfc\xc0\x6d\x3b\xd9\x9a\xe1\x70\xa0\xd8\xcf\x6e\xc5\x9d\xd1\x6d\x83\x42\x4a\x90\xac\x60\xf2\x8d\x71\xb1\xde\xfb\xf9\x9d\xb9\xf8\x4f\x96\x4a\xd1\x3a\xf5\x69\xdd\xa0\x98\x31\x35\xa3\x21\xbf\x82\x57\x62\x85\xf2\x8c\x5c\x24\x79\x7f\x48\x57\x9f\xb6\x02\xf2\x1b\x7b\xe9\xdd\x80\xc2\x44\x08\x11\x68\x28\x97\xb5\x21\x45\x5e\x93\xe5\x1b\x25\x2e\xfd\x12\x23\x1a\x55\xae\xf3\x55\x87\x12\x36\x85\x48\xac\x49\x6c\x21\x13\x4f\xe4\x4d\xbd\xc8\x87\x70\x7c\x83\x21\x94\x71\x75\xb3\x56\x20\x9a\x5f\x6e\x32\xa3\xce\xa9\xe9\xe9\xb1\xc2\xf0\x2b\xc3\xd8\xd8\x33\xda\x7b\xb6\x24\xe2\xc9\x89\x42\x71\xbd\x30\x02\xb3\x95\x60\xf9\xa0\x9a\x5b\xd5\xbc\xe4\x29\xcd\x8f\x1d\xc5\xee\x03\x98\x3a\x51\x87\x88\xec\x78\xa6\x29\xb5\x0e\x5b\x42\x66\x14\x71\xc4\xf2\x8e\x4b\xf7\xca\xb8\x4d\xfd\xa8\x6d\x30\xdf\x10\xfb\x61\x6e\x20\x5d\x3e\xeb\x2b\xc6\x9a\x17\xef\x90\xfc\x56\x69\x72\x7c\x13\x01\x84\x1b\x16\xe8\x31\xf6\xb3\x5b\x7c\x43\x33\x68\x9e\x1e\x01\x97\xec\xa1\xe1\x6d\xba\x62\x9e\x51\xbc\x6c\x1b\xbd\xfe\x94\x2f\xce\x0c\xe7\xd3\x2e\xd9\x71\x55\xa9\xcd\x8d\x4d\x23\x69\x6c\x9a\x59\x54\x6f\x7e\x36\xc8\xf5\x59\x75\xda\x2b\xe9\x89\x75\xa5\x41\xf7\xfa\x7d\x1c\x17\x08\xe8\x1a\x83\xee\x53\x9a\x0f\x82\xd8\xe6\xa5\x1f\x1b\xe9\xe3\x72\x5e\x71\x5c\xbe\xca\xe8\xfb\x29\x8a\xf1\xe2\xdd\x72\x34\x22\xb9\x27\x30\x4e\x66\xce\x59\x3c\x9d\x48\xf3\x13\xf3\xb8\x66\x18\x4f\x93\x20\xea\x27\xed\x0f\x3e\xe2\xe4\x8f\xd4\xb5\x39\x03\x86\x97\xd2\x4c\x07\xcb\x60\x60\x19\xb0\x6d\x59\xa6\xa3\x5c\x94\x5b\x19\x85\x59\x94\x36\x88\x49\xa7\x9b\x6a\x2c\xb8\x12\x60\xdd\xfd\xf0\xd0\xad\xd5\x12\xf1\x07\x8d\xec\xc4\xf6\x0e\xa3\xdc\xa6\x5b\x49\x2f\x91\x33\x12\x44\xa3\xc4\x38\xda\x48\xa6\x67\xca\x32\x08\x85\x0e\x49\x20\xb4\x13\x8c\x61\x07\xa1\x91\x4d\x12\xdb\xc3\x87\x11\xc6\xfb\x58\xa6\xff\x24\x28\xb0\x3d\x7c\x5b\x5b\x6a\x64\x9b\xcb\x38\x17\xd5\x94\xae\x96\xe1\x85\xd8\x22\x19\x9d\xd0\x9b\x32\x46\xa3\xde\x4c\x9d\x5b\xe9\xbb\x8e\xdb\x15\xdf\x19\x6f\x00\xe9\x49\xc8\xc0\x84\xec\xd3\x5e\x38\x0e\x46\x6d\xab\x21\x20\xd3\x3b\xe5\x51\x61\x40\xa9\xfc\x08\x23\xd1\xfb\x9b\xd9\x88\xf1\x5c\xf1\xdf\x71\x9d\x7f\x74\x9b\xe7\x50\x19\xd0\xb1\x63\x73\x19\x07\x77\x81\xb2\x21\xd5\x75\x81\xd2\x24\x63\x0c\x85\x23\xc8\x09\x65\x3d\x1a\xf1\xb6\x75\x5b\x34\x38\xbd\x13\x0d\x9e\x9a\x50\xe3\x30\x9a\x26\x6d\xeb\xff\xfb\xbf\xfe\x6f\x01\x25\xef\x04\x4c\xaf\xf0\x51\x41\xd4\xb6\x5e\x06\x2f\x05\x44\x14\x48\x27\x0c\xc3\x08\x22\x5b\xf6\x10\x25\x4f\x04\xf7\x92\xa7\x66\x92\xbe\xe4\xa1\x19\xf4\xd3\x93\x53\x18\x66\x07\xa3\x30\x20\xe9\xf9\xe7\x44\x9f\x76\xc2\x98\xe8\x23\xcd\x0b\xf3\xf0\x12\xce\x49\x7a\x3c\x79\x96\x9e\x46\x6e\x59\xd2\x04\xed\xac\x8d\xc6\x64\xc7\x85\x33\x62\x9d\x5b\xd8\xff\xd6\x39\xeb\xce\xe7\xf9\x89\xd9\x85\xdc\x23\x78\x2d\x0c\xe7\x39\x14\xa0\xc1\x7c\x6e\xb9\x96\x0a\x84\x66\x11\x71\xc1\xd4\x96\x6b\xc7\x05\x4e\x2c\xd7\x02\x46\x2c\x92\xba\xf1\xce\x88\x75\x4b\x80\x0c\xdb\xa1\x6f\xfd\x1f\x79\x55\xab\x35\x3b\x67\xf1\xd5\xc7\x6e\xea\x4d\x7f\x86\xdb\x96\x6b\xd9\x67\xf2\x50\xe7\x52\x6b\xfc\x7d\xcb\x82\xd3\xac\x70\xec\x37\x3b\xb7\x27\x46\x89\x91\x78\x7f\x49\x44\x93\xe1\x88\x34\x3b\x7d\x3a\x38\x9f\xb0\xe4\x76\x0e\x92\x77\xf0\x95\xee\xe0\x10\x62\x18\xc1\x90\xcc\xe0\x8a\x9c\xca\x70\x84\x3d\xd9\x0d\xf8\x8a\x5c\x22\x8a\xed\x2b\xa0\xc4\xb2\x72\x1f\xe1\x63\xa2\x54\x5a\x07\xee\x7c\xee\x35\xe9\x81\x2b\x43\x6d\xa5\x06\x5d\x14\xb7\x7b\xfe\x65\x41\x8f\x7c\x81\xe1\x5c\x6e\x42\x4c\xc2\xa5\x7e\x16\x19\x58\x8e\x68\xca\x0a\x22\xe2\x41\x48\x1c\x19\x17\x43\x99\x1f\xaa\xb3\x01\x99\x27\x5b\x9d\x02\x34\x2c\x3f\x24\x9c\x44\xa6\xc2\xd9\xb5\x7c\x19\xe8\x47\x6e\x87\x22\x0c\xf9\x6b\x33\x49\xa2\x2d\xb1\xc8\xe7\xdb\x74\x4b\x72\x18\x14\x12\xc3\x85\xfc\xd0\x6d\xe7\x87\xc3\x21\xce\xce\x7d\xb9\xed\x09\x2e\x2d\x1d\x4f\x8e\x65\x4c\x21\x9b\xd6\x6a\x96\x6d\xed\x10\xd2\xaf\xd5\xd0\x31\xd9\xf1\x30\x0c\x09\x3a\x6e\x5b\x48\xf4\x5d\xbf\xdd\xf7\xa7\xbe\xe5\xc8\xeb\xf9\x5c\x3f\xb4\x2c\xbf\x8f\xed\x21\x5c\x11\x64\x25\x8a\xd4\x3e\x75\x7e\xb7\xbf\x37\x77\xbb\xf2\x14\xf5\xca\x46\xc7\xb5\x5a\x06\x8d\xe5\xd9\x2a\x1c\xa9\x8c\xc0\x44\x29\xc5\x74\xb4\x10\xdb\x0e\x0f\xe2\x7d\xb1\xc9\xbd\xf3\xfb\x21\x1a\xa9\xd8\xb8\xec\x41\xdc\xa7\xf7\xb8\xd8\x0f\xce\xe7\xa3\xc3\xbd\xdf\xf0\x8f\x2b\x82\xee\xdc\x25\x84\x8c\xda\x41\xf6\x3d\xf2\x48\x33\xbb\xc1\x6a\x88\xcd\x2f\x4f\xf3\x2c\x2e\xc6\xb5\xda\xce\x40\x8e\x9d\xe0\xde\x62\x77\xa9\xe8\xf7\x84\x0c\xf5\x11\xa8\x6e\x90\x7d\xa5\xc7\xf0\x2d\x39\x39\x98\xb4\xf3\xc3\xaf\x89\x73\x92\x1d\x9e\x71\x41\xc1\xfa\xc0\x67\x5c\xab\x69\xe4\x6f\x6d\x0a\x6f\xf5\xba\x38\x71\x34\x2e\x5f\x54\x09\x6f\x89\xe8\x06\x96\x8e\xff\x81\xe5\x53\x32\xb4\xa9\x7d\x65\xbf\x35\x69\x80\xa8\xe7\x6f\xc5\x1b\xf3\xf9\x5f\xe2\xf9\xdb\xec\xe3\x4e\x88\xae\xe7\xf0\xd0\xc3\x76\x8a\x28\x7d\x7d\x52\xf6\xc2\xa3\xe4\xad\x02\xd1\x34\x92\x18\xae\x82\x17\x39\x2f\xbb\x68\xdf\xf5\x9b\x1d\x31\xd7\x8c\xd9\x68\x2c\x56\x99\x9e\xa0\xe5\xc1\x05\xc6\x7e\x95\x4f\x47\xcb\x15\xaf\xe0\x6a\x9d\xf1\x80\xb4\x93\x00\xdd\x9a\x1f\xa9\x39\x4d\x1f\xd4\xc5\x2b\x46\x07\xe1\x55\xe5\x59\x6a\x1f\xa1\x8c\x8d\x4a\xcb\x05\x6b\x60\xa9\x40\x52\x1b\x1d\x9a\x66\x27\x5d\x10\x92\x6c\x0b\xe4\xb9\xe0\x48\xbb\x46\x41\xc4\x51\x73\xb7\xd2\x1a\x3d\xdb\x97\x87\x75\x8a\xed\x78\xb1\x58\x2c\xd0\x8f\x4c\x3e\xf0\x2d\xb0\x40\x8b\x10\x7e\x67\xb7\x0b\x7a\xa9\xf4\x3b\xd6\x2d\x0b\x2c\xab\xbb\xc0\x70\x9f\xbc\x6b\xa8\x2f\x84\xc7\xd9\xa5\xfa\x58\x49\x8e\x97\x94\x30\xe4\xb9\x18\x8e\xe4\x85\xc9\xe4\x4c\x09\x3c\xf7\x63\xec\x74\x4d\xe9\x5b\x6f\x5a\x5c\xfd\x71\xa9\x03\x5a\xa6\x12\x11\xf3\x2f\x32\xbd\x26\x1c\x0f\xef\xdb\x36\x3d\x08\xf7\x71\xd4\xa1\x8e\xd7\xd5\x8a\xa1\x4b\xda\x38\xc3\x62\x6f\xd8\x0c\x0d\x0f\x07\x43\xad\x5a\x6d\xd9\x47\x7d\xd6\x31\xad\x30\x23\xe0\x38\x73\x80\x0c\x52\x19\xfe\xe8\x8a\x97\x77\x69\x17\x69\xd6\xa1\x3c\xb7\x82\x69\x00\xd1\x79\x19\xbc\x84\x97\xc1\xcb\xae\xdf\x11\xac\x2d\xea\x84\x8e\xd7\xf5\x55\xa0\xc9\x03\x7d\xde\x24\x1e\x8b\x87\x3c\xd7\x18\x76\x17\x10\x54\x6d\x13\x36\x77\xba\x94\x3d\x36\xa2\x7c\x9b\x6d\xcb\xc0\x52\xe9\x61\x95\x3e\xfb\x63\xc4\x66\x32\xe0\xbd\x94\xdd\x72\x75\x19\x6f\x24\x31\xe3\xe8\x88\x36\x02\x0c\xd2\xff\x2d\xf8\x5b\xce\x96\x72\x97\x9a\x6f\x29\x82\x9b\x4b\xe7\x81\x94\xce\x83\xc6\xb7\xd4\xcf\x3b\xa9\x98\x93\x91\x59\xc3\x0a\x31\x5e\xd0\xa1\x16\xe3\xb9\x36\x8c\x65\xd5\x32\x7b\x50\xa9\xac\x38\x36\x29\xd9\x05\x99\x2b\x99\x88\x15\xa1\xd3\xd8\x13\xd2\x73\xc9\x54\x3b\x29\xe8\x31\x08\x6f\x07\x05\x02\x8b\x81\x83\x0b\x11\xee\x9a\xc7\x0a\x99\x27\xa8\xb6\x4c\x2e\x5a\x2c\x4b\x8a\x8f\xf6\x71\xdc\xa1\x5d\x82\x10\xb5\x3d\x5c\x67\x0e\xa2\x4e\x84\xeb\x1c\x37\x65\xb4\x95\xcc\x33\x20\xe3\x97\x37\xda\x6f\x76\x38\x30\x99\x4b\x94\xd8\x42\x2c\xb0\x19\x8c\xa4\x07\xa3\x78\xbc\x80\xe4\x26\xc4\x10\x91\x92\x5d\xaa\x79\xb8\x34\x2a\xd9\xa7\x26\xd7\x4d\xb1\xe0\xda\x29\x16\x1e\x78\xed\x0e\x97\x19\xa3\xbb\x7e\x78\x48\xa2\x76\x27\xee\x44\x8e\xd7\x05\xd6\xf5\x3b\xb1\x9c\x7b\x10\x77\xc2\xae\xfc\x90\x1b\x13\x62\x82\xfd\x44\x14\xe4\x3a\x08\x44\x15\x25\xc6\xe6\x17\xad\xa0\xc4\x63\x83\x12\x65\xbf\x6a\x6a\x0c\xaa\xa9\xf1\x29\x4a\xaa\x7d\xff\x4e\x0a\xac\x55\x10\x61\xae\xdd\xf0\x4a\x7e\xe2\x59\x8f\x91\xb0\x5d\xe4\x74\x1c\xc2\x8c\x10\xb3\xaf\xb8\x91\x8a\xa2\x34\xe9\x0d\xa3\xfc\xcc\x1d\x2f\x3f\xab\x4f\x37\xec\x65\x2d\xc3\xcf\xf1\x97\x0d\xaa\x2a\x28\x34\xd6\xd2\x58\x54\xc5\xc6\x3b\x5c\x91\x10\xef\x44\x82\x6e\x7e\xbd\x7a\xe1\xe4\x06\x7c\xc9\xd4\x25\x48\x93\xe2\xb7\x72\xb5\xfd\x1d\xc3\x0b\x9a\x79\xea\xc1\xab\xfc\x3a\x27\x82\x7b\x46\x10\xc5\xfc\xe4\xb3\xe8\xd1\x44\x64\x1c\xab\xf2\x47\x68\x5c\xbe\xbe\x40\x36\xc7\x18\x78\x1e\xf6\x49\x0a\x28\x55\x1d\x22\x70\x96\x4b\x41\x28\x8f\x06\xaa\x94\xd6\x14\xe5\xfe\x86\x88\x39\x9e\x80\x47\x0c\x3c\x79\x12\x88\x81\x89\xb2\xcb\xca\x25\xb5\x43\x0d\x55\x08\x40\x85\xdc\x60\x11\xd4\xe1\x07\xcc\xa1\x6d\xee\xcb\xe2\xf1\x60\x50\x8a\xc4\x69\x24\xe1\x40\xd4\x68\x2d\xc5\xa9\x11\x08\x6b\x7b\xbe\x21\x87\x31\x15\xf9\x3b\x2c\x93\x2d\x83\x08\xe2\x34\x3a\x98\xf4\xab\xdb\x92\xf9\xf4\xd3\x06\x31\x9c\x06\x84\x22\x24\x2e\xe2\x8b\x31\xec\x20\x76\x10\xd5\x6a\xf1\xa1\x9b\xc5\x0a\x4b\xb6\xfa\xf1\x8f\x34\x89\x59\x60\xb4\x8a\xa5\x7d\x12\xab\x3e\x59\x5c\x0e\xc3\x11\x45\xc1\x01\xab\xd5\xd8\x41\x64\x30\x7f\x08\xd3\x24\x12\x55\x1d\x7d\x8f\x16\x5d\xec\xc3\x01\xe2\x87\x84\xcb\x5d\xce\xbe\x3c\x6b\xd8\x61\x88\xe3\x7d\xcc\x33\x87\x4e\xee\x78\x78\x81\x01\x15\x55\x49\x62\xdb\x79\x48\xa8\xd8\x03\x45\x07\xae\x2a\x6f\xdb\xd1\x01\x71\xf7\xd5\x0d\x47\x14\xc4\x44\xdc\x61\x88\xe2\x7d\xbc\x9f\x1f\x1f\x3a\x4e\x74\x58\x00\x33\xa0\xe4\x79\x11\x93\xe1\xab\x7a\xc5\x88\x5f\xdc\xb0\xbe\x7f\x41\xb3\xd6\xd9\x1c\xc3\x2b\xe3\x36\x12\xdd\xf3\x82\x8a\xbf\xaf\xb4\x1d\x55\x3a\x7c\xe8\x85\x98\x21\x4a\xaf\x4d\x2f\x28\xab\xcc\x32\x55\x0a\x76\x00\x86\x55\x40\xad\x46\xc5\x26\xf5\xd0\x6b\xeb\x1e\x46\x51\xbb\x82\xf6\xc5\xf5\x6d\x4a\x88\xbb\xa8\x3a\x07\x4f\x3f\x0c\xb9\xa0\xa1\xb0\x1f\x4a\x53\xad\x05\x86\x50\xce\xed\x07\x94\x14\xc6\x49\x6c\xd9\xc5\x17\xbe\x88\x23\x3e\x44\xae\x9c\x16\xe2\xfe\x71\x3c\x65\x09\x72\x41\xfe\x2f\x8f\x11\x4f\x0b\x3d\x9a\x8e\x46\x9f\x68\xc0\x90\x0c\x11\x92\xdd\x61\x9b\x57\x94\xc8\x64\xc1\x02\xa8\x53\x2a\x5a\x2c\x97\x77\x5d\x19\x0a\x6f\x3d\xa0\xab\x7b\x3a\xef\xd9\x52\x7c\x09\xd5\xcf\x65\x4a\xe5\x85\x8f\x31\x4f\x25\x8b\xd5\x36\x29\xae\x53\x0c\xbc\xd4\x61\xfc\x9a\x0e\x93\x8e\x65\xc5\x3a\x4a\x88\x6d\x56\x97\xf9\xcb\xd4\x58\xc9\xbd\xcf\x57\x4a\x1e\x50\x78\x43\x09\x7a\x90\x3a\x5a\x41\xe5\xc0\xc9\x19\x7c\xa3\x51\x53\x2d\x97\x3d\xaa\x2e\xaf\x1f\xaf\x14\xce\x29\x14\xf2\x5a\xf5\xf2\x77\x94\x47\x73\xed\x70\xa6\x78\x64\xda\xb6\x2f\x94\xbc\x31\xd6\x95\x87\xe6\xd1\x4c\xe5\x68\xc9\xcf\x96\xb5\xcb\x2b\xec\xe8\x9b\x19\xc2\xf6\x6f\x0e\xc5\xb7\x7f\xbb\x7e\x60\xf2\x3e\x79\xa8\x3c\xd7\x32\x74\xf6\x6f\xf5\xd5\x7d\x82\xb8\x43\x9d\xbb\xf4\x4e\xfa\xf9\x82\x39\x7c\x8f\x23\x7a\x2c\x57\x01\xdd\x09\xe5\xa7\x18\x37\xef\xba\x77\x7e\xa7\x7b\x82\x0d\xbd\x49\x87\x54\x8e\xf4\x4b\x4a\x1e\x52\xe4\x62\x78\x22\x2f\x3c\x0c\xcf\xe5\x45\x0b\xc3\x23\x79\xb1\x8b\xe1\xbb\xbc\xb8\x83\xe1\x9d\xbc\xd8\xc3\x70\x5f\x5e\xdc\xc5\xf0\x98\x12\xf4\x52\x93\xc8\x13\x7d\xf1\x5c\x5f\x3c\xd2\x17\xdf\xf5\xc5\x3b\x7d\x71\xdf\x20\x2c\x4a\x0e\x2b\x28\x08\x32\x7b\xf0\xaa\x3e\xe2\xd9\xfb\x9f\xed\x91\xdf\xef\xde\xa1\x7b\x20\xeb\xce\x47\x52\xac\xd0\xef\x29\x79\x4c\xe1\x16\x25\xe8\xf1\x5a\xea\x57\x61\x01\x52\xba\x0c\x47\xa3\x30\xa1\xbd\x38\xea\x27\x02\x0d\xdd\xad\xcb\xe7\x27\xd9\x23\xd1\xc2\x14\x34\x9a\x72\x9a\x2c\x11\x68\x46\x0f\x8a\xe1\x53\x7b\xf7\x2e\xdd\xbb\x86\x12\x70\x53\x00\xad\x23\x74\xd5\xa7\x8a\xd0\xbf\x51\x72\x8b\xc2\x07\x4a\xd0\xad\x5f\xf7\x61\xd7\x7d\x85\xf8\xee\xeb\x3e\xe2\x2e\xbd\xb3\x76\xb2\xea\x1e\x93\x5f\xf1\x07\x25\x1f\x28\x7c\xa2\x04\x7d\xf8\xc9\xaf\xb8\xae\xc9\xe2\x23\xaf\x6b\xb2\x47\x77\xd7\x35\xf9\xdd\xdb\x07\x59\x0f\xc9\x56\x3f\xa3\xe4\x13\x85\xa7\x94\xa0\x4f\x95\xad\xc6\x3f\xae\x69\xd4\x3a\x36\xe9\x50\x99\x36\xeb\xe9\x9a\x55\x69\xa3\xf5\xbf\x92\xdb\xc9\x06\x98\xeb\x92\x5a\x89\x56\xac\x32\xa9\xf0\x92\x2e\x2a\x65\x90\xb4\x07\x99\xa3\xcc\xf0\xb0\xff\x94\x1a\xcb\xce\x6b\x4a\x9e\x1a\x8c\xf8\xe3\xb5\x8c\xf8\xdd\xdb\x07\x39\x2f\xd6\x37\x9a\x1d\xcb\xfb\x25\x8e\xfc\xee\xed\x83\x8d\x98\xb2\xc6\x46\x0b\xa8\xaf\x65\xcd\x26\xa3\x7d\x6a\x32\xda\xcf\x94\x7c\x94\x8c\x96\x72\x71\x21\x56\x6e\x79\xd1\xc2\xc0\xe4\xc5\x2e\x86\x48\x5e\xdc\xc1\x10\xca\x8b\x3d\x0c\xb1\xbc\xb8\x8b\x21\xe0\x04\x7d\xd6\x84\x43\xd3\xa3\x6f\xe0\xfa\x82\xe9\x8b\x48\x5f\x84\xfa\x22\xe6\xeb\x26\xc9\xdf\xec\x8e\xeb\x3a\x43\xf2\xd8\x6b\xe6\x89\xe6\xbc\x72\x9a\x24\x9c\x04\x1c\x46\x9c\xa0\xe0\xba\x76\x97\xa5\xc6\x1b\x7c\x4a\x51\x76\x34\x1f\x5c\x2f\x8e\x14\xa0\x9d\x65\x04\xd7\x7c\x6d\x41\x8e\xc4\x5b\x23\xfe\x6b\x05\x49\xb3\x86\xb2\x2c\x59\xa8\xdd\x14\x27\x8b\x9d\xb9\xc1\x34\xc9\xa7\xbb\x89\x73\xb9\x92\x0a\xd1\x72\xca\xc9\xc8\xb0\x6c\x97\x79\x4d\xc5\xa6\xcb\x3d\x20\xb4\x31\xab\xd5\x68\x63\x76\xe0\xb9\xae\xde\x04\x67\xfb\x44\xc7\x03\xda\x18\x03\x6d\xf4\x81\x36\x1e\x03\x6d\xbc\x00\xda\x38\x01\xda\x78\x6e\x6a\x7a\x0b\xdb\x82\x99\xb1\xa5\xcf\xf0\xd0\xc6\x6c\x25\x22\xc3\x70\x6c\xd3\x66\x89\x3f\x8d\x77\x6f\x1f\xac\x6b\x5f\xb1\x81\x45\xf2\xab\x6c\x63\x86\x74\x5d\x63\x4d\x9b\x33\x5e\x4c\xf2\xf0\x63\xe6\x53\x18\xfb\x1c\xfa\x3e\x83\xc7\xbe\x0b\x2f\x7c\x17\x4e\x7c\x17\x9e\xfb\xee\x62\x31\xe2\x06\x5b\x1a\x70\x98\x70\x18\x73\xb8\xe0\xe4\x87\xe5\x58\xf2\x2c\xd8\xb7\xb6\x2d\x70\x7d\xcb\xb5\x16\x70\xce\x49\xf3\xaf\x3f\x93\xfa\x9f\x7d\xbb\x09\x67\xe2\xe6\x76\x13\x66\x9c\x34\x3b\x7f\xfe\xf9\xd7\xad\xba\xdd\x9e\x77\xfe\xec\x22\xdc\xf8\xb1\xe8\x36\xcf\xf3\x71\x3d\xe5\xa5\xa8\x1a\x07\x6e\x3b\x45\x1f\x12\x14\xb5\x1d\xea\x53\xac\x0c\x1c\xc2\x92\xbf\x5c\x64\xa3\xf8\x80\x19\x67\x7d\xcc\x89\x8d\xb3\x3e\x3b\xf4\x43\xe3\xdb\x2f\x79\x61\x92\x69\xfb\x84\x19\x07\xeb\xcf\x3f\x6f\xd5\xcc\x74\x00\x47\x26\xa8\x11\x7b\xc8\xfa\x0b\xb5\x7d\xcb\x56\xf9\x83\x2f\xb9\x76\xaa\x9b\x5b\xd8\xb6\xb0\x05\x56\x68\x22\xb9\x2a\x23\x79\x11\x4c\x50\x9a\x7a\x58\xc9\xa3\x1d\x5a\x3c\x5e\x07\xde\x35\x07\xeb\xb8\xd4\x33\xe7\x3c\x8d\x42\xa4\xfd\x81\x81\xd9\x9e\x61\x03\xdb\x46\xb4\x71\x49\x6c\xe9\xd1\xc3\xe4\x4f\x16\x76\xcb\xf1\x0c\xcd\xe9\x4f\xa0\x9d\x5e\x8f\xf6\xed\x06\x68\x5b\x25\xb4\xef\xae\x47\xfb\xe2\x27\xd0\xbe\xbf\x1e\xed\xab\x9f\x40\xfb\xe1\x7a\xb4\xf7\x36\x40\x7b\xa7\x84\x76\x76\x3d\xda\x07\x3f\xd1\xda\x14\xad\x8d\xe4\xcf\xe1\xdd\xdf\xdb\xde\x3f\x5c\xd7\x6f\xd1\x5d\xbc\xae\xaa\xaf\xa5\xaa\x9a\x7f\xa1\xcf\x78\x8e\x3a\xb6\xd3\xfd\xb3\xff\x67\x1f\xa3\xb6\xef\xb7\x91\xbc\xc4\xed\xe6\x72\x33\xee\x96\x9a\xf1\x99\x44\x1d\xaf\xdb\x76\x7d\x07\x45\x9d\x56\xd7\x46\x51\x67\xb7\x3b\x9f\x5b\xae\x2b\x13\xcf\xad\x6e\xc8\x9b\x9f\x20\xd3\x6f\x64\xb7\x2e\x10\x3a\xbb\xeb\x30\x7f\xf9\x89\xde\x1c\xcb\x90\x5d\x8e\xb7\x0e\xef\xc3\x9f\xc0\xdb\xbf\x7e\xf0\x5f\x6e\x80\x76\x77\xa9\xb9\x2e\x6c\x84\xfc\xc9\x4f\xb4\xf9\xf1\xf5\x68\x9f\xff\x04\xda\x17\xd7\xa3\x7d\xf4\x13\x68\x4f\xae\x47\xfb\xfd\x27\x7a\xf8\xf9\xf5\x68\xdf\x6d\x80\xb6\x3c\x5d\x9e\x9b\x02\x9c\xc0\x2c\xb6\x8f\x6b\xe7\xc9\xfd\x52\x2d\x67\xd7\xcd\x93\x02\xae\x02\xaa\xc7\xd7\x35\xb8\xd4\xd8\xd7\xd7\xf7\xc1\xfb\x1b\xa2\x4c\xae\x47\x79\x8b\x17\x44\x6d\x21\x3f\xe4\x6a\x19\xe0\xd0\x32\x96\xd0\x6f\xd5\xb0\xa9\xaa\xa3\x04\xfc\x61\x2d\xf0\x6d\xaf\x35\x9f\x7b\xad\x52\x99\x3f\x96\xca\x78\xf6\x7b\x9a\x2a\xb8\xbf\x8a\x6d\xa9\x4c\x6a\x0c\xbb\x46\x99\x4f\xd5\xf5\x14\x35\x0f\xa5\x32\xcf\x8a\x65\x52\x14\xb6\xe5\xba\xae\x11\xb9\xe4\xe9\x0a\xcc\x5a\x15\x5a\x6a\xfc\xeb\x55\x0d\x49\x95\x28\x25\xf0\x8f\xd5\xe0\x27\x46\x93\x4d\xf0\xcf\xdc\x74\x7b\xd6\x5a\x4f\x3d\xda\x32\xfa\x47\xfb\x37\x9f\x1b\x5e\x91\xac\x8c\xff\x65\xa1\x27\x1d\x4f\xf5\xa5\x59\x09\x67\xeb\x2a\xe1\x87\xe4\xce\x7c\xae\xaa\xfa\x2e\x50\xf8\xdf\xa9\x3e\x24\x33\x3c\x29\x59\xc9\x8d\x5d\x22\x85\x53\x8e\xbe\x97\x47\xd2\x46\x77\x08\x21\xf2\x2e\xab\xac\xdc\xa4\x88\x95\x37\x73\x12\xcc\xf0\xb9\x5c\xfa\xce\x27\xd7\x7e\x67\xbc\x54\xa6\xa4\xc3\xbe\xed\xb9\x6e\xa9\x4c\xb0\x54\x06\xa5\xdf\x86\xaf\x2d\x9b\x5c\x5f\x1f\xbd\x03\x1c\xee\x98\x49\xb4\x58\x21\xf7\xe3\xd2\x68\xa8\x06\xb0\x6c\x4c\xd8\xd2\x98\x2c\xb5\x6b\xa9\x8e\x69\x79\xbc\xcb\xea\xda\x2d\xad\x54\x38\x54\xdb\x08\xc4\xeb\xc4\xf1\xc0\xb2\x2d\x8c\xed\x53\x8e\x78\xf3\xae\x3b\x77\xc1\x72\x2d\x68\xa9\x07\xb7\xef\xea\x5b\xc3\x0d\xa9\xfa\xf3\x33\x1d\x44\xa9\xb7\xfa\x2b\xc1\xab\x39\xcd\xf0\x3a\xf8\x6a\x66\x33\x58\x2a\xe6\xd9\x09\x4f\x49\x67\xca\x2b\x99\xcd\x64\x65\x55\x6b\xf9\xcd\xb8\x58\x2c\xc5\x52\xe6\x37\x17\xab\x91\xaf\x60\x39\xe7\x6b\x9a\x53\xcd\x75\xce\x56\x96\x58\xc5\x78\x66\x65\x1a\xd1\xfa\xbd\x35\xbc\xe7\x74\xa9\x96\xcf\xd4\xec\xd8\xaa\x39\x79\x79\x5d\x3d\x26\xfb\x89\x04\x16\x3f\xe2\xcb\xec\xe7\xa8\xcc\x7e\x2e\x35\xfb\x89\xca\x63\xab\xd8\x8f\xbc\x33\xeb\x2b\x37\xec\x6a\x89\x03\x69\x48\x63\x73\xb9\xdc\xad\xfc\xba\x0f\x3e\x59\x39\x14\x6b\x79\xc9\xdb\x2a\x3e\x74\x99\xf1\xa1\xeb\x8a\xbf\xd8\xa8\xd6\x25\x4e\xf1\x6a\x99\x1b\x95\xc7\x67\x99\x21\x95\x47\xa9\xaa\x81\x4b\x35\xdd\x63\x99\x45\x8b\x65\xbb\xc5\x19\xf2\xc0\x78\x77\xdb\x78\xfe\x95\x15\xe2\x9d\xe6\xbb\x1e\x56\xf6\xf6\x52\xa2\xa0\x4d\xa5\x20\x68\x6c\x62\x58\x49\xbb\xa0\x74\x56\x06\xc4\xc3\x02\x15\x2c\x85\x9d\xb5\xa9\x6f\x9b\x16\x1f\xc6\x86\x83\xa1\x42\x54\x4b\x19\xe5\x31\xcd\x9b\xfc\x10\x61\xe8\x91\x69\x6a\x4c\x04\x43\x32\xd5\x1e\xfc\x03\x32\x42\x56\xe3\xf6\x73\x0b\xc3\x44\x5c\xfa\xb7\x4f\x2c\x0c\x63\x71\x79\xfb\x89\x7f\xfb\x85\x85\xe1\x42\xdd\x6c\xdf\x9e\x58\x18\xce\xe5\x4d\xb0\x7d\xbb\x6f\x61\x38\x93\x37\x67\xea\x66\x26\x6f\xee\x5b\x18\x4e\xe5\xd5\x27\x0b\xc3\x25\xe9\x74\x02\xf0\xc0\xa3\xbb\x5d\xe8\x04\xb0\x07\x7b\xe9\x95\xb7\x07\x9e\xbe\xde\x75\x61\x97\xde\xe9\x42\x27\x06\x0f\xee\xa6\x57\x7b\xb0\x4b\xf7\xd4\xb3\x3d\xf8\x47\x7a\xb9\xeb\x82\xf7\xbb\xbc\x0e\xc1\x83\xdd\xbb\xe9\xe5\x2e\x78\xae\x7e\x7c\x17\x5a\x9e\x7e\xee\xb5\xe0\xce\x6e\x4b\xde\x44\xe0\x81\x54\x56\xcb\xeb\x16\x78\xbf\xb5\x54\x09\x26\xea\x94\x2a\xfd\x2e\x74\x38\x78\xd0\xda\xfb\x47\x8b\xde\x95\x37\xbb\xf0\xdb\x6f\xbf\xdd\x95\x37\x54\xd4\xe7\xed\xed\x8a\x3b\xc3\x62\xf2\x08\x25\x99\x42\x3c\x40\x09\x3e\x48\xda\x03\x3f\x56\x17\x13\x3f\x54\x17\x63\x3f\x52\x17\x17\x3e\x57\x17\x4c\xfd\x9c\xfb\x67\x3e\x55\x97\x33\xff\x14\x23\xd3\x52\xee\x0a\xa5\xa6\x4f\x99\x8b\xb7\x4a\x96\xef\xb9\x18\xf2\xe8\xc6\x3a\xfa\x6f\x1e\x2a\x29\x73\xa2\x88\x1c\x86\x9b\x1c\x02\x6d\x65\xfc\x96\x36\x02\x8c\x2a\x55\xd7\x9d\x56\x77\x81\x71\x83\x85\xe7\x43\x8e\x2e\x21\xce\xad\x90\x09\x21\x97\x79\x64\x81\x42\x1c\x26\xd6\x4c\xfb\x03\xa2\xec\x8a\x63\xe0\x84\x62\x3f\x10\xc0\x28\x20\x97\x9d\xb8\x79\xd9\x09\x1c\xaf\xdb\x69\x75\x0f\x2e\x3b\x81\xf8\x6d\xc6\xed\xc0\xf1\xfc\xa0\x8b\x3b\x9e\x0a\x91\xea\x76\xb1\x8f\x0c\x33\xea\x42\x35\x10\x09\xb4\x9e\xc0\x2c\xd3\xc4\x49\x75\x3a\x0a\x73\x5f\x54\x7d\x31\x5d\xe3\xd2\x98\x4d\x99\x9e\xf2\x68\x9c\xde\xc4\x5c\x70\x88\x0a\xfe\x87\x0f\x19\xc6\xfe\x10\x29\x27\xc4\x2f\x4c\x62\xab\x8e\xb1\xc0\x81\x91\x21\xc2\x60\x84\x1d\x33\x23\x00\xc5\x24\x3c\xc8\x42\x0a\xc5\x72\x74\x75\x8c\x12\xd9\x91\x88\x93\x2b\x44\xc5\x7c\xc6\xb8\xad\xbd\x21\x23\x19\x6c\xce\xef\x74\x21\x16\xcf\xb2\x38\x01\x5c\x37\x63\x39\x4e\x80\x61\xe1\xa3\x08\xa9\x7d\xe4\x8f\x64\x40\x96\x69\xc9\xc1\x3e\x5b\x18\x87\xb9\x48\x46\x65\x23\xa4\x01\x78\xc1\xe0\x1b\xe3\xf6\x10\x7d\x96\x2e\xcd\xd8\x9f\x0a\x5c\x2b\xdd\x75\xa7\x50\xc9\x9c\x44\x03\x0c\x9d\x06\x33\xfc\xfb\x53\xeb\xc1\x97\x0c\x7d\xa5\xf0\x85\xc2\x4b\x0a\xef\x29\x7c\xa3\xf0\x07\x85\x67\x14\x5e\x53\x98\xe4\x79\x98\x3a\xd9\xe8\xb6\xe8\x2e\xc8\x33\x8e\xd2\x93\x16\xee\x16\xed\x51\x97\x4d\x29\x65\x90\xa7\x80\xcb\x04\x68\xd2\xb9\x48\xdc\xc8\xc0\x8f\x5c\x3c\x09\x95\x0f\x5b\x18\xf7\x13\xe9\x50\xd3\x0f\x66\x09\x04\x84\x36\x92\x61\xcc\x84\xc0\x9c\xc8\x64\x46\x63\x21\x40\x25\x30\xd2\x2f\x5e\xa8\xfb\x29\x39\xe2\x28\x14\x3c\xf8\x4a\xfe\xf6\xc5\x7d\x8c\x61\x28\xee\x63\x0c\x03\x71\x1f\x08\x16\x7c\x25\x7f\xc7\xe2\x3e\x11\xac\xf7\x4a\xfe\x9e\x8b\xfb\x91\x60\xb8\x57\xf2\x77\x46\x7e\x04\x55\x2e\x7d\x41\x27\x97\xdf\xbb\x0b\xb8\x57\x05\x13\x17\x61\xce\xaa\x60\x46\x1d\x73\x07\xda\x5d\xc0\xfd\x2a\xa8\xa4\x0c\xd5\xf3\x55\x54\x62\xff\x16\x07\x2a\xfe\x0c\xfc\x67\x1c\xce\xfd\x80\xc1\x1f\xfe\x88\xc1\x63\xff\x1b\x87\x27\xfe\x07\x0e\x5f\xfc\x3f\x38\x3c\xf7\x3f\x71\x18\xfb\x4f\x39\xbc\xf0\x5f\x73\x98\x54\xd5\x11\x76\xec\xc2\x7e\xfe\x90\x78\x2d\x51\xd5\xb7\x2a\x60\xcf\xfe\xcf\xff\x2c\xec\x9d\x9b\xbb\x78\x01\xaf\xfd\xaf\x0c\x12\xff\x0d\x83\x13\xff\x23\x87\xa9\xff\x99\xc3\x3b\x9f\x32\x78\xef\x33\x06\x97\x7e\xc4\xe0\x83\x1f\x32\xb8\x52\xad\xff\xa8\x7e\x66\x7e\xcc\xe0\x93\x9f\x30\xf8\xec\x4f\x19\x58\xb7\x2d\xff\x01\x5b\xc0\xe9\xfa\x9e\xd7\xb2\xca\x35\x9d\x6f\x80\xad\xeb\xff\x5c\x22\xbf\x66\x08\x0a\x80\xd9\x28\xf4\x18\x50\xf1\x67\xe0\x8f\x19\x9c\xfb\x6f\xc5\x28\xbc\x12\xa3\xd0\x67\xf0\xc4\x1f\x32\xf8\xe2\x0f\x18\x3c\xf7\x27\x0c\xc6\xfe\x05\x83\x17\xfe\x39\xbb\x66\x14\xf2\xbd\xce\x86\x03\x91\xb7\x6c\x69\x2c\xce\x18\x4c\xfd\x19\x83\x77\xfe\xa9\x18\x8b\x23\x31\x16\x57\x62\x2c\x8e\x97\xc7\xe2\x44\x8c\xc5\x0b\x31\x16\xf7\xf2\xb1\xb8\x2c\x8e\x85\xa9\xb0\x1a\xac\xd7\x57\x5d\x92\x89\xcc\x3b\x26\xb5\x55\x85\xc3\x9c\x2a\xa5\x5d\x61\x28\xcd\x5a\xfa\xd7\xd5\x32\xbc\x49\x2d\x67\x2b\x6a\x39\x5f\x5f\xcb\x98\x9c\xdd\xa4\x96\xfb\x2b\x6a\x19\x5f\x57\xcb\xc5\x4d\x6a\xe9\x99\xb5\x98\xf1\xa7\x8f\x33\x9b\xee\x05\xf4\xfd\x87\x82\x4f\x3c\x14\x7c\xe2\x9d\xe0\x13\x0f\x38\xfc\xe1\xdf\xe3\xf0\xd8\x7f\x22\xf8\xc4\x13\xc1\x27\x5e\x0a\x3e\xf1\x5d\xf0\x89\x2f\x82\x4f\x3c\x2f\xf2\x09\xf3\x0b\xa6\xeb\xbf\x60\x42\x7a\x37\xf9\x82\x6f\xfe\x1b\x0e\xaf\xfd\xc7\x1c\x12\xff\x3d\x87\x13\xff\x91\x60\x1d\x27\x82\x75\xbc\xe5\xf0\xde\x7f\xc1\xe1\xd2\x3f\xe6\xf0\xc1\x7f\xc5\xa1\xe8\x3e\x57\xfa\x5c\x26\x9f\x2c\xe0\xe3\xaa\x94\xfd\xc7\x72\x91\xe7\x32\x68\xdf\x4c\x74\xc2\x27\xd1\x09\x9f\xfd\xaf\x5c\x92\xfa\x7d\xbe\x30\x05\x4e\x73\x3d\xcf\x10\xea\x4e\x48\x03\xda\x77\xba\x90\x10\x19\xc0\xcf\x85\x69\xe6\xfe\x99\xe5\x9b\x29\x6c\x29\xe6\x73\xd3\x86\xdd\x66\x32\x47\x40\x72\x30\xdd\xc7\xbb\xbf\x29\xaf\xf4\xdc\x45\x54\x06\x84\x0a\x32\xef\x79\xd9\xcf\x23\x48\xb0\x4e\x4e\x83\x42\x72\xc1\x3b\x51\x5a\xe8\x1e\x47\xb6\x9d\xe0\x2e\x6e\x97\x9e\xf8\x21\x49\xe3\x40\xca\x90\xd8\x96\x6b\x01\x8a\x65\x7e\x6a\x95\xb7\x25\x46\x4c\xc8\x3c\x10\xe8\x54\x7a\x30\x92\xfe\xf8\x99\x58\x5a\xd5\x82\x20\xcf\x2b\x62\x4a\xd1\xd7\x76\x17\x19\x72\xe4\xfd\xc3\x75\x75\xfe\x7b\x4f\x06\x20\x3c\x46\x31\x50\x60\x32\xbd\x8c\x8b\x77\xf2\x6c\xc8\x86\x24\x25\xdd\x9e\x5f\x5b\x61\xb4\x1d\xe3\xb2\x9c\x19\x37\x5e\x4b\x3c\x56\x52\xfd\xde\xa3\xbb\xf5\xb8\x91\xd8\xc8\x7a\x2e\x01\xda\x71\xe3\xb9\xef\x62\x9d\x52\x7f\x07\x59\x9f\x55\xc1\x5a\x0d\xc5\x8d\xcf\x44\x48\xfd\x13\xf9\x44\x3e\x78\x4c\xe2\xc6\xe3\xdb\x5e\xcb\xf6\x5a\xf5\xb8\x31\xc1\x90\x39\x95\xc6\x8d\xb1\x84\x18\x13\xeb\x9b\xc6\xfc\xcd\x17\xc5\xdf\x2b\x84\x62\x43\x11\x37\xde\x1f\x78\xf3\x79\xdc\x78\x7f\xb8\xb7\x5b\xf8\x24\xeb\x52\x42\xcd\xe7\x28\x6e\x5c\x12\x0f\x43\xda\x0e\x29\xd0\x47\xa4\xcf\xd1\x90\xa3\xb8\x31\x93\x62\x16\x2e\xe8\x33\x84\xe8\x7a\x98\xee\xc9\xc3\x36\x4d\x77\xe3\x11\xf6\xc5\xa4\x13\x6f\x13\x9e\x3a\x33\xa0\x08\x7e\xab\x8b\x46\x48\x73\xcc\xb8\x31\x23\xd1\xd2\x8e\x1d\xc4\x27\x44\xc5\x25\x04\xe2\x46\x3f\x7b\x96\x5a\x28\x89\x76\xda\x77\xf1\xed\xdf\xe4\x16\x02\x45\xa4\x57\xd1\xc4\x8a\xf6\x3d\xa1\x59\xfb\x9e\x50\xd5\xbe\xf7\x74\x7d\xfb\xaa\x1a\xb7\xd4\xb2\xa5\x66\xc9\x28\x60\xc8\xfa\x90\xf6\xab\xf5\x2e\x1b\xd7\x62\x5f\x5b\x53\x3d\x5c\xd3\xdb\xbf\xf9\x29\x7c\xdb\x13\x43\x17\x12\x3d\x0a\xa5\xfe\x37\xbb\xdf\xef\x2d\xbf\x53\xdf\x1d\xcb\x83\x45\xd1\x42\x8d\x35\x6b\x9d\xfd\x5b\x3d\x6e\x7c\x70\x50\x68\xef\xe1\xdb\xbf\xf9\xe2\xb1\x78\xf2\x4e\x3c\x91\xad\x4f\xa7\x5c\x46\x05\x71\xe3\xb1\x4d\xe2\xc6\xe7\xa6\xe7\xba\x73\x81\xf4\x85\xbc\x95\x0a\xa0\xbe\x90\x65\x65\x3b\x62\x73\x0e\x1e\x1b\x6e\x3c\x3a\x8e\x87\xe4\x52\x32\x76\x87\xf6\x81\x1a\x65\x53\x6c\x3f\x38\x48\x54\xf4\xd0\xe8\x90\x8c\x52\xea\x74\x3c\x31\x33\x24\x47\x92\x39\x92\x0c\xa6\x14\xd8\x36\x56\x81\xda\xf4\x8b\xf4\x21\xec\xa0\x98\x5c\x76\xc2\xed\x30\xda\xbe\xe0\xed\xc2\x3b\x3f\xec\xca\xc0\xb0\x24\x4e\x17\xa8\x3c\xf0\xbb\xe3\xa9\xc0\x6d\x02\xa1\x98\xf8\x46\x55\x91\xa8\x2a\x83\xd2\xf3\x46\x5f\xcc\x1a\x57\xe4\x08\x31\x98\x61\x98\x35\x3e\x92\x23\x14\xa9\xcb\x1e\x39\x42\x5c\x5c\x9e\xa6\x00\xa7\xe2\x52\x01\xc8\x4b\x05\x70\x8a\x41\xfb\x66\x2f\x6f\x4e\x8e\xd2\x54\x57\x33\xc3\xd8\x68\x9d\xcb\xf7\x02\xf8\x02\x26\x01\x4b\x68\x05\xb2\xab\x14\xd9\x8e\x77\x13\x6c\x53\xde\x7b\x74\x5d\xf3\x4e\x6f\x88\xf0\xd5\x75\x2d\x74\x6f\x80\x70\xb1\x40\x3f\xf4\x16\xce\xb7\x6e\x5f\xc1\xf6\xed\x8f\x16\x88\x27\xbe\x75\xdb\x19\x37\x6f\x3b\xfd\xe6\xed\x4f\x16\x70\xf5\xde\x79\xe2\xdf\x7e\xe1\xdf\x3e\xd9\xbe\x3d\xb1\x20\xdd\xdb\xf9\x1d\xeb\xde\x0b\x0b\xac\x57\x2f\xac\x2e\x88\x3d\x9e\xdf\xb1\x4e\xa6\x51\x3f\x98\x59\x60\xbd\x88\xd3\x8b\xb7\x53\x9a\xa8\xab\x0f\xb4\x1f\xe9\xeb\xb7\xc3\x29\x4b\x2f\x1f\xb1\x50\x5d\x9c\x04\x7c\xca\xc4\x65\x17\xb2\x8d\xa2\x42\xa9\xf0\x29\x64\x0a\x91\x42\xa1\x4a\xab\xa2\x56\x17\xd4\x86\xd2\xef\x58\x4f\x83\x68\x1a\x30\x89\x9c\x9e\xb1\xf4\xf2\x45\xc0\x7a\x43\x0b\xac\x7b\x13\x16\x8e\xe4\xbd\x78\xfa\x74\x1a\x51\xf9\x33\x12\x77\xf7\xa6\xe7\xd3\x84\x0b\x84\x74\xc2\xa9\xd4\x1b\x81\x75\xdc\xe3\xb1\xba\x7a\x19\x5f\xe8\x87\x0f\x69\x4f\x5d\xa6\x8d\x7d\x61\xd4\xad\xea\x55\x55\xaa\x0a\xcd\xea\x54\x6d\xaa\x32\x55\x93\xaa\x43\xe1\x57\xa8\xa5\x53\xfe\x84\x93\x01\xd7\x6e\xf9\x03\xde\x90\x14\x0a\x63\xf9\x34\xa3\x2f\x50\x37\x92\x36\xa4\x11\xdb\x73\x56\xed\x57\xa4\x57\x81\x9f\xb0\x10\x35\xfc\x54\x8c\x73\x8f\x0d\x6c\x43\x0b\xde\x2a\xe6\x91\x89\x76\x58\xb9\xce\x7e\xf4\x3a\x03\xd2\xdc\x73\x05\x1e\x31\xf2\x9c\xc1\x77\x46\xd0\x73\x76\x9d\xb1\x6c\x7a\x0e\xb3\xf6\xbb\x7f\xa9\xe3\x41\xbe\x15\x94\x86\xbd\xef\x18\xf9\xce\xe0\x3e\x23\xe8\xfb\x75\x6d\xd5\x27\x40\x1b\xb4\xf4\x17\x38\x17\x98\x87\x54\xb2\xa5\x8f\x19\xb9\xcf\x72\x89\xfa\x7d\xb5\xde\x69\xca\xe1\x11\x83\xcf\x14\x12\x0e\xef\x18\x3c\x66\xa9\xde\x69\x6c\xe8\x9d\x32\x3b\xce\x4c\xef\x54\x7a\xb2\xa4\x77\xca\xac\x21\xd8\x72\x22\x2a\x99\xe1\xd0\x83\x84\xbc\x82\x51\x21\xd4\xdb\x74\x45\x00\x88\xd0\x4f\x90\x3a\x00\x69\xec\xf9\x88\x13\x14\xc9\x98\xed\xb8\xce\x60\xd4\xae\x4e\x00\x2b\xa3\x28\x9a\xd6\x8a\xbd\x15\x01\xa1\xd2\x60\xcb\x5b\xab\x74\xa2\xa8\xc3\x20\xea\x12\x0e\x09\xa1\x32\xc1\x10\x4c\xb1\xdf\x49\x90\x8b\x21\x41\x1e\xee\x2e\x72\xad\x6c\x59\xd3\x1a\xae\xf3\xe5\x8f\x21\xe8\x92\x10\x28\x89\x50\x4c\xec\x58\x46\xe5\x41\x01\xb1\x03\x19\x23\x4c\x9e\xc9\xb9\xbe\xd7\x94\x23\x2f\xab\x14\x05\xa4\xf2\x71\xf3\x48\x6c\x23\x19\xc2\x6d\x2a\xb3\x2b\x4d\x0b\xa9\xd0\x37\xcd\x35\x25\x4b\x27\xa2\xb4\x72\xa9\xed\xa1\x63\xac\x6f\x54\xf0\xb9\x1e\x3a\x11\x4f\x6e\x14\x52\x3b\x54\x78\x43\x23\x75\x53\xde\x57\x91\xec\x95\x10\xc9\x2e\x09\x51\x75\x7f\x18\x52\xd7\x37\x76\x7d\xaa\xb5\x62\x6a\xf9\xe2\xed\xcd\x73\xab\x7d\xc8\x68\x9a\x3c\x45\x82\xc0\xd1\xab\x0d\x82\x39\xca\x76\x7e\x90\x7c\x11\xe2\xb5\x91\x37\xff\x60\x66\x08\xd6\x5b\xec\x27\x62\xb0\xca\xca\xfe\x60\x55\x41\x58\xd7\xd7\xfd\x89\x99\x81\x46\x65\xdd\x9b\x55\xf6\x89\xad\x0b\x35\xba\xbe\xd2\x67\xcc\x0c\x8d\x79\x83\x4a\x9f\xb1\x75\xc1\x31\xd7\x57\xfa\xd4\x60\x87\xcf\xd8\x8d\x42\x63\xbe\xce\xdb\xdb\xe9\x02\x37\x53\xe9\x31\x9d\x7f\xdf\x88\xe5\x92\x45\x81\x41\xa8\x98\x4c\x90\x81\x87\x1d\x0f\x37\xb3\x04\x89\x62\x1b\x96\xc7\xc1\x2f\xf3\x13\xbe\x3e\xc8\x4c\x16\x27\x7e\x8b\x2e\x05\x99\xe1\x2b\x82\xcc\xd0\x72\x90\x19\x6a\x06\x99\x61\x0b\x60\x3f\xc1\x36\xcc\x88\xf9\x25\x4f\x7c\x63\xc5\x92\x86\xe6\x82\xa1\x92\x43\x8e\xa2\x62\x1f\xc8\x28\xfd\x15\x51\x65\xf2\x69\x6e\x1c\x54\xfd\x48\x4d\x05\xb9\xed\x2d\x20\xc5\x98\x07\x1c\x0a\x44\x47\x47\x4d\xae\x70\xae\x20\xa6\xd7\x0c\xe5\xab\x1d\x35\x48\x87\x55\x92\xce\x47\x7d\x76\x9f\xe5\x89\x92\x67\x5a\x14\x28\x39\x56\xf1\x90\xd4\xa9\xbe\x0b\x11\xc9\x0f\x92\x20\x54\x01\x1c\x0b\x71\x63\x64\xf0\xfa\x08\xcb\x8c\xd1\x2a\x9b\x34\x45\xf2\x5c\xac\x63\xdb\xac\x22\x2d\x65\xb6\x71\xa8\x5a\xf6\x22\xc7\x33\xfd\xe9\x69\x9d\x44\x46\x10\xea\xb8\xc3\xbb\x88\x16\x63\xdf\x7f\xae\x58\x9e\x21\x80\x84\xb8\x30\x22\x8d\x3d\x98\x12\x0f\x7a\xc4\x83\x3e\x79\x05\xc3\xc2\x5a\x3d\x58\x91\xc9\x21\xf0\x11\x25\x8d\x3d\x1b\x89\xfb\x18\x51\x8c\x1d\x8e\xeb\xa8\x57\xa7\x07\xbd\x3a\x6f\x47\x7e\x88\xa1\x8f\x86\x2b\x96\x6d\x19\x50\xde\xe4\xb5\x93\xf5\xcb\x36\x84\xeb\x17\x6e\x08\xc5\xd2\xdd\x27\x72\xc4\xd2\x07\x18\x06\xd8\xef\xf4\xc5\x0a\xde\x17\xf3\x1a\xfa\x85\x75\x7c\xb0\x34\xef\x82\x75\xeb\x78\x02\x23\x98\x76\x49\x00\x94\xc4\x28\x21\x76\x22\x96\xad\x18\x8d\x88\x3d\x92\xd1\xf2\xd1\x94\xd8\x53\x0c\x51\xb6\x86\x35\xf6\xd2\x45\x2c\x24\x5c\xca\x34\xea\x11\x73\x38\x86\x1e\xe1\x07\xb4\xed\x78\xbe\x27\xdb\xa8\x70\x2f\x60\x70\x93\x45\x7f\x28\x17\xfd\x81\x4c\xc6\x3f\xf8\x89\xd9\xdb\x27\xb2\x74\x5f\x94\x56\xb3\x77\x22\x16\xfd\x81\xb9\xe8\x4f\xc4\xa2\x3f\xb8\xd9\xa2\x1f\x28\xbc\x81\xb1\xe8\xe7\x1d\x1b\xcb\x0e\x0c\x90\xec\xbd\x00\xc9\xae\x0b\xd0\x4f\xf5\x9b\x41\xdd\x34\x32\x16\xea\xcf\x37\x5a\xa8\x69\xb4\xc1\x12\xc2\x23\x73\xa1\xfe\x5c\x58\xa8\x1b\x1e\xdc\x64\xad\xe6\xd1\xcd\xd7\x6a\x16\x99\x6b\xf5\xe7\xcd\x97\x4d\x16\xfd\xfc\x5a\x1d\x45\xe6\x5a\x7d\x83\x4a\xa3\xe8\xe7\xd7\xea\x42\x40\xb1\x68\x93\xb5\xfa\x7e\xba\xf4\x2c\xa0\x7c\x16\x61\x4d\x13\xba\x9d\x70\x16\xf6\xb8\xb5\xc5\x1a\x4c\x66\xb5\x68\xf4\x11\x07\x2b\x60\x3d\x0b\xd0\x72\xfb\xef\x89\x3d\x6a\x06\x43\x83\x4a\xa0\xe7\x06\xd0\x28\x8c\x68\x25\xd0\x13\x03\x68\x12\x56\xc3\xbc\x2b\xd5\xf6\x26\xe8\x87\xc1\xa8\x12\xf4\x83\x01\xca\x24\xd8\xbd\x55\xcd\xfb\x50\x6a\xde\x1a\xac\xdf\x96\xb0\x3e\x5f\xf5\x3d\x26\xe8\x24\x0e\x23\xbe\x06\xed\x1f\xc5\x16\x7c\x7d\x1c\xb3\xf0\x7b\x1c\xf1\x15\xe0\x94\x96\xe0\xdf\x53\xc6\xc3\xde\x0a\x68\x5e\x86\x5e\xd3\x10\x66\xc2\xaa\xc8\xb8\x95\x70\xa7\xcb\x70\x49\x25\xe0\x6c\x19\xf0\x41\xc8\x7a\xa3\xea\x3e\x8b\x2a\xa0\x59\x9c\x54\xa3\x0e\x97\x81\x1f\x86\xc1\x38\x8e\xfa\x95\xe0\xc9\x32\xf8\xc9\xb7\x69\xc0\xaa\x5b\x32\xac\x80\xe6\x01\xab\x84\xed\x2f\xc3\xbe\x65\x61\x10\x9d\xaf\xf8\xca\xc9\x32\xfc\x87\x59\x35\xe8\x99\x09\xda\x9b\xb2\x0b\x7a\x3f\x48\xc2\xe4\xc1\x28\x4e\x68\xf5\x67\xbe\xad\x2e\x71\x3c\xa1\x51\x25\xfc\xab\x6a\xf8\x4a\xd8\xe3\x65\xd8\xe9\x78\xf2\xb1\x12\xf6\x41\x25\xec\xa7\x4a\xd8\xaf\x15\xb0\x51\x7f\x45\xef\x7d\x59\x02\x7e\x10\xb0\x7e\x18\x05\xa3\x35\xbd\xf2\x68\x65\xa1\x95\x1d\xf3\x6e\x65\x91\x6a\xf6\x55\x01\xce\xc7\xd3\xd1\xe8\x4d\x3c\x5e\xd3\xb0\x6f\x6b\x8a\xad\x6c\xda\x1f\x6b\x0a\x55\x16\x78\xbf\x54\x40\xb0\xad\x80\xad\x69\xd8\xb3\x15\x45\xaa\xc7\xa4\x0c\xfb\x22\x8e\x62\x1e\x47\xb4\x9a\x36\x22\xbe\x0a\xbe\x9a\x3e\xc2\x25\xf8\x97\x01\x9f\xb2\x15\x23\x91\x2c\x41\x9f\x70\x3a\xa9\x04\x9d\x56\x82\xde\x1b\x70\xba\x62\xa6\x57\xc2\xdf\xa7\x83\x78\x05\x1b\xe9\x99\x05\x12\x1e\xf4\xbe\x56\x82\x5d\x2c\x81\x29\xa7\x88\xa3\xab\x49\xb0\x82\x9d\x9d\xaf\x28\xf2\x30\xbc\xa0\xec\x3c\x8c\xce\xab\xf9\xc9\x8a\x52\x2f\xe3\x15\xab\xd8\x70\x45\x81\x93\x70\x34\x8c\xa7\x94\xf3\xea\x62\xb3\x15\xc5\x3e\x84\xe7\xab\xb8\xe2\xe9\x72\x11\xd6\xa7\xec\xde\x64\x42\x03\x16\x44\xbd\xea\x52\x97\x2b\x4a\x25\x3d\x1a\xf5\x57\xf5\xc2\x55\x75\xa1\x87\x74\x6d\xa9\x93\xea\x52\x4f\xa2\x24\xec\xd3\xe3\x29\xaf\x66\xc7\xd5\x85\x56\xf6\xf7\xa0\x1a\xfe\x8d\xb2\xf1\xac\x2c\xf2\x42\x14\xd9\x92\x72\xea\x76\x1a\x59\xf2\xd5\x13\x08\x49\xab\x1e\xc9\xf4\xb6\x1e\x75\xee\x16\x13\xb4\xc9\xa4\xcb\xa7\x57\xae\x4a\xe2\x7c\x3a\xd3\x17\x57\x9e\x7e\xe2\xc9\xa8\x7f\x2a\xff\xf6\x29\x31\x53\x6c\x27\xa8\x60\x50\x1b\x2c\x02\x23\xab\x75\x62\x5c\xff\x90\x2d\x62\xd3\x1e\x8f\x99\x1f\xc0\x38\xbe\xa0\x6f\xe3\x52\x88\x69\x85\xdf\x26\xd6\x0b\x2b\x4d\x0e\x9d\xb7\xea\xca\x13\x9b\x66\xdb\x82\xec\x55\xd6\xce\x99\x47\x6c\x8e\x17\xd0\x13\xec\xeb\x55\xc0\x87\xbe\xd1\x2b\xca\x0a\x25\x43\x52\xab\xa1\xd2\xc7\x5d\xb9\x90\xa1\xd1\x88\x21\x6b\xc9\x67\x0b\x2f\x40\x48\x81\xab\x1b\xfb\x3c\x6f\xec\x72\x1b\xd3\xa6\x7d\x9b\x06\x7d\x16\xf0\xb0\xf7\x40\x70\x89\x12\x2e\x75\x10\x9e\xe1\x7b\x6d\xd9\xdb\x36\x95\x58\xb6\x6d\x6e\x62\x13\xf8\xd9\x12\xfe\x08\x2f\xe0\x8c\x7e\x0f\x29\x5b\x85\x1c\x42\x88\x8d\x0a\x1e\x2c\x57\xb0\x6d\xb3\xf4\x37\x2a\x57\x18\x2e\x55\x18\xe3\x05\x04\xac\xb7\x5c\x91\xac\x86\x12\xdb\x0c\xbc\x1b\x12\x3b\x84\x98\xd8\x71\x9a\x37\x4c\x23\x86\x24\x1b\x3d\x18\x11\xe6\x50\x98\x92\xd0\xe1\xd0\x23\x81\x43\xa1\x4f\x12\x87\xc3\x90\xf4\xea\x3d\xbb\x5f\xef\x6f\x85\x03\x14\x1f\xb8\x98\x0f\x59\x7c\x29\x09\xed\x88\xb1\x98\x21\x2b\xa2\xe7\x01\x0f\x2f\xe8\xb6\x90\xbe\xa7\x89\xbf\x6d\xd9\x2a\x5b\xa8\x52\xe2\x65\xb5\xe1\x2a\xd2\xf2\xc8\xd2\x60\x71\xbc\xa5\x0f\xfa\x87\x87\x62\xa6\xe0\x70\x90\x27\x21\xe8\xd7\x47\xce\xb4\xde\xc3\xf2\x4d\xad\x96\x06\xca\x1c\x10\xe6\x04\x30\x21\xa1\x93\xc0\x98\x8c\xea\x23\x7b\x5a\x9f\xc2\x05\x19\xd4\x07\xf6\xa4\x3e\x81\x73\x92\xe7\xf7\x19\x63\x38\x33\x6e\x87\x18\x66\x24\x56\x71\xd3\x79\x10\x21\x94\x66\x77\x0c\x7a\x71\x82\xd0\xd8\x1e\x3a\x17\xb8\x89\x5a\xf5\xf3\xfa\x19\xc6\xb8\xd9\xc2\x70\x4a\x66\xcd\x33\xb8\x24\xb3\xe6\xf9\x56\xd6\xae\x53\xc7\xd3\x6d\x42\x05\xb2\xa4\xf6\x69\xbd\xa7\xbf\xd1\x3e\xad\xf7\x31\xce\x49\xfb\x9e\x65\xc7\xf2\x95\xf8\xeb\x82\x2b\x87\x1f\xf5\xeb\x83\xc3\x5e\x7d\x82\x4b\x64\x40\xed\xcb\xfa\x68\xa9\xb7\xec\xcb\xfa\x34\xcd\x69\x57\x3d\x1d\x2a\x3a\x58\xd2\x4e\x99\x72\x52\xd7\x94\x9c\x76\x46\x64\x67\x47\xa5\xda\x9f\x12\xa5\x82\x55\xbd\x24\x3a\x26\xc0\xd0\x23\x2c\xcd\x9a\x14\x46\xe2\xbe\x4f\xa8\x3d\x85\x21\xe1\x76\x0f\x06\xc4\xfb\x6b\x04\x13\x32\x6a\x07\x4e\xe2\x27\x4e\x20\x63\x98\x6e\x48\x3d\x0c\x6f\x95\x48\xa7\x6d\x92\x4e\x5f\x7e\xce\xd0\x37\xf2\x9e\xa5\x60\x4e\x5f\x0d\xc1\x7c\x5e\x7a\x35\xf3\x9c\xa1\x7a\x85\x4b\xc3\x93\x22\xc3\x32\x48\xe8\xe4\xc0\x15\x7f\xc9\xe4\x76\x68\x87\x18\x26\x87\x71\xdb\x1c\x29\x35\x3d\x99\x1c\x29\x0f\x2c\x7b\xa0\xfa\x95\x3a\x53\xdd\xc3\x8e\x18\xe8\xd5\x90\xd9\x90\xf4\xcb\x43\x32\xc4\xfe\x64\x89\x7a\x4a\x88\x24\x69\x4c\x0e\x49\xa4\x0a\x97\x71\x52\x9b\xe5\xc3\x93\xe0\x65\x3a\x31\x46\x2b\xc1\x4a\x6b\x4d\x7b\x7c\x1d\x17\xfc\x99\x25\xc0\xb6\x86\x29\x2b\xbb\x48\x59\xd9\xd0\xb2\x1d\x66\x5b\x9f\xad\x05\x68\x53\x11\xbf\x62\x4b\x2c\x71\x2c\x54\xb4\xa2\x11\x49\x60\x5a\xa5\xa8\xab\x32\x31\x59\x40\x2f\x73\xaf\x81\x7e\x7a\xc9\x83\xa8\x05\x43\xa2\x3b\x04\x06\x99\x0a\x5a\xa7\xb6\x1c\x87\x11\x8c\x89\xee\x12\xb8\xc8\x59\x82\xe6\x16\xaf\x9e\xc0\x19\x39\x6f\xb6\x60\x46\x5a\x75\x33\xc8\x8e\x79\x96\x7d\xe8\xb5\x5d\x9f\x1e\x38\x5e\xfb\xdc\xcf\xf9\x86\xe9\x01\x76\x59\x00\x27\x5e\xfb\xcc\xa7\x07\xc4\xf1\xda\xce\x59\x5a\x22\x51\x7a\xfc\xac\xc4\x51\xe1\xb0\x3c\x8c\x22\xca\xde\xc8\xd9\x51\xb0\xa0\x34\x40\xe2\x29\x5f\x06\x39\x2e\x80\x24\x3c\x60\xfc\x9e\xd8\x00\x1b\x2e\x88\x05\x08\x1a\xf5\x4b\xef\xdf\x9a\xef\x6b\x35\xda\x98\x04\x65\x90\x17\x65\x07\x12\xc5\x8f\xf5\x6a\x12\xa5\xab\x49\x28\x57\x93\x18\x86\x44\xf0\xef\x5e\x7d\xaa\xb2\x90\x0e\xeb\xc3\x03\x8f\x3a\x5e\x4b\x9f\x3a\x75\xa8\x8d\x86\x04\xf5\xea\x88\x3b\x31\x76\xfa\x75\x44\x9d\x10\xe3\xe6\x10\xd7\x47\xc0\xed\x61\x7d\xda\x35\x9c\x12\x8b\x75\xab\x9a\x13\x42\x1d\x06\x23\xc2\x9d\x08\xa6\x04\x05\xed\xd8\x77\x62\xdc\xbc\x40\x49\x3d\xb1\x47\xf5\x91\xf4\xb8\xab\x8f\xa0\x4f\x9c\x69\x3d\x81\x21\xa1\x76\x0f\x26\x84\xdb\x7d\x18\x13\x66\xf7\xe0\x9c\x44\x76\x1f\xce\x08\x1a\xda\x63\x2c\x07\x1f\x4d\xec\x73\x71\x75\x4a\xc6\xce\x10\x2e\xc9\xb9\x33\x81\x23\x72\x5a\x3f\xb5\x2f\xeb\x97\x70\x45\x42\x27\x86\x63\x32\xac\x9f\x3b\xe3\xfa\x04\x4e\x08\xba\x3c\x70\xa5\x7a\x17\xd7\x2f\xd0\x00\xb9\x70\x55\xbf\xaa\x1f\x39\xc7\xf5\x63\x8c\xe1\x2d\x41\xc7\xf5\x4b\xe7\xb4\x7e\x82\x9b\x47\xf0\x82\x20\xe7\xb8\x7e\xea\x5c\xaa\xdb\x57\xf2\xa5\x9d\xbe\xbc\xa7\x5e\xda\xe9\xcb\x07\xe4\xad\x73\x06\x5f\xc9\x0b\x67\x06\x6f\xc8\x2b\xe7\x0c\xbe\x90\x7b\xce\x4c\xeb\x33\x1f\xd4\x1f\xd8\x5f\xeb\x5f\x0f\xdf\xd4\xdf\xd8\x5f\xea\x5f\x6a\x35\xf4\x96\xbc\x82\x17\xe4\x1e\x86\x1f\xbd\x2b\xff\x2d\xf4\x66\xfe\x0b\xb8\x72\x3d\xdf\xe9\xc1\x4c\xfc\xf4\xe1\xca\xf3\xfc\xb7\x75\x14\x36\xaf\x1c\x0f\xc3\xcc\xf3\xfc\x17\xfa\x6e\x21\x43\x07\xdf\x33\xf5\xa3\x4a\x8f\x7a\x04\x9c\x5c\x01\x23\x53\xe4\x62\x88\x94\x50\x1a\x92\x63\x88\xc9\x09\x04\xe4\x2d\x24\xf2\x91\x79\xf4\x92\xba\x3b\xc2\x00\x8e\x88\xad\xd3\xfa\x89\xf9\x6e\x26\x34\xbb\x22\x36\x5f\xf1\xea\x98\x84\xd5\x6f\x9c\x33\x38\x21\xf1\xca\x77\x6f\x49\x0f\x9d\x38\xc7\x18\xee\x91\x93\xc3\x63\x41\x71\xc9\x7c\x8e\x12\x32\x25\x23\x84\x31\x5c\x1d\x1c\xc9\xa4\x4e\x57\x70\x45\x8e\xe0\x88\x0c\x30\x5c\x1d\x2a\x6a\x0c\x07\xe8\xed\xe1\xcc\x51\x37\x49\x43\x09\xca\xe8\xaa\x3e\x44\xc7\x18\xae\xea\x63\x24\x46\x32\x69\x04\xac\x27\x2d\x7b\xae\xe0\x18\x4e\x60\xe7\x1e\x86\x23\x85\xa0\x56\x43\x59\xa9\xa3\xfa\x10\x9d\x60\x38\xaa\x8f\xd1\x49\xa1\xd4\x11\x9c\xc0\x31\xdc\xc3\x38\x4f\xc7\xf4\x00\xbe\xc2\x1b\x72\x0c\x5f\xc8\x09\x3c\x24\xc7\xf0\x92\x9c\xc0\x13\xf2\x16\x9e\x93\xb7\xf0\x88\x04\xd5\x5f\xda\x6c\xc1\x77\xf2\x28\xab\x38\x6a\xdb\x51\x35\xa0\x7f\x81\x8e\xea\x47\xf6\x55\xfd\x0a\x63\x78\x47\x26\xa8\x87\xae\x9c\x23\x51\xde\x66\xd5\x25\x64\xba\x16\x78\x4c\xde\x89\xce\xfb\x9e\x76\x8e\x6c\xe9\x7b\x72\x89\xbe\x37\xc5\x47\x3d\xc2\x18\x6e\xc9\xbb\x2b\x75\xb7\x8f\x9e\x38\xa4\x55\x7f\x8f\x15\x7c\x1b\x3d\xb4\xc9\xfb\x3a\xb9\xd7\xf6\x7c\xc7\x83\x97\x0e\x79\x8f\x7d\xf4\x84\xb8\xf0\x90\xbc\x24\xe8\xd8\x3e\x91\x42\x15\x7a\x2e\x0a\xdd\xca\x0a\xbd\xb1\xc9\xad\xac\xd0\x17\x87\xdc\xc2\x3e\x7a\x4e\x5c\x78\x43\xbe\x64\x85\x24\x89\x7e\x23\x62\x5c\xde\x60\xf8\x40\x44\x03\xde\x60\xf8\x83\x88\x3e\x7f\x89\xe1\x13\x11\x0d\x7c\x29\x85\xd1\x77\x66\xeb\x9f\xc1\x53\x59\xea\x0b\x86\xd7\xb2\xd4\x17\x0c\x1f\x65\xa9\x87\x18\x3e\xcb\x52\x0f\x65\xa9\xb7\x07\xe7\xb5\x1a\x7a\x46\x5e\xa0\x6f\xf0\x01\x3e\xc2\x67\x78\x0a\xaf\xe1\x0f\xf8\x84\x71\x3a\x1f\x28\xf9\xe6\x3c\x93\x5e\x78\x94\x7c\x70\x9e\x75\xbc\x2e\x30\x4a\x9e\xaa\x67\x11\x25\xaf\xd5\xb3\x90\x12\xaf\x39\x46\xa7\x08\x51\x5a\x67\xd4\xe6\xb4\x1e\x51\xdc\x44\x17\xe2\x9e\xca\x7b\x4e\x05\xbf\x60\xf2\x75\x24\x5f\x2b\x71\x33\xa6\xe4\x02\x09\x74\x75\xf1\xc7\x16\xe8\xea\xe2\x0f\xde\xba\x4f\x26\xe8\x1d\xa0\x23\x27\x16\xa8\x42\x2a\xed\xa2\x1f\xab\x87\x57\xfa\xa1\xed\x61\xbc\x58\x3c\x4f\xfb\xf5\xb1\xee\xdf\x07\xe4\x15\x12\xdf\x23\xbe\xeb\x0a\x1e\xc3\x3d\x0c\x5f\xc9\x2b\x94\x7e\x9e\x7e\x94\x51\xf1\x83\x46\xef\xca\x7e\xd0\xb8\x72\x3d\x78\xd0\xe8\xcd\xec\x07\x8d\x99\xeb\x61\x78\x7c\xf0\xae\xad\x28\x5a\x00\xc8\x57\xf0\x18\xfa\x48\xbe\x06\x09\x8f\xa1\x8f\xbe\xca\xdb\xaf\xea\x76\xe7\x1e\xf6\xd1\x06\x85\x1e\x34\x66\x9e\xbc\xf5\x54\xa1\xc2\x84\x13\xaf\x55\x33\x24\x8c\x6a\x9c\x97\x56\xd6\x9b\xd9\x5f\xe5\x8b\xaf\xe2\xc5\xd7\x32\x06\xf1\x54\xbc\x52\xb5\x6a\xc8\xac\x74\xb1\xa9\x58\x36\x36\xed\x85\x6f\xf0\xa1\xd8\x8c\x37\xf0\x45\x02\xf9\x45\x90\x8c\x0d\x3c\x49\xbb\xfb\xbe\xd9\xed\xa2\x7f\x45\x3f\x1f\x81\x73\x5f\xf7\xbb\x26\x2f\xfd\x2c\x69\xa8\x0d\xef\xaa\x8e\xbf\x5f\xd1\xf1\xf7\x7f\xa6\xe3\x2b\x0a\xad\xe9\xf8\xa3\x9f\xe8\xf8\x8a\x7e\xbf\xbf\x51\xbf\x9b\xd5\xbe\x84\x87\x70\x4f\x3c\x4a\xbb\x45\x4c\x41\xb5\xe9\xc9\x7a\xde\x05\x57\xce\xd9\xa4\x91\x29\x21\x10\x86\x69\x96\x08\x41\x2d\x55\x53\xdb\xb2\xe6\x73\x19\x18\x33\x3b\x42\xef\xd1\x88\xb3\x38\xec\x97\x17\x3b\x46\xd0\xaa\xf5\x4a\xec\xda\x57\xf0\xcc\x66\x0b\x22\x82\xec\x15\x6b\x96\xbd\x6d\xaf\x58\xb1\x70\xb3\xe5\x9c\x37\x5b\x3a\x5d\xc8\x10\x45\xb8\xce\x60\x2c\x7f\xba\xea\x74\x3c\x13\x04\x37\x4d\x1a\x92\xe7\x19\xcf\x9d\xd2\xdb\xdc\x9f\xca\x3c\x07\x03\x99\x4f\x64\x60\x4a\x8f\x9b\x9a\xcc\x54\xe0\xa5\x6d\x2a\xf0\x52\x89\x97\x4b\x33\x80\x98\x55\x34\x78\x7d\x56\x96\xeb\x10\x33\x81\x78\x12\xf4\x6f\x82\x35\xca\xb2\xe0\x8b\x5f\xff\xba\x2a\x22\x51\x45\x2e\x2e\x6f\x6a\x24\x78\x1d\xda\x50\xa0\xd5\x32\xf6\x66\x48\xe3\x6b\x91\xc6\x69\x77\xdc\x00\x69\x70\x2d\xd2\x40\x0d\x5e\xc4\xe9\xd5\x86\x89\xa4\x93\x62\x0f\x4b\xd3\x89\x64\x01\x83\x05\x3c\x48\xf3\xec\x64\x4a\x48\x65\xf6\x05\x5f\x2b\x10\x5b\xb1\xb4\x83\x32\x5a\x55\xab\x59\xaa\x0a\x2b\x8c\x64\x1b\x0b\x49\x7b\x0c\xff\xbb\x37\x02\x8b\xda\x42\xea\x86\xd3\xc5\x1b\x53\xf5\x19\x30\x1a\x9c\x88\x41\x35\xf7\x9e\xaa\x84\x60\x29\xc4\x5d\x80\x00\x39\x8a\xfa\x2b\x00\x5e\x06\x2f\x95\x16\x72\x05\x16\x79\xa0\x2c\xd0\x08\x98\x12\x1a\x94\xe3\x99\xcf\xdd\x4c\x15\x2a\xee\x6b\x35\x2f\x53\x74\x48\x14\xb8\x56\x2b\x7c\x48\x81\x9b\x19\xed\xf1\x9c\xfc\x66\x01\xb2\x68\x49\x3b\xaa\xf3\x6d\x66\x0a\x1d\xb3\x16\x99\x80\x71\xdb\xf5\xcd\xc6\x7b\x06\xfe\x76\xb1\x11\x29\xdb\x15\x78\xfd\xe2\x9b\x94\xfb\x8a\x37\x46\xaa\xc6\x6d\xaf\x80\xb9\x95\x65\x61\x5c\x89\x76\x91\xee\xfd\xbf\xac\x0a\x14\xf1\xa6\x38\xe4\x0f\x0b\xa1\x32\x5c\x63\x5f\xf8\xb2\xf0\xc6\xeb\x4a\x31\xf1\x49\x29\xf4\x82\xe2\xef\x53\xb4\x63\xee\x62\xbe\xa4\xb9\x75\x4c\xdd\xbc\xde\x57\xc2\x14\x7a\xd0\x27\x28\x20\x5f\x51\x90\x25\x20\x4b\xed\xcc\x62\x96\x6a\x3b\xa3\x5a\x0d\xc5\x24\x44\x3d\xb9\xc7\xc0\x90\x10\x77\x3f\x39\x20\xfd\x7d\xdb\x4e\xf0\x0e\x4a\x0e\xfa\xb5\x1a\x43\x53\x12\x74\x92\x2e\x24\x10\x60\xac\x12\xc6\x22\x34\x24\x3b\x43\xdc\x8e\x1b\x19\x89\x21\xec\xab\xbb\xa3\xa8\x2f\xf6\x2b\xc3\x5a\x2d\x6e\xc8\xee\x44\x36\x45\x53\x59\x1a\x6c\x9e\x5e\xc9\xa5\xaf\x87\x33\x0b\x25\xf9\x45\xbd\xa5\xc5\xae\x72\x49\x10\x33\x2b\x4f\xe5\xdb\x7e\xe8\x4f\x11\xc5\x50\xc9\xe5\xc5\xea\x91\x1b\x12\xb6\x5f\xfa\x53\xc4\x31\x04\x8d\xab\x5f\xb2\x22\xe9\x14\x7d\x95\x71\xb9\x6f\xbc\x0e\x05\x72\x1d\x0a\x1a\x7d\x3a\x08\x23\xba\x61\x22\xf1\x35\x4b\xd0\xce\x8e\x42\xca\x64\x72\xc0\x29\xbb\xd8\x78\x6d\xa0\xa9\x23\xae\xa6\x8e\x08\x4b\x44\xa1\xca\x32\x78\x03\x46\x9b\xb1\x59\xa2\x46\xd8\x97\xd8\x88\x6a\x57\xb4\x80\x60\x01\xcf\x49\xd9\x86\x48\xf9\x61\xa7\x24\xae\x28\x3e\xa5\x8f\x80\x7c\x59\xda\xaf\xf7\xd0\x54\x15\xe9\x41\x1f\x86\x30\x80\x09\x8c\x09\x9a\x92\xaf\x68\x9a\x53\xfd\x05\xd9\xf1\xe0\xdc\x30\x0d\x95\x4a\x75\xf3\xd6\x98\x13\xb1\x4c\xf7\x1d\xa0\x49\x3a\x27\x7a\xc4\xdd\xef\x1d\x90\xf1\xbe\x6d\xf7\x94\x91\x30\xea\x1d\x8c\x6b\xb5\x10\x0d\xc8\xb4\xd3\xeb\x42\x0f\xa6\x72\x5e\x5c\x88\x8d\xf8\x05\xd9\xb9\xc0\x7d\xd2\x93\x42\x64\xca\xc3\x91\x16\x90\xd3\x3b\xb5\x83\x16\x35\x26\xf9\x8c\x29\x82\xc0\x90\xf4\x1c\x6f\x7f\x78\x48\xfa\xfb\x8e\x33\xc4\x49\x3a\x95\xce\x3b\xc3\x2e\x9c\x75\x86\x5d\xbc\x55\x2c\x9b\xae\x06\x08\x2f\x2e\x6a\x35\x74\xde\xe9\x75\x89\x4d\xd1\x40\x36\x0e\xce\xe4\x2d\xd7\xb7\x1a\x99\xd8\x7b\xa7\xcf\x7c\x51\x02\x58\xdb\x66\xfa\x81\x28\x83\xf1\x22\x1c\xa0\x49\x49\x26\x9d\xe4\xd3\x34\x1b\x86\xbe\x61\xc7\x80\xb0\xa6\x61\x14\x62\x45\x79\x28\xc0\x9a\x72\x50\x8c\x6f\x3a\xbb\xed\x75\xd3\x7b\x8a\x8c\x09\xee\xfa\x62\x5e\x56\x4e\x0a\xd6\x66\x39\x5e\x26\x59\x81\xcd\x30\xf4\x7e\x11\x2f\x48\x29\xb6\x27\x59\x42\xaf\x71\xe5\xfe\x12\xac\x19\x3a\xef\xd7\xcb\x8e\x3d\x39\x05\x7b\xbf\x88\x7b\xb1\xec\xfb\xb9\x44\xea\xfe\x12\xac\x19\xba\x0d\xbf\x9f\xdd\xec\xfb\x99\xc0\x2d\x66\xd1\x47\x97\xa8\x8b\x4f\x6e\x85\x89\x65\x1f\xe1\xc6\x15\xa2\xb8\x31\x93\xf1\x8e\x52\x48\x6f\x3d\x24\xcb\x20\x3f\xae\x86\x8c\x72\x9c\x37\x62\xfb\x6b\xe4\x77\xc9\xf6\x7b\x92\x5b\xf7\x6e\xc2\xf6\x83\x8c\xed\x6b\x06\x18\x63\x89\x28\x90\x88\x7e\x86\xed\xc7\x44\x71\x0c\x5f\x62\x23\xaa\x5d\xf1\x02\x7a\x0b\x78\x54\x1d\x5a\x2a\xb5\x34\xe6\x87\xb4\x2d\xfe\x12\xda\x76\x7d\x29\xc9\x7e\xaf\xcc\x56\xb3\x80\x77\xcb\x1a\xdf\xef\xc0\xc9\x23\x4d\x8f\x91\x52\xfc\x8a\x85\x64\x26\xd6\x11\x71\x57\x29\x2e\x8d\x94\xc0\x04\xc3\x25\x91\x69\x40\x5c\x98\x18\x8b\xc5\x10\xc3\xb8\x78\x7b\x41\x56\xe9\x30\xf5\xd9\xcc\x38\x8c\xd0\x0c\xf2\x64\xd7\x33\x58\xa5\x23\xbe\xc0\xd9\x79\xaf\x28\x94\x9d\x0c\x9e\xe3\xe6\x10\x56\x6d\xc5\xe1\x94\x9c\xd5\xd1\xb9\xd6\xe3\xcb\xc5\x4c\x89\x72\x43\x29\xc9\xa1\x3e\x19\x77\x26\x9d\xa4\x4b\x12\xb9\x2c\xe4\xe2\x9c\xcc\x44\x3f\xb0\x49\x3f\x5f\x01\x77\x08\x6f\x4f\x94\xa7\x8a\xe9\x2f\x69\xe6\x8b\x1c\x77\x68\x17\xc6\x1d\xd6\xcd\xd2\x76\xec\x10\x56\xab\x55\x94\xca\x87\x96\xa1\x40\x94\x0a\x3a\x5c\x96\x92\x6e\x10\x53\x32\x68\xa3\x73\x67\x58\x3f\xc5\xcd\x81\x9f\xb5\x17\x2e\x48\x0f\x8f\x88\x68\x30\xf4\xc8\x85\x8d\x64\xfb\x47\x5d\x7c\xe8\xb6\xfb\xf5\xa9\xef\x62\xfb\x14\xc4\x03\xf2\xa3\x1f\xf0\xc0\x0f\x3a\xa3\x2e\xc8\x0c\xa6\x7e\x02\x17\xc1\x68\x4a\xfd\x3e\xe4\x5b\x62\xff\x02\xf4\x46\xd6\xef\x81\xde\x7e\xfa\x67\x0b\x7d\x16\x31\xce\xf3\x5d\xcb\xd2\xbf\x54\x38\x14\x5d\xf2\x5e\x60\xdd\x58\x5b\x41\x35\xf1\x6a\x89\x50\xa0\xd8\x94\xff\x89\xbd\x93\x2e\x2c\x25\xbf\x9b\xaa\x06\xa2\x6b\xa5\x54\x21\xb8\xdd\x50\x35\x70\x8d\xbe\x41\x0b\x97\x37\x53\x0d\x5c\xa3\x6f\x08\x24\xaf\x09\x16\x70\x9f\xbc\x47\x5f\x8c\x59\xff\xd8\xd8\x7d\x4b\xfe\x68\x1c\x10\xbe\x17\xef\xb2\x3b\x6e\xe6\xb5\xa4\x97\xa2\x24\xe2\xb9\x17\x19\xcf\x10\x80\x11\x4e\xf6\x96\x19\x0c\x4e\xbe\xcf\x6d\xf8\xa5\x49\x2f\xa1\x8d\x2b\xe8\xd3\x11\xe5\x74\x5b\x5c\xd2\x86\x32\x26\x20\xb4\x31\xcb\x9f\xcf\x80\xde\x80\x7d\x73\x24\x5a\x8e\x7d\x8e\x70\xda\xa8\x05\xd0\xc5\xe3\x0d\x55\x0a\xb2\x80\x29\xaf\xae\xd1\x2e\xe4\xb0\x4a\xdc\x5c\xa7\x64\x50\xb0\x86\x58\x5b\xa9\x6e\x28\xc3\xa6\x78\xab\x74\x04\x26\xa8\x92\x61\x79\x6e\x26\x20\xa4\xc4\xba\x93\x19\x15\x50\x8c\xd3\x3d\xfa\xb7\x8a\xf5\xf7\x16\x12\x72\xaa\x12\x4e\xef\x63\xbc\x80\x0f\xcb\x2b\xc9\x73\x03\x02\xb2\xd1\x94\x71\xfd\x94\xd0\x20\x23\xfb\xa9\x25\x5e\xc6\xf6\x53\x12\x84\x0c\xed\xa7\x44\x84\x6b\x47\xde\x98\x9d\xb4\x71\xe5\x1a\x2f\x5d\xc8\xcf\xb8\xc5\x3b\xcf\x78\xe7\xad\xa1\x19\x53\xed\x4a\x1b\x33\x03\xe5\x4c\xa0\x34\xb5\xa7\xb4\x31\x33\xb0\xce\x04\xd6\x6c\xac\x4a\xf3\xd0\xe8\x37\xe5\x65\x9b\x15\x4b\x7b\x22\x1b\xba\xd5\x05\xa3\x8a\x82\xba\xce\x27\x55\xca\x62\xa3\x6c\xb8\x5c\xf6\x93\xae\xf4\xb8\x4a\x21\x6c\x94\x8d\x2b\xca\x7a\xbf\x60\x76\xc1\x1f\x95\x42\x4c\x47\x39\xd6\xe7\xd6\x2d\xd4\xd1\x06\x1a\xcd\x96\x20\x51\x83\x60\xbb\x86\x86\xe8\x53\xd1\x00\x22\x9e\xb2\x9e\xc1\x98\x9e\x15\xde\xf2\x80\x9d\x53\x83\xe7\x3c\xcd\x79\xce\x27\x60\xe4\x19\x44\xe4\x21\x84\xe4\x65\x85\x82\x28\x4f\xd5\xfc\xa0\xd1\x0b\x46\x23\x64\x48\x2b\x53\x52\x38\x25\x48\xa4\xd5\x54\xf1\x89\xb4\xab\x9b\xcf\x51\x4c\x02\x75\x2e\x4d\x51\x0c\x45\xf1\x07\x25\x1d\xb7\x4b\xa6\x32\x9e\x56\xf1\x5c\x21\xc1\x95\xa0\xbd\x4a\x50\xc1\xc1\x8b\xfa\xa1\x60\x49\x3f\x14\xa4\xfd\xb4\xf9\xd2\xaa\xd7\x54\xd5\x83\x9b\xaf\xaa\x7a\x39\xbd\xfa\xa5\xab\xe8\x86\x7b\xaf\x0d\x97\xcf\x1b\x09\xe9\x71\x59\x09\xae\xd7\xcb\x8c\x56\x5e\xe7\x06\x2b\xf8\x07\xd5\x9a\x53\x0e\x0c\x03\x6d\x14\xcc\x47\x11\x27\x88\xdb\x11\x6e\xb6\x64\x9c\xba\x50\x16\x31\x5c\x7a\x6f\x80\x08\x18\x41\xcc\x0e\xe5\xb1\x54\x5a\xc4\xf0\xa8\x35\x11\x09\x32\x8e\xc9\x1f\x0a\x4f\xa0\x2e\x74\x59\x21\x5e\xfe\x81\x22\xf1\x66\x24\x2f\x42\xbc\x95\x55\x1c\x4b\x47\xe1\x8e\xd7\x5d\xae\x3e\x10\xaf\x82\x8e\xd7\x05\x41\x98\x90\x88\xab\x91\xb8\x1a\x09\x70\xc3\xf9\x91\xe6\x0c\xe6\x29\x7a\x6d\xba\x2d\x16\xde\x7c\x34\x3d\x0a\xa9\xe9\x30\x89\x7f\x56\x28\x90\xea\xe1\x88\x92\x1f\x7d\x16\x5c\xfa\x55\x5a\xe2\xdc\x58\x94\x37\xcf\x8d\xef\x66\xe0\x8a\x2f\xd6\xa7\x94\x0c\x5c\x98\xe1\xc5\x02\xc2\x4d\x91\xed\xe1\x66\x2b\x47\xe7\xec\xd6\x19\x38\x72\x0c\x53\xbd\xb8\x53\x71\xbf\x5b\x37\x9f\x54\x3d\x30\x6f\x97\x50\x8a\x07\x45\xf8\xe2\x5d\x11\x9b\x53\xf1\xa0\x70\x9b\xa1\x33\x4e\x29\x16\x0b\x88\xa9\xf1\x9d\x5e\x73\x17\x43\x40\x49\xab\x1e\x53\x48\x36\xed\x9b\x80\xca\x08\xcd\xf5\x98\xe6\x3d\xe4\x16\xbf\x25\x52\xfd\x9f\xde\xb9\xc5\x96\xa5\x2f\x8b\xed\x1a\xd1\xcc\xe2\x0f\x9d\x37\x3d\x17\x37\xb3\xdb\xdf\xea\xf2\x01\x4c\x0d\x90\x99\x78\x52\x1f\x51\xe8\x51\x92\xcb\x41\xd9\xd3\xfe\x66\xdf\xd2\xf8\xfd\x1f\xee\xef\xde\xae\xfb\x0f\x6f\xaf\xf5\x8f\xd6\xef\x7b\xad\xba\x54\x6f\x4d\x69\x9d\x41\x48\x7a\xb4\xce\xd6\x7c\x61\x98\xbb\xe8\xc7\xc4\xdb\x8f\x0f\xf6\xf6\x6d\x3b\xb5\x7a\x0e\xc8\xac\x1e\x37\xf7\x20\x21\xa6\x5d\xee\x88\x18\x56\xb9\x5b\x19\xaa\x91\xa0\x84\xa4\x30\x98\x49\x3d\x72\x46\xf5\x10\x46\xf5\xc8\x4e\xea\x21\x5e\x94\xbb\x6b\xb8\xe1\x60\x89\xcf\x71\x98\xa4\x65\x46\x7b\x1c\x45\x92\xd5\x30\x81\x62\x60\x52\xc2\x2e\x86\xc9\x3a\x94\x8e\x49\x00\x68\xb7\x3e\xa0\x18\x9b\x7d\xd3\x2a\xd2\xe2\x80\x96\xa9\xdb\x78\x52\xfc\x92\x71\xb1\x19\xcd\x16\x5c\x50\xe2\x35\x0d\x22\x6d\x61\x38\xa7\x64\xb7\x8e\x2e\x68\xb3\x65\x7b\x18\xce\x36\x66\x09\x8a\x52\x9b\x2d\x08\x09\xab\x5f\x50\x21\x23\x40\x20\x2f\x6d\x06\x09\x71\x62\x18\x91\x20\xff\x0e\x31\xa8\x79\x93\x63\x08\xcc\x21\x81\x91\xf9\x85\x8d\xbd\x7a\xe4\x8c\x69\x3d\x84\x31\xad\x47\xb6\xb8\x0f\x4b\xef\x63\xf1\x3e\x10\xef\x63\xf9\x3e\x28\xbd\x4f\xc4\xfb\x91\x78\x9f\xc8\xf7\x4b\xf8\x6d\x89\x5f\xa2\x16\xa0\x51\x19\xbf\x2d\xf1\x4b\xd4\xe2\x7d\x5c\xc6\x6f\x4b\xfc\x12\xb5\x78\x9f\x2c\x77\xfe\x8c\x92\x4e\x44\x21\x14\xb3\x1f\x86\x62\xde\xc0\x84\xc2\x19\xed\xc2\x29\xad\x3c\x96\x2b\x8a\x58\x7a\xff\x10\x49\x23\x72\x15\x18\x35\x15\x95\xaa\xd5\x37\x0d\x31\x6c\x88\xc1\x4a\x13\x0d\x88\xb4\x20\xa4\xb5\x5a\x9b\x1f\x94\x4d\x11\x9d\xcf\xa3\x8d\x15\xe8\x77\xef\x48\x0d\x7a\xd4\x90\x7b\xc6\xbf\xab\x07\x11\x98\xa4\x1a\x24\x6a\x24\xe1\xf7\x8d\xa5\xb4\xb5\xc2\x4e\x24\x05\xb8\xe8\x66\xc2\x0e\x2b\x0b\x3b\x91\x14\xe7\xa2\x05\x5c\x16\xf6\x2a\x66\x8c\x5c\xaa\x0f\xa4\x68\x7e\x00\x5c\x94\x16\x50\xab\x4e\x1b\xa7\x57\xae\x4d\xa5\xc3\x48\x73\x17\xd4\x93\x99\x7c\x32\x53\x4f\x14\x84\x82\xcc\x9e\xcc\xd2\x27\x05\x98\x3b\x0a\xc6\xe6\xb8\x79\x57\x43\xdd\x51\x50\x36\xc3\xcd\xbb\x66\x5e\x07\x5a\x65\x41\x70\x45\xff\xa5\x26\x04\x57\xcb\x5e\x5f\x86\x71\xfd\xcb\xe0\x25\x5c\x6f\x6a\x90\x1e\xfa\x2f\x1f\xf5\xef\xfa\x47\x54\x4d\x84\xcc\xfd\x47\xa3\xc6\xea\xc8\xbe\x55\x7d\x38\xbf\x0c\xbe\xf8\x5f\x7b\x06\xf3\x55\xab\xf0\x6a\x17\x2a\x6b\x42\x7b\x75\x3d\xc8\x76\xe6\x11\x25\xc8\x52\x3f\x9f\xe9\xe7\x82\x84\xef\xe2\xcc\x60\x42\x8f\x9a\xb4\x91\x58\xa2\x13\xc8\xfd\x3f\x60\x89\x64\x0c\xa7\xba\x54\x71\x73\x5c\xc9\x32\x22\x7a\xa9\x26\x80\x31\x5b\x4f\x2a\x27\xc4\xc9\x8a\x09\x71\x49\x33\xd2\xbf\xa4\x37\x23\xf1\xab\x96\xbe\xd8\xd5\x17\x77\x2a\xa8\x3f\xbd\xd0\xc0\x33\x0d\x3c\xbb\xf3\x77\x27\x86\x57\x4d\x00\xba\x75\xba\x13\x5b\x18\x56\xd2\x71\x15\x35\x94\xd0\x65\xf8\xec\x96\x26\x84\x5d\xc9\xaa\x34\xfa\xec\xf9\x4c\x3c\x2f\x57\xa6\xa9\x48\x17\xcd\xb1\xb4\x4c\x2c\xf9\xf3\x59\xab\x02\xcb\x8a\x26\xef\xaa\x26\xa7\xfa\xbf\x15\xdf\x5d\x78\xab\x89\x7c\xb6\x5b\xf5\xf6\x8e\x7e\x7b\x47\xac\xfe\xbf\x74\x2a\x5f\xb5\x72\x42\x6f\x11\xbe\x66\x86\x42\x46\x55\x59\x81\xdd\x62\x81\xea\x79\x7b\x75\x27\x2f\x70\x87\x70\x58\x3b\x9a\x62\x3d\xd1\xf4\x6c\x53\x39\x9f\xb3\xd9\xac\xdf\xcc\xd4\x02\xa4\x7b\xfc\x9f\x32\xaf\xdf\xae\x9c\xd7\x27\xa5\x79\xfd\xa2\x72\x5e\xbf\xf8\xef\xb7\xd0\xad\x5d\x83\x76\xff\x7d\xd6\xa0\x9f\x5b\x44\xb6\x52\xfb\xe3\x95\x74\x16\x91\x95\x94\xb6\x75\xdd\xaa\xc7\xa4\xcc\x57\x45\xd7\xe2\x4d\x05\x67\x48\x5b\x75\xe7\x9f\x43\xbc\xaf\x56\x12\xef\x0b\x45\xbc\xbd\x51\x90\x24\xdb\xf7\xa8\xe9\xbf\x5e\x38\xbe\xd0\x74\xac\x2b\x26\x7c\x61\x9c\xbd\x14\x49\x37\x3b\x68\x29\x13\xac\x71\xaa\x52\x32\xe9\xcc\xce\x50\xfe\xf9\x86\x9c\x8a\x8f\xfe\xfb\x89\x3b\x45\xf3\xcd\xab\x12\xfa\x92\xca\x51\xd3\x43\x4e\xbd\x54\xec\xb8\x35\x29\xe8\x51\x72\x81\x43\x45\x8b\xaa\x91\xe5\x84\x94\xd3\x3d\x17\x58\x73\x12\x2b\x51\xa3\x49\x7b\x46\x98\xb5\x07\xb4\x44\x64\xf7\xc4\xbe\x64\xc7\x35\x36\x03\x5f\xab\x41\x3c\x03\xe4\x0d\x35\x09\xf0\x2c\x48\xc2\x84\x64\x62\x54\x5a\xf1\x19\xe5\x01\xe1\x8b\x37\x05\xde\xba\x8e\x2b\xca\xf8\x9c\xaa\xcd\xf9\xa5\xc4\x7d\xed\x91\x9f\x52\x83\xa6\x78\x80\xeb\xd9\xa6\x8e\xd6\xd2\x90\x8e\x72\xfb\x7c\xe8\x62\xad\x4f\x8a\x20\x24\x54\xc5\x78\x94\xa1\x1e\x03\x42\x3b\xac\xeb\x84\x90\x10\x2e\x2e\x62\x18\x11\xc7\xdb\xb7\xed\xd1\x01\x61\xfb\x38\x22\xa3\x26\x2b\x34\xca\x5c\xf4\xc5\xc7\xd6\x69\x67\xd4\xb5\x91\x26\x68\xf1\x08\xd7\x51\x68\x47\xf5\xc0\xec\x93\x3a\xaf\x02\x8b\xed\xa8\x9e\x60\xbc\x95\x4d\xe1\xb4\x23\x8c\xa8\x17\x79\x57\x5c\x7b\xa2\x79\xa5\x42\x85\xda\xd9\x60\xcc\xd2\x07\x5c\x9f\x61\x7e\xc9\xb9\xce\x36\x15\xfb\xf1\x5c\xaf\x6c\xa6\x4c\x52\xf9\x46\xf5\xc8\xfa\xd2\x10\x59\x8d\x7d\x1e\xfa\x54\x0e\x74\xc5\xd6\x9e\xca\xea\x80\x2d\x50\xe3\xf7\x3d\xe3\xbc\xfc\xe1\xf5\x3b\x61\xb5\x71\xa5\x8d\xd3\xaf\x75\x79\xdd\x72\xe4\x96\x16\x83\xda\xbd\x66\x2f\x66\xf2\xc5\x4c\xbd\xb8\x6a\x19\x25\x3c\x87\x2b\x68\xe3\xe1\xcc\x53\xba\x31\x21\xde\xc9\x57\x66\xa2\x4a\xba\x8e\xa5\x7e\x25\x62\xbc\x70\xf3\xee\xe2\xe5\x7f\xb5\xa8\x90\x6d\x18\x2a\xb7\x07\x7f\x73\x33\xb0\x7e\x0f\x6c\x08\xc5\xc5\x55\xf2\xe1\xca\xad\xf5\xff\xee\x95\x5b\x15\xe2\x80\xb7\x56\x12\xcf\x56\x9b\x87\x1b\x8a\x19\xa5\xe1\x31\x37\x09\x95\x82\x47\x3a\x88\xc6\x46\x22\x65\x0a\x4f\x36\x62\x0a\x82\x09\xbc\x2c\x33\x01\x4e\xa3\x24\x8c\xa3\xf5\x7c\xc0\xb4\x95\x7b\xbe\xe1\x84\x7b\xfe\x2f\xdd\x73\x5f\xed\xdd\x6c\xf3\x9d\x5e\xec\xfd\x73\x77\xe1\x4b\xfb\xcd\x9b\xee\xc2\x8b\xf3\xf8\xc6\xe8\xaa\x76\xc8\x1b\xef\x81\x2b\xde\xee\xe9\xb7\x7b\xbf\x7e\x87\xbc\x7a\xc3\x5b\x3d\x2f\xab\x7b\xbc\xb8\x0b\xae\xec\xdb\xd2\xbe\x79\x2f\x2f\xb1\x97\xd5\xfb\x5f\x36\x93\x1f\x6d\x3c\x93\x9f\xff\xed\x99\xfc\x7d\xc3\x99\xfc\xfd\x7f\xc2\xd2\xf9\x3f\x7b\xdf\x7d\xed\x2a\xb8\x2c\x09\x6c\xaa\x3e\xdc\x64\x5f\xfd\x2f\x9f\x26\xef\x36\x9e\x26\xdf\xff\xf6\x34\xb9\x4f\x8b\x1e\x49\x52\x4a\x95\x66\x7e\xa2\xb1\x31\x51\x72\x69\x20\xef\x5b\x62\xb3\x42\x1b\xa7\x23\xd7\x3b\x0d\xcc\xd0\x0d\x09\x91\xe7\x3c\xe2\x79\x2b\xb0\x77\xf5\x75\x20\x2f\xbc\xd6\x69\x60\xa7\x17\xad\x00\x46\xc4\x78\x9f\x61\xd3\x00\x01\xde\x8a\x08\x8a\xea\x89\x12\xad\xeb\x59\x39\x79\xfa\x64\xd4\x82\x9b\x23\x08\x09\x0a\x15\xe4\xac\x04\x39\x2b\x42\x2e\xd2\x76\xb7\x76\x8b\xed\x9e\xa6\xed\x6e\xed\xe6\xed\x16\x30\x55\xed\xee\x11\xe3\x7d\x86\xcd\x68\x77\x4c\x50\x5c\x9f\xaa\x53\xb2\x1c\xab\xc3\xf3\x96\xe1\x66\x0f\x02\x82\x02\x05\x35\x33\xa1\x58\x01\x6a\xb1\x72\x0b\xa2\x43\xfa\x54\x6f\x17\x1e\xaf\xe5\x79\xc1\x68\x32\x14\x7b\xdf\xc7\xff\x5d\x38\x9e\xa4\x0c\xcd\xca\x44\x27\xeb\x6b\xd1\xf3\x24\x87\x69\x99\x40\x2d\x13\x2a\xbb\xf9\x57\xee\x3b\x96\x25\x0b\x03\xf4\xbf\x68\xeb\x21\x26\x40\x35\x9b\x56\x3a\x4d\xdd\x50\x87\x42\x94\x0d\x85\xc3\xb7\xcc\x0e\x37\xcc\x2b\xcc\x0e\x96\x8f\x27\xf1\x25\x62\x75\x66\x47\xf5\xc8\xa4\x36\x8c\x17\x2b\x7b\xf7\xdf\xe1\x58\x30\xe3\xf1\xf7\x97\x79\xfc\x12\xf5\xc1\x0a\x4a\x84\x95\x94\x08\x2b\xc9\x12\xfe\x15\xeb\xc8\xfb\x8d\xd6\x11\xa5\x49\x49\x59\x87\x9f\x6d\xa3\x5c\x63\x55\x51\x9c\x63\xbd\x32\xc5\xd4\xa5\xdc\xda\x88\x0f\xdd\xfa\xef\xb6\x87\xfa\xaf\xe6\x47\xff\xbb\x1d\xfb\x6f\xca\xd4\xfe\x3d\xb7\x7f\xff\x23\x79\xde\xb7\x1b\xf0\xbc\x5b\x06\xcf\x7b\xfe\x77\x79\xde\x87\x8d\x78\xde\x87\xff\x95\xbd\xfe\x0d\x36\xae\xff\xfe\x8c\xe3\xbf\xe5\x46\xf9\x7f\x24\x43\xf9\xe3\x06\x0c\xe5\x83\xc1\x50\xbe\xff\x5d\x86\xf2\xa9\xd2\x28\xe4\xd3\xdf\x15\x9a\xd6\xcd\x46\x03\x62\xcd\x5c\xab\x9e\x53\x95\x13\x6a\x8d\x24\x8f\xaa\x16\xca\x0a\xc1\x5e\x1f\x0d\x3e\x5b\x69\x90\xf0\xa9\x64\x4d\xf3\xd4\x3c\x29\xa6\xa9\xbb\xb8\xe1\xf0\x53\xa5\xf1\x50\xea\x06\x08\x09\x77\x94\x06\x24\x26\xe9\xd9\x9c\x3a\xc9\x6b\xa2\x68\x3e\x0f\x0f\xdc\x5a\xcd\x71\xb1\xd8\xc4\x33\x27\x35\x6c\x45\xe1\x7c\x1e\xe9\x17\x09\x41\x71\x3d\xb4\x83\x7a\x24\x4a\xd8\xa1\xf6\x7f\x41\x4f\x29\x8a\xb1\xfd\x94\xa2\x00\xa7\x3e\x73\x05\xbf\xf7\x18\x43\x76\x1d\x60\x68\xec\xd5\xb3\xdb\x04\xe3\xf9\xdc\x35\xdc\x8c\xa8\x69\x94\x6d\x34\x5e\xbb\xda\xb0\x36\xda\xad\x17\x1b\xcf\x1c\x8e\x9b\x2d\xdf\x70\xa5\xfb\x5c\xd1\x09\x6e\xaa\xf6\x71\x53\xb5\x8f\x97\xaa\x7d\x3c\xf9\x59\x4e\x84\x9b\xbb\x5b\xab\x15\x13\x76\x02\xa1\x9d\xd4\x39\xc4\x4e\x02\x81\x93\xd4\x99\x8c\xff\x6b\x78\x13\xf1\x2a\x7a\xce\x5d\x8a\x2a\x5e\x8b\xd1\x65\xbc\x10\x86\x99\xad\xc7\x12\xf1\x12\x71\xd0\x62\xf1\xb0\xfc\x9e\x17\xdf\xc7\xeb\xd1\x07\x3c\x73\x41\x04\xa6\xfc\x62\xf3\xd4\x8c\x46\x4e\x46\x5c\x4c\xd1\x28\x28\xc6\xbc\x95\xde\x23\x61\xc7\xed\x12\x17\x62\xf1\xd3\x82\x40\xfc\xd0\x8e\xdb\xb5\x5b\x75\xda\xf1\xba\xc0\x89\xb7\xcf\x0f\x22\x79\xd6\xcf\x71\xd8\xe1\x5d\xe2\x41\x2c\x7e\xee\xc8\xf0\x02\xe4\x4e\x9d\x76\xb8\x02\xe7\xb6\xd7\x4d\x71\x46\x8e\x27\xd0\xc5\xea\xe2\x37\x08\xd4\xc5\xef\x75\x2a\x2f\x6c\xda\x89\x32\xdc\x12\x33\x23\x02\x77\x33\xee\x70\xc7\xeb\xca\x0a\x1c\xc2\x64\x0d\x0e\x61\xf5\x40\x3e\x36\x71\x2b\x84\x4d\x55\x01\x70\x12\x39\xad\x7d\x7e\x48\xdc\x7d\xc7\x49\x9b\x89\x64\xe1\x50\xb6\x0a\x0b\xc4\xaa\x7c\xda\x24\x24\x5a\x60\x2b\x64\xd2\x00\x85\xb8\xc6\x77\xca\x0f\xd4\x9f\x94\xe2\xd0\xc1\x17\x43\x88\xbb\x0b\xca\xff\x8d\x8c\xe2\xd4\x05\x77\xff\xb9\x07\xdc\xa6\x4d\x78\x61\x15\xfe\x5c\x38\xe0\xe6\x2e\x7c\x2c\x3d\xc0\xff\x55\xea\x26\xc5\x9c\x5e\x06\x2f\xb7\xc2\x81\x74\x14\x06\x95\xdb\xd3\x48\x38\x32\x9f\xf3\xec\x6e\xe6\xad\xe9\x9c\x7f\x07\x3d\x11\xe8\xae\xd6\x3d\xcc\xc8\x6b\x43\xd8\xc1\xc0\xca\x96\xa4\x4b\x63\x53\x2a\xf1\xf3\x06\x7a\x19\x4a\xc2\x16\x8b\x05\x20\x6e\xce\x08\x95\xb5\xb6\xd1\x63\x34\xe0\x14\x99\x93\x05\x63\xb5\xbd\x2e\xf9\xf6\x98\x20\x0a\x40\xf9\x4b\xab\xc6\x03\x15\x82\x49\x61\xca\xad\x49\x50\x53\x16\x22\x65\xe9\xca\xe4\x33\x6b\x64\x8b\xd1\xea\x9c\x32\xe5\xe9\x21\xf1\x6f\x9e\xe1\x65\x85\x2d\x1b\x50\xe9\x18\x17\x43\x28\x9d\x24\xff\xc5\xfc\xa5\x68\x5e\xf6\x93\x66\x64\xd2\x88\x0c\x8b\xa9\x76\xdd\xdc\x90\x41\xb1\x3b\x6e\x77\xd5\x0c\xc9\xde\x43\x8b\x10\xc2\xf0\x0a\x2c\x82\xf3\xcb\x68\xd7\x32\xda\x6f\x66\xbb\x46\xe4\xfa\x08\xa1\xf8\xe5\x58\xa7\xe9\xdf\x0f\x0e\xd8\xbe\x6d\xc7\x60\xdb\x01\x5e\x37\x14\x51\xc7\xed\x76\xe2\x2e\x84\xe9\x6f\xd4\xf1\xd2\x7b\xf5\x4b\x3b\x81\xa8\x37\xe8\xe2\xfd\x6b\xd9\x1a\xfb\x19\x66\xa6\xa7\x60\xc1\xce\xed\xef\x59\xb4\x25\x95\xbe\x5b\x42\x18\x90\xa2\x86\x21\xb6\x8e\xf8\x3a\x05\x02\x27\x7c\x31\xfa\x57\xd3\xa6\xee\x86\xcd\x96\x37\xf7\x20\x6d\xaa\xee\x79\x7e\xe0\xd5\x6a\xad\xe2\x1a\x53\x1e\x95\xe2\x52\xa7\x7b\x11\xc3\x3f\x61\xdd\x3a\x24\x6e\x96\xc9\x85\x67\xe3\xce\x57\x11\xc3\x8a\x7d\xce\xbf\x93\x11\x57\xb6\xda\x64\x53\x9f\x1f\x10\xb7\x7a\xd2\x66\x3d\xbc\xc2\x8b\x45\x56\x95\x25\x3d\xc8\x74\x20\xf5\xcc\x24\x94\x63\x9b\xa6\x36\xed\x5a\x13\xb2\x64\xc2\x9e\x0d\xdf\xaa\xf7\x78\xa1\x17\xbe\x7c\x95\xcb\xb6\xda\xd3\x95\x73\x45\xce\x8d\xc6\x9e\x39\x5d\x7a\x65\x49\x5e\xc2\x98\x16\xc3\xfd\x4a\x08\x4f\x65\x28\x18\x96\x17\xc2\x70\x80\x50\x98\x71\x54\x7c\xe8\x65\x26\xb9\xe9\x32\x42\xe4\x7e\xa8\x23\xb8\x63\x17\x12\x12\xa4\x90\xfb\xf1\x41\x28\xbd\xbf\x65\x64\x31\x12\xa4\x40\x71\xb7\x0b\x8c\xb8\xfb\xec\x20\xd9\xb7\x6d\x86\x83\x0e\xeb\x76\xbc\xae\x4d\xe4\x85\xdb\x25\x2a\xe3\x79\xa4\x1e\xe3\x76\xa4\x1e\xfb\xe9\x83\x05\x0c\x8a\x9d\xa1\x1b\xc3\xb3\x26\x02\x33\xf6\x14\x1c\x0b\xf9\x5b\x88\xe1\x98\x09\x11\x9a\x67\xbb\x41\xa3\xcb\x26\xbc\x10\xab\x4c\x6c\x1f\xf2\xde\x1a\xcb\xde\x52\xe9\xf1\x38\xe9\x68\xa9\x7b\x9b\x37\xbe\xd2\x99\x8c\xfd\x24\xaa\xbf\xe0\xcb\x01\x84\xa6\xa8\xd3\xc5\xc0\xc9\x80\x03\x23\x43\x0e\x11\x99\xf0\xbc\xd2\x10\xe9\x28\x16\x32\x2b\xbc\x19\x2c\x7a\x45\x34\xb9\x31\xc7\x30\x22\xda\xad\x15\xa6\xc4\x51\xc1\x7c\x55\xdb\xe8\x76\x3c\xd8\x0e\x65\x6f\x8b\xf5\xc5\xb6\xa7\xfb\xf1\xc1\x48\x8e\x00\x4a\x3a\x71\xb7\x33\xed\x92\x8e\x0b\xb6\x18\x56\x71\x2f\x9a\x0f\x53\x08\x71\x17\x37\xfa\x01\x0f\x08\xdd\xd2\x65\x03\xf2\x15\x71\xb1\xc1\xce\x30\x24\x9d\x40\x8c\x5c\x43\x86\x59\x23\x71\xd6\x89\x48\xc6\xf5\x4d\xb4\x32\x27\x14\x48\xff\x7e\xbc\x77\xa3\x2f\x84\x0c\x19\x4a\x27\xe2\xb0\x1c\x9d\xed\x6f\x04\x60\x09\x65\x00\x96\xb0\x11\xb3\x3e\xdd\x30\x77\x3b\xcf\x7c\x88\x07\x7c\x75\x64\xc9\x42\xc8\x6f\x59\x0f\x97\xf5\xc8\xe4\x95\x37\x75\x56\x1e\x72\x9f\x0a\x14\x6c\x01\xe1\x02\xce\xab\x26\x66\x64\x4c\x4c\x37\x9f\x0c\x7a\x66\xba\x72\xd2\xb9\xdd\x7c\x4a\x06\x2a\x20\x83\xdc\xb7\x12\x35\x0f\x23\x39\x0f\x43\x5b\x1a\xd4\x0b\x42\xf1\xba\xf3\xb9\x2b\x44\x27\x45\x4d\x26\x54\x0e\xd2\x24\xe1\x62\xc8\xd3\x60\xd8\x70\x56\xd5\xb8\xa4\xd0\xb8\x52\xdb\x54\x06\x37\x19\x05\x30\xe5\x1d\xba\x91\xa3\x83\xe9\xbe\x6d\x8f\x52\x4a\x0e\x88\x5b\xe0\x17\x28\x24\xe2\xab\x3b\xbc\xc3\xba\xdd\xce\xa8\x8b\x3b\x5e\xd7\x11\x02\x12\x3e\x74\xdb\x52\x52\x22\xb1\x14\x90\x48\x6c\x93\x10\xfb\xe1\x81\x7c\x2c\x36\xe8\x20\xdf\x06\xf2\xb1\x82\x74\x15\x64\x88\x17\x30\xab\xfa\x02\xb6\xb2\x7b\x89\x54\x0a\xa5\x4c\x2f\x26\xa1\x6e\x7c\x74\x10\xef\xdb\x76\x94\xc3\x8a\xf6\x27\xc4\x4d\x65\xbd\x00\x27\xa2\x9f\x83\x6e\x27\xca\xfa\x59\x5d\xda\x44\x5e\xb8\xdd\xff\x9f\xb9\x37\xef\x6e\xdb\x66\x1a\x47\xff\xf7\xa7\x88\xf9\xe6\xf0\x07\xd4\x90\x42\x6a\x17\x13\x54\x37\x49\xd3\x24\x6d\xb6\x27\x71\x93\xa6\x7a\xf5\xfa\x70\x01\x2d\xd6\x14\xa9\x92\x94\x97\x5a\xfa\xee\xf7\x60\x00\x92\xe0\x66\x27\xcf\xdb\xe7\xde\x5f\x7c\x4e\x24\x11\x83\xc1\x10\xcb\x60\x36\x0c\x68\x2f\x7d\x34\x50\xba\xf6\xec\x3e\x86\xcc\x37\xef\x88\x72\x5a\x05\x39\xf8\xbe\x19\xc1\x05\xcf\x08\x88\x29\x8a\x53\x6a\xc8\xc1\x30\x1e\xa7\xc0\xb7\xd3\xb2\xd0\x05\xcc\xe9\x6a\x45\x3c\xea\x72\xda\x81\x70\xb2\xa6\xc8\xeb\x21\x77\x69\xf7\x4c\xf9\x08\xae\x93\xf0\xa9\xf1\xd8\x87\xc1\xf2\x05\x7f\xdb\x42\x75\x7f\xb5\x3a\x5a\x9f\x50\xb4\x2d\x10\xe0\x1e\xff\x51\x56\x3e\x84\x27\xd4\x23\xbb\x13\xba\xfe\xc1\x3b\x24\x79\xc9\x09\x95\x5f\x61\x60\x43\x5d\x47\x71\x8f\xee\x1e\x85\xb8\x0b\xa4\xec\xb9\xab\xea\x8a\xcb\x77\x89\x8d\xbd\x45\x2f\xb2\x22\x03\x8f\xcf\xf9\xfb\x9d\x09\x2f\x97\x6c\xd5\xe3\xd3\xed\x80\xd5\x7d\xf6\x45\x56\xd9\x7e\x48\x42\x7b\x66\x3e\x2f\x72\x16\x1d\xd3\x9e\xf9\xc8\xe0\xf3\xf6\x49\xf0\x18\x73\x85\x9f\xc9\x7d\xed\xc7\x18\xb2\x6b\xf3\x4d\x21\x29\x48\x89\x60\x2b\xb9\xee\x26\xfb\xfd\xff\x9e\xec\xf7\x0d\xb2\x0d\x12\xd1\x9e\xa9\x90\xcd\x27\x70\x49\x2f\xcc\x4e\xac\xeb\x28\x39\xa1\x65\xf3\x09\x90\xfa\xa9\x95\xa7\x5d\x03\x69\x89\xb8\x72\x96\xab\xae\xa7\x2d\x6f\x54\x31\x13\x42\xe3\xf2\x05\x49\x4c\xaf\x40\x5b\x92\x2b\x87\x84\x5c\x15\xdc\xf1\x9d\x97\x53\x2d\xcd\x62\xd2\x44\x17\x2f\xb3\x15\xb1\x9f\xa4\x0b\xc4\x97\xf5\x32\x59\x91\x50\x28\x1a\x09\x5c\x85\x23\x9f\xed\x8a\x67\x39\xf9\xbb\x92\xbc\xbe\x1b\x47\xae\x9d\xa1\x10\x1f\xc8\xdb\xd6\xf7\xf1\x6b\xef\x73\x20\x55\x6d\x1a\xdf\x6a\xbb\x94\x3d\x48\xb3\x24\x70\x33\xed\x28\xe9\x27\x5c\xc9\xcb\x6f\x79\x06\x8b\xc3\x37\x5c\xce\xce\xe1\xe2\xf6\x6b\xa3\x43\xf5\x02\xfe\xb8\xeb\x9e\xfe\xca\x9d\xfa\x1b\x3b\x73\xd7\x1d\xb7\x50\x6f\x15\xb8\xc8\xde\xb0\x74\x6b\x77\xdc\x8e\x1c\xb7\x41\x76\xdc\xa6\xaf\x80\x82\x14\xde\xd1\xf8\x35\x6b\x02\x7e\xc3\x6d\xf1\x29\x0b\x99\xdb\x7e\x45\xf2\x79\x13\xee\x69\xd8\xde\x45\x9f\x9a\xa0\x7c\x13\x6f\xbd\x52\xbb\x09\xda\x31\x3a\x6e\x0b\x60\x17\x01\x7e\xe5\x76\xe6\x9b\x8e\xab\xac\xdf\x28\x50\x57\x41\xe4\xc5\x57\x9d\xb7\xa6\x1f\x09\xfb\x82\xb6\xce\xb2\xad\xf5\xe8\xd1\xd5\xd5\x55\xff\x6a\xd8\x8f\x93\xf3\x47\xe6\x7c\x3e\x7f\x74\xbd\xce\x36\xa1\x46\x02\x7a\x9b\x5e\x9e\x5b\x2d\x50\x03\xc3\x30\x1e\xa5\x97\xe7\x1a\x01\x50\x2b\x22\xd7\x61\x10\x5d\xb4\x81\x0a\x84\xbc\x54\x23\xd7\x9b\xb0\x0d\xe4\xf7\xb7\x6f\x38\xd8\xec\x91\x32\xad\xae\x37\x61\x94\x76\x36\x0d\xa5\x8f\xb4\x03\x89\xdb\x98\xde\x09\xd5\x34\x92\xd0\x4c\xc8\x9d\xef\x7d\xa4\x59\x5a\xc9\x82\x40\x6f\xd5\x00\x83\x76\x4c\x29\xe2\x5c\x12\x2e\x6c\x81\xec\x5a\x9c\x65\xb1\xe2\x49\x72\x62\x72\x79\xac\xbf\xb6\xd3\xf7\x57\xd1\x87\x24\xde\xb2\x24\xe3\xea\xc1\xe2\x16\xe8\xb4\x02\xce\x49\x60\x71\x59\xec\x60\xb1\x83\x9a\x34\xb1\xf5\x4a\x4f\x41\x22\xa8\x6a\xf1\x55\xc4\x92\x9f\x62\x17\x24\x39\x22\x55\xc4\xa2\x0b\x7e\xfb\xf8\xba\x20\x99\xc2\xa5\x1b\x59\xdf\x93\xc0\x2f\x42\xc6\x3f\x2a\xc0\x1c\x66\x91\x9b\x2a\x25\x00\x62\xd8\xaa\x3d\x7a\xf7\x09\x25\x84\xe1\x83\x7a\xb5\xf6\x5d\x77\x8f\x36\x29\x6d\xe0\x63\x7d\xa0\x81\xb0\x3e\x74\x84\xbc\x56\x31\x6c\x19\x99\x18\xb1\xc2\x85\x97\x09\xe8\x45\x6a\xd9\x18\x65\xea\x5e\xb3\x43\xf8\xf6\x20\x24\x88\x36\xfd\x55\x8a\xb9\xbb\xae\x0b\x56\xff\xda\xb1\xe4\xe6\x93\x5c\x51\x88\xbf\x2a\x69\x4b\x90\xfe\xbf\xb8\x89\x67\x5d\xb4\xb8\x14\x17\xaf\xf8\x77\x11\xba\xfe\x26\x42\x9f\x86\xa1\xa0\x75\xfb\x6d\x77\xc2\x02\x06\xc1\xae\xe1\x2a\x56\x85\xbc\x4d\x5b\x45\x25\x5d\x7a\xa5\x1a\x68\xa1\x8d\x0b\x8c\xfc\x20\xf2\x4a\x84\xe7\xb5\x66\xfd\x20\x49\xf3\x39\xf8\x7c\x1d\x84\x1e\x60\x71\x5a\xb0\x84\x19\x4b\x4a\x3c\x37\x35\x3c\x2e\xaf\x9b\x30\x21\xbf\x9c\x75\x19\x2b\x84\x46\x5e\x08\xae\xca\x8b\x5e\x29\x16\xbe\xca\x14\xa5\xac\xb6\xb8\x1a\x4b\x8b\xb2\xca\x4f\x69\x3b\x89\xc0\x4b\x5a\x1e\xc6\xdd\xda\x09\x60\x93\x3f\xcf\xb8\xc2\x7b\x76\x46\xb3\xc3\x55\xd7\x8d\xf3\x57\xc4\xde\x6e\x59\xe4\x41\xb7\x58\x2d\x6f\xa4\x22\xee\x07\x51\xca\x92\xec\x19\xf3\xe3\x04\x1c\xc8\x05\x11\xf8\x40\xd4\xb2\x9a\xcd\xec\x5b\x50\xc1\x65\xf0\xca\xfc\xba\x97\x96\xc6\xb2\x21\xf5\xf9\xf9\x7d\x28\xf2\x09\x0d\x5b\xcd\x8b\x6f\xbe\xe8\xb8\x1c\xdd\xeb\xaa\xd3\xa1\xd0\x8c\xa4\x74\x97\x95\x06\x8d\x38\x97\x40\x53\xd0\x01\x53\x8c\x6c\xca\x35\x0f\xbc\x40\x76\x39\x6a\xf1\x32\x5d\x91\x68\x99\xae\xa8\x8d\xad\x84\x7f\xf2\xd9\xc5\xe7\x10\x2f\x11\x4e\xe4\xc7\x29\x58\x2e\x4a\x0c\xba\x8e\x02\x51\xa5\x72\xe9\x70\xcb\x9d\xbc\xe2\x32\x00\xc0\xf9\xd6\xde\x12\xaf\x24\x70\x5d\x10\x48\x7c\xc5\xc6\xe4\xa9\x29\xf7\xc5\xe5\x49\x28\x2c\x5a\xf5\x79\xab\x3b\x6a\x0b\xf7\x51\x48\xc2\xe2\x45\x48\x4a\x32\x7c\xa2\x69\xc4\xe5\xdb\x12\xda\xe1\x05\x50\x18\x5a\x6e\x3f\x65\x19\xda\x91\x10\x37\x93\xf9\x17\x98\xc4\xdb\x92\x94\xc4\x80\x03\x85\xd4\xed\x9f\xf3\x6a\x18\x73\x85\x97\x23\x52\xda\x12\x9d\xe6\xf6\x45\x2e\x51\x0e\xd4\xd5\x73\xed\xaf\x21\x70\xf3\x77\xc1\x94\xd2\x30\xef\xcd\x10\x77\x5d\xd0\x9c\x37\x5c\xb9\xa0\x59\x35\xb2\x3d\xc9\x16\x3d\xd3\x62\x3f\x66\x0b\xfe\x3f\xdc\xde\xf2\xce\x7e\x57\xb9\xac\xb9\x6d\x82\xc1\x3c\x4d\xd8\x26\xbe\x64\x4f\xb3\x2c\x09\x9c\x5d\x06\x61\x2e\x95\x9b\x96\xbf\xb5\x62\xeb\x9e\x57\x20\x7a\x5a\x21\xb8\x8e\x2a\x65\x99\x42\x00\x68\x9c\x45\xcd\xe7\xdf\x5c\xb3\x49\x41\x15\xd3\x45\x17\x26\x69\x8c\x6e\x37\x15\xca\x2b\xe9\x93\x45\x47\x6f\x59\x6d\x6f\x90\xa8\xed\x7e\xfc\xe7\xdb\x6d\xe9\xec\x26\x1d\x2d\xfd\x91\xc8\xcd\xad\xf5\xae\xb5\xda\xfe\xa0\xeb\xb5\x07\x7d\xe9\x09\xf8\x1c\xb0\xab\xfd\x9e\x15\x82\x97\xae\x33\xf8\x59\x96\x76\xdc\xd6\xd6\x18\x3c\x2e\xb5\xcb\x57\x2b\xc4\xc8\xca\xfc\x7b\x97\x6b\x85\x77\x62\x48\x59\x56\x56\x07\x78\x05\xc5\xeb\x6e\x14\x42\xde\xbf\xbb\xff\xa3\xc5\x5d\xa4\x5a\x9d\x54\x44\x55\x2a\xde\x54\x17\xac\xac\x72\x5e\x56\x81\x8b\x2d\x50\x86\xf7\xfb\x3f\xb9\x86\x7c\xce\xb2\xe7\xf1\x66\xbb\xcb\x98\xf7\x89\x83\x22\x71\xa5\x0c\x6e\xab\x52\xb6\xf2\x73\x7b\x67\xcb\xa4\xc7\x9c\xd6\x25\x5b\x29\x54\xfd\x7d\xd7\xda\x5a\xb2\x55\x25\x7f\xca\x6f\xff\xbb\x69\x5c\x25\xc2\xca\x5b\x48\x94\x16\x9e\x55\x33\xb3\x27\xc1\x06\xe1\x7e\xba\x0d\x83\x0c\x3d\xfa\x9f\xfd\x7f\xa7\x27\x8f\xd4\x73\x68\x15\x60\xc8\x14\xf4\x26\x48\xb3\xfd\x9e\xb3\xe1\xcf\x95\x80\xab\xcf\x65\xbc\x55\x14\x7b\xac\x10\x5d\x40\xd8\xa1\xcf\x10\x0c\x44\xb9\x7c\x35\x40\xa6\xe1\xfd\x5e\xd3\x70\xe5\x36\x0a\xfe\xfe\x85\x15\x90\x72\x0a\x72\x7b\x4f\x56\xb3\xf7\x24\x7d\xdb\xf3\x50\xb6\x8c\xd4\x5c\xd7\x7f\x7d\x1f\x06\x31\xdb\xea\x48\xbe\xb4\x8f\xf1\x43\x19\xf7\xa1\x4e\xba\x97\xed\xa0\x7f\xb5\x80\x7e\xed\x1a\x5c\xd4\x31\xae\x8b\x87\xd6\x5f\xb8\x05\xd1\xaf\xf9\xd2\xcc\xd8\x75\xf6\x3c\x8e\x32\x2e\x2b\x6a\x5a\x2d\xc1\x7e\xc7\x72\x56\xeb\xb0\x43\x25\x7f\x7a\xb7\xda\xd8\xe1\xe2\x39\x6a\x60\x14\x33\x31\x5b\x68\x9a\xa5\xce\xeb\xdf\xf3\xd6\xe1\xbe\x87\x57\xa7\x6f\xdf\x54\xe8\xfd\xe3\x0e\x7a\xcb\x1a\x2a\xb5\x8c\xfd\xdb\xe4\x96\x08\x3b\x88\x85\xa4\xe8\x42\x70\x67\xd7\xd9\xa7\xc0\x09\x83\xe8\x5c\xba\xa6\x85\xc0\xf9\x2e\xf6\xa0\x89\x5c\xde\x86\x86\xea\xc9\xd3\x05\x7c\xc2\x2e\x83\x78\x97\x76\x62\xa9\x88\xcf\x59\x11\x69\xa4\x40\x80\xd2\x03\xcd\x28\x2d\x44\x4a\xe2\xf6\xea\xdd\x76\x01\xab\x86\x9a\x94\x98\x8e\x18\xdf\x6e\xc4\x8c\x6f\x25\x3b\xae\x55\x75\xc3\x38\x62\xbc\x26\x3a\x36\x71\x1e\xb0\xa2\xe0\x2b\x62\xa6\xdb\x15\x0a\xa5\xf7\xb0\xa5\x06\x5f\x76\x37\x63\xfc\x83\xcd\xa4\xec\x7e\x56\x07\x46\x5c\xd4\xb4\x17\x80\x19\x87\x95\x66\x9c\x7e\xdd\x8c\xa3\x18\x6f\x92\x13\x13\x13\x56\xb5\xe5\x90\x5b\xae\xa1\x59\x8c\x70\xf6\xc7\x27\x17\x56\xba\x39\xbc\x73\xee\x4a\x8d\x2f\x86\x84\xcc\x59\xd3\x89\xd3\x33\x49\x5c\x32\xb2\xdc\x7f\x93\x50\xce\xc2\x08\x83\x4c\xc8\xba\x9e\xc0\xe7\x31\xa5\xe2\xc1\x7e\x9f\x80\xd6\x09\x0f\xf8\x97\x45\xb6\x3c\x39\x09\x56\x34\xb1\x14\xc9\xe7\xc5\x25\x8b\x32\xce\xdf\x59\xc4\x12\x24\x50\x90\xa4\x1f\xca\x27\x24\xe9\xc7\x5b\x4e\x6a\x8a\x1f\x9f\x9c\x04\x8b\x9c\x06\x1a\x58\xca\xbe\x03\xa4\x1f\x94\xd5\xb4\x63\xf7\x08\x07\x9c\x2f\xe7\x15\x6b\x66\xb5\x16\x5b\x02\xab\x84\xb5\x55\xd4\x63\x7c\x38\xa0\x0c\x97\x8e\xc0\xd2\x9d\x55\xb8\xbb\x6c\x70\xf4\xd8\x58\xf8\x22\x83\xa5\xbd\xc2\x22\x77\x74\xde\x53\xba\x1e\x41\x07\xd1\xbc\xa7\xb0\xaa\x6f\xb6\xf5\x93\x48\x3e\x4d\xa2\xb2\x9f\xa2\xa2\x9f\x04\x7d\xb6\xe7\xdd\x53\x85\xc6\x65\x25\x9a\x60\x72\x19\x07\x1e\x8a\xa4\x03\x39\x93\x7c\xab\x81\x46\x50\x4c\x62\x92\xf0\x0d\x4e\xce\x38\x89\x9a\x4f\x3b\xf1\x02\xf2\x8a\xb1\x8c\xe4\x8d\x59\x31\x91\x4d\x81\xa7\x76\x11\x08\x6f\x43\x91\xb5\xf0\x2c\x8e\xe8\x32\x52\x45\x18\xb7\x16\x64\xfe\xa7\x08\x0e\x8b\xfa\xcf\x77\x69\x16\x6f\x80\xaa\xa3\x16\x1f\x73\xb0\x10\xc1\xd4\x01\xdc\x7a\x61\x21\x5e\xc5\xab\x19\xf3\x78\x5d\xa4\xc1\x87\x86\x49\xb2\x40\x41\x3f\x88\x82\x4c\x3c\xcf\x48\xd2\x77\x76\x8e\x13\xb2\x94\x24\x7d\xd7\x8e\x5c\x16\xda\x4e\xc8\x5b\xef\x7b\x2c\xb3\x83\x90\x26\xf2\x0b\xb6\xaa\x15\x8f\x4d\x72\x6c\x42\x16\x73\x2f\x48\xb7\x76\xe6\xae\x45\x89\x7a\x41\x87\xc7\xba\x76\xe4\xdc\x54\xae\x1e\x84\x29\xeb\xad\xbf\xa3\x5e\x47\x92\xf4\xc3\xe1\x73\x25\x06\xcc\xab\xda\x6c\x14\xd9\xa9\x60\x42\x0c\x3f\x29\xe3\x9e\x44\x11\x0c\x5c\x11\xb3\xc6\xe5\xae\xaa\x92\x24\xa5\x2c\x55\x14\xeb\xff\x19\x07\x11\xd2\x1e\x68\x18\xe3\x03\x11\x13\xda\x6a\x32\xc0\x76\x02\x8e\x32\x35\xf6\x4a\x94\x72\x86\xca\xdf\x97\x98\xff\x0b\x3a\xdc\x38\xca\xec\x20\x4a\xbb\x2d\x3d\x75\x52\x7e\xa4\x86\x34\xf1\xf8\x8c\x2e\xf9\x16\xb8\x52\x02\x64\x2a\x67\xf8\xce\x93\x78\xb7\x4d\x0b\x89\x54\xec\x2c\x29\x55\x4e\x51\x6c\xd4\xdd\x94\x5d\xf1\xfa\xcb\x65\x31\x53\x6b\xc6\xef\xd5\x8a\xf8\x0c\x1f\xb6\xea\x01\x9e\x0d\xeb\xb2\xcb\x6d\x19\x11\x4e\x96\xca\xab\x95\x8b\xe5\x58\xb1\x02\x23\x46\x5d\xc4\x70\x79\x29\x45\x3e\x0e\xe2\x0d\xc0\xb3\x20\xed\x39\x91\x62\xcf\x49\xf8\x62\x34\x1e\x07\xe0\xb1\x2f\x59\x9f\x88\xd3\xc9\x96\xc1\xaa\x1a\x85\x13\x2d\x83\x95\x52\x3b\xc4\xc4\xa3\xc6\x63\x0f\xec\x4f\x1e\x46\x31\x4d\x97\x1e\x58\x82\x6c\x2a\x99\x6d\x4c\xe2\xd2\x08\xe4\x91\x14\x7c\x15\x5a\xfe\x44\x0b\xa2\x07\x31\x07\x57\x8c\x37\x25\x4f\x26\xbb\xa5\xb7\xa2\x76\xe9\x33\x16\xdd\x1b\x55\x07\x03\x1f\x48\xe1\x09\xab\x74\x54\xc7\x4d\x01\x77\x1b\xf5\xee\x16\x02\x2b\x56\xf2\x6c\xb1\x5c\x59\x1e\x57\xf0\x0e\x5c\xd5\x84\x49\xfe\x2d\xbd\xbf\x5c\x91\x80\xff\x17\x53\xe3\x71\x2c\xc2\x62\xb1\x6a\x28\xcc\x96\x71\xad\xdb\x8d\xc7\x3b\xe8\xe2\x1d\x46\x36\x4d\x97\x3b\xe8\xe2\x48\x2e\x61\x79\xb7\x15\x29\xfb\x90\x88\x1b\xa9\x24\x73\xb6\x71\xb3\x03\x83\xa2\xd3\xee\xb6\xf9\x0a\x98\xe2\x9a\xd3\xf3\x36\xc0\x16\x7f\x62\xb9\xcf\x16\xe6\x72\xd0\x42\x50\x47\x30\x11\x44\x10\x55\x49\x4a\x58\x74\x0f\x55\x4f\xc3\xb0\x20\xec\xe6\xdb\x08\x73\xfe\x5d\xc2\x84\x53\xe0\xdb\x96\xe1\xf6\x1f\x5d\x86\x62\x11\x96\xa1\x86\x24\x14\x8b\x10\xe2\x04\xf8\xbc\x48\xc5\xbc\x88\xa9\x2d\xe6\x45\xdb\xba\xdb\x11\x1b\xeb\xba\x0c\x17\x88\xef\x5f\x4f\x70\xd7\x68\xd5\x7c\x1f\xf8\xe8\xb8\x1e\xc0\x95\xcb\x37\x6a\x0c\x1b\x5f\x30\x9f\xb0\xcc\x92\x9c\x2d\xde\x5b\xd7\xc5\xf1\x59\x89\xbf\x90\xd9\x44\x97\x1c\x75\x76\xe4\x8b\x4a\x47\x96\x81\x47\x95\x83\x54\x31\x26\x69\xf5\x67\x58\xfd\x29\x7a\x29\x86\x5e\x12\xd7\xa7\xd3\x68\xb9\x5b\x91\x35\x0d\xf8\x87\x4f\xd7\x39\xda\x2d\xf5\xf2\xd5\xe4\x12\x57\xd7\x5d\xb5\x03\x23\x8c\xc9\x86\x6e\xcb\x7b\xd6\xf9\x32\xac\xde\xb3\x7e\x0e\x43\x50\xbf\x7b\x3d\xac\x3e\xf3\xf1\x51\x82\x5c\xb2\x26\x97\xe4\x9c\x38\x64\x4b\xb2\xf2\x15\x6f\xc8\x19\xb9\xa2\x06\x39\xa5\xc6\xe3\xab\x27\x9b\xc7\x27\x27\x57\x5c\xda\xbc\xa1\x97\xcb\xab\x95\x90\xe6\xaf\x7e\xa4\xa7\xba\x8e\x4e\xe9\xd5\x89\x89\x1f\x1f\xa3\x33\x7a\xbe\x3c\xe5\xc3\x7e\x72\x72\xfa\x64\xf3\x18\x3f\xbe\x91\x0e\xa1\x33\x79\x6b\x8a\x0c\x57\x44\xa2\xcf\xb6\x0c\xd9\xfc\x55\xfa\x67\x2c\xca\x58\x42\x53\xce\x35\xd8\x75\x90\xd1\x90\xd8\x07\x02\x0f\x5b\x3c\x7f\xb2\xaa\x18\x36\x00\xda\xef\xd5\x31\x04\x55\xe8\x0c\x37\xe6\x11\xc7\x7c\x2f\xba\xeb\x20\xfb\x36\x6c\x7c\xd7\xaf\x1d\xee\x28\x6c\x84\x1c\x14\x08\x43\x58\xce\x2f\xae\xe9\xc0\xd3\xeb\x20\x43\xe5\x94\xef\x08\x96\xe4\x22\x6c\x24\xd5\x72\xc4\x4e\x34\x0d\xcb\x2b\xa2\x33\x5d\x47\x01\xe5\xb2\x9f\x78\x42\x69\xb2\x88\x73\xd3\x0f\xb6\x12\x3e\xc5\x22\x5d\x0f\x16\x51\x7f\xc3\x92\x73\x86\x02\x2c\x42\x2d\x11\x5c\x55\x07\xcf\x2a\x7c\x03\xae\xd5\x67\x0f\x82\x28\xcd\xb8\x4c\x1a\xfb\x0f\xb6\x0c\xe3\x6c\x9d\xc4\x57\xd0\x31\x2f\x92\x24\x4e\x90\x16\x44\x97\x76\x18\x78\x0f\x00\x81\x76\x07\x3f\x61\xc5\xf7\xa8\xe4\x2d\x01\x4d\xca\xb8\xac\xe2\xa8\x29\xdc\x6f\x54\x3d\x85\x48\x84\x0b\x24\x06\x17\x48\xde\x46\x48\x76\xe0\x0b\x21\x2e\x4d\xf8\x87\x47\x77\xa5\x5b\xc8\xce\x5d\x29\xb9\x43\x48\x46\xc1\x79\x10\x05\x87\x42\xba\x5b\xfa\xab\xfd\xde\x5d\xfa\xb0\x4b\xad\x97\xfe\x8a\x86\x85\xa3\x2a\x82\x86\x00\x07\x6f\xa1\xc6\x89\xec\x8e\x9d\x3d\x88\xa3\x0e\x7f\xf4\x81\x40\x67\xab\xa5\xf9\x5b\xb0\x6a\x4f\x65\x5c\xfb\x4d\xd4\xc0\xaf\xec\x49\xf2\xb8\x96\x73\x39\x53\x03\x1c\x7b\x26\xb1\x69\xb0\x8c\x57\x8f\x7b\xbd\x18\xc2\xaa\x41\xef\x8b\x85\x80\xa3\xeb\xa3\xff\x89\xfa\x6e\xbc\xe1\xc4\xe6\x26\xf8\x0f\x71\x1a\x00\x19\x9c\xdf\xda\x9d\xb6\x9a\x88\xd8\x30\x10\xc5\xb4\x14\xaf\x92\xc6\x49\x55\xd4\x2b\xcd\x4a\x48\xd5\x82\x33\x5d\x4f\x16\x0c\x65\x25\x7f\x4a\x4a\xa1\xc9\x3a\xce\x7a\xc7\xc9\x81\xed\xf7\x88\xd1\xd3\x72\xe2\x24\xd5\xee\x88\xca\x19\xd2\x38\xb5\xca\xc5\x92\xa8\x0c\x9e\xcd\xe5\x92\xa4\x21\x97\xf0\xce\xa8\x8a\x83\x2e\x35\x1e\xbb\x20\xab\xb8\x42\x56\x71\xa1\xb7\x76\x4b\x17\x04\xb9\x9d\x88\xe2\x2b\xb3\xd5\xc9\x81\x0f\x6a\x03\x9f\x2f\xa1\x03\xe1\xec\xb8\x79\x10\xaa\xd8\x89\x96\x46\x31\x87\xd4\x67\x82\x03\xe4\x52\x9c\xb8\x52\xb3\x0c\x2e\x17\xbd\xcd\x55\x8d\xb4\x65\x5a\xd5\x76\x33\x2c\x20\xbf\x69\x86\x19\xea\x04\xcb\x60\x33\xcf\xca\x19\x26\xe6\x57\x40\x0d\x12\xd3\x28\x87\x0a\x60\xed\x05\xf9\xbd\x71\x7c\x6f\x3f\x0a\x7c\x54\x5c\x08\x6a\x1f\x54\x4b\x1d\x49\x83\xbf\x2b\xa4\x84\x2c\x7b\xc0\xa8\xa1\xc4\xc6\x67\x0f\x62\x1f\xe6\x13\x3e\x39\x29\xef\x63\x3e\x10\xb6\xd9\x66\x37\xcd\xd7\x3d\x16\x76\xb0\xd8\x83\xe8\x45\x66\xbb\xeb\xea\x0c\xec\x62\x3b\x86\xc2\x6e\x8a\x90\xe9\x1c\x3a\x80\xcc\xe5\xc9\x4a\xc6\x35\xc6\x75\x13\x0a\x0a\x68\xbc\xb4\x15\x69\x25\x20\x41\x39\x99\x6d\x12\xd7\x16\x86\x9d\x65\x49\xeb\xe9\x52\x88\xcd\xe1\xdd\x55\x93\x4c\x9e\x0c\x2a\x3b\x83\x78\xbd\xc2\x0a\x27\x83\x78\xa2\x8a\x5b\xe1\xdd\x27\x94\x48\x6f\x5c\x92\xbb\xec\xaa\x10\x28\x29\xef\xc3\x86\x9d\xc5\x76\xd7\x08\xe5\xba\x40\x8e\xf5\x83\xf5\xb6\x2d\x66\xbe\x04\xf8\x68\x5d\x58\xf9\xf7\xe7\xd6\x53\x0c\x47\x62\x38\xab\xcb\x6e\x42\xd6\xd8\xdf\x3a\x62\xe7\x7f\x34\x17\x2d\x34\xfc\xd4\xde\xf2\x6b\xeb\x1d\x06\x7c\xf9\x06\xa6\x69\x56\x82\xb1\xf5\x06\x29\xbd\x03\x07\x29\xb7\xd2\x75\xd5\x1e\xbb\xf1\x6d\x44\xfc\xdc\x4e\xc4\x6f\xd6\xdf\x58\x24\x73\xb0\x94\x56\x97\x6c\x75\x20\xa0\xe1\x33\xaf\x75\x84\x9f\x89\xdd\xb8\x6b\x90\xcb\xc5\xf5\x4a\x7d\x19\x9c\x1b\x3b\x93\x92\xdd\xf3\x95\xc6\xc5\xa9\x63\x71\xa3\x9a\x1d\x44\x29\x4a\x96\xc1\x0a\xcb\xa5\x76\x9c\xdf\x61\x7d\x6c\xb4\x0c\x73\xeb\x3b\x7d\xb5\xb2\xc5\x17\xeb\x65\x31\x84\x19\xbb\xce\xda\x34\x91\xe6\x35\xcb\x05\xe2\x5c\x83\xf9\xd5\x6a\xd7\x41\xfe\x65\xfd\x82\xc5\x8d\xcc\xe5\xdb\xa9\x5e\x93\x03\x81\x58\xc6\x7f\xaf\xd1\xdf\x3b\x1a\x65\xcc\xfa\xa3\xd9\x6a\xe1\xfc\x38\x90\xc4\x0e\x52\xd6\x15\x22\x06\x4d\x64\x7c\x3a\x85\xf1\x55\xab\x3c\x59\x82\x25\x1c\x4c\x88\x5d\x2d\x96\xa4\x0e\xad\x2c\x2c\x23\xf2\x2a\x6a\x6a\x4b\xdc\xa8\xb0\x7e\xaa\xde\x96\x2e\xa3\x1a\x2e\xc2\x97\x5a\xe7\xe1\x1d\xa4\x70\x4d\x4e\xce\xfd\x88\xb5\x4f\xfe\xcc\x72\x51\xf6\x5d\x34\x57\xe4\x85\xa4\xe3\x94\x54\xd4\xfe\x5c\x88\xfe\xe2\x95\xea\x56\xba\x96\x31\x08\xe4\x11\xed\x88\xdd\x67\x07\x60\x0b\x9b\x59\x31\x13\x1a\xe2\x6e\xf3\xed\xb3\x2e\xe7\x2b\x8a\xe5\x87\xb0\xea\xec\x2a\x82\x68\x48\xdc\x21\xe5\xc3\xa1\x8e\x94\x49\xf1\xdc\x2e\xb6\x95\x23\x10\xa9\x5b\xb8\x83\x60\x0f\x29\xcd\x16\x3b\x66\x85\x8c\x44\xd4\x78\x1c\xc1\xb1\xa0\x08\x97\xaf\x9f\xa2\x18\xf2\x61\x10\x25\x66\x1e\xb6\x1d\x71\x58\xa4\x4a\xa3\x70\xad\x54\x45\x65\x83\xb8\x85\x50\xf4\x78\xf7\xc4\x05\x55\x53\x9c\x04\x34\xb8\xbc\xb4\xdc\xad\x8a\x66\xc5\x81\x16\xde\x60\xe1\x3c\x08\xa5\xf3\x20\xc8\x9d\x07\x61\xc5\x79\x10\x0a\x53\xfe\x81\xe4\xb6\xe8\x3b\xe2\xea\xee\x60\x55\x6b\x66\x79\x4c\x32\xe0\x03\x59\x7e\xba\xd9\x38\x71\xd8\x0f\x32\x96\xd8\x59\x9c\xac\x0a\xa4\x3f\xfc\xfb\xf2\x4d\x29\x41\x1b\x5c\x70\xae\x1f\xc4\x52\x84\xe7\x9b\x80\x85\xde\x83\x28\x0f\xb4\xbb\x64\x74\xc3\xc8\x79\xdb\x79\x37\x2d\xcd\x92\x20\x3a\x57\x17\x5d\xd3\xc8\x5a\x8f\x02\x5c\xad\x48\xb7\x05\x56\x64\x66\x02\x04\x4c\x9a\x63\x89\xd3\x7a\xd4\xee\x9c\x21\xbe\xbc\x85\x84\xd2\x85\x8f\xf7\xe6\x0d\x48\x60\xb9\xac\x7e\x56\x33\x08\x5f\x29\x7e\xc5\xab\xc2\xb9\x7b\x46\xb5\xff\x47\x3b\x41\x27\x27\x37\x0c\xf7\xb3\xf8\x13\xbc\x26\x1a\x4e\xf0\xe1\x4a\xb5\x07\x9f\x75\x1a\x87\xaf\x78\x8f\x65\x77\x0a\x6b\x8f\x8f\x51\xf6\x20\x88\x1e\x30\x2c\x36\x3e\x88\x11\x2f\x75\x92\x7c\xe3\x2b\x84\xc4\x65\xb6\xe2\x1a\x57\x9d\x01\x96\xc5\x80\x75\x45\xb3\x56\xe3\x7f\xc5\xe4\x0e\xcd\xea\x7a\x7e\x9d\x77\x5e\xf5\x40\xf2\x57\xed\xe2\x48\x67\x79\xf0\x65\x75\x48\xb8\x9c\x9b\x09\x25\x12\xbc\xa7\x70\x17\x3e\x78\x65\x1e\x63\x56\x9e\x74\x65\x07\x72\x5d\xbf\xb9\x16\x12\xbd\xbd\x80\xeb\x7f\xca\xeb\x5f\xa5\x17\xd6\xdd\x25\xbc\x37\x4e\xe1\x8a\x7c\x5c\x72\xfb\x4c\x44\x56\x7d\xfa\xfc\x52\x0e\xf3\x7e\x9f\x41\x82\x05\xe9\x7a\xfa\xf4\xf9\xe5\x87\x32\x59\x1c\xd7\xa5\xaa\xcf\x15\x83\x43\xff\x9a\xb7\x13\x06\x2c\xca\x7e\x27\x51\xff\xa6\xf8\xf5\x95\x2c\x51\x44\xa3\xfe\xc6\xce\x92\xe0\xfa\x34\xb1\xa3\xd4\x8f\x93\x0d\xca\xb8\xd0\xf9\xc9\x4d\x18\x8b\x9e\x9f\xbe\x85\x7d\x57\x9e\xc6\xc1\xb8\x7f\xcd\x51\xac\x0e\x81\x2f\xc0\x9e\xc5\xbb\xc8\x0b\xa2\xf3\xe7\x80\xf1\x23\x73\x25\x45\x01\xed\x28\x2e\x08\x5b\x16\x44\xf5\xf8\x4a\xf5\xb3\x5e\x26\x1f\xbc\x61\x7e\x46\x0a\x22\x7b\x41\x3f\x8b\xb7\x45\xe1\x69\xbc\x5d\xe5\x36\xa5\x25\x9f\x4c\xe7\xec\x77\x22\x3e\xbf\xae\x0e\xe4\x7d\xbd\xf3\x4b\x17\x3a\x74\xb1\xb0\xeb\x7d\xd3\x58\xf0\xb9\x9a\xc5\x3b\x77\xcd\xd2\xfd\x7e\xc9\x56\x98\xa8\x91\xed\x84\xd1\x1f\xaf\x59\xce\xce\x3e\x7d\x27\xeb\x68\xe7\x1c\x22\xf8\xf7\xdb\x78\x47\x2e\x41\x81\x07\x80\x57\xf2\xd9\xbd\x87\xa5\xca\x00\x0c\xf5\xac\xdb\xdd\xc3\x74\x7b\x15\x78\xd9\xda\xca\xfa\xf0\x49\xd6\x2c\x38\x5f\x67\x56\xd6\x17\x5f\x48\x16\x6f\xad\x8c\x0f\x10\x49\x64\x01\x7c\x12\x27\xce\xb2\x78\x63\x65\x7d\xf1\x85\xf0\x01\xb6\x32\x18\x67\x72\x9d\x7f\xb9\x11\x55\x15\xe7\x64\x20\x0d\x54\xf2\xed\xf2\x2d\x48\x9c\xcb\xe1\xf3\x5f\x5b\x8a\x03\x08\x0f\xbe\xc0\xa3\x95\x26\xc2\x04\x72\xf6\x85\xcb\xd7\xaa\x44\x26\x1e\x95\x86\x8b\x5a\x94\xa2\x40\x5d\xdc\xed\xac\xc4\x93\x94\x7d\x14\x94\xe2\xde\x6d\xea\x26\x71\x18\xbe\x11\xaf\x03\xb3\xef\x3d\x9c\x37\x26\xa2\xe0\x14\xfa\x03\x66\xa3\x78\xae\xbc\x9c\x7a\xb6\xa5\x62\x7f\xe3\xf8\xfb\xc5\x3a\xaf\x14\xc9\xa7\xed\xe7\x4e\x9a\x48\xb8\x70\xdc\x8e\x48\x29\x51\x82\x39\x94\xc9\xba\x8b\x3c\xe6\x07\x11\xf3\x4a\x2b\xf8\xa7\xb5\xed\xc5\x57\x1f\xe3\x18\x96\x4d\xa3\xb1\xb2\xb8\xd6\x56\x59\xa0\xf8\xab\x77\x2a\xe1\x0b\xc4\x40\xa4\x79\x67\x6f\x18\x44\xd1\xf5\xb3\xf8\x0d\x97\xd5\x9f\xdb\x9c\xcf\x58\xd5\xa8\x20\xb7\xac\x8a\x10\xef\xc5\x45\x6d\x78\xad\x32\xd6\x14\xe7\x43\x5a\x3e\xa9\xaf\x22\xc5\x87\xae\x1e\x9a\x40\xe0\xbe\x84\x99\x79\x12\xc3\x79\xcf\x62\xa8\x15\xef\xb9\x52\x23\x68\x8f\xc3\x54\xde\xd9\x2f\xe7\x10\xb8\xba\x81\xaf\x5f\xb2\xc4\x0f\xe3\x2b\x30\x5f\xe4\x3f\x7e\x87\xf8\xbe\xfc\xd7\x57\x39\xd9\x1e\xd9\xbb\x2c\xde\x0b\x32\xf6\xbc\x30\xb4\x6f\xf6\xeb\xc0\xf3\x58\xf4\xa8\x9f\xb1\x34\x43\xc9\x49\x70\x12\x29\x0d\x6e\x0b\x79\x35\x67\x6e\x89\xae\xa3\x84\x1e\x9b\xc2\x23\x62\x93\x90\xac\x29\x57\x05\xc8\x96\x72\x2e\x40\x36\x34\xe5\xbf\x2e\xa9\x3a\xb3\x0d\x65\x36\x1b\x07\x72\x4e\x6f\xaf\x2d\x83\xdc\x58\xc6\x21\x3f\x87\xb4\xd9\xef\x8f\x37\xba\x7e\x9c\x70\x69\x0a\x69\x4e\xec\xdd\xf0\xa5\xb8\x83\x00\x55\x1f\xad\xc1\xcb\x7a\x49\x91\x4d\x33\x7c\x4c\x69\x00\xf6\xc8\x14\xd9\x78\xa1\xb6\x83\x42\x6a\xab\xfd\xac\x34\x1b\xf6\x8b\xef\x07\x2b\x46\x36\xc6\x84\x13\xba\x40\xe8\x9c\x46\x28\xe3\x3b\xd1\x09\xad\xec\x18\xe7\xfd\x9b\xf2\xc9\x69\xbc\xc5\xd6\x5a\xd7\xd1\x79\xff\x9a\x7a\x9c\x1e\x4c\x6e\xaf\xad\xad\x18\xde\x4b\xa5\xcd\xde\x79\xff\x9a\xdc\x58\x5b\xce\x89\x8a\x82\xd3\x78\xdb\x3b\xef\xdf\x10\xc1\xfc\xb6\x55\xe6\xb7\x95\xcc\x4f\x59\xda\x9b\x72\xa0\x23\x31\xd0\x4c\xe6\x21\xf8\x02\x35\x83\xe2\xf7\x2b\xa8\x9a\xf3\xa3\x22\xc1\xa2\xe4\xaf\xbd\x04\x3f\xa1\x26\x0c\x99\x7c\xa2\xe4\x64\xcc\x99\x6e\x2f\x90\x40\x7c\xce\x88\x47\xf0\x72\x79\x13\x6f\x04\x6f\xcd\x7f\x9e\xc6\x5b\xf9\x1e\x49\xfe\x06\x81\x42\xfa\xa5\xc2\x03\xe0\x00\x23\xe5\xc3\xc8\xd7\x98\xc5\xfa\x76\x9a\x06\xe7\x11\xf3\x3e\x85\xb0\xc8\x15\xd9\x6d\xbf\x07\xd9\x74\xc1\xfa\xeb\x38\xcd\x60\xc1\xe2\xfd\xde\xad\x4c\xff\x73\x45\x7f\x3d\xaa\x6d\xb7\xcb\x55\x7e\x9c\xb2\x0c\x8b\x2c\x8f\x5b\x2d\x05\x29\x44\x4c\x2c\xa2\xfd\x57\xbe\x84\xb5\x55\x11\x46\xc1\xe7\x1a\xfe\x91\x1a\x8b\xac\x16\x85\xce\xeb\x58\x7c\xb2\xe8\xba\xcf\xa7\x4c\x66\x31\x74\xc9\x81\x0f\x7c\x68\x62\x1a\x51\x4a\xe5\x0e\x03\x49\x07\x2a\xb5\xf1\x42\x10\x6a\x25\x80\x87\xab\x79\x01\x8a\x30\x09\x69\xbc\x58\xda\xab\xfc\x00\xb3\xdd\xbf\x0c\xd2\x9d\x1d\xf2\x4d\x64\x1b\x27\xd9\x7e\xbf\x5c\x11\x1f\x45\x78\x11\x59\x4b\xbe\x4d\x13\x97\xcf\xc5\xfc\xb4\x73\x3e\xde\xf1\xc2\xb5\xdc\xfc\xf1\x39\xba\x44\x21\x56\x83\xeb\x9c\x72\x2c\x96\x5a\x66\x3b\x21\xd3\x88\x96\x79\xfc\xbf\x75\xe5\xcd\x19\xbc\x79\x59\xf1\x46\x61\x4b\x7c\x87\xd0\x75\xcd\x0f\xae\x81\x97\x03\xe7\xe9\x6f\xa5\x5f\x60\x91\xcf\x8a\x0f\x30\x92\x35\x46\x7b\x56\x15\xe2\x03\x31\x95\x39\xf2\xc7\x89\xae\x3b\x88\xaf\x76\x2d\xcd\xec\x2c\x70\xf9\x34\x59\xa3\xa4\xc4\xfc\x18\x73\xc8\xf2\x7c\x3d\x67\x3c\xca\x84\x4a\xf0\x7e\x2f\x46\x53\xfe\xec\xc6\xc4\x47\x2c\xd9\xef\xdb\x15\x8b\x9e\x79\x4c\x69\x64\x5f\x06\xe7\x5c\x6d\xec\xef\x52\x96\x3c\x3d\xe7\xa3\x5e\xd9\x40\xca\xe0\x47\x3f\x48\x98\x1f\x5f\x6b\xfc\x45\xf8\x54\x7f\x9c\x42\xdb\xd5\x09\xa6\x76\x6d\x82\xf1\x13\xe3\x71\x2e\x57\x73\xc2\x40\xee\x88\xe2\x88\xf1\xde\x8c\xfa\x59\x2e\x28\xef\xf7\xca\xd3\x2d\x4b\xd2\x2d\x73\xb3\xe0\x92\x6f\x68\x5b\x3b\x88\x32\xfe\x62\x85\xa9\x6f\xbf\x07\xca\x97\x5a\x51\x5d\x23\x9a\x52\x49\xa1\x21\xea\x5f\x05\x61\xf8\x7c\x6d\x47\xe7\x0c\xef\xf7\x19\x0c\x66\x98\xb1\x44\x20\x2c\x0b\xa1\x2c\x92\x07\x06\x75\x5d\xa1\x46\x3c\xca\xc5\xa7\xe4\x28\xa1\x89\xb2\x76\x2b\x16\x7d\x04\x6d\x1c\xaa\x07\xe9\xed\x28\xd8\xd8\x19\xfb\x39\xe8\x38\x5a\xfd\x4b\xe3\x34\x3d\xfb\x14\x44\xe7\x21\xcb\x3a\x4e\x78\xbf\x54\x2b\x70\xa5\xec\xbc\xeb\xa0\xfe\xaf\x2a\xa4\x1f\x87\x61\x7c\xf5\x7c\x97\xa4\x1d\xe7\xc1\x59\xa6\x40\xaf\x03\x8f\x75\x1d\x06\xff\x4b\x45\x1b\x44\x61\x10\xb1\xdc\x57\xc6\x65\xf4\xb6\x2a\x99\x8a\x3b\xe1\x22\xf2\xd3\x24\xe9\x38\x1e\x1e\x57\x4e\xb0\x67\x81\x7b\x71\xd3\x0a\x97\x64\xf9\x39\xf2\x2b\xaa\x65\xf1\x56\x23\x2f\xa8\x26\x64\x64\x8d\x5c\x53\x0d\xa4\x67\x8d\xbc\xa7\x1a\xdf\xa8\x34\xf2\x89\x2e\xaf\xc8\x0b\x72\x4d\xde\xaf\xc8\x29\xfd\xd4\x4f\x98\xb7\x73\x59\x25\x0b\x85\xaa\xe4\x48\xce\xb2\xcc\x4e\xb4\x5e\x9a\xd9\x49\xa6\x11\xfe\x95\x45\x9e\xb6\xc2\x07\x4c\x96\x2b\x4c\xde\xd2\x65\xc1\xc6\x3e\x91\xa5\xc6\x85\x0c\x6d\x85\xbf\x19\x35\xb9\x0b\xf9\x07\xba\xd4\x1c\xb0\x19\x7e\x64\x36\x67\x5c\x89\xf8\xb0\xfd\x8c\x25\xf2\x91\x28\x7f\x6b\x07\x91\x46\xb4\x8d\xf8\x80\x72\xf9\x48\x94\x7f\x49\x02\x3e\x43\xb4\x2b\xf9\x09\x10\xe2\xe1\x0a\x3a\xf0\x29\xbd\xdd\x86\xb6\x0b\x22\x9d\x55\xf4\xe1\x26\xf6\x02\x3f\x60\x49\x6a\x2d\x57\x24\xcd\x12\x3b\x63\xe7\x37\x96\x66\x3b\x69\x1c\xee\x32\xa6\x29\x27\x8f\x9e\x57\x2c\x4d\x75\xf3\x1d\xc9\x14\xc7\x22\xf0\x41\xe3\x71\xf2\x84\x3d\x4e\x4e\x4e\x70\xb6\x4c\x56\x8a\x0b\x30\xc9\x5d\x80\xc7\x59\x3f\x8d\x37\xac\x1a\x94\x2d\x8b\x10\xe3\xeb\xb8\x69\xc3\xed\xd0\xa2\x0f\x58\xa4\x08\xbb\xa0\xb7\x5b\xbe\x0b\x5f\x32\xeb\xd8\x38\x90\x8f\xf4\x16\xc2\x63\x35\xa6\x46\xd3\xa6\x1a\x61\x11\xdf\x2e\x3c\xeb\xd8\x20\xdb\xb5\x9d\x32\x2b\xef\x38\xbf\xe2\xb9\x3e\x10\xe6\xfb\xf5\x80\xbe\x5c\x65\xe2\xfc\x98\xc9\xd8\x71\x21\xcc\x43\xda\x10\x19\x70\x0b\x4e\x43\x21\x1e\x11\x9b\x16\xdb\x79\xbc\xdf\xc7\x24\xa5\x51\x3f\x61\x69\xf0\x37\x23\x61\x59\x94\xee\xf7\x29\xd9\xd1\x00\x65\x7d\x26\x44\xef\xb4\xbf\x8d\xb7\x5b\x96\x60\xe2\x2a\xb3\x30\x93\x68\xc5\x9e\x94\xf6\x13\xe6\xb3\x84\xf1\xe6\xeb\x25\xb2\x76\xe1\x71\xd5\x75\xb7\xef\xc7\xc9\x0b\x30\x3b\x56\x42\xef\x9a\x11\xc7\x9a\x40\xa5\x91\xa4\xbf\xdb\x7a\xfc\x4d\x2f\x78\x2f\x93\x50\xd7\x77\x2d\xd0\xe2\x75\x2a\xd0\x44\xe9\xc8\xbb\x9a\x6e\x8b\xb4\xbe\xb3\xf5\xd6\x0a\x2d\x04\x1c\x64\x64\xd4\xad\x7a\xe2\xf7\xcf\xca\x49\x01\x71\x44\x40\xeb\x69\x78\x69\x28\x89\xd5\x7e\xea\x02\x32\x57\x95\xc3\x74\x8a\xf8\xc1\x99\x53\xbe\xac\x56\xd5\xe0\xd5\x85\x76\xad\x59\xda\x8d\x56\x39\x44\x57\xe4\x9a\xa1\x4c\x19\x41\x3e\x81\xe4\xe0\x83\x14\x5c\x2c\x59\x12\xd3\x60\xf1\x27\x0a\x84\xb2\xc7\xc5\xac\xc5\x4f\xc5\xaf\x94\x26\xfd\xeb\x93\x44\x88\xc0\x8f\x06\xbd\x28\xff\x46\x42\x9a\xf4\x6f\x4e\x12\x29\xf7\x42\x51\xfe\xf5\x48\x66\x45\x8c\x65\x06\xc4\x2b\x2b\xe3\x8a\x4b\x4a\x6e\xac\xa4\x7f\x53\x00\x1e\xd4\x5c\x86\x2f\x2a\x30\x05\xde\x0a\xcc\xb5\x80\x51\x28\x22\x37\x56\x58\x01\x79\x5f\x80\xe4\xa4\xaa\x20\xc5\x15\xe9\x12\x46\x34\x26\x0e\x5a\xee\x68\xbc\x78\x87\x62\xf1\xde\x47\xd2\xf4\x71\x4c\x8b\x50\x31\x4d\x08\x4c\x0b\x4d\x10\xa6\x59\x1a\xa0\xd7\xf2\x97\xb5\xc5\xcb\x6a\x82\x21\x5b\xd9\x72\xb7\xa2\xfc\xbf\x1e\x4a\x96\xee\x8a\xf7\x0f\x7c\xa8\x09\x1c\x35\xce\xb1\x4b\xc8\x93\x1a\xe4\xa1\x70\x3e\x02\x81\x6f\x72\x8e\x23\xd6\x9e\xb0\x6a\xb4\x32\x1c\xc1\xea\xfd\xe8\x1e\xde\xc2\xb1\x1d\x65\xfd\x82\x51\xff\x64\x67\x36\xe7\xa7\xaf\xd1\x6d\x31\x6d\xac\xac\x9f\x30\xb7\xc2\x0a\xe4\x24\x2a\x4a\x04\x39\x6d\x2c\x9e\x94\xdb\x42\x56\xce\xb7\x03\x2e\x17\x0f\xf9\x59\xc6\x24\xd9\xd7\xe4\xef\x22\x3c\x89\xfc\x26\xbe\xc2\x56\x4f\x9e\xd1\xdb\x2c\xde\x5a\x62\x7b\x94\xd6\x2d\xf9\x43\x1a\xb7\xe4\x2f\x30\x6d\x89\xef\xca\xaa\x7c\x55\x5d\x10\x92\xda\xa8\xf8\xca\x99\x3c\xa4\xb8\x2f\x17\x84\x5d\x28\x89\x29\x49\x01\x50\xc8\x27\x24\xa4\xac\x7f\xbe\xdd\x3d\x75\x5d\x16\xb2\xc4\x86\x67\x3b\xca\x59\x9c\xbd\xe5\xb2\x23\xf1\xf8\x92\xe3\x54\xcb\xd1\x21\x3e\x3d\xe6\x0c\xd8\x5b\xb4\x0d\xc5\x35\x50\x74\x43\x22\x9a\x5b\x4a\xd8\x65\xe0\xb2\x0f\xc1\x35\x0b\x3f\x72\xec\xfb\x7d\xee\x89\xbe\xbd\xb6\x7e\x43\xbf\xa1\xec\x87\x08\x3f\x8a\xf0\x7e\x6f\x90\x1b\x78\x90\x14\x0f\x0e\x07\x64\xe3\x36\x9f\xa3\xb7\xf0\x78\x89\x4d\xb6\xd4\xef\x5f\x93\x4d\xb9\x2d\x6c\x17\x86\xb5\x25\x97\xd4\xef\xdf\x90\xf3\xf2\xf1\xe5\xc2\xb0\x2e\x89\x43\xed\x7a\xde\x18\x8d\x4b\xef\x37\x2d\xcf\x6f\x34\x4c\x3e\xd1\xf7\xe4\x94\x5e\x91\xb7\xb4\x34\x12\xca\xc5\xf3\x81\x9e\xa1\x04\x93\xa7\x54\x13\x36\x01\xa1\x7a\x6b\xe4\x79\xfe\xe0\x8b\x58\x49\x1f\x28\xa5\x41\x45\x23\x01\xad\xe9\x03\x75\xb9\x32\x50\x0c\x83\xae\xa3\xa7\x54\xb2\x71\x05\x95\x78\x20\x50\x71\xf9\xe7\x03\x89\x29\xa5\x57\x10\x23\xf9\x82\x9c\xf7\xe8\x87\xe5\xd3\x55\xc1\x7c\xc8\xf9\x0f\x34\x5c\x98\x56\xcf\xc4\x00\xf7\x5e\xd7\xd1\x27\x7a\x4d\x36\x1c\xee\xf9\xaa\xe0\x1e\x9b\x02\x4c\x48\x01\xe4\x63\x9e\x55\x5b\xa8\xe4\xe8\x36\x27\xcb\x4a\x0f\x64\xa7\xeb\xcf\x8a\x4d\x31\x5c\xd4\x20\x0f\xe4\x23\x41\xe8\x82\xde\x1e\xf0\xf2\x74\x45\x6f\x16\x9a\xa1\x59\x9a\x46\x2e\x96\x9f\x56\xd4\x29\x7e\x95\x8a\x0d\x45\x6f\xdb\xe6\x04\x7e\x32\x58\x08\xf5\x25\xb4\x33\x86\xb4\x93\xcd\x89\xb6\xbd\x26\x0f\xb4\x93\x73\xfe\x05\x6b\x56\x59\x3a\xf4\x1a\xe5\xe4\x81\x81\x35\x72\x81\xb1\xd5\x4a\x5f\x56\xd2\x07\xe0\x40\x54\x26\x48\xdc\x94\x0f\x14\x2a\xf9\x4f\x29\x25\x7d\xce\x99\x14\xb8\xa3\xc1\x10\xf7\xad\x32\x51\x9d\x47\x1d\x49\xea\x2e\xd8\x4d\xaa\x08\x2e\xb8\x7d\xb3\xcf\xbd\x35\x10\x3b\x93\x2e\xd9\x6a\xbf\xbf\x3d\x80\x69\xcf\xce\xa3\x76\x8a\xa7\x01\x2d\xd1\x2d\xd9\xea\x28\x45\x01\xd6\xf5\x1d\xfc\x8f\xaa\x7d\x12\x08\x84\x24\xc1\x44\x25\x27\xba\x83\x8a\x8c\x46\x1c\xe9\x31\xa4\x25\x5e\x04\x6d\x89\x08\x82\x7a\x16\x02\x60\x12\xe2\x08\x29\x17\x46\x84\xc3\xfe\x1b\x04\xc4\x5b\xc1\xc3\xac\x72\x12\x66\xb9\x94\xd8\xcf\x19\xb2\xe4\x8b\x86\x06\x3e\x02\xfe\xb9\xb1\x93\xf3\x20\xe2\x5f\x0f\xc4\xe6\x9a\x94\x52\x5f\x11\xd0\x49\xb9\x0b\x70\x39\x47\xce\xea\x6a\xff\x34\x04\xca\xbc\xbf\x0a\xf9\x32\x1f\x12\x9a\x10\x05\x18\x9a\xd5\xf5\x4e\x64\x50\x5e\xe0\x82\x5f\x15\xa9\xef\xbb\xe7\x46\x54\x1d\x73\x98\x03\xcd\x99\x11\xd3\x2a\x62\x41\x7a\x9d\xdf\x31\xbc\x50\x26\x9a\x95\x2c\xd9\xbd\x5a\xdb\x32\x5b\xf1\x65\xc2\x0e\x98\xdc\x1e\xf0\x11\x9f\x41\x7c\xc6\x45\xcd\x19\x17\xc9\xb7\x8e\xab\x33\x2e\xe8\x78\xb7\xa8\x2d\x2d\x88\x9c\x41\x7c\x04\xff\xda\x05\x09\x4b\xad\xa5\xe6\x0a\xe3\xb8\x5c\x92\xab\x03\x79\x48\x6f\xc5\xcc\x90\xaa\xae\xdc\x59\x85\xba\x9b\xef\xac\x20\x7c\xc2\xbc\x91\x02\xa8\xb2\xb3\xfe\x55\x11\x65\x13\x06\x1b\x28\x7a\xc4\x11\xec\x01\xd9\x5e\xd4\xd9\x67\xf1\xf6\xd1\x39\x69\xd1\xc5\x1e\x3c\x5c\xb2\x55\xae\x60\x7d\xa1\xb7\x20\x3b\x59\x20\x16\x11\x16\x79\x96\x14\xa6\x94\x36\x5f\xb6\xb7\x09\x70\x7b\x16\x79\x1d\xed\x7c\x91\xed\x14\x78\xbe\xaa\x11\x3d\xe0\x21\xfd\x18\xc7\x60\x93\xd1\xf5\xca\x4f\x84\xc5\x35\xc7\x45\xa0\x58\x56\x44\x89\x41\xb6\xd8\x44\xd7\x43\xbe\x3b\xe5\x93\xec\xc8\x8b\xc1\x6f\xa6\xeb\xac\x1f\xa4\x9f\xec\x8d\x38\x93\x1c\x29\xb5\x22\x1a\x55\xec\xb7\x11\x58\x6e\x0f\x57\xeb\x20\xe4\x80\x87\x3c\x08\x4d\x3d\xaa\x5f\xbe\x4a\x83\x67\x33\x22\xc6\x91\xcb\x13\x7c\xa4\xb8\x44\x21\xc6\x92\xf5\xaf\x4f\x98\xdc\xc7\xe4\x80\xb2\xfe\xcd\x09\xcb\x65\x6b\x5c\x39\xeb\x5f\x4e\x57\xed\x52\x1a\x53\x35\xe0\x4a\xbf\xb6\xb0\x38\x69\x91\x74\x45\xd0\x53\x56\x33\xc2\x42\xb8\x9d\xb2\xb5\x13\xbb\xf8\x2d\x36\x6c\x99\x04\xa9\xb8\xa5\x28\x82\xbc\xa0\xf9\x9e\x6b\xd3\x62\x97\x7e\xf4\x3f\x08\x2d\x8e\xdd\x75\x12\x6f\xd8\xde\x8e\xbc\x24\x0e\x3c\xdc\xc7\x3f\xa4\xb6\x6f\x27\xc1\xa3\x40\x78\x5f\x5a\xcc\x90\x78\xbf\x47\x5c\x19\x56\x2c\xf1\x61\xf1\xf3\x34\xde\x62\x4c\xa4\x47\x35\xce\x8d\xf1\x36\xb9\xb6\xd2\x13\x8f\xbf\x12\xd7\x19\x0e\x10\xf6\x06\xbe\x8e\x16\x16\xaf\x06\x9e\xf5\xb3\x78\x4b\xe1\xff\x13\x56\xba\x3d\x88\x70\xae\x52\xf1\x51\x94\x00\x29\xb9\x3b\xb6\x56\x4b\x76\x8e\xf4\xdd\xd6\x6b\x8a\xae\x94\xee\x08\x5a\x7f\x2a\x5e\x82\x36\x50\x5d\x4b\x34\x24\xeb\xdf\x88\xe6\x48\x76\x40\x19\xb6\x5a\x86\xb5\x1c\xd1\x58\x1e\xce\x15\xc6\xf9\x86\x1b\xb7\x30\xce\x0b\x23\x3f\xb1\xe9\xcf\x28\xe9\x2b\x12\x18\xa9\x8e\x7f\xb0\x08\xd4\x52\xcb\x80\x27\x0a\x84\x05\xd7\x65\x95\x48\x24\xf9\xb5\x59\x53\xa2\x11\x0f\x2a\x78\xf2\x47\x98\x84\xb4\x17\x29\x8e\x25\x31\xa4\xbb\xf2\xe1\x69\xbc\x95\x63\xa7\x25\x59\x28\xcc\xde\xc1\x7e\x9f\xe0\xbe\x17\x24\xe2\x90\x81\xae\xa3\xf0\x04\xe8\xa9\xbf\x46\x95\xe8\x9e\x5d\xcc\x23\x3b\x9f\x47\x29\xb9\xb6\x42\x72\x63\xed\x0e\x07\xe1\xca\xc4\x95\xfc\x18\xea\x69\x15\x2e\xff\x6e\xb7\x41\x74\x2e\xed\x2a\x62\xc1\x35\xa7\xdb\x39\xba\x84\xd4\xda\x09\x5d\x2a\xea\x95\x74\x2d\x94\x36\x81\x8a\x87\x01\xc3\x29\xdb\x94\xef\x56\x67\x5c\xe8\x28\x42\xc0\x6d\x94\xf0\x0d\x4c\x98\xa6\xdb\x4c\x64\xe0\x20\xd7\xf5\xaf\x90\x1e\x49\xd7\x15\xa7\x22\xec\x2d\xd6\x72\x05\xc7\x1c\x15\xbb\x11\x86\x73\x8c\xf9\xcf\x88\x2c\x93\x15\x17\xab\x83\xa5\xb1\x22\x21\x0d\x9a\x9b\xa3\xd2\x07\xbf\x40\x33\xd5\xc5\xf4\x33\x8a\xc4\x4c\xe5\xff\xe3\x62\x41\xfc\x8d\x22\x19\xd6\x20\x9f\xe0\x72\x25\xf1\x32\x19\xe3\x90\x3f\xc3\xf9\x12\xe4\xe8\xe4\x1a\xe0\x1f\x98\x64\x07\x4c\x78\xbb\x71\x19\xe8\x17\xca\x75\x15\x0a\xcc\xbd\x50\xd4\x08\xf3\x85\x15\x4a\xa4\xbd\x10\x28\x0b\xfb\xd7\xb4\x00\xb9\xa1\xf2\xa1\x9a\xab\xe4\x0e\x96\x0d\x0a\xad\x21\xb9\xb4\x91\xf3\x66\x43\x48\x6a\xc6\x81\xa8\xbe\xbb\x3f\xaa\xc1\x7d\x1d\x5d\x99\x17\x73\xfd\x9d\xc1\xeb\xdd\xaa\xec\x9d\xe5\xd7\xc4\x55\x7d\x7f\x5c\x14\x91\x5b\x20\x1c\x14\x52\x6d\x42\x05\x68\xb0\x50\x74\x63\x2b\x00\x93\x90\xc3\x75\x5c\x3b\xb9\xa9\x18\x19\x17\x8d\xd9\x6c\xa5\x64\x47\x93\x7e\x12\xc7\xc2\xb2\xca\x6b\x78\x65\x8d\xdd\xa2\xdc\x69\xac\x1d\x59\xd3\x24\x17\xd1\x9e\x8b\xab\x22\x88\x5f\x02\xaf\x17\xd2\xf0\xa1\x59\x6b\xb2\xa5\x49\xdf\x0e\x4b\xa4\xb9\x52\x7b\x4c\xe9\x56\xd7\xb9\x4e\x9b\xf4\xb7\xb6\xe7\x05\xd1\x79\x9b\x66\xfb\x3b\xd2\xa2\xdd\xc6\x61\x49\x19\x62\x71\xbe\x38\xb7\xfe\x40\xe7\xe4\x13\xe6\x2a\x6e\xde\x14\xa5\xd4\x5f\x68\x85\x1c\xac\xe5\xc6\x17\x8d\x9c\x95\xe6\x34\xd5\x38\xf2\x1e\x6c\x6e\x8a\x59\xe4\x54\x81\x5b\x6e\x16\x37\x96\xbf\x22\x6f\xe9\xbf\x90\x8d\x4e\xf1\xe2\xd4\x3a\xed\xcb\x5b\x31\x8a\x60\x11\x17\xb1\xa6\x91\x36\x24\x1e\x57\x69\x23\x74\xc6\xd5\xe8\x8a\x81\xe6\x43\x61\x90\x79\x7f\x8f\x0d\x26\x3e\x60\xf2\x9c\xfe\x8a\x1a\xd3\xf1\x3d\x79\x8a\x31\xb9\xa8\xbe\xf5\x73\xeb\x03\xf9\x28\x4c\x2f\x6f\x21\xf0\xeb\x02\xb6\x2a\x07\x26\xba\x9c\xb1\x17\xf9\x9a\x78\x2b\xbf\x9c\x38\x95\x38\xa3\xb7\x22\x9e\xec\x42\xec\x63\x8e\x58\x2e\x62\xd6\x5f\xc8\x65\xf6\x56\x7c\x9e\x38\xe2\xf3\x40\xfe\xa4\xac\x6a\x92\x92\x7b\x36\x38\xff\x14\x02\x75\xfd\x4f\xc1\x41\x7e\xa2\x7f\x2e\xe3\x55\x45\x5b\xfc\x78\xa7\x7a\xb6\xbc\x26\x2f\xea\x76\x54\xae\xe1\x73\xee\x7a\xd5\x2c\xd2\x6e\x34\x4b\xbb\xd6\x8e\x3e\x2e\xd9\xea\x84\xfe\xb4\x4c\x56\x3f\x64\x5c\x96\x94\x4b\xee\x63\x25\xe5\x4f\xf5\xac\xc6\xcf\x88\x91\xbf\x61\x81\x56\xd3\xfa\x54\xa1\x6a\x21\x22\x45\x88\x07\x16\x7c\x82\xc9\xb0\x3b\x19\x73\x90\x28\xe2\x9d\xe8\x42\x29\x11\x9c\x24\xfd\xeb\x52\xcc\x93\x03\x93\x57\x3b\xe1\xd5\xa4\x98\x28\x63\xfc\x64\x9c\x43\xff\xfa\x50\x49\x08\x54\x5a\x9e\xaf\xc8\x35\x79\x41\xde\xaf\xea\xae\x94\xaa\x5a\xf3\x23\x35\x72\x09\x3e\xa8\x06\xdf\x15\xef\x25\x0e\xf1\xe6\xcc\x26\xa3\x0c\xe2\x6f\xa4\x31\xf6\x6d\x3e\xd6\x24\x2a\x17\x6a\xb2\x58\xae\xac\x04\x94\x34\x09\xf6\xbe\xf0\x7d\x28\x8c\xe9\xa9\x15\x1c\xd5\x8f\x78\xb7\xc7\xdd\xc4\xa2\xed\x00\xae\x5f\x68\x73\x57\xc1\x31\x33\xe6\xbd\x55\xbd\x56\x79\x82\x93\xc6\x82\x79\xca\xb5\xb3\xca\x24\xb5\xb8\x20\x2e\x57\xad\xa5\xac\x4e\x46\xa4\x86\x9e\x89\xb3\x4b\x42\xdd\xe4\xd0\x42\x7f\x04\x23\xe8\x8e\x2e\x57\xc4\xa5\xc7\x26\xf1\x40\x07\xca\x98\x15\x92\x94\xe5\xef\x5c\x5a\x00\x12\x7c\xbb\x46\x98\x84\x45\x96\x97\x06\x65\x71\x59\x48\x38\xdf\xa8\xba\x6d\xa8\x42\x19\x84\x6f\x9d\x83\x60\x50\xe3\x41\xfc\x69\xed\x11\xdf\xec\xf3\x37\x39\x87\x74\xc7\x22\xb6\xb4\xb9\xb8\x5a\x44\x65\x99\x52\x54\x5c\x50\xf3\x89\x65\x90\xf8\xa0\x88\xd3\x6d\x5f\xa9\x19\x24\x03\x95\xb9\x67\x40\xea\x20\x1d\x90\x09\xa4\x11\x95\x69\x76\xca\x60\x85\x07\x0c\x05\xbc\xd0\xf6\x3c\x24\xe2\xe9\x31\x29\x25\x14\x2e\x91\x08\xcd\x18\xe2\x45\xca\x9f\xaf\xfd\x17\xd7\x41\x9a\xc1\xe3\x36\x26\x12\x89\x63\xbb\xa2\xd1\x08\x57\x62\x6c\x51\x84\x8f\x02\x5d\xe7\x0d\x1f\x38\xc1\x32\x2d\x43\x00\xe1\x2e\xf0\xe0\xa0\x68\x0d\x1f\xda\x2c\x06\x49\xd3\xcf\x7b\xa7\xa0\xc6\xfa\x60\x4f\xe3\xd3\x5c\x28\xfd\x64\xb9\xc2\x87\x16\x9e\xc7\x3a\xec\x13\x62\xf7\x67\x4b\x91\x8c\x7b\xa5\x04\x80\x8b\x07\x34\x69\x1a\x31\x13\x92\x91\xdb\xce\xb5\x51\xe4\x77\x22\x59\x99\xc1\x08\xec\xfd\x2d\xa0\xfc\x39\xc9\xe0\x03\x1f\xb0\x95\x15\x06\x92\xaa\xe4\x24\xac\x31\x2d\x79\xb6\x0a\xb1\x47\xa8\xf7\x48\x95\x41\x8b\x85\x50\x6e\x27\x58\x15\xf7\xea\x2b\x9e\x06\x77\xf7\xb4\x34\x62\x82\xaf\xb0\x51\xf9\xae\xfd\x46\xce\xe2\x44\xf1\xe0\x56\x58\xdd\xed\x01\x58\x1d\xeb\x0b\x83\x1f\x6c\x74\x4d\x33\x7e\x7e\x6f\x12\x0d\x50\xc1\x23\x44\x5e\x30\x92\x3b\x89\x2d\xaf\x60\x59\xd1\x01\x1f\xc9\x0b\x20\x62\x25\x82\x07\x73\xa9\x90\xbf\x81\x27\x7d\x99\x08\x1f\x88\x1f\x27\x2e\xfb\x0d\x7e\xaa\x1e\x6a\x3e\xcf\xdd\xfc\x98\x6d\x58\xc8\x24\x24\xab\xb8\x15\x4b\x9f\x0a\xa7\xfb\xb9\xd8\xec\x6e\x43\x21\x04\xa9\xfc\x66\x8b\x32\x02\x6e\x00\xa9\xb5\xc0\xf1\x96\xba\xad\x12\xe7\x4c\x66\x83\x12\x7c\x20\x1c\x4d\xca\x32\xce\x19\xc3\x52\x06\x55\xea\x95\x02\xeb\xb7\x0e\x49\x31\xfc\x55\xb7\x17\x93\xd3\xbd\x69\x5d\xc9\x27\x67\x79\x7e\x5a\x1c\x1e\x6a\x69\x30\xcf\xa6\x76\x72\x02\x87\x2c\xb8\x34\x2a\xdf\x20\xe7\x13\xcd\x4a\xcb\x48\x1c\x34\xf7\x23\x38\x29\x93\x4f\x90\xb4\x9c\x20\x36\x9f\x20\x36\xd9\x51\xc1\xc6\xda\x52\x64\xc5\x5c\x5d\xa5\x71\x39\x31\xf2\x69\x90\x8a\x29\xb2\x53\xa6\xc8\x01\xef\xf7\x21\x3e\xc0\x55\x8d\x4a\xff\x46\xb4\x67\x1e\xf8\x5e\x24\xe6\x01\x0a\x68\x33\x66\x86\xf3\xef\x0f\x49\xbc\x09\xd2\x5a\x64\x85\xd7\x57\xe6\x10\xc2\x84\x21\x79\xe6\xac\x89\x23\x15\x76\x99\x2e\x4c\xf2\x21\xa7\x2b\x0e\x2f\xe1\x84\xe3\x9a\x45\x95\xb3\x71\x79\xd7\x10\x86\x02\x24\x0c\x9d\x18\x63\x92\x1e\x30\xf1\x58\x9a\x25\x71\xe5\x6c\x33\xdf\x2f\x5d\x7a\x6c\x1c\x0e\x70\x38\x4c\xe4\x28\xce\xe3\xb1\xbc\x6a\x52\xfc\xdd\x9d\x53\x86\xaf\x15\x8c\x61\xb3\xce\x65\x3f\xaf\x5f\xee\xd2\x28\x69\xd0\xca\xf0\xed\xb1\xab\xeb\x49\x3f\x8e\x7e\x0e\x92\x34\x13\xfd\xd3\x78\x20\x77\x07\xef\x70\x40\xb7\x75\xa1\xc8\x5a\x7e\x24\x6f\x88\xf4\xa9\x54\x4d\xb8\x2d\x5e\x95\x4a\xc0\xce\xbd\xfe\xdf\x92\x19\x25\x0d\xaf\x66\x50\xce\xbf\x68\xbf\x8f\xc0\xa0\x57\x78\x39\x9b\x41\x27\x49\xd5\xeb\xd9\x0c\x3d\x51\x44\xae\x3f\x91\xe2\x0c\x2e\x16\x7c\xc3\x91\x40\x4a\xf7\x6c\xdd\xd5\x5c\x23\xd6\x0a\x0e\x47\x32\x45\x47\x4d\x73\xa8\x78\xca\xb9\xc6\x9b\x1b\xf4\x45\x41\x73\xb5\xd7\x00\xc8\xab\xa6\xb2\xb4\x23\xb7\xd2\x37\x6c\xdd\xd9\x1c\xb9\xcb\x25\x93\x77\xa5\x65\x13\xb5\xe3\xac\x90\x4f\xe5\x22\xe1\x48\x0d\xbd\xf4\x99\x94\x6f\x01\x0f\xee\x78\x09\x28\xff\xce\x77\x10\x75\x5a\xdc\x41\x25\xcd\xc7\x66\x2b\xd1\xaa\x3f\xe5\x8e\x0e\x6e\x00\x91\x5b\x8d\xb3\xd8\x9e\xf8\xd5\x2b\xa6\x86\xd6\x19\x34\xf0\x39\x5f\x10\xe2\x25\xda\x56\x82\x88\x66\x53\xdc\x1f\xd5\xa0\x89\xd5\xf7\xac\x0e\xb9\x7f\x07\x34\x91\xaa\x68\x55\x09\x59\x1a\xc4\x58\x59\x01\xb1\xe9\xdb\x7b\x44\xba\x65\xb2\xa2\xad\xe7\x59\xf3\x5c\x88\xcb\xf7\xe4\x4a\x09\x3f\x05\xf5\xb3\x67\x5a\x26\x89\xdb\x4e\x1d\x27\x8b\xa4\x39\xb4\x19\x51\x96\x1a\x3b\x60\x6c\x25\xc4\xa6\xf1\xd2\x58\x91\x94\xc6\x4b\xb3\x4c\x92\x41\xed\xfd\xde\x20\x29\x45\xe9\x7e\x6f\xe0\x1f\x02\xb2\x7c\x4f\xae\xeb\xad\xcb\x90\x1c\xfb\x60\xdd\x5e\x5b\x36\xb9\xb1\xd2\xc3\x01\x25\x44\x2e\x48\xae\x06\x49\x89\x8d\xa4\xd4\x5e\x2a\x03\x26\xf2\x83\x5c\x93\x1d\x4d\xfb\x37\xdf\xbc\x3c\xef\x28\xef\x5f\x9f\xd0\x90\xdc\x0d\x72\x73\x42\x77\xb8\x0e\xb3\x8c\x56\xd4\x3e\x1c\xf2\x39\xe3\x87\xc1\xb6\x7b\xc6\x7c\xf7\xb4\x80\x5d\xa5\xd9\x62\xff\x2c\xbd\x08\xb6\x65\x58\x23\x9f\x3c\xbc\x85\xa7\xd7\x41\x55\x87\xdd\xef\x03\xf0\x8e\xd8\x61\x06\x65\xea\xc6\xbf\xdf\xdb\x10\x66\xe5\xdb\x61\xe8\xd8\xee\xc5\x87\xbc\x73\x85\x59\x2d\x37\x70\xb9\xaa\x41\xce\xab\xdb\xdb\xd6\x35\x53\x99\xcf\x11\x86\xc1\xf6\xb3\x9d\x04\xb6\x78\x97\x6d\xd9\xa6\xbf\xdf\xfb\x64\x03\x55\xc2\xf8\x8a\x79\x4f\x77\x59\xac\x34\x7b\x49\xb3\x16\xd9\xeb\x9c\xfe\x89\x2e\x21\xc3\xd5\x7e\x8f\xce\x8f\x29\xbd\xd4\xf5\x6d\xc5\x8a\xcd\x45\x5a\x08\xcc\xa1\x14\xe6\xba\xdc\x80\x97\x2b\x69\x11\xf8\xab\x54\x8c\x96\x2f\x21\x17\x25\x79\x89\x32\xbc\x3a\xa0\x4b\x6c\x2d\xff\x42\x97\x78\x85\xc9\x0d\x5d\x5e\x16\xf2\xbd\xd3\xea\x71\x6d\xd1\x9f\x94\x76\x13\xd5\x93\x73\x8f\x39\x34\xaa\x98\x43\x03\xb5\x8b\xe3\x7a\x17\xdb\xca\x60\xa4\xcd\xee\x0d\x3b\xbb\x73\x57\x76\x7c\xb8\x78\x6b\x85\xc4\xa5\x3f\xa1\x08\x13\x8f\xba\x8b\x14\xac\x83\x77\x68\x24\x3f\x21\x86\x29\xa5\x2e\x5f\xe3\x9f\xc8\x9a\x7a\x77\x01\xef\x6a\x49\x2f\x31\x3e\x02\xa3\xaa\x94\x59\x75\x1d\xad\xa9\x27\xde\xde\xa7\xeb\x6f\x31\x32\x33\xc4\x54\x56\x93\x90\xbc\x7f\xac\x80\xa8\xbd\x63\xc5\x44\xf6\x8d\x65\x1f\xf0\x92\x8f\xc2\x2a\x37\x50\xb7\xa9\x79\x7e\xcb\xfd\x7e\x4a\x96\xd4\x25\x5b\xf5\xfc\x65\x26\xd4\xbd\xac\x83\x02\xb7\x4a\x81\x57\x50\xb0\x23\xd5\xb1\xb1\xb6\xa4\x75\x64\xac\xcd\x01\x5b\x49\x1e\x4b\x7d\x46\x9b\x51\x70\x1f\x68\x4d\x28\x79\x5a\x18\x3a\x9e\xd3\x63\x83\x5c\xd0\x1b\xce\x73\x3f\x52\xe3\xf1\xc7\x27\x37\xb9\x6a\xf0\xf1\xe4\x44\x30\x95\x77\xf4\x66\xf9\x71\x45\x5e\xd3\x3f\xd1\x3b\x4c\xde\x50\xe9\xe9\xa6\x94\xfe\xc4\x1f\xfc\x5c\xb3\x44\xbe\xe6\x83\x46\xfe\xa6\x3f\x2f\x64\xd4\xa1\x95\x87\x21\x92\xdf\xf8\x50\x54\x3a\xe2\xdd\x1d\x1d\xa1\x70\x02\x6b\x5d\x76\xcb\x01\x93\x67\xf4\xe7\xc5\x9b\xc5\xb5\xf5\xde\x7a\xb3\x78\x61\x5d\x1d\x9d\x2d\xff\x5e\xfd\xf8\x61\xf9\xf7\x4a\xd7\xd1\x33\xfa\x17\x7a\x26\xc3\xe5\x5f\xc1\x77\xf2\x99\x2e\x21\x3d\x51\xac\xeb\x9f\x85\x9e\xf9\xdb\xf2\xf5\xea\x09\x35\x30\x49\x95\x47\xcf\xf8\x23\xf2\xdb\xf2\x95\x28\xfa\xdc\x67\x97\x2c\xb9\x69\x97\xaf\xb9\x18\x71\x7b\x41\xdf\xf1\x0e\x34\x45\x98\xe4\xe1\x29\xd8\x81\xde\x91\xcf\xf8\xc0\xd5\xcb\x22\xc5\xc0\xc3\x16\x43\xd3\x0d\xdc\xfb\x54\x35\x54\x8a\xe5\xfc\x14\xcc\x33\x22\xab\x73\x79\x18\xa3\x48\xb5\xcd\xf0\x3d\x64\xf1\xe5\x02\x79\xb4\xe5\xb3\x0b\x9a\x11\x0d\x08\xd4\x0e\xe4\x0b\xdd\x2e\x86\x96\xf9\xf8\xcb\x8f\x86\xae\xcb\xa7\xc7\x94\x3e\x44\x5f\xf0\xe3\x2f\xbd\x1e\x7e\xac\xec\x8a\xc7\x94\x5e\x34\x37\xba\x62\xbf\xe0\x13\x47\x81\xa6\x17\xb0\xd1\x82\x86\x66\xa8\xe1\x1c\xb9\x95\xca\x5a\xe6\x22\xd0\x4a\x4a\x47\x80\xc6\x3a\x36\xcb\xfd\x6e\x9b\x40\x84\xfa\x7b\x79\xa4\xf1\x1f\xdc\xfa\xc8\x77\x6f\x6a\xc7\x94\xda\xba\x2e\x36\xb5\x82\x9d\x36\x3c\x44\x6e\x6d\xc7\xf2\x14\xf6\xca\x77\xb3\x8c\x65\x6b\x96\x54\x7c\x43\xfb\xbd\xf0\x09\x89\x22\x79\x10\xf8\xb2\x1e\xe9\x78\x2e\x97\x4a\xb1\x3c\xc2\xea\xf2\xd8\x15\x0b\xa2\xba\x50\xdc\x03\xdf\xdc\x6a\x7a\xcb\x0d\xfd\xa9\xfa\xe0\x13\x3d\xbe\x21\xa7\xf4\x1d\x72\x30\x79\x4b\xb5\x6b\xbe\x98\x4f\x73\xef\x01\xf0\x8b\xbb\xb4\x85\xa7\x2d\x3c\xe6\x79\x9d\xc7\x5c\xb4\x89\x81\x97\x8b\xcb\x16\x31\x50\x0a\x68\xb7\x1d\x21\xb8\xd8\xba\x24\x1f\x95\xd3\xa4\x81\x8f\x3e\xc0\x36\x1d\xef\xf7\xa9\x18\xfc\xd7\x32\xe4\xf9\x74\x71\x65\xbd\xe7\x2c\x4a\xfe\x7a\x61\x5d\x93\xdf\x8a\x5f\xf5\x70\x68\xf2\x8c\x7e\x58\x9e\xae\xc8\x2b\xf8\x38\x39\x5f\xbe\x5e\x91\xcf\xf0\xbd\x77\xbe\x7c\xb3\x22\x0f\xa9\xbf\xe8\x3d\x5f\xfe\xb6\x7a\x34\xb0\x0c\xf2\x97\xc2\xf8\x6e\x16\x4f\x97\xbf\xad\x2c\x5e\x46\xbe\x54\x9e\x03\xbc\xd5\xe3\xc5\xe4\x25\xad\x47\x89\x91\xaf\xd4\xd7\xf5\x97\x8b\x0d\x7a\x89\x2d\xe9\x8b\x37\x72\x5f\xbc\x71\x20\xbf\xd6\x7b\x7e\xa9\x41\xbd\xff\xda\xb2\x24\x85\x20\xff\x4c\x5b\x2d\xbe\x01\x26\x9f\x84\xd6\x7d\xee\xdb\x5f\xe8\xaf\xfc\xb5\xff\x45\x7f\xe5\x6f\xfc\x3b\xcd\x38\x93\x01\xea\xbf\x2e\x7f\x5b\x61\xf2\x07\xfd\x04\xef\xfa\x68\xd0\x7b\xd8\xfb\xbd\xf7\x4b\xef\xc2\xfa\x4b\x7c\x92\x84\xd1\x4f\x8b\x9e\x28\x3c\x79\x78\xf2\xfb\xc9\xbf\x4e\x2e\xac\x2f\xe2\x93\x44\xac\xf1\xf2\xba\x7e\xd6\x08\x9b\xc3\x24\x60\x34\x62\x8b\x7c\x88\x22\x25\x28\x65\xbf\x37\xac\x48\x0d\x45\xe1\x0f\x0c\x12\xb3\xc6\xf4\x14\x8c\xa5\xde\x2f\xf2\x71\x45\xd2\x5f\x9e\xae\x2c\x83\xd8\x4c\x8c\xf8\x1f\xbd\x98\xf5\x02\x46\x52\xf9\x3b\x61\xbd\x18\xa4\xe4\x58\x4c\xab\x90\xf1\xfe\xf0\x17\x7f\xa3\x57\xc4\x66\xd8\x7a\x45\x9e\x11\x7f\xf1\x33\xfa\x4c\x52\x86\xad\xcf\xf8\x88\xd7\xa2\x21\x23\x1f\xc5\x67\xef\xd9\x01\xf2\xec\x40\xe5\x1d\x2b\x16\x16\x9f\x94\x6e\xf9\x93\xcf\x4a\x8f\x37\xf9\x76\x45\xd6\x8c\x7a\xec\xe4\x7c\xb9\x63\x2b\xe2\xf3\xef\xbd\xf3\xa5\xcb\x56\x64\x5b\x34\xbd\x66\xd0\xf6\x9a\x11\x8f\x41\xeb\x3e\x83\xe6\x7d\xc6\xdb\x7f\xbb\xa2\x5b\xde\x3e\x7c\xf6\x3c\x76\x38\xb4\xa8\x14\x1f\xef\xe6\xc7\x05\xff\xb5\xc5\x51\xb5\xef\xe1\xba\xc0\x6d\x05\xdf\x55\x78\xad\x7a\xfe\x27\xa9\xaf\x01\xce\x6d\xef\x62\x2f\x29\x17\x7f\x55\x6e\x15\xd2\x77\x28\x05\x6b\x56\x45\xeb\x4b\x85\xcb\xb3\x7e\xc6\x41\x6c\xf4\x76\x7e\x16\xa2\x55\x34\x6b\x3a\xd5\xdb\x6f\xbb\x67\x0b\xf6\xef\xf0\x2b\x38\x08\xfd\x07\x62\xe4\x13\x97\xfc\x82\x62\x47\x48\xb8\xb8\xbc\x41\x31\x26\x6b\xc9\x94\x42\x98\x1b\x7e\xf1\x8b\x4f\x0d\xbe\x39\xd4\xd8\xeb\x72\xb7\x3a\x69\x3e\x0c\x57\x3d\x9b\xff\x97\x54\x38\xef\x72\xb7\x22\x97\xb4\x52\xa0\x56\x21\xe7\xf4\x8c\x53\xe0\xd0\xf3\x45\xde\xea\x79\x25\x2c\x89\x2f\xb3\x73\x35\x76\x48\xac\xbb\x1b\xba\x7d\x34\xe8\x5d\x3e\x1a\x90\x53\xea\x2e\xd7\x2b\xf2\x96\x3a\x3d\x6f\xb9\x5b\xf5\xdc\xa5\xbf\x22\x1f\xa8\xf3\x68\x00\xbf\x1f\x0d\x4e\x6e\xf8\x1e\xc1\xd0\x29\xf9\x40\xde\x62\xf2\x9c\x86\x47\x49\x73\x56\xe6\xe1\xdb\xcf\x57\xf4\x29\xc9\xfa\x2e\x64\xc2\x15\x93\x80\x3e\xed\x7d\x10\x57\x84\x7f\xd3\xc9\xb3\x5c\xcd\xcb\xcf\x0c\x55\x5c\x16\xda\x52\x35\xd9\xc0\x14\x5c\x69\x56\x22\xf5\xfc\x48\xd7\x51\x9e\x73\xa5\x08\xb0\x88\xf6\x7b\xa4\x06\xe1\xe6\xf1\xc2\xd5\x94\x4d\x11\xc6\x10\x79\xd4\x34\x07\x42\xa8\x6c\x9d\xd5\xd1\x08\x1f\xee\xb2\xf2\xb4\x2c\xd0\xba\x3c\x54\xae\xd4\x75\xe0\xb1\xfb\x6d\x49\x77\xa1\xfa\xb6\x33\x37\x10\x30\x59\xdf\xeb\x83\xfa\x5e\x1f\x37\x05\x86\x6a\x73\xc4\x96\xe2\x4c\x35\x66\xc6\x52\xc2\x55\xc0\x2c\x23\x80\x54\x79\xe6\xd8\x38\x70\x06\x90\x88\x14\xd0\x5c\x00\x63\x28\x85\x6b\x2a\xe1\x06\x48\x91\xcc\x3f\x62\x68\x87\xdb\x8e\x07\x95\x3e\x9d\xe7\x32\xdc\xa7\x30\x04\x4a\x9b\xed\x8b\xd4\xb5\xb7\x2c\x7f\xba\x23\x41\xfa\x31\xaf\xf2\x0a\x92\x66\x58\x2e\x59\xdb\xe9\x07\x05\xd8\xb3\xbc\x56\xe3\xe0\xbf\x63\x41\x2c\xe8\xeb\x89\x14\x1d\x9a\xe5\x92\x0a\x00\x13\x4d\x6a\x96\x77\xc0\x87\xc3\xea\x80\xf9\xfe\xf7\x7f\x9e\xa4\x97\xe7\x0f\x44\x0c\x98\x66\x4e\xb4\x07\x32\xee\x4b\x9b\x68\x0f\xe0\xb6\xe5\xb6\xeb\xa6\x8b\x8b\xa4\x7f\x7c\xb2\xb5\xb3\xf5\x03\x8f\x6a\x6f\x8d\x07\x93\xd4\xec\x4f\xe7\x93\x5e\xdf\x30\x87\x0f\x46\xfd\xc9\xb4\x37\xec\x4f\xcc\xf1\xf3\x71\x7f\x36\x36\xfb\xf3\x07\x93\xfe\x7c\xd8\x37\x8c\xc9\x83\xd9\x03\xc3\x35\xfb\xc6\xb4\x07\xbf\x06\x7d\x73\x34\xeb\xcf\x66\xd3\x07\xc3\xfe\x70\x34\x7c\x30\xe8\x0f\x67\xe3\xe7\xe6\xa8\x3f\x18\x0e\x1f\x4c\xfa\x86\x31\x7e\x60\x4e\x1e\x4c\xe0\xbf\x57\xc6\xdf\xda\x8f\x4f\x78\xd3\x3f\xfe\x1f\xbe\xf5\x2a\x67\x53\x89\x6b\x6f\xb3\x5d\x02\xc7\x54\x4b\xff\x46\x5a\x44\x9d\x04\x3e\x12\xf9\x93\x82\x34\x3f\x53\x9b\x9b\x21\xd9\x32\x5b\x55\x6f\x36\x88\x16\x55\xd8\x04\x2f\x92\x65\xb6\xb2\x12\x2b\x6a\x49\xd5\x13\x32\xd5\xab\x7c\x7b\x28\xf2\x01\xc9\xcb\x3b\x0b\x85\x1f\xb8\x48\x99\x1b\x40\xe6\x12\xd2\xb0\xae\x97\x4f\xb3\x13\x6d\xa5\xe1\x1f\x7b\x66\xfd\x16\xa0\x22\x4c\xb9\x75\x6f\x91\x89\x10\xa5\x8f\x28\xab\x5c\xe6\xe4\x56\xaf\x5c\x11\x87\x2e\x14\xa7\x67\x84\x6f\xdd\x90\xd9\xc9\x69\xb0\x61\xf1\x2e\x43\x09\x26\x09\x4d\x59\x96\xff\x56\xdd\x50\x10\xaa\x8d\x49\x1e\x0b\x91\x34\x2f\x84\x11\xbd\xd0\xf4\x28\x2a\xb1\x8e\xad\xfe\x26\x99\x2a\x2d\x11\x4e\x6d\x92\x54\xaf\x8c\x29\xc2\x73\x0a\x53\x58\x25\xd1\x8d\x6c\xbb\x67\xc2\xdd\x43\x45\x5f\x42\x82\x5d\xd0\xc9\xd5\x54\x40\x5b\xf6\x2d\x47\x56\x37\xd5\x56\x41\x6b\xce\x07\x54\x49\x5f\xa2\x24\xbb\xab\x5f\xcf\x23\xaf\xf3\xd6\xbc\xe0\x52\xbd\xa7\xef\x5c\x45\xac\x49\x28\x8d\x68\x3f\x27\xf6\xb9\xcc\x31\xd2\x19\x7a\x24\xa7\x5a\x25\xa8\xdf\x51\x5f\x07\x00\xb4\xb7\xf1\x2e\x65\xf2\x5e\x20\x25\x4b\x07\x53\xcf\x83\x1f\xb3\xfd\xfe\x98\xf5\xcf\xb2\x60\xbb\xbd\xd9\xef\xf3\x6f\x25\x73\x3e\xa6\x54\x7d\xd3\x33\xd9\xc7\x1d\x01\x29\x10\xed\x24\xaf\x8d\x84\x33\x52\xe0\x49\xf9\x69\x27\x9c\x55\x34\x3b\xd1\x36\xa9\x56\x25\xfc\xea\x5e\x8c\xf5\xab\x70\x80\x9d\xc1\xb6\xa2\xd5\x7b\x01\x92\xaa\x15\x82\x24\x4c\x99\x32\x37\xb6\x4c\xb7\x92\x88\xc4\xa0\x10\xda\x9d\xdc\x19\xda\x8d\x17\xb5\x72\x2b\x1f\xdc\xb2\xc5\xeb\xda\xcd\x4e\xd9\x89\x56\x39\x42\xad\x3d\x96\xd9\x36\xa0\x27\xe0\x74\x87\x76\xc5\x9c\x8b\x20\x3b\x2d\x9e\xbe\x88\x3c\x6d\xd5\xf2\xfa\xbc\x57\x96\xd1\x0a\x0c\x90\x79\x9c\xd9\x7b\x46\x6f\x83\xf4\x34\xde\xb9\x6b\xeb\xd8\x84\xa4\x6f\x4a\xd6\xc5\x53\x3e\x11\xdf\xb3\xbe\x84\xd8\xef\x51\xf9\x83\x1e\x1b\x44\x9e\xb5\xdc\xb2\xc4\x8f\x93\x8d\x1d\xb9\x4c\xd7\x8b\x09\xdb\x3c\x7e\xbe\xe1\x33\x68\x13\x5f\x32\x8d\xbc\x65\x6a\x3f\xbf\x2d\x2f\xa0\x53\x70\xf5\xa3\xf8\x0a\xe1\x23\xd6\xfb\xc4\x9e\x0c\x0c\x5d\xaf\x34\x6e\x92\xa2\xa1\xd6\x93\xe6\xb5\xb6\xf8\x8b\x29\xdc\xeb\x43\xd9\x60\x49\x2f\xe4\x2c\x91\x4b\x87\x8b\xe9\x30\xb5\x4b\xc9\x43\x4c\xe5\x23\xd6\x77\xc2\x5d\xa2\xeb\xc7\x99\x90\x45\xfa\x41\xfa\x39\x48\x03\x27\x84\xa9\xc5\xcb\x90\xbc\x6f\xf6\x29\xa3\x6d\x19\xc8\x44\xa7\xe9\x7a\x5b\x59\x4e\xcc\xa2\xe5\x18\x86\xa5\x69\xe4\x39\xa3\x8f\xde\x7e\x7a\xfd\xe2\xc1\xfe\x34\x09\x3c\x16\x65\xff\xfd\x48\x66\xcd\x7a\xca\x30\xb9\x60\x75\x16\x29\x92\xf4\x9e\xc6\x2d\x89\x21\x3d\x35\xb5\xd0\x81\xd8\x49\x60\x5b\xb7\xae\xc8\x7f\x9c\x1f\x03\x66\xd7\x5b\x3b\xf2\x98\x97\x1f\x05\x26\x1e\x0b\xed\x1b\xcb\x20\x9e\x5c\x82\xd6\x72\x68\x18\x64\x30\x36\x56\xe4\x9c\x65\x1f\x15\x69\x46\xe6\x7c\x10\x47\xdf\xb9\x38\xf8\x3e\x7a\x1e\x06\xee\x05\xdf\x55\x83\xf3\x28\x4e\xca\x63\x56\xa9\x75\x6c\x92\x80\x4b\xd7\x62\x08\x6a\x3f\x9f\x89\xcb\x08\x06\xea\xb3\x9f\x98\x13\xef\x22\x97\x59\x06\xe1\x63\x5c\xce\x7d\xde\x49\x42\x6f\xb4\x96\x06\x31\x8d\x15\x89\xa3\xa7\x7e\xc6\x92\x66\x50\xce\x81\xc4\x91\x48\x05\xdc\x5e\xf6\x1c\x18\x6e\xfd\xe9\x4f\xcd\xb8\x08\xfe\x58\x0a\x63\xcd\xa7\x0d\x04\x6f\xe3\x5d\x94\xd5\x1f\x7e\x5a\xc7\x57\x6d\xcf\x1a\x18\x4f\x93\xe0\xfc\xbc\x9a\xfe\x99\x3f\xfe\x2d\xca\xda\x0b\xa0\xcf\xdf\xef\xb2\xb4\x41\x89\x12\xb8\x09\x27\xd3\xb6\xe1\xee\x3c\x88\xd2\x32\x3a\x31\x0f\x99\xbc\xe5\x6a\x41\xc4\x87\x40\xa4\x31\x58\xc7\x57\xef\xf3\xce\x39\x36\x49\x26\x78\x87\x41\x72\x0a\xc4\xd2\x03\x6d\xe9\x81\x1f\xbb\xbb\x54\xcb\x8b\x44\x16\x4a\x91\x9f\x89\xdc\x2a\xf9\x78\x38\x1e\x35\x2d\x8e\x98\x01\xb5\x7c\x36\xfc\xa1\xc8\x42\x03\x9c\xea\x96\xa3\xe0\x55\x5e\x9d\xbe\x7d\xc3\xcb\x04\x3e\x98\x03\xbe\xcd\xd5\x0f\x71\x1e\x93\x4b\x71\xf9\xac\xd6\x48\x10\xb1\x24\x0b\x6c\x0e\xbf\xb1\xaf\xc5\xd1\x93\xe1\xd8\x20\x49\x1c\x32\xde\x11\x71\x98\x05\x5b\x8d\x64\x6b\xc6\xd5\x18\x8d\xfc\xfd\x9a\x6f\xfb\xd6\x7c\x3e\x9f\x1f\x30\xf9\xc8\x2a\x87\x1a\x2f\x18\x56\x52\x56\x94\x7b\x05\x45\xac\x2f\xbb\x53\x04\x3f\xde\x75\x66\x23\x29\x0d\xc0\x79\x12\x47\x3b\xdc\x31\xf5\x38\x57\xc6\xd5\xd1\xc2\xec\xcb\x79\xf8\x82\xff\x67\x05\xb8\xc3\xfb\x53\x39\xd1\x76\x20\xaa\x9c\xf2\xd3\xdd\x12\x55\x46\x0a\x1e\xb0\x63\x28\xeb\xcb\x1f\x64\xc9\x56\x98\x2b\x0c\xf5\xa5\xbb\xb8\x3d\xb4\x26\xb6\x45\xd9\x42\xed\xa9\x3f\x5b\xec\x14\x17\xe0\xf4\x12\x93\x2e\x3b\x60\x8c\xad\x8f\xec\xee\xae\x6a\xdc\x59\x0c\x5b\x37\xb0\xe5\x9e\x76\x92\x60\x99\x75\x11\xee\x15\x05\x67\x72\x54\x5c\x16\x09\x91\x80\xf2\x65\x34\x2e\x31\x8b\x7c\x37\xd1\x11\x04\x6f\x65\xc9\xcd\x2d\xfc\xfe\xe5\xd3\xfb\x77\xfd\xad\x9d\xa4\x20\x92\xba\x76\xe6\x42\x72\x44\x01\x5b\xe6\x90\x10\x47\x42\xf8\xfb\xe6\xe3\x8c\x95\x8b\x10\x38\x2b\x6d\xf6\xec\x05\x83\x02\x02\xc1\x9a\xfc\x1b\x96\x9f\xf4\xb6\xc6\x66\x41\xa0\xe7\x25\xfd\xbc\x00\x2e\x5a\x2d\xf9\x63\xad\x94\x54\xb9\x76\x59\x5d\x3e\xaf\xd6\x5e\xf0\xe5\x67\x69\x1e\x4b\xdd\x24\x70\x98\xe7\xdc\x68\x56\x15\xfe\xa0\xca\xc9\xef\x0a\x79\xaa\xbc\xa6\x57\x91\x57\x5e\x2b\xb3\xfe\xb2\xbc\x0e\x02\x0e\x61\xb3\x45\x26\xae\xa8\x7e\x67\x6f\x18\xd5\xc4\x38\x09\x1b\x9e\x85\x5a\x8a\xd2\xcb\x73\x59\x4c\x40\x9c\x5d\x64\x95\x24\xf3\x0c\x5b\xef\xb8\xfe\xcd\x77\x73\x85\x82\x37\x92\xc0\x73\x65\xba\xe2\x05\x02\xba\x35\x0d\x93\xda\xbd\xc0\x05\x88\x9a\xe0\xa1\xd8\x7f\x8b\x62\x30\x90\x14\xec\x65\x21\x7a\xa1\xa8\x6b\xb1\xca\x1d\xcb\x65\x81\x72\x2b\x39\x53\xad\x16\x70\x65\xb0\x14\x2d\x80\x10\x92\xd0\x0d\x10\x2c\x2f\x4c\x2b\x72\xb1\x3a\xf1\xb5\x95\x15\x23\x9a\xd4\xfd\x70\xad\xd7\x7f\x97\x27\x6a\x65\x4f\xe6\x13\x1d\x82\xe1\x04\x1b\xfc\x37\x31\x89\xf1\xc0\x5c\x94\xef\x06\x2a\x07\x0e\x1a\x74\x6c\xf7\xc2\x4b\xe2\xed\xbf\xdb\x66\x5e\x5f\x48\xf6\xca\xc5\xed\xb5\xb9\x46\x12\x39\xe5\x9a\x53\xc9\x89\xaf\x35\x92\xdc\x21\xe8\x6b\xd2\x9e\x81\x1b\x50\x99\xed\x80\xaa\xa7\x11\xad\x67\x6a\x79\x42\x47\x68\xa8\xa0\x24\x40\x09\x89\xf2\x40\xd4\x9f\x19\xca\xe0\x84\x5e\xdf\x89\xaf\x21\xf2\x34\x67\x9a\x29\x0d\x84\x6d\xed\x28\xea\xc3\x8e\xb2\x88\xdb\x48\x82\x22\x8d\x48\x18\x6c\xc5\x8d\x73\xe8\x2a\x1c\x26\x8d\x1c\xcc\x51\xbf\xd8\xfb\xda\x5b\x28\x8a\x79\x2b\xc5\x8f\xee\x96\x4a\x78\x4c\xa2\xbe\xdc\x33\xdb\x51\xcb\x42\x8d\xaf\xb5\x4e\x7c\x39\x10\x26\xb1\xd4\xe6\xf2\xcd\x97\xe6\x86\x6e\xe5\x65\xf2\xb2\x45\xf9\x55\xe4\xca\x28\x7f\x93\xa8\xcf\x77\xec\x06\x49\xfc\xa1\x26\x0b\x5b\xc9\x01\x00\x3e\xe8\x72\x8c\x8a\x74\x86\xb0\xe6\x93\x72\xc9\x43\x41\xf1\x6b\xbf\x7f\xc3\x90\x4d\x20\x6f\xfc\x56\xdc\x11\xc1\xc7\x75\x91\x2e\x64\x46\x05\xc8\x50\x98\x47\x15\xc6\x95\x3b\xbd\x53\xfe\xd6\x2a\x0f\x7a\xcd\x90\x84\xe5\x9b\x5e\x77\x99\x95\xea\x7a\x1d\x55\x91\xe6\xb0\x39\xe7\xf3\x45\x4f\xa2\x6f\x9a\xf7\x6f\x18\x8a\xca\x17\xaa\xb2\xda\x04\xf6\x26\xe5\x41\x84\x49\x80\x24\x70\x59\x29\x4f\x99\x91\x71\x09\x54\xc8\xd0\xc1\xe1\xf0\x37\xeb\x3f\x7c\x08\x24\xd1\x63\x03\x96\xcf\x6f\x8c\x9a\xe4\x19\xa3\xcb\x15\x79\xc5\xff\x2f\x17\xd2\x67\x55\x1a\x21\x70\x19\x05\xb1\x49\x4a\x42\xb2\x23\x2e\xf1\x28\x48\x2b\xad\x92\xc3\x81\xfc\xc9\x10\x4a\x68\x56\x49\xed\x90\xdc\x93\x3c\xa2\x10\xa2\x92\x65\xb6\xd2\x75\x04\xc9\x24\xf8\xf7\x22\xf8\x0e\xe2\x2f\x41\xbf\xf4\xf9\x7f\x5b\xfe\xdf\x86\xff\x77\xc9\xc9\x3f\xa7\x2e\x43\x5f\x89\xd7\x6f\xd1\x45\x30\x71\xe8\x6f\xec\xe4\x84\xdc\x50\xe4\x52\xaf\x90\x0c\x5a\x62\x89\x14\x8a\x5c\x25\x9a\x88\x52\x0a\xe9\x19\xcf\xe8\x6d\xe0\x59\x0e\x69\x39\xfb\x04\x7c\x4f\x7c\x7f\x9d\xc7\xa1\x83\x58\x0e\x43\x62\x79\x44\x84\xad\xdf\x06\xe9\x8b\xd2\xf8\x5e\x68\xa8\x20\x57\xa7\x52\x85\xe1\x65\xfc\x27\x28\x24\xf9\x0f\xa1\x74\x70\xf9\x3a\x17\xcd\x6e\x08\xd8\xf1\x7e\xe2\x9a\x9f\x34\xde\x55\x2e\xf8\xaa\x58\xf9\x22\x4c\x2a\xbf\x03\x4c\xc4\x25\xd1\x4f\x73\x8e\xf2\x73\x62\x6f\x18\x8a\xe1\x16\xba\xec\x03\x10\xad\x1a\x28\xb8\xd4\x76\x56\x28\xd6\x05\xa5\xf8\xf6\x27\xa4\x55\xd5\x35\x8d\x2c\xcf\x08\x1f\xb8\x2f\x28\x0f\x35\x3b\x93\x13\x34\xea\x98\x37\x79\xb9\x90\x73\x9b\x5a\x28\xc4\x72\x49\x20\x1a\x91\xbf\xf8\x16\xd3\x36\xd2\xb0\xd8\x5b\x9e\xeb\x3a\x7a\x83\x70\x3e\x49\x5a\x41\x20\xa1\x66\x45\x1d\xd2\xf5\xe3\xa8\xfa\x64\xb1\x66\xa8\x06\xd4\x71\x08\x93\x35\x19\x1c\x17\xe4\x7a\xb9\x64\x08\x3b\xa8\x15\xd5\x1b\xbc\xbf\x1a\x79\x8d\x30\xf9\x13\x61\x72\xad\xeb\xd7\xb0\xd9\xf1\xce\xab\x4c\x3b\x5d\x47\xbf\x23\x4c\x18\x43\x1d\xc4\x25\xec\xaf\x1d\x4b\xb3\xda\xc8\x17\x26\xc1\x2a\x36\xf5\xd4\x83\x38\x84\x00\x03\xae\xa8\xee\xf9\x78\x1f\x60\xe6\x48\xd1\xab\xe2\x22\x3a\xeb\xe7\x53\x0a\x15\x4a\x0c\x3b\xf0\x99\x56\xd3\xae\x85\xe1\xe7\xac\x6e\xbf\x21\x19\x6d\x99\x7a\x24\xa1\xca\x8c\x94\xab\x8a\x44\xb4\x34\x46\xe9\xfa\xb1\x9c\x34\xe2\x6e\x05\x12\xd0\x94\xa1\xfc\x51\x6e\x2a\x21\x06\x57\x01\xf2\x5f\x42\x3f\x41\x6c\xbf\xcf\xf6\xfb\x64\xbf\x8f\xf6\xfb\xa7\x08\xf7\xd7\x76\xaa\x32\xee\x20\x85\xd6\xb8\xfc\x85\xa0\x3f\xf8\xf2\xe4\x1d\xb1\x22\xc7\x26\x26\x90\x17\x29\x6f\x47\x14\xa2\x33\xce\xc0\xf8\x32\x6a\xbc\x1e\x3d\x36\xc8\x07\x84\x75\x1d\xbd\x90\x9b\xf0\x25\x2f\x08\xc2\x20\xbb\xa1\xda\xa5\x00\xd2\xc4\xb0\x3f\x43\x7c\xc0\x73\x04\x92\x43\xec\xf7\x45\xcd\xd2\x04\x49\x45\x86\x5e\xcc\x51\xe7\xc7\xaa\x2e\x10\x3e\x3a\x63\x68\x19\x83\x44\x14\xe7\xfb\xeb\x8a\x18\xf8\x10\xd2\xfa\x40\x1c\xb5\x11\xab\xeb\xc7\x1b\x78\x8d\x0d\x27\xfb\x45\x25\xd1\x38\x69\xa1\x22\xef\x85\xaa\x35\x48\xbc\x6f\x5e\x56\x0a\x3e\x52\x88\xbc\x40\x22\x7d\x3d\xa7\x32\x2a\xa5\x78\xa0\x3d\x21\xd1\x8a\x04\x98\x5c\xe5\xdf\xcb\x1e\x3a\xbc\x43\x62\x81\xf8\x0c\xbd\x62\xe4\x2c\xbf\xc3\x14\xf1\x39\x55\x9d\xd6\x20\x38\x57\x0f\xf4\x34\xba\x95\xbf\x20\x0c\x2e\xfc\x86\xd1\xc5\xa4\x41\xb3\xae\xc3\xbb\xa8\xf3\xfd\x33\x62\x95\x74\xbc\x25\x66\xe0\xe2\x05\x5e\xf8\x25\xf0\x42\xa8\x67\x50\xb9\x54\x43\x8e\x02\x4c\x7e\xd9\xa6\x34\x1a\x92\x84\x3e\x45\xf8\xb1\x78\x2d\x28\x51\x18\x9a\xae\x73\xd9\xe9\x82\x15\xd0\x90\x21\x3a\x91\xea\x75\xb6\x50\x73\x33\x83\x29\x01\x12\x59\xe0\x52\xd8\x7f\x01\x7d\xa3\x0a\x19\x2f\x30\xf9\x1d\xe1\x03\xe2\xe4\xad\x6b\xf6\x2a\xb1\x64\x8f\xff\x97\x6b\xb6\x6d\x59\x9a\xdd\xcb\x92\xaf\x15\xe8\xc1\x57\xe0\xce\x2e\x97\xdd\xb1\xba\xec\x78\x21\x2c\xbb\x8e\x55\x67\x92\xc6\xc0\x48\x91\x02\xc4\x8c\xee\x25\x59\x8a\x6a\x08\x93\x57\x92\x21\x17\xcb\x2c\x80\xe9\xdb\xa2\x76\x1c\xb5\xcc\x1d\x04\xcb\x91\xd8\x2b\xce\xc9\xaf\xf2\xef\x45\x0b\xe5\x94\x6e\xd4\x5d\xd4\xa6\x1d\x17\x5d\xea\x13\xaf\x39\x2c\xba\xfe\x42\x19\xff\xea\x2f\x75\x0a\xe8\x7a\x86\xc4\xa4\x8c\xc8\x59\x7f\x17\x6d\xf8\x12\xc0\x56\xf1\xb5\x98\x0b\x5f\x82\x6c\xfd\xba\x98\x7d\x41\x56\xbd\x9b\xfc\x39\xc2\x77\xbb\x1b\xce\x61\xb1\x3e\x63\xfc\xcb\x39\x62\xf8\x20\x63\x13\xac\xd6\xe5\x23\x27\x0c\x3d\x36\xe0\x82\xb0\x26\x20\xa7\xa8\xb2\x94\x8b\x1a\xe6\x81\x48\xd2\xdb\x51\x17\xfd\xd3\x82\x44\xf2\x03\x5d\x47\x7f\xdc\xb9\xb1\x16\x5b\x68\xd9\x49\x18\x93\x3b\x3a\x5c\x55\x21\x5e\x60\x2e\x83\xbf\x62\x77\x1e\xd0\xe5\xf3\x1b\x04\xd1\x26\xaf\x32\x49\xbe\x22\xf8\xcc\x01\xa6\x82\x0f\x6d\xa7\x05\x5b\x96\xe5\x7e\x8f\xce\xfa\x4d\x69\x12\x3a\xa1\x78\x17\x2e\xcf\x91\xfc\x8a\x2b\xf9\xa6\xa4\x05\x59\xc1\xde\xe4\x93\x9c\x16\x71\x38\xd1\xeb\x0b\x9b\x75\x6e\x00\x3c\x93\xf9\xc9\xf3\xe7\xe8\x0c\x93\x17\xf4\x2a\x8f\x7a\xb8\xa6\x57\xfd\x5c\x87\x39\x7a\xd1\xaa\xa4\x83\x8e\x95\xc4\x71\x06\xaa\x2e\x79\xd1\x0f\xbc\x5c\xf3\xd2\x4e\xce\xfa\x81\x57\x48\x48\xf4\x05\xc9\x09\xa7\x67\xe4\x45\xf1\x15\x48\x78\x4f\x6f\x3a\xcf\x5e\xb3\xbe\x1f\xa1\x33\x18\xcd\x4f\x94\xd5\x84\x81\x9a\x84\x96\x9b\x1b\xff\x42\xa5\xb0\x06\xdd\x21\x2c\xf3\x72\x1b\xf1\xfa\xaa\xb9\x5e\xd7\x61\x07\x7a\xd1\xb5\x56\xc0\x66\xaf\xd5\xf6\x94\x16\xce\xdf\x3a\x9d\xdb\xc6\x55\xcc\xcb\x8e\xd6\x42\x66\x5f\x56\xd2\xe5\xb3\xce\xe6\xa4\x70\x25\xa4\xd8\x32\xd6\x41\x21\x5a\x64\x68\x42\xdf\xc2\x08\xf8\xfa\x07\xca\xce\x14\x47\xa7\x22\x15\x2a\x92\x5c\xde\xc9\xf5\x20\x8f\x05\xb3\x96\x8c\xa8\x8e\xfd\xb7\xa8\xbc\x70\x24\x0e\xe1\x48\xf6\x29\xaa\xfa\xfe\x3f\x14\x02\x8f\xb4\x91\x1e\x23\x55\x6e\x80\x56\xe5\xa4\xcd\xfd\xc6\x85\x26\xad\x18\x16\x9f\x96\x2e\xbc\xdd\x7e\xaf\xf8\x34\x9f\x17\xef\xc0\x25\xc9\x72\xf9\x17\x89\x08\x16\xe0\xce\x6e\x71\x3a\x5f\x94\x28\x7f\x66\xe8\x85\xd2\xd8\x47\x65\x76\xb6\x30\xaa\x26\xe3\xdf\xef\x55\x77\xb1\xad\xeb\x9a\x70\x01\x51\x4a\x6d\xb8\x92\x71\x61\x58\xea\x2e\xcc\xe7\x0b\xe1\x0f\xc5\x36\xcc\x7f\x2a\xcd\xff\x89\xf0\x6d\xbe\x33\x6e\x63\x98\x14\x30\xb4\x69\xbb\x44\xd2\xa0\x66\xa1\x69\x96\x90\x4f\x0b\x99\x51\x38\x74\xa8\xc6\xd7\xac\x40\x21\x9e\x54\xd2\x8a\x2b\x1e\xf8\xa3\xfa\xad\x43\x06\x26\xef\x5b\xf8\x72\x82\x6f\x93\x25\x5b\xe9\x3a\xff\xbf\x1e\x38\x03\xb1\x27\xba\x8e\x0a\x39\x15\x97\x40\x51\xc5\x3d\xf3\x0e\xe5\xc2\x69\xb1\x13\x27\x81\x0d\x27\x26\x0a\x23\x73\x7e\x79\x2a\x70\x04\xed\xa4\x74\xd2\x44\x94\x73\xa5\xa3\x75\xd9\xbf\x15\xc5\x6f\xbf\x67\x77\x26\xf3\x61\xf5\x8b\x99\x5b\x25\x73\x5c\x8b\x9f\x48\x48\xb6\xc8\x4e\xb4\x07\xda\x49\x64\x45\x18\xfc\x29\x79\x26\x0f\x5d\xcf\x8a\xbc\x92\x11\x51\x7d\x33\x8b\x06\x92\x00\x5b\x4d\xb5\x34\x81\x0c\x0b\x07\x35\x25\x3b\xbe\x3d\xfe\xa4\x88\xf4\xaa\x1f\x44\xd7\xbf\xff\xcd\x5b\xe6\x51\x9d\xb6\x1a\xe7\x25\x2d\xdc\x8f\x51\xca\x17\xdd\x42\xcb\x92\x1d\xd3\x2c\xcd\xb7\xc3\x94\x69\x6d\x6f\xd4\xa2\x9f\x2b\xae\x0c\x24\x44\x99\xfb\x02\x1a\xce\x31\x79\xc6\xe8\xb3\x7b\xf7\xf0\xf3\x0a\xf6\x9f\xe5\xe9\xc1\x63\xa4\xaa\xae\x68\xbb\xdf\x0b\xdc\x1e\xd7\x12\x20\xd4\x89\xaf\x53\xbc\xdf\xb7\xae\xb1\x17\xa5\xf8\x96\xdf\x3f\x28\x45\x5f\xce\x75\x5a\xca\x78\x51\xd9\x60\x7e\x3b\x66\xbb\xce\xd7\xc9\xe9\xdd\x30\x70\x2f\x80\xc9\x4b\x04\x22\xe9\x82\xd8\xf0\x14\x17\x37\x18\x09\xd8\x0a\x1f\x81\x03\x2a\x47\xa7\x84\x1f\x70\x51\xb8\x4b\x04\x91\x02\x99\xcf\x25\x8b\x8e\x48\x35\x9f\x4b\x78\x6d\x82\xd1\x7e\xff\x0a\x55\x9d\x15\x08\xdf\x6e\xb9\x04\x59\x3c\xf9\x4d\x3c\x51\x62\xf0\x9e\x15\x1c\xfb\x39\xc2\x47\x6d\xd7\x3b\x94\x03\x43\x7e\x26\x9c\xf5\xb4\x01\x89\x0b\x1d\x23\x8f\xc3\xd8\xec\x0e\x18\x79\xc1\xc9\x6f\x77\x43\x89\x39\xf6\x37\x07\x2a\x49\x7d\x55\x23\xb5\x7b\x8a\x56\xa9\x6d\x85\x6b\x12\xdc\x0d\x56\xa3\xb9\x1b\xb0\x95\xec\xcf\xaa\xb3\xfb\x02\x61\xae\x2b\xd5\xae\x8c\xcc\x67\xaa\xe4\xf0\xd7\x9c\x19\x69\x89\x5c\x69\x11\x26\x19\x1f\xd7\xc0\x47\xe0\xd1\x2c\xfc\xc9\x08\x1f\x55\x21\x53\x4c\xc4\x03\xdb\xf3\xa0\x5e\x4a\xa3\x92\x8e\x87\x28\x23\xc2\x65\x54\xa4\x82\x80\xed\x80\xab\x93\xdf\xcf\xb4\x5a\x86\x4e\xa0\x27\x97\x22\x30\xf1\x36\xe2\x5a\x37\x23\x10\xe4\x7c\x7a\xb3\x65\x56\x46\xd6\x76\xe4\x85\x2c\xb1\x12\x35\xb1\x4d\x85\x41\xfc\x55\x08\x28\x6f\x41\x27\x7d\x58\x1d\x82\x97\x44\xbd\xb5\x05\x93\x87\xea\x40\xfe\x5a\x2d\xc4\x44\x11\x6a\xe4\x5b\x91\x3c\x2a\xf2\xd1\x7f\xa7\x27\x8f\x0a\xb3\xf8\xb3\x38\x0e\x99\x1d\xe1\x8e\x77\x0d\xb8\x9c\x67\x47\x3b\x3b\x84\x6b\x31\xb1\xbc\x22\xe2\x21\x62\xe4\x25\x26\x4c\xde\x14\xa1\x48\x82\xd6\xc3\xaa\x7c\xf9\x6b\xe5\x9a\x08\x21\x8d\x58\x0f\xd1\x73\xb6\x10\x3f\xe2\x5d\xa6\x59\x9a\x13\xee\x12\x8d\xfc\xd2\x84\x0d\x22\xc0\x58\x80\x92\x5f\xc4\x9e\x54\xf4\xda\x17\xde\x6b\xf7\xe4\x2c\x8a\x3d\x11\xb2\x5e\x8c\x07\x1c\x46\x91\x23\xa2\x9e\x47\x39\x6a\x8f\x66\x03\xd7\x08\x48\x11\x97\x74\xa9\x88\x94\x2f\xd5\xf0\xc4\x63\xb3\xca\x55\xa5\x4e\xaa\xeb\xc7\xff\x82\x1c\xa4\xc7\x7e\x91\x2a\xb5\x90\xc9\x50\x11\xba\x68\x2b\xc1\x8a\xc0\xff\x8f\x6c\xca\xe0\x46\x86\xca\x15\xb2\xa0\x6b\xb4\xe9\xfb\x10\x30\xaa\xeb\xcf\xda\xe2\x2e\x95\x9c\x9b\x32\x41\x8b\x64\xe8\xc5\x6e\x03\x6c\xf9\x1b\xa4\xfc\x27\xc6\x7e\xbf\xe6\xef\xa2\x9a\x60\x2a\xec\xbd\x29\x03\x72\x99\xcd\x82\xd4\x30\x6d\xcd\xae\xe9\x71\x02\xc2\xd9\x71\xa4\xeb\x09\x24\x90\xa9\xa4\xb6\x2e\x47\x51\xb0\x09\x61\x14\x53\x73\x58\xef\xf7\x2f\xd4\x9f\x47\xca\x4e\xad\x34\x54\xb9\xfc\x4d\xcd\x97\x5d\xdc\x62\x5c\x7c\xff\x5a\x26\x74\x6b\x39\x4b\x9b\x93\xa3\x5c\xb9\x11\x14\x3f\x3f\xc1\xe9\x08\xb8\x82\xa3\xbe\x75\x8b\x30\x3a\x62\xd3\x2d\x43\x81\x7a\x7c\x29\xa5\x41\x67\x96\xc8\xe3\xb4\xcc\xb5\x0d\x27\xce\x8a\x8b\xbd\x20\x9b\x12\x57\x93\xb6\xfd\x1b\xcb\x20\x3b\x71\xf3\x97\x7c\x2a\x60\xa0\xc0\xcd\xef\xff\x92\x45\x21\xf3\xb3\xfe\xb5\x65\x10\x4f\x5e\x07\x26\x9f\x03\x10\x14\xac\x45\x6a\xe5\x5e\x74\x12\xfe\x18\x13\x9f\x46\xbd\x3c\x09\x6d\x6f\xf7\x63\x4c\xb6\x32\x09\x73\x2f\x39\x71\x7f\x8c\xc9\x86\x26\x3d\x99\xc1\xb6\xe7\xfd\x18\xe7\x5d\xb7\xde\xef\xfd\xfd\x7e\xbb\xdf\x6f\xc0\xba\x04\xc6\x14\x19\xe3\xfd\xa2\x25\xf9\x59\xbe\x86\x94\x24\xcd\xad\x6e\x0a\x65\x91\x88\x8b\x15\xf2\xa0\x9f\xc5\xad\x92\x63\xa7\xf3\xfe\x61\xa2\x8c\x92\x95\xe4\x3e\xbb\x83\x88\x88\xc3\x0d\x96\x48\xf8\x8a\x02\x97\x12\x4c\x4c\x5c\xcb\x62\xfe\x2f\xa4\x4a\x69\x77\xc8\x4c\xba\xbe\x06\xd3\x4b\x53\xd4\x15\x42\x4f\xc3\xb8\xc6\xd5\xc4\x7a\x93\xbf\xa8\xe2\x72\xa3\xb1\x9c\x57\xe2\x27\x86\xae\xe7\x6b\xe5\x18\xa4\xe2\x0e\x41\x92\xef\xe5\xa1\x9d\x31\x2f\xf7\x4a\x55\x24\xcb\x4a\x19\xde\xef\x93\xea\x25\xb4\xff\x52\x82\xce\x8f\x55\x71\xf6\x2d\xc2\xc7\xf9\xa2\x2b\xa9\x83\x7d\x4a\xab\x5e\x2f\xf9\x3b\xc2\xb7\x7f\xa0\x3c\x8f\x66\xee\x1a\xe4\x2b\xb2\x12\xfe\x08\xeb\x52\xcd\x5e\x91\x95\x99\x6b\x44\x76\xfb\x66\xd0\x2b\xb1\xe1\xc0\x51\xc5\x13\x91\xd2\x0f\x08\x2f\x40\xbd\x16\xfe\x7d\xe1\xb6\xdd\xd1\x78\x71\xdb\x3a\x5b\xac\x98\x54\x13\x47\x5a\x71\x23\xc1\xed\x53\x84\x0f\x16\x23\x2e\x5d\xd6\xb2\xf8\xe4\x5b\xbc\xcc\x4d\x64\x05\x77\x1c\x62\x2f\x60\x2b\x67\x72\x07\xf9\x59\xdc\x81\x38\x8b\x3b\x96\x67\x74\xc7\x87\x7a\xfe\x97\x46\xfd\x71\x09\x51\x4b\xb3\x55\x80\x96\x09\x90\x94\x74\x32\xd2\xd6\x71\x6f\x36\xae\xee\x9b\x18\xee\xbe\x04\x25\xf0\x51\x61\x3d\x2f\xa4\xc1\xc7\x4b\xad\x4c\x93\x44\xb4\xc6\x81\x27\xa2\xe5\x47\x9c\xda\x42\xea\x19\xbe\x55\xaa\x43\xcc\x5b\x6b\xd4\x91\xd2\x84\x7a\xd0\xdd\x6a\x39\x81\xb5\xac\x9c\xaf\xd2\x4e\xd8\xaa\x1d\xa5\x76\x02\xf1\x6d\x56\xd2\x11\x73\xa3\x9d\x88\xad\xb6\xed\x24\xd8\xed\xe1\x70\x38\xac\x8e\xc0\xb4\x9f\xea\xba\x9b\x4b\x8d\xea\x29\xdb\x62\xac\xf2\x9c\xc8\x69\x71\xa4\x7f\x78\x38\x60\x22\x2a\x49\x23\x86\x4b\xf2\xd3\x10\xe5\x55\xb3\x65\xaa\x48\x08\x82\x6d\x38\x90\x69\xc0\xd0\x8e\xbc\x68\xba\xe9\x13\xf5\xe8\x6a\x44\x2a\x09\xde\xac\x50\xb9\x0d\xd1\xad\x08\x62\x7f\x08\x73\x65\xdd\x49\x5d\x7f\xd4\x97\xb6\x6a\xd4\x42\x11\xdc\xf8\x5b\x49\xf5\x5d\x48\x2e\x1b\x86\x5e\x34\x6f\xb6\x97\x87\x37\x4b\xe3\xf0\x4a\x53\x49\x02\xa9\xe3\xb6\x43\xe1\x64\xba\x0e\xfa\xab\x0c\xe9\xce\x55\x57\xf2\xac\x60\x4a\x1f\x11\x57\xa2\x12\x7a\x8a\x30\x09\x68\xb2\x34\x56\x24\xa6\xc9\xd2\x5c\x1d\xa9\x2c\xaf\x30\x38\x06\xba\x1e\x43\xf2\x9d\x18\x93\x6c\x11\x75\x9d\xb6\x3a\x03\x9b\x30\x12\x27\xae\xac\xe2\x57\x41\x34\xb0\x5a\xe1\xcb\x6a\xa5\x1b\x88\x2e\x02\xce\x0b\xb2\x9b\x86\x22\x61\x6c\xf8\x76\xeb\xed\x37\xed\x64\xcb\x8a\x70\xaf\xc8\x5a\x4a\xae\x69\x21\xc0\x8a\x8d\xaf\x38\xc0\xf1\x11\x1d\x9b\xf8\x28\x5b\x04\x77\xf4\x4b\x97\x93\x46\x74\x55\x4c\xdb\x43\x1a\x50\x8b\x6f\x08\xcc\x56\x60\xa3\x78\x85\x54\x89\xf2\xe1\x7d\xd9\xe3\x2f\x8a\xd0\xf1\x32\x6b\xad\x1a\x4b\x7e\x74\xc7\xf9\x1a\x55\x5b\x3b\x85\x63\xf9\xf9\x09\x9d\x26\xac\x50\x78\x3e\xb0\x3c\xc0\xb1\x3d\xfb\x99\x08\x01\x4a\x0e\x7c\xfe\xb5\x18\x99\x44\x98\xee\x92\xad\xac\x96\x42\x71\x6a\xec\x5d\xec\x31\xde\xaa\x06\xa9\x7b\x17\x70\x00\xce\x6a\xb1\xa7\x6f\x18\x2a\xde\xac\xb1\xcc\x98\xb8\xe7\xfa\xce\xc4\xbb\x99\xae\x7f\x66\x28\x23\x91\x7a\x5b\xb3\x3c\xa8\x97\x88\xf0\x2e\xde\x7d\x15\xca\x83\xa5\xb1\xb2\x82\xc3\x43\x96\x87\xde\x43\xf4\x08\xbd\x60\xe4\x21\x18\x01\x7f\x52\x9f\xaa\xaf\xa8\xc6\x9c\xb5\x6a\xe9\x19\xbe\xbd\x80\xe0\x32\x26\x13\x2c\x71\x8c\x52\x93\x7a\x1d\x6d\x77\x19\x7d\xcf\xa0\xe7\xff\x62\x2d\xe9\x77\xca\x74\xdf\x8b\x5b\xbe\xc1\x73\xa9\x84\x5d\xbb\xe1\xce\x13\x27\x9e\x73\x77\xf5\xd1\xab\x8e\x63\x6e\x02\x8d\xd0\x08\x13\x98\x61\x37\x0c\x25\x78\xa1\xa4\x9b\xa5\x94\x26\x56\xae\x37\x40\xcc\x78\x9e\x21\xff\xb8\xc8\xb1\xca\x6a\xce\xf2\x23\xa6\x84\xd8\x14\x67\x80\xa2\x03\x26\x2c\xb7\x9e\xb1\x36\xb7\x5f\x6b\xb5\x40\xe4\xcf\x3d\x90\x2f\x8d\x63\x4b\x90\x97\xf0\xff\xb2\x3b\xbb\xfe\xff\xbb\xac\x8b\xef\xb6\x2f\x19\x6d\x99\xf4\xf5\x0b\xe8\x73\x36\x12\x71\x95\x90\xc4\x74\xb9\x02\x51\x34\xbe\x64\x49\x12\x78\x2c\x25\x29\x7f\x14\xf2\x89\x51\x70\xa4\x1d\xc2\xb7\x31\x57\x01\x3b\x9d\x92\x45\x3f\x54\xb6\x5b\x17\x76\x89\x8e\x63\x86\x8b\x4c\xe6\x78\x46\x5c\xc6\x91\x3e\x74\x54\x35\x37\x79\x4a\x23\xf5\xe6\x15\xfd\x38\x9f\x39\xe5\x49\xdf\xfc\x49\xd9\x23\x01\xbe\x4d\x50\x00\x97\x9b\x28\xd3\x3b\x92\x67\x3d\xc5\xc4\x0b\xaa\x39\x74\x15\x34\x49\xd5\xa0\xb3\x56\xb9\x4a\xac\x9c\xfb\x05\x2f\xcc\x31\xa5\x11\xbe\x8d\x68\x06\x1d\x9d\x52\x64\x8b\x23\x3e\x79\x8a\xbc\x22\xf4\xfe\x1b\x6e\x31\x0b\x96\xc9\x4a\xac\xb0\x65\xb6\x2a\xf2\x75\x2b\x34\x37\x96\x45\x4a\x6e\x3b\xce\xd9\xb5\x9c\xe0\x4e\x3b\xd4\x93\x45\x57\x41\xcb\x29\xc1\xac\x4b\x95\x15\x8e\x19\x97\x6f\xaa\x64\x87\xf2\x74\x77\xb7\xd5\x9b\x99\xe5\x99\x86\xd6\x53\x73\x2e\x17\x6e\xda\x8f\xce\x45\x54\x1c\x11\xeb\x3a\xbe\x06\x26\x50\xc1\x99\xaa\xee\xed\xe3\x10\xb2\x37\x1f\x1b\x24\x92\xb2\x5c\xe3\x6c\xdd\x37\xd4\xe5\x13\x20\x5e\x1a\x10\xd8\xd0\x72\xe2\x0e\x86\x71\x2d\xce\x83\xa8\xa6\x31\xcc\x85\x6a\xb2\xa5\x0f\x19\x82\x28\xdd\xc6\xe0\x79\x10\x05\xa5\x15\xab\x51\x5b\xe1\x72\x8f\x5d\xfa\xab\xf6\x0d\xbf\x76\x78\x2e\xae\x9d\xce\x6b\x49\xea\x50\xd5\x5f\x6f\xd5\xdb\xc3\xf3\x26\x72\xbb\x5f\x43\xdd\xc5\x5d\xf2\x3b\x59\x7e\x61\x2b\x0c\x16\x63\xb2\xa1\x5b\xe8\xbc\x23\xf1\x41\x6b\xf6\xda\x0d\xc2\xe4\x38\xd2\x75\xd1\x46\x61\x33\x5f\xa3\xad\xe8\x56\x71\x34\x4b\x1c\x9b\x3e\xa6\xd2\xc6\x5b\x3f\x06\x50\x54\x8b\xc1\xab\x2a\x2a\x33\x51\x39\xe8\x07\x11\x6c\x86\x69\xe5\x80\x6e\xb1\xf6\x8f\x94\x16\xb3\x22\x64\x3e\x56\x6b\x2d\x78\x19\xc3\x96\x78\x5b\x3e\x6e\xf0\x2a\xef\xd8\x75\xd6\x08\x50\x84\x94\xaf\xd5\xf3\x64\x02\x1a\x19\xb9\xa4\x1e\x2b\xb9\x5e\x65\xaf\xa0\x78\x99\x9d\x98\xab\xfd\x9e\xe1\x1c\xfb\x87\x84\x5d\x06\xf1\x2e\x6d\x6b\x21\x96\x79\x0d\x7b\x66\x7b\x53\xac\xad\x29\x92\xd0\x78\x99\xf5\xa0\x95\xbc\xd9\x44\x66\x51\xb8\xe4\x83\x54\xe3\x9d\xdb\x16\xde\xc9\xf0\x2d\x5c\xd2\x9b\xcf\xca\xfd\xde\x26\x97\x48\x12\xcd\xb2\x5c\x37\xaa\xd6\x80\xc5\x4b\xee\xce\x0b\x2f\x93\x7c\xf3\x9d\xa8\x60\x13\xc4\x43\x5b\x4c\xb6\x8a\x38\x50\x9b\xdd\x10\xae\x4b\x05\xd4\x81\x7c\x65\xf4\x16\x24\x7c\x4e\x9d\x55\x09\x52\x91\x06\x27\x4b\xda\xb2\x09\xe8\x08\x96\x54\x15\x94\x64\x1d\xbf\x56\xce\x3b\x2e\x57\x70\x63\x06\x09\xe8\xb1\x09\x06\x1c\x69\xd4\xb5\xa9\x5c\x9c\xe2\x37\x5f\x99\x2d\x37\x82\xd8\xe4\xb6\x3c\xe4\x2a\x7c\x12\xf9\xf1\x57\x13\xd2\xc0\xb4\xd5\xa8\x9e\x97\x35\x0e\x98\xec\x28\x68\x01\xa9\x72\xa0\xc8\x95\x4b\x27\xb7\x9c\xe9\xfa\x71\x50\xdc\x28\x21\x9f\xf5\xdd\x30\x4e\x59\x9a\xa1\x58\x26\x5f\x84\x72\x9b\x26\xdd\x87\x22\x73\x1d\x0d\xef\xf7\x59\xae\x56\xed\xf7\x17\x2c\xff\x7e\x24\x2e\xe0\x10\xa6\x4e\x5d\x3f\xae\xa8\x10\x8a\xf1\x5a\x73\x84\x45\xb2\x5c\x9e\xa1\x08\x90\xd9\xef\xd5\x1a\xc7\x65\x0d\xbb\x98\xa5\x5f\xd9\x52\x3c\x5c\xe1\x27\x86\x5c\xad\x29\xef\x81\x84\x84\xf8\x28\x05\x37\x58\x94\xf3\xa5\x14\x03\x17\x55\x65\x04\x92\x81\xf3\xa3\xd4\x98\x02\x5d\x47\x01\x78\xce\x5a\xfd\x60\x1c\x98\x8b\x61\xf7\xf9\xc1\xa2\xc2\xc2\xc1\x05\xd1\x9c\x63\x30\xb4\xbb\x27\x46\x42\x9a\x0f\xc0\xc8\x2e\x64\x1c\xb8\xe4\x5a\xca\x38\x47\x05\xc0\x5d\xf7\xf7\x80\x6f\x54\xd7\xa3\x2e\xf7\x5e\x61\xa2\x80\xab\x4e\xf8\x84\x4d\xfe\x3f\xf3\x30\xc1\x22\xe1\x1b\x3c\xc9\xdf\x4f\x65\x57\x31\xc2\xa4\x83\xec\xda\xed\x1e\xf9\xea\x3f\x36\xe1\xe6\x07\xd1\x3d\x2a\x2a\xfb\x1b\x50\xa9\x92\x23\xc7\x65\x28\x32\x1c\x6b\xe3\xfc\x1e\xca\x48\x45\x0f\x76\x41\x0d\x86\xc7\x05\x27\xd1\x88\x2b\x1f\xe5\x66\xeb\xe2\x81\xe0\x1f\xc4\x2d\x2e\x9a\xd9\x41\x2a\x87\x5f\x58\x71\x19\x73\x79\x6a\x5d\x23\xea\x81\x6d\x38\xc3\xde\x62\x7e\x14\x11\xc5\x8a\x63\xa1\x35\xd2\x2b\x2b\x22\xbd\x24\xdf\xbf\x95\xb9\x70\xe8\xcf\x0c\xb1\x42\xa9\x88\x20\xdb\xe7\x35\x9c\x16\xcf\xa3\x7e\x4a\x6f\x8f\x42\xdb\xa2\xb1\xc5\x28\xa7\x73\xf3\xd3\x97\x95\x13\x93\xf9\xa1\x4b\x08\x0f\x66\x4a\x70\x30\x61\x07\x24\xaf\xf2\x2f\xe4\xb9\x66\x6e\x84\x98\x2f\xe4\x7e\x10\xa5\x2c\xc9\xc4\x31\x1d\x14\xf3\xe1\xad\x1f\x7c\xc5\xed\xc7\xd3\x24\xe9\x3e\x74\xab\x06\xc7\x0e\x45\xbc\x56\x2c\xed\xd4\x45\x38\x34\x51\x95\x49\x79\xc4\xbf\x72\xf8\x3f\x5d\x07\x7e\xd6\xb3\xaf\xec\x1b\xed\x20\x44\xb8\x46\xca\x85\x32\x85\x22\xa3\x51\x67\x7e\x19\x92\xd1\x77\x20\x95\xa0\xf2\x7a\x5c\x6d\x93\x02\x7d\xf8\x28\x68\xd6\x63\xa1\x7d\xa3\x5c\xb7\x8f\xb2\x47\xa6\x81\x21\x47\x4d\x71\xee\xb1\x25\x8b\x0d\x13\x01\xd9\x95\x13\x06\x6d\x39\x21\x62\x38\x59\xd8\x89\x46\x33\x20\x17\x4e\x4b\xd6\x89\x58\xd7\xf3\x16\xf2\x31\x05\x51\xf5\x5f\x8c\xde\x4a\xef\xa3\x65\x10\xe9\x7b\xb4\x8c\x03\xf9\xbd\x7a\x48\xef\x8f\xca\x51\xe6\xdc\x5f\x99\x14\xdf\xbf\x1e\xa9\x98\xb2\x02\x53\x22\xd2\xa0\xb0\x2c\x5f\x3b\x6a\x8a\x87\x6f\x5b\x3c\xb5\xfb\x71\x5e\xb0\xfc\x10\x62\x3d\x54\x22\xe3\x6b\xe3\xd8\xcc\x37\xf6\x63\x03\x98\x32\x80\x2a\x89\xbb\xca\x20\xcd\x20\x0a\xb2\xc0\x0e\xc5\x26\x27\x30\xaa\xd4\x81\xe6\x58\xb5\x06\x2a\xa9\xb9\x90\xbc\x0d\xab\x3b\x42\xcb\x53\xf4\xc9\x1d\x80\xdf\x17\xd3\xe5\x55\x54\x6b\xae\x03\x1d\x1b\x95\xa9\x7e\x47\x7e\x95\x83\x78\x79\x75\xdb\x2c\x72\x26\x1c\x27\x52\x7c\xe0\x22\x40\xe1\x60\xcb\x1f\x62\x12\xb4\xbe\xbf\x72\xeb\xf0\xef\xca\x8d\xc3\x5f\x49\x4a\x3b\x35\x42\x12\xd2\xb8\x27\x1c\xbc\x64\x47\xed\x1e\x38\x87\x8f\x8e\x41\x0b\x6f\xf8\xff\xaa\x36\xa1\xfb\xd5\x51\xb1\x56\xbb\xdb\x4e\x68\x4c\x22\x6a\x1f\xa9\x03\x1b\x40\xc0\xa6\xb8\xa4\xef\x24\x84\x0d\x31\x8b\xb7\x27\x3b\x2c\x55\x77\x6d\x1d\x27\xc1\xdf\xbc\x4b\x04\xf8\x02\xca\xad\x88\xb8\x54\xbb\x64\x49\x16\xb8\x65\x81\x70\x7e\x25\xc4\x6b\xab\x25\x3d\x65\x11\x59\x37\x2b\x82\xf5\x29\xc9\x39\xa7\x48\xa9\xeb\xf6\xd6\x79\x52\x5d\xaf\x97\x82\x5d\x2a\x95\xee\x35\x37\x77\xbb\x79\xc2\x6e\xb5\x3e\x1c\x0e\x15\xdb\x44\xa9\xbe\x56\xe7\x2b\xfa\x5d\xda\x3a\x6f\x8b\xfb\x89\x18\xf1\x62\x17\x8c\xb7\xf7\x04\x0f\xa9\xf3\xf0\x0f\x86\x0f\xa8\x72\xc9\xa2\x8f\xf0\x2d\x17\x5d\xd0\xef\x8c\xfe\xde\x12\x73\xa8\xde\xa8\x9a\xb7\xcd\x25\xc1\x03\xc6\x6d\x67\x5f\xd5\xdd\x3d\x76\xe5\x75\x6b\x45\xee\xfc\x2a\xa5\xf7\x2d\x1a\x49\xec\xa1\xbe\x2f\xad\xd5\x44\x3d\x77\xa4\xf9\x29\x78\xc4\xa1\x2b\x4d\x50\x11\x08\xcc\x17\x84\xda\xe3\x47\xd1\x7e\x5f\x9c\x26\x8e\xb9\xc0\xab\x96\x8a\x67\xc8\x47\x98\xc4\x0b\xb4\xe6\x0a\x31\x6b\x86\x0c\x06\xfb\x7d\x8a\xf0\x7e\x1f\x22\x8c\x2d\xc4\xd5\x23\x17\xe1\x8e\x2d\xab\x7d\xd4\x8f\xf9\x1c\xe7\x2d\x79\xe8\x5f\x0c\x73\xc6\x67\x62\x52\xe0\xec\x36\x5f\x38\x0c\xf2\xd8\xa1\x0a\xe3\x2e\x16\x7c\xce\xc0\x8b\x80\x14\xb0\xff\x97\x51\x43\x22\x42\xa8\xdd\x76\xd3\x31\x3b\x5d\x24\xf4\xbf\x58\xa4\x5f\x3f\x1c\x48\x56\x6c\x0b\x8d\x4c\x3f\xdf\xb6\x37\xc0\x0e\x54\xee\x0e\x11\xed\x15\xec\x5f\x22\x06\xc9\xe6\x75\x13\x7b\xd3\xbf\x6c\xf3\xb1\x6f\xb9\xec\xa9\xbc\x29\x4e\xfa\x90\x4b\x56\x56\xc3\xaa\xeb\x60\x1b\x8c\x4b\xef\x6e\xc5\xfa\xf8\x0d\x2c\xae\x71\xfb\x66\xcb\x23\x22\xc3\x08\xb9\xfe\x27\xd7\xcc\x93\x41\x9e\x80\x4e\x09\x4f\xe4\x42\xe7\x00\x8c\xfa\xf9\xc2\x8a\xc0\x1d\x96\x2c\x8d\x15\xb0\xa4\x1f\x93\xa5\xb9\x92\x17\x3f\xe7\xee\x92\x65\xb4\xda\xef\xb3\x23\x19\x61\x97\x87\xd6\x65\xf1\x56\xb3\xe0\x9b\x8c\xfc\xb1\xe4\x25\x2c\xb9\x3b\x32\x29\x2d\x17\xc4\x2e\xc2\x80\x18\xc4\x15\xc1\x4d\xce\x34\xce\x6f\xb2\xdd\x51\x7b\x11\x08\x96\x18\x8b\x8d\xc2\x85\x27\x82\xf7\xc5\xe2\x33\xe7\x95\x82\x2d\x4a\x76\x18\x0a\x76\xb8\x2b\xd8\x64\xce\x49\x77\x39\x27\x0d\x7b\xe9\x41\xc4\xed\x41\x58\x91\x20\x59\x84\x1e\x01\xc5\x9e\x90\xcc\x36\x41\x24\x7d\xd6\xfc\x27\x49\xee\xb0\x7b\x73\x3c\x07\x91\x0e\x40\x54\xb5\xaf\xbf\xb5\xaa\xb8\x80\x97\xd7\x85\x3b\x62\x3a\x59\x66\x11\x02\xc5\x16\xf2\x7e\x6d\x4a\x3d\x2b\xbf\xa3\x9b\xd2\x35\x57\x41\xb6\xd4\xe7\xc3\xc6\xfb\x72\x43\xfd\xa5\x5f\xf6\xb7\xec\x57\xb5\xc7\x8a\x0b\x85\xe5\xbd\xc1\x9e\xec\xb1\xb5\xec\xb1\x75\xcf\xcb\x7b\x6c\xd3\xdb\x1e\x8e\xe4\x4a\xb3\x8a\xdc\x46\x07\x04\xa9\x2c\x49\xd2\xb9\xd7\x6e\x18\x82\xc2\xf2\x61\x8a\xb8\x9e\x8a\x0f\x48\x99\xfe\xe0\xb6\xc8\x68\xf5\x49\x29\x8b\xd9\xa8\xd0\x8f\xf6\x7b\x94\xb5\x7a\x37\xe4\x6b\xdd\x63\xf0\x64\xdf\x64\xf0\x2c\x2d\x9e\xec\x1b\x2d\x9e\xf7\x6c\x5e\x9c\xc5\x1c\x73\x5e\xc8\xbf\xf0\x61\x5a\x66\x60\x1f\x3d\x14\x79\x32\x62\xa1\xb2\xaa\x52\x5c\x26\x34\xe2\xe6\x8e\x65\xd7\x36\x20\xbb\x8d\x75\xe7\x39\x67\x1d\xc6\x77\x68\xe9\xa3\x83\x33\xf5\x05\x1b\x6c\x19\x17\xb8\x12\xb1\x3b\x0f\x0f\xc4\xd2\x0d\x9e\x94\xf2\x1e\x84\x66\xc1\x45\xc7\x83\x1f\xab\x4f\xb3\x78\xab\x42\x7e\x85\x84\x87\xe2\xb2\x6a\x05\xf4\xeb\x01\xe3\xa3\x88\x06\x85\x05\x28\x16\xfa\x4c\x6b\x8e\x3a\x79\x57\xe2\x81\x24\xc5\x76\x20\x72\xbc\xfd\x5b\xfa\x41\x71\x7f\xa6\x12\xe2\x5d\xac\x35\x91\x93\x2a\xb7\xfd\x43\x23\x5c\x0a\x55\x7f\x43\x02\x0e\xd1\xad\x10\x9d\x15\xc3\x47\x73\xd2\xa6\x34\x42\x4a\x6e\x68\xbc\x28\x54\xf4\xdc\x5c\xba\xa8\x3f\x90\xbb\x7f\xf3\x9e\x73\x2b\xc3\x5d\x2b\x4d\x84\x88\x85\xbc\x31\x79\x5b\x37\x5e\x74\x2e\x4b\x00\x7e\x8c\x52\x5d\x8f\x32\x14\x10\x3e\x87\x43\xf8\x1e\x93\x10\x8b\x9c\xb5\xb5\xd0\x98\x06\x89\xf9\x3d\xa6\x24\xa0\x29\x89\x69\x48\x1a\x32\x8b\xae\xb7\x87\x40\xd8\xca\x8c\xee\x14\x5d\x44\x1f\xeb\xba\x8d\x40\x02\x50\x06\x29\x53\x7d\x63\x90\x43\x36\xe3\x43\x93\xc5\x5b\x58\x61\x59\xbc\xe5\x3f\x61\x52\xc2\x83\x44\xe4\x81\xcf\x67\x1f\x3c\x13\x5f\xf9\x43\x3e\xa3\xe1\x11\x30\xf0\xa6\x27\x1f\xdd\xca\x7c\x86\x7f\x33\xce\xa2\x72\xdf\x3f\x7d\xc8\x54\xeb\x92\x38\x03\xa6\xed\x52\xf6\x20\xcd\x92\xc0\xcd\xb4\xa3\xa4\x9f\xf0\x15\x9c\xf4\xc1\x54\x94\xba\x6b\xb6\x61\xcf\xed\x8c\x9d\xc7\xc9\x8d\x69\x54\x0f\x4e\xe6\x8e\x4d\x30\xa9\xa9\x15\x9e\xba\x2e\xc4\x81\xb5\x00\xc7\x0d\xe0\x9f\xec\xe4\x62\xd0\x0a\x6b\x37\x60\x3f\xd8\x41\xc2\xbc\x56\xe0\xb4\x05\x38\xcd\x58\x68\xb6\x42\x87\x1d\xd0\xed\x84\xec\x1a\xd0\x9f\x58\xd6\x8e\xd8\x6d\x03\x6d\xc7\xea\xb5\x81\x0e\x5b\x41\xd7\x0d\xd0\x53\x2e\xde\xd9\xbb\x8e\x21\xf1\x15\x78\xd0\x48\xb7\x71\x68\x67\xec\x59\xf2\xec\x65\x2b\xfc\x79\x03\x7f\x27\xe8\x65\x3b\xea\x0f\x1f\x5f\x46\xad\xf0\x37\xcd\x9e\xee\x02\x75\x3a\x50\x07\x5f\xdb\x49\xb9\x6a\xa2\xee\x02\x3d\xeb\x40\xbd\x7b\x9f\xb4\xc2\x5f\x37\x51\x77\x81\xbe\x68\x47\xfd\xd1\x7b\xb6\x6b\x85\xff\xd4\x40\xdd\x09\xfa\xbe\x0b\xf5\xcb\x9b\x56\xf8\xb7\x2d\xa8\x3b\x40\x4f\xbb\x50\x7f\x0d\x3b\x88\x79\xda\x82\xbc\x13\xf8\x43\x37\xfa\x8e\xc1\xbf\x68\x45\xdf\x01\xfc\xbc\x1d\xfd\xa7\x2d\x73\xb3\xc4\x0e\x5b\xeb\xfc\xd9\x5c\x6e\x77\x81\x7f\xec\x58\x42\xbb\x0e\x92\xde\x35\x97\x50\x17\xe8\x4f\x5d\xa8\x3f\xb4\x77\xe6\x9b\x16\xd4\x1d\xa0\xaf\xdb\x51\xbf\x8c\x3a\xc6\xe9\xef\x06\xea\x4e\xd0\x9f\xdb\x51\xbf\x4f\x3e\xb6\x33\xe4\x67\x0d\xd4\x9d\xa0\xbf\x75\xad\xce\xce\x2e\xfc\xdc\xb2\x3e\x3b\x81\x5f\x75\xa3\x6f\x85\xff\xab\x15\x79\x2b\xe8\xc3\x2e\xd4\x1d\x6f\xfa\xb2\x05\x75\x07\xe8\x97\xae\x25\xd4\x31\xf4\xbf\xb6\x2c\xa0\x0e\xd0\xaf\xed\xa8\xf9\x72\xeb\x78\xcf\x7f\x35\x90\xdf\x01\xfc\x4b\x37\xfa\x56\xf8\x3f\x5a\x91\xb7\x82\xfe\xde\x85\xfa\x7d\xf2\xac\x9d\x3d\x67\xac\x05\x7b\x27\x34\x63\xdd\x0d\x74\x8c\x53\xd4\xde\x40\x07\x74\xd2\xd1\xc0\xb3\x70\xc7\xd2\x76\x89\xa9\x89\xbf\x1b\x38\xe8\x40\xff\x32\x61\x2c\x6a\xaf\x92\x36\xf1\xdf\x01\x6d\x77\x37\x70\xd3\x5e\x63\xd7\x8a\xbf\x03\x38\xec\x40\xff\x61\x97\x6c\xc3\x8e\x77\xf6\x9a\x0d\xdc\x05\xee\x76\x34\xf1\x91\x79\xed\x15\xfc\x26\xfe\x4e\xd8\x75\x07\xf2\xf7\x89\x1d\x9d\x77\x10\xb4\x69\xe2\xbf\x0b\x7c\xdb\xd1\xc4\xf3\xe0\x32\xf0\x82\xf6\x3a\x97\x5d\x75\x76\x0e\x5b\xb3\x30\xb8\x96\xba\x43\xfb\x76\xd5\xd5\x61\x76\x10\x39\xf1\x55\xfb\x66\xd1\x51\xe7\x8b\x9d\x6c\xda\xb7\xcf\x2e\x0a\xe3\xb8\x7d\x7f\x7e\xdd\x51\xe1\x53\x10\xb1\x2e\xaa\x5e\x75\xd4\x39\xdd\x25\x4e\xdc\xbe\xcf\x74\xd4\xf8\x1c\x24\x9d\x9d\xfd\x57\x47\x9d\xb7\xf6\xf9\xc6\x6e\x67\xf5\x1d\x35\x5e\x47\x3e\x4b\xa2\x76\xca\x5e\x76\xad\x94\xd0\x4e\x3b\x9a\xf9\xca\xab\xc8\x58\x78\xd5\xcc\x90\xdf\x92\x9a\x81\x23\x29\x3a\xcf\xd6\x8f\x26\x7b\x83\x24\x70\x45\xad\x88\x5f\x07\xdf\xa3\xf1\x38\x7a\x92\x3d\xc6\xc9\x32\x5a\x51\xed\xbf\xb4\x13\x26\xaf\x44\x9d\xfc\x10\x91\xc9\x0f\x27\x27\x4a\x58\xfa\x81\x04\x5c\xa5\x37\xfd\xe9\xd4\x19\xf9\xfe\xd4\x37\xd8\xc0\xb5\x8d\x81\xeb\x4d\x06\xd3\xc1\x6c\x3e\x9a\x4c\x1d\x6f\xe6\x8e\x27\x23\x87\x0d\xa7\x53\x77\x30\xf5\xf9\x9f\xe3\x3a\xde\x60\x60\x4e\x1d\xe6\xfa\x1a\x26\x31\xc7\x31\xf5\xdd\xf9\xd4\x77\x98\xcd\xbc\x91\xef\xb9\xc6\x6c\xe2\xfb\xbe\x3f\x9f\x0f\x67\x13\xd7\x31\x7c\xc3\x18\x4c\x7d\xc7\x1f\x3b\xe6\x74\x02\xff\x34\x4c\x6c\x68\xdb\x99\xb3\xe9\xd4\x9b\x8f\x7d\x63\x30\x1d\x4f\x0d\x67\xc8\xa6\x83\xf9\xcc\x9e\x4c\xec\x89\xc9\xd8\xc4\x76\x8c\x81\x3d\x99\x4e\x4c\xaf\xa8\x07\x36\x0f\x7b\xe2\x32\x36\x34\xfd\xe9\xcc\x19\x39\x03\xcf\x9f\xd9\xc3\x21\xa7\xdc\x77\xe6\xf6\x7c\xce\x86\xa6\x6d\xba\xbe\xe7\xf8\x9c\x8c\xa9\x6f\x18\xae\xed\x0c\xbc\xc9\xc4\x1e\x7a\x73\x5b\x50\xe6\x98\xe3\xf9\x60\xa6\x61\x61\xd6\xf0\x1d\x67\x64\x33\x67\xe8\x7a\x6c\xe8\xba\xcc\x71\xc7\x1e\x73\x1d\x36\xf2\x99\x37\xb7\xe1\x5d\x5c\x97\x8d\xbd\x99\xe3\xf9\x9e\x67\x33\xd7\x1f\xf0\x3f\x0d\x93\x1d\xaf\xed\x0c\xd9\xc0\xf5\x7c\xcf\xf5\x6c\xd7\x75\xbc\x31\x9b\xf9\x23\xd7\x66\x23\x36\xf1\xc7\xee\xdc\xf7\xfd\x81\xcd\x7c\x93\x0d\x5c\xf9\x4f\x83\x4b\xb9\x90\xc6\x46\x9c\xce\xe1\x74\xca\x9c\xd9\xc8\xb3\xfd\x91\x3d\x9f\x8d\x98\x3d\x14\x34\xf3\x56\x87\x43\x7b\x32\x9e\x0c\x66\xfe\x74\x66\x3a\xfe\x1c\xfe\x69\x70\x95\x17\xd2\x26\x13\x77\x60\x8f\x7d\x77\xe6\x4d\x06\x33\xcf\x36\x5c\x87\x4d\x67\xb6\x3b\xb4\x27\xde\x6c\x3c\xf2\x7d\x6f\x3e\xf0\xd9\xd8\x1d\xcd\x47\xce\x90\xff\x69\x98\xac\x79\xbd\x99\xe7\x0d\xdd\x29\xc7\xee\x0c\x1d\xe6\xd8\x9e\xed\x3b\x33\x63\x3a\x98\x19\x8e\xe9\x0d\x7d\xcf\x19\x4d\x06\xce\xd0\x63\x93\xb9\xef\xba\x1e\x1b\x7b\x73\xfe\xe7\xb8\x33\xc3\xf1\x44\xdf\xf8\x3e\xf3\x26\x7c\xec\x7d\x8e\x6f\xc4\xa6\x73\x7b\xea\x0f\x66\x6c\xe0\x32\x73\x3c\x1d\xcf\xa7\x13\x67\xea\x0c\xc6\x73\xdb\xe4\x1d\xe8\xce\x47\x73\xdb\x9f\xda\xb6\xe9\xfb\x73\xcf\x9e\xce\xdd\xe9\x78\xec\x3b\xb6\x63\xd8\x8e\x86\xc9\x96\x26\x68\x38\xc6\x64\x43\x19\xfd\x51\x18\x55\xd1\xb6\xef\x60\xc4\x96\xac\xb4\x30\x63\x72\xa9\xcc\xf4\x61\x19\xe7\xec\xcd\x9c\xe1\x64\xec\xc3\xdf\xd8\x76\x46\xb6\xab\x11\xcd\x9e\x4c\x4c\xd3\xf6\x7c\x77\x30\xf5\x66\x86\xeb\xb9\xa6\x61\xce\xc6\x53\xb3\x56\x24\x6a\xd5\x00\x66\xee\xd8\x34\x6c\x89\x76\xc2\x66\xee\xd0\x9d\x32\x9b\x49\xe4\x86\x39\x99\x8c\x59\x2b\x98\xc0\x76\x07\xb0\xe3\xcf\xcc\x81\x27\x9b\x56\x30\x0b\x02\x86\xe3\xf9\x74\xe6\xdf\x5b\x45\x6d\xa5\xb5\xe2\x78\x34\x34\x8c\xf1\xf7\xb6\x68\x18\x43\x77\x68\xdc\x5b\xfd\xee\xd6\x25\x12\x71\xae\x39\xc2\xe4\x9c\x6e\xc4\x25\xf2\xad\x23\x67\xfb\x33\xcf\x1d\x02\x4b\x99\x72\xee\x30\x75\x34\xa2\x4d\x9d\xe1\x60\x3e\xe2\x13\xdb\xf5\xed\x89\xe7\xd8\x86\x61\xcc\x66\xc3\x69\xad\x48\xd4\xaa\x03\x4c\x06\xf6\x6c\x28\xd0\xb2\xa9\x37\x62\x33\x6f\xee\x1b\xde\x50\x20\x37\x9d\x69\x17\x98\xc0\x76\x07\xf0\x7c\x3e\x35\x6c\x47\x34\xad\x62\x16\x04\x8c\x6d\x9b\x4d\xcc\x7b\xab\xa8\xad\xb4\x56\x1c\x19\x86\x31\x72\xbe\xb7\x45\xc3\x18\x8d\x4c\xe7\xde\xea\x77\xb7\x2e\x91\x14\x23\x77\x43\x37\xc8\xc1\xe4\xac\x7d\xe4\xd8\xdc\x1e\xba\x73\x39\x06\xa6\x37\x9d\xd8\x1a\xd1\x3c\xc3\x74\x67\x8e\x6f\x3a\x13\xcf\x76\x66\xcc\x9c\x4d\x46\x9e\xed\x0e\x26\xb5\x22\x51\xab\x06\xe0\x8e\x4d\x67\xea\x49\xb4\x1e\x33\x98\xcf\x59\xa7\x67\x08\xe4\x23\x6f\x3e\x18\x98\xad\x60\x02\xdb\x1d\xc0\x1e\x9b\x4e\x39\xf3\x85\xa6\x15\xcc\x82\x00\xbe\x99\x8d\xcc\x7b\xab\xa8\xad\xb4\x56\x9c\x31\xc3\x1c\x0f\xbe\xb7\xc5\xc1\x74\x32\x32\xe7\xf7\x56\xbf\xbb\x75\x89\xa4\x18\xb9\x2b\xba\x11\x39\x05\x5b\x47\x6e\x3e\x9f\xb1\x7c\xcd\xf9\xa6\x3d\x1c\xc1\x92\x67\x43\x77\x3e\x77\x06\xb6\xe3\x0d\x7c\xcf\x99\x4d\x86\x6c\x32\x31\x0d\xb3\x5e\x24\x6a\xd5\x00\x46\x83\xe9\x6c\x26\xd0\x7a\x33\xcf\x66\x8e\xcf\x98\xe1\x4c\x04\x72\x67\x38\x9e\x19\x93\x76\x30\x81\xad\x1b\x78\x66\x4c\x87\xb6\x2b\x9a\xae\x60\x16\x04\x18\xb3\x81\x39\xba\xbf\x8a\xda\x4a\x5b\xc5\x81\xc7\x17\xcd\xf7\xb6\x38\xf5\x87\x8e\x31\xbb\xbf\xfa\x9d\xad\x4b\x24\xc5\xc8\x5d\xd3\x0d\x7a\x81\xc9\xfb\x8e\x35\xe7\xcf\xec\x89\x1c\x83\xc9\xd4\x9e\xbb\x3e\x9f\xb0\xb6\x61\x0c\x0c\x7f\x64\x8f\x67\x83\xf9\x80\x0b\x2d\xc6\x78\x6a\x3a\x46\xad\x48\xd4\xaa\x01\x38\x03\x73\x36\x70\x24\x5a\xcf\x73\xdc\xa9\x67\xb2\xb1\x6f\x08\xe4\x03\x73\x32\x81\xad\xb4\x09\x26\x39\x49\x37\xb0\x37\x99\x18\x23\x4f\x36\xad\x60\x16\x04\x8c\x86\xf3\xa1\x3b\xbc\xb7\x8a\xda\x4a\x6b\xc5\xc9\xd4\x30\x4c\xff\x7b\x5b\x34\xc6\x43\x63\x62\xde\x5b\xfd\xee\xd6\x25\x92\x62\xe4\x3e\xd1\x0d\x7a\x8f\xc9\xe9\x9d\x23\xe7\x0b\xb9\x13\x24\xb8\xea\xf0\x38\x36\xff\x1b\x19\xfc\xaf\x3e\x72\xf0\xaf\x06\xd0\x1c\x12\x66\xf0\x3f\x81\x7c\xe4\xf1\xbf\xf6\x91\x83\x7f\x77\x00\x37\x3b\x42\x00\x0b\x02\x66\x53\xfe\x77\x6f\x15\xb5\x95\xd6\x8a\x77\x77\x7d\x57\x45\xd3\xe6\x7f\xf7\x8f\xdc\x9d\xad\x4b\x24\xc5\xc8\xbd\xa5\x1b\x74\x8a\xc9\x87\xf6\x91\xe3\xb2\xf5\x78\x0e\x23\xe0\xcf\x4d\xc7\xf7\xf8\x36\xeb\x4d\xcd\x39\x57\x2e\xf8\xe6\x69\x3b\xde\x9c\xcd\x07\xee\xd4\x71\x26\xb5\x22\x51\xab\x01\x30\xe4\x9a\x90\x40\xcb\x98\x31\x37\x98\xe1\x0f\xfd\x99\x40\x3e\x1a\x4f\xc7\xce\xa8\x15\x4c\x60\xbb\x0b\x78\x34\xf1\x46\x43\xd9\xb4\x82\x59\x10\x30\x1d\xd9\x9e\x67\xde\x5b\x45\x6d\xa5\xb5\xa2\x3d\x36\x8c\xc1\xe4\x7b\x5b\x1c\x9a\xc3\xc9\x7c\x7c\x6f\xf5\xbb\x5b\x97\x48\x8a\x91\x7b\x4a\x37\xe8\x03\x26\xcf\xbf\x65\xe4\x5c\x7f\x62\xd4\x47\x6e\xe2\xcd\x27\xb6\x69\xcf\x27\x23\xb3\x7d\xe4\xea\x00\xd5\x21\x99\x71\x02\xfd\x99\x23\x90\x9b\xf6\x7c\x36\x36\x5a\xc1\x04\xb6\xbb\x80\x6b\x1d\x91\x63\x16\x04\x4c\x26\x8e\x37\x19\xde\x5b\x45\x6d\xa5\xb5\xe2\x5d\x5d\xdf\xdd\xa2\x61\x4c\x84\x68\x7a\x77\xf5\xbb\x5b\x97\x48\x8a\x91\xbb\xa0\x1b\xf4\x1c\x93\x8f\xdf\x30\x72\x73\x6f\x3c\x1f\x35\xd7\x9c\x67\x8f\x06\xce\x6c\xe8\xd8\x5d\x6b\xae\x02\x30\x1e\xb2\x91\xaf\x0e\x09\x17\xa5\xe6\x33\x81\x7c\x38\x98\xcd\x1c\xaf\x15\x4c\xce\xc7\x3b\x80\x1b\x1d\x21\x80\x05\x01\x42\x3d\xbf\xb7\x8a\xda\x4a\x6b\xc5\x39\x33\xcc\xd1\xe0\x7b\x5b\x1c\xb3\x91\x6f\x0f\xee\xad\x7e\x77\xeb\x12\x49\x31\x72\x7f\xd2\x0d\xfa\x88\xc9\x4f\x1d\xfb\x1c\xd7\x0d\xe7\xf3\xb9\x37\x73\xe7\x03\xd7\x1e\x8c\xb9\x84\xc2\x3c\x7f\xe6\x3b\xce\x80\x0d\xd8\x00\x50\x8f\x06\xc3\x99\x33\x1a\xb7\x17\x41\x2d\xc3\x98\x78\x03\xb7\x00\x70\x5d\xe6\xb2\x89\x40\xfb\x5d\x60\x23\xd3\x66\xd3\x89\x68\x8e\xab\xb4\x03\x3e\x93\xfc\xa9\xef\xfa\x9e\x20\xf5\x3f\x50\x85\x93\x54\xd7\xa5\xde\xd1\x0d\xfa\x09\x93\xd7\x1d\xbd\x66\x30\xd7\x1f\xcd\x99\xe3\x7a\xf6\x6c\x36\x9e\xd8\xd3\xb2\x6b\xc0\x1c\xc5\x5b\x72\x27\xb3\xd9\xc8\x9c\x7b\x1d\x45\xbc\xd6\xcc\x34\xfc\x69\xd9\x1d\x8e\xef\x0d\xd9\x44\xa2\xfd\x2e\x30\x77\xe2\x38\xa6\x68\x6e\xc2\x0c\x73\xe2\x94\x5d\x00\xa4\xfe\xe3\x55\x04\x49\x23\x90\xa4\xcb\x5e\x7b\x43\x37\xe8\x35\x26\x3f\x77\xf5\x9a\x3f\xf4\x1c\x7b\xe6\x79\xce\x78\x34\xb4\x07\x2e\x5f\xe9\xbe\xe1\xcf\xd9\xcc\xb1\xd9\xc8\x71\xa7\x8e\xeb\xba\x9c\x09\xb8\x0e\x6b\x2d\x12\xb5\x8c\xd9\x64\x06\xd2\xa4\x00\x10\xe6\x2d\x81\xf6\xfb\xc0\x98\x33\xf4\x86\xa2\x39\x63\x36\x9e\xcd\x59\xde\x05\x86\x20\xf5\x3f\x50\x85\x93\x64\xcc\x46\xc6\x4c\x91\x44\xff\xa6\x1b\xf4\x33\x26\xbf\x75\xf0\x56\xc6\x66\xee\xcc\xf7\x1c\x67\x36\x62\xc3\x91\x3d\x1c\xf2\x26\x99\x6f\x78\x73\xdf\x73\xdd\x99\x2d\xd8\x1f\x67\xf3\xa6\xdf\x5a\x24\x6a\x39\x43\xc3\x30\x0c\x05\xc0\x1b\xcd\x99\x40\xfb\x7d\x60\xfe\x64\x3c\x9a\x89\xe6\xe6\xf3\x1c\xd8\xf7\xa7\xcc\xcd\x49\xfd\x87\xab\x08\x92\xa6\x3e\x54\x2c\x7a\xed\x19\xdd\xa0\xdf\x30\x79\xd5\x31\xd7\x5c\x36\xf0\x0d\x7b\xe2\x78\x9e\x63\xba\x73\x03\xe4\x77\x7f\xc2\x15\x73\xc7\x73\xe7\xcc\x14\x4a\x90\x31\x98\x99\x33\xbb\xb5\x48\xd4\x32\xcc\x89\x3b\x2e\xeb\x7a\x86\x67\xb2\x89\x40\xfb\x5d\x60\xc3\xc9\xdc\x70\x0d\xd1\x9c\x61\x4e\x46\xe3\xbc\x0b\x7c\x47\x90\xfa\x9f\xa8\xe2\x8e\xe7\x86\x39\x9a\x0c\x27\x65\xaf\x7d\xa6\x1b\xf4\x0a\x93\x87\x9d\xbd\x36\xf5\x07\x02\x63\xb9\x0c\x4d\xc6\xfc\x89\xe8\x9a\xe9\x08\x7a\x6d\x3c\x35\x40\x1d\x6d\x16\xc9\x79\x3e\xe2\x4b\xa0\x00\x50\x09\xfd\x2e\x30\xf9\x3e\xd0\x9c\x31\x1c\x31\xb0\x36\x16\x5d\x30\xf5\x07\xff\x7c\x15\x20\xc9\x18\x0c\x67\x63\x45\xcb\xff\x8b\x6e\xd0\x43\x4c\xbe\x74\xf4\xda\x94\x99\xcc\x77\xe7\xf3\x91\x3b\xf5\x3c\xd3\x9d\x4e\xcb\x57\x9a\x3a\x63\x6f\xe6\xf9\x93\xb1\x63\xb8\xcc\x1c\x8c\x27\xad\x45\xa2\xd6\x7c\x66\x18\xa3\x61\x09\x30\x72\xe6\x9e\x2d\xd1\x7e\x0f\x98\xf0\xc6\x88\xe6\xe6\xa6\x61\x0c\x7d\xc1\xa4\x46\xfe\x5c\x90\xfa\xcf\x57\x01\x92\x84\x8e\x57\xf6\xda\x4b\xba\x41\x5f\x30\xf9\xda\xc1\xd7\x3c\x66\x78\x9e\x6f\xcf\x7d\x67\xec\x8e\x4d\x47\x2c\x43\xc6\x1c\x36\xf0\x1d\x67\xe4\xcc\xfd\xe9\x64\x66\x9b\x36\x33\xcc\x29\x6b\x2d\x12\xb5\xa6\xb6\x61\x8a\x1e\x17\x00\xae\x3b\x76\x0d\x81\xf6\xbb\xc0\x3c\x6f\x38\x9a\x4f\x45\x73\x25\x30\x9f\x38\x43\x49\xea\x7f\xa6\xca\x68\x6e\x18\x13\x45\xbb\xfd\x95\x6e\xd0\x57\x4c\x7e\xe9\x98\x6b\x9e\x3f\x73\xcc\xa9\xef\x7a\x8e\x33\x70\xa7\xbe\x33\x13\x4d\xfa\xae\x6b\x9b\x9e\xed\x70\x29\x66\xe2\x8e\x06\x83\x31\xb3\x3b\x8a\xa0\xd6\x60\x3c\x1c\x81\x94\x2e\x00\xdc\x29\x9b\x3b\x23\x81\xf6\xbb\xc0\x4c\x6f\x6e\xba\x86\x68\xce\x70\x07\xee\x2c\x07\xf6\xe6\x82\xd4\x7f\xbc\x8a\x20\xc9\x98\x99\x9e\xba\x42\xff\x45\x37\xe8\x17\x4c\x7e\xef\x98\x6b\x53\xdf\x75\xe6\xb6\xe7\x79\x33\x36\x34\xed\xe1\x58\x79\xa5\x01\x17\x0d\xa7\x33\x77\x32\x9d\x0f\x86\xb3\x91\x58\x59\x8d\x22\x51\xab\x50\xad\x04\x80\x37\xf7\x0d\x7b\x28\xd0\x7e\x17\xd8\xc8\xb4\x9d\xb1\x27\x9a\x33\x8c\xb1\x3d\x1c\x48\x60\x36\x16\xa4\xfe\x07\xaa\x4c\x84\xc7\x60\x3c\x50\xec\xce\x7f\xd0\x0d\xfa\x1d\x13\xc6\x3a\xba\x8d\x6f\x89\xae\xcf\xdc\xd1\xc8\x07\x77\x2f\xcb\x47\x0a\x7c\xac\x33\xe6\xb3\xf9\x7c\x30\x77\xdd\x91\x6b\x0c\x5a\x8b\x44\xad\xf9\x7c\x38\x32\x46\x0a\x00\x1b\xce\x4d\x81\xf6\xbb\xc0\x98\x3b\x35\xcc\x91\x68\x6e\xe6\x0e\xbc\x02\x98\x8d\x73\x52\xff\xe1\x2a\x82\xa4\xc9\x64\x30\x36\x94\x4d\x34\x63\x74\x83\x18\xc3\x24\xe9\xec\x38\xe6\xd9\x86\xcf\x9c\xc1\xc8\xf5\x8d\xa1\x33\x90\x5b\xb7\xef\x0c\x7c\xc6\x79\x82\xef\xcd\xbc\xa1\x2b\x5c\xde\xad\x45\xa2\x96\xe3\x71\x0d\x5e\x01\xf0\xe6\xd3\x89\x44\xfb\x5d\x60\xee\x88\x0d\x6c\xd1\x9c\x63\x2a\xc0\xae\x9b\x93\xfa\x4f\x57\x01\x92\x66\x06\x54\x2c\x3a\x2e\xe2\x1d\x97\x30\x4c\x82\x8e\x8e\xf3\x18\x73\xfc\xe9\x9c\xb9\x36\x33\x87\x60\x2b\xe4\x5a\x8f\xef\x0f\x7d\xdf\xf1\xbc\x29\x9b\x4e\x1c\x9b\x79\x93\x81\x39\x35\x9d\x71\x6b\x91\xa8\x65\xcc\xc6\xe6\xdc\x2d\x00\xdc\x89\xe7\x30\x5f\xa0\xfd\x2e\xb0\xd1\x60\x3e\x70\x65\x73\xc6\x6c\x24\x0c\x1b\x5c\x96\xf0\x7d\x41\xea\x7f\xa0\x0a\x27\xc9\x98\x0d\x8d\x89\xa2\x58\xc5\xbc\xe3\x02\x86\x89\xdd\xd1\x71\x5c\xd3\x65\x86\x6d\x7a\xf3\xb9\x53\x70\x38\xce\x4e\xd9\x1c\x14\xa8\xe1\x74\xe4\x8e\x72\x95\xb7\xb5\xa8\x60\x5d\xa5\x82\xce\xe6\x9c\x15\xbb\x12\xed\x77\x81\x15\xbc\x47\x28\xe5\x92\x5d\x71\x45\x69\x2c\x48\xfd\x0f\x54\x69\xd3\xe3\x53\xde\x71\x36\xc3\x24\xec\x5a\xaa\x06\xff\x73\x3c\xfe\x37\x19\xf2\x3f\xd1\xea\xd4\x9f\x8a\xb8\x8f\xf9\x84\xff\x8d\x07\xfc\xaf\xb5\x48\xd4\x82\xf2\x71\x01\x20\xe3\x2f\x00\xed\x77\x81\x4d\x87\xfc\x4f\x34\x57\x02\x8b\x7f\x40\xea\x7f\xa8\x8a\x61\x54\xd5\xab\x1d\xef\xb8\x90\x61\xe2\x76\xcd\x38\x9f\x79\xfe\xd8\x71\x1d\xcf\x73\xa7\xe3\x89\xe3\x98\xbc\xd5\x81\x6f\xf8\x53\xd7\x71\xe7\x6c\x30\x67\x73\xdb\x9d\x4d\xec\xb1\x69\x0f\x5b\x8b\x44\x2d\xf0\xc3\xf9\x05\x80\x67\x7b\x36\x73\x04\xda\xef\x02\x9b\x19\x53\xcf\xb1\x45\x73\x23\xdb\x1c\xcd\x80\x61\xb9\xbe\xe3\x7b\x82\xd4\x7f\xbc\x8a\x20\x69\xe8\x1b\xc6\xd4\x2b\x3b\xce\xe3\x1d\xe7\x32\x4c\xd6\x5d\x33\x8e\x31\xc3\x1b\xf8\xee\x7c\x30\x1d\x78\x6c\xe0\x09\xce\xca\xd8\xd8\x9b\xfb\xae\xcd\xe6\xa6\xef\x4c\xec\x91\xed\x3a\xe6\xcc\xf4\x5a\x8b\x44\x2d\x7b\x6c\xf8\xe6\x58\x01\x70\x1c\xdb\x14\x68\xbf\x0b\x8c\xf9\x43\x67\xe0\x8a\xe6\x40\x3b\xf7\xc4\xf4\x19\xfb\x46\x4e\xea\x3f\x5c\x45\x90\xc4\xd5\x05\x43\xe9\x38\x9f\x77\xdc\x9a\x61\xb2\xed\xee\xb8\x89\xcb\xc0\x12\xea\xb0\xc9\x78\x6c\xc8\xde\xf1\x3c\xe6\x7b\x0e\x9b\x8d\xc5\x36\xe4\xcd\x47\x53\x70\x73\x37\x8b\x44\x2d\x7b\x32\x9c\x18\x43\x05\xc0\x33\xec\x81\x40\xfb\x5d\x60\xbe\x39\x99\x9b\x43\x6f\x3e\x9a\x19\xa6\x2a\x5b\x8c\xc1\x07\x0d\xa4\xfe\xc3\x55\x04\x49\x53\x7f\x30\x35\x46\x65\xc7\x6d\x78\xc7\x6d\x19\x26\x97\xac\x2d\xcf\x2e\x2b\x0e\x20\x23\x83\xe4\xc7\x98\x91\x49\x18\xc6\x44\x4b\xce\x1d\xa4\x9d\xb4\x01\x0c\xc6\x63\xa2\xa4\xa3\xe9\x8d\xfa\xe3\x51\x8f\xfd\x80\x86\xe3\xfe\x10\xbe\x0c\x86\x33\xb3\x3f\x1d\xf2\xaf\x93\x91\x31\xe8\x4f\xf9\xb7\xa9\x31\x18\xf5\xa7\x83\xde\x60\x6a\x1a\xfd\xf1\xf4\x07\x86\xc5\xbf\x13\x8d\x3c\xf8\xa6\x76\x86\x83\xfe\x68\x7e\xc2\x7e\x40\xe6\xd4\xe8\x4f\x87\xfc\xdb\x78\xd0\x9f\x0d\x38\x72\x73\x68\xf6\x47\x13\xf8\x36\x9d\xf4\xc7\xb3\xde\x64\xda\x1f\xfe\x1b\x6d\xcc\xcc\xfe\x60\xc4\x31\x8f\x46\x83\xfe\x10\x10\x0e\x46\xb3\x41\x7f\x24\x5e\xc6\x9c\x4c\xfb\x03\x78\xc5\xc9\xc4\x1c\xf5\xe7\xa3\xde\x60\x34\x1d\xf7\x27\x6a\x4b\x58\x3b\x90\x73\x46\x13\x34\xc5\xc4\xe1\x9f\x73\x7c\xe4\xc6\x51\x9a\x3d\xb8\x91\xfd\xfd\xe1\xf5\x23\x73\x66\x90\x33\x46\xcd\x99\xf1\x48\x3e\x12\x17\x49\x32\x6a\xf6\xa7\xb3\xc1\x74\x4a\x5e\x30\xda\xeb\x0f\xe6\x83\xc1\x94\x5c\xf3\xaf\x73\x63\x32\x9a\x93\xf7\x1c\x60\x3e\x1d\xcc\x47\xe4\x13\xa3\xef\xd9\x0f\xd7\x8c\x9c\xc2\x97\x2b\x46\xde\x32\x7a\xc5\x7e\x78\xc1\x7a\x0f\x7a\x7d\xce\xb2\xcc\x1f\xae\x59\x79\x1a\xf2\x43\x9e\x7f\x9b\x3d\xc8\xd3\x69\xc4\xfe\x83\xe7\xc5\xe1\x7e\xbe\xb0\x9e\x33\xc4\xfa\x6b\xc2\xfa\x29\x61\xfd\x90\xb0\x7e\xbc\xb5\xdd\x20\xbb\xc1\x47\x95\x4a\x0e\xeb\x3b\xfb\x3d\xca\xf3\xeb\x22\x87\xf5\xcf\x31\x62\x38\xcf\x25\xc8\xfa\xc9\xa3\xff\x97\xb6\x77\xed\x8e\xdb\xc6\xd2\x46\xbf\xeb\x57\x94\x6b\x65\x29\xa4\x45\xb3\x71\xbf\x54\x37\xa3\xd7\xed\x78\x66\x72\x4e\x6e\x2b\x72\xf7\x99\x39\x1a\x2d\x07\x97\x0d\xa9\x3a\x25\x52\x4d\x52\x76\xdc\x52\xfd\xf7\x77\x01\x24\xab\x58\x92\x6c\x27\x3d\x3d\x5f\x9e\x22\x89\xdb\xc6\xc6\xc6\xbe\x80\x2c\x20\x32\xb6\xad\xa0\xbc\x4c\x57\x75\x05\xa5\x4d\x57\xeb\x2a\xfb\x0e\x9e\xd7\x27\x67\xf0\xbc\x7f\xf1\x06\x9e\xb7\xf9\x1f\xb2\xef\xe0\xe4\x0c\x5e\xbc\x49\x3b\x4d\xd4\x2f\xd6\x85\xa9\xb2\x1f\xe0\x79\xd6\xbe\x58\xe7\x2f\x5e\xc3\xf3\x26\xff\xc3\xaf\x50\x74\x03\xf3\xba\xbf\xb7\x7d\x66\x9e\x9b\x93\x26\x3e\x8f\xf9\xd6\xcf\x33\xfc\x62\x9d\xe7\xc5\xa6\xea\x4e\x53\x1e\xd3\x9b\x9a\x64\xa6\x68\xf2\xe7\x6f\xe1\x05\x26\x68\xf5\xbd\xf9\xfe\xe8\xb0\x9f\x9b\x3f\xa1\xd3\xcd\x09\x15\x68\xb5\x29\xba\x62\x3d\xeb\xeb\xec\x4c\x44\xd8\x6f\x8d\x30\x96\xc6\x55\x55\x99\xf6\xf2\x76\xf8\xb7\xed\xf0\x3d\xe3\x69\x62\xed\x6a\x62\xe0\x50\x22\xfd\x2d\xbc\x3e\xc5\xab\x7a\x56\xe1\xab\x59\x85\xfd\xd5\xba\x2b\xaf\xaa\x13\x28\xd2\x55\x57\x9d\xf4\xc3\xd5\xa6\x3a\x69\x87\xab\x91\xa2\xea\xa4\xde\x8e\x9c\xbe\x84\xd2\xe4\xd9\x2b\x28\x5e\x4e\xe7\xd0\xc7\x47\x36\x8f\x43\x60\x8a\x3b\x9b\xfe\xc1\x7a\xb0\x2d\xc7\x6c\xb2\x8f\x1b\x67\x9e\x5a\x28\xdd\x2a\x31\xea\xa6\x79\x1f\x4b\xba\x02\xa2\x07\x9e\xc8\x1f\xc8\x1a\x69\x1a\x09\x7a\x0e\x07\xf4\xe4\xdb\xc2\x9b\xf6\x97\xdf\xd0\x8c\x3f\x68\xc6\xff\xee\x66\xda\x4b\xfb\x78\xb7\x9e\x75\xf7\xbd\xf9\x7e\xac\x20\x3f\x45\xab\xf1\xf2\x04\x13\x94\x3f\xff\x00\x45\x5f\x9d\x0c\xf5\x15\xed\x3c\x6f\x17\xf3\x0e\x57\xcf\xfb\x28\x32\xe9\xfb\xea\x44\x9f\x6b\xba\x2c\x86\x1e\xa3\x84\xad\x63\x7f\xe6\xe2\x12\xe5\x3d\x6a\x8a\xe7\x59\x7f\xd2\x3e\xcf\xa6\xd9\x55\x9f\xbc\x87\xe7\x51\xf0\xf6\x49\xaf\xa3\x68\xff\xfa\xf0\xe9\x0f\xf0\xbc\xce\xf3\x07\x9d\x9b\xbe\x0b\xff\x25\xea\x08\x35\xdb\xb4\xf1\x27\x78\x62\x8f\x8e\x45\x9f\xb5\xf9\xdd\xfc\xff\xe7\x45\xbd\xdb\x4e\x3b\xcb\xfa\xea\x25\x64\x7d\x9e\x97\x57\x45\x56\xc7\xeb\x3a\x5e\xc7\xf9\x34\x4a\xc9\x2f\x49\x70\xfa\xb2\x2b\xea\xb2\xcb\x0b\xf3\xf0\xf9\xa6\xa8\xcb\xcd\x7e\x77\xca\xdd\xf3\x91\xdc\xa2\xde\xab\x82\x8f\x6f\x28\xd2\x97\x57\xd5\x3a\x72\xb2\x2f\xbb\xaa\x19\x2e\x36\x95\xc9\x76\x42\x00\x45\x9b\x8e\x8e\x98\x04\x3b\xb1\xbd\x3f\x59\x2e\xb7\xd3\x4e\x89\x6d\x14\xfe\xba\xbc\x34\xd7\xd7\xa6\xea\x8b\x7a\x9b\xe1\x7c\xfb\x13\x44\x7a\xdc\xc0\xaf\xbf\x41\x35\xdc\x9b\xbc\xf8\x1a\xaa\xbf\x41\xf6\x12\x32\x8a\x50\x51\xf2\x02\xe5\xc5\x4b\xc8\x5e\x10\x96\xee\x70\x9e\x17\xdf\x4f\x39\x5e\xe0\x98\x45\xf2\xa2\xa4\x3c\xe5\x52\xa8\xc0\x25\x2f\x4a\x95\xe7\xc5\x37\x53\x2e\x22\x3e\x9e\xe9\x5b\x88\x8c\xcd\x8b\x7f\x3b\xb4\xa5\x19\xfc\x09\xdd\xdf\xc3\x57\x38\x3f\x3e\xce\xe0\xc5\x20\x43\x61\xd3\x34\xed\x4c\x23\x0e\x6a\xc9\x76\x19\xbc\x28\xf9\x8e\x85\xdf\x42\x79\x55\x51\x81\x9e\x43\xa2\xee\x5b\x28\xbb\x0a\x97\xfc\x05\x2e\xf9\xf3\x3e\xde\x6e\xaa\x52\xbd\x28\x75\xba\x89\x5c\x2a\xfe\x31\xd7\xb9\x21\xcf\xf2\xe2\x2f\x7b\xa3\x42\x8b\x3f\x43\x45\x9e\xef\x6f\xff\xe3\x89\x4d\xe0\x77\x7b\xf5\x55\x59\xc9\x5f\x40\x3e\x65\x2f\xfe\x01\x65\x5b\x0d\x32\x3b\x9f\x07\xf9\xf3\x3e\x26\x5d\x3e\x4e\x3a\xf9\xcb\x2e\xd5\x3e\x91\xfa\xe7\x29\x35\x11\xfe\xd7\xff\x45\x07\x84\xb2\x52\xe0\xe4\x18\x60\x49\x4a\x9a\x4c\x35\x46\x52\xd3\x92\x27\x0b\x4e\x29\x45\xa8\xc4\xc9\x51\xa0\x8a\x6a\x56\x32\xfd\x02\x33\x45\x78\x89\xf8\xef\xf7\x11\x08\x2d\x69\x6a\x8e\x73\x59\xd2\xe4\x87\x60\x42\xf8\xd8\x30\xe5\x92\x95\x5a\x8c\x34\xd0\x52\xca\x13\x89\x64\xc9\xc5\x3f\xd1\x90\x2c\x49\xac\x9d\x12\x8c\x4b\x9c\x6a\xe4\x94\xc8\x52\x27\x7f\x8a\x48\x85\x07\x6f\x8b\x70\xa1\x4b\xac\x5e\x08\x45\x55\x29\xc4\xa1\x2f\xb2\xd7\x2b\x5f\x1c\xec\xb7\x37\x98\xae\x47\x93\xb9\x9d\x6d\x25\xfe\x14\x89\xfd\x0b\x5c\xcc\x24\xbc\x7d\xde\xe7\x79\x7e\x31\xec\xc8\xf7\x77\xa8\xbe\x80\xac\xce\x96\x8c\x21\xcc\x19\x63\x88\x70\xc1\x38\x62\x5c\x32\x8e\x38\xd7\x4c\x20\xc9\x0d\x13\x48\x71\xc7\x04\x32\xdc\x33\x81\x2c\x07\x26\x91\x17\x88\x49\x04\x02\x33\x89\x91\xa0\x4c\x62\x2c\x18\x93\x98\x0a\xce\x14\x66\x42\x32\x85\x85\x50\x4c\x61\x29\x34\x53\x58\x09\xc3\x14\x36\xc2\x31\x85\xad\xf0\x4c\x61\x27\x80\x29\xec\x45\x60\x0a\x07\x89\x98\x22\x48\xc6\x41\xc6\x92\x32\x45\xa8\x64\x4c\x45\x67\x2d\x0e\xbb\x14\x4c\x11\x21\x25\x53\x44\x49\xc5\x14\xd1\x52\x33\x49\x8c\x34\x4c\x12\x97\xd0\x4b\xcb\x24\x01\xe9\x98\x24\x41\x7a\x26\x28\x92\xc0\x04\x25\x09\xa9\x0c\x4c\x50\xa6\x10\xe3\x94\x2b\xcc\x38\x95\x09\x95\x22\x8c\x51\xad\x28\x63\xd4\x24\xb4\x8a\x31\x4a\x7d\x42\x50\x9c\x11\x1a\x22\x32\xa4\x04\x23\x0c\x2b\xc1\x30\x23\x4a\x32\xcc\x98\x92\x0c\x31\xae\x14\x43\x4c\x28\x45\x03\x93\x09\x95\xd2\x14\x98\x4e\x68\x12\x3a\x65\xa8\x67\x3e\x21\x28\x43\x1d\x0b\x11\x39\x52\x96\x5a\x8e\x13\x12\x65\xa9\xe1\x34\x21\x53\x8e\x6a\xce\x13\x0a\xe5\xa8\xe2\x2a\xa1\x56\x8e\x4a\x6e\x12\x5a\xe5\xa9\xe0\x2e\x61\x0c\x2e\x38\x87\x84\x41\x79\x1a\x07\x2c\x22\x56\x9e\x52\x41\x12\x52\xe5\x29\x11\x4c\x01\x25\x82\x2b\xa0\x71\x70\x22\xca\x84\x4a\x01\x45\x42\x27\x34\x0a\x48\x10\x36\xa1\x53\x40\x40\xf8\x84\x90\x30\x28\x20\x5e\xa2\x84\x58\x01\x71\x23\xa6\xbf\x9f\x48\xaa\x80\x58\xc9\x12\x72\x05\xc4\x48\x91\x50\x26\x54\x0a\xe2\xc8\x25\x34\x09\x63\x2b\x4a\xba\x84\xb1\x15\x29\x21\x61\x6c\x45\xaa\xd8\x8a\x50\x38\x21\xd9\x21\x57\x34\x21\x4b\x18\x5b\x61\x4a\x24\x8c\xad\x50\xa5\x12\xea\x84\x46\x79\x42\x94\x4d\xe8\x12\x7a\xe5\x09\x56\x90\x30\x44\xd4\x28\x61\x8c\xe1\x90\x26\x33\xa4\xca\xe1\xa0\x59\x42\xae\x2c\x0e\x5a\x24\x94\x09\x55\x42\xad\x0c\x0e\xda\x28\x83\x41\xdb\x84\x4e\x69\x0c\xda\x2b\x8d\x83\x86\x84\x41\x29\x1c\x0c\x4a\x88\x47\x94\x38\x18\xa2\x24\x41\x86\x2a\x41\x90\x61\x4a\x10\x6c\xb8\xe2\x04\x1b\xa1\x38\x89\xcc\x8a\xa8\x14\x23\xd4\x68\x45\x09\x33\x46\x51\xc2\x8d\x55\x84\x70\xe3\x14\x21\xc2\x78\x85\x89\x4c\xa8\x0c\x28\x44\xb4\x09\x32\x10\x63\x91\x0c\xc4\x59\x2c\x81\x78\x4b\xa4\x27\x60\xa9\x74\x24\x58\x26\x1d\xc5\x96\x4b\x4b\x89\x15\xd2\x50\x66\x85\xd4\x94\x5b\x29\x35\x95\x56\x49\x45\x95\xd5\x52\x52\x63\x8d\x14\xd4\x5a\x2b\x39\xf5\xd6\x49\x46\x83\x75\x92\x32\x64\xbd\x24\x8c\x58\x90\x98\x31\x1b\xe7\xac\x70\x28\xce\x5f\x87\x05\x30\xe3\xb0\xf0\xcc\x39\x22\x1c\x03\x47\x85\xe5\xc8\x31\x61\x38\x71\x5c\x68\xce\x1c\x17\x8a\x0b\x27\x84\xe4\xca\x49\xc1\x63\x27\x04\xe3\xce\x29\x41\x39\x38\x2d\x88\x40\xce\x08\x24\xa8\xb3\x3c\x08\xee\x2c\x07\x21\x9d\xe3\x4e\x68\xe7\xb9\x15\xce\x79\x6e\x04\x38\xe0\x4a\x22\x17\xb8\x94\xd4\x23\x2e\x24\xf7\x88\x33\x29\x3d\xe6\x54\x1a\x8f\x39\x96\xce\x13\x8e\x64\xf0\x94\x81\xc2\x9e\x32\xaf\x98\x67\xcc\x2a\xe1\x79\x9c\x97\x9e\x33\xa5\xac\x17\x4c\x28\xf0\x82\x71\x8d\xbc\x64\x54\x53\x2f\x19\xd6\xdc\x2b\x86\xb4\xf2\x8a\x82\xb6\x5e\x53\xa7\xbd\xd7\xd4\x1a\xe4\x0d\xd5\x86\x78\x43\xa5\xe1\xde\x52\x61\x94\xb7\x94\x19\xe3\x1d\x25\xc6\x7b\x47\x91\x45\xde\x93\x60\x89\xf7\xc4\x5b\xee\x81\x58\xab\x3c\x10\x6d\x8d\x07\xa2\xac\xf7\x81\x08\x87\x7c\x20\xdc\x11\x1f\x08\x75\x1c\x10\xc1\x4e\x01\x22\xc8\x19\xc0\x38\x38\x0f\x18\x7b\x8f\x00\x63\xe7\x09\x10\x6c\x3d\x07\x82\x4d\x9c\x1a\x58\x7b\x03\x14\x6b\xef\x81\x62\xe5\x43\x44\x20\xc0\xb0\x02\x0e\x0c\x6b\x90\x09\x0d\x70\x6c\x22\x93\xb0\x85\x00\x1c\xbb\x80\x81\x63\x1f\x18\x08\x0c\x41\x80\x20\x28\x28\x10\x04\x07\x0b\x92\xd0\xe0\x41\x12\xbe\xcc\xf3\xe2\xff\x9b\x8c\x41\x5a\x3d\x64\x08\x23\x84\x38\xc2\x08\x23\x91\x50\x21\x82\x30\xd2\x88\x20\x82\x6c\x42\x8f\x28\xa2\x28\x44\xc4\x04\x31\xc4\x30\x43\x1c\x31\x2c\x90\x40\x1c\xab\x84\x06\x49\x24\xb0\x43\x0a\x49\x0c\x48\x23\x49\x10\x32\x48\x91\x58\x87\x26\x0c\x39\xa4\x89\x40\x1e\x19\xa2\x11\x20\x4b\x2c\x46\xc8\x12\x8f\x31\x72\x24\x60\x82\x3c\xc5\x98\x22\x4f\x63\xdd\x40\x05\xe6\x08\xa8\xc2\x02\x05\x6a\xb1\x42\x81\x7a\xac\x31\xa2\x01\x1b\x8c\x18\xc1\x0e\x23\xc6\xb0\xc7\xd1\x28\x01\xc6\x4c\x13\x84\x31\xb3\x04\x63\xcc\x80\x10\x8c\x39\x22\x0c\x13\x4e\x09\xc7\x84\x73\x22\x31\xe1\x8a\x68\x8c\xb9\x21\x06\x63\xee\x88\xc3\x98\x87\xd8\xbe\xc0\x24\x60\x2c\x28\xc5\x18\x0b\x4e\x29\x46\x42\x52\x86\x91\xd0\x54\x60\x24\x2c\x55\x18\x09\x47\x35\x0a\x02\xa8\x45\x41\x22\xea\x51\x90\x98\x06\x14\x24\x61\x08\x05\xc9\x18\x41\x41\x72\xc6\x50\x90\x82\x71\x8c\xa4\x8c\xc6\x52\x2a\xa6\x13\x9a\xe8\xf3\x30\x87\xb1\x34\x0c\x30\x96\x96\x05\x4c\xa4\xe5\x18\x13\xe9\x38\xc1\x54\x3a\xce\x30\x95\x9e\x47\x2b\xeb\xb9\xc4\x5c\x02\xd7\x09\x0d\x16\x12\xb8\xc3\x42\x06\xee\xb1\x94\x81\x07\xac\x64\x10\x08\x2b\x85\x04\xc1\x5a\x21\xc1\xb0\x51\x48\xf0\x84\x12\x5b\x85\x84\xc2\x4e\x61\x61\x12\x5a\xec\x15\x16\x3e\x21\x60\x50\x58\x22\x1c\x14\x96\x24\x21\x25\x48\x61\xc9\x09\x8e\xf6\x3b\xa1\x22\x44\x61\xa9\x09\x51\x44\x5a\x42\x15\x91\x2e\x61\x54\xbc\x44\xa1\xc8\x48\x15\xd9\x89\x15\x4d\x4a\x9b\x25\x14\xd1\xeb\x51\x2a\xa1\x26\x4a\x61\x65\x89\x56\x51\xd9\xea\xa4\xd8\x8d\xc2\x1a\x25\xc4\xc4\x2a\xac\x29\xb1\x0a\x69\x46\x9c\x42\x5a\x24\x54\xc4\x2b\xa4\x75\x42\x4b\x40\x06\xed\x12\x02\x09\x32\x18\x94\x10\x47\x63\x6f\x68\x42\x4e\xb1\x04\x23\x28\x96\x3e\x6a\x4c\xe9\x8d\xa1\x54\x7a\x63\x29\x95\xce\x78\xca\xa4\x33\x40\x99\xb4\x16\x51\x2e\xad\x25\x09\x29\x15\xd2\x58\x9e\x50\x52\x29\xb5\x55\x09\x0d\x55\x52\x59\x47\xa3\xd6\xf7\x54\x4b\x69\x03\x35\x52\x3a\x44\x8d\x14\x8e\x50\x2b\xb9\x63\xd4\x49\xee\x38\x75\x92\x39\x49\xbd\xa4\x4e\x51\x90\xd4\x19\x0a\x92\x38\x47\x83\xc4\xce\x33\x24\xb1\x0b\x0c\x49\xe4\xe3\x14\x09\x9e\x30\x22\xa2\x8a\xa2\x02\x3c\x67\x4c\xf8\xa8\x8a\x84\xf3\x2a\xa1\x66\x42\x58\x6f\x99\x14\xc6\x3b\xa6\x84\xf6\xc0\xb4\x50\x3e\x30\x23\x14\x20\xe6\x44\x64\xbc\x17\x02\x28\x03\xc1\x81\xb1\x20\x18\x70\x8e\x04\x03\xc9\x89\x88\xbe\x0b\x15\x04\x34\x67\x82\x80\xe1\x42\x60\xb0\x5c\x0a\x04\x8e\x2b\x81\xc0\x73\xc3\x03\x00\xb7\x1c\x20\x70\xcf\x21\x20\x1e\x38\x04\x2c\x10\x8f\x7a\x8a\x24\x64\xdc\x05\x2a\x38\x77\x81\x09\x99\x50\x73\x17\xb8\xb0\xdc\x05\x21\x5c\x42\xe0\x2e\x48\x89\x12\x12\xee\x82\x92\x2c\xa1\xe0\x2e\xda\x4a\xee\x83\x96\x3a\xa1\xe5\x3e\x18\x19\xdb\x32\x32\xb6\x65\x14\xe6\x21\x58\x45\x13\x72\x81\x82\x55\x52\xe0\xe0\x94\x4e\x68\x04\x09\x4e\x39\x41\x83\x53\x20\x58\x70\x1a\x09\x1e\xbc\x26\x42\x84\xc8\x20\x19\xbc\x16\x42\x05\xaf\x95\xd0\xc1\x6b\x23\x4c\xf0\xda\x0a\x1b\x40\x7b\xe1\x02\xe8\x20\x7c\x00\x83\x05\x04\x30\x54\x84\x00\x86\x4b\x1c\xc0\x48\x49\x02\x18\x2d\x69\x00\x63\x24\x0b\x60\x9c\x14\x01\x0c\x48\x19\xc0\x22\xa9\x02\x58\x22\x4d\x00\xcb\xa4\x0d\x60\x85\x74\x01\xac\x94\x10\xc0\x6a\x19\x02\x58\xab\x70\x00\xeb\x15\x09\x60\x83\x62\x01\x1c\x56\x3c\x80\x23\x4a\x06\x70\x4c\xa9\x00\x4e\x28\x13\xc0\x29\xe5\x02\x38\x13\x35\xb6\x73\x2a\x04\x70\x5e\xa3\x00\x2e\x68\x12\xc0\x63\xcd\x02\x78\xaa\x79\x00\xcf\xb5\x0c\xe0\xa5\xd6\x01\xbc\xd2\x26\x78\x6f\xb4\x0b\xe9\x7d\x45\xf0\x1e\x0c\x0a\x1e\x90\xc1\xc1\x03\x31\x51\x71\x53\xc3\x83\x07\x6e\x64\x54\xe2\x46\x07\x0f\xda\x98\xe0\xc1\x1a\x17\x1c\x38\x03\xc1\x01\x58\x14\x5c\x40\x96\x04\x17\x88\x65\xc1\x05\x66\x45\x70\xd1\xbf\x0b\x2e\x48\xab\x83\x0b\xda\xda\xe0\x82\xb5\x3e\xa4\xff\x6c\x47\x63\xf0\xef\xbf\xc9\x18\x98\x64\x06\x5c\x42\x40\x14\x11\x1c\xf3\x0e\xc6\x80\x8e\xc6\x40\x22\x81\x18\xd6\x48\x22\x8e\x2d\x52\x88\x63\x8f\x34\x12\x38\x20\x83\x64\x32\x03\x32\x99\x01\x95\xcc\x80\x4a\x66\x40\x27\x33\xa0\x93\x19\x30\x14\xe1\xe8\x26\x11\xcc\x90\xa5\x0c\x73\x64\xa9\xc4\x02\x59\xaa\xb1\x42\x8e\x3a\xac\x91\xa3\x80\x2d\x72\x0c\x63\x87\x1c\xa3\x18\x90\x63\x1c\x07\xe4\x62\x34\x81\x1c\x33\x84\x22\xc7\x5c\x6c\x87\x85\xe8\x66\x70\x4c\x14\xb2\x9c\x12\x8d\x2c\xe7\xc4\x22\xcb\x25\xf1\xc8\x72\x4d\x02\x32\xdc\x52\x8c\x0c\x77\x94\x20\xc3\x81\x32\x64\x78\xa0\x02\x69\x81\x69\xd2\x4a\x54\x23\x2d\x28\xb5\x48\x0b\x46\x3d\xd2\x82\x53\x40\x5a\x08\x86\x90\x11\x92\x11\x64\x84\x62\x2c\x21\x47\x46\x68\x26\x91\x15\x86\xe9\x84\x06\x39\x61\x99\x4b\xe8\x91\x17\x8e\x85\x88\x1c\x23\x10\x8e\x13\x04\xd1\x49\x41\x41\x78\xce\x13\xc6\xe8\x2a\x2a\xfd\x88\x06\xe3\x38\xdd\x30\x11\xc0\x7d\xc2\x80\xa9\x00\x81\x13\x12\xcc\x04\x08\x86\xb9\x00\xc1\x13\x4a\x2c\x04\x08\x9d\xd0\x60\x29\x40\x38\xac\x04\x08\x9f\x30\x60\x2d\x40\xe2\x84\xd1\xed\x04\xc9\x12\x72\x6c\x05\x48\x89\x9d\xf0\x52\x25\x34\xd8\x0b\x2f\x5d\x42\x8f\x41\x78\x19\x30\x08\xa7\x10\x8e\x11\x02\x21\x48\x38\xc5\x08\x12\x36\xfa\xaf\xc2\x2a\x99\x30\xb9\xa8\xca\x24\x74\x84\x0a\xad\x7c\xc2\x40\x98\xd0\x3a\x86\x9a\x4a\x93\x84\x94\x08\x21\x35\x4f\x28\x89\x14\x42\xab\x84\x86\x28\xc1\xb5\x25\x5a\x30\xed\x13\x06\x62\x04\x35\x28\x21\x21\x56\x10\x43\x89\x13\x38\x3a\x99\x02\x19\x41\xbc\x40\x46\x11\xe0\xc1\x68\x02\x1c\x8c\x25\x81\x83\xf1\x14\xf1\xe8\x3c\x21\xee\x2c\xa2\x98\x5b\x8b\x93\x2b\x4d\x13\x32\x4a\xb9\xb6\x82\x32\xae\xac\xa4\x9c\x4b\xab\x29\xe7\xc2\x9a\xa8\xf9\x6c\x8c\xb5\x98\xf5\x54\x71\x6a\x03\xd5\x9c\x44\xd5\xcf\xb1\xc3\xd4\x70\xe4\x28\x8d\x73\x8a\xd1\xe8\xf1\x8a\x18\xe3\x39\x19\xe3\x3d\x17\xe3\x40\xeb\x0c\x43\xcc\x38\xcb\x30\xd3\xce\x31\xc2\x94\x03\x16\xed\x4f\x60\x51\xdf\x23\xc6\x19\xf7\x84\x09\xc6\xa2\x55\x62\xd4\x33\xa6\x18\xf1\x9c\x19\x86\xbd\x64\x96\x06\xaf\x98\xa3\xe0\x35\xf3\xd4\x7b\xc3\x80\x3a\x6f\x39\xa2\xd6\x7b\x8e\xa9\xf1\xc0\x09\x55\x3e\x70\x4a\x25\x20\xce\xa9\x00\xcc\xa3\x33\x4d\xb8\xa4\x0c\x28\xd7\x94\x02\xe3\x86\x62\xe0\xdc\x51\x04\x82\x7b\x12\x40\x72\x20\x00\x4a\x20\xe2\x41\x0b\x4c\x6c\xb4\x96\xc4\x80\x15\x8c\x68\xb0\x42\x10\x05\x4e\x48\x22\xc0\x0b\x4d\x38\x80\x30\x84\x41\x88\xd6\x2e\x3a\x90\x04\x07\x24\x02\x41\x01\x4b\x8c\x43\xc0\x92\x62\x1f\x88\x64\xd8\x05\x2a\x05\xb6\x21\x86\xd6\x3a\x30\xa9\xb1\x0a\x5c\x5a\x2c\x03\x8f\xce\x79\x10\x12\x30\x0b\x42\x21\x4c\x83\x54\x04\x93\x20\x15\xc3\x28\x28\xc5\x51\x08\x4a\x49\x04\x41\x29\x8d\x5c\xd0\xca\x22\x1b\xb4\x72\xc8\x04\xad\x00\xe9\x60\x34\x42\x2a\x0e\x2a\x92\xc1\x68\x86\x64\xb0\x5a\x20\x11\xac\x96\x09\x75\x42\x9b\xd0\x23\x19\x9c\x0e\x11\x0d\x46\x2a\x38\x43\x91\x0e\xce\x70\x64\x42\x0c\x30\x5c\x70\x46\x21\x1f\x9c\x31\x28\x04\x67\x5c\x74\xbc\x0d\x60\x12\x9c\x45\x98\x05\x67\x09\x16\x21\x0e\x9b\x0a\xd6\x0a\x6c\x42\xd4\xf6\x3e\xa4\xd7\xa0\xc1\x5a\x17\x7d\x67\x0b\x84\x06\xe3\x10\x11\xc1\x38\x42\x54\x30\x8e\x11\x13\x8c\x13\xc4\x07\xed\x24\x09\x41\x3b\x4d\x49\xd0\xce\x52\x1e\x94\xf3\x54\x06\xe5\x02\x35\x41\x7a\x4c\x7d\x90\x9e\x0e\xd3\x9c\xd1\x20\xbc\x64\x22\x70\xaf\x99\x0e\xdc\x5b\xe6\x02\xf3\x9e\x85\xc0\xe2\xd8\x06\x16\x47\x35\x50\xa0\xdc\x04\x0a\x3c\x1a\x66\x10\x02\x07\x02\x4a\xf0\x40\xc0\x08\x1d\x30\x38\xe1\x03\x06\x2f\x71\xc0\x10\x24\x0f\x38\x60\xa9\x03\x09\x44\xfa\x40\x02\x53\x24\xd0\xc0\x95\x08\x34\x44\xb3\xc4\x82\x52\x90\xfe\x2e\x42\x82\x08\x46\x8b\xa0\x82\xd5\x26\xe8\xe0\xb4\x0f\x26\x78\x83\x83\x0b\xc1\xb0\x68\x0c\xfe\x6b\x67\x0c\x3c\x52\x4a\x62\x84\xa4\x52\xd1\xe5\x52\x1a\x0b\x24\x95\xc1\x1a\x09\xe5\xb0\x45\x42\x79\xec\x51\x0c\xc6\x11\x12\x2a\x44\xcd\xa0\x11\x61\x48\x68\x4c\x04\xe2\x3a\xaa\x5d\xae\x09\x31\x88\x6b\x4a\x1c\xe2\x9a\x11\x40\x5c\x73\x12\x10\xd7\x82\x62\xc4\xb5\xa4\x34\x21\x47\x4c\x2b\x2a\x11\xd3\x9a\x2a\xc4\xb4\xa1\x26\xa1\x43\x4c\x5b\x0a\x88\x69\x47\x43\x44\x86\x11\xd3\x9e\x51\x44\x35\x30\x96\x50\x20\xaa\x03\x53\x09\x35\x8a\x05\x2d\xa2\x06\x33\x87\x88\xc1\x0c\x10\x31\x84\xa3\x84\x18\x11\x43\x39\x4d\xc8\x11\x31\x8c\x0b\x84\x0d\xe3\x2a\xa1\x46\xd8\x70\x6e\x13\x3a\x84\x8d\xe0\x10\x51\xa0\x84\x18\xa1\x18\x27\x27\x64\x09\x45\x42\x89\x90\x51\x42\x27\x34\x09\x5d\x42\x48\x18\x22\x46\x26\x9a\x18\xff\x63\xa3\x24\x4b\xc8\x13\xca\x84\x2a\x61\xd4\x73\x4a\xda\x84\x1e\x51\xa3\x24\x44\x54\x08\x31\xa3\x14\x46\xcc\x48\x45\x11\x37\x52\xb1\x84\x02\x09\x23\x94\x44\xd2\x08\xa5\x90\x32\x42\x19\xa4\x0d\x57\x16\x19\xc3\x95\x47\xd6\x70\x05\xc8\x19\xa6\x02\xf2\x26\x06\x21\x60\xa8\x26\x28\x18\xaa\x19\x8e\x21\x18\xc7\xd8\xe0\x68\xe7\x0c\xd6\x0a\x33\x83\xb4\xc6\x5c\x07\x6d\xb0\xd0\x41\x3b\x2c\x35\x68\x8f\x95\xf6\x1a\xb0\xd6\xde\x20\x6c\xb4\x33\x18\x5b\x6d\x0d\xc1\x5e\x9b\xa8\x6b\xb4\x31\x1c\x07\xad\x8d\x20\x48\x2b\x23\x09\xd6\xd2\x28\x42\xb4\x30\x86\x50\xcd\x8d\x25\x4c\x33\xe3\x88\xd0\xcc\x78\x22\x35\x35\x40\x94\x26\x16\x11\xad\xb1\xc5\xc4\x68\x64\x09\xb1\x2a\x58\x4a\x9c\x02\xcb\x08\x28\x6f\x39\x09\xca\x59\x41\x91\xb2\x56\x52\xac\x8c\x55\x94\xa8\xe8\xa1\x53\xa5\xac\xa5\x31\xa6\x77\x94\x2b\x69\x3d\x95\x4a\x58\xa0\x4a\xf1\xa8\xb2\x15\x8b\x2a\x5b\x51\x87\xa9\x55\xc4\x11\xea\x14\x76\x94\x7a\x15\x7d\x05\x90\xc1\x71\x86\x24\x38\xc1\xb0\xf4\x4e\x32\x22\x9d\x53\x8c\x4a\xeb\x34\x63\xd2\x38\xc3\xb8\x8c\x4a\x5c\xc8\xa8\xc4\xa5\x54\xce\x31\x2d\xa5\xf3\x2c\x46\x00\xc0\x6c\x72\x8c\x9d\x64\x1e\x31\x2f\xa9\xc7\x0c\x24\xf1\x84\x05\x89\x3d\xe5\x58\x62\xcf\x38\x91\xc8\x47\xfd\x1c\x3c\xe7\x2c\xea\x55\xce\x85\xf7\x92\x8b\xe8\xef\x73\x29\xac\xd7\x5c\x09\xe3\x0d\x37\x09\xad\xd0\xde\x72\x27\x94\x77\xdc\x0b\xe9\x3d\x07\x21\x3c\xf0\x20\xb8\x07\x81\x05\xf3\x41\x44\x1f\x1f\x09\x2a\x28\x60\x11\x7d\x7c\x22\xb8\xc0\x40\x84\x10\x31\x50\x8e\xce\x68\xf4\xd6\x01\xb8\x30\xdc\x43\xf4\xd9\x3d\x24\x9f\x1d\xa4\x00\x6e\x41\x8a\xc0\x0d\x28\x89\xb8\x06\x2d\x31\x57\xa0\x25\xe1\x12\x8c\x64\x5c\x82\x95\x9c\x0b\xb0\x52\x70\x0e\x4e\x4a\xce\xa2\x63\xca\x29\x78\x69\x38\x01\x88\x51\x2a\x04\xe9\x12\x02\x47\x51\xdb\xb2\x10\x90\x42\x0c\x02\x56\x98\xf9\x80\x15\x65\x2e\x10\xc5\x98\x0d\x54\xf1\x84\x92\x99\xc0\x94\x62\x71\x72\x6a\xa6\x02\x57\x96\xc9\xc0\x95\x63\x22\x08\xe5\x19\x0f\x42\x05\xc6\x82\xd4\x28\x21\x66\x34\x48\x4d\x19\x09\x4a\x33\x86\x83\xd2\xd1\x37\xd2\xd1\x71\x0f\x5a\x2b\x0a\x51\xcc\x28\x04\xa3\x2d\xf5\xc1\x68\x47\x5d\x30\x1a\xa8\x0d\x56\x47\x55\x6b\x0d\xa6\x3a\x58\x43\x68\x32\x03\x09\x39\x8d\x86\x41\x50\x11\xcd\x00\xe5\xc1\x19\x4d\x59\x48\xf1\x61\xf0\xc6\x25\x04\x4a\x82\x37\x81\xe2\xe0\x2d\xa6\x28\x78\x4b\x48\x08\xde\xb2\x84\x9c\xc4\x38\x40\x12\x1f\x20\x0a\x54\x00\x6b\x12\x5a\x12\x63\x05\x4f\x62\xdc\x00\x11\x1d\x22\x3a\x78\x47\x12\x52\xa2\x82\x77\x9c\xc8\xe0\x9d\x48\xa8\x12\x9a\x18\x06\x3a\x4b\x44\x70\xce\x13\x1e\x9c\x83\x88\x1e\x25\x24\x84\x07\xeb\x29\x61\xc1\x7a\x9e\x50\x12\x16\x8c\x57\x09\x0d\x61\x41\x7b\x97\x30\x96\x55\x3e\x44\x04\x4c\x78\x90\x40\x12\x32\xc2\xd3\xb2\x8f\x08\x02\x14\x11\x81\x83\x4e\x68\x89\x0c\x0c\x3c\x91\x81\x02\x44\x0c\x88\xc8\x68\x30\x88\x0c\x38\xc4\xe0\x14\x07\x4e\xf8\xb0\x9c\x11\x50\xd0\x04\x2f\xf3\xfc\x77\xed\x8c\xfc\xe3\xcb\x9f\xde\xbc\x7d\xf3\x5f\x3f\xbe\xfe\xec\x86\xc1\xeb\xee\xdf\x9a\xf6\xda\xf4\xff\xf9\xdd\xb7\xe3\x21\x51\xff\xf6\xf4\xde\x86\x37\xb3\x42\x21\x15\x79\xd3\xfc\x68\xda\xfe\x23\xbb\xc6\xcd\x72\x7f\x53\xf7\x9b\xef\xa0\xeb\xcc\x25\x0c\x6d\x7d\x76\x7b\xdd\xd7\x6d\xdb\xb4\xaf\x1a\x0f\x4f\x6f\x69\x38\xcb\x39\x54\x98\xf2\x7f\x76\xc3\xe3\x6f\xea\x77\x66\xb3\xf6\x69\x3b\xf3\x8f\x97\xf0\x1f\x29\xf1\xe6\xc3\xcd\x27\x4a\xcd\xb7\x40\xfe\x6e\xdd\x75\xeb\xfa\xf2\x33\xed\x84\xdd\x6e\x67\xc5\xba\x6a\x33\x94\x17\x4d\xd5\x66\x44\xe6\x85\x89\xbf\x2a\x2f\xba\xaa\x2d\xeb\xcc\xe4\xc5\x26\x3e\xc8\x8f\x9e\x1d\x1e\xcd\xf2\xdd\x37\x67\x67\xdf\x7c\xff\xef\x6f\xff\xfa\xf2\xdb\xbf\xbc\xae\x96\x07\xb7\xcb\x02\xca\x6f\xbe\xff\xeb\xcb\x6f\xbf\xf9\x7a\x4a\x3f\xb8\x8d\xe9\x53\x81\x6f\xbe\x7f\xf3\xed\xdb\x97\x3f\x7e\xb3\xaf\x62\x7a\xb2\xdc\x66\xf5\xfd\x7d\x56\x57\x77\x13\xad\xb7\x85\x3b\xdc\x9b\x6d\xff\xce\x7d\xfc\x56\x63\x3a\xb6\xda\x99\xcd\x26\x7d\x4d\x50\xf4\xf9\xfd\x7d\xbc\x98\x5e\xa0\xad\x4b\xd7\x78\xa8\xda\x62\x5d\x36\xed\xfa\x72\x5d\x9b\x49\x3a\xaa\xba\x58\x4f\x6f\xb7\xc7\x77\xb7\xeb\xd2\xe6\x59\x5f\xa4\xf7\xe3\x37\x6d\xd3\x37\xfd\x87\x1b\x28\xfb\xe6\xac\x6f\xd7\xf5\x65\xf5\x88\xad\xcb\xf3\x41\x36\xff\xd6\x2d\x12\xeb\x57\x8b\xe5\xf0\x89\x43\x6c\xf3\x64\x79\x31\xdd\x5e\x0f\x2d\x6e\x8b\x7e\x9b\xa5\x8c\x79\xe1\x3f\xd5\xb3\x75\xd1\xcc\x76\xec\xdf\x77\xee\xcb\x51\x44\x16\xef\xe2\x68\x77\x8b\xd0\xb4\x8b\xe5\x97\x27\xfd\xc9\x97\xcb\x55\xbc\x68\x4f\xbe\x5c\x96\x8b\xf1\xa0\x83\x85\x69\x21\x3e\x9c\x9f\x5d\xbe\xce\xcb\xbf\x35\xeb\x3a\xfb\x72\x59\x2c\x96\x5f\xe6\x27\x5f\x2e\xbf\x2c\xea\xc3\xb1\x2b\x9a\x91\x83\x1f\xe7\xcd\x36\x73\x79\x71\xf5\xc9\x0e\x3c\x4d\x7e\x12\xd2\x39\xd5\x8b\xeb\xdb\xae\x5f\x58\x58\x34\x61\x11\x79\xbd\xf8\x32\x7d\x65\x70\x48\xd0\xfa\xb7\x11\x14\x3e\x41\xd0\xd3\xe4\xbc\xb9\x82\xc5\xba\xee\x37\x49\xad\xd5\x97\x8b\x74\xc2\xde\xaf\xfd\xe2\x9d\x69\xd7\xc6\x6e\x60\x47\xe5\x7b\xd3\x2d\xea\xa6\x5f\xdc\xb4\xcd\xbb\xb5\x07\xbf\xe8\x9b\x45\x7f\x05\x53\xb9\x91\xf3\x91\x95\x07\xf3\xa2\x68\x7f\x13\xe5\xfb\x37\xc1\x37\xfb\x57\xf0\x4f\x9c\xef\x3c\x3b\x92\xec\x7a\xfc\x5c\x69\x5d\x34\x85\x29\xba\xf4\xf9\x18\x4e\xc7\x1d\x4c\xe7\xbf\x8c\x4d\x6d\xca\xab\x3c\x83\x74\xb8\xf1\x50\xef\xf9\x5d\xac\x6d\x75\x5b\x6e\xd6\x3d\xb4\x66\x53\x24\x51\x5a\xc5\x2c\x65\xba\xdc\x5e\x1c\x4d\x7b\x20\xbe\xab\xce\x2f\x8a\xcb\x0a\x15\xb6\x82\x3f\x5e\xfe\xc9\x8e\x95\xff\xf1\xf2\xe4\x64\x98\x7a\x1f\x2a\x7b\x7e\x99\xce\xaf\x9d\x37\xf7\x21\xcf\xdf\x8d\x67\x53\x3d\xd9\xd6\x87\xb1\xa1\xfc\x08\x36\x1d\x2c\xe6\xa5\x37\xa9\xf4\xa3\xc3\x81\xcd\xf1\xf1\x27\x6b\x4c\x87\x24\x0c\x67\xf7\x0d\x2a\x3a\xeb\xd3\xa9\x9e\xf1\xca\xe4\x63\x43\x89\xe2\xb7\xd5\xd8\x7a\x3a\xa6\xb1\xb9\xbf\x7f\x96\xbd\x5d\xac\xeb\x45\x93\xe7\xfd\x55\xdb\xbc\x4f\x9f\x15\x85\xec\x6d\xd1\x0d\x2a\xe8\x7d\xd5\x9c\xbf\x3d\xec\x21\x24\x1a\xdf\x1f\x1f\x2f\x87\xe1\x5f\x3e\x9b\xc8\x8c\xcf\x46\xd2\xf7\xcf\xee\xef\xb3\xf7\xd5\x94\xb5\x9a\x3d\x7e\xd4\xcb\xf7\xa7\x83\x9e\xc9\xde\xe7\xab\xe5\x32\x2f\x0e\xba\xfc\xb8\x86\xd3\x1d\x17\x56\xb7\x65\x93\xa8\x1b\xd9\xf1\xfe\x29\xd6\x86\x44\x76\x62\xc2\xeb\xc7\xf4\x7c\x18\x0e\x1a\x3c\x5d\x97\xde\xf4\x70\x3e\xde\x5e\xac\x76\xc5\x2f\xf3\x6c\x7c\x98\x9f\x8e\x17\xe5\x8d\x69\x3b\xf0\xd3\x41\x2d\xc3\xb1\x2a\x47\x9f\x1f\xa8\xaf\x4d\x0f\x6f\xd6\xd7\x30\x0d\x55\xf1\x7a\x37\x58\xef\xf3\x6d\xbe\x7d\x44\x7a\x93\x48\xff\x24\xd5\xfd\xfa\xfa\x7f\x42\x75\xf1\x3f\xa6\xfa\x31\xc3\xd7\x89\xea\xec\x93\x64\x0f\x22\xf0\x04\xe1\x7f\xfb\x8d\x84\xe7\xc7\xc7\xaf\xcb\xce\x99\x0d\x1c\x1f\x67\xef\x9f\x57\xe3\xcd\xfd\x3d\xce\x7f\x43\x9f\x0e\xa7\xcc\x53\x3d\xba\x9b\xf7\xa8\xde\x8b\xd0\xaf\xd5\x87\xd2\x5d\xad\x37\xbe\x85\xba\xf8\x61\x9a\x54\xc5\x59\xd5\x9c\xff\x30\x1c\x68\x7d\x93\x9d\xcd\xe7\xd4\x55\xf6\x43\xb1\xd7\x69\xd3\xf4\x7a\x53\x9d\x65\xd7\xd9\xaf\x7b\x5d\x96\x7f\xe2\x90\xa5\x51\x6b\xe4\xf9\x51\xfa\xce\xbc\x5c\x77\xc3\xf7\xe6\x6f\xf2\xfb\xfb\xec\x4d\x75\xfe\xe6\x62\xea\xf3\x78\x6c\xd3\xbb\xe2\xcd\xc7\xaa\xfb\xc8\xa4\x82\x8f\x4f\x2a\xd8\xc6\xa6\xb7\x73\x7e\x5c\x0f\xfc\x48\x07\xbe\x7e\x57\x7d\x98\x8e\xdc\x3d\x7f\x7f\x71\x7f\xbf\xbb\x2b\x9b\xfe\x0a\xda\x39\x2b\x7c\x36\xb1\xeb\x7d\x31\x37\xce\xbb\x22\x79\x62\xcf\x61\x4f\xae\xb3\xef\xc6\x42\x93\x83\xf0\xc4\x44\xf9\x65\x3f\x40\xdf\x1d\x3d\x22\x6b\x59\x2d\x4f\xde\x5f\x8c\x04\x47\x37\xb9\xfc\x71\x73\xdb\x9a\xcd\x4f\xb7\x1b\xe8\x66\xf4\xb9\xec\xcb\x87\xa9\x8b\xf5\x60\x00\xcd\x3b\xb3\xde\x24\xd3\xb8\xae\x17\xd1\xb2\x2d\xa0\x7e\xb7\x6e\x9b\x3a\xba\xf2\xe5\x7f\xd7\x6f\xda\x0f\x8b\x9b\x66\xf3\x21\xac\x37\x9b\x68\x19\xd7\xfd\xe2\xb6\x4b\x26\xf2\xff\x4c\x9e\xd2\x1f\xa2\xc5\x7d\x71\x93\xea\x6e\x63\xdd\xcb\xff\xae\xe7\x96\x73\x72\x07\x27\x11\xf9\x71\x38\xf0\x7a\x46\x4c\xd6\x17\xc3\xf0\x7d\x28\x87\x6a\xa2\xb3\xbc\xcd\xcb\x0e\x36\x91\x0d\xef\x5f\x44\x4e\x86\xd0\x41\x7f\x7f\x8f\xf2\xfc\x68\xce\x83\x1f\x1f\x0f\x4d\x1c\xd2\x67\xdf\xfd\xcb\xc7\xa7\x78\x48\x47\x3a\x04\xe7\xe3\xdf\x68\xc2\xee\x7c\xb7\x53\x58\x41\xd9\x82\xbf\x75\x30\x17\xdd\xfd\xa9\xe6\x07\x3b\xb6\xee\xb6\x19\x3e\x3e\x6e\xd3\x39\x7d\x55\x55\xed\x84\xf8\xf8\xb8\x7f\xf4\xec\xb4\x1d\x08\x3d\xa9\xfa\x72\x14\xed\x41\x51\xf4\x79\x01\xdb\xbc\x38\xbf\xc8\xb7\xd9\xbb\xd9\xc7\xd1\xef\x66\xd3\xc6\x3d\x3a\x08\x78\x4c\xb8\x32\xdd\xec\xe0\xaa\xfd\x97\xa7\x51\x50\x60\x5b\x5c\x42\xff\x54\x32\x9c\xf7\x17\xdb\xa2\x3b\x48\x8c\xde\x5a\x7c\x5e\xb5\x91\x61\xdb\xc3\x38\x24\xf6\x7c\xe8\x46\x85\x2e\xaa\xe5\x78\xbd\x2c\x62\xc2\x30\x5d\x2b\x7c\x51\x2d\x87\xcb\xe5\x36\xbb\xbd\xbf\xcf\x6e\xf7\x11\xc5\x65\xd5\x95\xe6\xfe\xde\x14\x76\xee\xcc\xef\x7a\x0a\x43\x5c\x51\x8c\x87\x05\x9b\xa2\xab\x52\x2c\xb1\x0e\xd9\xee\x44\xef\x76\x3c\x65\x74\x3c\x45\xe8\xdb\x26\xea\xdb\xf1\x1b\xe2\x41\xc6\x7b\x68\x5f\x19\x77\x05\xd5\xdd\xa0\xde\x57\x77\xdb\xc2\x8f\xd6\x23\x5e\xdf\xec\x45\x79\x75\xb7\xdd\xce\x8b\x3e\xfe\x2c\xb4\x9a\x92\xc6\xf8\x37\x83\x74\x1a\x3c\xae\x86\x03\x8f\xa2\x10\xec\x4e\x01\xdc\xf9\x70\xe3\x51\xd2\xfd\x47\xa4\xe8\x81\xc4\x3d\x25\x24\x7b\xef\x66\xaf\x1b\xe7\x52\x77\x7a\x70\xf7\x58\x94\x86\xdb\x9d\x40\xed\x84\x74\x12\xf2\x0a\x9f\xb6\xe7\xe8\xe2\xfe\x7e\xb9\x5c\xb5\x07\x2c\x18\xfb\xf9\xd4\x57\xa9\xd7\x59\x57\x9a\xae\x2f\xba\x72\x93\xb8\xde\x15\x33\x96\xef\x6f\xba\x02\x8a\xd1\xac\xef\x42\xaf\x7c\x6c\xa3\x85\xae\xd9\xbc\xdb\x59\xd1\xc7\x21\xdd\xdd\x50\xf5\x2a\x69\xc0\xb9\x7d\x2c\xbb\xdb\x9b\x9b\xa6\xed\xc1\x0f\x43\xde\xfd\x10\xb2\x1d\x21\xf9\x39\xba\x98\x46\xf2\x12\xfa\x97\x5d\xff\xb8\xe6\x45\x22\x7e\x5b\x3c\x62\x6c\x9f\x34\xf2\x3c\x50\xac\xfa\xe2\x19\x94\x6f\xdf\x26\x8b\x3f\xd3\x4c\xbb\x55\x81\xec\xf1\x32\xc7\x94\x7d\x17\x52\x75\xd0\xc7\x38\xe5\xa6\x6d\x1c\x74\xdd\xe2\xe7\xb1\xee\x9f\x77\xb1\xd6\xcf\x03\x21\x3f\x2f\xf3\xa3\xd4\xb8\xe9\xfa\x6a\xd7\x6a\x54\xb2\x75\xac\x78\xb3\xfe\x07\xfc\x87\xe9\xae\x7a\x73\xf9\x4d\x3d\x68\xe1\xd5\x33\x5c\xac\x2f\xeb\xa6\x85\x37\xe6\x72\x35\xfc\xad\xa0\x99\x8e\xd5\x6b\xca\x5d\xd2\xe4\xcb\xed\x6a\x1f\x0e\x47\x3f\xb4\xde\x53\x62\xfe\x74\x3f\x5f\x2e\x46\xba\x77\xfd\xda\x05\x61\xa6\x5b\x98\xc5\xe0\x32\x2f\x9a\x76\xf1\xf2\xec\x4d\x39\x75\x65\x14\x84\xea\x49\xb9\xef\x4f\xe7\x5a\x1d\xf2\xc7\xb3\x64\xb7\xb6\xd0\x14\x66\x27\xba\xe7\xf5\x45\x95\x35\x15\x9c\xd7\x17\x45\x66\xaa\xfe\xbc\xbe\xc8\x4f\x77\x11\x9d\xc9\xb3\x8f\x5d\xdf\x6d\x8b\xe6\xfe\xfe\x6e\x9b\x17\x66\xf8\x99\x37\xdf\x3c\xd1\xfc\xc1\x24\x8d\x9a\xf0\x53\x35\x9f\xf7\x17\x79\x61\xce\xfb\x8b\xa1\xee\x38\xe1\xa2\xba\x5b\x35\x79\xd1\xee\xda\xda\x65\x87\x3c\x5f\xc1\x36\x83\xdd\x54\xa9\x47\xd5\x35\x0a\x72\xd5\x3e\xd0\x64\x5d\xd5\x1c\x1f\x37\xb3\xfb\xfb\xfb\xbd\x2e\x8c\x6c\x78\xac\xf7\xf2\xe3\xe3\xcc\xfc\x46\xe5\x97\x17\x77\x0f\xfc\xd0\xd5\x65\x36\x5f\xbf\x9a\x62\x51\x28\xfa\x18\x8d\xb6\x15\xfa\x63\xfb\xa7\x87\x7f\xf4\xf9\x63\x7b\x72\x92\xf7\xe7\xed\xc5\xfe\x2f\x40\xe7\xed\xc5\xec\x9f\x22\x59\x06\xd5\xa3\x19\x9d\x97\x76\x5d\xfb\xd1\x82\xc3\x9e\x53\x2e\xcf\xce\x87\x2e\x5e\x14\x7d\xb4\xdb\x79\x71\xe7\x62\xc7\x56\xef\x32\x33\xba\xec\x79\xd1\xf5\xad\xe9\xe1\xf2\xc3\xea\xb2\x1c\x2f\xd7\xd0\x95\x69\xe9\xc0\xaf\xdd\x36\x2f\x1e\xc5\x0c\xff\xbb\x3d\x3b\x6c\xeb\x9f\xeb\xdb\x34\x50\xbf\xad\x77\x33\x97\xec\x7f\xb7\x6b\x73\x37\xf5\x9f\xea\xd7\x4c\xe8\x3e\xdf\xb5\x6d\x7e\xb8\x5c\x13\x2d\xfd\xba\x86\x1f\xdb\xe6\x06\xda\x3e\xb6\xba\x3c\xb0\xfd\xcb\x24\xc2\x4f\x9c\xec\x0b\xe5\x35\x5c\x37\xeb\x7f\x80\xff\x7a\x9e\xff\xfe\x3e\xfb\x48\x4a\x95\x45\xe5\xf7\x84\x9c\x3e\xb0\x5a\x59\x3e\x4e\xd7\xbc\xf8\x48\x4d\xdb\x02\xea\xdb\x6b\x68\xa3\xab\x1e\xb5\xb5\x6b\xea\xb0\xbe\xbc\x1d\xef\xd1\xf6\xa3\x05\x87\x73\x30\x77\x56\xa0\x6a\x86\xa8\xb3\xd8\x29\x8c\xfd\xbc\x76\xb7\x6d\x0b\xb5\xfb\xb0\xba\x4b\xe1\xe9\x6a\x39\x3d\x58\x6e\x8b\x1b\x68\x1d\xd4\xfd\x2e\x69\xbc\x5f\x6e\x07\x65\xb0\xba\xeb\xae\x9a\xb6\x5f\xdd\x5d\x37\x75\x7f\xb5\x5a\x26\x5a\xd7\x6e\x59\x78\xf3\x61\x76\xf7\x01\x4c\xbb\x5a\x92\x17\x7e\x7d\xb9\xee\x97\xdb\xe2\x1a\xfc\xfa\xf6\x7a\x57\x2a\xd5\xf1\x74\x99\xe9\x76\x5b\x6c\x9a\xfa\x72\x57\x22\xde\x7c\xae\x40\xb8\xdd\x6c\x56\x77\xef\x01\x7e\x49\xf9\x86\x22\xbf\xbd\xfc\xb6\xe8\x93\xa6\x1b\x3b\x78\xd5\xdc\xce\x52\x8b\xeb\x75\x7d\xdb\xc3\xbc\xb9\xa9\x4f\x9f\xc9\x58\x74\xe0\x9a\xda\x3f\xee\xd9\xef\x2d\x97\xc8\xfb\xff\x9b\x1a\xbe\x1f\x0e\x5f\x4d\x3c\x9c\x7a\xfd\xaf\xa9\x6c\xbb\x2d\x60\x9b\xe5\x47\xfb\x93\x36\xed\xef\x7a\x9d\xf4\xea\xec\xec\x27\xe8\x3e\x76\x02\xcf\xfc\x20\x4c\xe3\x9b\x9b\xfe\x2c\x8a\xd8\x47\x8e\x5b\x9a\xe5\x75\xdd\x47\x4e\x59\x9a\xe5\xb9\x84\xfe\x55\x73\x7d\x63\xfa\xb5\xdd\x40\xaa\xf7\xf3\xe7\x5a\x0e\x5e\x61\xf7\x32\x92\xb2\xae\x2f\x53\xa9\xb3\x2b\x80\x8f\xbc\xaa\x9a\xbf\x4e\xba\xad\x3b\x13\xe0\xd5\xd9\xd9\x67\x0f\xf1\xfc\x09\x8c\xeb\xd7\xef\x60\x7c\x69\xf6\xd9\x57\x5a\x23\xe3\x5f\x35\xf5\x3b\x68\x7b\x78\xfa\x9d\xd0\xfc\xad\x59\xdd\xf4\xaf\xff\x7e\xfb\x91\xe3\xff\xde\xc5\xf0\xe9\xe8\x8f\x7f\x78\xfe\xfc\x68\xf1\x7c\xf1\x7f\x36\x6b\x07\x75\x07\xf1\xfa\x55\x73\xf3\x21\xfd\xb5\x75\x41\x10\xd6\x8b\x7f\x6f\x9a\xcb\x0d\x2c\xbe\xfd\xf6\x55\x4c\x3c\xfb\xf1\xeb\xff\x7c\xf1\xed\x90\xf9\xc5\x37\x1e\xea\x3e\x9d\xb6\xbc\x5a\xfc\xf9\xec\xeb\x17\xf4\xc5\xab\x8d\xb9\x4d\xb5\xfc\x61\xfc\x1b\x76\x5d\xbd\x5f\xd7\xbe\x79\x5f\x9e\x5d\x19\xdf\xbc\xff\xa9\x69\xfa\xe3\xe3\xbd\xb3\x31\x4b\xfc\xf0\xea\xec\xec\xfe\xfe\xc1\x83\xb2\x36\x91\x45\x43\xe1\xfc\xf8\x78\x90\x0e\xf0\xf3\x11\x59\xd7\x8b\xaf\x1b\x97\x8c\xcd\xfe\x05\xcf\xf1\xf1\xb2\x85\x74\x6a\x75\x4c\x7f\x75\x76\xb6\x2f\xb1\xcf\x54\xac\xab\xb3\x0f\xd7\xb6\xd9\xa4\x43\xed\xa3\x9e\xfe\xce\xdc\x1c\xb9\x8d\xe9\xba\x85\xb9\x4b\x1d\x68\x6f\x5d\xdf\xb4\x83\xf7\x36\x39\xf4\x6f\xbf\x70\x5d\x37\x48\xf3\x17\xd5\x33\x54\xf4\xcf\xaa\x6a\x3d\x7a\xba\xa3\x87\xbb\x13\xf7\x69\x91\x65\x57\x59\xd4\xd6\xe5\xe2\x2f\x1d\x2c\x7e\xde\x89\xca\xcf\xd1\xd5\xfd\xd9\x75\xdd\xcf\xe9\x8f\xdf\x60\xfc\xce\xe9\x75\x5d\xf7\x06\x7e\xed\x2b\xd8\x5e\x42\xbf\xe8\x76\x9d\xc8\xf2\xbb\x0d\xf4\x8b\xa8\xcc\x2f\xa1\xcf\xe6\x79\xf7\xff\xa6\x3d\x3e\xde\x31\x1a\x8e\x8f\xb3\xa6\xec\x1e\x64\x2d\x86\x2d\x1e\x0e\xd8\x13\xcd\xc8\xc8\xba\xb3\x0f\xb5\x3b\xac\x3a\xfa\xa2\xd3\xab\xb3\xd9\x11\x74\xb3\x2c\xdb\xed\x30\xf0\x5d\x05\xd5\x57\xb1\x72\x93\x3d\xb1\x22\x07\x2b\x38\x59\x2e\x8b\x75\x5e\x6c\xaa\x0c\x8a\xb2\x2c\xfb\xbc\xfa\x6a\x60\xf9\xa2\xad\xe6\xaf\x3d\x4e\xe1\x1c\x5d\xac\xf6\x61\xef\xf0\x96\xb0\xfa\xaa\x3f\xc9\xa0\xfa\x2a\xad\x7b\x0d\x87\x42\xcf\x87\x25\xdf\xbf\x1a\x1a\xc8\x8a\x41\xca\xa3\xc5\xf9\xdd\xdf\xf1\xe1\xe8\x60\xf4\x86\x57\x5a\x37\xa6\xeb\x86\xd7\x42\x5f\xba\xae\xfb\x72\xff\xef\xe0\x29\x68\x31\x0f\x13\xda\xd4\xf8\x6a\xb1\x3c\x81\x93\xe5\x30\xc8\x5f\xee\x06\xf9\xcb\x14\xb8\x45\xd1\xaa\x9b\xfa\xc5\x18\x92\x8f\x2f\xfd\x8a\x85\xbd\xed\x17\xbd\xf9\x05\x16\xce\xb4\x10\x73\x42\xdd\xdd\xb6\x91\x88\xcb\x18\xf5\xb9\xdb\x76\xdd\x7f\x28\x97\xf9\x36\xcf\xda\xfc\x04\xce\xeb\x13\x7c\x51\xa4\x77\x40\xf3\xff\x4e\x9b\xac\x2d\xd6\xf9\xb6\xb8\xad\x92\xc4\x56\x5f\xdd\xd5\xa7\x50\x3e\x9e\x33\x55\x9f\xd6\x50\xa1\xfa\xea\x70\x7f\x82\xb9\x1c\xa4\x15\xab\xbd\xc0\xe5\xab\x3e\xba\x0b\xaf\x8d\xbb\xca\xfa\xd9\x50\xf9\x69\xea\x0d\xab\x48\xa3\x32\x8b\x63\x1e\x35\x6d\x5e\xec\x14\xc0\x66\xdd\x7f\xdf\xd4\x0e\x8e\x06\x99\x7c\x56\x55\xf5\xf1\x71\x1b\x45\xf2\x65\xdf\xb7\x6b\x7b\xdb\x43\xb6\xac\x63\x8e\x65\x0c\x60\xda\xb2\x87\x5f\xa3\xb2\xeb\xa1\xee\xab\x7e\x2f\xb1\xd1\x4f\x84\xda\xbf\xba\x5a\x6f\x7c\xd6\x46\xcf\xae\x70\x55\x7d\x1a\xfb\xb2\xfa\x74\x87\x92\xbc\xc4\x59\xd3\x57\xcb\x65\x7a\x21\x36\x76\x22\x46\xcf\x49\x52\xc6\x55\xd3\x93\xaa\xdd\xc9\xcd\xa4\xb8\xb3\x3e\xf2\x1e\xf2\x15\x1c\x7d\x4e\x67\xca\x7f\x5a\x67\x46\xff\xda\x8f\x9a\xf3\x6a\x62\x5c\xdf\xde\x76\x3d\xf8\x18\x3f\x77\x45\xa8\xae\x4e\xaf\x4a\xb8\xbe\xe9\x3f\x9c\xb9\x76\x7d\xd3\xaf\x96\xcb\xe2\x66\xca\xda\x1e\x9a\x94\x1f\xc7\x55\xdb\xb3\xc1\x9e\x15\xd7\xd5\x5d\xdf\xec\xb9\x9d\x94\x5a\xf7\x7e\xdd\xc7\x21\xcd\xef\x9c\xe9\x60\xf1\xe7\xa6\xd9\x80\xa9\x57\x50\xc1\x69\x48\xcb\x00\x47\xb6\x05\xf3\xcb\x51\x4a\x1d\x9c\xe7\x55\xba\x4e\x91\xfe\x6a\xbf\x03\x01\xac\xfe\x9f\xb3\x1f\xbe\x2f\x87\xb9\xbe\x0e\x1f\x32\xd8\xf9\xdc\xb0\x2d\x42\xdb\x5c\x3f\x68\x39\x8e\x44\x5b\xc1\xd1\x47\x28\x68\x53\xcd\xcf\xaa\x0a\xe6\x14\x0c\x3e\xf4\x98\x18\xa7\xfd\x69\xbc\x58\x0d\x8f\x33\xc8\x3f\x4d\x6d\xdf\x7e\xb8\x6b\xab\x44\xe7\xb0\x20\x02\xf9\xd6\x99\xd8\x3a\xe4\x77\x43\x9d\xfb\x3f\xc7\x6f\xb7\xc5\xbb\x69\x1e\x45\x15\x1f\x55\x68\x5f\x55\xfd\xfd\x3d\x54\x15\xe4\xc5\x65\x75\x67\xa6\x1e\xad\xa2\x19\xf8\x70\x03\xab\x41\x35\x46\xdf\x7c\x30\xd2\xab\xeb\xa2\x85\xb0\x89\x74\x3c\xc3\xc5\x95\xe9\x5e\x5d\x99\xfa\x12\xfc\xea\xdd\x76\x34\x34\x76\x01\xbf\xf6\x50\xfb\x6e\xf1\x1f\x6f\x76\x5f\xd0\x1c\x18\x9f\xfc\xae\xbb\xbd\x81\x36\x1b\xa3\xfa\xb7\x5f\xbc\xee\x27\x63\x35\x3c\x59\x77\x7f\x49\xa7\xbe\xff\x08\xe9\x44\xf9\xea\x19\x1e\x9e\x5f\x99\x31\xc1\xef\x1e\xbd\xfd\xe2\xf5\x78\x2e\xfe\xb0\x41\x42\x96\x6f\xbb\xde\xf4\x6b\xb7\x30\xde\x7f\x53\xaf\xfb\x75\x5a\x1c\x6a\xf7\x7f\x61\x1f\x47\x21\xeb\x87\x65\x81\x4d\x3e\x59\x95\x67\x89\x17\xd9\xb8\x8d\xc6\xf9\xc5\xb4\xe8\x30\xac\x16\xc2\xae\xe2\x68\xb8\x1a\xdb\x41\xfb\x0e\xfc\x4e\x04\xba\x6c\xdc\x94\x23\xac\xeb\xd4\x62\x36\x6d\xdc\x02\xd5\xf9\x2e\x60\x4c\x39\xc6\xe3\xf6\xc7\x58\x2d\xc6\x75\x93\x1e\x4a\xeb\xca\x3b\x5d\x54\x57\x53\x0f\xaf\xb2\xb6\xe8\xf3\x03\x45\x33\x59\xee\xd7\xb7\xc9\x08\xd6\x45\x1b\xed\x5c\xa2\xb4\x4e\x91\x25\x4c\xe4\x0e\x7a\x6c\x16\x19\xf6\xd5\xe5\x60\xfb\x87\x83\xf4\x63\x5d\xe5\x6e\xe0\xab\x67\x78\x5a\x27\xde\x75\xa4\xf8\x08\xd9\xb1\xe1\x28\x4e\xc5\xb3\xbe\xac\x9b\x97\xce\x41\xd7\x35\xed\xf1\xf1\xb3\x94\x7f\xff\x6d\xca\x95\xe9\x7e\x78\x5f\xef\x29\xc8\xf3\x9d\xb6\x5d\x76\xc9\x5f\x99\x9b\xd2\xc9\x83\x59\x2d\xdf\xbe\x5d\x9e\x40\x31\xb2\x21\xc6\xf2\x63\x0d\x5f\x43\x97\x54\x45\xf2\x63\x1e\x71\xe6\xe9\x80\xf8\x90\xa4\x02\x8a\x3a\xdf\xce\x06\xf4\xc9\xaa\x67\xdf\x64\xc4\xe8\xf9\xd0\x3f\x98\x5e\x0a\x64\xf5\xd4\x9b\x75\x22\xf4\x1c\x2e\x8e\xc6\xf4\xaa\x9e\xd6\x73\xff\x7e\x0b\x5d\x3f\x88\x6e\x06\xc5\xba\x68\xa3\x92\x3f\x0c\x77\x0f\x82\x61\xf4\x14\x6d\x53\x60\x0d\x87\x7e\xca\xe3\x71\x89\xb4\x42\x7e\x7f\x7f\x39\x55\xb2\x1f\xca\x9d\xcf\xf7\x60\x4c\x96\x53\x16\xbf\x9c\x3e\xc2\x78\x86\x8f\x0e\xe4\xc0\x57\xcf\xd0\x4e\xa4\x47\x26\x0f\xd4\x0d\x3c\xfd\x61\xa8\x39\xad\xfc\xc3\xe7\xa5\x67\x9a\xf1\x19\x3c\x4e\xdb\x2b\x86\xdb\x43\xc5\xf0\x90\xea\x9b\x5d\x91\xe5\x4e\xa8\xa0\x9a\xc6\x7a\x4c\x2a\xfa\xea\xbc\x2c\xcb\x3d\xc9\xb3\x2a\x62\x4c\x98\xf6\x11\xf9\x58\x86\x41\x1a\x63\x96\x8b\x87\x16\xb6\xcf\x07\x3f\xf1\x70\x7e\xb5\x05\x9c\xb7\x17\x3b\x53\x31\xef\xfc\x10\x04\x56\x07\x5c\x1d\x9e\x8d\x9b\xcc\xa4\xeb\xbc\x78\x86\x1e\x0e\xdc\x98\x0b\xa6\x3e\xf6\x51\xa7\xac\x43\x76\xb8\x4a\x3d\x9f\x58\x91\x6d\x67\x51\x0e\xca\xb0\x31\x7d\x86\xff\x80\xf2\xb2\x85\x77\x10\x8d\x44\x9e\xcf\xba\x92\x3e\x6b\x6a\xf3\xbe\xbc\xad\xbb\xab\x75\xe8\x33\x17\xeb\x19\xd6\xc4\x77\xd3\x0a\x8e\x8f\xfb\x41\xb9\xa4\xd4\x9d\x3a\x9b\xe8\x4c\x3a\x2a\x19\xc1\xa9\xfd\x99\x4a\x39\x9a\xe4\xa9\xaa\xaa\x76\x5a\x81\x7f\xe4\x43\xb7\xa7\xed\x53\xaf\xba\xa1\xec\x9b\x6f\x9b\xf7\xd0\xbe\x32\x91\xf2\xf1\x8b\x82\x6d\x33\x6d\xe8\x73\x34\x49\xca\x4d\xea\xf2\x8f\x6d\x73\xbd\x8e\x76\xb0\xfa\x6a\xe0\x7c\x1d\x27\x54\x9a\x79\xd1\x90\xc0\x4e\xb2\x5e\x7e\x7b\x28\x59\x6f\xbf\x78\x7d\x3d\xc9\xea\xe1\x7c\xcd\xc7\xed\x98\xaa\x6c\x94\xac\x99\x29\x2b\x37\xf9\xfd\xfd\x3e\x26\xb9\xbf\x87\x9d\x2e\x8f\xae\xdb\x30\x21\xf2\xad\xf1\x3e\x3a\x7e\x6d\xb3\xd9\xcc\x2c\x51\xd1\xfe\x31\x7b\x60\x8c\xde\x7e\xf1\xfa\xf2\xc0\x1e\x9d\xf6\xab\x5d\x42\x34\x49\x93\x2d\x2a\xf6\x59\x06\x8a\x6b\x0f\xed\x10\x8c\x8e\x16\xf4\x55\x53\xd7\xe0\x7a\xf0\xc7\xc7\xd9\xd4\x81\xb6\x82\xf2\xaa\xe9\xfa\x5d\xda\x9c\xfa\xf6\xfe\xbe\x1d\x3e\x3c\x8b\xe3\xdf\xc2\x75\xf3\x0e\x9e\xa0\xfa\x68\xaa\x6c\x4e\xf2\xac\x9a\xfe\xfe\xbe\x2f\xbb\x9b\x74\xce\xec\x2e\x43\xb9\xae\x3d\xfc\xfa\x43\xc8\x20\xff\xea\xab\xaf\x50\x81\xf3\xed\xc0\xf0\xbb\x47\x1c\xfd\x84\x75\x1c\x43\x80\xa7\x34\x41\x9f\xcf\x4c\x62\x3f\xc4\x85\xc5\xa8\x86\xf3\xc2\xc3\x06\x7a\x98\xd4\x76\x74\xb1\x87\x49\xfb\xd3\x8e\x6d\x3b\x71\x9a\xe6\xd7\x34\x30\xe3\x98\x77\xbb\x68\x7f\x3e\x3c\xd1\x49\x1c\x5e\x0d\xf5\xbd\x71\x57\x43\x54\x9f\x3d\xea\xd2\xbe\xf0\xa8\xc2\x77\x13\xe8\x76\xa4\xf2\x29\x0e\x9c\x8d\xda\xa0\x8f\x01\xe8\x30\x5c\xaf\xcc\x66\x63\x8d\xfb\x65\x47\xed\x9e\xeb\x0f\xa5\x20\x7b\xf0\xa4\x9a\xe9\xaa\x79\xb7\x27\xf5\x7c\x30\x4f\xb2\x67\xe8\x91\xd4\x3f\x1c\xe7\x87\xc2\x7e\xb8\x41\xd0\x5e\x48\x3e\x21\x71\xfd\xa4\x0c\xfa\x49\xee\xb6\xf9\xf6\x01\x25\x90\xdf\x6d\xfd\xba\xfb\x38\x0b\xfe\xa5\x64\x7e\x3d\x6b\xe9\xb3\x94\xee\x14\xdc\xe8\x02\xef\x48\x1b\x3d\x87\x49\xd3\xfc\xbf\x69\xe7\xaa\x28\xf0\x67\x43\x52\xf4\xbf\xc6\xcf\x9c\x47\x79\x6b\x1e\x6b\x96\x51\xa5\xb6\xf9\xfe\xc5\xfe\xb3\xaa\x6a\x8e\x8f\xd3\xea\x40\x5b\x8e\x5e\xf8\xa4\x71\x4d\xb5\xd3\x25\xeb\x29\x96\xc8\xea\x18\xf7\x4d\x9e\xfb\xbc\x3f\xf5\xd4\x9f\xba\x9c\x05\x50\x73\xd1\x5e\x9f\xae\x57\xd7\x07\x89\xd1\x39\x4d\xaf\xe0\xf3\xa3\xbd\xe7\x0d\xa3\x98\x98\xd3\x51\xde\xa2\xd6\xd8\xc7\x45\x4d\x3e\x6e\x9a\x36\x0f\x8a\x9b\xc2\xe4\x0f\x9c\xf7\xed\x76\xe4\xd3\xf4\xf9\x48\xf1\x29\xde\x14\xa6\x6a\x06\xd7\x77\xf0\x74\x0e\x38\x64\x46\x0d\x18\xeb\x8e\xb7\x7b\xb7\xa0\x29\x9f\x70\xa6\x4c\x5e\x74\x15\xec\xb9\x54\x6c\xaa\x43\x3e\x3e\x4b\x7c\xdc\x6b\xd0\xee\x40\x67\x4e\x7c\x6c\xcb\x83\x80\x70\xce\xc9\xfa\xb4\x5e\x3d\xf1\xa1\x6c\x77\xda\xa5\x70\xf4\x31\xd3\x0f\x6a\x9a\xf1\xda\x0c\x0a\xcd\x5c\x54\x9b\xac\x2f\x60\x18\x8b\x47\x8c\x7c\xe8\x6c\x26\x51\x8c\xa1\x69\x1d\xfd\xb7\xb9\x45\xcf\xb2\xac\x8d\x5a\xff\x91\xe8\x3d\xe9\x73\xe6\xe5\x3e\xd8\xbb\xbf\x7f\x97\x67\xa3\xb3\x5b\xf4\xf9\x69\xb6\x33\xaa\x31\x53\xf2\x3d\xf7\x4f\xf6\x51\xc2\x81\xe0\x1e\x0e\x13\xcc\x17\x51\xa7\x84\xb7\x33\x9d\xfe\x76\x32\xd7\xfb\x1e\xbf\x1d\xab\x6e\xf3\x3c\x5f\xd5\x29\x70\x79\xf6\x54\xf8\x78\x7c\x3c\x8f\x97\x6e\x76\xd5\xbf\xca\xa2\x69\xee\x3e\xd4\xc9\x7f\x79\x35\x19\xa3\x47\xc1\x27\x3a\x8a\x61\xb6\x79\x6f\xd6\xfd\x62\x57\xcb\x3e\xcc\x1e\x5d\x8e\xb2\x85\xf4\x9a\x2f\x46\xe0\x73\x3f\xb4\x73\x57\xe0\x6f\x47\x8d\x16\xa3\xc2\x99\xea\x79\x16\xfb\x3d\x54\x0c\x4f\xd3\xbe\x7d\x58\xfc\xc0\xf5\xbf\x81\x36\x34\xed\xf5\x94\xb6\x7d\x70\x3f\x6a\xc8\x75\xc8\x9e\xac\x7b\xf4\xf3\x8f\x1e\x84\xd6\xfb\xa0\xfc\xc0\xa4\x3e\xb0\xc2\x53\x88\x03\xf3\x20\x7e\xfc\xdc\xf3\x68\x58\x93\x7a\x86\x8f\x76\xde\xe0\x24\x0d\x89\x95\xfd\x64\x53\x9b\xdb\x8d\x1f\x89\x6d\xf3\xa2\x1f\xe5\xe8\xfd\x7a\xb3\xd9\x3f\xfd\x97\xea\xf7\xa1\xda\xcf\x69\xf6\xa1\x47\xb7\x13\x09\xf9\xce\x05\xfb\x4b\x36\x5b\x5e\x19\x56\x58\xfb\xf9\x4a\xc4\x5f\xb2\xb4\x9e\xbc\x13\xed\x97\xaf\xb3\x36\xdf\xce\xfa\x13\xad\x59\x7a\xfc\xbb\xbc\xa9\xdf\xd9\xbd\xcf\x5a\xae\x87\x8b\x29\xd3\xa2\xc7\x7c\x79\x05\x4d\x8b\x00\xed\xae\xda\xa8\x04\xe6\xac\x89\x0f\xb6\x43\xaf\xef\x3e\xe2\x55\x3f\x5e\xc8\x49\xcb\xfe\x43\xf9\x57\xcd\xf5\x4d\xf4\xcb\x1e\x08\xf5\x25\x8c\x0d\xee\xd3\xb7\x4f\x3c\x3b\x28\x93\x66\xe4\x81\x3c\xed\x82\xe4\x67\x68\x7b\xbb\x7b\x74\xe8\x35\x3f\x54\x31\x4f\xc9\x78\x99\xcc\xf6\xce\x97\x2c\x76\x3c\x48\x3a\x69\x14\xf8\xb9\x00\x6c\xf7\xcc\xb9\xdb\x3e\x60\xdf\xdd\x76\x6b\x0f\xe2\xe9\xc2\x7e\x3c\x30\xde\xa7\x8d\x71\xe3\xf9\x45\x61\x1f\xfb\x92\xd5\xdd\x75\xe3\x61\xb5\x6c\x6e\xa0\x5e\x6e\xc7\xe9\x72\x73\x7f\x7f\x93\xdd\x3d\x78\x21\xb7\xb2\xdb\xbc\xd8\x79\x09\xbe\xba\xdc\x34\xd6\x6c\xde\x0c\x76\xfb\x20\xe7\x5f\xa1\xed\x92\x9f\x3a\xb3\x4d\xfe\xd4\xaf\x3e\x5f\x62\x1f\xa3\x2c\x71\x49\x4a\xbc\xcc\xb7\x17\x17\xf9\xd1\xff\x0d\x00\x00\xff\xff\x6c\x1e\x3d\x2a\x9c\xdc\x18\x00") - -func web_uiAssetsVendorA8ab945788d03426b8cd1080cb42495fJsBytes() ([]byte, error) { - return bindataRead( - _web_uiAssetsVendorA8ab945788d03426b8cd1080cb42495fJs, - "web_ui/assets/vendor-a8ab945788d03426b8cd1080cb42495f.js", - ) -} - -func web_uiAssetsVendorA8ab945788d03426b8cd1080cb42495fJs() (*asset, error) { - bytes, err := web_uiAssetsVendorA8ab945788d03426b8cd1080cb42495fJsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/assets/vendor-a8ab945788d03426b8cd1080cb42495f.js", size: 1629340, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiIndexHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x7c\x5b\x73\x1b\x49\xb2\xde\xbb\x7e\x45\x1f\x3a\x14\x61\x87\x85\x62\xe5\xb5\xaa\xd6\x92\x22\xb8\x18\x6a\x46\x27\xa8\x8b\x29\xcd\xf1\x99\x7d\x61\x34\xd0\x0d\x11\x6b\x12\xa0\x01\x50\x1a\xad\x62\xfe\xbb\x23\xab\xaa\xc1\x26\xc8\xd5\xce\x8c\xfd\xb0\x14\xf7\x63\x75\x66\x56\xe6\x97\x97\xaa\x06\xe6\xf9\xbf\xfd\xf0\x6e\xfa\xf1\x97\xf7\xa7\xcd\xe5\xee\xfa\xea\xe5\x93\xe7\xf6\x4f\x73\xd5\xae\x3e\xbd\x38\xea\x57\x47\xcd\xfc\xaa\xdd\x6e\x5f\x1c\xf5\xd7\xb3\x7e\x33\xb9\x5a\xb7\xdd\x72\xf5\xe9\xe8\xe5\x93\xa6\x79\x7e\xd9\xb7\x9d\xfd\xd2\x34\xcf\xaf\xfb\x5d\xdb\xcc\x2f\xdb\xcd\xb6\xdf\xbd\x38\xba\xdd\x2d\x26\xf1\x68\xfc\xa7\xcb\xdd\xee\x66\xd2\xff\x9f\xdb\xe5\xe7\x17\x47\xff\x39\xf9\xf9\x64\x32\x5d\x5f\xdf\xb4\xbb\xe5\xec\xaa\x3f\x6a\xe6\xeb\xd5\xae\x5f\xed\x5e\x1c\xbd\x3e\x7d\xd1\x77\x9f\xfa\xe1\xc9\xdd\x72\x77\xd5\xbf\x9c\xae\x57\xdb\xdb\xab\x66\xf6\xb5\xf9\xa9\xdd\x5e\x2e\xa7\xeb\xcd\xcd\xf3\xe3\xf2\xa7\x91\x82\x55\x7b\xdd\xbf\x38\xea\xfa\xed\x7c\xb3\xbc\xd9\x2d\xd7\xab\x91\xd8\xa3\x87\x0b\x3f\x2f\xfb\x2f\x37\xeb\xcd\x6e\xb4\xea\xcb\xb2\xdb\x5d\xbe\xe8\xfa\xcf\xcb\x79\x3f\xc9\xff\xe7\x59\xb3\x5c\x2d\x77\xcb\xf6\x6a\xb2\x9d\xb7\x57\xfd\x0b\xa8\x82\xca\x8f\xb1\xb8\x79\xb6\x71\x72\xbb\x3c\x9e\xaf\x57\x8b\xe5\xa7\xe3\x7e\xf5\x79\xb9\x59\xaf\xae\xfb\xd5\x58\xc5\xd3\xf0\xd7\xa7\x88\xd7\xeb\xee\xf6\xaa\x7f\xbf\xe9\x17\xcb\x5f\x9f\x22\x3e\xa5\x93\xa7\x88\x7b\x09\x86\xe0\xf4\x29\xe2\x48\xc4\x7e\xd5\xcd\x66\xdd\xdd\xce\x6d\x7b\xfb\x65\x9b\xf5\x7a\xf7\xf3\xf9\xd9\x7e\xc9\x53\x7c\x65\x42\x5e\xed\x17\x5c\xad\xe7\xad\x3d\xf1\xf1\xeb\x4d\xbf\x5f\xb5\xd8\x5e\x4f\xbe\x2c\x77\x97\x93\x75\x76\x56\x7b\xb5\x5f\x7e\xb9\xdc\xee\xd6\x9b\xaf\x1f\x6e\x6f\xcc\x3f\x6f\x96\x5d\x77\xd5\x7f\x69\x37\xf5\xd1\xdd\xe6\xb6\x2f\xeb\x76\xeb\xcd\x72\x59\xe5\xe5\x6d\x75\xcb\x6d\x3b\xbb\xea\xcf\xfb\x6e\xb9\xe9\xe7\xbb\xd7\xc5\x75\xcb\x7f\xf4\x9b\xb2\x6a\xd1\x5e\x6d\xfb\xa7\xe1\x87\xf2\xf8\xa9\xd1\xe9\xf4\xed\x7f\x8c\x25\xbc\x3a\x3d\xf9\xf8\xf3\xf9\xe9\x87\x3b\x6c\xbf\xfa\x3f\x3f\x9e\xbe\xfd\xe1\xe2\xfd\xf9\xbb\x8f\xef\x8c\xaa\x1f\xc6\x8f\xfd\xd0\xee\xfa\xc7\x54\x5c\x9c\xbc\x7f\x7f\xf6\x7a\x7a\xf2\xf1\xf5\xbb\xb7\x17\x1f\x4f\xdf\xbc\x3f\x3b\xf9\x78\x7a\xf1\xbf\xce\x4f\xde\xbf\x3f\x3d\x1f\x3f\x50\x56\xff\x70\xfa\xea\xe4\xe7\xb3\x8f\x17\x27\x1f\x7e\x79\x3b\xbd\x78\xf7\xd7\x0f\xa7\xe7\xff\x71\x7a\xfe\xe1\x70\xdf\x17\xff\xfe\x3f\x7f\x3e\x3d\xff\xe5\xe2\xf5\xdb\x8f\xa7\x3f\x9e\x67\xe1\x0f\x65\xed\xb5\xbd\x7b\x7b\xf6\xcb\xc5\x8f\x67\xaf\xdf\xbc\x39\x3d\xbf\x98\xbe\x7b\xf3\xfe\xdd\xdb\xd3\xb7\x1f\xc7\x42\x07\x6b\x4f\xde\xbf\x1f\x6f\xca\x78\xf5\x1d\x72\x7c\xee\x37\xdb\xca\x82\xbc\x02\x1d\x3a\xff\x14\xff\x1a\x68\xa6\x1a\xc3\xdc\xfe\x30\x48\xde\xf4\xdb\xe5\x3f\xfa\x0f\xfd\xc6\x98\xfd\x43\xbf\x68\x6f\xaf\x76\xdb\xb1\xae\xe5\xea\xef\x7d\x26\xd5\xab\x76\x6e\x61\xed\x87\xbf\x8a\xfd\xd5\x52\x65\xaf\xd7\xa8\xbc\x59\x5f\x5d\x95\xa0\x56\xe8\xfa\x66\xbd\xaa\x2c\x95\x1f\xf6\x6a\xa7\xef\xde\x7e\xf8\xf9\xec\x62\xfa\xee\xfd\x2f\xe7\xaf\x7f\xfc\xe9\xe3\xc5\x2f\xa7\x27\xe7\x77\x06\x7b\x7b\x1e\xef\x2d\xfd\xf1\xf5\xc7\x8b\x0f\x3f\x9d\xec\xd7\x0c\x9b\x91\xc3\x85\x16\x97\xbd\xdf\x9f\x22\x82\x83\xbc\xfd\xfb\xab\xfe\xfa\xfa\xed\xc9\xf9\x2f\x17\xc6\x97\xfd\xca\xf5\x76\x7b\xb8\xec\xe7\xd7\x17\x3f\xbc\xfe\x70\xf2\xd7\xb3\xd3\x8b\xf3\xd3\x93\xb3\x8f\xaf\xdf\x9c\x3e\x08\xe8\xc3\xa5\x27\x6f\xa7\x3f\xbd\x3b\xbf\xf8\x70\x7a\x76\x3a\x7d\x94\x03\xeb\x9b\x7e\xd3\xee\xd6\x9b\x69\x2e\x08\x0f\x29\x5d\x45\xfe\xf4\xee\xcd\xe9\xc5\x38\x7f\xad\x52\x6e\xf3\xaf\xaf\x9e\xe2\xab\x2f\x5f\xbe\xb8\x12\x7d\xb7\x5c\x1f\x5a\x7e\x7e\xfa\xfe\xdd\xc5\xeb\x0f\x1f\x7e\x3e\xfd\xf0\x1d\x11\x9f\x96\xbb\xcb\xdb\x99\x9b\xaf\xaf\x9f\xe2\xab\x4b\x2b\xa1\xf3\xf5\xe6\xe6\x29\xbe\x2a\x72\x9f\xe2\xab\xe5\x76\x7b\x6b\x31\x7f\xb5\xb2\x48\xbf\x9a\x5f\xae\xd7\xdb\xfe\x50\xd9\x0f\xef\xa6\xdf\xd3\x72\x60\xe8\xab\x6e\x3d\x7f\xe0\xe9\x2c\xe2\xec\xf4\xe4\xfc\xed\x77\x04\x5d\xf5\xed\x66\xe5\xf6\x76\x16\xbb\x1f\x91\x73\xf2\xfe\xf5\x1f\x30\xa7\xbd\x59\x1e\x4a\xb9\x23\xe6\xf7\xc5\x3c\x6e\xca\x6c\xb3\xfe\xb2\xed\x37\xcb\xc5\xd7\x71\x26\xed\xfa\xed\x90\x5a\xf7\x92\xbb\xff\xd5\x8a\xe9\xc9\xcd\xcd\xd5\xb2\x14\xe3\x1f\xaf\xd6\xb3\x52\x74\xef\xaa\xd6\x51\x73\xfc\xf2\x89\xf5\xd5\x7f\x9b\x4c\x9a\xfb\x4c\xff\x4b\x53\x28\xde\x4c\x26\xb9\xf3\x5e\x2d\x57\xff\xbb\xd9\xf4\x57\x2f\x8e\x96\x73\x6b\x75\x97\x9b\x7e\xf1\xe2\xe8\xdb\x37\x37\x2d\xad\xe6\x7d\xbb\xbb\xfc\xed\xb7\x76\xbb\xed\x77\xdb\xe3\x45\xfb\xd9\x56\xb9\xe5\x7c\x7d\xf4\xe7\x9f\xde\x7e\xfe\x74\xd4\xec\xbe\xde\xf4\x2f\x8e\x96\xd7\xed\xa7\xfe\x78\xfb\xf9\xd3\x7f\xff\xf5\xfa\xea\x50\x64\x7b\x73\x73\xd5\x4f\x76\xeb\xdb\xf9\xe5\xe4\x77\x88\x3f\x5c\x3e\xf1\x30\xef\x58\xa3\x0f\x11\x17\xb3\x99\xcc\xe6\x1e\xc9\x03\x71\xe8\x16\x29\x79\xea\xdc\xcd\x30\x7e\x64\x9d\xcb\xd5\xae\xff\xb4\x59\xee\xbe\xbe\x38\x3a\x2a\x06\x6c\x77\x5f\xaf\xfa\xed\x65\xdf\xef\xfe\x85\xea\xcf\xfd\xaa\x5b\x6f\x26\x9a\xfa\x85\xa6\x3e\xc5\x59\xe8\x80\x3b\x10\xa0\x45\xf4\xa2\x33\x9d\xeb\x8c\x63\xe7\xe6\xdb\xed\xff\x1f\x85\xfb\x32\x3e\x81\x44\xd0\x75\x73\x8a\x4c\x7e\xb1\x58\x74\xb4\xe8\x66\xd4\x86\x7e\x2e\x33\x0f\x73\x88\x7b\x9d\x4f\x86\x81\xe3\xf9\xf1\x30\x6d\x3d\x9f\xad\xbb\xaf\xfb\x41\xe4\xf9\x6a\x5d\x46\x9e\x82\x34\xcd\xf3\x6e\xf9\xb9\xc9\x26\xbd\x38\xba\x6e\x37\x9f\x96\xab\xbf\x34\xbe\x69\x6f\x77\xeb\xff\x71\x34\xac\xc9\xeb\x2e\xf1\xe5\xbf\xb7\x9f\xdb\x0f\xf9\xe9\xe6\xdc\x86\xb3\x4d\xdf\x3d\x3f\xbe\xc4\x7b\xcb\x6e\x5e\xbe\xbf\xea\xdb\x6d\xdf\xf4\x2b\x6b\xef\xcd\xe8\x99\xe5\xaa\xf9\xba\xbe\xdd\x34\x5f\xfa\x59\x53\xf3\xa1\xd9\xad\x9b\xdb\x6d\xdf\xd4\xa1\xed\xe7\xd7\xee\xf9\xf1\xcd\xde\xb4\xe3\x6e\xf9\x39\x6f\xe1\xf8\xce\x6a\xb3\xf7\x49\x33\x4c\x99\xb3\x4d\xbb\xea\xf2\x94\xd9\x6f\x8e\x9e\x34\xf7\x37\x32\xb9\xea\x17\xbb\xbf\x34\xf3\xf6\x6a\xfe\x5f\x27\x90\xe2\xcd\xaf\xcd\x71\x83\xff\xed\xe8\xc9\xcb\x27\xcf\xb7\x9f\x3f\x35\x65\x82\x3b\x82\x14\x8f\x9a\xcb\x7e\xf9\xe9\x72\xf7\xe2\x48\xe8\xa8\xf9\xf5\xfa\x6a\xb5\x7d\x71\x64\xa9\xfd\x97\xe3\x63\xcb\xe9\x2f\xe4\xd6\x9b\x4f\xc7\xe8\xbd\x3f\xce\xc4\x5e\x2c\xaf\xae\x5e\x1c\xfd\x97\x78\x9a\xf4\x84\xf6\x7e\x7a\x7e\xd3\xee\x2e\x9b\xee\xc5\xd1\x1b\x42\x17\x90\xbd\xf7\xf0\xcc\xbb\xa8\x8a\x24\x5e\xa0\x99\x62\x74\x8a\x94\x0c\x9f\x78\x87\x10\x81\x42\xe2\xd4\x20\x3b\x42\xf0\x03\x1e\x85\x55\x32\xee\x1d\xc4\x54\xe5\x68\xf0\x3e\x69\x96\x03\xea\xbc\x68\x96\x03\x4e\x51\x54\xbd\x97\x06\xd0\x21\x7a\x31\x94\x9c\x04\x41\x32\x34\x39\x0f\x18\xd4\x83\x3c\x53\x47\x9c\xd4\x1b\x3a\x15\x17\x3d\xa7\x64\x70\x72\x80\x94\x82\xc1\xe4\x08\x31\x7a\x43\x01\x9d\x52\x22\xef\xa1\x01\x17\x22\x28\x64\x54\x9d\xa4\xac\xa3\x99\x7a\x87\xec\x99\x08\x38\x3e\x43\xef\x84\x41\x0d\x9f\x78\x47\x40\x20\x21\x0a\x3e\x43\x76\xd1\x27\x34\xdc\x3b\xd0\x18\x13\xe6\xe5\xc9\xf9\xa2\xc8\xc4\xa8\xf8\xc4\x59\x0c\x91\x43\x52\x36\x1c\x1d\x08\xfb\x60\x4a\x29\x38\xd4\x18\x0c\x65\x27\x1c\x8a\x81\xec\x5d\xd0\x94\xd1\xa9\xba\xc4\x20\x94\x61\x76\x18\x7c\x86\xc1\x3b\x10\xca\x0e\xe1\xe0\x80\x38\xdb\x07\xe4\xf2\x0e\x0c\x4d\x0e\xa0\x9a\x01\xc1\xa9\x68\x5e\x2c\xe0\x7c\xca\xe1\x68\x10\x5c\x24\x86\x8c\xa2\xf9\x29\x2f\x46\x75\x3e\x08\xee\x51\x60\xf6\xa9\x99\x12\x3a\x05\x94\x3d\x1c\xed\xb9\x86\xa2\x4b\x80\x50\xf5\xa9\xa6\x2c\x82\xc9\x05\x08\xc5\x0a\x71\x48\xf9\xd7\xe6\x8c\x82\x13\xe1\x90\x63\x18\x5d\x48\x52\xf6\x47\xe2\x7c\x2a\x0a\x19\x9c\x07\xca\x71\x21\x74\x9e\x85\x33\x8a\x8e\x83\xcf\xfa\x30\xba\x10\x38\x56\x34\xc5\xa2\x6f\x8a\xe2\xc4\x73\x11\x41\x4e\x8c\x4a\xb6\xd8\xdc\x4c\xbe\xa2\xbe\x1a\x07\x46\x89\x40\x55\x5d\x28\x94\xcd\xb4\x33\x12\x64\xd8\x3b\x0a\x21\x55\x7f\x0a\xf9\x58\x4d\x86\x98\x1d\xde\x80\x3d\xa7\x65\x23\xe2\xd8\x97\xa0\x4e\x93\x4b\x88\x9a\xe3\x67\xde\xc2\x94\xe1\xe8\x52\xce\x0b\x10\x63\x06\xc5\x18\x0f\x51\x73\x78\xc8\xdb\x9b\x8e\x61\x74\x41\x25\xeb\x1b\x09\x86\xe4\x04\x39\x1d\x58\x01\xea\x42\xa1\x4e\x33\x1d\x99\x6c\x6c\x18\xe8\x72\xb7\x3d\x7b\x2e\x28\x1d\xf8\x02\xbc\x63\xf2\x65\x23\x23\xc7\x25\xe7\x23\x33\x5b\xfe\x8c\x9c\x1c\x9d\xb2\x05\xd2\xd0\xbb\x88\x24\x07\xca\xc6\x27\xc9\x74\x19\xc2\x97\x9c\x46\x06\xcc\x29\x78\x17\x6a\x00\x07\x5c\x78\x38\xe2\x05\x90\x23\x89\x39\x7a\x67\x23\x16\xa9\x8b\x09\x35\xa7\xfc\x94\xbd\x93\x14\x34\x07\xca\x79\x48\x98\xeb\x03\xa9\x8b\x58\xb8\x0c\x2e\x89\xd7\x6c\xc6\x3f\xa9\x55\x7f\x6b\xde\xb0\x3a\x25\xcc\x7f\x21\x76\x51\x42\x4e\xe3\x29\xab\x55\x2e\xac\x70\xa2\x94\xfd\xcf\xe2\xa2\x25\x47\x89\x37\x30\x86\x8a\x4a\x2e\x2d\x85\x05\x75\x33\x53\x63\x3c\x03\x55\x38\x50\x61\x01\x8b\xf3\x94\x73\xe6\x19\xa9\x03\xa8\x82\xd9\x25\x91\x58\x51\x21\x2a\xfe\x67\x76\x31\x94\xdc\x26\xcb\xfe\x62\x9c\x2d\x06\x29\xfa\x82\xa3\xa0\x38\x08\x0e\x01\x2b\x1a\xac\x5a\x0e\x56\x50\x1c\x72\x0d\x44\xd2\x60\x72\x4d\x57\x8a\x8e\x63\x82\x61\x7b\x5a\xc2\x6d\x79\x89\x85\xe4\xc5\x17\x34\x70\x3f\x49\xc9\x08\x73\x5c\x0e\x05\x3c\x23\x23\x47\x7e\xae\xe1\xe0\x3c\x57\xbf\xdd\xa1\x53\x0e\x4e\xa1\x44\x65\xbc\xd8\x0c\xd2\xc1\xb6\x28\x91\x2a\x2a\xa2\x83\x3a\x96\x58\x23\x62\xaa\x4b\x3b\xa0\xe8\xbc\x94\xba\x63\xc5\x2d\xc2\xe0\x0b\x01\xe1\x43\xd4\xfc\x56\xca\xc0\xf4\x3e\x2c\x98\xc9\x63\x8b\x7d\xad\x89\x39\x22\x82\xd5\x8a\x88\xd5\x43\xe2\x82\x32\x0d\x56\x48\x0c\xfb\x58\x43\x71\x11\x47\x87\xc2\xb2\xe7\x85\x1f\x7c\x11\xb5\x96\x39\x76\x29\x44\x1d\x7c\xc1\x35\x51\x8c\x71\x50\x32\x3e\x3b\x4e\x52\x45\x6b\x26\x35\x8f\xb3\xd3\x68\x6b\x5e\x94\x4c\x7e\x0c\x4e\x14\xf7\x4e\xd2\x00\xb1\xc2\xca\xa5\x19\x98\x79\x09\x86\xc5\x91\x43\xa8\x1a\x53\xca\x35\xf6\x19\x46\x07\xac\xb0\x0f\x55\xca\x85\xc5\x60\x66\x96\xba\x98\x53\x71\x1d\x9a\x67\xaa\xe0\xe0\xd8\x67\x5e\x5b\x49\x43\x8a\x32\x88\x20\xcc\xdb\x32\x58\x73\x8f\xce\x8b\x49\x53\x21\x8c\x77\x3e\xc2\x80\xee\x0b\xab\x77\x1c\x60\x64\x05\x0e\x8b\xa3\xfa\x34\x98\xac\x95\xf9\xe0\x20\x31\xd4\xed\x11\xa8\x56\x94\x71\xf0\x73\x74\xaa\x81\x2b\xac\x5a\x39\x97\x9c\x0f\x29\x55\x34\xc4\x3d\x8d\xc4\x17\xbf\x8d\xd0\xa9\x78\xe7\xb5\x54\x9e\x0c\x97\xe4\x11\xef\xd4\xc7\x41\xb0\x68\x99\x14\xac\x9f\xfa\x38\xac\x85\x6a\xf1\x54\xc0\xb1\x2f\x55\x8a\xac\x97\x03\xd6\xc5\x4a\x04\x15\x45\x28\x1d\x29\xa3\x42\x7b\xbf\x71\x18\x44\x8c\x60\xa4\x52\x75\x04\x9c\x80\xc7\x7d\x44\xfc\x20\x18\x83\x0c\x71\x62\x2d\x45\xc7\x44\xf8\x5a\x8b\x2c\xd6\x50\x5c\x24\xde\x05\x5f\x6a\x51\xe6\x85\x40\x45\x09\x22\x0d\x1c\x8a\xb4\x4f\x9e\x84\x65\xd7\xc6\x38\x2c\x8c\xe3\xe4\x38\xe5\x1a\x66\x28\x17\xcf\x36\x8f\xb3\xf3\x6f\xcd\x1b\x8c\xce\x07\x2c\xfc\xf4\xa6\xb1\xec\x10\x8d\xfc\x80\x15\x66\x28\x3c\x42\x71\x29\xd7\xef\x8c\x52\x8e\x04\xd8\x18\x19\xa1\x8c\x91\x36\x8f\x61\xe1\xe7\x14\xad\x49\x94\xfc\x41\xef\x02\x17\xce\x59\xef\x04\x5f\x16\x83\x33\xc5\x75\xde\x49\x75\x86\x44\xb4\x79\xa0\x8a\x00\x07\xe4\x53\x85\x73\xb0\x6d\xb1\xb5\x99\x9a\x26\xe4\xa2\xca\x80\x52\x28\x6d\x0d\xd9\xe5\x79\x33\x8b\xb0\x61\xac\x44\xdb\xba\xb9\x14\x8f\xa2\x77\xa8\x69\x70\x1d\xa4\x12\x2a\xf4\x4e\x93\x0e\xa1\x42\x84\xb8\xb7\xa2\xb6\x2a\x8b\xb6\x94\x56\x60\x23\x1a\xef\x69\x04\x54\x05\xa3\x75\x70\x3f\x90\x4b\x84\xf7\xbe\xf0\x4c\x95\x8a\x54\xf8\x60\x8e\x0b\x49\xf6\x1c\xf7\x1a\x07\x27\x67\x7d\xf7\x50\x8b\x08\x97\xe9\xe9\xde\xe2\x68\x31\x93\x81\xe3\x80\xc5\x17\xc9\xa5\x41\x9d\x77\x5e\xca\xdc\x36\x25\xef\x52\xed\x26\x18\x5d\x4a\xa5\x64\x58\xc6\x48\x18\x2a\x94\x48\x99\x78\xc7\xa8\x3a\xaf\x50\x36\x32\x86\xd9\x25\x2e\xf3\x0e\x81\xc3\x3a\xef\x58\x44\xaa\x87\xc8\xb2\xb2\xf4\x23\x44\x97\x50\x6a\x44\x92\x4b\x51\x07\x06\xa4\xa4\x5a\x4d\x86\x6a\xb2\xf1\x22\x94\xda\xf0\x38\x3b\xad\xda\x92\x4b\xb5\x0e\x98\x63\xa8\x4e\x58\x36\x62\xd6\x96\x8b\xc1\x61\x9d\xa5\x98\x1c\xd4\x16\x68\x28\xd5\x22\x85\x2e\x10\x0f\x1c\x20\xa8\xa3\x22\xa3\xa3\x81\x8a\xc1\x51\xaa\x07\x00\x70\x89\xfd\xb0\x58\x3d\xa4\x8a\x2a\xe3\x60\x45\xf2\xbe\xb6\x24\x70\xc4\x34\xf0\x08\x52\xc9\x6d\xb6\xb1\xaa\x0a\x8e\x4e\x42\x99\x36\x6d\xae\x96\x9a\xf1\x16\x13\xac\xb9\xed\x5d\x0a\x85\x1a\x98\x6c\x8e\x95\x61\x31\xc4\xa1\x8c\x47\xaa\xbd\x15\x1c\x84\x34\x30\x11\x51\x46\x56\xc0\x40\x45\x85\x42\x50\x33\x19\x6a\x63\xf4\x2e\x71\xed\xf0\x60\x65\x7c\xe0\x27\xc4\x52\xd0\xb2\x2f\x40\x71\xa8\xe3\x43\x63\xb4\xd1\x2d\x0e\x4c\x94\x9a\xd8\xe6\x64\xf1\x87\xe8\x34\x8f\x8a\xca\x87\x8b\xd9\xa1\x24\x18\xf2\x01\xc2\x30\x73\xa9\x24\x1c\x6c\x83\xc0\xc3\xc0\xe4\xef\x60\x81\x40\x75\x34\xca\xc5\xaf\xf8\x22\x05\x0e\x0f\x51\xf6\x31\xee\x67\xae\x01\x8e\x46\xbf\x61\xe6\x02\x89\x69\x1f\x11\xe6\x61\x98\x2b\x35\xac\x54\x81\xa1\xda\xb2\xd3\xe4\xf7\xa5\x39\xd4\x49\x93\x1d\xd5\xd1\xc8\x92\x27\xa5\xc1\x17\x8f\xb0\xf3\x80\xb6\x56\x1e\x3c\x3d\xa0\xad\x77\x52\x0f\x22\x63\xda\xda\x39\xb7\x24\xca\x98\xb6\xde\x29\xc6\xf4\x80\xb6\xde\x05\x28\x5d\x6d\x4c\x5b\xf3\x28\xf3\x21\x6d\xc1\xe1\x70\x14\x1d\xd3\xd6\x5a\x19\xc0\x21\x6d\xc1\xc5\x04\x74\x48\x5b\x74\xe4\x05\x1e\xd0\xd6\x0a\x7d\x29\xd8\x63\xda\xda\x9e\x42\x3a\xa0\x2d\xda\xc1\x28\xc4\x43\xda\x22\xb9\x34\x8c\x84\x77\xb4\x45\x76\xa8\x3e\x1e\xd0\x16\xd9\x71\x39\xbf\xdc\xa3\xad\x95\x58\x4c\x7a\x40\x5b\xeb\x58\xc2\xf1\x80\xb6\x23\x74\x4c\xdb\xf1\xe2\x3b\xda\x22\xbb\x5c\x4a\xef\xd3\xd6\x6c\xc3\x94\x0e\x69\x6b\x45\x11\xeb\x01\x7c\xc4\x44\x72\x18\x03\x1c\xa2\x66\x26\xd0\x03\xda\xa2\xc3\xb4\x3f\xb0\xec\x69\x0b\x2e\x0e\x64\x1e\xd1\x16\x9c\xd0\x70\xda\x18\xd1\xd6\x32\x5b\xf0\x90\xb6\xc6\x0b\x88\x87\xb4\xbd\x63\xe7\xc1\x6c\xeb\x1d\x45\x94\x07\xb3\xad\x77\xac\xa5\x19\x8c\x67\x5b\xef\x54\x23\x1c\xce\xb6\xd6\x86\x86\x6a\x3b\x9a\x6d\xc1\xa1\x56\x3f\x8f\x66\x5b\xe3\x2a\xa7\xc3\xd9\x16\x8d\x7e\xf1\xc1\x6c\x8b\x8e\x03\xea\xc1\x6c\x6b\xcd\xc7\x83\x1e\xcc\xb6\xe6\xfd\x04\x7c\x38\xdb\x22\x39\xbd\x1b\x84\x87\xd9\x16\xed\x3c\x5b\x93\xe7\x6e\xb6\xb5\x68\xf3\x90\x7f\x77\xb3\xad\x51\x31\x96\x96\x3b\x9a\x6d\x8d\x30\x65\x46\x1d\xcf\xb6\x23\x74\x3c\xdb\x66\xb8\x34\xaf\xd1\x6c\x8b\xec\x28\xfa\x78\x30\xdb\x5a\x96\xc4\x92\xee\xe3\xd9\xd6\x72\x2a\x82\x1c\xcc\xb6\x48\xce\x73\xb9\xb0\x19\x0f\xb1\xe6\xb7\xda\x9e\xef\xc3\xbe\x5c\x36\xdc\x9b\x6d\x2d\x22\x5e\x0f\x67\x5b\x1b\xe6\x52\x78\x30\xdb\x7a\x97\x28\xa6\xc3\xd9\xd6\x78\x51\x9a\xd7\x78\xb6\xf5\x4e\x3c\xfb\x07\xb3\xad\x77\xc4\x85\x71\xe3\xd9\xd6\xe6\x4f\x8f\x87\xb3\xed\x1d\x3b\xcb\x4d\x42\x9d\xc0\x9e\x01\x39\xf4\x43\x6f\x55\xab\x30\x3a\xc0\x91\x87\x66\x90\xca\x94\x63\x28\x0f\xc7\x10\x19\xce\x29\x86\x86\xa8\x32\x24\x26\xd5\x83\x24\xb0\xf3\x77\x22\x40\xeb\x4d\x0e\x3b\xae\x83\x69\xbe\x06\x28\x75\x00\xd8\xc5\x30\xd0\x96\x6d\xf6\x29\x97\xa9\xe2\x30\xed\x6f\x2e\x3c\x95\x0a\x03\x62\x85\x60\xdf\xd5\x7c\x29\x52\x60\x07\x62\x18\x59\x51\x4e\xc4\xa0\x46\xa9\xa1\x31\x2a\x95\x91\x10\xd4\x45\xe2\xe1\xa2\x24\xc5\x32\x8c\x41\x70\x5e\x07\xda\xaa\x23\x2a\x9d\x07\x82\x23\x5f\x26\x37\x73\x1c\x97\xfb\x13\x08\x76\x7e\x1b\x4e\x9c\x10\xaa\xdf\xee\x50\x4b\x9e\x40\x85\xf9\xe3\xc5\xd1\x86\x7b\xa8\x28\x7a\x0a\x15\xd5\x58\x68\x64\xb6\xf9\xbb\x93\x8c\x8f\x9e\x2a\xcc\x9e\x86\x68\x53\xbd\x31\x05\xb9\x3b\x71\xde\x43\x31\x0d\x9d\x67\x04\xe7\x3b\x9a\xfd\x65\x44\xcd\xbf\x1c\x11\x3f\x9c\xbe\x53\x1d\x9a\x81\x1d\xf8\x7a\x55\xc9\xd1\xfa\x26\x0c\xb1\x2e\x25\x36\xe7\x7b\xb9\x72\x2c\xbc\x90\xc1\x17\x29\xc6\x81\x17\x84\xbc\xbf\x55\x91\x54\x5a\x36\x90\x03\xc5\xbd\xe3\x34\xed\x51\x2c\x75\xf5\x71\x76\xfe\xad\x5c\xf3\x4f\x36\xb7\x57\xfd\x8b\xa3\xd5\x7a\xf5\x8f\x7e\xb3\x3e\x7a\xf9\xfc\xf8\xa6\xdd\x5d\x3e\xbc\xf2\x8f\xd6\x39\xb3\xc7\x9f\x25\xe7\xd1\x0e\xb3\x91\x9b\x69\x90\x21\x3b\xc6\x70\x00\x17\x6a\xbd\x06\x74\x52\xee\x47\xee\xa1\xd1\x69\xc9\xf2\xe6\x6c\x04\x13\x39\xc1\xd2\x9e\x0b\xcc\x0c\xa8\x06\x47\xf3\x9d\x36\xd3\x60\x7d\x88\x11\x41\x9e\x51\xb2\x5a\x1a\x53\x84\x26\x88\x63\x05\x04\xc8\xb7\xbc\x00\x36\x03\x50\x33\x32\x79\x84\x4e\xa3\x3a\xa9\xd4\xc8\x70\x09\x60\x4c\x66\x51\xf6\xbe\xf5\xef\x3a\x03\x25\x74\xa2\xac\x15\xf5\x65\xee\x69\xce\x12\xb8\xa8\x61\xb8\xc9\x53\x5f\xb2\xf2\x2c\xd9\x50\xa2\x5e\x42\x32\x38\x28\x41\x04\x68\xa6\x31\x3a\x49\x96\xc4\xf9\xa6\x1f\xd4\x1a\x34\x35\x51\x1d\xc4\x94\x10\x39\x5f\xe5\x45\x66\xc4\x6c\x73\x08\xf5\x46\xca\x38\x5e\x8f\x75\x21\x39\x86\xd2\x91\x46\x70\x88\xce\x13\x96\x49\x58\x5c\x2a\xb7\x45\xf7\x50\x74\x5c\x5b\xee\xd9\x08\x86\xe4\x02\x96\x3b\x9f\x02\xb3\x62\xcc\x30\xa7\x18\x43\x34\x85\xd1\xf9\x24\x9a\x58\x73\x21\x20\x8a\x18\x9b\x90\x6c\x38\x44\xaf\xc1\xe8\x1c\xca\xab\x80\xb1\xc9\x23\xd4\xdc\xcc\xb5\x3b\x1b\x5c\x4f\x7b\x31\xb9\x7c\xe3\x51\x92\xca\x13\x65\x0e\x8c\xfc\x09\xe2\xa4\xb4\x90\xe6\x6c\xe4\x7d\xf0\x0e\xea\xf0\x9e\xbd\x8f\xac\x3e\xe1\xb3\xe4\x12\x13\x8b\x06\x6c\xa6\x26\xda\x4b\xf0\xc1\xa8\x48\x84\x11\x40\xd4\xdc\x4c\xa8\x01\xa5\x10\x54\xbc\x47\x4c\xcd\xe3\x6c\xfe\x5b\xf3\x06\x02\x3a\xe0\x64\x04\xe5\xca\x8c\x33\x50\x75\x3e\xf1\x23\x98\xc4\x68\x91\x46\xe4\x08\x88\xcd\xd4\x50\x10\x4e\x92\xdf\xde\x50\x0a\x82\x22\x0d\x68\x70\x0a\x14\xa4\xd2\xb0\x5c\xc6\x07\x3b\xe0\x8e\x91\x29\x04\x76\x09\x52\x7e\xab\x21\xc3\xaa\xe8\x10\x62\x26\x5f\xa9\x02\x0d\x44\x70\x48\x64\x0a\xa4\xde\xff\x9e\x19\x16\x09\x6d\x99\xd6\x81\xfc\x0c\x2c\x00\x4c\x8f\x62\xf7\x76\x12\xad\x95\xc5\x47\x31\x12\x07\xa9\x5e\x48\x9b\x29\x50\xf6\x4b\x54\x5e\x98\x80\xe5\x5d\xcc\x94\x44\x2c\xe7\x3b\xdb\x83\x8f\x3a\x86\xa6\xe6\x53\x4d\x07\xcb\x8a\x9b\x29\xe7\x22\xdc\x83\xac\xd6\x56\xce\x3e\x12\x0d\x8b\x91\x37\xb2\x27\x2b\xf7\x09\xea\x01\x32\x45\x87\x01\x12\x07\x18\xc3\x49\x5c\x88\x46\x8f\x32\xc0\x0a\x24\x61\x32\x94\x05\x34\x31\x3e\x43\xdb\x8c\x44\xaf\xd8\x9c\x19\x8c\x12\x12\xe7\x8b\x88\x10\x22\x87\xc0\xcd\x34\xc3\x28\x29\x25\x83\xa3\xa0\xf8\x18\xb3\x0c\x48\x49\x62\x5e\x9c\x50\x55\x54\x0b\x1a\xa2\x08\xd9\x71\xcc\x7b\x9f\xbc\xa4\x22\x19\xf6\x97\xb0\xcc\x03\x8f\xef\x60\x2b\x7c\xb1\x1c\xa7\xcf\xaa\x10\xa2\x7c\xf1\xeb\x09\xa2\x97\x62\x87\x08\x24\x16\xcd\x37\xf4\x11\x62\x34\x8d\xc1\xe6\x72\x8d\x99\x49\x3e\x96\x4b\xe2\xe2\x20\x18\x43\x53\x80\x7c\xd0\xd0\x14\xee\xad\xb4\xe4\x96\x88\xe5\x6e\x9e\x35\x28\x63\x06\x99\x10\x2c\x8c\x6c\xf3\x5a\xf0\xac\xcd\x59\x86\x05\x3d\xdf\x33\xab\xa0\xca\x81\x72\x99\x8e\x44\x2a\x54\x44\x48\x0c\x92\x5f\x79\xda\x31\x32\x41\x05\xd3\xbd\xcd\x0e\xd8\xd8\x2f\x05\x0b\x2c\x92\x6f\x51\x10\x81\x24\x0e\x9a\x88\x20\x14\x97\x5b\x31\x96\x22\x94\x7d\x48\x6a\xa8\x22\x29\x73\x55\x05\xc9\x53\x7e\xb5\x46\x18\x22\x2b\x15\xc9\x14\x12\x49\x78\x86\x62\x8e\x43\x44\x31\xc9\xe2\x12\xc4\xc4\xf9\x40\xa3\x02\x80\xa9\x81\xfc\x1e\x4a\x00\xef\x31\xea\x11\xee\x19\x23\x85\x1d\xb1\x18\x1a\x63\x50\x01\x13\x6a\xa7\x08\xa1\x31\x06\x36\x47\x41\xb2\xe1\xd1\x63\x39\x11\xec\x21\xb6\x55\xd5\x27\x05\x53\xb3\x47\x1c\x10\x53\x4a\xa1\xc2\x28\xc1\x93\xc1\x0a\x3e\xa4\x48\x15\xb6\xc9\xb7\xbc\x45\x54\x86\x40\xa6\x5d\x6c\xf6\x0c\x81\x0c\x05\x0a\x51\xb9\x6a\x63\x4e\x29\x33\x1f\xc1\x2b\x01\x57\x34\x5a\x31\x33\x34\x22\x27\x1c\xf4\x05\x8e\x31\x13\x3f\x78\x4c\x98\xa4\x4a\x8e\xde\x27\x29\x69\x02\x48\xa1\x6e\x2d\x4a\xc0\x92\x25\x14\x75\x00\x13\x44\xc8\xb1\x49\x5e\x50\x92\x16\xc1\x4c\x94\xad\x08\x0e\x93\xd1\x0e\x8a\xe0\x00\x0c\x91\x9e\xa1\x9d\x5b\x22\x12\x51\x03\xac\x56\x3c\x91\x34\xdf\x73\xa2\x57\x40\x43\xcb\x6d\x38\x50\xbe\xe0\x4f\xe4\x35\x9a\x60\x1b\x09\x62\x44\x31\x34\x4a\x10\x55\xb3\x58\xb2\xbf\x7d\x50\x83\x93\x4a\x14\x0e\x8d\xa1\xa4\xaa\x68\x5d\xd2\x07\x10\xcb\x76\x03\x03\x05\x28\xbd\x13\x72\xd7\x4a\xcd\x19\x08\x38\x02\x08\x94\x61\x22\xa0\x08\x56\xee\xed\xb0\xe2\x93\xb2\x66\x38\x62\x12\x31\x19\x60\xfb\xc8\xcd\x97\x98\x80\x29\x43\x09\xf3\x2b\x61\x2e\x07\x08\x93\x89\x0e\xbd\x88\x64\x99\x22\x4c\x5e\x2b\x1c\xec\x80\x93\x65\x6a\x4c\x89\xc4\x7c\x26\x36\xb9\xb1\x4f\xd1\xe0\x88\x14\x08\xa0\xc0\x4a\x84\x94\xe1\x24\x4a\xc6\xfe\x29\x88\x75\x51\xc4\x52\x58\x02\x59\x2a\x36\x20\xea\xbc\x8d\x2a\xd1\x12\x18\x02\x59\xdb\xca\x28\x00\xaa\x0d\x27\x62\xa7\x30\x6b\x2a\x26\xd8\x58\xe3\x39\x62\x2e\xc8\xac\x8a\x77\x70\x12\x1f\xca\xfb\xce\x98\x20\x54\x94\xf3\x4a\x55\xa8\x2d\x24\xaf\x0c\xc8\x79\x65\x8a\x92\x42\xd4\x0a\x23\x60\x2a\x8d\x33\x52\x4c\x9a\xcc\x60\x75\x1e\x19\x95\xca\xbb\x3c\x9b\xfc\xcc\x93\xe2\x84\x3d\x5b\x8c\xa2\xf3\x10\x10\x38\x35\xb6\xe7\xc0\xa0\x36\x38\x45\x07\x3e\x10\x27\x29\xae\x20\x8f\x81\xf3\x62\x40\xf0\xc6\xed\x0c\x7b\x95\x82\xd5\x66\x61\x51\x56\x2a\x2f\x13\xeb\xb5\x2b\xd8\x31\xa2\xbc\x3e\x2d\x37\x61\x99\xbc\x51\x93\x41\x3e\x96\x17\xe8\x99\xb9\x9e\xd3\x33\x36\xce\x21\xee\x31\x0d\xc8\x49\x0d\x8e\x31\xb0\xcd\xc5\x26\x0f\x6c\x13\x9c\x1b\x30\x25\x25\x29\xec\xd2\x94\x90\x72\x0d\x66\x52\x24\xc8\xfb\xa1\x7d\x01\x87\x6a\x61\x72\x8a\x21\xc6\x30\x86\x41\xc1\x49\x24\xd6\x64\xdd\x3f\xd9\x10\x94\xb0\x01\x45\xe7\xc9\x63\xcc\xb6\xb2\x70\x14\x6f\x1b\x37\x38\xb0\x84\xdc\x8c\x3d\xdb\x41\xc4\x26\x14\xcc\xc5\x3f\xe6\xde\x9b\x00\x09\x81\x8a\x08\x1b\xcb\x38\x0f\xae\x81\x20\x85\x94\x51\xf0\x1a\x35\xc7\x4a\x09\x01\xa1\x0a\x06\xb4\x9e\x99\x43\xe8\xc9\x6b\x1a\x60\x4a\x5e\xea\x5b\x53\x14\x88\xa1\xc2\x9c\x31\x29\xef\xcf\x8b\x11\x15\x63\x51\x85\x08\x45\x17\xfb\x88\x79\xe8\xa0\xa0\x84\x29\x0d\xa8\xe5\x97\x4d\x05\x01\x80\x74\xd0\x64\xa7\x1b\x23\xb2\x02\x0a\x84\xc1\x00\x08\x79\xa0\x66\x07\x51\x05\x03\x54\x3f\x24\x51\xce\x8d\x27\x44\x52\x0a\xb1\xc2\x2a\x64\xab\xc9\xb1\xc7\x90\x52\x95\x6d\x53\x62\xca\xed\xcc\x33\x26\xcd\xb5\x50\xc1\xa5\x40\x21\x25\xcb\xb3\xe0\xc9\x87\x5c\x65\x15\x9c\x4a\x02\x96\xfc\xaa\x32\xaa\x72\x8a\x0d\xa8\x77\x21\x79\xf0\x29\x5f\x18\xe7\x30\x5a\x0d\x88\x76\x72\x66\xce\x17\xc6\x9e\x7d\x04\xc8\xa5\x25\x3a\x73\x60\xe4\xfc\x2e\x2f\x7a\x60\x9f\xd9\x1c\x9c\x7a\xf1\x05\x0e\x90\x52\x4a\x99\x17\x21\x7f\xf6\xc3\x2a\x6a\xb4\xba\x87\x29\x97\x32\xeb\x9e\x44\x1c\x33\x6a\xb3\x48\x2c\x28\xa9\xcf\xcd\x2e\x1a\x05\x83\x89\xc8\x19\x18\x59\x00\x33\xcc\x21\x72\x64\x29\x30\xda\x74\x21\x06\x13\x88\x0f\x92\xd3\x47\x5c\xf0\x41\x8a\x42\xe0\x28\x88\x05\xb5\x58\x61\x9e\x73\x52\x08\x21\xe4\x09\x41\x6c\x30\x10\x05\x36\x38\x78\x04\x4a\xb5\x76\x31\x92\x86\x90\xaf\xae\x09\x05\xb1\xc2\x3e\x80\x42\x6e\x03\x8c\x6a\x05\xdd\xb6\x48\xce\x83\x72\x28\x43\x81\x8f\x11\x92\x79\x0f\xf3\x2b\xa5\x88\xe5\x65\x09\x08\x6a\x45\x8d\x14\x9a\xd1\xc0\xe4\x4b\x91\x41\xa7\xe8\x23\x94\x01\x22\x80\x30\xc6\x52\xae\x35\x00\x4b\xee\x73\x09\x90\xa3\xe4\xd2\xcc\x20\x52\xda\x99\xb0\x2a\x83\x66\x94\x38\x06\x05\xeb\xb5\x41\x98\x62\xee\xb5\x06\x13\x53\xc8\x2d\x58\x40\xbd\x72\xac\x30\x06\x35\xc1\xe2\x50\xd0\xdc\xbe\x87\x49\xca\xd5\x2e\x32\x4b\xc9\x6d\xb0\xc1\x22\x5a\x00\xc8\x31\x25\xcf\xa1\xd8\x11\x05\x08\x28\xbf\x81\x0c\xe5\xae\xd5\x3c\xca\xfe\x1e\x94\x6b\xa5\x92\xe6\xdb\xc6\x7a\xf9\x6a\x24\x8a\x5a\x2e\xbd\xcb\xf9\x3f\xd7\x0a\x2f\x59\xc5\xf0\xbe\x21\xb3\x58\x52\x3e\x7d\x07\x1f\xeb\xb0\xa5\xde\x44\x4b\x0a\x06\x8b\x00\x48\x3e\xc9\x48\xb4\x36\x14\xd0\x50\xf0\xec\xd5\x97\x5e\x21\x5c\x2e\x5a\x62\x04\x2d\x1d\xf3\xc1\xe8\x63\x03\x51\x0a\x2e\xc0\x33\xfb\x41\x92\x3f\x23\x74\x06\xc9\x72\x85\x9f\x45\x27\x94\xaf\xf9\x47\x58\x39\xa3\xd4\xbe\x58\x1e\x7d\x04\x1a\x49\x33\x15\xb9\x7a\x64\xc5\x09\xeb\x47\x07\xc0\x5a\x79\x54\xb3\xd9\xc6\x87\xec\x07\x4b\x9f\x72\xbc\x49\xe5\x43\x16\x0d\x58\x48\x03\xe6\xab\x64\xd1\xaa\xc2\x26\xad\x38\x9c\x34\xaa\x6b\xd0\x8e\x58\x8f\x41\xc5\xb8\x01\xb2\xb1\x53\x1e\xc5\x6c\xc8\xf4\x45\xc3\xd4\x0c\x89\x44\xf9\xc6\x55\xcb\xe1\x1b\xf2\x8b\xaa\x64\x31\x0a\xa1\x1e\xf8\x28\x47\x75\x0c\x4d\x81\xd8\x11\xe2\xfd\x65\xec\x2c\x38\xc8\xf9\x18\x72\x0f\xb2\x84\x8d\xb5\x37\x55\xec\x9e\x6d\xd6\x3a\xca\x29\xf3\x01\x86\xe2\x7c\xbd\x46\x9f\xee\x31\xef\xf2\x47\x01\xb3\x8a\x64\xc7\x81\xb1\xcb\x1f\x89\xc2\xfe\x84\x56\x2e\x81\x43\xbd\xb1\x02\x9f\x1c\x88\x8e\x31\x00\x3b\x24\x8b\xed\x42\xa4\xd2\x76\x80\x82\xc3\xf2\xb6\xc4\xa6\xf6\x82\x59\xf9\xe6\xc4\x23\x0c\x81\x72\xf9\x4e\x81\x7d\xca\x33\xa4\xc1\xf6\x60\xc8\x47\x4b\xf5\xac\x56\x90\x7d\x32\x9d\x90\xf2\x05\x4c\x82\x72\xc3\x34\x18\x39\x82\xa6\xe0\xed\xa8\x1a\xef\x2f\x83\x72\x6a\x51\x3b\xeb\xde\x87\xc6\x06\x55\xec\x9e\xe1\x86\x29\xc4\x98\xeb\xa1\x47\x89\x51\xac\x6b\x78\x70\x82\x89\x6a\xfc\x28\x59\x2b\x68\x4c\x75\x88\x21\xfa\xfb\x2e\x7a\xe8\xc9\xdf\x75\x71\x37\xfe\xe7\xf9\xf1\xf6\xf3\xa7\xf2\x41\xe3\xfc\x89\xe3\xfc\xa9\xfa\xf2\x81\xe3\xfa\x11\xf6\xf6\xee\xa3\xf8\xc7\x7f\xdf\xae\x57\x47\x4d\xd7\xee\xda\xc9\xdd\x27\xb4\xcb\xf7\xb8\x5e\x3e\xf9\xf6\xcd\xfe\x7c\xba\x9a\xaf\xbb\xbe\x71\xbf\xfd\x96\x85\xde\x7d\xe2\xfa\x0f\x4a\x5d\x6c\xed\xa1\x6f\xd9\xc8\xa3\x5d\xff\xeb\x6e\xd2\x9b\xe4\xe5\xea\xd3\xf1\xf0\xcb\x64\xb9\xea\xfa\x5f\xfb\xad\xfb\xfb\xf6\xe8\x2f\xcd\x3f\xfb\x28\xf9\xe1\xea\x49\x90\xbe\x6f\x41\x67\x28\x29\x80\x76\x33\x5e\x74\xa0\xd8\xf7\x18\xa9\xc3\xb6\x17\x13\xf7\xec\x7b\x7a\x7f\xa7\xbe\x79\x37\x13\xbf\x98\x75\xed\x4c\x3b\xee\x68\xd1\x2d\x24\x70\xd7\x85\xc8\x8b\x10\x3a\x0c\x23\x3d\xf3\xed\xd6\xf5\xdb\x79\x7b\xd3\x1f\xdf\xfd\xfa\x7d\x35\x77\xeb\x26\x51\x20\x52\x9a\x51\xdf\x42\xe7\x67\xdc\xcf\x78\x1e\x7c\x4c\xcc\xda\x2d\xa4\x4f\x8b\xb1\xa2\x75\xd7\x5f\x2f\x37\x9b\xf5\xe6\xf8\x7a\xdd\xf5\xc7\x7f\x6f\x3f\xb7\x25\x2e\xa3\x5f\xff\x85\xe2\xdf\x23\x62\x12\x02\x42\x9c\x77\x80\x1a\xfb\x56\xbb\x45\x90\x10\x04\x80\xdb\xde\x47\x15\xd5\xef\xd8\xb4\xb9\x9d\x7d\xcd\x3f\xfe\x98\x1d\xfb\xc7\x26\x7d\xcb\x34\x6f\xa9\xa5\x59\xd7\x29\xb5\x82\x11\xa0\x8f\xac\xdc\xa9\x02\xf1\xec\x3b\xba\xbf\xb6\xd7\x57\xf9\xc7\x1f\xd3\xbd\x7f\x6c\x42\x0b\xc0\xd4\x7a\xef\x89\x53\x4f\x3e\xc8\xac\xf7\x0b\x95\x00\x29\x46\x9e\x29\x7c\x47\xf7\xaf\xd7\x57\xf6\xbf\x3f\xa6\xb9\x3e\x34\x01\xdf\xcf\xe3\x2c\xce\xe7\x0a\xfd\xc2\x58\x87\x32\xc3\xd0\x4a\x4a\x8b\x6e\xde\xa9\x37\xa9\x4f\x9a\xe6\x9f\x25\xe5\x76\x33\xff\xd7\xdf\xc5\x38\xde\x96\x2f\xc6\x6d\x27\x2d\x04\x0e\x7e\xde\x2d\x66\x1d\xb7\xb9\xbc\x42\x68\xe7\x1e\x3c\x45\x8f\x88\x39\xba\x2f\xff\xbc\x9e\xcd\xfa\x76\x67\x89\x1a\x50\xe7\x73\x1b\x68\xe3\x2c\x52\x37\xef\x12\xcd\x13\xd2\x3c\x85\x7e\xd6\x27\xea\x0e\xb4\x3c\x79\xf2\xed\xdb\x72\xd1\xb8\x93\xe9\xd9\xf6\x34\x7f\x03\xa3\x2b\x45\xe8\xf7\xeb\x6e\xe7\x57\xdb\xbd\x76\x69\xb1\x9d\x87\x8e\xe2\xbc\x5d\xf8\x34\x5f\xf4\x3d\xb6\xdc\xe3\x6c\xce\xa9\x9b\x2f\xc2\x81\xf6\x6f\xdf\xfa\x95\xe9\x2b\x36\xbc\x6f\x37\xbb\xa5\x15\xb7\x3f\x6b\xc9\xcd\x5e\xc0\x9d\xd7\xa3\x28\xc2\x02\x59\x16\x90\x64\xd1\xc3\xbc\x87\x10\xbc\xf2\x6c\x31\xf3\x2c\x9e\xff\x5f\xbc\x3e\xd2\x57\xf7\x3f\x9f\xb5\x9c\x3c\x47\x60\xcc\x77\x8b\x24\x1d\x30\xce\x03\xd3\x6c\x36\xa7\x8e\xbe\xbb\xff\xb7\xed\x75\xbf\xbd\x69\xe7\xfd\x9f\xdd\xff\xaa\x3c\x3d\x18\xb3\x48\x94\xfa\x8e\xb1\x4f\xb3\x48\x8b\xd4\xc1\x6c\x36\x17\x14\x9d\xf5\x1a\xfb\x10\xe6\xff\xc4\x98\xdf\xa9\x73\xb9\x5a\xee\x26\x08\x7d\x6b\x89\xca\x1d\x10\xb1\x06\x16\x9e\xa9\x87\x7e\x31\x07\xe9\xb1\x3b\x64\xdb\xef\x93\x5c\xbf\x38\xd5\xc6\x76\x96\x58\x42\x8c\x9d\x27\x46\x9d\x59\x69\xf4\xd1\xcf\x67\x8c\x9c\x64\xf1\x40\xf6\xef\x14\x7f\xdd\xef\x36\xcb\xf9\x76\x72\xb3\x59\x7f\x5e\x76\xfd\x66\xef\x3e\x82\x2e\xf4\x34\xf3\xfd\x22\xcc\x25\x76\x8a\x44\x71\x1e\xba\xd0\xf6\x6d\xbb\x10\x96\x3f\xb5\x99\x87\xda\x6e\x36\xeb\xeb\x7e\x77\xd9\xdf\x6e\x27\xb2\x20\x98\xb5\x34\x0b\x8b\x45\x17\xc5\x2f\xda\x04\xda\xfa\x36\x68\x22\xea\x93\xc6\x07\x1a\xbf\x7d\x6b\x36\xed\xea\x53\xdf\xb8\xd3\x5f\x77\x9b\xfa\x45\xa9\x6d\xf3\xdb\x6f\x0f\x6c\xf9\xed\xb7\xd1\x93\xf6\x5c\xbf\xea\x9a\x3f\x4a\xa8\xdb\xe5\x44\x7d\x4f\xd8\x75\x12\x30\x5f\x17\x74\x31\x08\xce\x59\xa9\x4d\x1d\xe3\x43\x46\x0f\x5f\x29\xcb\x5f\x13\x5b\x76\xc3\xf7\xfa\x67\xed\x76\x39\x9f\x74\x9b\xf5\x4d\xb7\xfe\xb2\x9a\x7c\x59\x6f\xae\x2f\xd7\x57\xbd\x3d\xb9\xff\xce\x56\xf9\xde\xd9\xf3\xe3\xf2\x9f\x09\xf8\xbf\x01\x00\x00\xff\xff\x34\x35\x27\x7a\x37\x40\x00\x00") - -func web_uiIndexHtmlBytes() ([]byte, error) { - return bindataRead( - _web_uiIndexHtml, - "web_ui/index.html", - ) -} - -func web_uiIndexHtml() (*asset, error) { - bytes, err := web_uiIndexHtmlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/index.html", size: 16439, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiOidcCallback = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x91\xcd\x6a\xc3\x30\x10\x84\xef\x79\x8a\x6d\x2e\x71\xa0\xb5\xaf\x85\xc8\xb9\xb8\x2e\x94\x40\x7f\xfc\x73\xc8\xc9\x08\x7b\x6b\x0b\x64\x29\x95\xd6\x09\xa5\xf4\xdd\x8b\x91\xdc\xa6\xc4\xe4\x24\x2d\xa3\xf9\x76\x56\xcb\x6e\x1e\x5e\x92\x62\xff\x9a\x42\x47\xbd\xdc\x2e\x98\x3b\x00\x58\x87\xbc\x19\x2f\x00\xac\x47\xe2\x50\x77\xdc\x58\xa4\x78\x59\x16\x8f\x77\xf7\x4b\x2f\x91\x20\x89\xdb\x44\x2b\x3b\x48\x16\xb9\xca\x29\xb6\x36\xe2\x40\xae\x00\x38\x72\x03\x49\x99\x65\xe9\x73\x51\x65\xe9\x5b\x99\xe6\x45\xb5\x4b\xf7\x10\xc3\xaa\xaa\x48\x1b\x21\x2a\x83\x1f\x03\x5a\x5a\x6d\xce\x2c\x07\x54\x8d\x50\x6d\xe6\xa4\x1d\x7e\x42\x0c\x27\xa1\x1a\x7d\x0a\xa5\xae\xb9\xcc\x49\x1b\xde\x62\xd8\x22\x3d\x11\xf6\xc1\x4c\x8b\xf5\x66\xe1\x81\xe2\x1d\x82\x0b\xe0\x1a\xbe\xbc\x0c\xb3\x64\x83\xbd\x3e\xe2\x15\xf8\x64\x1e\xe3\x0e\x46\xfe\x0f\x48\x42\xab\x90\x74\x4e\x46\xa8\x36\x38\x7b\x3d\xd7\xca\xfa\x21\x2e\x32\xde\x8e\xe0\x5f\xf3\xf7\x34\x8f\x67\xd4\x52\x5b\x9c\xd8\x2c\xfa\xfb\x77\x16\xb9\x1d\xb2\xc8\x2d\xf5\x27\x00\x00\xff\xff\xd4\xee\xca\xe3\xec\x01\x00\x00") - -func web_uiOidcCallbackBytes() ([]byte, error) { - return bindataRead( - _web_uiOidcCallback, - "web_ui/oidc/callback", - ) -} - -func web_uiOidcCallback() (*asset, error) { - bytes, err := web_uiOidcCallbackBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/oidc/callback", size: 492, mode: os.FileMode(420), modTime: time.Unix(1645446280, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiRobotsTxt = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x52\x56\xc8\x28\x29\x29\xb0\xd2\xd7\x2f\x2f\x2f\xd7\x2b\xca\x4f\xca\x2f\x29\x2e\xa9\x28\xd1\xcb\x2f\x4a\xe7\x0a\x2d\x4e\x2d\xd2\x4d\x4c\x4f\xcd\x2b\xb1\x52\xd0\xe2\x72\xc9\x2c\x4e\xcc\xc9\xc9\x2f\xb7\x52\xd0\xe7\x02\x04\x00\x00\xff\xff\x62\x07\x43\x8a\x35\x00\x00\x00") - -func web_uiRobotsTxtBytes() ([]byte, error) { - return bindataRead( - _web_uiRobotsTxt, - "web_ui/robots.txt", - ) -} - -func web_uiRobotsTxt() (*asset, error) { - bytes, err := web_uiRobotsTxtBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/robots.txt", size: 53, mode: os.FileMode(420), modTime: time.Unix(1645446280, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _web_uiToriiRedirectHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x91\x4f\x4b\xc3\x40\x10\xc5\xef\xfd\x14\x63\x2f\x4d\x41\x93\xab\xd0\x4d\x41\x6a\x04\x29\x58\xcd\x9f\x43\x4f\x61\x49\xc6\x64\x61\x93\xad\x93\x49\x8b\x88\xdf\x5d\xc2\x6e\xb4\xd2\xd0\xd3\xee\xf2\xe6\xfd\xe6\xcd\x8e\xb8\x79\xdc\x6d\xd2\xfd\x6b\x04\x35\x37\x7a\x3d\x13\xf6\x00\x10\x35\xca\x72\xb8\x00\x88\x06\x59\x42\x51\x4b\xea\x90\xc3\x79\x96\x3e\xdd\xdd\xcf\x9d\xc4\x8a\x35\xae\x53\x43\x4a\xc1\xee\xa1\xe7\x1a\x62\x2c\x15\x61\xc1\x22\xb0\x9a\xad\xeb\x0a\x52\x07\xb6\x0f\x80\xa3\x24\xd8\x64\x71\x1c\xbd\xa4\x79\x1c\xbd\x65\x51\x92\xe6\xdb\x68\x0f\x21\x2c\xf2\x9c\x07\x58\x4e\xf8\xd1\x63\xc7\x8b\xd5\x99\xe5\x80\x6d\xa9\xda\x2a\xb6\xd2\x16\x3f\x21\x84\x93\x6a\x4b\x73\xf2\xb5\x29\xa4\x4e\xd8\x90\xac\xd0\xaf\x90\x9f\x19\x1b\x6f\xa2\xc5\x72\x35\x73\x40\xf5\x0e\xde\x05\x70\x09\x5f\x4e\x86\x49\x32\x61\x63\x8e\x78\x05\x3e\x9a\x87\xb8\x3d\xe9\xff\x01\x59\x99\xd6\x67\x93\x30\xa9\xb6\xf2\xce\xaa\xa7\x5a\x75\x6e\x88\x8b\x8c\xb7\x03\xf8\xd7\xfc\x3d\xce\xe3\x18\x85\x36\x1d\x8e\x6c\x11\xfc\xfd\xbb\x08\xec\x46\x45\x60\x57\xfc\x13\x00\x00\xff\xff\xe6\x06\x7f\x8f\xfa\x01\x00\x00") - -func web_uiToriiRedirectHtmlBytes() ([]byte, error) { - return bindataRead( - _web_uiToriiRedirectHtml, - "web_ui/torii/redirect.html", - ) -} - -func web_uiToriiRedirectHtml() (*asset, error) { - bytes, err := web_uiToriiRedirectHtmlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "web_ui/torii/redirect.html", size: 506, mode: os.FileMode(420), modTime: time.Unix(1645446356, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "web_ui/assets/apple-touch-icon-01cd4680782fbb5bc02301347df9903d.png": web_uiAssetsAppleTouchIcon01cd4680782fbb5bc02301347df9903dPng, - "web_ui/assets/codemirror/mode/javascript/javascript-77218cd1268ea6df75775114ae086566.js": web_uiAssetsCodemirrorModeJavascriptJavascript77218cd1268ea6df75775114ae086566Js, - "web_ui/assets/codemirror/mode/ruby/ruby-ea43ca3a3bdd63a52811e8464d66134b.js": web_uiAssetsCodemirrorModeRubyRubyEa43ca3a3bdd63a52811e8464d66134bJs, - "web_ui/assets/codemirror/mode/xml/xml-10ec8b8cc61ef0fbd25b27a599fdcd60.js": web_uiAssetsCodemirrorModeXmlXml10ec8b8cc61ef0fbd25b27a599fdcd60Js, - "web_ui/assets/codemirror/mode/yaml/yaml-3f129a000349e3075be0f65719884b61.js": web_uiAssetsCodemirrorModeYamlYaml3f129a000349e3075be0f65719884b61Js, - "web_ui/assets/consul-acls/routes-75a2ac7d38caf09cfee2a4e2bc49dcf7.js": web_uiAssetsConsulAclsRoutes75a2ac7d38caf09cfee2a4e2bc49dcf7Js, - "web_ui/assets/consul-acls/services-8b6b2b2bea3add7709b8075a5ed5652b.js": web_uiAssetsConsulAclsServices8b6b2b2bea3add7709b8075a5ed5652bJs, - "web_ui/assets/consul-nspaces/routes-f939ed42e9b83f9d1bbc5256be68e77c.js": web_uiAssetsConsulNspacesRoutesF939ed42e9b83f9d1bbc5256be68e77cJs, - "web_ui/assets/consul-nspaces/services-8b6b2b2bea3add7709b8075a5ed5652b.js": web_uiAssetsConsulNspacesServices8b6b2b2bea3add7709b8075a5ed5652bJs, - "web_ui/assets/consul-partitions/routes-cba490481425519435d142c743bbc3d3.js": web_uiAssetsConsulPartitionsRoutesCba490481425519435d142c743bbc3d3Js, - "web_ui/assets/consul-partitions/services-85621f245f195fe1ce177064bfb04504.js": web_uiAssetsConsulPartitionsServices85621f245f195fe1ce177064bfb04504Js, - "web_ui/assets/consul-ui/routes-7726cc49168b83dcd93c923c97ebe93d.js": web_uiAssetsConsulUiRoutes7726cc49168b83dcd93c923c97ebe93dJs, - "web_ui/assets/consul-ui/routes-debug-8f884a3e3f7105d43b7b4024db9b4c99.js": web_uiAssetsConsulUiRoutesDebug8f884a3e3f7105d43b7b4024db9b4c99Js, - "web_ui/assets/consul-ui/services-a17470cdfbd4a4096117ac0103802226.js": web_uiAssetsConsulUiServicesA17470cdfbd4a4096117ac0103802226Js, - "web_ui/assets/consul-ui/services-debug-5a3f1d2e3954a05aa8383f02db31b8e6.js": web_uiAssetsConsulUiServicesDebug5a3f1d2e3954a05aa8383f02db31b8e6Js, - "web_ui/assets/consul-ui-1931ddc38430fffd3fdb3a7ec5b01c18.css": web_uiAssetsConsulUi1931ddc38430fffd3fdb3a7ec5b01c18Css, - "web_ui/assets/consul-ui-60e32dd57229711d8752c463a9d423d3.js": web_uiAssetsConsulUi60e32dd57229711d8752c463a9d423d3Js, - "web_ui/assets/css.escape-851839b3ea1d0b4eb4c7089446df5e9f.js": web_uiAssetsCssEscape851839b3ea1d0b4eb4c7089446df5e9fJs, - "web_ui/assets/encoding-cdb50fbdab6d4d3fdf574dd784f77d27.js": web_uiAssetsEncodingCdb50fbdab6d4d3fdf574dd784f77d27Js, - "web_ui/assets/encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js": web_uiAssetsEncodingIndexes75eea16b259716db4fd162ee283d2ae5Js, - "web_ui/assets/favicon.ico": web_uiAssetsFaviconIco, - "web_ui/assets/favicon.svg": web_uiAssetsFaviconSvg, - "web_ui/assets/init-21ea65714d133467454b601efc15e2dd.js": web_uiAssetsInit21ea65714d133467454b601efc15e2ddJs, - "web_ui/assets/loading-cylon-pink.svg": web_uiAssetsLoadingCylonPinkSvg, - "web_ui/assets/metrics-providers/consul-31d7e3b0ef7c58d62338c7d7aeaaf545.js": web_uiAssetsMetricsProvidersConsul31d7e3b0ef7c58d62338c7d7aeaaf545Js, - "web_ui/assets/metrics-providers/prometheus-5f31ba3b7ffd850fa916a0a76933e968.js": web_uiAssetsMetricsProvidersPrometheus5f31ba3b7ffd850fa916a0a76933e968Js, - "web_ui/assets/vendor-69ef69e98b7d14d1513f8056b6c6b48d.css": web_uiAssetsVendor69ef69e98b7d14d1513f8056b6c6b48dCss, - "web_ui/assets/vendor-a8ab945788d03426b8cd1080cb42495f.js": web_uiAssetsVendorA8ab945788d03426b8cd1080cb42495fJs, - "web_ui/index.html": web_uiIndexHtml, - "web_ui/oidc/callback": web_uiOidcCallback, - "web_ui/robots.txt": web_uiRobotsTxt, - "web_ui/torii/redirect.html": web_uiToriiRedirectHtml, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "web_ui": &bintree{nil, map[string]*bintree{ - "assets": &bintree{nil, map[string]*bintree{ - "apple-touch-icon-01cd4680782fbb5bc02301347df9903d.png": &bintree{web_uiAssetsAppleTouchIcon01cd4680782fbb5bc02301347df9903dPng, map[string]*bintree{}}, - "codemirror": &bintree{nil, map[string]*bintree{ - "mode": &bintree{nil, map[string]*bintree{ - "javascript": &bintree{nil, map[string]*bintree{ - "javascript-77218cd1268ea6df75775114ae086566.js": &bintree{web_uiAssetsCodemirrorModeJavascriptJavascript77218cd1268ea6df75775114ae086566Js, map[string]*bintree{}}, - }}, - "ruby": &bintree{nil, map[string]*bintree{ - "ruby-ea43ca3a3bdd63a52811e8464d66134b.js": &bintree{web_uiAssetsCodemirrorModeRubyRubyEa43ca3a3bdd63a52811e8464d66134bJs, map[string]*bintree{}}, - }}, - "xml": &bintree{nil, map[string]*bintree{ - "xml-10ec8b8cc61ef0fbd25b27a599fdcd60.js": &bintree{web_uiAssetsCodemirrorModeXmlXml10ec8b8cc61ef0fbd25b27a599fdcd60Js, map[string]*bintree{}}, - }}, - "yaml": &bintree{nil, map[string]*bintree{ - "yaml-3f129a000349e3075be0f65719884b61.js": &bintree{web_uiAssetsCodemirrorModeYamlYaml3f129a000349e3075be0f65719884b61Js, map[string]*bintree{}}, - }}, - }}, - }}, - "consul-acls": &bintree{nil, map[string]*bintree{ - "routes-75a2ac7d38caf09cfee2a4e2bc49dcf7.js": &bintree{web_uiAssetsConsulAclsRoutes75a2ac7d38caf09cfee2a4e2bc49dcf7Js, map[string]*bintree{}}, - "services-8b6b2b2bea3add7709b8075a5ed5652b.js": &bintree{web_uiAssetsConsulAclsServices8b6b2b2bea3add7709b8075a5ed5652bJs, map[string]*bintree{}}, - }}, - "consul-nspaces": &bintree{nil, map[string]*bintree{ - "routes-f939ed42e9b83f9d1bbc5256be68e77c.js": &bintree{web_uiAssetsConsulNspacesRoutesF939ed42e9b83f9d1bbc5256be68e77cJs, map[string]*bintree{}}, - "services-8b6b2b2bea3add7709b8075a5ed5652b.js": &bintree{web_uiAssetsConsulNspacesServices8b6b2b2bea3add7709b8075a5ed5652bJs, map[string]*bintree{}}, - }}, - "consul-partitions": &bintree{nil, map[string]*bintree{ - "routes-cba490481425519435d142c743bbc3d3.js": &bintree{web_uiAssetsConsulPartitionsRoutesCba490481425519435d142c743bbc3d3Js, map[string]*bintree{}}, - "services-85621f245f195fe1ce177064bfb04504.js": &bintree{web_uiAssetsConsulPartitionsServices85621f245f195fe1ce177064bfb04504Js, map[string]*bintree{}}, - }}, - "consul-ui": &bintree{nil, map[string]*bintree{ - "routes-7726cc49168b83dcd93c923c97ebe93d.js": &bintree{web_uiAssetsConsulUiRoutes7726cc49168b83dcd93c923c97ebe93dJs, map[string]*bintree{}}, - "routes-debug-8f884a3e3f7105d43b7b4024db9b4c99.js": &bintree{web_uiAssetsConsulUiRoutesDebug8f884a3e3f7105d43b7b4024db9b4c99Js, map[string]*bintree{}}, - "services-a17470cdfbd4a4096117ac0103802226.js": &bintree{web_uiAssetsConsulUiServicesA17470cdfbd4a4096117ac0103802226Js, map[string]*bintree{}}, - "services-debug-5a3f1d2e3954a05aa8383f02db31b8e6.js": &bintree{web_uiAssetsConsulUiServicesDebug5a3f1d2e3954a05aa8383f02db31b8e6Js, map[string]*bintree{}}, - }}, - "consul-ui-1931ddc38430fffd3fdb3a7ec5b01c18.css": &bintree{web_uiAssetsConsulUi1931ddc38430fffd3fdb3a7ec5b01c18Css, map[string]*bintree{}}, - "consul-ui-60e32dd57229711d8752c463a9d423d3.js": &bintree{web_uiAssetsConsulUi60e32dd57229711d8752c463a9d423d3Js, map[string]*bintree{}}, - "css.escape-851839b3ea1d0b4eb4c7089446df5e9f.js": &bintree{web_uiAssetsCssEscape851839b3ea1d0b4eb4c7089446df5e9fJs, map[string]*bintree{}}, - "encoding-cdb50fbdab6d4d3fdf574dd784f77d27.js": &bintree{web_uiAssetsEncodingCdb50fbdab6d4d3fdf574dd784f77d27Js, map[string]*bintree{}}, - "encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js": &bintree{web_uiAssetsEncodingIndexes75eea16b259716db4fd162ee283d2ae5Js, map[string]*bintree{}}, - "favicon.ico": &bintree{web_uiAssetsFaviconIco, map[string]*bintree{}}, - "favicon.svg": &bintree{web_uiAssetsFaviconSvg, map[string]*bintree{}}, - "init-21ea65714d133467454b601efc15e2dd.js": &bintree{web_uiAssetsInit21ea65714d133467454b601efc15e2ddJs, map[string]*bintree{}}, - "loading-cylon-pink.svg": &bintree{web_uiAssetsLoadingCylonPinkSvg, map[string]*bintree{}}, - "metrics-providers": &bintree{nil, map[string]*bintree{ - "consul-31d7e3b0ef7c58d62338c7d7aeaaf545.js": &bintree{web_uiAssetsMetricsProvidersConsul31d7e3b0ef7c58d62338c7d7aeaaf545Js, map[string]*bintree{}}, - "prometheus-5f31ba3b7ffd850fa916a0a76933e968.js": &bintree{web_uiAssetsMetricsProvidersPrometheus5f31ba3b7ffd850fa916a0a76933e968Js, map[string]*bintree{}}, - }}, - "vendor-69ef69e98b7d14d1513f8056b6c6b48d.css": &bintree{web_uiAssetsVendor69ef69e98b7d14d1513f8056b6c6b48dCss, map[string]*bintree{}}, - "vendor-a8ab945788d03426b8cd1080cb42495f.js": &bintree{web_uiAssetsVendorA8ab945788d03426b8cd1080cb42495fJs, map[string]*bintree{}}, - }}, - "index.html": &bintree{web_uiIndexHtml, map[string]*bintree{}}, - "oidc": &bintree{nil, map[string]*bintree{ - "callback": &bintree{web_uiOidcCallback, map[string]*bintree{}}, - }}, - "robots.txt": &bintree{web_uiRobotsTxt, map[string]*bintree{}}, - "torii": &bintree{nil, map[string]*bintree{ - "redirect.html": &bintree{web_uiToriiRedirectHtml, map[string]*bintree{}}, - }}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) - if err != nil { - return err - } - return nil -} - -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} - -func assetFS() *assetfs.AssetFS { - for k := range _bintree.Children { - return &assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, AssetInfo: AssetInfo, Prefix: k} - } - panic("unreachable") -} diff --git a/agent/uiserver/buf_index_fs.go b/agent/uiserver/buf_index_fs.go index 48c86af872..71066d8722 100644 --- a/agent/uiserver/buf_index_fs.go +++ b/agent/uiserver/buf_index_fs.go @@ -1,21 +1,19 @@ package uiserver import ( - "net/http" - "os" + "io/fs" ) -// bufIndexFS is an implementation of http.FS that intercepts requests for +// bufIndexFS is an implementation of fs.FS that intercepts requests for // the index.html file and returns a pre-rendered file from memory. type bufIndexFS struct { - fs http.FileSystem - indexRendered []byte - indexInfo os.FileInfo + fs fs.FS + bufIndex fs.File } -func (fs *bufIndexFS) Open(name string) (http.File, error) { - if name == "/index.html" { - return newBufferedFile(fs.indexRendered, fs.indexInfo), nil +func (fs *bufIndexFS) Open(name string) (fs.File, error) { + if name == "index.html" { + return fs.bufIndex, nil } return fs.fs.Open(name) } diff --git a/agent/uiserver/buffered_file.go b/agent/uiserver/buffered_file.go index 13aa84e030..f5ebf0cf55 100644 --- a/agent/uiserver/buffered_file.go +++ b/agent/uiserver/buffered_file.go @@ -2,66 +2,60 @@ package uiserver import ( "bytes" - "errors" + "io/fs" "os" "time" ) -// bufferedFile implements http.File and allows us to modify a file from disk by +// bufferedFile implements fs.File and allows us to modify a file from disk by // writing out the new version into a buffer and then serving file reads from // that. type bufferedFile struct { - buf *bytes.Reader - info os.FileInfo + buf *bytes.Buffer + info fs.FileInfo } -func newBufferedFile(buf []byte, info os.FileInfo) *bufferedFile { +var _ fs.FileInfo = (*bufferedFile)(nil) + +func newBufferedFile(buf *bytes.Buffer, info fs.FileInfo) *bufferedFile { return &bufferedFile{ - buf: bytes.NewReader(buf), + buf: buf, info: info, } } -func (t *bufferedFile) Read(p []byte) (n int, err error) { - return t.buf.Read(p) +func (b *bufferedFile) Stat() (fs.FileInfo, error) { + return b, nil } -func (t *bufferedFile) Seek(offset int64, whence int) (int64, error) { - return t.buf.Seek(offset, whence) +func (b *bufferedFile) Read(bytes []byte) (int, error) { + return b.buf.Read(bytes) } -func (t *bufferedFile) Close() error { +func (b *bufferedFile) Close() error { return nil } -func (t *bufferedFile) Readdir(count int) ([]os.FileInfo, error) { - return nil, errors.New("not a directory") +func (b *bufferedFile) Name() string { + return b.info.Name() } -func (t *bufferedFile) Stat() (os.FileInfo, error) { - return t, nil +func (b *bufferedFile) Size() int64 { + return int64(b.buf.Len()) } -func (t *bufferedFile) Name() string { - return t.info.Name() +func (b *bufferedFile) Mode() os.FileMode { + return b.info.Mode() } -func (t *bufferedFile) Size() int64 { - return int64(t.buf.Len()) +func (b *bufferedFile) ModTime() time.Time { + return b.info.ModTime() } -func (t *bufferedFile) Mode() os.FileMode { - return t.info.Mode() -} - -func (t *bufferedFile) ModTime() time.Time { - return t.info.ModTime() -} - -func (t *bufferedFile) IsDir() bool { +func (b *bufferedFile) IsDir() bool { return false } -func (t *bufferedFile) Sys() interface{} { +func (b *bufferedFile) Sys() any { return nil } diff --git a/agent/uiserver/dist/assets/apple-touch-icon-01cd4680782fbb5bc02301347df9903d.png b/agent/uiserver/dist/assets/apple-touch-icon-01cd4680782fbb5bc02301347df9903d.png new file mode 100644 index 0000000000..792607d847 Binary files /dev/null and b/agent/uiserver/dist/assets/apple-touch-icon-01cd4680782fbb5bc02301347df9903d.png differ diff --git a/agent/uiserver/dist/assets/codemirror/mode/javascript/javascript-77218cd1268ea6df75775114ae086566.js b/agent/uiserver/dist/assets/codemirror/mode/javascript/javascript-77218cd1268ea6df75775114ae086566.js new file mode 100644 index 0000000000..7d25301561 --- /dev/null +++ b/agent/uiserver/dist/assets/codemirror/mode/javascript/javascript-77218cd1268ea6df75775114ae086566.js @@ -0,0 +1,138 @@ +var jsonlint=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(e,t,r,n,i,a){var s=a.length-1 +switch(i){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b") +break +case 2:this.$=Number(e) +break +case 3:this.$=null +break +case 4:this.$=!0 +break +case 5:this.$=!1 +break +case 6:return this.$=a[s-1] +case 13:this.$={} +break +case 14:this.$=a[s-1] +break +case 15:this.$=[a[s-2],a[s]] +break +case 16:this.$={},this.$[a[s][0]]=a[s][1] +break +case 17:this.$=a[s-2],a[s-2][a[s][0]]=a[s][1] +break +case 18:this.$=[] +break +case 19:this.$=a[s-1] +break +case 20:this.$=[a[s]] +break +case 21:this.$=a[s-2],a[s-2].push(a[s])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e){throw new Error(e)},parse:function(e){var t=this,r=[0],n=[null],i=[],a=this.table,s="",o=0,l=0,c=0 +this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={}) +var u=this.lexer.yylloc +function f(){var e +return"number"!=typeof(e=t.lexer.lex()||1)&&(e=t.symbols_[e]||e),e}i.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError) +for(var h,p,d,y,m,v,g,b,x,k,w={};;){if(d=r[r.length-1],this.defaultActions[d]?y=this.defaultActions[d]:(null==h&&(h=f()),y=a[d]&&a[d][h]),void 0===y||!y.length||!y[0]){if(!c){for(v in x=[],a[d])this.terminals_[v]&&v>2&&x.push("'"+this.terminals_[v]+"'") +var _="" +_=this.lexer.showPosition?"Parse error on line "+(o+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[h]+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==h?"end of input":"'"+(this.terminals_[h]||h)+"'"),this.parseError(_,{text:this.lexer.match,token:this.terminals_[h]||h,line:this.lexer.yylineno,loc:u,expected:x})}if(3==c){if(1==h)throw new Error(_||"Parsing halted.") +l=this.lexer.yyleng,s=this.lexer.yytext,o=this.lexer.yylineno,u=this.lexer.yylloc,h=f()}for(;!(2..toString()in a[d]);){if(0==d)throw new Error(_||"Parsing halted.") +k=1,r.length=r.length-2*k,n.length=n.length-k,i.length=i.length-k,d=r[r.length-1]}p=h,h=2,y=a[d=r[r.length-1]]&&a[d][2],c=3}if(y[0]instanceof Array&&y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+d+", token: "+h) +switch(y[0]){case 1:r.push(h),n.push(this.lexer.yytext),i.push(this.lexer.yylloc),r.push(y[1]),h=null,p?(h=p,p=null):(l=this.lexer.yyleng,s=this.lexer.yytext,o=this.lexer.yylineno,u=this.lexer.yylloc,c>0&&c--) +break +case 2:if(g=this.productions_[y[1]][1],w.$=n[n.length-g],w._$={first_line:i[i.length-(g||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(g||1)].first_column,last_column:i[i.length-1].last_column},void 0!==(m=this.performAction.call(w,s,l,o,this.yy,y[1],n,i)))return m +g&&(r=r.slice(0,-1*g*2),n=n.slice(0,-1*g),i=i.slice(0,-1*g)),r.push(this.productions_[y[1]][0]),n.push(w.$),i.push(w._$),b=a[r[r.length-2]][r[r.length-1]],r.push(b) +break +case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e) +this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0] +return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length) +return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match +return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-") +return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF +var e,t,r,n,i +this._input||(this.done=!0),this._more||(this.yytext="",this.match="") +for(var a=this._currentRules(),s=0;st[0].length)||(t=r,n=s,this.options.flex));s++);return t?((i=t[0].match(/\n.*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,a[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next() +return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)},options:{},performAction:function(e,t,r){switch(r){case 0:break +case 1:return 6 +case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4 +case 3:return 17 +case 4:return 18 +case 5:return 23 +case 6:return 24 +case 7:return 22 +case 8:return 21 +case 9:return 10 +case 10:return 11 +case 11:return 8 +case 12:return 14 +case 13:return"INVALID"}},rules:[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}} +return e}() +return e.lexer=t,e}() +"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=jsonlint,exports.parse=function(){return jsonlint.parse.apply(jsonlint,arguments)},exports.main=function(e){if(!e[1])throw new Error("Usage: "+e[0]+" FILE") +if("undefined"!=typeof process)var t=require("fs").readFileSync(require("path").join(process.cwd(),e[1]),"utf8") +else t=require("file").path(require("file").cwd()).join(e[1]).read({charset:"utf-8"}) +return exports.parser.parse(t)},"undefined"!=typeof module&&require.main===module&&exports.main("undefined"!=typeof process?process.argv.slice(1):require("system").args)),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}((function(e){"use strict" +function t(e,t,r){return/^(?:operator|sof|keyword c|case|new|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}e.defineMode("javascript",(function(r,n){var i,a,s=r.indentUnit,o=n.statementIndent,l=n.jsonld,c=n.json||l,u=n.typescript,f=n.wordCharacters||/[\w$\xa1-\uffff]/,h=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("operator"),a={type:"atom",style:"atom"},s={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:n,break:n,continue:n,new:e("new"),delete:n,throw:n,debugger:n,var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:i,typeof:i,instanceof:i,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n,async:e("async")} +if(u){var o={type:"variable",style:"variable-3"},l={interface:e("class"),implements:n,namespace:n,module:e("module"),enum:e("module"),public:e("modifier"),private:e("modifier"),protected:e("modifier"),abstract:e("modifier"),as:i,string:o,number:o,boolean:o,any:o} +for(var c in l)s[c]=l[c]}return s}(),p=/[+\-*&%=<>!?|~^]/,d=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/ +function y(e,t,r){return i=e,a=r,t}function m(e,r){var n,i=e.next() +if('"'==i||"'"==i)return r.tokenize=(n=i,function(e,t){var r,i=!1 +if(l&&"@"==e.peek()&&e.match(d))return t.tokenize=m,y("jsonld-keyword","meta") +for(;null!=(r=e.next())&&(r!=n||i);)i=!i&&"\\"==r +return i||(t.tokenize=m),y("string","string")}),r.tokenize(e,r) +if("."==i&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return y("number","number") +if("."==i&&e.match(".."))return y("spread","meta") +if(/[\[\]{}\(\),;\:\.]/.test(i))return y(i) +if("="==i&&e.eat(">"))return y("=>","operator") +if("0"==i&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),y("number","number") +if("0"==i&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),y("number","number") +if("0"==i&&e.eat(/b/i))return e.eatWhile(/[01]/i),y("number","number") +if(/\d/.test(i))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),y("number","number") +if("/"==i)return e.eat("*")?(r.tokenize=v,v(e,r)):e.eat("/")?(e.skipToEnd(),y("comment","comment")):t(e,r,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return +"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),y("regexp","string-2")):(e.eatWhile(p),y("operator","operator",e.current())) +if("`"==i)return r.tokenize=g,g(e,r) +if("#"==i)return e.skipToEnd(),y("error","error") +if(p.test(i))return e.eatWhile(p),y("operator","operator",e.current()) +if(f.test(i)){e.eatWhile(f) +var a=e.current(),s=h.propertyIsEnumerable(a)&&h[a] +return s&&"."!=r.lastType?y(s.type,s.style,a):y("variable","variable",a)}}function v(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=m +break}n="*"==r}return y("comment","comment")}function g(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=m +break}n=!n&&"\\"==r}return y("quasi","string-2",e.current())}function b(e,t){t.fatArrowAt&&(t.fatArrowAt=null) +var r=e.string.indexOf("=>",e.start) +if(!(r<0)){for(var n=0,i=!1,a=r-1;a>=0;--a){var s=e.string.charAt(a),o="([{}])".indexOf(s) +if(o>=0&&o<3){if(!n){++a +break}if(0==--n)break}else if(o>=3&&o<6)++n +else if(f.test(s))i=!0 +else{if(/["'\/]/.test(s))return +if(i&&!n){++a +break}}}i&&!n&&(t.fatArrowAt=a)}}var x={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0} +function k(e,t,r,n,i,a){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=a,null!=n&&(this.align=n)}function w(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0 +for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}var _={state:null,column:null,marked:null,cc:null} +function E(){for(var e=arguments.length-1;e>=0;e--)_.cc.push(arguments[e])}function j(){return E.apply(null,arguments),!0}function S(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0 +return!1}var r=_.state +if(_.marked="def",r.context){if(t(r.localVars))return +r.localVars={name:e,next:r.localVars}}else{if(t(r.globalVars))return +n.globalVars&&(r.globalVars={name:e,next:r.globalVars})}}var I={name:"this",next:{name:"arguments"}} +function $(){_.state.context={prev:_.state.context,vars:_.state.localVars},_.state.localVars=I}function A(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}function M(e,t){var r=function(){var r=_.state,n=r.indented +if("stat"==r.lexical.type)n=r.lexical.indented +else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented +r.lexical=new k(n,_.stream.column(),e,null,r.lexical,t)} +return r.lex=!0,r}function N(){var e=_.state +e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function O(e){return function t(r){return r==e?j():";"==e?E():j(t)}}function V(e,t){return"var"==e?j(M("vardef",t.length),ae,O(";"),N):"keyword a"==e?j(M("form"),T,V,N):"keyword b"==e?j(M("form"),V,N):"{"==e?j(M("}"),ee,N):";"==e?j():"if"==e?("else"==_.state.lexical.info&&_.state.cc[_.state.cc.length-1]==N&&_.state.cc.pop()(),j(M("form"),T,V,N,ue)):"function"==e?j(me):"for"==e?j(M("form"),fe,V,N):"variable"==e?j(M("stat"),D):"switch"==e?j(M("form"),T,M("}","switch"),O("{"),ee,N,N):"case"==e?j(T,O(":")):"default"==e?j(O(":")):"catch"==e?j(M("form"),$,O("("),ve,O(")"),V,N,A):"class"==e?j(M("form"),ge,N):"export"==e?j(M("stat"),we,N):"import"==e?j(M("stat"),_e,N):"module"==e?j(M("form"),se,M("}"),O("{"),ee,N,N):"async"==e?j(V):E(M("stat"),T,O(";"),N)}function T(e){return L(e,!1)}function z(e){return L(e,!0)}function L(e,t){if(_.state.fatArrowAt==_.stream.start){var r=t?W:C +if("("==e)return j($,M(")"),Y(se,")"),N,O("=>"),r,A) +if("variable"==e)return E($,se,O("=>"),r,A)}var n=t?F:J +return x.hasOwnProperty(e)?j(n):"function"==e?j(me,n):"keyword c"==e?j(t?P:q):"("==e?j(M(")"),q,Ae,O(")"),N,n):"operator"==e||"spread"==e?j(t?z:T):"["==e?j(M("]"),Ie,N,n):"{"==e?Z(K,"}",null,n):"quasi"==e?E(U,n):"new"==e?j(function(e){return function(t){return"."==t?j(e?G:B):E(e?z:T)}}(t)):j()}function q(e){return e.match(/[;\}\)\],]/)?E():E(T)}function P(e){return e.match(/[;\}\)\],]/)?E():E(z)}function J(e,t){return","==e?j(T):F(e,t,!1)}function F(e,t,r){var n=0==r?J:F,i=0==r?T:z +return"=>"==e?j($,r?W:C,A):"operator"==e?/\+\+|--/.test(t)?j(n):"?"==t?j(T,O(":"),i):j(i):"quasi"==e?E(U,n):";"!=e?"("==e?Z(z,")","call",n):"."==e?j(H,n):"["==e?j(M("]"),q,O("]"),N,n):void 0:void 0}function U(e,t){return"quasi"!=e?E():"${"!=t.slice(t.length-2)?j(U):j(T,R)}function R(e){if("}"==e)return _.marked="string-2",_.state.tokenize=g,j(U)}function C(e){return b(_.stream,_.state),E("{"==e?V:T)}function W(e){return b(_.stream,_.state),E("{"==e?V:z)}function B(e,t){if("target"==t)return _.marked="keyword",j(J)}function G(e,t){if("target"==t)return _.marked="keyword",j(F)}function D(e){return":"==e?j(N,V):E(J,O(";"),N)}function H(e){if("variable"==e)return _.marked="property",j()}function K(e,t){return"variable"==e||"keyword"==_.style?(_.marked="property",j("get"==t||"set"==t?Q:X)):"number"==e||"string"==e?(_.marked=l?"property":_.style+" property",j(X)):"jsonld-keyword"==e?j(X):"modifier"==e?j(K):"["==e?j(T,O("]"),X):"spread"==e?j(T):void 0}function Q(e){return"variable"!=e?E(X):(_.marked="property",j(me))}function X(e){return":"==e?j(z):"("==e?E(me):void 0}function Y(e,t){function r(n,i){if(","==n){var a=_.state.lexical +return"call"==a.info&&(a.pos=(a.pos||0)+1),j(e,r)}return n==t||i==t?j():j(O(t))}return function(n,i){return n==t||i==t?j():E(e,r)}}function Z(e,t,r){for(var n=3;n"),ie):"["==e?j(O("]"),ie):void 0}function ae(){return E(se,te,le,ce)}function se(e,t){return"modifier"==e?j(se):"variable"==e?(S(t),j()):"spread"==e?j(se):"["==e?Z(se,"]"):"{"==e?Z(oe,"}"):void 0}function oe(e,t){return"variable"!=e||_.stream.match(/^\s*:/,!1)?("variable"==e&&(_.marked="property"),"spread"==e?j(se):"}"==e?E():j(O(":"),se,le)):(S(t),j(le))}function le(e,t){if("="==t)return j(z)}function ce(e){if(","==e)return j(ae)}function ue(e,t){if("keyword b"==e&&"else"==t)return j(M("form","else"),V,N)}function fe(e){if("("==e)return j(M(")"),he,O(")"),N)}function he(e){return"var"==e?j(ae,O(";"),de):";"==e?j(de):"variable"==e?j(pe):E(T,O(";"),de)}function pe(e,t){return"in"==t||"of"==t?(_.marked="keyword",j(T)):j(J,de)}function de(e,t){return";"==e?j(ye):"in"==t||"of"==t?(_.marked="keyword",j(T)):E(T,O(";"),ye)}function ye(e){")"!=e&&j(T)}function me(e,t){return"*"==t?(_.marked="keyword",j(me)):"variable"==e?(S(t),j(me)):"("==e?j($,M(")"),Y(ve,")"),N,te,V,A):void 0}function ve(e){return"spread"==e?j(ve):E(se,te,re)}function ge(e,t){if("variable"==e)return S(t),j(be)}function be(e,t){return"extends"==t?j(T,be):"{"==e?j(M("}"),xe,N):void 0}function xe(e,t){return"variable"==e||"keyword"==_.style?"static"==t?(_.marked="keyword",j(xe)):(_.marked="property","get"==t||"set"==t?j(ke,me,xe):j(me,xe)):"*"==t?(_.marked="keyword",j(xe)):";"==e?j(xe):"}"==e?j():void 0}function ke(e){return"variable"!=e?E():(_.marked="property",j())}function we(e,t){return"*"==t?(_.marked="keyword",j(Se,O(";"))):"default"==t?(_.marked="keyword",j(T,O(";"))):E(V)}function _e(e){return"string"==e?j():E(Ee,Se)}function Ee(e,t){return"{"==e?Z(Ee,"}"):("variable"==e&&S(t),"*"==t&&(_.marked="keyword"),j(je))}function je(e,t){if("as"==t)return _.marked="keyword",j(Ee)}function Se(e,t){if("from"==t)return _.marked="keyword",j(T)}function Ie(e){return"]"==e?j():E(z,$e)}function $e(e){return"for"==e?E(Ae,O("]")):","==e?j(Y(P,"]")):E(Y(z,"]"))}function Ae(e){return"for"==e?j(fe,Ae):"if"==e?j(T,Ae):void 0}return N.lex=!0,{startState:function(e){var t={tokenize:m,lastType:"sof",cc:[],lexical:new k((e||0)-s,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:e||0} +return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),b(e,t)),t.tokenize!=v&&e.eatSpace())return null +var r=t.tokenize(e,t) +return"comment"==i?r:(t.lastType="operator"!=i||"++"!=a&&"--"!=a?i:"incdec",function(e,t,r,n,i){var a=e.cc +for(_.state=e,_.stream=i,_.marked=null,_.cc=a,_.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){if((a.length?a.pop():c?T:V)(r,n)){for(;a.length&&a[a.length-1].lex;)a.pop()() +return _.marked?_.marked:"variable"==r&&w(e,n)?"variable-2":t}}}(t,r,i,a,e))},indent:function(t,r){if(t.tokenize==v)return e.Pass +if(t.tokenize!=m)return 0 +var i=r&&r.charAt(0),a=t.lexical +if(!/^\s*else\b/.test(r))for(var l=t.cc.length-1;l>=0;--l){var c=t.cc[l] +if(c==N)a=a.prev +else if(c!=ue)break}"stat"==a.type&&"}"==i&&(a=a.prev),o&&")"==a.type&&"stat"==a.prev.type&&(a=a.prev) +var u=a.type,f=i==u +return"vardef"==u?a.indented+("operator"==t.lastType||","==t.lastType?a.info+1:0):"form"==u&&"{"==i?a.indented:"form"==u?a.indented+s:"stat"==u?a.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||p.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,r)?o||s:0):"switch"!=a.info||f||0==n.doubleIndentSwitch?a.align?a.column+(f?0:1):a.indented+(f?0:s):a.indented+(/^(?:case|default)\b/.test(r)?s:2*s)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:c?null:"/*",blockCommentEnd:c?null:"*/",lineComment:c?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:c?"json":"javascript",jsonldMode:l,jsonMode:c,expressionAllowed:t,skipExpression:function(e){var t=e.cc[e.cc.length-1] +t!=T&&t!=z||e.cc.pop()}}})),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})) diff --git a/agent/uiserver/dist/assets/codemirror/mode/ruby/ruby-ea43ca3a3bdd63a52811e8464d66134b.js b/agent/uiserver/dist/assets/codemirror/mode/ruby/ruby-ea43ca3a3bdd63a52811e8464d66134b.js new file mode 100644 index 0000000000..892501d8ec --- /dev/null +++ b/agent/uiserver/dist/assets/codemirror/mode/ruby/ruby-ea43ca3a3bdd63a52811e8464d66134b.js @@ -0,0 +1,38 @@ +(function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})((function(e){"use strict" +e.defineMode("ruby",(function(e){function t(e){for(var t={},n=0,r=e.length;n]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator" +if("@"==o&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"variable-2" +if("$"==o)return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variable-3" +if(/[a-zA-Z_\xa1-\uffff]/.test(o))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"ident" +if("|"!=o||!t.varList&&"{"!=t.lastTok&&"do"!=t.lastTok){if(/[\(\)\[\]{}\\;]/.test(o))return n=o,null +if("-"==o&&e.eat(">"))return"arrow" +if(/[=+\-\/*:\.^%<>~|]/.test(o)){var x=e.eatWhile(/[=+\-\/*:\.^%<>~|]/) +return"."!=o||x||(n="."),"operator"}return null}return n="|",null}function l(e){return e||(e=1),function(t,n){if("}"==t.peek()){if(1==e)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n) +n.tokenize[n.tokenize.length-1]=l(e-1)}else"{"==t.peek()&&(n.tokenize[n.tokenize.length-1]=l(e+1)) +return f(t,n)}}function d(){var e=!1 +return function(t,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)):(e=!0,f(t,n))}}function c(e,t,n,r){return function(i,o){var a,u=!1 +for("read-quoted-paused"===o.context.type&&(o.context=o.context.prev,i.eat("}"));null!=(a=i.next());){if(a==e&&(r||!u)){o.tokenize.pop() +break}if(n&&"#"==a&&!u){if(i.eat("{")){"}"==e&&(o.context={prev:o.context,type:"read-quoted-paused"}),o.tokenize.push(l()) +break}if(/[@\$]/.test(i.peek())){o.tokenize.push(d()) +break}}u=!u&&"\\"==a}return t}}function s(e,t){return e.sol()&&e.match("=end")&&e.eol()&&t.tokenize.pop(),e.skipToEnd(),"comment"}return{startState:function(){return{tokenize:[f],indented:0,context:{type:"top",indented:-e.indentUnit},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,t){n=null,e.sol()&&(t.indented=e.indentation()) +var a,u=t.tokenize[t.tokenize.length-1](e,t),f=n +if("ident"==u){var l=e.current() +"keyword"==(u="."==t.lastTok?"property":r.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(l)?"tag":"def"==t.lastTok||"class"==t.lastTok||t.varList?"def":"variable")&&(f=l,i.propertyIsEnumerable(l)?a="indent":o.propertyIsEnumerable(l)?a="dedent":"if"!=l&&"unless"!=l||e.column()!=e.indentation()?"do"==l&&t.context.indented")):null:t.match("--")?n(m("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(function t(e){return function(n,r){for(var o;null!=(o=n.next());){if("<"==o)return r.tokenize=t(e+1),r.tokenize(n,r) +if(">"==o){if(1==e){r.tokenize=s +break}return r.tokenize=t(e-1),r.tokenize(n,r)}}return"meta"}}(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=m("meta","?>"),"meta"):(a=t.eat("/")?"closeTag":"openTag",e.tokenize=f,"tag bracket"):"&"==r?(t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"))?"atom":"error":(t.eatWhile(/[^&<]/),null)}function f(t,e){var n,r,o=t.next() +if(">"==o||"/"==o&&t.eat(">"))return e.tokenize=s,a=">"==o?"endTag":"selfcloseTag","tag bracket" +if("="==o)return a="equals",null +if("<"==o){e.tokenize=s,e.state=x,e.tagName=e.tagStart=null +var i=e.tokenize(t,e) +return i?i+" tag error":"tag error"}return/[\'\"]/.test(o)?(e.tokenize=(n=o,(r=function(t,e){for(;!t.eol();)if(t.next()==n){e.tokenize=f +break}return"string"}).isInAttribute=!0,r),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function m(t,e){return function(n,r){for(;!n.eol();){if(n.match(e)){r.tokenize=s +break}n.next()}return t}}function g(t,e,n){this.prev=t.context,this.tagName=e,this.indent=t.indented,this.startOfLine=n,(u.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function p(t){t.context&&(t.context=t.context.prev)}function h(t,e){for(var n;;){if(!t.context)return +if(n=t.context.tagName,!u.contextGrabbers.hasOwnProperty(n)||!u.contextGrabbers[n].hasOwnProperty(e))return +p(t)}}function x(t,e,n){return"openTag"==t?(n.tagStart=e.column(),b):"closeTag"==t?k:x}function b(t,e,n){return"word"==t?(n.tagName=e.current(),i="tag",y):(i="error",b)}function k(t,e,n){if("word"==t){var r=e.current() +return n.context&&n.context.tagName!=r&&u.implicitlyClosed.hasOwnProperty(n.context.tagName)&&p(n),n.context&&n.context.tagName==r||!1===u.matchClosing?(i="tag",w):(i="tag error",v)}return i="error",v}function w(t,e,n){return"endTag"!=t?(i="error",w):(p(n),x)}function v(t,e,n){return i="error",w(t,0,n)}function y(t,e,n){if("word"==t)return i="attribute",z +if("endTag"==t||"selfcloseTag"==t){var r=n.tagName,o=n.tagStart +return n.tagName=n.tagStart=null,"selfcloseTag"==t||u.autoSelfClosers.hasOwnProperty(r)?h(n,r):(h(n,r),n.context=new g(n,r,o==n.indented)),x}return i="error",y}function z(t,e,n){return"equals"==t?N:(u.allowMissing||(i="error"),y(t,0,n))}function N(t,e,n){return"string"==t?T:"word"==t&&u.allowUnquoted?(i="string",y):(i="error",y(t,0,n))}function T(t,e,n){return"string"==t?T:y(t,0,n)}return s.isInText=!0,{startState:function(t){var e={tokenize:s,state:x,indented:t||0,tagName:null,tagStart:null,context:null} +return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null +a=null +var n=e.tokenize(t,e) +return(n||a)&&"comment"!=n&&(i=null,e.state=e.state(a||n,t,e),i&&(n="error"==i?n+" error":i)),n},indent:function(e,n,r){var o=e.context +if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+l +if(o&&o.noIndent)return t.Pass +if(e.tokenize!=f&&e.tokenize!=s)return r?r.match(/^(\s*)/)[0].length:0 +if(e.tagName)return!1!==u.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+l*(u.multilineTagIndentFactor||1) +if(u.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:u.htmlMode?"html":"xml",helperType:u.htmlMode?"html":"xml",skipAttribute:function(t){t.state==N&&(t.state=y)}}})),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})})) diff --git a/agent/uiserver/dist/assets/codemirror/mode/yaml/yaml-3f129a000349e3075be0f65719884b61.js b/agent/uiserver/dist/assets/codemirror/mode/yaml/yaml-3f129a000349e3075be0f65719884b61.js new file mode 100644 index 0000000000..b01cbab241 --- /dev/null +++ b/agent/uiserver/dist/assets/codemirror/mode/yaml/yaml-3f129a000349e3075be0f65719884b61.js @@ -0,0 +1,276 @@ +/*! js-yaml 4.0.0 https://github.com/nodeca/js-yaml @license MIT */ +(function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).jsyaml={})})(this,(function(e){"use strict" +function t(e){return null==e}var n={isNothing:t,isObject:function(e){return"object"==typeof e&&null!==e},toArray:function(e){return Array.isArray(e)?e:t(e)?[]:[e]},repeat:function(e,t){var n,i="" +for(n=0;nl&&(t=i-l+(o=" ... ").length),n-i>l&&(n=i+l-(a=" ...").length),{str:o+e.slice(t,n).replace(/\t/g,"→")+a,pos:i-t+o.length}}function l(e,t){return n.repeat(" ",t-e.length)+e}var c=function(e,t){if(t=Object.create(t||null),!e.buffer)return null +t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2) +for(var i,r=/\r?\n|\r|\0/g,o=[0],c=[],s=-1;i=r.exec(e.buffer);)c.push(i.index),o.push(i.index+i[0].length),e.position<=i.index&&s<0&&(s=o.length-2) +s<0&&(s=o.length-1) +var u,p,f="",d=Math.min(e.line+t.linesAfter,c.length).toString().length,h=t.maxLength-(t.indent+d+3) +for(u=1;u<=t.linesBefore&&!(s-u<0);u++)p=a(e.buffer,o[s-u],c[s-u],e.position-(o[s]-o[s-u]),h),f=n.repeat(" ",t.indent)+l((e.line-u+1).toString(),d)+" | "+p.str+"\n"+f +for(p=a(e.buffer,o[s],c[s],e.position,h),f+=n.repeat(" ",t.indent)+l((e.line+1).toString(),d)+" | "+p.str+"\n",f+=n.repeat("-",t.indent+d+3+p.pos)+"^\n",u=1;u<=t.linesAfter&&!(s+u>=c.length);u++)p=a(e.buffer,o[s+u],c[s+u],e.position-(o[s]-o[s+u]),h),f+=n.repeat(" ",t.indent)+l((e.line+u+1).toString(),d)+" | "+p.str+"\n" +return f.replace(/\n$/,"")},s=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],u=["scalar","sequence","mapping"] +var p=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===s.indexOf(t))throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={} +return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===u.indexOf(this.kind))throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')} +function f(e,t,n){var i=[] +return e[t].forEach((function(e){n.forEach((function(t,n){t.tag===e.tag&&t.kind===e.kind&&t.multi===e.multi&&i.push(n)})),n.push(e)})),n.filter((function(e,t){return-1===i.indexOf(t)}))}function d(e){return this.extend(e)}d.prototype.extend=function(e){var t=[],n=[] +if(e instanceof p)n.push(e) +else if(Array.isArray(e))n=n.concat(e) +else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new o("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })") +e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof p))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.") +if(e.loadKind&&"scalar"!==e.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.") +if(e.multi)throw new o("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof p))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.")})) +var i=Object.create(d.prototype) +return i.implicit=(this.implicit||[]).concat(t),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=f(i,"implicit",[]),i.compiledExplicit=f(i,"explicit",[]),i.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}} +function i(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),k=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$") +var w=/^[-+]?[0-9]+e/ +var C=new p("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!k.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n +return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var i +if(isNaN(e))switch(t){case"lowercase":return".nan" +case"uppercase":return".NAN" +case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf" +case"uppercase":return".INF" +case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf" +case"uppercase":return"-.INF" +case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0" +return i=e.toString(10),w.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"}),x=m.extend({implicit:[g,y,v,C]}),I=x,S=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),O=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$") +var j=new p("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==S.exec(e)||null!==O.exec(e))},construct:function(e){var t,n,i,r,o,a,l,c,s=0,u=null +if(null===(t=S.exec(e))&&(t=O.exec(e)),null===t)throw new Error("Date resolve error") +if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r)) +if(o=+t[4],a=+t[5],l=+t[6],t[7]){for(s=t[7].slice(0,3);s.length<3;)s+="0" +s=+s}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(n,i,r,o,a,l,s)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}}) +var T=new p("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r" +var M=new p("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1 +var t,n,i=0,r=e.length,o=E +for(n=0;n64)){if(t<0)return!1 +i+=6}return i%8==0},construct:function(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=E,a=0,l=[] +for(t=0;t>16&255),l.push(a>>8&255),l.push(255&a)),a=a<<6|o.indexOf(i.charAt(t)) +return 0===(n=r%4*6)?(l.push(a>>16&255),l.push(a>>8&255),l.push(255&a)):18===n?(l.push(a>>10&255),l.push(a>>2&255)):12===n&&l.push(a>>4&255),new Uint8Array(l)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=E +for(t=0;t>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t] +return 0===(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}}),L=Object.prototype.hasOwnProperty,N=Object.prototype.toString +var F=new p("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0 +var t,n,i,r,o,a=[],l=e +for(t=0,n=l.length;t>10),56320+(e-65536&1023))}for(var ee=new Array(256),te=new Array(256),ne=0;ne<256;ne++)ee[ne]=Q(ne)?1:0,te[ne]=Q(ne) +function ie(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Y,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function re(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart} +return n.snippet=c(n),new o(t,n)}function oe(e,t){throw re(e,t)}function ae(e,t){e.onWarning&&e.onWarning.call(null,re(e,t))}var le={YAML:function(e,t,n){var i,r,o +null!==e.version&&oe(e,"duplication of %YAML directive"),1!==n.length&&oe(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&oe(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&oe(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&ae(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r +2!==n.length&&oe(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],K.test(i)||oe(e,"ill-formed tag handle (first argument) of the TAG directive"),P.call(e.tagMap,i)&&oe(e,'there is a previously declared suffix for "'+i+'" tag handle'),W.test(r)||oe(e,"ill-formed tag prefix (second argument) of the TAG directive") +try{r=decodeURIComponent(r)}catch(o){oe(e,"tag prefix is malformed: "+r)}e.tagMap[i]=r}} +function ce(e,t,n,i){var r,o,a,l +if(t1&&(e.result+=n.repeat("\n",t-1))}function me(e,t){var n,i,r=e.tag,o=e.anchor,a=[],l=!1 +if(-1!==e.firstTabInLine)return!1 +for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,oe(e,"tab characters must not be used in indentation")),45===i)&&Z(e.input.charCodeAt(e.position+1));)if(l=!0,e.position++,fe(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position) +else if(n=e.line,be(e,t,3,!1,!0),a.push(e.result),fe(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)oe(e,"bad indentation of a sequence entry") +else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(y&&(a=e.line,l=e.lineStart,c=e.position),be(e,t,4,!0,r)&&(y?m=e.result:g=e.result),y||(ue(e,f,d,h,m,g,a,l,c),h=m=g=null),fe(e,!0,-1),s=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>t)&&0!==s)oe(e,"bad indentation of a mapping entry") +else if(e.lineIndent=0))break +0===o?oe(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?oe(e,"repeat of an indentation width identifier"):(p=t+o-1,u=!0)}if(V(a)){do{a=e.input.charCodeAt(++e.position)}while(V(a)) +if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!G(a)&&0!==a)}for(;0!==a;){for(pe(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!u||e.lineIndentp&&(p=e.lineIndent),G(a))f++ +else{if(e.lineIndent0){for(r=a,o=0;r>0;r--)(a=J(l=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:oe(e,"expected hexadecimal character") +e.result+=X(o),e.position++}else oe(e,"unknown escape sequence") +n=i=e.position}else G(l)?(ce(e,n,i,!0),he(e,fe(e,!1,t)),n=i=e.position):e.position===e.lineStart&&de(e)?oe(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}oe(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?y=!0:!function(e){var t,n,i +if(42!==(i=e.input.charCodeAt(e.position)))return!1 +for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!Z(i)&&!z(i);)i=e.input.charCodeAt(++e.position) +return e.position===t&&oe(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),P.call(e.anchorMap,n)||oe(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],fe(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,l,c,s,u,p=e.kind,f=e.result +if(Z(u=e.input.charCodeAt(e.position))||z(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1 +if((63===u||45===u)&&(Z(i=e.input.charCodeAt(e.position+1))||n&&z(i)))return!1 +for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(Z(i=e.input.charCodeAt(e.position+1))||n&&z(i))break}else if(35===u){if(Z(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&de(e)||n&&z(u))break +if(G(u)){if(l=e.line,c=e.lineStart,s=e.lineIndent,fe(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position) +continue}e.position=o,e.line=l,e.lineStart=c,e.lineIndent=s +break}}a&&(ce(e,r,o,!1),he(e,e.line-l),r=o=e.position,a=!1),V(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return ce(e,r,o,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,d,1===i)&&(y=!0,null===e.tag&&(e.tag="?")):(y=!0,null===e.tag&&null===e.anchor||oe(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(y=c&&me(e,h))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result) +else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&oe(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),s=0,u=e.implicitTypes.length;s"),null!==e.result&&f.kind!==e.kind&&oe(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+f.kind+'", not "'+e.kind+'"'),f.resolve(e.result,e.tag)?(e.result=f.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):oe(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||y}function Ae(e){var t,n,i,r,o=e.position,a=!1 +for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(r=e.input.charCodeAt(e.position))&&(fe(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!Z(r);)r=e.input.charCodeAt(++e.position) +for(i=[],(n=e.input.slice(t,e.position)).length<1&&oe(e,"directive name must not be less than one character in length");0!==r;){for(;V(r);)r=e.input.charCodeAt(++e.position) +if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!G(r)) +break}if(G(r))break +for(t=e.position;0!==r&&!Z(r);)r=e.input.charCodeAt(++e.position) +i.push(e.input.slice(t,e.position))}0!==r&&pe(e),P.call(le,n)?le[n](e,n,i):ae(e,'unknown document directive "'+n+'"')}fe(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,fe(e,!0,-1)):a&&oe(e,"directives end mark is expected"),be(e,e.lineIndent-1,4,!1,!0),fe(e,!0,-1),e.checkLineBreaks&&$.test(e.input.slice(o,e.position))&&ae(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&de(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,fe(e,!0,-1)):e.position=55296&&i<=56319&&t+1=56320&&n<=57343?1024*(i-55296)+n-56320+65536:i}function De(e){return/^\n* /.test(e)}function Ue(e,t,n,i,r,o,a,l){var c,s,u=0,p=null,f=!1,d=!1,h=-1!==i,m=-1,g=Le(s=_e(e,0))&&65279!==s&&!Me(s)&&45!==s&&63!==s&&58!==s&&44!==s&&91!==s&&93!==s&&123!==s&&125!==s&&35!==s&&38!==s&&42!==s&&33!==s&&124!==s&&61!==s&&62!==s&&39!==s&&34!==s&&37!==s&&64!==s&&96!==s&&function(e){return!Me(e)&&58!==e}(_e(e,e.length-1)) +if(t||a)for(c=0;c=65536?c+=2:c++){if(!Le(u=_e(e,c)))return 5 +g=g&&Fe(u,p,l),p=u}else{for(c=0;c=65536?c+=2:c++){if(10===(u=_e(e,c)))f=!0,h&&(d=d||c-m-1>i&&" "!==e[m+1],m=c) +else if(!Le(u))return 5 +g=g&&Fe(u,p,l),p=u}d=d||h&&c-m-1>i&&" "!==e[m+1]}return f||d?n>9&&De(e)?5:a?2===o?5:2:d?4:3:!g||a||r(e)?2===o?5:2:1}function qe(e,t,n,i,r){e.dump=function(){if(0===t.length)return 2===e.quotingType?'""':"''" +if(!e.noCompatMode&&(-1!==Ie.indexOf(t)||Se.test(t)))return 2===e.quotingType?'"'+t+'"':"'"+t+"'" +var a=e.indent*Math.max(1,n),l=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),c=i||e.flowLevel>-1&&n>=e.flowLevel +switch(Ue(t,c,e.indent,l,(function(t){return function(e,t){var n,i +for(n=0,i=e.implicitTypes.length;n"+Ye(t,e.indent)+Pe(Te(function(e,t){var n,i,r=/(\n+)([^\n]*)/g,o=(l=e.indexOf("\n"),l=-1!==l?l:e.length,r.lastIndex=l,Re(e.slice(0,l),t)),a="\n"===e[0]||" "===e[0] +var l +for(;i=r.exec(e);){var c=i[1],s=i[2] +n=" "===s[0],o+=c+(a||n||""===s?"":"\n")+Re(s,t),a=n}return o}(t,l),a)) +case 5:return'"'+function(e){for(var t,n="",i=0,r=0;r=65536?r+=2:r++)i=_e(e,r),!(t=xe[i])&&Le(i)?(n+=e[r],i>=65536&&(n+=e[r+1])):n+=t||Oe(i) +return n}(t)+'"' +default:throw new o("impossible error: invalid scalar style")}}()}function Ye(e,t){var n=De(e)?String(t):"",i="\n"===e[e.length-1] +return n+(i&&("\n"===e[e.length-2]||"\n"===e)?"+":i?"":"-")+"\n"}function Pe(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function Re(e,t){if(""===e||" "===e[0])return e +for(var n,i,r=/ [^ ]/g,o=0,a=0,l=0,c="";n=r.exec(e);)(l=n.index)-o>t&&(i=a>o?a:l,c+="\n"+e.slice(o,i),o=i+1),a=l +return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function $e(e,t,n,i){var r,o,a,l="",c=e.tag +for(r=0,o=n.length;r tag resolver accepts not "'+s+'" style') +i=c.represent[s](t,s)}e.dump=i}return!0}return!1}function Ke(e,t,n,i,r,a,l){e.tag=null,e.dump=n,Be(e,n,!1)||Be(e,n,!0) +var c,s=we.call(e.dump),u=i +i&&(i=e.flowLevel<0||e.flowLevel>t) +var p,f,d="[object Object]"===s||"[object Array]"===s +if(d&&(f=-1!==(p=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||f||2!==e.indent&&t>0)&&(r=!1),f&&e.usedDuplicates[p])e.dump="*ref_"+p +else{if(d&&f&&!e.usedDuplicates[p]&&(e.usedDuplicates[p]=!0),"[object Object]"===s)i&&0!==Object.keys(e.dump).length?(function(e,t,n,i){var r,a,l,c,s,u,p="",f=e.tag,d=Object.keys(n) +if(!0===e.sortKeys)d.sort() +else if("function"==typeof e.sortKeys)d.sort(e.sortKeys) +else if(e.sortKeys)throw new o("sortKeys must be a boolean or a function") +for(r=0,a=d.length;r1024)&&(e.dump&&10===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,s&&(u+=Ee(e,t)),Ke(e,t+1,c,!0,s)&&(e.dump&&10===e.dump.charCodeAt(0)?u+=":":u+=": ",p+=u+=e.dump)) +e.tag=f,e.dump=p||"{}"}(e,t,e.dump,r),f&&(e.dump="&ref_"+p+e.dump)):(function(e,t,n){var i,r,o,a,l,c="",s=e.tag,u=Object.keys(n) +for(i=0,r=u.length;i1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ke(e,t,a,!1,!1)&&(c+=l+=e.dump)) +e.tag=s,e.dump="{"+c+"}"}(e,t,e.dump),f&&(e.dump="&ref_"+p+" "+e.dump)) +else if("[object Array]"===s)i&&0!==e.dump.length?(e.noArrayIndent&&!l&&t>0?$e(e,t-1,e.dump,r):$e(e,t,e.dump,r),f&&(e.dump="&ref_"+p+e.dump)):(function(e,t,n){var i,r,o,a="",l=e.tag +for(i=0,r=n.length;i",e.dump=c+" "+e.dump)}return!0}function We(e,t){var n,i,r=[],o=[] +for(function e(t,n,i){var r,o,a +if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===i.indexOf(o)&&i.push(o) +else if(n.push(t),Array.isArray(t))for(o=0,a=t.length;on.keyCol)return t.skipToEnd(),"string" +if(n.literal&&(n.literal=!1),t.sol()){if(n.keyCol=0,n.pair=!1,n.pairStart=!1,t.match(/---/))return"def" +if(t.match(/\.\.\./))return"def" +if(t.match(/\s*-\s+/))return"meta"}if(t.match(/^(\{|\}|\[|\])/))return"{"==i?n.inlinePairs++:"}"==i?n.inlinePairs--:"["==i?n.inlineList++:n.inlineList--,"meta" +if(n.inlineList>0&&!r&&","==i)return t.next(),"meta" +if(n.inlinePairs>0&&!r&&","==i)return n.keyCol=0,n.pair=!1,n.pairStart=!1,t.next(),"meta" +if(n.pairStart){if(t.match(/^\s*(\||\>)\s*/))return n.literal=!0,"meta" +if(t.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable-2" +if(0==n.inlinePairs&&t.match(/^\s*-?[0-9\.\,]+\s?$/))return"number" +if(n.inlinePairs>0&&t.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number" +if(t.match(e))return"keyword"}return!n.pair&&t.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(n.pair=!0,n.keyCol=t.indentation(),"atom"):n.pair&&t.match(/^:\s*/)?(n.pairStart=!0,"meta"):(n.pairStart=!1,n.escaped="\\"==i,t.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}}}})),e.defineMIME("text/x-yaml","yaml")})) diff --git a/agent/uiserver/dist/assets/consul-acls/routes-75a2ac7d38caf09cfee2a4e2bc49dcf7.js b/agent/uiserver/dist/assets/consul-acls/routes-75a2ac7d38caf09cfee2a4e2bc49dcf7.js new file mode 100644 index 0000000000..827df811f1 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-acls/routes-75a2ac7d38caf09cfee2a4e2bc49dcf7.js @@ -0,0 +1 @@ +((e,t=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{t.routes=JSON.stringify(e)})({dc:{acls:{tokens:{_options:{abilities:["read tokens"]}}}}}) diff --git a/agent/uiserver/dist/assets/consul-acls/services-8b6b2b2bea3add7709b8075a5ed5652b.js b/agent/uiserver/dist/assets/consul-acls/services-8b6b2b2bea3add7709b8075a5ed5652b.js new file mode 100644 index 0000000000..879c5517c8 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-acls/services-8b6b2b2bea3add7709b8075a5ed5652b.js @@ -0,0 +1 @@ +((e,t=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{t.services=JSON.stringify(e)})({}) diff --git a/agent/uiserver/dist/assets/consul-lock-sessions/routes-f2c5ce353830c89f540358e7f174e0bf.js b/agent/uiserver/dist/assets/consul-lock-sessions/routes-f2c5ce353830c89f540358e7f174e0bf.js new file mode 100644 index 0000000000..d9dcf8bdd1 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-lock-sessions/routes-f2c5ce353830c89f540358e7f174e0bf.js @@ -0,0 +1 @@ +((s,e=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{e.routes=JSON.stringify(s)})({dc:{nodes:{show:{sessions:{_options:{path:"/lock-sessions"}}}}}}) diff --git a/agent/uiserver/dist/assets/consul-lock-sessions/services-8b6b2b2bea3add7709b8075a5ed5652b.js b/agent/uiserver/dist/assets/consul-lock-sessions/services-8b6b2b2bea3add7709b8075a5ed5652b.js new file mode 100644 index 0000000000..879c5517c8 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-lock-sessions/services-8b6b2b2bea3add7709b8075a5ed5652b.js @@ -0,0 +1 @@ +((e,t=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{t.services=JSON.stringify(e)})({}) diff --git a/agent/uiserver/dist/assets/consul-nspaces/routes-f939ed42e9b83f9d1bbc5256be68e77c.js b/agent/uiserver/dist/assets/consul-nspaces/routes-f939ed42e9b83f9d1bbc5256be68e77c.js new file mode 100644 index 0000000000..20d5459a5c --- /dev/null +++ b/agent/uiserver/dist/assets/consul-nspaces/routes-f939ed42e9b83f9d1bbc5256be68e77c.js @@ -0,0 +1 @@ +((e,t=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{t.routes=JSON.stringify(e)})({dc:{nspaces:{_options:{path:"/namespaces",abilities:["read nspaces"]},index:{_options:{path:"/",queryParams:{sortBy:"sort",searchproperty:{as:"searchproperty",empty:[["Name","Description","Role","Policy"]]},search:{as:"filter",replace:!0}}}},edit:{_options:{path:"/:name"}},create:{_options:{template:"../edit",path:"/create",abilities:["create nspaces"]}}}}}) diff --git a/agent/uiserver/dist/assets/consul-nspaces/services-8b6b2b2bea3add7709b8075a5ed5652b.js b/agent/uiserver/dist/assets/consul-nspaces/services-8b6b2b2bea3add7709b8075a5ed5652b.js new file mode 100644 index 0000000000..879c5517c8 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-nspaces/services-8b6b2b2bea3add7709b8075a5ed5652b.js @@ -0,0 +1 @@ +((e,t=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{t.services=JSON.stringify(e)})({}) diff --git a/agent/uiserver/dist/assets/consul-partitions/routes-cba490481425519435d142c743bbc3d3.js b/agent/uiserver/dist/assets/consul-partitions/routes-cba490481425519435d142c743bbc3d3.js new file mode 100644 index 0000000000..d2bba57955 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-partitions/routes-cba490481425519435d142c743bbc3d3.js @@ -0,0 +1 @@ +((t,e=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{e.routes=JSON.stringify(t)})({dc:{partitions:{_options:{path:"/partitions",abilities:["read partitions"]},index:{_options:{path:"/",queryParams:{sortBy:"sort",searchproperty:{as:"searchproperty",empty:[["Name","Description"]]},search:{as:"filter",replace:!0}}}},edit:{_options:{path:"/:name"}},create:{_options:{template:"../edit",path:"/create",abilities:["create partitions"]}}}}}) diff --git a/agent/uiserver/dist/assets/consul-partitions/services-85621f245f195fe1ce177064bfb04504.js b/agent/uiserver/dist/assets/consul-partitions/services-85621f245f195fe1ce177064bfb04504.js new file mode 100644 index 0000000000..8b617434d9 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-partitions/services-85621f245f195fe1ce177064bfb04504.js @@ -0,0 +1 @@ +((e,t=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{t.services=JSON.stringify(e)})({"component:consul/partition/selector":{class:"consul-ui/components/consul/partition/selector"}}) diff --git a/agent/uiserver/dist/assets/consul-ui-20fef69ea9b73df740a420526b12c7fb.css b/agent/uiserver/dist/assets/consul-ui-20fef69ea9b73df740a420526b12c7fb.css new file mode 100644 index 0000000000..20aa05d74b --- /dev/null +++ b/agent/uiserver/dist/assets/consul-ui-20fef69ea9b73df740a420526b12c7fb.css @@ -0,0 +1 @@ +@charset "UTF-8";fieldset,hr{border:none}.modal-dialog [role=document] table caption,.modal-dialog [role=document] table thead th,main table caption,main table thead th,table td,table th,td,th{text-align:left}article,aside,figure,footer,header,hgroup,hr,section{display:block}#login-toggle+div footer button,.consul-intention-fieldsets .permissions>button,.empty-state>ul>li>*,.empty-state>ul>li>:active,.empty-state>ul>li>label>button,.empty-state>ul>li>label>button:active,.modal-dialog [role=document] dd a,.modal-dialog [role=document] p a,.oidc-select button.reset,.search-bar-status .remove-all button,a,label.type-dialog,label.type-dialog:active,main dd a,main dd a:active,main p a,main p a:active{text-decoration:none}blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}table{border-collapse:collapse;border-spacing:0}table td,table th{padding:0}audio,embed,img,object,video{height:auto;max-width:100%}.app-view>div form button[type=button].type-delete,.consul-intention-action-warn-modal button.dangerous,.copy-button button,.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.empty-state div>button,.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button,.informed-action>ul>li>*,.menu-panel>ul>[role=treeitem],.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.modal-dialog .type-delete,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.oidc-select button:not(.reset),.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.popover-select label>*,.topology-notices button,.type-sort.popover-select label>*,.with-confirmation .type-delete,a.type-create,button.type-cancel,button.type-submit,button[type=reset],button[type=submit],header .actions button[type=button]:not(.copy-btn),label span,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.type-reveal input:checked~em{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}a{color:rgb(var(--color-action))}span,strong,td,th{color:inherit}body{color:rgb(var(--tone-gray-900))}html{background-color:rgb(var(--tone-gray-000));font-size:var(--typo-size-000);text-rendering:optimizeLegibility;text-size-adjust:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-y:scroll;box-sizing:border-box;min-width:300px}hr{background-color:rgb(var(--tone-gray-200));height:1px;margin:1.5rem 0}button{background-color:var(--transparent)}body,button,input,select,textarea{font-family:var(--typo-family-sans)}.CodeMirror-lint-tooltip,.cm-s-hashi.CodeMirror,code,pre{font-family:var(--typo-family-mono)}strong{font-style:inherit;font-weight:var(--typo-weight-bold)}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}pre{-webkit-overflow-scrolling:touch;overflow-x:auto;white-space:pre;word-wrap:normal}*,::after,::before{box-sizing:inherit;animation-play-state:paused;animation-fill-mode:forwards}fieldset{width:100%}a,input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox],input[type=radio]{vertical-align:baseline}td,th{vertical-align:top}button,input,select,textarea{margin:0}iframe{border:0}:root{--decor-radius-000:0;--decor-radius-100:2px;--decor-radius-200:4px;--decor-radius-250:6px;--decor-radius-300:7px;--decor-radius-999:9999px;--decor-radius-full:100%;--decor-border-000:none;--decor-border-100:1px solid;--decor-border-200:2px solid;--decor-border-300:3px solid;--decor-border-400:4px solid;--decor-elevation-000:none;--decor-elevation-100:0 3px 2px rgb(var(--black) / 6%);--decor-elevation-200:0 2px 4px rgb(var(--black) / 10%);--decor-elevation-300:0 5px 1px -2px rgb(var(--black) / 12%);--decor-elevation-400:0 6px 8px -2px rgb(var(--black) / 5%),0 8px 4px -4px rgb(var(--black) / 10%);--decor-elevation-600:0 12px 5px -7px rgb(var(--black) / 8%),0 11px 10px -3px rgb(var(--black) / 10%);--decor-elevation-800:0 16px 6px -10px rgb(var(--black) / 6%),0 16px 16px -4px rgb(var(--black) / 20%);--steel-050:245 246 247;--steel-100:225 228 231;--steel-200:205 211 215;--steel-300:185 193 199;--steel-400:165 176 183;--steel-500:145 159 168;--steel-600:119 131 138;--steel-700:93 102 107;--steel-800:66 73 77;--steel-900:40 44 46;--lemon-050:255 216 20;--lemon-100:255 216 20;--lemon-200:255 216 20;--lemon-300:255 216 20;--lemon-400:255 216 20;--lemon-500:255 216 20;--lemon-600:255 216 20;--lemon-700:255 216 20;--lemon-800:255 216 20;--lemon-900:255 216 20;--magenta-050:249 235 242;--magenta-100:239 196 216;--magenta-200:229 158 190;--magenta-300:218 119 164;--magenta-400:208 80 138;--magenta-500:198 42 113;--magenta-600:158 33 89;--magenta-700:125 26 71;--magenta-800:90 20 52;--magenta-900:54 12 31;--strawberry-010:255 242 248;--strawberry-050:255 242 248;--strawberry-100:248 217 231;--strawberry-200:248 217 231;--strawberry-300:224 126 172;--strawberry-400:224 126 172;--strawberry-500:202 33 113;--strawberry-600:142 19 74;--strawberry-700:142 19 74;--strawberry-800:101 13 52;--strawberry-900:101 13 52;--cobalt-050:240 245 255;--cobalt-100:191 212 255;--cobalt-200:138 177 255;--cobalt-300:91 146 255;--cobalt-400:56 122 255;--cobalt-500:21 99 255;--cobalt-600:15 79 209;--cobalt-700:14 64 163;--cobalt-800:10 45 116;--cobalt-900:6 27 70;--indigo-050:238 237 252;--indigo-100:213 210 247;--indigo-200:174 167 242;--indigo-300:141 131 237;--indigo-400:117 104 232;--indigo-500:92 78 229;--indigo-600:76 64 188;--indigo-700:59 50 146;--indigo-800:42 36 105;--indigo-900:26 22 63;--teal-050:235 248 243;--teal-100:195 236 220;--teal-200:155 223 197;--teal-300:116 211 174;--teal-400:76 198 151;--teal-500:37 186 129;--teal-600:31 153 106;--teal-700:24 119 83;--teal-800:17 85 59;--teal-900:11 51 36;--cyan-050:231 248 255;--cyan-100:185 236 255;--cyan-200:139 224 255;--cyan-300:92 211 255;--cyan-400:46 199 255;--cyan-500:0 187 255;--cyan-600:0 159 217;--cyan-700:0 119 163;--cyan-800:0 85 116;--cyan-900:0 51 70;--gray-010:251 251 252;--gray-050:247 248 250;--gray-100:235 238 242;--gray-150:235 238 242;--gray-200:220 224 230;--gray-300:186 193 204;--gray-400:142 150 163;--gray-500:111 118 130;--gray-600:98 104 115;--gray-700:82 87 97;--gray-800:55 58 66;--gray-850:44 46 51;--gray-900:31 33 36;--gray-950:21 23 28;--green-050:236 247 237;--green-100:198 233 201;--green-200:160 219 165;--green-300:122 204 129;--green-400:84 190 93;--green-500:46 176 57;--green-600:38 145 47;--green-700:30 113 37;--green-800:21 80 26;--green-900:13 48 16;--blue-010:251 252 255;--blue-050:240 245 255;--blue-100:191 212 255;--blue-200:138 177 255;--blue-300:91 146 255;--blue-400:56 122 255;--blue-500:21 99 255;--blue-600:15 79 209;--blue-700:14 64 163;--blue-800:10 45 116;--blue-900:6 27 70;--red-010:253 250 251;--red-050:249 236 238;--red-100:239 199 204;--red-200:229 162 170;--red-300:219 125 136;--red-400:209 88 102;--red-500:199 52 69;--red-600:163 43 57;--red-700:127 34 44;--red-800:91 24 32;--red-900:55 15 19;--orange-050:254 244 236;--orange-100:253 224 200;--orange-200:252 204 164;--orange-300:251 183 127;--orange-400:250 163 91;--orange-500:250 143 55;--orange-600:205 118 46;--orange-700:160 92 35;--orange-800:114 65 25;--orange-900:69 39 15;--yellow-050:255 251 237;--yellow-100:253 238 186;--yellow-200:252 228 140;--yellow-300:251 217 94;--yellow-400:250 206 48;--yellow-500:250 196 2;--yellow-600:205 161 2;--yellow-700:160 125 2;--yellow-800:114 90 1;--yellow-900:69 54 1;--transparent:transparent;--white:255 255 255;--black:0 0 0;--color-primary:var(--tone-blue-500);--color-dangerous:var(--tone-red-500);--color-primary-disabled:var(--tone-blue-500);--color-neutral:var(--tone-gray-500);--color-action:var(--tone-blue-500);--color-info:var(--tone-blue-500);--color-success:var(--tone-green-500);--color-failure:var(--tone-red-500);--color-danger:var(--tone-red-500);--color-warning:var(--tone-yellow-500);--color-alert:var(--tone-orange-500);--typo-family-sans:BlinkMacSystemFont,-apple-system,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue","Helvetica","Arial",sans-serif;--typo-family-mono:monospace;--typo-size-000:16px;--typo-size-100:3.5rem;--typo-size-200:1.8rem;--typo-size-250:1.750rem;--typo-size-300:1.3rem;--typo-size-400:1.2rem;--typo-size-450:1.125rem;--typo-size-500:1rem;--typo-size-600:0.875rem;--typo-size-700:0.8125rem;--typo-size-800:0.75rem;--typo-weight-light:300;--typo-weight-normal:400;--typo-weight-medium:500;--typo-weight-semibold:600;--typo-weight-bold:700;--typo-lead-000:0;--typo-lead-050:1;--typo-lead-100:1.2;--typo-lead-200:1.25;--typo-lead-300:1.28;--typo-lead-500:1.33;--typo-lead-600:1.4;--typo-lead-700:1.5;--typo-lead-800:1.7;--icon-alert-triangle-16:url('data:image/svg+xml;charset=UTF-8,');--icon-alert-triangle-24:url('data:image/svg+xml;charset=UTF-8,');--icon-arrow-right-16:url('data:image/svg+xml;charset=UTF-8,');--icon-arrow-right-24:url('data:image/svg+xml;charset=UTF-8,');--icon-x-square-fill-16:url('data:image/svg+xml;charset=UTF-8,');--icon-x-square-fill-24:url('data:image/svg+xml;charset=UTF-8,');--icon-chevron-down-16:url('data:image/svg+xml;charset=UTF-8,');--icon-chevron-down-24:url('data:image/svg+xml;charset=UTF-8,');--icon-clipboard-copy-16:url('data:image/svg+xml;charset=UTF-8,');--icon-clipboard-copy-24:url('data:image/svg+xml;charset=UTF-8,');--icon-docs-16:url('data:image/svg+xml;charset=UTF-8,');--icon-docs-24:url('data:image/svg+xml;charset=UTF-8,');--icon-external-link-16:url('data:image/svg+xml;charset=UTF-8,');--icon-external-link-24:url('data:image/svg+xml;charset=UTF-8,');--icon-file-16:url('data:image/svg+xml;charset=UTF-8,');--icon-file-24:url('data:image/svg+xml;charset=UTF-8,');--icon-folder-16:url('data:image/svg+xml;charset=UTF-8,');--icon-folder-24:url('data:image/svg+xml;charset=UTF-8,');--icon-activity-16:url('data:image/svg+xml;charset=UTF-8,');--icon-activity-24:url('data:image/svg+xml;charset=UTF-8,');--icon-help-16:url('data:image/svg+xml;charset=UTF-8,');--icon-help-24:url('data:image/svg+xml;charset=UTF-8,');--icon-learn-16:url('data:image/svg+xml;charset=UTF-8,');--icon-learn-24:url('data:image/svg+xml;charset=UTF-8,');--icon-github-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-github-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-google-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-google-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-kubernetes-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-kubernetes-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-menu-16:url('data:image/svg+xml;charset=UTF-8,');--icon-menu-24:url('data:image/svg+xml;charset=UTF-8,');--icon-minus-square-16:url('data:image/svg+xml;charset=UTF-8,');--icon-minus-square-24:url('data:image/svg+xml;charset=UTF-8,');--icon-more-horizontal-16:url('data:image/svg+xml;charset=UTF-8,');--icon-more-horizontal-24:url('data:image/svg+xml;charset=UTF-8,');--icon-globe-16:url('data:image/svg+xml;charset=UTF-8,');--icon-globe-24:url('data:image/svg+xml;charset=UTF-8,');--icon-search-16:url('data:image/svg+xml;charset=UTF-8,');--icon-search-24:url('data:image/svg+xml;charset=UTF-8,');--icon-star-16:url('data:image/svg+xml;charset=UTF-8,');--icon-star-24:url('data:image/svg+xml;charset=UTF-8,');--icon-org-16:url('data:image/svg+xml;charset=UTF-8,');--icon-org-24:url('data:image/svg+xml;charset=UTF-8,');--icon-user-16:url('data:image/svg+xml;charset=UTF-8,');--icon-user-24:url('data:image/svg+xml;charset=UTF-8,');--icon-users-16:url('data:image/svg+xml;charset=UTF-8,');--icon-users-24:url('data:image/svg+xml;charset=UTF-8,');--icon-eye-off-16:url('data:image/svg+xml;charset=UTF-8,');--icon-eye-off-24:url('data:image/svg+xml;charset=UTF-8,');--icon-eye-16:url('data:image/svg+xml;charset=UTF-8,');--icon-eye-24:url('data:image/svg+xml;charset=UTF-8,');--icon-alert-circle-16:url('data:image/svg+xml;charset=UTF-8,');--icon-alert-circle-24:url('data:image/svg+xml;charset=UTF-8,');--icon-aws-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-aws-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-check-16:url('data:image/svg+xml;charset=UTF-8,');--icon-check-24:url('data:image/svg+xml;charset=UTF-8,');--icon-check-circle-16:url('data:image/svg+xml;charset=UTF-8,');--icon-check-circle-24:url('data:image/svg+xml;charset=UTF-8,');--icon-check-circle-fill-16:url('data:image/svg+xml;charset=UTF-8,');--icon-check-circle-fill-24:url('data:image/svg+xml;charset=UTF-8,');--icon-chevron-left-16:url('data:image/svg+xml;charset=UTF-8,');--icon-chevron-left-24:url('data:image/svg+xml;charset=UTF-8,');--icon-chevron-right-16:url('data:image/svg+xml;charset=UTF-8,');--icon-chevron-right-24:url('data:image/svg+xml;charset=UTF-8,');--icon-chevron-up-16:url('data:image/svg+xml;charset=UTF-8,');--icon-chevron-up-24:url('data:image/svg+xml;charset=UTF-8,');--icon-delay-16:url('data:image/svg+xml;charset=UTF-8,');--icon-delay-24:url('data:image/svg+xml;charset=UTF-8,');--icon-docs-link-16:url('data:image/svg+xml;charset=UTF-8,');--icon-docs-link-24:url('data:image/svg+xml;charset=UTF-8,');--icon-gateway-16:url('data:image/svg+xml;charset=UTF-8,');--icon-gateway-24:url('data:image/svg+xml;charset=UTF-8,');--icon-git-commit-16:url('data:image/svg+xml;charset=UTF-8,');--icon-git-commit-24:url('data:image/svg+xml;charset=UTF-8,');--icon-history-16:url('data:image/svg+xml;charset=UTF-8,');--icon-history-24:url('data:image/svg+xml;charset=UTF-8,');--icon-info-16:url('data:image/svg+xml;charset=UTF-8,');--icon-info-24:url('data:image/svg+xml;charset=UTF-8,');--icon-layers-16:url('data:image/svg+xml;charset=UTF-8,');--icon-layers-24:url('data:image/svg+xml;charset=UTF-8,');--icon-loading-16:url('data:image/svg+xml;charset=UTF-8,');--icon-loading-24:url('data:image/svg+xml;charset=UTF-8,');--icon-path-16:url('data:image/svg+xml;charset=UTF-8,');--icon-path-24:url('data:image/svg+xml;charset=UTF-8,');--icon-skip-16:url('data:image/svg+xml;charset=UTF-8,');--icon-skip-24:url('data:image/svg+xml;charset=UTF-8,');--icon-socket-16:url('data:image/svg+xml;charset=UTF-8,');--icon-socket-24:url('data:image/svg+xml;charset=UTF-8,');--icon-star-circle-16:url('data:image/svg+xml;charset=UTF-8,');--icon-star-circle-24:url('data:image/svg+xml;charset=UTF-8,');--icon-star-fill-16:url('data:image/svg+xml;charset=UTF-8,');--icon-star-fill-24:url('data:image/svg+xml;charset=UTF-8,');--icon-tag-16:url('data:image/svg+xml;charset=UTF-8,');--icon-tag-24:url('data:image/svg+xml;charset=UTF-8,');--icon-vault-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-vault-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-x-16:url('data:image/svg+xml;charset=UTF-8,');--icon-x-24:url('data:image/svg+xml;charset=UTF-8,');--icon-x-circle-16:url('data:image/svg+xml;charset=UTF-8,');--icon-x-circle-24:url('data:image/svg+xml;charset=UTF-8,');--icon-cloud-cross-16:url('data:image/svg+xml;charset=UTF-8,');--icon-loading-motion-16:url('data:image/svg+xml;charset=UTF-8,');--icon-auth0-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-auth0-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-consul-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-consul-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-logo-ember-circle-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-logo-glimmer-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-logo-jwt-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-microsoft-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-microsoft-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-nomad-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-nomad-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-logo-oidc-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-okta-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-okta-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-terraform-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-terraform-color-24:url('data:image/svg+xml;charset=UTF-8,');--icon-mesh-16:url('data:image/svg+xml;charset=UTF-8,');--icon-mesh-24:url('data:image/svg+xml;charset=UTF-8,');--icon-port-16:url('data:image/svg+xml;charset=UTF-8,');--icon-protocol-16:url('data:image/svg+xml;charset=UTF-8,');--icon-redirect-16:url('data:image/svg+xml;charset=UTF-8,');--icon-redirect-24:url('data:image/svg+xml;charset=UTF-8,');--icon-search-color-16:url('data:image/svg+xml;charset=UTF-8,');--icon-sort-desc-16:url('data:image/svg+xml;charset=UTF-8,');--icon-sort-desc-24:url('data:image/svg+xml;charset=UTF-8,');--icon-union-16:url('data:image/svg+xml;charset=UTF-8,');--chrome-width:300px;--chrome-height:64px;--tone-brand-050:var(--tone-magenta-050);--tone-brand-100:var(--tone-strawberry-100);--tone-brand-600:224 56 117;--tone-brand-800:var(--tone-magenta-800);--typo-action-500:rgb(var(--tone-blue-500));--decor-error-500:rgb(var(--tone-red-500));--typo-contrast-999:rgb(var(--tone-gray-999));--typo-brand-050:rgb(var(--tone-brand-050));--typo-brand-600:rgb(var(--tone-brand-600));--decor-brand-600:rgb(var(--tone-brand-600));--swatch-brand-600:rgb(var(--tone-brand-600));--swatch-brand-800:rgb(var(--tone-brand-800));--syntax-light-grey:#dde3e7;--syntax-light-gray:#a4a4a4;--syntax-light-grey-blue:#6c7b81;--syntax-dark-grey:#788290;--syntax-faded-gray:#eaeaea;--syntax-atlas:#127eff;--syntax-vagrant:#2f88f7;--syntax-consul:#69499a;--syntax-terraform:#822ff7;--syntax-serf:#dd4e58;--syntax-packer:#1ddba3;--syntax-gray:lighten(#000, 89%);--syntax-red:#ff3d3d;--syntax-green:#39b54a;--syntax-dark-gray:#535f73;--syntax-gutter-grey:#2a2f36;--syntax-yellow:rgb(var(--tone-yellow-500));--horizontal-kv-list-separator-width:18px;--horizontal-kv-list-key-separator:":";--horizontal-kv-list-key-wrapper-start:"(";--horizontal-kv-list-key-wrapper-end:")";--csv-list-separator:",";--icon-loading:icon-loading-motion}.consul-bucket-list .service,.consul-bucket-list:not([class]) dt:not([class]),.consul-exposed-path-list>ul>li>.detail dl:not([class]) dt:not([class]),.consul-instance-checks:not([class]) dt:not([class]),.consul-lock-session-list dl:not([class]) dt:not([class]),.consul-server-card dt:not(.name),.consul-upstream-instance-list dl.local-bind-address dt,.consul-upstream-instance-list dl.local-bind-socket-path dt,.consul-upstream-instance-list dl:not([class]) dt:not([class]),.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dt:not([class]),.route-title,.tag-list:not([class]) dt:not([class]),section[data-route="dc.show.license"] .validity dl .expired+dd,section[data-route="dc.show.license"] .validity dl:not([class]) dt:not([class]),section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dt:not([class]),td.tags:not([class]) dt:not([class]){position:absolute;overflow:hidden;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;padding:0;border:0}.consul-upstream-instance-list dl.local-bind-socket-mode dt,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dt{position:static!important;clip:unset!important;overflow:visible!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important}.animatable.tab-nav ul::after,.app-view>div form button[type=button].type-delete,.app-view>div form button[type=button].type-delete:hover:not(:disabled):not(:active),.consul-auth-method-type,.consul-external-source,.consul-intention-action-warn-modal button.dangerous,.consul-intention-action-warn-modal button.dangerous:disabled,.consul-intention-action-warn-modal button.dangerous:focus,.consul-intention-action-warn-modal button.dangerous:hover:active,.consul-intention-action-warn-modal button.dangerous:hover:not(:disabled):not(:active),.consul-intention-list td.intent- strong,.consul-intention-permission-form button.type-submit,.consul-intention-permission-form button.type-submit:disabled,.consul-intention-permission-form button.type-submit:focus:not(:disabled),.consul-intention-permission-form button.type-submit:hover:not(:disabled),.consul-intention-search-bar .value- span,.consul-kind,.consul-source,.consul-transparent-proxy,.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:first-child,.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:focus:first-child,.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:hover:first-child,.discovery-chain .route-card>header ul li,.empty-state div>button,.empty-state div>button:disabled,.empty-state div>button:focus,.empty-state div>button:hover:active,.empty-state div>button:hover:not(:disabled):not(:active),.informed-action>ul>.dangerous>*,.informed-action>ul>.dangerous>:focus,.informed-action>ul>.dangerous>:hover,.leader,.menu-panel>ul>li.dangerous>:first-child,.menu-panel>ul>li.dangerous>:focus:first-child,.menu-panel>ul>li.dangerous>:hover:first-child,.modal-dialog .type-delete,.modal-dialog .type-delete:hover:active,.modal-dialog .type-delete:hover:not(:disabled):not(:active),.modal-dialog [role=document]>footer,.modal-dialog [role=document]>header,.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:first-child,.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,.oidc-select button:disabled:not(.reset),.oidc-select button:focus:not(.reset),.oidc-select button:hover:active:not(.reset),.oidc-select button:hover:not(:disabled):not(:active):not(.reset),.oidc-select button:not(.reset),.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:first-child,.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,.tab-nav .selected>*,.topology-metrics-source-type,.with-confirmation .type-delete,.with-confirmation .type-delete:hover:active,.with-confirmation .type-delete:hover:not(:disabled):not(:active),a.type-create,a.type-create:disabled,a.type-create:focus,a.type-create:hover:active,a.type-create:hover:not(:disabled):not(:active),button.type-cancel,button.type-cancel:active,button.type-cancel:focus,button.type-cancel:hover:not(:disabled):not(:active),button.type-submit,button.type-submit:disabled,button.type-submit:focus,button.type-submit:hover:active,button.type-submit:hover:not(:disabled):not(:active),button[type=reset],button[type=reset]:active,button[type=reset]:focus,button[type=reset]:hover:not(:disabled):not(:active),button[type=submit],button[type=submit]:disabled,button[type=submit]:focus,button[type=submit]:hover:active,button[type=submit]:hover:not(:disabled):not(:active),header .actions button[type=button]:hover:not(:disabled):not(:active):not(.copy-btn),header .actions button[type=button]:not(.copy-btn),html[data-route^="dc.acls.index"] main td strong,span.policy-node-identity,span.policy-service-identity,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:first-child,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child{border-style:solid}.animatable.tab-nav ul::after,.app .notifications .app-notification,.tab-nav li>*{transition-duration:.15s;transition-timing-function:ease-out}[role=banner] nav:first-of-type,[role=contentinfo],html body>.brand-loader,main{transition-timing-function:cubic-bezier(.1,.1,.25,.9);transition-duration:.1s}html[data-state]:not(.ember-loading) body>.brand-loader{animation-timing-function:cubic-bezier(.1,.1,.25,.9);animation-duration:.1s;animation-name:remove-from-flow;animation-fill-mode:forwards}@keyframes remove-from-flow{100%{visibility:hidden;overflow:hidden;clip:rect(0 0 0 0)}}@keyframes typo-truncate{100%{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.informed-action header>*{font-size:inherit;font-weight:inherit;line-height:inherit;font-style:inherit}.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password],.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text],.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea,.modal-dialog [role=document] .type-password [type=password],.modal-dialog [role=document] .type-password [type=text],.modal-dialog [role=document] .type-password textarea,.modal-dialog [role=document] .type-select [type=password],.modal-dialog [role=document] .type-select [type=text],.modal-dialog [role=document] .type-select textarea,.modal-dialog [role=document] .type-text [type=password],.modal-dialog [role=document] .type-text [type=text],.modal-dialog [role=document] .type-text textarea,.modal-dialog [role=document] [role=radiogroup] label [type=password],.modal-dialog [role=document] [role=radiogroup] label [type=text],.modal-dialog [role=document] [role=radiogroup] label textarea,.oidc-select label [type=password],.oidc-select label [type=text],.oidc-select label textarea,.type-toggle [type=password],.type-toggle [type=text],.type-toggle textarea,body,main .type-password [type=password],main .type-password [type=text],main .type-password textarea,main .type-select [type=password],main .type-select [type=text],main .type-select textarea,main .type-text [type=password],main .type-text [type=text],main .type-text textarea{font-size:var(--typo-size-600);font-family:var(--typo-family-sans);line-height:var(--typo-lead-700)}.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.app-view>header .title>:first-child,.consul-auth-method-binding-list h2,.consul-auth-method-view section h2,.consul-health-check-list .health-check-output dt,.consul-health-check-list .health-check-output header>*,.consul-intention-list .notice.allow header>*,.consul-intention-list .notice.deny header>*,.consul-intention-list .notice.permissions header>*,.consul-intention-list td.destination,.consul-intention-list td.source,.consul-intention-permission-form h2,.consul-intention-view h2,.consul-server-card .name+dd,.definition-table dt,.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.empty-state header :first-child,.hashicorp-consul nav .dcs [aria-expanded],.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button,.informed-action header,.informed-action>ul>li>*,.menu-panel>ul>[role=treeitem],.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.modal-dialog [role=document] .type-password>span,.modal-dialog [role=document] .type-select>span,.modal-dialog [role=document] .type-text>span,.modal-dialog [role=document] [role=radiogroup] label>span,.modal-dialog [role=document] form h2,.modal-dialog [role=document] table caption,.modal-dialog [role=document] table td strong,.modal-dialog [role=document] table td:first-child,.modal-dialog [role=document] table th,.modal-dialog [role=document]>header>*,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.notice.error header>*,.notice.highlight header>*,.notice.info header>*,.notice.policy-management header>*,.notice.success header>*,.notice.warning header>*,.oidc-select label>span,.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.radio-card header,.tab-nav,.type-toggle label span,.type-toggle>span,[role=banner] nav:last-of-type [aria-expanded],[role=banner] nav:last-of-type>ul>li>.popover-menu>label>button,[role=banner] nav:last-of-type>ul>li>a,[role=banner] nav:last-of-type>ul>li>button,[role=banner] nav:last-of-type>ul>li>span,fieldset>header,html[data-route^="dc.kv.edit"] h2,html[data-route^="dc.services.instance.metadata"] .tab-section section h2,main .type-password>span,main .type-select>span,main .type-text>span,main form h2,main header nav:first-child ol li>*,main table caption,main table td strong,main table td:first-child,main table th,section[data-route="dc.show.license"] aside header>:first-child,section[data-route="dc.show.license"] h2,section[data-route="dc.show.serverstatus"] .redundancy-zones h3,section[data-route="dc.show.serverstatus"] h2,section[data-route="dc.show.serverstatus"] h3,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{line-height:var(--typo-lead-200)}.app-view>header .title>:first-child{font-weight:var(--typo-weight-bold);font-size:var(--typo-size-200)}.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.consul-auth-method-binding-list h2,.consul-auth-method-view section h2,.consul-health-check-list .health-check-output header>*,.consul-intention-list .notice.allow header>*,.consul-intention-list .notice.deny header>*,.consul-intention-list .notice.permissions header>*,.consul-intention-list td.destination,.consul-intention-list td.source,.consul-intention-permission-form h2,.consul-intention-view h2,.consul-server-card .name+dd,.definition-table dt,.empty-state header :first-child,.hashicorp-consul nav .dcs [aria-expanded],.informed-action header,.modal-dialog [role=document] .type-password>span,.modal-dialog [role=document] .type-select>span,.modal-dialog [role=document] .type-text>span,.modal-dialog [role=document] [role=radiogroup] label>span,.modal-dialog [role=document] form h2,.modal-dialog [role=document] table caption,.modal-dialog [role=document] table td:first-child,.modal-dialog [role=document]>header>*,.notice.error header>*,.notice.highlight header>*,.notice.info header>*,.notice.policy-management header>*,.notice.success header>*,.notice.warning header>*,.oidc-select label>span,.radio-card header,.type-toggle>span,[role=banner] nav:last-of-type [aria-expanded],[role=banner] nav:last-of-type>ul>li>.popover-menu>label>button,[role=banner] nav:last-of-type>ul>li>a,[role=banner] nav:last-of-type>ul>li>button,[role=banner] nav:last-of-type>ul>li>span,fieldset>header,html[data-route^="dc.kv.edit"] h2,html[data-route^="dc.services.instance.metadata"] .tab-section section h2,main .type-password>span,main .type-select>span,main .type-text>span,main form h2,main table caption,main table td:first-child,section[data-route="dc.show.license"] aside header>:first-child,section[data-route="dc.show.license"] h2,section[data-route="dc.show.serverstatus"] .redundancy-zones h3,section[data-route="dc.show.serverstatus"] h2,section[data-route="dc.show.serverstatus"] h3{font-weight:var(--typo-weight-semibold)}.consul-health-check-list .health-check-output dt,.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button,.informed-action>ul>li>*,.menu-panel>ul>[role=treeitem],.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.modal-dialog [role=document] table td strong,.modal-dialog [role=document] table th,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.tab-nav,.type-toggle label span,main header nav:first-child ol li>*,main table td strong,main table th,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{font-weight:var(--typo-weight-medium)}.consul-auth-method-binding-list h2,.consul-auth-method-view section h2,.consul-intention-permission-form h2,.consul-intention-view h2,.empty-state header :first-child,.modal-dialog [role=document] form h2,.modal-dialog [role=document]>header>*,html[data-route^="dc.kv.edit"] h2,main form h2,section[data-route="dc.show.license"] h2,section[data-route="dc.show.serverstatus"] h2,section[data-route="dc.show.serverstatus"] h3{font-size:var(--typo-size-300)}.consul-health-check-list .health-check-output header>*,.consul-intention-list .notice.allow header>*,.consul-intention-list .notice.deny header>*,.consul-intention-list .notice.permissions header>*,.consul-server-card .name+dd,.notice.error header>*,.notice.highlight header>*,.notice.info header>*,.notice.policy-management header>*,.notice.success header>*,.notice.warning header>*,html[data-route^="dc.services.instance.metadata"] .tab-section section h2,section[data-route="dc.show.license"] aside header>:first-child,section[data-route="dc.show.serverstatus"] .redundancy-zones h3{font-size:var(--typo-size-500)}.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.consul-intention-list td.destination,.consul-intention-list td.source,.definition-table dt,.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.hashicorp-consul nav .dcs [aria-expanded],.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button,.informed-action header,.informed-action>ul>li>*,.menu-panel>ul>[role=treeitem],.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.modal-dialog [role=document] .type-password>span,.modal-dialog [role=document] .type-select>span,.modal-dialog [role=document] .type-text>span,.modal-dialog [role=document] [role=radiogroup] label>span,.modal-dialog [role=document] table caption,.modal-dialog [role=document] table td:first-child,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.oidc-select label>span,.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.radio-card header,.tab-nav,.type-toggle>span,[role=banner] nav:last-of-type [aria-expanded],[role=banner] nav:last-of-type>ul>li>.popover-menu>label>button,[role=banner] nav:last-of-type>ul>li>a,[role=banner] nav:last-of-type>ul>li>button,[role=banner] nav:last-of-type>ul>li>span,fieldset>header,main .type-password>span,main .type-select>span,main .type-text>span,main header nav:first-child ol li>*,main table caption,main table td:first-child,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{font-size:var(--typo-size-600)}.consul-health-check-list .health-check-output dt,.modal-dialog [role=document] table td strong,.modal-dialog [role=document] table th,.type-toggle label span,main table td strong,main table th{font-size:var(--typo-size-700)}.app-view h1 span.kind-proxy,.app-view>div form button[type=button].type-delete,.app-view>div form:not(.filter-bar) [role=radiogroup] label>em,.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.auth-form em,.auth-profile,.consul-auth-method-view section,.consul-external-source,.consul-health-check-list .health-check-output dl>dd,.consul-intention-action-warn-modal button.dangerous,.consul-intention-fieldsets .permissions>button,.consul-intention-list .notice.allow,.consul-intention-list .notice.allow footer *,.consul-intention-list .notice.allow p,.consul-intention-list .notice.deny,.consul-intention-list .notice.deny footer *,.consul-intention-list .notice.deny p,.consul-intention-list .notice.permissions,.consul-intention-list .notice.permissions footer *,.consul-intention-list .notice.permissions p,.consul-intention-permission-header-list>ul>li dd,.consul-intention-permission-list>ul>li dd,.consul-kind,.consul-source,.copy-button button,.disclosure-menu [aria-expanded]~* [role=separator],.disclosure-menu [aria-expanded]~*>div,.discovery-chain .resolvers>header>*,.discovery-chain .routes>header>*,.discovery-chain .splitters>header>*,.empty-state div>button,.empty-state header :nth-child(2),.empty-state p,.empty-state>ul>li>*,.empty-state>ul>li>label>button,.has-error>strong,.informed-action p,.menu-panel [role=separator],.menu-panel>div,.modal-dialog .type-delete,.modal-dialog [role=document] .type-password>em,.modal-dialog [role=document] .type-password>span,.modal-dialog [role=document] .type-select>em,.modal-dialog [role=document] .type-select>span,.modal-dialog [role=document] .type-text>em,.modal-dialog [role=document] .type-text>span,.modal-dialog [role=document] [role=radiogroup] label>em,.modal-dialog [role=document] [role=radiogroup] label>span,.modal-dialog [role=document] form button+em,.modal-dialog [role=document] p,.modal-dialog [role=document] table td,.modal-dialog [role=document] table td p,.more-popover-menu>[type=checkbox]+label+div [role=separator],.more-popover-menu>[type=checkbox]+label+div>div,.notice.error,.notice.error footer *,.notice.error p,.notice.highlight,.notice.highlight footer *,.notice.highlight p,.notice.info,.notice.info footer *,.notice.info p,.notice.policy-management,.notice.policy-management footer *,.notice.policy-management p,.notice.success,.notice.success footer *,.notice.success p,.notice.warning,.notice.warning footer *,.notice.warning p,.oidc-select button.reset,.oidc-select button:not(.reset),.oidc-select label>em,.oidc-select label>span,.popover-menu>[type=checkbox]+label+div [role=separator],.popover-menu>[type=checkbox]+label+div>div,.popover-select label>*,.tippy-box[data-theme~=tooltip] .tippy-content,.topology-notices button,.type-dialog,.type-sort.popover-select label>*,.type-toggle>em,.type-toggle>span,.with-confirmation .type-delete,[role=banner] nav:first-of-type [role=separator],[role=banner] nav:first-of-type>ul>li>a,[role=banner] nav:first-of-type>ul>li>label,[role=contentinfo],a.type-create,button.type-cancel,button.type-submit,button[type=reset],button[type=submit],header .actions button[type=button]:not(.copy-btn),main .type-password>em,main .type-password>span,main .type-select>em,main .type-select>span,main .type-text>em,main .type-text>span,main form button+em,main p,main table td,main table td p,pre code,section[data-route="dc.show.serverstatus"] .server-failure-tolerance dt,span.label,table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator],table.has-actions tr>.actions>[type=checkbox]+label+div>div,table.with-details tr>.actions>[type=checkbox]+label+div [role=separator],table.with-details tr>.actions>[type=checkbox]+label+div>div{line-height:inherit;font-size:inherit}.consul-auth-method-view section,.consul-external-source,.consul-intention-list .notice.allow,.consul-intention-list .notice.allow p,.consul-intention-list .notice.deny,.consul-intention-list .notice.deny p,.consul-intention-list .notice.permissions,.consul-intention-list .notice.permissions p,.consul-kind,.consul-source,.notice.error,.notice.error p,.notice.highlight,.notice.highlight p,.notice.info,.notice.info p,.notice.policy-management,.notice.policy-management p,.notice.success,.notice.success p,.notice.warning,.notice.warning p,[role=banner] nav:first-of-type>ul>li>a,[role=banner] nav:first-of-type>ul>li>label,pre code{font-size:var(--typo-size-600)}.app-view h1 span.kind-proxy,.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.auth-profile,.consul-health-check-list .health-check-output dl>dd,.consul-intention-fieldsets .permissions>button,.consul-intention-permission-header-list>ul>li dd,.consul-intention-permission-list>ul>li dd,.disclosure-menu [aria-expanded]~*>div,.empty-state>ul>li>*,.empty-state>ul>li>label>button,.informed-action p,.menu-panel>div,.modal-dialog [role=document] .type-password>span,.modal-dialog [role=document] .type-select>span,.modal-dialog [role=document] .type-text>span,.modal-dialog [role=document] [role=radiogroup] label>span,.modal-dialog [role=document] table td,.modal-dialog [role=document] table td p,.more-popover-menu>[type=checkbox]+label+div>div,.oidc-select label>span,.popover-menu>[type=checkbox]+label+div>div,.type-dialog,.type-toggle>span,[role=contentinfo],main .type-password>span,main .type-select>span,main .type-text>span,main table td,main table td p,section[data-route="dc.show.serverstatus"] .server-failure-tolerance dt,span.label,table.has-actions tr>.actions>[type=checkbox]+label+div>div,table.with-details tr>.actions>[type=checkbox]+label+div>div{font-size:var(--typo-size-700)}.app-view>div form button[type=button].type-delete,.app-view>div form:not(.filter-bar) [role=radiogroup] label>em,.auth-form em,.consul-intention-action-warn-modal button.dangerous,.consul-intention-list .notice.allow footer *,.consul-intention-list .notice.deny footer *,.consul-intention-list .notice.permissions footer *,.copy-button button,.disclosure-menu [aria-expanded]~* [role=separator],.discovery-chain .resolvers>header>*,.discovery-chain .routes>header>*,.discovery-chain .splitters>header>*,.empty-state div>button,.empty-state header :nth-child(2),.empty-state p,.has-error>strong,.menu-panel [role=separator],.modal-dialog .type-delete,.modal-dialog [role=document] .type-password>em,.modal-dialog [role=document] .type-select>em,.modal-dialog [role=document] .type-text>em,.modal-dialog [role=document] [role=radiogroup] label>em,.modal-dialog [role=document] form button+em,.modal-dialog [role=document] p,.more-popover-menu>[type=checkbox]+label+div [role=separator],.notice.error footer *,.notice.highlight footer *,.notice.info footer *,.notice.policy-management footer *,.notice.success footer *,.notice.warning footer *,.oidc-select button.reset,.oidc-select button:not(.reset),.oidc-select label>em,.popover-menu>[type=checkbox]+label+div [role=separator],.popover-select label>*,.tippy-box[data-theme~=tooltip] .tippy-content,.topology-notices button,.type-sort.popover-select label>*,.type-toggle>em,.with-confirmation .type-delete,[role=banner] nav:first-of-type [role=separator],[role=contentinfo],a.type-create,button.type-cancel,button.type-submit,button[type=reset],button[type=submit],header .actions button[type=button]:not(.copy-btn),main .type-password>em,main .type-select>em,main .type-text>em,main form button+em,main p,table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator],table.with-details tr>.actions>[type=checkbox]+label+div [role=separator]{font-size:var(--typo-size-800)}::after,::before{display:inline-block;vertical-align:text-top;background-repeat:no-repeat;background-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center}::before{animation-name:var(--icon-name-start,var(--icon-name)),var(--icon-size-start,var(--icon-size,icon-000));background-color:var(--icon-color-start,var(--icon-color))}::after{animation-name:var(--icon-name-end,var(--icon-name)),var(--icon-size-end,var(--icon-size,icon-000));background-color:var(--icon-color-end,var(--icon-color))}[style*="--icon-color-start"]::before{color:var(--icon-color-start)}[style*="--icon-color-end"]::after{color:var(--icon-color-end)}[style*="--icon-name-start"]::before,[style*="--icon-name-end"]::after{content:""}@keyframes icon-000{100%{width:1.2em;height:1.2em}}@keyframes icon-100{100%{width:.625rem;height:.625rem}}@keyframes icon-200{100%{width:.75rem;height:.75rem}}@keyframes icon-300{100%{width:1rem;height:1rem}}@keyframes icon-400{100%{width:1.125rem;height:1.125rem}}@keyframes icon-500{100%{width:1.25rem;height:1.25rem}}@keyframes icon-600{100%{width:1.375rem;height:1.375rem}}@keyframes icon-700{100%{width:1.5rem;height:1.5rem}}@keyframes icon-800{100%{width:1.625rem;height:1.625rem}}@keyframes icon-900{100%{width:1.75rem;height:1.75rem}}@keyframes icon-999{100%{width:100%;height:100%}}:root:not(.prefers-color-scheme-dark){--theme-light-none:initial;--icon-aws:icon-aws-color;--icon-vault:icon-vault;--color-vault-500:rgb(var(--black));--tone-gray-000:var(--white);--tone-gray-050:var(--gray-050);--tone-gray-100:var(--gray-100);--tone-gray-150:var(--gray-150);--tone-gray-200:var(--gray-200);--tone-gray-300:var(--gray-300);--tone-gray-400:var(--gray-400);--tone-gray-500:var(--gray-500);--tone-gray-600:var(--gray-600);--tone-gray-700:var(--gray-700);--tone-gray-800:var(--gray-800);--tone-gray-850:var(--gray-850);--tone-gray-900:var(--gray-900);--tone-gray-950:var(--gray-950);--tone-gray-999:var(--black);--tone-green-000:var(--white);--tone-green-050:var(--green-050);--tone-green-100:var(--green-100);--tone-green-150:var(--green-150);--tone-green-200:var(--green-200);--tone-green-300:var(--green-300);--tone-green-400:var(--green-400);--tone-green-500:var(--green-500);--tone-green-600:var(--green-600);--tone-green-700:var(--green-700);--tone-green-800:var(--green-800);--tone-green-850:var(--green-850);--tone-green-900:var(--green-900);--tone-green-950:var(--green-950);--tone-green-999:var(--black);--tone-blue-000:var(--white);--tone-blue-050:var(--blue-050);--tone-blue-100:var(--blue-100);--tone-blue-150:var(--blue-150);--tone-blue-200:var(--blue-200);--tone-blue-300:var(--blue-300);--tone-blue-400:var(--blue-400);--tone-blue-500:var(--blue-500);--tone-blue-600:var(--blue-600);--tone-blue-700:var(--blue-700);--tone-blue-800:var(--blue-800);--tone-blue-850:var(--blue-850);--tone-blue-900:var(--blue-900);--tone-blue-950:var(--blue-950);--tone-blue-999:var(--black);--tone-red-000:var(--white);--tone-red-050:var(--red-050);--tone-red-100:var(--red-100);--tone-red-150:var(--red-150);--tone-red-200:var(--red-200);--tone-red-300:var(--red-300);--tone-red-400:var(--red-400);--tone-red-500:var(--red-500);--tone-red-600:var(--red-600);--tone-red-700:var(--red-700);--tone-red-800:var(--red-800);--tone-red-850:var(--red-850);--tone-red-900:var(--red-900);--tone-red-950:var(--red-950);--tone-red-999:var(--black);--tone-orange-000:var(--white);--tone-orange-050:var(--orange-050);--tone-orange-100:var(--orange-100);--tone-orange-150:var(--orange-150);--tone-orange-200:var(--orange-200);--tone-orange-300:var(--orange-300);--tone-orange-400:var(--orange-400);--tone-orange-500:var(--orange-500);--tone-orange-600:var(--orange-600);--tone-orange-700:var(--orange-700);--tone-orange-800:var(--orange-800);--tone-orange-850:var(--orange-850);--tone-orange-900:var(--orange-900);--tone-orange-950:var(--orange-950);--tone-orange-999:var(--black);--tone-yellow-000:var(--white);--tone-yellow-050:var(--yellow-050);--tone-yellow-100:var(--yellow-100);--tone-yellow-150:var(--yellow-150);--tone-yellow-200:var(--yellow-200);--tone-yellow-300:var(--yellow-300);--tone-yellow-400:var(--yellow-400);--tone-yellow-500:var(--yellow-500);--tone-yellow-600:var(--yellow-600);--tone-yellow-700:var(--yellow-700);--tone-yellow-800:var(--yellow-800);--tone-yellow-850:var(--yellow-850);--tone-yellow-900:var(--yellow-900);--tone-yellow-950:var(--yellow-950);--tone-yellow-999:var(--black);--tone-transparent:var(--transparent);--tone-vault-500:var(--black)}:root.prefers-color-scheme-dark,[role=banner],[role=banner] nav:first-of-type,[role=banner] nav:last-of-type{--theme-dark-none:initial;--icon-aws:icon-aws;--icon-vault:icon-vault;--color-aws-500:rgb(var(--white));--color-vault-500:rgb(var(--tone-lemon-500));--tone-gray-000:var(--black);--tone-gray-050:var(--gray-950);--tone-gray-100:var(--gray-900);--tone-gray-150:var(--gray-850);--tone-gray-200:var(--gray-800);--tone-gray-300:var(--gray-700);--tone-gray-400:var(--gray-600);--tone-gray-500:var(--gray-500);--tone-gray-600:var(--gray-400);--tone-gray-700:var(--gray-300);--tone-gray-800:var(--gray-200);--tone-gray-850:var(--gray-250);--tone-gray-900:var(--gray-100);--tone-gray-950:var(--gray-050);--tone-gray-999:var(--white);--tone-green-000:var(--white);--tone-green-050:var(--green-050);--tone-green-100:var(--green-100);--tone-green-150:var(--green-150);--tone-green-200:var(--green-200);--tone-green-300:var(--green-300);--tone-green-400:var(--green-400);--tone-green-500:var(--green-500);--tone-green-600:var(--green-600);--tone-green-700:var(--green-700);--tone-green-800:var(--green-800);--tone-green-850:var(--green-850);--tone-green-900:var(--green-900);--tone-green-950:var(--green-950);--tone-green-999:var(--black);--tone-blue-000:var(--white);--tone-blue-050:var(--blue-050);--tone-blue-100:var(--blue-100);--tone-blue-150:var(--blue-150);--tone-blue-200:var(--blue-200);--tone-blue-300:var(--blue-300);--tone-blue-400:var(--blue-400);--tone-blue-500:var(--blue-500);--tone-blue-600:var(--blue-600);--tone-blue-700:var(--blue-700);--tone-blue-800:var(--blue-800);--tone-blue-850:var(--blue-850);--tone-blue-900:var(--blue-900);--tone-blue-950:var(--blue-950);--tone-blue-999:var(--black);--tone-red-000:var(--white);--tone-red-050:var(--red-050);--tone-red-100:var(--red-100);--tone-red-150:var(--red-150);--tone-red-200:var(--red-200);--tone-red-300:var(--red-300);--tone-red-400:var(--red-400);--tone-red-500:var(--red-500);--tone-red-600:var(--red-600);--tone-red-700:var(--red-700);--tone-red-800:var(--red-800);--tone-red-850:var(--red-850);--tone-red-900:var(--red-900);--tone-red-950:var(--red-950);--tone-red-999:var(--black);--tone-orange-000:var(--white);--tone-orange-050:var(--orange-050);--tone-orange-100:var(--orange-100);--tone-orange-150:var(--orange-150);--tone-orange-200:var(--orange-200);--tone-orange-300:var(--orange-300);--tone-orange-400:var(--orange-400);--tone-orange-500:var(--orange-500);--tone-orange-600:var(--orange-600);--tone-orange-700:var(--orange-700);--tone-orange-800:var(--orange-800);--tone-orange-850:var(--orange-850);--tone-orange-900:var(--orange-900);--tone-orange-950:var(--orange-950);--tone-orange-999:var(--black);--tone-yellow-000:var(--black);--tone-yellow-050:var(--blue-950);--tone-yellow-100:var(--yellow-900);--tone-yellow-150:var(--yellow-850);--tone-yellow-200:var(--yellow-800);--tone-yellow-300:var(--yellow-700);--tone-yellow-400:var(--yellow-600);--tone-yellow-500:var(--yellow-500);--tone-yellow-600:var(--yellow-400);--tone-yellow-700:var(--yellow-300);--tone-yellow-800:var(--yellow-200);--tone-yellow-850:var(--yellow-250);--tone-yellow-900:var(--yellow-100);--tone-yellow-950:var(--yellow-050);--tone-yellow-999:var(--white);--tone-transparent:var(--transparent);--tone-vault-500:var(--lemon-500)}.consul-intention-permission-header-list dt::before,.consul-intention-permission-list dt::before,.discovery-chain .resolver-card dt,.discovery-chain .route-card section header>::before{font-weight:var(--typo-weight-normal);background-color:rgb(var(--tone-gray-100));visibility:visible;padding:0 4px}#downstream-container .topology-metrics-card .details .group span::before,#downstream-container .topology-metrics-card div .critical::before,#downstream-container .topology-metrics-card div .empty::before,#downstream-container .topology-metrics-card div .health dt::before,#downstream-container .topology-metrics-card div .nspace dt::before,#downstream-container .topology-metrics-card div .partition dt::before,#downstream-container .topology-metrics-card div .passing::before,#downstream-container .topology-metrics-card div .warning::before,#downstream-container>div:first-child span::before,#login-toggle+div footer button::after,#metrics-container .link .config-link::before,#metrics-container .link .metrics-link::before,#metrics-container:hover .sparkline-key-link::before,#upstream-container .topology-metrics-card .details .group span::before,#upstream-container .topology-metrics-card div .critical::before,#upstream-container .topology-metrics-card div .empty::before,#upstream-container .topology-metrics-card div .health dt::before,#upstream-container .topology-metrics-card div .nspace dt::before,#upstream-container .topology-metrics-card div .partition dt::before,#upstream-container .topology-metrics-card div .passing::before,#upstream-container .topology-metrics-card div .warning::before,.animatable.tab-nav ul::after,.certificate button.hide::before,.certificate button.show::before,.consul-auth-method-binding-list dl dt.type+dd span::before,.consul-auth-method-list ul .locality::before,.consul-auth-method-view dl dt.type+dd span::before,.consul-auth-method-view section dl dt.type+dd span::before,.consul-bucket-list .nspace::before,.consul-bucket-list .partition::before,.consul-exposed-path-list>ul>li>.detail .policy-management::before,.consul-exposed-path-list>ul>li>.detail .policy::before,.consul-exposed-path-list>ul>li>.detail .role::before,.consul-exposed-path-list>ul>li>.detail dl.address dt::before,.consul-exposed-path-list>ul>li>.detail dl.behavior dt::before,.consul-exposed-path-list>ul>li>.detail dl.checks dt::before,.consul-exposed-path-list>ul>li>.detail dl.critical dt::before,.consul-exposed-path-list>ul>li>.detail dl.datacenter dt::before,.consul-exposed-path-list>ul>li>.detail dl.empty dt::before,.consul-exposed-path-list>ul>li>.detail dl.lock-delay dt::before,.consul-exposed-path-list>ul>li>.detail dl.mesh dt::before,.consul-exposed-path-list>ul>li>.detail dl.node dt::before,.consul-exposed-path-list>ul>li>.detail dl.nspace dt::before,.consul-exposed-path-list>ul>li>.detail dl.passing dt::before,.consul-exposed-path-list>ul>li>.detail dl.path dt::before,.consul-exposed-path-list>ul>li>.detail dl.port dt::before,.consul-exposed-path-list>ul>li>.detail dl.protocol dt::before,.consul-exposed-path-list>ul>li>.detail dl.socket dt::before,.consul-exposed-path-list>ul>li>.detail dl.ttl dt::before,.consul-exposed-path-list>ul>li>.detail dl.warning dt::before,.consul-exposed-path-list>ul>li>.header .critical dd::before,.consul-exposed-path-list>ul>li>.header .empty dd::before,.consul-exposed-path-list>ul>li>.header .passing dd::before,.consul-exposed-path-list>ul>li>.header .policy-management dd::before,.consul-exposed-path-list>ul>li>.header .warning dd::before,.consul-exposed-path-list>ul>li>.header [rel=me] dd::before,.consul-external-source.consul-api-gateway::before,.consul-external-source.consul::before,.consul-external-source.jwt::before,.consul-external-source.kubernetes::before,.consul-external-source.leader::before,.consul-external-source.nomad::before,.consul-external-source.oidc::before,.consul-external-source.terraform::before,.consul-health-check-list .health-check-output dd em.jwt::before,.consul-health-check-list .health-check-output dd em.kubernetes::before,.consul-health-check-list .health-check-output dd em.oidc::before,.consul-health-check-list .health-check-output::before,.consul-instance-checks dt::before,.consul-intention-fieldsets .value->:last-child::before,.consul-intention-fieldsets .value-allow>:last-child::before,.consul-intention-fieldsets .value-deny>:last-child::before,.consul-intention-list .notice.allow::before,.consul-intention-list .notice.deny::before,.consul-intention-list .notice.permissions::before,.consul-intention-list em span::before,.consul-intention-list td strong.jwt::before,.consul-intention-list td strong.kubernetes::before,.consul-intention-list td strong.oidc::before,.consul-intention-list td.intent- strong::before,.consul-intention-list td.intent-allow strong::before,.consul-intention-list td.intent-deny strong::before,.consul-intention-permission-list .intent-allow::before,.consul-intention-permission-list .intent-deny::before,.consul-intention-permission-list strong.jwt::before,.consul-intention-permission-list strong.kubernetes::before,.consul-intention-permission-list strong.oidc::before,.consul-intention-search-bar .value- span::before,.consul-intention-search-bar .value-allow span::before,.consul-intention-search-bar .value-deny span::before,.consul-intention-search-bar li button span.jwt::before,.consul-intention-search-bar li button span.kubernetes::before,.consul-intention-search-bar li button span.oidc::before,.consul-kind::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .policy-management::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .policy::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .role::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.address dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.behavior dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.checks dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.critical dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.datacenter dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.empty dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.lock-delay dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.mesh dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.node dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.nspace dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.passing dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.path dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.port dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.protocol dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.socket dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.ttl dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.warning dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .critical dd::before,.consul-lock-session-list ul>li:not(:first-child)>.header .empty dd::before,.consul-lock-session-list ul>li:not(:first-child)>.header .passing dd::before,.consul-lock-session-list ul>li:not(:first-child)>.header .policy-management dd::before,.consul-lock-session-list ul>li:not(:first-child)>.header .warning dd::before,.consul-lock-session-list ul>li:not(:first-child)>.header [rel=me] dd::before,.consul-server-card .health-status+dd.jwt::before,.consul-server-card .health-status+dd.kubernetes::before,.consul-server-card .health-status+dd.oidc::before,.consul-upstream-instance-list dl.datacenter dt::before,.consul-upstream-instance-list dl.nspace dt::before,.consul-upstream-instance-list dl.partition dt::before,.consul-upstream-instance-list li>.detail .policy-management::before,.consul-upstream-instance-list li>.detail .policy::before,.consul-upstream-instance-list li>.detail .role::before,.consul-upstream-instance-list li>.detail dl.address dt::before,.consul-upstream-instance-list li>.detail dl.behavior dt::before,.consul-upstream-instance-list li>.detail dl.checks dt::before,.consul-upstream-instance-list li>.detail dl.critical dt::before,.consul-upstream-instance-list li>.detail dl.datacenter dt::before,.consul-upstream-instance-list li>.detail dl.empty dt::before,.consul-upstream-instance-list li>.detail dl.lock-delay dt::before,.consul-upstream-instance-list li>.detail dl.mesh dt::before,.consul-upstream-instance-list li>.detail dl.node dt::before,.consul-upstream-instance-list li>.detail dl.nspace dt::before,.consul-upstream-instance-list li>.detail dl.passing dt::before,.consul-upstream-instance-list li>.detail dl.path dt::before,.consul-upstream-instance-list li>.detail dl.port dt::before,.consul-upstream-instance-list li>.detail dl.protocol dt::before,.consul-upstream-instance-list li>.detail dl.socket dt::before,.consul-upstream-instance-list li>.detail dl.ttl dt::before,.consul-upstream-instance-list li>.detail dl.warning dt::before,.consul-upstream-instance-list li>.header .critical dd::before,.consul-upstream-instance-list li>.header .empty dd::before,.consul-upstream-instance-list li>.header .passing dd::before,.consul-upstream-instance-list li>.header .policy-management dd::before,.consul-upstream-instance-list li>.header .warning dd::before,.consul-upstream-instance-list li>.header [rel=me] dd::before,.consul-upstream-list dl.partition dt::before,.copy-button button::before,.dangerous.informed-action header::before,.disclosure-menu [aria-expanded]~*>ul>li.is-active>::after,.disclosure-menu [aria-expanded]~*>ul>li[aria-checked]>::after,.disclosure-menu [aria-expanded]~*>ul>li[aria-current]>::after,.disclosure-menu [aria-expanded]~*>ul>li[aria-selected]>::after,.discovery-chain .resolvers>header span::after,.discovery-chain .route-card::before,.discovery-chain .route-card>header ul li.jwt::before,.discovery-chain .route-card>header ul li.kubernetes::before,.discovery-chain .route-card>header ul li.oidc::before,.discovery-chain .routes>header span::after,.discovery-chain .splitter-card::before,.discovery-chain .splitters>header span::after,.empty-state li[class*=-link]>::after,.has-error>strong::before,.hashicorp-consul .docs-link a::after,.hashicorp-consul .feedback-link a::after,.hashicorp-consul .learn-link a::after,.hashicorp-consul nav .dcs li.is-local span.jwt::before,.hashicorp-consul nav .dcs li.is-local span.kubernetes::before,.hashicorp-consul nav .dcs li.is-local span.oidc::before,.hashicorp-consul nav .dcs li.is-primary span.jwt::before,.hashicorp-consul nav .dcs li.is-primary span.kubernetes::before,.hashicorp-consul nav .dcs li.is-primary span.oidc::before,.hashicorp-consul nav li.nspaces .disclosure-menu>button::after,.hashicorp-consul nav li.partitions .disclosure-menu>button::after,.info.informed-action header::before,.jwt.consul-auth-method-type::before,.jwt.consul-external-source::before,.jwt.consul-kind::before,.jwt.consul-source::before,.jwt.consul-transparent-proxy::before,.jwt.leader::before,.jwt.topology-metrics-source-type::before,.kubernetes.consul-auth-method-type::before,.kubernetes.consul-external-source::before,.kubernetes.consul-kind::before,.kubernetes.consul-source::before,.kubernetes.consul-transparent-proxy::before,.kubernetes.informed-action header::before,.kubernetes.leader::before,.kubernetes.topology-metrics-source-type::before,.leader::before,.list-collection>button::after,.list-collection>ul>li:not(:first-child)>.detail .policy-management::before,.list-collection>ul>li:not(:first-child)>.detail .policy::before,.list-collection>ul>li:not(:first-child)>.detail .role::before,.list-collection>ul>li:not(:first-child)>.detail dl.address dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.behavior dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.checks dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.critical dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.datacenter dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.empty dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.lock-delay dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.mesh dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.node dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.nspace dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.passing dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.path dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.port dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.protocol dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.socket dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.ttl dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.warning dt::before,.list-collection>ul>li:not(:first-child)>.header .critical dd::before,.list-collection>ul>li:not(:first-child)>.header .empty dd::before,.list-collection>ul>li:not(:first-child)>.header .passing dd::before,.list-collection>ul>li:not(:first-child)>.header .policy-management dd::before,.list-collection>ul>li:not(:first-child)>.header .warning dd::before,.list-collection>ul>li:not(:first-child)>.header [rel=me] dd::before,.menu-panel>ul>li.is-active>::after,.menu-panel>ul>li[aria-checked]>::after,.menu-panel>ul>li[aria-current]>::after,.menu-panel>ul>li[aria-selected]>::after,.modal-dialog [role=document] a[rel*=help]::after,.modal-dialog [role=document] table td.folder::before,.modal-dialog [role=document] table th span::after,.modal-dialog [role=document]>header button::before,.more-popover-menu>[type=checkbox]+label+div>ul>li.is-active>::after,.more-popover-menu>[type=checkbox]+label+div>ul>li[aria-checked]>::after,.more-popover-menu>[type=checkbox]+label+div>ul>li[aria-current]>::after,.more-popover-menu>[type=checkbox]+label+div>ul>li[aria-selected]>::after,.more-popover-menu>[type=checkbox]+label>::after,.notice.error::before,.notice.highlight::before,.notice.info::before,.notice.policy-management::before,.notice.success::before,.notice.warning::before,.oidc-select .auth0-oidc-provider::before,.oidc-select .google-oidc-provider::before,.oidc-select .microsoft-oidc-provider::before,.oidc-select .okta-oidc-provider::before,.oidc.consul-auth-method-type::before,.oidc.consul-external-source::before,.oidc.consul-kind::before,.oidc.consul-source::before,.oidc.consul-transparent-proxy::before,.oidc.leader::before,.oidc.topology-metrics-source-type::before,.popover-menu>[type=checkbox]+label+div>ul>li.is-active>::after,.popover-menu>[type=checkbox]+label+div>ul>li[aria-checked]>::after,.popover-menu>[type=checkbox]+label+div>ul>li[aria-current]>::after,.popover-menu>[type=checkbox]+label+div>ul>li[aria-selected]>::after,.popover-menu>[type=checkbox]+label>::after,.popover-select .consul button::before,.popover-select .consul-api-gateway button::before,.popover-select .jwt button::before,.popover-select .kubernetes button::before,.popover-select .nomad button::before,.popover-select .oidc button::before,.popover-select .terraform button::before,.popover-select .value-critical button::before,.popover-select .value-empty button::before,.popover-select .value-passing button::before,.popover-select .value-warning button::before,.search-bar-status li.jwt:not(.remove-all)::before,.search-bar-status li.kubernetes:not(.remove-all)::before,.search-bar-status li.oidc:not(.remove-all)::before,.search-bar-status li:not(.remove-all) button::before,.sparkline-key h3::before,.tag-list dt::before,.tooltip-panel dd>div::before,.topology-metrics-popover.deny .tippy-arrow::after,.topology-metrics-popover.deny>button::before,.topology-metrics-popover.l7 .tippy-arrow::after,.topology-metrics-popover.l7>button::before,.topology-metrics-popover.not-defined .tippy-arrow::after,.topology-metrics-popover.not-defined>button::before,.topology-metrics-status-error span::before,.topology-metrics-status-loader span::before,.topology-notices button::before,.type-reveal span::before,.type-sort.popover-select label>::before,.type-source.popover-select li.partition button::before,.warning.informed-action header::before,.warning.modal-dialog header::before,[class*=status-].empty-state header::before,a[rel*=external]::after,html[data-route^="dc.acls.index"] main td strong.jwt::before,html[data-route^="dc.acls.index"] main td strong.kubernetes::before,html[data-route^="dc.acls.index"] main td strong.oidc::before,main a[rel*=help]::after,main header nav:first-child ol li:first-child a::before,main table td.folder::before,main table th span::after,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.jwt::before,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.kubernetes::before,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.oidc::before,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em.jwt::before,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em.kubernetes::before,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em.oidc::before,span.jwt.policy-node-identity::before,span.jwt.policy-service-identity::before,span.kubernetes.policy-node-identity::before,span.kubernetes.policy-service-identity::before,span.oidc.policy-node-identity::before,span.oidc.policy-service-identity::before,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.is-active>::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li[aria-checked]>::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li[aria-current]>::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li[aria-selected]>::after,table.has-actions tr>.actions>[type=checkbox]+label>::after,table.with-details td:only-child>div>label::before,table.with-details td>label::before,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.is-active>::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li[aria-checked]>::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li[aria-current]>::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li[aria-selected]>::after,table.with-details tr>.actions>[type=checkbox]+label>::after,td.tags dt::before{content:""}.hashicorp-consul .acls-separator span{box-sizing:border-box;width:12px;height:12px}.hashicorp-consul .acls-separator span::after,.hashicorp-consul .acls-separator span::before{content:"";display:block;width:100%;height:100%;border-radius:100%}.hashicorp-consul .acls-separator span::before{border:1px solid currentColor;opacity:.5}.ember-power-select-trigger,.ember-power-select-trigger--active,.ember-power-select-trigger:focus{border-top:1px solid #aaa;border-bottom:1px solid #aaa;border-right:1px solid #aaa;border-left:1px solid #aaa}.hashicorp-consul .acls-separator span::after{position:absolute;top:2px;left:2px;width:calc(100% - 4px);height:calc(100% - 4px);background-color:currentColor}@keyframes icon-alert-circle-outline{100%{-webkit-mask-image:var(--icon-alert-circle-16);mask-image:var(--icon-alert-circle-16);background-color:var(--icon-color,var(--color-alert-circle-outline-500,currentColor))}}[class*=status-].empty-state header::before{--icon-name:icon-alert-circle-outline;content:""}@keyframes icon-alert-triangle{100%{-webkit-mask-image:var(--icon-alert-triangle-16);mask-image:var(--icon-alert-triangle-16);background-color:var(--icon-color,var(--color-alert-triangle-500,currentColor))}}#downstream-container .topology-metrics-card div .warning::before,#upstream-container .topology-metrics-card div .warning::before,.consul-exposed-path-list>ul>li>.detail dl.warning dt::before,.consul-exposed-path-list>ul>li>.header .warning dd::before,.consul-health-check-list .warning.health-check-output::before,.consul-instance-checks.warning dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.warning dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .warning dd::before,.consul-upstream-instance-list li>.detail dl.warning dt::before,.consul-upstream-instance-list li>.header .warning dd::before,.dangerous.informed-action header::before,.list-collection>ul>li:not(:first-child)>.detail dl.warning dt::before,.list-collection>ul>li:not(:first-child)>.header .warning dd::before,.notice.warning::before,.popover-select .value-warning button::before,.topology-metrics-popover.not-defined .tippy-arrow::after,.topology-metrics-popover.not-defined>button::before,.warning.informed-action header::before,.warning.modal-dialog header::before{--icon-name:icon-alert-triangle;content:""}@keyframes icon-arrow-right{100%{-webkit-mask-image:var(--icon-arrow-right-16);mask-image:var(--icon-arrow-right-16);background-color:var(--icon-color,var(--color-arrow-right-500,currentColor))}}@keyframes icon-cancel-plain{100%{-webkit-mask-image:var(--icon-x-16);mask-image:var(--icon-x-16);background-color:var(--icon-color,var(--color-cancel-plain-500,currentColor))}}.modal-dialog [role=document]>header button::before,.search-bar-status li:not(.remove-all) button::before{--icon-name:icon-cancel-plain;content:""}@keyframes icon-cancel-square-fill{100%{-webkit-mask-image:var(--icon-x-square-fill-16);mask-image:var(--icon-x-square-fill-16);background-color:var(--icon-color,var(--color-cancel-square-fill-500,currentColor))}}#downstream-container .topology-metrics-card div .critical::before,#upstream-container .topology-metrics-card div .critical::before,.consul-exposed-path-list>ul>li>.detail dl.critical dt::before,.consul-exposed-path-list>ul>li>.header .critical dd::before,.consul-health-check-list .critical.health-check-output::before,.consul-instance-checks.critical dt::before,.consul-intention-list .notice.deny::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.critical dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .critical dd::before,.consul-upstream-instance-list li>.detail dl.critical dt::before,.consul-upstream-instance-list li>.header .critical dd::before,.has-error>strong::before,.list-collection>ul>li:not(:first-child)>.detail dl.critical dt::before,.list-collection>ul>li:not(:first-child)>.header .critical dd::before,.notice.error::before,.popover-select .value-critical button::before,.topology-metrics-popover.deny .tippy-arrow::after,.topology-metrics-popover.deny>button::before{--icon-name:icon-cancel-square-fill;content:""}@keyframes icon-check-plain{100%{-webkit-mask-image:var(--icon-check-16);mask-image:var(--icon-check-16);background-color:var(--icon-color,var(--color-check-plain-500,currentColor))}}.disclosure-menu [aria-expanded]~*>ul>li.is-active>::after,.disclosure-menu [aria-expanded]~*>ul>li[aria-checked]>::after,.disclosure-menu [aria-expanded]~*>ul>li[aria-current]>::after,.disclosure-menu [aria-expanded]~*>ul>li[aria-selected]>::after,.menu-panel>ul>li.is-active>::after,.menu-panel>ul>li[aria-checked]>::after,.menu-panel>ul>li[aria-current]>::after,.menu-panel>ul>li[aria-selected]>::after,.more-popover-menu>[type=checkbox]+label+div>ul>li.is-active>::after,.more-popover-menu>[type=checkbox]+label+div>ul>li[aria-checked]>::after,.more-popover-menu>[type=checkbox]+label+div>ul>li[aria-current]>::after,.more-popover-menu>[type=checkbox]+label+div>ul>li[aria-selected]>::after,.popover-menu>[type=checkbox]+label+div>ul>li.is-active>::after,.popover-menu>[type=checkbox]+label+div>ul>li[aria-checked]>::after,.popover-menu>[type=checkbox]+label+div>ul>li[aria-current]>::after,.popover-menu>[type=checkbox]+label+div>ul>li[aria-selected]>::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.is-active>::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li[aria-checked]>::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li[aria-current]>::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li[aria-selected]>::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.is-active>::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li[aria-checked]>::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li[aria-current]>::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li[aria-selected]>::after{--icon-name:icon-check-plain;content:""}@keyframes icon-chevron-down{100%{-webkit-mask-image:var(--icon-chevron-down-16);mask-image:var(--icon-chevron-down-16);background-color:var(--icon-color,var(--color-chevron-down-500,currentColor))}}.hashicorp-consul nav li.nspaces .disclosure-menu>button::after,.hashicorp-consul nav li.partitions .disclosure-menu>button::after,.list-collection>button.closed::after,.more-popover-menu>[type=checkbox]+label>::after,.popover-menu>[type=checkbox]+label>::after,.topology-notices button::before,table.has-actions tr>.actions>[type=checkbox]+label>::after,table.with-details td:only-child>div>label::before,table.with-details td>label::before,table.with-details tr>.actions>[type=checkbox]+label>::after{--icon-name:icon-chevron-down;content:""}@keyframes icon-copy-action{100%{-webkit-mask-image:var(--icon-clipboard-copy-16);mask-image:var(--icon-clipboard-copy-16);background-color:var(--icon-color,var(--color-copy-action-500,currentColor))}}.copy-button button::before{--icon-name:icon-copy-action;content:"";--icon-color:rgb(var(--tone-gray-500))}@keyframes icon-deny-alt{100%{-webkit-mask-image:var(--icon-skip-16);mask-image:var(--icon-skip-16);background-color:var(--icon-color,var(--color-deny-alt-500,currentColor))}}@keyframes icon-deny-default{100%{-webkit-mask-image:var(--icon-skip-16);mask-image:var(--icon-skip-16);background-color:var(--icon-color,var(--color-deny-default-500,currentColor))}}@keyframes icon-disabled{100%{-webkit-mask-image:var(--icon-skip-16);mask-image:var(--icon-skip-16);background-color:var(--icon-color,var(--color-disabled-500,currentColor))}}.status-403.empty-state header::before{--icon-name:icon-disabled;content:""}@keyframes icon-docs{100%{-webkit-mask-image:var(--icon-docs-16);mask-image:var(--icon-docs-16);background-color:var(--icon-color,var(--color-docs-500,currentColor))}}#metrics-container .link .config-link::before,.empty-state .docs-link>::after,.hashicorp-consul .docs-link a::after{--icon-name:icon-docs;content:""}@keyframes icon-exit{100%{-webkit-mask-image:var(--icon-external-link-16);mask-image:var(--icon-external-link-16);background-color:var(--icon-color,var(--color-exit-500,currentColor))}}#metrics-container .link .metrics-link::before,a[rel*=external]::after{--icon-name:icon-exit;content:""}@keyframes icon-file-fill{100%{-webkit-mask-image:var(--icon-file-16);mask-image:var(--icon-file-16);background-color:var(--icon-color,var(--color-file-fill-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail .policy::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .policy::before,.consul-upstream-instance-list li>.detail .policy::before,.list-collection>ul>li:not(:first-child)>.detail .policy::before{--icon-name:icon-file-fill;content:""}@keyframes icon-folder-outline{100%{-webkit-mask-image:var(--icon-folder-16);mask-image:var(--icon-folder-16);background-color:var(--icon-color,var(--color-folder-outline-500,currentColor))}}#downstream-container .topology-metrics-card div .nspace dt::before,#upstream-container .topology-metrics-card div .nspace dt::before,.consul-bucket-list .nspace::before,.consul-exposed-path-list>ul>li>.detail dl.nspace dt::before,.consul-intention-list span[class|=nspace]::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.nspace dt::before,.consul-upstream-instance-list dl.nspace dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.nspace dt::before,.modal-dialog [role=document] table td.folder::before,main table td.folder::before{--icon-name:icon-folder-outline;content:""}@keyframes icon-health{100%{-webkit-mask-image:var(--icon-activity-16);mask-image:var(--icon-activity-16);background-color:var(--icon-color,var(--color-health-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.checks dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.checks dt::before,.consul-upstream-instance-list li>.detail dl.checks dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.checks dt::before{--icon-name:icon-health;content:""}@keyframes icon-help-circle-outline{100%{-webkit-mask-image:var(--icon-help-16);mask-image:var(--icon-help-16);background-color:var(--icon-color,var(--color-help-circle-outline-500,currentColor))}}#downstream-container .topology-metrics-card div .health dt::before,#upstream-container .topology-metrics-card div .health dt::before,.status-404.empty-state header::before{--icon-name:icon-help-circle-outline;content:""}@keyframes icon-info-circle-fill{100%{-webkit-mask-image:var(--icon-info-16);mask-image:var(--icon-info-16);background-color:var(--icon-color,var(--color-info-circle-fill-500,currentColor))}}#metrics-container:hover .sparkline-key-link::before,.consul-intention-list .notice.permissions::before,.info.informed-action header::before,.notice.info::before,.sparkline-key h3::before{--icon-name:icon-info-circle-fill;content:""}@keyframes icon-info-circle-outline{100%{-webkit-mask-image:var(--icon-info-16);mask-image:var(--icon-info-16);background-color:var(--icon-color,var(--color-info-circle-outline-500,currentColor))}}#downstream-container>div:first-child span::before,.consul-auth-method-binding-list dl dt.type+dd span::before,.consul-auth-method-view dl dt.type+dd span::before,.consul-exposed-path-list>ul>li>.detail dl.behavior dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.behavior dt::before,.consul-upstream-instance-list li>.detail dl.behavior dt::before,.discovery-chain .resolvers>header span::after,.discovery-chain .routes>header span::after,.discovery-chain .splitters>header span::after,.list-collection>ul>li:not(:first-child)>.detail dl.behavior dt::before,.modal-dialog [role=document] a[rel*=help]::after,.modal-dialog [role=document] table th span::after,.topology-metrics-status-error span::before,.topology-metrics-status-loader span::before,main a[rel*=help]::after,main table th span::after{--icon-name:icon-info-circle-outline;content:""}@keyframes icon-learn{100%{-webkit-mask-image:var(--icon-learn-16);mask-image:var(--icon-learn-16);background-color:var(--icon-color,var(--color-learn-500,currentColor))}}.empty-state .learn-link>::after,.hashicorp-consul .learn-link a::after{--icon-name:icon-learn;content:""}@keyframes icon-logo-github-monochrome{100%{-webkit-mask-image:var(--icon-github-color-16);mask-image:var(--icon-github-color-16);background-color:var(--icon-color,var(--color-logo-github-monochrome-500,currentColor))}}.hashicorp-consul .feedback-link a::after{--icon-name:icon-logo-github-monochrome;content:""}@keyframes icon-logo-google-color{100%{background-image:var(--icon-google-color-16)}}.oidc-select .google-oidc-provider::before{--icon-name:icon-logo-google-color;content:""}@keyframes icon-logo-kubernetes-color{100%{background-image:var(--icon-kubernetes-color-16)}}.consul-external-source.kubernetes::before,.consul-health-check-list .health-check-output dd em.kubernetes::before,.consul-intention-list td strong.kubernetes::before,.consul-intention-permission-list strong.kubernetes::before,.consul-intention-search-bar li button span.kubernetes::before,.consul-server-card .health-status+dd.kubernetes::before,.discovery-chain .route-card>header ul li.kubernetes::before,.hashicorp-consul nav .dcs li.is-local span.kubernetes::before,.hashicorp-consul nav .dcs li.is-primary span.kubernetes::before,.kubernetes.consul-auth-method-type::before,.kubernetes.consul-kind::before,.kubernetes.consul-source::before,.kubernetes.consul-transparent-proxy::before,.kubernetes.informed-action header::before,.kubernetes.leader::before,.kubernetes.topology-metrics-source-type::before,.notice.crd::before,.popover-select .kubernetes button::before,.search-bar-status li.kubernetes:not(.remove-all)::before,html[data-route^="dc.acls.index"] main td strong.kubernetes::before,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.kubernetes::before,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em.kubernetes::before,span.kubernetes.policy-node-identity::before,span.kubernetes.policy-service-identity::before{--icon-name:icon-logo-kubernetes-color;content:""}@keyframes icon-menu{100%{-webkit-mask-image:var(--icon-menu-16);mask-image:var(--icon-menu-16);background-color:var(--icon-color,var(--color-menu-500,currentColor))}}@keyframes icon-minus-square-fill{100%{-webkit-mask-image:var(--icon-minus-square-16);mask-image:var(--icon-minus-square-16);background-color:var(--icon-color,var(--color-minus-square-fill-500,currentColor))}}#downstream-container .topology-metrics-card div .empty::before,#upstream-container .topology-metrics-card div .empty::before,.consul-exposed-path-list>ul>li>.detail dl.empty dt::before,.consul-exposed-path-list>ul>li>.header .empty dd::before,.consul-instance-checks.empty dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.empty dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .empty dd::before,.consul-upstream-instance-list li>.detail dl.empty dt::before,.consul-upstream-instance-list li>.header .empty dd::before,.list-collection>ul>li:not(:first-child)>.detail dl.empty dt::before,.list-collection>ul>li:not(:first-child)>.header .empty dd::before,.popover-select .value-empty button::before{--icon-name:icon-minus-square-fill;content:""}@keyframes icon-more-horizontal{100%{-webkit-mask-image:var(--icon-more-horizontal-16);mask-image:var(--icon-more-horizontal-16);background-color:var(--icon-color,var(--color-more-horizontal-500,currentColor))}}@keyframes icon-public-default{100%{-webkit-mask-image:var(--icon-globe-16);mask-image:var(--icon-globe-16);background-color:var(--icon-color,var(--color-public-default-500,currentColor))}}.consul-auth-method-list ul .locality::before,.consul-exposed-path-list>ul>li>.detail dl.address dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.address dt::before,.consul-upstream-instance-list li>.detail dl.address dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.address dt::before{--icon-name:icon-public-default;content:""}@keyframes icon-search{100%{-webkit-mask-image:var(--icon-search-16);mask-image:var(--icon-search-16);background-color:var(--icon-color,var(--color-search-500,currentColor))}}@keyframes icon-star-outline{100%{-webkit-mask-image:var(--icon-star-16);mask-image:var(--icon-star-16);background-color:var(--icon-color,var(--color-star-outline-500,currentColor))}}.consul-external-source.leader::before,.leader::before{--icon-name:icon-star-outline;content:""}@keyframes icon-user-organization{100%{-webkit-mask-image:var(--icon-org-16);mask-image:var(--icon-org-16);background-color:var(--icon-color,var(--color-user-organization-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.datacenter dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.datacenter dt::before,.consul-upstream-instance-list dl.datacenter dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.datacenter dt::before{--icon-name:icon-user-organization;content:""}@keyframes icon-user-plain{100%{-webkit-mask-image:var(--icon-user-16);mask-image:var(--icon-user-16);background-color:var(--icon-color,var(--color-user-plain-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail .role::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .role::before,.consul-upstream-instance-list li>.detail .role::before,.list-collection>ul>li:not(:first-child)>.detail .role::before{--icon-name:icon-user-plain;content:""}@keyframes icon-user-team{100%{-webkit-mask-image:var(--icon-users-16);mask-image:var(--icon-users-16);background-color:var(--icon-color,var(--color-user-team-500,currentColor))}}#downstream-container .topology-metrics-card div .partition dt::before,#upstream-container .topology-metrics-card div .partition dt::before,.consul-bucket-list .partition::before,.consul-intention-list span[class|=partition]::before,.consul-upstream-instance-list dl.partition dt::before,.consul-upstream-list dl.partition dt::before,.type-source.popover-select li.partition button::before{--icon-name:icon-user-team;content:""}@keyframes icon-visibility-hide{100%{-webkit-mask-image:var(--icon-eye-off-16);mask-image:var(--icon-eye-off-16);background-color:var(--icon-color,var(--color-visibility-hide-500,currentColor))}}.certificate button.hide::before,.type-reveal input:checked+span::before{--icon-name:icon-visibility-hide;content:""}@keyframes icon-visibility-show{100%{-webkit-mask-image:var(--icon-eye-16);mask-image:var(--icon-eye-16);background-color:var(--icon-color,var(--color-visibility-show-500,currentColor))}}.certificate button.show::before,.type-reveal span::before{--icon-name:icon-visibility-show;content:""}@keyframes icon-alert-circle{100%{-webkit-mask-image:var(--icon-alert-circle-16);mask-image:var(--icon-alert-circle-16);background-color:var(--icon-color,var(--color-alert-circle-500,currentColor))}}@keyframes icon-aws{100%{-webkit-mask-image:var(--icon-aws-color-16);mask-image:var(--icon-aws-color-16);background-color:var(--icon-color,var(--color-aws-500,currentColor))}}@keyframes icon-aws-color{100%{background-image:var(--icon-aws-color-16)}}@keyframes icon-check{100%{-webkit-mask-image:var(--icon-check-16);mask-image:var(--icon-check-16);background-color:var(--icon-color,var(--color-check-500,currentColor))}}@keyframes icon-check-circle{100%{-webkit-mask-image:var(--icon-check-circle-16);mask-image:var(--icon-check-circle-16);background-color:var(--icon-color,var(--color-check-circle-500,currentColor))}}@keyframes icon-check-circle-fill{100%{-webkit-mask-image:var(--icon-check-circle-fill-16);mask-image:var(--icon-check-circle-fill-16);background-color:var(--icon-color,var(--color-check-circle-fill-500,currentColor))}}#downstream-container .topology-metrics-card div .passing::before,#upstream-container .topology-metrics-card div .passing::before,.consul-exposed-path-list>ul>li>.detail dl.passing dt::before,.consul-exposed-path-list>ul>li>.header .passing dd::before,.consul-exposed-path-list>ul>li>.header [rel=me] dd::before,.consul-health-check-list .passing.health-check-output::before,.consul-instance-checks.passing dt::before,.consul-intention-list .notice.allow::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.passing dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .passing dd::before,.consul-lock-session-list ul>li:not(:first-child)>.header [rel=me] dd::before,.consul-upstream-instance-list li>.detail dl.passing dt::before,.consul-upstream-instance-list li>.header .passing dd::before,.consul-upstream-instance-list li>.header [rel=me] dd::before,.list-collection>ul>li:not(:first-child)>.detail dl.passing dt::before,.list-collection>ul>li:not(:first-child)>.header .passing dd::before,.list-collection>ul>li:not(:first-child)>.header [rel=me] dd::before,.notice.success::before,.popover-select .value-passing button::before{--icon-name:icon-check-circle-fill;content:""}@keyframes icon-chevron-left{100%{-webkit-mask-image:var(--icon-chevron-left-16);mask-image:var(--icon-chevron-left-16);background-color:var(--icon-color,var(--color-chevron-left-500,currentColor))}}.empty-state .back-link>::after,main header nav:first-child ol li:first-child a::before{--icon-name:icon-chevron-left;content:""}@keyframes icon-chevron-right{100%{-webkit-mask-image:var(--icon-chevron-right-16);mask-image:var(--icon-chevron-right-16);background-color:var(--icon-color,var(--color-chevron-right-500,currentColor))}}#login-toggle+div footer button::after{--icon-name:icon-chevron-right;content:""}@keyframes icon-chevron-up{100%{-webkit-mask-image:var(--icon-chevron-up-16);mask-image:var(--icon-chevron-up-16);background-color:var(--icon-color,var(--color-chevron-up-500,currentColor))}}.hashicorp-consul nav li.nspaces .disclosure-menu>button[aria-expanded=true]::after,.hashicorp-consul nav li.partitions .disclosure-menu>button[aria-expanded=true]::after,.list-collection>button::after,.more-popover-menu>[type=checkbox]:checked+label>::after,.popover-menu>[type=checkbox]:checked+label>::after,.topology-notices button[aria-expanded=true]::before,table.has-actions tr>.actions>[type=checkbox]:checked+label>::after,table.with-details tr>.actions>[type=checkbox]:checked+label>::after{--icon-name:icon-chevron-up;content:""}@keyframes icon-consul{100%{-webkit-mask-image:var(--icon-consul-color-16);mask-image:var(--icon-consul-color-16);background-color:var(--icon-color,var(--color-consul-500,currentColor))}}@keyframes icon-delay{100%{-webkit-mask-image:var(--icon-delay-16);mask-image:var(--icon-delay-16);background-color:var(--icon-color,var(--color-delay-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.lock-delay dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.lock-delay dt::before,.consul-upstream-instance-list li>.detail dl.lock-delay dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.lock-delay dt::before{--icon-name:icon-delay;content:""}@keyframes icon-docs-link{100%{-webkit-mask-image:var(--icon-docs-link-16);mask-image:var(--icon-docs-link-16);background-color:var(--icon-color,var(--color-docs-link-500,currentColor))}}@keyframes icon-gateway{100%{-webkit-mask-image:var(--icon-gateway-16);mask-image:var(--icon-gateway-16);background-color:var(--icon-color,var(--color-gateway-500,currentColor))}}.consul-kind::before{--icon-name:icon-gateway;content:""}@keyframes icon-git-commit{100%{-webkit-mask-image:var(--icon-git-commit-16);mask-image:var(--icon-git-commit-16);background-color:var(--icon-color,var(--color-git-commit-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.node dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.node dt::before,.consul-upstream-instance-list li>.detail dl.node dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.node dt::before{--icon-name:icon-git-commit;content:""}@keyframes icon-history{100%{-webkit-mask-image:var(--icon-history-16);mask-image:var(--icon-history-16);background-color:var(--icon-color,var(--color-history-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.ttl dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.ttl dt::before,.consul-upstream-instance-list li>.detail dl.ttl dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.ttl dt::before{--icon-name:icon-history;content:""}@keyframes icon-info{100%{-webkit-mask-image:var(--icon-info-16);mask-image:var(--icon-info-16);background-color:var(--icon-color,var(--color-info-500,currentColor))}}@keyframes icon-layers{100%{-webkit-mask-image:var(--icon-layers-16);mask-image:var(--icon-layers-16);background-color:var(--icon-color,var(--color-layers-500,currentColor))}}.topology-metrics-popover.l7 .tippy-arrow::after,.topology-metrics-popover.l7>button::before{--icon-name:icon-layers;content:"";--icon-color:rgb(var(--tone-gray-300))}@keyframes icon-loading{100%{-webkit-mask-image:var(--icon-loading-16);mask-image:var(--icon-loading-16);background-color:var(--icon-color,var(--color-loading-500,currentColor))}}@keyframes icon-path{100%{-webkit-mask-image:var(--icon-path-16);mask-image:var(--icon-path-16);background-color:var(--icon-color,var(--color-path-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.path dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.path dt::before,.consul-upstream-instance-list li>.detail dl.path dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.path dt::before{--icon-name:icon-path;content:""}@keyframes icon-skip{100%{-webkit-mask-image:var(--icon-skip-16);mask-image:var(--icon-skip-16);background-color:var(--icon-color,var(--color-skip-500,currentColor))}}@keyframes icon-socket{100%{-webkit-mask-image:var(--icon-socket-16);mask-image:var(--icon-socket-16);background-color:var(--icon-color,var(--color-socket-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.socket dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.socket dt::before,.consul-upstream-instance-list li>.detail dl.socket dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.socket dt::before{--icon-name:icon-socket;content:""}@keyframes icon-star-circle{100%{-webkit-mask-image:var(--icon-star-circle-16);mask-image:var(--icon-star-circle-16);background-color:var(--icon-color,var(--color-star-circle-500,currentColor))}}@keyframes icon-star-fill{100%{-webkit-mask-image:var(--icon-star-fill-16);mask-image:var(--icon-star-fill-16);background-color:var(--icon-color,var(--color-star-fill-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail .policy-management::before,.consul-exposed-path-list>ul>li>.header .policy-management dd::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .policy-management::before,.consul-lock-session-list ul>li:not(:first-child)>.header .policy-management dd::before,.consul-upstream-instance-list li>.detail .policy-management::before,.consul-upstream-instance-list li>.header .policy-management dd::before,.list-collection>ul>li:not(:first-child)>.detail .policy-management::before,.list-collection>ul>li:not(:first-child)>.header .policy-management dd::before,.notice.highlight::before,.notice.policy-management::before{--icon-name:icon-star-fill;content:""}@keyframes icon-tag{100%{-webkit-mask-image:var(--icon-tag-16);mask-image:var(--icon-tag-16);background-color:var(--icon-color,var(--color-tag-500,currentColor))}}.tag-list dt::before,td.tags dt::before{--icon-name:icon-tag;content:""}@keyframes icon-vault{100%{-webkit-mask-image:var(--icon-vault-color-16);mask-image:var(--icon-vault-color-16);background-color:var(--icon-color,var(--color-vault-500,currentColor))}}@keyframes icon-x{100%{-webkit-mask-image:var(--icon-x-16);mask-image:var(--icon-x-16);background-color:var(--icon-color,var(--color-x-500,currentColor))}}@keyframes icon-x-circle{100%{-webkit-mask-image:var(--icon-x-circle-16);mask-image:var(--icon-x-circle-16);background-color:var(--icon-color,var(--color-x-circle-500,currentColor))}}@keyframes icon-cloud-cross{100%{-webkit-mask-image:var(--icon-cloud-cross-16);mask-image:var(--icon-cloud-cross-16);background-color:var(--icon-color,var(--color-cloud-cross-500,currentColor))}}@keyframes icon-loading-motion{100%{-webkit-mask-image:var(--icon-loading-motion-16);mask-image:var(--icon-loading-motion-16);background-color:var(--icon-color,var(--color-loading-motion-500,currentColor))}}@keyframes icon-logo-auth0-color{100%{background-image:var(--icon-auth0-color-16)}}.oidc-select .auth0-oidc-provider::before{--icon-name:icon-logo-auth0-color;content:""}@keyframes icon-logo-consul-color{100%{background-image:var(--icon-consul-color-16)}}.consul-external-source.consul-api-gateway::before,.consul-external-source.consul::before,.popover-select .consul button::before,.popover-select .consul-api-gateway button::before{--icon-name:icon-logo-consul-color;content:""}@keyframes icon-logo-ember-circle-color{100%{background-image:var(--icon-logo-ember-circle-color-16)}}@keyframes icon-logo-glimmer-color{100%{background-image:var(--icon-logo-glimmer-color-16)}}@keyframes icon-logo-jwt-color{100%{background-image:var(--icon-logo-jwt-color-16)}}.consul-external-source.jwt::before,.consul-health-check-list .health-check-output dd em.jwt::before,.consul-intention-list td strong.jwt::before,.consul-intention-permission-list strong.jwt::before,.consul-intention-search-bar li button span.jwt::before,.consul-server-card .health-status+dd.jwt::before,.discovery-chain .route-card>header ul li.jwt::before,.hashicorp-consul nav .dcs li.is-local span.jwt::before,.hashicorp-consul nav .dcs li.is-primary span.jwt::before,.jwt.consul-auth-method-type::before,.jwt.consul-kind::before,.jwt.consul-source::before,.jwt.consul-transparent-proxy::before,.jwt.leader::before,.jwt.topology-metrics-source-type::before,.popover-select .jwt button::before,.search-bar-status li.jwt:not(.remove-all)::before,html[data-route^="dc.acls.index"] main td strong.jwt::before,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.jwt::before,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em.jwt::before,span.jwt.policy-node-identity::before,span.jwt.policy-service-identity::before{--icon-name:icon-logo-jwt-color;content:""}@keyframes icon-logo-microsoft-color{100%{background-image:var(--icon-microsoft-color-16)}}.oidc-select .microsoft-oidc-provider::before{--icon-name:icon-logo-microsoft-color;content:""}@keyframes icon-logo-nomad-color{100%{background-image:var(--icon-nomad-color-16)}}.consul-external-source.nomad::before,.popover-select .nomad button::before{--icon-name:icon-logo-nomad-color;content:""}@keyframes icon-logo-oidc-color{100%{background-image:var(--icon-logo-oidc-color-16)}}.consul-external-source.oidc::before,.consul-health-check-list .health-check-output dd em.oidc::before,.consul-intention-list td strong.oidc::before,.consul-intention-permission-list strong.oidc::before,.consul-intention-search-bar li button span.oidc::before,.consul-server-card .health-status+dd.oidc::before,.discovery-chain .route-card>header ul li.oidc::before,.hashicorp-consul nav .dcs li.is-local span.oidc::before,.hashicorp-consul nav .dcs li.is-primary span.oidc::before,.oidc.consul-auth-method-type::before,.oidc.consul-kind::before,.oidc.consul-source::before,.oidc.consul-transparent-proxy::before,.oidc.leader::before,.oidc.topology-metrics-source-type::before,.popover-select .oidc button::before,.search-bar-status li.oidc:not(.remove-all)::before,html[data-route^="dc.acls.index"] main td strong.oidc::before,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.oidc::before,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em.oidc::before,span.oidc.policy-node-identity::before,span.oidc.policy-service-identity::before{--icon-name:icon-logo-oidc-color;content:""}@keyframes icon-logo-okta-color{100%{background-image:var(--icon-okta-color-16)}}.oidc-select .okta-oidc-provider::before{--icon-name:icon-logo-okta-color;content:""}@keyframes icon-logo-terraform-color{100%{background-image:var(--icon-terraform-color-16)}}.consul-external-source.terraform::before,.popover-select .terraform button::before{--icon-name:icon-logo-terraform-color;content:""}@keyframes icon-mesh{100%{-webkit-mask-image:var(--icon-mesh-16);mask-image:var(--icon-mesh-16);background-color:var(--icon-color,var(--color-mesh-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.mesh dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.mesh dt::before,.consul-upstream-instance-list li>.detail dl.mesh dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.mesh dt::before{--icon-name:icon-mesh;content:""}@keyframes icon-port{100%{-webkit-mask-image:var(--icon-port-16);mask-image:var(--icon-port-16);background-color:var(--icon-color,var(--color-port-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.port dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.port dt::before,.consul-upstream-instance-list li>.detail dl.port dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.port dt::before{--icon-name:icon-port;content:""}@keyframes icon-protocol{100%{-webkit-mask-image:var(--icon-protocol-16);mask-image:var(--icon-protocol-16);background-color:var(--icon-color,var(--color-protocol-500,currentColor))}}.consul-exposed-path-list>ul>li>.detail dl.protocol dt::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.protocol dt::before,.consul-upstream-instance-list li>.detail dl.protocol dt::before,.list-collection>ul>li:not(:first-child)>.detail dl.protocol dt::before{--icon-name:icon-protocol;content:""}@keyframes icon-redirect{100%{-webkit-mask-image:var(--icon-redirect-16);mask-image:var(--icon-redirect-16);background-color:var(--icon-color,var(--color-redirect-500,currentColor))}}@keyframes icon-search-color{100%{background-image:var(--icon-search-color-16)}}[for=toolbar-toggle]{--icon-name:icon-search-color;content:""}@keyframes icon-sort{100%{-webkit-mask-image:var(--icon-sort-desc-16);mask-image:var(--icon-sort-desc-16);background-color:var(--icon-color,var(--color-sort-500,currentColor))}}.type-sort.popover-select label>::before{--icon-name:icon-sort;content:""}@keyframes icon-union{100%{-webkit-mask-image:var(--icon-union-16);mask-image:var(--icon-union-16);background-color:var(--icon-color,var(--color-union-500,currentColor))}}#downstream-container .topology-metrics-card .details .group span::before,#upstream-container .topology-metrics-card .details .group span::before{--icon-name:icon-union;content:""}.kubernetes.informed-action header::before{-webkit-mask-image:none;mask-image:none;background-color:var(--transparent)!important}.ember-basic-dropdown{position:relative}.ember-basic-dropdown,.ember-basic-dropdown-content,.ember-basic-dropdown-content *{box-sizing:border-box}.ember-basic-dropdown-content{position:absolute;width:auto;z-index:1000;background-color:#fff}.ember-basic-dropdown-content--left{left:0}.ember-basic-dropdown-content--right{right:0}.ember-basic-dropdown-overlay{position:fixed;background:rgba(0,0,0,.5);width:100%;height:100%;z-index:10;top:0;left:0;pointer-events:none}.ember-basic-dropdown-content-wormhole-origin{display:inline}.ember-power-select-dropdown *{box-sizing:border-box}.ember-power-select-trigger{position:relative;border-radius:4px;background-color:#fff;line-height:1.75;overflow-x:hidden;text-overflow:ellipsis;min-height:1.75em;user-select:none;-webkit-user-select:none;color:inherit}.ember-power-select-trigger:after{content:"";display:table;clear:both}.ember-power-select-trigger--active,.ember-power-select-trigger:focus{box-shadow:none}.ember-basic-dropdown-trigger--below.ember-power-select-trigger[aria-expanded=true],.ember-basic-dropdown-trigger--in-place.ember-power-select-trigger[aria-expanded=true]{border-bottom-left-radius:0;border-bottom-right-radius:0}.ember-basic-dropdown-trigger--above.ember-power-select-trigger[aria-expanded=true]{border-top-left-radius:0;border-top-right-radius:0}.ember-power-select-placeholder{color:#999;display:block;overflow-x:hidden;white-space:nowrap;text-overflow:ellipsis}.ember-power-select-status-icon{position:absolute;display:inline-block;width:0;height:0;top:0;bottom:0;margin:auto;border-style:solid;border-width:7px 4px 0;border-color:#aaa transparent transparent;right:5px}.ember-basic-dropdown-trigger[aria-expanded=true] .ember-power-select-status-icon{transform:rotate(180deg)}.ember-power-select-clear-btn{position:absolute;cursor:pointer;right:25px}.ember-power-select-trigger-multiple-input{font-family:inherit;font-size:inherit;border:none;display:inline-block;line-height:inherit;-webkit-appearance:none;outline:0;padding:0;float:left;background-color:transparent;text-indent:2px}.ember-power-select-trigger-multiple-input:disabled{background-color:#eee}.ember-power-select-trigger-multiple-input::placeholder{opacity:1;color:#999}.ember-power-select-trigger-multiple-input::-webkit-input-placeholder{opacity:1;color:#999}.ember-power-select-trigger-multiple-input::-moz-placeholder{opacity:1;color:#999}.ember-power-select-trigger-multiple-input::-ms-input-placeholder{opacity:1;color:#999}.active.discovery-chain [id*=":"],.discovery-chain path,.ember-power-select-multiple-remove-btn:not(:hover){opacity:.5}.ember-power-select-multiple-options{padding:0;margin:0}.ember-power-select-multiple-option{border:1px solid gray;border-radius:4px;color:#333;background-color:#e4e4e4;padding:0 4px;display:inline-block;line-height:1.45;float:left;margin:2px 0 2px 3px}.ember-power-select-multiple-remove-btn{cursor:pointer}.ember-power-select-search{padding:4px}.ember-power-select-search-input{border:1px solid #aaa;border-radius:0;width:100%;font-size:inherit;line-height:inherit;padding:0 5px}.ember-power-select-search-input:focus{border:1px solid #aaa;box-shadow:none}.ember-power-select-dropdown{border-left:1px solid #aaa;border-right:1px solid #aaa;line-height:1.75;border-radius:4px;box-shadow:none;overflow:hidden;color:inherit}.ember-power-select-dropdown.ember-basic-dropdown-content--above{border-top:1px solid #aaa;border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.ember-power-select-dropdown.ember-basic-dropdown-content--below,.ember-power-select-dropdown.ember-basic-dropdown-content--in-place{border-top:none;border-bottom:1px solid #aaa;border-top-left-radius:0;border-top-right-radius:0}.ember-power-select-dropdown.ember-basic-dropdown-content--in-place{width:100%}.ember-power-select-options{list-style:none;margin:0;padding:0;user-select:none;-webkit-user-select:none}.ember-power-select-placeholder,.ember-power-select-selected-item,a[rel*=external]::after{margin-left:8px}.ember-power-select-options[role=listbox]{overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:12.25em}.ember-power-select-option{cursor:pointer;padding:0 8px}.ember-power-select-group[aria-disabled=true]{color:#999;cursor:not-allowed}.ember-power-select-group[aria-disabled=true] .ember-power-select-option,.ember-power-select-option[aria-disabled=true]{color:#999;pointer-events:none;cursor:not-allowed}.ember-power-select-option[aria-selected=true]{background-color:#ddd}.ember-power-select-option[aria-current=true]{background-color:#5897fb;color:#fff}.ember-power-select-group-name{cursor:default;font-weight:700}.ember-power-select-trigger[aria-disabled=true]{background-color:#eee}.ember-power-select-trigger{padding:0 16px 0 0}.ember-power-select-group .ember-power-select-group .ember-power-select-group-name{padding-left:24px}.ember-power-select-group .ember-power-select-group .ember-power-select-option{padding-left:40px}.ember-power-select-group .ember-power-select-option{padding-left:24px}.ember-power-select-group .ember-power-select-group-name{padding-left:8px}.ember-power-select-trigger[dir=rtl]{padding:0 0 0 16px}.ember-power-select-trigger[dir=rtl] .ember-power-select-placeholder,.ember-power-select-trigger[dir=rtl] .ember-power-select-selected-item{margin-right:8px}.ember-power-select-trigger[dir=rtl] .ember-power-select-multiple-option,.ember-power-select-trigger[dir=rtl] .ember-power-select-trigger-multiple-input{float:right}.ember-power-select-trigger[dir=rtl] .ember-power-select-status-icon{left:5px;right:initial}.ember-power-select-trigger[dir=rtl] .ember-power-select-clear-btn{left:25px;right:initial}.ember-power-select-dropdown[dir=rtl] .ember-power-select-group .ember-power-select-group .ember-power-select-group-name{padding-right:24px}.ember-power-select-dropdown[dir=rtl] .ember-power-select-group .ember-power-select-group .ember-power-select-option{padding-right:40px}.ember-power-select-dropdown[dir=rtl] .ember-power-select-group .ember-power-select-option{padding-right:24px}.ember-power-select-dropdown[dir=rtl] .ember-power-select-group .ember-power-select-group-name{padding-right:8px}#login-toggle+div footer button:focus,#login-toggle+div footer button:hover,.consul-intention-fieldsets .permissions>button:focus,.consul-intention-fieldsets .permissions>button:hover,.empty-state>ul>li>:focus,.empty-state>ul>li>:hover,.empty-state>ul>li>label>button:focus,.empty-state>ul>li>label>button:hover,.modal-dialog [role=document] dd a:focus,.modal-dialog [role=document] dd a:hover,.modal-dialog [role=document] p a:focus,.modal-dialog [role=document] p a:hover,.oidc-select button.reset:focus,.oidc-select button.reset:hover,.search-bar-status .remove-all button:focus,.search-bar-status .remove-all button:hover,label.type-dialog:focus,label.type-dialog:hover,main dd a:focus,main dd a:hover,main p a:focus,main p a:hover{text-decoration:underline}#login-toggle+div footer button,.consul-intention-fieldsets .permissions>button,.empty-state>ul>li>*,.empty-state>ul>li>:active,.empty-state>ul>li>:focus,.empty-state>ul>li>:hover,.empty-state>ul>li>label>button,.empty-state>ul>li>label>button:active,.empty-state>ul>li>label>button:focus,.empty-state>ul>li>label>button:hover,.modal-dialog [role=document] dd a,.modal-dialog [role=document] p a,.oidc-select button.reset,.search-bar-status .remove-all button,label.type-dialog,label.type-dialog:active,label.type-dialog:focus,label.type-dialog:hover,main dd a,main dd a:active,main dd a:focus,main dd a:hover,main p a,main p a:active,main p a:focus,main p a:hover{color:rgb(var(--color-action))}.modal-dialog [role=document] label a[rel*=help],div.with-confirmation p,main label a[rel*=help]{color:rgb(var(--tone-gray-400))}#login-toggle+div footer button,.consul-intention-fieldsets .permissions>button,.empty-state>ul>li>*,.empty-state>ul>li>label>button,.modal-dialog [role=document] dd a,.modal-dialog [role=document] p a,.oidc-select button.reset,.search-bar-status .remove-all button,label.type-dialog,main dd a,main p a{cursor:pointer;background-color:var(--transparent)}#login-toggle+div footer button:active,.consul-intention-fieldsets .permissions>button:active,.empty-state>ul>li>:active,.empty-state>ul>li>label>button:active,.modal-dialog [role=document] dd a:active,.modal-dialog [role=document] p a:active,.oidc-select button.reset:active,.search-bar-status .remove-all button:active,label.type-dialog:active,main dd a:active,main p a:active{outline:0}.modal-dialog [role=document] a[rel*=help]::after,main a[rel*=help]::after{opacity:.4}.modal-dialog [role=document] h2 a,main h2 a{color:rgb(var(--tone-gray-900))}.modal-dialog [role=document] h2 a[rel*=help]::after,main h2 a[rel*=help]::after{font-size:.65em;margin-top:.2em;margin-left:.2em}.tab-section>p:only-child [rel*=help]::after{content:none}.auth-form{width:320px;margin:-20px 25px 0}.auth-form em{color:rgb(var(--tone-gray-500));font-style:normal;display:inline-block;margin-top:1em}.auth-form .oidc-select,.auth-form form{padding-top:1em}.auth-form form{margin-bottom:0!important}.auth-form .ember-basic-dropdown-trigger,.auth-form button:not(.reset){width:100%}.auth-form .progress{margin:0 auto}#login-toggle+div footer button::after{font-size:120%;position:relative;top:-1px;left:-3px}#login-toggle+div footer{border-top:0;padding:10px 42px 20px;background-color:var(--transparent)}#login-toggle+div>div>div>div{padding-bottom:0}.auth-profile{padding:.9em 1em}.auth-profile dt span{font-weight:var(--typo-weight-normal)}.auth-profile dt{font-weight:var(--typo-weight-bold)}.auth-profile dd,.auth-profile dt{color:rgb(var(--tone-gray-800))}.auth-profile dt span{color:rgb(var(--tone-gray-600))}main header nav:first-child ol li a{color:rgb(var(--tone-gray-500));text-decoration:none}main header nav:first-child ol li a:hover{color:rgb(var(--tone-blue-500));text-decoration:underline}main header nav:first-child ol li a::before{text-decoration:none}main header nav:first-child ol>li{list-style-type:none;display:inline-flex}main header nav:first-child ol li:first-child a::before{background-color:rgb(var(--tone-gray-500));margin-right:4px;display:inline-block}main header nav:first-child ol li:not(:first-child) a{margin-left:6px}main header nav:first-child ol li:not(:first-child) a::before{content:"/";color:rgb(var(--tone-gray-500));margin-right:8px;display:inline-block}main header nav:first-child{position:absolute;top:12px}.app-view>div form button[type=button].type-delete,.consul-intention-action-warn-modal button.dangerous,.copy-button button,.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.empty-state div>button,.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button,.informed-action>ul>li>*,.menu-panel>ul>[role=treeitem],.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.modal-dialog .type-delete,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.oidc-select button:not(.reset),.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.popover-select label>*,.topology-notices button,.type-sort.popover-select label>*,.with-confirmation .type-delete,a.type-create,button.type-cancel,button.type-submit,button[type=reset],button[type=submit],header .actions button[type=button]:not(.copy-btn),table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{cursor:pointer;white-space:nowrap;text-decoration:none}.app-view>div form button[type=button].type-delete:disabled,.consul-intention-action-warn-modal button.dangerous:disabled,.copy-button button:disabled,.disclosure-menu [aria-expanded]~*>ul>[role=treeitem]:disabled,.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem]:disabled,.disclosure-menu [aria-expanded]~*>ul>li>[role=option]:disabled,.empty-state div>button:disabled,.hashicorp-consul nav li.nspaces .disclosure-menu>button:disabled,.hashicorp-consul nav li.partitions .disclosure-menu>button:disabled,.informed-action>ul>li>:disabled,.menu-panel>ul>[role=treeitem]:disabled,.menu-panel>ul>li>[role=menuitem]:disabled,.menu-panel>ul>li>[role=option]:disabled,.modal-dialog .type-delete:disabled,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]:disabled,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]:disabled,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option]:disabled,.oidc-select button:disabled:not(.reset),.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]:disabled,.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]:disabled,.popover-menu>[type=checkbox]+label+div>ul>li>[role=option]:disabled,.popover-select label>:disabled,.topology-notices button:disabled,.with-confirmation .type-delete:disabled,a.type-create:disabled,button.type-cancel:disabled,button.type-submit:disabled,button[type=reset]:disabled,button[type=submit]:disabled,header .actions button[type=button]:disabled:not(.copy-btn),table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]:disabled,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]:disabled,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]:disabled,table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]:disabled,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]:disabled,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]:disabled{cursor:default;box-shadow:none}.checkbox-group label,.more-popover-menu>[type=checkbox]~label,.popover-menu>[type=checkbox]~label,html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] label,table.has-actions tr>.actions>[type=checkbox]~label,table.with-details tr>.actions>[type=checkbox]~label{cursor:pointer}.app-view>div form button[type=button].type-delete,.consul-intention-action-warn-modal button.dangerous,.empty-state div>button,.modal-dialog .type-delete,.oidc-select button:not(.reset),.with-confirmation .type-delete,a.type-create,button.type-cancel,button.type-submit,button[type=reset],button[type=submit],header .actions button[type=button]:not(.copy-btn){border-width:1px;border-radius:var(--decor-radius-100);box-shadow:var(--decor-elevation-300)}button.type-cancel:disabled,button[type=reset]:disabled,header .actions button[type=button]:disabled:not(.copy-btn){color:rgb(var(--tone-gray-600))}.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button,.informed-action>ul>li>*,.menu-panel>ul>[role=treeitem],.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{color:rgb(var(--tone-gray-900));background-color:rgb(var(--tone-gray-000))}.disclosure-menu [aria-expanded]~*>ul>[role=treeitem]:focus,.disclosure-menu [aria-expanded]~*>ul>[role=treeitem]:hover,.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem]:focus,.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem]:hover,.disclosure-menu [aria-expanded]~*>ul>li>[role=option]:focus,.disclosure-menu [aria-expanded]~*>ul>li>[role=option]:hover,.hashicorp-consul nav li.nspaces .disclosure-menu>button:focus,.hashicorp-consul nav li.nspaces .disclosure-menu>button:hover,.hashicorp-consul nav li.partitions .disclosure-menu>button:focus,.hashicorp-consul nav li.partitions .disclosure-menu>button:hover,.informed-action>ul>li>:focus,.informed-action>ul>li>:hover,.menu-panel>ul>[role=treeitem]:focus,.menu-panel>ul>[role=treeitem]:hover,.menu-panel>ul>li>[role=menuitem]:focus,.menu-panel>ul>li>[role=menuitem]:hover,.menu-panel>ul>li>[role=option]:focus,.menu-panel>ul>li>[role=option]:hover,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]:focus,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]:hover,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]:focus,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]:hover,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option]:focus,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option]:hover,.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]:focus,.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]:hover,.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]:focus,.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]:hover,.popover-menu>[type=checkbox]+label+div>ul>li>[role=option]:focus,.popover-menu>[type=checkbox]+label+div>ul>li>[role=option]:hover,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]:focus,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]:hover,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]:focus,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]:hover,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]:focus,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]:hover,table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]:focus,table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]:hover,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]:focus,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]:hover,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]:focus,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]:hover{background-color:rgb(var(--tone-gray-050))}.type-sort.popover-select label>::before{position:relative;width:16px;height:16px}.type-sort.popover-select label>::after{top:0!important}.app-view>div form button[type=button].type-delete,.consul-intention-action-warn-modal button.dangerous,.copy-button button,.empty-state div>button,.modal-dialog .type-delete,.oidc-select button:not(.reset),.popover-select label>*,.topology-notices button,.type-sort.popover-select label>*,.with-confirmation .type-delete,a.type-create,button.type-cancel,button.type-submit,button[type=reset],button[type=submit],header .actions button[type=button]:not(.copy-btn){position:relative}.app-view>div form button[type=button].type-delete .progress.indeterminate,.consul-intention-action-warn-modal button.dangerous .progress.indeterminate,.copy-button button .progress.indeterminate,.empty-state div>button .progress.indeterminate,.modal-dialog .type-delete .progress.indeterminate,.oidc-select button:not(.reset) .progress.indeterminate,.popover-select label>* .progress.indeterminate,.topology-notices button .progress.indeterminate,.with-confirmation .type-delete .progress.indeterminate,a.type-create .progress.indeterminate,button.type-cancel .progress.indeterminate,button.type-submit .progress.indeterminate,button[type=reset] .progress.indeterminate,button[type=submit] .progress.indeterminate,header .actions button[type=button]:not(.copy-btn) .progress.indeterminate{position:absolute;top:50%;left:50%;margin-left:-12px;margin-top:-12px}.app-view>div form button[type=button].type-delete:disabled .progress+*,.consul-intention-action-warn-modal button.dangerous:disabled .progress+*,.copy-button button:disabled .progress+*,.empty-state div>button:disabled .progress+*,.modal-dialog .type-delete:disabled .progress+*,.oidc-select button:disabled:not(.reset) .progress+*,.popover-select label>:disabled .progress+*,.topology-notices button:disabled .progress+*,.with-confirmation .type-delete:disabled .progress+*,a.type-create:disabled .progress+*,button.type-cancel:disabled .progress+*,button.type-submit:disabled .progress+*,button[type=reset]:disabled .progress+*,button[type=submit]:disabled .progress+*,header .actions button[type=button]:disabled:not(.copy-btn) .progress+*{visibility:hidden}.app-view>div form button[type=button].type-delete:empty,.consul-intention-action-warn-modal button.dangerous:empty,.copy-button button:empty,.empty-state div>button:empty,.modal-dialog .type-delete:empty,.oidc-select button:empty:not(.reset),.popover-select label>:empty,.topology-notices button:empty,.with-confirmation .type-delete:empty,a.type-create:empty,button.type-cancel:empty,button.type-submit:empty,button[type=reset]:empty,button[type=submit]:empty,header .actions button[type=button]:empty:not(.copy-btn){padding-right:0!important;padding-left:18px!important;margin-right:5px}.app-view>div form button[type=button].type-delete:empty::before,.consul-intention-action-warn-modal button.dangerous:empty::before,.copy-button button:empty::before,.empty-state div>button:empty::before,.modal-dialog .type-delete:empty::before,.oidc-select button:empty:not(.reset)::before,.popover-select label>:empty::before,.topology-notices button:empty::before,.with-confirmation .type-delete:empty::before,a.type-create:empty::before,button.type-cancel:empty::before,button.type-submit:empty::before,button[type=reset]:empty::before,button[type=submit]:empty::before,header .actions button[type=button]:empty:not(.copy-btn)::before{left:1px}.app-view>div form button[type=button].type-delete:not(:empty),.consul-intention-action-warn-modal button.dangerous:not(:empty),.copy-button button:not(:empty),.empty-state div>button:not(:empty),.modal-dialog .type-delete:not(:empty),.oidc-select button:not(:empty):not(.reset),.popover-select label>:not(:empty),.topology-notices button:not(:empty),.with-confirmation .type-delete:not(:empty),a.type-create:not(:empty),button.type-cancel:not(:empty),button.type-submit:not(:empty),button[type=reset]:not(:empty),button[type=submit]:not(:empty),header .actions button[type=button]:not(:empty):not(.copy-btn){display:inline-flex;text-align:center;justify-content:center;align-items:center;padding:calc(.5em - 1px) calc(2.2em - 1px);min-width:100px}.app-view>div form button[type=button].type-delete:not(:last-child),.consul-intention-action-warn-modal button.dangerous:not(:last-child),.copy-button button:not(:last-child),.empty-state div>button:not(:last-child),.modal-dialog .type-delete:not(:last-child),.oidc-select button:not(:last-child):not(.reset),.popover-select label>:not(:last-child),.topology-notices button:not(:last-child),.with-confirmation .type-delete:not(:last-child),a.type-create:not(:last-child),button.type-cancel:not(:last-child),button.type-submit:not(:last-child),button[type=reset]:not(:last-child),button[type=submit]:not(:last-child),header .actions button[type=button]:not(:last-child):not(.copy-btn){margin-right:8px}.app-view>header .actions a,.app-view>header .actions button{padding-top:calc(.4em - 1px)!important;padding-bottom:calc(.4em - 1px)!important}.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button,.informed-action>ul>li>*,.menu-panel>ul>[role=treeitem],.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{padding:.9em 1em;text-align:center;display:inline-block;box-sizing:border-box}.type-sort.popover-select label>*{height:35px!important}.discovery-chain .resolver-card,.discovery-chain .route-card,.discovery-chain .splitter-card{border:var(--decor-border-100);border-radius:var(--decor-radius-100);background-color:rgb(var(--tone-gray-000) /90%);display:block;position:relative}.discovery-chain .resolver-card>section,.discovery-chain .resolver-card>ul>li,.discovery-chain .route-card>section,.discovery-chain .route-card>ul>li,.discovery-chain .splitter-card>section,.discovery-chain .splitter-card>ul>li{border-top:var(--decor-border-100)}.discovery-chain .resolver-card,.discovery-chain .resolver-card>section,.discovery-chain .resolver-card>ul>li,.discovery-chain .route-card,.discovery-chain .route-card>section,.discovery-chain .route-card>ul>li,.discovery-chain .splitter-card,.discovery-chain .splitter-card>section,.discovery-chain .splitter-card>ul>li{border-color:rgb(var(--tone-gray-200))}.discovery-chain .resolver-card:focus,.discovery-chain .resolver-card:hover,.discovery-chain .route-card:focus,.discovery-chain .route-card:hover,.discovery-chain .splitter-card:focus,.discovery-chain .splitter-card:hover{box-shadow:var(--decor-elevation-400)}.discovery-chain .resolver-card>header,.discovery-chain .route-card>header,.discovery-chain .splitter-card>header{padding:10px}.discovery-chain .resolver-card>section,.discovery-chain .resolver-card>ul>li,.discovery-chain .route-card>section,.discovery-chain .route-card>ul>li,.discovery-chain .splitter-card>section,.discovery-chain .splitter-card>ul>li{padding:5px 10px}.discovery-chain .resolver-card ul,.discovery-chain .route-card ul,.discovery-chain .splitter-card ul{list-style-type:none;margin:0;padding:0}.checkbox-group label{margin-right:10px;white-space:nowrap}.checkbox-group span{display:inline-block;margin-left:10px;min-width:50px}.CodeMirror{max-width:1260px;min-height:300px;height:auto;padding-bottom:20px}.CodeMirror-scroll{overflow-x:hidden!important}.CodeMirror-lint-tooltip{background-color:#f9f9fa;border:1px solid var(--syntax-light-gray);border-radius:0;color:#212121;font-size:13px;padding:7px 8px 9px}.cm-s-hashi.CodeMirror{width:100%;background-color:rgb(var(--tone-gray-999))!important;color:#cfd2d1!important;border:none;-webkit-font-smoothing:auto;line-height:1.4}.cm-s-hashi .CodeMirror-gutters{color:var(--syntax-dark-grey);background-color:var(--syntax-gutter-grey);border:none}.cm-s-hashi .CodeMirror-cursor{border-left:solid thin #f8f8f0}.cm-s-hashi .CodeMirror-linenumber{color:#6d8a88}.cm-s-hashi.CodeMirror-focused div.CodeMirror-selected{background:#214283}.cm-s-hashi .CodeMirror-line::selection,.cm-s-hashi .CodeMirror-line>span::selection,.cm-s-hashi .CodeMirror-line>span>span::selection{background:#214283}.cm-s-hashi .CodeMirror-line::-moz-selection,.cm-s-hashi .CodeMirror-line>span::-moz-selection,.cm-s-hashi .CodeMirror-line>span>span::-moz-selection{background:rgb(var(--tone-gray-000) /10%)}.cm-s-hashi span.cm-comment{color:var(--syntax-light-grey)}.cm-s-hashi span.cm-string,.cm-s-hashi span.cm-string-2{color:var(--syntax-packer)}.cm-s-hashi span.cm-number{color:var(--syntax-serf)}.cm-s-hashi span.cm-variable,.cm-s-hashi span.cm-variable-2{color:#9e84c5}.cm-s-hashi span.cm-def{color:var(--syntax-packer)}.cm-s-hashi span.cm-operator{color:var(--syntax-gray)}.cm-s-hashi span.cm-keyword{color:var(--syntax-yellow)}.cm-s-hashi span.cm-atom{color:var(--syntax-serf)}.cm-s-hashi span.cm-meta,.cm-s-hashi span.cm-tag{color:var(--syntax-packer)}.cm-s-hashi span.cm-error{color:var(--syntax-red)}.cm-s-hashi span.cm-attribute,.cm-s-hashi span.cm-qualifier{color:#9fca56}.cm-s-hashi span.cm-property{color:#9e84c5}.cm-s-hashi span.cm-builtin,.cm-s-hashi span.cm-variable-3{color:#9fca56}.cm-s-hashi .CodeMirror-activeline-background{background:#101213}.cm-s-hashi .CodeMirror-matchingbracket{text-decoration:underline;color:rgb(var(--tone-gray-000))!important}.readonly-codemirror .CodeMirror-cursors{display:none}.readonly-codemirror .cm-s-hashi span{color:var(--syntax-light-grey)}.readonly-codemirror .cm-s-hashi span.cm-string,.readonly-codemirror .cm-s-hashi span.cm-string-2{color:var(--syntax-faded-gray)}.readonly-codemirror .cm-s-hashi span.cm-number{color:#a3acbc}.app .skip-links,.readonly-codemirror .cm-s-hashi span.cm-property{color:rgb(var(--tone-gray-000))}.readonly-codemirror .cm-s-hashi span.cm-variable-2{color:var(--syntax-light-grey-blue)}.code-editor .toolbar-container{background:rgb(var(--tone-gray-050));background:linear-gradient(180deg,rgb(var(--tone-gray-050)) 50%,rgb(var(--tone-gray-150)) 100%);border:1px solid;border-bottom-color:rgb(var(--tone-gray-600));border-top-color:rgb(var(--tone-gray-400))}.code-editor .toolbar-container .toolbar .title{color:rgb(var(--tone-gray-900));font-size:14px;font-weight:700;padding:0 8px}.code-editor .toolbar-container .toolbar .toolbar-separator{border-right:1px solid rgb(var(--tone-gray-300))}.code-editor .toolbar-container .ember-power-select-trigger{background-color:rgb(var(--tone-gray-000));color:rgb(var(--tone-gray-999));border-radius:var(--decor-radius-100);border:var(--decor-border-100);border-color:rgb(var(--tone-gray-700))}.code-editor::after,.consul-auth-method-binding-list dl dd .copy-button button::before,.consul-auth-method-view dl dd .copy-button button::before{background-color:rgb(var(--tone-gray-999))}.code-editor{display:block;border:10px;overflow:hidden;position:relative;clear:both}.code-editor::after{position:absolute;bottom:0;width:100%;height:25px;content:"";display:block}.code-editor>pre{display:none}.code-editor .toolbar-container,.code-editor .toolbar-container .toolbar{align-items:center;justify-content:space-between;display:flex}.code-editor .toolbar-container{position:relative;margin-top:4px;height:44px}.code-editor .toolbar-container .toolbar{flex:1;white-space:nowrap}.code-editor .toolbar-container .toolbar .toolbar-separator{height:32px;margin:0 4px;width:0}.code-editor .toolbar-container .toolbar .tools{display:flex;flex-direction:row;margin:0 10px;align-items:center}.code-editor .toolbar-container .toolbar .tools .copy-button{margin-left:10px}.code-editor .toolbar-container .ember-basic-dropdown-trigger{margin:0 8px;width:120px;height:32px;display:flex;align-items:center;flex-direction:row}.consul-exposed-path-list>ul>li,.consul-lock-session-list ul>li:not(:first-child),.consul-upstream-instance-list li,.list-collection>ul>li:not(:first-child){display:grid;grid-template-columns:1fr auto;grid-template-rows:50% 50%;grid-template-areas:"header actions" "detail actions"}.consul-exposed-path-list>ul>li>.header,.consul-lock-session-list ul>li:not(:first-child)>.header,.consul-upstream-instance-list li>.header,.list-collection>ul>li:not(:first-child)>.header{grid-area:header;align-self:start}.consul-exposed-path-list>ul>li>.detail,.consul-lock-session-list ul>li:not(:first-child)>.detail,.consul-upstream-instance-list li>.detail,.list-collection>ul>li:not(:first-child)>.detail{grid-area:detail;align-self:end}.consul-exposed-path-list>ul>li>.detail *,.consul-lock-session-list ul>li:not(:first-child)>.detail *,.consul-upstream-instance-list li>.detail *,.list-collection>ul>li:not(:first-child)>.detail *{flex-wrap:nowrap!important}.consul-exposed-path-list>ul>li>.actions,.consul-lock-session-list ul>li:not(:first-child)>.actions,.consul-upstream-instance-list li>.actions,.list-collection>ul>li:not(:first-child)>.actions{grid-area:actions;display:inline-flex}.consul-nspace-list>ul>li:not(:first-child) dt,.consul-policy-list>ul li:not(:first-child) dl:not(.datacenter) dt,.consul-role-list>ul>li:not(:first-child) dt,.consul-service-instance-list .port dt,.consul-service-instance-list .port dt::before,.consul-token-list>ul>li:not(:first-child) dt{display:none}.consul-exposed-path-list>ul>li>.header:nth-last-child(2),.consul-lock-session-list ul>li:not(:first-child)>.header:nth-last-child(2),.consul-upstream-instance-list li>.header:nth-last-child(2),.list-collection>ul>li:not(:first-child)>.header:nth-last-child(2){grid-column-start:header;grid-column-end:actions}.consul-exposed-path-list>ul>li>.detail:last-child,.consul-lock-session-list ul>li:not(:first-child)>.detail:last-child,.consul-upstream-instance-list li>.detail:last-child,.list-collection>ul>li:not(:first-child)>.detail:last-child{grid-column-start:detail;grid-column-end:actions}.consul-nspace-list>ul>li:not(:first-child) dt+dd,.consul-policy-list>ul li:not(:first-child) dl:not(.datacenter) dt+dd,.consul-role-list>ul>li:not(:first-child) dt+dd,.consul-token-list>ul>li:not(:first-child) dt+dd{margin-left:0!important}.consul-policy-list dl.datacenter dt,.consul-service-list li>div:first-child>dl:first-child dd{margin-top:1px}.app-view>div form:not(.filter-bar) [role=radiogroup] label>em,.consul-exposed-path-list>ul>li>.detail .copy-button,.consul-lock-session-list ul>li:not(:first-child)>.detail .copy-button,.consul-upstream-instance-list li>.detail .copy-button,.list-collection>ul>li:not(:first-child)>.detail .copy-button,.modal-dialog [role=document] .type-password>em,.modal-dialog [role=document] .type-select>em,.modal-dialog [role=document] .type-text>em,.modal-dialog [role=document] [role=radiogroup] label>em,.modal-dialog [role=document] form button+em,.oidc-select label>em,.type-toggle>em,main .type-password>em,main .type-select>em,main .type-text>em,main form button+em{margin-top:2px}.consul-service-instance-list .detail,.consul-service-list .detail{overflow-x:visible!important}.consul-intention-permission-list>ul{border-top:1px solid rgb(var(--tone-gray-200))}.consul-service-instance-list .port .copy-button{margin-right:0}.consul-exposed-path-list>ul>li .copy-button,.consul-lock-session-list ul>li:not(:first-child) .copy-button,.consul-upstream-instance-list li .copy-button,.list-collection>ul>li:not(:first-child) .copy-button{display:inline-flex}.consul-exposed-path-list>ul>li>.header .copy-button,.consul-lock-session-list ul>li:not(:first-child)>.header .copy-button,.consul-upstream-instance-list li>.header .copy-button,.list-collection>ul>li:not(:first-child)>.header .copy-button{margin-left:4px}.consul-exposed-path-list>ul>li .copy-button button,.consul-lock-session-list ul>li:not(:first-child) .copy-button button,.consul-upstream-instance-list li .copy-button button,.list-collection>ul>li:not(:first-child) .copy-button button{padding:0!important;margin:0!important}.consul-exposed-path-list>ul>li>.header .copy-button button,.consul-lock-session-list ul>li:not(:first-child)>.header .copy-button button,.consul-upstream-instance-list li>.header .copy-button button,.list-collection>ul>li:not(:first-child)>.header .copy-button button{display:none}.consul-exposed-path-list>ul>li>.header:hover .copy-button button,.consul-lock-session-list ul>li:not(:first-child)>.header:hover .copy-button button,.consul-upstream-instance-list li>.header:hover .copy-button button,.list-collection>ul>li:not(:first-child)>.header:hover .copy-button button{display:block}.consul-exposed-path-list>ul>li .copy-button button:hover,.consul-lock-session-list ul>li:not(:first-child) .copy-button button:hover,.consul-upstream-instance-list li .copy-button button:hover,.list-collection>ul>li:not(:first-child) .copy-button button:hover{background-color:transparent!important}.consul-exposed-path-list>ul>li>.detail>.consul-external-source:first-child,.consul-exposed-path-list>ul>li>.detail>.consul-kind:first-child,.consul-lock-session-list ul>li:not(:first-child)>.detail>.consul-external-source:first-child,.consul-lock-session-list ul>li:not(:first-child)>.detail>.consul-kind:first-child,.consul-upstream-instance-list li>.detail>.consul-external-source:first-child,.consul-upstream-instance-list li>.detail>.consul-kind:first-child,.list-collection>ul>li:not(:first-child)>.detail>.consul-external-source:first-child,.list-collection>ul>li:not(:first-child)>.detail>.consul-kind:first-child{margin-left:-5px}.consul-exposed-path-list>ul>li>.detail .policy-management::before,.consul-exposed-path-list>ul>li>.detail .policy::before,.consul-exposed-path-list>ul>li>.detail .role::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .policy-management::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .policy::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .role::before,.consul-upstream-instance-list li>.detail .policy-management::before,.consul-upstream-instance-list li>.detail .policy::before,.consul-upstream-instance-list li>.detail .role::before,.list-collection>ul>li:not(:first-child)>.detail .policy-management::before,.list-collection>ul>li:not(:first-child)>.detail .policy::before,.list-collection>ul>li:not(:first-child)>.detail .role::before{margin-right:3px}.consul-exposed-path-list>ul>li>.detail .policy-management::before,.consul-exposed-path-list>ul>li>.header .policy-management dd::before,.consul-lock-session-list ul>li:not(:first-child)>.detail .policy-management::before,.consul-lock-session-list ul>li:not(:first-child)>.header .policy-management dd::before,.consul-upstream-instance-list li>.detail .policy-management::before,.consul-upstream-instance-list li>.header .policy-management dd::before,.list-collection>ul>li:not(:first-child)>.detail .policy-management::before,.list-collection>ul>li:not(:first-child)>.header .policy-management dd::before{--icon-color:rgb(var(--tone-brand-600))}table div.with-confirmation.confirming{background-color:rgb(var(--tone-gray-000))}div.with-confirmation p{margin-right:12px;padding-left:12px;margin-bottom:0!important}div.with-confirmation{float:right;display:flex;align-items:center}table td>div.with-confirmation.confirming{position:absolute;right:0}@media (max-width:420px){div.with-confirmation{float:none;margin-top:1em;display:block}div.with-confirmation p{margin-bottom:1em}}.copy-button button{color:rgb(var(--tone-blue-500));--icon-color:var(--transparent);min-height:17px}.copy-button button::after{--icon-color:rgb(var(--tone-gray-050))}.copy-button button:focus,.copy-button button:hover:not(:disabled):not(:active){color:rgb(var(--tone-blue-500));--icon-color:rgb(var(--tone-gray-050))}.copy-button button:hover::before{--icon-color:rgb(var(--tone-blue-500))}.copy-button button:active{--icon-color:rgb(var(--tone-gray-200))}.copy-button button:empty{padding:0!important;margin-right:0;top:-1px}.copy-button button:empty::after{content:"";display:none;position:absolute;top:-2px;left:-3px;width:20px;height:22px}.copy-button button:empty:hover::after{display:block}.copy-button button:empty::before{position:relative;z-index:1}.copy-button button:not(:empty)::before{margin-right:4px}.consul-bucket-list .copy-button,.consul-exposed-path-list>ul>li>.detail dl .copy-button,.consul-instance-checks .copy-button,.consul-lock-session-list dl .copy-button,.consul-lock-session-list ul>li:not(:first-child)>.detail dl .copy-button,.consul-upstream-instance-list dl .copy-button,.list-collection>ul>li:not(:first-child)>.detail dl .copy-button,.tag-list .copy-button,section[data-route="dc.show.license"] .validity dl .copy-button,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .copy-button,td.tags .copy-button{margin-top:0!important}.consul-bucket-list .copy-btn,.consul-exposed-path-list>ul>li>.detail dl .copy-btn,.consul-instance-checks .copy-btn,.consul-lock-session-list dl .copy-btn,.consul-lock-session-list ul>li:not(:first-child)>.detail dl .copy-btn,.consul-upstream-instance-list dl .copy-btn,.list-collection>ul>li:not(:first-child)>.detail dl .copy-btn,.tag-list .copy-btn,section[data-route="dc.show.license"] .validity dl .copy-btn,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .copy-btn,td.tags .copy-btn{top:0!important}.consul-bucket-list .copy-btn:empty::before,.consul-exposed-path-list>ul>li>.detail dl .copy-btn:empty::before,.consul-instance-checks .copy-btn:empty::before,.consul-lock-session-list dl .copy-btn:empty::before,.consul-upstream-instance-list dl .copy-btn:empty::before,.list-collection>ul>li:not(:first-child)>.detail dl .copy-btn:empty::before,.tag-list .copy-btn:empty::before,section[data-route="dc.show.license"] .validity dl .copy-btn:empty::before,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .copy-btn:empty::before,td.tags .copy-btn:empty::before{left:0!important}.definition-table>dl{display:grid;grid-template-columns:140px auto;grid-gap:.4em 20px;margin-bottom:1.4em}.definition-table>dl>dd>:not(dl){display:inline-block}.disclosure-menu{position:relative}.disclosure-menu [aria-expanded]~*{overflow-y:auto!important;will-change:scrollPosition}.more-popover-menu>[type=checkbox],.more-popover-menu>[type=checkbox]~:not(.animating):not(label),.popover-menu>[type=checkbox],.popover-menu>[type=checkbox]~:not(.animating):not(label),table.has-actions tr>.actions>[type=checkbox],table.has-actions tr>.actions>[type=checkbox]~:not(.animating):not(label),table.with-details tr>.actions>[type=checkbox],table.with-details tr>.actions>[type=checkbox]~:not(.animating):not(label){display:none}.more-popover-menu>[type=checkbox]:checked~:not(label),.popover-menu>[type=checkbox]:checked~:not(label),table.has-actions tr>.actions>[type=checkbox]:checked~:not(label),table.with-details tr>.actions>[type=checkbox]:checked~:not(label){display:block}table.dom-recycling{position:relative}table.dom-recycling tr>*{overflow:hidden}.list-collection-scroll-virtual>ul,table.dom-recycling tbody{overflow-x:hidden!important}table.dom-recycling dd{flex-wrap:nowrap}table.dom-recycling dd>*{margin-bottom:0}.empty-state,.empty-state>div{display:flex;flex-direction:column}.empty-state header :first-child{padding:0;margin:0}.empty-state{margin-top:0!important;padding-bottom:2.8em;color:rgb(var(--tone-gray-500));background-color:rgb(var(--tone-gray-010))}.empty-state>*{width:370px;margin:0 auto}.empty-state button{margin:0 auto;display:inline}.empty-state header :first-child{margin-bottom:-3px;border-bottom:none}.empty-state header{margin-top:1.8em;margin-bottom:.5em}.empty-state>ul{display:flex;justify-content:space-between;margin-top:1em}.empty-state>ul>li>*,.empty-state>ul>li>label>button{display:inline-flex;align-items:center}.empty-state>div:only-child{padding:50px 0 10px;text-align:center}.empty-state header::before{font-size:2.6em;position:relative;top:-3px;float:left;margin-right:10px}.empty-state>ul>li>::before,.empty-state>ul>li>label>button::before{margin-top:-1px;margin-right:.5em;font-size:.9em}.empty-state li[class*=-link]>::after{margin-left:5px}html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup]{border:var(--decor-border-100);border-color:rgb(var(--tone-gray-300));border-radius:var(--decor-radius-100)}html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] input[type=radio]:checked+*,html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] input[type=radio]:focus+*,html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] input[type=radio]:hover+*{box-shadow:var(--decor-elevation-300);background-color:rgb(var(--tone-gray-000))}@media (min-width:996px){html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup]{display:flex}html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] label{flex-grow:1}}html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] input[type=radio]{display:none}.app-view>div form:not(.filter-bar) [role=radiogroup] label,.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea,.app-view>div form:not(.filter-bar) [role=radiogroup] label>em,.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.modal-dialog [role=document] .type-password,.modal-dialog [role=document] .type-password textarea,.modal-dialog [role=document] .type-password>em,.modal-dialog [role=document] .type-password>span,.modal-dialog [role=document] .type-select,.modal-dialog [role=document] .type-select textarea,.modal-dialog [role=document] .type-select>em,.modal-dialog [role=document] .type-select>span,.modal-dialog [role=document] .type-text,.modal-dialog [role=document] .type-text textarea,.modal-dialog [role=document] .type-text>em,.modal-dialog [role=document] .type-text>span,.modal-dialog [role=document] [role=radiogroup] label,.modal-dialog [role=document] [role=radiogroup] label textarea,.modal-dialog [role=document] [role=radiogroup] label>em,.modal-dialog [role=document] [role=radiogroup] label>span,.modal-dialog [role=document] form button+em,.oidc-select label,.oidc-select label textarea,.oidc-select label>em,.oidc-select label>span,.type-toggle,.type-toggle textarea,.type-toggle>em,.type-toggle>span,html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] label,html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] label span,main .type-password,main .type-password textarea,main .type-password>em,main .type-password>span,main .type-select,main .type-select textarea,main .type-select>em,main .type-select>span,main .type-text,main .type-text textarea,main .type-text>em,main .type-text>span,main form button+em,span.label{display:block}html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup],html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] label,html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] label span{height:100%}html[data-route^="dc.acls.index"] .filter-bar [role=radiogroup] label span{padding:5px 14px}.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password],.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text],.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea,.modal-dialog [role=document] .type-password [type=password],.modal-dialog [role=document] .type-password [type=text],.modal-dialog [role=document] .type-password textarea,.modal-dialog [role=document] .type-select [type=password],.modal-dialog [role=document] .type-select [type=text],.modal-dialog [role=document] .type-select textarea,.modal-dialog [role=document] .type-text [type=password],.modal-dialog [role=document] .type-text [type=text],.modal-dialog [role=document] .type-text textarea,.modal-dialog [role=document] [role=radiogroup] label [type=password],.modal-dialog [role=document] [role=radiogroup] label [type=text],.modal-dialog [role=document] [role=radiogroup] label textarea,.oidc-select label [type=password],.oidc-select label [type=text],.oidc-select label textarea,.type-toggle [type=password],.type-toggle [type=text],.type-toggle textarea,main .type-password [type=password],main .type-password [type=text],main .type-password textarea,main .type-select [type=password],main .type-select [type=text],main .type-select textarea,main .type-text [type=password],main .type-text [type=text],main .type-text textarea{-moz-appearance:none;-webkit-appearance:none;box-shadow:inset var(--decor-elevation-100);border-radius:var(--decor-radius-100);border:var(--decor-border-100);outline:0}.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password]:disabled,.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password]:read-only,.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text]:disabled,.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text]:read-only,.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea:disabled,.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea:read-only,.modal-dialog [role=document] .type-password [type=password]:disabled,.modal-dialog [role=document] .type-password [type=password]:read-only,.modal-dialog [role=document] .type-password [type=text]:disabled,.modal-dialog [role=document] .type-password [type=text]:read-only,.modal-dialog [role=document] .type-password textarea:disabled,.modal-dialog [role=document] .type-password textarea:read-only,.modal-dialog [role=document] .type-select [type=password]:disabled,.modal-dialog [role=document] .type-select [type=password]:read-only,.modal-dialog [role=document] .type-select [type=text]:disabled,.modal-dialog [role=document] .type-select [type=text]:read-only,.modal-dialog [role=document] .type-select textarea:disabled,.modal-dialog [role=document] .type-select textarea:read-only,.modal-dialog [role=document] .type-text [type=password]:disabled,.modal-dialog [role=document] .type-text [type=password]:read-only,.modal-dialog [role=document] .type-text [type=text]:disabled,.modal-dialog [role=document] .type-text [type=text]:read-only,.modal-dialog [role=document] .type-text textarea:disabled,.modal-dialog [role=document] .type-text textarea:read-only,.modal-dialog [role=document] [role=radiogroup] label [type=password]:disabled,.modal-dialog [role=document] [role=radiogroup] label [type=password]:read-only,.modal-dialog [role=document] [role=radiogroup] label [type=text]:disabled,.modal-dialog [role=document] [role=radiogroup] label [type=text]:read-only,.modal-dialog [role=document] [role=radiogroup] label textarea:disabled,.modal-dialog [role=document] [role=radiogroup] label textarea:read-only,.oidc-select label [type=password]:disabled,.oidc-select label [type=password]:read-only,.oidc-select label [type=text]:disabled,.oidc-select label [type=text]:read-only,.oidc-select label textarea:disabled,.oidc-select label textarea:read-only,.type-toggle [type=password]:disabled,.type-toggle [type=password]:read-only,.type-toggle [type=text]:disabled,.type-toggle [type=text]:read-only,.type-toggle textarea:disabled,.type-toggle textarea:read-only,main .type-password [type=password]:disabled,main .type-password [type=password]:read-only,main .type-password [type=text]:disabled,main .type-password [type=text]:read-only,main .type-password textarea:disabled,main .type-password textarea:read-only,main .type-select [type=password]:disabled,main .type-select [type=password]:read-only,main .type-select [type=text]:disabled,main .type-select [type=text]:read-only,main .type-select textarea:disabled,main .type-select textarea:read-only,main .type-text [type=password]:disabled,main .type-text [type=password]:read-only,main .type-text [type=text]:disabled,main .type-text [type=text]:read-only,main .type-text textarea:disabled,main .type-text textarea:read-only,textarea:disabled+.CodeMirror{cursor:not-allowed}.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password]::placeholder,.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text]::placeholder,.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea::placeholder,.app-view>div form:not(.filter-bar) [role=radiogroup] label>em,.modal-dialog [role=document] .type-password [type=password]::placeholder,.modal-dialog [role=document] .type-password [type=text]::placeholder,.modal-dialog [role=document] .type-password textarea::placeholder,.modal-dialog [role=document] .type-password>em,.modal-dialog [role=document] .type-select [type=password]::placeholder,.modal-dialog [role=document] .type-select [type=text]::placeholder,.modal-dialog [role=document] .type-select textarea::placeholder,.modal-dialog [role=document] .type-select>em,.modal-dialog [role=document] .type-text [type=password]::placeholder,.modal-dialog [role=document] .type-text [type=text]::placeholder,.modal-dialog [role=document] .type-text textarea::placeholder,.modal-dialog [role=document] .type-text>em,.modal-dialog [role=document] [role=radiogroup] label [type=password]::placeholder,.modal-dialog [role=document] [role=radiogroup] label [type=text]::placeholder,.modal-dialog [role=document] [role=radiogroup] label textarea::placeholder,.modal-dialog [role=document] [role=radiogroup] label>em,.modal-dialog [role=document] form button+em,.modal-dialog [role=document] form fieldset>p,.oidc-select label [type=password]::placeholder,.oidc-select label [type=text]::placeholder,.oidc-select label textarea::placeholder,.oidc-select label>em,.type-toggle [type=password]::placeholder,.type-toggle [type=text]::placeholder,.type-toggle textarea::placeholder,.type-toggle>em,main .type-password [type=password]::placeholder,main .type-password [type=text]::placeholder,main .type-password textarea::placeholder,main .type-password>em,main .type-select [type=password]::placeholder,main .type-select [type=text]::placeholder,main .type-select textarea::placeholder,main .type-select>em,main .type-text [type=password]::placeholder,main .type-text [type=text]::placeholder,main .type-text textarea::placeholder,main .type-text>em,main form button+em,main form fieldset>p{color:rgb(var(--tone-gray-400))}.has-error>input,.has-error>textarea{border-color:var(--decor-error-500,rgb(var(--tone-red-500)))!important}.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password],.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text],.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea,.modal-dialog [role=document] .type-password [type=password],.modal-dialog [role=document] .type-password [type=text],.modal-dialog [role=document] .type-password textarea,.modal-dialog [role=document] .type-select [type=password],.modal-dialog [role=document] .type-select [type=text],.modal-dialog [role=document] .type-select textarea,.modal-dialog [role=document] .type-text [type=password],.modal-dialog [role=document] .type-text [type=text],.modal-dialog [role=document] .type-text textarea,.modal-dialog [role=document] [role=radiogroup] label [type=password],.modal-dialog [role=document] [role=radiogroup] label [type=text],.modal-dialog [role=document] [role=radiogroup] label textarea,.oidc-select label [type=password],.oidc-select label [type=text],.oidc-select label textarea,.type-toggle [type=password],.type-toggle [type=text],.type-toggle textarea,main .type-password [type=password],main .type-password [type=text],main .type-password textarea,main .type-select [type=password],main .type-select [type=text],main .type-select textarea,main .type-text [type=password],main .type-text [type=text],main .type-text textarea{color:rgb(var(--tone-gray-500));border-color:rgb(var(--tone-gray-300))}.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password]:hover,.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text]:hover,.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea:hover,.modal-dialog [role=document] .type-password [type=password]:hover,.modal-dialog [role=document] .type-password [type=text]:hover,.modal-dialog [role=document] .type-password textarea:hover,.modal-dialog [role=document] .type-select [type=password]:hover,.modal-dialog [role=document] .type-select [type=text]:hover,.modal-dialog [role=document] .type-select textarea:hover,.modal-dialog [role=document] .type-text [type=password]:hover,.modal-dialog [role=document] .type-text [type=text]:hover,.modal-dialog [role=document] .type-text textarea:hover,.modal-dialog [role=document] [role=radiogroup] label [type=password]:hover,.modal-dialog [role=document] [role=radiogroup] label [type=text]:hover,.modal-dialog [role=document] [role=radiogroup] label textarea:hover,.oidc-select label [type=password]:hover,.oidc-select label [type=text]:hover,.oidc-select label textarea:hover,.type-toggle [type=password]:hover,.type-toggle [type=text]:hover,.type-toggle textarea:hover,main .type-password [type=password]:hover,main .type-password [type=text]:hover,main .type-password textarea:hover,main .type-select [type=password]:hover,main .type-select [type=text]:hover,main .type-select textarea:hover,main .type-text [type=password]:hover,main .type-text [type=text]:hover,main .type-text textarea:hover{border-color:rgb(var(--tone-gray-500))}.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password]:focus,.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text]:focus,.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea:focus,.modal-dialog [role=document] .type-password [type=password]:focus,.modal-dialog [role=document] .type-password [type=text]:focus,.modal-dialog [role=document] .type-password textarea:focus,.modal-dialog [role=document] .type-select [type=password]:focus,.modal-dialog [role=document] .type-select [type=text]:focus,.modal-dialog [role=document] .type-select textarea:focus,.modal-dialog [role=document] .type-text [type=password]:focus,.modal-dialog [role=document] .type-text [type=text]:focus,.modal-dialog [role=document] .type-text textarea:focus,.modal-dialog [role=document] [role=radiogroup] label [type=password]:focus,.modal-dialog [role=document] [role=radiogroup] label [type=text]:focus,.modal-dialog [role=document] [role=radiogroup] label textarea:focus,.oidc-select label [type=password]:focus,.oidc-select label [type=text]:focus,.oidc-select label textarea:focus,.type-toggle [type=password]:focus,.type-toggle [type=text]:focus,.type-toggle textarea:focus,main .type-password [type=password]:focus,main .type-password [type=text]:focus,main .type-password textarea:focus,main .type-select [type=password]:focus,main .type-select [type=text]:focus,main .type-select textarea:focus,main .type-text [type=password]:focus,main .type-text [type=text]:focus,main .type-text textarea:focus{border-color:var(--typo-action-500,rgb(var(--tone-blue-500)))}.app-view>div form:not(.filter-bar) [role=radiogroup] label a,.modal-dialog [role=document] .type-password a,.modal-dialog [role=document] .type-select a,.modal-dialog [role=document] .type-text a,.modal-dialog [role=document] [role=radiogroup] label a,.oidc-select label a,.type-toggle a,main .type-password a,main .type-select a,main .type-text a{display:inline}.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=password],.app-view>div form:not(.filter-bar) [role=radiogroup] label [type=text],.modal-dialog [role=document] .type-password [type=password],.modal-dialog [role=document] .type-password [type=text],.modal-dialog [role=document] .type-select [type=password],.modal-dialog [role=document] .type-select [type=text],.modal-dialog [role=document] .type-text [type=password],.modal-dialog [role=document] .type-text [type=text],.modal-dialog [role=document] [role=radiogroup] label [type=password],.modal-dialog [role=document] [role=radiogroup] label [type=text],.oidc-select label [type=password],.oidc-select label [type=text],.type-toggle [type=password],.type-toggle [type=text],main .type-password [type=password],main .type-password [type=text],main .type-select [type=password],main .type-select [type=text],main .type-text [type=password],main .type-text [type=text]{display:inline-flex;justify-content:flex-start;max-width:100%;width:100%;height:0;padding:17px 13px}.app-view>div form:not(.filter-bar) [role=radiogroup] label textarea,.modal-dialog [role=document] .type-password textarea,.modal-dialog [role=document] .type-select textarea,.modal-dialog [role=document] .type-text textarea,.modal-dialog [role=document] [role=radiogroup] label textarea,.oidc-select label textarea,.type-toggle textarea,main .type-password textarea,main .type-select textarea,main .type-text textarea{resize:vertical;max-width:100%;min-width:100%;min-height:70px;padding:6px 13px}.app-view>div form:not(.filter-bar) [role=radiogroup],.app-view>div form:not(.filter-bar) [role=radiogroup] label,.checkbox-group,.modal-dialog [role=document] .type-password,.modal-dialog [role=document] .type-select,.modal-dialog [role=document] .type-text,.modal-dialog [role=document] [role=radiogroup],.modal-dialog [role=document] [role=radiogroup] label,.modal-dialog [role=document] form table,.oidc-select label,.type-toggle,main .type-password,main .type-select,main .type-text,main form table{margin-bottom:1.4em}.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.modal-dialog [role=document] .type-password>span,.modal-dialog [role=document] .type-select>span,.modal-dialog [role=document] .type-text>span,.modal-dialog [role=document] [role=radiogroup] label>span,.oidc-select label>span,.type-toggle>span,main .type-password>span,main .type-select>span,main .type-text>span,span.label{color:var(--typo-contrast-999,inherit);margin-bottom:.3em}.app-view>div form:not(.filter-bar) [role=radiogroup] label>span+em,.modal-dialog [role=document] .type-password>span+em,.modal-dialog [role=document] .type-select>span+em,.modal-dialog [role=document] .type-text>span+em,.modal-dialog [role=document] [role=radiogroup] label>span+em,.oidc-select label>span+em,.type-toggle>span+em,main .type-password>span+em,main .type-select>span+em,main .type-text>span+em,span.label+em{margin-top:-.5em;margin-bottom:.5em}label.type-dialog{cursor:pointer;float:right}.type-toggle+.checkbox-group{margin-top:-1em}.consul-exposed-path-list>ul>li,.consul-intention-permission-header-list>ul>li,.consul-intention-permission-list>ul>li,.consul-lock-session-list ul>li:not(:first-child),.consul-upstream-instance-list li,.list-collection>ul>li:not(:first-child){list-style-type:none;border:var(--decor-border-100);border-top-color:var(--transparent);border-bottom-color:rgb(var(--tone-gray-200));border-right-color:var(--transparent);border-left-color:var(--transparent);--horizontal-padding:12px;--vertical-padding:10px;padding:var(--vertical-padding) 0;padding-left:var(--horizontal-padding)}.consul-auth-method-list>ul>li:active:not(:first-child),.consul-auth-method-list>ul>li:focus:not(:first-child),.consul-auth-method-list>ul>li:hover:not(:first-child),.consul-exposed-path-list>ul>li.linkable:active,.consul-exposed-path-list>ul>li.linkable:focus,.consul-exposed-path-list>ul>li.linkable:hover,.consul-intention-permission-list:not(.readonly)>ul>li:active,.consul-intention-permission-list:not(.readonly)>ul>li:focus,.consul-intention-permission-list:not(.readonly)>ul>li:hover,.consul-lock-session-list ul>li.linkable:active:not(:first-child),.consul-lock-session-list ul>li.linkable:focus:not(:first-child),.consul-lock-session-list ul>li.linkable:hover:not(:first-child),.consul-node-list>ul>li:active:not(:first-child),.consul-node-list>ul>li:focus:not(:first-child),.consul-node-list>ul>li:hover:not(:first-child),.consul-policy-list>ul>li:active:not(:first-child),.consul-policy-list>ul>li:focus:not(:first-child),.consul-policy-list>ul>li:hover:not(:first-child),.consul-role-list>ul>li:active:not(:first-child),.consul-role-list>ul>li:focus:not(:first-child),.consul-role-list>ul>li:hover:not(:first-child),.consul-service-instance-list>ul>li:active:not(:first-child),.consul-service-instance-list>ul>li:focus:not(:first-child),.consul-service-instance-list>ul>li:hover:not(:first-child),.consul-token-list>ul>li:active:not(:first-child),.consul-token-list>ul>li:focus:not(:first-child),.consul-token-list>ul>li:hover:not(:first-child),.consul-upstream-instance-list li.linkable:active,.consul-upstream-instance-list li.linkable:focus,.consul-upstream-instance-list li.linkable:hover,.list-collection>ul>li.linkable:active:not(:first-child),.list-collection>ul>li.linkable:focus:not(:first-child),.list-collection>ul>li.linkable:hover:not(:first-child){border-color:rgb(var(--tone-gray-200));box-shadow:0 2px 4px rgb(var(--black) /10%);border-top-color:var(--transparent);cursor:pointer}.radio-card,.tippy-box{box-shadow:var(--decor-elevation-400)}.consul-exposed-path-list>ul>li>.header,.consul-lock-session-list ul>li:not(:first-child)>.header,.consul-upstream-instance-list li>.header,.list-collection>ul>li:not(:first-child)>.header{color:rgb(var(--tone-gray-999))}.consul-exposed-path-list>ul>li>.header *,.consul-lock-session-list ul>li:not(:first-child)>.header *,.consul-upstream-instance-list li>.header *,.list-collection>ul>li:not(:first-child)>.header *{color:inherit}.consul-exposed-path-list>ul>li>.detail,.consul-lock-session-list ul>li:not(:first-child)>.detail,.consul-upstream-instance-list li>.detail,.list-collection>ul>li:not(:first-child)>.detail,.radio-card{color:rgb(var(--tone-gray-500))}.consul-exposed-path-list>ul>li>.detail a,.consul-lock-session-list ul>li:not(:first-child)>.detail a,.consul-upstream-instance-list li>.detail a,.list-collection>ul>li:not(:first-child)>.detail a{color:inherit}.consul-exposed-path-list>ul>li>.detail a:hover,.consul-lock-session-list ul>li:not(:first-child)>.detail a:hover,.consul-upstream-instance-list li>.detail a:hover,.list-collection>ul>li:not(:first-child)>.detail a:hover{color:rgb(var(--color-action));text-decoration:underline}.consul-exposed-path-list>ul>li>.detail,.consul-exposed-path-list>ul>li>.header>dl:first-child,.consul-lock-session-list ul>li:not(:first-child)>.detail,.consul-lock-session-list ul>li:not(:first-child)>.header>dl:first-child,.consul-upstream-instance-list li>.detail,.consul-upstream-instance-list li>.header>dl:first-child,.list-collection>ul>li:not(:first-child)>.detail,.list-collection>ul>li:not(:first-child)>.header>dl:first-child{margin-right:6px}.consul-exposed-path-list>ul>li>.header dt,.consul-lock-session-list ul>li:not(:first-child)>.header dt,.consul-upstream-instance-list li>.header dt,.list-collection>ul>li:not(:first-child)>.header dt{display:none}.consul-exposed-path-list>ul>li>.header dd::before,.consul-lock-session-list ul>li:not(:first-child)>.header dd::before,.consul-upstream-instance-list li>.header dd::before,.list-collection>ul>li:not(:first-child)>.header dd::before{font-size:.9em}.consul-exposed-path-list>ul>li>.detail,.consul-exposed-path-list>ul>li>.header,.consul-lock-session-list ul>li:not(:first-child)>.detail,.consul-lock-session-list ul>li:not(:first-child)>.header,.consul-upstream-instance-list li>.detail,.consul-upstream-instance-list li>.header,.list-collection>ul>li:not(:first-child)>.detail,.list-collection>ul>li:not(:first-child)>.header{display:flex;flex-wrap:nowrap;overflow-x:hidden}.consul-exposed-path-list>ul>li>.detail *,.consul-exposed-path-list>ul>li>.header *,.consul-lock-session-list ul>li:not(:first-child)>.detail *,.consul-lock-session-list ul>li:not(:first-child)>.header *,.consul-upstream-instance-list li>.detail *,.consul-upstream-instance-list li>.header *,.list-collection>ul>li:not(:first-child)>.detail *,.list-collection>ul>li:not(:first-child)>.header *{white-space:nowrap;flex-wrap:nowrap}.consul-exposed-path-list>ul>li>.detail>span,.consul-lock-session-list ul>li:not(:first-child)>.detail>span,.consul-upstream-instance-list li>.detail>span,.list-collection>ul>li:not(:first-child)>.detail>span{margin-right:18px}.consul-intention-permission-header-list>ul>li,.consul-intention-permission-list>ul>li{padding-top:0!important;padding-bottom:0!important}.consul-intention-permission-header-list>ul>li .detail,.consul-intention-permission-list>ul>li .detail{grid-row-start:header!important;grid-row-end:detail!important;align-self:center!important;padding:5px 0}.consul-intention-permission-header-list>ul>li .popover-menu>[type=checkbox]+label,.consul-intention-permission-list>ul>li .popover-menu>[type=checkbox]+label{padding:0}.consul-intention-permission-header-list>ul>li .popover-menu>[type=checkbox]+label+div:not(.above),.consul-intention-permission-list>ul>li .popover-menu>[type=checkbox]+label+div:not(.above){top:30px}.has-error>strong{font-style:normal;font-weight:400;color:inherit;color:rgb(var(--color-failure));position:relative;padding-left:20px}.has-error>strong::before{font-size:14px;color:rgb(var(--tone-red-500));position:absolute;top:50%;left:0;margin-top:-8px}.more-popover-menu .popover-menu>[type=checkbox]+label,table.has-actions tr>.actions .popover-menu>[type=checkbox]+label,table.with-details tr>.actions .popover-menu>[type=checkbox]+label{padding:7px}.more-popover-menu .popover-menu>[type=checkbox]+label>*,table.has-actions tr>.actions .popover-menu>[type=checkbox]+label>*,table.with-details tr>.actions .popover-menu>[type=checkbox]+label>*{background-color:var(--transparent);border-radius:var(--decor-radius-100);width:30px;height:30px;font-size:0}.more-popover-menu .popover-menu>[type=checkbox]+label>::after,table.has-actions tr>.actions .popover-menu>[type=checkbox]+label>::after,table.with-details tr>.actions .popover-menu>[type=checkbox]+label>::after{--icon-name:icon-more-horizontal;--icon-color:rgb(var(--tone-gray-900));--icon-size:icon-300;content:"";position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.more-popover-menu .popover-menu>[type=checkbox]+label>:active,table.has-actions tr>.actions .popover-menu>[type=checkbox]+label>:active,table.with-details tr>.actions .popover-menu>[type=checkbox]+label>:active{background-color:rgb(var(--tone-gray-100))}.more-popover-menu .popover-menu>[type=checkbox]+label>:focus,.more-popover-menu .popover-menu>[type=checkbox]+label>:hover,.radio-card>:first-child,table.has-actions tr>.actions .popover-menu>[type=checkbox]+label>:focus,table.has-actions tr>.actions .popover-menu>[type=checkbox]+label>:hover,table.with-details tr>.actions .popover-menu>[type=checkbox]+label>:focus,table.with-details tr>.actions .popover-menu>[type=checkbox]+label>:hover{background-color:rgb(var(--tone-gray-050))}.oidc-select [class$=-oidc-provider]::before{width:22px;height:22px;flex:0 0 auto;margin-right:10px}.oidc-select .ember-power-select-trigger,.oidc-select li{margin-bottom:1em}.informed-action header,.radio-card header{margin-bottom:.5em}.oidc-select .ember-power-select-trigger{width:100%}.oidc-select button.reset{float:right}.radio-card{border:var(--decor-border-100);border-radius:var(--decor-radius-100);border-color:rgb(var(--tone-gray-200));cursor:pointer;float:none!important;margin-right:0!important;display:flex!important}.checked.radio-card{border-color:rgb(var(--tone-blue-500))}.checked.radio-card>:first-child{background-color:rgb(var(--tone-blue-050))}.radio-card header{color:rgb(var(--tone-gray-999))}.consul-intention-fieldsets .radio-card>:last-child{padding-left:47px;position:relative}.consul-intention-fieldsets .radio-card>:last-child::before{position:absolute;left:14px;font-size:1rem}.radio-card>:first-child{padding:10px;display:grid;align-items:center;justify-items:center}.radio-card>:last-child{padding:18px}.consul-server-card,.disclosure-menu [aria-expanded]~*,.menu-panel,.more-popover-menu>[type=checkbox]+label+div,.popover-menu>[type=checkbox]+label+div,section[data-route="dc.show.license"] aside,section[data-route="dc.show.serverstatus"] .server-failure-tolerance,table.has-actions tr>.actions>[type=checkbox]+label+div,table.with-details tr>.actions>[type=checkbox]+label+div{--tone-border:var(--tone-gray-300);border:var(--decor-border-100);border-radius:var(--decor-radius-200);box-shadow:var(--decor-elevation-600);color:rgb(var(--tone-gray-900));background-color:rgb(var(--tone-gray-000));--padding-x:14px;--padding-y:14px;position:relative}.consul-auth-method-nspace-list tbody tr:hover,.consul-auth-method-view section table tbody tr:hover,table.consul-metadata-list tbody tr:hover{box-shadow:none}.disclosure-menu [aria-expanded]~* [role=separator],.menu-panel [role=separator],.more-popover-menu>[type=checkbox]+label+div [role=separator],.popover-menu>[type=checkbox]+label+div [role=separator],table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator],table.with-details tr>.actions>[type=checkbox]+label+div [role=separator]{border-top:var(--decor-border-100);margin:0}.consul-server-card,.disclosure-menu [aria-expanded]~*,.disclosure-menu [aria-expanded]~* [role=separator],.menu-panel,.menu-panel [role=separator],.more-popover-menu>[type=checkbox]+label+div,.more-popover-menu>[type=checkbox]+label+div [role=separator],.popover-menu>[type=checkbox]+label+div,.popover-menu>[type=checkbox]+label+div [role=separator],section[data-route="dc.show.license"] aside,section[data-route="dc.show.serverstatus"] .server-failure-tolerance,table.has-actions tr>.actions>[type=checkbox]+label+div,table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator],table.with-details tr>.actions>[type=checkbox]+label+div,table.with-details tr>.actions>[type=checkbox]+label+div [role=separator]{border-color:rgb(var(--tone-border))}.paged-collection-scroll,[style*="--paged-row-height"]{overflow-y:auto!important;will-change:scrollPosition}[style*="--paged-start"]::before{content:"";display:block;height:var(--paged-start)}.consul-auth-method-type,.consul-external-source,.consul-health-check-list .health-check-output dd em,.consul-intention-list td strong,.consul-intention-permission-list strong,.consul-intention-search-bar li button span,.consul-kind,.consul-server-card .health-status+dd,.consul-source,.consul-transparent-proxy,.discovery-chain .route-card>header ul li,.hashicorp-consul nav .dcs li.is-local span,.hashicorp-consul nav .dcs li.is-primary span,.leader,.search-bar-status li:not(.remove-all),.topology-metrics-source-type,html[data-route^="dc.acls.index"] main td strong,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em,span.policy-node-identity,span.policy-service-identity{border-radius:var(--decor-radius-100);display:inline-flex;position:relative;align-items:center;white-space:nowrap}.consul-auth-method-type::before,.consul-external-source::before,.consul-health-check-list .health-check-output dd em::before,.consul-intention-list td strong::before,.consul-intention-permission-list strong::before,.consul-intention-search-bar li button span::before,.consul-kind::before,.consul-server-card .health-status+dd::before,.consul-source::before,.consul-transparent-proxy::before,.discovery-chain .route-card>header ul li::before,.hashicorp-consul nav .dcs li.is-local span::before,.hashicorp-consul nav .dcs li.is-primary span::before,.leader::before,.search-bar-status li:not(.remove-all)::before,.topology-metrics-source-type::before,html[data-route^="dc.acls.index"] main td strong::before,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl::before,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em::before,span.policy-node-identity::before,span.policy-service-identity::before{margin-right:4px}.consul-auth-method-type,.consul-external-source,.consul-kind,.consul-server-card .health-status+dd,.consul-source,.consul-transparent-proxy,.leader,.search-bar-status li:not(.remove-all),.topology-metrics-source-type,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em,span.policy-node-identity,span.policy-service-identity{padding:0 8px;--icon-size:icon-200}.consul-intention-permission-list strong,.discovery-chain .route-card>header ul li,html[data-route^="dc.acls.index"] main td strong,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl{padding:1px 5px}.consul-intention-list td strong,.consul-intention-search-bar li button span{padding:4px 8px}span.policy-node-identity::before,span.policy-service-identity::before{vertical-align:unset}span.policy-node-identity::before{content:"Node Identity: "}span.policy-service-identity::before{content:"Service Identity: "}.aws-iam.consul-auth-method-type::before,.aws-iam.consul-external-source::before,.aws-iam.consul-kind::before,.aws-iam.consul-source::before,.aws-iam.consul-transparent-proxy::before,.aws-iam.leader::before,.aws-iam.topology-metrics-source-type::before,.consul-health-check-list .health-check-output dd em.aws-iam::before,.consul-intention-list td strong.aws-iam::before,.consul-intention-permission-list strong.aws-iam::before,.consul-intention-search-bar li button span.aws-iam::before,.consul-server-card .health-status+dd.aws-iam::before,.discovery-chain .route-card>header ul li.aws-iam::before,.hashicorp-consul nav .dcs li.is-local span.aws-iam::before,.hashicorp-consul nav .dcs li.is-primary span.aws-iam::before,.search-bar-status li.aws-iam:not(.remove-all)::before,html[data-route^="dc.acls.index"] main td strong.aws-iam::before,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.aws-iam::before,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em.aws-iam::before,span.aws-iam.policy-node-identity::before,span.aws-iam.policy-service-identity::before{--icon-name:icon-aws-color;content:""}.more-popover-menu>[type=checkbox]+label>*,.popover-menu>[type=checkbox]+label>*,table.has-actions tr>.actions>[type=checkbox]+label>*,table.with-details tr>.actions>[type=checkbox]+label>*{cursor:pointer}.more-popover-menu>[type=checkbox]+label>::after,.popover-menu>[type=checkbox]+label>::after,table.has-actions tr>.actions>[type=checkbox]+label>::after,table.with-details tr>.actions>[type=checkbox]+label>::after{width:16px;height:16px;position:relative}.more-popover-menu,.popover-menu,table.has-actions tr>.actions,table.with-details tr>.actions{position:relative}.more-popover-menu>[type=checkbox]+label,.popover-menu>[type=checkbox]+label,table.has-actions tr>.actions>[type=checkbox]+label,table.with-details tr>.actions>[type=checkbox]+label{display:block}.more-popover-menu>[type=checkbox]+label+div,.popover-menu>[type=checkbox]+label+div,table.has-actions tr>.actions>[type=checkbox]+label+div,table.with-details tr>.actions>[type=checkbox]+label+div{min-width:192px}.more-popover-menu>[type=checkbox]+label+div:not(.above),.popover-menu>[type=checkbox]+label+div:not(.above),table.has-actions tr>.actions>[type=checkbox]+label+div:not(.above),table.with-details tr>.actions>[type=checkbox]+label+div:not(.above){top:38px}.more-popover-menu>[type=checkbox]+label+div:not(.left),.popover-menu>[type=checkbox]+label+div:not(.left),table.has-actions tr>.actions>[type=checkbox]+label+div:not(.left),table.with-details tr>.actions>[type=checkbox]+label+div:not(.left){right:5px}.popover-menu .menu-panel{position:absolute!important}.type-reveal,.type-toggle label{position:relative}.popover-select label{height:100%}.popover-select label>*{padding:0 8px!important;height:100%!important;justify-content:space-between!important;min-width:auto!important}.popover-select label>::after{margin-left:6px}.popover-select button::before{margin-right:10px}.popover-select .value-passing button::before{color:rgb(var(--tone-green-500))}.popover-select .value-warning button::before{color:rgb(var(--tone-orange-500))}.popover-select .value-critical button::before{color:rgb(var(--tone-red-500))}.popover-select .value-empty button::before{color:rgb(var(--tone-gray-400))}.type-source.popover-select li:not(.partition) button{text-transform:capitalize}.type-source.popover-select li.aws button{text-transform:uppercase}.type-source.popover-select li.partition button::before{color:rgb(var(--tone-gray-500))}.progress.indeterminate{width:100%;display:flex;align-items:center;justify-content:center;--icon-size:icon-700;--icon-name:var(--icon-loading);--icon-color:rgb(var(--tone-gray-500))}.progress.indeterminate::before{content:""}.app-view>div form:not(.filter-bar) [role=radiogroup],.modal-dialog [role=document] [role=radiogroup]{overflow:hidden;padding-left:1px}.app-view>div form:not(.filter-bar) [role=radiogroup] label,.modal-dialog [role=document] [role=radiogroup] label{float:left}.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.modal-dialog [role=document] [role=radiogroup] label>span{float:right;margin-left:1em}.app-view>div form:not(.filter-bar) [role=radiogroup] label:not(:last-child),.modal-dialog [role=document] [role=radiogroup] label:not(:last-child){margin-right:25px}.app-view>div form:not(.filter-bar) [role=radiogroup] label,.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.modal-dialog [role=document] [role=radiogroup] label,.modal-dialog [role=document] [role=radiogroup] label>span{margin-bottom:0!important}.type-reveal{cursor:pointer}.type-reveal input{display:none}.type-reveal input~em{visibility:hidden;font-style:normal}.type-reveal input:checked~em{visibility:visible;cursor:auto}.type-reveal input~em::before{display:inline;visibility:visible;content:"■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■"}.type-reveal input:checked~em::before,.type-toggle input{display:none}.type-reveal span,[role=banner] nav:not(.in-viewport):first-of-type{visibility:hidden}.type-reveal span{position:absolute;--icon-color:rgb(var(--tone-gray-500))}.type-reveal em{margin-left:22px}.type-reveal span::before{visibility:visible}.type-toggle label span{cursor:pointer}.type-toggle label span::after{border-radius:var(--decor-radius-full)}.type-toggle label span::before{border-radius:7px;left:0;width:24px;height:12px;margin-top:-5px}.type-negative.type-toggle{border:0}.app-view>header .title,.modal-dialog [role=document] table td,.modal-dialog [role=document] table th,main table td,main table th{border-bottom:var(--decor-border-100)}.type-toggle label span::after{background-color:rgb(var(--tone-gray-000));margin-top:-3px;width:8px;height:8px}.type-negative.type-toggle label input+span::before,.type-toggle label input:checked+span::before{background-color:rgb(var(--tone-blue-500))}.type-negative.type-toggle label input:checked+span::before,.type-toggle label span::before{background-color:rgb(var(--tone-gray-300))}.type-toggle label span{color:rgb(var(--tone-gray-900));display:inline-block;padding-left:34px}.type-toggle label span::after,.type-toggle label span::before{position:absolute;display:block;content:"";top:50%}.type-negative.type-toggle label input+span::after,.type-toggle label input:checked+span::after{left:14px}.type-negative.type-toggle label input:checked+span::after,.type-toggle label span::after{left:2px}.modal-dialog [role=document] table th,main table th{border-color:rgb(var(--tone-gray-300));padding:.6em 0}.modal-dialog [role=document] table td,main table td{border-color:rgb(var(--tone-gray-200));color:rgb(var(--tone-gray-500));height:50px;vertical-align:middle}.modal-dialog [role=document] table td strong,.modal-dialog [role=document] table th,main table td strong,main table th{color:rgb(var(--tone-gray-600))}.consul-intention-list td.destination,.consul-intention-list td.source,.modal-dialog [role=document] table a,.modal-dialog [role=document] table td:first-child,main table a,main table td:first-child{color:rgb(var(--tone-gray-900))}.modal-dialog [role=document] table,main table{width:100%;border-collapse:collapse}table.dom-recycling tr{display:flex}table.dom-recycling tr>*{flex:1 1 auto;display:inline-flex;align-items:center}.modal-dialog [role=document] table th.actions input,main table th.actions input{display:none}.modal-dialog [role=document] table th.actions,main table th.actions{text-align:right}.modal-dialog [role=document] table td a,main table td a{display:block}.modal-dialog [role=document] table td.no-actions~.actions,main table td.no-actions~.actions{display:none}.modal-dialog [role=document] table td:not(.actions)>:only-child,main table td:not(.actions)>:only-child{overflow:hidden;text-overflow:ellipsis}.modal-dialog [role=document] table td:not(.actions)>*,main table td:not(.actions)>*{white-space:nowrap}.modal-dialog [role=document] table caption,main table caption{margin-bottom:.8em}.modal-dialog [role=document] table td a,.modal-dialog [role=document] table td:not(.actions),.modal-dialog [role=document] table th:not(.actions),main table td a,main table td:not(.actions),main table th:not(.actions){padding-right:.9em}.modal-dialog [role=document] table tbody td em,main table tbody td em{display:block;font-style:normal;font-weight:400;color:rgb(var(--tone-gray-500))}table.has-actions tr>.actions,table.with-details tr>.actions{width:60px!important;overflow:visible}table.has-actions tr>.actions>[type=checkbox]+label,table.with-details tr>.actions>[type=checkbox]+label{position:absolute;right:5px}table.consul-metadata-list tbody tr{cursor:default}.modal-dialog [role=document] table th span::after,main table th span::after{color:rgb(var(--tone-gray-500));margin-left:4px}.modal-dialog [role=document] table tbody tr,main table tbody tr{cursor:pointer}.modal-dialog [role=document] table td:first-child,main table td:first-child{padding:0}.modal-dialog [role=document] table tbody tr:hover,main table tbody tr:hover{box-shadow:var(--decor-elevation-300)}.modal-dialog [role=document] table td.folder::before,main table td.folder::before{background-color:rgb(var(--tone-gray-300));margin-top:1px;margin-right:5px}@media (max-width:420px){.consul-intention-list tr>:nth-last-child(2),.modal-dialog [role=document] table tr>.actions,main table tr>.actions{display:none}}.voting-status-leader.consul-server-card .name{width:var(--tile-size,3rem);height:var(--tile-size,3rem)}.voting-status-leader.consul-server-card .name::before{display:block;content:"";width:100%;height:100%;border-radius:var(--decor-radius-250);border:var(--decor-border-100);background-image:linear-gradient(135deg,rgb(var(--strawberry-010)) 0,rgb(var(--strawberry-200)) 100%);border-color:rgb(var(--tone-gray-999) /10%)}.voting-status-leader.consul-server-card .name::after{content:"";position:absolute;top:calc(var(--tile-size,3rem)/ 4);left:calc(var(--tile-size,3rem)/ 4);--icon-name:icon-star-fill;--icon-size:icon-700;color:rgb(var(--strawberry-500))}table.with-details td:only-child>div>label,table.with-details td>label{border-radius:var(--decor-radius-100);cursor:pointer;min-width:30px;min-height:30px;display:inline-flex;align-items:center;justify-content:center}table.with-details td:only-child>div>label:focus,table.with-details td:only-child>div>label:hover,table.with-details td>label:focus,table.with-details td>label:hover{background-color:rgb(var(--tone-gray-050))}table.with-details td:only-child>div>label:active,table.with-details td>label:active{background-color:rgb(var(--tone-gray-100))}table.dom-recycling tbody{top:33px!important;width:100%}table.dom-recycling caption~tbody{top:57px!important}table tr>:nth-last-child(2):first-child,table tr>:nth-last-child(2):first-child~*{width:calc(100% / 2)}table tr>:nth-last-child(3):first-child,table tr>:nth-last-child(3):first-child~*{width:calc(100% / 3)}table tr>:nth-last-child(4):first-child,table tr>:nth-last-child(4):first-child~*{width:calc(100% / 4)}table tr>:nth-last-child(5):first-child,table tr>:nth-last-child(5):first-child~*{width:calc(100% / 5)}table.has-actions tr>:nth-last-child(2):first-child,table.has-actions tr>:nth-last-child(2):first-child~*{width:calc(100% - 60px)}table.has-actions tr>:nth-last-child(3):first-child,table.has-actions tr>:nth-last-child(3):first-child~*{width:calc(50% - 30px)}table.has-actions tr>:nth-last-child(4):first-child,table.has-actions tr>:nth-last-child(4):first-child~*{width:calc(33% - 20px)}table.has-actions tr>:nth-last-child(5):first-child,table.has-actions tr>:nth-last-child(5):first-child~*{width:calc(25% - 15px)}html[data-route^="dc.acls.policies"] [role=dialog] table tr>:not(last-child),html[data-route^="dc.acls.policies"] table tr>:not(last-child),html[data-route^="dc.acls.roles"] [role=dialog] table tr>:not(last-child),html[data-route^="dc.acls.roles"] main table.token-list tr>:not(last-child){width:120px}html[data-route^="dc.acls.policies"] table tr>:last-child,html[data-route^="dc.acls.roles"] [role=dialog] table tr>:last-child,html[data-route^="dc.acls.roles"] main table.token-list tr>:last-child{width:calc(100% - 240px)!important}table.with-details td:only-child{cursor:default;border:0}table.with-details td:only-child>div::before,table.with-details td:only-child>div>div,table.with-details td:only-child>div>label{background-color:rgb(var(--tone-gray-000))}table.with-details td:only-child>div>label::before{transform:rotate(180deg)}table.with-details td:only-child>div::before{background:rgb(var(--tone-gray-200));content:"";display:block;height:1px;position:absolute;bottom:-20px;left:10px;width:calc(100% - 20px)}table.with-details tr>.actions{position:relative}table.with-details td:only-child>div>label,table.with-details td>label{pointer-events:auto;position:absolute;top:8px}table.with-details td:only-child>div>label span,table.with-details td>label span{display:none}table.with-details td>label{right:2px}table.with-details tr:nth-child(even) td{height:auto;position:relative;display:table-cell}table.with-details tr:nth-child(even) td>*{display:none}table.with-details td:only-child>div>label{right:11px}table.with-details tr:nth-child(even) td>input:checked+*{display:block}table.with-details td:only-child{overflow:visible;width:100%}table.with-details td:only-child>div{border:1px solid;border-radius:var(--decor-radius-100);box-shadow:var(--decor-elevation-600);margin-bottom:20px;position:relative;left:-10px;right:-10px;width:calc(100% + 20px);margin-top:-51px;pointer-events:none;padding:10px}table.with-details td:only-child>div::after{content:"";display:block;clear:both}table.with-details td:only-child>div>div{pointer-events:auto;margin-top:36px}.consul-auth-method-binding-list dl,.consul-auth-method-view dl,.consul-auth-method-view section dl{display:flex;flex-wrap:wrap}.consul-auth-method-binding-list dl dd,.consul-auth-method-binding-list dl dt,.consul-auth-method-view dl dd,.consul-auth-method-view dl dt{padding:12px 0;margin:0;border-top:1px solid!important}.consul-auth-method-binding-list dl dt,.consul-auth-method-view dl dt{width:20%;font-weight:var(--typo-weight-bold)}.consul-auth-method-binding-list dl dd,.consul-auth-method-view dl dd{margin-left:auto;width:80%;display:flex}.consul-auth-method-binding-list dl dd>ul li,.consul-auth-method-view dl dd>ul li{display:flex}.consul-auth-method-binding-list dl dd>ul li:not(:last-of-type),.consul-auth-method-view dl dd>ul li:not(:last-of-type){padding-bottom:12px}.consul-auth-method-binding-list dl dd .copy-button button,.consul-auth-method-view dl dd .copy-button button{padding:0!important;margin:0 4px 0 0!important}.consul-auth-method-binding-list dl dt.check+dd,.consul-auth-method-view dl dt.check+dd{padding-top:16px}.consul-auth-method-binding-list dl>dd:last-of-type,.consul-auth-method-binding-list dl>dt:last-of-type,.consul-auth-method-view dl>dd:last-of-type,.consul-auth-method-view dl>dt:last-of-type,.consul-auth-method-view section dl>dd:last-of-type,.consul-auth-method-view section dl>dt:last-of-type{border-bottom:1px solid!important;border-color:rgb(var(--tone-gray-300))!important}.consul-auth-method-binding-list dl dd,.consul-auth-method-binding-list dl dt,.consul-auth-method-view dl dd,.consul-auth-method-view dl dt{border-color:rgb(var(--tone-gray-300))!important;color:rgb(var(--tone-gray-999))!important}.consul-auth-method-binding-list dl dt.type+dd span::before,.consul-auth-method-view dl dt.type+dd span::before{margin-left:4px;background-color:rgb(var(--tone-gray-500))}.tooltip-panel dt{cursor:pointer}.tooltip-panel dd>div::before{width:12px;height:12px;background-color:rgb(var(--tone-gray-000));border-top:1px solid rgb(var(--tone-gray-300));border-right:1px solid rgb(var(--tone-gray-300));transform:rotate(-45deg);position:absolute;left:16px;top:-7px}.tooltip-panel,.tooltip-panel dt{display:flex;flex-direction:column}.tooltip-panel dd>div.menu-panel{top:auto;overflow:visible}.tooltip-panel dd{display:none;position:relative;z-index:1;padding-top:10px;margin-bottom:-10px}.tooltip-panel:hover dd{display:block}.tooltip-panel dd>div{width:250px}.app-view>header .title{display:flex;align-items:center;white-space:nowrap;position:relative;z-index:5;padding-bottom:.2em}.app-view>div form:not(.filter-bar) fieldset{border-bottom:var(--decor-border-200)}.app-view>header h1>em{color:rgb(var(--tone-gray-600))}.app-view>header dd>a{color:rgb(var(--tone-gray-999))}.app-view>div div>dl>dd,[role=contentinfo]{color:rgb(var(--tone-gray-400))}.app-view>div form:not(.filter-bar) fieldset,.app-view>header .title{border-color:rgb(var(--tone-gray-200))}.app-view>header .actions{display:flex;align-items:flex-start;margin-left:auto;margin-top:9px}.app-view>header .title>:not(:last-child){margin-right:8px}.app-view>div form:not(.filter-bar) fieldset{padding-bottom:.3em;margin-bottom:2em}[for=toolbar-toggle]{background-position:0 4px;display:inline-block;width:26px;height:26px;cursor:pointer;color:rgb(var(--tone-blue-500))}#toolbar-toggle{display:none}@media (max-width:849px){.app-view>header .actions{margin-top:9px}}@media (min-width:996px){[for=toolbar-toggle]{display:none}}@media (max-width:995px){.app-view>header h1{display:inline-block}html[data-route$="dc.services.instance.show"] h1{display:block}#toolbar-toggle+*{display:none}#toolbar-toggle:checked+*{display:flex}}.brand-loader{position:absolute;top:50%;margin-top:-26px;left:50%}.app .skip-links{outline:solid 1px;background-color:rgb(var(--tone-blue-500));display:flex;flex-direction:column;position:absolute;z-index:10;left:50%;padding:20px;top:-100px;transform:translateX(-50%)}.app .skip-links a,.app .skip-links button{color:inherit}.app .skip-links a,.app .skip-links button,.app .skip-links div{display:block;width:100%;text-align:center;box-sizing:border-box}.app .skip-links:focus-within{top:0}.app .notifications{display:flex;flex-direction:column;align-items:center;position:fixed;z-index:50;top:-45px;left:0;pointer-events:none}.app .notifications .app-notification>*{min-width:400px}.app .notifications .app-notification{transition-property:opacity;width:fit-content;max-width:80%;pointer-events:auto}[role=banner] nav:last-of-type{margin-left:auto}.hashicorp-consul nav .dcs{top:18px}.hashicorp-consul nav .dcs [aria-label]::before{display:none!important}[role=banner] nav:last-of-type [aria-haspopup=menu]~*{position:absolute;right:0;min-width:192px}[role=contentinfo]{position:fixed;z-index:50;width:250px;padding-left:25px;top:calc(100vh - 42px);top:calc(max(100vh,460px) - 42px)}html.has-partitions.has-nspaces .app [role=contentinfo]{top:calc(100vh - 42px);top:calc(max(100vh,640px) - 42px)}[role=banner] nav:first-of-type{z-index:10}[role=banner] nav:first-of-type,[role=contentinfo]{transition-property:left}.app .notifications,main{margin-top:var(--chrome-height,64px);transition-property:margin-left}.app .notifications{transition-property:margin-left,width}@media (min-width:900px){.app>input[id]~main .notifications{width:calc(100% - var(--chrome-width))}.app>input[id]:checked~main .notifications{width:100%}.app>input[id]+header>div>nav:first-of-type,.app>input[id]~footer{left:0}.app>input[id]:checked+header>div>nav:first-of-type,.app>input[id]:checked~footer{left:calc(var(--chrome-width,300px) * -1)}.app>input[id]~main,.app>input[id]~main .notifications{margin-left:var(--chrome-width,300px)}.app>input[id]:checked~main,.app>input[id]:checked~main .notifications{margin-left:0}}@media (max-width:899px){.app>input[id]~main .notifications{width:100%}.app>input[id]:checked+header>div>nav:first-of-type,.app>input[id]:checked~footer{left:0}.app>input[id]+header>div>nav:first-of-type,.app>input[id]~footer{left:calc(var(--chrome-width,300px) * -1)}.app>input[id]~main,.app>input[id]~main .notifications{margin-left:0}}[role=banner]::before{background-color:rgb(var(--tone-gray-000));content:"";position:absolute;z-index:-1;left:0;width:100vw}[role=banner]{display:flex;position:fixed;z-index:50;left:0;padding:0 25px;width:calc(100% - 50px);align-items:center}[role=banner],[role=banner]::before{height:var(--chrome-height)}[role=banner]>a{display:block;line-height:0;font-size:0}.hashicorp-consul nav .dcs [aria-expanded]>a,[role=banner] nav:last-of-type [aria-expanded]>a,[role=banner] nav:last-of-type>ul>li>.popover-menu>label>button>a,[role=banner] nav:last-of-type>ul>li>a>a,[role=banner] nav:last-of-type>ul>li>button>a,[role=banner] nav:last-of-type>ul>li>span>a{color:inherit}.hashicorp-consul nav .dcs [aria-expanded]::after,[role=banner] nav:last-of-type [aria-expanded]::after{--icon-name:icon-chevron-down;content:""}.hashicorp-consul nav .dcs [aria-expanded=true][aria-expanded]::after,[role=banner] nav:last-of-type [aria-expanded=true][aria-expanded]::after{transform:scaleY(-100%)}.app>input[id]{display:none}.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.menu-panel>ul>[role=treeitem],.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],[role=banner] nav:last-of-type>ul,[role=banner]>div,[role=banner]>label,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{display:flex}[role=banner]>label::before{--icon-name:icon-menu;--icon-color:rgb(var(--tone-gray-800));content:"";cursor:pointer}.hashicorp-consul nav .dcs [aria-expanded],[role=banner] nav:last-of-type .popover-menu [type=checkbox]:checked+label>*,[role=banner] nav:last-of-type [aria-expanded],[role=banner] nav:last-of-type>ul>li>.popover-menu>label>button,[role=banner] nav:last-of-type>ul>li>a,[role=banner] nav:last-of-type>ul>li>button,[role=banner] nav:last-of-type>ul>li>span{color:rgb(var(--tone-gray-600))}[role=banner]>label{align-items:center;height:100%;padding:0 1rem 0 5px}[role=banner]>div{justify-content:space-between;flex-grow:1}[role=banner] nav:last-of-type label+div{z-index:400;left:0;right:auto;top:28px!important}.hashicorp-consul nav .dcs [aria-expanded],[role=banner] nav:last-of-type [aria-expanded],[role=banner] nav:last-of-type>ul>li>.popover-menu>label>button,[role=banner] nav:last-of-type>ul>li>a,[role=banner] nav:last-of-type>ul>li>button,[role=banner] nav:last-of-type>ul>li>span{border-radius:var(--decor-radius-200);cursor:pointer;display:block;padding:5px 12px;white-space:nowrap}[role=banner] nav:last-of-type .popover-menu>label{padding-right:5px}[role=banner] nav:last-of-type .popover-menu>label>*{padding-right:4px!important}[role=banner] nav:last-of-type .popover-menu>label>button::after{top:2px}[role=banner] nav:last-of-type>ul>li>span{cursor:default}[role=banner] nav:first-of-type>ul>li>a>a,[role=banner] nav:first-of-type>ul>li>label>a{color:inherit;font-size:inherit}[role=banner] nav:first-of-type>ul>li>a:focus,[role=banner] nav:first-of-type>ul>li>a:hover,[role=banner] nav:first-of-type>ul>li>label:focus,[role=banner] nav:first-of-type>ul>li>label:hover{text-decoration:underline}.tab-nav li>*,[role=banner] nav:first-of-type>ul>li.is-active>a:focus:not(:active),[role=banner] nav:first-of-type>ul>li.is-active>a:hover:not(:active){text-decoration:none}[role=banner] nav:first-of-type{background-color:rgb(var(--tone-gray-050));color:rgb(var(--tone-gray-700))}[role=banner] nav:first-of-type li:not([role=separator])>span{color:rgb(var(--tone-gray-300))}[role=banner] nav:first-of-type [role=separator]{text-transform:uppercase;font-weight:var(--typo-weight-medium);color:rgb(var(--tone-gray-600))}[role=banner] nav:first-of-type>ul>li>a,[role=banner] nav:first-of-type>ul>li>label{cursor:pointer;border-right:var(--decor-border-400);border-color:var(--transparent);color:rgb(var(--tone-gray-800))}[role=banner] nav:first-of-type>ul>li.is-active>a,[role=banner] nav:first-of-type>ul>li>a:focus,[role=banner] nav:first-of-type>ul>li>a:hover,[role=banner] nav:first-of-type>ul>li>label:focus,[role=banner] nav:first-of-type>ul>li>label:hover,[role=banner] nav:first-of-type>ul>li[aria-label]{color:rgb(var(--tone-gray-999))}[role=banner] nav:first-of-type>ul>li.is-active>a{background-color:rgb(var(--tone-gray-150));border-color:rgb(var(--tone-gray-999))}[role=banner] nav:first-of-type [aria-label]::before{color:rgb(var(--tone-gray-700));content:attr(aria-label);display:block;margin-top:-.5rem;margin-bottom:.5rem}.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button{border:var(--decor-border-100);border-color:rgb(var(--tone-gray-500));border-radius:var(--decor-radius-100);font-weight:inherit;background-color:rgb(var(--tone-gray-050));color:rgb(var(--tone-gray-999))}.hashicorp-consul nav li.nspaces .disclosure-menu>button[aria-expanded=true],.hashicorp-consul nav li.partitions .disclosure-menu>button[aria-expanded=true]{border-bottom-left-radius:var(--decor-radius-000);border-bottom-right-radius:var(--decor-radius-000)}.hashicorp-consul nav li.nspaces .disclosure-menu>button::after,.hashicorp-consul nav li.partitions .disclosure-menu>button::after{width:16px;height:16px;position:relative;float:right}[role=banner] nav:first-of-type{position:absolute;left:0;top:var(--chrome-height,47px);width:var(--chrome-width,300px);height:calc(100vh - var(--chrome-height,47px) - 35px);padding-top:35px;overflow:auto}[role=banner] nav:first-of-type li.nspaces,[role=banner] nav:first-of-type li.partition,[role=banner] nav:first-of-type li.partitions{margin-bottom:25px;padding:0 26px}[role=banner] nav:first-of-type li.dcs{padding:0 18px}[role=banner] nav:first-of-type [role=menuitem]{justify-content:flex-start!important}[role=banner] nav:first-of-type [role=menuitem] span{margin-left:.5rem}[role=banner] nav:first-of-type [role=separator],[role=banner] nav:first-of-type li:not([role=separator])>span,[role=banner] nav:first-of-type>ul>li>a,[role=banner] nav:first-of-type>ul>li>label{display:block;padding:7px 25px}[role=banner] nav:first-of-type [role=separator]{margin-top:.7rem;padding-bottom:0}.hashicorp-consul nav li.nspaces .disclosure,.hashicorp-consul nav li.partitions .disclosure{position:relative}.hashicorp-consul nav li.nspaces .disclosure-menu>button,.hashicorp-consul nav li.partitions .disclosure-menu>button{width:100%;text-align:left;padding:10px}.hashicorp-consul nav li.nspaces .disclosure-menu button+*,.hashicorp-consul nav li.partitions .disclosure-menu button+*{border-top-left-radius:var(--decor-radius-000);border-top-right-radius:var(--decor-radius-000);border-top:var(--decor-border-000);position:absolute;z-index:1;width:calc(100% - 2px)}.hashicorp-consul nav .dcs{visibility:visible;position:fixed;z-index:10;left:100px}.hashicorp-consul nav li.dcs [aria-expanded]~*{min-width:250px;max-height:560px;--paged-row-height:43px}.hashicorp-consul nav li.nspaces [aria-expanded]~*,.hashicorp-consul nav li.partitions [aria-expanded]~*{max-height:360px;--paged-row-height:43px}.hashicorp-consul [role=banner] a svg{fill:rgb(var(--tone-brand-600))}.hashicorp-consul .acls-separator span{color:rgb(var(--tone-red-500));display:inline-block;position:relative;top:2px;margin-left:2px}.disclosure-menu [aria-expanded]~*>div+ul,.menu-panel>div+ul,.more-popover-menu>[type=checkbox]+label+div>div+ul,.popover-menu>[type=checkbox]+label+div>div+ul,table.has-actions tr>.actions>[type=checkbox]+label+div>div+ul,table.with-details tr>.actions>[type=checkbox]+label+div>div+ul{border-top:var(--decor-border-100);border-color:rgb(var(--tone-border,var(--tone-gray-300)))}.disclosure-menu [aria-expanded]~* [role=separator]:first-child:not(:empty),.menu-panel [role=separator]:first-child:not(:empty),.more-popover-menu>[type=checkbox]+label+div [role=separator]:first-child:not(:empty),.popover-menu>[type=checkbox]+label+div [role=separator]:first-child:not(:empty),table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator]:first-child:not(:empty),table.with-details tr>.actions>[type=checkbox]+label+div [role=separator]:first-child:not(:empty){border:none}.disclosure-menu [aria-expanded]~* [role=separator],.menu-panel [role=separator],.more-popover-menu>[type=checkbox]+label+div [role=separator],.popover-menu>[type=checkbox]+label+div [role=separator],table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator],table.with-details tr>.actions>[type=checkbox]+label+div [role=separator]{text-transform:uppercase;font-weight:var(--typo-weight-medium);color:rgb(var(--tone-gray-600))}.disclosure-menu [aria-expanded]~*>ul>li,.menu-panel>ul>li,.more-popover-menu>[type=checkbox]+label+div>ul>li,.popover-menu>[type=checkbox]+label+div>ul>li,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li{list-style-type:none}.disclosure-menu [aria-expanded]~*>ul .informed-action,.menu-panel>ul .informed-action,.more-popover-menu>[type=checkbox]+label+div>ul .informed-action,.popover-menu>[type=checkbox]+label+div>ul .informed-action,table.has-actions tr>.actions>[type=checkbox]+label+div>ul .informed-action,table.with-details tr>.actions>[type=checkbox]+label+div>ul .informed-action{border:0!important}.disclosure-menu [aria-expanded]~*>div,.menu-panel>div,.more-popover-menu>[type=checkbox]+label+div>div,.popover-menu>[type=checkbox]+label+div>div,table.has-actions tr>.actions>[type=checkbox]+label+div>div,table.with-details tr>.actions>[type=checkbox]+label+div>div{padding:.625rem var(--padding-x);white-space:normal;max-width:fit-content}@supports not (max-width:fit-content){.disclosure-menu [aria-expanded]~*>div,.menu-panel>div,.more-popover-menu>[type=checkbox]+label+div>div,.popover-menu>[type=checkbox]+label+div>div,table.has-actions tr>.actions>[type=checkbox]+label+div>div,table.with-details tr>.actions>[type=checkbox]+label+div>div{max-width:200px}}.disclosure-menu [aria-expanded]~*>div::before,.menu-panel>div::before,.more-popover-menu>[type=checkbox]+label+div>div::before,.popover-menu>[type=checkbox]+label+div>div::before,table.has-actions tr>.actions>[type=checkbox]+label+div>div::before,table.with-details tr>.actions>[type=checkbox]+label+div>div::before{position:absolute;left:15px;top:calc(10px + .1em)}.disclosure-menu [aria-expanded]~*>ul>[role=treeitem]+*,.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem]+*,.disclosure-menu [aria-expanded]~*>ul>li>[role=option]+*,.menu-panel-deprecated>ul>li>div[role=menu],.menu-panel>ul>[role=treeitem]+*,.menu-panel>ul>li>[role=menuitem]+*,.menu-panel>ul>li>[role=option]+*,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]+*,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]+*,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option]+*,.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]+*,.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]+*,.popover-menu>[type=checkbox]+label+div>ul>li>[role=option]+*,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]+*,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]+*,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]+*,table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]+*,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]+*,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]+*{position:absolute;top:0;left:calc(100% + 10px)}.disclosure-menu [aria-expanded]~*>ul,.menu-panel>ul,.more-popover-menu>[type=checkbox]+label+div>ul,.popover-menu>[type=checkbox]+label+div>ul,table.has-actions tr>.actions>[type=checkbox]+label+div>ul,table.with-details tr>.actions>[type=checkbox]+label+div>ul{margin:0;padding:calc(var(--padding-y) - .625rem) 0;transition:transform 150ms}.disclosure-menu [aria-expanded]~*>ul,.disclosure-menu [aria-expanded]~*>ul>li,.disclosure-menu [aria-expanded]~*>ul>li>*,.menu-panel>ul,.menu-panel>ul>li,.menu-panel>ul>li>*,.more-popover-menu>[type=checkbox]+label+div>ul,.more-popover-menu>[type=checkbox]+label+div>ul>li,.more-popover-menu>[type=checkbox]+label+div>ul>li>*,.popover-menu>[type=checkbox]+label+div>ul,.popover-menu>[type=checkbox]+label+div>ul>li,.popover-menu>[type=checkbox]+label+div>ul>li>*,table.has-actions tr>.actions>[type=checkbox]+label+div>ul,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>*,table.with-details tr>.actions>[type=checkbox]+label+div>ul,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>*{width:100%}.disclosure-menu [aria-expanded]~*>ul>[role=treeitem],.disclosure-menu [aria-expanded]~*>ul>li,.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem],.disclosure-menu [aria-expanded]~*>ul>li>[role=option],.menu-panel>ul>[role=treeitem],.menu-panel>ul>li,.menu-panel>ul>li>[role=menuitem],.menu-panel>ul>li>[role=option],.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.more-popover-menu>[type=checkbox]+label+div>ul>li,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option],.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem],.popover-menu>[type=checkbox]+label+div>ul>li,.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem],.popover-menu>[type=checkbox]+label+div>ul>li>[role=option],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option],table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem],table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]{text-align:left}.hashicorp-consul nav .dcs li.is-local span,.hashicorp-consul nav .dcs li.is-primary span{color:rgb(var(--tone-gray-000));background-color:rgb(var(--tone-gray-500));padding:0 8px;margin-left:.5rem}.disclosure-menu [aria-expanded]~*>ul>[role=treeitem]::after,.disclosure-menu [aria-expanded]~*>ul>li>[role=menuitem]::after,.disclosure-menu [aria-expanded]~*>ul>li>[role=option]::after,.menu-panel>ul>[role=treeitem]::after,.menu-panel>ul>li>[role=menuitem]::after,.menu-panel>ul>li>[role=option]::after,.more-popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]::after,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]::after,.more-popover-menu>[type=checkbox]+label+div>ul>li>[role=option]::after,.popover-menu>[type=checkbox]+label+div>ul>[role=treeitem]::after,.popover-menu>[type=checkbox]+label+div>ul>li>[role=menuitem]::after,.popover-menu>[type=checkbox]+label+div>ul>li>[role=option]::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]::after,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>[role=treeitem]::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=menuitem]::after,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li>[role=option]::after{margin-left:auto;padding-right:var(--padding-x);transform:translate(calc(var(--padding-x)/ 2),0)}.disclosure-menu [aria-expanded]~* [role=separator],.menu-panel [role=separator],.more-popover-menu>[type=checkbox]+label+div [role=separator],.popover-menu>[type=checkbox]+label+div [role=separator],table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator],table.with-details tr>.actions>[type=checkbox]+label+div [role=separator]{padding-top:.375rem}.disclosure-menu [aria-expanded]~* [role=separator]:not(:first-child),.menu-panel [role=separator]:not(:first-child),.more-popover-menu>[type=checkbox]+label+div [role=separator]:not(:first-child),.popover-menu>[type=checkbox]+label+div [role=separator]:not(:first-child),table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator]:not(:first-child),table.with-details tr>.actions>[type=checkbox]+label+div [role=separator]:not(:first-child){margin-top:.275rem}.disclosure-menu [aria-expanded]~* [role=separator]:not(:empty),.menu-panel [role=separator]:not(:empty),.more-popover-menu>[type=checkbox]+label+div [role=separator]:not(:empty),.popover-menu>[type=checkbox]+label+div [role=separator]:not(:empty),table.has-actions tr>.actions>[type=checkbox]+label+div [role=separator]:not(:empty),table.with-details tr>.actions>[type=checkbox]+label+div [role=separator]:not(:empty){padding-left:var(--padding-x);padding-right:var(--padding-x);padding-bottom:.125rem}.disclosure-menu [aria-expanded]~.menu-panel-confirming,.menu-panel-confirming.menu-panel,.more-popover-menu>[type=checkbox]+label+div.menu-panel-confirming,.popover-menu>[type=checkbox]+label+div.menu-panel-confirming,table.has-actions tr>.actions>[type=checkbox]+label+div.menu-panel-confirming,table.with-details tr>.actions>[type=checkbox]+label+div.menu-panel-confirming{overflow:hidden}.disclosure-menu [aria-expanded]~.menu-panel-confirming>ul,.menu-panel-confirming.menu-panel>ul,.more-popover-menu>[type=checkbox]+label+div.menu-panel-confirming>ul,.popover-menu>[type=checkbox]+label+div.menu-panel-confirming>ul,table.has-actions tr>.actions>[type=checkbox]+label+div.menu-panel-confirming>ul,table.with-details tr>.actions>[type=checkbox]+label+div.menu-panel-confirming>ul{transform:translateX(calc(-100% - 10px))}.disclosure-menu [aria-expanded]~*,.menu-panel,.more-popover-menu>[type=checkbox]+label+div,.popover-menu>[type=checkbox]+label+div,table.has-actions tr>.actions>[type=checkbox]+label+div,table.with-details tr>.actions>[type=checkbox]+label+div{overflow:hidden}.menu-panel-deprecated{position:absolute;transition:min-height 150ms,max-height 150ms;min-height:0}.menu-panel-deprecated [type=checkbox]{display:none}.menu-panel-deprecated:not(.confirmation) [type=checkbox]~*{transition:transform 150ms}.confirmation.menu-panel-deprecated [role=menu]{min-height:205px!important}.menu-panel-deprecated [type=checkbox]:checked~*{transform:translateX(calc(-100% - 10px));min-height:143px;max-height:143px}.menu-panel-deprecated [id$="-"]:first-child:checked~ul label[for$="-"] * [role=menu],.menu-panel-deprecated [id$="-"]:first-child:checked~ul>li>[role=menu]{display:block}.menu-panel-deprecated>ul>li>:not(div[role=menu]),.tippy-box{position:relative}.menu-panel-deprecated:not(.left){right:0!important;left:auto!important}.left.menu-panel-deprecated{left:0}.menu-panel-deprecated:not(.above){top:28px}.above.menu-panel-deprecated{bottom:42px}.consul-upstream-instance-list dl.local-bind-socket-mode dt::after{display:inline;content:var(--horizontal-kv-list-key-separator)}.consul-bucket-list,.consul-exposed-path-list>ul>li>.detail dl,.consul-instance-checks,.consul-lock-session-list dl,.consul-lock-session-list ul>li:not(:first-child)>.detail dl,.consul-upstream-instance-list dl,.consul-upstream-instance-list li>.detail dl,.list-collection>ul>li:not(:first-child)>.detail dl,.tag-list,section[data-route="dc.show.license"] .validity dl,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl,td.tags{display:inline-flex;flex-wrap:nowrap;align-items:center}.consul-bucket-list:empty,.consul-exposed-path-list>ul>li>.detail dl:empty,.consul-instance-checks:empty,.consul-lock-session-list dl:empty,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:empty,.consul-upstream-instance-list dl:empty,.list-collection>ul>li:not(:first-child)>.detail dl:empty,.tag-list:empty,section[data-route="dc.show.license"] .validity dl:empty,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:empty,td.tags:empty{display:none}.consul-bucket-list>*>*,.consul-exposed-path-list>ul>li>.detail dl>*>*,.consul-instance-checks>*>*,.consul-lock-session-list dl>*>*,.consul-lock-session-list ul>li:not(:first-child)>.detail dl>*>*,.consul-upstream-instance-list dl>*>*,.consul-upstream-instance-list li>.detail dl>*>*,.list-collection>ul>li:not(:first-child)>.detail dl>*>*,.tag-list>*>*,section[data-route="dc.show.license"] .validity dl>*>*,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl>*>*,td.tags>*>*{display:inline-block}.consul-bucket-list>*,.consul-exposed-path-list>ul>li>.detail dl>*,.consul-instance-checks>*,.consul-lock-session-list dl>*,.consul-lock-session-list ul>li:not(:first-child)>.detail dl>*,.consul-upstream-instance-list dl>*,.consul-upstream-instance-list li>.detail dl>*,.list-collection>ul>li:not(:first-child)>.detail dl>*,.tag-list>*,section[data-route="dc.show.license"] .validity dl>*,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl>*,td.tags>*{white-space:nowrap}.consul-bucket-list>dd,.consul-exposed-path-list>ul>li>.detail dl>dd,.consul-instance-checks>dd,.consul-lock-session-list dl>dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl>dd,.consul-upstream-instance-list dl>dd,.consul-upstream-instance-list li>.detail dl>dd,.list-collection>ul>li:not(:first-child)>.detail dl>dd,.tag-list>dd,section[data-route="dc.show.license"] .validity dl>dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl>dd,td.tags>dd{flex-wrap:wrap}.consul-upstream-instance-list dl.local-bind-socket-mode dt{display:inline-flex;min-width:18px;overflow:hidden}.consul-bucket-list .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-bucket-list .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-bucket-list .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,.consul-bucket-list .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,.consul-bucket-list .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-bucket-list .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-bucket-list .tag-list:not([class]) dd+dt:not([class])+dd,.consul-bucket-list dd+dt,.consul-bucket-list td.tags:not([class]) dd+dt:not([class])+dd,.consul-bucket-list+.consul-bucket-list:not(:first-of-type),.consul-bucket-list+.consul-instance-checks:not(:first-of-type),.consul-bucket-list+.tag-list:not(:first-of-type),.consul-bucket-list+td.tags:not(:first-of-type),.consul-bucket-list:not([class]) .consul-exposed-path-list>ul>li>.detail dl dd+dt:not([class])+dd,.consul-bucket-list:not([class]) .consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-bucket-list:not([class]) .consul-upstream-instance-list li>.detail dl dd+dt:not([class])+dd,.consul-bucket-list:not([class]) .list-collection>ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-bucket-list:not([class]) .tag-list dd+dt:not([class])+dd,.consul-bucket-list:not([class]) dd+dt:not([class])+dd,.consul-bucket-list:not([class]) td.tags dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail .consul-bucket-list+dl:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail .consul-instance-checks+dl:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail .consul-lock-session-list dl+dl:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail .consul-upstream-instance-list dl+dl:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,.consul-exposed-path-list>ul>li>.detail .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,.consul-exposed-path-list>ul>li>.detail .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail .tag-list+dl:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail dl .consul-bucket-list:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl .consul-instance-checks:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl .consul-lock-session-list dl:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl .consul-upstream-instance-list dl:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl .tag-list:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl dd+dt,.consul-exposed-path-list>ul>li>.detail dl section[data-route="dc.show.license"] .validity dl:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl td.tags:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl+.consul-bucket-list:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail dl+.consul-instance-checks:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail dl+.tag-list:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail dl+dl:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail dl+td.tags:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail dl:not([class]) .consul-bucket-list dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) .consul-instance-checks dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) .consul-lock-session-list dl dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) .consul-upstream-instance-list dl dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) .tag-list dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) section[data-route="dc.show.license"] .validity dl dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) td.tags dd+dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail section[data-route="dc.show.license"] .validity dl+dl:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+dl:not(:first-of-type),.consul-exposed-path-list>ul>li>.detail td.tags+dl:not(:first-of-type),.consul-instance-checks .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-instance-checks .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-instance-checks .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,.consul-instance-checks .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,.consul-instance-checks .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-instance-checks .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-instance-checks .tag-list:not([class]) dd+dt:not([class])+dd,.consul-instance-checks dd+dt,.consul-instance-checks td.tags:not([class]) dd+dt:not([class])+dd,.consul-instance-checks+.consul-bucket-list:not(:first-of-type),.consul-instance-checks+.consul-instance-checks:not(:first-of-type),.consul-instance-checks+.tag-list:not(:first-of-type),.consul-instance-checks+td.tags:not(:first-of-type),.consul-instance-checks:not([class]) .consul-exposed-path-list>ul>li>.detail dl dd+dt:not([class])+dd,.consul-instance-checks:not([class]) .consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-instance-checks:not([class]) .consul-upstream-instance-list li>.detail dl dd+dt:not([class])+dd,.consul-instance-checks:not([class]) .list-collection>ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-instance-checks:not([class]) .tag-list dd+dt:not([class])+dd,.consul-instance-checks:not([class]) dd+dt:not([class])+dd,.consul-instance-checks:not([class]) td.tags dd+dt:not([class])+dd,.consul-lock-session-list .consul-bucket-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .consul-bucket-list+dl:not(:first-of-type),.consul-lock-session-list .consul-bucket-list:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list .consul-exposed-path-list>ul>li>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .consul-exposed-path-list>ul>li>.detail dl+dl:not(:first-of-type),.consul-lock-session-list .consul-exposed-path-list>ul>li>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-lock-session-list .consul-instance-checks ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .consul-instance-checks+dl:not(:first-of-type),.consul-lock-session-list .consul-instance-checks:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list .consul-upstream-instance-list dl li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .consul-upstream-instance-list dl ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .consul-upstream-instance-list dl+dl:not(:first-of-type),.consul-lock-session-list .consul-upstream-instance-list dl.local-bind-address dl dd+dt+dd,.consul-lock-session-list .consul-upstream-instance-list dl.local-bind-socket-path dl dd+dt+dd,.consul-lock-session-list .consul-upstream-instance-list dl:not([class]) li>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list .consul-upstream-instance-list dl:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list .consul-upstream-instance-list li>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .consul-upstream-instance-list li>.detail dl+dl:not(:first-of-type),.consul-lock-session-list .consul-upstream-instance-list li>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-lock-session-list .consul-upstream-instance-list ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .consul-upstream-instance-list ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),.consul-lock-session-list .consul-upstream-instance-list ul>li:not(:first-child)>.detail dl.local-bind-address dd+dt+dd,.consul-lock-session-list .consul-upstream-instance-list ul>li:not(:first-child)>.detail dl.local-bind-socket-path dd+dt+dd,.consul-lock-session-list .consul-upstream-instance-list ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-lock-session-list .list-collection>ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .list-collection>ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),.consul-lock-session-list .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-lock-session-list .list-collection>ul>li:not(:first-child)>.detail ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .tag-list dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .tag-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list .tag-list+dl:not(:first-of-type),.consul-lock-session-list .tag-list:not([class]) dl dd+dt:not([class])+dd,.consul-lock-session-list .tag-list:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list dl .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list dl .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list dl .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,.consul-lock-session-list dl .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,.consul-lock-session-list dl .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list dl .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list dl .tag-list:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list dl dd+dt,.consul-lock-session-list dl td.tags:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list dl ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list dl+.consul-bucket-list:not(:first-of-type),.consul-lock-session-list dl+.consul-instance-checks:not(:first-of-type),.consul-lock-session-list dl+.tag-list:not(:first-of-type),.consul-lock-session-list dl+dl:not(:first-of-type),.consul-lock-session-list dl+td.tags:not(:first-of-type),.consul-lock-session-list dl:not([class]) .consul-exposed-path-list>ul>li>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list dl:not([class]) .consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list dl:not([class]) .consul-upstream-instance-list li>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list dl:not([class]) .list-collection>ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list dl:not([class]) .tag-list dd+dt:not([class])+dd,.consul-lock-session-list dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list dl:not([class]) td.tags dd+dt:not([class])+dd,.consul-lock-session-list dl:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list section[data-route="dc.show.license"] .validity dl ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list section[data-route="dc.show.license"] .validity dl+dl:not(:first-of-type),.consul-lock-session-list section[data-route="dc.show.license"] .validity dl:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+dl:not(:first-of-type),.consul-lock-session-list section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list td.tags dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list td.tags ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list td.tags+dl:not(:first-of-type),.consul-lock-session-list td.tags:not([class]) dl dd+dt:not([class])+dd,.consul-lock-session-list td.tags:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail .consul-bucket-list+dl:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail .consul-instance-checks+dl:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail .consul-upstream-instance-list dl+dl:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail .tag-list+dl:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail dl .consul-bucket-list:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl .consul-instance-checks:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl .consul-upstream-instance-list dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl .tag-list:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt,.consul-lock-session-list ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl section[data-route="dc.show.license"] .validity dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl td.tags:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl+.consul-bucket-list:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail dl+.consul-instance-checks:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail dl+.tag-list:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail dl+td.tags:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) .consul-bucket-list dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) .consul-instance-checks dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) .consul-upstream-instance-list dl dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) .tag-list dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) section[data-route="dc.show.license"] .validity dl dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) td.tags dd+dt:not([class])+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail section[data-route="dc.show.license"] .validity dl+dl:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+dl:not(:first-of-type),.consul-lock-session-list ul>li:not(:first-child)>.detail td.tags+dl:not(:first-of-type),.consul-upstream-instance-list .consul-bucket-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-bucket-list+dl:not(:first-of-type),.consul-upstream-instance-list .consul-bucket-list:not([class]) li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-exposed-path-list>ul>li>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-exposed-path-list>ul>li>.detail dl+dl:not(:first-of-type),.consul-upstream-instance-list .consul-exposed-path-list>ul>li>.detail dl.local-bind-address dd+dt+dd,.consul-upstream-instance-list .consul-exposed-path-list>ul>li>.detail dl.local-bind-socket-path dd+dt+dd,.consul-upstream-instance-list .consul-exposed-path-list>ul>li>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-instance-checks li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-instance-checks+dl:not(:first-of-type),.consul-upstream-instance-list .consul-instance-checks:not([class]) li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-lock-session-list dl li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-lock-session-list dl+dl:not(:first-of-type),.consul-upstream-instance-list .consul-lock-session-list dl:not([class]) li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-lock-session-list ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .consul-lock-session-list ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),.consul-upstream-instance-list .consul-lock-session-list ul>li:not(:first-child)>.detail dl.local-bind-address dd+dt+dd,.consul-upstream-instance-list .consul-lock-session-list ul>li:not(:first-child)>.detail dl.local-bind-socket-path dd+dt+dd,.consul-upstream-instance-list .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-upstream-instance-list .list-collection>ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .list-collection>ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),.consul-upstream-instance-list .list-collection>ul>li:not(:first-child)>.detail dl.local-bind-address dd+dt+dd,.consul-upstream-instance-list .list-collection>ul>li:not(:first-child)>.detail dl.local-bind-socket-path dd+dt+dd,.consul-upstream-instance-list .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-upstream-instance-list .list-collection>ul>li:not(:first-child)>.detail li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .tag-list dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .tag-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list .tag-list+dl:not(:first-of-type),.consul-upstream-instance-list .tag-list:not([class]) dl dd+dt:not([class])+dd,.consul-upstream-instance-list .tag-list:not([class]) li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list dl .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list dl .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list dl .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list dl .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list dl .tag-list:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list dl dd+dt,.consul-upstream-instance-list dl li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list dl td.tags:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list dl+.consul-bucket-list:not(:first-of-type),.consul-upstream-instance-list dl+.consul-instance-checks:not(:first-of-type),.consul-upstream-instance-list dl+.tag-list:not(:first-of-type),.consul-upstream-instance-list dl+dl:not(:first-of-type),.consul-upstream-instance-list dl+td.tags:not(:first-of-type),.consul-upstream-instance-list dl.local-bind-address .consul-bucket-list dd+dt+dd,.consul-upstream-instance-list dl.local-bind-address .consul-instance-checks dd+dt+dd,.consul-upstream-instance-list dl.local-bind-address .consul-lock-session-list dl dd+dt+dd,.consul-upstream-instance-list dl.local-bind-address .tag-list dd+dt+dd,.consul-upstream-instance-list dl.local-bind-address dd+dt+dd,.consul-upstream-instance-list dl.local-bind-address section[data-route="dc.show.license"] .validity dl dd+dt+dd,.consul-upstream-instance-list dl.local-bind-address section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt+dd,.consul-upstream-instance-list dl.local-bind-address td.tags dd+dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path .consul-bucket-list dd+dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path .consul-instance-checks dd+dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path .consul-lock-session-list dl dd+dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path .tag-list dd+dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path section[data-route="dc.show.license"] .validity dl dd+dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path td.tags dd+dt+dd,.consul-upstream-instance-list dl:not([class]) .consul-exposed-path-list>ul>li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list dl:not([class]) .consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list dl:not([class]) .consul-upstream-instance-list li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list dl:not([class]) .list-collection>ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list dl:not([class]) .tag-list dd+dt:not([class])+dd,.consul-upstream-instance-list dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list dl:not([class]) li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list dl:not([class]) td.tags dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail .consul-bucket-list+dl:not(:first-of-type),.consul-upstream-instance-list li>.detail .consul-instance-checks+dl:not(:first-of-type),.consul-upstream-instance-list li>.detail .consul-lock-session-list dl+dl:not(:first-of-type),.consul-upstream-instance-list li>.detail .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail .tag-list+dl:not(:first-of-type),.consul-upstream-instance-list li>.detail dl .consul-bucket-list:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl .consul-instance-checks:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl .consul-lock-session-list dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl .tag-list:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl dd+dt,.consul-upstream-instance-list li>.detail dl dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl section[data-route="dc.show.license"] .validity dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl td.tags:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl+.consul-bucket-list:not(:first-of-type),.consul-upstream-instance-list li>.detail dl+.consul-instance-checks:not(:first-of-type),.consul-upstream-instance-list li>.detail dl+.tag-list:not(:first-of-type),.consul-upstream-instance-list li>.detail dl+dl:not(:first-of-type),.consul-upstream-instance-list li>.detail dl+td.tags:not(:first-of-type),.consul-upstream-instance-list li>.detail dl.local-bind-address dd+dt+dd,.consul-upstream-instance-list li>.detail dl.local-bind-socket-path dd+dt+dd,.consul-upstream-instance-list li>.detail dl:not([class]) .consul-bucket-list dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl:not([class]) .consul-instance-checks dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl:not([class]) .consul-lock-session-list dl dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl:not([class]) .tag-list dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl:not([class]) dl dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl:not([class]) section[data-route="dc.show.license"] .validity dl dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl:not([class]) section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail dl:not([class]) td.tags dd+dt:not([class])+dd,.consul-upstream-instance-list li>.detail section[data-route="dc.show.license"] .validity dl+dl:not(:first-of-type),.consul-upstream-instance-list li>.detail section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+dl:not(:first-of-type),.consul-upstream-instance-list li>.detail td.tags+dl:not(:first-of-type),.consul-upstream-instance-list section[data-route="dc.show.license"] .validity dl li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list section[data-route="dc.show.license"] .validity dl+dl:not(:first-of-type),.consul-upstream-instance-list section[data-route="dc.show.license"] .validity dl:not([class]) li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+dl:not(:first-of-type),.consul-upstream-instance-list section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) li>.detail dl dd+dt:not([class])+dd,.consul-upstream-instance-list td.tags dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list td.tags li>.detail dl:not([class]) dd+dt:not([class])+dd,.consul-upstream-instance-list td.tags+dl:not(:first-of-type),.consul-upstream-instance-list td.tags:not([class]) dl dd+dt:not([class])+dd,.consul-upstream-instance-list td.tags:not([class]) li>.detail dl dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail .consul-bucket-list+dl:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail .consul-instance-checks+dl:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail .consul-lock-session-list dl+dl:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail .consul-upstream-instance-list dl+dl:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,.list-collection>ul>li:not(:first-child)>.detail .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,.list-collection>ul>li:not(:first-child)>.detail .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail .tag-list+dl:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail dl .consul-bucket-list:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl .consul-instance-checks:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl .consul-lock-session-list dl:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl .consul-upstream-instance-list dl:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl .tag-list:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl dd+dt,.list-collection>ul>li:not(:first-child)>.detail dl section[data-route="dc.show.license"] .validity dl:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl td.tags:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl+.consul-bucket-list:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail dl+.consul-instance-checks:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail dl+.tag-list:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail dl+td.tags:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) .consul-bucket-list dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) .consul-instance-checks dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) .consul-lock-session-list dl dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) .consul-upstream-instance-list dl dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) .tag-list dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) section[data-route="dc.show.license"] .validity dl dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) td.tags dd+dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail section[data-route="dc.show.license"] .validity dl+dl:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+dl:not(:first-of-type),.list-collection>ul>li:not(:first-child)>.detail td.tags+dl:not(:first-of-type),.tag-list .consul-bucket-list:not([class]) dd+dt:not([class])+dd,.tag-list .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,.tag-list .consul-instance-checks:not([class]) dd+dt:not([class])+dd,.tag-list .consul-lock-session-list dl:not([class]) dd+dt:not([class])+dd,.tag-list .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.tag-list .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,.tag-list .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,.tag-list .consul-upstream-instance-list dl:not([class]) dd+dt:not([class])+dd,.tag-list .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,.tag-list .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,.tag-list dd+dt,.tag-list section[data-route="dc.show.license"] .validity dl:not([class]) dd+dt:not([class])+dd,.tag-list section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dd+dt:not([class])+dd,.tag-list td.tags:not([class]) dd+dt:not([class])+dd,.tag-list+.consul-bucket-list:not(:first-of-type),.tag-list+.consul-instance-checks:not(:first-of-type),.tag-list+.tag-list:not(:first-of-type),.tag-list+td.tags:not(:first-of-type),.tag-list:not([class]) .consul-bucket-list dd+dt:not([class])+dd,.tag-list:not([class]) .consul-exposed-path-list>ul>li>.detail dl dd+dt:not([class])+dd,.tag-list:not([class]) .consul-instance-checks dd+dt:not([class])+dd,.tag-list:not([class]) .consul-lock-session-list dl dd+dt:not([class])+dd,.tag-list:not([class]) .consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.tag-list:not([class]) .consul-upstream-instance-list dl dd+dt:not([class])+dd,.tag-list:not([class]) .consul-upstream-instance-list li>.detail dl dd+dt:not([class])+dd,.tag-list:not([class]) .list-collection>ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,.tag-list:not([class]) dd+dt:not([class])+dd,.tag-list:not([class]) section[data-route="dc.show.license"] .validity dl dd+dt:not([class])+dd,.tag-list:not([class]) section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt:not([class])+dd,.tag-list:not([class]) td.tags dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-bucket-list+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .consul-exposed-path-list>ul>li>.detail dl dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-exposed-path-list>ul>li>.detail dl+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .consul-exposed-path-list>ul>li>.detail dl:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-instance-checks+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .consul-lock-session-list dl ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-lock-session-list dl+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .consul-lock-session-list dl:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-lock-session-list ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-lock-session-list ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-upstream-instance-list dl li>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-upstream-instance-list dl+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .consul-upstream-instance-list dl.local-bind-address dl dd+dt+dd,section[data-route="dc.show.license"] .validity .consul-upstream-instance-list dl.local-bind-socket-path dl dd+dt+dd,section[data-route="dc.show.license"] .validity .consul-upstream-instance-list dl:not([class]) li>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-upstream-instance-list li>.detail dl dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .consul-upstream-instance-list li>.detail dl+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .consul-upstream-instance-list li>.detail dl:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .list-collection>ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .list-collection>ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .tag-list dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity .tag-list+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity .tag-list:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,section[data-route="dc.show.license"] .validity dl .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,section[data-route="dc.show.license"] .validity dl .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl .tag-list:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl dd+dt,section[data-route="dc.show.license"] .validity dl td.tags:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl+.consul-bucket-list:not(:first-of-type),section[data-route="dc.show.license"] .validity dl+.consul-instance-checks:not(:first-of-type),section[data-route="dc.show.license"] .validity dl+.tag-list:not(:first-of-type),section[data-route="dc.show.license"] .validity dl+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity dl+td.tags:not(:first-of-type),section[data-route="dc.show.license"] .validity dl:not([class]) .consul-exposed-path-list>ul>li>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl:not([class]) .consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl:not([class]) .consul-upstream-instance-list li>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl:not([class]) .list-collection>ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl:not([class]) .tag-list dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl:not([class]) td.tags dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity td.tags dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.license"] .validity td.tags+dl:not(:first-of-type),section[data-route="dc.show.license"] .validity td.tags:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-bucket-list+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-exposed-path-list>ul>li>.detail dl dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-exposed-path-list>ul>li>.detail dl+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-exposed-path-list>ul>li>.detail dl:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-instance-checks+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-lock-session-list dl ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-lock-session-list dl+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-lock-session-list dl:not([class]) ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-lock-session-list ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-lock-session-list ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-upstream-instance-list dl li>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-upstream-instance-list dl+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-upstream-instance-list dl.local-bind-address dl dd+dt+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-upstream-instance-list dl.local-bind-socket-path dl dd+dt+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-upstream-instance-list dl:not([class]) li>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-upstream-instance-list li>.detail dl dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-upstream-instance-list li>.detail dl+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .consul-upstream-instance-list li>.detail dl:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .list-collection>ul>li:not(:first-child)>.detail dl dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .list-collection>ul>li:not(:first-child)>.detail dl+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .tag-list dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header .tag-list+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header .tag-list:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl .tag-list:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl td.tags:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+.consul-bucket-list:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+.consul-instance-checks:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+.tag-list:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl+td.tags:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) .consul-exposed-path-list>ul>li>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) .consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) .consul-upstream-instance-list li>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) .list-collection>ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) .tag-list dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) td.tags dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header td.tags dl:not([class]) dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header td.tags+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section header td.tags:not([class]) dl dd+dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section[data-route="dc.show.license"] .validity header dl+dl:not(:first-of-type),section[data-route="dc.show.serverstatus"] .redundancy-zones section[data-route="dc.show.license"] header .validity dl+dl:not(:first-of-type),td.tags .consul-bucket-list:not([class]) dd+dt:not([class])+dd,td.tags .consul-exposed-path-list>ul>li>.detail dl:not([class]) dd+dt:not([class])+dd,td.tags .consul-instance-checks:not([class]) dd+dt:not([class])+dd,td.tags .consul-lock-session-list dl:not([class]) dd+dt:not([class])+dd,td.tags .consul-lock-session-list ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,td.tags .consul-upstream-instance-list dl.local-bind-address dd+dt+dd,td.tags .consul-upstream-instance-list dl.local-bind-socket-path dd+dt+dd,td.tags .consul-upstream-instance-list dl:not([class]) dd+dt:not([class])+dd,td.tags .consul-upstream-instance-list li>.detail dl:not([class]) dd+dt:not([class])+dd,td.tags .list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dd+dt:not([class])+dd,td.tags .tag-list:not([class]) dd+dt:not([class])+dd,td.tags dd+dt,td.tags section[data-route="dc.show.license"] .validity dl:not([class]) dd+dt:not([class])+dd,td.tags section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dd+dt:not([class])+dd,td.tags+.consul-bucket-list:not(:first-of-type),td.tags+.consul-instance-checks:not(:first-of-type),td.tags+.tag-list:not(:first-of-type),td.tags+td.tags:not(:first-of-type),td.tags:not([class]) .consul-bucket-list dd+dt:not([class])+dd,td.tags:not([class]) .consul-exposed-path-list>ul>li>.detail dl dd+dt:not([class])+dd,td.tags:not([class]) .consul-instance-checks dd+dt:not([class])+dd,td.tags:not([class]) .consul-lock-session-list dl dd+dt:not([class])+dd,td.tags:not([class]) .consul-lock-session-list ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,td.tags:not([class]) .consul-upstream-instance-list dl dd+dt:not([class])+dd,td.tags:not([class]) .consul-upstream-instance-list li>.detail dl dd+dt:not([class])+dd,td.tags:not([class]) .list-collection>ul>li:not(:first-child)>.detail dl dd+dt:not([class])+dd,td.tags:not([class]) .tag-list dd+dt:not([class])+dd,td.tags:not([class]) dd+dt:not([class])+dd,td.tags:not([class]) section[data-route="dc.show.license"] .validity dl dd+dt:not([class])+dd,td.tags:not([class]) section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dd+dt:not([class])+dd{margin-left:var(--horizontal-kv-list-separator-width)}.consul-bucket-list dt+dd,.consul-exposed-path-list>ul>li>.detail dl dt+dd,.consul-instance-checks dt+dd,.consul-lock-session-list dl dt+dd,.consul-lock-session-list ul>li:not(:first-child)>.detail dl dt+dd,.consul-upstream-instance-list dl dt+dd,.consul-upstream-instance-list li>.detail dl dt+dd,.list-collection>ul>li:not(:first-child)>.detail dl dt+dd,.tag-list dt+dd,section[data-route="dc.show.license"] .validity dl dt+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl dt+dd,td.tags dt+dd{margin-left:4px}.consul-bucket-list:not([class]) dt:not([class])+dd,.consul-exposed-path-list>ul>li>.detail dl:not([class]) dt:not([class])+dd,.consul-instance-checks:not([class]) dt:not([class])+dd,.consul-lock-session-list dl:not([class]) dt:not([class])+dd,.consul-upstream-instance-list dl.local-bind-address dt+dd,.consul-upstream-instance-list dl.local-bind-socket-path dt+dd,.consul-upstream-instance-list dl:not([class]) dt:not([class])+dd,.list-collection>ul>li:not(:first-child)>.detail dl:not([class]) dt:not([class])+dd,.tag-list:not([class]) dt:not([class])+dd,section[data-route="dc.show.license"] .validity dl:not([class]) dt:not([class])+dd,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not([class]) dt:not([class])+dd,td.tags:not([class]) dt:not([class])+dd{margin-left:0!important}.consul-lock-session-list .checks dd,.discovery-chain .resolver-card ol,.tag-list dd,td.tags dd{display:flex}.consul-lock-session-list .checks dd>:not(:last-child)::after,.discovery-chain .resolver-card ol>:not(:last-child)::after,.tag-list dd>:not(:last-child)::after,td.tags dd>:not(:last-child)::after{display:inline;content:var(--csv-list-separator);vertical-align:initial;margin-right:.3em}.tag-list dt::before,td.tags dt::before{color:inherit;color:rgb(var(--tone-gray-500))}.consul-exposed-path-list>ul>li>.detail dl>dt>*,.consul-lock-session-list ul>li:not(:first-child)>.detail dl>dt>*,.consul-upstream-instance-list li>.detail dl>dt>*,.list-collection>ul>li:not(:first-child)>.detail dl>dt>*{display:none}.consul-exposed-path-list>ul>li>.detail dl.passing dt::before,.consul-exposed-path-list>ul>li>.header .passing dd::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.passing dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .passing dd::before,.consul-upstream-instance-list li>.detail dl.passing dt::before,.consul-upstream-instance-list li>.header .passing dd::before,.list-collection>ul>li:not(:first-child)>.detail dl.passing dt::before,.list-collection>ul>li:not(:first-child)>.header .passing dd::before{color:rgb(var(--tone-green-500))}.consul-exposed-path-list>ul>li>.detail dl.warning dt::before,.consul-exposed-path-list>ul>li>.header .warning dd::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.warning dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .warning dd::before,.consul-upstream-instance-list li>.detail dl.warning dt::before,.consul-upstream-instance-list li>.header .warning dd::before,.list-collection>ul>li:not(:first-child)>.detail dl.warning dt::before,.list-collection>ul>li:not(:first-child)>.header .warning dd::before{color:rgb(var(--tone-orange-500))}.consul-exposed-path-list>ul>li>.detail dl.critical dt::before,.consul-exposed-path-list>ul>li>.header .critical dd::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.critical dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .critical dd::before,.consul-upstream-instance-list li>.detail dl.critical dt::before,.consul-upstream-instance-list li>.header .critical dd::before,.list-collection>ul>li:not(:first-child)>.detail dl.critical dt::before,.list-collection>ul>li:not(:first-child)>.header .critical dd::before{color:rgb(var(--tone-red-500))}.consul-exposed-path-list>ul>li>.detail dl.empty dt::before,.consul-exposed-path-list>ul>li>.header .empty dd::before,.consul-lock-session-list ul>li:not(:first-child)>.detail dl.empty dt::before,.consul-lock-session-list ul>li:not(:first-child)>.header .empty dd::before,.consul-upstream-instance-list li>.detail dl.empty dt::before,.consul-upstream-instance-list li>.header .empty dd::before,.list-collection>ul>li:not(:first-child)>.detail dl.empty dt::before,.list-collection>ul>li:not(:first-child)>.header .empty dd::before{color:rgb(var(--tone-gray-500))}.consul-exposed-path-list>ul>li>.header [rel=me] dd::before,.consul-lock-session-list ul>li:not(:first-child)>.header [rel=me] dd::before,.consul-upstream-instance-list li>.header [rel=me] dd::before,.list-collection>ul>li:not(:first-child)>.header [rel=me] dd::before{color:rgb(var(--tone-blue-500))}.app-view>div form:not(.filter-bar) [role=radiogroup] label>em>code,.modal-dialog [role=document] .type-password>em>code,.modal-dialog [role=document] .type-select>em>code,.modal-dialog [role=document] .type-text>em>code,.modal-dialog [role=document] [role=radiogroup] label>em>code,.modal-dialog [role=document] form button+em>code,.modal-dialog [role=document] p code,.oidc-select label>em>code,.type-toggle>em>code,main .type-password>em>code,main .type-select>em>code,main .type-text>em>code,main form button+em>code,main p code{border:1px solid;color:rgb(var(--tone-brand-600));background-color:rgb(var(--tone-gray-050));border-color:rgb(var(--tone-gray-200));display:inline-block;padding:0 4px}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{outline:0;transition-property:transform,visibility,opacity;background-color:rgb(var(--tone-gray-000));border-radius:var(--decor-radius-100)}[data-animation=fade][data-state=hidden].tippy-box{opacity:0}[data-inertia][data-state=visible].tippy-box{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-box .tippy-arrow{--size:5px}.tippy-box .tippy-arrow::before{content:"";position:absolute}[data-placement^=top].tippy-box>.tippy-arrow{bottom:0}[data-placement^=top].tippy-box>.tippy-arrow::before{left:0;bottom:calc(0px - var(--size));transform-origin:center top}[data-placement^=bottom].tippy-box>.tippy-arrow{top:0}[data-placement^=bottom].tippy-box>.tippy-arrow::before{left:0;top:calc(0px - var(--size));transform-origin:center bottom}[data-placement^=left].tippy-box>.tippy-arrow{right:0}[data-placement^=left].tippy-box>.tippy-arrow::before{right:calc(0px - var(--size));transform-origin:center left}[data-placement^=right].tippy-box>.tippy-arrow{left:0}[data-placement^=right].tippy-box>.tippy-arrow::before{left:calc(0px - var(--size));transform-origin:center right}[data-theme~=square-tail] .tippy-arrow{--size:18px;left:calc(0px - (var(--size)/ 2))!important}[data-theme~=square-tail] .tippy-arrow::before{background-color:rgb(var(--tone-gray-000));width:calc(1px + var(--size));height:calc(1px + var(--size));border:var(--decor-border-100);border-color:rgb(var(--tone-gray-300))}[data-theme~=square-tail] .tippy-arrow::after{position:absolute;left:1px}[data-theme~=square-tail][data-placement^=top]{bottom:-10px}[data-theme~=square-tail][data-placement^=top] .informed-action{border-bottom-left-radius:0!important}[data-theme~=square-tail][data-placement^=top] .tippy-arrow::before{border-bottom-left-radius:var(--decor-radius-200);border-bottom-right-radius:var(--decor-radius-200);border-top:0!important}[data-theme~=square-tail][data-placement^=top] .tippy-arrow::after{bottom:calc(0px - var(--size))}[data-theme~=square-tail][data-placement^=bottom]{top:-10px}[data-theme~=square-tail][data-placement^=bottom] .informed-action{border-top-left-radius:0!important}[data-theme~=square-tail][data-placement^=bottom] .tippy-arrow::before{border-top-left-radius:var(--decor-radius-200);border-top-right-radius:var(--decor-radius-200);border-bottom:0!important}[data-theme~=square-tail][data-placement^=bottom] .tippy-arrow::after{top:calc(0px - var(--size))}.tippy-box[data-theme~=tooltip] .tippy-content{padding:12px;max-width:224px;position:relative;z-index:1}.tippy-box[data-theme~=tooltip]{background-color:rgb(var(--tone-gray-700));color:rgb(var(--tone-gray-000))}.tippy-box[data-theme~=tooltip] .tippy-arrow{--size:5px;color:rgb(var(--tone-gray-700));width:calc(var(--size) * 2);height:calc(var(--size) * 2)}.tippy-box[data-theme~=tooltip] .tippy-arrow::before{border-color:var(--transparent);border-style:solid}.tippy-box[data-theme~=tooltip][data-placement^=top]>.tippy-arrow::before{border-width:var(--size) var(--size) 0;border-top-color:initial}.tippy-box[data-theme~=tooltip][data-placement^=bottom]>.tippy-arrow::before{border-width:0 var(--size) var(--size);border-bottom-color:initial}.tippy-box[data-theme~=tooltip][data-placement^=left]>.tippy-arrow::before{border-width:var(--size) 0 var(--size) var(--size);border-left-color:initial}.tippy-box[data-theme~=tooltip][data-placement^=right]>.tippy-arrow::before{border-width:var(--size) var(--size) var(--size) 0;border-right-color:initial}.consul-intention-list .notice.allow,.consul-intention-list .notice.deny,.consul-intention-list .notice.permissions,.notice.error,.notice.highlight,.notice.info,.notice.policy-management,.notice.success,.notice.warning{border-radius:var(--decor-radius-100);border:var(--decor-border-100);color:rgb(var(--tone-gray-999))}.consul-intention-list .notice.allow footer *,.consul-intention-list .notice.deny footer *,.consul-intention-list .notice.permissions footer *,.notice.error footer *,.notice.highlight footer *,.notice.info footer *,.notice.policy-management footer *,.notice.success footer *,.notice.warning footer *{font-weight:var(--typo-weight-bold)}.consul-intention-list .notice.allow,.notice.success{background-color:rgb(var(--tone-green-050));border-color:rgb(var(--tone-green-500))}.consul-intention-list .notice.allow header *,.notice.success header *{color:rgb(var(--tone-green-800))}.consul-intention-list .notice.permissions,.notice.info{border-color:rgb(var(--tone-blue-100));background-color:rgb(var(--tone-blue-010))}.notice.highlight,.notice.policy-management{background-color:rgb(var(--tone-gray-050));border-color:rgb(var(--tone-gray-300))}.consul-intention-list .notice.permissions header *,.notice.info header *{color:rgb(var(--tone-blue-700))}.notice.warning{border-color:rgb(var(--tone-yellow-100));background-color:rgb(var(--tone-yellow-050))}.notice.warning header *{color:rgb(var(--tone-yellow-800))}.consul-intention-list .notice.deny,.notice.error{background-color:rgb(var(--tone-red-050));border-color:rgb(var(--tone-red-500))}.consul-intention-list .notice.deny header *,.notice.error header *{color:rgb(var(--tone-red-500))}.consul-health-check-list .passing.health-check-output::before,.consul-intention-list .notice.allow::before,.notice.success::before{color:rgb(var(--tone-green-500))}.consul-intention-list .notice.permissions::before,.notice.info::before{color:rgb(var(--tone-blue-500))}.notice.highlight::before,.notice.policy-management::before{color:rgb(var(--tone-yellow-500))}.notice.warning::before{color:rgb(var(--tone-orange-500))}.consul-intention-list .notice.deny::before,.notice.error::before{color:rgb(var(--tone-red-500))}.consul-intention-list .notice.allow header,.consul-intention-list .notice.deny header,.consul-intention-list .notice.permissions header,.notice.error header,.notice.highlight header,.notice.info header,.notice.policy-management header,.notice.success header,.notice.warning header{margin-bottom:.1rem}.consul-intention-list .notice.allow header>*,.consul-intention-list .notice.deny header>*,.consul-intention-list .notice.permissions header>*,.notice.error header>*,.notice.highlight header>*,.notice.info header>*,.notice.policy-management header>*,.notice.success header>*,.notice.warning header>*{margin-bottom:0}.consul-intention-list .notice.allow p,.consul-intention-list .notice.deny p,.consul-intention-list .notice.permissions p,.notice.error p,.notice.highlight p,.notice.info p,.notice.policy-management p,.notice.success p,.notice.warning p{margin-bottom:.3rem;line-height:1.4}.consul-intention-list .notice.allow,.consul-intention-list .notice.deny,.consul-intention-list .notice.permissions,.notice.error,.notice.highlight,.notice.info,.notice.policy-management,.notice.success,.notice.warning{position:relative;padding:.8rem;padding-left:calc(.8rem + 1.4rem);margin:1em 0}.consul-intention-list .notice.allow::before,.consul-intention-list .notice.deny::before,.consul-intention-list .notice.permissions::before,.notice.error::before,.notice.highlight::before,.notice.info::before,.notice.policy-management::before,.notice.success::before,.notice.warning::before{position:absolute;top:.8rem;left:.6rem;font-size:1rem}.notice.crd::before{-webkit-mask-image:none;mask-image:none;background-color:transparent}.warning.modal-dialog header{background-color:rgb(var(--tone-yellow-050));border-color:rgb(var(--tone-yellow-500));color:rgb(var(--tone-yellow-800))}.warning.modal-dialog header>:not(label){font-size:var(--typo-size-500);font-weight:var(--typo-weight-semibold)}.warning.modal-dialog header::before{color:rgb(var(--tone-yellow-500));float:left;margin-top:2px;margin-right:3px}.modal-dialog>div:first-child{background-color:rgb(var(--tone-gray-000) /90%)}.modal-dialog [role=document]{box-shadow:var(--decor-elevation-800);background-color:rgb(var(--tone-gray-000))}.modal-dialog [role=document]>footer,.modal-dialog [role=document]>header,.modal-dialog-body{border-color:rgb(var(--tone-gray-300))}.modal-dialog-body{border-style:solid;border-left-width:1px;border-right-width:1px}.modal-dialog [role=document]>header button::before{margin-left:-7px;margin-top:-3px}.modal-layer{height:0}.modal-dialog [role=document] table{height:150px!important}.modal-dialog [role=document] tbody{max-height:100px}.modal-dialog table{min-height:149px}.modal-dialog,.modal-dialog>div:first-child{position:fixed;top:0;right:0;bottom:0;left:0}.modal-dialog{z-index:500;display:flex;align-items:center;justify-content:center;height:100%}.role-selector [name="role[state]"],.role-selector [name="role[state]"]+*,[aria-hidden=true].modal-dialog{display:none}.modal-dialog [role=document]{margin:auto;z-index:2;max-width:855px;position:relative}.modal-dialog [role=document]>*{padding-left:15px;padding-right:15px}.modal-dialog [role=document]>div{overflow-y:auto;max-height:80vh;padding:20px 23px}.modal-dialog [role=document]>footer,.modal-dialog [role=document]>header{border-width:1px;padding-top:12px;padding-bottom:10px}.modal-dialog [role=document]>header{position:relative}.modal-dialog [role=document]>header button{cursor:pointer;border:var(--decor-border-100);background-color:rgb(var(--tone-gray-050));border-color:rgb(var(--tone-gray-300));border-radius:var(--decor-radius-100);float:right;width:24px;height:24px;margin-top:-3px}.list-collection>ul{border-top:1px solid;border-color:rgb(var(--tone-gray-200))}.list-collection>button{cursor:pointer;background-color:rgb(var(--tone-gray-050));color:rgb(var(--tone-blue-500));width:100%;padding:15px}.list-collection-scroll-virtual,.list-collection>ul>li{position:relative}.list-collection-scroll-virtual{height:500px}.filter-bar{background-color:rgb(var(--tone-gray-010));border-bottom:var(--decor-border-100);border-color:rgb(var(--tone-gray-200));padding:4px 8px}.filter-bar .filters .popover-menu>[type=checkbox]:checked+label button,.filter-bar .sort .popover-menu>[type=checkbox]:checked+label button{color:rgb(var(--tone-blue-500));background-color:rgb(var(--tone-gray-100))}.filter-bar,.filter-bar>div{display:flex}.filter-bar .sort{margin-left:auto}.filter-bar .popover-select{position:relative;z-index:3}.filter-bar .popover-menu>[type=checkbox]+label button{padding-left:1.5rem!important;padding-right:1.5rem!important}.filter-bar .popover-menu [role=menuitem]{justify-content:normal!important}@media (max-width:1379px){.filter-bar,.filter-bar>div{flex-wrap:wrap}.filter-bar .search{position:relative;z-index:4;width:100%;margin-bottom:.3rem}}@media (max-width:995px){.filter-bar .filters,.filter-bar .sort{display:none}}html[data-route^="dc.acls.index"] .filter-bar{color:inherit}.freetext-filter{border:var(--decor-border-100);border-radius:var(--decor-radius-100);background-color:rgb(var(--tone-gray-000));border-color:rgb(var(--tone-gray-200));color:rgb(var(--tone-gray-400))}.freetext-filter:hover,.freetext-filter:hover *{border-color:rgb(var(--tone-gray-400))}.freetext-filter *,.freetext-filter_input::placeholder{cursor:inherit;color:inherit;border-color:inherit}.freetext-filter_input{-webkit-appearance:none;border:none}.freetext-filter_label::after{visibility:visible;--icon-name:icon-search;content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;margin-left:-8px;margin-top:-8px}.freetext-filter .popover-menu{background-color:rgb(var(--tone-gray-050));color:rgb(var(--tone-gray-800));border-left:1px solid;border-color:inherit}.freetext-filter .popover-menu>[type=checkbox]:checked+label button{background-color:rgb(var(--tone-gray-200))}.freetext-filter{--height:2.2rem;display:flex;position:relative;height:var(--height);width:100%}.freetext-filter>label,.freetext-filter_input{flex-grow:1}.freetext-filter_input,.freetext-filter_label{height:100%}.freetext-filter_input{padding:8px 10px;padding-left:var(--height);min-width:12.7rem;width:100%}.freetext-filter_label{visibility:hidden;position:absolute;z-index:1;width:var(--height)}.informed-action{border-radius:var(--decor-radius-200);border:var(--decor-border-100);border-color:rgb(var(--tone-gray-300));background-color:rgb(var(--tone-gray-000));min-width:190px}.informed-action>div{border-top-left-radius:var(--decor-radius-200);border-top-right-radius:var(--decor-radius-200);cursor:default;padding:1rem}.informed-action p{color:rgb(var(--tone-gray-999))}.informed-action>ul>li>:focus,.informed-action>ul>li>:hover{background-color:rgb(var(--tone-gray-100))}.info.informed-action header{color:rgb(var(--tone-blue-700))}.info.informed-action header::before{background-color:rgb(var(--tone-blue-500));margin-right:5px}.info.informed-action>div{background-color:rgb(var(--tone-blue-010))}.dangerous.informed-action header{color:rgb(var(--tone-red-700))}.dangerous.informed-action header::before{background-color:rgb(var(--tone-red-500))}.dangerous.informed-action>div{background-color:rgb(var(--tone-red-010))}.warning.informed-action header{color:rgb(var(--tone-orange-700))}.warning.informed-action header::before{background-color:rgb(var(--tone-yellow-500));margin-right:5px}.warning.informed-action>div{background-color:rgb(var(--tone-yellow-050))}.informed-action>ul>.action>*{color:rgb(var(--tone-blue-500))}.documentation.informed-action{min-width:270px}.informed-action header::before{float:left;margin-right:5px}.informed-action>ul{list-style:none;display:flex;margin:0;padding:4px}.informed-action>ul>li{width:50%}.informed-action>ul>li>*{width:100%}.tab-nav ul{list-style-type:none;display:inline-flex;align-items:center;position:relative;padding:0;margin:0}.tab-nav li>:not(:disabled){cursor:pointer}.tab-nav{border-bottom:var(--decor-border-100)}.animatable.tab-nav ul::after,.tab-nav li>*{border-bottom:var(--decor-border-300)}.tab-nav{border-color:rgb(var(--tone-gray-200));clear:both;overflow:auto;letter-spacing:.03em}.tab-nav li>*{white-space:nowrap;transition-property:background-color,border-color;border-color:var(--transparent);color:rgb(var(--tone-gray-500));display:inline-block;padding:16px 13px}.tab-nav li:not(.selected)>:active,.tab-nav li:not(.selected)>:focus,.tab-nav li:not(.selected)>:hover{background-color:rgb(var(--tone-gray-100))}.tab-nav li:not(.selected)>:focus,.tab-nav li:not(.selected)>:hover{border-color:rgb(var(--tone-gray-300))}.animatable.tab-nav .selected a{border-color:var(--transparent)!important}.animatable.tab-nav ul::after{position:absolute;bottom:0;height:0;border-top:0;width:calc(var(--selected-width,0) * 1px);transform:translate(calc(var(--selected-left,0) * 1px),0);transition-property:transform,width}.search-bar-status{border-bottom:var(--decor-border-100);border-bottom-color:rgb(var(--tone-gray-200));padding:.5rem 0 .5rem .5rem}.search-bar-status li:not(.remove-all) button::before{color:rgb(var(--tone-gray-600));margin-top:1px;margin-right:.2rem}.search-bar-status dt::after{content:":";padding-right:.3rem}.search-bar-status>dl>dt{float:left}.search-bar-status dt{white-space:nowrap}.search-bar-status li{display:inline-flex}.search-bar-status li:not(:last-child){margin-right:.3rem;margin-bottom:.3rem}.search-bar-status li:not(.remove-all){border:var(--decor-border-100);border-color:rgb(var(--tone-gray-200));color:rgb(var(--tone-gray-600));padding:0 .2rem}.search-bar-status li:not(.remove-all) dl{display:flex}.search-bar-status li:not(.remove-all) button{cursor:pointer;padding:0}.certificate{display:flex}.certificate button.visibility{height:fit-content;padding-top:4px;margin-right:4px;cursor:pointer}.certificate code{background-color:rgb(var(--tone-gray-050));overflow-wrap:break-word;max-width:min-content;padding:0 12px}.certificate hr{border:3px dashed;background-color:rgb(var(--tone-gray-000));width:150px;margin:9px auto auto}.consul-loader circle{fill:rgb(var(--tone-brand-100));animation:loader-animation 1.5s infinite ease-in-out;transform-origin:50% 50%}.consul-loader g:nth-last-child(2) circle{animation-delay:.2s}.consul-loader g:nth-last-child(3) circle{animation-delay:.3s}.consul-loader g:nth-last-child(4) circle{animation-delay:.4s}.consul-loader g:nth-last-child(5) circle{animation-delay:.5s}@keyframes loader-animation{0%,100%{transform:scale3D(1,1,1)}33%{transform:scale3D(0,0,1)}}.consul-loader{display:flex;align-items:center;justify-content:center;height:100%;position:absolute;width:100%;top:0;margin-top:0!important}.tomography-graph .background{fill:rgb(var(--tone-gray-050))}.tomography-graph .axis{fill:none;stroke:rgb(var(--tone-gray-300));stroke-dasharray:4 4}.tomography-graph .border{fill:none;stroke:rgb(var(--tone-gray-300))}.tomography-graph .point{stroke:rgb(var(--tone-gray-400));fill:rgb(var(--tone-magenta-600))}.tomography-graph .lines rect{fill:rgb(var(--tone-magenta-600));stroke:transparent;stroke-width:5px}.tomography-graph .lines rect:hover{fill:rgb(var(--tone-gray-300));height:3px;y:-1px}.tomography-graph .tick line{stroke:rgb(var(--tone-gray-300))}.tomography-graph .tick text{font-size:var(--typo-size-600);text-anchor:start;color:rgb(var(--tone-gray-900))}.discovery-chain .resolver-card,.discovery-chain .route-card,.discovery-chain .splitter-card,.discovery-chain path{transition-duration:.1s;transition-timing-function:linear;cursor:pointer}.discovery-chain path{transition-property:stroke;fill:none;stroke:rgb(var(--tone-gray-400));stroke-width:2;vector-effect:non-scaling-stroke}#downstream-lines svg circle,#upstream-lines svg circle,.discovery-chain circle{fill:rgb(var(--tone-gray-000))}.discovery-chain .resolver-card,.discovery-chain .resolver-card a,.discovery-chain .route-card,.discovery-chain .route-card a,.discovery-chain .splitter-card,.discovery-chain .splitter-card a{color:rgb(var(--tone-gray-900))!important}.discovery-chain path:focus,.discovery-chain path:hover{stroke:rgb(var(--tone-gray-900))}.discovery-chain .resolvers,.discovery-chain .routes,.discovery-chain .splitters{border-radius:var(--decor-radius-100);border:1px solid;border-color:rgb(var(--tone-gray-200));background-color:rgb(var(--tone-gray-100));pointer-events:none}.discovery-chain .resolver-card,.discovery-chain .resolvers>header span,.discovery-chain .route-card,.discovery-chain .routes>header span,.discovery-chain .splitter-card,.discovery-chain .splitters>header span{pointer-events:all}.discovery-chain .resolvers>header>*,.discovery-chain .routes>header>*,.discovery-chain .splitters>header>*{text-transform:uppercase}.discovery-chain .resolvers>header span::after,.discovery-chain .routes>header span::after,.discovery-chain .splitters>header span::after{width:1.2em;height:1.2em;opacity:.6}.discovery-chain .resolver-card,.discovery-chain .route-card,.discovery-chain .splitter-card{transition-property:opacity background-color border-color;margin-top:0!important}.discovery-chain [id*=":"]:not(path):hover{opacity:1;background-color:rgb(var(--tone-gray-000));border-color:rgb(var(--tone-gray-500))}.discovery-chain .route-card header:not(.short) dd{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.discovery-chain .route-card section header>*{visibility:hidden}.discovery-chain .route-card .match-headers header ::before{content:"H"}.discovery-chain .route-card .match-queryparams header>::before{content:"Q"}.discovery-chain .resolver-card dt::before{content:"";--icon-size:icon-999}.discovery-chain .resolver-card dl.failover dt::before{--icon-name:icon-cloud-cross}.discovery-chain .resolver-card dl.redirect dt::before{--icon-name:icon-redirect}.discovery-chain circle{stroke-width:2;stroke:rgb(var(--tone-gray-400))}.discovery-chain{position:relative;display:flex;justify-content:space-between}.discovery-chain svg{position:absolute}.discovery-chain .resolvers,.discovery-chain .routes,.discovery-chain .splitters{padding:10px 1%;width:32%}.discovery-chain .resolvers>header,.discovery-chain .routes>header,.discovery-chain .splitters>header{height:18px}.discovery-chain .resolvers>header span,.discovery-chain .routes>header span,.discovery-chain .splitters>header span{position:relative;z-index:1;margin-left:2px}.discovery-chain .resolvers [role=group],.discovery-chain .routes [role=group],.discovery-chain .splitters [role=group]{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-around;height:100%}.discovery-chain .resolver-card dl,.discovery-chain .route-card dl,.discovery-chain .splitter-card dl{margin:0;float:none}.discovery-chain .resolver-card,.discovery-chain .route-card,.discovery-chain .splitter-card{margin-bottom:20px}.discovery-chain .route-card header.short dl{display:flex}.discovery-chain .route-card header.short dt::after{content:" ";display:inline-block}.discovery-chain .route-card>header ul{float:right;margin-top:-2px}.discovery-chain .route-card>header ul li{margin-left:5px}.discovery-chain .route-card section{display:flex}.discovery-chain .route-card section header{display:block;width:19px;margin-right:14px}.discovery-chain .resolver-card a{display:block}.discovery-chain .resolver-card dl{display:flex;flex-wrap:wrap;margin-top:5px}.discovery-chain .resolver-card dt{font-size:0;margin-right:6px;margin-top:1px;width:23px;height:20px}.discovery-chain .resolver-card ol{display:flex;flex-wrap:wrap;list-style-type:none}.discovery-chain .route-card,.discovery-chain .splitter-card{position:relative}.discovery-chain .route-card::before,.discovery-chain .splitter-card::before{background-color:rgb(var(--tone-gray-000));border-radius:var(--decor-radius-full);border:2px solid;border-color:rgb(var(--tone-gray-400));position:absolute;z-index:1;right:-5px;top:50%;margin-top:-5px;width:10px;height:10px}.discovery-chain .resolver-inlets,.discovery-chain .splitter-inlets{width:10px;height:100%;z-index:1}.discovery-chain .splitter-inlets{left:50%;margin-left:calc(calc(-32% / 2) + 1% - 3px)}.discovery-chain .resolver-inlets{right:calc(32% - 1% - 7px)}.consul-bucket-list .service+dd{font-weight:var(--typo-weight-semibold)}.consul-bucket-list dd:not(:last-child)::after{display:inline-block;content:"/";margin:0 6px 0 3px}.consul-bucket-list .service+dd,.consul-bucket-list dd+dt{margin-left:0!important}.consul-upstream-instance-list dl.local-bind-socket-mode dt{text-transform:lowercase;font-weight:var(--typo-weight-semibold)}.consul-health-check-list .health-check-output::before{min-width:20px;min-height:20px;margin-right:15px}@media (max-width:650px){.consul-health-check-list .health-check-output::before{min-width:18px;min-height:18px;margin-right:8px}}.consul-health-check-list .health-check-output dd em{background-color:rgb(var(--tone-gray-100));cursor:default;font-style:normal;margin-top:-2px;margin-left:.5em}.consul-health-check-list .warning.health-check-output::before{color:rgb(var(--tone-orange-500))}.consul-health-check-list .critical.health-check-output::before{color:rgb(var(--tone-red-500))}.consul-health-check-list .health-check-output,.consul-health-check-list .health-check-output pre{border-radius:var(--decor-radius-100)}.consul-health-check-list .health-check-output dd:first-of-type{color:rgb(var(--tone-gray-400))}.consul-health-check-list .health-check-output pre{background-color:rgb(var(--tone-gray-050));color:rgb(var(--tone-gray-600))}.consul-health-check-list .health-check-output{border-width:1px 1px 1px 4px;color:rgb(var(--tone-gray-900));border-color:rgb(var(--tone-gray-200));border-style:solid;display:flex;padding:20px 24px 20px 16px}.consul-health-check-list .passing.health-check-output{border-left-color:rgb(var(--tone-green-500))}.consul-health-check-list .warning.health-check-output{border-left-color:rgb(var(--tone-yellow-500))}.consul-health-check-list .critical.health-check-output{border-left-color:rgb(var(--tone-red-500))}.consul-health-check-list .health-check-output:not(:last-child){margin-bottom:24px}.consul-health-check-list .health-check-output dl:last-of-type,.consul-health-check-list .health-check-output header{width:100%}.consul-health-check-list .health-check-output header{margin-bottom:.9em}.consul-health-check-list .health-check-output>div{flex:1 1 auto;width:calc(100% - 26px);display:flex;flex-wrap:wrap;justify-content:space-between}.consul-health-check-list .health-check-output dl{min-width:110px}.consul-health-check-list .health-check-output dl>*{display:block;width:auto;position:static;padding-left:0}.consul-health-check-list .health-check-output dt{margin-bottom:0}.consul-health-check-list .health-check-output dd{position:relative}.consul-health-check-list .health-check-output dl:nth-last-of-type(2){width:50%}.consul-health-check-list .health-check-output dl:last-of-type{margin-top:1em;margin-bottom:0}.consul-health-check-list .health-check-output dl:last-of-type dt{margin-bottom:.3em}.consul-health-check-list .health-check-output pre{padding:12px 40px 12px 12px;white-space:pre-wrap;position:relative}.consul-health-check-list .health-check-output pre code{word-wrap:break-word}.consul-health-check-list .health-check-output .copy-button{position:absolute;right:.5em;top:.7em}@media (max-width:650px){.consul-health-check-list .health-check-output{padding:15px 19px 15px 14px}.consul-health-check-list .health-check-output::before{margin-right:8px}.consul-health-check-list .health-check-output dl:nth-last-of-type(2){width:100%}.consul-health-check-list .health-check-output dl:not(:last-of-type){margin-right:0}}.consul-instance-checks.passing dt::before{color:rgb(var(--tone-green-500))}.consul-instance-checks.warning dt::before{color:rgb(var(--tone-orange-500))}.consul-instance-checks.critical dt::before{color:rgb(var(--tone-red-500))}.consul-instance-checks.empty dt::before{color:rgb(var(--tone-gray-500))}.consul-exposed-path-list>ul{border-top:1px solid rgb(var(--tone-gray-200))}.consul-intention-list td.intent- strong::before,.consul-intention-list td.intent-allow strong::before,.consul-intention-list td.intent-deny strong::before,.consul-intention-permission-list .intent-allow::before,.consul-intention-permission-list .intent-deny::before,.consul-intention-search-bar .value- span::before,.consul-intention-search-bar .value-allow span::before,.consul-intention-search-bar .value-deny span::before{margin-right:5px}.consul-intention-list td.intent- strong,.consul-intention-list td.intent-allow strong,.consul-intention-list td.intent-deny strong,.consul-intention-permission-list .intent-allow,.consul-intention-permission-list .intent-deny,.consul-intention-search-bar .value- span,.consul-intention-search-bar .value-allow span,.consul-intention-search-bar .value-deny span{display:inline-block;font-weight:var(--typo-weight-normal);font-size:var(--typo-size-600)}.consul-intention-list td.intent-allow strong,.consul-intention-permission-list .intent-allow,.consul-intention-search-bar .value-allow span{color:rgb(var(--tone-green-800));background-color:rgb(var(--tone-green-100))}.consul-intention-list td.intent-deny strong,.consul-intention-permission-list .intent-deny,.consul-intention-search-bar .value-deny span{color:rgb(var(--tone-red-800));background-color:rgb(var(--tone-red-100))}.consul-intention-list td.permissions{color:rgb(var(--tone-blue-500))}.consul-intention-list em{--word-spacing:0.25rem}.consul-intention-list em span::before,.consul-intention-list em span:first-child{margin-right:var(--word-spacing)}.consul-intention-list em span:last-child{margin-left:var(--word-spacing)}.consul-intention-list td{height:59px}.consul-intention-list tr>:nth-child(1){width:calc(30% - 50px)}.consul-intention-list tr>:nth-child(2){width:120px}.consul-intention-list tr>:nth-child(3){width:calc(30% - 50px)}.consul-intention-list tr>:nth-child(4){width:calc(40% - 240px)}.consul-intention-list tr>:nth-child(5){width:160px}.consul-intention-list tr>:last-child{width:60px}.consul-intention-list .menu-panel.confirmation{width:200px}@media (max-width:849px){.consul-intention-list tr>:not(.source):not(.destination):not(.intent){display:none}}.consul-intention-action-warn-modal .modal-dialog-window{max-width:450px}.consul-intention-action-warn-modal .modal-dialog-body p{font-size:var(--typo-size-600)}.consul-intention-fieldsets [role=radiogroup]{overflow:visible!important;display:grid;grid-gap:12px;grid-template-columns:repeat(auto-fit,minmax(270px,auto))}.consul-intention-fieldsets .radio-card header>*{display:inline}.consul-intention-fieldsets .permissions>button{float:right}.consul-intention-permission-modal [role=dialog]{width:100%}.consul-intention-permission-list dl.permission-methods dt::before{content:"M"}.consul-intention-permission-list dl.permission-path dt::before{content:"P"}.consul-intention-permission-header-list dt::before,.consul-intention-permission-list dl.permission-header dt::before{content:"H"}.consul-intention-permission-list .detail>div{display:flex;width:100%}.consul-intention-permission-list strong{margin-right:8px}.consul-intention-permission-form h2{border-top:1px solid rgb(var(--tone-blue-500));padding-top:1.4em;margin-top:.2em;margin-bottom:.6em}.consul-intention-permission-form .consul-intention-permission-header-form{margin-top:10px}.consul-intention-permission-form .consul-intention-permission-header-form fieldset>div,.consul-intention-permission-form fieldset:nth-child(2)>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px}.consul-intention-permission-form fieldset:nth-child(2)>div label:last-child{grid-column:span 2}.consul-intention-permission-form .ember-basic-dropdown-trigger{padding:5px}.consul-intention-permission-form .checkbox-group{flex-direction:column}.consul-intention-permission-header-list{max-height:200px;overflow:auto}.consul-lock-session-list button{margin-right:var(--horizontal-padding)}.consul-lock-session-form{overflow:hidden}.consul-server-list ul{display:grid;grid-template-columns:repeat(4,minmax(215px,25%));gap:12px}.consul-server-list a:hover div{box-shadow:var(--decor-elevation-800);--tone-border:var(--tone-gray-500)}.consul-server-card .name+dd{color:rgb(var(--tone-gray-999));animation-name:typo-truncate}.consul-server-card .health-status+dd{font-size:var(--typo-size-700)}.voting-status-non-voter.consul-server-card .health-status+dd{background-color:rgb(var(--tone-gray-100));color:rgb(var(--tone-gray-600))}.consul-server-card:not(.voting-status-non-voter) .health-status.healthy+dd{background-color:rgb(var(--tone-green-050));color:rgb(var(--tone-green-800))}.consul-server-card:not(.voting-status-non-voter) .health-status:not(.healthy)+dd{background-color:rgb(var(--tone-red-050));color:rgb(var(--tone-red-500))}.consul-server-card .health-status+dd::before{--icon-size:icon-000;content:""}.consul-server-card .health-status.healthy+dd::before{--icon-name:icon-check;--icon-color:rgb(var(--tone-green-800))}.consul-server-card .health-status:not(.healthy)+dd::before{--icon-name:icon-x;--icon-color:rgb(var(--tone-red-500))}.consul-server-card{position:relative;overflow:hidden;--padding-x:24px;--padding-y:24px;padding:var(--padding-y) var(--padding-x);--tile-size:3rem}.consul-auth-method-binding-list h2,.consul-auth-method-view section h2{padding-bottom:12px}.voting-status-leader.consul-server-card .name{position:absolute!important}#downstream-lines,#metrics-container div .sparkline-wrapper,#upstream-lines,.consul-auth-method-view section,main{position:relative}.consul-server-card dd:not(:last-of-type){margin-bottom:calc(var(--padding-y)/ 2)}.voting-status-leader.consul-server-card dd{margin-left:calc(var(--tile-size) + 1rem)}.consul-auth-method-list ul .locality::before{margin-right:4px}.consul-auth-method-view{margin-bottom:32px}.consul-auth-method-view section{width:100%;overflow-y:auto}.consul-auth-method-view section table thead td{color:rgb(var(--tone-gray-500));font-weight:var(--typo-weight-semibold);font-size:var(--typo-size-700)}.consul-auth-method-view section table tbody td{font-size:var(--typo-size-600);color:rgb(var(--tone-gray-999))}.consul-auth-method-view section table tbody tr{cursor:default}.consul-auth-method-view section dt{width:30%}.consul-auth-method-view section dd{width:70%}.consul-auth-method-binding-list p{margin-bottom:4px!important}.consul-auth-method-binding-list code{background-color:rgb(var(--tone-gray-050));padding:0 12px}.consul-auth-method-nspace-list thead td{color:rgb(var(--tone-gray-500))!important;font-weight:var(--typo-weight-semibold)!important;font-size:var(--typo-size-700)!important}.consul-auth-method-nspace-list tbody td{font-size:var(--typo-size-600);color:rgb(var(--tone-gray-999))}.consul-auth-method-nspace-list tbody tr{cursor:default}.role-selector [name="role[state]"]:checked+*{display:block}.topology-notices button{color:rgb(var(--tone-blue-500));float:right;margin-top:16px;margin-bottom:32px}#metrics-container .link a,.topology-container{color:rgb(var(--tone-gray-700))}#downstream-container .topology-metrics-card:not(:last-child),#upstream-column #upstream-container:not(:last-child),#upstream-container .topology-metrics-card:not(:last-child){margin-bottom:8px}#downstream-container,#metrics-container,#upstream-container{border-radius:var(--decor-radius-100);border:1px solid;border-color:rgb(var(--tone-gray-200))}#downstream-container,#upstream-container{background-color:rgb(var(--tone-gray-100));padding:12px}#downstream-container>div:first-child{display:inline-flex}#downstream-container>div:first-child span::before{background-color:rgb(var(--tone-gray-500))}#metrics-container div:first-child{background-color:rgb(var(--tone-gray-000));padding:12px;border:none;font-size:16px;font-weight:700}#metrics-container .link{background-color:rgb(var(--tone-gray-100));padding:18px}#metrics-container .link a:hover{color:rgb(var(--color-action))}#downstream-lines svg path,#upstream-lines svg path{fill:var(--transparent)}#downstream-lines svg .allow-arrow,#upstream-lines svg .allow-arrow{fill:rgb(var(--tone-gray-300));stroke-linejoin:round}#downstream-lines svg .allow-arrow,#downstream-lines svg .allow-dot,#downstream-lines svg path,#upstream-lines svg .allow-arrow,#upstream-lines svg .allow-dot,#upstream-lines svg path{stroke:rgb(var(--tone-gray-300));stroke-width:2}#downstream-lines svg path[data-permission=empty],#downstream-lines svg path[data-permission=not-defined],#upstream-lines svg path[data-permission=empty],#upstream-lines svg path[data-permission=not-defined]{stroke-dasharray:4}#downstream-lines svg path[data-permission=deny],#upstream-lines svg path[data-permission=deny]{stroke:rgb(var(--tone-red-500))}#downstream-lines svg .deny-dot,#upstream-lines svg .deny-dot{stroke:rgb(var(--tone-red-500));stroke-width:2}#downstream-lines svg .deny-arrow,#upstream-lines svg .deny-arrow{fill:rgb(var(--tone-red-500));stroke:rgb(var(--tone-red-500));stroke-linejoin:round}.topology-notices{display:flow-root}.topology-container{display:grid;height:100%;align-items:start;grid-template-columns:2fr 1fr 2fr 1fr 2fr;grid-template-rows:50px 1fr 50px;grid-template-areas:"down-cards down-lines . up-lines up-cards" "down-cards down-lines metrics up-lines up-cards" "down-cards down-lines . up-lines up-cards"}#downstream-container{grid-area:down-cards}#downstream-lines{grid-area:down-lines;margin-left:-20px}#upstream-lines{grid-area:up-lines;margin-right:-20px}#upstream-column{grid-area:up-cards}#metrics-container{grid-area:metrics}#metrics-container .link a::before{background-color:rgb(var(--tone-gray-500));margin-right:4px}#downstream-container .topology-metrics-card,#upstream-container .topology-metrics-card{display:block;color:rgb(var(--tone-gray-700));overflow:hidden;background-color:rgb(var(--tone-gray-000));border-radius:var(--decor-radius-100);border:1px solid;border-color:rgb(var(--tone-gray-200))}#downstream-container .topology-metrics-card p,#upstream-container .topology-metrics-card p{padding:12px 12px 0;font-size:var(--typo-size-500);font-weight:var(--typo-weight-semibold);margin-bottom:0!important}#downstream-container .topology-metrics-card p.empty,#upstream-container .topology-metrics-card p.empty{padding:12px!important}#downstream-container .topology-metrics-card div dl,#upstream-container .topology-metrics-card div dl{display:inline-flex;margin-right:8px}#downstream-container .topology-metrics-card div dd,#upstream-container .topology-metrics-card div dd{color:rgb(var(--tone-gray-700))}#downstream-container .topology-metrics-card div span,#upstream-container .topology-metrics-card div span{margin-right:8px}#downstream-container .topology-metrics-card div dt::before,#downstream-container .topology-metrics-card div span::before,#upstream-container .topology-metrics-card div dt::before,#upstream-container .topology-metrics-card div span::before{margin-right:4px}#downstream-container .topology-metrics-card div .health dt::before,#downstream-container .topology-metrics-card div .nspace dt::before,#upstream-container .topology-metrics-card div .health dt::before,#upstream-container .topology-metrics-card div .nspace dt::before{margin-top:2px}#downstream-container .topology-metrics-card div .health dt::before,#downstream-container .topology-metrics-card div .nspace dt::before,#downstream-container .topology-metrics-card div .partition dt::before,#upstream-container .topology-metrics-card div .health dt::before,#upstream-container .topology-metrics-card div .nspace dt::before,#upstream-container .topology-metrics-card div .partition dt::before{--icon-color:rgb(var(--tone-gray-500))}#downstream-container .topology-metrics-card div .passing::before,#upstream-container .topology-metrics-card div .passing::before{--icon-color:rgb(var(--tone-green-500))}#downstream-container .topology-metrics-card div .warning::before,#upstream-container .topology-metrics-card div .warning::before{--icon-color:rgb(var(--tone-orange-500))}#downstream-container .topology-metrics-card div .critical::before,#upstream-container .topology-metrics-card div .critical::before{--icon-color:rgb(var(--tone-red-500))}#downstream-container .topology-metrics-card div .empty::before,#upstream-container .topology-metrics-card div .empty::before{--icon-color:rgb(var(--tone-gray-500))}#downstream-container .topology-metrics-card .details,#upstream-container .topology-metrics-card .details{padding:0 12px 12px}#downstream-container .topology-metrics-card .details>:not(:last-child),#upstream-container .topology-metrics-card .details>:not(:last-child){padding-bottom:6px}#downstream-container .topology-metrics-card .details .group,#upstream-container .topology-metrics-card .details .group{display:grid;grid-template-columns:20px 1fr;grid-template-rows:repeat(2,1fr);grid-template-areas:"partition partition" "union namespace"}#downstream-container .topology-metrics-card .details .group span,#upstream-container .topology-metrics-card .details .group span{display:inline-block;grid-area:union;padding-left:7px;margin-right:0}#downstream-container .topology-metrics-card .details .group span::before,#upstream-container .topology-metrics-card .details .group span::before{margin-right:0;--icon-color:rgb(var(--tone-gray-500))}#downstream-container .topology-metrics-card .details .group dl:first-child,#upstream-container .topology-metrics-card .details .group dl:first-child{grid-area:partition;padding-bottom:6px}#downstream-container .topology-metrics-card .details .group dl:nth-child(2),#upstream-container .topology-metrics-card .details .group dl:nth-child(2){grid-area:namespace}.topology-metrics-source-type{margin:6px 0 6px 12px;display:table}.topology-metrics-popover>button{position:absolute;transform:translate(-50%,-50%);background-color:rgb(var(--tone-gray-000));padding:1px}.topology-metrics-popover>button:hover{cursor:pointer}.topology-metrics-popover>button:disabled,html[data-route^="dc.nodes.show.metadata"] table tr{cursor:default}.topology-metrics-popover>button:active,.topology-metrics-popover>button:focus{outline:0}.topology-metrics-popover.deny .informed-action header::before{display:none}.topology-metrics-popover.deny .tippy-arrow::after,.topology-metrics-popover.deny>button::before{--icon-color:rgb(var(--tone-red-500))}.topology-metrics-popover.not-defined .tippy-arrow::after,.topology-metrics-popover.not-defined>button::before{--icon-color:rgb(var(--tone-yellow-500))}#metrics-container .sparkline-wrapper svg path{stroke-width:0}#metrics-container .sparkline-wrapper .tooltip{padding:0 0 10px;font-size:.875em;line-height:1.5em;font-weight:400;border:1px solid;background:#fff;border-radius:2px;box-sizing:border-box;box-shadow:0 4px 8px rgba(0,0,0,.05),0 4px 4px rgba(0,0,0,.1)}#metrics-container .sparkline-wrapper .tooltip .sparkline-time{padding:8px 10px;font-weight:700;font-size:14px;color:#000;border-bottom:1px solid rgb(var(--tone-gray-200));margin-bottom:4px;text-align:center}#metrics-container .sparkline-wrapper .tooltip .sparkline-tt-legend,#metrics-container .sparkline-wrapper .tooltip .sparkline-tt-sum{border:0;padding:3px 10px 0}#metrics-container .sparkline-wrapper .tooltip .sparkline-tt-sum{border-top:1px solid rgb(var(--tone-gray-200));margin-top:4px;padding:8px 10px 0}#metrics-container .sparkline-wrapper .tooltip .sparkline-tt-legend-color{width:12px;height:12px;border-radius:2px;margin:0 5px 0 0;padding:0}#metrics-container .sparkline-wrapper .tooltip .sparkline-tt-legend-value,#metrics-container .sparkline-wrapper .tooltip .sparkline-tt-sum-value{float:right}#metrics-container .sparkline-wrapper div.tooltip:before{content:"";display:block;position:absolute;width:12px;height:12px;left:15px;bottom:-7px;border:1px solid;border-top:0;border-left:0;background:#fff;transform:rotate(45deg)}.sparkline-key h3::before{margin:2px 3px 0 0;font-size:14px}.sparkline-key h3{color:rgb(var(--tone-gray-900));font-size:16px}.sparkline-key .sparkline-key-content dd,.sparkline-key-link{color:rgb(var(--tone-gray-500))}.sparkline-key-link:hover{color:rgb(var(--tone-blue-500))}#metrics-container:hover .sparkline-key-link::before{margin:1px 3px 0 0;font-size:12px}#metrics-container div .sparkline-wrapper,#metrics-container div .sparkline-wrapper svg.sparkline{width:100%;height:70px;padding:0;margin:0}#metrics-container div .sparkline-wrapper .tooltip{visibility:hidden;position:absolute;z-index:10;bottom:78px;width:217px}#metrics-container div .sparkline-wrapper .sparkline-tt-legend-color{display:inline-block}#metrics-container div .sparkline-wrapper .topology-metrics-error,#metrics-container div .sparkline-wrapper .topology-metrics-loader{padding-top:15px}.sparkline-key .sparkline-key-content{width:500px;min-height:100px}.sparkline-key .sparkline-key-content dl{padding:10px 0 0}.sparkline-key .sparkline-key-content dt{font-weight:600;width:125px;float:left}.sparkline-key .sparkline-key-content dd{margin:0 0 12px 135px}.sparkline-key-link{visibility:hidden;float:right;margin-top:-35px;margin-right:12px}#metrics-container:hover .sparkline-key-link{visibility:visible}.topology-metrics-stats{padding:12px 12px 0;display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;width:100%;border-top:1px solid rgb(var(--tone-gray-200))}.topology-metrics-stats dl{display:flex;padding-bottom:12px}.topology-metrics-stats dt{margin-right:5px;line-height:1.5em!important}.topology-metrics-stats dd{color:rgb(var(--tone-gray-400))!important}.topology-metrics-stats span{padding-bottom:12px}.topology-metrics-status-error,.topology-metrics-status-loader{font-weight:400;font-size:.875rem;color:rgb(var(--tone-gray-500));text-align:center;margin:0 auto!important;display:block}.topology-metrics-status-error span::before,.topology-metrics-status-loader span::before{background-color:rgb(var(--tone-gray-500))}span.topology-metrics-status-loader::after{--icon-name:var(--icon-loading);content:"";margin-left:.5rem}.definition-table dt{line-height:var(--typo-lead-700)}.app-view>div form:not(.filter-bar) [role=radiogroup] label,.modal-dialog [role=document] [role=radiogroup] label{line-height:var(--typo-lead-200)}.app-view>div form button[type=button].type-delete,.app-view>div form:not(.filter-bar) [role=radiogroup] label>span,.consul-intention-action-warn-modal button.dangerous,.copy-button button,.empty-state div>button,.modal-dialog .type-delete,.modal-dialog [role=document] .type-password>span,.modal-dialog [role=document] .type-select>span,.modal-dialog [role=document] .type-text>span,.modal-dialog [role=document] [role=radiogroup] label>span,.oidc-select button:not(.reset),.oidc-select label>span,.popover-select label>*,.topology-notices button,.type-sort.popover-select label>*,.type-toggle>span,.with-confirmation .type-delete,a.type-create,button.type-cancel,button.type-submit,button[type=reset],button[type=submit],header .actions button[type=button]:not(.copy-btn),main .type-password>span,main .type-select>span,main .type-text>span,span.label{font-weight:var(--typo-weight-semibold)}.discovery-chain .route-card header:not(.short) dd,.discovery-chain .route-card section dt,.discovery-chain .splitter-card>header{font-weight:var(--typo-weight-bold)}.app-view h1 em,.app-view>div form:not(.filter-bar) [role=radiogroup] label>strong,.consul-auth-method-type,.consul-external-source,.consul-health-check-list .health-check-output dd em,.consul-intention-list td strong,.consul-intention-list td.destination em,.consul-intention-list td.source em,.consul-intention-permission-list strong,.consul-intention-search-bar li button span,.consul-kind,.consul-server-card .health-status+dd,.consul-source,.consul-transparent-proxy,.discovery-chain .route-card header dt,.discovery-chain .route-card>header ul li,.empty-state header :nth-child(2),.hashicorp-consul nav .dcs li.is-local span,.hashicorp-consul nav .dcs li.is-primary span,.leader,.modal-dialog [role=document] .type-password>strong,.modal-dialog [role=document] .type-select>strong,.modal-dialog [role=document] .type-text>strong,.modal-dialog [role=document] [role=radiogroup] label>strong,.modal-dialog [role=document] label a[rel*=help],.modal-dialog [role=document] table td:first-child em,.oidc-select label>strong,.search-bar-status li:not(.remove-all),.topology-metrics-source-type,.type-toggle>strong,html[data-route^="dc.acls.index"] main td strong,main .type-password>strong,main .type-select>strong,main .type-text>strong,main label a[rel*=help],main table td:first-child em,section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl,section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em,span.policy-node-identity,span.policy-service-identity{font-weight:var(--typo-weight-normal)}.app-view h1 em,.app-view>div form:not(.filter-bar) [role=radiogroup] label>em,.consul-intention-list td.destination em,.consul-intention-list td.source em,.modal-dialog [role=document] .type-password>em,.modal-dialog [role=document] .type-select>em,.modal-dialog [role=document] .type-text>em,.modal-dialog [role=document] [role=radiogroup] label>em,.modal-dialog [role=document] form button+em,.modal-dialog [role=document] table td:first-child em,.oidc-select label>em,.type-toggle>em,main .type-password>em,main .type-select>em,main .type-text>em,main form button+em,main table td:first-child em{font-style:normal}.consul-exposed-path-list>ul>li>.header,.consul-lock-session-list ul>li:not(:first-child)>.header,.consul-upstream-instance-list li>.header,.list-collection>ul>li:not(:first-child)>.header{font-size:var(--typo-size-450);font-weight:var(--typo-weight-medium)}.consul-exposed-path-list>ul>li>.header :not(button),.consul-lock-session-list ul>li:not(:first-child)>.header :not(button),.consul-upstream-instance-list li>.header :not(button),.list-collection>ul>li:not(:first-child)>.header :not(button){font-size:inherit;font-weight:inherit}.app-view h1 em{font-size:var(--typo-size-500)}@media (max-width:420px) and (-webkit-min-device-pixel-ratio:0){input{font-size:16px!important}}#wrapper{box-sizing:content-box}#wrapper>footer>*,.modal-dialog>*,main>*{box-sizing:border-box}html[data-route$=create] main,html[data-route$=edit] main{max-width:1260px}fieldset [role=group]{display:flex;flex-wrap:wrap;flex-direction:row}.outlet[data-state=loading],html.ember-loading .view-loader,html:not(.has-nspaces) [class*=nspace-],html:not(.has-partitions) [class*=partition-],html[data-state=idle] .view-loader{display:none}[role=group] fieldset{width:50%}[role=group] fieldset:not(:first-of-type){padding-left:20px;border-left:1px solid;border-left:rgb(var(--tone-gray-500))}[role=group] fieldset:not(:last-of-type){padding-right:20px}.app-view{margin-top:50px}@media (max-width:849px){html:not(.with-breadcrumbs) .app-view{margin-top:10px}}html body>.brand-loader{transition-property:transform,opacity;transform:translate(0,0);opacity:1}html[data-state]:not(.ember-loading) body>.brand-loader{opacity:0}@media (min-width:900px){html[data-state] body>.brand-loader{transform:translate(calc(var(--chrome-width)/ 2),0)}}html[data-route$=create] .app-view>header+div>:first-child,html[data-route$=edit] .app-view>header+div>:first-child{margin-top:1.8em}.app-view>div .container,.app-view>div .tab-section .consul-health-check-list,.app-view>div .tab-section>.search-bar+p,.app-view>div .tab-section>:first-child:not(.filter-bar):not(table){margin-top:1.25em}.consul-upstream-instance-list,html[data-route^="dc.nodes.show.sessions"] .consul-lock-session-list{margin-top:0!important}.consul-auth-method-list ul,.consul-node-list ul,.consul-nspace-list ul,.consul-policy-list ul,.consul-role-list ul,.consul-service-instance-list ul,.consul-token-list ul,html[data-route="dc.services.index"] .consul-service-list ul,html[data-route^="dc.nodes.show.sessions"] .consul-lock-session-list ul{border-top-width:0!important}.notice+.consul-token-list ul{border-top-width:1px!important}#wrapper{padding-left:25px;padding-right:25px;display:flex;min-height:100vh;flex-direction:column}main{flex:1}html:not([data-route$=index]):not([data-route$=instances]) main{margin-bottom:2em}@media (max-width:849px){.actions button.copy-btn{margin-top:-56px;padding:0}}.modal-dialog [role=document] p:not(:last-child),main p:not(:last-child){margin-bottom:1em}.modal-dialog [role=document] form+div .with-confirmation,.modal-dialog [role=document] form:not(.filter-bar),main form+div .with-confirmation,main form:not(.filter-bar){margin-bottom:2em}@media (max-width:420px){main form [type=reset]{float:right;margin-right:0!important}}html[data-route^="dc.services.show"] .app-view .actions .external-dashboard{position:absolute;top:50px;right:0}html[data-route^="dc.services.instance"] .app-view>header dl{float:left;margin-top:19px;margin-bottom:23px;margin-right:50px}html[data-route^="dc.services.instance"] .app-view>header dt{font-weight:var(--typo-weight-bold)}html[data-route^="dc.services.instance"] .tab-nav{border-top:var(--decor-border-100)}html[data-route^="dc.services.instance"] .tab-section section:not(:last-child){border-bottom:var(--decor-border-100);padding-bottom:24px}html[data-route^="dc.services.instance"] .tab-nav,html[data-route^="dc.services.instance"] .tab-section section:not(:last-child){border-color:rgb(var(--tone-gray-200))}html[data-route^="dc.services.instance.metadata"] .tab-section section h2{margin:24px 0 12px}html[data-route^="dc.kv"] .type-toggle{float:right;margin-bottom:0!important}html[data-route^="dc.kv.edit"] h2{border-bottom:var(--decor-border-200);border-color:rgb(var(--tone-gray-200));padding-bottom:.2em;margin-bottom:.5em}html[data-route^="dc.acls.index"] main td strong{margin-right:3px}@media (max-width:420px){html[data-route^="dc.acls.create"] main header .actions,html[data-route^="dc.acls.edit"] main header .actions{float:none;display:flex;justify-content:space-between;margin-bottom:1em}html[data-route^="dc.acls.create"] main header .actions .with-feedback,html[data-route^="dc.acls.edit"] main header .actions .with-feedback{position:absolute;right:0}html[data-route^="dc.acls.create"] main header .actions .with-confirmation,html[data-route^="dc.acls.edit"] main header .actions .with-confirmation{margin-top:0}}html[data-route^="dc.intentions.edit"] .definition-table{margin-bottom:1em}section[data-route="dc.show.serverstatus"] .server-failure-tolerance{box-shadow:var(--decor-elevation-000);padding:var(--padding-y) var(--padding-x);max-width:770px;display:flex;flex-wrap:wrap}section[data-route="dc.show.serverstatus"] .server-failure-tolerance>header{width:100%;padding-bottom:.5rem;margin-bottom:1rem;border-bottom:var(--decor-border-100);border-color:rgb(var(--tone-border))}section[data-route="dc.show.serverstatus"] .server-failure-tolerance>header a{float:right;margin-top:4px;font-weight:var(--typo-weight-semibold)}section[data-route="dc.show.serverstatus"] .server-failure-tolerance header em{font-size:.812rem;background-color:rgb(var(--tone-gray-200));text-transform:uppercase;font-style:normal}section[data-route="dc.show.serverstatus"] .server-failure-tolerance>section{width:50%}section[data-route="dc.show.serverstatus"] .server-failure-tolerance dl,section[data-route="dc.show.serverstatus"] .server-failure-tolerance>section{display:flex;flex-direction:column}section[data-route="dc.show.serverstatus"] .server-failure-tolerance dl{flex-grow:1;justify-content:space-between}section[data-route="dc.show.serverstatus"] .server-failure-tolerance dl.warning dd::before{--icon-name:icon-alert-circle;--icon-size:icon-800;--icon-color:rgb(var(--tone-orange-400));content:"";margin-right:.5rem}section[data-route="dc.show.serverstatus"] .server-failure-tolerance section:first-of-type dl{padding-right:1.5rem}section[data-route="dc.show.serverstatus"] .server-failure-tolerance dt{color:rgb(var(--tone-gray-700))}section[data-route="dc.show.serverstatus"] .server-failure-tolerance dd{display:flex;align-items:center;font-size:var(--typo-size-250);color:rgb(var(--tone-gray-999))}section[data-route="dc.show.serverstatus"] .server-failure-tolerance header span::before{--icon-name:icon-info;--icon-size:icon-300;--icon-color:rgb(var(--tone-gray-500));vertical-align:unset;content:""}section[data-route="dc.show.serverstatus"] section:not([class*=-tolerance]) h2{margin-top:1.5rem;margin-bottom:1.5rem}section[data-route="dc.show.serverstatus"] section:not([class*=-tolerance]) header{margin-top:18px;margin-bottom:18px}section[data-route="dc.show.serverstatus"] .redundancy-zones section header{display:flow-root}section[data-route="dc.show.serverstatus"] .redundancy-zones section header h3{float:left;margin-right:.5rem}section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl:not(.warning){background-color:rgb(var(--tone-gray-100))}section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.warning{background-color:rgb(var(--tone-orange-100));color:rgb(var(--tone-orange-800))}section[data-route="dc.show.serverstatus"] .redundancy-zones section header dl.warning::before{--icon-name:icon-alert-circle;--icon-size:icon-000;margin-right:.312rem;content:""}section[data-route="dc.show.serverstatus"] .redundancy-zones section header dt::after{content:":";display:inline-block;vertical-align:revert;background-color:var(--transparent)}section[data-route="dc.show.license"] .validity p{color:rgb(var(--tone-gray-700))}section[data-route="dc.show.license"] .validity dl{font-size:var(--typo-size-400)}section[data-route="dc.show.license"] .validity dl dt::before{content:"";margin-right:.25rem}section[data-route="dc.show.license"] .validity dl .expired::before{--icon-name:icon-x-circle;--icon-color:rgb(var(--red-500))}section[data-route="dc.show.license"] .validity dl .warning::before{--icon-name:icon-alert-circle;--icon-color:rgb(var(--orange-500))}section[data-route="dc.show.license"] .validity dl .valid:not(.warning)::before{--icon-name:icon-check-circle;--icon-color:rgb(var(--green-500))}section[data-route="dc.show.license"] aside{box-shadow:var(--decor-elevation-000);padding:var(--padding-y) var(--padding-x);width:40%;min-width:413px;margin-top:1rem}section[data-route="dc.show.license"] aside header{margin-bottom:1rem}section[data-route="dc.show.license"] aside li{margin-bottom:.25rem}section[data-route="dc.show.license"] aside a::before{--icon-name:icon-docs-link;content:"";margin-right:.375rem}.prefers-reduced-motion{--icon-loading:icon-loading}@media (prefers-reduced-motion){:root{--icon-loading:icon-loading}}.consul-external-source.vault::before,.popover-select .vault button::before{--icon-name:icon-vault;content:""}.consul-external-source.aws::before,.popover-select .aws button::before{--icon-name:var(--icon-aws);content:""}.consul-external-source.aws::before,.consul-external-source.vault::before{--icon-size:icon-200}.consul-intention-fieldsets .value->:last-child::before,.consul-intention-fieldsets .value-allow>:last-child::before,.consul-intention-fieldsets .value-deny>:last-child::before{--icon-size:icon-500;--icon-resolution:.5}.consul-intention-fieldsets .value-allow>:last-child::before,.consul-intention-list td.intent-allow strong::before,.consul-intention-permission-list .intent-allow::before,.consul-intention-search-bar .value-allow span::before{--icon-name:icon-arrow-right;--icon-color:rgb(var(--tone-green-500))}.consul-intention-fieldsets .value-deny>:last-child::before,.consul-intention-list td.intent-deny strong::before,.consul-intention-permission-list .intent-deny::before,.consul-intention-search-bar .value-deny span::before{--icon-name:icon-skip;--icon-color:rgb(var(--tone-red-500))}.consul-intention-fieldsets .value->:last-child::before,.consul-intention-list td.intent- strong::before,.consul-intention-search-bar .value- span::before{--icon-name:icon-layers}*{border-width:0}.animatable.tab-nav ul::after,.app-view>div form button[type=button].type-delete,.app-view>div form button[type=button].type-delete:disabled,.app-view>div form button[type=button].type-delete:focus,.app-view>div form button[type=button].type-delete:hover:active,.app-view>div form button[type=button].type-delete:hover:not(:disabled):not(:active),.consul-auth-method-type,.consul-external-source,.consul-intention-action-warn-modal button.dangerous,.consul-intention-action-warn-modal button.dangerous:disabled,.consul-intention-action-warn-modal button.dangerous:focus,.consul-intention-action-warn-modal button.dangerous:hover:active,.consul-intention-action-warn-modal button.dangerous:hover:not(:disabled):not(:active),.consul-intention-list td.intent- strong,.consul-intention-permission-form button.type-submit,.consul-intention-permission-form button.type-submit:disabled,.consul-intention-permission-form button.type-submit:focus:not(:disabled),.consul-intention-permission-form button.type-submit:hover:not(:disabled),.consul-intention-search-bar .value- span,.consul-kind,.consul-source,.consul-transparent-proxy,.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:first-child,.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:focus:first-child,.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:hover:first-child,.discovery-chain .route-card>header ul li,.empty-state div>button,.empty-state div>button:disabled,.empty-state div>button:focus,.empty-state div>button:hover:active,.empty-state div>button:hover:not(:disabled):not(:active),.informed-action>ul>.dangerous>*,.informed-action>ul>.dangerous>:focus,.informed-action>ul>.dangerous>:hover,.leader,.menu-panel>ul>li.dangerous>:first-child,.menu-panel>ul>li.dangerous>:focus:first-child,.menu-panel>ul>li.dangerous>:hover:first-child,.modal-dialog .type-delete,.modal-dialog .type-delete:disabled,.modal-dialog .type-delete:focus,.modal-dialog .type-delete:hover:active,.modal-dialog .type-delete:hover:not(:disabled):not(:active),.modal-dialog [role=document]>footer,.modal-dialog [role=document]>header,.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:first-child,.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,.oidc-select button:disabled:not(.reset),.oidc-select button:focus:not(.reset),.oidc-select button:hover:active:not(.reset),.oidc-select button:hover:not(:disabled):not(:active):not(.reset),.oidc-select button:not(.reset),.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:first-child,.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,.tab-nav .selected>*,.topology-metrics-source-type,.with-confirmation .type-delete,.with-confirmation .type-delete:disabled,.with-confirmation .type-delete:focus,.with-confirmation .type-delete:hover:active,.with-confirmation .type-delete:hover:not(:disabled):not(:active),a.type-create,a.type-create:disabled,a.type-create:focus,a.type-create:hover:active,a.type-create:hover:not(:disabled):not(:active),button.type-cancel,button.type-cancel:active,button.type-cancel:focus,button.type-cancel:hover:not(:disabled):not(:active),button.type-submit,button.type-submit:disabled,button.type-submit:focus,button.type-submit:hover:active,button.type-submit:hover:not(:disabled):not(:active),button[type=reset],button[type=reset]:active,button[type=reset]:focus,button[type=reset]:hover:not(:disabled):not(:active),button[type=submit],button[type=submit]:disabled,button[type=submit]:focus,button[type=submit]:hover:active,button[type=submit]:hover:not(:disabled):not(:active),header .actions button[type=button]:active:not(.copy-btn),header .actions button[type=button]:focus:not(.copy-btn),header .actions button[type=button]:hover:not(:disabled):not(:active):not(.copy-btn),header .actions button[type=button]:not(.copy-btn),html[data-route^="dc.acls.index"] main td strong,span.policy-node-identity,span.policy-service-identity,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:first-child,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child{border-style:solid}button.type-cancel:focus,button.type-cancel:hover:not(:disabled):not(:active),button[type=reset]:focus,button[type=reset]:hover:not(:disabled):not(:active),header .actions button[type=button]:focus:not(.copy-btn),header .actions button[type=button]:hover:not(:disabled):not(:active):not(.copy-btn){background-color:rgb(var(--tone-gray-000));border-color:rgb(var(--tone-gray-700));color:rgb(var(--tone-gray-800))}button.type-cancel,button[type=reset],header .actions button[type=button]:not(.copy-btn){background-color:rgb(var(--tone-gray-050));border-color:rgb(var(--tone-gray-300));color:rgb(var(--tone-gray-800))}.consul-auth-method-type,.consul-external-source,.consul-kind,.consul-source,.consul-transparent-proxy,.leader,.topology-metrics-source-type,span.policy-node-identity,span.policy-service-identity{background-color:rgb(var(--tone-gray-100));border-color:rgb(var(--tone-gray-500));color:rgb(var(--tone-gray-500))}button.type-cancel:active,button[type=reset]:active,header .actions button[type=button]:active:not(.copy-btn){background-color:rgb(var(--tone-gray-200));border-color:rgb(var(--tone-gray-700));color:rgb(var(--tone-gray-800))}.modal-dialog [role=document]>footer,.modal-dialog [role=document]>header{background-color:rgb(var(--tone-gray-050));border-color:rgb(var(--tone-gray-300));color:rgb(var(--tone-gray-900))}.consul-intention-list td.intent- strong,.consul-intention-search-bar .value- span,.discovery-chain .route-card>header ul li,html[data-route^="dc.acls.index"] main td strong{background-color:rgb(var(--tone-gray-100));border-color:rgb(var(--tone-gray-300));color:rgb(var(--tone-gray-900))}.consul-intention-permission-form button.type-submit:disabled{background-color:rgb(var(--tone-gray-000));border-color:rgb(var(--tone-blue-300));color:rgb(var(--tone-blue-300))}.animatable.tab-nav ul::after,.consul-intention-permission-form button.type-submit,.tab-nav .selected>*{background-color:rgb(var(--tone-gray-000));border-color:rgb(var(--tone-blue-500));color:rgb(var(--tone-blue-500))}.consul-intention-permission-form button.type-submit:focus:not(:disabled),.consul-intention-permission-form button.type-submit:hover:not(:disabled){background-color:rgb(var(--tone-blue-050));border-color:rgb(var(--tone-blue-500));color:rgb(var(--tone-blue-800))}.empty-state div>button:disabled,.oidc-select button:disabled:not(.reset),a.type-create:disabled,button.type-submit:disabled,button[type=submit]:disabled{background-color:rgb(var(--tone-blue-200));border-color:rgb(var(--tone-gray-400));color:rgb(var(--tone-blue-050))}.empty-state div>button:focus,.empty-state div>button:hover:not(:disabled):not(:active),.oidc-select button:focus:not(.reset),.oidc-select button:hover:not(:disabled):not(:active):not(.reset),a.type-create:focus,a.type-create:hover:not(:disabled):not(:active),button.type-submit:focus,button.type-submit:hover:not(:disabled):not(:active),button[type=submit]:focus,button[type=submit]:hover:not(:disabled):not(:active){background-color:rgb(var(--tone-blue-400));border-color:rgb(var(--tone-blue-800));color:rgb(var(--tone-gray-000))}.empty-state div>button,.oidc-select button:not(.reset),a.type-create,button.type-submit,button[type=submit]{background-color:rgb(var(--tone-blue-500));border-color:rgb(var(--tone-blue-800));color:rgb(var(--tone-gray-000))}.empty-state div>button:hover:active,.oidc-select button:hover:active:not(.reset),a.type-create:hover:active,button.type-submit:hover:active,button[type=submit]:hover:active{background-color:rgb(var(--tone-blue-700));border-color:rgb(var(--tone-blue-800));color:rgb(var(--tone-gray-000))}.app-view>div form button[type=button].type-delete,.consul-intention-action-warn-modal button.dangerous,.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:first-child,.informed-action>ul>.dangerous>*,.menu-panel>ul>li.dangerous>:first-child,.modal-dialog .type-delete,.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:first-child,.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:first-child,.with-confirmation .type-delete,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:first-child{background-color:var(--transparent);border-color:rgb(var(--tone-red-500));color:rgb(var(--tone-red-500))}.app-view>div form button[type=button].type-delete:disabled,.consul-intention-action-warn-modal button.dangerous:disabled,.modal-dialog .type-delete:disabled,.with-confirmation .type-delete:disabled{background-color:rgb(var(--tone-red-200));border-color:rgb(var(--tone-gray-400));color:rgb(var(--tone-gray-000))}.app-view>div form button[type=button].type-delete:focus,.app-view>div form button[type=button].type-delete:hover:not(:disabled):not(:active),.consul-intention-action-warn-modal button.dangerous:focus,.consul-intention-action-warn-modal button.dangerous:hover:not(:disabled):not(:active),.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:focus:first-child,.disclosure-menu [aria-expanded]~*>ul>li.dangerous>:hover:first-child,.informed-action>ul>.dangerous>:focus,.informed-action>ul>.dangerous>:hover,.menu-panel>ul>li.dangerous>:focus:first-child,.menu-panel>ul>li.dangerous>:hover:first-child,.modal-dialog .type-delete:focus,.modal-dialog .type-delete:hover:not(:disabled):not(:active),.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,.more-popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,.popover-menu>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,.with-confirmation .type-delete:focus,.with-confirmation .type-delete:hover:not(:disabled):not(:active),table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,table.has-actions tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:focus:first-child,table.with-details tr>.actions>[type=checkbox]+label+div>ul>li.dangerous>:hover:first-child{background-color:rgb(var(--tone-red-500));border-color:rgb(var(--tone-red-800));color:rgb(var(--tone-gray-000))}.app-view>div form button[type=button].type-delete:hover:active,.consul-intention-action-warn-modal button.dangerous:hover:active,.modal-dialog .type-delete:hover:active,.with-confirmation .type-delete:hover:active{background-color:rgb(var(--tone-red-700));border-color:rgb(var(--tone-red-800));color:rgb(var(--tone-gray-000))}:root.prefers-color-scheme-dark,:root:not(.prefers-color-scheme-dark),[role=banner],[role=banner] nav:first-of-type,[role=banner] nav:last-of-type{--tone-magenta-000:var(--white);--tone-magenta-050:var(--magenta-050);--tone-magenta-100:var(--magenta-100);--tone-magenta-150:var(--magenta-150);--tone-magenta-200:var(--magenta-200);--tone-magenta-300:var(--magenta-300);--tone-magenta-400:var(--magenta-400);--tone-magenta-500:var(--magenta-500);--tone-magenta-600:var(--magenta-600);--tone-magenta-700:var(--magenta-700);--tone-magenta-800:var(--magenta-800);--tone-magenta-850:var(--magenta-850);--tone-magenta-900:var(--magenta-900);--tone-magenta-950:var(--magenta-950);--tone-magenta-999:var(--black);--tone-strawberry-000:var(--white);--tone-strawberry-050:var(--strawberry-050);--tone-strawberry-100:var(--strawberry-100);--tone-strawberry-150:var(--strawberry-150);--tone-strawberry-200:var(--strawberry-200);--tone-strawberry-300:var(--strawberry-300);--tone-strawberry-400:var(--strawberry-400);--tone-strawberry-500:var(--strawberry-500);--tone-strawberry-600:var(--strawberry-600);--tone-strawberry-700:var(--strawberry-700);--tone-strawberry-800:var(--strawberry-800);--tone-strawberry-850:var(--strawberry-850);--tone-strawberry-900:var(--strawberry-900);--tone-strawberry-950:var(--strawberry-950);--tone-strawberry-999:var(--black);--tone-lemon-000:var(--white);--tone-lemon-050:var(--lemon-050);--tone-lemon-100:var(--lemon-100);--tone-lemon-150:var(--lemon-150);--tone-lemon-200:var(--lemon-200);--tone-lemon-300:var(--lemon-300);--tone-lemon-400:var(--lemon-400);--tone-lemon-500:var(--lemon-500);--tone-lemon-600:var(--lemon-600);--tone-lemon-700:var(--lemon-700);--tone-lemon-800:var(--lemon-800);--tone-lemon-850:var(--lemon-850);--tone-lemon-900:var(--lemon-900);--tone-lemon-950:var(--lemon-950);--tone-lemon-999:var(--black)}[role=banner] nav:last-of-type .dangerous button:focus,[role=banner] nav:last-of-type .dangerous button:hover{color:rgb(var(--white))!important}[role=banner] nav:first-of-type .menu-panel a:focus,[role=banner] nav:first-of-type .menu-panel a:hover{background-color:rgb(var(--tone-blue-500))} \ No newline at end of file diff --git a/agent/uiserver/dist/assets/consul-ui-e58b85f0a8e1fb15ded242e5b25b171c.js b/agent/uiserver/dist/assets/consul-ui-e58b85f0a8e1fb15ded242e5b25b171c.js new file mode 100644 index 0000000000..ad0150bba1 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-ui-e58b85f0a8e1fb15ded242e5b25b171c.js @@ -0,0 +1,3507 @@ +"use strict" +define("consul-ui/abilities/acl",["exports","consul-ui/abilities/base"],(function(e,t){var n,r,a +function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(n=Ember.inject.service("env"),r=class extends t.default{constructor(...e){var t,n,r,s +super(...e),t=this,n="env",s=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(s):void 0}),l(this,"resource","acl"),l(this,"segmented",!1)}get canAccess(){return!this.env.var("CONSUL_ACLS_ENABLED")||this.canRead}get canRead(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canRead}get canDuplicate(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canWrite}get canDelete(){return this.env.var("CONSUL_ACLS_ENABLED")&&"anonymous"!==this.item.ID&&super.canWrite}get canUse(){return this.env.var("CONSUL_ACLS_ENABLED")}},i=r.prototype,o="env",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/abilities/auth-method",["exports","consul-ui/abilities/base"],(function(e,t){var n,r,a +function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(n=Ember.inject.service("env"),r=class extends t.default{constructor(...e){var t,n,r,s +super(...e),t=this,n="env",s=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(s):void 0}),l(this,"resource","acl"),l(this,"segmented",!1)}get canRead(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canRead}get canCreate(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canCreate}get canDelete(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canDelete}get canUse(){return this.env.var("CONSUL_SSO_ENABLED")}},i=r.prototype,o="env",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/abilities/base",["exports","ember-can"],(function(e,t){var n,r,a +function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.ACCESS_LIST=e.ACCESS_WRITE=e.ACCESS_READ=void 0 +e.ACCESS_READ="read" +e.ACCESS_WRITE="write" +e.ACCESS_LIST="list" +let s=(n=Ember.inject.service("repository/permission"),r=class extends t.Ability{constructor(...e){var t,n,r,s +super(...e),t=this,n="permissions",s=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(s):void 0}),l(this,"resource",""),l(this,"segmented",!0)}generate(e){return this.permissions.generate(this.resource,e)}generateForSegment(e){return this.segmented?[this.permissions.generate(this.resource,"read",e),this.permissions.generate(this.resource,"write",e)]:[]}get isLinkable(){return!0}get isNew(){return this.item.isNew}get isPristine(){return this.item.isPristine}get canRead(){if(void 0!==this.item){const e=(Ember.get(this,"item.Resources")||[]).find(e=>"read"===e.Access) +if(e)return e.Allow}return this.permissions.has(this.generate("read"))}get canList(){if(void 0!==this.item){const e=(Ember.get(this,"item.Resources")||[]).find(e=>"list"===e.Access) +if(e)return e.Allow}return this.permissions.has(this.generate("list"))}get canWrite(){if(void 0!==this.item){const e=(Ember.get(this,"item.Resources")||[]).find(e=>"write"===e.Access) +if(e)return e.Allow}return this.permissions.has(this.generate("write"))}get canCreate(){return this.canWrite}get canDelete(){return this.canWrite}get canUpdate(){return this.canWrite}},i=r.prototype,o="permissions",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/abilities/hcp",["exports","consul-ui/abilities/base"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let l=(n=Ember.inject.service("env"),r=class extends t.default{constructor(...e){var t,n,r,l +super(...e),t=this,n="env",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}get is(){return!1}},s=r.prototype,i="env",o=[n],u={configurable:!0,enumerable:!0,writable:!0,initializer:null},d={},Object.keys(u).forEach((function(e){d[e]=u[e]})),d.enumerable=!!d.enumerable,d.configurable=!!d.configurable,("value"in d||d.initializer)&&(d.writable=!0),d=o.slice().reverse().reduce((function(e,t){return t(s,i,e)||e}),d),c&&void 0!==d.initializer&&(d.value=d.initializer?d.initializer.call(c):void 0,d.initializer=void 0),void 0===d.initializer&&(Object.defineProperty(s,i,d),d=null),a=d,r) +var s,i,o,u,c,d +e.default=l})),define("consul-ui/abilities/intention",["exports","consul-ui/abilities/base"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="intention",(n="resource")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}get canWrite(){return super.canWrite&&(void 0===this.item||!this.canViewCRD)}get canViewCRD(){return void 0!==this.item&&this.item.IsManagedByCRD}}e.default=n})),define("consul-ui/abilities/kv",["exports","consul-ui/abilities/base"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="key",(n="resource")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}generateForSegment(e){let n=super.generateForSegment(e) +return e.endsWith("/")&&(n=n.concat(this.permissions.generate(this.resource,t.ACCESS_LIST,e))),n}get canRead(){return!0}get canList(){return!0}get canWrite(){return!0}}e.default=n})),define("consul-ui/abilities/license",["exports","consul-ui/abilities/base"],(function(e,t){var n,r,a +function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(n=Ember.inject.service("env"),r=class extends t.default{constructor(...e){var t,n,r,s +super(...e),l(this,"resource","operator"),l(this,"segmented",!1),t=this,n="env",s=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(s):void 0})}get canRead(){return this.env.var("CONSUL_NSPACES_ENABLED")&&super.canRead}},i=r.prototype,o="env",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/abilities/node",["exports","consul-ui/abilities/base"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="node",(n="resource")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}}e.default=n})),define("consul-ui/abilities/nspace",["exports","consul-ui/abilities/base"],(function(e,t){var n,r,a +function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(n=Ember.inject.service("env"),r=class extends t.default{constructor(...e){var t,n,r,s +super(...e),t=this,n="env",s=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(s):void 0}),l(this,"resource","operator"),l(this,"segmented",!1)}get isLinkable(){return!this.item.DeletedAt}get canManage(){return this.canCreate}get canDelete(){return"default"!==this.item.Name&&super.canDelete}get canChoose(){return this.canUse}get canUse(){return this.env.var("CONSUL_NSPACES_ENABLED")}},i=r.prototype,o="env",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/abilities/overview",["exports","consul-ui/abilities/base"],(function(e,t){function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class r extends t.default{constructor(...e){super(...e),n(this,"resource","operator"),n(this,"segmented",!1)}get canAccess(){return this.canRead}}e.default=r})),define("consul-ui/abilities/partition",["exports","consul-ui/abilities/base"],(function(e,t){var n,r,a,l,s +function i(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let c=(n=Ember.inject.service("env"),r=Ember.inject.service("repository/dc"),a=class extends t.default{constructor(...e){super(...e),i(this,"env",l,this),i(this,"dcs",s,this),o(this,"resource","operator"),o(this,"segmented",!1)}get isLinkable(){return!this.item.DeletedAt}get canManage(){return this.canWrite}get canCreate(){return!(this.dcs.peekAll().length>1)&&super.canCreate}get canDelete(){return"default"!==this.item.Name&&super.canDelete}get canChoose(){return void 0!==this.dc&&(this.canUse&&this.dc.Primary)}get canUse(){return this.env.var("CONSUL_PARTITIONS_ENABLED")}},l=u(a.prototype,"env",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=u(a.prototype,"dcs",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a) +e.default=c})),define("consul-ui/abilities/permission",["exports","consul-ui/abilities/base"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{get canRead(){return this.permissions.permissions.length>0}}e.default=n})),define("consul-ui/abilities/policy",["exports","consul-ui/abilities/base","consul-ui/helpers/policy/typeof"],(function(e,t,n){var r,a,l +function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let i=(r=Ember.inject.service("env"),a=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="env",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),s(this,"resource","acl"),s(this,"segmented",!1)}get canRead(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canRead}get canWrite(){return this.env.var("CONSUL_ACLS_ENABLED")&&(void 0===this.item||"policy-management"!==(0,n.typeOf)([this.item]))&&super.canWrite}get canCreate(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canCreate}get canDelete(){return this.env.var("CONSUL_ACLS_ENABLED")&&(void 0===this.item||"policy-management"!==(0,n.typeOf)([this.item]))&&super.canDelete}},o=a.prototype,u="env",c=[r],d={configurable:!0,enumerable:!0,writable:!0,initializer:null},p={},Object.keys(d).forEach((function(e){p[e]=d[e]})),p.enumerable=!!p.enumerable,p.configurable=!!p.configurable,("value"in p||p.initializer)&&(p.writable=!0),p=c.slice().reverse().reduce((function(e,t){return t(o,u,e)||e}),p),m&&void 0!==p.initializer&&(p.value=p.initializer?p.initializer.call(m):void 0,p.initializer=void 0),void 0===p.initializer&&(Object.defineProperty(o,u,p),p=null),l=p,a) +var o,u,c,d,m,p +e.default=i})),define("consul-ui/abilities/role",["exports","consul-ui/abilities/base"],(function(e,t){var n,r,a +function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(n=Ember.inject.service("env"),r=class extends t.default{constructor(...e){var t,n,r,s +super(...e),t=this,n="env",s=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(s):void 0}),l(this,"resource","acl"),l(this,"segmented",!1)}get canRead(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canRead}get canCreate(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canCreate}get canDelete(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canDelete}},i=r.prototype,o="env",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/abilities/service-instance",["exports","consul-ui/abilities/base"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="service",(n="resource")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}generateForSegment(e){return super.generateForSegment(...arguments).concat([this.permissions.generate("intention",t.ACCESS_READ,e),this.permissions.generate("intention",t.ACCESS_WRITE,e)])}}e.default=n})),define("consul-ui/abilities/session",["exports","consul-ui/abilities/base"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="session",(n="resource")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}}e.default=n})),define("consul-ui/abilities/token",["exports","consul-ui/abilities/base","consul-ui/helpers/token/is-legacy","consul-ui/helpers/token/is-anonymous"],(function(e,t,n,r){var a,l,s +function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let o=(a=Ember.inject.service("env"),l=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="env",a=this,(r=s)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),i(this,"resource","acl"),i(this,"segmented",!1)}get canRead(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canRead}get canCreate(){return this.env.var("CONSUL_ACLS_ENABLED")&&super.canCreate}get canDelete(){return this.env.var("CONSUL_ACLS_ENABLED")&&!(0,r.isAnonymous)([this.item])&&this.item.AccessorID!==this.token.AccessorID&&super.canDelete}get canDuplicate(){return this.env.var("CONSUL_ACLS_ENABLED")&&!(0,n.isLegacy)([this.item])&&super.canWrite}},u=l.prototype,c="env",d=[a],m={configurable:!0,enumerable:!0,writable:!0,initializer:null},f={},Object.keys(m).forEach((function(e){f[e]=m[e]})),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=d.slice().reverse().reduce((function(e,t){return t(u,c,e)||e}),f),p&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(p):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(u,c,f),f=null),s=f,l) +var u,c,d,m,p,f +e.default=o})),define("consul-ui/abilities/upstream",["exports","consul-ui/abilities/base"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="upstream",(n="resource")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}get isLinkable(){return this.item.InstanceCount>0}}e.default=n})),define("consul-ui/abilities/zervice",["exports","consul-ui/abilities/base"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="service",(n="resource")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}get isLinkable(){return this.item.InstanceCount>0}get canReadIntention(){if(void 0===this.item||void 0===this.item.Resources)return!1 +return void 0!==this.item.Resources.find(e=>"intention"===e.Resource&&"read"===e.Access&&!0===e.Allow)}get canWriteIntention(){if(void 0===this.item||void 0===this.item.Resources)return!1 +return void 0!==this.item.Resources.find(e=>"intention"===e.Resource&&"write"===e.Access&&!0===e.Allow)}get canCreateIntention(){return this.canWriteIntention}get canUpdateIntention(){return this.canWriteIntention}}e.default=n})),define("consul-ui/abilities/zone",["exports","consul-ui/abilities/base"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let l=(n=Ember.inject.service("env"),r=class extends t.default{constructor(...e){var t,n,r,l +super(...e),t=this,n="env",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}get canRead(){return this.env.var("CONSUL_NSPACES_ENABLED")}},s=r.prototype,i="env",o=[n],u={configurable:!0,enumerable:!0,writable:!0,initializer:null},d={},Object.keys(u).forEach((function(e){d[e]=u[e]})),d.enumerable=!!d.enumerable,d.configurable=!!d.configurable,("value"in d||d.initializer)&&(d.writable=!0),d=o.slice().reverse().reduce((function(e,t){return t(s,i,e)||e}),d),c&&void 0!==d.initializer&&(d.value=d.initializer?d.initializer.call(c):void 0,d.initializer=void 0),void 0===d.initializer&&(Object.defineProperty(s,i,d),d=null),a=d,r) +var s,i,o,u,c,d +e.default=l})),define("consul-ui/adapters/-json-api",["exports","@ember-data/adapter/json-api"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/adapters/application",["exports","consul-ui/adapters/http"],(function(e,t){var n,r,a,l,s +function i(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.NSPACE_QUERY_PARAM=e.DATACENTER_QUERY_PARAM=void 0 +e.DATACENTER_QUERY_PARAM="dc" +e.NSPACE_QUERY_PARAM="ns" +let u=(n=Ember.inject.service("client/http"),r=Ember.inject.service("env"),a=class extends t.default{constructor(...e){super(...e),i(this,"client",l,this),i(this,"env",s,this)}formatNspace(e){if(this.env.var("CONSUL_NSPACES_ENABLED"))return""!==e?{ns:e}:void 0}formatDatacenter(e){return{dc:e}}},l=o(a.prototype,"client",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=o(a.prototype,"env",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a) +e.default=u})),define("consul-ui/adapters/auth-method",["exports","consul-ui/adapters/application"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{requestForQuery(e,{dc:t,ns:n,partition:r,index:a,id:l}){return e` + GET /v1/acl/auth-methods?${{dc:t}} + + ${{ns:n,partition:r,index:a}} + `}requestForQueryRecord(e,{dc:t,ns:n,partition:r,index:a,id:l}){if(void 0===l)throw new Error("You must specify an id") +return e` + GET /v1/acl/auth-method/${l}?${{dc:t}} + + ${{ns:n,partition:r,index:a}} + `}}e.default=n})),define("consul-ui/adapters/binding-rule",["exports","consul-ui/adapters/application"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{requestForQuery(e,{dc:t,ns:n,partition:r,authmethod:a,index:l}){return e` + GET /v1/acl/binding-rules?${{dc:t,authmethod:a}} + + ${{ns:n,partition:r,index:l}} + `}}e.default=n})),define("consul-ui/adapters/coordinate",["exports","consul-ui/adapters/application"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{requestForQuery(e,{dc:t,partition:n,index:r,uri:a}){return e` + GET /v1/coordinate/nodes?${{dc:t}} + X-Request-ID: ${a} + + ${{partition:n,index:r}} + `}}e.default=n})),define("consul-ui/adapters/discovery-chain",["exports","consul-ui/adapters/application"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{requestForQueryRecord(e,{dc:t,ns:n,partition:r,index:a,id:l,uri:s}){if(void 0===l)throw new Error("You must specify an id") +return e` + GET /v1/discovery-chain/${l}?${{dc:t}} + X-Request-ID: ${s} + + ${{ns:n,partition:r,index:a}} + `}}e.default=n})),define("consul-ui/adapters/http",["exports","@ember-data/adapter","@ember-data/adapter/error"],(function(e,t,n){var r,a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const s=function(e,t,n,r={}){return e.rpc((function(e,...t){return e["requestFor"+n](...t)}),(function(e,...t){return e["respondFor"+n](...t)}),r,t)},i=function(e,t,n,r){return e.rpc((function(e,...t){return e["requestFor"+n](...t)}),(function(e,...t){return e["respondFor"+n](...t)}),r,t)} +let o=(r=Ember.inject.service("client/http"),a=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="client",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}rpc(e,t,n,r){const a=this.client,l=this.store,s=this +let i,o +const u=l.serializerFor(r),c=l.modelFor(r) +return"function"==typeof n.attributes?(i=n.attributes(),o=u.serialize(n,{})):(i=n,o=i),a.request((function(t){return e(s,t,o,i,c)})).catch((function(e){return s.error(e)})).then((function(e){return t(u,e,o,i,c)}))}error(e){if(e instanceof TypeError)throw e +const t=[{status:""+e.statusCode,title:"The backend responded with an error",detail:e.message}] +let r +try{switch(e.statusCode){case 0:r=new n.AbortError,r.errors[0].status="0" +break +case 401:r=new n.UnauthorizedError(t,"") +break +case 403:r=new n.ForbiddenError(t,"") +break +case 404:r=new n.NotFoundError(t,"") +break +case 408:r=new n.TimeoutError +break +case 409:r=new n.ConflictError(t,"") +break +case 422:r=new n.InvalidError(t) +break +default:r=e.statusCode>=500?new n.ServerError(t,""):new n.default(t,"")}}catch(a){r=a}throw r}query(e,t,n){return s(this,t.modelName,"Query",n)}queryRecord(e,t,n){return s(this,t.modelName,"QueryRecord",n)}findAll(e,t){return s(this,t.modelName,"FindAll")}createRecord(e,t,n){return i(this,t.modelName,"CreateRecord",n)}updateRecord(e,t,n){return i(this,t.modelName,"UpdateRecord",n)}deleteRecord(e,t,n){return i(this,t.modelName,"DeleteRecord",n)}},u=a.prototype,c="client",d=[r],m={configurable:!0,enumerable:!0,writable:!0,initializer:null},f={},Object.keys(m).forEach((function(e){f[e]=m[e]})),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=d.slice().reverse().reduce((function(e,t){return t(u,c,e)||e}),f),p&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(p):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(u,c,f),f=null),l=f,a) +var u,c,d,m,p,f +e.default=o})),define("consul-ui/adapters/intention",["exports","consul-ui/adapters/application"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{requestForQuery(e,{dc:t,ns:n,partition:r,filter:a,index:l,uri:s}){return e` + GET /v1/connect/intentions?${{dc:t}} + X-Request-ID: ${s}${void 0!==a?"\n X-Range: "+a:""} + + ${{partition:r,ns:"*",index:l,filter:a}} + `}requestForQueryRecord(e,{dc:t,index:n,id:r}){if(void 0===r)throw new Error("You must specify an id") +const[a,l,s,i,o,u]=r.split(":").map(decodeURIComponent) +return e` + GET /v1/connect/intentions/exact?${{source:`${a}/${l}/${s}`,destination:`${i}/${o}/${u}`,dc:t}} + Cache-Control: no-store + + ${{index:n}} + `}requestForCreateRecord(e,t,n){const r={SourceName:t.SourceName,DestinationName:t.DestinationName,SourceNS:t.SourceNS,DestinationNS:t.DestinationNS,SourcePartition:t.SourcePartition,DestinationPartition:t.DestinationPartition,SourceType:t.SourceType,Meta:t.Meta,Description:t.Description} +return Ember.get(t,"Action.length")?r.Action=t.Action:t.Permissions&&(r.Permissions=t.Permissions),e` + PUT /v1/connect/intentions/exact?${{source:`${n.SourcePartition}/${n.SourceNS}/${n.SourceName}`,destination:`${n.DestinationPartition}/${n.DestinationNS}/${n.DestinationName}`,dc:n.Datacenter}} + + ${r} + `}requestForUpdateRecord(e,t,n){return delete t.DestinationName,delete t.DestinationNS,delete t.DestinationPartition,this.requestForCreateRecord(...arguments)}requestForDeleteRecord(e,t,n){return e` + DELETE /v1/connect/intentions/exact?${{source:`${n.SourcePartition}/${n.SourceNS}/${n.SourceName}`,destination:`${n.DestinationPartition}/${n.DestinationNS}/${n.DestinationName}`,dc:n.Datacenter}} + `}}e.default=n})),define("consul-ui/adapters/kv",["exports","consul-ui/adapters/application","consul-ui/utils/isFolder","consul-ui/utils/keyToArray","consul-ui/models/kv"],(function(e,t,n,r,a){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class l extends t.default{async requestForQuery(e,{dc:t,ns:n,partition:a,index:l,id:s,separator:i}){if(void 0===s)throw new Error("You must specify an id") +const o=await(e` + GET /v1/kv/${(0,r.default)(s)}?${{keys:null,dc:t,separator:i}} + + ${{ns:n,partition:a,index:l}} + `) +return await o(e=>delete e["x-consul-index"]),o}async requestForQueryRecord(e,{dc:t,ns:n,partition:a,index:l,id:s}){if(void 0===s)throw new Error("You must specify an id") +const i=await(e` + GET /v1/kv/${(0,r.default)(s)}?${{dc:t}} + + ${{ns:n,partition:a,index:l}} + `) +return await i(e=>delete e["x-consul-index"]),i}requestForCreateRecord(e,t,n){const l={dc:n.Datacenter,ns:n.Namespace,partition:n.Partition} +return e` + PUT /v1/kv/${(0,r.default)(n[a.SLUG_KEY])}?${l} + Content-Type: text/plain; charset=utf-8 + + ${t} + `}requestForUpdateRecord(e,t,n){const l={dc:n.Datacenter,ns:n.Namespace,partition:n.Partition,flags:n.Flags} +return e` + PUT /v1/kv/${(0,r.default)(n[a.SLUG_KEY])}?${l} + Content-Type: text/plain; charset=utf-8 + + ${t} + `}requestForDeleteRecord(e,t,l){let s;(0,n.default)(l[a.SLUG_KEY])&&(s=null) +const i={dc:l.Datacenter,ns:l.Namespace,partition:l.Partition,recurse:s} +return e` + DELETE /v1/kv/${(0,r.default)(l[a.SLUG_KEY])}?${i} + `}}e.default=l})),define("consul-ui/adapters/node",["exports","consul-ui/adapters/application"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{requestForQuery(e,{dc:t,ns:n,partition:r,index:a,id:l,uri:s}){return e` + GET /v1/internal/ui/nodes?${{dc:t}} + X-Request-ID: ${s} + + ${{ns:n,partition:r,index:a}} + `}requestForQueryRecord(e,{dc:t,ns:n,partition:r,index:a,id:l,uri:s}){if(void 0===l)throw new Error("You must specify an id") +return e` + GET /v1/internal/ui/node/${l}?${{dc:t}} + X-Request-ID: ${s} + + ${{ns:n,partition:r,index:a}} + `}requestForQueryLeader(e,{dc:t,uri:n}){return e` + GET /v1/status/leader?${{dc:t}} + X-Request-ID: ${n} + Refresh: 30 + `}queryLeader(e,t,n,r){return this.rpc((function(e,t,n,r){return e.requestForQueryLeader(t,n,r)}),(function(e,t,n,r){return e.respondForQueryLeader(t,n,r)}),r,t.modelName)}}e.default=n})) +define("consul-ui/adapters/nspace",["exports","consul-ui/adapters/application","consul-ui/models/nspace"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class r extends t.default{requestForQuery(e,{dc:t,partition:n,index:r,uri:a}){return e` + GET /v1/namespaces?${{dc:t}} + X-Request-ID: ${a} + + ${{partition:n,index:r}} + `}requestForQueryRecord(e,{dc:t,partition:n,index:r,id:a}){if(void 0===a)throw new Error("You must specify an name") +return e` + GET /v1/namespace/${a}?${{dc:t}} + + ${{partition:n,index:r}} + `}requestForCreateRecord(e,t,r){return e` + PUT /v1/namespace/${r[n.SLUG_KEY]}?${{dc:r.Datacenter,partition:r.Partition}} + + ${{Name:t.Name,Description:t.Description,ACLs:{PolicyDefaults:t.ACLs.PolicyDefaults.map(e=>({ID:e.ID})),RoleDefaults:t.ACLs.RoleDefaults.map(e=>({ID:e.ID}))}}} + `}requestForUpdateRecord(e,t,r){return e` + PUT /v1/namespace/${r[n.SLUG_KEY]}?${{dc:r.Datacenter,partition:r.Partition}} + + ${{Description:t.Description,ACLs:{PolicyDefaults:t.ACLs.PolicyDefaults.map(e=>({ID:e.ID})),RoleDefaults:t.ACLs.RoleDefaults.map(e=>({ID:e.ID}))}}} + `}requestForDeleteRecord(e,t,r){return e` + DELETE /v1/namespace/${r[n.SLUG_KEY]}?${{dc:r.Datacenter,partition:r.Partition}} + `}}e.default=r})),define("consul-ui/adapters/oidc-provider",["exports","consul-ui/adapters/application"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let l=(n=Ember.inject.service("env"),r=class extends t.default{constructor(...e){var t,n,r,l +super(...e),t=this,n="env",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}requestForQuery(e,{dc:t,ns:n,partition:r,index:a,uri:l}){return e` + GET /v1/internal/ui/oidc-auth-methods?${{dc:t}} + X-Request-ID: ${l} + + ${{ns:n,partition:r,index:a}} + `}requestForQueryRecord(e,{dc:t,ns:n,partition:r,id:a}){if(void 0===a)throw new Error("You must specify an id") +return e` + POST /v1/acl/oidc/auth-url?${{dc:t,ns:n,partition:r}} + Cache-Control: no-store + + ${{AuthMethod:a,RedirectURI:this.env.var("CONSUL_BASE_UI_URL")+"/oidc/callback"}} + `}requestForAuthorize(e,{dc:t,ns:n,partition:r,id:a,code:l,state:s}){if(void 0===a)throw new Error("You must specify an id") +if(void 0===l)throw new Error("You must specify an code") +if(void 0===s)throw new Error("You must specify an state") +return e` + POST /v1/acl/oidc/callback?${{dc:t,ns:n,partition:r}} + Cache-Control: no-store + + ${{AuthMethod:a,Code:l,State:s}} + `}requestForLogout(e,{id:t}){if(void 0===t)throw new Error("You must specify an id") +return e` + POST /v1/acl/logout + Cache-Control: no-store + X-Consul-Token: ${t} + `}authorize(e,t,n,r){return this.rpc((function(e,t,n,r){return e.requestForAuthorize(t,n,r)}),(function(e,t,n,r){return e.respondForAuthorize(t,n,r)}),r,t.modelName)}logout(e,t,n,r){return this.rpc((function(e,t,n,r){return e.requestForLogout(t,n,r)}),(function(){return{}}),r,t.modelName)}},s=r.prototype,i="env",o=[n],u={configurable:!0,enumerable:!0,writable:!0,initializer:null},d={},Object.keys(u).forEach((function(e){d[e]=u[e]})),d.enumerable=!!d.enumerable,d.configurable=!!d.configurable,("value"in d||d.initializer)&&(d.writable=!0),d=o.slice().reverse().reduce((function(e,t){return t(s,i,e)||e}),d),c&&void 0!==d.initializer&&(d.value=d.initializer?d.initializer.call(c):void 0,d.initializer=void 0),void 0===d.initializer&&(Object.defineProperty(s,i,d),d=null),a=d,r) +var s,i,o,u,c,d +e.default=l})),define("consul-ui/adapters/partition",["exports","consul-ui/adapters/application","consul-ui/models/partition"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class r extends t.default{async requestForQuery(e,{ns:t,dc:n,index:r}){const a=await(e` + GET /v1/partitions?${{dc:n}} + + ${{index:r}} + `) +return await a(e=>delete e["x-consul-index"]),a}async requestForQueryRecord(e,{ns:t,dc:n,index:r,id:a}){if(void 0===a)throw new Error("You must specify an id") +const l=await(e` + GET /v1/partition/${a}?${{dc:n}} + + ${{index:r}} + `) +return await l(e=>delete e["x-consul-index"]),l}async requestForCreateRecord(e,t,r){return e` + PUT /v1/partition/${r[n.SLUG_KEY]}?${{dc:r.Datacenter}} + + ${{Name:t.Name,Description:t.Description}} + `}async requestForUpdateRecord(e,t,r){return e` + PUT /v1/partition/${r[n.SLUG_KEY]}?${{dc:r.Datacenter}} + + ${{Description:t.Description}} + `}async requestForDeleteRecord(e,t,r){return e` + DELETE /v1/partition/${r[n.SLUG_KEY]}?${{dc:r.Datacenter}} + `}}e.default=r})),define("consul-ui/adapters/permission",["exports","consul-ui/adapters/application"],(function(e,t){var n,r,a,l,s +function i(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;to(o({},e),{},{Namespace:n}))),this.env.var("CONSUL_PARTITIONS_ENABLED")&&(a=a.map(e=>o(o({},e),{},{Partition:r}))),e` + POST /v1/internal/acl/authorize?${{dc:t}} + + ${a} + `}authorize(e,t,n,r){return this.rpc(async(e,t,n)=>{const r=this.env.var("CONSUL_NSPACES_ENABLED"),a=this.env.var("CONSUL_PARTITIONS_ENABLED") +if(r||a){const e=await this.settings.findBySlug("token") +r&&(void 0!==n.ns&&0!==n.ns.length||(n.ns=e.Namespace)),a&&(void 0!==n.partition&&0!==n.partition.length||(n.partition=e.Partition))}return e.requestForAuthorize(t,n)},(function(e,t){return t((function(e,t){return t}))}),r,t.modelName)}},l=d(a.prototype,"env",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=d(a.prototype,"settings",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a) +e.default=m})),define("consul-ui/adapters/policy",["exports","consul-ui/adapters/application","consul-ui/models/policy"],(function(e,t,n){function r(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;tdelete e["x-consul-index"]),s}requestForCreateRecord(e,t,n){return e` + PUT /v1/acl/token?${i(i({},this.formatDatacenter(n.Datacenter)),{},{ns:n.Namespace,partition:n.Partition})} + + ${{Description:t.Description,Policies:t.Policies,Roles:t.Roles,ServiceIdentities:t.ServiceIdentities,NodeIdentities:t.NodeIdentities,Local:t.Local}} + `}requestForUpdateRecord(e,t,r){if(void 0!==r.Rules)return e` + PUT /v1/acl/update?${this.formatDatacenter(r.Datacenter)} + + ${t} + ` +const a=i(i({},this.formatDatacenter(r.Datacenter)),{},{ns:r.Namespace,partition:r.Partition}) +return e` + PUT /v1/acl/token/${r[n.SLUG_KEY]}?${a} + + ${{Description:t.Description,Policies:t.Policies,Roles:t.Roles,ServiceIdentities:t.ServiceIdentities,NodeIdentities:t.NodeIdentities,Local:t.Local}} + `}requestForDeleteRecord(e,t,r){const a={dc:r.Datacenter,ns:r.Namespace,partition:r.Partition} +return e` + DELETE /v1/acl/token/${r[n.SLUG_KEY]}?${a} + `}requestForSelf(e,t,{dc:n,index:r,secret:a}){return e` + GET /v1/acl/token/self?${{dc:n}} + X-Consul-Token: ${a} + Cache-Control: no-store + + ${{index:r}} + `}requestForCloneRecord(e,t,r){const a=r[n.SLUG_KEY] +if(void 0===a)throw new Error("You must specify an id") +return e` + PUT /v1/acl/token/${a}/clone?${{dc:r.Datacenter,ns:r.Namespace,partition:r.Partition}} + `}self(e,t,n,r){return this.rpc((function(e,t,n,r){return e.requestForSelf(t,n,r)}),(function(e,t,n,r){return e.respondForSelf(t,n,r)}),r,t.modelName)}clone(e,t,n,r){return this.rpc((function(e,t,n,r){return e.requestForCloneRecord(t,n,r)}),(e,t,n,r)=>{const a={dc:r.Datacenter,ns:r.Namespace,partition:r.Partition} +return e.respondForQueryRecord(t,a)},r,t.modelName)}},c=a.prototype,d="store",m=[r],p={configurable:!0,enumerable:!0,writable:!0,initializer:null},b={},Object.keys(p).forEach((function(e){b[e]=p[e]})),b.enumerable=!!b.enumerable,b.configurable=!!b.configurable,("value"in b||b.initializer)&&(b.writable=!0),b=m.slice().reverse().reduce((function(e,t){return t(c,d,e)||e}),b),f&&void 0!==b.initializer&&(b.value=b.initializer?b.initializer.call(f):void 0,b.initializer=void 0),void 0===b.initializer&&(Object.defineProperty(c,d,b),b=null),l=b,a) +var c,d,m,p,f,b +e.default=u})),define("consul-ui/adapters/topology",["exports","consul-ui/adapters/application"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{requestForQueryRecord(e,{dc:t,ns:n,partition:r,kind:a,index:l,id:s,uri:i}){if(void 0===s)throw new Error("You must specify an id") +return e` + GET /v1/internal/ui/service-topology/${s}?${{dc:t,kind:a}} + X-Request-ID: ${i} + + ${{ns:n,partition:r,index:l}} + `}}e.default=n})),define("consul-ui/app",["exports","ember-resolver","ember-load-initializers","consul-ui/config/environment"],(function(e,t,n,r){function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class l extends Ember.Application{constructor(...e){super(...e),a(this,"modulePrefix",r.default.modulePrefix),a(this,"podModulePrefix",r.default.podModulePrefix),a(this,"Resolver",t.default)}}e.default=l,(0,n.default)(l,r.default.modulePrefix)})),define("consul-ui/component-managers/glimmer",["exports","@glimmer/component/-private/ember-component-manager"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/-dynamic-element-alt",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Component.extend() +e.default=t})),define("consul-ui/components/-dynamic-element",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Component.extend() +e.default=t})),define("consul-ui/components/action/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"ZOGNH+Kw",block:'{"symbols":["@tabindex","&attrs","@type","@onclick","&default","@href","@external","@for"],"statements":[[6,[37,3],[[32,8]],null,[["default","else"],[{"statements":[[11,"label"],[16,"for",[32,8]],[17,2],[12],[18,5,null],[13]],"parameters":[]},{"statements":[[6,[37,3],[[32,6]],null,[["default","else"],[{"statements":[[6,[37,3],[[32,7]],null,[["default","else"],[{"statements":[[11,"a"],[16,6,[32,6]],[24,"target","_blank"],[24,"rel","noopener noreferrer"],[17,2],[12],[18,5,null],[13]],"parameters":[]},{"statements":[[11,"a"],[16,6,[32,6]],[17,2],[12],[18,5,null],[13]],"parameters":[]}]]]],"parameters":[]},{"statements":[[11,"button"],[16,"tabindex",[32,1]],[17,2],[16,4,[30,[36,0],[[32,3],"button"],null]],[4,[38,2],["click",[30,[36,1],[[32,4]],null]],null],[12],[18,5,null],[13]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["or","optional","on","if"]}',meta:{moduleName:"consul-ui/components/action/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/anonymous/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"U7xNhMne",block:'{"symbols":["&default"],"statements":[[18,1,null]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/anonymous/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/app-error/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"dYVazy5r",block:'{"symbols":["@error","@login"],"statements":[[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n Error "],[1,[32,1,["status"]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"error-state",[],[["@error","@login"],[[32,1],[30,[36,1],[[30,[36,0],[[32,1,["status"]],"403"],null],[32,2]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["eq","if"]}',meta:{moduleName:"consul-ui/components/app-error/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/app-view/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"xz4Gi6kv",block:'{"symbols":["&attrs","&default"],"statements":[[11,"div"],[24,0,"app-view"],[17,1],[12],[2,"\\n "],[18,2,null],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"nav"],[14,"aria-label","Breadcrumb"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],null,[["class"],["with-breadcrumbs"]]]],[2,"\\n "],[18,2,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"title"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[18,2,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[10,"div"],[14,0,"actions"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"portal-target",[],[["@name"],["app-view-actions"]],null],[2,"\\n "],[18,2,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"yield-slot",[],[["@name"],["nav"]],[["default"],[{"statements":[[2,"\\n "],[18,2,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"yield-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n "],[10,"input"],[14,1,"toolbar-toggle"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[18,2,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[18,2,null]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["document-attrs"]}',meta:{moduleName:"consul-ui/components/app-view/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:""})) +e.default=r})),define("consul-ui/components/app/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i +function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const u=Ember.HTMLBars.template({id:"/jM8p8BN",block:'{"symbols":["exported","&attrs","&default"],"statements":[[6,[37,10],[[30,[36,6],null,[["main","Notification"],[[30,[36,1],[[35,3],"-main"],null],[30,[36,9],["app/notification"],null]]]]],null,[["default"],[{"statements":[[2,"\\n"],[11,"div"],[24,0,"app"],[17,2],[12],[2,"\\n\\n "],[11,"div"],[24,0,"skip-links"],[4,[38,0],["click",[32,0,["focus"]]],null],[12],[2,"\\n "],[8,"portal-target",[],[["@name","@multiple"],["app-before-skip-links",true]],[["default"],[{"statements":[],"parameters":[]}]]],[2,"\\n "],[10,"a"],[15,6,[30,[36,1],["#",[32,1,["main"]]],null]],[12],[1,[30,[36,2],["components.app.skip_to_content"],null]],[13],[2,"\\n"],[2," "],[8,"portal-target",[],[["@name","@multiple"],["app-after-skip-links",true]],[["default"],[{"statements":[],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n\\n "],[8,"modal-layer",[],[[],[]],null],[2,"\\n\\n "],[10,"input"],[15,1,[30,[36,1],[[35,3],"-main-nav-toggle"],null]],[14,4,"checkbox"],[12],[13],[2,"\\n "],[10,"header"],[14,"role","banner"],[12],[2,"\\n "],[11,"label"],[24,"tabindex","0"],[16,"for",[30,[36,1],[[35,3],"-main-nav-toggle"],null]],[16,"aria-label",[30,[36,2],["components.app.toggle_menu"],null]],[4,[38,0],["keypress",[32,0,["keypressClick"]]],null],[4,[38,0],["mouseup",[32,0,["unfocus"]]],null],[12],[13],[2,"\\n "],[18,3,[[30,[36,4],["home-nav"],null],[32,1]]],[2,"\\n "],[10,"div"],[12],[2,"\\n"],[2," "],[11,"nav"],[16,"aria-label",[30,[36,2],["components.app.main"],null]],[16,0,[30,[36,5],[[32,0,["navInViewport"]],"in-viewport"],null]],[4,[38,8],null,[["onEnter","onExit","viewportTolerance"],[[30,[36,7],[[32,0],"navInViewport",true],null],[30,[36,7],[[32,0],"navInViewport",false],null],[30,[36,6],null,[["top","bottom","left","right"],[-10,-10,-10,-10]]]]]],[12],[2,"\\n "],[18,3,[[30,[36,4],["main-nav"],null],[32,1]]],[2,"\\n "],[13],[2,"\\n"],[2," "],[10,"nav"],[15,"aria-label",[30,[36,2],["components.app.complementary"],null]],[12],[2,"\\n "],[18,3,[[30,[36,4],["complementary-nav"],null],[32,1]]],[2,"\\n "],[13],[2,"\\n\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"main"],[15,1,[30,[36,1],[[35,3],"-main"],null]],[12],[2,"\\n "],[10,"div"],[14,0,"notifications"],[12],[2,"\\n "],[18,3,[[30,[36,4],["notifications"],null],[32,1]]],[2,"\\n "],[8,"portal-target",[],[["@name","@multiple"],["app-notifications",true]],[["default"],[{"statements":[],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[18,3,[[30,[36,4],["main"],null],[32,1]]],[2,"\\n "],[13],[2,"\\n "],[10,"footer"],[14,"role","contentinfo"],[12],[2,"\\n "],[18,3,[[30,[36,4],["content-info"],null],[32,1]]],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["on","concat","t","guid","-named-block-invocation","if","hash","set","in-viewport","component","let"]}',meta:{moduleName:"consul-ui/components/app/index.hbs"}}) +let c=(n=Ember.inject.service("dom"),r=Ember._action,a=Ember._action,l=Ember._action,s=class extends t.default{constructor(e,t){var n,r,a,l +super(...arguments),n=this,r="dom",l=this,(a=i)&&Object.defineProperty(n,r,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0}),this.guid=this.dom.guid(this)}keypressClick(e){e.target.dispatchEvent(new MouseEvent("click"))}focus(e){const t=e.target.getAttribute("href") +t.startsWith("#")&&(e.preventDefault(),this.dom.focus(t))}unfocus(e){e.target.blur()}},i=o(s.prototype,"dom",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(s.prototype,"keypressClick",[r],Object.getOwnPropertyDescriptor(s.prototype,"keypressClick"),s.prototype),o(s.prototype,"focus",[a],Object.getOwnPropertyDescriptor(s.prototype,"focus"),s.prototype),o(s.prototype,"unfocus",[l],Object.getOwnPropertyDescriptor(s.prototype,"unfocus"),s.prototype),s) +e.default=c,Ember._setComponentTemplate(u,c)})),define("consul-ui/components/app/notification/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"litSWzOO",block:'{"symbols":["&attrs","@delay","@sticky","&default"],"statements":[[11,"div"],[24,0,"app-notification"],[17,1],[4,[38,2],[[30,[36,1],[[30,[36,1],["opacity","1"],null],[30,[36,1],["transition-delay",[30,[36,0],[[32,2],"ms"],null]],null]],null]],null],[4,[38,2],[[30,[36,1],[[30,[36,1],["opacity",[30,[36,3],[[32,3],"1","0"],null]],null]],null]],[["delay"],[0]]],[12],[2,"\\n "],[18,4,null],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["concat","array","style","if"]}',meta:{moduleName:"consul-ui/components/app/notification/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/aria-menu/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"IOWpioIP",block:'{"symbols":["&default"],"statements":[[18,1,[[30,[36,5],[[32,0],"change"],null],[30,[36,5],[[32,0],"keypress"],null],[30,[36,5],[[32,0],"keypressClick"],null],[30,[36,4],null,[["labelledBy","controls","expanded"],[[30,[36,3],["component-aria-menu-trigger-",[35,2]],null],[30,[36,3],["component-aria-menu-menu-",[35,2]],null],[30,[36,1],[[35,0],"true",[29]],null]]]]]]],"hasEval":false,"upvars":["expanded","if","guid","concat","hash","action"]}',meta:{moduleName:"consul-ui/components/aria-menu/index.hbs"}}),n=13,r=32,a=38,l=40,s={vertical:{[l]:function(e,t=-1){return(t+1)%e.length},[a]:function(e,t=0){return 0===t?e.length-1:t-1},36:function(){return 0},35:function(e){return e.length-1}},horizontal:{}} +var i=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",dom:Ember.inject.service("dom"),guid:"",expanded:!1,orientation:"vertical",keyboardAccess:!0,init:function(){this._super(...arguments),Ember.set(this,"guid",this.dom.guid(this)),this._listeners=this.dom.listeners(),this._routelisteners=this.dom.listeners()},didInsertElement:function(){this.$menu=this.dom.element("#component-aria-menu-menu-"+this.guid) +const e=this.$menu.getAttribute("aria-labelledby") +this.$trigger=this.dom.element("#"+e)},willDestroyElement:function(){this._super(...arguments),this._listeners.remove(),this._routelisteners.remove()},actions:{keypressClick:function(e){e.target.dispatchEvent(new MouseEvent("click"))},keypress:function(e){if(![n,r,a,l].includes(e.keyCode))return +e.stopPropagation() +const t=[...this.dom.elements('[role^="menuitem"]',this.$menu)] +if(e.keyCode===n||e.keyCode===r){let e=this.expanded?void 0:t[0] +Ember.run.next(()=>{e=this.expanded?e:this.$trigger,void 0!==e&&e.focus()})}if(void 0===s[this.orientation][e.keyCode])return +e.preventDefault() +const i=this.dom.element('[role^="menuitem"]:focus',this.$menu) +let o +i&&(o=t.findIndex((function(e){return e===i}))) +t[s[this.orientation][e.keyCode](t,o)].focus()},change:function(e){e.target.checked?this.actions.open.apply(this,[e]):this.actions.close.apply(this,[e])},close:function(){this._listeners.remove(),Ember.set(this,"expanded",!1),Ember.run.next(()=>{this.$trigger.removeAttribute("tabindex")})},open:function(){Ember.set(this,"expanded",!0) +0===[...this.dom.elements('[role^="menuitem"]',this.$menu)].length&&this.dom.element('input[type="checkbox"]',this.$menu.parentElement).dispatchEvent(new MouseEvent("click")),this.$trigger.setAttribute("tabindex","-1"),this._listeners.add(this.dom.document(),{keydown:e=>{27===e.keyCode&&this.$trigger.focus(),9!==e.keyCode&&27!==e.keyCode?this.keyboardAccess&&this.actions.keypress.apply(this,[e]):this.$trigger.dispatchEvent(new MouseEvent("click"))}})}}})) +e.default=i})),define("consul-ui/components/auth-dialog/chart.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"auth-dialog",initial:"idle",on:{CHANGE:[{target:"authorized",cond:"hasToken",actions:["login"]},{target:"unauthorized",actions:["logout"]}]},states:{idle:{on:{CHANGE:[{target:"authorized",cond:"hasToken"},{target:"unauthorized"}]}},unauthorized:{},authorized:{}}}})),define("consul-ui/components/auth-dialog/index",["exports","@glimmer/component","consul-ui/components/auth-dialog/chart.xstate"],(function(e,t,n){var r,a,l,s,i,o +function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const c=Ember.HTMLBars.template({id:"h+KHm0qM",block:'{"symbols":["State","Guard","Action","dispatch","state","sink","api","&default","@src","@sink"],"statements":[[8,"state-chart",[],[["@src"],[[34,1]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,[32,2],[],[["@name","@cond"],["hasToken",[30,[36,2],[[32,0],"hasToken"],null]]],null],[2,"\\n "],[8,[32,3],[],[["@name","@exec"],["login",[30,[36,2],[[32,0],"login"],null]]],null],[2,"\\n "],[8,[32,3],[],[["@name","@exec"],["logout",[30,[36,2],[[32,0],"logout"],null]]],null],[2,"\\n\\n"],[2," "],[8,"data-source",[],[["@src","@onchange"],[[32,9],[30,[36,6],[[30,[36,2],[[32,0],[30,[36,4],[[35,5]],null]],[["value"],["data"]]],[30,[36,2],[[32,0],[32,4],"CHANGE"],null],[30,[36,2],[[32,0],[30,[36,4],[[35,3]],null]],[["value"],["data"]]]],null]]],null],[2,"\\n"],[2," "],[8,"data-sink",[],[["@sink"],[[32,10]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[30,[36,7],null,[["login","logout","token"],[[30,[36,2],[[32,0],[32,6,["open"]]],null],[30,[36,2],[[32,0],[32,6,["open"]],null],null],[35,5]]]]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,1],[],[["@matches"],["authorized"]],[["default"],[{"statements":[[2,"\\n "],[18,8,[[30,[36,0],["authorized"],null],[32,7]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["unauthorized"]],[["default"],[{"statements":[[2,"\\n "],[18,8,[[30,[36,0],["unauthorized"],null],[32,7]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n"]],"parameters":[7]}]]],[2," "]],"parameters":[6]}]]],[2,"\\n"]],"parameters":[1,2,3,4,5]}]]],[2,"\\n"]],"hasEval":false,"upvars":["-named-block-invocation","chart","action","previousToken","mut","token","queue","hash","let"]}',meta:{moduleName:"consul-ui/components/auth-dialog/index.hbs"}}) +let d=(r=Ember.inject.service("repository/oidc-provider"),a=Ember._action,l=Ember._action,s=Ember._action,i=class extends t.default{constructor(){var e,t,r,a +super(...arguments),e=this,t="repo",a=this,(r=o)&&Object.defineProperty(e,t,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),this.chart=n.default}hasToken(){return void 0!==this.token.AccessorID}login(){let e=Ember.get(this,"previousToken.AccessorID"),t=Ember.get(this,"token.AccessorID") +null===e&&(e=Ember.get(this,"previousToken.SecretID")),null===t&&(t=Ember.get(this,"token.SecretID")) +let n="authorize" +void 0!==e&&e!==t&&(n="use"),this.args.onchange({data:Ember.get(this,"token"),type:n})}logout(){void 0!==Ember.get(this,"previousToken.AuthMethod")&&this.repo.logout(Ember.get(this,"previousToken.SecretID")),this.previousToken=null,this.args.onchange({data:null,type:"logout"})}},o=u(i.prototype,"repo",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u(i.prototype,"hasToken",[a],Object.getOwnPropertyDescriptor(i.prototype,"hasToken"),i.prototype),u(i.prototype,"login",[l],Object.getOwnPropertyDescriptor(i.prototype,"login"),i.prototype),u(i.prototype,"logout",[s],Object.getOwnPropertyDescriptor(i.prototype,"logout"),i.prototype),i) +e.default=d,Ember._setComponentTemplate(c,d)})),define("consul-ui/components/auth-form/chart.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"auth-form",initial:"idle",on:{RESET:[{target:"idle"}],ERROR:[{target:"error"}]},states:{idle:{entry:["clearError"],on:{SUBMIT:[{target:"loading",cond:"hasValue"},{target:"error"}]}},loading:{},error:{exit:["clearError"],on:{TYPING:[{target:"idle"}],SUBMIT:[{target:"loading",cond:"hasValue"},{target:"error"}]}}}}})),define("consul-ui/components/auth-form/index",["exports","@glimmer/component","consul-ui/components/auth-form/chart.xstate","consul-ui/components/auth-form/tabs.xstate"],(function(e,t,n,r){var a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const o=Ember.HTMLBars.template({id:"3tojTMnY",block:'{"symbols":["State","Guard","ChartAction","dispatch","state","chart","exported","TabState","IgnoredGuard","IgnoredAction","tabDispatch","tabState","notice","&attrs","&default","@dc","@nspace","@partition","@onsubmit"],"statements":[[8,"state-chart",[],[["@src"],[[32,0,["chart"]]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,17],[[30,[36,3],null,[["State","Guard","Action","dispatch","state"],[[32,1],[32,2],[32,3],[32,4],[32,5]]]]],null,[["default"],[{"statements":[[6,[37,17],[[30,[36,3],null,[["reset","focus","disabled","error","submit"],[[30,[36,5],[[32,0],[32,4],"RESET"],null],[32,0,["focus"]],[30,[36,2],[[32,5],"loading"],null],[30,[36,6],[[30,[36,5],[[32,0],[32,4],"ERROR"],null],[30,[36,5],[[32,0],[30,[36,7],[[32,0,["error"]]],null]],[["value"],["error.errors.firstObject"]]]],null],[30,[36,6],[[30,[36,5],[[32,0],[30,[36,7],[[32,0,["value"]]],null]],null],[30,[36,5],[[32,0],[32,4],"SUBMIT"],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,2],[],[["@name","@cond"],["hasValue",[32,0,["hasValue"]]]],null],[2,"\\n"],[2," "],[8,[32,6,["Action"]],[],[["@name","@exec"],["clearError",[30,[36,6],[[30,[36,5],[[32,0],[30,[36,7],[[32,0,["error"]]],null],[29]],null],[30,[36,5],[[32,0],[30,[36,7],[[32,0,["secret"]]],null],[29]],null]],null]]],null],[2,"\\n "],[11,"div"],[24,0,"auth-form"],[17,14],[12],[2,"\\n"],[8,"state-chart",[],[["@src"],[[32,0,["tabsChart"]]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,8],["use SSO"],null]],null,[["default"],[{"statements":[[2," "],[8,"tab-nav",[],[["@items","@onclick"],[[30,[36,4],[[30,[36,3],null,[["label","selected"],["Token",[30,[36,2],[[32,12],"token"],null]]]],[30,[36,3],null,[["label","selected"],["SSO",[30,[36,2],[[32,12],"sso"],null]]]]],null],[30,[36,6],[[30,[36,5],[[32,0],[32,11]],null],[30,[36,5],[[32,0],[32,4],"RESET"],null]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,[32,1],[],[["@matches"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[32,0,["error","status"]]],null,[["default"],[{"statements":[[2," "],[8,"notice",[[24,"role","alert"]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,1],[[32,0,["value","Name"]]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,0],[[32,0,["error","status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"strong"],[12],[2,"Consul login failed"],[13],[10,"br"],[12],[13],[2,"\\n We received a token from your OIDC provider but could not log in to Consul with it.\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],[[32,0,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"strong"],[12],[2,"Could not log in to provider"],[13],[10,"br"],[12],[13],[2,"\\n The OIDC provider has rejected this access token. Please have an administrator check your auth method configuration.\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],[[32,0,["error","status"]],"499"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"strong"],[12],[2,"SSO log in window closed"],[13],[10,"br"],[12],[13],[2,"\\n The OIDC provider window was closed. Please try again.\\n"]],"parameters":[]},{"statements":[[2," "],[10,"strong"],[12],[2,"Error"],[13],[10,"br"],[12],[13],[2,"\\n "],[1,[32,0,["error","detail"]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],[[32,0,["error","status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"strong"],[12],[2,"Invalid token"],[13],[10,"br"],[12],[13],[2,"\\n The token entered does not exist. Please enter a valid token to log in.\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],[[32,0,["error","status"]],"404"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"strong"],[12],[2,"No providers"],[13],[10,"br"],[12],[13],[2,"\\n No SSO providers are configured for that Partition.\\n"]],"parameters":[]},{"statements":[[2," "],[10,"strong"],[12],[2,"Error"],[13],[10,"br"],[12],[13],[2,"\\n "],[1,[32,0,["error","detail"]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"],[8,[32,8],[],[["@matches"],["token"]],[["default"],[{"statements":[[2,"\\n "],[10,"form"],[15,"onsubmit",[30,[36,5],[[32,0],[32,4],"SUBMIT"],null]],[12],[2,"\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"label"],[15,0,[30,[36,11],["type-password",[30,[36,1],[[30,[36,10],[[30,[36,2],[[32,5],"error"],null],[30,[36,9],[[32,0,["error","status"]]],null]],null]," has-error"],null]],null]],[12],[2,"\\n "],[10,"span"],[12],[2,"Log in with a token"],[13],[2,"\\n\\n"],[2," "],[11,"input"],[16,"disabled",[30,[36,2],[[32,5],"loading"],null]],[24,3,"auth[SecretID]"],[24,"placeholder","SecretID"],[16,2,[32,0,["secret"]]],[16,"oninput",[30,[36,6],[[30,[36,5],[[32,0],[30,[36,7],[[32,0,["secret"]]],null]],[["value"],["target.value"]]],[30,[36,5],[[32,0],[30,[36,7],[[32,0,["value"]]],null]],[["value"],["target.value"]]],[30,[36,5],[[32,0],[32,4],"TYPING"],null]],null]],[16,4,[30,[36,1],[[30,[36,0],[[30,[36,12],["environment"],null],"testing"],null],"text","password"],null]],[4,[38,14],[[30,[36,13],[[32,0],"input"],null]],null],[12],[13],[2,"\\n "],[8,[32,1],[],[["@matches"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,9],[[32,0,["error","status"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"strong"],[14,"role","alert"],[12],[2,"\\n Please enter your secret\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"action",[[16,"disabled",[30,[36,2],[[32,5],"loading"],null]]],[["@type"],["submit"]],[["default"],[{"statements":[[2,"\\n Log in\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n\\n"],[18,15,[[30,[36,15],[[32,7],[30,[36,3],null,[["Method"],[[32,8]]]]],null]]],[2,"\\n\\n "],[10,"em"],[12],[2,"\\n Contact your administrator for login credentials.\\n "],[13],[2,"\\n"]],"parameters":[8,9,10,11,12]}]]],[2,"\\n\\n\\n "],[13],[2,"\\n "],[8,[32,1],[],[["@matches"],["loading"]],[["default"],[{"statements":[[2,"\\n "],[8,"token-source",[],[["@dc","@nspace","@partition","@type","@value","@onchange","@onerror"],[[32,16],[30,[36,16],[[32,0,["value","Namespace"]],[32,17]],null],[30,[36,16],[[32,0,["value","Partition"]],[32,18]],null],[30,[36,1],[[32,0,["value","Name"]],"oidc","secret"],null],[32,0,["value"]],[30,[36,6],[[30,[36,5],[[32,0],[32,4],"RESET"],null],[32,19]],null],[30,[36,6],[[30,[36,5],[[32,0],[30,[36,7],[[32,0,["error"]]],null]],[["value"],["error.errors.firstObject"]]],[30,[36,5],[[32,0],[32,4],"ERROR"],null]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[7]}]]]],"parameters":[6]}]]]],"parameters":[1,2,3,4,5]}]]]],"hasEval":false,"upvars":["eq","if","state-matches","hash","array","action","queue","mut","can","not","and","concat","env","set","did-insert","assign","or","let"]}',meta:{moduleName:"consul-ui/components/auth-form/index.hbs"}}) +let u=(a=Ember._action,l=Ember._action,i((s=class extends t.default{constructor(){super(...arguments),this.chart=n.default,this.tabsChart=r.default}hasValue(e,t,n){return""!==this.value&&void 0!==this.value}focus(){this.input.focus()}}).prototype,"hasValue",[a],Object.getOwnPropertyDescriptor(s.prototype,"hasValue"),s.prototype),i(s.prototype,"focus",[l],Object.getOwnPropertyDescriptor(s.prototype,"focus"),s.prototype),s) +e.default=u,Ember._setComponentTemplate(o,u)})),define("consul-ui/components/auth-form/tabs.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"auth-form-tabs",initial:"token",on:{TOKEN:[{target:"token"}],SSO:[{target:"sso"}]},states:{token:{},sso:{}}}})),define("consul-ui/components/auth-profile/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"NskkZ4lP",block:'{"symbols":["&attrs","@item"],"statements":[[11,"dl"],[24,0,"auth-profile"],[17,1],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[10,"span"],[12],[2,"My ACL Token"],[13],[10,"br"],[12],[13],[2,"\\n AccessorID\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,1],[[32,2,["AccessorID"]],[30,[36,0],[[32,2,["AccessorID","length"]],8],null]],null]],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["sub","string-substring"]}',meta:{moduleName:"consul-ui/components/auth-profile/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/basic-dropdown-content",["exports","ember-basic-dropdown/components/basic-dropdown-content"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})) +define("consul-ui/components/basic-dropdown-optional-tag",["exports","ember-basic-dropdown/components/basic-dropdown-optional-tag"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/basic-dropdown-trigger",["exports","ember-basic-dropdown/components/basic-dropdown-trigger"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/basic-dropdown",["exports","ember-basic-dropdown/components/basic-dropdown"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/block-slot",["exports","block-slots/components/block-slot"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/brand-loader/enterprise",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"3HLvt6Sl",block:'{"symbols":[],"statements":[[10,"path"],[14,"data-enterprise-logo",""],[14,"d","M322.099,18.0445001 C319.225,18.0223001 316.427,18.9609001 314.148,20.7112001 L314.016,20.8179001 L313.68,18.5368001 L310.332,18.5368001 L310.332,53.0000001 L314.312,52.4338001 L314.312,42.3164001 L314.435,42.3164001 C316.705,42.7693001 319.012,43.0165001 321.327,43.0549001 C326.554,43.0549001 329.098,40.5029001 329.098,35.2432001 L329.098,25.3802001 C329.073,20.4569001 326.809,18.0445001 322.099,18.0445001 Z M264.971,11.9722001 L260.991,12.5466001 L260.991,18.5284001 L256.708,18.5284001 L256.708,21.8106001 L260.991,21.8106001 L260.991,37.6883001 L260.99344,37.9365729 C261.066744,41.6122056 262.7975,43.1124033 266.915,43.1124033 C268.591,43.1170001 270.255,42.8396001 271.839,42.2915001 L271.363,39.1817001 L270.896229,39.3066643 C269.803094,39.5806719 268.682875,39.7315001 267.555,39.7560001 C265.526625,39.7560001 265.081547,38.9674128 264.991981,37.7056542 L264.97743,37.4176027 L264.97159,37.1147428 L264.971,21.8188001 L271.494,21.8188001 L271.83,18.5366001 L264.971,18.5366001 L264.971,11.9722001 Z M283.556,18.0770001 C277.312,18.0770001 274.144,21.0884001 274.144,27.0374001 L274.144,34.3075001 C274.144,40.3140001 277.164,43.1124894 283.655,43.1124894 C286.526,43.1192001 289.38,42.6620001 292.106,41.7581001 L291.589,38.6154001 C289.116,39.3030001 286.566,39.6779001 283.999,39.7314001 C279.785843,39.7314001 278.500803,38.4772648 278.201322,35.860808 L278.165734,35.4868687 L278.141767,35.0951811 C278.138675,35.0284172 278.136019,34.9609111 278.133774,34.8926614 L278.125037,34.474229 L278.124,32.0756001 L292.582,32.0756001 L292.582,27.1031001 C292.582,21.0064001 289.636,18.0770001 283.556,18.0770001 Z M384.631,18.0768001 C378.412,18.0440001 375.22,21.0554001 375.22,27.0208001 L375.22,34.2909001 C375.22,40.2973001 378.239,43.0955988 384.73,43.0955988 C387.599,43.1033001 390.45,42.6460001 393.173,41.7415001 L392.665,38.5988001 C390.188,39.2815001 387.635,39.6509001 385.066,39.6983001 C380.852843,39.6983001 379.567803,38.4442359 379.268322,35.8278014 L379.232734,35.4538649 L379.208767,35.0621794 C379.205675,34.9954158 379.203019,34.9279099 379.200774,34.8596604 L379.192037,34.4412289 L379.191,32.0754001 L393.657,32.0754001 L393.657,27.1029001 C393.657,21.0062001 390.712,18.0768001 384.631,18.0768001 Z M364.634,18.0441001 C363.881125,18.0441001 363.18736,18.0712813 362.54969,18.1279834 L362.016783,18.1838695 C357.948857,18.6791301 356.371,20.5353768 356.371,24.4608001 L356.371522,24.7155013 L356.376145,25.2052033 L356.386527,25.669464 L356.403852,26.1092746 C356.407384,26.1805939 356.411254,26.2509357 356.415488,26.3203208 L356.445451,26.7253144 L356.485319,27.1083357 C356.756619,29.3425283 357.626845,30.4437319 360.247859,31.3753061 L360.701103,31.529163 C360.779411,31.5545991 360.85912,31.5799457 360.940253,31.6052232 L361.444353,31.7562266 L361.983836,31.9065664 L362.55989,32.0572338 L363.430663,32.2724269 L364.440153,32.5299129 L364.884369,32.6506971 L365.29049,32.7679922 L365.660213,32.8831607 L365.99523,32.9975651 C367.26815,33.4554713 367.748817,33.9277406 367.925217,34.806783 L367.963261,35.0352452 C367.974017,35.1143754 367.982943,35.1965576 367.990321,35.2820187 L368.008092,35.5484662 L368.018269,35.8359502 L368.023,36.3096001 C368.023,36.3683432 368.022674,36.4261667 368.021989,36.4830819 L368.013333,36.8137655 C368.008847,36.9204214 368.002676,37.0235359 367.994568,37.1232009 L367.964177,37.4119383 C367.774513,38.8512264 367.058626,39.4837671 364.875404,39.6510671 L364.43427,39.67773 L363.954974,39.6933243 C363.78868,39.6967387 363.615773,39.6984001 363.436,39.6984001 C361.126,39.6638001 358.83,39.3385001 356.601,38.7302001 L356.051,41.7908001 L356.619468,41.9710684 C358.900888,42.6645722 361.270923,43.0269154 363.658,43.0463001 C369.59355,43.0463001 371.402903,41.3625861 371.812159,38.0405419 L371.854011,37.6421573 C371.859965,37.574501 371.865421,37.5062155 371.870401,37.4373012 L371.894725,37.0162715 L371.908596,36.5801656 C371.911587,36.4322862 371.913,36.2818967 371.913,36.1290001 L371.914417,35.5317322 C371.901583,33.4289389 371.677,32.2649251 370.797,31.3698001 C370.053077,30.6022731 368.787947,30.0494771 366.870096,29.4840145 L366.242608,29.3047611 C366.13436,29.2747269 366.024265,29.2445914 365.912304,29.2143213 L365.218,29.0308209 L364.216102,28.7784328 L363.495981,28.593015 L363.068145,28.4733265 L362.67987,28.3551624 C361.018765,27.8247783 360.501056,27.2986662 360.340522,26.2094051 L360.310407,25.9578465 C360.306262,25.9142982 360.302526,25.8699197 360.29916,25.8246823 L360.283089,25.5427193 L360.273984,25.2387571 L360.269927,24.911412 L360.270221,24.3885398 L360.280627,24.0635689 C360.366727,22.3885604 360.966747,21.6370879 363.248047,21.4645754 L363.695778,21.4389299 L364.184625,21.426349 L364.445,21.4248001 C366.684,21.4608001 368.916,21.6859001 371.117,22.0976001 L371.396,18.8646001 L370.730951,18.7059457 C368.73071,18.2553391 366.686,18.0331201 364.634,18.0441001 Z M351.301,18.5363001 L347.321,18.5363001 L347.321,42.6112001 L351.301,42.6112001 L351.301,18.5363001 Z M307.335,18.0850001 L306.70097,18.3638937 C304.598769,19.3169298 302.610091,20.5031364 300.771,21.9005001 L300.623,22.0236001 L300.369,18.5363001 L296.931,18.5363001 L296.931,42.6112001 L300.91,42.6112001 L300.91,25.9048001 L301.641825,25.3925123 C303.604371,24.0427531 305.654445,22.8240667 307.778,21.7446001 L307.335,18.0850001 Z M344.318,18.0850001 L343.683947,18.3638937 C341.581595,19.3169298 339.592091,20.5031364 337.753,21.9005001 L337.606,22.0236001 L337.351,18.5363001 L333.946,18.5363001 L333.946,42.6112001 L337.926,42.6112001 L337.926,25.9048001 L337.967,25.9048001 L338.701162,25.3884311 C340.669963,24.0279284 342.726556,22.7996223 344.859,21.7118001 L344.318,18.0850001 Z M230.384,9.62500005 L211.109,9.62500005 L211.109,42.6112001 L230.466,42.6112001 L230.466,38.9597001 L215.146,38.9597001 L215.146,27.4720001 L229.293,27.4720001 L229.293,23.8698001 L215.146,23.8698001 L215.146,13.2600001 L230.384,13.2600001 L230.384,9.62500005 Z M248.763,18.0441001 C245.899,18.0441001 241.706,19.3323001 239.047,20.6124001 L238.924,20.6698001 L238.522,18.5282001 L235.322,18.5282001 L235.322,42.5704001 L239.302,42.5704001 L239.302,24.2885001 L239.359,24.2885001 C241.919,22.9674001 245.661,21.8268001 247.524,21.8268001 C249.165,21.8268001 249.985,22.5735001 249.985,24.1736001 L249.985,42.5868001 L253.965,42.5868001 L253.965,24.1161001 C253.932,20.0380001 252.25,18.0523001 248.763,18.0441001 Z M321.229,21.5564001 C323.526,21.5564001 325.061,22.2046001 325.061,25.3966001 L325.094,35.2760001 C325.094,38.3121001 323.887,39.6085001 321.057,39.6085001 C318.81,39.5533001 316.572,39.3035001 314.369,38.8618001 L314.287,38.8618001 L314.287,24.4694001 C316.198,22.7311001 318.649,21.7027001 321.229,21.5564001 Z M283.581,21.3264001 C287.372,21.3264001 288.758,22.8855001 288.758,26.7010001 L288.758,28.7934001 L278.149,28.7934001 L278.149,26.7010001 C278.149,22.9839001 279.79,21.3264001 283.581,21.3264001 Z M384.648,21.3262001 C388.431,21.3262001 389.834,22.8852001 389.834,26.7008001 L389.834,28.7932001 L379.224,28.7932001 L379.224,26.7008001 C379.224,22.9837001 380.865,21.3262001 384.648,21.3262001 Z M351.301,8.63220005 L347.321,8.63220005 L347.321,14.4499001 L351.301,14.4499001 L351.301,8.63220005 Z"],[14,"fill-rule","nonzero"],[12],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/brand-loader/enterprise.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/brand-loader/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"fT5BqeI8",block:'{"symbols":["@width","@color","@subtitle","&default"],"statements":[[10,"div"],[14,0,"brand-loader"],[15,5,[31,["margin-left: calc(-",[32,1],"px / 2)"]]],[12],[2,"\\n"],[10,"svg"],[15,"width",[31,[[32,1]]]],[14,"height","53"],[14,"xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],[15,"fill",[31,[[32,2]]]],[12],[2,"\\n "],[10,"path"],[14,"d","M32.7240001,0.866235051 C28.6239001,-0.218137949 24.3210001,-0.285465949 20.1890001,0.670096051 C16.0569001,1.62566005 12.2205001,3.57523005 9.01276015,6.34960005 C5.80499015,9.12397005 3.32280015,12.6393001 1.78161015,16.5905001 C0.240433148,20.5416001 -0.313157852,24.8092001 0.168892148,29.0228001 C0.650943148,33.2364001 2.15407015,37.2687001 4.54780015,40.7697001 C6.94153015,44.2707001 10.1535001,47.1346001 13.9050001,49.1128001 C17.6565001,51.0910001 21.8341001,52.1238001 26.0752001,52.1214409 C32.6125001,52.1281001 38.9121001,49.6698001 43.7170001,45.2370001 L37.5547001,38.7957001 C35.0952001,41.0133001 32.0454001,42.4701001 28.7748001,42.9898001 C25.5042001,43.5096001 22.1530001,43.0698001 19.1273001,41.7239001 C16.1015001,40.3779001 13.5308001,38.1835001 11.7267001,35.4064001 C9.92260015,32.6294001 8.96239015,29.3888001 8.96239015,26.0771001 C8.96239015,22.7655001 9.92260015,19.5249001 11.7267001,16.7478001 C13.5308001,13.9707001 16.1015001,11.7763001 19.1273001,10.4304001 C22.1530001,9.08444005 25.5042001,8.64470005 28.7748001,9.16441005 C32.0454001,9.68412005 35.0952001,11.1410001 37.5547001,13.3586001 L43.7170001,6.89263005 C40.5976001,4.01926005 36.8241001,1.95061005 32.7240001,0.866235051 Z M46.6320001,34.8572001 C46.2182001,34.9395001 45.8380001,35.1427001 45.5397001,35.4410001 C45.2413001,35.7394001 45.0381001,36.1195001 44.9558001,36.5334001 C44.8735001,36.9472001 44.9157001,37.3762001 45.0772001,37.7660001 C45.2387001,38.1559001 45.5121001,38.4891001 45.8630001,38.7235001 C46.2138001,38.9579001 46.6263001,39.0830001 47.0482001,39.0830001 C47.6141001,39.0830001 48.1567001,38.8583001 48.5568001,38.4582001 C48.9569001,38.0581001 49.1817001,37.5154001 49.1817001,36.9496001 C49.1817001,36.5276001 49.0565001,36.1152001 48.8221001,35.7643001 C48.5877001,35.4135001 48.2545001,35.1400001 47.8647001,34.9786001 C47.4748001,34.8171001 47.0459001,34.7748001 46.6320001,34.8572001 Z M49.0856001,27.5622001 C48.6718001,27.6446001 48.2916001,27.8477001 47.9933001,28.1461001 C47.6949001,28.4445001 47.4917001,28.8246001 47.4094001,29.2385001 C47.3271001,29.6523001 47.3693001,30.0813001 47.5308001,30.4711001 C47.6923001,30.8609001 47.9657001,31.1941001 48.3166001,31.4286001 C48.6674001,31.6630001 49.0799001,31.7881001 49.5018001,31.7881001 C50.0670001,31.7859001 50.6084001,31.5605001 51.0080001,31.1609001 C51.4076001,30.7612001 51.6331001,30.2198001 51.6353001,29.6547001 C51.6353001,29.2327001 51.5102001,28.8202001 51.2757001,28.4694001 C51.0413001,28.1186001 50.7081001,27.8451001 50.3183001,27.6836001 C49.9284001,27.5222001 49.4995001,27.4799001 49.0856001,27.5622001 Z M28.0728001,20.8457001 C27.0412001,20.4185001 25.9061001,20.3067001 24.8110001,20.5245001 C23.7159001,20.7423001 22.7100001,21.2800001 21.9205001,22.0695001 C21.1309001,22.8590001 20.5933001,23.8650001 20.3754001,24.9600001 C20.1576001,26.0551001 20.2694001,27.1902001 20.6967001,28.2218001 C21.1240001,29.2534001 21.8476001,30.1351001 22.7760001,30.7554001 C23.7043001,31.3757001 24.7958001,31.7068001 25.9124001,31.7068001 C27.4096001,31.7068001 28.8455001,31.1120001 29.9043001,30.0533001 C30.9630001,28.9946001 31.5578001,27.5587001 31.5578001,26.0614001 C31.5578001,24.9449001 31.2267001,23.8534001 30.6063001,22.9250001 C29.9860001,21.9966001 29.1043001,21.2730001 28.0728001,20.8457001 Z M43.9670001,27.4378001 C43.5772001,27.2763001 43.1482001,27.2341001 42.7344001,27.3164001 C42.3205001,27.3987001 41.9404001,27.6019001 41.6420001,27.9003001 C41.3437001,28.1986001 41.1405001,28.5788001 41.0581001,28.9926001 C40.9758001,29.4065001 41.0181001,29.8354001 41.1796001,30.2253001 C41.3410001,30.6151001 41.6145001,30.9483001 41.9653001,31.1827001 C42.3162001,31.4171001 42.7286001,31.5423001 43.1506001,31.5423001 C43.7164001,31.5423001 44.2591001,31.3175001 44.6592001,30.9174001 C45.0592001,30.5173001 45.2840001,29.9747001 45.2840001,29.4088001 C45.2840001,28.9869001 45.1589001,28.5744001 44.9245001,28.2236001 C44.6901001,27.8727001 44.3568001,27.5993001 43.9670001,27.4378001 Z M43.9670001,20.7503001 C43.5772001,20.5888001 43.1482001,20.5466001 42.7344001,20.6289001 C42.3205001,20.7112001 41.9404001,20.9144001 41.6420001,21.2128001 C41.3437001,21.5111001 41.1405001,21.8913001 41.0581001,22.3051001 C40.9758001,22.7190001 41.0181001,23.1479001 41.1796001,23.5378001 C41.3410001,23.9276001 41.6145001,24.2608001 41.9653001,24.4952001 C42.3162001,24.7296001 42.7286001,24.8548001 43.1506001,24.8548001 C43.7164001,24.8548001 44.2591001,24.6300001 44.6592001,24.2299001 C45.0592001,23.8298001 45.2840001,23.2871001 45.2840001,22.7213001 C45.2840001,22.2994001 45.1589001,21.8869001 44.9245001,21.5360001 C44.6901001,21.1852001 44.3568001,20.9118001 43.9670001,20.7503001 Z M49.0856001,20.3825001 C48.6718001,20.4649001 48.2916001,20.6681001 47.9933001,20.9664001 C47.6949001,21.2648001 47.4917001,21.6449001 47.4094001,22.0588001 C47.3271001,22.4726001 47.3693001,22.9016001 47.5308001,23.2914001 C47.6923001,23.6813001 47.9657001,24.0144001 48.3166001,24.2489001 C48.6674001,24.4833001 49.0799001,24.6084001 49.5018001,24.6084001 C50.0670001,24.6063001 50.6084001,24.3808001 51.0080001,23.9812001 C51.4076001,23.5815001 51.6331001,23.0401001 51.6353001,22.4750001 C51.6353001,22.0530001 51.5102001,21.6406001 51.2757001,21.2897001 C51.0413001,20.9389001 50.7081001,20.6654001 50.3183001,20.5040001 C49.9284001,20.3425001 49.4995001,20.3002001 49.0856001,20.3825001 Z M46.7554001,13.2026001 C46.3416001,13.2849001 45.9614001,13.4881001 45.6630001,13.7865001 C45.3647001,14.0849001 45.1615001,14.4650001 45.0792001,14.8788001 C44.9969001,15.2927001 45.0391001,15.7217001 45.2006001,16.1115001 C45.3621001,16.5013001 45.6355001,16.8345001 45.9863001,17.0689001 C46.3372001,17.3034001 46.7497001,17.4285001 47.1716001,17.4285001 C47.7374001,17.4285001 48.2801001,17.2037001 48.6802001,16.8036001 C49.0803001,16.4035001 49.3050001,15.8609001 49.3050001,15.2951001 C49.3050001,14.8731001 49.1799001,14.4606001 48.9455001,14.1098001 C48.7111001,13.7589001 48.3779001,13.4855001 47.9880001,13.3240001 C47.5982001,13.1625001 47.1692001,13.1203001 46.7554001,13.2026001 Z"],[14,"fill-rule","nonzero"],[12],[13],[2,"\\n "],[10,"path"],[14,"d","M83.5385001,9.02612084 C75.3002001,9.02612084 71.7718001,12.5545001 71.7718001,18.6102001 L71.7718001,33.5278001 L71.7744126,33.809806 C71.8842215,39.6928981 75.4612111,43.1118103 83.5385001,43.1118103 C86.5802001,43.1131001 89.6109001,42.7466001 92.5646001,42.0205001 L91.8671001,36.6049001 L90.9760579,36.7631811 C88.5964705,37.1629803 86.1899224,37.3844223 83.7765001,37.4254001 C79.4194001,37.4254001 78.0326001,35.9320001 78.0326001,32.4118001 L78.0326001,19.7261001 L78.0346281,19.4988781 C78.0956946,16.133828 79.5462067,14.7125001 83.7765001,14.7125001 C86.4916001,14.7587001 89.1980001,15.0332001 91.8671001,15.5331001 L92.5646001,10.1175001 L91.8246092,9.94345672 C89.1057071,9.33281156 86.3267251,9.02500229 83.5385001,9.02612084 Z M172.149,18.4131001 L166.094,18.4131001 L166.09588,36.2248122 C166.154955,40.3975255 167.61375,43.1117001 171.55,43.1117001 C174.919,42.9517001 178.218,42.0880001 181.233,40.5762001 L181.832,42.6112001 L186.443,42.6112001 L186.443,18.4131001 L180.388,18.4131001 L180.388,35.1934001 C178.188,36.3339001 175.481,37.2283001 174.086,37.2283001 C172.691,37.2283001 172.149,36.5801001 172.149,35.2918001 L172.149,18.4131001 Z M105.939,17.9127001 C98.2719471,17.9127001 95.7845671,21.8519543 95.4516942,26.3358062 L95.4257941,26.7784774 C95.4225999,26.8525088 95.4199581,26.9266566 95.4178553,27.0009059 L95.4116001,27.4475001 L95.4116001,33.5853001 L95.4178331,34.0318054 C95.5519456,38.7818866 97.886685,43.0872001 105.931,43.0872001 C113.716697,43.0872001 116.15821,39.0467642 116.432186,34.4757046 L116.45204,34.0318054 C116.456473,33.8833653 116.458758,33.734491 116.459,33.5853001 L116.459,27.4475001 L116.457455,27.2221358 C116.453317,26.9220505 116.440796,26.6236441 116.419035,26.3278463 L116.379357,25.8862225 C115.91894,21.5651129 113.355121,17.9127001 105.939,17.9127001 Z M154.345,17.8876515 C147.453,17.8876515 145.319,20.0214001 145.319,24.8873001 L145.319694,25.1343997 L145.325703,25.6107983 L145.338905,26.064173 C145.341773,26.1378641 145.344992,26.2106314 145.348588,26.2824927 L145.374889,26.7029295 C145.380095,26.7712375 145.385729,26.838675 145.391816,26.9052596 L145.433992,27.2946761 C145.714183,29.5082333 146.613236,30.7206123 149.232713,31.693068 L149.698825,31.8575665 C150.021076,31.9658547 150.36662,32.0715774 150.737101,32.1758709 L151.311731,32.3313812 C151.509646,32.3829554 151.714,32.4343143 151.925,32.4856001 L152.205551,32.5543061 L152.728976,32.6899356 L153.204098,32.8237311 L153.633238,32.9563441 C155.53221,33.5734587 156.004908,34.1732248 156.112605,35.0535762 L156.130482,35.2466262 L156.139507,35.448917 L156.142,35.6611001 L156.137247,35.9859786 L156.121298,36.2838969 C156.024263,37.5177444 155.540462,38.0172149 153.741624,38.1073495 L153.302742,38.1210314 L153.065,38.1227001 C150.631,38.0987001 148.21,37.7482001 145.869,37.0807001 L145.049,41.6922001 L145.672496,41.887484 C148.174444,42.639635 150.769923,43.0436231 153.385,43.0871001 C159.627887,43.0871001 161.583469,40.9824692 162.030289,37.4548504 L162.074576,37.049455 C162.087289,36.9123213 162.098004,36.7731979 162.106868,36.6321214 L162.128062,36.2030694 L162.139051,35.7625187 L162.141,35.5380001 C162.141,35.4566181 162.140828,35.3763299 162.14046,35.2971136 L162.131203,34.6125174 L162.117224,34.1865271 L162.095649,33.7836378 L162.065324,33.4027996 L162.025093,33.0429627 L161.973799,32.7030773 C161.659145,30.8866498 160.790109,29.9278873 158.501441,29.0408119 L158.069484,28.8801405 L157.605084,28.7199991 C157.524916,28.6932947 157.443348,28.6665687 157.360357,28.6397991 L156.845127,28.4784845 L156.294565,28.3150754 L155.707516,28.148522 L155.082823,27.9777746 L154.035614,27.7021396 L153.423677,27.5325226 L153.071612,27.4262327 C153.016479,27.4088193 152.963082,27.3915263 152.911366,27.3743086 L152.620815,27.2715428 C151.671458,26.912485 151.415595,26.5466416 151.348761,25.7543883 L151.334373,25.5160648 L151.327658,25.2523603 L151.327351,24.8244501 C151.355827,23.4390475 151.851313,22.8769001 154.403,22.8769001 C156.636,22.9360001 158.861,23.1692001 161.057,23.5744001 L161.591,18.7085001 L160.876597,18.5511522 C158.72872,18.1040608 156.5401,17.8816774 154.345,17.8876515 Z M197.71,7.71350005 L191.654,8.53405005 L191.654,42.6116001 L197.71,42.6116001 L197.71,7.71350005 Z M135.455,17.9211001 C132.086,18.0823001 128.788,18.9459001 125.772,20.4566001 L125.189,18.4135001 L120.57,18.4135001 L120.57,42.6115001 L126.625,42.6115001 L126.625,25.8066001 C128.833,24.6661001 131.549,23.7717001 132.936,23.7717001 C134.322,23.7717001 134.872,24.4199001 134.872,25.7082001 L134.872,42.6115001 L140.919,42.6115001 L140.919,25.0681001 C140.919,20.7520001 139.475,17.9211001 135.455,17.9211001 Z M105.931,23.0740001 C109.156,23.0740001 110.395,24.5592001 110.395,27.2506001 L110.395,33.7494001 L110.392134,33.9740961 C110.325067,36.5604698 109.074195,37.9178001 105.931,37.9178001 C102.698,37.9178001 101.459,36.4818001 101.459,33.7494001 L101.459,27.2506001 L101.461884,27.0258853 C101.529372,24.4390811 102.787806,23.0740001 105.931,23.0740001 Z"],[14,"fill-rule","nonzero"],[12],[13],[2,"\\n "],[1,[32,3]],[2,"\\n "],[18,4,null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/brand-loader/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/certificate/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l +function s(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const i=Ember.HTMLBars.template({id:"FAdEcz6O",block:'{"symbols":["@item","@name"],"statements":[[10,"div"],[14,0,"certificate"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,1],[32,2]]],null],[2,"\\n "],[11,"button"],[16,0,[30,[36,1],["visibility",[30,[36,0],[[32,0,["show"]]," hide"," show"],null]],null]],[24,4,"button"],[4,[38,2],["click",[32,0,["setVisibility"]]],null],[12],[2,"\\n "],[13],[2,"\\n"],[6,[37,0],[[32,0,["show"]]],null,[["default","else"],[{"statements":[[2," "],[10,"code"],[12],[1,[32,1]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"hr"],[12],[13],[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["if","concat","on"]}',meta:{moduleName:"consul-ui/components/certificate/index.hbs"}}) +let o=(n=Ember._tracked,r=Ember._action,a=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="show",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}setVisibility(){this.show=!this.show}},l=s(a.prototype,"show",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s(a.prototype,"setVisibility",[r],Object.getOwnPropertyDescriptor(a.prototype,"setVisibility"),a.prototype),a) +e.default=o,Ember._setComponentTemplate(i,o)})),define("consul-ui/components/child-selector/index",["exports","ember-concurrency","block-slots"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r=Ember.HTMLBars.template({id:"ounU18qJ",block:'{"symbols":["collection","item","&default","&attrs"],"statements":[[11,"div"],[16,0,[31,["child-selector ",[34,0],"-child-selector"]]],[17,4],[12],[2,"\\n"],[18,3,null],[2,"\\n"],[6,[37,11],[[30,[36,19],[[35,18]],null]],null,[["default"],[{"statements":[[2," "],[8,"yield-slot",[],[["@name"],["create"]],[["default"],[{"statements":[[18,3,null]],"parameters":[]}]]],[2,"\\n "],[10,"label"],[14,0,"type-text"],[12],[2,"\\n "],[10,"span"],[12],[8,"yield-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[18,3,null]],"parameters":[]}]]],[13],[2,"\\n"],[6,[37,11],[[35,10]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,6],["/${partition}/${nspace}/${dc}/${type}",[30,[36,5],null,[["partition","nspace","dc","type"],[[35,4],[35,3],[35,2],[30,[36,1],[[35,0]],null]]]]],null],[30,[36,9],[[32,0],[30,[36,8],[[35,7]],null]],[["value"],["data"]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"data-collection",[],[["@type","@sort","@filters","@items"],[[34,0],"Name:asc",[30,[36,5],null,[["searchproperties"],[[30,[36,12],["Name"],null]]]],[34,13]]],[["default"],[{"statements":[[2,"\\n "],[8,"power-select",[],[["@searchEnabled","@search","@options","@loadingMessage","@searchMessage","@searchPlaceholder","@onOpen","@onClose","@onChange"],[true,[30,[36,9],[[32,0],[32,1,["search"]]],null],[30,[36,14],["Name:asc",[35,13]],null],"Loading...","No possible options",[34,15],[30,[36,9],[[32,0],[30,[36,8],[[35,10]],null],true],null],[30,[36,9],[[32,0],[30,[36,8],[[35,10]],null],false],null],[30,[36,9],[[32,0],"change","items[]",[35,16]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name","@params"],["option",[30,[36,17],[[32,2]],null]]],[["default"],[{"statements":[[18,3,null]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,11],[[30,[36,20],[[35,16,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[8,"yield-slot",[],[["@name"],["set"]],[["default"],[{"statements":[[18,3,null]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["type","pluralize","dc","nspace","partition","hash","uri","allOptions","mut","action","isOpen","if","array","options","sort-by","placeholder","items","block-params","disabled","not","gt"]}',meta:{moduleName:"consul-ui/components/child-selector/index.hbs"}}) +var a=Ember._setComponentTemplate(r,Ember.Component.extend(n.default,{onchange:function(){},tagName:"",error:function(){},type:"",dom:Ember.inject.service("dom"),formContainer:Ember.inject.service("form"),item:Ember.computed.alias("form.data"),selectedOptions:Ember.computed.alias("items"),init:function(){this._super(...arguments),this._listeners=this.dom.listeners(),this.form=this.formContainer.form(this.type),this.form.clear({Datacenter:this.dc,Namespace:this.nspace})},willDestroyElement:function(){this._super(...arguments),this._listeners.remove()},options:Ember.computed("selectedOptions.[]","allOptions.[]",(function(){let e=this.allOptions||[] +const t=this.selectedOptions||[] +return Ember.get(t,"length")>0&&(e=e.filter(e=>!t.findBy("ID",Ember.get(e,"ID")))),e})),save:(0,t.task)((function*(e,t,n=function(){}){const r=this.repo +try{e=yield r.persist(e),this.actions.change.apply(this,[{target:{name:"items[]",value:t}},t,e]),n()}catch(a){this.error({error:a})}})),actions:{reset:function(){this.form.clear({Datacenter:this.dc,Namespace:this.nspace,Partition:this.partition})},remove:function(e,t){const n=this.repo.getSlugKey(),r=Ember.get(e,n),a=t.findIndex((function(e){return Ember.get(e,n)===r})) +if(-1!==a)return t.removeAt(a,1) +this.onchange({target:this})},change:function(e,t,n){const r=this.dom.normalizeEvent(...arguments),a=t +switch(r.target.name){case"items[]":Ember.set(n,"CreateTime",(new Date).getTime()),a.pushObject(n),this.onchange({target:this})}}}})) +e.default=a})),define("consul-ui/components/code-editor/index",["exports"],(function(e){function t(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n{this.oninput(Ember.set(this,"value",e.target.wholeText))}),this.observer.observe(e,{attributes:!1,subtree:!0,childList:!1,characterData:!0}),Ember.set(this,"value",e.firstChild.wholeText)),Ember.set(this,"editor",this.helper.getEditor(this.element)),this.settings.findBySlug("code-editor").then(e=>{const t=this.modes,n=this.syntax +n&&(e=t.find((function(e){return e.name.toLowerCase()==n.toLowerCase()}))),e=e||t[0],this.setMode(e)})},didAppear:function(){this.editor.refresh()},actions:{change:function(e){this.settings.persist({"code-editor":e}),this.setMode(e)}}})) +e.default=s})),define("consul-ui/components/confirmation-alert/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Ph3CAF0n",block:'{"symbols":["__arg0","__arg1","Actions","@onclick","&default","@name","&attrs"],"statements":[[18,5,null],[2,"\\n"],[8,"informed-action",[[24,0,"confirmation-alert warning"],[17,7]],[["@namedBlocksInfo"],[[30,[36,6],null,[["header","body","actions"],[0,0,1]]]]],[["default"],[{"statements":[[6,[37,5],[[30,[36,4],[[32,1],"header"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[18,5,null]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,4],[[32,1],"body"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[18,5,null]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,4],[[32,1],"actions"],null]],null,[["default"],[{"statements":[[6,[37,3],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Action"]],[[24,0,"dangerous"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name","@params"],["confirm",[30,[36,2],[[30,[36,1],["action"],[["onclick","tabindex"],[[30,[36,0],[[32,0],[32,4]],null],"-1"]]]],null]]],[["default"],[{"statements":[[2,"\\n "],[18,5,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,3,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[],[["@for"],[[32,6]]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["action","component","block-params","let","-is-named-block-invocation","if","hash"]}',meta:{moduleName:"consul-ui/components/confirmation-alert/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/confirmation-dialog/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"hLDc+Wit",block:'{"symbols":["&default","&attrs"],"statements":[[11,"div"],[16,0,[30,[36,2],["with-confirmation",[30,[36,1],[[35,0]," confirming",""],null]],null]],[17,2],[12],[2,"\\n"],[18,1,null],[2,"\\n"],[8,"yield-slot",[],[["@name","@params"],["action",[30,[36,4],[[30,[36,3],[[32,0],"confirm"],null],[30,[36,3],[[32,0],"cancel"],null]],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,7],[[35,6],[30,[36,5],[[35,0]],null]],null]],null,[["default"],[{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[8,"yield-slot",[],[["@name","@params"],["dialog",[30,[36,4],[[30,[36,3],[[32,0],"execute"],null],[30,[36,3],[[32,0],"cancel"],null],[35,9],[35,8]],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[35,0]],null,[["default"],[{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["confirming","if","concat","action","block-params","not","permanent","or","actionName","message"]}',meta:{moduleName:"consul-ui/components/confirmation-dialog/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:"",message:"Are you sure?",confirming:!1,permanent:!1,actions:{cancel:function(){Ember.set(this,"confirming",!1)},execute:function(){Ember.set(this,"confirming",!1),this.sendAction("actionName",...this.arguments)},confirm:function(){const[e,...t]=arguments +Ember.set(this,"actionName",e),Ember.set(this,"arguments",t),Ember.set(this,"confirming",!0)}}})) +e.default=r})),define("consul-ui/components/consul/acl/disabled/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"GJrj4o1x",block:'{"symbols":[],"statements":[[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n Tokens\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"Welcome to ACLs"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n ACLs are not enabled in this Consul cluster. We strongly encourage the use of ACLs in production environments for the best security practices.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/acl/index.html"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the documentation"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_LEARN_URL"],null],"/consul/security-networking/production-acls"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Follow the guide"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n\\n"]],"hasEval":false,"upvars":["env"]}',meta:{moduleName:"consul-ui/components/consul/acl/disabled/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/acl/selector/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"CGsTmKTv",block:'{"symbols":["@dc"],"statements":[[10,"li"],[14,0,"acls-separator"],[14,"role","separator"],[12],[2,"\\n Access Controls\\n"],[6,[37,1],[[30,[36,3],[[30,[36,2],["use acls"],null]],null]],null,[["default"],[{"statements":[[2," "],[11,"span"],[4,[38,5],["ACLs are not currently enabled in this cluster"],null],[12],[13],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"],[10,"li"],[15,0,[30,[36,1],[[30,[36,0],["dc.acls.tokens",[32,1,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,4],["dc.acls.tokens",[32,1,["Name"]]],null]],[12],[2,"\\n Tokens\\n "],[13],[2,"\\n"],[13],[2,"\\n"],[6,[37,1],[[30,[36,2],["read acls"],null]],null,[["default","else"],[{"statements":[[10,"li"],[15,0,[30,[36,1],[[30,[36,0],["dc.acls.policies",[32,1,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,4],["dc.acls.policies",[32,1,["Name"]]],null]],[12],[2,"\\n Policies\\n "],[13],[2,"\\n"],[13],[2,"\\n"],[10,"li"],[15,0,[30,[36,1],[[30,[36,0],["dc.acls.roles",[32,1,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,4],["dc.acls.roles",[32,1,["Name"]]],null]],[12],[2,"\\n Roles\\n "],[13],[2,"\\n"],[13],[2,"\\n"],[10,"li"],[15,0,[30,[36,1],[[30,[36,0],["dc.acls.auth-methods",[32,1,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,4],["dc.acls.auth-methods",[32,1,["Name"]]],null]],[12],[2,"\\n Auth Methods\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,3],[[30,[36,2],["use acls"],null]],null]],null,[["default"],[{"statements":[[10,"li"],[15,0,[30,[36,1],[[30,[36,0],["dc.acls.policies",[32,1,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n Policies\\n "],[13],[2,"\\n"],[13],[2,"\\n"],[10,"li"],[15,0,[30,[36,1],[[30,[36,0],["dc.acls.roles",[32,1,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n Roles\\n "],[13],[2,"\\n"],[13],[2,"\\n"],[10,"li"],[15,0,[30,[36,1],[[30,[36,0],["dc.acls.auth-methods",[32,1,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n Auth Methods\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["is-href","if","can","not","href-to","tooltip"]}',meta:{moduleName:"consul-ui/components/consul/acl/selector/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/auth-method/binding-list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"9xphbQEM",block:'{"symbols":["@item"],"statements":[[10,"div"],[14,0,"consul-auth-method-binding-list"],[12],[2,"\\n "],[10,"h2"],[12],[1,[32,1,["BindName"]]],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[14,0,"type"],[12],[1,[30,[36,0],["models.binding-rule.BindType"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["BindType"]]],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,1,["BindType"]],"service"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["components.consul.auth-method.binding-list.bind-type.service"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],[[32,1,["BindType"]],"node"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["components.consul.auth-method.binding-list.bind-type.node"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],[[32,1,["BindType"]],"role"],null]],null,[["default"],[{"statements":[[2," "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["components.consul.auth-method.binding-list.bind-type.role"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dt"],[12],[1,[30,[36,0],["models.binding-rule.Selector"],null]],[13],[2,"\\n "],[10,"dd"],[12],[10,"code"],[12],[1,[32,1,["Selector"]]],[13],[13],[2,"\\n "],[10,"dt"],[12],[1,[30,[36,0],["models.binding-rule.Description"],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,1,["Description"]]],[13],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["t","eq","if"]}',meta:{moduleName:"consul-ui/components/consul/auth-method/binding-list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/auth-method/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Xxbv7lp+",block:'{"symbols":["item","@items"],"statements":[[8,"list-collection",[[24,0,"consul-auth-method-list"]],[["@items"],[[32,2]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,1,["DisplayName"]],""],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[30,[36,0],["dc.acls.auth-methods.show",[32,1,["Name"]]],null]],[12],[2,"\\n "],[1,[32,1,["DisplayName"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[15,6,[30,[36,0],["dc.acls.auth-methods.show",[32,1,["Name"]]],null]],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/auth-method/type",[],[["@item"],[[32,1]]],null],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,1,["DisplayName"]],""],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[1,[32,1,["Name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[30,[36,3],[[32,1,["TokenLocality"]],"global"],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"locality"],[12],[2,"creates global tokens"],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,1,["MaxTokenTTL"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"ttl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Maximum Time to Live: the maximum life of any token created by this auth method\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,1,["MaxTokenTTL"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["href-to","not-eq","if","eq"]}',meta:{moduleName:"consul-ui/components/consul/auth-method/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/auth-method/nspace-list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Ej9L7VaQ",block:'{"symbols":["item","@items"],"statements":[[10,"div"],[14,0,"consul-auth-method-nspace-list"],[12],[2,"\\n "],[10,"table"],[12],[2,"\\n "],[10,"thead"],[12],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[1,[30,[36,0],["models.auth-method.Selector"],null]],[13],[2,"\\n "],[10,"td"],[12],[1,[30,[36,0],["models.auth-method.BindNamespace"],null]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,2],[[30,[36,1],[[30,[36,1],[[32,2]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[1,[32,1,["Selector"]]],[13],[2,"\\n "],[10,"td"],[12],[1,[32,1,["BindNamespace"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["t","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/auth-method/nspace-list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/auth-method/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"KCBFWnGq",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","option","components","Optgroup","Option","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-auth-method-search-bar"],[17,28]],[["@filter","@namedBlocksInfo"],[[32,25],[30,[36,15],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.auth-method.search-bar.",[32,21,["status","key"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,21,["status","key"]]],null],[30,[36,10],["common.consul.",[32,21,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.auth-method.search-bar.",[32,21,["status","key"]],".options.",[32,21,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,21,["status","value"]]],null],[30,[36,10],["common.consul.",[32,21,["status","value"]]],null],[30,[36,10],["common.brand.",[32,21,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,21,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,22]," ",[32,23]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,22]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,23]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[22,23]}]]],[2,"\\n "]],"parameters":[21]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,16,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,26]],null],[32,27],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,16,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,25,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,17,["Optgroup"]],[32,17,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,25,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,19],[],[["@value","@selected"],[[32,20],[30,[36,9],[[32,20],[32,25,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,14],[[32,20]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[20]}]]]],"parameters":[18,19]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[17]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[16]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-kind"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,25,["kind","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.auth-method.search-bar.kind.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,13,["Optgroup"]],[32,13,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,15],[[24,0,"kubernetes"]],[["@value","@selected"],["kubernetes",[30,[36,9],["kubernetes",[32,25,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"Kubernetes"]],"parameters":[]}]]],[2,"\\n "],[8,[32,15],[[24,0,"jwt"]],[["@value","@selected"],["jwt",[30,[36,9],["jwt",[32,25,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"JWT"]],"parameters":[]}]]],[2,"\\n"],[6,[37,8],[[30,[36,13],["CONSUL_SSO_ENABLED"],null]],null,[["default"],[{"statements":[[2," "],[8,[32,15],[[24,0,"oidc"]],[["@value","@selected"],["oidc",[30,[36,9],["oidc",[32,25,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"OIDC"]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[14,15]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]],[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-locality"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,25,["source","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.auth-method.search-bar.locality.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["local","global"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[16,0,[31,[[32,12]]]]],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,25,["types"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["components.consul.auth-method.search-bar.locality.options.",[32,12]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,24,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["MethodName:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["MethodName:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null],[30,[36,4],["TokenTTL:desc",[30,[36,0],["common.sort.duration.asc"],null]],null],[30,[36,4],["TokenTTL:asc",[30,[36,0],["common.sort.duration.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,24,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.ui.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["MethodName:asc",[30,[36,1],["MethodName:asc",[32,24,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["MethodName:desc",[30,[36,1],["MethodName:desc",[32,24,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.ui.maxttl"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["TokenTTL:desc",[30,[36,1],["TokenTTL:desc",[32,24,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.duration.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["TokenTTL:asc",[30,[36,1],["TokenTTL:asc",[32,24,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.duration.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","env","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/auth-method/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/auth-method/type/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"ikz01KlN",block:'{"symbols":["@item"],"statements":[[10,"span"],[15,0,[31,["consul-auth-method-type ",[32,1,["Type"]]]]],[12],[2,"\\n "],[1,[30,[36,1],[[30,[36,0],["common.brand.",[32,1,["Type"]]],null]],null]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["concat","t"]}',meta:{moduleName:"consul-ui/components/consul/auth-method/type/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/auth-method/view/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Fb1QS0ut",block:'{"symbols":["entry","entry","scope","bond","uri","value","bond","config","value","item","jtem","value","value","@item"],"statements":[[2," "],[10,"div"],[14,0,"consul-auth-method-view"],[12],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,14,["Type"]],"kubernetes"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Type"],null]],[13],[2,"\\n "],[10,"dd"],[12],[8,"consul/auth-method/type",[],[["@item"],[[32,14]]],null],[13],[2,"\\n\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[30,[36,10],["MaxTokenTTL","TokenLocality","DisplayName","Description"],null]],null]],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,3],[[32,14],[32,13]],null]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],[[30,[36,9],["models.auth-method.",[32,13]],null]],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,3],[[32,14],[32,13]],null]],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[13]}]]],[6,[37,2],[[32,14,["Config","Host"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.Host"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,14,["Config","Host"]],[30,[36,7],["models.auth-method.Config.Host"],null]]],null],[2,"\\n "],[10,"span"],[12],[1,[32,14,["Config","Host"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","CACert"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.CACert"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"certificate",[],[["@item","@name"],[[32,14,["Config","CACert"]],[30,[36,7],["models.auth-method.Config.CACert"],null]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","ServiceAccountJWT"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.ServiceAccountJWT"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,14,["Config","ServiceAccountJWT"]],[30,[36,7],["models.auth-method.Config.ServiceAccountJWT"],null]]],null],[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[32,14,["Config","ServiceAccountJWT"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"section"],[14,0,"meta"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Type"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"consul/auth-method/type",[],[["@item"],[[32,14]]],null],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[30,[36,10],["MaxTokenTTL","TokenLocality","DisplayName","Description"],null]],null]],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,3],[[32,14],[32,12]],null]],null,[["default"],[{"statements":[[2,"\\n "],[10,"dt"],[12],[1,[30,[36,7],[[30,[36,9],["models.auth-method.",[32,12]],null]],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,3],[[32,14],[32,12]],null]],[13],[2,"\\n\\n"]],"parameters":[]}]]]],"parameters":[12]}]]],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,14,["Type"]],"aws-iam"],null]],null,[["default","else"],[{"statements":[[2,"\\n"],[6,[37,12],[[32,14,["Config"]]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,5],[[30,[36,5],[[30,[36,10],["BoundIAMPrincipalARNs","EnableIAMEntityDetails","IAMEntityTags","IAMEndpoint","MaxRetries","STSEndpoint","STSRegion","AllowedSTSHeaderValues","ServerIDHeaderValue"],null]],null]],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,3],[[32,8],[32,9]],null]],null,[["default"],[{"statements":[[2,"\\n "],[10,"dt"],[12],[1,[30,[36,7],[[30,[36,9],["models.auth-method.",[32,9]],null]],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,12],[[30,[36,3],[[32,8],[32,9]],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,11],[[32,10]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"ul"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[32,10]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,11]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[11]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,10]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[10]}]]],[2," "],[13],[2,"\\n\\n"]],"parameters":[]}]]]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[8]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],[[32,14,["Type"]],"jwt"],null]],null,[["default","else"],[{"statements":[[6,[37,2],[[32,14,["Config","JWKSURL"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.JWKSURL"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,14,["Config","JWKSURL"]],[30,[36,7],["models.auth-method.Config.JWKSURL"],null]]],null],[2,"\\n "],[10,"span"],[12],[1,[32,14,["Config","JWKSURL"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.JWKSCACert"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"certificate",[],[["@item","@name"],[[32,14,["Config","JWKSCACert"]],[30,[36,7],["models.auth-method.Config.JWKSCACert"],null]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","JWTValidationPubKeys"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.JWTValidationPubKeys"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"certificate",[],[["@item","@name"],[[32,14,["Config","JWTValidationPubKeys"]],[30,[36,7],["models.auth-method.Config.JWTValidationPubKeys"],null]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","OIDCDiscoveryURL"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.OIDCDiscoveryURL"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,14,["Config","OIDCDiscoveryURL"]],[30,[36,7],["models.auth-method.Config.OIDCDiscoveryURL"],null]]],null],[2,"\\n "],[10,"span"],[12],[1,[32,14,["Config","OIDCDiscoveryURL"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","JWTSupportedAlgs"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.JWTSupportedAlgs"],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,8],[", ",[32,14,["Config","JWTSupportedAlgs"]]],null]],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","BoundAudiences"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.BoundAudiences"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[32,14,["Config","BoundAudiences"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,7]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,6],[[30,[36,5],[[30,[36,5],[[30,[36,10],["BoundIssuer","ExpirationLeeway","NotBeforeLeeway","ClockSkewLeeway"],null]],null]],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,3],[[32,14,["Config"]],[32,6]],null]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],[[30,[36,9],["models.auth-method.Config.",[32,6]],null]],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,3],[[32,14,["Config"]],[32,6]],null]],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[6]}]]]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],[[32,14,["Type"]],"oidc"],null]],null,[["default"],[{"statements":[[6,[37,2],[[32,14,["Config","OIDCDiscoveryURL"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.OIDCDiscoveryURL"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,14,["Config","OIDCDiscoveryURL"]],[30,[36,7],["models.auth-method.Config.OIDCDiscoveryURL"],null]]],null],[2,"\\n "],[10,"span"],[12],[1,[32,14,["Config","OIDCDiscoveryURL"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","OIDCDiscoveryCACert"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.OIDCDiscoveryCACert"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"certificate",[],[["@item","@name"],[[32,14,["Config","OIDCDiscoveryCACert"]],[30,[36,7],["models.auth-method.Config.OIDCDiscoveryCACert"],null]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","OIDCClientID"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.OIDCClientID"],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,14,["Config","OIDCClientID"]]],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","OIDCClientSecret"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.OIDCClientSecret"],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,14,["Config","OIDCClientSecret"]]],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","AllowedRedirectURIs"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.AllowedRedirectURIs"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[32,14,["Config","AllowedRedirectURIs"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,5],"Redirect URI"]],null],[2,"\\n "],[10,"span"],[12],[1,[32,5]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[5]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","BoundAudiences"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.BoundAudiences"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[32,14,["Config","BoundAudiences"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,4]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[4]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","OIDCScopes"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.OIDCScopes"],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[32,14,["Config","OIDCScopes"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,3]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","JWTSupportedAlgs"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[30,[36,7],["models.auth-method.Config.JWTSupportedAlgs"],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,8],[", ",[32,14,["Config","JWTSupportedAlgs"]]],null]],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,14,["Config","VerboseOIDCLogging"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[14,0,"check"],[12],[1,[30,[36,7],["models.auth-method.Config.VerboseOIDCLogging"],null]],[13],[2,"\\n "],[10,"dd"],[12],[10,"input"],[14,"disabled","disabled"],[15,"checked",[32,14,["Config","VerboseOIDCLogging"]]],[14,4,"checkbox"],[12],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,2],[[30,[36,13],[[30,[36,1],[[32,14,["Type"]],"aws-iam"],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"hr"],[12],[13],[2,"\\n\\n "],[10,"section"],[14,0,"claim-mappings"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Claim Mappings"],[13],[2,"\\n"],[6,[37,2],[[32,14,["Config","ClaimMappings"]]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"Use this if the claim you are capturing is singular. When mapped, the values can be any of a number, string, or boolean and will all be stringified when returned."],[13],[2,"\\n "],[10,"table"],[12],[2,"\\n "],[10,"thead"],[12],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Key"],[13],[2,"\\n "],[10,"td"],[12],[2,"Value"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[30,[36,4],[[32,14,["Config","ClaimMappings"]]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[1,[30,[36,3],[[32,2],0],null]],[13],[2,"\\n "],[10,"td"],[12],[1,[30,[36,3],[[32,2],1],null]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"No claim mappings"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"Use this if the claim you are capturing is singular. When mapped, the values can be any of a number, string, or boolean and will all be stringified when returned."],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,14,["Type"]],"jwt"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/security/acl/auth-methods/jwt#claimmappings"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the documentation"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/security/acl/auth-methods/oidc#claimmappings"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the documentation"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n\\n "],[10,"hr"],[12],[13],[2,"\\n\\n "],[10,"section"],[14,0,"list-claim-mappings"],[12],[2,"\\n "],[10,"h2"],[12],[2,"List Claim Mappings"],[13],[2,"\\n"],[6,[37,2],[[32,14,["Config","ListClaimMappings"]]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"Use this if the claim you are capturing is list-like (such as groups). When mapped, the values can be any of a number, string, or boolean and will all be stringified when returned."],[13],[2,"\\n "],[10,"table"],[12],[2,"\\n "],[10,"thead"],[12],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Key"],[13],[2,"\\n "],[10,"td"],[12],[2,"Value"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[30,[36,4],[[32,14,["Config","ListClaimMappings"]]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[1,[30,[36,3],[[32,1],0],null]],[13],[2,"\\n "],[10,"td"],[12],[1,[30,[36,3],[[32,1],1],null]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"No list claim mappings"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"Use this if the claim you are capturing is list-like (such as groups). When mapped, the values can be any of a number, string, or boolean and will all be stringified when returned."],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,14,["Type"]],"jwt"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/security/acl/auth-methods/jwt#listclaimmappings"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the documentation"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/security/acl/auth-methods/oidc#listclaimmappings"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the documentation"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13]],"hasEval":false,"upvars":["env","eq","if","get","entries","-track-array","each","t","join","concat","array","array-is-array","let","not"]}',meta:{moduleName:"consul-ui/components/consul/auth-method/view/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/bucket/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"WPJVSna7",block:'{"symbols":["@item","@service","@nspace","@partition"],"statements":[[6,[37,2],[[30,[36,1],[[32,4],[30,[36,4],["use partitions"],null]],null]],null,[["default","else"],[{"statements":[[6,[37,2],[[30,[36,3],[[32,1,["Partition"]],[32,4]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"consul-bucket-list"],[12],[2,"\\n "],[11,"dt"],[24,0,"partition"],[4,[38,0],null,null],[12],[2,"\\n Admin Partition\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Partition"]]],[2,"\\n "],[13],[2,"\\n "],[11,"dt"],[24,0,"nspace"],[4,[38,0],null,null],[12],[2,"\\n Namespace\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Namespace"]]],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,2],[[30,[36,1],[[32,2],[32,1,["Service"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[14,0,"service"],[12],[2,"\\n Service\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Service"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],[[32,3],[30,[36,4],["use nspace"],null]],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,3],[[32,1,["Namespace"]],[32,3]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"consul-bucket-list"],[12],[2,"\\n "],[11,"dt"],[24,0,"nspace"],[4,[38,0],null,null],[12],[2,"\\n Namespace\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Namespace"]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,2],[32,1,["Service"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[14,0,"service"],[12],[2,"\\n Service\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Service"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["tooltip","and","if","not-eq","can"]}',meta:{moduleName:"consul-ui/components/consul/bucket/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/datacenter/selector/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"5dl+NDsZ",block:'{"symbols":["disclosure","panel","menu","item","@dc","@nspace","@dcs"],"statements":[[10,"li"],[14,0,"dcs"],[12],[2,"\\n "],[8,"disclosure-menu",[[24,"aria-label","Datacenter"]],[["@items"],[[30,[36,8],["Primary:desc","Local:desc","Name:asc",[32,7]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["Action"]],[[4,[38,7],["click",[32,1,["toggle"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[32,5,["Name"]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,9],["/*/*/*/datacenters"],null],[30,[36,11],[[32,0],[30,[36,10],[[32,7]],null]],[["value"],["data"]]]]],null],[2,"\\n "],[8,[32,2,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,3,["items"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,3,["Item"]],[[16,"aria-current",[30,[36,1],[[30,[36,0],[[32,5,["Name"]],[32,4,["Name"]]],null],"true"],null]],[16,0,[30,[36,3],[[30,[36,2],["is-local",[32,4,["Local"]]],null],[30,[36,2],["is-primary",[32,4,["Primary"]]],null]],null]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Action"]],[[4,[38,7],["click",[32,1,["close"]]],null]],[["@href"],[[30,[36,6],["."],[["params"],[[30,[36,5],null,[["dc","partition","nspace"],[[32,4,["Name"]],[29],[30,[36,1],[[30,[36,4],[[32,6,["length"]],0],null],[32,6],[29]],null]]]]]]]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,4,["Name"]]],[2,"\\n"],[6,[37,1],[[32,4,["Primary"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[2,"Primary"],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[32,4,["Local"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[2,"Local"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[4]}]]],[2," "]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["eq","if","array","class-map","gt","hash","href-to","on","sort-by","uri","mut","action","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/datacenter/selector/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/discovery-chain/index",["exports","consul-ui/components/consul/discovery-chain/utils"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"tgH7XXQj",block:'{"symbols":["item","dest","item","item","dest","item","dest","splitter","src","item","index","destRect","dest","item","src","destRect","dest","item","item","item"],"statements":[[10,"style"],[12],[2,"\\n"],[6,[37,6],[[35,19,["nodes"]]],null,[["default"],[{"statements":[[2," "],[1,[35,19,["nodes"]]],[2," {\\n opacity: 1 !important;\\n\\n background-color: var(--tone-gray-000);\\n border: var(--decor-border-100);\\n border-radius: var(--decor-radius-200);\\n border-color: rgb(var(--tone-gray-500));\\n box-shadow: var(--decor-elevation-600);\\n }\\n"]],"parameters":[]}]]],[6,[37,6],[[35,19,["edges"]]],null,[["default"],[{"statements":[[2," "],[1,[35,19,["edges"]]],[2," {\\n opacity: 1;\\n }\\n"]],"parameters":[]}]]],[13],[2,"\\n\\n"],[10,"div"],[14,0,"routes"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[35,20,["ServiceName"]]],[2," Router\\n "],[11,"span"],[4,[38,12],["Use routers to intercept traffic using Layer 7 criteria such as path prefixes or http headers."],null],[12],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,"role","group"],[12],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[35,21]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/discovery-chain/route-card",[[4,[38,18],[[30,[36,17],[[30,[36,16],[[32,20],"rect"],null]],[["from"],[[32,0,["edges"]]]]]],null]],[["@item","@onclick"],[[32,20],[30,[36,15],[[32,0],"click"],null]]],null],[2,"\\n"]],"parameters":[20]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n\\n"],[10,"div"],[14,0,"splitters"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[2,"\\n Splitters\\n "],[11,"span"],[4,[38,12],["Splitters are configured to split incoming requests across different services or subsets of a single service."],null],[12],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,"role","group"],[12],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[30,[36,23],["Name",[35,22]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/discovery-chain/splitter-card",[[4,[38,18],[[30,[36,17],[[30,[36,16],[[32,19],"rect"],null]],[["from"],[[32,0,["edges"]]]]]],null]],[["@item","@onclick"],[[32,19],[30,[36,15],[[32,0],"click"],null]]],null],[2,"\\n"]],"parameters":[19]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n\\n"],[10,"div"],[14,0,"resolvers"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[2,"\\n Resolvers\\n "],[11,"span"],[4,[38,12],["Resolvers are used to define which instances of a service should satisfy discovery requests."],null],[12],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,"role","group"],[12],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[30,[36,23],["Name",[35,24]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/discovery-chain/resolver-card",[[4,[38,18],[[30,[36,17],[[30,[36,16],[[32,18],"rect"],null]],[["from"],[[32,0,["edges"]]]]]],null]],[["@item","@edges","@onclick"],[[32,18],[32,0,["edges"]],[30,[36,15],[[32,0],"click"],null]]],null],[2,"\\n"]],"parameters":[18]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n\\n"],[1,[34,25]],[2,"\\n\\n"],[11,"svg"],[24,0,"edges"],[24,"width","100%"],[24,"height","100%"],[24,"preserveAspectRatio","none"],[4,[38,26],[[30,[36,16],[[32,0],"edges"],null]],null],[12],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[35,21]],null]],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,14,["rect"]]],null,[["default"],[{"statements":[[6,[37,4],[[32,14,["rect"]],[32,14,["NextItem","rect"]]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,13],[[30,[36,2],null,[["x","y"],[[32,16,["x"]],[30,[36,1],[[32,16,["y"]],[30,[36,0],[[32,16,["height"]],2],null]],null]]]],[30,[36,9],[[32,14,["ID"]]],null]],null]],null,[["default"],[{"statements":[[2,"\\n "],[10,"path"],[15,1,[30,[36,9],[[32,14,["ID"]],">",[32,14,["NextNode"]]],null]],[15,"d",[30,[36,10],[[30,[36,2],null,[["x","y"],[[32,17,["x"]],[30,[36,14],[[32,17,["y"]],0],null]]]]],[["src"],[[30,[36,2],null,[["x","y"],[[32,15,["right"]],[30,[36,1],[[32,15,["y"]],[30,[36,0],[[32,15,["height"]],2],null]],null]]]]]]]],[12],[13],[2,"\\n\\n"]],"parameters":[17]}]]]],"parameters":[15,16]}]]]],"parameters":[]}]]]],"parameters":[14]}]]],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[35,22]],null]],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,8,["rect"]]],null,[["default"],[{"statements":[[6,[37,4],[[32,8,["rect"]]],null,[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[30,[36,7],[[32,8,["Splits"]]],null]],null]],null,[["default"],[{"statements":[[6,[37,4],[[32,10,["NextItem","rect"]]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,13],[[30,[36,2],null,[["x","y"],[[32,12,["x"]],[30,[36,1],[[32,12,["y"]],[30,[36,0],[[32,12,["height"]],2],null]],null]]]],[30,[36,9],[[32,8,["ID"]],"-",[32,11]],null]],null]],null,[["default"],[{"statements":[[2,"\\n "],[11,"path"],[16,1,[30,[36,9],["splitter:",[32,8,["Name"]],">",[32,10,["NextNode"]]],null]],[24,0,"split"],[16,"d",[30,[36,10],[[30,[36,2],null,[["x","y"],[[32,13,["x"]],[32,13,["y"]]]]]],[["src"],[[30,[36,2],null,[["x","y"],[[32,9,["right"]],[30,[36,1],[[32,9,["y"]],[30,[36,0],[[32,9,["height"]],2],null]],null]]]]]]]],[4,[38,12],[[30,[36,9],[[30,[36,11],[[30,[36,3],[[32,10,["Weight"]],0],null]],[["decimals"],[2]]],"%"],null]],[["options"],[[30,[36,2],null,[["followCursor"],[true]]]]]],[12],[13],[2,"\\n\\n"]],"parameters":[13]}]]]],"parameters":[12]}]]]],"parameters":[10,11]}]]]],"parameters":[9]}]]]],"parameters":[]}]]]],"parameters":[8]}]]],[2,"\\n"],[13],[2,"\\n\\n"],[10,"svg"],[14,0,"resolver-inlets"],[14,"height","100%"],[12],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[35,21]],null]],null]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,5],[[32,6,["NextNode"]],"resolver:"],null]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,6,["NextItem","rect"]],[30,[36,2],null,[["y","height"],[0,0]]]],null]],null,[["default"],[{"statements":[[2," "],[10,"circle"],[14,"r","2.5"],[14,"cx","5"],[15,"cy",[30,[36,1],[[32,7,["y"]],[30,[36,0],[[32,7,["height"]],2],null]],null]],[12],[13],[2,"\\n"]],"parameters":[7]}]]]],"parameters":[]}]]]],"parameters":[6]}]]],[6,[37,8],[[30,[36,7],[[30,[36,7],[[35,22]],null]],null]],null,[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[30,[36,7],[[32,3,["Splits"]]],null]],null]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,4,["NextItem","rect"]],[30,[36,2],null,[["y","height"],[0,0]]]],null]],null,[["default"],[{"statements":[[2," "],[10,"circle"],[14,"r","2.5"],[14,"cx","5"],[15,"cy",[30,[36,1],[[32,5,["y"]],[30,[36,0],[[32,5,["height"]],2],null]],null]],[12],[13],[2,"\\n"]],"parameters":[5]}]]]],"parameters":[4]}]]]],"parameters":[3]}]]],[13],[2,"\\n\\n"],[10,"svg"],[14,0,"splitter-inlets"],[14,"height","100%"],[12],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[35,21]],null]],null]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,5],[[32,1,["NextNode"]],"splitter:"],null]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,1,["NextItem","rect"]],[30,[36,2],null,[["y","height"],[0,0]]]],null]],null,[["default"],[{"statements":[[2," "],[10,"circle"],[14,"r","2.5"],[14,"cx","5"],[15,"cy",[30,[36,1],[[32,2,["y"]],[30,[36,0],[[32,2,["height"]],2],null]],null]],[12],[13],[2,"\\n"]],"parameters":[2]}]]]],"parameters":[]}]]]],"parameters":[1]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["div","add","hash","or","let","string-starts-with","if","-track-array","each","concat","svg-curve","round","tooltip","tween-to","sub","action","set","dom-position","on-resize","selected","chain","routes","splitters","sort-by","resolvers","nodes","did-insert"]}',meta:{moduleName:"consul-ui/components/consul/discovery-chain/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend({dom:Ember.inject.service("dom"),ticker:Ember.inject.service("ticker"),dataStructs:Ember.inject.service("data-structs"),classNames:["discovery-chain"],classNameBindings:["active"],selectedId:"",init:function(){this._super(...arguments),this._listeners=this.dom.listeners()},didInsertElement:function(){this._listeners.add(this.dom.document(),{click:e=>{this.dom.closest('[class$="-card"]',e.target)||(Ember.set(this,"active",!1),Ember.set(this,"selectedId",""))}})},willDestroyElement:function(){this._super(...arguments),this._listeners.remove(),this.ticker.destroy(this)},splitters:Ember.computed("chain.Nodes",(function(){return(0,t.getSplitters)(Ember.get(this,"chain.Nodes"))})),routes:Ember.computed("chain.Nodes",(function(){const e=(0,t.getRoutes)(Ember.get(this,"chain.Nodes"),this.dom.guid) +if(!e.find(e=>"/"===Ember.get(e,"Definition.Match.HTTP.PathPrefix"))&&!e.find(e=>void 0===e.Definition)){let n +const r=`resolver:${this.chain.ServiceName}.${this.chain.Namespace}.${this.chain.Partition}.${this.chain.Datacenter}`,a=`splitter:${this.chain.ServiceName}.${this.chain.Namespace}.${this.chain.Partition}` +if(void 0!==this.chain.Nodes[a]?n=a:void 0!==this.chain.Nodes[r]&&(n=r),void 0!==n){const r={Default:!0,ID:"route:"+this.chain.ServiceName,Name:this.chain.ServiceName,Definition:{Match:{HTTP:{PathPrefix:"/"}}},NextNode:n} +e.push((0,t.createRoute)(r,this.chain.ServiceName,this.dom.guid))}}return e})),nodes:Ember.computed("routes","splitters","resolvers",(function(){let e=this.resolvers.reduce((e,t)=>(e["resolver:"+t.ID]=t,t.Children.reduce((e,t)=>(e["resolver:"+t.ID]=t,e),e),e),{}) +return e=this.splitters.reduce((e,t)=>(e[t.ID]=t,e),e),e=this.routes.reduce((e,t)=>(e[t.ID]=t,e),e),Object.entries(e).forEach(([t,n])=>{void 0!==n.NextNode&&(n.NextItem=e[n.NextNode]),void 0!==n.Splits&&n.Splits.forEach(t=>{void 0!==t.NextNode&&(t.NextItem=e[t.NextNode])})}),""})),resolvers:Ember.computed("chain.{Nodes,Targets}",(function(){return(0,t.getResolvers)(this.chain.Datacenter,this.chain.Partition,this.chain.Namespace,Ember.get(this,"chain.Targets"),Ember.get(this,"chain.Nodes"))})),graph:Ember.computed("splitters","routes.[]",(function(){const e=this.dataStructs.graph() +return this.splitters.forEach(t=>{t.Splits.forEach(n=>{e.addLink(t.ID,n.NextNode)})}),this.routes.forEach(t=>{e.addLink(t.ID,t.NextNode)}),e})),selected:Ember.computed("selectedId","graph",(function(){if(""===this.selectedId||!this.dom.element("#"+this.selectedId))return{} +const e=this.selectedId,t=e.split(":").shift(),n=[e],r=[] +return this.graph.forEachLinkedNode(e,(e,a)=>{n.push(e.id),r.push(`${a.fromId}>${a.toId}`),this.graph.forEachLinkedNode(e.id,(e,a)=>{const l=e.id.split(":").shift() +t!==l&&"splitter"!==t&&"splitter"!==l&&(n.push(e.id),r.push(`${a.fromId}>${a.toId}`))})}),{nodes:n.map(e=>"#"+CSS.escape(e)),edges:r.map(e=>"#"+CSS.escape(e))}})),actions:{click:function(e){const t=e.currentTarget.getAttribute("id") +t===this.selectedId?(Ember.set(this,"active",!1),Ember.set(this,"selectedId","")):(Ember.set(this,"active",!0),Ember.set(this,"selectedId",t))}}})) +e.default=r})),define("consul-ui/components/consul/discovery-chain/resolver-card/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"2+oC+0pQ",block:'{"symbols":["child","target","target","item","@onclick","@edges","@item","&attrs"],"statements":[[10,"div"],[14,0,"resolver-card"],[12],[2,"\\n "],[11,"header"],[17,8],[16,"onclick",[30,[36,5],[[32,5]],null]],[16,1,[30,[36,0],["resolver:",[32,7,["ID"]]],null]],[12],[2,"\\n "],[10,"a"],[14,3,""],[12],[2,"\\n "],[10,"h3"],[12],[1,[32,7,["Name"]]],[13],[2,"\\n"],[6,[37,4],[[32,7,["Failover"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"failover"],[12],[2,"\\n "],[11,"dt"],[4,[38,1],[[30,[36,0],[[32,7,["Failover","Type"]]," failover"],null]],null],[12],[2,"\\n "],[1,[30,[36,0],[[32,7,["Failover","Type"]]," failover"],null]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"ol"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,7,["Failover","Targets"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[10,"span"],[12],[1,[32,4]],[13],[13],[2,"\\n"]],"parameters":[4]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,4],[[30,[36,9],[[32,7,["Children","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"ul"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,7,["Children"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[11,"li"],[16,"onclick",[30,[36,5],[[32,5]],null]],[16,1,[30,[36,0],["resolver:",[32,1,["ID"]]],null]],[4,[38,8],[[30,[36,7],[[30,[36,6],[[32,1],"rect"],null]],[["from"],[[32,6]]]]],null],[12],[2,"\\n "],[10,"a"],[14,3,""],[12],[2,"\\n"],[6,[37,4],[[32,1,["Redirect"]]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[14,0,"redirect"],[12],[2,"\\n "],[11,"dt"],[4,[38,1],[[30,[36,0],[[32,1,["Redirect"]]," redirect"],null]],null],[12],[2,"\\n "],[1,[32,1,["Redirect"]]],[2," redirect\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,4],[[32,1,["Failover"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"failover"],[12],[2,"\\n "],[11,"dt"],[4,[38,1],[[30,[36,0],[[32,1,["Failover","Type"]]," failover"],null]],null],[12],[2,"\\n "],[1,[32,1,["Failover","Type"]]],[2," failover\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"ol"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,1,["Failover","Targets"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,3]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,4],[[32,1,["Failover"]]],null,[["default","else"],[{"statements":[[2," "],[1,[32,1,["Name"]]],[2,"\\n "],[10,"dl"],[14,0,"failover"],[12],[2,"\\n "],[11,"dt"],[4,[38,1],[[30,[36,0],[[32,1,["Failover","Type"]]," failover"],null]],null],[12],[2,"\\n "],[1,[30,[36,0],[[32,1,["Failover","Type"]]," failover"],null]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"ol"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,1,["Failover","Targets"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,2]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,1,["Name"]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["concat","tooltip","-track-array","each","if","optional","set","dom-position","on-resize","gt"]}',meta:{moduleName:"consul-ui/components/consul/discovery-chain/resolver-card/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/discovery-chain/route-card/index",["exports","@glimmer/component"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"m02p4dNF",block:'{"symbols":["item","item","item","@item","@onclick","&attrs"],"statements":[[11,"a"],[24,0,"route-card"],[16,"onclick",[32,5]],[16,1,[32,4,["ID"]]],[17,6],[12],[2,"\\n "],[10,"header"],[15,0,[30,[36,5],[[30,[36,4],[[32,0,["path","value"]],"/"],null],"short"],null]],[12],[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,4,["Definition","Match","HTTP","Methods","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"ul"],[14,0,"match-methods"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,4,["Definition","Match","HTTP","Methods"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[1,[32,3]],[13],[2,"\\n"]],"parameters":[3]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[1,[32,0,["path","type"]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,0,["path","value"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,4,["Definition","Match","HTTP","Header","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"section"],[14,0,"match-headers"],[12],[2,"\\n "],[11,"header"],[4,[38,1],["Header"],null],[12],[2,"\\n "],[10,"h4"],[12],[2,"Headers"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,4,["Definition","Match","HTTP","Header"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[2,"\\n "],[1,[32,2,["Name"]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,0],[[32,2]],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,5],[[30,[36,6],[[32,4,["Definition","Match","HTTP","QueryParam","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"section"],[14,0,"match-queryparams"],[12],[2,"\\n "],[11,"header"],[4,[38,1],["Query Params"],null],[12],[2,"\\n "],[10,"h4"],[12],[2,"Query Params"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,4,["Definition","Match","HTTP","QueryParam"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,0],[[32,1]],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["route-match","tooltip","-track-array","each","eq","if","gt"]}',meta:{moduleName:"consul-ui/components/consul/discovery-chain/route-card/index.hbs"}}) +class r extends t.default{get path(){return Object.entries(Ember.get(this.args.item,"Definition.Match.HTTP")||{}).reduce((function(e,[t,n]){return t.toLowerCase().startsWith("path")?{type:t.replace("Path",""),value:n}:e}),{type:"Prefix",value:"/"})}}e.default=r,Ember._setComponentTemplate(n,r)})),define("consul-ui/components/consul/discovery-chain/splitter-card/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"fGt7Ht9M",block:'{"symbols":["&attrs","@item","@onclick"],"statements":[[10,"div"],[12],[2,"\\n "],[11,"a"],[17,1],[16,1,[32,2,["ID"]]],[24,0,"splitter-card"],[16,"onclick",[30,[36,0],[[32,3]],null]],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h3"],[12],[1,[32,2,["Name"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["optional"]}',meta:{moduleName:"consul-ui/components/consul/discovery-chain/splitter-card/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/discovery-chain/utils",["exports"],(function(e){function t(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;ne.Type===t)},l=function(e,t,n="default",r="default",a){return void 0===e[t]&&(e[t]={ID:`${t}.${n}.${r}.${a}`,Name:t,Children:[]}),e[t]},s=function(e,t){let n +const r=e.map((function(e){const[r,a]=[t,e].map(e=>e.split(".").reverse()),l=["Datacenter","Partition","Namespace","Service","Subset"] +return a.find((function(e,t){const a=e!==r[t] +return a&&(n=l[t]),a}))})) +return{Type:n,Targets:r}} +e.getAlternateServices=s +e.getSplitters=function(e){return a(e,"splitter").map((function(e){const t=e.Name.split(".") +return t.reverse(),t.shift(),t.shift(),t.reverse(),n(n({},e),{},{ID:"splitter:"+e.Name,Name:t.join(".")})}))} +e.getRoutes=function(e,t){return a(e,"router").reduce((function(e,n){return e.concat(n.Routes.map((function(e){return i(e,n.Name,t)})))}),[])} +e.getResolvers=function(e,t="default",n="default",r={},a={}){const i={} +return Object.values(a).filter(e=>"resolver"===e.Type).forEach((function(r){const a=r.Name.split(".") +let o +a.length>4&&(o=a.shift()),a.reverse(),a.shift(),a.shift(),a.shift(),a.reverse() +const u=a.join("."),c=l(i,u,n,t,e) +let d +if(void 0!==r.Resolver.Failover&&(d=s(r.Resolver.Failover.Targets,r.Name)),o){const e={Subset:!0,ID:r.Name,Name:o} +void 0!==d&&(e.Failover=d),c.Children.push(e)}else void 0!==d&&(c.Failover=d)})),Object.values(r).forEach(r=>{if(void 0!==a["resolver:"+r.ID]){const o=s([r.ID],`service.${n}.${t}.${e}`) +if("Service"!==o.Type){const u=l(i,r.Service,n,t,e),c={Redirect:o.Type,ID:r.ID,Name:r[o.Type]} +void 0!==a["resolver:"+r.ID].Resolver.Failover&&(c.Failover=s(a["resolver:"+r.ID].Resolver.Failover.Targets,r.ID)),u.Children.push(c)}}}),Object.values(i)} +const i=function(e,t,r){return n(n({},e),{},{Default:e.Default||void 0===e.Definition.Match,ID:`route:${t}-${r(e.Definition)}`})} +e.createRoute=i})),define("consul-ui/components/consul/exposed-path/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"JI0j+pbJ",block:'{"symbols":["path","combinedAddress","@address","&attrs","@items"],"statements":[[11,"div"],[24,0,"consul-exposed-path-list"],[17,4],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,4],[[30,[36,3],[[30,[36,3],[[32,5]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[10,"div"],[14,0,"header"],[12],[2,"\\n"],[6,[37,1],[[30,[36,0],[[32,3],":",[32,1,["ListenerPort"]],[32,1,["Path"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"p"],[14,0,"combined-address"],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[32,2]],[2,"\\n "],[13],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,2],"Address"]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"detail"],[12],[2,"\\n"],[6,[37,2],[[32,1,["Protocol"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"protocol"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Protocol\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Protocol"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,1,["ListenerPort"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"port"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Listener Port\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n listening on :"],[1,[32,1,["ListenerPort"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,1,["LocalPathPort"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"port"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Local Path Port\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n local port :"],[1,[32,1,["LocalPathPort"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,1,["Path"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"path"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Path\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Path"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["concat","let","if","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/exposed-path/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/external-source/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"uL9PpB5h",block:'{"symbols":["externalSource","@label","&attrs","@withInfo","@item"],"statements":[[6,[37,2],[[32,5]],null,[["default"],[{"statements":[[6,[37,7],[[30,[36,6],[[32,5]],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,5],[[32,4],[30,[36,4],[[32,1],"consul-api-gateway"],null]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[14,0,"tooltip-panel"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[11,"span"],[16,0,[31,["consul-external-source ",[32,1]]]],[17,3],[12],[2,"\\n Registered via "],[1,[30,[36,1],[[30,[36,0],["common.brand.",[32,1]],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"menu-panel",[],[["@position","@menu"],["left",false]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n API Gateways manage north-south traffic from external services to services in the Datacenter. For more information, read our documentation.\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,"role","separator"],[12],[2,"\\n About "],[1,[30,[36,1],[[30,[36,0],["common.brand.",[32,1]],null]],null]],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,"role","none"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[14,"tabindex","-1"],[14,"role","menuitem"],[15,6,[30,[36,0],[[30,[36,3],["CONSUL_DOCS_LEARN_URL"],null]],null]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"\\n Learn guides\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,1]],null,[["default"],[{"statements":[[2," "],[11,"span"],[16,0,[31,["consul-external-source ",[32,1]]]],[17,3],[12],[2,"\\n"],[6,[37,2],[[32,2]],null,[["default","else"],[{"statements":[[2," "],[1,[32,2]],[2,"\\n"]],"parameters":[]},{"statements":[[2," Registered via "],[1,[30,[36,1],[[30,[36,0],["common.brand.",[32,1]],null]],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["concat","t","if","env","eq","and","service/external-source","let"]}',meta:{moduleName:"consul-ui/components/consul/external-source/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/health-check/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"IRYzjPsd",block:'{"symbols":["item","&attrs","@items"],"statements":[[11,"div"],[24,0,"consul-health-check-list"],[17,2],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[32,3]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[15,0,[30,[36,1],["health-check-output ",[32,1,["Status"]]],null]],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[1,[32,1,["Name"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,1,["Kind"]],"node"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"dt"],[12],[2,"NodeName"],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,1,["Node"]]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"dt"],[12],[2,"ServiceName"],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,1,["ServiceName"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"CheckID"],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,4],[[32,1,["CheckID"]],"-"],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Type"],[13],[2,"\\n "],[10,"dd"],[14,"data-health-check-type",""],[12],[2,"\\n "],[1,[32,1,["Type"]]],[2,"\\n"],[6,[37,3],[[32,1,["Exposed"]]],null,[["default"],[{"statements":[[2," "],[11,"em"],[4,[38,0],["Expose.checks is set to true, so all registered HTTP and gRPC check paths are exposed through Envoy for the Consul agent."],null],[12],[2,"Exposed"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Notes"],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,4],[[32,1,["Notes"]],"-"],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Output"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"pre"],[12],[10,"code"],[12],[1,[32,1,["Output"]]],[13],[13],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,1,["Output"]],"output"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["tooltip","concat","eq","if","or","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/health-check/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/health-check/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"FSYiXBjC",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","item","components","Optgroup","Option","item","components","Optgroup","Option","state","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-healthcheck-search-bar"],[17,33]],[["@filter","@namedBlocksInfo"],[[32,30],[30,[36,14],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.health-check.search-bar.",[32,26,["status","key"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,26,["status","key"]]],null],[30,[36,10],["common.consul.",[32,26,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.health-check.search-bar.",[32,26,["status","key"]],".options.",[32,26,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,26,["status","value"]]],null],[30,[36,10],["common.consul.",[32,26,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,26,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,27]," ",[32,28]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,27]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,28]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[27,28]}]]],[2,"\\n "]],"parameters":[26]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,21,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,31]],null],[32,32],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[32,30,["searchproperty"]]],null,[["default"],[{"statements":[[2," "],[8,[32,21,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,30,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,22,["Optgroup"]],[32,22,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,30,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,24],[],[["@value","@selected"],[[32,25],[30,[36,9],[[32,25],[32,30,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,13],[[32,25]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[25]}]]]],"parameters":[23,24]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[22]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[21]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-status"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,30,["status","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.consul.status"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,17,["Optgroup"]],[32,17,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["passing","warning","critical","empty"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,19],[[16,0,[31,["value-",[32,20]]]]],[["@value","@selected"],[[32,20],[30,[36,9],[[32,20],[32,30,["status","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[32,20]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,20]],null]],null]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[20]}]]]],"parameters":[18,19]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[17]}]]],[2,"\\n"],[6,[37,8],[[32,30,["kind"]]],null,[["default"],[{"statements":[[2," "],[8,[32,8,["Select"]],[[24,0,"type-kind"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,30,["kind","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.health-check.search-bar.kind.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,13,["Optgroup"]],[32,13,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["service","node"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,15],[],[["@value","@selected"],[[32,16],[30,[36,9],[[32,16],[32,30,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["components.consul.health-check.search-bar.kind.options.",[32,16]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,16]],null]],null]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[16]}]]]],"parameters":[14,15]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,[32,8,["Select"]],[[24,0,"type-check"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,30,["check","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.health-check.search-bar.check.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["alias","docker","grpc","http","script","serf","tcp","ttl"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,30,["check","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["components.consul.health-check.search-bar.check.options.",[32,12]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,12]],null]],null]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,29,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Name:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Name:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null],[30,[36,4],["Status:asc",[30,[36,0],["common.sort.status.asc"],null]],null],[30,[36,4],["Status:desc",[30,[36,0],["common.sort.status.desc"],null]],null],[30,[36,4],["Kind:asc",[30,[36,0],["components.consul.health-check.search-bar.sort.kind.asc"],null]],null],[30,[36,4],["Kind:desc",[30,[36,0],["components.consul.health-check.search-bar.sort.kind.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,29,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.status"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:asc",[30,[36,1],["Status:asc",[32,29,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:desc",[30,[36,1],["Status:desc",[32,29,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["components.consul.health-check.search-bar.sort.name.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:asc",[30,[36,1],["Name:asc",[32,29,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:desc",[30,[36,1],["Name:desc",[32,29,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["components.consul.health-check.search-bar.sort.kind.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Kind:asc",[30,[36,1],["Kind:asc",[32,29]],null]]],[["default"],[{"statements":[[2,"Service to Node"]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Kind:desc",[30,[36,1],["Kind:desc",[32,29]],null]]],[["default"],[{"statements":[[2,"Node to Service"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/health-check/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})) +define("consul-ui/components/consul/instance-checks/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"rPbWf6F2",block:'{"symbols":["grouped","checks","status","humanized","@type","@items","&attrs"],"statements":[[6,[37,8],[[30,[36,10],["Status",[30,[36,3],[[32,6],[30,[36,5],null,null]],null]],null]],null,[["default"],[{"statements":[[6,[37,8],[[30,[36,3],[[30,[36,2],[[30,[36,9],[[32,1,["critical","length"]],0],null],[32,1,["critical"]]],null],[30,[36,2],[[30,[36,9],[[32,1,["warning","length"]],0],null],[32,1,["warning"]]],null],[30,[36,2],[[30,[36,9],[[32,1,["passing","length"]],0],null],[32,1,["passing"]]],null],[30,[36,5],null,null]],null]],null,[["default"],[{"statements":[[6,[37,8],[[32,2,["firstObject","Status"]]],null,[["default"],[{"statements":[[2," "],[11,"dl"],[16,0,[30,[36,6],["consul-instance-checks",[30,[36,5],["empty",[30,[36,1],[[32,2,["length"]],0],null]],null],[30,[36,5],[[32,3],[30,[36,4],[[32,2,["length"]],0],null]],null]],null]],[17,7],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,7],[[32,5]],null]],[2," Checks\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,8],[[30,[36,3],[[30,[36,2],[[30,[36,1],[[32,3],"critical"],null],"failing"],null],[30,[36,2],[[30,[36,1],[[32,3],"warning"],null],"with a warning"],null],[32,3]],null]],null,[["default"],[{"statements":[[2," "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[30,[36,1],[[32,2,["length"]],0],null],[30,[36,0],["No ",[32,5]," checks"],null]],null],[30,[36,2],[[30,[36,1],[[32,2,["length"]],[32,6,["length"]]],null],[30,[36,0],["All ",[32,5]," checks ",[32,4]],null]],null],[30,[36,0],[[32,2,["length"]],"/",[32,6,["length"]]," ",[32,5]," checks ",[32,4]],null]],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[4]}]]],[2," "],[13],[2,"\\n"]],"parameters":[3]}]]]],"parameters":[2]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["concat","eq","if","or","not-eq","array","class-map","capitalize","let","gt","group-by"]}',meta:{moduleName:"consul-ui/components/consul/instance-checks/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/intention/form/fieldsets/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"RvLiSiHb",block:'{"symbols":["modal","permissionForm","_action","radio","partition","nspace","service","partition","nspace","service","&attrs","@dc"],"statements":[[11,"div"],[17,11],[24,0,"consul-intention-fieldsets"],[12],[2,"\\n "],[10,"fieldset"],[15,"disabled",[34,22]],[12],[2,"\\n "],[10,"div"],[14,"role","group"],[12],[2,"\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Source"],[13],[2,"\\n "],[10,"label"],[15,0,[31,["type-select",[30,[36,9],[[35,1,["error","SourceName"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Source Service"],[13],[2,"\\n "],[8,"power-select-with-create",[],[["@disabled","@options","@searchField","@selected","@searchPlaceholder","@buildSuggestion","@showCreateWhen","@onCreate","@onChange"],[[30,[36,15],[[35,14]],null],[34,23],"Name",[34,24],"Type service name",[30,[36,3],[[32,0],"createNewLabel","Use a Consul Service called \'{{term}}\'"],null],[30,[36,3],[[32,0],"isUnique",[35,23]],null],[30,[36,3],[[32,0],[35,13],"SourceName"],null],[30,[36,3],[[32,0],[35,13],"SourceName"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[30,[36,12],[[32,10,["Name"]],"*"],null]],null,[["default","else"],[{"statements":[[2," * (All Services)\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,10,["Name"]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[10]}]]],[2,"\\n"],[6,[37,9],[[35,14]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"Search for an existing service, or enter any Service name."],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[6,[37,9],[[30,[36,25],["choose nspaces"],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[15,0,[31,["type-select",[30,[36,9],[[35,1,["error","SourceNS"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Source Namespace"],[13],[2,"\\n "],[8,"power-select-with-create",[],[["@disabled","@options","@selected","@searchPlaceholder","@buildSuggestion","@showCreateWhen","@onCreate","@onChange"],[[30,[36,15],[[35,14]],null],[34,18],[34,21],"Type namespace name",[30,[36,3],[[32,0],"createNewLabel","Use a Consul Namespace called \'{{term}}\'"],null],[30,[36,3],[[32,0],"isUnique",[35,18]],null],[30,[36,3],[[32,0],[35,13],"SourceNS"],null],[30,[36,3],[[32,0],[35,13],"SourceNS"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[30,[36,12],[[32,9,["Name"]],"*"],null]],null,[["default","else"],[{"statements":[[2," * (All Namespaces)\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,9,["Name"]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[9]}]]],[2,"\\n"],[6,[37,9],[[35,14]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"Search for an existing namespace, or enter any Namespace name."],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,9],[[30,[36,25],["choose partitions"],[["dc"],[[32,12]]]]],null,[["default"],[{"statements":[[2," "],[10,"label"],[15,0,[31,["type-select",[30,[36,9],[[35,1,["error","SourcePartition"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Source Partition"],[13],[2,"\\n "],[8,"power-select-with-create",[],[["@disabled","@options","@selected","@searchPlaceholder","@buildSuggestion","@showCreateWhen","@onCreate","@onChange"],[[30,[36,15],[[35,14]],null],[34,16],[34,20],"Type partition name",[30,[36,3],[[32,0],"createNewLabel","Use a Consul Partition called \'{{term}}\'"],null],[30,[36,3],[[32,0],"isUnique",[35,16]],null],[30,[36,3],[[32,0],[35,13],"SourcePartition"],null],[30,[36,3],[[32,0],[35,13],"SourcePartition"],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,8,["Name"]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n"],[6,[37,9],[[35,14]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"Search for an existing partition, or enter any Partition name."],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Destination"],[13],[2,"\\n "],[10,"label"],[15,0,[31,["type-select",[30,[36,9],[[35,1,["error","DestinationName"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Destination Service"],[13],[2,"\\n "],[8,"power-select-with-create",[],[["@disabled","@options","@searchField","@selected","@searchPlaceholder","@buildSuggestion","@showCreateWhen","@onCreate","@onChange"],[[30,[36,15],[[35,14]],null],[34,23],"Name",[34,26],"Type service name",[30,[36,3],[[32,0],"createNewLabel","Use a Consul Service called \'{{term}}\'"],null],[30,[36,3],[[32,0],"isUnique",[35,23]],null],[30,[36,3],[[32,0],[35,13],"DestinationName"],null],[30,[36,3],[[32,0],[35,13],"DestinationName"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[30,[36,12],[[32,7,["Name"]],"*"],null]],null,[["default","else"],[{"statements":[[2," * (All Services)\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,7,["Name"]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[7]}]]],[2,"\\n"],[6,[37,9],[[35,14]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"Search for an existing service, or enter any Service name."],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[6,[37,9],[[30,[36,25],["choose nspaces"],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[15,0,[31,["type-select",[30,[36,9],[[35,1,["error","DestinationNS"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Destination Namespace"],[13],[2,"\\n "],[8,"power-select-with-create",[],[["@disabled","@options","@searchField","@selected","@searchPlaceholder","@buildSuggestion","@showCreateWhen","@onCreate","@onChange"],[[30,[36,15],[[35,14]],null],[34,18],"Name",[34,19],"Type namespace name",[30,[36,3],[[32,0],"createNewLabel","Use a future Consul Namespace called \'{{term}}\'"],null],[30,[36,3],[[32,0],"isUnique",[35,18]],null],[30,[36,3],[[32,0],[35,13],"DestinationNS"],null],[30,[36,3],[[32,0],[35,13],"DestinationNS"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[30,[36,12],[[32,6,["Name"]],"*"],null]],null,[["default","else"],[{"statements":[[2," * (All Namespaces)\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,6,["Name"]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[6]}]]],[2,"\\n"],[6,[37,9],[[35,14]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"For the destination, you may choose any namespace for which you have access."],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,9],[[30,[36,25],["choose partitions"],[["dc"],[[32,12]]]]],null,[["default"],[{"statements":[[2," "],[10,"label"],[15,0,[31,["type-select",[30,[36,9],[[35,1,["error","DestinationPartition"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Destination Partition"],[13],[2,"\\n "],[8,"power-select-with-create",[],[["@disabled","@options","@searchField","@selected","@searchPlaceholder","@buildSuggestion","@showCreateWhen","@onCreate","@onChange"],[[30,[36,15],[[35,14]],null],[34,16],"Name",[34,17],"Type partition name",[30,[36,3],[[32,0],"createNewLabel","Use a future Consul Partition called \'{{term}}\'"],null],[30,[36,3],[[32,0],"isUnique",[35,16]],null],[30,[36,3],[[32,0],[35,13],"DestinationPartition"],null],[30,[36,3],[[32,0],[35,13],"DestinationPartition"],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,5,["Name"]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n"],[6,[37,9],[[35,14]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"For the destination, you may choose any partition for which you have access."],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"label"],[15,0,[31,["type-text",[30,[36,9],[[35,1,["error","Description"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Description (Optional)"],[13],[2,"\\n "],[10,"input"],[14,3,"Description"],[15,2,[34,1,["Description"]]],[14,"placeholder","Description (Optional)"],[15,"onchange",[30,[36,3],[[32,0],[35,13]],null]],[14,4,"text"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"span"],[14,0,"label"],[12],[2,"Should this source connect to the destination?"],[13],[2,"\\n "],[10,"div"],[14,"role","radiogroup"],[15,0,[30,[36,9],[[35,1,["error","Action"]]," has-error"],null]],[12],[2,"\\n"],[6,[37,30],[[30,[36,29],[[30,[36,29],[[30,[36,28],[[30,[36,27],null,[["intent","header","body"],["allow","Allow","The source service will be allowed to connect to the destination."]]],[30,[36,27],null,[["intent","header","body"],["deny","Deny","The source service will not be allowed to connect to the destination."]]],[30,[36,27],null,[["intent","header","body"],["","Application Aware","The source service may or may not connect to the destination service via unique permissions based on Layer 7 criteria: path, header, or method."]]]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"radio-card",[[16,0,[30,[36,10],["value-",[32,3,["intent"]]],null]]],[["@value","@checked","@onchange","@name"],[[32,3,["intent"]],[30,[36,9],[[30,[36,12],[[30,[36,11],[[35,1,["Action"]],""],null],[32,3,["intent"]]],null],"checked"],null],[30,[36,3],[[32,0],[35,13]],null],"Action"]],[["default"],[{"statements":[[2,"\\n "],[10,"header"],[12],[2,"\\n "],[1,[32,3,["header"]]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[32,3,["body"]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n"]],"parameters":[3]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,9],[[30,[36,12],[[30,[36,11],[[35,1,["Action"]],""],null],""],null]],null,[["default"],[{"statements":[[2," "],[10,"fieldset"],[14,0,"permissions"],[12],[2,"\\n "],[11,"button"],[24,4,"button"],[4,[38,7],["click",[30,[36,2],[[32,0,["modal","open"]]],null]],null],[12],[2,"\\n Add permission\\n "],[13],[2,"\\n "],[10,"h2"],[12],[2,"Permissions"],[13],[2,"\\n"],[6,[37,9],[[30,[36,8],[[35,1,["Permissions","length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/intention/notice/permissions",[],[[],[]],null],[2,"\\n "],[8,"consul/intention/permission/list",[],[["@items","@onclick","@ondelete"],[[34,1,["Permissions"]],[30,[36,6],[[30,[36,3],[[32,0],[30,[36,5],[[35,4]],null]],null],[30,[36,3],[[32,0],[30,[36,2],[[32,0,["modal","open"]]],null]],null]],null],[30,[36,3],[[32,0],"delete","Permissions",[35,1]],null]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n No permissions yet\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Permissions intercept an Intention\'s traffic using Layer 7 criteria, such as path prefixes and http headers.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/commands/intention"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Documentation"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_LEARN_URL"],null],"/consul/getting-started/connect"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the guide"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[8,"modal-dialog",[[24,0,"consul-intention-permission-modal"]],[["@onclose","@aria"],[[30,[36,3],[[32,0],[30,[36,5],[[35,4]],null],[29]],null],[30,[36,27],null,[["label"],["Edit Permission"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"modal",[32,1]]],null],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"Edit Permission"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/intention/permission/form",[],[["@item","@onsubmit"],[[34,4],[30,[36,3],[[32,0],"add","Permissions",[35,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"permissionForm",[32,2]]],null],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"button"],[14,0,"type-submit"],[15,"disabled",[30,[36,9],[[30,[36,15],[[32,0,["permissionForm","isDirty"]]],null],"disabled"],null]],[15,"onclick",[30,[36,6],[[30,[36,3],[[32,0],[32,0,["permissionForm","submit"]]],null],[30,[36,3],[[32,0],[32,1,["close"]]],null]],null]],[14,4,"button"],[12],[2,"\\n Save\\n "],[13],[2,"\\n "],[10,"button"],[14,0,"type-cancel"],[15,"onclick",[30,[36,6],[[30,[36,3],[[32,0],[32,0,["permissionForm","reset"]]],null],[30,[36,3],[[32,0],[32,1,["close"]]],null]],null]],[14,4,"button"],[12],[2,"\\n Cancel\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n\\n"],[13]],"hasEval":false,"upvars":["env","item","optional","action","permission","mut","queue","on","gt","if","concat","or","eq","onchange","create","not","partitions","DestinationPartition","nspaces","DestinationNS","SourcePartition","SourceNS","disabled","services","SourceName","can","DestinationName","hash","array","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/intention/form/fieldsets/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",shouldShowPermissionForm:!1,actions:{createNewLabel:function(e,t){return e.replace(/{{term}}/g,t)},isUnique:function(e,t){return!e.findBy("Name",t)},add:function(e,t,n){!(t.get(e)||[]).includes(n)&&n.isNew&&(t.pushObject(e,n),t.validate())},delete:function(e,t,n){(t.get(e)||[]).includes(n)&&(t.removeObject(e,n),t.validate())}}})) +e.default=n})),define("consul-ui/components/consul/intention/form/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D +function T(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function L(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const A=Ember.HTMLBars.template({id:"JJOVYubC",block:'{"symbols":["api","item","readonly","notice","execute","cancel","message","confirm","notice","newAction","modal","close","after","notice","notice","@dc","@partition","&attrs","@nspace","@autofill","@item","@src"],"statements":[[11,"div"],[24,0,"consul-intention"],[17,18],[12],[2,"\\n"],[8,"data-form",[],[["@type","@dc","@nspace","@partition","@autofill","@item","@src","@onchange","@onsubmit"],["intention",[32,16,["Name"]],[32,19],[32,17],[32,20],[32,21],[32,22],[30,[36,10],[[32,0],[32,0,["change"]]],null],[30,[36,10],[[32,0],[32,0,["onsubmit"]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,17],[[32,1,["error","detail"]],"duplicate intention found:"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,16],null,[["after"],[[30,[36,10],[[32,0],[32,13]],null]]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,15,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Intention exists!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,15,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n An intention already exists for this Source-Destination pair. Please enter a different combination of Services, or search the intentions to edit an existing intention.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[15]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,16],null,[["after"],[[30,[36,10],[[32,0],[32,13]],null]]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,14,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,14,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n There was an error saving your intention.\\n"],[6,[37,1],[[30,[36,7],[[32,1,["error","status"]],[32,1,["error","detail"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"br"],[12],[13],[1,[32,1,["error","status"]]],[2,": "],[1,[32,1,["error","detail"]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[13]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["form"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,14],[[32,1,["data"]],[30,[36,6],[[30,[36,5],["write intention"],[["item"],[[32,1,["data"]]]]]],null]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,6],[[32,3]],null]],null,[["default","else"],[{"statements":[[2,"\\n"],[6,[37,14],[[30,[36,13],[[32,2],"Action"],null]],null,[["default"],[{"statements":[[2," "],[8,"modal-dialog",[[24,0,"consul-intention-action-warn-modal warning"]],[["@aria"],[[30,[36,8],null,[["label"],[[30,[36,11],["Set intention to ",[32,10]],null]]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"modal",[32,11]]],null],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"Set intention to "],[1,[32,10]],[2,"?"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n When you change this Intention to "],[1,[32,10]],[2,", you will remove all the Layer 7 policy permissions currently saved to this Intention. Are you sure you want to set it to "],[1,[32,10]],[2,"?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"dangerous"],[24,4,"button"],[4,[38,3],["click",[32,1,["submit"]]],null],[12],[2,"\\n Set to "],[1,[30,[36,12],[[32,10]],null]],[2,"\\n "],[13],[2,"\\n "],[10,"button"],[14,0,"type-cancel"],[15,"onclick",[32,12]],[14,4,"button"],[12],[2,"\\n No, Cancel\\n "],[13],[2,"\\n "]],"parameters":[12]}]]],[2,"\\n "]],"parameters":[11]}]]],[2,"\\n"]],"parameters":[10]}]]],[2,"\\n "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,9],["/${partition}/*/${dc}/services",[30,[36,8],null,[["partition","dc"],[[32,17],[32,16,["Name"]]]]]],null],[30,[36,10],[[32,0],[32,0,["createServices"]],[32,2]],null]]],null],[2,"\\n\\n"],[6,[37,1],[[30,[36,5],["use nspaces"],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,9],["/${partition}/*/${dc}/namespaces",[30,[36,8],null,[["partition","dc"],[[32,17],[32,16,["Name"]]]]]],null],[30,[36,10],[[32,0],[32,0,["createNspaces"]],[32,2]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[30,[36,5],["use partitions"],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,9],["/*/*/${dc}/partitions",[30,[36,8],null,[["dc"],[[32,16,["Name"]]]]]],null],[30,[36,10],[[32,0],[32,0,["createPartitions"]],[32,2]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["isCreate"]]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,7],[[30,[36,5],["use partitions"],null],[30,[36,6],[[30,[36,5],["choose partitions"],[["dc"],[[32,16]]]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[],[["@type"],["info"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,9,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n Cross-partition communication not supported\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,9,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Cross-partition communication is not supported outside of the primary datacenter. You will only be able to select namespaces for source and destination services.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[32,0,["isManagedByCRDs"]]],null,[["default"],[{"statements":[[2," "],[8,"consul/intention/notice/custom-resource",[],[["@type"],["warning"]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[11,"form"],[4,[38,3],["submit",[30,[36,2],[[32,0,["submit"]],[32,2],[32,1,["submit"]]],null]],null],[12],[2,"\\n "],[8,"consul/intention/form/fieldsets",[],[["@nspaces","@dc","@partitions","@services","@SourceName","@SourceNS","@SourcePartition","@DestinationName","@DestinationNS","@DestinationPartition","@item","@disabled","@create","@onchange"],[[32,0,["nspaces"]],[32,16],[32,0,["partitions"]],[32,0,["services"]],[32,0,["SourceName"]],[32,0,["SourceNS"]],[32,0,["SourcePartition"]],[32,0,["DestinationName"]],[32,0,["DestinationNS"]],[32,0,["DestinationPartition"]],[32,2],[32,1,["disabled"]],[32,1,["isCreate"]],[32,1,["change"]]]],null],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"button"],[15,"disabled",[30,[36,15],[[32,2,["isInvalid"]],[32,1,["disabled"]]],null]],[14,4,"submit"],[12],[2,"\\n Save\\n "],[13],[2,"\\n "],[11,"button"],[16,"disabled",[32,1,["disabled"]]],[24,4,"reset"],[4,[38,3],["click",[30,[36,2],[[32,0,["oncancel"]],[32,2]],null]],null],[12],[2,"\\n Cancel\\n "],[13],[2,"\\n"],[6,[37,1],[[30,[36,6],[[32,1,["isCreate"]]],null]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,4],[[32,2,["ID"]],"anonymous"],null]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to delete this Intention?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"type-delete"],[16,"disabled",[32,1,["disabled"]]],[24,4,"button"],[4,[38,3],["click",[30,[36,2],[[32,8],[32,1,["delete"]]],null]],null],[12],[2,"\\n Delete\\n "],[13],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[8,"delete-confirmation",[],[["@message","@execute","@cancel"],[[32,7],[32,5],[32,6]]],null],[2,"\\n "]],"parameters":[5,6,7]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2,"\\n"],[6,[37,1],[[32,2,["IsManagedByCRD"]]],null,[["default"],[{"statements":[[2," "],[8,"notice",[[24,0,"crd"]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n Intention Custom Resource\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,4,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This Intention is view only because it is managed through an Intention Custom Resource in your Kubernetes cluster.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,4,["Footer"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/k8s/crds"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"Learn more about CRDs"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[8,"consul/intention/view",[],[["@item"],[[32,2]]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[2,3]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["env","if","fn","on","not-eq","can","not","and","hash","uri","action","concat","capitalize","changeset-get","let","or","notification","string-starts-with"]}',meta:{moduleName:"consul-ui/components/consul/intention/form/index.hbs"}}) +let R=(n=Ember._tracked,r=Ember._tracked,a=Ember._tracked,l=Ember._tracked,s=Ember._tracked,i=Ember._tracked,o=Ember._tracked,u=Ember._tracked,c=Ember._tracked,d=Ember._tracked,m=Ember.inject.service("repository/intention"),p=Ember._action,f=Ember._action,b=Ember._action,h=Ember._action,v=Ember._action,y=Ember._action,g=Ember._action,O=Ember._action,_=Ember._action,P=class extends t.default{constructor(e,t){var n,r,a +super(...arguments),T(this,"services",w,this),T(this,"SourceName",E,this),T(this,"DestinationName",k,this),T(this,"nspaces",x,this),T(this,"SourceNS",j,this),T(this,"DestinationNS",C,this),T(this,"partitions",S,this),T(this,"SourcePartition",N,this),T(this,"DestinationPartition",z,this),T(this,"isManagedByCRDs",M,this),a=null,(r="modal")in(n=this)?Object.defineProperty(n,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[r]=a,T(this,"repo",D,this),this.updateCRDManagement()}ondelete(){this.args.ondelete?this.args.ondelete(...arguments):this.onsubmit(...arguments)}oncancel(){this.args.oncancel?this.args.oncancel(...arguments):this.onsubmit(...arguments)}onsubmit(){this.args.onsubmit&&this.args.onsubmit(...arguments)}updateCRDManagement(){this.isManagedByCRDs=this.repo.isManagedByCRDs()}submit(e,t,n){n.preventDefault(),void 0!==e.change.Action&&void 0===e.data.Action?this.modal.open():t()}createServices(e,t){let n=t.data.uniqBy("Name").toArray().filter(e=>!["connect-proxy","mesh-gateway","terminating-gateway"].includes(e.Kind)).sort((e,t)=>e.Name.localeCompare(t.Name)) +n=[{Name:"*"}].concat(n) +let r=n.findBy("Name",e.SourceName) +r||(r={Name:e.SourceName},n=[r].concat(n)) +let a=n.findBy("Name",e.DestinationName) +a||(a={Name:e.DestinationName},n=[a].concat(n)),this.services=n,this.SourceName=r,this.DestinationName=a}createNspaces(e,t){let n=t.data.toArray().sort((e,t)=>e.Name.localeCompare(t.Name)) +n=[{Name:"*"}].concat(n) +let r=n.findBy("Name",e.SourceNS) +r||(r={Name:e.SourceNS},n=[r].concat(n)) +let a=n.findBy("Name",e.DestinationNS) +a||(a={Name:e.DestinationNS},n=[a].concat(n)),this.nspaces=n,this.SourceNS=r,this.DestinationNS=a}createPartitions(e,t){let n=t.data.toArray().sort((e,t)=>e.Name.localeCompare(t.Name)),r=n.findBy("Name",e.SourcePartition) +r||(r={Name:e.SourcePartition},n=[r].concat(n)) +let a=n.findBy("Name",e.DestinationPartition) +a||(a={Name:e.DestinationPartition},n=[a].concat(n)),this.partitions=n,this.SourcePartition=r,this.DestinationPartition=a}change(e,t,n){const r=e.target +let a,l +switch(r.name){case"SourceName":case"DestinationName":case"SourceNS":case"DestinationNS":case"SourcePartition":case"DestinationPartition":switch(a=l=r.value,"string"!=typeof a&&(a=r.value.Name),r.value=a,r.name){case"SourceName":case"DestinationName":0===this.services.filterBy("Name",a).length&&(l={Name:a},this.services=[l].concat(this.services.toArray())) +break +case"SourceNS":case"DestinationNS":0===this.nspaces.filterBy("Name",a).length&&(l={Name:a},this.nspaces=[l].concat(this.nspaces.toArray())) +break +case"SourcePartition":case"DestinationPartition":0===this.partitions.filterBy("Name",a).length&&(l={Name:a},this.partitions=[l].concat(this.partitions.toArray()))}this[r.name]=l}t.handleEvent(e)}},w=L(P.prototype,"services",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=L(P.prototype,"SourceName",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=L(P.prototype,"DestinationName",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=L(P.prototype,"nspaces",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=L(P.prototype,"SourceNS",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=L(P.prototype,"DestinationNS",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=L(P.prototype,"partitions",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=L(P.prototype,"SourcePartition",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=L(P.prototype,"DestinationPartition",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=L(P.prototype,"isManagedByCRDs",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=L(P.prototype,"repo",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L(P.prototype,"ondelete",[p],Object.getOwnPropertyDescriptor(P.prototype,"ondelete"),P.prototype),L(P.prototype,"oncancel",[f],Object.getOwnPropertyDescriptor(P.prototype,"oncancel"),P.prototype),L(P.prototype,"onsubmit",[b],Object.getOwnPropertyDescriptor(P.prototype,"onsubmit"),P.prototype),L(P.prototype,"updateCRDManagement",[h],Object.getOwnPropertyDescriptor(P.prototype,"updateCRDManagement"),P.prototype),L(P.prototype,"submit",[v],Object.getOwnPropertyDescriptor(P.prototype,"submit"),P.prototype),L(P.prototype,"createServices",[y],Object.getOwnPropertyDescriptor(P.prototype,"createServices"),P.prototype),L(P.prototype,"createNspaces",[g],Object.getOwnPropertyDescriptor(P.prototype,"createNspaces"),P.prototype),L(P.prototype,"createPartitions",[O],Object.getOwnPropertyDescriptor(P.prototype,"createPartitions"),P.prototype),L(P.prototype,"change",[_],Object.getOwnPropertyDescriptor(P.prototype,"change"),P.prototype),P) +e.default=R,Ember._setComponentTemplate(A,R)})),define("consul-ui/components/consul/intention/list/check/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"7ITVRz58",block:'{"symbols":["titles","@item","&attrs"],"statements":[[6,[37,8],[[30,[36,7],[[30,[36,6],[[30,[36,6],["allow","Allowed"],null],[30,[36,6],["deny","Denied"],null],[30,[36,6],["","Layer 7 Rules"],null]],null]],null]],null,[["default"],[{"statements":[[11,"div"],[16,0,[30,[36,4],["consul-intention-list-check ","notice ",[30,[36,3],[[32,2,["Action"]],"permissions"],null]],null]],[17,3],[12],[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,5],[[32,1],[30,[36,3],[[32,2,["Action"]],""],null]],null]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,1],[[30,[36,0],[[32,2,["Action"]],"allow"],null]],null,[["default","else"],[{"statements":[[2," Yes, "],[1,[35,2,["SourceName"]]],[2," is allowed to connect to "],[1,[32,2,["DestinationName"]]],[2," due to the highest precedence intention below:\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],[[32,2,["Action"]],"deny"],null]],null,[["default","else"],[{"statements":[[2," No, "],[1,[32,2,["SourceName"]]],[2," is not allowed to connect to "],[1,[32,2,["DestinationName"]]],[2," due to the highest precedence intention below:\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,2,["SourceName"]]],[2," may or may not be allowed to connect with "],[1,[32,2,["DestinationName"]]],[2," through its Layer 7 rules.\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["eq","if","item","or","concat","get","array","from-entries","let"]}',meta:{moduleName:"consul-ui/components/consul/intention/list/check/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/intention/list/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i +function o(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const c=Ember.HTMLBars.template({id:"npl02ASn",block:'{"symbols":["&attrs","@items","@delete","&default"],"statements":[[11,"div"],[24,0,"consul-intention-list"],[17,1],[4,[38,0],[[32,0,["updateCRDManagement"]],[32,2]],null],[12],[2,"\\n"],[18,4,[[30,[36,3],null,[["Table","CheckNotice","CustomResourceNotice"],[[30,[36,1],["consul/intention/list/table"],[["delete","items"],[[32,3],[32,0,["items"]]]]],[30,[36,2],[[32,0,["checkedItem"]],[30,[36,1],["consul/intention/list/check"],[["item"],[[32,0,["checkedItem"]]]]],""],null],[30,[36,2],[[32,0,["isManagedByCRDs"]],[30,[36,1],["consul/intention/notice/custom-resource"],null],""],null]]]]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["did-update","component","if","hash"]}',meta:{moduleName:"consul-ui/components/consul/intention/list/index.hbs"}}) +let d=(n=Ember.inject.service("repository/intention"),r=Ember._tracked,a=Ember._action,l=class extends t.default{constructor(e,t){super(...arguments),o(this,"repo",s,this),o(this,"isManagedByCRDs",i,this),this.updateCRDManagement(t.items)}get items(){return this.args.items||[]}get checkedItem(){return 1===this.items.length&&this.args.check&&this.items[0].SourceName===this.args.check?this.items[0]:null}updateCRDManagement(){this.isManagedByCRDs=this.repo.isManagedByCRDs()}},s=u(l.prototype,"repo",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i=u(l.prototype,"isManagedByCRDs",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u(l.prototype,"updateCRDManagement",[a],Object.getOwnPropertyDescriptor(l.prototype,"updateCRDManagement"),l.prototype),l) +e.default=d,Ember._setComponentTemplate(c,d)})),define("consul-ui/components/consul/intention/list/table/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"3cYAAMVS",block:'{"symbols":["item","index","index","change","checked","confirm","send","keypressClick","change","__arg0","__arg1","Actions","__arg0","__arg1","Actions","@routeName","@delete","&attrs","@items"],"statements":[[8,"tabular-collection",[[24,0,"consul-intention-list-table"],[17,18]],[["@items","@rowHeight"],[[32,19],59]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"th"],[14,0,"source"],[12],[2,"Source"],[13],[2,"\\n "],[10,"th"],[14,0,"intent"],[12],[2," "],[13],[2,"\\n "],[10,"th"],[14,0,"destination"],[12],[2,"Destination"],[13],[2,"\\n "],[10,"th"],[14,0,"permissions"],[12],[2,"\\n Permissions\\n "],[10,"span"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"Permissions intercept an Intention\'s traffic using Layer 7 criteria, such as path prefixes and http headers."]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"th"],[14,0,"meta"],[12],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[2,"\\n "],[10,"td"],[14,0,"source"],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,1],[[30,[36,0],[[32,16],"dc.intentions.edit"],null],[32,1,["ID"]]],null]],[12],[2,"\\n"],[6,[37,5],[[30,[36,11],[[32,1,["SourceName"]],"*"],null]],null,[["default","else"],[{"statements":[[2," All Services (*)\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,1,["SourceName"]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,5],[[30,[36,0],[[30,[36,7],["use nspaces"],null],[30,[36,7],["use partitions"],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"\\n "],[10,"span"],[15,0,[30,[36,13],["partition-",[30,[36,0],[[32,1,["SourcePartition"]],"default"],null]],null]],[12],[1,[30,[36,0],[[32,1,["SourcePartition"]],"default"],null]],[13],[2," / "],[10,"span"],[15,0,[30,[36,13],["nspace-",[30,[36,0],[[32,1,["SourceNS"]],"default"],null]],null]],[12],[1,[30,[36,0],[[32,1,["SourceNS"]],"default"],null]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"td"],[15,0,[31,["intent intent-",[30,[36,14],[[32,1,["Action"]]],null]]]],[12],[2,"\\n "],[10,"strong"],[12],[1,[30,[36,15],[[30,[36,0],[[32,1,["Action"]],"App aware"],null]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"td"],[14,0,"destination"],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,5],[[30,[36,11],[[32,1,["DestinationName"]],"*"],null]],null,[["default","else"],[{"statements":[[2," All Services (*)\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,1,["DestinationName"]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,5],[[30,[36,0],[[30,[36,7],["use nspaces"],null],[30,[36,7],["use partitions"],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"\\n "],[10,"span"],[15,0,[30,[36,13],["partition-",[30,[36,0],[[32,1,["DestinationPartition"]],"default"],null]],null]],[12],[1,[30,[36,0],[[32,1,["DestinationPartition"]],"default"],null]],[13],[2," / "],[10,"span"],[15,0,[30,[36,13],["nspace-",[30,[36,0],[[32,1,["DestinationNS"]],"default"],null]],null]],[12],[1,[30,[36,0],[[32,1,["DestinationNS"]],"default"],null]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"td"],[14,0,"permissions"],[12],[2,"\\n"],[6,[37,5],[[30,[36,16],[[32,1,["Permissions","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[1,[30,[36,12],[[32,1,["Permissions","length"]],"Permission"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"td"],[14,0,"meta"],[12],[2,"\\n"],[6,[37,5],[[32,1,["IsManagedByCRD"]]],null,[["default"],[{"statements":[[2," "],[8,"consul/external-source",[],[["@item","@label"],[[32,1],"Managed by CRD"]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,5],[[30,[36,18],[[30,[36,0],[[30,[36,7],["write intention"],[["item"],[[32,1]]]],[30,[36,7],["view CRD intention"],[["item"],[[32,1]]]]],null],[30,[36,17],[[32,1,["Meta","external-source"]],"consul-api-gateway"],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"popover-menu",[],[["@expanded","@onchange","@keyboardAccess"],[[30,[36,5],[[30,[36,11],[[32,5],[32,3]],null],true,false],null],[30,[36,2],[[32,0],[32,4],[32,3]],null],false]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["trigger"]],[["default"],[{"statements":[[2,"\\n More\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,7],["write intention"],[["item"],[[32,1]]]]],null,[["default","else"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[12],[2,"\\n "],[10,"a"],[14,"role","menuitem"],[14,"tabindex","-1"],[15,6,[30,[36,1],[[30,[36,0],[[35,10],"dc.intentions.edit"],null],[32,1,["ID"]]],null]],[12],[2,"Edit"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,"role","none"],[14,0,"dangerous"],[12],[2,"\\n "],[10,"label"],[15,"for",[32,6]],[14,"role","menuitem"],[14,"tabindex","-1"],[15,"onkeypress",[32,8]],[12],[2,"Delete"],[13],[2,"\\n "],[10,"div"],[14,"role","menu"],[12],[2,"\\n "],[8,"informed-action",[[24,0,"warning"]],[["@namedBlocksInfo"],[[30,[36,6],null,[["header","body","actions"],[0,0,1]]]]],[["default"],[{"statements":[[6,[37,5],[[30,[36,4],[[32,13],"header"],null]],null,[["default","else"],[{"statements":[[2,"\\n Confirm Delete\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,4],[[32,13],"body"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this intention?\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,4],[[32,13],"actions"],null]],null,[["default"],[{"statements":[[6,[37,3],[[32,14]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,15,["Action"]],[[24,0,"dangerous"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,0,"type-delete"],[24,"tabindex","-1"],[4,[38,9],["click",[30,[36,8],[[30,[36,2],[[32,0],[32,9]],null],[30,[36,2],[[32,0],[32,17],[32,1]],null]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,15,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[],[["@for"],[[32,6]]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[15]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[13,14]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,7],["view CRD intention"],[["item"],[[32,1]]]]],null,[["default"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[12],[2,"\\n "],[10,"div"],[14,"role","menu"],[12],[2,"\\n "],[8,"informed-action",[[24,0,"info kubernetes"]],[["@namedBlocksInfo"],[[30,[36,6],null,[["header","body","actions"],[0,0,1]]]]],[["default"],[{"statements":[[6,[37,5],[[30,[36,4],[[32,10],"header"],null]],null,[["default","else"],[{"statements":[[2,"\\n Managed by CRD\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,4],[[32,10],"body"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This intention is being managed through an Intention Custom Resource in your Kubernetes cluster. It is view only in the UI.\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,4],[[32,10],"actions"],null]],null,[["default"],[{"statements":[[6,[37,3],[[32,11]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,12,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,"tabindex","-1"],[24,0,"action"]],[["@href"],[[30,[36,1],[[30,[36,0],[[32,16],"dc.intentions.edit"],null],[32,1,["ID"]]],null]]],[["default"],[{"statements":[[2,"\\n View\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,12,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[],[["@onclick"],[[30,[36,2],[[32,0],[32,9]],null]]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[12]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[10,11]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[6,7,8,9]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3,4,5]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["or","href-to","action","let","-is-named-block-invocation","if","hash","can","queue","on","routeName","eq","pluralize","concat","slugify","capitalize","gt","not-eq","and"]}',meta:{moduleName:"consul-ui/components/consul/intention/list/table/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/intention/notice/custom-resource/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"50F/MLBP",block:'{"symbols":["notice","&attrs","@type"],"statements":[[8,"notice",[[24,0,"consul-intention-notice-custom-resource crd"],[17,2]],[["@type"],[[30,[36,0],[[32,3],"info"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n Intention Custom Resource\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Some of your intentions are being managed through an Intention Custom Resource in your Kubernetes cluster. Those managed intentions will be view only in the UI. Any intentions created in the UI will work but will not be synced to the Custom Resource Definition (CRD) datastore.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1,["Footer"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,1],["CONSUL_DOCS_URL"],null],"/k8s/crds"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"Learn more about CRDs"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["or","env"]}',meta:{moduleName:"consul-ui/components/consul/intention/notice/custom-resource/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/intention/notice/permissions/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"HoDXcnya",block:'{"symbols":["notice"],"statements":[[8,"notice",[],[["@type"],["info"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.intention.notice.permissions.body"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1,["Footer"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,1],["CONSUL_DOCS_URL"],null],"/connect/intentions"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.intention.notice.permissions.footer"],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n\\n"]],"hasEval":false,"upvars":["t","env"]}',meta:{moduleName:"consul-ui/components/consul/intention/notice/permissions/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/intention/notifications/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"mgi1y+sM",block:'{"symbols":["error","@status","@type","@error"],"statements":[[6,[37,1],[[30,[36,2],[[32,3],"create"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your intention has been added.\\n"]],"parameters":[]},{"statements":[[2," There was an error adding your intention.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"update"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your intention has been saved.\\n"]],"parameters":[]},{"statements":[[2," There was an error saving your intention.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"delete"],null]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your intention was deleted.\\n"]],"parameters":[]},{"statements":[[2," There was an error deleting your intention.\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[6,[37,3],[[32,4,["errors","firstObject"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["detail"]]],null,[["default"],[{"statements":[[2," "],[10,"br"],[12],[13],[1,[30,[36,0],["(",[30,[36,1],[[32,1,["status"]],[30,[36,0],[[32,1,["status"]],": "],null]],null],[32,1,["detail"]],")"],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["concat","if","eq","let"]}',meta:{moduleName:"consul-ui/components/consul/intention/notifications/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/intention/permission/form/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"jlM2y89J",block:'{"symbols":["group","headerForm","headerList","method","el","el","el","Type","intent","&attrs","&default"],"statements":[[11,"div"],[17,10],[24,0,"consul-intention-permission-form"],[12],[2,"\\n"],[8,"form-group",[],[["@name"],[[34,14]]],[["default"],[{"statements":[[2,"\\n\\n "],[18,11,[[30,[36,16],null,[["submit","reset","isDirty","changeset"],[[30,[36,3],[[32,0],"submit",[35,0]],null],[30,[36,3],[[32,0],"reset",[35,0]],null],[30,[36,15],[[35,0,["isValid"]]],null],[35,0]]]]]],[2,"\\n\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"div"],[14,"data-property","action"],[12],[2,"\\n "],[10,"span"],[14,0,"label"],[12],[2,"\\n Should this permission allow the source connect to the destination?\\n "],[13],[2,"\\n "],[10,"div"],[14,"role","radiogroup"],[15,0,[30,[36,2],[[35,0,["error","Action"]]," has-error"],null]],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[35,17]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[12],[2,"\\n "],[10,"span"],[12],[1,[30,[36,12],[[32,9]],null]],[13],[2,"\\n "],[10,"input"],[14,3,"Action"],[15,2,[32,9]],[15,"checked",[30,[36,2],[[30,[36,11],[[35,0,["Action"]],[32,9]],null],"checked"],null]],[15,"onchange",[30,[36,3],[[32,0],[30,[36,13],[[35,0],"Action"],null]],[["value"],["target.value"]]]],[14,4,"radio"],[12],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[9]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Path"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[8,[32,1,["Element"]],[],[["@name","@type"],["PathType","select"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Label"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n Path type\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"power-select",[],[["@options","@selected","@onChange"],[[34,18],[34,8],[30,[36,3],[[32,0],"change","HTTP.PathType",[35,0]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,10],[[35,9],[32,8]],null]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n\\n"],[6,[37,2],[[35,19]],null,[["default"],[{"statements":[[2," "],[8,[32,1,["Element"]],[],[["@name","@error"],["Path",[30,[36,7],[[35,0],"error.HTTP.Path"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Label"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,10],[[35,9],[35,8]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Text"]],[[16,"oninput",[30,[36,3],[[32,0],"change","HTTP.Path",[35,0]],null]]],[["@value"],[[30,[36,7],[[35,0],"HTTP.Path"],null]]],null],[2,"\\n "],[8,"state",[],[["@state","@matches"],[[32,6,["state"]],"error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Error"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[30,[36,11],[[30,[36,7],[[35,0],"HTTP.Path"],null],"Regex"],null]],null,[["default","else"],[{"statements":[[2," Path Regex should not be blank\\n"]],"parameters":[]},{"statements":[[2," Path should begin with a \'/\'\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Methods"],[13],[2,"\\n "],[10,"div"],[14,0,"type-toggle"],[12],[2,"\\n "],[10,"span"],[12],[2,"All methods are applied by default unless specified"],[13],[2,"\\n "],[8,[32,1,["Element"]],[],[["@name"],["allMethods"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Checkbox"]],[[16,"checked",[30,[36,2],[[35,20],"checked"],null]],[16,"onchange",[30,[36,3],[[32,0],"change","allMethods",[35,0]],null]]],[[],[]],null],[2,"\\n "],[8,[32,5,["Label"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n All Methods\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,2],[[35,21]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"checkbox-group"],[14,"role","group"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[35,4]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[14,0,"type-checkbox"],[12],[2,"\\n "],[10,"input"],[14,3,"method"],[15,2,[32,4]],[15,"checked",[30,[36,2],[[30,[36,1],[[32,4],[35,0,["HTTP","Methods"]]],null],"checked"],null]],[15,"onchange",[30,[36,3],[[32,0],"change","method",[35,0]],null]],[14,4,"checkbox"],[12],[13],[2,"\\n "],[10,"span"],[12],[1,[32,4]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[4]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Headers"],[13],[2,"\\n\\n "],[8,"consul/intention/permission/header/list",[],[["@items","@ondelete"],[[30,[36,7],[[35,0],"HTTP.Header"],null],[30,[36,3],[[32,0],"delete","HTTP.Header",[35,0]],null]]],[["default"],[{"statements":[[2,"\\n\\n "]],"parameters":[3]}]]],[2,"\\n\\n "],[8,"consul/intention/permission/header/form",[],[["@onsubmit"],[[30,[36,3],[[32,0],"add","HTTP.Header",[35,0]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"headerForm",[32,2]]],null],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n\\n "],[10,"button"],[14,0,"type-submit"],[15,"disabled",[30,[36,2],[[30,[36,22],[[32,0,["headerForm","isDirty"]]],null],"disabled"],null]],[15,"onclick",[30,[36,3],[[32,0],[32,0,["headerForm","submit"]]],null]],[14,4,"button"],[12],[2,"\\n Add"],[6,[37,2],[[30,[36,23],[[30,[36,10],[[30,[36,7],[[35,0],"HTTP.Header"],null],"length"],null],0],null]],null,[["default"],[{"statements":[[2," another"]],"parameters":[]}]]],[2," header\\n "],[13],[2,"\\n "],[10,"button"],[14,0,"type-cancel"],[15,"onclick",[30,[36,3],[[32,0],[32,0,["headerForm","reset"]]],null]],[14,4,"button"],[12],[2,"\\n Cancel\\n "],[13],[2,"\\n\\n "],[13],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["changeset","contains","if","action","methods","-track-array","each","changeset-get","pathType","pathLabels","get","eq","capitalize","changeset-set","name","and","hash","intents","pathTypes","shouldShowPathField","allMethods","shouldShowMethods","not","gt"]}',meta:{moduleName:"consul-ui/components/consul/intention/permission/form/index.hbs"}}),n="intention-permission" +var r=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",name:n,schema:Ember.inject.service("schema"),change:Ember.inject.service("change"),repo:Ember.inject.service("repository/"+n),onsubmit:function(){},onreset:function(){},intents:Ember.computed.alias(`schema.${n}.Action.allowedValues`),methods:Ember.computed.alias(`schema.${n}-http.Methods.allowedValues`),pathProps:Ember.computed.alias(`schema.${n}-http.PathType.allowedValues`),pathTypes:Ember.computed("pathProps",(function(){return["NoPath"].concat(this.pathProps)})),pathLabels:Ember.computed((function(){return{NoPath:"No Path",PathExact:"Exact",PathPrefix:"Prefixed by",PathRegex:"Regular Expression"}})),pathInputLabels:Ember.computed((function(){return{PathExact:"Exact Path",PathPrefix:"Path Prefix",PathRegex:"Path Regular Expression"}})),changeset:Ember.computed("item",(function(){const e=this.change.changesetFor(n,this.item||this.repo.create()) +return e.isNew&&e.validate(),e})),pathType:Ember.computed("changeset._changes.HTTP.PathType","pathTypes.firstObject",(function(){return this.changeset.HTTP.PathType||this.pathTypes.firstObject})),noPathType:Ember.computed.equal("pathType","NoPath"),shouldShowPathField:Ember.computed.not("noPathType"),allMethods:!1,shouldShowMethods:Ember.computed.not("allMethods"),didReceiveAttrs:function(){Ember.get(this,"item.HTTP.Methods.length")||Ember.set(this,"allMethods",!0)},actions:{change:function(e,t,n){const r=void 0!==Ember.get(n,"target.value")?n.target.value:n +switch(e){case"allMethods":Ember.set(this,e,n.target.checked) +break +case"method":n.target.checked?this.actions.add.apply(this,["HTTP.Methods",t,r]):this.actions.delete.apply(this,["HTTP.Methods",t,r]) +break +default:t.set(e,r)}t.validate()},add:function(e,t,n){t.pushObject(e,n),t.validate()},delete:function(e,t,n){t.removeObject(e,n),t.validate()},submit:function(e){void 0!==e.changes.find(({key:e,value:t})=>"HTTP.PathType"===e||"HTTP.Path"===e)&&(this.pathProps.forEach(t=>{e.set("HTTP."+t,void 0)}),"NoPath"!==e.HTTP.PathType&&e.set("HTTP."+e.HTTP.PathType,e.HTTP.Path)),this.allMethods&&e.set("HTTP.Methods",null),delete e._changes.HTTP.PathType,delete e._changes.HTTP.Path,this.repo.persist(e),this.onsubmit(e.data)},reset:function(e){e.rollback(),this.onreset(e.data)}}})) +e.default=r})),define("consul-ui/components/consul/intention/permission/header/form/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"iPtOEBL6",block:'{"symbols":["group","el","el","el","Type","&attrs","&default"],"statements":[[11,"div"],[17,6],[24,0,"consul-intention-permission-header-form"],[12],[2,"\\n "],[8,"form-group",[],[["@name"],[[34,7]]],[["default"],[{"statements":[[2,"\\n\\n "],[18,7,[[30,[36,9],null,[["submit","reset","isDirty","changeset"],[[30,[36,6],[[32,0],"submit",[35,0]],null],[30,[36,6],[[32,0],"reset",[35,0]],null],[30,[36,8],[[35,0,["isValid"]],[35,0,["isDirty"]]],null],[35,0]]]]]],[2,"\\n\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[8,[32,1,["Element"]],[],[["@name","@type"],["HeaderType","select"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4,["Label"]],[],[[],[]],[["default"],[{"statements":[[2,"Header type"]],"parameters":[]}]]],[2,"\\n "],[8,"power-select",[],[["@options","@selected","@onChange"],[[34,10],[34,2],[30,[36,6],[[32,0],"change","HeaderType",[35,0]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,4],[[35,3],[32,5]],null]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n\\n\\n "],[8,[32,1,["Element"]],[],[["@name","@error"],["Name",[30,[36,1],[[35,0],"error.Name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Label"]],[],[[],[]],[["default"],[{"statements":[[2,"Header name"]],"parameters":[]}]]],[2,"\\n "],[8,[32,3,["Text"]],[[16,"oninput",[30,[36,6],[[32,0],"change","Name",[35,0]],null]]],[["@value"],[[30,[36,1],[[35,0],"Name"],null]]],null],[2,"\\n "],[8,"state",[],[["@state","@matches"],[[32,3,["state"]],"error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Error"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,1],[[35,0],"error.Name.validation"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n\\n"],[6,[37,12],[[35,11]],null,[["default"],[{"statements":[[2," "],[8,[32,1,["Element"]],[],[["@name","@error"],["Value",[30,[36,1],[[35,0],"error.Value"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,2,["Label"]],[],[[],[]],[["default"],[{"statements":[[2,"Header "],[1,[30,[36,5],[[30,[36,4],[[35,3],[35,2]],null]],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,2,["Text"]],[[16,"oninput",[30,[36,6],[[32,0],"change","Value",[35,0]],null]]],[["@value"],[[30,[36,1],[[35,0],"Value"],null]]],null],[2,"\\n "],[8,"state",[],[["@state","@matches"],[[32,2,["state"]],"error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,2,["Error"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,1],[[35,0],"error.Value.validation"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["changeset","changeset-get","headerType","headerLabels","get","lowercase","action","name","and","hash","headerTypes","shouldShowValueField","if"]}',meta:{moduleName:"consul-ui/components/consul/intention/permission/header/form/index.hbs"}}),n="intention-permission-http-header" +var r=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",name:n,schema:Ember.inject.service("schema"),change:Ember.inject.service("change"),repo:Ember.inject.service("repository/"+n),onsubmit:function(){},onreset:function(){},changeset:Ember.computed("item",(function(){return this.change.changesetFor(n,this.item||this.repo.create({HeaderType:this.headerTypes.firstObject}))})),headerTypes:Ember.computed.alias(`schema.${n}.HeaderType.allowedValues`),headerLabels:Ember.computed((function(){return{Exact:"Exactly Matching",Prefix:"Prefixed by",Suffix:"Suffixed by",Regex:"Regular Expression",Present:"Is present"}})),headerType:Ember.computed("changeset.HeaderType","headerTypes.firstObject",(function(){return this.changeset.HeaderType||this.headerTypes.firstObject})),headerTypeEqualsPresent:Ember.computed.equal("headerType","Present"),shouldShowValueField:Ember.computed.not("headerTypeEqualsPresent"),actions:{change:function(e,t,n){const r=void 0!==Ember.get(n,"target.value")?n.target.value:n +t.set(e,r),t.validate()},submit:function(e){this.headerTypes.forEach(t=>{e.set(t,void 0)}) +const t="Present"===e.HeaderType||e.Value +e.set(e.HeaderType,t),delete e._changes.HeaderType,delete e._changes.Value,this.repo.persist(e),this.onsubmit(e.data),Ember.set(this,"item",this.repo.create({HeaderType:this.headerType}))},reset:function(e){e.rollback()}}})) +e.default=r})),define("consul-ui/components/consul/intention/permission/header/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"GtepE94Y",block:'{"symbols":["item","Actions","Action","Confirmation","Confirm"],"statements":[[6,[37,5],[[30,[36,4],[[35,0,["length"]],0],null]],null,[["default"],[{"statements":[[8,"list-collection",[[24,0,"consul-intention-permission-header-list"]],[["@items","@scroll","@cellHeight"],[[34,0],"native",42]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Header\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2," "],[1,[30,[36,1],[[32,1]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,2],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3],[[24,0,"dangerous"]],[["@onclick"],[[30,[36,3],[[32,0],[35,2],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this header?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5],[],[[],[]],[["default"],[{"statements":[[2,"Delete"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["items","route-match","ondelete","action","gt","if"]}',meta:{moduleName:"consul-ui/components/consul/intention/permission/header/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/consul/intention/permission/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"O6TCv5DN",block:'{"symbols":["item","Actions","Action","Confirmation","Confirm","item","item"],"statements":[[6,[37,8],[[30,[36,12],[[35,9,["length"]],0],null]],null,[["default"],[{"statements":[[8,"list-collection",[[16,0,[31,["consul-intention-permission-list",[30,[36,8],[[30,[36,7],[[35,0]],null]," readonly"],null]]]]],[["@scroll","@items","@partial"],["native",[34,9],5]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[15,"onclick",[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null],[32,1]],null]],[12],[2,"\\n "],[10,"strong"],[15,0,[30,[36,10],["intent-",[32,1,["Action"]]],null]],[12],[1,[30,[36,11],[[32,1,["Action"]]],null]],[13],[2,"\\n"],[6,[37,8],[[30,[36,12],[[32,1,["HTTP","Methods","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"permission-methods"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Methods\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,5],[[32,1,["HTTP","Methods"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[32,7]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,8],[[32,1,["HTTP","Path"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"permission-path"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[32,1,["HTTP","PathType"]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["HTTP","Path"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,6],[[30,[36,5],[[30,[36,5],[[32,1,["HTTP","Header"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"permission-header"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Header\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,6,["Name"]]],[2," "],[1,[30,[36,4],[[32,6]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[6]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,8],[[35,0]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,2],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3],[],[["@onclick","@close"],[[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null],[32,1]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Edit\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,3],[[24,0,"dangerous"]],[["@onclick"],[[30,[36,2],[[32,0],[35,3],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this permission?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5],[],[[],[]],[["default"],[{"statements":[[2,"Delete"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["onclick","optional","action","ondelete","route-match","-track-array","each","not","if","items","concat","capitalize","gt"]}',meta:{moduleName:"consul-ui/components/consul/intention/permission/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/consul/intention/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"302KbrGO",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","item","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-intention-search-bar"],[17,25]],[["@filter","@namedBlocksInfo"],[[32,22],[30,[36,15],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,9],["components.consul.intention.search-bar.",[32,18,["status","key"]]],null]],[["default"],[[30,[36,4],[[30,[36,9],["common.search.",[32,18,["status","key"]]],null],[30,[36,9],["common.consul.",[32,18,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,9],["components.consul.intention.search-bar.",[32,18,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,9],["common.search.",[32,18,["status","value"]]],null],[30,[36,9],["common.consul.",[32,18,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,18,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,9],[[32,19]," ",[32,20]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,19]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,20]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[19,20]}]]],[2,"\\n "]],"parameters":[18]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,23]],null],[32,24],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[32,22,["searchproperty"]]],null,[["default"],[{"statements":[[2," "],[8,[32,13,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,22,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,14,["Optgroup"]],[32,14,["Option"]]],null,[["default"],[{"statements":[[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,22,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,16],[],[["@value","@selected"],[[32,17],[30,[36,11],[[32,17],[32,22,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,9],["common.consul.",[30,[36,14],[[32,17]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[17]}]]]],"parameters":[15,16]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-access"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,22,["access","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.intention.search-bar.access.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,13],[[30,[36,12],[[30,[36,12],[[30,[36,4],["allow","deny",""],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[16,0,[30,[36,9],["value-",[32,12]],null]]],[["@value","@selected"],[[30,[36,10],[[32,12],"app-aware"],null],[30,[36,11],[[30,[36,10],[[32,12],"app-aware"],null],[32,22,["access","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[1,[30,[36,0],[[30,[36,9],["components.consul.intention.search-bar.access.options.",[30,[36,10],[[32,12],"app-aware"],null]],null]],null]],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,21,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Action:asc",[30,[36,0],["components.consul.intention.search-bar.sort.access.asc"],null]],null],[30,[36,4],["Action:desc",[30,[36,0],["components.consul.intention.search-bar.sort.access.desc"],null]],null],[30,[36,4],["SourceName:asc",[30,[36,0],["components.consul.intention.search-bar.sort.source-name.asc"],null]],null],[30,[36,4],["SourceName:desc",[30,[36,0],["components.consul.intention.search-bar.sort.source-name.desc"],null]],null],[30,[36,4],["DestinationName:asc",[30,[36,0],["components.consul.intention.search-bar.sort.destination-name.asc"],null]],null],[30,[36,4],["DestinationName:desc",[30,[36,0],["components.consul.intention.search-bar.sort.destination-name.desc"],null]],null],[30,[36,4],["Precedence:asc",[30,[36,0],["common.sort.numeric.asc"],null]],null],[30,[36,4],["Precedence:desc",[30,[36,0],["common.sort.numeric.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,21,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["components.consul.intention.search-bar.sort.access.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Action:asc",[30,[36,1],["Action:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["components.consul.intention.search-bar.sort.access.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Action:desc",[30,[36,1],["Action:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["components.consul.intention.search-bar.sort.access.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["components.consul.intention.search-bar.sort.source-name.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["SourceName:asc",[30,[36,1],["SourceName:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["SourceName:desc",[30,[36,1],["SourceName:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["components.consul.intention.search-bar.sort.destination-name.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["DestinationName:asc",[30,[36,1],["DestinationName:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["DestinationName:desc",[30,[36,1],["DestinationName:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["components.consul.intention.search-bar.sort.precedence.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Precedence:asc",[30,[36,1],["Precedence:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.numeric.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Precedence:desc",[30,[36,1],["Precedence:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.numeric.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","concat","or","contains","-track-array","each","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/intention/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/intention/view/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"FT+AOUhZ",block:'{"symbols":["&attrs"],"statements":[[11,"div"],[24,0,"consul-intention-view"],[17,1],[12],[2,"\\n\\n "],[10,"div"],[14,0,"definition-table"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Destination"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"consul/bucket/list",[],[["@item","@nspace","@partition","@service"],[[30,[36,1],null,[["Namespace","Partition","Service"],[[35,0,["DestinationNS"]],[35,0,["DestinationPartition"]],[35,0,["DestinationName"]]]]],"-","-",true]],null],[2,"\\n "],[13],[2,"\\n "],[10,"dt"],[12],[2,"Source"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"consul/bucket/list",[],[["@item","@nspace","@partition","@service"],[[30,[36,1],null,[["Namespace","Partition","Service"],[[35,0,["SourceNS"]],[35,0,["SourcePartition"]],[35,0,["SourceName"]]]]],"-","-",true]],null],[2,"\\n "],[13],[2,"\\n"],[6,[37,2],[[35,0,["Action"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[2,"Action"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[35,0,["Action"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"dt"],[12],[2,"Description"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,3],[[35,0,["Description"]],"N/A"],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,2],[[30,[36,4],[[35,0,["Permissions","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"h2"],[12],[2,"Permissions"],[13],[2,"\\n "],[8,"consul/intention/notice/permissions",[],[[],[]],null],[2,"\\n "],[8,"consul/intention/permission/list",[],[["@items"],[[34,0,["Permissions"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["item","hash","if","or","gt"]}',meta:{moduleName:"consul-ui/components/consul/intention/view/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/consul/kind/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"z+keWPxf",block:'{"symbols":["Name","link","link"],"statements":[[6,[37,5],[[35,3,["Kind"]]],null,[["default"],[{"statements":[[6,[37,9],[[30,[36,12],[[30,[36,11],[[35,3,["Kind"]]],null]],null]],null,[["default"],[{"statements":[[6,[37,5],[[35,10]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[14,0,"tooltip-panel"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[10,"span"],[14,0,"consul-kind"],[12],[2,"\\n "],[1,[32,1]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"menu-panel",[],[["@position"],["left"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,6],[[35,3,["Kind"]],"ingress-gateway"],null]],null,[["default","else"],[{"statements":[[2," Ingress gateways enable ingress traffic from services outside the Consul service mesh to services inside the Consul service mesh.\\n"]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,6],[[35,3,["Kind"]],"terminating-gateway"],null]],null,[["default","else"],[{"statements":[[2," Terminating gateways allow connect-enabled services in Consul service mesh to communicate with services outside the service mesh.\\n"]],"parameters":[]},{"statements":[[2," Mesh gateways enable routing of Connect traffic between different Consul datacenters.\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,"role","separator"],[12],[2,"\\n"],[6,[37,5],[[30,[36,6],[[35,3,["Kind"]],"ingress-gateway"],null]],null,[["default","else"],[{"statements":[[2," About Ingress gateways\\n"]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,6],[[35,3,["Kind"]],"terminating-gateway"],null]],null,[["default","else"],[{"statements":[[2," About Terminating gateways\\n"]],"parameters":[]},{"statements":[[2," About Mesh gateways\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[6,[37,9],[[30,[36,8],[[30,[36,7],[[30,[36,7],["ingress-gateway","/consul/developer-mesh/ingress-gateways"],null],[30,[36,7],["terminating-gateway","/consul/developer-mesh/understand-terminating-gateways"],null],[30,[36,7],["mesh-gateway","/consul/developer-mesh/connect-gateways"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[14,"tabindex","-1"],[14,"role","menuitem"],[15,6,[30,[36,2],[[30,[36,1],["CONSUL_DOCS_LEARN_URL"],null],[30,[36,0],[[32,3],[35,3,["Kind"]]],null]],null]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"\\n Learn guides\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3]}]]],[6,[37,9],[[30,[36,8],[[30,[36,7],[[30,[36,7],["ingress-gateway","/connect/ingress-gateway"],null],[30,[36,7],["terminating-gateway","/connect/terminating-gateway"],null],[30,[36,7],["mesh-gateway","/connect/mesh-gateway"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[14,"tabindex","-1"],[14,"role","menuitem"],[15,6,[30,[36,2],[[30,[36,1],["CONSUL_DOCS_URL"],null],[30,[36,0],[[32,2],[35,3,["Kind"]]],null]],null]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"\\n Documentation\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,"role","separator"],[12],[2,"\\n Other gateway types\\n "],[13],[2,"\\n"],[6,[37,5],[[30,[36,4],[[35,3,["Kind"]],"mesh-gateway"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[14,"tabindex","-1"],[14,"role","menuitem"],[15,6,[30,[36,2],[[30,[36,1],["CONSUL_DOCS_URL"],null],[30,[36,0],[[32,2],"mesh-gateway"],null]],null]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"\\n Mesh gateways\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,5],[[30,[36,4],[[35,3,["Kind"]],"terminating-gateway"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[14,"tabindex","-1"],[14,"role","menuitem"],[15,6,[30,[36,2],[[30,[36,1],["CONSUL_DOCS_URL"],null],[30,[36,0],[[32,2],"terminating-gateway"],null]],null]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"\\n Terminating gateways\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,5],[[30,[36,4],[[35,3,["Kind"]],"ingress-gateway"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[14,"tabindex","-1"],[14,"role","menuitem"],[15,6,[30,[36,2],[[30,[36,1],["CONSUL_DOCS_URL"],null],[30,[36,0],[[32,2],"ingress-gateway"],null]],null]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"\\n Ingress gateways\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[2]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"consul-kind"],[12],[2,"\\n "],[1,[32,1]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["get","env","concat","item","not-eq","if","eq","array","from-entries","let","withInfo","humanize","titleize"]}',meta:{moduleName:"consul-ui/components/consul/kind/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/consul/kv/form/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"LrzkPXNV",block:'{"symbols":["api","disabld","execute","cancel","message","confirm","__arg0"],"statements":[[8,"data-form",[],[["@dc","@nspace","@partition","@type","@label","@autofill","@item","@src","@onchange","@onsubmit"],[[34,15],[34,16],[34,17],"kv","key",[34,18],[34,19],[34,20],[30,[36,0],[[32,0],"change"],null],[30,[36,0],[[32,0],[35,21]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,23],[[30,[36,22],["write kv"],[["item"],[[32,1,["data"]]]]]],null,[["default"],[{"statements":[[2," "],[10,"form"],[15,"onsubmit",[30,[36,0],[[32,0],[32,1,["submit"]]],null]],[12],[2,"\\n "],[11,"fieldset"],[4,[38,5],[[30,[36,1],[[32,2],[32,1,["disabled"]]],null]],null],[12],[2,"\\n"],[6,[37,3],[[32,1,["isCreate"]]],null,[["default"],[{"statements":[[2," "],[10,"label"],[15,0,[31,["type-text",[30,[36,3],[[32,1,["data","error","Key"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Key or folder"],[13],[2,"\\n "],[10,"input"],[14,"autofocus","autofocus"],[15,2,[30,[36,11],[[32,1,["data","Key"]],[35,10]],null]],[14,3,"additional"],[15,"oninput",[30,[36,0],[[32,0],[32,1,["change"]]],null]],[14,"placeholder","Key or folder"],[14,4,"text"],[12],[13],[2,"\\n "],[10,"em"],[12],[2,"To create a folder, end a key with "],[10,"code"],[12],[2,"/"],[13],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,3],[[30,[36,1],[[30,[36,14],[[30,[36,11],[[32,1,["data","Key"]],[35,10]],null],""],null],[30,[36,13],[[30,[36,12],[[32,1,["data","Key"]]],null],"/"],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n "],[10,"div"],[14,0,"type-toggle"],[12],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[11,"input"],[24,3,"json"],[16,"checked",[30,[36,3],[[35,9],"checked"],null]],[16,"onchange",[30,[36,0],[[32,0],[32,1,["change"]]],null]],[24,4,"checkbox"],[4,[38,5],[false],null],[12],[13],[2,"\\n "],[10,"span"],[12],[2,"Code"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"label"],[14,"for",""],[15,0,[31,["type-text",[30,[36,3],[[32,1,["data","error","Value"]]," has-error"],null]]]],[12],[2,"\\n"],[6,[37,3],[[35,9]],null,[["default","else"],[{"statements":[[2," "],[8,"code-editor",[],[["@name","@readonly","@value","@onkeyup","@namedBlocksInfo"],["value",[30,[36,1],[[32,2],[32,1,["disabled"]]],null],[30,[36,6],[[32,1,["data","Value"]]],null],[30,[36,0],[[32,0],[32,1,["change"]],"value"],null],[30,[36,7],null,[["label"],[0]]]]],[["default"],[{"statements":[[6,[37,3],[[30,[36,8],[[32,7],"label"],null]],null,[["default"],[{"statements":[[2,"Value"]],"parameters":[]}]]]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[12],[2,"Value"],[13],[2,"\\n "],[11,"textarea"],[16,"autofocus",[30,[36,2],[[32,1,["isCreate"]]],null]],[24,3,"value"],[16,"oninput",[30,[36,0],[[32,0],[32,1,["change"]]],null]],[4,[38,5],[[30,[36,1],[[32,2],[32,1,["disabled"]]],null]],null],[12],[1,[30,[36,6],[[32,1,["data","Value"]]],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[6,[37,3],[[32,1,["isCreate"]]],null,[["default","else"],[{"statements":[[6,[37,3],[[30,[36,2],[[32,2]],null]],null,[["default"],[{"statements":[[2," "],[10,"button"],[15,"disabled",[30,[36,1],[[32,1,["data","isPristine"]],[32,1,["data","isInvalid"]],[32,1,["disabled"]]],null]],[14,4,"submit"],[12],[2,"Save"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"button"],[15,"onclick",[30,[36,0],[[32,0],[35,4],[32,1,["data"]]],null]],[15,"disabled",[32,1,["disabled"]]],[14,4,"reset"],[12],[2,"Cancel"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,2]],null]],null,[["default"],[{"statements":[[2," "],[10,"button"],[15,"disabled",[30,[36,1],[[32,1,["data","isInvalid"]],[32,1,["disabled"]]],null]],[14,4,"submit"],[12],[2,"Save"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"button"],[15,"onclick",[30,[36,0],[[32,0],[35,4],[32,1,["data"]]],null]],[15,"disabled",[32,1,["disabled"]]],[14,4,"reset"],[12],[2,"Cancel"],[13],[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,2]],null]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to delete this key?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"type-delete"],[16,"disabled",[32,1,["disabled"]]],[24,4,"button"],[4,[38,0],[[32,0],[32,6],[32,1,["delete"]]],null],[12],[2,"Delete"],[13],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[8,"delete-confirmation",[],[["@message","@execute","@cancel"],[[32,5],[32,3],[32,4]]],null],[2,"\\n "]],"parameters":[3,4,5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[2]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["action","or","not","if","oncancel","disabled","atob","hash","-is-named-block-invocation","json","parent","left-trim","last","not-eq","eq","dc","nspace","partition","autofill","item","src","onsubmit","cannot","let"]}',meta:{moduleName:"consul-ui/components/consul/kv/form/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",encoder:Ember.inject.service("btoa"),json:!0,ondelete:function(){this.onsubmit(...arguments)},oncancel:function(){this.onsubmit(...arguments)},onsubmit:function(){},actions:{change:function(e,t){const n=t.getData() +try{t.handleEvent(e)}catch(r){const t=e.target +let a +switch(t.name){case"value":Ember.set(n,"Value",this.encoder.execute(t.value)) +break +case"additional":a=Ember.get(this,"parent"),Ember.set(n,"Key",`${"/"!==a?a:""}${t.value}`) +break +case"json":Ember.set(this,"json",!this.json) +break +default:throw r}}}}})) +e.default=n})),define("consul-ui/components/consul/kv/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"IGQyLUaF",block:'{"symbols":["item","index","index","change","checked","confirm","send","keypressClick","__arg0","__arg1","Actions","@delete","&attrs","@items","@parent"],"statements":[[8,"tabular-collection",[[24,0,"consul-kv-list"],[17,13]],[["@items"],[[32,14]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"th"],[12],[2,"Name"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[2,"\\n "],[10,"td"],[15,0,[30,[36,0],[[32,1,["isFolder"]],"folder","file"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,1],[[30,[36,0],[[32,1,["isFolder"]],"dc.kv.folder","dc.kv.edit"],null],[32,1,["Key"]]],null]],[12],[1,[30,[36,9],[[30,[36,8],[[32,1,["Key"]],[32,15,["Key"]]],null],"/"],null]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"popover-menu",[],[["@expanded","@onchange","@keyboardAccess"],[[30,[36,0],[[30,[36,10],[[32,5],[32,3]],null],true,false],null],[30,[36,2],[[32,0],[32,4],[32,3]],null],false]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["trigger"]],[["default"],[{"statements":[[2,"\\n More\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,0],[[30,[36,11],["write kv"],[["item"],[[32,1]]]]],null,[["default","else"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[12],[2,"\\n "],[10,"a"],[14,"role","menuitem"],[14,"tabindex","-1"],[15,6,[30,[36,1],[[30,[36,0],[[32,1,["isFolder"]],"dc.kv.folder","dc.kv.edit"],null],[32,1,["Key"]]],null]],[12],[1,[30,[36,0],[[32,1,["isFolder"]],"View","Edit"],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,"role","none"],[14,0,"dangerous"],[12],[2,"\\n "],[10,"label"],[15,"for",[32,6]],[14,"role","menuitem"],[14,"tabindex","-1"],[15,"onkeypress",[32,8]],[12],[2,"Delete"],[13],[2,"\\n "],[10,"div"],[14,"role","menu"],[12],[2,"\\n "],[8,"informed-action",[[24,0,"warning"]],[["@namedBlocksInfo"],[[30,[36,7],null,[["header","body","actions"],[0,0,1]]]]],[["default"],[{"statements":[[6,[37,0],[[30,[36,6],[[32,9],"header"],null]],null,[["default","else"],[{"statements":[[2,"\\n Confirm Delete\\n "]],"parameters":[]},{"statements":[[6,[37,0],[[30,[36,6],[[32,9],"body"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this KV entry?\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,0],[[30,[36,6],[[32,9],"actions"],null]],null,[["default"],[{"statements":[[6,[37,5],[[32,10]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,11,["Action"]],[[24,0,"dangerous"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,0,"type-delete"],[24,"tabindex","-1"],[4,[38,4],["click",[30,[36,3],[[30,[36,2],[[32,0],[32,4]],null],[30,[36,2],[[32,0],[32,12],[32,1]],null]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,11,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[],[["@for"],[[32,6]]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[11]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[9,10]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"li"],[14,"role","none"],[12],[2,"\\n "],[10,"a"],[14,"role","menuitem"],[14,"tabindex","-1"],[15,6,[30,[36,1],[[30,[36,0],[[32,1,["isFolder"]],"dc.kv.folder","dc.kv.edit"],null],[32,1,["Key"]]],null]],[12],[2,"View"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[6,7,8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3,4,5]}]]],[2,"\\n"]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["if","href-to","action","queue","on","let","-is-named-block-invocation","hash","left-trim","right-trim","eq","can"]}',meta:{moduleName:"consul-ui/components/consul/kv/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/kv/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"pTbMHFFw",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","item","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-kv-search-bar"],[17,25]],[["@filter","@namedBlocksInfo"],[[32,22],[30,[36,14],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.kv.search-bar.",[32,18,["status","key"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,18,["status","key"]]],null],[30,[36,10],["common.consul.",[32,18,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.kv.search-bar.",[32,18,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,18,["status","value"]]],null],[30,[36,10],["common.consul.",[32,18,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,18,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,19]," ",[32,20]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,19]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,20]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[19,20]}]]],[2,"\\n "]],"parameters":[18]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,23]],null],[32,24],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[32,22,["searchproperty"]]],null,[["default"],[{"statements":[[2," "],[8,[32,13,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,22,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,14,["Optgroup"]],[32,14,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,22,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,16],[],[["@value","@selected"],[[32,17],[30,[36,9],[[32,17],[32,22,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,13],[[32,17]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[17]}]]]],"parameters":[15,16]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-kind"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,22,["kind","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.kv.search-bar.kind.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["folder","key"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[24,0,"value-{item}}"]],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,22,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["components.consul.kv.search-bar.kind.options.",[32,12]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,21,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Key:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Key:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null],[30,[36,4],["Kind:asc",[30,[36,0],["components.consul.kv.search-bar.sort.kind.asc"],null]],null],[30,[36,4],["Kind:desc",[30,[36,0],["components.consul.kv.search-bar.sort.kind.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,21,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Key:asc",[30,[36,1],["Key:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Key:desc",[30,[36,1],["Key:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["components.consul.kv.search-bar.kind.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Kind:asc",[30,[36,1],["Kind:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["components.consul.kv.search-bar.sort.kind.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Kind:desc",[30,[36,1],["Kind:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["components.consul.kv.search-bar.sort.kind.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/kv/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/loader/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"2ziS2H3f",block:'{"symbols":["&attrs"],"statements":[[11,"div"],[24,0,"consul-loader"],[17,1],[12],[2,"\\n "],[10,"svg"],[14,"xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],[14,"xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],[14,"width","44px"],[14,"height","44px"],[14,"viewBox","0 0 44 44"],[14,"version","1.1"],[12],[2,"\\n "],[10,"g"],[12],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","27"],[14,"cy","2"],[14,5,"transform-origin: 27px 2px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","17"],[14,"cy","2"],[14,5,"transform-origin: 17px 2px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","27"],[14,"cy","42"],[14,5,"transform-origin: 27px 42px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","17"],[14,"cy","42"],[14,5,"transform-origin: 17px 42px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","2"],[14,"cy","17"],[14,5,"transform-origin: 2px 17px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","2"],[14,"cy","27"],[14,5,"transform-origin: 2px 27px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","42"],[14,"cy","17"],[14,5,"transform-origin: 42px 17px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","42"],[14,"cy","27"],[14,5,"transform-origin: 42px 27px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","33"],[14,"cy","4"],[14,5,"transform-origin: 33px 4px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","11"],[14,"cy","4"],[14,5,"transform-origin: 11px 4px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","33"],[14,"cy","40"],[14,5,"transform-origin: 33px 40px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","11"],[14,"cy","40"],[14,5,"transform-origin: 11px 40px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","40"],[14,"cy","11"],[14,5,"transform-origin: 40px 11px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","4"],[14,"cy","33"],[14,5,"transform-origin: 4px 33px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","40"],[14,"cy","33"],[14,5,"transform-origin: 40px 33px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","1"],[14,"cx","4"],[14,"cy","11"],[14,5,"transform-origin: 4px 11px"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[10,"g"],[12],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","22"],[14,"cy","4"],[14,5,"transform-origin: 22px 4px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","22"],[14,"cy","40"],[14,5,"transform-origin: 22px 40px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","4"],[14,"cy","22"],[14,5,"transform-origin: 4px 22px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","40"],[14,"cy","22"],[14,5,"transform-origin: 40px 22px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","9"],[14,"cy","9"],[14,5,"transform-origin: 9px 9px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","35"],[14,"cy","35"],[14,5,"transform-origin: 35px 35px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","35"],[14,"cy","9"],[14,5,"transform-origin: 35px 9px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","9"],[14,"cy","35"],[14,5,"transform-origin: 9px 35px"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[10,"g"],[12],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","28"],[14,"cy","8"],[14,5,"transform-origin: 28px 8px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","16"],[14,"cy","8"],[14,5,"transform-origin: 16px 8px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","28"],[14,"cy","36"],[14,5,"transform-origin: 28px 36px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","16"],[14,"cy","36"],[14,5,"transform-origin: 16px 36px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","8"],[14,"cy","28"],[14,5,"transform-origin: 8px 28px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","8"],[14,"cy","16"],[14,5,"transform-origin: 8px 16px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","36"],[14,"cy","28"],[14,5,"transform-origin: 36px 28px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","2"],[14,"cx","36"],[14,"cy","16"],[14,5,"transform-origin: 36px 16px"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[10,"g"],[12],[2,"\\n "],[10,"circle"],[14,"r","5"],[14,"cx","22"],[14,"cy","12"],[14,5,"transform-origin: 22px 12px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","5"],[14,"cx","22"],[14,"cy","32"],[14,5,"transform-origin: 22px 32px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","5"],[14,"cx","12"],[14,"cy","22"],[14,5,"transform-origin: 12px 22px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","5"],[14,"cx","32"],[14,"cy","22"],[14,5,"transform-origin: 32px 22px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","5"],[14,"cx","15"],[14,"cy","15"],[14,5,"transform-origin: 15px 15px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","5"],[14,"cx","29"],[14,"cy","29"],[14,5,"transform-origin: 29px 29px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","5"],[14,"cx","29"],[14,"cy","15"],[14,5,"transform-origin: 29px 15px"],[12],[13],[2,"\\n "],[10,"circle"],[14,"r","5"],[14,"cx","15"],[14,"cy","29"],[14,5,"transform-origin: 15px 29px"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[10,"g"],[12],[2,"\\n "],[10,"circle"],[14,"r","9"],[14,"cx","22"],[14,"cy","22"],[14,5,"transform-origin: 22px 22px"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/consul/loader/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/lock-session/form/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"4H9hZw6F",block:'{"symbols":["writer","execute","cancel","message","confirm","checks","after","error","after","@item","&attrs","@onsubmit","@ondelete"],"statements":[[11,"div"],[24,0,"consul-lock-session-form"],[17,11],[12],[2,"\\n "],[8,"data-writer",[],[["@sink","@type","@label","@ondelete","@onchange"],[[30,[36,6],["/${partition}/${nspace}/${dc}/session",[30,[36,5],null,[["partition","nspace","dc"],[[32,10,["Partition"]],[32,10,["Namespace"]],[32,10,["Datacenter"]]]]]],null],"session","Lock Session",[30,[36,0],[[30,[36,4],[[32,13],[32,13],[32,12]],null],[32,10]],null],[30,[36,0],[[30,[36,7],[[32,12]],null],[32,10]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["removed"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/lock-session/notifications",[[4,[38,9],null,[["after"],[[30,[36,8],[[32,0],[32,9]],null]]]]],[["@type"],["remove"]],null],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/lock-session/notifications",[[4,[38,9],null,[["after"],[[30,[36,8],[[32,0],[32,7]],null]]]]],[["@type","@error"],["remove",[32,8]]],null],[2,"\\n "]],"parameters":[7,8]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"definition-table"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n"],[6,[37,4],[[32,10,["Name"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[2,"Name"],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,10,["Name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"dt"],[12],[2,"ID"],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,10,["ID"]]],[13],[2,"\\n "],[10,"dt"],[12],[2,"Node"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,10],["dc.nodes.show",[32,10,["Node"]]],null]],[12],[2,"\\n "],[1,[32,10,["Node"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dt"],[12],[2,"Delay"],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,11],[[32,10,["LockDelay"]]],null]],[13],[2,"\\n "],[10,"dt"],[12],[2,"TTL"],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,12],[[32,10,["TTL"]],"-"],null]],[13],[2,"\\n "],[10,"dt"],[12],[2,"Behavior"],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,10,["Behavior"]]],[13],[2,"\\n"],[6,[37,13],[[32,10,["checks"]]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[2,"Health Checks"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,4],[[30,[36,3],[[32,6,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,2],[", ",[32,6]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," -\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[6]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,4],[[30,[36,14],["delete session"],[["item"],[[32,10]]]]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to invalidate this Lock Session?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,0,"type-delete"],[4,[38,1],["click",[30,[36,0],[[32,5],[30,[36,0],[[32,1,["delete"]],[32,10]],null]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Invalidate Session\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[32,4]],[2,"\\n "],[13],[2,"\\n "],[8,"action",[[24,0,"type-delete"],[4,[38,1],["click",[30,[36,0],[[32,2]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Confirm Invalidation\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"action",[[24,0,"type-cancel"],[4,[38,1],["click",[30,[36,0],[[32,3]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2,3,4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["fn","on","join","gt","if","hash","uri","optional","action","notification","href-to","duration-from","or","let","can"]}',meta:{moduleName:"consul-ui/components/consul/lock-session/form/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/lock-session/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"4zmOmXUM",block:'{"symbols":["item","index","execute","cancel","message","confirm","checks","item","&attrs","@items","@ondelete"],"statements":[[8,"list-collection",[[24,0,"consul-lock-session-list"],[17,9]],[["@items"],[[32,10]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[32,1,["Name"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[12],[1,[32,1,["Name"]]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[12],[2,"\\n "],[1,[32,1,["ID"]]],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,1,["ID"]],"ID"]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[32,1,["Name"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n ID\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,1,["ID"]],"ID"]],null],[2,"\\n "],[1,[32,1,["ID"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"dl"],[14,0,"lock-delay"],[12],[2,"\\n "],[11,"dt"],[4,[38,2],null,null],[12],[2,"\\n Delay\\n "],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,5],[[32,1,["LockDelay"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[14,0,"ttl"],[12],[2,"\\n "],[11,"dt"],[4,[38,2],null,null],[12],[2,"\\n TTL\\n "],[13],[2,"\\n"],[6,[37,4],[[30,[36,6],[[32,1,["TTL"]],""],null]],null,[["default","else"],[{"statements":[[2," "],[10,"dd"],[12],[2,"-"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"dd"],[12],[1,[32,1,["TTL"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"dl"],[14,0,"behavior"],[12],[2,"\\n "],[11,"dt"],[4,[38,2],null,null],[12],[2,"\\n Behavior\\n "],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,1,["Behavior"]]],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,8],[[30,[36,7],[[32,1,["NodeChecks"]],[32,1,["ServiceChecks"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"checks"],[12],[2,"\\n "],[11,"dt"],[4,[38,2],null,null],[12],[2,"\\n Checks\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,4],[[30,[36,3],[[32,7,["length"]],0],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,0],[[30,[36,0],[[32,7]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[1,[32,8]],[13],[2,"\\n"]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[2," -\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[7]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to invalidate this session?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,0,"type-delete"],[4,[38,10],["click",[30,[36,9],[[32,6],[30,[36,9],[[32,11],[32,1]],null]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Invalidate\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[32,5]],[2,"\\n "],[13],[2,"\\n "],[8,"action",[[24,0,"type-delete"],[4,[38,10],["click",[30,[36,9],[[32,3]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Confirm Invalidate\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"action",[[24,0,"type-cancel"],[4,[38,10],["click",[30,[36,9],[[32,4]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3,4,5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["-track-array","each","tooltip","gt","if","duration-from","eq","union","let","fn","on"]}',meta:{moduleName:"consul-ui/components/consul/lock-session/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/lock-session/notifications/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"C5IRTA6J",block:'{"symbols":["notice","notice","notice","@type","&attrs","@error"],"statements":[[6,[37,2],[[30,[36,1],[[32,4],"remove"],null]],null,[["default","else"],[{"statements":[[6,[37,2],[[32,6]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-delete"],[17,5]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,3,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n There was an error invalidating the Lock Session.\\n"],[6,[37,2],[[30,[36,3],[[32,6,["status"]],[32,6,["detail"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"br"],[12],[13],[1,[32,6,["status"]]],[2,": "],[1,[32,6,["detail"]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-delete"],[17,5]],[["@type"],["success"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,2,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Success!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,2,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Your Lock Session has been invalidated.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],[[32,4],"kv"],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"strong"],[12],[2,"Warning."],[13],[2," This KV has a lock session. You can edit KV\'s with lock sessions, but we recommend doing so with care, or not doing so at all. It may negatively impact the active node it\'s associated with. See below for more details on the Lock Session and see "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/internals/sessions.html"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"our documentation"],[13],[2," for more information.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["env","eq","if","and"]}',meta:{moduleName:"consul-ui/components/consul/lock-session/notifications/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/logo/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"VqMopggF",block:'{"symbols":[],"statements":[[10,"svg"],[14,"width","32"],[14,"height","32"],[14,"xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],[14,"fill","currentColor"],[12],[2,"\\n "],[10,"title"],[12],[2,"Consul"],[13],[2,"\\n "],[10,"path"],[14,"d","M20.0909311,0.531825836 C17.5736708,-0.133926002 14.9319012,-0.175262092 12.3950559,0.41140611 C9.85814916,0.998075538 7.50278772,2.1950159 5.53339269,3.89834301 C3.56397924,5.60167011 2.04003632,7.75991032 1.09382125,10.1857533 C0.147614161,12.6115349 -0.192263562,15.231632 0.103691496,17.8185758 C0.399647167,20.4055195 1.32249342,22.8811539 2.79212624,25.0305962 C4.26175905,27.1800385 6.2337511,28.9383326 8.5369881,30.1528504 C10.8402251,31.3673682 13.4050666,32.0014567 16.008894,32 C20.0224756,32.0040967 23.890121,30.4948211 26.8400939,27.7732993 L23.056744,23.818657 C21.5467316,25.1801547 19.674304,26.0745584 17.666316,26.3936287 C15.658328,26.7127604 13.6008556,26.4427448 11.7432242,25.6164282 C9.88553137,24.7900502 8.30724765,23.4427963 7.19961874,21.7377931 C6.09198982,20.0328513 5.50246798,18.0432818 5.50246798,16.0100604 C5.50246798,13.9769005 6.09198982,11.987331 7.19961874,10.2823278 C8.30724765,8.57732462 9.88553137,7.23007065 11.7432242,6.40375406 C13.6008556,5.57740063 15.658328,5.30742184 17.666316,5.62649829 C19.674304,5.94557474 21.5467316,6.8400276 23.056744,8.20152524 L26.8400939,4.23173679 C24.9249353,2.46762854 22.6081914,1.1975789 20.0909311,0.531825836 Z M28.629761,21.4006112 C28.3757081,21.4511394 28.1422839,21.5758942 27.9591423,21.7590358 C27.7759394,21.9422387 27.6511845,22.1756015 27.6006564,22.4297158 C27.5501282,22.6837687 27.5760369,22.9471537 27.67519,23.1864717 C27.7743431,23.4258512 27.9421973,23.6304197 28.1576327,23.7743298 C28.3730067,23.9182399 28.6262614,23.9950451 28.8852873,23.9950451 C29.2327222,23.9950451 29.565852,23.8570904 29.8114938,23.6114486 C30.0571355,23.3658068 30.1951517,23.0326156 30.1951517,22.6852422 C30.1951517,22.4261549 30.118285,22.1729615 29.9743749,21.9575261 C29.8304648,21.7421521 29.6258964,21.5742365 29.3865783,21.4751449 C29.1471988,21.3759918 28.8838753,21.3500217 28.629761,21.4006112 Z M30.136151,16.921839 C29.8820981,16.9724286 29.648674,17.097122 29.4655324,17.280325 C29.2823294,17.4635279 29.1575746,17.6968907 29.1070464,17.951005 C29.0565183,18.2050579 29.082427,18.4684429 29.1815801,18.7077609 C29.2807332,18.947079 29.4485873,19.1516475 29.6640227,19.295619 C29.8793967,19.4395291 30.1326515,19.5163343 30.3916774,19.5163343 C30.7386825,19.5149836 31.0710755,19.3765991 31.3164103,19.1312643 C31.5617451,18.8858681 31.7001911,18.5534751 31.7015418,18.2065314 C31.7015418,17.9474441 31.6247365,17.6941893 31.480765,17.4788153 C31.3368549,17.2634413 31.1322864,17.0955257 30.8929684,16.9963726 C30.6535889,16.897281 30.3902653,16.8713108 30.136151,16.921839 Z M17.2353224,12.7982374 C16.6019706,12.5359576 15.9050749,12.4673179 15.2327372,12.6010364 C14.5603995,12.7347549 13.9428262,13.0648763 13.458112,13.5495906 C12.9733363,14.0343049 12.6432763,14.6519395 12.5094963,15.3242158 C12.3757778,15.9965535 12.4444175,16.6934492 12.7067588,17.3268011 C12.9691,17.9601529 13.4133549,18.5014734 13.983347,18.8823072 C14.5532777,19.263141 15.2234051,19.4664201 15.9089428,19.4664201 C16.8281501,19.4664201 17.7097223,19.1012421 18.3597736,18.4512522 C19.0097635,17.8012623 19.3749415,16.9196902 19.3749415,16.0004214 C19.3749415,15.3149452 19.1716623,14.6448177 18.7907672,14.0748256 C18.4099334,13.5048336 17.8686128,13.0605787 17.2353224,12.7982374 Z M26.9935817,16.8454635 C26.7542636,16.7463104 26.4908786,16.7204017 26.2368257,16.7709299 C25.9827114,16.821458 25.7493487,16.9462129 25.5661457,17.1294158 C25.3830041,17.3125574 25.2582493,17.5459815 25.2076597,17.8000344 C25.1571316,18.0541487 25.1831017,18.3174723 25.2822548,18.5568518 C25.3813465,18.7961699 25.549262,19.0007383 25.764636,19.1446484 C25.9800714,19.2885585 26.2332648,19.3654252 26.4923521,19.3654252 C26.8397256,19.3654252 27.1729167,19.227409 27.4185585,18.9817672 C27.6641389,18.7361255 27.8021551,18.4029957 27.8021551,18.0555608 C27.8021551,17.7965349 27.7253498,17.5432802 27.5814397,17.3279062 C27.4375296,17.1124708 27.2328997,16.9446166 26.9935817,16.8454635 Z M26.9935817,12.7396665 C26.7542636,12.6405134 26.4908786,12.6146047 26.2368257,12.6651329 C25.9827114,12.715661 25.7493487,12.8404159 25.5661457,13.0236188 C25.3830041,13.2067604 25.2582493,13.4401845 25.2076597,13.6942374 C25.1571316,13.9483517 25.1831017,14.2116753 25.2822548,14.4510548 C25.3813465,14.6903729 25.549262,14.8949413 25.764636,15.0388514 C25.9800714,15.1827615 26.2332648,15.2596282 26.4923521,15.2596282 C26.8397256,15.2596282 27.1729167,15.121612 27.4185585,14.8759702 C27.6641389,14.6303285 27.8021551,14.2971373 27.8021551,13.9497638 C27.8021551,13.6907379 27.7253498,13.4374832 27.5814397,13.2220478 C27.4375296,13.0066738 27.2328997,12.8388196 26.9935817,12.7396665 Z M30.136151,12.5138553 C29.8820981,12.5644449 29.648674,12.6891997 29.4655324,12.8723413 C29.2823294,13.0555443 29.1575746,13.288907 29.1070464,13.5430213 C29.0565183,13.7970742 29.082427,14.0604592 29.1815801,14.2997773 C29.2807332,14.5391567 29.4485873,14.7436638 29.6640227,14.8876353 C29.8793967,15.0315454 30.1326515,15.1083507 30.3916774,15.1083507 C30.7386825,15.1070614 31.0710755,14.9686154 31.3164103,14.7232806 C31.5617451,14.4778844 31.7001911,14.1454914 31.7015418,13.7985477 C31.7015418,13.5394604 31.6247365,13.286267 31.480765,13.0708316 C31.3368549,12.8554577 31.1322864,12.6875421 30.8929684,12.5884504 C30.6535889,12.4892973 30.3902653,12.4633272 30.136151,12.5138553 Z M28.7055225,8.10574889 C28.4514696,8.15627705 28.2180454,8.28103189 28.0348425,8.46423485 C27.8517009,8.64743782 27.7269461,8.88080057 27.6764179,9.13485348 C27.6258898,9.38896778 27.6517985,9.65235274 27.7509516,9.89167082 C27.8501046,10.1309889 28.0179588,10.3355574 28.2333328,10.4794675 C28.4487682,10.623439 28.702023,10.7002442 28.9610489,10.7002442 C29.3084223,10.7002442 29.6416135,10.5622281 29.8872553,10.3165863 C30.1328971,10.0709445 30.2708519,9.73781471 30.2708519,9.39044126 C30.2708519,9.13135396 30.1940466,8.87809919 30.0501365,8.6627252 C29.9062264,8.44728981 29.7016579,8.27943562 29.4622784,8.18028254 C29.2229604,8.08112946 28.9595754,8.05522073 28.7055225,8.10574889 Z"],[14,"fill-rule","nonzero"],[12],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/consul/logo/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/metadata/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"VbVHYYDc",block:'{"symbols":["item","index"],"statements":[[8,"tabular-collection",[[24,0,"consul-metadata-list"]],[["@items"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"th"],[12],[2,"Key"],[13],[2,"\\n "],[10,"th"],[12],[2,"Value"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,1],[0,[32,1]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"span"],[12],[1,[30,[36,1],[1,[32,1]],null]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["items","object-at"]}',meta:{moduleName:"consul-ui/components/consul/metadata/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/consul/node-identity/template/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"f1nRWNk1",block:'{"symbols":["@name","@partition"],"statements":[[6,[37,1],[[30,[36,0],["use partitions"],null]],null,[["default","else"],[{"statements":[[2,"partition \\""],[1,[30,[36,2],[[32,2],"default"],null]],[2,"\\" {\\n"],[6,[37,1],[[30,[36,0],["use nspaces"],null]],null,[["default","else"],[{"statements":[[2," namespace \\"default\\" {\\n node \\""],[1,[32,1]],[2,"\\" {\\n\\t policy = \\"write\\"\\n }\\n }\\n namespace_prefix \\"\\" {\\n service_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n }\\n"]],"parameters":[]},{"statements":[[2," node \\""],[1,[32,1]],[2,"\\" {\\n\\t policy = \\"write\\"\\n }\\n service_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n"]],"parameters":[]}]]],[2,"}"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],["use nspaces"],null]],null,[["default","else"],[{"statements":[[2,"namespace \\"default\\" {\\n node \\""],[1,[32,1]],[2,"\\" {\\n\\t policy = \\"write\\"\\n }\\n}\\nnamespace_prefix \\"\\" {\\n service_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n}\\n"]],"parameters":[]},{"statements":[[2,"node \\""],[1,[32,1]],[2,"\\" {\\n\\tpolicy = \\"write\\"\\n}\\nservice_prefix \\"\\" {\\n\\tpolicy = \\"read\\"\\n}"]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["can","if","or"]}',meta:{moduleName:"consul-ui/components/consul/node-identity/template/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/node/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"mZ3vKiug",block:'{"symbols":["item","index","@items","@leader"],"statements":[[8,"list-collection",[[24,0,"consul-node-list"]],[["@items"],[[32,3]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[15,0,[32,1,["Status"]]],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Health\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"tooltip",[],[["@position"],["top-start"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,0],["critical",[32,1,["Status"]]],null]],null,[["default","else"],[{"statements":[[2," At least one health check on this node is failing.\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],["warning",[32,1,["Status"]]],null]],null,[["default","else"],[{"statements":[[2," At least one health check on this node has a warning.\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],["passing",[32,1,["Status"]]],null]],null,[["default","else"],[{"statements":[[2," All health checks are passing.\\n"]],"parameters":[]},{"statements":[[2," There are no health checks.\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"a"],[15,6,[30,[36,2],["dc.nodes.show",[32,1,["Node"]]],null]],[12],[2,"\\n "],[1,[32,1,["Node"]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,0],[[32,1,["Address"]],[32,4,["Address"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"leader"],[12],[2,"Leader"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,3],[[32,1,["MeshServiceInstances","length"]]],null]],[2," "],[1,[30,[36,4],[[32,1,["MeshServiceInstances","length"]],"Service"],[["without-count"],[true]]]],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[10,"span"],[12],[2,"Address"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,1,["Address"]],"Address"]],null],[2,"\\n "],[1,[32,1,["Address"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["eq","if","href-to","format-number","pluralize"]}',meta:{moduleName:"consul-ui/components/consul/node/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/node/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"iOQYq0d+",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","state","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-node-search-bar"],[17,25]],[["@filter","@namedBlocksInfo"],[[32,22],[30,[36,14],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.node.search-bar.",[32,18,["status","key"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,18,["status","key"]]],null],[30,[36,10],["common.consul.",[32,18,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.node.search-bar.",[32,18,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,18,["status","value"]]],null],[30,[36,10],["common.consul.",[32,18,["status","value"]]],null],[30,[36,10],["common.brand.",[32,18,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,18,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,19]," ",[32,20]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,19]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,20]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[19,20]}]]],[2,"\\n "]],"parameters":[18]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,23]],null],[32,24],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,22,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,14,["Optgroup"]],[32,14,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,22,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,16],[],[["@value","@selected"],[[32,17],[30,[36,9],[[32,17],[32,22,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,13],[[32,17]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[17]}]]]],"parameters":[15,16]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-status"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,22,["status","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.consul.status"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["passing","warning","critical"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[16,0,[31,["value-",[32,12]]]]],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,22,["status","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[32,12]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,12]],null]],null]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,21,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Node:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Node:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null],[30,[36,4],["Status:asc",[30,[36,0],["common.sort.status.asc"],null]],null],[30,[36,4],["Status:desc",[30,[36,0],["common.sort.status.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,21,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.status"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:asc",[30,[36,1],["Status:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:desc",[30,[36,1],["Status:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.node-name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Node:asc",[30,[36,1],["Node:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Node:desc",[30,[36,1],["Node:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/node/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/nspace/form/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"2mV3xg0a",block:'{"symbols":["writer","readOnly","item","Name","Description","State","Guard","ChartAction","dispatch","state","execute","cancel","message","confirm","after","@dc","@partition","@onsubmit","@oncancel","&attrs","@item","@ondelete"],"statements":[[11,"div"],[24,0,"consul-nspace-form"],[17,20],[12],[2,"\\n "],[8,"data-writer",[],[["@sink","@type","@label","@ondelete","@onchange"],[[30,[36,12],["/${partition}/${nspace}/${dc}/nspace",[30,[36,9],null,[["partition","nspace","dc"],["","",[32,21,["Datacenter"]]]]]],null],"nspace","Namespace",[30,[36,0],[[30,[36,3],[[32,22],[32,22],[32,18]],null],[32,21]],null],[30,[36,0],[[30,[36,13],[[32,18]],null],[32,21]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["removed"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/nspace/notifications",[[4,[38,15],null,[["after"],[[30,[36,14],[[32,0],[32,15]],null]]]]],[["@type"],["remove"]],null],[2,"\\n "]],"parameters":[15]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,17],[[30,[36,8],[[30,[36,2],["write nspaces"],null]],null],[32,21],[30,[36,9],null,[["help","Name"],["Must be a valid DNS hostname. Must contain 1-64 characters (numbers, letters, and hyphens), and must begin with a letter. Once created, this cannot be changed.",[30,[36,16],[[30,[36,9],null,[["test","error"],["^[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?$","Name must be a valid DNS hostname."]]]],null]]]],[30,[36,9],null,[["Description"],[[30,[36,16],null,null]]]]],null,[["default"],[{"statements":[[11,"form"],[4,[38,1],["submit",[30,[36,0],[[32,1,["persist"]],[32,3]],null]],null],[4,[38,7],[[32,2]],null],[12],[2,"\\n\\n"],[8,"state-chart",[],[["@src"],[[30,[36,10],["validate"],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[10,"fieldset"],[12],[2,"\\n"],[6,[37,3],[[30,[36,5],["new nspace"],[["item"],[[32,3]]]]],null,[["default"],[{"statements":[[2," "],[8,"text-input",[],[["@name","@placeholder","@item","@validations","@chart"],["Name","Name",[32,3],[32,4],[30,[36,9],null,[["state","dispatch"],[[32,10],[32,9]]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"text-input",[],[["@expanded","@name","@label","@item","@validations","@chart"],[true,"Description","Description (Optional)",[32,3],[32,5],[30,[36,9],null,[["state","dispatch"],[[32,10],[32,9]]]]]],null],[2,"\\n "],[13],[2,"\\n"],[6,[37,3],[[30,[36,2],["use acls"],null]],null,[["default"],[{"statements":[[2," "],[10,"fieldset"],[14,1,"roles"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Roles"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],["write nspace"],[["item"],[[32,3]]]]],null,[["default","else"],[{"statements":[[2," By adding roles to this namespaces, you will apply them to all tokens created within this namespace.\\n"]],"parameters":[]},{"statements":[[2," The following roles are applied to all tokens created within this namespace.\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[8,"role-selector",[],[["@dc","@nspace","@partition","@disabled","@items"],[[32,16],"default",[32,17],[32,2],[32,3,["ACLs","RoleDefaults"]]]],null],[2,"\\n "],[13],[2,"\\n "],[10,"fieldset"],[14,1,"policies"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Policies"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,3],[[30,[36,8],[[32,2]],null]],null,[["default","else"],[{"statements":[[2," By adding policies to this namespace, you will apply them to all tokens created within this namespace.\\n"]],"parameters":[]},{"statements":[[2," The following policies are applied to all tokens created within this namespace.\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[8,"policy-selector",[],[["@dc","@nspace","@partition","@disabled","@allowIdentity","@items"],[[32,16],"default",[32,17],[32,2],false,[32,3,["ACLs","PolicyDefaults"]]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"div"],[12],[2,"\\n"],[6,[37,3],[[30,[36,11],[[30,[36,5],["new nspace"],[["item"],[[32,3]]]],[30,[36,2],["create nspaces"],null]],null]],null,[["default","else"],[{"statements":[[2," "],[8,"action",[[4,[38,7],[[30,[36,6],[[30,[36,5],["pristine nspace"],[["item"],[[32,3]]]],[30,[36,4],[[32,10],"error"],null]],null]],null]],[["@type"],["submit"]],[["default"],[{"statements":[[2,"\\n Save\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],["write nspace"],[["item"],[[32,3]]]]],null,[["default"],[{"statements":[[2," "],[8,"action",[],[["@type"],["submit"]],[["default"],[{"statements":[[2,"Save"]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n "],[8,"action",[[4,[38,1],["click",[30,[36,3],[[32,19],[30,[36,0],[[32,19],[32,3]],null],[30,[36,0],[[32,18],[32,3]],null]],null]],null]],[["@type"],["reset"]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n\\n"],[6,[37,3],[[30,[36,11],[[30,[36,8],[[30,[36,5],["new nspace"],[["item"],[[32,3]]]]],null],[30,[36,2],["delete nspace"],[["item"],[[32,3]]]]],null]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to delete this Namespace?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,0,"type-delete"],[4,[38,1],["click",[30,[36,0],[[32,14],[30,[36,0],[[32,1,["delete"]],[32,3]],null]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[8,"delete-confirmation",[],[["@message","@execute","@cancel"],[[32,13],[32,11],[32,12]]],null],[2,"\\n "]],"parameters":[11,12,13]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[6,7,8,9,10]}]]],[2,"\\n"],[13],[2,"\\n"]],"parameters":[2,3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["fn","on","can","if","state-matches","is","or","disabled","not","hash","state-chart","and","uri","optional","action","notification","array","let"]}',meta:{moduleName:"consul-ui/components/consul/nspace/form/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/nspace/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"dI19TXfs",block:'{"symbols":["item","Actions","Action","Confirmation","Confirm","@ondelete","&attrs","@items"],"statements":[[8,"list-collection",[[24,0,"consul-nspace-list"],[17,7]],[["@items","@linkable"],[[32,8],"linkable nspace"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[32,1,["DeletedAt"]]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"\\n Deleting "],[1,[32,1,["Name"]]],[2,"...\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[15,6,[30,[36,1],["dc.nspaces.edit",[32,1,["Name"]]],null]],[12],[1,[32,1,["Name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[32,1,["Description"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Description"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Description"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,3],[[30,[36,4],["CONSUL_ACLS_ENABLED"],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/token/ruleset/list",[],[["@item"],[[32,1]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,5],[[32,1,["DeletedAt"]]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,2],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3],[],[["@href"],[[30,[36,1],["dc.nspaces.edit",[32,1,["Name"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,2],["write nspace"],[["item"],[[32,1]]]]],null,[["default","else"],[{"statements":[[2," Edit\\n"]],"parameters":[]},{"statements":[[2," View\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,3],[[30,[36,2],["delete nspace"],[["item"],[[32,1]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,3],[[24,0,"dangerous"]],[["@onclick"],[[30,[36,0],[[32,0],[32,6],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this namespace?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5],[],[[],[]],[["default"],[{"statements":[[2,"Delete"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[3]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["action","href-to","can","if","env","not"]}',meta:{moduleName:"consul-ui/components/consul/nspace/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})) +define("consul-ui/components/consul/nspace/notifications/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"LcZiH9cu",block:'{"symbols":["notice","&attrs","@type"],"statements":[[6,[37,1],[[30,[36,0],[[32,3],"remove"],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-delete"],[17,2]],[["@type"],["success"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Success!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Your Namespace has been marked for deletion.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["eq","if"]}',meta:{moduleName:"consul-ui/components/consul/nspace/notifications/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/nspace/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"zG/SiimO",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-nspace-search-bar"],[17,20]],[["@filter","@namedBlocksInfo"],[[32,17],[30,[36,14],null,[["status","search","sort"],[1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,11],["components.consul.nspace.search-bar.",[32,13,["status","key"]]],null]],[["default"],[[30,[36,4],[[30,[36,11],["common.search.",[32,13,["status","key"]]],null],[30,[36,11],["common.consul.",[32,13,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,11],["components.consul.nspace.search-bar.",[32,13,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,11],["common.search.",[32,13,["status","value"]]],null],[30,[36,11],["common.consul.",[32,13,["status","value"]]],null],[30,[36,11],["common.brand.",[32,13,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,13,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,11],[[32,14]," ",[32,15]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,14]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,15]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[14,15]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,18]],null],[32,19],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,17,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,17,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,17,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,11],["common.consul.",[30,[36,10],[[32,12]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,16,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Name:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Name:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,16,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:asc",[30,[36,1],["Name:asc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:desc",[30,[36,1],["Name:desc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","lowercase","concat","-track-array","each","hash"]}',meta:{moduleName:"consul-ui/components/consul/nspace/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/nspace/selector/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"M3okNSs+",block:'{"symbols":["nspace","isManaging","disclosure","panel","menu","item","@partition","@dc","@onchange","@nspaces","@nspace"],"statements":[[6,[37,4],[[30,[36,18],["use nspaces"],null]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,18],["choose nspaces"],null]],null,[["default"],[{"statements":[[6,[37,17],[[30,[36,3],[[32,11],"default"],null],[30,[36,16],["dc.nspaces",[32,8,["Name"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[14,0,"nspaces"],[12],[2,"\\n "],[8,"disclosure-menu",[[24,"aria-label","Namespace"]],[["@items"],[[30,[36,13],[[30,[36,6],null,[["Name","href"],["Manage Namespaces",[30,[36,7],["dc.nspaces",[32,8,["Name"]]],null]]]],[30,[36,12],["DeletedAt",[32,10]],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Action"]],[[4,[38,8],["click",[32,3,["toggle"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,4],[[32,2],"Manage Namespaces",[32,1]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,3,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,5],[[32,10,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,9],["/${partition}/*/${dc}/namespaces",[30,[36,6],null,[["partition","dc"],[[32,7],[32,8,["Name"]]]]]],null],[30,[36,11],[[30,[36,10],[[32,9]],null]],null]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,9],["/${partition}/*/${dc}/namespaces",[30,[36,6],null,[["partition","dc"],[[32,7],[32,8,["Name"]]]]]],null],[30,[36,11],[[30,[36,10],[[32,9]],null]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,[32,4,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[30,[36,14],[[30,[36,14],[[32,5,["items"]]],null]],null]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Item"]],[[16,"aria-current",[30,[36,4],[[30,[36,3],[[30,[36,2],[[32,2],[32,6,["href"]]],null],[30,[36,2],[[30,[36,1],[[32,2]],null],[30,[36,0],[[32,1],[32,6,["Name"]]],null]],null]],null],"true"],null]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Action"]],[[4,[38,8],["click",[32,3,["close"]]],null]],[["@href"],[[30,[36,4],[[32,6,["href"]],[32,6,["href"]],[30,[36,4],[[32,2],[30,[36,7],["dc.services.index"],[["params"],[[30,[36,6],null,[["partition","nspace","dc"],[[30,[36,4],[[30,[36,5],[[32,7,["length"]],0],null],[32,7],[29]],null],[32,6,["Name"]],[32,8,["Name"]]]]]]]],[30,[36,7],["."],[["params"],[[30,[36,6],null,[["partition","nspace"],[[30,[36,4],[[30,[36,5],[[32,7,["length"]],0],null],[32,7],[29]],null],[32,6,["Name"]]]]]]]]],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,6,["Name"]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[6]}]]],[2," "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1,2]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["eq","not","and","or","if","gt","hash","href-to","on","uri","optional","fn","reject-by","append","-track-array","each","is-href","let","can"]}',meta:{moduleName:"consul-ui/components/consul/nspace/selector/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/partition/form/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"XmdLDsy0",block:'{"symbols":["writer","readOnly","item","Name","Description","State","Guard","ChartAction","dispatch","state","execute","cancel","message","confirm","after","@onsubmit","@oncancel","&attrs","@item","@ondelete"],"statements":[[11,"div"],[24,0,"consul-partition-form"],[17,18],[12],[2,"\\n "],[8,"data-writer",[],[["@sink","@type","@label","@ondelete","@onchange"],[[30,[36,12],["/${partition}/${nspace}/${dc}/partition",[30,[36,8],null,[["partition","nspace","dc"],["","",[32,19,["Datacenter"]]]]]],null],"partition","Partition",[30,[36,0],[[30,[36,3],[[32,20],[32,20],[32,16]],null],[32,19]],null],[30,[36,0],[[30,[36,13],[[32,16]],null],[32,19]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["removed"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/partition/notifications",[[4,[38,15],null,[["after"],[[30,[36,14],[[32,0],[32,15]],null]]]]],[["@type"],["remove"]],null],[2,"\\n "]],"parameters":[15]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,17],[[30,[36,2],[[30,[36,10],["write partition"],null]],null],[32,19],[30,[36,8],null,[["help","Name"],["Must be a valid DNS hostname. Must contain 1-64 characters (numbers, letters, and hyphens), and must begin with a letter. Once created, this cannot be changed.",[30,[36,16],[[30,[36,8],null,[["test","error"],["^[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?$","Name must be a valid DNS hostname."]]]],null]]]],[30,[36,8],null,[["Description"],[[30,[36,16],null,null]]]]],null,[["default"],[{"statements":[[11,"form"],[4,[38,1],["submit",[30,[36,0],[[32,1,["persist"]],[32,3]],null]],null],[4,[38,7],[[32,2]],null],[12],[2,"\\n\\n"],[8,"state-chart",[],[["@src"],[[30,[36,9],["validate"],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[10,"fieldset"],[12],[2,"\\n"],[6,[37,3],[[30,[36,5],["new partition"],[["item"],[[32,3]]]]],null,[["default"],[{"statements":[[2," "],[8,"text-input",[],[["@name","@placeholder","@item","@validations","@chart"],["Name","Name",[32,3],[32,4],[30,[36,8],null,[["state","dispatch"],[[32,10],[32,9]]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"text-input",[],[["@expanded","@name","@label","@item","@validations","@chart"],[true,"Description","Description (Optional)",[32,3],[32,5],[30,[36,8],null,[["state","dispatch"],[[32,10],[32,9]]]]]],null],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[12],[2,"\\n"],[6,[37,3],[[30,[36,11],[[30,[36,5],["new partition"],[["item"],[[32,3]]]],[30,[36,10],["create partitions"],null]],null]],null,[["default","else"],[{"statements":[[2," "],[8,"action",[[4,[38,7],[[30,[36,6],[[30,[36,5],["pristine partition"],[["item"],[[32,3]]]],[30,[36,4],[[32,10],"error"],null]],null]],null]],[["@type"],["submit"]],[["default"],[{"statements":[[2,"\\n Save\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,2]],null]],null,[["default"],[{"statements":[[2," "],[8,"action",[],[["@type"],["submit"]],[["default"],[{"statements":[[2,"Save"]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n "],[8,"action",[[4,[38,1],["click",[30,[36,3],[[32,17],[30,[36,0],[[32,17],[32,3]],null],[30,[36,0],[[32,16],[32,3]],null]],null]],null]],[["@type"],["reset"]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n\\n"],[6,[37,3],[[30,[36,11],[[30,[36,2],[[30,[36,5],["new partition"],[["item"],[[32,3]]]]],null],[30,[36,10],["delete partition"],[["item"],[[32,3]]]]],null]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to delete this Partition?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,0,"type-delete"],[4,[38,1],["click",[30,[36,0],[[32,14],[30,[36,0],[[32,1,["delete"]],[32,3]],null]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[8,"delete-confirmation",[],[["@message","@execute","@cancel"],[[32,13],[32,11],[32,12]]],null],[2,"\\n "]],"parameters":[11,12,13]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n\\n"]],"parameters":[6,7,8,9,10]}]]],[2,"\\n"],[13],[2,"\\n\\n"]],"parameters":[2,3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["fn","on","not","if","state-matches","is","or","disabled","hash","state-chart","can","and","uri","optional","action","notification","array","let"]}',meta:{moduleName:"consul-ui/components/consul/partition/form/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/partition/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"r5hj3CrJ",block:'{"symbols":["item","Actions","Action","Confirmation","Confirm","@ondelete","&attrs","@items"],"statements":[[8,"list-collection",[[24,0,"consul-partition-list"],[17,7]],[["@items","@linkable"],[[32,8],"linkable partition"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[32,1,["DeletedAt"]]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"\\n Deleting "],[1,[32,1,["Name"]]],[2,"...\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[15,6,[30,[36,1],["dc.partitions.edit",[32,1,["Name"]]],null]],[12],[1,[32,1,["Name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[32,1,["Description"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Description"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Description"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,4],[[32,1,["DeletedAt"]]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,2],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3],[],[["@href"],[[30,[36,1],["dc.partitions.edit",[32,1,["Name"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,2],["write partition"],[["item"],[[32,1]]]]],null,[["default","else"],[{"statements":[[2," Edit\\n"]],"parameters":[]},{"statements":[[2," View\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,3],[[30,[36,2],["delete partition"],[["item"],[[32,1]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,3],[[24,0,"dangerous"]],[["@onclick"],[[30,[36,0],[[32,0],[32,6],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this partition?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5],[],[[],[]],[["default"],[{"statements":[[2,"Delete"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[3]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["action","href-to","can","if","not"]}',meta:{moduleName:"consul-ui/components/consul/partition/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/partition/notifications/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"0ydQ0+/V",block:'{"symbols":["notice","&attrs","@type"],"statements":[[6,[37,1],[[30,[36,0],[[32,3],"remove"],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-delete"],[17,2]],[["@type"],["success"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Success!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Your Partition has been marked for deletion.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["eq","if"]}',meta:{moduleName:"consul-ui/components/consul/partition/notifications/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/partition/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"0zDAbGxg",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-partition-search-bar"],[17,20]],[["@filter","@namedBlocksInfo"],[[32,17],[30,[36,14],null,[["status","search","sort"],[1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,11],["components.consul.nspace.search-bar.",[32,13,["status","key"]]],null]],[["default"],[[30,[36,4],[[30,[36,11],["common.search.",[32,13,["status","key"]]],null],[30,[36,11],["common.consul.",[32,13,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,11],["components.consul.nspace.search-bar.",[32,13,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,11],["common.search.",[32,13,["status","value"]]],null],[30,[36,11],["common.consul.",[32,13,["status","value"]]],null],[30,[36,11],["common.brand.",[32,13,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,13,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,11],[[32,14]," ",[32,15]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,14]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,15]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[14,15]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,18]],null],[32,19],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,17,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,17,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,17,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,11],["common.consul.",[30,[36,10],[[32,12]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,16,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Name:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Name:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,16,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:asc",[30,[36,1],["Name:asc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:desc",[30,[36,1],["Name:desc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","lowercase","concat","-track-array","each","hash"]}',meta:{moduleName:"consul-ui/components/consul/partition/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/partition/selector/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"AZQPTZYS",block:'{"symbols":["partition","isManaging","disclosure","panel","menu","item","@dc","@partitions","@onchange","@partition"],"statements":[[6,[37,17],[[30,[36,3],[[32,10],"default"],null],[30,[36,16],["dc.partitions",[32,7,["Name"]]],null]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,15],["choose partitions"],[["dc"],[[32,7]]]]],null,[["default","else"],[{"statements":[[2," "],[10,"li"],[14,0,"partitions"],[12],[2,"\\n "],[8,"disclosure-menu",[[24,"aria-label","Admin Partition"]],[["@items"],[[30,[36,9],[[30,[36,5],null,[["Name","href"],["Manage Partitions",[30,[36,6],["dc.partitions",[32,7,["Name"]]],null]]]],[30,[36,8],["DeletedAt",[32,8]],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Action"]],[[4,[38,7],["click",[32,3,["toggle"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,4],[[32,2],"Manage Partition",[32,1]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,3,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,10],["/*/*/${dc}/partitions",[30,[36,5],null,[["dc"],[[32,7,["Name"]]]]]],null],[30,[36,12],[[30,[36,11],[[32,9]],null]],null]]],null],[2,"\\n "],[8,[32,4,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n"],[6,[37,14],[[30,[36,13],[[30,[36,13],[[32,5,["items"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,5,["Item"]],[[16,"aria-current",[30,[36,4],[[30,[36,3],[[30,[36,2],[[32,2],[32,6,["href"]]],null],[30,[36,2],[[30,[36,1],[[32,2]],null],[30,[36,0],[[32,1],[32,6,["Name"]]],null]],null]],null],"true"],null]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Action"]],[[4,[38,7],["click",[32,3,["close"]]],null]],[["@href"],[[30,[36,4],[[32,6,["href"]],[32,6,["href"]],[30,[36,4],[[32,2],[30,[36,6],["dc.services.index"],[["params"],[[30,[36,5],null,[["partition","nspace","dc"],[[32,6,["Name"]],[29],[32,7,["Name"]]]]]]]],[30,[36,6],["."],[["params"],[[30,[36,5],null,[["partition","nspace"],[[32,6,["Name"]],[29]]]]]]]],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,6,["Name"]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[6]}]]],[2," "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"li"],[14,0,"partition"],[14,"aria-label","Admin Partition"],[12],[2,"\\n "],[1,"default"],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["eq","not","and","or","if","hash","href-to","on","reject-by","append","uri","optional","fn","-track-array","each","can","is-href","let"]}',meta:{moduleName:"consul-ui/components/consul/partition/selector/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/policy/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"UDg6I3Xb",block:'{"symbols":["item","Actions","Action","Confirmation","Confirm","@ondelete","@items"],"statements":[[8,"list-collection",[[24,0,"consul-policy-list"]],[["@items"],[[32,7]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,1],[[32,1]],null],"policy-management"],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"policy-management"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Type"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Global Management Policy\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"a"],[15,6,[30,[36,4],["dc.acls.policies.edit",[32,1,["ID"]]],null]],[15,0,[30,[36,3],[[30,[36,2],[[30,[36,1],[[32,1]],null],"policy-management"],null],"is-management"],null]],[12],[1,[32,1,["Name"]]],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[14,0,"datacenter"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"Datacenters"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,6],[", ",[30,[36,5],[[32,1]],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[14,0,"description"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Description"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Description"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,2],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3],[],[["@href"],[[30,[36,4],["dc.acls.policies.edit",[32,1,["ID"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,7],["write policy"],[["item"],[[32,1]]]]],null,[["default","else"],[{"statements":[[2," Edit\\n"]],"parameters":[]},{"statements":[[2," View\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,3],[[30,[36,7],["delete policy"],[["item"],[[32,1]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,3],[[24,0,"dangerous"]],[["@onclick"],[[30,[36,0],[[32,0],[32,6],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this policy?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5],[],[[],[]],[["default"],[{"statements":[[2,"Delete"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["action","policy/typeof","eq","if","href-to","policy/datacenters","join","can"]}',meta:{moduleName:"consul-ui/components/consul/policy/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/policy/notifications/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"rB0yLURE",block:'{"symbols":["error","@status","@type","@error"],"statements":[[6,[37,1],[[30,[36,2],[[32,3],"create"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your policy has been added.\\n"]],"parameters":[]},{"statements":[[2," There was an error adding your policy.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"update"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your policy has been saved.\\n"]],"parameters":[]},{"statements":[[2," There was an error saving your policy.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"delete"],null]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your policy was deleted.\\n"]],"parameters":[]},{"statements":[[2," There was an error deleting your policy.\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[6,[37,3],[[32,4,["errors","firstObject"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["detail"]]],null,[["default"],[{"statements":[[2," "],[10,"br"],[12],[13],[1,[30,[36,0],["(",[30,[36,1],[[32,1,["status"]],[30,[36,0],[[32,1,["status"]],": "],null]],null],[32,1,["detail"]],")"],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["concat","if","eq","let"]}',meta:{moduleName:"consul-ui/components/consul/policy/notifications/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/policy/search-bar/index",["exports","@glimmer/component"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"v58RpJPi",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","state","components","Optgroup","Option","dc","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@partition","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-policy-search-bar"],[17,30]],[["@filter","@namedBlocksInfo"],[[32,26],[30,[36,14],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.policy.search-bar.",[32,22,["status","key"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,22,["status","key"]]],null],[30,[36,10],["common.consul.",[32,22,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.policy.search-bar.",[32,22,["status","key"]],".options.",[32,22,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,22,["status","value"]]],null],[30,[36,10],["common.consul.",[32,22,["status","value"]]],null],[30,[36,10],["common.brand.",[32,22,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,22,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,23]," ",[32,24]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,23]],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,8],[[30,[36,1],[[32,22,["status","key"]],"datacenter"],null],[32,22,["status","value"]],[32,24]],null]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[23,24]}]]],[2,"\\n "]],"parameters":[22]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,17,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,28]],null],[32,29],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,17,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,26,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,18,["Optgroup"]],[32,18,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,26,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,20],[],[["@value","@selected"],[[32,21],[30,[36,9],[[32,21],[32,26,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,17],[[32,21]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[21]}]]]],"parameters":[19,20]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[18]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[17]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-datacenter"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,26,["datacenter","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.consul.datacenter"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,13,["Optgroup"]],[32,13,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[35,13]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,15],[],[["@value","@selected"],[[32,16,["Name"]],[30,[36,9],[[32,16,["Name"]],[32,26,["datacenter","value"]]],null]]],[["default"],[{"statements":[[1,[32,16,["Name"]]]],"parameters":[]}]]],[2,"\\n"]],"parameters":[16]}]]],[2," "],[8,"data-source",[],[["@src","@loading","@onchange"],[[30,[36,15],["/${partition}/*/*/datacenters",[30,[36,14],null,[["partition"],[[32,27]]]]],null],"lazy",[30,[36,3],[[32,0],[30,[36,16],[[32,0,["dcs"]]],null]],[["value"],["data"]]]]],null],[2,"\\n"]],"parameters":[14,15]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]],[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-kind"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,26,["kind","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.policy.search-bar.kind.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["global-management","standard"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[16,0,[31,["value-",[32,12]]]]],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,26,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["components.consul.policy.search-bar.kind.options.",[32,12]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,12]],null]],null]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,25,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Name:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Name:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,25,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.ui.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:asc",[30,[36,1],["Name:asc",[32,25,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:desc",[30,[36,1],["Name:desc",[32,25,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","dcs","hash","uri","mut","lowercase"]}',meta:{moduleName:"consul-ui/components/consul/policy/search-bar/index.hbs"}}) +class r extends t.default{}e.default=r,Ember._setComponentTemplate(n,r)})),define("consul-ui/components/consul/role/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"qgd++x7w",block:'{"symbols":["item","Actions","Action","Confirmation","Confirm","@ondelete","&attrs","@items"],"statements":[[8,"list-collection",[[24,0,"consul-role-list"],[17,7]],[["@items"],[[32,8]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"a"],[15,6,[30,[36,1],["dc.acls.roles.edit",[32,1,["ID"]]],null]],[12],[1,[32,1,["Name"]]],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/token/ruleset/list",[],[["@item"],[[32,1]]],null],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Description"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Description"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,2],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3],[],[["@href"],[[30,[36,1],["dc.acls.roles.edit",[32,1,["ID"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,2],["write role"],[["item"],[[32,1]]]]],null,[["default","else"],[{"statements":[[2," Edit\\n"]],"parameters":[]},{"statements":[[2," View\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,3],[[30,[36,2],["delete role"],[["item"],[[32,1]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,3],[[24,0,"dangerous"]],[["@onclick"],[[30,[36,0],[[32,0],[32,6],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this role?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5],[],[[],[]],[["default"],[{"statements":[[2,"Delete"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["action","href-to","can","if"]}',meta:{moduleName:"consul-ui/components/consul/role/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/role/notifications/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"pmI3em2e",block:'{"symbols":["error","@status","@type","@error"],"statements":[[6,[37,1],[[30,[36,2],[[32,3],"create"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your role has been added.\\n"]],"parameters":[]},{"statements":[[2," There was an error adding your role.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"update"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your role has been saved.\\n"]],"parameters":[]},{"statements":[[2," There was an error saving your role.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"delete"],null]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your role was deleted.\\n"]],"parameters":[]},{"statements":[[2," There was an error deleting your role.\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[6,[37,3],[[32,4,["errors","firstObject"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["detail"]]],null,[["default"],[{"statements":[[2," "],[10,"br"],[12],[13],[1,[30,[36,0],["(",[30,[36,1],[[32,1,["status"]],[30,[36,0],[[32,1,["status"]],": "],null]],null],[32,1,["detail"]],")"],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["concat","if","eq","let"]}',meta:{moduleName:"consul-ui/components/consul/role/notifications/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/role/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"wPLJBG1T",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-role-search-bar"],[17,20]],[["@filter","@namedBlocksInfo"],[[32,17],[30,[36,14],null,[["status","search","sort"],[1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,11],["components.consul.role.search-bar.",[32,13,["status","key"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,11],["common.search.",[32,13,["status","key"]]],null],[30,[36,11],["common.consul.",[32,13,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,11],["components.consul.role.search-bar.",[32,13,["status","key"]],".options.",[32,13,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,11],["common.search.",[32,13,["status","value"]]],null],[30,[36,11],["common.consul.",[32,13,["status","value"]]],null],[30,[36,11],["common.brand.",[32,13,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,13,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,11],[[32,14]," ",[32,15]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,14]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,15]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[14,15]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,18]],null],[32,19],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,17,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,17,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,17,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,11],["common.consul.",[30,[36,10],[[32,12]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,16,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Name:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Name:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null],[30,[36,4],["CreateIndex:desc",[30,[36,0],["common.sort.age.desc"],null]],null],[30,[36,4],["CreateIndex:asc",[30,[36,0],["common.sort.age.asc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,16,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.ui.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:asc",[30,[36,1],["Name:asc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:desc",[30,[36,1],["Name:desc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.ui.creation"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["CreateIndex:desc",[30,[36,1],["CreateIndex:desc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.age.desc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["CreateIndex:asc",[30,[36,1],["CreateIndex:asc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.age.asc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","lowercase","concat","-track-array","each","hash"]}',meta:{moduleName:"consul-ui/components/consul/role/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/server/card/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Ec5kcuWa",block:'{"symbols":["@item","&attrs"],"statements":[[11,"div"],[16,0,[30,[36,6],["consul-server-card",[30,[36,0],["voting-status-leader",[30,[36,3],[[32,1,["Status"]],"leader"],null]],null],[30,[36,0],["voting-status-voter",[30,[36,5],[[30,[36,4],[[32,1,["ReadReplica"]]],null],[30,[36,3],[[32,1,["Status"]],"voter"],null]],null]],null],[30,[36,0],["voting-status-non-voter",[30,[36,2],[[32,1,["ReadReplica"]],[30,[36,1],[[32,1,["Status"]],[30,[36,0],["non-voter","staging"],null]],null]],null]],null]],null]],[17,2],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n\\n "],[11,"dt"],[24,0,"name"],[4,[38,7],["Leader"],null],[12],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2,"\\n "],[13],[2,"\\n\\n "],[10,"dt"],[15,0,[30,[36,6],["health-status",[30,[36,0],["healthy",[32,1,["Healthy"]]],null]],null]],[12],[2,"\\n Status\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,8],[[30,[36,1],[[32,1,["Status"]],[30,[36,0],["leader","voter"],null]],null],"Active voter","Backup voter"],null]],[2,"\\n "],[13],[2,"\\n\\n "],[13],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["array","contains","or","eq","not","and","class-map","tooltip","if"]}',meta:{moduleName:"consul-ui/components/consul/server/card/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/server/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"sOHjodBR",block:'{"symbols":["item","&attrs","@items"],"statements":[[11,"div"],[16,0,[30,[36,1],["consul-server-list"],null]],[17,2],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,3]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,0],["dc.nodes.show",[32,1,["Name"]]],null]],[12],[2,"\\n "],[8,"consul/server/card",[],[["@item"],[[32,1]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["href-to","class-map","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/server/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/service-identity/template/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"spWJOarV",block:'{"symbols":["@name","@nspace","@partition"],"statements":[[6,[37,2],[[30,[36,1],["use partitions"],null]],null,[["default","else"],[{"statements":[[2,"partition \\""],[1,[30,[36,0],[[32,3],"default"],null]],[2,"\\" {\\n"],[6,[37,2],[[30,[36,1],["use nspaces"],null]],null,[["default","else"],[{"statements":[[2," namespace \\""],[1,[30,[36,0],[[32,2],"default"],null]],[2,"\\" {\\n service \\""],[1,[32,1]],[2,"\\" {\\n\\t policy = \\"write\\"\\n }\\n service \\""],[1,[32,1]],[2,"-sidecar-proxy\\" {\\n\\t policy = \\"write\\"\\n }\\n service_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n node_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n }\\n"]],"parameters":[]},{"statements":[[2," service \\""],[1,[32,1]],[2,"\\" {\\n\\t policy = \\"write\\"\\n }\\n service \\""],[1,[32,1]],[2,"-sidecar-proxy\\" {\\n\\t policy = \\"write\\"\\n }\\n service_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n node_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n"]],"parameters":[]}]]],[2,"}\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],["use nspaces"],null]],null,[["default","else"],[{"statements":[[2,"namespace \\""],[1,[30,[36,0],[[32,2],"default"],null]],[2,"\\" {\\n service \\""],[1,[32,1]],[2,"\\" {\\n\\t policy = \\"write\\"\\n }\\n service \\""],[1,[32,1]],[2,"-sidecar-proxy\\" {\\n\\t policy = \\"write\\"\\n }\\n service_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n node_prefix \\"\\" {\\n\\t policy = \\"read\\"\\n }\\n}\\n"]],"parameters":[]},{"statements":[[2,"service \\""],[1,[32,1]],[2,"\\" {\\n\\tpolicy = \\"write\\"\\n}\\nservice \\""],[1,[32,1]],[2,"-sidecar-proxy\\" {\\n\\tpolicy = \\"write\\"\\n}\\nservice_prefix \\"\\" {\\n\\tpolicy = \\"read\\"\\n}\\nnode_prefix \\"\\" {\\n\\tpolicy = \\"read\\"\\n}\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["or","can","if"]}',meta:{moduleName:"consul-ui/components/consul/service-identity/template/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/service-instance/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"AAaMSxui",block:'{"symbols":["proxies","item","index","proxy","checks","@node","@routeName","&attrs","@items","@proxies"],"statements":[[6,[37,10],[[30,[36,13],[[32,10],"Service.Proxy.DestinationServiceID"],null]],null,[["default"],[{"statements":[[8,"list-collection",[[24,0,"consul-service-instance-list"],[17,8]],[["@items"],[[32,9]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,11],[[32,7],"dc.services.show"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[30,[36,3],[[32,7],[32,2,["Service","Service"]]],null]],[12],[2,"\\n "],[1,[32,2,["Service","ID"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[15,6,[30,[36,3],[[32,7],[32,2,["Service","Service"]],[32,2,["Node","Node"]],[30,[36,8],[[32,2,["Service","ID"]],[32,2,["Service","Service"]]],null]],null]],[12],[2,"\\n "],[1,[32,2,["Service","ID"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,10],[[30,[36,12],[[32,1],[32,2,["Service","ID"]]],null]],null,[["default"],[{"statements":[[6,[37,10],[[30,[36,9],[[30,[36,7],[[32,2,["Checks"]],[30,[36,8],[[32,4,["Checks"]],[30,[36,7],null,null]],null]],null]],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[32,6]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/external-source",[],[["@item"],[[32,2,["Service"]]]],null],[2,"\\n "],[8,"consul/instance-checks",[],[["@type","@items"],["service",[30,[36,4],["ServiceID","",[32,5]],null]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"consul/external-source",[],[["@item"],[[32,2,["Service"]]]],null],[2,"\\n\\n "],[8,"consul/instance-checks",[],[["@type","@items"],["service",[30,[36,4],["ServiceID","",[32,5]],null]]],null],[2,"\\n "],[8,"consul/instance-checks",[],[["@type","@items"],["node",[30,[36,5],["ServiceID","",[32,5]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[32,4]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"mesh"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n This service uses a proxy for the Consul service mesh\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n in service mesh with proxy\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[30,[36,6],[[32,6]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"node"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Node\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,3],["dc.nodes.show",[32,2,["Node","Node"]]],null]],[12],[1,[32,2,["Node","Node"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[32,2,["Service","Port"]]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[14,0,"address"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n IP Address and Port\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,1],[[30,[36,2],[[32,2,["Service","Address"]],""],null]],null,[["default","else"],[{"statements":[[2," "],[1,[32,2,["Service","Address"]]],[2,":"],[1,[32,2,["Service","Port"]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,2,["Node","Address"]]],[2,":"],[1,[32,2,["Service","Port"]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[32,2,["Service","SocketPath"]]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"socket"],[12],[2,"\\n "],[11,"dt"],[4,[38,0],null,null],[12],[2,"\\n Socket Path\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,2,["Service","SocketPath"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[8,"tag-list",[],[["@item"],[[32,2,["Service"]]]],null],[2,"\\n\\n"]],"parameters":[5]}]]]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[2,3]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["tooltip","if","not-eq","href-to","filter-by","reject-by","not","array","or","merge-checks","let","eq","get","to-hash"]}',meta:{moduleName:"consul-ui/components/consul/service-instance/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/service-instance/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"kLJwzL+X",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","source","components","Optgroup","Option","state","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@sources","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-service-instance-search-bar"],[17,30]],[["@filter","@namedBlocksInfo"],[[32,26],[30,[36,15],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.service-instance.search-bar.",[32,22,["status","key"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,22,["status","key"]]],null],[30,[36,10],["common.consul.",[32,22,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.service-instance.search-bar.",[32,22,["status","key"]],".options.",[32,22,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,22,["status","value"]]],null],[30,[36,10],["common.consul.",[32,22,["status","value"]]],null],[30,[36,10],["common.brand.",[32,22,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,22,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,23]," ",[32,24]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,23]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,24]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[23,24]}]]],[2,"\\n "]],"parameters":[22]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,17,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,28]],null],[32,29],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[32,26,["searchproperty"]]],null,[["default"],[{"statements":[[2," "],[8,[32,17,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,26,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,18,["Optgroup"]],[32,18,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,26,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,20],[],[["@value","@selected"],[[32,21],[30,[36,9],[[32,21],[32,26,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,14],[[32,21]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[21]}]]]],"parameters":[19,20]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[18]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[17]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-status"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,26,["status","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.consul.status"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,13,["Optgroup"]],[32,13,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["passing","warning","critical","empty"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,15],[[16,0,[31,["value-",[32,16]]]]],[["@value","@selected"],[[32,16],[30,[36,9],[[32,16],[32,26,["status","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[32,16]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,16]],null]],null]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[16]}]]]],"parameters":[14,15]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]],[2,"\\n"],[6,[37,8],[[30,[36,13],[[32,27,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,[32,8,["Select"]],[[24,0,"type-source"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,26,["source","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.source"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,27]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[16,0,[32,12]]],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,26,["source","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.brand.",[32,12]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,25,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Name:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Name:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null],[30,[36,4],["Status:asc",[30,[36,0],["common.sort.status.asc"],null]],null],[30,[36,4],["Status:desc",[30,[36,0],["common.sort.status.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,25,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.status"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:asc",[30,[36,1],["Status:asc",[32,25,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:desc",[30,[36,1],["Status:desc",[32,25,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["components.consul.service-instance.search-bar.sort.name.name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:asc",[30,[36,1],["Name:asc",[32,25,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:desc",[30,[36,1],["Name:desc",[32,25,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","gt","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/service-instance/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/service/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"zit0hWHY",block:'{"symbols":["item","index","@partition","&attrs","@items","@nspace"],"statements":[[8,"list-collection",[[24,0,"consul-service-list"],[17,4]],[["@items","@linkable"],[[32,5],"linkable service"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[15,0,[32,1,["MeshStatus"]]],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Health\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"tooltip",[],[["@position"],["top-start"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,0],[[30,[36,4],["critical",[32,1,["MeshStatus"]]],null]],null,[["default","else"],[{"statements":[[2," At least one health check on one instance is failing.\\n"]],"parameters":[]},{"statements":[[6,[37,0],[[30,[36,4],["warning",[32,1,["MeshStatus"]]],null]],null,[["default","else"],[{"statements":[[2," At least one health check on one instance has a warning.\\n"]],"parameters":[]},{"statements":[[6,[37,0],[[30,[36,4],["passing",[32,1,["MeshStatus"]]],null]],null,[["default","else"],[{"statements":[[2," All health checks are passing.\\n"]],"parameters":[]},{"statements":[[2," There are no health checks.\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,0],[[30,[36,8],[[32,1,["InstanceCount"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[30,[36,7],["dc.services.show.index",[32,1,["Name"]]],[["params"],[[30,[36,0],[[30,[36,6],[[32,1,["Partition"]],[32,3]],null],[30,[36,5],null,[["partition","nspace"],[[32,1,["Partition"]],[32,1,["Namespace"]]]]],[30,[36,5],null,null]],null]]]]],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"p"],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/kind",[],[["@item"],[[32,1]]],null],[2,"\\n "],[8,"consul/external-source",[],[["@item"],[[32,1]]],null],[2,"\\n"],[6,[37,0],[[30,[36,1],[[30,[36,6],[[32,1,["InstanceCount"]],0],null],[30,[36,1],[[30,[36,6],[[32,1,["Kind"]],"terminating-gateway"],null],[30,[36,6],[[32,1,["Kind"]],"ingress-gateway"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,2],[[32,1,["InstanceCount"]]],null]],[2," "],[1,[30,[36,3],[[32,1,["InstanceCount"]],"instance"],[["without-count"],[true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,0],[[30,[36,4],[[32,1,["Kind"]],"terminating-gateway"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,2],[[32,1,["GatewayConfig","AssociatedServiceCount"]]],null]],[2," "],[1,[30,[36,3],[[32,1,["GatewayConfig","AssociatedServiceCount"]],"linked service"],[["without-count"],[true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,0],[[30,[36,4],[[32,1,["Kind"]],"ingress-gateway"],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,2],[[32,1,["GatewayConfig","AssociatedServiceCount"]]],null]],[2," "],[1,[30,[36,3],[[32,1,["GatewayConfig","AssociatedServiceCount"]],"upstream"],[["without-count"],[true]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[6,[37,0],[[30,[36,9],[[32,1,["ConnectedWithGateway"]],[32,1,["ConnectedWithProxy"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"mesh"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n This service uses a proxy for the Consul service mesh\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,0],[[30,[36,1],[[32,1,["ConnectedWithGateway"]],[32,1,["ConnectedWithProxy"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"dd"],[12],[2,"\\n in service mesh with proxy and gateway\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,0],[[32,1,["ConnectedWithProxy"]]],null,[["default","else"],[{"statements":[[2," "],[10,"dd"],[12],[2,"\\n in service mesh with proxy\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,0],[[32,1,["ConnectedWithGateway"]]],null,[["default"],[{"statements":[[2," "],[10,"dd"],[12],[2,"\\n in service mesh with gateway\\n "],[13],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"consul/bucket/list",[],[["@item","@nspace","@partition"],[[32,1],[32,6],[32,3]]],null],[2,"\\n "],[8,"tag-list",[],[["@item"],[[32,1]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["if","and","format-number","pluralize","eq","hash","not-eq","href-to","gt","or"]}',meta:{moduleName:"consul-ui/components/consul/service/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/service/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"tDwWS/Y3",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","source","nonDefaultPartitions","partition","components","Optgroup","Option","state","kind","components","Optgroup","Option","state","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@sources","@partitions","@partition","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-service-search-bar"],[17,39]],[["@filter","@namedBlocksInfo"],[[32,33],[30,[36,16],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.service.search-bar.",[32,29,["status","key"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,29,["status","key"]]],null],[30,[36,10],["common.consul.",[32,29,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.service.search-bar.",[32,29,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,29,["status","value"]]],null],[30,[36,10],["common.consul.",[32,29,["status","value"]]],null],[30,[36,10],["common.brand.",[32,29,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,29,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,30]," ",[32,31]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,30]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,31]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[30,31]}]]],[2,"\\n "]],"parameters":[29]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,24,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,37]],null],[32,38],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,24,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,33,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,25,["Optgroup"]],[32,25,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,33,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,27],[],[["@value","@selected"],[[32,28],[30,[36,9],[[32,28],[32,33,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,15],[[32,28]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[28]}]]]],"parameters":[26,27]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[25]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[24]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-status"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,33,["status","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.consul.status"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,20,["Optgroup"]],[32,20,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["passing","warning","critical","empty"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,22],[[16,0,[31,["value-",[32,23]]]]],[["@value","@selected"],[[32,23],[30,[36,9],[[32,23],[32,33,["status","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[32,23]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,23]],null]],null]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[23]}]]]],"parameters":[21,22]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[20]}]]],[2,"\\n "],[8,[32,8,["Select"]],[],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,33,["kind","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.service.search-bar.kind"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,15,["Optgroup"]],[32,15,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,17],[],[["@value","@selected"],["service",[30,[36,9],["service",[32,33,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["common.consul.service"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,16],[],[["@label"],[[30,[36,0],["common.consul.gateway"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["ingress-gateway","terminating-gateway","mesh-gateway"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,17],[],[["@value","@selected"],[[32,19],[30,[36,9],[[32,19],[32,33,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[32,19]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[19]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,[32,16],[],[["@label"],[[30,[36,0],["common.consul.mesh"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["in-mesh","not-in-mesh"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,17],[],[["@value","@selected"],[[32,18],[30,[36,9],[[32,18],[32,33,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.search.",[32,18]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[18]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[16,17]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[15]}]]],[2,"\\n"],[6,[37,8],[[30,[36,13],[[32,34,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,[32,8,["Select"]],[[24,0,"type-source"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,33,["source","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.source"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,14],["Partition",[32,36],[32,35]],null]],null,[["default"],[{"statements":[[6,[37,8],[[30,[36,13],[[32,13,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,[32,10],[],[["@label"],[[30,[36,0],["common.brand.consul"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,35]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[24,0,"partition"]],[["@value","@selected"],[[32,14],[30,[36,9],[[32,14],[32,33,["source","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,14]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[14]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[13]}]]],[2,"\\n"],[6,[37,8],[[30,[36,13],[[32,34,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,[32,10],[],[["@label"],[[30,[36,0],["common.search.integrations"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,34]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[16,0,[32,12]]],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,33,["source","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.brand.",[32,12]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,32,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Name:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Name:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null],[30,[36,4],["Status:asc",[30,[36,0],["common.sort.status.asc"],null]],null],[30,[36,4],["Status:desc",[30,[36,0],["common.sort.status.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,32,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.status"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:asc",[30,[36,1],["Status:asc",[32,32,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:desc",[30,[36,1],["Status:desc",[32,32,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.service-name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:asc",[30,[36,1],["Name:asc",[32,32,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:desc",[30,[36,1],["Name:desc",[32,32,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","gt","reject-by","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/service/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/source/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"GdArOCfb",block:'{"symbols":["@source"],"statements":[[10,"dl"],[14,0,"tooltip-panel"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[10,"span"],[14,0,"consul-source"],[12],[2,"\\n "],[1,[32,1]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"menu-panel",[],[["@position"],["left"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["components.consul.source.header"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,"role","separator"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.source.menu-title"],null]],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,"role","none"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[14,"tabindex","-1"],[14,"role","menuitem"],[15,6,[31,[[30,[36,1],["CONSUL_DOCS_URL"],null],"/connect/l7-traffic"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.source.links.documentation"],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["t","env"]}',meta:{moduleName:"consul-ui/components/consul/source/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/token/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"FbsUqUSU",block:'{"symbols":["item","Actions","Action","Confirmation","Confirm","Confirmation","Confirm","Confirmation","Confirm","@ondelete","@onuse","@onlogout","@onclone","@items","@token"],"statements":[[8,"list-collection",[[24,0,"consul-token-list"]],[["@items"],[[32,14]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,1,["AccessorID"]],[32,15,["AccessorID"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,"rel","me"],[12],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"tooltip",[],[["@position"],["top-start"]],[["default"],[{"statements":[[2,"\\n Your token\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"a"],[15,6,[30,[36,4],["dc.acls.tokens.edit",[32,1,["AccessorID"]]],null]],[12],[1,[30,[36,5],[[32,1,["AccessorID"]],-8],null]],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Scope"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,3],[[32,1,["Local"]],"local","global"],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"consul/token/ruleset/list",[],[["@item"],[[32,1]]],null],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Description"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,6],[[32,1,["Description"]],[32,1,["Name"]]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[32,1,["hasSecretID"]]],null,[["default"],[{"statements":[[2," "],[8,"copy-button",[],[["@value","@name"],[[32,1,["SecretID"]],[30,[36,1],["components.consul.token.secretID"],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,1],["components.consul.token.secretID"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,[32,2],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,3],[],[["@href"],[[30,[36,4],["dc.acls.tokens.edit",[32,1,["AccessorID"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,7],["write token"],[["item"],[[32,1]]]]],null,[["default","else"],[{"statements":[[2," Edit\\n"]],"parameters":[]},{"statements":[[2," View\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,3],[[30,[36,7],["duplicate token"],[["item"],[[32,1]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,3],[],[["@onclick"],[[30,[36,0],[[32,0],[32,13],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Duplicate\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,1,["AccessorID"]],[35,8,["AccessorID"]]],null]],null,[["default","else"],[{"statements":[[2," "],[8,[32,3],[[24,0,"dangerous"]],[["@onclick"],[[30,[36,0],[[32,0],[32,12],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Logout\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm logout\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to stop using this ACL token? This will log you out.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,9],[],[[],[]],[["default"],[{"statements":[[2,"Logout"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,[32,3],[],[["@onclick"],[[30,[36,0],[[32,0],[32,11],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Use\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm use\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to use this ACL token?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7],[],[[],[]],[["default"],[{"statements":[[2,"Use"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n\\n"],[6,[37,3],[[30,[36,7],["delete token"],[["item","token"],[[32,1],[32,15]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,3],[[24,0,"dangerous"]],[["@onclick"],[[30,[36,0],[[32,0],[32,10],[32,1]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirmation"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4],[[24,0,"warning"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n Confirm delete\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to delete this token?\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["confirm"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5],[],[[],[]],[["default"],[{"statements":[[2,"Delete"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["action","t","eq","if","href-to","substr","or","can","token"]}',meta:{moduleName:"consul-ui/components/consul/token/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/token/notifications/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"8YjZ0J1V",block:'{"symbols":["error","@status","@type","@item","@error"],"statements":[[6,[37,1],[[30,[36,2],[[32,3],"create"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," The token has been added.\\n"]],"parameters":[]},{"statements":[[2," There was an error adding the token.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"update"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," The token has been saved.\\n"]],"parameters":[]},{"statements":[[2," There was an error saving the token.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"delete"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," The token was deleted.\\n"]],"parameters":[]},{"statements":[[2," There was an error deleting the token.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"clone"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," The token has been cloned as "],[1,[30,[36,3],[[32,4,["AccessorID"]],8,false],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," There was an error cloning the token.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"use"],null]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," You are now using the new ACL token\\n"]],"parameters":[]},{"statements":[[2," There was an error using that ACL token.\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[6,[37,4],[[32,5,["errors","firstObject"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["detail"]]],null,[["default"],[{"statements":[[2," "],[10,"br"],[12],[13],[1,[30,[36,0],["(",[30,[36,1],[[32,1,["status"]],[30,[36,0],[[32,1,["status"]],": "],null]],null],[32,1,["detail"]],")"],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["concat","if","eq","truncate","let"]}',meta:{moduleName:"consul-ui/components/consul/token/notifications/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/token/ruleset/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"BIcaaAvq",block:'{"symbols":["policies","policies","item","identities","item","management","item"],"statements":[[6,[37,10],[[30,[36,12],[[30,[36,7],[[35,6,["Policies"]],[35,6,["ACLs","PolicyDefaults"]],[30,[36,5],null,null]],null]],null]],null,[["default"],[{"statements":[[6,[37,10],[[30,[36,8],[[32,1],"management"],null]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,6,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Management\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,2],[[30,[36,1],[[30,[36,1],[[30,[36,8],[[32,1],"management"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[15,0,[30,[36,0],[[32,7]],null]],[12],[1,[32,7,["Name"]]],[13],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[6]}]]],[6,[37,10],[[30,[36,8],[[32,1],"identities"],null]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,4,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Identities"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,2],[[30,[36,1],[[30,[36,1],[[32,4]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[15,0,[30,[36,0],[[32,5]],null]],[12],[1,[32,5,["Name"]]],[13],[2,"\\n"]],"parameters":[5]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[4]}]]],[6,[37,4],[[30,[36,11],[[35,6]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Rules"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n Legacy tokens have embedded rules.\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,10],[[30,[36,9],[[30,[36,8],[[32,1],"policies"],null],[30,[36,7],[[35,6,["Roles"]],[35,6,["ACLs","RoleDefaults"]],[30,[36,5],null,null]],null]],null]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,2,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Rules"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,2],[[30,[36,1],[[30,[36,1],[[32,2]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[15,0,[30,[36,0],[[32,3]],null]],[12],[1,[32,3,["Name"]]],[13],[2,"\\n"]],"parameters":[3]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[2]}]]]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["policy/typeof","-track-array","each","gt","if","array","item","or","get","append","let","token/is-legacy","policy/group"]}',meta:{moduleName:"consul-ui/components/consul/token/ruleset/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/consul/token/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"MmGQHD2n",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","state","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-token-search-bar"],[17,25]],[["@filter","@namedBlocksInfo"],[[32,22],[30,[36,14],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.token.search-bar.",[32,18,["status","key"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,18,["status","key"]]],null],[30,[36,10],["common.consul.",[32,18,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.token.search-bar.",[32,18,["status","key"]],".options.",[32,18,["status","value"]]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,18,["status","value"]]],null],[30,[36,10],["common.consul.",[32,18,["status","value"]]],null],[30,[36,10],["common.brand.",[32,18,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,18,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,19]," ",[32,20]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,19]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,20]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[19,20]}]]],[2,"\\n "]],"parameters":[18]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,23]],null],[32,24],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,22,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,14,["Optgroup"]],[32,14,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,22,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,16],[],[["@value","@selected"],[[32,17],[30,[36,9],[[32,17],[32,22,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,13],[[32,17]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[17]}]]]],"parameters":[15,16]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-status"]],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,22,["kind","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.token.search-bar.kind.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["global-management","global","local"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[[16,0,[31,["value-",[32,12]]]]],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,22,["kind","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["components.consul.token.search-bar.kind.options.",[32,12]],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,12]],null]],null]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,21,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["CreateTime:desc",[30,[36,0],["common.sort.age.desc"],null]],null],[30,[36,4],["CreateTime:asc",[30,[36,0],["common.sort.age.asc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,21,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.ui.creation"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["CreateTime:desc",[30,[36,1],["CreateTime:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.age.desc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["CreateTime:asc",[30,[36,1],["CreateTime:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.age.asc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/token/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/token/selector/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l +function s(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const i=Ember.HTMLBars.template({id:"lqyx1nTC",block:'{"symbols":["__arg0","__arg1","authDialog","disclosure","panel","menu","modal","authForm","authDialog","modal","authForm","@dc","@nspace","@partition","&default"],"statements":[[6,[37,4],[[30,[36,7],["use acls"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n\\n "],[8,"auth-dialog",[],[["@src","@sink","@onchange","@namedBlocksInfo"],[[30,[36,8],["settings://consul:token"],null],[30,[36,8],["settings://consul:token"],null],[32,0,["reauthorize"]],[30,[36,0],null,[["unauthorized","authorized"],[1,1]]]]],[["default"],[{"statements":[[6,[37,4],[[30,[36,6],[[32,1],"unauthorized"],null]],null,[["default","else"],[{"statements":[[6,[37,5],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,"portal",[],[["@target"],["app-before-skip-links"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[4,[38,2],["click",[30,[36,3],[[32,0,["modal","open"]]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Login\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"action",[[4,[38,2],["click",[30,[36,3],[[32,0,["modal","open"]]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Log in\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"modal-dialog",[],[["@name","@onclose","@onopen","@aria"],["login-toggle",[32,0,["close"]],[32,0,["open"]],[30,[36,0],null,[["label"],["Log in to Consul"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"modal",[32,10]]],null],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n Log in to Consul\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[8,"auth-form",[],[["@dc","@partition","@nspace","@onsubmit"],[[32,12,["Name"]],[32,14],[32,13],[30,[36,1],[[32,0],[32,9,["login"]]],[["value"],["data"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"authForm",[32,11]]],null],[2,"\\n"],[6,[37,4],[[30,[36,7],["use SSO"],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11,["Method"]],[],[["@matches"],["sso"]],[["default"],[{"statements":[[2,"\\n "],[8,"oidc-select",[],[["@dc","@nspace","@disabled","@onchange","@onerror"],[[32,12,["Name"]],[32,13],[32,11,["disabled"]],[32,11,["submit"]],[32,11,["error"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[11]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[4,[38,2],["click",[32,10,["close"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Continue without logging in\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[10]}]]],[2,"\\n "]],"parameters":[9]}]]]],"parameters":[]},{"statements":[[6,[37,4],[[30,[36,6],[[32,1],"authorized"],null]],null,[["default"],[{"statements":[[6,[37,5],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,"modal-dialog",[],[["@name","@onclose","@onopen","@aria"],["login-toggle",[32,0,["close"]],[32,0,["open"]],[30,[36,0],null,[["label"],["Log in with a different token"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"modal",[32,7]]],null],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n Log in with a different token\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[8,"auth-form",[],[["@dc","@nspace","@partition","@onsubmit"],[[32,12,["Name"]],[32,13],[32,14],[30,[36,1],[[32,0],[32,3,["login"]]],[["value"],["data"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"authForm",[32,8]]],null],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[4,[38,2],["click",[32,7,["close"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Continue without logging in\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n "],[8,"portal",[],[["@target"],["app-before-skip-links"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[4,[38,2],["click",[30,[36,3],[[32,3,["logout"]]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Logout\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"disclosure-menu",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4,["Action"]],[[4,[38,2],["click",[32,4,["toggle"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Logout\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,4,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[32,3,["token","AccessorID"]]],null,[["default"],[{"statements":[[2," "],[8,"auth-profile",[],[["@item"],[[32,3,["token"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,[32,5,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Separator"]],[],[[],[]],null],[2,"\\n "],[8,[32,6,["Item"]],[[24,0,"dangerous"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Action"]],[[4,[38,2],["click",[30,[36,3],[[32,3,["logout"]]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Logout\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n\\n "],[13],[2,"\\n"],[18,15,[[30,[36,0],null,[["open","close"],[[32,0,["modal","open"]],[32,0,["model","close"]]]]]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["hash","action","on","optional","if","let","-is-named-block-invocation","can","uri"]}',meta:{moduleName:"consul-ui/components/consul/token/selector/index.hbs"}}) +let o=(n=Ember._action,r=Ember._action,a=Ember._action,s((l=class extends t.default{open(){this.authForm.focus()}close(){this.authForm.reset()}reauthorize(e){this.modal.close(),this.args.onchange(e)}}).prototype,"open",[n],Object.getOwnPropertyDescriptor(l.prototype,"open"),l.prototype),s(l.prototype,"close",[r],Object.getOwnPropertyDescriptor(l.prototype,"close"),l.prototype),s(l.prototype,"reauthorize",[a],Object.getOwnPropertyDescriptor(l.prototype,"reauthorize"),l.prototype),l) +e.default=o,Ember._setComponentTemplate(i,o)})),define("consul-ui/components/consul/tomography/graph/index",["exports","@glimmer/component"],(function(e,t){var n,r,a +function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const s=Ember.HTMLBars.template({id:"rK0KE41X",block:'{"symbols":["item","&attrs"],"statements":[[11,"div"],[24,0,"tomography-graph"],[17,2],[12],[2,"\\n "],[10,"svg"],[15,"width",[32,0,["size"]]],[15,"height",[32,0,["size"]]],[12],[2,"\\n "],[10,"g"],[15,"transform",[31,["translate(",[30,[36,5],[[32,0,["size"]],2],null],", ",[30,[36,5],[[32,0,["size"]],2],null],")"]]],[12],[2,"\\n "],[10,"g"],[12],[2,"\\n "],[10,"circle"],[14,0,"background"],[15,"r",[32,0,["circle","0"]]],[12],[13],[2,"\\n "],[10,"circle"],[14,0,"axis"],[15,"r",[32,0,["circle","1"]]],[12],[13],[2,"\\n "],[10,"circle"],[14,0,"axis"],[15,"r",[32,0,["circle","2"]]],[12],[13],[2,"\\n "],[10,"circle"],[14,0,"axis"],[15,"r",[32,0,["circle","3"]]],[12],[13],[2,"\\n "],[10,"circle"],[14,0,"border"],[15,"r",[32,0,["circle","4"]]],[12],[13],[2,"\\n "],[13],[2,"\\n "],[10,"g"],[14,0,"lines"],[12],[2,"\\n"],[6,[37,7],[[30,[36,6],[[30,[36,6],[[32,0,["distances"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[11,"rect"],[16,"transform",[31,["rotate(",[32,1,["rotate"]],")"]]],[16,"width",[32,1,["y2"]]],[24,"height","1"],[4,[38,4],[[30,[36,1],[[32,1,["node"]]," - ",[30,[36,3],[[32,1,["distance"]]],[["maximumFractionDigits"],[2]]],"ms",[30,[36,2],[[32,1,["segment"]],[30,[36,1],["
(Segment: ",[32,1,["segment"]],")"],null]],null]],null]],[["options"],[[30,[36,0],null,[["followCursor","allowHTML"],[true,true]]]]]],[12],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n "],[10,"g"],[14,0,"labels"],[12],[2,"\\n "],[10,"circle"],[14,0,"point"],[14,"r","5"],[12],[13],[2,"\\n "],[10,"g"],[14,0,"tick"],[15,"transform",[31,["translate(0, ",[32,0,["labels","0"]],")"]]],[12],[2,"\\n "],[10,"line"],[14,"x2","70"],[12],[13],[2,"\\n "],[10,"text"],[14,"x","75"],[14,"y","0"],[14,"dy",".32em"],[12],[1,[30,[36,3],[[32,0,["milliseconds","0"]]],[["maximumFractionDigits"],[2]]]],[2,"ms"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"g"],[14,0,"tick"],[15,"transform",[31,["translate(0, ",[32,0,["labels","1"]],")"]]],[12],[2,"\\n "],[10,"line"],[14,"x2","70"],[12],[13],[2,"\\n "],[10,"text"],[14,"x","75"],[14,"y","0"],[14,"dy",".32em"],[12],[1,[30,[36,3],[[32,0,["milliseconds","1"]]],[["maximumFractionDigits"],[2]]]],[2,"ms"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"g"],[14,0,"tick"],[15,"transform",[31,["translate(0, ",[32,0,["labels","2"]],")"]]],[12],[2,"\\n "],[10,"line"],[14,"x2","70"],[12],[13],[2,"\\n "],[10,"text"],[14,"x","75"],[14,"y","0"],[14,"dy",".32em"],[12],[1,[30,[36,3],[[32,0,["milliseconds","2"]]],[["maximumFractionDigits"],[2]]]],[2,"ms"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"g"],[14,0,"tick"],[15,"transform",[31,["translate(0, ",[32,0,["labels","3"]],")"]]],[12],[2,"\\n "],[10,"line"],[14,"x2","70"],[12],[13],[2,"\\n "],[10,"text"],[14,"x","75"],[14,"y","0"],[14,"dy",".32em"],[12],[1,[30,[36,3],[[32,0,["milliseconds","3"]]],[["maximumFractionDigits"],[2]]]],[2,"ms"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["hash","concat","if","format-number","tooltip","div","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/tomography/graph/index.hbs"}}),i=function(e){return 160*e} +let o=(n=Ember._tracked,r=class extends t.default{constructor(...e){var t,n,r,s +super(...e),t=this,n="max",s=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(s):void 0}),l(this,"size",336),l(this,"circle",[i(1),i(.25),i(.5),i(.75),i(1)]),l(this,"labels",[i(-.25),i(-.5),i(-.75),i(-1)])}get milliseconds(){const e=(this.args.distances||[]).reduce((e,t)=>Math.max(e,t.distance),this.max) +return[25,50,75,100].map(t=>function(e,t){return t>0?parseInt(t*e)/100:0}(t,e))}get distances(){let e=this.args.distances||[] +const t=e.reduce((e,t)=>Math.max(e,t.distance),this.max),n=e.length +if(n>360){const t=360/n +e=e.filter((function(e,r){return 0==r||r==n-1||Math.random()({rotate:360*r/e.length,y2:n.distance/t*160,node:n.node,distance:n.distance,segment:n.segment}))}},u=r.prototype,c="max",d=[n],m={configurable:!0,enumerable:!0,writable:!0,initializer:function(){return-999999999}},f={},Object.keys(m).forEach((function(e){f[e]=m[e]})),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=d.slice().reverse().reduce((function(e,t){return t(u,c,e)||e}),f),p&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(p):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(u,c,f),f=null),a=f,r) +var u,c,d,m,p,f +e.default=o,Ember._setComponentTemplate(s,o)})),define("consul-ui/components/consul/transparent-proxy/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"+31LUgoZ",block:'{"symbols":[],"statements":[[10,"span"],[14,0,"consul-transparent-proxy"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.transparent-proxy"],null]],[2,"\\n"],[13]],"hasEval":false,"upvars":["t"]}',meta:{moduleName:"consul-ui/components/consul/transparent-proxy/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/upstream-instance/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Xj0kgGX9",block:'{"symbols":["item","combinedAddress","@partition","@nspace","@dc","&attrs","@items"],"statements":[[11,"div"],[24,0,"consul-upstream-instance-list"],[17,6],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,10],[[30,[36,9],[[30,[36,9],[[32,7]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n\\n "],[10,"div"],[14,0,"header"],[12],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[32,1,["DestinationName"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"detail"],[12],[2,"\\n\\n"],[6,[37,4],[[30,[36,7],[[32,1,["DestinationType"]],"prepared_query"],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/bucket/list",[],[["@item","@partition","@nspace"],[[30,[36,6],null,[["Namespace","Partition"],[[30,[36,0],[[32,1,["DestinationNamespace"]],[32,4]],null],[30,[36,0],[[32,1,["DestinationPartition"]],[32,3]],null]]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,4],[[30,[36,8],[[30,[36,7],[[32,1,["Datacenter"]],[32,5]],null],[30,[36,7],[[32,1,["Datacenter"]],""],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"datacenter"],[12],[2,"\\n "],[11,"dt"],[4,[38,5],null,null],[12],[2,"\\n Datacenter\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Datacenter"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,4],[[32,1,["LocalBindSocketPath"]]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[14,0,"local-bind-socket-path"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Local bind socket path\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,1,["LocalBindSocketPath"]],"Local bind socket path"]],null],[2,"\\n "],[1,[32,1,["LocalBindSocketPath"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[14,0,"local-bind-socket-mode"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Mode\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,0],[[32,1,["LocalBindSocketMode"]],"-"],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,3],[[32,1,["LocalBindPort"]],0],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,1],[[30,[36,0],[[32,1,["LocalBindAddress"]],"127.0.0.1"],null],":",[32,1,["LocalBindPort"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[14,0,"local-bind-address"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Address\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,2],"Address"]],null],[2,"\\n "],[1,[32,2]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["or","concat","let","gt","if","tooltip","hash","not-eq","and","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/upstream-instance/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})) +define("consul-ui/components/consul/upstream-instance/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"FXiYZK0f",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-upstream-instance-search-bar"],[17,20]],[["@filter","@namedBlocksInfo"],[[32,17],[30,[36,14],null,[["status","search","sort"],[1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,1],[[30,[36,11],["components.consul.upstream-instance.search-bar.",[32,13,["status","key"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,11],["common.search.",[32,13,["status","key"]]],null],[30,[36,11],["common.consul.",[32,13,["status","key"]]],null]],null]]]],[30,[36,1],[[30,[36,11],["components.consul.upstream-instance.search-bar.",[32,13,["status","value"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,11],["common.search.",[32,13,["status","value"]]],null],[30,[36,11],["common.consul.",[32,13,["status","value"]]],null],[30,[36,11],["common.brand.",[32,13,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,13,["RemoveFilter"]],[[16,"aria-label",[30,[36,1],["common.ui.remove"],[["item"],[[30,[36,11],[[32,14]," ",[32,15]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,14]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,15]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[14,15]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,18]],null],[32,19],[30,[36,1],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,17,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,1],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,17,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,17,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,1],[[30,[36,11],["common.consul.",[30,[36,10],[[32,12]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,16,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["DestinationName:asc",[30,[36,1],["common.sort.alpha.asc"],null]],null],[30,[36,4],["DestinationName:desc",[30,[36,1],["common.sort.alpha.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,16,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,6],[],[["@value","@selected"],["DestinationName:asc",[30,[36,0],["DestinationName:asc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,1],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["DestinationName:desc",[30,[36,0],["DestinationName:desc",[32,16,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,1],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["eq","t","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","lowercase","concat","-track-array","each","hash"]}',meta:{moduleName:"consul-ui/components/consul/upstream-instance/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/upstream/list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"qkxQac+l",block:'{"symbols":["item","index","address","@nspace","@partition","&attrs","@items"],"statements":[[8,"list-collection",[[24,0,"consul-upstream-list"],[17,6]],[["@items","@linkable"],[[32,7],"linkable upstream"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,6],[[32,1,["InstanceCount"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[15,0,[32,1,["MeshStatus"]]],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Health\\n "],[13],[2,"\\n "],[11,"dd"],[4,[38,2],null,null],[12],[2,"\\n"],[6,[37,1],[[30,[36,0],["critical",[32,1,["MeshStatus"]]],null]],null,[["default","else"],[{"statements":[[2," At least one health check on one instance is failing.\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],["warning",[32,1,["MeshStatus"]]],null]],null,[["default","else"],[{"statements":[[2," At least one health check on one instance has a warning.\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,0],["passing",[32,1,["MeshStatus"]]],null]],null,[["default","else"],[{"statements":[[2," All health checks are passing.\\n"]],"parameters":[]},{"statements":[[2," There are no health checks.\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"a"],[15,6,[30,[36,5],["dc.services.show",[32,1,["Name"]]],[["params"],[[30,[36,1],[[30,[36,4],[[32,1,["Partition"]],[32,5]],null],[30,[36,3],null,[["partition","nspace"],[[32,1,["Partition"]],[32,1,["Namespace"]]]]],[30,[36,1],[[30,[36,4],[[32,1,["Namespace"]],[32,4]],null],[30,[36,3],null,[["nspace"],[[32,1,["Namespace"]]]]],[30,[36,3],null,null]],null]],null]]]]],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"p"],[12],[2,"\\n "],[1,[32,1,["Name"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/bucket/list",[],[["@item","@nspace","@partition"],[[32,1],[32,4],[32,5]]],null],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[32,1,["GatewayConfig","Addresses"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Address\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,3],"Address"]],null],[2,"\\n "],[1,[32,3]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["eq","if","tooltip","hash","not-eq","href-to","gt","-track-array","each"]}',meta:{moduleName:"consul-ui/components/consul/upstream/list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/consul/upstream/search-bar/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"BotuftEI",block:'{"symbols":["__arg0","__arg1","search","components","Optgroup","Option","selectable","search","components","Optgroup","Option","item","search","components","Optgroup","Option","prop","search","key","value","@sort","@filter","@onsearch","@search","&attrs"],"statements":[[8,"search-bar",[[24,0,"consul-upstream-search-bar"],[17,25]],[["@filter","@namedBlocksInfo"],[[32,22],[30,[36,14],null,[["status","search","filter","sort"],[1,1,1,1]]]]],[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"status"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,0],[[30,[36,10],["components.consul.upstream.search-bar.",[32,18,["status","key"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,18,["status","key"]]],null],[30,[36,10],["common.consul.",[32,18,["status","key"]]],null]],null]]]],[30,[36,0],[[30,[36,10],["components.consul.upstream.search-bar.",[32,18,["status","value"]],".name"],null]],[["default"],[[30,[36,4],[[30,[36,10],["common.search.",[32,18,["status","value"]]],null],[30,[36,10],["common.consul.",[32,18,["status","value"]]],null],[30,[36,10],["common.brand.",[32,18,["status","value"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,[32,18,["RemoveFilter"]],[[16,"aria-label",[30,[36,0],["common.ui.remove"],[["item"],[[30,[36,10],[[32,19]," ",[32,20]],null]]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[32,19]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,20]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[19,20]}]]],[2,"\\n "]],"parameters":[18]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"search"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Search"]],[],[["@onsearch","@value","@placeholder"],[[30,[36,3],[[32,0],[32,23]],null],[32,24],[30,[36,0],["common.search.search"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Select"]],[[24,0,"type-search-properties"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,22,["searchproperty","change"]]],null],true,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["common.search.searchproperty"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,14,["Optgroup"]],[32,14,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[32,22,["searchproperty","default"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,16],[],[["@value","@selected"],[[32,17],[30,[36,9],[[32,17],[32,22,["searchproperty","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[30,[36,13],[[32,17]],null]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[17]}]]]],"parameters":[15,16]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"filter"],null]],null,[["default","else"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Select"]],[],[["@position","@onchange","@multiple"],["left",[30,[36,3],[[32,0],[32,22,["instance","change"]]],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n "],[1,[30,[36,0],["components.consul.upstream.search-bar.instance.name"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,9,["Optgroup"]],[32,9,["Option"]]],null,[["default"],[{"statements":[[6,[37,12],[[30,[36,11],[[30,[36,11],[[30,[36,4],["registered","not-registered"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,11],[],[["@value","@selected"],[[32,12],[30,[36,9],[[32,12],[32,22,["instance","value"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],[[30,[36,10],["common.consul.",[32,12]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[12]}]]]],"parameters":[10,11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,7],[[32,1],"sort"],null]],null,[["default"],[{"statements":[[6,[37,6],[[32,2]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,3,["Select"]],[[24,0,"type-sort"]],[["@position","@onchange","@multiple","@required"],["right",[30,[36,3],[[32,0],[32,21,["change"]]],null],false,true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,6],[[30,[36,5],[[30,[36,4],[[30,[36,4],["Name:asc",[30,[36,0],["common.sort.alpha.asc"],null]],null],[30,[36,4],["Name:desc",[30,[36,0],["common.sort.alpha.desc"],null]],null],[30,[36,4],["Status:asc",[30,[36,0],["common.sort.status.asc"],null]],null],[30,[36,4],["Status:desc",[30,[36,0],["common.sort.status.desc"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],[[32,7],[32,21,["value"]]],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,4,["Optgroup"]],[32,4,["Option"]]],null,[["default"],[{"statements":[[2," "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.status"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:asc",[30,[36,1],["Status:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Status:desc",[30,[36,1],["Status:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.status.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5],[],[["@label"],[[30,[36,0],["common.consul.service-name"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:asc",[30,[36,1],["Name:asc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.asc"],null]]],"parameters":[]}]]],[2,"\\n "],[8,[32,6],[],[["@value","@selected"],["Name:desc",[30,[36,1],["Name:desc",[32,21,["value"]]],null]]],[["default"],[{"statements":[[1,[30,[36,0],["common.sort.alpha.desc"],null]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[3]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","get","action","array","from-entries","let","-is-named-block-invocation","if","contains","concat","-track-array","each","lowercase","hash"]}',meta:{moduleName:"consul-ui/components/consul/upstream/search-bar/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/copy-button/chart.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"copy-button",initial:"idle",on:{RESET:[{target:"idle"}]},states:{idle:{on:{SUCCESS:[{target:"success"}],ERROR:[{target:"error"}]}},success:{},error:{}}}})),define("consul-ui/components/copy-button/index",["exports","@glimmer/component","consul-ui/components/copy-button/chart.xstate"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r=Ember.HTMLBars.template({id:"wLwVUwEq",block:'{"symbols":["State","Guard","Action","dispatch","state","success","error","reset","@name","&attrs","@value","&default"],"statements":[[8,"state-chart",[],[["@src"],[[32,0,["chart"]]]],[["default"],[{"statements":[[2,"\\n "],[11,"div"],[24,0,"copy-button"],[17,10],[12],[2,"\\n"],[6,[37,9],[[30,[36,8],[[32,4],"SUCCESS"],null],[30,[36,8],[[32,4],"ERROR"],null],[30,[36,8],[[32,4],"RESET"],null]],null,[["default"],[{"statements":[[2," "],[11,"button"],[16,"aria-label",[30,[36,0],["components.copy-button.title"],[["name"],[[32,9]]]]],[24,0,"copy-btn"],[17,10],[24,4,"button"],[4,[38,1],[[32,11]],[["success","error"],[[32,6],[32,7]]]],[4,[38,7],[[30,[36,6],[[30,[36,3],[[32,5],"success"],null],[30,[36,0],["components.copy-button.success"],[["name"],[[32,9]]]],[30,[36,0],["components.copy-button.error"],null]],null]],[["options"],[[30,[36,5],null,[["trigger","showOnCreate","delay","onHidden"],["manual",[30,[36,4],[[30,[36,3],[[32,5],"idle"],null]],null],[30,[36,2],[0,3000],null],[32,8]]]]]]],[12],[18,12,null],[13],[2,"\\n"]],"parameters":[6,7,8]}]]],[2," "],[13],[2,"\\n"]],"parameters":[1,2,3,4,5]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","with-copyable","array","state-matches","not","hash","if","tooltip","fn","let"]}',meta:{moduleName:"consul-ui/components/copy-button/index.hbs"}}) +class a extends t.default{constructor(){super(...arguments),this.chart=n.default}}e.default=a,Ember._setComponentTemplate(r,a)})),define("consul-ui/components/custom-element/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i,o,u +function c(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t{let n=e.type +const r=e.default +switch(t=null==t?e.default:t,-1!==n.indexOf("|")&&(n="string"),n){case"":case"":case"":case"number":{const e=parseFloat(t) +return isNaN(e)?void 0===r?0:r:e}case"":return parseInt(t) +case"":case"string":return(t||"").toString()}},g=(e,t=HTMLElement,n={},r={})=>{const a=Object.keys(n) +return customElements.define(e,class extends t{static get observedAttributes(){return a}attributeChangedCallback(e,t,a){const l=y(n[e],t),s=y(n[e],a),i=r["--"+e] +void 0!==i&&i.track===`[${e}]`&&this.style.setProperty("--"+e,s),"function"==typeof super.attributeChangedCallback&&super.attributeChangedCallback(e,l,s),this.dispatchEvent(new CustomEvent("custom-element.attributeChange",{detail:{name:e,previousValue:l,value:s}}))}}),()=>{}},O=(e,t)=>(e||[]).reduce((e,n)=>{let r +const a={} +return t.forEach((e,t)=>{"_"!==e?a[e]=n[t]:r=t}),e[n[r]]=a,e},{}) +let _=(n=Ember._tracked,r=Ember._tracked,a=Ember._action,l=Ember._action,s=Ember._action,i=class extends t.default{constructor(e,t){if(super(...arguments),m(this,"$element",o,this),m(this,"_attributes",u,this),p(this,"__attributes",void 0),p(this,"_attchange",void 0),!h.has(t.element)){const e=g(t.element,t.class,O(t.attrs,["_","type","default","description"]),O(t.cssprops,["_","type","track","description"])) +h.set(t.element,e)}}get attributes(){return this._attributes}get element(){if(this.$element){if(v.has(this.$element))return v.get(this.$element) +const n=(e=this.$element,t=this,new Proxy(e,{get:(e,n)=>{switch(n){case"attrs":return t.attributes +default:if("function"==typeof e[n])return e[n].bind(e)}}})) +return v.set(this.$element,n),n}var e,t}setHost(e,t){e(t),this.$element=t,this.$element.addEventListener("custom-element.attributeChange",this.attributeChange),(this.args.attrs||[]).forEach(e=>{const n=t.getAttribute(e[0]) +t.attributeChangedCallback(e[0],n,n)})}disconnect(){this.$element.removeEventListener("custom-element.attributeChange",this.attributeChange)}attributeChange(e){var t,n +e.stopImmediatePropagation(),this.__attributes=d(d({},this.__attributes),{},{[e.detail.name]:e.detail.value}),this._attchange=(t=()=>{this._attributes=this.__attributes},void 0!==(n=this._attchange)&&cancelAnimationFrame(n),requestAnimationFrame(t))}},o=f(i.prototype,"$element",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=f(i.prototype,"_attributes",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{}}}),f(i.prototype,"setHost",[a],Object.getOwnPropertyDescriptor(i.prototype,"setHost"),i.prototype),f(i.prototype,"disconnect",[l],Object.getOwnPropertyDescriptor(i.prototype,"disconnect"),i.prototype),f(i.prototype,"attributeChange",[s],Object.getOwnPropertyDescriptor(i.prototype,"attributeChange"),i.prototype),i) +e.default=_,Ember._setComponentTemplate(b,_)})),define("consul-ui/components/data-collection/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O +function _(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function P(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const w=Ember.HTMLBars.template({id:"V00/q7z+",block:'{"symbols":["@search","&default"],"statements":[[1,[30,[36,3],[[30,[36,2],[[32,0],[30,[36,1],[[30,[36,0],[[32,0],"term"],null],""],null],[32,1]],null]],null]],[2,"\\n"],[18,2,[[30,[36,8],null,[["search","items","Collection","Empty"],[[30,[36,2],[[32,0],[32,0,["search"]]],null],[32,0,["items"]],[30,[36,6],[[30,[36,7],[[32,0,["items","length"]],0],null],[30,[36,4],["anonymous"],null],""],null],[30,[36,6],[[30,[36,5],[[32,0,["items","length"]],0],null],[30,[36,4],["anonymous"],null],""],null]]]]]],[2,"\\n"]],"hasEval":false,"upvars":["set","fn","action","did-update","component","eq","if","gt","hash"]}',meta:{moduleName:"consul-ui/components/data-collection/index.hbs"}}) +let E=(n=Ember.inject.service("filter"),r=Ember.inject.service("sort"),a=Ember.inject.service("search"),l=Ember._tracked,s=Ember.computed.alias("searchService.searchables"),i=Ember.computed("term","args.search"),o=Ember.computed("type","searchMethod","filtered","args.filters"),u=Ember.computed("type","args.sort"),c=Ember.computed("comparator","searched"),d=Ember.computed("searchTerm","searchable","filtered"),m=Ember.computed("type","content","args.filters"),p=Ember.computed("args.{items.[],items.content.[]}"),f=Ember._action,b=class extends t.default{constructor(...e){super(...e),_(this,"filter",h,this),_(this,"sort",v,this),_(this,"searchService",y,this),_(this,"term",g,this),_(this,"searchableMap",O,this)}get type(){return this.args.type}get searchMethod(){return this.args.searchable||"exact"}get searchProperties(){return this.args.filters.searchproperties}get searchTerm(){return this.term||this.args.search||""}get searchable(){const e=Ember.get(this,"args.filters.searchproperty.value")||Ember.get(this,"args.filters.searchproperty") +return new("string"==typeof this.searchMethod?this.searchableMap[this.searchMethod]:this.args.searchable)(this.filtered,{finders:Object.fromEntries(Object.entries(this.searchService.predicate(this.type)).filter(([t,n])=>void 0===e||e.includes(t)))})}get comparator(){return void 0===this.args.sort?[]:this.sort.comparator(this.type)(this.args.sort)}get items(){let e="comparator" +return"function"==typeof this.comparator&&(e=this.comparator),Ember.defineProperty(this,"sorted",Ember.computed.sort("searched",e)),this.sorted}get searched(){return""===this.searchTerm?this.filtered:this.searchable.search(this.searchTerm)}get filtered(){if(void 0===this.args.filters)return this.content.slice() +const e=this.filter.predicate(this.type) +if(void 0===e)return this.content.slice() +const t=Object.entries(this.args.filters).filter(([e,t])=>Boolean(t)).map(([e,t])=>[e,"string"!=typeof t?t.value:t]) +return this.content.filter(e(Object.fromEntries(t)))}get content(){const e=this.args.items||[] +return"function"==typeof e.dispatchEvent?e.content:e}search(e){return this.term=e,this.items}},h=P(b.prototype,"filter",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=P(b.prototype,"sort",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=P(b.prototype,"searchService",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=P(b.prototype,"term",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),O=P(b.prototype,"searchableMap",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P(b.prototype,"searchTerm",[i],Object.getOwnPropertyDescriptor(b.prototype,"searchTerm"),b.prototype),P(b.prototype,"searchable",[o],Object.getOwnPropertyDescriptor(b.prototype,"searchable"),b.prototype),P(b.prototype,"comparator",[u],Object.getOwnPropertyDescriptor(b.prototype,"comparator"),b.prototype),P(b.prototype,"items",[c],Object.getOwnPropertyDescriptor(b.prototype,"items"),b.prototype),P(b.prototype,"searched",[d],Object.getOwnPropertyDescriptor(b.prototype,"searched"),b.prototype),P(b.prototype,"filtered",[m],Object.getOwnPropertyDescriptor(b.prototype,"filtered"),b.prototype),P(b.prototype,"content",[p],Object.getOwnPropertyDescriptor(b.prototype,"content"),b.prototype),P(b.prototype,"search",[f],Object.getOwnPropertyDescriptor(b.prototype,"search"),b.prototype),b) +e.default=E,Ember._setComponentTemplate(w,E)})),define("consul-ui/components/data-form/index",["exports","block-slots","validated-changeset"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r=Ember.HTMLBars.template({id:"0brDSSRZ",block:'{"symbols":["writer","api","&default"],"statements":[[8,"data-loader",[],[["@items","@src","@onchange","@once"],[[34,2],[30,[36,9],["/${partition}/${nspace}/${dc}/${type}/${src}",[30,[36,8],null,[["partition","nspace","dc","type","src"],[[35,7],[35,6],[35,5],[35,4],[35,3]]]]],null],[30,[36,10],[[32,0],"setData"],null],true]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"data-writer",[],[["@sink","@type","@label","@ondelete","@onchange"],[[30,[36,9],["/${partition}/${nspace}/${dc}/${type}",[30,[36,8],null,[["partition","nspace","dc","type"],[[35,7],[35,6],[30,[36,12],[[35,11,["Datacenter"]],[35,5]],null],[35,4]]]]],null],[34,4],[34,13],[30,[36,10],[[32,0],[35,14]],null],[30,[36,10],[[32,0],[35,15]],null]]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,17],[[30,[36,8],null,[["data","change","isCreate","error","disabled","submit","delete"],[[35,11],[30,[36,10],[[32,0],"change"],null],[35,16],[32,1,["error"]],[32,1,["inflight"]],[30,[36,10],[[32,0],[32,1,["persist"]],[35,11]],null],[30,[36,10],[[32,0],[32,1,["delete"]],[35,11]],null]]]]],null,[["default"],[{"statements":[[2,"\\n "],[18,3,[[32,2]]],[2,"\\n"],[6,[37,1],[[35,0]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[18,3,[[32,2]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name"],["form"]],[["default"],[{"statements":[[2,"\\n "],[18,3,[[32,2]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n"]],"parameters":[2]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["hasError","if","item","src","type","dc","nspace","partition","hash","uri","action","data","or","label","ondelete","onsubmit","create","let"]}',meta:{moduleName:"consul-ui/components/data-form/index.hbs"}}) +var a=Ember._setComponentTemplate(r,Ember.Component.extend(t.default,{tagName:"",dom:Ember.inject.service("dom"),builder:Ember.inject.service("form"),create:!1,ondelete:function(){return this.onsubmit(...arguments)},oncancel:function(){return this.onsubmit(...arguments)},onsubmit:function(){},onchange:function(e,t){return t.handleEvent(e)},didReceiveAttrs:function(){this._super(...arguments) +try{this.form=this.builder.form(this.type)}catch(e){}},willRender:function(){this._super(...arguments),Ember.set(this,"hasError",this._isRegistered("error"))},willDestroyElement:function(){this._super(...arguments),Ember.get(this,"data.isNew")&&this.data.rollbackAttributes()},actions:{setData:function(e){let t=e +return(0,n.isChangeset)(e)||void 0===this.form||(t=this.form.setData(e).getData()),Ember.get(e,"isNew")&&(Ember.set(this,"create",!0),t=Object.entries(this.autofill||{}).reduce((function(e,[t,n]){return Ember.set(e,t,n),e}),t)),Ember.set(this,"data",t),this.data},change:function(e,t){this.onchange(this.dom.normalizeEvent(e,t),this.form,this.form.getData())}}})) +e.default=a})),define("consul-ui/components/data-loader/chart.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"data-loader",initial:"load",on:{OPEN:{target:"load"},ERROR:{target:"disconnected"},LOAD:[{target:"idle",cond:"loaded"},{target:"loading"}],INVALIDATE:[{target:"invalidating"}]},states:{load:{},invalidating:{},loading:{on:{SUCCESS:{target:"idle"},ERROR:{target:"error"}}},idle:{},error:{on:{RETRY:{target:"load"}}},disconnected:{on:{RETRY:{target:"load"}}}}}})),define("consul-ui/components/data-loader/index",["exports","block-slots","consul-ui/components/data-loader/chart.xstate"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r=Ember.HTMLBars.template({id:"t05sBy/d",block:'{"symbols":["State","Guard","Action","dispatch","state","api","notice","&default"],"statements":[[18,8,null],[2,"\\n"],[8,"state-chart",[],[["@src"],[[34,17]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"dispatch",[32,4]]],null],[2,"\\n "],[8,[32,2],[],[["@name","@cond"],["loaded",[30,[36,3],[[32,0],"isLoaded"],null]]],null],[2,"\\n\\n\\n"],[6,[37,21],[[30,[36,20],null,[["data","error","invalidate","dispatchError"],[[35,19],[35,0],[30,[36,3],[[32,0],"invalidate"],null],[30,[36,7],[[30,[36,3],[[32,0],[30,[36,18],[[35,0]],null]],[["value"],["error.errors.firstObject"]]],[30,[36,3],[[32,0],[32,4],"ERROR"],null]],null]]]]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,1],null,[["name"],["data"]],[["default","else"],[{"statements":[[2," "],[18,8,[[32,6]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,14],[[30,[36,11],[[35,15]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,1],[],[["@notMatches"],[[30,[36,8],["error","disconnected","invalidating"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,14],[[30,[36,13],[[35,6],[30,[36,12],[[30,[36,11],[[35,10]],null],[30,[36,9],[[32,5],"loading"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@open","@src","@onchange","@onerror"],[[34,5],[34,6],[30,[36,7],[[30,[36,3],[[32,0],"change"],[["value"],["data"]]],[30,[36,3],[[32,0],[32,4],"SUCCESS"],null]],null],[32,6,["dispatchError"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n "],[8,[32,1],[],[["@matches"],["loading"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],null,[["name"],["loading"]],[["default","else"],[{"statements":[[2," "],[18,8,[[32,6]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"consul/loader",[],[[],[]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],null,[["name"],["error"]],[["default","else"],[{"statements":[[2," "],[18,8,[[32,6]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"error-state",[],[["@error"],[[34,0]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],[[30,[36,8],["idle","disconnected","invalidating"],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["disconnected"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,14],[[30,[36,11],[[30,[36,16],[[35,0,["status"]],"401"],null]],null]],null,[["default"],[{"statements":[[6,[37,1],null,[["name","params"],["disconnected",[30,[36,4],[[30,[36,3],[[32,0],[32,4],"RESET"],null]],null]]],[["default","else"],[{"statements":[[2," "],[18,8,[[32,6]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,2],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n An error was returned whilst loading this data, refresh to try again.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"],[6,[37,14],[[30,[36,16],[[35,0,["status"]],"403"],null]],null,[["default","else"],[{"statements":[[6,[37,1],null,[["name"],["error"]],[["default","else"],[{"statements":[[2," "],[18,8,[[32,6]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"error-state",[],[["@error"],[[34,0]]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," "],[8,"yield-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n "],[18,8,[[32,6]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n"]],"parameters":[6]}]]],[2," "],[1,[30,[36,23],[[30,[36,22],[[32,4],"LOAD"],null]],[["src"],[[35,6]]]]],[2,"\\n"]],"parameters":[1,2,3,4,5]}]]]],"hasEval":false,"upvars":["error","yield-slot","notification","action","block-params","open","src","queue","array","state-matches","once","not","or","and","if","items","eq","chart","mut","data","hash","let","fn","did-update"]}',meta:{moduleName:"consul-ui/components/data-loader/index.hbs"}}) +var a=Ember._setComponentTemplate(r,Ember.Component.extend(t.default,{tagName:"",onchange:e=>e,init:function(){this._super(...arguments),this.chart=n.default},didReceiveAttrs:function(){this._super(...arguments),void 0!==this.items&&this.actions.change.apply(this,[this.items])},didInsertElement:function(){this._super(...arguments),this.dispatch("LOAD")},actions:{invalidate(){this.dispatch("INVALIDATE"),Ember.run.schedule("afterRender",()=>{this.dispatch("LOAD")})},isLoaded:function(){return void 0!==this.items||void 0===this.src},change:function(e){Ember.set(this,"data",this.onchange(e))}}})) +e.default=a})),define("consul-ui/components/data-sink/index",["exports","consul-ui/utils/dom/event-source"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"R4WHi3tx",block:'{"symbols":["&default"],"statements":[[18,1,[[30,[36,2],null,[["open","state"],[[30,[36,1],[[32,0],"open"],null],[35,0]]]]]],[2,"\\n"]],"hasEval":false,"upvars":["state","action","hash"]}',meta:{moduleName:"consul-ui/components/data-sink/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend({tagName:"",service:Ember.inject.service("data-sink/service"),dom:Ember.inject.service("dom"),logger:Ember.inject.service("logger"),onchange:function(){},onerror:function(){},state:Ember.computed("instance","instance.{dirtyType,isSaving}",(function(){let e +const t=Ember.get(this,"instance.isSaving"),n=Ember.get(this,"instance.dirtyType") +if(void 0===t&&void 0===n)e="idle" +else{switch(n){case"created":e=t?"creating":"create" +break +case"updated":e=t?"updating":"update" +break +case"deleted":case void 0:e=t?"removing":"remove"}e="active."+e}return{matches:t=>-1!==e.indexOf(t)}})),init:function(){this._super(...arguments),this._listeners=this.dom.listeners()},willDestroyElement:function(){this._super(...arguments),this._listeners.remove()},source:function(e){const n=(0,t.once)(e),r=e=>{Ember.set(this,"instance",void 0) +try{this.onerror(e),this.logger.execute(e)}catch(e){this.logger.execute(e)}} +return this._listeners.add(n,{message:e=>{try{Ember.set(this,"instance",void 0),this.onchange(e)}catch(t){r(t)}},error:e=>r(e)}),n},didInsertElement:function(){this._super(...arguments),void 0===this.data&&void 0===this.item||this.actions.open.apply(this,[this.data,this.item])},persist:function(e,t){void 0!==e?Ember.set(this,"instance",this.service.prepare(this.sink,e,t)):Ember.set(this,"instance",t),this.source(()=>this.service.persist(this.sink,this.instance))},remove:function(e){Ember.set(this,"instance",e),this.source(()=>this.service.remove(this.sink,e))},actions:{open:function(e,t){if(t instanceof Event&&(t=void 0),void 0===e&&void 0===t)throw new Error("You must specify data to save, or null to remove") +null===e||""===e?this.remove(t):this.persist(e,t)}}})) +e.default=r})),define("consul-ui/components/data-source/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O +function _(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function P(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const w=Ember.HTMLBars.template({id:"N/jmqD/5",block:'{"symbols":["@src","@loading","@disabled","&default"],"statements":[[6,[37,2],[[30,[36,5],[[32,0,["disabled"]]],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,1],[[32,0,["loading"]],"lazy"],null]],null,[["default","else"],[{"statements":[[2," "],[11,"data"],[24,"aria-hidden","true"],[24,5,"width: 0;height: 0;font-size: 0;padding: 0;margin: 0;"],[4,[38,0],[[32,0,["connect"]]],null],[12],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[30,[36,0],[[32,0,["connect"]]],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[30,[36,3],[[32,0,["attributeChanged"]],"src",[32,1]],null]],[2,"\\n "],[1,[30,[36,3],[[32,0,["attributeChanged"]],"loading",[32,2]],null]],[2,"\\n "],[1,[30,[36,4],[[32,0,["disconnect"]]],null]],[2,"\\n"]],"parameters":[]}]]],[1,[30,[36,3],[[32,0,["attributeChanged"]],"disabled",[32,3]],null]],[2,"\\n"],[18,4,[[30,[36,7],null,[["data","error","Source"],[[32,0,["data"]],[32,0,["error"]],[30,[36,2],[[32,0,["data"]],[30,[36,6],["data-source"],[["disabled"],[[30,[36,5],[[30,[36,1],[[32,0,["error"]],[29]],null]],null]]]],""],null]]]]]],[2,"\\n"]],"hasEval":false,"upvars":["did-insert","eq","if","did-update","will-destroy","not","component","hash"]}',meta:{moduleName:"consul-ui/components/data-source/index.hbs"}}),E=function(e,t,n,r=((e=null)=>"function"==typeof e?e():null)){const a=e[t] +return a!==n&&r(a,n),e[t]=n},k=()=>{},x=e=>"function"==typeof e?e:k,j=["eager","lazy"] +let C=(n=Ember.inject.service("data-source/service"),r=Ember.inject.service("dom"),a=Ember.inject.service("logger"),l=Ember._tracked,s=Ember._tracked,i=Ember._tracked,o=Ember._action,u=Ember._action,c=Ember._action,d=Ember._action,m=Ember._action,p=Ember._action,f=class extends t.default{constructor(e,t){super(...arguments),_(this,"dataSource",b,this),_(this,"dom",h,this),_(this,"logger",v,this),_(this,"isIntersecting",y,this),_(this,"data",g,this),_(this,"error",O,this),this._listeners=this.dom.listeners(),this._lazyListeners=this.dom.listeners()}get loading(){return j.includes(this.args.loading)?this.args.loading:j[0]}get disabled(){return void 0!==this.args.disabled&&this.args.disabled}onchange(e){this.error=void 0,this.data=e.data,x(this.args.onchange)(e)}onerror(e){this.error=e.error||e,x(this.args.onerror)(e)}connect(e){Array.isArray(e)?(this._lazyListeners.remove(),this.open()):this._lazyListeners.add(this.dom.isInViewport(e,e=>{this.isIntersecting=e,this.isIntersecting?this.open():this.close()}))}disconnect(){void 0!==this.data&&void 0===this.data.length&&"function"==typeof this.data.rollbackAttributes&&this.data.rollbackAttributes(),this.close(),this._listeners.remove(),this._lazyListeners.remove()}attributeChanged([e,t]){switch(e){case"src":("eager"===this.loading||this.isIntersecting)&&this.open()}}open(){const e=this.args.src,t=E(this,"source",this.dataSource.open(e,this,this.open),e=>{this.dataSource.close(e,this)}),n=e=>{try{const t=Ember.get(e,"error.errors.firstObject")||{} +"429"!==Ember.get(t,"status")&&this.onerror(e),this.logger.execute(e)}catch(e){this.logger.execute(e)}},r=this._listeners.add(this.source,{message:e=>{try{this.onchange(e)}catch(t){n(t)}},error:e=>{n(e)}}) +if(E(this,"_remove",r),"function"==typeof t.getCurrentEvent){const e=t.getCurrentEvent() +if(e){let t +void 0!==e.error?(t="onerror",this.error=e.error):(this.error=void 0,this.data=e.data,t="onchange"),Ember.run.schedule("afterRender",()=>{try{this[t](e)}catch(r){n(r)}})}}}async invalidate(){this.source.readyState=2,this.disconnect(),Ember.run.schedule("afterRender",()=>{this.connect([])})}close(){void 0!==this.source&&(this.dataSource.close(this.source,this),E(this,"_remove",void 0),this.source=void 0)}},b=P(f.prototype,"dataSource",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=P(f.prototype,"dom",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=P(f.prototype,"logger",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=P(f.prototype,"isIntersecting",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),g=P(f.prototype,"data",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=P(f.prototype,"error",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P(f.prototype,"connect",[o],Object.getOwnPropertyDescriptor(f.prototype,"connect"),f.prototype),P(f.prototype,"disconnect",[u],Object.getOwnPropertyDescriptor(f.prototype,"disconnect"),f.prototype),P(f.prototype,"attributeChanged",[c],Object.getOwnPropertyDescriptor(f.prototype,"attributeChanged"),f.prototype),P(f.prototype,"open",[d],Object.getOwnPropertyDescriptor(f.prototype,"open"),f.prototype),P(f.prototype,"invalidate",[m],Object.getOwnPropertyDescriptor(f.prototype,"invalidate"),f.prototype),P(f.prototype,"close",[p],Object.getOwnPropertyDescriptor(f.prototype,"close"),f.prototype),f) +e.default=C,Ember._setComponentTemplate(w,C)})),define("consul-ui/components/data-writer/chart.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"data-writer",initial:"idle",states:{idle:{on:{PERSIST:{target:"persisting"},REMOVE:{target:"removing"}}},removing:{on:{SUCCESS:{target:"removed"},ERROR:{target:"error"}}},persisting:{on:{SUCCESS:{target:"persisted"},ERROR:{target:"error"}}},removed:{on:{RESET:{target:"idle"}}},persisted:{on:{RESET:{target:"idle"}}},error:{on:{RESET:{target:"idle"}}}}}})),define("consul-ui/components/data-writer/index",["exports","block-slots","consul-ui/components/data-writer/chart.xstate"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r=Ember.HTMLBars.template({id:"Gj1ownZS",block:'{"symbols":["State","Guard","Action","dispatch","state","api","after","notice","after","notice","after","notice","&default"],"statements":[[8,"state-chart",[],[["@src"],[[34,17]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"dispatch",[32,4]]],null],[2,"\\n\\n"],[6,[37,15],[[30,[36,20],null,[["data","error","persist","delete","inflight","disabled"],[[35,10],[35,11],[30,[36,0],[[32,0],"persist"],null],[30,[36,13],[[30,[36,0],[[32,0],[30,[36,12],[[35,10]],null]],null],[30,[36,0],[[32,0],[32,4],"REMOVE"],null]],null],[30,[36,19],[[32,5],[30,[36,18],["persisting","removing"],null]],null],[30,[36,19],[[32,5],[30,[36,18],["persisting","removing"],null]],null]]]]],null,[["default"],[{"statements":[[2,"\\n "],[18,13,[[32,6]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["removing"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-sink",[],[["@sink","@item","@data","@onchange","@onerror"],[[34,9],[34,10],null,[30,[36,0],[[32,0],[32,4],"SUCCESS"],null],[30,[36,13],[[30,[36,0],[[32,0],[30,[36,12],[[35,11]],null]],[["value"],["error.errors.firstObject"]]],[30,[36,0],[[32,0],[32,4],"ERROR"],null]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["persisting"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-sink",[],[["@sink","@item","@onchange","@onerror"],[[34,9],[34,10],[30,[36,0],[[32,0],[32,4],"SUCCESS"],null],[30,[36,13],[[30,[36,0],[[32,0],[30,[36,12],[[35,11]],null]],[["value"],["error.errors.firstObject"]]],[30,[36,0],[[32,0],[32,4],"ERROR"],null]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["removed"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[30,[36,13],[[30,[36,0],[[32,0],[32,4],"RESET"],null],[30,[36,0],[[32,0],[35,14]],null]],null]],null,[["default"],[{"statements":[[6,[37,8],null,[["name","params"],["removed",[30,[36,7],[[32,11]],null]]],[["default","else"],[{"statements":[[2," "],[18,13,[[32,6]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-delete"],[4,[38,1],null,[["after"],[[30,[36,0],[[32,0],[32,11]],null]]]]],[["@type"],["success"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,12,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Success!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,12,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Your "],[1,[30,[36,4],[[35,3],[35,2]],null]],[2," has been deleted.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[12]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[11]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["persisted"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[30,[36,0],[[32,0],[35,16]],null]],null,[["default"],[{"statements":[[6,[37,8],null,[["name","params"],["persisted",[30,[36,7],[[32,9]],null]]],[["default","else"],[{"statements":[[2," "],[18,13,[[32,6]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,1],null,[["after"],[[30,[36,0],[[32,0],[32,9]],null]]]]],[["@type"],["success"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,10,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Success!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,10,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Your "],[1,[30,[36,4],[[35,3],[35,2]],null]],[2," has been saved.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[10]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[9]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[30,[36,0],[[32,0],[32,4],"RESET"],null]],null,[["default"],[{"statements":[[6,[37,8],null,[["name","params"],["error",[30,[36,7],[[32,7],[32,6,["error"]]],null]]],[["default","else"],[{"statements":[[2," "],[18,13,[[32,6]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,1],null,[["after"],[[30,[36,0],[[32,0],[32,7]],null]]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n There was an error saving your "],[1,[30,[36,4],[[35,3],[35,2]],null]],[2,".\\n"],[6,[37,6],[[30,[36,5],[[32,6,["error","status"]],[32,6,["error","detail"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"br"],[12],[13],[1,[32,6,["error","status"]]],[2,": "],[1,[32,6,["error","detail"]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[7]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"yield-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[18,13,[[32,6]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n"]],"parameters":[6]}]]]],"parameters":[1,2,3,4,5]}]]]],"hasEval":false,"upvars":["action","notification","type","label","or","and","if","block-params","yield-slot","sink","data","error","mut","queue","ondelete","let","onchange","chart","array","state-matches","hash"]}',meta:{moduleName:"consul-ui/components/data-writer/index.hbs"}}) +var a=Ember._setComponentTemplate(r,Ember.Component.extend(t.default,{tagName:"",ondelete:function(){return this.onchange(...arguments)},onchange:function(){},init:function(){this._super(...arguments),this.chart=n.default},actions:{persist:function(e,t){t&&"function"==typeof t.preventDefault&&t.preventDefault(),Ember.set(this,"data",e),this.dispatch("PERSIST")}}})) +e.default=a})),define("consul-ui/components/debug/navigation/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"ZDKUMD/N",block:'{"symbols":[],"statements":[],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/debug/navigation/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/delete-confirmation/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"jCwHFXDR",block:'{"symbols":[],"statements":[[10,"p"],[12],[2,"\\n "],[1,[34,0]],[2,"\\n"],[13],[2,"\\n"],[10,"button"],[14,0,"type-delete"],[15,"onclick",[30,[36,2],[[32,0],[35,1]],null]],[14,4,"button"],[12],[2,"\\n Confirm Delete\\n"],[13],[2,"\\n"],[10,"button"],[14,0,"type-cancel"],[15,"onclick",[30,[36,2],[[32,0],[35,3]],null]],[14,4,"button"],[12],[2,"Cancel"],[13],[2,"\\n"]],"hasEval":false,"upvars":["message","execute","action","cancel"]}',meta:{moduleName:"consul-ui/components/delete-confirmation/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",execute:function(){},cancel:function(){}})) +e.default=n})),define("consul-ui/components/disclosure-card/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"jQWyQTRo",block:'{"symbols":["custom","element","disclosure","&default"],"statements":[[8,"custom-element",[],[["@attrs"],[[34,0]]],[["default"],[{"statements":[[2,"\\n"],[8,"disclosure",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[11,"disclosure-card"],[16,"expanded",[32,3,["expanded"]]],[4,[38,1],[[32,1,["connect"]]],null],[4,[38,2],[[32,1,["disconnect"]]],null],[12],[2,"\\n\\n "],[8,[32,1,["Template"]],[],[["@styles"],[[30,[36,5],[[30,[36,4],["/styles/base/icons/base-keyframes.css"],[["from"],["/components/disclosure-card"]]],[30,[36,4],["/styles/base/icons/icons/chevron-down/index.css"],[["from"],["/components/disclosure-card"]]],[30,[36,4],["/components/panel/index.css"],[["from"],["/components/disclosure-card"]]],[30,[36,3],["\\n :host {\\n display: block;\\n }\\n slot[name=\'action\']::slotted(button) {\\n display: block;\\n cursor: pointer;\\n width: 100%;\\n\\n background-color: rgb(var(--tone-gray-050));\\n color: rgb(var(--tone-gray-800));\\n padding-top: var(--padding-y);\\n padding-bottom: var(--padding-y);\\n }\\n slot[name=\'action\']::slotted(button)::after {\\n transition-timing-function: linear;\\n transition-duration: 300ms;\\n transition-property: transform;\\n --icon-name: icon-chevron-down;\\n --icon-size: icon-000;\\n content: \'\';\\n }\\n\\n :host([expanded]) slot[name=\'action\']::slotted(button)::after {\\n transform: scaleY(-100%);\\n }\\n\\n :host([expanded]) [style*=\'max-height\'] {\\n transition-duration: 50ms;\\n }\\n [style*=\'max-height\'] {\\n transition-timing-function: ease-out;\\n transition-property: max-height;\\n overflow: hidden;\\n }\\n .content {\\n padding: var(--padding-y) var(--padding-x);\\n }\\n "],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,"part","base"],[15,0,[30,[36,6],["panel"],null]],[12],[2,"\\n "],[11,"div"],[16,0,[30,[36,6],["content"],null]],[4,[38,8],[[30,[36,7],[[30,[36,0],[[30,[36,0],["height","max-height"],null]],null]],null]],null],[12],[2,"\\n "],[10,"slot"],[12],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"hr"],[15,0,[30,[36,6],["panel-separator"],null]],[12],[13],[2,"\\n "],[10,"slot"],[14,3,"action"],[12],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[18,4,[[32,3]]],[2,"\\n\\n "],[13],[2,"\\n"]],"parameters":[3]}]]],[2,"\\n"]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["array","did-insert","will-destroy","css","require","css-map","class-map","dom-position","on-resize"]}',meta:{moduleName:"consul-ui/components/disclosure-card/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/disclosure-menu/action/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"dVOJ6hd3",block:'{"symbols":["@disclosure","&attrs","&default"],"statements":[[8,[32,1,["Action"]],[[24,"aria-haspopup","menu"],[17,2]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[18,3,null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/disclosure-menu/action/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/disclosure-menu/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"0ppCO1I+",block:'{"symbols":["disclosure","&attrs","@expanded","@rowHeight","@items","&default"],"statements":[[11,"div"],[16,0,[30,[36,0],["disclosure-menu"],null]],[17,2],[12],[2,"\\n "],[8,"disclosure",[],[["@expanded"],[[32,3]]],[["default"],[{"statements":[[2,"\\n "],[18,6,[[30,[36,2],null,[["Action","Menu","disclosure","toggle","close","open","expanded"],[[30,[36,1],["disclosure-menu/action"],[["disclosure"],[[32,1]]]],[30,[36,1],["disclosure-menu/menu"],[["disclosure","items","rowHeight"],[[32,1],[32,5],[32,4]]]],[32,1],[32,1,["toggle"]],[32,1,["close"]],[32,1,["open"]],[32,1,["expanded"]]]]]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["class-map","component","hash"]}',meta:{moduleName:"consul-ui/components/disclosure-menu/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/disclosure-menu/menu/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"OoptGQit",block:'{"symbols":["details","pager","@disclosure","@items","&attrs","&default"],"statements":[[8,[32,3,["Details"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"paged-collection",[],[["@items"],[[30,[36,1],[[32,4],[30,[36,0],null,null]],null]]],[["default"],[{"statements":[[2,"\\n "],[11,"div"],[16,0,[30,[36,3],[[30,[36,0],["paged-collection-scroll",[30,[36,2],[[32,2,["type"]],[30,[36,0],["virtual-scroll","native-scroll"],null]],null]],null]],null]],[17,5],[4,[38,4],["click",[32,3,["close"]]],null],[4,[38,5],[[32,2,["viewport"]]],null],[4,[38,6],[[32,2,["resize"]]],null],[4,[38,7],["--paged-row-height"],[["returns"],[[32,2,["rowHeight"]]]]],[4,[38,7],["max-height"],[["returns"],[[32,2,["maxHeight"]]]]],[12],[2,"\\n "],[18,6,[[30,[36,9],null,[["Menu"],[[30,[36,8],["menu"],[["disclosure","pager"],[[32,3],[32,2]]]]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n\\n"]],"hasEval":false,"upvars":["array","or","contains","class-map","on-outside","did-insert","on-resize","css-prop","component","hash"]}',meta:{moduleName:"consul-ui/components/disclosure-menu/menu/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/disclosure/action/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"psbqw5ZC",block:'{"symbols":["@disclosure","&attrs","&default"],"statements":[[8,"action",[[16,"aria-expanded",[30,[36,0],[[32,1,["expanded"]],"true","false"],null]],[16,"aria-controls",[32,1,["controls"]]],[17,2]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[18,3,null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["if"]}',meta:{moduleName:"consul-ui/components/disclosure/action/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/disclosure/details/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"zTpefIvc",block:'{"symbols":["id","@disclosure","&default","@auto"],"statements":[[6,[37,10],[[30,[36,9],null,null]],null,[["default"],[{"statements":[[6,[37,5],[[30,[36,4],[[30,[36,3],[[30,[36,1],[[32,4],[29]],null],[32,2,["expanded"]]],null],[30,[36,3],[[30,[36,2],[[32,4],[29]],null],[30,[36,1],[[32,4],false],null]],null]],null]],null,[["default"],[{"statements":[[18,3,[[30,[36,0],null,[["id","expanded"],[[32,1],[32,2,["expanded"]]]]]]],[2,"\\n"]],"parameters":[]}]]],[1,[30,[36,7],[[30,[36,6],[[32,2,["add"]],[32,1]],null]],null]],[2,"\\n"],[1,[30,[36,8],[[30,[36,6],[[32,2,["remove"]],[32,1]],null]],null]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["hash","eq","not-eq","and","or","if","fn","did-insert","will-destroy","unique-id","let"]}',meta:{moduleName:"consul-ui/components/disclosure/details/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/disclosure/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const o=Ember.HTMLBars.template({id:"28tf0rhU",block:'{"symbols":["State","Guard","Action","dispatch","state","_api","api","&default","@expanded"],"statements":[[8,"state-chart",[],[["@src","@initial"],[[30,[36,5],["boolean"],null],[30,[36,6],[[32,9],"true","false"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,1],null,[["toggle","close","open","expanded","event","button","controls"],[[30,[36,8],[[32,4],"TOGGLE"],null],[30,[36,8],[[32,4],"FALSE"],null],[30,[36,8],[[32,4],"TRUE"],null],[30,[36,0],[[32,5],"true"],null],[32,5,["context"]],[30,[36,7],null,null],[32,0,["ids"]]]]]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,6],[30,[36,1],null,[["Action","Details"],[[30,[36,2],["disclosure/action"],[["disclosure"],[[32,6]]]],[30,[36,2],["disclosure/details"],[["disclosure"],[[30,[36,1],null,[["add","remove","expanded"],[[32,0,["add"]],[32,0,["remove"]],[30,[36,0],[[32,5],"true"],null]]]]]]]]]]],null]],null,[["default"],[{"statements":[[2," "],[18,8,[[32,7]]],[2,"\\n"]],"parameters":[7]}]]]],"parameters":[6]}]]]],"parameters":[1,2,3,4,5]}]]]],"hasEval":false,"upvars":["state-matches","hash","component","assign","let","state-chart","if","unique-id","fn"]}',meta:{moduleName:"consul-ui/components/disclosure/index.hbs"}}) +let u=(n=Ember._tracked,r=Ember._action,a=Ember._action,l=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="ids",a=this,(r=s)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}add(e){Ember.run.schedule("afterRender",()=>{this.ids=`${this.ids}${this.ids.length>0?" ":""}${e}`})}remove(e){this.ids=this.ids.split(" ").filter(t=>t!==e).join(" ")}},s=i(l.prototype,"ids",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),i(l.prototype,"add",[r],Object.getOwnPropertyDescriptor(l.prototype,"add"),l.prototype),i(l.prototype,"remove",[a],Object.getOwnPropertyDescriptor(l.prototype,"remove"),l.prototype),l) +e.default=u,Ember._setComponentTemplate(o,u)})),define("consul-ui/components/distribution-meter/index.css",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=e=>e` + :host { + display: block; + width: 100%; + height: 100%; + } + dl { + position: relative; + height: 100%; + } + :host([type='linear']) { + height: 3px; + } + :host([type='radial']), + :host([type='circular']) { + height: 300px; + } + :host([type='linear']) dl { + background-color: currentColor; + color: rgb(var(--tone-gray-100)); + border-radius: var(--decor-radius-999); + transition-property: transform; + transition-timing-function: ease-out; + transition-duration: .1s; + } + :host([type='linear']) dl:hover { + transform: scaleY(3); + box-shadow: var(--decor-elevation-200); + } + `})),define("consul-ui/components/distribution-meter/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"weg3QSze",block:'{"symbols":["custom","element","&attrs","&default"],"statements":[[8,"custom-element",[],[["@attrs"],[[30,[36,0],[[30,[36,0],["type","\\"linear\\" | \\"radial\\" | \\"circular\\"","linear"],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[11,"distribution-meter"],[17,3],[4,[38,1],[[32,1,["connect"]]],null],[4,[38,2],[[32,1,["disconnect"]]],null],[12],[2,"\\n "],[8,[32,1,["Template"]],[],[["@styles"],[[30,[36,4],[[30,[36,3],["./index.css"],[["from"],["/components/distribution-meter"]]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"slot"],[12],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[18,4,[[30,[36,6],null,[["Meter"],[[30,[36,5],["distribution-meter/meter"],[["type"],[[32,2,["attrs","type"]]]]]]]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["array","did-insert","will-destroy","require","css-map","component","hash"]}',meta:{moduleName:"consul-ui/components/distribution-meter/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/distribution-meter/meter/element",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=(e,t=0)=>{const n=parseFloat(e) +return isNaN(n)?t:n} +e.default=e=>class extends e{attributeChangedCallback(e,n,r){const a=this +switch(e){case"percentage":{let e=a +for(;e;){const n=e.nextElementSibling,r=n?t(n.style.getPropertyValue("--aggregated-percentage")):0,a=t(e.getAttribute("percentage"))+r +e.style.setProperty("--aggregated-percentage",a),e.setAttribute("aggregated-percentage",a),e=e.previousElementSibling}break}}}}})),define("consul-ui/components/distribution-meter/meter/index.css",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=e=>e` + /*@import '~/styles/base/decoration/visually-hidden.css';*/ + + :host(.critical) { + color: rgb(var(--tone-red-500)); + } + :host(.warning) { + color: rgb(var(--tone-orange-500)); + } + :host(.passing) { + color: rgb(var(--tone-green-500)); + } + + :host { + position: absolute; + top: 0; + height: 100%; + + transition-timing-function: ease-out; + transition-duration: .5s; + } + dt, dd meter { + animation-name: visually-hidden; + animation-fill-mode: forwards; + animation-play-state: paused; + } + + :host(.type-linear) { + transition-property: width; + width: calc(var(--aggregated-percentage) * 1%); + height: 100%; + background-color: currentColor; + border-radius: var(--decor-radius-999); + } + + :host svg { + height: 100%; + } + :host(.type-radial), + :host(.type-circular) { + transition-property: none; + } + :host(.type-radial) dd, + :host(.type-circular) dd { + width: 100%; + height: 100%; + } + :host(.type-radial) circle, + :host(.type-circular) circle { + transition-timing-function: ease-out; + transition-duration: .5s; + pointer-events: stroke; + transition-property: stroke-dashoffset, stroke-width; + transform: rotate(-90deg); + transform-origin: 50%; + fill: transparent; + stroke: currentColor; + stroke-dasharray: 100, 100; + stroke-dashoffset: calc(calc(100 - var(--aggregated-percentage)) * 1px); + } + :host([aggregated-percentage='100']) circle { + stroke-dasharray: 0 !important; + } + :host([aggregated-percentage='0']) circle { + stroke-dasharray: 0, 100 !important; + } + :host(.type-radial) circle, + :host(.type-circular]) svg { + pointer-events: none; + } + :host(.type-radial) circle { + stroke-width: 32; + } + :host(.type-circular) circle { + stroke-width: 14; + } + `})),define("consul-ui/components/distribution-meter/meter/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"pCg7idGT",block:'{"symbols":["custom","element","@type","&attrs"],"statements":[[8,"custom-element",[],[["@class","@attrs","@cssprops"],[[30,[36,0],["./element"],[["from"],["/components/distribution-meter/meter"]]],[30,[36,1],[[30,[36,1],["percentage","number",0],null],[30,[36,1],["description","string",""],null]],null],[30,[36,1],[[30,[36,1],["--percentage","percentage","[percentage]"],null],[30,[36,1],["--aggregated-percentage","percentage",[29]],null]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[11,"distribution-meter-meter"],[16,0,[30,[36,3],[[30,[36,1],[[30,[36,2],["type-",[32,3]],null],[32,3]],null]],null]],[17,4],[4,[38,4],[[32,1,["connect"]]],null],[4,[38,5],[[32,1,["disconnect"]]],null],[12],[2,"\\n "],[8,[32,1,["Template"]],[],[["@styles"],[[30,[36,6],[[30,[36,0],["/styles/base/decoration/visually-hidden.css"],[["from"],["/components/distribution-meter/meter"]]],[30,[36,0],["./index.css"],[["from"],["/components/distribution-meter/meter"]]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"dt"],[12],[1,[32,2,["attrs","description"]]],[13],[2,"\\n "],[10,"dd"],[15,"aria-label",[30,[36,2],[[32,2,["attrs","percentage"]],"%"],null]],[12],[2,"\\n "],[10,"meter"],[14,"min","0"],[14,"max","100"],[15,2,[32,2,["attrs","percentage"]]],[12],[2,"\\n "],[10,"slot"],[12],[1,[30,[36,2],[[32,2,["attrs","percentage"]],"%"],null]],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,9],[[30,[36,8],[[30,[36,7],[[32,3],"circular"],null],[30,[36,7],[[32,3],"radial"],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"svg"],[14,"aria-hidden","true"],[14,"viewBox","0 0 32 32"],[14,"clip-path","circle()"],[12],[2,"\\n "],[10,"circle"],[14,"r","16"],[14,"cx","16"],[14,"cy","16"],[12],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n\\n"]],"parameters":[1,2]}]]],[2,"\\n\\n"]],"hasEval":false,"upvars":["require","array","concat","class-map","did-insert","will-destroy","css-map","eq","or","if"]}',meta:{moduleName:"consul-ui/components/distribution-meter/meter/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/ember-collection",["exports","ember-collection/components/ember-collection"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/ember-native-scrollable",["exports","ember-collection/components/ember-native-scrollable"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})) +define("consul-ui/components/empty-state/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"iwlkCEdF",block:'{"symbols":["&default","&attrs"],"statements":[[18,1,null],[2,"\\n"],[11,"div"],[24,0,"empty-state"],[17,2],[12],[2,"\\n"],[6,[37,6],[[35,8]],null,[["default"],[{"statements":[[2," "],[10,"header"],[12],[2,"\\n"],[6,[37,7],null,[["name"],["header"]],[["default"],[{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]}]]],[6,[37,7],null,[["name"],["subheader"]],[["default"],[{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,7],null,[["name"],["body"]],[["default"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n "],[18,1,null],[2,"\\n"],[6,[37,6],[[35,0]],null,[["default"],[{"statements":[[2," "],[8,"action",[[4,[38,1],["click",[35,0]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,2],["settings://consul:token"],null],[30,[36,5],[[32,0],[30,[36,4],[[35,3]],null]],[["value"],["data"]]]]],null],[2,"\\n"],[6,[37,6],[[35,3,["AccessorID"]]],null,[["default","else"],[{"statements":[[2," Log in with a different token\\n"]],"parameters":[]},{"statements":[[2," Log in\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,7],null,[["name"],["actions"]],[["default"],[{"statements":[[2," "],[10,"ul"],[12],[2,"\\n "],[18,1,null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["login","on","uri","token","mut","action","if","yield-slot","hasHeader"]}',meta:{moduleName:"consul-ui/components/empty-state/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:"",willRender:function(){this._super(...arguments),Ember.set(this,"hasHeader",this._isRegistered("header")||this._isRegistered("subheader"))}})) +e.default=r})),define("consul-ui/components/error-state/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"hckyXX72",block:'{"symbols":["@error","@login"],"statements":[[6,[37,3],[[30,[36,5],[[32,1,["status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"empty-state",[[16,0,[30,[36,0],["status-",[32,1,["status"]]],null]]],[["@login"],[[32,2]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,2],[[32,1,["message"]],"Consul returned an error"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,3],[[32,1,["status"]]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["subheader"]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n Error "],[1,[32,1,["status"]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,3],[[32,1,["detail"]]],null,[["default","else"],[{"statements":[[2," "],[1,[32,1,["detail"]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," You may have visited a URL that is loading an unknown resource, so you can try going back to the root or try re-submitting your ACL Token/SecretID by going back to ACLs.\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"back-link"],[12],[2,"\\n "],[8,"action",[],[["@href"],[[30,[36,4],["index"],null]]],[["default"],[{"statements":[[2,"\\n Go back\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[8,"action",[],[["@href","@external"],[[31,[[30,[36,1],["CONSUL_DOCS_URL"],null]]],true]],[["default"],[{"statements":[[2,"\\n Read the documentation\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[[16,0,[30,[36,0],["status-",[32,1,["status"]]],null]]],[["@login"],[[32,2]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n You are not authorized\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["subheader"]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n Error "],[1,[32,1,["status"]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n You must be granted permissions to view this data. Ask your administrator if you think you should have access.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[8,"action",[],[["@href","@external"],[[31,[[30,[36,1],["CONSUL_DOCS_URL"],null],"/acl/index.html"]],true]],[["default"],[{"statements":[[2,"\\n Read the documentation\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[8,"action",[],[["@href","@external"],[[31,[[30,[36,1],["CONSUL_DOCS_LEARN_URL"],null],"/consul/security-networking/production-acls"]],true]],[["default"],[{"statements":[[2,"\\n Follow the guide\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["concat","env","or","if","href-to","not-eq"]}',meta:{moduleName:"consul-ui/components/error-state/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/event-source/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"9rZp1Dvu",block:'{"symbols":["&default"],"statements":[[18,1,[[30,[36,1],null,[["close"],[[30,[36,0],[[32,0],"close"],null]]]]]],[2,"\\n"]],"hasEval":false,"upvars":["action","hash"]}',meta:{moduleName:"consul-ui/components/event-source/index.hbs"}}),n=function(e,t,n,r=((e=null)=>"function"==typeof e?e():null)){const a=e[t] +return a!==n&&r(a,n),Ember.set(e,t,n)} +var r=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",dom:Ember.inject.service("dom"),logger:Ember.inject.service("logger"),data:Ember.inject.service("data-source/service"),closeOnDestroy:!0,onerror:function(e){this.logger.execute(e.error)},init:function(){this._super(...arguments),this._listeners=this.dom.listeners()},willDestroyElement:function(){this.closeOnDestroy&&this.actions.close.apply(this,[]),this._listeners.remove(),this._super(...arguments)},didReceiveAttrs:function(){this._super(...arguments),Ember.get(this,"src.configuration.uri")!==Ember.get(this,"source.configuration.uri")&&this.actions.open.apply(this,[])},actions:{open:function(){n(this,"source",this.data.open(this.src,this),e=>{void 0!==e&&this.data.close(e,this)}),n(this,"proxy",this.src,e=>{void 0!==e&&e.destroy()}) +const e=e=>{try{const t=Ember.get(e,"error.errors.firstObject") +"429"!==Ember.get(t||{},"status")&&this.onerror(e),this.logger.execute(e)}catch(e){this.logger.execute(e)}},t=this._listeners.add(this.source,{error:t=>{e(t)}}) +n(this,"_remove",t)},close:function(){void 0!==this.source&&(this.data.close(this.source,this),n(this,"_remove",void 0),Ember.set(this,"source",void 0)),void 0!==this.proxy&&this.proxy.destroy()}}})) +e.default=r})),define("consul-ui/components/flash-message",["exports","ember-cli-flash/components/flash-message"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/form-component/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"YBF10tF/",block:'{"symbols":["&default"],"statements":[[18,1,null]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/form-component/index.hbs"}}),r=/([^[\]])+/g +var a=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:"",onreset:function(){},onchange:function(){},onerror:function(){},onsuccess:function(){},data:Ember.computed.alias("form.data"),item:Ember.computed.alias("form.data"),dom:Ember.inject.service("dom"),container:Ember.inject.service("form"),actions:{change:function(e,t){let n=this.dom.normalizeEvent(e,t) +const a=[...n.target.name.matchAll(r)],l=a[a.length-1][0] +let s +s=-1===l.indexOf("[")?`${this.type}[${l}]`:l,this.form.handleEvent(n,s),this.onchange({target:this})}}})) +e.default=a})),define("consul-ui/components/form-group/element/checkbox/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"dFj6ezet",block:'{"symbols":["@name","@value","&attrs","@didinsert","@onchange"],"statements":[[11,"input"],[16,3,[32,1]],[16,2,[32,2]],[17,3],[24,4,"checkbox"],[4,[38,1],[[30,[36,0],[[32,4]],null]],null],[4,[38,2],["change",[30,[36,0],[[32,5]],null]],null],[12],[13],[2,"\\n"]],"hasEval":false,"upvars":["optional","did-insert","on"]}',meta:{moduleName:"consul-ui/components/form-group/element/checkbox/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/form-group/element/error/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Z2yKEUoj",block:'{"symbols":["&attrs","&default"],"statements":[[11,"strong"],[24,"role","alert"],[17,1],[12],[2,"\\n "],[18,2,null],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/form-group/element/error/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/form-group/element/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i +function o(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const c=Ember.HTMLBars.template({id:"F1rSsI4z",block:'{"symbols":["el","&attrs","&default","@name","@group"],"statements":[[6,[37,9],[[30,[36,8],null,[["Element","Text","Checkbox","Radio","Label","Error","state"],[[30,[36,5],["form-group/element"],[["group","name"],[[32,5],[32,4]]]],[30,[36,5],["form-group/element/text"],[["didinsert","name","oninput"],[[30,[36,7],[[32,0],[32,0,["connect"]]],null],[32,0,["name"]],[30,[36,7],[[32,0],[30,[36,6],[[32,0,["touched"]]],null],true],null]]]],[30,[36,5],["form-group/element/checkbox"],[["didinsert","name","onchange"],[[30,[36,7],[[32,0],[32,0,["connect"]]],null],[32,0,["name"]],[30,[36,7],[[32,0],[30,[36,6],[[32,0,["touched"]]],null],true],null]]]],[30,[36,5],["form-group/element/radio"],[["didinsert","name","onchange"],[[30,[36,7],[[32,0],[32,0,["connect"]]],null],[32,0,["name"]],[30,[36,7],[[32,0],[30,[36,6],[[32,0,["touched"]]],null],true],null]]]],[30,[36,5],["form-group/element/label"],null],[30,[36,5],["form-group/element/error"],null],[35,0]]]]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,4],[[32,0,["type"]],[30,[36,3],["radiogroup","checkbox-group","checkboxgroup"],null]],null]],null,[["default","else"],[{"statements":[[2," "],[11,"div"],[16,"data-property",[32,0,["prop"]]],[16,0,[31,["type-",[32,0,["type"]],[30,[36,2],[[30,[36,1],[[35,0],"error"],null]," has-error"],null]]]],[17,2],[12],[2,"\\n "],[18,3,[[32,1]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[11,"label"],[16,"data-property",[32,0,["prop"]]],[16,0,[31,["type-",[32,0,["type"]],[30,[36,2],[[30,[36,1],[[35,0],"error"],null]," has-error"],null]]]],[17,2],[12],[2,"\\n "],[18,3,[[32,1]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["state","state-matches","if","array","contains","component","mut","action","hash","let"]}',meta:{moduleName:"consul-ui/components/form-group/element/index.hbs"}}) +let d=(n=Ember._tracked,r=Ember._tracked,a=Ember._action,l=class extends t.default{constructor(...e){super(...e),o(this,"el",s,this),o(this,"touched",i,this)}get type(){return void 0!==this.el?this.el.dataset.type||this.el.getAttribute("type")||this.el.getAttribute("role"):this.args.type}get name(){return void 0!==this.args.group?`${this.args.group.name}[${this.args.name}]`:this.args.name}get prop(){return""+this.args.name.toLowerCase().split(".").join("-")}get state(){const e=this.touched&&this.args.error +return{matches:t=>"error"===t&&e}}connect(e){this.el=e}},s=u(l.prototype,"el",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i=u(l.prototype,"touched",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),u(l.prototype,"connect",[a],Object.getOwnPropertyDescriptor(l.prototype,"connect"),l.prototype),l) +e.default=d,Ember._setComponentTemplate(c,d)})),define("consul-ui/components/form-group/element/label/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"ND/d/+Dz",block:'{"symbols":["&attrs","&default"],"statements":[[11,"span"],[24,0,"form-elements-label label"],[17,1],[12],[2,"\\n "],[18,2,null],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/form-group/element/label/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/form-group/element/radio/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Pv6QuCmR",block:'{"symbols":["@name","@value","&attrs","@didinsert","@onchange"],"statements":[[11,"input"],[16,3,[32,1]],[16,2,[32,2]],[17,3],[24,4,"radio"],[4,[38,1],[[30,[36,0],[[32,4]],null]],null],[4,[38,2],["change",[30,[36,0],[[32,5]],null]],null],[12],[13],[2,"\\n"]],"hasEval":false,"upvars":["optional","did-insert","on"]}',meta:{moduleName:"consul-ui/components/form-group/element/radio/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/form-group/element/text/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"RUJvSrX2",block:'{"symbols":["@name","@value","&attrs","@didinsert","@oninput"],"statements":[[11,"input"],[16,3,[32,1]],[16,2,[32,2]],[17,3],[24,4,"text"],[4,[38,1],[[30,[36,0],[[32,4]],null]],null],[4,[38,2],["input",[30,[36,0],[[32,5]],null]],null],[12],[13],[2,"\\n"]],"hasEval":false,"upvars":["optional","did-insert","on"]}',meta:{moduleName:"consul-ui/components/form-group/element/text/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/form-group/index",["exports","@glimmer/component"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"PFK3HI8F",block:'{"symbols":["&default"],"statements":[[18,1,[[30,[36,1],null,[["Element"],[[30,[36,0],["form-group/element"],[["group"],[[32,0]]]]]]]]],[2,"\\n"]],"hasEval":false,"upvars":["component","hash"]}',meta:{moduleName:"consul-ui/components/form-group/index.hbs"}}) +class r extends t.default{get name(){return this.args.name}}e.default=r,Ember._setComponentTemplate(n,r)})),define("consul-ui/components/form-input/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"TcGpchvk",block:'{"symbols":["help","@name","@chart","&attrs","&default","@help","@validations"],"statements":[[11,"label"],[16,0,[30,[36,2],["form-input",[30,[36,0],[[30,[36,1],[[32,3,["state","context","errors"]],[32,2]],null]," has-error"],null]],null]],[17,4],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n "],[18,5,[[30,[36,3],["label"],null]]],[2,"\\n "],[13],[2,"\\n "],[18,5,[[30,[36,3],["input"],null]]],[2,"\\n"],[6,[37,5],[[30,[36,4],[[32,7,["help"]],[32,6]],null]],null,[["default"],[{"statements":[[6,[37,0],[[32,1]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"\\n "],[1,[32,1]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]],[2," "],[8,"state",[],[["@state","@matches"],[[32,3,["state"]],"error"]],[["default"],[{"statements":[[2,"\\n"],[2," "],[10,"strong"],[14,"role","alert"],[12],[1,[30,[36,1],[[30,[36,1],[[32,3,["state","context","errors"]],[32,2]],null],"message"],null]],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["if","get","concat","-named-block-invocation","or","let"]}',meta:{moduleName:"consul-ui/components/form-input/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/freetext-filter/index",["exports","@glimmer/component"],(function(e,t){var n,r,a +function l(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const s=Ember.HTMLBars.template({id:"lUCYCwl6",block:'{"symbols":["&attrs","@value","&default"],"statements":[[11,"div"],[24,0,"freetext-filter"],[17,1],[12],[2,"\\n "],[10,"label"],[14,0,"type-search"],[12],[2,"\\n "],[10,"span"],[14,0,"freetext-filter_label"],[12],[2,"Search"],[13],[2,"\\n "],[10,"input"],[14,0,"freetext-filter_input"],[15,"onsearch",[30,[36,0],[[32,0],[32,0,["change"]]],null]],[15,"oninput",[30,[36,0],[[32,0],[32,0,["change"]]],null]],[15,"onkeydown",[30,[36,0],[[32,0],[32,0,["keydown"]]],null]],[14,3,"s"],[15,2,[32,2]],[15,"placeholder",[32,0,["placeholder"]]],[14,"autofocus","autofocus"],[14,4,"search"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[18,3,null],[2,"\\n"],[13]],"hasEval":false,"upvars":["action"]}',meta:{moduleName:"consul-ui/components/freetext-filter/index.hbs"}}) +let i=(n=Ember._action,r=Ember._action,l((a=class extends t.default{get placeholder(){return this.args.placeholder||"Search"}get onsearch(){return this.args.onsearch||(()=>{})}change(e){this.onsearch(e)}keydown(e){13===e.keyCode&&e.preventDefault()}}).prototype,"change",[n],Object.getOwnPropertyDescriptor(a.prototype,"change"),a.prototype),l(a.prototype,"keydown",[r],Object.getOwnPropertyDescriptor(a.prototype,"keydown"),a.prototype),a) +e.default=i,Ember._setComponentTemplate(s,i)})),define("consul-ui/components/hashicorp-consul/index",["exports","@glimmer/component"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const l=Ember.HTMLBars.template({id:"GQy+KSaK",block:'{"symbols":["__arg0","__arg1","selector","disclosure","panel","menu","app","flash","status","type","notice","&default","@dc","@partition","@nspace","@onchange","@dcs","&attrs"],"statements":[[8,"app",[[24,0,"hashicorp-consul"],[17,18]],[["@namedBlocksInfo"],[[30,[36,4],null,[["notifications","home-nav","main-nav","complementary-nav","main","content-info"],[1,0,0,0,0,0]]]]],[["default"],[{"statements":[[6,[37,3],[[30,[36,2],[[32,1],"notifications"],null]],null,[["default","else"],[{"statements":[[6,[37,17],[[32,2]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,21],[[30,[36,20],[[30,[36,20],[[35,19,["queue"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,7,["Notification"]],[],[["@delay","@sticky"],[[30,[36,18],[[32,8,["timeout"]],[32,8,["extendedTimeout"]]],null],[32,8,["sticky"]]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[32,8,["dom"]]],null,[["default","else"],[{"statements":[[2," "],[2,[32,8,["dom"]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,17],[[30,[36,16],[[32,8,["type"]]],null],[30,[36,16],[[32,8,["action"]]],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[[24,"role","alert"],[16,0,[30,[36,1],[[32,9]," notification-",[32,10]],null]],[24,"data-notification",""]],[["@type"],[[32,9]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,11,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"\\n "],[1,[30,[36,15],[[32,9]],null]],[2,"!\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,11,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,3],[[30,[36,13],[[32,10],"logout"],null]],null,[["default","else"],[{"statements":[[6,[37,3],[[30,[36,13],[[32,9],"success"],null]],null,[["default","else"],[{"statements":[[2," You are now logged out.\\n"]],"parameters":[]},{"statements":[[2," There was an error logging out.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,13],[[32,10],"authorize"],null]],null,[["default","else"],[{"statements":[[6,[37,3],[[30,[36,13],[[32,9],"success"],null]],null,[["default","else"],[{"statements":[[2," You are now logged in.\\n"]],"parameters":[]},{"statements":[[2," There was an error, please check your SecretID/Token\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,14],[[30,[36,13],[[32,10],"use"],null],[30,[36,13],[[32,8,["model"]],"token"],null]],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/token/notifications",[],[["@type","@status","@item","@error"],[[32,10],[32,9],[32,8,["item"]],[32,8,["error"]]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,13],[[32,8,["model"]],"intention"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/intention/notifications",[],[["@type","@status","@item","@error"],[[32,10],[32,9],[32,8,["item"]],[32,8,["error"]]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,13],[[32,8,["model"]],"role"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/role/notifications",[],[["@type","@status","@item","@error"],[[32,10],[32,9],[32,8,["item"]],[32,8,["error"]]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,13],[[32,8,["model"]],"policy"],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/policy/notifications",[],[["@type","@status","@item","@error"],[[32,10],[32,9],[32,8,["item"]],[32,8,["error"]]]],null],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[11]}]]],[2,"\\n"]],"parameters":[9,10]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[7]}]]]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,1],"home-nav"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"a"],[15,6,[30,[36,7],["index"],null]],[12],[8,"consul/logo",[],[[],[]],null],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,1],"main-nav"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"ul"],[12],[2,"\\n "],[8,"consul/datacenter/selector",[],[["@dc","@partition","@nspace","@dcs"],[[32,13],[32,14],[32,15],[32,17]]],null],[2,"\\n "],[8,"consul/partition/selector",[],[["@dc","@partition","@nspace","@partitions","@onchange"],[[32,13],[32,14],[32,15],[32,0,["partitions"]],[30,[36,11],[[32,0],[30,[36,10],[[32,0,["partitions"]]],null]],[["value"],["data"]]]]],null],[2,"\\n "],[8,"consul/nspace/selector",[],[["@dc","@partition","@nspace","@nspaces","@onchange"],[[32,13],[32,14],[32,15],[32,0,["nspaces"]],[30,[36,11],[[32,0],[30,[36,10],[[32,0,["nspaces"]]],null]],[["value"],["data"]]]]],null],[2,"\\n"],[6,[37,3],[[30,[36,12],["access overview"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[15,0,[30,[36,9],[[30,[36,8],["is-active",[30,[36,6],["dc.show",[32,13,["Name"]]],null]],null]],null]],[12],[2,"\\n "],[8,"action",[],[["@href"],[[30,[36,7],["dc.show",[32,13,["Name"]]],null]]],[["default"],[{"statements":[[2,"\\n Overview\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,3],[[30,[36,12],["read services"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[15,0,[30,[36,3],[[30,[36,6],["dc.services",[32,13,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,7],["dc.services",[32,13,["Name"]]],null]],[12],[2,"Services"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,3],[[30,[36,12],["read nodes"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[15,0,[30,[36,3],[[30,[36,6],["dc.nodes",[32,13,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,7],["dc.nodes",[32,13,["Name"]]],null]],[12],[2,"Nodes"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,3],[[30,[36,12],["read kv"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[15,0,[30,[36,3],[[30,[36,6],["dc.kv",[32,13,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,7],["dc.kv",[32,13,["Name"]]],null]],[12],[2,"Key/Value"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,3],[[30,[36,12],["read intentions"],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[15,0,[30,[36,3],[[30,[36,6],["dc.intentions",[32,13,["Name"]]],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,7],["dc.intentions",[32,13,["Name"]]],null]],[12],[2,"Intentions"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"consul/acl/selector",[],[["@dc","@partition","@nspace"],[[32,13],[32,14],[32,15]]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,1],"complementary-nav"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"ul"],[12],[2,"\\n "],[8,"debug/navigation",[],[[],[]],null],[2,"\\n "],[10,"li"],[12],[2,"\\n "],[8,"disclosure-menu",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4,["Action"]],[[4,[38,5],["click",[32,4,["toggle"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Help\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,4,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Menu"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Separator"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n Consul v"],[1,[30,[36,0],["CONSUL_VERSION"],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Item"]],[[24,0,"docs-link"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Action"]],[],[["@href","@external"],[[30,[36,0],["CONSUL_DOCS_URL"],null],true]],[["default"],[{"statements":[[2,"\\n Documentation\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Item"]],[[24,0,"learn-link"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Action"]],[],[["@href","@external"],[[30,[36,1],[[30,[36,0],["CONSUL_DOCS_LEARN_URL"],null],"/consul"],null],true]],[["default"],[{"statements":[[2,"\\n HashiCorp Learn\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Separator"]],[],[[],[]],null],[2,"\\n "],[8,[32,6,["Item"]],[[24,0,"feedback-link"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Action"]],[],[["@href","@external"],[[30,[36,0],["CONSUL_REPO_ISSUES_URL"],null],true]],[["default"],[{"statements":[[2,"\\n Provide Feedback\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[15,0,[30,[36,3],[[30,[36,6],["settings"],null],"is-active"],null]],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,7],["settings"],[["params"],[[30,[36,4],null,[["nspace","partition"],[[29],[29]]]]]]]],[12],[2,"\\n Settings\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"consul/token/selector",[],[["@dc","@partition","@nspace","@onchange"],[[32,13],[32,14],[32,15],[32,16]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"tokenSelector",[32,3]]],null],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,1],"main"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[18,12,[[30,[36,4],null,[["login"],[[30,[36,3],[[32,0,["tokenSelector"]],[32,0,["tokenSelector"]],[30,[36,4],null,[["open","close"],[[29],[29]]]]],null]]]]]],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,1],"content-info"],null]],null,[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Consul v"],[1,[30,[36,0],["CONSUL_VERSION"],null]],[2,"\\n "],[13],[2,"\\n "],[2,[30,[36,1],["\x3c!-- ",[30,[36,0],["CONSUL_GIT_SHA"],null],"--\x3e"],null]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["env","concat","-is-named-block-invocation","if","hash","on","is-href","href-to","array","class-map","mut","action","can","eq","or","capitalize","lowercase","let","sub","flashMessages","-track-array","each"]}',meta:{moduleName:"consul-ui/components/hashicorp-consul/index.hbs"}}) +let s=(n=Ember.inject.service("flashMessages"),r=class extends t.default{constructor(...e){var t,n,r,l +super(...e),t=this,n="flashMessages",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}},i=r.prototype,o="flashMessages",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s,Ember._setComponentTemplate(l,s)})),define("consul-ui/components/informed-action/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"VuPbMP+L",block:'{"symbols":["&attrs","&default"],"statements":[[11,"div"],[24,0,"informed-action"],[17,1],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[18,2,[[30,[36,0],["header"],null]]],[2,"\\n "],[13],[2,"\\n "],[18,2,[[30,[36,0],["body"],null]]],[2,"\\n "],[13],[2,"\\n "],[10,"ul"],[12],[2,"\\n "],[18,2,[[30,[36,0],["actions"],null],[30,[36,2],null,[["Action"],[[30,[36,1],["anonymous"],[["tagName"],["li"]]]]]]]],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["-named-block-invocation","component","hash"]}',meta:{moduleName:"consul-ui/components/informed-action/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/ivy-codemirror",["exports","ivy-codemirror/components/ivy-codemirror"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/jwt-source/index",["exports","@glimmer/component","consul-ui/utils/dom/event-source"],(function(e,t,n){var r,a,l,s,i +function o(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let c=(r=Ember.inject.service("repository/oidc-provider"),a=Ember.inject.service("dom"),l=class extends t.default{constructor(){super(...arguments),o(this,"repo",s,this),o(this,"dom",i,this),this.source&&this.source.close(),this._listeners=this.dom.listeners(),this.source=(0,n.fromPromise)(this.repo.findCodeByURL(this.args.src)),this._listeners.add(this.source,{message:e=>this.onchange(e),error:e=>this.onerror(e)})}onchange(e){"function"==typeof this.args.onchange&&this.args.onchange(...arguments)}onerror(e){"function"==typeof this.args.onerror&&this.args.onerror(...arguments)}willDestroy(){super.willDestroy(...arguments),this.source&&this.source.close(),this.repo.close(),this._listeners.remove()}},s=u(l.prototype,"repo",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i=u(l.prototype,"dom",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l) +e.default=c})),define("consul-ui/components/list-collection/index",["exports","ember-collection/components/ember-collection","ember-collection/layouts/percentage-columns","block-slots"],(function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const a=Ember.HTMLBars.template({id:"sapn9cV8",block:'{"symbols":["slice","more","item","index","cell","&default","&attrs"],"statements":[[11,"div"],[16,0,[31,["list-collection list-collection-scroll-",[34,26]]]],[23,5,[30,[36,28],["height:",[35,27,["height"]],"px"],null]],[16,1,[34,29]],[17,7],[12],[2,"\\n"],[18,6,null],[2,"\\n"],[6,[37,2],[[30,[36,20],[[35,26],"virtual"],null]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,21],["resize",[30,[36,4],[[32,0],"resize"],null]],null]],[2,"\\n "],[8,"ember-native-scrollable",[],[["@tagName","@content-size","@scroll-left","@scroll-top","@scrollChange","@clientSizeChange"],["ul",[34,22],[34,23],[34,24],[30,[36,4],[[32,0],"scrollChange"],null],[30,[36,4],[[32,0],"clientSizeChange"],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[12],[13],[6,[37,14],[[30,[36,13],[[30,[36,13],[[35,25]],null]],null]],null,[["default"],[{"statements":[[10,"li"],[15,"onclick",[30,[36,4],[[32,0],"click"],null]],[22,5,[32,5,["style"]]],[15,0,[30,[36,2],[[35,8],[30,[36,2],[[30,[36,9],[[35,8]],[["item"],[[32,5,["item"]]]]],"linkable"],null]],null]],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[10,"div"],[14,0,"header"],[12],[18,6,[[32,5,["item"]],[32,5,["index"]]]],[13]],"parameters":[]}]]],[2,"\\n "],[8,"yield-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[10,"div"],[14,0,"detail"],[12],[18,6,[[32,5,["item"]],[32,5,["index"]]]],[13]],"parameters":[]}]]],[2,"\\n "],[8,"yield-slot",[],[["@name","@params"],["actions",[30,[36,12],[[30,[36,11],["more-popover-menu"],[["expanded","onchange"],[[30,[36,2],[[30,[36,20],[[35,19],[32,5,["index"]]],null],true,false],null],[30,[36,4],[[32,0],"change",[32,5,["index"]]],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"actions"],[12],[2,"\\n "],[18,6,[[32,5,["item"]],[32,5,["index"]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13]],"parameters":[5]}]]]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,6],[[30,[36,2],[[30,[36,17],[[35,15],[30,[36,10],[[32,0,["expand"]]],null]],null],[30,[36,18],[0,[35,15],[35,0]],null],[35,0]],null]],null,[["default"],[{"statements":[[2," "],[10,"ul"],[12],[2,"\\n "],[10,"li"],[14,5,"display: none;"],[12],[13],[6,[37,14],[[30,[36,13],[[30,[36,13],[[32,1]],null]],null]],null,[["default"],[{"statements":[[10,"li"],[15,"onclick",[30,[36,4],[[32,0],"click"],null]],[15,0,[30,[36,2],[[30,[36,10],[[35,8]],null],"linkable",[30,[36,2],[[30,[36,9],[[35,8]],[["item"],[[35,7,["item"]]]]],"linkable"],null]],null]],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[10,"div"],[14,0,"header"],[12],[18,6,[[32,3],[32,4]]],[13]],"parameters":[]}]]],[2,"\\n "],[8,"yield-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[10,"div"],[14,0,"detail"],[12],[18,6,[[32,3],[32,4]]],[13]],"parameters":[]}]]],[2,"\\n "],[8,"yield-slot",[],[["@name","@params"],["actions",[30,[36,12],[[30,[36,11],["more-popover-menu"],[["onchange"],[[30,[36,4],[[32,0],"change",[32,4]],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"actions"],[12],[2,"\\n "],[18,6,[[32,3],[32,4]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13]],"parameters":[3,4]}]]],[13],[2,"\\n"],[6,[37,2],[[30,[36,17],[[35,15],[30,[36,16],[[35,0,["length"]],[35,15]],null]],null]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,5],[[32,1,["length"]],[35,0,["length"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"button"],[15,0,[30,[36,2],[[32,2],"closed"],null]],[15,"onclick",[30,[36,4],[[32,0],[30,[36,3],[[32,0,["expand"]]],null],[32,2]],null]],[14,4,"button"],[12],[2,"\\n"],[6,[37,2],[[32,2]],null,[["default","else"],[{"statements":[[2," View "],[1,[30,[36,1],[[35,0,["length"]],[32,1,["length"]]],null]],[2," more\\n"]],"parameters":[]},{"statements":[[2," View less\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[2]}]]]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["items","sub","if","mut","action","not-eq","let","cell","linkable","is","not","component","block-params","-track-array","each","partial","gt","and","slice","checked","eq","on-window","_contentSize","_scrollLeft","_scrollTop","_cells","scroll","style","concat","guid"]}',meta:{moduleName:"consul-ui/components/list-collection/index.hbs"}}),l=n.default.prototype.formatItemStyle +var s=Ember._setComponentTemplate(a,t.default.extend(r.default,{dom:Ember.inject.service("dom"),tagName:"",height:500,cellHeight:70,checked:null,scroll:"virtual",init:function(){this._super(...arguments),this.columns=[100],this.guid=this.dom.guid(this)},didInsertElement:function(){this._super(...arguments),this.$element=this.dom.element("#"+this.guid),"virtual"===this.scroll&&this.actions.resize.apply(this,[{target:this.dom.viewport()}])},didReceiveAttrs:function(){this._super(...arguments),this._cellLayout=this["cell-layout"]=new n.default(Ember.get(this,"items.length"),Ember.get(this,"columns"),Ember.get(this,"cellHeight")) +const e=this +this["cell-layout"].formatItemStyle=function(t){let n=l.apply(this,arguments) +return e.checked===t&&(n+=";z-index: 1"),n}},style:Ember.computed("height",(function(){return"virtual"!==this.scroll?{}:{height:Ember.get(this,"height")}})),actions:{resize:function(e){const t=Ember.get(this,"dom").element('footer[role="contentinfo"]') +if(t){const n=1,r=this.$element.getBoundingClientRect().top+t.clientHeight+n,a=e.target.innerHeight-r +this.set("height",Math.max(0,a)),this.updateItems(),this.updateScrollPosition()}},click:function(e){return this.dom.clickFirstAnchor(e,".list-collection > ul > li")},change:function(e,t={}){if(t.target.checked&&e!==Ember.get(this,"checked")){Ember.set(this,"checked",parseInt(e)),this.$row=this.dom.closest("li",t.target),this.$row.style.zIndex=1 +const n=this.dom.sibling(t.target,"div") +n.getBoundingClientRect().top+n.clientHeight>this.dom.element('footer[role="contentinfo"]').getBoundingClientRect().top?n.classList.add("above"):n.classList.remove("above")}else{this.dom.sibling(t.target,"div").classList.remove("above"),Ember.set(this,"checked",null),this.$row.style.zIndex=null}}}})) +e.default=s})),define("consul-ui/components/maybe-in-element",["exports","ember-maybe-in-element/components/maybe-in-element"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/menu-panel/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"NsIcnIv+",block:'{"symbols":["api","&default","&attrs"],"statements":[[18,2,null],[2,"\\n"],[6,[37,8],[[30,[36,7],null,[["change"],[[30,[36,4],[[32,0],"change"],null]]]]],null,[["default"],[{"statements":[[11,"div"],[16,0,[30,[36,3],[[30,[36,1],["menu-panel"],null],[30,[36,1],["menu-panel-deprecated"],null],[30,[36,1],[[35,2]],null],[30,[36,1],[[35,0],"confirmation"],null]],null]],[4,[38,5],[[30,[36,4],[[32,0],"connect"],null]],null],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["controls"]],[["default"],[{"statements":[[2,"\\n "],[18,2,[[32,1]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,6],null,[["name"],["header"]],[["default","else"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n "],[18,2,[[32,1]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[],"parameters":[]}]]],[2," "],[11,"ul"],[24,"role","menu"],[17,3],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n "],[18,2,[[32,1]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["isConfirmation","array","position","class-map","action","did-insert","yield-slot","hash","let"]}',meta:{moduleName:"consul-ui/components/menu-panel/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:"",dom:Ember.inject.service("dom"),isConfirmation:!1,actions:{connect:function(e){Ember.run.next(()=>{if(!this.isDestroyed){const t=this.dom.element('li:only-child > [role="menu"]:first-child',e) +Ember.set(this,"isConfirmation",void 0!==t)}})},change:function(e){const t=e.target.getAttribute("id"),n=this.dom.element(`[for='${t}']`),r=this.dom.element("[role=menu]",n.parentElement),a=this.dom.closest(".menu-panel",r) +if(e.target.checked){r.style.display="block" +const e=r.offsetHeight+2 +a.style.maxHeight=a.style.minHeight=e+"px"}else r.style.display=null,a.style.maxHeight=null,a.style.minHeight="0"}}})) +e.default=r})),define("consul-ui/components/menu/action/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"H3aA1fem",block:'{"symbols":["&attrs","@href","@external","@disclosure","&default"],"statements":[[8,"action",[[24,"role","menuitem"],[17,1],[4,[38,2],["click",[30,[36,1],[[32,2],[32,4,["close"]],[30,[36,0],null,null]],null]],null]],[["@href","@external"],[[32,2],[32,3]]],[["default"],[{"statements":[[2,"\\n "],[18,5,null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["noop","if","on"]}',meta:{moduleName:"consul-ui/components/menu/action/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/menu/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"grZDhn10",block:'{"symbols":["@pager","@disclosure","@event","@onclose","&default"],"statements":[[11,"ul"],[24,"role","menu"],[23,5,[30,[36,4],[[30,[36,3],["height",[30,[36,2],[[30,[36,1],[[32,1],[30,[36,0],[[32,1,["type"]],"native-scroll"],null]],null],[32,1,["totalHeight"]]],null],"px"],null],[30,[36,3],["--paged-start",[30,[36,2],[[30,[36,1],[[32,1],[30,[36,0],[[32,1,["type"]],"native-scroll"],null]],null],[32,1,["startHeight"]]],null],"px"],null]],null]],[4,[38,6],[[30,[36,5],[[32,1,["pane"]]],null]],null],[4,[38,8],null,[["onclose","openEvent"],[[30,[36,7],[[32,4],[32,2,["close"]]],null],[30,[36,7],[[32,3],[32,2,["event"]]],null]]]],[12],[2,"\\n "],[18,5,[[30,[36,10],null,[["Action","Item","Separator","items"],[[30,[36,9],["menu/action"],[["disclosure"],[[32,2]]]],[30,[36,9],["menu/item"],null],[30,[36,9],["menu/separator"],null],[32,1,["items"]]]]]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["not-eq","and","if","array","style-map","optional","did-insert","or","aria-menu","component","hash"]}',meta:{moduleName:"consul-ui/components/menu/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/menu/item/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"50p8S2ab",block:'{"symbols":["&attrs","&default"],"statements":[[11,"li"],[24,"role","none"],[17,1],[12],[2,"\\n "],[18,2,null],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/menu/item/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/menu/separator/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"TK+1HboX",block:'{"symbols":["&attrs","&default"],"statements":[[11,"li"],[24,"role","separator"],[17,1],[12],[18,2,null],[13],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/menu/separator/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/modal-dialog/index",["exports","block-slots","a11y-dialog"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r=Ember.HTMLBars.template({id:"QFjycrze",block:'{"symbols":["aria","&default","&attrs","@aria"],"statements":[[6,[37,6],[[30,[36,3],null,[["labelledby"],[[30,[36,5],null,null]]]]],null,[["default"],[{"statements":[[2," "],[8,"portal",[],[["@target"],["modal"]],[["default"],[{"statements":[[2,"\\n "],[18,2,null],[2,"\\n "],[11,"div"],[24,0,"modal-dialog"],[24,"aria-hidden","true"],[17,3],[4,[38,1],[[30,[36,0],[[32,0],"connect"],null]],null],[4,[38,2],[[30,[36,0],[[32,0],"disconnect"],null]],null],[12],[2,"\\n "],[10,"div"],[14,"tabindex","-1"],[14,"data-a11y-dialog-hide",""],[12],[13],[2,"\\n "],[10,"div"],[14,0,"modal-dialog-modal"],[14,"role","dialog"],[15,"aria-label",[32,4,["label"]]],[12],[2,"\\n "],[10,"div"],[14,"role","document"],[12],[2,"\\n "],[10,"header"],[14,0,"modal-dialog-header"],[12],[2,"\\n "],[10,"button"],[14,"data-a11y-dialog-hide",""],[14,"aria-label","Close dialog"],[14,4,"button"],[12],[2,"\\n "],[13],[2,"\\n "],[8,"yield-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[18,2,[[30,[36,3],null,[["open","close","aria"],[[30,[36,0],[[32,0],"open"],null],[30,[36,0],[[32,0],"close"],null],[32,1]]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"modal-dialog-body"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[18,2,[[30,[36,3],null,[["open","close","aria"],[[30,[36,0],[[32,0],"open"],null],[30,[36,0],[[32,0],"close"],null],[32,1]]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"footer"],[14,0,"modal-dialog-footer"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name","@params"],["actions",[30,[36,4],[[30,[36,0],[[32,0],"close"],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[18,2,[[30,[36,3],null,[["open","close","aria"],[[30,[36,0],[[32,0],"open"],null],[30,[36,0],[[32,0],"close"],null],[32,1]]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["action","did-insert","will-destroy","hash","block-params","unique-id","let"]}',meta:{moduleName:"consul-ui/components/modal-dialog/index.hbs"}}) +var a=Ember._setComponentTemplate(r,Ember.Component.extend(t.default,{tagName:"",onclose:function(){},onopen:function(){},actions:{connect:function(e){this.dialog=new n.default(e),this.dialog.on("hide",()=>this.onclose({target:e})),this.dialog.on("show",()=>this.onopen({target:e})),this.open&&this.dialog.show()},disconnect:function(){this.dialog.destroy()},open:function(){this.dialog.show()},close:function(){this.dialog.hide()}}})) +e.default=a})),define("consul-ui/components/modal-layer/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"SGKsWSq5",block:'{"symbols":["&attrs"],"statements":[[11,"div"],[24,0,"modal-layer"],[17,1],[12],[2,"\\n "],[8,"portal-target",[],[["@name","@multiple"],["modal",true]],null],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/modal-layer/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/more-popover-menu/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"tD2XBvHN",block:'{"symbols":["components","api","&attrs","&default"],"statements":[[11,"div"],[24,0,"more-popover-menu"],[17,3],[12],[2,"\\n "],[8,"popover-menu",[],[["@expanded","@onchange","@keyboardAccess"],[[34,0],[30,[36,2],[[32,0],[35,1]],null],false]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["trigger"]],[["default"],[{"statements":[[2,"\\n More\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n "],[18,4,[[32,1,["MenuItem"]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1,2]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["expanded","onchange","action"]}',meta:{moduleName:"consul-ui/components/more-popover-menu/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})),define("consul-ui/components/notice/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"CHmd0+dq",block:'{"symbols":["@type","&attrs","&default"],"statements":[[11,"div"],[16,0,[31,["notice ",[30,[36,0],[[32,1],"info"],null]]]],[17,2],[12],[2,"\\n"],[18,3,[[30,[36,2],null,[["Header","Body","Footer"],[[30,[36,1],["anonymous"],[["tagName"],["header"]]],[30,[36,1],["anonymous"],null],[30,[36,1],["anonymous"],[["tagName"],["footer"]]]]]]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["or","component","hash"]}',meta:{moduleName:"consul-ui/components/notice/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/oidc-select/chart.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"oidc-select",initial:"idle",on:{RESET:[{target:"idle"}]},states:{idle:{on:{LOAD:[{target:"loading"}]}},loaded:{},loading:{on:{SUCCESS:[{target:"loaded"}]}}}}})) +define("consul-ui/components/oidc-select/index",["exports","@glimmer/component","consul-ui/components/oidc-select/chart.xstate"],(function(e,t,n){var r,a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const s=Ember.HTMLBars.template({id:"QN/Z72sP",block:'{"symbols":["State","Guard","ChartAction","dispatch","state","chart","item","__arg0","__arg1","option","item","ignoredState","ignoredGuard","ignoredAction","formDispatch","state","@disabled","@onchange","&attrs","@dc","@nspace","@onerror"],"statements":[[8,"state-chart",[],[["@src"],[[34,22]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,7],null,[["State","Guard","Action","dispatch","state"],[[32,1],[32,2],[32,3],[32,4],[32,5]]]]],null,[["default"],[{"statements":[[2,"\\n"],[11,"div"],[24,0,"oidc-select"],[17,19],[12],[2,"\\n "],[8,[32,1],[],[["@notMatches"],["idle"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange","@onerror"],[[30,[36,15],["/${partition}/${nspace}/${dc}/oidc/providers",[30,[36,7],null,[["partition","nspace","dc"],[[32,0,["partition"]],[32,21],[32,20]]]]],null],[30,[36,16],[[30,[36,6],[[32,0],[30,[36,5],[[32,0,["items"]]],null]],[["value"],["data"]]],[30,[36,10],[[32,4],"SUCCESS"],null]],null],[30,[36,16],[[30,[36,10],[[32,4],"RESET"],null],[32,22]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["loaded"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,0,"reset"],[4,[38,11],["click",[30,[36,16],[[30,[36,17],[[32,0],"partition",""],null],[30,[36,10],[[32,4],"RESET"],null]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Choose different Partition\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"state-chart",[],[["@src"],[[30,[36,18],["validate"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"text-input",[],[["@name","@label","@item","@validations","@placeholder","@oninput","@chart"],["partition","Admin Partition",[32,0],[30,[36,7],null,[["partition"],[[30,[36,19],[[30,[36,7],null,[["test","error"],["^[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?$","Name must be a valid DNS hostname."]]]],null]]]],"Enter your Partition",[30,[36,6],[[32,0],[30,[36,5],[[32,0,["partition"]]],null]],[["value"],["target.value"]]],[30,[36,7],null,[["state","dispatch"],[[32,16],[32,15]]]]]],null],[2,"\\n\\n"],[2," "],[8,[32,1],[],[["@matches"],["idle"]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[4,[38,9],[[30,[36,1],[[30,[36,21],[[32,0,["partition","length"]],1],null],[30,[36,20],[[32,16],"error"],null]],null]],null],[4,[38,11],["click",[30,[36,10],[[32,4],"LOAD"],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Choose provider\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "]],"parameters":[12,13,14,15,16]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["loading"]],[["default"],[{"statements":[[2,"\\n "],[8,"progress",[[24,"aria-label","Loading"]],[[],[]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1],[],[["@matches"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,21],[[32,0,["items","length"]],3],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,14],[[30,[36,13],[[30,[36,13],[[32,0,["items"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[8,"action",[[16,0,[30,[36,0],[[32,11,["Kind"]],"-oidc-provider"],null]],[16,"disabled",[32,17]],[4,[38,11],["click",[30,[36,10],[[32,18],[32,11]],null]],null]],[["@type"],["button"]],[["default"],[{"statements":[[2,"\\n Continue with "],[1,[30,[36,1],[[32,11,["DisplayName"]],[32,11,["Name"]]],null]],[6,[37,3],[[30,[36,2],[[32,11,["Namespace"]],"default"],null]],null,[["default"],[{"statements":[[2," ("],[1,[32,11,["Namespace"]]],[2,")"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[11]}]]],[2," "],[13],[2,"\\n\\n"]],"parameters":[]},{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,1],[[32,0,["provider"]],[30,[36,12],[0,[32,0,["items"]]],null]],null]],null,[["default"],[{"statements":[[2,"\\n "],[8,"option-input",[],[["@label","@name","@item","@selected","@items","@onchange","@disabled","@namedBlocksInfo"],["SSO Provider","provider",[32,0],[32,7],[32,0,["items"]],[30,[36,6],[[32,0],[30,[36,5],[[32,0,["provider"]]],null]],null],[32,17],[30,[36,7],null,[["option"],[1]]]]],[["default"],[{"statements":[[6,[37,3],[[30,[36,8],[[32,8],"option"],null]],null,[["default"],[{"statements":[[6,[37,4],[[32,9]],null,[["default"],[{"statements":[[2,"\\n "],[10,"span"],[15,0,[30,[36,0],[[32,10,["item","Kind"]],"-oidc-provider"],null]],[12],[2,"\\n "],[1,[30,[36,1],[[32,10,["item","DisplayName"]],[32,10,["item","Name"]]],null]],[6,[37,3],[[30,[36,2],[[32,10,["item","Namespace"]],"default"],null]],null,[["default"],[{"statements":[[2," ("],[1,[32,10,["item","Namespace"]]],[2,")"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[10]}]]]],"parameters":[]}]]]],"parameters":[8,9]}]]],[2,"\\n\\n "],[8,"action",[[4,[38,9],[[32,17]],null],[4,[38,11],["click",[30,[36,10],[[32,18],[32,7]],null]],null]],[["@type"],["button"]],[["default"],[{"statements":[[2,"\\n Log in\\n "]],"parameters":[]}]]],[2,"\\n\\n"]],"parameters":[7]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[6]}]]]],"parameters":[1,2,3,4,5]}]]]],"hasEval":false,"upvars":["concat","or","not-eq","if","let","mut","action","hash","-is-named-block-invocation","disabled","fn","on","object-at","-track-array","each","uri","queue","set","state-chart","array","state-matches","lt","chart"]}',meta:{moduleName:"consul-ui/components/oidc-select/index.hbs"}}) +let i=(r=Ember._tracked,a=class extends t.default{constructor(){var e,t,r,a +super(...arguments),e=this,t="partition",a=this,(r=l)&&Object.defineProperty(e,t,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),this.chart=n.default}},o=a.prototype,u="partition",c=[r],d={configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}},p={},Object.keys(d).forEach((function(e){p[e]=d[e]})),p.enumerable=!!p.enumerable,p.configurable=!!p.configurable,("value"in p||p.initializer)&&(p.writable=!0),p=c.slice().reverse().reduce((function(e,t){return t(o,u,e)||e}),p),m&&void 0!==p.initializer&&(p.value=p.initializer?p.initializer.call(m):void 0,p.initializer=void 0),void 0===p.initializer&&(Object.defineProperty(o,u,p),p=null),l=p,a) +var o,u,c,d,m,p +e.default=i,Ember._setComponentTemplate(s,i)})),define("consul-ui/components/option-input/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"lDf2582n",block:'{"symbols":["__arg0","item","@disabled","@onchange","@selected","@items","&default","@multiple","@expanded","@name","@label","&attrs","@item","@placeholder","@help","@validations","@chart"],"statements":[[8,"form-input",[[24,0,"option-input type-select"],[17,12]],[["@item","@placeholder","@name","@label","@help","@validations","@chart","@namedBlocksInfo"],[[32,13],[32,14],[32,10],[32,11],[32,15],[32,16],[32,17],[30,[36,0],null,[["label","input"],[0,0]]]]],[["default"],[{"statements":[[6,[37,2],[[30,[36,3],[[32,1],"label"],null]],null,[["default","else"],[{"statements":[[2,"\\n"],[2," "],[1,[30,[36,4],[[32,11],[32,10]],null]],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,3],[[32,1],"input"],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[32,9]],null,[["default","else"],[{"statements":[[6,[37,2],[[32,8]],null,[["default","else"],[{"statements":[],"parameters":[]},{"statements":[],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," "],[8,"power-select",[],[["@disabled","@onChange","@selected","@searchEnabled","@options"],[[32,3],[32,4],[32,5],false,[32,6]]],[["default"],[{"statements":[[2,"\\n "],[18,7,[[30,[36,1],["option"],null],[30,[36,0],null,[["item"],[[32,2]]]]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["hash","-named-block-invocation","if","-is-named-block-invocation","or"]}',meta:{moduleName:"consul-ui/components/option-input/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/outlet/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E +function k(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function x(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const j=Ember.HTMLBars.template({id:"R/yzDCxZ",block:'{"symbols":["@name","@model","&default"],"statements":[[1,[30,[36,0],[[32,0,["connect"]]],null]],[2,"\\n"],[1,[30,[36,1],[[32,0,["disconnect"]]],null]],[2,"\\n"],[11,"section"],[24,0,"outlet"],[16,"data-outlet",[32,1]],[16,"data-route",[32,0,["routeName"]]],[16,"data-state",[32,0,["state","name"]]],[16,"data-transition",[30,[36,2],[[32,0,["previousState","name"]]," ",[32,0,["state","name"]]],null]],[4,[38,0],[[30,[36,3],[[32,0,["attributeChanged"]],"element"],null]],null],[4,[38,4],[[30,[36,3],[[32,0,["attributeChanged"]],"model",[32,2]],null]],null],[4,[38,5],["transitionend",[32,0,["transitionEnd"]]],null],[12],[2,"\\n "],[18,3,[[30,[36,6],null,[["state","previousState","route"],[[32,0,["state"]],[32,0,["previousState"]],[32,0,["route"]]]]]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["did-insert","will-destroy","concat","fn","did-update","on","hash"]}',meta:{moduleName:"consul-ui/components/outlet/index.hbs"}}) +class C{constructor(e){this.name=e}matches(e){return this.name===e}}let S=(n=Ember.inject.service("routlet"),r=Ember.inject.service("router"),a=Ember._tracked,l=Ember._tracked,s=Ember._tracked,i=Ember._tracked,o=Ember._tracked,u=Ember._tracked,c=Ember._action,d=Ember._action,m=Ember._action,p=Ember._action,f=Ember._action,b=Ember._action,h=class extends t.default{constructor(...e){super(...e),k(this,"routlet",v,this),k(this,"router",y,this),k(this,"element",g,this),k(this,"routeName",O,this),k(this,"state",_,this),k(this,"previousState",P,this),k(this,"endTransition",w,this),k(this,"route",E,this)}get model(){return this.args.model||{}}get name(){return this.args.name}setAppRoute(e){if("loading"!==e||"oidc-provider-debug"===e){const t=this.element.ownerDocument.documentElement +t.classList.contains("ember-loading")&&t.classList.remove("ember-loading"),t.dataset.route=e,this.setAppState("idle")}}setAppState(e){this.element.ownerDocument.documentElement.dataset.state=e}attributeChanged(e,t){switch(e){case"element":this.element=t,"application"===this.args.name&&(this.setAppState("loading"),this.setAppRoute(this.router.currentRouteName)) +break +case"model":void 0!==this.route&&(this.route._model=t)}}transitionEnd(e){"function"==typeof this.endTransition&&this.endTransition()}startLoad(e){const t=this.routlet.findOutlet(e.to.name)||"application" +if(this.args.name===t){this.previousState=this.state,this.state=new C("loading"),this.endTransition=this.routlet.transition() +const e=window.getComputedStyle(this.element).getPropertyValue("transition-duration") +0===parseFloat(e)&&this.endTransition()}"application"===this.args.name&&this.setAppState("loading")}endLoad(e){this.state.matches("loading")&&(this.previousState=this.state,this.state=new C("idle")),"application"===this.args.name&&this.setAppRoute(this.router.currentRouteName)}connect(){this.routlet.addOutlet(this.args.name,this),this.previousState=this.state=new C("idle"),this.router.on("routeWillChange",this.startLoad),this.router.on("routeDidChange",this.endLoad)}disconnect(){this.routlet.removeOutlet(this.args.name),this.router.off("routeWillChange",this.startLoad),this.router.off("routeDidChange",this.endLoad)}},v=x(h.prototype,"routlet",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=x(h.prototype,"router",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=x(h.prototype,"element",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=x(h.prototype,"routeName",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=x(h.prototype,"state",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=x(h.prototype,"previousState",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=x(h.prototype,"endTransition",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=x(h.prototype,"route",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x(h.prototype,"attributeChanged",[c],Object.getOwnPropertyDescriptor(h.prototype,"attributeChanged"),h.prototype),x(h.prototype,"transitionEnd",[d],Object.getOwnPropertyDescriptor(h.prototype,"transitionEnd"),h.prototype),x(h.prototype,"startLoad",[m],Object.getOwnPropertyDescriptor(h.prototype,"startLoad"),h.prototype),x(h.prototype,"endLoad",[p],Object.getOwnPropertyDescriptor(h.prototype,"endLoad"),h.prototype),x(h.prototype,"connect",[f],Object.getOwnPropertyDescriptor(h.prototype,"connect"),h.prototype),x(h.prototype,"disconnect",[b],Object.getOwnPropertyDescriptor(h.prototype,"disconnect"),h.prototype),h) +e.default=S,Ember._setComponentTemplate(j,S)})),define("consul-ui/components/paged-collection/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w +function E(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function k(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const x=Ember.HTMLBars.template({id:"hajSVwhB",block:'{"symbols":["@page","&default"],"statements":[[18,2,[[30,[36,5],null,[["items","page","pane","resize","viewport","rowHeight","maxHeight","startHeight","totalHeight","totalPages","Pager"],[[32,0,["items"]],[32,1],[30,[36,4],[[32,0,["setPane"]]],null],[30,[36,4],[[32,0,["resize"]]],null],[30,[36,4],[[32,0,["setViewport"]]],null],[30,[36,4],[[32,0,["setRowHeight"]]],null],[30,[36,4],[[32,0,["setMaxHeight"]]],null],[32,0,["startHeight"]],[32,0,["totalHeight"]],[32,0,["totalPages"]],[30,[36,3],[[30,[36,2],[[35,1],"index"],null],[30,[36,0],["yield"],null],""],null]]]]]],[2,"\\n\\n"],[1,[30,[36,6],[[32,0,["disconnect"]]],null]],[2,"\\n"]],"hasEval":false,"upvars":["component","type","eq","if","fn","hash","will-destroy"]}',meta:{moduleName:"consul-ui/components/paged-collection/index.hbs"}}) +let j=(n=Ember._tracked,r=Ember._tracked,a=Ember._tracked,l=Ember._tracked,s=Ember._tracked,i=Ember._tracked,o=Ember._tracked,u=Ember._action,c=Ember._action,d=Ember._action,m=Ember._action,p=Ember._action,f=Ember._action,b=Ember._action,h=class extends t.default{constructor(...e){super(...e),E(this,"$pane",v,this),E(this,"$viewport",y,this),E(this,"top",g,this),E(this,"visibleItems",O,this),E(this,"overflow",_,this),E(this,"_rowHeight",P,this),E(this,"_type",w,this)}get type(){return this.args.type||this._type}get items(){return this.args.items.slice(this.cursor,this.cursor+this.perPage)}get perPage(){switch(this.type){case"virtual-scroll":return this.visibleItems+2*this.overflow +case"index":return parseInt(this.args.perPage)}return this.total}get cursor(){switch(this.type){case"virtual-scroll":return this.itemsBefore +case"index":return(parseInt(this.args.page)-1)*this.perPage}return 0}get itemsBefore(){return void 0===this.$viewport?0:Math.max(0,Math.round(this.top/this.rowHeight)-this.overflow)}get rowHeight(){return parseFloat(this.args.rowHeight||this._rowHeight)}get startHeight(){switch(this.type){case"virtual-scroll":return Math.min(this.totalHeight,this.itemsBefore*this.rowHeight) +case"index":return 0}return 0}get totalHeight(){return this.total*this.rowHeight}get totalPages(){return Math.ceil(this.total/this.perPage)}get total(){return this.args.items.length}scroll(e){this.top=this.$viewport.scrollTop}resize(){this.$viewport.clientHeight>0&&this.rowHeight>0?this.visibleItems=Math.ceil(this.$viewport.clientHeight/this.rowHeight):this.visibleItems=0}setViewport(e){this.$viewport="html"===e?[...document.getElementsByTagName("html")][0]:e,this.$viewport.addEventListener("scroll",this.scroll),"html"===e&&this.$viewport.addEventListener("resize",this.resize),this.scroll(),this.resize()}setPane(e){this.$pane=e}setRowHeight(e){this._rowHeight=parseFloat(e)}setMaxHeight(e){const t=parseFloat(e) +isNaN(t)||(this._type="virtual-scroll")}disconnect(){this.$viewport.removeEventListener("scroll",this.scroll),this.$viewport.removeEventListener("resize",this.resize)}},v=k(h.prototype,"$pane",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=k(h.prototype,"$viewport",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=k(h.prototype,"top",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),O=k(h.prototype,"visibleItems",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),_=k(h.prototype,"overflow",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 10}}),P=k(h.prototype,"_rowHeight",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),w=k(h.prototype,"_type",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"native-scroll"}}),k(h.prototype,"scroll",[u],Object.getOwnPropertyDescriptor(h.prototype,"scroll"),h.prototype),k(h.prototype,"resize",[c],Object.getOwnPropertyDescriptor(h.prototype,"resize"),h.prototype),k(h.prototype,"setViewport",[d],Object.getOwnPropertyDescriptor(h.prototype,"setViewport"),h.prototype),k(h.prototype,"setPane",[m],Object.getOwnPropertyDescriptor(h.prototype,"setPane"),h.prototype),k(h.prototype,"setRowHeight",[p],Object.getOwnPropertyDescriptor(h.prototype,"setRowHeight"),h.prototype),k(h.prototype,"setMaxHeight",[f],Object.getOwnPropertyDescriptor(h.prototype,"setMaxHeight"),h.prototype),k(h.prototype,"disconnect",[b],Object.getOwnPropertyDescriptor(h.prototype,"disconnect"),h.prototype),h) +e.default=j,Ember._setComponentTemplate(x,j)})),define("consul-ui/components/panel/index.css",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=e=>e` + .panel { + --padding-x: 14px; + --padding-y: 14px; + } + .panel { + position: relative; + } + .panel-separator { + margin: 0; + } + + .panel { + --tone-border: var(--tone-gray-300); + border: var(--decor-border-100); + border-radius: var(--decor-radius-200); + box-shadow: var(--decor-elevation-600); + } + .panel-separator { + border: 0; + border-top: var(--decor-border-100); + } + .panel { + color: rgb(var(--tone-gray-900)); + background-color: rgb(var(--tone-gray-000)); + } + .panel, + .panel-separator { + border-color: rgb(var(--tone-border)); + } +`})),define("consul-ui/components/policy-form/index",["exports","consul-ui/components/form-component/index"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"F2W+pe23",block:'{"symbols":["dc","dc","Name","__arg0","__arg0","__arg0","template","&default","&attrs"],"statements":[[18,8,null],[2,"\\n"],[11,"fieldset"],[24,0,"policy-form"],[16,"disabled",[30,[36,6],[[30,[36,5],[[30,[36,27],["write policy"],[["item"],[[35,1]]]]],null],"disabled"],null]],[17,9],[12],[2,"\\n"],[6,[37,28],null,[["name"],["template"]],[["default","else"],[{"statements":[],"parameters":[]},{"statements":[[2," "],[10,"header"],[12],[2,"\\n Policy"],[1,[30,[36,6],[[35,26]," or identity?",""],null]],[2,"\\n "],[13],[2,"\\n"],[6,[37,6],[[35,26]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"\\n Identities are default policies with configurable names. They save you some time and effort you\'re using Consul for Connect features.\\n "],[13],[2,"\\n"],[2," "],[10,"div"],[14,"role","radiogroup"],[15,0,[30,[36,6],[[35,1,["error","Type"]]," has-error"],null]],[12],[2,"\\n"],[6,[37,11],[[30,[36,10],[[30,[36,10],[[35,25]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,7,["name"]]],[13],[2,"\\n "],[10,"input"],[15,3,[30,[36,19],[[35,0],"[template]"],null]],[15,2,[32,7,["template"]]],[15,"checked",[30,[36,15],[[35,1,["template"]],[32,7,["template"]]],null]],[15,"onchange",[30,[36,2],[[32,0],[30,[36,24],[[30,[36,23],[[35,1],"template"],null]],null]],[["value"],["target.value"]]]],[14,4,"radio"],[12],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"input"],[15,3,[30,[36,19],[[35,0],"[template]"],null]],[14,2,""],[14,4,"hidden"],[12],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[10,"label"],[15,0,[31,["type-text",[30,[36,6],[[30,[36,29],[[35,1,["error","Name"]],[30,[36,5],[[35,1,["isPristine"]]],null]],null]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Name"],[13],[2,"\\n "],[10,"input"],[15,2,[34,1,["Name"]]],[15,3,[31,[[34,0],"[Name]"]]],[14,"autofocus","autofocus"],[15,"oninput",[30,[36,2],[[32,0],"change"],null]],[14,4,"text"],[12],[13],[2,"\\n "],[10,"em"],[12],[2,"\\n Maximum 128 characters. May only include letters (uppercase and/or lowercase) and/or numbers. Must be unique.\\n "],[13],[2,"\\n"],[6,[37,6],[[30,[36,29],[[35,1,["error","Name"]],[30,[36,5],[[35,1,["isPristine"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"strong"],[12],[1,[35,1,["error","Name","validation"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"label"],[14,"for",""],[14,0,"type-text"],[12],[2,"\\n"],[6,[37,6],[[30,[36,15],[[35,1,["template"]],"service-identity"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"code-editor",[],[["@readonly","@name","@syntax","@oninput","@namedBlocksInfo"],[true,[30,[36,19],[[35,0],"[Rules]"],null],"hcl",[30,[36,2],[[32,0],"change",[30,[36,19],[[35,0],"[Rules]"],null]],null],[30,[36,20],null,[["label","content"],[0,0]]]]],[["default"],[{"statements":[[6,[37,6],[[30,[36,21],[[32,6],"label"],null]],null,[["default","else"],[{"statements":[[2,"\\n Rules "],[10,"a"],[15,6,[31,[[30,[36,18],["CONSUL_DOCS_URL"],null],"/guides/acl.html#rule-specification"]]],[14,"rel","help noopener noreferrer"],[14,"target","_blank"],[12],[2,"(HCL Format)"],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,6],[[30,[36,21],[[32,6],"content"],null]],null,[["default"],[{"statements":[[8,"consul/service-identity/template",[],[["@nspace","@partition","@name"],[[34,22],[34,13],[34,1,["Name"]]]],null]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[6]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,6],[[30,[36,15],[[35,1,["template"]],"node-identity"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"code-editor",[],[["@readonly","@name","@syntax","@oninput","@namedBlocksInfo"],[true,[30,[36,19],[[35,0],"[Rules]"],null],"hcl",[30,[36,2],[[32,0],"change",[30,[36,19],[[35,0],"[Rules]"],null]],null],[30,[36,20],null,[["label","content"],[0,0]]]]],[["default"],[{"statements":[[6,[37,6],[[30,[36,21],[[32,5],"label"],null]],null,[["default","else"],[{"statements":[[2,"\\n Rules "],[10,"a"],[15,6,[31,[[30,[36,18],["CONSUL_DOCS_URL"],null],"/guides/acl.html#rule-specification"]]],[14,"rel","help noopener noreferrer"],[14,"target","_blank"],[12],[2,"(HCL Format)"],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,6],[[30,[36,21],[[32,5],"content"],null]],null,[["default"],[{"statements":[[8,"consul/node-identity/template",[],[["@name","@partition"],[[34,1,["Name"]],[34,13]]],null]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[5]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"code-editor",[],[["@syntax","@class","@name","@value","@onkeyup","@namedBlocksInfo"],["hcl",[30,[36,6],[[35,1,["error","Rules"]],"error"],null],[30,[36,19],[[35,0],"[Rules]"],null],[34,1,["Rules"]],[30,[36,2],[[32,0],"change",[30,[36,19],[[35,0],"[Rules]"],null]],null],[30,[36,20],null,[["label"],[0]]]]],[["default"],[{"statements":[[6,[37,6],[[30,[36,21],[[32,4],"label"],null]],null,[["default"],[{"statements":[[2,"\\n Rules "],[10,"a"],[15,6,[31,[[30,[36,18],["CONSUL_DOCS_URL"],null],"/guides/acl.html#rule-specification"]]],[14,"rel","help noopener noreferrer"],[14,"target","_blank"],[12],[2,"(HCL Format)"],[13],[2,"\\n "]],"parameters":[]}]]]],"parameters":[4]}]]],[2,"\\n"],[6,[37,6],[[35,1,["error","Rules"]]],null,[["default"],[{"statements":[[2," "],[10,"strong"],[12],[1,[35,1,["error","Rules","validation"]]],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[6,[37,6],[[30,[36,15],[[35,1,["template"]],"node-identity"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,8],["/*/*/*/datacenters"],null],[30,[36,2],[[32,0],[30,[36,9],[[35,3]],null]],[["value"],["data"]]]]],null],[2,"\\n "],[10,"label"],[14,0,"type-select"],[12],[2,"\\n "],[10,"span"],[12],[2,"Datacenter"],[13],[2,"\\n "],[8,"power-select",[],[["@options","@searchField","@selected","@searchPlaceholder","@onChange"],[[30,[36,16],["Name",[35,3]],null],"Name",[30,[36,14],[[35,1,["Datacenter"]],[35,17]],null],"Type a datacenter name",[30,[36,2],[[32,0],"change","Datacenter"],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,3]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,6],[[30,[36,15],[[30,[36,14],[[35,13],"default"],null],"default"],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"type-toggle"],[12],[2,"\\n "],[10,"span"],[12],[2,"Valid datacenters"],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"input"],[15,3,[31,[[34,0],"[isScoped]"]]],[15,"checked",[30,[36,6],[[30,[36,5],[[35,12]],null],"checked"],null]],[15,"onchange",[30,[36,2],[[32,0],"change"],null]],[14,4,"checkbox"],[12],[13],[2,"\\n "],[10,"span"],[12],[2,"All"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,6],[[35,12]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,8],["/*/*/*/datacenters"],null],[30,[36,2],[[32,0],[30,[36,9],[[35,3]],null]],[["value"],["data"]]]]],null],[2,"\\n\\n "],[10,"div"],[14,0,"checkbox-group"],[14,"role","group"],[12],[2,"\\n"],[6,[37,11],[[30,[36,10],[[30,[36,10],[[35,3]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[14,0,"type-checkbox"],[12],[2,"\\n "],[10,"input"],[15,3,[31,[[34,0],"[Datacenters]"]]],[15,2,[32,2,["Name"]]],[15,"checked",[30,[36,6],[[30,[36,7],[[32,2,["Name"]],[35,1,["Datacenters"]]],null],"checked"],null]],[15,"onchange",[30,[36,2],[[32,0],"change"],null]],[14,4,"checkbox"],[12],[13],[2,"\\n "],[10,"span"],[12],[1,[32,2,["Name"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]],[6,[37,11],[[30,[36,10],[[30,[36,10],[[35,1,["Datacenters"]]],null]],null]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,5],[[30,[36,4],["Name",[32,1],[35,3]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[14,0,"type-checkbox"],[12],[2,"\\n "],[10,"input"],[15,3,[31,[[34,0],"[Datacenters]"]]],[15,2,[32,1]],[14,"checked","checked"],[15,"onchange",[30,[36,2],[[32,0],"change"],null]],[14,4,"checkbox"],[12],[13],[2,"\\n "],[10,"span"],[12],[1,[32,1]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]],[2," "],[13],[2,"\\n\\n\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[6,[37,6],[[30,[36,15],[[35,1,["template"]],""],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[14,0,"type-text"],[12],[2,"\\n "],[10,"span"],[12],[2,"Description (Optional)"],[13],[2,"\\n "],[10,"textarea"],[15,3,[31,[[34,0],"[Description]"]]],[15,2,[34,1,["Description"]]],[15,"oninput",[30,[36,2],[[32,0],"change"],null]],[12],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["name","item","action","datacenters","find-by","not","if","contains","uri","mut","-track-array","each","isScoped","partition","or","eq","map-by","dc","env","concat","hash","-is-named-block-invocation","nspace","changeset-set","optional","templates","allowIdentity","can","yield-slot","and"]}',meta:{moduleName:"consul-ui/components/policy-form/index.hbs"}}) +var r=Ember._setComponentTemplate(n,t.default.extend({type:"policy",name:"policy",allowIdentity:!0,classNames:["policy-form"],isScoped:!1,init:function(){this._super(...arguments),Ember.set(this,"isScoped",Ember.get(this,"item.Datacenters.length")>0),this.templates=[{name:"Policy",template:""},{name:"Service Identity",template:"service-identity"},{name:"Node Identity",template:"node-identity"}]},actions:{change:function(e){try{this._super(...arguments)}catch(t){const e=this.isScoped +switch(t.target.name){case"policy[isScoped]":e?(Ember.set(this,"previousDatacenters",Ember.get(this.item,"Datacenters")),Ember.set(this.item,"Datacenters",null)):(Ember.set(this.item,"Datacenters",this.previousDatacenters),Ember.set(this,"previousDatacenters",null)),Ember.set(this,"isScoped",!e) +break +default:this.onerror(t)}this.onchange({target:this.form})}}}})) +e.default=r})),define("consul-ui/components/policy-selector/index",["exports","consul-ui/components/child-selector/index"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"CuBwNJCz",block:'{"symbols":["item","index","execute","cancel","message","confirm","__arg0","__arg0","__arg0","option","modal","close","&default","&attrs"],"statements":[[8,"child-selector",[[17,14]],[["@disabled","@repo","@dc","@partition","@nspace","@type","@placeholder","@items"],[[34,24],[34,25],[34,13],[34,8],[34,10],"policy","Search for policy",[34,0]]],[["default"],[{"statements":[[2,"\\n "],[18,13,null],[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Apply an existing policy\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["create"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,26],null,[["name"],["trigger"]],[["default","else"],[{"statements":[[2," "],[18,13,null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[11,"label"],[24,0,"type-dialog"],[4,[38,18],["click",[30,[36,17],[[32,0,["modal","open"]]],null]],null],[12],[2,"\\n "],[10,"span"],[12],[2,"Create new policy"],[13],[2,"\\n "],[13],[2,"\\n"],[2," "],[8,"modal-dialog",[[24,1,"new-policy"]],[["@onopen","@aria"],[[30,[36,1],[[32,0],"open"],null],[30,[36,5],null,[["label"],["New Policy"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"modal",[32,11]]],null],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"New Policy"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[8,"policy-form",[],[["@form","@nspace","@partition","@dc","@allowServiceIdentity"],[[34,19],[34,10],[34,8],[34,13],[34,20]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"button"],[15,"onclick",[30,[36,23],[[32,0,["save"]],[35,22],[35,0],[30,[36,21],[[30,[36,1],[[32,0],[32,12]],null],[30,[36,1],[[32,0],"reset"],null]],null]],null]],[15,"disabled",[30,[36,7],[[30,[36,4],[[35,22,["isSaving"]],[35,22,["isPristine"]],[35,22,["isInvalid"]]],null],"disabled"],null]],[14,4,"submit"],[12],[2,"\\n"],[6,[37,7],[[35,22,["isSaving"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"progress indeterminate"],[12],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"span"],[12],[2,"Create and apply"],[13],[2,"\\n "],[13],[2,"\\n "],[11,"button"],[16,"disabled",[30,[36,7],[[35,22,["isSaving"]],"disabled"],null]],[24,4,"reset"],[4,[38,1],[[32,0],[30,[36,21],[[30,[36,1],[[32,0],[32,12]],null],[30,[36,1],[[32,0],"reset"],null]],null]],null],[12],[2,"Cancel"],[13],[2,"\\n "]],"parameters":[12]}]]],[2,"\\n "]],"parameters":[11]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["option"]],[["default"],[{"statements":[[2,"\\n "],[1,[32,10,["Name"]]],[2,"\\n "]],"parameters":[10]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["set"]],[["default"],[{"statements":[[2,"\\n "],[8,"tabular-details",[],[["@onchange","@items"],[[30,[36,1],[[32,0],"open"],null],[30,[36,27],["CreateTime:desc","Name:asc",[35,0]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"th"],[12],[2,"Name"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[2,"\\n "],[10,"td"],[15,0,[30,[36,28],[[32,1]],null]],[12],[2,"\\n"],[6,[37,7],[[32,1,["ID"]]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[30,[36,16],["dc.acls.policies.edit",[32,1,["ID"]]],null]],[12],[1,[32,1,["Name"]]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[15,3,[32,1,["Name"]]],[12],[1,[32,1,["Name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,7],[[30,[36,9],[[32,1,["template"]],""],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange","@loading"],[[30,[36,14],["/${partition}/${nspace}/${dc}/policy/${id}",[30,[36,5],null,[["partition","nspace","dc","id"],[[35,8],[35,10],[35,13],[32,1,["ID"]]]]]],null],[30,[36,1],[[32,0],[30,[36,15],[[35,3]],null]],[["value"],["data"]]],"lazy"]],null],[2,"\\n"]],"parameters":[]}]]],[6,[37,7],[[30,[36,9],[[32,1,["template"]],"node-identity"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Datacenter:"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["Datacenter"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Datacenters:"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,12],[", ",[30,[36,11],[[30,[36,4],[[35,3],[32,1]],null]],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"label"],[14,0,"type-text"],[12],[2,"\\n"],[6,[37,7],[[30,[36,9],[[32,1,["template"]],"service-identity"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"code-editor",[],[["@syntax","@readonly","@namedBlocksInfo"],["hcl",true,[30,[36,5],null,[["label","content"],[0,0]]]]],[["default"],[{"statements":[[6,[37,7],[[30,[36,6],[[32,9],"label"],null]],null,[["default","else"],[{"statements":[[2,"\\n Rules "],[10,"a"],[15,6,[31,[[30,[36,2],["CONSUL_DOCS_URL"],null],"/guides/acl.html#rule-specification"]]],[14,"rel","help noopener noreferrer"],[14,"target","_blank"],[12],[2,"(HCL Format)"],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,7],[[30,[36,6],[[32,9],"content"],null]],null,[["default"],[{"statements":[[2,"\\n "],[8,"consul/service-identity/template",[],[["@nspace","@partition","@name"],[[34,10],[34,8],[32,1,["Name"]]]],null],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,7],[[30,[36,9],[[32,1,["template"]],"node-identity"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"code-editor",[],[["@syntax","@readonly","@namedBlocksInfo"],["hcl",true,[30,[36,5],null,[["label","content"],[0,0]]]]],[["default"],[{"statements":[[6,[37,7],[[30,[36,6],[[32,8],"label"],null]],null,[["default","else"],[{"statements":[[2,"\\n Rules "],[10,"a"],[15,6,[31,[[30,[36,2],["CONSUL_DOCS_URL"],null],"/guides/acl.html#rule-specification"]]],[14,"rel","help noopener noreferrer"],[14,"target","_blank"],[12],[2,"(HCL Format)"],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,7],[[30,[36,6],[[32,8],"content"],null]],null,[["default"],[{"statements":[[2,"\\n "],[8,"consul/node-identity/template",[],[["@name","@partition"],[[32,1,["Name"]],[34,8]]],null],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[8]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"code-editor",[],[["@syntax","@readonly","@value","@namedBlocksInfo"],["hcl",true,[30,[36,4],[[35,3,["Rules"]],[32,1,["Rules"]]],null],[30,[36,5],null,[["label"],[0]]]]],[["default"],[{"statements":[[6,[37,7],[[30,[36,6],[[32,7],"label"],null]],null,[["default"],[{"statements":[[2,"\\n Rules "],[10,"a"],[15,6,[31,[[30,[36,2],["CONSUL_DOCS_URL"],null],"/guides/acl.html#rule-specification"]]],[14,"rel","help noopener noreferrer"],[14,"target","_blank"],[12],[2,"(HCL Format)"],[13],[2,"\\n "]],"parameters":[]}]]]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[6,[37,7],[[30,[36,29],[[35,24]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to remove this policy from this token?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"type-delete"],[24,4,"button"],[4,[38,1],[[32,0],[32,6],"remove",[32,1],[35,0]],null],[12],[2,"Remove"],[13],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[32,5]],[2,"\\n "],[13],[2,"\\n\\n "],[11,"button"],[24,0,"type-delete"],[24,4,"button"],[4,[38,1],[[32,0],[32,3]],null],[12],[2,"Confirm remove"],[13],[2,"\\n "],[11,"button"],[24,0,"type-cancel"],[24,4,"button"],[4,[38,1],[[32,0],[32,4]],null],[12],[2,"Cancel"],[13],[2,"\\n "]],"parameters":[3,4,5]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1,2]}]]],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["items","action","env","loadedItem","or","hash","-is-named-block-invocation","if","partition","eq","nspace","policy/datacenters","join","dc","uri","mut","href-to","optional","on","form","allowServiceIdentity","queue","item","perform","disabled","repo","yield-slot","sort-by","policy/typeof","not"]}',meta:{moduleName:"consul-ui/components/policy-selector/index.hbs"}}) +var r=Ember._setComponentTemplate(n,t.default.extend({repo:Ember.inject.service("repository/policy"),name:"policy",type:"policy",allowIdentity:!0,classNames:["policy-selector"],init:function(){this._super(...arguments) +const e=this.source +e&&this._listeners.add(e,{save:e=>{this.save.perform(...e.data)}})},reset:function(e){this._super(...arguments),Ember.set(this,"isScoped",!1)},refreshCodeEditor:function(e,t){this.dom.component(".code-editor",t).didAppear()},error:function(e){const t=this.item,n=e.error +if(void 0===n.errors)throw n +{const e=n.errors[0] +let r="Rules",a=e.detail +switch(!0){case 0===a.indexOf("Failed to parse ACL rules"):case 0===a.indexOf("Invalid service policy"):r="Rules",a=e.detail +break +case 0===a.indexOf("Invalid Policy: A Policy with Name"):r="Name",a=a.substr("Invalid Policy: A Policy with Name".indexOf(":")+1)}r&&t.addError(r,a)}},actions:{open:function(e){this.refreshCodeEditor(e,e.target.parentElement)}}})) +e.default=r})),define("consul-ui/components/popover-menu/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"sMDVsgDS",block:'{"symbols":["change","keypress","keypressClick","aria","components","api","menu","sub","toggle","&default","&attrs"],"statements":[[18,10,null],[2,"\\n"],[11,"div"],[24,0,"popover-menu"],[17,11],[12],[2,"\\n "],[8,"aria-menu",[],[["@keyboardAccess"],[[34,4]]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,16],[[30,[36,15],null,[["MenuItem","MenuSeparator"],[[30,[36,17],["popover-menu/menu-item"],[["menu"],[[30,[36,15],null,[["addSubmenu","removeSubmenu","confirm","clickTrigger","keypressClick"],[[30,[36,6],[[32,0],"addSubmenu"],null],[30,[36,6],[[32,0],"removeSubmenu"],null],[30,[36,2],["popover-menu-",[35,1],"-"],null],[32,0,["toggle","click"]],[32,3]]]]]]],[30,[36,17],["popover-menu/menu-separator"],null]]]]],null,[["default"],[{"statements":[[6,[37,16],[[30,[36,15],null,[["toggle"],[[32,0,["toggle","click"]]]]]],null,[["default"],[{"statements":[[2,"\\n "],[8,"toggle-button",[],[["@checked","@onchange"],[[30,[36,5],[[35,4],[32,4,["expanded"]],[35,3]],null],[30,[36,7],[[32,1],[30,[36,6],[[32,0],"change"],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"toggle",[32,9]]],null],[2,"\\n "],[10,"button"],[14,"aria-haspopup","menu"],[15,"onkeydown",[32,2]],[15,"onclick",[32,0,["toggle","click"]]],[15,1,[32,4,["labelledBy"]]],[15,"aria-controls",[32,4,["controls"]]],[14,4,"button"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["trigger"]],[["default"],[{"statements":[[2,"\\n "],[18,10,[[32,5],[32,6]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n\\n "],[8,"menu-panel",[[16,1,[32,4,["controls"]]],[16,"aria-labelledby",[32,4,["labelledBy"]]],[16,"aria-expanded",[32,4,["expanded"]]]],[["@position"],[[34,8]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"menu",[32,7]]],null],[2,"\\n "],[8,"block-slot",[],[["@name"],["controls"]],[["default"],[{"statements":[[2,"\\n "],[10,"input"],[15,1,[30,[36,2],["popover-menu-",[35,1],"-"],null]],[14,4,"checkbox"],[12],[13],[2,"\\n"],[6,[37,11],[[30,[36,10],[[30,[36,10],[[35,9]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"input"],[15,1,[30,[36,2],["popover-menu-",[35,1],"-",[32,8]],null]],[15,"onchange",[32,7,["change"]]],[14,4,"checkbox"],[12],[13],[2,"\\n"]],"parameters":[8]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"],[6,[37,5],[[35,12]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[18,10,[[32,5],[32,6]]],[2,"\\n "],[6,[37,0],null,[["name"],["header"]],[["default","else"],[{"statements":[],"parameters":[]},{"statements":[],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name","@params"],["menu",[30,[36,14],[[30,[36,2],["popover-menu-",[35,1],"-"],null],[35,13],[32,3],[32,0,["toggle","click"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[18,10,[[32,5],[32,6]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n\\n"]],"parameters":[6]}]]]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[1,2,3,4]}]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["yield-slot","guid","concat","expanded","keyboardAccess","if","action","queue","position","submenus","-track-array","each","hasHeader","send","block-params","hash","let","component"]}',meta:{moduleName:"consul-ui/components/popover-menu/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:"",dom:Ember.inject.service("dom"),expanded:!1,keyboardAccess:!0,onchange:function(){},position:"",init:function(){this._super(...arguments),this.guid=this.dom.guid(this),this.submenus=[]},willRender:function(){Ember.set(this,"hasHeader",this._isRegistered("header"))},actions:{addSubmenu:function(e){Ember.set(this,"submenus",this.submenus.concat(e))},removeSubmenu:function(e){const t=this.submenus.indexOf(e);-1!==t&&(this.submenus.splice(t,1),Ember.set(this,"submenus",this.submenus))},change:function(e){e.target.checked||[...this.dom.elements(`[id^=popover-menu-${this.guid}]`)].forEach((function(e){e.checked=!1})),this.onchange(e)},send:function(){this.sendAction(...arguments)}}})) +e.default=r})),define("consul-ui/components/popover-menu/menu-item/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"zKK0lEHV",block:'{"symbols":["external","&default","&attrs"],"statements":[[18,2,null],[2,"\\n"],[11,"li"],[24,"role","none"],[17,3],[12],[2,"\\n"],[6,[37,1],[[35,15]],null,[["default","else"],[{"statements":[[2," "],[10,"label"],[15,"for",[30,[36,11],[[35,3,["confirm"]],[35,10]],null]],[14,"role","menuitem"],[14,"tabindex","-1"],[15,"onkeypress",[34,3,["keypressClick"]]],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[18,2,null]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,"role","menu"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name","@params"],["confirmation",[30,[36,14],[[30,[36,13],["confirmation-alert"],[["onclick","name"],[[30,[36,6],[[30,[36,4],[[32,0],[35,3,["clickTrigger"]]],null],[30,[36,4],[[32,0],[35,12]],null]],null],[30,[36,11],[[35,3,["confirm"]],[35,10]],null]]]]],null]]],[["default"],[{"statements":[[18,2,null]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[35,7]],null,[["default","else"],[{"statements":[[6,[37,9],[[30,[36,8],[[35,7],"://"],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[14,"role","menuitem"],[14,"tabindex","-1"],[15,"onclick",[30,[36,4],[[32,0],[35,3,["clickTrigger"]]],null]],[15,6,[34,7]],[15,"target",[30,[36,1],[[32,1],"_blank"],null]],[15,"rel",[30,[36,1],[[32,1],"noopener noreferrer"],null]],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n "],[18,2,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]]],"parameters":[]},{"statements":[[10,"button"],[14,"role","menuitem"],[15,"aria-selected",[30,[36,1],[[35,0],"true"],null]],[14,"tabindex","-1"],[15,"onclick",[30,[36,6],[[30,[36,4],[[32,0],[30,[36,5],[[32,0,["onclick"]],[30,[36,2],null,null]],null]],null],[30,[36,4],[[32,0],[30,[36,1],[[32,0,["close"]],[35,3,["clickTrigger"]],[30,[36,2],null,null]],null]],null]],null]],[14,4,"button"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n "],[18,2,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["selected","if","noop","menu","action","or","queue","href","string-includes","let","guid","concat","onclick","component","block-params","hasConfirmation"]}',meta:{moduleName:"consul-ui/components/popover-menu/menu-item/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:"",dom:Ember.inject.service("dom"),init:function(){this._super(...arguments),this.guid=this.dom.guid(this)},didInsertElement:function(){this._super(...arguments),this.menu.addSubmenu(this.guid)},didDestroyElement:function(){this._super(...arguments),this.menu.removeSubmenu(this.guid)},willRender:function(){this._super(...arguments),Ember.set(this,"hasConfirmation",this._isRegistered("confirmation"))}})) +e.default=r})),define("consul-ui/components/popover-menu/menu-separator/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"RS9Jf7fe",block:'{"symbols":["&default"],"statements":[[18,1,null],[2,"\\n"],[10,"li"],[14,"role","separator"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[18,1,null]],"parameters":[]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/popover-menu/menu-separator/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:""})) +e.default=r})),define("consul-ui/components/popover-select/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"nf0dRHsn",block:'{"symbols":["components","menu","Optgroup","Option","&default","&attrs"],"statements":[[8,"popover-menu",[[24,0,"popover-select"],[17,6]],[["@position"],[[30,[36,2],[[35,1],"left"],null]]],[["default"],[{"statements":[[2,"\\n "],[18,5,null],[2,"\\n"],[6,[37,9],[[30,[36,8],["popover-select/optgroup"],[["components"],[[32,1]]]],[30,[36,8],["popover-select/option"],[["select","components","onclick"],[[32,0],[32,1],[30,[36,7],[[30,[36,6],[[32,0],"click"],null],[30,[36,5],[[35,4],[30,[36,3],null,null],[32,2,["toggle"]]],null]],null]]]]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["trigger"]],[["default"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name"],["selected"]],[["default"],[{"statements":[[2,"\\n "],[18,5,[[30,[36,0],null,[["Optgroup","Option"],[[32,3],[32,4]]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n "],[8,"yield-slot",[],[["@name"],["options"]],[["default"],[{"statements":[[2,"\\n "],[18,5,[[30,[36,0],null,[["Optgroup","Option"],[[32,3],[32,4]]]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4]}]]]],"parameters":[1,2]}]]],[2,"\\n"]],"hasEval":false,"upvars":["hash","position","or","noop","multiple","if","action","pipe","component","let"]}',meta:{moduleName:"consul-ui/components/popover-select/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:"",dom:Ember.inject.service("dom"),multiple:!1,required:!1,onchange:function(){},addOption:function(e){void 0===this._options&&(this._options=new Set),this._options.add(e)},removeOption:function(e){this._options.delete(e)},actions:{click:function(e,t){if(this.multiple){if(e.selected&&this.required){if(![...this._options].find(t=>t!==e&&t.selected))return t}}else{if(e.selected&&this.required)return t;[...this._options].filter(t=>t!==e).forEach(e=>{e.selected=!1})}return e.selected=!e.selected,this.onchange(this.dom.setEventTargetProperties(t,{selected:()=>e.args.value,selectedItems:()=>[...this._options].filter(e=>e.selected).map(e=>e.args.value).join(",")})),t}}})) +e.default=r})),define("consul-ui/components/popover-select/optgroup/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"tEmaYnIW",block:'{"symbols":["MenuSeparator","@label","&default","@components"],"statements":[[6,[37,0],[[32,4,["MenuSeparator"]]],null,[["default"],[{"statements":[[8,[32,1],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n "],[1,[32,2]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[18,3,null],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["let"]}',meta:{moduleName:"consul-ui/components/popover-select/optgroup/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/popover-select/option/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const o=Ember.HTMLBars.template({id:"n6EznTlk",block:'{"symbols":["MenuItem","&attrs","@onclick","@selected","&default","@components"],"statements":[[6,[37,6],[[32,6,["MenuItem"]]],null,[["default"],[{"statements":[[2," "],[8,[32,1],[[16,0,[30,[36,0],[[32,0,["selected"]],"is-active"],null]],[17,2],[4,[38,2],[[32,0,["connect"]]],null],[4,[38,2],[[30,[36,3],[[32,0],"selected",[32,4]],null]],null],[4,[38,4],[[30,[36,3],[[32,0],"selected",[32,4]],null]],null],[4,[38,5],[[32,0,["disconnect"]]],null]],[["@onclick","@selected"],[[30,[36,1],[[32,0],[32,3],[32,0]],null],[32,0,["selected"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n "],[18,5,null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["if","action","did-insert","set","did-update","will-destroy","let"]}',meta:{moduleName:"consul-ui/components/popover-select/option/index.hbs"}}) +let u=(n=Ember._tracked,r=Ember._action,a=Ember._action,l=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="selected",a=this,(r=s)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}connect(){this.args.select.addOption(this)}disconnect(){this.args.select.removeOption(this)}},s=i(l.prototype,"selected",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i(l.prototype,"connect",[r],Object.getOwnPropertyDescriptor(l.prototype,"connect"),l.prototype),i(l.prototype,"disconnect",[a],Object.getOwnPropertyDescriptor(l.prototype,"disconnect"),l.prototype),l) +e.default=u,Ember._setComponentTemplate(o,u)})),define("consul-ui/components/portal-target",["exports","ember-stargate/components/portal-target"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/portal",["exports","ember-stargate/components/portal"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select-multiple-with-create",["exports","ember-power-select-with-create/components/power-select-multiple-with-create"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select-multiple",["exports","ember-power-select/components/power-select-multiple"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select-multiple/trigger",["exports","ember-power-select/components/power-select-multiple/trigger"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select-with-create",["exports","ember-power-select-with-create/components/power-select-with-create"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select-with-create/suggested-option",["exports","ember-power-select-with-create/components/power-select-with-create/suggested-option"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select",["exports","ember-power-select/components/power-select"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select/before-options",["exports","ember-power-select/components/power-select/before-options"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select/no-matches-message",["exports","ember-power-select/components/power-select/no-matches-message"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select/options",["exports","ember-power-select/components/power-select/options"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select/placeholder",["exports","ember-power-select/components/power-select/placeholder"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select/power-select-group",["exports","ember-power-select/components/power-select/power-select-group"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select/search-message",["exports","ember-power-select/components/power-select/search-message"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/power-select/trigger",["exports","ember-power-select/components/power-select/trigger"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/progress/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"i9InYRlc",block:'{"symbols":["&attrs"],"statements":[[11,"div"],[24,0,"progress indeterminate"],[24,"role","progressbar"],[17,1],[12],[13],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/progress/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/radio-card/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"Z32bK3Za",block:'{"symbols":["&attrs","&default"],"statements":[[11,"label"],[17,1],[16,0,[31,["radio-card",[30,[36,5],[[35,1]," checked"],null]]]],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n"],[6,[37,5],[[30,[36,6],[[35,4,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[10,"input"],[15,3,[34,0]],[15,2,[34,4]],[15,"checked",[34,1]],[15,"onchange",[30,[36,3],[[32,0],[35,2]],null]],[14,4,"radio"],[12],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"input"],[15,3,[34,0]],[14,2,""],[15,"checked",[34,1]],[15,"onchange",[30,[36,3],[[32,0],[35,2]],null]],[14,4,"radio"],[12],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[18,2,null],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["name","checked","onchange","action","value","if","gt"]}',meta:{moduleName:"consul-ui/components/radio-card/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:""})) +e.default=n})) +define("consul-ui/components/radio-group/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"VMO7TmR4",block:'{"symbols":["item","_key","_value"],"statements":[[10,"fieldset"],[12],[2,"\\n "],[10,"div"],[14,"role","radiogroup"],[15,1,[31,["radiogroup_",[34,3]]]],[12],[2,"\\n"],[6,[37,12],[[30,[36,11],[[30,[36,11],[[35,10]],null]],null]],null,[["default"],[{"statements":[[6,[37,9],[[30,[36,1],[[30,[36,8],[[32,1,["key"]],[29]],null],[32,1,["key"]],[32,1,["value"]]],null],[30,[36,7],[[32,1,["label"]],[32,1,["value"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[15,"tabindex",[30,[36,1],[[35,0],"0"],null]],[15,"onkeydown",[30,[36,1],[[35,0],[30,[36,2],[[32,0],"keydown"],null]],null]],[15,0,[31,["type-radio value-",[32,2]]]],[12],[2," "],[2,"\\n "],[10,"input"],[15,3,[34,3]],[15,2,[32,2]],[15,"checked",[30,[36,1],[[30,[36,6],[[30,[36,5],[[35,4]],null],[32,2]],null],"checked"],null]],[15,"onchange",[30,[36,2],[[32,0],"change"],null]],[14,4,"radio"],[12],[13],[2,"\\n "],[10,"span"],[12],[1,[32,3]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2,3]}]]]],"parameters":[1]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["keyboardAccess","if","action","name","value","concat","eq","or","not-eq","let","items","-track-array","each"]}',meta:{moduleName:"consul-ui/components/radio-group/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",keyboardAccess:!1,dom:Ember.inject.service("dom"),init:function(){this._super(...arguments),this.name=this.dom.guid(this)},actions:{keydown:function(e){13===e.keyCode&&e.target.dispatchEvent(new MouseEvent("click"))},change:function(e){this.onchange(this.dom.setEventTargetProperty(e,"value",e=>""===e?void 0:e))}}})) +e.default=n})),define("consul-ui/components/ref/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Component.extend({tagName:"",didReceiveAttrs:function(){Ember.set(this.target,this.name,this.value)}}) +e.default=t})),define("consul-ui/components/role-form/index",["exports","consul-ui/components/form-component/index"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"YrahCt0J",block:'{"symbols":["&default","&attrs"],"statements":[[18,1,null],[2,"\\n"],[11,"fieldset"],[24,0,"role-form"],[16,"disabled",[30,[36,6],[[30,[36,2],[[30,[36,1],["write role"],[["item"],[[35,0]]]]],null],"disabled"],null]],[17,2],[12],[2,"\\n "],[10,"label"],[15,0,[31,["type-text",[30,[36,6],[[35,0,["error","Name"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Name"],[13],[2,"\\n "],[10,"input"],[15,2,[34,0,["Name"]]],[14,3,"role[Name]"],[14,"autofocus","autofocus"],[15,"oninput",[30,[36,7],[[32,0],"change"],null]],[14,4,"text"],[12],[13],[2,"\\n "],[10,"em"],[12],[2,"\\n Maximum 256 characters. May only include letters (uppercase and/or lowercase) and/or numbers. Must be unique.\\n "],[13],[2,"\\n"],[6,[37,6],[[35,0,["error","Name"]]],null,[["default"],[{"statements":[[2," "],[10,"strong"],[12],[1,[35,0,["error","Name","validation"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"label"],[14,0,"type-text"],[12],[2,"\\n "],[10,"span"],[12],[2,"Description (Optional)"],[13],[2,"\\n "],[10,"textarea"],[14,3,"role[Description]"],[15,2,[34,0,["Description"]]],[15,"oninput",[30,[36,7],[[32,0],"change"],null]],[12],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"],[10,"fieldset"],[14,1,"policies"],[14,0,"policies"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Policies"],[13],[2,"\\n"],[6,[37,9],null,[["name","params"],["policy",[30,[36,8],[[35,0]],null]]],[["default","else"],[{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"policy-selector",[],[["@disabled","@dc","@partition","@nspace","@items"],[[30,[36,2],[[30,[36,1],["write role"],[["item"],[[35,0]]]]],null],[34,3],[34,4],[34,5],[34,0,["Policies"]]]],null],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["item","can","not","dc","partition","nspace","if","action","block-params","yield-slot"]}',meta:{moduleName:"consul-ui/components/role-form/index.hbs"}}) +var r=Ember._setComponentTemplate(n,t.default.extend({type:"role",name:"role",classNames:["role-form"]})) +e.default=r})),define("consul-ui/components/role-selector/index",["exports","consul-ui/components/child-selector/index","consul-ui/utils/dom/event-source"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r=Ember.HTMLBars.template({id:"shRBjLTM",block:'{"symbols":["item","index","index","change","checked","confirm","send","keypressClick","__arg0","__arg1","Actions","option","modal","close"],"statements":[[8,"modal-dialog",[[24,0,"role-selector"],[24,1,"new-role"]],[["@onclose","@aria"],[[30,[36,1],[[32,0],[30,[36,10],[[35,9]],null],"role"],null],[30,[36,6],null,[["label"],[[30,[36,5],[[30,[36,15],[[35,9],"role"],null],"New Role","New Policy"],null]]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"modal",[32,13]]],null],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,15],[[35,9],"role"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"h2"],[12],[2,"New Role"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"h2"],[12],[2,"New Policy"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n\\n "],[10,"input"],[15,1,[31,[[34,16],"_state_role"]]],[15,3,[31,[[34,16],"[state]"]]],[14,2,"role"],[15,"checked",[30,[36,5],[[30,[36,15],[[35,9],"role"],null],"checked"],null]],[15,"onchange",[30,[36,1],[[32,0],"change"],null]],[14,4,"radio"],[12],[13],[2,"\\n "],[8,"role-form",[],[["@form","@dc","@nspace","@partition"],[[34,17],[34,18],[34,19],[34,20]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["policy"]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"policy-selector",[],[["@source","@dc","@partition","@nspace","@items"],[[34,21],[34,18],[34,20],[34,19],[34,11,["Policies"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["trigger"]],[["default"],[{"statements":[[2,"\\n "],[10,"label"],[15,"for",[31,[[34,16],"_state_policy"]]],[14,0,"type-dialog"],[12],[2,"\\n "],[10,"span"],[12],[2,"Create new policy"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[10,"input"],[15,1,[31,[[34,16],"_state_policy"]]],[15,3,[31,[[34,16],"[state]"]]],[14,2,"policy"],[15,"checked",[30,[36,5],[[30,[36,15],[[35,9],"policy"],null],"checked"],null]],[15,"onchange",[30,[36,1],[[32,0],"change"],null]],[14,4,"radio"],[12],[13],[2,"\\n "],[8,"policy-form",[],[["@name","@form","@dc","@nspace","@partition"],["role[policy]",[34,22],[34,18],[34,19],[34,20]]],null],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,5],[[30,[36,15],[[35,9],"role"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"button"],[15,"onclick",[30,[36,14],[[32,0,["save"]],[35,11],[35,0],[30,[36,13],[[30,[36,1],[[32,0],[32,14]],null],[30,[36,1],[[32,0],"reset"],null]],null]],null]],[15,"disabled",[30,[36,5],[[30,[36,8],[[35,11,["isSaving"]],[35,11,["isPristine"]],[35,11,["isInvalid"]]],null],"disabled"],null]],[14,4,"submit"],[12],[2,"\\n"],[6,[37,5],[[35,11,["isSaving"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"progress indeterminate"],[12],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"span"],[12],[2,"Create and apply"],[13],[2,"\\n "],[13],[2,"\\n "],[11,"button"],[16,"disabled",[30,[36,5],[[35,11,["isSaving"]],"disabled"],null]],[24,4,"reset"],[4,[38,1],[[32,0],[30,[36,13],[[30,[36,1],[[32,0],[32,14]],null],[30,[36,1],[[32,0],"reset"],null]],null]],null],[12],[2,"Cancel"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[11,"button"],[16,"disabled",[30,[36,5],[[30,[36,8],[[35,7,["isSaving"]],[35,7,["isPristine"]],[35,7,["isInvalid"]]],null],"disabled"],null]],[24,4,"submit"],[4,[38,1],[[32,0],"dispatch","save",[30,[36,12],[[35,7],[35,11,["Policies"]],[30,[36,1],[[32,0],[30,[36,10],[[35,9]],null],"role"],null]],null]],null],[12],[2,"\\n"],[6,[37,5],[[35,7,["isSaving"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"progress indeterminate"],[12],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"span"],[12],[2,"Create and apply"],[13],[2,"\\n "],[13],[2,"\\n "],[11,"button"],[16,"disabled",[30,[36,5],[[35,7,["isSaving"]],"disabled"],null]],[24,4,"reset"],[4,[38,1],[[32,0],[30,[36,10],[[35,9]],null],"role"],null],[12],[2,"Cancel"],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n"]],"parameters":[13]}]]],[2,"\\n\\n"],[8,"child-selector",[],[["@disabled","@repo","@dc","@partition","@nspace","@type","@placeholder","@items"],[[34,23],[34,24],[34,18],[34,20],[34,19],"role","Search for role",[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["label"]],[["default"],[{"statements":[[2,"\\n Apply an existing role\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["create"]],[["default"],[{"statements":[[2,"\\n "],[11,"label"],[24,0,"type-dialog"],[4,[38,2],["click",[30,[36,25],[[32,0,["modal","open"]]],null]],null],[12],[2,"\\n "],[10,"span"],[12],[2,"Create new role"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["option"]],[["default"],[{"statements":[[2,"\\n "],[1,[32,12,["Name"]]],[2,"\\n "]],"parameters":[12]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["set"]],[["default"],[{"statements":[[2,"\\n "],[8,"tabular-collection",[],[["@rows","@items"],[5,[30,[36,26],["CreateTime:desc","Name:asc",[35,0]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"th"],[12],[2,"Name"],[13],[2,"\\n "],[10,"th"],[12],[2,"Description"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,27],["dc.acls.roles.edit",[32,1,["ID"]]],null]],[12],[1,[32,1,["Name"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[1,[32,1,["Description"]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"popover-menu",[],[["@expanded","@onchange","@keyboardAccess"],[[30,[36,5],[[30,[36,15],[[32,5],[32,3]],null],true,false],null],[30,[36,1],[[32,0],[32,4],[32,3]],null],false]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["trigger"]],[["default"],[{"statements":[[2,"\\n More\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["menu"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,"role","none"],[12],[2,"\\n "],[10,"a"],[14,"role","menuitem"],[14,"tabindex","-1"],[15,6,[30,[36,27],["dc.acls.roles.edit",[32,1,["ID"]]],null]],[12],[2,"\\n"],[6,[37,5],[[30,[36,28],["edit role"],[["item"],[[32,1]]]]],null,[["default","else"],[{"statements":[[2," Edit\\n"]],"parameters":[]},{"statements":[[2," View\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,5],[[30,[36,29],[[35,23]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[14,"role","none"],[14,0,"dangerous"],[12],[2,"\\n "],[10,"label"],[15,"for",[32,6]],[14,"role","menuitem"],[14,"tabindex","-1"],[15,"onkeypress",[32,8]],[12],[2,"Remove"],[13],[2,"\\n "],[10,"div"],[14,"role","menu"],[12],[2,"\\n "],[8,"informed-action",[[24,0,"warning"]],[["@namedBlocksInfo"],[[30,[36,6],null,[["header","body","actions"],[0,0,1]]]]],[["default"],[{"statements":[[6,[37,5],[[30,[36,4],[[32,9],"header"],null]],null,[["default","else"],[{"statements":[[2,"\\n Confirm Remove\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,4],[[32,9],"body"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n Are you sure you want to remove this role?\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,4],[[32,9],"actions"],null]],null,[["default"],[{"statements":[[6,[37,3],[[32,10]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,11,["Action"]],[[24,0,"dangerous"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[[24,"tabindex","-1"],[4,[38,2],["click",[30,[36,1],[[32,0],[32,7],"remove",[32,1],[35,0]],null]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Remove\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,11,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"action",[],[["@for"],[[32,6]]],[["default"],[{"statements":[[2,"\\n Cancel\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[11]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[9,10]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[6,7,8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3,4,5]}]]],[2,"\\n "]],"parameters":[1,2]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["items","action","on","let","-is-named-block-invocation","if","hash","policy","or","state","mut","item","array","queue","perform","eq","name","form","dc","nspace","partition","source","policyForm","disabled","repo","optional","sort-by","href-to","can","not"]}',meta:{moduleName:"consul-ui/components/role-selector/index.hbs"}}) +var a=Ember._setComponentTemplate(r,t.default.extend({repo:Ember.inject.service("repository/role"),dom:Ember.inject.service("dom"),name:"role",type:"role",classNames:["role-selector"],state:"role",policy:Ember.computed.alias("policyForm.data"),init:function(){this._super(...arguments),this.policyForm=this.formContainer.form("policy"),this.source=new n.CallableEventSource},actions:{reset:function(e){this._super(...arguments),this.policyForm.clear({Datacenter:this.dc})},dispatch:function(e,t){this.source.dispatchEvent({type:e,data:t})},change:function(){const e=this.dom.normalizeEvent(...arguments),t=e.target +switch(t.name){case"role[state]":Ember.set(this,"state",t.value),"policy"===t.value&&this.dom.component(".code-editor",t.nextElementSibling).didAppear() +break +default:this._super(...arguments)}}}})) +e.default=a})),define("consul-ui/components/route/announcer/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"TLOSA7kE",block:'{"symbols":["@separator","@title"],"statements":[[1,[30,[36,1],[[32,2]],[["separator"],[[30,[36,0],[[32,1]," - "],null]]]]],[2,"\\n"],[8,"portal-target",[],[["@name"],["route-announcer"]],null],[2,"\\n\\n"]],"hasEval":false,"upvars":["or","page-title"]}',meta:{moduleName:"consul-ui/components/route/announcer/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/route/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b +function h(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function v(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const y=Ember.HTMLBars.template({id:"uH9p2fDA",block:'{"symbols":["&default"],"statements":[[1,[30,[36,0],[[32,0,["connect"]]],null]],[2,"\\n"],[1,[30,[36,1],[[32,0,["disconnect"]]],null]],[2,"\\n"],[18,1,[[30,[36,3],null,[["model","params","currentName","refresh","t","Title","Announcer"],[[32,0,["model"]],[32,0,["params"]],[32,0,["router","currentRoute","name"]],[32,0,["refresh"]],[32,0,["t"]],[30,[36,2],["route/title"],null],[30,[36,2],["route/announcer"],null]]]]]]],"hasEval":false,"upvars":["did-insert","will-destroy","component","hash"]}',meta:{moduleName:"consul-ui/components/route/index.hbs"}}),g=/\${([A-Za-z.0-9_-]+)}/g +let O=(n=Ember.inject.service("routlet"),r=Ember.inject.service("router"),a=Ember.inject.service("intl"),l=Ember.inject.service("encoder"),s=Ember._tracked,i=Ember._action,o=Ember._action,u=Ember._action,c=class extends t.default{constructor(){super(...arguments),h(this,"routlet",d,this),h(this,"router",m,this),h(this,"intl",p,this),h(this,"encoder",f,this),h(this,"_model",b,this),this.intlKey=this.encoder.createRegExpEncoder(g,e=>e)}get params(){return this.routlet.paramsFor(this.args.name)}get model(){if(this._model)return this._model +if(this.args.name){const e=this.routlet.outletFor(this.args.name) +return this.routlet.modelFor(e.name)}}t(e,t){return e.includes("${")&&(e=this.intlKey(e,t)),this.intl.t(`routes.${this.args.name}.${e}`,t)}connect(){this.routlet.addRoute(this.args.name,this)}disconnect(){this.routlet.removeRoute(this.args.name,this)}},d=v(c.prototype,"routlet",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=v(c.prototype,"router",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=v(c.prototype,"intl",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=v(c.prototype,"encoder",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=v(c.prototype,"_model",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v(c.prototype,"t",[i],Object.getOwnPropertyDescriptor(c.prototype,"t"),c.prototype),v(c.prototype,"connect",[o],Object.getOwnPropertyDescriptor(c.prototype,"connect"),c.prototype),v(c.prototype,"disconnect",[u],Object.getOwnPropertyDescriptor(c.prototype,"disconnect"),c.prototype),c) +e.default=O,Ember._setComponentTemplate(y,O)})),define("consul-ui/components/route/title/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"W83dDaVI",block:'{"symbols":["@title","@separator","@render","&attrs"],"statements":[[1,[30,[36,0],[[32,1]],[["separator"],[[32,2]]]]],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,3],false],null]],null,[["default"],[{"statements":[[1,[32,1]],[2,"\\n"]],"parameters":[]}]]],[8,"portal",[],[["@target"],["route-announcer"]],[["default"],[{"statements":[[2,"\\n"],[11,"div"],[24,0,"route-title"],[17,4],[24,"aria-live","assertive"],[24,"aria-atomic","true"],[12],[2,"\\n"],[2," "],[1,[30,[36,3],["Navigated to ",[32,1]],null]],[2,"\\n"],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["page-title","not-eq","if","concat"]}',meta:{moduleName:"consul-ui/components/route/title/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/search-bar/index",["exports","@glimmer/component","consul-ui/components/search-bar/utils"],(function(e,t,n){var r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const l=Ember.HTMLBars.template({id:"zyw10T4p",block:'{"symbols":["filter","@filter","&default","&attrs"],"statements":[[11,"div"],[24,0,"search-bar"],[17,4],[12],[2,"\\n "],[10,"form"],[14,0,"filter-bar"],[12],[2,"\\n "],[10,"div"],[14,0,"search"],[12],[2,"\\n "],[18,3,[[30,[36,6],["search"],null],[30,[36,1],null,[["Search","Select"],[[30,[36,5],["freetext-filter"],null],[30,[36,5],["popover-select"],null]]]]]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"filters"],[12],[2,"\\n "],[18,3,[[30,[36,6],["filter"],null],[30,[36,1],null,[["Search","Select"],[[30,[36,5],["freetext-filter"],null],[30,[36,5],["popover-select"],null]]]]]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"sort"],[12],[2,"\\n "],[18,3,[[30,[36,6],["sort"],null],[30,[36,1],null,[["Search","Select"],[[30,[36,5],["freetext-filter"],null],[30,[36,5],["popover-select"],null]]]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,12],[[32,0,["isFiltered"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"search-bar-status"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[1,[30,[36,8],[[30,[36,7],["component.search-bar.header"],[["default","item"],["common.ui.filtered-by",""]]]],null]],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,10],[[30,[36,9],[[30,[36,9],[[32,0,["filters"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[18,3,[[30,[36,6],["status"],null],[30,[36,1],null,[["RemoveFilter","status"],[[30,[36,5],["search-bar/remove-filter"],[["onclick"],[[30,[36,4],[[32,0],[30,[36,3],[[30,[36,3],[[32,2],[32,1,["key"]]],null],"change"],null],[30,[36,1],null,[["target"],[[30,[36,1],null,[["selectedItems"],[[30,[36,2],[[32,1,["selected"]],","],null]]]]]]]],null]]]],[30,[36,1],null,[["key","value"],[[32,1,["key"]],[30,[36,0],[[32,1,["value"]]],null]]]]]]]]],[2,"\\n"]],"parameters":[1]}]]],[2," "],[10,"li"],[14,0,"remove-all"],[12],[2,"\\n "],[8,"action",[[4,[38,11],["click",[32,0,["removeAllFilters"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n Remove filters\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["lowercase","hash","join","get","action","component","-named-block-invocation","t","string-trim","-track-array","each","on","if"]}',meta:{moduleName:"consul-ui/components/search-bar/index.hbs"}}) +let s=(r=Ember._action,a=class extends t.default{get isFiltered(){const e=this.args.filter.searchproperty||{default:[],value:[]} +return(0,n.diff)(e.default,e.value).length>0||Object.entries(this.args.filter).some(([e,t])=>"searchproperty"!==e&&void 0!==t.value)}get filters(){return(0,n.filters)(this.args.filter)}removeAllFilters(){Object.values(this.args.filter).forEach((e,t)=>{setTimeout(()=>e.change(e.default||[]),1*t)})}},i=a.prototype,o="removeAllFilters",u=[r],c=Object.getOwnPropertyDescriptor(a.prototype,"removeAllFilters"),d=a.prototype,m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a) +var i,o,u,c,d,m +e.default=s,Ember._setComponentTemplate(l,s)})),define("consul-ui/components/search-bar/remove-filter/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"qI+OTqbX",block:'{"symbols":["&attrs","@onclick","&default"],"statements":[[10,"li"],[12],[2,"\\n "],[8,"action",[[17,1],[4,[38,0],["click",[32,2]],null]],[[],[]],null],[2,"\\n "],[18,3,null],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["on"]}',meta:{moduleName:"consul-ui/components/search-bar/remove-filter/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/search-bar/utils",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.filters=e.diff=void 0 +const t=(e,t)=>e.filter(e=>!t.includes(e)) +e.diff=t +e.filters=e=>Object.entries(e).filter(([e,n])=>"searchproperty"===e?t(n.default,n.value).length>0:(n.value||[]).length>0).reduce((e,[n,r])=>e.concat(r.value.map(e=>{const a={key:n,value:e} +return a.selected="searchproperty"!==n?t(r.value,[e]):1===r.value.length?r.default:t(r.value,[e]),a})),[])})),define("consul-ui/components/secret-button/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"XcT8OSA5",block:'{"symbols":["&default"],"statements":[[10,"label"],[14,0,"type-reveal"],[12],[2,"\\n "],[10,"input"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[10,"span"],[12],[2,"Reveal"],[13],[2,"\\n "],[10,"em"],[12],[18,1,null],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/secret-button/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({})) +e.default=n})),define("consul-ui/components/shadow-host/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l +function s(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const i=Ember.HTMLBars.template({id:"U0GA4gT4",block:'{"symbols":["&default"],"statements":[[18,1,[[30,[36,2],null,[["host","root","Template"],[[30,[36,1],[[32,0,["attachShadow"]]],null],[32,0,["shadowRoot"]],[30,[36,0],["shadow-template"],[["shadowRoot"],[[32,0,["shadowRoot"]]]]]]]]]],[2,"\\n"]],"hasEval":false,"upvars":["component","fn","hash"]}',meta:{moduleName:"consul-ui/components/shadow-host/index.hbs"}}) +let o=(n=Ember._tracked,r=Ember._action,a=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="shadowRoot",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}attachShadow(e){this.shadowRoot=e.attachShadow({mode:"open"})}},l=s(a.prototype,"shadowRoot",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s(a.prototype,"attachShadow",[r],Object.getOwnPropertyDescriptor(a.prototype,"attachShadow"),a.prototype),a) +e.default=o,Ember._setComponentTemplate(i,o)})),define("consul-ui/components/shadow-template/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"SySVt5/r",block:'{"symbols":["@styles","@shadowRoot","&default"],"statements":[[6,[37,1],[[32,2]],null,[["default"],[{"statements":[[6,[37,2],[[32,2]],[["guid","insertBefore"],["%cursor:0%",[29]]],[["default"],[{"statements":[[6,[37,1],[[32,1]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],[[32,2],[32,1]],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[18,3,null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["adopt-styles","if","in-element"]}',meta:{moduleName:"consul-ui/components/shadow-template/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/state-chart/action/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"vK0LWE3t",block:'{"symbols":["&default"],"statements":[[18,1,null]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/state-chart/action/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",didInsertElement:function(){this._super(...arguments),this.chart.addAction(this.name,(e,t)=>this.exec(e,t))},willDestroy:function(){this._super(...arguments),this.chart.removeAction(this.type)}})) +e.default=n})),define("consul-ui/components/state-chart/guard/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"ajHPMf+f",block:'{"symbols":["&default"],"statements":[[18,1,null]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/state-chart/guard/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({tagName:"",didInsertElement:function(){this._super(...arguments) +const e=this +this.chart.addGuard(this.name,(function(){return"function"==typeof e.cond?e.cond(...arguments):e.cond}))},willDestroyElement:function(){this._super(...arguments),this.chart.removeGuard(this.name)}})) +e.default=n})),define("consul-ui/components/state-chart/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"uYjYKgyF",block:'{"symbols":["&default"],"statements":[[18,1,[[30,[36,2],["state"],[["state"],[[35,0]]]],[30,[36,2],["state-chart/guard"],[["chart"],[[32,0]]]],[30,[36,2],["state-chart/action"],[["chart"],[[32,0]]]],[30,[36,1],[[32,0],"dispatch"],null],[35,0]]]],"hasEval":false,"upvars":["state","action","component"]}',meta:{moduleName:"consul-ui/components/state-chart/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({chart:Ember.inject.service("state"),tagName:"",ontransition:function(){},init:function(){this._super(...arguments),this._actions={},this._guards={}},didReceiveAttrs:function(){void 0!==this.machine&&this.machine.stop(),void 0!==this.initial&&(this.src.initial=this.initial),this.machine=this.chart.interpret(this.src,{onTransition:e=>{const t=new CustomEvent("transition",{detail:e}) +this.ontransition(t),t.defaultPrevented||e.actions.forEach(t=>{"function"==typeof this._actions[t.type]&&this._actions[t.type](t.type,e.context,e.event)}),Ember.set(this,"state",e)},onGuard:(e,...t)=>this._guards[e](...t)})},didInsertElement:function(){this._super(...arguments),Ember.set(this,"state",this.machine.initialState||this.machine.state),this.machine.start()},willDestroy:function(){this._super(...arguments),this.machine.stop()},addAction:function(e,t){this._actions[e]=t},removeAction:function(e){delete this._actions[e]},addGuard:function(e,t){this._guards[e]=t},removeGuard:function(e){delete this._guards[e]},dispatch:function(e,t){this.machine.state.context=t,this.machine.send({type:e})},actions:{dispatch:function(e,t){t&&t.preventDefault&&(void 0!==t.target.nodeName&&"a"===t.target.nodeName.toLowerCase()||t.preventDefault()),this.dispatch(e,t)}}})) +e.default=n})),define("consul-ui/components/state/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"oAnib0UE",block:'{"symbols":["&default"],"statements":[[6,[37,1],[[35,0]],null,[["default"],[{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["rendering","if"]}',meta:{moduleName:"consul-ui/components/state/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({service:Ember.inject.service("state"),tagName:"",didReceiveAttrs:function(){if(void 0===this.state)return +let e=!0 +void 0!==this.matches?e=this.service.matches(this.state,this.matches):void 0!==this.notMatches&&(e=!this.service.matches(this.state,this.notMatches)),Ember.set(this,"rendering",e)}})) +e.default=n})),define("consul-ui/components/tab-nav/index",["exports","@glimmer/component"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"AuN05zkB",block:'{"symbols":["select","name","item","@items","@onclick","&attrs"],"statements":[[6,[37,16],[[30,[36,15],[[30,[36,14],[[32,0],"style"],null]],[["offset"],[true]]],"tab"],null,[["default"],[{"statements":[[11,"nav"],[23,5,[30,[36,1],[[32,0,["style"]],[30,[36,11],["--selected-width:",[32,0,["style","width"]],";","--selected-left:",[32,0,["style","left"]],";","--selected-height:",[32,0,["style","height"]],";","--selected-top:",[32,0,["style","top"]]],null],[29]],null]],[24,"aria-label","Secondary"],[16,0,[30,[36,11],["tab-nav"," animatable"],null]],[17,6],[12],[2,"\\n "],[10,"ul"],[12],[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,4]],null]],null]],null,[["default"],[{"statements":[[2," "],[11,"li"],[16,0,[30,[36,1],[[30,[36,4],[[32,3,["selected"]],[30,[36,3],[[35,2],[30,[36,1],[[32,3,["label"]],[30,[36,0],[[32,3,["label"]]],null],[30,[36,0],[[32,3]],null]],null]],null]],null],"selected"],null]],[4,[38,6],["click",[30,[36,5],[[32,1]],null]],null],[4,[38,8],[[30,[36,1],[[32,3,["selected"]],[30,[36,5],[[32,1]],null],[30,[36,7],null,null]],null],[32,4,["length"]]],null],[12],[2,"\\n "],[8,"action",[[4,[38,6],["click",[30,[36,1],[[30,[36,10],[[32,5],[29]],null],[30,[36,5],[[32,5],[30,[36,9],[[32,3,["label"]]],null]],null],[30,[36,7],null,null]],null]],null]],[["@href"],[[32,3,["href"]]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,3,["label"]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"parameters":[1,2]}]]]],"hasEval":false,"upvars":["slugify","if","selected","eq","or","fn","on","noop","did-upsert","uppercase","not-eq","concat","-track-array","each","set","dom-position","let"]}',meta:{moduleName:"consul-ui/components/tab-nav/index.hbs"}}) +class r extends t.default{}e.default=r,Ember._setComponentTemplate(n,r)})),define("consul-ui/components/tabular-collection/index",["exports","ember-collection/components/ember-collection","ember-collection/utils/needs-revalidate","ember-collection/layouts/grid","block-slots"],(function(e,t,n,r,a){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const l=Ember.HTMLBars.template({id:"Vy6UbjoV",block:'{"symbols":["cell","index","&default","&attrs"],"statements":[[11,"table"],[16,0,[31,["tabular-collection dom-recycling ",[30,[36,4],[[35,3],"has-actions",""],null]]]],[16,1,[34,5]],[23,5,[30,[36,7],["height:",[35,6,["height"]],"px"],null]],[17,4],[12],[2,"\\n"],[1,[30,[36,8],["resize",[30,[36,1],[[32,0],"resize"],null]],null]],[2,"\\n"],[18,3,null],[2,"\\n"],[6,[37,4],[[35,9]],null,[["default"],[{"statements":[[2," "],[10,"caption"],[12],[8,"yield-slot",[],[["@name"],["caption"]],[["default"],[{"statements":[[18,3,null]],"parameters":[]}]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"thead"],[12],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[18,3,null]],"parameters":[]}]]],[2,"\\n"],[6,[37,4],[[35,3]],null,[["default"],[{"statements":[[2," "],[10,"th"],[14,0,"actions"],[12],[2,"Actions"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"ember-native-scrollable",[],[["@tagName","@content-size","@scroll-left","@scroll-top","@scrollChange","@clientSizeChange"],["tbody",[34,10],[34,11],[34,12],[30,[36,1],[[32,0],"scrollChange"],null],[30,[36,1],[[32,0],"clientSizeChange"],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"tr"],[12],[13],[6,[37,15],[[30,[36,14],[[30,[36,14],[[35,13]],null]],null]],null,[["default"],[{"statements":[[10,"tr"],[22,5,[32,1,["style"]]],[15,"onclick",[30,[36,1],[[32,0],"click"],null]],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[18,3,[[32,1,["item"]],[32,2]]]],"parameters":[]}]]],[2,"\\n"],[6,[37,4],[[35,3]],null,[["default"],[{"statements":[[2," "],[10,"td"],[14,0,"actions"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name","@params"],["actions",[30,[36,2],[[32,1,["index"]],[30,[36,1],[[32,0],"change"],null],[35,0]],null]]],[["default"],[{"statements":[[2,"\\n "],[18,3,[[32,1,["item"]],[32,2]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13]],"parameters":[1,2]}]]]],"parameters":[]}]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["checked","action","block-params","hasActions","if","guid","style","concat","on-window","hasCaption","_contentSize","_scrollLeft","_scrollTop","_cells","-track-array","each"]}',meta:{moduleName:"consul-ui/components/tabular-collection/index.hbs"}}),s=r.default.prototype.formatItemStyle +var i=Ember._setComponentTemplate(l,t.default.extend(a.default,{tagName:"",dom:Ember.inject.service("dom"),width:1150,rowHeight:50,maxHeight:500,checked:null,hasCaption:!1,init:function(){this._super(...arguments),this.guid=this.dom.guid(this) +const e=this +this["cell-layout"]=new r.default(Ember.get(this,"width"),Ember.get(this,"rowHeight")),this["cell-layout"].formatItemStyle=function(t){let n=s.apply(this,arguments) +return e.checked===t&&(n+=";z-index: 1"),n}},didInsertElement:function(){this._super(...arguments),this.$element=this.dom.element("#"+this.guid),this.actions.resize.apply(this,[{target:this.dom.viewport()}])},style:Ember.computed("rowHeight","_items","maxRows","maxHeight",(function(){const e=Ember.get(this,"rows") +let t=Ember.get(this,"maxHeight") +if(e){let n=Math.max(3,Ember.get(this._items||[],"length")) +n=Math.min(e,n),t=Ember.get(this,"rowHeight")*n+29}return{height:t}})),willRender:function(){this._super(...arguments),Ember.set(this,"hasCaption",this._isRegistered("caption")),Ember.set(this,"hasActions",this._isRegistered("actions"))},_needsRevalidate:function(){this.isDestroyed||this.isDestroying||(this._isGlimmer2()?this.rerender():(0,n.default)(this))},actions:{resize:function(e){const t=this.$element,n=this.dom.element(".app-view") +if(n){const a=1,l=t.getBoundingClientRect(),i=this.dom.element('footer[role="contentinfo"]'),o=l.top+i.clientHeight+a,u=e.target.innerHeight-o +this.set("maxHeight",Math.max(0,u)),this["cell-layout"]=new r.default(n.clientWidth,Ember.get(this,"rowHeight")) +const c=this +this["cell-layout"].formatItemStyle=function(e){let t=s.apply(this,arguments) +return c.checked===e&&(t+=";z-index: 1"),t},this.updateItems(),this.updateScrollPosition()}},click:function(e){return this.dom.clickFirstAnchor(e)},change:function(e,t={}){if(this.$tr&&(this.$tr.style.zIndex=null),t.target&&t.target.checked&&e!==Ember.get(this,"checked")){Ember.set(this,"checked",parseInt(e)) +const n=t.target,r=this.dom.closest("tr",n),a=this.dom.sibling(n,"div") +a.getBoundingClientRect().top+a.clientHeight>this.dom.element('footer[role="contentinfo"]').getBoundingClientRect().top?a.classList.add("above"):a.classList.remove("above"),r.style.zIndex=1,this.$tr=r}else Ember.set(this,"checked",null)}}})) +e.default=i})),define("consul-ui/components/tabular-details/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"1/kFWI3B",block:'{"symbols":["inputId","item","index","&default"],"statements":[[18,4,null],[2,"\\n"],[10,"table"],[14,0,"with-details has-actions"],[12],[2,"\\n "],[10,"thead"],[12],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[18,4,null]],"parameters":[]}]]],[2,"\\n "],[10,"th"],[14,0,"actions"],[12],[2,"Actions"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,9],[[30,[36,1],["tabular-details-",[35,4],"-toggle-",[35,8],"_"],null]],null,[["default"],[{"statements":[[6,[37,7],[[30,[36,6],[[30,[36,6],[[35,5]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[15,"onclick",[30,[36,0],[[32,0],"click"],null]],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[18,4,[[32,2],[32,3]]]],"parameters":[]}]]],[2,"\\n "],[10,"td"],[14,0,"actions"],[12],[2,"\\n "],[10,"label"],[15,"for",[30,[36,1],[[32,1],[32,3]],null]],[12],[10,"span"],[12],[2,"Show details"],[13],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","3"],[12],[2,"\\n "],[10,"input"],[15,"checked",[30,[36,3],[[30,[36,2],[[32,2,["closed"]]],null]],null]],[15,2,[32,3]],[15,3,[34,4]],[15,1,[30,[36,1],[[32,1],[32,3]],null]],[15,"onchange",[30,[36,0],[[32,0],"change",[32,2],[35,5]],null]],[14,4,"checkbox"],[12],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"label"],[15,"for",[30,[36,1],[[32,1],[32,3]],null]],[12],[10,"span"],[12],[2,"Hide details"],[13],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[8,"yield-slot",[],[["@name"],["details"]],[["default"],[{"statements":[[2,"\\n "],[18,4,[[32,2],[32,3]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2,3]}]]]],"parameters":[1]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["action","concat","is-empty","not","name","items","-track-array","each","guid","let"]}',meta:{moduleName:"consul-ui/components/tabular-details/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{dom:Ember.inject.service("dom"),onchange:function(){},init:function(){this._super(...arguments),this.guid=this.dom.guid(this)},actions:{click:function(e){this.dom.clickFirstAnchor(e)},change:function(e,t,n){this.onchange(n,e,t)}}})) +e.default=r})),define("consul-ui/components/tag-list/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"m+vNqE0Z",block:'{"symbols":["tags","item","&attrs","@item","&default","@namedBlocksInfo","@tags"],"statements":[[6,[37,11],[[30,[36,10],[[30,[36,9],[[32,4,["Tags"]],[30,[36,1],null,null]],null],[30,[36,9],[[32,7],[30,[36,1],null,null]],null]],null]],null,[["default"],[{"statements":[[6,[37,7],[[30,[36,8],[[32,1,["length"]],0],null]],null,[["default"],[{"statements":[[6,[37,7],[[30,[36,6],[[32,6],"default",[27,[32,5]]],null]],null,[["default","else"],[{"statements":[[2," "],[18,5,[[30,[36,5],["tag-list"],[["item"],[[32,4]]]]]],[2,"\\n"]],"parameters":[]},{"statements":[[11,"dl"],[24,0,"tag-list"],[17,3],[12],[2,"\\n "],[11,"dt"],[4,[38,0],null,null],[12],[2,"\\n "],[1,[30,[36,2],["components.tag-list.title"],[["default"],[[30,[36,1],["common.consul.tags"],null]]]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n"],[6,[37,4],[[30,[36,3],[[30,[36,3],[[32,1]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[1,[32,2]],[13],[2,"\\n"]],"parameters":[2]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["tooltip","array","t","-track-array","each","component","-has-block","if","gt","or","union","let"]}',meta:{moduleName:"consul-ui/components/tag-list/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/text-input/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"BI0eUwml",block:'{"symbols":["__arg0","@name","@item","@value","@placeholder","@chart","@validations","@oninput","@expanded","@label","&attrs","@help"],"statements":[[8,"form-input",[[16,0,[30,[36,7],["text-input"," type-text"],null]],[17,11]],[["@item","@placeholder","@name","@label","@help","@validations","@chart","@namedBlocksInfo"],[[32,3],[32,5],[32,2],[32,10],[32,12],[32,7],[32,6],[30,[36,8],null,[["label","input"],[0,0]]]]],[["default"],[{"statements":[[6,[37,5],[[30,[36,6],[[32,1],"label"],null]],null,[["default","else"],[{"statements":[[2,"\\n"],[2," "],[1,[30,[36,1],[[32,10],[32,2]],null]],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,6],[[32,1],"input"],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[32,9]],null,[["default","else"],[{"statements":[[2," "],[11,"textarea"],[16,3,[32,2]],[4,[38,2],[[32,3]],[["validations","chart"],[[32,7],[32,6]]]],[4,[38,4],["input",[30,[36,3],[[32,8]],null]],null],[12],[1,[30,[36,1],[[32,4],[30,[36,0],[[32,3],[32,2]],null]],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[11,"input"],[16,2,[30,[36,1],[[32,4],[30,[36,0],[[32,3],[32,2]],null]],null]],[16,3,[32,2]],[16,"placeholder",[30,[36,1],[[32,5]],null]],[24,4,"text"],[4,[38,2],[[32,3]],[["validations","chart"],[[32,7],[32,6]]]],[4,[38,4],["input",[30,[36,3],[[32,8]],null]],null],[12],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["get","or","validate","optional","on","if","-is-named-block-invocation","concat","hash"]}',meta:{moduleName:"consul-ui/components/text-input/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/toggle-button/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"R/cqpwNW",block:'{"symbols":["&attrs","&default"],"statements":[[11,"input"],[17,1],[16,"checked",[30,[36,1],[[35,0],"checked",[29]],null]],[16,1,[30,[36,3],["toggle-button-",[35,2]],null]],[16,"onchange",[30,[36,4],[[32,0],"change"],null]],[24,4,"checkbox"],[4,[38,6],[[30,[36,5],[[32,0],"input"],null]],null],[12],[13],[2,"\\n"],[11,"label"],[16,"for",[30,[36,3],["toggle-button-",[35,2]],null]],[4,[38,6],[[30,[36,5],[[32,0],"label"],null]],null],[12],[2,"\\n "],[18,2,[[30,[36,7],null,[["click"],[[30,[36,4],[[32,0],"click"],null]]]]]],[2,"\\n"],[13]],"hasEval":false,"upvars":["checked","if","guid","concat","action","set","did-insert","hash"]}',meta:{moduleName:"consul-ui/components/toggle-button/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember.Component.extend({dom:Ember.inject.service("dom"),tagName:"",checked:!1,onchange:function(){},onblur:function(){},init:function(){this._super(...arguments),this.guid=this.dom.guid(this),this._listeners=this.dom.listeners()},willDestroyElement:function(){this._super(...arguments),this._listeners.remove()},didReceiveAttrs:function(){this._super(...arguments),this.checked?this.addClickOutsideListener():this._listeners.remove()},addClickOutsideListener:function(){this._listeners.remove(),this._listeners.add(this.dom.document(),"click",e=>{this.dom.isOutside(this.label,e.target)&&this.dom.isOutside(this.label.nextElementSibling,e.target)&&(this.input.checked&&(this.input.checked=!1,this.onchange({target:this.input})),this._listeners.remove())})},actions:{click:function(e){-1===(e.target.rel||"").indexOf("noopener")&&e.preventDefault(),this.input.checked=!this.input.checked,0!==e.detail&&e.target.blur(),this.actions.change.apply(this,[e])},change:function(){this.input.checked&&this.addClickOutsideListener(),this.onchange({target:this.input})}}})) +e.default=n})),define("consul-ui/components/token-list/index",["exports","block-slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"Nxw8uhmR",block:'{"symbols":["item","index","&default"],"statements":[[18,3,null],[2,"\\n"],[6,[37,3],[[30,[36,8],[[35,1,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"tabular-collection",[[24,0,"token-list"]],[["@rows","@items"],[5,[30,[36,2],["AccessorID:asc",[35,1]],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[35,0]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["caption"]],[["default"],[{"statements":[[1,[34,0]]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"th"],[12],[2,"AccessorID"],[13],[2,"\\n "],[10,"th"],[12],[2,"Scope"],[13],[2,"\\n "],[10,"th"],[12],[2,"Description"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"a"],[15,6,[30,[36,4],["dc.acls.tokens.edit",[32,1,["AccessorID"]]],null]],[15,"target",[30,[36,6],[[35,5],""],null]],[12],[1,[30,[36,7],[[32,1,["AccessorID"]],8,false],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[1,[30,[36,3],[[32,1,["Local"]],"local","global"],null]],[2,"\\n "],[13],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"p"],[12],[1,[32,1,["Description"]]],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1,2]}]]],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["caption","items","sort-by","if","href-to","target","or","truncate","gt"]}',meta:{moduleName:"consul-ui/components/token-list/index.hbs"}}) +var r=Ember._setComponentTemplate(n,Ember.Component.extend(t.default,{tagName:""})) +e.default=r})),define("consul-ui/components/token-source/chart.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"token-source",initial:"idle",on:{RESTART:[{target:"secret",cond:"isSecret"},{target:"provider"}]},states:{idle:{},secret:{},provider:{on:{SUCCESS:"jwt"}},jwt:{on:{SUCCESS:"token"}},token:{}}}})),define("consul-ui/components/token-source/index",["exports","@glimmer/component","consul-ui/components/token-source/chart.xstate"],(function(e,t,n){var r,a,l,s,i,o,u +function c(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const f=Ember.HTMLBars.template({id:"mPga2rq/",block:'{"symbols":["State","Guard","Action","dispatch","state","path","@value","@onerror","@type","@dc","@nspace","@partition"],"statements":[[8,"state-chart",[],[["@src","@initial"],[[32,0,["chart"]],[30,[36,8],[[30,[36,7],[[32,9],"oidc"],null],"provider","secret"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,2],[],[["@name","@cond"],["isSecret",[32,0,["isSecret"]]]],null],[2,"\\n"],[6,[37,9],[[30,[36,2],["/${partition}/${nspace}/${dc}",[30,[36,0],null,[["partition","nspace","dc"],[[30,[36,6],[[32,7,["Partition"]],[32,12]],null],[30,[36,6],[[32,7,["Namespace"]],[32,11]],null],[32,10]]]]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,1],[],[["@matches"],["secret"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange","@onerror"],[[30,[36,2],[[30,[36,1],[[32,6],"/token/self/${value}"],null],[30,[36,0],null,[["value"],[[32,7]]]]],null],[32,0,["change"]],[32,8]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1],[],[["@matches"],["provider"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange","@onerror"],[[30,[36,2],[[30,[36,1],[[32,6],"/oidc/provider/${value}"],null],[30,[36,0],null,[["value"],[[32,7,["Name"]]]]]],null],[30,[36,5],[[30,[36,3],[[32,0],[30,[36,4],[[32,0,["provider"]]],null]],[["value"],["data"]]],[30,[36,3],[[32,0],[32,4],"SUCCESS"],null]],null],[32,8]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1],[],[["@matches"],["jwt"]],[["default"],[{"statements":[[2,"\\n "],[8,"jwt-source",[],[["@src","@onchange","@onerror"],[[32,0,["provider","AuthURL"]],[30,[36,5],[[30,[36,3],[[32,0],[30,[36,4],[[32,0,["jwt"]]],null]],[["value"],["data"]]],[30,[36,3],[[32,0],[32,4],"SUCCESS"],null]],null],[32,8]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1],[],[["@matches"],["token"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange","@onerror"],[[30,[36,2],[[30,[36,1],[[32,6],"/oidc/authorize/${provider}/${code}/${state}"],null],[30,[36,0],null,[["provider","code","state"],[[32,0,["provider","Name"]],[32,0,["jwt","authorizationCode"]],[30,[36,6],[[32,0,["jwt","authorizationState"]],""],null]]]]],null],[32,0,["change"]],[32,8]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[6]}]]]],"parameters":[1,2,3,4,5]}]]]],"hasEval":false,"upvars":["hash","concat","uri","action","mut","queue","or","eq","if","let"]}',meta:{moduleName:"consul-ui/components/token-source/index.hbs"}}) +let b=(r=Ember._tracked,a=Ember._tracked,l=Ember._action,s=Ember._action,i=class extends t.default{constructor(){super(...arguments),d(this,"provider",o,this),d(this,"jwt",u,this),this.chart=n.default}isSecret(){return"secret"===this.args.type}change(e){e.data.toJSON=function(){return function(e){for(var t=1;t{const n=parseFloat(t.getTotalLength()),r=t.getPointAtLength(Math.ceil(n/3)) +return{id:t.id,x:Math.round(r.x-e.x),y:Math.round(r.y-e.y)}})}},s=u(l.prototype,"iconPositions",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i=u(l.prototype,"dom",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u(l.prototype,"getIconPositions",[a],Object.getOwnPropertyDescriptor(l.prototype,"getIconPositions"),l.prototype),l) +e.default=d,Ember._setComponentTemplate(c,d)})),define("consul-ui/components/topology-metrics/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y +function g(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function O(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const _=Ember.HTMLBars.template({id:"FlkBlhGg",block:'{"symbols":["upstreams","dc","item","item","@service","@dc","@hasMetricsProvider","@metricsHref","@topology","@nspace","@oncreate"],"statements":[[11,"div"],[24,0,"topology-container consul-topology-metrics"],[4,[38,13],[[32,0,["calculate"]]],null],[12],[2,"\\n"],[6,[37,3],[[30,[36,14],[[32,0,["downstreams","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[11,"div"],[24,1,"downstream-container"],[4,[38,4],[[32,0,["setHeight"]],"downstream-lines"],null],[4,[38,5],[[32,0,["setHeight"]],"downstream-lines",[32,0,["downstreams"]]],null],[12],[2,"\\n"],[6,[37,3],[[30,[36,12],[[32,0,["emptyColumn"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n "],[10,"p"],[12],[1,[32,6,["Name"]]],[13],[2,"\\n "],[10,"span"],[12],[2,"\\n "],[8,"tooltip",[],[[],[]],[["default"],[{"statements":[[2,"\\n Only showing downstreams within the current datacenter for "],[1,[32,5,["Service","Service"]]],[2,".\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,7],[[30,[36,6],[[30,[36,6],[[32,0,["downstreams"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"topology-metrics/card",[],[["@nspace","@dc","@service","@item","@hasMetricsProvider","@noMetricsReason"],[[32,10],[32,6,["Name"]],[32,5,["Service"]],[32,4],[32,7],[32,0,["noMetricsReason"]]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,7],[32,0,["mainNotIngressService"]],[30,[36,1],[[32,4,["Kind"]],"ingress-gateway"],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"topology-metrics/stats",[],[["@nspace","@partition","@dc","@endpoint","@service","@item","@noMetricsReason"],[[30,[36,0],[[32,4,["Namespace"]],"default"],null],[30,[36,0],[[32,4,["Partition"]],"default"],null],[32,4,["Datacenter"]],"downstream-summary-for-service",[32,5,["Service","Service"]],[32,4,["Name"]],[32,0,["noMetricsReason"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[4]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"div"],[14,1,"metrics-container"],[12],[2,"\\n "],[10,"div"],[14,0,"metrics-header"],[12],[2,"\\n "],[1,[32,5,["Service","Service"]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,3],[[30,[36,1],[[32,5,["Service","Meta","external-source"]],"consul-api-gateway"],null]],null,[["default"],[{"statements":[[6,[37,3],[[32,7]],null,[["default"],[{"statements":[[2," "],[8,"topology-metrics/series",[],[["@nspace","@partition","@dc","@service","@protocol","@noMetricsReason"],[[30,[36,0],[[32,5,["Service","Namespace"]],"default"],null],[30,[36,0],[[35,11,["Service","Partition"]],"default"],null],[32,6,["Name"]],[32,5,["Service","Service"]],[32,9,["Protocol"]],[32,0,["noMetricsReason"]]]],null],[2,"\\n"],[6,[37,3],[[32,0,["mainNotIngressService"]]],null,[["default"],[{"statements":[[2," "],[8,"topology-metrics/stats",[],[["@nspace","@partition","@dc","@endpoint","@service","@protocol","@noMetricsReason"],[[30,[36,0],[[32,5,["Service","Namespace"]],"default"],null],[30,[36,0],[[35,11,["Service","Partition"]],"default"],null],[32,6,["Name"]],"summary-for-service",[32,5,["Service","Service"]],[32,9,["Protocol"]],[32,0,["noMetricsReason"]]]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[10,"div"],[14,0,"link"],[12],[2,"\\n"],[6,[37,3],[[32,8]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[14,0,"metrics-link"],[15,6,[32,8]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"Open dashboard"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[14,0,"config-link"],[15,6,[31,[[30,[36,10],["CONSUL_DOCS_URL"],null],"/connect/observability/ui-visualization"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"Configure dashboard"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,1,"downstream-lines"],[12],[2,"\\n "],[8,"topology-metrics/down-lines",[],[["@type","@service","@view","@center","@lines","@items","@oncreate"],["downstream",[32,5],[32,0,["downView"]],[32,0,["centerDimensions"]],[32,0,["downLines"]],[32,0,["downstreams"]],[30,[36,15],[[32,0],[32,11]],null]]],null],[2,"\\n "],[13],[2,"\\n"],[6,[37,3],[[30,[36,14],[[32,0,["upstreams","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,1,"upstream-column"],[12],[2,"\\n"],[6,[37,7],[[30,[36,9],[[30,[36,8],["Datacenter",[32,0,["upstreams"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[11,"div"],[24,1,"upstream-container"],[4,[38,4],[[32,0,["setHeight"]],"upstream-lines"],null],[4,[38,5],[[32,0,["setHeight"]],"upstream-lines",[32,0,["upstreams"]]],null],[12],[2,"\\n"],[6,[37,3],[[32,2]],null,[["default"],[{"statements":[[2," "],[10,"p"],[12],[1,[32,2]],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,7],[[30,[36,6],[[30,[36,6],[[32,1]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"topology-metrics/card",[],[["@dc","@item","@service"],[[32,6,["Name"]],[32,3],[32,5,["Service"]]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,7],[32,0,["mainNotIngressService"]],[30,[36,1],[[32,3,["Kind"]],"ingress-gateway"],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"topology-metrics/stats",[],[["@nspace","@partition","@dc","@endpoint","@service","@item","@noMetricsReason"],[[30,[36,0],[[32,3,["Namespace"]],"default"],null],[30,[36,0],[[32,3,["Partition"]],"default"],null],[32,3,["Datacenter"]],"upstream-summary-for-service",[32,5,["Service","Service"]],[32,3,["Name"]],[32,0,["noMetricsReason"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3]}]]],[2," "],[13],[2,"\\n"]],"parameters":[1,2]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"div"],[14,1,"upstream-lines"],[12],[2,"\\n "],[8,"topology-metrics/up-lines",[],[["@type","@service","@view","@center","@lines","@items","@oncreate"],["upstream",[32,5],[32,0,["upView"]],[32,0,["centerDimensions"]],[32,0,["upLines"]],[32,0,["upstreams"]],[30,[36,15],[[32,0],[32,11]],null]]],null],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["or","not-eq","and","if","did-insert","did-update","-track-array","each","group-by","-each-in","env","service","not","on-resize","gt","action"]}',meta:{moduleName:"consul-ui/components/topology-metrics/index.hbs"}}) +let P=(n=Ember.inject.service("env"),r=Ember._tracked,a=Ember._tracked,l=Ember._tracked,s=Ember._tracked,i=Ember._tracked,o=Ember._tracked,u=Ember._action,c=Ember._action,d=class extends t.default{constructor(...e){super(...e),g(this,"env",m,this),g(this,"centerDimensions",p,this),g(this,"downView",f,this),g(this,"downLines",b,this),g(this,"upView",h,this),g(this,"upLines",v,this),g(this,"noMetricsReason",y,this)}drawDownLines(e){const t=["allow","deny"],n={x:this.centerDimensions.x-7,y:this.centerDimensions.y+this.centerDimensions.height/2} +return e.map(e=>{const t=e.getBoundingClientRect(),r={x:t.x+t.width,y:t.y+t.height/2} +return{id:e.id,permission:e.getAttribute("data-permission"),dest:n,src:r}}).sort((e,n)=>t.indexOf(e.permission)-t.indexOf(n.permission))}drawUpLines(e){const t=["allow","deny"],n={x:this.centerDimensions.x+5.5,y:this.centerDimensions.y+this.centerDimensions.height/2} +return e.map(e=>{const t=e.getBoundingClientRect(),r={x:t.x-t.width-25,y:t.y+t.height/2} +return{id:e.id,permission:e.getAttribute("data-permission"),dest:r,src:n}}).sort((e,n)=>t.indexOf(e.permission)-t.indexOf(n.permission))}emptyColumn(){const e=Ember.get(this.args.topology,"noDependencies") +return!this.env.var("CONSUL_ACLS_ENABLED")||e}get downstreams(){const e=Ember.get(this.args.topology,"Downstreams")||[],t=[...e],n=Ember.get(this.args.topology,"noDependencies") +return!this.env.var("CONSUL_ACLS_ENABLED")&&n?t.push({Name:"Downstreams unknown.",Empty:!0,Datacenter:"",Namespace:""}):0===e.length&&t.push({Name:"No downstreams.",Datacenter:"",Namespace:""}),t}get upstreams(){const e=Ember.get(this.args.topology,"Upstreams")||[],t=[...e],n=Ember.get(this.args.dc,"DefaultACLPolicy"),r=Ember.get(this.args.topology,"wildcardIntention"),a=Ember.get(this.args.topology,"noDependencies") +return!this.env.var("CONSUL_ACLS_ENABLED")&&a?t.push({Name:"Upstreams unknown.",Datacenter:"",Namespace:""}):"allow"===n||r?t.push({Name:"* (All Services)",Datacenter:"",Namespace:""}):0===e.length&&t.push({Name:"No upstreams.",Datacenter:"",Namespace:""}),t}get mainNotIngressService(){return"ingress-gateway"!==(Ember.get(this.args.service.Service,"Kind")||"")}setHeight(e,t){if(e){const n=e.getBoundingClientRect() +document.getElementById(""+t[0]).setAttribute("style",`height:${n.height}px`)}this.calculate()}calculate(){this.args.isRemoteDC?this.noMetricsReason="remote-dc":"ingress-gateway"===this.args.service.Service.Kind?this.noMetricsReason="ingress-gateway":this.noMetricsReason=null +const e=document.getElementById("downstream-lines").getBoundingClientRect(),t=document.getElementById("upstream-lines").getBoundingClientRect(),n=document.getElementById("upstream-column") +this.emptyColumn?this.downView={x:e.x,y:e.y,width:e.width,height:e.height+10}:this.downView=e,n&&(this.upView={x:t.x,y:t.y,width:t.width,height:n.getBoundingClientRect().height+10}) +const r=[...document.querySelectorAll("#downstream-container .topology-metrics-card")],a=document.querySelector(".metrics-header"),l=[...document.querySelectorAll("#upstream-column .topology-metrics-card")] +this.centerDimensions=a.getBoundingClientRect(),this.downLines=this.drawDownLines(r),this.upLines=this.drawUpLines(l)}},m=O(d.prototype,"env",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=O(d.prototype,"centerDimensions",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(d.prototype,"downView",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=O(d.prototype,"downLines",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),h=O(d.prototype,"upView",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=O(d.prototype,"upLines",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),y=O(d.prototype,"noMetricsReason",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O(d.prototype,"setHeight",[u],Object.getOwnPropertyDescriptor(d.prototype,"setHeight"),d.prototype),O(d.prototype,"calculate",[c],Object.getOwnPropertyDescriptor(d.prototype,"calculate"),d.prototype),d) +e.default=P,Ember._setComponentTemplate(_,P)})) +define("consul-ui/components/topology-metrics/notifications/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"ZVlQpsZp",block:'{"symbols":["error","@status","@type","@error"],"statements":[[6,[37,1],[[30,[36,2],[[32,3],"create"],null]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your intention has been added.\\n"]],"parameters":[]},{"statements":[[2," There was an error adding your intention.\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,2],[[32,3],"update"],null]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,2],[[32,2],"success"],null]],null,[["default","else"],[{"statements":[[2," Your intention has been saved.\\n"]],"parameters":[]},{"statements":[[2," There was an error saving your intention.\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[6,[37,3],[[32,4,["errors","firstObject"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["detail"]]],null,[["default"],[{"statements":[[2," "],[10,"br"],[12],[13],[1,[30,[36,0],["(",[30,[36,1],[[32,1,["status"]],[30,[36,0],[[32,1,["status"]],": "],null]],null],[32,1,["detail"]],")"],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["concat","if","eq","let"]}',meta:{moduleName:"consul-ui/components/topology-metrics/notifications/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/topology-metrics/popover/index",["exports","@glimmer/component"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Ember.HTMLBars.template({id:"iYw9/Q3m",block:'{"symbols":["style","label","__arg0","__arg1","Actions","__arg0","__arg1","Actions","__arg0","__arg1","Actions","@item","@service","@type","@oncreate","@disabled","&attrs","@position"],"statements":[[11,"div"],[16,0,[31,["topology-metrics-popover ",[32,14]]]],[17,17],[12],[2,"\\n"],[6,[37,7],[[30,[36,1],["top:",[32,18,["y"]],"px;left:",[32,18,["x"]],"px;"],null],[30,[36,9],[[30,[36,14],[[32,14],"deny"],null],"Add intention","View intention"],null]],null,[["default"],[{"statements":[[6,[37,9],[[30,[36,16],[[32,16]],null]],null,[["default","else"],[{"statements":[[6,[37,9],[[30,[36,14],[[32,14],"deny"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"informed-action",[[24,0,"dangerous"],[4,[38,12],[[30,[36,11],[[32,0],"popover"],null]],null]],[["@namedBlocksInfo"],[[30,[36,10],null,[["header","body","actions"],[0,0,1]]]]],[["default"],[{"statements":[[6,[37,9],[[30,[36,8],[[32,9],"header"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,3],["components.consul.topology-metrics.popover.deny.header"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,9],[[30,[36,8],[[32,9],"body"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,9],[[32,12,["Intention","HasExact"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,3],["components.consul.topology-metrics.popover.deny.body.isExact"],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[30,[36,3],["components.consul.topology-metrics.popover.deny.body.notExact"],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,9],[[30,[36,8],[[32,9],"actions"],null]],null,[["default"],[{"statements":[[6,[37,7],[[32,10]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,11,["Action"]],[[24,0,"action"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,4,"button"],[4,[38,6],["click",[32,15]],null],[12],[2,"\\n"],[6,[37,9],[[32,12,["Intention","HasExact"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,3],["components.consul.topology-metrics.popover.deny.action.isExact"],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[30,[36,3],["components.consul.topology-metrics.popover.deny.action.notExact"],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,11,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"cancel"],[24,4,"button"],[4,[38,6],["click",[30,[36,5],[[30,[36,4],[[32,0,["popoverController","hide"]]],null]],null]],null],[12],[2,"\\n Cancel\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[11]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[9,10]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,9],[[30,[36,14],[[32,14],"not-defined"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"informed-action",[[24,0,"warning documentation"],[4,[38,12],[[30,[36,11],[[32,0],"popover"],null]],null]],[["@namedBlocksInfo"],[[30,[36,10],null,[["header","body","actions"],[0,0,1]]]]],[["default"],[{"statements":[[6,[37,9],[[30,[36,8],[[32,6],"header"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,3],["components.consul.topology-metrics.popover.not-defined.header"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,9],[[30,[36,8],[[32,6],"body"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,3],["components.consul.topology-metrics.popover.not-defined.body"],[["downstream","upstream"],[[32,12,["Name"]],[32,13,["Name"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,9],[[30,[36,8],[[32,6],"actions"],null]],null,[["default"],[{"statements":[[6,[37,7],[[32,7]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Action"]],[[24,0,"action"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,13],["CONSUL_DOCS_URL"],null],"/connect/registration/service-registration#upstreams"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"\\n "],[1,[30,[36,3],["components.consul.topology-metrics.popover.not-defined.action"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"cancel"],[24,4,"button"],[4,[38,6],["click",[30,[36,5],[[30,[36,4],[[32,0,["popoverController","hide"]]],null]],null]],null],[12],[2,"\\n Close\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[6,7]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"informed-action",[[24,0,"info"],[4,[38,12],[[30,[36,11],[[32,0],"popover"],null]],null]],[["@namedBlocksInfo"],[[30,[36,10],null,[["header","body","actions"],[0,0,1]]]]],[["default"],[{"statements":[[6,[37,9],[[30,[36,8],[[32,3],"header"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,3],["components.consul.topology-metrics.popover.l7.header"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,9],[[30,[36,8],[[32,3],"body"],null]],null,[["default","else"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,3],["components.consul.topology-metrics.popover.l7.body"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]},{"statements":[[6,[37,9],[[30,[36,8],[[32,3],"actions"],null]],null,[["default"],[{"statements":[[6,[37,7],[[32,4]],null,[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Action"]],[[24,0,"action"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"a"],[15,6,[30,[36,2],["dc.services.show.intentions.edit",[30,[36,1],[[32,12,["Intention","ID"]]],null]],null]],[12],[2,"\\n "],[1,[30,[36,3],["components.consul.topology-metrics.popover.l7.action"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5,["Action"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"cancel"],[24,4,"button"],[4,[38,6],["click",[30,[36,5],[[30,[36,4],[[32,0,["popoverController","hide"]]],null]],null]],null],[12],[2,"\\n Close\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[3,4]}]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[11,"button"],[23,5,[32,1]],[16,"aria-label",[32,2]],[24,4,"button"],[4,[38,15],[[32,0,["popover"]]],[["options","returns"],[[30,[36,10],null,[["theme","placement"],["square-tail","bottom-start"]]],[30,[36,11],[[32,0],"popoverController"],null]]]],[4,[38,6],["click",[30,[36,5],[[30,[36,4],[[32,0,["popoverController","show"]]],null]],null]],null],[12],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[11,"button"],[23,5,[32,1]],[16,"aria-label",[32,2]],[24,4,"button"],[4,[38,0],[true],null],[12],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1,2]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["disabled","concat","href-to","t","optional","fn","on","let","-is-named-block-invocation","if","hash","set","did-insert","env","eq","with-overlay","not"]}',meta:{moduleName:"consul-ui/components/topology-metrics/popover/index.hbs"}}) +class r extends t.default{}e.default=r,Ember._setComponentTemplate(n,r)})),define("consul-ui/components/topology-metrics/series/index",["exports","dayjs","dayjs/plugin/calendar","d3-selection","d3-scale","d3-scale-chromatic","d3-shape","d3-array"],(function(e,t,n,r,a,l,s,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const o=Ember.HTMLBars.template({id:"T4gO0fLS",block:'{"symbols":["modal","desc","label","@noMetricsReason","@protocol","@service","@dc","@partition","@nspace"],"statements":[[6,[37,4],[[30,[36,9],[[32,4]],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange","@onerror"],[[30,[36,6],["/${partition}/${nspace}/${dc}/metrics/summary-for-service/${service}/${protocol}",[30,[36,5],null,[["nspace","partition","dc","service","protocol"],[[32,9],[32,8],[32,7],[32,6],[32,5]]]]],null],[30,[36,7],[[32,0],"change"],null],[30,[36,7],[[32,0],[30,[36,8],[[35,0]],null]],[["value"],["error"]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[1,[30,[36,10],["resize",[30,[36,7],[[32,0],"redraw"],null]],null]],[2,"\\n"],[1,[30,[36,11],[[30,[36,7],[[32,0],"redraw"],null]],null]],[2,"\\n\\n"],[6,[37,4],[[30,[36,9],[[35,12]],null]],null,[["default"],[{"statements":[[6,[37,4],[[35,3,["labels"]]],null,[["default"],[{"statements":[[2," "],[11,"a"],[24,0,"sparkline-key-link"],[4,[38,2],["click",[30,[36,1],[[32,0,["modal","open"]]],null]],null],[12],[2,"\\n Key\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[10,"div"],[14,0,"sparkline-wrapper"],[12],[2,"\\n "],[10,"div"],[14,0,"tooltip"],[12],[2,"\\n "],[10,"div"],[14,0,"sparkline-time"],[12],[2,"Timestamp"],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,4],[[35,12]],null,[["default"],[{"statements":[[2," "],[8,"topology-metrics/status",[],[["@noMetricsReason","@error"],[[32,4],[34,0]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"svg"],[14,0,"sparkline"],[12],[13],[2,"\\n"],[13],[2,"\\n\\n"],[8,"modal-dialog",[[24,0,"sparkline-key"]],[["@aria"],[[30,[36,5],null,[["label"],["Metrics Key"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"ref",[],[["@target","@name","@value"],[[32,0],"modal",[32,1]]],null],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"Metrics Key"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"sparkline-key-content"],[12],[2,"\\n "],[10,"p"],[12],[2,"This key describes the metrics corresponding to the graph tooltip labels in more detail."],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n"],[6,[37,14],[[30,[36,13],[[35,3,["labels"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[1,[32,3]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,2]],[13],[2,"\\n"]],"parameters":[2,3]}]]],[2," "],[13],[2,"\\n"],[6,[37,15],[[35,3,["labels"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"no-data"],[12],[2,"No metrics loaded."],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"button"],[14,0,"type-cancel"],[15,"onclick",[30,[36,7],[[32,0],[32,1,["close"]]],null]],[14,4,"button"],[12],[2,"\\n Close\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["error","optional","on","data","if","hash","uri","action","mut","not","on-window","did-insert","empty","-each-in","each","unless"]}',meta:{moduleName:"consul-ui/components/topology-metrics/series/index.hbs"}}) +t.default.extend(n.default) +var u=Ember._setComponentTemplate(o,Ember.Component.extend({data:null,empty:!1,actions:{redraw:function(){this.drawGraphs()},change:function(e){this.set("data",e.data.series),this.drawGraphs(),this.rerender()}},drawGraphs:function(){if(!this.data)return void Ember.set(this,"empty",!0) +let e=this.svg=(0,r.select)(this.element.querySelector("svg.sparkline")) +e.on("mouseover mousemove mouseout",null),e.selectAll("path").remove(),e.selectAll("rect").remove() +let t=e.node().getBoundingClientRect(),n=t.width,o=t.height,u=this.data||{},c=u.data||[],d=u.labels||{},m=u.unitSuffix||"",p=Object.keys(d).filter(e=>"Total"!=e) +if(0==c.length||0==p.length)return void Ember.set(this,"empty",!0) +Ember.set(this,"empty",!1) +let f=(0,s.stack)().keys(p).order(s.stackOrderReverse)(c),b=c.map(e=>{let t=0 +return p.forEach(n=>{t+=e[n]}),t}),h=(0,a.scaleTime)().domain((0,i.extent)(c,e=>e.time)).range([0,n]),v=(0,a.scaleLinear)().domain([0,(0,i.max)(b)]).range([o,0]),y=(0,s.area)().x(e=>h(e.data.time)).y1(e=>v(e[0])).y0(e=>v(e[1])),g=["#DCE0E6","#C73445"].concat(l.schemeTableau10) +p.includes("Outbound")&&(g=["#DCE0E6","#0E40A3"].concat(l.schemeTableau10)) +let O=(0,a.scaleOrdinal)(g).domain(p) +e.selectAll("path").data(f).join("path").attr("fill",({key:e})=>O(e)).attr("stroke",({key:e})=>O(e)).attr("d",y) +let _=e.append("rect").attr("class","cursor").style("visibility","hidden").attr("width",1).attr("height",o).attr("x",0).attr("y",0),P=(0,r.select)(this.element.querySelector(".tooltip")) +for(var w of(P.selectAll(".sparkline-tt-legend").remove(),P.selectAll(".sparkline-tt-sum").remove(),p)){let e=P.append("div").attr("class","sparkline-tt-legend") +e.append("div").attr("class","sparkline-tt-legend-color").style("background-color",O(w)),e.append("span").text(w).append("span").attr("class","sparkline-tt-legend-value")}let E=P.selectAll(".sparkline-tt-legend-value") +p.length>1&&P.append("div").attr("class","sparkline-tt-sum").append("span").text("Total").append("span").attr("class","sparkline-tt-sum-value") +let k=this +e.on("mouseover",(function(e){P.style("visibility","visible"),_.style("visibility","visible"),k.updateTooltip(e,c,f,b,m,h,P,E,_)})).on("mousemove",(function(e){k.updateTooltip(e,c,f,b,m,h,P,E,_)})).on("mouseout",(function(){P.style("visibility","hidden"),_.style("visibility","hidden")}))},willDestroyElement:function(){this._super(...arguments),void 0!==this.svg&&this.svg.on("mouseover mousemove mouseout",null)},updateTooltip:function(e,n,a,l,s,o,u,d,m){let[p]=(0,r.pointer)(e) +m.attr("x",p) +let f=o.invert(p) +let b=(0,(0,i.bisector)((function(e){return e.time})).left)(n,f) +var h +u.style("left",p-22+"px").select(".sparkline-time").text((h=f,(0,t.default)(h).calendar(null,{sameDay:"[Today at] h:mm:ss A",lastDay:"[Yesterday at] h:mm:ss A",lastWeek:"[Last] dddd at h:mm:ss A",sameElse:"MMM DD at h:mm:ss A"}))),u.select(".sparkline-tt-sum-value").text(`${c(l[b])}${s}`),d.nodes().forEach((e,t)=>{let n=a[t][b][1]-a[t][b][0];(0,r.select)(e).text(`${c(n)}${s}`)}),m.attr("x",p)}})) +function c(e){return e<1e3?Number.isInteger(e)?""+e:Number(e>=100?e.toPrecision(3):e<1?e.toFixed(2):e.toPrecision(2)):e>=1e3&&e<1e6?+(e/1e3).toPrecision(3)+"k":e>=1e6&&e<1e9?+(e/1e6).toPrecision(3)+"m":e>=1e9&&e<1e12?+(e/1e9).toPrecision(3)+"g":e>=1e12?+(e/1e12).toFixed(0)+"t":void 0}e.default=u})),define("consul-ui/components/topology-metrics/source-type/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"g20EXkUJ",block:'{"symbols":["@source"],"statements":[[11,"span"],[24,0,"topology-metrics-source-type"],[4,[38,2],[[30,[36,1],[[30,[36,0],["components.consul.topology-metrics.source-type.",[32,1],".tooltip"],null]],null]],null],[12],[2,"\\n "],[1,[30,[36,1],[[30,[36,0],["components.consul.topology-metrics.source-type.",[32,1],".text"],null]],null]],[2,"\\n"],[13]],"hasEval":false,"upvars":["concat","t","tooltip"]}',meta:{moduleName:"consul-ui/components/topology-metrics/source-type/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/topology-metrics/stats/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i +function o(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const c=Ember.HTMLBars.template({id:"vUxWURoJ",block:'{"symbols":["stat","@noMetricsReason","@protocol","@service","@endpoint","@dc","@partition","@nspace","&attrs"],"statements":[[6,[37,11],[[30,[36,10],[[32,2]],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange","@onerror"],[[30,[36,7],["/${partition}/${nspace}/${dc}/metrics/${endpoint}/${service}/${protocol}",[30,[36,1],null,[["nspace","partition","dc","endpoint","service","protocol"],[[32,8],[32,7],[32,6],[32,5],[32,4],[30,[36,6],[[32,3],""],null]]]]],null],[30,[36,8],[[32,0],"statsUpdate"],null],[30,[36,8],[[32,0],[30,[36,9],[[35,0]],null]],[["value"],["error"]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[11,"div"],[17,9],[24,0,"topology-metrics-stats"],[12],[2,"\\n"],[6,[37,11],[[35,12]],null,[["default","else"],[{"statements":[[6,[37,5],[[30,[36,4],[[30,[36,4],[[35,3]],null]],null]],null,[["default","else"],[{"statements":[[2," "],[11,"dl"],[4,[38,2],[[32,1,["desc"]]],[["options"],[[30,[36,1],null,[["allowHTML"],[true]]]]]],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[1,[32,1,["value"]]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,1,["label"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]},{"statements":[[2," "],[10,"span"],[12],[2,"No Metrics Available"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," "],[8,"topology-metrics/status",[],[["@noMetricsReason","@error"],[[32,2],[34,0]]],null],[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["error","hash","tooltip","stats","-track-array","each","or","uri","action","mut","not","if","hasLoaded"]}',meta:{moduleName:"consul-ui/components/topology-metrics/stats/index.hbs"}}) +let d=(n=Ember._tracked,r=Ember._tracked,a=Ember._action,l=class extends t.default{constructor(...e){super(...e),o(this,"stats",s,this),o(this,"hasLoaded",i,this)}statsUpdate(e){if("summary-for-service"==this.args.endpoint)this.stats=e.data.stats +else{let t=this.args.nspace||"" +0===t.length&&(t="default") +let n=`${this.args.item}.${t}.${this.args.dc}` +this.stats=e.data.stats[n]}this.stats=(this.stats||[]).slice(0,4),this.hasLoaded=!0}},s=u(l.prototype,"stats",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),i=u(l.prototype,"hasLoaded",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),u(l.prototype,"statsUpdate",[a],Object.getOwnPropertyDescriptor(l.prototype,"statsUpdate"),l.prototype),l) +e.default=d,Ember._setComponentTemplate(c,d)})),define("consul-ui/components/topology-metrics/status/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"nZPL6KB3",block:'{"symbols":["@error","@noMetricsReason"],"statements":[[6,[37,1],[[30,[36,4],[[32,2],[32,1]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"topology-metrics-status-error"],[12],[2,"\\n"],[6,[37,1],[[30,[36,3],[[32,2],"ingress-gateway"],null]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,0],["components.consul.topology-metrics.status.ingress-gateway"],null]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,3],[[32,2],"remote-dc"],null]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,0],["components.consul.topology-metrics.status.error"],null]],[2,"\\n "],[11,"span"],[4,[38,2],[[30,[36,0],["components.consul.topology-metrics.status.remote-dc"],null]],null],[12],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[32,1]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],["components.consul.topology-metrics.status.error"],null]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"topology-metrics-status-loader"],[12],[1,[30,[36,0],["components.consul.topology-metrics.status.loading"],null]],[13],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["t","if","tooltip","eq","or"]}',meta:{moduleName:"consul-ui/components/topology-metrics/status/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/components/topology-metrics/up-lines/index",["exports","@glimmer/component"],(function(e,t){var n,r,a,l,s,i +function o(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const c=Ember.HTMLBars.template({id:"JzB9jHPV",block:'{"symbols":["item","line","@service","@oncreate","@view","@center","@lines","@items"],"statements":[[6,[37,0],[[30,[36,14],[[32,7,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[11,"svg"],[16,"viewBox",[30,[36,1],[[32,6,["x"]]," ",[32,5,["y"]]," ",[32,5,["width"]]," ",[32,5,["height"]]],null]],[24,"preserveAspectRatio","none"],[4,[38,10],[[32,0,["getIconPositions"]]],null],[4,[38,11],[[32,0,["getIconPositions"]],[32,7]],null],[12],[2,"\\n "],[10,"defs"],[12],[2,"\\n "],[10,"marker"],[15,1,[30,[36,1],[[32,0,["guid"]],"-allow-dot"],null]],[14,0,"allow-dot"],[14,"viewBox","-2 -2 15 15"],[14,"refX","6"],[14,"refY","6"],[14,"markerWidth","6"],[14,"markerHeight","6"],[12],[2,"\\n "],[10,"circle"],[14,"cx","6"],[14,"cy","6"],[14,"r","6"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[10,"marker"],[15,1,[30,[36,1],[[32,0,["guid"]],"-allow-arrow"],null]],[14,0,"allow-arrow"],[14,"viewBox","-1 -1 12 12"],[14,"refX","5"],[14,"refY","5"],[14,"markerWidth","6"],[14,"markerHeight","6"],[14,"orient","auto-start-reverse"],[12],[2,"\\n "],[10,"polygon"],[14,"points","0 0 10 5 0 10"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[10,"marker"],[15,1,[30,[36,1],[[32,0,["guid"]],"-deny-dot"],null]],[14,0,"deny-dot"],[14,"viewBox","-2 -2 15 15"],[14,"refX","6"],[14,"refY","6"],[14,"markerWidth","6"],[14,"markerHeight","6"],[12],[2,"\\n "],[10,"circle"],[14,"cx","6"],[14,"cy","6"],[14,"r","6"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[10,"marker"],[15,1,[30,[36,1],[[32,0,["guid"]],"-deny-arrow"],null]],[14,0,"deny-arrow"],[14,"viewBox","-1 -1 12 12"],[14,"refX","5"],[14,"refY","5"],[14,"markerWidth","6"],[14,"markerHeight","6"],[14,"orient","auto-start-reverse"],[12],[2,"\\n "],[10,"polygon"],[14,"points","0 0 10 5 0 10"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,7]],null]],null]],null,[["default"],[{"statements":[[6,[37,0],[[30,[36,9],[[32,2,["permission"]],"deny"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"path"],[15,1,[30,[36,1],[[32,0,["guid"]],[32,2,["id"]]],null]],[15,"d",[30,[36,8],[[32,2,["dest"]]],[["src"],[[32,2,["src"]]]]]],[15,"marker-start",[30,[36,1],["url(#",[32,0,["guid"]],"-deny-dot)"],null]],[15,"marker-end",[30,[36,1],["url(#",[32,0,["guid"]],"-deny-arrow)"],null]],[15,"data-permission",[32,2,["permission"]]],[12],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"path"],[15,1,[30,[36,1],[[32,0,["guid"]],[32,2,["id"]]],null]],[15,"d",[30,[36,8],[[32,2,["dest"]]],[["src"],[[32,2,["src"]]]]]],[15,"marker-start",[30,[36,1],["url(#",[32,0,["guid"]],"-allow-dot)"],null]],[15,"marker-end",[30,[36,1],["url(#",[32,0,["guid"]],"-allow-arrow)"],null]],[15,"data-permission",[32,2,["permission"]]],[12],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[2]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,8]],null]],null]],null,[["default"],[{"statements":[[6,[37,0],[[30,[36,7],[[30,[36,6],[[32,1,["Datacenter"]],""],null],[30,[36,5],[[30,[36,4],[[32,1,["Intention","Allowed"]]],null],[32,1,["Intention","HasPermissions"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"topology-metrics/popover",[],[["@type","@position","@item","@disabled","@oncreate"],[[30,[36,0],[[32,1,["Intention","HasPermissions"]],"l7","deny"],null],[30,[36,2],["id",[30,[36,1],[[32,0,["guid"]],[32,1,["Namespace"]],[32,1,["Name"]]],null],[32,0,["iconPositions"]]],null],[32,1],false,[30,[36,3],[[32,0],[32,4],[32,3],[32,1]],null]]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["if","concat","find-by","action","not","or","not-eq","and","svg-curve","eq","did-insert","did-update","-track-array","each","gt"]}',meta:{moduleName:"consul-ui/components/topology-metrics/up-lines/index.hbs"}}) +let d=(n=Ember._tracked,r=Ember.inject.service("dom"),a=Ember._action,l=class extends t.default{constructor(...e){super(...e),o(this,"iconPositions",s,this),o(this,"dom",i,this)}get guid(){return this.dom.guid(this)}getIconPositions(){const e=this.args.center,t=this.args.view,n=[...document.querySelectorAll("#upstream-lines path")] +this.iconPositions=n.map(n=>{const r=parseFloat(n.getTotalLength()),a=n.getPointAtLength(Math.ceil(.666*r)) +return{id:n.id,x:Math.round(a.x-e.x),y:Math.round(a.y-t.y)}})}},s=u(l.prototype,"iconPositions",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i=u(l.prototype,"dom",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u(l.prototype,"getIconPositions",[a],Object.getOwnPropertyDescriptor(l.prototype,"getIconPositions"),l.prototype),l) +e.default=d,Ember._setComponentTemplate(c,d)})),define("consul-ui/components/torii-iframe-placeholder",["exports","torii/components/torii-iframe-placeholder"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=t.default +e.default=n})),define("consul-ui/components/yield-slot",["exports","block-slots/components/yield-slot"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/components/yield/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=Ember.HTMLBars.template({id:"TxsW/zUX",block:'{"symbols":["&default"],"statements":[[18,1,null],[2,"\\n"]],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/components/yield/index.hbs"}}) +var n=Ember._setComponentTemplate(t,Ember._templateOnlyComponent()) +e.default=n})),define("consul-ui/controllers/application",["exports","consul-ui/utils/routing/transitionable"],(function(e,t){var n,r,a,l,s,i,o,u +function c(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function d(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let m=(n=Ember.inject.service("router"),r=Ember.inject.service("store"),a=Ember.inject.service("feedback"),l=Ember._action,s=class extends Ember.Controller{constructor(...e){super(...e),c(this,"router",i,this),c(this,"store",o,this),c(this,"feedback",u,this)}reauthorize(e){this.feedback.execute(()=>{this.store.invalidate() +const n={} +if(e.data){const t=e.data +if(void 0!==this.nspace){const e=Ember.get(t,"Namespace")||this.nspace.Name +e!==this.nspace.Name&&(n.nspace=""+e)}}const r=Ember.getOwner(this),a=this.router.currentRoute.name,l=r.lookup("route:"+a) +return r.lookup("route:application").refresh().promise.catch((function(){})).then(e=>a!==this.router.currentRouteName||void 0!==n.nspace?l.transitionTo(...(0,t.default)(this.router.currentRoute,n,r)):e)},e.type,(function(e){return e}),{})}},i=d(s.prototype,"router",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=d(s.prototype,"store",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=d(s.prototype,"feedback",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d(s.prototype,"reauthorize",[l],Object.getOwnPropertyDescriptor(s.prototype,"reauthorize"),s.prototype),s) +e.default=m})),define("consul-ui/controllers/dc/acls/policies/create",["exports","consul-ui/controllers/dc/acls/policies/edit"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{}e.default=n})),define("consul-ui/controllers/dc/acls/policies/edit",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("form"),n=class extends Ember.Controller{constructor(...e){var t,n,a,l +super(...e),t=this,n="builder",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}init(){super.init(...arguments),this.form=this.builder.form("policy")}setProperties(e){super.setProperties(Object.keys(e).reduce((e,t)=>{switch(t){case"item":e[t]=this.form.setData(e[t]).getData()}return e},e))}},l=n.prototype,s="builder",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/controllers/dc/acls/roles/create",["exports","consul-ui/controllers/dc/acls/roles/edit"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{}e.default=n})),define("consul-ui/controllers/dc/acls/roles/edit",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("form"),n=class extends Ember.Controller{constructor(...e){var t,n,a,l +super(...e),t=this,n="builder",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}init(){super.init(...arguments),this.form=this.builder.form("role")}setProperties(e){super.setProperties(Object.keys(e).reduce((e,t)=>{switch(t){case"item":e[t]=this.form.setData(e[t]).getData()}return e},e))}},l=n.prototype,s="builder",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/controllers/dc/acls/tokens/create",["exports","consul-ui/controllers/dc/acls/tokens/edit"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{}e.default=n})),define("consul-ui/controllers/dc/acls/tokens/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Controller.extend({dom:Ember.inject.service("dom"),builder:Ember.inject.service("form"),isScoped:!1,init:function(){this._super(...arguments),this.form=this.builder.form("token")},setProperties:function(e){this._super(Object.keys(e).reduce((e,t)=>{switch(t){case"item":e[t]=this.form.setData(e[t]).getData()}return e},e))},actions:{change:function(e,t){const n=this.dom.normalizeEvent(e,t),r=this.form +try{r.handleEvent(n)}catch(a){throw n.target.name,a}}}}) +e.default=t})),define("consul-ui/data-adapter",["exports","@ember-data/debug"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/decorators/data-source",["exports","wayfarer"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.match=e.default=void 0 +const n=(0,t.default)() +e.default=e=>(t,r,a)=>(n.on(e,(function(e,n,r){const l=n.lookup("service:container").get(t) +return t=>a.value.apply(l,[e,t,r])})),a) +e.match=e=>n.match(e)})),define("consul-ui/decorators/replace",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.nullValue=e.replace=void 0 +const t=(e,t)=>(n,r,a)=>({get:function(){const n=a.get.apply(this,arguments) +return n===e?t:n},set:function(){return a.set.apply(this,arguments)}}) +e.replace=t +e.nullValue=function(e){return t(null,e)} +var n=t +e.default=n})),define("consul-ui/env",["exports","consul-ui/config/environment","consul-ui/utils/get-environment"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.env=void 0 +const r=(0,n.default)(t.default,window,document) +e.env=r})),define("consul-ui/filter/predicates/auth-method",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={kind:{kubernetes:(e,t)=>e.Type===t,jwt:(e,t)=>e.Type===t,oidc:(e,t)=>e.Type===t},source:{local:(e,t)=>e.TokenLocality===t,global:(e,t)=>e.TokenLocality===t}}})),define("consul-ui/filter/predicates/health-check",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={status:{passing:(e,t)=>e.Status===t,warning:(e,t)=>e.Status===t,critical:(e,t)=>e.Status===t},kind:{service:(e,t)=>e.Kind===t,node:(e,t)=>e.Kind===t},check:{serf:(e,t)=>e.Type===t,script:(e,t)=>e.Type===t,http:(e,t)=>e.Type===t,tcp:(e,t)=>e.Type===t,ttl:(e,t)=>e.Type===t,docker:(e,t)=>e.Type===t,grpc:(e,t)=>e.Type===t,alias:(e,t)=>e.Type===t}}})),define("consul-ui/filter/predicates/intention",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={access:{allow:(e,t)=>e.Action===t,deny:(e,t)=>e.Action===t,"app-aware":e=>void 0===e.Action}}})),define("consul-ui/filter/predicates/kv",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={kind:{folder:e=>e.isFolder,key:e=>!e.isFolder}}})),define("consul-ui/filter/predicates/node",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={status:{passing:(e,t)=>e.Status===t,warning:(e,t)=>e.Status===t,critical:(e,t)=>e.Status===t}}})),define("consul-ui/filter/predicates/policy",["exports","mnemonist/set"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={kind:{"global-management":e=>e.isGlobalManagement,standard:e=>!e.isGlobalManagement},datacenter:(e,n)=>void 0===e.Datacenters||t.default.intersectionSize(n,new Set(e.Datacenters))>0} +e.default=n})),define("consul-ui/filter/predicates/service-instance",["exports","mnemonist/set"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={status:{passing:(e,t)=>e.Status===t,warning:(e,t)=>e.Status===t,critical:(e,t)=>e.Status===t,empty:e=>0===e.ServiceChecks.length},source:(e,n)=>0!==t.default.intersectionSize(n,new Set(e.ExternalSources||[]))} +e.default=n})),define("consul-ui/filter/predicates/service",["exports","mnemonist/set"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={kind:{"ingress-gateway":(e,t)=>e.Kind===t,"terminating-gateway":(e,t)=>e.Kind===t,"mesh-gateway":(e,t)=>e.Kind===t,service:e=>!e.Kind,"in-mesh":e=>e.InMesh,"not-in-mesh":e=>!e.InMesh},status:{passing:(e,t)=>e.MeshStatus===t,warning:(e,t)=>e.MeshStatus===t,critical:(e,t)=>e.MeshStatus===t,empty:e=>0===e.MeshChecksTotal},instance:{registered:e=>e.InstanceCount>0,"not-registered":e=>0===e.InstanceCount},source:(e,n)=>0!==t.default.intersectionSize(n,new Set(e.ExternalSources||[]))||n.includes(e.Partition)} +e.default=n})),define("consul-ui/filter/predicates/token",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={kind:{"global-management":e=>e.isGlobalManagement,global:e=>!e.Local,local:e=>e.Local}}})) +define("consul-ui/flash/object",["exports","ember-cli-flash/flash/object"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/formats",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={time:{hhmmss:{hour:"numeric",minute:"numeric",second:"numeric"}},date:{hhmmss:{hour:"numeric",minute:"numeric",second:"numeric"}},number:{compact:{notation:"compact"},EUR:{style:"currency",currency:"EUR",minimumFractionDigits:2,maximumFractionDigits:2},USD:{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}}}})),define("consul-ui/forms/intention",["exports","consul-ui/validations/intention","consul-ui/utils/form/builder"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n="",a=t.default,l=r){return l(n,{}).setValidators(a)} +const r=(0,n.default)()})),define("consul-ui/forms/kv",["exports","consul-ui/validations/kv","consul-ui/utils/form/builder"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n="",a=t.default,l=r){return l(n,{}).setValidators(a)} +const r=(0,n.default)()})),define("consul-ui/forms/policy",["exports","consul-ui/validations/policy","consul-ui/utils/form/builder"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n="policy",a=t.default,l=r){return l(n,{Datacenters:{type:"array"}}).setValidators(a)} +const r=(0,n.default)()})),define("consul-ui/forms/role",["exports","consul-ui/validations/role","consul-ui/utils/form/builder"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n="role",a=t.default,l=r){return l(n,{}).setValidators(a).add(e.form("policy"))} +const r=(0,n.default)()})),define("consul-ui/forms/token",["exports","consul-ui/validations/token","consul-ui/utils/form/builder"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n="",a=t.default,l=r){return l(n,{}).setValidators(a).add(e.form("policy")).add(e.form("role"))} +const r=(0,n.default)()})),define("consul-ui/helpers/-element",["exports","ember-element-helper/helpers/-element"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/-has-block-params",["exports","ember-named-blocks-polyfill/helpers/-has-block-params"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/-has-block",["exports","ember-named-blocks-polyfill/helpers/-has-block"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/-is-named-block-invocation",["exports","ember-named-blocks-polyfill/helpers/-is-named-block-invocation"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/-named-block-invocation",["exports","ember-named-blocks-polyfill/helpers/-named-block-invocation"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/abs",["exports","ember-math-helpers/helpers/abs"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"abs",{enumerable:!0,get:function(){return t.abs}})})),define("consul-ui/helpers/acos",["exports","ember-math-helpers/helpers/acos"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"acos",{enumerable:!0,get:function(){return t.acos}})})),define("consul-ui/helpers/acosh",["exports","ember-math-helpers/helpers/acosh"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"acosh",{enumerable:!0,get:function(){return t.acosh}})})),define("consul-ui/helpers/add",["exports","ember-math-helpers/helpers/add"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"add",{enumerable:!0,get:function(){return t.add}})})),define("consul-ui/helpers/adopt-styles",["exports","@lit/reactive-element"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends Ember.Helper{compute([e,n],r){Array.isArray(n)||(n=[n]),(0,t.adoptStyles)(e,n)}}e.default=n})),define("consul-ui/helpers/and",["exports","ember-truth-helpers/helpers/and"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})})),define("consul-ui/helpers/app-version",["exports","consul-ui/config/environment","ember-cli-app-version/utils/regexp"],(function(e,t,n){function r(e,r={}){const a=t.default.APP.version +let l=r.versionOnly||r.hideSha,s=r.shaOnly||r.hideVersion,i=null +return l&&(r.showExtended&&(i=a.match(n.versionExtendedRegExp)),i||(i=a.match(n.versionRegExp))),s&&(i=a.match(n.shaRegExp)),i?i[0]:a}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0 +var a=Ember.Helper.helper(r) +e.default=a})),define("consul-ui/helpers/append",["exports","ember-composable-helpers/helpers/append"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"append",{enumerable:!0,get:function(){return t.append}})})),define("consul-ui/helpers/array-concat",["exports","ember-array-fns/helpers/array-concat"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayConcat",{enumerable:!0,get:function(){return t.arrayConcat}})})),define("consul-ui/helpers/array-every",["exports","ember-array-fns/helpers/array-every"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayEvery",{enumerable:!0,get:function(){return t.arrayEvery}})})),define("consul-ui/helpers/array-filter",["exports","ember-array-fns/helpers/array-filter"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayFilter",{enumerable:!0,get:function(){return t.arrayFilter}})})),define("consul-ui/helpers/array-find-index",["exports","ember-array-fns/helpers/array-find-index"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayFindIndex",{enumerable:!0,get:function(){return t.arrayFindIndex}})})),define("consul-ui/helpers/array-find",["exports","ember-array-fns/helpers/array-find"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayFind",{enumerable:!0,get:function(){return t.arrayFind}})})),define("consul-ui/helpers/array-includes",["exports","ember-array-fns/helpers/array-includes"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayIncludes",{enumerable:!0,get:function(){return t.arrayIncludes}})})),define("consul-ui/helpers/array-index-of",["exports","ember-array-fns/helpers/array-index-of"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayIndexOf",{enumerable:!0,get:function(){return t.arrayIndexOf}})})),define("consul-ui/helpers/array-is-array",["exports","ember-array-fns/helpers/array-is-array"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayIsArray",{enumerable:!0,get:function(){return t.arrayIsArray}})})),define("consul-ui/helpers/array-is-first-element",["exports","ember-array-fns/helpers/array-is-first-element"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayIsFirstElement",{enumerable:!0,get:function(){return t.arrayIsFirstElement}})})),define("consul-ui/helpers/array-is-last-element",["exports","ember-array-fns/helpers/array-is-last-element"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayIsLastElement",{enumerable:!0,get:function(){return t.arrayIsLastElement}})})) +define("consul-ui/helpers/array-join",["exports","ember-array-fns/helpers/array-join"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayJoin",{enumerable:!0,get:function(){return t.arrayJoin}})})),define("consul-ui/helpers/array-last-index-of",["exports","ember-array-fns/helpers/array-last-index-of"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayLastIndexOf",{enumerable:!0,get:function(){return t.arrayLastIndexOf}})})),define("consul-ui/helpers/array-map",["exports","ember-array-fns/helpers/array-map"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayMap",{enumerable:!0,get:function(){return t.arrayMap}})})),define("consul-ui/helpers/array-reduce",["exports","ember-array-fns/helpers/array-reduce"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayReduce",{enumerable:!0,get:function(){return t.arrayReduce}})})),define("consul-ui/helpers/array-reverse",["exports","ember-array-fns/helpers/array-reverse"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arrayReverse",{enumerable:!0,get:function(){return t.arrayReverse}})})),define("consul-ui/helpers/array-slice",["exports","ember-array-fns/helpers/array-slice"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arraySlice",{enumerable:!0,get:function(){return t.arraySlice}})})),define("consul-ui/helpers/array-some",["exports","ember-array-fns/helpers/array-some"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arraySome",{enumerable:!0,get:function(){return t.arraySome}})})),define("consul-ui/helpers/array-sort",["exports","ember-array-fns/helpers/array-sort"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arraySort",{enumerable:!0,get:function(){return t.arraySort}})})),define("consul-ui/helpers/array-splice",["exports","ember-array-fns/helpers/array-splice"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"arraySplice",{enumerable:!0,get:function(){return t.arraySplice}})})),define("consul-ui/helpers/asin",["exports","ember-math-helpers/helpers/asin"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"asin",{enumerable:!0,get:function(){return t.asin}})})),define("consul-ui/helpers/asinh",["exports","ember-math-helpers/helpers/asinh"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"asinh",{enumerable:!0,get:function(){return t.asinh}})})),define("consul-ui/helpers/assign",["exports","ember-assign-helper/helpers/assign"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"assign",{enumerable:!0,get:function(){return t.assign}})})),define("consul-ui/helpers/atan",["exports","ember-math-helpers/helpers/atan"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"atan",{enumerable:!0,get:function(){return t.atan}})})),define("consul-ui/helpers/atan2",["exports","ember-math-helpers/helpers/atan2"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"atan2",{enumerable:!0,get:function(){return t.atan2}})})),define("consul-ui/helpers/atanh",["exports","ember-math-helpers/helpers/atanh"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"atanh",{enumerable:!0,get:function(){return t.atanh}})})),define("consul-ui/helpers/atob",["exports","consul-ui/utils/atob"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper((function([e=""]){return(0,t.default)(e)})) +e.default=n})),define("consul-ui/helpers/block-params",["exports","block-slots/helpers/block-params"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/cached-model",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class t extends Ember.Helper{compute([e,t],n){return Ember.getOwner(this).lookup("service:repository/"+e).cached(t)}}e.default=t})),define("consul-ui/helpers/camelize",["exports","ember-cli-string-helpers/helpers/camelize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"camelize",{enumerable:!0,get:function(){return t.camelize}})})),define("consul-ui/helpers/can",["exports","ember-can/helpers/can"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{_addAbilityObserver(e,t){this.isDestroyed||this.isDestroying||super._addAbilityObserver(...arguments)}}e.default=n})),define("consul-ui/helpers/cancel-all",["exports","ember-concurrency/helpers/cancel-all"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/cannot",["exports","ember-can/helpers/cannot"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/capitalize",["exports","ember-cli-string-helpers/helpers/capitalize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"capitalize",{enumerable:!0,get:function(){return t.capitalize}})})),define("consul-ui/helpers/cbrt",["exports","ember-math-helpers/helpers/cbrt"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"cbrt",{enumerable:!0,get:function(){return t.cbrt}})})),define("consul-ui/helpers/ceil",["exports","ember-math-helpers/helpers/ceil"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"ceil",{enumerable:!0,get:function(){return t.ceil}})})),define("consul-ui/helpers/changeset-get",["exports","ember-changeset/helpers/changeset-get"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/changeset-set",["exports","ember-changeset/helpers/changeset-set"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"changesetSet",{enumerable:!0,get:function(){return t.changesetSet}})})),define("consul-ui/helpers/changeset",["exports","ember-changeset-validations/helpers/changeset"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"changeset",{enumerable:!0,get:function(){return t.changeset}})})),define("consul-ui/helpers/chunk",["exports","ember-composable-helpers/helpers/chunk"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"chunk",{enumerable:!0,get:function(){return t.chunk}})})),define("consul-ui/helpers/class-map",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper(e=>{const t=e.filter(Boolean).filter(e=>"string"==typeof e||e[e.length-1]).map(e=>"string"==typeof e?e:e[0]).join(" ") +return t.length>0?t:void 0}) +e.default=t})) +define("consul-ui/helpers/classify",["exports","ember-cli-string-helpers/helpers/classify"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"classify",{enumerable:!0,get:function(){return t.classify}})})),define("consul-ui/helpers/clz32",["exports","ember-math-helpers/helpers/clz32"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"clz32",{enumerable:!0,get:function(){return t.clz32}})})),define("consul-ui/helpers/collection",["exports","consul-ui/models/service","consul-ui/models/service-instance"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r={service:t.Collection,"service-instance":n.Collection} +class a{}class l extends Ember.Helper{compute([e,t],n){if(e.length>0){const t=Ember.get(e,"firstObject")._internalModel.modelName +return new(0,r[t])(e)}return new a}}e.default=l})),define("consul-ui/helpers/compact",["exports","ember-composable-helpers/helpers/compact"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/compute",["exports","ember-composable-helpers/helpers/compute"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"compute",{enumerable:!0,get:function(){return t.compute}})})),define("consul-ui/helpers/contains",["exports","ember-composable-helpers/helpers/contains"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"contains",{enumerable:!0,get:function(){return t.contains}})})),define("consul-ui/helpers/cos",["exports","ember-math-helpers/helpers/cos"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"cos",{enumerable:!0,get:function(){return t.cos}})})),define("consul-ui/helpers/cosh",["exports","ember-math-helpers/helpers/cosh"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"cosh",{enumerable:!0,get:function(){return t.cosh}})})),define("consul-ui/helpers/css-map",["exports","@lit/reactive-element"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper(e=>e.filter(e=>e instanceof t.CSSResult||e[e.length-1]).map(e=>e instanceof t.CSSResult?e:e[0])) +e.default=n})),define("consul-ui/helpers/css",["exports","@lit/reactive-element"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends Ember.Helper{compute([e],n){return(0,t.css)([e])}}e.default=n})),define("consul-ui/helpers/dasherize",["exports","ember-cli-string-helpers/helpers/dasherize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"dasherize",{enumerable:!0,get:function(){return t.dasherize}})})),define("consul-ui/helpers/dec",["exports","ember-composable-helpers/helpers/dec"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"dec",{enumerable:!0,get:function(){return t.dec}})})),define("consul-ui/helpers/did-insert",["exports","ember-render-helpers/helpers/did-insert"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/did-update",["exports","ember-render-helpers/helpers/did-update"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/div",["exports","ember-math-helpers/helpers/div"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"div",{enumerable:!0,get:function(){return t.div}})})),define("consul-ui/helpers/document-attrs",["exports","mnemonist/multi-map"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const l=new Map,s=new WeakMap +let i=(n=Ember.inject.service("-document"),r=class extends Ember.Helper{constructor(...e){var t,n,r,l +super(...e),t=this,n="document",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}compute(e,t){this.synchronize(this.document.documentElement,t)}willDestroy(){this.synchronize(this.document.documentElement),s.delete(this)}synchronize(e,n){const r=s.get(this) +return r&&Object.entries(r).forEach(([e,t])=>{let n=l.get(e) +void 0!==n&&[...new Set(t.split(" "))].map(e=>n.remove(e,this))}),n&&(s.set(this,n),[...Object.entries(n)].forEach(([e,n])=>{let r=l.get(e) +void 0===r&&(r=new t.default(Set),l.set(e,r)),[...new Set(n.split(" "))].map(e=>{0===r.count(e)&&r.set(e,null),r.set(e,this)})})),[...l.entries()].forEach(([t,n])=>{let r="attr" +"class"===t?r=t:t.startsWith("data-")&&(r="data"),[...n.keys()].forEach(a=>{if(1===n.count(a)){switch(r){case"class":e.classList.remove(a)}n.delete(a),0===n.size&&l.delete(t)}else switch(r){case"class":e.classList.add(a)}})}),l}},o=r.prototype,u="document",c=[n],d={configurable:!0,enumerable:!0,writable:!0,initializer:null},p={},Object.keys(d).forEach((function(e){p[e]=d[e]})),p.enumerable=!!p.enumerable,p.configurable=!!p.configurable,("value"in p||p.initializer)&&(p.writable=!0),p=c.slice().reverse().reduce((function(e,t){return t(o,u,e)||e}),p),m&&void 0!==p.initializer&&(p.value=p.initializer?p.initializer.call(m):void 0,p.initializer=void 0),void 0===p.initializer&&(Object.defineProperty(o,u,p),p=null),a=p,r) +var o,u,c,d,m,p +e.default=i})),define("consul-ui/helpers/dom-position",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class t extends Ember.Helper{compute([e],{from:t,offset:n=!1}){return r=>{if("function"==typeof e){let a,l +if(n)l=r.currentTarget,a={width:l.offsetWidth,left:l.offsetLeft,height:l.offsetHeight,top:l.offsetTop} +else if(l=r.target,a=l.getBoundingClientRect(),void 0!==t){const e=t.getBoundingClientRect() +a.x=a.x-e.x,a.y=a.y-e.y}return e(a)}{const t=r.target,n=t.getBoundingClientRect() +e.forEach(([e,r])=>{t.style[r]=n[e]+"px"})}}}}e.default=t})),define("consul-ui/helpers/drop",["exports","ember-composable-helpers/helpers/drop"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/duration-from",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("temporal"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="temporal",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute([e],t){return this.temporal.durationFrom(e)}},l=n.prototype,s="temporal",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/helpers/element",["exports","ember-element-helper/helpers/element"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/ember-power-select-is-group",["exports","ember-power-select/helpers/ember-power-select-is-group"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"emberPowerSelectIsGroup",{enumerable:!0,get:function(){return t.emberPowerSelectIsGroup}})})),define("consul-ui/helpers/ember-power-select-is-selected",["exports","ember-power-select/helpers/ember-power-select-is-selected"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"emberPowerSelectIsSelected",{enumerable:!0,get:function(){return t.emberPowerSelectIsSelected}})})),define("consul-ui/helpers/ensure-safe-component",["exports","@embroider/util"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.EnsureSafeComponentHelper}})})),define("consul-ui/helpers/entries",["exports","ember-composable-helpers/helpers/entries"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"entries",{enumerable:!0,get:function(){return t.entries}})})),define("consul-ui/helpers/env",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("env"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="env",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute([e,t=""],n){const r=this.env.var(e) +return null!=r?r:t}},l=n.prototype,s="env",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})})),define("consul-ui/helpers/exp",["exports","ember-math-helpers/helpers/exp"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"exp",{enumerable:!0,get:function(){return t.exp}})})),define("consul-ui/helpers/expm1",["exports","ember-math-helpers/helpers/expm1"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"expm1",{enumerable:!0,get:function(){return t.expm1}})})),define("consul-ui/helpers/filter-by",["exports","ember-composable-helpers/helpers/filter-by"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/filter",["exports","ember-composable-helpers/helpers/filter"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})) +define("consul-ui/helpers/find-by",["exports","ember-composable-helpers/helpers/find-by"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/fixed-grid-layout",["exports","ember-collection/layouts/grid"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper((function(e){return new t.default(e[0],e[1])})) +e.default=n})),define("consul-ui/helpers/flatten-property",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function e([t,n],r){const a=r.pages||[] +return a.push(...t.pages),t.children.forEach(t=>e([t],{pages:a})),a})) +e.default=t})),define("consul-ui/helpers/flatten",["exports","ember-composable-helpers/helpers/flatten"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"flatten",{enumerable:!0,get:function(){return t.flatten}})})),define("consul-ui/helpers/floor",["exports","ember-math-helpers/helpers/floor"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"floor",{enumerable:!0,get:function(){return t.floor}})})),define("consul-ui/helpers/format-date",["exports","ember-intl/helpers/format-date"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/format-message",["exports","ember-intl/helpers/format-message"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/format-number",["exports","ember-intl/helpers/format-number"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/format-relative",["exports","ember-intl/helpers/format-relative"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/format-short-time",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function([e]){let t,n,r,a +a=Math.floor(e/1e3),r=Math.floor(a/60),a%=60,n=Math.floor(r/60),r%=60,t=Math.floor(n/24),n%=24 +const l=t,s=n,i=r,o=a +switch(!0){case 0!==l:return l+"d" +case 0!==s:return s+"h" +case 0!==i:return i+"m" +default:return o+"s"}})) +e.default=t})),define("consul-ui/helpers/format-time",["exports","ember-intl/helpers/format-time"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/from-entries",["exports","ember-composable-helpers/helpers/from-entries"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"fromEntries",{enumerable:!0,get:function(){return t.fromEntries}})})),define("consul-ui/helpers/fround",["exports","ember-math-helpers/helpers/fround"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"fround",{enumerable:!0,get:function(){return t.fround}})})),define("consul-ui/helpers/gcd",["exports","ember-math-helpers/helpers/gcd"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gcd",{enumerable:!0,get:function(){return t.gcd}})})),define("consul-ui/helpers/group-by",["exports","ember-composable-helpers/helpers/group-by"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})})),define("consul-ui/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})})),define("consul-ui/helpers/has-next",["exports","ember-composable-helpers/helpers/has-next"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"hasNext",{enumerable:!0,get:function(){return t.hasNext}})})),define("consul-ui/helpers/has-previous",["exports","ember-composable-helpers/helpers/has-previous"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"hasPrevious",{enumerable:!0,get:function(){return t.hasPrevious}})})),define("consul-ui/helpers/href-to",["exports","consul-ui/utils/routing/transitionable","consul-ui/utils/routing/wildcard","consul-ui/router"],(function(e,t,n,r){var a,l,s,i +function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.hrefTo=void 0 +const u=(0,n.default)(r.routes),c=function(e,n,r={}){const a=e.lookup("router:main").location,l=e.lookup("service:router") +let s=n.slice(0),i=s.shift(),o=r.params||{} +"."===i&&(s=(0,t.default)(l.currentRoute,o,e),i=s.shift()) +try{return u(i)&&(s=s.map(e=>e.split("/").map(encodeURIComponent).join("/"))),a.hrefTo(i,s,o)}catch(c){throw c.constructor===Error&&(c.message=`${c.message} For "${n[0]}:${JSON.stringify(n.slice(1))}"`),c}} +e.hrefTo=c +let d=(a=Ember.inject.service("router"),l=Ember._action,s=class extends Ember.Helper{constructor(...e){var t,n,r,a +super(...e),t=this,n="router",a=this,(r=i)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}init(){super.init(...arguments),this.router.on("routeWillChange",this.routeWillChange)}compute(e,t){return c(Ember.getOwner(this),e,t)}routeWillChange(e){this.recompute()}willDestroy(){this.router.off("routeWillChange",this.routeWillChange),super.willDestroy()}},i=o(s.prototype,"router",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(s.prototype,"routeWillChange",[l],Object.getOwnPropertyDescriptor(s.prototype,"routeWillChange"),s.prototype),s) +e.default=d})),define("consul-ui/helpers/html-safe",["exports","ember-cli-string-helpers/helpers/html-safe"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"htmlSafe",{enumerable:!0,get:function(){return t.htmlSafe}})})),define("consul-ui/helpers/humanize",["exports","ember-cli-string-helpers/helpers/humanize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"humanize",{enumerable:!0,get:function(){return t.humanize}})})),define("consul-ui/helpers/hypot",["exports","ember-math-helpers/helpers/hypot"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"hypot",{enumerable:!0,get:function(){return t.hypot}})})),define("consul-ui/helpers/imul",["exports","ember-math-helpers/helpers/imul"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"imul",{enumerable:!0,get:function(){return t.imul}})})),define("consul-ui/helpers/inc",["exports","ember-composable-helpers/helpers/inc"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"inc",{enumerable:!0,get:function(){return t.inc}})})),define("consul-ui/helpers/intersect",["exports","ember-composable-helpers/helpers/intersect"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/invoke",["exports","ember-composable-helpers/helpers/invoke"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"invoke",{enumerable:!0,get:function(){return t.invoke}})})),define("consul-ui/helpers/is-active",["exports","ember-router-helpers/helpers/is-active"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isActive",{enumerable:!0,get:function(){return t.isActive}})})),define("consul-ui/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})})),define("consul-ui/helpers/is-empty",["exports","ember-truth-helpers/helpers/is-empty"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})) +define("consul-ui/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})})),define("consul-ui/helpers/is-href",["exports"],(function(e){var t,n,r,a +function l(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(t=Ember.inject.service("router"),n=Ember._action,r=class extends Ember.Helper{constructor(...e){var t,n,r,l +super(...e),t=this,n="router",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}init(){super.init(...arguments),this.router.on("routeWillChange",this.routeWillChange)}compute([e,...t]){return this.router.currentRouteName.startsWith("nspace.")&&e.startsWith("dc.")&&(e="nspace."+e),void 0!==this.next&&"loading"!==this.next?this.next.startsWith(e):this.router.isActive(e,...t)}routeWillChange(e){this.next=e.to.name.replace(".index",""),this.recompute()}willDestroy(){this.router.off("routeWillChange",this.routeWillChange),super.willDestroy()}},a=l(r.prototype,"router",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l(r.prototype,"routeWillChange",[n],Object.getOwnPropertyDescriptor(r.prototype,"routeWillChange"),r.prototype),r) +e.default=s})),define("consul-ui/helpers/is",["exports","ember-can/helpers/can"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.is=void 0 +const n=(e,[t,n],r)=>{let{abilityName:a,propertyName:l}=e.abilities.parse(t),s=e.abilities.abilityFor(a,n,r) +return l="function"==typeof s.getCharacteristicProperty?s.getCharacteristicProperty(l):Ember.String.camelize("is-"+l),e._removeAbilityObserver(),e._addAbilityObserver(s,l),Ember.get(s,l)} +e.is=n +class r extends t.default{compute([e,t],r){return n(this,[e,t],r)}}e.default=r})),define("consul-ui/helpers/join",["exports","ember-composable-helpers/helpers/join"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/json-stringify",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function(e){try{return JSON.stringify(...e)}catch(t){return e[0].map(t=>JSON.stringify(t,e[1],e[2]))}})) +e.default=t})),define("consul-ui/helpers/keys",["exports","ember-composable-helpers/helpers/keys"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"keys",{enumerable:!0,get:function(){return t.keys}})})),define("consul-ui/helpers/last",["exports"],(function(e){function t([e=""]){switch(!0){case"string"==typeof e:return e.substr(-1)}}Object.defineProperty(e,"__esModule",{value:!0}),e.last=t,e.default=void 0 +var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/lcm",["exports","ember-math-helpers/helpers/lcm"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lcm",{enumerable:!0,get:function(){return t.lcm}})})),define("consul-ui/helpers/left-trim",["exports","consul-ui/utils/left-trim"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper((function([e="",n=""]){return(0,t.default)(e,n)})) +e.default=n})),define("consul-ui/helpers/log-e",["exports","ember-math-helpers/helpers/log-e"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"logE",{enumerable:!0,get:function(){return t.logE}})})),define("consul-ui/helpers/log10",["exports","ember-math-helpers/helpers/log10"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"log10",{enumerable:!0,get:function(){return t.log10}})})),define("consul-ui/helpers/log1p",["exports","ember-math-helpers/helpers/log1p"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"log1p",{enumerable:!0,get:function(){return t.log1p}})})),define("consul-ui/helpers/log2",["exports","ember-math-helpers/helpers/log2"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"log2",{enumerable:!0,get:function(){return t.log2}})})),define("consul-ui/helpers/lowercase",["exports","ember-cli-string-helpers/helpers/lowercase"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lowercase",{enumerable:!0,get:function(){return t.lowercase}})})),define("consul-ui/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})})),define("consul-ui/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})})),define("consul-ui/helpers/map-by",["exports","ember-composable-helpers/helpers/map-by"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/map",["exports","ember-composable-helpers/helpers/map"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/max",["exports","ember-math-helpers/helpers/max"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"max",{enumerable:!0,get:function(){return t.max}})})),define("consul-ui/helpers/merge-checks",["exports","consul-ui/utils/merge-checks"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper((function([e,n]){return(0,t.default)(e,n)})) +e.default=n})),define("consul-ui/helpers/min",["exports","ember-math-helpers/helpers/min"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"min",{enumerable:!0,get:function(){return t.min}})})),define("consul-ui/helpers/mixed-grid-layout",["exports","ember-collection/layouts/mixed-grid"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper((function(e){return new t.default(e[0])})) +e.default=n})),define("consul-ui/helpers/mod",["exports","ember-math-helpers/helpers/mod"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"mod",{enumerable:!0,get:function(){return t.mod}})})),define("consul-ui/helpers/mult",["exports","ember-math-helpers/helpers/mult"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"mult",{enumerable:!0,get:function(){return t.mult}})})),define("consul-ui/helpers/next",["exports","ember-composable-helpers/helpers/next"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"next",{enumerable:!0,get:function(){return t.next}})})),define("consul-ui/helpers/noop",["exports","ember-composable-helpers/helpers/noop"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"noop",{enumerable:!0,get:function(){return t.noop}})})),define("consul-ui/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEqualHelper",{enumerable:!0,get:function(){return t.notEqualHelper}})})),define("consul-ui/helpers/not",["exports","ember-truth-helpers/helpers/not"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})})),define("consul-ui/helpers/object-at",["exports","ember-composable-helpers/helpers/object-at"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"objectAt",{enumerable:!0,get:function(){return t.objectAt}})})),define("consul-ui/helpers/on-document",["exports","ember-on-helper/helpers/on-document"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})) +define("consul-ui/helpers/on-window",["exports","ember-on-helper/helpers/on-window"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/on",["exports","ember-on-helper/helpers/on"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/optional",["exports","ember-composable-helpers/helpers/optional"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"optional",{enumerable:!0,get:function(){return t.optional}})})),define("consul-ui/helpers/or",["exports","ember-truth-helpers/helpers/or"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})),define("consul-ui/helpers/page-title",["exports","ember-page-title/helpers/page-title"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=t.default +e.default=n})),define("consul-ui/helpers/percentage-columns-layout",["exports","ember-collection/layouts/percentage-columns"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper((function(e){return new t.default(e[0],e[1],e[2])})) +e.default=n})),define("consul-ui/helpers/percentage-of",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function([e,t]){const n=e/t*100 +return isNaN(n)?0:n.toFixed(2)})) +e.default=t})),define("consul-ui/helpers/perform",["exports","ember-concurrency/helpers/perform"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/pipe-action",["exports","ember-composable-helpers/helpers/pipe-action"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/pipe",["exports","ember-composable-helpers/helpers/pipe"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"pipe",{enumerable:!0,get:function(){return t.pipe}})})),define("consul-ui/helpers/pluralize",["exports","ember-inflector/lib/helpers/pluralize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=t.default +e.default=n})),define("consul-ui/helpers/policy/datacenters",["exports"],(function(e){function t(e,t={}){const n=Ember.get(e[0],"Datacenters") +return Array.isArray(n)&&0!==n.length?Ember.get(e[0],"Datacenters"):[t.global||"All"]}Object.defineProperty(e,"__esModule",{value:!0}),e.datacenters=t,e.default=void 0 +var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/policy/group",["exports","consul-ui/models/policy"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper((function([e]){return e.reduce((function(e,n){let r +switch(!0){case Ember.get(n,"ID")===t.MANAGEMENT_ID:r="management" +break +case""!==Ember.get(n,"template"):r="identities" +break +default:r="policies"}return e[r].push(n),e}),{management:[],identities:[],policies:[]})})) +e.default=n})),define("consul-ui/helpers/policy/typeof",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.typeOf=t,e.default=void 0 +function t(e){const t=e[0],n=Ember.get(t,"template") +switch(!0){case void 0===n:return"role" +case"service-identity"===n:return"policy-service-identity" +case"node-identity"===n:return"policy-node-identity" +case"00000000-0000-0000-0000-000000000001"===Ember.get(t,"ID"):return"policy-management" +default:return"policy"}}var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/pow",["exports","ember-math-helpers/helpers/pow"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"pow",{enumerable:!0,get:function(){return t.pow}})})),define("consul-ui/helpers/previous",["exports","ember-composable-helpers/helpers/previous"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"previous",{enumerable:!0,get:function(){return t.previous}})})),define("consul-ui/helpers/queue",["exports","ember-composable-helpers/helpers/queue"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"queue",{enumerable:!0,get:function(){return t.queue}})})),define("consul-ui/helpers/random",["exports","ember-math-helpers/helpers/random"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"random",{enumerable:!0,get:function(){return t.random}})})),define("consul-ui/helpers/range",["exports","ember-composable-helpers/helpers/range"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"range",{enumerable:!0,get:function(){return t.range}})})),define("consul-ui/helpers/reduce",["exports","ember-composable-helpers/helpers/reduce"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/refresh-route",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("router"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="router",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute(e,t){return()=>{const e=Ember.getOwner(this),t=this.router.currentRoute.name +return e.lookup("route:"+t).refresh()}}},l=n.prototype,s="router",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/helpers/reject-by",["exports","ember-composable-helpers/helpers/reject-by"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/render-template",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const a=/{{([A-Za-z.0-9_-]+)}}/g +let l,s=(t=Ember.inject.service("encoder"),n=class extends Ember.Helper{constructor(){var e,t,n,s +super(...arguments),e=this,t="encoder",s=this,(n=r)&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(s):void 0}),"function"!=typeof l&&(l=this.encoder.createRegExpEncoder(a,encodeURIComponent,!1))}compute([e,t]){return l(e,t)}},i=n.prototype,o="encoder",u=[t],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),r=m,n) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/helpers/repeat",["exports","ember-composable-helpers/helpers/repeat"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"repeat",{enumerable:!0,get:function(){return t.repeat}})})),define("consul-ui/helpers/require",["exports","@lit/reactive-element","consul-ui/utils/path/resolve","consul-ui/components/panel/index.css","consul-ui/components/distribution-meter/index.css","consul-ui/components/distribution-meter/meter/index.css","consul-ui/components/distribution-meter/meter/element","consul-ui/styles/base/decoration/visually-hidden.css","consul-ui/styles/base/icons/base-keyframes.css","consul-ui/styles/base/icons/icons/chevron-down/index.css"],(function(e,t,n,r,a,l,s,i,o,u){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const c={"/components/panel/index.css":r.default,"/components/distribution-meter/index.css":a.default,"/components/distribution-meter/meter/index.css":l.default,"/components/distribution-meter/meter/element":s.default,"/styles/base/decoration/visually-hidden.css":i.default,"/styles/base/icons/base-keyframes.css":o.default,"/styles/base/icons/icons/chevron-down/index.css":u.default},d=new Map +var m=Ember.Helper.helper(([e=""],{from:r})=>{const a=(0,n.default)(r,e) +switch(!0){case a.endsWith(".css"):return c[a](t.css) +default:{if(d.has(a))return d.get(a) +const e=c[a](HTMLElement) +return d.set(a,e),e}}}) +e.default=m})),define("consul-ui/helpers/reverse",["exports","ember-composable-helpers/helpers/reverse"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/right-trim",["exports","consul-ui/utils/right-trim"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Helper.helper((function([e="",n=""]){return(0,t.default)(e,n)})) +e.default=n})),define("consul-ui/helpers/root-url",["exports","ember-router-helpers/helpers/root-url"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"rootUrl",{enumerable:!0,get:function(){return t.rootUrl}})})),define("consul-ui/helpers/round",["exports","ember-math-helpers/helpers/round"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"round",{enumerable:!0,get:function(){return t.round}})})),define("consul-ui/helpers/route-action",["exports","ember-route-action-helper/helpers/route-action"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})) +define("consul-ui/helpers/route-match",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function([e]){switch(["Present","Exact","Prefix","Suffix","Regex"].find(t=>void 0!==e[t])){case"Present":return(e.Invert?"NOT ":"")+"present" +case"Exact":return`${e.Invert?"NOT ":""}exactly matching "${e.Exact}"` +case"Prefix":return`${e.Invert?"NOT ":""}prefixed by "${e.Prefix}"` +case"Suffix":return`${e.Invert?"NOT ":""}suffixed by "${e.Suffix}"` +case"Regex":return`${e.Invert?"NOT ":""}matching the regex "${e.Regex}"`}return""})) +e.default=t})),define("consul-ui/helpers/route-params",["exports","ember-router-helpers/helpers/route-params"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"routeParams",{enumerable:!0,get:function(){return t.routeParams}})})),define("consul-ui/helpers/service/card-permissions",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function([e]){if(""===e.Datacenter)return"empty" +{const t=e.Intention.HasPermissions,n=e.Intention.Allowed,r="specific-intention"===e.Source&&!e.TransparentProxy +switch(!0){case t:return"allow" +case!n&&!t:return"deny" +case n&&r:return"not-defined" +default:return"allow"}}})) +e.default=t})),define("consul-ui/helpers/service/external-source",["exports"],(function(e){function t(e,t){let n=Ember.get(e[0],"ExternalSources.firstObject") +n||(n=Ember.get(e[0],"Meta.external-source")) +const r=void 0===t.prefix?"":t.prefix +if(n&&["consul-api-gateway","vault","kubernetes","terraform","nomad","consul","aws"].includes(n))return`${r}${n}`}Object.defineProperty(e,"__esModule",{value:!0}),e.serviceExternalSource=t,e.default=void 0 +var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/service/health-percentage",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function([e]){const t=e.ChecksCritical+e.ChecksPassing+e.ChecksWarning +return 0===t?"":{passing:Math.round(e.ChecksPassing/t*100),warning:Math.round(e.ChecksWarning/t*100),critical:Math.round(e.ChecksCritical/t*100)}})) +e.default=t})),define("consul-ui/helpers/set",["exports","ember-set-helper/helpers/set"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/shuffle",["exports","ember-composable-helpers/helpers/shuffle"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"shuffle",{enumerable:!0,get:function(){return t.shuffle}})})),define("consul-ui/helpers/sign",["exports","ember-math-helpers/helpers/sign"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"sign",{enumerable:!0,get:function(){return t.sign}})})),define("consul-ui/helpers/sin",["exports","ember-math-helpers/helpers/sin"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"sin",{enumerable:!0,get:function(){return t.sin}})})),define("consul-ui/helpers/singularize",["exports","ember-inflector/lib/helpers/singularize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=t.default +e.default=n})),define("consul-ui/helpers/slice",["exports","ember-composable-helpers/helpers/slice"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/slugify",["exports"],(function(e){function t([e=""]){return e.replace(/ /g,"-").toLowerCase()}Object.defineProperty(e,"__esModule",{value:!0}),e.slugify=t,e.default=void 0 +var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/sort-by",["exports","ember-composable-helpers/helpers/sort-by"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/split",["exports"],(function(e){function t([e="",t=","]){return e.split(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.split=t,e.default=void 0 +var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/sqrt",["exports","ember-math-helpers/helpers/sqrt"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"sqrt",{enumerable:!0,get:function(){return t.sqrt}})})),define("consul-ui/helpers/state-chart",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("state"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="state",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute([e],t){return this.state.stateChart(e)}},l=n.prototype,s="state",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/helpers/state-matches",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("state"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="state",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute([e,t],n){return this.state.matches(e,t)}},l=n.prototype,s="state",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/helpers/string-char-at",["exports","ember-string-fns/helpers/string-char-at"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringCharAt",{enumerable:!0,get:function(){return t.stringCharAt}})})),define("consul-ui/helpers/string-char-code-at",["exports","ember-string-fns/helpers/string-char-code-at"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringCharCodeAt",{enumerable:!0,get:function(){return t.stringCharCodeAt}})})),define("consul-ui/helpers/string-code-point-at",["exports","ember-string-fns/helpers/string-code-point-at"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringCodePointAt",{enumerable:!0,get:function(){return t.stringCodePointAt}})})),define("consul-ui/helpers/string-concat",["exports","ember-string-fns/helpers/string-concat"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringConcat",{enumerable:!0,get:function(){return t.stringConcat}})})),define("consul-ui/helpers/string-ends-with",["exports","ember-string-fns/helpers/string-ends-with"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringEndsWith",{enumerable:!0,get:function(){return t.stringEndsWith}})})),define("consul-ui/helpers/string-equals",["exports","ember-string-fns/helpers/string-equals"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringEquals",{enumerable:!0,get:function(){return t.stringEquals}})})),define("consul-ui/helpers/string-from-char-code",["exports","ember-string-fns/helpers/string-from-char-code"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringFromCharCode",{enumerable:!0,get:function(){return t.stringFromCharCode}})})),define("consul-ui/helpers/string-from-code-point",["exports","ember-string-fns/helpers/string-from-code-point"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringFromCodePoint",{enumerable:!0,get:function(){return t.stringFromCodePoint}})})),define("consul-ui/helpers/string-html-safe",["exports"],(function(e){function t([e=""]){return Ember.String.htmlSafe(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.stringHtmlSafe=t,e.default=void 0 +var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/string-includes",["exports","ember-string-fns/helpers/string-includes"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringIncludes",{enumerable:!0,get:function(){return t.stringIncludes}})})),define("consul-ui/helpers/string-index-of",["exports","ember-string-fns/helpers/string-index-of"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringIndexOf",{enumerable:!0,get:function(){return t.stringIndexOf}})})),define("consul-ui/helpers/string-last-index-of",["exports","ember-string-fns/helpers/string-last-index-of"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringLastIndexOf",{enumerable:!0,get:function(){return t.stringLastIndexOf}})})),define("consul-ui/helpers/string-not-equals",["exports","ember-string-fns/helpers/string-not-equals"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringNotEquals",{enumerable:!0,get:function(){return t.stringNotEquals}})})) +define("consul-ui/helpers/string-pad-end",["exports","ember-string-fns/helpers/string-pad-end"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringPadEnd",{enumerable:!0,get:function(){return t.stringPadEnd}})})),define("consul-ui/helpers/string-pad-start",["exports","ember-string-fns/helpers/string-pad-start"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringPadStart",{enumerable:!0,get:function(){return t.stringPadStart}})})),define("consul-ui/helpers/string-repeat",["exports","ember-string-fns/helpers/string-repeat"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringRepeat",{enumerable:!0,get:function(){return t.stringRepeat}})})),define("consul-ui/helpers/string-replace-all",["exports","ember-string-fns/helpers/string-replace-all"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringReplaceAll",{enumerable:!0,get:function(){return t.stringReplaceAll}})})),define("consul-ui/helpers/string-replace",["exports","ember-string-fns/helpers/string-replace"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringReplace",{enumerable:!0,get:function(){return t.stringReplace}})})),define("consul-ui/helpers/string-slice",["exports","ember-string-fns/helpers/string-slice"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringSlice",{enumerable:!0,get:function(){return t.stringSlice}})})),define("consul-ui/helpers/string-split",["exports","ember-string-fns/helpers/string-split"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringSplit",{enumerable:!0,get:function(){return t.stringSplit}})})),define("consul-ui/helpers/string-starts-with",["exports","ember-string-fns/helpers/string-starts-with"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringStartsWith",{enumerable:!0,get:function(){return t.stringStartsWith}})})),define("consul-ui/helpers/string-substring",["exports","ember-string-fns/helpers/string-substring"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringSubstring",{enumerable:!0,get:function(){return t.stringSubstring}})})),define("consul-ui/helpers/string-to-camel-case",["exports","ember-string-fns/helpers/string-to-camel-case"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringToCamelCase",{enumerable:!0,get:function(){return t.stringToCamelCase}})})),define("consul-ui/helpers/string-to-kebab-case",["exports","ember-string-fns/helpers/string-to-kebab-case"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringToKebabCase",{enumerable:!0,get:function(){return t.stringToKebabCase}})})),define("consul-ui/helpers/string-to-lower-case",["exports","ember-string-fns/helpers/string-to-lower-case"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringToLowerCase",{enumerable:!0,get:function(){return t.stringToLowerCase}})})),define("consul-ui/helpers/string-to-pascal-case",["exports","ember-string-fns/helpers/string-to-pascal-case"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringToPascalCase",{enumerable:!0,get:function(){return t.stringToPascalCase}})})),define("consul-ui/helpers/string-to-sentence-case",["exports","ember-string-fns/helpers/string-to-sentence-case"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringToSentenceCase",{enumerable:!0,get:function(){return t.stringToSentenceCase}})})),define("consul-ui/helpers/string-to-snake-case",["exports","ember-string-fns/helpers/string-to-snake-case"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringToSnakeCase",{enumerable:!0,get:function(){return t.stringToSnakeCase}})})),define("consul-ui/helpers/string-to-title-case",["exports","ember-string-fns/helpers/string-to-title-case"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringToTitleCase",{enumerable:!0,get:function(){return t.stringToTitleCase}})})),define("consul-ui/helpers/string-to-upper-case",["exports","ember-string-fns/helpers/string-to-upper-case"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringToUpperCase",{enumerable:!0,get:function(){return t.stringToUpperCase}})})),define("consul-ui/helpers/string-trim-end",["exports","ember-string-fns/helpers/string-trim-end"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringTrimEnd",{enumerable:!0,get:function(){return t.stringTrimEnd}})})),define("consul-ui/helpers/string-trim-start",["exports","ember-string-fns/helpers/string-trim-start"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringTrimStart",{enumerable:!0,get:function(){return t.stringTrimStart}})})),define("consul-ui/helpers/string-trim",["exports","ember-string-fns/helpers/string-trim"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"stringTrim",{enumerable:!0,get:function(){return t.stringTrim}})})),define("consul-ui/helpers/style-map",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper(e=>{const t=e.reduce((e,[t,n,r=""])=>null==n?e:`${e}${t}:${n.toString()}${r};`,"") +return t.length>0?t:void 0}) +e.default=t})),define("consul-ui/helpers/sub",["exports","ember-math-helpers/helpers/sub"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"sub",{enumerable:!0,get:function(){return t.sub}})})),define("consul-ui/helpers/substr",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function([e="",t=0,n]){return e.substr(t,n)})) +e.default=t})),define("consul-ui/helpers/svg-curve",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper((function([e],t){const n=t.src||{x:0,y:0},r=t.type||"cubic" +let a=[e,{x:(n.x+e.x)/2,y:n.y}] +return"cubic"===r&&a.push({x:a[1].x,y:e.y}),`${l=n,`\n M ${l.x} ${l.y}\n `}${function(){const e=[...arguments] +return`${arguments.length>2?"C":"Q"} ${e.concat(e.shift()).map(e=>Object.values(e).join(" ")).join(",")}`}(...a)}` +var l})) +e.default=t})),define("consul-ui/helpers/t",["exports","ember-intl/helpers/t"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/take",["exports","ember-composable-helpers/helpers/take"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/tan",["exports","ember-math-helpers/helpers/tan"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"tan",{enumerable:!0,get:function(){return t.tan}})})),define("consul-ui/helpers/tanh",["exports","ember-math-helpers/helpers/tanh"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"tanh",{enumerable:!0,get:function(){return t.tanh}})})),define("consul-ui/helpers/task",["exports","ember-concurrency/helpers/task"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/temporal-format",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("temporal"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="temporal",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute([e],t){return this.temporal.format(e,t)}},l=n.prototype,s="temporal",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})) +define("consul-ui/helpers/temporal-within",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("temporal"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="temporal",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute(e,t){return this.temporal.within(e,t)}},l=n.prototype,s="temporal",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/helpers/test",["exports","consul-ui/helpers/can","consul-ui/helpers/is"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class r extends t.default{compute([e,t],r){switch(!0){case e.startsWith("can "):return super.compute([e.substr(4),t],r) +case e.startsWith("is "):return(0,n.is)(this,[e.substr(3),t],r)}throw new Error(e+" is not supported by the 'test' helper.")}}e.default=r})),define("consul-ui/helpers/titleize",["exports","ember-cli-string-helpers/helpers/titleize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"titleize",{enumerable:!0,get:function(){return t.titleize}})})),define("consul-ui/helpers/to-hash",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.Helper.helper(([e=[],t])=>(Array.isArray(e)||(e=e.toArray()),e.reduce((e,n)=>(e[Ember.get(n,t)]=n,e),{}))) +e.default=t})),define("consul-ui/helpers/to-route",["exports"],(function(e){var t,n,r,a,l +function s(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let o=(t=Ember.inject.service("router"),n=Ember.inject.service("env"),r=class extends Ember.Helper{constructor(...e){super(...e),s(this,"router",a,this),s(this,"env",l,this)}compute([e]){return this.router.recognize(`${this.env.var("rootURL")}${e}`).name}},a=i(r.prototype,"router",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=i(r.prototype,"env",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r) +e.default=o})),define("consul-ui/helpers/toggle-action",["exports","ember-composable-helpers/helpers/toggle-action"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/toggle",["exports","ember-composable-helpers/helpers/toggle"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"toggle",{enumerable:!0,get:function(){return t.toggle}})})),define("consul-ui/helpers/token/is-anonymous",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.isAnonymous=t,e.default=void 0 +function t(e){return"00000000-0000-0000-0000-000000000002"===Ember.get(e[0],"AccessorID")}var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/token/is-legacy",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.isLegacy=n,e.default=void 0 +const t=function(e){const t=Ember.get(e,"Rules") +if(null!=t)return""!==t.trim() +const n=Ember.get(e,"Legacy") +return void 0!==n&&n} +function n(e){const n=e[0] +return void 0!==n.length?n.find((function(e){return t(e)})):t(n)}var r=Ember.Helper.helper(n) +e.default=r})),define("consul-ui/helpers/transition-to",["exports","ember-router-helpers/helpers/transition-to"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"transitionTo",{enumerable:!0,get:function(){return t.transitionTo}})})),define("consul-ui/helpers/trim",["exports","ember-cli-string-helpers/helpers/trim"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"trim",{enumerable:!0,get:function(){return t.trim}})})),define("consul-ui/helpers/trunc",["exports","ember-math-helpers/helpers/trunc"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"trunc",{enumerable:!0,get:function(){return t.trunc}})})),define("consul-ui/helpers/truncate",["exports","ember-cli-string-helpers/helpers/truncate"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"truncate",{enumerable:!0,get:function(){return t.truncate}})})),define("consul-ui/helpers/tween-to",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("ticker"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="ticker",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute([e,t],n){return this.ticker.tweenTo(e,t)}},l=n.prototype,s="ticker",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/helpers/underscore",["exports","ember-cli-string-helpers/helpers/underscore"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"underscore",{enumerable:!0,get:function(){return t.underscore}})})),define("consul-ui/helpers/union",["exports","ember-composable-helpers/helpers/union"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/uniq-by",["exports"],(function(e){function t([e,t]){return Ember.isEmpty(e)?[]:Ember.A(t).uniqBy(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.uniqBy=t,e.default=void 0 +var n=Ember.Helper.helper(t) +e.default=n})),define("consul-ui/helpers/unique-id",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("dom"),n=class extends Ember.Helper{constructor(...e){var t,n,a,l +super(...e),t=this,n="dom",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}compute(e,t){return this.dom.guid({})}},l=n.prototype,s="dom",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/helpers/uppercase",["exports","ember-cli-string-helpers/helpers/uppercase"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"uppercase",{enumerable:!0,get:function(){return t.uppercase}})})),define("consul-ui/helpers/uri",["exports"],(function(e){var t,n,r,a,l +function s(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const o=/\${([A-Za-z.0-9_-]+)}/g +let u,c=(t=Ember.inject.service("encoder"),n=Ember.inject.service("data-source/service"),r=class extends Ember.Helper{constructor(){super(...arguments),s(this,"encoder",a,this),s(this,"data",l,this),"function"!=typeof u&&(u=this.encoder.createRegExpEncoder(o,encodeURIComponent))}compute([e,t]){return this.data.uri(u(e,t))}},a=i(r.prototype,"encoder",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=i(r.prototype,"data",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r) +e.default=c})),define("consul-ui/helpers/url-for",["exports","ember-router-helpers/helpers/url-for"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"urlFor",{enumerable:!0,get:function(){return t.urlFor}})})),define("consul-ui/helpers/values",["exports","ember-composable-helpers/helpers/values"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"values",{enumerable:!0,get:function(){return t.values}})})),define("consul-ui/helpers/w",["exports","ember-cli-string-helpers/helpers/w"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"w",{enumerable:!0,get:function(){return t.w}})})),define("consul-ui/helpers/will-destroy",["exports","ember-render-helpers/helpers/will-destroy"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/helpers/without",["exports","ember-composable-helpers/helpers/without"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"without",{enumerable:!0,get:function(){return t.without}})})),define("consul-ui/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})})),define("consul-ui/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","consul-ui/config/environment"],(function(e,t,n){let r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n.default.APP&&(r=n.default.APP.name,a=n.default.APP.version) +var l={name:"App Version",initialize:(0,t.default)(r,a)} +e.default=l})),define("consul-ui/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={name:"container-debug-adapter",initialize(){let e=arguments[1]||arguments[0] +e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}} +e.default=n})),define("consul-ui/initializers/ember-data-data-adapter",["exports","@ember-data/debug/setup"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/initializers/ember-data",["exports","ember-data","ember-data/setup-container"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var r={name:"ember-data",initialize:n.default} +e.default=r})) +define("consul-ui/initializers/export-application-global",["exports","consul-ui/config/environment"],(function(e,t){function n(){var e=arguments[1]||arguments[0] +if(!1!==t.default.exportApplicationGlobal){var n +if("undefined"!=typeof window)n=window +else if("undefined"!=typeof global)n=global +else{if("undefined"==typeof self)return +n=self}var r,a=t.default.exportApplicationGlobal +r="string"==typeof a?a:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default=void 0 +var r={name:"export-application-global",initialize:n} +e.default=r})),define("consul-ui/initializers/flash-messages",["exports","consul-ui/config/environment","ember-cli-flash/utils/flash-message-options"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=r,e.default=void 0 +function r(){const e=arguments[1]||arguments[0],{flashMessageDefaults:r}=t.default||{},{injectionFactories:a}=r||[],l=(0,n.default)(r) +a&&a.length +l.injectionFactories.forEach(t=>{e.inject(t,"flashMessages","service:flash-messages")})}var a={name:"flash-messages",initialize:r} +e.default=a})),define("consul-ui/initializers/initialize-torii-callback",["exports","consul-ui/config/environment","torii/redirect-handler"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var r={name:"torii-callback",before:"torii",initialize(e){arguments[1]&&(e=arguments[1]),t.default.torii&&t.default.torii.disableRedirectInitializer||(e.deferReadiness(),n.default.handle(window).catch((function(){e.advanceReadiness()})))}} +e.default=r})),define("consul-ui/initializers/initialize-torii-session",["exports","torii/bootstrap/session","torii/configuration"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var r={name:"torii-session",after:"torii",initialize(e){arguments[1]&&(e=arguments[1]) +const r=(0,n.getConfiguration)() +if(r.sessionServiceName){(0,t.default)(e,r.sessionServiceName) +var a="service:"+r.sessionServiceName +e.inject("adapter",r.sessionServiceName,a)}}} +e.default=r})),define("consul-ui/initializers/initialize-torii",["exports","torii/bootstrap/torii","torii/configuration","consul-ui/config/environment"],(function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var a={name:"torii",initialize(e){arguments[1]&&(e=arguments[1]),(0,n.configure)(r.default.torii||{}),(0,t.default)(e),e.inject("route","torii","service:torii")}} +e.default=a})),define("consul-ui/initializers/model-fragments",["exports","ember-data-model-fragments","ember-data-model-fragments/ext"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t={name:"fragmentTransform",after:"ember-data",initialize(){}} +e.default=t})),define("consul-ui/initializers/setup-ember-can",["exports","ember-can/initializers/setup-ember-can"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"initialize",{enumerable:!0,get:function(){return t.initialize}})})),define("consul-ui/initializers/viewport-config",["exports","ember-in-viewport/initializers/viewport-config"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"initialize",{enumerable:!0,get:function(){return t.initialize}})})),define("consul-ui/instance-initializers/container",["exports","require","deepmerge"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.services=void 0 +const r=document,a=n.default.all([...r.querySelectorAll("script[data-services]")].map(e=>JSON.parse(e.dataset.services))) +e.services=a +var l={name:"container",initialize(e){(function(e,n){Object.entries(n).forEach(([n,r])=>{switch(!0){case"string"==typeof r.class:if(!t.default.has(r.class))throw new Error(`Unable to locate '${r.class}'`) +e.register(n.replace("auth-provider:","torii-provider:"),(0,t.default)(r.class).default)}})})(e,a) +const n=e.lookup("service:container") +let r=n.get("container-debug-adapter:main").catalogEntriesByType("service").filter(e=>e.startsWith("repository/")||"ui-config"===e) +r.push("repository/service"),r.forEach(e=>{const t="service:"+e +n.set(t,n.resolveRegistration(t))})}} +e.default=l})),define("consul-ui/instance-initializers/ember-data",["exports","ember-data/initialize-store-service"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={name:"ember-data",initialize:t.default} +e.default=n})),define("consul-ui/instance-initializers/href-to",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.HrefTo=void 0 +class t{constructor(e,t){this.applicationInstance=e,this.target=t +const n=this.target.attributes.href +this.url=n&&n.value}handle(e){this.shouldHandle(e)&&(e.preventDefault(),this.applicationInstance.lookup("router:main").location.transitionTo(this.url))}shouldHandle(e){return this.isUnmodifiedLeftClick(e)&&!this.isIgnored(this.target)&&!this.isExternal(this.target)&&!this.hasActionHelper(this.target)&&!this.hasDownload(this.target)&&!this.isLinkComponent(this.target)}isUnmodifiedLeftClick(e){return!(void 0!==e.which&&1!==e.which||e.ctrlKey||e.metaKey)}isExternal(e){return"_blank"===e.getAttribute("target")}isIgnored(e){return e.dataset.nativeHref}hasActionHelper(e){return e.dataset.emberAction}hasDownload(e){return e.hasAttribute("download")}isLinkComponent(e){let t=!1 +const n=e.id +if(n){const e=this.applicationInstance.lookup("-view-registry:main")[n] +t=e&&e instanceof Ember.LinkComponent}return t}recognizeUrl(e){let t=!1 +if(e){const n=this._getRouter(),r=this._getRootUrl(),a=0===e.indexOf(r),l=this.getUrlWithoutRoot(),s=n._router._routerMicrolib||n._router.router +t=a&&s.recognizer.recognize(l)}return t}getUrlWithoutRoot(){const e=this.applicationInstance.lookup("router:main").location +let t=e.getURL.apply({getHash:()=>"",location:{pathname:this.url},baseURL:e.baseURL,rootURL:e.rootURL,env:e.env},[]) +const n=t.indexOf("?") +return-1!==n&&(t=t.substr(0,n-1)),t}_getRouter(){return this.applicationInstance.lookup("service:router")}_getRootUrl(){let e=this._getRouter().get("rootURL") +return"/"!==e.charAt(e.length-1)&&(e+="/"),e}}e.HrefTo=t +var n={name:"href-to",initialize(e){if("undefined"==typeof FastBoot){const n=e.lookup("service:dom").document(),r=n=>{const r="A"===n.target.tagName?n.target:function(e){if(e.closest)return e.closest("a") +for(e=e.parentElement;e&&"A"!==e.tagName;)e=e.parentElement +return e}(n.target) +if(r){new t(e,r).handle(n)}} +n.body.addEventListener("click",r),e.reopen({willDestroy(){return n.body.removeEventListener("click",r),this._super(...arguments)}})}}} +e.default=n})),define("consul-ui/instance-initializers/ivy-codemirror",["exports"],(function(e){function t(e){const t=e.application.name,n=e.lookup("service:-document"),r=new Map(Object.entries(JSON.parse(n.querySelector(`[data-${t}-fs]`).textContent))) +CodeMirror.modeURL={replace:function(e,t){switch(t.trim()){case"javascript":return r.get(["codemirror","mode","javascript","javascript.js"].join("/")) +case"ruby":return r.get(["codemirror","mode","ruby","ruby.js"].join("/")) +case"yaml":return r.get(["codemirror","mode","yaml","yaml.js"].join("/")) +case"xml":return r.get(["codemirror","mode","xml","xml.js"].join("/"))}}} +e.resolveRegistration("component:ivy-codemirror").reopen({attributeBindings:["name"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=t,e.default=void 0 +var n={initialize:t} +e.default=n})),define("consul-ui/instance-initializers/selection",["exports","consul-ui/env"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={name:"selection",initialize(e){if((0,t.env)("CONSUL_UI_DISABLE_ANCHOR_SELECTION"))return +const n=e.lookup("service:dom"),r=n.document(),a=r.getElementsByTagName("html")[0],l=function(e){return"A"===e.tagName?e:n.closest("a",e)},s=function(e){if(a.classList.contains("is-debug"))return +const t=l(e.target) +if(t){if(void 0!==e.button&&2===e.button){const e=t.dataset.href +return void(e&&t.setAttribute("href",e))}const n=t.getAttribute("href") +n&&(t.dataset.href=n,t.removeAttribute("href"))}},i=function(e){if(a.classList.contains("is-debug"))return +const t=l(e.target) +if(t){const n=t.dataset.href +!function(t=window){const n=t.getSelection() +let r=!1 +try{r="isCollapsed"in n&&!n.isCollapsed&&n.toString().length>1}catch(e){}return r}()&&n&&t.setAttribute("href",n)}} +r.body.addEventListener("mousedown",s),r.body.addEventListener("mouseup",i),e.reopen({willDestroy:function(){return r.body.removeEventListener("mousedown",s),r.body.removeEventListener("mouseup",i),this._super(...arguments)}})}} +e.default=n})),define("consul-ui/instance-initializers/setup-routes",["exports","torii/bootstrap/routing","torii/configuration","torii/compat/get-router-instance","torii/compat/get-router-lib","torii/router-dsl-ext"],(function(e,t,n,r,a){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var l={name:"torii-setup-routes",initialize(e){if(!(0,n.getConfiguration)().sessionServiceName)return +let l=(0,r.default)(e) +var s=function(){var n=(0,a.default)(l).authenticatedRoutes +!Ember.isEmpty(n)&&(0,t.default)(e,n),l.off("willTransition",s)} +l.on("willTransition",s)}} +e.default=l})),define("consul-ui/instance-initializers/walk-providers",["exports","torii/lib/container-utils","torii/configuration"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var r={name:"torii-walk-providers",initialize(e){let r=(0,n.getConfiguration)() +for(var a in r.providers)r.providers.hasOwnProperty(a)&&(0,t.lookup)(e,"torii-provider:"+a)}} +e.default=r})),define("consul-ui/locations/fsm-with-optional-test",["exports","consul-ui/locations/fsm-with-optional","consul-ui/locations/fsm","@ember/test-helpers"],(function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{static create(){return new this(...arguments)}constructor(){var e,t,r +super(...arguments),r="fsm-with-optional-test",(t="implementation")in(e=this)?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this.location=new n.Location,this.machine=new n.FSM(this.location),this.doc={defaultView:{addEventListener:(e,t)=>{this.machine=new n.FSM(this.location,t)},removeEventListener:()=>{this.machine=new n.FSM}}}}visit(e){const t=this.container,n=this.container.lookup("router:main"),a=async()=>(await(0,r.settled)(),new Promise(e=>setTimeout(e(t),0))),l=e=>{if(e.error)throw e.error +if("TransitionAborted"===e.name&&n._routerMicrolib.activeTransition)return n._routerMicrolib.activeTransition.then(a,l) +throw"TransitionAborted"===e.name?new Error(e.message):e} +return""===this.location.pathname?(this.rootURL=n.rootURL.replace(/\/$/,""),this.machine.state.path=this.location.pathname=`${this.rootURL}${e}`,this.path=this.getURL(),t.handleURL(""+this.path).then(a,l)):this.transitionTo(e).then(a,l)}}e.default=a})),define("consul-ui/locations/fsm-with-optional",["exports","consul-ui/env"],(function(e,t){function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const r={};(0,t.env)("CONSUL_PARTITIONS_ENABLED")&&(r.partition=/^_([a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?)$/),(0,t.env)("CONSUL_NSPACES_ENABLED")&&(r.nspace=/^~([a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?)$/) +const a=/\/$/,l=function(e){const t=e.state.path,n=this.getURLForTransition(t) +if(n===this._previousURL){if(t===this._previousPath)return +this._previousPath=e.state.path,this.container.lookup("route:application").refresh()}"function"==typeof this.callback&&this.callback(n),this._previousURL=n,this._previousPath=e.state.path} +e.default=class{static create(){return new this(...arguments)}constructor(e,t,r){n(this,"implementation","fsm-with-optional"),n(this,"baseURL",""),n(this,"rootURL","/"),n(this,"path","/"),n(this,"cancelRouterSetup",!1),n(this,"optional",{}),this.container=Object.entries(e)[0][1],this.route=l.bind(this),this.doc=void 0===t?this.container.lookup("service:-document"):t,this.env=void 0===r?this.container.lookup("service:env"):r +const a=this.doc.querySelector("base[href]") +null!==a&&(this.baseURL=a.getAttribute("href"))}initState(){this.location=this.location||this.doc.defaultView.location,this.machine=this.machine||this.doc.defaultView.history,this.doc.defaultView.addEventListener("popstate",this.route) +const e=this.machine.state,t=this.getURL(),n=this.formatURL(t) +e&&e.path===n?(this._previousPath=n,this._previousURL=t):this.dispatch("replace",n)}getURLFrom(e){return e=e||this.location.pathname,this.rootURL=this.rootURL.replace(a,""),this.baseURL=this.baseURL.replace(a,""),e.replace(new RegExp(`^${this.baseURL}(?=/|$)`),"").replace(new RegExp(`^${this.rootURL}(?=/|$)`),"")}getURLForTransition(e){return this.optional={},e=this.getURLFrom(e).split("/").filter((e,t)=>{if(t<3){let t=!1 +return Object.entries(r).reduce((n,[r,a])=>{const l=a.exec(e) +return null!==l&&(n[r]={value:e,match:l[1]},t=!0),n},this.optional),!t}return!0}).join("/")}optionalParams(){let e=this.optional||{} +return["partition","nspace"].reduce((t,n)=>{let r="" +return void 0!==e[n]&&(r=e[n].match),t[n]=r,t},{})}visit(){return this.transitionTo(...arguments)}hrefTo(e,n,r){void 0!==r.dc&&delete r.dc,void 0!==r.nspace&&(r.nspace="~"+r.nspace),void 0!==r.partition&&(r.partition="_"+r.partition),void 0===this.router&&(this.router=this.container.lookup("router:main")) +let a=!0 +switch(!0){case"settings"===e:case e.startsWith("docs."):a=!1}if(this.router.currentRouteName.startsWith("docs.")&&(n.unshift((0,t.env)("CONSUL_DATACENTER_PRIMARY")),e.startsWith("dc")))return`console://${e} <= ${JSON.stringify(n)}` +const l=this.router._routerMicrolib +let s +try{s=l.generate(e,...n,{queryParams:{}})}catch(i){n=Object.values(l.oldState.params).reduce((e,t)=>e.concat(Object.keys(t).length>0?t:[]),[]),s=l.generate(e,...n)}return this.formatURL(s,r,a)}transitionTo(e){if(this.router.currentRouteName.startsWith("docs")&&e.startsWith("console://"))return console.info("location.transitionTo: "+e.substr(10)),!0 +const t=Object.entries(this.optionalParams()),n=this.getURLForTransition(e) +if(this._previousURL===n)return this.dispatch("push",e),Promise.resolve() +{const r=this.optionalParams() +return t.some(([e,t])=>r[e]!==t)&&this.dispatch("push",e),this.container.lookup("router:main").transitionTo(n)}}getURL(){const e=this.location.search||"" +let t="" +void 0!==this.location.hash&&(t=this.location.hash.substr(0)) +return`${this.getURLForTransition(this.location.pathname)}${e}${t}`}formatURL(e,t,n=!0){if(""!==e?(this.rootURL=this.rootURL.replace(a,""),this.baseURL=this.baseURL.replace(a,"")):"/"===this.baseURL[0]&&"/"===this.rootURL[0]&&(this.baseURL=this.baseURL.replace(a,"")),n){const n=e.split("/") +0===Object.keys(t||{}).length&&(t=void 0),t=(t=Object.values(t||this.optional||{})).filter(e=>Boolean(e)).map(e=>e.value||e,[]),n.splice(...[1,0].concat(t)),e=n.join("/")}return`${this.baseURL}${this.rootURL}${e}`}changeURL(e,t){this.path=t +const n=this.machine.state +t=this.formatURL(t),n&&n.path===t||this.dispatch(e,t)}setURL(e){this.changeURL("push",e)}replaceURL(e){this.changeURL("replace",e)}onUpdateURL(e){this.callback=e}dispatch(e,t){const n={path:t,uuid:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0 +return("x"===e?t:3&t|8).toString(16)})} +this.machine[e+"State"](n,null,t),this.route({state:n})}willDestroy(){this.doc.defaultView.removeEventListener("popstate",this.route)}}})),define("consul-ui/locations/fsm",["exports"],(function(e){function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Location=e.FSM=void 0 +e.FSM=class{constructor(e,n=(()=>{})){t(this,"state",{}),this.listener=n,this.location=e}pushState(e,t,n){this.state=e,this.location.pathname=n,this.listener({state:this.state})}replaceState(){return this.pushState(...arguments)}} +e.Location=class{constructor(){t(this,"pathname",""),t(this,"search",""),t(this,"hash","")}} +e.default=class{static create(){return new this(...arguments)}constructor(e){t(this,"implementation","fsm"),this.container=Object.entries(e)[0][1]}visit(){return this.transitionTo(...arguments)}hrefTo(){}transitionTo(){}}})),define("consul-ui/machines/boolean.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"boolean",initial:"false",states:{true:{on:{TOGGLE:[{target:"false"}],FALSE:[{target:"false"}]}},false:{on:{TOGGLE:[{target:"true"}],TRUE:[{target:"true"}]}}}}})),define("consul-ui/machines/validate.xstate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={id:"form",initial:"idle",on:{RESET:[{target:"idle"}]},states:{idle:{on:{SUCCESS:[{target:"success"}],ERROR:[{target:"error"}]}},success:{},error:{}}}})),define("consul-ui/mixins/policy/as-many",["exports","consul-ui/utils/minimizeModel"],(function(e,t){function n(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const a=function(e,t,n,r){return(e||[]).map((function(e){const a={template:t,Name:e[n]} +return void 0!==e[r]&&(a[r]=e[r]),a}))},l=function(e){return(e||[]).map((function(e){return function(e){for(var t=1;t(n.Policies=l(n.Policies).concat(a(n.ServiceIdentities,"service-identity","ServiceName","Datacenters")).concat(a(n.NodeIdentities,"node-identity","NodeName","Datacenter")),t(e,n)))}),t)},respondForQuery:function(e,t){return this._super((function(t){return e((function(e,n){return t(e,n.map((function(e){return e.Policies=l(e.Policies).concat(a(e.ServiceIdentities,"service-identity","ServiceName","Datacenters")).concat(a(e.NodeIdentities,"node-identity","NodeName","Datacenter")),e})))}))}),t)},serialize:function(e,n){const r=this._super(...arguments) +return r.ServiceIdentities=s(r.Policies,"service-identity","ServiceName","Datacenters"),r.NodeIdentities=s(r.Policies,"node-identity","NodeName","Datacenter"),r.Policies=(0,t.default)(i(r.Policies)),r}}) +e.default=o})),define("consul-ui/mixins/role/as-many",["exports","consul-ui/utils/minimizeModel"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Mixin.create({respondForQueryRecord:function(e,t){return this._super((function(t){return e((e,n)=>(n.Roles=void 0===n.Roles||null===n.Roles?[]:n.Roles,t(e,n)))}),t)},respondForQuery:function(e,t){return this._super((function(t){return e((function(e,n){return t(e,n.map((function(e){return e.Roles=void 0===e.Roles||null===e.Roles?[]:e.Roles,e})))}))}),t)},serialize:function(e,n){const r=this._super(...arguments) +return r.Roles=(0,t.default)(r.Roles),r}}) +e.default=n})),define("consul-ui/mixins/slots",["exports","block-slots/mixins/slots"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/mixins/with-blocking-actions",["exports","ember-inflector"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=Ember.Mixin.create({_feedback:Ember.inject.service("feedback"),settings:Ember.inject.service("settings"),init:function(){this._super(...arguments) +const e=this._feedback,n=this +Ember.set(this,"feedback",{execute:function(r,a,l){const s=n.routeName.split(".") +s.pop() +const i=(0,t.singularize)(s.pop()) +return e.execute(r,a,l,i)}})},afterCreate:function(e){return this.afterUpdate(...arguments)},afterUpdate:function(){const e=this.routeName.split(".") +return e.pop(),this.transitionTo(e.join("."))},afterDelete:function(){const e=this.routeName.split(".") +switch(e.pop()){case"index":return this.refresh() +default:return this.transitionTo(e.join("."))}},errorCreate:function(e){return e},errorUpdate:function(e){return e},errorDelete:function(e){return e},actions:{cancel:function(){return this.afterUpdate(...arguments)},create:function(e){return this.feedback.execute(()=>this.repo.persist(e).then(()=>this.afterCreate(...arguments)),"create",(e,t)=>this.errorCreate(e,t))},update:function(e){return this.feedback.execute(()=>this.repo.persist(e).then(()=>this.afterUpdate(...arguments)),"update",(e,t)=>this.errorUpdate(e,t))},delete:function(e){return this.feedback.execute(()=>this.repo.remove(e).then(()=>this.afterDelete(...arguments)),"delete",(e,t)=>this.errorDelete(e,t))},use:function(e){return this.repo.findBySlug({dc:Ember.get(e,"Datacenter"),ns:Ember.get(e,"Namespace"),partition:Ember.get(e,"Partition"),id:Ember.get(e,"AccessorID")}).then(e=>this.settings.persist({token:{AccessorID:Ember.get(e,"AccessorID"),SecretID:Ember.get(e,"SecretID"),Namespace:Ember.get(e,"Namespace"),Partition:Ember.get(e,"Partition")}}))},logout:function(){return this.settings.delete("token")},clone:function(e){let t +return this.feedback.execute(()=>this.repo.clone(e).then(e=>(t=e,this.afterDelete(...arguments))).then((function(){return t})),"clone")}}}) +e.default=n})),define("consul-ui/models/auth-method",["exports","@ember-data/model","parse-duration"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T,L,A,R,I +function B(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function H(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Name" +let $=(r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("string",{defaultValue:()=>""}),u=(0,t.attr)("string",{defaultValue:()=>""}),c=(0,t.attr)("string",{defaultValue:()=>"local"}),d=(0,t.attr)("string"),m=(0,t.attr)(),p=Ember.computed.or("DisplayName","Name"),f=(0,t.attr)(),b=(0,t.attr)("string"),h=(0,t.attr)("number"),v=(0,t.attr)("number"),y=(0,t.attr)(),g=(0,t.attr)(),O=Ember.computed("MaxTokenTTL"),_=class extends t.default{constructor(...e){super(...e),B(this,"uid",P,this),B(this,"Name",w,this),B(this,"Datacenter",E,this),B(this,"Namespace",k,this),B(this,"Partition",x,this),B(this,"Description",j,this),B(this,"DisplayName",C,this),B(this,"TokenLocality",S,this),B(this,"Type",N,this),B(this,"NamespaceRules",z,this),B(this,"MethodName",M,this),B(this,"Config",D,this),B(this,"MaxTokenTTL",T,this),B(this,"CreateIndex",L,this),B(this,"ModifyIndex",A,this),B(this,"Datacenters",R,this),B(this,"meta",I,this)}get TokenTTL(){return(0,n.default)(this.MaxTokenTTL)}},P=H(_.prototype,"uid",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=H(_.prototype,"Name",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=H(_.prototype,"Datacenter",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=H(_.prototype,"Namespace",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=H(_.prototype,"Partition",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=H(_.prototype,"Description",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=H(_.prototype,"DisplayName",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=H(_.prototype,"TokenLocality",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=H(_.prototype,"Type",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=H(_.prototype,"NamespaceRules",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=H(_.prototype,"MethodName",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=H(_.prototype,"Config",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=H(_.prototype,"MaxTokenTTL",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=H(_.prototype,"CreateIndex",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=H(_.prototype,"ModifyIndex",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=H(_.prototype,"Datacenters",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=H(_.prototype,"meta",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H(_.prototype,"TokenTTL",[O],Object.getOwnPropertyDescriptor(_.prototype,"TokenTTL"),_.prototype),_) +e.default=$})),define("consul-ui/models/binding-rule",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x +function j(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function C(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="ID" +let S=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string",{defaultValue:()=>""}),o=(0,t.attr)("string"),u=(0,t.attr)("string",{defaultValue:()=>""}),c=(0,t.attr)("string"),d=(0,t.attr)("string"),m=(0,t.attr)("number"),p=(0,t.attr)("number"),f=class extends t.default{constructor(...e){super(...e),j(this,"uid",b,this),j(this,"ID",h,this),j(this,"Datacenter",v,this),j(this,"Namespace",y,this),j(this,"Partition",g,this),j(this,"Description",O,this),j(this,"AuthMethod",_,this),j(this,"Selector",P,this),j(this,"BindType",w,this),j(this,"BindName",E,this),j(this,"CreateIndex",k,this),j(this,"ModifyIndex",x,this)}},b=C(f.prototype,"uid",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=C(f.prototype,"ID",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=C(f.prototype,"Datacenter",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=C(f.prototype,"Namespace",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=C(f.prototype,"Partition",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=C(f.prototype,"Description",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=C(f.prototype,"AuthMethod",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=C(f.prototype,"Selector",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=C(f.prototype,"BindType",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=C(f.prototype,"BindName",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=C(f.prototype,"CreateIndex",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=C(f.prototype,"ModifyIndex",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f) +e.default=S})),define("consul-ui/models/coordinate",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h +function v(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function y(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Node" +let g=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)(),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("number"),u=class extends t.default{constructor(...e){super(...e),v(this,"uid",c,this),v(this,"Node",d,this),v(this,"Coord",m,this),v(this,"Segment",p,this),v(this,"Datacenter",f,this),v(this,"Partition",b,this),v(this,"SyncTime",h,this)}},c=y(u.prototype,"uid",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=y(u.prototype,"Node",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=y(u.prototype,"Coord",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=y(u.prototype,"Segment",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=y(u.prototype,"Datacenter",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=y(u.prototype,"Partition",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=y(u.prototype,"SyncTime",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u) +e.default=g})),define("consul-ui/models/dc",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M +function D(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function T(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.FOREIGN_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.FOREIGN_KEY="Datacenter" +e.SLUG_KEY="Name" +let L=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("boolean"),l=(0,t.attr)("number"),s=(0,t.attr)("number"),i=(0,t.attr)("string"),o=(0,t.attr)(),u=(0,t.attr)(),c=(0,t.attr)(),d=(0,t.attr)(),m=(0,t.attr)(),p=(0,t.attr)("boolean"),f=(0,t.attr)("boolean"),b=(0,t.attr)("string"),h=(0,t.attr)("boolean",{defaultValue:()=>!0}),v=class extends t.default{constructor(...e){super(...e),D(this,"uri",y,this),D(this,"Name",g,this),D(this,"Healthy",O,this),D(this,"FailureTolerance",_,this),D(this,"OptimisticFailureTolerance",P,this),D(this,"Leader",w,this),D(this,"Voters",E,this),D(this,"Servers",k,this),D(this,"RedundancyZones",x,this),D(this,"Default",j,this),D(this,"ReadReplicas",C,this),D(this,"Local",S,this),D(this,"Primary",N,this),D(this,"DefaultACLPolicy",z,this),D(this,"MeshEnabled",M,this)}},y=T(v.prototype,"uri",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=T(v.prototype,"Name",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=T(v.prototype,"Healthy",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=T(v.prototype,"FailureTolerance",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=T(v.prototype,"OptimisticFailureTolerance",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=T(v.prototype,"Leader",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=T(v.prototype,"Voters",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=T(v.prototype,"Servers",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=T(v.prototype,"RedundancyZones",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=T(v.prototype,"Default",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=T(v.prototype,"ReadReplicas",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=T(v.prototype,"Local",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=T(v.prototype,"Primary",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=T(v.prototype,"DefaultACLPolicy",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=T(v.prototype,"MeshEnabled",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v) +e.default=L})),define("consul-ui/models/discovery-chain",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h +function v(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function y(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="ServiceName" +let g=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)(),o=(0,t.attr)(),u=class extends t.default{constructor(...e){super(...e),v(this,"uid",c,this),v(this,"ServiceName",d,this),v(this,"Datacenter",m,this),v(this,"Partition",p,this),v(this,"Namespace",f,this),v(this,"Chain",b,this),v(this,"meta",h,this)}},c=y(u.prototype,"uid",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=y(u.prototype,"ServiceName",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=y(u.prototype,"Datacenter",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=y(u.prototype,"Partition",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=y(u.prototype,"Namespace",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=y(u.prototype,"Chain",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=y(u.prototype,"meta",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u) +e.default=g})),define("consul-ui/models/gateway-config",["exports","ember-data-model-fragments/fragment","ember-data-model-fragments/attributes","@ember-data/model"],(function(e,t,n,r){var a,l,s,i,o +function u(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function c(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let d=(a=(0,r.attr)("number",{defaultValue:()=>0}),l=(0,n.array)("string",{defaultValue:()=>[]}),s=class extends t.default{constructor(...e){super(...e),u(this,"AssociatedServiceCount",i,this),u(this,"Addresses",o,this)}},i=c(s.prototype,"AssociatedServiceCount",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=c(s.prototype,"Addresses",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s) +e.default=d})) +define("consul-ui/models/health-check",["exports","ember-data-model-fragments/fragment","ember-data-model-fragments/attributes","@ember-data/model","consul-ui/decorators/replace"],(function(e,t,n,r,a){var l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D +function T(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function L(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.schema=void 0 +e.schema={Status:{allowedValues:["passing","warning","critical"]},Type:{allowedValues:["serf","script","http","tcp","ttl","docker","grpc","alias"]}} +let A=(l=(0,r.attr)("string"),s=(0,r.attr)("string"),i=(0,a.replace)("","serf"),o=(0,r.attr)("string"),u=(0,r.attr)("string"),c=(0,r.attr)("string"),d=(0,r.attr)("string"),m=(0,r.attr)("string"),p=(0,r.attr)("string"),f=(0,r.attr)("string"),b=(0,a.nullValue)([]),h=(0,n.array)("string"),v=(0,r.attr)(),y=(0,r.attr)("boolean"),g=Ember.computed("ServiceID"),O=Ember.computed("Type"),_=class extends t.default{constructor(...e){super(...e),T(this,"Name",P,this),T(this,"CheckID",w,this),T(this,"Type",E,this),T(this,"Status",k,this),T(this,"Notes",x,this),T(this,"Output",j,this),T(this,"ServiceName",C,this),T(this,"ServiceID",S,this),T(this,"Node",N,this),T(this,"ServiceTags",z,this),T(this,"Definition",M,this),T(this,"Exposed",D,this)}get Kind(){return""===this.ServiceID?"node":"service"}get Exposable(){return["http","grpc"].includes(this.Type)}},P=L(_.prototype,"Name",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=L(_.prototype,"CheckID",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=L(_.prototype,"Type",[i,o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=L(_.prototype,"Status",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=L(_.prototype,"Notes",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=L(_.prototype,"Output",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=L(_.prototype,"ServiceName",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=L(_.prototype,"ServiceID",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=L(_.prototype,"Node",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=L(_.prototype,"ServiceTags",[b,h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=L(_.prototype,"Definition",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=L(_.prototype,"Exposed",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L(_.prototype,"Kind",[g],Object.getOwnPropertyDescriptor(_.prototype,"Kind"),_.prototype),L(_.prototype,"Exposable",[O],Object.getOwnPropertyDescriptor(_.prototype,"Exposable"),_.prototype),_) +e.default=A})),define("consul-ui/models/intention-permission-http-header",["exports","ember-data-model-fragments/fragment","@ember-data/model"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y +function g(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function O(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.schema=void 0 +const _={Name:{required:!0},HeaderType:{allowedValues:["Exact","Prefix","Suffix","Regex","Present"]}} +e.schema=_ +let P=(r=(0,n.attr)("string"),a=(0,n.attr)("string"),l=(0,n.attr)("string"),s=(0,n.attr)("string"),i=(0,n.attr)("string"),o=(0,n.attr)(),u=Ember.computed.or(..._.HeaderType.allowedValues),c=Ember.computed(..._.HeaderType.allowedValues),d=class extends t.default{constructor(...e){super(...e),g(this,"Name",m,this),g(this,"Exact",p,this),g(this,"Prefix",f,this),g(this,"Suffix",b,this),g(this,"Regex",h,this),g(this,"Present",v,this),g(this,"Value",y,this)}get HeaderType(){return _.HeaderType.allowedValues.find(e=>void 0!==this[e])}},m=O(d.prototype,"Name",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=O(d.prototype,"Exact",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(d.prototype,"Prefix",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=O(d.prototype,"Suffix",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=O(d.prototype,"Regex",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=O(d.prototype,"Present",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=O(d.prototype,"Value",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O(d.prototype,"HeaderType",[c],Object.getOwnPropertyDescriptor(d.prototype,"HeaderType"),d.prototype),d) +e.default=P})),define("consul-ui/models/intention-permission-http",["exports","ember-data-model-fragments/fragment","ember-data-model-fragments/attributes","@ember-data/model"],(function(e,t,n,r){var a,l,s,i,o,u,c,d,m,p,f,b,h,v +function y(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function g(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.schema=void 0 +const O={PathType:{allowedValues:["PathPrefix","PathExact","PathRegex"]},Methods:{allowedValues:["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"]}} +e.schema=O +let _=(a=(0,r.attr)("string"),l=(0,r.attr)("string"),s=(0,r.attr)("string"),i=(0,n.fragmentArray)("intention-permission-http-header"),o=(0,n.array)("string"),u=Ember.computed.or(...O.PathType.allowedValues),c=Ember.computed(...O.PathType.allowedValues),d=class extends t.default{constructor(...e){super(...e),y(this,"PathExact",m,this),y(this,"PathPrefix",p,this),y(this,"PathRegex",f,this),y(this,"Header",b,this),y(this,"Methods",h,this),y(this,"Path",v,this)}get PathType(){return O.PathType.allowedValues.find(e=>"string"==typeof this[e])}},m=g(d.prototype,"PathExact",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=g(d.prototype,"PathPrefix",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=g(d.prototype,"PathRegex",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=g(d.prototype,"Header",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=g(d.prototype,"Methods",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=g(d.prototype,"Path",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g(d.prototype,"PathType",[c],Object.getOwnPropertyDescriptor(d.prototype,"PathType"),d.prototype),d) +e.default=_})),define("consul-ui/models/intention-permission",["exports","ember-data-model-fragments/fragment","ember-data-model-fragments/attributes","@ember-data/model"],(function(e,t,n,r){var a,l,s,i,o +function u(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function c(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.schema=void 0 +const d={Action:{defaultValue:"allow",allowedValues:["allow","deny"]}} +e.schema=d +let m=(a=(0,r.attr)("string",{defaultValue:()=>d.Action.defaultValue}),l=(0,n.fragment)("intention-permission-http"),s=class extends t.default{constructor(...e){super(...e),u(this,"Action",i,this),u(this,"HTTP",o,this)}},i=c(s.prototype,"Action",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=c(s.prototype,"HTTP",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s) +e.default=m})),define("consul-ui/models/intention",["exports","@ember-data/model","ember-data-model-fragments/attributes","consul-ui/decorators/replace"],(function(e,t,n,r){var a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T,L,A,R,I,B,H,$,U,F,q,K,Y,V,W,G,Q,Z,J +function X(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function ee(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="ID" +let te=(a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("string",{defaultValue:()=>"*"}),u=(0,t.attr)("string",{defaultValue:()=>"*"}),c=(0,t.attr)("string",{defaultValue:()=>"default"}),d=(0,t.attr)("string",{defaultValue:()=>"default"}),m=(0,t.attr)("string",{defaultValue:()=>"default"}),p=(0,t.attr)("string",{defaultValue:()=>"default"}),f=(0,t.attr)("number"),b=(0,t.attr)("string",{defaultValue:()=>"consul"}),h=(0,r.nullValue)(void 0),v=(0,t.attr)("string"),y=(0,t.attr)("string"),g=(0,t.attr)("boolean",{defaultValue:()=>!0}),O=(0,t.attr)("number"),_=(0,t.attr)("date"),P=(0,t.attr)("date"),w=(0,t.attr)("number"),E=(0,t.attr)("number"),k=(0,t.attr)(),x=(0,t.attr)({defaultValue:()=>[]}),j=(0,n.fragmentArray)("intention-permission"),C=Ember.computed("Meta"),S=class extends t.default{constructor(...e){super(...e),X(this,"uid",N,this),X(this,"ID",z,this),X(this,"Datacenter",M,this),X(this,"Description",D,this),X(this,"SourceName",T,this),X(this,"DestinationName",L,this),X(this,"SourceNS",A,this),X(this,"DestinationNS",R,this),X(this,"SourcePartition",I,this),X(this,"DestinationPartition",B,this),X(this,"Precedence",H,this),X(this,"SourceType",$,this),X(this,"Action",U,this),X(this,"LegacyID",F,this),X(this,"Legacy",q,this),X(this,"SyncTime",K,this),X(this,"CreatedAt",Y,this),X(this,"UpdatedAt",V,this),X(this,"CreateIndex",W,this),X(this,"ModifyIndex",G,this),X(this,"Meta",Q,this),X(this,"Resources",Z,this),X(this,"Permissions",J,this)}get IsManagedByCRD(){return void 0!==Object.entries(this.Meta||{}).find(([e,t])=>"external-source"===e&&"kubernetes"===t)}},N=ee(S.prototype,"uid",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=ee(S.prototype,"ID",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=ee(S.prototype,"Datacenter",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=ee(S.prototype,"Description",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=ee(S.prototype,"SourceName",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=ee(S.prototype,"DestinationName",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=ee(S.prototype,"SourceNS",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=ee(S.prototype,"DestinationNS",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=ee(S.prototype,"SourcePartition",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=ee(S.prototype,"DestinationPartition",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=ee(S.prototype,"Precedence",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=ee(S.prototype,"SourceType",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=ee(S.prototype,"Action",[h,v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=ee(S.prototype,"LegacyID",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=ee(S.prototype,"Legacy",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=ee(S.prototype,"SyncTime",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=ee(S.prototype,"CreatedAt",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=ee(S.prototype,"UpdatedAt",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=ee(S.prototype,"CreateIndex",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=ee(S.prototype,"ModifyIndex",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=ee(S.prototype,"Meta",[k],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=ee(S.prototype,"Resources",[x],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=ee(S.prototype,"Permissions",[j],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ee(S.prototype,"IsManagedByCRD",[C],Object.getOwnPropertyDescriptor(S.prototype,"IsManagedByCRD"),S.prototype),S) +e.default=te})),define("consul-ui/models/kv",["exports","@ember-data/model","consul-ui/utils/isFolder","consul-ui/decorators/replace"],(function(e,t,n,r){var a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T,L +function A(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function R(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Key" +let I=(a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("number"),i=(0,t.attr)(),o=(0,t.attr)("string"),u=(0,t.attr)("string"),c=(0,t.attr)("string"),d=(0,t.attr)("number"),m=(0,t.attr)("number"),p=(0,r.nullValue)(void 0),f=(0,t.attr)("string"),b=(0,t.attr)("number"),h=(0,t.attr)("number"),v=(0,t.attr)("string"),y=(0,t.attr)({defaultValue:()=>[]}),g=Ember.computed("isFolder"),O=Ember.computed("Key"),_=class extends t.default{constructor(...e){super(...e),A(this,"uid",P,this),A(this,"Key",w,this),A(this,"SyncTime",E,this),A(this,"meta",k,this),A(this,"Datacenter",x,this),A(this,"Namespace",j,this),A(this,"Partition",C,this),A(this,"LockIndex",S,this),A(this,"Flags",N,this),A(this,"Value",z,this),A(this,"CreateIndex",M,this),A(this,"ModifyIndex",D,this),A(this,"Session",T,this),A(this,"Resources",L,this)}get Kind(){return this.isFolder?"folder":"key"}get isFolder(){return(0,n.default)(this.Key||"")}},P=R(_.prototype,"uid",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=R(_.prototype,"Key",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=R(_.prototype,"SyncTime",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=R(_.prototype,"meta",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=R(_.prototype,"Datacenter",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=R(_.prototype,"Namespace",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=R(_.prototype,"Partition",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=R(_.prototype,"LockIndex",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=R(_.prototype,"Flags",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=R(_.prototype,"Value",[p,f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=R(_.prototype,"CreateIndex",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=R(_.prototype,"ModifyIndex",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=R(_.prototype,"Session",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=R(_.prototype,"Resources",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R(_.prototype,"Kind",[g],Object.getOwnPropertyDescriptor(_.prototype,"Kind"),_.prototype),R(_.prototype,"isFolder",[O],Object.getOwnPropertyDescriptor(_.prototype,"isFolder"),_.prototype),_) +e.default=I})),define("consul-ui/models/license",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y +function g(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function O(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uri" +let _=(n=(0,t.attr)("string"),r=(0,t.attr)("boolean"),a=(0,t.attr)("number"),l=(0,t.attr)(),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("string"),u=(0,t.attr)(),c=class extends t.default{constructor(...e){super(...e),g(this,"uri",d,this),g(this,"Valid",m,this),g(this,"SyncTime",p,this),g(this,"meta",f,this),g(this,"Datacenter",b,this),g(this,"Namespace",h,this),g(this,"Partition",v,this),g(this,"License",y,this)}},d=O(c.prototype,"uri",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=O(c.prototype,"Valid",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=O(c.prototype,"SyncTime",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(c.prototype,"meta",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=O(c.prototype,"Datacenter",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=O(c.prototype,"Namespace",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=O(c.prototype,"Partition",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=O(c.prototype,"License",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c) +e.default=_})),define("consul-ui/models/node",["exports","@ember-data/model","ember-data-model-fragments/attributes"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T,L,A,R,I,B,H,$,U,F +function q(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function K(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="ID" +let Y=(r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("string"),u=(0,t.attr)("number"),c=(0,t.attr)("number"),d=(0,t.attr)("number"),m=(0,t.attr)(),p=(0,t.attr)(),f=(0,t.attr)(),b=(0,t.attr)({defaultValue:()=>[]}),h=(0,t.hasMany)("service-instance"),v=(0,n.fragmentArray)("health-check"),y=Ember.computed.filter("Services",e=>"connect-proxy"!==e.Service.Kind),g=Ember.computed.filter("Services",e=>"connect-proxy"===e.Service.Kind),O=Ember.computed.filter("Checks",e=>""===e.ServiceID),_=Ember.computed("ChecksCritical","ChecksPassing","ChecksWarning"),P=Ember.computed("NodeChecks.[]"),w=Ember.computed("NodeChecks.[]"),E=Ember.computed("NodeChecks.[]"),k=class extends t.default{constructor(...e){super(...e),q(this,"uid",x,this),q(this,"ID",j,this),q(this,"Datacenter",C,this),q(this,"Partition",S,this),q(this,"Address",N,this),q(this,"Node",z,this),q(this,"SyncTime",M,this),q(this,"CreateIndex",D,this),q(this,"ModifyIndex",T,this),q(this,"meta",L,this),q(this,"Meta",A,this),q(this,"TaggedAddresses",R,this),q(this,"Resources",I,this),q(this,"Services",B,this),q(this,"Checks",H,this),q(this,"MeshServiceInstances",$,this),q(this,"ProxyServiceInstances",U,this),q(this,"NodeChecks",F,this)}get Status(){switch(!0){case 0!==this.ChecksCritical:return"critical" +case 0!==this.ChecksWarning:return"warning" +case 0!==this.ChecksPassing:return"passing" +default:return"empty"}}get ChecksCritical(){return this.NodeChecks.filter(e=>"critical"===e.Status).length}get ChecksPassing(){return this.NodeChecks.filter(e=>"passing"===e.Status).length}get ChecksWarning(){return this.NodeChecks.filter(e=>"warning"===e.Status).length}},x=K(k.prototype,"uid",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=K(k.prototype,"ID",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=K(k.prototype,"Datacenter",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=K(k.prototype,"Partition",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=K(k.prototype,"Address",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=K(k.prototype,"Node",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=K(k.prototype,"SyncTime",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=K(k.prototype,"CreateIndex",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=K(k.prototype,"ModifyIndex",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=K(k.prototype,"meta",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=K(k.prototype,"Meta",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=K(k.prototype,"TaggedAddresses",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=K(k.prototype,"Resources",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=K(k.prototype,"Services",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=K(k.prototype,"Checks",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=K(k.prototype,"MeshServiceInstances",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=K(k.prototype,"ProxyServiceInstances",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=K(k.prototype,"NodeChecks",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K(k.prototype,"Status",[_],Object.getOwnPropertyDescriptor(k.prototype,"Status"),k.prototype),K(k.prototype,"ChecksCritical",[P],Object.getOwnPropertyDescriptor(k.prototype,"ChecksCritical"),k.prototype),K(k.prototype,"ChecksPassing",[w],Object.getOwnPropertyDescriptor(k.prototype,"ChecksPassing"),k.prototype),K(k.prototype,"ChecksWarning",[E],Object.getOwnPropertyDescriptor(k.prototype,"ChecksWarning"),k.prototype),k) +e.default=Y})),define("consul-ui/models/nspace",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P +function w(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function E(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.NSPACE_KEY=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Name" +e.NSPACE_KEY="Namespace" +let k=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("number"),o=(0,t.attr)("string",{defaultValue:()=>""}),u=(0,t.attr)({defaultValue:()=>[]}),c=(0,t.attr)("string"),d=(0,t.attr)({defaultValue:()=>({PolicyDefaults:[],RoleDefaults:[]})}),m=class extends t.default{constructor(...e){super(...e),w(this,"uid",p,this),w(this,"Name",f,this),w(this,"Datacenter",b,this),w(this,"Partition",h,this),w(this,"Namespace",v,this),w(this,"SyncTime",y,this),w(this,"Description",g,this),w(this,"Resources",O,this),w(this,"DeletedAt",_,this),w(this,"ACLs",P,this)}},p=E(m.prototype,"uid",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=E(m.prototype,"Name",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=E(m.prototype,"Datacenter",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=E(m.prototype,"Partition",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=E(m.prototype,"Namespace",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=E(m.prototype,"SyncTime",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=E(m.prototype,"Description",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=E(m.prototype,"Resources",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=E(m.prototype,"DeletedAt",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=E(m.prototype,"ACLs",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m) +e.default=k})),define("consul-ui/models/oidc-provider",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O +function _(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function P(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Name" +let w=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("string"),u=(0,t.attr)("string"),c=(0,t.attr)(),d=class extends t.default{constructor(...e){super(...e),_(this,"uid",m,this),_(this,"Name",p,this),_(this,"Datacenter",f,this),_(this,"Namespace",b,this),_(this,"Partition",h,this),_(this,"Kind",v,this),_(this,"AuthURL",y,this),_(this,"DisplayName",g,this),_(this,"meta",O,this)}},m=P(d.prototype,"uid",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=P(d.prototype,"Name",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=P(d.prototype,"Datacenter",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=P(d.prototype,"Namespace",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=P(d.prototype,"Partition",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=P(d.prototype,"Kind",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=P(d.prototype,"AuthURL",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=P(d.prototype,"DisplayName",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=P(d.prototype,"meta",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d) +e.default=w})),define("consul-ui/models/partition",["exports","ember-data/model","ember-data/attr"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_ +function P(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function w(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.PARTITION_KEY=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Name" +e.PARTITION_KEY="Partition" +let E=(r=(0,n.default)("string"),a=(0,n.default)("string"),l=(0,n.default)("string"),s=(0,n.default)("string"),i=(0,n.default)("string"),o=(0,n.default)("string"),u=(0,n.default)("string"),c=(0,n.default)("number"),d=(0,n.default)(),m=class extends t.default{constructor(...e){super(...e),P(this,"uid",p,this),P(this,"Name",f,this),P(this,"Description",b,this),P(this,"DeletedAt",h,this),P(this,"Datacenter",v,this),P(this,"Namespace",y,this),P(this,"Partition",g,this),P(this,"SyncTime",O,this),P(this,"meta",_,this)}},p=w(m.prototype,"uid",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=w(m.prototype,"Name",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=w(m.prototype,"Description",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=w(m.prototype,"DeletedAt",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=w(m.prototype,"Datacenter",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=w(m.prototype,"Namespace",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=w(m.prototype,"Partition",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=w(m.prototype,"SyncTime",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=w(m.prototype,"meta",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m) +e.default=E})),define("consul-ui/models/permission",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c +function d(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function m(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let p=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("boolean"),s=class extends t.default{constructor(...e){super(...e),d(this,"Resource",i,this),d(this,"Segment",o,this),d(this,"Access",u,this),d(this,"Allow",c,this)}},i=m(s.prototype,"Resource",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=m(s.prototype,"Segment",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=m(s.prototype,"Access",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=m(s.prototype,"Allow",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s) +e.default=p})),define("consul-ui/models/policy",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D +function T(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function L(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=e.MANAGEMENT_ID=void 0 +e.MANAGEMENT_ID="00000000-0000-0000-0000-000000000001" +e.PRIMARY_KEY="uid" +e.SLUG_KEY="ID" +let A=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string",{defaultValue:()=>""}),o=(0,t.attr)("string",{defaultValue:()=>""}),u=(0,t.attr)("string",{defaultValue:()=>""}),c=(0,t.attr)("number"),d=(0,t.attr)("number"),m=(0,t.attr)("number"),p=(0,t.attr)(),f=(0,t.attr)(),b=(0,t.attr)("string",{defaultValue:()=>""}),h=(0,t.attr)("number",{defaultValue:()=>(new Date).getTime()}),v=Ember.computed("ID"),y=class extends t.default{constructor(...e){super(...e),T(this,"uid",g,this),T(this,"ID",O,this),T(this,"Datacenter",_,this),T(this,"Namespace",P,this),T(this,"Partition",w,this),T(this,"Name",E,this),T(this,"Description",k,this),T(this,"Rules",x,this),T(this,"SyncTime",j,this),T(this,"CreateIndex",C,this),T(this,"ModifyIndex",S,this),T(this,"Datacenters",N,this),T(this,"meta",z,this),T(this,"template",M,this),T(this,"CreateTime",D,this)}get isGlobalManagement(){return"00000000-0000-0000-0000-000000000001"===this.ID}},g=L(y.prototype,"uid",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=L(y.prototype,"ID",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=L(y.prototype,"Datacenter",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=L(y.prototype,"Namespace",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=L(y.prototype,"Partition",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=L(y.prototype,"Name",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=L(y.prototype,"Description",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=L(y.prototype,"Rules",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=L(y.prototype,"SyncTime",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=L(y.prototype,"CreateIndex",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=L(y.prototype,"ModifyIndex",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=L(y.prototype,"Datacenters",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=L(y.prototype,"meta",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=L(y.prototype,"template",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=L(y.prototype,"CreateTime",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L(y.prototype,"isGlobalManagement",[v],Object.getOwnPropertyDescriptor(y.prototype,"isGlobalManagement"),y.prototype),y) +e.default=A})),define("consul-ui/models/proxy",["exports","@ember-data/model","consul-ui/models/service-instance"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w +function E(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function k(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Node,ServiceID" +let x=(r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("string"),u=(0,t.attr)("string"),c=(0,t.attr)("string"),d=(0,t.attr)("number"),m=(0,t.attr)(),p=class extends n.default{constructor(...e){super(...e),E(this,"uid",f,this),E(this,"ID",b,this),E(this,"Datacenter",h,this),E(this,"Namespace",v,this),E(this,"Partition",y,this),E(this,"ServiceName",g,this),E(this,"ServiceID",O,this),E(this,"NodeName",_,this),E(this,"SyncTime",P,this),E(this,"ServiceProxy",w,this)}},f=k(p.prototype,"uid",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=k(p.prototype,"ID",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=k(p.prototype,"Datacenter",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=k(p.prototype,"Namespace",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=k(p.prototype,"Partition",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=k(p.prototype,"ServiceName",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=k(p.prototype,"ServiceID",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=k(p.prototype,"NodeName",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=k(p.prototype,"SyncTime",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=k(p.prototype,"ServiceProxy",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p) +e.default=x})),define("consul-ui/models/role",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T +function L(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function A(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="ID" +let R=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string",{defaultValue:()=>""}),o=(0,t.attr)("string",{defaultValue:()=>""}),u=(0,t.attr)({defaultValue:()=>[]}),c=(0,t.attr)({defaultValue:()=>[]}),d=(0,t.attr)({defaultValue:()=>[]}),m=(0,t.attr)("number"),p=(0,t.attr)("number"),f=(0,t.attr)("number"),b=(0,t.attr)("number"),h=(0,t.attr)(),v=(0,t.attr)("string"),y=class extends t.default{constructor(...e){super(...e),L(this,"uid",g,this),L(this,"ID",O,this),L(this,"Datacenter",_,this),L(this,"Namespace",P,this),L(this,"Partition",w,this),L(this,"Name",E,this),L(this,"Description",k,this),L(this,"Policies",x,this),L(this,"ServiceIdentities",j,this),L(this,"NodeIdentities",C,this),L(this,"SyncTime",S,this),L(this,"CreateIndex",N,this),L(this,"ModifyIndex",z,this),L(this,"CreateTime",M,this),L(this,"Datacenters",D,this),L(this,"Hash",T,this)}},g=A(y.prototype,"uid",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=A(y.prototype,"ID",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=A(y.prototype,"Datacenter",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=A(y.prototype,"Namespace",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=A(y.prototype,"Partition",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=A(y.prototype,"Name",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=A(y.prototype,"Description",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=A(y.prototype,"Policies",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=A(y.prototype,"ServiceIdentities",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=A(y.prototype,"NodeIdentities",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=A(y.prototype,"SyncTime",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=A(y.prototype,"CreateIndex",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=A(y.prototype,"ModifyIndex",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=A(y.prototype,"CreateTime",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=A(y.prototype,"Datacenters",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=A(y.prototype,"Hash",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y) +e.default=R})),define("consul-ui/models/service-instance",["exports","@ember-data/model","ember-data-model-fragments/attributes"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T,L,A,R,I,B,H,$,U,F,q,K,Y,V,W,G,Q,Z,J,X,ee,te +function ne(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function re(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Collection=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Node.Node,Service.ID" +const ae=(r=Ember._tracked,l=re((a=class{constructor(e){ne(this,"items",l,this),this.items=e}get ExternalSources(){const e=this.items.reduce((function(e,t){return e.concat(t.ExternalSources||[])}),[]) +return[...new Set(e)].filter(Boolean).sort()}}).prototype,"items",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a) +e.Collection=ae +let le=(s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)(),u=(0,t.attr)(),c=(0,t.attr)(),d=(0,n.fragmentArray)("health-check"),m=(0,t.attr)("number"),p=(0,t.attr)(),f=(0,t.attr)({defaultValue:()=>[]}),b=Ember.computed.alias("Service.Service"),h=Ember.computed.or("Service.{ID,Service}"),v=Ember.computed.or("Service.Address","Node.Service"),y=(0,t.attr)("string"),g=Ember.computed.alias("Service.Tags"),O=Ember.computed.alias("Service.Meta"),_=Ember.computed.alias("Service.Namespace"),P=Ember.computed.alias("Service.Partition"),w=Ember.computed.filter("Checks.@each.Kind",e=>"service"===e.Kind),E=Ember.computed.filter("Checks.@each.Kind",e=>"node"===e.Kind),k=Ember.computed("Service.Meta"),x=Ember.computed("Service.Kind"),j=Ember.computed("Service.Kind"),C=Ember.computed("IsOrigin"),S=Ember.computed("ChecksPassing","ChecksWarning","ChecksCritical"),N=Ember.computed("Checks.[]"),z=Ember.computed("Checks.[]"),M=Ember.computed("Checks.[]"),D=Ember.computed("Checks.[]","ChecksPassing"),T=Ember.computed("Checks.[]","ChecksWarning"),L=Ember.computed("Checks.[]","ChecksCritical"),A=class extends t.default{constructor(...e){super(...e),ne(this,"uid",R,this),ne(this,"Datacenter",I,this),ne(this,"Proxy",B,this),ne(this,"Node",H,this),ne(this,"Service",$,this),ne(this,"Checks",U,this),ne(this,"SyncTime",F,this),ne(this,"meta",q,this),ne(this,"Resources",K,this),ne(this,"Name",Y,this),ne(this,"ID",V,this),ne(this,"Address",W,this),ne(this,"SocketPath",G,this),ne(this,"Tags",Q,this),ne(this,"Meta",Z,this),ne(this,"Namespace",J,this),ne(this,"Partition",X,this),ne(this,"ServiceChecks",ee,this),ne(this,"NodeChecks",te,this)}get ExternalSources(){const e=Object.entries(this.Service.Meta||{}).filter(([e,t])=>"external-source"===e).map(([e,t])=>t) +return[...new Set(e)]}get IsProxy(){return["connect-proxy","mesh-gateway","ingress-gateway","terminating-gateway"].includes(this.Service.Kind)}get IsOrigin(){return!["connect-proxy","mesh-gateway"].includes(this.Service.Kind)}get IsMeshOrigin(){return this.IsOrigin&&!["terminating-gateway"].includes(this.Service.Kind)}get Status(){switch(!0){case 0!==this.ChecksCritical.length:return"critical" +case 0!==this.ChecksWarning.length:return"warning" +case 0!==this.ChecksPassing.length:return"passing" +default:return"empty"}}get ChecksPassing(){return this.Checks.filter(e=>"passing"===e.Status)}get ChecksWarning(){return this.Checks.filter(e=>"warning"===e.Status)}get ChecksCritical(){return this.Checks.filter(e=>"critical"===e.Status)}get PercentageChecksPassing(){return this.ChecksPassing.length/this.Checks.length*100}get PercentageChecksWarning(){return this.ChecksWarning.length/this.Checks.length*100}get PercentageChecksCritical(){return this.ChecksCritical.length/this.Checks.length*100}},R=re(A.prototype,"uid",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=re(A.prototype,"Datacenter",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=re(A.prototype,"Proxy",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=re(A.prototype,"Node",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=re(A.prototype,"Service",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=re(A.prototype,"Checks",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=re(A.prototype,"SyncTime",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=re(A.prototype,"meta",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=re(A.prototype,"Resources",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=re(A.prototype,"Name",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=re(A.prototype,"ID",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=re(A.prototype,"Address",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=re(A.prototype,"SocketPath",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=re(A.prototype,"Tags",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=re(A.prototype,"Meta",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=re(A.prototype,"Namespace",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),X=re(A.prototype,"Partition",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ee=re(A.prototype,"ServiceChecks",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),te=re(A.prototype,"NodeChecks",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),re(A.prototype,"ExternalSources",[k],Object.getOwnPropertyDescriptor(A.prototype,"ExternalSources"),A.prototype),re(A.prototype,"IsProxy",[x],Object.getOwnPropertyDescriptor(A.prototype,"IsProxy"),A.prototype),re(A.prototype,"IsOrigin",[j],Object.getOwnPropertyDescriptor(A.prototype,"IsOrigin"),A.prototype),re(A.prototype,"IsMeshOrigin",[C],Object.getOwnPropertyDescriptor(A.prototype,"IsMeshOrigin"),A.prototype),re(A.prototype,"Status",[S],Object.getOwnPropertyDescriptor(A.prototype,"Status"),A.prototype),re(A.prototype,"ChecksPassing",[N],Object.getOwnPropertyDescriptor(A.prototype,"ChecksPassing"),A.prototype),re(A.prototype,"ChecksWarning",[z],Object.getOwnPropertyDescriptor(A.prototype,"ChecksWarning"),A.prototype),re(A.prototype,"ChecksCritical",[M],Object.getOwnPropertyDescriptor(A.prototype,"ChecksCritical"),A.prototype),re(A.prototype,"PercentageChecksPassing",[D],Object.getOwnPropertyDescriptor(A.prototype,"PercentageChecksPassing"),A.prototype),re(A.prototype,"PercentageChecksWarning",[T],Object.getOwnPropertyDescriptor(A.prototype,"PercentageChecksWarning"),A.prototype),re(A.prototype,"PercentageChecksCritical",[L],Object.getOwnPropertyDescriptor(A.prototype,"PercentageChecksCritical"),A.prototype),A) +e.default=le})),define("consul-ui/models/service",["exports","@ember-data/model","ember-data-model-fragments/attributes","consul-ui/decorators/replace"],(function(e,t,n,r){var a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T,L,A,R,I,B,H,$,U,F,q,K,Y,V,W,G,Q,Z,J,X,ee,te,ne,re,ae,le,se,ie,oe,ue +function ce(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function de(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Collection=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="Name" +const me=(a=Ember._tracked,s=de((l=class{constructor(e){ce(this,"items",s,this),this.items=e}get ExternalSources(){const e=this.items.reduce((function(e,t){return e.concat(t.ExternalSources||[])}),[]) +return[...new Set(e)].filter(Boolean).sort()}get Partitions(){return[...new Set(this.items.map(e=>e.Partition))].sort()}}).prototype,"items",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l) +e.Collection=me +let pe=(i=(0,t.attr)("string"),o=(0,t.attr)("string"),u=(0,t.attr)("string"),c=(0,t.attr)("string"),d=(0,t.attr)("string"),m=(0,t.attr)("string"),p=(0,t.attr)("number"),f=(0,t.attr)("number"),b=(0,t.attr)("number"),h=(0,t.attr)("number"),v=(0,t.attr)("boolean"),y=(0,t.attr)("boolean"),g=(0,t.attr)({defaultValue:()=>[]}),O=(0,t.attr)("number"),_=(0,t.attr)("number"),P=(0,t.attr)("number"),w=(0,r.nullValue)([]),E=(0,t.attr)({defaultValue:()=>[]}),k=(0,t.attr)(),x=(0,t.attr)(),j=(0,n.fragment)("gateway-config"),C=(0,r.nullValue)([]),S=(0,t.attr)(),N=(0,t.attr)(),z=(0,t.attr)(),M=Ember.computed("ChecksPassing","ChecksWarning","ChecksCritical"),D=Ember.computed("MeshChecksPassing","MeshChecksWarning","MeshChecksCritical"),T=Ember.computed("ConnectedWithProxy","ConnectedWithGateway"),L=Ember.computed("MeshEnabled","Kind"),A=Ember.computed("MeshChecksPassing","MeshChecksWarning","MeshChecksCritical"),R=Ember.computed("ChecksPassing","Proxy.ChecksPassing"),I=Ember.computed("ChecksWarning","Proxy.ChecksWarning"),B=Ember.computed("ChecksCritical","Proxy.ChecksCritical"),H=class extends t.default{constructor(...e){super(...e),ce(this,"uid",$,this),ce(this,"Name",U,this),ce(this,"Datacenter",F,this),ce(this,"Namespace",q,this),ce(this,"Partition",K,this),ce(this,"Kind",Y,this),ce(this,"ChecksPassing",V,this),ce(this,"ChecksCritical",W,this),ce(this,"ChecksWarning",G,this),ce(this,"InstanceCount",Q,this),ce(this,"ConnectedWithGateway",Z,this),ce(this,"ConnectedWithProxy",J,this),ce(this,"Resources",X,this),ce(this,"SyncTime",ee,this),ce(this,"CreateIndex",te,this),ce(this,"ModifyIndex",ne,this),ce(this,"Tags",re,this),ce(this,"Nodes",ae,this),ce(this,"Proxy",le,this),ce(this,"GatewayConfig",se,this),ce(this,"ExternalSources",ie,this),ce(this,"Meta",oe,this),ce(this,"meta",ue,this)}get ChecksTotal(){return this.ChecksPassing+this.ChecksWarning+this.ChecksCritical}get MeshChecksTotal(){return this.MeshChecksPassing+this.MeshChecksWarning+this.MeshChecksCritical}get MeshEnabled(){return this.ConnectedWithProxy||this.ConnectedWithGateway}get InMesh(){return this.MeshEnabled||(this.Kind||"").length>0}get MeshStatus(){switch(!0){case 0!==this.MeshChecksCritical:return"critical" +case 0!==this.MeshChecksWarning:return"warning" +case 0!==this.MeshChecksPassing:return"passing" +default:return"empty"}}get MeshChecksPassing(){let e=0 +return void 0!==this.Proxy&&(e=this.Proxy.ChecksPassing),this.ChecksPassing+e}get MeshChecksWarning(){let e=0 +return void 0!==this.Proxy&&(e=this.Proxy.ChecksWarning),this.ChecksWarning+e}get MeshChecksCritical(){let e=0 +return void 0!==this.Proxy&&(e=this.Proxy.ChecksCritical),this.ChecksCritical+e}},$=de(H.prototype,"uid",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=de(H.prototype,"Name",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=de(H.prototype,"Datacenter",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=de(H.prototype,"Namespace",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=de(H.prototype,"Partition",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=de(H.prototype,"Kind",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=de(H.prototype,"ChecksPassing",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=de(H.prototype,"ChecksCritical",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=de(H.prototype,"ChecksWarning",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=de(H.prototype,"InstanceCount",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=de(H.prototype,"ConnectedWithGateway",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=de(H.prototype,"ConnectedWithProxy",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),X=de(H.prototype,"Resources",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ee=de(H.prototype,"SyncTime",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),te=de(H.prototype,"CreateIndex",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ne=de(H.prototype,"ModifyIndex",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),re=de(H.prototype,"Tags",[w,E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ae=de(H.prototype,"Nodes",[k],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),le=de(H.prototype,"Proxy",[x],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),se=de(H.prototype,"GatewayConfig",[j],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ie=de(H.prototype,"ExternalSources",[C,S],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),oe=de(H.prototype,"Meta",[N],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ue=de(H.prototype,"meta",[z],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),de(H.prototype,"ChecksTotal",[M],Object.getOwnPropertyDescriptor(H.prototype,"ChecksTotal"),H.prototype),de(H.prototype,"MeshChecksTotal",[D],Object.getOwnPropertyDescriptor(H.prototype,"MeshChecksTotal"),H.prototype),de(H.prototype,"MeshEnabled",[T],Object.getOwnPropertyDescriptor(H.prototype,"MeshEnabled"),H.prototype),de(H.prototype,"InMesh",[L],Object.getOwnPropertyDescriptor(H.prototype,"InMesh"),H.prototype),de(H.prototype,"MeshStatus",[A],Object.getOwnPropertyDescriptor(H.prototype,"MeshStatus"),H.prototype),de(H.prototype,"MeshChecksPassing",[R],Object.getOwnPropertyDescriptor(H.prototype,"MeshChecksPassing"),H.prototype),de(H.prototype,"MeshChecksWarning",[I],Object.getOwnPropertyDescriptor(H.prototype,"MeshChecksWarning"),H.prototype),de(H.prototype,"MeshChecksCritical",[B],Object.getOwnPropertyDescriptor(H.prototype,"MeshChecksCritical"),H.prototype),H) +e.default=pe})),define("consul-ui/models/session",["exports","@ember-data/model","consul-ui/decorators/replace"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T,L,A,R,I +function B(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function H(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="ID" +let $=(r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("string"),u=(0,t.attr)("string"),c=(0,t.attr)("string"),d=(0,t.attr)("string"),m=(0,t.attr)("number"),p=(0,t.attr)("number"),f=(0,t.attr)("number"),b=(0,t.attr)("number"),h=(0,n.nullValue)([]),v=(0,t.attr)({defaultValue:()=>[]}),y=(0,n.nullValue)([]),g=(0,t.attr)({defaultValue:()=>[]}),O=(0,t.attr)({defaultValue:()=>[]}),_=Ember.computed("NodeChecks","ServiceChecks"),P=class extends t.default{constructor(...e){super(...e),B(this,"uid",w,this),B(this,"ID",E,this),B(this,"Name",k,this),B(this,"Datacenter",x,this),B(this,"Namespace",j,this),B(this,"Partition",C,this),B(this,"Node",S,this),B(this,"Behavior",N,this),B(this,"TTL",z,this),B(this,"LockDelay",M,this),B(this,"SyncTime",D,this),B(this,"CreateIndex",T,this),B(this,"ModifyIndex",L,this),B(this,"NodeChecks",A,this),B(this,"ServiceChecks",R,this),B(this,"Resources",I,this)}get checks(){return[...this.NodeChecks,...this.ServiceChecks.map(({ID:e})=>e)]}},w=H(P.prototype,"uid",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=H(P.prototype,"ID",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=H(P.prototype,"Name",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=H(P.prototype,"Datacenter",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=H(P.prototype,"Namespace",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=H(P.prototype,"Partition",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=H(P.prototype,"Node",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=H(P.prototype,"Behavior",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=H(P.prototype,"TTL",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=H(P.prototype,"LockDelay",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=H(P.prototype,"SyncTime",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=H(P.prototype,"CreateIndex",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=H(P.prototype,"ModifyIndex",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=H(P.prototype,"NodeChecks",[h,v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=H(P.prototype,"ServiceChecks",[y,g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=H(P.prototype,"Resources",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H(P.prototype,"checks",[_],Object.getOwnPropertyDescriptor(P.prototype,"checks"),P.prototype),P) +e.default=$})),define("consul-ui/models/token",["exports","@ember-data/model","consul-ui/models/policy"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S,N,z,M,D,T,L,A,R,I,B,H,$,U,F,q,K,Y,V,W,G +function Q(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function Z(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="AccessorID" +let J=(r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("string"),u=(0,t.attr)("string"),c=(0,t.attr)("boolean"),d=(0,t.attr)("boolean"),m=(0,t.attr)("string",{defaultValue:()=>""}),p=(0,t.attr)(),f=(0,t.attr)({defaultValue:()=>[]}),b=(0,t.attr)({defaultValue:()=>[]}),h=(0,t.attr)({defaultValue:()=>[]}),v=(0,t.attr)({defaultValue:()=>[]}),y=(0,t.attr)("date"),g=(0,t.attr)("string"),O=(0,t.attr)("number"),_=(0,t.attr)("number"),P=(0,t.attr)("string"),w=(0,t.attr)("string",{defaultValue:()=>""}),E=(0,t.attr)("string"),k=Ember.computed("Policies.[]"),x=Ember.computed("SecretID"),j=class extends t.default{constructor(...e){super(...e),Q(this,"uid",C,this),Q(this,"AccessorID",S,this),Q(this,"Datacenter",N,this),Q(this,"Namespace",z,this),Q(this,"Partition",M,this),Q(this,"IDPName",D,this),Q(this,"SecretID",T,this),Q(this,"Legacy",L,this),Q(this,"Local",A,this),Q(this,"Description",R,this),Q(this,"meta",I,this),Q(this,"Policies",B,this),Q(this,"Roles",H,this),Q(this,"ServiceIdentities",$,this),Q(this,"NodeIdentities",U,this),Q(this,"CreateTime",F,this),Q(this,"Hash",q,this),Q(this,"CreateIndex",K,this),Q(this,"ModifyIndex",Y,this),Q(this,"Type",V,this),Q(this,"Name",W,this),Q(this,"Rules",G,this)}get isGlobalManagement(){return(this.Policies||[]).find(e=>e.ID===n.MANAGEMENT_ID)}get hasSecretID(){return""!==this.SecretID&&""!==this.SecretID}},C=Z(j.prototype,"uid",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=Z(j.prototype,"AccessorID",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=Z(j.prototype,"Datacenter",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=Z(j.prototype,"Namespace",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=Z(j.prototype,"Partition",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=Z(j.prototype,"IDPName",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=Z(j.prototype,"SecretID",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=Z(j.prototype,"Legacy",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=Z(j.prototype,"Local",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=Z(j.prototype,"Description",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=Z(j.prototype,"meta",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=Z(j.prototype,"Policies",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=Z(j.prototype,"Roles",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=Z(j.prototype,"ServiceIdentities",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=Z(j.prototype,"NodeIdentities",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=Z(j.prototype,"CreateTime",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=Z(j.prototype,"Hash",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=Z(j.prototype,"CreateIndex",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=Z(j.prototype,"ModifyIndex",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=Z(j.prototype,"Type",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=Z(j.prototype,"Name",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=Z(j.prototype,"Rules",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z(j.prototype,"isGlobalManagement",[k],Object.getOwnPropertyDescriptor(j.prototype,"isGlobalManagement"),j.prototype),Z(j.prototype,"hasSecretID",[x],Object.getOwnPropertyDescriptor(j.prototype,"hasSecretID"),j.prototype),j) +e.default=J})),define("consul-ui/models/topology",["exports","@ember-data/model"],(function(e,t){var n,r,a,l,s,i,o,u,c,d,m,p,f,b,h,v,y,g,O,_,P,w,E,k,x,j,C,S +function N(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function z(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SLUG_KEY=e.PRIMARY_KEY=void 0 +e.PRIMARY_KEY="uid" +e.SLUG_KEY="ServiceName" +let M=(n=(0,t.attr)("string"),r=(0,t.attr)("string"),a=(0,t.attr)("string"),l=(0,t.attr)("string"),s=(0,t.attr)("string"),i=(0,t.attr)("string"),o=(0,t.attr)("boolean"),u=(0,t.attr)("boolean"),c=(0,t.attr)("boolean"),d=(0,t.attr)(),m=(0,t.attr)(),p=(0,t.attr)(),f=Ember.computed("Downstreams"),b=Ember.computed("Downstreams","Upstreams"),h=Ember.computed("Downstreams","Upstreams"),v=class extends t.default{constructor(...e){super(...e),N(this,"uid",y,this),N(this,"ServiceName",g,this),N(this,"Datacenter",O,this),N(this,"Namespace",_,this),N(this,"Partition",P,this),N(this,"Protocol",w,this),N(this,"FilteredByACLs",E,this),N(this,"TransparentProxy",k,this),N(this,"ConnectNative",x,this),N(this,"Upstreams",j,this),N(this,"Downstreams",C,this),N(this,"meta",S,this)}get notDefinedIntention(){let e=!1 +return e=0!==this.Downstreams.filter(e=>"specific-intention"===e.Source&&!e.TransparentProxy&&!e.ConnectNative&&e.Intention.Allowed).length,e}get wildcardIntention(){const e=0!==this.Downstreams.filter(e=>!e.Intention.HasExact&&e.Intention.Allowed).length,t=0!==this.Upstreams.filter(e=>!e.Intention.HasExact&&e.Intention.Allowed).length +return e||t}get noDependencies(){return 0===this.Upstreams.length&&0===this.Downstreams.length}},y=z(v.prototype,"uid",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=z(v.prototype,"ServiceName",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=z(v.prototype,"Datacenter",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=z(v.prototype,"Namespace",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=z(v.prototype,"Partition",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=z(v.prototype,"Protocol",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=z(v.prototype,"FilteredByACLs",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=z(v.prototype,"TransparentProxy",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=z(v.prototype,"ConnectNative",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=z(v.prototype,"Upstreams",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=z(v.prototype,"Downstreams",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=z(v.prototype,"meta",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z(v.prototype,"notDefinedIntention",[f],Object.getOwnPropertyDescriptor(v.prototype,"notDefinedIntention"),v.prototype),z(v.prototype,"wildcardIntention",[b],Object.getOwnPropertyDescriptor(v.prototype,"wildcardIntention"),v.prototype),z(v.prototype,"noDependencies",[h],Object.getOwnPropertyDescriptor(v.prototype,"noDependencies"),v.prototype),v) +e.default=M})),define("consul-ui/modifiers/aria-menu",["exports","ember-modifier"],(function(e,t){var n,r,a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const o={vertical:{40:(e,t=-1)=>(t+1)%e.length,38:(e,t=0)=>0===t?e.length-1:t-1,36:()=>0,35:e=>e.length-1},horizontal:{}} +let u=(n=Ember.inject.service("-document"),r=Ember._action,a=Ember._action,l=class extends t.default{constructor(...e){var t,n,r,a,l,i,o +super(...e),t=this,n="doc",a=this,(r=s)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),o="vertical",(i="orientation")in(l=this)?Object.defineProperty(l,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):l[i]=o}async keydown(e){if(27===e.keyCode)return this.options.onclose(e),void this.$trigger.focus() +const t=[...this.element.querySelectorAll('[role^="menuitem"]')],n=t.findIndex(e=>e===this.doc.activeElement) +9!==e.keyCode?void 0!==o[this.orientation][e.keyCode]&&(t[o[this.orientation][e.keyCode](t,n)].focus(),e.stopPropagation(),e.preventDefault()):e.shiftKey?0===n&&(this.options.onclose(e),this.$trigger.focus()):n===t.length-1&&(await new Promise(e=>setTimeout(e,0)),this.options.onclose(e))}async focus(e){""===e.pointerType&&(await Promise.resolve(),this.keydown({keyCode:36,stopPropagation:()=>{},preventDefault:()=>{}}))}connect(e,t){this.$trigger=this.doc.getElementById(this.element.getAttribute("aria-labelledby")),void 0!==t.openEvent&&this.focus(t.openEvent),this.doc.addEventListener("keydown",this.keydown)}disconnect(){this.doc.removeEventListener("keydown",this.keydown)}didReceiveArguments(){this.params=this.args.positional,this.options=this.args.named}didInstall(){this.connect(this.args.positional,this.args.named)}willRemove(){this.disconnect()}},s=i(l.prototype,"doc",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i(l.prototype,"keydown",[r],Object.getOwnPropertyDescriptor(l.prototype,"keydown"),l.prototype),i(l.prototype,"focus",[a],Object.getOwnPropertyDescriptor(l.prototype,"focus"),l.prototype),l) +e.default=u})),define("consul-ui/modifiers/attach-shadow",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember._setModifierManager(()=>({capabilities:Ember._modifierManagerCapabilities("3.13",{disableAutoTracking:!0}),createModifier(){},installModifier(e,t,n){let r,{positional:[a,...l],named:s}=n +try{r=t.attachShadow({mode:"open"})}catch(i){console.error(i)}a(r)},updateModifier(){},destroyModifier(){}}),class{}) +e.default=t})),define("consul-ui/modifiers/css-prop",["exports","ember-modifier"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let l=(n=Ember.inject.service("-document"),r=class extends t.default{constructor(...e){var t,n,r,l +super(...e),t=this,n="doc",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}didReceiveArguments(){const e=this.args.positional,t=this.args.named;(e[1]||t.returns)(this.doc.defaultView.getComputedStyle(this.element).getPropertyValue(e[0]))}},s=r.prototype,i="doc",o=[n],u={configurable:!0,enumerable:!0,writable:!0,initializer:null},d={},Object.keys(u).forEach((function(e){d[e]=u[e]})),d.enumerable=!!d.enumerable,d.configurable=!!d.configurable,("value"in d||d.initializer)&&(d.writable=!0),d=o.slice().reverse().reduce((function(e,t){return t(s,i,e)||e}),d),c&&void 0!==d.initializer&&(d.value=d.initializer?d.initializer.call(c):void 0,d.initializer=void 0),void 0===d.initializer&&(Object.defineProperty(s,i,d),d=null),a=d,r) +var s,i,o,u,c,d +e.default=l})),define("consul-ui/modifiers/css-props",["exports","ember-modifier"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=Object.fromEntries([...document.styleSheets].reduce((e,t)=>e.concat([...t.cssRules].filter(e=>1===e.type).reduce((e,t)=>[...e,...[...t.style].filter(e=>e.startsWith("--")).map(e=>[e.trim(),t.style.getPropertyValue(e).trim()])],[])),[])) +var r=(0,t.modifier)((function(e,[t],r){const a=new RegExp(`^--${r.prefix||"."}${r.group||""}+`),l={} +Object.entries(n).forEach(([e,t])=>{const n=e.match(a) +if(n){let a=n[0] +"-"===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),r.group?(void 0===l[a]&&(l[a]={}),l[a][e]=t):l[e]=t}}),t(l)})) +e.default=r})),define("consul-ui/modifiers/did-insert",["exports","@ember/render-modifiers/modifiers/did-insert"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/modifiers/did-update",["exports","@ember/render-modifiers/modifiers/did-update"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/modifiers/did-upsert",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const t=e=>({target:e.element,currentTarget:e.element}) +var n=Ember._setModifierManager(()=>({capabilities:Ember._modifierManagerCapabilities("3.13",{disableAutoTracking:!0}),createModifier:()=>({element:null}),installModifier(e,n,r){e.element=n +const[a,...l]=r.positional +a(t(e),l,r.named)},updateModifier(e,n){const[r,...a]=n.positional +r(t(e),a,n.named)},destroyModifier(){}}),class{}) +e.default=n})),define("consul-ui/modifiers/disabled",["exports","ember-modifier"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=(0,t.modifier)((function(e,[t=!0]){if(["input","textarea","select","button"].includes(e.nodeName.toLowerCase()))t?(e.setAttribute("disabled",t),e.setAttribute("aria-disabled",t)):(e.dataset.disabled=!1,e.removeAttribute("disabled"),e.removeAttribute("aria-disabled")) +else for(const n of e.querySelectorAll("input,textarea,button"))t&&"false"!==n.dataset.disabled?(e.setAttribute("disabled",t),e.setAttribute("aria-disabled",t)):(e.removeAttribute("disabled"),e.removeAttribute("aria-disabled"))})) +e.default=n})),define("consul-ui/modifiers/in-viewport",["exports","ember-in-viewport/modifiers/in-viewport"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/modifiers/notification",["exports","ember-modifier"],(function(e,t){var n,r,a +function l(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let i=(n=Ember.inject.service("flashMessages"),r=class extends t.default{constructor(...e){var t,n,r,l +super(...e),t=this,n="notify",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}didInstall(){this.element.setAttribute("role","alert"),this.element.dataset.notification=null +const e=function(e){for(var t=1;te.after()).catch(e=>{if("TransitionAborted"!==e.name)throw e}).then(()=>{this.notify.add(e)}):this.notify.add(e)}willDestroy(){this.args.named.sticky&&this.notify.clearMessages()}},o=r.prototype,u="notify",c=[n],d={configurable:!0,enumerable:!0,writable:!0,initializer:null},p={},Object.keys(d).forEach((function(e){p[e]=d[e]})),p.enumerable=!!p.enumerable,p.configurable=!!p.configurable,("value"in p||p.initializer)&&(p.writable=!0),p=c.slice().reverse().reduce((function(e,t){return t(o,u,e)||e}),p),m&&void 0!==p.initializer&&(p.value=p.initializer?p.initializer.call(m):void 0,p.initializer=void 0),void 0===p.initializer&&(Object.defineProperty(o,u,p),p=null),a=p,r) +var o,u,c,d,m,p +e.default=i})) +define("consul-ui/modifiers/on-outside",["exports","ember-modifier"],(function(e,t){var n,r,a,l +function s(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let i=(n=Ember.inject.service("dom"),r=Ember._action,a=class extends t.default{constructor(){var e,t,n,r +super(...arguments),e=this,t="dom",r=this,(n=l)&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0}),this.doc=this.dom.document()}async connect(e,t){await new Promise(e=>setTimeout(e,0)) +try{this.doc.addEventListener(e[0],this.listen)}catch(n){}}listen(e){if(this.dom.isOutside(this.element,e.target)){("function"==typeof this.params[1]?this.params[1]:()=>{}).apply(this.element,[e])}}disconnect(){this.doc.removeEventListener("click",this.listen)}didReceiveArguments(){this.params=this.args.positional,this.options=this.args.named}didInstall(){this.connect(this.args.positional,this.args.named)}willRemove(){this.disconnect()}},l=s(a.prototype,"dom",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s(a.prototype,"listen",[r],Object.getOwnPropertyDescriptor(a.prototype,"listen"),a.prototype),a) +e.default=i})),define("consul-ui/modifiers/on-resize",["exports","ember-on-resize-modifier/modifiers/on-resize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/modifiers/ref",["exports","ember-ref-modifier/modifiers/ref"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/modifiers/style",["exports","ember-modifier"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{setStyles(e=[]){const t=this._oldStyles||new Set +Array.isArray(e)||(e=Object.entries(e)),e.forEach(([e,n])=>{let r="" +n.length>0&&n.includes("!important")&&(r="important",n=n.replace("!important","")),this.element.style.setProperty(e,n,r),t.delete(e)}),t.forEach(e=>this.element.style.removeProperty(e)),this._oldStyles=new Set(e.map(e=>e[0]))}didReceiveArguments(){void 0!==this.args.named.delay?setTimeout(()=>{typeof this!==this.args.positional[0]&&this.setStyles(this.args.positional[0])},this.args.named.delay):this.setStyles(this.args.positional[0])}}e.default=n})),define("consul-ui/modifiers/tooltip",["exports","ember-modifier","tippy.js"],(function(e,t,n){function r(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var l=(0,t.modifier)((e,[t],l={})=>{const s=l.options||{} +let i,o=e +if("string"==typeof s.triggerTarget){const e=o +switch(s.triggerTarget){case"parentNode":o=o.parentNode +break +default:o=o.querySelectorAll(s.triggerTarget)}t=o.cloneNode(!0),e.remove(),l.options.triggerTarget=void 0}if(void 0===t&&(t=o.innerHTML,o.innerHTML=""),"manual"===s.trigger){const e=s.delay||[] +void 0!==e[1]&&(l.options.onShown=t=>{clearInterval(i),i=setTimeout(()=>{t.hide()},e[1])})}let u=o,c=!1 +u.hasAttribute("tabindex")||(c=!0,u.setAttribute("tabindex","0")) +const d=(0,n.default)(o,function(e){for(var t=1;tt,plugins:[void 0!==s.followCursor?n.followCursor:void 0].filter(e=>Boolean(e))},l.options)) +return()=>{c&&u.removeAttribute("tabindex"),clearInterval(i),d.destroy()}}) +e.default=l})),define("consul-ui/modifiers/validate",["exports","ember-modifier"],(function(e,t){var n,r,a +function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class i extends Error{}let o=(n=Ember._action,r=Ember._action,s((a=class extends t.default{constructor(...e){super(...e),l(this,"item",null),l(this,"hash",null)}validate(e,t={}){if(0===Object.keys(t).length)return +const n={} +Object.entries(this.hash.validations).filter(([e,t])=>"string"!=typeof t).forEach(([t,r])=>{this.item&&(this.item[t]=e),(r||[]).forEach(r=>{new RegExp(r.test).test(e)||(n[t]=new i(r.error))})}) +const r=this.hash.chart.state +null==r.context&&(r.context={}),Object.keys(n).length>0?(r.context.errors=n,this.hash.chart.dispatch("ERROR")):(r.context.errors=null,this.hash.chart.dispatch("RESET"))}reset(e){if(0===e.target.value.length){const e=this.hash.chart.state +e.context||(e.context={}),e.context.errors||(e.context.errors={}),Object.entries(this.hash.validations).filter(([e,t])=>"string"!=typeof t).forEach(([t,n])=>{void 0!==e.context.errors[t]&&delete e.context.errors[t]}),0===Object.keys(e.context.errors).length&&(e.context.errors=null,this.hash.chart.dispatch("RESET"))}}async connect([e],t){this.element.addEventListener("input",this.listen),this.element.addEventListener("blur",this.reset),this.element.value.length>0&&(await Promise.resolve(),this&&this.element&&this.validate(this.element.value,this.hash.validations))}listen(e){this.validate(e.target.value,this.hash.validations)}disconnect(){this.item=null,this.hash=null,this.element.removeEventListener("input",this.listen),this.element.removeEventListener("blur",this.reset)}didReceiveArguments(){const[e]=this.args.positional,t=this.args.named +this.item=e,this.hash=t,void 0===t.chart&&(this.hash.chart={state:{context:{}},dispatch:e=>{switch(e){case"ERROR":t.onchange(this.hash.chart.state.context.errors) +break +case"RESET":t.onchange()}}})}didInstall(){this.connect(this.args.positional,this.args.named)}willRemove(){this.disconnect()}}).prototype,"reset",[n],Object.getOwnPropertyDescriptor(a.prototype,"reset"),a.prototype),s(a.prototype,"listen",[r],Object.getOwnPropertyDescriptor(a.prototype,"listen"),a.prototype),a) +e.default=o})),define("consul-ui/modifiers/will-destroy",["exports","@ember/render-modifiers/modifiers/will-destroy"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/modifiers/with-copyable",["exports","ember-modifier"],(function(e,t){var n,r,a +function l(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const i=(e,t,n)=>typeof t===e?t:n +let o=(n=Ember.inject.service("clipboard/os"),r=class extends t.default{constructor(...e){var t,n,r,l +super(...e),t=this,n="clipboard",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0}),s(this,"hash",null),s(this,"source",null)}connect([e],t){e=i("string",e,this.element.innerText) +const n={success:e=>i("function",t.success,()=>{})(e),error:e=>i("function",t.error,()=>{})(e)} +this.source=this.clipboard.execute(this.element,function(e){for(var t=1;te},n.options)).on("success",n.success).on("error",n.error),this.hash=n}disconnect(){this.source&&this.hash&&(this.source.off("success",this.hash.success).off("error",this.hash.error),this.source.destroy(),this.hash=null,this.source=null)}didReceiveArguments(){this.disconnect(),this.connect(this.args.positional,this.args.named)}willRemove(){this.disconnect()}},u=r.prototype,c="clipboard",d=[n],m={configurable:!0,enumerable:!0,writable:!0,initializer:null},f={},Object.keys(m).forEach((function(e){f[e]=m[e]})),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=d.slice().reverse().reduce((function(e,t){return t(u,c,e)||e}),f),p&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(p):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(u,c,f),f=null),a=f,r) +var u,c,d,m,p,f +e.default=o})),define("consul-ui/modifiers/with-overlay",["exports","ember-modifier","tippy.js"],(function(e,t,n){function r(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var l=(0,t.modifier)((e,[t],l={})=>{const s=l.options||{} +let i,o=e +if("string"==typeof s.triggerTarget){const e=o +switch(s.triggerTarget){case"parentNode":o=o.parentNode +break +default:o=o.querySelectorAll(s.triggerTarget)}t=o.cloneNode(!0),e.remove(),l.options.triggerTarget=void 0}if(void 0===t&&(t=o.innerHTML,o.innerHTML=""),l.returns&&(s.trigger="manual"),"manual"===s.trigger){const e=s.delay||[] +void 0!==e[1]&&(s.onShown=t=>{clearInterval(i),i=setTimeout(()=>{t.hide()},e[1])})}let u=o +const c=(0,n.default)(o,function(e){for(var t=1;tt,interactive:!0,plugins:[void 0!==s.followCursor?n.followCursor:void 0].filter(e=>Boolean(e))},s)) +return l.returns&&l.returns(c),()=>{clearInterval(i),c.destroy()}}) +e.default=l})),define("consul-ui/router",["exports","consul-ui/config/environment","deepmerge","consul-ui/env","consul-ui/utils/routing/walk"],(function(e,t,n,r,a){function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.routes=void 0 +const s=document,i=(t.default.modulePrefix,n.default.all([...s.querySelectorAll("script[data-routes]")].map(e=>JSON.parse(e.dataset.routes)))) +e.routes=i +class o extends Ember.Router{constructor(...e){super(...e),l(this,"location",(0,r.env)("locationType")),l(this,"rootURL",(0,r.env)("rootURL"))}}e.default=o,o.map((0,a.default)(i))})),define("consul-ui/routes/application",["exports","consul-ui/routing/route","consul-ui/mixins/with-blocking-actions"],(function(e,t,n){var r,a,l,s,i +function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let u=(r=Ember.inject.service("client/http"),a=Ember._action,l=Ember._action,s=class extends(t.default.extend(n.default)){constructor(...e){var t,n,r,a,l,s,o +super(...e),t=this,n="client",a=this,(r=i)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),o=void 0,(s="data")in(l=this)?Object.defineProperty(l,s,{value:o,enumerable:!0,configurable:!0,writable:!0}):l[s]=o}onClientChanged(e){let t=e.data +""===t&&(t={blocking:!0}),void 0!==this.data?(!0===this.data.blocking&&!1===t.blocking&&this.client.abort(),this.data=Object.assign({},t)):this.data=Object.assign({},t)}error(e,t){let n={status:e.code||e.statusCode||"",message:e.message||e.detail||"Error"} +return e.errors&&e.errors[0]&&(n=e.errors[0],n.message=n.message||n.title||n.detail||"Error"),""===n.status&&(n.message="Error"),this.controllerFor("application").setProperties({error:n}),!0}},i=o(s.prototype,"client",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(s.prototype,"onClientChanged",[a],Object.getOwnPropertyDescriptor(s.prototype,"onClientChanged"),s.prototype),o(s.prototype,"error",[l],Object.getOwnPropertyDescriptor(s.prototype,"error"),s.prototype),s) +e.default=u})),define("consul-ui/routes/dc",["exports","consul-ui/routing/route"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let l=(n=Ember.inject.service("repository/permission"),r=class extends t.default{constructor(...e){var t,n,r,l +super(...e),t=this,n="permissionsRepo",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}async model(e){const t=await this.permissionsRepo.findAll({dc:e.dc,ns:this.optionalParams().nspace,partition:this.optionalParams().partition}) +return this.controllerFor("application").setProperties({permissions:t}),{permissions:t}}},s=r.prototype,i="permissionsRepo",o=[n],u={configurable:!0,enumerable:!0,writable:!0,initializer:null},d={},Object.keys(u).forEach((function(e){d[e]=u[e]})),d.enumerable=!!d.enumerable,d.configurable=!!d.configurable,("value"in d||d.initializer)&&(d.writable=!0),d=o.slice().reverse().reduce((function(e,t){return t(s,i,e)||e}),d),c&&void 0!==d.initializer&&(d.value=d.initializer?d.initializer.call(c):void 0,d.initializer=void 0),void 0===d.initializer&&(Object.defineProperty(s,i,d),d=null),a=d,r) +var s,i,o,u,c,d +e.default=l})),define("consul-ui/routes/dc/acls/auth-methods/index",["exports","consul-ui/routing/route"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r={sortBy:"sort",source:"source",kind:"kind",searchproperty:{as:"searchproperty",empty:[["Name","DisplayName"]]},search:{as:"filter",replace:!0}},(n="queryParams")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}}e.default=n})),define("consul-ui/routes/dc/acls/auth-methods/show/index",["exports","consul-ui/routing/route","consul-ui/utils/routing/redirect-to"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class r extends t.default{constructor(...e){var t,r,a +super(...e),t=this,r="redirect",a=(0,n.default)("auth-method"),r in t?Object.defineProperty(t,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[r]=a}}e.default=r})),define("consul-ui/routes/dc/acls/policies/create",["exports","consul-ui/routes/dc/acls/policies/edit"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="dc/acls/policies/edit",(n="templateName")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}}e.default=n})),define("consul-ui/routes/dc/acls/policies/edit",["exports","consul-ui/routing/route","consul-ui/mixins/with-blocking-actions"],(function(e,t,n){var r,a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(r=Ember.inject.service("repository/policy"),a=class extends(t.default.extend(n.default)){constructor(...e){var t,n,r,a +super(...e),t=this,n="repo",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}},i=a.prototype,o="repo",u=[r],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),l=m,a) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/routes/dc/acls/policies/index",["exports","consul-ui/routing/route","consul-ui/mixins/with-blocking-actions"],(function(e,t,n){var r,a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(r=Ember.inject.service("repository/policy"),a=class extends(t.default.extend(n.default)){constructor(...e){var t,n,r,a,s,i,o +super(...e),t=this,n="repo",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),o={sortBy:"sort",datacenter:{as:"dc"},kind:"kind",searchproperty:{as:"searchproperty",empty:[["Name","Description"]]},search:{as:"filter",replace:!0}},(i="queryParams")in(s=this)?Object.defineProperty(s,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):s[i]=o}},i=a.prototype,o="repo",u=[r],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),l=m,a) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/routes/dc/acls/roles/create",["exports","consul-ui/routes/dc/acls/roles/edit"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="dc/acls/roles/edit",(n="templateName")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}}e.default=n})),define("consul-ui/routes/dc/acls/roles/edit",["exports","consul-ui/routing/route","consul-ui/mixins/with-blocking-actions"],(function(e,t,n){var r,a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(r=Ember.inject.service("repository/role"),a=class extends(t.default.extend(n.default)){constructor(...e){var t,n,r,a +super(...e),t=this,n="repo",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}},i=a.prototype,o="repo",u=[r],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),l=m,a) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/routes/dc/acls/roles/index",["exports","consul-ui/routing/route","consul-ui/mixins/with-blocking-actions"],(function(e,t,n){var r,a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(r=Ember.inject.service("repository/role"),a=class extends(t.default.extend(n.default)){constructor(...e){var t,n,r,a,s,i,o +super(...e),t=this,n="repo",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),o={sortBy:"sort",searchproperty:{as:"searchproperty",empty:[["Name","Description","Policy"]]},search:{as:"filter",replace:!0}},(i="queryParams")in(s=this)?Object.defineProperty(s,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):s[i]=o}},i=a.prototype,o="repo",u=[r],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),l=m,a) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/routes/dc/acls/tokens/create",["exports","consul-ui/routes/dc/acls/tokens/edit"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="dc/acls/tokens/edit",(n="templateName")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}}e.default=n})),define("consul-ui/routes/dc/acls/tokens/edit",["exports","consul-ui/routing/route","consul-ui/mixins/with-blocking-actions"],(function(e,t,n){var r,a,l,s,i +function o(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let c=(r=Ember.inject.service("repository/token"),a=Ember.inject.service("settings"),l=class extends(t.default.extend(n.default)){constructor(...e){super(...e),o(this,"repo",s,this),o(this,"settings",i,this)}async model(e,t){return{token:await this.settings.findBySlug("token")}}},s=u(l.prototype,"repo",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i=u(l.prototype,"settings",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l) +e.default=c})),define("consul-ui/routes/dc/acls/tokens/index",["exports","consul-ui/routing/route","consul-ui/mixins/with-blocking-actions"],(function(e,t,n){var r,a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(r=Ember.inject.service("repository/token"),a=class extends(t.default.extend(n.default)){constructor(...e){var t,n,r,a,s,i,o +super(...e),t=this,n="repo",a=this,(r=l)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0}),o={sortBy:"sort",kind:"kind",searchproperty:{as:"searchproperty",empty:[["AccessorID","Description","Role","Policy"]]},search:{as:"filter",replace:!0}},(i="queryParams")in(s=this)?Object.defineProperty(s,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):s[i]=o}},i=a.prototype,o="repo",u=[r],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),l=m,a) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/routes/dc/kv/folder",["exports","consul-ui/routes/dc/kv/index"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{beforeModel(e){super.beforeModel(...arguments) +const t=this.paramsFor("dc.kv.folder") +if("/"===t.key||null==t.key)return this.transitionTo("dc.kv.index")}}e.default=n})),define("consul-ui/routes/dc/kv/index",["exports","consul-ui/routing/route","consul-ui/utils/isFolder"],(function(e,t,n){var r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let l=(r=Ember._action,a=class extends t.default{beforeModel(){const e=this.paramsFor(this.routeName).key||"/" +if(!(0,n.default)(e))return this.replaceWith(this.routeName,e+"/")}error(e){return!e.errors||!e.errors[0]||"404"!=e.errors[0].status||this.transitionTo("dc.kv.index")}},s=a.prototype,i="error",o=[r],u=Object.getOwnPropertyDescriptor(a.prototype,"error"),c=a.prototype,d={},Object.keys(u).forEach((function(e){d[e]=u[e]})),d.enumerable=!!d.enumerable,d.configurable=!!d.configurable,("value"in d||d.initializer)&&(d.writable=!0),d=o.slice().reverse().reduce((function(e,t){return t(s,i,e)||e}),d),c&&void 0!==d.initializer&&(d.value=d.initializer?d.initializer.call(c):void 0,d.initializer=void 0),void 0===d.initializer&&(Object.defineProperty(s,i,d),d=null),a) +var s,i,o,u,c,d +e.default=l})),define("consul-ui/routes/dc/services/notfound",["exports","consul-ui/routing/route"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{redirect(e,t){this.replaceWith("dc.services.instance",e.name,e.node,e.id)}}e.default=n})),define("consul-ui/routes/dc/services/show/topology",["exports","consul-ui/routing/route"],(function(e,t){var n,r,a,l,s,i,o,u +function c(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;tn.Datacenter===e.Datacenter&&n.SourceName===e.Name&&n.SourceNS===e.Namespace&&n.SourcePartition===e.Partition&&n.DestinationName===t.Name&&n.DestinationNS===t.Namespace&&n.DestinationPartition===t.Partition) +void 0===r?r=this.repo.create({Datacenter:e.Datacenter,SourceName:e.Name,SourceNS:e.Namespace||"default",SourcePartition:e.Partition||"default",DestinationName:t.Name,DestinationNS:t.Namespace||"default",DestinationPartition:t.Partition||"default"}):n=this.feedback.notification("update","intention"),Ember.set(r,"Action","allow"),await this.repo.persist(r),n.success(r)}catch(r){n.error(r)}this.refresh()}afterModel(e,t){const n=d(d(d({},this.optionalParams()),this.paramsFor("dc")),this.paramsFor("dc.services.show")) +this.intentions=this.data.source(e=>e`/${n.partition}/${n.nspace}/${n.dc}/intentions/for-service/${n.name}`)}async deactivate(e){(await this.intentions).destroy()}},i=f(s.prototype,"data",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=f(s.prototype,"repo",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=f(s.prototype,"feedback",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f(s.prototype,"createIntention",[l],Object.getOwnPropertyDescriptor(s.prototype,"createIntention"),s.prototype),s) +e.default=b})),define("consul-ui/routing/route",["exports","consul-ui/utils/path/resolve","consul-ui/router"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m,p,f,b +function h(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t!r.includes(e)).length&&(e=void 0)}}return e}model(){const e={} +return void 0!==this.queryParams&&void 0!==this.queryParams.searchproperty&&(e.searchProperties=this.queryParams.searchproperty.empty[0]),e}setupController(e,t){Ember.setProperties(e,v(v({},t),{},{routeName:this.routeName})),super.setupController(...arguments)}optionalParams(){return this.container.get("location:"+this.env.var("locationType")).optionalParams()}paramsFor(e){return this.routlet.normalizeParamsFor(this.routeName,super.paramsFor(...arguments))}async replaceWith(e,t){await Promise.resolve() +let n=[] +return"string"==typeof t&&(n=[t]),void 0===t||Array.isArray(t)||"string"==typeof t||(n=Object.values(t)),super.replaceWith(e,...n)}async transitionTo(e,t){await Promise.resolve() +let n=[] +return"string"==typeof t&&(n=[t]),void 0===t||Array.isArray(t)||"string"==typeof t||(n=Object.values(t)),super.transitionTo(e,...n)}},d=O(c.prototype,"container",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=O(c.prototype,"env",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=O(c.prototype,"permissions",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(c.prototype,"router",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=O(c.prototype,"routlet",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O(c.prototype,"replaceWith",[o],Object.getOwnPropertyDescriptor(c.prototype,"replaceWith"),c.prototype),O(c.prototype,"transitionTo",[u],Object.getOwnPropertyDescriptor(c.prototype,"transitionTo"),c.prototype),c) +e.default=_})),define("consul-ui/routing/single",["exports","consul-ui/routing/route"],(function(e,t){function n(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;te.ID,Name:e=>e.Name}})) +define("consul-ui/search/predicates/auth-method",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={Name:e=>e.Name,DisplayName:e=>e.DisplayName}})),define("consul-ui/search/predicates/health-check",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t={Name:e=>e.Name,Node:e=>e.Node,Service:e=>e.ServiceName,CheckID:e=>e.CheckID||"",ID:e=>e.Service.ID||"",Notes:e=>e.Notes,Output:e=>e.Output,ServiceTags:e=>{return t=e.ServiceTags,Array.isArray(t)?t:t.toArray() +var t}} +e.default=t})),define("consul-ui/search/predicates/intention",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t={SourceName:e=>[e.SourceName,"*"===e.SourceName?"All Services (*)":void 0].filter(Boolean),DestinationName:e=>[e.DestinationName,"*"===e.DestinationName?"All Services (*)":void 0].filter(Boolean)} +e.default=t})),define("consul-ui/search/predicates/kv",["exports","consul-ui/utils/right-trim"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={Key:e=>(0,t.default)(e.Key.toLowerCase()).split("/").filter(e=>Boolean(e)).pop()} +e.default=n})),define("consul-ui/search/predicates/node",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t={Node:e=>e.Node,Address:e=>e.Address,Meta:e=>Object.entries(e.Meta||{}).reduce((e,t)=>e.concat(t),[])} +e.default=t})),define("consul-ui/search/predicates/nspace",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={Name:e=>e.Name,Description:e=>e.Description,Role:e=>((e.ACLs||{}).RoleDefaults||[]).map(e=>e.Name),Policy:e=>((e.ACLs||{}).PolicyDefaults||[]).map(e=>e.Name)}})),define("consul-ui/search/predicates/policy",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={Name:e=>e.Name,Description:e=>e.Description}})),define("consul-ui/search/predicates/role",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={Name:e=>e.Name,Description:e=>e.Description,Policy:e=>(e.Policies||[]).map(e=>e.Name).concat((e.ServiceIdentities||[]).map(e=>e.ServiceName)).concat((e.NodeIdentities||[]).map(e=>e.NodeName))}})),define("consul-ui/search/predicates/service-instance",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t={Name:e=>e.Name,Node:e=>e.Node.Node,Tags:e=>e.Service.Tags||[],ID:e=>e.Service.ID||"",Address:e=>e.Address||"",Port:e=>(e.Service.Port||"").toString(),"Service.Meta":e=>Object.entries(e.Service.Meta||{}).reduce((e,t)=>e.concat(t),[]),"Node.Meta":e=>Object.entries(e.Node.Meta||{}).reduce((e,t)=>e.concat(t),[])} +e.default=t})),define("consul-ui/search/predicates/service",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={Name:e=>e.Name,Tags:e=>e.Tags||[]}})),define("consul-ui/search/predicates/token",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={Name:e=>e.Name,Description:e=>e.Description,AccessorID:e=>e.AccessorID,Role:e=>(e.Roles||[]).map(e=>e.Name),Policy:e=>(e.Policies||[]).map(e=>e.Name).concat((e.ServiceIdentities||[]).map(e=>e.ServiceName)).concat((e.NodeIdentities||[]).map(e=>e.NodeName))}})),define("consul-ui/search/predicates/upstream-instance",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={DestinationName:e=>e.DestinationName,LocalBindAddress:e=>e.LocalBindAddress,LocalBindPort:e=>e.LocalBindPort.toString()}})),define("consul-ui/serializers/-default",["exports","@ember-data/serializer/json"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/serializers/-json-api",["exports","@ember-data/serializer/json-api"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/serializers/-rest",["exports","@ember-data/serializer/rest"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/serializers/application",["exports","consul-ui/serializers/http","consul-ui/utils/http/consul","consul-ui/utils/http/headers","consul-ui/models/dc","consul-ui/models/nspace","consul-ui/models/partition","consul-ui/utils/create-fingerprinter"],(function(e,t,n,r,a,l,s,i){function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const u=function(e,t){const r={} +return Object.keys(e).forEach((function(t){r[t.toLowerCase()]=e[t]})),t[n.HEADERS_SYMBOL]=r,t} +class c extends t.default{constructor(...e){super(...e),o(this,"attachHeaders",u),o(this,"fingerprint",(0,i.default)(a.FOREIGN_KEY,l.NSPACE_KEY,s.PARTITION_KEY))}respondForQuery(e,t){return e((e,r)=>{return u(e,(a=r,l=this.fingerprint(this.primaryKey,this.slugKey,t.dc,e[n.HEADERS_NAMESPACE],e[n.HEADERS_PARTITION]),Array.isArray(a)?a.map(l):[a].map(l)[0])) +var a,l})}respondForQueryRecord(e,t){return e((e,r)=>u(e,this.fingerprint(this.primaryKey,this.slugKey,t.dc,e[n.HEADERS_NAMESPACE],e[n.HEADERS_PARTITION])(r)))}respondForCreateRecord(e,t,r){const l=this.slugKey,s=this.primaryKey +return e((e,t)=>(!0===t&&(t=r),this.fingerprint(s,l,r[a.FOREIGN_KEY],e[n.HEADERS_NAMESPACE],r.Partition)(t)))}respondForUpdateRecord(e,t,r){const l=this.slugKey,s=this.primaryKey +return e((e,t)=>(!0===t&&(t=r),this.fingerprint(s,l,r[a.FOREIGN_KEY],e[n.HEADERS_NAMESPACE],e[n.HEADERS_PARTITION])(t)))}respondForDeleteRecord(e,t,r){const i=this.slugKey,o=this.primaryKey +return e(e=>({[o]:this.fingerprint(o,i,r[a.FOREIGN_KEY],e[n.HEADERS_NAMESPACE],e[n.HEADERS_PARTITION])({[i]:r[i],[l.NSPACE_KEY]:r[l.NSPACE_KEY],[s.PARTITION_KEY]:r[s.PARTITION_KEY]})[o]}))}normalizeResponse(e,t,n,r,a){const l=this.normalizePayload(n,r,a),s=this.normalizeMeta(e,t,l,r,a) +"query"!==a&&(l.meta=s) +const i=super.normalizeResponse(e,t,{meta:s,[t.modelName]:l},r,a) +return void 0===i?n:i}timestamp(){return(new Date).getTime()}normalizeMeta(e,t,a,l,s){const i=a[n.HEADERS_SYMBOL]||{} +delete a[n.HEADERS_SYMBOL] +const o={cacheControl:i[r.CACHE_CONTROL.toLowerCase()],cursor:i[n.HEADERS_INDEX.toLowerCase()],dc:i[n.HEADERS_DATACENTER.toLowerCase()],nspace:i[n.HEADERS_NAMESPACE.toLowerCase()],partition:i[n.HEADERS_PARTITION.toLowerCase()]} +return void 0!==i["x-range"]&&(o.range=i["x-range"]),void 0!==i.refresh&&(o.interval=1e3*i.refresh),"query"===s&&(o.date=this.timestamp(),a.forEach((function(e){Ember.set(e,"SyncTime",o.date)}))),o}normalizePayload(e,t,n){return e}}e.default=c})),define("consul-ui/serializers/auth-method",["exports","consul-ui/serializers/application","consul-ui/models/auth-method"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{constructor(...e){super(...e),r(this,"primaryKey",n.PRIMARY_KEY),r(this,"slugKey",n.SLUG_KEY)}}e.default=a})),define("consul-ui/serializers/binding-rule",["exports","consul-ui/serializers/application","consul-ui/models/binding-rule"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{constructor(...e){super(...e),r(this,"primaryKey",n.PRIMARY_KEY),r(this,"slugKey",n.SLUG_KEY)}}e.default=a})),define("consul-ui/serializers/coordinate",["exports","consul-ui/serializers/application","consul-ui/models/coordinate"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{constructor(...e){super(...e),r(this,"primaryKey",n.PRIMARY_KEY),r(this,"slugKey",n.SLUG_KEY)}}e.default=a})),define("consul-ui/serializers/discovery-chain",["exports","consul-ui/serializers/application","consul-ui/models/discovery-chain"],(function(e,t,n){function r(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;tt)}respondForQueryRecord(e,t){return e((e,t)=>t)}respondForFindAll(e,t){return e((e,t)=>t)}respondForCreateRecord(e,t){return e((e,t)=>t)}respondForUpdateRecord(e,t){return e((e,t)=>t)}respondForDeleteRecord(e,t){return e((e,t)=>t)}}e.default=n})),define("consul-ui/serializers/intention",["exports","consul-ui/serializers/application","consul-ui/models/intention"],(function(e,t,n){var r,a,l +function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let i=(r=Ember.inject.service("encoder"),a=class extends t.default{constructor(...e){var t,r,a,i +super(...e),t=this,r="encoder",i=this,(a=l)&&Object.defineProperty(t,r,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(i):void 0}),s(this,"primaryKey",n.PRIMARY_KEY),s(this,"slugKey",n.SLUG_KEY)}init(){super.init(...arguments),this.uri=this.encoder.uriTag()}ensureID(e){return Ember.get(e,"ID.length")?(e.Legacy=!0,e.LegacyID=e.ID):e.Legacy=!1,e.ID=this.uri`${e.SourcePartition}:${e.SourceNS}:${e.SourceName}:${e.DestinationPartition}:${e.DestinationNS}:${e.DestinationName}`,e}respondForQuery(e,t){return super.respondForQuery(t=>e((e,n)=>t(e,n.map(e=>this.ensureID(e)))),t)}respondForQueryRecord(e,t){return super.respondForQueryRecord(t=>e((e,n)=>(n=this.ensureID(n),t(e,n))),t)}respondForCreateRecord(e,t,n){const r=this.slugKey,a=this.primaryKey +return e((e,l)=>((l=n).ID=this.uri`${t.SourcePartition}:${t.SourceNS}:${t.SourceName}:${t.DestinationPartition}:${t.DestinationNS}:${t.DestinationName}`,this.fingerprint(a,r,l.Datacenter)(l)))}respondForUpdateRecord(e,t,n){const r=this.slugKey,a=this.primaryKey +return e((e,l)=>((l=n).LegacyID=l.ID,l.ID=t.ID,this.fingerprint(a,r,l.Datacenter)(l)))}},o=a.prototype,u="encoder",c=[r],d={configurable:!0,enumerable:!0,writable:!0,initializer:null},p={},Object.keys(d).forEach((function(e){p[e]=d[e]})),p.enumerable=!!p.enumerable,p.configurable=!!p.configurable,("value"in p||p.initializer)&&(p.writable=!0),p=c.slice().reverse().reduce((function(e,t){return t(o,u,e)||e}),p),m&&void 0!==p.initializer&&(p.value=p.initializer?p.initializer.call(m):void 0,p.initializer=void 0),void 0===p.initializer&&(Object.defineProperty(o,u,p),p=null),l=p,a) +var o,u,c,d,m,p +e.default=i})),define("consul-ui/serializers/kv",["exports","consul-ui/serializers/application","consul-ui/models/kv"],(function(e,t,n){var r,a,l +function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let i=(r=Ember.inject.service("atob"),a=class extends t.default{constructor(...e){var t,r,a,i +super(...e),t=this,r="decoder",i=this,(a=l)&&Object.defineProperty(t,r,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(i):void 0}),s(this,"primaryKey",n.PRIMARY_KEY),s(this,"slugKey",n.SLUG_KEY)}serialize(e,t){const n=e.attr("Value") +return"string"==typeof n?this.decoder.execute(n):null}respondForQueryRecord(e,t){return super.respondForQueryRecord(t=>e((e,n)=>(void 0===n[0].Session&&(n[0].Session=""),t(e,n[0]))),t)}respondForQuery(e,t){return super.respondForQuery(t=>e((e,n)=>t(e,n.map(e=>({[this.slugKey]:e})))),t)}},o=a.prototype,u="decoder",c=[r],d={configurable:!0,enumerable:!0,writable:!0,initializer:null},p={},Object.keys(d).forEach((function(e){p[e]=d[e]})),p.enumerable=!!p.enumerable,p.configurable=!!p.configurable,("value"in p||p.initializer)&&(p.writable=!0),p=c.slice().reverse().reduce((function(e,t){return t(o,u,e)||e}),p),m&&void 0!==p.initializer&&(p.value=p.initializer?p.initializer.call(m):void 0,p.initializer=void 0),void 0===p.initializer&&(Object.defineProperty(o,u,p),p=null),l=p,a) +var o,u,c,d,m,p +e.default=i})),define("consul-ui/serializers/node",["exports","consul-ui/serializers/application","@ember-data/serializer/rest","consul-ui/models/node"],(function(e,t,n,r){function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const l=function(e){return""===e[r.SLUG_KEY]&&(e[r.SLUG_KEY]=e.Node),e} +class s extends(t.default.extend(n.EmbeddedRecordsMixin)){constructor(...e){super(...e),a(this,"primaryKey",r.PRIMARY_KEY),a(this,"slugKey",r.SLUG_KEY),a(this,"attrs",{Services:{embedded:"always"}})}transformHasManyResponse(e,t,n,r=null){let a,l={} +switch(t.key){case"Services":return(n.Checks||[]).filter(e=>""!==e.ServiceID).forEach(e=>{void 0===l[e.ServiceID]&&(l[e.ServiceID]=[]),l[e.ServiceID].push(e)}),a=this.store.serializerFor(t.type),n.Services=n.Services.map(e=>a.transformHasManyResponseFromNode(n,e,l)),n}return super.transformHasManyResponse(...arguments)}respondForQuery(e,t,n,r){const a=super.respondForQuery(t=>e((e,n)=>t(e,n.map(l))),t) +return r.eachRelationship((e,t)=>{a.forEach(e=>this[`transform${Ember.String.classify(t.kind)}Response`](this.store,t,e,a))}),a}respondForQueryRecord(e,t,n,r){const a=super.respondForQueryRecord(t=>e((e,n)=>t(e,l(n))),t) +return r.eachRelationship((e,t)=>{this[`transform${Ember.String.classify(t.kind)}Response`](this.store,t,a)}),a}respondForQueryLeader(e,t){return e((e,n)=>{const r=n.split(":"),a=r.pop(),l=r.join(":") +return this.attachHeaders(e,{Address:l,Port:a},t)})}}e.default=s})),define("consul-ui/serializers/nspace",["exports","consul-ui/serializers/application","consul-ui/models/nspace"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const a=e=>(Ember.get(e,"ACLs.PolicyDefaults")&&(e.ACLs.PolicyDefaults=e.ACLs.PolicyDefaults.map((function(e){return void 0===e.template&&(e.template=""),e}))),["PolicyDefaults","RoleDefaults"].forEach((function(t){void 0===e.ACLs&&(e.ACLs=[]),void 0===e.ACLs[t]&&(e.ACLs[t]=[])})),e) +class l extends t.default{constructor(...e){super(...e),r(this,"primaryKey",n.PRIMARY_KEY),r(this,"slugKey",n.SLUG_KEY)}respondForQuery(e,t,n,r){return super.respondForQuery(n=>e((e,r)=>n(e,r.map((function(e){return e.Namespace="*",e.Datacenter=t.dc,a(e)})))),t)}respondForQueryRecord(e,t,n){return super.respondForQuery(n=>e((e,r)=>(r.Datacenter=t.dc,r.Namespace="*",n(e,a(r)))),t,n)}respondForCreateRecord(e,t,n){return super.respondForCreateRecord(n=>e((e,r)=>(r.Datacenter=t.dc,r.Namespace="*",n(e,a(r)))),t,n)}respondForUpdateRecord(e,t,n){return e((e,t)=>a(t))}}e.default=l})),define("consul-ui/serializers/oidc-provider",["exports","consul-ui/serializers/application","consul-ui/models/oidc-provider"],(function(e,t,n){function r(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class l extends t.default{constructor(...e){super(...e),a(this,"primaryKey",n.PRIMARY_KEY),a(this,"slugKey",n.SLUG_KEY)}respondForAuthorize(e,t,n){return e((e,t)=>this.attachHeaders(e,t,n))}respondForQueryRecord(e,t){return super.respondForQueryRecord(n=>e((e,l)=>n(e,function(e){for(var t=1;te((e,n)=>t(e,n.map(e=>(e.Partition="*",e.Namespace="*",e)))),t)}}e.default=a})),define("consul-ui/serializers/permission",["exports","consul-ui/serializers/application"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{}e.default=n})),define("consul-ui/serializers/policy",["exports","consul-ui/serializers/application","consul-ui/models/policy"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{constructor(...e){super(...e),r(this,"primaryKey",n.PRIMARY_KEY),r(this,"slugKey",n.SLUG_KEY)}}e.default=a})),define("consul-ui/serializers/proxy",["exports","consul-ui/serializers/application","consul-ui/models/proxy"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{constructor(...e){super(...e),r(this,"primaryKey",n.PRIMARY_KEY),r(this,"slugKey",n.SLUG_KEY),r(this,"attrs",{NodeName:"Node"})}}e.default=a})) +define("consul-ui/serializers/role",["exports","consul-ui/serializers/application","consul-ui/models/role","consul-ui/mixins/policy/as-many"],(function(e,t,n,r){function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class l extends(t.default.extend(r.default)){constructor(...e){super(...e),a(this,"primaryKey",n.PRIMARY_KEY),a(this,"slugKey",n.SLUG_KEY)}}e.default=l})),define("consul-ui/serializers/service-instance",["exports","consul-ui/serializers/application","consul-ui/models/service-instance"],(function(e,t,n){function r(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t{switch(t.Status){case"passing":e.ChecksPassing.push(t) +break +case"warning":e.ChecksWarning.push(t) +break +case"critical":e.ChecksCritical.push(t)}return e},{ChecksPassing:[],ChecksWarning:[],ChecksCritical:[]})),{},{Service:t,Checks:r,Node:{Datacenter:e.Datacenter,Namespace:e.Namespace,Partition:e.Partition,ID:e.ID,Node:e.Node,Address:e.Address,TaggedAddresses:e.TaggedAddresses,Meta:e.Meta}}) +return l.uid=this.extractUid(l),l}respondForQuery(e,t){return super.respondForQuery(n=>e((e,r)=>{if(0===r.length){const e=new Error +throw e.errors=[{status:"404",title:"Not found"}],e}return r.forEach(e=>{e.Datacenter=t.dc,e.Namespace=t.ns||"default",e.Partition=t.partition||"default",e.uid=this.extractUid(e)}),n(e,r)}),t)}respondForQueryRecord(e,t){return super.respondForQueryRecord(n=>e((e,r)=>{if(r.forEach(e=>{e.Datacenter=t.dc,e.Namespace=t.ns||"default",e.Partition=t.partition||"default",e.uid=this.extractUid(e)}),void 0===(r=r.find((function(e){return e.Node.Node===t.node&&e.Service.ID===t.serviceId})))){const e=new Error +throw e.errors=[{status:"404",title:"Not found"}],e}return r.Namespace=r.Service.Namespace,r.Partition=r.Service.Partition,n(e,r)}),t)}}e.default=s})),define("consul-ui/serializers/service",["exports","consul-ui/serializers/application","consul-ui/models/service"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{constructor(...e){super(...e),r(this,"primaryKey",n.PRIMARY_KEY),r(this,"slugKey",n.SLUG_KEY)}respondForQuery(e,t){return super.respondForQuery(t=>e((e,n)=>{const r={} +return n.filter((function(e){return"connect-proxy"!==e.Kind})).forEach(e=>{r[e.Name]=e}),n.filter((function(e){return"connect-proxy"===e.Kind})).forEach(e=>{e.ProxyFor&&e.ProxyFor.forEach(t=>{void 0!==r[t]&&(r[t].Proxy=e)})}),t(e,n)}),t)}respondForQueryRecord(e,t){return super.respondForQueryRecord(n=>e((e,r)=>n(e,{Name:t.id,Namespace:Ember.get(r,"firstObject.Service.Namespace"),Nodes:r})),t)}}e.default=a})),define("consul-ui/serializers/session",["exports","consul-ui/serializers/application","consul-ui/models/session"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{constructor(...e){super(...e),r(this,"primaryKey",n.PRIMARY_KEY),r(this,"slugKey",n.SLUG_KEY)}respondForQueryRecord(e,t){return super.respondForQueryRecord(t=>e((e,n)=>{if(0===n.length){const e=new Error +throw e.errors=[{status:"404",title:"Not found"}],e}return t(e,n[0])}),t)}}e.default=a})),define("consul-ui/serializers/token",["exports","consul-ui/serializers/application","consul-ui/models/token","consul-ui/mixins/policy/as-many","consul-ui/mixins/role/as-many"],(function(e,t,n,r,a){function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class s extends(t.default.extend(r.default,a.default)){constructor(...e){super(...e),l(this,"primaryKey",n.PRIMARY_KEY),l(this,"slugKey",n.SLUG_KEY)}serialize(e,t){let n=super.serialize(...arguments) +return null!==n.Rules&&(n={ID:n.SecretID,Name:n.Description,Type:n.Type,Rules:n.Rules}),n&&delete n.SecretID,n}respondForSelf(e,t){return this.respondForQueryRecord(e,t)}respondForUpdateRecord(e,t,n){return super.respondForUpdateRecord(t=>e((e,n)=>{if(void 0!==n.Policies&&null!==n.Policies||(n.Policies=[]),void 0!==n.ID){const e=this.store.peekAll("token").findBy("SecretID",n.ID) +e&&(n.SecretID=n.ID,n.AccessorID=Ember.get(e,"AccessorID"))}return t(e,n)}),t,n)}}e.default=s})),define("consul-ui/serializers/topology",["exports","consul-ui/serializers/application","consul-ui/models/topology"],(function(e,t,n){var r,a,l +function s(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t{e.Intention.SourceName=e.Name,e.Intention.SourceNS=e.Namespace,e.Intention.DestinationName=t.id,e.Intention.DestinationNS=t.ns||"default",r.ensureID(e.Intention)}),l.Upstreams.forEach(e=>{e.Intention.SourceName=t.id,e.Intention.SourceNS=t.ns||"default",e.Intention.DestinationName=e.Name,e.Intention.DestinationNS=e.Namespace,r.ensureID(e.Intention)}),a(e,i(i({},l),{},{[n.SLUG_KEY]:t.id}))}))}),t)}},c=a.prototype,d="store",m=[r],p={configurable:!0,enumerable:!0,writable:!0,initializer:null},b={},Object.keys(p).forEach((function(e){b[e]=p[e]})),b.enumerable=!!b.enumerable,b.configurable=!!b.configurable,("value"in b||b.initializer)&&(b.writable=!0),b=m.slice().reverse().reduce((function(e,t){return t(c,d,e)||e}),b),f&&void 0!==b.initializer&&(b.value=b.initializer?b.initializer.call(f):void 0,b.initializer=void 0),void 0===b.initializer&&(Object.defineProperty(c,d,b),b=null),l=b,a) +var c,d,m,p,f,b +e.default=u})),define("consul-ui/services/-ensure-registered",["exports","@embroider/util/services/ensure-registered"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/-portal",["exports","ember-stargate/services/-portal"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/abilities",["exports","ember-can/services/can"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{parse(e){return super.parse(e.replace("use SSO","use authMethods").replace("service","zervice"))}}e.default=n})),define("consul-ui/services/atob",["exports","consul-ui/utils/atob"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends Ember.Service{execute(){return(0,t.default)(...arguments)}}e.default=n})),define("consul-ui/services/auth-providers/oauth2-code-with-url-provider",["exports","torii/providers/oauth2-code"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{constructor(...e){var t,n,r +super(...e),r="oidc-with-url",(n="name")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}buildUrl(){return this.baseUrl}open(e){const t=this.get("name"),n=this.buildUrl() +return this.get("popup").open(n,["state","code"],e).then((function(e){return{authorizationState:e.state,authorizationCode:decodeURIComponent(e.code),provider:t}}))}close(){const e=this.get("popup.remote")||{} +if("function"==typeof e.close)return e.close()}}e.default=n})),define("consul-ui/services/btoa",["exports","consul-ui/utils/btoa"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends Ember.Service{execute(){return(0,t.default)(...arguments)}}e.default=n})),define("consul-ui/services/can",["exports","ember-can/services/abilities"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/change",["exports","ember-changeset-validations","ember-changeset","consul-ui/utils/form/changeset","consul-ui/validations/intention-permission","consul-ui/validations/intention-permission-http-header"],(function(e,t,n,r,a,l){var s,i,o +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const u={"intention-permission":a.default,"intention-permission-http-header":l.default} +let c=(s=Ember.inject.service("schema"),i=class extends Ember.Service{constructor(...e){var t,n,r,a +super(...e),t=this,n="schema",a=this,(r=o)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}init(){super.init(...arguments),this._validators=new Map}willDestroy(){this._validators=null}changesetFor(e,a,l={}){const s=this.validatorFor(e,l) +let i +if(s){let e=s +"function"!=typeof s&&(e=(0,t.default)(s)),i=(0,n.Changeset)(a,e,s,{changeset:r.default})}else i=(0,n.Changeset)(a) +return i}validatorFor(e,t={}){if(!this._validators.has(e)){const t=u[e] +let n +void 0!==t&&(n=t(this.schema)),this._validators.set(e,n)}return this._validators.get(e)}},d=i.prototype,m="schema",p=[s],f={configurable:!0,enumerable:!0,writable:!0,initializer:null},h={},Object.keys(f).forEach((function(e){h[e]=f[e]})),h.enumerable=!!h.enumerable,h.configurable=!!h.configurable,("value"in h||h.initializer)&&(h.writable=!0),h=p.slice().reverse().reduce((function(e,t){return t(d,m,e)||e}),h),b&&void 0!==h.initializer&&(h.value=h.initializer?h.initializer.call(b):void 0,h.initializer=void 0),void 0===h.initializer&&(Object.defineProperty(d,m,h),h=null),o=h,i) +var d,m,p,f,b,h +e.default=c})),define("consul-ui/services/client/connections",["exports"],(function(e){var t,n,r,a,l,s,i +function o(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let c=(t=Ember.inject.service("dom"),n=Ember.inject.service("env"),r=Ember.inject.service("data-source/service"),a=class extends Ember.Service{constructor(...e){super(...e),o(this,"dom",l,this),o(this,"env",s,this),o(this,"data",i,this)}init(){super.init(...arguments),this._listeners=this.dom.listeners(),this.connections=new Set,this.addVisibilityChange()}willDestroy(){this._listeners.remove(),this.purge(),super.willDestroy(...arguments)}addVisibilityChange(){this._listeners.add(this.dom.document(),{visibilitychange:e=>{e.target.hidden&&this.purge(-1)}})}whenAvailable(e){const t=this.dom.document() +return t.hidden?new Promise(n=>{const r=this._listeners.add(t,{visibilitychange:function(){r(),n(e)}})}):Promise.resolve(e)}purge(e=0){[...this.connections].forEach((function(t){t.abort(e)})),this.connections=new Set}acquire(e){if(this.connections.size>=this.env.var("CONSUL_HTTP_MAX_CONNECTIONS")){const t=this.data.closed() +let n=[...this.connections].find(e=>!!e.headers()["x-request-id"]&&t.includes(e.headers()["x-request-id"])) +void 0===n&&"text/event-stream"===e.headers()["content-type"]&&(n=this.connections.values().next().value),void 0!==n&&(this.release(n),n.abort(429))}this.connections.add(e)}release(e){this.connections.delete(e)}},l=u(a.prototype,"dom",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=u(a.prototype,"env",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i=u(a.prototype,"data",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a) +e.default=c})),define("consul-ui/services/client/http",["exports","consul-ui/utils/http/headers","consul-ui/utils/http/consul","consul-ui/utils/http/create-url","consul-ui/utils/http/create-headers","consul-ui/utils/http/create-query-params"],(function(e,t,n,r,a,l){var s,i,o,u,c,d,m,p,f,b,h,v,y,g,O +function _(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function P(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}function w(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;tx.stringify(this.sanitize(e))) +const e=this.encoder.uriTag() +this.cache=(t,n)=>(t.uri=n(e),t.SyncTime=(new Date).getTime(),this.store.push({data:{id:t.uri,type:new URL(t.uri).protocol.slice(0,-1),attributes:t}}))}sanitize(e){return this.env.var("CONSUL_NSPACES_ENABLED")&&void 0!==e.ns&&null!==e.ns&&""!==e.ns||delete e.ns,this.env.var("CONSUL_PARTITIONS_ENABLED")&&void 0!==e.partition&&null!==e.partition&&""!==e.partition||delete e.partition,e}willDestroy(){this._listeners.remove(),super.willDestroy(...arguments)}url(){return this.parseURL(...arguments)}body(){const e=function(e,...t){let n={} +const r=e.reduce((function(e,t,n){return-1!==(t=t.split("\n").map(e=>e.trim()).join("\n")).indexOf("\n\n")?n:e}),-1) +return-1!==r&&(n=t.splice(r).reduce((function(e,t,n){switch(!0){case Array.isArray(t):return 0===n&&(e=[]),e.concat(t) +case"string"!=typeof t:return E(E({},e),t) +default:return t}}),n)),[n,...t]}(...arguments) +return this.sanitize(e[0]),e}requestParams(e,...n){const[r,...a]=this.body(...arguments),[l,...s]=this.url(e,...a).split(" "),[i,...o]=s.join(" ").split("\n"),u={url:i.trim(),method:l.trim(),headers:E({[t.CONTENT_TYPE]:"application/json; charset=utf-8"},j(o)),body:null,data:r} +if(u.clientHeaders=C.reduce((function(e,t){return void 0!==u.headers[t]&&(e[t.toLowerCase()]=u.headers[t],delete u.headers[t]),e}),{}),void 0!==r)if("GET"!==u.method)-1!==u.headers[t.CONTENT_TYPE].indexOf("json")?u.body=JSON.stringify(u.data):("string"==typeof u.data&&u.data.length>0||Object.keys(u.data).length>0)&&(u.body=u.data) +else{const e=x.stringify(u.data) +e.length>0&&(-1!==u.url.indexOf("?")?u.url=`${u.url}&${e}`:u.url=`${u.url}?${e}`)}return u.headers[t.CONTENT_TYPE]="application/json; charset=utf-8",u}fetchWithToken(e,t){return this.settings.findBySlug("token").then(n=>fetch(""+e,E(E({},t),{},{headers:E({"X-Consul-Token":void 0===n.SecretID?"":n.SecretID},t.headers)})))}request(e){const t=this,r=this.cache +return e((function(e){const a=t.requestParams(...arguments) +return t.settings.findBySlug("token").then(e=>{const l=E(E({},a),{},{headers:E({[n.HEADERS_TOKEN]:void 0===e.SecretID?"":e.SecretID},a.headers)}),s=t.transport.request(l) +return new Promise((l,i)=>{const o=t._listeners.add(s,{open:e=>{t.acquire(e.target)},message:t=>{const s=E(E(E({},Object.entries(t.data.headers).reduce((function(e,[t,n]){return C.includes(t)||(e[t]=n),e}),{})),a.clientHeaders),{},{[n.HEADERS_DATACENTER]:a.data.dc,[n.HEADERS_NAMESPACE]:a.data.ns||e.Namespace||"default",[n.HEADERS_PARTITION]:a.data.partition||e.Partition||"default"}),i=function(e){let n=e(s,t.data.response,r) +const a=n.meta||{} +return 2===a.version&&(Array.isArray(n.body)?n=new Proxy(n.body,{get:(e,t)=>{switch(t){case"meta":return a}return e[t]}}):(n=n.body,n.meta=a)),n} +Ember.run.next(()=>l(i))},error:e=>{Ember.run.next(()=>i(e.error))},close:e=>{t.release(e.target),o()}}) +s.fetch()})})}))}whenAvailable(e){return this.connections.whenAvailable(e)}abort(){return this.connections.purge(...arguments)}acquire(){return this.connections.acquire(...arguments)}release(){return this.connections.release(...arguments)}},f=P(p.prototype,"dom",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=P(p.prototype,"env",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=P(p.prototype,"connections",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=P(p.prototype,"transport",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=P(p.prototype,"settings",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=P(p.prototype,"encoder",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=P(p.prototype,"store",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p) +e.default=S})),define("consul-ui/services/client/transports/xhr",["exports","consul-ui/utils/http/create-headers","consul-ui/utils/http/xhr","consul-ui/utils/http/request","consul-ui/utils/http/error"],(function(e,t,n,r,a){function l(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t(this.xhr(n),t),t}}e.default=u})),define("consul-ui/services/clipboard/local-storage",["exports","clipboard"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class l extends t.default{constructor(e,t,n){super(e,t),this._cb=n}onClick(e){this._cb(this.text(e.delegateTarget||e.currentTarget)),this.emit("success",{})}}let s=(n=Ember.inject.service("-document"),r=class extends Ember.Service{constructor(...e){var t,n,r,l,s,i,o +super(...e),t=this,n="doc",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0}),o="clipboard",(i="key")in(s=this)?Object.defineProperty(s,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):s[i]=o}execute(e,t){return new l(e,t,e=>{this.doc.defaultView.localStorage.setItem(this.key,e)})}},i=r.prototype,o="doc",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/services/clipboard/os",["exports","clipboard"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends Ember.Service{execute(){return new t.default(...arguments)}}e.default=n})),define("consul-ui/services/code-mirror",["exports","ivy-codemirror/services/code-mirror"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/code-mirror/linter",["exports","consul-ui/utils/editor/lint"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const l=[{name:"JSON",mime:"application/json",mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"HCL",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"YAML",mime:"text/x-yaml",mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"XML",mime:"application/xml",mode:"xml",htmlMode:!1,matchClosing:!0,alignCDATA:!1,ext:["xml"],alias:["xml"]}] +let s=(n=Ember.inject.service("dom"),r=class extends Ember.Service{constructor(...e){var t,n,r,l +super(...e),t=this,n="dom",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}modes(){return l}lint(){return(0,t.default)(...arguments)}getEditor(e){return this.dom.element("textarea + div",e).CodeMirror}},i=r.prototype,o="dom",u=[n],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),a=m,r) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/services/container",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class t extends Ember.Service{constructor(e){super(...arguments),this._owner=e,this._wm=new WeakMap}set(e,t){this._wm.set(t,e)}keyForClass(e){return this._wm.get(e)}get(e){return"string"!=typeof e&&(e=this.keyForClass(e)),this.lookup(e)}lookup(e){return this._owner.lookup(e)}resolveRegistration(e){return this._owner.resolveRegistration(e).prototype}}e.default=t})),define("consul-ui/services/data-sink/protocols/http",["exports"],(function(e){var t,n,r,a,l,s,i,o,u,c,d,m,p +function f(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function b(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let h=(t=Ember.inject.service("settings"),n=Ember.inject.service("repository/intention"),r=Ember.inject.service("repository/kv"),a=Ember.inject.service("repository/nspace"),l=Ember.inject.service("repository/partition"),s=Ember.inject.service("repository/session"),i=class extends Ember.Service{constructor(...e){super(...e),f(this,"settings",o,this),f(this,"intention",u,this),f(this,"kv",c,this),f(this,"nspace",d,this),f(this,"partition",m,this),f(this,"session",p,this)}prepare(e,t,n){return Ember.setProperties(n,t)}persist(e,t){const[,,,,n]=e.split("/") +return this[n].persist(t)}remove(e,t){const[,,,,n]=e.split("/") +return this[n].remove(t)}},o=b(i.prototype,"settings",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=b(i.prototype,"intention",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=b(i.prototype,"kv",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=b(i.prototype,"nspace",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=b(i.prototype,"partition",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=b(i.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i) +e.default=h})),define("consul-ui/services/data-sink/protocols/local-storage",["exports"],(function(e){var t,n,r +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let a=(t=Ember.inject.service("settings"),n=class extends Ember.Service{constructor(...e){var t,n,a,l +super(...e),t=this,n="settings",l=this,(a=r)&&Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(l):void 0})}prepare(e,t,n={}){return null===t||""===t?n:Ember.setProperties(n,t)}persist(e,t){const n=e.split(":").pop() +return this.settings.persist({[n]:t})}remove(e,t){const n=e.split(":").pop() +return this.settings.delete(n)}},l=n.prototype,s="settings",i=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(o).forEach((function(e){c[e]=o[e]})),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=i.slice().reverse().reduce((function(e,t){return t(l,s,e)||e}),c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),void 0===c.initializer&&(Object.defineProperty(l,s,c),c=null),r=c,n) +var l,s,i,o,u,c +e.default=a})),define("consul-ui/services/data-sink/service",["exports"],(function(e){var t,n,r,a,l +function s(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const o=function(e){return-1===(e=e.toString()).indexOf("://")&&(e="consul://"+e),e.split("://")} +let u=(t=Ember.inject.service("data-sink/protocols/http"),n=Ember.inject.service("data-sink/protocols/local-storage"),r=class extends Ember.Service{constructor(...e){super(...e),s(this,"consul",a,this),s(this,"settings",l,this)}prepare(e,t,n){const[r,a]=o(e) +return this[r].prepare(a,t,n)}persist(e,t){const[n,r]=o(e) +return this[n].persist(r,t)}remove(e,t){const[n,r]=o(e) +return this[n].remove(r,t)}},a=i(r.prototype,"consul",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=i(r.prototype,"settings",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r) +e.default=u})),define("consul-ui/services/data-source/protocols/http",["exports","consul-ui/decorators/data-source"],(function(e,t){var n,r,a,l,s +function i(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let u=(n=Ember.inject.service("client/http"),r=Ember.inject.service("data-source/protocols/http/blocking"),a=class extends Ember.Service{constructor(...e){super(...e),i(this,"client",l,this),i(this,"type",s,this)}source(e,n){const r=(0,t.match)(e) +let a +return this.client.request(e=>{a=r.cb(r.params,Ember.getOwner(this),e)}),this.type.source(a,n)}},l=o(a.prototype,"client",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=o(a.prototype,"type",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a) +e.default=u})),define("consul-ui/services/data-source/protocols/http/blocking",["exports","consul-ui/utils/dom/event-source","consul-ui/services/settings","consul-ui/services/client/http","consul-ui/utils/maybe-call"],(function(e,t,n,r,a){var l,s,i,o,u +function c(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function d(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let m=(l=Ember.inject.service("client/http"),s=Ember.inject.service("settings"),i=class extends Ember.Service{constructor(...e){super(...e),c(this,"client",o,this),c(this,"settings",u,this)}source(e,l){return new t.BlockingEventSource((t,l)=>{const s=l.close.bind(l) +return(0,a.default)(()=>t.cursor=void 0,(0,n.ifNotBlocking)(this.settings))().then(()=>e(t).then((0,a.default)(s,(0,n.ifNotBlocking)(this.settings))).then((function(e={}){const t=Ember.get(e,"meta")||{} +return void 0===t.cursor&&void 0===t.interval&&s(),e})).catch((0,r.restartWhenAvailable)(this.client)))},l)}},o=d(i.prototype,"client",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=d(i.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i) +e.default=m})),define("consul-ui/services/data-source/protocols/http/promise",["exports","consul-ui/utils/dom/event-source"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends Ember.Service{source(e,n){return(0,t.once)(e,n)}}e.default=n})),define("consul-ui/services/data-source/protocols/local-storage",["exports","consul-ui/utils/dom/event-source"],(function(e,t){var n,r,a +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let l=(n=Ember.inject.service("settings"),r=class extends Ember.Service{constructor(...e){var t,n,r,l +super(...e),t=this,n="repo",l=this,(r=a)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}source(e,n){const r=e.split(":").pop() +return new t.StorageEventSource(()=>this.repo.findBySlug(r),{key:e,uri:n.uri})}},s=r.prototype,i="repo",o=[n],u={configurable:!0,enumerable:!0,writable:!0,initializer:null},d={},Object.keys(u).forEach((function(e){d[e]=u[e]})),d.enumerable=!!d.enumerable,d.configurable=!!d.configurable,("value"in d||d.initializer)&&(d.writable=!0),d=o.slice().reverse().reduce((function(e,t){return t(s,i,e)||e}),d),c&&void 0!==d.initializer&&(d.value=d.initializer?d.initializer.call(c):void 0,d.initializer=void 0),void 0===d.initializer&&(Object.defineProperty(s,i,d),d=null),a=d,r) +var s,i,o,u,c,d +e.default=l})),define("consul-ui/services/data-source/service",["exports","consul-ui/utils/dom/event-source","mnemonist/multi-map"],(function(e,t,n){var r,a,l,s,i,o,u,c,d +function m(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function p(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let f=null,b=null,h=null +class v{constructor(e){this.uri=e}toString(){return this.uri}}let y=(r=Ember.inject.service("dom"),a=Ember.inject.service("encoder"),l=Ember.inject.service("data-source/protocols/http"),s=Ember.inject.service("data-source/protocols/local-storage"),i=class extends Ember.Service{constructor(...e){super(...e),m(this,"dom",o,this),m(this,"encoder",u,this),m(this,"consul",c,this),m(this,"settings",d,this)}init(){super.init(...arguments),f=new Map,b=new Map,h=new n.default(Set),this._listeners=this.dom.listeners()}resetCache(){f=new Map}willDestroy(){Ember.run.schedule("afterRender",()=>{this._listeners.remove(),b.forEach((function(e){e.close()})),f=null,b=null,h.clear(),h=null})}source(e,n){const r=e(this.encoder.uriTag()) +return new Promise((e,n)=>{const a={},l=this.open(r,a,!0) +l.configuration.ref=a +const s=this._listeners.add(l,{message:n=>{s(),e((0,t.proxy)(n.target,n.data))},error:e=>{s(),this.close(l,a),n(e.error)}}) +void 0!==l.getCurrentEvent()&&l.dispatchEvent(l.getCurrentEvent())})}unwrap(e,t){const n=e._source +return h.set(n,t),h.remove(n,n.configuration.ref),delete n.configuration.ref,n}uri(e){return new v(e)}open(e,t,n=!1){if(!(e instanceof v)&&"string"!=typeof e)return this.unwrap(e,t) +let r;-1===(e=e.toString()).indexOf("://")&&(e="consul://"+e) +let[a,l]=e.split("://") +const s=this[a] +if(b.has(e))r=b.get(e),b.delete(e),b.set(e,r) +else{let t={} +f.has(e)&&(t=f.get(e)),t.uri=e,r=s.source(l,t) +const n=this._listeners.add(r,{close:t=>{const r=t.target,a=r.getCurrentEvent(),l=r.configuration.cursor +void 0!==a&&void 0!==l&&t.errors&&"401"!==t.errors[0].status&&f.set(e,{currentEvent:a,cursor:l}),h.has(r)||b.delete(e),n()}}) +b.set(e,r)}return(!h.has(r)||r.readyState>1||n)&&r.open(),h.set(r,t),r}close(e,t){e&&(h.remove(e,t),h.has(e)||(e.close(),2===e.readyState&&b.delete(e.configuration.uri)))}closed(){return[...b.entries()].filter(([e,t])=>t.readyState>1).map(e=>e[0])}},o=p(i.prototype,"dom",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=p(i.prototype,"encoder",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=p(i.prototype,"consul",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=p(i.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i) +e.default=y})) +define("consul-ui/services/data-structs",["exports","ngraph.graph"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends Ember.Service{graph(){return(0,t.default)()}}e.default=n})),define("consul-ui/services/dom",["exports","consul-ui/utils/dom/qsa-factory","consul-ui/utils/dom/sibling","consul-ui/utils/dom/closest","consul-ui/utils/dom/is-outside","consul-ui/utils/dom/get-component-factory","consul-ui/utils/dom/normalize-event","consul-ui/utils/dom/create-listeners","consul-ui/utils/dom/click-first-anchor"],(function(e,t,n,r,a,l,s,i,o){var u,c,d +function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const p=(0,t.default)() +let f,b +const h=(0,o.default)(r.default) +let v=(u=Ember.inject.service("-document"),c=class extends Ember.Service{constructor(e){var t,o,u,c +super(...arguments),t=this,o="doc",c=this,(u=d)&&Object.defineProperty(t,o,{enumerable:u.enumerable,configurable:u.configurable,writable:u.writable,value:u.initializer?u.initializer.call(c):void 0}),m(this,"clickFirstAnchor",h),m(this,"closest",r.default),m(this,"sibling",n.default),m(this,"isOutside",a.default),m(this,"normalizeEvent",s.default),m(this,"listeners",i.default),b=new WeakMap,f=(0,l.default)(e)}willDestroy(){super.willDestroy(...arguments),b=null,f=null}document(){return this.doc}viewport(){return this.doc.defaultView}guid(e){return Ember.guidFor(e)}focus(e){if("string"==typeof e&&(e=this.element(e)),void 0!==e){let t=e.getAttribute("tabindex") +e.setAttribute("tabindex","0"),e.focus(),null===t?e.removeAttribute("tabindex"):e.setAttribute("tabindex",t)}}setEventTargetProperty(e,t,n){const r=e.target +return new Proxy(e,{get:function(a,l,s){return"target"===l?new Proxy(r,{get:function(a,l){return l===t?n(e.target[t]):r[l]}}):Reflect.get(...arguments)}})}setEventTargetProperties(e,t){const n=e.target +return new Proxy(e,{get:function(r,a,l){return"target"===a?new Proxy(n,{get:function(r,a){return void 0!==t[a]?t[a](e.target):n[a]}}):Reflect.get(...arguments)}})}root(){return this.doc.documentElement}elementById(e){return this.doc.getElementById(e)}elementsByTagName(e,t){return(t=void 0===t?this.doc:t).getElementsByTagName(e)}elements(e,t){return p(e,t)}element(e,t){return"#"===e.substr(0,1)?this.elementById(e.substr(1)):[...p(e,t)][0]}component(e,t){return f("string"!=typeof e?e:this.element(e,t))}components(e,t){return[...this.elements(e,t)].map((function(e){return f(e)})).filter((function(e){return null!=e}))}isInViewport(e,t,n=0){b.set(e,t) +let r=new IntersectionObserver(e=>{e.map(e=>{const t=b.get(e.target) +"function"==typeof t&&t(e.isIntersecting)})},{rootMargin:"0px",threshold:n}) +return r.observe(e),()=>{r.unobserve(e),b&&b.delete(e),r.disconnect(),r=null}}},y=c.prototype,g="doc",O=[u],_={configurable:!0,enumerable:!0,writable:!0,initializer:null},w={},Object.keys(_).forEach((function(e){w[e]=_[e]})),w.enumerable=!!w.enumerable,w.configurable=!!w.configurable,("value"in w||w.initializer)&&(w.writable=!0),w=O.slice().reverse().reduce((function(e,t){return t(y,g,e)||e}),w),P&&void 0!==w.initializer&&(w.value=w.initializer?w.initializer.call(P):void 0,w.initializer=void 0),void 0===w.initializer&&(Object.defineProperty(y,g,w),w=null),d=w,c) +var y,g,O,_,P,w +e.default=v})),define("consul-ui/services/encoder",["exports","consul-ui/utils/atob","consul-ui/utils/btoa"],(function(e,t,n){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends Ember.Service{constructor(...e){super(...e),r(this,"uriComponent",encodeURIComponent),r(this,"joiner",(e,t="",n="")=>(r,a)=>(a||Array(r.length).fill(t)).reduce((t,a,l)=>`${t}${a}${e(r[l]||n)}`,""))}createRegExpEncoder(e,t){return function(e,t=(e=>e)){return(n="",r={})=>""!==n?n.replace(e,(e,n)=>{const a=Ember.get(r,n) +return t(a||"")}):""}(e,t)}atob(){return(0,t.default)(...arguments)}btoa(){return(0,n.default)(...arguments)}uriJoin(){return this.joiner(this.uriComponent,"/","")(...arguments)}uriTag(){return this.tag(this.uriJoin.bind(this))}tag(e){return(t,...n)=>e(n,t)}}e.default=a})),define("consul-ui/services/env",["exports","consul-ui/env"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends Ember.Service{env(e){return this.var(e)}var(e){return(0,t.env)(e)}}e.default=n})),define("consul-ui/services/feedback",["exports","consul-ui/utils/callable-type"],(function(e,t){var n,r,a,l,s +function i(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;tthis.success(n,e,void 0,t),error:n=>this.error(n,e,void 0,t)}}success(e,n,r=m,a){const l=(0,t.default)(n),s=(0,t.default)(r) +!1!==e&&(this.notify.clearMessages(),this.notify.add(o(o({},{timeout:6e3,extendedTimeout:300,destroyOnClick:!0}),{},{type:s("success"),action:l(),item:e,model:a})))}error(e,n,r=m,a){const l=(0,t.default)(n),s=(0,t.default)(r) +this.notify.clearMessages(),this.logger.execute(e),"TransitionAborted"===e.name?this.notify.add(o(o({},{timeout:6e3,extendedTimeout:300,destroyOnClick:!0}),{},{type:s("success"),action:l(),model:a})):this.notify.add(o(o({},{timeout:6e3,extendedTimeout:300,destroyOnClick:!0}),{},{type:s("error",e),action:l(),error:e,model:a}))}async execute(e,t,n,r){let a +try{a=await e(),this.success(a,t,n,r)}catch(l){this.error(l,t,n,r)}}},l=d(a.prototype,"notify",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=d(a.prototype,"logger",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a) +e.default=p})),define("consul-ui/services/filter",["exports","consul-ui/utils/filter","consul-ui/filter/predicates/service","consul-ui/filter/predicates/service-instance","consul-ui/filter/predicates/health-check","consul-ui/filter/predicates/node","consul-ui/filter/predicates/kv","consul-ui/filter/predicates/intention","consul-ui/filter/predicates/token","consul-ui/filter/predicates/policy","consul-ui/filter/predicates/auth-method"],(function(e,t,n,r,a,l,s,i,o,u,c){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const d={service:(0,t.andOr)(n.default),"service-instance":(0,t.andOr)(r.default),"health-check":(0,t.andOr)(a.default),"auth-method":(0,t.andOr)(c.default),node:(0,t.andOr)(l.default),kv:(0,t.andOr)(s.default),intention:(0,t.andOr)(i.default),token:(0,t.andOr)(o.default),policy:(0,t.andOr)(u.default)} +class m extends Ember.Service{predicate(e){return d[e]}}e.default=m})),define("consul-ui/services/flash-messages",["exports","ember-cli-flash/services/flash-messages"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/form",["exports","consul-ui/utils/form/builder","consul-ui/forms/kv","consul-ui/forms/token","consul-ui/forms/policy","consul-ui/forms/role","consul-ui/forms/intention"],(function(e,t,n,r,a,l,s){var i,o,u,c,d +function m(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function p(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const f=(0,t.default)(),b={kv:n.default,token:r.default,policy:a.default,role:l.default,intention:s.default} +let h=(i=Ember.inject.service("repository/role"),o=Ember.inject.service("repository/policy"),u=class extends Ember.Service{constructor(...e){var t,n,r +super(...e),m(this,"role",c,this),m(this,"policy",d,this),r=[],(n="forms")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}build(e,t){return f(...arguments)}form(e){let t=this.forms[e] +if(void 0===t&&(t=this.forms[e]=b[e](this),"role"===e||"policy"===e)){const n=this[e] +t.clear((function(e){return n.create(e)})),t.submit((function(e){return n.persist(e)}))}return t}},c=p(u.prototype,"role",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=p(u.prototype,"policy",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u) +e.default=h})),define("consul-ui/services/i18n",["exports","ember-intl/services/intl"],(function(e,t){var n,r,a +function l(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t(e[t]=this.env.var(t),e),{}) +return s(s({},e),t)}},c=r.prototype,d="env",m=[n],p={configurable:!0,enumerable:!0,writable:!0,initializer:null},b={},Object.keys(p).forEach((function(e){b[e]=p[e]})),b.enumerable=!!b.enumerable,b.configurable=!!b.configurable,("value"in b||b.initializer)&&(b.writable=!0),b=m.slice().reverse().reduce((function(e,t){return t(c,d,e)||e}),b),f&&void 0!==b.initializer&&(b.value=b.initializer?b.initializer.call(f):void 0,b.initializer=void 0),void 0===b.initializer&&(Object.defineProperty(c,d,b),b=null),a=b,r) +var c,d,m,p,f,b +e.default=u})),define("consul-ui/services/in-viewport",["exports","ember-in-viewport/services/in-viewport"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/intl",["exports","ember-intl/services/intl"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/logger",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class t extends Ember.Service{execute(e){}}e.default=t})),define("consul-ui/services/page-title-list",["exports","ember-page-title/services/page-title-list"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/page-title",["exports","ember-page-title/services/page-title"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/popup",["exports","torii/services/popup"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/repository",["exports","validated-changeset","consul-ui/utils/http/error","consul-ui/abilities/base"],(function(e,t,n,r){var a,l,s,i,o,u,c +function d(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function m(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.softDelete=void 0 +e.softDelete=(e,t)=>e.store.adapterFor(e.getModelName()).rpc((e,t,n,r)=>e.requestForDeleteRecord(t,n,r),()=>t,t,e.getModelName()) +let p=(a=Ember.inject.service("store"),l=Ember.inject.service("env"),s=Ember.inject.service("repository/permission"),i=class extends Ember.Service{constructor(...e){super(...e),d(this,"store",o,this),d(this,"env",u,this),d(this,"permissions",c,this)}getModelName(){}getPrimaryKey(){}getSlugKey(){}async authorizeBySlug(e,t,n){return n.resources=await this.permissions.findBySlug(n,this.getModelName()),this.validatePermissions(e,t,n)}async authorizeByPermissions(e,t,n){return n.resources=await this.permissions.authorize(n),this.validatePermissions(e,t,n)}async validatePermissions(e,t,r){if(r.resources.length>0){const e=r.resources.find(e=>e.Access===t) +if(e&&!1===e.Allow){const e=new n.default(403) +throw e.errors=[{status:"403"}],e}}const a=await e(r.resources) +return Ember.get(a,"Resources")&&Ember.set(a,"Resources",r.resources),a}shouldReconcile(e,t){if(Ember.get(e,"Datacenter")!==t.dc)return!1 +if(this.env.var("CONSUL_NSPACES_ENABLED")){const n=Ember.get(e,"Namespace") +if(void 0!==n&&n!==t.ns)return!1}if(this.env.var("CONSUL_PARTITIONS_ENABLED")){const n=Ember.get(e,"Partition") +if(void 0!==n&&n!==t.partition)return!1}return!0}reconcile(e={},t={},n={}){void 0!==e.date&&this.store.peekAll(this.getModelName()).forEach(n=>{const r=Ember.get(n,"SyncTime") +!n.isDeleted&&void 0!==r&&r!=e.date&&this.shouldReconcile(n,t)&&this.store.unloadRecord(n)})}peekOne(e){return this.store.peekRecord(this.getModelName(),e)}peekAll(){return this.store.peekAll(this.getModelName())}cached(e){const t=Object.entries(e) +return this.store.peekAll(this.getModelName()).filter(e=>t.every(([t,n])=>e[t]===n))}async findAllByDatacenter(e,t={}){return this.findAll(...arguments)}async findAll(e={},t={}){return void 0!==t.cursor&&(e.index=t.cursor,e.uri=t.uri),this.query(e)}async query(e={},t={}){let n,r,a +try{a=await this.store.query(this.getModelName(),e),r=a.meta}catch(l){switch(Ember.get(l,"errors.firstObject.status")){case"404":case"403":r={date:Number.POSITIVE_INFINITY},n=l +break +default:throw l}}if(void 0!==r&&this.reconcile(r,e,t),void 0!==n)throw n +return a}async findBySlug(e,t={}){return""===e.id?this.create({Datacenter:e.dc,Namespace:e.ns,Partition:e.partition}):(void 0!==t.cursor&&(e.index=t.cursor,e.uri=t.uri),this.authorizeBySlug(()=>this.store.queryRecord(this.getModelName(),e),r.ACCESS_READ,e))}create(e){return this.store.createRecord(this.getModelName(),e)}persist(e){return(0,t.isChangeset)(e)&&(e.execute(),e=e.data),Ember.set(e,"SyncTime",void 0),e.save()}remove(e){let t=e +return void 0===e.destroyRecord&&(t=e.get("data")),"object"===Ember.typeOf(t)&&(t=this.store.peekRecord(this.getModelName(),t[this.getPrimaryKey()])),t.destroyRecord().then(e=>this.store.unloadRecord(e))}invalidate(){this.store.unloadAll(this.getModelName())}},o=m(i.prototype,"store",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=m(i.prototype,"env",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=m(i.prototype,"permissions",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i) +e.default=p})),define("consul-ui/services/repository/auth-method",["exports","consul-ui/services/repository","consul-ui/models/auth-method","consul-ui/decorators/data-source"],(function(e,t,n,r){var a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let o=(a=(0,r.default)("/:partition/:ns/:dc/auth-methods"),l=(0,r.default)("/:partition/:ns/:dc/auth-method/:id"),i((s=class extends t.default{getModelName(){return"auth-method"}getPrimaryKey(){return n.PRIMARY_KEY}getSlugKey(){return n.SLUG_KEY}async findAllByDatacenter(){return super.findAllByDatacenter(...arguments)}async findBySlug(){return super.findBySlug(...arguments)}}).prototype,"findAllByDatacenter",[a],Object.getOwnPropertyDescriptor(s.prototype,"findAllByDatacenter"),s.prototype),i(s.prototype,"findBySlug",[l],Object.getOwnPropertyDescriptor(s.prototype,"findBySlug"),s.prototype),s) +e.default=o})),define("consul-ui/services/repository/binding-rule",["exports","consul-ui/services/repository","consul-ui/models/binding-rule","consul-ui/decorators/data-source"],(function(e,t,n,r){var a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(a=(0,r.default)("/:partition/:ns/:dc/binding-rules/for-auth-method/:authmethod"),l=class extends t.default{getModelName(){return"binding-rule"}getPrimaryKey(){return n.PRIMARY_KEY}getSlugKey(){return n.SLUG_KEY}async findAllByAuthMethod(){return super.findAll(...arguments)}},i=l.prototype,o="findAllByAuthMethod",u=[a],c=Object.getOwnPropertyDescriptor(l.prototype,"findAllByAuthMethod"),d=l.prototype,m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),l) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/services/repository/coordinate",["exports","consul-ui/services/repository","consul-ui/decorators/data-source","consul-ui/utils/tomography","consul-ui/utils/distance"],(function(e,t,n,r,a){var l,s,i +function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const u=(0,r.default)(a.default) +let c=(l=(0,n.default)("/:partition/:ns/:dc/coordinates"),s=(0,n.default)("/:partition/:ns/:dc/coordinates/for-node/:id"),o((i=class extends t.default{getModelName(){return"coordinate"}async findAllByDatacenter(e,t={}){return void 0!==t.cursor&&(e.index=t.cursor,e.uri=t.uri),this.store.query(this.getModelName(),e)}async findAllByNode(e,t){const n=await this.findAllByDatacenter(e,t) +let r={} +return n.length>1&&(r=u(e.id,n)),r.meta=n.meta,r}}).prototype,"findAllByDatacenter",[l],Object.getOwnPropertyDescriptor(i.prototype,"findAllByDatacenter"),i.prototype),o(i.prototype,"findAllByNode",[s],Object.getOwnPropertyDescriptor(i.prototype,"findAllByNode"),i.prototype),i) +e.default=c})),define("consul-ui/services/repository/dc",["exports","consul-ui/services/repository","consul-ui/decorators/data-source","consul-ui/utils/http/consul"],(function(e,t,n,r){var a,l,s,i,o,u,c +function d(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}function m(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t{const l=Object.entries(e).find(([e,t])=>e.toLowerCase()===r.HEADERS_DEFAULT_ACL_POLICY.toLowerCase())[1]||"allow" +return{meta:{version:2,uri:a},body:t.map(e=>n({Name:e,Datacenter:"",Local:e===s,Primary:e===i,DefaultACLPolicy:l},t=>t`${"dc"}:///${""}/${""}/${e}/datacenter`))}})}async fetch({partition:e,ns:t,dc:n},{uri:r},a){return(await(a` + GET /v1/operator/autopilot/state?${{dc:n}} + X-Request-ID: ${r} + `))((e,t,a)=>{const l=Object.values(t.Servers),s=[] +return{meta:{version:2,uri:r},body:a(p(p({},t),{},{Servers:l,RedundancyZones:Object.entries(t.RedundancyZones||{}).map(([e,n])=>p(p({},n),{},{Name:e,Healthy:!0,Servers:n.Servers.reduce((e,n)=>{const r=t.Servers[n] +return s.push(r.ID),e.push(r),e},[])})),ReadReplicas:(t.ReadReplicas||[]).map(e=>(s.push(e),t.Servers[e])),Default:{Servers:l.filter(e=>!s.includes(e.ID))}}),e=>e`${"dc"}:///${""}/${""}/${n}/datacenter`)}})}async fetchCatalogHealth({partition:e,ns:t,dc:n},{uri:r},a){return(await(a` + GET /v1/internal/ui/catalog-overview?${{dc:n,stale:null}} + X-Request-ID: ${r} + `))((e,t)=>{const a=["Nodes","Services","Checks"].reduce((e,n)=>((e,t,n)=>t[n].reduce((e,t)=>(["Partition","Namespace"].forEach(r=>{let a=e[r][t[r]] +void 0===a&&(a=e[r][t[r]]={Name:t[r]}),void 0===a[n]&&(a[n]=p({},b)),a[n].Total+=t.Total,a[n].Passing+=t.Passing,a[n].Warning+=t.Warning,a[n].Critical+=t.Critical}),e.Datacenter[n].Total+=t.Total,e.Datacenter[n].Passing+=t.Passing,e.Datacenter[n].Warning+=t.Warning,e.Datacenter[n].Critical+=t.Critical,e),e))(e,t,n),{Datacenter:{Name:n,Nodes:p({},b),Services:p({},b),Checks:p({},b)},Partition:{},Namespace:{}}) +return{meta:{version:2,uri:r,interval:3e4},body:p({Datacenter:a.Datacenter,Partitions:Object.values(a.Partition),Namespaces:Object.values(a.Namespace)},t)}})}async find(e){const t=this.store.peekAll("dc").findBy("Name",e.name) +if(void 0===t){const e=new Ember.Error("Page not found") +throw e.status="404",{errors:[e]}}return t}},c=d(u.prototype,"env",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d(u.prototype,"fetchAll",[l],Object.getOwnPropertyDescriptor(u.prototype,"fetchAll"),u.prototype),d(u.prototype,"fetch",[s],Object.getOwnPropertyDescriptor(u.prototype,"fetch"),u.prototype),d(u.prototype,"fetchCatalogHealth",[i],Object.getOwnPropertyDescriptor(u.prototype,"fetchCatalogHealth"),u.prototype),d(u.prototype,"find",[o],Object.getOwnPropertyDescriptor(u.prototype,"find"),u.prototype),u) +e.default=h})),define("consul-ui/services/repository/discovery-chain",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let o=(r=Ember.inject.service("repository/dc"),a=(0,n.default)("/:partition/:ns/:dc/discovery-chain/:id"),l=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="dcs",a=this,(r=s)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}getModelName(){return"discovery-chain"}findBySlug(e,t={}){const n=this.dcs.peekAll().findBy("Name",e.dc) +return void 0===n||Ember.get(n,"MeshEnabled")?super.findBySlug(...arguments).catch(e=>{const t=Ember.get(e,"errors.firstObject.status"),r=(Ember.get(e,"errors.firstObject.detail")||"").trim() +switch(t){case"500":return void(void 0!==n&&r.endsWith("Connect must be enabled in order to use this endpoint")&&Ember.set(n,"MeshEnabled",!1)) +default:throw e}}):Promise.resolve()}},s=i(l.prototype,"dcs",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i(l.prototype,"findBySlug",[a],Object.getOwnPropertyDescriptor(l.prototype,"findBySlug"),l.prototype),l) +e.default=o})),define("consul-ui/services/repository/intention-permission-http-header",["exports","consul-ui/services/repository"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{getModelName(){return"intention-permission-http-header"}create(e={}){return this.store.createFragment(this.getModelName(),e)}persist(e){return e.execute()}}e.default=n})),define("consul-ui/services/repository/intention-permission",["exports","consul-ui/services/repository"],(function(e,t){function n(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;te.IsManagedByCRD)),this.managedByCRDs}async authorizeBySlug(e,t,n){const[,r,,a]=n.id.split(":"),l=this.permissions.abilityFor(this.getModelName()) +return n.resources=l.generateForSegment(r).concat(l.generateForSegment(a)),this.authorizeByPermissions(e,t,n)}async persist(e){const t=await super.persist(...arguments) +return Ember.get(t,"Action.length")&&Ember.set(t,"Permissions",[]),t}async findAll(){return super.findAll(...arguments)}async findBySlug(e){let t +if(""===e.id){const n=this.env.var("CONSUL_NSPACES_ENABLED")?"*":"default",r="default" +t=await this.create({SourceNS:e.nspace||n,DestinationNS:e.nspace||n,SourcePartition:e.partition||r,DestinationPartition:e.partition||r,Datacenter:e.dc,Partition:e.partition})}else t=super.findBySlug(...arguments) +return t}async findByService(e,t={}){const n={dc:e.dc,nspace:e.nspace,filter:`SourceName == "${e.id}" or DestinationName == "${e.id}" or SourceName == "*" or DestinationName == "*"`} +return void 0!==t.cursor&&(n.index=t.cursor,n.uri=t.uri),this.store.query(this.getModelName(),n)}},u=m(o.prototype,"env",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(o.prototype,"findAll",[l],Object.getOwnPropertyDescriptor(o.prototype,"findAll"),o.prototype),m(o.prototype,"findBySlug",[s],Object.getOwnPropertyDescriptor(o.prototype,"findBySlug"),o.prototype),m(o.prototype,"findByService",[i],Object.getOwnPropertyDescriptor(o.prototype,"findByService"),o.prototype),o) +e.default=p})),define("consul-ui/services/repository/kv",["exports","consul-ui/services/repository","consul-ui/utils/isFolder","consul-ui/models/kv","consul-ui/decorators/data-source"],(function(e,t,n,r,a){var l,s,i +function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let u=(l=(0,a.default)("/:partition/:ns/:dc/kv/:id"),s=(0,a.default)("/:partition/:ns/:dc/kvs/:id"),o((i=class extends t.default{getModelName(){return"kv"}getPrimaryKey(){return r.PRIMARY_KEY}shouldReconcile(e,t){return super.shouldReconcile(...arguments)&&e.Key.startsWith(t.id)}async findBySlug(e,t={}){let r +if((0,n.default)(e.id)){const t=JSON.stringify([e.partition,e.ns,e.dc,e.id]) +r=this.store.peekRecord(this.getModelName(),t),r||(r=await this.create({Key:e.id,Datacenter:e.dc,Namespace:e.ns,Partition:e.partition}))}else r=""===e.id?await this.create({Datacenter:e.dc,Namespace:e.ns,Partition:e.partition}):await super.findBySlug(...arguments) +return r}async findAllBySlug(e,t={}){e.separator="/","/"===e.id&&(e.id="") +let n=await this.findAll(...arguments) +const r=n.meta +return n=n.filter(t=>e.id!==Ember.get(t,"Key")),n.meta=r,n}}).prototype,"findBySlug",[l],Object.getOwnPropertyDescriptor(i.prototype,"findBySlug"),i.prototype),o(i.prototype,"findAllBySlug",[s],Object.getOwnPropertyDescriptor(i.prototype,"findAllBySlug"),i.prototype),i) +e.default=u})),define("consul-ui/services/repository/license",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a +function l(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t({meta:{version:2,uri:r,interval:3e4},body:s(o(l,{dc:n}),r=>r`${"license"}:///${e}/${t}/${n}/license/${l.License.license_id}`)}))}},c=a.prototype,d="find",m=[r],p=Object.getOwnPropertyDescriptor(a.prototype,"find"),f=a.prototype,b={},Object.keys(p).forEach((function(e){b[e]=p[e]})),b.enumerable=!!b.enumerable,b.configurable=!!b.configurable,("value"in b||b.initializer)&&(b.writable=!0),b=m.slice().reverse().reduce((function(e,t){return t(c,d,e)||e}),b),f&&void 0!==b.initializer&&(b.value=b.initializer?b.initializer.call(f):void 0,b.initializer=void 0),void 0===b.initializer&&(Object.defineProperty(c,d,b),b=null),a) +var c,d,m,p,f,b +e.default=u})),define("consul-ui/services/repository/metrics",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a,l,s,i,o,u,c,d,m +function p(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function f(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let b=(r=Ember.inject.service("ui-config"),a=Ember.inject.service("env"),l=Ember.inject.service("client/http"),s=(0,n.default)("/:partition/:ns/:dc/metrics/summary-for-service/:slug/:protocol"),i=(0,n.default)("/:partition/:ns/:dc/metrics/upstream-summary-for-service/:slug/:protocol"),o=(0,n.default)("/:partition/:ns/:dc/metrics/downstream-summary-for-service/:slug/:protocol"),u=class extends t.default{constructor(...e){var t,n,r +super(...e),p(this,"config",c,this),p(this,"env",d,this),p(this,"client",m,this),r=null,(n="error")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}getModelName(){return"metrics"}init(){super.init(...arguments) +const e=this.config.getSync(),t=e.metrics_provider_options||{} +t.metrics_proxy_enabled=e.metrics_proxy_enabled +const n=e.metrics_provider||"prometheus" +t.fetch=(e,t)=>this.client.fetchWithToken("/v1/internal/ui/metrics-proxy"+e,t) +try{this.provider=window.consul.getMetricsProvider(n,t)}catch(r){this.error=new Error("metrics provider not initialized: "+r),console.error(this.error)}}findServiceSummary(e,t={}){if(this.error)return Promise.reject(this.error) +const n=[this.provider.serviceRecentSummarySeries(e.slug,e.dc,e.ns,e.protocol,{}),this.provider.serviceRecentSummaryStats(e.slug,e.dc,e.ns,e.protocol,{})] +return Promise.all(n).then(e=>({meta:{interval:this.env.var("CONSUL_METRICS_POLL_INTERVAL")||1e4},series:e[0],stats:e[1].stats}))}findUpstreamSummary(e,t={}){return this.error?Promise.reject(this.error):this.provider.upstreamRecentSummaryStats(e.slug,e.dc,e.ns,{}).then(e=>(e.meta={interval:this.env.var("CONSUL_METRICS_POLL_INTERVAL")||1e4},e))}findDownstreamSummary(e,t={}){return this.error?Promise.reject(this.error):this.provider.downstreamRecentSummaryStats(e.slug,e.dc,e.ns,{}).then(e=>(e.meta={interval:this.env.var("CONSUL_METRICS_POLL_INTERVAL")||1e4},e))}},c=f(u.prototype,"config",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=f(u.prototype,"env",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=f(u.prototype,"client",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f(u.prototype,"findServiceSummary",[s],Object.getOwnPropertyDescriptor(u.prototype,"findServiceSummary"),u.prototype),f(u.prototype,"findUpstreamSummary",[i],Object.getOwnPropertyDescriptor(u.prototype,"findUpstreamSummary"),u.prototype),f(u.prototype,"findDownstreamSummary",[o],Object.getOwnPropertyDescriptor(u.prototype,"findDownstreamSummary"),u.prototype),u) +e.default=b})),define("consul-ui/services/repository/node",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let o=(r=(0,n.default)("/:partition/:ns/:dc/nodes"),a=(0,n.default)("/:partition/:ns/:dc/node/:id"),l=(0,n.default)("/:partition/:ns/:dc/leader"),i((s=class extends t.default{getModelName(){return"node"}async findAllByDatacenter(){return super.findAllByDatacenter(...arguments)}async findBySlug(){return super.findBySlug(...arguments)}findLeader(e,t={}){return void 0!==t.refresh&&(e.uri=t.uri),this.store.queryLeader(this.getModelName(),e)}}).prototype,"findAllByDatacenter",[r],Object.getOwnPropertyDescriptor(s.prototype,"findAllByDatacenter"),s.prototype),i(s.prototype,"findBySlug",[a],Object.getOwnPropertyDescriptor(s.prototype,"findBySlug"),s.prototype),i(s.prototype,"findLeader",[l],Object.getOwnPropertyDescriptor(s.prototype,"findLeader"),s.prototype),s) +e.default=o})),define("consul-ui/services/repository/nspace",["exports","consul-ui/services/repository","consul-ui/models/nspace","consul-ui/decorators/data-source","consul-ui/utils/form/builder"],(function(e,t,n,r,a){var l,s,i,o,u,c,d,m,p,f,b,h,v,y,g +function O(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function _(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let P=(l=Ember.inject.service("router"),s=Ember.inject.service("container"),i=Ember.inject.service("env"),o=Ember.inject.service("form"),u=Ember.inject.service("settings"),c=Ember.inject.service("repository/permission"),d=(0,r.default)("/:partition/:ns/:dc/namespaces"),m=(0,r.default)("/:partition/:ns/:dc/namespace/:id"),p=class extends t.default{constructor(...e){super(...e),O(this,"router",f,this),O(this,"container",b,this),O(this,"env",h,this),O(this,"form",v,this),O(this,"settings",y,this),O(this,"permissions",g,this)}getPrimaryKey(){return n.PRIMARY_KEY}getSlugKey(){return n.SLUG_KEY}getModelName(){return"nspace"}async findAll(){return this.permissions.can("use nspaces")?super.findAll(...arguments).catch(()=>[]):[]}async findBySlug(e){let t +return t=""===e.id?await this.create({Datacenter:e.dc,Partition:e.partition,ACLs:{PolicyDefaults:[],RoleDefaults:[]}}):await super.findBySlug(...arguments),(0,a.defaultChangeset)(t)}remove(e){return(0,t.softDelete)(this,e)}authorize(e,t){return this.env.var("CONSUL_ACLS_ENABLED")?this.store.authorize(this.getModelName(),{dc:e,ns:t}).catch((function(){return[]})):Promise.resolve([{Resource:"operator",Access:"write",Allow:!0}])}async getActive(e=""){if(this.permissions.can("use nspaces"))return{Name:"default"} +const t=this.store.peekAll("nspace").toArray() +if(0===e.length){e=(await this.settings.findBySlug("token")).Namespace||"default"}return 1===t.length?t[0]:function(e,t){let n=e.find((function(e){return e.Name===t.Name})) +return void 0===n&&(n=e.find((function(e){return"default"===e.Name})),void 0===n&&(n=e[0])),n}(t,{Name:e})}},f=_(p.prototype,"router",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=_(p.prototype,"container",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=_(p.prototype,"env",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=_(p.prototype,"form",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=_(p.prototype,"settings",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=_(p.prototype,"permissions",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_(p.prototype,"findAll",[d],Object.getOwnPropertyDescriptor(p.prototype,"findAll"),p.prototype),_(p.prototype,"findBySlug",[m],Object.getOwnPropertyDescriptor(p.prototype,"findBySlug"),p.prototype),p) +e.default=P})),define("consul-ui/services/repository/oidc-provider",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a,l,s,i,o,u,c +function d(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function m(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let p=(r=Ember.inject.service("torii"),a=Ember.inject.service("settings"),l=(0,n.default)("/:partition/:ns/:dc/oidc/providers"),s=(0,n.default)("/:partition/:ns/:dc/oidc/provider/:id"),i=(0,n.default)("/:partition/:ns/:dc/oidc/authorize/:id/:code/:state"),o=class extends t.default{constructor(...e){super(...e),d(this,"manager",u,this),d(this,"settings",c,this)}init(){super.init(...arguments),this.provider=Ember.getOwner(this).lookup("torii-provider:oidc-with-url")}getModelName(){return"oidc-provider"}async findAllByDatacenter(){const e=await super.findAllByDatacenter(...arguments) +if(0===e.length){const e=new Error("Not found") +return e.statusCode=404,void this.store.adapterFor(this.getModelName()).error(e)}return e}async findBySlug(e){const t=await this.settings.findBySlug("token")||{} +return super.findBySlug({ns:e.ns||t.Namespace||"default",partition:e.partition||t.Partition||"default",dc:e.dc,id:e.id})}authorize(e,t={}){return this.store.authorize(this.getModelName(),e)}logout(e,t,n,r,a,l={}){const s={id:e} +return this.store.logout(this.getModelName(),s)}close(){this.manager.close("oidc-with-url")}findCodeByURL(e){return Ember.set(this.provider,"baseUrl",e),this.manager.open("oidc-with-url",{}).catch(e=>{let t +switch(!0){case e.message.startsWith("remote was closed"):t=new Error("Remote was closed"),t.statusCode=499 +break +default:t=new Error(e.message),t.statusCode=500}this.store.adapterFor(this.getModelName()).error(t)})}},u=m(o.prototype,"manager",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=m(o.prototype,"settings",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(o.prototype,"findAllByDatacenter",[l],Object.getOwnPropertyDescriptor(o.prototype,"findAllByDatacenter"),o.prototype),m(o.prototype,"findBySlug",[s],Object.getOwnPropertyDescriptor(o.prototype,"findBySlug"),o.prototype),m(o.prototype,"authorize",[i],Object.getOwnPropertyDescriptor(o.prototype,"authorize"),o.prototype),o) +e.default=p})) +define("consul-ui/services/repository/partition",["exports","consul-ui/services/repository","consul-ui/models/partition","consul-ui/decorators/data-source","consul-ui/utils/form/builder"],(function(e,t,n,r,a){var l,s,i,o,u,c,d,m,p +function f(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function b(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let h=(l=Ember.inject.service("settings"),s=Ember.inject.service("form"),i=Ember.inject.service("repository/permission"),o=(0,r.default)("/:partition/:ns/:dc/partitions"),u=(0,r.default)("/:partition/:ns/:dc/partition/:id"),c=class extends t.default{constructor(...e){super(...e),f(this,"settings",d,this),f(this,"form",m,this),f(this,"permissions",p,this)}getModelName(){return"partition"}getPrimaryKey(){return n.PRIMARY_KEY}getSlugKey(){return n.SLUG_KEY}async findAll(){return this.permissions.can("use partitions")?super.findAll(...arguments).catch(()=>[]):[]}async findBySlug(e){let t +return t=""===e.id?await this.create({Datacenter:e.dc,Partition:""}):await super.findBySlug(...arguments),(0,a.defaultChangeset)(t)}remove(e){return(0,t.softDelete)(this,e)}async getActive(e=""){const t=this.store.peekAll("partition").toArray() +if(0===e.length){e=(await this.settings.findBySlug("token")).Partition||"default"}return 1===t.length?t[0]:function(e,t){let n=e.find((function(e){return e.Name===t.Name})) +return void 0===n&&(n=e.find((function(e){return"default"===e.Name})),void 0===n&&(n=e[0])),n}(t,{Name:e})}},d=b(c.prototype,"settings",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=b(c.prototype,"form",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=b(c.prototype,"permissions",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b(c.prototype,"findAll",[o],Object.getOwnPropertyDescriptor(c.prototype,"findAll"),c.prototype),b(c.prototype,"findBySlug",[u],Object.getOwnPropertyDescriptor(c.prototype,"findBySlug"),c.prototype),c) +e.default=h})),define("consul-ui/services/repository/permission",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a,l,s,i,o,u,c +function d(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;tt.every(t=>n[t]===e[t])&&!0===n.Allow)}can(e){return this._can.can(e)}abilityFor(e){return this._can.abilityFor(e)}generate(e,t,n){const r={Resource:e,Access:t} +return void 0!==n&&(r.Segment=n),r}async authorize(e){if(this.env.var("CONSUL_ACLS_ENABLED")){let n=[] +try{n=await this.store.authorize("permission",e)}catch(t){}return n}return e.resources.map(e=>m(m({},e),{},{Allow:!0}))}async findBySlug(e,t){let n +try{n=this._can.abilityFor(t)}catch(a){return[]}const r=n.generateForSegment(e.id.toString()) +return 0===r.length?[]:(e.resources=r,this.authorize(e))}async findByPermissions(e){return this.authorize(e)}async findAll(e){return e.resources=h,this.permissions=await this.findByPermissions(e),this.permissions.forEach(e=>{["key","node","service","intention","session"].includes(e.Resource)&&(e.Allow=!0)}),this.permissions}},o=b(i.prototype,"env",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=b(i.prototype,"_can",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=b(i.prototype,"permissions",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),b(i.prototype,"findAll",[s],Object.getOwnPropertyDescriptor(i.prototype,"findAll"),i.prototype),i) +e.default=v})),define("consul-ui/services/repository/policy",["exports","consul-ui/services/repository","consul-ui/models/policy","consul-ui/decorators/data-source"],(function(e,t,n,r){var a,l,s,i,o +function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let c=(a=Ember.inject.service("form"),l=(0,r.default)("/:partition/:ns/:dc/policies"),s=(0,r.default)("/:partition/:ns/:dc/policy/:id"),i=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="form",a=this,(r=o)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}getModelName(){return"policy"}getPrimaryKey(){return n.PRIMARY_KEY}getSlugKey(){return n.SLUG_KEY}async findAllByDatacenter(){return super.findAllByDatacenter(...arguments)}async findBySlug(e){let t +return t=""===e.id?await this.create({Datacenter:e.dc,Partition:e.partition,Namespace:e.ns}):await super.findBySlug(...arguments),this.form.form(this.getModelName()).setData(t).getData()}persist(e){switch(Ember.get(e,"template")){case"":return e.save()}return Promise.resolve(e)}translate(e){return this.store.translate("policy",Ember.get(e,"Rules"))}},o=u(i.prototype,"form",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u(i.prototype,"findAllByDatacenter",[l],Object.getOwnPropertyDescriptor(i.prototype,"findAllByDatacenter"),i.prototype),u(i.prototype,"findBySlug",[s],Object.getOwnPropertyDescriptor(i.prototype,"findBySlug"),i.prototype),i) +e.default=c})),define("consul-ui/services/repository/proxy",["exports","consul-ui/services/repository","consul-ui/models/proxy","consul-ui/decorators/data-source"],(function(e,t,n,r){var a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let o=(a=(0,r.default)("/:partition/:ns/:dc/proxies/for-service/:id"),l=(0,r.default)("/:partition/:ns/:dc/proxy-instance/:serviceId/:node/:id"),i((s=class extends t.default{getModelName(){return"proxy"}getPrimaryKey(){return n.PRIMARY_KEY}findAllBySlug(e,t={}){return void 0!==t.cursor&&(e.index=t.cursor,e.uri=t.uri),this.store.query(this.getModelName(),e).then(e=>(e.forEach(e=>{const t=JSON.parse(e.uid) +t.pop(),t.push(e.ServiceProxy.DestinationServiceID) +const n=this.store.peekRecord("service-instance",JSON.stringify(t)) +n&&Ember.set(n,"ProxyInstance",e)}),e))}async findInstanceBySlug(e,t){const n=await this.findAllBySlug(e,t) +let r={} +if(Ember.get(n,"length")>0){let t=n.filterBy("ServiceProxy.DestinationServiceID",e.serviceId).findBy("NodeName",e.node) +t?r=t:(t=n.findBy("ServiceProxy.DestinationServiceName",e.id),t&&(r=t))}return Ember.set(r,"meta",Ember.get(n,"meta")),r}}).prototype,"findAllBySlug",[a],Object.getOwnPropertyDescriptor(s.prototype,"findAllBySlug"),s.prototype),i(s.prototype,"findInstanceBySlug",[l],Object.getOwnPropertyDescriptor(s.prototype,"findInstanceBySlug"),s.prototype),s) +e.default=o})),define("consul-ui/services/repository/role",["exports","consul-ui/services/repository","consul-ui/models/role","consul-ui/decorators/data-source"],(function(e,t,n,r){var a,l,s,i,o +function u(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let c=(a=Ember.inject.service("form"),l=(0,r.default)("/:partition/:ns/:dc/roles"),s=(0,r.default)("/:partition/:ns/:dc/role/:id"),i=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="form",a=this,(r=o)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}getModelName(){return"role"}getPrimaryKey(){return n.PRIMARY_KEY}getSlugKey(){return n.SLUG_KEY}async findAll(){return super.findAll(...arguments)}async findBySlug(e){let t +return t=""===e.id?await this.create({Datacenter:e.dc,Partition:e.partition,Namespace:e.ns}):await super.findBySlug(...arguments),this.form.form(this.getModelName()).setData(t).getData()}},o=u(i.prototype,"form",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u(i.prototype,"findAll",[l],Object.getOwnPropertyDescriptor(i.prototype,"findAll"),i.prototype),u(i.prototype,"findBySlug",[s],Object.getOwnPropertyDescriptor(i.prototype,"findBySlug"),i.prototype),i) +e.default=c})),define("consul-ui/services/repository/service-instance",["exports","consul-ui/services/repository","consul-ui/abilities/base","consul-ui/decorators/data-source"],(function(e,t,n,r){var a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let o=(a=(0,r.default)("/:partition/:ns/:dc/service-instances/for-service/:id"),l=(0,r.default)("/:partition/:ns/:dc/service-instance/:serviceId/:node/:id"),i((s=class extends t.default{getModelName(){return"service-instance"}shouldReconcile(e,t){return super.shouldReconcile(...arguments)&&e.Service.Service===t.id}async findByService(e,t={}){return void 0!==t.cursor&&(e.index=t.cursor,e.uri=t.uri),this.authorizeBySlug(async t=>{const n=await this.query(e) +return Ember.set(n,"firstObject.Service.Resources",t),n},n.ACCESS_READ,e)}async findBySlug(e,t={}){return super.findBySlug(...arguments)}}).prototype,"findByService",[a],Object.getOwnPropertyDescriptor(s.prototype,"findByService"),s.prototype),i(s.prototype,"findBySlug",[l],Object.getOwnPropertyDescriptor(s.prototype,"findBySlug"),s.prototype),s) +e.default=o})),define("consul-ui/services/repository/service",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a,l +function s(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let i=(r=(0,n.default)("/:partition/:ns/:dc/services"),a=(0,n.default)("/:partition/:ns/:dc/gateways/for-service/:gateway"),s((l=class extends t.default{getModelName(){return"service"}async findAllByDatacenter(){return super.findAll(...arguments)}findGatewayBySlug(e,t={}){return void 0!==t.cursor&&(e.index=t.cursor,e.uri=t.uri),this.store.query(this.getModelName(),e)}}).prototype,"findAllByDatacenter",[r],Object.getOwnPropertyDescriptor(l.prototype,"findAllByDatacenter"),l.prototype),s(l.prototype,"findGatewayBySlug",[a],Object.getOwnPropertyDescriptor(l.prototype,"findGatewayBySlug"),l.prototype),l) +e.default=i})),define("consul-ui/services/repository/session",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a,l,s,i +function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let u=(r=Ember.inject.service("store"),a=(0,n.default)("/:partition/:ns/:dc/sessions/for-node/:id"),l=(0,n.default)("/:partition/:ns/:dc/sessions/for-key/:id"),s=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="store",a=this,(r=i)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}getModelName(){return"session"}findByNode(e,t={}){return void 0!==t.cursor&&(e.index=t.cursor,e.uri=t.uri),this.store.query(this.getModelName(),e)}findByKey(e,t={}){return this.findBySlug(...arguments)}},i=o(s.prototype,"store",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(s.prototype,"findByNode",[a],Object.getOwnPropertyDescriptor(s.prototype,"findByNode"),s.prototype),o(s.prototype,"findByKey",[l],Object.getOwnPropertyDescriptor(s.prototype,"findByKey"),s.prototype),s) +e.default=u})),define("consul-ui/services/repository/token",["exports","consul-ui/services/repository","consul-ui/models/token","consul-ui/decorators/data-source"],(function(e,t,n,r){var a,l,s,i,o,u,c,d +function m(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let p=(a=Ember.inject.service("form"),l=(0,r.default)("/:partition/:ns/:dc/tokens"),s=(0,r.default)("/:partition/:ns/:dc/token/:id"),i=(0,r.default)("/:partition/:ns/:dc/token/self/:secret"),o=(0,r.default)("/:partition/:ns/:dc/tokens/for-policy/:policy"),u=(0,r.default)("/:partition/:ns/:dc/tokens/for-role/:role"),c=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="form",a=this,(r=d)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}getModelName(){return"token"}getPrimaryKey(){return n.PRIMARY_KEY}getSlugKey(){return n.SLUG_KEY}async findAll(){return super.findAll(...arguments)}async findBySlug(e){let t +return t=""===e.id?await this.create({Datacenter:e.dc,Partition:e.partition,Namespace:e.ns}):await super.findBySlug(...arguments),this.form.form(this.getModelName()).setData(t).getData()}self(e){return this.store.self(this.getModelName(),{secret:e.secret,dc:e.dc}).catch(e=>Promise.reject(e))}clone(e){return this.store.clone(this.getModelName(),Ember.get(e,n.PRIMARY_KEY))}findByPolicy(e){return this.findAll(...arguments)}findByRole(){return this.findAll(...arguments)}},d=m(c.prototype,"form",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(c.prototype,"findAll",[l],Object.getOwnPropertyDescriptor(c.prototype,"findAll"),c.prototype),m(c.prototype,"findBySlug",[s],Object.getOwnPropertyDescriptor(c.prototype,"findBySlug"),c.prototype),m(c.prototype,"self",[i],Object.getOwnPropertyDescriptor(c.prototype,"self"),c.prototype),m(c.prototype,"findByPolicy",[o],Object.getOwnPropertyDescriptor(c.prototype,"findByPolicy"),c.prototype),m(c.prototype,"findByRole",[u],Object.getOwnPropertyDescriptor(c.prototype,"findByRole"),c.prototype),c) +e.default=p})),define("consul-ui/services/repository/topology",["exports","consul-ui/services/repository","consul-ui/decorators/data-source"],(function(e,t,n){var r,a,l,s +function i(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let o=(r=Ember.inject.service("repository/dc"),a=(0,n.default)("/:partition/:ns/:dc/topology/:id/:kind"),l=class extends t.default{constructor(...e){var t,n,r,a +super(...e),t=this,n="dcs",a=this,(r=s)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}getModelName(){return"topology"}findBySlug(e,t={}){const n=this.dcs.peekOne(e.dc) +return null===n||Ember.get(n,"MeshEnabled")?(void 0!==t.cursor&&(e.index=t.cursor,e.uri=t.uri),this.store.queryRecord(this.getModelName(),e).catch(e=>{const t=Ember.get(e,"errors.firstObject.status"),r=(Ember.get(e,"errors.firstObject.detail")||"").trim() +switch(t){case"500":return void(null!==n&&r.endsWith("Connect must be enabled in order to use this endpoint")&&Ember.set(n,"MeshEnabled",!1)) +default:throw e}})):Promise.resolve()}},s=i(l.prototype,"dcs",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i(l.prototype,"findBySlug",[a],Object.getOwnPropertyDescriptor(l.prototype,"findBySlug"),l.prototype),l) +e.default=o})),define("consul-ui/services/resize-observer",["exports","ember-resize-observer-service/services/resize-observer"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/routlet",["exports","consul-ui/utils/routing/wildcard","consul-ui/router"],(function(e,t,n){var r,a,l,s,i,o,u +function c(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t{if("application"===e)return 1 +if("application"===t)return-1 +const n=e.split(".").length,r=t.split(".").length +switch(!0){case n>r:return-1 +case n{e=t}),e}findOutlet(e){return[...h.keys()].find(t=>-1!==e.indexOf(t))}outletFor(e){const t=[...h.keys()],n=t.indexOf(e)+1 +return h.get(t[n])}normalizeParamsFor(e,t={}){return b(e)?Object.keys(t).reduce((function(e,n){return void 0!==t[n]?e[n]=decodeURIComponent(t[n]):e[n]=t[n],e}),{}):t}paramsFor(e){let t={} +const n=h.get(e) +void 0!==n&&void 0!==n.args.params&&(t=n.args.params) +let r=this.router.currentRoute +null===r&&(r=this.container.lookup("route:application")) +let a,l=r,s=this.normalizeParamsFor(e,l.params) +for(;a=l.parent;)s=d(d({},this.normalizeParamsFor(a.name,a.params)),s),l=a +return d(d(d({},this.container.get("location:"+this.env.var("locationType")).optionalParams()),s),t)}modelFor(e){const t=h.get(e) +if(void 0!==t)return t.model}addRoute(e,t){const n=this.outletFor(e) +void 0!==n&&(n.route=t,Ember.run.schedule("afterRender",()=>{n.routeName=e}))}removeRoute(e,t){const n=this.outletFor(e) +t._model=void 0,void 0!==n&&Ember.run.schedule("afterRender",()=>{n.route=void 0})}addOutlet(e,t){h.set(e,t)}removeOutlet(e){Ember.run.schedule("afterRender",()=>{h.delete(e)})}},i=f(s.prototype,"container",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=f(s.prototype,"env",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=f(s.prototype,"router",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s) +e.default=v})),define("consul-ui/services/schema",["exports","consul-ui/models/intention-permission","consul-ui/models/intention-permission-http","consul-ui/models/intention-permission-http-header"],(function(e,t,n,r){function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class l extends Ember.Service{constructor(...e){super(...e),a(this,"intention-permission",t.schema),a(this,"intention-permission-http",n.schema),a(this,"intention-permission-http-header",r.schema)}}e.default=l})),define("consul-ui/services/search",["exports","consul-ui/utils/search/exact","consul-ui/search/predicates/intention","consul-ui/search/predicates/upstream-instance","consul-ui/search/predicates/service-instance","consul-ui/search/predicates/health-check","consul-ui/search/predicates/acl","consul-ui/search/predicates/service","consul-ui/search/predicates/node","consul-ui/search/predicates/kv","consul-ui/search/predicates/token","consul-ui/search/predicates/role","consul-ui/search/predicates/policy","consul-ui/search/predicates/auth-method","consul-ui/search/predicates/nspace"],(function(e,t,n,r,a,l,s,i,o,u,c,d,m,p,f){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const b={intention:n.default,service:i.default,"service-instance":a.default,"upstream-instance":r.default,"health-check":l.default,"auth-method":p.default,node:o.default,kv:u.default,acl:s.default,token:c.default,role:d.default,policy:m.default,nspace:f.default} +class h extends Ember.Service{constructor(...e){var n,r,a +super(...e),n=this,r="searchables",a={exact:t.default},r in n?Object.defineProperty(n,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[r]=a}predicate(e){return b[e]}}e.default=h})),define("consul-ui/services/settings",["exports","consul-ui/utils/storage/local-storage"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.ifNotBlocking=void 0 +const n=(0,t.default)("consul") +e.ifNotBlocking=function(e){return e.findBySlug("client").then((function(e){return void 0!==e.blocking&&!e.blocking}))} +class r extends Ember.Service{constructor(...e){var t,r,a +super(...e),a=n,(r="storage")in(t=this)?Object.defineProperty(t,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[r]=a}findAll(e){return Promise.resolve(this.storage.all())}findBySlug(e){return Promise.resolve(this.storage.getValue(e))}persist(e){const t=this.storage +return Object.keys(e).forEach(n=>{t.setValue(n,e[n])}),Promise.resolve(e)}delete(e){Array.isArray(e)||(e=[e]) +const t=this.storage,n=e.reduce((function(e,n){return t.removeValue(n),e}),{}) +return Promise.resolve(n)}}e.default=r})),define("consul-ui/services/sort",["exports","consul-ui/sort/comparators/service","consul-ui/sort/comparators/service-instance","consul-ui/sort/comparators/upstream-instance","consul-ui/sort/comparators/kv","consul-ui/sort/comparators/health-check","consul-ui/sort/comparators/intention","consul-ui/sort/comparators/token","consul-ui/sort/comparators/role","consul-ui/sort/comparators/policy","consul-ui/sort/comparators/auth-method","consul-ui/sort/comparators/nspace","consul-ui/sort/comparators/node"],(function(e,t,n,r,a,l,s,i,o,u,c,d,m){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.properties=void 0 +const p=e=>e.reduce((e,t)=>e.concat([t+":asc",t+":desc"]),[]),f=(e=[])=>t=>{const n=p(e) +return[n.find(e=>e===t)||n[0]]} +e.properties=f +const b={properties:f,directionify:p},h={service:(0,t.default)(b),"service-instance":(0,n.default)(b),"upstream-instance":(0,r.default)(b),"health-check":(0,l.default)(b),"auth-method":(0,c.default)(b),kv:(0,a.default)(b),intention:(0,s.default)(b),token:(0,i.default)(b),role:(0,o.default)(b),policy:(0,u.default)(b),nspace:(0,d.default)(b),node:(0,m.default)(b)} +class v extends Ember.Service{comparator(e){return h[e]}}e.default=v})),define("consul-ui/services/state-with-charts",["exports","consul-ui/services/state","consul-ui/machines/validate.xstate","consul-ui/machines/boolean.xstate"],(function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class a extends t.default{constructor(...e){var t,a,l +super(...e),t=this,a="stateCharts",l={validate:n.default,boolean:r.default},a in t?Object.defineProperty(t,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):t[a]=l}}e.default=a})),define("consul-ui/services/state",["exports","flat","@xstate/fsm"],(function(e,t,n){var r,a,l +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let s=(r=Ember.inject.service("logger"),a=class extends Ember.Service{constructor(...e){var t,n,r,a,s,i,o +super(...e),r={},(n="stateCharts")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,a=this,s="logger",o=this,(i=l)&&Object.defineProperty(a,s,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(o):void 0})}log(e,t){}stateChart(e){return this.stateCharts[e]}addGuards(e,t){return this.guards(e).forEach((function([n,r]){Ember.set(e,n,(function(){return!!t.onGuard(r,...arguments)}))})),[e,t]}machine(e,t={}){return(0,n.createMachine)(...this.addGuards(e,t))}prepareChart(e){return void 0!==(e=JSON.parse(JSON.stringify(e))).on&&Object.values(e.states).forEach((function(t){void 0===t.on?t.on=e.on:Object.keys(e.on).forEach((function(n){void 0===t.on[n]&&(t.on[n]=e.on[n])}))})),e}matches(e,t){if(void 0===e)return!1 +return(Array.isArray(t)?t:[t]).some(t=>e.matches(t))}state(e){return{matches:e}}interpret(e,t){e=this.prepareChart(e) +const r=(0,n.interpret)(this.machine(e,t)) +return r.subscribe(n=>{n.changed&&(this.log(e,n),t.onTransition(n))}),r}guards(e){return Object.entries((0,t.default)(e)).filter(([e])=>e.endsWith(".cond"))}},i=a.prototype,o="logger",u=[r],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},m={},Object.keys(c).forEach((function(e){m[e]=c[e]})),m.enumerable=!!m.enumerable,m.configurable=!!m.configurable,("value"in m||m.initializer)&&(m.writable=!0),m=u.slice().reverse().reduce((function(e,t){return t(i,o,e)||e}),m),d&&void 0!==m.initializer&&(m.value=m.initializer?m.initializer.call(d):void 0,m.initializer=void 0),void 0===m.initializer&&(Object.defineProperty(i,o,m),m=null),l=m,a) +var i,o,u,c,d,m +e.default=s})),define("consul-ui/services/store",["exports","@ember-data/store"],(function(e,t){var n,r,a,l,s +function i(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let u=(n=Ember.inject.service("data-source/service"),r=Ember.inject.service("client/http"),a=class extends t.default{constructor(...e){super(...e),i(this,"dataSource",l,this),i(this,"client",s,this)}invalidate(e=401){this.client.abort(401),this.dataSource.resetCache(),this.init()}clear(){this.invalidate(0)}clone(e,t){return this.adapterFor(e).clone(this,{modelName:e},t,this._internalModelForId(e,t).createSnapshot({}))}self(e,t){const n=this.adapterFor(e),r=this.serializerFor(e),a={modelName:e} +return n.self(this,a,t.secret,t).then(e=>r.normalizeResponse(this,a,e,t,"self"))}queryLeader(e,t){const n=this.adapterFor(e),r=this.serializerFor(e),a={modelName:e} +return n.queryLeader(this,a,null,t).then(e=>(e.meta=r.normalizeMeta(this,a,e,null,"leader"),e))}authorize(e,t={}){const n=this.adapterFor(e),r=this.serializerFor(e),a={modelName:e} +return n.authorize(this,a,null,t).then(e=>r.normalizeResponse(this,a,e,void 0,"authorize"))}logout(e,t={}){const n={modelName:e} +return this.adapterFor(e).logout(this,n,t.id,t)}},l=o(a.prototype,"dataSource",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=o(a.prototype,"client",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a) +e.default=u})),define("consul-ui/services/temporal",["exports","pretty-ms","parse-duration","dayjs","dayjs/plugin/relativeTime"],(function(e,t,n,r,a){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,r.default.extend(a.default) +class l extends Ember.Service{format(e,t){const n=(0,r.default)(e) +return(0,r.default)().isBefore(n)?(0,r.default)().to(n,!0):(0,r.default)().from(n,!0)}within([e,t],n){return(0,r.default)(e).isBefore((0,r.default)().add(t,"ms"))}parse(e,t){return(0,n.default)(e)}durationFrom(e,n={}){switch(!0){case"number"==typeof e:return 0===e?"0":(0,t.default)(e/1e6,{formatSubMilliseconds:!0}).split(" ").join("") +case"string"==typeof e:default:return e}}}e.default=l})),define("consul-ui/services/text-measurer",["exports","ember-text-measurer/services/text-measurer"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/ticker",["exports","consul-ui/utils/ticker"],(function(e,t){let n +Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class r extends Ember.Service{init(){super.init(...arguments),this.reset()}tweenTo(e,r="",a,l){const s=r +return n.has(s)?((r=n.get(s))instanceof t.Tween&&(r=r.stop().getTarget()),n.set(s,t.Tween.to(r,e,a,l)),r):(n.set(s,e),e)}destroy(e){return this.reset(),t.Tween.destroy()}reset(){n=new Map}}e.default=r})),define("consul-ui/services/timeout",["exports","consul-ui/utils/promisedTimeout"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +const n=(0,t.default)(Promise) +class r extends Ember.Service{execute(e,t){return n(e,t)}tick(){return new Promise((function(e){Ember.run.next(e)}))}}e.default=r})),define("consul-ui/services/torii-session",["exports","torii/services/torii-session"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/torii",["exports","torii/services/torii"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/services/ui-config",["exports","consul-ui/decorators/data-source"],(function(e,t){var n,r,a,l,s,i +function o(e,t,n,r,a){var l={} +return Object.keys(r).forEach((function(e){l[e]=r[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),l),a&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(a):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(e,t,l),l=null),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +let u=(n=Ember.inject.service("env"),r=(0,t.default)("/:partition/:nspace/:dc/ui-config/:path"),a=(0,t.default)("/:partition/:nspace/:dc/notfound/:path"),l=(0,t.default)("/:partition/:nspace/:dc/ui-config"),s=class extends Ember.Service{constructor(...e){var t,n,r,a +super(...e),t=this,n="env",a=this,(r=i)&&Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}async findByPath(e){return Ember.get(this.get(),e.path)}async parsePath(e){return e.path.split("/").reduce((e,t)=>{switch(!0){case t.startsWith("~"):e.nspace=t.substr(1) +break +case t.startsWith("_"):e.partition=t.substr(1) +break +case void 0===e.dc:e.dc=t}return e},{})}async get(){return this.env.var("CONSUL_UI_CONFIG")}getSync(){return this.env.var("CONSUL_UI_CONFIG")}},i=o(s.prototype,"env",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(s.prototype,"findByPath",[r],Object.getOwnPropertyDescriptor(s.prototype,"findByPath"),s.prototype),o(s.prototype,"parsePath",[a],Object.getOwnPropertyDescriptor(s.prototype,"parsePath"),s.prototype),o(s.prototype,"get",[l],Object.getOwnPropertyDescriptor(s.prototype,"get"),s.prototype),s) +e.default=u})),define("consul-ui/sort/comparators/auth-method",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>(t="MethodName:asc")=>e(["MethodName","TokenTTL"])(t)})),define("consul-ui/sort/comparators/health-check",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>(t="Status:asc")=>t.startsWith("Status:")?function(e,n){const[,r]=t.split(":") +let a,l +"asc"===r?(a=e,l=n):(l=e,a=n) +const s=a.Status,i=l.Status +switch(s){case"passing":return"passing"===i?0:1 +case"critical":return"critical"===i?0:-1 +case"warning":switch(i){case"passing":return-1 +case"critical":return 1 +default:return 0}}return 0}:e(["Name","Kind"])(t)})),define("consul-ui/sort/comparators/intention",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=()=>e=>[e]})),define("consul-ui/sort/comparators/kv",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>t=>e(["Key","Kind"])(t)})) +define("consul-ui/sort/comparators/node",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>(t="Name:asc")=>t.startsWith("Status:")?function(e,n){const[,r]=t.split(":") +let a,l +switch("asc"===r?(l=e,a=n):(a=e,l=n),!0){case a.ChecksCritical>l.ChecksCritical:return 1 +case a.ChecksCriticall.ChecksWarning:return 1 +case a.ChecksWarningl.ChecksPassing:return-1}}return 0}}:e(["Node"])(t)})),define("consul-ui/sort/comparators/nspace",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>t=>e(["Name"])(t)})),define("consul-ui/sort/comparators/partition",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>t=>e(["Name"])(t)})),define("consul-ui/sort/comparators/policy",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>(t="Name:asc")=>e(["Name"])(t)})),define("consul-ui/sort/comparators/role",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>(t="Name:asc")=>e(["Name","CreateIndex"])(t)})),define("consul-ui/sort/comparators/service-instance",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>t=>{if(t.startsWith("Status:")){const[,e]=t.split(":"),n=["PercentageChecksPassing","PercentageChecksWarning","PercentageChecksCritical"] +return"asc"===e&&n.reverse(),function(e,t){for(let r in n){let a=n[r] +if(e[a]!==t[a])return e[a]>t[a]?-1:1}}}return e(["Name"])(t)}})),define("consul-ui/sort/comparators/service",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>(t="Status:asc")=>t.startsWith("Status:")?function(e,n){const[,r]=t.split(":") +let a,l +switch("asc"===r?(l=e,a=n):(a=e,l=n),!0){case a.MeshChecksCritical>l.MeshChecksCritical:return 1 +case a.MeshChecksCriticall.MeshChecksWarning:return 1 +case a.MeshChecksWarningl.MeshChecksPassing:return-1}}return 0}}:e(["Name"])(t)})),define("consul-ui/sort/comparators/token",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>t=>e(["CreateTime"])(t)})),define("consul-ui/sort/comparators/upstream-instance",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=({properties:e})=>(t="DestinationName:asc")=>e(["DestinationName"])(t)})),define("consul-ui/styles/base/decoration/visually-hidden.css",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=e=>e` + @keyframes visually-hidden { + 100% { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + border: 0; + } + } + `})),define("consul-ui/styles/base/icons/base-keyframes.css",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=e=>e` +*::before, *::after { + display: inline-block; + animation-play-state: paused; + animation-fill-mode: forwards; + animation-iteration-count: var(--icon-resolution, 1); + vertical-align: text-top; +} +*::before { + animation-name: var(--icon-name-start, var(--icon-name)), + var(--icon-size-start, var(--icon-size, icon-000)); + background-color: var(--icon-color-start, var(--icon-color)); +} +*::after { + animation-name: var(--icon-name-end, var(--icon-name)), + var(--icon-size-end, var(--icon-size, icon-000)); + background-color: var(--icon-color-end, var(--icon-color)); +} + +[style*='--icon-color-start']::before { + color: var(--icon-color-start); +} +[style*='--icon-color-end']::after { + color: var(--icon-color-end); +} +[style*='--icon-name-start']::before, +[style*='--icon-name-end']::after { + content: ''; +} + +@keyframes icon-000 { + 100% { + width: 1.2em; + height: 1.2em; + } +} +@keyframes icon-100 { + 100% { + width: 0.625rem; /* 10px */ + height: 0.625rem; /* 10px */ + } +} +@keyframes icon-200 { + 100% { + width: 0.75rem; /* 12px */ + height: 0.75rem; /* 12px */ + } +} +@keyframes icon-300 { + 100% { + width: 1rem; /* 16px */ + height: 1rem; /* 16px */ + } +} +@keyframes icon-400 { + 100% { + width: 1.125rem; /* 18px */ + height: 1.125rem; /* 18px */ + } +} +@keyframes icon-500 { + 100% { + width: 1.250rem; /* 20px */ + height: 1.250rem; /* 20px */ + } +} +@keyframes icon-600 { + 100% { + width: 1.375rem; /* 22px */ + height: 1.375rem; /* 22px */ + } +} +@keyframes icon-700 { + 100% { + width: 1.500rem; /* 24px */ + height: 1.500rem; /* 24px */ + } +} +@keyframes icon-800 { + 100% { + width: 1.625rem; /* 26px */ + height: 1.625rem; /* 26px */ + } +} +@keyframes icon-900 { + 100% { + width: 1.750rem; /* 28px */ + height: 1.750rem; /* 28px */ + } +} +`})),define("consul-ui/templates/application",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"wBErwPik",block:'{"symbols":["route","o","partition","nspace","dcs","dc","dcs","dc","consul","o","source","value","key"],"statements":[[8,"route",[],[["@name"],[[34,26]]],[["default"],[{"statements":[[2,"\\n\\n"],[8,[32,1,["Announcer"]],[],[["@title"],["Consul"]],null],[2,"\\n"],[6,[37,6],[[30,[36,19],["use acls"],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,23],null,[["class"],["has-acls"]]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,6],[[30,[36,19],["use nspaces"],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,23],null,[["class"],["has-nspaces"]]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,6],[[30,[36,19],["use partitions"],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,23],null,[["class"],["has-partitions"]]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[8,"data-source",[],[["@src","@onchange"],[[30,[36,7],["settings://consul:client"],null],[30,[36,20],["onClientChanged"],null]]],null],[2,"\\n\\n"],[8,"data-source",[],[["@src"],[[30,[36,7],["settings://consul:theme"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,28],[[30,[36,27],[[32,11,["data"]]],null]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,9],[[32,12],[30,[36,25],[[32,13],[30,[36,24],["color-scheme","contrast"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,23],null,[["class"],[[30,[36,22],["prefers-",[32,13],"-",[32,12]],null]]]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[12,13]}]]]],"parameters":[11]}]]],[2,"\\n\\n"],[6,[37,6],[[30,[36,19],["use acls"],null]],null,[["default"],[{"statements":[[8,"data-source",[],[["@src","@onchange"],[[30,[36,7],["settings://consul:token"],null],[30,[36,5],[[32,0],[30,[36,17],[[35,0]],null]],[["value"],["data"]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n\\n"],[6,[37,6],[[30,[36,29],[[32,1,["currentName"]],"oauth-provider-debug"],null]],null,[["default","else"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,18],[[32,1,["currentName"]],"index"],null]],null,[["default","else"],[{"statements":[[2,"\\n"],[2," "],[1,[30,[36,21],[[30,[36,20],["replaceWith","dc.services.index",[30,[36,1],null,[["dc"],[[30,[36,10],["CONSUL_DATACENTER_LOCAL"],null]]]]],null]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,6],[[30,[36,18],[[32,1,["currentName"]],"notfound"],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,7],["/*/*/*/notfound/${path}",[30,[36,1],null,[["path"],[[32,1,["params","notfound"]]]]]],null],[30,[36,5],[[32,0],[30,[36,17],[[35,13]],null]],[["value"],["data"]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,16],[[30,[36,6],[[30,[36,19],["use partitions"],null],[30,[36,15],[[32,1,["params","partition"]],[35,13,["partition"]],[35,0,["Partition"]],""],null],""],null],[30,[36,6],[[30,[36,19],["use nspaces"],null],[30,[36,15],[[32,1,["params","nspace"]],[35,13,["nspace"]],[35,0,["Namespace"]],""],null],""],null]],null,[["default"],[{"statements":[[2,"\\n"],[8,"data-source",[],[["@src"],[[30,[36,7],["/*/*/*/datacenters"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,16],[[30,[36,15],[[30,[36,6],[[35,14,["dc"]],[30,[36,12],[0,[30,[36,11],["dc",[30,[36,1],null,[["Name"],[[35,13,["dc"]]]]]],null]],null]],null],[30,[36,12],[0,[30,[36,11],["dc",[30,[36,1],null,[["Name"],[[32,1,["params","dc"]]]]]],null]],null],[30,[36,1],null,[["Name"],[[30,[36,10],["CONSUL_DATACENTER_LOCAL"],null]]]]],null],[32,5,["data"]]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,9],[[30,[36,8],[[32,6,["Name","length"]],0],null],[32,7]],null]],null,[["default"],[{"statements":[[2,"\\n"],[2," "],[8,"data-source",[],[["@src"],[[30,[36,7],["/${partition}/*/${dc}/datacenter-cache/${name}",[30,[36,1],null,[["dc","partition","name"],[[32,6,["Name"]],[32,3],[32,6,["Name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,8,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"hashicorp-consul",[[24,1,"wrapper"]],[["@dcs","@dc","@partition","@nspace","@user","@onchange"],[[32,7],[32,8,["data"]],[32,3],[32,4],[30,[36,1],null,[["token"],[[35,0]]]],[30,[36,5],[[32,0],"reauthorize"],null]]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[35,4]],null,[["default","else"],[{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[34,4],[32,9,["login","open"]]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"outlet",[],[["@name","@model"],["application",[30,[36,1],null,[["app","user","dc","dcs"],[[32,9],[30,[36,1],null,[["token"],[[35,0]]]],[32,8,["data"]],[32,7]]]]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,3],[[30,[36,2],null,null]],null]],[2,"\\n "]],"parameters":[10]}]]],[2,"\\n\\n"],[2," "],[8,"consul/loader",[[24,0,"view-loader"]],[[],[]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[8]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[6,7]}]]]],"parameters":[5]}]]],[2,"\\n"]],"parameters":[3,4]}]]]],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," "],[8,"outlet",[],[["@name","@model"],["application",[30,[36,1],null,[["user"],[[30,[36,1],null,[["token"],[[35,0]]]]]]]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,3],[[30,[36,2],null,null]],null]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["token","hash","-outlet","component","error","action","if","uri","gt","and","env","cached-model","object-at","notfound","nofound","or","let","mut","eq","can","route-action","did-insert","concat","document-attrs","array","contains","routeName","-each-in","each","not-eq"]}',meta:{moduleName:"consul-ui/templates/application.hbs"}}) +e.default=t})),define("consul-ui/templates/components/basic-dropdown-content",["exports","ember-basic-dropdown/templates/components/basic-dropdown-content"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/templates/components/basic-dropdown-optional-tag",["exports","ember-basic-dropdown/templates/components/basic-dropdown-optional-tag"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/templates/components/basic-dropdown-trigger",["exports","ember-basic-dropdown/templates/components/basic-dropdown-trigger"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/templates/components/basic-dropdown",["exports","ember-basic-dropdown/templates/components/basic-dropdown"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/templates/dc",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"jdt244Ym",block:'{"symbols":["route","o"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"outlet",[],[["@name","@model"],[[34,0],[32,1,["model"]]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,2],[[30,[36,1],null,null]],null]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["routeName","-outlet","component"]}',meta:{moduleName:"consul-ui/templates/dc.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"ToSP5lq3",block:'{"symbols":["route","o"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"outlet",[],[["@name","@model"],[[34,0],[32,1,["model"]]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,2],[[30,[36,1],null,null]],null]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["routeName","-outlet","component"]}',meta:{moduleName:"consul-ui/templates/dc/acls.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/auth-methods/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"D0g2fM3h",block:'{"symbols":["route","loader","sort","filters","items","collection"],"statements":[[8,"route",[],[["@name"],[[34,7]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"data-loader",[],[["@src"],[[30,[36,9],["/${partition}/${nspace}/${dc}/auth-methods",[30,[36,8],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,10],[[32,2,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/acl/disabled",[],[[],[]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,19],[[30,[36,8],null,[["value","change"],[[30,[36,18],[[35,17],"MethodName:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,17]],null]],[["value"],["target.selected"]]]]]],[30,[36,8],null,[["kind","source","searchproperty"],[[30,[36,8],null,[["value","change"],[[30,[36,4],[[35,16],[30,[36,13],[[35,16],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,16]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,8],null,[["value","change"],[[30,[36,4],[[35,15],[30,[36,13],[[35,15],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,15]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,8],null,[["value","change","default"],[[30,[36,4],[[30,[36,14],[[35,12],[29]],null],[30,[36,13],[[35,12],","],null],[35,11]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,12]],null]],[["value"],["target.selectedItems"]]],[35,11]]]]]]],[32,2,["data"]]],null,[["default"],[{"statements":[[2,"\\n\\n "],[8,"app-view",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Auth Methods"]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,3],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/auth-method/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["auth-method",[32,3,["value"]],[32,4],[34,0],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/auth-method/list",[],[["@items"],[[32,6,["items"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,5],["routes.dc.auth-methods.index.empty.header"],[["items"],[[32,5,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,5],["routes.dc.auth-methods.index.empty.body"],[["items","htmlSafe"],[[32,5,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,6],["CONSUL_DOCS_URL"],null],"/security/acl/auth-methods"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Documentation on auth methods"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,6],["CONSUL_DOCS_API_URL"],null],"/acl/auth-methods.html"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the API Docs"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["search","mut","action","gt","if","t","env","routeName","hash","uri","eq","searchProperties","searchproperty","split","not-eq","source","kind","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/auth-methods/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/auth-methods/show",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"ljPKKeyW",block:'{"symbols":["route","loader","item","o"],"statements":[[8,"route",[],[["@name"],[[34,7]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,10],["/${partition}/${nspace}/${dc}/auth-method/${name}",[30,[36,2],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","id"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,11],[[32,2,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/acl/disabled",[],[[],[]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,12],[[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,0],["dc.acls.auth-methods"],null]],[12],[2,"All Auth Methods"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],[[32,3,["Name"]]]],null],[2,"\\n "],[13],[2,"\\n "],[8,"consul/auth-method/type",[],[["@item"],[[32,3]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["nav"]],[["default"],[{"statements":[[2,"\\n "],[8,"tab-nav",[],[["@items"],[[30,[36,6],[[30,[36,5],[[30,[36,2],null,[["label","href","selected"],["General info",[30,[36,0],["dc.acls.auth-methods.show.auth-method"],null],[30,[36,1],["dc.acls.auth-methods.show.auth-method"],null]]]],[30,[36,4],[[30,[36,3],["use nspaces"],null],[30,[36,2],null,[["label","href","selected"],["Namespace rules",[30,[36,0],["dc.acls.auth-methods.show.nspace-rules"],null],[30,[36,1],["dc.acls.auth-methods.show.nspace-rules"],null]]]],""],null],[30,[36,2],null,[["label","href","selected"],["Binding rules",[30,[36,0],["dc.acls.auth-methods.show.binding-rules"],null],[30,[36,1],["dc.acls.auth-methods.show.binding-rules"],null]]]]],null]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"outlet",[],[["@name","@model"],[[34,7],[30,[36,2],null,[["item"],[[32,3]]]]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,9],[[30,[36,8],null,null]],null]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["href-to","is-href","hash","can","if","array","compact","routeName","-outlet","component","uri","eq","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/auth-methods/show.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/auth-methods/show/auth-method",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"IJCIKqTr",block:'{"symbols":["route"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n "],[8,"consul/auth-method/view",[],[["@item"],[[32,1,["model","item"]]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["routeName"]}',meta:{moduleName:"consul-ui/templates/dc/acls/auth-methods/show/auth-method.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/auth-methods/show/binding-rules",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"TJUhzlOO",block:'{"symbols":["route","loader","items","item"],"statements":[[8,"route",[],[["@name"],[[34,6]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"data-loader",[],[["@src"],[[30,[36,8],["/${partition}/${nspace}/${dc}/binding-rules/for-auth-method/${name}",[30,[36,7],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","id"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[32,2,["data"]]],null,[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,5],[[30,[36,4],[[32,3,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"\\n Binding rules allow an operator to express a systematic way of automatically linking roles and service identities to newly created tokens without operator intervention.\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n Successful authentication with an auth method returns a set of trusted identity attributes corresponding to the authenticated identity. Those attributes are matched against all configured binding rules for that auth method to determine what privileges to grant the Consul ACL token it will ultimately create.\\n "],[13],[2,"\\n "],[10,"hr"],[12],[13],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,3]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/auth-method/binding-list",[],[["@item"],[[32,4]]],null],[2,"\\n "],[10,"hr"],[12],[13],[2,"\\n"]],"parameters":[4]}]]]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,0],["routes.dc.acls.auth-methods.show.binding-rules.index.empty.header"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.acls.auth-methods.show.binding-rules.index.empty.body"],[["htmlSafe"],[true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,1],["CONSUL_DOCS_API_URL"],null],"/acl/binding-rules"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the documentation"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","env","-track-array","each","gt","if","routeName","hash","uri","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/auth-methods/show/binding-rules.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/auth-methods/show/nspace-rules",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"wKhoHeez",block:'{"symbols":["route","item"],"statements":[[8,"route",[],[["@name"],[[34,6]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,7],[[32,1,["model","item"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,5],[[30,[36,4],[[32,2,["NamespaceRules","length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"\\n A set of rules that can control which namespace tokens created via this auth method will be created within. Unlike binding rules, the first matching namespace rule wins.\\n "],[13],[2,"\\n "],[8,"consul/auth-method/nspace-list",[],[["@items"],[[32,2,["NamespaceRules"]]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,1],[[30,[36,0],[[32,1,["t"]],"empty.header"],null]],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,1],[[30,[36,0],[[32,1,["t"]],"empty.body",[30,[36,2],null,[["htmlSafe"],[true]]]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,3],["CONSUL_DOCS_API_URL"],null],"/acl/auth-methods#namespacerules"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the documentation"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[2]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["fn","compute","hash","env","gt","if","routeName","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/auth-methods/show/nspace-rules.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"EbSFMm5f",block:'{"symbols":["route"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,2],[[30,[36,1],["replaceWith","dc.acls.tokens"],null]],null]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["routeName","route-action","did-insert"]}',meta:{moduleName:"consul-ui/templates/dc/acls/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/policies/-form",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"Dodweqnu",block:'{"symbols":["execute","cancel","message","close","confirm"],"statements":[[10,"form"],[12],[2,"\\n "],[8,"policy-form",[],[["@form","@partition","@nspace","@item"],[[34,15],[34,12],[34,11],[34,3]]],[["default"],[{"statements":[[2,"\\n"],[2," "],[8,"block-slot",[],[["@name"],["template"]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,5],[[30,[36,17],[[35,16]],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,13],["/${partition}/${nspace}/${dc}/tokens/for-policy/${id}",[30,[36,1],null,[["partition","nspace","dc","id"],[[35,12],[35,11],[35,10],[30,[36,8],[[35,9],""],null]]]]],null],[30,[36,0],[[32,0],[30,[36,14],[[35,2]],null]],[["value"],["data"]]]]],null],[2,"\\n"],[6,[37,5],[[30,[36,4],[[35,2,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"token-list",[],[["@caption","@items"],["Applied to the following tokens:",[34,2]]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[10,"div"],[12],[2,"\\n"],[6,[37,5],[[30,[36,18],[[35,16],[30,[36,6],["create tokens"],null]],null]],null,[["default","else"],[{"statements":[[2," "],[11,"button"],[16,"disabled",[30,[36,5],[[30,[36,8],[[35,3,["isPristine"]],[35,3,["isInvalid"]],[30,[36,7],[[35,3,["Name"]],""],null]],null],"disabled"],null]],[24,4,"submit"],[4,[38,0],[[32,0],"create",[35,3]],null],[12],[2,"Save"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,6],["write policy"],[["item"],[[35,3]]]]],null,[["default"],[{"statements":[[2," "],[11,"button"],[16,"disabled",[30,[36,5],[[35,3,["isInvalid"]],"disabled"],null]],[24,4,"submit"],[4,[38,0],[[32,0],"update",[35,3]],null],[12],[2,"Save"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[11,"button"],[24,4,"reset"],[4,[38,0],[[32,0],"cancel",[35,3]],null],[12],[2,"Cancel"],[13],[2,"\\n"],[6,[37,5],[[30,[36,18],[[30,[36,17],[[35,16]],null],[30,[36,6],["delete policy"],[["item"],[[35,3]]]]],null]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to delete this Policy?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"type-delete"],[24,4,"button"],[4,[38,0],[[32,0],[32,5],"delete",[35,3]],null],[12],[2,"Delete"],[13],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,4],[[35,2,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[8,"modal-dialog",[],[["@onclose","@open","@aria"],[[30,[36,0],[[32,0],[32,2]],null],true,[30,[36,1],null,[["label"],["Policy in Use"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"Policy in Use"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This Policy is currently in use. If you choose to delete this Policy, it will be removed from the following "],[10,"strong"],[12],[1,[35,2,["length"]]],[2," Tokens"],[13],[2,":\\n "],[13],[2,"\\n "],[8,"token-list",[],[["@items","@target"],[[34,2],"_blank"]],null],[2,"\\n "],[10,"p"],[12],[2,"\\n This action cannot be undone. "],[1,[32,3]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"type-delete"],[24,4,"button"],[4,[38,0],[[32,0],[32,1]],null],[12],[2,"Yes, Delete"],[13],[2,"\\n "],[11,"button"],[24,0,"type-cancel"],[24,4,"button"],[4,[38,0],[[32,0],[32,4]],null],[12],[2,"Cancel"],[13],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"delete-confirmation",[],[["@message","@execute","@cancel"],[[32,3],[32,1],[32,2]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[1,2,3]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["action","hash","items","item","gt","if","can","eq","or","id","dc","nspace","partition","uri","mut","form","create","not","and"]}',meta:{moduleName:"consul-ui/templates/dc/acls/policies/-form.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/policies/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"HjXPxbrO",block:'{"symbols":["route","loader","dc","partition","nspace","id","item","create","loader","notice"],"statements":[[8,"route",[],[["@name"],[[34,12]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,4],["/${partition}/${nspace}/${dc}/policy/${id}",[30,[36,3],null,[["partition","nspace","dc","id"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,13],[[32,1,["params","id"]],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,11],[[32,2,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/acl/disabled",[],[[],[]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,14],[[32,1,["params","dc"]],[32,1,["params","partition"]],[32,1,["params","nspace"]],[30,[36,13],[[32,1,["params","id"]],""],null],[32,2,["data"]],[32,2,["data","isNew"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,8],["dc.acls.policies"],null]],[12],[2,"All Policies"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n"],[6,[37,6],[[32,8]],null,[["default","else"],[{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["New Policy"]],null],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,6],[[30,[36,7],["write policy"],[["item"],[[32,7]]]]],null,[["default","else"],[{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["Edit Policy"]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["View Policy"]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,9],[[32,8]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"definition-table"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Policy ID"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name","@position"],[[32,7,["ID"]],"Policy ID","top-start"]],null],[2," "],[1,[32,7,["ID"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,6],[[30,[36,11],[[30,[36,10],[[32,7]],null],"policy-management"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"policy-management"]],[["@type"],["none"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,10,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"Management"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,10,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This global-management token is built into Consul\'s policy system. You can apply this special policy to tokens for full access. This policy is not editable or removeable, but can be ignored by not applying it to any tokens. Learn more in our "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/guides/acl.html#builtin-policies"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"documentation"],[13],[2,".\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[10]}]]],[2,"\\n "],[10,"div"],[14,0,"definition-table"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Name"],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,7,["Name"]]],[13],[2,"\\n "],[10,"dt"],[12],[2,"Valid Datacenters"],[13],[2,"\\n "],[10,"dd"],[12],[1,[30,[36,2],[", ",[30,[36,1],[[32,7]],null]],null]],[13],[2,"\\n "],[10,"dt"],[12],[2,"Description"],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,7,["Description"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"data-source",[],[["@src"],[[30,[36,4],["/${partition}/${nspace}/${dc}/tokens/for-policy/${id}",[30,[36,3],null,[["partition","nspace","dc","id"],[[32,4],[32,5],[32,3],[32,6]]]]],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,5],[[32,9,["data","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"token-list",[],[["@caption","@items"],["Applied to the following tokens:",[32,9,["data"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[19,"dc/acls/policies/form",[1,2,3,4,5,6,7,8]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5,6,7,8]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":true,"upvars":["env","policy/datacenters","join","hash","uri","gt","if","can","href-to","not","policy/typeof","eq","routeName","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/policies/edit.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/policies/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"Fqeas+Q6",block:'{"symbols":["route","loader","sort","filters","items","collection"],"statements":[[8,"route",[],[["@name"],[[34,10]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,12],["/${partition}/${nspace}/${dc}/policies",[30,[36,11],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,13],[[32,2,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/acl/disabled",[],[[],[]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,22],[[30,[36,11],null,[["value","change"],[[30,[36,21],[[35,20],"Name:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,20]],null]],[["value"],["target.selected"]]]]]],[30,[36,11],null,[["kind","datacenter","searchproperty"],[[30,[36,11],null,[["value","change"],[[30,[36,5],[[35,19],[30,[36,16],[[35,19],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,19]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,11],null,[["value","change"],[[30,[36,5],[[35,18],[30,[36,16],[[35,18],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,18]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,11],null,[["value","change","default"],[[30,[36,5],[[30,[36,17],[[35,15],[29]],null],[30,[36,16],[[35,15],","],null],[35,14]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,15]],null]],[["value"],["target.selectedItems"]]],[35,14]]]]]]],[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Policies"]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,4],["create policies"],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,3],["dc.acls.policies.create"],null]]]],[14,0,"type-create"],[12],[2,"Create"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/policy/search-bar",[],[["@partition","@search","@onsearch","@sort","@filter"],[[32,1,["params","partition"]],[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["policy",[32,3,["value"]],[32,4],[34,0],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/policy/list",[],[["@items","@ondelete"],[[32,6,["items"]],[30,[36,7],["delete"],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,8],["routes.dc.acls.policies.index.empty.header"],[["items"],[[32,5,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,8],["routes.dc.acls.policies.index.empty.body"],[["items","htmlSafe"],[[32,5,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,9],["CONSUL_DOCS_URL"],null],"/commands/acl/policy"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Documentation on policies"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,9],["CONSUL_LEARN_URL"],null],"/consul/security-networking/managing-acl-policies"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Take the tutorial"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n"]],"parameters":[3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["search","mut","action","href-to","can","if","gt","route-action","t","env","routeName","hash","uri","eq","searchProperties","searchproperty","split","not-eq","datacenter","kind","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/policies/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/roles/-form",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"BgUOJM1D",block:'{"symbols":["execute","cancel","message","close","confirm","loader"],"statements":[[10,"form"],[12],[2,"\\n "],[8,"role-form",[],[["@form","@item","@dc","@nspace","@partition"],[[34,14],[34,3],[34,10],[34,11],[34,12]]],null],[2,"\\n"],[6,[37,5],[[30,[36,16],[[35,15]],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src"],[[30,[36,13],["/${partition}/${nspace}/${dc}/tokens/for-role/${id}",[30,[36,1],null,[["partition","nspace","dc","id"],[[35,12],[35,11],[35,10],[30,[36,8],[[35,9],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,4],[[32,6,["data","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"h2"],[12],[2,"Where is this role used?"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n We\'re only able to show information for the primary datacenter and the current datacenter. This list may not show every case where this role is applied.\\n "],[13],[2,"\\n "],[8,"token-list",[],[["@caption","@items"],["Tokens",[32,6,["data"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[6]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"div"],[12],[2,"\\n"],[6,[37,5],[[30,[36,17],[[35,15],[30,[36,6],["create roles"],null]],null]],null,[["default","else"],[{"statements":[[2," "],[11,"button"],[16,"disabled",[30,[36,5],[[30,[36,8],[[35,3,["isPristine"]],[35,3,["isInvalid"]],[30,[36,7],[[35,3,["Name"]],""],null]],null],"disabled"],null]],[24,4,"submit"],[4,[38,0],[[32,0],"create",[35,3]],null],[12],[2,"Save"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,6],["write role"],[["item"],[[35,3]]]]],null,[["default"],[{"statements":[[2," "],[11,"button"],[16,"disabled",[30,[36,5],[[35,3,["isInvalid"]],"disabled"],null]],[24,4,"submit"],[4,[38,0],[[32,0],"update",[35,3]],null],[12],[2,"Save"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[11,"button"],[24,4,"reset"],[4,[38,0],[[32,0],"cancel",[35,3]],null],[12],[2,"Cancel"],[13],[2,"\\n"],[6,[37,5],[[30,[36,17],[[30,[36,16],[[35,15]],null],[30,[36,6],["delete role"],[["item"],[[35,3]]]]],null]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to delete this Role?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"type-delete"],[24,4,"button"],[4,[38,0],[[32,0],[32,5],"delete",[35,3]],null],[12],[2,"Delete"],[13],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,4],[[35,2,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[8,"modal-dialog",[],[["@onclose","@aria"],[[30,[36,0],[[32,0],[32,2]],null],[30,[36,1],null,[["label"],["Role in Use"]]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"Role in Use"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This Role is currently in use. If you choose to delete this Role, it will be removed from the following "],[10,"strong"],[12],[1,[35,2,["length"]]],[2," Tokens"],[13],[2,":\\n "],[13],[2,"\\n "],[8,"token-list",[],[["@items","@target"],[[34,2],"_blank"]],null],[2,"\\n "],[10,"p"],[12],[2,"\\n This action cannot be undone. "],[1,[32,3]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"type-delete"],[24,4,"button"],[4,[38,0],[[32,0],[32,1]],null],[12],[2,"Yes, Delete"],[13],[2,"\\n "],[11,"button"],[24,0,"type-cancel"],[24,4,"button"],[4,[38,0],[[32,0],[32,4]],null],[12],[2,"Cancel"],[13],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"delete-confirmation",[],[["@message","@execute","@cancel"],[[32,3],[32,1],[32,2]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[1,2,3]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["action","hash","items","item","gt","if","can","eq","or","id","dc","nspace","partition","uri","form","create","not","and"]}',meta:{moduleName:"consul-ui/templates/dc/acls/roles/-form.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/roles/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"O1z/UWcV",block:'{"symbols":["route","loader","dc","partition","nspace","item","create"],"statements":[[8,"route",[],[["@name"],[[34,3]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,6],["/${partition}/${nspace}/${dc}/role/${id}",[30,[36,5],null,[["partition","nspace","dc","id"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,4],[[32,1,["params","id"]],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,7],[[32,2,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/acl/disabled",[],[[],[]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[32,1,["params","dc"]],[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,2,["data"]],[32,2,["data","isNew"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,0],["dc.acls.roles"],null]],[12],[2,"All Roles"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n"],[6,[37,1],[[32,7]],null,[["default","else"],[{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["New Role"]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["Edit Role"]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,2],[[32,7]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"definition-table"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Role ID"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name","@position"],[[32,6,["ID"]],"Role ID","top-start"]],null],[2," "],[1,[32,6,["ID"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[19,"dc/acls/roles/form",[1,2,3,4,5,6,7]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5,6,7]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":true,"upvars":["href-to","if","not","routeName","or","hash","uri","eq","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/roles/edit.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/roles/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"8C6UqAw5",block:'{"symbols":["route","loader","sort","filters","items","collection"],"statements":[[8,"route",[],[["@name","@title"],[[34,10],"Roles"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,12],["/${partition}/${nspace}/${dc}/roles",[30,[36,11],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,13],[[32,2,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/acl/disabled",[],[[],[]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,20],[[30,[36,11],null,[["value","change"],[[30,[36,19],[[35,18],"Name:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,18]],null]],[["value"],["target.selected"]]]]]],[30,[36,11],null,[["searchproperty"],[[30,[36,11],null,[["value","change","default"],[[30,[36,5],[[30,[36,17],[[35,15],[29]],null],[30,[36,16],[[35,15],","],null],[35,14]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,15]],null]],[["value"],["target.selectedItems"]]],[35,14]]]]]]],[32,2,["data"]]],null,[["default"],[{"statements":[[2,"\\n "],[8,"app-view",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Roles"]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,4],["create roles"],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,3],["dc.acls.roles.create"],null]]]],[14,0,"type-create"],[12],[2,"Create"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/role/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["role",[32,3,["value"]],[32,4],[34,0],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/role/list",[],[["@items","@ondelete"],[[32,6,["items"]],[30,[36,7],["delete"],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,8],["routes.dc.acls.roles.index.empty.header"],[["items"],[[32,5,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,8],["routes.dc.acls.roles.index.empty.body"],[["items","htmlSafe"],[[32,5,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,9],["CONSUL_DOCS_URL"],null],"/commands/acl/role"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Documentation on roles"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,9],["CONSUL_DOCS_API_URL"],null],"/acl/roles.html"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the API Docs"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["search","mut","action","href-to","can","if","gt","route-action","t","env","routeName","hash","uri","eq","searchProperties","searchproperty","split","not-eq","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/roles/index.hbs"}}) +e.default=t})) +define("consul-ui/templates/dc/acls/tokens/-fieldsets-legacy",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"IUa7dEzO",block:'{"symbols":["__arg0","type"],"statements":[[2," "],[10,"fieldset"],[15,"disabled",[30,[36,4],[[30,[36,10],[[30,[36,9],["write token"],[["item"],[[35,0]]]]],null],"disabled"],null]],[12],[2,"\\n "],[10,"label"],[15,0,[31,["type-text",[30,[36,4],[[35,0,["error","Name"]]," has-error"],null]]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Name"],[13],[2,"\\n "],[8,"input",[],[["@value","@name","@autofocus"],[[34,0,["Description"]],"name","autofocus"]],null],[2,"\\n "],[13],[2,"\\n"],[6,[37,4],[false],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,"role","radiogroup"],[15,0,[30,[36,4],[[35,0,["error","Type"]]," has-error"],null]],[12],[2,"\\n"],[6,[37,8],[[30,[36,7],[[30,[36,7],[[30,[36,6],["management","client"],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"label"],[12],[2,"\\n "],[10,"span"],[12],[1,[30,[36,2],[[32,2]],null]],[13],[2,"\\n "],[10,"input"],[14,3,"Type"],[15,2,[31,[[32,2]]]],[15,"checked",[30,[36,4],[[30,[36,3],[[35,0,["Type"]],[32,2]],null],"checked"],null]],[15,"onchange",[30,[36,5],[[32,0],"change"],null]],[14,4,"radio"],[12],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"label"],[14,0,"type-text"],[12],[2,"\\n "],[8,"code-editor",[],[["@class","@name","@syntax","@value","@onkeyup","@namedBlocksInfo"],[[30,[36,4],[[35,0,["error","Rules"]],"error"],null],"Rules","hcl",[34,0,["Rules"]],[30,[36,5],[[32,0],"change","Rules"],null],[30,[36,11],null,[["label"],[0]]]]],[["default"],[{"statements":[[6,[37,4],[[30,[36,12],[[32,1],"label"],null]],null,[["default"],[{"statements":[[2,"\\n Rules "],[10,"a"],[15,6,[31,[[30,[36,1],["CONSUL_DOCS_URL"],null],"/guides/acl.html#rule-specification"]]],[14,"rel","help noopener noreferrer"],[14,"target","_blank"],[12],[2,"(HCL Format)"],[13],[2,"\\n "]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,4],[[35,13]],null,[["default"],[{"statements":[[2," "],[10,"label"],[14,0,"type-text"],[12],[2,"\\n "],[10,"span"],[12],[2,"ID"],[13],[2,"\\n "],[8,"input",[],[["@value"],[[34,0,["ID"]]]],null],[2,"\\n "],[10,"em"],[12],[2,"We\'ll generate a UUID if this field is left empty."],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["item","env","capitalize","eq","if","action","array","-track-array","each","can","not","hash","-is-named-block-invocation","create"]}',meta:{moduleName:"consul-ui/templates/dc/acls/tokens/-fieldsets-legacy.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/tokens/-fieldsets",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"pIlDyS1J",block:'{"symbols":[],"statements":[[10,"fieldset"],[15,"disabled",[30,[36,1],[[30,[36,5],[[30,[36,4],["write token"],[["item"],[[35,3]]]]],null],"disabled"],null]],[12],[2,"\\n"],[6,[37,1],[[35,6]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"type-toggle"],[12],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"input"],[14,3,"Local"],[15,"checked",[30,[36,1],[[35,0],"checked"],null]],[15,"onchange",[30,[36,2],[[32,0],"change"],null]],[14,4,"checkbox"],[12],[13],[2,"\\n "],[10,"span"],[12],[2,"Restrict this token to a local datacenter?"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"em"],[12],[2,"Local tokens get set in the Raft store of the local DC and do not ever get transmitted to the primary DC or replicated to any other DC."],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"label"],[14,0,"type-text validate-optional"],[12],[2,"\\n "],[10,"span"],[12],[2,"Description (Optional)"],[13],[2,"\\n "],[10,"textarea"],[14,3,"Description"],[15,"oninput",[30,[36,2],[[32,0],"change"],null]],[12],[1,[35,3,["Description"]]],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"],[10,"fieldset"],[14,1,"roles"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Roles"],[13],[2,"\\n "],[8,"role-selector",[],[["@disabled","@dc","@partition","@nspace","@items"],[[30,[36,5],[[30,[36,4],["write token"],[["item"],[[35,3]]]]],null],[34,7],[34,8],[34,9],[34,3,["Roles"]]]],null],[2,"\\n"],[13],[2,"\\n"],[10,"fieldset"],[14,1,"policies"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Policies"],[13],[2,"\\n "],[8,"policy-selector",[],[["@disabled","@dc","@partition","@nspace","@items"],[[30,[36,5],[[30,[36,4],["write token"],[["item"],[[35,3]]]]],null],[34,7],[34,8],[34,9],[34,3,["Policies"]]]],null],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["Local","if","action","item","can","not","create","dc","partition","nspace"]}',meta:{moduleName:"consul-ui/templates/dc/acls/tokens/-fieldsets.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/tokens/-form",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"vq0ZKeUV",block:'{"symbols":["execute","cancel","message","confirm"],"statements":[[10,"form"],[12],[2,"\\n"],[6,[37,2],[[30,[36,7],[[30,[36,4],[[35,0]],null]],null]],null,[["default","else"],[{"statements":[[2," "],[19,"dc/acls/tokens/fieldsets",[]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[19,"dc/acls/tokens/fieldsets-legacy",[]],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"div"],[12],[2,"\\n"],[6,[37,2],[[30,[36,5],[[35,8],[30,[36,3],["create tokens"],null]],null]],null,[["default","else"],[{"statements":[[2," "],[11,"button"],[16,"disabled",[30,[36,2],[[30,[36,6],[[30,[36,5],[[30,[36,4],[[35,0]],null],[35,0,["isPristine"]]],null],[35,0,["isInvalid"]]],null],"disabled"],null]],[24,4,"submit"],[4,[38,1],[[32,0],"create",[35,0]],null],[12],[2,"Save"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,3],["write token"],[["item"],[[35,0]]]]],null,[["default"],[{"statements":[[2," "],[11,"button"],[16,"disabled",[30,[36,2],[[35,0,["isInvalid"]],"disabled"],null]],[24,4,"submit"],[4,[38,1],[[32,0],"update",[35,0]],null],[12],[2,"Save"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n "],[11,"button"],[24,4,"reset"],[4,[38,1],[[32,0],"cancel",[35,0]],null],[12],[2,"Cancel"],[13],[2,"\\n"],[6,[37,2],[[30,[36,5],[[30,[36,7],[[35,8]],null],[30,[36,3],["delete token"],[["item","token"],[[35,0],[35,9]]]]],null]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to delete this Token?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,0,"type-delete"],[24,4,"button"],[4,[38,1],[[32,0],[32,4],"delete",[35,0]],null],[12],[2,"Delete"],[13],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[8,"delete-confirmation",[],[["@message","@execute","@cancel"],[[32,3],[32,1],[32,2]]],null],[2,"\\n "]],"parameters":[1,2,3]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":true,"upvars":["item","action","if","can","token/is-legacy","and","or","not","create","token"]}',meta:{moduleName:"consul-ui/templates/dc/acls/tokens/-form.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/tokens/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"jGx0lf6+",block:'{"symbols":["route","loader","dc","partition","nspace","item","create","notice","execute","cancel","message","confirm"],"statements":[[8,"route",[],[["@name"],[[34,10]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,13],["/${partition}/${nspace}/${dc}/token/${id}",[30,[36,12],null,[["partition","nspace","dc","id"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,11],[[32,1,["params","id"]],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,0],[[30,[36,14],[[32,2,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/acl/disabled",[],[[],[]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[32,1,["params","dc"]],[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,2,["data"]],[32,2,["data","isNew"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,9],["dc.acls.tokens"],null]],[12],[2,"All Tokens"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n"],[6,[37,0],[[32,7]],null,[["default","else"],[{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["New Token"]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["Edit Token"]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,0],[[30,[36,1],[[32,7]],null]],null,[["default"],[{"statements":[[6,[37,0],[[30,[36,7],[[32,6,["AccessorID"]],[35,6,["AccessorID"]]],null]],null,[["default"],[{"statements":[[2," "],[8,"confirmation-dialog",[],[["@message"],["Are you sure you want to use this ACL token?"]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["action"]],[["default"],[{"statements":[[2,"\\n "],[11,"button"],[24,4,"button"],[4,[38,5],[[32,0],[32,12],"use",[32,6]],null],[12],[2,"Use"],[13],[2,"\\n "]],"parameters":[12]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["dialog"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[32,11]],[2,"\\n "],[13],[2,"\\n "],[11,"button"],[24,0,"type-delete"],[24,4,"button"],[4,[38,5],[[32,0],[32,9]],null],[12],[2,"Confirm Use"],[13],[2,"\\n "],[11,"button"],[24,0,"type-cancel"],[24,4,"button"],[4,[38,5],[[32,0],[32,10]],null],[12],[2,"Cancel"],[13],[2,"\\n "]],"parameters":[9,10,11]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,0],[[30,[36,8],["duplicate token"],[["item"],[[32,6]]]]],null,[["default"],[{"statements":[[2," "],[11,"button"],[24,4,"button"],[4,[38,5],[[32,0],"clone",[32,6]],null],[12],[2,"Duplicate"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,0],[[30,[36,2],[[32,6]],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[],[["@type"],["info"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"Update"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n We have upgraded our ACL system by allowing you to create reusable policies which you can then apply to tokens. Don\'t worry, even though this token was written in the old style, it is still valid. However, we do recommend upgrading your old tokens to the new style. Learn how in our "],[10,"a"],[15,6,[31,[[30,[36,4],["CONSUL_DOCS_URL"],null],"/guides/acl-migrate-tokens.html"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"documentation"],[13],[2,".\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,0],[[30,[36,1],[[32,7]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"definition-table"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"AccessorID"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name","@position"],[[32,6,["AccessorID"]],"AccessorID","top-start"]],null],[2," "],[1,[32,6,["AccessorID"]]],[2,"\\n "],[13],[2,"\\n "],[10,"dt"],[12],[2,"Token"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[8,"copy-button",[],[["@value","@name","@position"],[[32,6,["SecretID"]],"Token","top-start"]],null],[2," "],[8,"secret-button",[],[[],[]],[["default"],[{"statements":[[1,[32,6,["SecretID"]]]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,0],[[30,[36,3],[[30,[36,1],[[30,[36,2],[[32,6]],null]],null],[30,[36,1],[[32,7]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"dt"],[12],[2,"Scope"],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,0],[[32,6,["Local"]],"local","global"],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[19,"dc/acls/tokens/form",[1,2,3,4,5,6,7]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5,6,7]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":true,"upvars":["if","not","token/is-legacy","and","env","action","token","not-eq","can","href-to","routeName","or","hash","uri","eq","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/tokens/edit.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/acls/tokens/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"ghj4WLgF",block:'{"symbols":["route","loader","sort","filters","items","collection","notice"],"statements":[[8,"route",[],[["@name"],[[34,11]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,13],["/${partition}/${nspace}/${dc}/tokens",[30,[36,12],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,14],[[32,2,["error","status"]],"401"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/acl/disabled",[],[[],[]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,22],[[30,[36,12],null,[["value","change"],[[30,[36,21],[[35,20],"CreateTime:desc"],null],[30,[36,3],[[32,0],[30,[36,2],[[35,20]],null]],[["value"],["target.selected"]]]]]],[30,[36,12],null,[["kind","searchproperty"],[[30,[36,12],null,[["value","change"],[[30,[36,6],[[35,19],[30,[36,17],[[35,19],","],null],[29]],null],[30,[36,3],[[32,0],[30,[36,2],[[35,19]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,12],null,[["value","change","default"],[[30,[36,6],[[30,[36,18],[[35,16],[29]],null],[30,[36,17],[[35,16],","],null],[35,15]],null],[30,[36,3],[[32,0],[30,[36,2],[[35,16]],null]],[["value"],["target.selectedItems"]]],[35,15]]]]]]],[32,2,["data"]]],null,[["default"],[{"statements":[[2,"\\n "],[8,"app-view",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Tokens"]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,5],["create tokens"],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,4],["dc.acls.tokens.create"],null]]]],[14,0,"type-create"],[12],[2,"Create"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,7],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/token/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,1],[30,[36,3],[[32,0],[30,[36,2],[[35,1]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,8],[[32,5]],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[],[["@type"],["info"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"Update"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"We have upgraded our ACL System to allow the creation of reusable policies that can be applied to tokens. Read more about the changes and how to upgrade legacy tokens in our "],[10,"a"],[15,6,[31,[[30,[36,0],["CONSUL_DOCS_URL"],null],"/guides/acl-migrate-tokens.html"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"documentation"],[13],[2,"."],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["token",[32,3,["value"]],[32,4],[34,1],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/token/list",[],[["@items","@token","@onuse","@ondelete","@onlogout","@onclone"],[[32,6,["items"]],[32,1,["model","user","token"]],[30,[36,9],["use"],null],[30,[36,9],["delete"],null],[30,[36,9],["logout"],null],[30,[36,9],["clone"],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,10],["routes.dc.acls.tokens.index.empty.header"],[["items"],[[32,5,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,10],["routes.dc.acls.tokens.index.empty.body"],[["items","htmlSafe"],[[32,5,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["env","search","mut","action","href-to","can","if","gt","token/is-legacy","route-action","t","routeName","hash","uri","eq","searchProperties","searchproperty","split","not-eq","kind","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/acls/tokens/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/intentions/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"e81sBB7+",block:'{"symbols":["route","loader","item","readOnly"],"statements":[[8,"route",[],[["@name"],[[34,5]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,7],["/${partition}/${nspace}/${dc}/intention/${id}",[30,[36,3],null,[["partition","nspace","dc","id"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,6],[[32,1,["params","intention_id"]],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,10],[[32,2,["data"]],[30,[36,2],[[30,[36,9],["write intention"],[["item"],[[35,8]]]]],null]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,1],["dc.intentions"],null]],[12],[2,"All Intentions"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n"],[6,[37,0],[[30,[36,2],[[32,4]],null]],null,[["default","else"],[{"statements":[[6,[37,0],[[32,3,["ID"]]],null,[["default","else"],[{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["Edit Intention"]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["New Intention"]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["View Intention"]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/intention/form",[],[["@readonly","@item","@dc","@nspace","@partition","@onsubmit"],[[32,4],[32,3],[32,1,["model","dc"]],[32,1,["params","nspace"]],[32,1,["params","partition"]],[30,[36,4],["transitionTo","dc.intentions.index",[30,[36,3],null,[["dc"],[[32,1,["params","dc"]]]]]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["if","href-to","not","hash","route-action","routeName","or","uri","item","can","let"]}',meta:{moduleName:"consul-ui/templates/dc/intentions/edit.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/intentions/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"yq7mXGuh",block:'{"symbols":["route","api","sort","filters","items","writer","collection","list"],"statements":[[8,"route",[],[["@name"],[[34,13]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,9],["/${partition}/${nspace}/${dc}/intentions",[30,[36,8],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,21],[[30,[36,8],null,[["value","change"],[[30,[36,20],[[35,19],"Action:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,19]],null]],[["value"],["target.selected"]]]]]],[30,[36,8],null,[["access","searchproperty"],[[30,[36,8],null,[["value","change"],[[30,[36,6],[[35,18],[30,[36,16],[[35,18],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,18]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,8],null,[["value","change","default"],[[30,[36,6],[[30,[36,17],[[35,15],[29]],null],[30,[36,16],[[35,15],","],null],[35,14]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,15]],null]],[["value"],["target.selectedItems"]]],[35,14]]]]]]],[32,2,["data"]]],null,[["default"],[{"statements":[[2,"\\n "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Intentions"]],null],[2," "],[10,"em"],[12],[1,[30,[36,4],[[32,5,["length"]]],null]],[2," total"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[14,"for","toolbar-toggle"],[12],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,5],["create intentions"],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,3],["dc.intentions.create"],null]]]],[14,0,"type-create"],[12],[2,"Create"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,6],[[30,[36,7],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/intention/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-writer",[],[["@sink","@type","@ondelete"],[[30,[36,9],["/${partition}/${dc}/${nspace}/intention/",[30,[36,8],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null],"intention",[34,10]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["intention",[32,3,["value"]],[32,4],[34,0],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/intention/list",[],[["@items","@delete"],[[32,7,["items"]],[32,6,["delete"]]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["CustomResourceNotice"]],[],[[],[]],null],[2,"\\n "],[8,[32,8,["Table"]],[],[[],[]],null],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,11],["routes.dc.intentions.index.empty.header"],[["items"],[[32,5,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,11],["routes.dc.intentions.index.empty.body"],[["items","htmlSafe"],[[32,5,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,12],["CONSUL_DOCS_URL"],null],"/commands/intention"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Documentation on intentions"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,12],["CONSUL_DOCS_LEARN_URL"],null],"/consul/getting-started/connect"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Take the tutorial"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n"]],"parameters":[3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["search","mut","action","href-to","format-number","can","if","gt","hash","uri","refresh-route","t","env","routeName","searchProperties","searchproperty","split","not-eq","access","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/intentions/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/kv/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"3Thl/bd4",block:'{"symbols":["route","separator","parentKey","loader","dc","partition","nspace","item","parts","breadcrumb","index"],"statements":[[8,"route",[],[["@name"],[[34,23]]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,18],["/"],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,18],[[30,[36,6],[[30,[36,12],[[32,2],[30,[36,10],[0,-1,[30,[36,17],[[32,1,["params","key"]],[32,2]],null]],null]],null],[32,2]],null]],null,[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,2],["/${partition}/${nspace}/${dc}/kv/${key}",[30,[36,1],null,[["partition","nspace","dc","key"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,7],[[30,[36,24],[[35,23],"create"],null],"",[32,1,["params","key"]]],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,4,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,18],[[32,1,["params","dc"]],[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,4,["data"]]],null,[["default"],[{"statements":[[2,"\\n "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[2,"\\n "],[8,"action",[],[["@href"],[[30,[36,13],["dc.kv.index"],null]]],[["default"],[{"statements":[[2,"\\n Key / Values\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,7],[[30,[36,19],[[32,3],[32,2]],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,18],[[30,[36,17],[[32,3],[32,2]],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,16],[[30,[36,15],[[30,[36,15],[[32,9]],null]],null]],null,[["default"],[{"statements":[[6,[37,7],[[30,[36,14],[[32,10,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[2,"\\n "],[8,"action",[],[["@href"],[[30,[36,13],["dc.kv.folder",[30,[36,12],["/",[30,[36,11],[[30,[36,10],[0,[30,[36,9],[[32,11],1],null],[32,9]],null],""],null]],null]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,10]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[10,11]}]]]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n"],[6,[37,7],[[30,[36,20],[[32,8,["Key"]],[30,[36,19],[[32,8,["Key"]],[32,3]],null]],null]],null,[["default","else"],[{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title","@render"],["Edit Key / Value",false]],null],[2,"\\n "],[1,[30,[36,8],[[32,8,["Key"]],[32,3]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title","@render"],["New Key / Value",true]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,7],[[32,8,["Session"]]],null,[["default"],[{"statements":[[2," "],[8,"consul/lock-session/notifications",[],[["@type"],["kv"]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[8,"consul/kv/form",[],[["@item","@dc","@nspace","@partition","@onsubmit","@parent"],[[32,8],[32,1,["params","dc"]],[32,1,["params","nspace"]],[32,1,["params","partition"]],[30,[36,7],[[30,[36,22],[[32,3],[32,2]],null],[30,[36,21],["dc.kv.index"],null],[30,[36,21],["dc.kv.folder",[32,3]],null]],null],[32,3]]],null],[2,"\\n\\n\\n"],[6,[37,7],[[30,[36,20],[[32,8,["Session"]]],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,2],["/${partition}/${nspace}/${dc}/sessions/for-key/${id}",[30,[36,1],null,[["partition","nspace","dc","id"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,8,["Session"]]]]]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,0]],null]],[["value"],["data"]]]]],null],[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[8,"action",[[24,"rel","help"]],[["@href","@external"],[[30,[36,6],[[30,[36,5],["CONSUL_DOCS_URL"],null],"/internals/sessions.html#session-design"],null],true]],[["default"],[{"statements":[[2,"\\n Lock Session\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,7],[[35,0,["ID"]]],null,[["default"],[{"statements":[[2," "],[8,"consul/lock-session/form",[],[["@item","@ondelete"],[[34,0],[32,4,["invalidate"]]]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5,6,7,8]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n"]],"parameters":[3]}]]]],"parameters":[2]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["session","hash","uri","mut","action","env","concat","if","left-trim","add","slice","append","join","href-to","gt","-track-array","each","split","let","not-eq","and","transition-to","eq","routeName","string-ends-with"]}',meta:{moduleName:"consul-ui/templates/dc/kv/edit.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/kv/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"46JF00/h",block:'{"symbols":["route","loader","sort","filters","parent","items","writer","collection","breadcrumb","index","after","notice","notice","notice"],"statements":[[8,"route",[],[["@name"],[[34,25]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,20],["/${partition}/${nspace}/${dc}/kv/${key}",[30,[36,19],null,[["partition","nspace","dc","key"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,26],[[32,1,["params","key"]],"/"],null]]]]],null],[30,[36,5],[[32,0],[30,[36,4],[[35,27]],null]],[["value"],["data"]]]]],null],[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,20],["/${partition}/${nspace}/${dc}/kvs/${key}",[30,[36,19],null,[["partition","nspace","dc","key"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,26],[[32,1,["params","key"]],"/"],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["disconnected"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[30,[36,16],[[32,2,["error","status"]],"404"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,24],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,14,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,14,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This KV or parent of this KV was deleted.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,16],[[32,2,["error","status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,24],null,[["sticky"],[true]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,13,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,13,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n You no longer have access to this KV.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[13]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,24],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,12,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,12,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n An error was returned whilst loading this data, refresh to try again.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[12]}]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[11]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,30],[[30,[36,19],null,[["value","change"],[[30,[36,26],[[35,29],"Kind:asc"],null],[30,[36,5],[[32,0],[30,[36,4],[[35,29]],null]],[["value"],["target.selected"]]]]]],[30,[36,19],null,[["kind"],[[30,[36,19],null,[["value","change"],[[30,[36,2],[[35,28],[30,[36,6],[[35,28],","],null],[29]],null],[30,[36,5],[[32,0],[30,[36,4],[[35,28]],null]],[["value"],["target.selectedItems"]]]]]]]]],[35,27],[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,5,["Key"]],"/"],null]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,0],["dc.kv"],null]],[12],[2,"Key / Values"],[13],[13],[2,"\\n"],[6,[37,15],[[30,[36,14],[[30,[36,14],[[30,[36,11],[0,-2,[30,[36,6],[[32,5,["Key"]],"/"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,0],["dc.kv.folder",[30,[36,13],["/",[30,[36,12],[[30,[36,11],[0,[30,[36,10],[[32,10],1],null],[30,[36,6],[[32,5,["Key"]],"/"],null]],null],""],null]],null]],null]],[12],[1,[32,9]],[13],[13],[2,"\\n"]],"parameters":[9,10]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n"],[6,[37,2],[[30,[36,16],[[32,5,["Key"]],"/"],null]],null,[["default","else"],[{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],["Key / Value"]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,[32,1,["Title"]],[],[["@title"],[[30,[36,9],[1,[30,[36,8],[1,[30,[36,7],[[30,[36,6],[[32,5,["Key"]],"/"],null]],null]],null]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"label"],[14,"for","toolbar-toggle"],[12],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[30,[36,17],[[32,6,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/kv/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,3],[30,[36,5],[[32,0],[30,[36,4],[[35,3]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[30,[36,18],["create kvs"],null]],null,[["default"],[{"statements":[[6,[37,2],[[30,[36,1],[[32,5,["Key"]],"/"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,0],["dc.kv.create",[32,5,["Key"]]],null]]]],[14,0,"type-create"],[12],[2,"Create"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,0],["dc.kv.root-create"],null]]]],[14,0,"type-create"],[12],[2,"Create"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-writer",[],[["@sink","@type","@label","@ondelete"],[[30,[36,20],["/${partition}/${nspace}/${dc}/kv/",[30,[36,19],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null],"kv","key",[34,21]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["kv",[32,3,["value"]],[32,4],[34,3],[32,6]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/kv/list",[],[["@items","@parent","@delete"],[[32,8,["items"]],[32,5],[32,7,["delete"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,22],["routes.dc.kv.index.empty.header"],[["items"],[[32,6,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,22],["routes.dc.kv.index.empty.body"],[["items","htmlSafe"],[[32,6,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,23],["CONSUL_DOCS_URL"],null],"/agent/kv"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Documentation on K/V"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,23],["CONSUL_DOCS_LEARN_URL"],null],"/consul/getting-started/kv"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Take the tutorial"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["href-to","not-eq","if","search","mut","action","split","reverse","drop","take","add","slice","append","join","-track-array","each","eq","gt","can","hash","uri","refresh-route","t","env","notification","routeName","or","parent","kind","sortBy","let"]}',meta:{moduleName:"consul-ui/templates/dc/kv/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nodes/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"C5bHf0Hx",block:'{"symbols":["route","leader","api","sort","filters","items","leader","collection"],"statements":[[8,"route",[],[["@name"],[[34,7]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"data-source",[],[["@src"],[[30,[36,9],["/${partition}/${nspace}/${dc}/leader",[30,[36,8],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"data-loader",[],[["@src"],[[30,[36,9],["/${partition}/${nspace}/${dc}/nodes",[30,[36,8],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,3,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,17],[[30,[36,8],null,[["value","change"],[[30,[36,16],[[35,15],"Status:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,15]],null]],[["value"],["target.selected"]]]]]],[30,[36,8],null,[["status","searchproperty"],[[30,[36,8],null,[["value","change"],[[30,[36,5],[[35,14],[30,[36,12],[[35,14],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,14]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,8],null,[["value","change","default"],[[30,[36,5],[[30,[36,13],[[35,11],[29]],null],[30,[36,12],[[35,11],","],null],[35,10]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,11]],null]],[["value"],["target.selectedItems"]]],[35,10]]]]]]],[32,3,["data"]],[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Nodes"]],null],[2," "],[10,"em"],[12],[1,[30,[36,3],[[32,6,["length"]]],null]],[2," total"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[14,"for","toolbar-toggle"],[12],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,4],[[32,6,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/node/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,4],[32,5]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["node",[32,4,["value"]],[32,5],[34,0],[32,6]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/node/list",[],[["@items","@leader"],[[32,8,["items"]],[32,7]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,6],["routes.dc.nodes.index.empty.header"],[["items"],[[32,6,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,6],["routes.dc.nodes.index.empty.body"],[["items","htmlSafe"],[[32,6,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[4,5,6,7]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n "]],"parameters":[1]}]]]],"hasEval":false,"upvars":["search","mut","action","format-number","gt","if","t","routeName","hash","uri","searchProperties","searchproperty","split","not-eq","status","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/nodes/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nodes/show",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"AGs+VtxL",block:'{"symbols":["route","tomography","loader","item","tomography","o","status","type","after","notice","notice","notice"],"statements":[[8,"route",[],[["@name"],[[34,8]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src"],[[30,[36,14],["/${partition}/${nspace}/${dc}/coordinates/for-node/${name}",[30,[36,3],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,14],["/${partition}/${nspace}/${dc}/node/${name}",[30,[36,3],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,3,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["disconnected"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,13],[[32,3,["error","status"]],"404"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,12],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,12,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,12,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This node no longer exists in the catalog.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[12]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,5],[[30,[36,13],[[32,3,["error","status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,12],null,[["sticky"],[true]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,11,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,11,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n You no longer have access to this node\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[11]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,12],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,10,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,10,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n An error was returned whilst loading this data, refresh to try again.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[10]}]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[9]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[32,3,["data"]],[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["notification"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/lock-session/notifications",[],[["@type","@status"],[[32,8],[32,7]]],null],[2,"\\n "]],"parameters":[7,8]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,0],["dc.nodes"],null]],[12],[2,"All Nodes"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],[[32,4,["Node"]]]],null],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[14,"for","toolbar-toggle"],[12],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["nav"]],[["default"],[{"statements":[[2,"\\n "],[8,"tab-nav",[],[["@items"],[[30,[36,7],[[30,[36,6],[[30,[36,3],null,[["label","href","selected"],[[30,[36,2],["routes.dc.nodes.show.healthchecks.title"],null],[30,[36,0],["dc.nodes.show.healthchecks"],null],[30,[36,1],["dc.nodes.show.healthchecks"],null]]]],[30,[36,3],null,[["label","href","selected"],[[30,[36,2],["routes.dc.nodes.show.services.title"],null],[30,[36,0],["dc.nodes.show.services"],null],[30,[36,1],["dc.nodes.show.services"],null]]]],[30,[36,5],[[32,5,["distances"]],[30,[36,3],null,[["label","href","selected"],[[30,[36,2],["routes.dc.nodes.show.rtt.title"],null],[30,[36,0],["dc.nodes.show.rtt"],null],[30,[36,1],["dc.nodes.show.rtt"],null]]]],""],null],[30,[36,5],[[30,[36,4],["read sessions"],null],[30,[36,3],null,[["label","href","selected"],[[30,[36,2],["routes.dc.nodes.show.sessions.title"],null],[30,[36,0],["dc.nodes.show.sessions"],null],[30,[36,1],["dc.nodes.show.sessions"],null]]]],""],null],[30,[36,3],null,[["label","href","selected"],[[30,[36,2],["routes.dc.nodes.show.metadata.title"],null],[30,[36,0],["dc.nodes.show.metadata"],null],[30,[36,1],["dc.nodes.show.metadata"],null]]]]],null]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"copy-button",[],[["@value","@name"],[[32,4,["Address"]],"Address"]],[["default"],[{"statements":[[1,[32,4,["Address"]]]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"outlet",[],[["@name","@model"],[[34,8],[30,[36,9],[[30,[36,3],null,[["item","tomography"],[[32,4],[32,5]]]],[32,1,["model"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,11],[[30,[36,10],null,null]],null]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["href-to","is-href","t","hash","can","if","array","compact","routeName","assign","-outlet","component","notification","eq","uri","let"]}',meta:{moduleName:"consul-ui/templates/dc/nodes/show.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nodes/show/healthchecks",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"bJw4npZ1",block:'{"symbols":["route","sort","filters","items","collection","serf","notice"],"statements":[[8,"route",[],[["@name"],[[34,10]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[30,[36,15],null,[["value","change"],[[30,[36,20],[[35,19],"Status:asc"],null],[30,[36,6],[[32,0],[30,[36,5],[[35,19]],null]],[["value"],["target.selected"]]]]]],[30,[36,15],null,[["status","kind","check","searchproperty"],[[30,[36,15],null,[["value","change"],[[30,[36,3],[[35,18],[30,[36,13],[[35,18],","],null],[29]],null],[30,[36,6],[[32,0],[30,[36,5],[[35,18]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,15],null,[["value","change"],[[30,[36,3],[[35,17],[30,[36,13],[[35,17],","],null],[29]],null],[30,[36,6],[[32,0],[30,[36,5],[[35,17]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,15],null,[["value","change"],[[30,[36,3],[[35,16],[30,[36,13],[[35,16],","],null],[29]],null],[30,[36,6],[[32,0],[30,[36,5],[[35,16]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,15],null,[["value","change","default"],[[30,[36,3],[[30,[36,14],[[35,12],[29]],null],[30,[36,13],[[35,12],","],null],[35,11]],null],[30,[36,6],[[32,0],[30,[36,5],[[35,12]],null]],[["value"],["target.selectedItems"]]],[35,11]]]]]]],[32,1,["model","item","Checks"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,3],[[30,[36,7],[[32,4,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"input"],[14,1,"toolbar-toggle"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[8,"consul/health-check/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,4],[30,[36,6],[[32,0],[30,[36,5],[[35,4]],null]],[["value"],["target.value"]]],[32,2],[32,3]]],null],[2,"\\n"]],"parameters":[]}]]],[6,[37,9],[[30,[36,8],["Type","serf",[32,4]],null]],null,[["default"],[{"statements":[[6,[37,3],[[30,[36,2],[[32,6],[30,[36,1],[[32,6,["Status"]],"critical"],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,0],["routes.dc.nodes.show.healthchecks.critical-serf-notice.header"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.nodes.show.healthchecks.critical-serf-notice.body"],[["htmlSafe"],[true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[6]}]]],[2," "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["health-check",[32,2,["value"]],[32,3],[34,4],[32,4]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/health-check/list",[],[["@items"],[[32,5,["items"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.nodes.show.healthchecks.empty"],[["items","htmlSafe"],[[32,4,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2,3,4]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["t","eq","and","if","search","mut","action","gt","find-by","let","routeName","searchProperties","searchproperty","split","not-eq","hash","check","kind","status","sortBy","or"]}',meta:{moduleName:"consul-ui/templates/dc/nodes/show/healthchecks.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nodes/show/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"m12qfaqn",block:'{"symbols":["route"],"statements":[[8,"route",[],[["@name"],[[34,2]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,3],[[32,1,["model","item","Checks","length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],[[30,[36,0],["replaceWith","dc.nodes.show.services"],null]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[30,[36,1],[[30,[36,0],["replaceWith","dc.nodes.show.healthchecks"],null]],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["route-action","did-insert","routeName","eq","if"]}',meta:{moduleName:"consul-ui/templates/dc/nodes/show/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nodes/show/metadata",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"etmR4DHA",block:'{"symbols":["route"],"statements":[[8,"route",[],[["@name"],[[34,1]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,2],[[32,1,["model","item","Meta"]]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/metadata/list",[],[["@items"],[[30,[36,0],[[32,1,["model","item","Meta"]]],null]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This node has no metadata.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["entries","routeName","if"]}',meta:{moduleName:"consul-ui/templates/dc/nodes/show/metadata.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nodes/show/rtt",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"P8rIllxs",block:'{"symbols":["route","tomography"],"statements":[[8,"route",[],[["@name"],[[34,5]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,1,["model","tomography"]]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,2,["distances"]]],null]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,2],[[30,[36,1],["replaceWith","dc.nodes.show"],null]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n "],[10,"div"],[14,0,"definition-table"],[12],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n Minimum\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,0],[[32,2,["min"]]],[["maximumFractionDigits"],[2]]]],[2,"ms\\n "],[13],[2,"\\n "],[10,"dt"],[12],[2,"\\n Median\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,0],[[32,2,["median"]]],[["maximumFractionDigits"],[2]]]],[2,"ms\\n "],[13],[2,"\\n "],[10,"dt"],[12],[2,"\\n Maximum\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,0],[[32,2,["max"]]],[["maximumFractionDigits"],[2]]]],[2,"ms\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"consul/tomography/graph",[],[["@distances"],[[32,2,["distances"]]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[2]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["format-number","route-action","did-insert","not","if","routeName","let"]}',meta:{moduleName:"consul-ui/templates/dc/nodes/show/rtt.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nodes/show/services",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"2fksFjAV",block:'{"symbols":["route","sort","filters","items","proxies","collection"],"statements":[[8,"route",[],[["@name"],[[34,9]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,18],[[30,[36,13],null,[["value","change"],[[30,[36,17],[[35,16],"Status:asc"],null],[30,[36,4],[[32,0],[30,[36,3],[[35,16]],null]],[["value"],["target.selected"]]]]]],[30,[36,13],null,[["status","source","searchproperty"],[[30,[36,13],null,[["value","change"],[[30,[36,7],[[35,15],[30,[36,11],[[35,15],","],null],[29]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,15]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,13],null,[["value","change"],[[30,[36,7],[[35,14],[30,[36,11],[[35,14],","],null],[29]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,14]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,13],null,[["value","change","default"],[[30,[36,7],[[30,[36,12],[[35,10],[29]],null],[30,[36,11],[[35,10],","],null],[35,5]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,10]],null]],[["value"],["target.selectedItems"]]],[35,5]]]]]]],[32,1,["model","item","MeshServiceInstances"]],[32,1,["model","item","ProxyServiceInstances"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,7],[[30,[36,6],[[32,4,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"input"],[14,1,"toolbar-toggle"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[8,"consul/service-instance/search-bar",[],[["@sources","@search","@onsearch","@searchproperties","@sort","@filter"],[[30,[36,1],[[30,[36,0],[[32,4]],null],"ExternalSources"],null],[34,2],[30,[36,4],[[32,0],[30,[36,3],[[35,2]],null]],[["value"],["target.value"]]],[34,5],[32,2],[32,3]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["service-instance",[32,2,["value"]],[32,3],[34,2],[32,4]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/service-instance/list",[],[["@node","@routeName","@items","@proxies"],[[32,1,["model","item"]],"dc.services.show",[32,6,["items"]],[32,5]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,8],["routes.dc.nodes.show.services.empty"],[["items","htmlSafe"],[[32,4,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2,3,4,5]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["collection","get","search","mut","action","searchProperties","gt","if","t","routeName","searchproperty","split","not-eq","hash","source","status","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/nodes/show/services.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nodes/show/sessions",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"FSj+j5r9",block:'{"symbols":["route","api","items","writer","collection","after","error","after"],"statements":[[8,"route",[],[["@name"],[[34,7]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,1],["/${partition}/${nspace}/${dc}/sessions/for-node/${node}",[30,[36,0],null,[["partition","nspace","dc","node"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n "],[8,"data-writer",[],[["@sink","@type","@label","@ondelete"],[[30,[36,1],["/${partition}/${dc}/${nspace}/session/",[30,[36,0],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null],"session","Lock Session",[34,2]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["removed"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/lock-session/notifications",[[4,[38,4],null,[["after"],[[30,[36,3],[[32,0],[32,8]],null]]]]],[["@type"],["remove"]],null],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/lock-session/notifications",[[4,[38,4],null,[["after"],[[30,[36,3],[[32,0],[32,6]],null]]]]],[["@type","@error"],["remove",[32,7]]],null],[2,"\\n "]],"parameters":[6,7]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"data-collection",[],[["@type","@items"],["session",[32,3]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,[32,5,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/lock-session/list",[],[["@items","@ondelete"],[[32,5,["items"]],[32,4,["delete"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,5,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,5],["routes.dc.nodes.show.sessions.empty.header"],[["items"],[[32,3,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,5],["routes.dc.nodes.show.sessions.empty.body"],[["htmlSafe"],[true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[8,"action",[],[["@href","@external"],[[31,[[30,[36,6],["CONSUL_DOCS_URL"],null],"/internals/sessions.html"]],true]],[["default"],[{"statements":[[2,"\\n Documentation on Lock Sessions\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[8,"action",[],[["@href","@external"],[[31,[[30,[36,6],["CONSUL_DOCS_LEARN_URL"],null],"/tutorials/consul/distributed-semaphore"]],true]],[["default"],[{"statements":[[2,"\\n Take the tutorial\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "]],"parameters":[5]}]]],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["hash","uri","refresh-route","action","notification","t","env","routeName","let"]}',meta:{moduleName:"consul-ui/templates/dc/nodes/show/sessions.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nspaces/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"vtIZmmQj",block:'{"symbols":["route","loader","dc","partition","nspace","item","create"],"statements":[[8,"route",[],[["@name"],[[34,4]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,7],["/${partition}/${nspace}/${dc}/namespace/${id}",[30,[36,6],null,[["partition","nspace","dc","id"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,5],[[32,1,["params","name"]],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[32,1,["params","dc"]],[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,2,["data"]],[32,2,["data","isNew"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,0],["dc.nspaces"],null]],[12],[2,"All Namespaces"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],[[30,[36,2],[[32,7],"New Namespace",[30,[36,1],["Edit ",[32,6,["Name"]]],null]],null]]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/nspace/form",[],[["@item","@dc","@nspace","@partition","@onsubmit"],[[32,6],[32,1,["params","dc"]],[32,1,["params","nspace"]],[32,1,["params","partition"]],[30,[36,3],["dc.nspaces.index"],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5,6,7]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["href-to","concat","if","transition-to","routeName","or","hash","uri","let"]}',meta:{moduleName:"consul-ui/templates/dc/nspaces/edit.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/nspaces/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"0ldYIvBg",block:'{"symbols":["route","loader","sort","filters","items","writer","collection","after"],"statements":[[8,"route",[],[["@name"],[[34,12]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,8],["/${partition}/${nspace}/${dc}/namespaces",[30,[36,7],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,19],[[30,[36,7],null,[["value","change"],[[30,[36,18],[[35,17],"Name:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,17]],null]],[["value"],["target.selected"]]]]]],[30,[36,7],null,[["searchproperty"],[[30,[36,7],null,[["value","change","default"],[[30,[36,5],[[30,[36,16],[[35,14],[29]],null],[30,[36,15],[[35,14],","],null],[35,13]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,14]],null]],[["value"],["target.selectedItems"]]],[35,13]]]]]]],[32,2,["data"]]],null,[["default"],[{"statements":[[2,"\\n "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Namespaces"]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,4],["create nspaces"],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,[[30,[36,3],["dc.nspaces.create"],null]]]],[14,0,"type-create"],[12],[2,"Create"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/nspace/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-writer",[],[["@sink","@type","@label","@ondelete"],[[30,[36,8],["/${partition}/${dc}/${nspace}/nspace/",[30,[36,7],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null],"nspace","Namespace",[34,9]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["removed"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/nspace/notifications",[[4,[38,10],null,[["after"],[[30,[36,2],[[32,0],[32,8]],null]]]]],[["@type"],["remove"]],null],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["nspace",[32,3,["value"]],[32,4],[34,0],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/nspace/list",[],[["@items","@ondelete"],[[32,7,["items"]],[32,6,["delete"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," No namespaces found\\n"]],"parameters":[]},{"statements":[[2," Welcome to Namespaces\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," No namespaces where found matching that search, or you may not have access to view the namespaces you are searching for.\\n"]],"parameters":[]},{"statements":[[2," There don\'t seem to be any namespaces, or you may not have access to view namespaces yet.\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,11],["CONSUL_DOCS_URL"],null],"/commands/namespace"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Documentation on namespaces"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,11],["CONSUL_DOCS_LEARN_URL"],null],"/consul/namespaces/secure-namespaces"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Read the guide"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["search","mut","action","href-to","can","if","gt","hash","uri","refresh-route","notification","env","routeName","searchProperties","searchproperty","split","not-eq","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/nspaces/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/partitions/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"ENp7Mr/r",block:'{"symbols":["route","loader","dc","partition","nspace","item"],"statements":[[8,"route",[],[["@name"],[[34,5]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,8],["/${partition}/${nspace}/${dc}/partition/${id}",[30,[36,7],null,[["partition","nspace","dc","id"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,6],[[32,1,["params","name"]],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[32,1,["params","dc"]],[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,0],["dc.partitions"],null]],[12],[2,"All Admin Partitions"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],[[30,[36,3],[[30,[36,2],["new partition"],[["item"],[[32,6]]]],"New Partition",[30,[36,1],["Edit ",[32,6,["Name"]]],null]],null]]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"consul/partition/form",[],[["@item","@dc","@nspace","@partition","@onsubmit"],[[32,6],[32,1,["params","dc"]],[32,1,["params","nspace"]],[32,1,["params","partition"]],[30,[36,4],["dc.partitions.index"],null]]],null],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["href-to","concat","is","if","transition-to","routeName","or","hash","uri","let"]}',meta:{moduleName:"consul-ui/templates/dc/partitions/edit.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/partitions/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"noxbZ0Vh",block:'{"symbols":["route","loader","sort","filters","items","writer","collection","after"],"statements":[[8,"route",[],[["@name"],[[34,12]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,8],["/${partition}/${nspace}/${dc}/partitions",[30,[36,7],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,19],[[30,[36,7],null,[["value","change"],[[30,[36,18],[[35,17],"Name:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,17]],null]],[["value"],["target.selected"]]]]]],[30,[36,7],null,[["searchproperty"],[[30,[36,7],null,[["value","change","default"],[[30,[36,5],[[30,[36,16],[[35,14],[29]],null],[30,[36,15],[[35,14],","],null],[35,13]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,14]],null]],[["value"],["target.selectedItems"]]],[35,13]]]]]]],[32,2,["data"]]],null,[["default"],[{"statements":[[2,"\\n "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Admin Partitions"]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,4],["create partitions"],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[14,0,"type-create"],[15,6,[31,[[30,[36,3],["dc.partitions.create"],null]]]],[12],[2,"\\n Create\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/partition/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-writer",[],[["@sink","@type","@label","@ondelete"],[[30,[36,8],["/${partition}/${dc}/${nspace}/partition/",[30,[36,7],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null],"partition","Partition",[34,9]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["removed"]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/partition/notifications",[[4,[38,10],null,[["after"],[[30,[36,2],[[32,0],[32,8]],null]]]]],[["@type"],["remove"]],null],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["nspace",[32,3,["value"]],[32,4],[34,0],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/partition/list",[],[["@items","@ondelete"],[[32,7,["items"]],[32,6,["delete"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," No partitions found\\n"]],"parameters":[]},{"statements":[[2," Welcome to Partitions\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," No partitions where found matching that search, or you may not have access to view the namespaces you are searching for.\\n"]],"parameters":[]},{"statements":[[2," There don\'t seem to be any partitions, or you may not have access to view partitions yet.\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[8,"action",[],[["@href","@external"],[[31,[[30,[36,11],["CONSUL_DOCS_URL"],null],"/enterprise/admin-partitions"]],true]],[["default"],[{"statements":[[2,"\\n Documentation on Admin Partitions\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["search","mut","action","href-to","can","if","gt","hash","uri","refresh-route","notification","env","routeName","searchProperties","searchproperty","split","not-eq","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/partitions/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/routing-config",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"mrMbnEYc",block:'{"symbols":["route","loader","item"],"statements":[[8,"route",[],[["@name"],[[34,2]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"data-loader",[],[["@src"],[[30,[36,4],["/${partition}/${nspace}/${dc}/discovery-chain/${name}",[30,[36,3],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[32,2,["data"]]],null,[["default"],[{"statements":[[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,0],["dc.services"],null]],[12],[2,"All Services"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],[[32,3,["Chain","ServiceName"]]]],null],[2,"\\n "],[13],[2,"\\n "],[8,"consul/source",[],[["@source","@withInfo"],[[30,[36,1],["routes.dc.routing-config.source"],null],true]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"container"],[12],[2,"\\n "],[8,"consul/discovery-chain",[],[["@chain"],[[32,3,["Chain"]]]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["href-to","t","routeName","hash","uri","let"]}',meta:{moduleName:"consul-ui/templates/dc/routing-config.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"LK9P+jx5",block:'{"symbols":["route","api","sort","filters","items","partition","nspace","collection","items"],"statements":[[8,"route",[],[["@name"],[[34,11]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"data-loader",[],[["@src"],[[30,[36,13],["/${partition}/${nspace}/${dc}/services",[30,[36,12],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,5],[[30,[36,12],null,[["value","change"],[[30,[36,14],[[35,23],"Status:asc"],null],[30,[36,3],[[32,0],[30,[36,2],[[35,23]],null]],[["value"],["target.selected"]]]]]],[30,[36,12],null,[["status","kind","source","searchproperty"],[[30,[36,12],null,[["value","change"],[[30,[36,8],[[35,22],[30,[36,18],[[35,22],","],null],[29]],null],[30,[36,3],[[32,0],[30,[36,2],[[35,22]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,12],null,[["value","change"],[[30,[36,8],[[35,21],[30,[36,18],[[35,21],","],null],[29]],null],[30,[36,3],[[32,0],[30,[36,2],[[35,21]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,12],null,[["value","change"],[[30,[36,8],[[35,20],[30,[36,18],[[35,20],","],null],[29]],null],[30,[36,3],[[32,0],[30,[36,2],[[35,20]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,12],null,[["value","change","default"],[[30,[36,8],[[30,[36,19],[[35,17],[29]],null],[30,[36,18],[[35,17],","],null],[35,16]],null],[30,[36,3],[[32,0],[30,[36,2],[[35,17]],null]],[["value"],["target.selectedItems"]]],[35,16]]]]]]],[30,[36,15],["Kind","connect-proxy",[32,2,["data"]]],null],[30,[36,14],[[32,1,["params","partition"]],[32,1,["model","user","token","Partition"]],"default"],null],[30,[36,14],[[32,1,["params","nspace"]],[32,1,["model","user","token","Namespace"]],"default"],null]],null,[["default"],[{"statements":[[2,"\\n "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Services"]],null],[2," "],[10,"em"],[12],[1,[30,[36,6],[[32,5,["length"]]],null]],[2," total"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[14,"for","toolbar-toggle"],[12],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[30,[36,7],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[6,[37,5],[[30,[36,4],[[32,5]],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/service/search-bar",[],[["@sources","@partitions","@partition","@search","@onsearch","@sort","@filter"],[[30,[36,0],[[32,9],"ExternalSources"],null],[30,[36,0],[[32,9],"Partitions"],null],[32,6],[34,1],[30,[36,3],[[32,0],[30,[36,2],[[35,1]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[9]}]]]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["service",[32,3,["value"]],[32,4],[34,1],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/service/list",[],[["@items","@partition"],[[32,8,["items"]],[32,6]]],[["default"],[{"statements":[[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,9],["routes.dc.services.index.empty.header"],[["items"],[[32,5,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,9],["routes.dc.services.index.empty.body"],[["items","htmlSafe"],[[32,5,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[8,"action",[],[["@href","@external"],[[31,[[30,[36,10],["CONSUL_DOCS_URL"],null],"/commands/services"]],true]],[["default"],[{"statements":[[2,"\\n Documentation on Services\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[8,"action",[],[["@href","@external"],[[31,[[30,[36,10],["CONSUL_DOCS_LEARN_URL"],null],"/consul/getting-started/services"]],true]],[["default"],[{"statements":[[2,"\\n Take the tutorial\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n\\n"]],"parameters":[3,4,5,6,7]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["get","search","mut","action","collection","let","format-number","gt","if","t","env","routeName","hash","uri","or","reject-by","searchProperties","searchproperty","split","not-eq","source","kind","status","sortBy"]}',meta:{moduleName:"consul-ui/templates/dc/services/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/instance",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"N+/8UsgU",block:'{"symbols":["route","loader","item","o","address","meta","after","notice","notice","notice"],"statements":[[8,"route",[],[["@name"],[[34,14]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,1],["/${partition}/${nspace}/${dc}/service-instance/${id}/${node}/${name}",[30,[36,0],null,[["partition","nspace","dc","id","node","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","id"]],[32,1,["params","node"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["disconnected"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[30,[36,8],[[32,2,["error","status"]],"404"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,18],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,10,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,10,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This service has been deregistered and no longer exists in the catalog.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[10]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,6],[[30,[36,8],[[32,2,["error","status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,18],null,[["sticky"],[true]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,9,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,9,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n You no longer have access to this service\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,18],null,[["sticky"],[true]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n An error was returned whilst loading this data, refresh to try again.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[7]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,10],[[32,2,["data"]]],null,[["default"],[{"statements":[[6,[37,6],[[32,3,["IsOrigin"]]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,1],["/${partition}/${nspace}/${dc}/proxy-instance/${id}/${node}/${name}",[30,[36,0],null,[["partition","nspace","dc","id","node","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","id"]],[32,1,["params","node"]],[32,1,["params","name"]]]]]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,5]],null]],[["value"],["data"]]]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,6],[[32,6,["data","ServiceID"]]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,1],["/${partition}/${nspace}/${dc}/service-instance/${id}/${node}/${name}",[30,[36,0],null,[["partition","nspace","dc","id","node","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,6,["data","ServiceID"]],[32,6,["data","NodeName"]],[32,6,["data","ServiceName"]]]]]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,2]],null]],[["value"],["data"]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[6]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,7],["dc.services"],null]],[12],[2,"All Services"],[13],[13],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,7],["dc.services.show"],null]],[12],[2,"Service ("],[1,[32,3,["Service","Service"]]],[2,")"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],[[32,3,["Service","ID"]]]],null],[2,"\\n "],[13],[2,"\\n "],[8,"consul/external-source",[],[["@item","@withInfo"],[[32,3],true]],null],[2,"\\n "],[8,"consul/kind",[],[["@item","@withInfo"],[[32,3],true]],null],[2,"\\n"],[6,[37,6],[[30,[36,8],[[35,5,["ServiceProxy","Mode"]],"transparent"],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/transparent-proxy",[],[[],[]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["nav"]],[["default"],[{"statements":[[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Service Name"],[13],[2,"\\n "],[10,"dd"],[12],[10,"a"],[15,6,[31,[[30,[36,7],["dc.services.show",[32,3,["Service","Service"]]],null]]]],[12],[1,[32,3,["Service","Service"]]],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[12],[2,"Node Name"],[13],[2,"\\n "],[10,"dd"],[12],[10,"a"],[15,6,[31,[[30,[36,7],["dc.nodes.show",[32,3,["Node","Node"]]],null]]]],[12],[1,[32,3,["Node","Node"]]],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,10],[[30,[36,9],[[32,3,["Service","Address"]],[32,3,["Node","Address"]]],null]],null,[["default"],[{"statements":[[2," "],[8,"copy-button",[],[["@value","@name"],[[32,5],"Address"]],[["default"],[{"statements":[[1,[32,5]]],"parameters":[]}]]],[2,"\\n"]],"parameters":[5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"tab-nav",[],[["@items"],[[30,[36,13],[[30,[36,12],[[30,[36,0],null,[["label","href","selected"],["Health Checks",[30,[36,7],["dc.services.instance.healthchecks"],null],[30,[36,11],["dc.services.instance.healthchecks"],null]]]],[30,[36,6],[[30,[36,8],[[32,3,["Service","Kind"]],"mesh-gateway"],null],[30,[36,0],null,[["label","href","selected"],["Addresses",[30,[36,7],["dc.services.instance.addresses"],null],[30,[36,11],["dc.services.instance.addresses"],null]]]]],null],[30,[36,6],[[35,2],[30,[36,0],null,[["label","href","selected"],["Upstreams",[30,[36,7],["dc.services.instance.upstreams"],null],[30,[36,11],["dc.services.instance.upstreams"],null]]]]],null],[30,[36,6],[[35,2],[30,[36,0],null,[["label","href","selected"],["Exposed Paths",[30,[36,7],["dc.services.instance.exposedpaths"],null],[30,[36,11],["dc.services.instance.exposedpaths"],null]]]]],null],[30,[36,0],null,[["label","href","selected"],["Tags & Meta",[30,[36,7],["dc.services.instance.metadata"],null],[30,[36,11],["dc.services.instance.metadata"],null]]]]],null]],null]]],null],[2,"\\n "],[8,"outlet",[],[["@name","@model"],[[34,14],[30,[36,15],[[30,[36,0],null,[["proxy","meta","item"],[[35,2],[35,5],[32,3]]]],[32,1,["model"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,17],[[30,[36,16],null,null]],null]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["hash","uri","proxy","mut","action","meta","if","href-to","eq","or","let","is-href","array","compact","routeName","assign","-outlet","component","notification"]}',meta:{moduleName:"consul-ui/templates/dc/services/instance.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/instance/addresses",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"pc97C5QS",block:'{"symbols":["route","items","taggedAddress","index","address"],"statements":[[8,"route",[],[["@name"],[[34,7]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[30,[36,8],[[32,1,["model","item","Service","TaggedAddresses"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,4],[[30,[36,6],[[32,2,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[8,"tabular-collection",[[24,0,"consul-tagged-addresses"]],[["@items"],[[32,2]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"th"],[12],[2,"Tag"],[13],[2,"\\n "],[10,"th"],[12],[2,"Address"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["row"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,0],[1,[32,3]],null]],null,[["default"],[{"statements":[[2," "],[10,"td"],[12],[2,"\\n "],[1,[30,[36,0],[0,[32,3]],null]],[6,[37,4],[[30,[36,3],[[30,[36,2],[[32,5,["Address"]],[35,1,["Address"]]],null],[30,[36,2],[[32,5,["Port"]],[35,1,["Port"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"em"],[12],[2,"(default)"],[13]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[1,[32,5,["Address"]]],[2,":"],[1,[32,5,["Port"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3,4]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"p"],[12],[2,"\\n There are no additional addresses.\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[2]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["object-at","item","eq","and","if","with","gt","routeName","entries","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/instance/addresses.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/instance/exposedpaths",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"fkDhaB82",block:'{"symbols":["route","item","proxy"],"statements":[[8,"route",[],[["@name"],[[34,4]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[32,1,["model","proxy"]],[32,1,["model","meta"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,3,["ServiceProxy","Expose","Paths","length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,0],["routes.dc.services.instance.exposedpaths.intro"],[["htmlSafe"],[true]]]],[2,"\\n "],[8,"consul/exposed-path/list",[],[["@items","@address"],[[32,3,["ServiceProxy","Expose","Paths"]],[30,[36,1],[[32,2,["Service","Address"]],[32,2,["Node","Address"]]],null]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.services.instance.exposedpaths.empty.body"],[["htmlSafe"],[true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[2,3]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["t","or","gt","if","routeName","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/instance/exposedpaths.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/instance/healthchecks",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"RMWIT75Y",block:'{"symbols":["route","sort","filters","items","collection","serf","notice"],"statements":[[8,"route",[],[["@name"],[[34,10]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,9],[[30,[36,17],null,[["value","change"],[[30,[36,21],[[35,20],"Status:asc"],null],[30,[36,6],[[32,0],[30,[36,5],[[35,20]],null]],[["value"],["target.selected"]]]]]],[30,[36,17],null,[["status","check","searchproperty"],[[30,[36,17],null,[["value","change"],[[30,[36,3],[[35,19],[30,[36,15],[[35,19],","],null],[29]],null],[30,[36,6],[[32,0],[30,[36,5],[[35,19]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,17],null,[["value","change"],[[30,[36,3],[[35,18],[30,[36,15],[[35,18],","],null],[29]],null],[30,[36,6],[[32,0],[30,[36,5],[[35,18]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,17],null,[["value","change","default"],[[30,[36,3],[[30,[36,16],[[35,14],[29]],null],[30,[36,15],[[35,14],","],null],[35,13]],null],[30,[36,6],[[32,0],[30,[36,5],[[35,14]],null]],[["value"],["target.selectedItems"]]],[35,13]]]]]]],[30,[36,12],[[30,[36,11],[[32,1,["model","item","Checks"]],[32,1,["model","proxy","Checks"]]],null],[32,1,["model","proxy","ServiceProxy","Expose","Checks"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n\\n"],[6,[37,3],[[30,[36,7],[[32,4,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"input"],[14,1,"toolbar-toggle"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[8,"consul/health-check/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,4],[30,[36,6],[[32,0],[30,[36,5],[[35,4]],null]],[["value"],["target.value"]]],[32,2],[32,3]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,9],[[30,[36,8],["Type","serf",[32,4]],null]],null,[["default"],[{"statements":[[6,[37,3],[[30,[36,2],[[32,6],[30,[36,1],[[32,6,["Status"]],"critical"],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,0],["routes.dc.services.instance.healthchecks.critical-serf-notice.header"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.services.instance.healthchecks.critical-serf-notice.body"],[["htmlSafe"],[true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[6]}]]],[2," "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["health-check",[32,2,["value"]],[32,3],[34,4],[32,4]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/health-check/list",[],[["@items"],[[32,5,["items"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.services.instance.healthchecks.empty"],[["items","htmlSafe"],[[32,4,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n\\n "],[13],[2,"\\n"]],"parameters":[2,3,4]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","eq","and","if","search","mut","action","gt","find-by","let","routeName","array","merge-checks","searchProperties","searchproperty","split","not-eq","hash","check","status","sortBy","or"]}',meta:{moduleName:"consul-ui/templates/dc/services/instance/healthchecks.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/instance/metadata",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"qT0uOojO",block:'{"symbols":["route","item"],"statements":[[8,"route",[],[["@name"],[[34,3]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[32,1,["model","item"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n "],[10,"section"],[14,0,"tags"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Tags"],[13],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,2,["Tags","length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[8,"tag-list",[],[["@item"],[[32,2]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n There are no tags.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"section"],[14,0,"metadata"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Meta"],[13],[2,"\\n"],[6,[37,2],[[32,2,["Meta"]]],null,[["default","else"],[{"statements":[[2," "],[8,"consul/metadata/list",[],[["@items"],[[30,[36,0],[[32,2,["Meta"]]],null]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This instance has no metadata.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["entries","gt","if","routeName","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/instance/metadata.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/instance/upstreams",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"E9rUcBLq",block:'{"symbols":["route","sort","filters","partition","nspace","dc","proxy","meta","items","collection","notice"],"statements":[[8,"route",[],[["@name"],[[34,8]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,15],[[30,[36,13],null,[["value","change"],[[30,[36,9],[[35,14],"DestinationName:asc"],null],[30,[36,3],[[32,0],[30,[36,2],[[35,14]],null]],[["value"],["target.selected"]]]]]],[30,[36,13],null,[["searchproperty"],[[30,[36,13],null,[["value","change","default"],[[30,[36,6],[[30,[36,12],[[35,10],[29]],null],[30,[36,11],[[35,10],","],null],[35,4]],null],[30,[36,3],[[32,0],[30,[36,2],[[35,10]],null]],[["value"],["target.selectedItems"]]],[35,4]]]]]]],[30,[36,9],[[32,1,["params","partition"]],[32,1,["model","user","token","Partition"]],"default"],null],[30,[36,9],[[32,1,["params","nspace"]],[32,1,["model","user","token","Namespace"]],"default"],null],[32,1,["params","dc"]],[32,1,["model","proxy"]],[32,1,["model","meta"]],[32,1,["model","proxy","Service","Proxy","Upstreams"]]],null,[["default"],[{"statements":[[6,[37,6],[[30,[36,5],[[32,9,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"input"],[14,1,"toolbar-toggle"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[8,"consul/upstream-instance/search-bar",[],[["@search","@onsearch","@searchproperties","@sort","@filter"],[[34,1],[30,[36,3],[[32,0],[30,[36,2],[[35,1]],null]],[["value"],["target.value"]]],[34,4],[32,2],[32,3]]],null],[2,"\\n"]],"parameters":[]}]]],[6,[37,6],[[30,[36,7],[[32,8,["ServiceProxy","Mode"]],"transparent"],null]],null,[["default"],[{"statements":[[2," "],[8,"notice",[],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,11,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,0],["routes.dc.services.instance.upstreams.tproxy-mode.header"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,11,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.services.instance.upstreams.tproxy-mode.body"],[["htmlSafe"],[true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,11,["Footer"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.services.instance.upstreams.tproxy-mode.footer"],[["htmlSafe"],[true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[11]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["upstream-instance",[32,2,["value"]],[32,3],[34,1],[32,9]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,10,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/upstream-instance/list",[],[["@items","@dc","@nspace","@partition"],[[32,10,["items"]],[32,6],[32,5],[32,4]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,10,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.services.instance.upstreams.empty"],[["items","htmlSafe"],[[32,9,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[10]}]]],[2,"\\n"]],"parameters":[2,3,4,5,6,7,8,9]}]]],[2," "],[13],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["t","search","mut","action","searchProperties","gt","if","eq","routeName","or","searchproperty","split","not-eq","hash","sortBy","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/instance/upstreams.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"+YTjbG+A",block:'{"symbols":["route","loader","items","item","dc","tabs","o","config","status","type","item","error","after","notice","notice","notice"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,14],["/${partition}/${nspace}/${dc}/service-instances/for-service/${name}",[30,[36,2],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["disconnected"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,10],[[30,[36,23],[[32,2,["error","status"]],"404"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,26],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,16,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,16,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This service has been deregistered and no longer exists in the catalog.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[16]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,10],[[30,[36,23],[[32,2,["error","status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,26],null,[["sticky"],[true]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,15,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,15,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n You no longer have access to this service\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[15]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,26],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,14,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,14,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n An error was returned whilst loading this data, refresh to try again.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[14]}]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[13]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,25],[[32,2,["data"]],[32,2,["data","firstObject"]],[32,1,["model","dc"]]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,10],[[32,4,["IsOrigin"]]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,14],["/${partition}/${nspace}/${dc}/proxies/for-service/${name}",[30,[36,2],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null],[30,[36,18],[[32,0],[30,[36,17],[[35,1]],null]],[["value"],["data"]]]]],null],[2,"\\n"],[6,[37,10],[[30,[36,16],[[35,15]],null]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,14],["/${partition}/${nspace}/${dc}/discovery-chain/${name}",[30,[36,2],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null],[30,[36,18],[[32,0],[30,[36,17],[[35,15]],null]],[["value"],["data"]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[30,[36,20],[[30,[36,19],[[32,0],"chain",[29]],null],[32,1,["params","dc"]]],null]],[2,"\\n"]],"parameters":[]}]]],[6,[37,25],[[30,[36,2],null,[["topology","services","upstreams","instances","intentions","routing","tags"],[[30,[36,21],[[32,5,["MeshEnabled"]],[32,4,["IsMeshOrigin"]],[30,[36,6],[[30,[36,24],[[35,1,["length"]],0],null],[30,[36,23],[[32,4,["Service","Kind"]],"ingress-gateway"],null]],null]],null],[30,[36,23],[[32,4,["Service","Kind"]],"terminating-gateway"],null],[30,[36,23],[[32,4,["Service","Kind"]],"ingress-gateway"],null],true,[30,[36,21],[[30,[36,13],[[32,4,["Service","Kind"]],"terminating-gateway"],null],[30,[36,22],["read intention for service"],[["item"],[[32,4,["Service"]]]]]],null],[30,[36,21],[[32,5,["MeshEnabled"]],[32,4,["IsOrigin"]]],null],true]]]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["notification"]],[["default"],[{"statements":[[2,"\\n "],[8,"topology-metrics/notifications",[],[["@type","@status","@error"],[[32,10],[32,9],[32,12]]],null],[2,"\\n "]],"parameters":[9,10,11,12]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["breadcrumbs"]],[["default"],[{"statements":[[2,"\\n "],[10,"ol"],[12],[2,"\\n "],[10,"li"],[12],[10,"a"],[15,6,[30,[36,9],["dc.services"],null]],[12],[2,"All Services"],[13],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],[[32,4,["Service","Service"]]]],null],[2,"\\n "],[13],[2,"\\n "],[8,"consul/external-source",[],[["@item","@withInfo"],[[32,4,["Service"]],true]],null],[2,"\\n "],[8,"consul/kind",[],[["@item","@withInfo"],[[32,4,["Service"]],true]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["nav"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,10],[[30,[36,13],[[32,4,["Service","Kind"]],"mesh-gateway"],null]],null,[["default"],[{"statements":[[2," "],[8,"tab-nav",[],[["@items"],[[30,[36,12],[[30,[36,11],[[30,[36,10],[[32,6,["topology"]],[30,[36,2],null,[["label","href","selected"],["Topology",[30,[36,9],["dc.services.show.topology"],null],[30,[36,8],["dc.services.show.topology"],null]]]],""],null],[30,[36,10],[[32,6,["services"]],[30,[36,2],null,[["label","href","selected"],["Linked Services",[30,[36,9],["dc.services.show.services"],null],[30,[36,8],["dc.services.show.services"],null]]]],""],null],[30,[36,10],[[32,6,["upstreams"]],[30,[36,2],null,[["label","href","selected"],["Upstreams",[30,[36,9],["dc.services.show.upstreams"],null],[30,[36,8],["dc.services.show.upstreams"],null]]]],""],null],[30,[36,10],[[32,6,["instances"]],[30,[36,2],null,[["label","href","selected"],["Instances",[30,[36,9],["dc.services.show.instances"],null],[30,[36,8],["dc.services.show.instances"],null]]]],""],null],[30,[36,10],[[32,6,["intentions"]],[30,[36,2],null,[["label","href","selected"],["Intentions",[30,[36,9],["dc.services.show.intentions"],null],[30,[36,8],["dc.services.show.intentions"],null]]]],""],null],[30,[36,10],[[32,6,["routing"]],[30,[36,2],null,[["label","href","selected"],["Routing",[30,[36,9],["dc.services.show.routing"],null],[30,[36,8],["dc.services.show.routing"],null]]]],""],null],[30,[36,10],[[32,6,["tags"]],[30,[36,2],null,[["label","href","selected"],["Tags",[30,[36,9],["dc.services.show.tags"],null],[30,[36,8],["dc.services.show.tags"],null]]]],""],null]],null]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-source",[],[["@src"],[[30,[36,14],["/${partition}/${nspace}/${dc}/ui-config",[30,[36,2],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,10],[[32,8,["data","dashboard_url_templates","service"]]],null,[["default"],[{"statements":[[2," "],[8,"action",[[24,0,"external-dashboard"]],[["@href","@external"],[[30,[36,7],[[32,8,["data","dashboard_url_templates","service"]],[30,[36,2],null,[["Datacenter","Service"],[[32,5,["Name"]],[30,[36,2],null,[["Name","Namespace","Partition"],[[32,4,["Service","Service"]],[30,[36,6],[[32,4,["Service","Namespace"]],""],null],[30,[36,6],[[32,4,["Service","Partition"]],""],null]]]]]]]],null],true]],[["default"],[{"statements":[[2,"\\n Open dashboard\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,10],[[30,[36,6],[[30,[36,16],[[32,4,["IsOrigin"]]],null],[35,15]],null]],null,[["default"],[{"statements":[[2," "],[8,"outlet",[],[["@name","@model"],[[34,0],[30,[36,3],[[30,[36,2],null,[["items","proxies","item","tabs"],[[32,3],[35,1],[32,4],[32,6]]]],[32,1,["model"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,5],[[30,[36,4],null,null]],null]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[6]}]]]],"parameters":[3,4,5]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["routeName","proxies","hash","assign","-outlet","component","or","render-template","is-href","href-to","if","array","compact","not-eq","uri","chain","not","mut","action","set","did-insert","and","can","eq","gt","let","notification"]}',meta:{moduleName:"consul-ui/templates/dc/services/show.hbs"}}) +e.default=t})) +define("consul-ui/templates/dc/services/show/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"awAzFj0u",block:'{"symbols":["route"],"statements":[[8,"route",[],[["@name"],[[34,3]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[32,1,["model","tabs","topology"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],[[30,[36,0],["replaceWith","dc.services.show.topology"],null]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,1,["model","tabs","upstreams"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],[[30,[36,0],["replaceWith","dc.services.show.upstreams"],null]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,1,["model","tabs","services"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],[[30,[36,0],["replaceWith","dc.services.show.services"],null]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[30,[36,1],[[30,[36,0],["replaceWith","dc.services.show.instances"],null]],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["route-action","did-insert","if","routeName"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/instances",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"13/W51mM",block:'{"symbols":["route","sort","filters","items","proxyMeta","collection"],"statements":[[8,"route",[],[["@name"],[[34,11]]],[["default"],[{"statements":[[2,"\\n"],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,20],[[30,[36,0],null,[["value","change"],[[30,[36,19],[[35,18],"Status:asc"],null],[30,[36,4],[[32,0],[30,[36,3],[[35,18]],null]],[["value"],["target.selected"]]]]]],[30,[36,0],null,[["status","source","searchproperty"],[[30,[36,0],null,[["value","change"],[[30,[36,9],[[35,17],[30,[36,14],[[35,17],","],null],[29]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,17]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,0],null,[["value","change"],[[30,[36,9],[[35,16],[30,[36,14],[[35,16],","],null],[29]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,16]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,0],null,[["value","change","default"],[[30,[36,9],[[30,[36,15],[[35,13],[29]],null],[30,[36,14],[[35,13],","],null],[35,12]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,13]],null]],[["value"],["target.selectedItems"]]],[35,12]]]]]]],[32,1,["model","items"]],[32,1,["model","proxies","firstObject"]]],null,[["default"],[{"statements":[[6,[37,9],[[30,[36,8],[[32,4,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"input"],[14,1,"toolbar-toggle"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[8,"consul/service-instance/search-bar",[],[["@sources","@search","@onsearch","@sort","@filter"],[[30,[36,6],[[30,[36,5],[[32,4]],null],"ExternalSources"],null],[34,7],[30,[36,4],[[32,0],[30,[36,3],[[35,7]],null]],[["value"],["target.value"]]],[32,2],[32,3]]],null],[2,"\\n"]],"parameters":[]}]]],[6,[37,9],[[32,5,["ServiceName"]]],null,[["default"],[{"statements":[[2," "],[8,"data-source",[],[["@src","@onchange"],[[30,[36,1],["/${partition}/${nspace}/${dc}/service-instances/for-service/${name}",[30,[36,0],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,5,["ServiceName"]]]]]],null],[30,[36,4],[[32,0],[30,[36,3],[[35,2]],null]],[["value"],["data"]]]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["service-instance",[32,2,["value"]],[32,3],[34,7],[32,4]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/service-instance/list",[],[["@routeName","@items","@proxies"],["dc.services.instance",[32,6,["items"]],[34,2]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,10],["routes.dc.services.show.instances.empty"],[["items","htmlSafe"],[[32,4,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n"]],"parameters":[2,3,4,5]}]]],[13],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["hash","uri","proxies","mut","action","collection","get","search","gt","if","t","routeName","searchProperties","searchproperty","split","not-eq","source","status","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/instances.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/intentions",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"JedXDjTs",block:'{"symbols":["route","o"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"outlet",[],[["@name","@model"],[[34,0],[32,1,["model"]]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,2],[[30,[36,1],null,null]],null]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["routeName","-outlet","component"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/intentions.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/intentions/edit",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"5Aptuf+o",block:'{"symbols":["route","readOnly","loader","item"],"statements":[[8,"route",[],[["@name"],[[34,5]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[30,[36,8],[[30,[36,7],["write intention for service"],[["item"],[[35,6,["Service"]]]]]],null]],null,[["default"],[{"statements":[[2," "],[8,"data-loader",[],[["@src"],[[30,[36,3],["/${partition}/${nspace}/${dc}/intention/${id}",[30,[36,0],null,[["partition","nspace","dc","id"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[30,[36,2],[[32,1,["params","intention_id"]],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"error-state",[],[["@error","@login"],[[32,3,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[32,3,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"consul/intention/form",[],[["@readonly","@item","@dc","@nspace","@partition","@autofill","@onsubmit"],[[32,2],[32,4],[32,1,["model","dc"]],[32,1,["params","nspace"]],[32,1,["params","partition"]],[30,[36,0],null,[["DestinationName"],[[32,1,["params","name"]]]]],[30,[36,1],["dc.services.show.intentions.index"],null]]],null],[2,"\\n"]],"parameters":[4]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3]}]]],[2,"\\n"]],"parameters":[2]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["hash","transition-to","or","uri","let","routeName","item","can","not"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/intentions/edit.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/intentions/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"YEgUH4GU",block:'{"symbols":["route","api","sort","filters","items","item","writer","collection","list"],"statements":[[8,"route",[],[["@name"],[[34,12]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,8],["/${partition}/${nspace}/${dc}/intentions/for-service/${slug}",[30,[36,7],null,[["partition","nspace","dc","slug"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"error-state",[],[["@error"],[[32,2,["error"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,20],[[30,[36,7],null,[["value","change"],[[30,[36,19],[[35,18],"Action:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,18]],null]],[["value"],["target.selected"]]]]]],[30,[36,7],null,[["access","searchproperty"],[[30,[36,7],null,[["value","change"],[[30,[36,5],[[35,17],[30,[36,15],[[35,17],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,17]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,7],null,[["value","change","default"],[[30,[36,5],[[30,[36,16],[[35,14],[29]],null],[30,[36,15],[[35,14],","],null],[35,13]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,14]],null]],[["value"],["target.selectedItems"]]],[35,13]]]]]]],[32,2,["data"]],[32,1,["model","item"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,5],[[30,[36,4],["create intention for service"],[["item"],[[32,6,["Service"]]]]]],null,[["default"],[{"statements":[[2," "],[8,"portal",[],[["@target"],["app-view-actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"a"],[15,6,[30,[36,3],["dc.services.show.intentions.create"],null]],[14,0,"type-create"],[12],[2,"Create"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,5],[[30,[36,6],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[8,"consul/intention/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"data-writer",[],[["@sink","@type","@ondelete"],[[30,[36,8],["/${partition}/${dc}/${nspace}/intention/",[30,[36,7],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null],"intention",[34,9]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["intention",[32,3,["value"]],[32,4],[34,0],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/intention/list",[],[["@items","@check","@delete"],[[32,8,["items"]],[34,0],[32,7,["delete"]]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,9,["CustomResourceNotice"]],[],[[],[]],null],[2,"\\n "],[8,[32,9,["CheckNotice"]],[],[[],[]],null],[2,"\\n "],[8,[32,9,["Table"]],[],[["@routeName"],["dc.services.show.intentions.edit"]],null],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[["@login"],[[32,1,["model","app","login","open"]]]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,10],["routes.dc.services.intentions.index.empty.header"],[["items"],[[32,5,["length"]]]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,10],["routes.dc.services.intentions.index.empty.body"],[["items","htmlSafe"],[[32,5,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["actions"]],[["default"],[{"statements":[[2,"\\n "],[10,"li"],[14,0,"docs-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,11],["CONSUL_DOCS_URL"],null],"/commands/intention"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Documentation on intentions"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"li"],[14,0,"learn-link"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[30,[36,11],["CONSUL_DOCS_LEARN_URL"],null],"/consul/getting-started/connect"]]],[14,"rel","noopener noreferrer"],[14,"target","_blank"],[12],[2,"Take the tutorial"],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3,4,5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["search","mut","action","href-to","can","if","gt","hash","uri","refresh-route","t","env","routeName","searchProperties","searchproperty","split","not-eq","access","sortBy","or","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/intentions/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/routing",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"ECmVG/5P",block:'{"symbols":["route","loader"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,2],["/${partition}/${nspace}/${dc}/discovery-chain/${name}",[30,[36,1],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n "],[8,"consul/discovery-chain",[],[["@chain"],[[32,2,["data","Chain"]]]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["routeName","hash","uri"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/routing.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/services",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"I2O7WlJO",block:'{"symbols":["route","loader","sort","filters","items","collection"],"statements":[[8,"route",[],[["@name"],[[34,7]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,9],["/${partition}/${nspace}/${dc}/gateways/for-service/${name}",[30,[36,8],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,16],[[30,[36,8],null,[["value","change"],[[30,[36,6],[[35,15],"Status:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,15]],null]],[["value"],["target.selected"]]]]]],[30,[36,8],null,[["instance","searchproperty"],[[30,[36,8],null,[["value","change"],[[30,[36,4],[[35,14],[30,[36,12],[[35,14],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,14]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,8],null,[["value","change","default"],[[30,[36,4],[[30,[36,13],[[35,11],[29]],null],[30,[36,12],[[35,11],","],null],[35,10]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,11]],null]],[["value"],["target.selectedItems"]]],[35,10]]]]]]],[32,2,["data"]]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,5,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"input"],[14,1,"toolbar-toggle"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[8,"consul/upstream/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["service",[32,3,["value"]],[32,4],[34,0],[32,5]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,5],["routes.dc.services.show.services.intro"],[["htmlSafe"],[true]]]],[2,"\\n "],[8,"consul/service/list",[],[["@nspace","@partition","@items"],[[30,[36,6],[[32,1,["params","nspace"]],[32,1,["model","user","token","Namespace"]],"default"],null],[30,[36,6],[[32,1,["params","partition"]],[32,1,["model","user","token","Partition"]],"default"],null],[32,6,["items"]]]],[["default"],[{"statements":[[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,5],["routes.dc.services.show.services.empty"],[["items","htmlSafe"],[[32,5,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n"]],"parameters":[3,4,5]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["search","mut","action","gt","if","t","or","routeName","hash","uri","searchProperties","searchproperty","split","not-eq","instance","sortBy","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/services.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/tags",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"6gutQsyo",block:'{"symbols":["route","tags"],"statements":[[8,"route",[],[["@name"],[[34,4]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,7],[[30,[36,6],[[30,[36,5],["Tags",[32,1,["model","items"]]],null]],null]],null,[["default"],[{"statements":[[6,[37,3],[[30,[36,2],[[32,2,["length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[8,"tag-list",[],[["@item"],[[30,[36,1],null,[["Tags"],[[32,2]]]]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,0],["routes.dc.services.show.tags.empty.header"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,0],["routes.dc.services.show.tags.empty.body"],[["htmlSafe"],[true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[2]}]]],[2," "],[13],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["t","hash","gt","if","routeName","map-by","flatten","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/tags.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/topology",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"YIp1h+g1",block:'{"symbols":["route","loader","nspace","dc","items","topology","config","disclosure","notices","noticesEnabled","enabled","prop","details","notice","footer"],"statements":[[8,"route",[],[["@name"],[[34,24]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,23],["/${partition}/${nspace}/${dc}/topology/${name}/${kind}",[30,[36,1],null,[["partition","nspace","dc","name","kind"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]],[30,[36,0],[[32,1,["model","items","firstObject","Service","Kind"]],""],null]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[32,1,["params","nspace"]],[32,1,["model","dc"]],[32,1,["model","items"]],[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n\\n "],[10,"div"],[14,0,"topology-notices"],[12],[2,"\\n "],[8,"disclosure",[],[["@expanded"],[true]],[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[30,[36,22],[[30,[36,12],[[30,[36,12],["filtered-by-acls",[30,[36,0],[false,[32,6,["FilteredByACLs"]]],null]],null],[30,[36,12],["default-allow",[30,[36,0],[false,[30,[36,21],[[32,4,["DefaultACLPolicy"]],"allow"],null]],null]],null],[30,[36,12],["wildcard-intention",[30,[36,0],[false,[32,6,["wildcardIntention"]]],null]],null],[30,[36,12],["not-defined-intention",[30,[36,0],[false,[32,6,["notDefinedIntention"]]],null]],null],[30,[36,12],["no-dependencies",[30,[36,0],[false,[30,[36,11],[[32,6,["noDependencies"]],[30,[36,20],["use acls"],null]],null]],null]],null],[30,[36,12],["acls-disabled",[30,[36,0],[false,[30,[36,11],[[32,6,["noDependencies"]],[30,[36,3],[[30,[36,20],["use acls"],null]],null]],null]],null]],null]],null]],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,15],[[30,[36,19],[false,[30,[36,18],[[32,9]],null]],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,17],[[30,[36,16],[[32,9]],null]],null,[["default"],[{"statements":[[6,[37,7],[[32,11]],null,[["default"],[{"statements":[[2," "],[8,[32,8,["Details"]],[],[["@auto"],[false]],[["default"],[{"statements":[[2,"\\n "],[8,"notice",[[24,0,"topology-metrics-notice"],[16,1,[32,13,["id"]]]],[["@type"],[[30,[36,7],[[30,[36,13],[[32,12],[30,[36,12],["filtered-by-acls","no-dependencies"],null]],null],"info","warning"],null]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,14,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,9],[[30,[36,8],[[32,1,["t"]],"notice.${prop}.header",[30,[36,1],null,[["prop"],[[32,12]]]]],null]],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"],[6,[37,7],[[32,8,["expanded"]]],null,[["default"],[{"statements":[[2," "],[8,[32,14,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,9],[[30,[36,8],[[32,1,["t"]],"notice.${prop}.body",[30,[36,1],null,[["prop"],[[32,12]]]]],null]],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[6,[37,15],[[30,[36,9],[[30,[36,8],[[32,1,["t"]],"notice.${prop}.footer",[30,[36,1],null,[["route_intentions","prop","htmlSafe"],[[30,[36,14],["dc.services.show.intentions"],null],[32,12],true]]]],null]],null]],null,[["default"],[{"statements":[[6,[37,7],[[30,[36,11],[[32,8,["expanded"]],[30,[36,10],[[32,12],"filtered-by-acls"],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,14,["Footer"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[32,15]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[15]}]]],[2," "]],"parameters":[14]}]]],[2,"\\n "]],"parameters":[13]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[11,12]}]]],[2,"\\n"],[6,[37,7],[[30,[36,4],[[32,10,["length"]],2],null]],null,[["default"],[{"statements":[[2," "],[8,[32,8,["Action"]],[[4,[38,6],["click",[32,8,["toggle"]]],null]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,9],[[30,[36,8],[[32,1,["t"]],"notices.${expanded}",[30,[36,1],null,[["expanded"],[[30,[36,7],[[32,8,["expanded"]],"close","open"],null]]]]],null]],null]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"parameters":[10]}]]]],"parameters":[9]}]]],[2," "]],"parameters":[8]}]]],[2,"\\n\\n "],[13],[2,"\\n\\n\\n "],[8,"data-source",[],[["@src"],[[30,[36,23],["/${partition}/${nspace}/${dc}/ui-config",[30,[36,1],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,7],[[32,7,["data"]]],null,[["default"],[{"statements":[[2,"\\n "],[8,"topology-metrics",[],[["@nspace","@dc","@service","@topology","@metricsHref","@isRemoteDC","@hasMetricsProvider","@oncreate"],[[32,3],[32,4],[32,5,["firstObject"]],[32,6],[30,[36,2],[[32,7,["data","dashboard_url_templates","service"]],[30,[36,1],null,[["Datacenter","Service"],[[32,4,["Name"]],[30,[36,1],null,[["Name","Namespace","Partition"],[[32,5,["firstObject","Name"]],[30,[36,0],[[32,5,["firstObject","Namespace"]],""],null],[30,[36,0],[[32,5,["firstObject","Partition"]],""],null]]]]]]]],null],[30,[36,3],[[32,4,["Local"]]],null],[30,[36,4],[[32,7,["data","metrics_provider","length"]],0],null],[30,[36,5],["createIntention"],null]]],null],[2,"\\n\\n"]],"parameters":[]}]]],[2," "]],"parameters":[7]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3,4,5,6]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["or","hash","render-template","not","gt","route-action","on","if","fn","compute","not-eq","and","array","contains","href-to","let","-each-in","each","values","without","can","eq","from-entries","uri","routeName"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/topology.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/services/show/upstreams",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"G1oiIhX0",block:'{"symbols":["route","loader","sort","filters","partition","nspace","dc","items","collection"],"statements":[[8,"route",[],[["@name"],[[34,6]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,8],["/${partition}/${nspace}/${dc}/gateways/for-service/${name}",[30,[36,7],null,[["partition","nspace","dc","name"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]],[32,1,["params","name"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n"],[6,[37,16],[[30,[36,7],null,[["value","change"],[[30,[36,9],[[35,15],"Status:asc"],null],[30,[36,2],[[32,0],[30,[36,1],[[35,15]],null]],[["value"],["target.selected"]]]]]],[30,[36,7],null,[["instance","searchproperty"],[[30,[36,7],null,[["value","change"],[[30,[36,4],[[35,14],[30,[36,12],[[35,14],","],null],[29]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,14]],null]],[["value"],["target.selectedItems"]]]]]],[30,[36,7],null,[["value","change","default"],[[30,[36,4],[[30,[36,13],[[35,11],[29]],null],[30,[36,12],[[35,11],","],null],[35,10]],null],[30,[36,2],[[32,0],[30,[36,1],[[35,11]],null]],[["value"],["target.selectedItems"]]],[35,10]]]]]]],[30,[36,9],[[32,1,["params","partition"]],[32,1,["model","user","token","Partition"]],"default"],null],[30,[36,9],[[32,1,["params","nspace"]],[32,1,["model","user","token","Namespace"]],"default"],null],[32,1,["params","dc"]],[32,2,["data"]]],null,[["default"],[{"statements":[[6,[37,4],[[30,[36,3],[[32,8,["length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"input"],[14,1,"toolbar-toggle"],[14,4,"checkbox"],[12],[13],[2,"\\n "],[8,"consul/upstream/search-bar",[],[["@search","@onsearch","@sort","@filter"],[[34,0],[30,[36,2],[[32,0],[30,[36,1],[[35,0]],null]],[["value"],["target.value"]]],[32,3],[32,4]]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[30,[36,5],["routes.dc.services.show.upstreams.intro"],[["htmlSafe"],[true]]]],[2,"\\n "],[8,"data-collection",[],[["@type","@sort","@filters","@search","@items"],["service",[32,3,["value"]],[32,4],[34,0],[32,8]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,9,["Collection"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"consul/upstream/list",[],[["@items","@dc","@nspace","@partition"],[[32,9,["items"]],[32,7],[32,6],[32,5]]],[["default"],[{"statements":[[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,9,["Empty"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"empty-state",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["body"]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,5],["routes.dc.services.show.upstreams.empty"],[["items","htmlSafe"],[[32,8,["length"]],true]]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[9]}]]],[2,"\\n"]],"parameters":[3,4,5,6,7,8]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["search","mut","action","gt","if","t","routeName","hash","uri","or","searchProperties","searchproperty","split","not-eq","instance","sortBy","let"]}',meta:{moduleName:"consul-ui/templates/dc/services/show/upstreams.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/show",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"l00QFa3D",block:'{"symbols":["route","o","tabs","tabsEnabled"],"statements":[[8,"route",[],[["@name"],[[34,12]]],[["default"],[{"statements":[[2,"\\n "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],[[30,[36,3],[[30,[36,2],[[32,1,["t"]],"title"],null]],null]]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["toolbar"]],[["default"],[{"statements":[[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["nav"]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,11],[[30,[36,14],[[30,[36,6],[[30,[36,6],["serverstatus",true],null],[30,[36,6],["cataloghealth",false],null],[30,[36,6],["license",[30,[36,13],["read license"],null]],null]],null]],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,11],[[30,[36,10],[false,[30,[36,9],[[32,3]],null]],null]],null,[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[30,[36,8],[[32,4,["length"]],1],null]],null,[["default"],[{"statements":[[2," "],[8,"tab-nav",[],[["@items"],[[30,[36,7],[[30,[36,6],[[30,[36,5],[[32,3,["serverstatus"]],[30,[36,4],null,[["label","href","selected"],[[30,[36,3],[[30,[36,2],[[32,1,["t"]],"serverstatus.title"],null]],null],[30,[36,1],["dc.show.serverstatus"],null],[30,[36,0],["dc.show.serverstatus"],null]]]],""],null],[30,[36,5],[[32,3,["cataloghealth"]],[30,[36,4],null,[["label","href","selected"],[[30,[36,3],[[30,[36,2],[[32,1,["t"]],"cataloghealth.title"],null]],null],[30,[36,1],["dc.show.cataloghealth"],null],[30,[36,0],["dc.show.cataloghealth"],null]]]],""],null],[30,[36,5],[[32,3,["license"]],[30,[36,4],null,[["label","href","selected"],[[30,[36,3],[[30,[36,2],[[32,1,["t"]],"license.title"],null]],null],[30,[36,1],["dc.show.license"],null],[30,[36,0],["dc.show.license"],null]]]]],null],""],null]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"parameters":[4]}]]]],"parameters":[3]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"outlet",[],[["@name","@model"],[[34,12],[32,1,["model"]]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,16],[[30,[36,15],null,null]],null]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["is-href","href-to","fn","compute","hash","if","array","compact","gt","values","without","let","routeName","can","from-entries","-outlet","component"]}',meta:{moduleName:"consul-ui/templates/dc/show.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/show/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"p6/8nAfZ",block:'{"symbols":["route"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,4],[[30,[36,3],["replaceWith",[30,[36,2],[[30,[36,1],["access overview"],null],"dc.show.serverstatus","dc.services.index"],null]],null]],null]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n\\n"]],"hasEval":false,"upvars":["routeName","can","if","route-action","did-insert"]}',meta:{moduleName:"consul-ui/templates/dc/show/index.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/show/license",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"6J16wkmB",block:'{"symbols":["route","loader","item","after","notice","notice","notice"],"statements":[[8,"route",[],[["@name"],[[34,12]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,13],["/${partition}/${nspace}/${dc}/license",[30,[36,8],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,14],[[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"error-state",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["disconnected"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,2,["error","status"]],"404"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,0],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This service has been deregistered and no longer exists in the catalog.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],[[32,2,["error","status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,0],null,[["sticky"],[true]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n You no longer have access to this service\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,0],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n An error was returned whilst loading this data, refresh to try again.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[4]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n "],[10,"section"],[15,0,[30,[36,4],["validity",[30,[36,3],["valid",[32,3,["Valid"]]],null]],null]],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,6],[[30,[36,5],[[32,1,["t"]],"expiry.header"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,6],[[30,[36,5],[[32,1,["t"]],"expiry.${type}.body",[30,[36,8],null,[["type","date","time","htmlSafe"],[[30,[36,2],[[32,3,["Valid"]],"valid","expired"],null],[30,[36,7],[[32,3,["License","expiration_time"]]],[["year","month","day"],["numeric","long","numeric"]]],[30,[36,7],[[32,3,["License","expiration_time"]]],[["hour12","hour","hourCycle","minute","second","timeZoneName"],[true,"numeric","h12","numeric","numeric","short"]]],true]]]],null]],null]],[2,"\\n "],[13],[2,"\\n\\n "],[10,"dl"],[12],[2,"\\n "],[10,"dt"],[15,0,[30,[36,4],[[30,[36,3],["valid",[32,3,["Valid"]]],null],[30,[36,3],["expired",[30,[36,10],[[32,3,["Valid"]]],null]],null],[30,[36,3],["warning",[30,[36,9],[[32,3,["License","expiration_time"]],2629800000],null]],null]],null]],[12],[2,"\\n "],[1,[30,[36,6],[[30,[36,5],[[32,1,["t"]],"expiry.${type}.header",[30,[36,8],null,[["type"],[[30,[36,2],[[32,3,["Valid"]],"valid","expired"],null]]]]],null]],null]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[30,[36,11],[[32,3,["License","expiration_time"]]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"aside"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,6],[[30,[36,5],[[32,1,["t"]],"documentation.title"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[1,[30,[36,6],[[30,[36,5],[[32,1,["t"]],"documentation.body",[30,[36,8],null,[["htmlSafe"],[true]]]],null]],null]],[2,"\\n "],[13],[2,"\\n\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3]}]]],[2," "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n\\n"]],"hasEval":false,"upvars":["notification","eq","if","array","class-map","fn","compute","format-time","hash","temporal-within","not","temporal-format","routeName","uri","let"]}',meta:{moduleName:"consul-ui/templates/dc/show/license.hbs"}}) +e.default=t})),define("consul-ui/templates/dc/show/serverstatus",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"oG6Yv0sK",block:'{"symbols":["route","loader","item","item","after","notice","notice","notice"],"statements":[[8,"route",[],[["@name"],[[34,16]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,17],["/${partition}/${nspace}/${dc}/datacenter",[30,[36,13],null,[["partition","nspace","dc"],[[32,1,["params","partition"]],[32,1,["params","nspace"]],[32,1,["params","dc"]]]]]],null]]],[["default"],[{"statements":[[2,"\\n\\n"],[6,[37,18],[[32,2,["data"]]],null,[["default"],[{"statements":[[2," "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"error-state",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["disconnected"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,8],[[30,[36,4],[[32,2,["error","status"]],"404"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,12],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,8,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,8,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n This service has been deregistered and no longer exists in the catalog.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[8]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,8],[[30,[36,4],[[32,2,["error","status"]],"403"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,12],null,[["sticky"],[true]]]],[["@type"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,7,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Error!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,7,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n You no longer have access to this service\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[7]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"notice",[[24,0,"notification-update"],[4,[38,12],null,[["sticky"],[true]]]],[["@type"],["warning"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,6,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"strong"],[12],[2,"Warning!"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,6,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n An error was returned whilst loading this data, refresh to try again.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[6]}]]],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "]],"parameters":[5]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"tab-section"],[12],[2,"\\n\\n "],[10,"section"],[15,0,[30,[36,6],["server-failure-tolerance"],null]],[12],[2,"\\n\\n "],[10,"header"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[32,1,["t"]],"tolerance.link",[30,[36,13],null,[["htmlSafe"],[true]]]],null]],null]],[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[32,1,["t"]],"tolerance.header"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"section"],[15,0,[30,[36,6],[[30,[36,5],["immediate-tolerance"],null]],null]],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[32,1,["t"]],"tolerance.immediate.header"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[15,0,[30,[36,6],[[30,[36,5],["warning",[30,[36,14],[[30,[36,4],[[32,3,["FailureTolerance"]],0],null],[30,[36,4],[[32,3,["OptimisticFailureTolerance"]],0],null]],null]],null]],null]],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[32,1,["t"]],"tolerance.immediate.body"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,3,["FailureTolerance"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,8],[[30,[36,15],["read zones"],null]],null,[["default"],[{"statements":[[2," "],[10,"section"],[15,0,[30,[36,6],[[30,[36,5],["optimistic-tolerance"],null]],null]],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[32,1,["t"]],"tolerance.optimistic.header"],null]],null]],[2,"\\n "],[11,"span"],[4,[38,11],["With > 30 seconds between server failures, Consul can restore the Immediate Fault Tolerance by replacing failed active voters with healthy back-up voters when using redundancy zones."],null],[12],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[15,0,[30,[36,6],[[30,[36,5],["warning",[30,[36,4],[[32,3,["OptimisticFailureTolerance"]],0],null]],null]],null]],[12],[2,"\\n "],[10,"dt"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[32,1,["t"]],"tolerance.optimistic.body"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[10,"dd"],[12],[2,"\\n "],[1,[32,3,["OptimisticFailureTolerance"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n\\n"],[6,[37,8],[[30,[36,7],[[32,3,["RedundancyZones","length"]],0],null]],null,[["default","else"],[{"statements":[[2," "],[10,"section"],[15,0,[30,[36,6],["redundancy-zones"],null]],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,1],[[30,[36,0],["common.consul.redundancyzone"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,10],[[30,[36,9],[[30,[36,9],[[32,3,["RedundancyZones"]]],null]],null]],null,[["default"],[{"statements":[[6,[37,8],[[30,[36,7],[[32,4,["Servers","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"section"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[32,4,["Name"]]],[2,"\\n "],[13],[2,"\\n "],[10,"dl"],[15,0,[30,[36,6],[[30,[36,5],["warning",[30,[36,4],[[32,4,["FailureTolerance"]],0],null]],null]],null]],[12],[2,"\\n "],[10,"dt"],[12],[1,[30,[36,0],["common.consul.failuretolerance"],null]],[13],[2,"\\n "],[10,"dd"],[12],[1,[32,4,["FailureTolerance"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"consul/server/list",[],[["@items"],[[32,4,["Servers"]]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[4]}]]],[2,"\\n"],[6,[37,8],[[30,[36,7],[[32,3,["Default","Servers","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"section"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[32,1,["t"]],"unassigned"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"consul/server/list",[],[["@items"],[[32,3,["Default","Servers"]]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"section"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,3],[[30,[36,2],[[32,1,["t"]],"servers"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"consul/server/list",[],[["@items"],[[32,3,["Default","Servers"]]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,8],[[30,[36,7],[[32,3,["ReadReplicas","length"]],0],null]],null,[["default"],[{"statements":[[2," "],[10,"section"],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h2"],[12],[2,"\\n "],[1,[30,[36,1],[[30,[36,0],["common.consul.readreplica"],null]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[8,"consul/server/list",[],[["@items"],[[32,3,["ReadReplicas"]]]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3]}]]],[2," "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n\\n"]],"hasEval":false,"upvars":["t","pluralize","fn","compute","eq","array","class-map","gt","if","-track-array","each","tooltip","notification","hash","and","can","routeName","uri","let"]}',meta:{moduleName:"consul-ui/templates/dc/show/serverstatus.hbs"}}) +e.default=t})),define("consul-ui/templates/error",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"KX7JLK/T",block:'{"symbols":[],"statements":[[6,[37,1],[[35,0]],null,[["default"],[{"statements":[[8,"app-error",[],[["@error"],[[34,0]]],null],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["error","if"]}',meta:{moduleName:"consul-ui/templates/error.hbs"}}) +e.default=t})),define("consul-ui/templates/index",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"OcrlVtCJ",block:'{"symbols":["route","o"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"outlet",[],[["@name","@model"],[[34,0],[32,1,["model"]]]],[["default"],[{"statements":[[2,"\\n "],[1,[30,[36,2],[[30,[36,1],null,null]],null]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["routeName","-outlet","component"]}',meta:{moduleName:"consul-ui/templates/index.hbs"}}) +e.default=t})),define("consul-ui/templates/loading",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"o38EFfaS",block:'{"symbols":[],"statements":[],"hasEval":false,"upvars":[]}',meta:{moduleName:"consul-ui/templates/loading.hbs"}}) +e.default=t})),define("consul-ui/templates/notfound",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"UjlaBDbX",block:'{"symbols":["route"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@login","@error"],[[32,1,["model","app","login","open"]],[30,[36,1],null,[["status","message"],[404,"Unable to find that page"]]]]],null],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n\\n"]],"hasEval":false,"upvars":["routeName","hash"]}',meta:{moduleName:"consul-ui/templates/notfound.hbs"}}) +e.default=t})),define("consul-ui/templates/oauth-provider-debug",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"Ngf+ijS4",block:'{"symbols":["route","item"],"statements":[[8,"route",[],[["@name"],[[34,0]]],[["default"],[{"statements":[[2,"\\n"],[10,"div"],[14,5,"width: 50%;margin: 0 auto;"],[12],[2,"\\n "],[10,"h1"],[12],[8,[32,1,["Title"]],[],[["@title"],["Mock OAuth Provider"]],null],[13],[2,"\\n "],[10,"main"],[12],[2,"\\n "],[10,"form"],[14,"method","GET"],[15,"action",[34,1]],[12],[2,"\\n"],[6,[37,3],[[30,[36,2],null,[["state","code"],["state-123456789/abcdefghijklmnopqrstuvwxyz","code-abcdefghijklmnopqrstuvwxyz/123456789"]]]],null,[["default"],[{"statements":[[2," "],[8,"text-input",[],[["@name","@label","@item","@help"],["state","State",[32,2],"The OIDC state value that will get passed through to Consul"]],null],[2,"\\n "],[8,"text-input",[],[["@name","@label","@item","@help"],["code","Code",[32,2],"The OIDC code value that will get passed through to Consul"]],null],[2,"\\n"]],"parameters":[2]}]]],[2," "],[8,"action",[],[["@type"],["submit"]],[["default"],[{"statements":[[2,"\\n Login\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["routeName","redirect_uri","hash","let"]}',meta:{moduleName:"consul-ui/templates/oauth-provider-debug.hbs"}}) +e.default=t})),define("consul-ui/templates/settings",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var t=Ember.HTMLBars.template({id:"NoqsVAP9",block:'{"symbols":["route","loader","item","disclosure","notice"],"statements":[[8,"route",[],[["@name"],[[34,8]]],[["default"],[{"statements":[[2,"\\n "],[8,"data-loader",[],[["@src"],[[30,[36,9],["settings://consul:client"],null]]],[["default"],[{"statements":[[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["error"]],[["default"],[{"statements":[[2,"\\n "],[8,"app-error",[],[["@error","@login"],[[32,2,["error"]],[32,1,["model","app","login","open"]]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"block-slot",[],[["@name"],["loaded"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,12],[[30,[36,11],[[32,2,["data"]],[30,[36,10],null,[["blocking"],[true]]]],null]],null,[["default"],[{"statements":[[2," "],[8,"app-view",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"block-slot",[],[["@name"],["header"]],[["default"],[{"statements":[[2,"\\n "],[10,"h1"],[12],[2,"\\n "],[8,[32,1,["Title"]],[],[["@title"],["Settings"]],null],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"block-slot",[],[["@name"],["content"]],[["default"],[{"statements":[[2,"\\n "],[8,"notice",[],[["@type"],["info"]],[["default"],[{"statements":[[2,"\\n "],[8,[32,5,["Header"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h2"],[12],[2,"Local Storage"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,5,["Body"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"p"],[12],[2,"\\n These settings are immediately saved to local storage and persisted through browser usage.\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "],[10,"form"],[12],[2,"\\n"],[6,[37,2],[[30,[36,3],[[30,[36,7],["CONSUL_UI_DISABLE_REALTIME"],null]],null]],null,[["default"],[{"statements":[[2," "],[8,"disclosure",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,4,["Details"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"data-sink",[],[["@data","@sink","@onchange"],[[32,3],"settings://consul:client",[30,[36,1],[[32,0],[30,[36,0],[[32,4,["close"]]],null]],null]]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[10,"fieldset"],[12],[2,"\\n "],[10,"h2"],[12],[2,"Blocking Queries"],[13],[2,"\\n "],[10,"p"],[12],[2,"Keep catalog info up-to-date without refreshing the page. Any changes made to services, nodes and intentions would be reflected in real time."],[13],[2,"\\n "],[10,"div"],[14,0,"type-toggle"],[12],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[11,"input"],[24,3,"client[blocking]"],[16,"checked",[30,[36,2],[[32,3,["blocking"]],"checked"],null]],[24,4,"checkbox"],[4,[38,6],["change",[30,[36,5],[[30,[36,4],[[32,3],"blocking",[30,[36,3],[[32,3,["blocking"]]],null]],null],[30,[36,0],[[32,4,["open"]]],null]],null]],null],[12],[13],[2,"\\n "],[10,"span"],[12],[1,[30,[36,2],[[32,3,["blocking"]],"On","Off"],null]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[3]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[2]}]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["fn","action","if","not","set","queue","on","env","routeName","uri","hash","or","let"]}',meta:{moduleName:"consul-ui/templates/settings.hbs"}}) +e.default=t})),define("consul-ui/transforms/array",["exports","ember-data-model-fragments/transforms/array"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=t.default +e.default=n})),define("consul-ui/transforms/boolean",["exports","@ember-data/serializer/-private"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.BooleanTransform}})})),define("consul-ui/transforms/date",["exports","@ember-data/serializer/-private"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.DateTransform}})})),define("consul-ui/transforms/fragment-array",["exports","ember-data-model-fragments/transforms/fragment-array"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=t.default +e.default=n})),define("consul-ui/transforms/fragment",["exports","ember-data-model-fragments/transforms/fragment"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n=t.default +e.default=n})),define("consul-ui/transforms/number",["exports","@ember-data/serializer/-private"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.NumberTransform}})})),define("consul-ui/transforms/string",["exports","@ember-data/serializer/-private"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.StringTransform}})})),define("consul-ui/utils/ascend",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){const n=e.split("/") +return n.length>t?n.slice(0,-t).concat("").join("/"):""}})),define("consul-ui/utils/atob",["exports","base64-js"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n="utf-8"){const r=t.default.toByteArray(e) +return new TextDecoder(n).decode(r)}})),define("consul-ui/utils/btoa",["exports","base64-js"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){const n=(new TextEncoder).encode(e) +return t.default.fromByteArray(n)}})) +define("consul-ui/utils/calculate-position",["exports","ember-basic-dropdown/utils/calculate-position"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/utils/callable-type",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return"function"!=typeof e?function(){return e}:e}})),define("consul-ui/utils/create-fingerprinter",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t,n,r=JSON.stringify){return function(a,l,s,i,o){return function(u){if(null==(s=null==s?u[e]:s))throw new Error(`Unable to create fingerprint, missing foreignKey value. Looking for value in \`${e}\` got \`${s}\``) +const c=l.split(",").map((function(e){const t=Ember.get(u,e) +if(null==t||t.length<1)throw new Error(`Unable to create fingerprint, missing slug. Looking for value in \`${e}\` got \`${t}\``) +return t})) +return void 0===u[t]&&("*"===i&&(i="default"),u[t]=i),void 0===u[n]&&("*"===o&&(o="default"),u[n]=o),void 0===u[e]&&(u[e]=s),void 0===u[a]&&(u[a]=r([u[n],u[t],s].concat(c))),u}}}})),define("consul-ui/utils/distance",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){e=e.Coord,t=t.Coord +let n=0 +for(let s=0;s0&&(a=l) +return Math.round(1e5*a)/100}})),define("consul-ui/utils/dom/click-first-anchor",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n=t){return function(t,r="tr"){switch(t.target.nodeName.toLowerCase()){case"input":case"label":case"a":case"button":return}const a=e(r,t.target).querySelector("a") +a&&n(a)}} +const t=function(e){["mousedown","mouseup","click"].map((function(e){return new MouseEvent(e,{bubbles:!0,cancelable:!0,view:window})})).forEach((function(t){e.dispatchEvent(t)}))}})),define("consul-ui/utils/dom/closest",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){try{return t.closest(e)}catch(n){return}}})),define("consul-ui/utils/dom/create-listeners",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e=[]){return new t(e)} +class t{constructor(e=[]){this.listeners=e}add(e,n,r){let a +if("function"==typeof e)a=e +else if(e instanceof t)a=e.remove.bind(e) +else{let t="addEventListener",l="removeEventListener" +void 0===e[t]&&(t="on",l="off") +let s=n +"string"==typeof s&&(s={[n]:r}) +const i=Object.keys(s).map((function(n){return function(n,r){return e[t](n,r),function(){return e[l](n,r),r}}(n,s[n])})) +a=()=>i.map(e=>e())}return this.listeners.push(a),()=>{const e=this.listeners.findIndex((function(e){return e===a})) +return this.listeners.splice(e,1)[0]()}}remove(){const e=this.listeners.map(e=>e()) +return this.listeners.splice(0,this.listeners.length),e}}})),define("consul-ui/utils/dom/event-source/blocking",["exports"],(function(e){function t(e,t){if(null==e)return{} +var n,r,a=function(e,t){if(null==e)return{} +var n,r,a={},l=Object.keys(e) +for(r=0;r=0||(a[n]=e[n]) +return a}(e,t) +if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e) +for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,l=n()){const s=function(n,s={}){const{currentEvent:i}=s,o=t(s,["currentEvent"]) +e.apply(this,[e=>{const{createEvent:s}=e,i=t(e,["createEvent"]) +return n.apply(this,[i,this]).catch(l).then(t=>{if(t instanceof Error)return t +let n=("function"==typeof s?s:a)(t,e) +n.type||(n={type:"message",data:n}) +const l=Ember.get(n.data||{},"meta") +l&&(e.cursor=r(l.cursor,e.cursor),e.cacheControl=l.cacheControl,e.interval=l.interval),-1===(e.cacheControl||"").indexOf("no-store")&&(this.currentEvent=n),this.dispatchEvent(n) +const i=function(e){return function(t){return new Promise((function(n){setTimeout((function(){n(t)}),e.interval||2e3)}))}}(e,this.previousEvent) +return this.previousEvent=this.currentEvent,i(t)})},o]),void 0!==i&&(this.currentEvent=i),this.addEventListener("open",e=>{const t=e.target.getCurrentEvent() +void 0!==t&&this.dispatchEvent(t)})} +return s.prototype=Object.assign(Object.create(e.prototype,{constructor:{value:e,configurable:!0,writable:!0}}),{getCurrentEvent:function(){return this.currentEvent},getPreviousEvent:function(){return this.previousEvent}}),s},e.validateCursor=e.createErrorBackoff=void 0 +const n=function(e=3e3,t=Promise,n=setTimeout){return function(r){let a=Ember.get(r,"errors.firstObject.status")||Ember.get(r,"statusCode") +if(void 0!==a)switch(a=a.toString(),!0){case 0===a.indexOf("5")&&3===a.length&&"500"!==a:case"0"===a:return new t((function(t){n((function(){t(r)}),e)}))}throw r}} +e.createErrorBackoff=n +const r=function(e,t=null){let n=parseInt(e) +if(!isNaN(n))return null!==t&&n{if(!(this.readyState>1))return this.readyState=1,this.dispatchEvent({type:"open"}),l(this,n,r)}).catch(e=>{this.dispatchEvent(s(e)),this.readyState=2,this.dispatchEvent({type:"close",error:e})}).then(()=>{this.readyState=2})} +return i.prototype=Object.assign(Object.create(e.prototype,{constructor:{value:i,configurable:!0,writable:!0}}),{close:function(){switch(this.readyState){case 0:case 2:this.readyState=2 +break +default:this.readyState=3}return this}}),i},e.defaultRunner=void 0 +const t=function(e,n,r){if(!r(e))return e.source.bind(e)(n,e).then((function(){return t(e,n,r)})) +e.dispatchEvent({type:"close"})} +e.defaultRunner=t +const n=function(e){return new ErrorEvent("error",{error:e,message:e.message})},r=function(e){switch(e.readyState){case 2:case 3:return!0}return!1}})),define("consul-ui/utils/dom/event-source/index",["exports","consul-ui/utils/dom/create-listeners","consul-ui/utils/dom/event-target/rsvp","consul-ui/utils/dom/event-source/cache","consul-ui/utils/dom/event-source/proxy","consul-ui/utils/dom/event-source/resolver","consul-ui/utils/dom/event-source/callable","consul-ui/utils/dom/event-source/openable","consul-ui/utils/dom/event-source/blocking","consul-ui/utils/dom/event-source/storage","ember-concurrency","consul-ui/env"],(function(e,t,n,r,a,l,s,i,o,u,c,d){let m +switch(Object.defineProperty(e,"__esModule",{value:!0}),e.once=e.toPromise=e.fromPromise=e.cache=e.source=e.resolve=e.proxy=e.StorageEventSource=e.BlockingEventSource=e.OpenableEventSource=e.CallableEventSource=void 0,(0,d.env)("CONSUL_UI_REALTIME_RUNNER")){case"ec":m=function(e,t,n){return Ember.Object.extend({task:(0,c.task)((function*(){for(;!n(e);)yield e.source.bind(e)(t)}))}).create().get("task").perform()} +break +case"generator":m=async function(e,t,n){const r=function*(){for(;!n(e);)yield e.source.bind(e)(t)} +let a,l=r().next() +for(;!l.done;)a=await l.value,l=r().next() +return a} +break +case"async":m=async function(e,t,n){let r +for(;!n(e);)r=await e.source.bind(e)(t) +return r}}const p=(0,s.default)(n.default,Promise,m) +e.CallableEventSource=p +const f=(0,i.default)(p) +e.OpenableEventSource=f +const b=(0,o.default)(f) +e.BlockingEventSource=b +const h=(0,u.default)(n.default,Promise) +e.StorageEventSource=h +const v=(0,a.default)(Ember.ObjectProxy,Ember.ArrayProxy,t.default) +e.proxy=v +const y=(0,l.default)(Promise) +e.resolve=y +const g=function(e){return y(e,(0,t.default)()).then((function(t){return v(e,t)}))} +e.source=g +const O=(0,r.default)(g,b,Promise) +e.cache=O +e.fromPromise=function(e){return new p((function(){const t=this.dispatchEvent.bind(this),n=()=>{this.close()} +return e.then((function(e){n(),t({type:"message",data:e})})).catch((function(e){n(),t(function(e){return new ErrorEvent("error",{error:e,message:e.message})}(e))}))}))} +e.toPromise=function(e,t,n="message",r="error"){return new Promise((function(a,l){const s=function(e){a(e.data)},i=function(e){l(e.error)} +e.addEventListener(n,s),e.addEventListener(r,i),t((function(){"function"==typeof e.close&&e.close(),e.removeEventListener(n,s),e.removeEventListener(r,i)}))}))} +e.once=function(e,t,n=f){return new n((function(t,n){return e(t,n).then((function(e){n.dispatchEvent({type:"message",data:e}),n.close()})).catch((function(e){n.dispatchEvent({type:"error",error:e}),n.close()}))}),t)}})),define("consul-ui/utils/dom/event-source/openable",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e=EventSource){const t=function(t,n={}){e.apply(this,arguments),this.configuration=n} +return t.prototype=Object.assign(Object.create(e.prototype,{constructor:{value:t,configurable:!0,writable:!0}}),{open:function(){switch(this.readyState){case 3:this.readyState=1 +break +case 2:e.apply(this,[this.source,this.configuration])}return this}}),t}})),define("consul-ui/utils/dom/event-source/proxy",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n,r){return function(a,l=[]){let s=e,i="object" +return"string"!=typeof l&&void 0!==Ember.get(l,"length")&&(s=n,i="array",l=l.filter((function(e){return!Ember.get(e,"isDestroyed")&&!Ember.get(e,"isDeleted")&&Ember.get(e,"isLoaded")}))),void 0===t[i]&&(t[i]=s.extend({init:function(){this.listeners=r(),this.listeners.add(this._source,"message",e=>Ember.set(this,"content",e.data)),this._super(...arguments)},addEventListener:function(e,t){this.listeners.add(this._source,e,t)},getCurrentEvent:function(){return this._source.getCurrentEvent(...arguments)},removeEventListener:function(){return this._source.removeEventListener(...arguments)},dispatchEvent:function(){return this._source.dispatchEvent(...arguments)},close:function(){return this._source.close(...arguments)},open:function(){return this._source.open(...arguments)},willDestroy:function(){this._super(...arguments),this.close(),this.listeners.remove()}})),t[i].create({content:l,_source:a,configuration:a.configuration})}} +const t={}})),define("consul-ui/utils/dom/event-source/resolver",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e=Promise){return function(t,n){let r +return"function"==typeof t.getCurrentEvent&&(r=t.getCurrentEvent()),null!=r?e.resolve(r.data).then((function(e){return t.open(),e})):new e((function(e,r){n.add(t,"error",(function(e){n.remove(),e.target.close(),r(e.error)})),n.add(t,"message",(function(t){n.remove(),e(t.data)}))}))}}})),define("consul-ui/utils/dom/event-source/storage",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t=Promise){const n=function(e){if((void 0===e||e.key===this.configuration.key)&&1===this.readyState){const e=this.source(this.configuration) +t.resolve(e).then(e=>{this.configuration.cursor++,this._currentEvent={type:"message",data:e},this.dispatchEvent({type:"message",data:e})})}} +return class extends e{constructor(e,t){super(...arguments),this.readyState=2,this.target=t.target||window,this.name="storage",this.source=e,this.handler=n.bind(this),this.configuration=t,this.configuration.cursor=1,this.open()}dispatchEvent(){if(1===this.readyState)return super.dispatchEvent(...arguments)}close(){this.target.removeEventListener(this.name,this.handler),this.readyState=2}getCurrentEvent(){return this._currentEvent}open(){const e=this.readyState +this.readyState=1,1!==e&&(this.target.addEventListener(this.name,this.handler),this.handler())}}}})),define("consul-ui/utils/dom/event-target/event-target-shim/event",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.wrapEvent=function(e,t){return new(function e(t){if(null==t||t===Object.prototype)return l +let r=n.get(t) +null==r&&(r=function(e,t){const n=Object.keys(t) +if(0===n.length)return e +function r(t,n){e.call(this,t,n)}r.prototype=Object.create(e.prototype,{constructor:{value:r,configurable:!0,writable:!0}}) +for(let a=0;a{const n=function(e){return Object.entries(e).reduce((e,[t,n])=>(e[t]="function"!=typeof n?new Set(Object.keys(n)):null,e),{})}(e) +return r=>(r=function(e,n){return Object.keys(n).reduce((r,a)=>{const l=void 0===e[a]?[]:e[a] +return l.length>0&&(null!==n[a]?r[a]=[...t.default.intersection(n[a],new Set(l))]:r[a]=[...new Set(l)]),r},{})}(r,n),t=>function(e,t,n){return Object.entries(t).every(([t,r])=>{let a=n[t] +return"function"==typeof a?a(e,r):r.some(t=>a[t](e,t))})}(t,r,e))}})),define("consul-ui/utils/form/builder",["exports","ember-changeset","consul-ui/utils/form/changeset","ember-changeset-validations","consul-ui/utils/get-form-name-property"],(function(e,t,n,r,a){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e=l,t=a.default){return function(n="",r={}){const a={} +let l=null +const s={data:null,name:n,getName:function(){return this.name},setData:function(t){return l&&!Array.isArray(t)&&(t=e(t,l)),Ember.set(this,"data",t),this},getData:function(){return this.data},add:function(e){return a[e.getName()]=e,this},handleEvent:function(e,n){const a=e.target,l=t(n||a.name),s=l[0],i=l[1] +let o=r +if(s!==this.getName()){if(this.has(s))return this.form(s).handleEvent(e) +o=o[s]}const u=this.getData(),c="function"==typeof u.toJSON?u.toJSON():Ember.get(u,"data").toJSON() +if(!Object.keys(c).includes(i)){const e=new Error(i+" property doesn't exist") +throw e.target=a,e}let d=Ember.get(u,i) +if(Array.isArray(d)||void 0!==o[i]&&"string"==typeof o[i].type&&"array"===o[i].type.toLowerCase()){null==d&&(d=[]) +d[a.checked?"pushObject":"removeObject"](a.value),Ember.set(u,i,d)}else void 0===a.checked||"on"!==a.value.toLowerCase()&&"off"!==a.value.toLowerCase()?Ember.set(u,i,a.value):Ember.set(u,i,a.checked) +return this.validate()},reset:function(){return"function"==typeof this.getData().rollbackAttributes&&this.getData().rollbackAttributes(),this},clear:function(e={}){return"function"==typeof e?this.clearer=e:this.setData(this.clearer(e)).getData()},submit:function(e={}){if("function"==typeof e)return this.submitter=e +this.submitter(this.getData())},setValidators:function(e){return l=e,this},validate:function(){const e=this.getData() +return"function"==typeof e.validate&&e.validate(),this},addError:function(){const e=this.getData() +"function"==typeof e.addError&&e.addError(...arguments)},form:function(e){return null==e?this:a[e]},has:function(e){return void 0!==a[e]}} +return s.submit=s.submit.bind(s),s.reset=s.reset.bind(s),s}},e.defaultChangeset=void 0 +const l=function(e,a){return(0,t.Changeset)(e,(0,r.default)(a),a,{changeset:n.default})} +e.defaultChangeset=l})),define("consul-ui/utils/form/changeset",["exports","ember-changeset"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.EmberChangeset{pushObject(e,t){let n +void 0===Ember.get(this,"_changes."+e)?(n=Ember.get(this,"data."+e),n=n?n.toArray():[]):n=this.get(e).slice(0),n.push(t),this.set(""+e,n)}removeObject(e,t){let n +void 0===Ember.get(this,"_changes."+e)?(n=Ember.get(this,"data."+e),n=void 0===n?[]:n.toArray()):n=this.get(e).slice(0) +const r=n.indexOf(t);-1!==r&&n.splice(r,1),this.set(""+e,n)}}e.default=n})),define("consul-ui/utils/get-environment",["exports"],(function(e){function t(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n"script"===t.initiatorType&&e===t.name)||{}}catch(n){return{}}}(o)),u.nextHopProtocol||"http/1.1" +case"CONSUL_HTTP_MAX_CONNECTIONS":switch(r=n("CONSUL_HTTP_PROTOCOL"),!0){case 0===r.indexOf("h2"):case 0===r.indexOf("hq"):case 0===r.indexOf("spdy"):return +default:return 5}}},d=function(t){let n +switch(e.environment){case"development":case"staging":case"coverage":case"test":if(n=function(e=r.cookie){return e.split(";").filter(e=>""!==e).map(e=>{const[t,...n]=e.trim().split("=") +return[t,n.join("=")]})}().reduce((function(e,[t,n]){switch(t){case"CONSUL_INTL_LOCALE":e.CONSUL_INTL_LOCALE=String(n).toLowerCase() +break +case"CONSUL_INTL_DEBUG":e.CONSUL_INTL_DEBUG=!!JSON.parse(String(n).toLowerCase()) +break +case"CONSUL_ACLS_ENABLE":e.CONSUL_ACLS_ENABLED=!!JSON.parse(String(n).toLowerCase()) +break +case"CONSUL_NSPACES_ENABLE":e.CONSUL_NSPACES_ENABLED=!!JSON.parse(String(n).toLowerCase()) +break +case"CONSUL_SSO_ENABLE":e.CONSUL_SSO_ENABLED=!!JSON.parse(String(n).toLowerCase()) +break +case"CONSUL_PARTITIONS_ENABLE":e.CONSUL_PARTITIONS_ENABLED=!!JSON.parse(String(n).toLowerCase()) +break +case"CONSUL_METRICS_PROXY_ENABLE":e.CONSUL_METRICS_PROXY_ENABLED=!!JSON.parse(String(n).toLowerCase()) +break +case"CONSUL_UI_CONFIG":e.CONSUL_UI_CONFIG=JSON.parse(n) +break +default:e[t]=n}return e}),{}),void 0!==n[t])return n[t]}return e[t]} +return function e(t){switch(t){case"CONSUL_UI_DISABLE_REALTIME":case"CONSUL_UI_DISABLE_ANCHOR_SELECTION":return!!JSON.parse(String(a(t)||0).toLowerCase())||d(t) +case"CONSUL_UI_REALTIME_RUNNER":return a(t)||d(t) +case"CONSUL_UI_CONFIG":case"CONSUL_DATACENTER_LOCAL":case"CONSUL_DATACENTER_PRIMARY":case"CONSUL_ACLS_ENABLED":case"CONSUL_NSPACES_ENABLED":case"CONSUL_SSO_ENABLED":case"CONSUL_PARTITIONS_ENABLED":case"CONSUL_METRICS_PROVIDER":case"CONSUL_METRICS_PROXY_ENABLE":case"CONSUL_SERVICE_DASHBOARD_URL":case"CONSUL_BASE_UI_URL":case"CONSUL_HTTP_PROTOCOL":case"CONSUL_HTTP_MAX_CONNECTIONS":return d(t)||c(t,e) +default:return d(t)}}}})),define("consul-ui/utils/get-form-name-property",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){if(-1!==e.indexOf("["))return e.match(/(.*)\[(.*)\]/).slice(1) +return["",e]}})),define("consul-ui/utils/helpers/call-if-type",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return function(t){return function(n,r={}){return typeof n[0]!==e?n[0]:t(n[0],r)}}}})),define("consul-ui/utils/http/consul",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.HEADERS_SYMBOL=e.HEADERS_DIGEST=e.HEADERS_TOKEN=e.HEADERS_INDEX=e.HEADERS_DEFAULT_ACL_POLICY=e.HEADERS_DATACENTER=e.HEADERS_NAMESPACE=e.HEADERS_PARTITION=void 0 +e.HEADERS_PARTITION="X-Consul-Partition" +e.HEADERS_NAMESPACE="X-Consul-Namespace" +e.HEADERS_DATACENTER="X-Consul-Datacenter" +e.HEADERS_DEFAULT_ACL_POLICY="X-Consul-Default-Acl-Policy" +e.HEADERS_INDEX="X-Consul-Index" +e.HEADERS_TOKEN="X-Consul-Token" +e.HEADERS_DIGEST="X-Consul-ContentHash" +e.HEADERS_SYMBOL="__consul_ui_http_headers__"})) +define("consul-ui/utils/http/create-headers",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return function(e){return e.reduce((function(e,t){const[n,...r]=t.split(":") +return r.length>0&&(e[n.trim()]=r.join(":").trim()),e}),{})}}})),define("consul-ui/utils/http/create-query-params",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e=encodeURIComponent){return function t(n,r){return Object.entries(n).reduce((function(n,[a,l]){if(void 0===l)return n +let s=e(a) +return void 0!==r&&(s=`${r}[${s}]`),null===l?n.concat(s):"object"==typeof l?n.concat(t(l,s)):n.concat(`${s}=${e(l)}`)}),[]).join("&")}}})),define("consul-ui/utils/http/create-url",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){return function(n,...r){let a=1 +return n.map((function(n,l){0===l&&(n=n.trimStart()),-1!==n.indexOf("?")&&1===a&&(a=2),-1!==n.indexOf("\n\n")&&(a=4),-1!==n.indexOf("\n")&&4!==a&&(a=3) +let s=void 0!==r[l]?r[l]:"" +switch(a){case 1:switch(!0){case"string"==typeof s:s=e(s) +break +case Array.isArray(s):s=s.map((function(t){return""+e(t)}),"").join("/")}break +case 2:switch(!0){case"string"==typeof s:s=e(s) +break +case"object"==typeof s:s=t(s)}break +case 4:return n.split("\n\n")[0]}return`${n}${s}`})).join("").trim()}}})),define("consul-ui/utils/http/error",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class t extends Error{constructor(e,t){super(t),this.statusCode=e}}e.default=t})),define("consul-ui/utils/http/headers",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CONTENT_TYPE=e.CACHE_CONTROL=void 0 +e.CACHE_CONTROL="Cache-Control" +e.CONTENT_TYPE="Content-Type"})),define("consul-ui/utils/http/method",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.POST=e.DELETE=e.PUT=void 0 +e.PUT="PUT" +e.DELETE="DELETE" +e.POST="POST"})),define("consul-ui/utils/http/request",["exports","consul-ui/utils/dom/event-target/rsvp"],(function(e,t){function n(e,t){var n=Object.keys(e) +if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e) +t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t=200&&this.status<400){const e=r.converters["text json"](this.response) +r.success(t,e,this.status,this.statusText)}else r.error(t,this.responseText,this.status,this.statusText,this.error) +r.complete(this.status)}} +let l=r.url +l.endsWith("?")&&(l=l.substr(0,l.length-1)),a.open(r.method,l,!0),void 0===r.headers&&(r.headers={}) +const s=n(n({},r.headers),{},{"X-Requested-With":"XMLHttpRequest"}) +return Object.entries(s).forEach(([e,t])=>a.setRequestHeader(e,t)),r.beforeSend(a),a.send(r.body),a}}})),define("consul-ui/utils/intl/missing-message",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){const t=e.split(".").pop().split("-").join(" ") +return`${t.substr(0,1).toUpperCase()}${t.substr(1)}`}})),define("consul-ui/utils/isFolder",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e=""){return"/"===e.slice(-1)}})),define("consul-ui/utils/keyToArray",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t="/"){return(e===t?"":e).split(t)}})),define("consul-ui/utils/left-trim",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e="",t=""){return 0===e.indexOf(t)?e.substr(t.length):e}})),define("consul-ui/utils/maybe-call",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){return function(n){return t.then((function(t){return t&&e(),n}))}}})),define("consul-ui/utils/merge-checks",["exports","mnemonist/multi-map"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=(e=[],n=!1,r=t.default)=>{const a=new r,l=e.shift().map(e=>(""===e.ServiceName&&a.set(e.Node,e.CheckID),e)).concat(e.reduce((e,t)=>void 0===t?e:e.concat(t.reduce((e,t)=>{if(""===t.ServiceName){if((a.get(t.Node)||[]).includes(t.CheckID))return e +a.set(t.Node,t.CheckID)}return e.push(t),e},[])),[])) +return n&&l.filter(e=>Ember.get(e,"Exposable")).forEach(e=>{Ember.set(e,"Exposed",n)}),l}})),define("consul-ui/utils/minimizeModel",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){if(Array.isArray(e))return e.filter((function(e){return!Ember.get(e,"isNew")})).map((function(e){return{ID:Ember.get(e,"ID"),Name:Ember.get(e,"Name")}}))}})),define("consul-ui/utils/non-empty-set",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return function(t){return null==t||""===t?{}:{[e]:t}}}})),define("consul-ui/utils/path/resolve",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=(e,t)=>0===t.indexOf("/")?t:t.split("/").reduce((e,t,n,r)=>("."!==t&&(".."===t?e.pop():""===t&&n!==r.length-1||e.push(t)),e),e.split("/")).join("/")})),define("consul-ui/utils/promisedTimeout",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e=Promise,t=setTimeout){return function(n,r=function(){}){return new e(e=>{r(t((function(){e(n)}),n))})}}})),define("consul-ui/utils/right-trim",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e="",t=""){const n=e.length-t.length +if(n>=0)return e.lastIndexOf(t)===n?e.substr(0,n):e +return e}})),define("consul-ui/utils/routing/redirect-to",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return function(t){const n=this.routeName.split(".").slice(0,-1).join(".") +this.replaceWith(`${n}.${e}`,t)}}})),define("consul-ui/utils/routing/transitionable",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n={},r){null===e&&(e=r.lookup("route:application")) +let a,l=t(e,n),s=e +for(;a=s.parent;)l=l.concat(t(a,n)),s=a +return l.reverse(),function(e,t){return[e,...t]}(e.name||"application",l)} +const t=function(e,t={}){return(e.paramNames||[]).map((function(n){return void 0!==t[n]?t[n]:e.params[n]})).reverse()}})),define("consul-ui/utils/routing/walk",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return function(){t.apply(this,[e])}},e.dump=e.walk=void 0 +const t=function(e){Object.keys(e).forEach(n=>{if("_options"===n)return +const r=e[n]._options +let a +Object.keys(e[n]).length>1&&(a=function(){t.apply(this,[e[n]])}),this.route(n,r,a)}),void 0===e.index&&(e.index={_options:{path:""}})} +e.walk=t +e.dump=()=>{}})),define("consul-ui/utils/routing/wildcard",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return function(t){let n=!1 +try{n=-1!==Ember.get(e,t)._options.path.indexOf("*")}catch(r){}return n}}})),define("consul-ui/utils/search/exact",["exports","consul-ui/utils/search/predicate"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{predicate(e){return e=e.toLowerCase(),(t="")=>-1!==t.toString().toLowerCase().indexOf(e)}}e.default=n})),define("consul-ui/utils/search/fuzzy",["exports","fuse.js"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=class{constructor(e,n){this.fuse=new t.default(e,{includeMatches:!0,shouldSort:!1,threshold:.4,keys:Object.keys(n.finders)||[],getFn:(e,t)=>(n.finders[t[0]](e)||[]).toString()})}search(e){return this.fuse.search(e).map(e=>e.item)}}})),define("consul-ui/utils/search/predicate",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=class{constructor(e,t){this.items=e,this.options=t}search(e){const t=this.predicate(e) +return this.items.filter(e=>Object.entries(this.options.finders).some(([n,r])=>{const a=r(e) +return Array.isArray(a)?a.some(t):t(a)}))}}})),define("consul-ui/utils/search/regexp",["exports","consul-ui/utils/search/predicate"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +class n extends t.default{predicate(e){let t +try{t=new RegExp(e,"i")}catch(n){return()=>!1}return e=>t.test(e)}}e.default=n})),define("consul-ui/utils/storage/local-storage",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e="",t=window.localStorage,n=JSON.stringify,r=JSON.parse,a=function(e){window.dispatchEvent(new StorageEvent("storage",{key:e}))}){const l=e+":" +return{getValue:function(e){let n=t.getItem(`${l}${e}`) +"string"!=typeof n&&(n='""') +try{n=r(n)}catch(a){n=""}return n},setValue:function(e,r){if(null===r)return this.removeValue(e) +try{r=n(r)}catch(i){r='""'}const s=t.setItem(`${l}${e}`,r) +return a(`${l}${e}`),s},removeValue:function(e){const n=t.removeItem(`${l}${e}`) +return a(`${l}${e}`),n},all:function(){return Object.keys(t).reduce((e,t)=>{if(0===t.indexOf(""+l)){const n=t.substr(l.length) +e[n]=this.getValue(n)}return e},{})}}}})),define("consul-ui/utils/templatize",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e=[]){return e.map(e=>"template-"+e)}})) +define("consul-ui/utils/ticker/index",["exports","consul-ui/utils/dom/event-target/rsvp"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.Tween=e.Ticker=void 0 +const n=class extends t.default{constructor(e=1e3/60){super(),this.setRate(e)}tick(){this.dispatchEvent({type:"tick",target:this})}setRate(e){clearInterval(this._interval),this._interval=setInterval(()=>this.tick(),e)}destroy(){clearInterval(this._interval)}},r=class extends t.default{static destroy(){void 0!==r.defaultTickerGroup&&(r.defaultTickerGroup.destroy(),delete r.defaultTickerGroup)}constructor(e){super(),this.setTickable(e)}tick(){this._tickable.tick()}setTickable(e){this._tickable=e,void 0===this._tickable.getTicker&&(this._tickable.getTicker=()=>this),this.tick=this._tickable.tick.bind(this._tickable)}getTickable(){return this._tickable}isAlive(){return this._isAlive}start(){this._isAlive=!0,this.getTickerGroup().addEventListener("tick",this.tick),this.dispatchEvent({type:"start",target:this})}stop(){this._isAlive=!1,this.getTickerGroup().removeEventListener("tick",this.tick),this.dispatchEvent({type:"stop",target:this})}activeCount(){return this.getTickerGroup().activeCount()}setTickerGroup(e){this._group=e}getTickerGroup(){return void 0===this._group&&(void 0===r.defaultTickerGroup&&(r.defaultTickerGroup=new l),this._group=r.defaultTickerGroup),this._group}} +e.Ticker=r +const a=function(e,t,n,r){return e/=r,n*(--e*e*e+1)+t},l=n,s=class extends class{constructor(){this._currentframe=1,this.setIncrement(1)}isAtStart(){return this._currentframe<=1}isAtEnd(){return this._currentframe>=this._totalframes}addEventListener(){return this.getTicker().addEventListener(...arguments)}removeEventListener(){return this.getTicker().removeEventListener(...arguments)}stop(){return this.gotoAndStop(this._currentframe)}play(){return this.gotoAndPlay(this._currentframe)}start(){return this.gotoAndPlay(this._currentframe)}gotoAndStop(e){this._currentframe=e +const t=this.getTicker() +return t.isAlive()&&t.stop(),this}gotoAndPlay(e){this._currentframe=e +const t=this.getTicker() +return t.isAlive()||t.start(),this}getTicker(){return void 0===this._ticker&&(this._ticker=new r(this)),this._ticker}setFrames(e){return this._totalframes=e,this}setIncrement(e){return this._increment=e,this}}{static destroy(){r.destroy()}static to(e,t,n,r){return Object.keys(t).forEach((function(n){t[n]-=e[n]})),new s(e,t,n,r).play()}constructor(e,t,n=12,r=a){super(),this.setMethod(r),this.setProps(t),this.setTarget(e),this.setFrames(n),this.tick=this.forwards}_process(){Object.keys(this._props).forEach(e=>{const t=this._method(this._currentframe,this._initialstate[e],this._props[e],this._totalframes) +Ember.set(this._target,e,t)})}forwards(){this._currentframe<=this._totalframes?(this._process(),this._currentframe+=this._increment):(this._currentframe=this._totalframes,this.getTicker().stop())}backwards(){this._currentframe-=this._increment,this._currentframe>=0?this._process():(this.run=this.forwards,this._currentframe=1,this.getTicker().stop())}gotoAndPlay(){return void 0===this._initialstate&&(this._initialstate={},Object.keys(this._props).forEach(e=>{this._initialstate[e]=this._target[e]})),super.gotoAndPlay(...arguments)}setTarget(e){this._target=e}getTarget(e){return this._target}setProps(e){return this._props=e,this}setMethod(e){this._method=e}} +e.Tween=s})),define("consul-ui/utils/titleize",["exports","ember-cli-string-helpers/utils/titleize"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("consul-ui/utils/tomography",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return function(t,n){var r=999999999,a=-999999999,l=[] +n.forEach((function(s){if(t==s.Node){var i=s.Segment +n.forEach((function(t){if(s.Node!=t.Node&&t.Segment==i){var n=e(s,t) +l.push({node:t.Node,distance:n,segment:i}),na&&(a=n)}})),l.sort((function(e,t){return e.distance-t.distance}))}})) +var s,i=l.length,o=Math.floor(i/2) +return i>0?s=i%2?l[o].distance:(l[o-1].distance+l[o].distance)/2:(s=0,r=0,a=0),{distances:l,min:Math.trunc(100*r)/100,median:Math.trunc(100*s)/100,max:Math.trunc(100*a)/100}}}})),define("consul-ui/utils/ucfirst",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return`${e.substr(0,1).toUpperCase()}${e.substr(1)}`}})),define("consul-ui/utils/update-array-object",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t,n,r){r=void 0===r?Ember.get(t,n):r +const a=e.findIndex((function(e){return Ember.get(e,n)===r}));-1!==a&&(t instanceof Ember.ObjectProxy&&Ember.set(t,"content",e.objectAt(a)),e.replace(a,1,[t])) +return t}})),define("consul-ui/validations/intention-permission-http-header",["exports","ember-changeset-validations/validators","ember-changeset-conditional-validations/validators/sometimes"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=()=>({Name:[(0,t.validatePresence)(!0)],Value:(0,n.default)([(0,t.validatePresence)(!0)],(function(){return"Present"!==this.get("HeaderType")}))})})),define("consul-ui/validations/intention-permission",["exports","ember-changeset-validations/validators","ember-changeset-conditional-validations/validators/sometimes"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default=e=>({"*":(0,n.default)([(0,t.validatePresence)(!0)],(function(){const e=this.get("HTTP.Methods")||[],t=this.get("HTTP.Header")||[],n=this.get("HTTP.PathType")||"NoPath",r=this.get("HTTP.Path")||"" +return![0!==e.length,0!==t.length,"NoPath"!==n&&""!==r].includes(!0)})),Action:[(0,t.validateInclusion)({in:e["intention-permission"].Action.allowedValues})],HTTP:{Path:(0,n.default)([(0,t.validateFormat)({regex:/^\//})],(function(){const e=this.get("HTTP.PathType") +return void 0!==e&&"NoPath"!==e}))}})})),define("consul-ui/validations/intention",["exports","ember-changeset-validations/validators","ember-changeset-conditional-validations/validators/sometimes"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var r={"*":(0,n.default)([(0,t.validatePresence)(!0)],(function(){const e=this.get("Action")||"",t=this.get("Permissions")||[] +return""===e&&0===t.length})),SourceName:[(0,t.validatePresence)(!0),(0,t.validateLength)({min:1})],DestinationName:[(0,t.validatePresence)(!0),(0,t.validateLength)({min:1})],Permissions:[(0,n.default)([(0,t.validateLength)({min:1})],(function(){return!this.get("Action")}))]} +e.default=r})),define("consul-ui/validations/kv",["exports","ember-changeset-validations/validators"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={Key:[(0,t.validatePresence)(!0),(0,t.validateLength)({min:1})]} +e.default=n})),define("consul-ui/validations/policy",["exports","ember-changeset-validations/validators"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={Name:(0,t.validateFormat)({regex:/^[A-Za-z0-9\-_]{1,128}$/})} +e.default=n})),define("consul-ui/validations/role",["exports","ember-changeset-validations/validators"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +var n={Name:(0,t.validateFormat)({regex:/^[A-Za-z0-9\-_]{1,256}$/})} +e.default=n})),define("consul-ui/validations/token",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 +e.default={}})),define("consul-ui/config/environment",[],(function(){try{var e="consul-ui/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(decodeURIComponent(t))} +return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}})),runningTests||require("consul-ui/app").default.create({name:"consul-ui",version:"2.2.0+89053cb2"}) diff --git a/agent/uiserver/dist/assets/consul-ui/routes-debug-8f884a3e3f7105d43b7b4024db9b4c99.js b/agent/uiserver/dist/assets/consul-ui/routes-debug-8f884a3e3f7105d43b7b4024db9b4c99.js new file mode 100644 index 0000000000..848a36db3b --- /dev/null +++ b/agent/uiserver/dist/assets/consul-ui/routes-debug-8f884a3e3f7105d43b7b4024db9b4c99.js @@ -0,0 +1 @@ +((e,r=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{r.routes=JSON.stringify(e)})({"oauth-provider-debug":{_options:{path:"/oauth-provider-debug",queryParams:{redirect_uri:"redirect_uri",response_type:"response_type",scope:"scope"}}}}) diff --git a/agent/uiserver/dist/assets/consul-ui/routes-e55bc65732ba7c0352d43313fd9563e6.js b/agent/uiserver/dist/assets/consul-ui/routes-e55bc65732ba7c0352d43313fd9563e6.js new file mode 100644 index 0000000000..0168f3ce0a --- /dev/null +++ b/agent/uiserver/dist/assets/consul-ui/routes-e55bc65732ba7c0352d43313fd9563e6.js @@ -0,0 +1 @@ +((e,t=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{t.routes=JSON.stringify(e)})({dc:{_options:{path:"/:dc"},index:{_options:{path:"/",redirect:"../services"}},show:{_options:{path:"/overview",abilities:["access overview"]},serverstatus:{_options:{path:"/server-status",abilities:["access overview","read zones"]}},cataloghealth:{_options:{path:"/catalog-health",abilities:["access overview"]}},license:{_options:{path:"/license",abilities:["access overview","read licence"]}}},services:{_options:{path:"/services"},index:{_options:{path:"/",queryParams:{sortBy:"sort",status:"status",source:"source",kind:"kind",searchproperty:{as:"searchproperty",empty:[["Name","Tags"]]},search:{as:"filter",replace:!0}}}},show:{_options:{path:"/:name"},instances:{_options:{path:"/instances",queryParams:{sortBy:"sort",status:"status",source:"source",searchproperty:{as:"searchproperty",empty:[["Name","Node","Tags","ID","Address","Port","Service.Meta","Node.Meta"]]},search:{as:"filter",replace:!0}}}},intentions:{_options:{path:"/intentions"},index:{_options:{path:"",queryParams:{sortBy:"sort",access:"access",searchproperty:{as:"searchproperty",empty:[["SourceName","DestinationName"]]},search:{as:"filter",replace:!0}}}},edit:{_options:{path:"/:intention_id"}},create:{_options:{template:"../edit",path:"/create"}}},topology:{_options:{path:"/topology"}},services:{_options:{path:"/services",queryParams:{sortBy:"sort",instance:"instance",searchproperty:{as:"searchproperty",empty:[["Name","Tags"]]},search:{as:"filter",replace:!0}}}},upstreams:{_options:{path:"/upstreams",queryParams:{sortBy:"sort",instance:"instance",searchproperty:{as:"searchproperty",empty:[["Name","Tags"]]},search:{as:"filter",replace:!0}}}},routing:{_options:{path:"/routing"}},tags:{_options:{path:"/tags"}}},instance:{_options:{path:"/:name/instances/:node/:id",redirect:"./healthchecks"},healthchecks:{_options:{path:"/health-checks",queryParams:{sortBy:"sort",status:"status",check:"check",searchproperty:{as:"searchproperty",empty:[["Name","Node","CheckID","Notes","Output","ServiceTags"]]},search:{as:"filter",replace:!0}}}},upstreams:{_options:{path:"/upstreams",queryParams:{sortBy:"sort",search:{as:"filter",replace:!0},searchproperty:{as:"searchproperty",empty:[["DestinationName","LocalBindAddress","LocalBindPort"]]}}}},exposedpaths:{_options:{path:"/exposed-paths"}},addresses:{_options:{path:"/addresses"}},metadata:{_options:{path:"/metadata"}}},notfound:{_options:{path:"/:name/:node/:id"}}},nodes:{_options:{path:"/nodes"},index:{_options:{path:"",queryParams:{sortBy:"sort",status:"status",searchproperty:{as:"searchproperty",empty:[["Node","Address","Meta"]]},search:{as:"filter",replace:!0}}}},show:{_options:{path:"/:name"},healthchecks:{_options:{path:"/health-checks",queryParams:{sortBy:"sort",status:"status",kind:"kind",check:"check",searchproperty:{as:"searchproperty",empty:[["Name","Service","CheckID","Notes","Output","ServiceTags"]]},search:{as:"filter",replace:!0}}}},services:{_options:{path:"/service-instances",queryParams:{sortBy:"sort",status:"status",source:"source",searchproperty:{as:"searchproperty",empty:[["Name","Tags","ID","Address","Port","Service.Meta"]]},search:{as:"filter",replace:!0}}}},rtt:{_options:{path:"/round-trip-time"}},metadata:{_options:{path:"/metadata"}}}},intentions:{_options:{path:"/intentions"},index:{_options:{path:"/",queryParams:{sortBy:"sort",access:"access",searchproperty:{as:"searchproperty",empty:[["SourceName","DestinationName"]]},search:{as:"filter",replace:!0}}}},edit:{_options:{path:"/:intention_id",abilities:["read intentions"]}},create:{_options:{template:"../edit",path:"/create",abilities:["create intentions"]}}},kv:{_options:{path:"/kv"},index:{_options:{path:"/",queryParams:{sortBy:"sort",kind:"kind",search:{as:"filter",replace:!0}}}},folder:{_options:{template:"../index",path:"/*key"}},edit:{_options:{path:"/*key/edit"}},create:{_options:{template:"../edit",path:"/*key/create",abilities:["create kvs"]}},"root-create":{_options:{template:"../edit",path:"/create",abilities:["create kvs"]}}},acls:{_options:{path:"/acls",abilities:["access acls"]},policies:{_options:{path:"/policies",abilities:["read policies"]},edit:{_options:{path:"/:id"}},create:{_options:{path:"/create",abilities:["create policies"]}}},roles:{_options:{path:"/roles",abilities:["read roles"]},edit:{_options:{path:"/:id"}},create:{_options:{path:"/create",abilities:["create roles"]}}},tokens:{_options:{path:"/tokens",abilities:["access acls"]},edit:{_options:{path:"/:id"}},create:{_options:{path:"/create",abilities:["create tokens"]}}},"auth-methods":{_options:{path:"/auth-methods",abilities:["read auth-methods"]},show:{_options:{path:"/:id"},"auth-method":{_options:{path:"/auth-method"}},"binding-rules":{_options:{path:"/binding-rules"}},"nspace-rules":{_options:{path:"/nspace-rules"}}}}},"routing-config":{_options:{path:"/routing-config/:name"}}},index:{_options:{path:"/"}},settings:{_options:{path:"/settings"}},setting:{_options:{path:"/setting",redirect:"../settings"}},notfound:{_options:{path:"/*notfound"}}}) diff --git a/agent/uiserver/dist/assets/consul-ui/services-a17470cdfbd4a4096117ac0103802226.js b/agent/uiserver/dist/assets/consul-ui/services-a17470cdfbd4a4096117ac0103802226.js new file mode 100644 index 0000000000..b4e8774d50 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-ui/services-a17470cdfbd4a4096117ac0103802226.js @@ -0,0 +1 @@ +((e,s=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{s.services=JSON.stringify(e)})({"route:basic":{class:"consul-ui/routing/route"},"service:intl":{class:"consul-ui/services/i18n"},"service:state":{class:"consul-ui/services/state-with-charts"},"auth-provider:oidc-with-url":{class:"consul-ui/services/auth-providers/oauth2-code-with-url-provider"},"component:consul/partition/selector":{class:"@glimmer/component"}}) diff --git a/agent/uiserver/dist/assets/consul-ui/services-debug-5a3f1d2e3954a05aa8383f02db31b8e6.js b/agent/uiserver/dist/assets/consul-ui/services-debug-5a3f1d2e3954a05aa8383f02db31b8e6.js new file mode 100644 index 0000000000..51ed1f28b9 --- /dev/null +++ b/agent/uiserver/dist/assets/consul-ui/services-debug-5a3f1d2e3954a05aa8383f02db31b8e6.js @@ -0,0 +1 @@ +((e,i=("undefined"!=typeof document?document.currentScript.dataset:module.exports))=>{i.services=JSON.stringify(e)})({"route:application":{class:"consul-ui/routing/application-debug"},"service:intl":{class:"consul-ui/services/i18n-debug"}}) diff --git a/agent/uiserver/dist/assets/css.escape-851839b3ea1d0b4eb4c7089446df5e9f.js b/agent/uiserver/dist/assets/css.escape-851839b3ea1d0b4eb4c7089446df5e9f.js new file mode 100644 index 0000000000..c37a05b42d --- /dev/null +++ b/agent/uiserver/dist/assets/css.escape-851839b3ea1d0b4eb4c7089446df5e9f.js @@ -0,0 +1,6 @@ +/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */ +(function(e,t){"object"==typeof exports?module.exports=t(e):"function"==typeof define&&define.amd?define([],t.bind(e,e)):t(e)})("undefined"!=typeof global?global:this,(function(e){if(e.CSS&&e.CSS.escape)return e.CSS.escape +var t=function(e){if(0==arguments.length)throw new TypeError("`CSS.escape` requires an argument.") +for(var t,n=String(e),r=n.length,o=-1,S="",a=n.charCodeAt(0);++o=1&&t<=31||127==t||0==o&&t>=48&&t<=57||1==o&&t>=48&&t<=57&&45==a?"\\"+t.toString(16)+" ":(0!=o||1!=r||45!=t)&&(t>=128||45==t||95==t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122)?n.charAt(o):"\\"+n.charAt(o):S+="�" +return S} +return e.CSS||(e.CSS={}),e.CSS.escape=t,t})) diff --git a/agent/uiserver/dist/assets/encoding-cdb50fbdab6d4d3fdf574dd784f77d27.js b/agent/uiserver/dist/assets/encoding-cdb50fbdab6d4d3fdf574dd784f77d27.js new file mode 100644 index 0000000000..19f436540f --- /dev/null +++ b/agent/uiserver/dist/assets/encoding-cdb50fbdab6d4d3fdf574dd784f77d27.js @@ -0,0 +1,204 @@ +(function(n){"use strict" +function e(n,e,r){return e<=n&&n<=r}"undefined"!=typeof module&&module.exports&&!n["encoding-indexes"]&&(n["encoding-indexes"]=require("./encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js")["encoding-indexes"]) +var r=Math.floor +function i(n){if(void 0===n)return{} +if(n===Object(n))return n +throw TypeError("Could not convert argument to dictionary")}function t(n){return 0<=n&&n<=127}var o=t +function s(n){this.tokens=[].slice.call(n),this.tokens.reverse()}s.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.pop():-1},prepend:function(n){if(Array.isArray(n))for(var e=n;e.length;)this.tokens.push(e.pop()) +else this.tokens.push(n)},push:function(n){if(Array.isArray(n))for(var e=n;e.length;)this.tokens.unshift(e.shift()) +else this.tokens.unshift(n)}} +function a(n,e){if(n)throw TypeError("Decoder error") +return e||65533}function u(n){throw TypeError("The code point "+n+" could not be encoded.")}function l(n){return n=String(n).trim().toLowerCase(),Object.prototype.hasOwnProperty.call(c,n)?c[n]:null}var f=[{encodings:[{labels:["unicode-1-1-utf-8","utf-8","utf8"],name:"UTF-8"}],heading:"The Encoding"},{encodings:[{labels:["866","cp866","csibm866","ibm866"],name:"IBM866"},{labels:["csisolatin2","iso-8859-2","iso-ir-101","iso8859-2","iso88592","iso_8859-2","iso_8859-2:1987","l2","latin2"],name:"ISO-8859-2"},{labels:["csisolatin3","iso-8859-3","iso-ir-109","iso8859-3","iso88593","iso_8859-3","iso_8859-3:1988","l3","latin3"],name:"ISO-8859-3"},{labels:["csisolatin4","iso-8859-4","iso-ir-110","iso8859-4","iso88594","iso_8859-4","iso_8859-4:1988","l4","latin4"],name:"ISO-8859-4"},{labels:["csisolatincyrillic","cyrillic","iso-8859-5","iso-ir-144","iso8859-5","iso88595","iso_8859-5","iso_8859-5:1988"],name:"ISO-8859-5"},{labels:["arabic","asmo-708","csiso88596e","csiso88596i","csisolatinarabic","ecma-114","iso-8859-6","iso-8859-6-e","iso-8859-6-i","iso-ir-127","iso8859-6","iso88596","iso_8859-6","iso_8859-6:1987"],name:"ISO-8859-6"},{labels:["csisolatingreek","ecma-118","elot_928","greek","greek8","iso-8859-7","iso-ir-126","iso8859-7","iso88597","iso_8859-7","iso_8859-7:1987","sun_eu_greek"],name:"ISO-8859-7"},{labels:["csiso88598e","csisolatinhebrew","hebrew","iso-8859-8","iso-8859-8-e","iso-ir-138","iso8859-8","iso88598","iso_8859-8","iso_8859-8:1988","visual"],name:"ISO-8859-8"},{labels:["csiso88598i","iso-8859-8-i","logical"],name:"ISO-8859-8-I"},{labels:["csisolatin6","iso-8859-10","iso-ir-157","iso8859-10","iso885910","l6","latin6"],name:"ISO-8859-10"},{labels:["iso-8859-13","iso8859-13","iso885913"],name:"ISO-8859-13"},{labels:["iso-8859-14","iso8859-14","iso885914"],name:"ISO-8859-14"},{labels:["csisolatin9","iso-8859-15","iso8859-15","iso885915","iso_8859-15","l9"],name:"ISO-8859-15"},{labels:["iso-8859-16"],name:"ISO-8859-16"},{labels:["cskoi8r","koi","koi8","koi8-r","koi8_r"],name:"KOI8-R"},{labels:["koi8-ru","koi8-u"],name:"KOI8-U"},{labels:["csmacintosh","mac","macintosh","x-mac-roman"],name:"macintosh"},{labels:["dos-874","iso-8859-11","iso8859-11","iso885911","tis-620","windows-874"],name:"windows-874"},{labels:["cp1250","windows-1250","x-cp1250"],name:"windows-1250"},{labels:["cp1251","windows-1251","x-cp1251"],name:"windows-1251"},{labels:["ansi_x3.4-1968","ascii","cp1252","cp819","csisolatin1","ibm819","iso-8859-1","iso-ir-100","iso8859-1","iso88591","iso_8859-1","iso_8859-1:1987","l1","latin1","us-ascii","windows-1252","x-cp1252"],name:"windows-1252"},{labels:["cp1253","windows-1253","x-cp1253"],name:"windows-1253"},{labels:["cp1254","csisolatin5","iso-8859-9","iso-ir-148","iso8859-9","iso88599","iso_8859-9","iso_8859-9:1989","l5","latin5","windows-1254","x-cp1254"],name:"windows-1254"},{labels:["cp1255","windows-1255","x-cp1255"],name:"windows-1255"},{labels:["cp1256","windows-1256","x-cp1256"],name:"windows-1256"},{labels:["cp1257","windows-1257","x-cp1257"],name:"windows-1257"},{labels:["cp1258","windows-1258","x-cp1258"],name:"windows-1258"},{labels:["x-mac-cyrillic","x-mac-ukrainian"],name:"x-mac-cyrillic"}],heading:"Legacy single-byte encodings"},{encodings:[{labels:["chinese","csgb2312","csiso58gb231280","gb2312","gb_2312","gb_2312-80","gbk","iso-ir-58","x-gbk"],name:"GBK"},{labels:["gb18030"],name:"gb18030"}],heading:"Legacy multi-byte Chinese (simplified) encodings"},{encodings:[{labels:["big5","big5-hkscs","cn-big5","csbig5","x-x-big5"],name:"Big5"}],heading:"Legacy multi-byte Chinese (traditional) encodings"},{encodings:[{labels:["cseucpkdfmtjapanese","euc-jp","x-euc-jp"],name:"EUC-JP"},{labels:["csiso2022jp","iso-2022-jp"],name:"ISO-2022-JP"},{labels:["csshiftjis","ms932","ms_kanji","shift-jis","shift_jis","sjis","windows-31j","x-sjis"],name:"Shift_JIS"}],heading:"Legacy multi-byte Japanese encodings"},{encodings:[{labels:["cseuckr","csksc56011987","euc-kr","iso-ir-149","korean","ks_c_5601-1987","ks_c_5601-1989","ksc5601","ksc_5601","windows-949"],name:"EUC-KR"}],heading:"Legacy multi-byte Korean encodings"},{encodings:[{labels:["csiso2022kr","hz-gb-2312","iso-2022-cn","iso-2022-cn-ext","iso-2022-kr"],name:"replacement"},{labels:["utf-16be"],name:"UTF-16BE"},{labels:["utf-16","utf-16le"],name:"UTF-16LE"},{labels:["x-user-defined"],name:"x-user-defined"}],heading:"Legacy miscellaneous encodings"}],c={} +f.forEach((function(n){n.encodings.forEach((function(n){n.labels.forEach((function(e){c[e]=n}))}))})) +var d,h,g={},p={} +function _(n,e){return e&&e[n]||null}function b(n,e){var r=e.indexOf(n) +return-1===r?null:r}function w(e){if(!("encoding-indexes"in n))throw Error("Indexes missing. Did you forget to include encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js first?") +return n["encoding-indexes"][e]}function m(n,e){if(!(this instanceof m))throw TypeError("Called as a function. Did you forget 'new'?") +n=void 0!==n?String(n):"utf-8",e=i(e),this._encoding=null,this._decoder=null,this._ignoreBOM=!1,this._BOMseen=!1,this._error_mode="replacement",this._do_not_flush=!1 +var r=l(n) +if(null===r||"replacement"===r.name)throw RangeError("Unknown encoding: "+n) +if(!p[r.name])throw Error("Decoder not present. Did you forget to include encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js first?") +return this._encoding=r,Boolean(e.fatal)&&(this._error_mode="fatal"),Boolean(e.ignoreBOM)&&(this._ignoreBOM=!0),Object.defineProperty||(this.encoding=this._encoding.name.toLowerCase(),this.fatal="fatal"===this._error_mode,this.ignoreBOM=this._ignoreBOM),this}function v(e,r){if(!(this instanceof v))throw TypeError("Called as a function. Did you forget 'new'?") +r=i(r),this._encoding=null,this._encoder=null,this._do_not_flush=!1,this._fatal=Boolean(r.fatal)?"fatal":"replacement" +if(Boolean(r.NONSTANDARD_allowLegacyEncoding)){var t=l(e=void 0!==e?String(e):"utf-8") +if(null===t||"replacement"===t.name)throw RangeError("Unknown encoding: "+e) +if(!g[t.name])throw Error("Encoder not present. Did you forget to include encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js first?") +this._encoding=t}else this._encoding=l("utf-8"),void 0!==e&&"console"in n&&console.warn("TextEncoder constructor called with encoding label, which is ignored.") +return Object.defineProperty||(this.encoding=this._encoding.name.toLowerCase()),this}function y(n){var r=n.fatal,i=0,t=0,o=0,s=128,u=191 +this.handler=function(n,l){if(-1===l&&0!==o)return o=0,a(r) +if(-1===l)return-1 +if(0===o){if(e(l,0,127))return l +if(e(l,194,223))o=1,i=31&l +else if(e(l,224,239))224===l&&(s=160),237===l&&(u=159),o=2,i=15&l +else{if(!e(l,240,244))return a(r) +240===l&&(s=144),244===l&&(u=143),o=3,i=7&l}return null}if(!e(l,s,u))return i=o=t=0,s=128,u=191,n.prepend(l),a(r) +if(s=128,u=191,i=i<<6|63&l,(t+=1)!==o)return null +var f=i +return i=o=t=0,f}}function x(n){n.fatal +this.handler=function(n,r){if(-1===r)return-1 +if(o(r))return r +var i,t +e(r,128,2047)?(i=1,t=192):e(r,2048,65535)?(i=2,t=224):e(r,65536,1114111)&&(i=3,t=240) +for(var s=[(r>>6*i)+t];i>0;){var a=r>>6*(i-1) +s.push(128|63&a),i-=1}return s}}function O(n,e){var r=e.fatal +this.handler=function(e,i){if(-1===i)return-1 +if(t(i))return i +var o=n[i-128] +return null===o?a(r):o}}function k(n,e){e.fatal +this.handler=function(e,r){if(-1===r)return-1 +if(o(r))return r +var i=b(r,n) +return null===i&&u(r),i+128}}function E(n){var r=n.fatal,i=0,o=0,s=0 +this.handler=function(n,u){if(-1===u&&0===i&&0===o&&0===s)return-1 +var l +if(-1!==u||0===i&&0===o&&0===s||(i=0,o=0,s=0,a(r)),0!==s){l=null,e(u,48,57)&&(l=function(n){if(n>39419&&n<189e3||n>1237575)return null +if(7457===n)return 59335 +var e,r=0,i=0,t=w("gb18030-ranges") +for(e=0;e>8,i=255&n +return e?[r,i]:[i,r]}function F(n,r){var i=r.fatal,t=null,o=null +this.handler=function(r,s){if(-1===s&&(null!==t||null!==o))return a(i) +if(-1===s&&null===t&&null===o)return-1 +if(null===t)return t=s,null +var u +if(u=n?(t<<8)+s:(s<<8)+t,t=null,null!==o){var l=o +return o=null,e(u,56320,57343)?65536+1024*(l-55296)+(u-56320):(r.prepend(D(u,n)),a(i))}return e(u,55296,56319)?(o=u,null):e(u,56320,57343)?a(i):u}}function J(n,r){r.fatal +this.handler=function(r,i){if(-1===i)return-1 +if(e(i,0,65535))return D(i,n) +var t=D(55296+(i-65536>>10),n),o=D(56320+(i-65536&1023),n) +return t.concat(o)}}function K(n){n.fatal +this.handler=function(n,e){return-1===e?-1:t(e)?e:63360+e-128}}function R(n){n.fatal +this.handler=function(n,r){return-1===r?-1:o(r)?r:e(r,63360,63487)?r-63360+128:u(r)}}Object.defineProperty&&(Object.defineProperty(m.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),Object.defineProperty(m.prototype,"fatal",{get:function(){return"fatal"===this._error_mode}}),Object.defineProperty(m.prototype,"ignoreBOM",{get:function(){return this._ignoreBOM}})),m.prototype.decode=function(n,e){var r +r="object"==typeof n&&n instanceof ArrayBuffer?new Uint8Array(n):"object"==typeof n&&"buffer"in n&&n.buffer instanceof ArrayBuffer?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(0),e=i(e),this._do_not_flush||(this._decoder=p[this._encoding.name]({fatal:"fatal"===this._error_mode}),this._BOMseen=!1),this._do_not_flush=Boolean(e.stream) +for(var t,o=new s(r),a=[];;){var u=o.read() +if(-1===u)break +if(-1===(t=this._decoder.handler(o,u)))break +null!==t&&(Array.isArray(t)?a.push.apply(a,t):a.push(t))}if(!this._do_not_flush){do{if(-1===(t=this._decoder.handler(o,o.read())))break +null!==t&&(Array.isArray(t)?a.push.apply(a,t):a.push(t))}while(!o.endOfStream()) +this._decoder=null}return function(n){var e,r +return e=["UTF-8","UTF-16LE","UTF-16BE"],r=this._encoding.name,-1===e.indexOf(r)||this._ignoreBOM||this._BOMseen||(n.length>0&&65279===n[0]?(this._BOMseen=!0,n.shift()):n.length>0&&(this._BOMseen=!0)),function(n){for(var e="",r=0;r>10),56320+(1023&i)))}return e}(n)}.call(this,a)},Object.defineProperty&&Object.defineProperty(v.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),v.prototype.encode=function(n,e){n=void 0===n?"":String(n),e=i(e),this._do_not_flush||(this._encoder=g[this._encoding.name]({fatal:"fatal"===this._fatal})),this._do_not_flush=Boolean(e.stream) +for(var r,t=new s(function(n){for(var e=String(n),r=e.length,i=0,t=[];i57343)t.push(o) +else if(56320<=o&&o<=57343)t.push(65533) +else if(55296<=o&&o<=56319)if(i===r-1)t.push(65533) +else{var s=e.charCodeAt(i+1) +if(56320<=s&&s<=57343){var a=1023&o,u=1023&s +t.push(65536+(a<<10)+u),i+=1}else t.push(65533)}i+=1}return t}(n)),o=[];;){var a=t.read() +if(-1===a)break +if(-1===(r=this._encoder.handler(t,a)))break +Array.isArray(r)?o.push.apply(o,r):o.push(r)}if(!this._do_not_flush){for(;-1!==(r=this._encoder.handler(t,t.read()));)Array.isArray(r)?o.push.apply(o,r):o.push(r) +this._encoder=null}return new Uint8Array(o)},g["UTF-8"]=function(n){return new x(n)},p["UTF-8"]=function(n){return new y(n)},"encoding-indexes"in n&&f.forEach((function(n){"Legacy single-byte encodings"===n.heading&&n.encodings.forEach((function(n){var e=n.name,r=w(e.toLowerCase()) +p[e]=function(n){return new O(r,n)},g[e]=function(n){return new k(r,n)}}))})),p.GBK=function(n){return new E(n)},g.GBK=function(n){return new j(n,!0)},g.gb18030=function(n){return new j(n)},p.gb18030=function(n){return new E(n)},g.Big5=function(n){return new S(n)},p.Big5=function(n){return new B(n)},g["EUC-JP"]=function(n){return new I(n)},p["EUC-JP"]=function(n){return new T(n)},g["ISO-2022-JP"]=function(n){return new C(n)},p["ISO-2022-JP"]=function(n){return new U(n)},g.Shift_JIS=function(n){return new L(n)},p.Shift_JIS=function(n){return new A(n)},g["EUC-KR"]=function(n){return new P(n)},p["EUC-KR"]=function(n){return new M(n)},g["UTF-16BE"]=function(n){return new J(!0,n)},p["UTF-16BE"]=function(n){return new F(!0,n)},g["UTF-16LE"]=function(n){return new J(!1,n)},p["UTF-16LE"]=function(n){return new F(!1,n)},g["x-user-defined"]=function(n){return new R(n)},p["x-user-defined"]=function(n){return new K(n)},n.TextEncoder||(n.TextEncoder=v),n.TextDecoder||(n.TextDecoder=m),"undefined"!=typeof module&&module.exports&&(module.exports={TextEncoder:n.TextEncoder,TextDecoder:n.TextDecoder,EncodingIndexes:n["encoding-indexes"]})})(this||{}) diff --git a/agent/uiserver/dist/assets/encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js b/agent/uiserver/dist/assets/encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js new file mode 100644 index 0000000000..da7db4172f --- /dev/null +++ b/agent/uiserver/dist/assets/encoding-indexes-75eea16b259716db4fd162ee283d2ae5.js @@ -0,0 +1,2 @@ +(function(l){"use strict" +"undefined"!=typeof module&&module.exports&&(module.exports=l),l["encoding-indexes"]={big5:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,17392,19506,17923,17830,17784,160359,19831,17843,162993,19682,163013,15253,18230,18244,19527,19520,148159,144919,160594,159371,159954,19543,172881,18255,17882,19589,162924,19719,19108,18081,158499,29221,154196,137827,146950,147297,26189,22267,null,32149,22813,166841,15860,38708,162799,23515,138590,23204,13861,171696,23249,23479,23804,26478,34195,170309,29793,29853,14453,138579,145054,155681,16108,153822,15093,31484,40855,147809,166157,143850,133770,143966,17162,33924,40854,37935,18736,34323,22678,38730,37400,31184,31282,26208,27177,34973,29772,31685,26498,31276,21071,36934,13542,29636,155065,29894,40903,22451,18735,21580,16689,145038,22552,31346,162661,35727,18094,159368,16769,155033,31662,140476,40904,140481,140489,140492,40905,34052,144827,16564,40906,17633,175615,25281,28782,40907,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,12736,12737,12738,12739,12740,131340,12741,131281,131277,12742,12743,131275,139240,12744,131274,12745,12746,12747,12748,131342,12749,12750,256,193,461,192,274,201,282,200,332,211,465,210,null,7870,null,7872,202,257,225,462,224,593,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,null,7871,null,7873,234,609,9178,9179,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,172969,135493,null,25866,null,null,20029,28381,40270,37343,null,null,161589,25745,20250,20264,20392,20822,20852,20892,20964,21153,21160,21307,21326,21457,21464,22242,22768,22788,22791,22834,22836,23398,23454,23455,23706,24198,24635,25993,26622,26628,26725,27982,28860,30005,32420,32428,32442,32455,32463,32479,32518,32567,33402,33487,33647,35270,35774,35810,36710,36711,36718,29713,31996,32205,26950,31433,21031,null,null,null,null,37260,30904,37214,32956,null,36107,33014,133607,null,null,32927,40647,19661,40393,40460,19518,171510,159758,40458,172339,13761,null,28314,33342,29977,null,18705,39532,39567,40857,31111,164972,138698,132560,142054,20004,20097,20096,20103,20159,20203,20279,13388,20413,15944,20483,20616,13437,13459,13477,20870,22789,20955,20988,20997,20105,21113,21136,21287,13767,21417,13649,21424,13651,21442,21539,13677,13682,13953,21651,21667,21684,21689,21712,21743,21784,21795,21800,13720,21823,13733,13759,21975,13765,163204,21797,null,134210,134421,151851,21904,142534,14828,131905,36422,150968,169189,16467,164030,30586,142392,14900,18389,164189,158194,151018,25821,134524,135092,134357,135412,25741,36478,134806,134155,135012,142505,164438,148691,null,134470,170573,164073,18420,151207,142530,39602,14951,169460,16365,13574,152263,169940,161992,142660,40302,38933,null,17369,155813,25780,21731,142668,142282,135287,14843,135279,157402,157462,162208,25834,151634,134211,36456,139681,166732,132913,null,18443,131497,16378,22643,142733,null,148936,132348,155799,134988,134550,21881,16571,17338,null,19124,141926,135325,33194,39157,134556,25465,14846,141173,36288,22177,25724,15939,null,173569,134665,142031,142537,null,135368,145858,14738,14854,164507,13688,155209,139463,22098,134961,142514,169760,13500,27709,151099,null,null,161140,142987,139784,173659,167117,134778,134196,157724,32659,135375,141315,141625,13819,152035,134796,135053,134826,16275,134960,134471,135503,134732,null,134827,134057,134472,135360,135485,16377,140950,25650,135085,144372,161337,142286,134526,134527,142417,142421,14872,134808,135367,134958,173618,158544,167122,167321,167114,38314,21708,33476,21945,null,171715,39974,39606,161630,142830,28992,33133,33004,23580,157042,33076,14231,21343,164029,37302,134906,134671,134775,134907,13789,151019,13833,134358,22191,141237,135369,134672,134776,135288,135496,164359,136277,134777,151120,142756,23124,135197,135198,135413,135414,22428,134673,161428,164557,135093,134779,151934,14083,135094,135552,152280,172733,149978,137274,147831,164476,22681,21096,13850,153405,31666,23400,18432,19244,40743,18919,39967,39821,154484,143677,22011,13810,22153,20008,22786,138177,194680,38737,131206,20059,20155,13630,23587,24401,24516,14586,25164,25909,27514,27701,27706,28780,29227,20012,29357,149737,32594,31035,31993,32595,156266,13505,null,156491,32770,32896,157202,158033,21341,34916,35265,161970,35744,36125,38021,38264,38271,38376,167439,38886,39029,39118,39134,39267,17e4,40060,40479,40644,27503,63751,20023,131207,38429,25143,38050,null,20539,28158,171123,40870,15817,34959,147790,28791,23797,19232,152013,13657,154928,24866,166450,36775,37366,29073,26393,29626,144001,172295,15499,137600,19216,30948,29698,20910,165647,16393,27235,172730,16931,34319,133743,31274,170311,166634,38741,28749,21284,139390,37876,30425,166371,40871,30685,20131,20464,20668,20015,20247,40872,21556,32139,22674,22736,138678,24210,24217,24514,141074,25995,144377,26905,27203,146531,27903,null,29184,148741,29580,16091,150035,23317,29881,35715,154788,153237,31379,31724,31939,32364,33528,34199,40873,34960,40874,36537,40875,36815,34143,39392,37409,40876,167353,136255,16497,17058,23066,null,null,null,39016,26475,17014,22333,null,34262,149883,33471,160013,19585,159092,23931,158485,159678,40877,40878,23446,40879,26343,32347,28247,31178,15752,17603,143958,141206,17306,17718,null,23765,146202,35577,23672,15634,144721,23928,40882,29015,17752,147692,138787,19575,14712,13386,131492,158785,35532,20404,131641,22975,33132,38998,170234,24379,134047,null,139713,166253,16642,18107,168057,16135,40883,172469,16632,14294,18167,158790,16764,165554,160767,17773,14548,152730,17761,17691,19849,19579,19830,17898,16328,150287,13921,17630,17597,16877,23870,23880,23894,15868,14351,23972,23993,14368,14392,24130,24253,24357,24451,14600,14612,14655,14669,24791,24893,23781,14729,25015,25017,25039,14776,25132,25232,25317,25368,14840,22193,14851,25570,25595,25607,25690,14923,25792,23829,22049,40863,14999,25990,15037,26111,26195,15090,26258,15138,26390,15170,26532,26624,15192,26698,26756,15218,15217,15227,26889,26947,29276,26980,27039,27013,15292,27094,15325,27237,27252,27249,27266,15340,27289,15346,27307,27317,27348,27382,27521,27585,27626,27765,27818,15563,27906,27910,27942,28033,15599,28068,28081,28181,28184,28201,28294,166336,28347,28386,28378,40831,28392,28393,28452,28468,15686,147265,28545,28606,15722,15733,29111,23705,15754,28716,15761,28752,28756,28783,28799,28809,131877,17345,13809,134872,147159,22462,159443,28990,153568,13902,27042,166889,23412,31305,153825,169177,31333,31357,154028,31419,31408,31426,31427,29137,156813,16842,31450,31453,31466,16879,21682,154625,31499,31573,31529,152334,154878,31650,31599,33692,154548,158847,31696,33825,31634,31672,154912,15789,154725,33938,31738,31750,31797,154817,31812,31875,149634,31910,26237,148856,31945,31943,31974,31860,31987,31989,31950,32359,17693,159300,32093,159446,29837,32137,32171,28981,32179,32210,147543,155689,32228,15635,32245,137209,32229,164717,32285,155937,155994,32366,32402,17195,37996,32295,32576,32577,32583,31030,156368,39393,32663,156497,32675,136801,131176,17756,145254,17667,164666,32762,156809,32773,32776,32797,32808,32815,172167,158915,32827,32828,32865,141076,18825,157222,146915,157416,26405,32935,166472,33031,33050,22704,141046,27775,156824,151480,25831,136330,33304,137310,27219,150117,150165,17530,33321,133901,158290,146814,20473,136445,34018,33634,158474,149927,144688,137075,146936,33450,26907,194964,16859,34123,33488,33562,134678,137140,14017,143741,144730,33403,33506,33560,147083,159139,158469,158615,144846,15807,33565,21996,33669,17675,159141,33708,33729,33747,13438,159444,27223,34138,13462,159298,143087,33880,154596,33905,15827,17636,27303,33866,146613,31064,33960,158614,159351,159299,34014,33807,33681,17568,33939,34020,154769,16960,154816,17731,34100,23282,159385,17703,34163,17686,26559,34326,165413,165435,34241,159880,34306,136578,159949,194994,17770,34344,13896,137378,21495,160666,34430,34673,172280,34798,142375,34737,34778,34831,22113,34412,26710,17935,34885,34886,161248,146873,161252,34910,34972,18011,34996,34997,25537,35013,30583,161551,35207,35210,35238,35241,35239,35260,166437,35303,162084,162493,35484,30611,37374,35472,162393,31465,162618,147343,18195,162616,29052,35596,35615,152624,152933,35647,35660,35661,35497,150138,35728,35739,35503,136927,17941,34895,35995,163156,163215,195028,14117,163155,36054,163224,163261,36114,36099,137488,36059,28764,36113,150729,16080,36215,36265,163842,135188,149898,15228,164284,160012,31463,36525,36534,36547,37588,36633,36653,164709,164882,36773,37635,172703,133712,36787,18730,166366,165181,146875,24312,143970,36857,172052,165564,165121,140069,14720,159447,36919,165180,162494,36961,165228,165387,37032,165651,37060,165606,37038,37117,37223,15088,37289,37316,31916,166195,138889,37390,27807,37441,37474,153017,37561,166598,146587,166668,153051,134449,37676,37739,166625,166891,28815,23235,166626,166629,18789,37444,166892,166969,166911,37747,37979,36540,38277,38310,37926,38304,28662,17081,140922,165592,135804,146990,18911,27676,38523,38550,16748,38563,159445,25050,38582,30965,166624,38589,21452,18849,158904,131700,156688,168111,168165,150225,137493,144138,38705,34370,38710,18959,17725,17797,150249,28789,23361,38683,38748,168405,38743,23370,168427,38751,37925,20688,143543,143548,38793,38815,38833,38846,38848,38866,38880,152684,38894,29724,169011,38911,38901,168989,162170,19153,38964,38963,38987,39014,15118,160117,15697,132656,147804,153350,39114,39095,39112,39111,19199,159015,136915,21936,39137,39142,39148,37752,39225,150057,19314,170071,170245,39413,39436,39483,39440,39512,153381,14020,168113,170965,39648,39650,170757,39668,19470,39700,39725,165376,20532,39732,158120,14531,143485,39760,39744,171326,23109,137315,39822,148043,39938,39935,39948,171624,40404,171959,172434,172459,172257,172323,172511,40318,40323,172340,40462,26760,40388,139611,172435,172576,137531,172595,40249,172217,172724,40592,40597,40606,40610,19764,40618,40623,148324,40641,15200,14821,15645,20274,14270,166955,40706,40712,19350,37924,159138,40727,40726,40761,22175,22154,40773,39352,168075,38898,33919,40802,40809,31452,40846,29206,19390,149877,149947,29047,150008,148296,150097,29598,166874,137466,31135,166270,167478,37737,37875,166468,37612,37761,37835,166252,148665,29207,16107,30578,31299,28880,148595,148472,29054,137199,28835,137406,144793,16071,137349,152623,137208,14114,136955,137273,14049,137076,137425,155467,14115,136896,22363,150053,136190,135848,136134,136374,34051,145062,34051,33877,149908,160101,146993,152924,147195,159826,17652,145134,170397,159526,26617,14131,15381,15847,22636,137506,26640,16471,145215,147681,147595,147727,158753,21707,22174,157361,22162,135135,134056,134669,37830,166675,37788,20216,20779,14361,148534,20156,132197,131967,20299,20362,153169,23144,131499,132043,14745,131850,132116,13365,20265,131776,167603,131701,35546,131596,20120,20685,20749,20386,20227,150030,147082,20290,20526,20588,20609,20428,20453,20568,20732,20825,20827,20829,20830,28278,144789,147001,147135,28018,137348,147081,20904,20931,132576,17629,132259,132242,132241,36218,166556,132878,21081,21156,133235,21217,37742,18042,29068,148364,134176,149932,135396,27089,134685,29817,16094,29849,29716,29782,29592,19342,150204,147597,21456,13700,29199,147657,21940,131909,21709,134086,22301,37469,38644,37734,22493,22413,22399,13886,22731,23193,166470,136954,137071,136976,23084,22968,37519,23166,23247,23058,153926,137715,137313,148117,14069,27909,29763,23073,155267,23169,166871,132115,37856,29836,135939,28933,18802,37896,166395,37821,14240,23582,23710,24158,24136,137622,137596,146158,24269,23375,137475,137476,14081,137376,14045,136958,14035,33066,166471,138682,144498,166312,24332,24334,137511,137131,23147,137019,23364,34324,161277,34912,24702,141408,140843,24539,16056,140719,140734,168072,159603,25024,131134,131142,140827,24985,24984,24693,142491,142599,149204,168269,25713,149093,142186,14889,142114,144464,170218,142968,25399,173147,25782,25393,25553,149987,142695,25252,142497,25659,25963,26994,15348,143502,144045,149897,144043,21773,144096,137433,169023,26318,144009,143795,15072,16784,152964,166690,152975,136956,152923,152613,30958,143619,137258,143924,13412,143887,143746,148169,26254,159012,26219,19347,26160,161904,138731,26211,144082,144097,26142,153714,14545,145466,145340,15257,145314,144382,29904,15254,26511,149034,26806,26654,15300,27326,14435,145365,148615,27187,27218,27337,27397,137490,25873,26776,27212,15319,27258,27479,147392,146586,37792,37618,166890,166603,37513,163870,166364,37991,28069,28427,149996,28007,147327,15759,28164,147516,23101,28170,22599,27940,30786,28987,148250,148086,28913,29264,29319,29332,149391,149285,20857,150180,132587,29818,147192,144991,150090,149783,155617,16134,16049,150239,166947,147253,24743,16115,29900,29756,37767,29751,17567,159210,17745,30083,16227,150745,150790,16216,30037,30323,173510,15129,29800,166604,149931,149902,15099,15821,150094,16127,149957,149747,37370,22322,37698,166627,137316,20703,152097,152039,30584,143922,30478,30479,30587,149143,145281,14942,149744,29752,29851,16063,150202,150215,16584,150166,156078,37639,152961,30750,30861,30856,30930,29648,31065,161601,153315,16654,31131,33942,31141,27181,147194,31290,31220,16750,136934,16690,37429,31217,134476,149900,131737,146874,137070,13719,21867,13680,13994,131540,134157,31458,23129,141045,154287,154268,23053,131675,30960,23082,154566,31486,16889,31837,31853,16913,154547,155324,155302,31949,150009,137136,31886,31868,31918,27314,32220,32263,32211,32590,156257,155996,162632,32151,155266,17002,158581,133398,26582,131150,144847,22468,156690,156664,149858,32733,31527,133164,154345,154947,31500,155150,39398,34373,39523,27164,144447,14818,150007,157101,39455,157088,33920,160039,158929,17642,33079,17410,32966,33033,33090,157620,39107,158274,33378,33381,158289,33875,159143,34320,160283,23174,16767,137280,23339,137377,23268,137432,34464,195004,146831,34861,160802,23042,34926,20293,34951,35007,35046,35173,35149,153219,35156,161669,161668,166901,166873,166812,166393,16045,33955,18165,18127,14322,35389,35356,169032,24397,37419,148100,26068,28969,28868,137285,40301,35999,36073,163292,22938,30659,23024,17262,14036,36394,36519,150537,36656,36682,17140,27736,28603,140065,18587,28537,28299,137178,39913,14005,149807,37051,37015,21873,18694,37307,37892,166475,16482,166652,37927,166941,166971,34021,35371,38297,38311,38295,38294,167220,29765,16066,149759,150082,148458,16103,143909,38543,167655,167526,167525,16076,149997,150136,147438,29714,29803,16124,38721,168112,26695,18973,168083,153567,38749,37736,166281,166950,166703,156606,37562,23313,35689,18748,29689,147995,38811,38769,39224,134950,24001,166853,150194,38943,169178,37622,169431,37349,17600,166736,150119,166756,39132,166469,16128,37418,18725,33812,39227,39245,162566,15869,39323,19311,39338,39516,166757,153800,27279,39457,23294,39471,170225,19344,170312,39356,19389,19351,37757,22642,135938,22562,149944,136424,30788,141087,146872,26821,15741,37976,14631,24912,141185,141675,24839,40015,40019,40059,39989,39952,39807,39887,171565,39839,172533,172286,40225,19630,147716,40472,19632,40204,172468,172269,172275,170287,40357,33981,159250,159711,158594,34300,17715,159140,159364,159216,33824,34286,159232,145367,155748,31202,144796,144960,18733,149982,15714,37851,37566,37704,131775,30905,37495,37965,20452,13376,36964,152925,30781,30804,30902,30795,137047,143817,149825,13978,20338,28634,28633,28702,28702,21524,147893,22459,22771,22410,40214,22487,28980,13487,147884,29163,158784,151447,23336,137141,166473,24844,23246,23051,17084,148616,14124,19323,166396,37819,37816,137430,134941,33906,158912,136211,148218,142374,148417,22932,146871,157505,32168,155995,155812,149945,149899,166394,37605,29666,16105,29876,166755,137375,16097,150195,27352,29683,29691,16086,150078,150164,137177,150118,132007,136228,149989,29768,149782,28837,149878,37508,29670,37727,132350,37681,166606,166422,37766,166887,153045,18741,166530,29035,149827,134399,22180,132634,134123,134328,21762,31172,137210,32254,136898,150096,137298,17710,37889,14090,166592,149933,22960,137407,137347,160900,23201,14050,146779,14e3,37471,23161,166529,137314,37748,15565,133812,19094,14730,20724,15721,15692,136092,29045,17147,164376,28175,168164,17643,27991,163407,28775,27823,15574,147437,146989,28162,28428,15727,132085,30033,14012,13512,18048,16090,18545,22980,37486,18750,36673,166940,158656,22546,22472,14038,136274,28926,148322,150129,143331,135856,140221,26809,26983,136088,144613,162804,145119,166531,145366,144378,150687,27162,145069,158903,33854,17631,17614,159014,159057,158850,159710,28439,160009,33597,137018,33773,158848,159827,137179,22921,23170,137139,23137,23153,137477,147964,14125,23023,137020,14023,29070,37776,26266,148133,23150,23083,148115,27179,147193,161590,148571,148170,28957,148057,166369,20400,159016,23746,148686,163405,148413,27148,148054,135940,28838,28979,148457,15781,27871,194597,150095,32357,23019,23855,15859,24412,150109,137183,32164,33830,21637,146170,144128,131604,22398,133333,132633,16357,139166,172726,28675,168283,23920,29583,31955,166489,168992,20424,32743,29389,29456,162548,29496,29497,153334,29505,29512,16041,162584,36972,29173,149746,29665,33270,16074,30476,16081,27810,22269,29721,29726,29727,16098,16112,16116,16122,29907,16142,16211,30018,30061,30066,30093,16252,30152,30172,16320,30285,16343,30324,16348,30330,151388,29064,22051,35200,22633,16413,30531,16441,26465,16453,13787,30616,16490,16495,23646,30654,30667,22770,30744,28857,30748,16552,30777,30791,30801,30822,33864,152885,31027,26627,31026,16643,16649,31121,31129,36795,31238,36796,16743,31377,16818,31420,33401,16836,31439,31451,16847,20001,31586,31596,31611,31762,31771,16992,17018,31867,31900,17036,31928,17044,31981,36755,28864,134351,32207,32212,32208,32253,32686,32692,29343,17303,32800,32805,31545,32814,32817,32852,15820,22452,28832,32951,33001,17389,33036,29482,33038,33042,30048,33044,17409,15161,33110,33113,33114,17427,22586,33148,33156,17445,33171,17453,33189,22511,33217,33252,33364,17551,33446,33398,33482,33496,33535,17584,33623,38505,27018,33797,28917,33892,24803,33928,17668,33982,34017,34040,34064,34104,34130,17723,34159,34160,34272,17783,34418,34450,34482,34543,38469,34699,17926,17943,34990,35071,35108,35143,35217,162151,35369,35384,35476,35508,35921,36052,36082,36124,18328,22623,36291,18413,20206,36410,21976,22356,36465,22005,36528,18487,36558,36578,36580,36589,36594,36791,36801,36810,36812,36915,39364,18605,39136,37395,18718,37416,37464,37483,37553,37550,37567,37603,37611,37619,37620,37629,37699,37764,37805,18757,18769,40639,37911,21249,37917,37933,37950,18794,37972,38009,38189,38306,18855,38388,38451,18917,26528,18980,38720,18997,38834,38850,22100,19172,24808,39097,19225,39153,22596,39182,39193,20916,39196,39223,39234,39261,39266,19312,39365,19357,39484,39695,31363,39785,39809,39901,39921,39924,19565,39968,14191,138178,40265,39994,40702,22096,40339,40381,40384,40444,38134,36790,40571,40620,40625,40637,40646,38108,40674,40689,40696,31432,40772,131220,131767,132e3,26906,38083,22956,132311,22592,38081,14265,132565,132629,132726,136890,22359,29043,133826,133837,134079,21610,194619,134091,21662,134139,134203,134227,134245,134268,24807,134285,22138,134325,134365,134381,134511,134578,134600,26965,39983,34725,134660,134670,134871,135056,134957,134771,23584,135100,24075,135260,135247,135286,26398,135291,135304,135318,13895,135359,135379,135471,135483,21348,33965,135907,136053,135990,35713,136567,136729,137155,137159,20088,28859,137261,137578,137773,137797,138282,138352,138412,138952,25283,138965,139029,29080,26709,139333,27113,14024,139900,140247,140282,141098,141425,141647,33533,141671,141715,142037,35237,142056,36768,142094,38840,142143,38983,39613,142412,null,142472,142519,154600,142600,142610,142775,142741,142914,143220,143308,143411,143462,144159,144350,24497,26184,26303,162425,144743,144883,29185,149946,30679,144922,145174,32391,131910,22709,26382,26904,146087,161367,155618,146961,147129,161278,139418,18640,19128,147737,166554,148206,148237,147515,148276,148374,150085,132554,20946,132625,22943,138920,15294,146687,148484,148694,22408,149108,14747,149295,165352,170441,14178,139715,35678,166734,39382,149522,149755,150037,29193,150208,134264,22885,151205,151430,132985,36570,151596,21135,22335,29041,152217,152601,147274,150183,21948,152646,152686,158546,37332,13427,152895,161330,152926,18200,152930,152934,153543,149823,153693,20582,13563,144332,24798,153859,18300,166216,154286,154505,154630,138640,22433,29009,28598,155906,162834,36950,156082,151450,35682,156674,156746,23899,158711,36662,156804,137500,35562,150006,156808,147439,156946,19392,157119,157365,141083,37989,153569,24981,23079,194765,20411,22201,148769,157436,20074,149812,38486,28047,158909,13848,35191,157593,157806,156689,157790,29151,157895,31554,168128,133649,157990,37124,158009,31301,40432,158202,39462,158253,13919,156777,131105,31107,158260,158555,23852,144665,33743,158621,18128,158884,30011,34917,159150,22710,14108,140685,159819,160205,15444,160384,160389,37505,139642,160395,37680,160486,149968,27705,38047,160848,134904,34855,35061,141606,164979,137137,28344,150058,137248,14756,14009,23568,31203,17727,26294,171181,170148,35139,161740,161880,22230,16607,136714,14753,145199,164072,136133,29101,33638,162269,168360,23143,19639,159919,166315,162301,162314,162571,163174,147834,31555,31102,163849,28597,172767,27139,164632,21410,159239,37823,26678,38749,164207,163875,158133,136173,143919,163912,23941,166960,163971,22293,38947,166217,23979,149896,26046,27093,21458,150181,147329,15377,26422,163984,164084,164142,139169,164175,164233,164271,164378,164614,164655,164746,13770,164968,165546,18682,25574,166230,30728,37461,166328,17394,166375,17375,166376,166726,166868,23032,166921,36619,167877,168172,31569,168208,168252,15863,168286,150218,36816,29327,22155,169191,169449,169392,169400,169778,170193,170313,170346,170435,170536,170766,171354,171419,32415,171768,171811,19620,38215,172691,29090,172799,19857,36882,173515,19868,134300,36798,21953,36794,140464,36793,150163,17673,32383,28502,27313,20202,13540,166700,161949,14138,36480,137205,163876,166764,166809,162366,157359,15851,161365,146615,153141,153942,20122,155265,156248,22207,134765,36366,23405,147080,150686,25566,25296,137206,137339,25904,22061,154698,21530,152337,15814,171416,19581,22050,22046,32585,155352,22901,146752,34672,19996,135146,134473,145082,33047,40286,36120,30267,40005,30286,30649,37701,21554,33096,33527,22053,33074,33816,32957,21994,31074,22083,21526,134813,13774,22021,22001,26353,164578,13869,30004,22e3,21946,21655,21874,134209,134294,24272,151880,134774,142434,134818,40619,32090,21982,135285,25245,38765,21652,36045,29174,37238,25596,25529,25598,21865,142147,40050,143027,20890,13535,134567,20903,21581,21790,21779,30310,36397,157834,30129,32950,34820,34694,35015,33206,33820,135361,17644,29444,149254,23440,33547,157843,22139,141044,163119,147875,163187,159440,160438,37232,135641,37384,146684,173737,134828,134905,29286,138402,18254,151490,163833,135147,16634,40029,25887,142752,18675,149472,171388,135148,134666,24674,161187,135149,null,155720,135559,29091,32398,40272,19994,19972,13687,23309,27826,21351,13996,14812,21373,13989,149016,22682,150382,33325,21579,22442,154261,133497,null,14930,140389,29556,171692,19721,39917,146686,171824,19547,151465,169374,171998,33884,146870,160434,157619,145184,25390,32037,147191,146988,14890,36872,21196,15988,13946,17897,132238,30272,23280,134838,30842,163630,22695,16575,22140,39819,23924,30292,173108,40581,19681,30201,14331,24857,143578,148466,null,22109,135849,22439,149859,171526,21044,159918,13741,27722,40316,31830,39737,22494,137068,23635,25811,169168,156469,160100,34477,134440,159010,150242,134513,null,20990,139023,23950,38659,138705,40577,36940,31519,39682,23761,31651,25192,25397,39679,31695,39722,31870,39726,31810,31878,39957,31740,39689,40727,39963,149822,40794,21875,23491,20477,40600,20466,21088,15878,21201,22375,20566,22967,24082,38856,40363,36700,21609,38836,39232,38842,21292,24880,26924,21466,39946,40194,19515,38465,27008,20646,30022,137069,39386,21107,null,37209,38529,37212,null,37201,167575,25471,159011,27338,22033,37262,30074,25221,132092,29519,31856,154657,146685,null,149785,30422,39837,20010,134356,33726,34882,null,23626,27072,20717,22394,21023,24053,20174,27697,131570,20281,21660,21722,21146,36226,13822,24332,13811,null,27474,37244,40869,39831,38958,39092,39610,40616,40580,29050,31508,null,27642,34840,32632,null,22048,173642,36471,40787,null,36308,36431,40476,36353,25218,164733,36392,36469,31443,150135,31294,30936,27882,35431,30215,166490,40742,27854,34774,30147,172722,30803,194624,36108,29410,29553,35629,29442,29937,36075,150203,34351,24506,34976,17591,null,137275,159237,null,35454,140571,null,24829,30311,39639,40260,37742,39823,34805,null,34831,36087,29484,38689,39856,13782,29362,19463,31825,39242,155993,24921,19460,40598,24957,null,22367,24943,25254,25145,25294,14940,25058,21418,144373,25444,26626,13778,23895,166850,36826,167481,null,20697,138566,30982,21298,38456,134971,16485,null,30718,null,31938,155418,31962,31277,32870,32867,32077,29957,29938,35220,33306,26380,32866,160902,32859,29936,33027,30500,35209,157644,30035,159441,34729,34766,33224,34700,35401,36013,35651,30507,29944,34010,13877,27058,36262,null,35241,29800,28089,34753,147473,29927,15835,29046,24740,24988,15569,29026,24695,null,32625,166701,29264,24809,19326,21024,15384,146631,155351,161366,152881,137540,135934,170243,159196,159917,23745,156077,166415,145015,131310,157766,151310,17762,23327,156492,40784,40614,156267,12288,65292,12289,12290,65294,8231,65307,65306,65311,65281,65072,8230,8229,65104,65105,65106,183,65108,65109,65110,65111,65372,8211,65073,8212,65075,9588,65076,65103,65288,65289,65077,65078,65371,65373,65079,65080,12308,12309,65081,65082,12304,12305,65083,65084,12298,12299,65085,65086,12296,12297,65087,65088,12300,12301,65089,65090,12302,12303,65091,65092,65113,65114,65115,65116,65117,65118,8216,8217,8220,8221,12317,12318,8245,8242,65283,65286,65290,8251,167,12291,9675,9679,9651,9650,9678,9734,9733,9671,9670,9633,9632,9661,9660,12963,8453,175,65507,65343,717,65097,65098,65101,65102,65099,65100,65119,65120,65121,65291,65293,215,247,177,8730,65308,65310,65309,8806,8807,8800,8734,8786,8801,65122,65123,65124,65125,65126,65374,8745,8746,8869,8736,8735,8895,13266,13265,8747,8750,8757,8756,9792,9794,8853,8857,8593,8595,8592,8594,8598,8599,8601,8600,8741,8739,65295,65340,8725,65128,65284,65509,12306,65504,65505,65285,65312,8451,8457,65129,65130,65131,13269,13212,13213,13214,13262,13217,13198,13199,13252,176,20825,20827,20830,20829,20833,20835,21991,29929,31950,9601,9602,9603,9604,9605,9606,9607,9608,9615,9614,9613,9612,9611,9610,9609,9532,9524,9516,9508,9500,9620,9472,9474,9621,9484,9488,9492,9496,9581,9582,9584,9583,9552,9566,9578,9569,9698,9699,9701,9700,9585,9586,9587,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,12321,12322,12323,12324,12325,12326,12327,12328,12329,21313,21316,21317,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,729,713,714,711,715,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9249,8364,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19968,20057,19969,19971,20035,20061,20102,20108,20154,20799,20837,20843,20960,20992,20993,21147,21269,21313,21340,21448,19977,19979,19976,19978,20011,20024,20961,20037,20040,20063,20062,20110,20129,20800,20995,21242,21315,21449,21475,22303,22763,22805,22823,22899,23376,23377,23379,23544,23567,23586,23608,23665,24029,24037,24049,24050,24051,24062,24178,24318,24331,24339,25165,19985,19984,19981,20013,20016,20025,20043,23609,20104,20113,20117,20114,20116,20130,20161,20160,20163,20166,20167,20173,20170,20171,20164,20803,20801,20839,20845,20846,20844,20887,20982,20998,20999,21e3,21243,21246,21247,21270,21305,21320,21319,21317,21342,21380,21451,21450,21453,22764,22825,22827,22826,22829,23380,23569,23588,23610,23663,24052,24187,24319,24340,24341,24515,25096,25142,25163,25166,25903,25991,26007,26020,26041,26085,26352,26376,26408,27424,27490,27513,27595,27604,27611,27663,27700,28779,29226,29238,29243,29255,29273,29275,29356,29579,19993,19990,19989,19988,19992,20027,20045,20047,20046,20197,20184,20180,20181,20182,20183,20195,20196,20185,20190,20805,20804,20873,20874,20908,20985,20986,20984,21002,21152,21151,21253,21254,21271,21277,20191,21322,21321,21345,21344,21359,21358,21435,21487,21476,21491,21484,21486,21481,21480,21500,21496,21493,21483,21478,21482,21490,21489,21488,21477,21485,21499,22235,22234,22806,22830,22833,22900,22902,23381,23427,23612,24040,24039,24038,24066,24067,24179,24188,24321,24344,24343,24517,25098,25171,25172,25170,25169,26021,26086,26414,26412,26410,26411,26413,27491,27597,27665,27664,27704,27713,27712,27710,29359,29572,29577,29916,29926,29976,29983,29992,29993,3e4,30001,30002,30003,30091,30333,30382,30399,30446,30683,30690,30707,31034,31166,31348,31435,19998,19999,20050,20051,20073,20121,20132,20134,20133,20223,20233,20249,20234,20245,20237,20240,20241,20239,20210,20214,20219,20208,20211,20221,20225,20235,20809,20807,20806,20808,20840,20849,20877,20912,21015,21009,21010,21006,21014,21155,21256,21281,21280,21360,21361,21513,21519,21516,21514,21520,21505,21515,21508,21521,21517,21512,21507,21518,21510,21522,22240,22238,22237,22323,22320,22312,22317,22316,22319,22313,22809,22810,22839,22840,22916,22904,22915,22909,22905,22914,22913,23383,23384,23431,23432,23429,23433,23546,23574,23673,24030,24070,24182,24180,24335,24347,24537,24534,25102,25100,25101,25104,25187,25179,25176,25910,26089,26088,26092,26093,26354,26355,26377,26429,26420,26417,26421,27425,27492,27515,27670,27741,27735,27737,27743,27744,27728,27733,27745,27739,27725,27726,28784,29279,29277,30334,31481,31859,31992,32566,32650,32701,32769,32771,32780,32786,32819,32895,32905,32907,32908,33251,33258,33267,33276,33292,33307,33311,33390,33394,33406,34411,34880,34892,34915,35199,38433,20018,20136,20301,20303,20295,20311,20318,20276,20315,20309,20272,20304,20305,20285,20282,20280,20291,20308,20284,20294,20323,20316,20320,20271,20302,20278,20313,20317,20296,20314,20812,20811,20813,20853,20918,20919,21029,21028,21033,21034,21032,21163,21161,21162,21164,21283,21363,21365,21533,21549,21534,21566,21542,21582,21543,21574,21571,21555,21576,21570,21531,21545,21578,21561,21563,21560,21550,21557,21558,21536,21564,21568,21553,21547,21535,21548,22250,22256,22244,22251,22346,22353,22336,22349,22343,22350,22334,22352,22351,22331,22767,22846,22941,22930,22952,22942,22947,22937,22934,22925,22948,22931,22922,22949,23389,23388,23386,23387,23436,23435,23439,23596,23616,23617,23615,23614,23696,23697,23700,23692,24043,24076,24207,24199,24202,24311,24324,24351,24420,24418,24439,24441,24536,24524,24535,24525,24561,24555,24568,24554,25106,25105,25220,25239,25238,25216,25206,25225,25197,25226,25212,25214,25209,25203,25234,25199,25240,25198,25237,25235,25233,25222,25913,25915,25912,26097,26356,26463,26446,26447,26448,26449,26460,26454,26462,26441,26438,26464,26451,26455,27493,27599,27714,27742,27801,27777,27784,27785,27781,27803,27754,27770,27792,27760,27788,27752,27798,27794,27773,27779,27762,27774,27764,27782,27766,27789,27796,27800,27778,28790,28796,28797,28792,29282,29281,29280,29380,29378,29590,29996,29995,30007,30008,30338,30447,30691,31169,31168,31167,31350,31995,32597,32918,32915,32925,32920,32923,32922,32946,33391,33426,33419,33421,35211,35282,35328,35895,35910,35925,35997,36196,36208,36275,36523,36554,36763,36784,36802,36806,36805,36804,24033,37009,37026,37034,37030,37027,37193,37318,37324,38450,38446,38449,38442,38444,20006,20054,20083,20107,20123,20126,20139,20140,20335,20381,20365,20339,20351,20332,20379,20363,20358,20355,20336,20341,20360,20329,20347,20374,20350,20367,20369,20346,20820,20818,20821,20841,20855,20854,20856,20925,20989,21051,21048,21047,21050,21040,21038,21046,21057,21182,21179,21330,21332,21331,21329,21350,21367,21368,21369,21462,21460,21463,21619,21621,21654,21624,21653,21632,21627,21623,21636,21650,21638,21628,21648,21617,21622,21644,21658,21602,21608,21643,21629,21646,22266,22403,22391,22378,22377,22369,22374,22372,22396,22812,22857,22855,22856,22852,22868,22974,22971,22996,22969,22958,22993,22982,22992,22989,22987,22995,22986,22959,22963,22994,22981,23391,23396,23395,23447,23450,23448,23452,23449,23451,23578,23624,23621,23622,23735,23713,23736,23721,23723,23729,23731,24088,24090,24086,24085,24091,24081,24184,24218,24215,24220,24213,24214,24310,24358,24359,24361,24448,24449,24447,24444,24541,24544,24573,24565,24575,24591,24596,24623,24629,24598,24618,24597,24609,24615,24617,24619,24603,25110,25109,25151,25150,25152,25215,25289,25292,25284,25279,25282,25273,25298,25307,25259,25299,25300,25291,25288,25256,25277,25276,25296,25305,25287,25293,25269,25306,25265,25304,25302,25303,25286,25260,25294,25918,26023,26044,26106,26132,26131,26124,26118,26114,26126,26112,26127,26133,26122,26119,26381,26379,26477,26507,26517,26481,26524,26483,26487,26503,26525,26519,26479,26480,26495,26505,26494,26512,26485,26522,26515,26492,26474,26482,27427,27494,27495,27519,27667,27675,27875,27880,27891,27825,27852,27877,27827,27837,27838,27836,27874,27819,27861,27859,27832,27844,27833,27841,27822,27863,27845,27889,27839,27835,27873,27867,27850,27820,27887,27868,27862,27872,28821,28814,28818,28810,28825,29228,29229,29240,29256,29287,29289,29376,29390,29401,29399,29392,29609,29608,29599,29611,29605,30013,30109,30105,30106,30340,30402,30450,30452,30693,30717,31038,31040,31041,31177,31176,31354,31353,31482,31998,32596,32652,32651,32773,32954,32933,32930,32945,32929,32939,32937,32948,32938,32943,33253,33278,33293,33459,33437,33433,33453,33469,33439,33465,33457,33452,33445,33455,33464,33443,33456,33470,33463,34382,34417,21021,34920,36555,36814,36820,36817,37045,37048,37041,37046,37319,37329,38263,38272,38428,38464,38463,38459,38468,38466,38585,38632,38738,38750,20127,20141,20142,20449,20405,20399,20415,20448,20433,20431,20445,20419,20406,20440,20447,20426,20439,20398,20432,20420,20418,20442,20430,20446,20407,20823,20882,20881,20896,21070,21059,21066,21069,21068,21067,21063,21191,21193,21187,21185,21261,21335,21371,21402,21467,21676,21696,21672,21710,21705,21688,21670,21683,21703,21698,21693,21674,21697,21700,21704,21679,21675,21681,21691,21673,21671,21695,22271,22402,22411,22432,22435,22434,22478,22446,22419,22869,22865,22863,22862,22864,23004,23e3,23039,23011,23016,23043,23013,23018,23002,23014,23041,23035,23401,23459,23462,23460,23458,23461,23553,23630,23631,23629,23627,23769,23762,24055,24093,24101,24095,24189,24224,24230,24314,24328,24365,24421,24456,24453,24458,24459,24455,24460,24457,24594,24605,24608,24613,24590,24616,24653,24688,24680,24674,24646,24643,24684,24683,24682,24676,25153,25308,25366,25353,25340,25325,25345,25326,25341,25351,25329,25335,25327,25324,25342,25332,25361,25346,25919,25925,26027,26045,26082,26149,26157,26144,26151,26159,26143,26152,26161,26148,26359,26623,26579,26609,26580,26576,26604,26550,26543,26613,26601,26607,26564,26577,26548,26586,26597,26552,26575,26590,26611,26544,26585,26594,26589,26578,27498,27523,27526,27573,27602,27607,27679,27849,27915,27954,27946,27969,27941,27916,27953,27934,27927,27963,27965,27966,27958,27931,27893,27961,27943,27960,27945,27950,27957,27918,27947,28843,28858,28851,28844,28847,28845,28856,28846,28836,29232,29298,29295,29300,29417,29408,29409,29623,29642,29627,29618,29645,29632,29619,29978,29997,30031,30028,30030,30027,30123,30116,30117,30114,30115,30328,30342,30343,30344,30408,30406,30403,30405,30465,30457,30456,30473,30475,30462,30460,30471,30684,30722,30740,30732,30733,31046,31049,31048,31047,31161,31162,31185,31186,31179,31359,31361,31487,31485,31869,32002,32005,32e3,32009,32007,32004,32006,32568,32654,32703,32772,32784,32781,32785,32822,32982,32997,32986,32963,32964,32972,32993,32987,32974,32990,32996,32989,33268,33314,33511,33539,33541,33507,33499,33510,33540,33509,33538,33545,33490,33495,33521,33537,33500,33492,33489,33502,33491,33503,33519,33542,34384,34425,34427,34426,34893,34923,35201,35284,35336,35330,35331,35998,36e3,36212,36211,36276,36557,36556,36848,36838,36834,36842,36837,36845,36843,36836,36840,37066,37070,37057,37059,37195,37194,37325,38274,38480,38475,38476,38477,38754,38761,38859,38893,38899,38913,39080,39131,39135,39318,39321,20056,20147,20492,20493,20515,20463,20518,20517,20472,20521,20502,20486,20540,20511,20506,20498,20497,20474,20480,20500,20520,20465,20513,20491,20505,20504,20467,20462,20525,20522,20478,20523,20489,20860,20900,20901,20898,20941,20940,20934,20939,21078,21084,21076,21083,21085,21290,21375,21407,21405,21471,21736,21776,21761,21815,21756,21733,21746,21766,21754,21780,21737,21741,21729,21769,21742,21738,21734,21799,21767,21757,21775,22275,22276,22466,22484,22475,22467,22537,22799,22871,22872,22874,23057,23064,23068,23071,23067,23059,23020,23072,23075,23081,23077,23052,23049,23403,23640,23472,23475,23478,23476,23470,23477,23481,23480,23556,23633,23637,23632,23789,23805,23803,23786,23784,23792,23798,23809,23796,24046,24109,24107,24235,24237,24231,24369,24466,24465,24464,24665,24675,24677,24656,24661,24685,24681,24687,24708,24735,24730,24717,24724,24716,24709,24726,25159,25331,25352,25343,25422,25406,25391,25429,25410,25414,25423,25417,25402,25424,25405,25386,25387,25384,25421,25420,25928,25929,26009,26049,26053,26178,26185,26191,26179,26194,26188,26181,26177,26360,26388,26389,26391,26657,26680,26696,26694,26707,26681,26690,26708,26665,26803,26647,26700,26705,26685,26612,26704,26688,26684,26691,26666,26693,26643,26648,26689,27530,27529,27575,27683,27687,27688,27686,27684,27888,28010,28053,28040,28039,28006,28024,28023,27993,28051,28012,28041,28014,27994,28020,28009,28044,28042,28025,28037,28005,28052,28874,28888,28900,28889,28872,28879,29241,29305,29436,29433,29437,29432,29431,29574,29677,29705,29678,29664,29674,29662,30036,30045,30044,30042,30041,30142,30149,30151,30130,30131,30141,30140,30137,30146,30136,30347,30384,30410,30413,30414,30505,30495,30496,30504,30697,30768,30759,30776,30749,30772,30775,30757,30765,30752,30751,30770,31061,31056,31072,31071,31062,31070,31069,31063,31066,31204,31203,31207,31199,31206,31209,31192,31364,31368,31449,31494,31505,31881,32033,32023,32011,32010,32032,32034,32020,32016,32021,32026,32028,32013,32025,32027,32570,32607,32660,32709,32705,32774,32792,32789,32793,32791,32829,32831,33009,33026,33008,33029,33005,33012,33030,33016,33011,33032,33021,33034,33020,33007,33261,33260,33280,33296,33322,33323,33320,33324,33467,33579,33618,33620,33610,33592,33616,33609,33589,33588,33615,33586,33593,33590,33559,33600,33585,33576,33603,34388,34442,34474,34451,34468,34473,34444,34467,34460,34928,34935,34945,34946,34941,34937,35352,35344,35342,35340,35349,35338,35351,35347,35350,35343,35345,35912,35962,35961,36001,36002,36215,36524,36562,36564,36559,36785,36865,36870,36855,36864,36858,36852,36867,36861,36869,36856,37013,37089,37085,37090,37202,37197,37196,37336,37341,37335,37340,37337,38275,38498,38499,38497,38491,38493,38500,38488,38494,38587,39138,39340,39592,39640,39717,39730,39740,20094,20602,20605,20572,20551,20547,20556,20570,20553,20581,20598,20558,20565,20597,20596,20599,20559,20495,20591,20589,20828,20885,20976,21098,21103,21202,21209,21208,21205,21264,21263,21273,21311,21312,21310,21443,26364,21830,21866,21862,21828,21854,21857,21827,21834,21809,21846,21839,21845,21807,21860,21816,21806,21852,21804,21859,21811,21825,21847,22280,22283,22281,22495,22533,22538,22534,22496,22500,22522,22530,22581,22519,22521,22816,22882,23094,23105,23113,23142,23146,23104,23100,23138,23130,23110,23114,23408,23495,23493,23492,23490,23487,23494,23561,23560,23559,23648,23644,23645,23815,23814,23822,23835,23830,23842,23825,23849,23828,23833,23844,23847,23831,24034,24120,24118,24115,24119,24247,24248,24246,24245,24254,24373,24375,24407,24428,24425,24427,24471,24473,24478,24472,24481,24480,24476,24703,24739,24713,24736,24744,24779,24756,24806,24765,24773,24763,24757,24796,24764,24792,24789,24774,24799,24760,24794,24775,25114,25115,25160,25504,25511,25458,25494,25506,25509,25463,25447,25496,25514,25457,25513,25481,25475,25499,25451,25512,25476,25480,25497,25505,25516,25490,25487,25472,25467,25449,25448,25466,25949,25942,25937,25945,25943,21855,25935,25944,25941,25940,26012,26011,26028,26063,26059,26060,26062,26205,26202,26212,26216,26214,26206,26361,21207,26395,26753,26799,26786,26771,26805,26751,26742,26801,26791,26775,26800,26755,26820,26797,26758,26757,26772,26781,26792,26783,26785,26754,27442,27578,27627,27628,27691,28046,28092,28147,28121,28082,28129,28108,28132,28155,28154,28165,28103,28107,28079,28113,28078,28126,28153,28088,28151,28149,28101,28114,28186,28085,28122,28139,28120,28138,28145,28142,28136,28102,28100,28074,28140,28095,28134,28921,28937,28938,28925,28911,29245,29309,29313,29468,29467,29462,29459,29465,29575,29701,29706,29699,29702,29694,29709,29920,29942,29943,29980,29986,30053,30054,30050,30064,30095,30164,30165,30133,30154,30157,30350,30420,30418,30427,30519,30526,30524,30518,30520,30522,30827,30787,30798,31077,31080,31085,31227,31378,31381,31520,31528,31515,31532,31526,31513,31518,31534,31890,31895,31893,32070,32067,32113,32046,32057,32060,32064,32048,32051,32068,32047,32066,32050,32049,32573,32670,32666,32716,32718,32722,32796,32842,32838,33071,33046,33059,33067,33065,33072,33060,33282,33333,33335,33334,33337,33678,33694,33688,33656,33698,33686,33725,33707,33682,33674,33683,33673,33696,33655,33659,33660,33670,33703,34389,24426,34503,34496,34486,34500,34485,34502,34507,34481,34479,34505,34899,34974,34952,34987,34962,34966,34957,34955,35219,35215,35370,35357,35363,35365,35377,35373,35359,35355,35362,35913,35930,36009,36012,36011,36008,36010,36007,36199,36198,36286,36282,36571,36575,36889,36877,36890,36887,36899,36895,36893,36880,36885,36894,36896,36879,36898,36886,36891,36884,37096,37101,37117,37207,37326,37365,37350,37347,37351,37357,37353,38281,38506,38517,38515,38520,38512,38516,38518,38519,38508,38592,38634,38633,31456,31455,38914,38915,39770,40165,40565,40575,40613,40635,20642,20621,20613,20633,20625,20608,20630,20632,20634,26368,20977,21106,21108,21109,21097,21214,21213,21211,21338,21413,21883,21888,21927,21884,21898,21917,21912,21890,21916,21930,21908,21895,21899,21891,21939,21934,21919,21822,21938,21914,21947,21932,21937,21886,21897,21931,21913,22285,22575,22570,22580,22564,22576,22577,22561,22557,22560,22777,22778,22880,23159,23194,23167,23186,23195,23207,23411,23409,23506,23500,23507,23504,23562,23563,23601,23884,23888,23860,23879,24061,24133,24125,24128,24131,24190,24266,24257,24258,24260,24380,24429,24489,24490,24488,24785,24801,24754,24758,24800,24860,24867,24826,24853,24816,24827,24820,24936,24817,24846,24822,24841,24832,24850,25119,25161,25507,25484,25551,25536,25577,25545,25542,25549,25554,25571,25552,25569,25558,25581,25582,25462,25588,25578,25563,25682,25562,25593,25950,25958,25954,25955,26001,26e3,26031,26222,26224,26228,26230,26223,26257,26234,26238,26231,26366,26367,26399,26397,26874,26837,26848,26840,26839,26885,26847,26869,26862,26855,26873,26834,26866,26851,26827,26829,26893,26898,26894,26825,26842,26990,26875,27454,27450,27453,27544,27542,27580,27631,27694,27695,27692,28207,28216,28244,28193,28210,28263,28234,28192,28197,28195,28187,28251,28248,28196,28246,28270,28205,28198,28271,28212,28237,28218,28204,28227,28189,28222,28363,28297,28185,28238,28259,28228,28274,28265,28255,28953,28954,28966,28976,28961,28982,29038,28956,29260,29316,29312,29494,29477,29492,29481,29754,29738,29747,29730,29733,29749,29750,29748,29743,29723,29734,29736,29989,29990,30059,30058,30178,30171,30179,30169,30168,30174,30176,30331,30332,30358,30355,30388,30428,30543,30701,30813,30828,30831,31245,31240,31243,31237,31232,31384,31383,31382,31461,31459,31561,31574,31558,31568,31570,31572,31565,31563,31567,31569,31903,31909,32094,32080,32104,32085,32043,32110,32114,32097,32102,32098,32112,32115,21892,32724,32725,32779,32850,32901,33109,33108,33099,33105,33102,33081,33094,33086,33100,33107,33140,33298,33308,33769,33795,33784,33805,33760,33733,33803,33729,33775,33777,33780,33879,33802,33776,33804,33740,33789,33778,33738,33848,33806,33796,33756,33799,33748,33759,34395,34527,34521,34541,34516,34523,34532,34512,34526,34903,35009,35010,34993,35203,35222,35387,35424,35413,35422,35388,35393,35412,35419,35408,35398,35380,35386,35382,35414,35937,35970,36015,36028,36019,36029,36033,36027,36032,36020,36023,36022,36031,36024,36234,36229,36225,36302,36317,36299,36314,36305,36300,36315,36294,36603,36600,36604,36764,36910,36917,36913,36920,36914,36918,37122,37109,37129,37118,37219,37221,37327,37396,37397,37411,37385,37406,37389,37392,37383,37393,38292,38287,38283,38289,38291,38290,38286,38538,38542,38539,38525,38533,38534,38541,38514,38532,38593,38597,38596,38598,38599,38639,38642,38860,38917,38918,38920,39143,39146,39151,39145,39154,39149,39342,39341,40643,40653,40657,20098,20653,20661,20658,20659,20677,20670,20652,20663,20667,20655,20679,21119,21111,21117,21215,21222,21220,21218,21219,21295,21983,21992,21971,21990,21966,21980,21959,21969,21987,21988,21999,21978,21985,21957,21958,21989,21961,22290,22291,22622,22609,22616,22615,22618,22612,22635,22604,22637,22602,22626,22610,22603,22887,23233,23241,23244,23230,23229,23228,23219,23234,23218,23913,23919,24140,24185,24265,24264,24338,24409,24492,24494,24858,24847,24904,24863,24819,24859,24825,24833,24840,24910,24908,24900,24909,24894,24884,24871,24845,24838,24887,25121,25122,25619,25662,25630,25642,25645,25661,25644,25615,25628,25620,25613,25654,25622,25623,25606,25964,26015,26032,26263,26249,26247,26248,26262,26244,26264,26253,26371,27028,26989,26970,26999,26976,26964,26997,26928,27010,26954,26984,26987,26974,26963,27001,27014,26973,26979,26971,27463,27506,27584,27583,27603,27645,28322,28335,28371,28342,28354,28304,28317,28359,28357,28325,28312,28348,28346,28331,28369,28310,28316,28356,28372,28330,28327,28340,29006,29017,29033,29028,29001,29031,29020,29036,29030,29004,29029,29022,28998,29032,29014,29242,29266,29495,29509,29503,29502,29807,29786,29781,29791,29790,29761,29759,29785,29787,29788,30070,30072,30208,30192,30209,30194,30193,30202,30207,30196,30195,30430,30431,30555,30571,30566,30558,30563,30585,30570,30572,30556,30565,30568,30562,30702,30862,30896,30871,30872,30860,30857,30844,30865,30867,30847,31098,31103,31105,33836,31165,31260,31258,31264,31252,31263,31262,31391,31392,31607,31680,31584,31598,31591,31921,31923,31925,32147,32121,32145,32129,32143,32091,32622,32617,32618,32626,32681,32680,32676,32854,32856,32902,32900,33137,33136,33144,33125,33134,33139,33131,33145,33146,33126,33285,33351,33922,33911,33853,33841,33909,33894,33899,33865,33900,33883,33852,33845,33889,33891,33897,33901,33862,34398,34396,34399,34553,34579,34568,34567,34560,34558,34555,34562,34563,34566,34570,34905,35039,35028,35033,35036,35032,35037,35041,35018,35029,35026,35228,35299,35435,35442,35443,35430,35433,35440,35463,35452,35427,35488,35441,35461,35437,35426,35438,35436,35449,35451,35390,35432,35938,35978,35977,36042,36039,36040,36036,36018,36035,36034,36037,36321,36319,36328,36335,36339,36346,36330,36324,36326,36530,36611,36617,36606,36618,36767,36786,36939,36938,36947,36930,36948,36924,36949,36944,36935,36943,36942,36941,36945,36926,36929,37138,37143,37228,37226,37225,37321,37431,37463,37432,37437,37440,37438,37467,37451,37476,37457,37428,37449,37453,37445,37433,37439,37466,38296,38552,38548,38549,38605,38603,38601,38602,38647,38651,38649,38646,38742,38772,38774,38928,38929,38931,38922,38930,38924,39164,39156,39165,39166,39347,39345,39348,39649,40169,40578,40718,40723,40736,20711,20718,20709,20694,20717,20698,20693,20687,20689,20721,20686,20713,20834,20979,21123,21122,21297,21421,22014,22016,22043,22039,22013,22036,22022,22025,22029,22030,22007,22038,22047,22024,22032,22006,22296,22294,22645,22654,22659,22675,22666,22649,22661,22653,22781,22821,22818,22820,22890,22889,23265,23270,23273,23255,23254,23256,23267,23413,23518,23527,23521,23525,23526,23528,23522,23524,23519,23565,23650,23940,23943,24155,24163,24149,24151,24148,24275,24278,24330,24390,24432,24505,24903,24895,24907,24951,24930,24931,24927,24922,24920,24949,25130,25735,25688,25684,25764,25720,25695,25722,25681,25703,25652,25709,25723,25970,26017,26071,26070,26274,26280,26269,27036,27048,27029,27073,27054,27091,27083,27035,27063,27067,27051,27060,27088,27085,27053,27084,27046,27075,27043,27465,27468,27699,28467,28436,28414,28435,28404,28457,28478,28448,28460,28431,28418,28450,28415,28399,28422,28465,28472,28466,28451,28437,28459,28463,28552,28458,28396,28417,28402,28364,28407,29076,29081,29053,29066,29060,29074,29246,29330,29334,29508,29520,29796,29795,29802,29808,29805,29956,30097,30247,30221,30219,30217,30227,30433,30435,30596,30589,30591,30561,30913,30879,30887,30899,30889,30883,31118,31119,31117,31278,31281,31402,31401,31469,31471,31649,31637,31627,31605,31639,31645,31636,31631,31672,31623,31620,31929,31933,31934,32187,32176,32156,32189,32190,32160,32202,32180,32178,32177,32186,32162,32191,32181,32184,32173,32210,32199,32172,32624,32736,32737,32735,32862,32858,32903,33104,33152,33167,33160,33162,33151,33154,33255,33274,33287,33300,33310,33355,33993,33983,33990,33988,33945,33950,33970,33948,33995,33976,33984,34003,33936,33980,34001,33994,34623,34588,34619,34594,34597,34612,34584,34645,34615,34601,35059,35074,35060,35065,35064,35069,35048,35098,35055,35494,35468,35486,35491,35469,35489,35475,35492,35498,35493,35496,35480,35473,35482,35495,35946,35981,35980,36051,36049,36050,36203,36249,36245,36348,36628,36626,36629,36627,36771,36960,36952,36956,36963,36953,36958,36962,36957,36955,37145,37144,37150,37237,37240,37239,37236,37496,37504,37509,37528,37526,37499,37523,37532,37544,37500,37521,38305,38312,38313,38307,38309,38308,38553,38556,38555,38604,38610,38656,38780,38789,38902,38935,38936,39087,39089,39171,39173,39180,39177,39361,39599,39600,39654,39745,39746,40180,40182,40179,40636,40763,40778,20740,20736,20731,20725,20729,20738,20744,20745,20741,20956,21127,21128,21129,21133,21130,21232,21426,22062,22075,22073,22066,22079,22068,22057,22099,22094,22103,22132,22070,22063,22064,22656,22687,22686,22707,22684,22702,22697,22694,22893,23305,23291,23307,23285,23308,23304,23534,23532,23529,23531,23652,23653,23965,23956,24162,24159,24161,24290,24282,24287,24285,24291,24288,24392,24433,24503,24501,24950,24935,24942,24925,24917,24962,24956,24944,24939,24958,24999,24976,25003,24974,25004,24986,24996,24980,25006,25134,25705,25711,25721,25758,25778,25736,25744,25776,25765,25747,25749,25769,25746,25774,25773,25771,25754,25772,25753,25762,25779,25973,25975,25976,26286,26283,26292,26289,27171,27167,27112,27137,27166,27161,27133,27169,27155,27146,27123,27138,27141,27117,27153,27472,27470,27556,27589,27590,28479,28540,28548,28497,28518,28500,28550,28525,28507,28536,28526,28558,28538,28528,28516,28567,28504,28373,28527,28512,28511,29087,29100,29105,29096,29270,29339,29518,29527,29801,29835,29827,29822,29824,30079,30240,30249,30239,30244,30246,30241,30242,30362,30394,30436,30606,30599,30604,30609,30603,30923,30917,30906,30922,30910,30933,30908,30928,31295,31292,31296,31293,31287,31291,31407,31406,31661,31665,31684,31668,31686,31687,31681,31648,31692,31946,32224,32244,32239,32251,32216,32236,32221,32232,32227,32218,32222,32233,32158,32217,32242,32249,32629,32631,32687,32745,32806,33179,33180,33181,33184,33178,33176,34071,34109,34074,34030,34092,34093,34067,34065,34083,34081,34068,34028,34085,34047,34054,34690,34676,34678,34656,34662,34680,34664,34649,34647,34636,34643,34907,34909,35088,35079,35090,35091,35093,35082,35516,35538,35527,35524,35477,35531,35576,35506,35529,35522,35519,35504,35542,35533,35510,35513,35547,35916,35918,35948,36064,36062,36070,36068,36076,36077,36066,36067,36060,36074,36065,36205,36255,36259,36395,36368,36381,36386,36367,36393,36383,36385,36382,36538,36637,36635,36639,36649,36646,36650,36636,36638,36645,36969,36974,36968,36973,36983,37168,37165,37159,37169,37255,37257,37259,37251,37573,37563,37559,37610,37548,37604,37569,37555,37564,37586,37575,37616,37554,38317,38321,38660,38662,38663,38665,38752,38797,38795,38799,38945,38955,38940,39091,39178,39187,39186,39192,39389,39376,39391,39387,39377,39381,39378,39385,39607,39662,39663,39719,39749,39748,39799,39791,40198,40201,40195,40617,40638,40654,22696,40786,20754,20760,20756,20752,20757,20864,20906,20957,21137,21139,21235,22105,22123,22137,22121,22116,22136,22122,22120,22117,22129,22127,22124,22114,22134,22721,22718,22727,22725,22894,23325,23348,23416,23536,23566,24394,25010,24977,25001,24970,25037,25014,25022,25034,25032,25136,25797,25793,25803,25787,25788,25818,25796,25799,25794,25805,25791,25810,25812,25790,25972,26310,26313,26297,26308,26311,26296,27197,27192,27194,27225,27243,27224,27193,27204,27234,27233,27211,27207,27189,27231,27208,27481,27511,27653,28610,28593,28577,28611,28580,28609,28583,28595,28608,28601,28598,28582,28576,28596,29118,29129,29136,29138,29128,29141,29113,29134,29145,29148,29123,29124,29544,29852,29859,29848,29855,29854,29922,29964,29965,30260,30264,30266,30439,30437,30624,30622,30623,30629,30952,30938,30956,30951,31142,31309,31310,31302,31308,31307,31418,31705,31761,31689,31716,31707,31713,31721,31718,31957,31958,32266,32273,32264,32283,32291,32286,32285,32265,32272,32633,32690,32752,32753,32750,32808,33203,33193,33192,33275,33288,33368,33369,34122,34137,34120,34152,34153,34115,34121,34157,34154,34142,34691,34719,34718,34722,34701,34913,35114,35122,35109,35115,35105,35242,35238,35558,35578,35563,35569,35584,35548,35559,35566,35582,35585,35586,35575,35565,35571,35574,35580,35947,35949,35987,36084,36420,36401,36404,36418,36409,36405,36667,36655,36664,36659,36776,36774,36981,36980,36984,36978,36988,36986,37172,37266,37664,37686,37624,37683,37679,37666,37628,37675,37636,37658,37648,37670,37665,37653,37678,37657,38331,38567,38568,38570,38613,38670,38673,38678,38669,38675,38671,38747,38748,38758,38808,38960,38968,38971,38967,38957,38969,38948,39184,39208,39198,39195,39201,39194,39405,39394,39409,39608,39612,39675,39661,39720,39825,40213,40227,40230,40232,40210,40219,40664,40660,40845,40860,20778,20767,20769,20786,21237,22158,22144,22160,22149,22151,22159,22741,22739,22737,22734,23344,23338,23332,23418,23607,23656,23996,23994,23997,23992,24171,24396,24509,25033,25026,25031,25062,25035,25138,25140,25806,25802,25816,25824,25840,25830,25836,25841,25826,25837,25986,25987,26329,26326,27264,27284,27268,27298,27292,27355,27299,27262,27287,27280,27296,27484,27566,27610,27656,28632,28657,28639,28640,28635,28644,28651,28655,28544,28652,28641,28649,28629,28654,28656,29159,29151,29166,29158,29157,29165,29164,29172,29152,29237,29254,29552,29554,29865,29872,29862,29864,30278,30274,30284,30442,30643,30634,30640,30636,30631,30637,30703,30967,30970,30964,30959,30977,31143,31146,31319,31423,31751,31757,31742,31735,31756,31712,31968,31964,31966,31970,31967,31961,31965,32302,32318,32326,32311,32306,32323,32299,32317,32305,32325,32321,32308,32313,32328,32309,32319,32303,32580,32755,32764,32881,32882,32880,32879,32883,33222,33219,33210,33218,33216,33215,33213,33225,33214,33256,33289,33393,34218,34180,34174,34204,34193,34196,34223,34203,34183,34216,34186,34407,34752,34769,34739,34770,34758,34731,34747,34746,34760,34763,35131,35126,35140,35128,35133,35244,35598,35607,35609,35611,35594,35616,35613,35588,35600,35905,35903,35955,36090,36093,36092,36088,36091,36264,36425,36427,36424,36426,36676,36670,36674,36677,36671,36991,36989,36996,36993,36994,36992,37177,37283,37278,37276,37709,37762,37672,37749,37706,37733,37707,37656,37758,37740,37723,37744,37722,37716,38346,38347,38348,38344,38342,38577,38584,38614,38684,38686,38816,38867,38982,39094,39221,39425,39423,39854,39851,39850,39853,40251,40255,40587,40655,40670,40668,40669,40667,40766,40779,21474,22165,22190,22745,22744,23352,24413,25059,25139,25844,25842,25854,25862,25850,25851,25847,26039,26332,26406,27315,27308,27331,27323,27320,27330,27310,27311,27487,27512,27567,28681,28683,28670,28678,28666,28689,28687,29179,29180,29182,29176,29559,29557,29863,29887,29973,30294,30296,30290,30653,30655,30651,30652,30990,31150,31329,31330,31328,31428,31429,31787,31783,31786,31774,31779,31777,31975,32340,32341,32350,32346,32353,32338,32345,32584,32761,32763,32887,32886,33229,33231,33290,34255,34217,34253,34256,34249,34224,34234,34233,34214,34799,34796,34802,34784,35206,35250,35316,35624,35641,35628,35627,35920,36101,36441,36451,36454,36452,36447,36437,36544,36681,36685,36999,36995,37e3,37291,37292,37328,37780,37770,37782,37794,37811,37806,37804,37808,37784,37786,37783,38356,38358,38352,38357,38626,38620,38617,38619,38622,38692,38819,38822,38829,38905,38989,38991,38988,38990,38995,39098,39230,39231,39229,39214,39333,39438,39617,39683,39686,39759,39758,39757,39882,39881,39933,39880,39872,40273,40285,40288,40672,40725,40748,20787,22181,22750,22751,22754,23541,40848,24300,25074,25079,25078,25077,25856,25871,26336,26333,27365,27357,27354,27347,28699,28703,28712,28698,28701,28693,28696,29190,29197,29272,29346,29560,29562,29885,29898,29923,30087,30086,30303,30305,30663,31001,31153,31339,31337,31806,31807,31800,31805,31799,31808,32363,32365,32377,32361,32362,32645,32371,32694,32697,32696,33240,34281,34269,34282,34261,34276,34277,34295,34811,34821,34829,34809,34814,35168,35167,35158,35166,35649,35676,35672,35657,35674,35662,35663,35654,35673,36104,36106,36476,36466,36487,36470,36460,36474,36468,36692,36686,36781,37002,37003,37297,37294,37857,37841,37855,37827,37832,37852,37853,37846,37858,37837,37848,37860,37847,37864,38364,38580,38627,38698,38695,38753,38876,38907,39006,39e3,39003,39100,39237,39241,39446,39449,39693,39912,39911,39894,39899,40329,40289,40306,40298,40300,40594,40599,40595,40628,21240,22184,22199,22198,22196,22204,22756,23360,23363,23421,23542,24009,25080,25082,25880,25876,25881,26342,26407,27372,28734,28720,28722,29200,29563,29903,30306,30309,31014,31018,31020,31019,31431,31478,31820,31811,31821,31983,31984,36782,32381,32380,32386,32588,32768,33242,33382,34299,34297,34321,34298,34310,34315,34311,34314,34836,34837,35172,35258,35320,35696,35692,35686,35695,35679,35691,36111,36109,36489,36481,36485,36482,37300,37323,37912,37891,37885,38369,38704,39108,39250,39249,39336,39467,39472,39479,39477,39955,39949,40569,40629,40680,40751,40799,40803,40801,20791,20792,22209,22208,22210,22804,23660,24013,25084,25086,25885,25884,26005,26345,27387,27396,27386,27570,28748,29211,29351,29910,29908,30313,30675,31824,32399,32396,32700,34327,34349,34330,34851,34850,34849,34847,35178,35180,35261,35700,35703,35709,36115,36490,36493,36491,36703,36783,37306,37934,37939,37941,37946,37944,37938,37931,38370,38712,38713,38706,38911,39015,39013,39255,39493,39491,39488,39486,39631,39764,39761,39981,39973,40367,40372,40386,40376,40605,40687,40729,40796,40806,40807,20796,20795,22216,22218,22217,23423,24020,24018,24398,25087,25892,27402,27489,28753,28760,29568,29924,30090,30318,30316,31155,31840,31839,32894,32893,33247,35186,35183,35324,35712,36118,36119,36497,36499,36705,37192,37956,37969,37970,38717,38718,38851,38849,39019,39253,39509,39501,39634,39706,40009,39985,39998,39995,40403,40407,40756,40812,40810,40852,22220,24022,25088,25891,25899,25898,26348,27408,29914,31434,31844,31843,31845,32403,32406,32404,33250,34360,34367,34865,35722,37008,37007,37987,37984,37988,38760,39023,39260,39514,39515,39511,39635,39636,39633,40020,40023,40022,40421,40607,40692,22225,22761,25900,28766,30321,30322,30679,32592,32648,34870,34873,34914,35731,35730,35734,33399,36123,37312,37994,38722,38728,38724,38854,39024,39519,39714,39768,40031,40441,40442,40572,40573,40711,40823,40818,24307,27414,28771,31852,31854,34875,35264,36513,37313,38002,38e3,39025,39262,39638,39715,40652,28772,30682,35738,38007,38857,39522,39525,32412,35740,36522,37317,38013,38014,38012,40055,40056,40695,35924,38015,40474,29224,39530,39729,40475,40478,31858,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,20022,20031,20101,20128,20866,20886,20907,21241,21304,21353,21430,22794,23424,24027,12083,24191,24308,24400,24417,25908,26080,30098,30326,36789,38582,168,710,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,65339,65341,10045,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8679,8632,8633,12751,131276,20058,131210,20994,17553,40880,20872,40881,161287,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65506,65508,65287,65282,12849,8470,8481,12443,12444,11904,11908,11910,11911,11912,11914,11916,11917,11925,11932,11933,11941,11943,11946,11948,11950,11958,11964,11966,11974,11978,11980,11981,11983,11990,11991,11998,12003,null,null,null,643,592,603,596,629,339,248,331,650,618,20034,20060,20981,21274,21378,19975,19980,20039,20109,22231,64012,23662,24435,19983,20871,19982,20014,20115,20162,20169,20168,20888,21244,21356,21433,22304,22787,22828,23568,24063,26081,27571,27596,27668,29247,20017,20028,20200,20188,20201,20193,20189,20186,21004,21276,21324,22306,22307,22807,22831,23425,23428,23570,23611,23668,23667,24068,24192,24194,24521,25097,25168,27669,27702,27715,27711,27707,29358,29360,29578,31160,32906,38430,20238,20248,20268,20213,20244,20209,20224,20215,20232,20253,20226,20229,20258,20243,20228,20212,20242,20913,21011,21001,21008,21158,21282,21279,21325,21386,21511,22241,22239,22318,22314,22324,22844,22912,22908,22917,22907,22910,22903,22911,23382,23573,23589,23676,23674,23675,23678,24031,24181,24196,24322,24346,24436,24533,24532,24527,25180,25182,25188,25185,25190,25186,25177,25184,25178,25189,26095,26094,26430,26425,26424,26427,26426,26431,26428,26419,27672,27718,27730,27740,27727,27722,27732,27723,27724,28785,29278,29364,29365,29582,29994,30335,31349,32593,33400,33404,33408,33405,33407,34381,35198,37017,37015,37016,37019,37012,38434,38436,38432,38435,20310,20283,20322,20297,20307,20324,20286,20327,20306,20319,20289,20312,20269,20275,20287,20321,20879,20921,21020,21022,21025,21165,21166,21257,21347,21362,21390,21391,21552,21559,21546,21588,21573,21529,21532,21541,21528,21565,21583,21569,21544,21540,21575,22254,22247,22245,22337,22341,22348,22345,22347,22354,22790,22848,22950,22936,22944,22935,22926,22946,22928,22927,22951,22945,23438,23442,23592,23594,23693,23695,23688,23691,23689,23698,23690,23686,23699,23701,24032,24074,24078,24203,24201,24204,24200,24205,24325,24349,24440,24438,24530,24529,24528,24557,24552,24558,24563,24545,24548,24547,24570,24559,24567,24571,24576,24564,25146,25219,25228,25230,25231,25236,25223,25201,25211,25210,25200,25217,25224,25207,25213,25202,25204,25911,26096,26100,26099,26098,26101,26437,26439,26457,26453,26444,26440,26461,26445,26458,26443,27600,27673,27674,27768,27751,27755,27780,27787,27791,27761,27759,27753,27802,27757,27783,27797,27804,27750,27763,27749,27771,27790,28788,28794,29283,29375,29373,29379,29382,29377,29370,29381,29589,29591,29587,29588,29586,30010,30009,30100,30101,30337,31037,32820,32917,32921,32912,32914,32924,33424,33423,33413,33422,33425,33427,33418,33411,33412,35960,36809,36799,37023,37025,37029,37022,37031,37024,38448,38440,38447,38445,20019,20376,20348,20357,20349,20352,20359,20342,20340,20361,20356,20343,20300,20375,20330,20378,20345,20353,20344,20368,20380,20372,20382,20370,20354,20373,20331,20334,20894,20924,20926,21045,21042,21043,21062,21041,21180,21258,21259,21308,21394,21396,21639,21631,21633,21649,21634,21640,21611,21626,21630,21605,21612,21620,21606,21645,21615,21601,21600,21656,21603,21607,21604,22263,22265,22383,22386,22381,22379,22385,22384,22390,22400,22389,22395,22387,22388,22370,22376,22397,22796,22853,22965,22970,22991,22990,22962,22988,22977,22966,22972,22979,22998,22961,22973,22976,22984,22964,22983,23394,23397,23443,23445,23620,23623,23726,23716,23712,23733,23727,23720,23724,23711,23715,23725,23714,23722,23719,23709,23717,23734,23728,23718,24087,24084,24089,24360,24354,24355,24356,24404,24450,24446,24445,24542,24549,24621,24614,24601,24626,24587,24628,24586,24599,24627,24602,24606,24620,24610,24589,24592,24622,24595,24593,24588,24585,24604,25108,25149,25261,25268,25297,25278,25258,25270,25290,25262,25267,25263,25275,25257,25264,25272,25917,26024,26043,26121,26108,26116,26130,26120,26107,26115,26123,26125,26117,26109,26129,26128,26358,26378,26501,26476,26510,26514,26486,26491,26520,26502,26500,26484,26509,26508,26490,26527,26513,26521,26499,26493,26497,26488,26489,26516,27429,27520,27518,27614,27677,27795,27884,27883,27886,27865,27830,27860,27821,27879,27831,27856,27842,27834,27843,27846,27885,27890,27858,27869,27828,27786,27805,27776,27870,27840,27952,27853,27847,27824,27897,27855,27881,27857,28820,28824,28805,28819,28806,28804,28817,28822,28802,28826,28803,29290,29398,29387,29400,29385,29404,29394,29396,29402,29388,29393,29604,29601,29613,29606,29602,29600,29612,29597,29917,29928,30015,30016,30014,30092,30104,30383,30451,30449,30448,30453,30712,30716,30713,30715,30714,30711,31042,31039,31173,31352,31355,31483,31861,31997,32821,32911,32942,32931,32952,32949,32941,33312,33440,33472,33451,33434,33432,33435,33461,33447,33454,33468,33438,33466,33460,33448,33441,33449,33474,33444,33475,33462,33442,34416,34415,34413,34414,35926,36818,36811,36819,36813,36822,36821,36823,37042,37044,37039,37043,37040,38457,38461,38460,38458,38467,20429,20421,20435,20402,20425,20427,20417,20436,20444,20441,20411,20403,20443,20423,20438,20410,20416,20409,20460,21060,21065,21184,21186,21309,21372,21399,21398,21401,21400,21690,21665,21677,21669,21711,21699,33549,21687,21678,21718,21686,21701,21702,21664,21616,21692,21666,21694,21618,21726,21680,22453,22430,22431,22436,22412,22423,22429,22427,22420,22424,22415,22425,22437,22426,22421,22772,22797,22867,23009,23006,23022,23040,23025,23005,23034,23037,23036,23030,23012,23026,23031,23003,23017,23027,23029,23008,23038,23028,23021,23464,23628,23760,23768,23756,23767,23755,23771,23774,23770,23753,23751,23754,23766,23763,23764,23759,23752,23750,23758,23775,23800,24057,24097,24098,24099,24096,24100,24240,24228,24226,24219,24227,24229,24327,24366,24406,24454,24631,24633,24660,24690,24670,24645,24659,24647,24649,24667,24652,24640,24642,24671,24612,24644,24664,24678,24686,25154,25155,25295,25357,25355,25333,25358,25347,25323,25337,25359,25356,25336,25334,25344,25363,25364,25338,25365,25339,25328,25921,25923,26026,26047,26166,26145,26162,26165,26140,26150,26146,26163,26155,26170,26141,26164,26169,26158,26383,26384,26561,26610,26568,26554,26588,26555,26616,26584,26560,26551,26565,26603,26596,26591,26549,26573,26547,26615,26614,26606,26595,26562,26553,26574,26599,26608,26546,26620,26566,26605,26572,26542,26598,26587,26618,26569,26570,26563,26602,26571,27432,27522,27524,27574,27606,27608,27616,27680,27681,27944,27956,27949,27935,27964,27967,27922,27914,27866,27955,27908,27929,27962,27930,27921,27904,27933,27970,27905,27928,27959,27907,27919,27968,27911,27936,27948,27912,27938,27913,27920,28855,28831,28862,28849,28848,28833,28852,28853,28841,29249,29257,29258,29292,29296,29299,29294,29386,29412,29416,29419,29407,29418,29414,29411,29573,29644,29634,29640,29637,29625,29622,29621,29620,29675,29631,29639,29630,29635,29638,29624,29643,29932,29934,29998,30023,30024,30119,30122,30329,30404,30472,30467,30468,30469,30474,30455,30459,30458,30695,30696,30726,30737,30738,30725,30736,30735,30734,30729,30723,30739,31050,31052,31051,31045,31044,31189,31181,31183,31190,31182,31360,31358,31441,31488,31489,31866,31864,31865,31871,31872,31873,32003,32008,32001,32600,32657,32653,32702,32775,32782,32783,32788,32823,32984,32967,32992,32977,32968,32962,32976,32965,32995,32985,32988,32970,32981,32969,32975,32983,32998,32973,33279,33313,33428,33497,33534,33529,33543,33512,33536,33493,33594,33515,33494,33524,33516,33505,33522,33525,33548,33531,33526,33520,33514,33508,33504,33530,33523,33517,34423,34420,34428,34419,34881,34894,34919,34922,34921,35283,35332,35335,36210,36835,36833,36846,36832,37105,37053,37055,37077,37061,37054,37063,37067,37064,37332,37331,38484,38479,38481,38483,38474,38478,20510,20485,20487,20499,20514,20528,20507,20469,20468,20531,20535,20524,20470,20471,20503,20508,20512,20519,20533,20527,20529,20494,20826,20884,20883,20938,20932,20933,20936,20942,21089,21082,21074,21086,21087,21077,21090,21197,21262,21406,21798,21730,21783,21778,21735,21747,21732,21786,21759,21764,21768,21739,21777,21765,21745,21770,21755,21751,21752,21728,21774,21763,21771,22273,22274,22476,22578,22485,22482,22458,22470,22461,22460,22456,22454,22463,22471,22480,22457,22465,22798,22858,23065,23062,23085,23086,23061,23055,23063,23050,23070,23091,23404,23463,23469,23468,23555,23638,23636,23788,23807,23790,23793,23799,23808,23801,24105,24104,24232,24238,24234,24236,24371,24368,24423,24669,24666,24679,24641,24738,24712,24704,24722,24705,24733,24707,24725,24731,24727,24711,24732,24718,25113,25158,25330,25360,25430,25388,25412,25413,25398,25411,25572,25401,25419,25418,25404,25385,25409,25396,25432,25428,25433,25389,25415,25395,25434,25425,25400,25431,25408,25416,25930,25926,26054,26051,26052,26050,26186,26207,26183,26193,26386,26387,26655,26650,26697,26674,26675,26683,26699,26703,26646,26673,26652,26677,26667,26669,26671,26702,26692,26676,26653,26642,26644,26662,26664,26670,26701,26682,26661,26656,27436,27439,27437,27441,27444,27501,32898,27528,27622,27620,27624,27619,27618,27623,27685,28026,28003,28004,28022,27917,28001,28050,27992,28002,28013,28015,28049,28045,28143,28031,28038,27998,28007,28e3,28055,28016,28028,27999,28034,28056,27951,28008,28043,28030,28032,28036,27926,28035,28027,28029,28021,28048,28892,28883,28881,28893,28875,32569,28898,28887,28882,28894,28896,28884,28877,28869,28870,28871,28890,28878,28897,29250,29304,29303,29302,29440,29434,29428,29438,29430,29427,29435,29441,29651,29657,29669,29654,29628,29671,29667,29673,29660,29650,29659,29652,29661,29658,29655,29656,29672,29918,29919,29940,29941,29985,30043,30047,30128,30145,30139,30148,30144,30143,30134,30138,30346,30409,30493,30491,30480,30483,30482,30499,30481,30485,30489,30490,30498,30503,30755,30764,30754,30773,30767,30760,30766,30763,30753,30761,30771,30762,30769,31060,31067,31055,31068,31059,31058,31057,31211,31212,31200,31214,31213,31210,31196,31198,31197,31366,31369,31365,31371,31372,31370,31367,31448,31504,31492,31507,31493,31503,31496,31498,31502,31497,31506,31876,31889,31882,31884,31880,31885,31877,32030,32029,32017,32014,32024,32022,32019,32031,32018,32015,32012,32604,32609,32606,32608,32605,32603,32662,32658,32707,32706,32704,32790,32830,32825,33018,33010,33017,33013,33025,33019,33024,33281,33327,33317,33587,33581,33604,33561,33617,33573,33622,33599,33601,33574,33564,33570,33602,33614,33563,33578,33544,33596,33613,33558,33572,33568,33591,33583,33577,33607,33605,33612,33619,33566,33580,33611,33575,33608,34387,34386,34466,34472,34454,34445,34449,34462,34439,34455,34438,34443,34458,34437,34469,34457,34465,34471,34453,34456,34446,34461,34448,34452,34883,34884,34925,34933,34934,34930,34944,34929,34943,34927,34947,34942,34932,34940,35346,35911,35927,35963,36004,36003,36214,36216,36277,36279,36278,36561,36563,36862,36853,36866,36863,36859,36868,36860,36854,37078,37088,37081,37082,37091,37087,37093,37080,37083,37079,37084,37092,37200,37198,37199,37333,37346,37338,38492,38495,38588,39139,39647,39727,20095,20592,20586,20577,20574,20576,20563,20555,20573,20594,20552,20557,20545,20571,20554,20578,20501,20549,20575,20585,20587,20579,20580,20550,20544,20590,20595,20567,20561,20944,21099,21101,21100,21102,21206,21203,21293,21404,21877,21878,21820,21837,21840,21812,21802,21841,21858,21814,21813,21808,21842,21829,21772,21810,21861,21838,21817,21832,21805,21819,21824,21835,22282,22279,22523,22548,22498,22518,22492,22516,22528,22509,22525,22536,22520,22539,22515,22479,22535,22510,22499,22514,22501,22508,22497,22542,22524,22544,22503,22529,22540,22513,22505,22512,22541,22532,22876,23136,23128,23125,23143,23134,23096,23093,23149,23120,23135,23141,23148,23123,23140,23127,23107,23133,23122,23108,23131,23112,23182,23102,23117,23097,23116,23152,23145,23111,23121,23126,23106,23132,23410,23406,23489,23488,23641,23838,23819,23837,23834,23840,23820,23848,23821,23846,23845,23823,23856,23826,23843,23839,23854,24126,24116,24241,24244,24249,24242,24243,24374,24376,24475,24470,24479,24714,24720,24710,24766,24752,24762,24787,24788,24783,24804,24793,24797,24776,24753,24795,24759,24778,24767,24771,24781,24768,25394,25445,25482,25474,25469,25533,25502,25517,25501,25495,25515,25486,25455,25479,25488,25454,25519,25461,25500,25453,25518,25468,25508,25403,25503,25464,25477,25473,25489,25485,25456,25939,26061,26213,26209,26203,26201,26204,26210,26392,26745,26759,26768,26780,26733,26734,26798,26795,26966,26735,26787,26796,26793,26741,26740,26802,26767,26743,26770,26748,26731,26738,26794,26752,26737,26750,26779,26774,26763,26784,26761,26788,26744,26747,26769,26764,26762,26749,27446,27443,27447,27448,27537,27535,27533,27534,27532,27690,28096,28075,28084,28083,28276,28076,28137,28130,28087,28150,28116,28160,28104,28128,28127,28118,28094,28133,28124,28125,28123,28148,28106,28093,28141,28144,28090,28117,28098,28111,28105,28112,28146,28115,28157,28119,28109,28131,28091,28922,28941,28919,28951,28916,28940,28912,28932,28915,28944,28924,28927,28934,28947,28928,28920,28918,28939,28930,28942,29310,29307,29308,29311,29469,29463,29447,29457,29464,29450,29448,29439,29455,29470,29576,29686,29688,29685,29700,29697,29693,29703,29696,29690,29692,29695,29708,29707,29684,29704,30052,30051,30158,30162,30159,30155,30156,30161,30160,30351,30345,30419,30521,30511,30509,30513,30514,30516,30515,30525,30501,30523,30517,30792,30802,30793,30797,30794,30796,30758,30789,30800,31076,31079,31081,31082,31075,31083,31073,31163,31226,31224,31222,31223,31375,31380,31376,31541,31559,31540,31525,31536,31522,31524,31539,31512,31530,31517,31537,31531,31533,31535,31538,31544,31514,31523,31892,31896,31894,31907,32053,32061,32056,32054,32058,32069,32044,32041,32065,32071,32062,32063,32074,32059,32040,32611,32661,32668,32669,32667,32714,32715,32717,32720,32721,32711,32719,32713,32799,32798,32795,32839,32835,32840,33048,33061,33049,33051,33069,33055,33068,33054,33057,33045,33063,33053,33058,33297,33336,33331,33338,33332,33330,33396,33680,33699,33704,33677,33658,33651,33700,33652,33679,33665,33685,33689,33653,33684,33705,33661,33667,33676,33693,33691,33706,33675,33662,33701,33711,33672,33687,33712,33663,33702,33671,33710,33654,33690,34393,34390,34495,34487,34498,34497,34501,34490,34480,34504,34489,34483,34488,34508,34484,34491,34492,34499,34493,34494,34898,34953,34965,34984,34978,34986,34970,34961,34977,34975,34968,34983,34969,34971,34967,34980,34988,34956,34963,34958,35202,35286,35289,35285,35376,35367,35372,35358,35897,35899,35932,35933,35965,36005,36221,36219,36217,36284,36290,36281,36287,36289,36568,36574,36573,36572,36567,36576,36577,36900,36875,36881,36892,36876,36897,37103,37098,37104,37108,37106,37107,37076,37099,37100,37097,37206,37208,37210,37203,37205,37356,37364,37361,37363,37368,37348,37369,37354,37355,37367,37352,37358,38266,38278,38280,38524,38509,38507,38513,38511,38591,38762,38916,39141,39319,20635,20629,20628,20638,20619,20643,20611,20620,20622,20637,20584,20636,20626,20610,20615,20831,20948,21266,21265,21412,21415,21905,21928,21925,21933,21879,22085,21922,21907,21896,21903,21941,21889,21923,21906,21924,21885,21900,21926,21887,21909,21921,21902,22284,22569,22583,22553,22558,22567,22563,22568,22517,22600,22565,22556,22555,22579,22591,22582,22574,22585,22584,22573,22572,22587,22881,23215,23188,23199,23162,23202,23198,23160,23206,23164,23205,23212,23189,23214,23095,23172,23178,23191,23171,23179,23209,23163,23165,23180,23196,23183,23187,23197,23530,23501,23499,23508,23505,23498,23502,23564,23600,23863,23875,23915,23873,23883,23871,23861,23889,23886,23893,23859,23866,23890,23869,23857,23897,23874,23865,23881,23864,23868,23858,23862,23872,23877,24132,24129,24408,24486,24485,24491,24777,24761,24780,24802,24782,24772,24852,24818,24842,24854,24837,24821,24851,24824,24828,24830,24769,24835,24856,24861,24848,24831,24836,24843,25162,25492,25521,25520,25550,25573,25576,25583,25539,25757,25587,25546,25568,25590,25557,25586,25589,25697,25567,25534,25565,25564,25540,25560,25555,25538,25543,25548,25547,25544,25584,25559,25561,25906,25959,25962,25956,25948,25960,25957,25996,26013,26014,26030,26064,26066,26236,26220,26235,26240,26225,26233,26218,26226,26369,26892,26835,26884,26844,26922,26860,26858,26865,26895,26838,26871,26859,26852,26870,26899,26896,26867,26849,26887,26828,26888,26992,26804,26897,26863,26822,26900,26872,26832,26877,26876,26856,26891,26890,26903,26830,26824,26845,26846,26854,26868,26833,26886,26836,26857,26901,26917,26823,27449,27451,27455,27452,27540,27543,27545,27541,27581,27632,27634,27635,27696,28156,28230,28231,28191,28233,28296,28220,28221,28229,28258,28203,28223,28225,28253,28275,28188,28211,28235,28224,28241,28219,28163,28206,28254,28264,28252,28257,28209,28200,28256,28273,28267,28217,28194,28208,28243,28261,28199,28280,28260,28279,28245,28281,28242,28262,28213,28214,28250,28960,28958,28975,28923,28974,28977,28963,28965,28962,28978,28959,28968,28986,28955,29259,29274,29320,29321,29318,29317,29323,29458,29451,29488,29474,29489,29491,29479,29490,29485,29478,29475,29493,29452,29742,29740,29744,29739,29718,29722,29729,29741,29745,29732,29731,29725,29737,29728,29746,29947,29999,30063,30060,30183,30170,30177,30182,30173,30175,30180,30167,30357,30354,30426,30534,30535,30532,30541,30533,30538,30542,30539,30540,30686,30700,30816,30820,30821,30812,30829,30833,30826,30830,30832,30825,30824,30814,30818,31092,31091,31090,31088,31234,31242,31235,31244,31236,31385,31462,31460,31562,31547,31556,31560,31564,31566,31552,31576,31557,31906,31902,31912,31905,32088,32111,32099,32083,32086,32103,32106,32079,32109,32092,32107,32082,32084,32105,32081,32095,32078,32574,32575,32613,32614,32674,32672,32673,32727,32849,32847,32848,33022,32980,33091,33098,33106,33103,33095,33085,33101,33082,33254,33262,33271,33272,33273,33284,33340,33341,33343,33397,33595,33743,33785,33827,33728,33768,33810,33767,33764,33788,33782,33808,33734,33736,33771,33763,33727,33793,33757,33765,33752,33791,33761,33739,33742,33750,33781,33737,33801,33807,33758,33809,33798,33730,33779,33749,33786,33735,33745,33770,33811,33731,33772,33774,33732,33787,33751,33762,33819,33755,33790,34520,34530,34534,34515,34531,34522,34538,34525,34539,34524,34540,34537,34519,34536,34513,34888,34902,34901,35002,35031,35001,35e3,35008,35006,34998,35004,34999,35005,34994,35073,35017,35221,35224,35223,35293,35290,35291,35406,35405,35385,35417,35392,35415,35416,35396,35397,35410,35400,35409,35402,35404,35407,35935,35969,35968,36026,36030,36016,36025,36021,36228,36224,36233,36312,36307,36301,36295,36310,36316,36303,36309,36313,36296,36311,36293,36591,36599,36602,36601,36582,36590,36581,36597,36583,36584,36598,36587,36593,36588,36596,36585,36909,36916,36911,37126,37164,37124,37119,37116,37128,37113,37115,37121,37120,37127,37125,37123,37217,37220,37215,37218,37216,37377,37386,37413,37379,37402,37414,37391,37388,37376,37394,37375,37373,37382,37380,37415,37378,37404,37412,37401,37399,37381,37398,38267,38285,38284,38288,38535,38526,38536,38537,38531,38528,38594,38600,38595,38641,38640,38764,38768,38766,38919,39081,39147,40166,40697,20099,20100,20150,20669,20671,20678,20654,20676,20682,20660,20680,20674,20656,20673,20666,20657,20683,20681,20662,20664,20951,21114,21112,21115,21116,21955,21979,21964,21968,21963,21962,21981,21952,21972,21956,21993,21951,21970,21901,21967,21973,21986,21974,21960,22002,21965,21977,21954,22292,22611,22632,22628,22607,22605,22601,22639,22613,22606,22621,22617,22629,22619,22589,22627,22641,22780,23239,23236,23243,23226,23224,23217,23221,23216,23231,23240,23227,23238,23223,23232,23242,23220,23222,23245,23225,23184,23510,23512,23513,23583,23603,23921,23907,23882,23909,23922,23916,23902,23912,23911,23906,24048,24143,24142,24138,24141,24139,24261,24268,24262,24267,24263,24384,24495,24493,24823,24905,24906,24875,24901,24886,24882,24878,24902,24879,24911,24873,24896,25120,37224,25123,25125,25124,25541,25585,25579,25616,25618,25609,25632,25636,25651,25667,25631,25621,25624,25657,25655,25634,25635,25612,25638,25648,25640,25665,25653,25647,25610,25626,25664,25637,25639,25611,25575,25627,25646,25633,25614,25967,26002,26067,26246,26252,26261,26256,26251,26250,26265,26260,26232,26400,26982,26975,26936,26958,26978,26993,26943,26949,26986,26937,26946,26967,26969,27002,26952,26953,26933,26988,26931,26941,26981,26864,27e3,26932,26985,26944,26991,26948,26998,26968,26945,26996,26956,26939,26955,26935,26972,26959,26961,26930,26962,26927,27003,26940,27462,27461,27459,27458,27464,27457,27547,64013,27643,27644,27641,27639,27640,28315,28374,28360,28303,28352,28319,28307,28308,28320,28337,28345,28358,28370,28349,28353,28318,28361,28343,28336,28365,28326,28367,28338,28350,28355,28380,28376,28313,28306,28302,28301,28324,28321,28351,28339,28368,28362,28311,28334,28323,28999,29012,29010,29027,29024,28993,29021,29026,29042,29048,29034,29025,28994,29016,28995,29003,29040,29023,29008,29011,28996,29005,29018,29263,29325,29324,29329,29328,29326,29500,29506,29499,29498,29504,29514,29513,29764,29770,29771,29778,29777,29783,29760,29775,29776,29774,29762,29766,29773,29780,29921,29951,29950,29949,29981,30073,30071,27011,30191,30223,30211,30199,30206,30204,30201,30200,30224,30203,30198,30189,30197,30205,30361,30389,30429,30549,30559,30560,30546,30550,30554,30569,30567,30548,30553,30573,30688,30855,30874,30868,30863,30852,30869,30853,30854,30881,30851,30841,30873,30848,30870,30843,31100,31106,31101,31097,31249,31256,31257,31250,31255,31253,31266,31251,31259,31248,31395,31394,31390,31467,31590,31588,31597,31604,31593,31602,31589,31603,31601,31600,31585,31608,31606,31587,31922,31924,31919,32136,32134,32128,32141,32127,32133,32122,32142,32123,32131,32124,32140,32148,32132,32125,32146,32621,32619,32615,32616,32620,32678,32677,32679,32731,32732,32801,33124,33120,33143,33116,33129,33115,33122,33138,26401,33118,33142,33127,33135,33092,33121,33309,33353,33348,33344,33346,33349,34033,33855,33878,33910,33913,33935,33933,33893,33873,33856,33926,33895,33840,33869,33917,33882,33881,33908,33907,33885,34055,33886,33847,33850,33844,33914,33859,33912,33842,33861,33833,33753,33867,33839,33858,33837,33887,33904,33849,33870,33868,33874,33903,33989,33934,33851,33863,33846,33843,33896,33918,33860,33835,33888,33876,33902,33872,34571,34564,34551,34572,34554,34518,34549,34637,34552,34574,34569,34561,34550,34573,34565,35030,35019,35021,35022,35038,35035,35034,35020,35024,35205,35227,35295,35301,35300,35297,35296,35298,35292,35302,35446,35462,35455,35425,35391,35447,35458,35460,35445,35459,35457,35444,35450,35900,35915,35914,35941,35940,35942,35974,35972,35973,36044,36200,36201,36241,36236,36238,36239,36237,36243,36244,36240,36242,36336,36320,36332,36337,36334,36304,36329,36323,36322,36327,36338,36331,36340,36614,36607,36609,36608,36613,36615,36616,36610,36619,36946,36927,36932,36937,36925,37136,37133,37135,37137,37142,37140,37131,37134,37230,37231,37448,37458,37424,37434,37478,37427,37477,37470,37507,37422,37450,37446,37485,37484,37455,37472,37479,37487,37430,37473,37488,37425,37460,37475,37456,37490,37454,37459,37452,37462,37426,38303,38300,38302,38299,38546,38547,38545,38551,38606,38650,38653,38648,38645,38771,38775,38776,38770,38927,38925,38926,39084,39158,39161,39343,39346,39344,39349,39597,39595,39771,40170,40173,40167,40576,40701,20710,20692,20695,20712,20723,20699,20714,20701,20708,20691,20716,20720,20719,20707,20704,20952,21120,21121,21225,21227,21296,21420,22055,22037,22028,22034,22012,22031,22044,22017,22035,22018,22010,22045,22020,22015,22009,22665,22652,22672,22680,22662,22657,22655,22644,22667,22650,22663,22673,22670,22646,22658,22664,22651,22676,22671,22782,22891,23260,23278,23269,23253,23274,23258,23277,23275,23283,23266,23264,23259,23276,23262,23261,23257,23272,23263,23415,23520,23523,23651,23938,23936,23933,23942,23930,23937,23927,23946,23945,23944,23934,23932,23949,23929,23935,24152,24153,24147,24280,24273,24279,24270,24284,24277,24281,24274,24276,24388,24387,24431,24502,24876,24872,24897,24926,24945,24947,24914,24915,24946,24940,24960,24948,24916,24954,24923,24933,24891,24938,24929,24918,25129,25127,25131,25643,25677,25691,25693,25716,25718,25714,25715,25725,25717,25702,25766,25678,25730,25694,25692,25675,25683,25696,25680,25727,25663,25708,25707,25689,25701,25719,25971,26016,26273,26272,26271,26373,26372,26402,27057,27062,27081,27040,27086,27030,27056,27052,27068,27025,27033,27022,27047,27021,27049,27070,27055,27071,27076,27069,27044,27092,27065,27082,27034,27087,27059,27027,27050,27041,27038,27097,27031,27024,27074,27061,27045,27078,27466,27469,27467,27550,27551,27552,27587,27588,27646,28366,28405,28401,28419,28453,28408,28471,28411,28462,28425,28494,28441,28442,28455,28440,28475,28434,28397,28426,28470,28531,28409,28398,28461,28480,28464,28476,28469,28395,28423,28430,28483,28421,28413,28406,28473,28444,28412,28474,28447,28429,28446,28424,28449,29063,29072,29065,29056,29061,29058,29071,29051,29062,29057,29079,29252,29267,29335,29333,29331,29507,29517,29521,29516,29794,29811,29809,29813,29810,29799,29806,29952,29954,29955,30077,30096,30230,30216,30220,30229,30225,30218,30228,30392,30593,30588,30597,30594,30574,30592,30575,30590,30595,30898,30890,30900,30893,30888,30846,30891,30878,30885,30880,30892,30882,30884,31128,31114,31115,31126,31125,31124,31123,31127,31112,31122,31120,31275,31306,31280,31279,31272,31270,31400,31403,31404,31470,31624,31644,31626,31633,31632,31638,31629,31628,31643,31630,31621,31640,21124,31641,31652,31618,31931,31935,31932,31930,32167,32183,32194,32163,32170,32193,32192,32197,32157,32206,32196,32198,32203,32204,32175,32185,32150,32188,32159,32166,32174,32169,32161,32201,32627,32738,32739,32741,32734,32804,32861,32860,33161,33158,33155,33159,33165,33164,33163,33301,33943,33956,33953,33951,33978,33998,33986,33964,33966,33963,33977,33972,33985,33997,33962,33946,33969,34e3,33949,33959,33979,33954,33940,33991,33996,33947,33961,33967,33960,34006,33944,33974,33999,33952,34007,34004,34002,34011,33968,33937,34401,34611,34595,34600,34667,34624,34606,34590,34593,34585,34587,34627,34604,34625,34622,34630,34592,34610,34602,34605,34620,34578,34618,34609,34613,34626,34598,34599,34616,34596,34586,34608,34577,35063,35047,35057,35058,35066,35070,35054,35068,35062,35067,35056,35052,35051,35229,35233,35231,35230,35305,35307,35304,35499,35481,35467,35474,35471,35478,35901,35944,35945,36053,36047,36055,36246,36361,36354,36351,36365,36349,36362,36355,36359,36358,36357,36350,36352,36356,36624,36625,36622,36621,37155,37148,37152,37154,37151,37149,37146,37156,37153,37147,37242,37234,37241,37235,37541,37540,37494,37531,37498,37536,37524,37546,37517,37542,37530,37547,37497,37527,37503,37539,37614,37518,37506,37525,37538,37501,37512,37537,37514,37510,37516,37529,37543,37502,37511,37545,37533,37515,37421,38558,38561,38655,38744,38781,38778,38782,38787,38784,38786,38779,38788,38785,38783,38862,38861,38934,39085,39086,39170,39168,39175,39325,39324,39363,39353,39355,39354,39362,39357,39367,39601,39651,39655,39742,39743,39776,39777,39775,40177,40178,40181,40615,20735,20739,20784,20728,20742,20743,20726,20734,20747,20748,20733,20746,21131,21132,21233,21231,22088,22082,22092,22069,22081,22090,22089,22086,22104,22106,22080,22067,22077,22060,22078,22072,22058,22074,22298,22699,22685,22705,22688,22691,22703,22700,22693,22689,22783,23295,23284,23293,23287,23286,23299,23288,23298,23289,23297,23303,23301,23311,23655,23961,23959,23967,23954,23970,23955,23957,23968,23964,23969,23962,23966,24169,24157,24160,24156,32243,24283,24286,24289,24393,24498,24971,24963,24953,25009,25008,24994,24969,24987,24979,25007,25005,24991,24978,25002,24993,24973,24934,25011,25133,25710,25712,25750,25760,25733,25751,25756,25743,25739,25738,25740,25763,25759,25704,25777,25752,25974,25978,25977,25979,26034,26035,26293,26288,26281,26290,26295,26282,26287,27136,27142,27159,27109,27128,27157,27121,27108,27168,27135,27116,27106,27163,27165,27134,27175,27122,27118,27156,27127,27111,27200,27144,27110,27131,27149,27132,27115,27145,27140,27160,27173,27151,27126,27174,27143,27124,27158,27473,27557,27555,27554,27558,27649,27648,27647,27650,28481,28454,28542,28551,28614,28562,28557,28553,28556,28514,28495,28549,28506,28566,28534,28524,28546,28501,28530,28498,28496,28503,28564,28563,28509,28416,28513,28523,28541,28519,28560,28499,28555,28521,28543,28565,28515,28535,28522,28539,29106,29103,29083,29104,29088,29082,29097,29109,29085,29093,29086,29092,29089,29098,29084,29095,29107,29336,29338,29528,29522,29534,29535,29536,29533,29531,29537,29530,29529,29538,29831,29833,29834,29830,29825,29821,29829,29832,29820,29817,29960,29959,30078,30245,30238,30233,30237,30236,30243,30234,30248,30235,30364,30365,30366,30363,30605,30607,30601,30600,30925,30907,30927,30924,30929,30926,30932,30920,30915,30916,30921,31130,31137,31136,31132,31138,31131,27510,31289,31410,31412,31411,31671,31691,31678,31660,31694,31663,31673,31690,31669,31941,31944,31948,31947,32247,32219,32234,32231,32215,32225,32259,32250,32230,32246,32241,32240,32238,32223,32630,32684,32688,32685,32749,32747,32746,32748,32742,32744,32868,32871,33187,33183,33182,33173,33186,33177,33175,33302,33359,33363,33362,33360,33358,33361,34084,34107,34063,34048,34089,34062,34057,34061,34079,34058,34087,34076,34043,34091,34042,34056,34060,34036,34090,34034,34069,34039,34027,34035,34044,34066,34026,34025,34070,34046,34088,34077,34094,34050,34045,34078,34038,34097,34086,34023,34024,34032,34031,34041,34072,34080,34096,34059,34073,34095,34402,34646,34659,34660,34679,34785,34675,34648,34644,34651,34642,34657,34650,34641,34654,34669,34666,34640,34638,34655,34653,34671,34668,34682,34670,34652,34661,34639,34683,34677,34658,34663,34665,34906,35077,35084,35092,35083,35095,35096,35097,35078,35094,35089,35086,35081,35234,35236,35235,35309,35312,35308,35535,35526,35512,35539,35537,35540,35541,35515,35543,35518,35520,35525,35544,35523,35514,35517,35545,35902,35917,35983,36069,36063,36057,36072,36058,36061,36071,36256,36252,36257,36251,36384,36387,36389,36388,36398,36373,36379,36374,36369,36377,36390,36391,36372,36370,36376,36371,36380,36375,36378,36652,36644,36632,36634,36640,36643,36630,36631,36979,36976,36975,36967,36971,37167,37163,37161,37162,37170,37158,37166,37253,37254,37258,37249,37250,37252,37248,37584,37571,37572,37568,37593,37558,37583,37617,37599,37592,37609,37591,37597,37580,37615,37570,37608,37578,37576,37582,37606,37581,37589,37577,37600,37598,37607,37585,37587,37557,37601,37574,37556,38268,38316,38315,38318,38320,38564,38562,38611,38661,38664,38658,38746,38794,38798,38792,38864,38863,38942,38941,38950,38953,38952,38944,38939,38951,39090,39176,39162,39185,39188,39190,39191,39189,39388,39373,39375,39379,39380,39374,39369,39382,39384,39371,39383,39372,39603,39660,39659,39667,39666,39665,39750,39747,39783,39796,39793,39782,39798,39797,39792,39784,39780,39788,40188,40186,40189,40191,40183,40199,40192,40185,40187,40200,40197,40196,40579,40659,40719,40720,20764,20755,20759,20762,20753,20958,21300,21473,22128,22112,22126,22131,22118,22115,22125,22130,22110,22135,22300,22299,22728,22717,22729,22719,22714,22722,22716,22726,23319,23321,23323,23329,23316,23315,23312,23318,23336,23322,23328,23326,23535,23980,23985,23977,23975,23989,23984,23982,23978,23976,23986,23981,23983,23988,24167,24168,24166,24175,24297,24295,24294,24296,24293,24395,24508,24989,25e3,24982,25029,25012,25030,25025,25036,25018,25023,25016,24972,25815,25814,25808,25807,25801,25789,25737,25795,25819,25843,25817,25907,25983,25980,26018,26312,26302,26304,26314,26315,26319,26301,26299,26298,26316,26403,27188,27238,27209,27239,27186,27240,27198,27229,27245,27254,27227,27217,27176,27226,27195,27199,27201,27242,27236,27216,27215,27220,27247,27241,27232,27196,27230,27222,27221,27213,27214,27206,27477,27476,27478,27559,27562,27563,27592,27591,27652,27651,27654,28589,28619,28579,28615,28604,28622,28616,28510,28612,28605,28574,28618,28584,28676,28581,28590,28602,28588,28586,28623,28607,28600,28578,28617,28587,28621,28591,28594,28592,29125,29122,29119,29112,29142,29120,29121,29131,29140,29130,29127,29135,29117,29144,29116,29126,29146,29147,29341,29342,29545,29542,29543,29548,29541,29547,29546,29823,29850,29856,29844,29842,29845,29857,29963,30080,30255,30253,30257,30269,30259,30268,30261,30258,30256,30395,30438,30618,30621,30625,30620,30619,30626,30627,30613,30617,30615,30941,30953,30949,30954,30942,30947,30939,30945,30946,30957,30943,30944,31140,31300,31304,31303,31414,31416,31413,31409,31415,31710,31715,31719,31709,31701,31717,31706,31720,31737,31700,31722,31714,31708,31723,31704,31711,31954,31956,31959,31952,31953,32274,32289,32279,32268,32287,32288,32275,32270,32284,32277,32282,32290,32267,32271,32278,32269,32276,32293,32292,32579,32635,32636,32634,32689,32751,32810,32809,32876,33201,33190,33198,33209,33205,33195,33200,33196,33204,33202,33207,33191,33266,33365,33366,33367,34134,34117,34155,34125,34131,34145,34136,34112,34118,34148,34113,34146,34116,34129,34119,34147,34110,34139,34161,34126,34158,34165,34133,34151,34144,34188,34150,34141,34132,34149,34156,34403,34405,34404,34715,34703,34711,34707,34706,34696,34689,34710,34712,34681,34695,34723,34693,34704,34705,34717,34692,34708,34716,34714,34697,35102,35110,35120,35117,35118,35111,35121,35106,35113,35107,35119,35116,35103,35313,35552,35554,35570,35572,35573,35549,35604,35556,35551,35568,35528,35550,35553,35560,35583,35567,35579,35985,35986,35984,36085,36078,36081,36080,36083,36204,36206,36261,36263,36403,36414,36408,36416,36421,36406,36412,36413,36417,36400,36415,36541,36662,36654,36661,36658,36665,36663,36660,36982,36985,36987,36998,37114,37171,37173,37174,37267,37264,37265,37261,37263,37671,37662,37640,37663,37638,37647,37754,37688,37692,37659,37667,37650,37633,37702,37677,37646,37645,37579,37661,37626,37669,37651,37625,37623,37684,37634,37668,37631,37673,37689,37685,37674,37652,37644,37643,37630,37641,37632,37627,37654,38332,38349,38334,38329,38330,38326,38335,38325,38333,38569,38612,38667,38674,38672,38809,38807,38804,38896,38904,38965,38959,38962,39204,39199,39207,39209,39326,39406,39404,39397,39396,39408,39395,39402,39401,39399,39609,39615,39604,39611,39670,39674,39673,39671,39731,39808,39813,39815,39804,39806,39803,39810,39827,39826,39824,39802,39829,39805,39816,40229,40215,40224,40222,40212,40233,40221,40216,40226,40208,40217,40223,40584,40582,40583,40622,40621,40661,40662,40698,40722,40765,20774,20773,20770,20772,20768,20777,21236,22163,22156,22157,22150,22148,22147,22142,22146,22143,22145,22742,22740,22735,22738,23341,23333,23346,23331,23340,23335,23334,23343,23342,23419,23537,23538,23991,24172,24170,24510,24507,25027,25013,25020,25063,25056,25061,25060,25064,25054,25839,25833,25827,25835,25828,25832,25985,25984,26038,26074,26322,27277,27286,27265,27301,27273,27295,27291,27297,27294,27271,27283,27278,27285,27267,27304,27300,27281,27263,27302,27290,27269,27276,27282,27483,27565,27657,28620,28585,28660,28628,28643,28636,28653,28647,28646,28638,28658,28637,28642,28648,29153,29169,29160,29170,29156,29168,29154,29555,29550,29551,29847,29874,29867,29840,29866,29869,29873,29861,29871,29968,29969,29970,29967,30084,30275,30280,30281,30279,30372,30441,30645,30635,30642,30647,30646,30644,30641,30632,30704,30963,30973,30978,30971,30972,30962,30981,30969,30974,30980,31147,31144,31324,31323,31318,31320,31316,31322,31422,31424,31425,31749,31759,31730,31744,31743,31739,31758,31732,31755,31731,31746,31753,31747,31745,31736,31741,31750,31728,31729,31760,31754,31976,32301,32316,32322,32307,38984,32312,32298,32329,32320,32327,32297,32332,32304,32315,32310,32324,32314,32581,32639,32638,32637,32756,32754,32812,33211,33220,33228,33226,33221,33223,33212,33257,33371,33370,33372,34179,34176,34191,34215,34197,34208,34187,34211,34171,34212,34202,34206,34167,34172,34185,34209,34170,34168,34135,34190,34198,34182,34189,34201,34205,34177,34210,34178,34184,34181,34169,34166,34200,34192,34207,34408,34750,34730,34733,34757,34736,34732,34745,34741,34748,34734,34761,34755,34754,34764,34743,34735,34756,34762,34740,34742,34751,34744,34749,34782,34738,35125,35123,35132,35134,35137,35154,35127,35138,35245,35247,35246,35314,35315,35614,35608,35606,35601,35589,35595,35618,35599,35602,35605,35591,35597,35592,35590,35612,35603,35610,35919,35952,35954,35953,35951,35989,35988,36089,36207,36430,36429,36435,36432,36428,36423,36675,36672,36997,36990,37176,37274,37282,37275,37273,37279,37281,37277,37280,37793,37763,37807,37732,37718,37703,37756,37720,37724,37750,37705,37712,37713,37728,37741,37775,37708,37738,37753,37719,37717,37714,37711,37745,37751,37755,37729,37726,37731,37735,37760,37710,37721,38343,38336,38345,38339,38341,38327,38574,38576,38572,38688,38687,38680,38685,38681,38810,38817,38812,38814,38813,38869,38868,38897,38977,38980,38986,38985,38981,38979,39205,39211,39212,39210,39219,39218,39215,39213,39217,39216,39320,39331,39329,39426,39418,39412,39415,39417,39416,39414,39419,39421,39422,39420,39427,39614,39678,39677,39681,39676,39752,39834,39848,39838,39835,39846,39841,39845,39844,39814,39842,39840,39855,40243,40257,40295,40246,40238,40239,40241,40248,40240,40261,40258,40259,40254,40247,40256,40253,32757,40237,40586,40585,40589,40624,40648,40666,40699,40703,40740,40739,40738,40788,40864,20785,20781,20782,22168,22172,22167,22170,22173,22169,22896,23356,23657,23658,24e3,24173,24174,25048,25055,25069,25070,25073,25066,25072,25067,25046,25065,25855,25860,25853,25848,25857,25859,25852,26004,26075,26330,26331,26328,27333,27321,27325,27361,27334,27322,27318,27319,27335,27316,27309,27486,27593,27659,28679,28684,28685,28673,28677,28692,28686,28671,28672,28667,28710,28668,28663,28682,29185,29183,29177,29187,29181,29558,29880,29888,29877,29889,29886,29878,29883,29890,29972,29971,30300,30308,30297,30288,30291,30295,30298,30374,30397,30444,30658,30650,30975,30988,30995,30996,30985,30992,30994,30993,31149,31148,31327,31772,31785,31769,31776,31775,31789,31773,31782,31784,31778,31781,31792,32348,32336,32342,32355,32344,32354,32351,32337,32352,32343,32339,32693,32691,32759,32760,32885,33233,33234,33232,33375,33374,34228,34246,34240,34243,34242,34227,34229,34237,34247,34244,34239,34251,34254,34248,34245,34225,34230,34258,34340,34232,34231,34238,34409,34791,34790,34786,34779,34795,34794,34789,34783,34803,34788,34772,34780,34771,34797,34776,34787,34724,34775,34777,34817,34804,34792,34781,35155,35147,35151,35148,35142,35152,35153,35145,35626,35623,35619,35635,35632,35637,35655,35631,35644,35646,35633,35621,35639,35622,35638,35630,35620,35643,35645,35642,35906,35957,35993,35992,35991,36094,36100,36098,36096,36444,36450,36448,36439,36438,36446,36453,36455,36443,36442,36449,36445,36457,36436,36678,36679,36680,36683,37160,37178,37179,37182,37288,37285,37287,37295,37290,37813,37772,37778,37815,37787,37789,37769,37799,37774,37802,37790,37798,37781,37768,37785,37791,37773,37809,37777,37810,37796,37800,37812,37795,37797,38354,38355,38353,38579,38615,38618,24002,38623,38616,38621,38691,38690,38693,38828,38830,38824,38827,38820,38826,38818,38821,38871,38873,38870,38872,38906,38992,38993,38994,39096,39233,39228,39226,39439,39435,39433,39437,39428,39441,39434,39429,39431,39430,39616,39644,39688,39684,39685,39721,39733,39754,39756,39755,39879,39878,39875,39871,39873,39861,39864,39891,39862,39876,39865,39869,40284,40275,40271,40266,40283,40267,40281,40278,40268,40279,40274,40276,40287,40280,40282,40590,40588,40671,40705,40704,40726,40741,40747,40746,40745,40744,40780,40789,20788,20789,21142,21239,21428,22187,22189,22182,22183,22186,22188,22746,22749,22747,22802,23357,23358,23359,24003,24176,24511,25083,25863,25872,25869,25865,25868,25870,25988,26078,26077,26334,27367,27360,27340,27345,27353,27339,27359,27356,27344,27371,27343,27341,27358,27488,27568,27660,28697,28711,28704,28694,28715,28705,28706,28707,28713,28695,28708,28700,28714,29196,29194,29191,29186,29189,29349,29350,29348,29347,29345,29899,29893,29879,29891,29974,30304,30665,30666,30660,30705,31005,31003,31009,31004,30999,31006,31152,31335,31336,31795,31804,31801,31788,31803,31980,31978,32374,32373,32376,32368,32375,32367,32378,32370,32372,32360,32587,32586,32643,32646,32695,32765,32766,32888,33239,33237,33380,33377,33379,34283,34289,34285,34265,34273,34280,34266,34263,34284,34290,34296,34264,34271,34275,34268,34257,34288,34278,34287,34270,34274,34816,34810,34819,34806,34807,34825,34828,34827,34822,34812,34824,34815,34826,34818,35170,35162,35163,35159,35169,35164,35160,35165,35161,35208,35255,35254,35318,35664,35656,35658,35648,35667,35670,35668,35659,35669,35665,35650,35666,35671,35907,35959,35958,35994,36102,36103,36105,36268,36266,36269,36267,36461,36472,36467,36458,36463,36475,36546,36690,36689,36687,36688,36691,36788,37184,37183,37296,37293,37854,37831,37839,37826,37850,37840,37881,37868,37836,37849,37801,37862,37834,37844,37870,37859,37845,37828,37838,37824,37842,37863,38269,38362,38363,38625,38697,38699,38700,38696,38694,38835,38839,38838,38877,38878,38879,39004,39001,39005,38999,39103,39101,39099,39102,39240,39239,39235,39334,39335,39450,39445,39461,39453,39460,39451,39458,39456,39463,39459,39454,39452,39444,39618,39691,39690,39694,39692,39735,39914,39915,39904,39902,39908,39910,39906,39920,39892,39895,39916,39900,39897,39909,39893,39905,39898,40311,40321,40330,40324,40328,40305,40320,40312,40326,40331,40332,40317,40299,40308,40309,40304,40297,40325,40307,40315,40322,40303,40313,40319,40327,40296,40596,40593,40640,40700,40749,40768,40769,40781,40790,40791,40792,21303,22194,22197,22195,22755,23365,24006,24007,24302,24303,24512,24513,25081,25879,25878,25877,25875,26079,26344,26339,26340,27379,27376,27370,27368,27385,27377,27374,27375,28732,28725,28719,28727,28724,28721,28738,28728,28735,28730,28729,28736,28731,28723,28737,29203,29204,29352,29565,29564,29882,30379,30378,30398,30445,30668,30670,30671,30669,30706,31013,31011,31015,31016,31012,31017,31154,31342,31340,31341,31479,31817,31816,31818,31815,31813,31982,32379,32382,32385,32384,32698,32767,32889,33243,33241,33291,33384,33385,34338,34303,34305,34302,34331,34304,34294,34308,34313,34309,34316,34301,34841,34832,34833,34839,34835,34838,35171,35174,35257,35319,35680,35690,35677,35688,35683,35685,35687,35693,36270,36486,36488,36484,36697,36694,36695,36693,36696,36698,37005,37187,37185,37303,37301,37298,37299,37899,37907,37883,37920,37903,37908,37886,37909,37904,37928,37913,37901,37877,37888,37879,37895,37902,37910,37906,37882,37897,37880,37898,37887,37884,37900,37878,37905,37894,38366,38368,38367,38702,38703,38841,38843,38909,38910,39008,39010,39011,39007,39105,39106,39248,39246,39257,39244,39243,39251,39474,39476,39473,39468,39466,39478,39465,39470,39480,39469,39623,39626,39622,39696,39698,39697,39947,39944,39927,39941,39954,39928,4e4,39943,39950,39942,39959,39956,39945,40351,40345,40356,40349,40338,40344,40336,40347,40352,40340,40348,40362,40343,40353,40346,40354,40360,40350,40355,40383,40361,40342,40358,40359,40601,40603,40602,40677,40676,40679,40678,40752,40750,40795,40800,40798,40797,40793,40849,20794,20793,21144,21143,22211,22205,22206,23368,23367,24011,24015,24305,25085,25883,27394,27388,27395,27384,27392,28739,28740,28746,28744,28745,28741,28742,29213,29210,29209,29566,29975,30314,30672,31021,31025,31023,31828,31827,31986,32394,32391,32392,32395,32390,32397,32589,32699,32816,33245,34328,34346,34342,34335,34339,34332,34329,34343,34350,34337,34336,34345,34334,34341,34857,34845,34843,34848,34852,34844,34859,34890,35181,35177,35182,35179,35322,35705,35704,35653,35706,35707,36112,36116,36271,36494,36492,36702,36699,36701,37190,37188,37189,37305,37951,37947,37942,37929,37949,37948,37936,37945,37930,37943,37932,37952,37937,38373,38372,38371,38709,38714,38847,38881,39012,39113,39110,39104,39256,39254,39481,39485,39494,39492,39490,39489,39482,39487,39629,39701,39703,39704,39702,39738,39762,39979,39965,39964,39980,39971,39976,39977,39972,39969,40375,40374,40380,40385,40391,40394,40399,40382,40389,40387,40379,40373,40398,40377,40378,40364,40392,40369,40365,40396,40371,40397,40370,40570,40604,40683,40686,40685,40731,40728,40730,40753,40782,40805,40804,40850,20153,22214,22213,22219,22897,23371,23372,24021,24017,24306,25889,25888,25894,25890,27403,27400,27401,27661,28757,28758,28759,28754,29214,29215,29353,29567,29912,29909,29913,29911,30317,30381,31029,31156,31344,31345,31831,31836,31833,31835,31834,31988,31985,32401,32591,32647,33246,33387,34356,34357,34355,34348,34354,34358,34860,34856,34854,34858,34853,35185,35263,35262,35323,35710,35716,35714,35718,35717,35711,36117,36501,36500,36506,36498,36496,36502,36503,36704,36706,37191,37964,37968,37962,37963,37967,37959,37957,37960,37961,37958,38719,38883,39018,39017,39115,39252,39259,39502,39507,39508,39500,39503,39496,39498,39497,39506,39504,39632,39705,39723,39739,39766,39765,40006,40008,39999,40004,39993,39987,40001,39996,39991,39988,39986,39997,39990,40411,40402,40414,40410,40395,40400,40412,40401,40415,40425,40409,40408,40406,40437,40405,40413,40630,40688,40757,40755,40754,40770,40811,40853,40866,20797,21145,22760,22759,22898,23373,24024,34863,24399,25089,25091,25092,25897,25893,26006,26347,27409,27410,27407,27594,28763,28762,29218,29570,29569,29571,30320,30676,31847,31846,32405,33388,34362,34368,34361,34364,34353,34363,34366,34864,34866,34862,34867,35190,35188,35187,35326,35724,35726,35723,35720,35909,36121,36504,36708,36707,37308,37986,37973,37981,37975,37982,38852,38853,38912,39510,39513,39710,39711,39712,40018,40024,40016,40010,40013,40011,40021,40025,40012,40014,40443,40439,40431,40419,40427,40440,40420,40438,40417,40430,40422,40434,40432,40418,40428,40436,40435,40424,40429,40642,40656,40690,40691,40710,40732,40760,40759,40758,40771,40783,40817,40816,40814,40815,22227,22221,23374,23661,25901,26349,26350,27411,28767,28769,28765,28768,29219,29915,29925,30677,31032,31159,31158,31850,32407,32649,33389,34371,34872,34871,34869,34891,35732,35733,36510,36511,36512,36509,37310,37309,37314,37995,37992,37993,38629,38726,38723,38727,38855,38885,39518,39637,39769,40035,40039,40038,40034,40030,40032,40450,40446,40455,40451,40454,40453,40448,40449,40457,40447,40445,40452,40608,40734,40774,40820,40821,40822,22228,25902,26040,27416,27417,27415,27418,28770,29222,29354,30680,30681,31033,31849,31851,31990,32410,32408,32411,32409,33248,33249,34374,34375,34376,35193,35194,35196,35195,35327,35736,35737,36517,36516,36515,37998,37997,37999,38001,38003,38729,39026,39263,40040,40046,40045,40459,40461,40464,40463,40466,40465,40609,40693,40713,40775,40824,40827,40826,40825,22302,28774,31855,34876,36274,36518,37315,38004,38008,38006,38005,39520,40052,40051,40049,40053,40468,40467,40694,40714,40868,28776,28773,31991,34410,34878,34877,34879,35742,35996,36521,36553,38731,39027,39028,39116,39265,39339,39524,39526,39527,39716,40469,40471,40776,25095,27422,29223,34380,36520,38018,38016,38017,39529,39528,39726,40473,29225,34379,35743,38019,40057,40631,30325,39531,40058,40477,28777,28778,40612,40830,40777,40856,30849,37561,35023,22715,24658,31911,23290,9556,9574,9559,9568,9580,9571,9562,9577,9565,9554,9572,9557,9566,9578,9569,9560,9575,9563,9555,9573,9558,9567,9579,9570,9561,9576,9564,9553,9552,9581,9582,9584,9583,65517,132423,37595,132575,147397,34124,17077,29679,20917,13897,149826,166372,37700,137691,33518,146632,30780,26436,25311,149811,166314,131744,158643,135941,20395,140525,20488,159017,162436,144896,150193,140563,20521,131966,24484,131968,131911,28379,132127,20605,20737,13434,20750,39020,14147,33814,149924,132231,20832,144308,20842,134143,139516,131813,140592,132494,143923,137603,23426,34685,132531,146585,20914,20920,40244,20937,20943,20945,15580,20947,150182,20915,20962,21314,20973,33741,26942,145197,24443,21003,21030,21052,21173,21079,21140,21177,21189,31765,34114,21216,34317,158483,21253,166622,21833,28377,147328,133460,147436,21299,21316,134114,27851,136998,26651,29653,24650,16042,14540,136936,29149,17570,21357,21364,165547,21374,21375,136598,136723,30694,21395,166555,21408,21419,21422,29607,153458,16217,29596,21441,21445,27721,20041,22526,21465,15019,134031,21472,147435,142755,21494,134263,21523,28793,21803,26199,27995,21613,158547,134516,21853,21647,21668,18342,136973,134877,15796,134477,166332,140952,21831,19693,21551,29719,21894,21929,22021,137431,147514,17746,148533,26291,135348,22071,26317,144010,26276,26285,22093,22095,30961,22257,38791,21502,22272,22255,22253,166758,13859,135759,22342,147877,27758,28811,22338,14001,158846,22502,136214,22531,136276,148323,22566,150517,22620,22698,13665,22752,22748,135740,22779,23551,22339,172368,148088,37843,13729,22815,26790,14019,28249,136766,23076,21843,136850,34053,22985,134478,158849,159018,137180,23001,137211,137138,159142,28017,137256,136917,23033,159301,23211,23139,14054,149929,23159,14088,23190,29797,23251,159649,140628,15749,137489,14130,136888,24195,21200,23414,25992,23420,162318,16388,18525,131588,23509,24928,137780,154060,132517,23539,23453,19728,23557,138052,23571,29646,23572,138405,158504,23625,18653,23685,23785,23791,23947,138745,138807,23824,23832,23878,138916,23738,24023,33532,14381,149761,139337,139635,33415,14390,15298,24110,27274,24181,24186,148668,134355,21414,20151,24272,21416,137073,24073,24308,164994,24313,24315,14496,24316,26686,37915,24333,131521,194708,15070,18606,135994,24378,157832,140240,24408,140401,24419,38845,159342,24434,37696,166454,24487,23990,15711,152144,139114,159992,140904,37334,131742,166441,24625,26245,137335,14691,15815,13881,22416,141236,31089,15936,24734,24740,24755,149890,149903,162387,29860,20705,23200,24932,33828,24898,194726,159442,24961,20980,132694,24967,23466,147383,141407,25043,166813,170333,25040,14642,141696,141505,24611,24924,25886,25483,131352,25285,137072,25301,142861,25452,149983,14871,25656,25592,136078,137212,25744,28554,142902,38932,147596,153373,25825,25829,38011,14950,25658,14935,25933,28438,150056,150051,25989,25965,25951,143486,26037,149824,19255,26065,16600,137257,26080,26083,24543,144384,26136,143863,143864,26180,143780,143781,26187,134773,26215,152038,26227,26228,138813,143921,165364,143816,152339,30661,141559,39332,26370,148380,150049,15147,27130,145346,26462,26471,26466,147917,168173,26583,17641,26658,28240,37436,26625,144358,159136,26717,144495,27105,27147,166623,26995,26819,144845,26881,26880,15666,14849,144956,15232,26540,26977,166474,17148,26934,27032,15265,132041,33635,20624,27129,144985,139562,27205,145155,27293,15347,26545,27336,168348,15373,27421,133411,24798,27445,27508,141261,28341,146139,132021,137560,14144,21537,146266,27617,147196,27612,27703,140427,149745,158545,27738,33318,27769,146876,17605,146877,147876,149772,149760,146633,14053,15595,134450,39811,143865,140433,32655,26679,159013,159137,159211,28054,27996,28284,28420,149887,147589,159346,34099,159604,20935,27804,28189,33838,166689,28207,146991,29779,147330,31180,28239,23185,143435,28664,14093,28573,146992,28410,136343,147517,17749,37872,28484,28508,15694,28532,168304,15675,28575,147780,28627,147601,147797,147513,147440,147380,147775,20959,147798,147799,147776,156125,28747,28798,28839,28801,28876,28885,28886,28895,16644,15848,29108,29078,148087,28971,28997,23176,29002,29038,23708,148325,29007,37730,148161,28972,148570,150055,150050,29114,166888,28861,29198,37954,29205,22801,37955,29220,37697,153093,29230,29248,149876,26813,29269,29271,15957,143428,26637,28477,29314,29482,29483,149539,165931,18669,165892,29480,29486,29647,29610,134202,158254,29641,29769,147938,136935,150052,26147,14021,149943,149901,150011,29687,29717,26883,150054,29753,132547,16087,29788,141485,29792,167602,29767,29668,29814,33721,29804,14128,29812,37873,27180,29826,18771,150156,147807,150137,166799,23366,166915,137374,29896,137608,29966,29929,29982,167641,137803,23511,167596,37765,30029,30026,30055,30062,151426,16132,150803,30094,29789,30110,30132,30210,30252,30289,30287,30319,30326,156661,30352,33263,14328,157969,157966,30369,30373,30391,30412,159647,33890,151709,151933,138780,30494,30502,30528,25775,152096,30552,144044,30639,166244,166248,136897,30708,30729,136054,150034,26826,30895,30919,30931,38565,31022,153056,30935,31028,30897,161292,36792,34948,166699,155779,140828,31110,35072,26882,31104,153687,31133,162617,31036,31145,28202,160038,16040,31174,168205,31188],"euc-kr":[44034,44035,44037,44038,44043,44044,44045,44046,44047,44056,44062,44063,44065,44066,44067,44069,44070,44071,44072,44073,44074,44075,44078,44082,44083,44084,null,null,null,null,null,null,44085,44086,44087,44090,44091,44093,44094,44095,44097,44098,44099,44100,44101,44102,44103,44104,44105,44106,44108,44110,44111,44112,44113,44114,44115,44117,null,null,null,null,null,null,44118,44119,44121,44122,44123,44125,44126,44127,44128,44129,44130,44131,44132,44133,44134,44135,44136,44137,44138,44139,44140,44141,44142,44143,44146,44147,44149,44150,44153,44155,44156,44157,44158,44159,44162,44167,44168,44173,44174,44175,44177,44178,44179,44181,44182,44183,44184,44185,44186,44187,44190,44194,44195,44196,44197,44198,44199,44203,44205,44206,44209,44210,44211,44212,44213,44214,44215,44218,44222,44223,44224,44226,44227,44229,44230,44231,44233,44234,44235,44237,44238,44239,44240,44241,44242,44243,44244,44246,44248,44249,44250,44251,44252,44253,44254,44255,44258,44259,44261,44262,44265,44267,44269,44270,44274,44276,44279,44280,44281,44282,44283,44286,44287,44289,44290,44291,44293,44295,44296,44297,44298,44299,44302,44304,44306,44307,44308,44309,44310,44311,44313,44314,44315,44317,44318,44319,44321,44322,44323,44324,44325,44326,44327,44328,44330,44331,44334,44335,44336,44337,44338,44339,null,null,null,null,null,null,44342,44343,44345,44346,44347,44349,44350,44351,44352,44353,44354,44355,44358,44360,44362,44363,44364,44365,44366,44367,44369,44370,44371,44373,44374,44375,null,null,null,null,null,null,44377,44378,44379,44380,44381,44382,44383,44384,44386,44388,44389,44390,44391,44392,44393,44394,44395,44398,44399,44401,44402,44407,44408,44409,44410,44414,44416,44419,44420,44421,44422,44423,44426,44427,44429,44430,44431,44433,44434,44435,44436,44437,44438,44439,44440,44441,44442,44443,44446,44447,44448,44449,44450,44451,44453,44454,44455,44456,44457,44458,44459,44460,44461,44462,44463,44464,44465,44466,44467,44468,44469,44470,44472,44473,44474,44475,44476,44477,44478,44479,44482,44483,44485,44486,44487,44489,44490,44491,44492,44493,44494,44495,44498,44500,44501,44502,44503,44504,44505,44506,44507,44509,44510,44511,44513,44514,44515,44517,44518,44519,44520,44521,44522,44523,44524,44525,44526,44527,44528,44529,44530,44531,44532,44533,44534,44535,44538,44539,44541,44542,44546,44547,44548,44549,44550,44551,44554,44556,44558,44559,44560,44561,44562,44563,44565,44566,44567,44568,44569,44570,44571,44572,null,null,null,null,null,null,44573,44574,44575,44576,44577,44578,44579,44580,44581,44582,44583,44584,44585,44586,44587,44588,44589,44590,44591,44594,44595,44597,44598,44601,44603,44604,null,null,null,null,null,null,44605,44606,44607,44610,44612,44615,44616,44617,44619,44623,44625,44626,44627,44629,44631,44632,44633,44634,44635,44638,44642,44643,44644,44646,44647,44650,44651,44653,44654,44655,44657,44658,44659,44660,44661,44662,44663,44666,44670,44671,44672,44673,44674,44675,44678,44679,44680,44681,44682,44683,44685,44686,44687,44688,44689,44690,44691,44692,44693,44694,44695,44696,44697,44698,44699,44700,44701,44702,44703,44704,44705,44706,44707,44708,44709,44710,44711,44712,44713,44714,44715,44716,44717,44718,44719,44720,44721,44722,44723,44724,44725,44726,44727,44728,44729,44730,44731,44735,44737,44738,44739,44741,44742,44743,44744,44745,44746,44747,44750,44754,44755,44756,44757,44758,44759,44762,44763,44765,44766,44767,44768,44769,44770,44771,44772,44773,44774,44775,44777,44778,44780,44782,44783,44784,44785,44786,44787,44789,44790,44791,44793,44794,44795,44797,44798,44799,44800,44801,44802,44803,44804,44805,null,null,null,null,null,null,44806,44809,44810,44811,44812,44814,44815,44817,44818,44819,44820,44821,44822,44823,44824,44825,44826,44827,44828,44829,44830,44831,44832,44833,44834,44835,null,null,null,null,null,null,44836,44837,44838,44839,44840,44841,44842,44843,44846,44847,44849,44851,44853,44854,44855,44856,44857,44858,44859,44862,44864,44868,44869,44870,44871,44874,44875,44876,44877,44878,44879,44881,44882,44883,44884,44885,44886,44887,44888,44889,44890,44891,44894,44895,44896,44897,44898,44899,44902,44903,44904,44905,44906,44907,44908,44909,44910,44911,44912,44913,44914,44915,44916,44917,44918,44919,44920,44922,44923,44924,44925,44926,44927,44929,44930,44931,44933,44934,44935,44937,44938,44939,44940,44941,44942,44943,44946,44947,44948,44950,44951,44952,44953,44954,44955,44957,44958,44959,44960,44961,44962,44963,44964,44965,44966,44967,44968,44969,44970,44971,44972,44973,44974,44975,44976,44977,44978,44979,44980,44981,44982,44983,44986,44987,44989,44990,44991,44993,44994,44995,44996,44997,44998,45002,45004,45007,45008,45009,45010,45011,45013,45014,45015,45016,45017,45018,45019,45021,45022,45023,45024,45025,null,null,null,null,null,null,45026,45027,45028,45029,45030,45031,45034,45035,45036,45037,45038,45039,45042,45043,45045,45046,45047,45049,45050,45051,45052,45053,45054,45055,45058,45059,null,null,null,null,null,null,45061,45062,45063,45064,45065,45066,45067,45069,45070,45071,45073,45074,45075,45077,45078,45079,45080,45081,45082,45083,45086,45087,45088,45089,45090,45091,45092,45093,45094,45095,45097,45098,45099,45100,45101,45102,45103,45104,45105,45106,45107,45108,45109,45110,45111,45112,45113,45114,45115,45116,45117,45118,45119,45120,45121,45122,45123,45126,45127,45129,45131,45133,45135,45136,45137,45138,45142,45144,45146,45147,45148,45150,45151,45152,45153,45154,45155,45156,45157,45158,45159,45160,45161,45162,45163,45164,45165,45166,45167,45168,45169,45170,45171,45172,45173,45174,45175,45176,45177,45178,45179,45182,45183,45185,45186,45187,45189,45190,45191,45192,45193,45194,45195,45198,45200,45202,45203,45204,45205,45206,45207,45211,45213,45214,45219,45220,45221,45222,45223,45226,45232,45234,45238,45239,45241,45242,45243,45245,45246,45247,45248,45249,45250,45251,45254,45258,45259,45260,45261,45262,45263,45266,null,null,null,null,null,null,45267,45269,45270,45271,45273,45274,45275,45276,45277,45278,45279,45281,45282,45283,45284,45286,45287,45288,45289,45290,45291,45292,45293,45294,45295,45296,null,null,null,null,null,null,45297,45298,45299,45300,45301,45302,45303,45304,45305,45306,45307,45308,45309,45310,45311,45312,45313,45314,45315,45316,45317,45318,45319,45322,45325,45326,45327,45329,45332,45333,45334,45335,45338,45342,45343,45344,45345,45346,45350,45351,45353,45354,45355,45357,45358,45359,45360,45361,45362,45363,45366,45370,45371,45372,45373,45374,45375,45378,45379,45381,45382,45383,45385,45386,45387,45388,45389,45390,45391,45394,45395,45398,45399,45401,45402,45403,45405,45406,45407,45409,45410,45411,45412,45413,45414,45415,45416,45417,45418,45419,45420,45421,45422,45423,45424,45425,45426,45427,45428,45429,45430,45431,45434,45435,45437,45438,45439,45441,45443,45444,45445,45446,45447,45450,45452,45454,45455,45456,45457,45461,45462,45463,45465,45466,45467,45469,45470,45471,45472,45473,45474,45475,45476,45477,45478,45479,45481,45482,45483,45484,45485,45486,45487,45488,45489,45490,45491,45492,45493,45494,45495,45496,null,null,null,null,null,null,45497,45498,45499,45500,45501,45502,45503,45504,45505,45506,45507,45508,45509,45510,45511,45512,45513,45514,45515,45517,45518,45519,45521,45522,45523,45525,null,null,null,null,null,null,45526,45527,45528,45529,45530,45531,45534,45536,45537,45538,45539,45540,45541,45542,45543,45546,45547,45549,45550,45551,45553,45554,45555,45556,45557,45558,45559,45560,45562,45564,45566,45567,45568,45569,45570,45571,45574,45575,45577,45578,45581,45582,45583,45584,45585,45586,45587,45590,45592,45594,45595,45596,45597,45598,45599,45601,45602,45603,45604,45605,45606,45607,45608,45609,45610,45611,45612,45613,45614,45615,45616,45617,45618,45619,45621,45622,45623,45624,45625,45626,45627,45629,45630,45631,45632,45633,45634,45635,45636,45637,45638,45639,45640,45641,45642,45643,45644,45645,45646,45647,45648,45649,45650,45651,45652,45653,45654,45655,45657,45658,45659,45661,45662,45663,45665,45666,45667,45668,45669,45670,45671,45674,45675,45676,45677,45678,45679,45680,45681,45682,45683,45686,45687,45688,45689,45690,45691,45693,45694,45695,45696,45697,45698,45699,45702,45703,45704,45706,45707,45708,45709,45710,null,null,null,null,null,null,45711,45714,45715,45717,45718,45719,45723,45724,45725,45726,45727,45730,45732,45735,45736,45737,45739,45741,45742,45743,45745,45746,45747,45749,45750,45751,null,null,null,null,null,null,45752,45753,45754,45755,45756,45757,45758,45759,45760,45761,45762,45763,45764,45765,45766,45767,45770,45771,45773,45774,45775,45777,45779,45780,45781,45782,45783,45786,45788,45790,45791,45792,45793,45795,45799,45801,45802,45808,45809,45810,45814,45820,45821,45822,45826,45827,45829,45830,45831,45833,45834,45835,45836,45837,45838,45839,45842,45846,45847,45848,45849,45850,45851,45853,45854,45855,45856,45857,45858,45859,45860,45861,45862,45863,45864,45865,45866,45867,45868,45869,45870,45871,45872,45873,45874,45875,45876,45877,45878,45879,45880,45881,45882,45883,45884,45885,45886,45887,45888,45889,45890,45891,45892,45893,45894,45895,45896,45897,45898,45899,45900,45901,45902,45903,45904,45905,45906,45907,45911,45913,45914,45917,45920,45921,45922,45923,45926,45928,45930,45932,45933,45935,45938,45939,45941,45942,45943,45945,45946,45947,45948,45949,45950,45951,45954,45958,45959,45960,45961,45962,45963,45965,null,null,null,null,null,null,45966,45967,45969,45970,45971,45973,45974,45975,45976,45977,45978,45979,45980,45981,45982,45983,45986,45987,45988,45989,45990,45991,45993,45994,45995,45997,null,null,null,null,null,null,45998,45999,46e3,46001,46002,46003,46004,46005,46006,46007,46008,46009,46010,46011,46012,46013,46014,46015,46016,46017,46018,46019,46022,46023,46025,46026,46029,46031,46033,46034,46035,46038,46040,46042,46044,46046,46047,46049,46050,46051,46053,46054,46055,46057,46058,46059,46060,46061,46062,46063,46064,46065,46066,46067,46068,46069,46070,46071,46072,46073,46074,46075,46077,46078,46079,46080,46081,46082,46083,46084,46085,46086,46087,46088,46089,46090,46091,46092,46093,46094,46095,46097,46098,46099,46100,46101,46102,46103,46105,46106,46107,46109,46110,46111,46113,46114,46115,46116,46117,46118,46119,46122,46124,46125,46126,46127,46128,46129,46130,46131,46133,46134,46135,46136,46137,46138,46139,46140,46141,46142,46143,46144,46145,46146,46147,46148,46149,46150,46151,46152,46153,46154,46155,46156,46157,46158,46159,46162,46163,46165,46166,46167,46169,46170,46171,46172,46173,46174,46175,46178,46180,46182,null,null,null,null,null,null,46183,46184,46185,46186,46187,46189,46190,46191,46192,46193,46194,46195,46196,46197,46198,46199,46200,46201,46202,46203,46204,46205,46206,46207,46209,46210,null,null,null,null,null,null,46211,46212,46213,46214,46215,46217,46218,46219,46220,46221,46222,46223,46224,46225,46226,46227,46228,46229,46230,46231,46232,46233,46234,46235,46236,46238,46239,46240,46241,46242,46243,46245,46246,46247,46249,46250,46251,46253,46254,46255,46256,46257,46258,46259,46260,46262,46264,46266,46267,46268,46269,46270,46271,46273,46274,46275,46277,46278,46279,46281,46282,46283,46284,46285,46286,46287,46289,46290,46291,46292,46294,46295,46296,46297,46298,46299,46302,46303,46305,46306,46309,46311,46312,46313,46314,46315,46318,46320,46322,46323,46324,46325,46326,46327,46329,46330,46331,46332,46333,46334,46335,46336,46337,46338,46339,46340,46341,46342,46343,46344,46345,46346,46347,46348,46349,46350,46351,46352,46353,46354,46355,46358,46359,46361,46362,46365,46366,46367,46368,46369,46370,46371,46374,46379,46380,46381,46382,46383,46386,46387,46389,46390,46391,46393,46394,46395,46396,46397,46398,46399,46402,46406,null,null,null,null,null,null,46407,46408,46409,46410,46414,46415,46417,46418,46419,46421,46422,46423,46424,46425,46426,46427,46430,46434,46435,46436,46437,46438,46439,46440,46441,46442,null,null,null,null,null,null,46443,46444,46445,46446,46447,46448,46449,46450,46451,46452,46453,46454,46455,46456,46457,46458,46459,46460,46461,46462,46463,46464,46465,46466,46467,46468,46469,46470,46471,46472,46473,46474,46475,46476,46477,46478,46479,46480,46481,46482,46483,46484,46485,46486,46487,46488,46489,46490,46491,46492,46493,46494,46495,46498,46499,46501,46502,46503,46505,46508,46509,46510,46511,46514,46518,46519,46520,46521,46522,46526,46527,46529,46530,46531,46533,46534,46535,46536,46537,46538,46539,46542,46546,46547,46548,46549,46550,46551,46553,46554,46555,46556,46557,46558,46559,46560,46561,46562,46563,46564,46565,46566,46567,46568,46569,46570,46571,46573,46574,46575,46576,46577,46578,46579,46580,46581,46582,46583,46584,46585,46586,46587,46588,46589,46590,46591,46592,46593,46594,46595,46596,46597,46598,46599,46600,46601,46602,46603,46604,46605,46606,46607,46610,46611,46613,46614,46615,46617,46618,46619,46620,46621,null,null,null,null,null,null,46622,46623,46624,46625,46626,46627,46628,46630,46631,46632,46633,46634,46635,46637,46638,46639,46640,46641,46642,46643,46645,46646,46647,46648,46649,46650,null,null,null,null,null,null,46651,46652,46653,46654,46655,46656,46657,46658,46659,46660,46661,46662,46663,46665,46666,46667,46668,46669,46670,46671,46672,46673,46674,46675,46676,46677,46678,46679,46680,46681,46682,46683,46684,46685,46686,46687,46688,46689,46690,46691,46693,46694,46695,46697,46698,46699,46700,46701,46702,46703,46704,46705,46706,46707,46708,46709,46710,46711,46712,46713,46714,46715,46716,46717,46718,46719,46720,46721,46722,46723,46724,46725,46726,46727,46728,46729,46730,46731,46732,46733,46734,46735,46736,46737,46738,46739,46740,46741,46742,46743,46744,46745,46746,46747,46750,46751,46753,46754,46755,46757,46758,46759,46760,46761,46762,46765,46766,46767,46768,46770,46771,46772,46773,46774,46775,46776,46777,46778,46779,46780,46781,46782,46783,46784,46785,46786,46787,46788,46789,46790,46791,46792,46793,46794,46795,46796,46797,46798,46799,46800,46801,46802,46803,46805,46806,46807,46808,46809,46810,46811,46812,46813,null,null,null,null,null,null,46814,46815,46816,46817,46818,46819,46820,46821,46822,46823,46824,46825,46826,46827,46828,46829,46830,46831,46833,46834,46835,46837,46838,46839,46841,46842,null,null,null,null,null,null,46843,46844,46845,46846,46847,46850,46851,46852,46854,46855,46856,46857,46858,46859,46860,46861,46862,46863,46864,46865,46866,46867,46868,46869,46870,46871,46872,46873,46874,46875,46876,46877,46878,46879,46880,46881,46882,46883,46884,46885,46886,46887,46890,46891,46893,46894,46897,46898,46899,46900,46901,46902,46903,46906,46908,46909,46910,46911,46912,46913,46914,46915,46917,46918,46919,46921,46922,46923,46925,46926,46927,46928,46929,46930,46931,46934,46935,46936,46937,46938,46939,46940,46941,46942,46943,46945,46946,46947,46949,46950,46951,46953,46954,46955,46956,46957,46958,46959,46962,46964,46966,46967,46968,46969,46970,46971,46974,46975,46977,46978,46979,46981,46982,46983,46984,46985,46986,46987,46990,46995,46996,46997,47002,47003,47005,47006,47007,47009,47010,47011,47012,47013,47014,47015,47018,47022,47023,47024,47025,47026,47027,47030,47031,47033,47034,47035,47036,47037,47038,47039,47040,47041,null,null,null,null,null,null,47042,47043,47044,47045,47046,47048,47050,47051,47052,47053,47054,47055,47056,47057,47058,47059,47060,47061,47062,47063,47064,47065,47066,47067,47068,47069,null,null,null,null,null,null,47070,47071,47072,47073,47074,47075,47076,47077,47078,47079,47080,47081,47082,47083,47086,47087,47089,47090,47091,47093,47094,47095,47096,47097,47098,47099,47102,47106,47107,47108,47109,47110,47114,47115,47117,47118,47119,47121,47122,47123,47124,47125,47126,47127,47130,47132,47134,47135,47136,47137,47138,47139,47142,47143,47145,47146,47147,47149,47150,47151,47152,47153,47154,47155,47158,47162,47163,47164,47165,47166,47167,47169,47170,47171,47173,47174,47175,47176,47177,47178,47179,47180,47181,47182,47183,47184,47186,47188,47189,47190,47191,47192,47193,47194,47195,47198,47199,47201,47202,47203,47205,47206,47207,47208,47209,47210,47211,47214,47216,47218,47219,47220,47221,47222,47223,47225,47226,47227,47229,47230,47231,47232,47233,47234,47235,47236,47237,47238,47239,47240,47241,47242,47243,47244,47246,47247,47248,47249,47250,47251,47252,47253,47254,47255,47256,47257,47258,47259,47260,47261,47262,47263,null,null,null,null,null,null,47264,47265,47266,47267,47268,47269,47270,47271,47273,47274,47275,47276,47277,47278,47279,47281,47282,47283,47285,47286,47287,47289,47290,47291,47292,47293,null,null,null,null,null,null,47294,47295,47298,47300,47302,47303,47304,47305,47306,47307,47309,47310,47311,47313,47314,47315,47317,47318,47319,47320,47321,47322,47323,47324,47326,47328,47330,47331,47332,47333,47334,47335,47338,47339,47341,47342,47343,47345,47346,47347,47348,47349,47350,47351,47354,47356,47358,47359,47360,47361,47362,47363,47365,47366,47367,47368,47369,47370,47371,47372,47373,47374,47375,47376,47377,47378,47379,47380,47381,47382,47383,47385,47386,47387,47388,47389,47390,47391,47393,47394,47395,47396,47397,47398,47399,47400,47401,47402,47403,47404,47405,47406,47407,47408,47409,47410,47411,47412,47413,47414,47415,47416,47417,47418,47419,47422,47423,47425,47426,47427,47429,47430,47431,47432,47433,47434,47435,47437,47438,47440,47442,47443,47444,47445,47446,47447,47450,47451,47453,47454,47455,47457,47458,47459,47460,47461,47462,47463,47466,47468,47470,47471,47472,47473,47474,47475,47478,47479,47481,47482,47483,47485,null,null,null,null,null,null,47486,47487,47488,47489,47490,47491,47494,47496,47499,47500,47503,47504,47505,47506,47507,47508,47509,47510,47511,47512,47513,47514,47515,47516,47517,47518,null,null,null,null,null,null,47519,47520,47521,47522,47523,47524,47525,47526,47527,47528,47529,47530,47531,47534,47535,47537,47538,47539,47541,47542,47543,47544,47545,47546,47547,47550,47552,47554,47555,47556,47557,47558,47559,47562,47563,47565,47571,47572,47573,47574,47575,47578,47580,47583,47584,47586,47590,47591,47593,47594,47595,47597,47598,47599,47600,47601,47602,47603,47606,47611,47612,47613,47614,47615,47618,47619,47620,47621,47622,47623,47625,47626,47627,47628,47629,47630,47631,47632,47633,47634,47635,47636,47638,47639,47640,47641,47642,47643,47644,47645,47646,47647,47648,47649,47650,47651,47652,47653,47654,47655,47656,47657,47658,47659,47660,47661,47662,47663,47664,47665,47666,47667,47668,47669,47670,47671,47674,47675,47677,47678,47679,47681,47683,47684,47685,47686,47687,47690,47692,47695,47696,47697,47698,47702,47703,47705,47706,47707,47709,47710,47711,47712,47713,47714,47715,47718,47722,47723,47724,47725,47726,47727,null,null,null,null,null,null,47730,47731,47733,47734,47735,47737,47738,47739,47740,47741,47742,47743,47744,47745,47746,47750,47752,47753,47754,47755,47757,47758,47759,47760,47761,47762,null,null,null,null,null,null,47763,47764,47765,47766,47767,47768,47769,47770,47771,47772,47773,47774,47775,47776,47777,47778,47779,47780,47781,47782,47783,47786,47789,47790,47791,47793,47795,47796,47797,47798,47799,47802,47804,47806,47807,47808,47809,47810,47811,47813,47814,47815,47817,47818,47819,47820,47821,47822,47823,47824,47825,47826,47827,47828,47829,47830,47831,47834,47835,47836,47837,47838,47839,47840,47841,47842,47843,47844,47845,47846,47847,47848,47849,47850,47851,47852,47853,47854,47855,47856,47857,47858,47859,47860,47861,47862,47863,47864,47865,47866,47867,47869,47870,47871,47873,47874,47875,47877,47878,47879,47880,47881,47882,47883,47884,47886,47888,47890,47891,47892,47893,47894,47895,47897,47898,47899,47901,47902,47903,47905,47906,47907,47908,47909,47910,47911,47912,47914,47916,47917,47918,47919,47920,47921,47922,47923,47927,47929,47930,47935,47936,47937,47938,47939,47942,47944,47946,47947,47948,47950,47953,47954,null,null,null,null,null,null,47955,47957,47958,47959,47961,47962,47963,47964,47965,47966,47967,47968,47970,47972,47973,47974,47975,47976,47977,47978,47979,47981,47982,47983,47984,47985,null,null,null,null,null,null,47986,47987,47988,47989,47990,47991,47992,47993,47994,47995,47996,47997,47998,47999,48e3,48001,48002,48003,48004,48005,48006,48007,48009,48010,48011,48013,48014,48015,48017,48018,48019,48020,48021,48022,48023,48024,48025,48026,48027,48028,48029,48030,48031,48032,48033,48034,48035,48037,48038,48039,48041,48042,48043,48045,48046,48047,48048,48049,48050,48051,48053,48054,48056,48057,48058,48059,48060,48061,48062,48063,48065,48066,48067,48069,48070,48071,48073,48074,48075,48076,48077,48078,48079,48081,48082,48084,48085,48086,48087,48088,48089,48090,48091,48092,48093,48094,48095,48096,48097,48098,48099,48100,48101,48102,48103,48104,48105,48106,48107,48108,48109,48110,48111,48112,48113,48114,48115,48116,48117,48118,48119,48122,48123,48125,48126,48129,48131,48132,48133,48134,48135,48138,48142,48144,48146,48147,48153,48154,48160,48161,48162,48163,48166,48168,48170,48171,48172,48174,48175,48178,48179,48181,null,null,null,null,null,null,48182,48183,48185,48186,48187,48188,48189,48190,48191,48194,48198,48199,48200,48202,48203,48206,48207,48209,48210,48211,48212,48213,48214,48215,48216,48217,null,null,null,null,null,null,48218,48219,48220,48222,48223,48224,48225,48226,48227,48228,48229,48230,48231,48232,48233,48234,48235,48236,48237,48238,48239,48240,48241,48242,48243,48244,48245,48246,48247,48248,48249,48250,48251,48252,48253,48254,48255,48256,48257,48258,48259,48262,48263,48265,48266,48269,48271,48272,48273,48274,48275,48278,48280,48283,48284,48285,48286,48287,48290,48291,48293,48294,48297,48298,48299,48300,48301,48302,48303,48306,48310,48311,48312,48313,48314,48315,48318,48319,48321,48322,48323,48325,48326,48327,48328,48329,48330,48331,48332,48334,48338,48339,48340,48342,48343,48345,48346,48347,48349,48350,48351,48352,48353,48354,48355,48356,48357,48358,48359,48360,48361,48362,48363,48364,48365,48366,48367,48368,48369,48370,48371,48375,48377,48378,48379,48381,48382,48383,48384,48385,48386,48387,48390,48392,48394,48395,48396,48397,48398,48399,48401,48402,48403,48405,48406,48407,48408,48409,48410,48411,48412,48413,null,null,null,null,null,null,48414,48415,48416,48417,48418,48419,48421,48422,48423,48424,48425,48426,48427,48429,48430,48431,48432,48433,48434,48435,48436,48437,48438,48439,48440,48441,null,null,null,null,null,null,48442,48443,48444,48445,48446,48447,48449,48450,48451,48452,48453,48454,48455,48458,48459,48461,48462,48463,48465,48466,48467,48468,48469,48470,48471,48474,48475,48476,48477,48478,48479,48480,48481,48482,48483,48485,48486,48487,48489,48490,48491,48492,48493,48494,48495,48496,48497,48498,48499,48500,48501,48502,48503,48504,48505,48506,48507,48508,48509,48510,48511,48514,48515,48517,48518,48523,48524,48525,48526,48527,48530,48532,48534,48535,48536,48539,48541,48542,48543,48544,48545,48546,48547,48549,48550,48551,48552,48553,48554,48555,48556,48557,48558,48559,48561,48562,48563,48564,48565,48566,48567,48569,48570,48571,48572,48573,48574,48575,48576,48577,48578,48579,48580,48581,48582,48583,48584,48585,48586,48587,48588,48589,48590,48591,48592,48593,48594,48595,48598,48599,48601,48602,48603,48605,48606,48607,48608,48609,48610,48611,48612,48613,48614,48615,48616,48618,48619,48620,48621,48622,48623,48625,null,null,null,null,null,null,48626,48627,48629,48630,48631,48633,48634,48635,48636,48637,48638,48639,48641,48642,48644,48646,48647,48648,48649,48650,48651,48654,48655,48657,48658,48659,null,null,null,null,null,null,48661,48662,48663,48664,48665,48666,48667,48670,48672,48673,48674,48675,48676,48677,48678,48679,48680,48681,48682,48683,48684,48685,48686,48687,48688,48689,48690,48691,48692,48693,48694,48695,48696,48697,48698,48699,48700,48701,48702,48703,48704,48705,48706,48707,48710,48711,48713,48714,48715,48717,48719,48720,48721,48722,48723,48726,48728,48732,48733,48734,48735,48738,48739,48741,48742,48743,48745,48747,48748,48749,48750,48751,48754,48758,48759,48760,48761,48762,48766,48767,48769,48770,48771,48773,48774,48775,48776,48777,48778,48779,48782,48786,48787,48788,48789,48790,48791,48794,48795,48796,48797,48798,48799,48800,48801,48802,48803,48804,48805,48806,48807,48809,48810,48811,48812,48813,48814,48815,48816,48817,48818,48819,48820,48821,48822,48823,48824,48825,48826,48827,48828,48829,48830,48831,48832,48833,48834,48835,48836,48837,48838,48839,48840,48841,48842,48843,48844,48845,48846,48847,48850,48851,null,null,null,null,null,null,48853,48854,48857,48858,48859,48860,48861,48862,48863,48865,48866,48870,48871,48872,48873,48874,48875,48877,48878,48879,48880,48881,48882,48883,48884,48885,null,null,null,null,null,null,48886,48887,48888,48889,48890,48891,48892,48893,48894,48895,48896,48898,48899,48900,48901,48902,48903,48906,48907,48908,48909,48910,48911,48912,48913,48914,48915,48916,48917,48918,48919,48922,48926,48927,48928,48929,48930,48931,48932,48933,48934,48935,48936,48937,48938,48939,48940,48941,48942,48943,48944,48945,48946,48947,48948,48949,48950,48951,48952,48953,48954,48955,48956,48957,48958,48959,48962,48963,48965,48966,48967,48969,48970,48971,48972,48973,48974,48975,48978,48979,48980,48982,48983,48984,48985,48986,48987,48988,48989,48990,48991,48992,48993,48994,48995,48996,48997,48998,48999,49e3,49001,49002,49003,49004,49005,49006,49007,49008,49009,49010,49011,49012,49013,49014,49015,49016,49017,49018,49019,49020,49021,49022,49023,49024,49025,49026,49027,49028,49029,49030,49031,49032,49033,49034,49035,49036,49037,49038,49039,49040,49041,49042,49043,49045,49046,49047,49048,49049,49050,49051,49052,49053,null,null,null,null,null,null,49054,49055,49056,49057,49058,49059,49060,49061,49062,49063,49064,49065,49066,49067,49068,49069,49070,49071,49073,49074,49075,49076,49077,49078,49079,49080,null,null,null,null,null,null,49081,49082,49083,49084,49085,49086,49087,49088,49089,49090,49091,49092,49094,49095,49096,49097,49098,49099,49102,49103,49105,49106,49107,49109,49110,49111,49112,49113,49114,49115,49117,49118,49120,49122,49123,49124,49125,49126,49127,49128,49129,49130,49131,49132,49133,49134,49135,49136,49137,49138,49139,49140,49141,49142,49143,49144,49145,49146,49147,49148,49149,49150,49151,49152,49153,49154,49155,49156,49157,49158,49159,49160,49161,49162,49163,49164,49165,49166,49167,49168,49169,49170,49171,49172,49173,49174,49175,49176,49177,49178,49179,49180,49181,49182,49183,49184,49185,49186,49187,49188,49189,49190,49191,49192,49193,49194,49195,49196,49197,49198,49199,49200,49201,49202,49203,49204,49205,49206,49207,49208,49209,49210,49211,49213,49214,49215,49216,49217,49218,49219,49220,49221,49222,49223,49224,49225,49226,49227,49228,49229,49230,49231,49232,49234,49235,49236,49237,49238,49239,49241,49242,49243,null,null,null,null,null,null,49245,49246,49247,49249,49250,49251,49252,49253,49254,49255,49258,49259,49260,49261,49262,49263,49264,49265,49266,49267,49268,49269,49270,49271,49272,49273,null,null,null,null,null,null,49274,49275,49276,49277,49278,49279,49280,49281,49282,49283,49284,49285,49286,49287,49288,49289,49290,49291,49292,49293,49294,49295,49298,49299,49301,49302,49303,49305,49306,49307,49308,49309,49310,49311,49314,49316,49318,49319,49320,49321,49322,49323,49326,49329,49330,49335,49336,49337,49338,49339,49342,49346,49347,49348,49350,49351,49354,49355,49357,49358,49359,49361,49362,49363,49364,49365,49366,49367,49370,49374,49375,49376,49377,49378,49379,49382,49383,49385,49386,49387,49389,49390,49391,49392,49393,49394,49395,49398,49400,49402,49403,49404,49405,49406,49407,49409,49410,49411,49413,49414,49415,49417,49418,49419,49420,49421,49422,49423,49425,49426,49427,49428,49430,49431,49432,49433,49434,49435,49441,49442,49445,49448,49449,49450,49451,49454,49458,49459,49460,49461,49463,49466,49467,49469,49470,49471,49473,49474,49475,49476,49477,49478,49479,49482,49486,49487,49488,49489,49490,49491,49494,49495,null,null,null,null,null,null,49497,49498,49499,49501,49502,49503,49504,49505,49506,49507,49510,49514,49515,49516,49517,49518,49519,49521,49522,49523,49525,49526,49527,49529,49530,49531,null,null,null,null,null,null,49532,49533,49534,49535,49536,49537,49538,49539,49540,49542,49543,49544,49545,49546,49547,49551,49553,49554,49555,49557,49559,49560,49561,49562,49563,49566,49568,49570,49571,49572,49574,49575,49578,49579,49581,49582,49583,49585,49586,49587,49588,49589,49590,49591,49592,49593,49594,49595,49596,49598,49599,49600,49601,49602,49603,49605,49606,49607,49609,49610,49611,49613,49614,49615,49616,49617,49618,49619,49621,49622,49625,49626,49627,49628,49629,49630,49631,49633,49634,49635,49637,49638,49639,49641,49642,49643,49644,49645,49646,49647,49650,49652,49653,49654,49655,49656,49657,49658,49659,49662,49663,49665,49666,49667,49669,49670,49671,49672,49673,49674,49675,49678,49680,49682,49683,49684,49685,49686,49687,49690,49691,49693,49694,49697,49698,49699,49700,49701,49702,49703,49706,49708,49710,49712,49715,49717,49718,49719,49720,49721,49722,49723,49724,49725,49726,49727,49728,49729,49730,49731,49732,49733,null,null,null,null,null,null,49734,49735,49737,49738,49739,49740,49741,49742,49743,49746,49747,49749,49750,49751,49753,49754,49755,49756,49757,49758,49759,49761,49762,49763,49764,49766,null,null,null,null,null,null,49767,49768,49769,49770,49771,49774,49775,49777,49778,49779,49781,49782,49783,49784,49785,49786,49787,49790,49792,49794,49795,49796,49797,49798,49799,49802,49803,49804,49805,49806,49807,49809,49810,49811,49812,49813,49814,49815,49817,49818,49820,49822,49823,49824,49825,49826,49827,49830,49831,49833,49834,49835,49838,49839,49840,49841,49842,49843,49846,49848,49850,49851,49852,49853,49854,49855,49856,49857,49858,49859,49860,49861,49862,49863,49864,49865,49866,49867,49868,49869,49870,49871,49872,49873,49874,49875,49876,49877,49878,49879,49880,49881,49882,49883,49886,49887,49889,49890,49893,49894,49895,49896,49897,49898,49902,49904,49906,49907,49908,49909,49911,49914,49917,49918,49919,49921,49922,49923,49924,49925,49926,49927,49930,49931,49934,49935,49936,49937,49938,49942,49943,49945,49946,49947,49949,49950,49951,49952,49953,49954,49955,49958,49959,49962,49963,49964,49965,49966,49967,49968,49969,49970,null,null,null,null,null,null,49971,49972,49973,49974,49975,49976,49977,49978,49979,49980,49981,49982,49983,49984,49985,49986,49987,49988,49990,49991,49992,49993,49994,49995,49996,49997,null,null,null,null,null,null,49998,49999,5e4,50001,50002,50003,50004,50005,50006,50007,50008,50009,50010,50011,50012,50013,50014,50015,50016,50017,50018,50019,50020,50021,50022,50023,50026,50027,50029,50030,50031,50033,50035,50036,50037,50038,50039,50042,50043,50046,50047,50048,50049,50050,50051,50053,50054,50055,50057,50058,50059,50061,50062,50063,50064,50065,50066,50067,50068,50069,50070,50071,50072,50073,50074,50075,50076,50077,50078,50079,50080,50081,50082,50083,50084,50085,50086,50087,50088,50089,50090,50091,50092,50093,50094,50095,50096,50097,50098,50099,50100,50101,50102,50103,50104,50105,50106,50107,50108,50109,50110,50111,50113,50114,50115,50116,50117,50118,50119,50120,50121,50122,50123,50124,50125,50126,50127,50128,50129,50130,50131,50132,50133,50134,50135,50138,50139,50141,50142,50145,50147,50148,50149,50150,50151,50154,50155,50156,50158,50159,50160,50161,50162,50163,50166,50167,50169,50170,50171,50172,50173,50174,null,null,null,null,null,null,50175,50176,50177,50178,50179,50180,50181,50182,50183,50185,50186,50187,50188,50189,50190,50191,50193,50194,50195,50196,50197,50198,50199,50200,50201,50202,null,null,null,null,null,null,50203,50204,50205,50206,50207,50208,50209,50210,50211,50213,50214,50215,50216,50217,50218,50219,50221,50222,50223,50225,50226,50227,50229,50230,50231,50232,50233,50234,50235,50238,50239,50240,50241,50242,50243,50244,50245,50246,50247,50249,50250,50251,50252,50253,50254,50255,50256,50257,50258,50259,50260,50261,50262,50263,50264,50265,50266,50267,50268,50269,50270,50271,50272,50273,50274,50275,50278,50279,50281,50282,50283,50285,50286,50287,50288,50289,50290,50291,50294,50295,50296,50298,50299,50300,50301,50302,50303,50305,50306,50307,50308,50309,50310,50311,50312,50313,50314,50315,50316,50317,50318,50319,50320,50321,50322,50323,50325,50326,50327,50328,50329,50330,50331,50333,50334,50335,50336,50337,50338,50339,50340,50341,50342,50343,50344,50345,50346,50347,50348,50349,50350,50351,50352,50353,50354,50355,50356,50357,50358,50359,50361,50362,50363,50365,50366,50367,50368,50369,50370,50371,50372,50373,null,null,null,null,null,null,50374,50375,50376,50377,50378,50379,50380,50381,50382,50383,50384,50385,50386,50387,50388,50389,50390,50391,50392,50393,50394,50395,50396,50397,50398,50399,null,null,null,null,null,null,50400,50401,50402,50403,50404,50405,50406,50407,50408,50410,50411,50412,50413,50414,50415,50418,50419,50421,50422,50423,50425,50427,50428,50429,50430,50434,50435,50436,50437,50438,50439,50440,50441,50442,50443,50445,50446,50447,50449,50450,50451,50453,50454,50455,50456,50457,50458,50459,50461,50462,50463,50464,50465,50466,50467,50468,50469,50470,50471,50474,50475,50477,50478,50479,50481,50482,50483,50484,50485,50486,50487,50490,50492,50494,50495,50496,50497,50498,50499,50502,50503,50507,50511,50512,50513,50514,50518,50522,50523,50524,50527,50530,50531,50533,50534,50535,50537,50538,50539,50540,50541,50542,50543,50546,50550,50551,50552,50553,50554,50555,50558,50559,50561,50562,50563,50565,50566,50568,50569,50570,50571,50574,50576,50578,50579,50580,50582,50585,50586,50587,50589,50590,50591,50593,50594,50595,50596,50597,50598,50599,50600,50602,50603,50604,50605,50606,50607,50608,50609,50610,50611,50614,null,null,null,null,null,null,50615,50618,50623,50624,50625,50626,50627,50635,50637,50639,50642,50643,50645,50646,50647,50649,50650,50651,50652,50653,50654,50655,50658,50660,50662,50663,null,null,null,null,null,null,50664,50665,50666,50667,50671,50673,50674,50675,50677,50680,50681,50682,50683,50690,50691,50692,50697,50698,50699,50701,50702,50703,50705,50706,50707,50708,50709,50710,50711,50714,50717,50718,50719,50720,50721,50722,50723,50726,50727,50729,50730,50731,50735,50737,50738,50742,50744,50746,50748,50749,50750,50751,50754,50755,50757,50758,50759,50761,50762,50763,50764,50765,50766,50767,50770,50774,50775,50776,50777,50778,50779,50782,50783,50785,50786,50787,50788,50789,50790,50791,50792,50793,50794,50795,50797,50798,50800,50802,50803,50804,50805,50806,50807,50810,50811,50813,50814,50815,50817,50818,50819,50820,50821,50822,50823,50826,50828,50830,50831,50832,50833,50834,50835,50838,50839,50841,50842,50843,50845,50846,50847,50848,50849,50850,50851,50854,50856,50858,50859,50860,50861,50862,50863,50866,50867,50869,50870,50871,50875,50876,50877,50878,50879,50882,50884,50886,50887,50888,50889,50890,50891,50894,null,null,null,null,null,null,50895,50897,50898,50899,50901,50902,50903,50904,50905,50906,50907,50910,50911,50914,50915,50916,50917,50918,50919,50922,50923,50925,50926,50927,50929,50930,null,null,null,null,null,null,50931,50932,50933,50934,50935,50938,50939,50940,50942,50943,50944,50945,50946,50947,50950,50951,50953,50954,50955,50957,50958,50959,50960,50961,50962,50963,50966,50968,50970,50971,50972,50973,50974,50975,50978,50979,50981,50982,50983,50985,50986,50987,50988,50989,50990,50991,50994,50996,50998,51e3,51001,51002,51003,51006,51007,51009,51010,51011,51013,51014,51015,51016,51017,51019,51022,51024,51033,51034,51035,51037,51038,51039,51041,51042,51043,51044,51045,51046,51047,51049,51050,51052,51053,51054,51055,51056,51057,51058,51059,51062,51063,51065,51066,51067,51071,51072,51073,51074,51078,51083,51084,51085,51087,51090,51091,51093,51097,51099,51100,51101,51102,51103,51106,51111,51112,51113,51114,51115,51118,51119,51121,51122,51123,51125,51126,51127,51128,51129,51130,51131,51134,51138,51139,51140,51141,51142,51143,51146,51147,51149,51151,51153,51154,51155,51156,51157,51158,51159,51161,51162,51163,51164,null,null,null,null,null,null,51166,51167,51168,51169,51170,51171,51173,51174,51175,51177,51178,51179,51181,51182,51183,51184,51185,51186,51187,51188,51189,51190,51191,51192,51193,51194,null,null,null,null,null,null,51195,51196,51197,51198,51199,51202,51203,51205,51206,51207,51209,51211,51212,51213,51214,51215,51218,51220,51223,51224,51225,51226,51227,51230,51231,51233,51234,51235,51237,51238,51239,51240,51241,51242,51243,51246,51248,51250,51251,51252,51253,51254,51255,51257,51258,51259,51261,51262,51263,51265,51266,51267,51268,51269,51270,51271,51274,51275,51278,51279,51280,51281,51282,51283,51285,51286,51287,51288,51289,51290,51291,51292,51293,51294,51295,51296,51297,51298,51299,51300,51301,51302,51303,51304,51305,51306,51307,51308,51309,51310,51311,51314,51315,51317,51318,51319,51321,51323,51324,51325,51326,51327,51330,51332,51336,51337,51338,51342,51343,51344,51345,51346,51347,51349,51350,51351,51352,51353,51354,51355,51356,51358,51360,51362,51363,51364,51365,51366,51367,51369,51370,51371,51372,51373,51374,51375,51376,51377,51378,51379,51380,51381,51382,51383,51384,51385,51386,51387,51390,51391,51392,51393,null,null,null,null,null,null,51394,51395,51397,51398,51399,51401,51402,51403,51405,51406,51407,51408,51409,51410,51411,51414,51416,51418,51419,51420,51421,51422,51423,51426,51427,51429,null,null,null,null,null,null,51430,51431,51432,51433,51434,51435,51436,51437,51438,51439,51440,51441,51442,51443,51444,51446,51447,51448,51449,51450,51451,51454,51455,51457,51458,51459,51463,51464,51465,51466,51467,51470,12288,12289,12290,183,8229,8230,168,12291,173,8213,8741,65340,8764,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,177,215,247,8800,8804,8805,8734,8756,176,8242,8243,8451,8491,65504,65505,65509,9794,9792,8736,8869,8978,8706,8711,8801,8786,167,8251,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8594,8592,8593,8595,8596,12307,8810,8811,8730,8765,8733,8757,8747,8748,8712,8715,8838,8839,8834,8835,8746,8745,8743,8744,65506,51472,51474,51475,51476,51477,51478,51479,51481,51482,51483,51484,51485,51486,51487,51488,51489,51490,51491,51492,51493,51494,51495,51496,51497,51498,51499,null,null,null,null,null,null,51501,51502,51503,51504,51505,51506,51507,51509,51510,51511,51512,51513,51514,51515,51516,51517,51518,51519,51520,51521,51522,51523,51524,51525,51526,51527,null,null,null,null,null,null,51528,51529,51530,51531,51532,51533,51534,51535,51538,51539,51541,51542,51543,51545,51546,51547,51548,51549,51550,51551,51554,51556,51557,51558,51559,51560,51561,51562,51563,51565,51566,51567,8658,8660,8704,8707,180,65374,711,728,733,730,729,184,731,161,191,720,8750,8721,8719,164,8457,8240,9665,9664,9655,9654,9828,9824,9825,9829,9831,9827,8857,9672,9635,9680,9681,9618,9636,9637,9640,9639,9638,9641,9832,9743,9742,9756,9758,182,8224,8225,8597,8599,8601,8598,8600,9837,9833,9834,9836,12927,12828,8470,13255,8482,13250,13272,8481,8364,174,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,51569,51570,51571,51573,51574,51575,51576,51577,51578,51579,51581,51582,51583,51584,51585,51586,51587,51588,51589,51590,51591,51594,51595,51597,51598,51599,null,null,null,null,null,null,51601,51602,51603,51604,51605,51606,51607,51610,51612,51614,51615,51616,51617,51618,51619,51620,51621,51622,51623,51624,51625,51626,51627,51628,51629,51630,null,null,null,null,null,null,51631,51632,51633,51634,51635,51636,51637,51638,51639,51640,51641,51642,51643,51644,51645,51646,51647,51650,51651,51653,51654,51657,51659,51660,51661,51662,51663,51666,51668,51671,51672,51675,65281,65282,65283,65284,65285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65510,65341,65342,65343,65344,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,51678,51679,51681,51683,51685,51686,51688,51689,51690,51691,51694,51698,51699,51700,51701,51702,51703,51706,51707,51709,51710,51711,51713,51714,51715,51716,null,null,null,null,null,null,51717,51718,51719,51722,51726,51727,51728,51729,51730,51731,51733,51734,51735,51737,51738,51739,51740,51741,51742,51743,51744,51745,51746,51747,51748,51749,null,null,null,null,null,null,51750,51751,51752,51754,51755,51756,51757,51758,51759,51760,51761,51762,51763,51764,51765,51766,51767,51768,51769,51770,51771,51772,51773,51774,51775,51776,51777,51778,51779,51780,51781,51782,12593,12594,12595,12596,12597,12598,12599,12600,12601,12602,12603,12604,12605,12606,12607,12608,12609,12610,12611,12612,12613,12614,12615,12616,12617,12618,12619,12620,12621,12622,12623,12624,12625,12626,12627,12628,12629,12630,12631,12632,12633,12634,12635,12636,12637,12638,12639,12640,12641,12642,12643,12644,12645,12646,12647,12648,12649,12650,12651,12652,12653,12654,12655,12656,12657,12658,12659,12660,12661,12662,12663,12664,12665,12666,12667,12668,12669,12670,12671,12672,12673,12674,12675,12676,12677,12678,12679,12680,12681,12682,12683,12684,12685,12686,51783,51784,51785,51786,51787,51790,51791,51793,51794,51795,51797,51798,51799,51800,51801,51802,51803,51806,51810,51811,51812,51813,51814,51815,51817,51818,null,null,null,null,null,null,51819,51820,51821,51822,51823,51824,51825,51826,51827,51828,51829,51830,51831,51832,51833,51834,51835,51836,51838,51839,51840,51841,51842,51843,51845,51846,null,null,null,null,null,null,51847,51848,51849,51850,51851,51852,51853,51854,51855,51856,51857,51858,51859,51860,51861,51862,51863,51865,51866,51867,51868,51869,51870,51871,51872,51873,51874,51875,51876,51877,51878,51879,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,null,null,null,null,null,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,51880,51881,51882,51883,51884,51885,51886,51887,51888,51889,51890,51891,51892,51893,51894,51895,51896,51897,51898,51899,51902,51903,51905,51906,51907,51909,null,null,null,null,null,null,51910,51911,51912,51913,51914,51915,51918,51920,51922,51924,51925,51926,51927,51930,51931,51932,51933,51934,51935,51937,51938,51939,51940,51941,51942,51943,null,null,null,null,null,null,51944,51945,51946,51947,51949,51950,51951,51952,51953,51954,51955,51957,51958,51959,51960,51961,51962,51963,51964,51965,51966,51967,51968,51969,51970,51971,51972,51973,51974,51975,51977,51978,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,9490,9489,9498,9497,9494,9493,9486,9485,9502,9503,9505,9506,9510,9511,9513,9514,9517,9518,9521,9522,9525,9526,9529,9530,9533,9534,9536,9537,9539,9540,9541,9542,9543,9544,9545,9546,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,51979,51980,51981,51982,51983,51985,51986,51987,51989,51990,51991,51993,51994,51995,51996,51997,51998,51999,52002,52003,52004,52005,52006,52007,52008,52009,null,null,null,null,null,null,52010,52011,52012,52013,52014,52015,52016,52017,52018,52019,52020,52021,52022,52023,52024,52025,52026,52027,52028,52029,52030,52031,52032,52034,52035,52036,null,null,null,null,null,null,52037,52038,52039,52042,52043,52045,52046,52047,52049,52050,52051,52052,52053,52054,52055,52058,52059,52060,52062,52063,52064,52065,52066,52067,52069,52070,52071,52072,52073,52074,52075,52076,13205,13206,13207,8467,13208,13252,13219,13220,13221,13222,13209,13210,13211,13212,13213,13214,13215,13216,13217,13218,13258,13197,13198,13199,13263,13192,13193,13256,13223,13224,13232,13233,13234,13235,13236,13237,13238,13239,13240,13241,13184,13185,13186,13187,13188,13242,13243,13244,13245,13246,13247,13200,13201,13202,13203,13204,8486,13248,13249,13194,13195,13196,13270,13253,13229,13230,13231,13275,13225,13226,13227,13228,13277,13264,13267,13251,13257,13276,13254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52077,52078,52079,52080,52081,52082,52083,52084,52085,52086,52087,52090,52091,52092,52093,52094,52095,52096,52097,52098,52099,52100,52101,52102,52103,52104,null,null,null,null,null,null,52105,52106,52107,52108,52109,52110,52111,52112,52113,52114,52115,52116,52117,52118,52119,52120,52121,52122,52123,52125,52126,52127,52128,52129,52130,52131,null,null,null,null,null,null,52132,52133,52134,52135,52136,52137,52138,52139,52140,52141,52142,52143,52144,52145,52146,52147,52148,52149,52150,52151,52153,52154,52155,52156,52157,52158,52159,52160,52161,52162,52163,52164,198,208,170,294,null,306,null,319,321,216,338,186,222,358,330,null,12896,12897,12898,12899,12900,12901,12902,12903,12904,12905,12906,12907,12908,12909,12910,12911,12912,12913,12914,12915,12916,12917,12918,12919,12920,12921,12922,12923,9424,9425,9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,189,8531,8532,188,190,8539,8540,8541,8542,52165,52166,52167,52168,52169,52170,52171,52172,52173,52174,52175,52176,52177,52178,52179,52181,52182,52183,52184,52185,52186,52187,52188,52189,52190,52191,null,null,null,null,null,null,52192,52193,52194,52195,52197,52198,52200,52202,52203,52204,52205,52206,52207,52208,52209,52210,52211,52212,52213,52214,52215,52216,52217,52218,52219,52220,null,null,null,null,null,null,52221,52222,52223,52224,52225,52226,52227,52228,52229,52230,52231,52232,52233,52234,52235,52238,52239,52241,52242,52243,52245,52246,52247,52248,52249,52250,52251,52254,52255,52256,52259,52260,230,273,240,295,305,307,312,320,322,248,339,223,254,359,331,329,12800,12801,12802,12803,12804,12805,12806,12807,12808,12809,12810,12811,12812,12813,12814,12815,12816,12817,12818,12819,12820,12821,12822,12823,12824,12825,12826,12827,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,185,178,179,8308,8319,8321,8322,8323,8324,52261,52262,52266,52267,52269,52271,52273,52274,52275,52276,52277,52278,52279,52282,52287,52288,52289,52290,52291,52294,52295,52297,52298,52299,52301,52302,null,null,null,null,null,null,52303,52304,52305,52306,52307,52310,52314,52315,52316,52317,52318,52319,52321,52322,52323,52325,52327,52329,52330,52331,52332,52333,52334,52335,52337,52338,null,null,null,null,null,null,52339,52340,52342,52343,52344,52345,52346,52347,52348,52349,52350,52351,52352,52353,52354,52355,52356,52357,52358,52359,52360,52361,52362,52363,52364,52365,52366,52367,52368,52369,52370,52371,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,52372,52373,52374,52375,52378,52379,52381,52382,52383,52385,52386,52387,52388,52389,52390,52391,52394,52398,52399,52400,52401,52402,52403,52406,52407,52409,null,null,null,null,null,null,52410,52411,52413,52414,52415,52416,52417,52418,52419,52422,52424,52426,52427,52428,52429,52430,52431,52433,52434,52435,52437,52438,52439,52440,52441,52442,null,null,null,null,null,null,52443,52444,52445,52446,52447,52448,52449,52450,52451,52453,52454,52455,52456,52457,52458,52459,52461,52462,52463,52465,52466,52467,52468,52469,52470,52471,52472,52473,52474,52475,52476,52477,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,52478,52479,52480,52482,52483,52484,52485,52486,52487,52490,52491,52493,52494,52495,52497,52498,52499,52500,52501,52502,52503,52506,52508,52510,52511,52512,null,null,null,null,null,null,52513,52514,52515,52517,52518,52519,52521,52522,52523,52525,52526,52527,52528,52529,52530,52531,52532,52533,52534,52535,52536,52538,52539,52540,52541,52542,null,null,null,null,null,null,52543,52544,52545,52546,52547,52548,52549,52550,52551,52552,52553,52554,52555,52556,52557,52558,52559,52560,52561,52562,52563,52564,52565,52566,52567,52568,52569,52570,52571,52573,52574,52575,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,52577,52578,52579,52581,52582,52583,52584,52585,52586,52587,52590,52592,52594,52595,52596,52597,52598,52599,52601,52602,52603,52604,52605,52606,52607,52608,null,null,null,null,null,null,52609,52610,52611,52612,52613,52614,52615,52617,52618,52619,52620,52621,52622,52623,52624,52625,52626,52627,52630,52631,52633,52634,52635,52637,52638,52639,null,null,null,null,null,null,52640,52641,52642,52643,52646,52648,52650,52651,52652,52653,52654,52655,52657,52658,52659,52660,52661,52662,52663,52664,52665,52666,52667,52668,52669,52670,52671,52672,52673,52674,52675,52677,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52678,52679,52680,52681,52682,52683,52685,52686,52687,52689,52690,52691,52692,52693,52694,52695,52696,52697,52698,52699,52700,52701,52702,52703,52704,52705,null,null,null,null,null,null,52706,52707,52708,52709,52710,52711,52713,52714,52715,52717,52718,52719,52721,52722,52723,52724,52725,52726,52727,52730,52732,52734,52735,52736,52737,52738,null,null,null,null,null,null,52739,52741,52742,52743,52745,52746,52747,52749,52750,52751,52752,52753,52754,52755,52757,52758,52759,52760,52762,52763,52764,52765,52766,52767,52770,52771,52773,52774,52775,52777,52778,52779,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52780,52781,52782,52783,52786,52788,52790,52791,52792,52793,52794,52795,52796,52797,52798,52799,52800,52801,52802,52803,52804,52805,52806,52807,52808,52809,null,null,null,null,null,null,52810,52811,52812,52813,52814,52815,52816,52817,52818,52819,52820,52821,52822,52823,52826,52827,52829,52830,52834,52835,52836,52837,52838,52839,52842,52844,null,null,null,null,null,null,52846,52847,52848,52849,52850,52851,52854,52855,52857,52858,52859,52861,52862,52863,52864,52865,52866,52867,52870,52872,52874,52875,52876,52877,52878,52879,52882,52883,52885,52886,52887,52889,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52890,52891,52892,52893,52894,52895,52898,52902,52903,52904,52905,52906,52907,52910,52911,52912,52913,52914,52915,52916,52917,52918,52919,52920,52921,52922,null,null,null,null,null,null,52923,52924,52925,52926,52927,52928,52930,52931,52932,52933,52934,52935,52936,52937,52938,52939,52940,52941,52942,52943,52944,52945,52946,52947,52948,52949,null,null,null,null,null,null,52950,52951,52952,52953,52954,52955,52956,52957,52958,52959,52960,52961,52962,52963,52966,52967,52969,52970,52973,52974,52975,52976,52977,52978,52979,52982,52986,52987,52988,52989,52990,52991,44032,44033,44036,44039,44040,44041,44042,44048,44049,44050,44051,44052,44053,44054,44055,44057,44058,44059,44060,44061,44064,44068,44076,44077,44079,44080,44081,44088,44089,44092,44096,44107,44109,44116,44120,44124,44144,44145,44148,44151,44152,44154,44160,44161,44163,44164,44165,44166,44169,44170,44171,44172,44176,44180,44188,44189,44191,44192,44193,44200,44201,44202,44204,44207,44208,44216,44217,44219,44220,44221,44225,44228,44232,44236,44245,44247,44256,44257,44260,44263,44264,44266,44268,44271,44272,44273,44275,44277,44278,44284,44285,44288,44292,44294,52994,52995,52997,52998,52999,53001,53002,53003,53004,53005,53006,53007,53010,53012,53014,53015,53016,53017,53018,53019,53021,53022,53023,53025,53026,53027,null,null,null,null,null,null,53029,53030,53031,53032,53033,53034,53035,53038,53042,53043,53044,53045,53046,53047,53049,53050,53051,53052,53053,53054,53055,53056,53057,53058,53059,53060,null,null,null,null,null,null,53061,53062,53063,53064,53065,53066,53067,53068,53069,53070,53071,53072,53073,53074,53075,53078,53079,53081,53082,53083,53085,53086,53087,53088,53089,53090,53091,53094,53096,53098,53099,53100,44300,44301,44303,44305,44312,44316,44320,44329,44332,44333,44340,44341,44344,44348,44356,44357,44359,44361,44368,44372,44376,44385,44387,44396,44397,44400,44403,44404,44405,44406,44411,44412,44413,44415,44417,44418,44424,44425,44428,44432,44444,44445,44452,44471,44480,44481,44484,44488,44496,44497,44499,44508,44512,44516,44536,44537,44540,44543,44544,44545,44552,44553,44555,44557,44564,44592,44593,44596,44599,44600,44602,44608,44609,44611,44613,44614,44618,44620,44621,44622,44624,44628,44630,44636,44637,44639,44640,44641,44645,44648,44649,44652,44656,44664,53101,53102,53103,53106,53107,53109,53110,53111,53113,53114,53115,53116,53117,53118,53119,53121,53122,53123,53124,53126,53127,53128,53129,53130,53131,53133,null,null,null,null,null,null,53134,53135,53136,53137,53138,53139,53140,53141,53142,53143,53144,53145,53146,53147,53148,53149,53150,53151,53152,53154,53155,53156,53157,53158,53159,53161,null,null,null,null,null,null,53162,53163,53164,53165,53166,53167,53169,53170,53171,53172,53173,53174,53175,53176,53177,53178,53179,53180,53181,53182,53183,53184,53185,53186,53187,53189,53190,53191,53192,53193,53194,53195,44665,44667,44668,44669,44676,44677,44684,44732,44733,44734,44736,44740,44748,44749,44751,44752,44753,44760,44761,44764,44776,44779,44781,44788,44792,44796,44807,44808,44813,44816,44844,44845,44848,44850,44852,44860,44861,44863,44865,44866,44867,44872,44873,44880,44892,44893,44900,44901,44921,44928,44932,44936,44944,44945,44949,44956,44984,44985,44988,44992,44999,45e3,45001,45003,45005,45006,45012,45020,45032,45033,45040,45041,45044,45048,45056,45057,45060,45068,45072,45076,45084,45085,45096,45124,45125,45128,45130,45132,45134,45139,45140,45141,45143,45145,53196,53197,53198,53199,53200,53201,53202,53203,53204,53205,53206,53207,53208,53209,53210,53211,53212,53213,53214,53215,53218,53219,53221,53222,53223,53225,null,null,null,null,null,null,53226,53227,53228,53229,53230,53231,53234,53236,53238,53239,53240,53241,53242,53243,53245,53246,53247,53249,53250,53251,53253,53254,53255,53256,53257,53258,null,null,null,null,null,null,53259,53260,53261,53262,53263,53264,53266,53267,53268,53269,53270,53271,53273,53274,53275,53276,53277,53278,53279,53280,53281,53282,53283,53284,53285,53286,53287,53288,53289,53290,53291,53292,45149,45180,45181,45184,45188,45196,45197,45199,45201,45208,45209,45210,45212,45215,45216,45217,45218,45224,45225,45227,45228,45229,45230,45231,45233,45235,45236,45237,45240,45244,45252,45253,45255,45256,45257,45264,45265,45268,45272,45280,45285,45320,45321,45323,45324,45328,45330,45331,45336,45337,45339,45340,45341,45347,45348,45349,45352,45356,45364,45365,45367,45368,45369,45376,45377,45380,45384,45392,45393,45396,45397,45400,45404,45408,45432,45433,45436,45440,45442,45448,45449,45451,45453,45458,45459,45460,45464,45468,45480,45516,45520,45524,45532,45533,53294,53295,53296,53297,53298,53299,53302,53303,53305,53306,53307,53309,53310,53311,53312,53313,53314,53315,53318,53320,53322,53323,53324,53325,53326,53327,null,null,null,null,null,null,53329,53330,53331,53333,53334,53335,53337,53338,53339,53340,53341,53342,53343,53345,53346,53347,53348,53349,53350,53351,53352,53353,53354,53355,53358,53359,null,null,null,null,null,null,53361,53362,53363,53365,53366,53367,53368,53369,53370,53371,53374,53375,53376,53378,53379,53380,53381,53382,53383,53384,53385,53386,53387,53388,53389,53390,53391,53392,53393,53394,53395,53396,45535,45544,45545,45548,45552,45561,45563,45565,45572,45573,45576,45579,45580,45588,45589,45591,45593,45600,45620,45628,45656,45660,45664,45672,45673,45684,45685,45692,45700,45701,45705,45712,45713,45716,45720,45721,45722,45728,45729,45731,45733,45734,45738,45740,45744,45748,45768,45769,45772,45776,45778,45784,45785,45787,45789,45794,45796,45797,45798,45800,45803,45804,45805,45806,45807,45811,45812,45813,45815,45816,45817,45818,45819,45823,45824,45825,45828,45832,45840,45841,45843,45844,45845,45852,45908,45909,45910,45912,45915,45916,45918,45919,45924,45925,53397,53398,53399,53400,53401,53402,53403,53404,53405,53406,53407,53408,53409,53410,53411,53414,53415,53417,53418,53419,53421,53422,53423,53424,53425,53426,null,null,null,null,null,null,53427,53430,53432,53434,53435,53436,53437,53438,53439,53442,53443,53445,53446,53447,53450,53451,53452,53453,53454,53455,53458,53462,53463,53464,53465,53466,null,null,null,null,null,null,53467,53470,53471,53473,53474,53475,53477,53478,53479,53480,53481,53482,53483,53486,53490,53491,53492,53493,53494,53495,53497,53498,53499,53500,53501,53502,53503,53504,53505,53506,53507,53508,45927,45929,45931,45934,45936,45937,45940,45944,45952,45953,45955,45956,45957,45964,45968,45972,45984,45985,45992,45996,46020,46021,46024,46027,46028,46030,46032,46036,46037,46039,46041,46043,46045,46048,46052,46056,46076,46096,46104,46108,46112,46120,46121,46123,46132,46160,46161,46164,46168,46176,46177,46179,46181,46188,46208,46216,46237,46244,46248,46252,46261,46263,46265,46272,46276,46280,46288,46293,46300,46301,46304,46307,46308,46310,46316,46317,46319,46321,46328,46356,46357,46360,46363,46364,46372,46373,46375,46376,46377,46378,46384,46385,46388,46392,53509,53510,53511,53512,53513,53514,53515,53516,53518,53519,53520,53521,53522,53523,53524,53525,53526,53527,53528,53529,53530,53531,53532,53533,53534,53535,null,null,null,null,null,null,53536,53537,53538,53539,53540,53541,53542,53543,53544,53545,53546,53547,53548,53549,53550,53551,53554,53555,53557,53558,53559,53561,53563,53564,53565,53566,null,null,null,null,null,null,53567,53570,53574,53575,53576,53577,53578,53579,53582,53583,53585,53586,53587,53589,53590,53591,53592,53593,53594,53595,53598,53600,53602,53603,53604,53605,53606,53607,53609,53610,53611,53613,46400,46401,46403,46404,46405,46411,46412,46413,46416,46420,46428,46429,46431,46432,46433,46496,46497,46500,46504,46506,46507,46512,46513,46515,46516,46517,46523,46524,46525,46528,46532,46540,46541,46543,46544,46545,46552,46572,46608,46609,46612,46616,46629,46636,46644,46664,46692,46696,46748,46749,46752,46756,46763,46764,46769,46804,46832,46836,46840,46848,46849,46853,46888,46889,46892,46895,46896,46904,46905,46907,46916,46920,46924,46932,46933,46944,46948,46952,46960,46961,46963,46965,46972,46973,46976,46980,46988,46989,46991,46992,46993,46994,46998,46999,53614,53615,53616,53617,53618,53619,53620,53621,53622,53623,53624,53625,53626,53627,53629,53630,53631,53632,53633,53634,53635,53637,53638,53639,53641,53642,null,null,null,null,null,null,53643,53644,53645,53646,53647,53648,53649,53650,53651,53652,53653,53654,53655,53656,53657,53658,53659,53660,53661,53662,53663,53666,53667,53669,53670,53671,null,null,null,null,null,null,53673,53674,53675,53676,53677,53678,53679,53682,53684,53686,53687,53688,53689,53691,53693,53694,53695,53697,53698,53699,53700,53701,53702,53703,53704,53705,53706,53707,53708,53709,53710,53711,47e3,47001,47004,47008,47016,47017,47019,47020,47021,47028,47029,47032,47047,47049,47084,47085,47088,47092,47100,47101,47103,47104,47105,47111,47112,47113,47116,47120,47128,47129,47131,47133,47140,47141,47144,47148,47156,47157,47159,47160,47161,47168,47172,47185,47187,47196,47197,47200,47204,47212,47213,47215,47217,47224,47228,47245,47272,47280,47284,47288,47296,47297,47299,47301,47308,47312,47316,47325,47327,47329,47336,47337,47340,47344,47352,47353,47355,47357,47364,47384,47392,47420,47421,47424,47428,47436,47439,47441,47448,47449,47452,47456,47464,47465,53712,53713,53714,53715,53716,53717,53718,53719,53721,53722,53723,53724,53725,53726,53727,53728,53729,53730,53731,53732,53733,53734,53735,53736,53737,53738,null,null,null,null,null,null,53739,53740,53741,53742,53743,53744,53745,53746,53747,53749,53750,53751,53753,53754,53755,53756,53757,53758,53759,53760,53761,53762,53763,53764,53765,53766,null,null,null,null,null,null,53768,53770,53771,53772,53773,53774,53775,53777,53778,53779,53780,53781,53782,53783,53784,53785,53786,53787,53788,53789,53790,53791,53792,53793,53794,53795,53796,53797,53798,53799,53800,53801,47467,47469,47476,47477,47480,47484,47492,47493,47495,47497,47498,47501,47502,47532,47533,47536,47540,47548,47549,47551,47553,47560,47561,47564,47566,47567,47568,47569,47570,47576,47577,47579,47581,47582,47585,47587,47588,47589,47592,47596,47604,47605,47607,47608,47609,47610,47616,47617,47624,47637,47672,47673,47676,47680,47682,47688,47689,47691,47693,47694,47699,47700,47701,47704,47708,47716,47717,47719,47720,47721,47728,47729,47732,47736,47747,47748,47749,47751,47756,47784,47785,47787,47788,47792,47794,47800,47801,47803,47805,47812,47816,47832,47833,47868,53802,53803,53806,53807,53809,53810,53811,53813,53814,53815,53816,53817,53818,53819,53822,53824,53826,53827,53828,53829,53830,53831,53833,53834,53835,53836,null,null,null,null,null,null,53837,53838,53839,53840,53841,53842,53843,53844,53845,53846,53847,53848,53849,53850,53851,53853,53854,53855,53856,53857,53858,53859,53861,53862,53863,53864,null,null,null,null,null,null,53865,53866,53867,53868,53869,53870,53871,53872,53873,53874,53875,53876,53877,53878,53879,53880,53881,53882,53883,53884,53885,53886,53887,53890,53891,53893,53894,53895,53897,53898,53899,53900,47872,47876,47885,47887,47889,47896,47900,47904,47913,47915,47924,47925,47926,47928,47931,47932,47933,47934,47940,47941,47943,47945,47949,47951,47952,47956,47960,47969,47971,47980,48008,48012,48016,48036,48040,48044,48052,48055,48064,48068,48072,48080,48083,48120,48121,48124,48127,48128,48130,48136,48137,48139,48140,48141,48143,48145,48148,48149,48150,48151,48152,48155,48156,48157,48158,48159,48164,48165,48167,48169,48173,48176,48177,48180,48184,48192,48193,48195,48196,48197,48201,48204,48205,48208,48221,48260,48261,48264,48267,48268,48270,48276,48277,48279,53901,53902,53903,53906,53907,53908,53910,53911,53912,53913,53914,53915,53917,53918,53919,53921,53922,53923,53925,53926,53927,53928,53929,53930,53931,53933,null,null,null,null,null,null,53934,53935,53936,53938,53939,53940,53941,53942,53943,53946,53947,53949,53950,53953,53955,53956,53957,53958,53959,53962,53964,53965,53966,53967,53968,53969,null,null,null,null,null,null,53970,53971,53973,53974,53975,53977,53978,53979,53981,53982,53983,53984,53985,53986,53987,53990,53991,53992,53993,53994,53995,53996,53997,53998,53999,54002,54003,54005,54006,54007,54009,54010,48281,48282,48288,48289,48292,48295,48296,48304,48305,48307,48308,48309,48316,48317,48320,48324,48333,48335,48336,48337,48341,48344,48348,48372,48373,48374,48376,48380,48388,48389,48391,48393,48400,48404,48420,48428,48448,48456,48457,48460,48464,48472,48473,48484,48488,48512,48513,48516,48519,48520,48521,48522,48528,48529,48531,48533,48537,48538,48540,48548,48560,48568,48596,48597,48600,48604,48617,48624,48628,48632,48640,48643,48645,48652,48653,48656,48660,48668,48669,48671,48708,48709,48712,48716,48718,48724,48725,48727,48729,48730,48731,48736,48737,48740,54011,54012,54013,54014,54015,54018,54020,54022,54023,54024,54025,54026,54027,54031,54033,54034,54035,54037,54039,54040,54041,54042,54043,54046,54050,54051,null,null,null,null,null,null,54052,54054,54055,54058,54059,54061,54062,54063,54065,54066,54067,54068,54069,54070,54071,54074,54078,54079,54080,54081,54082,54083,54086,54087,54088,54089,null,null,null,null,null,null,54090,54091,54092,54093,54094,54095,54096,54097,54098,54099,54100,54101,54102,54103,54104,54105,54106,54107,54108,54109,54110,54111,54112,54113,54114,54115,54116,54117,54118,54119,54120,54121,48744,48746,48752,48753,48755,48756,48757,48763,48764,48765,48768,48772,48780,48781,48783,48784,48785,48792,48793,48808,48848,48849,48852,48855,48856,48864,48867,48868,48869,48876,48897,48904,48905,48920,48921,48923,48924,48925,48960,48961,48964,48968,48976,48977,48981,49044,49072,49093,49100,49101,49104,49108,49116,49119,49121,49212,49233,49240,49244,49248,49256,49257,49296,49297,49300,49304,49312,49313,49315,49317,49324,49325,49327,49328,49331,49332,49333,49334,49340,49341,49343,49344,49345,49349,49352,49353,49356,49360,49368,49369,49371,49372,49373,49380,54122,54123,54124,54125,54126,54127,54128,54129,54130,54131,54132,54133,54134,54135,54136,54137,54138,54139,54142,54143,54145,54146,54147,54149,54150,54151,null,null,null,null,null,null,54152,54153,54154,54155,54158,54162,54163,54164,54165,54166,54167,54170,54171,54173,54174,54175,54177,54178,54179,54180,54181,54182,54183,54186,54188,54190,null,null,null,null,null,null,54191,54192,54193,54194,54195,54197,54198,54199,54201,54202,54203,54205,54206,54207,54208,54209,54210,54211,54214,54215,54218,54219,54220,54221,54222,54223,54225,54226,54227,54228,54229,54230,49381,49384,49388,49396,49397,49399,49401,49408,49412,49416,49424,49429,49436,49437,49438,49439,49440,49443,49444,49446,49447,49452,49453,49455,49456,49457,49462,49464,49465,49468,49472,49480,49481,49483,49484,49485,49492,49493,49496,49500,49508,49509,49511,49512,49513,49520,49524,49528,49541,49548,49549,49550,49552,49556,49558,49564,49565,49567,49569,49573,49576,49577,49580,49584,49597,49604,49608,49612,49620,49623,49624,49632,49636,49640,49648,49649,49651,49660,49661,49664,49668,49676,49677,49679,49681,49688,49689,49692,49695,49696,49704,49705,49707,49709,54231,54233,54234,54235,54236,54237,54238,54239,54240,54242,54244,54245,54246,54247,54248,54249,54250,54251,54254,54255,54257,54258,54259,54261,54262,54263,null,null,null,null,null,null,54264,54265,54266,54267,54270,54272,54274,54275,54276,54277,54278,54279,54281,54282,54283,54284,54285,54286,54287,54288,54289,54290,54291,54292,54293,54294,null,null,null,null,null,null,54295,54296,54297,54298,54299,54300,54302,54303,54304,54305,54306,54307,54308,54309,54310,54311,54312,54313,54314,54315,54316,54317,54318,54319,54320,54321,54322,54323,54324,54325,54326,54327,49711,49713,49714,49716,49736,49744,49745,49748,49752,49760,49765,49772,49773,49776,49780,49788,49789,49791,49793,49800,49801,49808,49816,49819,49821,49828,49829,49832,49836,49837,49844,49845,49847,49849,49884,49885,49888,49891,49892,49899,49900,49901,49903,49905,49910,49912,49913,49915,49916,49920,49928,49929,49932,49933,49939,49940,49941,49944,49948,49956,49957,49960,49961,49989,50024,50025,50028,50032,50034,50040,50041,50044,50045,50052,50056,50060,50112,50136,50137,50140,50143,50144,50146,50152,50153,50157,50164,50165,50168,50184,50192,50212,50220,50224,54328,54329,54330,54331,54332,54333,54334,54335,54337,54338,54339,54341,54342,54343,54344,54345,54346,54347,54348,54349,54350,54351,54352,54353,54354,54355,null,null,null,null,null,null,54356,54357,54358,54359,54360,54361,54362,54363,54365,54366,54367,54369,54370,54371,54373,54374,54375,54376,54377,54378,54379,54380,54382,54384,54385,54386,null,null,null,null,null,null,54387,54388,54389,54390,54391,54394,54395,54397,54398,54401,54403,54404,54405,54406,54407,54410,54412,54414,54415,54416,54417,54418,54419,54421,54422,54423,54424,54425,54426,54427,54428,54429,50228,50236,50237,50248,50276,50277,50280,50284,50292,50293,50297,50304,50324,50332,50360,50364,50409,50416,50417,50420,50424,50426,50431,50432,50433,50444,50448,50452,50460,50472,50473,50476,50480,50488,50489,50491,50493,50500,50501,50504,50505,50506,50508,50509,50510,50515,50516,50517,50519,50520,50521,50525,50526,50528,50529,50532,50536,50544,50545,50547,50548,50549,50556,50557,50560,50564,50567,50572,50573,50575,50577,50581,50583,50584,50588,50592,50601,50612,50613,50616,50617,50619,50620,50621,50622,50628,50629,50630,50631,50632,50633,50634,50636,50638,54430,54431,54432,54433,54434,54435,54436,54437,54438,54439,54440,54442,54443,54444,54445,54446,54447,54448,54449,54450,54451,54452,54453,54454,54455,54456,null,null,null,null,null,null,54457,54458,54459,54460,54461,54462,54463,54464,54465,54466,54467,54468,54469,54470,54471,54472,54473,54474,54475,54477,54478,54479,54481,54482,54483,54485,null,null,null,null,null,null,54486,54487,54488,54489,54490,54491,54493,54494,54496,54497,54498,54499,54500,54501,54502,54503,54505,54506,54507,54509,54510,54511,54513,54514,54515,54516,54517,54518,54519,54521,54522,54524,50640,50641,50644,50648,50656,50657,50659,50661,50668,50669,50670,50672,50676,50678,50679,50684,50685,50686,50687,50688,50689,50693,50694,50695,50696,50700,50704,50712,50713,50715,50716,50724,50725,50728,50732,50733,50734,50736,50739,50740,50741,50743,50745,50747,50752,50753,50756,50760,50768,50769,50771,50772,50773,50780,50781,50784,50796,50799,50801,50808,50809,50812,50816,50824,50825,50827,50829,50836,50837,50840,50844,50852,50853,50855,50857,50864,50865,50868,50872,50873,50874,50880,50881,50883,50885,50892,50893,50896,50900,50908,50909,50912,50913,50920,54526,54527,54528,54529,54530,54531,54533,54534,54535,54537,54538,54539,54541,54542,54543,54544,54545,54546,54547,54550,54552,54553,54554,54555,54556,54557,null,null,null,null,null,null,54558,54559,54560,54561,54562,54563,54564,54565,54566,54567,54568,54569,54570,54571,54572,54573,54574,54575,54576,54577,54578,54579,54580,54581,54582,54583,null,null,null,null,null,null,54584,54585,54586,54587,54590,54591,54593,54594,54595,54597,54598,54599,54600,54601,54602,54603,54606,54608,54610,54611,54612,54613,54614,54615,54618,54619,54621,54622,54623,54625,54626,54627,50921,50924,50928,50936,50937,50941,50948,50949,50952,50956,50964,50965,50967,50969,50976,50977,50980,50984,50992,50993,50995,50997,50999,51004,51005,51008,51012,51018,51020,51021,51023,51025,51026,51027,51028,51029,51030,51031,51032,51036,51040,51048,51051,51060,51061,51064,51068,51069,51070,51075,51076,51077,51079,51080,51081,51082,51086,51088,51089,51092,51094,51095,51096,51098,51104,51105,51107,51108,51109,51110,51116,51117,51120,51124,51132,51133,51135,51136,51137,51144,51145,51148,51150,51152,51160,51165,51172,51176,51180,51200,51201,51204,51208,51210,54628,54630,54631,54634,54636,54638,54639,54640,54641,54642,54643,54646,54647,54649,54650,54651,54653,54654,54655,54656,54657,54658,54659,54662,54666,54667,null,null,null,null,null,null,54668,54669,54670,54671,54673,54674,54675,54676,54677,54678,54679,54680,54681,54682,54683,54684,54685,54686,54687,54688,54689,54690,54691,54692,54694,54695,null,null,null,null,null,null,54696,54697,54698,54699,54700,54701,54702,54703,54704,54705,54706,54707,54708,54709,54710,54711,54712,54713,54714,54715,54716,54717,54718,54719,54720,54721,54722,54723,54724,54725,54726,54727,51216,51217,51219,51221,51222,51228,51229,51232,51236,51244,51245,51247,51249,51256,51260,51264,51272,51273,51276,51277,51284,51312,51313,51316,51320,51322,51328,51329,51331,51333,51334,51335,51339,51340,51341,51348,51357,51359,51361,51368,51388,51389,51396,51400,51404,51412,51413,51415,51417,51424,51425,51428,51445,51452,51453,51456,51460,51461,51462,51468,51469,51471,51473,51480,51500,51508,51536,51537,51540,51544,51552,51553,51555,51564,51568,51572,51580,51592,51593,51596,51600,51608,51609,51611,51613,51648,51649,51652,51655,51656,51658,51664,51665,51667,54730,54731,54733,54734,54735,54737,54739,54740,54741,54742,54743,54746,54748,54750,54751,54752,54753,54754,54755,54758,54759,54761,54762,54763,54765,54766,null,null,null,null,null,null,54767,54768,54769,54770,54771,54774,54776,54778,54779,54780,54781,54782,54783,54786,54787,54789,54790,54791,54793,54794,54795,54796,54797,54798,54799,54802,null,null,null,null,null,null,54806,54807,54808,54809,54810,54811,54813,54814,54815,54817,54818,54819,54821,54822,54823,54824,54825,54826,54827,54828,54830,54831,54832,54833,54834,54835,54836,54837,54838,54839,54842,54843,51669,51670,51673,51674,51676,51677,51680,51682,51684,51687,51692,51693,51695,51696,51697,51704,51705,51708,51712,51720,51721,51723,51724,51725,51732,51736,51753,51788,51789,51792,51796,51804,51805,51807,51808,51809,51816,51837,51844,51864,51900,51901,51904,51908,51916,51917,51919,51921,51923,51928,51929,51936,51948,51956,51976,51984,51988,51992,52e3,52001,52033,52040,52041,52044,52048,52056,52057,52061,52068,52088,52089,52124,52152,52180,52196,52199,52201,52236,52237,52240,52244,52252,52253,52257,52258,52263,52264,52265,52268,52270,52272,52280,52281,52283,54845,54846,54847,54849,54850,54851,54852,54854,54855,54858,54860,54862,54863,54864,54866,54867,54870,54871,54873,54874,54875,54877,54878,54879,54880,54881,null,null,null,null,null,null,54882,54883,54884,54885,54886,54888,54890,54891,54892,54893,54894,54895,54898,54899,54901,54902,54903,54904,54905,54906,54907,54908,54909,54910,54911,54912,null,null,null,null,null,null,54913,54914,54916,54918,54919,54920,54921,54922,54923,54926,54927,54929,54930,54931,54933,54934,54935,54936,54937,54938,54939,54940,54942,54944,54946,54947,54948,54949,54950,54951,54953,54954,52284,52285,52286,52292,52293,52296,52300,52308,52309,52311,52312,52313,52320,52324,52326,52328,52336,52341,52376,52377,52380,52384,52392,52393,52395,52396,52397,52404,52405,52408,52412,52420,52421,52423,52425,52432,52436,52452,52460,52464,52481,52488,52489,52492,52496,52504,52505,52507,52509,52516,52520,52524,52537,52572,52576,52580,52588,52589,52591,52593,52600,52616,52628,52629,52632,52636,52644,52645,52647,52649,52656,52676,52684,52688,52712,52716,52720,52728,52729,52731,52733,52740,52744,52748,52756,52761,52768,52769,52772,52776,52784,52785,52787,52789,54955,54957,54958,54959,54961,54962,54963,54964,54965,54966,54967,54968,54970,54972,54973,54974,54975,54976,54977,54978,54979,54982,54983,54985,54986,54987,null,null,null,null,null,null,54989,54990,54991,54992,54994,54995,54997,54998,55e3,55002,55003,55004,55005,55006,55007,55009,55010,55011,55013,55014,55015,55017,55018,55019,55020,55021,null,null,null,null,null,null,55022,55023,55025,55026,55027,55028,55030,55031,55032,55033,55034,55035,55038,55039,55041,55042,55043,55045,55046,55047,55048,55049,55050,55051,55052,55053,55054,55055,55056,55058,55059,55060,52824,52825,52828,52831,52832,52833,52840,52841,52843,52845,52852,52853,52856,52860,52868,52869,52871,52873,52880,52881,52884,52888,52896,52897,52899,52900,52901,52908,52909,52929,52964,52965,52968,52971,52972,52980,52981,52983,52984,52985,52992,52993,52996,53e3,53008,53009,53011,53013,53020,53024,53028,53036,53037,53039,53040,53041,53048,53076,53077,53080,53084,53092,53093,53095,53097,53104,53105,53108,53112,53120,53125,53132,53153,53160,53168,53188,53216,53217,53220,53224,53232,53233,53235,53237,53244,53248,53252,53265,53272,53293,53300,53301,53304,53308,55061,55062,55063,55066,55067,55069,55070,55071,55073,55074,55075,55076,55077,55078,55079,55082,55084,55086,55087,55088,55089,55090,55091,55094,55095,55097,null,null,null,null,null,null,55098,55099,55101,55102,55103,55104,55105,55106,55107,55109,55110,55112,55114,55115,55116,55117,55118,55119,55122,55123,55125,55130,55131,55132,55133,55134,null,null,null,null,null,null,55135,55138,55140,55142,55143,55144,55146,55147,55149,55150,55151,55153,55154,55155,55157,55158,55159,55160,55161,55162,55163,55166,55167,55168,55170,55171,55172,55173,55174,55175,55178,55179,53316,53317,53319,53321,53328,53332,53336,53344,53356,53357,53360,53364,53372,53373,53377,53412,53413,53416,53420,53428,53429,53431,53433,53440,53441,53444,53448,53449,53456,53457,53459,53460,53461,53468,53469,53472,53476,53484,53485,53487,53488,53489,53496,53517,53552,53553,53556,53560,53562,53568,53569,53571,53572,53573,53580,53581,53584,53588,53596,53597,53599,53601,53608,53612,53628,53636,53640,53664,53665,53668,53672,53680,53681,53683,53685,53690,53692,53696,53720,53748,53752,53767,53769,53776,53804,53805,53808,53812,53820,53821,53823,53825,53832,53852,55181,55182,55183,55185,55186,55187,55188,55189,55190,55191,55194,55196,55198,55199,55200,55201,55202,55203,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,53860,53888,53889,53892,53896,53904,53905,53909,53916,53920,53924,53932,53937,53944,53945,53948,53951,53952,53954,53960,53961,53963,53972,53976,53980,53988,53989,54e3,54001,54004,54008,54016,54017,54019,54021,54028,54029,54030,54032,54036,54038,54044,54045,54047,54048,54049,54053,54056,54057,54060,54064,54072,54073,54075,54076,54077,54084,54085,54140,54141,54144,54148,54156,54157,54159,54160,54161,54168,54169,54172,54176,54184,54185,54187,54189,54196,54200,54204,54212,54213,54216,54217,54224,54232,54241,54243,54252,54253,54256,54260,54268,54269,54271,54273,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,54280,54301,54336,54340,54364,54368,54372,54381,54383,54392,54393,54396,54399,54400,54402,54408,54409,54411,54413,54420,54441,54476,54480,54484,54492,54495,54504,54508,54512,54520,54523,54525,54532,54536,54540,54548,54549,54551,54588,54589,54592,54596,54604,54605,54607,54609,54616,54617,54620,54624,54629,54632,54633,54635,54637,54644,54645,54648,54652,54660,54661,54663,54664,54665,54672,54693,54728,54729,54732,54736,54738,54744,54745,54747,54749,54756,54757,54760,54764,54772,54773,54775,54777,54784,54785,54788,54792,54800,54801,54803,54804,54805,54812,54816,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,54820,54829,54840,54841,54844,54848,54853,54856,54857,54859,54861,54865,54868,54869,54872,54876,54887,54889,54896,54897,54900,54915,54917,54924,54925,54928,54932,54941,54943,54945,54952,54956,54960,54969,54971,54980,54981,54984,54988,54993,54996,54999,55001,55008,55012,55016,55024,55029,55036,55037,55040,55044,55057,55064,55065,55068,55072,55080,55081,55083,55085,55092,55093,55096,55100,55108,55111,55113,55120,55121,55124,55126,55127,55128,55129,55136,55137,55139,55141,55145,55148,55152,55156,55164,55165,55169,55176,55177,55180,55184,55192,55193,55195,55197,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20285,20339,20551,20729,21152,21487,21621,21733,22025,23233,23478,26247,26550,26551,26607,27468,29634,30146,31292,33499,33540,34903,34952,35382,36040,36303,36603,36838,39381,21051,21364,21508,24682,24932,27580,29647,33050,35258,35282,38307,20355,21002,22718,22904,23014,24178,24185,25031,25536,26438,26604,26751,28567,30286,30475,30965,31240,31487,31777,32925,33390,33393,35563,38291,20075,21917,26359,28212,30883,31469,33883,35088,34638,38824,21208,22350,22570,23884,24863,25022,25121,25954,26577,27204,28187,29976,30131,30435,30640,32058,37039,37969,37970,40853,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21283,23724,30002,32987,37440,38296,21083,22536,23004,23713,23831,24247,24378,24394,24951,27743,30074,30086,31968,32115,32177,32652,33108,33313,34193,35137,35611,37628,38477,40007,20171,20215,20491,20977,22607,24887,24894,24936,25913,27114,28433,30117,30342,30422,31623,33445,33995,63744,37799,38283,21888,23458,22353,63745,31923,32697,37301,20520,21435,23621,24040,25298,25454,25818,25831,28192,28844,31067,36317,36382,63746,36989,37445,37624,20094,20214,20581,24062,24314,24838,26967,33137,34388,36423,37749,39467,20062,20625,26480,26688,20745,21133,21138,27298,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30652,37392,40660,21163,24623,36850,20552,25001,25581,25802,26684,27268,28608,33160,35233,38548,22533,29309,29356,29956,32121,32365,32937,35211,35700,36963,40273,25225,27770,28500,32080,32570,35363,20860,24906,31645,35609,37463,37772,20140,20435,20510,20670,20742,21185,21197,21375,22384,22659,24218,24465,24950,25004,25806,25964,26223,26299,26356,26775,28039,28805,28913,29855,29861,29898,30169,30828,30956,31455,31478,32069,32147,32789,32831,33051,33686,35686,36629,36885,37857,38915,38968,39514,39912,20418,21843,22586,22865,23395,23622,24760,25106,26690,26800,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26856,28330,30028,30328,30926,31293,31995,32363,32380,35336,35489,35903,38542,40388,21476,21481,21578,21617,22266,22993,23396,23611,24235,25335,25911,25925,25970,26272,26543,27073,27837,30204,30352,30590,31295,32660,32771,32929,33167,33510,33533,33776,34241,34865,34996,35493,63747,36764,37678,38599,39015,39640,40723,21741,26011,26354,26767,31296,35895,40288,22256,22372,23825,26118,26801,26829,28414,29736,34974,39908,27752,63748,39592,20379,20844,20849,21151,23380,24037,24656,24685,25329,25511,25915,29657,31354,34467,36002,38799,20018,23521,25096,26524,29916,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31185,33747,35463,35506,36328,36942,37707,38982,24275,27112,34303,37101,63749,20896,23448,23532,24931,26874,27454,28748,29743,29912,31649,32592,33733,35264,36011,38364,39208,21038,24669,25324,36866,20362,20809,21281,22745,24291,26336,27960,28826,29378,29654,31568,33009,37979,21350,25499,32619,20054,20608,22602,22750,24618,24871,25296,27088,39745,23439,32024,32945,36703,20132,20689,21676,21932,23308,23968,24039,25898,25934,26657,27211,29409,30350,30703,32094,32761,33184,34126,34527,36611,36686,37066,39171,39509,39851,19992,20037,20061,20167,20465,20855,21246,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21312,21475,21477,21646,22036,22389,22434,23495,23943,24272,25084,25304,25937,26552,26601,27083,27472,27590,27628,27714,28317,28792,29399,29590,29699,30655,30697,31350,32127,32777,33276,33285,33290,33503,34914,35635,36092,36544,36881,37041,37476,37558,39378,39493,40169,40407,40860,22283,23616,33738,38816,38827,40628,21531,31384,32676,35033,36557,37089,22528,23624,25496,31391,23470,24339,31353,31406,33422,36524,20518,21048,21240,21367,22280,25331,25458,27402,28099,30519,21413,29527,34152,36470,38357,26426,27331,28528,35437,36556,39243,63750,26231,27512,36020,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,39740,63751,21483,22317,22862,25542,27131,29674,30789,31418,31429,31998,33909,35215,36211,36917,38312,21243,22343,30023,31584,33740,37406,63752,27224,20811,21067,21127,25119,26840,26997,38553,20677,21156,21220,25027,26020,26681,27135,29822,31563,33465,33771,35250,35641,36817,39241,63753,20170,22935,25810,26129,27278,29748,31105,31165,33449,34942,34943,35167,63754,37670,20235,21450,24613,25201,27762,32026,32102,20120,20834,30684,32943,20225,20238,20854,20864,21980,22120,22331,22522,22524,22804,22855,22931,23492,23696,23822,24049,24190,24524,25216,26071,26083,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26398,26399,26462,26827,26820,27231,27450,27683,27773,27778,28103,29592,29734,29738,29826,29859,30072,30079,30849,30959,31041,31047,31048,31098,31637,32e3,32186,32648,32774,32813,32908,35352,35663,35912,36215,37665,37668,39138,39249,39438,39439,39525,40594,32202,20342,21513,25326,26708,37329,21931,20794,63755,63756,23068,25062,63757,25295,25343,63758,63759,63760,63761,63762,63763,37027,63764,63765,63766,63767,63768,35582,63769,63770,63771,63772,26262,63773,29014,63774,63775,38627,63776,25423,25466,21335,63777,26511,26976,28275,63778,30007,63779,63780,63781,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32013,63782,63783,34930,22218,23064,63784,63785,63786,63787,63788,20035,63789,20839,22856,26608,32784,63790,22899,24180,25754,31178,24565,24684,25288,25467,23527,23511,21162,63791,22900,24361,24594,63792,63793,63794,29785,63795,63796,63797,63798,63799,63800,39377,63801,63802,63803,63804,63805,63806,63807,63808,63809,63810,63811,28611,63812,63813,33215,36786,24817,63814,63815,33126,63816,63817,23615,63818,63819,63820,63821,63822,63823,63824,63825,23273,35365,26491,32016,63826,63827,63828,63829,63830,63831,33021,63832,63833,23612,27877,21311,28346,22810,33590,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20025,20150,20294,21934,22296,22727,24406,26039,26086,27264,27573,28237,30701,31471,31774,32222,34507,34962,37170,37723,25787,28606,29562,30136,36948,21846,22349,25018,25812,26311,28129,28251,28525,28601,30192,32835,33213,34113,35203,35527,35674,37663,27795,30035,31572,36367,36957,21776,22530,22616,24162,25095,25758,26848,30070,31958,34739,40680,20195,22408,22382,22823,23565,23729,24118,24453,25140,25825,29619,33274,34955,36024,38538,40667,23429,24503,24755,20498,20992,21040,22294,22581,22615,23566,23648,23798,23947,24230,24466,24764,25361,25481,25623,26691,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26873,27330,28120,28193,28372,28644,29182,30428,30585,31153,31291,33796,35241,36077,36339,36424,36867,36884,36947,37117,37709,38518,38876,27602,28678,29272,29346,29544,30563,31167,31716,32411,35712,22697,24775,25958,26109,26302,27788,28958,29129,35930,38931,20077,31361,20189,20908,20941,21205,21516,24999,26481,26704,26847,27934,28540,30140,30643,31461,33012,33891,37509,20828,26007,26460,26515,30168,31431,33651,63834,35910,36887,38957,23663,33216,33434,36929,36975,37389,24471,23965,27225,29128,30331,31561,34276,35588,37159,39472,21895,25078,63835,30313,32645,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,34367,34746,35064,37007,63836,27931,28889,29662,32097,33853,63837,37226,39409,63838,20098,21365,27396,27410,28734,29211,34349,40478,21068,36771,23888,25829,25900,27414,28651,31811,32412,34253,35172,35261,25289,33240,34847,24266,26391,28010,29436,29701,29807,34690,37086,20358,23821,24480,33802,20919,25504,30053,20142,20486,20841,20937,26753,27153,31918,31921,31975,33391,35538,36635,37327,20406,20791,21237,21570,24300,24942,25150,26053,27354,28670,31018,34268,34851,38317,39522,39530,40599,40654,21147,26310,27511,28701,31019,36706,38722,24976,25088,25891,28451,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29001,29833,32244,32879,34030,36646,36899,37706,20925,21015,21155,27916,28872,35010,24265,25986,27566,28610,31806,29557,20196,20278,22265,63839,23738,23994,24604,29618,31533,32666,32718,32838,36894,37428,38646,38728,38936,40801,20363,28583,31150,37300,38583,21214,63840,25736,25796,27347,28510,28696,29200,30439,32769,34310,34396,36335,36613,38706,39791,40442,40565,30860,31103,32160,33737,37636,40575,40595,35542,22751,24324,26407,28711,29903,31840,32894,20769,28712,29282,30922,36034,36058,36084,38647,20102,20698,23534,24278,26009,29134,30274,30637,32842,34044,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36988,39719,40845,22744,23105,23650,27155,28122,28431,30267,32047,32311,34078,35128,37860,38475,21129,26066,26611,27060,27969,28316,28687,29705,29792,30041,30244,30827,35628,39006,20845,25134,38520,20374,20523,23833,28138,32184,36650,24459,24900,26647,63841,38534,21202,32907,20956,20940,26974,31260,32190,33777,38517,20442,21033,21400,21519,21774,23653,24743,26446,26792,28012,29313,29432,29702,29827,63842,30178,31852,32633,32696,33673,35023,35041,37324,37328,38626,39881,21533,28542,29136,29848,34298,36522,38563,40023,40607,26519,28107,29747,33256,38678,30764,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31435,31520,31890,25705,29802,30194,30908,30952,39340,39764,40635,23518,24149,28448,33180,33707,37e3,19975,21325,23081,24018,24398,24930,25405,26217,26364,28415,28459,28771,30622,33836,34067,34875,36627,39237,39995,21788,25273,26411,27819,33545,35178,38778,20129,22916,24536,24537,26395,32178,32596,33426,33579,33725,36638,37017,22475,22969,23186,23504,26151,26522,26757,27599,29028,32629,36023,36067,36993,39749,33032,35978,38476,39488,40613,23391,27667,29467,30450,30431,33804,20906,35219,20813,20885,21193,26825,27796,30468,30496,32191,32236,38754,40629,28357,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,34065,20901,21517,21629,26126,26269,26919,28319,30399,30609,33559,33986,34719,37225,37528,40180,34946,20398,20882,21215,22982,24125,24917,25720,25721,26286,26576,27169,27597,27611,29279,29281,29761,30520,30683,32791,33468,33541,35584,35624,35980,26408,27792,29287,30446,30566,31302,40361,27519,27794,22818,26406,33945,21359,22675,22937,24287,25551,26164,26483,28218,29483,31447,33495,37672,21209,24043,25006,25035,25098,25287,25771,26080,26969,27494,27595,28961,29687,30045,32326,33310,33538,34154,35491,36031,38695,40289,22696,40664,20497,21006,21563,21839,25991,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27766,32010,32011,32862,34442,38272,38639,21247,27797,29289,21619,23194,23614,23883,24396,24494,26410,26806,26979,28220,28228,30473,31859,32654,34183,35598,36855,38753,40692,23735,24758,24845,25003,25935,26107,26108,27665,27887,29599,29641,32225,38292,23494,34588,35600,21085,21338,25293,25615,25778,26420,27192,27850,29632,29854,31636,31893,32283,33162,33334,34180,36843,38649,39361,20276,21322,21453,21467,25292,25644,25856,26001,27075,27886,28504,29677,30036,30242,30436,30460,30928,30971,31020,32070,33324,34784,36820,38930,39151,21187,25300,25765,28196,28497,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30332,36299,37297,37474,39662,39747,20515,20621,22346,22952,23592,24135,24439,25151,25918,26041,26049,26121,26507,27036,28354,30917,32033,32938,33152,33323,33459,33953,34444,35370,35607,37030,38450,40848,20493,20467,63843,22521,24472,25308,25490,26479,28227,28953,30403,32972,32986,35060,35061,35097,36064,36649,37197,38506,20271,20336,24091,26575,26658,30333,30334,39748,24161,27146,29033,29140,30058,63844,32321,34115,34281,39132,20240,31567,32624,38309,20961,24070,26805,27710,27726,27867,29359,31684,33539,27861,29754,20731,21128,22721,25816,27287,29863,30294,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30887,34327,38370,38713,63845,21342,24321,35722,36776,36783,37002,21029,30629,40009,40712,19993,20482,20853,23643,24183,26142,26170,26564,26821,28851,29953,30149,31177,31453,36647,39200,39432,20445,22561,22577,23542,26222,27493,27921,28282,28541,29668,29995,33769,35036,35091,35676,36628,20239,20693,21264,21340,23443,24489,26381,31119,33145,33583,34068,35079,35206,36665,36667,39333,39954,26412,20086,20472,22857,23553,23791,23792,25447,26834,28925,29090,29739,32299,34028,34562,36898,37586,40179,19981,20184,20463,20613,21078,21103,21542,21648,22496,22827,23142,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,23386,23413,23500,24220,63846,25206,25975,26023,28014,28325,29238,31526,31807,32566,33104,33105,33178,33344,33433,33705,35331,36e3,36070,36091,36212,36282,37096,37340,38428,38468,39385,40167,21271,20998,21545,22132,22707,22868,22894,24575,24996,25198,26128,27774,28954,30406,31881,31966,32027,33452,36033,38640,63847,20315,24343,24447,25282,23849,26379,26842,30844,32323,40300,19989,20633,21269,21290,21329,22915,23138,24199,24754,24970,25161,25209,26e3,26503,27047,27604,27606,27607,27608,27832,63848,29749,30202,30738,30865,31189,31192,31875,32203,32737,32933,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,33086,33218,33778,34586,35048,35513,35692,36027,37145,38750,39131,40763,22188,23338,24428,25996,27315,27567,27996,28657,28693,29277,29613,36007,36051,38971,24977,27703,32856,39425,20045,20107,20123,20181,20282,20284,20351,20447,20735,21490,21496,21766,21987,22235,22763,22882,23057,23531,23546,23556,24051,24107,24473,24605,25448,26012,26031,26614,26619,26797,27515,27801,27863,28195,28681,29509,30722,31038,31040,31072,31169,31721,32023,32114,32902,33293,33678,34001,34503,35039,35408,35422,35613,36060,36198,36781,37034,39164,39391,40605,21066,63849,26388,63850,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20632,21034,23665,25955,27733,29642,29987,30109,31639,33948,37240,38704,20087,25746,27578,29022,34217,19977,63851,26441,26862,28183,33439,34072,34923,25591,28545,37394,39087,19978,20663,20687,20767,21830,21930,22039,23360,23577,23776,24120,24202,24224,24258,24819,26705,27233,28248,29245,29248,29376,30456,31077,31665,32724,35059,35316,35443,35937,36062,38684,22622,29885,36093,21959,63852,31329,32034,33394,29298,29983,29989,63853,31513,22661,22779,23996,24207,24246,24464,24661,25234,25471,25933,26257,26329,26360,26646,26866,29312,29790,31598,32110,32214,32626,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32997,33298,34223,35199,35475,36893,37604,40653,40736,22805,22893,24109,24796,26132,26227,26512,27728,28101,28511,30707,30889,33990,37323,37675,20185,20682,20808,21892,23307,23459,25159,25982,26059,28210,29053,29697,29764,29831,29887,30316,31146,32218,32341,32680,33146,33203,33337,34330,34796,35445,36323,36984,37521,37925,39245,39854,21352,23633,26964,27844,27945,28203,33292,34203,35131,35373,35498,38634,40807,21089,26297,27570,32406,34814,36109,38275,38493,25885,28041,29166,63854,22478,22995,23468,24615,24826,25104,26143,26207,29481,29689,30427,30465,31596,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32854,32882,33125,35488,37266,19990,21218,27506,27927,31237,31545,32048,63855,36016,21484,22063,22609,23477,23567,23569,24034,25152,25475,25620,26157,26803,27836,28040,28335,28703,28836,29138,29990,30095,30094,30233,31505,31712,31787,32032,32057,34092,34157,34311,35380,36877,36961,37045,37559,38902,39479,20439,23660,26463,28049,31903,32396,35606,36118,36895,23403,24061,25613,33984,36956,39137,29575,23435,24730,26494,28126,35359,35494,36865,38924,21047,63856,28753,30862,37782,34928,37335,20462,21463,22013,22234,22402,22781,23234,23432,23723,23744,24101,24833,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,25101,25163,25480,25628,25910,25976,27193,27530,27700,27929,28465,29159,29417,29560,29703,29874,30246,30561,31168,31319,31466,31929,32143,32172,32353,32670,33065,33585,33936,34010,34282,34966,35504,35728,36664,36930,36995,37228,37526,37561,38539,38567,38568,38614,38656,38920,39318,39635,39706,21460,22654,22809,23408,23487,28113,28506,29087,29729,29881,32901,33789,24033,24455,24490,24642,26092,26642,26991,27219,27529,27957,28147,29667,30462,30636,31565,32020,33059,33308,33600,34036,34147,35426,35524,37255,37662,38918,39348,25100,34899,36848,37477,23815,23847,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,23913,29791,33181,34664,28629,25342,32722,35126,35186,19998,20056,20711,21213,21319,25215,26119,32361,34821,38494,20365,21273,22070,22987,23204,23608,23630,23629,24066,24337,24643,26045,26159,26178,26558,26612,29468,30690,31034,32709,33940,33997,35222,35430,35433,35553,35925,35962,22516,23508,24335,24687,25325,26893,27542,28252,29060,31698,34645,35672,36606,39135,39166,20280,20353,20449,21627,23072,23480,24892,26032,26216,29180,30003,31070,32051,33102,33251,33688,34218,34254,34563,35338,36523,36763,63857,36805,22833,23460,23526,24713,23529,23563,24515,27777,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63858,28145,28683,29978,33455,35574,20160,21313,63859,38617,27663,20126,20420,20818,21854,23077,23784,25105,29273,33469,33706,34558,34905,35357,38463,38597,39187,40201,40285,22538,23731,23997,24132,24801,24853,25569,27138,28197,37122,37716,38990,39952,40823,23433,23736,25353,26191,26696,30524,38593,38797,38996,39839,26017,35585,36555,38332,21813,23721,24022,24245,26263,30284,33780,38343,22739,25276,29390,40232,20208,22830,24591,26171,27523,31207,40230,21395,21696,22467,23830,24859,26326,28079,30861,33406,38552,38724,21380,25212,25494,28082,32266,33099,38989,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27387,32588,40367,40474,20063,20539,20918,22812,24825,25590,26928,29242,32822,63860,37326,24369,63861,63862,32004,33509,33903,33979,34277,36493,63863,20335,63864,63865,22756,23363,24665,25562,25880,25965,26264,63866,26954,27171,27915,28673,29036,30162,30221,31155,31344,63867,32650,63868,35140,63869,35731,37312,38525,63870,39178,22276,24481,26044,28417,30208,31142,35486,39341,39770,40812,20740,25014,25233,27277,33222,20547,22576,24422,28937,35328,35578,23420,34326,20474,20796,22196,22852,25513,28153,23978,26989,20870,20104,20313,63871,63872,63873,22914,63874,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63875,27487,27741,63876,29877,30998,63877,33287,33349,33593,36671,36701,63878,39192,63879,63880,63881,20134,63882,22495,24441,26131,63883,63884,30123,32377,35695,63885,36870,39515,22181,22567,23032,23071,23476,63886,24310,63887,63888,25424,25403,63889,26941,27783,27839,28046,28051,28149,28436,63890,28895,28982,29017,63891,29123,29141,63892,30799,30831,63893,31605,32227,63894,32303,63895,34893,36575,63896,63897,63898,37467,63899,40182,63900,63901,63902,24709,28037,63903,29105,63904,63905,38321,21421,63906,63907,63908,26579,63909,28814,28976,29744,33398,33490,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63910,38331,39653,40573,26308,63911,29121,33865,63912,63913,22603,63914,63915,23992,24433,63916,26144,26254,27001,27054,27704,27891,28214,28481,28634,28699,28719,29008,29151,29552,63917,29787,63918,29908,30408,31310,32403,63919,63920,33521,35424,36814,63921,37704,63922,38681,63923,63924,20034,20522,63925,21e3,21473,26355,27757,28618,29450,30591,31330,33454,34269,34306,63926,35028,35427,35709,35947,63927,37555,63928,38675,38928,20116,20237,20425,20658,21320,21566,21555,21978,22626,22714,22887,23067,23524,24735,63929,25034,25942,26111,26212,26791,27738,28595,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,28879,29100,29522,31613,34568,35492,39986,40711,23627,27779,29508,29577,37434,28331,29797,30239,31337,32277,34314,20800,22725,25793,29934,29973,30320,32705,37013,38605,39252,28198,29926,31401,31402,33253,34521,34680,35355,23113,23436,23451,26785,26880,28003,29609,29715,29740,30871,32233,32747,33048,33109,33694,35916,38446,38929,26352,24448,26106,26505,27754,29579,20525,23043,27498,30702,22806,23916,24013,29477,30031,63930,63931,20709,20985,22575,22829,22934,23002,23525,63932,63933,23970,25303,25622,25747,25854,63934,26332,63935,27208,63936,29183,29796,63937,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31368,31407,32327,32350,32768,33136,63938,34799,35201,35616,36953,63939,36992,39250,24958,27442,28020,32287,35109,36785,20433,20653,20887,21191,22471,22665,23481,24248,24898,27029,28044,28263,28342,29076,29794,29992,29996,32883,33592,33993,36362,37780,37854,63940,20110,20305,20598,20778,21448,21451,21491,23431,23507,23588,24858,24962,26100,29275,29591,29760,30402,31056,31121,31161,32006,32701,33419,34261,34398,36802,36935,37109,37354,38533,38632,38633,21206,24423,26093,26161,26671,29020,31286,37057,38922,20113,63941,27218,27550,28560,29065,32792,33464,34131,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36939,38549,38642,38907,34074,39729,20112,29066,38596,20803,21407,21729,22291,22290,22435,23195,23236,23491,24616,24895,25588,27781,27961,28274,28304,29232,29503,29783,33489,34945,36677,36960,63942,38498,39e3,40219,26376,36234,37470,20301,20553,20702,21361,22285,22996,23041,23561,24944,26256,28205,29234,29771,32239,32963,33806,33894,34111,34655,34907,35096,35586,36949,38859,39759,20083,20369,20754,20842,63943,21807,21929,23418,23461,24188,24189,24254,24736,24799,24840,24841,25540,25912,26377,63944,26580,26586,63945,26977,26978,27833,27943,63946,28216,63947,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,28641,29494,29495,63948,29788,30001,63949,30290,63950,63951,32173,33278,33848,35029,35480,35547,35565,36400,36418,36938,36926,36986,37193,37321,37742,63952,63953,22537,63954,27603,32905,32946,63955,63956,20801,22891,23609,63957,63958,28516,29607,32996,36103,63959,37399,38287,63960,63961,63962,63963,32895,25102,28700,32104,34701,63964,22432,24681,24903,27575,35518,37504,38577,20057,21535,28139,34093,38512,38899,39150,25558,27875,37009,20957,25033,33210,40441,20381,20506,20736,23452,24847,25087,25836,26885,27589,30097,30691,32681,33380,34191,34811,34915,35516,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,35696,37291,20108,20197,20234,63965,63966,22839,23016,63967,24050,24347,24411,24609,63968,63969,63970,63971,29246,29669,63972,30064,30157,63973,31227,63974,32780,32819,32900,33505,33617,63975,63976,36029,36019,36999,63977,63978,39156,39180,63979,63980,28727,30410,32714,32716,32764,35610,20154,20161,20995,21360,63981,21693,22240,23035,23493,24341,24525,28270,63982,63983,32106,33589,63984,34451,35469,63985,38765,38775,63986,63987,19968,20314,20350,22777,26085,28322,36920,37808,39353,20219,22764,22922,23001,24641,63988,63989,31252,63990,33615,36035,20837,21316,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63991,63992,63993,20173,21097,23381,33471,20180,21050,21672,22985,23039,23376,23383,23388,24675,24904,28363,28825,29038,29574,29943,30133,30913,32043,32773,33258,33576,34071,34249,35566,36039,38604,20316,21242,22204,26027,26152,28796,28856,29237,32189,33421,37196,38592,40306,23409,26855,27544,28538,30430,23697,26283,28507,31668,31786,34870,38620,19976,20183,21280,22580,22715,22767,22892,23559,24115,24196,24373,25484,26290,26454,27167,27299,27404,28479,29254,63994,29520,29835,31456,31911,33144,33247,33255,33674,33900,34083,34196,34255,35037,36115,37292,38263,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38556,20877,21705,22312,23472,25165,26448,26685,26771,28221,28371,28797,32289,35009,36001,36617,40779,40782,29229,31631,35533,37658,20295,20302,20786,21632,22992,24213,25269,26485,26990,27159,27822,28186,29401,29482,30141,31672,32053,33511,33785,33879,34295,35419,36015,36487,36889,37048,38606,40799,21219,21514,23265,23490,25688,25973,28404,29380,63995,30340,31309,31515,31821,32318,32735,33659,35627,36042,36196,36321,36447,36842,36857,36969,37841,20291,20346,20659,20840,20856,21069,21098,22625,22652,22880,23560,23637,24283,24731,25136,26643,27583,27656,28593,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29006,29728,3e4,30008,30033,30322,31564,31627,31661,31686,32399,35438,36670,36681,37439,37523,37666,37931,38651,39002,39019,39198,20999,25130,25240,27993,30308,31434,31680,32118,21344,23742,24215,28472,28857,31896,38673,39822,40670,25509,25722,34678,19969,20117,20141,20572,20597,21576,22979,23450,24128,24237,24311,24449,24773,25402,25919,25972,26060,26230,26232,26622,26984,27273,27491,27712,28096,28136,28191,28254,28702,28833,29582,29693,30010,30555,30855,31118,31243,31357,31934,32142,33351,35330,35562,35998,37165,37194,37336,37478,37580,37664,38662,38742,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38748,38914,40718,21046,21137,21884,22564,24093,24351,24716,25552,26799,28639,31085,31532,33229,34234,35069,35576,36420,37261,38500,38555,38717,38988,40778,20430,20806,20939,21161,22066,24340,24427,25514,25805,26089,26177,26362,26361,26397,26781,26839,27133,28437,28526,29031,29157,29226,29866,30522,31062,31066,31199,31264,31381,31895,31967,32068,32368,32903,34299,34468,35412,35519,36249,36481,36896,36973,37347,38459,38613,40165,26063,31751,36275,37827,23384,23562,21330,25305,29469,20519,23447,24478,24752,24939,26837,28121,29742,31278,32066,32156,32305,33131,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36394,36405,37758,37912,20304,22352,24038,24231,25387,32618,20027,20303,20367,20570,23005,32964,21610,21608,22014,22863,23449,24030,24282,26205,26417,26609,26666,27880,27954,28234,28557,28855,29664,30087,31820,32002,32044,32162,33311,34523,35387,35461,36208,36490,36659,36913,37198,37202,37956,39376,31481,31909,20426,20737,20934,22472,23535,23803,26201,27197,27994,28310,28652,28940,30063,31459,34850,36897,36981,38603,39423,33537,20013,20210,34886,37325,21373,27355,26987,27713,33914,22686,24974,26366,25327,28893,29969,30151,32338,33976,35657,36104,20043,21482,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21675,22320,22336,24535,25345,25351,25711,25903,26088,26234,26525,26547,27490,27744,27802,28460,30693,30757,31049,31063,32025,32930,33026,33267,33437,33463,34584,35468,63996,36100,36286,36978,30452,31257,31287,32340,32887,21767,21972,22645,25391,25634,26185,26187,26733,27035,27524,27941,28337,29645,29800,29857,30043,30137,30433,30494,30603,31206,32265,32285,33275,34095,34967,35386,36049,36587,36784,36914,37805,38499,38515,38663,20356,21489,23018,23241,24089,26702,29894,30142,31209,31378,33187,34541,36074,36300,36845,26015,26389,63997,22519,28503,32221,36655,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,37878,38598,24501,25074,28548,19988,20376,20511,21449,21983,23919,24046,27425,27492,30923,31642,63998,36425,36554,36974,25417,25662,30528,31364,37679,38015,40810,25776,28591,29158,29864,29914,31428,31762,32386,31922,32408,35738,36106,38013,39184,39244,21049,23519,25830,26413,32046,20717,21443,22649,24920,24921,25082,26028,31449,35730,35734,20489,20513,21109,21809,23100,24288,24432,24884,25950,26124,26166,26274,27085,28356,28466,29462,30241,31379,33081,33369,33750,33980,20661,22512,23488,23528,24425,25505,30758,32181,33756,34081,37319,37365,20874,26613,31574,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36012,20932,22971,24765,34389,20508,63999,21076,23610,24957,25114,25299,25842,26021,28364,30240,33034,36448,38495,38587,20191,21315,21912,22825,24029,25797,27849,28154,29588,31359,33307,34214,36068,36368,36983,37351,38369,38433,38854,20984,21746,21894,24505,25764,28552,32180,36639,36685,37941,20681,23574,27838,28155,29979,30651,31805,31844,35449,35522,22558,22974,24086,25463,29266,30090,30571,35548,36028,36626,24307,26228,28152,32893,33729,35531,38737,39894,64e3,21059,26367,28053,28399,32224,35558,36910,36958,39636,21021,21119,21736,24980,25220,25307,26786,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26898,26970,27189,28818,28966,30813,30977,30990,31186,31245,32918,33400,33493,33609,34121,35970,36229,37218,37259,37294,20419,22225,29165,30679,34560,35320,23544,24534,26449,37032,21474,22618,23541,24740,24961,25696,32317,32880,34085,37507,25774,20652,23828,26368,22684,25277,25512,26894,27e3,27166,28267,30394,31179,33467,33833,35535,36264,36861,37138,37195,37276,37648,37656,37786,38619,39478,39949,19985,30044,31069,31482,31569,31689,32302,33988,36441,36468,36600,36880,26149,26943,29763,20986,26414,40668,20805,24544,27798,34802,34909,34935,24756,33205,33795,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36101,21462,21561,22068,23094,23601,28810,32736,32858,33030,33261,36259,37257,39519,40434,20596,20164,21408,24827,28204,23652,20360,20516,21988,23769,24159,24677,26772,27835,28100,29118,30164,30196,30305,31258,31305,32199,32251,32622,33268,34473,36636,38601,39347,40786,21063,21189,39149,35242,19971,26578,28422,20405,23522,26517,27784,28024,29723,30759,37341,37756,34756,31204,31281,24555,20182,21668,21822,22702,22949,24816,25171,25302,26422,26965,33333,38464,39345,39389,20524,21331,21828,22396,64001,25176,64002,25826,26219,26589,28609,28655,29730,29752,35351,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,37944,21585,22022,22374,24392,24986,27470,28760,28845,32187,35477,22890,33067,25506,30472,32829,36010,22612,25645,27067,23445,24081,28271,64003,34153,20812,21488,22826,24608,24907,27526,27760,27888,31518,32974,33492,36294,37040,39089,64004,25799,28580,25745,25860,20814,21520,22303,35342,24927,26742,64005,30171,31570,32113,36890,22534,27084,33151,35114,36864,38969,20600,22871,22956,25237,36879,39722,24925,29305,38358,22369,23110,24052,25226,25773,25850,26487,27874,27966,29228,29750,30772,32631,33453,36315,38935,21028,22338,26495,29256,29923,36009,36774,37393,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38442,20843,21485,25420,20329,21764,24726,25943,27803,28031,29260,29437,31255,35207,35997,24429,28558,28921,33192,24846,20415,20559,25153,29255,31687,32232,32745,36941,38829,39449,36022,22378,24179,26544,33805,35413,21536,23318,24163,24290,24330,25987,32954,34109,38281,38491,20296,21253,21261,21263,21638,21754,22275,24067,24598,25243,25265,25429,64006,27873,28006,30129,30770,32990,33071,33502,33889,33970,34957,35090,36875,37610,39165,39825,24133,26292,26333,28689,29190,64007,20469,21117,24426,24915,26451,27161,28418,29922,31080,34920,35961,39111,39108,39491,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21697,31263,26963,35575,35914,39080,39342,24444,25259,30130,30382,34987,36991,38466,21305,24380,24517,27852,29644,30050,30091,31558,33534,39325,20047,36924,19979,20309,21414,22799,24264,26160,27827,29781,33655,34662,36032,36944,38686,39957,22737,23416,34384,35604,40372,23506,24680,24717,26097,27735,28450,28579,28698,32597,32752,38289,38290,38480,38867,21106,36676,20989,21547,21688,21859,21898,27323,28085,32216,33382,37532,38519,40569,21512,21704,30418,34532,38308,38356,38492,20130,20233,23022,23270,24055,24658,25239,26477,26689,27782,28207,32568,32923,33322,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,64008,64009,38917,20133,20565,21683,22419,22874,23401,23475,25032,26999,28023,28707,34809,35299,35442,35559,36994,39405,39608,21182,26680,20502,24184,26447,33607,34892,20139,21521,22190,29670,37141,38911,39177,39255,39321,22099,22687,34395,35377,25010,27382,29563,36562,27463,38570,39511,22869,29184,36203,38761,20436,23796,24358,25080,26203,27883,28843,29572,29625,29694,30505,30541,32067,32098,32291,33335,34898,64010,36066,37449,39023,23377,31348,34880,38913,23244,20448,21332,22846,23805,25406,28025,29433,33029,33031,33698,37583,38960,20136,20804,21009,22411,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24418,27842,28366,28677,28752,28847,29074,29673,29801,33610,34722,34913,36872,37026,37795,39336,20846,24407,24800,24935,26291,34137,36426,37295,38795,20046,20114,21628,22741,22778,22909,23733,24359,25142,25160,26122,26215,27627,28009,28111,28246,28408,28564,28640,28649,28765,29392,29733,29786,29920,30355,31068,31946,32286,32993,33446,33899,33983,34382,34399,34676,35703,35946,37804,38912,39013,24785,25110,37239,23130,26127,28151,28222,29759,39746,24573,24794,31503,21700,24344,27742,27859,27946,28888,32005,34425,35340,40251,21270,21644,23301,27194,28779,30069,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31117,31166,33457,33775,35441,35649,36008,38772,64011,25844,25899,30906,30907,31339,20024,21914,22864,23462,24187,24739,25563,27489,26213,26707,28185,29029,29872,32008,36996,39529,39973,27963,28369,29502,35905,38346,20976,24140,24488,24653,24822,24880,24908,26179,26180,27045,27841,28255,28361,28514,29004,29852,30343,31681,31783,33618,34647,36945,38541,40643,21295,22238,24315,24458,24674,24724,25079,26214,26371,27292,28142,28590,28784,29546,32362,33214,33588,34516,35496,36036,21123,29554,23446,27243,37892,21742,22150,23389,25928,25989,26313,26783,28045,28102,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29243,32948,37237,39501,20399,20505,21402,21518,21564,21897,21957,24127,24460,26429,29030,29661,36869,21211,21235,22628,22734,28932,29071,29179,34224,35347,26248,34216,21927,26244,29002,33841,21321,21913,27585,24409,24509,25582,26249,28999,35569,36637,40638,20241,25658,28875,30054,34407,24676,35662,40440,20807,20982,21256,27958,33016,40657,26133,27427,28824,30165,21507,23673,32007,35350,27424,27453,27462,21560,24688,27965,32725,33288,20694,20958,21916,22123,22221,23020,23305,24076,24985,24984,25137,26206,26342,29081,29113,29114,29351,31143,31232,32690,35440,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],gb18030:[19970,19972,19973,19974,19983,19986,19991,19999,2e4,20001,20003,20006,20009,20014,20015,20017,20019,20021,20023,20028,20032,20033,20034,20036,20038,20042,20049,20053,20055,20058,20059,20066,20067,20068,20069,20071,20072,20074,20075,20076,20077,20078,20079,20082,20084,20085,20086,20087,20088,20089,20090,20091,20092,20093,20095,20096,20097,20098,20099,20100,20101,20103,20106,20112,20118,20119,20121,20124,20125,20126,20131,20138,20143,20144,20145,20148,20150,20151,20152,20153,20156,20157,20158,20168,20172,20175,20176,20178,20186,20187,20188,20192,20194,20198,20199,20201,20205,20206,20207,20209,20212,20216,20217,20218,20220,20222,20224,20226,20227,20228,20229,20230,20231,20232,20235,20236,20242,20243,20244,20245,20246,20252,20253,20257,20259,20264,20265,20268,20269,20270,20273,20275,20277,20279,20281,20283,20286,20287,20288,20289,20290,20292,20293,20295,20296,20297,20298,20299,20300,20306,20308,20310,20321,20322,20326,20328,20330,20331,20333,20334,20337,20338,20341,20343,20344,20345,20346,20349,20352,20353,20354,20357,20358,20359,20362,20364,20366,20368,20370,20371,20373,20374,20376,20377,20378,20380,20382,20383,20385,20386,20388,20395,20397,20400,20401,20402,20403,20404,20406,20407,20408,20409,20410,20411,20412,20413,20414,20416,20417,20418,20422,20423,20424,20425,20427,20428,20429,20434,20435,20436,20437,20438,20441,20443,20448,20450,20452,20453,20455,20459,20460,20464,20466,20468,20469,20470,20471,20473,20475,20476,20477,20479,20480,20481,20482,20483,20484,20485,20486,20487,20488,20489,20490,20491,20494,20496,20497,20499,20501,20502,20503,20507,20509,20510,20512,20514,20515,20516,20519,20523,20527,20528,20529,20530,20531,20532,20533,20534,20535,20536,20537,20539,20541,20543,20544,20545,20546,20548,20549,20550,20553,20554,20555,20557,20560,20561,20562,20563,20564,20566,20567,20568,20569,20571,20573,20574,20575,20576,20577,20578,20579,20580,20582,20583,20584,20585,20586,20587,20589,20590,20591,20592,20593,20594,20595,20596,20597,20600,20601,20602,20604,20605,20609,20610,20611,20612,20614,20615,20617,20618,20619,20620,20622,20623,20624,20625,20626,20627,20628,20629,20630,20631,20632,20633,20634,20635,20636,20637,20638,20639,20640,20641,20642,20644,20646,20650,20651,20653,20654,20655,20656,20657,20659,20660,20661,20662,20663,20664,20665,20668,20669,20670,20671,20672,20673,20674,20675,20676,20677,20678,20679,20680,20681,20682,20683,20684,20685,20686,20688,20689,20690,20691,20692,20693,20695,20696,20697,20699,20700,20701,20702,20703,20704,20705,20706,20707,20708,20709,20712,20713,20714,20715,20719,20720,20721,20722,20724,20726,20727,20728,20729,20730,20732,20733,20734,20735,20736,20737,20738,20739,20740,20741,20744,20745,20746,20748,20749,20750,20751,20752,20753,20755,20756,20757,20758,20759,20760,20761,20762,20763,20764,20765,20766,20767,20768,20770,20771,20772,20773,20774,20775,20776,20777,20778,20779,20780,20781,20782,20783,20784,20785,20786,20787,20788,20789,20790,20791,20792,20793,20794,20795,20796,20797,20798,20802,20807,20810,20812,20814,20815,20816,20818,20819,20823,20824,20825,20827,20829,20830,20831,20832,20833,20835,20836,20838,20839,20841,20842,20847,20850,20858,20862,20863,20867,20868,20870,20871,20874,20875,20878,20879,20880,20881,20883,20884,20888,20890,20893,20894,20895,20897,20899,20902,20903,20904,20905,20906,20909,20910,20916,20920,20921,20922,20926,20927,20929,20930,20931,20933,20936,20938,20941,20942,20944,20946,20947,20948,20949,20950,20951,20952,20953,20954,20956,20958,20959,20962,20963,20965,20966,20967,20968,20969,20970,20972,20974,20977,20978,20980,20983,20990,20996,20997,21001,21003,21004,21007,21008,21011,21012,21013,21020,21022,21023,21025,21026,21027,21029,21030,21031,21034,21036,21039,21041,21042,21044,21045,21052,21054,21060,21061,21062,21063,21064,21065,21067,21070,21071,21074,21075,21077,21079,21080,21081,21082,21083,21085,21087,21088,21090,21091,21092,21094,21096,21099,21100,21101,21102,21104,21105,21107,21108,21109,21110,21111,21112,21113,21114,21115,21116,21118,21120,21123,21124,21125,21126,21127,21129,21130,21131,21132,21133,21134,21135,21137,21138,21140,21141,21142,21143,21144,21145,21146,21148,21156,21157,21158,21159,21166,21167,21168,21172,21173,21174,21175,21176,21177,21178,21179,21180,21181,21184,21185,21186,21188,21189,21190,21192,21194,21196,21197,21198,21199,21201,21203,21204,21205,21207,21209,21210,21211,21212,21213,21214,21216,21217,21218,21219,21221,21222,21223,21224,21225,21226,21227,21228,21229,21230,21231,21233,21234,21235,21236,21237,21238,21239,21240,21243,21244,21245,21249,21250,21251,21252,21255,21257,21258,21259,21260,21262,21265,21266,21267,21268,21272,21275,21276,21278,21279,21282,21284,21285,21287,21288,21289,21291,21292,21293,21295,21296,21297,21298,21299,21300,21301,21302,21303,21304,21308,21309,21312,21314,21316,21318,21323,21324,21325,21328,21332,21336,21337,21339,21341,21349,21352,21354,21356,21357,21362,21366,21369,21371,21372,21373,21374,21376,21377,21379,21383,21384,21386,21390,21391,21392,21393,21394,21395,21396,21398,21399,21401,21403,21404,21406,21408,21409,21412,21415,21418,21419,21420,21421,21423,21424,21425,21426,21427,21428,21429,21431,21432,21433,21434,21436,21437,21438,21440,21443,21444,21445,21446,21447,21454,21455,21456,21458,21459,21461,21466,21468,21469,21470,21473,21474,21479,21492,21498,21502,21503,21504,21506,21509,21511,21515,21524,21528,21529,21530,21532,21538,21540,21541,21546,21552,21555,21558,21559,21562,21565,21567,21569,21570,21572,21573,21575,21577,21580,21581,21582,21583,21585,21594,21597,21598,21599,21600,21601,21603,21605,21607,21609,21610,21611,21612,21613,21614,21615,21616,21620,21625,21626,21630,21631,21633,21635,21637,21639,21640,21641,21642,21645,21649,21651,21655,21656,21660,21662,21663,21664,21665,21666,21669,21678,21680,21682,21685,21686,21687,21689,21690,21692,21694,21699,21701,21706,21707,21718,21720,21723,21728,21729,21730,21731,21732,21739,21740,21743,21744,21745,21748,21749,21750,21751,21752,21753,21755,21758,21760,21762,21763,21764,21765,21768,21770,21771,21772,21773,21774,21778,21779,21781,21782,21783,21784,21785,21786,21788,21789,21790,21791,21793,21797,21798,21800,21801,21803,21805,21810,21812,21813,21814,21816,21817,21818,21819,21821,21824,21826,21829,21831,21832,21835,21836,21837,21838,21839,21841,21842,21843,21844,21847,21848,21849,21850,21851,21853,21854,21855,21856,21858,21859,21864,21865,21867,21871,21872,21873,21874,21875,21876,21881,21882,21885,21887,21893,21894,21900,21901,21902,21904,21906,21907,21909,21910,21911,21914,21915,21918,21920,21921,21922,21923,21924,21925,21926,21928,21929,21930,21931,21932,21933,21934,21935,21936,21938,21940,21942,21944,21946,21948,21951,21952,21953,21954,21955,21958,21959,21960,21962,21963,21966,21967,21968,21973,21975,21976,21977,21978,21979,21982,21984,21986,21991,21993,21997,21998,22e3,22001,22004,22006,22008,22009,22010,22011,22012,22015,22018,22019,22020,22021,22022,22023,22026,22027,22029,22032,22033,22034,22035,22036,22037,22038,22039,22041,22042,22044,22045,22048,22049,22050,22053,22054,22056,22057,22058,22059,22062,22063,22064,22067,22069,22071,22072,22074,22076,22077,22078,22080,22081,22082,22083,22084,22085,22086,22087,22088,22089,22090,22091,22095,22096,22097,22098,22099,22101,22102,22106,22107,22109,22110,22111,22112,22113,22115,22117,22118,22119,22125,22126,22127,22128,22130,22131,22132,22133,22135,22136,22137,22138,22141,22142,22143,22144,22145,22146,22147,22148,22151,22152,22153,22154,22155,22156,22157,22160,22161,22162,22164,22165,22166,22167,22168,22169,22170,22171,22172,22173,22174,22175,22176,22177,22178,22180,22181,22182,22183,22184,22185,22186,22187,22188,22189,22190,22192,22193,22194,22195,22196,22197,22198,22200,22201,22202,22203,22205,22206,22207,22208,22209,22210,22211,22212,22213,22214,22215,22216,22217,22219,22220,22221,22222,22223,22224,22225,22226,22227,22229,22230,22232,22233,22236,22243,22245,22246,22247,22248,22249,22250,22252,22254,22255,22258,22259,22262,22263,22264,22267,22268,22272,22273,22274,22277,22279,22283,22284,22285,22286,22287,22288,22289,22290,22291,22292,22293,22294,22295,22296,22297,22298,22299,22301,22302,22304,22305,22306,22308,22309,22310,22311,22315,22321,22322,22324,22325,22326,22327,22328,22332,22333,22335,22337,22339,22340,22341,22342,22344,22345,22347,22354,22355,22356,22357,22358,22360,22361,22370,22371,22373,22375,22380,22382,22384,22385,22386,22388,22389,22392,22393,22394,22397,22398,22399,22400,22401,22407,22408,22409,22410,22413,22414,22415,22416,22417,22420,22421,22422,22423,22424,22425,22426,22428,22429,22430,22431,22437,22440,22442,22444,22447,22448,22449,22451,22453,22454,22455,22457,22458,22459,22460,22461,22462,22463,22464,22465,22468,22469,22470,22471,22472,22473,22474,22476,22477,22480,22481,22483,22486,22487,22491,22492,22494,22497,22498,22499,22501,22502,22503,22504,22505,22506,22507,22508,22510,22512,22513,22514,22515,22517,22518,22519,22523,22524,22526,22527,22529,22531,22532,22533,22536,22537,22538,22540,22542,22543,22544,22546,22547,22548,22550,22551,22552,22554,22555,22556,22557,22559,22562,22563,22565,22566,22567,22568,22569,22571,22572,22573,22574,22575,22577,22578,22579,22580,22582,22583,22584,22585,22586,22587,22588,22589,22590,22591,22592,22593,22594,22595,22597,22598,22599,22600,22601,22602,22603,22606,22607,22608,22610,22611,22613,22614,22615,22617,22618,22619,22620,22621,22623,22624,22625,22626,22627,22628,22630,22631,22632,22633,22634,22637,22638,22639,22640,22641,22642,22643,22644,22645,22646,22647,22648,22649,22650,22651,22652,22653,22655,22658,22660,22662,22663,22664,22666,22667,22668,22669,22670,22671,22672,22673,22676,22677,22678,22679,22680,22683,22684,22685,22688,22689,22690,22691,22692,22693,22694,22695,22698,22699,22700,22701,22702,22703,22704,22705,22706,22707,22708,22709,22710,22711,22712,22713,22714,22715,22717,22718,22719,22720,22722,22723,22724,22726,22727,22728,22729,22730,22731,22732,22733,22734,22735,22736,22738,22739,22740,22742,22743,22744,22745,22746,22747,22748,22749,22750,22751,22752,22753,22754,22755,22757,22758,22759,22760,22761,22762,22765,22767,22769,22770,22772,22773,22775,22776,22778,22779,22780,22781,22782,22783,22784,22785,22787,22789,22790,22792,22793,22794,22795,22796,22798,22800,22801,22802,22803,22807,22808,22811,22813,22814,22816,22817,22818,22819,22822,22824,22828,22832,22834,22835,22837,22838,22843,22845,22846,22847,22848,22851,22853,22854,22858,22860,22861,22864,22866,22867,22873,22875,22876,22877,22878,22879,22881,22883,22884,22886,22887,22888,22889,22890,22891,22892,22893,22894,22895,22896,22897,22898,22901,22903,22906,22907,22908,22910,22911,22912,22917,22921,22923,22924,22926,22927,22928,22929,22932,22933,22936,22938,22939,22940,22941,22943,22944,22945,22946,22950,22951,22956,22957,22960,22961,22963,22964,22965,22966,22967,22968,22970,22972,22973,22975,22976,22977,22978,22979,22980,22981,22983,22984,22985,22988,22989,22990,22991,22997,22998,23001,23003,23006,23007,23008,23009,23010,23012,23014,23015,23017,23018,23019,23021,23022,23023,23024,23025,23026,23027,23028,23029,23030,23031,23032,23034,23036,23037,23038,23040,23042,23050,23051,23053,23054,23055,23056,23058,23060,23061,23062,23063,23065,23066,23067,23069,23070,23073,23074,23076,23078,23079,23080,23082,23083,23084,23085,23086,23087,23088,23091,23093,23095,23096,23097,23098,23099,23101,23102,23103,23105,23106,23107,23108,23109,23111,23112,23115,23116,23117,23118,23119,23120,23121,23122,23123,23124,23126,23127,23128,23129,23131,23132,23133,23134,23135,23136,23137,23139,23140,23141,23142,23144,23145,23147,23148,23149,23150,23151,23152,23153,23154,23155,23160,23161,23163,23164,23165,23166,23168,23169,23170,23171,23172,23173,23174,23175,23176,23177,23178,23179,23180,23181,23182,23183,23184,23185,23187,23188,23189,23190,23191,23192,23193,23196,23197,23198,23199,23200,23201,23202,23203,23204,23205,23206,23207,23208,23209,23211,23212,23213,23214,23215,23216,23217,23220,23222,23223,23225,23226,23227,23228,23229,23231,23232,23235,23236,23237,23238,23239,23240,23242,23243,23245,23246,23247,23248,23249,23251,23253,23255,23257,23258,23259,23261,23262,23263,23266,23268,23269,23271,23272,23274,23276,23277,23278,23279,23280,23282,23283,23284,23285,23286,23287,23288,23289,23290,23291,23292,23293,23294,23295,23296,23297,23298,23299,23300,23301,23302,23303,23304,23306,23307,23308,23309,23310,23311,23312,23313,23314,23315,23316,23317,23320,23321,23322,23323,23324,23325,23326,23327,23328,23329,23330,23331,23332,23333,23334,23335,23336,23337,23338,23339,23340,23341,23342,23343,23344,23345,23347,23349,23350,23352,23353,23354,23355,23356,23357,23358,23359,23361,23362,23363,23364,23365,23366,23367,23368,23369,23370,23371,23372,23373,23374,23375,23378,23382,23390,23392,23393,23399,23400,23403,23405,23406,23407,23410,23412,23414,23415,23416,23417,23419,23420,23422,23423,23426,23430,23434,23437,23438,23440,23441,23442,23444,23446,23455,23463,23464,23465,23468,23469,23470,23471,23473,23474,23479,23482,23483,23484,23488,23489,23491,23496,23497,23498,23499,23501,23502,23503,23505,23508,23509,23510,23511,23512,23513,23514,23515,23516,23520,23522,23523,23526,23527,23529,23530,23531,23532,23533,23535,23537,23538,23539,23540,23541,23542,23543,23549,23550,23552,23554,23555,23557,23559,23560,23563,23564,23565,23566,23568,23570,23571,23575,23577,23579,23582,23583,23584,23585,23587,23590,23592,23593,23594,23595,23597,23598,23599,23600,23602,23603,23605,23606,23607,23619,23620,23622,23623,23628,23629,23634,23635,23636,23638,23639,23640,23642,23643,23644,23645,23647,23650,23652,23655,23656,23657,23658,23659,23660,23661,23664,23666,23667,23668,23669,23670,23671,23672,23675,23676,23677,23678,23680,23683,23684,23685,23686,23687,23689,23690,23691,23694,23695,23698,23699,23701,23709,23710,23711,23712,23713,23716,23717,23718,23719,23720,23722,23726,23727,23728,23730,23732,23734,23737,23738,23739,23740,23742,23744,23746,23747,23749,23750,23751,23752,23753,23754,23756,23757,23758,23759,23760,23761,23763,23764,23765,23766,23767,23768,23770,23771,23772,23773,23774,23775,23776,23778,23779,23783,23785,23787,23788,23790,23791,23793,23794,23795,23796,23797,23798,23799,23800,23801,23802,23804,23805,23806,23807,23808,23809,23812,23813,23816,23817,23818,23819,23820,23821,23823,23824,23825,23826,23827,23829,23831,23832,23833,23834,23836,23837,23839,23840,23841,23842,23843,23845,23848,23850,23851,23852,23855,23856,23857,23858,23859,23861,23862,23863,23864,23865,23866,23867,23868,23871,23872,23873,23874,23875,23876,23877,23878,23880,23881,23885,23886,23887,23888,23889,23890,23891,23892,23893,23894,23895,23897,23898,23900,23902,23903,23904,23905,23906,23907,23908,23909,23910,23911,23912,23914,23917,23918,23920,23921,23922,23923,23925,23926,23927,23928,23929,23930,23931,23932,23933,23934,23935,23936,23937,23939,23940,23941,23942,23943,23944,23945,23946,23947,23948,23949,23950,23951,23952,23953,23954,23955,23956,23957,23958,23959,23960,23962,23963,23964,23966,23967,23968,23969,23970,23971,23972,23973,23974,23975,23976,23977,23978,23979,23980,23981,23982,23983,23984,23985,23986,23987,23988,23989,23990,23992,23993,23994,23995,23996,23997,23998,23999,24e3,24001,24002,24003,24004,24006,24007,24008,24009,24010,24011,24012,24014,24015,24016,24017,24018,24019,24020,24021,24022,24023,24024,24025,24026,24028,24031,24032,24035,24036,24042,24044,24045,24048,24053,24054,24056,24057,24058,24059,24060,24063,24064,24068,24071,24073,24074,24075,24077,24078,24082,24083,24087,24094,24095,24096,24097,24098,24099,24100,24101,24104,24105,24106,24107,24108,24111,24112,24114,24115,24116,24117,24118,24121,24122,24126,24127,24128,24129,24131,24134,24135,24136,24137,24138,24139,24141,24142,24143,24144,24145,24146,24147,24150,24151,24152,24153,24154,24156,24157,24159,24160,24163,24164,24165,24166,24167,24168,24169,24170,24171,24172,24173,24174,24175,24176,24177,24181,24183,24185,24190,24193,24194,24195,24197,24200,24201,24204,24205,24206,24210,24216,24219,24221,24225,24226,24227,24228,24232,24233,24234,24235,24236,24238,24239,24240,24241,24242,24244,24250,24251,24252,24253,24255,24256,24257,24258,24259,24260,24261,24262,24263,24264,24267,24268,24269,24270,24271,24272,24276,24277,24279,24280,24281,24282,24284,24285,24286,24287,24288,24289,24290,24291,24292,24293,24294,24295,24297,24299,24300,24301,24302,24303,24304,24305,24306,24307,24309,24312,24313,24315,24316,24317,24325,24326,24327,24329,24332,24333,24334,24336,24338,24340,24342,24345,24346,24348,24349,24350,24353,24354,24355,24356,24360,24363,24364,24366,24368,24370,24371,24372,24373,24374,24375,24376,24379,24381,24382,24383,24385,24386,24387,24388,24389,24390,24391,24392,24393,24394,24395,24396,24397,24398,24399,24401,24404,24409,24410,24411,24412,24414,24415,24416,24419,24421,24423,24424,24427,24430,24431,24434,24436,24437,24438,24440,24442,24445,24446,24447,24451,24454,24461,24462,24463,24465,24467,24468,24470,24474,24475,24477,24478,24479,24480,24482,24483,24484,24485,24486,24487,24489,24491,24492,24495,24496,24497,24498,24499,24500,24502,24504,24505,24506,24507,24510,24511,24512,24513,24514,24519,24520,24522,24523,24526,24531,24532,24533,24538,24539,24540,24542,24543,24546,24547,24549,24550,24552,24553,24556,24559,24560,24562,24563,24564,24566,24567,24569,24570,24572,24583,24584,24585,24587,24588,24592,24593,24595,24599,24600,24602,24606,24607,24610,24611,24612,24620,24621,24622,24624,24625,24626,24627,24628,24630,24631,24632,24633,24634,24637,24638,24640,24644,24645,24646,24647,24648,24649,24650,24652,24654,24655,24657,24659,24660,24662,24663,24664,24667,24668,24670,24671,24672,24673,24677,24678,24686,24689,24690,24692,24693,24695,24702,24704,24705,24706,24709,24710,24711,24712,24714,24715,24718,24719,24720,24721,24723,24725,24727,24728,24729,24732,24734,24737,24738,24740,24741,24743,24745,24746,24750,24752,24755,24757,24758,24759,24761,24762,24765,24766,24767,24768,24769,24770,24771,24772,24775,24776,24777,24780,24781,24782,24783,24784,24786,24787,24788,24790,24791,24793,24795,24798,24801,24802,24803,24804,24805,24810,24817,24818,24821,24823,24824,24827,24828,24829,24830,24831,24834,24835,24836,24837,24839,24842,24843,24844,24848,24849,24850,24851,24852,24854,24855,24856,24857,24859,24860,24861,24862,24865,24866,24869,24872,24873,24874,24876,24877,24878,24879,24880,24881,24882,24883,24884,24885,24886,24887,24888,24889,24890,24891,24892,24893,24894,24896,24897,24898,24899,24900,24901,24902,24903,24905,24907,24909,24911,24912,24914,24915,24916,24918,24919,24920,24921,24922,24923,24924,24926,24927,24928,24929,24931,24932,24933,24934,24937,24938,24939,24940,24941,24942,24943,24945,24946,24947,24948,24950,24952,24953,24954,24955,24956,24957,24958,24959,24960,24961,24962,24963,24964,24965,24966,24967,24968,24969,24970,24972,24973,24975,24976,24977,24978,24979,24981,24982,24983,24984,24985,24986,24987,24988,24990,24991,24992,24993,24994,24995,24996,24997,24998,25002,25003,25005,25006,25007,25008,25009,25010,25011,25012,25013,25014,25016,25017,25018,25019,25020,25021,25023,25024,25025,25027,25028,25029,25030,25031,25033,25036,25037,25038,25039,25040,25043,25045,25046,25047,25048,25049,25050,25051,25052,25053,25054,25055,25056,25057,25058,25059,25060,25061,25063,25064,25065,25066,25067,25068,25069,25070,25071,25072,25073,25074,25075,25076,25078,25079,25080,25081,25082,25083,25084,25085,25086,25088,25089,25090,25091,25092,25093,25095,25097,25107,25108,25113,25116,25117,25118,25120,25123,25126,25127,25128,25129,25131,25133,25135,25136,25137,25138,25141,25142,25144,25145,25146,25147,25148,25154,25156,25157,25158,25162,25167,25168,25173,25174,25175,25177,25178,25180,25181,25182,25183,25184,25185,25186,25188,25189,25192,25201,25202,25204,25205,25207,25208,25210,25211,25213,25217,25218,25219,25221,25222,25223,25224,25227,25228,25229,25230,25231,25232,25236,25241,25244,25245,25246,25251,25254,25255,25257,25258,25261,25262,25263,25264,25266,25267,25268,25270,25271,25272,25274,25278,25280,25281,25283,25291,25295,25297,25301,25309,25310,25312,25313,25316,25322,25323,25328,25330,25333,25336,25337,25338,25339,25344,25347,25348,25349,25350,25354,25355,25356,25357,25359,25360,25362,25363,25364,25365,25367,25368,25369,25372,25382,25383,25385,25388,25389,25390,25392,25393,25395,25396,25397,25398,25399,25400,25403,25404,25406,25407,25408,25409,25412,25415,25416,25418,25425,25426,25427,25428,25430,25431,25432,25433,25434,25435,25436,25437,25440,25444,25445,25446,25448,25450,25451,25452,25455,25456,25458,25459,25460,25461,25464,25465,25468,25469,25470,25471,25473,25475,25476,25477,25478,25483,25485,25489,25491,25492,25493,25495,25497,25498,25499,25500,25501,25502,25503,25505,25508,25510,25515,25519,25521,25522,25525,25526,25529,25531,25533,25535,25536,25537,25538,25539,25541,25543,25544,25546,25547,25548,25553,25555,25556,25557,25559,25560,25561,25562,25563,25564,25565,25567,25570,25572,25573,25574,25575,25576,25579,25580,25582,25583,25584,25585,25587,25589,25591,25593,25594,25595,25596,25598,25603,25604,25606,25607,25608,25609,25610,25613,25614,25617,25618,25621,25622,25623,25624,25625,25626,25629,25631,25634,25635,25636,25637,25639,25640,25641,25643,25646,25647,25648,25649,25650,25651,25653,25654,25655,25656,25657,25659,25660,25662,25664,25666,25667,25673,25675,25676,25677,25678,25679,25680,25681,25683,25685,25686,25687,25689,25690,25691,25692,25693,25695,25696,25697,25698,25699,25700,25701,25702,25704,25706,25707,25708,25710,25711,25712,25713,25714,25715,25716,25717,25718,25719,25723,25724,25725,25726,25727,25728,25729,25731,25734,25736,25737,25738,25739,25740,25741,25742,25743,25744,25747,25748,25751,25752,25754,25755,25756,25757,25759,25760,25761,25762,25763,25765,25766,25767,25768,25770,25771,25775,25777,25778,25779,25780,25782,25785,25787,25789,25790,25791,25793,25795,25796,25798,25799,25800,25801,25802,25803,25804,25807,25809,25811,25812,25813,25814,25817,25818,25819,25820,25821,25823,25824,25825,25827,25829,25831,25832,25833,25834,25835,25836,25837,25838,25839,25840,25841,25842,25843,25844,25845,25846,25847,25848,25849,25850,25851,25852,25853,25854,25855,25857,25858,25859,25860,25861,25862,25863,25864,25866,25867,25868,25869,25870,25871,25872,25873,25875,25876,25877,25878,25879,25881,25882,25883,25884,25885,25886,25887,25888,25889,25890,25891,25892,25894,25895,25896,25897,25898,25900,25901,25904,25905,25906,25907,25911,25914,25916,25917,25920,25921,25922,25923,25924,25926,25927,25930,25931,25933,25934,25936,25938,25939,25940,25943,25944,25946,25948,25951,25952,25953,25956,25957,25959,25960,25961,25962,25965,25966,25967,25969,25971,25973,25974,25976,25977,25978,25979,25980,25981,25982,25983,25984,25985,25986,25987,25988,25989,25990,25992,25993,25994,25997,25998,25999,26002,26004,26005,26006,26008,26010,26013,26014,26016,26018,26019,26022,26024,26026,26028,26030,26033,26034,26035,26036,26037,26038,26039,26040,26042,26043,26046,26047,26048,26050,26055,26056,26057,26058,26061,26064,26065,26067,26068,26069,26072,26073,26074,26075,26076,26077,26078,26079,26081,26083,26084,26090,26091,26098,26099,26100,26101,26104,26105,26107,26108,26109,26110,26111,26113,26116,26117,26119,26120,26121,26123,26125,26128,26129,26130,26134,26135,26136,26138,26139,26140,26142,26145,26146,26147,26148,26150,26153,26154,26155,26156,26158,26160,26162,26163,26167,26168,26169,26170,26171,26173,26175,26176,26178,26180,26181,26182,26183,26184,26185,26186,26189,26190,26192,26193,26200,26201,26203,26204,26205,26206,26208,26210,26211,26213,26215,26217,26218,26219,26220,26221,26225,26226,26227,26229,26232,26233,26235,26236,26237,26239,26240,26241,26243,26245,26246,26248,26249,26250,26251,26253,26254,26255,26256,26258,26259,26260,26261,26264,26265,26266,26267,26268,26270,26271,26272,26273,26274,26275,26276,26277,26278,26281,26282,26283,26284,26285,26287,26288,26289,26290,26291,26293,26294,26295,26296,26298,26299,26300,26301,26303,26304,26305,26306,26307,26308,26309,26310,26311,26312,26313,26314,26315,26316,26317,26318,26319,26320,26321,26322,26323,26324,26325,26326,26327,26328,26330,26334,26335,26336,26337,26338,26339,26340,26341,26343,26344,26346,26347,26348,26349,26350,26351,26353,26357,26358,26360,26362,26363,26365,26369,26370,26371,26372,26373,26374,26375,26380,26382,26383,26385,26386,26387,26390,26392,26393,26394,26396,26398,26400,26401,26402,26403,26404,26405,26407,26409,26414,26416,26418,26419,26422,26423,26424,26425,26427,26428,26430,26431,26433,26436,26437,26439,26442,26443,26445,26450,26452,26453,26455,26456,26457,26458,26459,26461,26466,26467,26468,26470,26471,26475,26476,26478,26481,26484,26486,26488,26489,26490,26491,26493,26496,26498,26499,26501,26502,26504,26506,26508,26509,26510,26511,26513,26514,26515,26516,26518,26521,26523,26527,26528,26529,26532,26534,26537,26540,26542,26545,26546,26548,26553,26554,26555,26556,26557,26558,26559,26560,26562,26565,26566,26567,26568,26569,26570,26571,26572,26573,26574,26581,26582,26583,26587,26591,26593,26595,26596,26598,26599,26600,26602,26603,26605,26606,26610,26613,26614,26615,26616,26617,26618,26619,26620,26622,26625,26626,26627,26628,26630,26637,26640,26642,26644,26645,26648,26649,26650,26651,26652,26654,26655,26656,26658,26659,26660,26661,26662,26663,26664,26667,26668,26669,26670,26671,26672,26673,26676,26677,26678,26682,26683,26687,26695,26699,26701,26703,26706,26710,26711,26712,26713,26714,26715,26716,26717,26718,26719,26730,26732,26733,26734,26735,26736,26737,26738,26739,26741,26744,26745,26746,26747,26748,26749,26750,26751,26752,26754,26756,26759,26760,26761,26762,26763,26764,26765,26766,26768,26769,26770,26772,26773,26774,26776,26777,26778,26779,26780,26781,26782,26783,26784,26785,26787,26788,26789,26793,26794,26795,26796,26798,26801,26802,26804,26806,26807,26808,26809,26810,26811,26812,26813,26814,26815,26817,26819,26820,26821,26822,26823,26824,26826,26828,26830,26831,26832,26833,26835,26836,26838,26839,26841,26843,26844,26845,26846,26847,26849,26850,26852,26853,26854,26855,26856,26857,26858,26859,26860,26861,26863,26866,26867,26868,26870,26871,26872,26875,26877,26878,26879,26880,26882,26883,26884,26886,26887,26888,26889,26890,26892,26895,26897,26899,26900,26901,26902,26903,26904,26905,26906,26907,26908,26909,26910,26913,26914,26915,26917,26918,26919,26920,26921,26922,26923,26924,26926,26927,26929,26930,26931,26933,26934,26935,26936,26938,26939,26940,26942,26944,26945,26947,26948,26949,26950,26951,26952,26953,26954,26955,26956,26957,26958,26959,26960,26961,26962,26963,26965,26966,26968,26969,26971,26972,26975,26977,26978,26980,26981,26983,26984,26985,26986,26988,26989,26991,26992,26994,26995,26996,26997,26998,27002,27003,27005,27006,27007,27009,27011,27013,27018,27019,27020,27022,27023,27024,27025,27026,27027,27030,27031,27033,27034,27037,27038,27039,27040,27041,27042,27043,27044,27045,27046,27049,27050,27052,27054,27055,27056,27058,27059,27061,27062,27064,27065,27066,27068,27069,27070,27071,27072,27074,27075,27076,27077,27078,27079,27080,27081,27083,27085,27087,27089,27090,27091,27093,27094,27095,27096,27097,27098,27100,27101,27102,27105,27106,27107,27108,27109,27110,27111,27112,27113,27114,27115,27116,27118,27119,27120,27121,27123,27124,27125,27126,27127,27128,27129,27130,27131,27132,27134,27136,27137,27138,27139,27140,27141,27142,27143,27144,27145,27147,27148,27149,27150,27151,27152,27153,27154,27155,27156,27157,27158,27161,27162,27163,27164,27165,27166,27168,27170,27171,27172,27173,27174,27175,27177,27179,27180,27181,27182,27184,27186,27187,27188,27190,27191,27192,27193,27194,27195,27196,27199,27200,27201,27202,27203,27205,27206,27208,27209,27210,27211,27212,27213,27214,27215,27217,27218,27219,27220,27221,27222,27223,27226,27228,27229,27230,27231,27232,27234,27235,27236,27238,27239,27240,27241,27242,27243,27244,27245,27246,27247,27248,27250,27251,27252,27253,27254,27255,27256,27258,27259,27261,27262,27263,27265,27266,27267,27269,27270,27271,27272,27273,27274,27275,27276,27277,27279,27282,27283,27284,27285,27286,27288,27289,27290,27291,27292,27293,27294,27295,27297,27298,27299,27300,27301,27302,27303,27304,27306,27309,27310,27311,27312,27313,27314,27315,27316,27317,27318,27319,27320,27321,27322,27323,27324,27325,27326,27327,27328,27329,27330,27331,27332,27333,27334,27335,27336,27337,27338,27339,27340,27341,27342,27343,27344,27345,27346,27347,27348,27349,27350,27351,27352,27353,27354,27355,27356,27357,27358,27359,27360,27361,27362,27363,27364,27365,27366,27367,27368,27369,27370,27371,27372,27373,27374,27375,27376,27377,27378,27379,27380,27381,27382,27383,27384,27385,27386,27387,27388,27389,27390,27391,27392,27393,27394,27395,27396,27397,27398,27399,27400,27401,27402,27403,27404,27405,27406,27407,27408,27409,27410,27411,27412,27413,27414,27415,27416,27417,27418,27419,27420,27421,27422,27423,27429,27430,27432,27433,27434,27435,27436,27437,27438,27439,27440,27441,27443,27444,27445,27446,27448,27451,27452,27453,27455,27456,27457,27458,27460,27461,27464,27466,27467,27469,27470,27471,27472,27473,27474,27475,27476,27477,27478,27479,27480,27482,27483,27484,27485,27486,27487,27488,27489,27496,27497,27499,27500,27501,27502,27503,27504,27505,27506,27507,27508,27509,27510,27511,27512,27514,27517,27518,27519,27520,27525,27528,27532,27534,27535,27536,27537,27540,27541,27543,27544,27545,27548,27549,27550,27551,27552,27554,27555,27556,27557,27558,27559,27560,27561,27563,27564,27565,27566,27567,27568,27569,27570,27574,27576,27577,27578,27579,27580,27581,27582,27584,27587,27588,27590,27591,27592,27593,27594,27596,27598,27600,27601,27608,27610,27612,27613,27614,27615,27616,27618,27619,27620,27621,27622,27623,27624,27625,27628,27629,27630,27632,27633,27634,27636,27638,27639,27640,27642,27643,27644,27646,27647,27648,27649,27650,27651,27652,27656,27657,27658,27659,27660,27662,27666,27671,27676,27677,27678,27680,27683,27685,27691,27692,27693,27697,27699,27702,27703,27705,27706,27707,27708,27710,27711,27715,27716,27717,27720,27723,27724,27725,27726,27727,27729,27730,27731,27734,27736,27737,27738,27746,27747,27749,27750,27751,27755,27756,27757,27758,27759,27761,27763,27765,27767,27768,27770,27771,27772,27775,27776,27780,27783,27786,27787,27789,27790,27793,27794,27797,27798,27799,27800,27802,27804,27805,27806,27808,27810,27816,27820,27823,27824,27828,27829,27830,27831,27834,27840,27841,27842,27843,27846,27847,27848,27851,27853,27854,27855,27857,27858,27864,27865,27866,27868,27869,27871,27876,27878,27879,27881,27884,27885,27890,27892,27897,27903,27904,27906,27907,27909,27910,27912,27913,27914,27917,27919,27920,27921,27923,27924,27925,27926,27928,27932,27933,27935,27936,27937,27938,27939,27940,27942,27944,27945,27948,27949,27951,27952,27956,27958,27959,27960,27962,27967,27968,27970,27972,27977,27980,27984,27989,27990,27991,27992,27995,27997,27999,28001,28002,28004,28005,28007,28008,28011,28012,28013,28016,28017,28018,28019,28021,28022,28025,28026,28027,28029,28030,28031,28032,28033,28035,28036,28038,28039,28042,28043,28045,28047,28048,28050,28054,28055,28056,28057,28058,28060,28066,28069,28076,28077,28080,28081,28083,28084,28086,28087,28089,28090,28091,28092,28093,28094,28097,28098,28099,28104,28105,28106,28109,28110,28111,28112,28114,28115,28116,28117,28119,28122,28123,28124,28127,28130,28131,28133,28135,28136,28137,28138,28141,28143,28144,28146,28148,28149,28150,28152,28154,28157,28158,28159,28160,28161,28162,28163,28164,28166,28167,28168,28169,28171,28175,28178,28179,28181,28184,28185,28187,28188,28190,28191,28194,28198,28199,28200,28202,28204,28206,28208,28209,28211,28213,28214,28215,28217,28219,28220,28221,28222,28223,28224,28225,28226,28229,28230,28231,28232,28233,28234,28235,28236,28239,28240,28241,28242,28245,28247,28249,28250,28252,28253,28254,28256,28257,28258,28259,28260,28261,28262,28263,28264,28265,28266,28268,28269,28271,28272,28273,28274,28275,28276,28277,28278,28279,28280,28281,28282,28283,28284,28285,28288,28289,28290,28292,28295,28296,28298,28299,28300,28301,28302,28305,28306,28307,28308,28309,28310,28311,28313,28314,28315,28317,28318,28320,28321,28323,28324,28326,28328,28329,28331,28332,28333,28334,28336,28339,28341,28344,28345,28348,28350,28351,28352,28355,28356,28357,28358,28360,28361,28362,28364,28365,28366,28368,28370,28374,28376,28377,28379,28380,28381,28387,28391,28394,28395,28396,28397,28398,28399,28400,28401,28402,28403,28405,28406,28407,28408,28410,28411,28412,28413,28414,28415,28416,28417,28419,28420,28421,28423,28424,28426,28427,28428,28429,28430,28432,28433,28434,28438,28439,28440,28441,28442,28443,28444,28445,28446,28447,28449,28450,28451,28453,28454,28455,28456,28460,28462,28464,28466,28468,28469,28471,28472,28473,28474,28475,28476,28477,28479,28480,28481,28482,28483,28484,28485,28488,28489,28490,28492,28494,28495,28496,28497,28498,28499,28500,28501,28502,28503,28505,28506,28507,28509,28511,28512,28513,28515,28516,28517,28519,28520,28521,28522,28523,28524,28527,28528,28529,28531,28533,28534,28535,28537,28539,28541,28542,28543,28544,28545,28546,28547,28549,28550,28551,28554,28555,28559,28560,28561,28562,28563,28564,28565,28566,28567,28568,28569,28570,28571,28573,28574,28575,28576,28578,28579,28580,28581,28582,28584,28585,28586,28587,28588,28589,28590,28591,28592,28593,28594,28596,28597,28599,28600,28602,28603,28604,28605,28606,28607,28609,28611,28612,28613,28614,28615,28616,28618,28619,28620,28621,28622,28623,28624,28627,28628,28629,28630,28631,28632,28633,28634,28635,28636,28637,28639,28642,28643,28644,28645,28646,28647,28648,28649,28650,28651,28652,28653,28656,28657,28658,28659,28660,28661,28662,28663,28664,28665,28666,28667,28668,28669,28670,28671,28672,28673,28674,28675,28676,28677,28678,28679,28680,28681,28682,28683,28684,28685,28686,28687,28688,28690,28691,28692,28693,28694,28695,28696,28697,28700,28701,28702,28703,28704,28705,28706,28708,28709,28710,28711,28712,28713,28714,28715,28716,28717,28718,28719,28720,28721,28722,28723,28724,28726,28727,28728,28730,28731,28732,28733,28734,28735,28736,28737,28738,28739,28740,28741,28742,28743,28744,28745,28746,28747,28749,28750,28752,28753,28754,28755,28756,28757,28758,28759,28760,28761,28762,28763,28764,28765,28767,28768,28769,28770,28771,28772,28773,28774,28775,28776,28777,28778,28782,28785,28786,28787,28788,28791,28793,28794,28795,28797,28801,28802,28803,28804,28806,28807,28808,28811,28812,28813,28815,28816,28817,28819,28823,28824,28826,28827,28830,28831,28832,28833,28834,28835,28836,28837,28838,28839,28840,28841,28842,28848,28850,28852,28853,28854,28858,28862,28863,28868,28869,28870,28871,28873,28875,28876,28877,28878,28879,28880,28881,28882,28883,28884,28885,28886,28887,28890,28892,28893,28894,28896,28897,28898,28899,28901,28906,28910,28912,28913,28914,28915,28916,28917,28918,28920,28922,28923,28924,28926,28927,28928,28929,28930,28931,28932,28933,28934,28935,28936,28939,28940,28941,28942,28943,28945,28946,28948,28951,28955,28956,28957,28958,28959,28960,28961,28962,28963,28964,28965,28967,28968,28969,28970,28971,28972,28973,28974,28978,28979,28980,28981,28983,28984,28985,28986,28987,28988,28989,28990,28991,28992,28993,28994,28995,28996,28998,28999,29e3,29001,29003,29005,29007,29008,29009,29010,29011,29012,29013,29014,29015,29016,29017,29018,29019,29021,29023,29024,29025,29026,29027,29029,29033,29034,29035,29036,29037,29039,29040,29041,29044,29045,29046,29047,29049,29051,29052,29054,29055,29056,29057,29058,29059,29061,29062,29063,29064,29065,29067,29068,29069,29070,29072,29073,29074,29075,29077,29078,29079,29082,29083,29084,29085,29086,29089,29090,29091,29092,29093,29094,29095,29097,29098,29099,29101,29102,29103,29104,29105,29106,29108,29110,29111,29112,29114,29115,29116,29117,29118,29119,29120,29121,29122,29124,29125,29126,29127,29128,29129,29130,29131,29132,29133,29135,29136,29137,29138,29139,29142,29143,29144,29145,29146,29147,29148,29149,29150,29151,29153,29154,29155,29156,29158,29160,29161,29162,29163,29164,29165,29167,29168,29169,29170,29171,29172,29173,29174,29175,29176,29178,29179,29180,29181,29182,29183,29184,29185,29186,29187,29188,29189,29191,29192,29193,29194,29195,29196,29197,29198,29199,29200,29201,29202,29203,29204,29205,29206,29207,29208,29209,29210,29211,29212,29214,29215,29216,29217,29218,29219,29220,29221,29222,29223,29225,29227,29229,29230,29231,29234,29235,29236,29242,29244,29246,29248,29249,29250,29251,29252,29253,29254,29257,29258,29259,29262,29263,29264,29265,29267,29268,29269,29271,29272,29274,29276,29278,29280,29283,29284,29285,29288,29290,29291,29292,29293,29296,29297,29299,29300,29302,29303,29304,29307,29308,29309,29314,29315,29317,29318,29319,29320,29321,29324,29326,29328,29329,29331,29332,29333,29334,29335,29336,29337,29338,29339,29340,29341,29342,29344,29345,29346,29347,29348,29349,29350,29351,29352,29353,29354,29355,29358,29361,29362,29363,29365,29370,29371,29372,29373,29374,29375,29376,29381,29382,29383,29385,29386,29387,29388,29391,29393,29395,29396,29397,29398,29400,29402,29403,58566,58567,58568,58569,58570,58571,58572,58573,58574,58575,58576,58577,58578,58579,58580,58581,58582,58583,58584,58585,58586,58587,58588,58589,58590,58591,58592,58593,58594,58595,58596,58597,58598,58599,58600,58601,58602,58603,58604,58605,58606,58607,58608,58609,58610,58611,58612,58613,58614,58615,58616,58617,58618,58619,58620,58621,58622,58623,58624,58625,58626,58627,58628,58629,58630,58631,58632,58633,58634,58635,58636,58637,58638,58639,58640,58641,58642,58643,58644,58645,58646,58647,58648,58649,58650,58651,58652,58653,58654,58655,58656,58657,58658,58659,58660,58661,12288,12289,12290,183,713,711,168,12291,12293,8212,65374,8214,8230,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12310,12311,12304,12305,177,215,247,8758,8743,8744,8721,8719,8746,8745,8712,8759,8730,8869,8741,8736,8978,8857,8747,8750,8801,8780,8776,8765,8733,8800,8814,8815,8804,8805,8734,8757,8756,9794,9792,176,8242,8243,8451,65284,164,65504,65505,8240,167,8470,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,8251,8594,8592,8593,8595,12307,58662,58663,58664,58665,58666,58667,58668,58669,58670,58671,58672,58673,58674,58675,58676,58677,58678,58679,58680,58681,58682,58683,58684,58685,58686,58687,58688,58689,58690,58691,58692,58693,58694,58695,58696,58697,58698,58699,58700,58701,58702,58703,58704,58705,58706,58707,58708,58709,58710,58711,58712,58713,58714,58715,58716,58717,58718,58719,58720,58721,58722,58723,58724,58725,58726,58727,58728,58729,58730,58731,58732,58733,58734,58735,58736,58737,58738,58739,58740,58741,58742,58743,58744,58745,58746,58747,58748,58749,58750,58751,58752,58753,58754,58755,58756,58757,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,59238,59239,59240,59241,59242,59243,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,8364,59245,12832,12833,12834,12835,12836,12837,12838,12839,12840,12841,59246,59247,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,59248,59249,58758,58759,58760,58761,58762,58763,58764,58765,58766,58767,58768,58769,58770,58771,58772,58773,58774,58775,58776,58777,58778,58779,58780,58781,58782,58783,58784,58785,58786,58787,58788,58789,58790,58791,58792,58793,58794,58795,58796,58797,58798,58799,58800,58801,58802,58803,58804,58805,58806,58807,58808,58809,58810,58811,58812,58813,58814,58815,58816,58817,58818,58819,58820,58821,58822,58823,58824,58825,58826,58827,58828,58829,58830,58831,58832,58833,58834,58835,58836,58837,58838,58839,58840,58841,58842,58843,58844,58845,58846,58847,58848,58849,58850,58851,58852,12288,65281,65282,65283,65509,65285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65340,65341,65342,65343,65344,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,58854,58855,58856,58857,58858,58859,58860,58861,58862,58863,58864,58865,58866,58867,58868,58869,58870,58871,58872,58873,58874,58875,58876,58877,58878,58879,58880,58881,58882,58883,58884,58885,58886,58887,58888,58889,58890,58891,58892,58893,58894,58895,58896,58897,58898,58899,58900,58901,58902,58903,58904,58905,58906,58907,58908,58909,58910,58911,58912,58913,58914,58915,58916,58917,58918,58919,58920,58921,58922,58923,58924,58925,58926,58927,58928,58929,58930,58931,58932,58933,58934,58935,58936,58937,58938,58939,58940,58941,58942,58943,58944,58945,58946,58947,58948,58949,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,59250,59251,59252,59253,59254,59255,59256,59257,59258,59259,59260,58950,58951,58952,58953,58954,58955,58956,58957,58958,58959,58960,58961,58962,58963,58964,58965,58966,58967,58968,58969,58970,58971,58972,58973,58974,58975,58976,58977,58978,58979,58980,58981,58982,58983,58984,58985,58986,58987,58988,58989,58990,58991,58992,58993,58994,58995,58996,58997,58998,58999,59e3,59001,59002,59003,59004,59005,59006,59007,59008,59009,59010,59011,59012,59013,59014,59015,59016,59017,59018,59019,59020,59021,59022,59023,59024,59025,59026,59027,59028,59029,59030,59031,59032,59033,59034,59035,59036,59037,59038,59039,59040,59041,59042,59043,59044,59045,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,59261,59262,59263,59264,59265,59266,59267,59268,59046,59047,59048,59049,59050,59051,59052,59053,59054,59055,59056,59057,59058,59059,59060,59061,59062,59063,59064,59065,59066,59067,59068,59069,59070,59071,59072,59073,59074,59075,59076,59077,59078,59079,59080,59081,59082,59083,59084,59085,59086,59087,59088,59089,59090,59091,59092,59093,59094,59095,59096,59097,59098,59099,59100,59101,59102,59103,59104,59105,59106,59107,59108,59109,59110,59111,59112,59113,59114,59115,59116,59117,59118,59119,59120,59121,59122,59123,59124,59125,59126,59127,59128,59129,59130,59131,59132,59133,59134,59135,59136,59137,59138,59139,59140,59141,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,59269,59270,59271,59272,59273,59274,59275,59276,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,59277,59278,59279,59280,59281,59282,59283,65077,65078,65081,65082,65087,65088,65085,65086,65089,65090,65091,65092,59284,59285,65083,65084,65079,65080,65073,59286,65075,65076,59287,59288,59289,59290,59291,59292,59293,59294,59295,59142,59143,59144,59145,59146,59147,59148,59149,59150,59151,59152,59153,59154,59155,59156,59157,59158,59159,59160,59161,59162,59163,59164,59165,59166,59167,59168,59169,59170,59171,59172,59173,59174,59175,59176,59177,59178,59179,59180,59181,59182,59183,59184,59185,59186,59187,59188,59189,59190,59191,59192,59193,59194,59195,59196,59197,59198,59199,59200,59201,59202,59203,59204,59205,59206,59207,59208,59209,59210,59211,59212,59213,59214,59215,59216,59217,59218,59219,59220,59221,59222,59223,59224,59225,59226,59227,59228,59229,59230,59231,59232,59233,59234,59235,59236,59237,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,59296,59297,59298,59299,59300,59301,59302,59303,59304,59305,59306,59307,59308,59309,59310,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,59311,59312,59313,59314,59315,59316,59317,59318,59319,59320,59321,59322,59323,714,715,729,8211,8213,8229,8245,8453,8457,8598,8599,8600,8601,8725,8735,8739,8786,8806,8807,8895,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9619,9620,9621,9660,9661,9698,9699,9700,9701,9737,8853,12306,12317,12318,59324,59325,59326,59327,59328,59329,59330,59331,59332,59333,59334,257,225,462,224,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,234,593,7743,324,328,505,609,59337,59338,59339,59340,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,59341,59342,59343,59344,59345,59346,59347,59348,59349,59350,59351,59352,59353,59354,59355,59356,59357,59358,59359,59360,59361,12321,12322,12323,12324,12325,12326,12327,12328,12329,12963,13198,13199,13212,13213,13214,13217,13252,13262,13265,13266,13269,65072,65506,65508,59362,8481,12849,59363,8208,59364,59365,59366,12540,12443,12444,12541,12542,12294,12445,12446,65097,65098,65099,65100,65101,65102,65103,65104,65105,65106,65108,65109,65110,65111,65113,65114,65115,65116,65117,65118,65119,65120,65121,65122,65123,65124,65125,65126,65128,65129,65130,65131,12350,12272,12273,12274,12275,12276,12277,12278,12279,12280,12281,12282,12283,12295,59380,59381,59382,59383,59384,59385,59386,59387,59388,59389,59390,59391,59392,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,9485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547,59393,59394,59395,59396,59397,59398,59399,59400,59401,59402,59403,59404,59405,59406,59407,29404,29405,29407,29410,29411,29412,29413,29414,29415,29418,29419,29429,29430,29433,29437,29438,29439,29440,29442,29444,29445,29446,29447,29448,29449,29451,29452,29453,29455,29456,29457,29458,29460,29464,29465,29466,29471,29472,29475,29476,29478,29479,29480,29485,29487,29488,29490,29491,29493,29494,29498,29499,29500,29501,29504,29505,29506,29507,29508,29509,29510,29511,29512,29513,29514,29515,29516,29518,29519,29521,29523,29524,29525,29526,29528,29529,29530,29531,29532,29533,29534,29535,29537,29538,29539,29540,29541,29542,29543,29544,29545,29546,29547,29550,29552,29553,57344,57345,57346,57347,57348,57349,57350,57351,57352,57353,57354,57355,57356,57357,57358,57359,57360,57361,57362,57363,57364,57365,57366,57367,57368,57369,57370,57371,57372,57373,57374,57375,57376,57377,57378,57379,57380,57381,57382,57383,57384,57385,57386,57387,57388,57389,57390,57391,57392,57393,57394,57395,57396,57397,57398,57399,57400,57401,57402,57403,57404,57405,57406,57407,57408,57409,57410,57411,57412,57413,57414,57415,57416,57417,57418,57419,57420,57421,57422,57423,57424,57425,57426,57427,57428,57429,57430,57431,57432,57433,57434,57435,57436,57437,29554,29555,29556,29557,29558,29559,29560,29561,29562,29563,29564,29565,29567,29568,29569,29570,29571,29573,29574,29576,29578,29580,29581,29583,29584,29586,29587,29588,29589,29591,29592,29593,29594,29596,29597,29598,29600,29601,29603,29604,29605,29606,29607,29608,29610,29612,29613,29617,29620,29621,29622,29624,29625,29628,29629,29630,29631,29633,29635,29636,29637,29638,29639,29643,29644,29646,29650,29651,29652,29653,29654,29655,29656,29658,29659,29660,29661,29663,29665,29666,29667,29668,29670,29672,29674,29675,29676,29678,29679,29680,29681,29683,29684,29685,29686,29687,57438,57439,57440,57441,57442,57443,57444,57445,57446,57447,57448,57449,57450,57451,57452,57453,57454,57455,57456,57457,57458,57459,57460,57461,57462,57463,57464,57465,57466,57467,57468,57469,57470,57471,57472,57473,57474,57475,57476,57477,57478,57479,57480,57481,57482,57483,57484,57485,57486,57487,57488,57489,57490,57491,57492,57493,57494,57495,57496,57497,57498,57499,57500,57501,57502,57503,57504,57505,57506,57507,57508,57509,57510,57511,57512,57513,57514,57515,57516,57517,57518,57519,57520,57521,57522,57523,57524,57525,57526,57527,57528,57529,57530,57531,29688,29689,29690,29691,29692,29693,29694,29695,29696,29697,29698,29700,29703,29704,29707,29708,29709,29710,29713,29714,29715,29716,29717,29718,29719,29720,29721,29724,29725,29726,29727,29728,29729,29731,29732,29735,29737,29739,29741,29743,29745,29746,29751,29752,29753,29754,29755,29757,29758,29759,29760,29762,29763,29764,29765,29766,29767,29768,29769,29770,29771,29772,29773,29774,29775,29776,29777,29778,29779,29780,29782,29784,29789,29792,29793,29794,29795,29796,29797,29798,29799,29800,29801,29802,29803,29804,29806,29807,29809,29810,29811,29812,29813,29816,29817,29818,57532,57533,57534,57535,57536,57537,57538,57539,57540,57541,57542,57543,57544,57545,57546,57547,57548,57549,57550,57551,57552,57553,57554,57555,57556,57557,57558,57559,57560,57561,57562,57563,57564,57565,57566,57567,57568,57569,57570,57571,57572,57573,57574,57575,57576,57577,57578,57579,57580,57581,57582,57583,57584,57585,57586,57587,57588,57589,57590,57591,57592,57593,57594,57595,57596,57597,57598,57599,57600,57601,57602,57603,57604,57605,57606,57607,57608,57609,57610,57611,57612,57613,57614,57615,57616,57617,57618,57619,57620,57621,57622,57623,57624,57625,29819,29820,29821,29823,29826,29828,29829,29830,29832,29833,29834,29836,29837,29839,29841,29842,29843,29844,29845,29846,29847,29848,29849,29850,29851,29853,29855,29856,29857,29858,29859,29860,29861,29862,29866,29867,29868,29869,29870,29871,29872,29873,29874,29875,29876,29877,29878,29879,29880,29881,29883,29884,29885,29886,29887,29888,29889,29890,29891,29892,29893,29894,29895,29896,29897,29898,29899,29900,29901,29902,29903,29904,29905,29907,29908,29909,29910,29911,29912,29913,29914,29915,29917,29919,29921,29925,29927,29928,29929,29930,29931,29932,29933,29936,29937,29938,57626,57627,57628,57629,57630,57631,57632,57633,57634,57635,57636,57637,57638,57639,57640,57641,57642,57643,57644,57645,57646,57647,57648,57649,57650,57651,57652,57653,57654,57655,57656,57657,57658,57659,57660,57661,57662,57663,57664,57665,57666,57667,57668,57669,57670,57671,57672,57673,57674,57675,57676,57677,57678,57679,57680,57681,57682,57683,57684,57685,57686,57687,57688,57689,57690,57691,57692,57693,57694,57695,57696,57697,57698,57699,57700,57701,57702,57703,57704,57705,57706,57707,57708,57709,57710,57711,57712,57713,57714,57715,57716,57717,57718,57719,29939,29941,29944,29945,29946,29947,29948,29949,29950,29952,29953,29954,29955,29957,29958,29959,29960,29961,29962,29963,29964,29966,29968,29970,29972,29973,29974,29975,29979,29981,29982,29984,29985,29986,29987,29988,29990,29991,29994,29998,30004,30006,30009,30012,30013,30015,30017,30018,30019,30020,30022,30023,30025,30026,30029,30032,30033,30034,30035,30037,30038,30039,30040,30045,30046,30047,30048,30049,30050,30051,30052,30055,30056,30057,30059,30060,30061,30062,30063,30064,30065,30067,30069,30070,30071,30074,30075,30076,30077,30078,30080,30081,30082,30084,30085,30087,57720,57721,57722,57723,57724,57725,57726,57727,57728,57729,57730,57731,57732,57733,57734,57735,57736,57737,57738,57739,57740,57741,57742,57743,57744,57745,57746,57747,57748,57749,57750,57751,57752,57753,57754,57755,57756,57757,57758,57759,57760,57761,57762,57763,57764,57765,57766,57767,57768,57769,57770,57771,57772,57773,57774,57775,57776,57777,57778,57779,57780,57781,57782,57783,57784,57785,57786,57787,57788,57789,57790,57791,57792,57793,57794,57795,57796,57797,57798,57799,57800,57801,57802,57803,57804,57805,57806,57807,57808,57809,57810,57811,57812,57813,30088,30089,30090,30092,30093,30094,30096,30099,30101,30104,30107,30108,30110,30114,30118,30119,30120,30121,30122,30125,30134,30135,30138,30139,30143,30144,30145,30150,30155,30156,30158,30159,30160,30161,30163,30167,30169,30170,30172,30173,30175,30176,30177,30181,30185,30188,30189,30190,30191,30194,30195,30197,30198,30199,30200,30202,30203,30205,30206,30210,30212,30214,30215,30216,30217,30219,30221,30222,30223,30225,30226,30227,30228,30230,30234,30236,30237,30238,30241,30243,30247,30248,30252,30254,30255,30257,30258,30262,30263,30265,30266,30267,30269,30273,30274,30276,57814,57815,57816,57817,57818,57819,57820,57821,57822,57823,57824,57825,57826,57827,57828,57829,57830,57831,57832,57833,57834,57835,57836,57837,57838,57839,57840,57841,57842,57843,57844,57845,57846,57847,57848,57849,57850,57851,57852,57853,57854,57855,57856,57857,57858,57859,57860,57861,57862,57863,57864,57865,57866,57867,57868,57869,57870,57871,57872,57873,57874,57875,57876,57877,57878,57879,57880,57881,57882,57883,57884,57885,57886,57887,57888,57889,57890,57891,57892,57893,57894,57895,57896,57897,57898,57899,57900,57901,57902,57903,57904,57905,57906,57907,30277,30278,30279,30280,30281,30282,30283,30286,30287,30288,30289,30290,30291,30293,30295,30296,30297,30298,30299,30301,30303,30304,30305,30306,30308,30309,30310,30311,30312,30313,30314,30316,30317,30318,30320,30321,30322,30323,30324,30325,30326,30327,30329,30330,30332,30335,30336,30337,30339,30341,30345,30346,30348,30349,30351,30352,30354,30356,30357,30359,30360,30362,30363,30364,30365,30366,30367,30368,30369,30370,30371,30373,30374,30375,30376,30377,30378,30379,30380,30381,30383,30384,30387,30389,30390,30391,30392,30393,30394,30395,30396,30397,30398,30400,30401,30403,21834,38463,22467,25384,21710,21769,21696,30353,30284,34108,30702,33406,30861,29233,38552,38797,27688,23433,20474,25353,26263,23736,33018,26696,32942,26114,30414,20985,25942,29100,32753,34948,20658,22885,25034,28595,33453,25420,25170,21485,21543,31494,20843,30116,24052,25300,36299,38774,25226,32793,22365,38712,32610,29240,30333,26575,30334,25670,20336,36133,25308,31255,26001,29677,25644,25203,33324,39041,26495,29256,25198,25292,20276,29923,21322,21150,32458,37030,24110,26758,27036,33152,32465,26834,30917,34444,38225,20621,35876,33502,32990,21253,35090,21093,30404,30407,30409,30411,30412,30419,30421,30425,30426,30428,30429,30430,30432,30433,30434,30435,30436,30438,30439,30440,30441,30442,30443,30444,30445,30448,30451,30453,30454,30455,30458,30459,30461,30463,30464,30466,30467,30469,30470,30474,30476,30478,30479,30480,30481,30482,30483,30484,30485,30486,30487,30488,30491,30492,30493,30494,30497,30499,30500,30501,30503,30506,30507,30508,30510,30512,30513,30514,30515,30516,30521,30523,30525,30526,30527,30530,30532,30533,30534,30536,30537,30538,30539,30540,30541,30542,30543,30546,30547,30548,30549,30550,30551,30552,30553,30556,34180,38649,20445,22561,39281,23453,25265,25253,26292,35961,40077,29190,26479,30865,24754,21329,21271,36744,32972,36125,38049,20493,29384,22791,24811,28953,34987,22868,33519,26412,31528,23849,32503,29997,27893,36454,36856,36924,40763,27604,37145,31508,24444,30887,34006,34109,27605,27609,27606,24065,24199,30201,38381,25949,24330,24517,36767,22721,33218,36991,38491,38829,36793,32534,36140,25153,20415,21464,21342,36776,36777,36779,36941,26631,24426,33176,34920,40150,24971,21035,30250,24428,25996,28626,28392,23486,25672,20853,20912,26564,19993,31177,39292,28851,30557,30558,30559,30560,30564,30567,30569,30570,30573,30574,30575,30576,30577,30578,30579,30580,30581,30582,30583,30584,30586,30587,30588,30593,30594,30595,30598,30599,30600,30601,30602,30603,30607,30608,30611,30612,30613,30614,30615,30616,30617,30618,30619,30620,30621,30622,30625,30627,30628,30630,30632,30635,30637,30638,30639,30641,30642,30644,30646,30647,30648,30649,30650,30652,30654,30656,30657,30658,30659,30660,30661,30662,30663,30664,30665,30666,30667,30668,30670,30671,30672,30673,30674,30675,30676,30677,30678,30680,30681,30682,30685,30686,30687,30688,30689,30692,30149,24182,29627,33760,25773,25320,38069,27874,21338,21187,25615,38082,31636,20271,24091,33334,33046,33162,28196,27850,39539,25429,21340,21754,34917,22496,19981,24067,27493,31807,37096,24598,25830,29468,35009,26448,25165,36130,30572,36393,37319,24425,33756,34081,39184,21442,34453,27531,24813,24808,28799,33485,33329,20179,27815,34255,25805,31961,27133,26361,33609,21397,31574,20391,20876,27979,23618,36461,25554,21449,33580,33590,26597,30900,25661,23519,23700,24046,35815,25286,26612,35962,25600,25530,34633,39307,35863,32544,38130,20135,38416,39076,26124,29462,30694,30696,30698,30703,30704,30705,30706,30708,30709,30711,30713,30714,30715,30716,30723,30724,30725,30726,30727,30728,30730,30731,30734,30735,30736,30739,30741,30745,30747,30750,30752,30753,30754,30756,30760,30762,30763,30766,30767,30769,30770,30771,30773,30774,30781,30783,30785,30786,30787,30788,30790,30792,30793,30794,30795,30797,30799,30801,30803,30804,30808,30809,30810,30811,30812,30814,30815,30816,30817,30818,30819,30820,30821,30822,30823,30824,30825,30831,30832,30833,30834,30835,30836,30837,30838,30840,30841,30842,30843,30845,30846,30847,30848,30849,30850,30851,22330,23581,24120,38271,20607,32928,21378,25950,30021,21809,20513,36229,25220,38046,26397,22066,28526,24034,21557,28818,36710,25199,25764,25507,24443,28552,37108,33251,36784,23576,26216,24561,27785,38472,36225,34924,25745,31216,22478,27225,25104,21576,20056,31243,24809,28548,35802,25215,36894,39563,31204,21507,30196,25345,21273,27744,36831,24347,39536,32827,40831,20360,23610,36196,32709,26021,28861,20805,20914,34411,23815,23456,25277,37228,30068,36364,31264,24833,31609,20167,32504,30597,19985,33261,21021,20986,27249,21416,36487,38148,38607,28353,38500,26970,30852,30853,30854,30856,30858,30859,30863,30864,30866,30868,30869,30870,30873,30877,30878,30880,30882,30884,30886,30888,30889,30890,30891,30892,30893,30894,30895,30901,30902,30903,30904,30906,30907,30908,30909,30911,30912,30914,30915,30916,30918,30919,30920,30924,30925,30926,30927,30929,30930,30931,30934,30935,30936,30938,30939,30940,30941,30942,30943,30944,30945,30946,30947,30948,30949,30950,30951,30953,30954,30955,30957,30958,30959,30960,30961,30963,30965,30966,30968,30969,30971,30972,30973,30974,30975,30976,30978,30979,30980,30982,30983,30984,30985,30986,30987,30988,30784,20648,30679,25616,35302,22788,25571,24029,31359,26941,20256,33337,21912,20018,30126,31383,24162,24202,38383,21019,21561,28810,25462,38180,22402,26149,26943,37255,21767,28147,32431,34850,25139,32496,30133,33576,30913,38604,36766,24904,29943,35789,27492,21050,36176,27425,32874,33905,22257,21254,20174,19995,20945,31895,37259,31751,20419,36479,31713,31388,25703,23828,20652,33030,30209,31929,28140,32736,26449,23384,23544,30923,25774,25619,25514,25387,38169,25645,36798,31572,30249,25171,22823,21574,27513,20643,25140,24102,27526,20195,36151,34955,24453,36910,30989,30990,30991,30992,30993,30994,30996,30997,30998,30999,31e3,31001,31002,31003,31004,31005,31007,31008,31009,31010,31011,31013,31014,31015,31016,31017,31018,31019,31020,31021,31022,31023,31024,31025,31026,31027,31029,31030,31031,31032,31033,31037,31039,31042,31043,31044,31045,31047,31050,31051,31052,31053,31054,31055,31056,31057,31058,31060,31061,31064,31065,31073,31075,31076,31078,31081,31082,31083,31084,31086,31088,31089,31090,31091,31092,31093,31094,31097,31099,31100,31101,31102,31103,31106,31107,31110,31111,31112,31113,31115,31116,31117,31118,31120,31121,31122,24608,32829,25285,20025,21333,37112,25528,32966,26086,27694,20294,24814,28129,35806,24377,34507,24403,25377,20826,33633,26723,20992,25443,36424,20498,23707,31095,23548,21040,31291,24764,36947,30423,24503,24471,30340,36460,28783,30331,31561,30634,20979,37011,22564,20302,28404,36842,25932,31515,29380,28068,32735,23265,25269,24213,22320,33922,31532,24093,24351,36882,32532,39072,25474,28359,30872,28857,20856,38747,22443,30005,20291,30008,24215,24806,22880,28096,27583,30857,21500,38613,20939,20993,25481,21514,38035,35843,36300,29241,30879,34678,36845,35853,21472,31123,31124,31125,31126,31127,31128,31129,31131,31132,31133,31134,31135,31136,31137,31138,31139,31140,31141,31142,31144,31145,31146,31147,31148,31149,31150,31151,31152,31153,31154,31156,31157,31158,31159,31160,31164,31167,31170,31172,31173,31175,31176,31178,31180,31182,31183,31184,31187,31188,31190,31191,31193,31194,31195,31196,31197,31198,31200,31201,31202,31205,31208,31210,31212,31214,31217,31218,31219,31220,31221,31222,31223,31225,31226,31228,31230,31231,31233,31236,31237,31239,31240,31241,31242,31244,31247,31248,31249,31250,31251,31253,31254,31256,31257,31259,31260,19969,30447,21486,38025,39030,40718,38189,23450,35746,20002,19996,20908,33891,25026,21160,26635,20375,24683,20923,27934,20828,25238,26007,38497,35910,36887,30168,37117,30563,27602,29322,29420,35835,22581,30585,36172,26460,38208,32922,24230,28193,22930,31471,30701,38203,27573,26029,32526,22534,20817,38431,23545,22697,21544,36466,25958,39039,22244,38045,30462,36929,25479,21702,22810,22842,22427,36530,26421,36346,33333,21057,24816,22549,34558,23784,40517,20420,39069,35769,23077,24694,21380,25212,36943,37122,39295,24681,32780,20799,32819,23572,39285,27953,20108,31261,31263,31265,31266,31268,31269,31270,31271,31272,31273,31274,31275,31276,31277,31278,31279,31280,31281,31282,31284,31285,31286,31288,31290,31294,31296,31297,31298,31299,31300,31301,31303,31304,31305,31306,31307,31308,31309,31310,31311,31312,31314,31315,31316,31317,31318,31320,31321,31322,31323,31324,31325,31326,31327,31328,31329,31330,31331,31332,31333,31334,31335,31336,31337,31338,31339,31340,31341,31342,31343,31345,31346,31347,31349,31355,31356,31357,31358,31362,31365,31367,31369,31370,31371,31372,31374,31375,31376,31379,31380,31385,31386,31387,31390,31393,31394,36144,21457,32602,31567,20240,20047,38400,27861,29648,34281,24070,30058,32763,27146,30718,38034,32321,20961,28902,21453,36820,33539,36137,29359,39277,27867,22346,33459,26041,32938,25151,38450,22952,20223,35775,32442,25918,33778,38750,21857,39134,32933,21290,35837,21536,32954,24223,27832,36153,33452,37210,21545,27675,20998,32439,22367,28954,27774,31881,22859,20221,24575,24868,31914,20016,23553,26539,34562,23792,38155,39118,30127,28925,36898,20911,32541,35773,22857,20964,20315,21542,22827,25975,32932,23413,25206,25282,36752,24133,27679,31526,20239,20440,26381,31395,31396,31399,31401,31402,31403,31406,31407,31408,31409,31410,31412,31413,31414,31415,31416,31417,31418,31419,31420,31421,31422,31424,31425,31426,31427,31428,31429,31430,31431,31432,31433,31434,31436,31437,31438,31439,31440,31441,31442,31443,31444,31445,31447,31448,31450,31451,31452,31453,31457,31458,31460,31463,31464,31465,31466,31467,31468,31470,31472,31473,31474,31475,31476,31477,31478,31479,31480,31483,31484,31486,31488,31489,31490,31493,31495,31497,31500,31501,31502,31504,31506,31507,31510,31511,31512,31514,31516,31517,31519,31521,31522,31523,31527,31529,31533,28014,28074,31119,34993,24343,29995,25242,36741,20463,37340,26023,33071,33105,24220,33104,36212,21103,35206,36171,22797,20613,20184,38428,29238,33145,36127,23500,35747,38468,22919,32538,21648,22134,22030,35813,25913,27010,38041,30422,28297,24178,29976,26438,26577,31487,32925,36214,24863,31174,25954,36195,20872,21018,38050,32568,32923,32434,23703,28207,26464,31705,30347,39640,33167,32660,31957,25630,38224,31295,21578,21733,27468,25601,25096,40509,33011,30105,21106,38761,33883,26684,34532,38401,38548,38124,20010,21508,32473,26681,36319,32789,26356,24218,32697,31535,31536,31538,31540,31541,31542,31543,31545,31547,31549,31551,31552,31553,31554,31555,31556,31558,31560,31562,31565,31566,31571,31573,31575,31577,31580,31582,31583,31585,31587,31588,31589,31590,31591,31592,31593,31594,31595,31596,31597,31599,31600,31603,31604,31606,31608,31610,31612,31613,31615,31617,31618,31619,31620,31622,31623,31624,31625,31626,31627,31628,31630,31631,31633,31634,31635,31638,31640,31641,31642,31643,31646,31647,31648,31651,31652,31653,31662,31663,31664,31666,31667,31669,31670,31671,31673,31674,31675,31676,31677,31678,31679,31680,31682,31683,31684,22466,32831,26775,24037,25915,21151,24685,40858,20379,36524,20844,23467,24339,24041,27742,25329,36129,20849,38057,21246,27807,33503,29399,22434,26500,36141,22815,36764,33735,21653,31629,20272,27837,23396,22993,40723,21476,34506,39592,35895,32929,25925,39038,22266,38599,21038,29916,21072,23521,25346,35074,20054,25296,24618,26874,20851,23448,20896,35266,31649,39302,32592,24815,28748,36143,20809,24191,36891,29808,35268,22317,30789,24402,40863,38394,36712,39740,35809,30328,26690,26588,36330,36149,21053,36746,28378,26829,38149,37101,22269,26524,35065,36807,21704,31685,31688,31689,31690,31691,31693,31694,31695,31696,31698,31700,31701,31702,31703,31704,31707,31708,31710,31711,31712,31714,31715,31716,31719,31720,31721,31723,31724,31725,31727,31728,31730,31731,31732,31733,31734,31736,31737,31738,31739,31741,31743,31744,31745,31746,31747,31748,31749,31750,31752,31753,31754,31757,31758,31760,31761,31762,31763,31764,31765,31767,31768,31769,31770,31771,31772,31773,31774,31776,31777,31778,31779,31780,31781,31784,31785,31787,31788,31789,31790,31791,31792,31793,31794,31795,31796,31797,31798,31799,31801,31802,31803,31804,31805,31806,31810,39608,23401,28023,27686,20133,23475,39559,37219,25e3,37039,38889,21547,28085,23506,20989,21898,32597,32752,25788,25421,26097,25022,24717,28938,27735,27721,22831,26477,33322,22741,22158,35946,27627,37085,22909,32791,21495,28009,21621,21917,33655,33743,26680,31166,21644,20309,21512,30418,35977,38402,27827,28088,36203,35088,40548,36154,22079,40657,30165,24456,29408,24680,21756,20136,27178,34913,24658,36720,21700,28888,34425,40511,27946,23439,24344,32418,21897,20399,29492,21564,21402,20505,21518,21628,20046,24573,29786,22774,33899,32993,34676,29392,31946,28246,31811,31812,31813,31814,31815,31816,31817,31818,31819,31820,31822,31823,31824,31825,31826,31827,31828,31829,31830,31831,31832,31833,31834,31835,31836,31837,31838,31839,31840,31841,31842,31843,31844,31845,31846,31847,31848,31849,31850,31851,31852,31853,31854,31855,31856,31857,31858,31861,31862,31863,31864,31865,31866,31870,31871,31872,31873,31874,31875,31876,31877,31878,31879,31880,31882,31883,31884,31885,31886,31887,31888,31891,31892,31894,31897,31898,31899,31904,31905,31907,31910,31911,31912,31913,31915,31916,31917,31919,31920,31924,31925,31926,31927,31928,31930,31931,24359,34382,21804,25252,20114,27818,25143,33457,21719,21326,29502,28369,30011,21010,21270,35805,27088,24458,24576,28142,22351,27426,29615,26707,36824,32531,25442,24739,21796,30186,35938,28949,28067,23462,24187,33618,24908,40644,30970,34647,31783,30343,20976,24822,29004,26179,24140,24653,35854,28784,25381,36745,24509,24674,34516,22238,27585,24724,24935,21321,24800,26214,36159,31229,20250,28905,27719,35763,35826,32472,33636,26127,23130,39746,27985,28151,35905,27963,20249,28779,33719,25110,24785,38669,36135,31096,20987,22334,22522,26426,30072,31293,31215,31637,31935,31936,31938,31939,31940,31942,31945,31947,31950,31951,31952,31953,31954,31955,31956,31960,31962,31963,31965,31966,31969,31970,31971,31972,31973,31974,31975,31977,31978,31979,31980,31981,31982,31984,31985,31986,31987,31988,31989,31990,31991,31993,31994,31996,31997,31998,31999,32e3,32001,32002,32003,32004,32005,32006,32007,32008,32009,32011,32012,32013,32014,32015,32016,32017,32018,32019,32020,32021,32022,32023,32024,32025,32026,32027,32028,32029,32030,32031,32033,32035,32036,32037,32038,32040,32041,32042,32044,32045,32046,32048,32049,32050,32051,32052,32053,32054,32908,39269,36857,28608,35749,40481,23020,32489,32521,21513,26497,26840,36753,31821,38598,21450,24613,30142,27762,21363,23241,32423,25380,20960,33034,24049,34015,25216,20864,23395,20238,31085,21058,24760,27982,23492,23490,35745,35760,26082,24524,38469,22931,32487,32426,22025,26551,22841,20339,23478,21152,33626,39050,36158,30002,38078,20551,31292,20215,26550,39550,23233,27516,30417,22362,23574,31546,38388,29006,20860,32937,33392,22904,32516,33575,26816,26604,30897,30839,25315,25441,31616,20461,21098,20943,33616,27099,37492,36341,36145,35265,38190,31661,20214,32055,32056,32057,32058,32059,32060,32061,32062,32063,32064,32065,32066,32067,32068,32069,32070,32071,32072,32073,32074,32075,32076,32077,32078,32079,32080,32081,32082,32083,32084,32085,32086,32087,32088,32089,32090,32091,32092,32093,32094,32095,32096,32097,32098,32099,32100,32101,32102,32103,32104,32105,32106,32107,32108,32109,32111,32112,32113,32114,32115,32116,32117,32118,32120,32121,32122,32123,32124,32125,32126,32127,32128,32129,32130,32131,32132,32133,32134,32135,32136,32137,32138,32139,32140,32141,32142,32143,32144,32145,32146,32147,32148,32149,32150,32151,32152,20581,33328,21073,39279,28176,28293,28071,24314,20725,23004,23558,27974,27743,30086,33931,26728,22870,35762,21280,37233,38477,34121,26898,30977,28966,33014,20132,37066,27975,39556,23047,22204,25605,38128,30699,20389,33050,29409,35282,39290,32564,32478,21119,25945,37237,36735,36739,21483,31382,25581,25509,30342,31224,34903,38454,25130,21163,33410,26708,26480,25463,30571,31469,27905,32467,35299,22992,25106,34249,33445,30028,20511,20171,30117,35819,23626,24062,31563,26020,37329,20170,27941,35167,32039,38182,20165,35880,36827,38771,26187,31105,36817,28908,28024,32153,32154,32155,32156,32157,32158,32159,32160,32161,32162,32163,32164,32165,32167,32168,32169,32170,32171,32172,32173,32175,32176,32177,32178,32179,32180,32181,32182,32183,32184,32185,32186,32187,32188,32189,32190,32191,32192,32193,32194,32195,32196,32197,32198,32199,32200,32201,32202,32203,32204,32205,32206,32207,32208,32209,32210,32211,32212,32213,32214,32215,32216,32217,32218,32219,32220,32221,32222,32223,32224,32225,32226,32227,32228,32229,32230,32231,32232,32233,32234,32235,32236,32237,32238,32239,32240,32241,32242,32243,32244,32245,32246,32247,32248,32249,32250,23613,21170,33606,20834,33550,30555,26230,40120,20140,24778,31934,31923,32463,20117,35686,26223,39048,38745,22659,25964,38236,24452,30153,38742,31455,31454,20928,28847,31384,25578,31350,32416,29590,38893,20037,28792,20061,37202,21417,25937,26087,33276,33285,21646,23601,30106,38816,25304,29401,30141,23621,39545,33738,23616,21632,30697,20030,27822,32858,25298,25454,24040,20855,36317,36382,38191,20465,21477,24807,28844,21095,25424,40515,23071,20518,30519,21367,32482,25733,25899,25225,25496,20500,29237,35273,20915,35776,32477,22343,33740,38055,20891,21531,23803,32251,32252,32253,32254,32255,32256,32257,32258,32259,32260,32261,32262,32263,32264,32265,32266,32267,32268,32269,32270,32271,32272,32273,32274,32275,32276,32277,32278,32279,32280,32281,32282,32283,32284,32285,32286,32287,32288,32289,32290,32291,32292,32293,32294,32295,32296,32297,32298,32299,32300,32301,32302,32303,32304,32305,32306,32307,32308,32309,32310,32311,32312,32313,32314,32316,32317,32318,32319,32320,32322,32323,32324,32325,32326,32328,32329,32330,32331,32332,32333,32334,32335,32336,32337,32338,32339,32340,32341,32342,32343,32344,32345,32346,32347,32348,32349,20426,31459,27994,37089,39567,21888,21654,21345,21679,24320,25577,26999,20975,24936,21002,22570,21208,22350,30733,30475,24247,24951,31968,25179,25239,20130,28821,32771,25335,28900,38752,22391,33499,26607,26869,30933,39063,31185,22771,21683,21487,28212,20811,21051,23458,35838,32943,21827,22438,24691,22353,21549,31354,24656,23380,25511,25248,21475,25187,23495,26543,21741,31391,33510,37239,24211,35044,22840,22446,25358,36328,33007,22359,31607,20393,24555,23485,27454,21281,31568,29378,26694,30719,30518,26103,20917,20111,30420,23743,31397,33909,22862,39745,20608,32350,32351,32352,32353,32354,32355,32356,32357,32358,32359,32360,32361,32362,32363,32364,32365,32366,32367,32368,32369,32370,32371,32372,32373,32374,32375,32376,32377,32378,32379,32380,32381,32382,32383,32384,32385,32387,32388,32389,32390,32391,32392,32393,32394,32395,32396,32397,32398,32399,32400,32401,32402,32403,32404,32405,32406,32407,32408,32409,32410,32412,32413,32414,32430,32436,32443,32444,32470,32484,32492,32505,32522,32528,32542,32567,32569,32571,32572,32573,32574,32575,32576,32577,32579,32582,32583,32584,32585,32586,32587,32588,32589,32590,32591,32594,32595,39304,24871,28291,22372,26118,25414,22256,25324,25193,24275,38420,22403,25289,21895,34593,33098,36771,21862,33713,26469,36182,34013,23146,26639,25318,31726,38417,20848,28572,35888,25597,35272,25042,32518,28866,28389,29701,27028,29436,24266,37070,26391,28010,25438,21171,29282,32769,20332,23013,37226,28889,28061,21202,20048,38647,38253,34174,30922,32047,20769,22418,25794,32907,31867,27882,26865,26974,20919,21400,26792,29313,40654,31729,29432,31163,28435,29702,26446,37324,40100,31036,33673,33620,21519,26647,20029,21385,21169,30782,21382,21033,20616,20363,20432,32598,32601,32603,32604,32605,32606,32608,32611,32612,32613,32614,32615,32619,32620,32621,32623,32624,32627,32629,32630,32631,32632,32634,32635,32636,32637,32639,32640,32642,32643,32644,32645,32646,32647,32648,32649,32651,32653,32655,32656,32657,32658,32659,32661,32662,32663,32664,32665,32667,32668,32672,32674,32675,32677,32678,32680,32681,32682,32683,32684,32685,32686,32689,32691,32692,32693,32694,32695,32698,32699,32702,32704,32706,32707,32708,32710,32711,32712,32713,32715,32717,32719,32720,32721,32722,32723,32726,32727,32729,32730,32731,32732,32733,32734,32738,32739,30178,31435,31890,27813,38582,21147,29827,21737,20457,32852,33714,36830,38256,24265,24604,28063,24088,25947,33080,38142,24651,28860,32451,31918,20937,26753,31921,33391,20004,36742,37327,26238,20142,35845,25769,32842,20698,30103,29134,23525,36797,28518,20102,25730,38243,24278,26009,21015,35010,28872,21155,29454,29747,26519,30967,38678,20020,37051,40158,28107,20955,36161,21533,25294,29618,33777,38646,40836,38083,20278,32666,20940,28789,38517,23725,39046,21478,20196,28316,29705,27060,30827,39311,30041,21016,30244,27969,26611,20845,40857,32843,21657,31548,31423,32740,32743,32744,32746,32747,32748,32749,32751,32754,32756,32757,32758,32759,32760,32761,32762,32765,32766,32767,32770,32775,32776,32777,32778,32782,32783,32785,32787,32794,32795,32797,32798,32799,32801,32803,32804,32811,32812,32813,32814,32815,32816,32818,32820,32825,32826,32828,32830,32832,32833,32836,32837,32839,32840,32841,32846,32847,32848,32849,32851,32853,32854,32855,32857,32859,32860,32861,32862,32863,32864,32865,32866,32867,32868,32869,32870,32871,32872,32875,32876,32877,32878,32879,32880,32882,32883,32884,32885,32886,32887,32888,32889,32890,32891,32892,32893,38534,22404,25314,38471,27004,23044,25602,31699,28431,38475,33446,21346,39045,24208,28809,25523,21348,34383,40065,40595,30860,38706,36335,36162,40575,28510,31108,24405,38470,25134,39540,21525,38109,20387,26053,23653,23649,32533,34385,27695,24459,29575,28388,32511,23782,25371,23402,28390,21365,20081,25504,30053,25249,36718,20262,20177,27814,32438,35770,33821,34746,32599,36923,38179,31657,39585,35064,33853,27931,39558,32476,22920,40635,29595,30721,34434,39532,39554,22043,21527,22475,20080,40614,21334,36808,33033,30610,39314,34542,28385,34067,26364,24930,28459,32894,32897,32898,32901,32904,32906,32909,32910,32911,32912,32913,32914,32916,32917,32919,32921,32926,32931,32934,32935,32936,32940,32944,32947,32949,32950,32952,32953,32955,32965,32967,32968,32969,32970,32971,32975,32976,32977,32978,32979,32980,32981,32984,32991,32992,32994,32995,32998,33006,33013,33015,33017,33019,33022,33023,33024,33025,33027,33028,33029,33031,33032,33035,33036,33045,33047,33049,33051,33052,33053,33055,33056,33057,33058,33059,33060,33061,33062,33063,33064,33065,33066,33067,33069,33070,33072,33075,33076,33077,33079,33081,33082,33083,33084,33085,33087,35881,33426,33579,30450,27667,24537,33725,29483,33541,38170,27611,30683,38086,21359,33538,20882,24125,35980,36152,20040,29611,26522,26757,37238,38665,29028,27809,30473,23186,38209,27599,32654,26151,23504,22969,23194,38376,38391,20204,33804,33945,27308,30431,38192,29467,26790,23391,30511,37274,38753,31964,36855,35868,24357,31859,31192,35269,27852,34588,23494,24130,26825,30496,32501,20885,20813,21193,23081,32517,38754,33495,25551,30596,34256,31186,28218,24217,22937,34065,28781,27665,25279,30399,25935,24751,38397,26126,34719,40483,38125,21517,21629,35884,25720,33088,33089,33090,33091,33092,33093,33095,33097,33101,33102,33103,33106,33110,33111,33112,33115,33116,33117,33118,33119,33121,33122,33123,33124,33126,33128,33130,33131,33132,33135,33138,33139,33141,33142,33143,33144,33153,33155,33156,33157,33158,33159,33161,33163,33164,33165,33166,33168,33170,33171,33172,33173,33174,33175,33177,33178,33182,33183,33184,33185,33186,33188,33189,33191,33193,33195,33196,33197,33198,33199,33200,33201,33202,33204,33205,33206,33207,33208,33209,33212,33213,33214,33215,33220,33221,33223,33224,33225,33227,33229,33230,33231,33232,33233,33234,33235,25721,34321,27169,33180,30952,25705,39764,25273,26411,33707,22696,40664,27819,28448,23518,38476,35851,29279,26576,25287,29281,20137,22982,27597,22675,26286,24149,21215,24917,26408,30446,30566,29287,31302,25343,21738,21584,38048,37027,23068,32435,27670,20035,22902,32784,22856,21335,30007,38590,22218,25376,33041,24700,38393,28118,21602,39297,20869,23273,33021,22958,38675,20522,27877,23612,25311,20320,21311,33147,36870,28346,34091,25288,24180,30910,25781,25467,24565,23064,37247,40479,23615,25423,32834,23421,21870,38218,38221,28037,24744,26592,29406,20957,23425,33236,33237,33238,33239,33240,33241,33242,33243,33244,33245,33246,33247,33248,33249,33250,33252,33253,33254,33256,33257,33259,33262,33263,33264,33265,33266,33269,33270,33271,33272,33273,33274,33277,33279,33283,33287,33288,33289,33290,33291,33294,33295,33297,33299,33301,33302,33303,33304,33305,33306,33309,33312,33316,33317,33318,33319,33321,33326,33330,33338,33340,33341,33343,33344,33345,33346,33347,33349,33350,33352,33354,33356,33357,33358,33360,33361,33362,33363,33364,33365,33366,33367,33369,33371,33372,33373,33374,33376,33377,33378,33379,33380,33381,33382,33383,33385,25319,27870,29275,25197,38062,32445,33043,27987,20892,24324,22900,21162,24594,22899,26262,34384,30111,25386,25062,31983,35834,21734,27431,40485,27572,34261,21589,20598,27812,21866,36276,29228,24085,24597,29750,25293,25490,29260,24472,28227,27966,25856,28504,30424,30928,30460,30036,21028,21467,20051,24222,26049,32810,32982,25243,21638,21032,28846,34957,36305,27873,21624,32986,22521,35060,36180,38506,37197,20329,27803,21943,30406,30768,25256,28921,28558,24429,34028,26842,30844,31735,33192,26379,40527,25447,30896,22383,30738,38713,25209,25259,21128,29749,27607,33386,33387,33388,33389,33393,33397,33398,33399,33400,33403,33404,33408,33409,33411,33413,33414,33415,33417,33420,33424,33427,33428,33429,33430,33434,33435,33438,33440,33442,33443,33447,33458,33461,33462,33466,33467,33468,33471,33472,33474,33475,33477,33478,33481,33488,33494,33497,33498,33501,33506,33511,33512,33513,33514,33516,33517,33518,33520,33522,33523,33525,33526,33528,33530,33532,33533,33534,33535,33536,33546,33547,33549,33552,33554,33555,33558,33560,33561,33565,33566,33567,33568,33569,33570,33571,33572,33573,33574,33577,33578,33582,33584,33586,33591,33595,33597,21860,33086,30130,30382,21305,30174,20731,23617,35692,31687,20559,29255,39575,39128,28418,29922,31080,25735,30629,25340,39057,36139,21697,32856,20050,22378,33529,33805,24179,20973,29942,35780,23631,22369,27900,39047,23110,30772,39748,36843,31893,21078,25169,38138,20166,33670,33889,33769,33970,22484,26420,22275,26222,28006,35889,26333,28689,26399,27450,26646,25114,22971,19971,20932,28422,26578,27791,20854,26827,22855,27495,30054,23822,33040,40784,26071,31048,31041,39569,36215,23682,20062,20225,21551,22865,30732,22120,27668,36804,24323,27773,27875,35755,25488,33598,33599,33601,33602,33604,33605,33608,33610,33611,33612,33613,33614,33619,33621,33622,33623,33624,33625,33629,33634,33648,33649,33650,33651,33652,33653,33654,33657,33658,33662,33663,33664,33665,33666,33667,33668,33671,33672,33674,33675,33676,33677,33679,33680,33681,33684,33685,33686,33687,33689,33690,33693,33695,33697,33698,33699,33700,33701,33702,33703,33708,33709,33710,33711,33717,33723,33726,33727,33730,33731,33732,33734,33736,33737,33739,33741,33742,33744,33745,33746,33747,33749,33751,33753,33754,33755,33758,33762,33763,33764,33766,33767,33768,33771,33772,33773,24688,27965,29301,25190,38030,38085,21315,36801,31614,20191,35878,20094,40660,38065,38067,21069,28508,36963,27973,35892,22545,23884,27424,27465,26538,21595,33108,32652,22681,34103,24378,25250,27207,38201,25970,24708,26725,30631,20052,20392,24039,38808,25772,32728,23789,20431,31373,20999,33540,19988,24623,31363,38054,20405,20146,31206,29748,21220,33465,25810,31165,23517,27777,38738,36731,27682,20542,21375,28165,25806,26228,27696,24773,39031,35831,24198,29756,31351,31179,19992,37041,29699,27714,22234,37195,27845,36235,21306,34502,26354,36527,23624,39537,28192,33774,33775,33779,33780,33781,33782,33783,33786,33787,33788,33790,33791,33792,33794,33797,33799,33800,33801,33802,33808,33810,33811,33812,33813,33814,33815,33817,33818,33819,33822,33823,33824,33825,33826,33827,33833,33834,33835,33836,33837,33838,33839,33840,33842,33843,33844,33845,33846,33847,33849,33850,33851,33854,33855,33856,33857,33858,33859,33860,33861,33863,33864,33865,33866,33867,33868,33869,33870,33871,33872,33874,33875,33876,33877,33878,33880,33885,33886,33887,33888,33890,33892,33893,33894,33895,33896,33898,33902,33903,33904,33906,33908,33911,33913,33915,33916,21462,23094,40843,36259,21435,22280,39079,26435,37275,27849,20840,30154,25331,29356,21048,21149,32570,28820,30264,21364,40522,27063,30830,38592,35033,32676,28982,29123,20873,26579,29924,22756,25880,22199,35753,39286,25200,32469,24825,28909,22764,20161,20154,24525,38887,20219,35748,20995,22922,32427,25172,20173,26085,25102,33592,33993,33635,34701,29076,28342,23481,32466,20887,25545,26580,32905,33593,34837,20754,23418,22914,36785,20083,27741,20837,35109,36719,38446,34122,29790,38160,38384,28070,33509,24369,25746,27922,33832,33134,40131,22622,36187,19977,21441,33917,33918,33919,33920,33921,33923,33924,33925,33926,33930,33933,33935,33936,33937,33938,33939,33940,33941,33942,33944,33946,33947,33949,33950,33951,33952,33954,33955,33956,33957,33958,33959,33960,33961,33962,33963,33964,33965,33966,33968,33969,33971,33973,33974,33975,33979,33980,33982,33984,33986,33987,33989,33990,33991,33992,33995,33996,33998,33999,34002,34004,34005,34007,34008,34009,34010,34011,34012,34014,34017,34018,34020,34023,34024,34025,34026,34027,34029,34030,34031,34033,34034,34035,34036,34037,34038,34039,34040,34041,34042,34043,34045,34046,34048,34049,34050,20254,25955,26705,21971,20007,25620,39578,25195,23234,29791,33394,28073,26862,20711,33678,30722,26432,21049,27801,32433,20667,21861,29022,31579,26194,29642,33515,26441,23665,21024,29053,34923,38378,38485,25797,36193,33203,21892,27733,25159,32558,22674,20260,21830,36175,26188,19978,23578,35059,26786,25422,31245,28903,33421,21242,38902,23569,21736,37045,32461,22882,36170,34503,33292,33293,36198,25668,23556,24913,28041,31038,35774,30775,30003,21627,20280,36523,28145,23072,32453,31070,27784,23457,23158,29978,32958,24910,28183,22768,29983,29989,29298,21319,32499,34051,34052,34053,34054,34055,34056,34057,34058,34059,34061,34062,34063,34064,34066,34068,34069,34070,34072,34073,34075,34076,34077,34078,34080,34082,34083,34084,34085,34086,34087,34088,34089,34090,34093,34094,34095,34096,34097,34098,34099,34100,34101,34102,34110,34111,34112,34113,34114,34116,34117,34118,34119,34123,34124,34125,34126,34127,34128,34129,34130,34131,34132,34133,34135,34136,34138,34139,34140,34141,34143,34144,34145,34146,34147,34149,34150,34151,34153,34154,34155,34156,34157,34158,34159,34160,34161,34163,34165,34166,34167,34168,34172,34173,34175,34176,34177,30465,30427,21097,32988,22307,24072,22833,29422,26045,28287,35799,23608,34417,21313,30707,25342,26102,20160,39135,34432,23454,35782,21490,30690,20351,23630,39542,22987,24335,31034,22763,19990,26623,20107,25325,35475,36893,21183,26159,21980,22124,36866,20181,20365,37322,39280,27663,24066,24643,23460,35270,35797,25910,25163,39318,23432,23551,25480,21806,21463,30246,20861,34092,26530,26803,27530,25234,36755,21460,33298,28113,30095,20070,36174,23408,29087,34223,26257,26329,32626,34560,40653,40736,23646,26415,36848,26641,26463,25101,31446,22661,24246,25968,28465,34178,34179,34182,34184,34185,34186,34187,34188,34189,34190,34192,34193,34194,34195,34196,34197,34198,34199,34200,34201,34202,34205,34206,34207,34208,34209,34210,34211,34213,34214,34215,34217,34219,34220,34221,34225,34226,34227,34228,34229,34230,34232,34234,34235,34236,34237,34238,34239,34240,34242,34243,34244,34245,34246,34247,34248,34250,34251,34252,34253,34254,34257,34258,34260,34262,34263,34264,34265,34266,34267,34269,34270,34271,34272,34273,34274,34275,34277,34278,34279,34280,34282,34283,34284,34285,34286,34287,34288,34289,34290,34291,34292,34293,34294,34295,34296,24661,21047,32781,25684,34928,29993,24069,26643,25332,38684,21452,29245,35841,27700,30561,31246,21550,30636,39034,33308,35828,30805,26388,28865,26031,25749,22070,24605,31169,21496,19997,27515,32902,23546,21987,22235,20282,20284,39282,24051,26494,32824,24578,39042,36865,23435,35772,35829,25628,33368,25822,22013,33487,37221,20439,32032,36895,31903,20723,22609,28335,23487,35785,32899,37240,33948,31639,34429,38539,38543,32485,39635,30862,23681,31319,36930,38567,31071,23385,25439,31499,34001,26797,21766,32553,29712,32034,38145,25152,22604,20182,23427,22905,22612,34297,34298,34300,34301,34302,34304,34305,34306,34307,34308,34310,34311,34312,34313,34314,34315,34316,34317,34318,34319,34320,34322,34323,34324,34325,34327,34328,34329,34330,34331,34332,34333,34334,34335,34336,34337,34338,34339,34340,34341,34342,34344,34346,34347,34348,34349,34350,34351,34352,34353,34354,34355,34356,34357,34358,34359,34361,34362,34363,34365,34366,34367,34368,34369,34370,34371,34372,34373,34374,34375,34376,34377,34378,34379,34380,34386,34387,34389,34390,34391,34392,34393,34395,34396,34397,34399,34400,34401,34403,34404,34405,34406,34407,34408,34409,34410,29549,25374,36427,36367,32974,33492,25260,21488,27888,37214,22826,24577,27760,22349,25674,36138,30251,28393,22363,27264,30192,28525,35885,35848,22374,27631,34962,30899,25506,21497,28845,27748,22616,25642,22530,26848,33179,21776,31958,20504,36538,28108,36255,28907,25487,28059,28372,32486,33796,26691,36867,28120,38518,35752,22871,29305,34276,33150,30140,35466,26799,21076,36386,38161,25552,39064,36420,21884,20307,26367,22159,24789,28053,21059,23625,22825,28155,22635,3e4,29980,24684,33300,33094,25361,26465,36834,30522,36339,36148,38081,24086,21381,21548,28867,34413,34415,34416,34418,34419,34420,34421,34422,34423,34424,34435,34436,34437,34438,34439,34440,34441,34446,34447,34448,34449,34450,34452,34454,34455,34456,34457,34458,34459,34462,34463,34464,34465,34466,34469,34470,34475,34477,34478,34482,34483,34487,34488,34489,34491,34492,34493,34494,34495,34497,34498,34499,34501,34504,34508,34509,34514,34515,34517,34518,34519,34522,34524,34525,34528,34529,34530,34531,34533,34534,34535,34536,34538,34539,34540,34543,34549,34550,34551,34554,34555,34556,34557,34559,34561,34564,34565,34566,34571,34572,34574,34575,34576,34577,34580,34582,27712,24311,20572,20141,24237,25402,33351,36890,26704,37230,30643,21516,38108,24420,31461,26742,25413,31570,32479,30171,20599,25237,22836,36879,20984,31171,31361,22270,24466,36884,28034,23648,22303,21520,20820,28237,22242,25512,39059,33151,34581,35114,36864,21534,23663,33216,25302,25176,33073,40501,38464,39534,39548,26925,22949,25299,21822,25366,21703,34521,27964,23043,29926,34972,27498,22806,35916,24367,28286,29609,39037,20024,28919,23436,30871,25405,26202,30358,24779,23451,23113,19975,33109,27754,29579,20129,26505,32593,24448,26106,26395,24536,22916,23041,34585,34587,34589,34591,34592,34596,34598,34599,34600,34602,34603,34604,34605,34607,34608,34610,34611,34613,34614,34616,34617,34618,34620,34621,34624,34625,34626,34627,34628,34629,34630,34634,34635,34637,34639,34640,34641,34642,34644,34645,34646,34648,34650,34651,34652,34653,34654,34655,34657,34658,34662,34663,34664,34665,34666,34667,34668,34669,34671,34673,34674,34675,34677,34679,34680,34681,34682,34687,34688,34689,34692,34694,34695,34697,34698,34700,34702,34703,34704,34705,34706,34708,34709,34710,34712,34713,34714,34715,34716,34717,34718,34720,34721,34722,34723,34724,24013,24494,21361,38886,36829,26693,22260,21807,24799,20026,28493,32500,33479,33806,22996,20255,20266,23614,32428,26410,34074,21619,30031,32963,21890,39759,20301,28205,35859,23561,24944,21355,30239,28201,34442,25991,38395,32441,21563,31283,32010,38382,21985,32705,29934,25373,34583,28065,31389,25105,26017,21351,25569,27779,24043,21596,38056,20044,27745,35820,23627,26080,33436,26791,21566,21556,27595,27494,20116,25410,21320,33310,20237,20398,22366,25098,38654,26212,29289,21247,21153,24735,35823,26132,29081,26512,35199,30802,30717,26224,22075,21560,38177,29306,34725,34726,34727,34729,34730,34734,34736,34737,34738,34740,34742,34743,34744,34745,34747,34748,34750,34751,34753,34754,34755,34756,34757,34759,34760,34761,34764,34765,34766,34767,34768,34772,34773,34774,34775,34776,34777,34778,34780,34781,34782,34783,34785,34786,34787,34788,34790,34791,34792,34793,34795,34796,34797,34799,34800,34801,34802,34803,34804,34805,34806,34807,34808,34810,34811,34812,34813,34815,34816,34817,34818,34820,34821,34822,34823,34824,34825,34827,34828,34829,34830,34831,34832,34833,34834,34836,34839,34840,34841,34842,34844,34845,34846,34847,34848,34851,31232,24687,24076,24713,33181,22805,24796,29060,28911,28330,27728,29312,27268,34989,24109,20064,23219,21916,38115,27927,31995,38553,25103,32454,30606,34430,21283,38686,36758,26247,23777,20384,29421,19979,21414,22799,21523,25472,38184,20808,20185,40092,32420,21688,36132,34900,33335,38386,28046,24358,23244,26174,38505,29616,29486,21439,33146,39301,32673,23466,38519,38480,32447,30456,21410,38262,39321,31665,35140,28248,20065,32724,31077,35814,24819,21709,20139,39033,24055,27233,20687,21521,35937,33831,30813,38660,21066,21742,22179,38144,28040,23477,28102,26195,34852,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34867,34868,34869,34870,34871,34872,34874,34875,34877,34878,34879,34881,34882,34883,34886,34887,34888,34889,34890,34891,34894,34895,34896,34897,34898,34899,34901,34902,34904,34906,34907,34908,34909,34910,34911,34912,34918,34919,34922,34925,34927,34929,34931,34932,34933,34934,34936,34937,34938,34939,34940,34944,34947,34950,34951,34953,34954,34956,34958,34959,34960,34961,34963,34964,34965,34967,34968,34969,34970,34971,34973,34974,34975,34976,34977,34979,34981,34982,34983,34984,34985,34986,23567,23389,26657,32918,21880,31505,25928,26964,20123,27463,34638,38795,21327,25375,25658,37034,26012,32961,35856,20889,26800,21368,34809,25032,27844,27899,35874,23633,34218,33455,38156,27427,36763,26032,24571,24515,20449,34885,26143,33125,29481,24826,20852,21009,22411,24418,37026,34892,37266,24184,26447,24615,22995,20804,20982,33016,21256,27769,38596,29066,20241,20462,32670,26429,21957,38152,31168,34966,32483,22687,25100,38656,34394,22040,39035,24464,35768,33988,37207,21465,26093,24207,30044,24676,32110,23167,32490,32493,36713,21927,23459,24748,26059,29572,34988,34990,34991,34992,34994,34995,34996,34997,34998,35e3,35001,35002,35003,35005,35006,35007,35008,35011,35012,35015,35016,35018,35019,35020,35021,35023,35024,35025,35027,35030,35031,35034,35035,35036,35037,35038,35040,35041,35046,35047,35049,35050,35051,35052,35053,35054,35055,35058,35061,35062,35063,35066,35067,35069,35071,35072,35073,35075,35076,35077,35078,35079,35080,35081,35083,35084,35085,35086,35087,35089,35092,35093,35094,35095,35096,35100,35101,35102,35103,35104,35106,35107,35108,35110,35111,35112,35113,35116,35117,35118,35119,35121,35122,35123,35125,35127,36873,30307,30505,32474,38772,34203,23398,31348,38634,34880,21195,29071,24490,26092,35810,23547,39535,24033,27529,27739,35757,35759,36874,36805,21387,25276,40486,40493,21568,20011,33469,29273,34460,23830,34905,28079,38597,21713,20122,35766,28937,21693,38409,28895,28153,30416,20005,30740,34578,23721,24310,35328,39068,38414,28814,27839,22852,25513,30524,34893,28436,33395,22576,29141,21388,30746,38593,21761,24422,28976,23476,35866,39564,27523,22830,40495,31207,26472,25196,20335,30113,32650,27915,38451,27687,20208,30162,20859,26679,28478,36992,33136,22934,29814,35128,35129,35130,35131,35132,35133,35134,35135,35136,35138,35139,35141,35142,35143,35144,35145,35146,35147,35148,35149,35150,35151,35152,35153,35154,35155,35156,35157,35158,35159,35160,35161,35162,35163,35164,35165,35168,35169,35170,35171,35172,35173,35175,35176,35177,35178,35179,35180,35181,35182,35183,35184,35185,35186,35187,35188,35189,35190,35191,35192,35193,35194,35196,35197,35198,35200,35202,35204,35205,35207,35208,35209,35210,35211,35212,35213,35214,35215,35216,35217,35218,35219,35220,35221,35222,35223,35224,35225,35226,35227,35228,35229,35230,35231,35232,35233,25671,23591,36965,31377,35875,23002,21676,33280,33647,35201,32768,26928,22094,32822,29239,37326,20918,20063,39029,25494,19994,21494,26355,33099,22812,28082,19968,22777,21307,25558,38129,20381,20234,34915,39056,22839,36951,31227,20202,33008,30097,27778,23452,23016,24413,26885,34433,20506,24050,20057,30691,20197,33402,25233,26131,37009,23673,20159,24441,33222,36920,32900,30123,20134,35028,24847,27589,24518,20041,30410,28322,35811,35758,35850,35793,24322,32764,32716,32462,33589,33643,22240,27575,38899,38452,23035,21535,38134,28139,23493,39278,23609,24341,38544,35234,35235,35236,35237,35238,35239,35240,35241,35242,35243,35244,35245,35246,35247,35248,35249,35250,35251,35252,35253,35254,35255,35256,35257,35258,35259,35260,35261,35262,35263,35264,35267,35277,35283,35284,35285,35287,35288,35289,35291,35293,35295,35296,35297,35298,35300,35303,35304,35305,35306,35308,35309,35310,35312,35313,35314,35316,35317,35318,35319,35320,35321,35322,35323,35324,35325,35326,35327,35329,35330,35331,35332,35333,35334,35336,35337,35338,35339,35340,35341,35342,35343,35344,35345,35346,35347,35348,35349,35350,35351,35352,35353,35354,35355,35356,35357,21360,33521,27185,23156,40560,24212,32552,33721,33828,33829,33639,34631,36814,36194,30408,24433,39062,30828,26144,21727,25317,20323,33219,30152,24248,38605,36362,34553,21647,27891,28044,27704,24703,21191,29992,24189,20248,24736,24551,23588,30001,37038,38080,29369,27833,28216,37193,26377,21451,21491,20305,37321,35825,21448,24188,36802,28132,20110,30402,27014,34398,24858,33286,20313,20446,36926,40060,24841,28189,28180,38533,20104,23089,38632,19982,23679,31161,23431,35821,32701,29577,22495,33419,37057,21505,36935,21947,23786,24481,24840,27442,29425,32946,35465,35358,35359,35360,35361,35362,35363,35364,35365,35366,35367,35368,35369,35370,35371,35372,35373,35374,35375,35376,35377,35378,35379,35380,35381,35382,35383,35384,35385,35386,35387,35388,35389,35391,35392,35393,35394,35395,35396,35397,35398,35399,35401,35402,35403,35404,35405,35406,35407,35408,35409,35410,35411,35412,35413,35414,35415,35416,35417,35418,35419,35420,35421,35422,35423,35424,35425,35426,35427,35428,35429,35430,35431,35432,35433,35434,35435,35436,35437,35438,35439,35440,35441,35442,35443,35444,35445,35446,35447,35448,35450,35451,35452,35453,35454,35455,35456,28020,23507,35029,39044,35947,39533,40499,28170,20900,20803,22435,34945,21407,25588,36757,22253,21592,22278,29503,28304,32536,36828,33489,24895,24616,38498,26352,32422,36234,36291,38053,23731,31908,26376,24742,38405,32792,20113,37095,21248,38504,20801,36816,34164,37213,26197,38901,23381,21277,30776,26434,26685,21705,28798,23472,36733,20877,22312,21681,25874,26242,36190,36163,33039,33900,36973,31967,20991,34299,26531,26089,28577,34468,36481,22122,36896,30338,28790,29157,36131,25321,21017,27901,36156,24590,22686,24974,26366,36192,25166,21939,28195,26413,36711,35457,35458,35459,35460,35461,35462,35463,35464,35467,35468,35469,35470,35471,35472,35473,35474,35476,35477,35478,35479,35480,35481,35482,35483,35484,35485,35486,35487,35488,35489,35490,35491,35492,35493,35494,35495,35496,35497,35498,35499,35500,35501,35502,35503,35504,35505,35506,35507,35508,35509,35510,35511,35512,35513,35514,35515,35516,35517,35518,35519,35520,35521,35522,35523,35524,35525,35526,35527,35528,35529,35530,35531,35532,35533,35534,35535,35536,35537,35538,35539,35540,35541,35542,35543,35544,35545,35546,35547,35548,35549,35550,35551,35552,35553,35554,35555,38113,38392,30504,26629,27048,21643,20045,28856,35784,25688,25995,23429,31364,20538,23528,30651,27617,35449,31896,27838,30415,26025,36759,23853,23637,34360,26632,21344,25112,31449,28251,32509,27167,31456,24432,28467,24352,25484,28072,26454,19976,24080,36134,20183,32960,30260,38556,25307,26157,25214,27836,36213,29031,32617,20806,32903,21484,36974,25240,21746,34544,36761,32773,38167,34071,36825,27993,29645,26015,30495,29956,30759,33275,36126,38024,20390,26517,30137,35786,38663,25391,38215,38453,33976,25379,30529,24449,29424,20105,24596,25972,25327,27491,25919,35556,35557,35558,35559,35560,35561,35562,35563,35564,35565,35566,35567,35568,35569,35570,35571,35572,35573,35574,35575,35576,35577,35578,35579,35580,35581,35582,35583,35584,35585,35586,35587,35588,35589,35590,35592,35593,35594,35595,35596,35597,35598,35599,35600,35601,35602,35603,35604,35605,35606,35607,35608,35609,35610,35611,35612,35613,35614,35615,35616,35617,35618,35619,35620,35621,35623,35624,35625,35626,35627,35628,35629,35630,35631,35632,35633,35634,35635,35636,35637,35638,35639,35640,35641,35642,35643,35644,35645,35646,35647,35648,35649,35650,35651,35652,35653,24103,30151,37073,35777,33437,26525,25903,21553,34584,30693,32930,33026,27713,20043,32455,32844,30452,26893,27542,25191,20540,20356,22336,25351,27490,36286,21482,26088,32440,24535,25370,25527,33267,33268,32622,24092,23769,21046,26234,31209,31258,36136,28825,30164,28382,27835,31378,20013,30405,24544,38047,34935,32456,31181,32959,37325,20210,20247,33311,21608,24030,27954,35788,31909,36724,32920,24090,21650,30385,23449,26172,39588,29664,26666,34523,26417,29482,35832,35803,36880,31481,28891,29038,25284,30633,22065,20027,33879,26609,21161,34496,36142,38136,31569,35654,35655,35656,35657,35658,35659,35660,35661,35662,35663,35664,35665,35666,35667,35668,35669,35670,35671,35672,35673,35674,35675,35676,35677,35678,35679,35680,35681,35682,35683,35684,35685,35687,35688,35689,35690,35691,35693,35694,35695,35696,35697,35698,35699,35700,35701,35702,35703,35704,35705,35706,35707,35708,35709,35710,35711,35712,35713,35714,35715,35716,35717,35718,35719,35720,35721,35722,35723,35724,35725,35726,35727,35728,35729,35730,35731,35732,35733,35734,35735,35736,35737,35738,35739,35740,35741,35742,35743,35756,35761,35771,35783,35792,35818,35849,35870,20303,27880,31069,39547,25235,29226,25341,19987,30742,36716,25776,36186,31686,26729,24196,35013,22918,25758,22766,29366,26894,38181,36861,36184,22368,32512,35846,20934,25417,25305,21331,26700,29730,33537,37196,21828,30528,28796,27978,20857,21672,36164,23039,28363,28100,23388,32043,20180,31869,28371,23376,33258,28173,23383,39683,26837,36394,23447,32508,24635,32437,37049,36208,22863,25549,31199,36275,21330,26063,31062,35781,38459,32452,38075,32386,22068,37257,26368,32618,23562,36981,26152,24038,20304,26590,20570,20316,22352,24231,59408,59409,59410,59411,59412,35896,35897,35898,35899,35900,35901,35902,35903,35904,35906,35907,35908,35909,35912,35914,35915,35917,35918,35919,35920,35921,35922,35923,35924,35926,35927,35928,35929,35931,35932,35933,35934,35935,35936,35939,35940,35941,35942,35943,35944,35945,35948,35949,35950,35951,35952,35953,35954,35956,35957,35958,35959,35963,35964,35965,35966,35967,35968,35969,35971,35972,35974,35975,35976,35979,35981,35982,35983,35984,35985,35986,35987,35989,35990,35991,35993,35994,35995,35996,35997,35998,35999,36e3,36001,36002,36003,36004,36005,36006,36007,36008,36009,36010,36011,36012,36013,20109,19980,20800,19984,24319,21317,19989,20120,19998,39730,23404,22121,20008,31162,20031,21269,20039,22829,29243,21358,27664,22239,32996,39319,27603,30590,40727,20022,20127,40720,20060,20073,20115,33416,23387,21868,22031,20164,21389,21405,21411,21413,21422,38757,36189,21274,21493,21286,21294,21310,36188,21350,21347,20994,21e3,21006,21037,21043,21055,21056,21068,21086,21089,21084,33967,21117,21122,21121,21136,21139,20866,32596,20155,20163,20169,20162,20200,20193,20203,20190,20251,20211,20258,20324,20213,20261,20263,20233,20267,20318,20327,25912,20314,20317,36014,36015,36016,36017,36018,36019,36020,36021,36022,36023,36024,36025,36026,36027,36028,36029,36030,36031,36032,36033,36034,36035,36036,36037,36038,36039,36040,36041,36042,36043,36044,36045,36046,36047,36048,36049,36050,36051,36052,36053,36054,36055,36056,36057,36058,36059,36060,36061,36062,36063,36064,36065,36066,36067,36068,36069,36070,36071,36072,36073,36074,36075,36076,36077,36078,36079,36080,36081,36082,36083,36084,36085,36086,36087,36088,36089,36090,36091,36092,36093,36094,36095,36096,36097,36098,36099,36100,36101,36102,36103,36104,36105,36106,36107,36108,36109,20319,20311,20274,20285,20342,20340,20369,20361,20355,20367,20350,20347,20394,20348,20396,20372,20454,20456,20458,20421,20442,20451,20444,20433,20447,20472,20521,20556,20467,20524,20495,20526,20525,20478,20508,20492,20517,20520,20606,20547,20565,20552,20558,20588,20603,20645,20647,20649,20666,20694,20742,20717,20716,20710,20718,20743,20747,20189,27709,20312,20325,20430,40864,27718,31860,20846,24061,40649,39320,20865,22804,21241,21261,35335,21264,20971,22809,20821,20128,20822,20147,34926,34980,20149,33044,35026,31104,23348,34819,32696,20907,20913,20925,20924,36110,36111,36112,36113,36114,36115,36116,36117,36118,36119,36120,36121,36122,36123,36124,36128,36177,36178,36183,36191,36197,36200,36201,36202,36204,36206,36207,36209,36210,36216,36217,36218,36219,36220,36221,36222,36223,36224,36226,36227,36230,36231,36232,36233,36236,36237,36238,36239,36240,36242,36243,36245,36246,36247,36248,36249,36250,36251,36252,36253,36254,36256,36257,36258,36260,36261,36262,36263,36264,36265,36266,36267,36268,36269,36270,36271,36272,36274,36278,36279,36281,36283,36285,36288,36289,36290,36293,36295,36296,36297,36298,36301,36304,36306,36307,36308,20935,20886,20898,20901,35744,35750,35751,35754,35764,35765,35767,35778,35779,35787,35791,35790,35794,35795,35796,35798,35800,35801,35804,35807,35808,35812,35816,35817,35822,35824,35827,35830,35833,35836,35839,35840,35842,35844,35847,35852,35855,35857,35858,35860,35861,35862,35865,35867,35864,35869,35871,35872,35873,35877,35879,35882,35883,35886,35887,35890,35891,35893,35894,21353,21370,38429,38434,38433,38449,38442,38461,38460,38466,38473,38484,38495,38503,38508,38514,38516,38536,38541,38551,38576,37015,37019,37021,37017,37036,37025,37044,37043,37046,37050,36309,36312,36313,36316,36320,36321,36322,36325,36326,36327,36329,36333,36334,36336,36337,36338,36340,36342,36348,36350,36351,36352,36353,36354,36355,36356,36358,36359,36360,36363,36365,36366,36368,36369,36370,36371,36373,36374,36375,36376,36377,36378,36379,36380,36384,36385,36388,36389,36390,36391,36392,36395,36397,36400,36402,36403,36404,36406,36407,36408,36411,36412,36414,36415,36419,36421,36422,36428,36429,36430,36431,36432,36435,36436,36437,36438,36439,36440,36442,36443,36444,36445,36446,36447,36448,36449,36450,36451,36452,36453,36455,36456,36458,36459,36462,36465,37048,37040,37071,37061,37054,37072,37060,37063,37075,37094,37090,37084,37079,37083,37099,37103,37118,37124,37154,37150,37155,37169,37167,37177,37187,37190,21005,22850,21154,21164,21165,21182,21759,21200,21206,21232,21471,29166,30669,24308,20981,20988,39727,21430,24321,30042,24047,22348,22441,22433,22654,22716,22725,22737,22313,22316,22314,22323,22329,22318,22319,22364,22331,22338,22377,22405,22379,22406,22396,22395,22376,22381,22390,22387,22445,22436,22412,22450,22479,22439,22452,22419,22432,22485,22488,22490,22489,22482,22456,22516,22511,22520,22500,22493,36467,36469,36471,36472,36473,36474,36475,36477,36478,36480,36482,36483,36484,36486,36488,36489,36490,36491,36492,36493,36494,36497,36498,36499,36501,36502,36503,36504,36505,36506,36507,36509,36511,36512,36513,36514,36515,36516,36517,36518,36519,36520,36521,36522,36525,36526,36528,36529,36531,36532,36533,36534,36535,36536,36537,36539,36540,36541,36542,36543,36544,36545,36546,36547,36548,36549,36550,36551,36552,36553,36554,36555,36556,36557,36559,36560,36561,36562,36563,36564,36565,36566,36567,36568,36569,36570,36571,36572,36573,36574,36575,36576,36577,36578,36579,36580,22539,22541,22525,22509,22528,22558,22553,22596,22560,22629,22636,22657,22665,22682,22656,39336,40729,25087,33401,33405,33407,33423,33418,33448,33412,33422,33425,33431,33433,33451,33464,33470,33456,33480,33482,33507,33432,33463,33454,33483,33484,33473,33449,33460,33441,33450,33439,33476,33486,33444,33505,33545,33527,33508,33551,33543,33500,33524,33490,33496,33548,33531,33491,33553,33562,33542,33556,33557,33504,33493,33564,33617,33627,33628,33544,33682,33596,33588,33585,33691,33630,33583,33615,33607,33603,33631,33600,33559,33632,33581,33594,33587,33638,33637,36581,36582,36583,36584,36585,36586,36587,36588,36589,36590,36591,36592,36593,36594,36595,36596,36597,36598,36599,36600,36601,36602,36603,36604,36605,36606,36607,36608,36609,36610,36611,36612,36613,36614,36615,36616,36617,36618,36619,36620,36621,36622,36623,36624,36625,36626,36627,36628,36629,36630,36631,36632,36633,36634,36635,36636,36637,36638,36639,36640,36641,36642,36643,36644,36645,36646,36647,36648,36649,36650,36651,36652,36653,36654,36655,36656,36657,36658,36659,36660,36661,36662,36663,36664,36665,36666,36667,36668,36669,36670,36671,36672,36673,36674,36675,36676,33640,33563,33641,33644,33642,33645,33646,33712,33656,33715,33716,33696,33706,33683,33692,33669,33660,33718,33705,33661,33720,33659,33688,33694,33704,33722,33724,33729,33793,33765,33752,22535,33816,33803,33757,33789,33750,33820,33848,33809,33798,33748,33759,33807,33795,33784,33785,33770,33733,33728,33830,33776,33761,33884,33873,33882,33881,33907,33927,33928,33914,33929,33912,33852,33862,33897,33910,33932,33934,33841,33901,33985,33997,34e3,34022,33981,34003,33994,33983,33978,34016,33953,33977,33972,33943,34021,34019,34060,29965,34104,34032,34105,34079,34106,36677,36678,36679,36680,36681,36682,36683,36684,36685,36686,36687,36688,36689,36690,36691,36692,36693,36694,36695,36696,36697,36698,36699,36700,36701,36702,36703,36704,36705,36706,36707,36708,36709,36714,36736,36748,36754,36765,36768,36769,36770,36772,36773,36774,36775,36778,36780,36781,36782,36783,36786,36787,36788,36789,36791,36792,36794,36795,36796,36799,36800,36803,36806,36809,36810,36811,36812,36813,36815,36818,36822,36823,36826,36832,36833,36835,36839,36844,36847,36849,36850,36852,36853,36854,36858,36859,36860,36862,36863,36871,36872,36876,36878,36883,36885,36888,34134,34107,34047,34044,34137,34120,34152,34148,34142,34170,30626,34115,34162,34171,34212,34216,34183,34191,34169,34222,34204,34181,34233,34231,34224,34259,34241,34268,34303,34343,34309,34345,34326,34364,24318,24328,22844,22849,32823,22869,22874,22872,21263,23586,23589,23596,23604,25164,25194,25247,25275,25290,25306,25303,25326,25378,25334,25401,25419,25411,25517,25590,25457,25466,25486,25524,25453,25516,25482,25449,25518,25532,25586,25592,25568,25599,25540,25566,25550,25682,25542,25534,25669,25665,25611,25627,25632,25612,25638,25633,25694,25732,25709,25750,36889,36892,36899,36900,36901,36903,36904,36905,36906,36907,36908,36912,36913,36914,36915,36916,36919,36921,36922,36925,36927,36928,36931,36933,36934,36936,36937,36938,36939,36940,36942,36948,36949,36950,36953,36954,36956,36957,36958,36959,36960,36961,36964,36966,36967,36969,36970,36971,36972,36975,36976,36977,36978,36979,36982,36983,36984,36985,36986,36987,36988,36990,36993,36996,36997,36998,36999,37001,37002,37004,37005,37006,37007,37008,37010,37012,37014,37016,37018,37020,37022,37023,37024,37028,37029,37031,37032,37033,37035,37037,37042,37047,37052,37053,37055,37056,25722,25783,25784,25753,25786,25792,25808,25815,25828,25826,25865,25893,25902,24331,24530,29977,24337,21343,21489,21501,21481,21480,21499,21522,21526,21510,21579,21586,21587,21588,21590,21571,21537,21591,21593,21539,21554,21634,21652,21623,21617,21604,21658,21659,21636,21622,21606,21661,21712,21677,21698,21684,21714,21671,21670,21715,21716,21618,21667,21717,21691,21695,21708,21721,21722,21724,21673,21674,21668,21725,21711,21726,21787,21735,21792,21757,21780,21747,21794,21795,21775,21777,21799,21802,21863,21903,21941,21833,21869,21825,21845,21823,21840,21820,37058,37059,37062,37064,37065,37067,37068,37069,37074,37076,37077,37078,37080,37081,37082,37086,37087,37088,37091,37092,37093,37097,37098,37100,37102,37104,37105,37106,37107,37109,37110,37111,37113,37114,37115,37116,37119,37120,37121,37123,37125,37126,37127,37128,37129,37130,37131,37132,37133,37134,37135,37136,37137,37138,37139,37140,37141,37142,37143,37144,37146,37147,37148,37149,37151,37152,37153,37156,37157,37158,37159,37160,37161,37162,37163,37164,37165,37166,37168,37170,37171,37172,37173,37174,37175,37176,37178,37179,37180,37181,37182,37183,37184,37185,37186,37188,21815,21846,21877,21878,21879,21811,21808,21852,21899,21970,21891,21937,21945,21896,21889,21919,21886,21974,21905,21883,21983,21949,21950,21908,21913,21994,22007,21961,22047,21969,21995,21996,21972,21990,21981,21956,21999,21989,22002,22003,21964,21965,21992,22005,21988,36756,22046,22024,22028,22017,22052,22051,22014,22016,22055,22061,22104,22073,22103,22060,22093,22114,22105,22108,22092,22100,22150,22116,22129,22123,22139,22140,22149,22163,22191,22228,22231,22237,22241,22261,22251,22265,22271,22276,22282,22281,22300,24079,24089,24084,24081,24113,24123,24124,37189,37191,37192,37201,37203,37204,37205,37206,37208,37209,37211,37212,37215,37216,37222,37223,37224,37227,37229,37235,37242,37243,37244,37248,37249,37250,37251,37252,37254,37256,37258,37262,37263,37267,37268,37269,37270,37271,37272,37273,37276,37277,37278,37279,37280,37281,37284,37285,37286,37287,37288,37289,37291,37292,37296,37297,37298,37299,37302,37303,37304,37305,37307,37308,37309,37310,37311,37312,37313,37314,37315,37316,37317,37318,37320,37323,37328,37330,37331,37332,37333,37334,37335,37336,37337,37338,37339,37341,37342,37343,37344,37345,37346,37347,37348,37349,24119,24132,24148,24155,24158,24161,23692,23674,23693,23696,23702,23688,23704,23705,23697,23706,23708,23733,23714,23741,23724,23723,23729,23715,23745,23735,23748,23762,23780,23755,23781,23810,23811,23847,23846,23854,23844,23838,23814,23835,23896,23870,23860,23869,23916,23899,23919,23901,23915,23883,23882,23913,23924,23938,23961,23965,35955,23991,24005,24435,24439,24450,24455,24457,24460,24469,24473,24476,24488,24493,24501,24508,34914,24417,29357,29360,29364,29367,29368,29379,29377,29390,29389,29394,29416,29423,29417,29426,29428,29431,29441,29427,29443,29434,37350,37351,37352,37353,37354,37355,37356,37357,37358,37359,37360,37361,37362,37363,37364,37365,37366,37367,37368,37369,37370,37371,37372,37373,37374,37375,37376,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37387,37388,37389,37390,37391,37392,37393,37394,37395,37396,37397,37398,37399,37400,37401,37402,37403,37404,37405,37406,37407,37408,37409,37410,37411,37412,37413,37414,37415,37416,37417,37418,37419,37420,37421,37422,37423,37424,37425,37426,37427,37428,37429,37430,37431,37432,37433,37434,37435,37436,37437,37438,37439,37440,37441,37442,37443,37444,37445,29435,29463,29459,29473,29450,29470,29469,29461,29474,29497,29477,29484,29496,29489,29520,29517,29527,29536,29548,29551,29566,33307,22821,39143,22820,22786,39267,39271,39272,39273,39274,39275,39276,39284,39287,39293,39296,39300,39303,39306,39309,39312,39313,39315,39316,39317,24192,24209,24203,24214,24229,24224,24249,24245,24254,24243,36179,24274,24273,24283,24296,24298,33210,24516,24521,24534,24527,24579,24558,24580,24545,24548,24574,24581,24582,24554,24557,24568,24601,24629,24614,24603,24591,24589,24617,24619,24586,24639,24609,24696,24697,24699,24698,24642,37446,37447,37448,37449,37450,37451,37452,37453,37454,37455,37456,37457,37458,37459,37460,37461,37462,37463,37464,37465,37466,37467,37468,37469,37470,37471,37472,37473,37474,37475,37476,37477,37478,37479,37480,37481,37482,37483,37484,37485,37486,37487,37488,37489,37490,37491,37493,37494,37495,37496,37497,37498,37499,37500,37501,37502,37503,37504,37505,37506,37507,37508,37509,37510,37511,37512,37513,37514,37515,37516,37517,37519,37520,37521,37522,37523,37524,37525,37526,37527,37528,37529,37530,37531,37532,37533,37534,37535,37536,37537,37538,37539,37540,37541,37542,37543,24682,24701,24726,24730,24749,24733,24707,24722,24716,24731,24812,24763,24753,24797,24792,24774,24794,24756,24864,24870,24853,24867,24820,24832,24846,24875,24906,24949,25004,24980,24999,25015,25044,25077,24541,38579,38377,38379,38385,38387,38389,38390,38396,38398,38403,38404,38406,38408,38410,38411,38412,38413,38415,38418,38421,38422,38423,38425,38426,20012,29247,25109,27701,27732,27740,27722,27811,27781,27792,27796,27788,27752,27753,27764,27766,27782,27817,27856,27860,27821,27895,27896,27889,27863,27826,27872,27862,27898,27883,27886,27825,27859,27887,27902,37544,37545,37546,37547,37548,37549,37551,37552,37553,37554,37555,37556,37557,37558,37559,37560,37561,37562,37563,37564,37565,37566,37567,37568,37569,37570,37571,37572,37573,37574,37575,37577,37578,37579,37580,37581,37582,37583,37584,37585,37586,37587,37588,37589,37590,37591,37592,37593,37594,37595,37596,37597,37598,37599,37600,37601,37602,37603,37604,37605,37606,37607,37608,37609,37610,37611,37612,37613,37614,37615,37616,37617,37618,37619,37620,37621,37622,37623,37624,37625,37626,37627,37628,37629,37630,37631,37632,37633,37634,37635,37636,37637,37638,37639,37640,37641,27961,27943,27916,27971,27976,27911,27908,27929,27918,27947,27981,27950,27957,27930,27983,27986,27988,27955,28049,28015,28062,28064,27998,28051,28052,27996,28e3,28028,28003,28186,28103,28101,28126,28174,28095,28128,28177,28134,28125,28121,28182,28075,28172,28078,28203,28270,28238,28267,28338,28255,28294,28243,28244,28210,28197,28228,28383,28337,28312,28384,28461,28386,28325,28327,28349,28347,28343,28375,28340,28367,28303,28354,28319,28514,28486,28487,28452,28437,28409,28463,28470,28491,28532,28458,28425,28457,28553,28557,28556,28536,28530,28540,28538,28625,37642,37643,37644,37645,37646,37647,37648,37649,37650,37651,37652,37653,37654,37655,37656,37657,37658,37659,37660,37661,37662,37663,37664,37665,37666,37667,37668,37669,37670,37671,37672,37673,37674,37675,37676,37677,37678,37679,37680,37681,37682,37683,37684,37685,37686,37687,37688,37689,37690,37691,37692,37693,37695,37696,37697,37698,37699,37700,37701,37702,37703,37704,37705,37706,37707,37708,37709,37710,37711,37712,37713,37714,37715,37716,37717,37718,37719,37720,37721,37722,37723,37724,37725,37726,37727,37728,37729,37730,37731,37732,37733,37734,37735,37736,37737,37739,28617,28583,28601,28598,28610,28641,28654,28638,28640,28655,28698,28707,28699,28729,28725,28751,28766,23424,23428,23445,23443,23461,23480,29999,39582,25652,23524,23534,35120,23536,36423,35591,36790,36819,36821,36837,36846,36836,36841,36838,36851,36840,36869,36868,36875,36902,36881,36877,36886,36897,36917,36918,36909,36911,36932,36945,36946,36944,36968,36952,36962,36955,26297,36980,36989,36994,37e3,36995,37003,24400,24407,24406,24408,23611,21675,23632,23641,23409,23651,23654,32700,24362,24361,24365,33396,24380,39739,23662,22913,22915,22925,22953,22954,22947,37740,37741,37742,37743,37744,37745,37746,37747,37748,37749,37750,37751,37752,37753,37754,37755,37756,37757,37758,37759,37760,37761,37762,37763,37764,37765,37766,37767,37768,37769,37770,37771,37772,37773,37774,37776,37777,37778,37779,37780,37781,37782,37783,37784,37785,37786,37787,37788,37789,37790,37791,37792,37793,37794,37795,37796,37797,37798,37799,37800,37801,37802,37803,37804,37805,37806,37807,37808,37809,37810,37811,37812,37813,37814,37815,37816,37817,37818,37819,37820,37821,37822,37823,37824,37825,37826,37827,37828,37829,37830,37831,37832,37833,37835,37836,37837,22935,22986,22955,22942,22948,22994,22962,22959,22999,22974,23045,23046,23005,23048,23011,23e3,23033,23052,23049,23090,23092,23057,23075,23059,23104,23143,23114,23125,23100,23138,23157,33004,23210,23195,23159,23162,23230,23275,23218,23250,23252,23224,23264,23267,23281,23254,23270,23256,23260,23305,23319,23318,23346,23351,23360,23573,23580,23386,23397,23411,23377,23379,23394,39541,39543,39544,39546,39551,39549,39552,39553,39557,39560,39562,39568,39570,39571,39574,39576,39579,39580,39581,39583,39584,39586,39587,39589,39591,32415,32417,32419,32421,32424,32425,37838,37839,37840,37841,37842,37843,37844,37845,37847,37848,37849,37850,37851,37852,37853,37854,37855,37856,37857,37858,37859,37860,37861,37862,37863,37864,37865,37866,37867,37868,37869,37870,37871,37872,37873,37874,37875,37876,37877,37878,37879,37880,37881,37882,37883,37884,37885,37886,37887,37888,37889,37890,37891,37892,37893,37894,37895,37896,37897,37898,37899,37900,37901,37902,37903,37904,37905,37906,37907,37908,37909,37910,37911,37912,37913,37914,37915,37916,37917,37918,37919,37920,37921,37922,37923,37924,37925,37926,37927,37928,37929,37930,37931,37932,37933,37934,32429,32432,32446,32448,32449,32450,32457,32459,32460,32464,32468,32471,32475,32480,32481,32488,32491,32494,32495,32497,32498,32525,32502,32506,32507,32510,32513,32514,32515,32519,32520,32523,32524,32527,32529,32530,32535,32537,32540,32539,32543,32545,32546,32547,32548,32549,32550,32551,32554,32555,32556,32557,32559,32560,32561,32562,32563,32565,24186,30079,24027,30014,37013,29582,29585,29614,29602,29599,29647,29634,29649,29623,29619,29632,29641,29640,29669,29657,39036,29706,29673,29671,29662,29626,29682,29711,29738,29787,29734,29733,29736,29744,29742,29740,37935,37936,37937,37938,37939,37940,37941,37942,37943,37944,37945,37946,37947,37948,37949,37951,37952,37953,37954,37955,37956,37957,37958,37959,37960,37961,37962,37963,37964,37965,37966,37967,37968,37969,37970,37971,37972,37973,37974,37975,37976,37977,37978,37979,37980,37981,37982,37983,37984,37985,37986,37987,37988,37989,37990,37991,37992,37993,37994,37996,37997,37998,37999,38e3,38001,38002,38003,38004,38005,38006,38007,38008,38009,38010,38011,38012,38013,38014,38015,38016,38017,38018,38019,38020,38033,38038,38040,38087,38095,38099,38100,38106,38118,38139,38172,38176,29723,29722,29761,29788,29783,29781,29785,29815,29805,29822,29852,29838,29824,29825,29831,29835,29854,29864,29865,29840,29863,29906,29882,38890,38891,38892,26444,26451,26462,26440,26473,26533,26503,26474,26483,26520,26535,26485,26536,26526,26541,26507,26487,26492,26608,26633,26584,26634,26601,26544,26636,26585,26549,26586,26547,26589,26624,26563,26552,26594,26638,26561,26621,26674,26675,26720,26721,26702,26722,26692,26724,26755,26653,26709,26726,26689,26727,26688,26686,26698,26697,26665,26805,26767,26740,26743,26771,26731,26818,26990,26876,26911,26912,26873,38183,38195,38205,38211,38216,38219,38229,38234,38240,38254,38260,38261,38263,38264,38265,38266,38267,38268,38269,38270,38272,38273,38274,38275,38276,38277,38278,38279,38280,38281,38282,38283,38284,38285,38286,38287,38288,38289,38290,38291,38292,38293,38294,38295,38296,38297,38298,38299,38300,38301,38302,38303,38304,38305,38306,38307,38308,38309,38310,38311,38312,38313,38314,38315,38316,38317,38318,38319,38320,38321,38322,38323,38324,38325,38326,38327,38328,38329,38330,38331,38332,38333,38334,38335,38336,38337,38338,38339,38340,38341,38342,38343,38344,38345,38346,38347,26916,26864,26891,26881,26967,26851,26896,26993,26937,26976,26946,26973,27012,26987,27008,27032,27e3,26932,27084,27015,27016,27086,27017,26982,26979,27001,27035,27047,27067,27051,27053,27092,27057,27073,27082,27103,27029,27104,27021,27135,27183,27117,27159,27160,27237,27122,27204,27198,27296,27216,27227,27189,27278,27257,27197,27176,27224,27260,27281,27280,27305,27287,27307,29495,29522,27521,27522,27527,27524,27538,27539,27533,27546,27547,27553,27562,36715,36717,36721,36722,36723,36725,36726,36728,36727,36729,36730,36732,36734,36737,36738,36740,36743,36747,38348,38349,38350,38351,38352,38353,38354,38355,38356,38357,38358,38359,38360,38361,38362,38363,38364,38365,38366,38367,38368,38369,38370,38371,38372,38373,38374,38375,38380,38399,38407,38419,38424,38427,38430,38432,38435,38436,38437,38438,38439,38440,38441,38443,38444,38445,38447,38448,38455,38456,38457,38458,38462,38465,38467,38474,38478,38479,38481,38482,38483,38486,38487,38488,38489,38490,38492,38493,38494,38496,38499,38501,38502,38507,38509,38510,38511,38512,38513,38515,38520,38521,38522,38523,38524,38525,38526,38527,38528,38529,38530,38531,38532,38535,38537,38538,36749,36750,36751,36760,36762,36558,25099,25111,25115,25119,25122,25121,25125,25124,25132,33255,29935,29940,29951,29967,29969,29971,25908,26094,26095,26096,26122,26137,26482,26115,26133,26112,28805,26359,26141,26164,26161,26166,26165,32774,26207,26196,26177,26191,26198,26209,26199,26231,26244,26252,26279,26269,26302,26331,26332,26342,26345,36146,36147,36150,36155,36157,36160,36165,36166,36168,36169,36167,36173,36181,36185,35271,35274,35275,35276,35278,35279,35280,35281,29294,29343,29277,29286,29295,29310,29311,29316,29323,29325,29327,29330,25352,25394,25520,38540,38542,38545,38546,38547,38549,38550,38554,38555,38557,38558,38559,38560,38561,38562,38563,38564,38565,38566,38568,38569,38570,38571,38572,38573,38574,38575,38577,38578,38580,38581,38583,38584,38586,38587,38591,38594,38595,38600,38602,38603,38608,38609,38611,38612,38614,38615,38616,38617,38618,38619,38620,38621,38622,38623,38625,38626,38627,38628,38629,38630,38631,38635,38636,38637,38638,38640,38641,38642,38644,38645,38648,38650,38651,38652,38653,38655,38658,38659,38661,38666,38667,38668,38672,38673,38674,38676,38677,38679,38680,38681,38682,38683,38685,38687,38688,25663,25816,32772,27626,27635,27645,27637,27641,27653,27655,27654,27661,27669,27672,27673,27674,27681,27689,27684,27690,27698,25909,25941,25963,29261,29266,29270,29232,34402,21014,32927,32924,32915,32956,26378,32957,32945,32939,32941,32948,32951,32999,33e3,33001,33002,32987,32962,32964,32985,32973,32983,26384,32989,33003,33009,33012,33005,33037,33038,33010,33020,26389,33042,35930,33078,33054,33068,33048,33074,33096,33100,33107,33140,33113,33114,33137,33120,33129,33148,33149,33133,33127,22605,23221,33160,33154,33169,28373,33187,33194,33228,26406,33226,33211,38689,38690,38691,38692,38693,38694,38695,38696,38697,38699,38700,38702,38703,38705,38707,38708,38709,38710,38711,38714,38715,38716,38717,38719,38720,38721,38722,38723,38724,38725,38726,38727,38728,38729,38730,38731,38732,38733,38734,38735,38736,38737,38740,38741,38743,38744,38746,38748,38749,38751,38755,38756,38758,38759,38760,38762,38763,38764,38765,38766,38767,38768,38769,38770,38773,38775,38776,38777,38778,38779,38781,38782,38783,38784,38785,38786,38787,38788,38790,38791,38792,38793,38794,38796,38798,38799,38800,38803,38805,38806,38807,38809,38810,38811,38812,38813,33217,33190,27428,27447,27449,27459,27462,27481,39121,39122,39123,39125,39129,39130,27571,24384,27586,35315,26e3,40785,26003,26044,26054,26052,26051,26060,26062,26066,26070,28800,28828,28822,28829,28859,28864,28855,28843,28849,28904,28874,28944,28947,28950,28975,28977,29043,29020,29032,28997,29042,29002,29048,29050,29080,29107,29109,29096,29088,29152,29140,29159,29177,29213,29224,28780,28952,29030,29113,25150,25149,25155,25160,25161,31035,31040,31046,31049,31067,31068,31059,31066,31074,31063,31072,31087,31079,31098,31109,31114,31130,31143,31155,24529,24528,38814,38815,38817,38818,38820,38821,38822,38823,38824,38825,38826,38828,38830,38832,38833,38835,38837,38838,38839,38840,38841,38842,38843,38844,38845,38846,38847,38848,38849,38850,38851,38852,38853,38854,38855,38856,38857,38858,38859,38860,38861,38862,38863,38864,38865,38866,38867,38868,38869,38870,38871,38872,38873,38874,38875,38876,38877,38878,38879,38880,38881,38882,38883,38884,38885,38888,38894,38895,38896,38897,38898,38900,38903,38904,38905,38906,38907,38908,38909,38910,38911,38912,38913,38914,38915,38916,38917,38918,38919,38920,38921,38922,38923,38924,38925,38926,24636,24669,24666,24679,24641,24665,24675,24747,24838,24845,24925,25001,24989,25035,25041,25094,32896,32895,27795,27894,28156,30710,30712,30720,30729,30743,30744,30737,26027,30765,30748,30749,30777,30778,30779,30751,30780,30757,30764,30755,30761,30798,30829,30806,30807,30758,30800,30791,30796,30826,30875,30867,30874,30855,30876,30881,30883,30898,30905,30885,30932,30937,30921,30956,30962,30981,30964,30995,31012,31006,31028,40859,40697,40699,40700,30449,30468,30477,30457,30471,30472,30490,30498,30489,30509,30502,30517,30520,30544,30545,30535,30531,30554,30568,38927,38928,38929,38930,38931,38932,38933,38934,38935,38936,38937,38938,38939,38940,38941,38942,38943,38944,38945,38946,38947,38948,38949,38950,38951,38952,38953,38954,38955,38956,38957,38958,38959,38960,38961,38962,38963,38964,38965,38966,38967,38968,38969,38970,38971,38972,38973,38974,38975,38976,38977,38978,38979,38980,38981,38982,38983,38984,38985,38986,38987,38988,38989,38990,38991,38992,38993,38994,38995,38996,38997,38998,38999,39e3,39001,39002,39003,39004,39005,39006,39007,39008,39009,39010,39011,39012,39013,39014,39015,39016,39017,39018,39019,39020,39021,39022,30562,30565,30591,30605,30589,30592,30604,30609,30623,30624,30640,30645,30653,30010,30016,30030,30027,30024,30043,30066,30073,30083,32600,32609,32607,35400,32616,32628,32625,32633,32641,32638,30413,30437,34866,38021,38022,38023,38027,38026,38028,38029,38031,38032,38036,38039,38037,38042,38043,38044,38051,38052,38059,38058,38061,38060,38063,38064,38066,38068,38070,38071,38072,38073,38074,38076,38077,38079,38084,38088,38089,38090,38091,38092,38093,38094,38096,38097,38098,38101,38102,38103,38105,38104,38107,38110,38111,38112,38114,38116,38117,38119,38120,38122,39023,39024,39025,39026,39027,39028,39051,39054,39058,39061,39065,39075,39080,39081,39082,39083,39084,39085,39086,39087,39088,39089,39090,39091,39092,39093,39094,39095,39096,39097,39098,39099,39100,39101,39102,39103,39104,39105,39106,39107,39108,39109,39110,39111,39112,39113,39114,39115,39116,39117,39119,39120,39124,39126,39127,39131,39132,39133,39136,39137,39138,39139,39140,39141,39142,39145,39146,39147,39148,39149,39150,39151,39152,39153,39154,39155,39156,39157,39158,39159,39160,39161,39162,39163,39164,39165,39166,39167,39168,39169,39170,39171,39172,39173,39174,39175,38121,38123,38126,38127,38131,38132,38133,38135,38137,38140,38141,38143,38147,38146,38150,38151,38153,38154,38157,38158,38159,38162,38163,38164,38165,38166,38168,38171,38173,38174,38175,38178,38186,38187,38185,38188,38193,38194,38196,38198,38199,38200,38204,38206,38207,38210,38197,38212,38213,38214,38217,38220,38222,38223,38226,38227,38228,38230,38231,38232,38233,38235,38238,38239,38237,38241,38242,38244,38245,38246,38247,38248,38249,38250,38251,38252,38255,38257,38258,38259,38202,30695,30700,38601,31189,31213,31203,31211,31238,23879,31235,31234,31262,31252,39176,39177,39178,39179,39180,39182,39183,39185,39186,39187,39188,39189,39190,39191,39192,39193,39194,39195,39196,39197,39198,39199,39200,39201,39202,39203,39204,39205,39206,39207,39208,39209,39210,39211,39212,39213,39215,39216,39217,39218,39219,39220,39221,39222,39223,39224,39225,39226,39227,39228,39229,39230,39231,39232,39233,39234,39235,39236,39237,39238,39239,39240,39241,39242,39243,39244,39245,39246,39247,39248,39249,39250,39251,39254,39255,39256,39257,39258,39259,39260,39261,39262,39263,39264,39265,39266,39268,39270,39283,39288,39289,39291,39294,39298,39299,39305,31289,31287,31313,40655,39333,31344,30344,30350,30355,30361,30372,29918,29920,29996,40480,40482,40488,40489,40490,40491,40492,40498,40497,40502,40504,40503,40505,40506,40510,40513,40514,40516,40518,40519,40520,40521,40523,40524,40526,40529,40533,40535,40538,40539,40540,40542,40547,40550,40551,40552,40553,40554,40555,40556,40561,40557,40563,30098,30100,30102,30112,30109,30124,30115,30131,30132,30136,30148,30129,30128,30147,30146,30166,30157,30179,30184,30182,30180,30187,30183,30211,30193,30204,30207,30224,30208,30213,30220,30231,30218,30245,30232,30229,30233,39308,39310,39322,39323,39324,39325,39326,39327,39328,39329,39330,39331,39332,39334,39335,39337,39338,39339,39340,39341,39342,39343,39344,39345,39346,39347,39348,39349,39350,39351,39352,39353,39354,39355,39356,39357,39358,39359,39360,39361,39362,39363,39364,39365,39366,39367,39368,39369,39370,39371,39372,39373,39374,39375,39376,39377,39378,39379,39380,39381,39382,39383,39384,39385,39386,39387,39388,39389,39390,39391,39392,39393,39394,39395,39396,39397,39398,39399,39400,39401,39402,39403,39404,39405,39406,39407,39408,39409,39410,39411,39412,39413,39414,39415,39416,39417,30235,30268,30242,30240,30272,30253,30256,30271,30261,30275,30270,30259,30285,30302,30292,30300,30294,30315,30319,32714,31462,31352,31353,31360,31366,31368,31381,31398,31392,31404,31400,31405,31411,34916,34921,34930,34941,34943,34946,34978,35014,34999,35004,35017,35042,35022,35043,35045,35057,35098,35068,35048,35070,35056,35105,35097,35091,35099,35082,35124,35115,35126,35137,35174,35195,30091,32997,30386,30388,30684,32786,32788,32790,32796,32800,32802,32805,32806,32807,32809,32808,32817,32779,32821,32835,32838,32845,32850,32873,32881,35203,39032,39040,39043,39418,39419,39420,39421,39422,39423,39424,39425,39426,39427,39428,39429,39430,39431,39432,39433,39434,39435,39436,39437,39438,39439,39440,39441,39442,39443,39444,39445,39446,39447,39448,39449,39450,39451,39452,39453,39454,39455,39456,39457,39458,39459,39460,39461,39462,39463,39464,39465,39466,39467,39468,39469,39470,39471,39472,39473,39474,39475,39476,39477,39478,39479,39480,39481,39482,39483,39484,39485,39486,39487,39488,39489,39490,39491,39492,39493,39494,39495,39496,39497,39498,39499,39500,39501,39502,39503,39504,39505,39506,39507,39508,39509,39510,39511,39512,39513,39049,39052,39053,39055,39060,39066,39067,39070,39071,39073,39074,39077,39078,34381,34388,34412,34414,34431,34426,34428,34427,34472,34445,34443,34476,34461,34471,34467,34474,34451,34473,34486,34500,34485,34510,34480,34490,34481,34479,34505,34511,34484,34537,34545,34546,34541,34547,34512,34579,34526,34548,34527,34520,34513,34563,34567,34552,34568,34570,34573,34569,34595,34619,34590,34597,34606,34586,34622,34632,34612,34609,34601,34615,34623,34690,34594,34685,34686,34683,34656,34672,34636,34670,34699,34643,34659,34684,34660,34649,34661,34707,34735,34728,34770,39514,39515,39516,39517,39518,39519,39520,39521,39522,39523,39524,39525,39526,39527,39528,39529,39530,39531,39538,39555,39561,39565,39566,39572,39573,39577,39590,39593,39594,39595,39596,39597,39598,39599,39602,39603,39604,39605,39609,39611,39613,39614,39615,39619,39620,39622,39623,39624,39625,39626,39629,39630,39631,39632,39634,39636,39637,39638,39639,39641,39642,39643,39644,39645,39646,39648,39650,39651,39652,39653,39655,39656,39657,39658,39660,39662,39664,39665,39666,39667,39668,39669,39670,39671,39672,39674,39676,39677,39678,39679,39680,39681,39682,39684,39685,39686,34758,34696,34693,34733,34711,34691,34731,34789,34732,34741,34739,34763,34771,34749,34769,34752,34762,34779,34794,34784,34798,34838,34835,34814,34826,34843,34849,34873,34876,32566,32578,32580,32581,33296,31482,31485,31496,31491,31492,31509,31498,31531,31503,31559,31544,31530,31513,31534,31537,31520,31525,31524,31539,31550,31518,31576,31578,31557,31605,31564,31581,31584,31598,31611,31586,31602,31601,31632,31654,31655,31672,31660,31645,31656,31621,31658,31644,31650,31659,31668,31697,31681,31692,31709,31706,31717,31718,31722,31756,31742,31740,31759,31766,31755,39687,39689,39690,39691,39692,39693,39694,39696,39697,39698,39700,39701,39702,39703,39704,39705,39706,39707,39708,39709,39710,39712,39713,39714,39716,39717,39718,39719,39720,39721,39722,39723,39724,39725,39726,39728,39729,39731,39732,39733,39734,39735,39736,39737,39738,39741,39742,39743,39744,39750,39754,39755,39756,39758,39760,39762,39763,39765,39766,39767,39768,39769,39770,39771,39772,39773,39774,39775,39776,39777,39778,39779,39780,39781,39782,39783,39784,39785,39786,39787,39788,39789,39790,39791,39792,39793,39794,39795,39796,39797,39798,39799,39800,39801,39802,39803,31775,31786,31782,31800,31809,31808,33278,33281,33282,33284,33260,34884,33313,33314,33315,33325,33327,33320,33323,33336,33339,33331,33332,33342,33348,33353,33355,33359,33370,33375,33384,34942,34949,34952,35032,35039,35166,32669,32671,32679,32687,32688,32690,31868,25929,31889,31901,31900,31902,31906,31922,31932,31933,31937,31943,31948,31949,31944,31941,31959,31976,33390,26280,32703,32718,32725,32741,32737,32742,32745,32750,32755,31992,32119,32166,32174,32327,32411,40632,40628,36211,36228,36244,36241,36273,36199,36205,35911,35913,37194,37200,37198,37199,37220,39804,39805,39806,39807,39808,39809,39810,39811,39812,39813,39814,39815,39816,39817,39818,39819,39820,39821,39822,39823,39824,39825,39826,39827,39828,39829,39830,39831,39832,39833,39834,39835,39836,39837,39838,39839,39840,39841,39842,39843,39844,39845,39846,39847,39848,39849,39850,39851,39852,39853,39854,39855,39856,39857,39858,39859,39860,39861,39862,39863,39864,39865,39866,39867,39868,39869,39870,39871,39872,39873,39874,39875,39876,39877,39878,39879,39880,39881,39882,39883,39884,39885,39886,39887,39888,39889,39890,39891,39892,39893,39894,39895,39896,39897,39898,39899,37218,37217,37232,37225,37231,37245,37246,37234,37236,37241,37260,37253,37264,37261,37265,37282,37283,37290,37293,37294,37295,37301,37300,37306,35925,40574,36280,36331,36357,36441,36457,36277,36287,36284,36282,36292,36310,36311,36314,36318,36302,36303,36315,36294,36332,36343,36344,36323,36345,36347,36324,36361,36349,36372,36381,36383,36396,36398,36387,36399,36410,36416,36409,36405,36413,36401,36425,36417,36418,36433,36434,36426,36464,36470,36476,36463,36468,36485,36495,36500,36496,36508,36510,35960,35970,35978,35973,35992,35988,26011,35286,35294,35290,35292,39900,39901,39902,39903,39904,39905,39906,39907,39908,39909,39910,39911,39912,39913,39914,39915,39916,39917,39918,39919,39920,39921,39922,39923,39924,39925,39926,39927,39928,39929,39930,39931,39932,39933,39934,39935,39936,39937,39938,39939,39940,39941,39942,39943,39944,39945,39946,39947,39948,39949,39950,39951,39952,39953,39954,39955,39956,39957,39958,39959,39960,39961,39962,39963,39964,39965,39966,39967,39968,39969,39970,39971,39972,39973,39974,39975,39976,39977,39978,39979,39980,39981,39982,39983,39984,39985,39986,39987,39988,39989,39990,39991,39992,39993,39994,39995,35301,35307,35311,35390,35622,38739,38633,38643,38639,38662,38657,38664,38671,38670,38698,38701,38704,38718,40832,40835,40837,40838,40839,40840,40841,40842,40844,40702,40715,40717,38585,38588,38589,38606,38610,30655,38624,37518,37550,37576,37694,37738,37834,37775,37950,37995,40063,40066,40069,40070,40071,40072,31267,40075,40078,40080,40081,40082,40084,40085,40090,40091,40094,40095,40096,40097,40098,40099,40101,40102,40103,40104,40105,40107,40109,40110,40112,40113,40114,40115,40116,40117,40118,40119,40122,40123,40124,40125,40132,40133,40134,40135,40138,40139,39996,39997,39998,39999,4e4,40001,40002,40003,40004,40005,40006,40007,40008,40009,40010,40011,40012,40013,40014,40015,40016,40017,40018,40019,40020,40021,40022,40023,40024,40025,40026,40027,40028,40029,40030,40031,40032,40033,40034,40035,40036,40037,40038,40039,40040,40041,40042,40043,40044,40045,40046,40047,40048,40049,40050,40051,40052,40053,40054,40055,40056,40057,40058,40059,40061,40062,40064,40067,40068,40073,40074,40076,40079,40083,40086,40087,40088,40089,40093,40106,40108,40111,40121,40126,40127,40128,40129,40130,40136,40137,40145,40146,40154,40155,40160,40161,40140,40141,40142,40143,40144,40147,40148,40149,40151,40152,40153,40156,40157,40159,40162,38780,38789,38801,38802,38804,38831,38827,38819,38834,38836,39601,39600,39607,40536,39606,39610,39612,39617,39616,39621,39618,39627,39628,39633,39749,39747,39751,39753,39752,39757,39761,39144,39181,39214,39253,39252,39647,39649,39654,39663,39659,39675,39661,39673,39688,39695,39699,39711,39715,40637,40638,32315,40578,40583,40584,40587,40594,37846,40605,40607,40667,40668,40669,40672,40671,40674,40681,40679,40677,40682,40687,40738,40748,40751,40761,40759,40765,40766,40772,40163,40164,40165,40166,40167,40168,40169,40170,40171,40172,40173,40174,40175,40176,40177,40178,40179,40180,40181,40182,40183,40184,40185,40186,40187,40188,40189,40190,40191,40192,40193,40194,40195,40196,40197,40198,40199,40200,40201,40202,40203,40204,40205,40206,40207,40208,40209,40210,40211,40212,40213,40214,40215,40216,40217,40218,40219,40220,40221,40222,40223,40224,40225,40226,40227,40228,40229,40230,40231,40232,40233,40234,40235,40236,40237,40238,40239,40240,40241,40242,40243,40244,40245,40246,40247,40248,40249,40250,40251,40252,40253,40254,40255,40256,40257,40258,57908,57909,57910,57911,57912,57913,57914,57915,57916,57917,57918,57919,57920,57921,57922,57923,57924,57925,57926,57927,57928,57929,57930,57931,57932,57933,57934,57935,57936,57937,57938,57939,57940,57941,57942,57943,57944,57945,57946,57947,57948,57949,57950,57951,57952,57953,57954,57955,57956,57957,57958,57959,57960,57961,57962,57963,57964,57965,57966,57967,57968,57969,57970,57971,57972,57973,57974,57975,57976,57977,57978,57979,57980,57981,57982,57983,57984,57985,57986,57987,57988,57989,57990,57991,57992,57993,57994,57995,57996,57997,57998,57999,58e3,58001,40259,40260,40261,40262,40263,40264,40265,40266,40267,40268,40269,40270,40271,40272,40273,40274,40275,40276,40277,40278,40279,40280,40281,40282,40283,40284,40285,40286,40287,40288,40289,40290,40291,40292,40293,40294,40295,40296,40297,40298,40299,40300,40301,40302,40303,40304,40305,40306,40307,40308,40309,40310,40311,40312,40313,40314,40315,40316,40317,40318,40319,40320,40321,40322,40323,40324,40325,40326,40327,40328,40329,40330,40331,40332,40333,40334,40335,40336,40337,40338,40339,40340,40341,40342,40343,40344,40345,40346,40347,40348,40349,40350,40351,40352,40353,40354,58002,58003,58004,58005,58006,58007,58008,58009,58010,58011,58012,58013,58014,58015,58016,58017,58018,58019,58020,58021,58022,58023,58024,58025,58026,58027,58028,58029,58030,58031,58032,58033,58034,58035,58036,58037,58038,58039,58040,58041,58042,58043,58044,58045,58046,58047,58048,58049,58050,58051,58052,58053,58054,58055,58056,58057,58058,58059,58060,58061,58062,58063,58064,58065,58066,58067,58068,58069,58070,58071,58072,58073,58074,58075,58076,58077,58078,58079,58080,58081,58082,58083,58084,58085,58086,58087,58088,58089,58090,58091,58092,58093,58094,58095,40355,40356,40357,40358,40359,40360,40361,40362,40363,40364,40365,40366,40367,40368,40369,40370,40371,40372,40373,40374,40375,40376,40377,40378,40379,40380,40381,40382,40383,40384,40385,40386,40387,40388,40389,40390,40391,40392,40393,40394,40395,40396,40397,40398,40399,40400,40401,40402,40403,40404,40405,40406,40407,40408,40409,40410,40411,40412,40413,40414,40415,40416,40417,40418,40419,40420,40421,40422,40423,40424,40425,40426,40427,40428,40429,40430,40431,40432,40433,40434,40435,40436,40437,40438,40439,40440,40441,40442,40443,40444,40445,40446,40447,40448,40449,40450,58096,58097,58098,58099,58100,58101,58102,58103,58104,58105,58106,58107,58108,58109,58110,58111,58112,58113,58114,58115,58116,58117,58118,58119,58120,58121,58122,58123,58124,58125,58126,58127,58128,58129,58130,58131,58132,58133,58134,58135,58136,58137,58138,58139,58140,58141,58142,58143,58144,58145,58146,58147,58148,58149,58150,58151,58152,58153,58154,58155,58156,58157,58158,58159,58160,58161,58162,58163,58164,58165,58166,58167,58168,58169,58170,58171,58172,58173,58174,58175,58176,58177,58178,58179,58180,58181,58182,58183,58184,58185,58186,58187,58188,58189,40451,40452,40453,40454,40455,40456,40457,40458,40459,40460,40461,40462,40463,40464,40465,40466,40467,40468,40469,40470,40471,40472,40473,40474,40475,40476,40477,40478,40484,40487,40494,40496,40500,40507,40508,40512,40525,40528,40530,40531,40532,40534,40537,40541,40543,40544,40545,40546,40549,40558,40559,40562,40564,40565,40566,40567,40568,40569,40570,40571,40572,40573,40576,40577,40579,40580,40581,40582,40585,40586,40588,40589,40590,40591,40592,40593,40596,40597,40598,40599,40600,40601,40602,40603,40604,40606,40608,40609,40610,40611,40612,40613,40615,40616,40617,40618,58190,58191,58192,58193,58194,58195,58196,58197,58198,58199,58200,58201,58202,58203,58204,58205,58206,58207,58208,58209,58210,58211,58212,58213,58214,58215,58216,58217,58218,58219,58220,58221,58222,58223,58224,58225,58226,58227,58228,58229,58230,58231,58232,58233,58234,58235,58236,58237,58238,58239,58240,58241,58242,58243,58244,58245,58246,58247,58248,58249,58250,58251,58252,58253,58254,58255,58256,58257,58258,58259,58260,58261,58262,58263,58264,58265,58266,58267,58268,58269,58270,58271,58272,58273,58274,58275,58276,58277,58278,58279,58280,58281,58282,58283,40619,40620,40621,40622,40623,40624,40625,40626,40627,40629,40630,40631,40633,40634,40636,40639,40640,40641,40642,40643,40645,40646,40647,40648,40650,40651,40652,40656,40658,40659,40661,40662,40663,40665,40666,40670,40673,40675,40676,40678,40680,40683,40684,40685,40686,40688,40689,40690,40691,40692,40693,40694,40695,40696,40698,40701,40703,40704,40705,40706,40707,40708,40709,40710,40711,40712,40713,40714,40716,40719,40721,40722,40724,40725,40726,40728,40730,40731,40732,40733,40734,40735,40737,40739,40740,40741,40742,40743,40744,40745,40746,40747,40749,40750,40752,40753,58284,58285,58286,58287,58288,58289,58290,58291,58292,58293,58294,58295,58296,58297,58298,58299,58300,58301,58302,58303,58304,58305,58306,58307,58308,58309,58310,58311,58312,58313,58314,58315,58316,58317,58318,58319,58320,58321,58322,58323,58324,58325,58326,58327,58328,58329,58330,58331,58332,58333,58334,58335,58336,58337,58338,58339,58340,58341,58342,58343,58344,58345,58346,58347,58348,58349,58350,58351,58352,58353,58354,58355,58356,58357,58358,58359,58360,58361,58362,58363,58364,58365,58366,58367,58368,58369,58370,58371,58372,58373,58374,58375,58376,58377,40754,40755,40756,40757,40758,40760,40762,40764,40767,40768,40769,40770,40771,40773,40774,40775,40776,40777,40778,40779,40780,40781,40782,40783,40786,40787,40788,40789,40790,40791,40792,40793,40794,40795,40796,40797,40798,40799,40800,40801,40802,40803,40804,40805,40806,40807,40808,40809,40810,40811,40812,40813,40814,40815,40816,40817,40818,40819,40820,40821,40822,40823,40824,40825,40826,40827,40828,40829,40830,40833,40834,40845,40846,40847,40848,40849,40850,40851,40852,40853,40854,40855,40856,40860,40861,40862,40865,40866,40867,40868,40869,63788,63865,63893,63975,63985,58378,58379,58380,58381,58382,58383,58384,58385,58386,58387,58388,58389,58390,58391,58392,58393,58394,58395,58396,58397,58398,58399,58400,58401,58402,58403,58404,58405,58406,58407,58408,58409,58410,58411,58412,58413,58414,58415,58416,58417,58418,58419,58420,58421,58422,58423,58424,58425,58426,58427,58428,58429,58430,58431,58432,58433,58434,58435,58436,58437,58438,58439,58440,58441,58442,58443,58444,58445,58446,58447,58448,58449,58450,58451,58452,58453,58454,58455,58456,58457,58458,58459,58460,58461,58462,58463,58464,58465,58466,58467,58468,58469,58470,58471,64012,64013,64014,64015,64017,64019,64020,64024,64031,64032,64033,64035,64036,64039,64040,64041,11905,59414,59415,59416,11908,13427,13383,11912,11915,59422,13726,13850,13838,11916,11927,14702,14616,59430,14799,14815,14963,14800,59435,59436,15182,15470,15584,11943,59441,59442,11946,16470,16735,11950,17207,11955,11958,11959,59451,17329,17324,11963,17373,17622,18017,17996,59459,18211,18217,18300,18317,11978,18759,18810,18813,18818,18819,18821,18822,18847,18843,18871,18870,59476,59477,19619,19615,19616,19617,19575,19618,19731,19732,19733,19734,19735,19736,19737,19886,59492,58472,58473,58474,58475,58476,58477,58478,58479,58480,58481,58482,58483,58484,58485,58486,58487,58488,58489,58490,58491,58492,58493,58494,58495,58496,58497,58498,58499,58500,58501,58502,58503,58504,58505,58506,58507,58508,58509,58510,58511,58512,58513,58514,58515,58516,58517,58518,58519,58520,58521,58522,58523,58524,58525,58526,58527,58528,58529,58530,58531,58532,58533,58534,58535,58536,58537,58538,58539,58540,58541,58542,58543,58544,58545,58546,58547,58548,58549,58550,58551,58552,58553,58554,58555,58556,58557,58558,58559,58560,58561,58562,58563,58564,58565],"gb18030-ranges":[[0,128],[36,165],[38,169],[45,178],[50,184],[81,216],[89,226],[95,235],[96,238],[100,244],[103,248],[104,251],[105,253],[109,258],[126,276],[133,284],[148,300],[172,325],[175,329],[179,334],[208,364],[306,463],[307,465],[308,467],[309,469],[310,471],[311,473],[312,475],[313,477],[341,506],[428,594],[443,610],[544,712],[545,716],[558,730],[741,930],[742,938],[749,962],[750,970],[805,1026],[819,1104],[820,1106],[7922,8209],[7924,8215],[7925,8218],[7927,8222],[7934,8231],[7943,8241],[7944,8244],[7945,8246],[7950,8252],[8062,8365],[8148,8452],[8149,8454],[8152,8458],[8164,8471],[8174,8482],[8236,8556],[8240,8570],[8262,8596],[8264,8602],[8374,8713],[8380,8720],[8381,8722],[8384,8726],[8388,8731],[8390,8737],[8392,8740],[8393,8742],[8394,8748],[8396,8751],[8401,8760],[8406,8766],[8416,8777],[8419,8781],[8424,8787],[8437,8802],[8439,8808],[8445,8816],[8482,8854],[8485,8858],[8496,8870],[8521,8896],[8603,8979],[8936,9322],[8946,9372],[9046,9548],[9050,9588],[9063,9616],[9066,9622],[9076,9634],[9092,9652],[9100,9662],[9108,9672],[9111,9676],[9113,9680],[9131,9702],[9162,9735],[9164,9738],[9218,9793],[9219,9795],[11329,11906],[11331,11909],[11334,11913],[11336,11917],[11346,11928],[11361,11944],[11363,11947],[11366,11951],[11370,11956],[11372,11960],[11375,11964],[11389,11979],[11682,12284],[11686,12292],[11687,12312],[11692,12319],[11694,12330],[11714,12351],[11716,12436],[11723,12447],[11725,12535],[11730,12543],[11736,12586],[11982,12842],[11989,12850],[12102,12964],[12336,13200],[12348,13215],[12350,13218],[12384,13253],[12393,13263],[12395,13267],[12397,13270],[12510,13384],[12553,13428],[12851,13727],[12962,13839],[12973,13851],[13738,14617],[13823,14703],[13919,14801],[13933,14816],[14080,14964],[14298,15183],[14585,15471],[14698,15585],[15583,16471],[15847,16736],[16318,17208],[16434,17325],[16438,17330],[16481,17374],[16729,17623],[17102,17997],[17122,18018],[17315,18212],[17320,18218],[17402,18301],[17418,18318],[17859,18760],[17909,18811],[17911,18814],[17915,18820],[17916,18823],[17936,18844],[17939,18848],[17961,18872],[18664,19576],[18703,19620],[18814,19738],[18962,19887],[19043,40870],[33469,59244],[33470,59336],[33471,59367],[33484,59413],[33485,59417],[33490,59423],[33497,59431],[33501,59437],[33505,59443],[33513,59452],[33520,59460],[33536,59478],[33550,59493],[37845,63789],[37921,63866],[37948,63894],[38029,63976],[38038,63986],[38064,64016],[38065,64018],[38066,64021],[38069,64025],[38075,64034],[38076,64037],[38078,64042],[39108,65074],[39109,65093],[39113,65107],[39114,65112],[39115,65127],[39116,65132],[39265,65375],[39394,65510],[189e3,65536]],jis0208:[12288,12289,12290,65292,65294,12539,65306,65307,65311,65281,12443,12444,180,65344,168,65342,65507,65343,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,8213,8208,65295,65340,65374,8741,65372,8230,8229,8216,8217,8220,8221,65288,65289,12308,12309,65339,65341,65371,65373,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,65291,65293,177,215,247,65309,8800,65308,65310,8806,8807,8734,8756,9794,9792,176,8242,8243,8451,65509,65284,65504,65505,65285,65283,65286,65290,65312,167,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8251,12306,8594,8592,8593,8595,12307,null,null,null,null,null,null,null,null,null,null,null,8712,8715,8838,8839,8834,8835,8746,8745,null,null,null,null,null,null,null,null,8743,8744,65506,8658,8660,8704,8707,null,null,null,null,null,null,null,null,null,null,null,8736,8869,8978,8706,8711,8801,8786,8810,8811,8730,8765,8733,8757,8747,8748,null,null,null,null,null,null,null,8491,8240,9839,9837,9834,8224,8225,182,null,null,null,null,9711,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,null,null,null,null,null,null,null,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,null,null,null,null,null,null,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,null,null,null,null,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,null,13129,13076,13090,13133,13080,13095,13059,13110,13137,13143,13069,13094,13091,13099,13130,13115,13212,13213,13214,13198,13199,13252,13217,null,null,null,null,null,null,null,null,13179,12317,12319,8470,13261,8481,12964,12965,12966,12967,12968,12849,12850,12857,13182,13181,13180,8786,8801,8747,8750,8721,8730,8869,8736,8735,8895,8757,8745,8746,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20124,21782,23043,38463,21696,24859,25384,23030,36898,33909,33564,31312,24746,25569,28197,26093,33894,33446,39925,26771,22311,26017,25201,23451,22992,34427,39156,32098,32190,39822,25110,31903,34999,23433,24245,25353,26263,26696,38343,38797,26447,20197,20234,20301,20381,20553,22258,22839,22996,23041,23561,24799,24847,24944,26131,26885,28858,30031,30064,31227,32173,32239,32963,33806,34915,35586,36949,36986,21307,20117,20133,22495,32946,37057,30959,19968,22769,28322,36920,31282,33576,33419,39983,20801,21360,21693,21729,22240,23035,24341,39154,28139,32996,34093,38498,38512,38560,38907,21515,21491,23431,28879,32701,36802,38632,21359,40284,31418,19985,30867,33276,28198,22040,21764,27421,34074,39995,23013,21417,28006,29916,38287,22082,20113,36939,38642,33615,39180,21473,21942,23344,24433,26144,26355,26628,27704,27891,27945,29787,30408,31310,38964,33521,34907,35424,37613,28082,30123,30410,39365,24742,35585,36234,38322,27022,21421,20870,22290,22576,22852,23476,24310,24616,25513,25588,27839,28436,28814,28948,29017,29141,29503,32257,33398,33489,34199,36960,37467,40219,22633,26044,27738,29989,20985,22830,22885,24448,24540,25276,26106,27178,27431,27572,29579,32705,35158,40236,40206,40644,23713,27798,33659,20740,23627,25014,33222,26742,29281,20057,20474,21368,24681,28201,31311,38899,19979,21270,20206,20309,20285,20385,20339,21152,21487,22025,22799,23233,23478,23521,31185,26247,26524,26550,27468,27827,28779,29634,31117,31166,31292,31623,33457,33499,33540,33655,33775,33747,34662,35506,22057,36008,36838,36942,38686,34442,20420,23784,25105,29273,30011,33253,33469,34558,36032,38597,39187,39381,20171,20250,35299,22238,22602,22730,24315,24555,24618,24724,24674,25040,25106,25296,25913,39745,26214,26800,28023,28784,30028,30342,32117,33445,34809,38283,38542,35997,20977,21182,22806,21683,23475,23830,24936,27010,28079,30861,33995,34903,35442,37799,39608,28012,39336,34521,22435,26623,34510,37390,21123,22151,21508,24275,25313,25785,26684,26680,27579,29554,30906,31339,35226,35282,36203,36611,37101,38307,38548,38761,23398,23731,27005,38989,38990,25499,31520,27179,27263,26806,39949,28511,21106,21917,24688,25324,27963,28167,28369,33883,35088,36676,19988,39993,21494,26907,27194,38788,26666,20828,31427,33970,37340,37772,22107,40232,26658,33541,33841,31909,21e3,33477,29926,20094,20355,20896,23506,21002,21208,21223,24059,21914,22570,23014,23436,23448,23515,24178,24185,24739,24863,24931,25022,25563,25954,26577,26707,26874,27454,27475,27735,28450,28567,28485,29872,29976,30435,30475,31487,31649,31777,32233,32566,32752,32925,33382,33694,35251,35532,36011,36996,37969,38291,38289,38306,38501,38867,39208,33304,20024,21547,23736,24012,29609,30284,30524,23721,32747,36107,38593,38929,38996,39e3,20225,20238,21361,21916,22120,22522,22855,23305,23492,23696,24076,24190,24524,25582,26426,26071,26082,26399,26827,26820,27231,24112,27589,27671,27773,30079,31048,23395,31232,32e3,24509,35215,35352,36020,36215,36556,36637,39138,39438,39740,20096,20605,20736,22931,23452,25135,25216,25836,27450,29344,30097,31047,32681,34811,35516,35696,25516,33738,38816,21513,21507,21931,26708,27224,35440,30759,26485,40653,21364,23458,33050,34384,36870,19992,20037,20167,20241,21450,21560,23470,24339,24613,25937,26429,27714,27762,27875,28792,29699,31350,31406,31496,32026,31998,32102,26087,29275,21435,23621,24040,25298,25312,25369,28192,34394,35377,36317,37624,28417,31142,39770,20136,20139,20140,20379,20384,20689,20807,31478,20849,20982,21332,21281,21375,21483,21932,22659,23777,24375,24394,24623,24656,24685,25375,25945,27211,27841,29378,29421,30703,33016,33029,33288,34126,37111,37857,38911,39255,39514,20208,20957,23597,26241,26989,23616,26354,26997,29577,26704,31873,20677,21220,22343,24062,37670,26020,27427,27453,29748,31105,31165,31563,32202,33465,33740,34943,35167,35641,36817,37329,21535,37504,20061,20534,21477,21306,29399,29590,30697,33510,36527,39366,39368,39378,20855,24858,34398,21936,31354,20598,23507,36935,38533,20018,27355,37351,23633,23624,25496,31391,27795,38772,36705,31402,29066,38536,31874,26647,32368,26705,37740,21234,21531,34219,35347,32676,36557,37089,21350,34952,31041,20418,20670,21009,20804,21843,22317,29674,22411,22865,24418,24452,24693,24950,24935,25001,25522,25658,25964,26223,26690,28179,30054,31293,31995,32076,32153,32331,32619,33550,33610,34509,35336,35427,35686,36605,38938,40335,33464,36814,39912,21127,25119,25731,28608,38553,26689,20625,27424,27770,28500,31348,32080,34880,35363,26376,20214,20537,20518,20581,20860,21048,21091,21927,22287,22533,23244,24314,25010,25080,25331,25458,26908,27177,29309,29356,29486,30740,30831,32121,30476,32937,35211,35609,36066,36562,36963,37749,38522,38997,39443,40568,20803,21407,21427,24187,24358,28187,28304,29572,29694,32067,33335,35328,35578,38480,20046,20491,21476,21628,22266,22993,23396,24049,24235,24359,25144,25925,26543,28246,29392,31946,34996,32929,32993,33776,34382,35463,36328,37431,38599,39015,40723,20116,20114,20237,21320,21577,21566,23087,24460,24481,24735,26791,27278,29786,30849,35486,35492,35703,37264,20062,39881,20132,20348,20399,20505,20502,20809,20844,21151,21177,21246,21402,21475,21521,21518,21897,22353,22434,22909,23380,23389,23439,24037,24039,24055,24184,24195,24218,24247,24344,24658,24908,25239,25304,25511,25915,26114,26179,26356,26477,26657,26775,27083,27743,27946,28009,28207,28317,30002,30343,30828,31295,31968,32005,32024,32094,32177,32789,32771,32943,32945,33108,33167,33322,33618,34892,34913,35611,36002,36092,37066,37237,37489,30783,37628,38308,38477,38917,39321,39640,40251,21083,21163,21495,21512,22741,25335,28640,35946,36703,40633,20811,21051,21578,22269,31296,37239,40288,40658,29508,28425,33136,29969,24573,24794,39592,29403,36796,27492,38915,20170,22256,22372,22718,23130,24680,25031,26127,26118,26681,26801,28151,30165,32058,33390,39746,20123,20304,21449,21766,23919,24038,24046,26619,27801,29811,30722,35408,37782,35039,22352,24231,25387,20661,20652,20877,26368,21705,22622,22971,23472,24425,25165,25505,26685,27507,28168,28797,37319,29312,30741,30758,31085,25998,32048,33756,35009,36617,38555,21092,22312,26448,32618,36001,20916,22338,38442,22586,27018,32948,21682,23822,22524,30869,40442,20316,21066,21643,25662,26152,26388,26613,31364,31574,32034,37679,26716,39853,31545,21273,20874,21047,23519,25334,25774,25830,26413,27578,34217,38609,30352,39894,25420,37638,39851,30399,26194,19977,20632,21442,23665,24808,25746,25955,26719,29158,29642,29987,31639,32386,34453,35715,36059,37240,39184,26028,26283,27531,20181,20180,20282,20351,21050,21496,21490,21987,22235,22763,22987,22985,23039,23376,23629,24066,24107,24535,24605,25351,25903,23388,26031,26045,26088,26525,27490,27515,27663,29509,31049,31169,31992,32025,32043,32930,33026,33267,35222,35422,35433,35430,35468,35566,36039,36060,38604,39164,27503,20107,20284,20365,20816,23383,23546,24904,25345,26178,27425,28363,27835,29246,29885,30164,30913,31034,32780,32819,33258,33940,36766,27728,40575,24335,35672,40235,31482,36600,23437,38635,19971,21489,22519,22833,23241,23460,24713,28287,28422,30142,36074,23455,34048,31712,20594,26612,33437,23649,34122,32286,33294,20889,23556,25448,36198,26012,29038,31038,32023,32773,35613,36554,36974,34503,37034,20511,21242,23610,26451,28796,29237,37196,37320,37675,33509,23490,24369,24825,20027,21462,23432,25163,26417,27530,29417,29664,31278,33131,36259,37202,39318,20754,21463,21610,23551,25480,27193,32172,38656,22234,21454,21608,23447,23601,24030,20462,24833,25342,27954,31168,31179,32066,32333,32722,33261,33311,33936,34886,35186,35728,36468,36655,36913,37195,37228,38598,37276,20160,20303,20805,21313,24467,25102,26580,27713,28171,29539,32294,37325,37507,21460,22809,23487,28113,31069,32302,31899,22654,29087,20986,34899,36848,20426,23803,26149,30636,31459,33308,39423,20934,24490,26092,26991,27529,28147,28310,28516,30462,32020,24033,36981,37255,38918,20966,21021,25152,26257,26329,28186,24246,32210,32626,26360,34223,34295,35576,21161,21465,22899,24207,24464,24661,37604,38500,20663,20767,21213,21280,21319,21484,21736,21830,21809,22039,22888,22974,23100,23477,23558,23567,23569,23578,24196,24202,24288,24432,25215,25220,25307,25484,25463,26119,26124,26157,26230,26494,26786,27167,27189,27836,28040,28169,28248,28988,28966,29031,30151,30465,30813,30977,31077,31216,31456,31505,31911,32057,32918,33750,33931,34121,34909,35059,35359,35388,35412,35443,35937,36062,37284,37478,37758,37912,38556,38808,19978,19976,19998,20055,20887,21104,22478,22580,22732,23330,24120,24773,25854,26465,26454,27972,29366,30067,31331,33976,35698,37304,37664,22065,22516,39166,25325,26893,27542,29165,32340,32887,33394,35302,39135,34645,36785,23611,20280,20449,20405,21767,23072,23517,23529,24515,24910,25391,26032,26187,26862,27035,28024,28145,30003,30137,30495,31070,31206,32051,33251,33455,34218,35242,35386,36523,36763,36914,37341,38663,20154,20161,20995,22645,22764,23563,29978,23613,33102,35338,36805,38499,38765,31525,35535,38920,37218,22259,21416,36887,21561,22402,24101,25512,27700,28810,30561,31883,32736,34928,36930,37204,37648,37656,38543,29790,39620,23815,23913,25968,26530,36264,38619,25454,26441,26905,33733,38935,38592,35070,28548,25722,23544,19990,28716,30045,26159,20932,21046,21218,22995,24449,24615,25104,25919,25972,26143,26228,26866,26646,27491,28165,29298,29983,30427,31934,32854,22768,35069,35199,35488,35475,35531,36893,37266,38738,38745,25993,31246,33030,38587,24109,24796,25114,26021,26132,26512,30707,31309,31821,32318,33034,36012,36196,36321,36447,30889,20999,25305,25509,25666,25240,35373,31363,31680,35500,38634,32118,33292,34633,20185,20808,21315,21344,23459,23554,23574,24029,25126,25159,25776,26643,26676,27849,27973,27927,26579,28508,29006,29053,26059,31359,31661,32218,32330,32680,33146,33307,33337,34214,35438,36046,36341,36984,36983,37549,37521,38275,39854,21069,21892,28472,28982,20840,31109,32341,33203,31950,22092,22609,23720,25514,26366,26365,26970,29401,30095,30094,30990,31062,31199,31895,32032,32068,34311,35380,38459,36961,40736,20711,21109,21452,21474,20489,21930,22766,22863,29245,23435,23652,21277,24803,24819,25436,25475,25407,25531,25805,26089,26361,24035,27085,27133,28437,29157,20105,30185,30456,31379,31967,32207,32156,32865,33609,33624,33900,33980,34299,35013,36208,36865,36973,37783,38684,39442,20687,22679,24974,33235,34101,36104,36896,20419,20596,21063,21363,24687,25417,26463,28204,36275,36895,20439,23646,36042,26063,32154,21330,34966,20854,25539,23384,23403,23562,25613,26449,36956,20182,22810,22826,27760,35409,21822,22549,22949,24816,25171,26561,33333,26965,38464,39364,39464,20307,22534,23550,32784,23729,24111,24453,24608,24907,25140,26367,27888,28382,32974,33151,33492,34955,36024,36864,36910,38538,40667,39899,20195,21488,22823,31532,37261,38988,40441,28381,28711,21331,21828,23429,25176,25246,25299,27810,28655,29730,35351,37944,28609,35582,33592,20967,34552,21482,21481,20294,36948,36784,22890,33073,24061,31466,36799,26842,35895,29432,40008,27197,35504,20025,21336,22022,22374,25285,25506,26086,27470,28129,28251,28845,30701,31471,31658,32187,32829,32966,34507,35477,37723,22243,22727,24382,26029,26262,27264,27573,30007,35527,20516,30693,22320,24347,24677,26234,27744,30196,31258,32622,33268,34584,36933,39347,31689,30044,31481,31569,33988,36880,31209,31378,33590,23265,30528,20013,20210,23449,24544,25277,26172,26609,27880,34411,34935,35387,37198,37619,39376,27159,28710,29482,33511,33879,36015,19969,20806,20939,21899,23541,24086,24115,24193,24340,24373,24427,24500,25074,25361,26274,26397,28526,29266,30010,30522,32884,33081,33144,34678,35519,35548,36229,36339,37530,38263,38914,40165,21189,25431,30452,26389,27784,29645,36035,37806,38515,27941,22684,26894,27084,36861,37786,30171,36890,22618,26626,25524,27131,20291,28460,26584,36795,34086,32180,37716,26943,28528,22378,22775,23340,32044,29226,21514,37347,40372,20141,20302,20572,20597,21059,35998,21576,22564,23450,24093,24213,24237,24311,24351,24716,25269,25402,25552,26799,27712,30855,31118,31243,32224,33351,35330,35558,36420,36883,37048,37165,37336,40718,27877,25688,25826,25973,28404,30340,31515,36969,37841,28346,21746,24505,25764,36685,36845,37444,20856,22635,22825,23637,24215,28155,32399,29980,36028,36578,39003,28857,20253,27583,28593,3e4,38651,20814,21520,22581,22615,22956,23648,24466,26007,26460,28193,30331,33759,36077,36884,37117,37709,30757,30778,21162,24230,22303,22900,24594,20498,20826,20908,20941,20992,21776,22612,22616,22871,23445,23798,23947,24764,25237,25645,26481,26691,26812,26847,30423,28120,28271,28059,28783,29128,24403,30168,31095,31561,31572,31570,31958,32113,21040,33891,34153,34276,35342,35588,35910,36367,36867,36879,37913,38518,38957,39472,38360,20685,21205,21516,22530,23566,24999,25758,27934,30643,31461,33012,33796,36947,37509,23776,40199,21311,24471,24499,28060,29305,30563,31167,31716,27602,29420,35501,26627,27233,20984,31361,26932,23626,40182,33515,23493,37193,28702,22136,23663,24775,25958,27788,35930,36929,38931,21585,26311,37389,22856,37027,20869,20045,20970,34201,35598,28760,25466,37707,26978,39348,32260,30071,21335,26976,36575,38627,27741,20108,23612,24336,36841,21250,36049,32905,34425,24319,26085,20083,20837,22914,23615,38894,20219,22922,24525,35469,28641,31152,31074,23527,33905,29483,29105,24180,24565,25467,25754,29123,31896,20035,24316,20043,22492,22178,24745,28611,32013,33021,33075,33215,36786,35223,34468,24052,25226,25773,35207,26487,27874,27966,29750,30772,23110,32629,33453,39340,20467,24259,25309,25490,25943,26479,30403,29260,32972,32954,36649,37197,20493,22521,23186,26757,26995,29028,29437,36023,22770,36064,38506,36889,34687,31204,30695,33833,20271,21093,21338,25293,26575,27850,30333,31636,31893,33334,34180,36843,26333,28448,29190,32283,33707,39361,40614,20989,31665,30834,31672,32903,31560,27368,24161,32908,30033,30048,20843,37474,28300,30330,37271,39658,20240,32624,25244,31567,38309,40169,22138,22617,34532,38588,20276,21028,21322,21453,21467,24070,25644,26001,26495,27710,27726,29256,29359,29677,30036,32321,33324,34281,36009,31684,37318,29033,38930,39151,25405,26217,30058,30436,30928,34115,34542,21290,21329,21542,22915,24199,24444,24754,25161,25209,25259,26e3,27604,27852,30130,30382,30865,31192,32203,32631,32933,34987,35513,36027,36991,38750,39131,27147,31800,20633,23614,24494,26503,27608,29749,30473,32654,40763,26570,31255,21305,30091,39661,24422,33181,33777,32920,24380,24517,30050,31558,36924,26727,23019,23195,32016,30334,35628,20469,24426,27161,27703,28418,29922,31080,34920,35413,35961,24287,25551,30149,31186,33495,37672,37618,33948,34541,39981,21697,24428,25996,27996,28693,36007,36051,38971,25935,29942,19981,20184,22496,22827,23142,23500,20904,24067,24220,24598,25206,25975,26023,26222,28014,29238,31526,33104,33178,33433,35676,36e3,36070,36212,38428,38468,20398,25771,27494,33310,33889,34154,37096,23553,26963,39080,33914,34135,20239,21103,24489,24133,26381,31119,33145,35079,35206,28149,24343,25173,27832,20175,29289,39826,20998,21563,22132,22707,24996,25198,28954,22894,31881,31966,32027,38640,25991,32862,19993,20341,20853,22592,24163,24179,24330,26564,20006,34109,38281,38491,31859,38913,20731,22721,30294,30887,21029,30629,34065,31622,20559,22793,29255,31687,32232,36794,36820,36941,20415,21193,23081,24321,38829,20445,33303,37610,22275,25429,27497,29995,35036,36628,31298,21215,22675,24917,25098,26286,27597,31807,33769,20515,20472,21253,21574,22577,22857,23453,23792,23791,23849,24214,25265,25447,25918,26041,26379,27861,27873,28921,30770,32299,32990,33459,33804,34028,34562,35090,35370,35914,37030,37586,39165,40179,40300,20047,20129,20621,21078,22346,22952,24125,24536,24537,25151,26292,26395,26576,26834,20882,32033,32938,33192,35584,35980,36031,37502,38450,21536,38956,21271,20693,21340,22696,25778,26420,29287,30566,31302,37350,21187,27809,27526,22528,24140,22868,26412,32763,20961,30406,25705,30952,39764,40635,22475,22969,26151,26522,27598,21737,27097,24149,33180,26517,39850,26622,40018,26717,20134,20451,21448,25273,26411,27819,36804,20397,32365,40639,19975,24930,28288,28459,34067,21619,26410,39749,24051,31637,23724,23494,34588,28234,34001,31252,33032,22937,31885,27665,30496,21209,22818,28961,29279,30683,38695,40289,26891,23167,23064,20901,21517,21629,26126,30431,36855,37528,40180,23018,29277,28357,20813,26825,32191,32236,38754,40634,25720,27169,33538,22916,23391,27611,29467,30450,32178,32791,33945,20786,26408,40665,30446,26466,21247,39173,23588,25147,31870,36016,21839,24758,32011,38272,21249,20063,20918,22812,29242,32822,37326,24357,30690,21380,24441,32004,34220,35379,36493,38742,26611,34222,37971,24841,24840,27833,30290,35565,36664,21807,20305,20778,21191,21451,23461,24189,24736,24962,25558,26377,26586,28263,28044,29494,29495,30001,31056,35029,35480,36938,37009,37109,38596,34701,22805,20104,20313,19982,35465,36671,38928,20653,24188,22934,23481,24248,25562,25594,25793,26332,26954,27096,27915,28342,29076,29992,31407,32650,32768,33865,33993,35201,35617,36362,36965,38525,39178,24958,25233,27442,27779,28020,32716,32764,28096,32645,34746,35064,26469,33713,38972,38647,27931,32097,33853,37226,20081,21365,23888,27396,28651,34253,34349,35239,21033,21519,23653,26446,26792,29702,29827,30178,35023,35041,37324,38626,38520,24459,29575,31435,33870,25504,30053,21129,27969,28316,29705,30041,30827,31890,38534,31452,40845,20406,24942,26053,34396,20102,20142,20698,20001,20940,23534,26009,26753,28092,29471,30274,30637,31260,31975,33391,35538,36988,37327,38517,38936,21147,32209,20523,21400,26519,28107,29136,29747,33256,36650,38563,40023,40607,29792,22593,28057,32047,39006,20196,20278,20363,20919,21169,23994,24604,29618,31036,33491,37428,38583,38646,38666,40599,40802,26278,27508,21015,21155,28872,35010,24265,24651,24976,28451,29001,31806,32244,32879,34030,36899,37676,21570,39791,27347,28809,36034,36335,38706,21172,23105,24266,24324,26391,27004,27028,28010,28431,29282,29436,31725,32769,32894,34635,37070,20845,40595,31108,32907,37682,35542,20525,21644,35441,27498,36036,33031,24785,26528,40434,20121,20120,39952,35435,34241,34152,26880,28286,30871,33109,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24332,19984,19989,20010,20017,20022,20028,20031,20034,20054,20056,20098,20101,35947,20106,33298,24333,20110,20126,20127,20128,20130,20144,20147,20150,20174,20173,20164,20166,20162,20183,20190,20205,20191,20215,20233,20314,20272,20315,20317,20311,20295,20342,20360,20367,20376,20347,20329,20336,20369,20335,20358,20374,20760,20436,20447,20430,20440,20443,20433,20442,20432,20452,20453,20506,20520,20500,20522,20517,20485,20252,20470,20513,20521,20524,20478,20463,20497,20486,20547,20551,26371,20565,20560,20552,20570,20566,20588,20600,20608,20634,20613,20660,20658,20681,20682,20659,20674,20694,20702,20709,20717,20707,20718,20729,20725,20745,20737,20738,20758,20757,20756,20762,20769,20794,20791,20796,20795,20799,20800,20818,20812,20820,20834,31480,20841,20842,20846,20864,20866,22232,20876,20873,20879,20881,20883,20885,20886,20900,20902,20898,20905,20906,20907,20915,20913,20914,20912,20917,20925,20933,20937,20955,20960,34389,20969,20973,20976,20981,20990,20996,21003,21012,21006,21031,21034,21038,21043,21049,21071,21060,21067,21068,21086,21076,21098,21108,21097,21107,21119,21117,21133,21140,21138,21105,21128,21137,36776,36775,21164,21165,21180,21173,21185,21197,21207,21214,21219,21222,39149,21216,21235,21237,21240,21241,21254,21256,30008,21261,21264,21263,21269,21274,21283,21295,21297,21299,21304,21312,21318,21317,19991,21321,21325,20950,21342,21353,21358,22808,21371,21367,21378,21398,21408,21414,21413,21422,21424,21430,21443,31762,38617,21471,26364,29166,21486,21480,21485,21498,21505,21565,21568,21548,21549,21564,21550,21558,21545,21533,21582,21647,21621,21646,21599,21617,21623,21616,21650,21627,21632,21622,21636,21648,21638,21703,21666,21688,21669,21676,21700,21704,21672,21675,21698,21668,21694,21692,21720,21733,21734,21775,21780,21757,21742,21741,21754,21730,21817,21824,21859,21836,21806,21852,21829,21846,21847,21816,21811,21853,21913,21888,21679,21898,21919,21883,21886,21912,21918,21934,21884,21891,21929,21895,21928,21978,21957,21983,21956,21980,21988,21972,22036,22007,22038,22014,22013,22043,22009,22094,22096,29151,22068,22070,22066,22072,22123,22116,22063,22124,22122,22150,22144,22154,22176,22164,22159,22181,22190,22198,22196,22210,22204,22209,22211,22208,22216,22222,22225,22227,22231,22254,22265,22272,22271,22276,22281,22280,22283,22285,22291,22296,22294,21959,22300,22310,22327,22328,22350,22331,22336,22351,22377,22464,22408,22369,22399,22409,22419,22432,22451,22436,22442,22448,22467,22470,22484,22482,22483,22538,22486,22499,22539,22553,22557,22642,22561,22626,22603,22640,27584,22610,22589,22649,22661,22713,22687,22699,22714,22750,22715,22712,22702,22725,22739,22737,22743,22745,22744,22757,22748,22756,22751,22767,22778,22777,22779,22780,22781,22786,22794,22800,22811,26790,22821,22828,22829,22834,22840,22846,31442,22869,22864,22862,22874,22872,22882,22880,22887,22892,22889,22904,22913,22941,20318,20395,22947,22962,22982,23016,23004,22925,23001,23002,23077,23071,23057,23068,23049,23066,23104,23148,23113,23093,23094,23138,23146,23194,23228,23230,23243,23234,23229,23267,23255,23270,23273,23254,23290,23291,23308,23307,23318,23346,23248,23338,23350,23358,23363,23365,23360,23377,23381,23386,23387,23397,23401,23408,23411,23413,23416,25992,23418,23424,23427,23462,23480,23491,23495,23497,23508,23504,23524,23526,23522,23518,23525,23531,23536,23542,23539,23557,23559,23560,23565,23571,23584,23586,23592,23608,23609,23617,23622,23630,23635,23632,23631,23409,23660,23662,20066,23670,23673,23692,23697,23700,22939,23723,23739,23734,23740,23735,23749,23742,23751,23769,23785,23805,23802,23789,23948,23786,23819,23829,23831,23900,23839,23835,23825,23828,23842,23834,23833,23832,23884,23890,23886,23883,23916,23923,23926,23943,23940,23938,23970,23965,23980,23982,23997,23952,23991,23996,24009,24013,24019,24018,24022,24027,24043,24050,24053,24075,24090,24089,24081,24091,24118,24119,24132,24131,24128,24142,24151,24148,24159,24162,24164,24135,24181,24182,24186,40636,24191,24224,24257,24258,24264,24272,24271,24278,24291,24285,24282,24283,24290,24289,24296,24297,24300,24305,24307,24304,24308,24312,24318,24323,24329,24413,24412,24331,24337,24342,24361,24365,24376,24385,24392,24396,24398,24367,24401,24406,24407,24409,24417,24429,24435,24439,24451,24450,24447,24458,24456,24465,24455,24478,24473,24472,24480,24488,24493,24508,24534,24571,24548,24568,24561,24541,24755,24575,24609,24672,24601,24592,24617,24590,24625,24603,24597,24619,24614,24591,24634,24666,24641,24682,24695,24671,24650,24646,24653,24675,24643,24676,24642,24684,24683,24665,24705,24717,24807,24707,24730,24708,24731,24726,24727,24722,24743,24715,24801,24760,24800,24787,24756,24560,24765,24774,24757,24792,24909,24853,24838,24822,24823,24832,24820,24826,24835,24865,24827,24817,24845,24846,24903,24894,24872,24871,24906,24895,24892,24876,24884,24893,24898,24900,24947,24951,24920,24921,24922,24939,24948,24943,24933,24945,24927,24925,24915,24949,24985,24982,24967,25004,24980,24986,24970,24977,25003,25006,25036,25034,25033,25079,25032,25027,25030,25018,25035,32633,25037,25062,25059,25078,25082,25076,25087,25085,25084,25086,25088,25096,25097,25101,25100,25108,25115,25118,25121,25130,25134,25136,25138,25139,25153,25166,25182,25187,25179,25184,25192,25212,25218,25225,25214,25234,25235,25238,25300,25219,25236,25303,25297,25275,25295,25343,25286,25812,25288,25308,25292,25290,25282,25287,25243,25289,25356,25326,25329,25383,25346,25352,25327,25333,25424,25406,25421,25628,25423,25494,25486,25472,25515,25462,25507,25487,25481,25503,25525,25451,25449,25534,25577,25536,25542,25571,25545,25554,25590,25540,25622,25652,25606,25619,25638,25654,25885,25623,25640,25615,25703,25711,25718,25678,25898,25749,25747,25765,25769,25736,25788,25818,25810,25797,25799,25787,25816,25794,25841,25831,33289,25824,25825,25260,25827,25839,25900,25846,25844,25842,25850,25856,25853,25880,25884,25861,25892,25891,25899,25908,25909,25911,25910,25912,30027,25928,25942,25941,25933,25944,25950,25949,25970,25976,25986,25987,35722,26011,26015,26027,26039,26051,26054,26049,26052,26060,26066,26075,26073,26080,26081,26097,26482,26122,26115,26107,26483,26165,26166,26164,26140,26191,26180,26185,26177,26206,26205,26212,26215,26216,26207,26210,26224,26243,26248,26254,26249,26244,26264,26269,26305,26297,26313,26302,26300,26308,26296,26326,26330,26336,26175,26342,26345,26352,26357,26359,26383,26390,26398,26406,26407,38712,26414,26431,26422,26433,26424,26423,26438,26462,26464,26457,26467,26468,26505,26480,26537,26492,26474,26508,26507,26534,26529,26501,26551,26607,26548,26604,26547,26601,26552,26596,26590,26589,26594,26606,26553,26574,26566,26599,27292,26654,26694,26665,26688,26701,26674,26702,26803,26667,26713,26723,26743,26751,26783,26767,26797,26772,26781,26779,26755,27310,26809,26740,26805,26784,26810,26895,26765,26750,26881,26826,26888,26840,26914,26918,26849,26892,26829,26836,26855,26837,26934,26898,26884,26839,26851,26917,26873,26848,26863,26920,26922,26906,26915,26913,26822,27001,26999,26972,27e3,26987,26964,27006,26990,26937,26996,26941,26969,26928,26977,26974,26973,27009,26986,27058,27054,27088,27071,27073,27091,27070,27086,23528,27082,27101,27067,27075,27047,27182,27025,27040,27036,27029,27060,27102,27112,27138,27163,27135,27402,27129,27122,27111,27141,27057,27166,27117,27156,27115,27146,27154,27329,27171,27155,27204,27148,27250,27190,27256,27207,27234,27225,27238,27208,27192,27170,27280,27277,27296,27268,27298,27299,27287,34327,27323,27331,27330,27320,27315,27308,27358,27345,27359,27306,27354,27370,27387,27397,34326,27386,27410,27414,39729,27423,27448,27447,30428,27449,39150,27463,27459,27465,27472,27481,27476,27483,27487,27489,27512,27513,27519,27520,27524,27523,27533,27544,27541,27550,27556,27562,27563,27567,27570,27569,27571,27575,27580,27590,27595,27603,27615,27628,27627,27635,27631,40638,27656,27667,27668,27675,27684,27683,27742,27733,27746,27754,27778,27789,27802,27777,27803,27774,27752,27763,27794,27792,27844,27889,27859,27837,27863,27845,27869,27822,27825,27838,27834,27867,27887,27865,27882,27935,34893,27958,27947,27965,27960,27929,27957,27955,27922,27916,28003,28051,28004,27994,28025,27993,28046,28053,28644,28037,28153,28181,28170,28085,28103,28134,28088,28102,28140,28126,28108,28136,28114,28101,28154,28121,28132,28117,28138,28142,28205,28270,28206,28185,28274,28255,28222,28195,28267,28203,28278,28237,28191,28227,28218,28238,28196,28415,28189,28216,28290,28330,28312,28361,28343,28371,28349,28335,28356,28338,28372,28373,28303,28325,28354,28319,28481,28433,28748,28396,28408,28414,28479,28402,28465,28399,28466,28364,28478,28435,28407,28550,28538,28536,28545,28544,28527,28507,28659,28525,28546,28540,28504,28558,28561,28610,28518,28595,28579,28577,28580,28601,28614,28586,28639,28629,28652,28628,28632,28657,28654,28635,28681,28683,28666,28689,28673,28687,28670,28699,28698,28532,28701,28696,28703,28720,28734,28722,28753,28771,28825,28818,28847,28913,28844,28856,28851,28846,28895,28875,28893,28889,28937,28925,28956,28953,29029,29013,29064,29030,29026,29004,29014,29036,29071,29179,29060,29077,29096,29100,29143,29113,29118,29138,29129,29140,29134,29152,29164,29159,29173,29180,29177,29183,29197,29200,29211,29224,29229,29228,29232,29234,29243,29244,29247,29248,29254,29259,29272,29300,29310,29314,29313,29319,29330,29334,29346,29351,29369,29362,29379,29382,29380,29390,29394,29410,29408,29409,29433,29431,20495,29463,29450,29468,29462,29469,29492,29487,29481,29477,29502,29518,29519,40664,29527,29546,29544,29552,29560,29557,29563,29562,29640,29619,29646,29627,29632,29669,29678,29662,29858,29701,29807,29733,29688,29746,29754,29781,29759,29791,29785,29761,29788,29801,29808,29795,29802,29814,29822,29835,29854,29863,29898,29903,29908,29681,29920,29923,29927,29929,29934,29938,29936,29937,29944,29943,29956,29955,29957,29964,29966,29965,29973,29971,29982,29990,29996,30012,30020,30029,30026,30025,30043,30022,30042,30057,30052,30055,30059,30061,30072,30070,30086,30087,30068,30090,30089,30082,30100,30106,30109,30117,30115,30146,30131,30147,30133,30141,30136,30140,30129,30157,30154,30162,30169,30179,30174,30206,30207,30204,30209,30192,30202,30194,30195,30219,30221,30217,30239,30247,30240,30241,30242,30244,30260,30256,30267,30279,30280,30278,30300,30296,30305,30306,30312,30313,30314,30311,30316,30320,30322,30326,30328,30332,30336,30339,30344,30347,30350,30358,30355,30361,30362,30384,30388,30392,30393,30394,30402,30413,30422,30418,30430,30433,30437,30439,30442,34351,30459,30472,30471,30468,30505,30500,30494,30501,30502,30491,30519,30520,30535,30554,30568,30571,30555,30565,30591,30590,30585,30606,30603,30609,30624,30622,30640,30646,30649,30655,30652,30653,30651,30663,30669,30679,30682,30684,30691,30702,30716,30732,30738,31014,30752,31018,30789,30862,30836,30854,30844,30874,30860,30883,30901,30890,30895,30929,30918,30923,30932,30910,30908,30917,30922,30956,30951,30938,30973,30964,30983,30994,30993,31001,31020,31019,31040,31072,31063,31071,31066,31061,31059,31098,31103,31114,31133,31143,40779,31146,31150,31155,31161,31162,31177,31189,31207,31212,31201,31203,31240,31245,31256,31257,31264,31263,31104,31281,31291,31294,31287,31299,31319,31305,31329,31330,31337,40861,31344,31353,31357,31368,31383,31381,31384,31382,31401,31432,31408,31414,31429,31428,31423,36995,31431,31434,31437,31439,31445,31443,31449,31450,31453,31457,31458,31462,31469,31472,31490,31503,31498,31494,31539,31512,31513,31518,31541,31528,31542,31568,31610,31492,31565,31499,31564,31557,31605,31589,31604,31591,31600,31601,31596,31598,31645,31640,31647,31629,31644,31642,31627,31634,31631,31581,31641,31691,31681,31692,31695,31668,31686,31709,31721,31761,31764,31718,31717,31840,31744,31751,31763,31731,31735,31767,31757,31734,31779,31783,31786,31775,31799,31787,31805,31820,31811,31828,31823,31808,31824,31832,31839,31844,31830,31845,31852,31861,31875,31888,31908,31917,31906,31915,31905,31912,31923,31922,31921,31918,31929,31933,31936,31941,31938,31960,31954,31964,31970,39739,31983,31986,31988,31990,31994,32006,32002,32028,32021,32010,32069,32075,32046,32050,32063,32053,32070,32115,32086,32078,32114,32104,32110,32079,32099,32147,32137,32091,32143,32125,32155,32186,32174,32163,32181,32199,32189,32171,32317,32162,32175,32220,32184,32159,32176,32216,32221,32228,32222,32251,32242,32225,32261,32266,32291,32289,32274,32305,32287,32265,32267,32290,32326,32358,32315,32309,32313,32323,32311,32306,32314,32359,32349,32342,32350,32345,32346,32377,32362,32361,32380,32379,32387,32213,32381,36782,32383,32392,32393,32396,32402,32400,32403,32404,32406,32398,32411,32412,32568,32570,32581,32588,32589,32590,32592,32593,32597,32596,32600,32607,32608,32616,32617,32615,32632,32642,32646,32643,32648,32647,32652,32660,32670,32669,32666,32675,32687,32690,32697,32686,32694,32696,35697,32709,32710,32714,32725,32724,32737,32742,32745,32755,32761,39132,32774,32772,32779,32786,32792,32793,32796,32801,32808,32831,32827,32842,32838,32850,32856,32858,32863,32866,32872,32883,32882,32880,32886,32889,32893,32895,32900,32902,32901,32923,32915,32922,32941,20880,32940,32987,32997,32985,32989,32964,32986,32982,33033,33007,33009,33051,33065,33059,33071,33099,38539,33094,33086,33107,33105,33020,33137,33134,33125,33126,33140,33155,33160,33162,33152,33154,33184,33173,33188,33187,33119,33171,33193,33200,33205,33214,33208,33213,33216,33218,33210,33225,33229,33233,33241,33240,33224,33242,33247,33248,33255,33274,33275,33278,33281,33282,33285,33287,33290,33293,33296,33302,33321,33323,33336,33331,33344,33369,33368,33373,33370,33375,33380,33378,33384,33386,33387,33326,33393,33399,33400,33406,33421,33426,33451,33439,33467,33452,33505,33507,33503,33490,33524,33523,33530,33683,33539,33531,33529,33502,33542,33500,33545,33497,33589,33588,33558,33586,33585,33600,33593,33616,33605,33583,33579,33559,33560,33669,33690,33706,33695,33698,33686,33571,33678,33671,33674,33660,33717,33651,33653,33696,33673,33704,33780,33811,33771,33742,33789,33795,33752,33803,33729,33783,33799,33760,33778,33805,33826,33824,33725,33848,34054,33787,33901,33834,33852,34138,33924,33911,33899,33965,33902,33922,33897,33862,33836,33903,33913,33845,33994,33890,33977,33983,33951,34009,33997,33979,34010,34e3,33985,33990,34006,33953,34081,34047,34036,34071,34072,34092,34079,34069,34068,34044,34112,34147,34136,34120,34113,34306,34123,34133,34176,34212,34184,34193,34186,34216,34157,34196,34203,34282,34183,34204,34167,34174,34192,34249,34234,34255,34233,34256,34261,34269,34277,34268,34297,34314,34323,34315,34302,34298,34310,34338,34330,34352,34367,34381,20053,34388,34399,34407,34417,34451,34467,34473,34474,34443,34444,34486,34479,34500,34502,34480,34505,34851,34475,34516,34526,34537,34540,34527,34523,34543,34578,34566,34568,34560,34563,34555,34577,34569,34573,34553,34570,34612,34623,34615,34619,34597,34601,34586,34656,34655,34680,34636,34638,34676,34647,34664,34670,34649,34643,34659,34666,34821,34722,34719,34690,34735,34763,34749,34752,34768,38614,34731,34756,34739,34759,34758,34747,34799,34802,34784,34831,34829,34814,34806,34807,34830,34770,34833,34838,34837,34850,34849,34865,34870,34873,34855,34875,34884,34882,34898,34905,34910,34914,34923,34945,34942,34974,34933,34941,34997,34930,34946,34967,34962,34990,34969,34978,34957,34980,34992,35007,34993,35011,35012,35028,35032,35033,35037,35065,35074,35068,35060,35048,35058,35076,35084,35082,35091,35139,35102,35109,35114,35115,35137,35140,35131,35126,35128,35148,35101,35168,35166,35174,35172,35181,35178,35183,35188,35191,35198,35203,35208,35210,35219,35224,35233,35241,35238,35244,35247,35250,35258,35261,35263,35264,35290,35292,35293,35303,35316,35320,35331,35350,35344,35340,35355,35357,35365,35382,35393,35419,35410,35398,35400,35452,35437,35436,35426,35461,35458,35460,35496,35489,35473,35493,35494,35482,35491,35524,35533,35522,35546,35563,35571,35559,35556,35569,35604,35552,35554,35575,35550,35547,35596,35591,35610,35553,35606,35600,35607,35616,35635,38827,35622,35627,35646,35624,35649,35660,35663,35662,35657,35670,35675,35674,35691,35679,35692,35695,35700,35709,35712,35724,35726,35730,35731,35734,35737,35738,35898,35905,35903,35912,35916,35918,35920,35925,35938,35948,35960,35962,35970,35977,35973,35978,35981,35982,35988,35964,35992,25117,36013,36010,36029,36018,36019,36014,36022,36040,36033,36068,36067,36058,36093,36090,36091,36100,36101,36106,36103,36111,36109,36112,40782,36115,36045,36116,36118,36199,36205,36209,36211,36225,36249,36290,36286,36282,36303,36314,36310,36300,36315,36299,36330,36331,36319,36323,36348,36360,36361,36351,36381,36382,36368,36383,36418,36405,36400,36404,36426,36423,36425,36428,36432,36424,36441,36452,36448,36394,36451,36437,36470,36466,36476,36481,36487,36485,36484,36491,36490,36499,36497,36500,36505,36522,36513,36524,36528,36550,36529,36542,36549,36552,36555,36571,36579,36604,36603,36587,36606,36618,36613,36629,36626,36633,36627,36636,36639,36635,36620,36646,36659,36667,36665,36677,36674,36670,36684,36681,36678,36686,36695,36700,36706,36707,36708,36764,36767,36771,36781,36783,36791,36826,36837,36834,36842,36847,36999,36852,36869,36857,36858,36881,36885,36897,36877,36894,36886,36875,36903,36918,36917,36921,36856,36943,36944,36945,36946,36878,36937,36926,36950,36952,36958,36968,36975,36982,38568,36978,36994,36989,36993,36992,37002,37001,37007,37032,37039,37041,37045,37090,37092,25160,37083,37122,37138,37145,37170,37168,37194,37206,37208,37219,37221,37225,37235,37234,37259,37257,37250,37282,37291,37295,37290,37301,37300,37306,37312,37313,37321,37323,37328,37334,37343,37345,37339,37372,37365,37366,37406,37375,37396,37420,37397,37393,37470,37463,37445,37449,37476,37448,37525,37439,37451,37456,37532,37526,37523,37531,37466,37583,37561,37559,37609,37647,37626,37700,37678,37657,37666,37658,37667,37690,37685,37691,37724,37728,37756,37742,37718,37808,37804,37805,37780,37817,37846,37847,37864,37861,37848,37827,37853,37840,37832,37860,37914,37908,37907,37891,37895,37904,37942,37931,37941,37921,37946,37953,37970,37956,37979,37984,37986,37982,37994,37417,38e3,38005,38007,38013,37978,38012,38014,38017,38015,38274,38279,38282,38292,38294,38296,38297,38304,38312,38311,38317,38332,38331,38329,38334,38346,28662,38339,38349,38348,38357,38356,38358,38364,38369,38373,38370,38433,38440,38446,38447,38466,38476,38479,38475,38519,38492,38494,38493,38495,38502,38514,38508,38541,38552,38549,38551,38570,38567,38577,38578,38576,38580,38582,38584,38585,38606,38603,38601,38605,35149,38620,38669,38613,38649,38660,38662,38664,38675,38670,38673,38671,38678,38681,38692,38698,38704,38713,38717,38718,38724,38726,38728,38722,38729,38748,38752,38756,38758,38760,21202,38763,38769,38777,38789,38780,38785,38778,38790,38795,38799,38800,38812,38824,38822,38819,38835,38836,38851,38854,38856,38859,38876,38893,40783,38898,31455,38902,38901,38927,38924,38968,38948,38945,38967,38973,38982,38991,38987,39019,39023,39024,39025,39028,39027,39082,39087,39089,39094,39108,39107,39110,39145,39147,39171,39177,39186,39188,39192,39201,39197,39198,39204,39200,39212,39214,39229,39230,39234,39241,39237,39248,39243,39249,39250,39244,39253,39319,39320,39333,39341,39342,39356,39391,39387,39389,39384,39377,39405,39406,39409,39410,39419,39416,39425,39439,39429,39394,39449,39467,39479,39493,39490,39488,39491,39486,39509,39501,39515,39511,39519,39522,39525,39524,39529,39531,39530,39597,39600,39612,39616,39631,39633,39635,39636,39646,39647,39650,39651,39654,39663,39659,39662,39668,39665,39671,39675,39686,39704,39706,39711,39714,39715,39717,39719,39720,39721,39722,39726,39727,39730,39748,39747,39759,39757,39758,39761,39768,39796,39827,39811,39825,39830,39831,39839,39840,39848,39860,39872,39882,39865,39878,39887,39889,39890,39907,39906,39908,39892,39905,39994,39922,39921,39920,39957,39956,39945,39955,39948,39942,39944,39954,39946,39940,39982,39963,39973,39972,39969,39984,40007,39986,40006,39998,40026,40032,40039,40054,40056,40167,40172,40176,40201,40200,40171,40195,40198,40234,40230,40367,40227,40223,40260,40213,40210,40257,40255,40254,40262,40264,40285,40286,40292,40273,40272,40281,40306,40329,40327,40363,40303,40314,40346,40356,40361,40370,40388,40385,40379,40376,40378,40390,40399,40386,40409,40403,40440,40422,40429,40431,40445,40474,40475,40478,40565,40569,40573,40577,40584,40587,40588,40594,40597,40593,40605,40613,40617,40632,40618,40621,38753,40652,40654,40655,40656,40660,40668,40670,40669,40672,40677,40680,40687,40692,40694,40695,40697,40699,40700,40701,40711,40712,30391,40725,40737,40748,40766,40778,40786,40788,40803,40799,40800,40801,40806,40807,40812,40810,40823,40818,40822,40853,40860,40864,22575,27079,36953,29796,20956,29081,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,20008,20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,21255,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,64016,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,23488,29999,23512,23532,23582,23718,23738,23797,23847,23891,64017,23874,23917,23992,23993,24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26171,26121,26158,26142,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,63785,26470,26555,26706,26560,26625,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,28998,28999,64021,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,29794,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,64024,64025,64026,31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,32092,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,33972,34131,34137,34155,64031,34224,64032,64033,34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,64036,64037,36967,37086,64038,37141,37159,37338,37335,37342,37357,37358,37348,37349,37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,37495,37496,37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,63964,64041,38557,38575,38707,38715,38723,38733,38735,38737,38741,38999,39013,64042,64043,39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,null,null,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,65506,65508,65287,65282,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,65506,65508,65287,65282,12849,8470,8481,8757,32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,20008,20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,21255,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,64016,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,23488,29999,23512,23532,23582,23718,23738,23797,23847,23891,64017,23874,23917,23992,23993,24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26171,26121,26158,26142,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,63785,26470,26555,26706,26560,26625,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,28998,28999,64021,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,29794,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,64024,64025,64026,31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,32092,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,33972,34131,34137,34155,64031,34224,64032,64033,34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,64036,64037,36967,37086,64038,37141,37159,37338,37335,37342,37357,37358,37348,37349,37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,37495,37496,37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,63964,64041,38557,38575,38707,38715,38723,38733,38735,38737,38741,38999,39013,64042,64043,39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],jis0212:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,728,711,184,729,733,175,731,730,65374,900,901,null,null,null,null,null,null,null,null,161,166,191,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,186,170,169,174,8482,164,8470,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,902,904,905,906,938,null,908,null,910,939,null,911,null,null,null,null,940,941,942,943,970,912,972,962,973,971,944,974,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1038,1039,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1118,1119,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,198,272,null,294,null,306,null,321,319,null,330,216,338,null,358,222,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,230,273,240,295,305,307,312,322,320,329,331,248,339,223,359,254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,193,192,196,194,258,461,256,260,197,195,262,264,268,199,266,270,201,200,203,202,282,278,274,280,null,284,286,290,288,292,205,204,207,206,463,304,298,302,296,308,310,313,317,315,323,327,325,209,211,210,214,212,465,336,332,213,340,344,342,346,348,352,350,356,354,218,217,220,219,364,467,368,362,370,366,360,471,475,473,469,372,221,376,374,377,381,379,null,null,null,null,null,null,null,225,224,228,226,259,462,257,261,229,227,263,265,269,231,267,271,233,232,235,234,283,279,275,281,501,285,287,null,289,293,237,236,239,238,464,null,299,303,297,309,311,314,318,316,324,328,326,241,243,242,246,244,466,337,333,245,341,345,343,347,349,353,351,357,355,250,249,252,251,365,468,369,363,371,367,361,472,476,474,470,373,253,255,375,378,382,380,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19970,19972,19973,19980,19986,19999,20003,20004,20008,20011,20014,20015,20016,20021,20032,20033,20036,20039,20049,20058,20060,20067,20072,20073,20084,20085,20089,20095,20109,20118,20119,20125,20143,20153,20163,20176,20186,20187,20192,20193,20194,20200,20207,20209,20211,20213,20221,20222,20223,20224,20226,20227,20232,20235,20236,20242,20245,20246,20247,20249,20270,20273,20320,20275,20277,20279,20281,20283,20286,20288,20290,20296,20297,20299,20300,20306,20308,20310,20312,20319,20323,20330,20332,20334,20337,20343,20344,20345,20346,20349,20350,20353,20354,20356,20357,20361,20362,20364,20366,20368,20370,20371,20372,20375,20377,20378,20382,20383,20402,20407,20409,20411,20412,20413,20414,20416,20417,20421,20422,20424,20425,20427,20428,20429,20431,20434,20444,20448,20450,20464,20466,20476,20477,20479,20480,20481,20484,20487,20490,20492,20494,20496,20499,20503,20504,20507,20508,20509,20510,20514,20519,20526,20528,20530,20531,20533,20544,20545,20546,20549,20550,20554,20556,20558,20561,20562,20563,20567,20569,20575,20576,20578,20579,20582,20583,20586,20589,20592,20593,20539,20609,20611,20612,20614,20618,20622,20623,20624,20626,20627,20628,20630,20635,20636,20638,20639,20640,20641,20642,20650,20655,20656,20665,20666,20669,20672,20675,20676,20679,20684,20686,20688,20691,20692,20696,20700,20701,20703,20706,20708,20710,20712,20713,20719,20721,20726,20730,20734,20739,20742,20743,20744,20747,20748,20749,20750,20722,20752,20759,20761,20763,20764,20765,20766,20771,20775,20776,20780,20781,20783,20785,20787,20788,20789,20792,20793,20802,20810,20815,20819,20821,20823,20824,20831,20836,20838,20862,20867,20868,20875,20878,20888,20893,20897,20899,20909,20920,20922,20924,20926,20927,20930,20936,20943,20945,20946,20947,20949,20952,20958,20962,20965,20974,20978,20979,20980,20983,20993,20994,20997,21010,21011,21013,21014,21016,21026,21032,21041,21042,21045,21052,21061,21065,21077,21079,21080,21082,21084,21087,21088,21089,21094,21102,21111,21112,21113,21120,21122,21125,21130,21132,21139,21141,21142,21143,21144,21146,21148,21156,21157,21158,21159,21167,21168,21174,21175,21176,21178,21179,21181,21184,21188,21190,21192,21196,21199,21201,21204,21206,21211,21212,21217,21221,21224,21225,21226,21228,21232,21233,21236,21238,21239,21248,21251,21258,21259,21260,21265,21267,21272,21275,21276,21278,21279,21285,21287,21288,21289,21291,21292,21293,21296,21298,21301,21308,21309,21310,21314,21324,21323,21337,21339,21345,21347,21349,21356,21357,21362,21369,21374,21379,21383,21384,21390,21395,21396,21401,21405,21409,21412,21418,21419,21423,21426,21428,21429,21431,21432,21434,21437,21440,21445,21455,21458,21459,21461,21466,21469,21470,21472,21478,21479,21493,21506,21523,21530,21537,21543,21544,21546,21551,21553,21556,21557,21571,21572,21575,21581,21583,21598,21602,21604,21606,21607,21609,21611,21613,21614,21620,21631,21633,21635,21637,21640,21641,21645,21649,21653,21654,21660,21663,21665,21670,21671,21673,21674,21677,21678,21681,21687,21689,21690,21691,21695,21702,21706,21709,21710,21728,21738,21740,21743,21750,21756,21758,21759,21760,21761,21765,21768,21769,21772,21773,21774,21781,21802,21803,21810,21813,21814,21819,21820,21821,21825,21831,21833,21834,21837,21840,21841,21848,21850,21851,21854,21856,21857,21860,21862,21887,21889,21890,21894,21896,21902,21903,21905,21906,21907,21908,21911,21923,21924,21933,21938,21951,21953,21955,21958,21961,21963,21964,21966,21969,21970,21971,21975,21976,21979,21982,21986,21993,22006,22015,22021,22024,22026,22029,22030,22031,22032,22033,22034,22041,22060,22064,22067,22069,22071,22073,22075,22076,22077,22079,22080,22081,22083,22084,22086,22089,22091,22093,22095,22100,22110,22112,22113,22114,22115,22118,22121,22125,22127,22129,22130,22133,22148,22149,22152,22155,22156,22165,22169,22170,22173,22174,22175,22182,22183,22184,22185,22187,22188,22189,22193,22195,22199,22206,22213,22217,22218,22219,22223,22224,22220,22221,22233,22236,22237,22239,22241,22244,22245,22246,22247,22248,22257,22251,22253,22262,22263,22273,22274,22279,22282,22284,22289,22293,22298,22299,22301,22304,22306,22307,22308,22309,22313,22314,22316,22318,22319,22323,22324,22333,22334,22335,22341,22342,22348,22349,22354,22370,22373,22375,22376,22379,22381,22382,22383,22384,22385,22387,22388,22389,22391,22393,22394,22395,22396,22398,22401,22403,22412,22420,22423,22425,22426,22428,22429,22430,22431,22433,22421,22439,22440,22441,22444,22456,22461,22471,22472,22476,22479,22485,22493,22494,22500,22502,22503,22505,22509,22512,22517,22518,22520,22525,22526,22527,22531,22532,22536,22537,22497,22540,22541,22555,22558,22559,22560,22566,22567,22573,22578,22585,22591,22601,22604,22605,22607,22608,22613,22623,22625,22628,22631,22632,22648,22652,22655,22656,22657,22663,22664,22665,22666,22668,22669,22671,22672,22676,22678,22685,22688,22689,22690,22694,22697,22705,22706,22724,22716,22722,22728,22733,22734,22736,22738,22740,22742,22746,22749,22753,22754,22761,22771,22789,22790,22795,22796,22802,22803,22804,34369,22813,22817,22819,22820,22824,22831,22832,22835,22837,22838,22847,22851,22854,22866,22867,22873,22875,22877,22878,22879,22881,22883,22891,22893,22895,22898,22901,22902,22905,22907,22908,22923,22924,22926,22930,22933,22935,22943,22948,22951,22957,22958,22959,22960,22963,22967,22970,22972,22977,22979,22980,22984,22986,22989,22994,23005,23006,23007,23011,23012,23015,23022,23023,23025,23026,23028,23031,23040,23044,23052,23053,23054,23058,23059,23070,23075,23076,23079,23080,23082,23085,23088,23108,23109,23111,23112,23116,23120,23125,23134,23139,23141,23143,23149,23159,23162,23163,23166,23179,23184,23187,23190,23193,23196,23198,23199,23200,23202,23207,23212,23217,23218,23219,23221,23224,23226,23227,23231,23236,23238,23240,23247,23258,23260,23264,23269,23274,23278,23285,23286,23293,23296,23297,23304,23319,23348,23321,23323,23325,23329,23333,23341,23352,23361,23371,23372,23378,23382,23390,23400,23406,23407,23420,23421,23422,23423,23425,23428,23430,23434,23438,23440,23441,23443,23444,23446,23464,23465,23468,23469,23471,23473,23474,23479,23482,23484,23488,23489,23501,23503,23510,23511,23512,23513,23514,23520,23535,23537,23540,23549,23564,23575,23582,23583,23587,23590,23593,23595,23596,23598,23600,23602,23605,23606,23641,23642,23644,23650,23651,23655,23656,23657,23661,23664,23668,23669,23674,23675,23676,23677,23687,23688,23690,23695,23698,23709,23711,23712,23714,23715,23718,23722,23730,23732,23733,23738,23753,23755,23762,23773,23767,23790,23793,23794,23796,23809,23814,23821,23826,23851,23843,23844,23846,23847,23857,23860,23865,23869,23871,23874,23875,23878,23880,23893,23889,23897,23882,23903,23904,23905,23906,23908,23914,23917,23920,23929,23930,23934,23935,23937,23939,23944,23946,23954,23955,23956,23957,23961,23963,23967,23968,23975,23979,23984,23988,23992,23993,24003,24007,24011,24016,24014,24024,24025,24032,24036,24041,24056,24057,24064,24071,24077,24082,24084,24085,24088,24095,24096,24110,24104,24114,24117,24126,24139,24144,24137,24145,24150,24152,24155,24156,24158,24168,24170,24171,24172,24173,24174,24176,24192,24203,24206,24226,24228,24229,24232,24234,24236,24241,24243,24253,24254,24255,24262,24268,24267,24270,24273,24274,24276,24277,24284,24286,24293,24299,24322,24326,24327,24328,24334,24345,24348,24349,24353,24354,24355,24356,24360,24363,24364,24366,24368,24372,24374,24379,24381,24383,24384,24388,24389,24391,24397,24400,24404,24408,24411,24416,24419,24420,24423,24431,24434,24436,24437,24440,24442,24445,24446,24457,24461,24463,24470,24476,24477,24482,24487,24491,24484,24492,24495,24496,24497,24504,24516,24519,24520,24521,24523,24528,24529,24530,24531,24532,24542,24545,24546,24552,24553,24554,24556,24557,24558,24559,24562,24563,24566,24570,24572,24583,24586,24589,24595,24596,24599,24600,24602,24607,24612,24621,24627,24629,24640,24647,24648,24649,24652,24657,24660,24662,24663,24669,24673,24679,24689,24702,24703,24706,24710,24712,24714,24718,24721,24723,24725,24728,24733,24734,24738,24740,24741,24744,24752,24753,24759,24763,24766,24770,24772,24776,24777,24778,24779,24782,24783,24788,24789,24793,24795,24797,24798,24802,24805,24818,24821,24824,24828,24829,24834,24839,24842,24844,24848,24849,24850,24851,24852,24854,24855,24857,24860,24862,24866,24874,24875,24880,24881,24885,24886,24887,24889,24897,24901,24902,24905,24926,24928,24940,24946,24952,24955,24956,24959,24960,24961,24963,24964,24971,24973,24978,24979,24983,24984,24988,24989,24991,24992,24997,25e3,25002,25005,25016,25017,25020,25024,25025,25026,25038,25039,25045,25052,25053,25054,25055,25057,25058,25063,25065,25061,25068,25069,25071,25089,25091,25092,25095,25107,25109,25116,25120,25122,25123,25127,25129,25131,25145,25149,25154,25155,25156,25158,25164,25168,25169,25170,25172,25174,25178,25180,25188,25197,25199,25203,25210,25213,25229,25230,25231,25232,25254,25256,25267,25270,25271,25274,25278,25279,25284,25294,25301,25302,25306,25322,25330,25332,25340,25341,25347,25348,25354,25355,25357,25360,25363,25366,25368,25385,25386,25389,25397,25398,25401,25404,25409,25410,25411,25412,25414,25418,25419,25422,25426,25427,25428,25432,25435,25445,25446,25452,25453,25457,25460,25461,25464,25468,25469,25471,25474,25476,25479,25482,25488,25492,25493,25497,25498,25502,25508,25510,25517,25518,25519,25533,25537,25541,25544,25550,25553,25555,25556,25557,25564,25568,25573,25578,25580,25586,25587,25589,25592,25593,25609,25610,25616,25618,25620,25624,25630,25632,25634,25636,25637,25641,25642,25647,25648,25653,25661,25663,25675,25679,25681,25682,25683,25684,25690,25691,25692,25693,25695,25696,25697,25699,25709,25715,25716,25723,25725,25733,25735,25743,25744,25745,25752,25753,25755,25757,25759,25761,25763,25766,25768,25772,25779,25789,25790,25791,25796,25801,25802,25803,25804,25806,25808,25809,25813,25815,25828,25829,25833,25834,25837,25840,25845,25847,25851,25855,25857,25860,25864,25865,25866,25871,25875,25876,25878,25881,25883,25886,25887,25890,25894,25897,25902,25905,25914,25916,25917,25923,25927,25929,25936,25938,25940,25951,25952,25959,25963,25978,25981,25985,25989,25994,26002,26005,26008,26013,26016,26019,26022,26030,26034,26035,26036,26047,26050,26056,26057,26062,26064,26068,26070,26072,26079,26096,26098,26100,26101,26105,26110,26111,26112,26116,26120,26121,26125,26129,26130,26133,26134,26141,26142,26145,26146,26147,26148,26150,26153,26154,26155,26156,26158,26160,26161,26163,26169,26167,26176,26181,26182,26186,26188,26193,26190,26199,26200,26201,26203,26204,26208,26209,26363,26218,26219,26220,26238,26227,26229,26239,26231,26232,26233,26235,26240,26236,26251,26252,26253,26256,26258,26265,26266,26267,26268,26271,26272,26276,26285,26289,26290,26293,26299,26303,26304,26306,26307,26312,26316,26318,26319,26324,26331,26335,26344,26347,26348,26350,26362,26373,26375,26382,26387,26393,26396,26400,26402,26419,26430,26437,26439,26440,26444,26452,26453,26461,26470,26476,26478,26484,26486,26491,26497,26500,26510,26511,26513,26515,26518,26520,26521,26523,26544,26545,26546,26549,26555,26556,26557,26617,26560,26562,26563,26565,26568,26569,26578,26583,26585,26588,26593,26598,26608,26610,26614,26615,26706,26644,26649,26653,26655,26664,26663,26668,26669,26671,26672,26673,26675,26683,26687,26692,26693,26698,26700,26709,26711,26712,26715,26731,26734,26735,26736,26737,26738,26741,26745,26746,26747,26748,26754,26756,26758,26760,26774,26776,26778,26780,26785,26787,26789,26793,26794,26798,26802,26811,26821,26824,26828,26831,26832,26833,26835,26838,26841,26844,26845,26853,26856,26858,26859,26860,26861,26864,26865,26869,26870,26875,26876,26877,26886,26889,26890,26896,26897,26899,26902,26903,26929,26931,26933,26936,26939,26946,26949,26953,26958,26967,26971,26979,26980,26981,26982,26984,26985,26988,26992,26993,26994,27002,27003,27007,27008,27021,27026,27030,27032,27041,27045,27046,27048,27051,27053,27055,27063,27064,27066,27068,27077,27080,27089,27094,27095,27106,27109,27118,27119,27121,27123,27125,27134,27136,27137,27139,27151,27153,27157,27162,27165,27168,27172,27176,27184,27186,27188,27191,27195,27198,27199,27205,27206,27209,27210,27214,27216,27217,27218,27221,27222,27227,27236,27239,27242,27249,27251,27262,27265,27267,27270,27271,27273,27275,27281,27291,27293,27294,27295,27301,27307,27311,27312,27313,27316,27325,27326,27327,27334,27337,27336,27340,27344,27348,27349,27350,27356,27357,27364,27367,27372,27376,27377,27378,27388,27389,27394,27395,27398,27399,27401,27407,27408,27409,27415,27419,27422,27428,27432,27435,27436,27439,27445,27446,27451,27455,27462,27466,27469,27474,27478,27480,27485,27488,27495,27499,27502,27504,27509,27517,27518,27522,27525,27543,27547,27551,27552,27554,27555,27560,27561,27564,27565,27566,27568,27576,27577,27581,27582,27587,27588,27593,27596,27606,27610,27617,27619,27622,27623,27630,27633,27639,27641,27647,27650,27652,27653,27657,27661,27662,27664,27666,27673,27679,27686,27687,27688,27692,27694,27699,27701,27702,27706,27707,27711,27722,27723,27725,27727,27730,27732,27737,27739,27740,27755,27757,27759,27764,27766,27768,27769,27771,27781,27782,27783,27785,27796,27797,27799,27800,27804,27807,27824,27826,27828,27842,27846,27853,27855,27856,27857,27858,27860,27862,27866,27868,27872,27879,27881,27883,27884,27886,27890,27892,27908,27911,27914,27918,27919,27921,27923,27930,27942,27943,27944,27751,27950,27951,27953,27961,27964,27967,27991,27998,27999,28001,28005,28007,28015,28016,28028,28034,28039,28049,28050,28052,28054,28055,28056,28074,28076,28084,28087,28089,28093,28095,28100,28104,28106,28110,28111,28118,28123,28125,28127,28128,28130,28133,28137,28143,28144,28148,28150,28156,28160,28164,28190,28194,28199,28210,28214,28217,28219,28220,28228,28229,28232,28233,28235,28239,28241,28242,28243,28244,28247,28252,28253,28254,28258,28259,28264,28275,28283,28285,28301,28307,28313,28320,28327,28333,28334,28337,28339,28347,28351,28352,28353,28355,28359,28360,28362,28365,28366,28367,28395,28397,28398,28409,28411,28413,28420,28424,28426,28428,28429,28438,28440,28442,28443,28454,28457,28458,28463,28464,28467,28470,28475,28476,28461,28495,28497,28498,28499,28503,28505,28506,28509,28510,28513,28514,28520,28524,28541,28542,28547,28551,28552,28555,28556,28557,28560,28562,28563,28564,28566,28570,28575,28576,28581,28582,28583,28584,28590,28591,28592,28597,28598,28604,28613,28615,28616,28618,28634,28638,28648,28649,28656,28661,28665,28668,28669,28672,28677,28678,28679,28685,28695,28704,28707,28719,28724,28727,28729,28732,28739,28740,28744,28745,28746,28747,28756,28757,28765,28766,28750,28772,28773,28780,28782,28789,28790,28798,28801,28805,28806,28820,28821,28822,28823,28824,28827,28836,28843,28848,28849,28852,28855,28874,28881,28883,28884,28885,28886,28888,28892,28900,28922,28931,28932,28933,28934,28935,28939,28940,28943,28958,28960,28971,28973,28975,28976,28977,28984,28993,28997,28998,28999,29002,29003,29008,29010,29015,29018,29020,29022,29024,29032,29049,29056,29061,29063,29068,29074,29082,29083,29088,29090,29103,29104,29106,29107,29114,29119,29120,29121,29124,29131,29132,29139,29142,29145,29146,29148,29176,29182,29184,29191,29192,29193,29203,29207,29210,29213,29215,29220,29227,29231,29236,29240,29241,29249,29250,29251,29253,29262,29263,29264,29267,29269,29270,29274,29276,29278,29280,29283,29288,29291,29294,29295,29297,29303,29304,29307,29308,29311,29316,29321,29325,29326,29331,29339,29352,29357,29358,29361,29364,29374,29377,29383,29385,29388,29397,29398,29400,29407,29413,29427,29428,29434,29435,29438,29442,29444,29445,29447,29451,29453,29458,29459,29464,29465,29470,29474,29476,29479,29480,29484,29489,29490,29493,29498,29499,29501,29507,29517,29520,29522,29526,29528,29533,29534,29535,29536,29542,29543,29545,29547,29548,29550,29551,29553,29559,29561,29564,29568,29569,29571,29573,29574,29582,29584,29587,29589,29591,29592,29596,29598,29599,29600,29602,29605,29606,29610,29611,29613,29621,29623,29625,29628,29629,29631,29637,29638,29641,29643,29644,29647,29650,29651,29654,29657,29661,29665,29667,29670,29671,29673,29684,29685,29687,29689,29690,29691,29693,29695,29696,29697,29700,29703,29706,29713,29722,29723,29732,29734,29736,29737,29738,29739,29740,29741,29742,29743,29744,29745,29753,29760,29763,29764,29766,29767,29771,29773,29777,29778,29783,29789,29794,29798,29799,29800,29803,29805,29806,29809,29810,29824,29825,29829,29830,29831,29833,29839,29840,29841,29842,29848,29849,29850,29852,29855,29856,29857,29859,29862,29864,29865,29866,29867,29870,29871,29873,29874,29877,29881,29883,29887,29896,29897,29900,29904,29907,29912,29914,29915,29918,29919,29924,29928,29930,29931,29935,29940,29946,29947,29948,29951,29958,29970,29974,29975,29984,29985,29988,29991,29993,29994,29999,30006,30009,30013,30014,30015,30016,30019,30023,30024,30030,30032,30034,30039,30046,30047,30049,30063,30065,30073,30074,30075,30076,30077,30078,30081,30085,30096,30098,30099,30101,30105,30108,30114,30116,30132,30138,30143,30144,30145,30148,30150,30156,30158,30159,30167,30172,30175,30176,30177,30180,30183,30188,30190,30191,30193,30201,30208,30210,30211,30212,30215,30216,30218,30220,30223,30226,30227,30229,30230,30233,30235,30236,30237,30238,30243,30245,30246,30249,30253,30258,30259,30261,30264,30265,30266,30268,30282,30272,30273,30275,30276,30277,30281,30283,30293,30297,30303,30308,30309,30317,30318,30319,30321,30324,30337,30341,30348,30349,30357,30363,30364,30365,30367,30368,30370,30371,30372,30373,30374,30375,30376,30378,30381,30397,30401,30405,30409,30411,30412,30414,30420,30425,30432,30438,30440,30444,30448,30449,30454,30457,30460,30464,30470,30474,30478,30482,30484,30485,30487,30489,30490,30492,30498,30504,30509,30510,30511,30516,30517,30518,30521,30525,30526,30530,30533,30534,30538,30541,30542,30543,30546,30550,30551,30556,30558,30559,30560,30562,30564,30567,30570,30572,30576,30578,30579,30580,30586,30589,30592,30596,30604,30605,30612,30613,30614,30618,30623,30626,30631,30634,30638,30639,30641,30645,30654,30659,30665,30673,30674,30677,30681,30686,30687,30688,30692,30694,30698,30700,30704,30705,30708,30712,30715,30725,30726,30729,30733,30734,30737,30749,30753,30754,30755,30765,30766,30768,30773,30775,30787,30788,30791,30792,30796,30798,30802,30812,30814,30816,30817,30819,30820,30824,30826,30830,30842,30846,30858,30863,30868,30872,30881,30877,30878,30879,30884,30888,30892,30893,30896,30897,30898,30899,30907,30909,30911,30919,30920,30921,30924,30926,30930,30931,30933,30934,30948,30939,30943,30944,30945,30950,30954,30962,30963,30976,30966,30967,30970,30971,30975,30982,30988,30992,31002,31004,31006,31007,31008,31013,31015,31017,31021,31025,31028,31029,31035,31037,31039,31044,31045,31046,31050,31051,31055,31057,31060,31064,31067,31068,31079,31081,31083,31090,31097,31099,31100,31102,31115,31116,31121,31123,31124,31125,31126,31128,31131,31132,31137,31144,31145,31147,31151,31153,31156,31160,31163,31170,31172,31175,31176,31178,31183,31188,31190,31194,31197,31198,31200,31202,31205,31210,31211,31213,31217,31224,31228,31234,31235,31239,31241,31242,31244,31249,31253,31259,31262,31265,31271,31275,31277,31279,31280,31284,31285,31288,31289,31290,31300,31301,31303,31304,31308,31317,31318,31321,31324,31325,31327,31328,31333,31335,31338,31341,31349,31352,31358,31360,31362,31365,31366,31370,31371,31376,31377,31380,31390,31392,31395,31404,31411,31413,31417,31419,31420,31430,31433,31436,31438,31441,31451,31464,31465,31467,31468,31473,31476,31483,31485,31486,31495,31508,31519,31523,31527,31529,31530,31531,31533,31534,31535,31536,31537,31540,31549,31551,31552,31553,31559,31566,31573,31584,31588,31590,31593,31594,31597,31599,31602,31603,31607,31620,31625,31630,31632,31633,31638,31643,31646,31648,31653,31660,31663,31664,31666,31669,31670,31674,31675,31676,31677,31682,31685,31688,31690,31700,31702,31703,31705,31706,31707,31720,31722,31730,31732,31733,31736,31737,31738,31740,31742,31745,31746,31747,31748,31750,31753,31755,31756,31758,31759,31769,31771,31776,31781,31782,31784,31788,31793,31795,31796,31798,31801,31802,31814,31818,31829,31825,31826,31827,31833,31834,31835,31836,31837,31838,31841,31843,31847,31849,31853,31854,31856,31858,31865,31868,31869,31878,31879,31887,31892,31902,31904,31910,31920,31926,31927,31930,31931,31932,31935,31940,31943,31944,31945,31949,31951,31955,31956,31957,31959,31961,31962,31965,31974,31977,31979,31989,32003,32007,32008,32009,32015,32017,32018,32019,32022,32029,32030,32035,32038,32042,32045,32049,32060,32061,32062,32064,32065,32071,32072,32077,32081,32083,32087,32089,32090,32092,32093,32101,32103,32106,32112,32120,32122,32123,32127,32129,32130,32131,32133,32134,32136,32139,32140,32141,32145,32150,32151,32157,32158,32166,32167,32170,32179,32182,32183,32185,32194,32195,32196,32197,32198,32204,32205,32206,32215,32217,32256,32226,32229,32230,32234,32235,32237,32241,32245,32246,32249,32250,32264,32272,32273,32277,32279,32284,32285,32288,32295,32296,32300,32301,32303,32307,32310,32319,32324,32325,32327,32334,32336,32338,32344,32351,32353,32354,32357,32363,32366,32367,32371,32376,32382,32385,32390,32391,32394,32397,32401,32405,32408,32410,32413,32414,32572,32571,32573,32574,32575,32579,32580,32583,32591,32594,32595,32603,32604,32605,32609,32611,32612,32613,32614,32621,32625,32637,32638,32639,32640,32651,32653,32655,32656,32657,32662,32663,32668,32673,32674,32678,32682,32685,32692,32700,32703,32704,32707,32712,32718,32719,32731,32735,32739,32741,32744,32748,32750,32751,32754,32762,32765,32766,32767,32775,32776,32778,32781,32782,32783,32785,32787,32788,32790,32797,32798,32799,32800,32804,32806,32812,32814,32816,32820,32821,32823,32825,32826,32828,32830,32832,32836,32864,32868,32870,32877,32881,32885,32897,32904,32910,32924,32926,32934,32935,32939,32952,32953,32968,32973,32975,32978,32980,32981,32983,32984,32992,33005,33006,33008,33010,33011,33014,33017,33018,33022,33027,33035,33046,33047,33048,33052,33054,33056,33060,33063,33068,33072,33077,33082,33084,33093,33095,33098,33100,33106,33111,33120,33121,33127,33128,33129,33133,33135,33143,33153,33168,33156,33157,33158,33163,33166,33174,33176,33179,33182,33186,33198,33202,33204,33211,33227,33219,33221,33226,33230,33231,33237,33239,33243,33245,33246,33249,33252,33259,33260,33264,33265,33266,33269,33270,33272,33273,33277,33279,33280,33283,33295,33299,33300,33305,33306,33309,33313,33314,33320,33330,33332,33338,33347,33348,33349,33350,33355,33358,33359,33361,33366,33372,33376,33379,33383,33389,33396,33403,33405,33407,33408,33409,33411,33412,33415,33417,33418,33422,33425,33428,33430,33432,33434,33435,33440,33441,33443,33444,33447,33448,33449,33450,33454,33456,33458,33460,33463,33466,33468,33470,33471,33478,33488,33493,33498,33504,33506,33508,33512,33514,33517,33519,33526,33527,33533,33534,33536,33537,33543,33544,33546,33547,33620,33563,33565,33566,33567,33569,33570,33580,33581,33582,33584,33587,33591,33594,33596,33597,33602,33603,33604,33607,33613,33614,33617,33621,33622,33623,33648,33656,33661,33663,33664,33666,33668,33670,33677,33682,33684,33685,33688,33689,33691,33692,33693,33702,33703,33705,33708,33726,33727,33728,33735,33737,33743,33744,33745,33748,33757,33619,33768,33770,33782,33784,33785,33788,33793,33798,33802,33807,33809,33813,33817,33709,33839,33849,33861,33863,33864,33866,33869,33871,33873,33874,33878,33880,33881,33882,33884,33888,33892,33893,33895,33898,33904,33907,33908,33910,33912,33916,33917,33921,33925,33938,33939,33941,33950,33958,33960,33961,33962,33967,33969,33972,33978,33981,33982,33984,33986,33991,33992,33996,33999,34003,34012,34023,34026,34031,34032,34033,34034,34039,34098,34042,34043,34045,34050,34051,34055,34060,34062,34064,34076,34078,34082,34083,34084,34085,34087,34090,34091,34095,34099,34100,34102,34111,34118,34127,34128,34129,34130,34131,34134,34137,34140,34141,34142,34143,34144,34145,34146,34148,34155,34159,34169,34170,34171,34173,34175,34177,34181,34182,34185,34187,34188,34191,34195,34200,34205,34207,34208,34210,34213,34215,34228,34230,34231,34232,34236,34237,34238,34239,34242,34247,34250,34251,34254,34221,34264,34266,34271,34272,34278,34280,34285,34291,34294,34300,34303,34304,34308,34309,34317,34318,34320,34321,34322,34328,34329,34331,34334,34337,34343,34345,34358,34360,34362,34364,34365,34368,34370,34374,34386,34387,34390,34391,34392,34393,34397,34400,34401,34402,34403,34404,34409,34412,34415,34421,34422,34423,34426,34445,34449,34454,34456,34458,34460,34465,34470,34471,34472,34477,34481,34483,34484,34485,34487,34488,34489,34495,34496,34497,34499,34501,34513,34514,34517,34519,34522,34524,34528,34531,34533,34535,34440,34554,34556,34557,34564,34565,34567,34571,34574,34575,34576,34579,34580,34585,34590,34591,34593,34595,34600,34606,34607,34609,34610,34617,34618,34620,34621,34622,34624,34627,34629,34637,34648,34653,34657,34660,34661,34671,34673,34674,34683,34691,34692,34693,34694,34695,34696,34697,34699,34700,34704,34707,34709,34711,34712,34713,34718,34720,34723,34727,34732,34733,34734,34737,34741,34750,34751,34753,34760,34761,34762,34766,34773,34774,34777,34778,34780,34783,34786,34787,34788,34794,34795,34797,34801,34803,34808,34810,34815,34817,34819,34822,34825,34826,34827,34832,34841,34834,34835,34836,34840,34842,34843,34844,34846,34847,34856,34861,34862,34864,34866,34869,34874,34876,34881,34883,34885,34888,34889,34890,34891,34894,34897,34901,34902,34904,34906,34908,34911,34912,34916,34921,34929,34937,34939,34944,34968,34970,34971,34972,34975,34976,34984,34986,35002,35005,35006,35008,35018,35019,35020,35021,35022,35025,35026,35027,35035,35038,35047,35055,35056,35057,35061,35063,35073,35078,35085,35086,35087,35093,35094,35096,35097,35098,35100,35104,35110,35111,35112,35120,35121,35122,35125,35129,35130,35134,35136,35138,35141,35142,35145,35151,35154,35159,35162,35163,35164,35169,35170,35171,35179,35182,35184,35187,35189,35194,35195,35196,35197,35209,35213,35216,35220,35221,35227,35228,35231,35232,35237,35248,35252,35253,35254,35255,35260,35284,35285,35286,35287,35288,35301,35305,35307,35309,35313,35315,35318,35321,35325,35327,35332,35333,35335,35343,35345,35346,35348,35349,35358,35360,35362,35364,35366,35371,35372,35375,35381,35383,35389,35390,35392,35395,35397,35399,35401,35405,35406,35411,35414,35415,35416,35420,35421,35425,35429,35431,35445,35446,35447,35449,35450,35451,35454,35455,35456,35459,35462,35467,35471,35472,35474,35478,35479,35481,35487,35495,35497,35502,35503,35507,35510,35511,35515,35518,35523,35526,35528,35529,35530,35537,35539,35540,35541,35543,35549,35551,35564,35568,35572,35573,35574,35580,35583,35589,35590,35595,35601,35612,35614,35615,35594,35629,35632,35639,35644,35650,35651,35652,35653,35654,35656,35666,35667,35668,35673,35661,35678,35683,35693,35702,35704,35705,35708,35710,35713,35716,35717,35723,35725,35727,35732,35733,35740,35742,35743,35896,35897,35901,35902,35909,35911,35913,35915,35919,35921,35923,35924,35927,35928,35931,35933,35929,35939,35940,35942,35944,35945,35949,35955,35957,35958,35963,35966,35974,35975,35979,35984,35986,35987,35993,35995,35996,36004,36025,36026,36037,36038,36041,36043,36047,36054,36053,36057,36061,36065,36072,36076,36079,36080,36082,36085,36087,36088,36094,36095,36097,36099,36105,36114,36119,36123,36197,36201,36204,36206,36223,36226,36228,36232,36237,36240,36241,36245,36254,36255,36256,36262,36267,36268,36271,36274,36277,36279,36281,36283,36288,36293,36294,36295,36296,36298,36302,36305,36308,36309,36311,36313,36324,36325,36327,36332,36336,36284,36337,36338,36340,36349,36353,36356,36357,36358,36363,36369,36372,36374,36384,36385,36386,36387,36390,36391,36401,36403,36406,36407,36408,36409,36413,36416,36417,36427,36429,36430,36431,36436,36443,36444,36445,36446,36449,36450,36457,36460,36461,36463,36464,36465,36473,36474,36475,36482,36483,36489,36496,36498,36501,36506,36507,36509,36510,36514,36519,36521,36525,36526,36531,36533,36538,36539,36544,36545,36547,36548,36551,36559,36561,36564,36572,36584,36590,36592,36593,36599,36601,36602,36589,36608,36610,36615,36616,36623,36624,36630,36631,36632,36638,36640,36641,36643,36645,36647,36648,36652,36653,36654,36660,36661,36662,36663,36666,36672,36673,36675,36679,36687,36689,36690,36691,36692,36693,36696,36701,36702,36709,36765,36768,36769,36772,36773,36774,36789,36790,36792,36798,36800,36801,36806,36810,36811,36813,36816,36818,36819,36821,36832,36835,36836,36840,36846,36849,36853,36854,36859,36862,36866,36868,36872,36876,36888,36891,36904,36905,36911,36906,36908,36909,36915,36916,36919,36927,36931,36932,36940,36955,36957,36962,36966,36967,36972,36976,36980,36985,36997,37e3,37003,37004,37006,37008,37013,37015,37016,37017,37019,37024,37025,37026,37029,37040,37042,37043,37044,37046,37053,37068,37054,37059,37060,37061,37063,37064,37077,37079,37080,37081,37084,37085,37087,37093,37074,37110,37099,37103,37104,37108,37118,37119,37120,37124,37125,37126,37128,37133,37136,37140,37142,37143,37144,37146,37148,37150,37152,37157,37154,37155,37159,37161,37166,37167,37169,37172,37174,37175,37177,37178,37180,37181,37187,37191,37192,37199,37203,37207,37209,37210,37211,37217,37220,37223,37229,37236,37241,37242,37243,37249,37251,37253,37254,37258,37262,37265,37267,37268,37269,37272,37278,37281,37286,37288,37292,37293,37294,37296,37297,37298,37299,37302,37307,37308,37309,37311,37314,37315,37317,37331,37332,37335,37337,37338,37342,37348,37349,37353,37354,37356,37357,37358,37359,37360,37361,37367,37369,37371,37373,37376,37377,37380,37381,37382,37383,37385,37386,37388,37392,37394,37395,37398,37400,37404,37405,37411,37412,37413,37414,37416,37422,37423,37424,37427,37429,37430,37432,37433,37434,37436,37438,37440,37442,37443,37446,37447,37450,37453,37454,37455,37457,37464,37465,37468,37469,37472,37473,37477,37479,37480,37481,37486,37487,37488,37493,37494,37495,37496,37497,37499,37500,37501,37503,37512,37513,37514,37517,37518,37522,37527,37529,37535,37536,37540,37541,37543,37544,37547,37551,37554,37558,37560,37562,37563,37564,37565,37567,37568,37569,37570,37571,37573,37574,37575,37576,37579,37580,37581,37582,37584,37587,37589,37591,37592,37593,37596,37597,37599,37600,37601,37603,37605,37607,37608,37612,37614,37616,37625,37627,37631,37632,37634,37640,37645,37649,37652,37653,37660,37661,37662,37663,37665,37668,37669,37671,37673,37674,37683,37684,37686,37687,37703,37704,37705,37712,37713,37714,37717,37719,37720,37722,37726,37732,37733,37735,37737,37738,37741,37743,37744,37745,37747,37748,37750,37754,37757,37759,37760,37761,37762,37768,37770,37771,37773,37775,37778,37781,37784,37787,37790,37793,37795,37796,37798,37800,37803,37812,37813,37814,37818,37801,37825,37828,37829,37830,37831,37833,37834,37835,37836,37837,37843,37849,37852,37854,37855,37858,37862,37863,37881,37879,37880,37882,37883,37885,37889,37890,37892,37896,37897,37901,37902,37903,37909,37910,37911,37919,37934,37935,37937,37938,37939,37940,37947,37951,37949,37955,37957,37960,37962,37964,37973,37977,37980,37983,37985,37987,37992,37995,37997,37998,37999,38001,38002,38020,38019,38264,38265,38270,38276,38280,38284,38285,38286,38301,38302,38303,38305,38310,38313,38315,38316,38324,38326,38330,38333,38335,38342,38344,38345,38347,38352,38353,38354,38355,38361,38362,38365,38366,38367,38368,38372,38374,38429,38430,38434,38436,38437,38438,38444,38449,38451,38455,38456,38457,38458,38460,38461,38465,38482,38484,38486,38487,38488,38497,38510,38516,38523,38524,38526,38527,38529,38530,38531,38532,38537,38545,38550,38554,38557,38559,38564,38565,38566,38569,38574,38575,38579,38586,38602,38610,23986,38616,38618,38621,38622,38623,38633,38639,38641,38650,38658,38659,38661,38665,38682,38683,38685,38689,38690,38691,38696,38705,38707,38721,38723,38730,38734,38735,38741,38743,38744,38746,38747,38755,38759,38762,38766,38771,38774,38775,38776,38779,38781,38783,38784,38793,38805,38806,38807,38809,38810,38814,38815,38818,38828,38830,38833,38834,38837,38838,38840,38841,38842,38844,38846,38847,38849,38852,38853,38855,38857,38858,38860,38861,38862,38864,38865,38868,38871,38872,38873,38877,38878,38880,38875,38881,38884,38895,38897,38900,38903,38904,38906,38919,38922,38937,38925,38926,38932,38934,38940,38942,38944,38947,38950,38955,38958,38959,38960,38962,38963,38965,38949,38974,38980,38983,38986,38993,38994,38995,38998,38999,39001,39002,39010,39011,39013,39014,39018,39020,39083,39085,39086,39088,39092,39095,39096,39098,39099,39103,39106,39109,39112,39116,39137,39139,39141,39142,39143,39146,39155,39158,39170,39175,39176,39185,39189,39190,39191,39194,39195,39196,39199,39202,39206,39207,39211,39217,39218,39219,39220,39221,39225,39226,39227,39228,39232,39233,39238,39239,39240,39245,39246,39252,39256,39257,39259,39260,39262,39263,39264,39323,39325,39327,39334,39344,39345,39346,39349,39353,39354,39357,39359,39363,39369,39379,39380,39385,39386,39388,39390,39399,39402,39403,39404,39408,39412,39413,39417,39421,39422,39426,39427,39428,39435,39436,39440,39441,39446,39454,39456,39458,39459,39460,39463,39469,39470,39475,39477,39478,39480,39495,39489,39492,39498,39499,39500,39502,39505,39508,39510,39517,39594,39596,39598,39599,39602,39604,39605,39606,39609,39611,39614,39615,39617,39619,39622,39624,39630,39632,39634,39637,39638,39639,39643,39644,39648,39652,39653,39655,39657,39660,39666,39667,39669,39673,39674,39677,39679,39680,39681,39682,39683,39684,39685,39688,39689,39691,39692,39693,39694,39696,39698,39702,39705,39707,39708,39712,39718,39723,39725,39731,39732,39733,39735,39737,39738,39741,39752,39755,39756,39765,39766,39767,39771,39774,39777,39779,39781,39782,39784,39786,39787,39788,39789,39790,39795,39797,39799,39800,39801,39807,39808,39812,39813,39814,39815,39817,39818,39819,39821,39823,39824,39828,39834,39837,39838,39846,39847,39849,39852,39856,39857,39858,39863,39864,39867,39868,39870,39871,39873,39879,39880,39886,39888,39895,39896,39901,39903,39909,39911,39914,39915,39919,39923,39927,39928,39929,39930,39933,39935,39936,39938,39947,39951,39953,39958,39960,39961,39962,39964,39966,39970,39971,39974,39975,39976,39977,39978,39985,39989,39990,39991,39997,40001,40003,40004,40005,40009,40010,40014,40015,40016,40019,40020,40022,40024,40027,40029,40030,40031,40035,40041,40042,40028,40043,40040,40046,40048,40050,40053,40055,40059,40166,40178,40183,40185,40203,40194,40209,40215,40216,40220,40221,40222,40239,40240,40242,40243,40244,40250,40252,40261,40253,40258,40259,40263,40266,40275,40276,40287,40291,40290,40293,40297,40298,40299,40304,40310,40311,40315,40316,40318,40323,40324,40326,40330,40333,40334,40338,40339,40341,40342,40343,40344,40353,40362,40364,40366,40369,40373,40377,40380,40383,40387,40391,40393,40394,40404,40405,40406,40407,40410,40414,40415,40416,40421,40423,40425,40427,40430,40432,40435,40436,40446,40458,40450,40455,40462,40464,40465,40466,40469,40470,40473,40476,40477,40570,40571,40572,40576,40578,40579,40580,40581,40583,40590,40591,40598,40600,40603,40606,40612,40616,40620,40622,40623,40624,40627,40628,40629,40646,40648,40651,40661,40671,40676,40679,40684,40685,40686,40688,40689,40690,40693,40696,40703,40706,40707,40713,40719,40720,40721,40722,40724,40726,40727,40729,40730,40731,40735,40738,40742,40746,40747,40751,40753,40754,40756,40759,40761,40762,40764,40765,40767,40769,40771,40772,40773,40774,40775,40787,40789,40790,40791,40792,40794,40797,40798,40808,40809,40813,40814,40815,40816,40817,40819,40821,40826,40829,40847,40848,40849,40850,40852,40854,40855,40862,40865,40866,40867,40869,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],ibm866:[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,9617,9618,9619,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9561,9560,9554,9555,9579,9578,9496,9484,9608,9604,9612,9616,9600,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1025,1105,1028,1108,1031,1111,1038,1118,176,8729,183,8730,8470,164,9632,160],"iso-8859-2":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,728,321,164,317,346,167,168,352,350,356,377,173,381,379,176,261,731,322,180,318,347,711,184,353,351,357,378,733,382,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],"iso-8859-3":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,294,728,163,164,null,292,167,168,304,350,286,308,173,null,379,176,295,178,179,180,181,293,183,184,305,351,287,309,189,null,380,192,193,194,null,196,266,264,199,200,201,202,203,204,205,206,207,null,209,210,211,212,288,214,215,284,217,218,219,220,364,348,223,224,225,226,null,228,267,265,231,232,233,234,235,236,237,238,239,null,241,242,243,244,289,246,247,285,249,250,251,252,365,349,729],"iso-8859-4":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,312,342,164,296,315,167,168,352,274,290,358,173,381,175,176,261,731,343,180,297,316,711,184,353,275,291,359,330,382,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,298,272,325,332,310,212,213,214,215,216,370,218,219,220,360,362,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,299,273,326,333,311,244,245,246,247,248,371,250,251,252,361,363,729],"iso-8859-5":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,173,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8470,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,167,1118,1119],"iso-8859-6":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,null,null,164,null,null,null,null,null,null,null,1548,173,null,null,null,null,null,null,null,null,null,null,null,null,null,1563,null,null,null,1567,null,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,null,null,null,null,null,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,null,null,null,null,null,null,null,null,null,null,null,null,null],"iso-8859-7":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8216,8217,163,8364,8367,166,167,168,169,890,171,172,173,null,8213,176,177,178,179,900,901,902,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],"iso-8859-8":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,162,163,164,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8215,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],"iso-8859-10":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,274,290,298,296,310,167,315,272,352,358,381,173,362,330,176,261,275,291,299,297,311,183,316,273,353,359,382,8213,363,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,207,208,325,332,211,212,213,214,360,216,370,218,219,220,221,222,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,239,240,326,333,243,244,245,246,361,248,371,250,251,252,253,254,312],"iso-8859-13":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8221,162,163,164,8222,166,167,216,169,342,171,172,173,174,198,176,177,178,179,8220,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,8217],"iso-8859-14":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,7682,7683,163,266,267,7690,167,7808,169,7810,7691,7922,173,174,376,7710,7711,288,289,7744,7745,182,7766,7809,7767,7811,7776,7923,7812,7813,7777,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,372,209,210,211,212,213,214,7786,216,217,218,219,220,221,374,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,373,241,242,243,244,245,246,7787,248,249,250,251,252,253,375,255],"iso-8859-15":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,8364,165,352,167,353,169,170,171,172,173,174,175,176,177,178,179,381,181,182,183,382,185,186,187,338,339,376,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],"iso-8859-16":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,261,321,8364,8222,352,167,353,169,536,171,377,173,378,379,176,177,268,322,381,8221,182,183,382,269,537,187,338,339,376,380,192,193,194,258,196,262,198,199,200,201,202,203,204,205,206,207,272,323,210,211,212,336,214,346,368,217,218,219,220,280,538,223,224,225,226,259,228,263,230,231,232,233,234,235,236,237,238,239,273,324,242,243,244,337,246,347,369,249,250,251,252,281,539,255],"koi8-r":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,1025,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],"koi8-u":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,1108,9556,1110,1111,9559,9560,9561,9562,9563,1169,1118,9566,9567,9568,9569,1025,1028,9571,1030,1031,9574,9575,9576,9577,9578,1168,1038,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],macintosh:[196,197,199,201,209,214,220,225,224,226,228,227,229,231,233,232,234,235,237,236,238,239,241,243,242,244,246,245,250,249,251,252,8224,176,162,163,167,8226,182,223,174,169,8482,180,168,8800,198,216,8734,177,8804,8805,165,181,8706,8721,8719,960,8747,170,186,937,230,248,191,161,172,8730,402,8776,8710,171,187,8230,160,192,195,213,338,339,8211,8212,8220,8221,8216,8217,247,9674,255,376,8260,8364,8249,8250,64257,64258,8225,183,8218,8222,8240,194,202,193,203,200,205,206,207,204,211,212,63743,210,218,219,217,305,710,732,175,728,729,730,184,733,731,711],"windows-874":[8364,129,130,131,132,8230,134,135,136,137,138,139,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,153,154,155,156,157,158,159,160,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,null,null,null,null,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,null,null,null,null],"windows-1250":[8364,129,8218,131,8222,8230,8224,8225,136,8240,352,8249,346,356,381,377,144,8216,8217,8220,8221,8226,8211,8212,152,8482,353,8250,347,357,382,378,160,711,728,321,164,260,166,167,168,169,350,171,172,173,174,379,176,177,731,322,180,181,182,183,184,261,351,187,317,733,318,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],"windows-1251":[1026,1027,8218,1107,8222,8230,8224,8225,8364,8240,1033,8249,1034,1036,1035,1039,1106,8216,8217,8220,8221,8226,8211,8212,152,8482,1113,8250,1114,1116,1115,1119,160,1038,1118,1032,164,1168,166,167,1025,169,1028,171,172,173,174,1031,176,177,1030,1110,1169,181,182,183,1105,8470,1108,187,1112,1029,1109,1111,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103],"windows-1252":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],"windows-1253":[8364,129,8218,402,8222,8230,8224,8225,136,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,157,158,159,160,901,902,163,164,165,166,167,168,169,null,171,172,173,174,8213,176,177,178,179,900,181,182,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],"windows-1254":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,286,209,210,211,212,213,214,215,216,217,218,219,220,304,350,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,287,241,242,243,244,245,246,247,248,249,250,251,252,305,351,255],"windows-1255":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,156,157,158,159,160,161,162,163,8362,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,191,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1520,1521,1522,1523,1524,null,null,null,null,null,null,null,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],"windows-1256":[8364,1662,8218,402,8222,8230,8224,8225,710,8240,1657,8249,338,1670,1688,1672,1711,8216,8217,8220,8221,8226,8211,8212,1705,8482,1681,8250,339,8204,8205,1722,160,1548,162,163,164,165,166,167,168,169,1726,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,1563,187,188,189,190,1567,1729,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,215,1591,1592,1593,1594,1600,1601,1602,1603,224,1604,226,1605,1606,1607,1608,231,232,233,234,235,1609,1610,238,239,1611,1612,1613,1614,244,1615,1616,247,1617,249,1618,251,252,8206,8207,1746],"windows-1257":[8364,129,8218,131,8222,8230,8224,8225,136,8240,138,8249,140,168,711,184,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,175,731,159,160,null,162,163,164,null,166,167,216,169,342,171,172,173,174,198,176,177,178,179,180,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,729],"windows-1258":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,258,196,197,198,199,200,201,202,203,768,205,206,207,272,209,777,211,212,416,214,215,216,217,218,219,220,431,771,223,224,225,226,259,228,229,230,231,232,233,234,235,769,237,238,239,273,241,803,243,244,417,246,247,248,249,250,251,252,432,8363,255],"x-mac-cyrillic":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,8224,176,1168,163,167,8226,182,1030,174,169,8482,1026,1106,8800,1027,1107,8734,177,8804,8805,1110,181,1169,1032,1028,1108,1031,1111,1033,1113,1034,1114,1112,1029,172,8730,402,8776,8710,171,187,8230,160,1035,1115,1036,1116,1109,8211,8212,8220,8221,8216,8217,247,8222,1038,1118,1039,1119,8470,1025,1105,1103,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,8364]}})(this||{}) diff --git a/agent/uiserver/dist/assets/favicon.ico b/agent/uiserver/dist/assets/favicon.ico new file mode 100644 index 0000000000..21fe29b3b0 Binary files /dev/null and b/agent/uiserver/dist/assets/favicon.ico differ diff --git a/agent/uiserver/dist/assets/favicon.svg b/agent/uiserver/dist/assets/favicon.svg new file mode 100644 index 0000000000..61b10f81cb --- /dev/null +++ b/agent/uiserver/dist/assets/favicon.svg @@ -0,0 +1,7 @@ + + + favicon + + + + \ No newline at end of file diff --git a/agent/uiserver/dist/assets/init-21ea65714d133467454b601efc15e2dd.js b/agent/uiserver/dist/assets/init-21ea65714d133467454b601efc15e2dd.js new file mode 100644 index 0000000000..0befe4545f --- /dev/null +++ b/agent/uiserver/dist/assets/init-21ea65714d133467454b601efc15e2dd.js @@ -0,0 +1,5 @@ +(function(e){const t=new Map(Object.entries(JSON.parse(e.querySelector("[data-consul-ui-fs]").textContent))),n=function(t){var n=e.createElement("script") +n.src=t,e.body.appendChild(n)} +"TextDecoder"in window||(n(t.get(["text-encoding","encoding-indexes"].join("/")+".js")),n(t.get(["text-encoding","encoding"].join("/")+".js"))),window.CSS&&window.CSS.escape||n(t.get(["css.escape","css.escape"].join("/")+".js")) +try{const t=e.querySelector('[name="consul-ui/config/environment"]'),n=JSON.parse(e.querySelector("[data-consul-ui-config]").textContent),o=JSON.parse(decodeURIComponent(t.getAttribute("content"))),c="string"!=typeof n.ContentPath?"":n.ContentPath +c.length>0&&(o.rootURL=c),t.setAttribute("content",encodeURIComponent(JSON.stringify(o)))}catch(o){throw new Error("Unable to parse consul-ui settings: "+o.message)}})(document) diff --git a/agent/uiserver/dist/assets/loading-cylon-pink.svg b/agent/uiserver/dist/assets/loading-cylon-pink.svg new file mode 100644 index 0000000000..1f2d83ae3f --- /dev/null +++ b/agent/uiserver/dist/assets/loading-cylon-pink.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/agent/uiserver/dist/assets/metrics-providers/consul-31d7e3b0ef7c58d62338c7d7aeaaf545.js b/agent/uiserver/dist/assets/metrics-providers/consul-31d7e3b0ef7c58d62338c7d7aeaaf545.js new file mode 100644 index 0000000000..e6a808bcbf --- /dev/null +++ b/agent/uiserver/dist/assets/metrics-providers/consul-31d7e3b0ef7c58d62338c7d7aeaaf545.js @@ -0,0 +1,4 @@ +(function(r){const e=["init","serviceRecentSummarySeries","serviceRecentSummaryStats","upstreamRecentSummaryStats","downstreamRecentSummaryStats"] +r.consul=new class{constructor(){this.registry={},this.providers={}}registerMetricsProvider(r,t){for(var i of e)if("function"!=typeof t[i])throw new Error(`Can't register metrics provider '${r}': missing ${i} method.`) +this.registry[r]=t}getMetricsProvider(r,e){if(!(r in this.registry))throw new Error(`Metrics Provider '${r}' is not registered.`) +return r in this.providers||(this.providers[r]=Object.create(this.registry[r]),this.providers[r].init(e)),this.providers[r]}}})(window) diff --git a/agent/uiserver/dist/assets/metrics-providers/prometheus-5f31ba3b7ffd850fa916a0a76933e968.js b/agent/uiserver/dist/assets/metrics-providers/prometheus-5f31ba3b7ffd850fa916a0a76933e968.js new file mode 100644 index 0000000000..073ed767a5 --- /dev/null +++ b/agent/uiserver/dist/assets/metrics-providers/prometheus-5f31ba3b7ffd850fa916a0a76933e968.js @@ -0,0 +1,43 @@ +(function(){var e={unitSuffix:"",labels:{},data:[]},t={options:{},init:function(e){if(this.options=e,!this.options.metrics_proxy_enabled)throw new Error("prometheus metrics provider currently requires the ui_config.metrics_proxy to be configured in the Consul agent.")},httpGet:function(e,t,r){if(t){var s=-1!==e.indexOf("?")?"&":"?" +e=e+s+Object.keys(t).map((function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])})).join("&")}return this.options.fetch(e,{headers:r||{}}).then((function(e){if(e.ok)return e.json() +var t=new Error("HTTP Error: "+e.statusText) +throw t.statusCode=e.status,t}))},serviceRecentSummarySeries:function(e,t,r,s,n){var a=(new Date).getTime()/1e3 +return n.start=a-900,n.end=a,this.hasL7Metrics(s)?this.fetchRequestRateSeries(e,t,r,n):this.fetchDataRateSeries(e,t,r,n)},serviceRecentSummaryStats:function(e,t,r,s,n){var a=[] +return this.hasL7Metrics(s)?(a.push(this.fetchRPS(e,t,r,"service",n)),a.push(this.fetchER(e,t,r,"service",n)),a.push(this.fetchPercentile(50,e,t,r,"service",n)),a.push(this.fetchPercentile(99,e,t,r,"service",n))):(a.push(this.fetchConnRate(e,t,r,"service",n)),a.push(this.fetchServiceRx(e,t,r,"service",n)),a.push(this.fetchServiceTx(e,t,r,"service",n)),a.push(this.fetchServiceNoRoute(e,t,r,"service",n))),this.fetchStats(a)},upstreamRecentSummaryStats:function(e,t,r,s){return this.fetchRecentSummaryStats(e,t,r,"upstream",s)},downstreamRecentSummaryStats:function(e,t,r,s){return this.fetchRecentSummaryStats(e,t,r,"downstream",s)},fetchRecentSummaryStats:function(e,t,r,s,n){var a=[] +return a.push(this.fetchRPS(e,t,r,s,n)),a.push(this.fetchER(e,t,r,s,n)),a.push(this.fetchPercentile(50,e,t,r,s,n)),a.push(this.fetchPercentile(99,e,t,r,s,n)),a.push(this.fetchConnRate(e,t,r,s,n)),a.push(this.fetchServiceRx(e,t,r,s,n)),a.push(this.fetchServiceTx(e,t,r,s,n)),a.push(this.fetchServiceNoRoute(e,t,r,s,n)),this.fetchStatsGrouped(a)},hasL7Metrics:function(e){return"http"===e||"http2"===e||"grpc"===e},fetchStats:function(e){return Promise.all(e).then((function(t){for(var r={stats:[]},s=0;s${c} request rate averaged over the last 15 minutes`,r,this.groupByInfix(n))},fetchER:function(e,t,s,n){var a=this.makeHTTPSelector(e,t,s,n),c=this.makeSubject(e,t,s,n),i="" +"upstream"==n?i+=" by (consul_upstream_service,consul_upstream_datacenter,consul_upstream_namespace)":"downstream"==n&&(i+=" by (consul_source_service,consul_source_datacenter,consul_source_namespace)") +var u=this.metricPrefixHTTP(n),o=`sum(rate(${u}_xx{${a},envoy_response_code_class="5"}[15m]))${i}/sum(rate(${u}_xx{${a}}[15m]))${i}` +return this.fetchStat(o,"ER",`Percentage of ${c} requests which were 5xx status over the last 15 minutes`,(function(e){return r(e)+"%"}),this.groupByInfix(n))},fetchPercentile:function(e,t,r,n,a){var c=this.makeHTTPSelector(t,r,n,a),i=this.makeSubject(t,r,n,a),u="le" +"upstream"==a?u+=",consul_upstream_service,consul_upstream_datacenter,consul_upstream_namespace":"downstream"==a&&(u+=",consul_source_service,consul_source_datacenter,consul_source_namespace") +var o=`histogram_quantile(${e/100}, sum by(${u}) (rate(${this.metricPrefixHTTP(a)}_time_bucket{${c}}[15m])))` +return this.fetchStat(o,"P"+e,`${i} ${e}th percentile request service time over the last 15 minutes`,s,this.groupByInfix(a))},fetchConnRate:function(e,t,s,n){var a=this.makeTCPSelector(e,t,s,n),c=this.makeSubject(e,t,s,n),i=`sum(rate(${this.metricPrefixTCP(n)}_total{${a}}[15m]))` +return this.fetchStat(this.groupQuery(n,i),"CR",`${c} inbound TCP connections per second averaged over the last 15 minutes`,r,this.groupByInfix(n))},fetchServiceRx:function(e,t,s,n){var a=this.makeTCPSelector(e,t,s,n),c=this.makeSubject(e,t,s,n),i=`8 * sum(rate(${this.metricPrefixTCP(n)}_rx_bytes_total{${a}}[15m]))` +return this.fetchStat(this.groupQuery(n,i),"RX",`${c} received bits per second averaged over the last 15 minutes`,r,this.groupByInfix(n))},fetchServiceTx:function(e,t,s,n){var a=this.makeTCPSelector(e,t,s,n),c=this.makeSubject(e,t,s,n),i=`8 * sum(rate(${this.metricPrefixTCP(n)}_tx_bytes_total{${a}}[15m]))` +return this.fetchStat(this.groupQuery(n,i),"TX",`${c} transmitted bits per second averaged over the last 15 minutes`,r,this.groupByInfix(n))},fetchServiceNoRoute:function(e,t,s,n){var a=this.makeTCPSelector(e,t,s,n),c=this.makeSubject(e,t,s,n),i="_no_route" +"downstream"==n&&(i="_connect_fail") +var u=`sum(rate(${this.metricPrefixTCP(n)}${i}{${a}}[15m]))` +return this.fetchStat(this.groupQuery(n,u),"NR",`${c} unroutable (failed) connections per second averaged over the last 15 minutes`,r,this.groupByInfix(n))},fetchStat:function(e,t,r,s,n){n||(e+=" OR on() vector(0)") +var a={query:e,time:(new Date).getTime()/1e3} +return this.httpGet("/api/v1/query",a).then((function(e){if(!n){var a=parseFloat(e.data.result[0].value[1]) +return{label:t,desc:r,value:isNaN(a)?"-":s(a)}}for(var c={},i=0;i=100?e.toPrecision(3):e<1?e.toFixed(2):e.toPrecision(2)):e>=1e3&&e<1e6?+(e/1e3).toPrecision(3)+"k":e>=1e6&&e<1e9?+(e/1e6).toPrecision(3)+"m":e>=1e9&&e<1e12?+(e/1e9).toPrecision(3)+"g":e>=1e12?+(e/1e12).toFixed(0)+"t":void 0}function s(e){if(e<1e3)return Math.round(e)+"ms" +var t=e/1e3 +if(t<60)return t.toFixed(1)+"s" +var r=t/60 +if(r<60)return r.toFixed(1)+"m" +var s=r/60 +return s<24?s.toFixed(1)+"h":(s/24).toFixed(1)+"d"}window.consul.registerMetricsProvider("prometheus",t)})() diff --git a/agent/uiserver/dist/assets/vendor-69ef69e98b7d14d1513f8056b6c6b48d.css b/agent/uiserver/dist/assets/vendor-69ef69e98b7d14d1513f8056b6c6b48d.css new file mode 100644 index 0000000000..f092ac981f --- /dev/null +++ b/agent/uiserver/dist/assets/vendor-69ef69e98b7d14d1513f8056b6c6b48d.css @@ -0,0 +1 @@ +.CodeMirror{font-family:monospace;height:300px;color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:none;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark-error,.CodeMirror-lint-mark-warning{background-position:left bottom;background-repeat:repeat-x}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-marker-warning{background-position:center center;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message-error,.CodeMirror-lint-message-warning{padding-left:18px;background-position:top left;background-repeat:no-repeat}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:right bottom;width:100%;height:100%} \ No newline at end of file diff --git a/agent/uiserver/dist/assets/vendor-c7887d0a48fe1497d1843edc3d5bfbc8.js b/agent/uiserver/dist/assets/vendor-c7887d0a48fe1497d1843edc3d5bfbc8.js new file mode 100644 index 0000000000..ef24a3c6e6 --- /dev/null +++ b/agent/uiserver/dist/assets/vendor-c7887d0a48fe1497d1843edc3d5bfbc8.js @@ -0,0 +1,11488 @@ +window.EmberENV=function(e,t){for(var r in t)e[r]=t[r] +return e}(window.EmberENV||{},{FEATURES:{},EXTEND_PROTOTYPES:{Date:!1},_APPLICATION_TEMPLATE_WRAPPER:!1,_DEFAULT_ASYNC_OBSERVERS:!0,_JQUERY_INTEGRATION:!1,_TEMPLATE_ONLY_GLIMMER_COMPONENTS:!0}) +var loader,define,requireModule,require,requirejs,runningTests=!1;(function(e){"use strict" +function t(){var e=Object.create(null) +return e.__=void 0,delete e.__,e}var r={loader:loader,define:define,requireModule:requireModule,require:require,requirejs:requirejs} +requirejs=require=requireModule=function(e){for(var t=[],r=c(e,"(require)",t),n=t.length-1;n>=0;n--)t[n].exports() +return r.module.exports},loader={noConflict:function(t){var n,i +for(n in t)t.hasOwnProperty(n)&&r.hasOwnProperty(n)&&(i=t[n],e[i]=e[n],e[n]=r[n])},makeDefaultExport:!0} +var n=t(),i=(t(),0) +function o(e){throw new Error("an unsupported module was defined, expected `define(id, deps, module)` instead got: `"+e+"` arguments to define`")}var a=["require","exports","module"] +function s(e,t,r,n){this.uuid=i++,this.id=e,this.deps=!t.length&&r.length?a:t,this.module={exports:{}},this.callback=r,this.hasExportsAsDep=!1,this.isAlias=n,this.reified=new Array(t.length),this.state="new"}function l(){}function u(e){this.id=e}function c(e,t,r){for(var i=n[e]||n[e+"/index"];i&&i.isAlias;)i=n[i.id]||n[i.id+"/index"] +return i||function(e,t){throw new Error("Could not find module `"+e+"` imported from `"+t+"`")}(e,t),r&&"pending"!==i.state&&"finalized"!==i.state&&(i.findDeps(r),r.push(i)),i}function d(e,t){if("."!==e.charAt(0))return e +for(var r=e.split("/"),n=t.split("/").slice(0,-1),i=0,o=r.length;i2?arguments[2]:void 0,c=Math.min((void 0===u?a:n(u,a))-l,a-s),d=1 +for(l0;)l in o?o[s]=o[l]:delete o[s],s+=d,l+=d +return o}},{135:135,139:139,140:140}],38:[function(e,t){"use strict" +var r=e(140),n=e(135),i=e(139) +t.exports=function(e){for(var t=r(this),o=i(t.length),a=arguments.length,s=n(a>1?arguments[1]:void 0,o),l=a>2?arguments[2]:void 0,u=void 0===l?o:n(l,o);u>s;)t[s++]=e +return t}},{135:135,139:139,140:140}],39:[function(e,t){var r=e(138),n=e(139),i=e(135) +t.exports=function(e){return function(t,o,a){var s,l=r(t),u=n(l.length),c=i(a,u) +if(e&&o!=o){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===o)return e||c||0 +return!e&&-1}}},{135:135,138:138,139:139}],40:[function(e,t){var r=e(52),n=e(75),i=e(140),o=e(139),a=e(43) +t.exports=function(e,t){var s=1==e,l=2==e,u=3==e,c=4==e,d=6==e,h=5==e||d,f=t||a +return function(t,a,p){for(var m,v,g=i(t),b=n(g),y=r(a,p,3),_=o(b.length),w=0,E=s?f(t,_):l?f(t,0):void 0;_>w;w++)if((h||w in b)&&(v=y(m=b[w],w,g),e))if(s)E[w]=v +else if(v)switch(e){case 3:return!0 +case 5:return m +case 6:return w +case 2:E.push(m)}else if(c)return!1 +return d?-1:u||c?c:E}}},{139:139,140:140,43:43,52:52,75:75}],41:[function(e,t){var r=e(31),n=e(140),i=e(75),o=e(139) +t.exports=function(e,t,a,s,l){r(t) +var u=n(e),c=i(u),d=o(u.length),h=l?d-1:0,f=l?-1:1 +if(a<2)for(;;){if(h in c){s=c[h],h+=f +break}if(h+=f,l?h<0:d<=h)throw TypeError("Reduce of empty array with no initial value")}for(;l?h>=0:d>h;h+=f)h in c&&(s=t(s,c[h],h,u)) +return s}},{139:139,140:140,31:31,75:75}],42:[function(e,t){var r=e(79),n=e(77),i=e(150)("species") +t.exports=function(e){var t +return n(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!n(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},{150:150,77:77,79:79}],43:[function(e,t){var r=e(42) +t.exports=function(e,t){return new(r(e))(t)}},{42:42}],44:[function(e,t){"use strict" +var r=e(31),n=e(79),i=e(74),o=[].slice,a={},s=function(e,t,r){if(!(t in a)){for(var n=[],i=0;i1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(n(r.v,r.k,this);r&&r.r;)r=r.p},has:function(e){return!!m(f(this,t),e)}}),d&&r(c.prototype,"size",{get:function(){return f(this,t)[p]}}),c},def:function(e,t,r){var n,i,o=m(e,t) +return o?o.v=r:(e._l=o={i:i=h(t,!0),k:t,v:r,p:n=e._l,n:void 0,r:!1},e._f||(e._f=o),n&&(n.n=o),e[p]++,"F"!==i&&(e._i[i]=o)),e},getEntry:m,setStrong:function(e,t,r){l(e,t,(function(e,r){this._t=f(e,t),this._k=r,this._l=void 0}),(function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p +return this._t&&(this._l=t=t?t.n:this._t._f)?u(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,u(1))}),r?"entries":"values",!r,!0),c(t)}}},{115:115,121:121,147:147,35:35,52:52,56:56,66:66,83:83,85:85,92:92,96:96,97:97}],48:[function(e,t){"use strict" +var r=e(115),n=e(92).getWeak,i=e(36),o=e(79),a=e(35),s=e(66),l=e(40),u=e(69),c=e(147),d=l(5),h=l(6),f=0,p=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},v=function(e,t){return d(e.a,(function(e){return e[0]===t}))} +m.prototype={get:function(e){var t=v(this,e) +if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var r=v(this,e) +r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=h(this.a,(function(t){return t[0]===e})) +return~t&&this.a.splice(t,1),!!~t}},t.exports={getConstructor:function(e,t,i,l){var d=e((function(e,r){a(e,d,t,"_i"),e._t=t,e._i=f++,e._l=void 0,null!=r&&s(r,i,e[l],e)})) +return r(d.prototype,{delete:function(e){if(!o(e))return!1 +var r=n(e) +return!0===r?p(c(this,t)).delete(e):r&&u(r,this._i)&&delete r[this._i]},has:function(e){if(!o(e))return!1 +var r=n(e) +return!0===r?p(c(this,t)).has(e):r&&u(r,this._i)}}),d},def:function(e,t,r){var o=n(i(t),!0) +return!0===o?p(e).set(t,r):o[e._i]=r,e},ufstore:p}},{115:115,147:147,35:35,36:36,40:40,66:66,69:69,79:79,92:92}],49:[function(e,t){"use strict" +var r=e(68),n=e(60),i=e(116),o=e(115),a=e(92),s=e(66),l=e(35),u=e(79),c=e(62),d=e(84),h=e(122),f=e(73) +t.exports=function(e,t,p,m,v,g){var b=r[e],y=b,_=v?"set":"add",w=y&&y.prototype,E={},x=function(e){var t=w[e] +i(w,e,"delete"==e||"has"==e?function(e){return!(g&&!u(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return g&&!u(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,r){return t.call(this,0===e?0:e,r),this})} +if("function"==typeof y&&(g||w.forEach&&!c((function(){(new y).entries().next()})))){var O=new y,S=O[_](g?{}:-0,1)!=O,T=c((function(){O.has(1)})),M=d((function(e){new y(e)})),A=!g&&c((function(){for(var e=new y,t=5;t--;)e[_](t,t) +return!e.has(-0)})) +M||((y=t((function(t,r){l(t,y,e) +var n=f(new b,t,y) +return null!=r&&s(r,v,n[_],n),n}))).prototype=w,w.constructor=y),(T||A)&&(x("delete"),x("has"),v&&x("get")),(A||S)&&x(_),g&&w.clear&&delete w.clear}else y=m.getConstructor(t,e,v,_),o(y.prototype,p),a.NEED=!0 +return h(y,e),E[e]=y,n(n.G+n.W+n.F*(y!=b),E),g||m.setStrong(y,e,v),y}},{115:115,116:116,122:122,35:35,60:60,62:62,66:66,68:68,73:73,79:79,84:84,92:92}],50:[function(e,t,r){arguments[4][16][0].apply(r,arguments)},{16:16}],51:[function(e,t){"use strict" +var r=e(97),n=e(114) +t.exports=function(e,t,i){t in e?r.f(e,t,n(0,i)):e[t]=i}},{114:114,97:97}],52:[function(e,t,r){arguments[4][17][0].apply(r,arguments)},{17:17,31:31}],53:[function(e,t){"use strict" +var r=e(62),n=Date.prototype.getTime,i=Date.prototype.toISOString,o=function(e){return e>9?e:"0"+e} +t.exports=r((function(){return"0385-07-25T07:06:39.999Z"!=i.call(new Date(-50000000000001))}))||!r((function(){i.call(new Date(NaN))}))?function(){if(!isFinite(n.call(this)))throw RangeError("Invalid time value") +var e=this,t=e.getUTCFullYear(),r=e.getUTCMilliseconds(),i=t<0?"-":t>9999?"+":"" +return i+("00000"+Math.abs(t)).slice(i?-6:-4)+"-"+o(e.getUTCMonth()+1)+"-"+o(e.getUTCDate())+"T"+o(e.getUTCHours())+":"+o(e.getUTCMinutes())+":"+o(e.getUTCSeconds())+"."+(r>99?r:"0"+o(r))+"Z"}:i},{62:62}],54:[function(e,t){"use strict" +var r=e(36),n=e(141) +t.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint") +return n(r(this),"number"!=e)}},{141:141,36:36}],55:[function(e,t){t.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e) +return e}},{}],56:[function(e,t,r){arguments[4][18][0].apply(r,arguments)},{18:18,62:62}],57:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{19:19,68:68,79:79}],58:[function(e,t){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],59:[function(e,t){var r=e(105),n=e(102),i=e(106) +t.exports=function(e){var t=r(e),o=n.f +if(o)for(var a,s=o(e),l=i.f,u=0;s.length>u;)l.call(e,a=s[u++])&&t.push(a) +return t}},{102:102,105:105,106:106}],60:[function(e,t){var r=e(68),n=e(50),i=e(70),o=e(116),a=e(52),s=function(e,t,l){var u,c,d,h,f=e&s.F,p=e&s.G,m=e&s.S,v=e&s.P,g=e&s.B,b=p?r:m?r[t]||(r[t]={}):(r[t]||{}).prototype,y=p?n:n[t]||(n[t]={}),_=y.prototype||(y.prototype={}) +for(u in p&&(l=t),l)d=((c=!f&&b&&void 0!==b[u])?b:l)[u],h=g&&c?a(d,r):v&&"function"==typeof d?a(Function.call,d):d,b&&o(b,u,d,e&s.U),y[u]!=d&&i(y,u,h),v&&_[u]!=d&&(_[u]=d)} +r.core=n,s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},{116:116,50:50,52:52,68:68,70:70}],61:[function(e,t){var r=e(150)("match") +t.exports=function(e){var t=/./ +try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(i){}}return!0}},{150:150}],62:[function(e,t,r){arguments[4][21][0].apply(r,arguments)},{21:21}],63:[function(e,t){"use strict" +e(246) +var r=e(116),n=e(70),i=e(62),o=e(55),a=e(150),s=e(118),l=a("species"),u=!i((function(){var e=/./ +return e.exec=function(){var e=[] +return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),c=function(){var e=/(?:)/,t=e.exec +e.exec=function(){return t.apply(this,arguments)} +var r="ab".split(e) +return 2===r.length&&"a"===r[0]&&"b"===r[1]}() +t.exports=function(e,t,d){var h=a(e),f=!i((function(){var t={} +return t[h]=function(){return 7},7!=""[e](t)})),p=f?!i((function(){var t=!1,r=/a/ +return r.exec=function(){return t=!0,null},"split"===e&&(r.constructor={},r.constructor[l]=function(){return r}),r[h](""),!t})):void 0 +if(!f||!p||"replace"===e&&!u||"split"===e&&!c){var m=/./[h],v=d(o,h,""[e],(function(e,t,r,n,i){return t.exec===s?f&&!i?{done:!0,value:m.call(t,r,n)}:{done:!0,value:e.call(r,t,n)}:{done:!1}})),g=v[0],b=v[1] +r(String.prototype,e,g),n(RegExp.prototype,h,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}}},{116:116,118:118,150:150,246:246,55:55,62:62,70:70}],64:[function(e,t){"use strict" +var r=e(36) +t.exports=function(){var e=r(this),t="" +return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},{36:36}],65:[function(e,t){"use strict" +var r=e(77),n=e(79),i=e(139),o=e(52),a=e(150)("isConcatSpreadable") +t.exports=function e(t,s,l,u,c,d,h,f){for(var p,m,v=c,g=0,b=!!h&&o(h,f,3);g0)v=e(t,s,p,i(p.length),v,d-1)-1 +else{if(v>=9007199254740991)throw TypeError() +t[v]=p}v++}g++}return v}},{139:139,150:150,52:52,77:77,79:79}],66:[function(e,t,r){var n=e(52),i=e(81),o=e(76),a=e(36),s=e(139),l=e(151),u={},c={};(r=t.exports=function(e,t,r,d,h){var f,p,m,v,g=h?function(){return e}:l(e),b=n(r,d,t?2:1),y=0 +if("function"!=typeof g)throw TypeError(e+" is not iterable!") +if(o(g)){for(f=s(e.length);f>y;y++)if((v=t?b(a(p=e[y])[0],p[1]):b(e[y]))===u||v===c)return v}else for(m=g.call(e);!(p=m.next()).done;)if((v=i(m,b,p.value,t))===u||v===c)return v}).BREAK=u,r.RETURN=c},{139:139,151:151,36:36,52:52,76:76,81:81}],67:[function(e,t){t.exports=e(124)("native-function-to-string",Function.toString)},{124:124}],68:[function(e,t,r){arguments[4][22][0].apply(r,arguments)},{22:22}],69:[function(e,t,r){arguments[4][23][0].apply(r,arguments)},{23:23}],70:[function(e,t,r){arguments[4][24][0].apply(r,arguments)},{114:114,24:24,56:56,97:97}],71:[function(e,t){var r=e(68).document +t.exports=r&&r.documentElement},{68:68}],72:[function(e,t,r){arguments[4][25][0].apply(r,arguments)},{25:25,56:56,57:57,62:62}],73:[function(e,t){var r=e(79),n=e(120).set +t.exports=function(e,t,i){var o,a=t.constructor +return a!==i&&"function"==typeof a&&(o=a.prototype)!==i.prototype&&r(o)&&n&&n(e,o),e}},{120:120,79:79}],74:[function(e,t){t.exports=function(e,t,r){var n=void 0===r +switch(t.length){case 0:return n?e():e.call(r) +case 1:return n?e(t[0]):e.call(r,t[0]) +case 2:return n?e(t[0],t[1]):e.call(r,t[0],t[1]) +case 3:return n?e(t[0],t[1],t[2]):e.call(r,t[0],t[1],t[2]) +case 4:return n?e(t[0],t[1],t[2],t[3]):e.call(r,t[0],t[1],t[2],t[3])}return e.apply(r,t)}},{}],75:[function(e,t){var r=e(46) +t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},{46:46}],76:[function(e,t){var r=e(86),n=e(150)("iterator"),i=Array.prototype +t.exports=function(e){return void 0!==e&&(r.Array===e||i[n]===e)}},{150:150,86:86}],77:[function(e,t){var r=e(46) +t.exports=Array.isArray||function(e){return"Array"==r(e)}},{46:46}],78:[function(e,t){var r=e(79),n=Math.floor +t.exports=function(e){return!r(e)&&isFinite(e)&&n(e)===e}},{79:79}],79:[function(e,t,r){arguments[4][26][0].apply(r,arguments)},{26:26}],80:[function(e,t){var r=e(79),n=e(46),i=e(150)("match") +t.exports=function(e){var t +return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==n(e))}},{150:150,46:46,79:79}],81:[function(e,t){var r=e(36) +t.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(a){var o=e.return +throw void 0!==o&&r(o.call(e)),a}}},{36:36}],82:[function(e,t){"use strict" +var r=e(96),n=e(114),i=e(122),o={} +e(70)(o,e(150)("iterator"),(function(){return this})),t.exports=function(e,t,a){e.prototype=r(o,{next:n(1,a)}),i(e,t+" Iterator")}},{114:114,122:122,150:150,70:70,96:96}],83:[function(e,t){"use strict" +var r=e(87),n=e(60),i=e(116),o=e(70),a=e(86),s=e(82),l=e(122),u=e(103),c=e(150)("iterator"),d=!([].keys&&"next"in[].keys()),h=function(){return this} +t.exports=function(e,t,f,p,m,v,g){s(f,t,p) +var b,y,_,w=function(e){if(!d&&e in S)return S[e] +switch(e){case"keys":case"values":return function(){return new f(this,e)}}return function(){return new f(this,e)}},E=t+" Iterator",x="values"==m,O=!1,S=e.prototype,T=S[c]||S["@@iterator"]||m&&S[m],M=T||w(m),A=m?x?w("entries"):M:void 0,P="Array"==t&&S.entries||T +if(P&&(_=u(P.call(new e)))!==Object.prototype&&_.next&&(l(_,E,!0),r||"function"==typeof _[c]||o(_,c,h)),x&&T&&"values"!==T.name&&(O=!0,M=function(){return T.call(this)}),r&&!g||!d&&!O&&S[c]||o(S,c,M),a[t]=M,a[E]=h,m)if(b={values:x?M:w("values"),keys:v?M:w("keys"),entries:A},g)for(y in b)y in S||i(S,y,b[y]) +else n(n.P+n.F*(d||O),t,b) +return b}},{103:103,116:116,122:122,150:150,60:60,70:70,82:82,86:86,87:87}],84:[function(e,t){var r=e(150)("iterator"),n=!1 +try{var i=[7][r]() +i.return=function(){n=!0},Array.from(i,(function(){throw 2}))}catch(o){}t.exports=function(e,t){if(!t&&!n)return!1 +var i=!1 +try{var a=[7],s=a[r]() +s.next=function(){return{done:i=!0}},a[r]=function(){return s},e(a)}catch(o){}return i}},{150:150}],85:[function(e,t){t.exports=function(e,t){return{value:t,done:!!e}}},{}],86:[function(e,t){t.exports={}},{}],87:[function(e,t){t.exports=!1},{}],88:[function(e,t){var r=Math.expm1 +t.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:Math.exp(e)-1}:r},{}],89:[function(e,t){var r=e(91),n=Math.pow,i=n(2,-52),o=n(2,-23),a=n(2,127)*(2-o),s=n(2,-126) +t.exports=Math.fround||function(e){var t,n,l=Math.abs(e),u=r(e) +return la||n!=n?u*(1/0):u*n}},{91:91}],90:[function(e,t){t.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Math.log(1+e)}},{}],91:[function(e,t){t.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},{}],92:[function(e,t){var r=e(145)("meta"),n=e(79),i=e(69),o=e(97).f,a=0,s=Object.isExtensible||function(){return!0},l=!e(62)((function(){return s(Object.preventExtensions({}))})),u=function(e){o(e,r,{value:{i:"O"+ ++a,w:{}}})},c=t.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!n(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e +if(!i(e,r)){if(!s(e))return"F" +if(!t)return"E" +u(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!s(e))return!0 +if(!t)return!1 +u(e)}return e[r].w},onFreeze:function(e){return l&&c.NEED&&s(e)&&!i(e,r)&&u(e),e}}},{145:145,62:62,69:69,79:79,97:97}],93:[function(e,t){var r=e(68),n=e(134).set,i=r.MutationObserver||r.WebKitMutationObserver,o=r.process,a=r.Promise,s="process"==e(46)(o) +t.exports=function(){var e,t,l,u=function(){var r,n +for(s&&(r=o.domain)&&r.exit();e;){n=e.fn,e=e.next +try{n()}catch(i){throw e?l():t=void 0,i}}t=void 0,r&&r.enter()} +if(s)l=function(){o.nextTick(u)} +else if(!i||r.navigator&&r.navigator.standalone)if(a&&a.resolve){var c=a.resolve(void 0) +l=function(){c.then(u)}}else l=function(){n.call(r,u)} +else{var d=!0,h=document.createTextNode("") +new i(u).observe(h,{characterData:!0}),l=function(){h.data=d=!d}}return function(r){var n={fn:r,next:void 0} +t&&(t.next=n),e||(e=n,l()),t=n}}},{134:134,46:46,68:68}],94:[function(e,t){"use strict" +var r=e(31) +function n(e){var t,n +this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor") +t=e,n=r})),this.resolve=r(t),this.reject=r(n)}t.exports.f=function(e){return new n(e)}},{31:31}],95:[function(e,t){"use strict" +var r=e(56),n=e(105),i=e(102),o=e(106),a=e(140),s=e(75),l=Object.assign +t.exports=!l||e(62)((function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst" +return e[r]=7,n.split("").forEach((function(e){t[e]=e})),7!=l({},e)[r]||Object.keys(l({},t)).join("")!=n}))?function(e){for(var t=a(e),l=arguments.length,u=1,c=i.f,d=o.f;l>u;)for(var h,f=s(arguments[u++]),p=c?n(f).concat(c(f)):n(f),m=p.length,v=0;m>v;)h=p[v++],r&&!d.call(f,h)||(t[h]=f[h]) +return t}:l},{102:102,105:105,106:106,140:140,56:56,62:62,75:75}],96:[function(e,t){var r=e(36),n=e(98),i=e(58),o=e(123)("IE_PROTO"),a=function(){},s=function(){var t,r=e(57)("iframe"),n=i.length +for(r.style.display="none",e(71).appendChild(r),r.src="javascript:",(t=r.contentWindow.document).open(),t.write(" + + + + + + +{{if .ACLsEnabled}} + +{{end}} +{{if .PartitionsEnabled}} + + +{{end}} +{{if .NamespacesEnabled}} + +{{end}} + + + + + + + {{ range .ExtraScripts }} {{ end }} + + + +
+ + diff --git a/agent/uiserver/dist/oidc/callback b/agent/uiserver/dist/oidc/callback new file mode 100644 index 0000000000..ad9923478c --- /dev/null +++ b/agent/uiserver/dist/oidc/callback @@ -0,0 +1,19 @@ + + + + + Consul + + + diff --git a/agent/uiserver/dist/robots.txt b/agent/uiserver/dist/robots.txt new file mode 100644 index 0000000000..217b42f0e0 --- /dev/null +++ b/agent/uiserver/dist/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: / diff --git a/agent/uiserver/dist/torii/redirect.html b/agent/uiserver/dist/torii/redirect.html new file mode 100644 index 0000000000..b58b7a2680 --- /dev/null +++ b/agent/uiserver/dist/torii/redirect.html @@ -0,0 +1,19 @@ + + + + + Torii OAuth Redirect + + + diff --git a/agent/uiserver/redirect_fs.go b/agent/uiserver/redirect_fs.go index 106f004528..3f6a8956dc 100644 --- a/agent/uiserver/redirect_fs.go +++ b/agent/uiserver/redirect_fs.go @@ -1,21 +1,23 @@ package uiserver -import "net/http" +import ( + "io/fs" +) -// redirectFS is an http.FS that serves the index.html file for any path that is +// redirectFS is an fs.FS that serves the index.html file for any path that is // not found on the underlying FS. // // TODO: it seems better to actually 404 bad paths or at least redirect them // rather than pretend index.html is everywhere but this is behavior changing // so I don't want to take it on as part of this refactor. type redirectFS struct { - fs http.FileSystem + fs fs.FS } -func (fs *redirectFS) Open(name string) (http.File, error) { +func (fs *redirectFS) Open(name string) (fs.File, error) { file, err := fs.fs.Open(name) if err != nil { - file, err = fs.fs.Open("/index.html") + file, err = fs.fs.Open("index.html") } return file, err } diff --git a/agent/uiserver/ui_template_data.go b/agent/uiserver/ui_template_data.go index bb262861a4..97dcbf51d1 100644 --- a/agent/uiserver/ui_template_data.go +++ b/agent/uiserver/ui_template_data.go @@ -31,6 +31,7 @@ func uiTemplateDataFromConfig(cfg *config.RuntimeConfig) (map[string]interface{} d := map[string]interface{}{ "ContentPath": cfg.UIConfig.ContentPath, "ACLsEnabled": cfg.ACLsEnabled, + "HCPEnabled": cfg.UIConfig.HCPEnabled, "UIConfig": uiCfg, "LocalDatacenter": cfg.Datacenter, "PrimaryDatacenter": cfg.PrimaryDatacenter, diff --git a/agent/uiserver/uiserver.go b/agent/uiserver/uiserver.go index 8a8bf7d01d..7393a6ead9 100644 --- a/agent/uiserver/uiserver.go +++ b/agent/uiserver/uiserver.go @@ -2,9 +2,11 @@ package uiserver import ( "bytes" + "embed" "encoding/json" "fmt" - "io/ioutil" + "io" + "io/fs" "net/http" "os" "path" @@ -22,8 +24,11 @@ const ( compiledProviderJSPath = "assets/compiled-metrics-providers.js" ) +//go:embed dist +var dist embed.FS + // Handler is the http.Handler that serves the Consul UI. It may serve from the -// compiled-in AssetFS or from and external dir. It provides a few important +// embedded fs.FS or from an external directory. It provides a few important // transformations on the index.html file and includes a proxy for metrics // backends. type Handler struct { @@ -87,15 +92,20 @@ func (h *Handler) ReloadConfig(newCfg *config.RuntimeConfig) error { func (h *Handler) handleIndex() (http.Handler, error) { cfg := h.getRuntimeConfig() - var fs http.FileSystem + var fsys fs.FS if cfg.UIConfig.Dir == "" { - fs = assetFS() + // strip the dist/ prefix + sub, err := fs.Sub(dist, "dist") + if err != nil { + return nil, err + } + fsys = sub } else { - fs = http.Dir(cfg.UIConfig.Dir) + fsys = os.DirFS(cfg.UIConfig.Dir) } // Render a new index.html with the new config values ready to serve. - buf, info, err := h.renderIndex(cfg, fs) + buf, err := h.renderIndexFile(cfg, fsys) if _, ok := err.(*os.PathError); ok && cfg.UIConfig.Dir != "" { // A Path error indicates that there is no index.html. This could happen if // the user configured their own UI dir and is serving something that is not @@ -105,24 +115,23 @@ func (h *Handler) handleIndex() (http.Handler, error) { // breaking change although quite an edge case. Instead, continue but just // return a 404 response for the index.html and log a warning. h.logger.Warn("ui_config.dir does not contain an index.html. Index templating and redirects to index.html are disabled.") - return http.FileServer(fs), nil + return http.FileServer(http.FS(fsys)), nil } if err != nil { return nil, err } - // Create a new fs that serves the rendered index file or falls back to the + // Create a new fsys that serves the rendered index file or falls back to the // underlying FS. - fs = &bufIndexFS{ - fs: fs, - indexRendered: buf, - indexInfo: info, + fsys = &bufIndexFS{ + fs: fsys, + bufIndex: buf, } // Wrap the buffering FS our redirect FS. This needs to happen later so that // redirected requests for /index.html get served the rendered version not the // original. - return http.FileServer(&redirectFS{fs: fs}), nil + return http.FileServer(http.FS(&redirectFS{fs: fsys})), nil } // getRuntimeConfig is a helper to atomically access the runtime config. @@ -186,33 +195,34 @@ func concatFile(buf *bytes.Buffer, file string) error { return nil } -func (h *Handler) renderIndex(cfg *config.RuntimeConfig, fs http.FileSystem) ([]byte, os.FileInfo, error) { +func (h *Handler) renderIndexFile(cfg *config.RuntimeConfig, fsys fs.FS) (fs.File, error) { // Open the original index.html - f, err := fs.Open("/index.html") + f, err := fsys.Open("index.html") if err != nil { - return nil, nil, err + return nil, err } defer f.Close() - content, err := ioutil.ReadAll(f) + content, err := io.ReadAll(f) if err != nil { - return nil, nil, fmt.Errorf("failed reading index.html: %w", err) + return nil, fmt.Errorf("failed reading index.html: %w", err) } + info, err := f.Stat() if err != nil { - return nil, nil, fmt.Errorf("failed reading metadata for index.html: %w", err) + return nil, fmt.Errorf("failed reading metadata for index.html: %w", err) } // Create template data from the current config. tplData, err := uiTemplateDataFromConfig(cfg) if err != nil { - return nil, nil, fmt.Errorf("failed loading UI config for template: %w", err) + return nil, fmt.Errorf("failed loading UI config for template: %w", err) } // Allow caller to apply additional data transformations if needed. if h.transform != nil { if err := h.transform(tplData); err != nil { - return nil, nil, fmt.Errorf("failed running transform: %w", err) + return nil, fmt.Errorf("failed running transform: %w", err) } } @@ -226,15 +236,16 @@ func (h *Handler) renderIndex(cfg *config.RuntimeConfig, fs http.FileSystem) ([] }, }).Parse(string(content)) if err != nil { - return nil, nil, fmt.Errorf("failed parsing index.html template: %w", err) + return nil, fmt.Errorf("failed parsing index.html template: %w", err) } var buf bytes.Buffer err = tpl.Execute(&buf, tplData) if err != nil { - return nil, nil, fmt.Errorf("failed to render index.html: %w", err) + return nil, fmt.Errorf("failed to render index.html: %w", err) } - return buf.Bytes(), info, nil + file := newBufferedFile(&buf, info) + return file, nil } diff --git a/agent/uiserver/uiserver_test.go b/agent/uiserver/uiserver_test.go index 73d38df7ce..97835f2b02 100644 --- a/agent/uiserver/uiserver_test.go +++ b/agent/uiserver/uiserver_test.go @@ -39,6 +39,7 @@ func TestUIServerIndex(t *testing.T) { wantContains: []string{" ### Sample Payload @@ -506,3 +506,15 @@ $ curl \ --data @payload.json \ http://127.0.0.1:8500/v1/agent/check/update/my-check-id ``` + +## Methods to Specify Namespace + +Local agent health check endpoints +support several methods for specifying the namespace of the check resources +with the following order of precedence: +1. `Namespace` field of the JSON request body - + only applies to the [register](#register-check) endpoint +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/agent/connect.mdx b/website/content/api-docs/agent/connect.mdx index 0570070e5f..62de4e67c5 100644 --- a/website/content/api-docs/agent/connect.mdx +++ b/website/content/api-docs/agent/connect.mdx @@ -52,7 +52,12 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | -------------------- | --------------- | | `NO` | `none` | `background refresh` | `service:write` | -### Parameters +### Query Parameters + +- `ns` `(string: "")` - Specifies the namespace of the target service. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). + +### JSON Request Body Schema - `Target` `(string: )` - The name of the service that is being requested. @@ -65,10 +70,8 @@ The table below shows this endpoint's support for number for the requesting client cert. - `Namespace` `(string: "")` - Specifies the namespace of - the target service. If not provided in the JSON body, the value of - the `ns` URL query parameter or in the `X-Consul-Namespace` header will be used. - If not provided, the namespace will be inherited from the request's ACL - token or will default to the `default` namespace. Added in Consul 1.7.0. + the target service. This field takes precedence over the `ns` query parameter, + one of several [other methods to specify the namespace](#methods-to-specify-namespace). ### Sample Payload @@ -192,17 +195,15 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | -------------------- | --------------- | | `YES` | `all` | `background refresh` | `service:write` | -### Parameters +### Path Parameters -- `Service` `(string: )` - The name of the service for the leaf - certificate. This is specified in the URL. The service does not need to - exist in the catalog, but the proper ACL permissions must be available. +- `service` `(string: )` - The name of the service for the leaf certificate. + The service does not need to exist in the catalog, but the proper ACL permissions must be available. -- `ns` `(string: "")` - Specifies the namespace in - which to request the leaf certificate. This value can be specified as the `ns` - URL query parameter or the `X-Consul-Namespace` header. If not provided by either, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. +### Query Parameters + +- `ns` `(string: "")` - Specifies the namespace of the leaf certificate you request. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -244,3 +245,15 @@ $ curl \ - `ValidBefore` `(string)` - The time before which the certificate is valid. Used with `ValidAfter` this can determine the validity period of the certificate. + +## Methods to Specify Namespace + +Local agent connect endpoints +support several methods for specifying the namespace of resources +with the following order of precedence: +1. `Namespace` field of the JSON request body - + only applies to the [register](#register-check) endpoint +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/agent/index.mdx b/website/content/api-docs/agent/index.mdx index e5f91b4685..61442236c1 100644 --- a/website/content/api-docs/agent/index.mdx +++ b/website/content/api-docs/agent/index.mdx @@ -231,11 +231,11 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul members`](/commands/members). -### Parameters +### Query Parameters - `wan` `(bool: false)` - Specifies to list WAN members instead of the LAN members (which is the default). This is only eligible for agents running in - **server mode**. This is specified as part of the URL as a query parameter. + **server mode**. - `segment` `(string: "")` - Specifies the segment to list members for. If left blank, this will query for the default segment when connecting to a server and @@ -412,17 +412,15 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul maint`](/commands/maint). -### Parameters +### Query Parameters - `enable` `(bool: )` - Specifies whether to enable or disable - maintenance mode. This is specified as part of the URL as a query string - parameter. + maintenance mode. - `reason` `(string: "")` - Specifies a text string explaining the reason for placing the node into maintenance mode. This is simply to aid human operators. - If no reason is provided, a default value will be used instead. This is - specified as part of the URL as a query string parameter, and, as such, must - be URI-encoded. + If no reason is provided, a default value is used instead. + This parameter must be URI-encoded. ### Sample Request @@ -593,10 +591,11 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `NO` | `none` | `none` | `agent:read` | -### Parameters +### Query Parameters - `loglevel` `(string: "info")` - Specifies a text string containing a log level to filter on, such as `info`. + - `logjson` `(bool: false)` - Specifies whether the logs will be output in JSON format. @@ -639,14 +638,14 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul join`](/commands/join). -### Parameters +### Path Parameters -- `address` `(string: )` - Specifies the address of the other agent to - join. This is specified as part of the URL. +- `address` `(string: )` - Specifies the address of the other agent to join. + +### Query Parameters - `wan` `(bool: false)` - Specifies to try and join over the WAN pool. This is - only optional for agents running in server mode. This is specified as part of - the URL as a query parameter + only optional for agents running in server mode. ### Sample Request @@ -697,16 +696,16 @@ LAN and WAN gossip pools. If a node fails unexpectedly, then it will be in a `fa belonging to that node will not be cleaned up. Forcing a node into the `left` state allows its old entries to be removed. -| Method | Path | Produces | -| ------ | -------------------------- | ------------------ | -| `PUT` | `/agent/force-leave/:node` | `application/json` | +| Method | Path | Produces | +| ------ | ------------------------------- | ------------------ | +| `PUT` | `/agent/force-leave/:node_name` | `application/json` | Additionally, by specifying the `prune` flag, a node can be forcibly removed from the list of members entirely. -| Method | Path | Produces | -| ------ | -------------------------------- | ------------------ | -| `PUT` | `/agent/force-leave/:node?prune` | `application/json` | +| Method | Path | Produces | +| ------ | ------------------------------------- | ------------------ | +| `PUT` | `/agent/force-leave/:node_name?prune` | `application/json` | The table below shows this endpoint's support for [blocking queries](/api-docs/features/blocking), @@ -720,17 +719,18 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul force-leave`](/commands/force-leave). -### Parameters +### Path Parameters -- `node` `(string: )` - Specifies the name of the node to be forced into `left` state. This is specified as part of the URL. +- `node_name` `(string: )` - Specifies the name of the node to be forced into `left` state. + +### Query Parameters - `prune` `(bool: false)` - Specifies whether to forcibly remove the node from the list of members. Pruning a node in the `left` or `failed` state removes it from the list altogether. - This is specified as part of the URL as a query parameter. Added in Consul 1.6.2. + Added in Consul 1.6.2. - `wan` `(bool: false)` - Specifies the node should only be removed from the WAN - gossip pool. This is specified as part of the URL as a query parameter. Added - in Consul 1.11.0. + gossip pool. Added in Consul 1.11.0. ### Sample Request @@ -796,7 +796,7 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul acl set-agent-token`](/commands/acl/set-agent-token). -### Parameters +### JSON Request Body Schema - `Token` `(string: "")` - Specifies the ACL token to set. diff --git a/website/content/api-docs/agent/service.mdx b/website/content/api-docs/agent/service.mdx index 9254bfd05c..8c61002d48 100644 --- a/website/content/api-docs/agent/service.mdx +++ b/website/content/api-docs/agent/service.mdx @@ -39,16 +39,13 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | -------------- | | `NO` | `none` | `none` | `service:read` | -### Parameters +### Query Parameters - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. -- `ns` `(string: "")` - Specifies the namespace in which - to list services. This value can be specified as the `ns` URL query - parameter or the `X-Consul-Namespace` header. If not provided by either, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. +- `ns` `(string: "")` - Return only the services in the specified namespace. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -162,16 +159,14 @@ The table below shows this endpoint's support for hash-based blocking
only. -### Parameters +### Path Parameters -- `service_id` `(string: )` - Specifies the ID of the service to - fetch. This is specified as part of the URL. +- `service_id` `(string: )` - Specifies the ID of the service to fetch. -- `ns` `(string: "")` - Specifies the namespace to lookup - the service's configuration. This value can be specified as the `ns` URL query - parameter or the `X-Consul-Namespace` header. If not provided by either, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. +### Query Parameters + +- `ns` `(string: "")` - Specifies the namespace of the service you lookup. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -262,17 +257,6 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | -------------- | | `NO` | `none` | `none` | `service:read` | -### Parameters - -- `service_name` `(string: )` - Specifies the name of the service to - retrieve. This is specified as part of the URL. - -- `ns` `(string: "")` - Specifies the namespace to lookup - the service's health data. This value can be specified as the `ns` URL query - parameter or the `X-Consul-Namespace` header. If not provided by either, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. - Those endpoints return the aggregated values of all health checks for the service instance(s) and will return the corresponding HTTP codes: @@ -299,6 +283,15 @@ so you have the result for the service only. When requesting `/v1/agent/health/service/name/:service_name`, the caller will receive the worst state of all services having the given name. +### Path Parameters + +- `service_name` `(string: )` - Specifies the name of the service to retrieve. + +### Query Parameters + +- `ns` `(string: "")` - Specifies the namespace of the service you lookup. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). + ### Sample Requests Given 2 services with name `web`, with web2 critical and web1 passing: @@ -597,11 +590,14 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul services register`](/commands/services/register). -### Query string parameters +### Query Parameters - `replace-existing-checks` - Missing health checks from the request will be deleted from the agent. Using this parameter allows to idempotently register a service and its checks without having to manually deregister checks. -### Parameters +- `ns` `(string: "")` - Specifies the namespace of the service you register. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). + +### JSON Request Body Schema Note that this endpoint, unlike most also [supports `snake_case`](/docs/discovery/services#service-definition-parameter-case) service definition keys for compatibility with the config file format. @@ -630,11 +626,9 @@ service definition keys for compatibility with the config file format. - `Meta` `(map: nil)` - Specifies arbitrary KV metadata linked to the service instance. -- `ns` `(string: "")` - Specifies the namespace in - which to register the service. This value can be specified as the `ns` URL query - parameter or the `X-Consul-Namespace` header. If not provided by either, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. +- `Namespace` `(string: "")` - Specifies the namespace of the service you register. + This field takes precedence over the `ns` query parameter, + one of several [other methods to specify the namespace](#methods-to-specify-namespace). - `Port` `(int: 0)` - Specifies the port of the service. @@ -772,16 +766,14 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul services deregister`](/commands/services/deregister). -### Parameters +### Path Parameters -- `service_id` `(string: )` - Specifies the ID of the service to - deregister. This is specified as part of the URL. +- `service_id` `(string: )` - Specifies the ID of the service to deregister. -- `ns` `(string: "")` - Specifies the namespace in which - to deregister the service. This value can be specified as the `ns` URL query - parameter or the `X-Consul-Namespace` header. If not provided by either, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. +### Query Parameters + +- `ns` `(string: "")` - Specifies the namespace of the service you deregister. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -812,26 +804,23 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | --------------- | | `NO` | `none` | `none` | `service:write` | -### Parameters +### Path Parameters -- `service_id` `(string: )` - Specifies the ID of the service to put - in maintenance mode. This is specified as part of the URL. +- `service_id` `(string: )` - Specifies the ID of the service to put in maintenance mode. + +### Query Parameters - `enable` `(bool: )` - Specifies whether to enable or disable maintenance mode. This is specified as part of the URL as a query string parameter. -- `ns` `(string: "")` - Specifies the namespace - of the service to place into maintenance mode. This value can be specified as - the `ns` URL query parameter or the `X-Consul-Namespace` header. If not provided - by either, the namespace will be inherited from the request's ACL token or will - default to the `default` namespace. Added in Consul 1.7.0. - - `reason` `(string: "")` - Specifies a text string explaining the reason for placing the node into maintenance mode. This is simply to aid human operators. - If no reason is provided, a default value will be used instead. This is - specified as part of the URL as a query string parameter, and, as such, must - be URI-encoded. + If no reason is provided, a default value is used instead. + This parameter must be URI-encoded. + +- `ns` `(string: "")` - Specifies the namespace of the service you place into maintenance mode. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -840,3 +829,15 @@ $ curl \ --request PUT \ http://127.0.0.1:8500/v1/agent/service/maintenance/my-service-id?enable=true&reason=For+the+docs ``` + +## Methods to Specify Namespace + +Local agent service endpoints +support several methods for specifying the namespace of service resources +with the following order of precedence: +1. `Namespace` field of the JSON request body - + only applies to the [register](#register-check) endpoint +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/catalog.mdx b/website/content/api-docs/catalog.mdx index 4b2e93033c..b259176850 100644 --- a/website/content/api-docs/catalog.mdx +++ b/website/content/api-docs/catalog.mdx @@ -33,7 +33,12 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | -------------------------- | | `NO` | `none` | `none` | `node:write,service:write` | -### Parameters +### Query Parameters + +- `ns` `(string: "")` - Specifies the namespace of the service and checks you register. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). + +### JSON Request Body Schema - `ID` `(string: "")` - An optional UUID to assign to the node. This must be a 36-character UUID-formatted string. @@ -87,13 +92,9 @@ The table below shows this endpoint's support for already registered. Note, if the parameter is enabled for a node that doesn't exist, it will still be created. -- `ns` `(string: "")` - Specifies the namespace in which the - service and checks will be registered. This value may be provided by either the - `ns` URL query parameter or in the `X-Consul-Namespace` header. Additionally, - the namespace may be provided within the `Service` or `Check` fields but if - present in multiple places, they must all be the same. If not provided, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. +- `Namespace` `(string: "")` - Specifies the namespace of the service and checks you register. + This field takes precedence over the `ns` query parameter, + one of several [other methods to specify the namespace](#methods-to-specify-namespace). It is important to note that `Check` does not have to be provided with `Service` and vice versa. A catalog entry can have either, neither, or both. @@ -184,7 +185,12 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | -------------------------- | | `NO` | `none` | `none` | `node:write,service:write` | -### Parameters +### Query Parameters + +- `ns` `(string: "")` - Specifies the namespace of the service and checks you deregister. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). + +### JSON Request Body Schema The behavior of the endpoint depends on what keys are provided. @@ -195,16 +201,16 @@ The behavior of the endpoint depends on what keys are provided. - `Datacenter` `(string: "")` - Specifies the datacenter, which defaults to the agent's datacenter if not provided. -- `CheckID` `(string: "")` - Specifies the ID of the check to remove. +- `CheckID` `(string: "")` - Specifies the ID of the check to remove. - `ServiceID` `(string: "")` - Specifies the ID of the service to remove. The service and all associated checks will be removed. -- `Namespace` `(string: "")` - Specifies the namespace in which the - service and checks will be deregistered. If not provided in the JSON body, the value of - the `ns` URL query parameter or the `X-Consul-Namespace` header will be used. - If not provided, the namespace will be inherited from the request's ACL - token or will default to the `default` namespace. Added in Consul 1.7.0. +- `Namespace` `(string: "")` - Specifies the namespace of the service and checks you deregister. + This field takes precedence over the `ns` query parameter, + one of several [other methods to specify the namespace](#methods-to-specify-namespace). + You can also specify the namespace in the `Service` or `Check` fields; + if namespaces are specified in multiple places, they must all be the same. ### Sample Payloads @@ -303,23 +309,20 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul catalog nodes`](/commands/catalog/nodes). -### Parameters +### Query Parameters -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. +- `dc` `(string: "")` - Specifies the datacenter to query. + This parameter defaults to the datacenter of the agent being queried. - `near` `(string: "")` - Specifies a node name to sort the node list in ascending order based on the estimated round trip time from that node. Passing - `?near=_agent` will use the agent's node for the sort. This is specified as - part of the URL as a query parameter. + `?near=_agent` uses the agent's node for the sort. - `node-meta` `(string: "")` **Deprecated** - Use `filter` with the `Meta` selector instead. This parameter will be removed in a future version of Consul. Specifies a desired node metadata key/value pair of the form `key:value`. This parameter can be specified multiple times, and - will filter the results to nodes with the specified key/value pairs. This is - specified as part of the URL as a query parameter. + filters the results to nodes with the specified key/value pairs. - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. @@ -402,21 +405,17 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul catalog services`](/commands/catalog/services). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `node-meta` `(string: "")` - Specifies a desired node metadata key/value pair of the form `key:value`. This parameter can be specified multiple times, and - will filter the results to nodes with the specified key/value pairs. This is - specified as part of the URL as a query parameter. + filters the results to nodes with the specified key/value pairs. -- `ns` `(string: "")` - Specifies the namespace to list services. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. +- `ns` `(string: "")` - Specifies the namespace of the services you lookup. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -444,9 +443,9 @@ This endpoint returns the nodes providing a service in a given datacenter. @include 'http_api_results_filtered_by_acls.mdx' -| Method | Path | Produces | -| ------ | --------------------------- | ------------------ | -| `GET` | `/catalog/service/:service` | `application/json` | +| Method | Path | Produces | +| ------ | -------------------------------- | ------------------ | +| `GET` | `/catalog/service/:service_name` | `application/json` | The table below shows this endpoint's support for [blocking queries](/api-docs/features/blocking), @@ -458,40 +457,37 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | -------------------- | ------------------------ | | `YES` | `all` | `background refresh` | `node:read,service:read` | -### Parameters +### Path Parameters -- `service` `(string: )` - Specifies the name of the service for which - to list nodes. This is specified as part of the URL. +- `service_name` `(string: )` - Specifies the name of the service for which + to list nodes. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `tag` `(string: "")` **Deprecated** - Use `filter` with the `ServiceTags` selector instead. This parameter will be removed in a future version of Consul. - Specifies the tag to filter on. This is specified as part of - the URL as a query parameter. Can be used multiple times for additional filtering, + Specifies the tag to filter on. + Can be used multiple times for additional filtering, returning only the results that include all of the tag values provided. - `near` `(string: "")` - Specifies a node name to sort the node list in ascending order based on the estimated round trip time from that node. Passing - `?near=_agent` will use the agent's node for the sort. This is specified as - part of the URL as a query parameter. + `?near=_agent` uses the agent's node for the sort. - `node-meta` `(string: "")` **Deprecated** - Use `filter` with the `NodeMeta` selector instead. This parameter will be removed in a future version of Consul. Specifies a desired node metadata key/value pair of the form `key:value`. This parameter can be specified multiple times, and - will filter the results to nodes with the specified key/value pairs. This is - specified as part of the URL as a query parameter. + filters the results to nodes with the specified key/value pairs. - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. -- `ns` `(string: "")` - Specifies the namespace to use for the - query. This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. +- `ns` `(string: "")` - Specifies the namespace of the services you lookup. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -664,7 +660,7 @@ so this endpoint may be used to filter only the Connect-capable endpoints. | `GET` | `/catalog/connect/:service` | `application/json` | Parameters and response format are the same as -[`/catalog/service/:service`](/api-docs/catalog#list-nodes-for-service). +[`/catalog/service/:service_name`](/api-docs/catalog#list-nodes-for-service). ## Retrieve Map of Services for a Node @@ -672,9 +668,9 @@ This endpoint returns the node's registered services. @include 'http_api_results_filtered_by_acls.mdx' -| Method | Path | Produces | -| ------ | --------------------- | ------------------ | -| `GET` | `/catalog/node/:node` | `application/json` | +| Method | Path | Produces | +| ------ | -------------------------- | ------------------ | +| `GET` | `/catalog/node/:node_name` | `application/json` | The table below shows this endpoint's support for [blocking queries](/api-docs/features/blocking), @@ -686,22 +682,20 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------------------ | | `YES` | `all` | `none` | `node:read,service:read` | -### Parameters +### Path Parameters -- `node` `(string: )` - Specifies the name of the node for which - to list services. This is specified as part of the URL. +- `node_name` `(string: )` - Specifies the name of the node to list services for. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. -- `ns` `(string: "")` - Specifies the namespace to list services. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. +- `ns` `(string: "")` - Specifies the namespace of the services you lookup. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -803,9 +797,9 @@ This endpoint returns the node's registered services. @include 'http_api_results_filtered_by_acls.mdx' -| Method | Path | Produces | -| ------ | ------------------------------ | ------------------ | -| `GET` | `/catalog/node-services/:node` | `application/json` | +| Method | Path | Produces | +| ------ | ----------------------------------- | ------------------ | +| `GET` | `/catalog/node-services/:node_name` | `application/json` | The table below shows this endpoint's support for [blocking queries](/api-docs/features/blocking), @@ -817,23 +811,21 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------------------ | | `YES` | `all` | `none` | `node:read,service:read` | -### Parameters +### Path Parameters -- `node` `(string: )` - Specifies the name of the node for which - to list services. This is specified as part of the URL. +- `node_name` `(string: )` - Specifies the name of the node to list services for. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. -- `ns` `(string: "")` - Specifies the namespace to list services. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. The `*` - wildcard may be used and then services from all namespaces will be returned. Added in Consul 1.7.0. +- `ns` `(string: "")` - Specifies the namespace of the services you lookup. + The namespace may be specified as '\*' to return results for all namespaces. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -953,20 +945,18 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | -------------- | | `YES` | `all` | `none` | `service:read` | -### Parameters +### Path Parameters -- `gateway` `(string: )` - Specifies the name of the node for which - to list services. This is specified as part of the URL. +- `gateway` `(string: )` - Specifies the name of the node to list services for. -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. +### Query Parameters -- `ns` `(string: "")` - Specifies the namespace of the gateway. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. The `*` - wildcard may be used and then services from all namespaces will be returned. Added in Consul 1.7.0. +- `dc` `(string: "")` - Specifies the datacenter to query. + This parameter defaults to the datacenter of the agent being queried. + +- `ns` `(string: "")` - Specifies the namespace of the services you lookup. + The namespace may be specified as '\*' to return results for all namespaces. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -1075,3 +1065,15 @@ $ curl \ - `FromWildcard` determines whether the service was associated with the gateway by providing a wildcard specifier in the gateway's configuration entry + +## Methods to Specify Namespace + +Catalog endpoints +support several methods for specifying the namespace of resources +with the following order of precedence: +1. `Namespace` field of the JSON request body - + only applies to the [register entity](#register-entity) endpoint +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/config.mdx b/website/content/api-docs/config.mdx index 9a28880c60..5b6c446808 100644 --- a/website/content/api-docs/config.mdx +++ b/website/content/api-docs/config.mdx @@ -50,22 +50,18 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul config write`](/commands/config/write). -### Parameters +### Query Parameters -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. +- `dc` `(string: "")` - Specifies the datacenter to query. + This parameter defaults to the datacenter of the agent being queried. - `cas` `(int: 0)` - Specifies to use a Check-And-Set operation. If the index is 0, Consul will only store the entry if it does not already exist. If the index is non-zero, the entry is only set if the current index matches the `ModifyIndex` of that entry. -- `ns` `(string: "")` - Specifies the namespace the config - entry will apply to. This value may be provided by either the `ns` URL query - parameter or in the `X-Consul-Namespace` header. If not provided, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. +- `ns` `(string: "")` - Specifies the namespace of the config entry you apply. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Payload @@ -119,23 +115,21 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul config read`](/commands/config/read). -### Parameters +### Path Parameters -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. +- `kind` `(string: )` - Specifies the kind of the entry to read. -- `kind` `(string: )` - Specifies the kind of the entry to read. This - is specified as part of the URL. - -- `name` `(string: )` - Specifies the name of the entry to read. This - is specified as part of the URL. The name of the `proxy-defaults` config entry +- `name` `(string: )` - Specifies the name of the entry to read. + The name of the `proxy-defaults` config entry must be `global`, and the name of the `mesh` config entry must be `mesh`. -- `ns` `(string: "")` - Specifies the namespace to query. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited from - the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. +### Query Parameters + +- `dc` `(string: "")` - Specifies the datacenter to query. + This parameter defaults to the datacenter of the agent being queried. + +- `ns` `(string: "")` - Specifies the namespace of the config entry you lookup + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -192,19 +186,17 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul config list`](/commands/config/list). -### Parameters +### Path Parameters -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. +- `kind` `(string: )` - Specifies the kind of the entry to list. -- `kind` `(string: )` - Specifies the kind of the entry to list. This - is specified as part of the URL. +### Query Parameters -- `ns` `(string: "")` - Specifies the namespace to query. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited from - the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. +- `dc` `(string: "")` - Specifies the datacenter to query. + This parameter defaults to the datacenter of the agent being queried. + +- `ns` `(string: "")` - Specifies the namespace of the config entries you lookup. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -268,29 +260,26 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul config delete`](/commands/config/delete). -### Parameters +### Path Parameters -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. +- `kind` `(string: )` - Specifies the kind of the entry to delete. -- `kind` `(string: )` - Specifies the kind of the entry to delete. This - is specified as part of the URL. - -- `name` `(string: )` - Specifies the name of the entry to delete. This - is specified as part of the URL. The name of the `proxy-defaults` config entry +- `name` `(string: )` - Specifies the name of the entry to delete. + The name of the `proxy-defaults` config entry must be `global`, and the name of the `mesh` config entry must be `mesh`. -- `ns` `(string: "")` - Specifies the namespace to delete from. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. +### Query Parameters + +- `dc` `(string: "")` - Specifies the datacenter to query. + This parameter defaults to the datacenter of the agent being queried. - `cas` `(int: 0)` - Specifies to use a Check-And-Set operation. Unlike `PUT`, the index must be greater than 0 for Consul to take any action: a 0 index will not delete the config entry. If the index is non-zero, the config entry is only - deleted if the index matches the `ModifyIndex` of that config entry. This is - specified as part of the URL as a query parameter. + deleted if the index matches the `ModifyIndex` of that config entry. + +- `ns` `(string: "")` - Specifies the namespace of the config entry you delete. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -299,3 +288,13 @@ $ curl \ --request DELETE \ http://127.0.0.1:8500/v1/config/service-defaults/web ``` + +## Methods to Specify Namespace + +Config endpoints +support several methods for specifying the namespace of configuration entry resources +with the following order of precedence: +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/connect/ca.mdx b/website/content/api-docs/connect/ca.mdx index 86c7294608..91f333294f 100644 --- a/website/content/api-docs/connect/ca.mdx +++ b/website/content/api-docs/connect/ca.mdx @@ -30,7 +30,7 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `YES` | `all` | `none` | `none` | -### Parameters +### Query Parameters - `pem` `(boolean: false)` - Specifies that the return body should be a PEM encoded certificate chain suitable for use by applications needing to trust Connect CA @@ -169,7 +169,7 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul connect ca set-config`](/commands/connect/ca#set-config). -### Parameters +### JSON Request Body Schema - `Provider` `(string: )` - Specifies the CA provider type to use. diff --git a/website/content/api-docs/connect/intentions.mdx b/website/content/api-docs/connect/intentions.mdx index 328c989b81..2f8080f5e1 100644 --- a/website/content/api-docs/connect/intentions.mdx +++ b/website/content/api-docs/connect/intentions.mdx @@ -56,25 +56,20 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention create -replace`](/commands/intention/create#replace). -### URL Parameters +### Query Parameters -- `source` `(string: )` - Specifies the source service. This - is specified as part of the URL. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `source` `(string: )` - Specifies the source service + according to the [source naming conventions](/commands/intention#source-and-destination-naming). -- `destination` `(string: )` - Specifies the destination service. This - is specified as part of the URL. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `destination` `(string: )` - Specifies the destination service + according to the [destination naming conventions](/commands/intention#source-and-destination-naming). -- `ns` `(string: "")` - Specifies the default - namespace to use when `source` or `destination` parameters lack namespaces. - If not provided, the default namespace will be inherited from the - request's ACL token or will default to the `default` namespace. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. - Added in Consul 1.9.0. +- `ns` `(string: "")` - Specifies the default namespace + to use when `source` or `destination` query parameters do not include a namespace + as shown in the [source and destination naming conventions](/commands/intention#source-and-destination-naming). + You can also [specify the namespace through other methods](#methods-to-specify-namespace). -### PUT Body Parameters +### JSON Request Body Schema - `SourceType` `(string: "")` - The type for the `SourceName` value. This can be only "consul" today to represent a Consul service. If not @@ -167,28 +162,25 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention create`](/commands/intention/create). -### URL Parameters +### Query Parameters -- `ns` `(string: "")` - Specifies the default - namespace to use when `SourceNS` or `DestinationNS` are omitted or empty. - If not provided, the default namespace will be inherited from the - request's ACL token or will default to the `default` namespace. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. - Added in Consul 1.9.0. +- `ns` `(string: "")` - Specifies the default namespace + to use when `SourceNS` or `DestinationNS` request body parameters do not include a namespace + as shown in the [source and destination naming conventions](/commands/intention#source-and-destination-naming). + You can also [specify the namespace through other methods](#methods-to-specify-namespace). -### POST Body Parameters +### JSON Request Body Schema - `SourceName` `(string: )` - The source of the intention. For a `SourceType` of `consul` this is the name of a Consul service. The - service doesn't need to be registered. + service does not need to be registered. - `SourceNS` `(string: "")` - The namespace for the `SourceName` parameter. - `DestinationName` `(string: )` - The destination of the intention. The intention destination is always a Consul service, unlike the source. - The service doesn't need to be registered. + The service does not need to be registered. - `DestinationNS` `(string: "")` - The namespace for the `DestinationName` parameter. @@ -265,12 +257,12 @@ The table below shows this endpoint's support for for more details.

-### Parameters +This endpoint supports the same parameters as the [create an intention](#create-intention-with-id) endpoint. +Additional parameters unique to this endpoint include: -- `uuid` `(string: )` - Specifies the UUID of the intention to update. This - is specified as part of the URL. +### Path Parameters -- Other parameters are identical to creating an intention. +- `uuid` `(string: )` - Specifies the UUID of the intention to update. ### Sample Payload @@ -321,23 +313,18 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention get`](/commands/intention/get). -### Parameters +### Query Parameters -- `source` `(string: )` - Specifies the source service. This - is specified as part of the URL. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `source` `(string: )` - Specifies the source service + according to the [source naming conventions](/commands/intention#source-and-destination-naming). -- `destination` `(string: )` - Specifies the destination service. This - is specified as part of the URL. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `destination` `(string: )` - Specifies the destination service + according to the [destination naming conventions](/commands/intention#source-and-destination-naming). -- `ns` `(string: "")` - Specifies the default - namespace to use when `source` or `destination` parameters lack namespaces. - If not provided, the default namespace will be inherited from the - request's ACL token or will default to the `default` namespace. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. - Added in Consul 1.9.0. +- `ns` `(string: "")` - Specifies the default namespace + to use when `source` or `destination` query parameters do not include a namespace + as shown in the [source and destination naming conventions](/commands/intention#source-and-destination-naming). + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -398,10 +385,9 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention get`](/commands/intention/get). -### Parameters +### Path Parameters -- `uuid` `(string: )` - Specifies the UUID of the intention to read. This - is specified as part of the URL. +- `uuid` `(string: )` - Specifies the UUID of the intention to read. ### Sample Request @@ -462,7 +448,7 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention list`](/commands/intention/list). -### Parameters +### Query Parameters - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. @@ -470,11 +456,7 @@ The corresponding CLI command is [`consul intention list`](/commands/intention/l - `ns` `(string: "")` - Specifies the namespace to list intentions from. The `*` wildcard may be used to list intentions from all namespaces. - If not provided, the default namespace will be inherited from the - request's ACL token or will default to the `default` namespace. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. - Added in Consul 1.9.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -553,23 +535,18 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention delete`](/commands/intention/delete). -### Parameters +### Query Parameters -- `source` `(string: )` - Specifies the source service. This - is specified as part of the URL. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `source` `(string: )` - Specifies the source service + according to the [source naming conventions](/commands/intention#source-and-destination-naming). -- `destination` `(string: )` - Specifies the destination service. This - is specified as part of the URL. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `destination` `(string: )` - Specifies the destination service + according to the [destination naming conventions](/commands/intention#source-and-destination-naming). -- `ns` `(string: "")` - Specifies the default - namespace to use when `source` or `destination` parameters lack namespaces. - If not provided, the default namespace will be inherited from the - request's ACL token or will default to the `default` namespace. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. - Added in Consul 1.9.0. +- `ns` `(string: "")` - Specifies the default namespace + to use when `source` or `destination` query parameters do not include a namespace + as shown in the [source and destination naming conventions](/commands/intention#source-and-destination-naming). + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -613,10 +590,9 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention delete`](/commands/intention/delete). -### Parameters +### Path Parameters -- `uuid` `(string: )` - Specifies the UUID of the intention to delete. This - is specified as part of the URL. +- `uuid` `(string: )` - Specifies the UUID of the intention to delete. ### Sample Request @@ -670,23 +646,18 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention check`](/commands/intention/check). -### Parameters +### Query Parameters -- `source` `(string: )` - Specifies the source service. This - is specified as part of the URL. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `source` `(string: )` - Specifies the source service + according to the [source naming conventions](/commands/intention#source-and-destination-naming). -- `destination` `(string: )` - Specifies the destination service. This - is specified as part of the URL. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `destination` `(string: )` - Specifies the destination service + according to the [destination naming conventions](/commands/intention#source-and-destination-naming). -- `ns` `(string: "")` - Specifies the default - namespace to use when `source` or `destination` parameters lack namespaces. - If not provided, the default namespace will be inherited from the - request's ACL token or will default to the `default` namespace. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. - Added in Consul 1.9.0. +- `ns` `(string: "")` - Specifies the default namespace + to use when `source` or `destination` query parameters do not include a namespace + as shown in the [source and destination naming conventions](/commands/intention#source-and-destination-naming). + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -735,22 +706,19 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul intention match`](/commands/intention/match). -### Parameters +### Query Parameters - `by` `(string: )` - Specifies whether to match the "name" value by "source" or "destination". -- `name` `(string: )` - Specifies a name to match. This parameter - can be repeated for batching multiple matches. - This can take [several forms](/commands/intention#source-and-destination-naming). +- `name` `(string: )` - Specifies a name to match + according to the [source and destination naming conventions](/commands/intention#source-and-destination-naming). + You can repeat this parameter for batching multiple matches. -- `ns` `(string: "")` - Specifies the default - namespace to use when `name` parameter lacks namespaces. - If not provided, the default namespace will be inherited from the - request's ACL token or will default to the `default` namespace. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. - Added in Consul 1.9.0. +- `ns` `(string: "")` - Specifies the default namespace + to use when the `name` query parameter does not include a namespace + as shown in the [source and destination naming conventions](/commands/intention#source-and-destination-naming). + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -791,3 +759,13 @@ $ curl \ ] } ``` + +## Methods to Specify Namespace + +Connect intention endpoints +support several methods for specifying the namespace of intention resources +with the following order of precedence: +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/coordinate.mdx b/website/content/api-docs/coordinate.mdx index bbba8afaf1..3b65f0ad31 100644 --- a/website/content/api-docs/coordinate.mdx +++ b/website/content/api-docs/coordinate.mdx @@ -96,11 +96,11 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul rtt`](/commands/rtt). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. + - `segment` `(string: "")` - Specifies the segment to list members for. If left blank, this will query for the default segment when connecting to a server and the agent's own segment when connecting to a client (clients can only be part of one @@ -139,9 +139,9 @@ segment. This endpoint returns the LAN network coordinates for the given node. -| Method | Path | Produces | -| ------ | ------------------------ | ------------------ | -| `GET` | `/coordinate/node/:node` | `application/json` | +| Method | Path | Produces | +| ------ | ----------------------------- | ------------------ | +| `GET` | `/coordinate/node/:node_name` | `application/json` | The table below shows this endpoint's support for [blocking queries](/api-docs/features/blocking), @@ -153,11 +153,15 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `YES` | `all` | `none` | `node:read` | -### Parameters +### Path Parameters + +- `node_name` `(string: )` - Specifies the name of the node to return LAN network coordinates for. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. + - `segment` `(string: "")` - Specifies the segment to list members for. If left blank, this will query for the default segment when connecting to a server and the agent's own segment when connecting to a client (clients can only be part of one @@ -211,11 +215,10 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `NO` | `none` | `none` | `node:write` | -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. ### Sample Payload diff --git a/website/content/api-docs/discovery-chain.mdx b/website/content/api-docs/discovery-chain.mdx index 29adab5552..40add5f3fa 100644 --- a/website/content/api-docs/discovery-chain.mdx +++ b/website/content/api-docs/discovery-chain.mdx @@ -26,10 +26,10 @@ Management](/docs/connect/l7-traffic). If overrides are needed they are passed as the JSON-encoded request body and the `POST` method must be used, otherwise `GET` is sufficient. -| Method | Path | Produces | -| ------------------ | --------------------------- | ------------------ | -| `GET` | `/discovery-chain/:service` | `application/json` | -| `POST`1 | `/discovery-chain/:service` | `application/json` | +| Method | Path | Produces | +| ------------------ | -------------------------------- | ------------------ | +| `GET` | `/discovery-chain/:service_name` | `application/json` | +| `POST`1 | `/discovery-chain/:service_name` | `application/json` |

1 Both GET and POST are for read operations. GET @@ -47,27 +47,25 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | -------------------- | -------------- | | `YES` | `all` | `background refresh` | `service:read` | -### URL Parameters +### Path Parameters -- `service` `(string: )` - Specifies the service to query when - compiling the discovery chain. This is provided as part of the URL. +- `service_name` `(string: )` - Specifies the service to query when + compiling the discovery chain. + +### Query Parameters - `compile-dc` `(string: "")` - Specifies the datacenter to use as the basis of compilation. This will default to the datacenter of the agent being queried. - This is specified as part of the URL as a query parameter. This value comes from an [upstream configuration](/docs/connect/registration/service-registration#upstream-configuration-reference) [`datacenter`](/docs/connect/registration/service-registration#datacenter) parameter. -- `ns` `(string: "")` - Specifies the source namespace - to use as the basis of compilation. This value can be specified as the `ns` - URL query parameter or the `X-Consul-Namespace` header. If not provided by either, - the namespace will be inherited from the request's ACL token or will default - to the `default` namespace. Added in Consul 1.7.0. +- `ns` `(string: "")` - Specifies the source namespace you use as the basis of compilation. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). -### POST Body Parameters +### JSON Request Body Schema - `OverrideConnectTimeout` `(duration: 0s)` - Overrides the final [connect timeout](/docs/connect/config-entries/service-resolver#connecttimeout) for @@ -568,3 +566,13 @@ Response: } } ``` + +## Methods to Specify Namespace + +The discovery chain endpoint +supports several methods for specifying the namespace to use as the basis of discovery chain compilation +with the following order of precedence: +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/event.mdx b/website/content/api-docs/event.mdx index 1d795997a7..799f743eaa 100644 --- a/website/content/api-docs/event.mdx +++ b/website/content/api-docs/event.mdx @@ -31,24 +31,22 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul event`](/commands/event). -### Parameters +### Path Parameters -- `name` `(string: )` - Specifies the name of the event to fire. This - is specified as part of the URL. This name must not start with an underscore, +- `name` `(string: )` - Specifies the name of the event to fire. + This name must not start with an underscore, since those are reserved for Consul internally. +### Query Parameters + - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `node` `(string: "")` - Specifies a regular expression to filter by node name. - This is specified as part of the URL as a query parameter. -- `service` `(string: "")` - Specifies a regular expression to filter by service - name. This is specified as part of the URL as a query parameter. +- `service` `(string: "")` - Specifies a regular expression to filter by service name. -- `tag` `(string: "")` - Specifies a regular expression to filter by tag. This - is specified as part of the URL as a query parameter. +- `tag` `(string: "")` - Specifies a regular expression to filter by tag. ### Sample Payload @@ -109,19 +107,15 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `YES` | `none` | `none` | `event:read` | -### Parameters +### Query Parameters -- `name` `(string: )` - Specifies the name of the event to filter. - This is specified as part of the URL as a query parameter. +- `name` `(string: "")` - Specifies the name of the event to filter. - `node` `(string: "")` - Specifies a regular expression to filter by node name. - This is specified as part of the URL as a query parameter. -- `service` `(string: "")` - Specifies a regular expression to filter by service - name. This is specified as part of the URL as a query parameter. +- `service` `(string: "")` - Specifies a regular expression to filter by service name. -- `tag` `(string: "")` - Specifies a regular expression to filter by tag. This - is specified as part of the URL as a query parameter. +- `tag` `(string: "")` - Specifies a regular expression to filter by tag. ### Sample Request diff --git a/website/content/api-docs/health.mdx b/website/content/api-docs/health.mdx index 1c68f60b03..fcda3cbcab 100644 --- a/website/content/api-docs/health.mdx +++ b/website/content/api-docs/health.mdx @@ -34,23 +34,20 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------------------ | | `YES` | `all` | `none` | `node:read,service:read` | -### Parameters +### Path Parameters - `node` `(string: )` - Specifies the name or ID of the node to query. - This is specified as part of the URL + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. -- `ns` `(string: "")` - Specifies the namespace to list checks. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. To view - checks for multiple namespaces the `*` wildcard namespace may be used. Added in Consul 1.7.0. +- `ns` `(string: "")` - Specifies the namespace of the checks you lookup. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -131,32 +128,30 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------------------ | | `YES` | `all` | `none` | `node:read,service:read` | -### Parameters +### Path Parameters - `service` `(string: )` - Specifies the service to list checks for. - This is provided as part of the URL. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `near` `(string: "")` - Specifies a node name to sort the node list in ascending order based on the estimated round trip time from that node. Passing - `?near=_agent` will use the agent's node for the sort. This is specified as + `?near=_agent` uses the agent's node for the sort. This is specified as part of the URL as a query parameter. - `node-meta` `(string: "")` - Specifies a desired node metadata key/value pair of the form `key:value`. This parameter can be specified multiple times, and - will filter the results to nodes with the specified key/value pairs. This is + filters the results to nodes with the specified key/value pairs. This is specified as part of the URL as a query parameter. - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. - `ns` `(string: "")` - Specifies the namespace of the service. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -228,36 +223,34 @@ The table below shows this endpoint's support for streaming backend

-### Parameters +### Path Parameters - `service` `(string: )` - Specifies the service to list services for. - This is provided as part of the URL. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `near` `(string: "")` - Specifies a node name to sort the node list in ascending order based on the estimated round trip time from that node. Passing - `?near=_agent` will use the agent's node for the sort. This is specified as - part of the URL as a query parameter. **Note** that using `near` will ignore + `?near=_agent` uses the agent's node for the sort. + **Note** that using `near` will ignore [`use_streaming_backend`](/docs/agent/config/config-files#use_streaming_backend) and always use blocking queries, because the data required to sort the results is not available to the streaming backend. - `tag` `(string: "")` **Deprecated** - Use `filter` with the `Service.Tags` selector instead. This parameter will be removed in a future version of Consul. - Specifies the tag to filter the list. This is - specified as part of the URL as a query parameter. Can be used multiple times - for additional filtering, returning only the results that include all of the tag - values provided. + Specifies the tag to filter the list. + You can use this parameter multiple times to + return only the results that include all of the tag values provided. - `node-meta` `(string: "")` **Deprecated** - Use `filter` with the `Node.Meta` selector instead. This parameter will be removed in a future version of Consul. Specifies a desired node metadata key/value pair of the form `key:value`. This parameter can be specified multiple times, and - will filter the results to nodes with the specified key/value pairs. This is - specified as part of the URL as a query parameter. + filters the results to nodes with the specified key/value pairs. - `passing` `(bool: false)` - Specifies that the server should return only nodes with all checks in the `passing` state. This can be used to avoid additional @@ -267,9 +260,7 @@ The table below shows this endpoint's support for queries results prior to returning the data. - `ns` `(string: "")` - Specifies the namespace of the service. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -443,7 +434,6 @@ Parameters and response format are the same as **Note** that unlike `/health/connect/:service` and `/health/service/:service` this endpoint does not support the [streaming backend](/api-docs/features/blocking#streaming-backend). - ## List Checks in State This endpoint returns the checks in the state provided on the path. @@ -464,33 +454,30 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------------------ | | `YES` | `all` | `none` | `node:read,service:read` | -### Parameters +### Path Parameters - `state` `(string: )` - Specifies the state to query. Supported states are `any`, `passing`, `warning`, or `critical`. The `any` state is a wildcard that can be used to return all checks. +### Query Parameters + - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `near` `(string: "")` - Specifies a node name to sort the node list in ascending order based on the estimated round trip time from that node. Passing - `?near=_agent` will use the agent's node for the sort. This is specified as - part of the URL as a query parameter. + `?near=_agent` uses the agent's node for the sort. - `node-meta` `(string: "")` - Specifies a desired node metadata key/value pair of the form `key:value`. This parameter can be specified multiple times, and - will filter the results to nodes with the specified key/value pairs. This is - specified as part of the URL as a query parameter. + filters the results to nodes with the specified key/value pairs. - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. - `ns` `(string: "")` - Specifies the namespace to query. - This value may be provided by either the `ns` URL query parameter or in the - `X-Consul-Namespace` header. If not provided, the namespace will be inherited - from the request's ACL token or will default to the `default` namespace. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -546,3 +533,13 @@ the following selectors and filter operations being supported: | `ServiceName` | Equal, Not Equal, In, Not In, Matches, Not Matches | | `ServiceTags` | In, Not In, Is Empty, Is Not Empty | | `Status` | Equal, Not Equal, In, Not In, Matches, Not Matches | + +## Methods to Specify Namespace + +The health endpoints +support several methods for specifying the namespace of resources +with the following order of precedence: +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/kv.mdx b/website/content/api-docs/kv.mdx index ba77717f4e..abec2bc7a7 100644 --- a/website/content/api-docs/kv.mdx +++ b/website/content/api-docs/kv.mdx @@ -51,37 +51,33 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul kv get`](/commands/kv/get). -### Parameters +### Path Parameters - `key` `(string: "")` - Specifies the path of the key to read. +### Query Parameters + - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `recurse` `(bool: false)` - Specifies if the lookup should be recursive and - `key` treated as a prefix instead of a literal match. This is specified as - part of the URL as a query parameter. + treat `key` as a prefix instead of a literal match. - `raw` `(bool: false)` - Specifies the response is just the raw value of the - key, without any encoding or metadata. This is specified as part of the URL as - a query parameter. + key, without any encoding or metadata. - `keys` `(bool: false)` - Specifies to return only keys (no values or - metadata). Specifying this implies `recurse`. This is specified as part of the - URL as a query parameter. + metadata). Specifying this parameter implies `recurse`. - `separator` `(string: "")` - Specifies the string to use as a separator for recursive key lookups. This option is only used when paired with the `keys` parameter to limit the prefix of keys returned, only up to the given separator. - This is specified as part of the URL as a query parameter. - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the - URL as a query parameter. - For recursive lookups, the namespace may be specified as '\*' and then results - will be returned for all namespaces. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). + + For recursive lookups, the namespace may be specified as '\*' + to return results for all namespaces. ### Sample Request @@ -126,7 +122,7 @@ $ curl \ - `Key` is simply the full path of the entry. - `Flags` is an opaque unsigned integer that can be attached to each entry. - Clients can choose to use this however makes sense for their application. + API consumers can use this field any way they choose for their application. - `Value` is a base64-encoded blob of data. @@ -183,17 +179,18 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul kv put`](/commands/kv/put). -### Parameters +### Path Parameters - `key` `(string: "")` - Specifies the path of the key. -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. +### Query Parameters -- `flags` `(int: 0)` - Specifies an unsigned value between `0` and `(2^64)-1`. - Clients can choose to use this however makes sense for their application. This - is specified as part of the URL as a query parameter. +- `dc` `(string: "")` - Specifies the datacenter to query. This will default to + the datacenter of the agent being queried. + +- `flags` `(int: 0)` - Specifies an unsigned value between `0` and `(2^64)-1` + to store with the key. + API consumers can use this field any way they choose for their application. - `cas` `(int: 0)` - Specifies to use a Check-And-Set operation. This is very useful as a building block for more complex synchronization primitives. If the @@ -221,9 +218,7 @@ The corresponding CLI command is [`consul kv put`](/commands/kv/put). of the key. The key must be held by this session to be unlocked. - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the - URL as a query parameter. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Payload @@ -271,12 +266,15 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul kv delete`](/commands/kv/delete). -### Parameters +### Path Parameters + +- `key` `(string: "")` - Specifies the path of the key to delete. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter, and gives "No path to datacenter" error when dc is - invalid. + the datacenter of the agent being queried. If the DC is invalid, + the error "No path to datacenter" is returned. - `recurse` `(bool: false)` - Specifies to delete all keys which have the specified prefix. Without this, only a key with an exact match will be @@ -289,9 +287,7 @@ The corresponding CLI command is [`consul kv delete`](/commands/kv/delete). deleted if the index matches the `ModifyIndex` of that key. - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the - URL as a query parameter. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -306,3 +302,13 @@ $ curl \ ```json true ``` + +## Methods to Specify Namespace + +The key-value store endpoints +support several methods for specifying the namespace of resources +with the following order of precedence: +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/namespaces.mdx b/website/content/api-docs/namespaces.mdx index 67fc5d6b35..ceffdc2d92 100644 --- a/website/content/api-docs/namespaces.mdx +++ b/website/content/api-docs/namespaces.mdx @@ -31,10 +31,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul namespace create`](/commands/namespace/create). -### Parameters +### JSON Request Body Schema -- `Name` `(string: )` - The namespaces name. This must be a valid - DNS hostname label. +- `Name` `(string: )` - The namespace's name. + This field must be a valid DNS hostname label. - `Description` `(string: "")` - Free form namespaces description. @@ -106,7 +106,7 @@ $ curl --request PUT \ http://127.0.0.1:8500/v1/namespace ``` -### SampleResponse +### Sample Response ```json { @@ -165,10 +165,9 @@ the request has been granted any access in the namespace (read, list or write). The corresponding CLI command is [`consul namespace read`](/commands/namespace/read). -### Parameters +### Path Parameters -- `name` `(string: )` - Specifies the namespace to read. This - is required and is specified as part of the URL path. +- `name` `(string: )` - Specifies the namespace to read. ### Sample Request @@ -177,7 +176,7 @@ $ curl --header "X-Consul-Token: b23b3cad-5ea1-4413-919e-c76884b9ad60" \ http://127.0.0.1:8500/v1/namespace/team-1 ``` -### SampleResponse +### Sample Response ```json { @@ -233,11 +232,14 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul namespace update`](/commands/namespace/update) or [`consul namespace write`](/commands/namespace/write). -### Parameters +### Path Parameters -- `Name` `(string: )` - The namespaces name. This must be a valid - DNS hostname label. If present in the payload it must match what was given - in the URL path. +- `name` `(string: )` - The namespaces name. This must be a valid DNS hostname label. + +### JSON Request Body Schema + +- `Name` `(string: )` - If specified, this field must be an exact match + with the `name` path parameter. - `Description` `(string: "")` - Free form namespaces description. @@ -308,7 +310,7 @@ $ curl --request PUT \ http://127.0.0.1:8500/v1/namespace/team-1 ``` -### SampleResponse +### Sample Response ```json { @@ -372,10 +374,9 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul namespace delete`](/commands/namespace/delete). -### Parameters +### Path Parameters -- `name` `(string: )` - Specifies the namespace to delete. This - is required and is specified as part of the URL path. +- `name` `(string: )` - Specifies the namespace to delete. ### Sample Request diff --git a/website/content/api-docs/operator/area.mdx b/website/content/api-docs/operator/area.mdx index 6f10fa2ddf..104eda9b29 100644 --- a/website/content/api-docs/operator/area.mdx +++ b/website/content/api-docs/operator/area.mdx @@ -47,11 +47,12 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator area create`](/commands/operator/area#create). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as a URL query - parameter. + the datacenter of the agent being queried. + +### JSON Request Body Schema - `PeerDatacenter` `(string: )` - Specifies the name of the Consul datacenter that will be joined the Consul servers in the current datacenter to @@ -115,11 +116,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator area list`](/commands/operator/area#list). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as a URL query - parameter. + the datacenter of the agent being queried. ### Sample Request @@ -160,11 +160,12 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator area update`](/commands/operator/area#update). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as a URL query - parameter. + the datacenter of the agent being queried. + +### JSON Request Body Schema - `UseTLS` `(bool: )` - Specifies whether gossip over this area should be encrypted with TLS if possible. @@ -204,14 +205,14 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | --------------- | | `YES` | `all` | `none` | `operator:read` | -### Parameters +### Path Parameters -- `uuid` `(string: )` - Specifies the UUID of the area to list. This - is specified as part of the URL. +- `uuid` `(string: )` - Specifies the UUID of the area to list. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as a URL query - parameter. + the datacenter of the agent being queried. ### Sample Request @@ -252,14 +253,14 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator area delete`](/commands/operator/area#delete). -### Parameters +### Path Parameters -- `uuid` `(string: )` - Specifies the UUID of the area to delete. This - is specified as part of the URL. +- `uuid` `(string: )` - Specifies the UUID of the area to delete. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as a URL query - parameter. + the datacenter of the agent being queried. ### Sample Request @@ -290,14 +291,14 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator area join`](/commands/operator/area#join). -### Parameters +### Path Parameters -- `uuid` `(string: )` - Specifies the UUID of the area to join. This - is specified as part of the URL. +- `uuid` `(string: )` - Specifies the UUID of the area to join. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as a URL query - parameter. + the datacenter of the agent being queried. ### Sample Payload @@ -365,14 +366,14 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator area members`](/commands/operator/area#members). -### Parameters +### Path Parameters -- `uuid` `(string: )` - Specifies the UUID of the area to list. This - is specified as part of the URL. +- `uuid` `(string: )` - Specifies the UUID of the area to list. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as a URL query - parameter. + the datacenter of the agent being queried. ### Sample Request diff --git a/website/content/api-docs/operator/autopilot.mdx b/website/content/api-docs/operator/autopilot.mdx index ef88056e5c..9841d13e1f 100644 --- a/website/content/api-docs/operator/autopilot.mdx +++ b/website/content/api-docs/operator/autopilot.mdx @@ -35,11 +35,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator autopilot get-config`](/commands/operator/autopilot#get-config). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query string. + the datacenter of the agent being queried. - `stale` `(bool: false)` - If the cluster does not currently have a leader an error will be returned. You can use the `?stale` query parameter to read the @@ -91,16 +90,17 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator autopilot set-config`](/commands/operator/autopilot#set-config). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query string. + the datacenter of the agent being queried. - `cas` `(int: 0)` - Specifies to use a Check-And-Set operation. The update will only happen if the given index matches the `ModifyIndex` of the configuration at the time of writing. +### JSON Request Body Schema + - `CleanupDeadServers` `(bool: true)` - Specifies automatic removal of dead server nodes periodically and whenever a new server is added to the cluster. @@ -168,11 +168,10 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | --------------- | | `NO` | `none` | `none` | `operator:read` | -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query string. + the datacenter of the agent being queried. ### Sample Request @@ -275,11 +274,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator autopilot state`](/commands/operator/autopilot#state). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query string. + the datacenter of the agent being queried. ### Sample Request diff --git a/website/content/api-docs/operator/keyring.mdx b/website/content/api-docs/operator/keyring.mdx index 83d1b89bdd..17e5487664 100644 --- a/website/content/api-docs/operator/keyring.mdx +++ b/website/content/api-docs/operator/keyring.mdx @@ -37,15 +37,15 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul keyring -list`](/commands/keyring#list). -### Parameters +### Query Parameters - `relay-factor` `(int: 0)` - Specifies the relay factor. Setting this to a non-zero value will cause nodes to relay their responses through this many randomly-chosen other nodes in the cluster. The maximum allowed value is `5`. - This is specified as part of the URL as a query parameter. + - `local-only` `(bool: false)` - Setting `local-only` to true will force keyring list queries to only hit local servers (no WAN traffic). This flag can only be set - for list queries. It is specified as part of the URL as a query parameter. + for list queries. ### Sample Request @@ -124,12 +124,13 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul keyring -install`](/commands/keyring#install). -### Parameters +### Query Parameters - `relay-factor` `(int: 0)` - Specifies the relay factor. Setting this to a non-zero value will cause nodes to relay their responses through this many randomly-chosen other nodes in the cluster. The maximum allowed value is `5`. - This is specified as part of the URL as a query parameter. + +### JSON Request Body Schema - `Key` `(string: )` - Specifies the encryption key to install into the cluster. @@ -172,12 +173,13 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul keyring -use`](/commands/keyring#use). -### Parameters +### Query Parameters - `relay-factor` `(int: 0)` - Specifies the relay factor. Setting this to a non-zero value will cause nodes to relay their responses through this many randomly-chosen other nodes in the cluster. The maximum allowed value is `5`. - This is specified as part of the URL as a query parameter. + +### JSON Request Body Schema - `Key` `(string: )` - Specifies the encryption key to begin using as primary into the cluster. @@ -220,12 +222,13 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul keyring -remove`](/commands/keyring#remove). -### Parameters +### Query Parameters - `relay-factor` `(int: 0)` - Specifies the relay factor. Setting this to a non-zero value will cause nodes to relay their responses through this many randomly-chosen other nodes in the cluster. The maximum allowed value is `5`. - This is specified as part of the URL as a query parameter. + +### JSON Request Body Schema - `Key` `(string: )` - Specifies the encryption key to delete. diff --git a/website/content/api-docs/operator/license.mdx b/website/content/api-docs/operator/license.mdx index c2c9186fe8..a7430ce380 100644 --- a/website/content/api-docs/operator/license.mdx +++ b/website/content/api-docs/operator/license.mdx @@ -33,11 +33,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul license get`](/commands/license#get). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter whose license should be retrieved. This will default to the datacenter of the agent serving the HTTP request. - This is specified as a URL query parameter. ### Sample Request @@ -100,11 +99,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul license put`](/commands/license#put). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter whose license should be updated. This will default to the datacenter of the agent serving the HTTP request. - This is specified as a URL query parameter. ### Sample Payload @@ -172,11 +170,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul license reset`](/commands/license#reset). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter whose license should be updated. This will default to the datacenter of the agent serving the HTTP request. - This is specified as a URL query parameter. ### Sample Request diff --git a/website/content/api-docs/operator/raft.mdx b/website/content/api-docs/operator/raft.mdx index 8d1259454e..0df5973a13 100644 --- a/website/content/api-docs/operator/raft.mdx +++ b/website/content/api-docs/operator/raft.mdx @@ -32,11 +32,10 @@ The table below shows this endpoint's support for | ---------------- | --------------------- | ------------- | --------------- | | `NO` | `default` and `stale` | `none` | `operator:read` | -### Parameters +### Query Parameters -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query string. +- `dc` `(string: "")` - Specifies the datacenter to query. + This parameter defaults to the datacenter of the agent being queried. - `stale` `(bool: false)` - If the cluster does not currently have a leader an error will be returned. You can use the `?stale` query parameter to read the @@ -132,14 +131,13 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator raft remove-peer`](/commands/operator/raft#remove-peer). -### Parameters - -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query string. +### Query Parameters - `id|address` `(string: )` - Specifies the ID or address (IP:port) of the raft peer to remove. +- `dc` `(string: "")` - Specifies the datacenter to query. This will default to + the datacenter of the agent being queried. + ### Sample Request ```shell-session diff --git a/website/content/api-docs/operator/segment.mdx b/website/content/api-docs/operator/segment.mdx index 360a6f1b07..65adc134da 100644 --- a/website/content/api-docs/operator/segment.mdx +++ b/website/content/api-docs/operator/segment.mdx @@ -38,11 +38,10 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | --------------- | | `NO` | `none` | `none` | `operator:read` | -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as a URL query - parameter. + the datacenter of the agent being queried. ### Sample Request diff --git a/website/content/api-docs/query.mdx b/website/content/api-docs/query.mdx index c91cdacddc..85ee3c8b38 100644 --- a/website/content/api-docs/query.mdx +++ b/website/content/api-docs/query.mdx @@ -87,7 +87,7 @@ populate the query before it is executed. All of the string fields inside the empty string. - `${agent.segment}` - the network segment of the agent that - initiated the query. This can be used with the `NodeMeta` field to limit the results + initiated the query. This varaible can be used with the `NodeMeta` field to limit the results of a query to service instances within its own network segment: ```json @@ -150,11 +150,12 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------- | | `NO` | `none` | `none` | `query:write` | -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. + +### JSON Request Body Schema - `Name` `(string: "")` - Specifies an optional friendly name that can be used to execute a query instead of using its ID. @@ -315,11 +316,10 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `NO` | `all` | `none` | `query:read` | -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. ### Sample Request @@ -378,14 +378,14 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------- | | `NO` | `none` | `none` | `query:write` | -### Parameters +### Path Parameters - `uuid` `(string: )` - Specifies the UUID of the query to update. - This is required and is specified as part of the URL path. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. The body is the same as is used to create a prepared query. Please see above for more information. @@ -418,14 +418,14 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `NO` | `all` | `none` | `query:read` | -### Parameters +### Path Parameters - `uuid` `(string: )` - Specifies the UUID of the query to read. - This is required and is specified as part of the URL path. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. ### Sample Request @@ -458,14 +458,14 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------- | | `NO` | `none` | `none` | `query:write` | -### Parameters +### Path Parameters - `uuid` `(string: )` - Specifies the UUID of the query to delete. - This is required and is specified as part of the URL path. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. ### Sample Request @@ -502,16 +502,16 @@ The table below shows this endpoint's support for be used when executing the request. Otherwise, the client's supplied ACL Token will be used. -### Parameters +### Path Parameters - `uuid` `(string: )` - Specifies the UUID of the query to execute. - This is required and is specified as part of the URL path. This can also be - the name of an existing prepared query, or a name that matches a prefix name - for a prepared query template. + This parameter can also be the name of an existing prepared query, + or a name that matches a prefix name for a prepared query template. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. - `near` `(string: "")` - Specifies to sort the resulting list in ascending order based on the estimated round trip time from that node. Passing @@ -525,7 +525,7 @@ be used. This is applied after any sorting or shuffling. - `connect` `(bool: false)` - If true, limit results to nodes that are - Connect-capable only. This can also be specified directly on the template + Connect-capable only. This parameter can also be specified directly on the template itself to force all executions of a query to be Connect-only. See the template documentation for more information. @@ -627,16 +627,16 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `NO` | `all` | `none` | `query:read` | -### Parameters +### Path Parameters - `uuid` `(string: )` - Specifies the UUID of the query to explain. - This is required and is specified as part of the URL path. This can also be - the name of an existing prepared query, or a name that matches a prefix name - for a prepared query template. + This parameter can also be the name of an existing prepared query, + or a name that matches a prefix name for a prepared query template. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. ### Sample Request diff --git a/website/content/api-docs/session.mdx b/website/content/api-docs/session.mdx index 15415c0c4a..21d4759cf0 100644 --- a/website/content/api-docs/session.mdx +++ b/website/content/api-docs/session.mdx @@ -27,22 +27,23 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | --------------- | | `NO` | `none` | `none` | `session:write` | -### Parameters +### Query Parameters + - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the - URL as a query parameter. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). - `dc` `(string: "")` - Specifies the datacenter to query. This will default to the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. Using this across datacenters is not recommended. + URL as a query parameter. Using this parameter across datacenters is not recommended. + +### JSON Request Body Schema - `LockDelay` `(string: "15s")` - Specifies the duration for the lock delay. This must be greater than `0`. -- `Node` `(string: "")` - Specifies the name of the node. This must refer - to a node that is already registered. +- `Node` `(string: "")` - Specifies the name of the node. + This field must refer to a node that is already registered. - `Name` `(string: "")` - Specifies a human-readable name for the session. @@ -136,19 +137,19 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | --------------- | | `NO` | `none` | `none` | `session:write` | -### Parameters +### Path Parameters - `uuid` `(string: )` - Specifies the UUID of the session to destroy. This is required and is specified as part of the URL path. +### Query Parameters + - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. Using this across datacenters is not recommended. + the datacenter of the agent being queried. + Using this parameter across datacenters is not recommended. - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the - URL as a query parameter. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -182,19 +183,18 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | -------------- | | `YES` | `all` | `none` | `session:read` | -### Parameters +### Path Parameters - `uuid` `(string: )` - Specifies the UUID of the session to read. - This is required and is specified as part of the URL path. -- `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. Using this across datacenters is not recommended. +### Query Parameters + +- `dc` `(string: "")` - Specifies the datacenter to query. + This defaults to the datacenter of the agent being queried. + Using this parameter across datacenters is not recommended. - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the - URL as a query parameter. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -246,21 +246,20 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | -------------- | | `YES` | `all` | `none` | `session:read` | -### Parameters +### Path Parameters - `node` `(string: )` - Specifies the name or ID of the node to query. - This is required and is specified as part of the URL path. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. Using this across datacenters is not recommended. + the datacenter of the agent being queried. + Using this parameter across datacenters is not recommended. - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the - URL as a query parameter + You can also [specify the namespace through other methods](#methods-to-specify-namespace). + The namespace may be specified as '\*' and then results will be returned for all namespaces. - Added in Consul 1.7.0. ### Sample Request @@ -310,17 +309,16 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | -------------- | | `YES` | `all` | `none` | `session:read` | -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. Using this across datacenters is not recommended. + the datacenter of the agent being queried. + Using this parameter across datacenters is not recommended. - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the URL as a query parameter. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). + The namespace may be specified as '\*' and then results will be returned for all namespaces. - Added in Consul 1.7.0. ### Sample Request @@ -369,19 +367,18 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | --------------- | | `NO` | `none` | `none` | `session:write` | -### Parameters +### Path Parameters - `uuid` `(string: )` - Specifies the UUID of the session to renew. - This is required and is specified as part of the URL path. + +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. Using this across datacenters is not recommended. + the datacenter of the agent being queried. + Using this parameter across datacenters is not recommended. - `ns` `(string: "")` - Specifies the namespace to query. - If not provided, the namespace will be inferred from the request's ACL token, - or will default to the `default` namespace. This is specified as part of the - URL as a query parameter. Added in Consul 1.7.0. + You can also [specify the namespace through other methods](#methods-to-specify-namespace). ### Sample Request @@ -413,3 +410,13 @@ $ curl \ ``` -> **Note:** Consul may return a TTL value higher than the one specified during session creation. This indicates the server is under high load and is requesting clients renew less often. + +## Methods to Specify Namespace + +Session endpoints +support several methods for specifying the namespace of session resources +with the following order of precedence: +1. `ns` query parameter +1. `X-Consul-Namespace` request header +1. Namespace is inherited from the namespace of the request's ACL token (if any) +1. The `default` namespace diff --git a/website/content/api-docs/snapshot.mdx b/website/content/api-docs/snapshot.mdx index 2e3419279b..81357464b4 100644 --- a/website/content/api-docs/snapshot.mdx +++ b/website/content/api-docs/snapshot.mdx @@ -41,11 +41,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul snapshot save`](/commands/snapshot/save). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default - to the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + to the datacenter of the agent being queried. - `stale` `(bool: false)` - Specifies that any follower may reply. By default requests are forwarded to the leader. Followers may be faster to respond, but @@ -62,10 +61,10 @@ The corresponding CLI command is [`consul snapshot save`](/commands/snapshot/sav With a custom datacenter: ```shell-session -$ curl http://127.0.0.1:8500/v1/snapshot?dc=my-datacenter --output snapshot.tgz +$ curl http://127.0.0.1:8500/v1/snapshot?dc=my-datacenter --output snapshot.snap ``` -The above example results in a tarball named `snapshot.tgz` in the current working directory. +The above example results in a tarball named `snapshot.snap` in the current working directory. In addition to the Consul standard stale-related headers, the `X-Consul-Index` header will contain the index at which the snapshot took place. @@ -77,10 +76,8 @@ This endpoint restores a point-in-time snapshot of the Consul server state. Restores involve a potentially dangerous low-level Raft operation that is not designed to handle server failures during a restore. This operation is primarily intended to be used when recovering from a disaster, restoring into a fresh -cluster of Consul servers. - -The body of the request should be a snapshot archive returned from a previous -call to the `GET` method. +cluster of Consul servers running the same version as the cluster from where the +snapshot was taken. | Method | Path | Produces | | :----- | :---------- | ----------------------------- | @@ -98,18 +95,22 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul snapshot restore`](/commands/snapshot/restore). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default - to the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + to the datacenter of the agent being queried. + +### Request Body + +The body of the request should be a snapshot archive returned by a previous +call to [generate snapshot](#generate-snapshot). ### Sample Request ```shell-session $ curl \ --request PUT \ - --data-binary @snapshot.tgz \ + --data-binary @snapshot.snap \ http://127.0.0.1:8500/v1/snapshot ``` diff --git a/website/content/api-docs/status.mdx b/website/content/api-docs/status.mdx index 8948a5a7f4..a4e8e45b84 100644 --- a/website/content/api-docs/status.mdx +++ b/website/content/api-docs/status.mdx @@ -32,11 +32,10 @@ The table below shows this endpoint's support for | ---------------- | ----------------- | ------------- | ------------ | | `NO` | `none` | `none` | `none` | -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. ### Sample Request @@ -72,11 +71,10 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul operator raft list-peers`](/commands/operator/raft#list-peers). -### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to - the datacenter of the agent being queried. This is specified as part of the - URL as a query parameter. + the datacenter of the agent being queried. ### Sample Request diff --git a/website/content/api-docs/txn.mdx b/website/content/api-docs/txn.mdx index 2fa10bcb0f..97eefeecee 100644 --- a/website/content/api-docs/txn.mdx +++ b/website/content/api-docs/txn.mdx @@ -51,12 +51,18 @@ The table below shows this endpoint's support for 2 The ACL required depends on the operations in the transaction.

-### Parameters +### Query Parameters - `dc` `(string: "")` - Specifies the datacenter to query. This will default to the datacenter of the agent being queried. This is specified as part of the URL as a query parameter. +### JSON Request Body Schema + +A JSON array of operations objects, each with +a key of the operation name (`KV`, `Node`, `Service`, or `Check`), and +a value of an object specific to that operation. + - `KV` operations have the following fields: - `Verb` `(string: )` - Specifies the type of operation to perform. diff --git a/website/content/commands/snapshot/restore.mdx b/website/content/commands/snapshot/restore.mdx index 1657033d15..2d7ec902ea 100644 --- a/website/content/commands/snapshot/restore.mdx +++ b/website/content/commands/snapshot/restore.mdx @@ -17,7 +17,8 @@ from the given file. Restores involve a potentially dangerous low-level Raft operation that is not designed to handle server failures during a restore. This command is primarily intended to be used when recovering from a disaster, restoring into a fresh -cluster of Consul servers. +cluster of Consul servers running the same version as the cluster from where the +snapshot was taken. The table below shows this command's [required ACLs](/api#authentication). Configuration of [blocking queries](/api-docs/features/blocking) and [agent caching](/api-docs/features/caching) diff --git a/website/content/docs/agent/config/config-files.mdx b/website/content/docs/agent/config/config-files.mdx index ff3082f34f..449753b206 100644 --- a/website/content/docs/agent/config/config-files.mdx +++ b/website/content/docs/agent/config/config-files.mdx @@ -501,7 +501,6 @@ Valid time units are 'ns', 'us' (or 'µs'), 'ms', 's', 'm', 'h'." - `response_headers` This object allows adding headers to the HTTP API and UI responses. For example, the following config can be used to enable [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) on the HTTP API endpoints: - ```hcl @@ -1049,12 +1048,17 @@ Valid time units are 'ns', 'us' (or 'µs'), 'ms', 's', 'm', 'h'." The following sub-keys are available: - - `enabled` ((#connect_enabled)) Controls whether Connect features are + - `enabled` ((#connect_enabled)) (Defaults to `false`) Controls whether Connect features are enabled on this agent. Should be enabled on all servers in the cluster - in order for Connect to function properly. Defaults to false. + in order for Connect to function properly. - - `enable_mesh_gateway_wan_federation` ((#connect_enable_mesh_gateway_wan_federation)) Controls whether cross-datacenter federation traffic between servers is funneled - through mesh gateways. Defaults to false. This was added in Consul 1.8.0. + - `enable_mesh_gateway_wan_federation` ((#connect_enable_mesh_gateway_wan_federation)) (Defaults to `false`) Controls whether cross-datacenter federation traffic between servers is funneled + through mesh gateways. This was added in Consul 1.8.0. + + - `enable_serverless_plugin` ((#connect_enable_serverless_plugin)) (Defaults to `false`) Determines whether the serverless plugin + is enabled. The serverless plugin supports [AWS + Lambda](https://aws.amazon.com/lambda/). For additional information on invoking Lambda functions + from mesh services, refer to the [Lambda documentation](/docs/lambda). - `ca_provider` ((#connect_ca_provider)) Controls which CA provider to use for Connect's CA. Currently only the `aws-pca`, `consul`, and `vault` providers are supported. diff --git a/website/content/docs/agent/telemetry.mdx b/website/content/docs/agent/telemetry.mdx index cd33454991..0435a42c84 100644 --- a/website/content/docs/agent/telemetry.mdx +++ b/website/content/docs/agent/telemetry.mdx @@ -85,6 +85,7 @@ These are some metrics emitted that can help you understand the health of your c | `consul.raft.leader.lastContact` | Measures the time since the leader was last able to contact the follower nodes when checking its leader lease. | ms | timer | | `consul.raft.state.candidate` | Increments whenever a Consul server starts an election. | elections | counter | | `consul.raft.state.leader` | Increments whenever a Consul server becomes a leader. | leaders | counter | +| `consul.server.isLeader` | Track if a server is a leader(1) or not(0). | 1 or 0 | gauge | **Why they're important:** Normally, your Consul cluster should have a stable leader. If there are frequent elections or leadership changes, it would likely indicate network issues between the Consul servers, or that the Consul servers themselves are unable to keep up with the load. @@ -480,6 +481,7 @@ These metrics are used to monitor the health of the Consul servers. | `consul.rpc.accept_conn` | Increments when a server accepts an RPC connection. | connections | counter | | `consul.catalog.register` | Measures the time it takes to complete a catalog register operation. | ms | timer | | `consul.catalog.deregister` | Measures the time it takes to complete a catalog deregister operation. | ms | timer | +| `consul.server.isLeader` | Track if a server is a leader(1) or not(0) | 1 or 0 | gauge | | `consul.fsm.register` | Measures the time it takes to apply a catalog register operation to the FSM. | ms | timer | | `consul.fsm.deregister` | Measures the time it takes to apply a catalog deregister operation to the FSM. | ms | timer | | `consul.fsm.session.` | Measures the time it takes to apply the given session operation to the FSM. | ms | timer | diff --git a/website/content/docs/api-gateway/consul-api-gateway-install.mdx b/website/content/docs/api-gateway/consul-api-gateway-install.mdx index 43e9cb3113..087c0e70ea 100644 --- a/website/content/docs/api-gateway/consul-api-gateway-install.mdx +++ b/website/content/docs/api-gateway/consul-api-gateway-install.mdx @@ -19,14 +19,10 @@ Ensure that the environment you are deploying Consul API Gateway in meets the re 1. Issue the following command to install the CRDs: - - ```shell-session $ kubectl apply --kustomize="github.com/hashicorp/consul-api-gateway/config/crd?ref=vVERSION" ``` - - 1. Create a `values.yaml` file for your Consul API Gateway deployment. Copy the content below into the `values.yaml` file. The `values.yaml` will be used by the Consul Helm chart. Available versions of the [Consul](https://hub.docker.com/r/hashicorp/consul/tags) and [Consul API Gateway](https://hub.docker.com/r/hashicorp/consul-api-gateway/tags) Docker images can be found on DockerHub, with additional context on version compatibility published in [GitHub releases](https://github.com/hashicorp/consul-api-gateway/releases). See [Helm Chart Configuration - apiGateway](https://www.consul.io/docs/k8s/helm#apigateway) for more available options on how to configure your Consul API Gateway deployment via the Helm chart. @@ -47,14 +43,10 @@ Ensure that the environment you are deploying Consul API Gateway in meets the re 1. Install Consul API Gateway using the standard Consul Helm chart and specify the custom values file. Available versions of the [Consul Helm chart](https://github.com/hashicorp/consul-k8s/releases) can be found in GitHub releases. - - ```shell-session $ helm install consul hashicorp/consul --version 0.43.0 --values values.yaml --create-namespace --namespace consul ``` - - ## Usage 1. Verify that the [requirements](#requirements) have been met. @@ -73,14 +65,10 @@ Ensure that the environment you are deploying Consul API Gateway in meets the re 1. Issue the `kubectl apply` command to implement the configurations, e.g.: - - ```shell-session $ kubectl apply -f gateway.yaml routes.yaml ``` - - **NOTE: ** You must fill out the `server.extraConfig` section with the datacenter -name of your primary datacenter running on VMs and with the IPs of your mesh +Notes: + +1. You must fill out the `server.extraConfig` section with the IPs of your mesh gateways running on VMs. +1. Set `global.federation.k8sAuthMethodHost` to the Kubernetes API URL of this cluster (including `https://`). +1. `global.federation.primaryDatacenter` should be set to the name of your primary datacenter. With your config file ready to go, follow our [Installation Guide](/docs/k8s/installation/install) to install Consul on your secondary cluster(s). diff --git a/website/content/docs/k8s/installation/vault/data-integration/bootstrap-token.mdx b/website/content/docs/k8s/installation/vault/data-integration/bootstrap-token.mdx index c6d430a03b..aa132e4b32 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/bootstrap-token.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/bootstrap-token.mdx @@ -7,11 +7,7 @@ description: >- # Storing the ACL Bootstrap Token in Vault -## Prerequisites -Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: -1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). -2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). - +This topic describes how to configure the Consul Helm chart to use an ACL bootstrap token stored in Vault. ## Overview To use an ACL bootstrap token stored in Vault, we will follow the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: @@ -22,8 +18,12 @@ To use an ACL bootstrap token stored in Vault, we will follow the steps outlined ### Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. +## Prerequisites +Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: +1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). ## One time setup in Vault ### Generate and Store the Secret in Vault @@ -75,7 +75,7 @@ you can run the following `helm template` command with your Consul on Kubernetes $ helm template --release-name ${RELEASE_NAME} -s templates/server-acl-init-serviceaccount.yaml hashicorp/consul ``` -### Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart +### Update the Consul on Kubernetes helm chart Now that you have configured Vault, you can configure the Consul Helm chart to use the ACL bootstrap token in Vault: diff --git a/website/content/docs/k8s/installation/vault/data-integration/connect-ca.mdx b/website/content/docs/k8s/installation/vault/data-integration/connect-ca.mdx index 6cfc276d24..121bb3ee2e 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/connect-ca.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/connect-ca.mdx @@ -7,17 +7,12 @@ description: >- # Vault as the Service Mesh Certificate Provider on Kubernetes +This topic describes how to configure the Consul Helm chart to use TLS certificates issued by Vault for Consul service mesh communication. + -> **Note:** This feature requires Consul 1.11 or higher. As of v1.11, Consul allows using Kubernetes auth methods to configure Connect CA. This allows for automatic token rotation once the renewal is no longer possible. - -## Prerequisites -Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: -1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). -2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). - - ## Overview To use an Vault as the Service Mesh Certificate Provider on Kubernetes, we will need to modify the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: @@ -26,7 +21,12 @@ To use an Vault as the Service Mesh Certificate Provider on Kubernetes, we will ### Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. + +## Prerequisites +Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: +1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). ## One time setup in Vault ### Store the secret in Vault @@ -60,7 +60,7 @@ you can run: $ helm template --release-name ${RELEASE_NAME} --show-only templates/server-serviceaccount.yaml hashicorp/consul ``` -### Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart +### Update the Consul on Kubernetes helm chart Now you can configure the Consul Helm chart to use Vault as the Connect CA provider: diff --git a/website/content/docs/k8s/installation/vault/data-integration/enterprise-license.mdx b/website/content/docs/k8s/installation/vault/data-integration/enterprise-license.mdx index a744f700d0..4333a71622 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/enterprise-license.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/enterprise-license.mdx @@ -7,11 +7,7 @@ description: >- # Storing the Enterprise License in Vault -## Prerequisites -Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: -1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). -2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). - +This topic describes how to configure the Consul Helm chart to use an enterprise license stored in Vault. ## Overview To use an enterprise license stored in Vault, we will follow the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: @@ -21,7 +17,12 @@ To use an enterprise license stored in Vault, we will follow the steps outlined ### Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. + +## Prerequisites +Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: +1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). ## One time setup in Vault ### Store the Secret in Vault @@ -88,7 +89,7 @@ you can run the following `helm template` commands with your Consul on Kubernete $ helm template --release-name ${RELEASE_NAME} -s templates/client-serviceaccount.yaml hashicorp/consul ``` -### Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. +### Update the Consul on Kubernetes helm chart. Now that you have configured Vault, you can configure the Consul Helm chart to use the enterprise enterprise license in Vault: @@ -97,6 +98,7 @@ use the enterprise enterprise license in Vault: ```yaml global: + image: hashicorp/consul-enterprise:1.12.0-ent secretsBackend: vault: enabled: true diff --git a/website/content/docs/k8s/installation/vault/data-integration/gossip.mdx b/website/content/docs/k8s/installation/vault/data-integration/gossip.mdx index 2482559b0b..57480a9ece 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/gossip.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/gossip.mdx @@ -7,11 +7,6 @@ description: >- # Storing Gossip Encryption Key in Vault -## Prerequisites -Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: -1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). -2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). - ## Overview To use a gossip encryption key stored in Vault, we will follow the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: @@ -21,7 +16,12 @@ To use a gossip encryption key stored in Vault, we will follow the steps outline ### Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. + +## Prerequisites +Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: +1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). ## One time setup in Vault ### Store the Secret in Vault @@ -86,7 +86,7 @@ you can run the following `helm template` commands with your Consul on Kubernete $ helm template --release-name ${RELEASE_NAME} -s templates/client-serviceaccount.yaml hashicorp/consul ``` -### Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart +### Update the Consul on Kubernetes helm chart Now that we've configured Vault, you can configure the Consul Helm chart to use the gossip key in Vault: diff --git a/website/content/docs/k8s/installation/vault/data-integration/index.mdx b/website/content/docs/k8s/installation/vault/data-integration/index.mdx index e7056f2307..5007fcfe9e 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/index.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/index.mdx @@ -7,14 +7,13 @@ description: >- # Vault as the Secrets Backend - Data Integration -## Prerequisites -Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). - ## Overview +This topic describes an overview of how to configure Vault and Consul in order to share secrets for use within Consul. + ### General Integration Steps -Generally, for each secret you wish to store in Vault, the process to integrate the date between Vault and Consul on Kubernetes is: +Generally, for each secret you wish to store in Vault, the process to integrate the data between Vault and Consul on Kubernetes is: #### One time setup in Vault 1. Store the secret in Vault. @@ -22,7 +21,10 @@ Generally, for each secret you wish to store in Vault, the process to integrate #### Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. + +## Prerequisites +Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). ### Example - Gossip Encryption Key Integration @@ -41,7 +43,7 @@ Following the general integration steps, a more detailed workflow for integratio - Both Consul servers and Consul clients need access to the gossip encryption key, so you create two Vault Kubernetes: - A role called `consul-server` that maps the Kubernetes namespace and service account name for your consul servers to the `gossip-policy` created in [step 2](#one-time-setup-in-vault) of One time setup in Vault. - A role called `consul-client` that maps the Kubernetes namespace and service account name for your consul clients to the `gossip-policy` created in [step 2](#one-time-setup-in-vault) of One time setup in Vault.. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. - Configure the Vault Kubernetes auth roles created for the gossip encryption key: - [`global.secretsBackend.vault.consulServerRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulserverrole) is set to the `consul-server` Vault Kubernetes auth role created previously. - [`global.secretsBackend.vault.consulClientRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulclientrole) is set to the `consul-client` Vault Kubernetes auth role created previously. @@ -64,6 +66,7 @@ It includes things like terminating gateways, ingress gateways, etc.) |[Snapshot Agent config](/docs/k8s/installation/vault/data-integration/snapshot-agent-config) | Consul snapshot agent | [`global.secretsBackend.vault.consulSnapshotAgentRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulsnapshotagentrole)| |[Server TLS credentials](/docs/k8s/installation/vault/data-integration/server-tls) | Consul servers
Consul clients
Consul components | [`global.secretsBackend.vault.consulServerRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulserverrole)
[`global.secretsBackend.vault.consulClientRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulclientrole)
[`global.secretsBackend.vault.consulCARole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulcarole)| |[Service Mesh and Consul client TLS credentials](/docs/k8s/installation/vault/data-integration/connect-ca) | Consul servers | [`global.secretsBackend.vault.consulServerRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulserverrole)| +|[Webhook TLS certificates for controller and connect inject](/docs/k8s/installation/vault/data-integration/connect-ca) | Consul controllers
Consul connect inject | [`global.secretsBackend.vault.controllerRole`](/docs/k8s/helm#v-global-secretsbackend-vault-controllerrole)
[`global.secretsBackend.vault.connectInjectRole`](/docs/k8s/helm#v-global-secretsbackend-vault-controllerrole)| ### Secondary Datacenters The mapping for secondary data centers is similar with the following differences: @@ -80,7 +83,7 @@ The mapping for secondary data centers is similar with the following differences |[Snapshot Agent config](/docs/k8s/installation/vault/data-integration/snapshot-agent-config) | Consul snapshot agent | [`global.secretsBackend.vault.consulSnapshotAgentRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulsnapshotagentrole)| |[Server TLS credentials](/docs/k8s/installation/vault/data-integration/server-tls) | Consul servers
Consul clients
Consul components | [`global.secretsBackend.vault.consulServerRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulserverrole)
[`global.secretsBackend.vault.consulClientRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulclientrole)
[`global.secretsBackend.vault.consulCARole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulcarole)| |[Service Mesh and Consul client TLS credentials](/docs/k8s/installation/vault/data-integration/connect-ca) | Consul servers | [`global.secretsBackend.vault.consulServerRole`](/docs/k8s/helm#v-global-secretsbackend-vault-consulserverrole)| - +|[Webhook TLS certificates for controller and connect inject](/docs/k8s/installation/vault/data-integration/connect-ca) | Consul controllers
Consul connect inject | [`global.secretsBackend.vault.controllerRole`](/docs/k8s/helm#v-global-secretsbackend-vault-controllerrole)
[`global.secretsBackend.vault.connectInjectRole`](/docs/k8s/helm#v-global-secretsbackend-vault-controllerrole)| ### Combining policies within roles As you can see in the table above, depending upon your needs, a Consul on Kubernetes service account could have the need to request more than one secret. In these cases, you will want to create one role for the Consul on Kubernetes service account that is mapped to multiple policies, each of which allows it access to a given secret. @@ -155,6 +158,7 @@ The following secrets can be stored in Vault KV secrets engine, which is meant t The following TLS certificates and keys can generated and managed by Vault the Vault PKI Engine, which is meant to handle things like certificate expiration and rotation: - [Server TLS credentials](/docs/k8s/installation/vault/data-integration/server-tls) - [Service Mesh and Consul client TLS credentials](/docs/k8s/installation/vault/data-integration/connect-ca) +- [Vault as the Webhook Certificate Provider for Consul Controller and Connect Inject on Kubernetes](/docs/k8s/installation/vault/data-integration/webhook-certs) ## Secrets to Service Account Mapping Read through the [detailed data integration guides](#detailed-data-integration-guides) that are pertinent to your environment. diff --git a/website/content/docs/k8s/installation/vault/data-integration/partition-token.mdx b/website/content/docs/k8s/installation/vault/data-integration/partition-token.mdx index 0bc1d318e3..2e7c7e68c2 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/partition-token.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/partition-token.mdx @@ -7,10 +7,7 @@ description: >- # Storing the ACL Partition Token in Vault -## Prerequisites -Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: -1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). -2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +This topic describes how to configure the Consul Helm chart to use an ACL partition token stored in Vault. ## Overview To use an ACL partition token stored in Vault, we will follow the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: @@ -21,7 +18,12 @@ To use an ACL partition token stored in Vault, we will follow the steps outlined ### Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. + +## Prerequisites +Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: +1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). ## One time setup in Vault ### Generate and Store the Secret in Vault @@ -74,7 +76,7 @@ you can run the following `helm template` command with your Consul on Kubernetes $ helm template --release-name ${RELEASE_NAME} -s templates/server-acl-init-serviceaccount.yaml hashicorp/consul ``` -### Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart +### Update the Consul on Kubernetes helm chart Now that you have configured Vault, you can configure the Consul Helm chart to use the ACL partition token key in Vault: diff --git a/website/content/docs/k8s/installation/vault/data-integration/replication-token.mdx b/website/content/docs/k8s/installation/vault/data-integration/replication-token.mdx index 6ac7518a2c..ed40fdea53 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/replication-token.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/replication-token.mdx @@ -7,11 +7,7 @@ description: >- # Storing the ACL Replication Token in Vault -## Prerequisites -Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: -1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). -2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). - +This topic describes how to configure the Consul Helm chart to use an ACL replication token stored in Vault. ## Overview To use an ACL replication token stored in Vault, we will follow the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: @@ -21,7 +17,12 @@ To use an ACL replication token stored in Vault, we will follow the steps outlin ### Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. + +## Prerequisites +Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: +1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). ## One time setup in Vault ### Generate and Store the Secret in Vault @@ -74,7 +75,7 @@ you can run the following `helm template` command with your Consul on Kubernetes $ helm template --release-name ${RELEASE_NAME} -s templates/server-acl-init-serviceaccount.yaml hashicorp/consul ``` -### Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart +### Update the Consul on Kubernetes helm chart Now that you have configured Vault, you can configure the Consul Helm chart to use the ACL replication token key in Vault: diff --git a/website/content/docs/k8s/installation/vault/data-integration/server-tls.mdx b/website/content/docs/k8s/installation/vault/data-integration/server-tls.mdx index 8150727371..38626c9dd5 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/server-tls.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/server-tls.mdx @@ -6,6 +6,18 @@ description: >- --- # Vault as the Server TLS Certificate Provider on Kubernetes + +## Overview +To use an Vault as the Server TLS Certificate Provider on Kubernetes, we will need to modify the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: + +### One time setup in Vault + 1. Create a Vault policy that authorizes the desired level of access to the secret. + +### Setup per Consul datacenter + 1. (Added) Configure allowed domains for PKI certificates + 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. + 1. Update the Consul on Kubernetes helm chart. + ## Prerequisites Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: 1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). @@ -39,19 +51,6 @@ which also uses an intermediate signing authority. common_name="dc1.consul" \ ttl=87600h ``` - - -## Overview -To use an Vault as the Server TLS Certificate Provider on Kubernetes, we will need to modify the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: - -### One time setup in Vault - 1. Create a Vault policy that authorizes the desired level of access to the secret. - -### Setup per Consul datacenter - 1. (Added) Create a Vault PKI role that establishes the domains that it is allowed to issue certificates for - 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. - ## One time setup in Vault ### Store the secret in Vault @@ -109,7 +108,7 @@ $ vault policy write ca-policy ca-policy.hcl -> **Note:** The PKI secret path referenced by the above Policy will be your `global.tls.caCert.secretName` Helm value. ## Setup per Consul datacenter -### Create a Vault PKI role that establishes the domains that it is allowed to issue certificates for +### Configure allowed domains for PKI certificates Next, a Vault role for the PKI engine will set the default certificate issuance parameters: @@ -138,8 +137,8 @@ export DATACENTER=dc1 echo allowed_domains=\"$DATACENTER.consul, $NAME-server, $NAME-server.$NAMESPACE, $NAME-server.$NAMESPACE.svc\" ``` -### Create a Vault auth roles that link the policy to each Consul on Kubernetes service account that requires access -Finally, three Kubernetes auth roles need to be created, one for the Consul servers, one for the Consul clients, and one for Consul components. +### Link the Vault policies to Consul workloads +Create three Vault auth roles, one for the Consul servers, one for the Consul clients, and one for Consul components, that link the policy to each Consul workload on Kubernetes service account that requires access. Role for Consul servers: ```shell-session @@ -184,7 +183,7 @@ $ vault write auth/kubernetes/role/consul-ca \ The above Vault Roles will now be your Helm values for `global.secretsBackend.vault.consulServerRole` and `global.secretsBackend.vault.consulCARole` respectively. -### Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart +### Update the Consul on Kubernetes helm chart Now that we've configured Vault, you can configure the Consul Helm chart to use the Server TLS certificates from Vault: diff --git a/website/content/docs/k8s/installation/vault/data-integration/snapshot-agent-config.mdx b/website/content/docs/k8s/installation/vault/data-integration/snapshot-agent-config.mdx index 6e6d4970ca..b8e4a1646d 100644 --- a/website/content/docs/k8s/installation/vault/data-integration/snapshot-agent-config.mdx +++ b/website/content/docs/k8s/installation/vault/data-integration/snapshot-agent-config.mdx @@ -7,11 +7,7 @@ description: >- # Storing the Snapshot Agent Config in Vault -## Prerequisites -Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: -1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). -2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). - +This topic describes how to configure the Consul Helm chart to use a snapshot agent config stored in Vault. ## Overview To use an ACL replication token stored in Vault, we will follow the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: @@ -23,7 +19,12 @@ To use an ACL replication token stored in Vault, we will follow the steps outlin ### Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. + +## Prerequisites +Prior to setting up the data integration between Vault and Consul on Kubernetes, you will need to have: +1. Read and completed the steps in the [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +2. Read the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). ## One time setup in Vault ### Store the Secret in Vault @@ -76,7 +77,7 @@ you can run the following `helm template` command with your Consul on Kubernetes $ helm template --release-name ${RELEASE_NAME} -s templates/client-snapshot-agent-serviceaccount.yaml hashicorp/consul ``` -### Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart +### Update the Consul on Kubernetes helm chart Now that you have configured Vault, you can configure the Consul Helm chart to use the snapshot agent config in Vault: diff --git a/website/content/docs/k8s/installation/vault/data-integration/webhook-certs.mdx b/website/content/docs/k8s/installation/vault/data-integration/webhook-certs.mdx new file mode 100644 index 0000000000..028ebb4962 --- /dev/null +++ b/website/content/docs/k8s/installation/vault/data-integration/webhook-certs.mdx @@ -0,0 +1,257 @@ +--- +layout: docs +page_title: Vault as the Webhook Certificate Provider for Consul Controller and Connect Inject on Kubernetes +description: >- + Configuring the Consul Helm chart to use TLS certificates issued by Vault for the Consul Controller and Connect Inject webhooks. +--- + +# Vault as the Controller and Connect Inject Webhook Certificate Provider on Kubernetes + +This topic describes how to configure the Consul Helm chart to use TLS certificates issued by Vault in the Consul controller and connect inject webhooks. + +## Overview +In a Consul Helm chart configuration that does not use Vault, webhook-cert-manager normally fulfills the role of ensuring that a valid certificate is updated to the `mutatingwebhookconfiguration` of either controller or connect inject to ensure that Kubernetes can communicate with each of these services. + +When Vault is configured as the controller and connect inject Webhook Certificate Provider on Kubernetes: + - `webhook-cert-manager` is no longer deployed to the cluster. + - controller and connect inject each get their webhook certificates from its own Vault PKI mount via the injected Vault Agent. + - controller and connect inject each need to be configured with its own Vault Role that has necessary permissions to receive certificates from its respective PKI mount. + - controller and connect inject each locally update its own `mutatingwebhookconfiguration` so that Kubernetes can relay events. + - Vault manages certificate rotation and rotates certificates to each webhook. + +To use Vault as the controller and connect inject Webhook Certificate Provider, we will need to modify the steps outlined in the [Data Integration](/docs/k8s/installation/vault/data-integration) section: + +### Setup per Consul datacenter + 1. Create a Vault policy that authorizes the desired level of access to the secret. + 1. (Added) Create Vault PKI roles for controller and connect inject each that establish the domains that each is allowed to issue certificates for. + 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. + 1. Configure the Vault Kubernetes auth roles in the Consul on Kubernetes helm chart. + +## Prerequisites +Complete the following prerequisites prior to implementing the integration described in this topic: +1. Verify that you have completed the steps described in [Systems Integration](/docs/k8s/installation/vault/systems-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +1. You should be familiar with the [Data Integration Overview](/docs/k8s/installation/vault/data-integration) section of [Vault as a Secrets Backend](/docs/k8s/installation/vault). +1. Configure [Vault as the Server TLS Certificate Provider on Kubernetes](/docs/k8s/installation/vault/data-integration/server-tls) +1. Configure [Vault as the Service Mesh Certificate Provider on Kubernetes](/docs/k8s/installation/vault/data-integration/connect-ca) +1. Complete the [Bootstrapping the PKI Engine for Controller and Connect Inject Webhooks](#bootstrapping-the-pki-engine-for-controller-and-connect-inject-webhooks) section. + +### Bootstrapping the PKI Engine for Controller and Connect Inject Webhooks + +The first step is to bootstrap the Vault cluster. Issue the following commands to enable and configure the PKI Secrets Engine to serve TLS certificates for the controller and connect inject webhooks: + +* Mount the PKI Secrets Engine for each: + + ```shell-session + $ vault secrets enable -path=controller pki + ``` + + ```shell-session + $ vault secrets enable -path=connect-inject pki + ``` + +* Tune the engine mounts to enable longer TTL: + + ```shell-session + $ vault secrets tune -max-lease-ttl=87600h controller + ``` + + ```shell-session + $ vault secrets tune -max-lease-ttl=87600h connect-inject + ``` + +* Generate the root CA for each: + + ```shell-session + $ vault write -field=certificate controller/root/generate/internal \ + common_name="-controller-webhook" \ + ttl=87600h + ``` + + ```shell-session + $ vault write -field=certificate connect-inject/root/generate/internal \ + common_name="-connect-injector" \ + ttl=87600h + ``` +## Setup per Consul datacenter +You will need to preform the following steps for each datacenter that you would like to manage controller and connect inject webhook certificates in Vault. You will want to take care to create different names per datacenter for every pki mount, role, and policy. + +### Create a Vault policy that authorizes the desired level of access to the secret +To use Vault to issue controller or connect inject webhook certificates, you will need to create the Vault policies that will allow either controller or connect inject to access its respective certificate-issuing URL. + +#### Create Vault Policies for the Controller and Connect Inject Webhook Certificates + +-> **Note:** The PKI secret paths referenced by the Vault Policies below will be your `global.secretsBackend.vault.controller.tlsCert.secretName` and `global.secretsBackend.vault.connectInject.tlsCert.secretName` Helm values respectively. + +The next step is to create a policy that allows `["create", "update"]` access to the +[certificate issuing URL](https://www.vaultproject.io/api/secret/pki#generate-certificate) so Consul controller and connect inject can fetch a new certificate/key pair and provide it to the Kubernetes `mutatingwebhookconfiguration`. Issue the following commands to create the policy: + + +```shell-session +$ vault policy write controller-tls-policy - < **Note:** The PKI secret paths referenced by the Vault Policies below will be your `global.secretsBackend.vault.controller.caCert.secretName` and `global.secretsBackend.vault.connectInject.caCert.secretName` Helm values respectively. + +Next, create a policy that allows `["read"]` access to the [CA URL](https://www.vaultproject.io/api/secret/pki#read-certificate). The policy is required so that Consul components can communicate with the Consul servers in order to fetch their auto-encryption certificates. Issue the following commands to create the policy: + +```shell-session +$ vault policy write controller-ca-policy - <` for each use the following script as a template: + +```shell-session +#!/bin/sh + +# NAME is set to either the value from `global.name` from your Consul K8s value file, or your $HELM_RELEASE_NAME-consul +export NAME=consulk8s +# NAMESPACE is where the Consul on Kubernetes is installed +export NAMESPACE=consul +# DATACENTER is the value of `global.datacenter` from your Helm values config file +export DATACENTER=dc1 + +echo allowed_domains_controller=\"${NAME}-controller-webhook,${NAME}-controller-webhook.${NAMESPACE},${NAME}-controller-webhook.${NAMESPACE}.svc,${NAME}-controller-webhook.${NAMESPACE}.svc.cluster.local\"" + +echo allowed_domains_connect_inject=\"${NAME}-connect-injector,${NAME}-connect-injector.${NAMESPACE},${NAME}-connect-injector.${NAMESPACE}.svc,${NAME}-connect-injector.${NAMESPACE}.svc.cluster.local\"" +``` + +### Create a Vault auth roles that link the policy to each Consul on Kubernetes service account that requires access + +-> **Note:** The Vault auth roles below will be your `global.secretsBackend.vault.controllerRole` and `global.secretsBackend.vault.connectInjectRole` Helm values respectively. + + +Finally, Kubernetes auth roles need to be created for controller and connect inject webhooks. + +Role for Consul controller webhooks: +```shell-session +$ vault write auth/kubernetes/role/controller-role \ + bound_service_account_names= \ + bound_service_account_namespaces= \ + policies=controller-ca-policy \ + ttl=1h +``` + +To find out the service account name of the Consul controller, +you can run: + +```shell-session + $ helm template --release-name ${RELEASE_NAME} --show-only templates/controller-serviceaccount.yaml hashicorp/consul +``` + +Role for Consul connect inject webhooks: + +```shell-session +$ vault write auth/kubernetes/role/connect-inject-role \ + bound_service_account_names= \ + bound_service_account_namespaces= \ + policies=connect-inject-ca-policy \ + ttl=1h +``` + +To find out the service account name of the Consul connect inject, use the command below. +```shell-session + $ helm template --release-name ${RELEASE_NAME} --show-only templates/connect-inject-serviceaccount.yaml hashicorp/consul +``` + +### Update the Consul on Kubernetes helm chart + +Now that we've configured Vault, you can configure the Consul Helm chart to +use the Server TLS certificates from Vault: + + + +```yaml +global: + secretsBackend: + vault: + enabled: true + consulServerRole: "consul-server" + consulClientRole: "consul-client" + consulCARole: "consul-ca" + controllerRole: "controller-role" + connectInjectRole: "connect-inject-role" + controller: + caCert: + secretName: "controller/cert/ca" + tlsCert: + secretName: "controller/issue/controller-role" + connectInject: + caCert: + secretName: "connect-inject/cert/ca" + tlsCert: + secretName: "connect-inject/issue/connect-inject-role" + tls: + enabled: true + enableAutoEncrypt: true + caCert: + secretName: "pki/cert/ca" +server: + serverCert: + secretName: "pki/issue/consul-server" + extraVolumes: + - type: "secret" + name: + load: "false" +connectInject: + enabled: true +controller: + enabled: true +``` + + + +The `vaultCASecret` is the Kubernetes secret that stores the CA Certificate that is used for Vault communication. To provide a CA, you first need to create a Kubernetes secret containing the CA. For example, you may create a secret with the Vault CA like so: + +```shell-session +$ kubectl create secret generic vault-ca --from-file vault.ca=/path/to/your/vault/ +``` diff --git a/website/content/docs/k8s/installation/vault/wan-federation.mdx b/website/content/docs/k8s/installation/vault/wan-federation.mdx index 093693aaac..b454dbec7a 100644 --- a/website/content/docs/k8s/installation/vault/wan-federation.mdx +++ b/website/content/docs/k8s/installation/vault/wan-federation.mdx @@ -309,7 +309,7 @@ To use Vault as the Service Mesh Certificate Provider in Kubernetes, you must co 1. Create a Vault policy that authorizes the desired level of access to the secrets. - Setup per Consul datacenter 1. Create Vault Kubernetes auth roles that link the policy to each Consul on Kubernetes service account that requires access. - 1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes helm chart. + 1. Update the Consul on Kubernetes helm chart. ### One time setup in Vault 1. Store the ACL Replication Token, Gossip Encryption Key, and Root CA certificate secrets in Vault. @@ -492,7 +492,7 @@ To use Vault as the Service Mesh Certificate Provider in Kubernetes, you must co ``` #### Pre-installation for Secondary Datacenter (dc2) -1. Configure the Vault Kubernetes auth role in the Consul on Kubernetes Helm chart. For secondary datacenter (dc2), you will need to get the address of the mesh gateway from the **primary datacenter (dc1)** cluster. +1. Update the Consul on Kubernetes helm chart. For secondary datacenter (dc2), you will need to get the address of the mesh gateway from the **primary datacenter (dc1)** cluster. Keep your Kubernetes context targeting dc1 and set the `MESH_GW_HOST` environment variable that you will use in the Consul Helm chart for secondary datacenter (dc2). diff --git a/website/content/docs/lambda/index.mdx b/website/content/docs/lambda/index.mdx new file mode 100644 index 0000000000..f95da54961 --- /dev/null +++ b/website/content/docs/lambda/index.mdx @@ -0,0 +1,33 @@ +--- +layout: docs +page_title: AWS Lambda +description: >- + Consul supports registering AWS Lambda functions as Consul services. This + section documents the process of integrating AWS Lambda with Consul services. +--- + +# AWS Lambda + +Lambda functions are programs or scripts that run in AWS Lambda. The functions process events and return responses. Refer to the [AWS Lambda website](https://aws.amazon.com/lambda/) for additional information. + +## How AWS Lambda Functions on Consul Work + +You can register AWS Lambda functions in Consul and invoke them from mesh services. +### Registering Lambda Functions + +Registering AWS Lambda functions into Consul requires [registering a service](/docs/discovery/services) +and storing a [service defaults configuration entry](/docs/connect/config-entries/service-defaults) +into Consul. + +We recommend using [Lambda registrator](https://github.com/hashicorp/terraform-aws-consul-lambda-registrator) +to automatically synchronize Lambda functions into Consul. Lambda functions can +also be manually registered into Consul when using Lambda registrator is not possible. + +See the [Registration page](/docs/lambda/registration) for more information +about registring Lambda functions into Consul. + +### Invoking Lambda Functions + +Lambda functions can be invoked by any mesh service directly from connect proxies or +through terminating gateways. The [Invocation page](/docs/lambda/invocation) +explains how to invoke Lambda functions from Consul connect services. diff --git a/website/content/docs/lambda/invocation.mdx b/website/content/docs/lambda/invocation.mdx new file mode 100644 index 0000000000..991c8eb92d --- /dev/null +++ b/website/content/docs/lambda/invocation.mdx @@ -0,0 +1,81 @@ +--- +layout: docs +page_title: Invoke Lambda Functions +description: >- + This topic describes how to invoke AWS Lambda functions from the Consul service mesh. +--- + +# Invoke Lambda Functions + +This topic describes how to invoke AWS Lambda functions from the Consul service mesh. + +## Overview + +You can invoke Lambda functions from the Consul service mesh through terminating gateways (recommended) or directly from connect proxies. + + +### Terminating Gateway + +We recommend invoking Lambda functions through terminating gateways. This method supports cross-datacenter communication, transparent +proxies, intentions, and all other Consul service mesh features. + +The terminating gateway must have [the appropriate IAM permissions](/docs/lambda/registration#configure-iam-permissions-for-envoy) +to invoke the function. + +The following diagram shows the invocation procedure: + + + +![Terminating Gateway to Lambda](/img/terminating_gateway_to_lambda.svg) + + + +1. Make an HTTP request to the local Connect proxy. +1. The Connect proxy forwards the request to the terminating gateway. +1. The terminating gateway invokes the function. + +### Connect Proxy + +You can invoke Lambda functions directly from a service's Connect proxy. +This method has the following limitations: +- Intentions are unsupported. Consul enforces intentions by validating the client certificates presented when a connection is received. Lambda does not support client certificate validation, which prevents Consul from supporting intentions using this method. +- Transparent proxies are unsupported. This is because Lambda services are not + registered to a proxy. + +This method is secure because AWS IAM permissions is required to invoke Lambda functions. Additionally, all communication is encrypted with Amazon TLS when invoking Lambda resources. + +The Envoy sidecar proxy must have the correct AWS IAM credentials to invoke the function. You can define the credentials in environment variables, EC2 metadata, or ECS task metadata. + +The following diagram shows the invocation procedure: + + + +![Connect Proxy to Lambda](/img/connect_proxy_to_lambda.svg) + + + +1. Make an HTTP request to the local Connect proxy. +2. The Connect proxy invokes the Lambda. + +## Invoke a Lambda Function +Before you can invoke a Lambda function, register the service used to invoke +the Lambda function and the service running in Lambda with +Consul (refer to [registration](/docs/lambda/registration) for +instructions). The service used to invoke the function must be deployed to the +service mesh. + +1. Update the invoking service to use the Lambda service as an upstream. In the following example, the `destination_name` for the invoking service (`api`) points to a Lambda service called `authentication`: + ```hcl + upstreams { + local_bind_port = 2345 + destination_name = "authentication" + } + ``` +1. Issue the `consul services register` command to store the configuration: + ```shell-sesion + $ consul services register api-sidecar-proxy.hcl + ``` +1. Call the upstream service to invoke the Lambda function. In the following example, the `api` service invokes the `authentication` service at `localhost:2345`: + ```shell-session + $ curl https://localhost:2345 + ``` diff --git a/website/content/docs/lambda/registration.mdx b/website/content/docs/lambda/registration.mdx new file mode 100644 index 0000000000..d7aae00780 --- /dev/null +++ b/website/content/docs/lambda/registration.mdx @@ -0,0 +1,283 @@ +--- +layout: docs +page_title: Register Lambda Functions +description: >- + This topic describes how to register AWS Lambda functions with Consul service mesh. +--- + +# Register Lambda Functions + +You can either manually register AWS Lambda functions with Consul or use the [Lambda registrator](https://github.com/hashicorp/terraform-aws-consul-lambda-registrator) +to automatically synchronize Lambda state into Consul. + +To manually register AWS Lambda functions into Consul, you must register a service into Consul and then write a [service defaults configuration entry](/docs/connect/config-entries/service-defaults) for the Lambda. + +The registrator automatically registers, reconfigures, and deregisters Lambdas based on the +Lambda function's tags (refer to the [AWS tag configuration documentation](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html) for details about tags). + +We recommend using the Lambda registrator when possible so that you can keep the configuration entry up to date. + +## Requirements + +* Consul 1.12.1 and later + +## Prerequisites + +Complete the following prerequisites prior to registering your Lambda functions. You only need to perform these steps once. + +### Enable the Serverless Plugin + +Add the following configuration to all Consul clients: + +`connect { enable_serverless_plugin = true, connect = true }` + +Refer to the [`enable_serverless_plugin`](/docs/agent/config/config-files#connect_enable_serverless_plugin) configuration documentation for additional information. + +### Configure IAM Permissions for Envoy + +The Envoy proxy that invokes Lambda must have the `lambda:InvokeFunction` AWS IAM +permissions. In the following example, the IAM policy +enables an IAM user or role to invoke the `example` Lambda function: +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "Invoke", + "Effect": "Allow", + "Action": [ + "lambda:InvokeFunction" + ], + "Resource": "arn:aws:lambda:us-east-1:123456789012:function:example" + } + ] +} +``` + +Define AWS IAM credentials in environment variables, EC2 metadata or +ECS metadata. On [AWS EKS](https://aws.amazon.com/eks/), associate an IAM role with the proxy's `ServiceAccount`. Refer to the [AWS IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) documentation for instructions. + + +### Optional: Set up a Terminating Gateway + +If you intend to invoke Lambda services through a terminating gateway, the gateway must be registered and running in the Consul datacenter. Refer to the following documentation and tutorials for instructions on how to set up a terminating gateway: + +* [Terminating gateways documentation](/docs/connect/gateways#terminating-gateways) +* [Terminating gateways on Kubernetes documentation](/docs/k8s/connect/terminating-gateways) +* [Connect External Services to Consul With Terminating Gateways tutorial](https://learn.hashicorp.com/tutorials/consul/terminating-gateways-connect-external-services) + +To register a Lambda service with a terminating gateway, add the service to the +`Services` field of the terminating gateway's `terminating-gateway` +configuration entry. + +### Optional: Run a Mesh Gateway + +You can set up a mesh gateway so that you can invoke Lambda services across datacenters and admin partitions. The mesh gateway must be running and registered in the relevant Consul datacenters and partitions. Refer to the following documentation and tutorials for instructions on how to set up mesh gateways: + +* [Mesh gateway documentation](/docs/connect/gateways#mesh-gateways) +* [Connect Services Across Datacenters with Mesh Gateways tutorial](https://learn.hashicorp.com/tutorials/consul/service-mesh-gateways) +* [Secure Service Mesh Communication Across Kubernetes Clusters tutorial](https://learn.hashicorp.com/tutorials/consul/kubernetes-mesh-gateways?in=consul/kubernetes) + +When using admin partitions, you must add Lambda services to the `Services` +field of [the `exported-services` configuration +entry](/docs/connect/config-entries/exported-services). + +## Automatic Lambda Function Registration + +You can deploy the Lambda registrator to your environment to automatically register and deregister Lambda functions with Consul based on the function's tags. Refer to the [AWS Lambda tags documentation](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html) to learn about tags. + +The registrator runs as a Lambda function that is invoked by AWS EventBridge. Refer to the [AWS EventBridge documentation](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) for additional information. + +EventBridge invokes the registrator using either [AWS CloudTrail](https://docs.aws.amazon.com/lambda/latest/dg/logging-using-cloudtrail.html) to syncronize with Consul in real-time or in [scheduled intervals](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html). + +CloudTrail events typically synchronize updates, registration, and deregistration within one minute, but events may occasionally be delayed. + +Scheduled events fully synchronize functions betwen Lambda and Consul to prevent entropy. By default, EventBridge triggers a full sync every five minutes. + +The following diagram shows the flow of events from EventBridge into Consul: + + + +![Lambda Registrator Architecture](/img/lambda_registrator_architecture.svg) + + + +1. EventBridge invokes the Lambda registrator based on CloudTrail Lambda events or a schedule. +2. Lambda registrator determines how to reconcile Lambda's control plane state + with Consul state and ensures they are in sync by registering, updating, and + deregistering Lambda services. + +### Deploy Lambda Registrator + +1. Create a Terraform configuration and specify the `lambda-registrator` module. In the following example, the Lambda registrator is deployed to `https://consul.example.com:8501`. Refer to [the Lambda registrator module documentation](https://registry.terraform.io/modules/hashicorp/consul-lambda-registrator/aws/0.1.0-beta1/submodules/lambda-registrator) for additional usage information: + ```hcl + module "lambda-registrator" { + source = "hashicorp/consul-lambda-registrator/aws//modules/lambda-registrator" + name = "consul-lambda-registrator" + consul_http_addr = "https://consul.example.com:8501" + ca_cert_path = aws_ssm_parameter.ca-cert.name + http_token_path = aws_ssm_parameter.acl-token.name + } + ``` + +1. Deploy Lambda registrator with `terraform apply`. + +#### Optional: Store the CA Certificate in Parameter Store + +When Lambda registrator makes a request to Consul's [HTTP API](/api-docs) over HTTPS and the Consul API is signed by a custom CA, Lambda registrator uses the CA certificate stored in AWS Parameter Store (refer to the [Parameter Store documentation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) for additional information) to verify the authenticity of the Consul API. You can apply the following Terraform configuration to store Consul’s server CA in Parameter Store: + +```hcl +resource "aws_ssm_parameter" "ca-cert" { + name = "/lambda-registrator/ca-cert" + type = "SecureString" + value = +} +``` + +#### Optional: Store the ACL Token in Parameter Store + +If [Consul access control lists (ACLs)](/docs/security/acl) are enabled, Lambda registrator must present an ACL token stored in Parameter Store to access resources. You can use the Consul CLI, API, or the Terraform provider to facilitate the ACL workflow. The following procedure describes how to create and store a token from the command line: + +1. Create an ACL policy that includes the following rule: + + + ```hcl + service_prefix "" { + policy = "write" + } + ``` + + + +1. Issue `consul acl policy create` command to create the policy. The following example creates a policy called `lambda-registrator-policy` containing permissions specified in `rules.hcl`: + ```shell-session + $ consul acl policy create -name "lambda-registrator-policy" -rules @rules.hcl + ``` +1. Issue the `consul acl token create` command to create the token. The following example creates a token linked to the `lambda-registrator-policy` policy: + ```shell-session + $ consul acl token create -policy-name "lambda-registrator-policy" + ``` +1. Store the token in Parameter Store by applying the following Terraform: + ```hcl + resource "aws_ssm_parameter" "acl-token" { + name = "/lambda-registrator/acl-token" + type = "SecureString" + value = + } + ``` + +#### Lambda Registrator Configuration Options + +| Name | Description | +| - | - | +| `name` | Specifies the name name of the Lambda function associated with the Lambda registrator. The name is also used to construct the Identity and Access Management (IAM) role and policy names used by the Lambda function. | +| `schedule_frequency_in_minutes` | Specifies the interval in minutes that EventBridge uses to trigger a full synchronization. Default is `5`. | +| `timeout` | The maximum number of seconds Lambda registrator can run per invocation before timing out. | +| `consul_http_addr` | Specifies the address of the Consul API client. | +| `consul_ca_cert_path` | Specifies the path to the CA certificate stored in the AWS Parameter Store. When Lambda registrator makes an HTTPS request to Consul's API and the Consul API is signed by a custom CA, Lambda registrator uses this CA certificate to verify the authenticity of the Consul API. At startup, Lambda registrator pulls the CA certificate at this path from Parameter Store, writes the certificate to the filesystem and stores the path of that file in `CONSUL_CACERT`. Also see [Optional: Store the CA Certificate in Parameter Store](#optional-store-the-ca-certificate-in-parameter-store)| +| `consul_http_token_path` | Specifies the path to the ACL token stored in AWS Parameter Store that Lambda registrator presents to access resources. This parameter only required when ACLs are enabled for the Consul server. It is used to fetch an ACL token from Parameter Store and is stored in the `CONSUL_HTTP_TOKEN` environment variable. Also see [Optional: Store the ACL Token in Parameter Store](#optional-store-the-acl-token-in-parameter-store)| +| `node_name` | The Consul node name that Lambdas will be registered to. This defaults to `lambdas`. | +| `enterprise` | Determines if the Consul server at `consul_http_addr` is running open source or enterprise. | +| `partitions` | The partitions that Lambda registrator manages. | + +### Register Lambda Functions + +Lambda registrator registers Lambda functions into Consul, regardless of how the functions are +deployed. The following procedure describes how to register Lambda functions with the Lambda registrator using Terraform, but you can also deploy a Lambda function with CloudFormation, the AWS user +interface, or Cloud Development Kit (CDK): + +1. Add the `aws_lambda_function` resource to your Terraform configuration and specify the name of the Lambda function. +1. Add a `tags` block to the resource and specify the tags you want to use to register the function (refer to [Supported Tags](#supported-tags)). + +In the following example, the `example` Lambda function is registered using the `enabled`, `payload-passthrough`, and `invocation-mode` tags: + +```hcl +resource "aws_lambda_function" "example" { + … + function_name = "lambda" + tags = { + "serverless.consul.hashicorp.com/v1alpha1/lambda/enabled" = "true" + "serverless.consul.hashicorp.com/alpha/lambda/payload-passthrough" = "true" + "serverless.consul.hashicorp.com/alpha/lambda/invocation-mode" = "ASYNCHRONOUS" + } +} +``` + +#### Supported Tags + +The following tags are supported. In all cases, the `` should be +`serverless.consul.hashicorp.com/v1alpha1/lambda`. For example, +`serverless.consul.hashicorp.com/v1alpha1/lambda/enabled`. + +| Tag | Description | +| - | - | +| `/enabled` | Determines if Lambda registrator will sync the Lambda into Consul. | +| `/payload-passthrough` | Determines if the body Envoy receives is converted to JSON or directly passed to Lambda. This attribute is optional and defaults to `false`. | +| `/invocation-mode` | Specifies the [Lambda invocation mode](https://docs.aws.amazon.com/lambda/latest/operatorguide/invocation-modes.html) Consul uses to invoke the Lambda. The default is `SYNCHRONOUS`, but `ASYNCHRONOUS` invocations are also supported. | +| `/namespace` | Specifies the Consul namespace the service will be registered in. Default is `default` if `enterprise` is enabled. | +| `/partition` | Specifies the Consul partition the service will be registered in. Defaults is `default` if `enterprise` is enabled. | +| `/aliases` | Specifies a `+`-separated string of Lambda aliases that will be registered into Consul. For example, if set to `dev+staging+prod`, the `dev`, `staging`, and `prod` aliases of the Lambda function will be registered into Consul. | + +## Manual Configuration +You can manually register Lambda functions if you are unable to automate the process using the Lambda registrator. +1. Create a configuration for registering the service. You can copy the following example and replace `` with your Consul service name for the Lambda function: + + + ```json + { + "Node": "lambdas", + "SkipNodeUpdate": true, + "NodeMeta": { + "external-node": "true", + "external-probe": "true" + }, + "Service": { + "Service": "" + } + } + ``` + + + +1. Save the configuration to `lambda.json`. +1. Send the configuration to the `catalog/register` API endpoint to register the service, for example: + ```shell-session + $ curl --request PUT --data @lambda.json localhost:8500/v1/catalog/register + ``` + +1. Create the `service-defaults` configuration entry and include the AWS tags used to invoke the Lambda function in the `Meta` field (see [Supported `Meta` Fields](#supported-meta-fields). The following example creates a `service-defaults` configuration entry named `lambda`: + + + + ```hcl + Kind = "service-defaults" + Name = "lambda" + Protocol = "http" + Meta = { + "serverless.consul.hashicorp.com/v1alpha1/lambda/enabled" = "true" + "serverless.consul.hashicorp.com/v1alpha1/lambda/arn" = "" + "serverless.consul.hashicorp.com/v1alpha1/lambda/payload-passthrough" = "true" + "serverless.consul.hashicorp.com/v1alpha1/lambda/region" = "us-east-2" + } + ``` + + + +1. Issue the `consul config write` command to store the configuration entry. For example: + ```shell-session + $ consul config write lambda-service-defaults.hcl + ```` + +### Supported `Meta` Fields + +The following tags are supported. In all cases, the `` should be +`serverless.consul.hashicorp.com/v1alpha1/lambda`. For example, +`serverless.consul.hashicorp.com/v1alpha1/lambda/enabled`. + +| Tag | Description | +| - | - | +| `/enabled` | Determines if Consul configures the service as an AWS Lambda. | +| `/payload-passthrough` | Determines if the body Envoy receives is converted to JSON or directly passed to Lambda. | +| `/arn` | Specifies the [AWS ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) for the service’s Lambda. | +| `/invocation-mode` | Determines if Consul configures the Lambda to be invoked using the `synchronous` or `asynchronous` [invocation mode](https://docs.aws.amazon.com/lambda/latest/operatorguide/invocation-modes.html). | +| `/region` | Specifies the AWS region the Lambda is running in. | diff --git a/website/content/docs/nia/api/health.mdx b/website/content/docs/nia/api/health.mdx new file mode 100644 index 0000000000..6a04aba5ea --- /dev/null +++ b/website/content/docs/nia/api/health.mdx @@ -0,0 +1,35 @@ +--- +layout: docs +page_title: Consul-Terraform-Sync Health API +description: >- + Consul-Terraform-Sync Health API +--- + +# Health + +The `/health` endpoint returns a successful response when Consul-Terraform-Sync (CTS) is available and running. Requests to this endpoint are not logged, which makes it suitable for health checks that constantly poll CTS. + +| Method | Path | Produces | +| ------ | ------------------- | ------------------ | +| `GET` | `/health` | `application/json` | + +### Response Statuses + +| Status | Reason | +| ------ | ---------------------------------------------------- | +| 200 | CTS is healthy | + +### Example + +The following request makes a `GET` call to the `health` endpoint: + +```shell-session +$ curl --request GET \ + localhost:8558/v1/health +``` + +Response: + +```json +{} +``` diff --git a/website/content/docs/nia/api/status.mdx b/website/content/docs/nia/api/status.mdx index 0e41027883..edfd512072 100644 --- a/website/content/docs/nia/api/status.mdx +++ b/website/content/docs/nia/api/status.mdx @@ -18,16 +18,16 @@ This endpoint currently returns the overall status information for all tasks. | ------ | ------------------- | ------------------ | | `GET` | `/status` | `application/json` | -#### Request Parameters +### Request Parameters Currently no request parameters are offered for the overall status API. -#### Response Statuses +### Response Statuses | Status | Reason | | ------ | ---------------- | | 200 | Successfully retrieved the status | -#### Response Fields +### Response Fields | Name | Type | Description | | ----- | ------ | ------------------ | @@ -40,7 +40,7 @@ Currently no request parameters are offered for the overall status API. |`enabled.true` | integer | The number of tasks that are enabled. |`enabled.false` | integer | The number of tasks that are disabled. -#### Example +### Example Request: ```shell-session @@ -79,7 +79,7 @@ Task health status value is determined by the success or failure of all stored [ | ------ | ------------------- | ------------------ | | `GET` | `/status/tasks/:task_name` | `application/json` | -#### Request Parameters +### Request Parameters | Name | Required | Type | Description | Default | | -------- | -------- | ------ | ------------------ | ------- | @@ -87,14 +87,14 @@ Task health status value is determined by the success or failure of all stored [ |`include` | Optional | string | Only accepts the value `"events"`. Use to include stored event information in response. | none |`status` | Optional | string | Only accepts health status values `"successful"`, `"errored"`, `"critical"`, or `"unknown"`. Use to filter response by tasks that have the specified health status value. Recommend setting this parameter when requesting all tasks i.e. no `task` parameter is set. | none -#### Response Statuses +### Response Statuses | Status | Reason | | ------ | ---------------- | | 200 | Successfully retrieved the task status | | 404 | Task with the given name not found | -#### Response Fields +### Response Fields The response is a JSON map of task name to a status information structure with the following fields. @@ -108,7 +108,7 @@ The response is a JSON map of task name to a status information structure with t |`events_url` | string | Relative URL to retrieve the event data stored for the task. |`events` | list[[Event](/docs/nia/api/status#event)] | List of stored events that inform the task's status. See [section below](/docs/nia/api/status#event) for information on event data. This field is only included in the response upon request by setting the `?include=events` parameter. The relative URL for the request to include events can be retrieved from the `events_url` field. -##### Event +#### Event Event represents the process of updating network infrastructure of a task. The data is captured in a JSON structure. For more details on the scope of an event, see [Event](/docs/nia/tasks#event). @@ -126,7 +126,7 @@ Event represents the process of updating network infrastructure of a task. The d |`config.source` | string | **Deprecated in CTS 0.5.0 and will be removed in v0.8.0.** Module configured for the task. |`config.providers` | list[string] | **Deprecated in CTS 0.5.0 and will be removed in v0.8.0.** List of the providers configured for the task. -#### Example: All Task Statuses +### Example: All Task Statuses Request: ```shell-session @@ -163,7 +163,7 @@ Response: } ``` -#### Example: Individual Task Status with Events +### Example: Individual Task Status with Events Request: ```shell-session diff --git a/website/content/docs/nia/api/tasks.mdx b/website/content/docs/nia/api/tasks.mdx index 14fb75dc12..b870d26718 100644 --- a/website/content/docs/nia/api/tasks.mdx +++ b/website/content/docs/nia/api/tasks.mdx @@ -9,6 +9,73 @@ description: >- The `/tasks` endpoints interact with the tasks that Consul-Terraform-Sync (CTS) is responsible for running. +## Get Tasks + +This endpoint returns information about all existing tasks. + +| Method | Path | Produces | +| ------ | ------------------- | ------------------ | +| `GET` | `/tasks` | `application/json` | + +### Response Statuses + +| Status | Reason | +| ------ | ---------------------------------------------------- | +| 200 | Successfully retrieved and returned a list of tasks | + +### Response Fields + +| Name | Type | Description | +| ------------ | ------------- | ---------------------------------------------------------------------------------- | +| `request_id` | string | The ID of the request. Used for auditing and debugging purposes. | +| `tasks` | list[[Task](/docs/nia/api/tasks#task-object)] | A list of Tasks | + +### Example: Retrieve all tasks + +In this example, CTS contains a single task + +Request: + +```shell-session +$ curl --request GET \ + localhost:8558/v1/tasks +``` + +Response: + +```json +{ + "request_id": "0e0290f9-94df-3a4a-fd17-72467a16083c", + "tasks": [ + { + "buffer_period": { + "enabled": true, + "max": "25s", + "min": "5s" + }, + "condition": { + "services": { + "cts_user_defined_meta": {}, + "datacenter": "", + "filter": "", + "names": ["api", "web"], + "namespace": "", + "use_as_module_input": true + } + }, + "description": "Writes the service name, id, and IP address to a file", + "enabled": true, + "module": "path/to/module", + "module_input": {}, + "name": "task_a", + "providers": ["my-provider"], + "variables": {}, + "version": "" + } + ] +} +``` + ## Get Task This endpoint returns information about an existing task. @@ -17,27 +84,27 @@ This endpoint returns information about an existing task. | ------ | ------------------- | ------------------ | | `GET` | `/tasks/:task_name` | `application/json` | -#### Request Parameters +### Request Parameters | Name | Required | Type | Description | Default | | ------------ | -------- | ------ | ------------------------------------------ | ------- | | `:task_name` | Required | string | Specifies the name of the task to retrieve | none | -#### Response Statuses +### Response Statuses | Status | Reason | | ------ | ---------------------------------------------------- | | 200 | Successfully retrieved and returned task information | | 404 | Task with the given name not found | -#### Response Fields +### Response Fields | Name | Type | Description | | ------------ | ------ | ---------------------------------------------------------------------------------- | | `request_id` | string | The ID of the request. Used for auditing and debugging purposes. | | `task` | object | The task's configuration information. See [task object](#task-object) for details. | -#### Example: Retrieve a task +### Example: Retrieve a task Request: @@ -94,32 +161,32 @@ This endpoint allows for creation of a task. It only supports creation of a new | ------ | -------- | ------------------ | | `POST` | `/tasks` | `application/json` | -#### Request Parameters +### Request Parameters | Name | Required | Type | Description | Default | | ----- | -------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | | `run` | Optional | string | Values can only be `"inspect"` and `"now"`.
  • `"inspect"`: Does not create the task but returns information on if/how resources would be changed for the proposed task creation.
  • `"now"`: Creates the task accordingly and immediately runs the task, rather than allowing the task to run at the natural daemon cadence
| none | -#### Request Body +### Request Body | Name | Required | Type | Description | | ------ | -------- | ------ | ---------------------------------------------------------------------------------- | | `task` | Required | object | The task's configuration information. See [task object](#task-object) for details. | -#### Response Statuses +### Response Statuses | Status | Reason | | ------ | ----------------------------- | | 201 | Successfully created the task | -#### Response Fields +### Response Fields | Name | Type | Description | | ------------ | ------ | ------------------------------------------------------------------------------------------------- | | `request_id` | string | The ID of the request. Used for auditing and debugging purposes. | | `task` | object | The task's configuration information after creation. See [task object](#task-object) for details. | -#### Example: Create a task +### Example: Create a task Payload: @@ -184,33 +251,33 @@ Response: ## Update Task -This endpoint allows patch updates to specifically supported fields for existing tasks. Currently only supports updating a task's [`enabled` value](/docs/nia/configuration#enabled-4). +This endpoint allows patch updates to specifically supported fields for existing tasks. Currently only supports updating a task's [`enabled` value](/docs/nia/configuration#enabled-7). | Method | Path | Produces | | ------- | ------------------- | ------------------ | | `PATCH` | `/tasks/:task_name` | `application/json` | -#### Request Parameters +### Request Parameters | Name | Required | Type | Description | Default | | ------------ | -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | | `:task_name` | Required | string | Specifies the name of the task to update | none | | `run` | Optional | string | Values can only be `"inspect"` and `"now"`.
  • `"inspect"`: Does not update the task but returns information on if/how resources would be changed for the proposed task update.
  • `"now"`: Updates the task accordingly and immediately runs the task, rather than allowing the task to run at the natural daemon cadence
| none | -#### Request Body +### Request Body | Name | Required | Type | Description | | --------- | -------- | ------- | -------------------------------------------------------- | | `enabled` | Required | boolean | Whether the task is enabled to run and manage resources. | -#### Response Statuses +### Response Statuses | Status | Reason | | ------ | ---------------------------------- | | 200 | Successfully updated the task | | 404 | Task with the given name not found | -#### Response Fields +### Response Fields | Name | Type | Description | | ------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -218,7 +285,7 @@ This endpoint allows patch updates to specifically supported fields for existing | `inspect.changes_present` | boolean | Whether or not changes were detected for running the proposed task update. | | `inspect.plan` | string | The Terraform plan generated for the proposed task update. Note: a non-empty string does not necessarily indicate changes were detected. | -#### Example: Disable a task +### Example: Disable a task Request: @@ -235,7 +302,7 @@ Response: {} ``` -#### Example: Inspect enabling a task +### Example: Inspect enabling a task Request: @@ -278,33 +345,33 @@ This endpoint allows for deletion of existing tasks. It marks a task for deletio | -------- | ------------------- | ------------------ | | `DELETE` | `/tasks/:task_name` | `application/json` | -#### Request Parameters +### Request Parameters | Name | Required | Type | Description | Default | | ------------ | -------- | ------ | ------------------------------------------ | ------- | | `:task_name` | Required | string | Specifies the name of the task to retrieve | none | -#### Response Statuses +### Response Statuses | Status | Reason | | ------ | ----------------------------------------- | | 202 | Successfully marked the task for deletion | | 404 | Task with the given name not found | -#### Response Fields +### Response Fields | Name | Type | Description | | ------------ | ------ | ---------------------------------------------------------------- | | `request_id` | string | The ID of the request. Used for auditing and debugging purposes. | -#### Sample Request +### Sample Request ```shell-session $ curl --request DELETE \ localhost:8558/v1/tasks/task_a ``` -#### Sample Response +### Sample Response ```json { @@ -331,4 +398,5 @@ The task object is used by the Task APIs as part of a request or response. It re | `providers` | list[string] | Optional | The list of provider names that the task's module uses. | none | | `variables` | map[string] | Optional | The map of variables that are provided to the task's module. | none | | `version` | string | Optional | The version of the configured module that the task uses. | The latest version. | -| `terraform_version` | string | Optional | The version of Terraform to use for the Terraform Cloud workspace associated with the task. This is only available when used with the [Terraform Cloud driver](/docs/nia/configuration#terraform-driver). | The latest compatible version supported by the organization. | +| `terraform_version` | string | Optional | **Deprecated in CTS 0.6.0 and will be removed in 0.8.0. Review `terraform_version` in `terraform_cloud_workspace` instead.** The version of Terraform to use for the Terraform Cloud workspace associated with the task. This is only available when used with the [Terraform Cloud driver](/docs/nia/configuration#terraform-cloud-driver). | The latest compatible version supported by the organization. | +| `terraform_cloud_workspace` | object | Optional | The [configurable attributes of the Terraform Cloud workspace](/docs/nia/configuration#terraform_cloud_workspace) associated with the task. This option is only available when used with the [Terraform Cloud driver](/docs/nia/configuration#terraform-cloud-driver).| none | diff --git a/website/content/docs/nia/cli/index.mdx b/website/content/docs/nia/cli/index.mdx index de64b28d05..c8a6292438 100644 --- a/website/content/docs/nia/cli/index.mdx +++ b/website/content/docs/nia/cli/index.mdx @@ -11,53 +11,19 @@ Consul-Terraform-Sync (CTS) is controlled via an easy to use command-line interf ## Daemon -When running as a daemon, there is no default configuration to run CTS in a meaningful way. Setting a configuration flag `-config-file` or `-config-dir` is required. For example: +~> Running CTS as a daemon without using a command is deprecated in CTS 0.6.0 and will be removed at a much later date in a major release. For information on the preferred way to run CTS as a daemon review the [`start` command docs](/docs/nia/cli/start) + +When CTS runs as a daemon, there is no default configuration to start CTS. You must set a configuration flag -config-file or -config-dir. For example: ```shell-session -$ consul-terraform-sync -config-file=config.hcl +$ consul-terraform-sync start -config-file=config.hcl ``` -To view a list of available flags, use the `-help` or `-h` flag. - -### Modes - -CTS can be run as a daemon in different modes. - -#### Long-running Mode - -Flag: none - -Behavior: This is the default mode in which CTS passes through a once-mode phase and then turns into a long running process. During the once-mode phase, the daemon will exit with a non-zero status if it encounters an error. After successfully passing through once-mode phase, it will begin a long-running process in which errors are logged and exiting is not expected behavior. Once beginning the long-running process, the daemon serves any API and command requests. - -Usage: Intended to be run as a long running process after running once-mode successfully for given configuration and tasks. - -#### Inspect Mode - -Flag: `-inspect` - -Behavior: CTS will display the proposed state changes for all tasks once and exit. No changes are applied in this mode. On encountering an error before completing, CTS will exit with a non-zero status. - -Usage: Intended to be run before daemon-mode in order to confirm configuration is accurate and tasks would update network infrastructure as expected. - ---- - -Flag: `-inspect-task [task-name]` - -Behavior: This has similar behavior as `-inspect` mode for the selected task. The flag can be specified multiple times to inspect multiple tasks. No changes are applied in this mode. - -Usage: Useful to debug one or more tasks to confirm configuration is accurate and the selected tasks would update network infrastructure as expected. - -#### Once Mode - -Flag: `-once` - -Behavior: CTS will run all tasks once with buffer periods disabled and exit. On encountering an error before completing, CTS will exit with a non-zero status. - -Usage: Intended to be run before daemon-mode in order to confirm configuration is accurate and tasks update network infrastructure as expected. +To review a list of available flags, use the `-help` or `-h` flag. ## Commands -In addition to running the daemon, CTS has a set of commands that act as a client to the daemon server. The commands provide a user-friendly experience interacting with the daemon. The commands use the CTS APIs but does not correspond one-to-one with it. Please see the individual commands in the left navigation for more details. +In addition to running the daemon, CTS has a set of commands that act as a client to the daemon server. The commands provide a user-friendly experience interacting with the daemon. The commands use the CTS APIs but does not correspond one-to-one with it. Please review the individual commands in the left navigation for more details. To get help for a command, run: `consul-terraform-sync -h` @@ -78,6 +44,40 @@ Example: consul-terraform-sync task disable -http-addr=http://localhost:2000 task_a ``` +### Autocompletion + +The `consul-terraform-sync` command features opt-in autocompletion for flags, subcommands, and +arguments (where supported). + +To enable autocompletion, run: +```shell-session +$ consul-terraform-sync -autocomplete-install +``` + +~> After you install autocomplete, you must restart your shell for the change to take effect. + +When you start typing a CTS command, press the `` key to show a +list of available completions. To show available flag completes, type `-`. + +Autocompletion will query the running CTS server to return helpful argument suggestions. For example, for the `task disable` command, autocompletion will return the names of all enabled tasks that can be disabled. + +When autocompletion makes the query to the running CTS server, it will also use any `CTS_*` environment variables (for example `CTS_ADDRESS`) set on the CTS server. + +#### Example: Use autocomplete to discover how to disable a task + +Assume a tab is typed at the end of each prompt line: + +```shell-session +$ consul-terraform-sync +start task + +$ consul-terraform-sync task +create delete disable enable + +$ consul task disable +task_name_a task_name_b task_name_c +``` + ### General Options Below are options that can be used across all commands: diff --git a/website/content/docs/nia/cli/start.mdx b/website/content/docs/nia/cli/start.mdx new file mode 100644 index 0000000000..04534d4a38 --- /dev/null +++ b/website/content/docs/nia/cli/start.mdx @@ -0,0 +1,62 @@ +--- +layout: docs +page_title: Start Command +description: >- + Consul-Terraform-Sync supports start command for starting CTS as a daemon +--- + +# start + +The `start` command starts Consul-Terraform-Sync (CTS) as a daemon. When CTS runs as a daemon, there is no default configuration to start CTS. You must set a configuration flag `-config-file` or `-config-dir`. For example: + +```shell-session +$ consul-terraform-sync start -config-file=config.hcl +``` + +To review a list of available flags, use the `-help` or `-h` flag. + +## Modes + +CTS can be run as a daemon in different modes. + +### Long-running Mode + +Flag: none + +Behavior: This is the default mode in which CTS passes through a once-mode phase and then turns into a long-running process. During the once-mode phase, the daemon will exit with a non-zero status if it encounters an error. After successfully passing through once-mode phase, it will begin a long-running process in which errors are logged and exiting is not expected behavior. When the long-running process begins, CTS daemon starts serving API and command requests. + +### Inspect Mode + +Flag: `-inspect` + +Behavior: CTS will display the proposed state changes for all tasks once and exit. No changes are applied in this mode. On encountering an error before completing, CTS will exit with a non-zero status. + +Usage: Intended to be run before long-running mode in order to confirm configuration is accurate and tasks would update network infrastructure as expected. + +--- + +Flag: `-inspect-task [task-name]` + +Behavior: This has similar behavior as `-inspect` mode for the selected task. The flag can be specified multiple times to inspect multiple tasks. No changes are applied in this mode. + +Usage: Useful to debug one or more tasks to confirm configuration is accurate and the selected tasks would update network infrastructure as expected. + +### Once Mode + +Flag: `-once` + +Behavior: CTS will run all tasks once with buffer periods disabled and exit. On encountering an error before completing, CTS will exit with a non-zero status. + +Usage: Intended to be run before long-running mode in order to confirm configuration is accurate and tasks update network infrastructure as expected. + +## Options + +The `start` command supports the following options: + +| Name | Required | Type | Description |Default | +| --------------- | -------- | ------- | ------------------------------- | ----------------------- | +| `-config-dir `      | Required when`-config-file` is not set | string | A directory to load files for configuring CTS. Configuration files require an .hcl or .json file extension in order to specify their format. This option can be specified multiple times to load different directories. | none | +| `-config-file`                        | Required when `-config-dir` is not set | string | A file to load for configuring CTS. Configuration file requires an .hcl or .json extension in order to specify their format. This option can be specified multiple times to load different configuration files. | none | +| `-inspect` | Optional | boolean | Run CTS in Inspect mode to print the proposed state changes for all tasks, and then exit. No changes are applied in this mode. | false | +| `-inspect-task`                             | Optional | string | Run CTS in Inspect mode to print the proposed state changes for the task, and then exit. The flag can be specified multiple times to inspect multiple tasks. No changes are applied in this mode. | none | +| `-once` | Optional | boolean | Render templates and run tasks once. Does not start the process in long-running mode and disables buffer periods. | false | diff --git a/website/content/docs/nia/compatibility.mdx b/website/content/docs/nia/compatibility.mdx index bdba0a4fbd..c4cc632858 100644 --- a/website/content/docs/nia/compatibility.mdx +++ b/website/content/docs/nia/compatibility.mdx @@ -13,10 +13,12 @@ The following tables list the Consul-Terraform-Sync (CTS) version compatibility Below are CTS versions with supported Consul versions. The latest CTS binary supports the three most recent Consul minor versions, along with their latest patch versions. -| CTS Version | Consul OSS & Enterprise Version | -| :------------------ | :------------------------------ | -| CTS Enterprise 0.3+ | 1.8+ | -| CTS OSS 0.1+ | 1.8+ | +| CTS Version | Consul OSS & Enterprise Version | HCP Consul Version | +| :--------------------- | :------------------------------ | :----------------- | +| CTS Enterprise 0.6+ | 1.8+ | 1.9+ | +| CTS Enterprise 0.3-0.5 | 1.8+ | N/A | +| CTS OSS 0.6+ | 1.8+ | 1.9+ | +| CTS OSS 0.1-0.5 | 1.8+ | N/A | ## Terraform @@ -25,7 +27,7 @@ CTS integration with Terraform is supported for the following: | CTS Version | Terraform CLI Version | Terraform Cloud Version | Terraform Enterprise Version | | :------------------ | :-------------------- | :---------------------- | :--------------------------- | | CTS Enterprise 0.4+ | 0.13 - 1.1 | Latest | v202010-2 - Latest | -| CTS Enterprise 0.3+ | 0.13 - 1.1 | N/A | v202010-2 - Latest | +| CTS Enterprise 0.3 | 0.13 - 1.1 | N/A | v202010-2 - Latest | | CTS OSS 0.3+ | 0.13 - 1.1 | N/A | N/A | | CTS OSS 0.2 | 0.13 - 1.0 | N/A | N/A | | CTS OSS 0.1 | 0.13 - 0.14 | N/A | N/A | diff --git a/website/content/docs/nia/configuration.mdx b/website/content/docs/nia/configuration.mdx index 49b3a13a43..2576a9fa0f 100644 --- a/website/content/docs/nia/configuration.mdx +++ b/website/content/docs/nia/configuration.mdx @@ -17,6 +17,7 @@ Top level options are reserved for configuring CTS. log_level = "INFO" working_dir = "sync-tasks" port = 8558 +id = "cts-01" syslog { facility = "local2" @@ -43,6 +44,7 @@ tls { - `max` - (string: "20s") The maximum period of time to wait after changes are detected before triggering related tasks. If `min` is set, the default period for `max` is 4 times the value of `min`. - `log_level` - (string: "INFO") The log level to use for CTS logging. This defaults to "INFO". The available log levels are "TRACE", "DEBUG", "INFO", "WARN", and "ERR". - `port` - (int: 8558) The port for CTS to use to serve API requests. +- `id` (string: Generated ID with the format `cts-`) The ID of the CTS instance. Used as the service ID for CTS if service registration is enabled. - `syslog` - Specifies the syslog server for logging. - `enabled` - (bool) Enable syslog logging. Specifying other option also enables syslog logging. - `facility` - (string: "local0") Name of the syslog facility to log to. @@ -55,11 +57,44 @@ tls { - `verify_incoming` - (bool: false) Enable mutual TLS. Requires all incoming connections to the CTS API to use a TLS connection and provide a certificate signed by a Certificate Authority specified by the `ca_cert` or `ca_path`. - `ca_cert` - (string) The path to a PEM-encoded certificate authority file used to verify the authenticity of the incoming client connections to the CTS API when `verify_incoming` is set to true. Takes precedence over `ca_path` if both are configured. - `ca_path` - (string) The path to a directory of PEM-encoded certificate authority files used to verify the authenticity of the incoming client connections to the CTS API when `verify_incoming` is set to true. -- `license_path` - (string) Configures the path to the file containing the license. A license must be set to use enterprise features. You can also set the license by defining the `CONSUL_LICENSE` and `CONSUL_LICENSE_PATH` environment variables. See [Setting the License](/docs/nia/enterprise/license#setting-the-license) for details. +- `license_path` - (string) **Deprecated in CTS 0.6.0 and will be removed in a future release. Use [license block](/docs/nia/configuration#license) instead.** Configures the path to the file that contains the license. You must specify a license in order to use enterprise features. You can also set the license by defining the `CONSUL_LICENSE` and `CONSUL_LICENSE_PATH` environment variables. For more information, refer to [Setting the License](/docs/nia/enterprise/license#setting-the-license). + +## License + +The `license` block configures how CTS loads its license with options to: +- Configure CTS to automatically retrieve a license from Consul. +- Provide a path to a license file. + +When a license block is not configured, CTS uses automatic license retrieval. + +```hcl +license { + path = "path/to/license.lic" + auto_retrieval { + enabled = true + } +} +``` + +| Parameter | Required | Type | Description | Default | +| --------- | -------- | ---- | ----------- | ------- | +| `path` | Optional | string | Configures the path to the file containing a license. If a path to a license is configured, this license is used until you enable automatic license retrieval. You can also set the license by defining the `CONSUL_LICENSE` and `CONSUL_LICENSE_PATH` environment variables. To learn more, review [Setting the License](/docs/nia/enterprise/license#setting-the-license). | none | +| `auto_retrieval` | Optional | object | Configures the license auto-retrieval used by CTS. To learn more, review [Auto-Retrieval](/docs/nia/configuration#auto-retrieval) for details | Review [Auto-Retrieval](/docs/nia/configuration#auto-retrieval) for defaults. | + + +#### Auto-Retrieval + +You can use the `auto_retrieval` block to configure the the automatic license retrieval in CTS. When enabled, CTS attempts to retrieve a new license from its configured Consul Enterprise backend once a day. If CTS cannot retrieve a license and the current license is reaching its expiration date, CTS attempts to retrieve a license with increased frequency, as defined by the [License Expiration Date Handling](/docs/nia/enterprise/license#license-expiration-handling). + +~> Enabling `auto_retrieval` is recommended when using HCP Consul, as HCP Consul licenses expire more frequently than Consul Enterprise licenses. Without auto-retrieval enabled, you have to restart CTS every time you load a new license. + +| Parameter | Required | Type | Description | Default | +| --------- | -------- | ---- | ----------- | ------- | +| `enabled` | Optional | string | If set to true, enables license auto-retrieval | true | ## Consul -The `consul` block is used to configure CTS connection with a Consul agent to perform queries to the Consul Catalog and Consul KV pertaining to task execution. +The `consul` block configures the CTS connection with a Consul agent so that CTS can perform queries for task execution. It also configures the automatic registration of CTS as a service with Consul. -> **Note:** Use HTTP/2 to improve Consul-Terraform-Sync performance when communicating with the local Consul process. [TLS/HTTPS](/docs/agent/config/config-files) must be configured for the local Consul with the [cert_file](/docs/agent/config/config-files#cert_file) and [key_file](/docs/agent/config/config-files#key_file) parameters set. For the Consul-Terraform-Sync configuration, set `tls.enabled = true` and set the `address` parameter to the HTTPS URL, e.g., `address = example.consul.com:8501`. If using self-signed certificates for Consul, you will also need to set `tls.verify = false` or add the certificate to `ca_cert` or `ca_path`. @@ -72,34 +107,111 @@ consul { tls {} token = null transport {} + service_registration { + service_name = "cts" + address = "172.22.0.2" + default_check { + address = "http://172.22.0.2:8558" + } + } } ``` -- `address` - (string: "localhost:8500") Address is the address of the Consul agent. It may be an IP or FQDN. -- `auth` - Auth is the HTTP basic authentication for communicating with Consul. - - `enabled` - (bool) - - `username` - (string) - - `password` - (string) -- `tls` - Configure TLS to use a secure client connection with Consul. Using HTTP/2 can solve issues related to hitting Consul's maximum connection limits, as well as improve efficiency when processing many blocking queries. This option is required for Consul-Terraform-Sync when connecting to a [Consul agent with TLS verification enabled for HTTPS connections](/docs/agent/config/config-files#verify_incoming). - - `enabled` - (bool) Enable TLS. Providing a value for any of the TLS options will enable this parameter implicitly. - - `verify` - (bool: true) Enables TLS peer verification. The default is enabled, which will check the global certificate authority (CA) chain to make sure the certificates returned by Consul are valid. - - If Consul is using a self-signed certificate that you have not added to the global CA chain, you can set this certificate with `ca_cert` or `ca_path`. Alternatively, you can disable SSL verification by setting `verify` to false. However, disabling verification is a potential security vulnerability. - - `ca_cert` - (string) The path to a PEM-encoded certificate authority file used to verify the authenticity of the connection to Consul over TLS. Can also be provided through the `CONSUL_CACERT` environment variable. - - `ca_path` - (string) The path to a directory of PEM-encoded certificate authority files used to verify the authenticity of the connection to Consul over TLS. Can also be provided through the `CONSUL_CAPATH` environment variable. - - `cert` - (string) The path to a PEM-encoded client certificate file provided to Consul over TLS in order for Consul to verify the authenticity of the connection from CTS. Required if Consul has `verify_incoming` set to true. Can also be provided through the `CONSUL_CLIENT_CERT` environment variable. - - `key` - (string) The path to the PEM-encoded private key file used with the client certificate configured by `cert`. Required if Consul has `verify_incoming` set to true. Can also be provided through the `CONSUL_CLIENT_KEY` environment variable. - - `server_name` - (string) The server name to use as the Server Name Indication (SNI) for Consul when connecting via TLS. Can also be provided through the `CONSUL_TLS_SERVER_NAME` environment variable. -- `token` - (string) The ACL token to use for client communication with the local Consul agent. The token can also be provided through the `CONSUL_TOKEN` or `CONSUL_HTTP_TOKEN` environment variables. More information on the required privileges required by CTS are available in the [Secure Consul-Terraform-Sync for Production](https://learn.hashicorp.com/tutorials/consul/consul-terraform-sync-secure?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS#configure-acl-privileges-for-consul-terraform-sync) tutorial -- `transport` - Transport configures the low-level network connection details. - - `dial_keep_alive` - (string: "30s") The amount of time for keep-alives. - - `dial_timeout` - (string: "30s") The amount of time to wait to establish a connection. - - `disable_keep_alives` - (bool) Determines if keep-alives should be used. Disabling this significantly decreases performance. - - `idle_conn_timeout` - (string: "5s") The timeout for idle connections. - - `max_idle_conns` - (int: 0) The maximum number of total idle connections across all hosts. The limit is disabled by default. - - `max_idle_conns_per_host` - (int: 100) The maximum number of idle connections per remote host. The majority of connections are established with one host, the Consul agent. - - To achieve the shortest latency between a Consul service update to a task execution, configure `max_idle_conns_per_host` equal to or greater than the number of services in automation across all tasks. - - This value should be lower than the configured [`http_max_conns_per_client`](/docs/agent/config/config-files#http_max_conns_per_client) for the Consul agent. If `max_idle_conns_per_host` and the number of services in automation is greater than the Consul agent limit, Consul-Terraform-Sync may error due to connection limits (status code 429). You may increase the agent limit with caution. _Note: requests to the Consul agent made by Terraform subprocesses or any other process on the same host as Consul-Terraform-Sync will contribute to the Consul agent connection limit._ - - `tls_handshake_timeout` - (string: "10s") amount of time to wait to complete the TLS handshake. + +| Parameter | Required | Type | Description | Default | +| --------- | -------- | ---- | ----------- | ------- | +| `address` | Optional | string | The address of the Consul agent. It may be an IP or FQDN. | `localhost:8500` | +| `token` | Optional | string | The ACL token to use for client communication with the local Consul agent. See [ACL Requirements](/docs/nia/configuration#acl-requirements) for required privileges.

The token can also be provided through the `CONSUL_TOKEN` or `CONSUL_HTTP_TOKEN` environment variables. | none | +| `auth` | Optional | [auth](/docs/nia/configuration#auth) | HTTP basic authentication for communicating with Consul || +| `tls` | Optional | [tls](/docs/nia/configuration#tls-1) | Secure client connection with Consul || +| `transport` | Optional | [transport](/docs/nia/configuration#transport) | Low-level network connection details || +| `service_registration` | Optional| [service_registration](/docs/nia/configuration#service-registration) | Options for how CTS will register itself as a service with a health check to Consul. || + +##### ACL Requirements +The following table describes the ACL policies required by CTS. For more information, refer to the [Secure Consul-Terraform-Sync for Production](https://learn.hashicorp.com/tutorials/consul/consul-terraform-sync-secure?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS#configure-acl-privileges-for-consul-terraform-sync) tutorial. + +| Policy | Resources | +| ------ | --------- | +| `service:read` | Any services monitored by tasks | +| `node:read` | Any nodes hosting services monitored by tasks | +| `keys:read` | Any Consul KV pairs monitored by tasks | +| `namespace:read` | Any namespaces for resources monitored by tasks | +| `service:write` | The CTS service when [service registration](/docs/nia/configuration#service-registration) is enabled | +| `keys:write` | `consul-terraform-sync/` Only required when using Consul as the [Terraform backend](/docs/nia/configuration#backend). | + + +#### Auth +Configures HTTP basic authentication for communicating with Consul. + +| Parameter | Required | Type | Description | Default | +| --------- | -------- | ---- | ----------- | ------- | +| `enabled` | Optional | boolean | Enables using HTTP basic authentication | `false` | +| `username` | Optional | string | Username for authentication| none | +| `password` | Optional | string | Password for authentication| none | + +#### TLS +Configure TLS to use a secure client connection with Consul. Using HTTP/2 can solve issues related to hitting Consul's maximum connection limits, as well as improve efficiency when processing many blocking queries. This option is required for Consul-Terraform-Sync when connecting to a [Consul agent with TLS verification enabled for HTTPS connections](/docs/agent/config/config-files#verify_incoming). + +If Consul is using a self-signed certificate that you have not added to the global CA chain, you can set this certificate with `ca_cert` or `ca_path`. Alternatively, you can disable SSL verification by setting `verify` to false. However, disabling verification is a potential security vulnerability. + +| Parameter | Required | Type | Description | Default | +| --------- | -------- | ---- | ----------- | ------- | +| `enabled` | Optional | boolean | Enable TLS. Providing a value for any of the TLS options enables this parameter implicitly. | `false` | +| `verify` | Optional | boolean | Enables TLS peer verification, which checks the global certificate authority (CA) chain to make sure the certificates returned by Consul are valid. | `true` | +| `ca_cert` | Optional | string | The path to a PEM-encoded certificate authority file used to verify the authenticity of the connection to Consul over TLS.

Can also be provided through the `CONSUL_CACERT` environment variable. | none | +| `ca_path` | Optional | string | The path to a directory of PEM-encoded certificate authority files used to verify the authenticity of the connection to Consul over TLS.

Can also be provided through the `CONSUL_CAPATH` environment variable. | none | +| `cert` | Optional | string | The path to a PEM-encoded client certificate file provided to Consul over TLS in order for Consul to verify the authenticity of the connection from CTS. Required if Consul has `verify_incoming` set to true.

Can also be provided through the `CONSUL_CLIENT_CERT` environment variable. | none | +| `key` | Optional | string | The path to the PEM-encoded private key file used with the client certificate configured by `cert`. Required if Consul has `verify_incoming` set to true.

Can also be provided through the `CONSUL_CLIENT_KEY` environment variable. | none | +| `server_name` | Optional | string | The server name to use as the Server Name Indication (SNI) for Consul when connecting via TLS.

Can also be provided through the `CONSUL_TLS_SERVER_NAME` environment variable. | none | + +#### Transport +Configures the low-level network connection details to Consul. + +To achieve the shortest latency between a Consul service update to a task execution, configure `max_idle_conns_per_host` equal to or greater than the number of services in automation across all tasks. This value should be lower than the configured [`http_max_conns_per_client`](/docs/agent/config/config-files#http_max_conns_per_client) for the Consul agent. + +If `max_idle_conns_per_host` and the number of services in automation is greater than the Consul agent limit, CTS may error due to connection limits (status code 429). You may increase the agent limit with caution. _Note: requests to the Consul agent made by Terraform subprocesses or any other process on the same host as CTS will contribute to the Consul agent connection limit._ + +| Parameter | Required | Type | Description | Default | +| --------- | -------- | ---- | ----------- | ------- | +| `dial_keep_alive` | Optional | string | The amount of time for keep-alives. | `30s` | +| `dial_timeout` | Optional | string | The amount of time to wait to establish a connection. | `30s` +| `disable_keep_alives` | Optional | boolean | Determines if keep-alives should be used. Disabling this significantly decreases performance. | `false`| +| `idle_conn_timeout` | Optional | string | The timeout for idle connections. | `5s` | +| `max_idle_conns` | Optional | integer | The maximum number of total idle connections across all hosts. The limit is disabled by default. | `0` | +| `max_idle_conns_per_host` | Optional | integer | The maximum number of idle connections per remote host. The majority of connections are established with one host, the Consul agent. | `100`| +| `tls_handshake_timeout` | Optional | string | The amount of time to wait to complete the TLS handshake. | `10s`| + + +#### Service Registration +CTS automatically registers itself with Consul as a service with a health check, using the [`id`](/docs/nia/configuration#id) configuration as the service ID. CTS deregisters itself with Consul when CTS stops gracefully. If CTS is unable to register with Consul, then it will log the error and continue without exiting. + +Service registration requires that the [Consul token](/docs/nia/configuration#consul) has an ACL policy of `service:write` for the CTS service. + +| Parameter | Required | Type | Description | Default | +| --------- | -------- | ---- | ----------- | ------- | +| `enabled` | Optional | boolean | Enables CTS to register itself as a service with Consul.| `true` | +| `service_name` | Optional | string | The service name for CTS. | `Consul-Terraform-Sync` | +| `address` | Optional | string | The IP address or hostname for CTS. | IP address of the Consul agent node | +| `namespace` | Optional | string | The namespace to register CTS in. | In order of precedence:
1. Inferred from the CTS ACL token
2. The `default` namespace. | +| `default_check.enabled` | Optional | boolean | Enables CTS to create the default health check. | `true` | +| `default_check.address` | Optional | string | The address to use for the default HTTP health check. Needs to include the scheme (`http`/`https`) and the port, if applicable. | `http://localhost:` or `https://localhost:`. Determined from the [port configuration](/docs/nia/configuration#port) and whether [TLS is enabled](/docs/nia/configuration#enabled-2) on the CTS API. | + +The default health check is an [HTTP check](/docs/discovery/checks#http-interval) that calls the [Health API](/docs/nia/api/health). The following table describes the values CTS sets for this default check, corresponding to the [Consul register check API](/api-docs/agent/check#register-check). If an option is not listed in this table, then CTS is using the default value. + +| Parameter | Value | +| --------- | ----- | +| Name | `CTS Health Status`| +| ID | `-health` | +| Namespace | `service_registration.namespace` | +| Notes | `Check created by Consul-Terraform-Sync`| +| DeregisterCriticalServiceAfter | `30m` | +| ServiceID | [`id`](/docs/nia/configuration#id) | +| Status | `critical` | +| HTTP | `/v1/health` | +| Method | `GET` | +| Interval | `10s` | +| Timeout | `2s` | +| TLSSkipVerify | `false` | ## Service @@ -197,7 +309,12 @@ task { - `condition` - (obj: required) The requirement that, when met, triggers CTS to execute the task. Only one `condition` may be configured per task. CTS supports different types of conditions, which each have their own configuration options. See [Task Condition](#task-condition) configuration for full details on configuration options for each condition type. - `source_input` - (obj) **Deprecated in CTS 0.5.0 and will be removed in 0.8.0. See the `module_input` block instead.** - `module_input` - (obj) Specifies a Consul object containing values or metadata to be provided to the Terraform Module. The `module_input` block defines any extra module inputs needed for task execution. This is in addition to any module input provided by the `condition` block or `services` field (deprecated). Multiple `module_input` blocks can be configured per task. [Task Module Input](#task-module-input) configuration for full details on usage and restrictions. -- `terraform_version` - (string) The version of Terraform to use for the Terraform Cloud workspace associated with the task. Defaults to the latest compatible version supported by the organization. This option is only available when used with the [Terraform Cloud driver](#terraform-cloud-driver); otherwise, set the version within the [Terraform driver](#terraform-driver). +- `terraform_version` - (string) **Deprecated in CTS 0.6.0 and will be removed in 0.8.0. Review `terraform_cloud_workspace.terraform_version` instead.** The version of Terraform to use for the Terraform Cloud workspace associated with the task. Defaults to the latest compatible version supported by the organization. This option is only available when used with the [Terraform Cloud driver](#terraform-cloud-driver); otherwise, set the version within the [Terraform driver](#terraform-driver). +- `terraform_cloud_workspace` - (obj) Configures attributes of the Terraform Cloud workspace associated with the task. This option is only available when used with the [Terraform Cloud driver](#terraform-cloud-driver). For global configurations of all workspaces, review [`driver.workspaces`](#workspaces). + - `execution_mode` - (string: "remote") The execution mode that determines whether to use Terraform Cloud as the Terraform execution platform. Only supports "remote" or "agent". + - `agent_pool_id` - (string) Only supported if `execution_mode` is set to "agent". The ID of the agent pool that should run the Terraform workloads. Either `agent_pool_id` or `agent_pool_name` are required if `execution_mode` is set to "agent". `agent_pool_id` takes precedence over `agent_pool_name` if both are provided. + - `agent_pool_name` - (string) Only supported if `execution_mode` is set to "agent". The name of the agent pool that should run the Terraform workloads. Only supported if `execution_mode` is set to "agent". Either `agent_pool_id` or `agent_pool_name` are required. `agent_pool_id` takes precedence over `agent_pool_name` if both are provided. + - `terraform_version` - (string) The version of Terraform to use for the Terraform Cloud workspace associated with the task. Defaults to the latest compatible version supported by the organization. ### Task Condition @@ -505,7 +622,7 @@ driver "terraform" { - `backend` - (obj) The backend stores [Terraform state files](https://www.terraform.io/docs/state/index.html) for each task. This option is similar to the [Terraform backend configuration](https://www.terraform.io/docs/configuration/backend.html). CTS supports Terraform backends used as a state store. - Supported backend options: [azurerm](https://www.terraform.io/docs/backends/types/azurerm.html), [consul](https://www.terraform.io/docs/backends/types/consul.html), [cos](https://www.terraform.io/docs/backends/types/cos.html), [gcs](https://www.terraform.io/docs/backends/types/gcs.html), [kubernetes](https://www.terraform.io/docs/backends/types/kubernetes.html), [local](https://www.terraform.io/docs/backends/types/local.html), [manta](https://www.terraform.io/docs/backends/types/manta.html), [pg](https://www.terraform.io/docs/backends/types/pg.html) (Terraform v0.14+), [s3](https://www.terraform.io/docs/backends/types/s3.html). Visit the Terraform documentation links for details on backend configuration options. - - If omitted, CTS will generate default values and use configurations from the [`consul` block](#consul) to configure [Consul as the backend](https://www.terraform.io/docs/backends/types/consul.html), which stores Terraform statefiles in the Consul KV. The [ACL token provided for Consul authentication](#token) is used to read and write to the KV store and requires [Consul KV privileges](https://learn.hashicorp.com/tutorials/consul/consul-terraform-sync-secure?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS#configure-acl-privileges-for-consul-terraform-sync). The Consul KV path is the base path to store state files for tasks. The full path of each state file will have the task identifier appended to the end of the path, e.g. `consul-terraform-sync/terraform-env:task-name`. + - If omitted, CTS will generate default values and use configurations from the [`consul` block](#consul) to configure [Consul as the backend](https://www.terraform.io/docs/backends/types/consul.html), which stores Terraform statefiles in the Consul KV. The [ACL token provided for Consul authentication](#consul) is used to read and write to the KV store and requires [Consul KV privileges](https://learn.hashicorp.com/tutorials/consul/consul-terraform-sync-secure?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS#configure-acl-privileges-for-consul-terraform-sync). The Consul KV path is the base path to store state files for tasks. The full path of each state file will have the task identifier appended to the end of the path, e.g. `consul-terraform-sync/terraform-env:task-name`. - The remote enhanced backend is not supported with the Terraform driver to run operations in Terraform Cloud. Use the [Terraform Cloud driver](#terraform-cloud-driver) to integrate CTS with Terraform Cloud for remote workspaces and remote operations. - `log` - (bool) Enable all Terraform output (stderr and stdout) to be included in the CTS log. This is useful for debugging and development purposes. It may be difficult to work with log aggregators that expect uniform log format. - `path` - (string) The file path to install Terraform or discover an existing Terraform binary. If omitted, Terraform will be installed in the same directory as the CTS daemon. To resolve an incompatible Terraform version or to change versions will require removing the existing binary or change to a different path. @@ -693,7 +810,7 @@ terraform_provider "example" { - `enabled` - (bool) Enabled controls whether the Vault integration is active. - `namespace` - (string) Namespace is the Vault namespace to use for reading secrets. This can also be set via the `VAULT_NAMESPACE` environment variable. - `renew_token` - (bool) Renews the Vault token. This can also be set via the `VAULT_RENEW_TOKEN` environment variable. -- `tls` - [(tls block)](#tls) TLS indicates the client should use a secure connection while talking to Vault. Supports the environment variables: +- `tls` - [(tls block)](#tls-1) TLS indicates the client should use a secure connection while talking to Vault. Supports the environment variables: - `VAULT_CACERT` - `VAULT_CAPATH` - `VAULT_CLIENT_CERT` diff --git a/website/content/docs/nia/enterprise/license.mdx b/website/content/docs/nia/enterprise/license.mdx index 15b2b96c52..740d52fbc7 100644 --- a/website/content/docs/nia/enterprise/license.mdx +++ b/website/content/docs/nia/enterprise/license.mdx @@ -17,9 +17,14 @@ All CTS Enterprise features are available with a valid Consul Enterprise license To get a trial license for CTS, you can sign-up for the [trial license for Consul Enterprise](/docs/enterprise/license/faq#q-where-can-users-get-a-trial-license-for-consul-enterprise). -## Setting the License +## Automatic License Retrieval +CTS automatically retrieves a license from Consul on startup and then attempts to retrieve a new license once a day. If the current license is reaching its expiration date, CTS attempts to retrieve a license with increased frequency, as defined by the [License Expiration Date Handling](/docs/nia/enterprise/license#license-expiration-handling). -Choose one of the following methods (in order of precedence) to set the license: +~> Enabling automatic license retrieval is recommended when using HCP Consul, as HCP Consul licenses expire more frequently than Consul Enterprise licenses. Without auto-retrieval enabled, you have to restart CTS every time you load a new license. + +## Setting the License Manually + +If a license needs to be manually set, choose one of the following methods (in order of precedence) to set the license: 1. Set the `CONSUL_LICENSE` environment variable to the license string. @@ -33,7 +38,15 @@ Choose one of the following methods (in order of precedence) to set the license: export CONSUL_LICENSE_PATH=// ``` -1. Configure the [`license_path`](/docs/nia/configuration#license_path) option in the configuration file to point to the file containing the license. +1. To point to the file containing the license, in the configuration file, configure the [`license`](/docs/nia/configuration#license) path option. + + ```hcl + license { + path = "//" + } + ``` + +1. To point to the file containing the license, in the configuration file, configure the [`license_path`](/docs/nia/configuration#license_path) option i. **Deprecated in CTS 0.6.0 and will be removed in a future release. Use [license block](/docs/nia/configuration#license) instead.** ```hcl license_path = "//" @@ -42,30 +55,29 @@ Choose one of the following methods (in order of precedence) to set the license: ~> **Note**: the [options to set the license and the order of precedence](/docs/enterprise/license/overview#binaries-without-built-in-licenses) are the same as Consul Enterprise server agents. Visit the [Enterprise License Tutorial](https://learn.hashicorp.com/tutorials/nomad/hashicorp-enterprise-license?in=consul/enterprise) for detailed steps on how to install the license key. -### Updating the License - -The previous section describes options for [setting the license](#setting-the-license) needed to start running CTS Enterprise. Use the following procedure to update the license when it expires or is near the expiration date: +### Updating the License Manually +To update the license when it expires or is near the expiration date and automatic license retrieval is disabled: 1. Update the license environment variable or configuration with the new license value or path to the new license file 1. Stop and restart CTS Enterprise Once CTS Enterprise starts again, it will pick up the new license and run the tasks with any changes that may have occurred between the stop and restart period. -## Notification and Termination Behavior +## License Expiration Handling Licenses have an expiration date and a termination date. The termination date is a time at or after the license expires. CTS Enterprise will cease to function once the termination date has passed. The time between the expiration and termination dates is a grace period. Grace periods are generally 24-hours, but you should refer to your license agreement for complete terms of your grace period. -When approaching expiration and termination, CTS Enterprise will provide notifications in the system logs: +When approaching expiration and termination, by default, CTS Enterprise will attempt to retrieve a new license. If auto-retrieval is disabled, CTS Enterprise will provide notifications in the system logs: -| Time period | Behavior | -| ------------------------------------------- | --------------------------------- | -| 30 days before expiration | Warning-level log every 24-hours | -| 7 days before expiration | Warning-level log every 1 hour | -| 1 hour before expiration | Warning-level log every 1 minute | -| 1 day before expiration | Warning-level log every 5 minutes | -| At or after expiration (before termination) | Error-level log every 1 minute | -| At or after termination | Error-level log and exit | +| Time period | Behavior - auto-retrieval enabled (default) |Behavior - auto-retrieval disabled | +| ------------------------------------------- |-------------------------------------------- |---------------------------------- | +| 30 days before expiration | License retrieval attempt every 24-hours | Warning-level log every 24-hours | +| 7 days before expiration | License retrieval attempt every 1 hour | Warning-level log every 1 hour | +| 1 day before expiration | License retrieval attempt every 5 minutes | Warning-level log every 5 minutes | +| 1 hour before expiration | License retrieval attempt every 1 minute | Warning-level log every 1 minute | +| At or after expiration (before termination) | License retrieval attempt every 1 minute | Error-level log every 1 minute | +| At or after termination | Error-level log and exit | Error-level log and exit | ~> **Note**: Notification frequency and [grace period](/docs/enterprise/license/faq#q-is-there-a-grace-period-when-licenses-expire) behavior is the same as Consul Enterprise. diff --git a/website/content/docs/nia/installation/run.mdx b/website/content/docs/nia/installation/run.mdx index 5dd000699b..d4746eb03d 100644 --- a/website/content/docs/nia/installation/run.mdx +++ b/website/content/docs/nia/installation/run.mdx @@ -18,7 +18,7 @@ description: >- 3. Run Consul-Terraform-Sync (CTS). ```shell-session - $ consul-terraform-sync -config-file + $ consul-terraform-sync start -config-file ``` 4. Check status of tasks. Replace port number if configured in Step 2. See additional API endpoints [here](/docs/nia/api) diff --git a/website/content/docs/nia/lorna.txt b/website/content/docs/nia/lorna.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/website/content/docs/nia/network-drivers/terraform-cloud.mdx b/website/content/docs/nia/network-drivers/terraform-cloud.mdx index 80894ad87a..829bc189e3 100644 --- a/website/content/docs/nia/network-drivers/terraform-cloud.mdx +++ b/website/content/docs/nia/network-drivers/terraform-cloud.mdx @@ -31,12 +31,12 @@ Once all workspaces are set up, CTS monitors the Consul catalog for service chan ## Remote Workspaces -CTS will discover or create a new workspaces based on your configured tasks. The task configuration options for `name`, `description`, and `terraform_version` are used to set the workspace name, description, and Terraform version. +CTS will discover or create a new workspaces based on your configured tasks. The task configuration [`name`](/docs/nia/configuration#name-1) and [`description`](/docs/nia/configuration#description) are used to set the workspace name and description. The task configuration [`terraform_cloud_workspace`](/docs/nia/configuration#terraform_cloud_workspace) is used to set options like Terraform version, execution mode, and agent pool if relevant. CTS will also use any globally set workspace configurations, specified in the driver configuration [`workspaces`](/docs/nia/configuration#workspaces). [![CTS Workspace Overview](/img/nia/cts-tfc-workspace.png)](/img/nia/cts-tfc-workspace.png) Workspace automation requirements for CTS are in place to avoid overriding other workspaces unintentionally. -* Must be set to remote execution mode +* Must be set to remote or agent execution mode * Cannot be connected to a VCS * Cannot have an existing configuration version uploaded by another application * Must satisfy workspace [tag requirements](/docs/nia/configuration#tags_allowlist) and [tag restrictions](/docs/nia/configuration#tags_denylist) set by the CTS operator @@ -47,9 +47,9 @@ Workspaces created by CTS will be configured with the following settings: | ------- | ----- | | Workspace name | CTS task name | | Description | CTS task description | -| Execution mode | Remote | +| Execution mode | [`task.terraform_cloud_workspace.execution_mode`](/docs/nia/configuration#execution_mode) or remote by default | | Apply method | Auto apply | -| Terraform Version | [`task.terraform_version`](/docs/nia/configuration#terraform_version) or the latest [Terraform version compatible with CTS](/docs/nia/compatibility#terraform) available for the organization. | +| Terraform Version | [`task.terraform_cloud_workspace.terraform_version`](/docs/nia/configuration#terraform_version-1), [`task.terraform_version`](/docs/nia/configuration#terraform_version) (deprecated), or the latest [Terraform version compatible with CTS](/docs/nia/compatibility#terraform) available for the organization. | | Tags | `source:cts` and [additional tags](/docs/nia/configuration#tags) set by the CTS operator | Other workspace settings can be pre-configured or updated, such as setting the workspace to [manual apply](#manual-apply) or adding a [run notification](https://www.terraform.io/docs/cloud/workspaces/notifications.html) to send messages to a Slack channel when CTS updates your network infrastructure. @@ -127,7 +127,7 @@ After creating a dedicated team, update the team's permissions with "Manage Work [![CTS Terraform Team Setup](/img/nia/cts-tfc-team-setup.png)](/img/nia/cts-tfc-team-setup.png) -After setting the team's permissions, the final setup step is to [generate the associated team token](https://www.terraform.io/docs/cloud/users-teams-organizations/api-tokens.html#team-api-tokens), which can be done on the same team management page. This token will be used by CTS for API authentication and will be used to configure the [`token`](/docs/nia/configuration#token-1) on the Terraform Cloud driver. +After setting the team's permissions, the final setup step is to [generate the associated team token](https://www.terraform.io/docs/cloud/users-teams-organizations/api-tokens.html#team-api-tokens), which can be done on the same team management page. This token will be used by CTS for API authentication and will be used to configure the [`token`](/docs/nia/configuration#token) on the Terraform Cloud driver. ### Recommendations diff --git a/website/content/docs/release-notes/consul-terraform-sync/v0_6_x.mdx b/website/content/docs/release-notes/consul-terraform-sync/v0_6_x.mdx new file mode 100644 index 0000000000..31fb9a8983 --- /dev/null +++ b/website/content/docs/release-notes/consul-terraform-sync/v0_6_x.mdx @@ -0,0 +1,59 @@ +--- +layout: docs +page_title: 0.6.x +description: >- + Consul-Terraform-Sync release notes for version 0.6.x +--- + +# Consul-Terraform-Sync 0.6.0 + +## Release Highlights + + +We have implemented the following features in this release: + +### Per-task Execution Mode with Support for Terraform Cloud Agent + +You can now execute Terraform tasks in `remote` or `cloud agent` mode. For more information, refer to the [per-task execution mode documentation](/docs/nia/network-drivers/terraform-cloud#remote-workspaces). + +### HCP Consul Support + +CTS now supports interoperability with HCP Consul. CTS retrieves licenses from HCP Consul so that users can keep their HCP Consul license or Consul enterprise deployment license in sync. + +### Auto Service-registration with Consul and Health API Endpoint + +CTS includes a new configuration block that automatically registers CTS as a service within Consul as soon as CTS is instantiated. This eliminates the manual step of registering CTS as a service within the Consul catalog. This service registration also enables health checking on CTS using the newly added [health API endpoint](/docs/nia/api/health#health). + +### CLI Discoverability + +We improved CTS's CLI discoverability functionality. The `consul-terraform-sync` command features opt-in [autocompletion](/docs/nia/cli#autocompletion) for flags, subcommands, and arguments + +### Health Check API + +CTS includes a new [API endpoint](/docs/nia/api/health#health) that provides operators with the health status of their CTS instance. + + +## Supported Software Versions + +- Consul: v1.9+ +- HCP Consul: Latest +- Terraform CLI: v0.13 - v1.1 +- Terraform Cloud: Latest +- Terraform Enterprise: v202010-2 - Latest + + +## What's Changed + +**Deprecations** + +* [[GH-790](https://github.com/hashicorp/consul-terraform-sync/issues/790)] Deprecate `terraform_version` task configuration in favor of `terraform_cloud_workspace.terraform_version` task configuration +* [[GH-810](https://github.com/hashicorp/consul-terraform-sync/issues/810)] Deprecate `license_path` configuration in favor of `license.path` configuration +* [[GH-866](https://github.com/hashicorp/consul-terraform-sync/issues/866)] Deprecate starting CTS as a daemon using no CLI command in favor of starting CTS as a daemon using the new `start` command + +## Changelogs + +The changelogs for this major release version and any maintenance versions are listed below. + +-> **Note**: These links will redirect you to the changelogs on the GitHub website. + +- [0.6.0](https://github.com/hashicorp/consul-terraform-sync/releases/tag/v0.6.0) diff --git a/website/content/docs/security/acl/acl-policies.mdx b/website/content/docs/security/acl/acl-policies.mdx index 4a2ea3bb68..25af824c6d 100644 --- a/website/content/docs/security/acl/acl-policies.mdx +++ b/website/content/docs/security/acl/acl-policies.mdx @@ -28,24 +28,21 @@ This section describes about how to assemble rules into policies. Refer to the [ A rule is composed of a resource declaration and an access level defined with the `policy` keyword and a [policy disposition](#policy-dispositions). The following syntax describes the basic structure of a rule: - ```hcl { policy = "" - } +} ``` - - - ```json -"": [{ - "policy": "" - }] +{ + "": { + "policy": "" + } +} ``` - Access to the specified resource is granted or denied based on the policy disposition. @@ -57,7 +54,6 @@ Many resources take an additional value that limits the scope of the rule to res The following syntax describes how to include a resource label in the rule: - ```hcl " - - ```json -"": [{ - " Labels provide operators with more granular control over access to the resource, but the following resource types do not take a label: @@ -89,20 +83,17 @@ Labels provide operators with more granular control over access to the resource, Use the following syntax to create rules for these resources: - ```hcl = "" ``` - - - ```json -"": "" +{ + "": "" +} ``` - ### Policy Dispositions @@ -122,7 +113,6 @@ You can define rules for labeled resources based on exact matches or by using re The following example rule is an exact match that denies access to services labeled `web-prod`: - ```hcl service "web-prod" { @@ -130,24 +120,21 @@ service "web-prod" { } ``` - - - ```json -"service": [{ - "web-prod" : [{ - "policy" : "deny" - }] -}] +{ + "service": { + "web-prod": { + "policy": "deny" + } + } +} ``` - You can append the resource with `_prefix` to match all resource labels beginning with the same value. The following example rule allows `write` access to all services with labels that begin with "web": - ```hcl service_prefix "web" { @@ -155,24 +142,21 @@ service_prefix "web" { } ``` - - - ```json -"service_prefix": [{ - "web" : [{ - "policy" : "write" - }] -}] +{ + "service_prefix": { + "web": { + "policy": "write" + } + } +} ``` - Prefix-based resource labels can also contain an empty string, which configures the rule to apply to all resources of the declared type. The following example rule allows `read` access to all `service` resources: - ```hcl service_prefix "" { @@ -180,18 +164,16 @@ service_prefix "" { } ``` - - - ```json -"service_prefix" : [{ - "" : [{ - "policy" :"read" - }] -}] +{ + "service_prefix": { + "": { + "policy":"read" + } + } +} ``` - When using prefix-based rules, the most specific prefix match determines the action. In a real-world scenario, a combination of rules would be combined to create a flexible policy. Each team or business unit would use tokens based on policies that enforce several rules, for example: @@ -216,7 +198,6 @@ HCL is human readable and interoperable with JSON, making it easy to automate po The following examples show the same policy formatted in HCL and JSON: - ```hcl # These control access to the key/value store. @@ -238,48 +219,28 @@ key "foo/bar/secret" { operator = "read" ``` - - - ```json { - "key": [ - { - "foo/bar/secret": [ - { - "policy": "deny" - } - ] - } - ], - "key_prefix": [ - { - "": [ - { - "policy": "read" - } - ] + "key_prefix": { + "": { + "policy": "read" }, - { - "foo/": [ - { - "policy": "write" - } - ] + "foo/": { + "policy": "write" }, - { - "foo/private/": [ - { - "policy": "deny" - } - ] + "foo/private/": { + "policy": "deny" } - ], + }, + "key": { + "foo/bar/secret": { + "policy": "deny" + } + }, "operator": "read" } ``` - ## Rule Scope @@ -318,7 +279,7 @@ You can can define several attributes that attach additional metadata and specif ### HTTP API Endpoint -The endpoint takes data formatted in HCL or JSON. Refer to the [ACL HTTP API endpoint documentation](/api-docs/acl/acl) for details about the API. +The endpoint takes data formatted in HCL or JSON. Refer to the [ACL HTTP API endpoint documentation](/api-docs/acl) for details about the API. The following example adds a set of rules to a policy called `my-app-policy`. The policy defines access to the `key` resource (Consul K/V). The rules are formatted in HCL, but they are wrapped in JSON so that the data can be sent using cURL: @@ -488,35 +449,41 @@ service "consul-snapshot" {
-### Enable Vault to Access the Consul Storage Backend +### Enable Vault to Access the Consul Storage Backend -If you are using [Vault](https://www.vaultproject.io/docs) to manage secrets in your infrastructure, you can configure Vault to use Consul's key/value (KV) store as backend storage to persist Vault's data. Refer to the [Consul KV documentation](/docs/dynamic-app-config/kv) and the [Vault storage documentation](https://www.vaultproject.io/docs/configuration/storage) for additional information. +If you are using [Vault](https://www.vaultproject.io/docs) to manage secrets in your infrastructure, you can configure Vault to use Consul's key/value (KV) store as backend storage to persist Vault's data. Refer to the [Consul KV documentation](/docs/dynamic-app-config/kv) and the [Vault storage documentation](https://www.vaultproject.io/docs/configuration/storage) for additional information. -In the following example, Vault is registered as a service and provided access to Consul's KV store. +In the following example, the ACL policy enables Vault to register as a service +and provides access to the `vault/` path in Consul's KV store. ```hcl -# Provide KV visibility to all agents. +# Provide KV visibility to all agents. agent_prefix "" { - "policy" = "read" + policy = "read" } # Enable resources prefixed with 'vault/' to write to the KV key_prefix "vault/" { - "policy" = "write" + policy = "write" } # Enable the vault service to write to the KV service "vault" { - "policy" = "write" + policy = "write" } # Enable the agent to initialize a new session. session_prefix "" { - "policy" = "write" + policy = "write" } ``` ```json { + "agent_prefix": { + "": { + "policy": "read" + } + }, "key_prefix": { "vault/": { "policy": "write" @@ -527,17 +494,12 @@ session_prefix "" { "policy": "write" } }, - "agent_prefix": { - "": { - "policy": "read" - } - }, "session_prefix": { "": { "policy": "write" } } } - ``` + diff --git a/website/content/docs/security/acl/acl-roles.mdx b/website/content/docs/security/acl/acl-roles.mdx index 27fc221f6a..ded89f2d38 100644 --- a/website/content/docs/security/acl/acl-roles.mdx +++ b/website/content/docs/security/acl/acl-roles.mdx @@ -79,8 +79,6 @@ Service identities are used during the authorization process to automatically ge Use the following syntax to define a service identity: - - ```json { "ServiceIdentities": [ @@ -92,16 +90,6 @@ Use the following syntax to define a service identity: } ``` - -```hcl -"ServiceIdentities" = { - "ServiceName" = "" - "Datacenters" = [""] -} -``` - - - - `ServiceIdentities`: Declares a service identity block. - `ServiceIdentities.ServiceName`: String value that specifies the name of the service you want to associate with the policy. - `ServiceIdentities.Datacenters`: Array that specifies the names of datacenters in which the service identity applies. This field is optional. @@ -136,28 +124,6 @@ Refer to the [rules reference](/docs/security/acl/acl-rules) for information abo The following role configuration contains service identities for the `web` and `db` services. Note that the `db` service is also scoped to the `dc1` datacenter so that the policy will only be applied to instances of `db` in `dc1`. - - - -```hcl -Description = "Showcases all input parameters" -Name = "example-role" -Policies = { - ID = "783beef3-783f-f41f-7422-7087dc272765" -} -Policies = { - Name = "node-read" -} -ServiceIdentities = { - ServiceName = "web" -} -ServiceIdentities = { - Datacenters = ["dc1"] - ServiceName = "db" -} -``` - - ```json @@ -191,7 +157,6 @@ ServiceIdentities = { ``` - During the authorization process, the following policies for the `web` and `db` services will be generated and linked to the token: @@ -243,9 +208,7 @@ node_prefix "" { ## Node Identities - - -You can specify a node identity when configuring roles or linking tokens to policies. _Node_ commonly refers to a Consul agent, but a node can also be a physical server, cloud instance, virtual machine, or container. +You can specify a node identity when configuring roles or linking tokens to policies. _Node_ commonly refers to a Consul agent, but a node can also be a physical server, cloud instance, virtual machine, or container. Node identities enable you to quickly construct policies for nodes, rather than manually creating identical polices for each node. They are used during the authorization process to automatically generate a policy for the node(s) specified. You can specify the token linked to the policy in the [`acl_tokens_agent`](/docs/agent/options#acl_tokens_agent) field when configuring the agent. @@ -253,32 +216,20 @@ Node identities enable you to quickly construct policies for nodes, rather than Use the following syntax to define a node identity: - - ```json { "NodeIdentities": [ { "NodeName": "", - "Datacenters": [""] + "Datacenter": "" } ] } ``` - -```hcl -NodeIdentities = { - NodeName = "" - Datacenters = [""] -} -``` - - - - `NodeIdentities`: Declares a node identity block. - `NodeIdentities.NodeName`: String value that specifies the name of the node you want to associate with the policy. -- `NodeIdentities.Datacenters`: Array that specifies the names of datacenters in which the node identity applies. This field is optional. +- `NodeIdentities.Datacenter`: String value that specifies the name of the datacenter in which the node identity applies. Refer to the the [API documentation for roles](/api-docs/acl/roles#sample-payload) for additional information and examples. @@ -306,25 +257,6 @@ Refer to the [rules reference](/docs/security/acl/acl-rules) for information abo The following role configuration contains a node identity for `node-1`. Note that the node identity is also scoped to the `dc2` datacenter. As a result, the policy will only be applied to nodes named `node-1` in `dc2`. - - - -```hcl -Description = "Showcases all input parameters" -Name = "example-role" -NodeIdentities = { - Datacenter = "dc2" - NodeName = "node-1", -} -Policies = { - ID = "783beef3-783f-f41f-7422-7087dc272765" -} -Policies = { - Name = "node-read" -} -``` - - ```json @@ -349,7 +281,6 @@ Policies = { ``` - During the authorization process, the following policy will be generated and linked to the token: diff --git a/website/content/docs/security/acl/acl-rules.mdx b/website/content/docs/security/acl/acl-rules.mdx index 5e6762c744..fc8806fd4b 100644 --- a/website/content/docs/security/acl/acl-rules.mdx +++ b/website/content/docs/security/acl/acl-rules.mdx @@ -15,7 +15,7 @@ The following table provides an overview of the resources you can use to create | Resource | Description | Labels | | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -| `acl` | Controls access to ACL operations in the [ACL API](/api-docs/acl/acl).
See [ACL Resource Rules](#acl-resource-rules) for details. | No | +| `acl` | Controls access to ACL operations in the [ACL API](/api-docs/acl).
See [ACL Resource Rules](#acl-resource-rules) for details. | No | | `partition`
`partition_prefix` | Controls access to one or more admin partitions.
See [Admin Partition Rules](#admin-partition-rules) for details. | Yes | | `agent`
`agent_prefix` | Controls access to the utility operations in the [Agent API](/api-docs/agent), such as `join` and `leave`.
See [Agent Rules](#agent-rules) for details. | Yes | | `event`
`event_prefix` | Controls access to event operations in the [Event API](/api-docs/event), such as firing and listing events.
See [Event Rules](#event-rules) for details. | Yes | @@ -26,7 +26,7 @@ The following table provides an overview of the resources you can use to create | `node`
`node_prefix`   | Controls access to node-level operations in the [Catalog API](/api-docs/catalog), [Health API](/api-docs/health), [Prepared Query API](/api-docs/query), [Network Coordinate API](/api-docs/coordinate), and [Agent API](/api-docs/agent)
See [Node Rules](#node-rules) for details. | Yes | | `operator`       | Controls access to cluster-level operations available in the [Operator API](/api-docs/operator) excluding keyring API endpoints.
See [Operator Rules](#operator-rules) for details. | No | | `query`
`query_prefix` | Controls access to create, update, and delete prepared queries in the [Prepared Query API](/api-docs/query). Access to the [node](#node-rules) and [service](#service-rules) must also be granted.
See [Prepared Query Rules](#prepared-query-rules) for details. | Yes | -| `service`
`service_prefix` | Controls service-level operations in the [Catalog API](/api-docs/catalog), [Health API](/api-docs/health), [Intentions API](/api-docs/connect/intentions), [Prepared Query API](/api-docs/query), and [Agent API](/api-docs/agent).
See [Service Rules](#node-rules) for details. | Yes | +| `service`
`service_prefix` | Controls service-level operations in the [Catalog API](/api-docs/catalog), [Health API](/api-docs/health), [Intentions API](/api-docs/connect/intentions), [Prepared Query API](/api-docs/query), and [Agent API](/api-docs/agent).
See [Service Rules](#service-rules) for details. | Yes | | `session`
`session_prefix` | Controls access to operations in the [Session API](/api-docs/session).
See [Session Rules](#session-rules) for details. | Yes | The following resources are not covered by ACL policies: @@ -47,23 +47,21 @@ The `acl = "write"` rule is also required to create snapshots. This is because a Rules for ACL resources do not use labels. -In the following example, `write` access to the ACL API. The rule enables the operator to read or write ACLs, as well as discover the secret ID of any token. +In the following example, the `acl` rule is configured with `write` access to the ACL API. +The rule enables the operator to read or write ACLs, as well as discover the secret ID of any token. - ```hcl acl = "write" ``` - - - ```json -"acl" : "write" +{ + "acl": "write" +} ``` - ## Admin Partition Rules @@ -71,11 +69,17 @@ acl = "write" The `partition` and `partition_prefix` resource controls access to one or more admin partitions. You can include any number of namespace rules inside the admin partition. -In the following example, the agent has write access to the `ex-namespace` namespace, as well as namespaces prefixed with `ex-` in the `example` partition. -The `mesh` resource is also scoped to the admin partition rule, which grants `write` access to mesh-level resources in the partition: +In the following example, the policy grants `write` access to the `ex-namespace` +namespace, as well as namespaces prefixed with `exns-` in the `example` partition. +The `mesh` resource is also scoped to the admin partition rule, which grants +`write` access to mesh-level resources in the `example` partition. + +In addition, the policy grants `read` access to the `ex-namespace` namespace, as +well as namespaces prefixed with `exns-` in all partitions containing the +`example-` prefix. Read access is granted for `mesh` resource scoped within the +associated partition. - ```hcl partition "example" { @@ -83,98 +87,67 @@ partition "example" { node "my-node" { policy = "write" } - ... namespace "ex-namespace" { - ... + policy = "write" } namespace_prefix "exns-" { - ... + policy = "write" } } -partition_prefix "ex-" { - ... (Same as above) + +partition_prefix "example-" { + mesh = "read" + + node "my-node" { + policy = "read" + } + + namespace "ex-namespace" { + policy = "read" + } } ``` - - - ```json { - "partition": [ - { - "example": [ - { - "mesh": "write", - "node": [ - { - "my-node": [ - { - "policy": "write" - } - ], - "namespace": [ - { - "ex-namespace": [ - { - "policy": "read" - } - ] - } - ], - "namespace_prefix": [ - { - "exns-": [ - { - "policy": "read" - } - ] - } - ] - } - ] + "partition": { + "example": { + "mesh": "write", + "node": { + "my-node": { + "policy": "write" } - ] + }, + "namespace": { + "ex-namespace": { + "policy": "write" + } + }, + "namespace_prefix": { + "exns-": { + "policy": "write" + } + } } - ] -}, -{ - "partition_prefix": [ - { - "": [ - { + }, + "partition_prefix": { + "example-": { + "mesh": "read", + "node": { + "my-node": { "policy": "read" } - ], - "example": [ - { - "mesh": "read", - "node": [ - { - "my-node": [ - { - "policy": "read" - } - ] - } - ], - "namespace": [ - { - "ex-namespace": [ - { - "policy": "read" - } - ] - } - ] + }, + "namespace": { + "ex-namespace": { + "policy": "read" } - ] + } } - ] + } } ``` - ## Agent Rules @@ -184,46 +157,43 @@ such as join and leave. All of the catalog-related operations are covered by the and [`service` or `service_prefix`](#service-rules) policies instead. - ```hcl -agent_prefix "" { - policy = "read" -} agent "foo" { policy = "write" } +agent_prefix "" { + policy = "read" +} agent_prefix "bar" { policy = "deny" } ``` - - - ```json -"agent_prefix" : [{ - "" : [{ - "policy" : "read" - }], - "bar" : [{ - "policy" : "deny" - }] - }], -"agent" : [{ - "foo" : [{ - "policy" : "write" - }] -}] +{ + "agent": { + "foo": { + "policy": "write" + } + }, + "agent_prefix": { + "": { + "policy": "read" + }, + "bar": { + "policy": "deny" + } + } +} ``` - Agent rules are keyed by the node name they apply to. In the example above the rules -allow read-only access to any node name by using the empty prefix, read-write access to -the node with the _exact_ name `foo`, and denies all access to any node name that starts -with `bar`. +allow read-write access to the node with the _exact_ name `foo`, read-only access +to any node name by using the empty prefix, and denies all access to any node +name that starts with `bar`. Since [Agent API](/api-docs/agent) utility operations may be required before an agent is joined to a cluster, or during an outage of the Consul servers or ACL datacenter, a special token may be @@ -236,7 +206,6 @@ The `event` and `event_prefix` resources control access to event operations in t firing events and listing events. - ```hcl event_prefix "" { @@ -247,23 +216,21 @@ event "deploy" { } ``` - - - ```json -"event_prefix" : [{ - "" : [{ - "policy" : "read" - }] -}], -"event" : [{ - "deploy" : [{ - "policy" : "write" - }] -}] +{ + "event_prefix": { + "": { + "policy": "read" + } + }, + "event": { + "deploy": { + "policy": "write" + } + } +} ``` - Event rules are labeled with the event name they apply to. In the example above, the rules allow @@ -279,7 +246,6 @@ give agents a token with access to this event prefix, in addition to configuring The `key` and `key_prefix` resources control access to key/value store operations in the [KV API](/api-docs/kv). - ```hcl key_prefix "" { @@ -293,26 +259,24 @@ key "bar" { } ``` - - - ```json -"key_prefix" : [{ - "" : [{ - "policy" : "read" - }] -}], -"key" : [{ - "foo" : [{ - "policy" : "write" - }], - "bar" : [{ - "policy" : "deny" - }] -}] +{ + "key_prefix": { + "": { + "policy": "read" + } + }, + "key": { + "foo": { + "policy": "write" + }, + "bar": { + "policy": "deny" + } + } +} ``` - Key rules are labeled with the key name they apply to. In the example above, the rules allow read-only access @@ -320,10 +284,14 @@ to any key name with the empty prefix rule, allow read-write access to the "foo" ### List Policy for Keys -Enable the `list` policy disposition (Consul 1.0+) by setting the `acl.enable_key_list_policy` parameter to `true`. The disposition provides recursive access to `key` entries. Refer to the [KV API](/api-docs/kv#recurse) documentation for additional information. In the following example, `key` resources that start with `bar` are listed. +Enable the `list` policy disposition (Consul 1.0+) by setting the +`acl.enable_key_list_policy` parameter to `true`. The disposition provides +recursive access to `key` entries. Refer to the [KV API](/api-docs/kv#recurse) +documentation for additional information. + +In the following example, `key` resources that start with `bar` may be listed. - ```hcl key_prefix "" { @@ -339,24 +307,22 @@ key_prefix "baz" { } ``` - - - ```json -"key_prefix" : [{ - "" : [{ - "policy" : "deny" - }], - "bar" : [{ - "policy" : "list" - }], - "baz" : [{ - "policy" : "read" - }] -}] +{ + "key_prefix": { + "": { + "policy": "deny" + }, + "bar": { + "policy": "list" + }, + "baz": { + "policy": "read" + } + } +} ``` - In the example above, the rules allow reading the key "baz", and only allow recursive reads on the prefix "bar". @@ -388,20 +354,17 @@ For more detailed information, see the [Consul Sentinel documentation](/docs/age The `keyring` resource controls access to keyring operations in the [Keyring API](/api-docs/operator/keyring). Only one keyring policy is allowed per rule set. The value is set to one of the policy dispositions, but may be read and updated. - ```hcl keyring = "write" ``` - - - ```json -"keyring" : "write" +{ + "keyring": "write" +} ``` - ### Mesh Rules @@ -409,20 +372,17 @@ keyring = "write" The `mesh` resource controls access to ingress gateways, terminating gateways, and mesh configuration entries. The following rule grants read and write access: - ```hcl mesh = "write" ``` - - - ```json -"mesh" : "write" +{ + "mesh": "write" +} ``` - See [Admin Partition Rules](#admin-partition-rules) for another example rule that uses the `mesh` resource. @@ -436,10 +396,11 @@ The `namespace` and `namespace_prefix` resource controls access to Consul namesp The following examples describe how namespace rules can be defined in a policy: - ```hcl namespace_prefix "" { + # grants permission to create and edit all namespaces + policy = "write" # grant service:read for all services in all namespaces service_prefix "" { @@ -450,8 +411,6 @@ namespace_prefix "" { node_prefix "" { policy = "read" } - # grants permission to create and edit all namespace - policy = "write" } namespace "foo" { @@ -483,88 +442,52 @@ namespace "foo" { } ``` - - - ```json { - "namespace": [ - { - "foo": [ - { - "acl": "write", - "key_prefix": [ - { - "": [ - { - "policy": "write" - } - ] - } - ], - "node_prefix": [ - { - "": [ - { - "policy": "read" - } - ] - } - ], - "policy": "write", - "service_prefix": [ - { - "": [ - { - "policy": "write" - } - ] - } - ], - "session_prefix": [ - { - "": [ - { - "policy": "write" - } - ] - } - ] + "namespace_prefix": { + "": { + "policy": "write", + "service_prefix": { + "": { + "policy": "read" } - ] - } - ], - "namespace_prefix": [ - { - "": [ - { - "node_prefix": [ - { - "": [ - { - "policy": "read" - } - ] - } - ], - "policy": "write", - "service_prefix": [ - { - "": [ - { - "policy": "read" - } - ] - } - ] + }, + "node_prefix": { + "": { + "policy": "read" } - ] + } } - ] + }, + "namespace": { + "foo": { + "acl": "write", + "policy": "write", + "key_prefix": { + "": { + "policy": "write" + } + }, + "session_prefix": { + "": { + "policy": "write" + } + }, + "service_prefix": { + "": { + "policy": "write" + } + }, + "node_prefix": { + "": { + "policy": "read" + } + } + } + } } ``` - ### Restrictions @@ -602,7 +525,6 @@ The following example rule uses an empty prefix label, which provides read-only The rule also provides read-write access to the `app` node and denies all access to the `admin` node: - ```hcl node_prefix "" { @@ -616,24 +538,24 @@ node "admin" { } ``` - - - ```json -"node_prefix" : [{ - "" : [{ - "policy" : "read" - }], - "app" : [{ - "policy" : "write" - }], - "admin" : [{ - "policy" : "deny" - }] -}] +{ + "node_prefix": { + "": { + "policy": "read" + }, + }, + "node": { + "app": { + "policy": "write" + }, + "admin": { + "policy": "deny" + } + } +} ``` - ### Registering and Querying Node Information @@ -654,7 +576,7 @@ These actions may required an ACL token to complete. Use the following methods t * Provide an ACL token with `service` and `check` definitions at registration time. This allows for greater flexibility and enables the use of multiple tokens on the same agent. Refer to the [services](/docs/agent/services) and [checks](/docs/agent/checks) documentation for examples. - Tokens may also be passed to the [HTTP API](/api) for operations that require them. + Tokens may also be passed to the [HTTP API](/api-docs) for operations that require them. ## Operator Rules @@ -665,20 +587,17 @@ Only one operator rule allowed per rule set. In the following example, the token diagnostic purposes but it will not make changes. - ```hcl operator = "read" ``` - - - ```json -"operator" : "read" +{ + "operator": "read" +} ``` - ## Prepared Query Rules @@ -689,7 +608,6 @@ The resource label in the following example is empty. As a result, the rules all The rules also grant read-write access to the query named `foo`, which allows control of the query namespace to be delegated based on ACLs: - ```hcl query_prefix "" { @@ -700,23 +618,21 @@ query "foo" { } ``` - - - ```json -"query_prefix" : [{ - "" : [{ - "policy" : "read" - }] -}], -"query" : [{ - "foo" : [{ - "policy" : "write" - }] -}] +{ + "query_prefix": { + "": { + "policy": "read" + } + }, + "query": { + "foo": { + "policy": "write" + } + } +} ``` - Executing queries is subject to `node`/`node_prefix` and `service`/`service_prefix` @@ -798,7 +714,6 @@ The resource label in the following example is empty. As a result, the rules all The rules also allow read-write access to the `app` service and deny all access to the `admin` service: - ```hcl service_prefix "" { @@ -812,26 +727,24 @@ service "admin" { } ``` - - - ```json -"service_prefix" : [{ - "" : [{ - "policy" : "read" - }] -}], -"service" : [{ - "app" : [{ - "policy" : "write" - }], - "admin" : [{ - "policy" : "deny" - }] -}] +{ + "service_prefix": { + "": { + "policy": "read" + } + }, + "service": { + "app": { + "policy": "write" + }, + "admin": { + "policy": "deny" + } + } +} ``` - Consul's DNS interface is affected by restrictions on service rules. If the @@ -855,10 +768,10 @@ to use for registration events: tokens on the same agent. Examples of what this looks like are available for both [services](/docs/discovery/services) and [checks](/docs/discovery/checks). Tokens may also be passed to the [HTTP - API](/api) for operations that require them. **Note:** all tokens + API](/api-docs) for operations that require them. **Note:** all tokens passed to an agent are persisted on local disk to allow recovery from restarts. See [`-data-dir` flag - documentation](/docs/agent/config/config-files#acl_token) for notes on securing + documentation](/docs/agent/config/cli-flags#_data_dir) for notes on securing access. In addition to ACLs, in Consul 0.9.0 and later, the agent must be configured with @@ -871,7 +784,6 @@ following policy provides read-write access to the "app" service, and explicitly grants `intentions:read` access to view intentions associated with the "app" service. - ```hcl service "app" { @@ -880,19 +792,17 @@ service "app" { } ``` - - - ```json -"service" : [{ - "app" : [{ - "policy" : "write" - }], - "intentions" : "read" -}] +{ + "service": { + "app": { + "policy": "write", + "intentions": "read" + } + } +} ``` - Refer to [Intention Management Permissions](/docs/connect/intentions#intention-management-permissions) @@ -907,7 +817,6 @@ The resource label in the following example is empty. As a result, the rules all The rules also allow creating sessions on the node named `app` and deny all access to any sessions on the `admin` node: - ```hcl session_prefix "" { @@ -921,24 +830,22 @@ session "admin" { } ``` - - - ```json -"session_prefix" : [{ - "" : [{ - "policy" : "read" - }] -}], -"session" : [{ - "app" : [{ - "policy" : "write" - }], - "admin" : [{ - "policy" : "deny" - }] -}] +{ + "session_prefix": { + "": { + "policy": "read" + } + }, + "session": { + "app": { + "policy": "write" + }, + "admin": { + "policy": "deny" + } + } +} ``` - diff --git a/website/content/docs/security/acl/acl-tokens.mdx b/website/content/docs/security/acl/acl-tokens.mdx index 4d7f454deb..8c80be719d 100644 --- a/website/content/docs/security/acl/acl-tokens.mdx +++ b/website/content/docs/security/acl/acl-tokens.mdx @@ -38,12 +38,12 @@ Specify the value of the `SecretID` attribute with the `token` parameter when co ```hcl -"service" = { - "id" = "redis" - "name" = "redis" +service = { + id = "redis" + name = "redis" ... - "namespace" = "foo" - "token" = "233b604b-b92e-48c8-a253-5f11514e4b50" + namespace = "foo" + token = "233b604b-b92e-48c8-a253-5f11514e4b50" } ``` @@ -85,17 +85,12 @@ In the following example, the agent is configured to use a default token: - - ```hcl -"tokens" = { - "default" = "233b604b-b92e-48c8-a253-5f11514e4b50" +tokens = { + default = "233b604b-b92e-48c8-a253-5f11514e4b50" } ``` - - - ```json { "tokens": { @@ -104,8 +99,6 @@ In the following example, the agent is configured to use a default token: } ``` - - Refer to the [agent configurations documentation](/docs/agent/options) for additional information. @@ -127,7 +120,7 @@ You can export tokens to environment variables on the local machine, which enabl ### API Requests -Specify the token in the HTTP `X-Consul-Token` header field to make an API request. Refer to the [HTTP API documentation](/api-docs/index#authentication) for details. +Specify the token in the HTTP `X-Consul-Token` header field to make an API request. Refer to the [HTTP API documentation](/api-docs#authentication) for details. The following example shows the header for a GET request to the `agent/members` endpoint. @@ -144,12 +137,12 @@ Refer to the [API](/api-docs/acl/token) or [command line](/commands/acl/token) d | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -------------- | | `AccessorID` | Used for [audit logging](/docs/enterprise/audit-logging). The accessor ID is also returned in API responses to identify the token without revealing the secret ID. | String | auto-generated | | `SecretID` | Used to request access to resources, data, and APIs. | String | auto-generated | -| `Partition` | Specifies the name of the admin partition in which the token is valid. See [Admin Partitions](/docs/enterprise/admin-partitions) for additional information. | `default` | +| `Partition` | Specifies the name of the admin partition in which the token is valid. See [Admin Partitions](/docs/enterprise/admin-partitions) for additional information. | String | `default` | | `Namespace` | Specifies the name of the Consul namespace in which the token is valid. See [Namespaces](/docs/enterprise/namespaces) for additional information. | String | `default` | | `Description` | Human-readable description for documenting the purpose of the token. | String | none | | `Local` | Indicates whether the token should be replicated globally or local to the datacenter.
Set to `false` to replicate globally across all reachable datacenters.
Setting to `true` configures the token to functional in the local datacenter only. | Boolean | `false` | -| `ServiceIdentities` | Specifies a list of nodes to apply to the token. See [Service Identities](/docs/security/acl/acl-roles#service-identities) in the "Roles" topic for additional information. | Array | none | -| `NodeIdentities` | Specifies a list of nodes to apply to the token. See [Node Identities](/docs/security/acl/acl-roles#node-identities) in the "Roles" topic for additional information. | Array | none | +| `ServiceIdentities` | Specifies a list of service identities to apply to the token. See [Service Identities](/docs/security/acl/acl-roles#service-identities) in the "Roles" topic for additional information. | Array | none | +| `NodeIdentities` | Specifies a list of node identities to apply to the token. See [Node Identities](/docs/security/acl/acl-roles#node-identities) in the "Roles" topic for additional information. | Array | none | | `Legacy` | Indicates if the token was created using the the legacy ACL system. | Boolean | `false` | | `Policies` | List of policies linked to the token, including the policy ID and name. | String | none | @@ -169,7 +162,7 @@ All reserved tokens except the `initial_management` token can be created or upda ### Snapshot Tokens -Snapshots are artifacts created with the [snapshot API](/api-docs/snapshot) for backup and recovery purposes. Snapshots contain ACL tokens and require, and interacting with them requires a token with `write` privileges. +Snapshots are artifacts created with the [snapshot API](/api-docs/snapshot) for backup and recovery purposes. Snapshots contain ACL tokens and interacting with them requires a token with `acl:write` privileges. ### ACL Agent Token @@ -181,6 +174,8 @@ The [`acl.tokens.agent`](/docs/agent/options#acl_tokens_agent) is a special toke Here's an example policy sufficient to accomplish the above for a node called `mynode`: + + ```hcl node "mynode" { policy = "write" @@ -193,19 +188,10 @@ key_prefix "_rexec" { } ``` + + The `service_prefix` policy needs read access for any services that can be registered on the agent. If [remote exec is disabled](/docs/agent/options#disable_remote_exec), the default, then the `key_prefix` policy can be omitted. - - ## Built-in Tokens Consul includes a built-in anonymous token and initial management token. Both tokens are injected during when you bootstrap the cluster. @@ -222,7 +208,8 @@ The description and policies may be updated, but the anonymous token cannot be d ### Initial Management Token -Including an initial management token in the Consul configuration creates the token and links it with the built-in global management policy. +Including an initial management token in the Consul configuration creates the +token and links it with the built-in [global management](/docs/security/acl/acl-policies#global-management) policy. The bearer will have have unrestricted privileges to resources and APIs. The `SecretID` attribute will be set to the value of the configuration entry. diff --git a/website/content/docs/security/acl/index.mdx b/website/content/docs/security/acl/index.mdx index 2b15986c80..24310c5f8c 100644 --- a/website/content/docs/security/acl/index.mdx +++ b/website/content/docs/security/acl/index.mdx @@ -69,7 +69,7 @@ Refer to the [Roles](/docs/security/acl/acl-roles) topic for additional informat ## Service Identities -Service identities are configuration blocks that you can add to role configurations or specify when linking tokens to policies. The are used during the authorization process to automatically generate a policy for the service(s) specified. The policy will be linked to the role or token so that the service(s) can _be discovered_ and _discover other healthy service instances_ in a service mesh. +Service identities are configuration blocks that you can add to role configurations or specify when linking tokens to policies. You can use them during the authorization process to automatically generate a policy for specific services. The policy is linked to the role or token, allowing the services to be discovered and to discover other healthy service instances in a service mesh. Service identities enable you to quickly construct policies for services, rather than creating identical polices for each service. @@ -80,9 +80,9 @@ Refer to the following topics for additional information about service identitie ## Node Identities -Node identities are configuration blocks that you can add to role configurations or specify when linking tokens to policies. The are used during the authorization process to automatically generate a policy for the node(s) specified. You can specify the token linked to the policy in the [`acl_tokens_agent`](/docs/agent/options#acl_tokens_agent) field when configuring the agent. +Node identities are configuration blocks that you can add to role configurations or specify when linking tokens to policies. You can use them during the authorization process to automatically generate a policy for specific nodes. When you configure the agent, you can specify the token linked to the policy with [`acl_tokens_agent`](/docs/agent/options#acl_tokens_agent). -Node identities enable you to quickly construct policies for nodes, rather than creating identical polices for each service. +Use node identities to quickly construct policies for multiple nodes, rather than creating identical polices for each individual node. Refer to the following topics for additional information about node identities: diff --git a/website/content/docs/upgrading/upgrade-specific.mdx b/website/content/docs/upgrading/upgrade-specific.mdx index ceb16af111..d9bae7d6c7 100644 --- a/website/content/docs/upgrading/upgrade-specific.mdx +++ b/website/content/docs/upgrading/upgrade-specific.mdx @@ -26,6 +26,30 @@ to `true`. In prior Consul versions (1.10.x through 1.11.x), the config defaulte well as the flag will be removed in upcoming Consul 1.13. We recommend changing your instrumentation to use 1.10 and later style `consul.api.http...` metrics and removing the configuration flag from your setup. +### Nomad Namespace Incompatibility + +Nomad Enterprise users should not upgrade to Consul Enterprise 1.12.0. + +Consul 1.12.0 Enterprise introduced a change that prevents Nomad Enterprise from removing services from non-default Consul namespaces. To avoid errors, we recommend that Nomad Enterprise users wait to update Consul Enterprise until we fix this issue in a future release. + +### TLS Configuration + +You can now configure TLS differently for each of Consul's exposed ports. As a +result, the following top-level configuration fields are deprecated and should +be replaced with the new [`tls` stanza](/docs/agent/config/config-files#tls-configuration-reference): + +- `cert_file` +- `key_file` +- `ca_file` +- `ca_path` +- `tls_min_version` +- `tls_cipher_suites` +- `verify_incoming` +- `verify_incoming_rpc` +- `verify_incoming_https` +- `verify_outgoing` +- `verify_server_hostname` + ## Consul 1.11.0 ### 1.10 Compatibility diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index e2e770419b..e917d90db4 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -541,6 +541,10 @@ { "title": "Snapshot Agent Config", "path": "k8s/installation/vault/data-integration/snapshot-agent-config" + }, + { + "title": "Webhook Certificates", + "path": "k8s/installation/vault/data-integration/webhook-certs" } ] }, @@ -743,6 +747,23 @@ } ] }, + { + "title": "AWS Lambda BETA", + "routes": [ + { + "title": "Overview", + "path": "lambda" + }, + { + "title": "Register Lambda Functions", + "path": "lambda/registration" + }, + { + "title": "Invoke Lambda Functions", + "path": "lambda/invocation" + } + ] + }, { "title": "Network Infrastructure Automation", "routes": [ @@ -789,6 +810,10 @@ { "title": "Tasks", "path": "nia/api/tasks" + }, + { + "title": "Health", + "path": "nia/api/health" } ] }, @@ -802,6 +827,10 @@ { "title": "task", "path": "nia/cli/task" + }, + { + "title": "start", + "path": "nia/cli/start" } ] }, @@ -1253,6 +1282,10 @@ { "title": "Consul Terraform Sync", "routes": [ + { + "title": "v0.6.x", + "path": "release-notes/consul-terraform-sync/v0_6_x" + }, { "title": "v0.5.x", "path": "release-notes/consul-terraform-sync/v0_5_x" diff --git a/website/public/img/connect_proxy_to_lambda.svg b/website/public/img/connect_proxy_to_lambda.svg new file mode 100644 index 0000000000..1ba7a27793 --- /dev/null +++ b/website/public/img/connect_proxy_to_lambda.svg @@ -0,0 +1,16 @@ + + + + + + + LambdaConnect ProxyService12 \ No newline at end of file diff --git a/website/public/img/lambda_registrator_architecture.svg b/website/public/img/lambda_registrator_architecture.svg new file mode 100644 index 0000000000..0c71fd2c69 --- /dev/null +++ b/website/public/img/lambda_registrator_architecture.svg @@ -0,0 +1,16 @@ + + + + + + + EventBridgeLambda RegistratorConsul21 \ No newline at end of file diff --git a/website/public/img/terminating_gateway_to_lambda.svg b/website/public/img/terminating_gateway_to_lambda.svg new file mode 100644 index 0000000000..fbd414b258 --- /dev/null +++ b/website/public/img/terminating_gateway_to_lambda.svg @@ -0,0 +1,16 @@ + + + + + + + TerminatingGatewayConnect ProxyService12Lambda3 \ No newline at end of file diff --git a/website/redirects.js b/website/redirects.js index 51dfb4b887..59be38aad1 100644 --- a/website/redirects.js +++ b/website/redirects.js @@ -76,6 +76,11 @@ module.exports = [ destination: '/docs/security/acl/acl-legacy', permanent: true, }, + { + source: '/api-docs/acl/acl', + destination: '/api-docs/acl', + permanent: true, + }, { source: '/api-docs/acl-legacy', destination: '/api-docs/acl/legacy',