diff --git a/.github/workflows/latest-pre.yml b/.github/workflows/latest-pre.yml
new file mode 100644
index 000000000..cfd681631
--- /dev/null
+++ b/.github/workflows/latest-pre.yml
@@ -0,0 +1,32 @@
+name: latest pre-release
+on:
+ push:
+ tags:
+ - '**-pre**'
+jobs:
+
+ build:
+ name: Test Build Latest Pre-Release
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, windows-latest, macOS-latest]
+ steps:
+
+ - name: Set up Go 1.12
+ uses: actions/setup-go@v1
+ with:
+ go-version: 1.12
+ id: go
+
+ - name: Check out code into the Go module directory
+ uses: actions/checkout@v1
+
+ - name: Get dependencies
+ run: |
+ go get -v -d ./...
+ - name: Build
+ run: go build -v ./cmd/wails
+
+ - name: Test
+ run: ./wails version
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
new file mode 100644
index 000000000..985447a65
--- /dev/null
+++ b/.github/workflows/pr.yml
@@ -0,0 +1,32 @@
+name: pr
+on:
+ pull_request:
+ branches:
+ - develop
+jobs:
+
+ build:
+ name: Test Build PR
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, windows-latest, macOS-latest]
+ steps:
+
+ - name: Set up Go 1.12
+ uses: actions/setup-go@v1
+ with:
+ go-version: 1.12
+ id: go
+
+ - name: Check out code into the Go module directory
+ uses: actions/checkout@v1
+
+ - name: Get dependencies
+ run: |
+ go get -v -d ./...
+ - name: Build
+ run: go build -v ./cmd/wails
+
+ - name: Test
+ run: ./wails version
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 000000000..128d378dd
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,34 @@
+name: release
+on:
+ push:
+ branches:
+ - master
+ tags:
+ - '!**pre**'
+jobs:
+
+ build:
+ name: Test Build Latest Release
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, windows-latest, macOS-latest]
+ steps:
+
+ - name: Set up Go 1.12
+ uses: actions/setup-go@v1
+ with:
+ go-version: 1.12
+ id: go
+
+ - name: Check out code into the Go module directory
+ uses: actions/checkout@v1
+
+ - name: Get dependencies
+ run: |
+ go get -v -d ./...
+ - name: Build
+ run: go build -v ./cmd/wails
+
+ - name: Test
+ run: ./wails version
\ No newline at end of file
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 72d2f0bc5..4cb887cd3 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -21,3 +21,5 @@ Wails is what it is because of the time and effort given by these great people.
* [Robin Eklind](https://github.com/mewmew)
* [Kris Raney](https://github.com/kraney)
* [Jack Mordaunt](https://github.com/JackMordaunt)
+ * [Michael Hipp](https://github.com/MichaelHipp)
+ * [Travis McLane](https://github.com/tmclane)
\ No newline at end of file
diff --git a/README.md b/README.md
index c068bf93d..efc76bec3 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,8 @@
-
+
+
The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!
diff --git a/app.go b/app.go
index e987e6c45..7048e04f1 100644
--- a/app.go
+++ b/app.go
@@ -97,7 +97,7 @@ func (a *App) start() error {
// Check if we are to run in bridge mode
if BuildMode == cmd.BuildModeBridge {
- a.renderer = &renderer.Bridge{}
+ a.renderer = renderer.NewBridge()
}
// Initialise the renderer
diff --git a/azure-pipelines.yaml b/azure-pipelines.yaml
deleted file mode 100644
index 2bf81411e..000000000
--- a/azure-pipelines.yaml
+++ /dev/null
@@ -1,138 +0,0 @@
-# avoid double trigger by applying some rules
-# start a pipeline when push to 'master' branch
-trigger:
-- master
-# or when pull request on 'develop' branch
-pr:
-- develop
-
-# for now there is only one stage 'Build'
-# in the future we could use multistage strategy for releases
-stages:
-- stage: Build
-
- # there are 3 jobs
- # one for each os
- jobs:
- - deployment: Linux
- displayName: Lin
- variables:
- GOPATH: '$(Agent.BuildDirectory)/gopath' # Go workspace path
- GOROOT: '$(Agent.BuildDirectory)/go' # Go installation path
- GOBIN: '$(GOPATH)/bin' # Go binaries path
- GOMODULE: 'on'
- modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
- pool:
- vmImage: 'Ubuntu-16.04'
- environment: 'linux-dev'
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self # self represents the repo where the initial Pipelines YAML file was found
- clean: true # whether to fetch clean each time
- path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
- # go version 1.12.7
- - script: |
- wget "https://storage.googleapis.com/golang/go1.12.7.linux-amd64.tar.gz" --output-document "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
- tar -C '$(Agent.BuildDirectory)' -xzf "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
- displayName: 'Install Go 1.12.7 Linux'
- - script: |
- mkdir -p '$(GOBIN)'
- mkdir -p '$(GOPATH)/pkg'
- mkdir -p '$(GOROOT)'
- shopt -s extglob
- shopt -s dotglob
- echo '##vso[task.prependpath]$(GOBIN)'
- echo '##vso[task.prependpath]$(GOROOT)/bin'
- displayName: 'Set up the Go workspace'
- - script: |
- go version
- go get -v -d ./...
- cd cmd/wails
- go install
- workingDirectory: '$(modulePath)'
- displayName: 'Get dependencies, then build'
- - script: |
- wails version
- workingDirectory: '$(modulePath)'
- displayName: 'Check we have output'
-
- - deployment: Mac
- displayName: Mac
- variables:
- GOPATH: '$(Agent.BuildDirectory)/gopath' # Go workspace path
- GOROOT: '$(Agent.BuildDirectory)/go' # Go installation path
- GOBIN: '$(GOPATH)/bin' # Go binaries path
- GOMODULE: 'on'
- modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
- pool:
- vmImage: 'macOS-10.14'
- environment: 'mac-dev'
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self # self represents the repo where the initial Pipelines YAML file was found
- clean: true # whether to fetch clean each time
- path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
- # go version 1.12.7
- - script: |
- wget "https://storage.googleapis.com/golang/go1.12.7.darwin-amd64.tar.gz" --output-document "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
- tar -C '$(Agent.BuildDirectory)' -xzf "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
- displayName: 'Install Go 1.12.7 Linux'
- - script: |
- mkdir -p '$(GOBIN)'
- mkdir -p '$(GOPATH)/pkg'
- mkdir -p '$(GOROOT)'
- shopt -s extglob
- shopt -s dotglob
- echo '##vso[task.prependpath]$(GOBIN)'
- echo '##vso[task.prependpath]$(GOROOT)/bin'
- displayName: 'Set up the Go workspace'
- - script: |
- go version
- go get -v -d ./...
- cd cmd/wails
- go install
- workingDirectory: '$(modulePath)'
- displayName: 'Get dependencies, then build'
- - script: |
- wails version
- workingDirectory: '$(modulePath)'
- displayName: 'Check we have output'
-
- - deployment: Win
- displayName: Win
- variables:
- GOMODULE: 'on'
- modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
- pool:
- vmImage: 'windows-2019'
- environment: 'win-dev'
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self # self represents the repo where the initial Pipelines YAML file was found
- clean: true # whether to fetch clean each time
- path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
- # Go tool installer
- # Find in cache or download a specific version of Go and add it to the PATH
- - task: GoTool@0
- inputs:
- version: '1.12.7'
- goPath: '$(Agent.BuildDirectory)/go'
- goBin: '$(Agent.BuildDirectory)/go/bin'
- displayName: 'Set up the Go workspace'
- - script: |
- go version
- go get -v -d ./...
- cd cmd/wails
- go install
- workingDirectory: '$(modulePath)'
- displayName: 'Get dependencies, then build'
- - script: |
- wails version
- workingDirectory: '$(Agent.BuildDirectory)/go/bin'
- displayName: 'Check we have output'
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index 2bf81411e..000000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,138 +0,0 @@
-# avoid double trigger by applying some rules
-# start a pipeline when push to 'master' branch
-trigger:
-- master
-# or when pull request on 'develop' branch
-pr:
-- develop
-
-# for now there is only one stage 'Build'
-# in the future we could use multistage strategy for releases
-stages:
-- stage: Build
-
- # there are 3 jobs
- # one for each os
- jobs:
- - deployment: Linux
- displayName: Lin
- variables:
- GOPATH: '$(Agent.BuildDirectory)/gopath' # Go workspace path
- GOROOT: '$(Agent.BuildDirectory)/go' # Go installation path
- GOBIN: '$(GOPATH)/bin' # Go binaries path
- GOMODULE: 'on'
- modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
- pool:
- vmImage: 'Ubuntu-16.04'
- environment: 'linux-dev'
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self # self represents the repo where the initial Pipelines YAML file was found
- clean: true # whether to fetch clean each time
- path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
- # go version 1.12.7
- - script: |
- wget "https://storage.googleapis.com/golang/go1.12.7.linux-amd64.tar.gz" --output-document "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
- tar -C '$(Agent.BuildDirectory)' -xzf "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
- displayName: 'Install Go 1.12.7 Linux'
- - script: |
- mkdir -p '$(GOBIN)'
- mkdir -p '$(GOPATH)/pkg'
- mkdir -p '$(GOROOT)'
- shopt -s extglob
- shopt -s dotglob
- echo '##vso[task.prependpath]$(GOBIN)'
- echo '##vso[task.prependpath]$(GOROOT)/bin'
- displayName: 'Set up the Go workspace'
- - script: |
- go version
- go get -v -d ./...
- cd cmd/wails
- go install
- workingDirectory: '$(modulePath)'
- displayName: 'Get dependencies, then build'
- - script: |
- wails version
- workingDirectory: '$(modulePath)'
- displayName: 'Check we have output'
-
- - deployment: Mac
- displayName: Mac
- variables:
- GOPATH: '$(Agent.BuildDirectory)/gopath' # Go workspace path
- GOROOT: '$(Agent.BuildDirectory)/go' # Go installation path
- GOBIN: '$(GOPATH)/bin' # Go binaries path
- GOMODULE: 'on'
- modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
- pool:
- vmImage: 'macOS-10.14'
- environment: 'mac-dev'
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self # self represents the repo where the initial Pipelines YAML file was found
- clean: true # whether to fetch clean each time
- path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
- # go version 1.12.7
- - script: |
- wget "https://storage.googleapis.com/golang/go1.12.7.darwin-amd64.tar.gz" --output-document "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
- tar -C '$(Agent.BuildDirectory)' -xzf "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
- displayName: 'Install Go 1.12.7 Linux'
- - script: |
- mkdir -p '$(GOBIN)'
- mkdir -p '$(GOPATH)/pkg'
- mkdir -p '$(GOROOT)'
- shopt -s extglob
- shopt -s dotglob
- echo '##vso[task.prependpath]$(GOBIN)'
- echo '##vso[task.prependpath]$(GOROOT)/bin'
- displayName: 'Set up the Go workspace'
- - script: |
- go version
- go get -v -d ./...
- cd cmd/wails
- go install
- workingDirectory: '$(modulePath)'
- displayName: 'Get dependencies, then build'
- - script: |
- wails version
- workingDirectory: '$(modulePath)'
- displayName: 'Check we have output'
-
- - deployment: Win
- displayName: Win
- variables:
- GOMODULE: 'on'
- modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
- pool:
- vmImage: 'windows-2019'
- environment: 'win-dev'
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self # self represents the repo where the initial Pipelines YAML file was found
- clean: true # whether to fetch clean each time
- path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
- # Go tool installer
- # Find in cache or download a specific version of Go and add it to the PATH
- - task: GoTool@0
- inputs:
- version: '1.12.7'
- goPath: '$(Agent.BuildDirectory)/go'
- goBin: '$(Agent.BuildDirectory)/go/bin'
- displayName: 'Set up the Go workspace'
- - script: |
- go version
- go get -v -d ./...
- cd cmd/wails
- go install
- workingDirectory: '$(modulePath)'
- displayName: 'Get dependencies, then build'
- - script: |
- wails version
- workingDirectory: '$(Agent.BuildDirectory)/go/bin'
- displayName: 'Check we have output'
diff --git a/cmd/cmd-mewn.go b/cmd/cmd-mewn.go
index 3fddaff6d..1b1579605 100644
--- a/cmd/cmd-mewn.go
+++ b/cmd/cmd-mewn.go
@@ -5,7 +5,7 @@ package cmd
import "github.com/leaanthony/mewn"
func init() {
- mewn.AddAsset(".", "../runtime/assets/bridge.js", "1f8b08000000000000ffac597973e2ba96ff9b54e53be8f5ad2ec825c1ecebed5b630c216481b065e1cdab8cb00fb6125b3696c04077befb94bc804927e9be53936e124b3ae7e8e8a7b31ae9cfe323f484829fa7f0e1297c3a3efa817ef83312929e9e9ed053eae9c47f7a0a96a41f624550ff8f143e3d49fe9224fe0bae603e25049e08814f4f92f8fcf7d3d3e993e4ff133c62afb101c824bac13d10bfd1dcc51678b6fb82e6b68b3c989d99e40510761c767c94524fd0356024536ed87483f2d95cedcc718101e5c7477f4ac747d29fe899198472046c052e2336ada332124bc747f3255539b1292294f0d409fa7e7c949024d47489a603b267cfa0f2e3a38447a8667b190f1393cd82b56f3e6dc205d5a61454de5f816be24d1dd1a5699e1e2c8d89056e1d15b2597fde6393e1751d253d569724d356b169d88cd70bc55cae2405d2933e61c84e6c3ae298434cb46ad339d1ebe8fb6b201166cc565f80c749b069ceb0fa129bb203152fc637d775314e24ffd2c80aa92666ecdb17ff70673ba5cf42ea2f7fff06d1996a530e94ff1e3127dc842f7fdf8be510eabf248dacfefe6be6fe9600d3c61aa13a7308a5e07ef9fb0d37d13e66b58031ac07bb734275dfa6044e40b5504cec77328e9b321a85b0653e90feddb11911f7559f9335680d6e3bf56cc38439af671b1ed1b851cf65b35f1b866fd8c1b3d85b77ed25d5eaae3ec3a9eca9f897299f34e636e567736c1173536798b233062e993734c21c6168d4a6d0d89e11aac1ba5ef37f5e3f522cba9fef0ed60472f57cd659a342d6593738acf91936894eeb2a500e6ea8683e0b5663771e174cccc90a76aa17c16acc6c5703f7ccc51a59b27a0eac86855d9dd07ae92bc24b6ea36cec7467aa6dda6efd8ff97cde98d9eb336660cdf6ea39678dc42750c859c739888575a82f5d33a5618eebfe5072a8de986106e5e229b96bf6875ef6aaa3dbb22ccbbdd1c4684f74599695aa182f15f9460c6e9d995c11138bf3e6cd5d7b22ffc39f76531ebcf71c8dc5a7257b37e251cc457fa39ff85891f5aef8bca5798f5ed0fd535dcf9b83fb2be5b91c0052188ec6e68d7c4dba8b96f1d269caccbb7cbecd76d6b7e5deb0785f93b6fc79d8ba31ee27a56ca7a697e0e261359bd61edaddda7a3a561753338f4dedca2e95069eadaca6137d6b08c1ac76396c9f4f4637d03301ee17cff2c498649b0abe287439f16adbab71ad90de76b2f9c155ceb0a4d2c579fa793bbd2ccf075056370fedf4b35e7ba8d8356fbddc98ddeebc385ee5ef0ae959df6d3fd07955f306d2d5a0db69f5f2d2285dec5b77caddc3b534529b744e66ebc970d16d6e6e25a3df6b57ddea383d6bdd98835af56a64561eabc6f6d9195557b9056f19d565695ebd1a381d674e6f6f8d45a77a09b6de2b542e1635c0bdfc7a68743d1977e8ca63d5f3dcc8582fae4af62ccfbd47923b976f5a45f7813d72aa48976d329c994575e22af706bd51ae87e7603dc0f661362bd50657c57b79d4675699e6ef73e9a2d21ce72f2dbe1d94e7cc9d7596b3a1d43b9f6979bdf498abd4d2254feab42ff015bb787e54805714dd7d9814f81abb3da5f2b8eedf5df2ee73516a0fb737da74be550b39c34957d556193add6b1dbbd3c7da729acb1b32cb1656f366aba6e42a397d54ea5bdb4a5f5dade5eb41971697d5e1b0d96caa8cd4eeeff39eddaf11e75a9f6f9d4753d7f5c274a80dfb13a57a35ae0cae178bc27dedaa596aceb4f33bbd58cbd75e34cf29a717784a6f14a5d7d49ed3bd4d2f775fad96861b49be2eb48af260c6eeee8ad456c88da4540b2f9bc74535fb60b6e4c70177b1d927adad3d942f4c9bdf9bd5459e3faf1ecdbeaeea39b9fadc969d294e2bd9f2b8a9c9dbfc6095f596b95c57da4efb9bcb41b9ed75609bbfcdcfaab7dd819b333c8fca5326af3db938911ffb9b87c9fa465a3b657e21d3626762dd766e6ac37cd5be5beb4a16a4ede0f2b25b6e6d8ccd34e75696dbe1c070d4fbcabab21ae3fbd1f66ad42963702a9517d71eb7cdc2a49a5b8eeef064ccf576b73757aae0acd383e2796de438e645a75a6cbf94ade2505ed4a4f1f54bbfe9ae37b0d4b4a971b1ea749ddcc3c3fc7c53981656dcebcdccab0e69d1f465ba965f799edcbcd08de7ca05dd9aa3dc45e9a559acc9d395d651ce75d2bc5d946b8bf9c3ad5bd8a4d31b629e67fbbde2b00ac30a736476ed4c6ba5de42be2f713ccba9c5d5cbd42a6313f0b36adc788f63ad7b3d188cbd76be7f57cce5a637b5fb2d6f3ddf2ecc5c5ec54d52d65bcee4ca6a69c549eea1a70dd6d3e275f7615092c66ef1b6d2adf147f5dc6d5d158228669e8f5f46cb81a52827f100ec820398d7a91d3ec5d776a921c81a1fa71e3fdb7ff79319235ba8e7c1fa98384ccf31f25ca6f019c36129f0ddb189d0e60c5640390b726498cf3225b0a2f4150c82fc55cf14c142cc368986b88b2973b00b9447d92d4c5b8576b9d256d01f00e0ff7a93fc4ad9af0d4c89857d48624aa11c4326a1805d44e85c549910654991221bbb842c347afdaf17d8f8e52e433119df45a1f0ddd76d6ebb56ddb54539982a94b31ae827afaf419562da7a1dedead954886450d22644510bcc24949f6984e199096754247ea19abfaeda94d926644c5b4ff91389e45715f9a8a3b0e2fdaaa2244aa350304aa3240a764e2492b12a06fd8171369bcd3650001df2533e3ac44ba47a940d3f22eda30808510d34d0fefe51365371c17a7fa76cb656fbd54ee10ed18ebfdec9dfe8a421febc1e1f255e1bc747afa2579024246bd8e1a0a1b96b5ba2135911f0d019e206a62f0c6d19b83afceba0ab100d84321aa554c682ab586117810916fa86345b5d5a407946750173689b2046a924e31b1392be068232c380cb9cbb64b6e4904af28d03c9539414859ba432161092394a05c482796400f0f0eadfcc6654c6c6b0e6e81b521913acaf084c063162ec384035c520a6967aa3a3e0ecd91af8e7f1377e0dcf6400d6e267f2c73f7eec2774e0e109597333c67a0f5b904a0ab2e4c9bfb3ff11b2c4e06077a1ce490c7fc55782218ca8ad012214710350cbb66298078afa4a069e7ceae30d948f370e9c22a29d06fd8550e0148595f1fe72b48f6f262667073ad1429cb50c11ac448b5011abbb8d7644bb197101d1f3014b5c2121550436d1b30986602d220fce77785fbe622ef0a54b9116836e049ca1a5e3031606cf18680cf8d2095bd8d41e8b99ad6de2708871235cf36343d0bd09b085767be405e1294a6a64254c3508de616beb2bf886f9e0903f37db9958e7da10e711e1acebfb56fc3c48198d04883ba7fb5892321ac5ed6ac4b11b888a37a5717c044130bb7f4b3012a01d029a38043250f61d35761d3bfae6f7e78df7c9e22f103ea77cfb1e227e6b8b25b89b1198a072dbf5a3fb871dac087e279f2b13bd8e40dfc4fdb27016b4e4ee664686edb137b8ec91346c6ff846d910d2df395710c93261132c749899b6fa920c5d2250e08268f0a10206d1e0ff550151641cee2f6b9a88514c7589c311b7a3289509968760d92b60887044e688890d34e46091f739b88830c4dd2564e24a634d1bf9d25281d053e4fa4242bd853fb2cf328acf14b85e827d96509ef10abfa116f34a1078d0b7f050fed241ac3f88422cb4fcfd69915f97516c46f5030b92a88f4cff46d08ae07770aa04cb0411ce0f11c1524c7e989e77978ea9660a54a96a5b84ea68ef637bcb650796e07328c1e22726206aa2a412d9b9b8cff0855108d1fb16e52fa92660b72b8ebec2e67bf128eee101cb67d1226353d5b499f0bd40f9d6ce017f87372add22ee9b60fc11eb3b0e7fe0ed3f63bf877c1f19de817caff5af506fc5024c603087d0ff6668fd3f86b344e2fd68d588bd9d4d9d1c20317637c240c2c5c8f743a511acc0dda042366b3194d2608e9726472b6c2ee1248c0d8a81a90e881b84050b519163614251fc0574f072fa204afc1ad437098501df19e7be7588dc4f38e4e700070847f4bfbc0df0d03dcc46fef85dc96c32bc0ed0fda52ddb0ed09d212b311ff82527b8ae2d0ebf3ff02ee024129061dc76ba96051ac11c6e5ddbc1badfd5a522c5429a0f961cd7ef3d5bc1e5ee577ed7521389a87a9b63934138f71afc7df5a3dee97b25d2e1b70d31a37ce37ba1cfbfe90f45d212292bb42d0f10d1a9ed027a6608534db40a61331306d104f308578d5d9f99d130c7ffcefe672f2fa8a44c3273b1bb416721fbbf82ef2618a0a4970c5ea7ef735b5c568699448554ee244a254266cff6c29ed45d524e2c10c95274caa09d860b73dbf5fdc505ac6d907f1711b77f90f06b91c8337db7c28ee3d3c461cdb4fd5708993e4d05f56b3dd827798a7ef6940fe35700c250e8928c4ce103b78a34dbdbe247427b3627f38d4871d8714ca2fa3698fcccd222d907fb460caf816985c38f36bdf64f1fdeea30403fda73e6027e69ec2f899379a815db5f37fdbdeb3ef58b9f77053709158dfb5ee42c14e9b72ac122fa86de151b091167f9120aaaa32f281d319efc6c014f991e78216d2a227b4f31059ba61fe3f7aaa931d522f45b98e3cff57bb3bd125d5b5cc24f1a8479a4feb3846b5bcfb445b44b2527f485da1eddbdbd11451f724105b202ad1e7fb1b3f3e49f4baca04d9a6dfc225e801d2bb13319918a3ecc9781804c26239c10730e56501987a4c74707f9f4f5e0bb59bff94a1df8c7ae018b5ada59d8b125822f72f7bd085e814f10b17fd0db4461e1db8eb07178eaa8254c1cb4823fe9da15db1fbaf21bf52316cbd696266460edd82e17c5bb606d1c1ffd6f000000ffffe88ed8458a1f0000")
- mewn.AddAsset(".", "../runtime/js/runtime/init.js", "1f8b08000000000000ff548f4f4b033110c5cf06f21de6b8bbd81df5206811f4287814bc0863ba9dbab1d96449525769fbdd65d2edc1fce331bf372f09365a01c169d02c68565a1de0502a0848444015d545d109e14188b83f70568405a12ce93ad52b09ac25900865bf135d1296293d72d76bcfe0ec679f27961336d10c3c85b8854d8830f16ae1ec96c18c63d2aaea6a7861034f3ef7c1ffc2cdd5f5dd628c9cd867ad1ad40a1bf84abdf519387d734c36f87bb8054102e5df0d3c7b9bad71367182dc33bc19eb12c49dcf76607114d7e368a21960bfd9f92edbe08fd019e756a6db0a46adcea0e4556758c35eab8bc9fa7598da49925b6aff3b965a1de53d4358ef1cb7fc338698133c94a0e55f000000ffff4e896d4f9d010000")
- mewn.AddAsset(".", "./linuxdb.yaml", "1f8b08000000000000ffec58cf6fdb3618bd17e8fff09d3c2001932dd949b761dd7a58bb1608bac32e2b457da659f187c01f693cec8f1f68a91213cbb66c5348062ca7f0a3f81e1ff99e498910f2fa55259cb7a20c5e18ed8ad7af002a2c05d59b7f0144557485b66d512275e8baeef8f49206e9fb3680a60a0b78930c8a7ff7689d30baf83660e8e18c759dcc28457555c082335605d5747520496318d858c32d55ae80453bc50efa5b7d78128074d3e28ca5658015caa6808f1b5520b4f3544af82afc0a3ebb5019a08d271c7ddf5506212b82cea1f682cacf407505deae81722af418655373c28c5e0a7e1ef380338154376a321b0b560271ef60e57de38aebeb0acb2b6d2a7426588657cca86b873e347ffd7073f500ffc0667a25752b20b058c0e86cc91a22c417b773b25294965a815bfbd7778c0993a2e4be26b7a4c2fbf3d633459ab0a252945fb1ac85bf89a37ebcfa3ecb0cb62147a612caa07d4812d91626277277f65a699f12b803895c06291fa532298c25f3e2403213135cec36414da548e4c76636f1bf5129e0edef9faedf091d1ef62ec2c5f622cca7b9a1d61a9fa86e0bd9747fdcc01da97c76d57f1b2bd2b367d3cea6f9cf01edb985cab8e64ae87487fb5a36c19b9d85f73de473ab46890ab5a7769dc81e8ad9740f90f0e1eee5645aa349cd1d9bf97ec7defc9200be04b5f7465489dad8cca6f60f23aa1c3f5be7de111fcac691fe6e481dc6231c67ba163e229bed3af88865f21d6e74217d7d79db2ec869ec09c00491c95dea0ccea72823c40cb5372eb1765bc866ee9f51fb0f77f012fcbdb9b7ae83eacb9c31c22e2f41d11a677cf949299b9a4708329be3b718b14149ba8decdf70d207ce8dc5b1a9d8de861e63723072d03e451a215f62652c4dc2d116b285e3d704ee402cf69f72ff47632fe336d97fd1f437f95c7fb3979e5ab64a4c1f9bd92cff9365ab2ca7012ce2bce6f84cd650a6a8067217874e337ff4eba924ddf039ce818144376ad2c7ab644df77eba8afe3979557d7d7b94e94f251a1046e814d55fa83589cfbb4a36abbf6ff1f2b8fd62afdbd397985d5bc8e3c52ed5db16b2c97d9bc09dacf3f40007273487b50916dcda7954dfb968859a728c3b4b39dab34fae1339a6e5f628f0c32f2bc591f9448596633774723cc9d1f1ec7886e14fb8fe0d0000ffff6b19f4edca190000")
+ mewn.AddAsset(".", "../runtime/assets/bridge.js", "1f8b08000000000000ffac597b73e2ba92ff1b3e85ee9c9a821c12ccfb79726a8d2184244078e5c1dd5b596137b6882d1b4b606026df7d4bb601934966e66c2d332496d4ea6efdd44f47fa338e5e50f079091f5ec2a7f877f4dd9f9090f4f2f2825e922f67fed38bbf227d170b82f67fa4f0e945122b92f82ff604d349c1ed0cc5bfbfbc48e2fbdf2f2fe72f92ff4fec40283e3600994437b807e2279abbd802cf765fd1dc769107b30b93bc02c28ec3e249f50cdd014632e5864db72897c9562f1c1718501eff538a4b7fa2053308e508d81a5c466c5a4325f4a7148fcf5754e5c4a68850c29367e85b3c2649a8e1124d0764cf16a0f278cc2354b3bdb48789c966c1d2a5a08cb9a0da9482cafb6b704dbcad21ba32cdf3e8ca9858e0d6503e9311d31e9b0cef6a28e1b19a2499b68a4dc366bc962f64b34529609d1074e16662d311c71c8e7c559bce895e43dfde7c763063b6fa0a3c42804d7386d5d7e38c1de8763deeded5e2b1582cf19746d648353163975ffc335d1cb4bd0889bffcfd1b4417aa4d3950fe7bc49c7013befcfd28964380ff9234b2fefbaf99fb5b0c4c1b6b84eacc219482fbe5ef77bb89f6f9560b18c37a209d13aafb36245002aa856c223f1311d494d128002dfd09ef6f8ecd88b8a8da9c6c40ab73dba965ea26cc792d53f788c68d5a3693f95a377c330e9e8564ddb55754abb9fa0c2733e7e25fba74569fdb945fccb145cc6d8d61ca2e18b8645ed708738479519b427d7741a8069b5ad5ffbc7da6d8fe76be395813b8d572196783f2196753e7b0e117d8243aada94039b8a1a2b90c58f5c3795c3031276b38a85e00ab3eb35d0ddc0b176b64c56a59b0ea167675426bc5af08afb88d3291d35da8b669bbb53fe6f3797d666f2e988135dbab659d0d12df40216713dd412cac436de59a490d735cf3879243f5fa0c332815cec943a33ff432b76ddd966559ee8d26466ba2cbb2ac54c478a5c85d31b8776672594c2caf1add87d644fe879f56431e7cf4bc1f8b6f53f6bae251cced7fef3fd1b122eb1df17d4ff311bda0fba7ba5e35068fb7caa21400921f8ec66657be239d65d3786d3764e6dd2cee33edcd7da9372c3c56a51d5f0c9b5de37152ccb4ab7a11ae9fd6b369f5a9d5a96ea66375393573d8d46eed6271e0d9ca7a3ad1778660ccaa37c3d6d564d4859e09f0b85cc81363926928f83adfe1c4abee6ec7d57c6ad7cee406b759c3928ad757a9c56e7a539a0fa0a46e9f5aa9855e7d2adb556fb3da9a9dcebc305ee71ef2a959df6d3dd17945f306d2eda0d36ef672d22855e85b0fcac3d39d34521b744e669bc970d9696cef25a3df6b55dcca38356b76cd41b5723b32cbcf1563b77046957576c99b4665559c576e074edb99d3fb7b63d9aedc80adf7f2e5eb6515702fb7191a1d4fc66dbaf658e52a3b3236cbdba23dcb71ef9964afe46eb3e03eb1674e15e9a6458633b3a04e5ce5d1a05de56e7805d613ec9e66b36275705b7894477d669568ee319b2a288d71eec6e2bb4169cedc597b351b4abdab9996d38bcfd9723555f4a476eb1adfb2ebc5b302bcace8eed324cf37d8ed29e5e74dffe186771605a935dc75b5e97ca7e6b38693aaa8cd12b43b773a76a7cfd5d5349b336496c9afe78d6655c996b3faa8d8b776e5bebadec877830e2dac2ac361a3d15019a93e3ee63cbb5f25ce9d3edf39cfa6aeebf9e9501bf6274ae5765c1edc2d97f9c7ea6da3d89869570f7aa19aabbe6a9e534a2df1947615a5d7d016a9deb6977dac548ac3ad24dfe59b057930630f0f056a2ba42b2995fcebf67959c93c994df979c05d6cf64973670fe56bd3e68f666599e38bf5b3d9d7553d2b57162dd999e29492298d1b9abccb0dd6196f95cd76a4ddb4bfbd19945a5e1b76b9fbdcac72df19b859c3f3a83c65f2c6930b13f9b9bf7d9a6cbad2c629f16b9916da13ebbeddad0e7315fb61a32b199076839b9b4ea9b935b6d3ac5b5eed8603c3511fcb9bf27a8c1f47bbdb51bb84c129975f5d7bdc32f3934a76357ac09331d75b9dde5ca980b3490d0a57d591e398d7ed4aa1f55ab20a43795995c677affd86bbd9c24ad3a6c6f5badd71b24f4ff3ab6d7e9a5f73af37336fdba4495337a96a6eed7972e35a3716e56bba3347d9ebe26ba35095a76badad5ce9a471bf2c5597f3a77b37bf4da5b6c4bccaf47b8561058665e6c8ecce99568bbda5fc58e47896550bebd7a955c226e0856a74bde7b1d6b91b0cc65e2bd77f2864b3d36ef571c79b8bfba599cda9b8414a7ad399dc5a4dad30c93ef5b4c1665ab8eb3c0d8ad2d82ddc973b55feac5eb9cddb7c10c5ccabf1eb6835b014e52c1a805d7000f31ab5c3a7e8da21350459e3f3d4e3e7fa6f7e32636407b51c589f1387c939429e4de77fb6e1b410f8e6d8446873016ba09c053932cc67e92258fbf4150c82fc554b17c042cc368986b88b2973b00b94efb35b98b6f2ad52b9a5a03f00c0fff12ef915335feb98120bfb9044944259864c4201bb88d0b9282c619f25458aac1f12b2d0e8edbf5e61eb17b70c45787c1385c2375fb7b9ed5a35d7167560325fca68a09fbdbdf9358a69eb3574a8609321907e111b13652c3093507ea1118667265c5091f685626259b529b34d489bb69e14e358e2ab8a7cc45158e27e555102a550c815a55002f95263b144a480417f609cc964327514a086fc6c8f4ea112591e65c2afc8f8688f812804eae878f528932ebb607d282893a9567f252814b017f86b4142ce593d1e8bbdc5636ff5f85b3c2e4948d6b0c3414373d7b644afb126e0a10bc40d4c5f19da317075f857b477107d82321a2555c67cf8d7d8456082852e9166ab2b0b284fab2e600e2d13c42899607c6b424288168469065ce6dc25b3158764826f1d489ca384a8d42495319f8ecc5132a0155b4706000feefadd645a656c0c1b8e2e91ca583d1e7b436032389262c701aa290631b5e43bf5c4be9ead817f1221f42d388c01588b1ec61f7fff7e9cd0818747638ded18eb3d6c413221c81267ffcefca71e8f89e713d14297b33de48a2f9e218ca8ad012214710350d3b68e30071afada05fe7aee630c948fb70e9c23a29d073d84907d8ec2faf7701fdae7971161b3079a6801b65a9a888d440bb0104b07197b8ac384407cff1ca18f2822f889a825ba31411d2c05b4c1a14e6f47a8e3025fb914697ba846c0195a393e40614c3c82c480af9cb01d4d1ece3eb3b56df4f8625c0f967c9f0ffa3101ad50ea88b3a03b47098dac85350601396c538566eff69e1cedc7a6391de944eb71bfd1eef89e133d095246a378ece8519fb35146a383f58c38760336d1fe32828a580f260f4dfe4820750262ec143ca1e307e20f4d37baf47becfa8754d1f6ffa784efdf2144af69b902773b0213546ebb224c7fda8626e27e14fb5c91fdab047429ae9385b3a025c29b1819b6c74ed138a267d8def09d9a018cbf73a02032a5c31e56c89f99b6fa9af08dde977d4d34f84cb64134f8ff942dca83886859d344cc61aa4b1c8eb8bd8f3a697f750896bd06860847648e9860ae21078b6ccdc1458421eeae201d51176bdac8e7950c589e23d7e711682cfc8dfd2c27f87b7cd78ab19fa584055ee3536231ad04d1045d86e7112b2711fb24b630dfc08fc7447e1945b1b94ff92cc87f3e22fd6e3ce607b3e871622c1dc42cdff9839523ef20a586378ca9660a20a96a5b84eae8e84447fb64d16bf73728c1dae7f72daa9784b2b765717fe15b9d00968f8d47aca82660b7230ebcc6e6474126eabffe8e9f4582b44d55d366c2b902c59b070ffb8dadfb0a6bbfb91b8c3fd9f9813f479df93de247a08f5eff23d0477d7f817533123a02f33801fcf7c2e5ff2d4cc5621fc7a1faf17d69f2ec08c0d8dd0a7b0857f6ae1d6a8b600dee16e533198ba1a40673bc32395a6373056781eb2b06a63a206e1016ccef4b120b138aa2af8283b7c4d120f04b28df250706fc608ac7723ef431e1743f8735c03524ffe51580871e6136f2c71f326693e19d0fea2f0dd776801eac5639dafb2f3782ebdae2e0c7c3ee234a2c0669c66da76359a011cce1deb51dacfb3d5632d42a24f978c571fd3eb0195ce961e1370d3316db575b736c3208a6defc5f6f22a09d7f54d69cbeebdf9be03b0f0b9dfab449130948a49fd0923c4044a7b60b68c110a69a28dfc3e622088f31e611ae1a87562fad618eff9df9cf815b50fd9864e662778b2ec2cdfff2ff2ec00025bc84ff36fb98a5a28cd2cc242a24b367416210fc7ab6173685ee8a726281c879a24d05ed3c5c98dbaeef172e606d8b7cf0c3cdfe09c23f47ecfdcff71eec38f17777926ef9dd7bba4f934199590ba424ced10f1ef169700a4e3f148a24c28bffc47bf66a1dacee33963d9b93f956642cec3826517d734bfcc4aaf69c4fa486f46fbe1d0583cf04def9c70e2f7218801eca9bb9805feb879be1641eeac30ef74b7feb7ecffdb2e503a60d4245b37c60370bd8f91d44b0842ed1872c430ee2085f422e35f405a5f6fbce7eb8f097740fbc9034b9a7fa5125059ba61fb50f4aa947a5f6603731c73fd5ec9d64657f495106ef848749a1f6c3f63b5b4fb744004b2626f495da1e3dbc2311351a724105b206ad167d7d72f0d4d3ba28e85b665bbfc416f0468ae0743a1dff34e5f9bbd3e9b4f031cc395841f51a12c6a309f12dfeae0f4a46ad7fdf0aed1bcac016450746f841d008afc15fddeffcb8d3d8fbfae581ae1e3d66d894c54e9ab153fd3a42ea8973bed3d827b76c6d65421a368eed72514f8b6df5f8ff060000ffffdb95edb4b81e0000")
+ mewn.AddAsset(".", "../runtime/js/runtime/init.js", "1f8b08000000000000ff548ccd4ec3301084cfec53cc3189680c1c90a04282231247242e488b9b6e89a96347b64b404ddf1dd96d0ff867359a99fd5443601c0f9f049f14cd988ba1a098195c715d149744cd39c8dd0f7552ac72a2f2cb3b47bbcab41a3433abfcdf992f59959b37007aed05d67cf669923cb1097a90c9872d363e6092d5c29aad408f63a4aaabf1221a4f2ef5defde2e6eafa6e310689e212358a5483afd81b9720f15b4234dedde3168d22524d4368f0ec4c32da9a2811a917bc696323c2ce253308a1741e471df480fd66e7ba64bc3ba0d3d6ae74b7a58c3adb85559da31a7bba988c5bfba99d32b4e5f67f614907a2c1af77565af9197d48110f05b2fc0b0000ffffacb36d8089010000")
+ mewn.AddAsset(".", "./linuxdb.yaml", "1f8b08000000000000ffec584d6fdc3610bde757cc690bd8a0ddda3de956346d0e4d9a00467ae8a5a1a83197113f047e38dea23fbee04a16656b3fb45a2ed605baa71d527c8f8f7c33224508795309e7ad28831746bbe20d4085a5a03afe031055d1c5ebd0a244ead0b59df1d17b1aa47f0a01345558c0db3422fe1ed03a6174f1f478dfc119ebfa98518aeaaa800567ac0aaae9da810c827e5c630db754b90216ede43ae0a7f6fe4100d24d893336680558a26c0af8b49603423b4fa5846fc22fe18b0b9501da78c2d1f75d6510b222e81c6a2fa8fc025457e0ed0a28a7426f206c6a4e98d1f7821fc59b60f653ea464de562c14a20ee3d2cbd6f5c717d5d6179a54d85ce04cbf08a1975edd087e6af1f6eae1ee11f584faea46e0904160bd83857b28208f1d56d9baa14a5a556e068e3fa8e0daaa428b9afc92da9f0e1a8a51c02ed5f4c29ca6f58d6c2dfc4413f5e7d9f837f8c389e482883f621a55f1b4f4bbfad99d66afa9ca0f6a4df7d90f2590a0e1a36a4e1c5ee341cecfbc5d67dafa91449758cb268fe8d4a01ef7eff7cfd5ee8f0b84bfbc558fb89a436d45ae393d836ce22f7d31aea30c1a715fbb7b162f036598759a4fed9239d559f8ccbac841eec67df9445e77a1fe1c313dc59c5a24485da53bb4a6a535b16b9090e3edebd8e7cd568060e8e519ed2f4f697047676910f465449648cb288fcc388eaf84a74dc89eeb16c1ce94f72d4617cf3e2490e71cfa84e74787bc631f5c4b569057d7d79db2ec52ceac1f8fdfa06479ff98c2f41c6b40cb5372ef9b88db338f967d4fee31d9cdbccebb3e52aa8be993346d8e525285ae3c9ee2543c2a6e611819cc8de233e6c50926ef7facbc7f081e372e0c01418af7f0f31350b3290be041a53df63652c4d99d0c65932e1d704b5270776beb6fecf832d7c63aaff9ac36fb259fc661739b56c991c1ea32cfefec9b265863a0f8b38a3fcdfa61aca14d540eee2c8494e8fee9c49d18dce5fe113856ed4942f4683c5dcf5bd28fa65ee72fafaf61087cfa44900633245f5576a4d3275d790c5d71f5aac1cd6bed865ede17d63cbae51cbccfa9afc2c7ddba65c396c5e814e1ecf9f83ed6ce32c0adf25a8b9f2e616a3e084e6b032c1825b398fea3b17fd5d538ed1b094a33df2953b8f61520d3a047aeffda938acd6a042cbb11b39b5d490434b4dc79246bf60fa370000ffff8eb09c3df7190000")
}
diff --git a/cmd/fs.go b/cmd/fs.go
index d0ceae7c5..36109e8f7 100644
--- a/cmd/fs.go
+++ b/cmd/fs.go
@@ -132,6 +132,16 @@ func (fs *FSHelper) LocalDir(dir string) (*Dir, error) {
}, err
}
+// LoadRelativeFile loads the given file relative to the caller's directory
+func (fs *FSHelper) LoadRelativeFile(relativePath string) ([]byte, error) {
+ _, filename, _, _ := runtime.Caller(0)
+ fullPath, err := filepath.Abs(filepath.Join(path.Dir(filename), relativePath))
+ if err != nil {
+ return nil, err
+ }
+ return ioutil.ReadFile(fullPath)
+}
+
// GetSubdirs will return a list of FQPs to subdirectories in the given directory
func (d *Dir) GetSubdirs() (map[string]string, error) {
diff --git a/cmd/gomod.go b/cmd/gomod.go
new file mode 100644
index 000000000..a9ca7d93c
--- /dev/null
+++ b/cmd/gomod.go
@@ -0,0 +1,78 @@
+package cmd
+
+import (
+ "fmt"
+ "path/filepath"
+ "regexp"
+
+ "github.com/Masterminds/semver"
+)
+
+func GetWailsVersion() (*semver.Version, error) {
+ var FS = NewFSHelper()
+ var result *semver.Version
+
+ // Load file
+ var err error
+ goModFile, err := filepath.Abs(filepath.Join(".", "go.mod"))
+ if err != nil {
+ return nil, fmt.Errorf("Unable to load go.mod at %s", goModFile)
+ }
+ goMod, err := FS.LoadAsString(goModFile)
+ if err != nil {
+ return nil, fmt.Errorf("Unable to load go.mod")
+ }
+
+ // Find wails version
+ versionRegexp := regexp.MustCompile(`.*github.com/wailsapp/wails.*(v\d+.\d+.\d+(?:-pre\d+)?)`)
+ versions := versionRegexp.FindStringSubmatch(goMod)
+
+ if len(versions) != 2 {
+ return nil, fmt.Errorf("Unable to determine Wails version")
+ }
+
+ version := versions[1]
+ result, err = semver.NewVersion(version)
+ if err != nil {
+ return nil, fmt.Errorf("Unable to parse Wails version: %s", version)
+ }
+ return result, nil
+
+}
+
+func GetCurrentVersion() (*semver.Version, error) {
+ result, err := semver.NewVersion(Version)
+ if err != nil {
+ return nil, fmt.Errorf("Unable to parse Wails version: %s", Version)
+ }
+ return result, nil
+}
+
+func GoModOutOfSync() (bool, error) {
+ gomodversion, err := GetWailsVersion()
+ if err != nil {
+ return true, err
+ }
+ currentVersion, err := GetCurrentVersion()
+ if err != nil {
+ return true, err
+ }
+ result := !currentVersion.Equal(gomodversion)
+ return result, nil
+}
+
+func UpdateGoModVersion() error {
+ currentVersion, err := GetCurrentVersion()
+ if err != nil {
+ return err
+ }
+ currentVersionString := currentVersion.String()
+
+ requireLine := "-require=github.com/wailsapp/wails@v" + currentVersionString
+
+ // Issue: go mod edit -require=github.com/wailsapp/wails@1.0.2-pre5
+ helper := NewProgramHelper()
+ command := []string{"go", "mod", "edit", requireLine}
+ return helper.RunCommandArray(command)
+
+}
diff --git a/cmd/helpers.go b/cmd/helpers.go
index 6c5b29e9c..1f4410d8b 100644
--- a/cmd/helpers.go
+++ b/cmd/helpers.go
@@ -99,8 +99,7 @@ func BuildApplication(binaryName string, forceRebuild bool, buildMode string, pa
binaryName = strings.TrimSuffix(binaryName, ".exe")
}
}
- buildCommand.Add("-o")
- buildCommand.Add(binaryName)
+ buildCommand.Add("-o", binaryName)
}
// If we are forcing a rebuild
@@ -121,6 +120,16 @@ func BuildApplication(binaryName string, forceRebuild bool, buildMode string, pa
ldflags += "-X github.com/wailsapp/wails.BuildMode=" + buildMode
+ // If we wish to generate typescript
+ if projectOptions.typescriptDefsFilename != "" {
+ cwd, err := os.Getwd()
+ if err != nil {
+ return err
+ }
+ filename := filepath.Join(cwd, projectOptions.FrontEnd.Dir, projectOptions.typescriptDefsFilename)
+ ldflags += " -X github.com/wailsapp/wails/lib/binding.typescriptDefinitionFilename=" + filename
+ }
+
buildCommand.AddSlice([]string{"-ldflags", ldflags})
err = NewProgramHelper().RunCommandArray(buildCommand.AsSlice())
if err != nil {
diff --git a/cmd/linux.go b/cmd/linux.go
index 36d49b185..8353c6b00 100644
--- a/cmd/linux.go
+++ b/cmd/linux.go
@@ -43,8 +43,16 @@ const (
Kali
// Neon distribution
Neon
+ // ArcoLinux distribution
+ ArcoLinux
// Manjaro distribution
Manjaro
+ // ManjaroARM distribution
+ ManjaroARM
+ // Deepin distribution
+ Deepin
+ // Raspbian distribution
+ Raspbian
)
// DistroInfo contains all the information relating to a linux distribution
@@ -100,6 +108,7 @@ func parseOsRelease(osRelease string) *DistroInfo {
version = strings.Trim(splitLine[1], "\"")
}
}
+
// Check distro name against list of distros
switch osID {
case "fedora":
@@ -128,8 +137,16 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = Kali
case "neon":
result.Distribution = Neon
+ case "arcolinux":
+ result.Distribution = ArcoLinux
case "manjaro":
result.Distribution = Manjaro
+ case "manjaro-arm":
+ result.Distribution = ManjaroARM
+ case "deepin":
+ result.Distribution = Deepin
+ case "raspbian":
+ result.Distribution = Raspbian
default:
result.Distribution = Unknown
}
diff --git a/cmd/linuxdb.go b/cmd/linuxdb.go
index 58892f5f3..fbea6b686 100644
--- a/cmd/linuxdb.go
+++ b/cmd/linuxdb.go
@@ -3,7 +3,6 @@ package cmd
import (
"log"
- "github.com/leaanthony/mewn"
"gopkg.in/yaml.v3"
)
@@ -79,11 +78,14 @@ func (l *LinuxDB) GetDistro(distro string) *Distribution {
// NewLinuxDB creates a new LinuxDB instance from the bundled
// linuxdb.yaml file.
func NewLinuxDB() *LinuxDB {
- data := mewn.Bytes("./linuxdb.yaml")
+ data, err := fs.LoadRelativeFile("./linuxdb.yaml")
+ if err != nil {
+ log.Fatal("Could not load linuxdb.yaml")
+ }
result := LinuxDB{
Distributions: make(map[string]*Distribution),
}
- err := result.ImportData(data)
+ err = result.ImportData(data)
if err != nil {
log.Fatal(err)
}
diff --git a/cmd/linuxdb.yaml b/cmd/linuxdb.yaml
index 8745ae371..3f1c49cfa 100644
--- a/cmd/linuxdb.yaml
+++ b/cmd/linuxdb.yaml
@@ -82,6 +82,15 @@ distributions:
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
+ deepin:
+ id: deepin
+ releases:
+ default:
+ version: default
+ name: Deepin
+ gccversioncommand: *gccdumpfullversion
+ programs: *debiandefaultprograms
+ libraries: *debiandefaultlibraries
void:
id: void
releases:
@@ -158,6 +167,15 @@ distributions:
help: Please install with `sudo pacman -S gtk3` and try again
- name: webkit2gtk
help: Please install with `sudo pacman -S webkit2gtk` and try again
+ arcolinux:
+ id: arcolinux
+ releases:
+ default:
+ version: default
+ name: ArcoLinux
+ gccversioncommand: *gccdumpversion
+ programs: *archdefaultprograms
+ libraries: *archdefaultlibraries
manjaro:
id: manjaro
releases:
@@ -167,6 +185,15 @@ distributions:
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
+ manjaro-arm:
+ id: manjaro-arm
+ releases:
+ default:
+ version: default
+ name: Manjaro-ARM
+ gccversioncommand: *gccdumpversion
+ programs: *archdefaultprograms
+ libraries: *archdefaultlibraries
gentoo:
id: gentoo
releases:
@@ -185,4 +212,14 @@ distributions:
- name: gtk+:3
help: Please install with `sudo emerge gtk+:3` and try again
- name: webkit-gtk
- help: Please install with `sudo emerge webkit-gtk` and try again
\ No newline at end of file
+ help: Please install with `sudo emerge webkit-gtk` and try again
+
+ raspbian:
+ id: raspbian
+ releases:
+ default:
+ version: default
+ name: Raspbian
+ gccversioncommand: *gccdumpfullversion
+ programs: *debiandefaultprograms
+ libraries: *debiandefaultlibraries
diff --git a/cmd/project.go b/cmd/project.go
index 91de152c8..1ecb52726 100644
--- a/cmd/project.go
+++ b/cmd/project.go
@@ -142,21 +142,22 @@ func (ph *ProjectHelper) NewProjectOptions() *ProjectOptions {
// ProjectOptions holds all the options available for a project
type ProjectOptions struct {
- Name string `json:"name"`
- Description string `json:"description"`
- Author *author `json:"author,omitempty"`
- Version string `json:"version"`
- OutputDirectory string `json:"-"`
- UseDefaults bool `json:"-"`
- Template string `json:"-"`
- BinaryName string `json:"binaryname"`
- FrontEnd *frontend `json:"frontend,omitempty"`
- NPMProjectName string `json:"-"`
- system *SystemHelper
- log *Logger
- templates *TemplateHelper
- selectedTemplate *TemplateDetails
- WailsVersion string
+ Name string `json:"name"`
+ Description string `json:"description"`
+ Author *author `json:"author,omitempty"`
+ Version string `json:"version"`
+ OutputDirectory string `json:"-"`
+ UseDefaults bool `json:"-"`
+ Template string `json:"-"`
+ BinaryName string `json:"binaryname"`
+ FrontEnd *frontend `json:"frontend,omitempty"`
+ NPMProjectName string `json:"-"`
+ system *SystemHelper
+ log *Logger
+ templates *TemplateHelper
+ selectedTemplate *TemplateDetails
+ WailsVersion string
+ typescriptDefsFilename string
}
// Defaults sets the default project template
@@ -165,6 +166,11 @@ func (po *ProjectOptions) Defaults() {
po.WailsVersion = Version
}
+// SetTypescriptDefsFilename indicates that we want to generate typescript bindings to the given file
+func (po *ProjectOptions) SetTypescriptDefsFilename(filename string) {
+ po.typescriptDefsFilename = filename
+}
+
// GetNPMBinaryName returns the type of package manager used by the project
func (po *ProjectOptions) GetNPMBinaryName() (PackageManager, error) {
if po.FrontEnd == nil {
diff --git a/cmd/system.go b/cmd/system.go
index 85ae394b5..d503f53c9 100644
--- a/cmd/system.go
+++ b/cmd/system.go
@@ -274,9 +274,9 @@ func CheckDependencies(logger *Logger) (bool, error) {
distroInfo := GetLinuxDistroInfo()
switch distroInfo.Distribution {
- case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon:
+ case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon, Deepin, Raspbian:
libraryChecker = DpkgInstalled
- case Arch, Manjaro:
+ case Arch, ArcoLinux, Manjaro, ManjaroARM:
libraryChecker = PacmanInstalled
case CentOS, Fedora:
libraryChecker = RpmInstalled
diff --git a/cmd/templates/angular-template/frontend/package.json.template b/cmd/templates/angular-template/frontend/package.json.template
index 640bcea4a..7b2ae8278 100644
--- a/cmd/templates/angular-template/frontend/package.json.template
+++ b/cmd/templates/angular-template/frontend/package.json.template
@@ -3,7 +3,7 @@
"version": "0.0.0",
"scripts": {
"ng": "npx ng",
- "start": "npx ng serve --poll=2000",
+ "start": "npx ng serve --poll=2000 --host=0.0.0.0",
"build": "npx ng build --single-bundle true --output-hashing none --prod --bundle-styles false",
"test": "npx ng test",
"lint": "npx ng lint",
diff --git a/cmd/templates/vuebasic/frontend/babel.config.js b/cmd/templates/vuebasic/frontend/babel.config.js
index ba179669a..a6106c484 100644
--- a/cmd/templates/vuebasic/frontend/babel.config.js
+++ b/cmd/templates/vuebasic/frontend/babel.config.js
@@ -1,5 +1,5 @@
module.exports = {
presets: [
- '@vue/app'
+ [ '@vue/app', { useBuiltIns: 'entry' } ]
]
}
diff --git a/cmd/templates/vuebasic/frontend/package.json.template b/cmd/templates/vuebasic/frontend/package.json.template
index 95c1db966..271f969bd 100644
--- a/cmd/templates/vuebasic/frontend/package.json.template
+++ b/cmd/templates/vuebasic/frontend/package.json.template
@@ -8,7 +8,8 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
- "core-js": "^2.6.4",
+ "core-js": "^3.6.1",
+ "regenerator-runtime": "^0.13.3",
"vue": "^2.5.22",
"@wailsapp/runtime": "^1.0.0"
},
diff --git a/cmd/templates/vuebasic/frontend/src/main.js b/cmd/templates/vuebasic/frontend/src/main.js
index 739f1a3fb..ce05741b7 100644
--- a/cmd/templates/vuebasic/frontend/src/main.js
+++ b/cmd/templates/vuebasic/frontend/src/main.js
@@ -1,3 +1,5 @@
+import 'core-js/stable';
+import 'regenerator-runtime/runtime';
import Vue from 'vue';
import App from './App.vue';
diff --git a/cmd/templates/vuebasic/frontend/vue.config.js b/cmd/templates/vuebasic/frontend/vue.config.js
index 471d578f5..a2691b1f7 100644
--- a/cmd/templates/vuebasic/frontend/vue.config.js
+++ b/cmd/templates/vuebasic/frontend/vue.config.js
@@ -37,7 +37,6 @@ module.exports = {
}
},
devServer: {
- disableHostCheck: true,
- host: "localhost"
+ disableHostCheck: true
}
};
diff --git a/cmd/templates/vuetify-basic/frontend/babel.config.js b/cmd/templates/vuetify-basic/frontend/babel.config.js
index ba179669a..a6106c484 100644
--- a/cmd/templates/vuetify-basic/frontend/babel.config.js
+++ b/cmd/templates/vuetify-basic/frontend/babel.config.js
@@ -1,5 +1,5 @@
module.exports = {
presets: [
- '@vue/app'
+ [ '@vue/app', { useBuiltIns: 'entry' } ]
]
}
diff --git a/cmd/templates/vuetify-basic/frontend/package.json.template b/cmd/templates/vuetify-basic/frontend/package.json.template
index 42555b90a..d737c25cd 100644
--- a/cmd/templates/vuetify-basic/frontend/package.json.template
+++ b/cmd/templates/vuetify-basic/frontend/package.json.template
@@ -8,8 +8,8 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
- "babel-polyfill": "^6.26.0",
- "core-js": "^2.6.4",
+ "core-js": "^3.6.1",
+ "regenerator-runtime": "^0.13.3",
"material-design-icons-iconfont": "^5.0.1",
"vue": "^2.5.22",
"vuetify": "^1.5.14",
@@ -50,4 +50,4 @@
"last 2 versions",
"not ie <= 8"
]
-}
\ No newline at end of file
+}
diff --git a/cmd/templates/vuetify-basic/frontend/src/main.js b/cmd/templates/vuetify-basic/frontend/src/main.js
index de57f6b7a..bbe42e116 100644
--- a/cmd/templates/vuetify-basic/frontend/src/main.js
+++ b/cmd/templates/vuetify-basic/frontend/src/main.js
@@ -1,4 +1,5 @@
-import 'babel-polyfill';
+import 'core-js/stable';
+import 'regenerator-runtime/runtime';
import Vue from 'vue';
// Setup Vuetify
diff --git a/cmd/templates/vuetify-basic/frontend/vue.config.js b/cmd/templates/vuetify-basic/frontend/vue.config.js
index 471d578f5..a2691b1f7 100644
--- a/cmd/templates/vuetify-basic/frontend/vue.config.js
+++ b/cmd/templates/vuetify-basic/frontend/vue.config.js
@@ -37,7 +37,6 @@ module.exports = {
}
},
devServer: {
- disableHostCheck: true,
- host: "localhost"
+ disableHostCheck: true
}
};
diff --git a/cmd/templates/vuetify-basic/template.json b/cmd/templates/vuetify-basic/template.json
index 0df81aa07..b58b5b041 100755
--- a/cmd/templates/vuetify-basic/template.json
+++ b/cmd/templates/vuetify-basic/template.json
@@ -1,8 +1,8 @@
{
- "name": "Vuetify Basic",
+ "name": "Vuetify1.5/Webpack Basic",
"version": "1.0.0",
- "shortdescription": "Vuetify + Webpack",
- "description": "Basic template using Vuetify and bundled using Webpack",
+ "shortdescription": "A basic Vuetify1.5/Webpack4 template",
+ "description": "Basic template using Vuetify v1.5 and bundled using Webpack",
"install": "npm install",
"build": "npm run build",
"author": "lea ",
@@ -11,4 +11,4 @@
"serve": "npm run serve",
"bridge": "src",
"wailsdir": ""
-}
\ No newline at end of file
+}
diff --git a/cmd/templates/vuetify2-basic/.jshint b/cmd/templates/vuetify2-basic/.jshint
new file mode 100644
index 000000000..0557edf11
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/.jshint
@@ -0,0 +1,3 @@
+{
+ "esversion": 6
+}
\ No newline at end of file
diff --git a/cmd/templates/vuetify2-basic/frontend/.gitignore b/cmd/templates/vuetify2-basic/frontend/.gitignore
new file mode 100644
index 000000000..185e66319
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/frontend/.gitignore
@@ -0,0 +1,21 @@
+.DS_Store
+node_modules
+/dist
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw*
diff --git a/cmd/templates/vuetify2-basic/frontend/babel.config.js b/cmd/templates/vuetify2-basic/frontend/babel.config.js
new file mode 100644
index 000000000..57e6d0a51
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/frontend/babel.config.js
@@ -0,0 +1,5 @@
+module.exports = {
+ presets: [
+ [ '@vue/app', { useBuiltIns: 'entry' } ]
+ ]
+};
diff --git a/cmd/templates/vuetify2-basic/frontend/package.json.template b/cmd/templates/vuetify2-basic/frontend/package.json.template
new file mode 100644
index 000000000..89f096e86
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/frontend/package.json.template
@@ -0,0 +1,53 @@
+{
+ "name": "{{.NPMProjectName}}",
+ "author": "{{.Author.Name}}<{{.Author.Email}}>",
+ "private": true,
+ "scripts": {
+ "serve": "vue-cli-service serve",
+ "build": "vue-cli-service build",
+ "lint": "vue-cli-service lint"
+ },
+ "dependencies": {
+ "core-js": "^3.6.1",
+ "regenerator-runtime": "^0.13.3",
+ "vue": "^2.5.22",
+ "vuetify": "^2.0.15",
+ "@wailsapp/runtime": "^1.0.0"
+ },
+ "devDependencies": {
+ "@mdi/font": "^4.3.95",
+ "@vue/cli-plugin-babel": "^3.4.0",
+ "@vue/cli-plugin-eslint": "^3.4.0",
+ "@vue/cli-service": "^3.4.0",
+ "babel-eslint": "^10.0.1",
+ "eslint": "^5.8.0",
+ "eslint-plugin-vue": "^5.0.0",
+ "eventsource-polyfill": "^0.9.6",
+ "vue-template-compiler": "^2.5.21",
+ "webpack-hot-middleware": "^2.24.3"
+ },
+ "eslintConfig": {
+ "root": true,
+ "env": {
+ "node": true
+ },
+ "extends": [
+ "plugin:vue/essential",
+ "eslint:recommended"
+ ],
+ "rules": {},
+ "parserOptions": {
+ "parser": "babel-eslint"
+ }
+ },
+ "postcss": {
+ "plugins": {
+ "autoprefixer": {}
+ }
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions",
+ "not ie <= 8"
+ ]
+}
diff --git a/cmd/templates/vuetify2-basic/frontend/src/App.vue b/cmd/templates/vuetify2-basic/frontend/src/App.vue
new file mode 100644
index 000000000..2d4a34228
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/frontend/src/App.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ mdi-view-dashboard
+
+
+ Dashboard
+
+
+
+
+ mdi-settings
+
+
+ Settings
+
+
+
+
+
+
+ Application
+
+
+
+
+
+
+
+
+
+ © You
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cmd/templates/vuetify2-basic/frontend/src/assets/images/logo.png b/cmd/templates/vuetify2-basic/frontend/src/assets/images/logo.png
new file mode 100644
index 000000000..31fc8249c
Binary files /dev/null and b/cmd/templates/vuetify2-basic/frontend/src/assets/images/logo.png differ
diff --git a/cmd/templates/vuetify2-basic/frontend/src/components/HelloWorld.vue b/cmd/templates/vuetify2-basic/frontend/src/components/HelloWorld.vue
new file mode 100644
index 000000000..84708401c
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/frontend/src/components/HelloWorld.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+ Press Me
+
+
+
+
+
+
+
+
+ Message from Go
+ {{message}}
+
+
+
+ Awesome
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cmd/templates/vuetify2-basic/frontend/src/main.js b/cmd/templates/vuetify2-basic/frontend/src/main.js
new file mode 100644
index 000000000..245eb1e03
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/frontend/src/main.js
@@ -0,0 +1,29 @@
+import 'core-js/stable';
+import 'regenerator-runtime/runtime';
+import '@mdi/font/css/materialdesignicons.css';
+import Vue from 'vue';
+import Vuetify from 'vuetify';
+import 'vuetify/dist/vuetify.min.css';
+
+Vue.use(Vuetify);
+
+import App from './App.vue';
+
+Vue.config.productionTip = false;
+Vue.config.devtools = true;
+
+import Wails from '@wailsapp/runtime';
+
+Wails.Init(() => {
+ new Vue({
+ vuetify: new Vuetify({
+ icons: {
+ iconfont: 'mdi'
+ },
+ theme: {
+ dark: true
+ }
+ }),
+ render: h => h(App)
+ }).$mount('#app');
+});
diff --git a/cmd/templates/vuetify2-basic/frontend/vue.config.js b/cmd/templates/vuetify2-basic/frontend/vue.config.js
new file mode 100644
index 000000000..8dcf3e339
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/frontend/vue.config.js
@@ -0,0 +1,42 @@
+let cssConfig = {};
+
+if (process.env.NODE_ENV == 'production') {
+ cssConfig = {
+ extract: {
+ filename: '[name].css',
+ chunkFilename: '[name].css'
+ }
+ };
+}
+
+module.exports = {
+ chainWebpack: config => {
+ let limit = 9999999999999999;
+ config.module
+ .rule('images')
+ .test(/\.(png|gif|jpg)(\?.*)?$/i)
+ .use('url-loader')
+ .loader('url-loader')
+ .tap(options => Object.assign(options, { limit: limit }));
+ config.module
+ .rule('fonts')
+ .test(/\.(woff2?|eot|ttf|otf|svg)(\?.*)?$/i)
+ .use('url-loader')
+ .loader('url-loader')
+ .options({
+ limit: limit
+ });
+ },
+ css: cssConfig,
+ configureWebpack: {
+ output: {
+ filename: '[name].js'
+ },
+ optimization: {
+ splitChunks: false
+ }
+ },
+ devServer: {
+ disableHostCheck: true
+ }
+};
diff --git a/cmd/templates/vuetify2-basic/go.mod.template b/cmd/templates/vuetify2-basic/go.mod.template
new file mode 100644
index 000000000..780381065
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/go.mod.template
@@ -0,0 +1,5 @@
+module {{.BinaryName}}
+
+require (
+ github.com/wailsapp/wails {{.WailsVersion}}
+)
\ No newline at end of file
diff --git a/cmd/templates/vuetify2-basic/main.go.template b/cmd/templates/vuetify2-basic/main.go.template
new file mode 100644
index 000000000..e2262bd1d
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/main.go.template
@@ -0,0 +1,27 @@
+package main
+
+import (
+ "github.com/leaanthony/mewn"
+ "github.com/wailsapp/wails"
+)
+
+func basic() string {
+ return "Hello World!"
+}
+
+func main() {
+
+ js := mewn.String("./frontend/dist/app.js")
+ css := mewn.String("./frontend/dist/app.css")
+
+ app := wails.CreateApp(&wails.AppConfig{
+ Width: 1024,
+ Height: 768,
+ Title: "{{.Name}}",
+ JS: js,
+ CSS: css,
+ Colour: "#131313",
+ })
+ app.Bind(basic)
+ app.Run()
+}
diff --git a/cmd/templates/vuetify2-basic/template.json b/cmd/templates/vuetify2-basic/template.json
new file mode 100755
index 000000000..a33450fe5
--- /dev/null
+++ b/cmd/templates/vuetify2-basic/template.json
@@ -0,0 +1,14 @@
+{
+ "name": "Vuetify2/Webpack Basic",
+ "version": "1.0.0",
+ "shortdescription": "A basic Vuetify2/Webpack4 template",
+ "description": "Basic template using Vuetify v2 and bundled using Webpack",
+ "install": "npm install",
+ "build": "npm run build",
+ "author": "Michael Hipp ",
+ "created": "2019-09-06",
+ "frontenddir": "frontend",
+ "serve": "npm run serve",
+ "bridge": "src",
+ "wailsdir": ""
+}
diff --git a/cmd/version.go b/cmd/version.go
index 052146b42..399b41347 100644
--- a/cmd/version.go
+++ b/cmd/version.go
@@ -1,4 +1,4 @@
package cmd
// Version - Wails version
-const Version = "v1.0.1"
+const Version = "v1.0.2"
diff --git a/cmd/wails/15_migrate.go b/cmd/wails/15_migrate.go
index 39a6ddb45..f4c935f77 100644
--- a/cmd/wails/15_migrate.go
+++ b/cmd/wails/15_migrate.go
@@ -7,7 +7,6 @@ import (
"log"
"os"
"path/filepath"
- "regexp"
"strings"
"github.com/Masterminds/semver"
@@ -183,35 +182,13 @@ func checkProjectDirectory() error {
func getWailsVersion() (*semver.Version, error) {
checkSpinner.Start("Get Wails Version")
- var result *semver.Version
- // Load file
- var err error
- goModFile, err = filepath.Abs(filepath.Join(".", "go.mod"))
+ result, err := cmd.GetWailsVersion()
+
if err != nil {
- checkSpinner.Error()
- return nil, fmt.Errorf("Unable to load go.mod at %s", goModFile)
+ checkSpinner.Error(err.Error())
+ return nil, err
}
- goMod, err = migrateFS.LoadAsString(goModFile)
- if err != nil {
- checkSpinner.Error()
- return nil, fmt.Errorf("Unable to load go.mod")
- }
-
- // Find wails version
- versionRegexp := regexp.MustCompile(`.*github.com/wailsapp/wails.*(v\d+.\d+.\d+)`)
- versions := versionRegexp.FindStringSubmatch(goMod)
-
- if len(versions) != 2 {
- return nil, fmt.Errorf("Unable to determine Wails version")
- }
-
- version := versions[1]
- result, err = semver.NewVersion(version)
- if err != nil {
- return nil, fmt.Errorf("Unable to parse Wails version: %s", version)
- }
- checkSpinner.Success("Found Wails Version: " + version)
return result, nil
}
diff --git a/cmd/wails/4_build.go b/cmd/wails/4_build.go
index 725f9eec9..c5398c075 100644
--- a/cmd/wails/4_build.go
+++ b/cmd/wails/4_build.go
@@ -13,6 +13,8 @@ func init() {
var packageApp = false
var forceRebuild = false
var debugMode = false
+ var typescriptFilename = ""
+
buildSpinner := spinner.NewSpinner()
buildSpinner.SetSpinSpeed(50)
@@ -21,7 +23,8 @@ func init() {
LongDescription(commandDescription).
BoolFlag("p", "Package application on successful build", &packageApp).
BoolFlag("f", "Force rebuild of application components", &forceRebuild).
- BoolFlag("d", "Build in Debug mode", &debugMode)
+ BoolFlag("d", "Build in Debug mode", &debugMode).
+ StringFlag("t", "Generate Typescript definitions to given file (at runtime)", &typescriptFilename)
initCmd.Action(func() error {
@@ -73,16 +76,13 @@ func init() {
return err
}
- // Ensure that runtime init.js is the production version
- err = cmd.InstallProdRuntime(projectDir, projectOptions)
- if err != nil {
- return err
- }
+ // Ensure that runtime init.js is the production version
+ err = cmd.InstallProdRuntime(projectDir, projectOptions)
+ if err != nil {
+ return err
+ }
}
-
-
-
// Move to project directory
err = os.Chdir(projectDir)
if err != nil {
@@ -101,6 +101,32 @@ func init() {
buildMode = cmd.BuildModeDebug
}
+ // Save if we wish to dump typescript or not
+ if typescriptFilename != "" {
+ projectOptions.SetTypescriptDefsFilename(typescriptFilename)
+ }
+
+ // Update go.mod if it is out of sync with current version
+ outofsync, err := cmd.GoModOutOfSync()
+ if err != nil {
+ return err
+ }
+ gomodVersion, err := cmd.GetWailsVersion()
+ if err != nil {
+ return err
+ }
+ if outofsync {
+ syncMessage := fmt.Sprintf("Updating go.mod (Wails version %s => %s)", gomodVersion, cmd.Version)
+ buildSpinner := spinner.NewSpinner(syncMessage)
+ buildSpinner.Start()
+ err := cmd.UpdateGoModVersion()
+ if err != nil {
+ buildSpinner.Error(err.Error())
+ return err
+ }
+ buildSpinner.Success()
+ }
+
err = cmd.BuildApplication(projectOptions.BinaryName, forceRebuild, buildMode, packageApp, projectOptions)
if err != nil {
return err
diff --git a/go.mod b/go.mod
index 435d02d39..8080133bf 100644
--- a/go.mod
+++ b/go.mod
@@ -13,7 +13,7 @@ require (
github.com/kennygrant/sanitize v1.2.4
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
github.com/leaanthony/mewn v0.10.7
- github.com/leaanthony/slicer v1.3.2
+ github.com/leaanthony/slicer v1.4.0
github.com/leaanthony/spinner v0.5.3
github.com/mattn/go-colorable v0.1.1 // indirect
github.com/mattn/go-isatty v0.0.7 // indirect
@@ -31,3 +31,5 @@ require (
gopkg.in/AlecAivazis/survey.v1 v1.8.4
gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22
)
+
+go 1.12
diff --git a/go.sum b/go.sum
index 96ea28f11..3c9d0b42a 100644
--- a/go.sum
+++ b/go.sum
@@ -36,6 +36,8 @@ github.com/leaanthony/mewn v0.10.7 h1:jCcNJyIUOpwj+I5SuATvCugDjHkoo+j6ubEOxxrxmP
github.com/leaanthony/mewn v0.10.7/go.mod h1:CRkTx8unLiSSilu/Sd7i1LwrdaAL+3eQ3ses99qGMEQ=
github.com/leaanthony/slicer v1.3.2 h1:kGWWFoyaY5WzwGrUsHXMmGbssuYthP4qYBNlkNpNAB8=
github.com/leaanthony/slicer v1.3.2/go.mod h1:VMB/HGvr3uR3MRpFWHWAm0w+DHQLzPHYe2pKfpFlQIQ=
+github.com/leaanthony/slicer v1.4.0 h1:Q9u4w+UBU4WHjXnEDdz+eRLMKF/rnyosRBiqULnc1J8=
+github.com/leaanthony/slicer v1.4.0/go.mod h1:FwrApmf8gOrpzEWM2J/9Lh79tyq8KTX5AzRtwV7m4AY=
github.com/leaanthony/spinner v0.5.3 h1:IMTvgdQCec5QA4qRy0wil4XsRP+QcG1OwLWVK/LPZ5Y=
github.com/leaanthony/spinner v0.5.3/go.mod h1:oHlrvWicr++CVV7ALWYi+qHk/XNA91D9IJ48IqmpVUo=
github.com/leaanthony/synx v0.1.0 h1:R0lmg2w6VMb8XcotOwAe5DLyzwjLrskNkwU7LLWsyL8=
diff --git a/lib/binding/manager.go b/lib/binding/manager.go
index 43b3959dc..34e79055c 100644
--- a/lib/binding/manager.go
+++ b/lib/binding/manager.go
@@ -2,7 +2,11 @@ package binding
import (
"fmt"
+ "io/ioutil"
+ "os"
+ "path/filepath"
"reflect"
+ "strings"
"unicode"
"github.com/wailsapp/wails/lib/interfaces"
@@ -10,6 +14,8 @@ import (
"github.com/wailsapp/wails/lib/messages"
)
+var typescriptDefinitionFilename = ""
+
// Manager handles method binding
type Manager struct {
methods map[string]*boundMethod
@@ -21,16 +27,19 @@ type Manager struct {
renderer interfaces.Renderer
runtime interfaces.Runtime // The runtime object to pass to bound structs
objectsToBind []interface{}
- bindPackageNames bool // Package name should be considered when binding
+ bindPackageNames bool // Package name should be considered when binding
+ structList map[string][]string // structList["mystruct"] = []string{"Method1", "Method2"}
}
// NewManager creates a new Manager struct
func NewManager() interfaces.BindingManager {
+
result := &Manager{
methods: make(map[string]*boundMethod),
functions: make(map[string]*boundFunction),
log: logger.NewCustomLogger("Bind"),
internalMethods: newInternalMethods(),
+ structList: make(map[string][]string),
}
return result
}
@@ -88,9 +97,55 @@ func (b *Manager) initialise() error {
return err
}
}
+
+ // If we wish to generate a typescript definition file...
+ if typescriptDefinitionFilename != "" {
+ err := b.generateTypescriptDefinitions()
+ if err != nil {
+ return err
+ }
+ }
return nil
}
+// Generate typescript
+func (b *Manager) generateTypescriptDefinitions() error {
+
+ var output strings.Builder
+
+ for structname, methodList := range b.structList {
+ structname = strings.SplitN(structname, ".", 2)[1]
+ output.WriteString(fmt.Sprintf("Interface %s {\n", structname))
+ for _, method := range methodList {
+ output.WriteString(fmt.Sprintf("\t%s: (...args : any[]) => Promise\n", method))
+ }
+ output.WriteString("}\n")
+ }
+
+ output.WriteString("\n")
+ output.WriteString("Interface Backend {\n")
+
+ for structname := range b.structList {
+ structname = strings.SplitN(structname, ".", 2)[1]
+ output.WriteString(fmt.Sprintf("\t%[1]s: %[1]s\n", structname))
+ }
+ output.WriteString("}\n")
+
+ globals := `
+declare global {
+ interface Window {
+ backend: Backend;
+ }
+}`
+ output.WriteString(globals)
+
+ b.log.Info("Written Typescript file: " + typescriptDefinitionFilename)
+
+ dir := filepath.Dir(typescriptDefinitionFilename)
+ os.MkdirAll(dir, 0755)
+ return ioutil.WriteFile(typescriptDefinitionFilename, []byte(output.String()), 0755)
+}
+
// bind the given struct method
func (b *Manager) bindMethod(object interface{}) error {
@@ -104,6 +159,12 @@ func (b *Manager) bindMethod(object interface{}) error {
b.log.Debugf("Processing struct: %s", baseName)
+ // Calc actual name
+ actualName := strings.TrimPrefix(baseName, "main.")
+ if b.structList[actualName] == nil {
+ b.structList[actualName] = []string{}
+ }
+
// Iterate over method definitions
for i := 0; i < objectType.NumMethod(); i++ {
@@ -113,6 +174,8 @@ func (b *Manager) bindMethod(object interface{}) error {
fullMethodName := baseName + "." + methodName
method := reflect.ValueOf(object).MethodByName(methodName)
+ b.structList[actualName] = append(b.structList[actualName], methodName)
+
// Skip unexported methods
if !unicode.IsUpper([]rune(methodName)[0]) {
continue
diff --git a/lib/event/manager.go b/lib/event/manager.go
index 4f73bea93..6020fd349 100644
--- a/lib/event/manager.go
+++ b/lib/event/manager.go
@@ -3,7 +3,6 @@ package event
import (
"fmt"
"sync"
- "time"
"github.com/wailsapp/wails/lib/interfaces"
"github.com/wailsapp/wails/lib/logger"
@@ -13,6 +12,7 @@ import (
// Manager handles and processes events
type Manager struct {
incomingEvents chan *messages.EventData
+ quitChannel chan struct{}
listeners map[string][]*eventListener
running bool
log *logger.CustomLogger
@@ -24,6 +24,7 @@ type Manager struct {
func NewManager() interfaces.EventManager {
return &Manager{
incomingEvents: make(chan *messages.EventData, 100),
+ quitChannel: make(chan struct{}, 1),
listeners: make(map[string][]*eventListener),
running: false,
log: logger.NewCustomLogger("Events"),
@@ -141,8 +142,8 @@ func (e *Manager) Start(renderer interfaces.Renderer) {
}
}
}
- default:
- time.Sleep(1 * time.Millisecond)
+ case <-e.quitChannel:
+ e.running = false
}
}
e.wg.Done()
@@ -152,7 +153,7 @@ func (e *Manager) Start(renderer interfaces.Renderer) {
// Shutdown is called when exiting the Application
func (e *Manager) Shutdown() {
e.log.Debug("Shutting Down")
- e.running = false
+ e.quitChannel <- struct{}{}
e.log.Debug("Waiting for main loop to exit")
e.wg.Wait()
}
diff --git a/lib/interfaces/ipcmanager.go b/lib/interfaces/ipcmanager.go
index 9d077203b..bc6a3cc00 100644
--- a/lib/interfaces/ipcmanager.go
+++ b/lib/interfaces/ipcmanager.go
@@ -1,9 +1,13 @@
package interfaces
+// CallbackFunc defines the signature of a function required to be provided to the
+// Dispatch function so that the response may be returned
+type CallbackFunc func(string) error
+
// IPCManager is the event manager interface
type IPCManager interface {
BindRenderer(Renderer)
- Dispatch(message string)
+ Dispatch(message string, f CallbackFunc)
Start(eventManager EventManager, bindingManager BindingManager)
Shutdown()
}
diff --git a/lib/interfaces/renderer.go b/lib/interfaces/renderer.go
index 1a56dc1fd..f8d127ba1 100644
--- a/lib/interfaces/renderer.go
+++ b/lib/interfaces/renderer.go
@@ -12,7 +12,6 @@ type Renderer interface {
// Binding
NewBinding(bindingName string) error
- Callback(data string) error
// Events
NotifyEvent(eventData *messages.EventData) error
diff --git a/lib/ipc/manager.go b/lib/ipc/manager.go
index fb1a26adc..8cff6e3db 100644
--- a/lib/ipc/manager.go
+++ b/lib/ipc/manager.go
@@ -3,7 +3,6 @@ package ipc
import (
"fmt"
"sync"
- "time"
"github.com/wailsapp/wails/lib/interfaces"
"github.com/wailsapp/wails/lib/logger"
@@ -124,8 +123,8 @@ func (i *Manager) Start(eventManager interfaces.EventManager, bindingManager int
i.log.DebugFields("Finished processing message", logger.Fields{
"1D": &incomingMessage,
})
- default:
- time.Sleep(1 * time.Millisecond)
+ case <-i.quitChannel:
+ i.running = false
}
}
i.log.Debug("Stopping")
@@ -136,10 +135,10 @@ func (i *Manager) Start(eventManager interfaces.EventManager, bindingManager int
// Dispatch receives JSON encoded messages from the renderer.
// It processes the message to ensure that it is valid and places
// the processed message on the message queue
-func (i *Manager) Dispatch(message string) {
+func (i *Manager) Dispatch(message string, cb interfaces.CallbackFunc) {
// Create a new IPC Message
- incomingMessage, err := newIPCMessage(message, i.SendResponse)
+ incomingMessage, err := newIPCMessage(message, i.SendResponse(cb))
if err != nil {
i.log.ErrorFields("Could not understand incoming message! ", map[string]interface{}{
"message": message,
@@ -159,23 +158,25 @@ func (i *Manager) Dispatch(message string) {
}
// SendResponse sends the given response back to the frontend
-func (i *Manager) SendResponse(response *ipcResponse) error {
+// It sends the data back to the correct renderer by way of the provided callback function
+func (i *Manager) SendResponse(cb interfaces.CallbackFunc) func(i *ipcResponse) error {
- // Serialise the Message
- data, err := response.Serialise()
- if err != nil {
- fmt.Printf(err.Error())
- return err
+ return func(response *ipcResponse) error {
+ // Serialise the Message
+ data, err := response.Serialise()
+ if err != nil {
+ fmt.Printf(err.Error())
+ return err
+ }
+ return cb(data)
}
- // Call back to the front end
- return i.renderer.Callback(data)
}
// Shutdown is called when exiting the Application
func (i *Manager) Shutdown() {
i.log.Debug("Shutdown called")
- i.running = false
+ i.quitChannel <- struct{}{}
i.log.Debug("Waiting of main loop shutdown")
i.wg.Wait()
}
diff --git a/lib/renderer/bridge.go b/lib/renderer/bridge.go
index 2b74f868d..44da78495 100644
--- a/lib/renderer/bridge.go
+++ b/lib/renderer/bridge.go
@@ -1,262 +1,10 @@
package renderer
import (
- "encoding/json"
- "fmt"
- "net/http"
- "strings"
- "sync"
-
- "github.com/dchest/htmlmin"
- "github.com/gorilla/websocket"
- "github.com/leaanthony/mewn"
- "github.com/wailsapp/wails/lib/interfaces"
- "github.com/wailsapp/wails/lib/logger"
- "github.com/wailsapp/wails/lib/messages"
+ bridge "github.com/wailsapp/wails/lib/renderer/bridge"
)
-type messageType int
-
-const (
- jsMessage messageType = iota
- cssMessage
- htmlMessage
- notifyMessage
- bindingMessage
- callbackMessage
- wailsRuntimeMessage
-)
-
-func (m messageType) toString() string {
- return [...]string{"j", "s", "h", "n", "b", "c", "w"}[m]
-}
-
-// Bridge is a backend that opens a local web server
-// and renders the files over a websocket
-type Bridge struct {
- // Common
- log *logger.CustomLogger
- ipcManager interfaces.IPCManager
- appConfig interfaces.AppConfig
- eventManager interfaces.EventManager
- bindingCache []string
-
- // Bridge specific
- initialisationJS []string
- server *http.Server
- theConnection *websocket.Conn
-
- // Mutex for writing to the socket
- lock sync.Mutex
-}
-
-// Initialise the Bridge Renderer
-func (h *Bridge) Initialise(appConfig interfaces.AppConfig, ipcManager interfaces.IPCManager, eventManager interfaces.EventManager) error {
- h.ipcManager = ipcManager
- h.appConfig = appConfig
- h.eventManager = eventManager
- ipcManager.BindRenderer(h)
- h.log = logger.NewCustomLogger("Bridge")
- return nil
-}
-
-func (h *Bridge) evalJS(js string, mtype messageType) error {
-
- message := mtype.toString() + js
-
- if h.theConnection == nil {
- h.initialisationJS = append(h.initialisationJS, message)
- } else {
- // Prepend message type to message
- h.sendMessage(h.theConnection, message)
- }
-
- return nil
-}
-
-// EnableConsole not needed for bridge!
-func (h *Bridge) EnableConsole() {
-}
-
-func (h *Bridge) injectCSS(css string) {
- // Minify css to overcome issues in the browser with carriage returns
- minified, err := htmlmin.Minify([]byte(css), &htmlmin.Options{
- MinifyStyles: true,
- })
- if err != nil {
- h.log.Fatal("Unable to minify CSS: " + css)
- }
- minifiedCSS := string(minified)
- minifiedCSS = strings.Replace(minifiedCSS, "\\", "\\\\", -1)
- minifiedCSS = strings.Replace(minifiedCSS, "'", "\\'", -1)
- minifiedCSS = strings.Replace(minifiedCSS, "\n", " ", -1)
- inject := fmt.Sprintf("wails._.InjectCSS('%s')", minifiedCSS)
- h.evalJS(inject, cssMessage)
-}
-
-func (h *Bridge) wsBridgeHandler(w http.ResponseWriter, r *http.Request) {
- conn, err := websocket.Upgrade(w, r, w.Header(), 1024, 1024)
- if err != nil {
- http.Error(w, "Could not open websocket connection", http.StatusBadRequest)
- }
- h.theConnection = conn
- h.log.Infof("Connection from frontend accepted [%p].", h.theConnection)
- conn.SetCloseHandler(func(int, string) error {
- h.log.Infof("Connection dropped [%p].", h.theConnection)
- h.theConnection = nil
- return nil
- })
- go h.start(conn)
-}
-
-func (h *Bridge) sendMessage(conn *websocket.Conn, msg string) {
-
- h.lock.Lock()
- defer h.lock.Unlock()
-
- if err := conn.WriteMessage(websocket.TextMessage, []byte(msg)); err != nil {
- h.log.Error(err.Error())
- }
-}
-
-func (h *Bridge) start(conn *websocket.Conn) {
-
- // set external.invoke
- h.log.Infof("Connected to frontend.")
-
- wailsRuntime := mewn.String("../../runtime/assets/wails.js")
- h.evalJS(wailsRuntime, wailsRuntimeMessage)
-
- // Inject bindings
- for _, binding := range h.bindingCache {
- h.evalJS(binding, bindingMessage)
- }
-
- // Emit that everything is loaded and ready
- h.eventManager.Emit("wails:ready")
-
- for {
- messageType, buffer, err := conn.ReadMessage()
- if messageType == -1 {
- return
- }
- if err != nil {
- h.log.Errorf("Error reading message: ", err)
- continue
- }
-
- h.log.Debugf("Got message: %#v\n", string(buffer))
-
- h.ipcManager.Dispatch(string(buffer))
- }
-}
-
-// Run the app in Bridge mode!
-func (h *Bridge) Run() error {
- h.server = &http.Server{Addr: ":34115"}
- http.HandleFunc("/bridge", h.wsBridgeHandler)
-
- h.log.Info("Bridge mode started.")
- h.log.Info("The frontend will connect automatically.")
-
- err := h.server.ListenAndServe()
- if err != nil && err != http.ErrServerClosed {
- h.log.Fatal(err.Error())
- }
- return err
-}
-
-// NewBinding creates a new binding with the frontend
-func (h *Bridge) NewBinding(methodName string) error {
- h.bindingCache = append(h.bindingCache, methodName)
- return nil
-}
-
-// SelectFile is unsupported for Bridge but required
-// for the Renderer interface
-func (h *Bridge) SelectFile() string {
- h.log.Warn("SelectFile() unsupported in bridge mode")
- return ""
-}
-
-// SelectDirectory is unsupported for Bridge but required
-// for the Renderer interface
-func (h *Bridge) SelectDirectory() string {
- h.log.Warn("SelectDirectory() unsupported in bridge mode")
- return ""
-}
-
-// SelectSaveFile is unsupported for Bridge but required
-// for the Renderer interface
-func (h *Bridge) SelectSaveFile() string {
- h.log.Warn("SelectSaveFile() unsupported in bridge mode")
- return ""
-}
-
-// Callback sends a callback to the frontend
-func (h *Bridge) Callback(data string) error {
- return h.evalJS(data, callbackMessage)
-}
-
-// NotifyEvent notifies the frontend of an event
-func (h *Bridge) NotifyEvent(event *messages.EventData) error {
-
- // Look out! Nils about!
- var err error
- if event == nil {
- err = fmt.Errorf("Sent nil event to renderer.webViewRenderer")
- h.log.Error(err.Error())
- return err
- }
-
- // Default data is a blank array
- data := []byte("[]")
-
- // Process event data
- if event.Data != nil {
- // Marshall the data
- data, err = json.Marshal(event.Data)
- if err != nil {
- h.log.Errorf("Cannot unmarshall JSON data in event: %s ", err.Error())
- return err
- }
- }
-
- message := fmt.Sprintf("window.wails._.Notify('%s','%s')", event.Name, data)
- return h.evalJS(message, notifyMessage)
-}
-
-// SetColour is unsupported for Bridge but required
-// for the Renderer interface
-func (h *Bridge) SetColour(colour string) error {
- h.log.WarnFields("SetColour ignored for Bridge more", logger.Fields{"col": colour})
- return nil
-}
-
-// Fullscreen is unsupported for Bridge but required
-// for the Renderer interface
-func (h *Bridge) Fullscreen() {
- h.log.Warn("Fullscreen() unsupported in bridge mode")
-}
-
-// UnFullscreen is unsupported for Bridge but required
-// for the Renderer interface
-func (h *Bridge) UnFullscreen() {
- h.log.Warn("UnFullscreen() unsupported in bridge mode")
-}
-
-// SetTitle is currently unsupported for Bridge but required
-// for the Renderer interface
-func (h *Bridge) SetTitle(title string) {
- h.log.WarnFields("SetTitle() unsupported in bridge mode", logger.Fields{"title": title})
-}
-
-// Close is unsupported for Bridge but required
-// for the Renderer interface
-func (h *Bridge) Close() {
- h.log.Debug("Shutting down")
- err := h.server.Close()
- if err != nil {
- h.log.Errorf(err.Error())
- }
+// NewBridge returns a new Bridge struct
+func NewBridge() *bridge.Bridge {
+ return &bridge.Bridge{}
}
diff --git a/lib/renderer/bridge/bridge.go b/lib/renderer/bridge/bridge.go
new file mode 100644
index 000000000..9666b4655
--- /dev/null
+++ b/lib/renderer/bridge/bridge.go
@@ -0,0 +1,214 @@
+package renderer
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "sync"
+
+ "github.com/gorilla/websocket"
+ "github.com/wailsapp/wails/lib/interfaces"
+ "github.com/wailsapp/wails/lib/logger"
+ "github.com/wailsapp/wails/lib/messages"
+)
+
+type messageType int
+
+const (
+ jsMessage messageType = iota
+ cssMessage
+ htmlMessage
+ notifyMessage
+ bindingMessage
+ callbackMessage
+ wailsRuntimeMessage
+)
+
+func (m messageType) toString() string {
+ return [...]string{"j", "s", "h", "n", "b", "c", "w"}[m]
+}
+
+// Bridge is a backend that opens a local web server
+// and renders the files over a websocket
+type Bridge struct {
+ // Common
+ log *logger.CustomLogger
+ ipcManager interfaces.IPCManager
+ appConfig interfaces.AppConfig
+ eventManager interfaces.EventManager
+ bindingCache []string
+
+ // Bridge specific
+ server *http.Server
+
+ lock sync.Mutex
+ sessions map[string]session
+}
+
+// Initialise the Bridge Renderer
+func (h *Bridge) Initialise(appConfig interfaces.AppConfig, ipcManager interfaces.IPCManager, eventManager interfaces.EventManager) error {
+ h.sessions = map[string]session{}
+ h.ipcManager = ipcManager
+ h.appConfig = appConfig
+ h.eventManager = eventManager
+ ipcManager.BindRenderer(h)
+ h.log = logger.NewCustomLogger("Bridge")
+ return nil
+}
+
+// EnableConsole not needed for bridge!
+func (h *Bridge) EnableConsole() {
+}
+
+func (h *Bridge) wsBridgeHandler(w http.ResponseWriter, r *http.Request) {
+ conn, err := websocket.Upgrade(w, r, w.Header(), 1024, 1024)
+ if err != nil {
+ http.Error(w, "Could not open websocket connection", http.StatusBadRequest)
+ }
+ h.log.Infof("Connection from frontend accepted [%s].", conn.RemoteAddr().String())
+ h.startSession(conn)
+}
+
+func (h *Bridge) startSession(conn *websocket.Conn) {
+ s := session{
+ conn: conn,
+ bindingCache: h.bindingCache,
+ ipc: h.ipcManager,
+ log: h.log,
+ eventManager: h.eventManager,
+ }
+
+ conn.SetCloseHandler(func(int, string) error {
+ h.log.Infof("Connection dropped [%s].", s.Identifier())
+ h.eventManager.Emit("wails:bridge:session:closed", s.Identifier())
+ h.lock.Lock()
+ defer h.lock.Unlock()
+ delete(h.sessions, s.Identifier())
+ return nil
+ })
+
+ h.lock.Lock()
+ defer h.lock.Unlock()
+ go s.start(len(h.sessions) == 0)
+ h.sessions[s.Identifier()] = s
+}
+
+// Run the app in Bridge mode!
+func (h *Bridge) Run() error {
+ h.server = &http.Server{Addr: ":34115"}
+ http.HandleFunc("/bridge", h.wsBridgeHandler)
+
+ h.log.Info("Bridge mode started.")
+ h.log.Info("The frontend will connect automatically.")
+
+ err := h.server.ListenAndServe()
+ if err != nil && err != http.ErrServerClosed {
+ h.log.Fatal(err.Error())
+ }
+ return err
+}
+
+// NewBinding creates a new binding with the frontend
+func (h *Bridge) NewBinding(methodName string) error {
+ h.bindingCache = append(h.bindingCache, methodName)
+ return nil
+}
+
+// SelectFile is unsupported for Bridge but required
+// for the Renderer interface
+func (h *Bridge) SelectFile() string {
+ h.log.Warn("SelectFile() unsupported in bridge mode")
+ return ""
+}
+
+// SelectDirectory is unsupported for Bridge but required
+// for the Renderer interface
+func (h *Bridge) SelectDirectory() string {
+ h.log.Warn("SelectDirectory() unsupported in bridge mode")
+ return ""
+}
+
+// SelectSaveFile is unsupported for Bridge but required
+// for the Renderer interface
+func (h *Bridge) SelectSaveFile() string {
+ h.log.Warn("SelectSaveFile() unsupported in bridge mode")
+ return ""
+}
+
+// NotifyEvent notifies the frontend of an event
+func (h *Bridge) NotifyEvent(event *messages.EventData) error {
+
+ // Look out! Nils about!
+ var err error
+ if event == nil {
+ err = fmt.Errorf("Sent nil event to renderer.webViewRenderer")
+ h.log.Error(err.Error())
+ return err
+ }
+
+ // Default data is a blank array
+ data := []byte("[]")
+
+ // Process event data
+ if event.Data != nil {
+ // Marshall the data
+ data, err = json.Marshal(event.Data)
+ if err != nil {
+ h.log.Errorf("Cannot unmarshall JSON data in event: %s ", err.Error())
+ return err
+ }
+ }
+
+ message := fmt.Sprintf("window.wails._.Notify('%s','%s')", event.Name, data)
+ dead := []session{}
+ for _, session := range h.sessions {
+ err := session.evalJS(message, notifyMessage)
+ if err != nil {
+ h.log.Debugf("Failed to send message to %s - Removing listener : %v", session.Identifier(), err)
+ h.log.Infof("Connection from [%v] unresponsive - dropping", session.Identifier())
+ dead = append(dead, session)
+ }
+ }
+ h.lock.Lock()
+ defer h.lock.Unlock()
+ for _, session := range dead {
+ delete(h.sessions, session.Identifier())
+ }
+
+ return nil
+}
+
+// SetColour is unsupported for Bridge but required
+// for the Renderer interface
+func (h *Bridge) SetColour(colour string) error {
+ h.log.WarnFields("SetColour ignored for Bridge more", logger.Fields{"col": colour})
+ return nil
+}
+
+// Fullscreen is unsupported for Bridge but required
+// for the Renderer interface
+func (h *Bridge) Fullscreen() {
+ h.log.Warn("Fullscreen() unsupported in bridge mode")
+}
+
+// UnFullscreen is unsupported for Bridge but required
+// for the Renderer interface
+func (h *Bridge) UnFullscreen() {
+ h.log.Warn("UnFullscreen() unsupported in bridge mode")
+}
+
+// SetTitle is currently unsupported for Bridge but required
+// for the Renderer interface
+func (h *Bridge) SetTitle(title string) {
+ h.log.WarnFields("SetTitle() unsupported in bridge mode", logger.Fields{"title": title})
+}
+
+// Close is unsupported for Bridge but required
+// for the Renderer interface
+func (h *Bridge) Close() {
+ h.log.Debug("Shutting down")
+ err := h.server.Close()
+ if err != nil {
+ h.log.Errorf(err.Error())
+ }
+}
diff --git a/lib/renderer/bridge/session.go b/lib/renderer/bridge/session.go
new file mode 100644
index 000000000..fd4d9d596
--- /dev/null
+++ b/lib/renderer/bridge/session.go
@@ -0,0 +1,90 @@
+package renderer
+
+import (
+ "sync"
+
+ "github.com/gorilla/websocket"
+ "github.com/leaanthony/mewn"
+ "github.com/wailsapp/wails/lib/interfaces"
+ "github.com/wailsapp/wails/lib/logger"
+)
+
+// TODO Move this back into bridge.go
+
+// session represents a single websocket session
+type session struct {
+ bindingCache []string
+ conn *websocket.Conn
+ eventManager interfaces.EventManager
+ log *logger.CustomLogger
+ ipc interfaces.IPCManager
+
+ // Mutex for writing to the socket
+ lock sync.Mutex
+}
+
+// Identifier returns a string identifier for the remote connection.
+// Taking the form of the client's :.
+func (s *session) Identifier() string {
+ if s.conn != nil {
+ return s.conn.RemoteAddr().String()
+ }
+ return ""
+}
+
+func (s *session) sendMessage(msg string) error {
+ s.lock.Lock()
+ defer s.lock.Unlock()
+
+ if err := s.conn.WriteMessage(websocket.TextMessage, []byte(msg)); err != nil {
+ s.log.Debug(err.Error())
+ return err
+ }
+
+ return nil
+}
+
+func (s *session) start(firstSession bool) {
+ s.log.Infof("Connected to frontend.")
+
+ wailsRuntime := mewn.String("../../runtime/assets/wails.js")
+ s.evalJS(wailsRuntime, wailsRuntimeMessage)
+
+ // Inject bindings
+ for _, binding := range s.bindingCache {
+ s.evalJS(binding, bindingMessage)
+ }
+ s.eventManager.Emit("wails:bridge:session:started", s.Identifier())
+
+ // Emit that everything is loaded and ready
+ if firstSession {
+ s.eventManager.Emit("wails:ready")
+ }
+
+ for {
+ messageType, buffer, err := s.conn.ReadMessage()
+ if messageType == -1 {
+ return
+ }
+ if err != nil {
+ s.log.Errorf("Error reading message: %v", err)
+ continue
+ }
+
+ s.log.Debugf("Got message: %#v\n", string(buffer))
+
+ s.ipc.Dispatch(string(buffer), s.Callback)
+ }
+}
+
+// Callback sends a callback to the frontend
+func (s *session) Callback(data string) error {
+ return s.evalJS(data, callbackMessage)
+}
+
+func (s *session) evalJS(js string, mtype messageType) error {
+
+ // Prepend message type to message
+ return s.sendMessage(mtype.toString() + js)
+
+}
diff --git a/lib/renderer/renderer-mewn.go b/lib/renderer/renderer-mewn.go
index 80bfbd9b5..0e59c18db 100644
--- a/lib/renderer/renderer-mewn.go
+++ b/lib/renderer/renderer-mewn.go
@@ -5,7 +5,7 @@ package renderer
import "github.com/leaanthony/mewn"
func init() {
- mewn.AddAsset(".", "../../runtime/assets/wails.js", "1f8b08000000000000ff94587f8f1bb711fd2a2ba255481f8f91dc14a977c318cee582a838df053ebbfd4315026a7724d1b722b75cea1441e2772f667feb7e142d60d82b72480ee7bd7933f468b533a9d7d650c38e8fca45208f216907234f1d3bea1585b95b30077ee74c84df02fe28acf365824bacc42179d4b1e3793c9af266323e8690348b0c2e4a559e53dbaee596f7df9e712b72399af463c18bad34dc8b5402f72293bdab1cb863472f2c7eb2d3e96ef915522f32586903bf395b80f387caec0866b705a79639c4a3095f838f5d60817be1e4f0ea6467ead51919497f28c0aea2fbc37669f3f1b8fe57787bef9d36ebcf6a3d1ebf76e2735b7e7c54f90e62f2d166bb1c4860fcb5c5e4f7dfa16cccda65a349edae3fbb7e05ca740ce33135d253c318ffdb185a844ca257f43b9c25b63a8ac8f64e663cc63fa23fa95f84583ad938973a501ea8d9e539c3edbc70d4bde6bae3248395dae59e3c8d787d0b13187f5b39545671e9836cd8ca3a5ad128d22632cc8b8c3a6e79775d60c78e44b00862a94d56f9c52d632dbf1cc6c8c8e76c7e72dbf79d45bfab687c0ff10b931d83d12fe044110e8c031e679f40d21836212a9cf5162f2936aabcdb9b36587516e002dca39084704fbd28e584053a3fe3b8475e961061cc524f12c4005883d331240d2675c4c8cfb0dcad097f7e875de86c6666655f32c97b937f2a6710a117ac56bdd5b573d6bd6493f536bf28aff2976ccac01ae1682e61eb359693bb02cc974f372fad3a8433ab5f3466c973b365b3b996f3452f64aa0d68133c0426361cb158aaf461f673ec79a10eb955590c21399345bda27b6d32bb177ba5f372e974b686f7cf87c41e96a54d1fc08b1290a32c6e8ce00f0fcea85c68f3681f801ac6b5c8c1acfde6c7499700202709fcd04e247071c1f41c16d4b040ff7e7f772beadcd1ab03758c85ee6e694d3f45496ed7841f7378843c367c0b65a9d610431818eff046292559cd163398ca9b295d916438b36a66f62d378693593309352586536533b5aa996058c07bee797156641e5b6cda9cdbe5f948faf1b8f9389da89713c60deca3df9cddea1268878fe3b6065527993d6a692ec825b9d85316f61b9d032de67a510bd88f138676a92cc17fd65bb03b4f07f4b1b4e23425572acf236f2372612e48e4f516b2c8eebc883ec1bf7750fa68f6731c910bcd3081598207c8a3af37fc55992c8738e50e500462cb1d94367f84d885c4bb0382849c23fc8832a6cdfa566d918899f22a7e02322a846621553edd5481b4a6b439882ad0c88a21aeeb330d7aa4a466a6201795d4747607dca9b15a53f293b3fb129ce8f26e08dff275db3afb0c0b7bd9703c7587c2dba1be62b48d44d4be68e3fff2f68373ea40a79d669f2d146bf09f94c9ecf61f58319039f3c9e225497e37997c3f7df7eeed5fbffbfebbc9bb77d3371f95df0857ada52c54c9bfeda43932b4e2d6e859f91c511369537a65522c44c098df38bb8fd0e1cf87023a3a18637d84a8452a4a735596912a2315b51b1216a8dfe8921bc63db2f572caf1b7b86ac4e5ac2ab54d945045911fea3a6618bf9c8e24527e22a5a4fe524e59087c739626776d9a6ce66621f1afd369be68aa013abdad6e9ae08c2876e586ba0196d778b8a2041ec1609536aff36ebe1065aed3d645e5d6bb2d185fb27a984e190b7526df9f39f8804720c9db3c867df44b7b7582f6e4c2303e9af494ae2d47d3d03b7ad5214dafda664495a55e9bd36918c85e35a709fcd0393954cf8a815e7673735824ed3287dd8667ff53b1f6dc31ecb4b0cbf5d80987ae3b604d902a02f4910a0db7117e30993c06def40f33a3fd4b656b16181f961439fc713a1d037fb66505fd5779bc85fd4fb598c4cffb9ff942a4d6a4ca5323ca22d79e124158f55943c9bd3cdf19c512daea34edaa939393c4fdd04e5c4e137721a7f529f50300d78d1ea8656c807f9344a475c27212e932c28c52d1a3ca75167d558faa4c9d2e7ca433305eaf343841184bfcdc2e50fce776218fa1caaeb95d84baba83286c415973aafeafa7eaffef54bd904f640c4bf3e051d432abcb948a263dfc4927c3867b94dfae87ec6bcf992a8034c890f50bb3bd6404ee036581b7baf21cedc4c80c529bc1974fb32bbb2dac0183c03b28729502fdf65fe5c5b76b4e08eb87e693cb77ea72b538be0d38f5e73f8dab20b8c31164250c857225b62c4dd6427b7932337528d12a2a5459428675b3eda9e2a88b3f88a617e144441f9bb62422aca3264b6aeddd515fd7f91a415fcb8c93758471579d712b8b966e6ded97a40d4af44d77aae3e49b0a73076b5d7ac846a311694f3a2fa67a782ad6dc1c946b9b042bceaa3be319e4e021422f78b3c37b2bea924f9b0116e34855fb2908945916f8adf57a75889f952294ec5ed17c25ee8dd8325e275e35d468db30f3701cfda8da5dcc5c86d0e9217430802ea3e7b0a1635109c62372a6724f44d7582322ac1091ac343bd8ae9851cdc663dfea87e35316aa7ae443e01fb2ecbe4aa92737ac2f95d9b44a8fe669799d03fea2a4ce42044678f8c34bc33bcba5cd0e28b060b2ab8dce3364078cc7d7556b343318efabfbfb1754efd5b3fc2107c212c044fce0bdd3cb9d074a50fa092778feb7695912c64154b6f71b00ff7ef843a465f9b9f2338633df9e9c8936b73683ea71de4f6e4065a753f7730dbe71aefce9f05955ed20256844b0ff616727d4b7d63e9e61a867bf5ddd20ad0db8b308e8baf8637fc86fe5f1c6ae63c79bde2db6bc02b78c8f77e6094a77cda3f4ce7cdce55e1739c477fc7aab7d7ccd7f05e5fc12d439b2fd7b0adb98e41e7930d0ad2a8966c6837b5479f55045f572d87f77a30373ec5042e5c187f4c1d87d0ed91ae2270fb1111e3268d4b2ae4153fda26867f0db449bd6ed812a184ebe4185c38d28c6e8f7f8eba08999e14186b27075f6e8e3b75d79b6a64af0f3ff8ef2bc7a880c97881bbb164d257af3e6cd9be84aedd61b1f7d319b4a47b25a6e229c23e7c57fb8b4974b6c9e5eb3faf2e9062de0758b1b6d20bab568e55fb7bab2f96e6b1a3bf7ba5d1502b4b12cf06b7c19eabc8cf1f90c196161c192ff040000ffff8bf286145a140000")
- mewn.AddAsset(".", "../../runtime/assets/console.js", "1f8b08000000000000ffb4586d6be3381e7f3f30dfe18f8f5ddb746aa73b576e499ac06e18d8dc75b7850e771ca51c8aa5389aca9291e4b6b9a5dffd906c27b22dbbbd1763088995dffff94952b4ab78a6a9e010c5f0e7c70f1f3f00003c538ec573f28c285399e04a30024bf8f375d1029e90044cb6557efa178bac2a08d7492609d2e40b23e62d0a307d0ae2c5896c4f1026f2ff206844dc54fa1d44ad82471cc2f8cb13e1fa9a2a4d389151f8480e55197e0226f27f90437cb4c9b527a11896105807d8f560e101297d6024d909aeefe87f8d0f828b9fcb9709e833c57a6f71b3d90f13b83da1f9de981b7cbe9cc215e8e5b777424ba1a88df312821d7d217802cbc8ce729c4d1ab345d9632e45c5f15a3061221ac87c8ba29f2e2f3fb59f59f2733cc542484ce45751c212c28bf205946014c396a1ec311c27cb5a791638c11f5355327430502e38098eb1ae93702a2a1d84130fc7271d88236acbc449ab34ede24a8431e5796d73f07984db13919a6688fdc2686e4356508c19f1621b8ed74dd02ec6343cc5ebcd5035749473227ffbfafbb52100b85225e260992dc356c37364549c43ad60b8827f999a8175d317567045795969a078196682531eb61ceae0cf9b989be8db702ec0c6630e97b31fc2d5556ac9571dd98dc5e7264fe77059be2c20aba412725e0aca35918b1004cf18cd1e97a1a79725192348362a4671b85a9bf7abd4c858355fa75c39f51f4f29a1ad12acd2c7c80cc0dee41aa04e09862a2d4661bac91a27c469ea51703c2306d8add05a14bd6a1fa2c66a7d36fbd47e2ee25172f144e48e89e77f1b429549c1d828b650370dfacebc1b8af3429d1bbfeca90d7bcd608b64e0efdda82c09c7eb3d6538aa3339f6b5081776d2e2086d07c856e04307eb3289bb56244ce4d1781f8a5b758f43b79e4111b1b3179aa7197a94bbf32e27ba1976bf1e36386a6aa9956f1eba838824cf7b9aed61b9849ffe063ffe0824517bbad366d0b922cca3459e33d25681e5e7b27b1de57cf1d9706e2cfc2755746baa68c0bf36a328906d38967ff2845845122d6911b9b25a210d3c6184e77a0f2b980db8f6bd1dac2080b356503c046b79f0f1300f31ea204d36a6c5b4c2fb7a595f408674b6875ea07c3a1129858c485210a5504ebcdcbc16b5de31091ff4a85e07617975f63ac76cea87c4d555125d493e3924fba3eb7520c09732fdccedcfdc6e1abd21df52c430364ce1ad31dffcea55c5d0c24118eb00ec4456a9c853054357b4b9f3e5a59444292a78448e3f9dad74eb9612e9fd1dc94d012b58c2fd4392099e21ed5025aa6454476112c6fdba76a9ef670fc69266b08503535c6c5dfd51ec2d6b5ba0959484eb9bed37929961513375a4ef8484c820292c61b6000a575d0975ad2e809e9d795b8003866587f49e3ef87a80abd1bd83b756571c931de5047b0bb149f21d628a8c97908d77cfee71a9fe96e8b6a0bfdfddfc91282d29cfe9eed035203e9d2f1c05b5acc86891f9bb926baea7a5d9163d4cc9967ac25b3d3701618af8d086fb588f74fbd378ab1c6b91fe6a3b6e6fee88864a4155025280803507b99ed7f6423c6eb8169bdb75b7f119cfb87b4033bbdcf7e43fc395e4178c37b7ebf6cc38b064121d95526444a9cdedfaf7e110f03b5811fd951644543a720cf90417b399bf1b99af8ec98b411e0dd4885a87bbd2dd44f6ccacba82a522b861b2984cc30e1496604bc32efa98bf3b57822fe60b28b70228cf6173bb8686e3dc6e004627ee484fe8f54126f2e2a87570bfb95d3f8033bad433b58a76ec4bf4a1f4688e148130438c85f361153972cecca16a8d18ab0de8b22ed1810984932de566cffb072afa0dcd890e2a946fd7d08ddf6d8b7362e297899146be7d4b3d884ebcdedaa63509514b7509dfb727eab92a6a9c64d89d4110fbacdd4a821e17be783091bf231cd72287683c188c3c1166854f85ac1814ca947a98ec50c5f4b46e4b18321d194627aab83f61de3a09c3127ab7813d01e690d6b91318ec141d4d3adc263a4f9fa977f90c82e91b80706502728c2584ed697e2bd355b8f04aadcf91f54dcc60b9be573b76d5d7de41cff6a5ef6aa2bde49a4b8217e0b1166c47acd3f07b58edda9ca6f5c5adff38aa7e3d7c45b64145c15e172c88ef670f83cb89faac66fe8702c99cf25af5fdf122d3ac5d93ddf1fced256d1cd1a5756e3b4e53304dcd4cdd704da4d9b7b4613269dde5ab89d241bc78b5b376e6487f93bc194d4294aa66f0b9cbc0f84c65929613f7d6610d08e3059c04dba544c9cc94d85eeb52cdd334c3fc9b4a32262abc6348922413458abea19794d1ad4a77549a73d139a39aa417c95f93596729f9a6fea23492faa6249ce0a5d980068eccf1db8e5a1babdfc70faf71142ffe170000ffffba2edbba33180000")
- mewn.AddAsset(".", "../../runtime/assets/wails.css", "1f8b08000000000000ff7cb8c70ef6c07225b617a077b85e8d216ac49cae30b09973cedcf163ce39fae58dff9721ef868b4677559f53a7ba16ac6ef0dffef1affff28f7f78f358fe23dff77f54db3cfea3398e65ff2708d6ed7efc47dd1ecdf9fb8f7c1ec1ec570ed9de67209dd36591915081c2288c570899e104f62b91b2c46828afb0bf9c4636bdff389a6ceaf7ffe35fffe5dfc07ffd977ffd17f0dffe9bbc9aa763ff8f7a9eeba1fccbbe2f65de8ee504baf36f3ee6ff6b2f87323fda79fa8f2a1bdbe1fd5fff65ff270a41ff8e41d0bfe310f4ef2404fd37e17ddffff197743ddb6d2b87bfa4c73c0f3b7897bf3f9eff599753b965c7bcfde38f9cfffbafadcaf2f21fffcf1fc1ffdff24fac7ffee37ffc57b4fff19fffedd98f7728fff98f69dec66cf8ffcd77d9d6cdf1cf7fa010f4d7b86ff93fcf6df83f8becc8fe992dcbd0e6d99f2cc0ffda3d57d57fe64db6ede5f1bfcea3fa9fd47ffeb2bd24b07f2f205a726b8665fe7c927733acf1777a5437c338ccffe663257770cd3f93f5eff2fe33e6a91707a850086e90300c230b7f8cc31f1e2b89a5264c5c98b5833f5b873f43b1310ce3e0d31cdbcf230770c8310ca3be7f40fe1f90f6a29eb56210edeb9fc230cc46fd71fdc54b5c6dae6f93207093330cc3c17f13b0ff28216a8b6f6bb62b26a76618c6c0feb8843f789613fc59bb91f44e11886118a8ff63dcff841a43ffe0802945c4ef0f1f7ffc81327f400cf7373f76fac9c3f827933f7cbeb8338cf252e1263099d40c49e4308cb8ffd567fcd1c7272682dde45f9fc33011faf7d0fe92aa0c75b03f78fec52ec630ecef8f08669aff50af5334443ef25c0922308c88fd2906fbfed157d4bf9b47ac5f24627ff4c574fddf7c0aa3284c569c49040f0cc356c0df4afcc9cf962cfff58098bd72d4611849fe7b08d41fd409a6911e01b9ac0e7ff812f2afe83fa564e7aab6e50246d3481d1986edffd69749fe1e702ed231f437eadfd2321f8fb4dfdfd2f302c50ae75fa369638a89634883da48307309cb32586583a505f380d686dcb2641a476043967167a66198b9ea853ad501eaae7c6d573183b19ebe55a000f56ec9b355e9ab1a82b09d10bdb8ec95298cd4ab705284586967af86f0fb3807d4f2cb48ba708310c00eb524e842d34dd1bbc13b4a6b4bc062a953a7fbf993126fb05e48d91e6c9c44486c3b2e44129f10567aa58b1d893f30368113588beaacecf99fdce42e43d382cc557f10f3acfa7d65ac7ab2fa5bb4138b34dd753488f1608ccba4063985e88e8643e194d8a27db76897213397e7b0d0e46b6a070a661d5a3553753484eb27e998939e815a0612535d0fb58573eb45ec82dec3c6d900a16d21c1ebfba9aac2640d88c6b66d81687582b46d95544a51930f6b9978ee8b1a20951597657380b063f76f571d2350a02831a7834702606c5ae1c3b6a99633dd9a033f18a00ec8a20e8f47f1ad89ab8810dd6d7fd03411369586c9021c5ed1d7831ea8b499dbf96d71b631439af7089538433840ebec2705756c073340b7f5cf79b01ed72fcc43cc312c36738417ae953d49403ad0c5fb4627c4ce74f96885b62348ed6c73d6308b5564a602a2665ed72bddf902d121517fd32f1c89a634d6c21dcdb21ee4c275c1d028e22d46cb0785a5eda1d1e52a91803d159e7624aeb651964e44ba56ac9af13ee61a5984d2bedad3c762df5878ec5c8c44b8f6dc4f984b4ad8aa03356601fa5e6c36cc38206897cc9c842aabd6f10e356c8e8200ab160f94dd53b8660401c5a34ef59fde5d529c9ce496da87eb45dd4d3bc3c11c740b1225ea1ccef20bcda1eed47049ae024c38353680fbf87eaaf539c99030d8cc56262b655771e7af08afd88071f218265c98b0212669b714c14da7a17504323f4aec6ef9d864a9181833eb9963650cd2e1e19951e05a44af9d6d01d6ce38f5aa3236bd562b3f3024371f6a72ab341e8ad3cd28f1ed7dde0f56767d8d755fac2ceb8430c2cff56624c737289d56df9176b9a3416abad1a8fe8e9014fec9d6447ad4090936d235d139c43602d859968335fff4774e1a6d272f3f0f8fbb685367295874f545528f5d68706b0ce0d969a4e27327a274f86cee1c4f7fba7781431a6d91dc5fda572d7a7592164891933cb7c5d273da2efb9859d402c807ef3a7c922b4bc02963d14f7b82ee88b2bdd0c8b05d64e7844f1441a8e2b6d65e305739368eec14cf0cad25b9f3373fd0ab31e3858e913fa6fadd72eaf0d1c2e8512d3905c23df50e712e60e46aea21e7c6f003634b3dd3516c1b3385d9ac14876a1b1bb355b6de2216fa7b9e58fbcf3192cc3262cf9823cbd8a92fd46448acd828407a1a3a41d428e3bda05da4963b8f714ff6b17033d15d14c8c96e4abed0c2b0918301deefd1a8d88edc0464c52d082f916c6618626e3cb3071849620c96a879023d8a57ed121e613d446da379ce4d12a884239b585d322e47b4a62fda93b03e088bf5cc8ec009603a98e26c9ea6ce59b9df81d1197c5bf973326f8f57fba3a0a1b90a612c44622f212f7c45b3ac4b3f722fa001d46b7a00c70f4ea6ac01980e20a5622f8b634190116c17c32d9f41d77544203e881f6b59c7c118dc453105c94dd8c95f994ba55cb20a68c3c27ce60b41b2be48dd00ea98c0998c884179d31d832983239167ca5f0b733ac0550f0154074cc820165517d28e1396f4c02f2b15beacd6e8d1e065b260b2a96eb220dd925c6ce43d90114563e5ca08b0625a8046e4cfa7124852533bcee070ab64bdbb9a1cc9c4361dc19d8c914383e48e12a5514bee9cd2918e0f931d4444c101b3eeed3eb4ac290e3e633097430278ef2b27bfdca669327369d8a2f7099587ddc70e1778b10f7af3297f01f3c4d09c08b69102a7632f6352474ba4f82df03c63234944923c621ff199e148931b1353820f28826a7d524a1f5bf1a507781a23c440fd8340dae5ef54ae19804c14767ca153f73b2d979e7a1ae1691d06cf5fae59e4891753569bd5fe55505f9668e65cbddcd51242913c7ac9d8dd10a86e6fb5dc7132a1e9159208faa54c2185df328ca134127664c45ea5acf18e8d3cce2fa7707346bec8319bb2307348fbe98bc98ef6b38a5e165c23eaff023c1c89edc742dd3edeb309ee3239e1600d5631691e3406cdd47932293d164e0f721d4d110f129feb34514c49a7c06f3bd59b3c712ccbbdcac82abade12a2004cf204fe34eb6793c9a564b6179d88ac24353a2c6ef6751f7ded572d87086f237d82f2e58903ef80d0baba649c20cdd7fd183d8d6d0f7cedfd18b4777ad7c2ef2ec91c1bfe749a32e25756bdd773460354085585f7796141881b94567fdb96ad6f319f021117f67d7e5a7a79259777f8d74bc03198a0698efb7e420242b47b19b555e8820c5598ad609d37930155c5dd97e021f157504c0c39be3dc9fce17d9baacddf7b421ed6680c78e25f971a8c607323e2eb7e65eba6fecb2d38b7d8c10a06ea8e474de2c16e4e3fcd082bfa31e8faef045bc157e3674b8fbb4f970d56f86132ec730368084caa04c6b2dea0e420a71e24d1b05d64ac35b67fac5328d4f700092a015594f2e5f47946fb58c5f388af629f38f9baa3272428a7241f6f1a69774aecb74afac71969d748c6f3f14cda6cb557e02fab765bd83ff0aa252f9c52b8d0a309d11335d6439f94e06e9d136e67e4f52b1d8e92c27325f796b12d22d52879918da371dca41035ba9985d70ff7a6945aa236a6370ef8e035c2de4baffc488295bbb74aeca51980be3d1cb0cf1a9757e3d481a731802de974159c46d3af8adab05882dff9b63c9ced3e3cf9361504917ce6feecc9f2ac9c0c299db3653403f2639a7e590755a1754d038de619b1d1b34aae278248d39b6695fab3dd19d6a0337e61387dd16e90d01b5fe8e58d29d64aed08bb590cd922f783662e717db1226c3f6395e3ee57ee5643a17d125768a116788de66b3a1e375451154c75f1549eeda56d5a15393361ffb06ab79c4daa35f833d669ee17ee7c4e11794ed224497f64e208e9b442063d4ab8b4311eda17073c5ceee3402459a6c770afc8240998ca0d7d9b6e8101db59e22013cc775af07d37034968d8c4903785ec05241abb16c034a1e6ee079313adbb33ce7bdf7821bf9b5647a1faca8e2ffac357b3187cdb2211eb91ca64e59380ffe2cf6e544f270ed9ae6af641455aced129d2229d09104d577529a18814ddacbb2c3317c731ac882938bd9a023697d98676bbcf77e4799e6fe2594acdd25c24cb4dc6d393dd48323e7c70d6526204f3c8087ead057e0ef96bb31dd41a9e7240cac7bc5ccae15dde0dea5cd734acfd53b1697df225f8e8db3206f38d6236d4e4c3b8cb12841d93880f92881d12492a9e68336e839979424af54feb0d5fb80d85b959fea9317bae6e8d4d78c459ebab3bc18b3c152602a3a24ec05a486523346e67363adb64f3f68936f6640646e1859bc923e6cefef4fb09c2d689943109db4b6e9d3825a3f746a2e33a734fb5ee94f5ad398f53f4862fdfc6e13ca0941be9fad4d69e422e26ea4ee0b25e2f5a4e30b07e2056773037f12899f3a2af134ded2008f0bea32d21c226375b0b610ed48ac6d4b3c7f06144a9214529a1012ab7dd8104484de00d823af85d00063624b0cbea83e5d5c4d77785c9e543ee95ce3f7732cbba43ed64030074b2c152e1152ac34a66cb48e5a32a062616cd9a31752289438214356ee92356c61d4c3381d024aee81ab1a07adeb048618f974e28aa5110867e08f30174fc5cb8b0518a775eb31360e3cbef43d790fd177d07c942f9943e456ca2b9edbff425c314052a3c335b9c03e9fcdd1aed4ca85d72daadf0b49944cfc431bdfb877b4f72c53f7c7fb2195ee9f2444816c088e440c8f444c9a123719c069e510b68eb2587e0d4f6078f16d284f8f137271eab640647ea5b1ecd5978e28747f5f27ee91bf9e6f061dc5875c63f9a5ea09f89e68fcc6f1a65f9cd0ce497a42d271a853319a10b8163771eeae061f5460054d648993729d76e201ab0c0188ca911dafaf72dc421d81fc3640c9b3392c2a40e3b3252ce640ebb32d2cefc18f6633481296ff663e49c29191667e4f9cf9a62648ca919ae67b480c91db662c480291c56605de1effd320e25d21f0e56302193bf2df631ebda2ae660c747e799ce867526014ee036e54f11779ac54435b74505568638d665d06c7bc67ace5c65bc9346841acae9b046e8ccadd514c8face2fa788d4802eadcf1694882e3b00f2be37f482dd21040c70e5f8190c4df81b8121c6a11872343e236d2c3000623abb5ceec01f2b6305f4efed6d2980c83a5ca105245d90592500bc2beadb9383f77dda7408aeec1bd6ca7e7970f2e43399e7bedbc0ac8758a4dc86e625cba99c36917ae0964338b2e9bb1eb9d0efe58d47c65fdf6502e438587503604e0e2954083c9cd7974d4046b57dc1d6f1ef24560b31f48ffcc3905d2cf6cd9e13c558bf449011c38c4ae72ef99a1a4553435563de79574692f5123856f26566c6f1e253c1d56580a0f69eed51bdeeea9a2d909e458e6f8d417cd2066df5307f1155dc5793ca86885ecfa05b57a734c79c08914226edc87081cbb9438c37cd665fde2de1a24e7e1017d456fc74285070ba7f2282430d6408f39d1871f20220f4f7bed84a86db64b5908afe88655d4d65f9aaa3fc36526670ace428934d28e9f78117e0cd326173ef694ab5c50a2661a21b386ff1da6a27257ec4abd216b887f37f3dc9390c0b8214c3a35df6c5905cb17e485f7cae15a78796cffe7ad9ef3c464760b5771776cf1942214856457419b7e7089aed355fad57ae9e11ab661dfd1bef88d5c59a711d9d9b573a892f1638fc49a06a0bfd26f41b0902304914040990fc50f53bb1d100cabc04c805875f0b27974fe6e9fc9c05dfe2cc78639513e2865dd44d80d76689484d2b4924d983b090920cd5beb11f5ff4f0942b827d83aabd8da20fa6304e5a706c6bb739ac04567c1d9a07a8f5ab8703fc7113e1e98bcc8e5fbdd99cba63dbc0843f336c388a0a853d8802bdf1d7d33b9e890ec3b9ffc46c55e97186db9cdbc2380db820f127605f70d8d315fe0c1e5b417ef9950d4ee6a31ecefb0bf6a976178b5778a2bf05ed23c4ca4b25b41291e9561ace900907220a03ce274cfaea3d13b973e59ab0d5bd8b35a16d3c5d78864970f6c05195799855d61772d93a5c455708adf0b0d8667fc7aa28812b8097e3f3742040750313e921d523dea48c5fadb7d76c5bd4426641293eaf915e4733058dd7e86db1f1ed97d6fb72708e3017d61ca8ba66a2a349b73018d6d8081ed64dbc90914e145ee25bf6d9a912ee9b4c51f8e296379cbbeab69e5bb5716290f6ad41e3ba755aa2873fac6dbb94c943525bd415ff666ed60604ce6ba6898b66a6062f922335f09d586b3372ac9fea34fb981c7dea3e1141a71fc4e53ccfd369a7ca5c47ab020002a21f0a1f0fd9ebba012300c043aafe78d7956ca8b4400c03c2cbad82f7c12ddf5af7677fc2e1703a824a13c77b2e5623023784532f584edc04d6a47ccd2425e60bad81f5348e0f40f832b958ec055ba1545da66e3ff969f81687b5771c64da22157dda0428a0d26febe6d10d4f6d0e6e750c754cf54a680c727895e8555b811aa6edbfd686882d9d035a470e1d989202edaa1f88d3725cb00039d9144f66bd4fa0743a48d6404cb2f7db7ead20370b73481784bad6f1b45fe66d8609527c2fcbbc0d3bcdde645b2b6b8083e4a5c0450234e884a73953843982f78a9b0389d8efd8754e330897f88ab0399f1c3cf663c42ca2ad25855ea29f0207ab147b72ba205e98c3ce160bccc05f8f72e40677308f3449374e619ad613c48cd5e35a5dad896b7c265d196b3b066613629ee74bd302f5a1bf74dc31d820919910628e790fa30ffe58b666ef2644953912374f6f0170543d487ba18dfbf55f5b5c95be0355827264df8718f629095a115ed269707200c810c628d99d34490793dbced7773cc8476de64a8dc7089e40e4c7ed11800a5ca3eb4d1a137a58f0435ddb41c2a785fe0c70063ae9a62843abda6f993af96969d08f7f1445a717a060ad7b80587c2c7bec251ee05131f78bdbf1b2b7288082f912898d514251a09329ea1f91aaa3fa0a85ad8522a01de2ec1ebd6e3ac1a40d7f9d2d664359dcea20d13b3e87a45dc79e48864813239446daf662910ed3e7893ab74acba91ef4a79dfb89fb6a5d658f834b224aa1fba7cbd3f92e3876f2c9e9a26bb40ee96463f0eb49e96ab236c0e5a58c7e5dbfd9779fbea71621a608ec577513d87f508e7cc494db931ff87e6948324a17911d517d41baf9a5de1848ed0e0a489fbe2ecd2177faf60087dc1e61be57f6f7a43e14d93abe411e14ee589a17f9b9b7a700cb93a88da0b11d300253ba5c1460c9c8d82e85d49d1547e410be7932504f92bb626393bc88195b3061c57d65cc695e7d408bc4584e322a47e40841137a7bd88b1deb8967e01c6e74bbef492275726e55ba4ef1ba72af3b49bf17c99c40d8936eb1aa015918da5ba1c5f24788fd3d5ebc690ed3050abe8f469592ceb800496c54e912d26b1818893ac78da9ac1ea45ace5b5e1f6e36da14b1936a3e6baef7742a828db8180476bac761827171a03f5cf84ea4978f6bdaba9ad0d10f68880ab87e97f19adb0f25a8f3fb49e1f56973b7c771ac1fa722f3cb222d090efc1277fa321d80b1a01a51fda0ba21a3f0a50765109489f522afa7280f7db0795065fb89d26d0445ba5316057429ed28291bf0b896a3352d04667ee3a5ab722b2c80f6d3948cb9073b455359fd35eee2b127db80503b6496901b4c2948a9a620d12321138ef168962764996371d436f425190a6e71852c72f9b0eda1bbfdd6b9974b84c295b7c3d009f5b08b72bb4f977c7161c03195dd9fa5ebdbe69f524a7d60c27f15f05aef747cce0e5335b55608d05e57665b108f5e081120a772832e005e35d87d794cfcd0e276022a75d7a6da49a482f52b60688eea2f0ffc71c3e6383302265f2bf2450daaa35cacd0d5f805527fdbcbe2b8815fdd62909ec5bff6844076b1dd15fab65d21233183a2dfc94f5c07b317dd62b9fbcea9cb50aac005aa32f33c7908c97609fe1891fd990fb371ea3160065de381cda1030d9a5c38a139c73be6f14f2884266c43b0e12f63fbb5f3c1ca84b9abd92604b8c0730bc8348e9cced0ed39bda2778003a90b4ba55082101e62998b7cda2bba52cf615db1cc37800e2befa68a128a83ace81f0940f4db2fb370581572fed7c2fb7134319a3b537eb8af62ef4112cc231c2d12b7abf5acf9bdce893c8779811b48f5c836beae2581bd8ee974788a7423895e8d3972af74fac9cd82e51f43276fa0fa58ba3100ea833ffd0a1a4cecc639f6097dfa327532394d45c614e7dd1f099199fe7a6af924fb783f96e1246d3d439f729769af98011767e65890968345e34b774b3aca44dbd3a30ecf200da038601707101d9845527131de964b45e8ec6ea01004062342ba82293149149a9176f92f9f26900f3af7e42bb4ae10ff2d4e062939dbc590677d2b8409dd4f0e0ec50cb91f249ab2ea0a341901cbd661e391c6c0712257a6c219b6e8f81c8a203b24d52d611c755fa6a630dc95cefc3dbabe4c2aa75577f98d1c1f4ef474df898d0b081566197ba28ad02ce82ac0f169629c53683aa7e6fa9c74d7b1f42028a3ad5c58c30c15a97ce64ef5d05807aeee05e671fcd435a03f5210165eefe9229491d69bdd11d80d00624f83d42ea1109a80fb19bafb89ba5b71e06033b78cdf1687656700bd82075f4222d4e3590c47006edf29346956ae15008eb6c29dd43434909663c7757de89a4d63ede23cb3d04e212b328623cc73ed52af6832deb00a891ef3385bc44ddcd98b8d4e653fa5a54a3d895c0ecc422ca805e7889226eaeedd3e9f460d6e2d474f8ebd6151a225060edf866f807402fc13bc1c9a34924b21ac8dfde6bc23775e47d8a96bbc665291f16b4ed5826df474c3ae020df5b6fa6ca843ad55839354cf192513eed48dc00933b87004749f4b77c77eea8fefcfad0ecf77b83036fe46e8dc2ffb1f78c2c122f196aa871fea83002e4f13e4602c2511a043de22a86ca5cee9ae0808a578b519c780ceb232a1f830de7a16f6670c9122392fd1a4fe3a43909bbb1d83043db1c89d7343a6ca0894cd0f42a09faaffecef23176167dd1b100937839b1cdef3402d41ac73ac656a30cac165a174aac6a2f16bad35b81a7e2433ab5cd424ecc3572f7ac2ba7fe38fe7276e70d9bf0f78139bd4cecc888ee28240685bdb7594b59da2aec8cbf223026d52ba6b7aeacf589fe88d82ac05560820ab6844f313b0b4aaa97e19a0943323c25d38c96d7e839c928d5f802fca5b042588e58ab2e2f0a39359b911f6973a42c6bdc31a0945bb9313af0452cf93044f0a13b746045faca99e7978d54fe8d6e86ba5573c5e6222ad8f2d717882d5645ccdbb2345706b5d7ee23abdd0d80d613a747570b8bcb00fa6b259d69fc85970698ca3901b7d8d6b70316ba5cf6489414ed839b16935923e86b47e8374b5b7bee6e9c1b3a72b3529b849df934aca54a181f06bcff0e664a4274900c43713ed3285eecebcfdbe2604b47f3fb14c1aff1710ce0d4788aa14fe813a2aa8a13b275e451675c492b76b1ca4d161b0de5a24c13b7b8d6f28112717ddd5d86662f22dbfcd63f93bc7773ba25f51e7f154f117779c642e82820885e3463e943a5edd07820c3e81b739773e42e1e1510f9d4fbd416c16392692247c1db137a362ad5bead9d703f5e16779e23b733e74b3c17214402154ee88874178768f0e1fc5f3bc52e9ddb7302143bb7185597d609fc3581c7444e13770530989ab0545e9c2a7a79bddec31e6b57c0b90a635771a8b23033f51d04afd43a4e68950f44ad0d067fa3c0ac1f4de5105e97ea2475f912df73d728eb2fd7b3837eefd4beb2d212503f0c2cfe5842b9cce802aa484ab1b81900210101510b4b4d24b0379900bd8e26733b6f67bdd3a98b85546a824711899afd344e01b591bab7bac0e552e3982285b0c0ccf19a72ef5e3a19ab6520e4b30614c8fb67bc31b0929377cb49abb245e02c8e00dfbe2dd61789c85f944b7195e82597bd99e273baceab95284824c7ad18fd21931999b1a78ed4aedd6c24c7779f8f215813258d1bcf0db2d0fdfc7d9c7f420e4248317be75480bd77b0982042a252f16f84502a59066bcb06330afc7f5c5ec4bc48084de74f833baed1b73749b5058b548f1a46118b52fb287c6887c7305d79f08599795a269470e536b8b9aa01ca7eac63050118b3575c9f28aec24887e4d7d533f3c477380e9ee07db35b06129a6ba81b8fd5eb7359b1f9b4253de7fa1101699726902878eadeb3ea4c3cf3e2262d6daffead67f18f333c452508d947fddfece927cd20e4b8e154c9f08508a9ad820545b148dc23afdc4775bec904419044eadd8acd454b441f98ad2983e01c8291bdda4e0ddd7786cf0c4b2b52ad79b12a51396fd1ed26f8ea64b8f4368df3602ef9589a60100a9ca8c82f70349f82b9917fd9c170a5ba96c86d13b37387f353b63c679c011c56e352b69d6e8277b22316faac5f8a62fa9da1e61d3f493f433f99a1c8d21fae22854a6bfd0fc3d4c659bb18a908362a56c3d8b719bcbbc298ac6500e5e91fe324ec27269aca55564bfabbe7fb72a996eb2f5cd3b78313bccae118ce7c3f102b35a439b2660acbbdd73805d478424e60ef558cc1ecdd809efe3edba8427d3f6113afe3a9263912e047512f044fe2d1f1ca9a7038d7b86becd7e053960576da9213f83dbd420a06d3e98916890700e2a201e7c30e73c024a479d2ea24a4b2d2fb91b637bda4d5a25efb1187fb678eee0497c826ff14f0eb61d146bcd87169fc7eede6a7a11df47591c838d4f083125421a65c2bdbebc7c860756d878d945cce4ec6fbb38b64a8d6c6839bd31a7b87aaf9d1bd5a87e9da9a9630a824544a3535642233886b14d7e4eb36e3efa2cd26669ef4d0511b38ba7b1861416df6c5b44ab2f737eae96701214018e76d1c14f6136458f54ef941041fa2269f49324146e93892e8922c48139ee3e7ab72edb97cf331e5172811f92bae866cad213584fa22c411833c381abc6ac814c19eab753d44e892c5d8eda9334a88dd5857aca2e39af6d6b719e42ef2899b1562eddd1d6d624bfd4f5cd496e6bef44ce0c4fe2ef0a477a82a693d6f15e5d4e4b3b7bb9d456e850c822c84ce754e350af7a86df41dd4b88e8f1202e0e7990667a0d2599ebad05d4ccc658150735e4cee28419d225ea26adfa6653c50661f8f7a5ae09dcbcc521fa46c86f8847574cbef1790e3057febabb447e2f593060ea4abd4452a8e1da6fa282b95b29bb917b4b24da7ed313c8179f801ba216fee727c1011fe9004a7055e3bbc5e38266fc89b83dbdfa1be1eeaa0a8172e39f831803cfd97cc86e86957a0ab50fd9b444d3480ef907188c132ef6d4e9a324d2774706c6934e7fb8c6c5d5047f125a3461290d9067fbe2f57d7aa53051bc7b136ff9c55efcdc0adfa85eadfa0542f907b4e392178f7543a435a4d5b39574484025436e3541dd44a9be1aade55ab63164467cd28ee12fd7e05ee1ad5594f9453313283ff60413d5ceed8dc177a2facefc2ab9860030dba686629da04e3ba3fde6f7d957dc187e261c7bea6fddd181c9b167f261c97764d5b353c7443a5f741e20ac17dd77f11cd19c1eb3b4ba375c03569c210d71d1c932670a31dbddfa4d857f1d904db3e7481e675646bf07acdbd6cf35440f54d7a2818455ec8e5793601b1b026ad72ccf65d3c3871f958600e56583675a74407a592373f6e2cf59f1f400f7258c0f3f1870aab8740bb5bd18df400c2b1b393c103c4fbdbb32464dfd71b1880967c5c848cacf68cf9c93d261d66d946edb5c2ee6643f4fd00361ff42cc71541bda6f0cf8198956b3ccccc5d25747ac74bf176fb18253cdb5ba3868c289da1abc1b61f59367a022ebd0d541c437759c057f682fa44842d55a31e91927c977bc3068d360ed9b0fbea09f5f17d86a2944ace185d85b54c6946f9525d607bfe400fc355d65a49bee2fcece3bb72afb22c34163328cdc28f7dddd5b9ff0639b575c48a21b42b729791bdf705b15576ed45ba1303acab5ad9d59d3bafa6bb13eead5b68c0fcb7eeb64b6c35486bef484741c74abd63b7fd0f8d2871123e3a02259468385ee0d64e02350e91fbd9be72a1608efac0b497a8a4a525ab53f4a8cd3528a2d4402e5adeb20f30697f4784dfa223c1864a725d2fe5c7083364bdf7d367988f82f000df9ea0eac5785491bad4e9e09932cc45d99a8aba5d2f2c6bf14501b9d812ee7a39d7c34e5aeae4671f97e203615020be86c97103a8dfcec9379309cf35f8fa1f1d4628ea730b29dcde704e60add5084ae0736d3d98d462c64f8a1fbaa64dcb9db5f973f01e3fe71f2d91165c8308df824a21462e10eb3e5f2ad2c4d9bf04e6bb22c1ac65c17293b8676148d29cfde9702d83d7595ae6249a0cae0575a6ccf148194694f7d9c9e136d7c617ac9945a6cf6f980313874e6471f3673fad10f267fd4da2163f59b846f3f37a623dabe1309abc547a83817543017cbb60b1b218841e75fcd91d2a6163822ea03fd204e19c41569ae02b960023a504816ff99d05bcfa2a137da1de84bff2d40e62c823751dc65c7b9010a24c241ae4695b102d3d5411745624e31405d291bf815ad52fe596e82b33c3681b0601bf9945da9adb487e70a62fc926020a1b705a97dcd1b2d7ac727b590a4910b748c9a1249da5f2393da0abb5e0d115a0f9e818d03e24015a31792a17ab150206eceab24c936d8ed5f7b5541b1c05ac276b9eb54b9ea0403f38bd9d8c0cbc0605de5ad5ff16435fd4ee954364119b5dd86e65ad7fb72809335640612062cbd8f20c1e663e5d61255bbf6e4b1b0eb549a10ef16db3ae6702d6deaa16be4ea9a28a36261fdd868a86a1a2e84c36aa13f3571a6a84e1701891ecd1c5acee50516d15a714f84e99edb881d4f40f186fa56f1dff6aab5aa6f8c4fc9b20690d5b3c65f46f78b4edbde0165206bf8031a2f6abd45d557e0c02678b48043790c9f648802437905da341182a5da73c496c372ac3be7d4cacb4dd9989de9bc0b8e9bea4c9cc00e4c248c83f34e4be25417f312b99f59bda81fdaa64075423f8a946f6b87c2fa233473bafdf2d79645843f7532880fb9a27006c00ce35fa6414881a3d391ffcbbad0a3d317390613af35b92bb4b7f92ccf3195bcee4dc5183ef215a833c91c31575fbf3868c73f3c203f7e24fee144d56d20e0c676dc060d4b16eb84ded442c6875ea23d28f59dfb0bd156125549288c548d90e9cac8f7051bd04dfdc810fd8dcb89befe54a8fef25b2f6ae497d72f16617d504883b317cb520e0cbb9aa8561890748669d06afd5069a3b80a674ce830e526a013ffbc288daf78bfbd127253fdede8aa02f98f1065b0de93bc5a4fc5ed86a10eec9bcfac448ac9fe12d1a4fe42b5338dc3eaf84b791d96d907d87c08247cf4afa325bf96f6e9dc35fd481dd1d6b14133ee9ca0d184fe4162a89801e6ee83c2731df79eb39b3f89930345d7e8f4f4f96a7bf52209d2f3af183b77f89960755e878ce20440d72090c4bf5ed37fc7af28d1aa45e869ab4874f6b163b0a28d66df62d554edb57b3c9ee85a35796045de812b88f73508d8b1cf0b5607ed894256597e1c509b35d8162b0f08796b84ca9b2515730bbfda92d924f3b6a40df14d1f3c779de26eede9474165cc53c9ab3af0828a04c840006ac49e748948874dcd1f91c2b47b04f98057fea64158e8b2c04dcd56178163f7ce0bdc510240381465dde43c61001246787e9db184a767c176078b677e42fd8c40a4e7568f06446f215cec38fe09860ef00b34b063f621883a9a999f7523beefa664da9205e2f5106529dbf6e4e94ba1b686f4f24b3b3396249a4ad020fecb2fdbfe4509bc4e5095fb383191d7d2a338064d4583a93d12cbee3883d5365827c9093fb18fab89b736f91ae967231f0347d50dce809c2fd9771eb7ada189e5f7f8e44d634e57230c19e131be2ee8afbee75f262949eac014344810d6f87731d4af32d7be668d6f3d2c393b231c8c3693f41ea7ea7ceeb6146ef7a9cdc7124e199ae9cebacb598387fffb5af5ede0a269b7b1b7306bc5b44d3aec4e5245d3937ec02e8cf5560ba690989e6760a79e8871c1d0ef4161801364a081e5fb2a937304c0643e74d8d5a620081c17c91ac0ba0f3945cb10057a78c2660a49b19f9f75f1cecff5c70b43bb8a8f54d3b1151abbc91aedd429d0495a513f1aa3f10d480a3a1062c6d393ddfb9e24ab45a9307b4df48f6cabfabbb862555bbe107f4ddd6bd4c0ec286450a101a7021bd87e85d434e8b763488fd056e7299ce70d72ef56a51bde7b00d4294dfda81c473ba80decf940f6f692c5e9944f1dcd4b79a262d1efd8318b9c7957be46a91c44cd291ef481a605b89b3b036a37c8a497ccb8e8d8be6a21e4e63466e6d398e1707a338447e3cd508771b3bd9c408eba34fea5998f49e3f226417a6b15eaa2234b8428794a209592211b149d475daa54292f3ce521384683b41e253ca2d2c486a2d346c944a848854c68c4a9505558fe9ccebbbd7e2c2489c946a1289442c7646dde8105ac7c6353367893a44db336f1ecd25405d115846184ec7dd0bc5c171c5da8e4a1e001fcc9796cce10a74d92b731f88983d864efe41ca1672c447bbacafcebb837df507d673649481fb1fe523fc41916ff8d3114926c956d5878f1b13f2fe07d0677c5cf3ee91332b18b5dfce559627bfd3de361b6acabebc607cb9d5dbac28c4a45627d9f79a931ef52063f6c93b26eb7ea88cadf043cabe33cc86ad960adea9cbdb6e1d0598d5fbf889289b5aedbe57780a0503e648fa040e11b0a45f9e64202efbacf8ca02cab97f2c1f664b2a55962555924b070923f7c575a27d9868cec08c05d9268027e44f53a44aabe74eb537a9ddfb4a6dc852150a293cca22353950b49d83b60b1e133f2f8ded0c380750c5fdd2d769d1036a8c67777f1c193ffa8e53890fed300923d4d83db91980ff61952e7a68a91eb8cd28a9c0f3d4ff439c72e66896c1b20c62846459415bb337603b8a11289b3cae87aa3e968a4eb398872e2728a4828863e8cb0d31126610b3ed503445c61239ee48aa2892634b49f949914ebcec092af771ab71a4b6160669f552451b47e447e1c53b9ce161db6c4d0f3e14e4bee6b8e3811b1f19ee39cbef25b5b95abba494419cfe8b6b07d65a5f557a5488ce8b4de213578270d17f83d4a9bd371d55d0f97f7158207575cf772505b4a037c18ce3ff336acf86ec72941d7d7c4d1d5d721de61148cade87446f27cc864e4631af2eafa8835563df0468ce54e2e90bee110fe0eb8a2a8c32f8bdbaf98b90ae8327e2498d84fd9cc9fd8121762b5faec3181f79cf4b0bf7bf37b509338a4ad7a88dd77286997497180732a82661f7c287c34f787ecf79a7fed79d031705bcc1e6f3f1389049b0ae6741b6bb12f79ca3e2f0e4a5ccb36ba3c4ba7fdf992771406a58b5c67c9c4a7f1d236bdb504c1ce9e6df1e72c8a44bf08a4b08052777098a20a74cd52f6c3e80a228bef868ae064ebe438433db28fcab256fb076cd7a1d2cd31ad3d1dfa0f6ec3e87e6f66f0dbc524453986f601459027d9b395c9af3f816df8ca8d58d85ad47981129788f47c927d9114468393bbd3e4726ff7865063209b730038cd1addedd9efa39ca79644a96d607ea11463ba7e460baaf0b28ed3046a701816d74876a9356409650204bd93f751507be5d1349d5f8464bc15fd80f4f311feefa8a156f746f3b9e55c7d47f30a9a8ea3f5449a8a38f91c8499515fd23e8b681a9c77d35af36dc7e66129a1452d2bdf00034462b758ce71c00c75eb1b7b477b3046a8b2745dfc80d29a2ccfb4e3afa64103b9646721ab9cba44fe049b20baa1a5523590761f54879b25c54010e4b5c5aafaeee67b07936f9bb07676f307e5fbc884e7e75fcab69bf2f6d180f821446ee9a7235ee63a2a2860d0dbdfccaa00759eccb8e45e12fa44fea6a8eb3ddf5e343e9894e537a2de80f95a6743fcd049c73cefd2d8fd2392026cc97159fd08cb76a27037aa1a491ba7fdb7a006325c10fc965a31c2b003dac8ad9adf0fc4c1b89026500987eb91e22237b6cc302136d236b6ab92b782525a9238351e54258dfcb509f0561090fac181bc1032862beec68392629b678e9a18a725b2058d1abfb49ad147b94f98f97109943269a35d6e8d3275e05147fd23da508786c871368a1f7e30a5806c028f25c7d8c8114b94113fe0c48fcb865d917f1a6042e0ac92b74a5f19d3b9a4b9ca7ce04706a304bc02bc4c003022badc960bda6d788f8b9575a913efb30565bd787011e8596ab216fb11ce1df434e9689db6e4ddda13e79fdd685b7f96b8bfc8530848a951177e2bf6cd93e085b534fd30c50b4aa57ba5e31d08631cde106d6557336c1844172ef3c4982e41baf51af0650e9665850a45519d815c9cd2ad6bfe828256dee126d03d20add0402e09267d312a459ef9b1e9f1ce273f51d17a2b9931a7edd72accacc68a467fd5b45ef5d7c5b4fc6019da85277211510e2e71c63130a96f3f65909af64af179757b735f0e426c97ba0d19c2b295abb6a30938b75b2b6bb65e60b48447ac7dd417890c0df0818616109c83cf42928956ea868d5b732029407ecc0d2bf75362969b7ea353da8ac8178c1cf1c87c425a3636865270d4695f6580583225fc56407cc8a85c04af94b076a03e18579b18535259a94787266a17cb24917d5343ea6b44227ee04a0701caefded292c5295a02abad476fe54a2fc88cea5daef32ad6daf877d6b955c8be6559021ad45a62590da25b0d3872f2bf4d023496c22bf064c6991048672d2fae4850354f3b55e2622cc94682921546e9ba74639a8bb6a91ee154ae04de48657b870afbfdec9b2df1a9a3dfb6322dd9f51d13df253da42f626a234564848de6a3241b558cd5b03e5aaa1a037414a16162900ea59e253643e627c2a4688effc1c951c7c8afde568b404b9f19ebe3e4208fe897da90adc47a3039409ab0538fc1f6cab03e98692bcc3ad7a3b5e80324e546872c1356dbcc7ebd4462ba19e918a087b69e01431cdeb6d29bb644ff10d5863fa91abb7cafe43b36eaf3ab2f926017cfc85e700dc593ba18109df1152add5ac21641e942b79243fd04403088da2fe0b48050b842728f19ae98741bd7aee24edcad6ec0f92a306984242253a6aa305713b29239e76faa0a901bca7be068cd9df35831b51ab83354ef17433097a45fecf4a13fa44609cf64447503d93b9c1c795988aa27341b16c1ee1f5e508ea84e76acda25bd5d70441d23ba659889a03a3948166d21317b9ed5cf3a0bcfc4f1d2bd79bab2a60be173203fdeacaa703495e9d9e9b3f25e32f3f4958f75fb4164823bdcb504968f430628a35c94514f4d14b8751630f674158830d9c40cb5115e2fcf2d9189b1ffb5310fcca344a4004d5b7dfca11832a3bc0e28056283bfbb1190e3e064cf45ce0ae649efdb8fba8e5ea5da99edb83f12ff2ab97a7ad259aac6c13c5f14f155a7c225f22e3ea0a4f538fccc83de382040a1abd4df81e7fbf19ba923154e9d32ebff97a6bbd6d9965b02307c4014b895c883bb4387bb3b47bff37ed97fbb9255cf3dc5e48a465d012b4df2efd753c79402c12fdad118042cc286974bb22c3beea99d84f14fc3402bac7d06a02a83453b01fa748ae041656384382bad82a0e5f596b97ed8f42095620af51bbc3fdc373ceb3b0ad08849690b0f21eaa7632e75f7d35685aaa4dc78f23cd7f4cdefa84f58c56419cf4e4dc861af03983aac59642a323d00d52632c695e8f28f79e8e89bcadf2f24cbf9d58f5651b11a2d3d7356564b77e4abc5851e50c796a299d88d321a5bbcbc9482a5c6971e92e64e9dbf6cd8f1e26ffec49359f9df8556c3fb9445aa079ea13c18425b3704d21fa4744a0f60d5cc62df864e8572dd39b1960850187f595c1b44d4811db09d88752358e992d42d50036d87e4dc82da34ab6accdeead722b0167facd9c782c64b46ba756d13fb678e225dddefbfdf71c6a62b7e6e2b1290580b7812c9d3aa0711fa3c6909ea2fe13017b528f1efb60f30a377b1a96309d474690af20bfbdd967d43d61923b2f8cde8c7aedd110e5cac982337fe7e2831036e90068cd026b3bd48e13caa0cc235f62f97a1feaa7e2c9cecf42040a1fe7a9fb4e07837b751007ddd03a258227b3a5ed30280acd7f552fde4d12f4c6551aea39fada70b23eb6cfcee50d23b996c30558787742e2704bfd5e0866b903214417a9a7f81b5664d5e9a2a986585aae52c2515982604baaa044d4f8a634d6bcb4f172df7ecd2bb87fd24ec4fd319928200c7e7948469992c8f3fdff7959b28132cd14e97ca74e785229431aaaeae71c16d0b86b95e9c79102669014dd2d2e181401025fae4bcf7e479941a15bbb267368c6bd71485d3faa977f2a136b822cd32ce10c9d8848c460d7966d063eac40daf53293caed460c3bdd21438d55438afa0e83e272b5626e32f582f88faf5dd7bb728dffc307883a844466dbc82ec18d104eff309e4a26766cb0d6606b747a834146b8fe3e5bfe39a0e59db87622d60093f80ee4a45fa2eabcf3ba1959a3ce8015a09579a90db41199e66853bfdc57a8acc6d5fdafdbdb5e07ab2f16d17bc12f3cfab079bff5868c5faf211f1667209fb3e475e6ac79d431768a2a9a81e6be317c4654186e0c61fc66e18315c78918871114bf038ed2afbd3400e54df6006612f845257210975a713d3043417cce069cf1b5823eade81c079751336929f4d79194c6efc244e8e04e658ac786468177364106154b56715a7e7a5c1dbc2585d875791b4b2e9736197834b5e948105b65fdb295c1b159c78db9018888afeb5bad1695c5ab4194a1688176527780160a95d48b497f367893dd267380648e5421e51065d1e701297656d64600103e459127afb88d2d369976e94c3639f8f4706e487c4674f1afa63baf61628bd3b04caf870f060277a638fe7ec4a31fccdcdcdf385642bbe00f3a3d3085b0e087a3d08364a87549cd5f80ac61cdbfa7ee46f439bc70ced49bf8dcd026fa82b19578aa1af9f9627872f61de7444292f42bfa700c0ce244192dc8402d92cda35b1082ac9e22369c9bca25304b771cc0198224c78c7a9d262d15fc47d891a619bc98888f8f57bde29d9ba1ba37a4e4670de3a739ea8ed0a86da9efd9ee75a9a7e483a3bbee73fac6d2290a7a77ae22984eabe46d3b18b4468c32cd405a9e11741aba57b2785b1ba3b08748e0900587e1200b8ffd803ff4512da9e2f191436688916cacda422726262cee440349b1b1cb65f3611cd09dcbd43e76c057e90ec10b6900cd6bb4c0830ca4630346e6d261352906bdf0bc538c4237bb1045c8c0cd4ab56eca358fb562d4632574e80f1a1f1b9e124d28077ecff30675ff8d7eb27f791b6d49502adf0a51c7fe5777cf51dd5339de70ae7a034639d9fc5b5ed6ef4ed1a8fed3bdf72c7e4d339e65bd87cceb714b8caf14d24a82c3ce1e6a39872527fbfdeb62e3526040eb0a13216ebd0515c17b110a7ddcbb4706ad9a801082b2dd0eaf527daa22ffac5cd1b9c14ec79215846a85447051102cff4941f892312ded60f39853c3e00ee856c24f8f4bf170111b231ad9f4ac902851ac86e42b0c1d024c4eaba48cbe98e8fcbee7946cc3d7e6270254ca4fb1ecda6129767071ca6b066748dfc2a78b969cca9a464085f88a71fe5fe69c91ec51fa0f46a44aeb1b633bbec686c93a4e002bff0a90870bc249bab36933832c6fa5949cb45c15ca82f347dcd70a1a37783bb094f38c6c21ff9951e786c5db2615904239ed17e7d510963b50f737f596bf7568109d0118c9c5557a400fa19372d761ba690513f7af50afea26b114ea1a21461fc6dd9b69d3079b9762be99fdb1f0cf5d96a7dcf77dbc352106fa84f6c1cf031641fc6736d2d4bb37929178d10e5fab1646297a38e04f0d490b6cc817b9c1c5785e996fe509cd58dbee46008f2cafae38d1121fbee8bef6b18a643d93d7c9238e55968b6595e9eaf08d51eb8a1357ce87db3d0a3f06ed08a03b929587a1fd5b4d0aac3ee63cab2e381e8f4f4bc0f20ae732f96a7caa93ce49c842e300d8f617374228706e9aaeb8c0f41e233f4c0842648f9420b0400d3fc0c40872c1f1d0000bc1a5494004a70b25e3ca379f32858f3a4d9d349f4ae34e03c92e24b764ee4eb36a52bee28de31c3955f080219c552144ff5b8e8699077127e817bb84e6b71f0be50f0691c56dd67aa2eb07c1c5d9a2eada9311d79d402274eb875174239d4ea295352162dac54835067bd6eae99ac0c348664c40ec57ceff5047809e3e7c6603aa6cf66a0174d6d540024f5d47a301a7b35ec8b105281a6788cf59de6fe3bcf736690d37491980547e45cd5ceae9af037aeddad5eb404ffb4cb0854ef098e86c79d7700cc937ef929c1b4610406b6e155ba16589b278fca7627862dfc97d7624908cabddf4a3da9281ee3b11ff99bd9eaf8023bbd20ee6406be007824fd105bb04ce5dbcf3dae95bdcdbfeded62c25356792cb9367b2399c098aa00c6cd2d424078f4511574177d3e02df3499655e209b830b1cf0973f92cdec6b5b7cfa440f9e223fbf01011de384125d42f72ed66590c6a2e4dd4dabd2661d864af4fad41c84b687a6a8c3cc78caa591e85bafe7352f1e5fa1d21c3d0b43b2dc1e412c9d861edcf56bdae455f0bbe6003b8eb8639aeab485a673b0720a1fdc4df2800843dc86d694b42a8443cf68805542714195fab315698428b285c6b0ec9791d2912c88986f78a505d028de95f7c481ef92fda270eb31845bd6f29aa674c71e7d8f9d5c46185fbeaa6317ef249fda73c422fc1c022a63bb4556c9a4d521b1dd2a0ef7a8517bcf3582e1170a48b56d14531c308845d7ccc3472c5e939dd0445752a5aad3ae39b645e8403dc309cd19dc63c9fac3f7d87a938b96882e0a48608519c2dcb122b63254d2b9828a112b88ec12d0bec7359239510cbb1a7be98fd24aa42dabad90eeab87eae936d4a279b72a0160bf4fa3dc12d2b8715869ea658c4d1d4dafa10d8c0cdb89e5dae0bdd3e947ec43ee403d691d652583b2ab8211721057c0a64dbd83c669410dd1db618f53a27c5c951c87e8753527d2674f614293f93568ba7c7b057f646a6f1fe9a67b71a0d05dec229587968492495182c502ee469798bc33d3ab1963251c9554ae8088a51e73d67b8c12c48112a261455fa9c4802545531d1f212f8d03e9805099594af546dc55fc0ad553d10a713d599ec9386c291db383b20873af2d6c23dbaa4c66a003e4bf29a76e9e57d687dd78836e7c5b5323eeaa401c341f67dc63d23869796e22cb1c2272186cd07412e3cec7e603f51eb0640e0beefe717e0f70395ef024f2653a079a0d30e065003b2364b5479e999ee04fd10da380f0ca9270ed2ddcdd24b120e8df18ad46f1f690d3909ffc10d7a5983adb8bc3262f0ce9030eff60ae6733bd537831c798352b317d8c647596816170753d3c26edaa154f5d8b3256f9066509d2e573c500a8c32d7f63ad0910ae4d2c46a5996d09ad225bd504765dc530e55098c31824d0481105698481527e9c80522e31dd0c05b8e802c427b98b3d9ae2ae0384b6a91e1e899c06daf99ad67ce5a0e8bdec6746f471b109f2b01cccc77c22725bccb99f0c42ed0f34d6a96ccc5d138b58350d5ef9d531f8d83e33a57b15f8aafd88f9d14c6c2ec8d676a973293d8842ce9db4b7cc03dda62d7d3c12bc8822a62d5ce11f1fb5b096c600856d01a4bc8fd87c39dca073e4402a3fc1073423c83b2587730abbb044bd0c9c89fe2950920e018f52bd49556f96681b66918786a6bc719f26253527bef5d6b60400e83d51b14e26d560f70a26850e04a48f8e7d96940c0e160802ea5e68a1b049c433bd9e18d974eb66a38112fa0d1bb9caaaac0f61910d4b04395ee4588382b9545a5654c1b542a65ea3e2e02567db292f16f606403d8febb6aba606ef36b19a11ed14ce68d289f36919ae117c83aa49d3cb24287f318b1a137352dc9bf8b10d2fcdcd9ddd7298fac6dd70f81bbc4d287de6e39560b4b1ed558ae1c6368b13e5472b7c4fd044ff760254dee92d59e9440854acb45416b9013dce4e18227ced3b362fd89c192e81bc18c0eaa88a6b62eaa0f5f88f6c2dcaab6c339e72af92cafea7c3d92ff400a33aa22ec55ea4a4377aa6123b3ba2a68d29094e0ce397af3992122ae26fad5ea1548fa4152ca913ac5867cbe6fcdd9897b10151e4de15836e43b13c9a5ab55591400414e4bfc0c0f6fd9ba9218c92b49f7da15254da6c1fa7831af596ead80ba4f477ff5c4344f7377199a45f98fc958f567073fd7a036d4966f873acf16661795bc88c581233b57643679151b8df6300abf14e350d7b3233acfad6180692fefc1675e35c8822ab364f68dc212089a87c66c80ebef826b060384603ffcd79541b214aa3cd20308a06d7c679626b464bb333361fa6c7aa8bb1328b8587ac5172e58eec9b8126c8d35245a8c3715d54f9a8f951d9046239efddff9ec1dd957d5182adeba0f558e2c53111c6c816c6f0821d9622c843c56e9b8065b8caf3dcc46aab4a4405d19eff65c98bc76875aa5bb287e82618a3910e11409f2a010e1bf0f94b58597c6f8d81fcecd6d70e70b23a39107fa33b00ee41d487ad25aa69a6db13d6fed7fe4c17cce907a51abfdc9e631ec4cb3a6ebe7fc0397750922b848e5fe270137eabcc1273d6541ae3ef992e41d00cf918e654de21a2cc372fdd04019a9d6f683bf8594195e5a597517e444be1e80586911a4a1bc88f32b719cb477e35e41f58215e316d03e1950bbcf3347518c4e8c900cd154ebf04e1f54b84b3f04368bd5328fafd2a84d37300bbb547593304fd15bb2b8b3f028c7ef91545b0ab9720f789b93c91e82ffa06941f89947e8025047e9beb50b5387da304cfb77c9cdb286257b766cae1147513e82e4884a087cf0bc358877578782f149ff334c1d7b6507812fc9300fa52d9ab1a8d75ea86ccf3e34f52c1cd337125f16feff0347cb1f5f86863fa0cd7f4b84877b7716101dbe864efd2b0e16ea29c4b416039208c84db2622d3108c0e6be8fc85bcaa740780e3d2796c52ebddc6b57d136f510e557717be8b5c77eea8769415348ce9ed3a32b7ce4f3689d1965559fa8d31e9d25e4420cf689783d8bf227301b41f10b43314c1769ffad891f8416c4eb4602b728747558a928769916591c5f91e9a2064851965ca6ecec6a06e4570fe1e7b3460bbe9096ba4321413fd350f7bb0e3221c99abeb4901a4dfa33e1b11d68777f7a278b29598ca5be6858c2532e46b74c036606dcceed7f215e9fee030f5704ab4d3116a4c583b13c559b4b5a77f38074de31bb5bba19b47e7166b3b5b6e93fc02cae9bdbed197e92a3ba737672c4a627b1af264d64c76e48f7c25403704f485de2779d362d3b5e8f90d7b4aeaa779fa700c74949eaaad8ee19042cd23a891a2fd6b7c4249414c97005c17ecfcc6f8baa48cb3c180ac0b364595cc654d98c217eb16f180254db868a9174788e49face4c920eef6cfb2c27782dd00e915be31b89582be8fb12b8238d565c16456f084ec0eb811d1daef71dd21d2cf90ee0711420c33fe39b884f86f3a9819ffab8cbcb926a97303b2aa3c658620b55cc48c896ccc06024a25889f0a1400becbcdc0e0462bbdb0227a96d53836327b76008b6a8d0bb99eb82a9a46f7362177d7aecc0445f5dd3a31659e987f7677f4ce82225272a8e6fbca640d4027ec919aa752a5edb0375793c1af9c3acb8b699c7c66f620bb0c628d472d1b6a9286f7a5fc422e2d518dab2f103cd3c778630a89a10dfe64568bf7814e8657036dd3900eaf62e60f8c22b2e14e01bc98edb23a838da72ec97eed2c71a2d39a1f23567063d86492607e5604cb65448a11f70bdb1d4134899a7036c4e5bf38d56a13293d1a83871400091474c29ccec5cec83b579458e51c5fcd1356661530675d5120ad9e8ae8759d9da096354b05273d4450d10f411077de44942e4c568584dad2e2bf16b72c1607a6c8adef9c0c877992c8f37ec04b53c59c1ebb61801e6c0e2034cfab21cab98f7879f419101980480a8a6709be8e0ddc2bc60276bef2003b7bbf72b8100b19d3a005032217baa9f2c28d04e7b0742bb19053abd3c991316109e99d16e191b144969c86c0d3ff225b0a799ae9a736327bc33abe2f47ec2b9b26740373403da7c8afbc46dd512630f6efa30bebc3a56e2115e5cc5090c7c74c9ae60f5eb97540f0419e5cf5b620c95efb5dd081fa46647d123c69dee7bc614cde5c142e572eaeccbcab7856563b9a574df49a50ee6b553b4986eff49a74409fb188d470e9d7956703dc1034c3e6d157624775214214c092fbd2b7d4fa14d11b715906072f227ecd84b0fbbfc05cf1e7246d985f7a70862e921ae96ee52cd5c0f2c329db92f73c750de3b5b392b8f047e49ec98745ae34c87f6b1067976cc8699bcc7c626f2795681cc5d9db9bb7011fecdf40b9819bb964ec3a188112d31977be67872b542c14fc0bd4f5c430cb60eeeba9c4ccb384af7ed30c142acc0994846debeda7498bddf51214dfbd8e9eaa111bbf844fba6f05d11ab88544814ea38eeb66ec43be159d1fb074ee6cc74527f14d3c79cd5c030638a6d7a08fa4d2d90b7cde59956fcc085d2b560dc8b88f9ed68e24d93c556c155a8d0485799924db2743c769f47ce3273fe9176c62bd38238f32fb5de13be307397916247b54da513fc73aea8b0253cc19ce69f3003d33be288761be66c4a3f799fd469592acc7b22552df82ab2e3ebe8c770ba25d3dbff5eab2ec4212229907789a19adfe172af5c1cf1d44570a3843300900c9d6e597ab6450cf6660a0bd7b37e3afd98550692bc13c00be357b92902c521495b0af9d65b8874fe0ab49be18c738ac8d2dcacd44a44d14904165346bb0bebe9c6ac9b5467b80abc7a0ecb575f7cdbb881516967100f181fe20a764a5d8c46eb2939f528af5d4b5d1570c2105ae12c715547474b8351988076a14241956c2674946452ee49cb8446d55f4ef0cac4b38077e7006645e59742d5445cc89a1858cc3e95cbf9e2b2a8a19f6f09d528460c7237826d6279ffec566c79bec1d39b7495351ed8a98ee402f0f339128057aa947b58ae173077755f9856d9d473e888f20c0b5f3ef6d0ab787b87ca983eee9a74f56e56bc1aa5a8f4e458e715d2303cbe47dc547f5654c6f73bb31f5cbbbe06c5ac58b275f941252a4064fdaa041afbb50027542cb39c986f66d3a6ec72326515136d78fa1768bb63694776699d2fdfea1cb90376202815239c038d9741465e1120deddd6c7b7bdbdde2c48b7dbf093f522629d6860181edb4f44710b64a074966689bd7009c74fd307098724b34366b705a1542d886c58e7ded54e48c68e021498be41a076cc00e9dc5d112c29e1ad3dc0891290f7c41e10bae5684211d0de82d091675456d51e9436d0d0fb1e21e1407c75a3796e57cafbcb0f93da0ad0c60aa0cd50c23122a6f3239913345c02049cd015e0a5867cab56a81b4ecac3f9a965917eba71f7243fb8db3176e8f48e55eec186ecc5f8888f7142d283d3937847cbe97190dab5f262aa95ffba5f6de3bf75425c404bcba41d71d0f6e087c8eef042b4abf9111023c8a094046d4a0ca86c128021a2b6d0ed88da21099488f556124222aa3369fe4020b92e6c454f853579bd03c217ddc4b4eca8c14e1daeaac784f62613e668534d0378b8e8324537ab882ae307e9bdad7b41cf4e6b60e5e7b9efdbc007db818cb2b4ee78ce05eb08c7b4816e27325891491c573c609fb0672e65630dd3adb0259ebbba684d91969ba763041470394fcde644db6a4484124b03484d4f1eb20684a40c0e0a4af548ddad303a3a2713ccfb64cbc17f753b818979203d5fac526adc739bdb157462d237b854e854c1a2dd0787ba70ec14efefd033dc827b54055e5549a00d9b15700fb391886bff3b798197b8dbde74b0896d15be0b8b757f4ab4c26ae2d79c72a13687cc229ec2a159342825c9cb7a7a4559420b041a6599832aaf80e4125a29da165d42c265b6ae68897886a77551eba2a96972ba662ce90abc6f0dd9f17b4acf5af7d2075f5b08c1d9cf607c39b9a7a633df2d6919e472edd5ba4a5cb62c366a107c0cff7f700de9438cd2311780363f2c4b5dc34169bdcb547719430cc1fb592a52dd388d006e007a95b78f6f8381550c437adc584043feaddae8052a73fe3de1f89ea22e70be07df1f9017d18ce9505f0386d2bc02135013ac72157c8b20289f220d78b5953e3596e00baaa370b88029b298ad2babb4c8a9e9220acbaa9e1a7ded4becaf643aec7358d2a1b5e9fca9462185c9ffce6bcd893ccf84093edd51e8774ce0c13d5446d8652fcebcaeb2fc57af807a3407dbda8955a5ea773729b7adc946b0db09ce6a9010855d139ebd6934325fb28435175acf86704d4436155005a934522536546ba7945b3f50b49897cb00e41ddb84769e690006cba32ef4b31ff6b71f685b2f35a709b3a132dd1377b429e9a89a8cf28c27755bf135f537cef6822907cfc3d2dc7e11988dc61c18501d07c96c6c06efcb8f1c8772e1a64eb4245eda4c076805b44486f0d3714cbf9098d99d30c628cfd61e3960c0a87d61d0943f1e42d64a1d6223f9bf5978238ba956f6f13f399444feb3b6196b8ba27ac7b9c52a7d2de549a845ad0a6eb41a5dd5b46b4cca0641fd89d434f4504377ce1c542f91ad73e13350621107078a4a783269555ae799725d2c3404c0482e923b64db48d75e3cc909342e8732cd073b34488ce8aefd26c4683ad841a89060d8e0bd5aadb0fd1b2dea77a405436c4746923f68f68392f5d99d26f0594c9ba04791eaec264c71b901edd14df11fd2a9307ba65971791b4e128a436b4ea7b7cc5b4dfa19f4f6f0f85d27a805b4a40422400a62ed2a05e559addd290f6a4f8015902ce37d8252068c1f496a4e4e65b27ef2bda203cbd7d6e7c72daeeaf990d55996efc4cd85ff9a8df04bcff8566badeb9dde80240ceee98d82f328eb1a9e84643d89f5cc1c2a824069532bbdf68c3ce5d46f3fc7ef143689c3e2699c570c4e7fea277b46f28c61d87c26602c0baa824531d8a49f7f3cd4f548144413441ee5f06a029a34b055a21168144ef99450f18003724305b348cbe8c0041dae4f11d218102684d730b78b4aad05092a5a244528f26f000a603a84a13199453ada843b3525c00dc75c0d5080448d60c86c1814851ea0764e580226b558cc3451ddf0ab720c07b27c2a0eb480bdf09874f447f60b2cedf4ba51a88e8aceb08c094087525644645d05a37814f4fd38340085a3ad634e1487d04f698c33211fa3857b20f461fcdf1739f0ebeb68535f2d09ac93a4682cd097115241de210755f7a209433cf4f2cbd172d216e3aea2daecee7016991fcc8039c79447e9b13cc11851b946070414c6f05611df8b351b768aed6cccf68b4b37773959d9c6979f7efde6a540ee54df8253f971e03c516876623a27df1bb64ebda4de8a7cc1c1a808a9079388df85ec9213d0fb350bdbe82bc7ae93fa27d64724b84a182458247e81a967782b4c12df98cfc6de0cdb5d070353fd546665990b628360c1d21201cd98b1d94d65f41af817735db52b145eaf307cbd1701a0149b5a97c3fe30adc2e9ed728e626b0a96978efd614434afab032369a8947200e3ad73db718c12a504aa9e769d46965687116b7474d88fed6eb24d9a83931594fe430aa63acdff73b235b7561693fc1c3180d5f575fdd0d104f72246463d12c593ded406be85162f6f327a97aefee524a1f5600ddf0880c787fda89361bbd42400b46b3449838a168bb6634d059b61cc80a18e4dab701df985df19925acdbc26ccc3342de47f1cf43bb0cc22709af02017d3770e8ee41374b3280d06cc6c884392203ddf46a9b80edf2ccb45b2b06bbf71072dbdd9ad92ed109b3b28db7328b921a324ea12ffaa2c35cc8f06a1a0deec098cae3ff20933672a2352da93e06ca3a3d9e2ada12b77714c198ec89031d1e0050b1d1e54a61824ab5cb0a962fdb6029fd0027ddf74c2f8930a8f89d841294866ea2b87ec74595f6817eea571a707120e588a7294dbd7eeef11dfcc4d2545f87a57568b6d256f4a239a8879db7e1b37968288b5aa134f2201774c4934adcef308658019daaba504ea70b52264353f240726a10fd8bae637d7a447b6eaa3046126d57d16307986bc7d4923de4858790aea7ec8c5584b47a7368a593f10251390cf60b62645ade46a8fd76fc0ee020c0540630cee1408743e5c40be265f9d9ddb83af290c0cb983518cdf489a1ad9cb878f8e8f8100f7c6a3e627420224bcb910da24c974adcb794461be5cee61e649617ea9d51044ae8f9f8d8e6c436111817addee751dc785ffd548de4fdb8698df3f1c7a4a160d5bf413e861cf1869db004d0aa7521cb5370948d570956edcb610ef3415b34253000db7aad8a2887213d356db87918fc555f52fce1a0af3c69d4bc533d26773af8d1427f6039c32d7b2c952ca4e78864c67c25ab941c3a6cfd48cf12f8316b1b7e4e0083e93939f3194f56ddd8d0e50301189dc19f97318ce9a9a4cb5d66b7f383b58fee3810183e5ab7d5b7f77737d83e8b758196db208879256df2ba9b176260053ad781603eb90adb81afecd0eb65a3f78da19234f66a84f921c72b9341cd7cb816098cbe9c70cc6a271d9da726c21a014fffd0c0ef4048dd2c1690bf28eb8c5c032a90b0c8a752e8f193aae015811abfb3f33540a6acf6f45013e0ea01bfad2a9c6ce66b05e0e904b61f0f687b4ee292948058ae6894c24244cc9524701e38b8ff40dbc6336550f9383d685934749430c16febe0372ca9f4c4d48488a514ba5eb2e7390582d623bbb1ad97b4ebae9366487d0f82a292f23f4f0820eaedd3ce64cf22525344ffbaf5d2a3655fb6997999bcd1936e1f085cd4859555e97a16571a5d9c1237ba13ed836ec0a859674b2355d16c1f4fca5450fae89d303da4b519a84b3580d0c784b947bc6e4b7457c014c63592c91e81c4f524b0c3098b994c324be9309ab7ec2adf8b8671e86ca81f20ba79356ad1837a7bc47cae7596f166a19ff5f4eef262cdd112a8950001aa6df07cd39be20404111745f4cbe96de692fd42050b8733c5095ccb9cb61701b5b9519ee6829cfe81f632ff7d4d937a86176fecf93a810b5152fadae72cb57d598f098c0ffea92065bb362dbd1673a2f77318fe54271332a3b14540335a38b013ebd79cf56c03815f41d8b48a75640535a457d9a730c9ecf6d75a4afd583ea237885de8792de0666f83da085fd6f3f443bc1b0dcebc5b8d8b9816431b08693dd47dcc706c1cf7eb59ecfb73d61e32d666b4dedd1858235795d3247114538334dfc7d8f5f1917b7661e88058bb913e974816f3d1eb19b0f08b850cfa15a505831d99c2e3c62ab308da3fcc336a188ef83c6940bce3d01adb1e7663bb53dc37854bf9efec329f37ee0476fc264f48d5d91f30114c2095e08444c59f09093a45644ce532f71748e2fea0ce258c6cb20704391e6a28050194d3698a389fd1bf629b0be25bca0d18a22fd17a8bc50f5c7a9c824ccd2e6d0eceeb53badf1c6e200352c69af591c33333a6f5b5d2b0d9406c7c2274e2ce1f42095bc624513986c908228edca7a294511bad346e125489f9230cfc47adff0e420eec237395ecbd78133176c55cd3ab9081b37fb97667590040f188f4e9563eba0663dcb67b9fd06162e159a1ca4dafee1041e9c54f127107fd8bc2d254d18d784b638632cf4476d68e38bc9a37f7bb1fe6172df39060970975db0e072befb6c583eb05a91b7bd26d0191f09dbd425ce9c5011fb4848c8ab9b578f8de37f4d5ce915909c9c9070b396236e30a187ebe4a1674468ca1cb027bbb1d319a29986ac43fd946826104019c9aeab213b45218e10cc59c3d9554575463b1217d20de3f59c356765519d3c77d2c11f56f486713d923fa741a1ff9865b7956aa6cb9063ebecf114dc3d42130f76d26e7c0e845d116f7c3bf5d4377eddb908bce4746704e94dfe365471b5eb6ba6bc2a61936514946f3ef37870e8d0d7cac74c7d2c0d7e76385ed1e656669b6622590086165bfb55f0890942c405b0f34a6c3ae9204d5ccbdbb6170752206d61ce65fbf7d45b29aea623ec06733c003a39826082ae118b6c6a8914f0593167b3bb4a2c3927b38dc450ecb5baa9318a2c4293c663b6c4a75385f9b98a36370ca9dcd885abb58ac9b2d49fc76cfd7cbee1da9671cdbe14864c7b7e0129faaa60d91d5cb55be197dd824283358670d20f50f3403033b4abd514789dcee11954b71d540db647979a707c96c2858af50594a197840a907b45b925dceb4d69d4e41445ef5bbf6044502d2d1f46708724299638c164ddc41c7036515e48e2a70d9e403d3fa85585e011cd6859bd91411e8196a84f235004debc9e625465b03a08e104a3651bb3151d142838718b59975c12624f63ef658d0551e9fd39b2d135bf2822879ed5b1731fd98ecce4d4abf66438fe4700469f151e254cce8f1d508054393d9fca5ae96a33f1b14c30cad440a85787e0693a62ff6c4f4e36308cb7d25d24e92bc8162e8ef629d03bd58ee57dad0b858f16cad6f7ddc11ebb2270ce887912813db184ef942f7f11cf2aed190ea6e7c67eb3dc5bba3ebaf741f2213c2b6746df214ffc246a6000dbb913f347ac0ef7d264103e9f656380d6a9548817bb71c49b4a111fff31a3ad54754ec9b1290a57b212ae6977bdf0cf5c78056b99702f6467a6506a887018086161a172ba0d89dcc43947fa4bda461ec11eed70e0a9fd63b3f0db6ed1ddc84663e7f13fb2d3253bc3f3283634c938d52cfe8185e0c4ba9ac85af62bf9a1e460872fc2a6ce203722ead3f3b4a2d42df1b4ffdaefbb31355de25929696698f746ac5b3d23e86dd3bf2796bcaf3aebe9c49331a5b219a34c5be3e71ae5cabdc9938d944a2019a5af473f249c3049f23e0df97dc3dbfe80f200293a4a1b0aa7ed197c4e62e24f3dc5ae7c26c35087baa3ddcf0dba2eb4a44ce500ba83703a3a4c38a5eb29a03df0214fd8e092be0ba753e00c3c06e5a2a10b4cc23fc9448fa3a91148c7442188c4509aaa52e713d4242b0176cfa0923c780840f6bf1276837a99814ac5de1873aecf49c647d985426b2cb8d4b70da2a2933d57342c36d33a6882d22ec4d1606ec5711dc9db28bafeb54cced740a150bc303566f8b982f2ec780ec315af68066b8d3da5772cb20d4c8999ee631916e3330c69aff49ed18ccda34b1dd13003fd6ec7b448c69935f7abdf7a4d2abb9b5e585b7cddb6c4ced939832b11f7ab4dd42ef75ea266b98ef9d1d49fb75f372be3b952345778029c00ef0025f771166d12580140d8fd54c6303c071e4f7ecc99c3e638d7e1b8e003c0abca1d7f1e4d3e3fd158f242e2151e5a138341d7441554a8d0d8b1d4bdbaf17c9208fe8c052c262879b8e878771cff1527f4403e5cb0126709f65257e5920512feccf0cb598250b56207fc5c85c8192482c6cb76de185c09a7b1c2a3dcfb4e0df83886ea7879c644e64d043718386064ddd71e06f7342ee0099c05374616a4d23e4bcdddeee4762deea70e17bc98b67bb9751c88f44b9d8c463dde7f161f3c849930cd561329d2a2e46c254334ef59252f76bc718e0e3fc3c71af5f99ce4baf4ac923520192db668e91dd1749e523e03493fb2037668568d44dce3ea0fea3b7fd0edbda155f6e1482f1818564d7a4e891c9ba63c5d193c0a3ab1d626f8900d943f9b1cd83349d8cac2be2b31259ab10051fd38a103bcaf901bcf2c4fa4f4c4fc448aa55e89ecc8c0ae44980f25792487e3d6c918c46029a2e2523dfbe51d2eb6ccc82071e0cc8f16a909fe90e122947927138086e9d71a17474de6d5b832a1df99dc02251790056986f918779a309dba9270b4560e34ed06609bbb39df905f910e1fa3f134a7dd6c8ef902b7a2af3e25a677ffc91bbc919197b4c8e62281b91027f9f734065d3b2df110eeae74578159840e447002050678c656db9cc1efa583381009de10c396f7e1ebf2c44bfcaa3de98a33145d20b793dbecf35d9349392bd2908938475db151c1e55ded0bf2784271d3ce4c12cbf3462a20762e9dad2b2963c35ce9a5a678576f03a0aa9293ee21bdc18321d49c27abfef23b2e6d5d16d596c9d42c02fa16de073b11e97f907ca82efade181a883a9b3805b03428eec6aa15232d9eda484170e3461ef94ba67ceff625e342a7f12327d0f49d297475011bd29de0d0aad36e61066faadfb017e20a2909b7edae0a30d2317e0acab47d054abbaeb7e2dcf81d7d1f3c6ad72a37bb6a58c7de44ccde79404c187c0a48ca5da0a5c96af7c3345be632401170473c56752b006d735af457aaff7fa479067636dbcf6075f372f229e6763624ddba88e7f5ce8a9cb281b3b31d94dc2d55e0a91c2a78d9a9700cf9ee2a2394122f0d9479bad3b6588fc81f5b9bb9ad25c0f809d1105aa4db87a680ddec2193b9078ae9dd252ecd705df9b7cd2ab13bd6bd1a2c90f44cccc10c55e4153465bc5516e168d4c2529e0b97993312db767e148e96e068f45d0616207c3d4bdc844fb582028132f1ebf90cc63f4c70582f21c4f191f3bdf5e69bf9bbb2371c514534c11c7cb1dfb0a029f77215af0c8c7764ef5b9d13da4d44895c1e9f5d3dba539a3de0e4326682f50d75150f8b60f35814fd10b7bb7fb326ee5caa5ed187444e79859009a43e12ea00fa06b4a47e2f65e384ab10a54e561f5b28665affebe730ee89a39a511e304881c53b35ff27b189a39ff56a183e3277109b909a6196a0ebbe2c9d38b093d8b1b66fadd046a65b897dc01861db8104ef0ac980801f1970d81b5c0c01f4dd6defb643b998c556e899fbf1457c7a1c55991d27b2e99fdee2089735f33017cc94861de59fa2a84007f7e3a6179c962b92395c4e3d92467fccbbdc806d5d038fa1f716d3fe171c3487226a73e4959981b46eb1109c33e2e63c70ca3b4c4baeed37c4ce02533cf0edd4312bf707ea9a881350e5b3b1c89b880d895ef40a2a07f9e4c3b427d77285ed43b05f7a1c2a0058c8950423e62ba0614e35cf00f079f0c429275b6b7679be6c93f9b4d24e122a24f91808e25d0b903cfe5a3f7e5f282b0c670076dc1808b4d0d2b6c613aac437f586c00886f40abaca5e3cfdefb88a2c02688ca4f68d90d2b2d2bf48e2a00601c505c78fd8b4147a17c6b0500d57f23782326571075c852baceabb41fb20d93fab61527cc3e1798913a1517029b5582ba00e001770fb3fcff3daa3e16d93a1e59f917f6a0a8d3178507ec34eb2ccb91a0afd5d20c8216c055b2b6d325673a6f6dd8afce308c9f417a5ab318321a7522f2b56a11e4308bec55696067d11b62fa49cdc933c6facc38da223075699628862b388ea447d6555520da78b35c37bbff25ac1332b713d6da82f5ee67c8b5c16d462cde63ee3c8a0f3e33acaa9cdc380ec4bdc6cf454959557f299b05726d83c0d162adca062227ac4e72205e59d27a9d3d770c7e17580225409338f8c1cca5310e08fd86c1a51f082e5a8ec01bc278852b0a2571e99940807f3d42fc1e986004cc7ba615af7b6b15270db6cbc7ce811a41489125bfd2d3034550f706c8173a977bbfb7776dd55d62d64e4765cf6285b83383c255f44b19eff844a196f772859acc8be9955fb1c0394dfaca16915aaeb992d6714f274b93cfb273a5c48ca5fb9d52e90445b66901a6b4f41371e9fdd2ab1457a3e9fda810b464c1f454a3f054c1ef42eb97e981d52e3a172f3a83dba7adfabeac3b97a4b0faa4285fabcfe3602e0eabba6161b73c51c304ecbf2f4abd24ed1b167bcd7df71395b9f00a186be76a5f1e735709f61972e2cbab3d0fca26e6922607a81bca563d82a4329cf398f602781aa09326ac19b25488b369552b47c2da7ffb616b8fe9f3df521385313481726da7889e729b0da91452c76be4edcbb699988d0e36968e2b29307a396a0dc5f8840a445388a58409387d195a70c336f5c15ab91d86eced19efa60ee8a95404091613c418e235f8c27039544f10bd66e00f0a374fc1065489bbabc32c883434417976b4157050fe19f057051453260f45841e270586d3539b993aca4dd830f145e805e22497f3cd5b0b6f99fffbbbb0c8c3a2f0c1f12b57fdca6a319727e114a8d07f983a7415f87852688813d6811ad888596a84790c279a280c32824f73000bbe2f212bc72184c39ac4bbf5846bee00cd76a527ada411b074bfdb7659e4740f3ce08f83493129389626e590977e3e5ff3243c21b4cdfce7c941b2c46b723c743cacfbfd4b8e1212bf781be901dd40a1a4c4c0d085b9f136a56fac37bc31e7ce1a4d8958536cd2dd87b8cec349ac9f875f0be4cc728b9344e425d9ada7903e2fca46794ad7e0ae754f66f10aa659268d1d51d795c28179a0f850bfe8f94a63c262b0bb5e9e9145a6eb39edb60356d17fed6d479c817112eb4132670f0b67f5cad428e18fc0ecab755ac59007ead7f99ee668850c2e4af703767b7c2b53a6b1f6aa4fcaa6dcdc913745c015aaefcf5ebbfbc74d06f9f0dbc3efd69ab4bd9f91c8152e293dda77e2cb664a9b4fc32b5fb241b517f4019375674de4abc2630f82a0fbfc5be3aaee2f5bc01133f5d6996ae74bf63040dcaa753e87b09b0512b2886937ac29ed04b05accb9d8f569f5b98721ec10ff0e496a06f31176875f661e79c80086980385a991431665348b652f100be8e1f4cf8284a79145c68e359ef575e169123181deade31fbdf41fd095c3844fb4490fa8b70f95267e84160ac3f7c635eddc4bf5753729495cb8bef643bcddccc063f5e8424420bf9664b6bd3afb0891413b9478b9f8f88ecac98865242a9f9ffb93d83d4fba6dcfc9af03f24cb9d54949f1c8d3427b97c1e4d16a8bf35cbcd1a67cf782b78a54047f18f9ab3a77ffcfff621873679c9a11fe8ff473ff9cf69a09198661194628febdfe8faef7d8d99867b2c4f603cc3dfcbb9e813c504edd3060e59cf528ed9473ce327cefc6fbf5a0bdb21614798a75aa18a4a2a805e52e2d0251f56b951565b4c014a6856227c688257aea1f6409f163b87a2b590ad74a84c1fd8c4f536caf96e50ba98d980718d55604bd794c8c0dca33b2cff56c6a7eadde9546411a0431e15628f0d438dc76985373c8701778f3f6172ae5a67dbe6036f6cb904abf5b6254ec87b6b9bd519a8fb0f608fb3143d0c8623310282e5aec01e1a1e99c41768edc44889246b4c6dffa46121bc5be23cd5a22fa49d781f68060a6976813828fd21ea05cd893cb95de7eeb86b54dd35cf98c611ed7b62de3581b2759e243314d859cd08088ae05c5419834c22fd8b48ab50a4d3c567100f488434b2b9a4749451a93ab25ac812f2c1898fe799672061169c450f6d4ed442032f00b42cd9a512496fdfb4e8685b6fdb2a1a75cf2cefebc273f1c1d2b874b5d74fb6dbcd274afedcfc876085cc07d77826febe70479fdfde78debf97038ebc12d38aa48ffa3c3605df319c381ce53735a956151fb9558f3c6c84458c102fa0a176295e1447e1c4b3f49c121acecbfa7d0171b288ab888cf909ef8f8c8430c6c262457f69e5cf9865ce8b4c0fda13396d77d3902393c95e6111f644fe3c03b173bdaa1215b97eb5eb44cc92f1be9f517954532d2edbb9ad7f2a6ead9139739e5cea17b1100574304d6f951a9ecf737d54a733920bed87fa8e03ca07ca93151583a8a3a2778a39b55385be9dbf2764d3fc6435ea1bf73914919d95d2156c9383e65e6a6641d45726c676c678e1d3d4c8a99df046ee6f34215da033864b5eabc7d341cd81608d48aa72462abb88afe0bda47f84146316aaa826382d0f7ede8ba9ee75905cfebaab2ec79bef7dd742b9a962abc5c0e42426ece10e2d072e734f10b2ee0e0a26aec66896f6e6cd562a19f97f9fb5b67d635db59c29c75cf4fc0c421a98df8ab3bc9e867b7b3a43d7e3a9bb5e2977346030b175f320803ef545d8abf869c8cf8c303610f5c73d35409f82605bf92cfc1ac5c7dba78fc91243d31f626aaa6bef7cd8ae6f86cc7565eabd525f9e8f3352203600fd287bbcad07340d1f39c91b6e5241d3a71bf0f775fe82c294cf94a7b62a383bcdba3c29c06a49e2e5b29dd529ec2f76f4e48c39fe233c9acee8b3be856fe6970a372c411dfc87ae64b13c29b66d1d13758748ebddf785278820aedf1082da5f66da3f6edbdf4edb2f42d96f4ed904c56ce0de4c4c91efeb6d9b163a9dbe7b899f5ad8593aa43bd49ce6989d3ae64092cf938219862563dea6b8b2b857a3906fa20e32e2143eb6f4f6943e1bd055e5211d254581b48350e53650f2a32c36f625b4984c856102e318b1dcf754d060a33f6f7d60fd3939c1b3abafcdcc9c7841e0b5008af29b8b6a86ee10a562163181643fac8ba429233589ec913aa70eac6b92e85f584a621426d113a73bb29d52be275f8da17d290932cb8cfcecfe177e7d72d6acf3dbc19821f6085e33688d9a949711622e9f74fcd7977608f4a84f67c6c6169437dcca82f880ef6e627fd70ed420c2749ab465423258a06b3db9914078b6606a5cdfb403aa7605bd075d86a7e23f904c633be16aabba7b15b58063f1d0d89250d4c4906d39d53701588d9b720d348dc563cffb03eb4c256c025b932f5fd7b747a63c7a7afb7469d2defc2211d468479162114104b424b3c07ea0c78a23377f25bf45f7f0d9dddd2a6f87e97f19d59f6b1ad49b30840641af5f758b301adde51cd30fff35fd5bc8de9f13ffeed9eabeadffee77ffcf7fff6fffcf7fff67f55f374fcaf2acdcb7ffddffffdbffdeb5fffbb38b6c3fbeffffa3777cee663feb7fff82fc97ebc43f9efff9afe9886ff0fbecbb66e8e7fff170641ff80fb96fffbbfce6df81f457aa4ff9e2ecbd0e6e9d1ce13f89fd5e7aafa8fbc49b7bd3cfecff3a8fe17f51f59ba9704f67f14102db9f55f006418464a778635fec99eb8f39f41f3fff762257770cdbfccfa4ff1fe4bf3c48b72e75708ee2ffe8ba6c21fa8fff1f00acf32f2eec2acfdfbab5afd81cdc8304cb81da876ff44f907071cc3305af4a7e4fec995b34fd950ea695fff1486618e7f8c047f2289abc7f58362046ef2bf684ed57fa0fde709515b7c5bb35d31397fa0f917e1191efb4b01e1150c4c4aee0481188641fe9c64f73fbe31f00f0e981244fcfef878e81f53caff5e29300ccb4e993cfcf96b070cc3f87dce300ac99492c8924833c4a1c33022f2a7ca187faa7c6c99f83ea45233c40ec344ffb9bcf8f387511940654b7cce22176318b6f867da4c7f226bdd8ac70690e78a1181612476feb3fcfef1150d23491a938522f66724ee9cffe25318456152fa8c43786018b6fdf38fc9fee426a21b84784eec95a30ec348ce5f7bd87fbaea0493500f815c56873fbea4fa33c2fd735a2a40e03974356812aa23c3b0e3f28febf13f33a4a0dc08fac7ea3f43cb7c3cd27eff74152f50ac70fe039a36a609e6fffea8666b8c315bdd899d5852eb3864fb95d1dbb465fb646d9a92497a1b29303689d9d7371846c400d6fee366316441e2126503d88da40bb5fc1173fabf9beb283dd22a9cb8309c53b3aa7be790e23733f3c82ca2892b02cb3aa4fb1dac27dde44b42cd3abba8edc8b0373ce4b92876b494db900d1c64a473cdb7105a523faa8a3f2e6b530e5558a1c8d94af864dd0a96923819d96775d2d746a2a8e5e4562dd754cbe5ee557a27eeed0f784a93b7800c2c01917dcd18de210f5957dbeef8eec7182e20378f7bc9360d721289d00c668bb247e79d1f5ab512184e8df1408173cd995a8f756e8cc4578d9067c28d01596f805869f86e6d4c4a0cbe68cadab75c2c82adec5a22197ab42b7da0295a8e72f9309ffec144f3c22102f69d839d2fbc15425bd1b115a7836c5ce6c9f2dc4d425c5f3dd8d324c7c4f43b8130c3f1eb385444cf706d42828fa7fbc0bba3e3e09cbdb8a99694f6fc9e86ab43d36db6604fe262adcb5b6eb17b4bccf405ae37b9bad160273bfeea73e2e9ba98b7bb4aac4710495613899bd0d71ca74d7423cc1010033a8f323dc06d50ef065fcf111655087ad11bc6cc016e9cdd16a71ef0e18cb457483cbf4b5d6ed3a2a2bc3b801a365c0ede5aff546b5d543eed0725506da9afbbd4d34d9ce3334b70acfeb5fa26840ae52d63ba954904c2084ec84ff78bf207950e7c7eaee1407220f870eb4934f549d5968abcae5dde7e779a7098f1765a43804543faab9a349934e3aa6abe18a5027083ef4ce27462e47aff609f78f8758f7bc34b5dc3470caee0db31cc5eb6742e5f189bf9808d2c8d4e3458c62b76630aa7e3fc09367b5fd310e41e500c48a005a42cd065a813157cbb079ef462e708c9559ea3a0045a62807f97706c256e47e9f09fcd1eca86d3a813e97dbb571e4d4cca6f49f777b46f3f793b3d9c147e3859617b75a4f75492052b8d02fa9d269f435190befd72af51a9fcd693688b9d758c9be5bc5314eabf316ee96b969df3e19433593016d6a98206f855fb2937ac59e2aae5a6049ccab82df3512af8868555dc2c68dcb8d5ed919f12049e981e5e1d1c856cbb9bd3723134df917caa786ac5d8272b866fc057f47befb78f2dfc9794ad0979910b974f440e3f980211886e79d18e9b1a0c865d7224e0f0f42b75634324cf276a699134b44b6d022c0f77a10571b19e77519ce77de3b57a18c5687f575a52c335c93d0e8983f21dbfdd14b9330e4cb19df75144b9f7c374e045a8e41461eeceff30c5234351aa4f58ec9590682128945a0892bc0689f544cda07c9ff8f86e043d592a38df5f0e89437a14d1c4234f91af77fc1c68d2a84e5424adaafc64f2c4f3957bf30330074f0eaf334907ff93436d4f4b8ca1c89ecb462650d5e8d54035bb34853c865268dfd82e101d292d7ae4d1ca230991a94f511c92c4904a4544adb1d446e427590ddcebca5df73abe7f2f34664da784b6ced79446a8b879801c85f4e5b527df1b0925f4d9824f45172e9b9396032d6b6debaf2fa3739b7e6ffa3bf5bddaf3f93e1fc07d798e24495db3f5b3845a49a0538f3317a587840fb4874e2bd53082c84f27f267a20fe8a39f34044fdb8906906ca181ce81f9d4816823ca6168b000d3f1cd47e21ebf7420866844b58a9732c5663e4c71988f9375ba27a0d0a1d53394b72a5b248abd38dbf21206b0eb79c61f3e522bd201f9f944c0d94b81e25af10af1f436e7eb169fb4ca3890fa6633bcfb005e2fdbfd6c4352a0b594c806c92f8a09e0e76ed8ccea0e7634c1bccd01b441f3e3c592852801227dd01f806d44e4b86b0561d544345048ddc5d22fa0027df3f8720745f66718003f2180bcf7d91e31ebe285da92feedc9a507903748ead122dc9fd0062a3f8e809a7c7cc88dbf7c25ba504155065cc044d4fbbdc2afb779f088c8f44169c3f02e4f726eba7d75951578e9cd9698ada9f6b4eff4c19bdef846ec57bee8227b808da42370cfb6cad5ca8776dc12144e339620beba33bcb3df45fd0efbeda606d6e711e7f3146f3fb2a595f3eb7ee3725b000c0b6987e07552bb133b6933720d9bfed9946adddb8d484c7c700b0213ef370229cc4cc05438c8d5007daf7c5474617cd7f06276d715e050b43076a099f547d5808aa9fb9d09eacfc468767e0985dc85cf352a689f1184d9b2118ff2e134d91fffa0cc0277742efdead4bd33b0f20112cbfc4536a94ee727982a37f0997635e14f03af4a19970698024e543579f0d72907709f4c0b02e74b94e0d56ab6f589b436151f9577d6f9e1d6f90c17cee8d08850be08c34fd049fbea1b531b6526e5c34a415cd525c35569ac4468d83ab12db12f2b54293fc1cf8804bacc967e0a4de48e8c282250d98b771da058f2298931f0a9c7882c72a278d345ea0add8842c28a1fa05bcce7399f8d316e7a2c986a6573855bec38ee260abc3db51295375fad6563f074cbbe11eb6372081e4015806644df36610156b1e127f9802cce217e301ec097e54bd621e4ea84ad036e1a41aefe9c08c498a021a276f5a586b8275ed86ec74c646d36cc3117d66955274937c9182d29791bb649081daaebb3a76d66ce6e6f39dd32fd3c8751a3148b9069a2887dc31e23001adf05792446d804a05399ad38a04dd516e81eb8bf838b8ee7e6bf093a54a773f9cc2cc0f05985f20bdfa7495271265d48d6cc81884a5ab521af8f213bf527c2f5948ccc9cbc30d91731702af0937088e120096cb3db0fa2cbc8f1a4861eec6c02b884601c28784a6b0db846a36c2e1ec89c1df6c5b2885f1592258358dad6aa93dff3f941ee7fb086b015874ccb3a2063da94133206ade841054d1b23c688697d6ef3ef81be40282b6269153e731f60fa7dabba1181bf83551f7d2ba63cebc832a2fbd8e04fdb91b08dd66213318fb37699e866018029608c7e3e6d41a61a3c370fd40e18b783f0054760047ed00539fc0b7c2bc07d35f0d336edd66df93d48b75a0af45d09541e774c2cbe7c6ac14f11763ad554e2c7274168f4b811905fe2a287aa90b052bc7d8c9f6d84e013a156d9e3af9e85fe7ac07d6403205d12c245e4285a7ad38a73e981a1baabfca830bcfe6753a98b25b78e2db60d0dfdee14597c72686a04613d33656e2061bbbc1a1e29615549a1ef2849af9d706e4e19acee64548c9f82b3729b7edc6dfd525cebb8d8724a911186aa7aa89a28f3986d3d1e941136119ab967345e806b9b836b5bc01ac9a885e6bedf3e4c2c3fbff75834354d588c049695177a8c8436b83e0cf0256b249e0fea82e3393688cdb9577a2357b5a08e11b6830496e0309ead77897d399b89db435294786fea54d2e26753e4f470444dbeb92d963c8ce1d3a82f0575b031a170a94a504e268c6fe31a19dc9705d0948566e5ce45b9b7d6f0d5bb36ecd52ab8e81a19f20a7821ba799121f8f613588f196f8bf95cca659b7e0ee3c7a818060ff7d86b26edb684e36d794951f04264985fc027d07ff677ec26cbc7dcc6c6dcddaac349cbd681503a9d592542d3c5235b3392a09406cfd03ec0389950bea22350054a830594c86c1b579b751bd5cd53dda88db112486c37d5801b6f628d325c2fb26dccf8f76e400ef35f3f4d62296562b6ff1b6da764f4de88755c67eea9d69db2be35e7718adef0e5db389c07947223599fdada13c8c544ddf9b9acd78b96f31b58ff2756f76f6ea25132e7455f279ada4110e07d475b02848d6fb616821ca8158da9678fe1839052038a520203546ebb0309909ac01b0475f0bb000c6c486097d507cbab89afef0a93cb87dc2b9d7fee78967587dac90600e87883a5c22b548695cc9691ca47550c4c2c9a3565ea58128718296adcd247ac8c3a98667e4213bba26b4482ea79c322053d5e3a81a886bf20f00398ff4147e6c2858d52bcf39a9d001b5f7e1fba86ec59f81d240be553f2149189e6b6ffd2970c5314a8f0cc6c710ea4f3776bb433a176f169b7c2d3a6123d13c7f4ee1fee3df11565f8fea433bcd2e589902c8011f18190c989924347e2380d3ca3f6a3ad971c7ea7b63f78b89026c48fd91c7bac921a1ca96f7938a7c1891f1ed5cbfba56fe49bc3877163d5196534bd409989e68fcc6f1a65f9cd0ce497a42d271a063319a20b8163771ee8e061f5c60fa8ac91326f52aedd9f68c0026330a64668eb3fdb010ec1660c33391ccf281433dc5cc3683f66bff91f6330cc5a7327a3f7cccdf01263ee4cc7701ea3efcc58730123e74c557337a3194c5373132338a2e0fcf33e297ed9618590e0a00e6433982c201c83238df78d092f95842072b91f74a1da5b583470528fe68ba4e78e50398a28f0c57a4929d72c429bb1ad1079f2c3d9ade019c8a9cc9d435aa4f97d4bff79d4eaae53b5a414ede3afe7dc07247d7e46fb7d0bef378f2ed6b575f10bd57791665206bd534482f52e8db4f4b39099c17df8d21c2af1fd930d376f020f99e2e68c0459f0b39e16324d1b82f959253c41c097e3f130fb927284786f90a88fa8893be65ed476c45a0c5c061d383e7f4af7f33e12d9bd14e313aa493505d64f1148182ff2a714d197bbaede1be7b8fb693cea3aa0b236dbe403140416fcd95d7a07c8bb034d5dbf9b593b557cc309ceb398c5bff10fdaf2fe6d6f53a89276a51c45488c9ceba6013526601178dc6375e91206cd022ce97032a92f2a66e6137b07296a84e0237b500e10fbfc8e4a50faed0460b412d2d46edc1dad1633aa2ba852508d92b403b4ce64fdefba6c47f518bc92ec0a8794c32263977fa323fa5946102be54466a8adebed7684674ee8ce545cebb8ce503b99004c5ad79ef35383e93724767772d900886b753553ba86412983090e3aa3e505b447b92a2b7947f6a64c10093c61fd9f9b850c2383e0cdd8a5b9d29553d4a2198594792f085a7efbf7a391f0d6948467b25e8d17a52fa427165cc7117e8ed7af91a35fcee6b9e96ac6a338ee2fa30e2b5bdf55ecc810e5febcc79e89c6ae7c4cdc7713fc36e41b214821ae132441b032a869578d2fff01e482c3af85bf646fc9440cabb96f7166b435da398fd74fb3124a8615133aa4f3174bb2076101a5a7c241989283e01dfc762c8008b8c2e6226e7062a5e3a16726730135b4ffc1f45cd5168b81bdb9a0f8f07b03d12005246bf4536b5d8c5a7e77a1386665e65220efa2b3a0212fc981309cb746a523e525efe06ddb4f8405fb5e4e64166a5cb86821c760ef53f4fd971205f79c9beabf56fe88ac47de907affc070fe16580edca3cac33b41743c3bf0cbb2209ac06c17a54df473d9bc32652e7fd5118f968f0bbcc6b384789fc47effdd77330ff52aca0aa61e2da6ebc2ae1e33a6d27734692b3b1881416a69820edeb128df06f192dee830873068852fa278ba57e3a19e2b03c992023d5a9ab4509abfa6e643fd7d6dfe0cebf1663718e8740e8bf81f67b1921fc45964e4583f8ed04047773e25d6ec037b3eaa7c9797d53444334ffdfabec2b5dcca462ca5fa3595a558cf622c288437a51da30665e3ecb8817927623687f2eca75219874d4b271881cef513f12a4ddf5195e9211339f67557d3122b4908beb15461a5bb1f094444a965076fad8cf3c4e48a9ef432dff7a2402b60fc7551db265f330310d04a4fc15fec755b1b013d09ded5f759ee7bd5eed9f4a45d016ff547dfd049bd6049b22458a3d535a394067a44067009120fd36215a58059600f9bd9a95c14c8019069abdcdde23f28fb2556d5e34b88022ae8198f39632ba69d8c7d8b6e766bc06d422b505b375bc115b7b5b94bf569ea4ed21945c261c02f41d32772e9df029c3be8d9c77655490621bfc4109111ecc9e87b53487fbde43064ec80f9cc80b1d43faa5aa431c9e6e42a1a1da2cdc44e1e22213ba57af989bf855fcf1662994374a56d095123098449109ba7a103e3b450e3310f0b71ee1c5d716e77e9307f6e935b0a30146335b21c2cf072e736e0196692f381b6f828ce459a85125c98b4d1c1af297c6467a61417392480ce7c6f8f55f08dae8f9bb5302cba326b7ff4f45d30c893a3148b095fc1cef07b15cd208944d54ac79514dd42acb25118817bef9a38b659a2e2548a625b031dd9c0cac6ad38c67c4cf7b2b2fc6b23092a29a3d0ceaea953690c453e8f2a870d9d16c02da0863a3f2ea84af3ba4680b27bd9fcc0e73aab6e06319f7c1f203d97e27e737bcabae61bd1eb1c6820ac88147bddf351a76b5127afda492b89343c12cfd3204b09fbd587f89cad32b2a2efe6593c44ecef10cb65c8d8257c8781d463477514f202e21a92af5c5b4bdc4c7c5fc060fe2382fd470ffef6eb2a6e197d7317214b7d18cb0d0d6f8f143127877d3ca7a2176f3f1dacc0fd056aa4ebdd6f133f2ed07733287a4cd81d23e6e282b272b7e3d8f817c0e6aff0ace08999d404255fb91ad8bee0a3dae74b8884eed8df1c2cbd90458a3da239907e233a1b9ae786798076e58763c7af715b243b8494aa88c1043d925495ec09f76bda269a88c6e833d7372992e0a0d19426b5ada901f0e8c44c36c18d160c525f103c2b2fce439213f97492384e893e619aceb806be4db2ce3d9acc6f95728b4506b8ab618e8f2287d9ea572b13dcb68e25d5dbc28e29d8a02d1b8f7aee5aac54c7df6256df876f3d43865fcec3c9043cf08b965ddd49f4554bee385510650d4f6afc2478854b1a37e388c1d0342c0922ab159c5f075df0f2cb99e88e164acb13210dbb4b353e447ec4cced49c6295cbbd676a6007aa1d016edbc1f603606be51764d7395b54da49abeba0dc0ac0aab94f3444a15ab20642b6038c3b207bb7b1126b0a4dcaaae4617b0da8e8a2e21a42f461d07dacda1f731eaaecb2da566801f3264de0273df8f84751d9dd6c6453e8000287a5c0e607ecd844ccbc9e4b779a737128567dd1c437bf955a6dc2d858b124506d64f27e4687ca2ed2d9cfe1810d66f81a2e4f6dd547b27a9684f7c505c742c7b93407b3c288d1f03c8a971346165c2c7f66a37d459c9f0e590fbfc4a2f951d447159e71892b14746b06653db272b236ba10b43121ba443fed93b78dcb7eeb2f3f05371b0de4022cf383d8abe67d8c474a90a313a2190ccafabce33a452e8f23bdc8ca788c39f5e2a0f4ed8fc00b0676602ea55758dde64f7eefd1157b0b8c1a2aa904bdd586a422fdbd72dd42da9c15e381dac7c8dc3ed3829f01189dc0b41d32a258bc51f28e9dbc1be7106d0311dec7c159170c7300d56f96e10c3435ea58e034f5d708547e1dfc18552f37200de058987edd8a902d1e8be6f7f880f8993c15264f29261731160d40066914cc2f3e7d8d7222eda55f90853b29cb492cd10af21d692e60bc38a99d6eff6986fed69c2ecc2bc96bbb153cd3eefbd5a7deb66a0a919cf3534e7734bab492b8259a0e15ef5d73efd5587ecb02e483373735d8351cde70d0b78ebbbcec40e9dc48e2160e264c90246c93c94eed1ec794ebaed82f39824119af283eec0f849d3e9f66cd046cccafdd8cd191b3ab05916534efc491e9ce6f58e7af2d38a1ae4c6a199a256ec32318ba4f46280d87b353ce73601e117ee3f7e740c45333e381d1e7ba5dcd2c9ec1184d3eb453d4a0acf242739331134378755ef4d1e2684558ce30bd194cc679db7521563245812fbc1710cb1796b7276a494a9932cb0683c8dcf10559a751806637ff7b270da516f60ea1bb2fcd45f259810851e3c8db7e6fc09106b85026b2186cc11862a6e55d32209e7ec75239803c2321f6f37dab032a7df13a6ea1df1ecbef513f8438ee1b24a4ed17bd772e1ff82fc8068789b647e0700c0e2f2c232e517c9419203324b0c7f7b39eef20783b4f4b56571fcec3405418f1e3bd263c3c59265aa7e69f5892ad0925f030a6b52b7998e8826eb96a3696e744d7ff030c84df56226c698f5a508ea4076e0daf614db635cec66fc4d687fb554535e6b55f5dd7343210a3122092449ad8bf0820570adcb4b793c65bfec6e453ca39f95440d62e6b4b8e4b1f233e4746e092ea50b25dff5f7e4e92c0f75b705ff9268d418fa597a90b178b1681cf3e4864c3186c460afc4076ab7e33a89f7f82b9d62c723b5b597466db5dede9801e316c6cd5354a5cc0b4ff16cb45b1b30654dcca7cf4bed287bcbaebaee75b991441305c1139c6dd205d32e3d26ea414f946e5050d7e1f66980ac1b3ea7ab55e205c764d25d6578c15675b67b0d992a98c3efc73a91ccdb432ca3118f7d88d48573fd38831ff799d3c3432e8c0e6b7312ac28871bfd98abeb5d636fa5b72b9a939758f837879dfd72f3396b9bc73529f3ab2d2f1ab257c126654172c86c4236900cf655069f6d34079d17a8c69baafc6dd57a75bdbd0527905bb21184f9a8a7a37981db79c0f635f1fec76bb9095384c3bef11ef2fe074e13954ea4551aba2983d51e404529b9ee11105f7e0140f5606cb562ec58c51ca87bdc004ca69b63ca162f5ff099972eb2921141066fe6015b2cbdad91b163ac77db68caa8b58bc1f69c3126eb992c4eaa980ea358ce4f18444cfab52228e89cd134f4cddb75c3b61b204424ffbc3344611d80a23d72c89c8f212e5c2c1f6e6e01a80888a794f0ae54e98d2fefc906b9c91d6a43dcbd5c28b3fcbb4d23a506ed461cf2fbb1d4642cde2392cead1f44cc1fb6141334dca1c00bfee21edb8ab7b5ca7e80911f4588724e2fdf96e365d83f8b3ce6e72e69980872509aa3c92ebacbebe9eb6149c56431adeb91e5f8c3720d6f58610c5546fae7f8b09a6b4ffd2e11ed1253b4523c80a6737b92c2c4b888ad6d4d903e2e2d2b5e79bc2af0d2fb0c05d5abb02f98c60b7548e1348d6df085cc55928b4bfb3078a30c63354387fd8ed57de596600a997d7cf1becf50f849a386446c99267ccc3a1c52cff2caf26aec00f5923012943aec294cf050863adce75070c3d9301b84eb3e9bea585d8b2b2bc73bbe338ad413a8746d24f9be43339d8b6f8751cc378d154f7830480127ce6e997ceef9e40fdf4da50537da3a79a8a193205e7a882805dafd45d277251f09a802052874275e9ee982800c0cf130a482a2231cbcc59052fcb2f36fa41a5693546792e5f684ada6d9975d7893886b40618a00f11a4c3d4265713d70cfa28f24be95927f1785416cc73fd33a32122d30f440e31de499673ee2d97ab9fb129d9f4e65943bce35bbe96a1bd59eeac6625d17b667626eafd902dc53f403199de00a26acee4a0270d8d481f71f7bc4471ffc5a7e227e276200ee4e40db79568e21ff865c8ceb527e1bbf71d1f8a1721bf1f73643611402b0a2fa7603a5491b26c8ca4a0d3106ca73ac90bde875b2b9e9817a419a082d394b6de4429b863ce40c001d2a0e551dc59149f6693015861f51eeeaef923f95063353ccd7de9226bfef40016f74c03d612e5ca282c56787c5eec41c1c98bc15cb154559af0b2f2c98f5530ac55a1f8759fb06dc33fc94ef651a98ccd785346082aed642b4a863bcda8b48f1449f0f525e0a052ab6e1f86e9a19c64b9a90d52f104b32bd71ed0243fdd8e5e9aba6532287fe4e4f1dbf6fc05934cc43071422fde87053a0ede9c2183de01236882e0a1b8130ea08c90606ab922e22806c34fef91caeb4c59612a6f21b957648911f7e4b8419d203cfa6a9f0b06d6836ee4aa51c7d9fd6d1af8d961dba43967e2813e1e54512a48f8f4d8c40a1dd1eb9700085e41ef92bbb845ae2f72ab8dc10a0e0850757e1eb62d6d0163f7f2a7c1b3b7d6e8267c0c3e137933b20dacb19133ac07aa7e64d39916cf3d8541fd5208905fa19849286b017c2d0b56d5bb2d61f27d3f6bfabcfde885b65cc011fecbaf6d718c36ad92354c9c9b0e7224e28055a3a2f351153678fa554ee93f8d206cef4ca43bed52ac5dcb2f328f5ca5bcf4f2ee5d9916cf489ec0620bf9bd768474bfd2be8220a7f92400964035389fc4ef9ae01a5a47477df2593949124d5592077e51c48443cba9d720bc4dd9529c7d966a8d49c6db46eea1578be48f8ef74a398fe5a7d38cb605e4b49b0566bbcad45dbc68698878229d1887cadfc36bcf556f42a4241f50c2173b9d94db38b1afd20afba325817f31201e1842042405920ea6eea03c89664d47d1062757a7a4dcee05bd7855c0225f5e8deb6be65710f4cd35e81dc55912369eb9ce7f41d33adb4ea7cc710d57ea76b4f4f7442d47d8b8b59b640747ce42724fe2409308b3f4dbad2e2c2c443a04961ebc0da776f01ff019c98aeca753122cc56a1720b83df851590ebf31dbc738a6fc5f2fa3f93218615b69768a5c7f347ad6315dd739a6430409e7bdb501f0c38d7cbce8c645cf7fe7b7772410808ef54cf1fc6756d84d3a5a13abbfb9702b32728ee4cd37e7c44346fc28437379470af98932bbabaac79d32090eed8348d50ebb8c5b89e47b08ca514c02c894381e6aba050f72ea1e67cea0353537dca7b946b57e73c53fd4f42ed986ed9eba934f090d409c1a0fe25f9312373ab288999d0cb8f867815454e2f72e1ef73545aa341f569efe7dc8254bfd69116323b1d16cdabbfea20c5ed072690bb900e6c56f7d18d17513cb0ef19334993df24449a711ad367a3c488a62e4d6736f2152900a3e8f72da6108a72a8a0244650749bf049429133427e009852177ad487a5317da1c2a76567ee0870cc0778e8c4be31781b6798f7dc2419a296e68568a55e2468a9a686f19d3bae303b72306f3f4e7279a8bdfbbbaee6936712e2c7d40a3973ce9755d9bb55d5f571405c111b6e54955a063ff953cd910a26ea38e7ea06ab279a7e01683e65f1387413c37cea9c7040e38a1cd1f635af3689ad13aad26313ed30ce79cff4101afa694e0f75a1bbdfc95a8c8b2f5e2e180e3fafb029cfea34b43fdd5c17df58fc2d81f26394a8d595c8fc54f789d91d072ec42e6e802c4812e9aa9820fc6cfa95f0b725d80fd50b0272f5c383a624f868aa0ac69a9e457a22e0ca527e314c63687aa833621bbe13d20027efe8489eaceb178149f1f57208e7f1d0bb7a4f2ce3ed6dbad8f7b423c6f8b5727d1a02a3de50aa4c4dd4d1943187337ffdf0da0d07df84be3572d8129581989f6e3ea1799b23fb796359de4a3ee1a1c6a141ab5ef64174be8f158dab8a4308a29cf62b9852caa5203f3afd8894673dd0f185cd40621b6064a32d1dc44b00c81ac42ca7376a7ba3d44133e7c0a132df298a76e4d163fad5b52af24cb33dcd39e5b78c71208096d2a30df254f016c2d6f8c833520fe6d020885e35170fdc9422cf12a57d90c9d4041a862a80f4eba8317577d82128ab620b32677d505eee7907213041b032f192532174c29f4f28281a7f7d3896251c493fd49363320e4ae2d1394c34dcbfd32ceb67a9afcdbf9c4f1ec6883e05bc9211d0f0b1cac67caf18eb23d8ab0cfeec840f81e3d6cb144888fdca91ab307a282ad346f3c9f28849da2dd2907ceef1632674fe55d200d83a6aed1d444f243e73b6acfc4aceb3254a7a0435cd770edb73496ac805145983303f1c309b39bddaf257c0b35fb5fbeb320960cc692b9fbd51e64a3ea3b02907fb230965e8a705a78d09cec832e0f08f7fd74bfe74ee3b737bc7581c0b2c3b1bd211ac56f2044f99db9530354d2444119bb0664e75911a4a2fbd070bc4852755e9bf545bf071a13af6a15a9ffd0400eaf38df8bed9861d68692182b216eea3a9fd4acadbfa337865a9fd5ebc7fdaa3f1aecb5ff92643cac07ab34b097da2f5c2e7ab6ddddd87b259a54d1650a6e3cc0f36b509b8b80cc38c585e00397bcc25e338c7e90c43b0f88e8deab4ea2755fdf0aa4334192cf695e2a3aa9980ac194f38c7bedfaf904a5a160d5a142dfc70e31e224c362114b05308cde38f33f5aa9081ae594f96a04229c9b5a29e44261e252103ee91aa90d633d507da187915c30640783d4dc188c3e05c49222c4999b5743dfc0f3f59c75047c36ccd56f57094722bbc04a984bc1f6ee996dba60e7b431fc1a6fbad4c546a32904b28344ffa844bc12ae756c05f2cbe3bc72542caf4d88666f4a5df9068572600993719fcccabf22724bc1bd10ca724ab7d331817fa555b5e6104269dd22df1478cd438ec91284217bd156e58ee5e47097265dff99c4823197f452f0b46f3c5c9ed60baa07a0d53484217f505c2e8e6341134f9efa047b21eaf4e06927605c76cd48be04e7f43161c6264fa43506b9452accb8c4b3dedb262ffb88d129be7a42b4603bb4c6c54f6f6a253ed4417a294f6b9d8a7762c5f7e23406470796f947029a1c529b6df8ca19ed7c51d9a0de63be9537bbdc43812efcb239f5eb01efd7adae045b2c78256b6b0eb27e9e5b86eabc2aa8045bf58078f2e2a9c93b7d0dbf576765ae11e55ae2b4c8660974d0324b31159b476a16e4489a61e088265c62307712050d763b49de68912cad04fc08e100030eafc8063890cc10c865473191316793323020ce2eec997e9720e054b7bd2719ccbe058ca185cc8f5c817eb1575a834dc4e5184871d6a0fa1dc1eec3bff386800ca4a5f3a7e14b5ffdc4c7d27b0ba2c7e03b48baa68acb409a370b43d069da4451ca692275626618d26f64fb83acd416f9170546a67988a22dc478f09279ceb1465f25df986a2d83c52e7350c5ade14fb6d7198f698296c92325bd603debdd4e79dd4040c867faaabbecb15998b4cf98377572a1a523a49be90814d3a596ce57553d4a2c3e84d9f3e08c05ca5929ebdda986af836a5f70165f723ea9840367756e6665216b6ee633d8ba805882b0dc46fd0a62662c8530e7f71eb9b5da627ecf18e1eafac7e115aa8d45a9a34fdcc4b401db2623dfd61fb597fb7d2ffc087ffa865ea9ba984ab62417e9bda23400c238da802e5775f8cd500dc9c55484835178d3c99877bf7949d28ccc0d83b1959e446bc170fb2cde29b90d71cbffa9449565d952aef2f684fe41ec7c14c2cbf56167b40fdbb315d0a387f06d44b99c12a347768fec05a63498f96f32c7195c66b49043da2987f6a590f9c0a50c2345d1970b78219582c2fd6112441ee121d3e349e5ae66a5c5a3117abbac1c5d2c597fa238d728c326cdaeb8124601cbfba228380f288366264cf895f40e2613b987cec32e6598435d77db9e285141afe473dfccd3389359e1ae6339ec26deeaac502d71deb6ca611e399a39f60f973d464bb5b70d1d2fa5643997f41f559769f780bd641d95f14dcb088061e9056fa6f645862efdf3c5ed5dcb7c731fd8c3a8dd492ab0a72adf3d4a839bd7e72a99d6a714321d4cae48986f58337e5fba3d708d7402ea160710463aab825acb4a57a2ae11f849551cf3b749375a68af9902477a5b40026167c16630509d67cc6b3e58853a9eca62f60d546bb95f901b6af2bff718563246087720ef3ec22941c45337ee4d56212231bb5d858cc6a6c36737eeb3ac24c4606e85e80610f74a5faf879f123318efa5d1b7122a05289a7587889acc9f1126fdf4aab6f206e2b4de2c95c55ab0a667345a655b872259511e749a0e0e4db78ab2793b0260deb056bd1d61f7081b6389e12246e81d89912df5a149c6050fbd5b421c9f8991f6d973b3478943ef3fa61228f9de5925e4ccbd93d4b25377e0e81264591bc11c3bdb232c403dd1c249542567815b56d79cae8b2fa15809f450e9603ba9d9ee2320204f48939e0c5907455a29cb074c1047ff70a9af8faab722d9a99577be61b077db9bb9ccec16164fdb0035e4346836ee644f877fef03e7ca896d68675ee3ac1a707d0f139bd775e989a98bb653e30d2f61ebc0e3f4cc70b8bc18fa4aa0aa7a606bf14fe92658a47174122e986272083d8add5511bec0ede4eba61ef5352c8703bd8bfd931db1def2e8ac535e6c0b00835614cf0512eb27b3af9c1d0bbac01412a6decb7f6955e54f0e99b6dc77426b186e1260dc34ff23c659a7325c00586ed190e6d4e0135e2aa29a8d47e222b7a370bd1798c66fda218daf1cac58c7740065ddff6e7faaaa319b3a9c2fd7c10d4af4c77cc40f8db3370a9d1aa4664db10537061f179740c7a6adfaf14a1e282a0702bec4d5bafcc3119381c72cb563a4b11d2b86390b13b5efb89bf850ab942b4653ec25d899c6c364363ce40629d9120d9926d4af1b36e11b3d57aef79a6d3f931680dc3950f2a360f864dbe5b7f501d1fdbaf18fa51af461ada938947f1ee766c34ad545b0cfc8919d0258920558ad09e4cec0bbc3df091c10ead1720f8f4a4a2439b37b950b068cc78852d4ce699cd174709585b99b8764fdcf599aad6053c05572490884d9662ebeec81b75fc2a89a33fb183f9e5d17a71cf31bbe9705a0dcd7e8d8b39cb8c54e7d8eb092f6cd21b293ed3a47059c7df9fdf587245d2e6a601d70c5a089a3120738dd873d279ae8a177b2a69bbae40e5237d380fc5ddae6798e1ad592c7c2dc5392dbf7e1cdc181135fd28605c79fc49979f1bdac1dd330d166ea66ffefa6d520b5571dc79a4ab61e8682ad3397cd1fa73deea6decdeb457a20c3d35f123da6cbfd0ca6611fdd12052afbf3043d7912e210e2c72493ec242391198046a2231acd74be10c45414bc0872e41f1012493b7f0c194a4d344ef5ec1fae9d954c30f9cb353ae98b0b5b7496eccfd8d3addeea8ae214eeafd33af3c0e2f66178cb6ca6b8f312661945c1185ae9160e0803af796c5d0cdbffa73cc33dac3be3331bfead41a4417871b342ea2a0d21402372959e9d8bc40dcaee3133c178ecc98b00089538e16ccaa87ab024b5aa4c182df3c502a1b8439dbf0a6911d47aadce10a34182c83298ac378dd8ee7b21fe1dd20863a50fbc9711adf8dfe0cddab6c8ea60cee010b09318efdedb0a1d80724a288498b5f173876e2b6d086053dbadb3e406121deec1d8645b8244d83701ba5690114076000944201e6681f6115f176fdeb51beb8894e75eaadaed8f3a2c453c0787b03cc169e1d184c8496f1bb199909cc9c95d3c0b5c83be2795e593cdfd87ecb19bc17ea24b7bc2b6b7ac8259aa595d3df88e9da6d78106ea950bfdeeb05cfd06b4f9476e70e9449d2e4b7785249b084a11d3a1d4d496f30f5b8db369d63346c80eccb5ea03c3541514f01d11dec03877d5c12d5d81d79dbe94329294889b9850fa15cf993c2b2092eec0e641b092aea843667fddadf1c01dbce72a51b69a8d8315c77f53a680c9177e21bd92c4a335ea81b6345acd4a62bbd5c1cebde64cffcbf1cddb5b9a5000044e18208700b71bdb867b8bb53fd7efbba3833c91fa8b9ceac09459566979522b78711bf5d168795c50a76e33c4567f2799575cadb294ddc14cb22d056e9256ef40b5d10708175a1d6c273eb3209e525976c3dc730777c6d3a058a60604bf7106eab2b063ebefaa66db327f52b974eb691dd43d5bae1a1a890f725fc6d5cf0e0b0a270862073b5986c9b0bf0d26909f7674478f70bfd6898f81d98bc825e305a6783c0a051822e4af83e0cfde93eb4df3ecd32f590f2f714b8174b81a91f3c6276556779327122ca1839ac00d8674be1efc768f3ad36ae53e4b3f1faf96f807cf5e7ebc98f1a1a0136039fa794b4a9d7a4fc0d7267765c82abe2c61ad3eadc20571b313c6ac38b4d39be9f9aa131fe2c3f82d6e67389abcd8a26fdb58689e8b5489c801c5ac25416d338425d306975c745fd9c095fb1d20741b740c30d3f09ec3841e40c2f0cebea25fcbc8596aa0bfcde1dc5bb217de25fa57042354d002664ef4d58d7fc41ea7ce11ec2e46f014bdee733c99b92ba342493021bc94c75bfb5739fb5e902fdb7fff8df586a43c50121c918a3efcee43b17e702403d30abae25a1bc7b499ca752c4091395b082274c3e3501ac9d609a22f5734fdba498f3c62f87b24afa47dd87e442966f2f9ab850e3ea7fe661ee7e2f0f6981ecf712a439e411453452aa2b6e3fca16d7a3902c923ce08b383618668a76a0cd0b0aba774c4af8a5468312b10c07cc13971a753657f8276edd75a60e0b2290c8682a51cf4d54c22f43bc9279fc462e2a35f1cb8d8ebc0aa71e65a28715c4a84c5b90d491887fb91f4d385c2016498700b1644904c3815bc421571d2afd13616c20bd0118af52780d3ddb6affeccd26b8956365f42de933219d38c2576dac30061054c0cf26d5a176f7645a1d991df312b6f31d7e329bc14155406804e3e1af9995661c8b18ba149d36e1317ea68c32afcb87e71f694134209234d30518db83d2aa451ab2191137113a9d717246a9dc463ac088d40722ef4e976b93bb88c3527171a3b79a903fbd8f7bcc87cb866739cd960a8fb2349fe663bd896f5f7d173fd001e35fd5264ffdf3e833735863f8d1f1d1cc972d5f2a87168a70d3541e22530250c37dbf70011160951030791e85883585dac204b96e2c723c98148135590f1e89b5326041933ca294b10932c360b8501662c4954d2c935044cfa22af911205e7bdd20521a5250669bcf4b3ef017c5ecbb60ec6c515becc0cb2692ca747063c1fa8957059c17addeb08183ca87a39568adf60d76bf74669a64befcf134f48695204f2f1506f2e180dbd13e2968b888539928b54c4857cc1c19a0c675ca90d230d6ee9ad5c59234ceb4b09b796cdce285ff66a9ca7b6027fa975736ac95f703ed7aa9fa23ecb733b347db2fc10b7a6907358944de74b7981ed8b85087ba79d1a186bd044edd6fb753957690decffbce2f284140fe2e709223cb8349305bf0900023b63f64b545dd6e6c27dc00209aa8e40a30ab0895e78ca2c15dd5db7c6190d06a9c082c0e2dab216c5b93aa2beb3f0185123f3f7b543024a0d91e9800a155622a3bde9c735a3f0b222aba3f7fe750084daf7c9206cfeda13b64c0c863c42b1b4009c407110204e38981a96681481b9a2b5946d691cda73e26c1ed3a6aa9a4536a2a11151326a008efaa3ba2316e63c149ebc56fd151113259f686a28d45686de82c9ca49a93401117261d9b55864ca07724b3bca8f078a916fe3bcb9f4768b2525db677cc3c794faa9b74299b7a7396a23240e2530eb7bf291d695c0da0b67f24bfd247e5fe0c37e93e842e4dd18c756d99fdaafcb176cba76b286250955b104902fbb8750018834154d464551a176e62133a9e23bd26e4fd74c38de7b257b92f016ee7051760995cd539884195c315e0722fb957bbd55735789dd6a0363f9ac26b07ac69dbcb14848d44c74c164529e275b942e1a79673e3d8f69146bf9e6805ba8d16e510180a3f9391a50a6c64e7fcb71edb3c7a2874b66466e05509b0cc025a9f09d3089479e46d60357ba27e7fb5364501e856697bb8b357c2bb31fbd9983665cdc4352064b2d31cdccb1e309e6914afdd2c5dcce44e66238def171fd1a7ac5e6b7ead06abe2a1524dbf93845f22856c1560f26dd8fb7951f1c914da5af40020c153196b550b0c6525f826997db37dcc22fb6df3c0f09099924f31df645c7b32f4e16c2d973d0afaf390b94b8ebd68873c056d86f4375034cdfe26590af9f21b9b08eb3da452ab13d5d9382c62b91616a2014d9e554847c89300e8454947bda54c71de86d2a3f5c99645736202384aa07ac8e9c0d08138c2161a1f983f7c2ea226b83ef241cd7749fe92c73edb444fe291500e4a6e6a2b310d2e6f6eb1bd732bb2ec3e0c499026b07ee14038dcc800e9a70fe53646d978fbb8243057f105a63cadb9e0f148dcfb47b1b556e099125179780f2db234dadb0f33e91b0d09823056a56ca71394367895caa32958da4d25490057f48b17bbd3097a7a93fba58ca506f66cf686787381abd4f72ac360547050bea51a25ab53337a4678351b61bef483a48f21122fed07d663bc3816faed6d7b374f879907018911d74aed9683466bbe4e23da3c2f139e294db775f7a7b9b5a0574fa57967b158f78504a5121c3424a6c06c995acb1a692624f54becaf1d83c3b22f1d58190fe669a761518b3571ce687dd24765ba5fee341752cefe43b30622a7c5cc834a883825127ec7bcd9d7ee0786f809cd257061675f62d32b8e960987f2e5eebe61d4704b8de0f9e8e7a4ed116bd52038caa6acbd56b856b17b583e28973340465e8d3f9cf0e3b544498624eac5da9aa105d9730f361eff508aa281d27a88325764e4bb8d0a953b2f00e81505cb54b0b6b5290ab0f6a21392b151a415ccbba5683c701dd6804fc62686075e5a764f78baa16b2a6f11a463835260eb568b52287f71c5e1b7ca79befd899b807e54ecb0daa179d65df21fb5ad2c96aaa13cb4793bdf653daacf9de02c60bd856d1e9188e6ddb7e86b64ea68b9eb2533bec64fdfaadf49e665c6c65da258d6d1e218e8e18fac4304705e59d4ea8988dd4ae452f4055532480e377356cd5b1bc9a20ed84c734c594dd9e9fa07b30589f42ae3a1b88253893e2168cf90e805824085585d7e3b8761829c43912dcb2a8d34dedee35e0e012d36208f58b5f95e4ba7950ede83395871da132f56649e92e529d33546d6c61d057d6e5b5b3e5e0922a8f435e4830bc6f4f847aade3887d4f053ac29d5dc94bfad1afc69bf18fc357c9017e33dcf06c106ae5ecb650b98593a1291cf39422a375db886053bfcd4051a2829d04cc5452519b52f265afb3c40c82a6dca8a9546b0baae6bb10cf1036aaf831e71da7eaaba264d6863a22381469a8a9de93b92a7ab8fe1b1091ba763d33e51d3bae24a3feb8c2697e9c8a53479ca15f4fa109b88775327e77be95ee54a8644ff534594f5b24f0815d61531fd9dfd75c623cc2558c0717cac89d5afe3d7165e81d9d0d9ed254cb5d1a09be435ead85218af214aaf7af665161a242eba1e1ccc1ea3afab427a34a627b375c5396ab9ce09a6124f76242abf0d6d253c7cdbb07893df9dc88c39dac379d648f5863792e45763132b6bac0661c6a010e25c739bc1589c224ccc5a8675576a90e18774399fb441659c721d93f6ee02855857db1175a8a3aa76cf98c151d08f21de938ece1f139accd036e1607f716291709794e6157de0c80adfa7b932bdac8b0952aa59a1e410c2dca58c60fa414e04820d8346fda147de9167b043e766a883a5259b37e198100f9539e0cfa96261c2302559d669ba416ce526b3f1e7e5702d8f5dd83145286462f625b7bfa59e3e988841740726e588abc7a9d28c1fa4feacb7f3c7f1a53c1d904e2b478f254f4cab49f2b2eb90f65112b0fb0c2f30e5ad59f9b74c6bd9db699717770457d7743d02004399464841c10b90b6908fd7f59b4d62e55f7729ad12a09d080131384a01581c113f6c7480f203f5a60728d7e5734d112f36285091cf8c66169ae5573d762241919449762b501e63e7e05ff5c21d09c01960b9a57d4c5fd2c91e3e1177e22e0d9198a6e7e0505dfe3ad064e01de074cb780ad2fae5ae66caa8a5f1353e670cb1798de0ed9e640d34c6e454dfcddb2054a12ec711bf05fc7970d896ca7e139db8105e825d1c32cf62b16861ccd8fb0075f6f6751bdbafa855bc1cce9ea3631efcbe437316d5919113ed7f64ca00364bc6128d34ef2f5b4c65f93917e6007a817700ce7b875aa81bb2585ee8a171bef06a006b49a639c133d82b843000d99d2cd95debadae9e3f8ccc06047011853572bd069f2b192883ad78adfbf839c9c47c54440dc5cba1c3dc913dd07c76ce8f50e4fd26e6e6d759a9569d50624c505731982f250f0d5d21a40c0f3cd24fe205cf1d920ce516c14dd531af1fc22422f5bb56fa8644224f2924883cec98e9d2f78bb98188a2d7b55722eb3cdc0f26f0f1983b2ef5d791575294831852418ed2f6f6debc436883f10b7704777edf5047205449c9e37ae2db9bede439ccf0b8be990f46911908b53c18716a07806978393cfcb6878012ea078cf9666652d450169754a4234988da41e5e793c104b5eba497a97a41aedb263e044e540a3080559f102f90809ca1900b2a59d63cea1b2097b95102abf1d140029ead10bee09aa344e56239559aa65e95f2081f39e950b13ab9e40901478a4456e654b04c439b951f9454b2d009ce17e817b3f51b2ea96de31fe976e14f48d04177ecdfa179942e3da458b47c978428a27f6259171b43c304b30a6c606a4253f161fccad6af00dcdabc2fddd8e04f0929463625991f4d60ac6c319707ca104f0d26540c23a11288352f13d6ee88f7ac5da413875721590ba28606cad7dc732a98adc9c29ecd1cecb009346cdc0e300c979b7c57a8520a5c6d6327618f550053b537552f34665e86f44361aa596d8ae2cf9f7e2445f5d5fb59a42e74cc52980f99d2323bac9b18affcb40c3775a4f8e030d61175a85665b6a9fb2ac420a0e6886516193550332d38d816d3d4b96b917ccda8670a95f4a02f038a05c8caf2e4928b714e5a8dd41d490dfa4257b740e4aec5fd1cb53263871436736684c0cb947d71b2d82d5c04d71f8f6b5914d165696e6c85a0db6d153a488725d4e134d13636bde3909fc9836b82db12e56ba3c2b14966474d6c8dca11044826b2d1a03c487901279d0cd2be57fbcc423fe7b6d0be6967efc8f064ca637bc5de9ee3c81a884c1db66b2f421a1b9bc37a2bc11a8c7b6b6ac57e3171f66c05489367d7594eedcce08a433a404031a59da8f50594ec7ccf5b2ac8f9a64c5ac2f4fb7efbaffcd52f99533f644b9da0b8aa3103483d4c3c7afe05df7de779d641d445241840937dd2c049a30ed18f6c4204fde0fa75e81dc5d595c39a73ecb277f08a845f984a6b4c394f4729f61903e813b4dbe55ce4e58d7e50d6dd87cee3740a1bf5aedee9a73fbac41c2176249cc2870fdc52ebf9e2aa317fe44009246a3a2f697e9171f6056f45a040544a1125bec04664211a4c2a2a0fefa11130041ad903897bf24ee7ac37f4160b483f5d7e3a2711d6a38217cf57cad968003e3ee7e0aa69771557ac2b6d428dcd2e3b62fc972842e0e1489e0c908ad0f60d1252f604606ef74d20e3f728ddd383932e582795bcb4ad46bbaa1facf45511062954dc1b8bb683c4d66db749b7e7a75b3ff2b2f13d51979da3e465d241cef4bd4a232f888997822e6bc4df72f6ab5de7c24f58b37757be1c36e612c9dca434d20b8648dbb215edbd2ce5a8cb51b086a601b87cd65ef2b0e8e07e52e8ea11a48fd5696a6316e5b2273ca5742ccc696ae8140110291e8b66f39e1856b18e044dda1cd0b02ba7d20d5486100238688969c00a85cf471d36ed079230b782184d1747eee21b7e35cb8929917dd603324767d53a98998fe17aa75a0ef619cf244c750ab2fcb9efdf47b4729474e9cf3e9500a152695872a8f5d03d4c43af479ebbe937927c3aa05248677dd36a1ae0852668130e753a2af712f584293dc2ccd902005795813a97afb939eb942eac05eea5736f198c005130f8f98a7c4a288f85c27b82980e1e5e2c3c33528f94d5d86ef09cd9932545e3b98396e8c78197baee30969ef0880d12a04f1b25e51507027e852fa94dd7e9fc9a5ae9dc060d57d9e6e877185cf632ad3b2dda868972871708aab36dfdc693903079434fee56ff45918f040669a69a2b0d2c2d1c2bae7a0e9203477bdd07e33f50fad9e9bd3f9b03e397af858f5e3ac56a90c58652c2244f001ba1281ac9afb657d5c8f8aff3007e5e9c0164cf15ea4d03c86e8bb79e927ce9610234a3b14c2bebb9e2eccea1dadae2da9b896875b38b0c94c390a9adceaf92b64fcd15ba2dfb312f109df2f422a30a4c78e389091feecc21c2e6b9755c1bad32cc793fcbf38e81a857e4552e8b03816e158a5e2e7ae4b23e50606979f80a90a7516964658c961bfcd2038053b4ce2bb444f913211be1b8266fc3bb7366a534d0c9e501648aa182eab53f2286596b54ad4b0ed3bb9993af4dce2bffc8026c1bc28d879aae27e2efb362c99f86ff38538bd8c698a9c029d73afdc43e5de4789abc1fd05858426f4e7bc67cf07adbabc1758a26c13ee4e65cefd2583cd8033c023f509312ce23752c595e5dd58696273232c519a198e1ac51973f74754099628168dae8639486c15e3915639d839abedc4657759ade1aea5f8d307a16d7356181b0344fc7c2f76c22294b476feb647bef1dad98fba9a809284c574157a05f35a6092e109913b395d17a5ce2d9a750438f79bad9e91b1b28121d94c5598cf83a0d9b892c19d6916cb1a6aacc83eb7e92fef646b1493c2241a846cd6bbc2bc753cdba0822daa4bc0950418a094ba2ca9d6b9f7ebbf596f476f683dfedc61e8bdc0822a2e88c42aa4c3e46c8318e222ca4738b063329d25729cd5b5e60b0b31e05c075dd145772901ee958904ff2a6a4e15f9197c34384691c53498904eb6c8ca8bb89294df53c79c07a5c4cb716647503e31707def4f97ae039432ab177e3cc858bba62c19de725f7d5fa3e192468e49366b2740ee98b0ad14c1a2cf4ce2608303b389b20b0e453f6e4f24aeabcca056d8eaa0ca36eb7042fdb8e95b05ab2d9789837ab90534d61cadf7215e2e9158e6d377939ffa91bd29bbd635df3557a8174297698aa46111e5eff5498accadb8bcaee4d6b1fc5de3a0ef8ef691db11cf3ed96f3889ad00a05f8800ee87a0219cd48f79ab8c80d2abd4c6bef8fa0ac4414384c7d725de1ba0ae636d7a1b15a319b594a66f82a815b5198a7b4fbd30ac5f4356482bb66f4a274308dae7c10cbeb2e7d7bfbd90b3e00a0f2600d8cf3ea089566a48146049a8b6ee263c26fb4b9200865371724dfdf3122996debc9a84c3b0372f49aff224c259d1f28cfb599843167be0ce054fae493392c6a26aa2d1f356d5158bb5dca15bcfb8691f6f3799d5fa3b6a2eac40cd7ae613721fd56c3b3a8daba6d07c606bb8ae1980bf62d7455bf3ae4eed7de54cf910df1cb83c9c5fcf494799fd85f6539594e41a12785ed8016b850984ba7d6d0b531c34c110864e54a8efdc55c4742b22c46c671badb9d59a4e1e4bf390c1647caa4d53b855f6eeafafd759e53f64cb20c4a46dafa8a4546204cbf74172bd508d481044eafe10ec282fd86b66d50c3698d9d4dbf3c9feff751f2b1185320c6c22a6bce0e6fdc07f2dbd866c582de5edf84ee24849eda10b7304fa10b2d3391d65037bcc3a069c9962f9def01e7a8bc13852431451c2bd5d8ce82bea21207ea427b1515a207a5f3965c36c546dd6ef6baee5d2496285d85162e97744308a3d7e035af30ef74fb89e514d8232a32e36b9dbc365cb32327753f2c88f4617d519fd3a11026508893367163a6e167dcda0ea719b133e6d13e1d8739c6cf06fb651f999b6c745768a0366384c1a506004b23f70a078528f532b8d00bdacd11062d79a21f680c3c5b41868128f6125bf1ac282b802eb13cec12ecce767e3c68ca87c96a43b6a02881677e22580340e93724b7a30bbc8c38307eaca979e9b666d400a38aeaf8c604b5b307b8c8def0552834c4c8b544de28b927ac6010520de747c3435ae2c032546581dae2fc948edcbe2413d252eb4a90c85a251336a55aa029577c334ed3d335a85749a4437dd98b00afbbdc03c0ceb42d7d3b6a97435c048ed59e61c01e763dc50609bfcc107638d48e90399a4f33a84c07c86437c87fcd92ee178abf55c993f1ae6d619a6979d590aadae9e2af410cfce36465a615001f0593c95447aed11f0e5b8bdc1a213a000cb8f8f2a8e4c890a894315f9c4e9ce325d4abc9bbdaf7fe40203939e007372712bdb7c44f772951fbde42ab57464503bbc380a64f41fd2055d22d11ce453245bb64eb8890bca04c765c5308a4ec95a06f05f64f3a7386f8cd77e84a417a9c6ac01d72e4146a13103a4bb8464d1dd2e478a7e4a7b61f5aca2fbc249f19384c535d334cfb307a55cb617a821eda6e30eb4822dcaf2f7889317cc2b2dab02ef1469c7df2627a9c086f5a5443e6b3fa0f876f0b9a64d6e4f7780ff54d2963f6361dff6149a4953d04b9bf46e6eb497b3a549894b76622b4bd2192431e283480638ff7f7c25797c7f5289d5451a1e0248e969c8f7fdd6a392af3b23189d1bc8f06e6c467350ec69a29bb04354be61c9086b15f61a205c649c895853c7e446f1b3ccf47121591254bd5ee805712193794ccd016a9b5594b92d129a934fe8cc5feea2239df6e514bb78ea2f604ba5a2af8b05d4633dd586fa79f3dc3da34b32750d0f10c8a8b4feb74aa0b156b7d63b25c16a550c8a47131c6506a27d92a80b539af3619fba937eb214088122bb1002fec8a111d02d4eb820c0e5720ca0dc66e4809b32281943704841a274aa59d72249a62b52a7b98243d0c6221e02a77dea2334cc35d59d24ea370648d100861bfd2a901e130dff5f1051ff0c9042e8cbda7dfc4cc650eebf4bc09e17eb15b7d423526dfe5d6e81ae91b62054688ca7a341514a64f0f8733b7e8467f717ca3fadc428a2abbde34e0cf828e9c22331f15ac880d246e12be8609cdc4776e22531c2747f50fc64c1de8ed32a016a2ae8d922486281bfaa151be4fe0332ce9564b9093cf29d6525f900ad7bdf02a2d38ad9cc1b5ec90e7d8d1590356167cca5e6e2ba4222b61d0e8abcafaf0f58903b4b93736db23145da9fec529512cef690ce0c56f79330c8d91231c92d1025910f8002fdd0ff9d14bfb79733bee40befaa1d7576c5ff80d7e8d2bed43da887ab71cd85732ee3e2f88f36671c03ad655d1b78f4a0979847e214f837867dc114b09d1ce523e336125d29c6a6270d828a730762eac6b864a23b1f19030cc6de7c0f4d55ba61289b67a20e215a7f74eb75e6cb459c25675e023a3ae6422c433c5cada5eaf3ced7f72df536218f40cfaf0d12e50c53a9414b2a89f58c3104d22892c6e81c9191f0305c2e4c9a6e2565076aed73cd92a06dcc6dd4cb9cadb8ac6a0d601e850aef712cd55c59c3f1ac34a95a605561b2df358e9a4535f037bc4a3631917dd2ccc402b7a4a1bc4ee221dcfcb0480ee4a2fc53d743c769cc802e835edcc5817e1128a5d6dd4d8363d6cd93836f40c9bbb5f2b3111ae1bf55c269d05e586f02a7b6777a21cb80705245d88557451e712237ebf19b1b830ea2d85fa10c728066fd6148e23d370dff8da60e0f62074c96f6b3e25c01dee2e5c926e1c703c13a940630b400b36f65bc68e6461222e97b1c966f49082110070b9f27e7f683be714b802bbefb7ccb9efc113b1e36d9eb89bc3a98b32c1c1a8b61bcb3568478ef5ed3e002c4dd6c4a2a9efcc96b152cde073bf02524d67c24afe2c9f6776346b8613851cdd78f424dc74cb674ff3db782b6632af92cca726f9dccc0f3825bdfacc34b43b85ee3235fc71ad5e2c9708993ebb9861eb7630543628b6042b6b8c498979ec0a0409aca073bfda12c49f450fa3e8e8ebe2094b469d9eca8940f0a703d3f0d832fa78af59075ffd14607dec30267e34cf9aa05f33aaeaaa3183acc461376e272a7aaddfd62bcc976ff67671b04b00774a14b1dc9ab40c368cbc53e06dfecfda826ea2679871107642a22066161d3ddf7ac6b4f46efcf8dbc7abeb3d80a9d514f516b05150640bdfe9c2b47458ce1fd051be83a598779e26aa22479c8ebdbdf6ca0a493636fab502fd8e9f6687b5cf5cf9ba0eb9d89b0310182733f11fadb4a414a149b7cfc9ac0cb53ab9d40628a393acc00cdc791f7c47054582ac82390a9b277be20516588f26d607ca9e3fa247629837522e46fb834cc979ea7f939e381284121eec20c47434024dbf46e019490040b8bbe0ec72b080893f849f13b637e1a0cac218691318c773e1376206bebc501285e5346be397eeb6b9be137fcdca07c7c2d0ecd9e769fa3e48a3e1901c19248248aa736d5812566525a7869daa87991fb666deff2e786eb22319375d90b4fb2ca68b5ad4a685a802f2ed41c44e21385eb034555ab6788ccea98677619a008214c8afc6ab7f55c1bc31ef76d70795bb5dd16665e9866c7e8aff8bba6386c1a88764306abf9f745b710b804b9b75b91158975a3ce7c6d8d6f72b0b185ea7530760ef12a12bf851c4e49074cea34881b69aba64857257ec38e5e9516258a8d117688158b4d8a89eedb10170c29605a23fe1e7c01a9bd67b1b376eb4170c07998e9316c3400e1833662b5926dd1e3ef9990c0f64a0ef45362337321247af9e80316e37c60276d0c1a1c7daa3d908105e6a65fc4063a6bc4ba770bf19c6d49b65c89d949aa19cea981cdedc796f88694fda777bfd8754cca9a023013cf02993963c22cf727be0a5d40e685b2b7c22fe702e186a639c9015dc1e8fd4d85dbf4062e1b14403e664981c3292e8fb787823da3baafa6ff6139ce40e8c14ccc73241bec1ddf173250561c100c8fefa80934a5a4a9309681f481fe454b2a7c19c260f5c52b62365defe6606d8b84c4e57dc6e241f0c840a7ce7c7845112b4ab962f9b2f39c6b5a055774a9fd728cf120836328ade5c0e7a223dd5a3d1d9ca052080e164c40caf7646a6dd61d6475cbea04f227fc91ccc72e17eec0a28216d0c1543a6497f3583324f08bdb4a5a40ad6d9bae8fe0a26547574a6f0b486b8d587bd7bdf48b12e05c778e9745b3acbbe2fa7ed43dd6f7f9127aa8fc018e876a7f30b4fc07c204f0d3abd7e48a5dd9460f05431985bbd6e902f4ce06bf1847e81c3a9211b15f944984e020de8981f7a00f46af4384810fa3d6bd1b71d759c25159dca041912c421eb0f757b3e7a4d15adbb26dc4114d8555a424fb82e2d952e46fc711ae18216a088031ba08fd70a8eb84539ea8fac30d3df6134b872941f302bbe6a5c27b430dc052a97b289bd97d98ba79213893c63ec0b78a9ec0e7b1f8080ecf64a7eb63ec47b366e89e5b4cf5392d6c81bbf9a85019b042868e4212bf0a5d1078f16d432b961d69de37c9d5254685dab8e2a5d0cf9031b2b04826dad3a6046711c5ca111c1bbf6a178a7aceee20c0b8f0a0c44bf1ec8351999ee51ae9256af5d15a4104830741b8e207ac3e9a297aa652aeff9501f0b64d6b879e1ee2044d6bb67f0c133b5cd460d6ab58509cf151027961e3d592b0c77d27f211d9c5df2614e178883ec03b447c078de1b1e8b3c605f96635cbc715295c5385aa5b0fef5a5def6721cb88c7a5db8a859c1eab447d1ae0565713f874f5be58897344fd014c3d72584e23d46263764fbf3c9eb2bd8275bf7554937fb4bb8b4e6445c47962cb1adcf0723e84b209c0be37b78fb2515b63d6e0ac56059d15ab56449074b8468db85b3ed3038621c58c02e849d3613245290ea7639a0fc05a9f1630d976e62679b5ebc9faddc1986a0093fda1161c62b255d771e4b8bf3025da04fb19ac6cc5b362f8e8919cc452f385e311298010fa5e89f2b1e40b312eb05c4c19b98c0e0f92b7c91f95df710805ff412ac34a942e842b9faf5610cef50acf587132fea3ee104abc99e614bc76ff9c5f6560886b86043c3a821ad541cd9810f0a0dd5c2899fd977dd14e45e4af8634eaeb09658bc1f2312a250da426de3888a46afcd878868542b66e25b0ca16fb7dc3ecfaf90c7452fe22e9ca399e05fea9b5b3a50eaab5a36f8be8ecd8280aa82eb9483a564d8f709a81dbf2b4b4409e8ad47df6c5c23a83e17cbc20ca5581d70717d1022cf4e2c65cfdfc9447cda0db1ebf54d58974bf93314be0c295f7bbc64d9a112ef5d6e3d0b954fe8169068de600b7c7077a065ef8fc313c285a8bd4e9e6e428ec9d76328588f0ec3655a4ea1785e692feae3c507c64d5f6af6ed826dad519568ac860226b7b05e637d5c2530cdfc1a3117763c155fa89c08439dcd51d8fd48227e0d5950a7ccb2ebaaffdd110efa23c56135ce30c05b445525ab0b5a15bf5077c805443d91e5ac04cba80a43292f9370383d47f17372eaf790954b511f5d5d66289edd2947dbdcd0a64fb7606754669aaf8e11f635b94dc04ee6e752c0641b91fa779eeb45a6619eaa6d7d45b88066a8be37c359461139dc06515c677529ad73c197368d094ced68da584739c855ae8cc0ed6ab4fe45636115a29c06b9f3d2d91301b40310357f17dca49778884c96cbc17d5cf755a5bd2db46bab103ac4b88b42eecb0474c5a751c1da93db12dbb8ee64d48e0f7f985494eff36b9f2f3ed34ae8656ce1323654a94c808960bc702622ec3bdc7fe34db72bd397dfe8c3dd7b2ba8928846fcab51f5e5c014c70788ebcf90ec9dba364a0edf726bc50ec49d52d4fa605e063e2aa0ca07b234d57a3ab5eeb26900f2f27d756061113523c22e4c3676b08d9bafc68ff01411c7eb53a0dde97d59e18c7a281e35778630dc02d5aa4b1a360605eba19e7d99b3f60c33a3b710a24f3b9ef5d2567c1dfc97c7c548190127f3c32f6b9942588826c0651792f599e00782e060c81f47a5a656a0524e861768e53b233f45252d2c46286d52a1afe1285504ab2d6f2ff39b0a6245347bb322c439eea29550ce9e227ef359a762abaab65c2c6e8f28986e0a5a771ce22f93ed78854341907cbe1de2d5121348de14e6346bcea160d2fff05c378465c65793ecd9256d533673220835e7771d9ff30d7f1677e1db58b34dd3776e77d54d961d4451379612d762d02766c406d08959a5662eea6c361ad2ff0e654651479d7b8acfd06c6ea0df229dca9c3095b809d1453df9982b5d0aa12f298e40eebbfe6242917c4e921221f27710848b15a70369c94edda8b961e20983db8d241f60e18de3c9f330e03d943c41a450feb53d3255a76f5995654c0346629abdd56949a8662cb8da24d68e810a4d2aec268ab111bf36850da775a864c7bced696fc79a72d261815c4960822960a4ff80ebc987b2f7cc8f957c32864fdf2422831cc73cdac25095b60ad4b70353522b59d0a0b42a9a1408cb5f7d1353d70154d65b3875c8fab0fd39186b09e2b4e83257376c863c175bf223f6ed2043991ac96de100d1d5ac85204a78c39087765eaa020c0ad9c72cded4e498045e7e335405503a5b8deba837371f4df14bac8448557ab2b1c4e487675052f0fc39b13f43dd487287f096e9c212331423beff23e80c7848fec38033b75a05af820f9d01ea344df105b3f2d24a1ea87e96b7e2c5bef3d00336cc7d5cd5553ff9d8e037f63ddb8b97bfc81b6b05cbcc17a672a316c8a83ae859c8b07eaf40e933e709a948921872b2d2a33dc1d49d78188736f17ec5d9b28c13c568e6feb9e178fe1892ddae40796915cab3d4f4e7c51ae32e1dd75b0f0c987846afa893531a3bc07f9ffbe6713371c7febc775ae52bdb35a59ddd5b6287a073be654d0c1ae2125bf576b6a889f4bc1a5b112827ffffcabb0b48129749bd74ec25fd85043181548007e7f2eef7e432bd741d62acc48f7dbb2e99eaab0f7bc425113cf88d5e98adc5cf27c361d876e2dbcd02b4f262972be183f4d47914ae80f560bc83953cbc0d5649005e3d8aadcac5ea42773acfc2622fa006a486067e1430cecf5ed98a9dfa9f6f1b2a0c4d034e0477136c955d84f1040f3d535247d0db0d9f904c57803ab4843a2385e62ff8315b19b3f1f021c5e45b5ddfb64808893745b1b20677e5137afe3bfdea70aa8fd5463315c813b56269e6e499fdb92e08106697e21da1e495f5e60c3460bd51c56493b20f35a71f562889679e80df431258e80691e9ff1e75d9f36fca3f4447f7776991f001315d324337a8d959d03eeeda5c413667d8e2dd563b980a92ebb8097f3cb70d0efc52dee440a1363ddce9858240d6a5385c1059d1c7cb6b8e83cc887d71b1c136d424a93f49f517a22e66e8635e88dff047a3f1154976bbfe7c275c25984586aad6996b27640f27ec4137a27819e134c7b7c937467f8e0e38f645d0a79b4f716d88ffc9775f44d4f7f09f092b3658db672bddc241230a8a961768f7b9687d68f2436f95c6be385a5f5efbaee9217fdbed1fc21767c73026e929c016dfaf1377ecce7ce6e2e9ff3080531fa107de7b58cc68805a903781368a52c2821030aa2ef8ca5c0553099a6524a88cb34d7b246b81da605ec9d581cb8e1d6a6427fc096fd17ef1a9b8c51ec745157319e7b2dcba553e2fd68ca62ed4d217f8d4d94897a18a465c328b1578d5f957383110b969f56485d64b39e1a8152147aa68090b11ef7c48d01411f4b7e1752e401078a62e370c14f431b92642ce5688c62619f0ae0e9ec34bc6e75a1230a51c60d5ba5d25895950523b9c6e28c11b3c8153e91b2ed5e8ffaef7025dfd0630c04871027bc8df334d3224503ba89659b37ddf44bff269127e3ef34c68ca61300cd29eeb5dee69405e368acb99a81f43bdf78bf8b86a39a758ce5c068162bb916c90e66aa7cefac368183cf9e497f07106cbf6428744ba41d84fbdcca890a1bac7d1baa6f1a7bbfc853c5d0cd1cd68d4c2aea367a4fe713103b4f91d27fe2ae2d5228df0ba1cb6ae971214bbbd37a00483aee54e45a9862f9a1df3b214912804fa516e1e997db2ec9efc8ae0301a0408e5b1614a4f603de5dee7227a5e8e6c56aa7d24e18539f6d705963ac21e53437e0cd066472447e24c7bfbb319994b41c85e06d5acb8cd9619a44cca440c6f0fdb7ec9ac81401d8685109672b76ef23d4f15d023efdbf96dc29489e2cdfa07b68f5923523d06841bb80117bb1fbc498d63ac09060bfd429def789d8392e96a3653a8472efbad7a6cefb85aa1a96b2eacdbfd89d28c2b388ba8fe89c0e6c8f8fb02d9569f43b718c1334e2e6570dba639028a986c3e248bb293ff6028c2a4195f4eee1d155de73ebfb90896cb1d620c77544f2f8de1bb109f476685e8e3a524fb1bf40f2c318f3573150bc754da2c051383e45e83093f74e0d7d59e6b848ea48f079df612b1c3ddab0b2a002df7f5bdda52c8befef55e8a4ef268126632f542fc982fa4a1423ab4c5c36bbf270f6e7b4b735675c2cfeceed8de18edcd14020c6c6c53496626957d0e9b949f630ba21ec8ab9f1cf9c1c361cc66f9043e8f903f831df040407566f97ac770285a0c3ecd3d7cac194670cd5ecc66cfb7709d968a49715c2dafd8cf487d7725485bec013df1088175be336bdafc9d006f501e7ba2e9db0dcce623f7cac0750cb3720b1bbd6732bdd055bed3fc4c85de312fecd2f0e264bd0d48dbb36c9c25ce1f57514e7d819fb446b6ac143b8d7536927ac4d138bb7425da9f6142976a99c7c410bf3ce5d8ee4d3b86ac6908c7c0d60b0b336e57014f8c526608548d6065e1b80b5623db8ef04dc714eb56e5de5d0fb95c188fa9862c55fdbc2078d50160ca52e08848770fd4f984874c4bb35f87020d0b34b2b3ba24f02a0f50b2a9b8c775e85bad0a8cce1284088b2426cd4a4932ccc49dac0e7962d15f294406f68034d1ac14fb22ab675c481553cc94166871a11fb85ec3d035375438df4601d72b836883c250290348604650d435a47bde28977ed3a63eeaa8af895f84f26d11bac51a9729acdc7dcb54dce8a09bcbe3f54e2cb1ef16af7b9c12cb3fc41202f6f00e18f034143495eb198985b5c621310fdc175fcdcca8696f8c7dacda3eb61522397995a8b6d8ef2e21d47b08bc9699e405ac39c6a0a3531ce0786da385cdc73e9356513259ccf63e40a89bb30be2cbb792c7f794a63a92875feab222eb369f235cbf0f25c4a55bb66fe387b52d87457710614d61fc5d0098561e0fc792fb4b532eb7001efd50537fec88bba3db04e96487dab4196a4a9f3e5dc71cd0de5a19882377444182be697daa42507e1f44557fbf6c4a4353cc1d01bf4ce1ace6508a09677f858665bcaed81850c82e8c1323b41b6c81bf4aab7a8d69a9ca0bbd4b4b3b79823323dfd88023b254b4726defce9fa2a9674b00a48893cbdf682d5033f1d14949dfbbf957ab4fb97781c06799dc9d2b87ffbb2a1004922a3763a4cc6bf40e4c502535e57e61ec78276fdc19628b6d6cc45d6bc9f3f8d6de6bab6307de1fff95192f0e2e739f392e3fc995c346a3e71468fa61ec4ab41d0ef0bb6f44b1b9d88bcc9b03a77529d494bebd66a98110d265dbb92745bc5920dc8dda300c63abb2dd80c48a6b4b198ae88682d914735d3d173a6d7c18832718f682831791955fdfc3acecf1c241f5c9c440c787db4c4bd57eb820eb3797ea274f578a7c8b534361269d68299d3cbc4e371f7e1a48dace6f07c9a8b7669bb5301c0b8bd88b97398f9d0896984a0c06c7739166cb3a157a4abd05bff1fc5dd876419735a3251f44a95b55edd5c17c9f4308ff35beb22cb4352d7362f6c9e4e2a68df3cfb85f4496b859236ec17b403f5040d309448d8eca8def153b8a65091373c0863217aabe0dd9e1a0af0f8b1ad7b88c960d528856e3eb8578781e7050b5b88c0bf4940ed201f95e9369a5822b3bb77bf04baa9f958dcf40f462eb6c52cc57892c48958a9fc7c71553f2dd1831f07c9569a51a41a4d0ac61ac1a4a466eccda466dc9f0015bcf4580368c16c7fd65ea00434436817d75d13c32611f626d4e98d65e9cca91520b127c992452e05190d92496c3c9a292191a29c5341e33b9c16a17a7b7f803cfac23236b04ffb4fcc7d569172ccad7d2e87785bfebdc55d8e7cf84b28ec768bde206514fdda0134cc53a071263a2885fc251d7afe43212baab8a80029aba10d5d1dbb93590904339e212bfcbc9359b42dd844a133d15efafd56fc8547bbc7d6ba4bcc7e77935d66dafb56709a10cdc729fbc56fcc644356ea7feb1496a9a4947d84e8e7cf1afe32f8f3d039f2d678ceb2309d2ddad9c39bef2c67897218ee8028428ccc768df397263f33cfd6cf30cd236af5f8274edab5a181ca67ce102c926bcfdf12b3a3f2cefdf49489a93360f54ef336c781bfe8faff7d6812558ae047d02fc87e77106b583d2ea1104b6b4d65dd22badb5aec5fefbe25e7287deb4d14815a74f46021919d1c6119b601d3758261784e06a39913f86f8e57174a9754cc2fc87eb0aa6a537f43abe8c1df88a4c40ae1b9d9af196055a97cc8dcd298eb9e9db681fa1f18ec4f0ce63d97e8fe6bed1105abb08763a3458107a8c83d6f8e1273637b6bd4e9d4eecbf69c05f8ac278b448457726a8c6c548a868a364c8e6d36d3886e25b0cc0db047f797964cf0db759cc591a66b76a19baeac4355039f2b4692e2de0e23086212e1515da1cd535b53da2c0834a6be1221f40842e2cd4f007a7dda3ed52915585784b6b505c0a12c2108163358e4479097c277916696b987476837e473d35305b5d6709b1090d316fd0af1fea694e0cbf52e96bddcba18eeb6a7c8e784e1806e5beb3889524922d9a403530af6969ae3eefdd8f3040d3276966e79fd1433169f1bdcf174c52290a6d8e3bcb04f8581e5e3fdf177e2aca97b22dbaf20cb561f68f1456d7fb229c387577a5fa205582b2164b452c186d94d9851b3a35ed160ac38ef6094778dfb27647bcbeed341cedfacd397ec3a1c5641af381c8e5b02c2aceaf52d70d7b4bb0b78469bd7b7071038dcb03dbc84ddbfbc9edccfc1e1f7af96aae2bdb5200f5718e99d50e85a58180e209bbba2db8667c5d206b958418cda2d5b88dba8e943d6e308471013a678911ec9119cf5bb8f0d2f4afb34116146f29aaff5bff4e62db58e67454bb930f01bfc197cafa1604fd029d5cc95c10ac280171ec04a7145cd61898576e8661de8739c8ffd257eb638b99c1ed0ceb58a4b18aa241b27c9bcf60dc8067b49b1b33a7944b73397a88560251f09f8d464972b8044e5b6ea536b84ff376e97e669e1b1191477ef4ed13a3b3125a33d07ba5f89bee88c6a9c2d67849acc7991201698ae27c4c0b8b5be872d2d6cc7de0f9c5dc42a34ea08bf3b60c0d547659e61438a0b6fdc06c81dd3990b265e23fa5769ef31202f192a63e070331ab01b1ffaef737a40d6fa6f59dd1c224bc6fd4872a1ccff4a304dae56e57d15a3918f53cee790ce69a40df8a540fe4cbeb8707e8c61dccf4edc31fcbaf1dc6476a1f52948f3c9cf874b9e43d544a53daf281f118ad6faf3d85d541e6b4a1b75599cfd9a3b199bc01bee2ebd45ddf44c883527b0733cc508242dacdb0572436540e02e6ce71f7123b6ad520b234c683b4f1db13219d41cb59b3bd21daef63d31b6c30aec734069afdcef3d346c242690fb9d9d9b5e47e92d9e0a9c1231a8f88dce520b9bc262b56246a65f6676049890115382b484dff174ac596990ad8a76ea5cc44fa7c5602d720e4c3652c20cd9bec343d3eee876ee84df94840d5980a8fb980bb8686687685d661c5b7dadc0052942e0f9a8ce095ac989dd04e651ab33568cdf5727a1670f6bab84151367a16b82f77d9948fa121d17c2f3f91e479d0a87214e6ddf1303e65fdd5acfb695b30265442c32d7e3ead4cc4d0ae4a1db1af4c72d9dca12282a37b94a628b2c235ad6a345d76f11d7774bbb8f4db1d1d6838d3748d720f93bb0657893766463a133a146ab99894d0de4b3d65ef6b61af488ea2c2c122bd7db44905214ef9215cd941d2c9af8c1544266dd5dd5bcdf2b20e26ccd98655816c05dd6379de4621b6a8ef3fdea61ef14625ee5c90fc8ca5783577fa52f3d1246e83fb446a0190c3058bbdaebaba765481a73248693d4f69f138072d0172e17ff5e2639363eff795dcf8a17fbc6a0078c38fda19079f5cc596d850a1b1c4c924ecf33508ebcea537bfb15d7c1c8d8614c0c39252b4475fd35a52f2a0968e3dedc4a6b98637da29a50f820a725ed26f7616dfbddaac89fd2e86c2e0a8e54bebc07e28fb504ef474a54e3e3428da5402761417d4ea530f2f67ce0a5e6f86d0dd532994ca0f6ac457a066a76ca35dd91e0650696532ead47723d73445716e400136bcfc5153f572155448a81aec45ce0d35ede14d95cf7be675114f27bc7de1b5bee8a7a237536fab65cefea9a9511fbd18ba5922566a930f668f962efaaae0af22aa7afe383b0eaab62534e1f9555ae8cf85d715be95b8e6a05b7e42b495508a4e1a30833fc1fdb2eae18ca6e6165cc434adc5f7a34c3d99adb145d284f4fa835fa1626d699fcd1cfe90009cb3861c332617208c6cbb68618396b3d709a19a755a076395ad0da3aa9b504ab15fd999a36162703e86d0bb7dcc67f04bb78d06700bba1c27936cf7bbed7d9b2eb7fbb97ec0aa1e7104cbec6e8e3784c8c8f3cbf82a318a7e4032e4a649aec2117edc8dc97d50c9c43e7fd2dcc7b9a9c978737f79d6494893ecc7a4c5f4359b15e6c43649004e306c530b7b22d8f8dd45e29147e8809f09727f10cb88d2d56733c33002c330fcc6083ec3fed54c6418a66658865118b16618c661d8e4af661d8b2113ecbd10c939ac43eb69dd28f5d1456cd39d9d72ce0acb0aa8d02919e661b56664f3a3ce65d8f8ba73d85d7a822c03bab450e5969d7e206f140cab77ea947fcb445ab23da2b51a3f6cd14296a2326a0909d2a1508ddbcade906beedb8190dc5862f66c36634053e3966a06f05834ed4a7135aea9a4cdae7d88a96a6f9b3ffa822c36c3e99d1b61ae6b1da9cc6d7017c28f0b381056c10ee1422322a2b8ec5f2e0b3e1bd7da8464d82379730c551c262b318c95bd9c6c2725e7403f928e7e3525e7a6c8bc89db26d849032bf62ef9d49007bf75079085491806c8c4fe1c370b65c69af704ca6b41824d3cc1751bff601a6d09680c9c8868ec0acde4d2999d89a2689a3d46219af7d0901277c5acf2d3cf71c3c011362ff3e5fa34757914314a84d444fba98924b27b2f4f2b4707e78e16f338a5f9eeedc8e4637b07f954399526dd5e724c880f1cf386b427b289c4094573bc5de774bdf080c84b3075a006aa23d72fb0890c22cae93ec7708fa91f6c77a666e09f7b5e7bb33532c80e38f1431cfd0b6322e10bcc5c1bfcd7b2ca9662221d5502850f21495c9e1bb462af750e4b9a2a6d29679c6465b74125f59d60cd29ca6ce17fde07105fec3e2a380f285f6a4c14968ea2ce09dee86615ce56fe6c79bb269ff19057e8ef5c64524676578855328e4f99b9295947911cdb19db9963470f9362c69fc0cd7c5ea8427b0087ac569db78f8603db02815af194446c1557d1fda07d041f328a5153151c1384be6f47d7f53ccf2a785e579565cff3bdefa65bd1b454e1e57210127273861087963ba7093fb880838baab19b25beb9b1558b857e5ee68fe225a3aed9ce12e6ac7b7c011387a436e2afee24a39fddce92f6f8e96cd68a5fce190d2c5c7e92411878a7ea52fc35e464c41f1e087be09a9ba64ac03729f8957c0e66e5ead3c5a34f92f4c4d89ba89afade372b9ae3b31d5b79ad5697f4439faf1119007b903edc55869e038a9ee78cb42d27e9d089f33fdc7da1b3a430e52bed898d0ef26e8f0a731a907aba6ca5744b798adfefe68434f4951f93cceabeb8836ee59f06372a471cf18dac67be3421bc69161d7d8345e7d8fb8d278527a8d01e8fd0526adf366adfde4bdf2e4bdf6249df0ec964e5dc404e9cece16f9b1d3b96ba7d8e9b59df5a38a93ad49be49c9638ed4a96c0928f13822966d5a33f6d71a5502fc7401f64dc256468f5f7943614de5be02515214d85b58154e33055f6a02233fc26b69544886c05e112b3d8f15cd764a030637f6ffd303dc9b9a1a3cbcf9d7c4ce8b10085f09a826b8bea16ae6015b2bff75b879abbb37106cb4898f874109da566afc803a4150cb0ed99ae42822fceb755dc701eb87925d05b4fb6e464073e6221004882984c3315a460fb9d7545b1b391f44c8db44e9a84f0789c5a33013bab88eabd99a767b036ab1d1631c1011c33b4c4c7d40d6fc9ab99d8cf28739364ac337ef0cedc467c6f72fe0531a3be2693a943d2da5ae3073d0a904939f433c4851493f7a669e39efa86d006a08c35ab00c3f60b24304a5c426198a0f20aca6018e63ffee37ffea39ab7313dfec7bfdd7355fddbfffcf77ffd97fff75fffe5ffaee6e9f85f559a97fff87ffef55ffef18fffea8eedf0fef31fffe6ced97cccfff6efff7b663fdea1fce73fa63f48c37f0fdf655b37c73fff8143d0dfc17dcbfff98f731bfe47911ee93fd36519da3c3dda7902ff73f95c55ff9e37e9b697c77f9c47f5bfa87fcfd2bd24b0ffab8068c9fd1b8c188691528a618dbfcde3bcff04a6ffc38795dcc135ff34d6bfdd3fb90c93275e94074221b87ecc308cfc27f231c31f1c2b8ea426885d98b5fd3f4b873f5fa5c2308cab4884f00354d987038e611815ff63f4fbc3437b514f5b3181fee9df9fa5fb1f5026f883277135b8425c8cc04dce300c87fedd80fd8709515b7c5bb35d31397fc2aaf997aef0a7c92a427f87d198dc0902310c03ff0165f73f7863f03b38604a10f1fb83c75f7ff7f3d719fc9f48cd9a53260f23c330f61f92bf49601805cd8783c259a419e2d0611811a6fe1afd31e5634b5d8e2e959a21761826cafe2becffd92043636c15cc59e4620cc3167f9830d3fec749ebb9b0f26f7cae18111846fa7b18ecf7875f51af49ff295928627ff8c5cdfdbff114465198143ee3101e18866dff388129fe98da869512be11b1578e3a0c23397f9058ea8fd50926a11e02b9ac0e7ff092facf14f70794d501cc77711a4d42756418763cfe52ffeb7aa9a08b08fafbab7f8f96f978a4fdfe52e1058a15cebf83a68d696282210d6a23feccc52ccb60950d9616cc035a1b70cb926a1c810d69ca9da98661e6aa17ea54fba8bbf2b55d450cc67afa568102d4bb25cf56e54fd51084ed84f0c565af4c60a45e859322c44a3b7b3580dfc739a0965f46d2851b840076a82541179a6e8ade0dde515a5b02164b9d3afd973f09f1faeb8594edc146718844b6e34224f10941a557bad891f80363133881b5a8ceca9edfff297e8e26c5968b5120e61588d318a54f5369cbf3500b4fa628acb808cec30ae626fa2d731c86a4f43fc7187e9bc3a5c361dae118e3152b7810b1b2c79ea79ed84290fe9d01c30e22532305b2aa6208ed4a23b49a197b9bab3dd50ecea485e714c1f93eb0c2d31701550e26df56816989c3302e0c1ae46c74c40ce83700942b99a14db6803f58c05111c0912cc1592e64902d3faef2dcd1d173614ea932b74b66b7cbbabba76d2051348a8883bbbee83799c3cf8ed0ad04bc3980e8d2c38db3d36aee1abc3ede7e599f2ed8988ae7013bc0534ad98e3e274167e38f19f121bee15d53de726df4d96f5c76e9cfc4ab3eea0d6aaac640ef36cf83c80ae91b577685d386b9a05c2bdc36d97ea6025520f933c4df375c1f1dd844601d11b2565121fc8e72c8e96843518b0c48807c78b49f2ea765d09ea5665ebb6d90e76e33630e88b5673ec665b54e2ecec4c28d6900067dab3d36df869f8825829d5112b78b6c1f91f0db9015e6408e6e2d2dc50552b7257bb2b56892c606274d04c5766445d682bac30ae2d686de3b203da33baf93407e07fa231784402ba40fcc042b178fa89b2a6eb61f92ce115f35d42cf5c0ab8f23f6c59c1a51c0eb8b478d0f31ebed4cebd769584fe6181aa4ce9d9befd9c68bf121d3218c5332c9c5f2678231d9ad54358cd403520fddb43a3c3c330a5273e5cd96940040cc5326314a637c7033ba77c3adec78c34e0253cafc6aa62a0e2e7049761b7f3a949ad4a3e662b060dbde59491c185138bbcb2d713f8f6ae34386597230d70e66f1617b7f4c96f545ac1268208541b9b72b66cd1698672b1d6f747f210edf59a8861d6514ac832c963fcf8752b32ce7d767bdd4b6c9a468aad41825fcc1530464a5ee397e498c1a20137ff0c77f4e989c9037912b6d8376e695dd408f35b2ddb65d8b884400435e2da37fda8689d90ffa539ffe2a4aadcf7434ea9610a3600b0dd7322859606119a4813e39dcba4c966f67b885abfbb2d196d88cf5997e63958df16145217c864a1dce9cd98a88bf14a7b81a0be7bd7fbfd08d926d4c7aba5fa2a885388c46b042386d73155df298e51c999bb22d579d3d7c3e99d907a905b00b5d5200da2b7037856e2bf7b7cd74fb311cac3bdc10b3c6b2cbbfe58460084116440e1772fbffcfaffde1e42d1237ff797c70cef437f9dc4a44ede9deed23b92614fc5a1c42f2a6d68b4ddca116369dc7ea57755a28278de64b6c2ab8a8a022091759dab750b606b20dc3cc64a5ac50ba47758eb27f6d822a08a7073795f2cc09e933234da4225d228616b1035f21173d55d58057c893adf4398dc960f43a71299b9efbec1e61e2670bead1ab08f25cc828e9c87c21f54ab6c475cadb25733388a233e468c8af872c89ba1054cc629cbea343f39314ecf69c04e335431dbec0c044273a82c2a8768570ca31ab74e7ed922b10fb5aea2431e1d19c40c4865810addf06992d88ee2570d2ba353f8c3403df53595eb22a2b12ef2f97a479bcbc06c48669952376c80b5a8a22d9050f79eb150a7aca6a12ce368323b2343b08fed844e4ebc42223b98e042d8d948d75a2cda35be0b5854ce0eeb337e44faa0d111fef9b1391ba1f1bc4792a90310387eb458f2e66233115236525d1f4ec136418a1793d96f4053c177a60e5954ad5d18f12fe8bb281f00c8884cffe1310638a89d66e3094eada23c3505e8f361d65a1f2032050aed44e8401b6fd10ca92b248e247f52781350fbc9c9eaab809229fe5e1ae62d2f5d521f55452ecbaeb262812990c77577481697d6c52917f6335b14043a6e666071186c408cc81f2281b24159468ccbd16d4b9b54cea557459e9d9bbed1b4dd5d5b9878c685588873af77a670e640a86034257c0f149dc0689efdb9017673b5b48ba5988995050e03e517c65b17f1660884c0400470f02b0f394bf4b2478230ab5f60feada64a73f5c3640322433a97b80e8d38d02640588373d4a7ef3f57c290625b928e3c1a9faa809b46e6622251274460a5b00f36a008ca687475296125e080c35475ef978a7d087af2e3116cd9792d2ad36339ccec41b21fa619e2a9cf1271604b7a8cad17101284969367b34e1b70a6a0963e7a9e06848d503546ab3e8aaca6c73f9b33caf4bdc972d20b351daedad5b767f586372b2be1f433f7fd31c17f6cfb7ded70747e0ebedbebf103f5dec3ea276750351036714cb6f93ed303c5529f6457df7b5d655eca3e1264f9d81f87ac0c5fbcdbe222ee1924c90bf876a8cfef2fa63d533086adba997bc37084b3c1b5284960eb61eb6064d1be7453c0fccbcd75ac9dee970efb3b7a365716beefadef073ec98c0fc5e49f0696c396ea7dfee7e19173772fdf6feb519eec63ced2700172ec4d7477c4a0459dcaf479eaf3b9dd36d0e982fdbf98179057f792dc6d8c1286a64b4ee72cf6b60b4ee42b26e8f378650ff94f6c7ee493687c2f16e5cb06a89569f38dbeb7efeca8a9574bbf874bb683c081b13384729bf579245aab1e35290a57de9b6007ae0d9f99a3541ca7c832a2958c402aeed81863ba588f0e9ac3eab0fda1f9b27e579017bbc821d3e5b05d6e92db5aba0d94ac6775f6b27277b7a8f1943b9adf0a49361c6086dd66b890f0acadfd98b9a588283994567dced5a76515de3bea331771c248f92ea85203fd446df0e78a8b35812ea0d06af6e5013d8743da0ce7c3b831971c4ebeab10dbc617d0585b43457b8cf698d1904ff99800e421c4fcf55addeb9c055f650709543b9aece59eea7d947b1855aa9ef17b1a95f2ee86091a73962413a57011d097039768a4eaa2e46843d33129fbe693a41c37273f9b5f53d91255bdb4205ae6a80c878f7d7e227622150361d7e5efac6fc888b1297c91a35883625c9f3ee68779f3ebf9b0aa48111ab98aff3713b80e96e1a74b5231df9e64fddefd760023efaaeda63e4952567ffa4c6ef2c5634d5ab3cd0329a3539d6e99e346bcf204dd537b4d00f1ba5cdc613fa90f14f8ae318cbdd5fbcec7e29d64c3295bbd2e1ea224f53d7c0d94a871181cabd7de0208327c7348eb615b6788a92b1a3536706bd941ca112458fa61291810bcef8a6fc24f424200bc1c6cb266a9ad6ec55850b8b2bab88cd3a5d1eaf40333c1067ef2c2702e8dcf34fab88a15ae880f71df66f313f19c41e3474e6dd79ce9aaf605424d67771ce80e9de93cc36961826761aec3678d8c65876774925607e0f5aa134eaf6b9a436c04e320fc8d8af15af49ddf8b164953c2eb67bc8e78ce6f8925ab3e8e6c0fc9f54e73ffffc63eb64666bc94924b66131e6749efaea779e2b9983257866e14516711ea3625e9897a9e47ec64d62886772e5da3f58571035c7c759cf174d270059af15cb3846dafe5c2bf4fd4010334d661da258ec188971838f60ea99e31a853183ec1ea2ef6efc8fea18c00637f0ad401ea42ed002c90e902fe2ce27b97980dce259b02e48f97ca8dd96d9b6ce0ffefd4e9924e1f6f21358857a468811854948a1afbf3a40a465e6d83a0e832e41f81e3bb3062fed08621d4f6c844078726750b5b04fc2df80b3be3f246e1098916ffe3cf8900308ac6e935710e3e77fe6c741fb963e4766a1bbecbec524c2395adcb4ad2354157d1f551b5c8da9bcb3db9cf26add3c9a2d06283f499d33a45b914afbec41175bbab8c64f5cbb70830932db65b25b5a343b46b23a43fb9a269494e2e50791fa1978d8fac9433aeda8632567d3284233dffa7e1e4fda2c2139c2faeb942f755e97fa85d0c737005e5c2832b93b5a7c426eeddb8d5b5287bf54bc8e649184dd9195d33675ece35f004438cf0fa788ec46f9bd6445c7ff7c87b919689bd7e56f39849fc59de10dc6519883e108c65098e7e63dc69a99d1e169c68d1994e13bc68218eae669c68959e1e66346f3198ce11e46bf998ee12d465598c7e16146a7988de14e46704421ead22890c8df70b0820999fc6db18f59d75631fb3b3e3acf7436ac3309700cb7097f8ab8d32c26aab92d2ab032c4b12e83a6db33d673ea2ae31d3722d4504e873542676eada640d6777e3945240674697dbaa04478d93e90f7bda117ec0e21a08f2b47663034f1db080c310ec590c3f1196963810110d3d9e57207fe5819cba7b3b7b7251f22eb608516907441669500f0aea86f8f0ffef7a34d87e0cabe61ad34cbfd93279fc93cf7dd06663dc042e536342f5e4ee5b489c403b71cc2914ddff5d085b297371e197f7f2ee323c7c1aa1b00737240a182efe1bcbe6c0232aaed0bb6ceef8e23b51083df917f18b28bc5bed973ac18eb170b32629861e9dc255f53a3686aa86acc3befca48bc5e02c74a3f999971bcf854707519c0afbd677b54afbbba66f3a567f9933c32c88fb4415b3dcc2ca48afb6a12d910d1eb1974ebea94e698632154c8b81d19ce77397788f0a6d9eccbbb255cd4c90fe2fcda8a9e0e050a4eff9d88e0500319c07c27869cbc0008fdbd2fb692c136592da4a219b1acaba92c5f7594df46ca0c8e951c65b23125651f7801de2c1336f79ea6545bac601226ba81f316adad7652e247bc2a6d817b30ff6709cf61b8bf25a40b041986c6900da65984f1e122bb51754aa2b1d0cd0e4d74616418f6407ca8ed6b5adb386ef3586d6897a81c14a2aee3beac34a5d5bef10eb9776d674eb1b98f64816bd857517a04f674e40affc8054d32667baf13244110c4ef9d3cd5ce9e26f93a89b2c8bbb320f2e706df8851559419b7d9e44e999f46a1df2d56743b25b12d2a17e416c3dd9cb3f9aa793ec931e0a8b484eaa6b43a1cee95f149039d560255d072f1ef379c26a03eae3d62f56ccabe05eb91fb7e1340c823993a9333c584de7752c40ca7766ff6ced873aae853c87900697b5c3211d3e696bee16d111b81dbf96256c87e61a61e0d9a5a7dc35f825e7e5f3b5da199081237744d1db44391ef79676d1070be089a46dd80fa618566a3620dc7021b24150834c33009174fadd8af022c5cea1a83ad1722ff9460703ed7720d6c1ff64ee254e988933e6fef03f85a207c041fc431de66b3a255b9e031c0cb713adacf344fd000741e521550e20d8cecc0272c6972261605e005362a44c6babd942fbfc5d44bc413598db8fb4729280e7d5a0b859dc1729dfcf131191939de8fc33b98bfdb9f126b85581f0b5fd8cc70a61cd2cde1dc53b086a8ee769427a9f7160ba9a57d367a04dc7e9f499e8fc937f89ed74b8f1d7982f81d58ab87fdb25d55fa8e8b515dbf8f0b1e01dc0f1f6e78558a5f0c016257385552ce3b7b1248d057d4bed17065326d18a701898a708f78c87322c9f01bca579d4ea9237f3813d4844e4b209b972162ab86618ae37649e398fdd5e892658c04152d03dbcbad5014d341dcaa6dcc02459f00bd134bf00498908fb6bb09b3be10074670c4ca822bbefc52ace4e4fcf13725560613b20a02bf73ccea11f7c58b9389d6695c10e4644200f5f687447f2e059b3703d865572a069988b2edf3474760116675374b158f3e3b669d5580d21679c0dada603d4f4c1d55162c1d230731baaf0e920c4e72bd6c09e3144297d84c17462f0f8d6acfb1716d3e89bee023f09ec5adbfb987041deac720ba869e9db7a6b87966d6a380455ffbd825c371d13cbf7c75d331df41b5ed057dd2f3b63915128936e88e816e2b461826d078d6604ef0fce062c9d49506067819b39b188a8ed7330bfb561d8220de540e00bff867f6edc6c09650a41a5da78e12cefa0ba5ab575f04c4692db5e95abbe93388e7580d0462ec6b9d8c57e3d2e9378a3d806f0f72fee789137ed9d29045058b475c2076f5f3d1c58e7e4f03d2cec765c9e25339f9f1240e0cfa7b272604cf2f80d39bd63e197dd9404602a665a037b523bf06bed76689b1c20aa308ffae920260da04ee608901669c2ed4ddcdec96ceeffc7144a401d27a1a88e1f65b1c34fbaff616ed5c21246ac455fb166d60566c903ec8dff440d8fa9446c1fccd58f46c822a3f2e35d94a8f05c0748faa031566016dfcafd920e6b5d48fb962c4f0f66817f3962c59b3589b835f7c4f0ca5da17d3a06f71556e7d72b9d785793cd53dd4b735a8586bdb75d17eabb3af5acdbba5d072221f80d382befaa05e18a06fb085966708a210865944e142586a8c8c7cdd59fb984162b8bf95ae766415019afa750eb920e457621e5db0d8c6001a9a9d9179a04068d9dbb6dd7d7f117476dcb856037435b57c84daa8bd40171c650702ce39685bb277101db960b7c2e9eefccd3ce8fc4e55646c6ab86be31ab96db450763e8719f3947b574786ca935ee09a1e66d6baf5da4ef5ba613f9d017bcf711962b85ef2410ad3be9c21f577647ba8e38c8c4b711429aded3846bbae8b9e79bf30045526d3b85f66ff02cf1d63560d12c06a986d8666cb23777cfea003569747f85887a5b49919bf4e59bdd6b666848d75f1b99e7010b8e0917e1050eb05c61cdaaaca912d3fea8656030bd2f89379aaaad9fa85c7b94f5249b5514420a03efa7b3eccf960387b708848f2912ee0c4a00085ead215cdac719387b9adca52920b42de257a883a0ac01d02c78d9fdad09549071e96fece70ec8052e8869a3456f649ccf0a6d0d8e69b68696754a31868797eb1f3437c06f754bbe243253ff35face8926ce3d402db761b4f3e808e67822c2288f0ad95a366d9edb5a7a69f18a60786b0809f24ba56ab42f49370fb16dd5ecdf710ccb4b530ec5f72e9c295865b35a00a0f22a12d7404ad3f70732cb6fdc33d3b55427dd88a1e743a1ee0e890b2e88692683b65d8d6bacd97529ea71c5737c7c3497848ec67acb6a8e1e30dfcdecd35fabea082515daf325a4e0434351845de4ff9c28a8fd22bc4c3d2033dce65a0bdcd08528f0ad1b757dbaee4ea4dac412e60c7aa7acab7853165a7497c61f79d13d81bf5e98d9be9351dd765589035e64a6e4e455c0c97a1da59900de9f63b61e505d6d7983bbd5e3fd5ae600c16c5da9e3e4a03ad95f991309e2fa515324bade4c8d70ea730dc8ad68936547058c9f0d72ee7e58ef4de1f4d5861e197e7da12fc02490ca56570de9f24242e30b1a1a09cf2ddd7f5cc597083448b81b796f604d0d6e252fcc45b15fadf9dc2b11e0d33ee61531b0b87232f3f66bd187949787f7c3fbcf71e2f003f85065703d5260b10eec2699c7120ed00a7ea98ac2b8754c23c6326d98da169537fab3b34ae2f6b9a900ea713397ce40c8a9b58bf51d7368faaa7467849c0fecdb05bd2b4fd83e6a76ac16abbc50913c027dbdf5a173c4f1ac3eb6ef6a6092d9501eadabeb6a781241ba64ba6b8ac88614034839102546fecd76de29de963e66eee47d77b8d1cbce1cf84158247b7e8de0691aebf86260206000880d185127cb2411abfaeb560d820b9e703219a6e8cb58ef9e3e83c5624c9e67166c6aafed4df0ad1bf14b141ff4aa7c3b0c0b30b19ee7d188962e1a7b9b142570748535e3d19ccb250042fdec5c8f057c49ba1e1f77849e8a7d85ca0672bc460440209cf666fe4eda6d686f80b914e555d28ce02921ca12405947926ee2ff0db9af32ebe8d9571c14efb112eb78ce82e9838af55233c0f672100b09f6d31e94c07c0f241599c67182abd19f7c683d7706ccd52b13661349e54ebd6db823a789548629abb76fb5aa8913be35f7ef918adb399187da76b611b8ca0ba852955a9dce94661088221b10465ee13efdd3dfbad481a71ae3b02f1d3ca6812e88271f30fcfc5d5af62851ecf5397c16b27a5549d84ad52aec3caba4c46d614b3e5e4b8b6b557c356cb87b8cf3f022f18a27bc94c5761c5171aa2bbf5ea8aee281dc031102c45828e48c0af5604b73be825323b92ad2f572f0d032dabdada4f05af6029c173b6a2a4a3eec45a5fe4c9795030ebabba99ea394ee5c937f7eadc95e574c1f5ee00124c855b4ac078333717f4d060c7fd09a6ba5a210cd590a58cbf913985b1dedfb98a79d3c5d3b30cf28055cf534ee5217862fcd138e0a1fc25ec74ad8fe158d57b45529462fee5dce670d712d272d7a37072cf5a2b0f90e769b393f577d6dd6d2a71416fafd9b2e0600e6fc1812040b60d060190793f15a8666c7647c0a5a5514fb8152a002c172e0618509927204b6e75297c50d85725135091d32610fec0a03ad3a390a289af4f0a7033eaa8658f12edade44cfdf401a7f5d1d20c47bcc76e96b0b521febd4dbc62d42727f22ec03720b421f99366364eb655481686d42c9fd1bdb37e82487555a5685996dd3f48e8586fe785753426321c0b84241e0d05053f2ca956bee70a9ec174d371bd04c0e901f2263329390d18d3b0c2ee4bbc2852db13375b3c973060304f024db6a176aa1753f4d1ff9c46b124688166f92cf39722a76c8aee155e07a89874f59b20f961050c4f4a0af84d2261a14e6dfa44f4107b72384e6e300cc0e2f98c5f1c4faf84077dc83decad130cf5f924a215fea4d4a3eb162bb09dae15926b59cf96b18abd8f0fba41cb4dac33249fb3daa94d1bb042e9ea9f4ea6407a8e248a930338c18eed47e16f038139f237f23e440f9c6c7430aa35c840c0523eba70a393253ea62ab49bb4f28edaf9eacd462ce9b098bff444234c8434e8792778c07507fb7d65335601d74b6ad2d1f63b1d1ce3423c1549dff26101f1a9777676400b870f4d62508d8c0c54bc1db14efbbc5121be7d0d4f09b3b80bb38f4b3a03556cf0496330bf3710ceeccb061e60bc8ab106225ddd8142f24b9944629d0b1f130b6dfec5fd0a9c6a03f405a29a82fba5c09ff165fa433389e328c52670f02128c682aa72e9ec8d6f3bbf50f24df6ee8e8117137e567be714a3c724bf4b89dab642b68fa4eba8e6c8cc5bc6f1367341baf3111ce389e8bd2539e7cd87e13cd629100a67616ed06d2e1667ddaff113a2a066446038b5b1a7737134267a643d0b6dea5be9aa6cc9750b4112291bf0ea4c1a27ee99d3d8393a4bef5bc6b93612d59cdd428c6e4d38860f9af3105cf2b6e63e42047cd3736d092ab3402bba4392ce0d80909a70a39b075812600e2b72bb97ab8cd8b13ac76832a7f5529b632095d52793f3c301cba00d34f5878e42539a8a2210ff9e4d156198a0f3daaf26de9dbed57d3824ef32ecc64b78831816a51c25dfcea42ed692b953f266c5f1ca474494d18b496b67160766597616f550614632c6589c2eb03893b5184297333996a93e4544d62e14f166b1fb83b2d559ad00e0ae74d743887ccf6fe0392b7054afd1a7619a07d7438dccb2b2aaf5296ba389d9c0670700728f8c8f13dc223c310832df0f4ba39f5c67111200c308b6ec42cca6d42cb5ec5e2e7b2a7ff9efc18b4d762fa7a2318a3f6fae1a21f1b25fc662e8a9c3e9194d253211e1345ff5eae74ba07ed4ed9a394e754465bd56d928bdf805373ffc36622dcaea6b2d1a7cabed580faf7a74b3382efc5c52468d79c001a6a01029db53fb79c494f236a649c86e69524324cbd27f06b672bed70593bf909593157b39ee8cca4139959b3e4228198db5b7d3dc0670ab3b876377e0bf2883603c36e54ef555cddd7b864c3dd325a8231ca174e92262e559896adfbbac99cfdc3fa39a0cdb1af42dc36ce32ea96ad8e742d5c55a0cec95b8a79e170280e76264a1d474f94ce86a733838be0f9519db4befbfd2bedf6a5adaf6e3012801400058a6a282365986119cb4402eca7992083e25c42cf1bd98239f25edbecc88f22fd84c6e36e4a1778fe73ed807faa1778be410513db763cd94a916a02f37eefe39cd2af7954bac950d1d67b2f641cbcc110b66300b6e99c81a5d51d9f532d175f7b415072d8be5c2f3476ab82868172e00c00006b87ad52d5099e80cc51f9ad24a50cc691a291179b2f1571a71303b6092a651d7051fe78c8e9ba24fe45bc0db82b68324fdb33fabdd35a6487caab21740695339992b37f1e92ae3f8ac2062e833cd21e9c5645bead168f865e92ed881b0d54b74c45cceea1af38c5cc301221af2a3bcef227906959528333555216c803afe594e1575837e62784a9283f6413eaa8ff68a8d0671e801ec90aa3c8862c03c99008887467253d5eebfca13bc5d737f6d9b7c2c290aab27f9ceb4c30c1e785d24a9442b7d9e77cc8dec2a4fc766ed8308930769dfa30c335b3f36ba62b1222a23f596bd4b89145fa562900752db8ff4a827eab383d897d346be186d301e288014681911d6068c00f99e6a755e4826fc525bbbb87dd2bf4223da6bbd6a7bed934eacea4b2d914ad869443fb7fbfb053eda3da48e02bfd9269eb69248d2b3bb942e1d1e6b25f287126db44640296e344d423c0b922fde25eda5c1c747b9d98682afa88fe5c68f75d675cf4a6ec758c4620a1f2868f1f785e2d58ec8f9537a027db73bf3d6b403818ef4a60e6f2198a414aefccadac76adde8581f2bc7dd519e8be100642d248bd71dd2fd636cae9759e971a8ca14a34a970998fe04ecd75f7d8982c6de4e0daee9700053f24489c4f23367f5447c973af9dfef70edd8176c0b86f924a4e65f5a729c8901a2cb84a60791db7e84fcf37af8f81c5b1db9c92a6056b10637fff6d4a70b40daa20b9ef71c77a05ae97e719d8bcaad74c9dc524aadcd5d1bebc34984d0584494079eeb9223b8f70391b3eaa9175f49e237a1d7f6f59b48935403890098737d436f83865d2570fd9c491a2aa9ca8cd3d6572a6b2b15334f909191c4c1d0bef729d1036bcc40fdac4863a6909e1b291006c5c78360d56fbc07f3e5eb65160dc4555de6e22d5990742e732443631a1f3495b7fb9870b86b5891ea5fc94e5447af2e6fc913f9aa1e1f82fdaa43e54e15c747ac147fa2683689010e8cd704ae5a15d90838c0298d8d700c6c0b4a03989a54290212544a07345daec9830d8bff8e18bb522c72d40c3854eb09a1278971d52c2e8cc2ffb2b56cc4caab7e5152b001fb9693a6744fc13fc92239ad02d0cebc94a5ebd2091a1d1d483c830c908ea53911eed91187a1dfb512185559834f9286bb6875f5208ebdece031a708c0aab04dba8a079b1f831878b3ad556938ce4ce638b28408c41ecfb2eb67c2a718f6e5f8967c48c27aced7bb6f5ce23075bf4a15a437b1a2bf086f29f0f024fb458be193707c310f761a1bf149a9cb86597c4e419df972856f2b910229e70374a6691e15ddc3c264691263a3ba1351084afb42afc7f8082d99f326085a9f3e97503a1dd62e83a2c9f891c1cf7e224c56fb562e8844e9c4cb1afdcdc638a7c3b1f4948a7b789fd5b6eb01b307084d5ba3550447267e3b73e1fbe23a3b0f2d92a9ca18913adf9bceddf91bc023086c3bc594ec6d2f7ea82a1cde6d3f03743b3d80fca641fc467a9b9c9ee10554a2ca7f3088ccd336fab8f5e8175f0cc09478dfd94c9e566d708ffc782e1ea51f872a62bdb08edf9ce18ab960af10cde3e43eabbf3d4f94a3fcb23a9c2912c75d4408d89d9c295c5ee27b59cafb7afdf66732cd5b02bf47c16e9e1dec888b19be8c668ec462aa29f3e2a0bd66414c00b1c1b3a3f888da9ca32922761f43ab5580491eadf1408de7d9bdbc10df2bf77d7554618fc86fa8547e37c3e7484b5f3efa2d3775c1189d03df76512dbf23e935b5970fdf870c5e8d847fa2a67cd7a9f57397e3aae4ca714f3f4ee5272fc1a79802aff3daf4cac0058bd2ab2da39d978abd9e0728dbb5e9c4454f94bfcab6aaafca281e71858739b805d9068ab7f07dfadc37ebb2d1b2b29ac6ac0e8c25ee6ce0322e8c5d274bca798af356c247176fa9a8868b727ac55fb832292e69bea559a6f194448b2a93601c9b9bd4e6360729d2a8a3715b35a4c3cb611aa9f61abed0928836c7e57c272a7917d1ed2d871a818a82f819014be57ca3e52622396328801260dc08a82f08e44f98fb6abb266bd5189033db17a2ccc8f8343f45dad2ed492185e7e694d1cddb549596c3d57d3d94252be2f997f024278580814d422437d854d6981d78d0648fbfb72f1d324e7244a74fc4900ad321df305c13cf005ed52e57d6000294ab23c1f108d3b16e093124289003c5b03fd707998e563c731406b25f6c11d624dfcb7eb87e2a0374b7680bf73bbab6ee2082a776014d89d8644422bb5f963838c9cd430d220013ce84e284ce76447f92c5229f3288b4539be5f26ddaf51980745d98dd46dbf1dd94bbfa780bbbcef3d689ee55f66c55f61da6e824034b57f8c0d0eb745a4f81f92a476a177883a4cca320cd7d7baffc488e08484bd4e15e02b0829e35ad214257f3862fbde9770f8a71f8f59c4476e312da19200e057c32f9f6bd3ccef7ab2cdf9a828ff45a7c1cd3282bb454bb2dcef60503b6185cc36d27866c02f1b0951f132c914d928ba5d1814c26309a3c910aeee1ac1993ad767916cb7ead34af7c87864fbf91c28e0063a03af187cce0a50d49a291f5e304812897a1cb946907e8f10758cb2b21238f06dcab606bf5acf3e40cf264f718552122d5ebf9d65dca414dcf574b6f2deebf82ef774491b3c530853a2d44a7906f527a5b7a1e6a2f41b84a903dcff272301276445089d406d68958abde1692acbc224d06b285036d3d5b8e4a17ece7a11eca212b1b36610a2e9fc3a0a10684bedf5a579f80f6d809cf97625d85197ad1342dbbe8f40cb864d7bda3718978d2992ef9f912704f1cda12eb3b56f9b17e7f4de1222787b01345e9c3569c293a5f3d31cd495307a98985de615c94f09a3e01a405fe27091514b0dc437d48abb05ba5f7770126046ee9086665d81ec9a5b67a25afff1f0767896c390000c103458449262fcc4c2ecccc39fdd65f3d35ae4d9b267d308323f09275ea403aa3e32fc9c3d13206c58c3aaae8caacbe59ceb17b760223d6ac183ef463ca0f85d2841bf7cea74f689cf74444e4d45ea1dd3118a5c750296784966d75638d35b76bc6050f235e944eaec11277d5102c52214046711ab07e4966099bbb5b82ad9b1166e1e736a8dafacc70e92ed93c6d3f96b75765df8c8f690772b11319404d7549a03e664ac0e9f9a813eb9d6c000a40fa2043893b012638061598d21a606fc7121a134a5a689abbe00051bb0f0a3313abc4745be652e229233b9691ede01eb356e5714e79eb78407cd95919e64524d23e9ff192db02c9e52d2a31b697817aade2335d7f13ae548de0d7bb10dfe694d7059e73c23f3913d84e2ea527f61c5187c6c3b1c75e86d221ad7ce8f447945cecd6c0edba9c3e93f636769c384d39501c8fbceb7e7b143f89948b37314bce9d52665d40b10e6327f1e58402d913b4610da1dd8f39f68de32e738ecbc6a4d5cb5d64293e515e5ef92d610928e274f1003825b0872fd6ca95db6d5246dd4593379a197fbd66d7ea0fed54c6cc58b4e396843bdb45f59e2b0137c4f8cc1533d35038c62eec5f85061eaf44c21ed10bf1c45404ea5fa713d0ae05735500839d055cb9a3a0cb34f7bfae861eadc25043a794a7a3d8fb2326c79bc1f069c4c8d3d3e5d9d406f77e0fb2a1bfd1e9f71f29c6ad18da32a894e7b29ef57b57df5ead4b5b8258a1dde02613d874ae28b76ca7518ec8bc33ba3f2eb0dac6be9cdaaac60e98e1ca00eeba32139775f576604ac913de86797df9ce5e5d4d43913b5479c4ef0a04eb38301560ed6f14a13bfcf5be7d95aeaa8704f76692720739e23b8fcb05f14a4a6e7ff0b409fd965e91db6b897a6dafaac0a1a1ca2bd14127ff37b177ec14de6c319df5cc634c0c6809fd7d20206006450ce07da219ec646a711fbfe0de199663648c62677d19cdbb2a0d91cc85533cec6957aac2ec7e3f6980945ac7c4f84b6694e439f7094211aa0e30ddb99b347310aae705dde7d133d6d6dc99040bf645797d8b97d26bf03dec035b0b6a21390416bf4ad1fbe8cbfb80201547160416c7705a9d7ab0fd9afa7e53e57fd19a8010cc53f770ea0057e112f393cb609c56e31cf3826443677e935eb8d69ff5901fdde386ddada27eb2f405755c1d6bf28ea0dc7d503862742fc23ce4ac444a6b1c1eff0d85319a642ddb93888808bc8d3849fa96ca38d370c20a3c87d609697c5e3a8f79e42befefe4f8f9c94458fc4c008baad61a9f4bf0a726fd844075d3adf799265cfeeb5bb0e61e3f30705b0d948c83f1dca32eb388a9a2b234f8fc3a2a2241d84d2d33423e72db43f882312841a562012f2d48a106834183768607ceab4a23b70bc2037805d6c4f10f5ca0c09caa0c491060f82e7fdf673c259bc91073054f2e7485b0c3e6fcb35466ece4fa6b06ac4fa5e9bedc7c4aaed17cdca82737adeadcef30dc0281c2613b3f49667e2d614a338bcd8d7d1fdb4c88da1ef9ca2727b69d49ca0a15967d87a313455ebcd22090075b495419f341e525f2ce85746630305e5be5e1ea005bf54d1b1c1a5b821ba7f8e0a0de03214c8af95031e4260c087454e82d2af8aa82976b1b420df2d438979f5f5466d2cb793e743333b1b75f72ce041ddfec0113cec86ad594eab2bad707f0a92149f06433b881b9f18512c33735f9245dc224063d917d0e45791db63cdc4ed22e0870b41801ae3150948964250f51c14b9e2347922b918f7d6bf03985dc3fc8f89424e2a2fd692e868284862b19e19656e9a93368f6d38b2318186238186efd78125cf901be86c3f8f0fea5ef93e989cd0d5afaf80ac6b1293cd4c78ca09cf97e8cb2254f3ec5451af22097f527085bde0a9230477e630681f00f29aab214ae92c877ecbe2c1efd51608b2ce4b4050b27bf7e5945d0545e572fb47b25d4726ea42638e5c70fa10d2d3ea1a11bdfc7cbbccf20ba8801fbfadb05c7c794a62d8e4a643a47127a2ee8303ec8ef5f5d6cc3a2ee6313795ad65f82cc4b86aa719b54c6d650b0fd195ddfa055209c12aa46c6226e12f1418292438c60a041845350371a71c122fbf42b019989ae0b30134bb46d0b4897b2a253bfeb2cc42fb604a23bfa15e4c46e028d26d9692d734226981251c83166633f965136e753b52a1ae6aa667ad779bd71ce87a47b4e6f7fc8956af55feab99f83d74aeadb1edf8b16d439f2cd38fce7f2fb5b5400145b0f3921c6969f1570799e390a41256a542d96d71926d42511ecce2cb319dc855aacecd00cb98a608e705fb6f93bee3a116b3e6678cde33c443b792a6e7e6f0d248cd08f1856520a07daa504c76aae4002b2c4cb7d095d6077ae16334f7f1a2fe3e7459cf4011eb80c4b88f7356eaa651ba4202e66110943fa212b334e1c473f98352d470ffa1609c400ed0b064ca2aff5c1104e9600702943649d846435526584d41cc18b051b3a455325e85aadafa35bf0028741efd0295a994bed72429da87ef4007adb5004b2d2c47ef5b3ecac3e63a3063d26bbf55d62b719cc85a166bf4ce6dd9a482873f8df390e20c06a33f127e87a893307ecf786619e4a4ea23e5e5c6788224adb1f094e67c7a3304eb1674b89b188a1921ac1b3816023ebe3f71ce7b14d7c763da4fcba45359dc4a927ce36a20933836f6ec7cf5e2c2d4eca304f29032ab821512149415862a76081e002ad00e8936016c45599c06a6d99e4104bbd12dd1177464f8dd6aa99cc1ef8bb5f09bf914a52ea8cd9a5d554129fe68dad0f9a9b8af5f4ed6750949a8dd43af4148f4f2be29151d4c62864b8a6434d6ad9991105253205602eab8c8d603c8f4381ce82b9cbbefe2bc1cde94141e73a7a4a4705e08b4ce8e87680a34461f9b56f5c51c61c9cedf30266fc5a0b912fea952ac8e832dcbae0a3cf49e847631ef624a54a022564ee960cc070d7b5fcced4511734a6203601c55d9108e0d45171e433478adfca683ac0b9616442ea9f6ec4af88396ecd6a9957f2793b38a8f18946d5ef3ccb8cbd4347bfa251b1eea760e5100ec24f5cb7de90e97d5dd4a21fb5471607455995093a180d53d211b14de3c0ee3183dad6d2b2f9344711fea8d43c8bf82b0c0a2d034fc3c9514143f14a4ea235a268a35f00ac82881f22ea6aa74e03ceec356debea5e146cca02bcc5c8b9deea616cf42ee8ef1a760efd290ed8e60bc8d2f36781925759480f48e2b99fe7b99a57a8c1d84cce989f13a02146ed3b2d01040505c360112274c511b56a8057cdc1c7937a0f42bb6a92298b95b3db85672031add4aa2f779afc61eb7645b906aca112d017383bb2b16937a0641d318f4411013beab12039cdc00b627581a607d0c307ec5b300175128a96d46182b803a6f423de5e913df1baf3887799baafed68ffeb8b60d935e2fbb5d5e44882410c2be8f7eb8f287dfbd8f9ee3080e9dabf5fdc10d1ba4e2e72678bd1f79c4bf7ba081192b57566518280b655199f5859a58713e95ddc41aea66e4830fde9683d2e303cc1aaf9f14885dfd05122d675a373a05fb7955bfaef20aabc47a5d49a4658e6cb9d5d24be036d52eb2c82d676900e14a2abb6bca7b3d3d9bc4d90d7a9ea125264babb370aebda00a024aff7ceaeaddb50bc3ad02f249da228cc731fa2d7718ff99c2291680da7722805cc247a91abe1f91adc44109a922cf6cec58060e5f3c63879b88e301564cafc9cb5ef036393e1a44f1b0e79a54a7401ea52dfdf003968105f11c5e5c4f5e5bb8b5436ce503fd1bc3d4bcde5d88d3bd165be3ac1fc346e5ddfb7d8a436b69271c1b509e554a60688f878d7804351e953aa92baa973dbc30f92716f1ac59bfffe32e42c5ab50a8fa0c292d88853c733fdb8eb2323dde8a7cc446598e6d5e2204e2543541144664eda1c8486426e71a3dcc05e497978865e3f4a58449b4d015f9b2b9547854a95e584165100a87f14e7cca63a423a2428ea9155598904d609c7910cae4cf2d38609f4c9af76bbe258ccf9321ff9d8ce4d0a5d3103ae91c2ad7439be35297fe2b564121e87e51a99718f89cd5af5ed7ec8ed791954fcee548d0f5df1be344a1a29829b0a4b4c455d353faf6cd7b2549d6da92281f94dd34628f737073020987bd2c98a0e513b226a76edf9282becbd383e6c7cec6d3b849eebc661868b073fa4815aa719dc3cecfcd2ba1688d98e3427ea182a4c6eddd38cd79b5d4a7c11c3c30797f6f87b0213d5753a47f3d38dc4b424862f5454f6a16ebb6211904f7a039413723f4837f415044f801d60320379e2dabc7ae1d758970533c76f51211dc34c7ee35ee428033d029abff8a10cb7dc1f5d289f6c937c6515e23c99432d39f6205a745acda2c2649a36c57b1e0a22245b58d3c080e6d515f05d09446f9b201cfd3e90bef1290210c8161fd7b708cb2f3043c6d05e03ac83709d2484bbd275fa72fe1e899cb352f10bca82b387066eb67aab2b00f4767a6c40f6f2d92054a8e858dbe46390d1053a88326eb27bb26864ded3e0a9ce823dd2f6ce87a0f0f786863408ae93daa3fde9a19e9c8a2fc43563d7ad8a5aec6f21f86c7fa48ef25f75bedfb2544db0c4e2f9095d8139630e24f99705366b725229ea3949af9adb344d8a2b05a5d5e1da7186d6c63840fdec6ffa3d96d4b8a232a31fca82bdc51d6fa64a6d8066a75776250815adf0437fc3a66afc2d6b6a55bf722d01da12fad0687ec88ed8fe4a37ad5c09b240cb014146acffb9039efca05a1d035f2043c2099a037e8997ac357000566becdaa5682392cac196f8aec2da380d4a2aaa881c088710efe7751d4ab01f4aab96df9fb327e64c8bc14791629bf05af1fe3bcb7195ca43c568d8b1365d171131e748b397cfbbcad9d8a6e5f7fb1efa87d3d931a72cbd61d74b25dda2492d2af16acd80019cc072743f49882b7285cd17f62379e64ef2a9d52940cecffedb83a2da8a89769d00a50ff8723092021bf4cc8c88202c69e250cc01001516305c524b78ec81a85d20394ea57c50c8eb376aa3310610148f324795be06c16fec51ac5569b63ff4d986dd42a836ca0c332d6f686953be9dfdc87a22df67a9f6d19d8687d2c2cf5b265ee3bbeb56265eb1e360824ae0f00ca470f929755a5508ced74506919f3e5c02e4f62410f77c8a040f9ab4996286e7c00c7df95be19998c3522290473c6daaa9a9a59af9c15d90daee27a1781f109e98a66e78e1608af1188821d464ae7738fbeb075e61bbbc5a7c1978504517421827ea5000405f7647e432a8deb9be9a3714eb4c225fca146888f5bc49caf9416e4df9a100258f7d84d31c618e652d1b353cfe4a4ac2eff08067bfdaefe29465797ca4574895484ff4f530d6b091fd20407a34adc18be40c82f9a3d2bd8ebcbcae639bf965c589c486e9bea79c74d0ce646cb7dc6d75684d72d367159014d23913cd15e73e794052997a849d57e66d18294a658f223ece1614154d480396d6444025f9bbaeb15ba02fb81214a52bdb92e368b4d8066e7a84a1df5fe86cec491a1e236d7568898901099eedc57a8e9abdfd7633e420f5abf99e5551bbf2484702465e07bf4c1192bfcf1c0799e23176d5f76aaa79982a71d7b49a2a5e892a7ee005c558c396d2fcc68ed04c7889d18d40ec9ed00f007f10a4bb23ea5bacd4b056a1756bb14d42471ff0b402a4ad11dd9340df1741a161da2d2a8cc88128c1f278542470125fdfaa2af0cb4fb147bd0fc59bed23fade9434a334ab05ef8ab89338dfe223b2dfb72e4407dd3785880e0d75eb45e41ae68d6d9f945d457a76fa1c8e2527be59f53ef520b95a62977423b7ebb7d7c0cab503d14416246a95e85b7369a2df2a8dc50694aeb67531a328a2ed85ca71d593edf48cfd80648433023689fcf3dcf491f92d9d2d786a83b7105c462fa114bfa0a61a1b7b932ee891acbc4e2904c0942e0f500cbfca3a2d350ce19c02749a0b112acd77b4f4c0ca9cacc94dd063fa868104915d9248b4a36708fd0e82a2524ce248f805b1d458f1f80c73fe1aad0a21b9e1025107a3cf8f3bcdf4fe4c19e88561417f6f38d3424745228a9b760e73c5877c9c2256154ed8450d5ccd9e5a8bedd105ce194999172c31e21dd7e6d7aa1be2af5f5a8fadcddc9a6a09ee10e2ba8949da41d4c0b6e98637227462c5e13e6080f8f765a23b226762f83a3f0b5dfd5ce112f5d7b35128bdc69ff8766935305e9a6c4938223c3a2aaff399829c21155459425a19d6c625fc8bcbbb0e6dccfb894740d1addbf74766fa22a97be8c8bb9784ce4ba106efeae75e439b5f813c8934663311db5d63d1126173bc1503cf6b4326223eda8c7da25ca81706ae123e333cbc9afb75097988bc83d38d864b484cfcd1f6b73d6f793e5c94f8d37f31530cce1222b7792794a11b55ab573f02cd43552a50574ba149f991f9b999af311d56246fb1e09b218792672a1f088c27d4dcd7fe4cdb4197d77681dcc55278668cecf1cf293dd621ac70c02b093ab053ed92b2ba24d00019648ba6e621f1b6b0a2d923bf12e4a5ab78a65ecbf0411a369a001c738313ab02090100f78a37919d40b56e6c429edb30c24e81d4103f652ec4081aa763b2a6024f74a47f6e1acca38ed8278973b0372d2f880e3e1a45526f2a4814e81da6343a25276bd292bab4e93f80340a38c23640e84dfe4e80b8dfeaf51334795beb264c7e0e25a75c974ab728ea15a3305c684f8d43dbfb28e8b8b97935decfc9d3f31a1df7ef656630f90183c05d9908d384d8275279b9154c1e8873450c447cdc4aca80a8911130d8db693a71d14e0713c5f5603090ff115c4455b2191c3cab016fc69d2176b1502b1bdfdb027d0494af864d1f35772d1fae809b76504460c50be50e79c92eada2fc26f9e27b601b2f032fe7f3aee94b545822edd368b2371be3e3580a74601cff6a4c88e36580418ba408233fb8e4c9fc8ec3e0a6061fb64bfac150aee92f8b81990ca428b5b81195c23f3655d1bed839a4c30d9fc87027354a99b164fdd0c0c6a97c1cc669274291c78e503e1e208526c883a8c12c3a6cb09a7e03599c081a814252947a18ad84be9f17482f45416b205f4aaf195c972a9c0141870749e3bdf098c97a58eb025ea5f2f524dd98f982638e199e15b0cd335a9a17da1993317c418d90d449481da9c6009302cefe036ee83d8528f75c964d911a6c650fd1f134796daf3efd9fb2ee398d098dd9c2739be3319921ec91899ad50381633c1dac6fa39c0f427a98b491fc5208e4b2a0f3ba758c028616f8169a1588d03e71f3d2cd0598d0d3b5da6a9b915504aa5e7e411d5aa4e07a31758cd7bbb1245d74089d9c083dc633941a628efba09575509b821bd3e74a0153afa5cd4868ae557948a2508edc6f37484ea008ea1022313ce424675161738cf0d75dec850af7a495b9c304972bed091b7b0445514555d41a09a66e502e307105fd10252c5d1eaede1758e0763dc7a0c85a908373c0927c43f96f22eee68e8a864ed64efb799a6b1f423417389b53b38d75d8059c1ff4ec079f13f911e573645dfd21cba8fd0e247b602cf10b9259b733d6547038f34854858d8ca89b0275fa0cd11cd335b3d5ff09db70282cde4f6468beba208a84fd650da76fcc784f932a08b251d475624382de35f5aaadbff8a053f6c2da8dff5ec3fd7440a0d42de53f9da89fd9037504e8636526f0e18df3a2ce662c0cc764fe5c50982beb9c32bfc7706cc2417fd6e1e9ca413b3fac10f951152466567369e704367803989bb093d71069e751506c41191c139d9b87cbe6293845618b9d35517cd7a921a1e295e776ec7ee4a306f3f6bd99c20ad626970047884a87d6a4151e228ca1256f245222613cfe05aa21b774cf71e4f7661c72bdcba0a990cc731e478c93adc33b10978db8aee09d230b2995b2bbc7c09a6b83b94dfa9f3df8240bd5c5e869204aaec7745e673004348645ee03124576a0382101fd7b8440456d2a1bfc521dc31a5ba1130f405f083d8e663da2cca46010a6c9c5db1214b880f10a8c153e08c5b3b5ee15fcaa1fa4f5abc100c78206948fabb7a695e82adf091d01eb95badc15183fc12ec6e2e8d64b3c58f550e4e4c5aa61e2272459165991336afc7df292334fe145d7ac34f7e98d6bdcdddca59a32021cf400c7e8abd5f78f3b0401e711624b944535ad4f0594c58a006405ae01418d465b1dca77f94152f8f49316239a59fbd38c9e032360e9f18f674ec1b13d135b29b21251d9459b374b787b16fe06f9bcddfb473af290291cc94410b301a3d0d6ee8ddf4b692281d16fc06b3cf7c4bd84070398108914dd4c6122c66db20dcaf8d02aadacc61241ccd11465a2e63319ea6f34047b8d56ef66e3d61ab4abd7f8d20cf53ac0e871628da1109d67c67ec74b6c5bd322f3aa6c694cd11d8d53089905c5bba25b84ff4261f1a36342d449f31a81c5f3b06be76bf2f03ecb506ea1df4063006f7b7e061d6df754835b3c32b2eec0003455972f5176adc470cf80163416d91b2b70f249238661941ab74fdca4a930eb22bcf0c6a2690e6ffde8823c04b96fb3201d3f6877c6d24bb58f49f5bc5684c38d3924c50ab78ba9c85d168b4a0abd3a09ee44897823971afc8996d13a7e962dd855ea04654d8ab8144b40bcbae71c1a71f7f3e1ec69ba8d90afd0123b86cce27030c509c5d34da8d864c11921542240a1c902022267026063dac555b008061646ff1a94be1c1b5d3f7cd5aa57c0d5e29e588c3b6b71680ccd687e1d5a86f3e28184e61e10077621b8ee22679265fcb2e02a6d3766ce1a70955249c17e893368ec84792496948027ecd9343c2b959afa7e19169375789867fe739ddb3099690e4455633f7ffd8529ee3ef627060a677d4271860a407d74f97909051d423066cb0e27224266d6ecd056f5709608cc7124f0e104f416b62040b81e4459acb418b092b38c3183802fd5c2e85909cf57199b07b2016150e37e498d14d70600ed05246b35c9284fb388015469ee6e1799b063298bb4461d0a4a1bd8b61ef39dde2ca763dceeb31b8ddaf9c62ee503340957935788b6a18427702c468d3116eb526b8cb404cf207165c0476020c5852a01e0e5aed9bfa2d227fe3b928c39c843385a68bdf85f00f0a37fc5d4af95ad69c5117adb804bce4a072962218a921f75737e74e63bf66d5c4e315ece9097ad8f9c05f137deac11ebf9c017dbf7329ce984e6777d73ee3a9fe6e8866cb9c2c3dce6993c081811f0f607793f7c1b233f0b56527f71b6e30a672891203e190902b109e9d20bd0a09d887903e2326cb42cde6174237b18bbc7d3b5a9c3aeff9c782420306089bd53d24cdb755813654fa736e5532ab18b0ef6aa2ac5f2c927ced23d41891afb04a4178c150bd0ec386058afd13fecc5b6862d3f9afd5c0467b443ea892dc2e9c7ec14d182e35868d02a3bb2afc83f8bfd4222169a6d57c51faf8eaac4c9b5fca8c9a526e613bd69a6cadd5ebc86a1ca18f863d060a61b520b3673180de38a3d484a8d21d589f6ee92be0f47b4a77fb5c84744d18ca691f44710bf4ae2eac79ab8cd50f2e92ec087adc7f46a58a709cdcf9ef9532773b4c1545b5093f8fe64d138b7bf8b1fde5d86d65d381ccb12b6502f6047de4a4d1dc43ac30a79fbbd2a8a87705352aa63dd66cfe381878a99e0d1c6ba362608434193f13dad55aa0c0a2e3d058a62a48fa08127c2c473b406cb2e340493f901f5da030b5eb6392dad13a21aa518aeeb62e2bb14425da9429636961c14be5118af3b240f1c012bfe7e461855ea19d8d519c787effd84090b061cfe496d5aa6bad7c247b4ae2e164869052bad708e095dd25058ef0d9d96ad16bc8ceaa6bd7a470f76572d67737c9d6b0b7dc34e1a530936ba447a0a930f64628fa6385b1eab277a4bdab25517b65f8cc0aa3c2b22379c5f8e29fbc15f6cb6315d92c0f21315aee12891eecd30fab8c8ce4a7de31b560990f1f60b406cbec8af1aa876bf4ed421a40afc568406dd7c23b7b3f31228aa1cb23488e8e88054356c22b1460e473ed5d586a8aa04a198e5a05b11da00cc4117925bdba063a4668a2c21419a7e9b0554b9e23e6b5f140561435abb91b5bc2bf05b41c332adc3cf82d5a22b61a44be0252bd7146fc21c2101f5e343c0364cb41fa1c3180e07b036a5d461c0fd0884c701951fc3cc1a9cb524eef3bb6af3a7fac1454c166bb911e06be2f2cb95a22d77443ed12a1f2b4b505d23b5c9d62701148d68f08ac3769add46ca7f36036771bdc6376ece776cf95a6bb8a9a7561567c6de7af0f537b432fefd22192fc29c601a32144a164be99c7afd3c7494b6d1339202b9586ea5c42b646d81cd2619401d47a8417765b2ebfa8d67396265951ef11c681202f0adb7756b3ea2eada75ec87d18f86eab7a66351ec6776af99468f3ded25d11136e82edc8217e4658c964850733943a83385786210ec41fd5a10a9f0d4c7a7ac14deb95b27f4b0a4bd5933aca8f395cd42ecc80e38f3d83d135b43d5a571db231a03de89e7b0fd1c92d76f8a56a71143b6db859eddce26562052c83e48691298ec36802bc2a1d11f04fab05fe694f6a78da736baa536727be58d71182100cbe27231bc9f98f371a91151d99d7b81873786d03dfa8434bbb0dad76bea2816e07947f7e40b042395aa6c90e9e1e61dcf67538c699e4b2ca99562a2aeee7ce9666bfc08c5310d1896edc8f700ccf031059458dec997a84beec3eea2c85e45647753d1046fb654547f93bf93b4b90954588118d779aab15ef82e1296e601894bac21ff1031e1e2c68943c8234ccb1d908a892a523fddecf74003f3ce6531ea7d702951bc2b059ffbc4fb7b9ac368370c4e1403fa9a0874925c1584d747c67948e6876474cc73b2144418b0fe4143da0c208bc7b3c41fd04291a575ad03d8fa2b6af551d2574bc2563d5200cb92e6f14ff715b077c11adea44225d30f7eb2ac83376145a2ba6ca91482587e13b0a87b8a753d7cf0e8f2c077ec2e6f07ce338631e78e2ad4a2b13c9c931ab30177727fef089ea770c1d0b1936d509313c5c021a5e1267d480b84209852201b3a17a12f00389394824b469f34cb311a412b1c134257955d5a0cfa3aaeaf14e4222f03befa85689fb3d8942865fc83895307ba8b146c8ab945ec632376ad2f420303aeafaad57c915496f54f56b65461e16ec89e7173e51ac4dcea9fd43d0762751d85637ae7a5a656773a32f66abfe2854f6def46e0b1f84a0af4e4da029633e739b11add040a9854f398482c04411e8c4f04033bf7ddc8f969c360d2c8b7c9bc53c367520c3194f252049be361cf6177729fb1876398f98d40403fefe375f7f4f67479396cbf2b9689281960d8cf0f51f682dccc4c46fb3e141b5ee915b28f1feb2b2c5f30679f2aae82b857caa12f9c8edec698d143e34535499c159844f19c6e24a5291ac87cf47b39d7d72f75961e3bcb82092252b15babc9822654d2594aee134b140e64a9118f0e59a821c9749c9ca5407e5c4b5f714d5cb34ae14ecfa974e69b3097efd43a5eb4863758f96994fc06bb91611c0786be1b56f54e500310f2112ba5d24e956168de21f5e331eda768f3adcccd2c8139c721a79f68f722f67c123b6b89a5469ae3f39d179a2bf6865bb4da052c75915d29b841f4f412e98110bda0f63d6400ae05900ac84c246da309cf55ddb86d91b749be9ddc0ac4d32c8699f4e070a6a48df17d4c9eb3b7998cc88ff2f914e84e366cce8a155e5dffc86731c2b32850ae3924e1b65530f7a6b5deb97743f04a1c896dccaca2ee22208ed326c4bd97d481d6260176a4983647955bb0614ba979cb13361f68d21bd630569ab291476939429444ff3142921eddc9388e88e09c2d33ea24fed6c3af572c5caf56440f2a9d1e4162a42dc169fc468db2a62f73df7e51acbea3c98888951677aa3179ff245b74f2419cea230381a7887cee870a32d926479cb58d960ad48398591cc01f5384c8b37f9def8fc5a312c8678a982d4503bb391c45a2a7064512768278ab23644e7d71d21221515520c8a3b1de5b58411ab44d456c8931c12f8973b37c43e1aaea7cd78af357c5c89afd24b03309e2d126f2f9dd44a2cd20d7623dbdc80fa1179820f143c80b3f3decb618971c683f4811d1b923e5996d18c78eaff36e1036b6439ac1d54b2295c9186e8d07e59b685f5e5a2ead9dee27a414f512514a22fe1d81e8e0d2201a569d9f2144fa578e0b94f1f307c95df87970e4abeca65fd95d653522486b4460c4bc20929ab765152ea6c0a49fea36d7794abdf927de386b904ff67a644a7d0fd5c90b0125eb685677dffeb24bd1f36a124a8090956b62e885f61656d9d75475ccb115626540ef4cc0bbdff7415ee7efae3d2bb2c5af9e88fdbac5fe4dfd4d37310166d3bc3023d91c8e924eda885b53a76672ffd94df6fd0a88558e7469da550320dd3e8fcc60a286bd78c931004128592b37702df5dc7ae1f11ef37579410306bf1436f5bee4f219d02fe82e788c7251cb9076699aa561f2c95c1b85922417a11da46e816d00acd6ea24ab9aedd0d6ced78926d2f737488449005c728d15f162b034a15bb3cf694d1b646444dc4b8e778119df9a42af5f29dd714b8f9fa4f74aa61beb1b7f61a0eb25bb46f4a710c272fc069f531855e0188d63b977482d11d2a83c284f04f5bb6e2f6d4e1325b87fcab312c1b807709976564c64ba1b288fc9404d90c4a3be5048a2bcce153d852802999f57d73f0824ddaa43e17e0c04eae7f01715cabc8f4a1887742664e09f6a35a019865d2995f8b57a3be579c6956b6a16a6cb536e37e0c53294398e1416c81c56372ce8d851c87776c262064494c9a1e9067ff5c041ea4ff78dab057f355910581941d990d5872d3a778ac6544d8c2eb91dac968b3ee2287a98cd8a2a0d73816cf9af3c133b96befdb7aac3de0e2ddd883a4bfa49b868be19c3fbd9271bff88c2cf9b563561da5b6ea77b9449b93de1dbf679593e6576b5577dfcc61cf573b5605d1f1d92346d401fdf9e74e05ffdf3785434f270189faef8117b2416d3a3ad069a1c6a2b271fbadd2c3d3f708c90c182426ab2e56a6b8c7ba877e5fea0e33ae509397ee53977829e213c926605693f2d494da6a66929ffb1d31767780a01808eb06068676a969e26dbcd98a2bb516e2690f6767dcd3b10ac64fc7c10df74c71e172d56403be530f32b0a30f95e19474503cdf5ac1c184cd5d3517906ff6097db241285281ead86ac523eb0028d5e9546af10876e02b007d81a080d304b5c6ee41e8c6336227e270cd65cf76021a070073552ccdaf5c7dab05218765e0ba5e77e80cd708c6e61ce4d696b2c8d0dd7c089aa0774d81bf2f9fb72b2326c317fb50539ee4c2bb313b720c09cdf92eeae557305aa4ca6107ccdc3ac48e4f7d07d9474a1fc65fb4c97923548fe5ea16e5b8f51047afefe0b224e824d41ce0b0018852940ae4bc3a53cdb9d91cecdd2d4706cfe6824f6bb12f5f32bcc0c88bf2a8973f67ba127a997cae5420767c6d3b4447021ed0bbc8f26a2632ec8bb743cbbefde3bec7ee07634ac59c247c7d8770be0c89877e6fa6cd94913a745d8d989cf3f1938d4f36359a23def63101251d3869f8904bb8a89d487a92c084dce53b869bf03d0b9caa9c1c18ff1d03a9045d1bc1f5d69473272378df1241c718435a433d6c7903f041643d5c22ae8670ec043a2e8d493944a0ffb355c00c836186dc8978f59768b363f3e9bc5b371f21627865fb6f0b64338bf9e0e6b9d0eb7e3b1800e52198338f4ac9f3ee892104b965267aa7f195bef4aeb2c6e4aebb72dbe82077460d38fce8b59efbe0f4bc42665dec0284f8cb61b87ab9b7a762a5618232ec183661dea8f934f0437442c6aef67e7edd7f558ead5af18d3d4799db780d6275fd9f80cf6f326f5cbd073587bee0b22d65cde444a5fb6fa091df4744eaba41939a42db1b8a518271058df9cfb6290ef4377e672a9b9ff5e122d7aa129e1db6bfde1c26f53304977d215d544dee1fb9d1b50d3339ac94d051344445ffab054e671b385885f5f809c9b2c2e5b2e741d749fd80312d924ccfeb09ead5b0b33256936a6c0f0b4a24a8a41e9a584f4afaa546babf29f6f3c7e558fe2101375a4edf5680914c8609c7bb32dbfdd0babf4244f1087b5575424723ffcd727b406584fd1089ffcc502e18ebd0e970093078a0f3bc42f38aeb3826388eb5252dc03bb74763eaa4e04541dbec3a27a70c906fae55596121299ad7dcbcf0f35a597e6d7c1e8a5e3c55b2d364e7020e5896e5aca53bcec17da7d860afd417ac924907517c844484cce69c7f31ab90bfbcb7263c09319cf2b70f59bc33579df009ceb6b8f4e0a16f721fca1d0b12e2b812e4d0894666eeb5d5c204129083bbfc66859cf9c4c12311ff2747febc15561bc224c4bfebe427fea497024ec8c96c7c5a5b6b89f75b1334476376df1c42c96c42ce80f2660603446f7cec1433681ca703da0a772e565b109b713b3156eb3f925e0b90f57b749c3570df0c1b8a945fcc878b11540088940b786a385053594cf8716c1a25b414979a3440d5e3f537c33609c566ade9f82a4508cdabb33a5a47016108fffeaf3be800bf70150c55ca8aa4a4e7b900db8a288bcc1847241f74137782667e8045b0ccf27b8ab30ba5e819253f4a4083764006373a6aa7ac775cb5c5bff501602b6e8a6a7f14c2dd11eb536f83356acafe083788f6ca94ba23ac1a786ec8d201f9cd1dc99bc31acc669701608d2c1156499323fd15c4fbb06f50ad8afacbe568e9ad310c4cb445c00d19eb9b1ea8c0a5fc44e3be46363becf06c0c183cdc1f5c978d308bae0299afc6f69a79f1bf618d50d6c9069c34342d2b800d7a5683df27a13f51172a87b7d8f1f5e0739096aab06d5ef5abfc456516741689fe4b7e08a4de9baff21a5eb7be2ef3e38a688145268d6a2874a7e0983966a074bfb82c968887c4ee3ac470c316c88a646731567897e77c2e3a4685af71f010c62aa17b8c4593c1e3063ce12220afcc559badbfec1c5ba92e6461db7385a0d41d759b23dd3dfd7cd013b02dfe5ec46fec9aa873fb76dd3a4d7b60934315d3de87b10572ea0fbc4c1a839d50c66c9c44678b0143d01a2efa192eae0efcd1448ce019a8de7a41ef795a82482ea109efbcdb06f53937016d59a1c484e5c144abc7e0ef9c8f2e8c60efbae2801cddd0c405c820c259a298f5789a3d8065434bb5daa4163c6a8a120b62140a8bd8dc3f46c4dae474f2509595a679838a74d8f79ac2262d943453f569caba8fea5d364028a90798bcf075623af38b26592fa99887e4113853129d1ec719768ebd906ed178a6bb90da23aa863531e697cf180f783a6a7d5584091944978738c6a88fb1d53ebbdc21c957bc5cd2738c13ed92b6de5f4564ead7c19c957e257c7d3b61bac694364841f3e11ef8b99758b644d18426c001e042a65150f6fa4d68927a759f437308980d7bafd0c78df725a045ee90f1d2a1230e53991c4134c759304fda649a431cf3f24b40ce8c6dded3c16b5440f9e979e3908f524700395d640db247556d4587e85df649a605658648b75b6d14d6479b6589208beb3b0bab2aaef4f4e1cc28c6c3ea7dd88d95867915618c2cf5f1a44e9e39331938f1955a44f2077834ad458647f49dd1b7bdae1a8cf671760c90516cdf998de179253555191e7bba481f6be2d1482af163cd3cb28568b12bc42cda31d24925892c2155562c1b77f98aa5a5f0cbf26b218a06b3586e72383d5bd50eeee874b06d00238d10efaea704b68ecbe4c1478cd05d78972ae882de20ee09c8e15c2f51d761f8c3cc5335c48cf8ba1af828efec57e46a38d5a62a69976283f433562e9721bcab76de91b99413d56ceef9a01e81f6369a6d0e369fe3032c96387777d3651ff8db8a28c6acaa5f6b2875494ea8b6153100587e9a742ce8510e145185f66d6b9f9d2f2c19fd0c72bcc806489b23e1234e79c4e94bf62b8ea86adfd9823ccc3a747571239dc62895cea0f8db916b83fee71265028953bfc699efcab4e7a59be4feb9deb9603a4d571f2170755f7a2b9506b3ddaf5e4cfa3bc387b70f1e24a53161d3841b439c8fdfec66989c96a1a2ff292742cb586bf4f2c936ff046338fa15dd7382f143909fb51a6b18842315362b551a68e509807638374a0ea917311b1733bcc28bbcc35a593a759c56210ac152433b4ca4055e36c94cc0335c112378b77dfdf14621d5e4c3c443ee82c03b8beea877cd77d27fdc0d46ddfab77271ef5b32f25a406d655617d940d1b67159238eb1869f50b7adf258bfe78d4df6f04a0bef89af2550975e50c91259f1efb01b7c0824684f8bebbe093cd5de321921c34c4f868349f00a77063edf85d4bd3ac5b6fd29d1b25dc7c995a8ed01fbea2f66ddad9f8a6c2b0497c63a691699d71b9b12e98edf0be5339b1b63e64e7eddc14bda095f85c7a2c71de45d60507711a1ad31e3c7d5ab245aff54f734bdc29c95987bfc61446b15c84ebe74d731f794de1cc7d16cbe3a3b5861ae38a5847b2a24379aa2dc1fab916e8960519e41306f63f183b499bb87d8e32831ff1e15cf321d532f0ebc9c85f18afd1c21b25ab5a71751270206a3afe7e624f0caed367988f11b786f0e8a36a88dce357b56c1bf80824095cd7b0d3b9c8c2410502f69e676c4d5071cc89336a09da296bb0859db89a7c1b072d110e48fd1cb1f44f46f0e4306ce658267f12906d90daa6f037e7758be610ba77ef0620c056f3d31e7c71dfbc5af510cecb5600147483acfa502b6543fbb7a37dda009c950ef119ef27145f260cf1b89b2b1ef82b0bc0ea0fe0247a5cb9e1e2834d686d7f741152542053b296a11b2ca176de7f24da4d2ed26317b601f6b0686f000c554c5f68af43c801598d58887e3da9998fcd76eb079e26c1e323fbe1967eb8a303d4107ac04ac9bddf965b3b13c5dd0a56bbecd83942c15363b72036f3315fad1fc09334d547f0494363aceec0ae84175f81bfe4d22c3fa92d989ca0206227fa0d153608a6af4e67e7bdae07bdf2658765b1e98e4efaed19b309e7e9660f8abc1ed2d216e7721a1877586e15bbbe58feae2b788ba7e18156134fdf506daceee1aea4cce48b0ba1a51a4e5a1196f2f3bd305a660c69f89526d28b6bcdb9d939f5e1714abdf5e1a3cc80e6714965fcea7b78afcf8ff6c29943bc7bfc0a228124bbe56988bf9654d4af31e342fff7c1debb0f90e1f48407f8efbb4d6ae689c30f262c7cf925650ef9e987ec2ef7e95b5d1667b097da90ac460e4d6aa4bdbe1f61af9ba0e30272a7ab7a8bc651c4249499a63e06e599bd6789ded7490209a40451295b84a2b0da5ced81de2677f19f957858ac92c41e6d29981684a380ed81a2967d32933bd0c673870fb5ed4ae38b34ee49f0d0840d657fa81e38ab917b97d3fce3eb3d76680792ecc07d03fd0fb56b091c81de5543c0d07befb9e3a5f7de0ee6df07ef554bdacd5d5c244f669e3819201111b9894a7e3f87b9ecd67fb4528bf711de417b246c57106e7cfa52763e11a1bb3ba31870f107bbfa337ea24711d1fccb1fcb2f2ac1d0eec586200220acc5f661db50bcd45268805aac72c8a2e9298c2eaf3fe28d6764b9818ef9d2ef97dadf17339ac9627a9aa042ccf78980b22961ddd1693063faf92862df22831d9d729cb86d7b8c5731391db4f6a32c9ab42f6b4d6f8fb00f78b3a6aa844dc79e0464c39ddef30b6c526d4107843f8a009e0a7af372b7e7ea7b4c80593cd0f39f9f2d2ee12f032caceec07d761bba53819cd07783e83e109f6d6198aaad1a94b1ab921f5bf833dd5e22122983c763e79bc1178798ac72e5d1af9b0366b0c4601b9b255da8a238e171dc42a87c5acd0ca615d9494e503325941f348a66e6e3aa372db8da178f35285587daad3dd8e3e8855db7eb67e95c38495971d8683a4df0287c67cadb8c1a16356591aec625ec906292af7d310a0dc9ab7438c02085cef22863e08cc1580e814ded896bfc60042e0f72371d552e060aa452154f4c9272735d6b7551f0ab17c397ecf879e6ef04438c68270f3cfcaec4c9ea40d16bdab0147ef1c443827585e39a28dfd0d7fd3758f770b799fc953c141b85a03080b7ae76d85f6d353674ab72a6ce50938c07a13a91aa1f8cb92c8ba868e277d10dfc308d113ab6d5ee228b9a8f91e6362a4c765d3cee21b21dc55720b727df3b370998eb479c4c7cdb9ddf666367c1e8b48aa545d769726f40df7ce4529d954cec6d76e7d970d7f745618eb10ba8d397cf8aa11c024fb96e3300ec73ee1219b09d9f0aa82447cb6efb0e7978c840326382ffc67cb09587063af9c68233534c5f5ec4cf45db1fbd62b5357d975c4b3dba00264d155f0e06f4dd178a7f313b3cd69f63f464f3b30cd45e74c3b52ee1e3b3cb02c0b3e0150b46716ac617e378fa27a9213d1b5f404314d8e6518ef9a218d96f23fff4da50daeb81b5dfe67baedfb477a6271d4e504945f8e98c97306aa06da7f4e5c934304f22b9f5dcf1c14b98deed5cf7956104e6cd637c172e5b650d24ef485831074523ff08b26e227061028142fe247b352a45b57087d8a05dab8ad7dce0b83649dd0b5ed7c33cfb2dbd667ac9a2322acd2841c43561f4483b1b84be67d0db7230f73d70e0147165f7796af69abcd1c20896328dc7edb6f56772d7c47f94d7167ca803d878885d125aaf6a4c7c4ec36277d07216988da1148396cdaea7279fc4b666ae3ade74f83d2cf14e6078abc91cc7832b599fe1de05345656356502cd48c0fa8b208a15ee82d33729d1371b37c3f5b4e7b60e3f10c551d7bcbcf84bbe292ad738528ba6c606bced332f56be1a0beb341a68ac1658159536615459d457f6d0584e81a1097dab5175915ed1547aaa209dcb9942930afd2400e67ef3460fd0d49fafdcc08bf455bef11290f86de970c5f34d93c178f9f1a752505a90b9e6da1345555987ef20486ddc1e9bd722ab1f5a4c159fa10b521e80be0064c05f229ce67157e80f971386c7f9836a6775d528e4b449ac249c56aa89dfb11a91f4dcbf0920b3758ff5a2d8f075f4d4aa933e2a952ed03d6945a6ab2f43bb19752347e57d77bd243e76327627f0875508875a8119b4d46dc4de51e9ced315ef89f8241a97f156ceb6e6da9d4ba1907e6485fde9058baf6e92191f58672a5de5c3987b2ba9c147d27fba05667e38d4028f237b06b6f93f99056a41ea65b4ed1219e8f6351d3dab4dee66ef68b90672f165a17380ba892518e176fcd789e6151d95f26d05b34f43a06f4cc3d1566b53933e532082b5b716b187b9d2e607b724c4dc4da9eff0a1b6eea6d370cc7bfc8fc05f48ced42cbb3e15a7e010b223aa11261559d111cc8b2b8731529f74ffd25717f8954529a5ee89edafb39104c2a90fc0124459f22c6929552f7c409b69d11db9b4fcf5e88d19a9d0fad6e766e663d0506c60aad3bebc9a6c6b41bb1a850fe727f3ba537d70ab49442365d598a8c563efac9bc17724d930646e6935fff485b2f896418e203f962b239849f145b2e39c54b897115a1597af3bcfdf440a1d41f757d2b63614f9496c9b62485f6ed92147cd7ad6527434e0b6d866a0fab383c8e8cf217df13a40ee6977edbd9395a8cb1355e712c6b402c22ab5c06f2737ee3c130a05cd9b5adeb8cb94174619b823a33a983b8ada70e125bdab16ac5d1c37f5acf07285acdd4502473e231c45bf4b298b53409ca86efa7aaa798690c7b15726dc7f693d4c99e1fd9655550ab5d9f0407a205901f85d98951ec53d8b692ab9b315b54b283ddb7c2f58c04178c022471d0b4b826dbb1aa41fe48efe3d01c83b0d88eb1339b68a6d9b50ddfbe5617e3230c719d387c59c4616c52cddef94a632308159c4b788903aac6a1d0c183993750ffedeba4914938e00ed3af8f0ab706196a92249daf02e69e221414c3d605bdcf7b58efd25293f1bf62951efa6b0771ef5260ef7e05e255c11f9728354c0b4e88281e2a8d5219910161cc4fc4ea360e462db1a14d5b4330f982d23441b9f7ec33123373dd84f24f84fced067c138c36a9089fd5241d0bd2af208e923a488dd504c0c794ca808a5aded80fa30dbacb7a472d0cc2385b50609d805782fd7f85a76a7cf1e607c7960f4282c31c4f05020b1863b4c0e610cd06320d64b55427ea7bfc8d0da23a1ac458ebce858553143885e23d6737beccaef507506a7d66cefdb2bb465d44fb97d826628344e5a8220c57069261f4779165c217d74493a6f557977d56a870839c1e41668467046aa83a1932aa19e9cd9ed18fbaaf7d1ff9e3a752dd19a21ce490638f8cab1d3e9e1edfca945b86e875e465b879ce95c55091abf194583422946af686eadffd57f3941d83e91d83a19d924b4b050dae98bc243769a0d96e54810625a1eaae81884cd8e47ca8a39ddb7369dd76018c649281dff5ffde124bed66c821c6689adf20b842b3adee7fc6384d0b9b99d59f240aee22efba566e1b1a12b2a714ceab6dd69bdad36da3006b590f5ef2ca6b3d284d832d84c6c9656364bd9e834bde79d8a0de36724e529e3d421db0b59ad43b3cd5510d5046ae2321ed04a1e002ba743bb7c49f7f722a2729de0109e52406a47973997e0ed7878c7d04d60cd1e692aa914f749c11326ab1362a912bab70a42fa65526cb7aac87b126b01cc878e0a68e7e9f2eea1393899078c69e3b475d8ce61e72ca0a3b88e32dc0ea866721519818bce888f2aa1ebf7d605cc4baedd415cf8435bf84e5e05ba64c50ca6f1be56f9fb49bc3d3628f954b111d22d3ace756da444a7ef0cfc2a7cc881dd700a602e172f1ea1cbee269162a49a2acc8b2aceb929e830c3a068dc2a7879b685cb1df388a0d479ba8fb9490382b44017c8648282574e6ad640e39be4cf0be5596d0de826d359547e66918d74d363651f6ee859ecf352c76ecafaae01b9b74510db44b71d8cf386bae801b7aae28bd41a12788928a0ce5276f7c5038c22975d1d15cefa80ac4ea2a701e2752f039d5ba3cc0f5c9c25481ff745baf6b81c0cddaecf43341097672c50f3598e7b6e982046ac30b52416f9ad9d0f4a6676845e94b8a425a507c00eb86f19e52052a33918a90f3429f4163745f7cff4940781f90d4d41e051d2591c414345d9c5614dfe1216b4889acb2eefe3285d4b7a108e70f72850b4622ac5f8e226f39caf0e647c1d4b7b8831c8b81a2ba7ba353b643df9dae92e4535d8ef4b7a4f850642025e4cb1c62d0b44169d64831074963261de5b4086447ddd21134099ae7ddfa99156ddc86ec23a88144775b47e960113339cca7c5c2ab02dce613060aaa739dccf4c60067c3c148da245d6bea8bb0f38fefaec40e700f996dfc3dabf5797be4d91bea4ba0534c9b1e8bfbedf1a52645e5692a19361c3e81f7264ace4c5dbd830e9ba8f3835198736cad9b73d0377bdc54db4f6d3ec4e849f12846e3e8473ef56e6831cf91a2057967b9c042977c98638f9ecf15039ce2dba05f75f7793b6a9e29f2dd19819775d291e980eca0fc5c5b75eca132680cdf5fe18f564fa804b6f1f661548186f47e62c8cfbb12aa41a4ea77261affe1a211228ccb9dab25542a5a1043e7075972f1470613be1dc1de9d52dd5c426bb6ea888f2325723551b57a5beb1faef6e548f1d543898cca05abbcd7105365551dc527bbd6fb2d7faa946dee2af8f3a1f6e5f3d0d8ce01d3661af218f978a3614c06fbb68bf7ef14386982f578b821ef7e4d1a23a2c34f1705abb2be04def85d56cb942ce0e3ea0c332edf10ed3d821f2ebd5cc09173b925678439a2ff38a592eb8075ace818212d4a9b2305efc428e2107742720051b80971523641bcad8ef1b94c220a59eb63288fe357d934e97742a7634bfe3976f125a6cf3806aef338a96dfb771deaeadcf19e947329186baa7c3f822d12fd12fd3dfd5b33ea0adbc2b5276b0919ff3bc73ef4e96aaa6e6f6fcf8fa32ff7d1d6084eab34faa969bcb5018bff44327cb2a4c47ee4c20ad3e1dcfdf0129cf4ac3c26da872e3f84ac661ad55cdab7f35b5131886e137463018d6f917c2d40ccb300a23d67f7bdeb169fdb74323864c88f705981fb8ad843e8313ac90a9ce901e92e69b446c160aadd03948f3308eaa390efa680ec8e0a823038dc14420e3a1bc79b7c74d3a8112d7127ae71afc7dc3170d678b5b5e5ee6207a95150df6a917fc2858412844057adfa2ac729a6c7dd7004e6fde3f2e11b170a4612de679d2ab332cafee6658be732c4c80befd69b81e4096b56996f9b382efee7800a5b72e8db244d29f507fa636f2a98aaa5e4eeb77fb1ffab9e850aee53bf103b06132fd016a5e0205f555820d803570ac04e55745caec091984ebc26cb01f09ede5a80706d033d6fe29fc03d86856451b6e3247aa254e22ca419df334f63bfafe94cd1612c8c0c81d7bf25ba3137357cd2040fbc040d0108acf477ea523fc708af2dda029222fd465f327c11592f60b4ca538b667c8f6f5a4bbed9686a9cdfcd01d616d9f3fa3fc6a9ef0526f1774223039654c32d3de57a46da24e97efe2362d6ed8382ce491de972598ef2baba68e5044779ffe4ae9fa8f567751b7c1b35587e8dd8f7008bba998e31934030d7340e584fcb1c767756851a09ec223134f72520e2b27d5ada7518a93484775ed0a14077d181058761aa755ea6c3789f7a59e6108c6d00ae9af5b3338397740e5f78f28fc7118c2402eaf9368dcab9372e6000d19c62c4ffe9b7fa08e893c7eeef232555243b740d855151c09f2e58ec3dc811b54790285c3ea3fc5f3d93b6067a69036476876c59cb956c444a64e199acbb45a9152bd4e6bd6ab801d9575172c7d727208656c2f1b0d038a0409a6519a3e521aa13edc48175cdf799064eebba9763ccfd35251545505870c63efdbf179ded7b32aa69e97b9360a2270a7f3e0c2dfe44dec872e6e0412905a0099552796ccb7f3527b5e3b76f66d242fc74806e635a72d3a7e1d8523f374166724afd74806963d9d645002de292a977c4d3618c9377fa3d1ef6967c967fe74f610784f2820fbdcff482bef467a32f91abf27c96c53ffba909c01f6a087ced793b6e21b6bbac65f6600a8d4ae644b0878b2933337bb7b1e69e20f699b6ba77076b4cb5cf5ed41d63d9cfceacec4805c2cd18bd360b0e164f093cc73bb77ac1361d3661477499dc660c77a7c0729d8f1cfd822a1d757b8e3b3157f47f117ed3309575640c25fa75b19f90d53ee69a8e0e9f7e869c2e8e9dce869e3e8e9cde869e198e3b7169fb952e893a69ec8d72c92fbf5f0e929e4b40ffca70eb7b20c9cb61d2431bc59f5ab6b18f00b631d843439883438836a90e7ca5bbc6783eedad4a6689863679e8235de87269ddb27048f6be2d773bb7ecbb9812159635246accb187ff5fbe9cc09c14acaf31e62bec47709a82f9058b76822a4a930c8787434bbfbdffcdace9185df554662fcfa378387535227e7689eb2b5afc77b1a7c388eb02808e64677c6dcde740657db55f51eb1dc30c55f9736f89e032662c2f36b9ea81d59f6b602f84f2b83a2465486d2e0f1e1e2854eea95f894be3bdf1758962ef8f0fab693e40e2c4ba244116065d6a1efe39e018c830266e741fe7e1947803eee089b86ffe5a3aea144bd27352d1ac62d773b9268ea7899bcf00e698d8f1a05719f5a664cfb8d636f3a999cf4385b7257e81d0c23c6d054450cc3fccffffe8f6adec6ecf86fff71cf55f51ffffd3ffffddffedf7fffb7ffbb9aa7e37f54595efee3fff9f77ffbc73ffeeb716c87f79ffff80f77fecdc7fc1ffff9bf67f6e31dca7ffe63fac334fc1ff82edbba39fef90f1282fe82fb96fff31fe736fcb7223bb27f66cb32b47976b4f304fe6bf95c55ff9937d9b697c7ff3c8fea7f50fff9cbf692c0feaf02a225f76f006318462a6f8635fe0ecfd7f913ccfe7f7eace40eaef967b0fe7dbcfffce7a917e7a150086e90fca9acfe444b46ffc3c32b3ccbc8bb0bb376f06769f5076c298661a276863e36a7e5000e398661b4fdcf26f7cfbc72f6191b493dedeb9fc230ccf5972ffcab956b9ef53b12046ef23ff4ec9fa82bd97f9410b5c5b735db1593f30734ffea13fe0c594500859840d23b45208661d03f4ad8fd8fa931f40f0e985244fcfef2117f0fffd719fc9fe8ce9ad34f1e468661ec3ffafc2361180553307572efa81992c8611891f8239231ff6e4a2c013f964c6a86c4619878bbff952a300ca33274cf96f4fc8b5d8c61d812fd034e7fec59eb232820383e5782080c23897f40f6fbb3aba81d99d7bc5f24627ff4252ff3bff914465198ec3993081e1886edfe2acffea83477ed6c859fcc5e39ea308ce4ff0159eacfae134c233d0272591dfef0a5e75fd1f29ff94c5c63bb39d03452478661a7bffe6392bf5e2fe82286eaff950831ccc723edf7f768bc40b1c25f16c6b4314d4cffab20666b8c315bdd499c4452eb2462fb95d1dbac65fb746d9a92497b1b2930364dd8d7371846c400d616fe95402d4852a26cf8b8a85c015589b38af75af6c894020cbdda152e92d4dc8296b567c6c88894c8dd6288fec609c642fefcce3772509b3d05f6b70ceada412d8366e09f3eba94ec719c6c3297883b5cad34fc8061372efcf16b27d303400f95b3e9a92a7c3398c313f90d247d4d050a10a5ed6a8aa769fbb0d00a2aa3a80e43634227f41e8fbc6fa300de57d18bdf668602545012be656a8ae1eaad4eb6e2497384ef83996a4c9b4c8f54e02b90dbf97d1b387d5452fc5be8411e2a814ad9a5f75be551f0d481defb0e6c042f6705751f38ac01c5675f3a846f70af5ffa4b7ae301f15a5275ded11bc03bd6078b4f637d943f95696cb8f9157e317b658003eaef1a7ad3551290ff66c1b1d89c12975caaeaade469ccb69d6f6c5093e720db6ae4a2b3208b74b0825f206978697339f3e997ce21d6a5088122f18d76fac7e2b0e265479631703f7889bfa8bdcc198744297d3c8eebfd6ec56b9a16a85f65ea47c1612802e58bb82ee2ad55167b6d78254a799a72bfc5dd411464004bdeb4d44b5233876bd3e8f0d05933ccd25859742856a1412fbe61dcf4fe12e90898ef37333e1218698930f975a318c630f9323ff73ab3da3ab3cb3ab3bf7566f172c6b08ee267c8e14c584e8c715a90eef25087bbfc5c36e35b06bdade545f0bc0c23c169dd06cad4fbf4ea913c364b85d762305518cb8c1002de0a48d5dd4c76ea9c5f50c61bd517be920199fd71a542cb75dcf75d989efb107ba6e78923cb8b711b4c92300d23f446bf0a54fa76550a5b8225fa26cd9d1683a0527f83f8486f902f67289766057ac3808db671d0ec091b69f17827721af33493eb56766577ae076162279e22bd4dbfabc26aaba80cc81aa5975435b6783311422c4d1b64760ffe44d844fad2af9568cc8aa6e990e437fea2ae6ccef4c84c42c247889203e47c7ece38a559002daa170daae6419bba635334182b9f6e3e81f4d2f91202a7ad82b6f683cf90a1c382b1b358083ee2d81894733f7aaa9fa60be595a440233f4d5747f3a1101ff8690c9016361a5c8305aa8596f2c3218fc32609d16f918ea0fd7e94ad1fd4fc51ce820fd306cd179e1454b32f699c45de6f083c2d0cde485ad2930cbc050d3cc2c8131c4320a2fa34d612509ac5a55138242ec7b1706ae452d09025d275caf5ab3b3946e1feed6d7db4e893e27afedd6fbc265169b43844eb53329e4593e2913a8dc259ba24290b33c57590625bb05990da03efbe9da409224f457f46df8b948d4bfe6c63a67eccd61847d9a150a9a3d74e7f5d9d847936a09acdcdb4d6bdab9dcd54d6c1ab6dcd34c1931777badf539a4877e7d6d972a46c5b8f46446aeca779d4c1990dfd56e93c3a1836a273f370648a8385faba530880457dbbc581b54a354235e9a9d725cacfa21071aa1812e0d1dd98b2a3fb38dd2559e253137ce306b6b4223372a180cde37d30c666add4230ec3a2efbe3d3b8f3684b1f8bc571297a7be7cbf47b3bd5b235b3dcee1e2eda0f5cf41d6eecd6ceb3d31598f30f293d984eacb06e9964f2444c2948d7876672278a2a6ec5c5fcc84cc1e253d1623013caa53f5c850ee82f2707158be922a1f06b451cd70efb9b3acd97063811e322e6c6acc4fa6d4f9573d36f793e453437338a7baefb5d314434cd47e4a42d0a7342e74815c94abd04354b3bd99d23a64b5adc72260fdffd8898b45fc2e5fdc4f1451ccf8cdcd59ee3763f7cd03b133c10315119d57314a9b31da91099f3d3cbbf07d5b461f9f44bf9ee011eddc690c4c1e38a5cd9c6e5fbf2aa18a359f97469af0fd43fd75099d83bf2e642fa465e0ab283e38939b8b90f33226c342adb7656a15f287cd0ef8a63c3de06848493f40a6a1a943fdf277e1633136ebd8c6c4949364ded807cd8c9256aada4f58ce6b37edcb05277e2a62bb10d57179d8f22752b742114d9a61e43db5e50829c9fb59995baa26f7099f69e579600ce466bd65120069b300bf44d1e1f99afa6ca78adcdc115a1aaf7c88892564c6ef1c402a3ccc395fefab10c905548034abf0cda35d9948ec15a86d78501d760210f987afe8a7c416ff43cb46aa463e9a046b24099af787cad2c9c42ec223f9f99f791117458ce425ff02b44b4a20e1fd9ab03e34a009a27268743b91cfdd0d5ea0f471d324a59c87e987b81df959fc998cd2e7c5bc788d4675379a955bf68257557e9d451593cc5d8392184b07c1372e5a4e0e1003e87a6244d001a45ff995814693dc3f47f331f3b64ed643d0edb6070048ae5982ffcac4bb0e6502a9caa2fd18b75170dc5f6900b606240e1cffc5f08dc909be2758450b30e811106d6a6e00df8543283c58e8ec4314253f4d43f75d6ebec5fcd80e97def8c456963393ba39161f014269f393e9746b02d711b0fe935c25aea6d757a54458d854d590305144da0d75fb855e0a060e31ef1dd91b570f88298080963141be6a91413f14742d7eb05e2b85ba71ef0a19512c7fb725c325162351bcb651ada7666d44b47feb1ab6490f2610baa4e7f05d8af940bffb37917e3359487c4aaab1c4aa5261e3df75f5feee97a81cce3de0feb7ab52de02857fc3e5931aa4cc815cde846da61bba87c7d81e3c2463742d8da3e619cfab097536a509e4c3fede43cf8dd7caa96bf8a49c100bed583fe9993424a66cd8a16bccbf7ebfac32bec9fa3a3cad5e668509c1b9b690149c1444e2d3c496136942294dda12f0982a0125a3ebe8f0cff71cdd010ed244367ec27e06f3d04ef22e7d74ba946d7cdbd2fb0d7b3d61a1c45107c2b8cbe3a5ce0723eb4fd4d0280a3e22ea33204380d157d4965801a1ea5f7110cd87183921c7fafd9eae7bcfe6ae3583e7f6c33cedd6515388653dad365bbae69c31f142f6a23f6fdd0ccf539ae3859ecd015276ef210577dfb59fe6af924611dda014181ccb0e9f3648b50dc6ba66eee091ad7d472dd1725cb6d473fb870f3e33bec88fe4f461c263a915e1a86c292e99843ba1f6873520d47d26f339cd367551d7311bd765ecb3315bc7659cad700b453378033ee4d7d148c4ac702100c6509985a2becb95c657c29aca960783e4268a0cef176524315f29acc40fe021a47b05a0b7912c4a8471c6d2a7bb218b41018370a1347bd9779cc16704ed755cfcd42b021910b01e212bcda54b24b74e2cb68d0cfdee14597c72686a04613d7fcadc40c27679353c52c2aa9242df51925e3bd1dc9c3258dde9a8188182b3729b7ddc6d0519ae755c6239a5c80843553d544d9479c2b61e0fca089b0acddc331a2fc0b5cdc1b52d608d64d44273df6f1fa5969fdf7b229a9a262c460acbca0b3d464a1b5c1f85f8f26b249e0feb82e339364cccb9577a2357b5b04e10b6830496e0309ead77897d399b49da435294646fea4cd2926753e4ec70444dbeb92d913c8ce1b3b82f0575b031a170a94a504e264a6ee31a19dc9705d0948566e5ce45b9b7d6f0d5bb36ecd52ab8f81a19f20a7921be799121f8f613588f196f8bf95cca659b7e8e92c7a818068ff6c46b26edb684e36d794951f042649820e453e85ffefeb949b1f1b7b13177b7ea70dab27528944e6756a9d074c9c8d68c2428a5c133b40f30ce4f285fd111a802a5c1024a45b64daacdba8deae6a96ed4c6440925b69b6ac04d36b146196eac7586ed19e643ff658fadd399ad252795d886c598d379eaabdf79ae640e96e099851759c4f9a3fd8579994aef67dc2486782657ae838375055173029cf502d1744290f55ab14c12a4edcfb542df0f0431d364d6214ec48e911837fc08a69e39ae511833fcdd43fcdd4df0511d03d8e006be15c883d4055a20d901f245dcf924370f905b3c0bd605299f0fb5db32dbd6f9c1bfdf299324dc5e410aab50cf0809a2302929f4f5578788b4cc1c5b2751d8a508df63e7afc14b3b8658c7131b21149edc19542dead3c81f70360886d40d43330e4cdf830f3984c0ea36790531fce0333f0edab7ec397e16bacbee5b4c229ca3c54ddb3a4255f1f751b5c1d598ca3bbbcd29afd6cda3d96280e24beafc43ba15a9b4cf1e74b1a58b6bfcc4b58b3698207fbb4c764b8bfe8e91accec8bea60925a564f121523f430f5b3f79c8a61d75acf46c1a4568e65bdfcfe3c99a252247587f9df2a5ceeb52bf08faf806c08b0b452677478b4fc8ad7dbb714beaf0974ad6912cd2a83b7ee5b44d1dfb04170011cee3e314f1bb517e2f59d109bec0616e06dae675f97bddc3cfe2cef01fe3edcce3f026633a0ceaf00d63ed0c79f318e3eeccea080d13602c7f0b31e3deace2083be333ac798b02e338cc7ef32aa3524cc3700c23e60cc4f01e2338a21077591c4aa43f1cac6042267f5bec63d6b555ccc18e8fce339d0deb4c029cc06dca9f22ee348b896a6e8b0aac0c71accba0d9f68cf59cb9ca78278d083594d3618dd0995bab2990f59d5f4e11a9015d5a9f2d28115d7600e47d6fe805bb430818e0caf133189af03702438c4331e4687c46da586000c47476b9dc813f56c60ae8dfdbdb52009175b8420b48ba20b34a007857d4b72707effbb4e9105cd937ac95fdf2e0e4c96732cf7db781590fb148b90dcd4b9653396d22f5c02d877064d3773d72a1dfcb1b8f8cbfbecb04c871b0ea06c09c1c52a8107838af2f9b808c6afb82ade3df49ac1662e81ff98721bb58ec9b3d278ab17e892023861995ce5df235358aa686aac6bcf3ae8c24eb2570ace4cbcc8ce3c5a782abcb0041ed3ddba37addd5355b203d8b1cdf1a83f8a40ddaea61fe22aab8af26950d11bd9e41b7ae4e698e391122854cda91e102977387186f9acdbebc5bc2459dfc202ea8adf8e950a0e074ff4404871ac810e63b31e2e40540e8ef7db1950cb7c96a2115fd11cbba9acaf25547f96da4cce058c951269b50d2ef032fc09b65c2e6ded3946a8b154cc2443770dee2b5d54e4afc8857a52d700fe77f5d513a7f5eac9a612e1064181a43b68866d12708ab84012d6c83e8f3372eb861d57d6f0886d70cc4e09500ed31c5120c8ea35101b76acc2caece1c4ecf65ecedba526a16880f1c3ef2af6d10339945b870e2975ae08f444fdf735aec0241b42af7914292f1922beb2ccbb2dac9a1d430f401856f11a5fc56479c5bc27b48d12eed64f0c19ab5bfc8d0f2c83b37c68599b01dcb8b6727a63ab672ecce812e1fea93dbaf069dde32ecbb132a5365a6300a0a0faac5cc5fbeeebfaa152ecf59260c7ef2f8c54ffcd7bca1cb6fd89495da5b6a27ac34cfe39036171dfc44052ee147a9a745f911a5f15a109cfe12a946af62a43cfe16e8fb503ccfb1222b82577202090c8afbce0f73c47a893ae08a2bfac5c00b917af0875ff0f34278e75ef16a0d7f22376d4fc593035852269640f69bf8d8fe29aca237660aa74e42be8701e6cce6ecd44ae67ef126504a967ec5d5e494568fc142dc3b031cb46087febee2c7095379e7d4ae2dc6f46b0d258dcdf56f8fd14c37171d4c288075e9db02c6f03ec73c168d9baf4a8e4be41996302465ac88782c8021ee543076d2a286a5fcf6fae08334fce022261c644c9b4c549c465f424c99d4a704fb93d97a3a1e1b0d50faa15c52f6d117deb8a10f5e05833120b9ba05f1c07f55c97cf05266772fe865a01ae0bee56fd0d613dd1c275b8d42b89dae7e2b3ca6b29071f8c61a12f3379dc3008069a20fe65912c88fa6dd920a78853ae257429c8a814c6a0419c4de7ed118014c4b6823cc96107089e761001c6383bc837e3a4de65505f0790374d5bdd1fa7c612a99361bfafafad9633018e047074ac159b53844830c979c84dbfb6e8af8232ee628b0a0be7df3d1c25dbb8671f9eadac214082cc84d1f163c362cc6cea4da4a615405b85c600534e00c5263fa5a4576dd36cdefb20d60795bbdf66f7add14a01a1e197c0ac90a1acc1ca4453e5906eb7c589c0e353c291c353373afb8d9ce22a0e65520740549b8774c035527a1d6eba301ebd611dfba4de4c86bd46eef34ba67e5350731e868766ec0dfdc1646093bab336d81e240b95a3210bc83e5b1ebbde5f1d8a320dc9435ddd3763d7a9ba46c868e94f4a7f01e3534c69bba9b1596f3ca3341403e6558fde484bbb0fbc26b53540bf887739bb4547168847ce9398eded07920015ac9db4224d9236388a11bf64add5fa35f20f0ecd932fc79646e670dedc7474e9dd22752a0d95607056eb9ede17244d34e81276589f44a6e4dbc4b21056d43cf4742f2b5cfa04f5d3139bcd0c5ea2a841566058e5c4255b40b037a55939060b74be7e58344c4f119e53193c537198fd6c4a2f925bca8391c711c3e42d1e4fc6f5a852310d34cfb620d913c7ab074248ce5506c076741754b6a47e878cad0adf2755fc419c83800cc76b9386c6916d025760a64911555b11b413ae2fc3318779d7bff77abeb59f37ce2f4da48e805b3194426a57267bafb1204dee8fa216b886685d5b8bceab3e33e7dc12d5a87c3b4a054355af9c788e6950554ee8eda31727f8056dafe15d11229ca349ec8af410fc58ed815dae3c785cae51357717c3d3f544c62342663184b48102e1fbc84c909ac358cb76a70460133ef7f1d046dd68faee10404f9f3abd0c8ae3e0559369678c103d569d0c4b9bd4ac47329942d66d3f8d1e3019ee44710665964c5755aa1f3d7c75c58b48c6b218e2bcd482e9488fb0e52d76903fc8ea3b70598ecd35e741b872cf30ba535a5ca5c8ab7724134de1caa4409342c56c4db2f777c8ae6e017aa5a910cd9f8e896dc469bad3747d4f41938534703c5a30e57b4633df88b7284666586619050b8c861ecd9389112c26b6b4e3d8515ebd9e92f1d22ef96970c8f932918d003550cd645a3d85e6571ed5f20908948773a97d415537fa562627efd9e18c4e14ece5e1ecc3eca638fda32ca5f2d555560b197c0915b50f522a45f1dd9ea523449ece8337c651f7eebb5389521b3cba17755c7887c92d2b0f061adddae9b06b31e816899c6ea8324c292f9c8a1a6e5e65a7c47a6ff6e21045e373c9912cd60f1b4d1714e5fe3acbad6d206560fd829fe7619f6e0ef6560c5352ef6fbca5e9f1277482bb0b00eb924f31d39b6e686c0cd4abe95c41a1e57cfb8a4ab598e23744743701de0587e2e1156c5e3d4680f904b08d62fdd7d3ba05fc1828ce310881b0f5939c97302ca3c9533f67d7994d1c98590499c37d4e6b7ad58498a1a755507b441b5e381267f9e7fb65fd5425f5a65a905d729d9a0ea41a708a313f71da22c19eb03e7aecef67c9de70a4da639386fffbca4bff6c75aa81fd8aa78541c8a7d91533deea5c91bb10d9a91e71517b0328005a178e638272a30a7da18ed27a1de34b63b7d172386c1893eaec29c17c91cb4b121c08e3aedf84fe6923276759e0b1e246c4f24b9fb2258e1776a550983935f15e5e89d7ec9161f33a611cd34556483cbd463cc20f68acf318249174349bf0f04e975e7f679326af0b57670686f9d180a19a93849dab01f9e91216f17320ee252513f0e7c18214690e2ee9a36f9233e3e824dd4905ae24ce67b19c2200c94a77e353743c387f25d0a09647453004117b7eb0397821de4ae3638f6a2c4add3c0ae1a83e99d7042a546d546345c643a28a8648017f69c1fb663d4c622eb396c3ee3fb68ad33dcfd52994a177500bdc2d4c50ac5c61f30df259a55e82a0a795635e88da1d440b200b362d55cee72aff3f2088d81658f100face049fd027c06d15587987df076269d6a469cb211bb7e942594e32b8a422a1adc1cf88d22f95c7f85a486fb3bcd40d8d1203435ce96f1946ee608fd8796360752787dbd65a0c10e061b2681e35e87e2f037359f3656df22e559654f7e995ce3776ce3ced82a437adde447fc7856994eaf2432cb5e50b56d07c22f6bf6a04dc832dde9700d978dce043874d767a9786f8b94ca984b35b026dab66d37870bdbc228b91288336b0cb5424c821884733262030e382b0a8da0fdf10d924b2d603fd35231e149d9a7567c143962dc27a1125ecb98a72abfa7eb7b76ff3456f66aa75b3c4f173e1f5f21be65d5181e2fdbc3314b4a434ee3a0c63f606916a64cc2126871c21d02d64eff156fb87339d4cb4c13f719568359539e969f91644a5179d5f2c50254e788f3b6ce1ec2e4abd05329cb930004bdd9d303df658166bf6b8b5b0bfce2f3264957249e9c034db8213385a9de11ade73d56c0bbbd07c098158ee632a5082a994b69cc008dfb77a8c944eabf961739b168f7fde75d49435501b3f35a1728252b93f994c02091fc8a554d58e518c69ac76c48e7d45c149c00b8df8b89e90ff5f2b94275cf0de9256a052d51031a331e8c2dd86eca272c8cbbf40541bc200f0ea8ccc96fdabdfaa56b0fc6557f18210c2044bb1d23b9da870b2af8297e7a0382549aeb2af616f62a83d0857cf685fe3aa1fa1d627682e685aa386b6708772c6783801c73fe7ac172ecd442ac3bc26aef67655bf6e31a7b15c5cb72b2c8d630975339acc90893cd03f1edc4241538b17d07613932aac35cb662cb9a6298eb1e3ede7f2591ff80bd0a7f206bb4eed4e1af37750baa2b0419c6de9a90d34dd5688ec9a7ed48512c618648d11ad4419b17e7e8f23b9ce1ee92fd781852e186eed82cc7ba21847f6a92581647ec42852a2068cf8aad739dbe5f98707a839d9f0445ab7f2e87deadc3936873dd27d4b0551da51eaaed030614f609aecfcf22531c4ab49f77548478d39b0a4ee28357e661c634ae90cb7ce7800daf08b07e73f7c438e8f147312353feb3e11d06119a799e9e011e7e513d521163ce3f7f7535e7144370818044dae57ddd07b21a431ade11432d6ed76e7f0865d00b95c9ee0c5d0b8c9bd7e99cd381eaae7cdb8791de7a1bc673dcae120996e6b1a573ec95388823ceeea4806cdee7d81772beb172216f8fc88fce373bcbaf40fce88acea351a0675495c185148658570fe02d54e31a7f5687f84052693ea5aeaf735d03a0253e8ccbe744134f495def105708893d1be4c4d85c977be34cbd8e1bfacb066b03703f0d16bcdc62cda097459ca3d4fe25dac80622ba26ab78fa0e0086277f3eaffae740b8c438e46149272ee9ecfd69816ecda898c59a81e99122bc4fdc6d6deb0ebede7c39732db42d73a9370078cd727314168c98b95aed318116be3667dbed7eed94b69c1724bc707eb12e15bd449da0c13ba16b8dfb24fff19e49eb65122db86d3561de9f0bf19616329d154d81c05e525e6546190886d6b8827dc5716b6a4f3a7e43792497008f764f4d55e682ef573bbbd9af98d0c9aaaa4b8fcbf8cadce8bc80638fe387f81db2df1cdca00f209726c0cf943e73a5eb7715a1049dd8f4c77c10e728541a9baf0acb8c7a4e8e907d72e3a165eb95300fb7440d333587f782bdd6a9c86e8149b03907f48205e48e384a119b0122bf9892e176b83a3c01be9c7e93f6afe646d48c59429fc3a1393b74201bc0bd4502d66de448d1c709a2370c9564244c08d913c73b203749b3a87a82efeb21e9a8ab18956ee29dd9b69d2160ec9fc06f43d070d93645f3343f494e852ecf9006337d3bde37bbabba70d019152ba1cdd8cf2179cb8ba28de596d004b6dc141cb1710a8921efdd5059603ab3302088cbf8b9778e40fbc6fb81d1dd283ba5b2ee7f31d7f8c7cb8d8077446a77ef593a172db3553e2e4be1faa5d8cec0863e35b7c717223664130fa173289b82c7084dbad4a371df893442c1ea292a5b127176e26392ec186b273ac2e454e2adc1afb173b97711611bb251f441e9005c50cebc58c3699a4e7ec89433e09d7802847286bb56afcfec72b464989cdda1b6458b12f29854f2bbf5cbf95cc984eec0fbb59e7c529d626a38041ef359d29c5a08a962cf42eb22d0626342d7982e471d611b1307fadb83759faac96286406e136ab7f26b369ff24bb8b7a18f226199a77566114d61eb3c29572d91e2fe96c3af35cb9d9bd70022142063fc03bf44f87915062d4cdcb2adedcda5bde6d82ec08934f94cddfadd36cd76a01892a1a83119ba3ce024feaa06bcd00b02a073e2f52bd0bbf4beaa02bd2690b144a2dca5893bf94b6e23b8042eeec0a1e218bf760641e73c3ee4cd914c7edec4b0fd7280f1fab9e2d5926b18eb4c81180b223627368c19f0f43cfc74bfe7bd251bc684d808b342d08ef02dad216a2b6cf3443a74951256d100f496c18fce85a533490e4db72c4fbfc7d4fe9178f6d15288f69692cfc6df28439be46418a290e627628fdf5b5e087508bf6a11a606fd86a86a03246c41b3591442e90a89e3578ae1667761f6ce0226fac2e0c269eea9b911d475867a57e2284c3cc09c7d14b30eaa85ceb276318bd83971e09b2e987ee3bbf3da23e52cc4bda12f56e43976b5090aa244f4095742160060db6b76b13d49a29f4292e84347d12f45331d1967c2879fa3dfc2f8f0733b2bc173470f25a5d5e5e10dba254fca788a1e89201960aafdf2e8c3fc3272d3fc502c4aafc0dacab6ed8fa59796ac72c99f8ecb51c15fd55dafc14928cdbd5785cacacb80481f0c3dee5dd9d16d875322d97c7cc752a2a5fa9d58b31ca7dc214665b95493d9ef973f0fd4fb8e8464b7262e5f5ed5c6cf69c660a97759ad83ddb618c04e353810e156895e8f3e902064eac41376c0d0b831a71ac72776395dd20adda46ad3eb5afbff38346b644b0100801d8802b712e7e16e1deeee9c7ee7ef1d3293147173c95fd214aaf088677cd6c4244880c125c3fd5e3f146469ce5e55e69398f198e384bac54ab9f1df9b30ded57160f663c699ac138ade9ac84e56e11dec05c858f619ce5ad703ff0dfae8def7c061c05d2ffd9e79aec179af5f2bd979d75e90cd7c2216385ee20a2ba1ce5abe29bc6f77c1a914a68c3e74b15ee01d1876991e95509154d54401f10001ac95951401e4a9ee0f5cd2c02b82e99962301676f3b42592f1823324cad31a3d35d5effbda110c9b57870bd3bf8c2557566e72c313654701f08d6f9bfd1d5379e48a7895d9fa0e52c83698600d5b65e5815de0a91d1a93944d59f67347dd37875e87ee39e244db43238c5dea8c5338a078663277d1cf9a5c6b87c8b4a1411746512ab8d089dc3e2f73c3233699afa0161215c8e742b573021a3923600c8daa8b1fee45af22f242580082ce783d4d82541492198b85e7e5caa6099e0d158eb97bfbbbcdfa075d3fa18965d37643d5aa61359d01574413d600b567d60e1916600dc604d105aaa6241deacab2832f63126cc925f017d2e537342120f41822b4877f4357633858a38e20fd124fb2e6f71bcc8361243884bc9a8bc7477ec2fd6342885d6acd33e04e253bb96d51ae92e442bd5d8619651abfb386ac36a5b22aa206efd2ad4694be180b39c269b43e1187333e27e0bc00b3fc198b54b1169d7b3406be7e1f6d57e9f8a137db8a4ef5fa00df00081679b40f3c49ff1ca6db7db7db906f9565ac8a3d6c23da921b7bee7ec835af0a8de093c360f3dd607faa0a0a4c92e9ccae8c298fed8ead258f6bf4d07e7a5ab3448a2e7c66aa9071238bebba2b415c8c4255d76069ef8a25e482bfb40b981f208547a8d57b88552db105c0d3b5ef37995b02472f110d0aa4769d71215f3b8d5b91c65f0f9c3ad775d2287d58044e544685379021d5b358703041241aef999ed4749188bc7e3bab76c44ff9853ec21e1df6670b741099f536c9467f81852d6e1f18882ffcd3f53506bf9aa274dca922f426adf3decb72ee080a907cc3372779a4aedb406f07da4aca255d69f5ed260b212cf56e167c329e52d424067ee2726f445ac4840af765bb733dfb4ba5203972a1d409bc57062fc86742977982952a495856a706b3cadea1690bf0e70461cf7d3390d8c524d72efcfb506b03f686d2cd2662f7079d375827c244817ef3fc9d7985b5e6fc66b213ec7a18538ab2b946add647aa0fdaa8448214c20a3880c542232d8a322814925c59c1010d93b509a08495060a72bd8098f4adace47600994baf9bbb2fbefbc8254224f4f56edb8652fdde612af1fb858f126af66dd7ab95f6b474e6b73e5e726c40754a1465ed573835e0cc6ac28c2d08f96d70249ac2ff6e9f2234c39b2dbe159f7ce797d69c5646eabeccb9d71ffff0b92da67652da21994179564619b2f838a37f53dce073dfa314841495d85d114f97a132f5d70490958bbae938fcea947e9160a6565d6d665dbf54c86f7fbfbd55cd30b19155e5ed85f93952c5e423cf5c50a79e25c9dd9ec1374e65d1a5034500d7078c4822b6916e9a7572605d002369169c130cf74706576287616fe8532862158729fc02134f882638769a91401a9d7c7da975fdf0a167f291221ff2186f8b3c52f052f0803c463073aa2cdf11c8c212f0a46f790140cf43364b2ea7b706832871d085068de1b25032a0f1b3aaae5675a90df180a9a4659da60b98c3b3b95294cfb853693c4ab9e4390f5d66ebf482fb1120267704129af11ad5cb45582d7c778a9f02a7bca89442063038090eed54a55a90a294fd50cb06b79f5b2daeaf7e60519a1f0ad4190053c1871fa0f07befee887417e869601747399f84244d9211e2bea88fdc94e9b9affee55217b363db195c56443aa37196a22dc3a1af3b269c84afbf431c92ac101eaa835abf48b289098f3b3ed8cac3fa20975e9df5e844c21a50328314ed239106f439c3424472ce6d0342277338fddef385440e0935188bfa1448acc06d9415e81dd28e61b2e9c2566f1557f7706cf24e88adcd9345af44429f37c9c6f6b885638b0e9398f40c3fce07dd6d039cc2504a582601a0725d383f2fb3f51785266802e526602df24ae5019612df27ff1215e52a9a11c8c4a9ec6b76b29bf2b5d5bb190512e6c5da2b3cc1e4d9073e988a3ccb6a92b1018fc150d42712745504a6449efdba8b2396ae66c2e02cdd702f965356c920f11f326f8932e814570beb9b1fcbc347aa7b6f67d6a898c62dddc6957268503edcb89110d108eeed21cff4ec30409b565ba96fbdf840e34b95118d059c606902004a17db03173bea3570725c4af1a1c8524e321d98682f99133b7fa5e10a6389865516b5883768e8863fcfaa280398166197cd04555480c407babb5d718a98be7222bf27478d3ce11a7e115b95f396a535b158131447378658713bfc9c7f5dd2e4eae7d490b504dc7642d3b23a941ffd05f64ea28208f2c08b712748f0c4226491f226c5d76ee1aa8ab26d382d735c5c2796abf33e9c3f0335530bc89282b53ef19a6b9ed946cc91eb5c47952280ed1daa5737f2374559c5990f170239014a1fddc18f1eed1c594588a1939e939706464c8ad75bccaa515420030dc6ea7451793873d65790aa8d9ae342e2322757aec1aef4faef427f0cafc43de9f13f99abc4ea6ca1d6c999bc033fa22bcfd9d44ca23992bac2bb1bd038e2b7483dbc6a30dc8c039f32c4efc4e70596a3636528b8e01eff6c3c6046dab7ae4b489ebe1302689ba765636bc2150d1d2fb3937cc5a2aab56d21cff351ca8ef9bb38560d9693d633483fee3cd7186cb47633519455c18c43397f9c7f81ab465ffaf6d39c0a32489af27343b3caefc246642701956ff832c301cdd766510f45350995677ec891f7d07d553da9d5d7ce6bb884de0217f62f507e5d1819ea976f9e6f8c5f7e8597c378ba1805651988725802c7e35a7fc084d46947016c046816c5de1a311d5f0f860fb433d33be459d6cc5f4b9ddba44d4a5fb332a5da60f67354a8073598c6582b03e20b4473d85aaa9201f3eb0373109256e05da02bbc917910381d5e97245d533f7d6d49ac89a671afdf28a4747d4138483b2844ee910336dd7bb6144d5bd3053b07765eb042b62e0459cc4cb1116d64d41213bc00ffc466cb6cabca4855c08b8f8d14b92c289ff849ca2ef1bf9e339d15ebdb3633c6c11a7d9aa6f7229b6891cc6f08e5ced3a8982f32588a6fbb4277af7641e6d2b50ffda1acc224dde965e67030a9135c5d956f0aa3d11d807fde44e719e6363b3ef210762aefb7fe8478571a37e028fee6bd1dcdde5435263751ab2da96814eb8c8c7228e5772ea56ba69a24b19cd2d73f32f551157da301fd5eba03811f487080180dfc8ac8771fc73916a598b0d5fa4da72f7c489aa8bbed4f507fbb35e57d0b2e17d25ff2296d9ed55c7b3788cc4f58e1b397b29f72f50da601f796f610718161d71e9cc1ac345667d0d7c61a43849318e59700e1dc9c663b80c2ba4fb38c15e2db8a35f972b7b79173a9d0bf9885185062bc673d7e76b4e2f27cc73f543a68ba58f098e781e4f5d83e78238954ee9df6483af2f283b15db136f4da1ab045e4a910d5885731f6616719e3d559fbb77fed6f8e7c8dda11fa8c132fbd4b83e0690e40be044a8e12c424bf8ee966aaaeb99b0097527dfa7cc15f68714e4b3a34d5023d41f1cf80ba096870828193cebbe556efef847681da772e5a3c22d5895f0b2a844c0197f5805f1a2e655b51df8193746aeff057a13d3f03540a471fdaaab18c82e8ce42b782a51763717327a1693d9fd554e188342294848287a06e8f6ff69c0686cb4e77bf814279e2cc18a9f6e74ca44c1e2d60ca433699a4ba6419b217236f91c3158fdb457478b14ec844d148371d101844bd866b1930e2d50e204ae41925a65d9473ee9113a3e14c05860ef35055575f562569b219d938ea62563fbf3ca22ce810f85809b2307dea99c99ec09562ff7877362516bc3c9267e3b5992b0968d85112c56518239f9c8aadc942367ee0139017bc20a58e6a26c9200770fee0df0da34d593b87b9f8e803c38f0be498cf50b8d4276fee536d398f062a3ee24c6e9c6dd61a2e103048fd218d30367c4e8b0106dedc2106cc49ed18f3f50251d4f6cd20185d73108bea6630bf86b825b98ffc9ce9f319f5aba2efb80af1c7e9e8d38f5e7f42b1045c15451cbe9ce00645a6cf7697fa55f9174721e9b91243094000b02a0414ed52349dd2190a600acaa4b5b551dfbabedfa104e3dca46dd53c99d97644bf82eacd06ac8f30dca6bcd1bc38eaff14ba1fcca5f9118b38d0852578db0e293377ba2dbcc742471f7ce6f915477759a287c788838c8adff92cf5ab74821a0ef13ab446f30164d996977873cdcd36431add93256c5a18b000100df5cb9998951ec95025923fa4477f5bca4ad290e92740acb2634c3da4be1aefc064f71b23f2c7d6a539324667c4cfd4e7b662ab043613cc5113772de1c28d24bb45a632c428c39bf7591b29a349cbfd2795e320708dd4881b52e8a2e5356a3cd60d308449684b719b7941776ae83559209896f163233289b20f3d3f5890386f0e505806e6c049c71851222fa9c7d7f9765f927e4c4924f3ef8cf24f8470e93c7d36d221fe076893cd6eacbf76b8be2d898dee3547684a8c7297deb7ea601bfbeeed2070c7c42e46a85948db34535a0bcb767f348fc7e1e8cd354096a49bdc9b359363e8593b6504733c5fbca251e6918f53398a2d39de9a13413e740c84914c3cc97e012a21654765f511a72259259a0706266f50695bc7d31a420cc374d12044eebf85c1c32d68d1e5fcb9100096e19594ce8de77437ee378bba8704a62cfb9947b3c3cc18176f9f190eb9d74b5e1743d744f8b323bbb51eb2b36763a04f89a367fd5c89321ecf5483b9172294a37b2c93fd1685749b2cb5cf07727e445d3d5e4f258645174c1a6138a33a2a4aab54f650e186ed64cf1975460b2d17156befbbc74b3989ad3ef5b3296e910d099f561adf13331befd85a32b7d056f863770a1eea12dfd424b9e38fbe8f5173e5b19929f2870bdd07de6dd17da4d411609ce648cfdfca87968ce285f60c3b4c88992894b80efb0abfc0dd5a3d5976ba8ffd1d2ae065104657b0785fb7695167e8c7d875166bc7937aefb87373e63c22acbf469148218d1c1d5ca36393e451cc13d1ee96ee68d34a75c5a812b98eb898a0f1c60ad42db53f5fdccf8cebbf3338fb4cc17e2ba967751bb91cc6cc2acddca3cd154b80f3c2314710f8506e51127345a406bc6640f298c5fc910c7dda0960f91e5c3c691458910fd7398741740748bdf17ac5937c9d591b12c45e8966ac77bb3f61cec4ef80c969d3688ea4e7ba9aa846db2a61be668f9e522f1718b887d3adf8b8d9cdfbeb9029d8db3f0bc386a9a9ba787244ab73d5f6b7c64af27c9200e0e7b953e26ecdd62236124ac74b047603464497dad3db5335c6d9b2fcb1df72171ce14f4ec114b0783e23e1c2c25acb7b5ef8ec8822784b6b12fdcb17bf115b3026929c7317f02bbde771ad0f5158afb79ffc3c6100b840656d7ef55da758a739d5f1a79292e70b2cef06e8137cedeee224900f7259dc6180e68e09e3df830b28715d771bf71d7e38dab9902b9b31d819b93a2b0a81e25cef5464fb2eff024ca6a11b8408916dbadc1cc3ee011ae63776e38948461f79cdbe0f554b5c6ebc0238b0126442d93bb3422419856103291abcdf0515aa40658694339953599c5084d17ac958a487bac0fe21a87705594c519d956ac610edccc5e14c862991aaab996b470c3396872d4c444f5b8e58366ec017e5343a111c17c21624b2fe8c3f57e8a69cfeb15faac90812168c62bfe426621b6f54e507633055209df9a5bb4e524871b4d2e22d31386d8500c03a817f487769458081978527ba8b5891196726a5e8faceecf7514f0bc4ed94b1b1ead629b553a542d24555c963ba39d74228a3c9e6036c8aa0ac872c7a8c12ce56d9af4f90cb31fadb370504788c00ea1da6fe150d44d8b91a45648a2cd73a4af6850b2bc10e2a5ee46b1ac31cc5f60780a60f8ea7457c5629f890b054129226b476af7983c921f8cdecf939e38206040682ad4fe331dd958e9bd2b9068fb6e39dec247c8c45bb7c093123964c9cf897d27822d2099a8027c618074152fadd66b5107d44f5248e8525d668141e8f111c4b8993e7f9ed5c11f3d34a63a1d0b4e2aaed23d07de4471c6d1c4bceb8e6c0a8893fe9814371853c7efb3afd0abb760745ced647c9fd479903acecd31b535a291456aa96e3269af8e27cd4167f491bb61e9a00d02af6548be071f4c662f63af81cb9e47c90bc632eb5620e92128a33b0aacee6a251bf803b2b3d0603c7f7063d1a22a69bae4ec61d7b43c02f67bdd0fbd142bb69ef7e169ba729d2f2430b73a7da8a992bd732b0c4bd37c1d2b56a759b2700bcfa53db4b4320f181948809e888391873db4f40bcac7e3d8ad4f4c02ae6b073d60bcc7501aedb27cda862ab002247af4f79fafebdca8156283edf99a3a86ddaf2f9a8e3edf9070c19ef399cde76ddd20b89747c119c99091b06b6dc0db65b9c06c2fd56a57478d4610eb60de9cadf0d4401c0d04cc1dda4983027c0f000a73d18a9e24ae1c62b296f82439f8127c6c63cbc6de2ec17f7f167ee2c970f60ffe3250177a93cce1641cbe605f24d3a8d2896760afb0279eb260987cf5f4a301272b769672bbd26d0d54c8832c4da1fffe834e2fb3d98284de30a3f484dffd644364366e255508837c96798053b99205134ef39220038e75138147342d16d1375e619c46a6d407e458a0a7b804dd6e59afb59b958abc502fe9cdc9209d775c25d0e9c8d07a0c36f60b0199ca5c2aaed87e526b58654809e2cad6ee05ae1bc3e28a4b0504dca18a27de44e61ef9d9c24be29dd108b0cfc07d31634db690ddfcd3163d081700f52489a18ba37d44ca69adbc88c0d8e182f7ef1eadc1a4d5d11a807efaf193d8ca8bc22327f5f03432f1ea0c0538e28729500b6ab170f65ddecaee0208b366edcc2310a25f1cf0ac076f3f59f15a601d9eed72c45624534240ecc320cca84318427568277618b96fa22db6f1302a12a568e938cc0c665ff325643ef5978b27b0eda375f9ddbc3a9fb5bc2242065d0e7d3955db2cf803bd3834626bcf9155a03e9229da908ba310c65a3dd40d1c678cddff965030a934bee29130ed3d6859c48eab271054bfae12163fff679d253dbe417ec1616c791b45949eb6edd3840384d47628e3049cd6f4521e88b819eca5894239a228fade3d3d6210848fcba30315f89a9c0923767dd795eab2d99a89fc9ca94765702fc88b7169a58bbda3c93324c290ca0760936950b26b8f8ca5e631b8139d1351fe5ea3924959b6096557426167d0a00fb2e373488e350956efb550395f5732f31981debc6ed8ea8c4d60e37ab3eca7ae404b88ca1dd84e7595899d0dd355d6a1ade2055b19cf75ed0be18c9432ead0f4108a8863947545fa4f3d70682bf8216827e28761e086dd610451f6fc8143990f7935c8d9e9cc334728d60b9942e4e223f32a96f098cc6e25846ea5793ada6b15f891aba176cb63965aed81e9ba3448ca314718b07c5ddc45bf8cd47a1a9d37e237a928cf02531cf4c3e1742e11ba2bb9c06ac24df7e4d9b9506a7502a075d61e790c54a57f34eed3742752145fea413af4731b6a0305fd95fd2ff6a4b63d199541bd5431fc0f3d0d82ce7a3e47bdbb6a1dfb03bade3b12a6ce846ea5085c6669b21c2cc0f326493515b7c3debead6eb03e2e136cb832335470ce6aa9834bcccd11083d628641313d6e0885505f2abac4a194673f0455a90ea24e94b1639d93f21c74ac142ab8aa0a002af40b6eb1710059c2a79d0d29a2634b20151269f2e033112dd37e07a5f1117f9d2b6be42d3501347f91fdd2dbf25fe893ff4e73e765ad8225ab9b1467a498bca5b4b783bfc3a33dc819cbc06e282beb1f2938853a53a1994ea3b71cb1fe0d6e068d81a73ca7ba31c230cf38493a59e19aa6761c3b8953685e42aed8c880c21d828f6892d2eafc4a16ac771821752cc44096b54ac13df2471a376ae6abf5da0bc2f8f45bad187f630550015a1d58425793848c0f99005a00f16f94a5228011d710c579c050b3dc0ca306a46f9d596e35cebcf1250844d2c99e31ea198cf5d103e6df886faee960627de7aff227873403f5d1a034353647d2c7742cc575414f28f71c1ce27aa585c75c41eeeec02d98f9c0757b2d08aa40c6ddcbc20913932ad0ed5107533d4d4b1717ada78997b4f6e22f12b291865184099259e6648235e8d87770003add418018c2f0119f1826bf2481a862088ecb60fc7ac8017c9174a4d51e39e943aa5ee69ef2344e50f5c51b03acb0831093cbeaed0ccbcd394b505c41e74db06f81350106ebb32d250fa7bf2191d5a98ac41e990e938a4de818dc42372f79bc212b198148b701e2c727757b02006640c8b2721cdabd1b5d8466336f821a962d75baeb048863917a6c251687468d0b2e4e440dc13c9790a88f74aed847c06bbf91f80b91b31e194fe93713baa107824c1885fc41369e56355537bae98ceed375a9bf0b7aa222f003eef6a2bb60a72ea2b24bac2b7dc31c3650cb2c69f07f506e2b860c3fb5424c060322db13f34820a81743e6a62e3f743a1eed2493018e9eeb81a61cb0cec026db5d4e227ebf48806f53d63238be60c770c472690fb011e6e6f09cd01ebde31672598d9ad5af003e9da63e0fc2d7d0fef4b16299edbc1ea2f22137428a743a57d0e85e1b42d776e711c401b97331b2a5a2a43e75becec92562cd472001fea0220a7567c54ebce9de9720d6e13b0e34e3116ba3a693388df9aea9fe77e035cfc405dcceb89ce5dfff6dcaa25d227bf4e98cca8f31522e7f8013b000a188820e98673049d3b4a0a58f21495272a43f0cad3b5bf489a4c0016a3a8249686022f79ce146f79758ff6754d4b191bd6952834495333f4507785921d5d03bb428adffd6547f2790f0528b347f2dc7704deb81038ef5e63a8578b25c4d40f23dc66625ec8c15066a844f976d666159a4f11dad21be0f8887f2343aafee02df71afe98bce8c685c354e8dadc590fed370db8685b8a12d9224fb0b4a317b0a2b9e1b44a7b68dd36f0e67b1e38129f2f9b0a8dc8dafee1234bb223261cb1fd1471c1473913a695327dcc13fef02f137afd6ce079db5caddb9a2682bd3086b588edc5d889cf250004c42987b87adb83650dd2c6fd371ae3d4e2edfd3c84144c4fa344131f9bdbd6edc899e75a471c2bf53ce42034996c7561d2844f317b015e3e96539d53f1bbd7183cd5709897f231c6e3ad7e440e2f864e9590be07174b5ca358cd5bb859e293f52dbaca11c13149f126880aa8400fe34f6a56ca6d2945e8d5d44baf2c8c110b8b62041da14232400a8993e49100c806f3003959ee0d9ed5b9016da84f5feb7eca8c6515087ac82e44c00f307b4b9279e4b4646b24e98bdd36dc7a126d42162bc3d1bd50d003975d2bf6cacf39df8c446512df88b9835d383ea28fde810e21d1b5da2acfa8d4af65e165aadb1492dd58f38dc07ceb300c5e498cd8c457ea007778ecd1da21c958d5de90bac39e8150e62ed345d58d04fb2df68e1d9de0ad01d6bed61f6467f5bd2f7044e76aefbf9acb4dd1ece7cefef280597ab3137e7702b1ae46da774090695b2dfe93e366224ff80a6f42052e3859ee1609f04630ca9b433c316c692f558cde744187cc1d73103929601c53649c15891cc5bc4158321ccd0a1097fa38659fb95225e19889a5982b37d6c59237633d6221ceb37ad9329538865a024018e140fa8a3079f75194c623a4846951ed5a1d86ae900bf38cb5f1fe86b41324a8dbf94965363f81be4ae1d2ea550a8933e2c171bd2795bd846ca6bd05a41d2bd539cd2d41b202285950a67dbca7a8e5071a8349578376d4e926d4d3e6f53ef25dba833a744b07990f7020d6ab38e3a81046f99a1b61c006718bb549fb6103450fe3d62a5a95e80674db88d74569273e29e9cc24bff582a61a74a63e29c761442a8e2e11802173ff1c3a9076533cb5d3f7163c880a801468b4771e090a359309fa846b6c1f42676b06d56e3159aba0354391d1ec6a8302598683fe06929f96fbc698a5728b0334cca330f132ae3a237d12f40b106841ab5f0f82f69221d042f5325a1c1534f7379a3dc15ef79ae244a11e57defb3679918fda20ded3768a21385aca31e51775da29e68a8049bc0d9f79a4af64ac577509bf39be327cc478309ca2a1b41c401469d8881e291d2a5a92f46b45be41ef93e49877f7c4719efab4d70d3c0593a3e25fd9dbcf8864271704912042898f3583253b9069eaea3a833fe00a8f74a2969bb181a9e23ae5275804444a187e434c5f65fa2fd48e5024fa118909a7586edcf54cec17344df64318fbeeea77514004ba6867cbeec6039cc2ec3d398d8912da4287ad4aaaaa6a2685411ea5aa73c0292992566b3a77096bab6b712eb39bcb5908695e04b9ebd25ddbce7adbebf23691198e1df01588da82a979285d7754899b05901227fb51e26c47c00bdbb8e8ef904790d5496a45ade2837be1515f8c35aa148a52495f52d3e575495e327217820acaefc4a5a60fa00d0ac0c1b84dfd43251115e17a75555ddf997901241eb7796614808d16cd363a794f313fc26c0ae7f7d6b6ebf06366d55d3943c36a2a8276eefd373af3e8198bfe0a08da44db91144f1f25a68a8f6f3f22106646aeb83dbb21bb81a7dbf7da199ceb8b81a16ad36a1fd0a1c3440575d9819e28093f309d7b8d8a58c7dbad345db446f1bd0f78627cf8e5b49a7e5a061781ae88bb241ef6b0ec744a472ae0eedde665d615c5076aebdfe35a94c719d707435886d16cb38c57df93290ffc1c7f858a3ba2c9f54b02997b105c7b2499abce640ffd72fc5469f5d958045dbdd43b42b99cbd1551d98684907cf79c56cd2a5af374570c2c74c736c0a58179dc216fd1fee2ee1720575bd7d20b423b63ffd606904ba0bbc24df9b4e943c9f0a49f2c73804c04f8d2d5f44546046786fc1455119f74041e8d799550e4e44b57a6bb956e42f53dc09884dbcfb6bf4d68bceb3d81ea24a1742b9569edfab62a259b4fe4cb7917bfec34be37ba385727d47267f51cf6f7888a54430e2644e9d63ac3ce289d32652452c31addaaf9bfcae8f2846a2b2ff8f839a48d7c1bc7167a04f53941734472085b303ee9413ac5584c2e9aea6ab5f7049834393d1e4972c63b826f927332cf3156bbb8622da703a6e447dead3c3cdb8d6426929567c511576ea979331af0a55b144b2e69c16d62f0ace30b21976b6ed1f67947cf961e9c61604b9614c006384ab61c24039bc977f63695317a2b2bc92a8dd2e88d86b65021d5551e2b0a6e2a9b11c5be20c759f97c710d1dcfd1419510c0d1622d9c9f0d31c28b2ee111984855a5c58bcb9b1bb2f7b21e3bbfa5a2c6e80934030822ae46151a09be98e58a1c111b5396dd79874c26b6645ada7155fe4aab25287ec552f3f90c3007809600ba870996f040473d85f6c509af139ac054ad5dbfe8f7993e9eaa3c64d210a79938428e61788a113060f3b8da4e9ea297501701c1f11b929d5cb032ebdec02777cc26229266a94bfab09f349e74ba6b5248dcd780ea61008f604b1815ebb95547e635925f161d84d94e29f0cb5d9b7c3afe44d6165342099661c29a65d8f7de25426f44104bbe569fa696a2d026410bc9e4131aa89f13b53aa2842c802f2e3fef475aab539be776c8d98f5d3e7a3425fa846b9975ea220d6a73acaf2b27067e1caf68247f3daf707027eb480ea00f878f884c5db1a72806f3640966a24e3f344264fa6cf6069937b47bd1541f651b0ba1014d92ccdb43412f5debb3b6526b5bf1ea4b86f91b2ac330bdae30242f93fab7d04f9c8e6b7be68b2caaef734ea6ac3f673982a980a04d8a2c156f2d601b2e6cecbadeecfaf125bf063a47cc9d104e9556233970248e61ff28bf91940303eb0240358cdf1f99a4b76598dda2398071b02fb9c22ea28eb6b9d8d8097644614413eb3dadc738e1c5497af53dbe5ee449f8a72177285c87b8a89f8b89f5967a18150c64220b5906ab5cc08195ed02e9100af0caed815e993e2cae493fed151cb8f0652685a58a349be25d0b7bfa2ff89aca8f2029823d9c94dfa1d3f214bd0b54b8072a154ff7c44a369354ca68e5ac93d6e68006e530755421b77caa670f6318dff2cc70808f34cd79e6b2b9d839ed7c9e1be6837e43f8b9550cc4a82eeba4f5de63fdc3a9ae8e5583e14723ed55abb8bce8386fb983638fd65ab9862953b419cf6ce50d39a3225d7ef6141979b197df51bfd9ade86f555d15dd13aeeaf48a610244014b19716a01795c7106592b4be5ba595ddc18ea33377fb67a43bdf715d19dd645356f0a5ee0174f4818bf24654eae82db3cf8083f574e72deae3e5c6a64bd122a10aaa791f7d9df0a360f72a2a2318dc7466463382c34598d6631551d876bdf785e917ff7cdb1bbba3c6691431b7df94d05e0e0608e18f2b4519eaa4ff5bd9c2cb5da2d4f4035c7bad1880f2de99a63b758a14216c7e77f0c5a7aa8b0a1e8749aa69953d80808556338458fe1dba89bf640d974006d6df91056acbb6e8087dac12849774a830396fe4be7a564c0f23360272b65a6e25e28fde8842c49177eb94c9c56032f8f9cd7ddc308fbeab708e39e0a6d95dddf42a1b6e07bba4f7a85f9a623b1b72afdd336746927712a133f6153c8852ed1182b072c09b39be2806e23f46d90bc8f97afe89d149625e44ef7a810a9925cc331b44e37fce95bef1801196384e2c15c4842fb03bbd180c7f36c981e9e22dd1440270725c8e7c6e95aa3aadb7263f2136eacf541820858d9297f6b145b02e7c68543acdf0fe340515b2b65add56677362367ae3b9004fd6228380e3f7e2395061cd937eec23a2d47400e9edb673fd008611c147c82f4afc81e0e5af066b31eedf1c16dd2d1e4b1b0b1ead742ad9847a73a4595f2986117c14e6351372524a820da0edbb5f1a509fd5568dc50605af3d03f8101d278540d1ab8095731600c4d8a35fdf52c5eec79227b8741e29e00484017bc5865225bd26eba3acb0f4f2064110e054440c9f1c3c9eeb3601626f76c8b5ab1259670a4a53d550fede46ff331aee1d670d121950b8af3727c3762e4fcabdcc484476054e65a095fd50873981f00dad5cdf8365687176580c443a3bd41a1175696c549a7035d3c1ad70fc6b8ba39cc62d89aa2586d7f6e7a4d652554bb4b6b2951217352b6451c254287a630fcebd56f69d28e3f0f4b8b1441bd1e6a97e02f04cb119bbfad5fd9e7c63045a4a5a2c71d3d53ba6bfdc6d8c1668e4fe49f31deeb18fb0c4a2665d9ee6b8ce5a7158b3629c6a440a5a1df7b25f85808bc2916fe0b01cc27223eb8da76b2caa99446c4f2c9077c131c19a70edc0c2534824e91377192d570550795f4729466b544de2d2f92c7df73723d58812f58a73626af3fc837cdb982f950e2e74699cdb9156d0c44340364faaaf6009e0185c5563074cdf5ccfc61441304bf8556dcc67756967bbab531fb8f5d752f665eae89b4e24945c17b7574dd16f6901281ff99839230c10a550f740afd4fce8b21dd2297dc45dd0b73320cc78e8d8a8c7dccbb4da9595f966e90b436167d9ac5400b1aed47363c0ab9591464727aebb8726524cdb640c1448784fd29ee7b2413d105aa5af7cc1c28366388fc7e463fed125de9e80f1e5cd32adf3a14f94086a4a715490b1d4ffb05f94a4167dfb7105ee7fe20c5755a00e3dea8a6d2109c3bc1da6c4f6e68dbcb45d0ca81c33dcf1f1abd2f711c6a19249b5e049313951502d4bb20485a1f27ed0bb8e28c6ad75e5940439f90c6f720a73b887c64999d929eda114df0d5374bb566f0ee52fdd6e8066c3517cf2f468eaa990f5fba8fd9031f2149d839af1187bc3b3b3595d28ce55c6a1cdd12d3a6e2d71c2de6b72ad8a7f9769d1bee33016d07134170c75b0fd1c1c6e48f56d74810c6a120ce167e8c007ab807b4d315e6da3374eef26725a9e2e00c7eab4791312b8d1e22acc1402f7fce31d129f741d96c759011db043ad205772e850e32a39029ef81962e5bd6dde02222a927e6b37a363ce8204a7815ae7490580dd24f01136f59517c9e63628e1867f51948ab55578bd1a0781d862ff3623fe0b17e24585414d481a359a29ae75d8870eca90291e6be4bf7c7831c5ebc25ef6035caf866c02705f60f6b3ceb77f0e479649c5194b1941861e21d810add78a104709885626ca46514d6dc226707d7a249e136e0b5b3897e1e5e895e867e8e5eb9d5da9e32e01199c8b421ec8abff36fc4d32c20c6c23d8f37899f845c0a61a3ad4bbd5f18b146edf248eec90ef00338003cdf56ce79d7941990ef5c6453336ec275ae4256541f9a81bd3e435a628d8e93a136de64c42bab1ce98733d7aa68f18eb5dc16cdf75574e3880c85b0e492c19fc41f0ecd770bb1cfcb27b7aadb7ed60ee28fd1edd7e26d6f3c0446395c1d6771c8807dea7426c59027fe990a3663732d2a1a0057cd8ff2235c2af8dc440842557f813f598429f9d9f8e3b7b7ab837c0972bada4acd47a8dfc621a713ac677f6ecc13805a7bb5135bc101eb8777b4a567109e2aadd2be1b34181931dbb3ed041250dae0a8b0aa2c1e823dde5a07b0a05e5bdd030b8c6fa9b9ab8cd7b9b2b26846ecfe822df7519a1b0afd20350b17dfc2ee80cc844dcc37e79e98c28759a0cfd64b045fd140c59dd557fbb85a07557114e919bcb8b68923deefc955999dfc094a894ca9bb3de6bc797e65b52fcf53fb0a67692daa0b1c0c95308abff1c111fc89169fc5ce004cba540b0f3276b4655c7f4ae4b7ddd7b596c3e58652a85befe27d47e046d86ab6b526f537a0e1c9ef8834ac52ce23d88179d5a3c3b5840a804a8c4fdc7f56c6f9b42b3a2481caeeb03964249f9ac382117ac8809da49ef4ebe97583d9b421037e3c65f98b104475a52950039ad52366004e319cd7f034b25864300417f79ffff256928db3df2709cec33c9136bd65759f96d1c9d14f49a044a8deab5e7ddeb36e478b2caa46aa07eae37f08ac528cb3ca03dc2387eee4be68e820277269d9795c30bf9cdb619f61a2fcd400918bbab90e183348104010b94703e36b4553b301d303f4a5c7b2fbd40b4abdacf1010ac2e395f80ae1154a54e6d532e825fa53409c3a2df41d0077654be31afd09964ab280cf829c40133fd4c3e6352fb859d4efb838249c1487cb0806a2d446492090fa82a026704f0653380c39ccccc1e4891d6cfa9692c42f0d614c61eb876d3e438e7ec333430a1a2528068a797dd85c9a14927e895902913f9bb8009d9edf88d1a790d35d71ef1dfdec75d1678d3d732a163f7843c86583993eb6cffab35eba08969c96f224cc5780c258829fd70871233c2b2ea406cfe7dc35d8019ff276eb2fc775c0cd1c3289b02edb057b570471c30d2538a1b6e94b0dba97cf287698756708d5095516d528e97d991605b46a4927178fac4c81aee2f29043bba55e781a38441e6af68d07be52301be43c3e95e57ce10734a1078491c0c3c228a6e47d940272c2639c41104e70fe10c0c9b5666e88e486d34860945d14b957552a38caea5688efb6047dc0cc6cea12302498d714df1cb68f6201b718ec8c2fe3d659aed5fcbe92b4e8a38bc5029f17d8acc1805f12100f05aa705edc1098dcdbabbf623183a7e75d7c0a3f09868531b4f1b9114d1d1e5f7d695211f3ab66dd3c4f3fde60acdb47343831025683b9c317ba88b764a61b9b2e537cf552e42c8f55a720f1669af38a7a627ba2919d7facd470cf1b89575813064178781872a7c9b465478fc56a03a41ec4150b9373ed6ee13977839c070159f9658c4e7445d214515c789427a709caecce14da4a1495113afd0488a8f67c5189e53d7f6d91879555a8b1976f48f65d9ec8ba82e312a1de350168db09f4463e247161cd803d1808dcdd60d1cb45b6ca8c279544b9e01e9a1420fc0a0c08a4e7ab618e1e620fffc6b064d9945a66692d3e8b1f69060a16a504d092d4defb1a085649e06e2927a6c0f2632665447735901049cbf0d56bac652050fdf9b3c0ed77e463dd8d14b7d283f706f28aa410605926d006546bd3df08b41bf2b9ce0ff455eeb86ea2763cea98bd6a6c708b663adc39cbe37541e8902bcff770b6bad6a70ca568057b371e22c6a64f284d0711f82923e2194ccf7ba9ea2b431384e7e2a8cfb2400dc6374d63e4a637ce9e18fc3c8a2f9869829edff2139e23ec1356487c30aba86b32b4dcd9a8f9a46ee410b26522251de1c465d3e96312a41a8226b716c82096007aead7a96bcad627f37e72e71576144cad8419701b6ddefb671867e355ac55eabcae0b1c3949d5342a026c37125d418ae3cc280d14a5a49a1e31497f9459892e19a846ffdd7458f503e93160e8a7ca3424ec999219903981fab1412fee05f000332aab2f2e530d90dd21caf0e804aba0871a562c26afe03b341f932e589c2581243d42f7eba14db6dabbee7af3c4e51ffe6717077a4b505515aa529571587beba537fc771b8ee9e586888738e59a70966888db040072f7505503753108a7cf7b9a779840e0fda8b586cbc2d384e8f4c07bff26f31119e4b12d6c57fa6994629ea3fab4b8d49d854e477202fa4dd44292ed5ed1a2b8526ad9e0b04edd39a9a1f52592c526ac73af50b183ff39313596db122a158f2636341e3b1a1c65e49fcd19c75b7e354bb20d281aa405a5c63e2b7659eba0866ba0a21bbe93c6f7039c60fe8ff125dbb58e9d6fa2d062303fc4c1db947bda157cd73aaa7c12203fe8b7d1edfbeca723333d9ea9adf917465a59017dbbf8d3e018c5975cf8c321736cd907c8b353220011cc75109c65f7c0434120bed0f3d16f9ffaa0bb75f8118e2306e9751cc9b6b9da3af8ee885c4163cf216efe5e1e0df69ac488c33dcb3435b6555af19342cf618f745051a163f0a1ad6c821c559d518c70577ff3bba96138f0c9e37c09a8281a8acc0dbb499a3e0266b3b159076fe089541bf1f5a13401fdb0c5b97bda225a0641b06c6f3b37a754a11cc2012f2db83ee0903ddab3f6e3c5aac23463bb82c0d0dac8ad40abf34cf1f8b5a94c74c9c40dc8a5fddaec2db667bee3ea9b167ae73c45ce1642238f2a2ae95d669e0d441fd4b6b46dc7370a526572b808fe8781902a4623f68b5ea16b5f65a6887b0b0ffa3127d2709f115ec7dad8e25c51f7e7895dcc08d3cbe499928fa0c94bdbc5aca23d7fe310f3cf00ebf827b5532ad451fe5dbf40f52234d1ab6972de78282a41d120fa8b9e32857b6934d2940a1db298757c0bb77bd8c17a9a4bf513b9e6f81c76fec7da9bf450cb345962fb92ea3f7cbbea162e334fd5ab649e67b8c00eb8ccf3ccc5f27fb79eb7be7761cbd5b2e44e09917122e3c4c98b829bac629a6d9f2f539ad356aef7a5ee71431b1f3fb7eab7c9b75e74cdcbd0598cf65f8f586ea6c88b4d25b216afe69bc4f22cf1013dea5d28679d1e54ad7a5aee2341880ac70e928af39a373df8d19df1d256f35d6fc847ac2f3fb91cbd89784a311f7ec6cea4b1de85b1bfa1b4d1b62ec489badfd3c4313edd272c0afb7bb870f01bf205fae8b55f14cd609f09177cda188d1c3309a63e5cde57e4bfa8e73f04a162a4e3b5e9e0b9f66289bd33a06cdd7ab3e1f8d42f684c4bfe2d449f873e3c5249007f1caab7764f4d2a4ac6f68601eb6ee296e9dfb2609ae6fd72f528d91ad1de5f56f13651ae8edd1b3fe7170f3954dc8854cfc2a4819d3d841558bedca9f8f34d7825e51aa2c2c28afbe19764a406fa181210fda1b3a666581d4b348492284fcfae509c9153f746caf36cd34cab9f1db45a6b251a655412aa5099426145b3546dba5624735366e13d541074b105523d54749ece5cd25545f457cbd613a29f60573cddc6754c20f1f29e9c8d30935c86a0745257175bde31ef6f615d6a29107b7e6bad8676dd2d2372ba2d981c9e6001c0c2166fcdd53f77ed173d775e0cc2e16d7a47cf283679654edd9c4b7e65ff4c2457bf13ce63ec7a16208566d2d59f28da7e35ff6008c77a9c422d13f8e2b083255cfaf44695ea624b6021dd46bb5d4085bbf2834fbc03698cdeedc042607fea1e5949bd5a8b45b8f32ed85569caf7c0d108d35f53d083bb3c66f373699f40d7ba8895a0dbd7490443431cef3aa56536e537d90955e2bc62e8a8feb6e26469429144bbfa09983b661c192dd37925f91b3bbbeb3d681731b01685b30ab03f3ab5217e821e9dcb4f37fbb16b711c24444cb37f4d024d5307990fc3c3751369d05a55ee50b02e5f871ae2b764d7dc18083a78c72616a6c687b0293f2276ff180f0913b6e18ddc3a1698002a56e56a3af9aab266dae05c9bfe7c2dc17d3938b8e4c86a761f69db96f12008b9affee942abcb36fbb0261e144b337c2c8270c30c4d828f3570f2486a42a2703dda29667b65686b84549805438cc9affdf2fb610b8295ee90fa2dcb49d0faaf06277c59126236faddb5865f6d164325fb10fa8c780e3e07df658628377acf88c83e85d8b987d17fb6a22f618f9152d49ae9b9b7a7df0e25bfec3938adc5add55a3570da04bf639b482382c076a68c7681a00688d4b0fe62f7cb28cedfb1c6a3df78bf9f350d7fe666a6dc24bf4e729ee19a87b62e3060b2b0d0b4cac2caed424f8b0f4911377b2ea9b84920849e317bbb5e56ea5abadc9e79d8a6599d4d90edac1e3c8fdd866e13db8c80770199cd3e5a5f3cdcdf335b14bf27bbcc50b3a03003c3a73521c94d0aff70a92795bebf05d49e4b4825f35799f7edd660a350f6a511fe187d162f43ddb2146511d3a46ac77a16249ca73d9ef1300b93992df3b93ac43dde79d12e504db7e9a19031ccf320fd46919efb21c2f6138457e1cdf297442a24c3b6bcad4602654da5c953a236f8e7d8044fe18af61740399d77d42a8a699855469871863c546a14ebdbd75c7a390db48392c895f6b5b553e74e526fe358c74976e470fd2160b37c36b748c7e8a94fb2dd2b6eb83284dde8ae478a562ce957b61745fdec45922a9fc583dc68eecfad3611bdc738c7ca14fd983f1c26276e5db94f301f5349671acdd04c462b2c3effc4a6065f78fb36060cdab35096914b0a369533ef8d652c39d290fd8871d0249914b554935507c7db8490bc41f623ef5764f030fb55b62e55383275dc7d1719fdfea6902a10813e9d58132794e8bc7a3658f7927764e7bad92e14daabd5e0abbc4cdccb93159a9d00c5bbafeb56ebeef88f65a89e5892ba8d59f2123bec3ce4dfc7c9346654cf1583ec8e96868d4434843582390af1cfb33bc347cdbdf78d0d03de1075faf570f17803f42be07cc3e0ea1b34579cdbd5fe1547527a4ce35716274692811d478a38dc82b6bf25fc252b4ce1009b409767239322dff95b1d95f059c863a117c43631017106e12b52f5441e54ed0ee2ea8eccd2db6ad8d806397a6d984b640815de1aa88fdb6f16f9e80d186b6cc4eaec0d124c89401f87cb060f5a33c575f33190b8663fc538fe905fb60ad3180db7dd0f7b43601920a67131acf4d7a169a86ccbc2eb6e8e40bb277decf9dcd3a8617f95b4bc1fee1827065920b7ca7de1bb7ee09237f2ab1ec1a4c5f38b89c524928635f3ace587892e80d20dfc3b3eab94ff187ed2eb01a1f362e8e66a4c51a3f5eabe3d2f9a94e6bfb2cfbc41e0897d32d3f2c0ef4b285524396ac6677bf179b2773011579924a8dfd494ec2ec747855fae67c13bc281f10a919ec4d558a318bf1038a64f9f19b7cbd6da1bbbb434a65876a8a072167805cae8884619b489a093330f9716dbb94ffb4bd21554f9b65f990951f9bdcce74a164d897e13b3d0ea5959f46a06391c6937bc854e3b0cd90217cce1439aefc1cf4ac7ce05af8846a468799563006fcbb81ceb3536500fc519c76e15ddd999cd1c881b4090f42bb0ae30cae4f56d73e85094527f67f58ccacf348740951db34aceb9f100d256ee6493af1211ab32409f9fcab7162c420495df4346eac4473a4398c4a584b93ffeb3652120e1acb054269c5689c74569b4f0575ebf0612bad73308cfa3140c9318d161f34b1527b1f3c53d7c6aa9845cf3612b6b25699480eddba791eb68d87281ab92b8479dcaf43e36cd84335660a52aaa79cbb0143aa3187127fd7eeb31b76c4d615b1e6adfbf241fd7efa1bad28846682dcb4ab6394c70395365e0eb85657e7569c140d324c1a4b0929c70e13afd4a3962dc9f304a213907f3b408cff01be9e98338d51eeeec57b1b41b81436e6ae9841f71f06dd9791b2311c1d2e8d684a13a4050467de2a719813cc661fac72ad9e5cffc2afeae1804955dd7300bb90ece43765a3e2573cf8c3031b5192d63bf262470bd269a6d5d50fc0deb95b96246ffd1229de25f7fe194305c8504b5826c805d8249daed622f88fee09bd375d80746fd97c05e8f4272670de0e7776df97648eb2db0a244fd128bf6d3ca198d3372fafe1378f52febb6dcc5a2ebc2f674c3f65e19d03bc82f8b791e12c7c3587f590a2fb18ac13b944e9a29585a686065051583dcbeaf9150f4bbce50b551a36f0b324af01a65a67c6c8f56e393075a9e705f9a2a9bf5a0cb13ed19f8e7f03f047d4dd902b5300522e5e58a9272cddd724acbe1e2227d3f8823cb5f75a1fc19957eecd9f8df58427f78d805df4fa2b6db7bec6223ed03dc1f095f193a18da36d7f4569f1959d9b9cbfce52ff5393b8ab6a25f656cd52f44a553feb42463ec942b63e2ded9e563ed7473b75bd1ce5c00faf04af63e772c645a885c0e8a0993018913e95ef9b229593ee61496d870f5efd8d7513782ddf80dc37bd2e875ef9133b513672d73ce5cf070f22febe3bc843410cb930cb266de73ee618430bce54cb30f0bb0d92d710443d7b7c9b21c627147b41c5dd53df8b32c7eb9fce895a4865cf790838a6e2a04b4a078a96df594b3d40e14d839988c51b0e6fbf3fc3914d0709530ad8cc1497b71981442ee7a1ed98081b212b9ed7a1ed6f0551ceff106b339a26c66eac512deb009e213ec77a2c66955c147c712287c3c501e6610eb52f474cd0a2da528ecb08b8bc3dea896cefea694d0a48c7a7e5e62c04e8c9ed81eb72e3689f6433a4cb12dd5b580915943d7cede75dda40c873bd267399de65330af7b3edb02848f8c1cc831db2f1f7cda678f5a7fc9863769038d331cd6b36c26627d79100943178eb95bda7676b83ef323b513cb6f17f3b36f1b4fec7d681108c44f8fda2e96bd80d5dfabccc42952fbad4d067c2d61a24d74ef664308dc0ba373969571a184efc0d90d57037d15e28195d60c6b717369479370a1079e108e80c0f4e240ee167f21c6cec30e3e5ac30bc82165ce0ae09059b5dc775fe068938a8a5514c24f76e59a9b921135bedbbe6622c88e01a31683a68580c204fd23337870f833db3f01f6564e82aea8226f234e74b45f4c0764cb5beb54cbb2abdccf4226d1a1f747d5ec106111ad0b85dec663adc6f8fd90ddc9f0335bd1bb824ef37c06c777eb22abfc8595b6e20ce2e018f6a5ad78360b9e6e564827b158b27324c14d5fdcc33cc5d8164ba1706f9445d143e9759319899177902e4b62f9942f265a571ef142e3ae72bbd27ba0c5747c4676977bc245cb215676494bb292894e62a061f757ba3aa89f4f3546c10731d53e316c89e2f31abb1bb7b22fc0afd7983ec4dcc1ecca072c9b6b4e6c2ed9a177372ba7fa9d11e55e322610da52a1d59fb6d48806cbe7a53fa73f984394c851b5ef88ddb9c25dcfabba7c0a4ca2bc9e2f45397999a1fd3d92ef3ee4c72ca1dfa36181dfa4dd880f3551260616f849bae843dfeaa9fe81a8dca6969b0df14c61975c1a282685439644ea996559121bbff7f98936fa1cf67eeaed0c39259b09372a1aacea24a5ae55bfda9b2a16b7581fbb39bb703ff3db4d79b01b6c02cf474898af722b8ce84eb8f960b0737e8429e6f14fa47d1b75bbe6ae657f7c20d3d8e4c6e98a1417f3abae850a83921f944789fd853d6e5833232cb4b9f0a4a0b6debde3bbb290aa29f98bce202a28bf33af96080a89d007c5bc7bfbe3019d53fa148b7356eb0cea2ea38dde9633cc59293c1989a7bd869487c3d4a00e0f890f8ab3da32ce4eff99326126ec9853e996436b0ffd3cbeb2f2a1287be5821448b8287b595fe7912e1c9b48f829ec14739fcf36ea3d8270e305b1e3823e5beda5b944a20da5ed956116b79b103d6159cc95075ceb572341af8c25794a40a4ba3de15a527850d4e6c5b69d44ed3d24f7295115b5ec2131ccc5e860c51c5761989fd1cf8a2f10c7de80a6eabd62ea86232165dd6fd1d13474296515f7f8d3a087a2e22f7cb08a8dc5d6994dddf0e4dd617087f89a8597d622e47e98ced682e227044dc929cae37582e925b0c44be10a92d940978c507109ae79a3e6a29baf4e3b4c65974fde846d1b288fb1740ade5ab3911f26bb897f5b6fbf81173a2927ff81ee80ec9adba04e499397a1c8834ca1c79f46f4aa605c1438bab12e442db8ef9b7e9f20367e2a394b7ac7992096c621cc934fd613d0a981649c9c7a15dbde5222f7d79e913a2f861a5ced4cb425216522cff93f3d8e4f5e4783377945066a98dbb80b88a71d17ab3e433ea454a813a2c9e2cffac4be4716cbc79937f1f9d4acdf07bf0209a967931f8628132581c2526ca42379681e1a6644694890eefab6c52d9557dd9047250ad179d72ffcb1297cee576a9847e850a5c87a89fb3d4b5f6bc573ce36be9f68fb9aebf1e3f9860273164945c1fdca7c533e7a22aab9dbafcbe9aec9e9ae46affb126f93edd83062d147cfc5691a478d4427173c0b491fd70a1113a71a5837044597ee2e409e01038a8925eaf133a5d357588c98084292b841fdb81fbd176523f1113c6d72c5846f130e58d7fbabdff63ffb7527b256434e0337a1c85c0c1a73536f730d4fc0a2d909620e4f70ecf402265e29c4f589282c5ac60197bb7fee3bffdd0f90e03be82433ae8e7118462738a579c5049c149a6003bafd729845602316c4481d865e205fef84e3dc38d3bcf299b764401a229434bffd56a770ac6d2ab53ed59c00466b1f7d750deeb738c5c6250dd3c4e345895b5c56325e549244c34d584e20d43d72ddcf2660b15bb311421f9daed63403d9745132d4f7fc32b8cb9a7313bd9ff8c70f830abd967afb558b176ee240cd987eeb03fd48c9b66cd98f75098ae25e06573f01eb1969d6fcacb07e3ab6f894c335f489c8cc12f230a13dfbc2bdd3308587e1d30d59fbf0d73d24e5edc7b63b43994b53417b9b14df57b4f82de8502f709521597708ce8eb2b4ee27d9e2f71d95d39b27e65144e5aba20da10154af286c3ca8b2e87f53f3a1fae571474849e84b459721790316386acf4a9a361d7b43ba4ce392a43ce5bbde366cc70f7e37f050373aaa4b1a875fd76be212b292d2f79b65ae4dfdecaa24710df9bdcdf822cdb191cfe3ca8b15df5ae3cfb31c8a81b39b2fc2285a4f896c62409595aa89bf65aea2f3200f10fffd0291724a58a06ccb3b1c55fc5ca1bb5ebd5199c18cdc4486821dc1cecf1cb2dffb934fc9f360aa5cc296c259f2c0310f3e1fd4d85baeae83e77044735beb7e5d6b21c2fa60ee547835d3c7bfe60e6ae38c163ef311429d9fdf17833f15680bce1c06c2ce3c4eac4af2171ac85a7149445f01fff67bdd9fb70f971d52ecade04386ee07085f3fd4d5429ce3cb10b9e3530f88e83cadb0058a7732fa0c4919dd9b569baf7c62106b6658eaf371df669494498ad6429537d3a6868a923e81ad4f25304954d53f61afc0fdfef025c7b21284848e9fa07d1fead7c3e37947e01f8ef6729a562c68c66e7d4fbd28497429352ee267ca5f4fd510647f143db569a1a27f1beb6daf230e3f350d1845891fe93e1b0e101c9cb9852dfd67bd096e5d9845d37ecc2a7cda403b9329addf512f1e0553a05b367871b7fc27d7c5d48536a0ef11f5bb319027f7d1e2bb79de36cd174420d4ba6da4776c0bc4634ecaa7f0863b8da56f32e58d719ae5e3e03c49b853439551705fa51d11715c4f4c4a772164188470091b93c1ad03f9b5ca83960159ed963c9835acee46de488c9cd319f56a9c561ce7a06c955d331eb311c3deb7fd4457a1b9836a1389ed76635cfed133cdf12c5c9498baea2fdec5f4cf23a09ad4f7d52fd8b484d4aac5fcf5eeea8fbe80b9650b0e8d453a38c446ffcc4a43bb76f3e8e3e272faa5f40f5272faf17119495243b49d98f0f23c478f09771f443db497001a13a43b06190a09d2df573d9b3feb7e840ad52f2bff59f0487442011ad4ecf3f8a71d2ccb303650021b2e76883a826d7e9529c7a27c250fc12617a2f27c69cb21a564dc8528e75a7258754db57e655e9b53a3d15b33981f478efd04d336d624c97619ab4f520596b363fc8d18aaba43ed5dca499ac493f3dba5b50f3e15ebdfb994eee6889e18b7a5c7d1c2bb79feec3f6fe417d7dd42ea1add766642a8398e7ca7d34c9f01328707fdda6e4f7e827ab07df2296d7927bd77b8c0ae6def0615153d84a7f3bc51ec1c058e0fe819d8a00663bea4db3ffbe90160efc0ad81f49f0df6000f8008400d3e00000e0069fc0b55baac890c23d8352009c80189bcd704e21e2bf1c0d71be1efaee59b7e2272dffa2b5a66c9f98bb42e0752d54a358715816c0fcfde89c3842f72cb0b92761a9dde24cb50a989177ac285552bca8676738529eabb5a0c51ab843bd16f8d6c19b7a41281f39b99e6fe9592464c0e9a12c08f187d7940d89961bc67d9308844eb62c7e2007d1c1687f03cfbf894524c0a1fe45e6175651d76a63c64d9f50b93b4e8a5ab04ed628006355127ce577e3b714244d3e03507cc053753c9b7e8e9dda8a9a701df51f406b3a62768f263032d3e2971645ff8c13ed134d15dd225dc7d2b86fe4e8ee894bf3caa34ba65c6b779751f472cc426616cc1204c75afc489a38bca0591a7b62c395ea1a66d399bd4abecde33efa310417e62b92b2c8b0567d57659d46caa43f46f133b9e64ebcc83fec47770f0651f5311d742f4ee8f8add2a73c0dac7181e89c50215b6080ba9306013975a7c5f23898ce9c31cfd1556951dac155a051aeab4abe4bd2d07506847b677b27aecfc29b618b3a29b6b5119d9c2e0e5919010acb750acc16cb12eeb06ce8c066d6e345b36eda39802e54b48bce0ab3509c66662e6836e138f4777ad86a0b4960311be7b888bee032b9796505fdbc071f7846f7cb3bfee56068eb25d53087cec27f67721810c28de8a706ace0b19989b927355d975dcb19d796ef4093901e1046fd6f3432abc8748c46eb5797b5934726c18aa555f4da556f554238cda470c11f33bea9a4a12a2d8f7ede879beefdb5f41303475d98b62efbbe956753d5305a51cc494dedce14322cb5db054185dd0c1c7d5d8cdb2d0dcc4aa27623f2ff3cb08b259d75c678b73de3da14848435a9bc95b77b2d9cf5e67cb7bf2740e67273fde1d4de2b304b2499964a71972f236f464262f19897be4599baec9d03ba9e495be2e6117dad3256348d3ec049c4dd22c63ef9b152fc8d949eca2d6aa4b0ef0e76d2400110fd67f760db073c4b0f39cd38eeda61d3ef1e14b7a3fe42c19427d4b67e2e283bedba322dc06669e2e5f19c3569f6f10dcbc987d423500e9aced8b371876f1ea68a3f1d491dcd87a164bf34137dd66e377b0d982f8bde3c990292eb6c723b68cd6b78dd6b7f7d2b7cbd2b744dab7433ad9053fd013aff8e4afcd8f9dc8bcbe20adbc6f6d92d65ce69716bc9ebaed4a97d0528c1346a856d5e381be78f2c728c7c81814d2a314640df78c3555c15fd02593105d43f581d6924fa6ee5145e7e44d6d2b8d51f90aa3256173e3b9aee9c010e6febb8dc3f265f7468eae3877fab190c78654ca6fbe7cfbad6ef18a5631ffeb7cdce1b673c35cc2090a13905954b139b6aeeaca8126c0d4cf8ecefbc7f035149331cc01f2a58e9b9fdf64b5482f86e367739d106a7f796a4cf79f358e6764e08604e77683f92386ab386612298efdd840447fea1d98d747df84861c7b898351206e6ad30026dce63b48382211062e33cd533065ef533bb2161290774452e024d6f7de9424fd660256b121a09a5fb39ac3626cb9e586ca445eb358ae8096b614e4bfef5e53d880802aff342d80fb3ba97749c08022ac01e0edc76a24e2eed59f5555b74c5698c9fd79d747ac86a33500fffd1fd5bc8dd9f1dffeed9eabeadffefbfff8d77ff93ffff55ffef55f9a631cfef17ffcebbffce31fd53c1dff5e65633bfcfee31fffe6cdf97cccfff6cf55fffb9db5c3feefc35ccfffb938cf8abedee673fafe7b3b6675f91fff38b7e1bf7db323fb8fbf6c7899eaff91677b4911ff5b1b71b67723ba5cffd5eed5f2c3460cebbffe87fed9fbd5fca354bdd9f3f933d951ce8cc410fc4f06075cf1bfc2ff2bdfff33ae551ae6efebffcd9638e0368a4708a03615ae4efe60b5c221b5e2111a0fea4ae1ee3ffe3fd71fdce0ebf94fac27dccc1feccffa4a7eeebf39ff70fc89f983fff1ffc1fef8ff93d7234ab9d9ffe66bfea941e3415ffd959343fecef3f7fc0fd7df1ca5fcec7fdb7faffbdb97494ff177ce3ff81fdbe2effbcf3c96b8f06f7da5fcdca1d898bec8fdb5cf3f31b1e485cd5fdafecaf1d77e53a929fe68ca65aece65aeff837d242efc3be6cf3efef0fdb1ffe42f64af4f242ff95bfb7ff56cfe67beffaf23141bf5cfbd537e7f6e7cd97f95fe2f00f7fc603001b8135de6f64b128add6cc34a0404a5d6b5afbd2123f0130d39b14297dddd8446e820f974d28db74086bb48f11b1b50b74271eca738f183f87a607417db3feadca3cd38a3aa39b2c12eb56f3a5b68aca5623b1e44367bb521c3c5e17fb7b4e5a82f833ad641c2f6a27faac9519815d6021164e5cf652b9ccb68db67959c57ef0533d36c4a07cba98e8543df8460c62ff57bb71e003516fdd0e322a5cb6853fecf3252f91acefa7875d5ffbfbfe1ff6d244e5ebbff9cff1c0815232ffa5f399a0021feae4866620f4efa5f4a1f25257c968b2ddf356fefb0e623613f8768a28a960c72bd13c5dc4e4172ee1758053902a23ac8d86c39aa7560df981199989d30568b7c4532e528a5ab2624aee1c09989a4cac3fdf6e5e24a6aee87973165b77c703c8f7c738cbcbe385bbb6e7dc8d0d158852db33b71f0ba3820d8d25780cb05af82597773ea86cb84768f63ee207eeefaaabbd9d416f825225571a1781b9ab1167f88f89b3952b56aed3ac5dfc306aaff794e74acebd843d84c6f38a3e6446186e9f4275f36972a6db3e85046bbc10d8fddc020a5d0d28e80cb23fce1dfb86daa4a760f3ee3a40ce772151b431f265b58bec1f6554a777d223bbc245b6b26a4fea8d3af89a9f2bbf2a234ab0126e6922a0a3a12de72133cde6d03aa4cd612564c697e9a1b81b623bfe3fcc7b89fe6b7c6b0cedd4bd92e557bc8f5f3b27e089ee45b69a598fb4561bfc38f7888ce4d0e715289cfe75c3d487fa5060cf589063bdbfa513acafc849a9d3780cc06aafb99afd8e49e4d3089d927e0ea170303ca61b50a6f02680b6b69ae7a8701f781427a21742615a5150c5f53cc383c7e9c4583dae5011d1fd3b54408cff598e00c20dfb66656cc7942f709d703994c314de0cd9c379f4b45e7fa4556e17d838064f2fd02392d64f18921e8e37037680112bcc8c9492b840ae33231c1d567bd50cbe2c85e5017d5b040634855f1252e494b398d99521780ab2d507c6573efd416239d9975b4d9d508cea54e57ba9d6a67deb45007f460be6c1290043f3f26e06e8e47292447a1b0fa49eb515c18e23733e8e17512b61e89f934717e96c16f780e4ea454095300ba48420e553491fc4c830b1b39d03253b9a08dfdb6445c9bab444c70ee72ddcd64ae5103919bab69735867b8246762966a39f8a907b29357d9f9fb15fad4d50bcaf80f96857c01849a17c9d5c7e9dbfe56e9c130f977094a12be8da8e1f7510f3e6a8c797ec667fc09141088bab27d23a2fabdd0b7c0a61525fc95c2590959312cf1d6fc935f9633927d9988065083b179a7a7be29da231d26cf5fcfbf2ccc19385fa31cac4289e41e7cd9ca8f3a2a0e3bb0e74aba811a67572b9cedf062a421e1f037ca972484cff88683cfdc3e669a9784bfd511557b6efe63184c607986d5f45beb26f2212df8b3b6478555874293d523c182e590c852e9d72ffa89d0826b30e6e00edc15045063ff7026f7c386526ec5f461be1819675f1d3eaf178fbab4f167c5f1af61cbb013e7e51e043651c577042867711b9737e5321f60f17b22bfab6179c9ea7e2f7ca23758860f7513c5f5e14ad7c0e892268b2d472002ba2c3fd51a73219de62d1007639c6f30fe2afb37f41051910a5c43aa68c4da5288a6d5b133195343105359676a2f74236785e1fe85e3f3cba39b7f2ff86f24a0d23856ea5b1dd77d7315fce4f3bd0da060f999915cb91d1d454c0e5c5e491d3e11ba3732b70b331b3f2ee8a8392a8b4fde4668bc23ec2a46dd478038eb3a69f9e3e4a799b8728db57d320cc7e3c3232dadd771c83ffed94ebcfac67cd4596388e0d3f466c5555dcd26a3f259f44a278bc24c9337dcc40a74601bc4b4f9376b118b90afe4e768156db1116faa116791b0b696dc6b92cfa60822c1798012e10874dc49a0820d93b948e7b40712e10ec8e5835fe423e579ed37b4f0adb8e95454a7b9393e82cb0edcc98fc20dc8bc8a8cbc4b704a68064f17096b7b9e7064be148904cf3398fd73694c01306838c0efa744141893819088e4e55fd449022c094a695b088f0399b84d6220d41929304bb569c0a8732ea2e6cd78599a5a913bfdf9b1491a84fb004ad24995ab5549ff6c0e3ef81ed4c04e190af1b4d72c04ebcbae88b025f12da336b5255c217727be4bf7b055489503458a077a5c3160d2f7137ca721b52040c3e7ab50486a8ae0d6047bb0736be220bf3053a1b88d01fb3a2d73796ccbe3740d0fef11fa76f32c4accd7058d0b85ae6c2bea9bc3c8aad337891495c8e1be03c1b5e9ffca9cbe201290a439486c5574ec8ebe35318f8880ba390eb809881a854ec84dacd0de0e5f58a365086e8139afb04f04909007bcc08ace6284dac3abbf524df98b4e63df10bbacc47bc6bd41b34549d2a9019577951643343c3eaca8e5122c3325ef073fd8ff90ee57b0801356eaf7484dcd230431a017a253811a4d9e8064bc9d1bd417d93e159202a455d892d89484236883694db5b34107f86e265c99a3c29a37926d9b3f4eed3cde8b1d5c66c96b2277ddb65c4e0c61b058071a93ad6ee414cba86ef0ce980dac3d5b06cf9aa9ac45a15f3f0320a08ebc6d8f0b3ef01250d9931f37699584ba41fc306eae5c8baa8c8b10c6af4542c2ab14336bb9666df5cc090d772f7dc0b7565da871a4128a43ee49fcf4933e488a01af15decd522ea2b78dcc26a911e36686ca0a079a60cf53432127c6f2794c5d7162e2cbefa0fcc92202a048bda1cdcf33f44bb6f5702e37ddb88bb609c98dbb8e8648b705628e9d9802e9d80bceb879b7714b1096f9656881e94504dc00ce4abde3888d3297a77c8715de24cf4c5b80676fcc88a86cf15f4baa1f69e23db8af1cc8583be6c05a8a72cb8099a00f47f0500521a22c0c29ab9c6746a26ff6256658ca121b0bee3d8c103cab29d939a9e05ae30b9ce0d9486d80a15f7a9310306b0370fb039f727b6eb644b2bf34bddb98ef706b3aedf78734937394cda9bd70e01617e7db76b76b75d632df14082aec5f8f481728c0384f8438455cb3372ef0ee2cabf93c843cb1ef00a759d761e0e6742c1fc67900c539fccd0cdbaa44bbb6fdeb68d997cfef4ec4f8b28d433c51d6bcf3681b28eeb73c070d4e1d0346b00786cfdce4b719b0b661cb104956f4c01c31365444bcdf2ec1ef7cb46bf2cebd0c27146896dda7f91401c41765675475aca56f0b34a18cd8fc1187b4a51be69e94dd8ce084f88eeb1776e1655f85e1eb897c82cafec5740fbaf9349c5649ec154a6d965dee4c9bf149c0a0e0b74768c597cd0da06fd94e81014dd9f0bb670d1530124cfdc4920c4de0680f979acfe2c0a49080111664ec2be41d9d6cefd7caf861d025eee334f6cf83eb038620a29220fe03ec1a247bec8d8a103b20e2a5ebd5f7f25350e0ce207b2416433785d11608e39ce0b7c1a10e3f734684bb85ff005619879e41af06431cf848e51acb122cc180d67b8f86096460df7029c27bfcd4a0238cbbc38fedf8ed826b0e4c78c1b2974e2bd4c23f143d3ee998c1075edb44c97c0ee91ed986a5dc4a9de01ca623ba82ab4dc2b71eb532544cf27a6543713e06d1c8780f39011465cdb1839b89384992c281135d917b414db5a6f5be150c8e091d18c87e0f2d2255eccd226d6403f6d5def70ec56f4fbf57795419f6edd5ebc72ac0ec81cda3141b9f17fc836be1fabd1d45a6ae53448273e7fc2646cfc6a82e8c4f3e2ab61532c1e42d2574f01dc87a408120f2b3496cbcb6417cf58625fd59d02ac45ac0931ef66e4804897345933caac083e96b394d23915708e157e47cceacd735d6a08931f245cb61c8f6b9e06d8047fdf0e40b0b454e5d48c0c67426c3b534f68fb483c377be8c83c2f7522c1718a2959166c1b29ab497600e491ca2503c87f0dbf898e584d68519c8b5109c73cce874e7c096fd91b958a8c0878fec82abea5c8158aa83085c6e61cafaac1523c2c382013ee41bfdf6808304d695d3d49680eeb81af001b4618ac5ac4564eadcf3e359223c0430c772faa678aab0f226088d0f53c474f54b990a7212d001c971739e7af9b796f289bb199934be221c99c247ad64f3b5e14228a8030fe8f233a0d9f49cb44d8684291eec6120df840bc507afb9b853d91642b9a0fed53a11a9c23dd248ffe3b06670ce986b7548c3b7b68719d8359d563bbe9fee475c7e72a59c165d8a05d98109013e279d198828b93710b720efbe9ceb0354eae67feaf5a358d9bcbfb3f725b4c4f4c28d3260ed53ab00ff061e530af2a9282bccd7a5c1c6b5b0690ea55c9c6dd6a6ecf1bbe339b2c30278c408649c2a606a936aa8579eb0ad70f03eacf540a528156e47f680000a5b427117916a8de70e4b9438ee0269ddca4ab4f361235c30ce1cab74cf9408d01037fc9ddf3c9c524d548d7390b8b4db5eee5e730adfea062cc37c083b860f659c0eb15138b1a0861881348f4040712fe06691f8c2729942cc9705d20c6c195705033e29d6d95d61043c2a617871d71bebb20a6cd75811a223e5ecbf069a2a35f025cfc2dc46df2150a8c96c23365020cc2ce5d9ba751ba58ab306796ad67bf3184bb52680764b9ceb937da5e78b7495fc1164a15f3226733036372e4407bffa1cbcc27cfc05aa810d12d54ab60ab0e07e0e72393a3ced0077d5825eaa97fb70588dc6b3daecb89cce35579a86c74e628c465853e9f005f10750c5b37a098e8316c35c124248f4c077c7acc4dc1b64ae538ca14122df34fcd6dc00561c584d7f9b4f1bc9dacea1fc68e22d1a4b1d3b5fd44b74c830704d2b90aee0660a5471727a7e850fc2ef36bb1a92733c40db9b9b5b72d84543a7c659ebd25e20656d554826afe24a5a2471cdc79fa8657f9cba3e099c2daca6e059b9a9c70eac44f1f9aeeb3c250391c408632dece7b35951527d45157809a7ce0bcd520b27b86fba026995af66cb9c818b711baf02ca7e3d69c921fe923b7650083f1dd5b1f5a4c2555a508968617acc2198df36f031fedbca4febececda08358708182835ad9a976f9980ad305f53767fc6662a7427de5547164be57790a4d059a27dd813c9d446f77914389454f31efeda5f79cd6a09589553702277dd067eec8dcb21b59106bd5297ed2b2a192f43352f3299cbcf9e547146a5d1243af2d7e57790169b067254067c26dc167a3e47b9bff8b56ad7f95db11a84ca3ea8627d016ebb0d59dd381988b6e49a976612b5e34dbb20014699f8fa27194cd04494ff2100cd920eda2e70ed37e3d578d0d482f4170d2a0a18d5b118aef9ddd32e8eb779f1cd52b21fff61065107825bd6dcc267d1efeebd11d808b731d2cebbc3e757f053480918711f069568651775d4a76a1bc67090b9ea203c427e618bb902997c7bbead2365ba2b41db05fac197895b1625f120b81e03054414f7f23269546a75a72b482c13e38bb4f025f51bcf0a2547edd71a78d8bb1e8ace7687e64b240a39a8af66c0ba60e1d6203811a2200caab280688db505c92a3f324d6d9c6a2301a2d6dad9d90fa332845d9081298d8afaa63d1b52fc15fe1804cf21fb8a36626257054da176fb7ed1b2c60040811fca8bce7c6d93974bb926a0ef9e9ba0dab1048c26b962e89daa09c31dbd366cc3f303962b72e413262af1a8c58649f632320a43f882e53b4bc45cd5b0214c5243c9cfcd558ea8c99a5fc4bcb36b0c39a16647b8fb77b95f27c50ca5e0462096c0d41da8b592d106b563cb1c669d9a1995ae82ee71d32ed39dc267e5293cdf40d1178f750dda3cd9e4abc09543b0139c7515df8fdb7330a0c076cb0a2dfc909c100eed93df258ce473bfd433c2d5fbaecc695268267af2115060a9d10c1c62a14d417e907ecd136e0bce12ec75ec7a2defc7a0ca25677f2ddf02085780a37860a4be7943fc8087126e7550a1681ea45a15fcca8d65525dc2c3ea9b4224cf6da9874cdd616d62c30ba59955c16dfb70050d9cb53001f97b4cdb2d8cf5f791eae707296b8d339d19ee826bb820a0f87bf689f4d8908dea7fd42846d904b6a844c83fa59a4d532410271c5d6802ad9ff2a272c245d2f0203875c1f08ba8bf9a087128a7b6472d31ee7480acabc95aa9957beca8de42606a68d5b7e6f99ff0c649af7a3495ff185ca56a589e9e076aaf30874e56aabc6aaf79bd86e7a8d7c076030c2a1f96b3b9f10e98b03a79d2d792627676039a8ef052e54796771eeceb355e2a51b5fcef03b829e06e73be6ef489a014fa38374a7ea192d59408d0aed64dc07261eca33694528b654dc22a8d2e3fa0de80a61433d2541484f298ce17d3955b457d33aaabae26bb8c58c2a1b51a368a7a4c78ae7b2ee5520274694adb1dfe6d95daae5a03772c4ca72cd001a1da3f12d5a37e06b884abfbca0a03f70a5cdeb9c1c487517254cc0b49e58c1b0e8a6af2ede5c0c66e8f5064a0b8405a1e20d5238bb4efb443a997806b6de7860cbadf89f622cf3d307f26dcacd50a04f9a3d7bf7d87237094b334d1178a6e149c98ee5f168dc2ae164a1a74b35dc7d5edc1be3ed21188495eae08b8ec0ead1eb9f736b9276d12c06b563dd1d17255f703b14ebb312f935546bcbe70cf35b34271dcbed5b6cbdb422a6b20070fcc4f644d036e01f143ebb966e5feb203ab2e4c79866a693ac2fb3cea91b583f5329cd40aa409a1d94b5261bbe79262e69444dd3bb9165b3a25c55aadea00a51bc3844d50684d9425eb57028aa816aa0154b13d660b08cc914d3595be178bb3463ad10ab357ca5f1a8de6e18a847b76d31ad563bb223748b814e69df78bfe79c6c62d937e5669d5277a6f133c694380bd3eea9e12fd6182beb016efdb1b40f8f7cff9fc1a81a1f46d8b1ca980e480a62a90b33ec4f54fe102a4e64b008bce65e4e3fb97b6e65b2b358f29690533bb5ec51799c0021a5d2cc1d11c067d3d581a422e5ed18590abd7f00fff07f060004adf04539a70a04e0e6f0732670db17993860325f0a0408b13c5fb063dd086beb5f2b9ef4fc3b73597a0d1c2009e7f26217dfeec0dbf65927a02cbdcd5d6d5c13d8691d32246f9955ec8acf08dd4990b6ea54bcf1907919d8d792ff2145cf9b106ecc745107372dbd487bbdd0b8499b58474320f9c223ba87d49fa2543c8053feddb34ee80433af471b61cd2a00d7d6a9d2a178c17c499e0e2f83786309d823100e791701d0fafdb9ee01fe0aa72c38e3397326dd8902547eebb90b5060c2387077d61e3b2c8128a00e3cbb7b028d3e50202e20ba4342c1c68c4db0f16c770db599b2be43094fd570df89d541b401c5a05a66e13a61546a76076769e080be050b600170e789c6818d98082bd05824809e55c9f99fc449b5d93553ff5454b7525dff1e432b1c9957db54ef4c1ad88dae103feb65c317cb7788891097ed3029e835b558063047c8e380930d66c075d23ebcc91e8f7a54c7e056c22600da1e14bc045b15ccd5fab4aa84414663103e3fe2653ad59f9aab02cb4147607f30c1b7c2bfe6c8caaf40e8553fab286419e685dd194c4112e3da3900e501982f6844b9ee8e98578ff1d976ae2057c443ee07684ccad79e2d0e4b8c115aa814278ccee154605e10e142047edd80a08700ecdb2ef8f9baf78a8ac6a62608853fbdf7d597b81b02b6845692f8fb8175519afb69e2dad79886cd02b3c040dc15216ecedb54226fcbdd816aa4a0196a2ae96b0fb9523fefa8577c4318903bd6f906390db376e39ed71fe5400305920356f2d652d4931b0da50eb6366022c07f665b1090e2a113fafd621530683f1e087a301493c6d9d3dd4becf2e5bf3a7f3b598c596d34ed4997b5aa062e6fcf8cf195a398d71da780f949dc98a22093650de36ccd4d666f6f6f70801b791dae7a89e0e5e2aad1a2b527813b36b451cb8b4a0cbcd0a740246c4ae1e1d0af9ee9c4af192c81f89e2a38027781cfa5a526f924683cfb65c421df95479e2534ac5a79bf418cb895e6000364f6fd34b15bf8b87af2faa307b31026dafcc3ba5620fe169557bbb0be83acb868be2ab218067389e956d32b21c5281a255beec672483dda60cdab2be7ab55044d910c467f23f2186b31acc762c84c4100602b31e42b984067e160ea1b65c60cba9b955f0efe3af62c0a7429c00b9ceb0056c9dba36c1d4a5056f8bf4b6c44f7139e5cec1004efb1398a25f1eb87c3f16dfda17d5c14bfcc3e177544839abb96f3d54b6ae86dcdbd5522e674a2c73e8673238fdcb192e67abb80b81528be7bc734b4ee1bf2175cb7e0edef98bfcaa27b1f66f7b4c41c574e79555cfc454c3c4ee60ca817eeee7554f37effd029d0cbbe1d46feae3a6546dcc208b3ce5ff22b92c92a75582207e2016b82d1b7767901d32b80ecee95ffcbf7781eccea85f64650d77ebac4bc6afcd0af8a34ed2b417d94480383830bac6f166a1bac09c4727da41c5d779adc33d19c539be17a8e2c950cb9655439ee8768da99d9fc279993802ce02f3ac484e556c333751e96200efc2d7d85cb1da9c0d047a3f97c23c4b2b0d3f478d9875c4cee7ec60167b60a8621fe5bcf8b496fdf73152527d84688f6b8be0092a1d32e6466396acdd48132df72baac8f1fe861e24d512cd16e8864d30fca2ff9f4f860181796c6c4ffaf770afe40fc2d87d1f26b6b721b794811c5dbcdecd4742e1566d33c2793a6a63a8e141de761ceb98c9365cdb4c9980d79a722b460b44a990eb32960177e3cbcc9a2c37d44ec29f849783c6b9afb2751db2becd1576ab322361d2969a47705c9052bc17e45dde239cc7880b0c421bc81fd24fbf49cf19b087a28076e5b4936baec69d1afc1c040da8ce7401ce7dd6e8f178957501d4bc3494360797336231270175e342f6ebf6056b72583a29f104b6b31b82ba583308db96f346823f87d002e622b04dcd06ab7c76d513fb437c036e16da65771db25a16474e1df6fe55df41f5a4de21149be204a17396a3e45053ff9eb84107ccd740a24b47e0c6b0dd0f0578f8e20df8b6b0149c89594b2666b926582796bc064d366b19e59efa266455a0da10ee6413948adb01825bc45a4a0418c05fa8a250c3f59b49f275ee332f3e128e086d14dc70cc1d97c9760b4ca02a3f48f0dc046a29beae1501ebe6b3db61b04fd304939a78fa163206e5cfa6eb9856e9d77cf36f0b05248d6fbf7d7fbd349b1326ac5611cde1b7c57147cae566fd5a9727fa2ed063ce0f7d17b4373f6c3d9080bac0195e482a59fd2c855b813582e9a09d346c1f542b2cc746638cf095cf5dac52c1f0bb8f2d620f7f203fab2c1f99db096e55ff477663e7edc245e8b9acf418214ca29c5814c1d78203891751c8a3900369e3b9f170530dfb80f809808ec8020b514a30801878b3cbe65ebf41d2c9f27e5b08c4027b55cd8ba51558b2fa5e9867990fa1471556f323ef25412dba9f797f6f0980a27e7bed4d32b3d67b0e0ade14f009b753abeb0e8cea037de6c56e63998474a52338192c00e17dd12261b50a1bc18ba9e2fd540b04d6c4b5360bd77612cf8faa85cd5742ce013e9f966604ffaeb4371b42a324faa316cedc65a077b5fd384566796b2593675a82d4a1e3e58ef80c02d3c3484c0f622120d10644a74ec38553605e1006d1c64108b0e516c4638beaf47a251f68b2c3d8f2274f35f844c0efa3308efe1506592b0801535fdb1cc62b4abb2108f17d79b602665c050c6b2ae9ae9469789b860f001b31fbb5418335b82aa1e2f44b67fc9bef3fd079d375b9e45f61188e702938b909bed63b43a41ce993bc3a0ea5852180d1d7ddafe6100a481808ed87942bb7b78226f02ef800d59898bee78bed920ffe53575cd03aa027980f94375a4926482c7a098791c1aa80bc29bfa6e28d4ffa7b966ceccf76d28f681b7ebcead632c2291da95b8c32a945edc5052fca81c0278cc5880d781f433cbe314c958bf5d5c74bf3c418946b60609de58fa2fcfa83f54dd260838d3b801ff9fa886d5847840714424d0b1082e28214d7767f761d98a001aee53cb786ba8e5a75331c3f63535f1f516cf52f87115b3335d105cd295e3eb3b5303fc521c584eb046e92af2389f50f98b88b4ed702c8cd8717d497e867708208a840ed6b139160a390c39826b55a8991a28991cb10bd84c752c014af8072054651cd607fee8ef90c13911011eb1c582f7f1e1714740216104a843ef4e0107620190c87987eaf58866bc14077dd45a08d0aab4c2b5e6d4f6288d635ae72d6f0f9a70374c8a5e63dac65059c9a22d97c08f7d45183f9db6dd1687456aee5641e24a0ba62b26ef5002cc256f5b84efc183cb50949ad24bf3ec9db93ed3af8e584c9680019d78dae4d20f537e6cae2871023893f6df65e21a50cafe6572e0146db25a2f74853add4835728090f3543cf04f558172bb7832ed5455d25e89f39117c988db90f17fe05f2303b404d461a2b87702e03e2e37d0c6cb52457be26ae7fa8ccb7b84fd100077dc0c9bf9c2842616db808e4e4e0ebc7c09c8580b3ae4815ddfe2db29ee050cbd196dec2167966f8dd439ccbb47371f93d686a67cb62e90409d963d997c748b8ad6b301c5f0946ada80d9701cf6d9f7bef39522b8059cbd2f7165ab8e72b94a8cc7991d3ab90097e6f6dcda6f8062d67ff172f85bc2a961274b13355d49322dbd42a664f83e7831a00e4226773a81819730811e2651f6ceabbf5f425cbbaee5e0b7d3ebc667e2c5d75842dfd5c4ade9b714d4c63d304311a8464d8ace3a024f23d04e0924299e094590fd6e50281a8bbe7bd05c0fe1a1fc4e52733fe7bee2cb7336d59ce1c0e45f84a97948b6704c9ded77b9da3c8fc11a9755737ed9e35491fd8619470dfc2107bed9219b5e8de71fff43e8c85b048726503c0cfbaf2226e3daf01ecbbb93ca222554db459c6cc1b058c67590b9eafdc534e765a0c6bfe238dfc0783239d577906045ded035ed454b0820cd279132a4836730ab8bbcb5c888de514c10e20d414247359ee00e4607bf50fbf81437666ba3c13d486597b753f042752df077440743d9258a9f7db982074c72b2838493e39dfc35a68c3588121b889b11d69cf6b1d53a8be54c0ddc929f31bf6205a7a44c94813e4e97d7d72fd53f3a85f00dfd6c60fe5aa4cdd74028ff96fdda8e0ebd96ed53d26e2bc435e7f8e4b6533e4c143e7dddbdfac9e84aeabe9122838c8c1f1aa1fe992dc604d4d665ddf0e2cb81992ad70f0e82be2b50246b08171d611e025f9b0f08351f67c101145d913e8b4be739c88be2d568075a76eef831c4767407dc000e04cce9d481f47a077bb0905e0b9360da4ad240b05db95990c7d764d44b8e50256cad38077c874a32a95165b1ec739e9e58247e6779a962fce3a5c21a9c6887c082ead795942330f27ecf0fdb2f3b7cf114022a11aa6f7ef07c05af47cc66721f77c5deafa696d1eeeadd40a75bf47693a1c73700b13902a4e6e3cb72802b8964bbc1d660e0266143c88146acbe2d8657c2a744317bc21ca364538c8f985ab5aef37a1dffaec9a8c8a298eea4a4bdfbc94e44e207b14f7497ed664c93eda1a71572007a28e264bc4df68e4ae35526b5bad1552e22ac48728dc0bb2bf9cc8ef6fa58660d78339b7c04d4df017e62784f7f6714b0f8f7986903075b2992dd77070669e44bdc3e4db97695eda77a502068c66a0dac5a0ae2851e6d9824f386a442209e809c042466d5e5246530867e4eff644a1fec0edab42d9e37f07f7328c1818feb5349bdfc2ae6df059b0d7fabc5dfc4bc85ee802a1df6bf1e8f04101aa5ec506e1267c03de97e6b77094dac06064b7ff724ead0556067bc1d594d2c0d4ee1cf1576c8cec4f71baafd5ea22db0611c511675b211717b6b3229c95f002f1066ec33e3642dd4ea7131d9c79eb9e8390d67933be661e35bdaba935a576098e274a58b4927a241cc34d579bb78e2b769f1a3015dfde9e3ed81f64cb7423040ea31859c5a01349601c39e5a26c68cba5a95d99cc122f7cd8cc1643e379866fcf81a676a499435da1809c4f067c28747459297a57ee23f46ca1b2d47f071c1e7f6cc8c95f8ec51dec33449166ec23c81387c38af289d22c069d6ff09bfcd010d6dba0e257b27b80408b7c2c184168ca667965f5e18a84ee7f7ae9a8594c7e068419fb67b8099e7e0bb17141ee0d7cc59bc22530bcaa33e0fbc8e5ecc465d728c01d85ef6221726126d0e489bf4b8e5c9492f936063261633deacc3de2fff0a5b474a300996d49e91b5a75c26c4dc377254b6d609d5938abd3841f3841762812528b424d6ae964e665cf4c1c13cbfc06b3ebf850d348a60f54c2278414d38242ec1bc95958533742ce165853148df95b4906216b1c54878351b8e325f93cadd824113af95e36820887804b0c78ed96f4fa0b4d527978b1a6138814707a2f684ccf3eda0f502fca4d0eb9db07427ca954682dbc4de9a6caf909d8aa3f77f562474cbd5c91e8aad6d0e7193f1640034ff073baa7196f00023f1f6c70296d22d800d70fda5819f378fbcb2b5372eca2c625e712bf8a7dba0219186e03be14426a2df2d111b0b251312f81867be82da892c511a4ad89f5036dd02ca868067c0c7cfc5f978f401439cc6edba1d72b2225248ffb3535dff714f608679cb332a4f1217f089c24f38c46ffbee147957a2b7513aba18d80e892cf496ddc3b72bef9352aad290cd772fb6710f8d510a923b081120942374139627e79d18d46a0ce9b0ba262007b5b2020ef876dff5ee15a5baace4897e2c08e0c63fef2c78116525126fbe6a3b315d4f095dc5cb740c97285d60463204e0c9d8023165875e304fc946c60103d0282c629d81e63979d89e3f5f83a82a2cb17948d180a142a4c94aebe9834cf00fc54e9ce1b524b04358c0861feba1b1a289da00675b807518dad8ac6175c202a150dfdf4d5da12083c9001875a79f1b61a1aef07017a2f17c2bc9a8c48fe36a84ee1801e0ad5b884b8c5f86274144798ae6fdba20075aecdadf10a32ad4660f8e35eb92860ebdc8869e10ad36a7a66e392e0e37b38073855dd05c85f9fc700877baebbba4f0acf849c8d3bb1d4e4743be11adf2dc70ae9d94da36b88a001f78172e2fb79be678ea362cf4d895033c6a551ed66549a7181457a9bc46dc1fa30e379f031549e25dd56a360968c5f5ce03112407a71cdc335e94535372b06623e0ec43c49ea424ebb12769b7abe6edbe1dec6cc0cc87684b822043ac2bb07841a09b725d0357bd62758c178e9d80ca05fef44c4c083e2e6096e25f43c896a8e7280c56595ccdbcade4d4e51c41c12e819d5b5525468aa5188f56bfee0c91cd5daaac623cdba85514660a8f81bbdca68e0265b045f6ad0e54ba05d372eb6cff54b9c0d1b0461906a8eae4e553094dc848c22544d82abe4f1ed2f81a7d5376f44e563cf2174e32b6bfb2217a9be802422273565b98d31803d61026ec26ed57aaf187cc83ecf15eb17014b2b5d123227c51d03b3cee1b4bfeb136e17a32038a24df421b8878c910ff00de26ac3ec394b807d53349544ba8a6ab75dedf50082046cbca41762340beb48c8292a1061087e895b89a5b43be4472b341b4a079d4b80006129f882cf0799182d7c1149dc7e14e4899c0ddc609c71da38d525a272ac164fe6b9faac1296e30cc71632b6216210f0040158dc13bc8f04c69ce1bea0b04636186a3e39b1b4e0d4d657fcae1be4b27b05f34af7812a6694d6c23f8c3762f53aa970c388e048e2eb492da3f6447d09d4205d46a891941c8190995f8a67c037e73313d2a18ab9bd4ab9e781a57833fbae1a97e442f7a8c9894e8cc0cac440d440535c62cc4db116083aea0b04f5591fb08f089422130a6e58981493bf2025a569612184af7415f6957090c3c416c101040cc3c592ebb7e9e3d04aaf7562153979301e5a759dfa773ccacf8f9db31d48eeb76581f7567c046c178f8f0e6f5c0c409d01c43520c9e918b6cd71ab2ff47019f84933a74649410dc3ac5fb25976964e962e83d6cf087ac099abc9705e6f33438929a002da059826c763949b051da85f7739527aa9d4187586fe766049f5e12dfc9ac6cd5b9d02fd92fc098180f1f7755179c25a5ff1b0bfe39009ed3b8e403282da86c19b482e1f7159e78aee8f78b5e15246b538d6988ed535c73f46eb4054da4e1100c52e233250b03e0b6e17c6b631617c58ae089377950bd2aa5439fa82003ba17ba5e8d77ca9f9a2e01a07b8d52f2073d9afedaf4ba6df0a1897bca590c9f9bc5b6e08a825d8e27870f3e43ed9510e336cb60d740d4ed537fcdf770192365cdac97cfd4b73416789fed80c5e9e5d35e78a1dd07c975481dde8a487b826923329eda42dee7c935a56bbd19e5383d28071bf83d2a4b05dbd7ad473b6ea9dc2c1a98fe93c5b53b780e20f0e2ea67389a8220f69c8cc254a97ec0bf4fd983924ff99978fc77f5261f989f50e76eee6f46a49660098f9511ea2918d0a3ba310cb93903d64ebfabac6a25743dcbf40137dd720e6ece293d3ec53e0f43d0148a6cf17ffeb6df6d3e70ccb8aa9018b73227a9beb2315b8f476bbd216217eb0316721701e91696e60dff0f05cbce8d720e74da8dc3b11b0be571f57bdf01d3d105348c8223941d76b2abc70002457cda95e7e2ed659e5078a2f8988eb8f072fdf014691484f44b3d6b20e5f80c0829b50e26946888ccc9d9543b800ecd685b9820ac2533ca7cb335d227bf0875eaba09e53784bb04f0de6c31563ceff6d57d9b1f420c2e43119053dda37cd3d5f87a25e7891007f1f976c13593a46357f7f42f3e718c5d7ac2db5c4e3dbf2283449bc714910d3b510de510b137a5cc07ee09517e943aed5cbe480510beff3b707a913e32f7f2520fb66b528c34aa149f7af518da7b3f6fb74ae51ff2b14fb1cd11eccde5b9391c83e2c3237c50628db09e9cb227084900905c6dedf33e5be6b1274ad7858ad2d9948849e76eb22c7f35fd55779d21b260399d7ce75bb411c687d982d9afda16cc3c6efb0172586efed4ddc7d45e82fd3e3195ae15e3aa6f83456dfe49b153e685f9e7b4d6c46032bc3a508c921befaa9b435f3ae6eea166cbd5dbe7cfaad760f64fd8e8bd3956e938ce4ef401887396a32043b10c07889e68568e7fbe19e78750583dfe168382bfcf98a660dd60f88bfe5177d05c067bf065a014ec9c2b5a2c9ed1d6fba5aa7833601c23a390047a321dc234163e9f4d3070b0ee9b361fbc14724725cbd70f4f407e6e28b033d236b05c390975080fac1e52caf04392d69a0dca7eab4d579266f54cb40740da63fe492f9cc0224a3a967885c0cac238cf131d26cf8a969020a7888710c92590a41fee47e8662196c334b06f23a83fc80e5d488df708be87a507e9be9255e72c00b9c7a617fac0297131ecee4ac4f73814e7441a216a03e1d7b416b7e34c2734e42361fa1196cae2c36901b910319b2169c45bd0a1e1d4ed80deedffb053403622ae837128478fadd7faa3d94f997945012a3579c13e3530939eb45672d9a39979379034834f4c6acc8428bacb4eb5a5a6a9080096e7fbe8963e5b35d505ed8aadb603abbc30bacc65d7c5e790df24d32b0a1b65c370e8ef3247a78475fd9a5cdf04a5cba5300e22a9d3c723da801cbd99d7a75566055168837c13c65114cb9c83566868d0814c083f5f22ac0a133afd64ccd6b03f23a56fb4552ff796b797bf128c23b7c4db4493f4b04a18d091980c83c4e4d70c5b369f5ccd59cc81b26f845df23a77ed519b1588f7049ee5a8d6ae75fadbcd60c96ecc5709e37708c5828b88e4b78f71df9e145379b019e581e163440e927c2a7a4ff9ed800e4edeb5d52365f7cd7d760560b10e0280232ac9bd9b449727e8f02e5d9f71ab8878f62b74b2113dc8a274926455b4d95b0b29c08444b6d7e66c7bed58b3344ed2c0b74ffb81d900c1073aded4204b49f9f69856ed21535ee5ab59fd4e157feb905973f307f2d5502446d423384f79de58c67ad42365683eb5fe68590935e405ddd1085f58b9d78e72bfa1842418a7e92f64ce662e3d3e2e75b731e3efe60e1512360d7cd25cccc361668ada2598b61b65080131ef340aa8ecf1e55e1c4fc2e1fcf842767cbda55c1effe00f7b74af2427bf776c112568bd29856381b162bde7f3f63aa0ead31dc1de392a189800bb09cdc6917b79fbfef1488ebb559fa29720d6865aa33968c8487898a08cd4969f837c2282f712e0f893597b5ba7df56bf816ec2dd55a82fcf40067537e48e917cb45daf7affce257bd406b1784713f3444082e98177199b96b9bc192cffdaa8d98bb7a671e2c0ae6f43bb3871cb8bd163b84c9038d105de7f9745efcc59af7e6baccd4855caaec23d85d3f218d5e210c463495f39d09e1d7d41c7cddf68bd6d5c71a14214cd4d415d90dc84a136ee68ea036f2fa5bc088f158d0c70837c427ad01245e1c3ff6ae45c2796957a27285274c499111dec3c7903c5fa545817b4275dbadfd177c44920c37d495b254699bc41c2b7c9f98d1fcde2009ccc9da03d44cb8c1f2574182426e0a769d404bf2cb8c70b57fdf5df5b3a6c15b1397104ad9740a5db08a60ea6bedcecfb20ff223d334ecaba16d563c23010075922bfc21ed9f069f5906a36f2a9a718daaffe5cc4d404874ed6e0cc58a0289c6373fc89f3b0f40073ce043302dca772612615c680773ebed020a693008c0d6a39d35291a3e1e6f590a414e62640a83250182fb7c809570c3d7162278555adff5b1a501aa51e9c6f08599dc1a64470c101049fd7e356ca5bc45bef3e3c5a35489020539d36708f2aded310eabea66e2472ce332ffe83406ba2bff7c5003a41f0ac8c84f28f5af1603be6e5cfe2492b029eeeae2a29fa6a1ba7c31c90b92e997d54a8f7981bee6885f297a8dc6860a5cc3771ed99ac9a48bd387e13adeb2a7bb40301d2827ea085992f05f25e04ed39def400a196e04781bd641dbe15992111a5264cb608d2e524ff55c184ef91ae3174067a968871cd31a4585819e7dc20eae660688ac7a65cb606ba29bd53e1963aff31b6b1ba1a96f138ad475fb4331e6cca02f096bce9c1acf4ba0640014e16ffce1b326bfb4c81d40c9325cbbc94c61cdcf47fed15a7cfa6f284d2f00150bbd5f2096eea3e2a95addf3f10a78a8c8fcc0ff6d5d349847ee779ee79527a347fd021cf82004632d3375d054818881ebbd375d7253d7b98e9aaf4b1aafcabc96c5e0180aa172118eea229846012bb26a79fc2c5ec203826c76937574c5e69aac21953c4c2015aeed356ba2a98f11c9e017c1a99ddbea6fcb55363c2e8b38686f10771dee6b193515a0addb98356cdc77c307583a0cefd78f2a990969974d979c2fad535996b701c6eab65955dbee0ff3c4da87d1d3d0ad5c41d2dc0adb702e5bbdbda3bae46f2478983f85ae873ec4586e40d70b329052189f7439f135dc291757db5aef5c6256345898cce9f3fc38be755c4958d64cfaaa84287c932b07da1ea17ad2392bb373ad0aa10dc1b75a6da21cdb8a26703e41c29198a15632c1fd35054eac52a79f979d782ec61c2d3a6491bea21035137118fe1e55cfa5f585f1fa4944c8d31cfe4ec73f69e5da4e7fa76a0d7e0d597a89784948b0891f2d147ea21db6df79bc38273111579e951056cf7c40be71cca91cba4c94d04b8ca0e246074197ae1653b53b78c00b827f624c8f31504af00c3f995d9d2af21e27f161d24a10188f0679abd8eb456b5deb254d3f3f220472dd16997ceecdcf4d38992fb31d3a5c653544098566c7fc764dd798579d027682c1efbe0b4e06ec8673290f3302d2318d51d876dc26c5b4472f3f12cf0121326da1195c7300760a483ac56fc287caa8829a473f562dc7494181728f1e432884000410e9be5ae72fbdb040701bd6134d977eb50a34135e139cb34c0b57bbfcad45ba9ba68a1676cd25844f73c7a409238663a928f78887ca12c2cf76c175f37d004c4ebca72444b93854ae8fabdde52abb7df3d9b2b42e0996a3b9820d2cd589f26862d8d2392a64623938d9aacd42b5e24328911aba1f6ac0e4b19e4be138394e7a3a0f808d136aae08d44f8206ca5c08082d725f5b2fc9b57dd4096afd1153941b30338c7ce0cff979291aeaa52584e2d33fe1a68b20ebf00871061ce87656b2a1a6483245fd099e3cca1410576e023a51dfbe6586162488dfe802f102cc2a60ddd261c1cccc5cde4293e86a5d73523b357e7387192a0ca6d906660bab407c1236d2a6ed1efb3bc2c5426917b949cd25e7f4a57ca9641935e4f117bd70138269c75b2f747d37f49c3034730e28fd5a72f69c4d33bcad31f1f8eee82beaa4a2efebec9ca1b22d5313f1f54353e197d9a5231fdac60e9cea5e12986d07a4ebfcd6762d037d164a91378762558cd2af642fa9382e184297a00ae20729af7450944133781fa999e4086859335dd156ec8f59a1e0f46196f7ab2bfcdc9f4b46a904e66968b5c4c7139ab3e5f45aaad5902b185c0e626078831d18001649466096cb4ae9f428710fc10db8420a7123ec77f8de435344c23ce13fc870f4133b6f142a1d4c79dc6eb323552354c62fcc00f2cb1e68d7f26682fb42709c7a06b9a6adaf71617dfd1a0f604f59f3568cba898b56ee544cde108a1254c4d9b442a78215f9c16c4da28ce2e3eeb63056b70617f9f8426ec538a9d39976c4a5447b093cb3f56001169c4d1ce7b7d54c77dfab17d58dcb455b0c295386c06b0b8629492923888739bcb2fff2dc67058b01fdd3f5e947c06d04f10a1bc0b5822fc369a2e85a289fa9950036b8a03bdd5247ba59ec418518f0a1d9cb35114f066cf025f8c060a35aab29037a11ea868caa9dc035b65f15db21a8e3d7cc62ce4d55ee8809c1af8131ae176db935dd8ba7407673b540b30f953cab69b93910da9f2d5373fc7d840afba531d33163b5a26f0af713a376429ff4f8e665ee01f906eb29a1805a049da4fd798922d70d804f4175f9d0eb47181550a15a166633e02089d35bc5ae101fa1e9a06984259d116767f8b2e3c4845cec5a28131c9560b19d9908779b481678a678a8f96eacc5996b01421db7bad1c9df6d26102d559b0adbe32078fc3d9ebf07c64fd2c46a0ee44280a38d1d6d1fa1ba82124aa5da266c86c71af80be681e151eea9354dbdb696a1cb7208ffb46c8dbd55f4f68029202f9ec22bbc08717e048c95c89939090edcefef715835c44dbf75166507c146deb76a721bd87152fe8aec1cd719e0619f3335009baebe128ff2c369de2f2ac198b0fee3067c8c5ff8c4e5dccb9eb2ee8a2b2f210ab47a50344d6119ddc4f6d3fbf9a4c9f02b9d3868d378b0a9ac7b71e6e136d6331dc2e412d8179e29b96b59decf22873b438fb937f43a1c982d60ebcf3a52c8eff08a8bf009de174c6b56870afe6c90ac4d24a61f8d3233db9580dcba27c851a7e0e0400c230fd2f2fc7c7699e32204086061382b302f08a783fce28cbb1f42f8e724c090703170b55be2c4f228f4b238be22dd297321271bea06cea31041cada26fc6af67e10792472ef52c52a6820181226ca969f5908c1031c78de4abea41d86b708bad654f3aa38336fed123f3f74d7cae8767ba5b8a29042308a59d99f7e6a97801279b72b51fcb03bc65340ccbfc347846f005c7cde192bf73e1a444f70925b054ff08560895720befa6738ac52c493cf4939d01cf870824c078c32de6b0b52785f1c26facfb05029346bccf70d9a016822cc99bcfb6e8281d8661bf3d3c235b5c3715e2dcce2f51dfb92de23ebdbbd91049db94f2cd1c5623ba77b286d5d3265d64d6218284428016167b3eb27dc4703f6154e77eee5c76b86a8abc83aafeaed74fe825c6743398e1254773e375ae025a60d0743266b1a0489d34b9c4a16fb0d13f1cad95eb3d709120071aa2028102da125f217f0ddc5cb7c22676bf6cb2a78a54ffdbb5e0b86462e3d3d6f8056a7db4f46f3d2b5c80e8d283488d157101731953dd8d65ecbba12d6be98d3046e83ebb85a60a62993b13abc21ba84f3e3aa85a0431265fd902ced6617e95c6cb07c7acadff9a4cc48e5ad8df84c72c3b5e6be75531068330cd48cf09afea3b542756516a34132f4d4e6f123abf3f94e1c72a597131de8cc5ec9362e02dd1abdd89e361c0a26fcbc3537ef0005a6aa32c04e5003d81ad3440c240c5dff422965cd10c501411323fe6394e9cf72c137f311cad0edc811b58e4dc8dd8101f655a6a8e04640d49cc489dff164c576e65bb741619ff47f2c82b5704816605618f331a2e72e166cc536bc0604d14f958bb80d9fea23bb6407262a808f5b22376acb1564e05f1f65eefa0d58b868665a874c549bd19f88579168481d015309ce4868599f5c553de137c5b11f7eec37deda069c385c5068da72821b98094839b374d29ad70ee0d6d7b813aa8aacdefa5dd9886148bc3a231601b3c266dcc9496572dae3ab031ce7c65599d75116c1fe249e714c2536d1b5dcd58b250319e1dd8fc8750bfeab45d524a8461c2a417ac02108bf18874d082254459b76e361f9396db7a36e10d8cd2e2eaaf47251fa94086c6a4122ff516a29a8c9bc00e62c4e9927f3a6f5554fc2cc536eb513a93b9fe2a18304f634a48373781f7ed382a4b6a1e16a6ec11bf6907cd1955cfd561041eed00c2639099c4a388ce6683254f8e1f05815006b6b41e7b4ef0c039b2f844c6d0dd1926ba04543c57046b93639197561644826dc451d5c51bc0a0d9a29908bfcdb6e80d75cfa903fa1e0c85f92a6bcc64757517e542c0141a9266006c526cbb21a46b2e7e7edd056b527d0d117a60785abe1e81efbeacd530663d27c7b106da423a0e7cdab4cbb9b002b06504a52297f09390159be0b621e788540365300e4a77258879da5f4313f14cdfc04e17c14f785d213c5e1cf0f8c748f7a15f1006e9645212803514df11c1942cf3f06582c73a98cdd36116f4446774bfdd32ea9d3915995cbc925077c9ae51db3d62e4c3a706ec3d95733d45f37b9eabe7cc01c6a35968796d176cfb6f0c003a3ba3ddb71cca618afb7e61592dcfd560a667c767b7f1053dc5069be968991235993183d86d023b0dfedc07818c7b72f4bdeb408c1cc9033e0b27b2229f80da6c494325b1a1e89fcd2508c84c6cf8cb946ac0141f5b25be4f8bdf66dfdc330b05ca68dbe9e7f91b39c356a2d2d39b3742fd64eb54c0db3dabad59e8e93c3f7a74e120e2ce68306fa8bf3c2ef196234435c0eaaaef5e27434ddee1f707141c018f6554d233df1b9214c182edda178922275a52ae586565da61dbb7ce57c6d988c19619279f3ce4a1ee6173431beb60014bc5c5dd9749b7d852b6c4473bd2b1ea2727cb4229d6be61cbfd7215e5d506d041a824f27e56894c85f9e95b4e3261780298ad95995a782deb54a0900070e193f1458104d297f87bdc98cf0458854199ab2ff14a6b27ec4bcabea8f88c9bc546ba445befbcb54ef4fa8ae431589b0b275934674f77565fa0d8842d766ee55d5b7ed73b6803ec1bd68169c329bdb57e1cb583370bc4abe758ab70358ca3aa9da4d612e614e2850f9290f5a15c1e0273608718e7733729f857961d4712af6141c3dc5f67c226f80b60fcde158fc5d1e8ee9d662aca800fe8ec0eee96ab79a25d985b2a1aac9b40afddc256ca5c24aeb84e1ba5a72f3a63b93f84b3108d54d7d1fe662558525bde20513046cbce96602de4c8ca07d144abbb073f808128db85d6e9da0122a382a771dd4a9fb4b135caf176092e20cad8bf6da3dc7a57ee83ecbe32b383fc79926583b13443ef603c67deb97d91e23716cbf46f6b5e74893ff226835bc86b7fa2aa630015a59a7a3a879058b246b4f71e28f3f5697c80df84d9c6df28cd4127ad5d52fdab85d23e84bc7a7c9951f088818a946b551b1c75146e584a9ee57fa2e6e7201e822936b8776449cbc9e2ddbcad78a02d2608920d34defdaf63306d4c559fc47b041958915278a846d4c7dd13544a5825a0269e87930756bf20660f33803977faadaa6de3ce5051b0898ce1d29df0924c5055459b9060c5c3a3628fde05db2dc52f7caddf3b38183e5edc95682dd06180805f67ebac9ae0473fb2e9b9cf2bd80a90c27c1402295bf599461a402a42ab186990db8544f745522cafde60a8b099e43dec101992e8c3a2621d75d0480a8710a70eb55de0074881cebd2e474708f64e6a1863207f9d39ceb8080a2852650ad1e9feddd055807a49c2e943dfd45791912f2e5c399f53cc9094dbaf26d7b87e51e13b4f6cdd9b44e81e4da6b775fa5137b9d6dea49a5b77f8b93175dc2a9a4a2c0675d4159f676a46b768faaf0e30c6c8c1bd2b40b02b4e6defd2214f8f47218fd2d5c77b7b5fd23cf19c75d8307bcf0c8f4943f2e4fb80cc6f3504a54aa63f441d385547955de6d6075805051bc820193b5d10c3400667957940f05f3334c2b56f4038f7b99a39812e1da6bfe0ccb94aefe606fcf81c1c22acc8bfc81ab56baaf650c84e0e2af0051f3c55aab7e9b447eb8722b1a63a2c08080debd6620b2e4b62a881fca5ea7e0c71c953f11912c43e809551284925875b19af020141230ba6703bb164035f3e827afc18d5e3d20bb2ad158255bb459623864f58ddac1c9ef44e5367edd7a3d0385017eb2123092dd430989f3587d7cc0745fa5506e360dc282a4aadadb75cbf74e145fdd48b5b42b75015a6c82b73f23f4e7814d78973cdd37be687f7302ae4a6719926b1d309c0e328a3aa66ae1b50949a1ceac7acc19bc67068eb8ccb2e2e0a511680f63b6bb6c0e092bc11f36e3ece9ed36a636091e23082f7480c0c3448cf8542d65da22243574d49a8d403067ba1a5e562f3d8f7f7eacab2400c86ce8faaaa012bae9855fb768b78f2d6de16ce340e9ee69a1bf6b89e83bffa1f3fd035bef0c1e599dc023bc9783488529f3abcb01b68073cd748515847d85e55c75a7041ff290b8d781281712b800c47bc30864c24a4c1b619e02334560d642cc8cceade8e6241e34928c15ce6de4a93af4c27ecc81fbc21ae17a396aa000887ce2e4c51078312249cc139bae78ede1e0630d947134a813a5d02afbfbd9f9087075138cb2ca5e0610296e7a896d443941046082c786c509fa3e43447880391b1af4c228e66a0869df320f23860478f150039beb04881b6e5793a0164ae677ef07ff065a220afc257454176c4306e6ae0098fc4d19d59f797ee465b00c732771fd4bddf709df40556bd84364f6803fcc2888cf2f60cf39d601f765ee38accf1c8e5a0af02c918a172f9caf3886d3ecf6d6ed5eb70a962b6b0db9e29515cc4babd55572254055d6898431c556b9c1a07be5b56df223b22fdbad310538d57c3c705904a9a8f2a3cd80924f763e7a6427846f3cea6de7bf841fe27e18f1d6d713862e4480c8adc0bf7d86a3f958d176f396041836b8490467cdf2493511ea1b0cc396eb2c5cbb19108dd8e64ea0c7125809a211187216d19715b60b9860ca5f82779cc547384f9feb475749001abad64857a9cd49b9b7866b40c77465b4cd853ad3b3c25ac683ce5f0b4c9e08fb7bf7edde427198bf599ce53dedc8c985f8b07189091ea277ade03c0cd3ad93319d0518af9bdced6b61d6678b4038d7aa0556ed1e4168949a75010fc6a37a3434dc167dc97dc778279e57646cc3d3b67c18230f46c84bbd0699a007827fe7a9966d7eb6de7219e0b0d0b7c16a6e8d92bd302eb15ae5e8cf57e5044d5a2d4d760177a8b972667d2ef45e2f1bfca07583f844696d1a79c990138eb391aa38b1efa003941a16d2166c9308d877f8d2bf13365dec58a6eeb5c15057ce4c2cb67935751672ad12bfadf1dba49a0fc137346a7b6ebc0910029098eae9e86dbe523006de67dbcdec05ba8c39ee19a1730507b5f3fb8c8c59bcc047628a39b983e260527c17f751ad77588bcdbe48a2bffdcade75018897d04f672d10706fb8625137751e3b6c0378412d297e56889aeb442c6313e8f3e7470f662e70429815796958822f7b58a219312bd70730e2ff08dfa6c6d8ad5ce4e05cde4e1002684c123a993873b388f1a80212701e696bd2b809403b8eef9cf9bbc97fcf80c4e14048b046abf32bcb851f547e9ce53889ee6438a75a661f389b975e172fc81338dc1962c43c137ba0df4a17a30a9300a77e7b5a3284041097d60e21c3d6d2c66937faadb5bc37be0719445eeb548403cd28ce74d52c3aa78a167428b460009c24aa4b17d45199e16108b4f29255a30e98beee05a0b12a80c4e3a426393f8fdcc3234bea398df6fc5a2a2294aa24688a250312d94dde9ceef703363c49f8ba63fe75356d7f2526dd94dc204cfbf9900bff058ea84b84821527e39240061c91135bb579047a42e8d9aeadabcb718b7dee9f975e4e47b0399932f5346b56137b311b40de9911fc25fb8a189582bc818290458e93c670bf3c570c0970d5025048d7077640796bcf759cc0624ff46026b9fe44f5a7d7c8e38ffec7b99985029808770ac2aaca3bd42180791f0b6a878216ba7793cbb080a0f9b5e04d4a372e71f9bd2e0e7072e801299f35d27020b69eb67a6d169c2eb4339d7ac233e1f82923a057c21a2f275eb11c56c86fa5debb40bec91ec1b1f7034ac453bca831c32f9121208a91863c7b2da4cacc5dfc067e4fad0245e3e741a499be70b273f5579d677066e49cdfa9bda73068b8098f6d84393049ccd48fa12755ab5eadb238174c1c29a3a2c3437c6b14d683087dd68b1b70bee1874df49967604e948146d53a21d90710ddafa11d41e4d1d4b2d70126636264758d6d17207561de6f4c2266713660c4aa9370f9da401eacc07037ee051256407c791a177a49d3f50e50aadf312838d92d49b7abe578f7d4f56d3fcc434f36da2f78163f2d6f54a6838f075b5f2e0a340feecc0dce520f068e5b616e54ad16fdb0e6ac2db5cc484aeb4adf51f23f9b3071ce01ac25047c4c62b52d173577f9e0f92b36c1f98eddf787066121cbb93e61b6991d022cb2a00f18ef9cde8a5767228765b56a05685b3160f3bd3887b62b62f86fd66274f57790126a23e0f8ebc5800194ab9a73500333ea2bed8ed137b22af92ef226ddd51d4e6f3a74e0fc415bd1027a2dccce9ac2c0c26079dbea9761debcde8155d3b59612d627b81e915d32022889a8f510aa57a9213984c47dc170f9001282f37cb0607a69b854ccb0a64c52cba293c1c37d4abef0ca5b86bec04e0f5ce4115a92f8c2c6c430706d3730b2b9dc5480c3bf80aaa518a1123afeab97dcc52fd1b87df32940e2eeae2c87eab03accc674684e34fd4c99134643100d311054016a1ad24b9fbbdf843255d00025b18d698bd9009e450a9e44f9930ad6b6d7ef42a618c149c4dc2ea71083d45134d99ef988e3b90db86ba3abd1ae3bdb2cae4dff2b5917796b60ba7b09e337a48a7233e75009abd60dcbce1da53c8db0095feb9f8bda13ce99c5985ca31de484d861de89f9e1bfbff372fccedc688bf5cbdad3c92ec84b69577259db00d8eff9047028927017d3b5325da07a2ce2a502bc21c8a6cbebf2e2e85954b2dd88800071de9b6550cd04c0615db4a5b44d51ca060ef3763af6f11061e46570a02237ff1be417b0b071b2b55241042cfa2a0dcec064ca6ffc0e816501ceda00fb52d10e0a4ab09e1f8691152fadc07d7e34afb1e1a2bb17c08ea1b22e6e049f97f93ab5123a94f770347189cc06ac3906c2455efc43904d8203e952b4ad27216e65c268bdabeff8185b1f2bfd13ee96bad1990209e98a3e15ec01a7235cc961a0437298ba3e6048981d32940a9fdc589b5904e63302450657701e1261e8516d32a067427adfcf185f4898ff8f91f3d69a9607b2f50511086f42e169bc695c86efc67b1aaefeacf7fbcf64138c422d4149cfaecdaa0a907ba98f9426b53e907bd22004b5e90d5f80e782975208fcb79beac5401a73aa0f96fb46a0b9c4fcbd4375c61aebeb470fa61d17b8c4b1f96088715019c76ac5053d19a285adc4dca734a0c29fd0bcf84ea6dece637b97d9d51829e981cba79cc87d9519f3b59d2c49758b6259b98dc67667cfc3c9cd297d22a8087fdef8eaf7bc3ec7945f739c2f7e0833280edae7e16a477488f66eaf5f5fa71dbc3af6f359e404f2fcd5f0d8e5bde34839f8162054252eef4cdfe0e9858ac00d4a20240e642befc85df10ddd66aafd14994706f1afe02a69979f3ede89b76fb84171b2ebdfb72fe05e9896b05d09f93b0bfeee359170829339e2c97185247c3c4104d07c9d83a4db6b9d356201e32f302d5a029af01ae90d0c8e1613922ebfb3d6325961aa6f49a5e51d2d7d37231adf5b5cefd2c399766b020c4d65a9eff7cb2860cc23a2ab722b6ba826cc1a79886cf4c2ed3556172bf0ea10e42d2dff5e2cb58f89d8e175339a886f35327e8978b875c4bc270817c85219be355592eccfe0448e2e256aa2c7420fd5fdc31245e38905417aa366b64f7b4e7139f160418424a25e152f931246df71e086501e67eebc8ef7ea37eda5940e294b09c2e3287b552814b6aeb8be24d2c6d1cfaf20e36db0e2658b80921daaa2debfaeb809502919ab619dd3ca5bd377a2fe2070eb059bfbb7aea41902cd3ea844e185ba94eb02584f3051f09cc39f37fcf168438c9ba3ca7ab8c3b1713e428e81c899d35a515501e90ab67b112eac7f7743bd398549a52f28275eab195dd11db76f5058b87502f1a2f0b9498a6016f77a76ce3283494783a2432feafc22ada1754f5f71af9f7471f5fc7b3f854b16fa54739bd2188db8f118dfdce1f5d3b302476175ec39c8b313115192d713d2a76a73d49903942135e0cb9c6c3e5f92f55bf2e42fa59e68fbe9f00f4ef497db11f66b134c1c3c7571d20e13b3bc46569df5263e175ef9b156bd4562c082a7136099ba00d12ca86e667819f54252b7f4ed2c5288c8842206807d683c6455933bad03efc5126a7d0cb1fb793763add1b7b0d3699985a0700b928735dbab9a4f8a007fd668cc024127a981c12434d944799399745384c46c0288a264f3d8e6db205af12b07efe6abcd9ea78e63f888a3ce1d2313e7197a304230e0f92823df4f5fde0840ea82382a94f491e8c5def48360b1fbce3910fd2cbdc704f26d35aada69d45dbddc9a8b7e077cd9bc96a8577a9c26d2ca18f4ab31ae4215cc3e2bdba6fadb94aeeb5d1cb211341163b700fafa190d06973e879fe657462ed6ca805f472a8c310708c76c11a1f8225fef37090dd6feb5dfdbaaa108056b00e596358e6b17fc414fb957c1eb13c88037a71abc74a09427103661a2b69d4786045a8dbd4261a6df775abe01e90ab07acc4ba27741c633cb4c78b774e5d3ad80a9fe5ada20b0e5b645735a1884ebb4b5fe204911f95f412fbb63a839f49708e05edd219f10fe231caf0e86d590e26ee900ccc950b8506c6e70af9f9bc34a959ccc922d8077855dab0af428ec467f020e635608b0e0a47e4195d7159a77b97b124a43793fe2230a87ac2b28275f68ce05901248d917c3c9b76277682047cb71bf7b27308f148ec14052e2efb5c6895b70c6f5e988f690d15a38b15505b47b08079c3152cac95f23109354f7291df1f33eee8cd7dbe09cb8af6e92abfb6988b4d35b4025e257329a0269251a08162c9f33ac4120ba113d2181e47e664ef522e4f11836bf9ce77c069fae66c09ccb685c56f1b9a842d8d1e482b98b7e822540166651fb972ed9dc3722678a7410238ae01edfe3eaf31f9384cf8df27a11de538c71eaf3de0425ae6dcc86ef5a55a313f15330cbb852c1df21bee6ea421b44aaeb8416fb4faef8715bc14aff545e646b53c96ac876c5a03c0da89dcdaf6792b831c9a129fd75497cbb1bf78a851cd4f2cb78f3bd82d480a957a2e6df7bd0b8f6792f82c04557e9aa63f3cac45e4a859a42e7d844bee612b8dc253eccb3ce04d8037edbe080f08286bb4a016fd492835f4bef807dc997d8c0641a0fd8dd1c87b54804032d2cf4c45fdb9ad7b077f3ca597a9d659d7c25aeda58836a7dd57a1e436e04d4127326ec1fb549d38dff88d76be3cb4909fbd8f9a12574b4ef174ebf16839fc3b5ece553713d00f3d76b78efa6a465a234bdd366e15e6386405844828d3d6ac619bcaa6fa7215bd16932095f0fad66cdd30833fc1a574b9197bdc7506e08b5316a5f06b71b8a80d5784ef01a94e90cf59b88382cee4240eef2cd4ef1e50d02d42150731bc0a6a75bf0102072fc372c55abb151efe752dfc57d7f0f6b90b989fa75f073406159c40b5d185030ccac52361463b189ff0424e73f28b146a7c435764aa3caa3582f9f535b3fce9325c0d2c0ab911f6339f8b60460d258de81af4cffda02b7bc9ad33534e8c22783f0cafd13bc721ba13f48d0e818659baa8c9a17afbadabebb5b3201c9d5241bff2c594ad31e509fd44e3ce392df946b7f361f824fc9cb46c7315dc1373c2ba6e27cc9464d051c83a4a0015f8e97be627869092b7d34f12b67bcbc2b035a476780aa97c8f3a204c5e2b0bd02ecf57213ff9df5c07951280e31512de83328369be8ee6ad9014f58a204ab82fac08acf1234e6956fa25677ddd80419df177b544025a094961759f8c5d84df3c1e03001da1a01c05a69140d63f29f296d24a2af60df582b9cc4b3d1bc23ba89d64aa592d6f0554099deb9a50d80b80e1a434f74c9151adbcd3ad168750aac0dbc4be598e62fd72003bb02309c004b7cd391a061decae5c2a16ee07e6376c46b7c0d87b818b21643a0c7314340b748080810d7c7e75bac939d3a75f488f51c36a28f81d38e19d8c1f012d2abca1de1cbee64804480d4bf80484ad6e269799a1d8b6b1457a70062c5be731730106b8452371d301103b81c25380361310098606db4b999a2eb6abec6c97f3015ecbc09b9c6873a299a7a7d3abf374782d719005c7803e4875d10bdb6cc069fc12af8e66ea0fbc44dda622a9f401bca0dbfb20ab0f1af555f4e748e4edc541b745e3ba17d45484c79a536ea57efedc1dde00917897e37e2b1c80d57007276e70ad93941bc141be6c3e1f9374fb88bbbb8da6fa3aa9d77791bbebe7f467e1bdc28d684b2f0b203564f6c9cd54f83e52de410fa47cd8c321170c3cdf2c565c043e4713998da981aeef044363ae6dc7b4470fb100e51409757636a848c368bfb48b7ce59bc2bb0bc79bda0ed6841d59a4477326cc6e977ca2012d200f773098fc2cb862e2358a370a2f36544cb655d80e7c20503f42da6166fbaf136ba423c0c1fb300e289b81fc0e53b9b692e0931c5c560675e0a0a21224f4aa6942e902f21c93b972e692126a8c3aeb1930ce816105c9549d5b4b86a60278df882fc0c2921730b8628a108076834f07afd7001c5102fb5ffeca2920117222732ea01eb839fae429d7da37ad775f7eb14d28bf7b51d3e6be5af2e2495a310a0ede81fa2bf52420d91ba89d36b2e911141a7ed9b2382fc1154288b6f5e0e4d534c5d91b1de904503368262c327ce5cf2a1c6d8eac8a2640d8674a76e8b5b09c4fd88ae82cb9690385f80ae782e36810e8f6b71df4fbdaad701af9f5d4051e45a57d40a2eff8ecc487bbf1a997f6c08fdccf9449a777cc466892488d7e682bf610ac564762c01acae0a79575486f7c5c77a73b4caa7613dc4a9e90711e936a61deb055f9fe2cb358d70c908852a5725d02bdd722ebff2213fceb8df9016144868aaf839f937e23a43de126c0116d50594992dbc476877d108979269c60761fa5f84c5dc156f91e3bc2eb55aa698700247ba0453226a2855614667d7a77ef0e4679bf542b0e20770abe8895d7b9b748af99a1ac1ed58d8fcb21bea8a3eaea8402ba2d98aeec1db313a781b4d2b1790af622cec7374a8e9ba1def96eda9a5e94ae0fe344e2af5efc15708f4076b0a451b4e6f98b8ea2cf39bbb82c87935d7015bd10c7f0fe3cfb1f4a95f0ebbd59583e52ccf7908155dae4595bceba07ace5b4f782ed9670a55fe2d5e903f850eca948b9dbe0351b1808a40b3d6e7c70a4828355963d24c396512006dad4f820950fb0dac3689da771e9eec5bed6172c9db265e1a421610eed011736824d1e539cbaa228343a4fd263b79f0f57c924cf8c4f19ddfc3bdb80a887520b823d22e2d93bbaa26e072d08c18af38e235a0066b3825a1b4d62fbe3ece7b96013e42220c86abb3e900bfdef11df9428e4228f62d6d81cab91c0e6e619dfaaa3cef02e8955078cb6fdec5213d44ae584ad517e96cc929299365d40581564c183672140ab41d4594db978539e9cc4f30e35578c823329b3598de9d189031fba9d740d934019581e64e7cdfd8616208cc855d22ae23d0babfdc086253ec54b5d7c2665abfc13bf1ba1df2420344959e9f16f9d02cbf7dda907a71b6881f1d4ab94a23a8b020852c153ff0115911113b4b6de539b65a292850169a3c4a86ef2a909eead1176b1b7ebe22f1fa2283e07c1266666b2b344b20a602a7112a2980700ce1a55e0e2218d025df0b9c689774a52b73b9cd84e2e76ce4788b893a76e025981a27dd9ae13861aa385923436d89bc421b1131967dd561aff39759f36e67c8377cbd4f0457a0d823346f684ad50d1ad3ddd8b39d1e7eb932404a2e01d60593945a5d6a4b87405be5d6854d170bae4332c8db2340d3d49ef0572fbd2106ad35e60349aa207f61aa06f5daa9455fbc67f8546c4ce841cdb2d00cd804e1ec9a5a14f2f9da29eac8d9cf1e2e9c49e5264f6d33f3beee967989a1b90a19532229dc422c0904319cb88000c660f612457623cd296ef5bb0330cd9b7d7df6fa8cd6bd06710111aa14a43206ef47825f3e406ce754e915ccb4c7eebd331a05c3d26665bb5a2412d082d984a33f7469c0ebb8972f22b2af76884b7eee0176b74c166a74197efca77d57cb4643eb0a1053aa1702616682a357f641762e4049f2e688ebba0329c4165f5194a0fc302a7168576530f8610342451e40522cf9aafdd4cb8c35234aa131a0fa869d13ae48b9df085f227eb9d2393db2bf522af8462477e20d235daec994a7315bf8b64e9e1a629f0192a7815923879bf956c2d81fd2e1e5ef05efc686846daec0c63330edea2c60bf0091418476d468384cfd514c284599f4d9ec77f1c52646fd16935e8846815d06a0afd6ae0121614877bd477075e996ebb08329b4dd0a3793ba4e6e6f9dbb0590f5026d51820d6f34ba99169536c90875918cf3431d97b7c3a75e0786a9698e0e7d87a1d83b9f6b0ff521efca97a8434bc45d7db4ca932cedd28817c0035d5f11dbd9fba4f192fabb21c5722179e55f6dc1bf73f22ef285ca6bf0a8a0ed0cd93d006bbc588ff9b250864a23669f983501e1182005dc542701facacb101cc64866975733112e5e62ed6c8ba36a13ad9a8967f33d70133a3ea6dfd29f601b192b793b347134bccb37fce75d46273b7007d29546512fe30ebeaf3c7d8f624a24508112fdfa1cbfdfae8ac73cd9fed5ddc9dbaea6870b29ee491cae083c27836f3e6d83139e04ee838158fbcd006ed0b159d382e0bcef172badebef627eba8581112f08a9a10f30634cfe5ddf35ee50760d8e60fef03f412745bef2ade0977306782ebbc5aaad645255ccabb28ad8f0c46f0a89cb0868976321db947fcb67fea5ab1756a8a39300b0ce0946e7cdc31750be04b7930932bc87c0fd6db6da9c5ccb453b1dc79fcd08791beca487e5a074ad059cbfaddd29e31eb334de730bac8bc4bbcac5b3e2b762e78fb981c73b255711b3adb6c3acb28d76e79c324adcbf86e3c4c6c89ea8c21196df97c290af5b9f8b0aae96a17e530e5fc1c896efafe69de44448b77ed22393a82ec07c6e31edf08b6fc2f4156effdda8acb1bf098246b93ede9917f274c78b07816e7f5fcfdd6abf1d6826651ebfa43e3cb7aa547856c87ec14f835d7a93e02b1b244f61c44c94c6afd026198007dc58b9fc841157d95e04fb8ebf89c81f3b6bd63a96e086fe4001775406a45709eec5cb1085e677025d1964196bec113dda206b2989622400967a5a7c17d16cc27c680a29f2b02c49b03fc96f9408b7e432843f01bd943b8314285e7c1127306bfe5c0fed3117caa57a40dd8dbc415bac8f742500d82f2d3dbaec9e29d1a1c955476f503bf80836476426c32e0480678972e72da921722d361bec19ba99c98ed71cf1611d33628cbd5e2de1f5e40059c6b402a365315ae7656290b6923b0461060ae4aad685226824d701906adc397076d4d060afb2de26bcb5a67f08576c80eb00764395d60a930297e3cc061522c9d93f095c74b966cffa9d1ceaaac918c386cc6531f7eed5fc08b02b606fb9c12d81505e3d369f7cacf68ccc6f7c6bd034baf29c1d30d4abf34b7d1c23f104f46df50c5270253006a6ac91c53b540b02cf3e7208d9520d399a1d7d8ad5d714f14babaf98d6e95ba441e4aa5ec7d122df11ce2ede92954451952ef2961bf515ec575dc5106c75dad4cf8f2353935227a4baeb13124776edb743522d703fc192be88fc05a8725f1d43e27501e032553dc9a3de89fc1a9ee40110c0187dd8133cc3c989984d0d51e5e81d72655901a5bc38e926ff023c1efb75c39e968204284b176391ada4168cfb2dbb7ac49e1441abbaa0fbdd6b6a47388e62be04563e28cd58a90dfa968bc0f37005462dc79d6d13b3df1114c812dd47d2a95f8cb9dee10a62b2d8fa8aa8dabd1edb65c82b103b959ebf5ebbbfcc1936ee70133d24dbfb0a9f11b28aafce2f0824497af6137391b3af48ed2c23b0862b529630ff05dbc55f1cf4af3d681ee09360f87aa0af975b43ce38a86905a8234d3dbfa889267c7e98d7a78920e357f0ca89d3a7d871bbad1f3b28f391e07add3dc8f3028f4feeef033d7b7e3b19ee872550f38ded3e82eb663b76387f8c3ac4410b227008e799d1fcdf19e85cb09da50f1457dc6257641123423be7c83419896ffb472cf5f7a352ff383980ba62fda27cc6a72f887f6e98f02307268ed567bb63f024faa1b09e31a4ac080788c38971b35afa6bba5d50cb4724af57142367aead6bbb2b6d8014a45a7b223bd43f0cc427f6c4c361d0fbbb055b96472e2f39df9f9d8e37fb94055a890a85d2a3bc722548eb57cc01c61c8135a9745f259caa4b9518fca87984fabd714c39ca6b4ed37af67e5ebe92f0800c6b3c2c1ece0447ec7567ffa803c90567ac7b19d8e02b881b1ddda03c218f8f00b6e6ecf846f1fedb17dcd16ef00143bdc8f509d211cc3f55006940f8748b4339892e911de4f5d596b72b07ac351fa5fd5cd5c229528d68046a12c0e619bc451a5c7388d5923291825fe172daa3e2ca3da895a4174fbd6fdd51c3b83526b97afe714b8dc456c5b84e68d04c0dd36687501b756ec8b7ca735af721d683c2154e50eb8a8fb9bc9c39c5b9534017e1b5711358fab5ba209cb9681f9fdfd9d3fbacb874771fa548c40b959808a36f8f43a708fdaa6230b7ec1080118d5fdde4735ee59617a0d8123af0443e07e0ec5fb3ae026d727c2ff2000deb2341cc9334eb70e592f33582fe890f9289b2fe9d5d85ab3b5378526e72b02d3e7ea853943049ac64d1395af19c5b928f2913042b773af9e8c87433d2379a3193983904490c3549b2c3efcb0cc5db610b7a932bf803b71b22584bf6b50942d14101323a55feea4e2c84057c5cb2b15ee0079a927b2fda59a72ad5b5db1e47f426ba90c3ac4a11c1d018c81d3704d682e2ae5922f378795822607e26477bbfd5cf7c6387c399a57f7b450bbceadc7a8e8e29baec2786b0883ce6bfe9350ca5a01ecf473d45ec9fc6f2c18f207cea61f10d2194b97701c9b467479dee2b614d77aa3b6c1698546ccb28672c543dda782f3a050a895f44dbffbd4b906b11e3b080b9bef45073b18d2cdfaf37bb29e65d827a782e358801990b3fae1095622c4ea300fd5205daa9fd90a4b2c8d997f721efc88a36a58a69a49aede43afb01f2a6fbd8122df07c104e8bb6de7a1730e74c9b290dc7dfeaf1404219e1f0a121c2807d43871b57b283808ecefd8b87807fc044d54f28caedeef38df87b0d62fefbc9cbd9057410e4801d3dacc6ab7d068737ad16451df95b0b69473dd68f7ac28f0abccf49eae04cf49a8b2d249bddad5f48963f3db448ed2c53c527ac19b4524be11cbc77fc23326c1ec5a3e949275e3eea41f22a78619c1c33ed0b3c0566757ba8622e29723260d7f3e16afc185ec23c5c04e55da6cea96ac5f3eaf1fd9cdbf51f8b354693804d12072fc4df362c74dcab6f88ba243ab6055ee6ed7d7e075cb3a75f9e5ecc8c42e6aa4e4b70ca56742afe2f6f0deed3010ae1ec5b7d714903137a7194ef8897848dccf79a74c467be75ad7c2464bcd6afe470117438123a481aa62af04558e40e92b7446a8c3cdbf06eb77c3d748acbe3ca719a1c08eb558947de3f89584011788d082a28829e46a6bf5c1d574ce2cbf2dabb3373aa36fa58c8967fc992f0538539542bb07ed0e43078e285001af761a68d208e74f65b7e5e93aef8645bf5eb2da48d6b638aa80967b1c7b5292aebe073ebae81fd8bb752b1c3ad5d1e0a9e22e6bea74987d5e7abc9f21b4887423b57eaf71f5ff8518fec131f6cc5ce1d525e763e77b9de69f137269337c2b697172ea4f5e34f3e18de036aaae504d52afdaad5fee648d1e29823c1fd097dcfccd287b4a520830a84135fe9632757b2289e33f6278f68b82ae3d5834a410f7066c1e7cc872609be5bbb4fd11e4c28d7c2bd795e30c2265a97a85e17f5efd7165e66a35706065932fb36316b512763942f13cfe7d756699a1c8e1cbb53b50e06d63ae493e29ebb7f0f111b0ef14d187862eb581ef918468bf85d987819c36e1d49b1a7bcfaada9801cbf3f7f5838f3aef7f74ff16e601058c8cef84fff9de33d5906c75647fb613e17e05eb15e5f94082485473c2ac16b14540a8313554fcca08f9df18c77956b0456f4a13454afa95555641b699be050a4479023ee23763a15deef6a0c0a7320bf52da4b155006296eb7399d28637f23c6b884f543792786d46ab8a4e7fa25913a17e8fd8c0e84e97fcfc5a28edc0e3efffb984da17bc8af7fb6da72829c9a1ecb3f2962de25f9e676a667cffea4ae29c860f1c246f6e52d7d53d386f104588e47c73bce7881f87eb77a059f88a0f9a7111a6ec2c4f70f7fbd0e826b2bc4f9e45362cfd89ce72f0a67bbba8596b2bcbda67a7d8920e210bb6e2832c9314ac9f70d260c4ffbb79ce84678ae2a77a474dff1c161f440f9316f389d99e8f6f0d13fe713baf35f3dc69fcbe4483ac6946a107edd973c952bf9f11d0ceaaff74cd9611df6f918ee756d641437d8141e3d0703b8e31c0f1a897ebf3a5ab07db5f381591cc9858df97da9afdbab476624c84d66b08884ce10b7f7023848dd8b580903fb66201802bdb80f1096275279fca5d2b4f1f7bc36ece8e3e8e7bee7fed2702c5214506d8c4ed0200f0528b4484752c9195ca889387025456e950508dd2d2cde7646013d600af21cdd1c089f01901e842674ed8f5e8abfdb24c13b05caec35621dbbf080aef02d52c5f6eaf0d8fa88638f76d79291f95d10a2565c73bf5743a9965f54aec3b1803ac0a94208dddd4f65e3042f5ffc90d016591b3947d04a104ac1a4bfdf1b81360361924a7d0b2e499436c1962bd4e0e464f2f4241cd55ee9c51e352d57c463963f1cfc1a08c50bc59be96d18c7071117720c40bca24bfd20a21a75020cf69993e4e043e5c12a904a713e31752006d1232cf3658ed0b9490875ed0a766956760661ea9be3c2735e58e64b1d36b9f9ef44e3d75af757eacc828eb3813372008d19510c29107e00c96bab257a54926b4924e359f04219608ec8390639e0e74b6c161c42c95f8377f263cfbaff62eb471f33da2e6a5001a347da1e784e4e4a222f700ae14df66f0b5d626991fd4892a245fe7a9ebf753138495c04d00c8fe6ba47f3ae57ebb60f1d74754f200fc25443cd32f54a81cf0f6d6a7897dfde65db37d75cb31e61c107db5b42e51864e5d025458181d0c15b3ce1ed77653a10609523d0c75f0f48c9329ecc4ea7e0b19012199d892f9c57854ec25de0767162ee77647f790c00ce2960c85102a98cc699b4372dfaee6356e3cba1a2a593d956cf638642c6faf690b176f969ea325137aedfcba9e9b1c929460dd087b3c1c303a36a04747b4fe2227604606e362575b698ed12d40eda622807c52555706f1d6f950acf62efac3232f8dc7580a6a2da6f7a1bac8e922b8b0269ab52afed16000aa436690f5010f9c88e9e2044ba7660ec7700e054e598a5d7136100f6d408163e49d3d31b624515539f790adae077bc30032751f5201886fd9114022d5c6b393fde4ee21ee91254b8734a63ff9696fe7d00843c08b660a0d24ceec9711e42ee27eb1d095e0799db21deee00aa4560ec766b6f9d9fe0e033b0c7b74d7878e21630bb54a8338859a362260de61b05695e830c7ce531af59fd48832fd5f08d73092871229ffae2b96f1c2f59b14f644def7fdbc1184e311a9482521b8985909a4853bbcafeed882535c3f59d81ed8cad6bec5b399b019282dab42ef3bdd23c0723faf572c29bc3f60ee408c604d91df58d05915be1395768b89aac81eb4cfee7e79654bf7b35c2ee15fbdd5c9685e6a71e8202b2270afe42f63c4fd1c7fc412ea9e170ce015c3a3aef5c3383a970eef327bec5d5fa5b287302a1a7c7b23a3a38f0bdf6510393936c6b2a7838a8841a17ef3a2c443ec6f735c6c1a690105376262d9f0793d34d74f91f9e730f4c600ea1c009b5221dfb974b5b160af2933ba8b50f08ca6b3656401b2a50e2d7e9dc8f4624467e13c0bed707c14425ebd46e214e47e593101511784e2e19663c9cebc47205e3c36020e9b73e3a23d782262dc32f09a1e18ede4b12ea4a33a01967f5570508aa2b861232d08606142f9eb7845292d8d9375396af200b656167bcea1bbcb294a5fff685d3d08410ea90d35cf2fe77f9bc9bc33b5d999ef49f2112d7d3b8a40e56f0a654a186bef6ba201cce5324561cb31b4c4abccf80eed9621572e687e19b935e9ea3498df0a2a06c227af32d582dff78a1cc7b355bd3374b6743f59bf1cd2b44602221c6243788f7fc4ee7bfeef4033c72c750982c5c5d31753cbcce2f51bbfc267f2ed8083ee933f7816107e10a8a83ec6b0b320bf19d2a775198b149a8bda08902b661a56385aa0f701c803a548ae749603a3088ed4af00e84c116eef259d8b071da9ed873f521bfcf6035d226363c84c30fc6bc727c9ec368f8c171c5e3db4e17ea8a17cbb20f1460381f1c4ff26fabb113cfb5911821efb92567ac542e31b1910dc9a526687828754fddb0c24a5f51c3b23bf75a7faf521d36b910b30920a17ec1462cb2845c3cb4e23b613258a8f38e0dcd02834e462255a143e9ab8a89c86cc758b850d16028d41225af098a42cbeb1fde85ddf56b1efbabe5ebc2be1b032b795f1c3e14c9ef4bf2814222c117741dd7293a88d549c3a327b7d510151da85763d4484379d2146ca03f35ea15b6199bcf2c1ce60e77dcf87bcbeedaf0f31add1036529040e163dfc6f2647705cf5e3f915ad6280722e1a5b2e722f8c4a5f1ef41a2d74b71c49484e45203f5c53f738642ab3194a811c83f2d27df2a544ac10b44c248e31db812c21f42a1fafdc61b5083be76db2cc4669c9c6368a063f36a6a078d910c862e7a0f80bfc86eb6b78c358e125011d1982be059911dce1b930b5eb92c77172b85b9247813f05b77af44b5a90d460e46d738c257c287d0a9021ead4ea682e9763c2cc9f2f48b6fbfc1df4dc3a6a5cc72a1df54dc9fad082c6fe71bd527859197c396c8ed18caa843a16cfdf356b76f7ad7851defc6d04675d65a6d4040f8d340dca2090ed3c076d0936f92602200ef2d97ce7297e432976080ab846c9c76122ddc248650b083109a63b242f1e4f69352994914b59fd118bd01c51a8c50803dff89a14f6f3c2bd86a717ca0d6d4c6ffc4b924f852fc16ae4f9517e109a7f7da68922ea9508096f185038f4e81093f070993cb3041dd3ac2f5c7bb0390febd1b85a5c1653ad0d75b6142e15c5b0e84f0c57a7113b83754a3753a58711776a18150f8378ff9d2cb59574a05e4e01a9b68f32ed4c40181fb9388135f2a8d68346501b5c3a1d8a8469a2220851672a787427d2125e5bc79f5677a50e26ff0b2d9176270f1b1b2069e8aeb254b8f88b8a6ccf274737e4fb9d9ca1b57e12258885bfb72c80c48ecb9981ecbd7c680040aa8595370eb34f910e285527e9f238ac0ea4c92f981cbe5f8596456440fd0004a30729b905cb6431091e3c83116febe0f0d03cdd53b1ef3e9278da7b2275078b84d94a89fca8b8913a79dfba11ba07d46b6dc9c9979db3e8283d08050a4043e6a90ef7ae30ac1a47b3176bc5cc36abddbf29745756e30e012a31a8689ec71b838853dc06f1a3a9aa79a1aa2ee775916e309b4572a48acb0dceb48e456c0386b87be6b57c8052d13232fe474e1128d7a92cdc14eb2c9d08d73bf17872661a33e92e121344d731de6216e9f36f0386e270838181efa606004f6cb925a13380baee2ccb31f6f43d2f6a727b526728a5ca6c55635e22ded1ae4530ecaddadb9af84836af715d1dab5b2a4bef9f14f13ab4a6ae8088e13342efc37c4bbc65129fc3f8d77581e4f6d4768f26d2cf2f536a7cd87783ec8cd64d5a8d1ece267a6d5e0f04eda12c29a85ab5f09d035c7533c38676ddecae4565c28fbcb53128c216368bd670131d7ca87e70541502449d2342d715db7693effdb1c257eaf011c235bddc5e9dbd22c514c7453c1e9cdf9e56f80a17fdbf48a156260b9b73a472211b4e4a547f310e1ac4fc6556b9eaaf118ae7eba297aca3ec3287811b369ac8d0490a18cc625decb8d80422577b8cb52401d29fd21ac53fcc3cd34cff32b1a2aca6b78718c83cb1c88c41a74538e28f7d49120049f11f8af83893f287cf7fa68733b1dbc1bdf8d764b75e5632b86e259a2f95d278aea04d1448aae2a85508af2ee02ada23c53c192c6be462ddaa4ddaf2f2f8f353f1a8fa368f363a085171352a7541e7bc684ebb67b41426a07ad11497f5007ca323583efde79b4ab546b364525c849fe19ad23832f2142d1adb1689e66dfb6ee7f69676bec84ede1ad1fee0577d5546106175991cdbbb7aff4e0a97852f072bc2b688ccf2c8a925abd0d5748c9d95511c1588e1e539ced1ef477c9bc5b6da144173a56f942a0fe6322b2f921f16470cd9d3d51fadbc74c0a1ae115202b761cbff92bce34449b2f6b2e80fb61280a66fffd1036d30d3654c7d732c5c5f45a5a2841a6fc41b820299d190795f0f89585c28a05693e5d907421e28e24a6e0bd8929d4115457d8cd7d92713bc3c0757d3eb35fce35de32508f3c7b5f46c76221cefb1d065bc64d61f0d6d56136994d9f832cfb1d9a1fc3e6ed9ab75deaaf8a989fe1be7414fa318da23481d6a56deb1f7bcfc80bfbfc58ceda4ba1196613de6a5a2df44e6cde06517241c797cdfe103763ece5ed8faf9546520fbe3edf1ce65a873c33d35f0fd6e45d55017d7fc2c38dcba8db536723685fe2beed71dff18f8d79180a3e6a9c89e80a22b5ce189fa6d67d443bb5cb0026d72fec2678f8df335a978a06b11e90b0c3a2ab3ffa6c805cb7f67e48f58ed685e99300a86b46e2f1765af0a664e57f5cf94f5448d388411e7e8970e3f731db14c5e25c6b16f64fe094f57a0a2f9171fcb30ebb44545224faa47e393b61bd78ea8695d211cc24af19d5811ccd171ab9f233bed4af4661f79ae4c61317a28750e521e47ca971c8c08db6b5bb7637d5cc6196ecdc025746a7b724f829dd35cf997d6adce7ae1c53610e579c7fbe65b4e210855d98ba2f2acca1f36988e2211a9ca7da617c68e184aeab428a842c62aaf73e3cc036b4b77a39b751c09540727532869d9fa4937feb8d9e0b1f3b718102cb142edf02b9d9e46e11aaacdf8bd1bc9af0ad4c4f953cafb46c888c8b28674f5964b690cfd94c50bce48967b9cb64bff7230797f222c0c61f7dad60b8e0b623f2be1bcaff2423669062d282d8eadcf01121bf33b4ca41a5c94395d72e957915b66d0c9572bd714c46ebc97e37b0901b8115d84feb23dcfc99aab8b19e17f33965e61aa7cf2cd55e86bd7b19f3fa60c1cf8bff7eefd5b65d27820744b2a5371821811c9c2a8ae9cddbfbe13f83409eb0c3ca589fb2798203c5ae48f3b922c893f95ba4b7a55f14d12e76fcc5361f10f4ef0c1812d21c206bc3360eb3b3a703b7aca1a1a4f7da5de725924fc950861ed99ea2b09d88649ef1819df02b32199f93c3113e452cf4c1250a441a9c90cf0db4f97ce177c274e2b95f7650da6df7d264e9b80e961bd89fe5ee03fce6e3cd9535878c8a8ab07123381f38889f91abb877fdc9b9db85092d984687ad6f80d1519be809dfe2036abe2ebe904838696df29a277db9d14e2c0240cad7eee9292bda994543aee21ac91fbc0ef27eb482df8db0152f3531d4f0f78c431e55af6c7baab6b6fcb106684a8c7b85d0e32f72610f65ce6ba419e713d7f852bea25f42582cae6c4b044251c02df2cf076338422507ff2bb150f7cf9b31bd22343448eaacd31f65bca250be54ccdbce037d5d120959ed21c6d907299bc1e302c4d92a870070e52328569d4afc1783af7c53aed60bc93ce13391eeb3eaa748dbe075ae8837017cea9aea9deb7551e0c7fa7402493e4a2e9b3e0325419b5cd68057fbe47595a1db92a5ab6a44e37c9e406f0d49c4771eb9512f490fba4e793a780502cff0d78cb84adf99112b24e1081784b1fffdb02ef439345c4e40a1d3f4bf1694265f870b5bca7fec6b15eaca753a88210b6e0e71f76c54c199939d72132d37751811a6487bb46f42a5116c913f1a431c6286bee34bba28b8433ba6bf6e40ad642b5bef13d926cb6af0e1895afa8b5d32f2834ea8652c3b224e93686269e6aefae52e85b2c4d88172fb150b1ef315c6ec38813829df837412418742faaf066f839449984f98e47ede0e75b8de36eb699982b032b2ef7885f70f3afd9586b32bdf4aca8c4c0155f7736bdc1b623c37c7435f338da46984436892704305f23e9fc0ba66854d3088710260ac5f44c62045d79b39e65edd0f1a68e3403fb9145b452dbf2ba190f2c72749f24170452a663f1ab48ac4b62743336f92b37f065483142eb06ea0c0766a37fc2ef14d38abfa825cace3407b5d35a342a44141974b981317d2a1a3ddc6db9d40fa51c32f66c6fac11b5a50667787bfabb13eed0a3a72c2c75a23201c0364efd4aa230c9af60bd5cdaa5f1c19a6c845babfcf32fb6da22d0209d24b596a4f13e5f7cf223f2e0c5c7efc7c36a64dd48bda36be77798d2415d6721704196b63c44a541ff971a68c4c3a1e435e20c9a3daf36b0c967b3ac31508aa613b0bf2fdee4b0d7c21f46d62381025ac8b0f4287e91b7e65562d6cf2d51895ff6108e38de9a8ee11523ed5b5a224fc3a49d77795e05c84a3210988171c76ca2f101dcc89a9eb61f4299f22791d9adec93f79a140fed44e24e9634ba7c70833f226113048f3acd6fc9a5751b3894058d2a1192c2f39a43e8f79db7e3a387033eb5ff4c44b300aebf9cadd1b46004c94a1642866cf8b66f16793ad34ba35a3ba63814fc0aa6c04469947f316b56bf6e6bf1cc72db1b82c99a2d61956c273e53fa487d204f99790ba9a487d0b166efc552f59d0ded2bb14fdf4ab8fd0fcc883c9478d4846d1c8c75f5e93b1030a1e0a93fb3b4c94075f97f13b7c981f952835904a2d7ad66bd38746e6b617d139a444aba1eff2a5c06fdaf7cf375ed4ecaea08437746df7b98efd6c14ccec5b706a6a67286f7b811e84fc60815dadcb145feb47964154e0aa45533f8e7d877b1968cef5292b2c6d2c6e360aa837add72b8d9041c9c8bbdf81d3c2af1797467221f478f4282c025d2ff9ebef3f2b04def3b133d16bbebc818c2b6e9870e12053668d3225dafd93a9273cc1674694422b06ee3a0a7555a2945450bf82f7c47792361457f4c6b65de4eeab81fa4a7397bfd278d170ca4778ee07fac1641412a58ac6f55d8ac21d2f68973e49b43bfd0e688467f5cf8978b30e6100452a6938adc0db14dd1c346fe9d8891dd9e8034acc242e70876018e403f6ad1b4e2856dd981443ed9ebfca65377998957f3ea0ffbf0f2eb14fdc4614b1c4ee790d369b5f4fdaa60993ecbea3addb5d25e51f2468647f4004bc71b70a6dfadfc18e12fa719ac2d429c98792e4e0c2a12565b4a9422727527b08de1a4d5f0c96f35ac05df0636943a12d49ac351bd0199637b5a99a746f38ff73854468287a4360276d29be22c1236ceb50780369a66f2f878172f1b448362e4a0ccac28fc8fa3693b6be9fc5788091146fd841ed50a97bc378d9765829d33ad7f105528aeea7506e3c289a9f3c40f14005f3ebe130ea767bbfb4a06d1b2abda30ec922f5c5b38aff86da2854ca82f2d3f045372ad2a326d26e1b7d0d5b9a369a1bc07250804037080cae6b28a07586f5ae0f4af0ac6810770b7cc3ee54445dfa898af63aada52521e9a58db43ab3cabca19389453464129f0935fd6bfc83e4274284049d782db3b7bb2decfe7a093b4e35c51b0ef032ebb582f83773d0c3ce70e837aa74c935f52abbc2b058f59e3f59a37f385724cdaf9b351e4f0cdaab81c754f1f8b8046b5ae9dfd8822f170a1435e8582115bca5ba113c78bcf94969c7b93af17a36b9828697c190e38345707ba3d107a112f49706374a35272a4d21625acfa54d3e947c81cf9a8ac21343321d81f65f6ffc525ebb0b654d7b5e298f0b37827d0d49a82252bc9c2f6c871083d1d1365b0785c3eac039bc5a9d8598c4af9e9d411f1a52448adf98a1195ad38cb408c35d10bebfd7fd410a06fe5c41330a58f278abc5b07448b21d26ebf82d95d8bd8f719ef9c4074e87f97012b49a41dedf3581e32bb3a8d3a12483d16bc30e1b5983df00e3c982e04de1a3258d64228d2af656215bf04b98bbc2a2399a3513f7d5c2eedf77e58021e40b212fb87c03fbe8e2452e96463cb9e4277de6317abb53c3f109c79453c1d88d380d5d20005e28b833f10a98b2eed8b43ac9a7b0d4b48cfca32c54a54fbc1bad21e08b143681d9797c63a26f697b303a0cded013711bbf026d970dd45e928c0aaad6bf8aeef985dd2b11da1bfa6e5ae4b843e443234d50b2d553a649b836de9415a45cc788a48913a3bcaf52140c1faebf93f8dddbd9785a0a554d33f6ba238aac101bfeb483472cb0a37c04f21c481c672a62c78a835b110cc7b957d1c11e6a86868badbd20d3025f13f4d15dcd5d89b787e880e62408f6f68a062655f5df8d6956f29b176c738550ffadff8f95f3688198c7b2f6bea1ff436f3fcc8743d9657b9a5e48ced92ea772ed1ce51ccba960fefbf0be3d0db36c86b9a08d4007a17b10cfe2708d3bf0800d148ebe4a3693e4663e6a7108b4197cc4b370bbf0142598066fb40219cbd65f7b86c752aa50774399c859b0ad483612a4dccc2328eace132d4dd49a5b4d85def4ece19f3dea90818410e8964039dfd92ae3f298cd0a6c4ba8804b7fa23dc663bc8ea9cdd63696b6897125c6f5dca611406a07eae4a155f8d383aadcd968f65c25f1119cd1a0f5486afff8dc9ef8de4ee86d02390546cd901d70c65e49df533c49b3f4517ac306e26abe3668dee0b241118249d4424f7c430782d3fa688dd2fda6f8eb728aeccb9db0c1b471bda5184b151fad70a416f03e0fcbb08ed9ea4d64c648154d134fc0336ec3db2c02d040083283020b901c38a390782a4960c9eee9be8341c3e648034a40c242754ebb56142f39e55be067f9021710b4f7437a34ccf5c5adbca00d7144e2958315098e10d494ed01260853e6012c5cad689aada807fedabd2cc067660095e48885a2855fa03e4f9d254c43a4a1ea4c1cc84eb5a65d1dbcb1271081cc0901203dd08d8c18e8473b777ed7eb1e68f8e1a953c7e7c75677e1dc5e6e6bd73083f0ac59b9f0f44cff9c6baf6be2812be6465da4231e6d0b3d1021bd03bd061bf295405d2f3d5c78d065ae93ef6d127c1380e212d39f9d4f0a8dd74c96b506384e55cc27927b3d404ad4f9eac3d4a94ea160f83ffb2bf9026881bee885b14b5290cfb7f476681753fba1231695db5d0c16ed1e5494f6cb95d2378688cd162c4bc2afa73db8ebe6fc9d068426064c6a58e248c95a4e801e885a87940e3408fa01108d4be66e28d4d3a335c8b04f6de0bd52a41d273380114f515190ac200fd07070ab2f906c6bf267e3a58a96ddbc83dc3981173029325196c8bf5b7776549dd01e3be69864e46b09f4044668b16ab00bcf82faf01edfef2dda1024b892ac9a640710536a61e0845225f9f2f1cddc9f1b3f7f5547e67961a1c820184e3490e27956263f398ab8fdb419f75d1c69e5a0d86f12d60ed49a0750a9097e665565f7e969a662243c7bfd5dd0e924e83680f86437021dc2402fd3af9b556d6a2102c7812189d81cf400683a665f3d6c0801cfbbb7a23de22506f41f4c1076110086f5c8a04dde38bbe9e14830fa00ec2cb3914689118b87e9e1da4921d0ef028fffc9b3be1226a91637fe8b35141b9f50c5938fba213476d3e3cd5163c9137939cb5e86d566428640cc2759a911cdc5a013bb0e4fb208d17d6cb07624fdf6147c3f6102c9ae19b2a0533a88bd53f99c5c935a6389f75e3c1092e26b0031ebf983ac1cbe236277f5ab7b4898557e5e5ca4e9d543a045c57bc9196b9d10bf3be8e8677aa7afc693ddc2669f5400065082c38368b6f9ba77258bcf4f0ed72d4f10070197e5ebaaf1d225ba828383a35204c652aa0b2a6912c57bebeeb400a307475a66f20584b0e3bdd76b1eaefc7838d89ada735727b0be5ca05334b86519adc0290a1dbf2d45e0acb3e266649ef9bb278bf7c860d8efdd944cc2146e5009c6924ca430a6bfd1e7469d76d441954c42202620283a8b4606aa2e11bc71728d10de6096e8fac164d080124c8178521bc87f64dfd11301b5717683d2df44da2fcdb3e22e649e71c94ae32656e0eaadde83dec70da5b04821d6965f27f7ced3fae30d80ac59a7657de7f3c9e2bb3189ef925c06c56a77d51546a10343fe4402614e7f70e276b9039ffb0470092788ba1c265934285da24e755f070a6a934b3da1a03ddba94d64e9209d7d7b72d1ec069c8384ed86b964ff4e9deb81943bcaa712650dbc7f0a1e9900caaf8ef3985cfba64c4a298f049abee0cf3bddd0fe8db2bde611b04059bf1237d9696104b98d5f529421e55e431ce2d70c0ee1112e236d3b00c112c6c6f5db8da9385a6613c723a9d1560641d4affdbc6da22f185bf294444d08a12b469ba5ab2856f988d528bd60f86050ee4ddc545cea04cb229a16d55d07ac109951805353af4991105c421f3d8fa852df5f681da3647cc898b56bf50e225d9c60267905cc3307749e9eeb0e48873b4bd3e7697b15977bba67ecead4bc30bc7a03c1b2cce787c3508ab2a671683ded040d0b47db8c7f55791cb999f8ccca4a6ed373d21b4041674e501e6f574f414852b1a11cc2f987d77c4ff7d65772794e68e40a1036f157835dccf535ec0917dfde21e95204f0faf4cb3988961c0c88f069c54db839ae2f3a38c89dbd4cdc5c8c09a9216c636a3d957cb8ec5c8fec993c8a21ef05fcee1ec6afa0f21b63f8f16205167d24cecb452b6ddf7a39f16ce98e388ea10d4f8107ccd60017b9ddc85d87d44a203fff762a05a157e006f83d933207ae0e4451749490e5599e142788a9e980d9580fe41396b4b6c5eb6f6b7fdaf45edc5c47a76bfa39df9eb50326a1ef5fe04e11bce2c46778fe54cc4b14366ce2682df791f52deb419df99da0845c6c850a552f9e7a25ae0ebc4c881efd2e92e475acdcf155b72bc2e2aaf5825a77814d675402a40cfd9636fd704826e90f41feb89f75e5f90b89b45cecaf8f1a96a47f8a7be57c702d6bb71f0ad5d1a175aced9bf7e89e6459dc0e76389d12485d6272ef5074652f8717912de25287283c8579cc3e1ebd2a2a18c1a4130227865aa950a36cc0088c42da2d3c0f8e5f317a4811602ea9cc67ca3302ace7d1dba34fc4a45ef625d702115220e947201631acc1c1c6335024041fcba4be94c3071d18bea406f4d5fe48a6f0e4f836d33c6134321c1312777f23389efa137547e57b48043dab9f7b4ebe4af9ee7ee38869da40a46256fc3917794c2425176fe2882ba51361b0f3b37fd1a7e70e82722a5aec090ed578402aa207510811c54f0d8095ba04b896d8f1bb0872710f45a7393dc77732eaec19de34b4c4d944ea4c73599d8312663ef1440f3ba4ab574f566d6a2cdb5ba94d370505d890791a17090ee05dbc243dc479421ecc5dfb7930a7eba978d4bf3d114117858e49f27406b1678e8fd8d729b7a28ded3f2014e39fe31b3237c09fc771ee931547574729bf3825e3de0296f399f6beafd489273282b0e7614819b9318e41e2acfefb0932a2fb9eee1552140f2b3ab193b3f24c8ded072b5ffc1758db317fc5e92b79c7e7be4efce3e2274cec13961fab3fef064f21d0f2d166712c5383ebebd3f0b4f4324f884873ce6fb462c137e0e3df4fc55bbf4ec915962ed35c401371be3aeed2ec7ee27b5f5e0585586153ca22f67e4aba5231d290560fcf1f373473d82a82e888751ba4dd8c9ea6603cbc082793c49d005360ec97fc5c142f614160142fa9e1bed5fb29f0d085a3b4cbd0b9b7f153e7ba887c2049dcbdc663dce3a5325bbecf4c9666e95bff5a6ebf0dc8b8802dfd3ec95320ec87064474f05c4875a2642804fbdc5b1ee8acd94404964fdc1bc04b48a8258bdfa344084fc948e6f64a0305f84afa150339935d299b1b5becc04ff024a4c7094e2ae93b3d558f7bc5f53aa884c134232b3bd8d33380303578ba49662a70d39e1038da636290c5a94d5be220bbf547a1dfd448a1c284213245b54a81187a0a387f41743a47015cc61410d055cc5899ba1dd31e47d595034a85aafdf9ae6aa74f3f87b05c6df0fa8f430943c17363b95e5ff9a9256d3dbdccd0334209b8af6e3fbb6809d29aa9b224b1786753894d66e57961a6f6b70fc74d02166f37a931488ee7161258dd5b4642e05eae07195743fe352f57c0b3251e8baf1cbab227bc5b7b8ae25a9fab25513cad5df83a6dca2d30b5ecb054e3e399864bf0fd3a109147600b194c6385f38470c2deb89ce74ab3f6e02a9d299c8244586755f642332c77ba506758849fc28e086fead54144582429c2e4210d74be82aaea1293836d0cc15984344d26e5cd294d37175f0fac4f232f1f47ca55dce150e56ff8010f5012f3f01bb55bd6592b717cb16256605c2545f2aaeae2c2b2f77dfdf8360f810ef3cf7e9c32e59ffb1157dc5485f329e2ddc247571bc41126a9d3010cad315d0b9850d869e57c3943a072c6c0b9a7b7abc4f1f94c5d3e2dd038a3c0c779194df87a0ae387f20ef7b1d0a5ca2405531bb4aee25bdef092a41e132b09331092da0c015bcff95769f056cd839b21ac79bef76b1fed0b516ab83c2b1eacf63e4cfbedb03c8d57d97171a2d66f4d50e48bab57d4d703e142e69fd11e05b64ee9cd1bdb7d27c2f8fdeab5c1910e9e1b07e6b77bdb1acf264ee46d6c0ccf6f5527a2f63c388f2be96e0df4526e4766d553c70897497ea19f9061f15be09e781be9374197326d11afdaa697379bded9f778e1b666cedf109f7e9973d5aedc57785dabac111fd2b82cf1c758066a26533557865ba1ca7668a9e3f60436b7c7cf4d7899df1b03c1ab5c578cd3d31d22b6aa786e37e84422c9d78f7b99b537c5971855d71d2e5f5e656866e63db8b0ec375efd6f6fcd62f2c55f9c334fe5f1dc498a6c9f047bbf40986352648b92314755ad23abc1badee2dc053d57cb1e3f249ad31e4f78699dd27572295c292c4c17ac41228d0bcc871638a1e1b2d397ce1ffad9a61f038afdf488ac2e0bf02eac7b201b0c1e81344fd669c9bd0ff5e100115b370686a9a4004a2bac953cb8bb9ccfc6520cd4572b1913bffc76d0cecad35fd6000fd99afde4146b387a2e2bac87415a6f3e79d8971f5c1c73973621aca389f8a249824f9e021c03f169587469f0ffb5323cfb57f805dc2e464ad1ebdf4abfc8d5ffeedcbf5b7540d0d27feb7323ff85f2ffa97c947a9c03ff292f61d1e6e62804ffb302e04feff1b6bbeab89bf38f1da8bf42465a3b1d21f48f7ffcbfbffff52f7ffb5b96e61d5aa77d2cfeffd6fccafff85b3e1de5faf7bffee53fff2b0000ffff3062de1544dc0200")
+ mewn.AddAsset(".", "../../runtime/assets/wails.js", "1f8b08000000000000ff94587f8f1bb711fd2a2ba255481f8f91dc14a977c318cee582a838df053ebbfd4315026a7724d1b722b75cea1441e2772f667feb7e142d60d82b72480ee7bd7933f468b533a9d7d650c38e8fca45208f216907234f1d3bea1585b95b30077ee74c84df02fe28acf365824bacc42179d4b1e3793c9af266323e8690348b0c2e4a559e53dbaee596f7df9e712b72399af463c18bad34dc8b5402f72293bdab1cb863472f2c7eb2d3e96ef915522f32586903bf395b80f387caec0866b705a79639c4a3095f838f5d60817be1e4f0ea6467ead51919497f28c0aea2fbc37669f3f1b8fe57787bef9d36ebcf6a3d1ebf76e2735b7e7c54f90e62f2d166bb1c4860fcb5c5e4f7dfa16cccda65a349edae3fbb7e05ca740ce33135d253c318ffdb185a844ca257f43b9c25b63a8ac8f64e663cc63fa23fa95f84583ad938973a501ea8d9e539c3edbc70d4bde6bae3248395dae59e3c8d787d0b13187f5b39545671e9836cd8ca3a5ad128d22632cc8b8c3a6e79775d60c78e44b00862a94d56f9c52d632dbf1cc6c8c8e76c7e72dbf79d45bfab687c0ff10b931d83d12fe044110e8c031e679f40d21836212a9cf5162f2936aabcdb9b36587516e002dca39084704fbd28e584053a3fe3b8475e961061cc524f12c4005883d331240d2675c4c8cfb0dcad097f7e875de86c6666655f32c97b937f2a6710a117ac56bdd5b573d6bd6493f536bf28aff2976ccac01ae1682e61eb359693bb02cc974f372fad3a8433ab5f3466c973b365b3b996f3452f64aa0d68133c0426361cb158aaf461f673ec79a10eb955590c21399345bda27b6d32bb177ba5f372e974b686f7cf87c41e96a54d1fc08b1290a32c6e8ce00f0fcea85c68f3681f801ac6b5c8c1acfde6c7499700202709fcd04e247071c1f41c16d4b040ff7e7f772beadcd1ab03758c85ee6e694d3f45496ed7841f7378843c367c0b65a9d610431818eff046292559cd163398ca9b295d916438b36a66f62d378693593309352586536533b5aa996058c07bee797156641e5b6cda9cdbe5f948faf1b8f9389da89713c60deca3df9cddea1268878fe3b6065527993d6a692ec825b9d85316f61b9d032de67a510bd88f138676a92cc17fd65bb03b4f07f4b1b4e23425572acf236f2372612e48e4f516b2c8eebc883ec1bf7750fa68f6731c910bcd3081598207c8a3af37fc55992c8738e50e500462cb1d94367f84d885c4bb0382849c23fc8832a6cdfa566d918899f22a7e02322a846621553edd5481b4a6b439882ad0c88a21aeeb330d7aa4a466a6201795d4747607dca9b15a53f293b3fb129ce8f26e08dff275db3afb0c0b7bd9703c7587c2dba1be62b48d44d4be68e3fff2f68373ea40a79d669f2d146bf09f94c9ecf61f58319039f3c9e225497e37997c3f7df7eeed5fbffbfebbc9bb77d3371f95df0857ada52c54c9bfeda43932b4e2d6e859f91c511369537a65522c44c098df38bb8fd0e1cf87023a3a18637d84a8452a4a735596912a2315b51b1216a8dfe8921bc63db2f572caf1b7b86ac4e5ac2ab54d945045911fea3a6618bf9c8e24527e22a5a4fe524e59087c739626776d9a6ce66621f1afd369be68aa013abdad6e9ae08c2876e586ba0196d778b8a2041ec1609536aff36ebe1065aed3d645e5d6bb2d185fb27a984e190b7526df9f39f8804720c9db3c867df44b7b7582f6e4c2303e9af494ae2d47d3d03b7ad5214dafda664495a55e9bd36918c85e35a709fcd0393954cf8a815e7673735824ed3287dd8667ff53b1f6dc31ecb4b0cbf5d80987ae3b604d902a02f4910a0db7117e30993c06def40f33a3fd4b656b16181f961439fc713a1d037fb66505fd5779bc85fd4fb598c4cffb9ff942a4d6a4ca5323ca22d79e124158f55943c9bd3cdf19c512daea34edaa939393c4fdd04e5c4e137721a7f529f50300d78d1ea8656c807f9344a475c27212e932c28c52d1a3ca75167d558faa4c9d2e7ca433305eaf343841184bfcdc2e50fce776218fa1caaeb95d84baba83286c415973aafeafa7eaffef54bd904f640c4bf3e051d432abcb948a263dfc4927c3867b94dfae87ec6bcf992a8034c890f50bb3bd6404ee036581b7baf21cedc4c80c529bc1974fb32bbb2dac0183c03b28729502fdf65fe5c5b76b4e08eb87e693cb77ea72b538be0d38f5e73f8dab20b8c31164250c857225b62c4dd6427b7932337528d12a2a5459428675b3eda9e2a88b3f88a617e144441f9bb62422aca3264b6aeddd515fd7f91a415fcb8c93758471579d712b8b966e6ded97a40d4af44d77aae3e49b0a73076b5d7ac846a311694f3a2fa67a782ad6dc1c946b9b042bceaa3be319e4e021422f78b3c37b2bea924f9b0116e34855fb2908945916f8adf57a75889f952294ec5ed17c25ee8dd8325e275e35d468db30f3701cfda8da5dcc5c86d0e9217430802ea3e7b0a1635109c62372a6724f44d7582322ac1091ac343bd8ae9851cdc663dfea87e35316aa7ae443e01fb2ecbe4aa92737ac2f95d9b44a8fe669799d03fea2a4ce42044678f8c34bc33bcba5cd0e28b060b2ab8dce3364078cc7d7556b343318efabfbfb1754efd5b3fc2107c212c044fce0bdd3cb9d074a50fa092778feb7695912c64154b6f71b00ff7ef843a465f9b9f2338633df9e9c8936b73683ea71de4f6e4065a753f7730dbe71aefce9f05955ed20256844b0ff616727d4b7d63e9e61a867bf5ddd20ad0db8b308e8baf8637fc86fe5f1c6ae63c79bde2db6bc02b78c8f77e6094a77cda3f4ce7cdce55e1739c477fc7aab7d7ccd7f05e5fc12d439b2fd7b0adb98e41e7930d0ad2a8966c6837b5479f55045f572d87f77a30373ec5042e5c187f4c1d87d0ed91ae2270fb1111e3268d4b2ae4153fda26867f0db449bd6ed812a184ebe4185c38d28c6e8f7f8eba08999e14186b27075f6e8e3b75d79b6a64af0f3ff8ef2bc7a880c97881bbb164d257af3e6cd9be84aedd61b1f7d319b4a47b25a6e229c23e7c57fb8b4974b6c9e5eb3faf2e9062de0758b1b6d20bab568e55fb7bab2f96e6b1a3bf7ba5d1502b4b12cf06b7c19eabc8cf1f90c196161c192ff040000ffff8bf286145a140000")
+ mewn.AddAsset(".", "../../runtime/assets/console.js", "1f8b08000000000000ffb4587d6be3381aff7f3ec5838f5ddb746aa73b576e699ac06e18d8dc75b7850e771ca51c8af5c4d154968c24b7cd0dfdee87fc9258b69cce1fb78636b1f27bdedf2445db4a64864901510cdf3e7c0000786182ca97e48530ae3329b4e4080bf8f6366f7e7e260a286eaafcf81b955955a03049a69018fcccd1be450165cf413c3f50ed905054df8f6f05dc56e67d9a46b7038850faf91985b961daa04015854fb8afcaf0237099ff03f7716b4cdf908451584050db5daf07f331469b3dc7642b85b967ffb5b607173f97afd3c81746cdae86cd663f4cc376c8f29d3533f87479025690d7dfbe0f594acdeab82e20d8b257a4d3508edb9adfec941d1b923de54a5682ae2497368881ca3724fae9f2f263f7374b7e8e4f70908aa2fa224b58407851be82969c51d870923d8593545927adc64d73a74c979cec2d524881411bdf26e54ec4c201f4a270748683e889d9707950284d5d58492865226f8c0d3ef9793da3322c23fc17cef23a4e05a394a30fdaf2bb69237531a1dd3148efc5a7256342a0faedcbef37160f70ad4b22a0e6b5083bf5ce89d5ef0a1aedc225fccb1608acdaea5fc23513656580d1459849c144d87168227ed506da86bc0ee21cea405cc1e5ec8770799dd6e44b47766befb94dcd2bb82c5fe790554a4b75554a260caa790852649c654f8bd0d3af928c2351ad8a511c2e57f6fd3ab53296ed479722c72ee3291db2d19257a60bca08eb4ba911e89856a432720a65da6439c6364d3dca4d66c208ba91c6c8c2adec3168aaae67b38fdddf453c452d9f516db97cf9b7a5d399929c4f410b7ddb82efedbb25382ff4b9f5c88ed5c16ee8374405bee64cca12055ded18a75193bdb1a719f45147153a64371d3692ee1d689f47ec1890709947d3fd266e343d4cd166ba44688729b44f3bca98e84fb11c4d3bc27eddaf69d4564e2bdb3e6c0b11262f3b96ed60b1809ffe063ffe0898e81ddb1a3bc07a02ec63649e73ec32bee6d663f636c5f6e29365db9af64fa6d9c6d6cb907963415190bab1d4cc9367c22b4c8c6245d413d48968d10947919b1d2c6136e439f471b08400ce3a31f1086bd4dec3c13e68552106d7b68f7492073ad54e808c986c076e747cfaa05252459814a835c9d1c7cb674be7159bdb814bf33608c55bb7633964ce30063d15159a4a8993536f308fde06cc7dd931c8d0e1007532e61dd135410c13c311de9bd8ed3737f7c7a60da3d6787c2bb34a47a35c1f7aa04b92cfafa542ad9914111ebe1eb6be9d334a6276f798dbf2d4b08087c724932223a64793e89233138549180faab64ffc307bb416b4332a1c9ad08736a51dc59ea2adebaf520a85b9dd7cc5ccb6fe86e351f2562a882c90c10266736070edb26f4a710eececcc57df3d2c2c1cca07f6e829f0be3a0f3d786d6f25286e9940eaabb4369db7846b9caa923abe038ba745fa1a5dbfb7fcfdfef68f441bc544ceb67b57f7b83b0af45433aa427f21f97b4dcfc8719baa3bee38fb3ada690fb9ae01e41a3d58cb7aa2e9f59ace64eb9b6a79e372eab624f768a0d25095403410e0ed09cbf5d34ecaa7b530727db7725a9975467fbf66a74fff3df9cf7825f985d2f5ddaa3bca0d2d38098e4a2533d47a7db7fa7dd4ccbd3ed568beb0026565a29e111fe16236f33419fbdfb1753e489891fca8f3704f6e3f57c733a7a94ea591b62ce627b2cd01c202ead4af173d9cbf372d82cff60398a8d93391c3fa6e052dbfab7a6e4f0d4b7fb1bbad8dcbbc38281c3cacef568f709c3ffa85d53a3a9625665f8e95261a21cc08e7e1d5a84e7a42ceec616745386f5477199764cf25a1c98609bb2bfd8314381eff6d4848a13db3de8dd95d07eb45c22f9112433c5b8d66a41c59bdb3a76a93a091d9a7fb9e4dccc04951eb1ecbec0c82d863e84621799a7bc2c065fe7e146e640ed1740c383e23af259f8a5431ac8a13ba51dc928a9b938a2d60c4d13f568e34b1332dde3b90c202dc6bb701737b68724ee6eeaeaea782c369bab10c197a97cf20387d060f97360687f041d89da7372a5d86739fd0e648d75c838c969b9bacb661beb9a7aebaeffc99d6d5f74a570ae91c3c8642ddf09aa4fbff1bdcb3374d9b9b51ffd150ffbaff42ea1614053b53f0207e983d0eef069ad393fd190aa272261ab577872b43bb7683dbee14eca56c7de092f6ee1abab996a67640ae854165f71d5d786c16bb5c0d6a13c4f3b77a70ce8ea2dfa56e278e94a56ee83f39f4d65b3a53ac3c71271c3680309ec3416cbd926895d97ada1953eaab34cda8f8aa938ccb8a6e39519864b248c957f29a72b6d1e996297b6c39e7cc607a91fc3599394bc957fd176d8832b7250aa40bbb6b0c8e22a76f1b1a65ac761fdee2289eff2f0000ffff6d6d266985170000")
+ mewn.AddAsset(".", "../../runtime/assets/wails.css", "1f8b08000000000000ff7cf8c712ef3e932486eefb29fe7735379a3d4defbe890989de7bcf1d7ff4de5bbdbce29c967a292e104015322b0bb56001e0bffff36ffffce3cd63f94fbeefff54db3cfed31cc7b2ff0b04eb763ffeb36e8fe6fcfd673e8f60f62b876cef3390cee9b2c848a8406114c62b84cc7002fb95485962349457d81f4a239bde7f8e269bfafdfff76fff0efedbbf81fffedfc4d53c1dfb7fd6f35c0fe55fe67d29f3762c27d09d7ff331ff1f7b3994f9d1ced37f56d9d80eeffffe2ffbbf5008fa0f0c82fe0387a0ff2021e8bf09effbfecfbfa4ebd96e5b39fc253de679d8c1bbfcfdf1fccfba9cca2d3be6ed9f7f07ffedfffc6baab2bcfce7fffab77ffef97f567f22fdeb9ffff15fb1fec7fffa7f1dfbf10ee5bffe99e66dcc86ffb6de655b37c7bffe4121e88f6ddff27f9ddbf0ff2fb223fb57b62c439b677f1200ff6bf35c55ff2b6fb26d2f8fff7d1ed5ffa4fed72fdb4b02fb8f02a225b76658e6cf277937c31a7fa74775338cc3fc7f7cace40eaef967b2fe5dde7fc63cf5e200150ac10d12866164e18f71f8c36325b1d484890bb376f067ebf067283686611c7c9a63fb79e4000e398661d4f70fc8ff03d25ed4b3560ca27dfd531886d9a83faebf7889abcdf56d12046e72866138f86f02f61f25446df16dcd76c5e4d40cc318d81f97f007cf72823f6b3792de2902310c03f57f8cfb9f5063e81f1c30a588f8fde1e38f3f50e60f88e1fee6c74e3f7918ff64f287cf177786515e2adc0426939a21891c8611f7bffa8c3ffaf8c444b09bfceb73182642ff1eda5f5295a10ef607cfbfd8c51886fdfd11c14cf31fea758a86c8479e2b41048611b13fc560df3ffa8afa77f388f58b44ec8fbe98aeff9b4f611485c98a3389e08161d80af85b893ff9d992e5bf1e10b3578e3a0c23c97f0f81fa833ac134d2232097d5e10f5f42fe15fda794ec5cd5b65cc0681aa923c3b0fddffa32c9df03ce453a86fe46fd5b5ae6e391f6fb5b7a5ea058e1fc6b346d4c31710c69501b09662e615906ab6cb0b4601ed0da905b964ce3086cc832eecc340c3357bd50a73a40dd95afed2a6630d6d3b70a14a0de2d79b62a7d554310b613a21797bd3285917a154e8a102bedecd5107e1fe7805a7e1949176e1002d8a196045d68ba297a377847696d09582c75ea743f7f52e20dd60b29db838d9308896dc78548e213c24aaf74b123f107c62670026b519d953dff939bdc65685a90b9ea0f629e55bfaf8c554f567f8b766291a6bb8e06311e8c7199d420a710ddd170289c125bb4ef16ed3264e6f21c169a7c4ded40c1ac43ab66aa8e8670fd241d73d23350cb4062aaeba1b6706ebd885dd07bd8381b20b42d24787d3f555598ac01d1d8b62d10ad4e90b6ad924a296af2612d13cf7d5103a4b2e2b26c0e1076ecfeedaa63040a1425e674f048008c4d2b7cd836d572a65b73e00703d40159d4e1f128be35711511a2bbed0f9a26c2a6d2305980c32bfa7ad0039536733bbf2dce366648f31ea112670807689dfda4a08eed6006e8b6fe390fd6e3fa8579883986c5668ef0c2b5b227094807ba78dfe884d8992e1fadd07604a99d6dce1a66b18acc5440d4cceb7aa53b5f203a24ea6ffa8523d194c65ab8a359d6835cb82e181a45bcc568f9a0b0b43d34ba5c2512b0a7c2d38ec4d536cad28948d78a5533dec75c238b50da577bfa58ec1b0b8f9d8b9108d79efb097349095b75a0c62c40df8bcd86190704ed9299935065d53adea186cd511060d5e281b27b0ad78c20a078d4a9fed3bb4b8a9393dc52fb70bda8bb69673898836e41a2449dc3597ea139d49d1a2ec9558009a7c606701fdf4fb53e271912069bd9ca64a5ec2aeefc15e1151b304e1ec3840b1336c424ed9622b8e934b48e40e64789dd2d1f9b2c150363663d73ac8c413a3c3c330a5c8be8b5b32dc0da19a75e55c6a6d76ae50786e4e6434d6e95c64371ba1925bebdcffbc1caaeafb1ee8b95659d1046f8b9de8ce4f806a5d3ea3bd22e7734484d371ad5df1192c23fd99a488f3a21c146ba263a87d846003bcb72b0e69ffece49a3ede4e5e7e171176dea2c058baebe48eab10b0d6e8d013c3b8d547cee44940e9fcd9de3e94ff72e7048a32d92fb4bfbaa45af4ed202297292e7b6587a4edb651f338b5a00f9e05d874f72650938652cfa694fd01d51b6171a19b68bec9cf089220855dcd6da0be62ac7c6919de299a1b52477fee6077a3566bcd031f2c754bf5b4e1d3e5a183daa25a740b8a7de21ce058c5c4d3de4dc187e606ca9673a8a6d63a6309b95e2506d6363b6cad65bc4427fcf136bff3946925946ec197364193bf5859a0c89151b05484f4327881a65bc17b48bd472e731eec93e166e26ba8b0239d94dc9175a18367230c0fb3d1a15db919b80acb805e12592cd0c43cc8d67f60023498cc112354fa047f1aa5dc223ac87a86d34cfb9490295706413ab4bc6e588d6f4457b12d60761b19ed91138014c07539ccdd3d4392bf73b303a836f2b7f4ee6edf16a7f14343457218c8548ec25e485af689675e947ee0534807a4d0fe0f8c1c9943500d301a454ec65712c083282ed62b8e533e8ba8e08c407f1632deb381883bb28a620b9093bf92b73a9944b56016d5898cf7c2148d617a91b401d1338931131286fba6330657024f24cf96b614e07b8ea2180ea800919c4a2ea42da71c2921ef865a5c297d51a3d1abc4c164c36d54d16a45b928b8dbc0732a268ac5c1901564c0bd088fcf95402496a6ac7191c6e95ac7757932399d8a623b89331726890dc51a2346ac99d533ad2f161b28388283860d6bddd879635c5c1670ce6724800ef7de5e497db344d662e0d5bf43ea1f2b0fbd8e1022ff6416f3ee52f609e189a13c13652e074ec654cea688914bf059e676c2489489247ec233e331c697263624af0014550ad4f4ae9632bbef4004f638418a87f1048bbfc9dca35039089c28e2f74ea7ea7e5d2534f233cadc3e0f9cb358b3cf162ca6ab3dabf0aeacb12cd9cab97bb5a422892472f19bb1b02d5edad963b4e2634bd421241bf9429a4f05b86319446c28e8cd8ab9435deb191c7f9e5146ecec81739665316660e693f7d31d9d17e56d1cb826b44fd5f808723b1fd58a8dbc77b36c15d26271cacc12a26cd83c6a0993a4f26a5c7c2e941aea329e241e2739d268a29e914f86da77a93278e65b957195945d75b421480499ec09f1efd6c32b994ccf6a2139195a44687c5cdbeeea3affdaae510e16da44f50be3c71e01d105a57978c13a4f9ba1fa3a7b1ed81afbd1f83f64eef5af8dd259963c39f4e5346fccaaaf77ace68800aa1aaf03e2f2c087183d2ea6fdbb2f52de65320e2c2becf4f4b2fafe4f20eff7a0938061334cd71df4f484088762fa3b60a5d90a10ab315acf36632a0aab8fb123c24fe0a8a8921c7b727993fbc6f53b5f97b4fc8c31a8d014ffceb5283116c6e447cddaf6cddd47fb905e7163b58c140ddf1a8493cd8cde9a71961453f065dff9d602bf86afc6ce971f7e9b2c10a3f4c867d6e000d814995c058d61b941ce4d483241ab68b8cb5c6f68f750a85fa1e204125a08a52be9c3ecf681fab781ef155ec13275f77f48404e594e4e34d23ed4e89fd5649ff3823ed1ac9783e9e499badf60afc65d56e0bfb075eb5e485530a177a34217aa2c67ae89312dcad73c2ed8cbc7ea5c3515278aee4de32b645a41a252fb271348e9b14a24637b3f0fae1de94524bd4c6f4c6011fbc46d87be9951f49b072f75689bd3403d0b78703f659e3f26a9c3af03406b0259dae82d368fa55511b164bf03bdf9687b3dd8727dfa6822092cfdc9f3d599e959321a573b68c66407e4cd32feba02ab4ae69a0d13c23367a56c9f54410697ad3ac527fb63bc31a74c62f0ca72fda0d127ae30bbdbc31c55aa91d61378b215be47ed0cc25ae2f5684ed67ac72dcfdcadd6a28b44fe20a2dd402afd17c4dc7e3862aaa82a92e9ecab3bdb44dab226726ec1f56ed96b349b5067fc63acdfdc29dcf2922cf499a24e98f4c1c219d56c8a047099736c643fbe28087cb7d1c8824cbf418ee1599240153b9a16fd32d30603b4b1c6482f94e0bbeef6620090d9b18f2a690bd804463d7029826d4dcfd6072a27577c679ef1b2fe477d3ea28545fd9f1457ff86a16836f5b24623d5299ac7c12f05ffcd98deae9c421db55cd3ea848cb393a455aa43301a2e9aa2e251491a29b759765e6e23886153105a75753c0e632dbd06ef7f98e3ccff34d3c4ba9599a8b64b9c9787ab21b49c6870fce5a4a8c601e19c1afb5c0cf217f6db6835ac3530e48f998974b39bccbbb419deb9a86b57f2a36ad4fbe041f7d5bc660be51cc869a7c18775982b06312f14112b1432249c5136dc66d30334f48a9fe69bde10bb7a13037cb3f3566cfd5adb1098f386b7d75277891a7c2446054d409580ba96c84c6edcc46679b6cde3ed1c69eccc028bc703379c4dcd99f7e3f41d83a913226617bc9ad13a764f4de48745c67eea9d69db2be35e7718adef0e5db389c079472235d9fdada53c8c544dd095cd6eb45cb0906d60fc4ea0ee6261e25735ef475a2a91d0401de77b42544d8e4666b21cc815ad1987af6183e8c2835a428253440e5b63b9000a909bc415007bf0bc0c0860476597db0bc9af8faae30b97cc8bdd2f9e74e665977a89d6c00804e36582abc426558c96c19a97c54c5c0c4a25933a64e24714890a2c62d7dc4cab8836926109ac4155d231654cf1b1629ecf1d20945350ac2d00f613e808e9f0b17364af1ce6b76026c7cf97de81ab2ffa2ef2059289fd2a7884d34b7fd97be6498a2408567668b73209dbf5ba39d09b54b4ebb159e3693e89938a677ff70ef49aef887ef4f36c32b5d9e08c90218911c08999e283974248ed3c0336a016dbde4109cdafee0d1429a103ffee6c46395cce0487dcba3390b4ffcf0a85ede2f7d23df1c3e8c1babcef847d30bf433d1fc91f94da32cbf9981fc92b4e544a3702623742170ecce431d3cacde0880ca1a29f326e5da0d44031618833135425bffbe853804fb63988c6173465298d4614746ca99cc615746da991fc37e8c2630e5cd7e8c9c3325c3e28c3cff59538c8c3135c3f58c1630b9c3568c183085c30aac2bfcbd5fc6a144fac3c10a2664f2b7c53e665d5bc51cecf8e83cd3d9b0ce24c009dca6fc29e24eb398a8e6b6a8c0ca10c7ba0c9a6dcf58cf99ab8c77d2885043391dd6089db9b59a0259dff9e514911ad0a5f5d98212d1650740def7865eb03b848001ae1c3f83a1097f2330c43814438ec667a48d0506404c6797cb1df86365ac80febdbd2d051059872bb480a40b32ab048077457d7b72f0be4f9b0ec1957dc35ad92f0f4e9e7c26f3dc771b98f5108b94dbd0bc643995d326520fdc720847367dd72317fabdbcf1c8f8ebbb4c801c07ab6e00ccc921850a8187f3fab209c8a8b62fd83afe9dc46a2186fe917f18b28bc5bed973a218eb970832629851e9dc255f53a3686aa86acc3befca48b25e02c74abecccc385e7c2ab8ba0c10d4deb33daad75d5db305d2b3c8f1ad31884fdaa0ad1ee62fa28afb6a52d910d1eb1974ebea94e698132152c8a41d192e70397788f1a6d9eccbbb255cd4c90fe282da8a9f0e050a4ef74f4470a8810c61be13234e5e0084fede175bc9709bac1652d11fb1acaba92c5f7594df46ca0c8e951c65b20925fd3ef002bc59266cee3d4da9b658c1244c7403e72d5e5beda4c48f7855da02f770feaf2739876141906278b4cbbe18922bd60fe98bcfb5e2f4d0f2d95f2ffb9dc7e808acf6eec2ee39432804c9aa882ee3f61c41b3bde6abf5cad53362d5aca37fe31db1ba5833aea373f34a27f1c502873f09546da1df847e2341002689822001921faa7e27361a40999700b9e0f06be1e4f2c93c9d9fb3e05b9c196fac7242dcb08bba09f0da2c11a9692589247b10165292a1da37f6e38b1e9e7245b06f50b5b751f4c114c6490b8e6ded368795c08aaf43f300b57ef570803f6e223c7d91d9f1ab379b53776c1b98f067860d4751a1b00751a037fe7a7ac733d16138f79f98ad2a3dce709b735b18a7011724fe04ec0b0e7bbac29fc1632bc82fbfb2c1c97cd4c3797fc13ed5ee62f10a4ff4b7a07d845879a984562232dd4ac31932e1404461c0f984495fbd672277ae5c13b6ba77b126b48da70bcf3009ce1e38aa320fb3cafa422e5b87abe80aa1151e16dbecef5815257005f0727c9e0e04a86e60223da47ac49b94f1abf5f69a6d8b5ac82c28c5e735d2eb68a6a0f11abd2d36befdd27a5f0ece11e6c29a0355d74c7434e91606c31a1bc1c3ba891732d289c24b7ccb3e3b55c27d93290a5fdcf2867357ddd673ab364e0cd2be35685cb74e4bf4f087b56d973279486a8bbae2dfcccdda80c079cd3471d1ccd4e04572a406be136b6d468ef5539d661f93a34fdd2722e8f483b89ce7793aed5499eb6855004040f443e1e3217b5d376004007848d51fefba920d951688614078b955f03eb8e55bebfeec4f381c4e475069e278cfc56a44e08670ea05cb899bc09a94af99a4c47ca135b09ec6f101085f26178bbd602b94aacbd4ed273f0ddfe2b0f68e834c5ba4a24f9b000554fa6ddd3cbae1a9cdc1ad8ea18ea95e098d410eaf12bd6a2b50c3b4fdd7da10b1a57340ebc8a1035352a05df503715a8e0b1620279be2c9acf709944e07c91a8849f67edbaf15e466610ee98250d73a9ef6cbbccd30418aef6599b761a7d99b6c6b650d7090bc14b84880069df034678a3047f05e71732011fb1dbbce6906e1125f1136e79383c77e8c9845b4b5a4d04bf453e06095624f4e17c40b73d8d9628119f8eb518edce00ee69126e9c6294cd37a8298b17a5cabab35718dcfa42b636dc7c06c42ccf37c695aa03ef4978e3b061b24321342cc31ef61f4c11fcbd6ecdd84a83247e2e6e92d008eaa07692fb471bffe6b8babd277a04a508eecfb10c33e25412bc24b3a0d4e0e0019c21825bb9326e96072dbf9fa8e07f9a8cd5ca9f118c11388fcb83d0250816b74bd4963420f0b7ea86b3b48f8b4d09f01ce4027dd14656855fb2d53273f2d0dfaf18fa2e8f40214ac750f108b8f658fbdc4033c2ae67e713b5ef6160550305f22b1314a280a743245fd235275545fa1b0b55004b4439cdda3d74d2798b4e1afb3c56c288b5b1d247ac7e790b4ebd813c910696284d248db5e2cd261fa3c51e7566939d583feb4733f715fadabec717049442974ff74793adf05c74e3e395d748dd6219d6c0c7e3d295d4dd606b8bc94d1afeb37fbeed3f7d422c41481fdaa6e02fb0fca918f98727bf203df2f0d4946e922b223aa2f4837bfd41b03a9dd4101e9d3d7a539e44edf1ee090db23ccf7cafe9ed487225bc737c883c21d4bf3223ff7f614607912b51134b60346604a978b022c1919dba590bab3e2881cc2374f06ea4972576c6c921731630b26acb8af8c39cdab0f689118cb4946e5881c2168426f0f7bb1633df10c9cc38d6ef73d49a44ecead4ad7295e57ee7527e9f7229913087bd22d5635200b437b2bb458fe08b1bfc78b37cd61ba40c1f7d1a852d2191720898d2a5d427a0d032351e7b83195d58354cb79cbebc3cd469b227652cd67cdf59e4e45b0111783c04ef7384c302e0ef4870bdf89f4f2714d5b57133afa010d5101d7ef325e73fba104757e3f29bc3e6deef6388ef5e354647e59a425c1815fe24e5fa60330165423aa1f54376414bef4a00c8232b15ee4f514e5a10f360faa6c3f51ba8da04877caa2802ea51d2565031ed772b4a685c0cc6fbc74556e8505d07e9a9231f760a7682aabbfc65d3cf6641b106a87cc127283290529d514247a2464c2311ecdf2842c732c8eda86be2443c12dae90452e1fb63d74b7df3af7728950b8f276183aa11e76516ef7e9922f2e0c38a6b2fbb3747ddbfc534aa90f4cf8af025eeb9d8ecfd961aaa6d60a01daebca6c0be2d10b2102e4546ed005c0ab06bb2f8f891f5adc4e40a5eeda543b8954b07e050ccd51fde5813f6ed81c6746c0e46b45bea84175948b15ba1abf40ea6f7b591c37f0ab5b0cd2b3f8d79e10c82eb6bb42dfb62b64246650f43bf989eb60f6a25b2c77df3975194a15b84055669e270f21d92ec11f23b23ff361364e3d06cca06b3cb03974a041930b2734e778c73cfe0985d0846d0836fc656cbf763e5899307735db840017786e0199c691d319ba3da757f40e70207561a9144a10c2432c73914f7b4557ea39ac2b96f906d061e5dd545142719015fd2301887efb65160eab42ceff5a783f8e26467367ca0ff755ec3d48827984a345e276b59e35bfd73991e7302f7003a91ed9c6d7b524b0d7319d0e4f916e24d1ab3147ee954e3fb959b0fc63e8e40d541f4b3706407df0a75f418389dd38c73ea14f5fa64e26a7a9c898e2bcfb232132d35f4f2d9f641fefc7329ca4ad67e853ee32ed1533e0e2cc1c0bd272b0687ce96e494799687b7ad4e119a4011407ece200a203b3482a2ec6db72a9089ddd0d1482c060444857302526894233d22effe5d304f241e79e7c85d615e2bfc5c9202567bb18f2ac6f8530a1fbc9c1a19821f7834453565d81262360d93a6c3cd218384ee4ca5438c3161d9f43116487a4ba258ca3eecbd41486bbd299bf47d79749e5b4ea2ebf91e3c3899eee3bb17101a1c22c634f54119a055d05383e4d8c730a4de7d45c9f93ee3a961e0465b4950b6b98a12295cfdca91e1aebc0d5bdc03c8e9fba06f4470ac2c2eb3d5d8432d27ab33b02bb0140ec6990da25144213703f43773f51772b0e1c6ce696f1dbe2b0ec0ca057f0e04b48847a3c8be108c0ed3b8526cdcab502c0d156b8939a8606d272ecb8ae0f5db369ac5d9c6716da296445c6708479ae5dea154dc61b5621d1631e678bb8893b7bb1d1a9eca7b454a92791cb81598805b5e01c51d244ddbddbe7d3a8c1ade5e8c9b1372c4ab4c4c0e1dbf00d904e807f8297439346722984b5b1df9c77e4ceeb083b758dd74c2a327ecda95ab08d9e6ed855a0a1de569f0d75a8b56a7092ea39a364c29dba11386106178e80ee73e9eed84ffdf1fdb9d5e1f90e17c6c6df089dfb65ff034f385824de52f5f0437d10c0e569821c8ca5240274c85b0495add439dd1501a114af36e318d0595626141fc65bcfc2fe8c215224e7259ad45f67087273b76390a02716b9736ec8541981b2f94108f453f59ffd7de422ecac7b0322e1667093c37b1ea82588758eb54c0d4639b82c944ed558347eadb50657c38f6466958b9a847df8ea454f58f76ffcf1fcc40d2efbf7016f6293da9919d1515c10086d6bbb8eb2b653d41579597e44a04d4a774d4ffd19eb13bd5190b5c00a0164158d687e02965635d52f0394726644b80b27b9cd6f9053b2f10bf045798ba004b15c51561c7e74322b37c2fe5247c8b8775823a1687772e29540ea7992e04961e2d688e08b35d5330faffa09dd1a7dadf48ac74b4ca4f5b1250e4fb09a8cab7977a4086eadcb4f5ca7171abb214c87ae0e0e9717f6c15436cbfa13390b2e8d711472a3af710d2e66adf4992c31c8093b2736ad46d2c790d66f90aef6d6d73c3d78f674a5260537e97b5249992a34107eed19de9c8cf4240980f866a25da6d0dd99b7dfd78480f6ef279649e3ff02c2b9e1085195c23f5047053574e7c4abc8a28e58f2768d83343a0cd65b8b247867aff10d25e2e4a2bb1adb4c4cbee5b7792c7fe7f86e47f42bea3c9e2afee28e93cc455010a170dcc88752c7abfb4090c127f036e7ce47283c3ceaa1f3a93788cd22c7449284af23f66654ac754b3dfb7aa03efc2c4f7c67ce876e36588e022884ca1df13008cfeed1e1a3789e572abdfb1626646837ae30ab0fec73188b838e28fc066e2a2171b5a0285df8f474b39b3dc6bc966f01d2b4e64e637164e0270a5aa97f88d43c118a5e091afa4c9f472198de3baa20dd4ff4e82bb2e5be47ce51b67f0fe7c6bd7f69bd25a464005ef8b99c7085d31950859470752310520002a2028296567a69200f72015bfc6cc6d67eaf5b0713b7ca0895240e23f3759a087c236b63758fd5a1ca254710658b81e139e3d4a57e3c54d356ca6109268ce9d1766f782321e5868f567397c44b0019bc615fbc3b0c8fb3309fe836c34b306b2fdbf36487553d578a5090492ffa513a2326735303af5da9dd5a98e92e0f5fbe2250062b9a177ebbe5e1fb38fb981e849c64f0c2b70e69e17a2f419040a5e4c502bf48a014d28c17760ce6f5b8be987d891890d09b0e7f46b77d638e6e130aab16299e340ca3f645f6d018916faee0fa1321ebb25234edc8616a6d511394e354dd18062a62b1a62e595e919d04d1afa96fea87e7680e30ddfd60bb06362cc5543710b7dfebb666f3635368cafb2f14c222532e4de0d0b175dd8774f8d94744cc5afb5fddfa0f637e86580aaa91f2afdbdf59924fda61c9b182e913014a51131b846a8ba25158a79ff86e8b1d922883c0a9159b959a8a36285f511ad327003965a39b14bcfb1a8f0d9e58b656e57a53a274c2b2df43facdd174e97108eddb46e0bd32d1340020559951f07e20097f25f3a29ff342612b95cd307ae706e7af6667cc380f38a2d8ad6625cd1afd644f24e64db518dff42555db236c9a7e927e265f93a331445f1c85caf4179abf87a96c3356117250ac94ad67316e73993745d118cac12bd25fc649582e8db5b48aec77d5f7ef5625d34db6be79072f6687d93582f17c385e60566b68d3048c75b77b0eb0eb8890c4dca11e8bd9a3193be17dbc5d97f064da3e42c75f47722cd285a04e029ec8bfe58323f574a071cfd0b7d9af2007ecaa2d35e467709b1a04b4cd0733120d12ce4105c4830fe69c4740e9a8d3455469a9e52577636c4fbb49abe43d16e3cf16cf1d3c894ff02dfec9c1b68362adf9d0e2f3d8dd5b4d2fe2fb288b63b0f10921a64448a34cb8d79797cff0c00a1b2fbb88999cfd6d17c756a9910d2da737e61457efb573a31ad5af3335754c41b0886874ca4a6804c730b6c9cf69d6cd479f45da2cedbda9206276f134d690c2e29b6d8b68f565cecfd5124e8222c0d12e3af829cca6e891ea9d1222485f248d7e9284c26d32d12551843830c7dd47efd665fbf279c6234a2ef0435217dd4c597a02eb4994250863663870d59835902943fd768ada2991a5cb517b9206b5b1ba504fd925e7b56d2dce53e81d2533d6caa53bdada9ae497babe39c96ded9dc899e149fc5de1484fd074d23adeabcb6969672f97da0a1d0a590499e99c6a1cea55cff03ba87b09113d1ec4c5210fd24cafa12473bdb5809ad918abe2a086dc599c3043ba44dda455df6caad8200cffbed435819bb73844df08f90df1e88ac9373ecf01e6ca5f7797c8ef250b064c5da997480a355cfb4d5430772b6537726f8944db6f7a02f9e2137043d4c2fffc2438e0231d4009ae6a7cb7785cd08c3f11b7a7577f23dc5d5521506efc731063e0399b0fd9cdb0524fa1f6219b96681ac921ff008371c2c59e3a7d9444faeec8c078d2e90fd7b8b89ae04f428b262ca501f26c5fbcbe4faf14268a776fe22dbfd88b9f5be11bd5ab55bf4028ff80765cf2e2b16e88b486b47ab6920e09a864c8ad26a89b28d557a3b55ccb3686cc884fda31fce51adc2bbcb58a32bf686602e5c79e60a2dab9bd31f84e54df995f25d7100066dbd450ac13d46967b4dffc3efb8a1bc3cf84634ffdad3b3a3039f64c3e2cf98eac7a76ea9848e78bce0384f5a2fb2e9e239ad3639656f7866bc08a33a4212e3a59e64c2166bb5bbfa9f0af03b269f61cc9e3cccae8f78075dbfab986e881ea5a3490b08addf16a126c634340ed9ae5b96c7af8f0a3d210a0bc6cf04c8b0e482f6b64ce5efc392b9e1ee0be84f1e107034e15976ea1b617e31b88616523870782e7a97757c6a8a93f2e1631e1ac181949f919ed9973523accba8dd26d9bcbc59cece7097a20ec5f88398e6a43fb8d013f23d16a9699b958faea8895eef7e22d5670aab95617074d38515b837723ac7ef20c54641dba3a88f8a68eb3e00fed851449a85a2b263de324f98e17066d1aac7df3c117f4f3eb025b2d858835bc107b8bca98f2adb2c4fae0971c80bfa6ab8c74d3fdc5d979e756655f6438684c86911be5bebb7beb137e6cf38a0b497443e836256fe31b6eabe2ca8d7a2b144647b9b6b5336b5a577f2dd647bdda96f161d96f9dcc7698cad0979e908e836ed57ae70f1a5ffa3062641c5424cb68b0d0bd810c7c042afda377f35cc502e19d7521494f51494aabf64789715a4ab18548a0bc751d64dee0921eaf495f840783ecb444da9f0b6ed066e9bbcf260f11ff05a0215fdd81f5aa3069a3d5c933619285b82b1375b5545adef897026aa333d0e57cb4938fa6dcd5d5282edf0fc4a64260019ded1242a7919f7d320f8673feeb31349e5accf11446b6b3f99cc05ca11b8ad0f5c0663abbd188850c3f745f958c3b77fbebf22760dc3f4e3e3ba20c19a6119f4494422cdc61b65cbe95a56913de694d9645c398eb2265c7d08ea231e5d9fb5200bba7aed2552c095419fc4a8bed99229032eda98fd373a28d2f4c2f99528bcd3e1f300687cefce8c3664e3ffac1e48f5a3b64ac7e93f0ede7c67444db772261b5f80815e7820ae662d97661230431e8fcab3952dad40247447da01fc42983b822cd5520174c40070ac9e23f137aeb5934f446bb037de9bf05c89c45f0268abbec383740814438c8d5a8325660ba3ae8a248cc2906a82b6503bfa255ca3fcb4d7096c72610166c239fb22bb595f6f05c418c5f120c24f4b620b5af79a345eff8a416923472818e51532249fb6b64525b61d7ab2142ebc133b071401ca862f44232542f160ac4cd799524d906bbfd6baf2a2816584bd82e779d2a579d60607e311b1b781918acabbcf52b9eaca6df299dca2628a3b6dbd05ceb7a5f0e70b286cc40c280a5f71124d87cacdc5aa26ad79e3c16769d4a13e2dd625bc71caea54d3d748d5c5d1365542cac1f1b0d554dc38570582df4a726ce14d5e92220d1a39943cbb9bcc0225a2bee8930dd731bb1e30928de50df2afedb5eb556f58df12959d600b27ad6f8cbe87ed169db3ba00c640d7f40e345adb7a8fa0a1cd8048f1670288fe1930c516028af409b2642b0547b8ed872588e75e79c5a79b9291bb3339d77c171539d8913d88189847170de69499cea625e22f733ab17f543db14a84ee84791f26ded50587f84664eb75ffedab288f0a74e06f1215714ce009861fccb34082970743af27f59177a74fa22c760e2b5267785f6369fe539a692d7bda918c347be0275269923e6eaeb1707edf88707e4c78fc43f9ca8ba0d04dcd88edba061c9629dd09b5ac8f8d04bb407a5be737f21da4aa22a098591aa11325d19f9be6003baa91f19a2bf7139d1d79f0ad55f7eeb458dfcf2fac522ac0f0a6970f66259ca81615713d50a0392ce300d5aad1f2a6d1457e18c091da6dc0474e29f17a5f115efb757426eaabf1d5d5520ff11a20cd67b9257eba9b8dd30d4817df399954831d95f229ad45fa876a671581d7f29afc332fb009b0f81848ffe75b4e4d7d23e9dbba61fa923da3a3668c69d13349ad03f480c1533c0dc7d5078aee3de7376f3277172a0e81a9d9e3e5f6daf5e24417afe1563e70e3f13acceeb90519c00e81a0492f8d76bfaeff815255ab5083d6d1589ce3e760c56b4d1ec5bac9aaabd768fc7135dab260facc83b7005f1be06013bf679c1eaa03d51c82acb8f036ab306db62e501216f8d5079b3a4626ee1575b329b64de96b421bee983e7ae53dcad3dfd28a88c792a7955075e5091001908408dd8932e11e9b0a9f9235298768f201ff0cadf34080b5d16b8a9d9ea2270ecde79813b4a000887a2ac9b9c270c40c208cfaf3396f0f42cd8ee60f1cc4fa89f1188f4dcead180e82d848b1dc73fc1d0017e810676cc3e04514733f3b36ec4f7dd944c5bb240bc1ea22c65db9e3c7d29d4d6905e7e6967c6924453091ac47ff965dbbf2881d709aa721f2726f25a7a14c7a0a96830b54762d91d67b0da06eb2439e127f67135f1d6265f23fd6ce463e0a8bac11990f325fbcee3b63534b1fc1e9fbc69cce96a8421233cc6d705fdd5f7fccb2425491d98820609c21aff2e86fa55e6dad7acf1ad872567678483d16692dee3549dcfdd96c2ed3eb5f958c2294333dd5977396bf0f07f5fabbe1d5c34ed36f61666ad98b64987dd49aa687ad20fd885b1de6ac11412d3f30cecd413312e18fa3d280c70820c34b07c5f65728e0098cc870ebbda140481e322590358f721a76819a2400f4fd84c2129f6f3b32edef9b9fe78616857f1916a3ab642633759a39d3a053a492bea476334be0149410742cc787ab27bdf9364b5281566af89fe916d557f1757ac6acb17e2afa97b8d1a981d850c2a34e0546003dbaf909a06fd760ce911daea3c85f3bc41eeddaa74c37b0f803aa5a91f95e36807b5813d1fc8de5eb2389df2a9a379294f542cfa1d3b669133efcad7289583a839c5833ed0b40077736740ed0699f49219171ddb572d84dc9cc6cc7c1a331c4e6f86f068bc19ea306eb69713c85197c6bf34f331695cde24486fad425d74648910254f09a452326483a2f3a84b952ae585a73c04c76890d6a38447549ad85074da28990815a990098d3815aa0acb9fd379b7d78f852431d928148552e898accd3bb080956f6cca066f92b469d6269e5d9aaa20ba82308c90bd0f9a97eb82a30b953c143c803f398fcd19e2b449f236063f71109bec9d9c23f48c85684f57997f1df7e61baaefcc2609e923d65fea8738c3e2bf31864292adb20d0b2f3ef6e705bccfe0aef8d9277d422676b18bbf3c4b6cafbf673ccc967575ddf860b9b34b579851a948acef332f35e65dcae0876d52d6ed561d51f99b8067759c07592d1bac559db3d7361c3aabf1eb175132b1d675bbfc0e1014ca87ec1114287c43a128df5c48e05df799119465f5523ed89e4cb6344bac2a8b04164ef287ef4aeb24db90911d01b84b124dc08fa85e8748d5976e7d4aaff39bd694bb30044a7492597464aa7221097b072c367c461edf1b7a18b08ee1abbbc5ae13c206d5f8ee2e3e78f21fb51c07d27f1a40b2a769703b12f3c13e43eadc5431729d515a91f3a1e7893ee7d8c52c916d03c418c5a888b26277c66e003754227156195d6f341d8d743d07514e5c4e1109c5d08711763ac2246cc1a77a80882b6cc4935c5134d18486f693329362dd1958f2f54ee35663290cccecb38a248ad68fc88f632ad7d9a2c396187a3edc69c97dcd11272236de739cd3577e6bab7255378928e319dd16b6afacb4feaa1489119dd63ba406efa4e102bf4769733aaebaebe1f2be42f0e08aeb5e0e6a4b69800fc3f967de8615dfed3825e8fa9a38bafa3ac43b8c82b1159dce489e0f998c7c4c435e5d1fb1c6aa07de88b1dcc905d2371cc2df01571475f86571fb153357015dc68f0413fb299bf9135be242ac569f3d26f09e931ef6776f7e0f6a1287b4550fb1fb0e25ed32290e704e45d0ec830f858fe6fe90fd5ef3af3d0f3a066e8bd9e3ed6722916053c19c6e632df6254fd9e7c541896bd9469767e9b43f5ff28ec2a07491eb2c99f8345edaa6b79620d8d9b32dfe9c4591e81781141650ea0e0e535481ae59ca7e185d4164f1dd50119c6c9d1c67a847f65159d66aff80ed3a54ba39a6b5a743ffc16d18ddefcd0c7ebb98a428c7d03ea008f2247bb632f9f527b00d5fb9110b5b8b3a2f50e212919e4fb22f92c2687072779a5ceeedde106a0c64730e00a759a3bb3dfb7d94f3d49228b50dcc2f94624cd7cf6841155ed6719a400d0ec3e21ac92eb5862ca14c80a077f23e0a6aaf3c9aa6f38b908cb7a21f907e3ec2ff1d35d4eade683eb79cabef685e41d371b49e485311279f833033ea4bda67114d83f36e5a6bbeedd83c2c25b4a865e51b608048ec16cb390e98a16e7d63ef680fc6085596ae8b1f505a93e59976fcd534682097ec2c64955397c89f60134437b454aa06d2ee83ea70b3a4180882bcb65855dfdd7cef60f26d13d6ce6efea07c1f99f0fcfc4bd97653de3e1a103f84c82dfd74c4cb5c4705050c7afb9b5915a0ce931997dc4b429fc8df1475bde7db8bc60793b2fc46d41b305feb6c881f3ae998e75d1abb7f4452802d392eab1f61d94e14ee46552369e3b4ff16d440860b82df522b461876401bb955f3fb81381817d2042ae1703d525ce4c6961926c446dac67655f256504a4b12a7c683aaa491bf3601de0a02523f38901742c670c5dd7850526cf3cc5113e3b444b6a051e3975633fa28f709333f2e8152266db4cbad51a60e3ceaa87f441bead01039ce46f1c30fa614904de0b1e4181b39628932e2079cf871d9b02bf24f034c089c55f256e92b633a973457990ffcc86094805780970900464497db7241bb0def71b1b22e75e27db6a0ac170f2e023d4b4dd6623fc2b9839e261dadd396bc5b7be2fcb31b6debcf12f717790a012935eac26fc5be7912bcb096a61fa67841a974af74bc03618cc31ba2adec6a860d83e8c2659e18d32548b75e03beccc1b2ac50a128aa33908b53ba75cd5f50d0ca3bdc04ba07a4151ac825c1a42f46a5c8333f363ddef9e4272a5a6f2533e6b4fd5a8599d558d1e8af9ad6abfeba98961f2c43bbf0442e22cac125ce380626f5eda70c52d35e293eaf6e6feecb4188ed52b7214358b672d5763401e7766b65cdd60b8c96f088b58ffa2291a1013ed0d0028273f0594832d14addb0716b0e2405c88fb961e57e4acc72d36f744a5b11f98291231e994f48cbc6c6500a8e3aedab0c104ba684df0a880f19958be09512d60ed407e36a13634a2a2bf5e8d044ed629924b26f6a487d8d48c40f5ce92040f9dd5b5ab238454b60b5f5e8ad5ce9059951bdcb755ec55a1bffce3ab70ad9b72c4b40835a4b2cab4174ab01474efeb74980c65278059ecc381302e9ace5c51509aae669a74a5c8c25d94850b2c2285d976e4c73d136d5239cca95c01ba96cef5061bf9f7db3253e75f4db56a625bbbe63e2bba487f4454c6da4888cb0d17c9464a38ab11ad6474b5563808e22344c0cd2a1d4b3c466c8fc449814cdf13f3839ea18f9d5db6a1168e933637d9c1ce411fd521bb295580f2607481376ea31d85e19d607336d8559e77ab4167d80a4dce89065c26a9bd9af97484c37231d03f4d0d6336088c3db567ad396e81fa2daf027556397ef957cc7467d7ef54512ece219d90baea178521703a233be42a55b4bd822285de85672a89f00080651fb059c16100a5748ee31c315936ee3da55dc89bbd50d385f05268d904464ca5415e66a425632e7fc4d55017243790f1cadb9731e2ba656037786eafd6208e692f48b9d3ef487d428e1998ca86e207b8793232f0b51f58466c322d8fdc30bca11d5c98e55bba4b70b8ea86344b70c3311542707c9a22d2466cfb3fa5967e199385eba374f57d674217c0ee4c79b55158ea6323d3b7d56de4b669ebef2b16e3f884c7087bb96c0f271c80065948b32eaa98902b7ce02c69eae0211269b98a136c2ebe5b9253231f6bf36e68179948814a069ab8f3f14436694d701a5406cf0773702721c9cecb9c859c13ce97dfb51d7d1ab543bb31df747e25f25574f4f3a4bd53898e78b22beea54b844dec50794b41e879f79d01b0704287495fa3bf07c3f7e3375a4c2a95366fd7fd374d73adb724b00860f8802b712797077e87077e7e877de2ffb6f57b2eab9a7985cd1a82b60a549fefd7aea985220f8453b1a838045d8f072499665c73db59330fe69186885b5cf005465b06827409f4e113ca86c8c1067a55510b4bcde32d70f9b1ea4524ca17e83f787fb86677d47011a31296de12144fd74cca5ee7edaaa5095941b4f9ee79abef91df509ab982ce3d9a90939ec75005387358b4c45a607a0da44c6b8125dfe310f1d7d53f9fb856439bffad12a2a56a3a567ceca6ae98e7cb5b8d003ead8523413bb5146638b979752b0d4f8d243d2dca9f3970d3b5efccd9f78322bffbbd06a789fb248f5c03394074368eb8640fa83944ee901ac9a59ecdbd0a950ae3b27d612010ae32f8b6b83883ab003b613b16e042b5d92ba056aa0ed909c5b509b66558dd95bfd5a04d6e28f35fb58d078c948b7ae6d62ffcc51a4abfbfdf73bced874c5cf6d4502126b014f22795af520429f272d41fd251ce6a21625feddf60166f42e36752c819a2e4d417e61bfdbb26fc83a634416bf19fdd8b53bc2818b1573e4c6df0f2566c00dd28011da64b617299c479541b8c6fee532d45fd58f85939d1e0428d45fef93161cefe6360aa0af7b40144b644fc76b5a0090f5ba5eaa9f3cfa85a92cca75f4b3f57461649d8ddf1d4a7a27930da6eaf090cee584e0b71adc700d528622484ff32fb0d6acc94b5305b3ac50b59ca5a402d384405795a0e94971ac696df9e9a2e59e5d7af7b09f84fd693a435210e0f89c92302d93e5f1e7fbbe7213658225dae95299eebc50843246d5d5352eb86dc130d78b330fc2242da0495a3a3c1008a2449f9cf79e3c8f52a36257f6cc8671ed9aa2705a3ff54e3ed40657a459c61922199b90d1a821cf0c7a4c9db8e1752a85c7951a6cb8579a02a79a0ae71514dde764c5ca64fc05eb0551bfbe7bef16e59b1f066f1095c8a88d57901d239ae07d3e815cf4cc6cb9c1cce0f608958662ed71bcfc775cd3216bfb50ac052ce107d05da948df65f57927b45293073d402be14a13723b28c3d3ac70a7bf584f91b9ed4bbbbfb7165c4f36beed825762fe79f560f31f0bad585f3e22de4c2e61dfe7c84bedb873e8024d3415d5636dfc82b82cc810dcf8c3d80d23860b2f12312e62091ea75d657f1ac881ea1bcc20ec8550ea2a24a1ee74629a80e682193ced79036b44dd3b1038af6ec246f2b3292f83c98d9fc4c991c01c8b158f0ced628e0c228caaf6ace2f4bc34785b18abebf02a9256367d2eec7270c98b32b0c0f66b3b856ba382136f1b120351d1bf56373a8d4b8b3643c902f1a2ec042f002cb50b89f672fe2cb147fa0cc700a95cc823caa0cb034ee2b2ac8d0c2c60803c4b426f1f517a3aedd28d7278ecf3f1c880fc90f8ec49437f4cd7de02a5778740191f0e1eec446fecf19c5d2986bfb9b979be906cc517607e741a61cb0141af07c146e9908ab31a5fc198635bdf8ffc6d68f398a13de9b7b159e00d7525e34a31f4f5d3f2e4f025cc9b8e28e545e8f71400d8992448929b50209b45bb26164125597c242d9957748ae0368e3900538409ef38555a2cfa8bb82f51236c33191111bf7ecf3b255b776354cfc908ce5b67ce13b55dc150dbb3dff35c4bd30f4967c7f7fc87b54d04f2f4544f3c8550ddd7683a7691086d9885ba2035fc2268b574efa43056770781ce310100cb4f0200f71f7be0bf4842dbf32583c2062dd142b99954444e4ccc991c88667383c3f6cb26a23981bb77e89cadc00f921dc21692c17a97090146d90886c6adcd64420a72ed7ba1188778642f96808b91817ad58a7d146bdfaac548e6ca09303e343e379c441af08efd1fe6ec0bff7afde43ed296ba52a015be94e3affc8eafbea37aa6f35ce11c9466acf3b3b8b6dd8dbe5de3b17de75bee987c3ac77c0b9bcff996025739be8904958527dc7c14534eeaefd7dbd6a5c684c0013654c6621d3a8aeb2216e2b47b99164e2d1b350061a5055abdfe445bf445bfb8798393823d2f04cb0895eaa82042e0999ef2237144c2dbfa21a790c707c0bd908d049ffef722204236a6f5532959a05003d94d0836189a84585d176939ddf171d93dcf88b9c74f0cae848974dfa3d954e2f2ec80c314d68cae915f052f378d3995940ce10bf1f4a3dc3f2dd9a3f803945e8dc835d67666971d8d6d92145ce0173e15018e976473d5661247c6583f2b69b928980bf585a6af192e74f46e7037e109c758f823bfd2038fad4b362c8b60c433daaf2f2a61acf661ee2f6bedde2a30013a8291b3ea8a14403fe3a6c56ec31432ea47af5ec15f742dc2295494228cbf2ddbb613262fd76e25fd73fb83a13e5badeff96e7b580ae20df5898d033e86ecc378aead6569362fe5a211a25c3f964cec72d491009e1ad29639708f93e3aa30ddd21f8ab3bad1971c0c415e597fbc312264df7df17d0dc37428bb874f12a73c0bcd36cbcbf315a1da0337b4860fbd6f167a14de0d5a712037054befa39a165a75d87d4c59763c109d9e9ef701c475eec5f2543995879c93d005a6e1316c8e4ee4d0205d759df121487c861e98d004295f688100609a9f01e890e5a303008057838a1240094ed68b67346f1e056b9e347b3a89de95069c47527cc9ce897cdda674c51dc53b66b8f20b4120a3588ae2a91e173d0df24ec22f700fd7692d0ede170a3e8dc3aafb4cd505968fa34bd3a53535a6238f5ae0c409b7ee4228875a3d654acaa285956a10eaacd7cd35939581c6908cd8a198efbd9e002f61fcdc184cc7f4d90cf4a2a98d0a80a49e5a0f4663af867d11422ad0148fb1bed3dc7fe779ce0c729a2e12b3e0889cabdad95513fec6b5bbd58b96e09f761981ea3dc1d1f0b8f30e8079d22f3f2598368cc0c036bc4ad7026bf3e451d9eec4b085fff25a2c0941b9f75ba92715c5633cf6237f335b1d5f60a717c49dccc017008fa41f620b96a97cfbb9c7b5b2b7f9b7bd5d4c78ca2a8f25d7666f2413185315c0b8b94508088f3eaa82eea2cf47e09b26b3cc0b6473708103fef247b2997d6d8b4f9fe8c153e4e73720a0639c50a24be8dec5ba0cd25894bcbb6955daacc350895e9f9a83d0f6d0147598194fb934127debf5bce6c5e32b549aa367614896db2388a5d3d083bb7e4d9bbc0a7ed71c60c711774c539db6d0740e564ee183bb491e106188dbd09a92568570e8190db04a282ea8527fb6228d1045b6d01896fd32523a920511f30dafb4001ac5bbf29e38f05db25f146e3d8670cb5a5ed394eed8a3efb193cb08e3cb5775ece29de4537b8e58849f4340656cb7c82a99b43a24b65bc5e11e356aefb94630fc4201a9b68d628a0306b1e89a79f888c56bb2139ae84aaa5475da35c7b6081da86738a139837b2c597ff81e5b6f72d112d1450109ac3043983b56c456864a3a5750316205915d02daf7b84632278a6157632ffd515a89b465b515d27df5503ddd865a34ef562500ecf769945b421a370e2b4dbd8cb1a9a3e935b48191613bb15c1bbc773afd887dc81da827ada3ac6450765530420ee20ad8b4a977d0382da8217a3bec714a948fab92e310bdaee644faec294c6832bf064d976fafe08f4ceded23dd742f0e14ba8b5da4f2d0925032294ab058c0dde8129377667a3563ac84a392ca1510b1d463ce7a8f518238504234ace82b9518b0a468aae323e4a571201d102a334ba9de88bb8a5fa17a2a5a21ae27cb3319872da56376501661eeb5856d645b95c90c7480fc37e5d4cdf3cafab01b6fd08d6f6b6ac45d158883e6e38c7b4c1a272dcf4d649943440e830d9a4e62dcf9d87ca0de0396cc61c1dd3fceef012ec70b9e44be4ce740b30106bc0c606784acf6c833d313fc29ba6114105e5912aebd85bb9b241604fd1ba3d528de1e721af2931fe2ba1453677b71d8e485217dc0e11fccf56ca6770a2fe618b36625a68f91acce32300caeae87c7a45db5e2a96b51c62adfa02c41ba7cae180075b8e56fac3501c2b589c5a834b32da15564ab9ac0aeab18a61c0a731883041a29a2208d3050ca8f1350ca25a69ba100175d80f82477b14753dc7580d036d5c32391d3403b5fd39aaf1c14bd97fdcc883e2e36411e9683f9984f446e8b39f79341a8fd81c63a958db96b6211aba6c12bbf3a061fdb67a674af025fb51f313f9a89cd05d9da2e752ea50751c8b993f69679a0dbb4a58f47821751c4b4852bfce3a316d6d218a0b02d8094f7119b2f871b748e1c48e527f880660479a7e4704e611796a8978133d13f054ad221e051aa37a9eacd126dc32cf2d0d09437eed3a4a4e6c4b7deda960000bd272ad6c9a41aec5ec1a4d08180f4d1b1cf9292c1c1024140dd0b2d14368978a6d713239b6edd6c345042bf6123575995f5212cb2618920c78b1c6b5030974acb8a2ab856c8d46b541cbce46c3be5c5c2de00a8e771dd76d5d4e0dd265633a29dc2194d3a713e2dc335826f5035697a9904e52f665163624e8a7b133fb6e1a5b9b9b35b0e53dfb81b0e7f83b709a5cf7cbc128c36b6bd4a31dcd86671a2fc6885ef099ae8df4e80ca3bbd252b9d08818a9596ca2237a0c7d9094384af7dc7e6059b33c325901703581d55714d4c1db41eff91ad4579956dc653ee5552d9ff7438fb851e605447d4a5d88b94f446cf54626747d4b43125c18961fcf23547524245fcadd52b94ea91b48225758215eb6cd99cbf1bf33236208adcbb62d06d28964753abb62a12888082fc1718d8be7f3335845192f6b32f548a4a9bede37450a3de521d7b8194feee9f6b88e8fe262e93f40b93bff2d10a6eae5f6fa02dc90c7f8e35de2c2c6f0b99114b62a6d66ee82c320af77b0c6035dea9a6614f668655df1ac340d29fdfa26e9c0b5164d5e6098d3b04241195cf0cd9c117df04160cc768e0bf398f6a234469b4190446d1e0da384f6ccd686976c6e6c3f45875315666b1f090354aaedc917d33d004795aaa087538ae8b2a1f353f2a9b402ce7bdfbdf33b8bbb22f4ab0751db41e4bbc3826c218d9c2185eb0c3520479a8d86d13b00c57799e9b586d5589a820daf3bf2c79f118ad4e754bf610dd046334d22102e85325c061033e7f092b8befad31909fddfada014e562707e26f7407c03d88fab0b54435cd747bc2daffda9fe98239fda054e397db73cc837859c7cdf70f38e70e4a7285d0f14b1c6ec26f955962ce9a4a63fc3dd325089a211fc39cca3b4494f9e6a59b2040b3f30d6d073f2ba8b2bcf432ca8f68291cbdc03052436903f951e63663f9c8af86fc032bc42ba66d20bc7281779ea60e83183d19a0b9c2e99720bc7e8970167e08ad770a45bf5f85707a0e60b7f6286b86a0bf627765f14780d12fbfa20876f512e43e31972712fd45df80f22391d20fb084c06f731daa16a76f94e0f9968f731b45ecead64c399ca26e02dd058910f4f0796118ebb00e0fef85e2739e26f8da160a4f827f12405f2a7b55a3b14edd90797efc492ab87926ae24feed1d9e862fb61e1f6d4c9fe19a1e17e9ee362e2c601b9dec5d1a36dc4d947329082c07849170db44641a82d1610d9dbf905795ee00705c3a8f4d6abddbb8b66fe22dcaa1eaeec27791ebce1dd58eb2828631bd5d47e6d6f9c92631dab22a4bbf31265dda8b08e419ed7210fb57642e80f60382768622d8ee531f3b123f88cd89166c45eef0a84a51f2302db22cb238df431384ac30a34cd9cdd918d4ad08cedf638f066c373d618d548662a2bfe6610f765c842373753d2980f47bd46723c2faf0ee5e144fb6125379cbbc90b144867c8d0ed806ac8dd9fd5abe22dd1f1ca61e4e89763a428d096b67a2388bb6f6f40fe7a0697ca3763774f3e8dc626d67cb6d925f4039bdd737fa325d65e7f4e68c45496c4f439ecc9ac98efc91af04e88680bed0fb246f5a6cba163dbf614f49fd344f1f8e818ed253b5d5311c52a879043552b47f8d4f282988e91280eb829ddf185f97947136189075c1a6a892b9ac0953f862dd221eb0a409172df5e20891fc93953c19c4ddfe5956f84eb01b20bdc23706b752d0f731764510a7ba2c98cc0a9e90dd0137225afb3dae3b44fa19d2fd20428861c63f079710ff4d0733e37f959137d724756e405695a7cc10a4968b9831918dd94040a904f1538102c077b91918dc68a5175644cfb21ac74666cf0e6051ad7121d7135745d3e8de26e4eeda9599a0a8be5b27a6cc13f3cfee8ede5950444a0ed57c5f99ac01e8843d52f354aab41df6e66a32f895536779318d93cfcc1e649741acf1a865434dd2f0be945fc8a525aa71f5058267fa186f4c2131b4c19fcc6af13ed0c9f06aa06d1ad2e155ccfc81514436dc298017b35d5667b0f1d425d9af9d254e745af363c40a6e0c9b4c12cccf8a60b98c4831e27e61bb2388265113ce86b8fc17a75a6d22a54763f090022081824e98d3b9d81979e78a12ab9ce3ab79c2caac02e6ac2b0aa4d55311bdaeb313d4b266a9e0a487082afa2108e2ce9b88d285c9aa90505b5afcd7e296c5e2c014b9f59d93e1304f1279de0f7869aa98d363370cd083cd0184e679354439f7112f8f3e032203104941f12cc1d7b1817bc558c0ce571e6067ef570e176221631ab46040e44237555eb891e01c966e2516726a753a3932262c21bdd3223c3296c892d31078fa5f644b214f33fdd446666f58c7f7e5887d65d3846e600ea8e714f995d7a83bca04c6fe7d74617db8d42da4a29c190af2f89849d3fcc12bb70e083ec893abde1624d96bbf0b3a50df88ac4f8227cdfb9c378cc99b8bc2e5cac595997715cfca6a47f3aa895e13ca7dad6a27c9f09d5e930ee83316911a2efdbaf26c801b8266d83cfa4aeca82e44880258725ffa965a9f227a232ecbe0e045c4af991076ff17982bfe9ca40df34b0fced0455223ddad9ca51a587e38655bf29ea7ae61bc76561217fe88dc33f9b0c89506f96f0de2ec920d396d93994feceda4128da3387b7bf336e083fd1b28377033978c5d072350623ae3cef7ec70858a85827f81ba9e186619cc7d3d95987996f0d56f9a814285398192b06dbdfd3469b1bb5e82e2bbd7d1533562e397f049f7ad205a03b79028d069d471dd8c7dc8b7a2f30396ce9dedb8e824be8927af996bc000c7f41af491543a7b81cf3babf28d19a16bc5aa0119f7d1d3da91249ba78aad42ab91a0302f9364fb64e8388d9e6ffce427fd824dac1767e45166bf2b7c67fc2027cf82648f4a3beae758477d51608a39c3396d1ea067c617e530ccd78c78f43eb3dfa85292f558b644ea5b70d5c5c797f16e41b4abe7b75e5d965d484224f3004f33a3d5ff42a53ef8b983e84a016708260120d9bafc72950cead90c0cb477ef66fc35bb102a6d259807c0b7664f1292458aa212f6b5b30cf7f0097c35c917e31887b5b145b99988b4890232a88c660dd6d797532db9d6680f70f51894bdb6eebe7917b1c2c2320e203ed01fe494ac149bd84d76f2534ab19eba36fa8a21a4c055e2b8828a8e0eb72603f1408d8224c34af82cc9a8c8859c1397a8ad8afe9d817509e7c00fce80cc2b8bae85aa883931b49071389debd773454531c31ebe538a10ec7804cfc4fae4d3bfd8ec7893bd23e736692aaa5d11d31de8e5612612a5402ff5a856317ceee0ae2abfb0adf3c807f11104b876febd4de1f610972f75d03dfdf4c9aa7c2d5855ebd1a9c831ae6b646099bcaff8a8be8ce96d6e37a67e79179c4dab78f1e48b52428ad4e0491b34e875174aa04e683927d9d0be4dc7ed78c4242acae6fa31d46ed1d686f2ce2c53badf3f7419f2464c20502a0718279b8ea22c5ca2a1bd9b6d6f6fbb5b9c78b1ef37e147ca24c5da3020b09d96fe08c256e920c90c6df31a8093ae1f060e536e89c6660d4eab4208dbb0d8b1af9d8a9c110d3c2469915ce3800dd8a1b3385a42d853639a1b2132e5812f287cc1d58a30a4a301bd25c1a2aea82d2a7da8ade12156dc83e2e058ebc6b29cef951736bf07b495014c95a19a614442e54d262772a6081824a939c04b01eb4cb9562d90969df547d332eb62fdf4436e68bf71f6c2ed11a9dc8b1dc38df90b11f19ea205a527e78690cff732a361f5cb4425f56bbfd4de7be79eaa8498805737e8bae3c10d81cff19d6045e937324280473101c8881a54d93018454063a5cd01bb51142213e9b12a8c444465d4e6935c6041d29c980a7fea6a139a27a48f7bc9499991225c5b9d15ef492cccc7ac9006fa66d17190644a0f57d015c66f53fb9a9683dedcd6c16bcfb39f17a00f176379c5e99c11dc0b96710fc9427cae249122b278ce3861df40cedc0aa65b675b206b7dd794303b234dd70e26e8688092df9bacc996142988049686903a7e1d044d0908189cf495aa517b7a6054348ee7d99689f7e27e0a17e35272a05abfd8a4f538a737f6caa86564afd0a99049a3051a6fefd421d8c9bf7fa007f9a416a8aa9c4a13203bf60a603f07c3f077fe163363afb1f77c09c1327a0b1cf7f68a7e95c9c4b525ef5865028d4f38855da5625248908bf3f694b48a120436c8340b534615df21a844b433b48c9ac5644bcd1cf11251edaeca4357c5f272c554cc1972d518befbf38296b5feb50fa4ae1e96b183d3fe607853536fac47de3ad2f3c8a57b8bb474596cd82cf400f8f9fe1ec09b12a77924026f604c9eb8969bc66293bbf6288e1286f9a356b2b4651a11da00fc20750bcf1e1fa7028af8a6b59890e047bddb1550eaf467dcfb23515de47c01bc2f3e3fa00fc3b9b2001ea76d0538a42640e738e40a595620511ee47a316b6a3ccb0d4057f5660151603345515a779749d1531284553735fcd49bda57d97ec8f5b8a65165c3eb5399520c83eb93df9c177b92191f68b2bddae390ce9961a29aa8cd508a7f5d79fda5580fff6014a8af17b552cbeb744e6e538f9b72ad0196d33c3500a12a3a67dd7a72a8641f6528aa8e15ff8c807a28ac0a406bb24864aacc4837af68b67e2129910fd621a81bf728cd1c12804d57e67d29e67f2dcebe50765e0b6e5367a225fa664fc8533311f51945f8aeea77e26b8aef1d4d04928fbfa7e5383c03913b2cb830009acfd218d88d1f371ef9ce45836c5da8a89d14d80e708b08e9ade18662393fa131739a418cb13f6cdc9241e1d0ba2361289ebc852cd45ae467b3fe521047b7f2ed6d623e93e8697d27cc1257f784758f53ea54da9b4a93500bda743da8b47bcb88961994ec03bb73e8a988e0862fbc58285fe3da67a2c62004020e8ff474d0a4b2ca35efb2447a18888940307dc4b689b6b16e9c197252087d8e057a6e9608d159f15d9acd68b0955023d1a0c171a15a75fb215ad6fb540f88ca86982e6dc4fe112de7a52b53faad8032599720cfc35598ec7803d2a39be23ba25f65f240b7ecf22292361c85d486567d8faf98f63bf4f3e9eda1505a0f704b09488804c0d4451ad4ab4ab35b1ad29e143f204bc0f906bb04042d98de9294dc7cebe47d451b84a7b7cf8d4f4edbfd35b3a12ad38d9f09fb2b1ff59b80f7bfd04cd73bb71b5d00c8d91d13fb45c6313615dd6808fb932b581895c4a05266f71b6dd8b9cb689edf2f7e088dd3c724b3188ef8dc5ff48ef60dc5b8e350d84c0058179564aa4331e97ebef9892a90288826c8fdcb00346574a9402bc42290e83db3e80103e08604668b86d1971120489b3cbe23245000ad696e018f56151a4ab2549448ead1041ec074005569228372aa157568568a0b80bb0eb81a8100c99ac1303810294afd80ac1c5064ad8a71b8a8e35be1160478ef4418741d69e13be1f089e80f4cd6f97ba95403119d751d019812a1ae84cca8085aeb26f0e9697a1008414bc79a261ca98fc01e735826421fe74af6c1e8a3397eeed3c1d7b6b0461e5a3359c748b03921ae82a4431ca2ee4b0f8472e6f989a5f7a225c44d47bdc5d5f93c202d921f7980338fc86f738239a27083120c2e88e9ad20ac037f36ea16cdd59af9198d76f66eaeb293332deffedd5b8dcaa1bc09bfe4e7d263a0d8e2d06c44b42f7e976c5dbb09fd949943035011320fa711df2b39a4e76116aad75790572ffd47b48f4c6e893054b048f0085dc3f24e9036b8259f91bf0dbcb9161aaee6a7dac82c0bd216c586a1230484237bb183d2fa2be835f0ae665b2ab6487dfe60391a4e2320a93695ef675c81dbc5f31ac5dc0436350defdd9a6248491f56c64633f108c441e7bae7162358054a29f53c8d3aad0c2dcee2f6a809d1df7a9d241b352726eb891c46758cf5fb7e6764ab2e2ced277818a3e1ebeaabbb01e2498e846c2c9a25aba71d680d3d4acc7efe2455efdd5d4ae9c30aa01b1e9101ef4f3bd166a3570868c16896081327146dd78c063acb96035901835cfb36e01bb32b3eb384755b988d7946c8fb28fe79689741f824e15520a0ef060edd3de8664906109acd1899304764a09b5e6d13b05d9e99766bc560f71e426ebb5b33db253a6156b6f15666515243c629f4455f74980b195e4da3c11d185379fc1f64d2464eb4a625d5c74059a7c753455be2f68e2218933d71a0c303002a36ba5c294c50a97659c1f2651b2ca51fe0a4fb9ee925110615bf935082d2d04d14d7efb8a8d23ed04ffd4a032e0ea41cf134a5a9d7cf3dbe839f589aeaebb0b40ecd56da8a5e3407f5b0f3367c360f0d65512b94461ee4828e785289fb1dc6102ba0535517cae97441ca64684a1e484e0da27fd175ac4f8f68cf4d15c648a2ed2a7aec0073ed985ab287bcf010d2f5949db18a90566f0ead74325e202a87c17e418c4ccbdb08b5df8edf011c0498ca00c6391ce870a89c7841bc2c3fbb1b57471e127819b306a3993e31b49513170f1f1d1fe2814fcd478c0e44646939b24194e95289fb96d268a3dcd9dc83ccf242bd338a40093d1f1fdb9cd82602e3a2d5fb3c8a1befab9faa91bc1f37ad713efe983414acfa37c8c79023deb01396005ab52e64790a8eb2f12ac1aa7d39cc613e688ba60406605baf5511e530a4a7a60d370f83bfea4b8a3f1cf495278d9a77aac7e44e073f5ae80f2c67b8658fa59285f41c91cc98af6495924387ad1fe959023f666dc3cf0960303d27673ee3c9aa1b1bba7c2000a333f8f33286313d9574b9cbec767eb0f6d11d0702c347ebb6faf6feee06db67b12ed0721b0431afa44d5e77f3420cac40e73a10cc2757613bf0951d7abd6cf4be315492c65e8d303fe4786532a8990fd72281d197138e59eda4a3f3d4445823e0e91f1af81d08a99bc502f217659d916b40051216f9540a3d7e5215bc2250e37776be06c894d59e1e6a025c3de0b7558593cd7cad003c9dc0f6e3016dcf495c921210cb158d52588888b99204ce0307f71f68db78a60c2a1fa7072d8b868e1226f86d1dfc8625959e989a10b19442d74bf63ca740d07a6437b6f59276dd75d20ca9ef41505452fee7090144bd7dda99ec59446a8ae85fb75e7ab4eccb36332f93377ad2ed03818bbab0b22a5dcfe24aa38b53e24677a27dd00d1835eb6c69a42a9aede349990a4a1fbd13a687b4360375a90610fa9830f788d76d89ee0a98c2b84632d92390b89e0476386131934966291d46f3965de57bd1300e9d0df5034437af462d7a506f8f98cfb5ce32de2cf4b39ede5d5eac395a02b5122040b50d9e6f7a539c8020e2a2887e39bdcd5cb25fa860e170a638816b99d3f622a03637cad35c90d33fd05ee6bfaf6952cff0e28d3d5f2770214a4a5ffb9ca5b62feb3181f1c13f15a46cd7a6a5d7624ef47e0ec39fea64426634b60868460b077662fd9ab39e6d20f02b089b56b18eaca086f42afb142699ddfe5a4ba91fcb47f406b10b3daf05dcec6d501be1cb7a9e7e8877a3c19977ab7111d362680321ad87ba8f198e8de37e3d8b7d7fceda43c6da8cd6bb1b036be4aa729a248e626a90e6fb18bb3e3e72cf2e0c1d106b37d2e712c9623e7a3d03167eb19041bfa2b460b0235378dc58651641fb8779460dc3119f270d88771c5a63dbc36e6c778afba67029ff9d5de6f3c69dc08edfe409a93afb03268209a4129c90a8f8332141a7888ca95ce6fe0249dc1fd4b984914df68020c7430da52080723a4d11e733fa576c73417c4bb90143f4255a6fb1f8814b8f5390a9d9a5cdc1797d4af79bc30d6440ca58b33e727866c6b4be561a361b888d4f844edcf9432861cb98242ac7301941c491fb5494326aa395c64d822a317f8481ffa8f5df41c8817d64ae92bd176f22c6ae986b7a153270f62fd7ee2c0b00281e913eddca47d7608cdb76ef133a4c2c3c2b54b9e9d51d2228bdf84922eea07f51589a2aba116f69cc50e699c8ceda118757f3e67ef7c3fca2651e12ec32a16edbe160e5ddb67870bd2075634fba2d2012beb357882bbd38e08396905131b7160fdffb86beda39322b2139f9602147cc665c01c3cf57c982ce88317459606fb723463305538df827db48308c208053535d7682560a239ca198b3a792ea8a6a2c36a40fc4fb276bd8caae2a63fab88f25a2fe0de96c227b449f4ee323df702bcf4a952dd7c0c7f739a269983a04e6becde41c18bd28dae27ef8b76be8ae7d1b72d1f9c808ce89f27bbcec68c3cb56774dd834c3262ac968fefde6d0a1b1818f95ee581af8fa7cacb0dda3cc2ccd56ac041221acecb7f60b0192920568eb81c674d85592a09ab977370cae4ec4c09ac3fcebb7af4856535dcc07f86c06786014d30441251cc3d61835f2a960d2626f87567458720f87bbc861794b751243943885c76c874da90ee76b1373740c4eb9b319516b178b75b32589dfeef97ad9bd23f58c633b1c89ecf8165ce253d5b421b27ab9ca37a30f9b046506ebac01a4fe8166606047a937ea2891db3da27229ae1a689b2c2feff420990d05eb152a4b29030f28f580764bb2cb99d6bad32988c8ab7ed79ea048403a9afe0c414e28738cd1a2893be878a0ac82dc51052e9b7c605abf10cb2b80c3ba70339b22023d438d50be06a0693dd9bcc4686b00d41142c9266a37262a5a68f010a336b32ed884c4dec71e0bbacae3737ab365624b5e1025af7deb22a61f93ddb949e9d76ce8911c8e202d3e4a9c8a193dbe1aa16068329bbfd4d572f467836298a19548a110cfcf60d2f4c59e987e7c0c61b9af44da499237500cfd5dac73a017cbfd4a1b1a172b9eadf5ad8f3b625df68401fd301265621bc3295fe83e9e43de351a52dd8def6cbda7787774fd95ee436442d896ae4d9ee25fd8c814a06137f287460ff8bdcf246820ddde0aa741ad122970ef9623893634e27f5e43a7fa888a7d5302b2742f44c5fc72ef9ba1fe18d02af752c0de48afcc00f53000d0d042e3620514bb937988f28fb497348c3dc2fdda41e1d37ae7a7c1b6bd839bd0cce76f62bf45668af74766708c69b251ea191dc38b612995b5f055ec57d3c308418e5f854d7c40cea5f56747a945e87be3a9df757f76a2cabb44d2d232ed914ead7856dac7b07b473e6f4d79ded597336946632b4493a6d8d727ce956b953b13279b483440538b7e4e3e6998e07304fcfb92bbe717fd01446092341456d52ffa92d8dc85649e5beb5c98ad06614fb5871b7e5b745d89c8196a01f56660947458d14b5673e05b80a2df3161055cb7ce076018d84d4b05829679849f12495f279282914e0883b12841b5d425ae474808f6824d3f61e41890f0612dfe04ed26159382b52bfc50879d9e93ac0f93ca4476b971094e5b2565a67a4e68b86dc614b14584bdc9c280fd2a82bb5376f1759d8ab99d4ea1626178c0ea6d11f3c5e518903d46cb1ed00c775afb4a6e19841a39d3d33c26d26d06c658f33fa91d83599b26b67b02e0c79a7d8f88316df24baff79e547a35b7b6bcf0b6799b8da97d125326f6438fb65be8bd4edd640df3bdb32369bf6e5ece77a772a4e80e3005d8015ee0eb2ec22cba0490a2e1b19a696c00388efc9e3d99d367acd16fc31180478137f43a9e7c7abcbfe291c42524aa3c1487a6832ea84aa9b161b16369fbf52219e4111d584a58ec70d3f1f030ee395eea8f68a07c39c004eeb3acc42f0b24ea85fd99a116b364c10ae4af18992b50128985edb62dbc1058738f43a5e79916fc7b10d1edf49093cc890c7a286ed0d0a0a93b0efc6d4ec81d2013788a2e4cad69849cb7dbdbfd48cc5b1d2e7c2f79f16cf7320af99128179b78acfb3c3e6c1e396992a13a4ca653c5c548986ac6a95e52ea7eed18037c9c9f27eef52bd379e9552979442a4072dbcc31b2fb22a97c049c66721fe4c6ac108dbac9d907d47ff4b6df615bbbe2cb8d42303eb090ec9a143d325977ac387a127874b543ec2d11207b283fb67990a6939175457c56226b15a2e0635a116247393f80579e58ff89e9891849b50add939951813c0950fe4a12c9af872d92d14840d3a564e4db374a7a9d8d59f0c08301395e0df233dd4122e548320e07c1ad332e948ecebb6d6b50a523bf1358242a0fc00af32df2306f34613bf564a1086cdc09da2c6177b633bf201f225cff6742a9cf1af91d72454f655e5cebec8f3f72373923638fc9510c652352e0ef730ea86c5af63bc241fdbc08af021388fc080004ea8cb1ac2d97d9431f6b2610a0339c21e7cdcfe39785e85779d41b7334a6487a21afc7f7b9269b6652b237056192b06ebb82c3a3ca1bfaf784f0a483873c98e597464cf4402c5d5b5ad692a7c65953ebacd00e5e472135c5477c831b43a6234958eff77d44d6bc3aba2d8bad5308f825b40d7c2ed6e332ff4059f0bd353c1075307516706b40c8915d2d544a26bb9d94f0c28126ec9d52f7ccf95fcc8b46e54f42a6ef2149faf2082aa237c5bb41a1d5c61cc24cbf753fc00f441472d34f1b7cb461e4029c75f5089a6a5577ddafe539f03a7adeb8556e74cfb694b18f9ca9f99c9220f8109894b1545b81cbf2956fa6c8778c24e08260aef84c0ad6e0bae6b548eff55eff08f26cac8dd7fee0ebe645c4f36c4cac691bd5f18f0b3d751965632726bb49b8da4b2152f8b451f312e0d9535c342748043efb68b375a70c913fb03e7757539aeb01b033a240b509570fadc15b38630712cfb5535a8afdbae07b934f7a75a2772d5a34f981889919a2d82b68ca68ab38cacda291a924053c376f32a6e5f62c1c29ddcde0b1083a4cec6098ba1799681f0b0465e2c5e31792798cfeb840509ee329e363e7db2bed77737724ae98628a29e278b9635f41e0f32e440b1ef9d8cea93e37ba87941aa93238bd7e7abb3467d4db61c804ed05ea3a0a0adff6a126f0297a61ef765fc6ad5cb9b41d838ee81c330b407328dc05f401744de948dcde0b47295681aa3cac5ed6b0ecd5df77ce015d33a734629c0091636af64b7e0f4333e7df2a7470fc242e2137c13443cd61573c797a31a16771c34cbf9b40ad0cf7923bc0b00317c2099e15132120feb221b01618f8a3c9da7b9f6c2793b1ca2df1f397e2ea38b4382b527acf25b3df1d2471ee6b26802f1929cc3b4b5f8510e0cf4f272c2f592c77a492783c9be48c7fb917d9a01a1a47ff23aeed273c6e1849cee4d427290b73c3683d2261d8c765ec9861949658d77d9a8f09bc64e6d9a17b48e217ce2f1535b0c6616b8723111710bbf21d4814f4cf936947a8ef0ec58b7aa7e03e5418b48031114ac8474cd780629c0bfee1e0934148b2cef6f66cd33cf967b389245c44f42912d0b1043a77e0b97cf4be5c5e10d618eea02d1870b1a961852d4c8775e80f8b0d00f10d6895b574fcd97b1f5114d80451f9092dbb61a56585de5105008c038a0baf7f31e828946fad00a0fa6f046fc4e40aa20e594ad77995f643b66152dfb6e284d9e7023352a7e24260b34a5017003ce0ee6196ffbf47d5c7225bc7232bffc21e1475faa2f0809d669d653912f4b55a9a41d002b84ad676bae44ce7ad0dfbd51986f133484f6b164346a34e44be562d821c6691bd2a0dec2c7a434c3fa93979c6589f19475b04a62ecd12c57005c791f4c8baaa0a441b6f96eb66f7bf847542e676c25a5bb0defd0cb936b8cd88c57bcc9d47f1c167865595931bc781b8d7f8b92829abea2f65b340ae6d10385aac55d940e484d5490ec42b4b5aafb3e78ec1ef024ba0046812073f98b934c601a1df30b8f403c145cb11784318af7045a1242e3d1308f0af4788df03138c8079cfb4e2756fade2a4c176f9d83950230829b2e4577a7aa008eade00f942e772eff7f6aeadba4bccdae9a8ec59ac10776650b88a7e29e31d9f28d4f25eae50937931bdf22b1638a7495fd92252cb3557d23aeee96469f25976ae9498b174bf532a9da0c8362dc094967e222ebd5f7a95e26a34bd1f1582962c989e6a149e2af85d68fd323db0da45e7e2456770fbb455df9775e79214569f14e56bf5791cccc56155372cec96276a9880fdf745a997a47dc362afb9ef7ea232175e0163ed5cedcb63ee2ac13e434e7c79b5e741d9c45cd2e4007543d9aa47905486731ed35e004f0374d2843543960a7136ad6ae54858fb6f3f6ced317dfe5b6aa230862650aeed14d1536eb3219542ea788dbc7dd93613b3d1c1c6d2712505462f47ada1189f5081680ab1943001a72f430b6ed8a63e582bb7c390bd3de3ddd4013d958a20c162821843bc065f182e87ea09a2d70cfc41e1e629d8802a717775980591862628cf8eb6020eca3f03feaa8062cae4a188d0e3a4c0707a6a335347b9091b26be08bd409ce472be796be12df37f7f17167958143e387ee5aa5f592de6f2249c0215fa0f5387ae021f4f0a0d71c23a50031b314b8d308fe14413854146f0690e60c1f72564e5388470589378b79e70cd1da0d9aef4a495340296ee77db2e8b9cee8107fc7130292605c7d2a41cf2d2cfe76b9e842784b699ff3c394896784d8e878e8775bf7fc95142e2176f233da01b2894941818ba3037dea6f48df58637e6dc59a329116b8a4dbafb10d7793889f5f3f06b819c596e719288bc24bbf514d2e745d9284fe91adcb5eec92c5ec134cba4b123eaba5238300f141fea173d5f694c580c76d7cb33b2c8743da7dd76c02afaafbded8833304e623d48e6ec61e1ac5e991a25fc11987db54eab18f240fd3adfd31cad90c145e97ec06e8f6f65ca34d65ef549d9949b3bf2a608b842f5fdd96b77ffb8c9201f7e7bf8dd5a93b6f73312b9c225a547fb4e7cd94c69f36978e54b36a8f6823e60b2eeac897c5578ec4110749f7f6b5cd5fd650b3862a6de3a53ed7cc91e06885bb5cee71076b340421631ed8635a59d00568b3917bb3ead3ef730841de2df2149cd603ec2eef0cbcc230f19c01073a0303572c8a28c66b1ec0562013d9cfe5990f034b2c8d8b1c6b3be2e3c4d2226d0bb75fca397fe03ba7298f08936e901f5f6a1d2c48fd04261f8deb8a69d7ba9beee2625890bd7d77e88b79b1978ac1e5d8808e4d792ccb657671f21326887122f171fdf513919b18c44e5f3737f12bbe749b7ed39f975409e29b73a29291e795a68ef32983c5a6d719e8b37da94ef5ef056918ae00f237f55e7eefff95f0c63ee8c5333c2ff917eee9fd35e3321c3302cc308c5bfd7ffd1f51ebb1ff34a96d87e9ee2ee7a06f2403975c3809573d64f69a79c7396e17737fedf1dcfce5a50e429d6a962908aa21694bbb40844d5af555694d1025398168a9d182396e8a97f9025c48fe1eaad64295c2b1106f7333e4db1bd5a962fa436621e60545b11f4e631313628cfc83ed7b3a9f9b57a571a056910c4845ba1c053e370db614ecd21c35de0cddb5fa8949bf6f982d9d82f432afd6e8951b11fdae6f646693ec2da23ecc70c41238bcd40a0b868b1078487a67306d9397213214a1ad11a7feb1b496c14fb8e346b89e8275d07da0382995ea24d083e4a7b8072614f2e577afbad1bd6364d73e53386795cdbb68c636d9c64890fc5341572420322ba16140761d208bf60d32ad62a34f158c501d0230e2dad681e2515694cae96b006beb06060fae759ca1944a41143d953b71381c8c02f08356b469158f6ef3b1916daf6cb869e72c93bfbf39efc7074ac1c2e75d1edb7f14ad3bdb63f23db217001f7dd09bead9f13e4f5f79f37aee7c3e1ac07b7e0a822fd8f0e8375cd670c073a4fcd69558645ed5762cd1b231361050be82b5c88558613f9712cfd240587b0b2ff9e425f6ca028e2223e437ae2e3230f31b099905cd97b72e51b72a1d302f787ce585ef7e508e4f0549a477c903d8d03ef5cec6887866c5dae7bd13225bf6ca4d75f5416c948b7ef6a5ecb9baa674f5ce6943b87ee45005c0d1158e747a5b2dfdf542bcde580f862ffa182f380f2a5c64461e928ea9ce08d6e56e16ca56fcbdb35fd180f7985fece4526656477855825e3f894999b927514c9b19db19d3976f43029667e13b899cf0b55680fe090d5aaf3f6d170605b20502b9e9288ade22afa2f681fe10719c5a8a90a8e0942dfb7a3eb7a9e67153cafabcab2e7f9de77d3ad685aaaf072390809b939438843cb9dd3c42fb880838baab19b25beb9b1558b857e5ee6ef6f9d59d76c670973d63d3f011387a436e2afee24a39fddce92f6f8e96cd68a5fce190d2c5c7cc9200cbc537529fe1a7232e20f0f843d70cd4d5325e09b14fc4a3e07b372f5e9e2f14792f4c4d89ba89afade372b9ae3b31d5b79ad5697e4a3cfd7880c803d481fee2a43cf0145cf7346da969374e8c4fd3edc7da1b3a430e52bed898d0ef26e8f0a731a907aba6ca5744b790adfbf39210d7f8acf24b3ba2feea05bf9a7c18dca11477c23eb992f4d086f9a4547df60d139f67ee349e1092ab4c723b494dab78ddab7f7d2b7cbd2b758d2b743325939379013277bf8db66c78ea56e9fe366d6b7164eaa0ef52639a7254ebb9225b0e4e384608a59f5a8af2dae14eae518e8838cbb840cadbf3da50d85f7167849454853616d20d5384c953da8c80cbf896d2511225b41b8c42c763cd7351928ccd8df5b3f4c4f726ee8e8f273271f137a2c4021bca6e0daa2ba852b58858c61580ce923eb0a49ce6079264fa8c2a91be7ba14d6139a8608b545e8cceda654af88d7e16b5f48434eb2e03e3b3f87df9d5fb7a83df7f066087e80158edb2066a726c55988a4df3f35e7dd813d2a11daf3b185a50df531a3be203ad89b9ff4c3b50b319c24ad1a518d94281acc6e67521c2c9a199436ef03e99c826d41d761abf98de41318cff85aa8ee9ec66e6119fc74342496343025194c774ec1552066df824c23715bf1fcc3fad00a5b0197e4cad4f7efd1e98d1d9fbede1a75b6bc0b87741811e6598450402c092df11ca833e089cedcc96fd17ffd3574764b9be2fb5dc67766d9c7b626cd22009169d4df63cd06b47a4735c3fc8f7f55f336a6c77fff8f7baeaafff81ffff5dffe9ffff67f55f374fccf2acdcb7ffddfffed5ffffa5fa5b11ddefffcd77fb873361ff37ffcd7ff27d88f7728fff35fd31fcbf0bfd1bb6cebe6f8cf7f6110f487ed5bfe9fff3ab7e1bf17e991fe67ba2c439ba7473b4fe0bf6bcf55f55f79936e7b79fc9fe751fd4feabfb2742f09ecff28205a72ebbfd0c7308c94ee0c6bfc933d71e7dfe1f2fff762257770cdbfccfa4ff1fe4bf3c48b72e75708ee2ffe8ba3c21fa8fff1f00acf32f2eec2acfdfbab5afd81cdc8304cb81da876ff44f907071cc3305af4a7e4fec995b34fd950ea695fff1486618e7f8c047f2289abc7f58362046ef2bf384ed57fa0fde709515b7c5bb35d31397fa0f917db191efb4b01e1150c4c4aee0481188641fe9c64f73fbe31f00f0e981244fcfef878e81f53caff5a23300ccb4e993cfcf96b070cc3f87dce300ac99492c8924833c4a1c33022f2a7ca187faa7c6c99f83ea45233c40ec344ff5e58fcf9c3a80ca0b2253e67918b310c5bfc3361a63f91b56ec56303c873c588c030123bff597efff88a8691248dc94211fb331277ceffe65318456152fa8c43786018b6fdf38fc9fee426a21b84784eec95a30ec348ce5f7bd87fbaea0493500f815c56873fbea4fa33c2fd734e2a40e03974356812aa23c3b0e3f28febf13f33a4a0dc08fac7ea3f43cb7c3cd27eff74152f50ac70fe039a36a609e6fffa9c666b8c315bdd899d5852eb3864fb95d1dbb465fb646d9a92497a1b29303689d9d7371846c400d6fee366316441e2126503d88da40bb5fc1173fabf9beb283dd22a9cb8309c53b3aa7be790e23733f3c82ca2892b02cb3aa4fb1dac27dde44b42cd3abba8edc8b0373ce4b92876b494db900d1c64a473cdb7105a523faa8a3f2e6b530e5558a1c8d94af864dd0a96923819d96775d2d746a2a8e5e4562dd754cbe5ee557a27eeed0f784a93b7800c2c01917dcd18de210f5957dbeef8eec7182e20378f7bc9360d721289d00c668bb247e79d1f5ab512184e8df1408173cd995a8f756e8cc4578d9067c28d01596f805869f86e6d4c4a0cbe68cadab75c2c82adec5a22197ab42b7da0295a8e72f9309ffec144f3c22102f69d839d2fbc15425bd1b115a7836c5ce6c9f2dc4d425c5f3dd8d324c7c4f43b8130c3f1eb385444cf706d42828fa7fbc0bba3e3e09cbdb8a99694f6fc9e86ab43d36db6604fe262adcb5b6eb17b4bccf405ae37b9bad160273bfeea73e2e9ba98b7bb4aac4710495613899bd0d71ca74d7423cc1010033a8f323dc06d50ef065fcf111655087ad11bc6cc016e9cdd16a71ef0e18cb457483cbf4b5d6ed3a2a2bc3b801a365c0ede5aff546b5d543eed0725506da9afbbd4d34d9ce3334b70acfeb5fa26840ae52d63ba954904c2084ec84ff78bf207950e7c7eaee1407220f870eb4934f549d5968abcae5dde7e779a7098f1765a43804543faab9a349934e3aa6abe18a5027083ef4ce27462e47aff609f78f8758f7bc34b5dc3470caee0db31cc5eb6742e5f189bf9808d2c8d4e3458c62b76630aa7e3fc09367b5fd310e41e500c48a005a42cd065a813157cbb079ef462e708c9559ea3a0045a62807f97706c256e47e9f0ef660f65c369d489f4bedd2b8f2626e5b7a4fb3bdab79fbc9d1e4e0a3f9cacb0bd3ad27b2ac982954601fd4e93cfa12848df7eb9d7a8547eeb49b4c5ce3ac6cd72de290af5df18b7f435cbcef970ca992c180beb544103fcaafd941bd62c71d57253024e65dc96f928157cc3c22a6e16346edceaf6c84f09024f4c0faf0e8e42b6ddcd69b9189aef483e553cb562ec9315c337e02bfabdf7dbc716fe4bcad684bcc885cb2722871f4c810844b7bc68c74d0d06c32e39127078fa95bab12192e713b5b4481adaa536019687bbd082b858cfbb28cef3bef15a3d8c62b4bf2b2da9e19ae41e87c441f98edf6e8adc1907a6d8cefb28a2dcfb613af02254728a3077e77f98e291a128d5272cf64a48b410144a2d04495e83c47aa26650be4f7c7c37829e2c159cef2f87c4213d8a68e291a7c8d73b7e0e346954272a9256557e3279e2f9cabdf90198832787d799a483ffc9a1b6a725c65064cf652313a86af46aa09a5d9a421e4329b46f6c17888e94163df268e59184c8d4a7280e496248a522a2d6586a23f293ac06ee75e5ae7b1ddfbf171ab3a653425be76b4a2354dc3c408e42faf2da93ef8d8412fa6cc1a7a20b97cd49cb8196b5b6f5d797d1b94dbf37fd9dfa5eedf97c9f0fe0be3c4792a4aed9fa5942ad24d0a9c7998bd243c207da43a7956a1841e4a713f933d107f4d14f1a82a7ed440348b6d040e7c07cea40b411e530345880e9f8e623718f5f3a104334a25ac54b9962331fa638ccc7c93add1350e8d0ea19ca5b952d12c55e9c6d790903d8f53ce30f1fa915e980fc7c22e0eca54071ad7885787a9bf3758b4f5a651c487db319de7d00af97ed7eb62129d05a4a6483e417c504f073376c6675073b9a60dee600daa0f9f162c9429400913ee80fc0362272dcb582b06a221a28a4ee62e9175081be797cb98322fb330c809f1040defb6c8f9875f1426d49fff6e4d203c81b24f56811ee4f6803951f47404d3e3ee4c65fbe125da8a02a032e6022eafd5ee1d7db3c784464faa0b4617897273937ddbebaca0abcf4664bccd6547bda77fae04d6f7c23f62b5f74913dc046d211b8675be56ae5433b6e090aa7194b105fdd19ded9efa27e87fd765303ebf388f3798ab71fd9d2caf975bf71b92d008685b443f03aa9dd899db419b9864dff6c4ab5eeed4624263eb8058189f71b81146626602a1ce46a80be573e2aba30be6b7831bbeb0a70285a183bd0ccfaa36a40c5d4fdce04f56762343bbf8442eec2e71a15b4cf08c26cd98847f9709aec8f7f5066813b3a977e75eade1958f9008965fe229b54a7f3134c951bf84cbb9af0a78157a58c4b034c0127aa9a3cf8eb9403b84fa60581f3254af06a35dbfa445a9b8a8fca3bebfc70eb7c860b67746844285f84e127e8a47df58da98d3293f261a520aeea92e1aa345622346c9dd896d89715aa949fe06744025d664b3f85267247461411a8ecc5bb0e502cf994c418f8d46344163951bce92275856e442161c50fd02de6f39ccfc618373d164cb5b2b9c22d761c771305de9e5a89ca9bafd6b23178ba65df88f53139040fa00a4033a26f9bb000abd8f0937c4016e7103f180fe0cbf225eb107275c2d601378d20577f4e04624cd01051bbfa5243dc132f6cb76326b2361be6980bebb4aa93a49b648c9694bc0ddb24840ed5f5d9d3363367b7b79c6e997e9ec3a8518a45c83451c4be618f11008def823c12236c02d0a9cc561cd0a66a0b740fdcdfc145c773f3df041daad3b97c661660f8ac42f985efd324a938932e246be6404425adda90d7c7909dfa13e17a4a46664e5e98ec8b183815f84938c4709004b6d9ed07d165e47852430f7636015c42300e143ca5b5065ca35136170f64ce0efb6259c4af0ac992412c6d6bd5c9eff9fc20f73f5843d88a43a6651d90316dca09198356f4a082a68d1163c4b43eb7f9f7405f209415b1b40a9fb90f30fdbe55dd88c0dfc1aa8fbe15539e756419d17d6cf0a7ed48d8466bb18998c759bb4c74b300c01430463f9fb620530d9e9b076a078cdb41f8822330023fe8821cfe05be15e0be1af8699b76ebb6fc1ea45b2d05faae042a8f3b26165f3eb5e0a7083b9d6a2af1e39320347adc08c82f71d14355485829de3ec6cf3642f08950abecf157cf427f3de03eb201902e09e12272142dbd69c5b9f4c050dd557e54185effb39dd4c5925bc716db86867e778a2c3e39343582b09e99323790b05d5e0d8f94b0aaa4d07794a4d74e3837a70c5677322ac64fc159b94d3feeb67e29ae755c6c39a5c80843553d544d9479ccb61e0fca089b08cddc331a2fc0b5cdc1b52d608d64d44273df6f1f26969fdf7b2c9a9a262c4602cbca0b3d46421b5c1f06f8923512cf0775c1f11c1bc4e6dc2bbd91ab5a50c708db41024b7018cfd6bbc4be9ccdc4ed21294abc37752a69f1b329727a38a226dfdc164b1ec6f069d497823ad89850b85425282713c6b7718d0ceecb0268ca42b372e7a2dc5b6bf8ea5d1bf66a155c748d0c7905bc10ddbcc8107cfb09acc78cb7c57c2ee5b24d3f87f163540c83877bec3593765bc2f1b6bca428782132cc2fe013e8dffd1dbbc9f231b7b13177b7ea70d2b27520944e675689d074f1c8d68c2428a5c133b40f304e2694afe8085481d260012532dbc6d566dd4675f354376a63ac0412db4d35e0c69b58a30cd78b6c1b33febd1b90c3fcefdf25b1943231dbff8db653327a6fc43aae33f754eb4e59df9af338456ff8f26d1cce034ab991ac4f6ded09e462a2eefc5cd6eb45cbf90dacff13abfb3737d12899f3a2af134ded2008f0bea32d01c2c6375b0b410ed48ac6d4b3c7f04148a901452981012ab7dd8104484de00d823af85d00063624b0cbea83e5d5c4d77785c9e543ee95ce3f773ccbba43ed64030074bcc152e1152ac34a66cb48e5a32a062616cd9a32752c89438c14356ee92356461d4c333fa1895dd1352241f5bc6191821e2f9d4054c35f10f801ccffa02373e1c24629de79cd4e808d2fbf0f5d43f62cfc0e9285f229798ac84473db7fe94b86290a547866b63807d2f9bb35da9950bbf8b45be16953899e89637af70ff79ef88a327c7fd2195ee9f2444816c088f840c8e444c9a123719c069e51fbd1d64b0ebf53db1f3c5c4813e2c76c8e3d56490d8ed4b73c9cd3e0c40f8feae5fdd237f2cde1c3b8b1ea8c329a5ea0cc44f347e6378db2fc6606f24bd296130d83990cd185c0b13b0f74f0b07ae30754d648993729d7ee4f34608131185323b4f59fed0087603386991c8e67148a196eae61b41fb3dffc8f311866adb993d17be66678893177a663388fd17766acb9809173a6aab99bd10ca6a9b989111c5170fe799f14bfecb04248705007b2194c16108ec191c6fbc684974a4210b9dc0fba50ed2d2c1a38a947f345d27347a81c4514f862bda4946b16a1cdd856883cf9e1ec56f00ce454e6ce212dd2fcbea5ff3c6a75d7a95a528af6f1d773ee03923e3fa3fdbe85f79b4717ebdabaf885eabb48332983de2922c17a97465afa59c8cce03e7c690e95f8fec9869b3781874c717346822cf8594f0b99a60dc1fcac129e20e0cbf178987d493942bc3748d447d4c41d732f6a3b622d062e830e1c9f3fa5fb791f89ec5e8af109d5a49a02eba708248c17f9538ae8cb5d57ef8d73dcfd341e751d50599b6df2010a020bfeec2ebd03e4dd81a6aedfcdac9d2abee104e759cce2dff8076d79ffb6b7295449bb528e222446ce75d3801a13b0083ceeb1ba740983660196743899d4171533f389bd83143542f0913d2807887d7e472528fd7602305a09696a37ee8e568b19d5155429a84649da015a67b2fe775db6a37a0c5e49768543ca6191b1cbbfd111fd2c238895722233d4d6f5763bc2332774672aae755c67a89d4c0026ad6bcff9a9c1f41b12bb3bb96c00c4b5ba9a295dc3a094c104079dd1f202daa35c9595bc237b532688049eb0fef76621c3c82078337669ae74e514b568462165de0b8296dffefd6824bc3525e199ac57e345e90be98905d771849fe3f56be4e897b3796eba9af1288efbcba8c3cad677153b3244b93fefb167a2b12b1f13f7dd04bf0df946085288eb044910ac0c6ada55e3cb7f00b9e0f06be12fd95b3211c36aee5b9c196d8d76cee3f5d3ac849261c5840ee9fcc592ec415840e9a97010a6e4207807bf1d0b2002aeb0b9881b9c58e978e899c95c400ded7f303d57b5c562606f2e283efcde40344801c91afdd45a17a396df5d288e5999b914c8bbe82c68c84b72200ce7ad51e94879c93b78dbf61361c1be971399851a172e5ac831d8fb147dffa544c13de7a6faaf953f22eb9137a4de3f309cbf059603f7a8f2f04e101dcf0efcb22c882630db456913fd5c36af4c99cb5f75c4a3e5e302aff12c21de27b1df7ff7ddcc43bd8ab282a9478be9bab0abc78ca9f41d4ddaca0e4660905a9aa083772ccab741bca4373acc210c5ae18b289eeed578a8e7ca40b2a4408f96262d94e6afa9f9507f5f9b3fc37abcd90d063a9dc322fec759ace40771161939d68f2334d0d19d4f8935fbc09e8f2adfe565350dd1cc53bfbeaf702db7b2114ba97e4d6529d6b3180b0ae14d69c7a841d9383b6e60de8998cda13cfba954c661d3d20946a073fd44bc4ad37754657ac8448e7dddd5b4c44a12826f2c5558e9ee470211516ad9c15b2be33c31b9a227bdccf7bd28d00a187f5dd4b6c9d7cc0004b4d253f0177bddd646404f8277f57d96fb5eb57b363d6957c05bfdd13774522f58922c09d66875cd28a5811e91015c82c4c3b45845296016d8c366762a1705720064da2a77b7f80fca7e8955f5f812a2800a7ac663ced88a692763dfa29bdd1a709bd00ad4d6cd5670c56d6dee527d9aba937446917018f04bd0f4895cfab700e70e7af6b15d559241c82f314464047b32fade14d25f2f390c193b603e33602cf58faa16694cb239b98a46876833b1938748c84ea95e7ee26fe1d7b38558e6105d695b42d448026112c4e669e8c0382dd478ccc3429c3b47579cdb5d3acc9fdbe496020cc5588d2c070bbcdcb90d788699e47ca02d3e8a739166a10417266d74f06b0a1fd99929c5450e09a033dfdb63157ca3ebe3662d0c8baeccda1f3d7d170cf2e428c562c257b033fc5e4533482251b5d2712545b710ab6c1446e0debb268e6d96a83895a2d8d6404736b0b2712b8e311fd3bdac2cffda48824aca28b4b36bea541a4391cfa3ca6143a705700ba8a1ce8f0baad2bcae11a0ec5e363ff0b9ceaa9b41cc27df0748cfa5b8dfdc9eb2aef946f43a071a082b22c55ef77cd4e95ad4c9ab76d24a220d8fc4f334c852c27ef5213e67ab8cace8bb79160f11fb3bc47219327609df6120f5d8511d85bc80b886e42bd7d6123713df173098ff8860ffd183bffdba8a5b46dfdc45c8521fc67243c3db2345ccc9611fcfa9e8c5db4f072b707f811ae97af7dbc48f0bf4dd0c8a1e1376c788b9b8a0acdced3836fe05b0f92b3c2b7862263541c957ae06b62ff8a8f6f91222a13bf637074b2f6491628f680ea4df88ce86e6b9611ea05df9e1d8f16bdc16c90e21a52a6230418f2455257bc2fd9ab68926a231faccf54d8a24386834a5496d6b6a003c3a31934d70a30583d41704cfca8bf390e4443e9d248e53a24f98a633ae816f93ac738f26f35ba5dc629101ee6a98e3a3c861b6fad5ca04b7ad6349f5b6b0630a3668cbc6a39ebb162bd5f1b798d5f7e15bcf90e197f37032010ffca2655777127dd5923b4e154459c3931a3f095ee192c6cd386230340d4b82c86a05e7d74117bcfc7226baa385d2f24448c3ee528d0f911f31737b92710ad7aeb59d29805e28b4453bef07988d816f945dd35c656d13a9a6af6e0330abc22ae53c9152c52a08d90a18ceb0ecc1ee5e84092c29b7aaabd105acb6a3a24b08e98b51c7817673e87d8cbaeb724ba919e0870c99b7c0dcf723615d47a7b571910f20008a1e9703985f3321d37232f96ddee98d44e15937c7d05e7e9529774be1a2449181f5d309391a9f687b0ba73f0684f55ba028b97d37d5de492ada131f14171dcbde24d01e0f4ae3c700726a1c4d5899f0b1bdda0d7556327c39e43ebfd24b6507515cd6398664ec9111acd9d4f6c9cac85ae8c290c406e9907ff60e1ef7adbbec3cfc541cac3790c8334e8fa2ef1936315daa428c4e0824f3ebaaf30ca914bafc0e37e329e2f0a797ca8313363f00ec9999807a555da337d9bd7b7fc4152c6eb0a82ae45237969ad0cbf6750b754b6ab0174e072b5fe3703b4e0a7c4422f742d0b44ac962f1074afa76b06f9c01744c073b5f4524dc314c8355be1bc4f09057a9e3c053175ce151f87770a1d4bc1c807741e2613b76aa4034baefdb1fe243e264b01499bc64d85c04183580592493f0fc39f6b5888b76553ec2942c27ad6433c46b88b5a4f9c2b062a6f5bb3de65b7b9a30bb30afe56eec54b3cf7baf56dfba19686ac6730dcdf9dcd26ad28a601668b857fdb54f7fd5213bac0bd2ccdc5cd76054f379c302defaae33b14327b16308983859b28051320fa57b347b9e936ebbe03c264984a6fca03b307ed274ba3d1bb411b3723f7673c6860e6c96c594137f9207a779bda39efcb4a206b97168a6a815bb4ccc2229bd1820f65e0dcfb94d40f885fb8f1f1d43d18c0f4e87c75e29b774327b04e1f47a518f92c233c949ce4c04cdcd61d57b9387096115e3f8423425f359e7ad54c5180996c47e701c436cde9a9c1d2965ea240b2c1a4fe3334495661d86c1d8dfbd2c9c76d41b98fa862c3ff557092644a1074fe3ad397f02c45aa1c05a88217384a18a5bd5b448c2397bdd08e680b0ccc7db8d36accce9f784a97a473cbb6ffd04fe9063b8ac9253f4deb55cf8bf203f201ade2699df0100b0b8bcb04cf9457290e480cc12c3df5e8ebbfcc1202d7d6d591c3f3b4d41d0a3c78ef4d870b16499aa5f5a7da20ab4e4d780c29ad46da623a2c9bae5689a1b5dd31f3c0c7253bd988931667d29823a901db8b63dc5f61817bb197f13da5f2dd594d75a557df7dc5088428c48024952eb22bc60015cebf2521e4fd92fbb5b11cfe86725518398392d2e79acfc0c399d5b824be942c977fd3d793acb43dd6dc1bf241a35867e961e642c5e2c1ac73cb921538c2131d82bf181daedb84ee23dfe4aa7d8f1486deda5515badb73766c0b88571f3145529f3c2533c1bedd6064c5913f3e9f3523bcadeb2abae7b5d6e24d14441f004679b74c1b44b8f897ad013a51b14d475b87d1a20eb86cfe96a9578c131997457195eb0559ded5e43a60ae6f0fbb14e24f3f610cb68c4631f2275e15c3fcee0c77de6f4f0900ba3c3da9c042bcae1463fe6ea7ad7d85be9ed8ae6e42516fecd6167bfdc7ccedae6714dcafc6acb8b86ec55b04959901c329b900d24837d95c1671bcd41e705aaf1a62a7f5bb55e5d6f6fc109e4966c04613eeae9685ee0761eb07d4dbcfff15a6ec214e1b06fbc87bcff81d344a5136995866eca60b50750514aae7b04c4975f00503d185bad183b563107ea1e370093e9e698b2c5cb177ce6a58bac644490c19b79c0164b6f6b64ec18ebdd369a326aed62b03d678cc97a268b932aa6c32896f3130611937ead080a3a67340d7df376ddb0ed060811c93fef0c515807a0688f1c32e763880b17cb879b5b002a02e22925bc2b557ae3cb7bb2416e7287da10772f17ca2cff6ed348a941bb1187fc7e2c35198bf788a473eb0711f3872dc5040d7728f082bfb8c7b6e26dadb21f60e44711a29cd3cbb7e57819f6cf228ff9b94b1a26821c94e668b28beef27afa7a585231594ceb7a6439feb05cc31b5618439591fe3938ace6da53bf4b44bbc414ad140fa0e9dc9ea430312e626b5b13a48f4bcb8a571eaf0abcf43e4341f52aec0ba6f1421d52384d631b7c217395e4e2d23e0cde28c358cdd061bf63755fb9259842661f5fbcef33147ed2a821115ba6091fb30e87d4b3bcb2bc1a3b40bd248c04a50e7b0a133c94a10ef73914dc7036cc06e1bacfa63a56d7e2cacaf18eef8c22f5042a5d1b49beefd04ce7e2db6114f34d63c5131e0c52c089b35b269f7b3ef9c3775369c18db64e1e6ae82488971e224a81767f91f45dc94702aa40010add899767ba202003433c0ca9a0e808076f31a414bfecfc1ba986d524d59964b93d61ab69f66517de24e21a50982240bc06538f50595c0fdcb3e823896fa5e4df456110dbf1cfb48e8c440b0c3dd0780779e6998f78b65eeebe44e7a75319e58e73cd6ebada46b5a7bab158d785ed9998db6bb600f714fd404627b88209abbb92001c3675e0fdc71ef1d107bf969f88df891880bb13d0769e9563c8bf2117e3ba94dfc66f5c347ea8dc46fcbdcd50188500aca8bedd4069d28609b2b252438c81f21c2b642f7a9d6c6e7aa05e9026424bce521bb9d0a6210f390340878a4355477164927d1a4c85e14794bbfabbe44fa5c1cc14f3b5b7a4c9ef3b50c01b1d704f980b97a860f1d961b13b310707266fc5724551d6ebc20b0b66fd9442b1d6c761d6be01f70c3fe57b990626f375210d98a0abb5102dea18aff622523cd1e783949742818a6d38be9b6686f1922664f50bc4924c6f5cbbc0503f7679faaae994c8a1bfd353c7ef1b70160df3d00185483f3adc14687bba30460fb8840da28bc246208c3a42b281c1aaa48b08201b8d7f3e872b6db1a584a9fc46a51d52e487df126186f4c0b3692a3c6c1b9a8dbb522947dfa775f46ba36587ee90a51fca4478799104e9e36313235068b7472e1c4021b947feca2ea196f8bd0a2e37042878e1c155f8ba9835b4c5cf9f0adfc64e9f9be019f070f8cde40e88f672c6840eb0dea979534e24db3c36d547354862817e06a1a421ec8530746ddb96acf5c7c9b4fdefeab337e2561973c007bbaefd35c6b05af608557232ecb988134a8196ce4b4dc4d4d9632995fb24beb48133bdf2906fb54a31b7ec3c4abdf2d6f3934b7976241b7d22bb01c8efe635dad152ff0aba88c29f245002d9c05422bf53be6b402929dddd77c9246524497516c85d390712118f6ea7dc02717765ca71b6192a35671bad9b7a059e2f12fe3bdd28a6bf561fce3298d75212acd51a6f6bd1b6b121e6a1604a34225f2bbf0d6fbd15bd8a50503d43c85c6e76d3eca2463fc8abae0cd6c5bc444038218810501688ba9bfa00b22519751f84589d9e5e9333f8d675219740493dbab7ad6f59dc03d3b457207755e448da3ae7397dc74c2bad3adf3144b5dfe9dad3139d1075dfe262962d101d1ff909893f4902cce24f93aeb4b830f1106852d83ab0f6dd5bc07f0027a6ab725d8c08b355a8dcc2e0776105e4fa7c07ef9ce25bb1bcfecf64886185ed255ae9f1fc51eb5845f79c26190c90e7de36d40703cef5b2332319d7bdffde9d5c1002c23bd5f387715d1be17469a8ceeefea5c0ec098a3bd3b41f1f11cd9b30e1cd0d25dc2be6e48aae2e6bde3408a43b364d23d43a6e31aee7112c632905304be250a0f92a28d4bd4ba8399ffac0d4549ff21ee5dad539cf54ff93503ba65bf67a2a0d3c24754230a87f497eccc8dc2a4a6226f4f2a3215e4591d38b5cf8fb1c95d668507ddafb39b720d5af75a485cc4e8745f3eaaf3a4871fb8109e42ea4039bd57d74e345140fec7bc64cd2e4370991669cc6f4d92831a2a94bd3998d7c450ac028fa7d8b2984a21c2a28891114dd267c9250e48c901f00a6d4851ef561694c5fa8f069d9993b021cf3011e3ab16f0cdec619e63d374986a8a579215aa917095aaaa9617ce78e2bcc8e1cccdb8f935c1e6aeffeaeabf9e49984f831b542ce9cf36555f66e55757d1c1057c4861b55a596c14ffe5473a482893aceb9bac1ea89a65f009a4f593c0eddc4309f3a271cd0b82247b47dcdab4d62eb84aaf4d8443b8c73de333d84867e9ad3435de8ee77b216e3e28b970b86c3cf2b6ccab33a0ded4f37d7c537167f4ba0fc18256a7525323fd57d6276c7810bb18b1b200b9244ba2a26083f9b7e25fc6d09f643f582805cfdf0a029093e9aaa82b1a667919e08b8b2945f0cd3189a1eea8cd886ef8434c0c93b3a9227ebfa4560527cbd1cc2793cf4aede13cb787b9b2ef63ded88317ead5c9f86c0a837942a5313753465cce1cc5f3fbc76c3c137a16f8d1cb6446520e6a79b4f68dee6c87ede5896b7924f78a87168d0aa977d109def6345e3aae2108228a7fd0aa6947229c88f4e3f22e5590f747c613390d80618d9684b07f11200b20631cbe98ddade2875d0cc3970a8cc778aa21d79f4987e75ad8a3cd36c4f734ef92d631c08a0a5f468833c15bc85b0353ef28cd483393408a257cdc50337a5c8b344691f6432358186a10a20fd3a6a4cdd1d7608caaad882cc591f94977bde41084c10ac4cbce454089df0e7130a8ac65f1f8e650947d20ff5e4988c839278740e130df7ef34cbfa59ea6bf32fe7938731a24f01af6404347cacb231df2bc6fa08f62a833f3be143e0b8f532051262bf72e42a8c1e8acab4d17cb23c6292768b34249f7bfc98099d7f953400b68e5a7b07d11389cf9c2d2bbf92f36c89921e414df39dc3f65c921a720145d620cc0f07cc664eafb6fc15f0ec57edfeba4c021873daca676f94b992cf286ccac1fe484219fa69c169638233b20c38fce3dff5923f9dfbcedcde3116c702cbce867404ab953cc153e676254c4d130951c426ac99535da486d24befc10271e14955fa2fd5167c5ca88e7da8d6673f0180fa7c23be6fb661075a5a88a0ac85fb686abf92f2b6fe0c5e596abf17ef9ff668bcebf257bec99032b0deec52429f68bdf0f96a5b77f7a16c5669930594e938f3834d6d022e2ec33023961740ce1e73c938ce713ac3102cbe63a33aadfa49553fbcea104d068b7da5f8a86a26206bc613ceb1eff72ba49296458316450b3fdcb88708934d0805ec1442f3f8e34cbd2a64a06bd69325a8504a72ada82791894749c8807ba42aa4f54cf58136465ec5b001105e4f5330e230385792084b52662d5d0fffc34fd631d4d1305bb3553d1ca5dc0a2f412a21ef875bbae5b6a9c3ded047b0e97e2b13959a0ce4120acd933ee152b0cab915f0178befce718990323db6a1197de93724da950940e64d063ff3aafc0909ef4634c329c96adf0cc6857ed59657188149a7744bfc1123350e7b248ad0456f851b96bbd751825cd9773e27d248c65fd1cb82d17c71723b982ea85ec31492d0457d8130ba394d044dfe3be891acc7ab9381a45dc1311bf522b8d3df9005871899fe10d41aa514eb32e3524fbbacd83f6ea3c4e639e98ad1c02e131b95bdbde8543bd18528a57d2ef6a91dcb97df0810195cde1b255c4a68718aed3763a8e77571876683f94efad45e2f318ec4fbf2c8a717ac47bf9e367891ecb1a0952decfa497a39aedbaab02a60d12fd6c1a38b0ae7e42df476bd9d9d56b84795eb0a9321d865d300c96c4416ad5da81b51a2a907826099f1c8411c08d4f5186da779a28432f413b02304008c3a3fe0582243308321d55cc68445decc880083b87bf265ba9c43c1d29e741ce7323896320617723df2c57a451d2a0db75314e16187da4328b707fbce3f0e1a80b2d2978e1f45ed3f3753df09ac2e8bdf00eda22a1a2b6dc2281c6d8f4127691187a9e489954958a389fd13ae4e73d05b241c95da19a6a208f7d163c209e73a45997c57bea128368fd4790d839637c57e5b1ca63d660a9ba4cc96f580772ff57927350183e19feaaaef7245e62253fee0dd958a86944e922f6460934e165b79dd14b5e8307ad3a70f023057a9a467af36a61abe4de97d40d9fd883a2690cd9d95b9999485adfb58cf226a01e24a03f11bb4a98918f294c35fdcfa6697e9097bbca3c72bab5f84162ab596264d3ff3125087ac584f7fd87ed6dfadf43ff0e13f6a99fa662ae1aa5890dfa6f60810c34823aa40f9dd176335003767151252cd45234fe6e1de3d65270a3330f64e4616b911efc5836cb3f826e435c7af3e65925557a5cafb0bda13b9c7713013cbaf95c51e50ff6e4c9702ce9f01f55266b00acd1d9a3fb0d658d2a3e53c4b5ca5f15a12418f28e69f5ad603a70294304d5706dcad600616cb8b75044990bb44870f8da796b91a9756ccc5aa6e70b174f1a5fe48a31ca30c9bf67a200918c7afaec820a03ca28d18d973e2179078d80e261fbb8c791661cd755fae78218586ff510f7ff34c628da786f98ca7709bbb6ab1c075c73a9b69c478e6e82758fe1c35d9ee165cb4b4bed550e65f507d96dd27de827550f61705372ca28107a495fe1b1996d8fb378f5735f7ed714c3fa34e23b5e4aa825ceb3c356a4eaf9f5c6aa75adc5008b53279a261fde04df9fee835c235904b28581cc1982a6e092b6da99e4af8076165d4f30edd649da9623e24c95d292d8089059fc5584182359ff16c39e2542abbe90b58b5d16e657e80edebca7f5ce11809d8a19cc33cbb082547d18c1f79b598c4c8462d3616b31a9bcd9cdfba8e30939101ba1760d8035da93e7e5efc488ca37ed7469c08a854e229165e226b72bcc4dbb7d2ea1b88db4a93783257d5aa82d95c916915ae5c4965c479122838f936deeac924ac49c37ac15ab4f5075ca02d8ea704895b2076a6c4b716052718d47e356d48327ee647dbe50e0d1ea5cfbc7e98c86367b9a417d37276cf52c98d9f43a04951246fc470afac0cf140370749a590155e456d5b9e32baac7e05e0679183e5806ea7a7b88c00017d620e7831245d9528272c5d30c1dfbd8226befeaa5c8b66e6d59ef9c6415fee2ea7737018593fec80d790d1a09b3911fe9d3fbc0f1faaa5b5619dbb4ef0e901747c4eef9d17a626e66e990f8cb4bd07afc30fd3f1c262f023a9aac2a9a9c12f85bf6499e2d1459048bae109c820766b75d406bb83b7936ed8fb941432dc0ef66f76cc76c7bb8b62718d39302c424d18137c948bec9e4e7e30f42e6b40904a1bfbad7da517157cfa66db319d49ac61b849c3f0933c4f99e65c097081617b86439b53408db86a0a2ab59fc88adecd42741ea359bf288676bc7231e31d9041d7b7fdb9beea68c66caa703f1f04f52bd31d3310fef60c5c6ab4aa11d936c4145c587c1e1d839edaf72b45a8b82028dc0a7bd3d62b734c060e87dcb295ce528434ee1864ec8ed77ee26fa142ae106d998f705722279bcdd098339058672448b6649b52fcac5bc46cb5de7b9ee9747e0c5ac370e5838acd836193efd61f54c7c7f62b867ed4ab9186f664e251bcbb1d1b4d2bd516037f6206744922489522b42713fb026f0f7c64b043eb05083e3da9e8d0e64d2e142c1a335e610b937966f3c55102d65626aedd13777da6aa75014fc11509246293a5d8ba3bf2461dbf4ae2e84fec607e79b45edc73cc6e3a9c5643b35fe362ce3223d539f67ac20b9bf4468acf34295cd6f1f7e737965c91b4b969c035831682660cc85c23f69c749eabe2c59e4adaae2b50f9481fce4371b7eb1966786b160b5f4b714ecbaf1f073746444d3f0a18571e7fd2e5e7867670f74c83859be99bbf7e9bd442551c771ee96a183a9aca740e5fb4fe9cb77a1bbb37ed9528434f4dfc8836db2fb4b259447f3488d4eb2fccd075a44b88038b5c928fb0504e0426819a480cebf552384351d012f0a14b507c00c9e42d7c3025e934d1bb57b07e7a36d5f003e7ec942b266ced6d921b737fa34eb73baa6b88937affcc2b8fc38bd905a3adf2da638c4918255744a16b241838a0cebd653174f3affe1cf38cf6b0ef4cccaf3ab506d1c5e1068d8b28a83485c04d4a563a362f10b7ebf804cf852333262c40e294a305b3eae1aac0921669b0e0370f94ca0661ce36bc6964c7912a77b8020d06cb608ae2305eb7e3b9ec47783788a10ed47e729cc677a33f43f72a9ba329837bc042428c637f3b6c28f601892862d2e2d7058e9db82db461418feeb60f505888377b8761112e49d320dc46695a00c5011800a5508039da475845bc5dff7a942f6ea2539d7aab2bf6bc28f11430dede00b38567070613a165fc6e4666023367e534702df28e789e5716cf37b6df7206ef853ac92defca9a1e72896669e5f43762ba761b1e845b2ad4aff77ac133f4da13a5ddb903659234f92d9e54122c6168874e4753d21b4c3deeb64de7180d1b20fbb217284f4d50d453407407fbc0611f9744357647de76fa504a0a52626ee1432857fea4b06c820bbb03d946828a3aa1cd59bff63747c0b6b35ce9461a2a760cd75dbd0e1a43e49df846368bd28c17eac658112bb5e94a2f17c7ba37d933819affbf1cddb5b9a5000044e18208700b71bdb867b8bb53fd7efbba3833c9af336b4251a5d965a5c8ed61c46f97c56165b182dd384fd1997c5e659df2764a1337c5b208b4557a891bfd4217045c605da8b5f0dcba4c4279c9255bcf31cc1d5f9b4e812218d8d23d84dbea8a818fafbe69dbec49fdcaa5936d64f750b56e78282ae47d097f1b173c38ac289c21c85c2d26dbe602bc745ac2fd1911defd423f1a267e0726afa0178cd6d920306894a08b12be0f437fba0fedb74fb34c3da4fc3d05eec55260ea078f985dd5599e4c9c8832460e2b00f6d952f8fb31da7cab8deb14f96cbc7efe1b205ffdf97af2a3864680cdc0e729256dea35297f83dc991d97e0aab8b1c6b43a37c8d5460c8fdaf062538eefa766688c3fcb8fa0b5f95ce26ab3a2497fad61227a2d12272087963095c5348e50174c5add71513f67c257acf441d02dd070c34f023b4e1039c30bc3ba7a093f6fa1a5ea02bf7747f16e489ff857299c504d138009d97b13d6357f903a5fb88730f95bc092f7f94cf2a6a42e0dc9a4c0463253dd6feddc676dba40ffed3ffe3796da5071404832c6e8bb33f9cec5b900500fccaa6b4928ef5e12e7a91471c24425ace009934f4d006b2798a648fddcd33629e6bcf1cba1ac92fe51f721b990e5db8b262ed4b8fa9f7998bbdfcb435a20fbbd04690e7944118d94ea8adb8fb2c5f528248b240ff8228e0d8699a21d68f38282ee1d93127ea9d1a0442cc301f3c4a5469dcd15fe895b779da9c3820824329a4ad4731395f0cb10af641ebf918b4a4dfc72a323afc2a94799e86105312ad316247524e25fee47130e178845d221402c5912c170e01671c855874aff44181b486f00c6ab145e43cfb6da3f7bb3096ee558197d4bfa4c48278ef0551b2b8c010415f0b34975a8dd3d99564766c7bc84ed7c879fcc66705015101ac178f86b66a519c722862e45a74d788c9f29a3ccebf2e1f9475a100d8824cd7401c6f6a0b46a91866c46c44d844e679c9c512ab7910e3022f581c8bbd3e5dae42ee2b0545cdce8ad26e44fefe31ef3e1b2e1594eb3a5c2a32ccda7f9586fe2db57dfc50f74c0f857b5c953ff3cfacc1cd6187e747c34f365cb97caa18522dc349587c89400d470df2f5c40045825044c9e4721624da1b63041ae1b8b1c0f2645604dd6834762ad0c58d0248f28656c82cc30182e948518716513cb2414d1b3a84a7e0488d75e378894861494d9e6f3920ffc4531fb2e183b5bd4163bf0b289a4321ddc58b07ee25501e745ab376ce0a0f2e168255aab7d83dd2f9d9926992f7f3c0dbd6125c8d34b85817c38e076b44f0a1a2ee254264a2d13d215334706a8719d32a4348cb5bb6675b1248d332dec661e1bb778e1bf59aaf21ed889fee5950d6be5fd40bb5eaafe08fbedccecd1f64bf0825eda414d229137dd2da607362ed4a16e5e74a8612f8153f7dbed54a51da4f7f3bef30b4a1090bf0b9ce4c8f26012cc163c24c088ed0f596d51b71bdb09370088262ab902cc2a42e539a3687057f5365f1824b41a27028b43cb6a08dbd6a4eacafacf3ea1c4cfcf1e150c0968b6072640689598ca8e37e79cd6cf82888aee4fde391442d32b9fa4c1737be80e1930f218f1ca065002f1418400c1786260aa5920d286e64a96917564f3a98f4970bb8e5a2ae9949a4a44c5840928c2bbea8e688cdb5870d27af15b7454844c96bda16863115a1b3a0b27a9e62450c48549c766952113e81dc92c2f2a3c5eaa85ffcef2e7119aac5497ed1d334fde93ea265dcaa6de9ca5a80c90f894c3ed6f4a471a5703a8ed1fc9aff451b93fc34dba0fa14b5334635d5b66bf2a7facddf2e91a8a1854e5164492c03e6e1d00c6601015355995c6859bd8848ee748af09793fdd70e3b9ec55ee4b80db79c105582657750e6250e57005b8dc4beed56ef5550d5ea735a8cd8fa6f0da016bdaf632056123d1319345518a785dae50f8a9e5dc38b67da4d1af275a816ea345390486c2cf6464a9021bd939ffadc7368f1e0a9d2d99197855022cb380d667c23402651e791b58cd9ea8df5fad4d5100ba55da1eeeec95f06ecc7e36a64d5933710d0899ec3407f7b2078c671ac56b374b1733b993d948e3fbc547f429abd79a5fabc1aa78a854d3ef24e19748215b05987c1bf67e5e547c3285b6163d0048f054c65ad502435909be4966df6c1fb3c87edb3c303c64a6e453cc3719d79e0c7d385bcb658f82fe3c64ee92632fda214f419b21fd0d144db3bf499642befcc626c27a0fa9d4ea4475360e8b58ae85856840936715d211f224007a51d2516f29539cb7a1f4687db265d19c98008e12a81e723a3074208eb085c607e60f9f8ba809ae8f7c50f35d92bfe4b1cf36d19378249483929bda4a4c83cb9b5b6cefdc8a2cbb0f4312a409ac5f38100e373240fae943b98d5136de3e2e09cc557c81294f6b2e783c12f7fe516cad1578a644541ede438b2c8df6f6c34cfa464382208c5529dbe904a50d5ea5f2680a9676534912c015fde2c5ee74829edee47e2963a9813d9bbd21de5ce02af5bdca3018151c946fa946c9ead48c9e115ecd46982ffd20e96388c44bfb81f5182f8e857e7bdbdecdd361e6414062c4b552bbe5a0d19aafd38836cfcb84674ad36dddfd696e2de8d55369de592cd67d2141a904070d8929305ba6d6b2469a0949fd12fb6bc7e0b0ec4b0756c68379da6958d4624d9c335a9ff45199ee973bcd8594b3ffd0ac81c86931f3a012224e8984df316ff6b5fb81217e4273095cd8d997d8f48aa365c2a17cb9bb6f1835dc5223783efa39697bc45a35088eb2296baf15ae55ec1e960fcae50c909157e30f27fc782d519221897ab1b6666841f6dc838dc73f94a268a0b41ea2cc1519f96ea342e5ce0b007a45c13215ac6d6d8a02acbde884646c146905f36e291a0f5c8735e093b189e1819796dd139e6ee89aca5b04e9d8a014d8bad5a214ca5f5c71f8ad729e6f7fe226a01f153bac76689e7597fc476d2b8ba56a280f6ddece77598fea7327380b586f619b4724a279f72dfa1a993a5aee7ac98caff1d3b7ea77927999b17197289675b438067af823eb10019c5716b57a2262b712b9147d41950c92c3cd9c55f3d646b2a80336d31c53565376bafec16c4122bdca7828aee054a24f08da33247a812050215697dfce619820e75064cbb24a238db7f7b89743408b0dc823566dbed7d269a583f7600e569cf6c48b1599a76479ca748d91b57147419fdbd6968f5782082a7d0df9e082313dfe91aa37ce2135fc146b4a3537e56fab067fda2f067f0d1fe4c578cfb341b081abd772d90266968e44e4738e90ca4d17ae61c10e3f7581064a0a345371514946ed8b89d63e0f10b24a9bb262a511acaeeb5a2c43fc80daeba0479cb69faaae4913da98e848a091a66267fa8ee4e9ea63786cc2c6e9d8b44fd4b4aeb8d2cf3aa3c9653a72294d9e7205bd3ec426e2ddd4c9f95eba57b99221d1ff541165bdec13428575454c7f677f9df108730916701c1f6b62f5ebf8b58557603674767b09536d34e826798d3ab614c66b88d2ab9e7d998506898bae0707b3c7e8ebaa901e8de9c96c5d718e5aae7382a9c4931d89ca6f435b090fdf362cdee4772732638ef6709e3552bde18d24f9d5d8c4ca1aab419831288438d7dc663016a70813b39661dd951a64f8215dce276d5019a75cc7a4bdbb4021d6d576441deaa8aadd33667014f46388f7a4a3f3c7842633b44d38d85f9c5824dc25a579451f38b2c2f769ae4c2feb6282946a5628398430772923987e90138160c3a0517fe89177e419ecd0b919ea6069c9e64d3826c443650ef873aa5898304c4996759a6e105bb9c96cfc79395ccb6317764c110a99987dc9ed6fa9a70f266210dd814939e2ea71aa34e307a93febedfc717c294f07a4d3cad163c913d36a92bcec3aa47d9404ec3ec30b4c796b56fe2dd35af676dae5c51dc1d5355d8f00c050a6115250f002a42de4e375fd669358f9d75d4aab04682742400c8e52001647c40f1b1da0fc40bde901ca75f95c53c48b0d0a54e433a3998566f9558f9d4850246592dd0a94c7d839f857bd7047027006586e691fd39774b2874fc49db84b4324a6e939385497bf0e3419780738dd329e82b47eb9ab99326a697c8dcf19436c5e2378bb2759038d3139d577f3360855a8cb71c46f017f1e1cb6a5b2df44272e8497601787ccb3582c5a1833f63e409dbd7dddc6f62b6a152f87b3e7e89807bfefd09c457564e444fb1f993280cd92b14423cdfbcb1653597ece8539805ee01d80f3dea116ea862c96177a689c2fbc1ac05a92694ef00cf60a210c4076274b76d77aababe70f23b301015c44618d5cafc1e74a06ca602b5eeb3e7e4e32311f155143f172e83077640f349f9df3231479bf89b9f97556aa5527941813d4550ce64bc94343570829c3038ff49378c173872443b945705375cceb87308948fdae95be2191c8530a09220f3b66baf4fd626e20a2e875ed95c83a0ff783097c3ce68e4bfd75e49514e520865490a3b4bdbd37ef10da60fcc21dc19ddf37d411085552f2b89ef8f6663b790e333cae6fe683516406422d0f469cda01601a5e0e0fbfed21a084fa0163be9999143594c52515e94812a27650f9f9643041ed3ae965aa5e90ebb6890f811395020c60d527c40b24206728e4824a96358ffa06c8656e94c06a7c349080672b842fb8e62851b9584e95a6a957a53cc2474e3a54ac4e2e7942c09122919539152cd3d066e50725952c7482f305fac56cfd864b6adbf847ba5df8131274d01dfb77681ea54b0f29162ddf25218ae89f58d6c5c6d030c1ac021b989ad0547c18bfb2f52b00b736ef4b3736f853428a914d49e64713182b5bcce58132c453830915c348a80462cdcb84b53be23d6b17e9c4e15548d682a8a181f235f79c0a666bb2b06733073b6c020d1bb7030cc3e526df15aa940257dbd849d86315c054ed4dd50b8d999721fd50986a569ba2f8f3a71f49517df57e16a90b1db314e643a6b4cc0eeb26c62b3f2dc34d1d293e388c75441daa55996deabe0a3108a839629945460dd44c0b0eb6c53475ee5a245f33ea9942253de8cb806201b2b23cb9e4629c93562375475283bed0d52d10b96b713f47adccd82185cd9c1921f032655f9c2c760b17c1f5c7e35a164574599a1b5b21e8765b850ed2610975384db48d4def38e467f2e09ae0b644f9daa8706c92d951135ba372040192896c34280f525ec0492783b4efd53eb3d0cfb92db46fdad93b323c99f2d85eb1b7e738b206225387edda8b90c6c6e6b0de4ab006e3de9a5ab15f4c9c3d5b01d2e4d97596533b33b8e2900e10504c69276a7d01253bdff3960a72be29939630fdbedffe2b7ff54be6d40fd9522728ae6acc00520f138f9e7fc177df799e751075110906d0649f3470d2a843f4239b10413fb87e1d7a477175e5b0e61cbbec1dbc22e117a6d21a53ced3518a7dc600fa04ed7639177979a31f9475f7a1f3389dc246bdab77fae98f2e3147881d09a7f0e103b7d47abeb86acc1f395002899ace4b9a5f649c7dc15b112810955244892fb011598806938acac37b68040c8146f640e29ebcd339eb0dbdc502d24f979fce4984f5a8e0c5f39572361a808fcf39b86ada5dc515eb4a9b5063b3cb8e18ff258a107838922703a422b47d8384943d0198db7d13c8f83d4af7f4e0a40bd649252f6dabd1aeea072b7d5584410a15f7c6a2ed20b175db6dd2edf9e9d68fbc6c7c4fd465e72879997490337dafd2c80b62e2a5a0cb1af1b79cfd6ad7b9f013d6ecdd952f878db9443237298df48221d2b66c457b2f4b39ea7214aca169002e9fb5973c2c3ab89f14ba7a04e963759ada9845b9ec094f291d0b739a1a3a4500448ac7a2d9bc278655ac234193360734eccaa97403952184000e5a621ab042e1f351874dfb8124ccad2046d3c591bbf8865fcd72624a649ff580ccd159b50e66e663b8dea996837dc63309539d822c7feefbf711ad1c255dfab34f2540a8541a961c6a3d740fd3d0eb91e76efa8d249f0ea814d259dfb49a0678a109da84439d8ecabd443d614a8f3073b600c05565a0cee56b6ece3aa50b6b817be9dc5b062340140c7ebe229f12ca63a1f09e20a68387170bcf8cd4236535b61b3c67f66449d178eea025fa71e0a5ae3b8ca5273c628304e8d3464979c581805fe14b6ad3753abfa6563ab741c355b639fa1d0697bd4ceb4e8bb661a2dce10582ea6c5bbff124244cded093bbd57f51e42381419aa9e64a034b0bc78aab9e83e4c0d15ef7c1f80f947e767aefcfe6c0f8e56be1a3974eb11a64b1a19430c913c046288a46f2abed553532feeb3c809f176700d973857ad300b2dbe2ada7245f7a9800cd682cd3ca7aae38bb73a8b6b6b8f666225addec2203e530646aabf3aba4ed5373856ecb7ecc0b44a73cbdc8a80213de7862c2873b7388b0796e1dd746ab0c73decff2bc6320ea157995cbe240a05b85a2978b1eb9ac0f14585a1ebe02e469541a5919a3e506bff400e014adf30a2d51fe44c84638aec9dbf0ee9c59290d747279009962a8a07aed8f8861d61a55eb92c3f46ee6e46b93f3ca3fb200db8670e3a1a6eb89f8fbac58f2a7e13fced422b631662a70cab54e3fb14f17399e26ef07341696d09bd39e311fbcdef66a709da249b00fb939d7bb34160ff6008fc00fd4a484f3481d4b965757b5a1e5898c4c71462866386bd4e50f5d1d50a658209a36fa18a561b0574ec558e7a0a62fb7d1559da6b786fa57238c9ec5754d58202ccdd3b1f03d9b48cad2d1db3ad9de7b472be67e2a6a020ad355d015e8578d69820b44e6c46c65b41e9778f629d4d0639e6e76fac6068a440765711623be4ec366224b8675245baca92af3e0ba9fa4bfbd516c128f4810aa51f31aefcaf154b32e828836296f02549062c292a872e7daa7df6ebd25bd9dfde077bbb1c722378288283aa3902a938f11728ca3080be9dca2c14c8af4554af3961718ecac4701705d37c5951ca4473a16e493bc2969f857e4e5f010611ac7545222c13a1b23ea6e624a533d4f1eb01e17d3ad0559ddc0f8c581377dbe1e78ce904aecdd3873e1a2ae5870e779c97db5be4f06091af9a4992c9d43faa2423493060bbdb30902cc0ece26082cf9943db9bc923aaf72419ba32ac3a8db2dc1cbb66325ac966c361ee6cd2ae4545398f2b75c85787a8563db4d5ece7fea86f466ef58d77c955e205d8a1da6aa518487d73f1526abf2f6a2b27bd3da47b1b78e03fe7b5a472cc77cbbe53ca226b442013ea003ba9e404633d2bd262e72834a2fd3dafb23282b11050e539f5c57b8ae82b9cd7568ac56cc66969219be4ae05614e629edfeb442317d0d99e0ae19bd281d4ca32b1fc4f2ba4bdfde7ef6820f00a83c5803e3bc3a42a51969a01181e6a29bf898f01b6d2e0842d9cd05c9f7778c4866db7a322ad3ce801cbde6bf085349e707ca736d2661cc992f0338953ef9640e8b9a896acb474d5b14d66e977205efbe61a4fd7c5ee7d7a8ada83a31c3b56bd84d48bfd5f02caab66edb81b1c1ae6238e6827d0b5dd5af0eb9fbb537d5736443fcf26072313f3d65de27f657594e965350e849613ba0052e14e6d2a935746dcc3053040259b992637f31d791902c8b91719cee7667166938f96f0e83c5913269f54ee1979bba7e7f9de7943d932c839291b6be62911108d32fddc54a3502752081d36bb883b060bfa16d1bd4705a6367d32fcfe7fb7d947c2cc61488b1b0ca9ab3c31bf781fc36b659b1a0b7d737a13b09a1a736c42dcc53e842cb4ca435d40def30685ab2e54be77bc0392aef4421494c11c74a35b6b3a0afa8c481bad05e4585e841e9bc25974db151b79bbdae7b1789254a57a185cb25dd10c2e83578cd2bcc3bdd7e623905f6888accf85a27af0dd7ecc849dd0f0b227d585fd4e77428840914e2a44ddc9869f819b7b6c36946ec8c79b44fc7618ef1b3c17ed947e6261bdd151aa8cd186170a901c0d2c8bdc241214abd0c2ef482767384414b9ee8071a03cf569061208abdc4563c2bca0aa04b2c0fbb04bbb39d1f0f9af261b2da902d284ae0999f08d60050fa0dc9ede8022f230e8c1f6b6a5ebaad1935c0a8a23abe3141edec012eb2377c150a0d31722d91374aee092b188454c3f9d1f0909638b00c5559a0b6383fa523b72fc984b4d4ba1224b256c9844da91668ca15df8cd3f4740dea5512e9505ff622c0eb2ef700b0336d4bdf8edae510178163b56718b0875d4fb141c22f33841d0eb523648ee6d30c2ad30132d90df25fb3a4fb85e26f55f264bc6b5b98665a5e35a4aa76baf86b1003ff3859996905c047c16432d5916bf487c3d622b746880e00032ebe3c2a3932242a65cc17a713e77809f56af2aef6bd3f10484e0ef8c1cd8944ef2df1d35d4ad4beb7d0ea9551d1c0ee30a0e953503f4895744b8473914cd12ed93a22242f28931dd71402297b25e85b81fd93ce9c217ef31dba52901ea71a70871c3985da0484ce12ae5153873439de29f9a9ed8796f20b2fc967060ed354d70cd33e8c5ed572989ea087b61bcc3a9208f7eb0b5e620c9fb0ac36ac4bbc11679fbc981e27c29b16d590f9acfec3e1db82269935f93dde437d53ca98bd4dc77f581269650f41eeaf91f97ad29e0e1526e5ad99086d6f88e490070a0de0d8e3fdbdf0d5e5713d4a275554283889a325e7e35fb75a8ecabc6c4c6234efa38139f1598d83b166ca2e41cd923907a461ec5798688171127265218f1fd1db06cff391444564c952b53be09544c60d2533b4456a6dd69264744a2a8d3f63b1bfba48ceb75bd4d2ada3a83d81ae960a3e6c97d14c37d6dbe967cfb036cdec0914743c83e2e2d33a9dea42c55adf982c9745291432695c8c3194da49b60a606dceab4dc67eeacd7a0810a2c44a2cc00bbb62448700f5ba2083c315887283b11b52c2ac4820e50d01a1c6895269a71c89a658adca1e26490f835808b8ca9db7e80cd3705796b4d3281c59230442d8af746a4038cc777d7cc1077c32810b63efe937317399c33a3d6f42b85fec569f508dc977b935ba46fa86588111a2b21e4d0585e9d3c3e1cc2dbad15f1cdfa83eb790a2caae370df8b3a023a7c8cc47052b6203899b84af614233f19d9bc814c7c951fd833153077abb0ca885a86ba3248921ca867e6894ef13f80c4bbad512e4e4738ab5d417a4c2752fbc4a0b4e2b67702d3be4397674d68095059fb297db0aa9c84a1834faaab23e7c7de2006dee8dcdf6084557aa7f714a14cb7b1a0378f15bde0c4363e4088764b44016043ec04bf7437ef4d27ededc8e3b90af7ee8f515db177e835fe34afb9036a2de2d07f6958cbbcf0be2bc591cb08e7555f4eda352421ea15fc8d320de1977c45242b4b394cf4c588934a79a181c36ca298c9d0beb9aa1d2486c3c240c73db39307df596a944a2ad1e8878c5e9bdd3ad171b6d96b0551df8c8a82b9908f14cb1b2b6d72b4ffb9fdcf79418063d833e7cb40b54b10e25852cea27d630449348228b5b6072c6c740813079b2a9b815949deb354fb68a01b7713753aef2b6a231a875003a94ebbd44735531e78fc6b052a56981d546cb3c563ae9d4d7c01ef1e858c645370b33d08a9ed206b1bb48c7f33201a0bbd24b710f1d8f1d27b2007a4d3b33d645b88462571b35b64d0f5b368e0d3dc3e6eed74a4c84eb463d97496741b921bccaded99d2807ee4101491762155dd4b9c488df6f462c2e8c7a4ba13ec4318ac19b3585e3c834dc37be3618b83d085df2db9a4f097087bb0b97a41b071ccf442ad0d802d0828dfd96b123599888cb656cb2193da46004005caebcdf1fdace3905aec0eefb2d73ee7bf044ec789b27eee670eaa24c7030aaedc6720dda91637dbb0f004b9335b168ea3bb365ac5433f8dcaf8054d399b0923fcbe7991dcd9ae1442147371e3d0937ddf2d9d3fc36de8a99ccab24f3a9493e37f3034e49af3e330ded4ea1bb4c0d7f5cab17cb2542a6cf2e66d8ba1d0c950d8a2dc1ca1a6352621ebb0241022be8dcafb604f167d1c3283afaba78c29251a7a7722210fce9c0343cb68c3ede6bd6c1573f05581f3b8c891fcdb326e8d78caaba6acc202b71d88ddb898a5eebb7f50af3e59bbd5d1cec12c09d12452cb7262d830d23ef14789bffb3b6a09be819661c849d902888994547cfb79e312dbd1b3ffef6f1ea7a0f606a3545bd056c1414d9c277ba302d1d96f3077494ef6029e69da789aac811a7636fafbdb242928d8d7ead40bfe3a7d961ed3357beae432ef6e60004c6c94cfc472b2d294568d2ed73322b43ad4e2eb501cae8242b300377de07df51419120ab608ec2e6c99e788105d6a389f581b2e78fe89118e68d948bd1fe2053729efadfa4278e04a184073b08311d8d40d3af117846120010ee2e38bb1c2c60e20fe1e784ed4d38a8b23046da04c6f15cf88d98812f2f94446139cddaf8a5bb6daeefc45fb3f2c1b130347bf6799abe0fd26838244706892092ea5c1b96845559c9a961a7ea61e687ad99f7bf0b9e9bec48c64d1724ed3e8be9a216b56921aa807c7b10b153088e172c4d95962d1ea373aae15d9826802005f2abf1ea5f55306fccbbddf541e56e57b45959ba219b9fe2ffa2ee986130ea21198cdaef27dd56dc02e0d2665d6e04d6a516cfb931b6f5fdca0286d7e9d401d8bb44e80a7e143139249df32852a0ada62e59a1dc153b4e797a9418166af4055a20162d36aa677b6c009cb06581e84ff839b0c6a6f5dec68d1bed05c341a6e3a4c5309003c68cd94a9649b7874f7e26c30319e87b91cdc88d8cc4d1ab27608cdb8db1801d7470e8b1f668360284975a193fd09829efd229dc6f8631f566197227a56628a73a26873777de1b62da93f6dd5eff2115732ae848000f7ccaa4258fc8b3dc1e7829b503dad60a9f883f9c0b86da18276405b7c7233576d72f9058782cd180391926878c24fa3e1ede88f68eaafe9bfd0427b9032305f3b14c906f7077fc5c4941583000b2bf3ee0a49296d26402da07d2073995ec6930a7c9039794ed4899b7bf9901362e93d315b71bc90703a102dff931619404edaae5cbe64b8e712d68d59dd2e735cab304828d8ca23797839e484ff56874b672010860381931c3ab9d91697798f511972fe893c85f3207b35cb81fbb024a481b43c59069d25fcda0cc13422f6d29a98275b62ebabf8209551d9d293cad216ef561efde3752ac4bc1315e3add96ceb2efcb69fb50f7db5fe489ea233006badde9fcc213301fc853834eaf1f52693725183c550ce656af1be40b13f85a3ca15fe0706ac846453e11a69340033ae6871e00bd1a3d0e12847ecf5af46d471d674945a73241860471c8fa43dd9e8f5e5345ebae09771005769596d013ae4b4ba58b117f9c46b8a00528e2c006e8e3b582236e518efa232bccf477180dae1ce507cc8aaf1ad7092d0c7781caa56c62ef65f6e2a9e44422cf18fb025e2abbc3de072020bbbd929fad0ff19e8d5b6239edf394a435f2c6af6661c026010a1a79c80a7c69f4c1a305b54c6e9875e7385fa714155ad7aaa34a1743fec0c60a81605bab0e98511c07576844f0ae7d28de29abbb38c3c2a30203d1af07724d46a67b94aba4d56b57052904120cdd862388de70bae8a56a99ca7b3ed4c70299356e5eb83b0891f5ee197cf04c6db351835a6d61c27305c489a5474fd60ac39df45f480767977c98d305e220fb00ed11309ef786c7220fd897e518176f9c5465318e5629ac7f7da9b7bd1c072ea35e172e6a56b03aed51b46b4159dccfe1d35639e225cd1334c5f07509a1788f91c90dd9fe7cf2fa0af6c9d67d55d2cdfe122ead3911d791254b6cebf3c108fa1208e7c2f81ede7e49856d8f9b42315856b4562d59d2c11221da76e16c3b0c8e180716b00b61a7cd048914a4ba5d0e287f416afc58c3a59bd8d9a617ef672b77862168c28f764498f14a49d79dc7d2e2bc4017e853aca631f396cd8b63620673d10b8e578c0466c04329fae78a07d0acc47a0171f026263078fe0a5f647ed73d04e017bd042b4daa10ba50ae7e7d18c33b146bfde1c48bba4f38c16ab267d8d2f15b7eb1bd1582212ed8d0306a482b154776e0834243b570e267f65d3705b99712fe98932bac2516efc788842894b650db38a2a2d16bf321221ad58a99f81643e8db2db7cff32be471d18bb80be76826f897fae6960e94faaa960dbeaf63b320a0aae03ae5602919f67d026ac7efca1251027aebd1371bd708aacfc5b230432956075c5c1f84c8b3134bd9f37732119f7643ec7a7d13d6e552fe0c852f43cad71e2f5976a8c47b975bcf42e513ba05249a37d8021fdc1d68d9fbe3f08470216aaf93a79b9063f2f5180ad6a3c370999653289e57da8bfa78f18171d3979a7dbb605b6b54251aaba180c92dacd7581f57094c33bf46cc851d4fc5172a27c250677314763f92885f4316d429b3ecbaea7f778483fe4871588d330cf0165155c9ea8256c52fd41d7201514f64392bc132aac250cacb241c4ecf51fc9c9cfa3d64e552d4475797198a6777cad13637b4e9d32dd8199599e6ab63847d4d6e13b093f9b91430d946a4fe9de77a916998a76a5b5f112ea019aaefcd709651440eb74114d7595d4aeb5cf0a54d6302533b9a36d6510e72952b2370bb1aad7fd158588528a741eebc74f64400ed0044cddf0537e9251e2293e572701fd77d55696f0bedda2a840e31eea290fb32015df16954b0f6e4b6c436ae3b19b5e3c31f2615e5fbfcdae78bcfb4127a195bb88c0d552a136022182f9c8908fb0ef7df78d3edcaf4e537fa70f7de0aaa24a211ff6a547d3930c5f101e2fa33247ba7ae8d92c3b7dc5ab10371a714b53e9897818f0aa8f2812c4db59e4eadbb6c1a80bc7c5f1d585844cd88b00b938d1d6ce3e6abf1233c45c4f1fa1468777a5f5638a31e8a47cd9d210cb740b5ea92868d41c17aa8675fe6ac3dc3cce82d84e8d38e67bdb4155f07ffe571315246c0c9fcf0cb5aa61016a20970d985647d26f881203818f2c751a9a915a89493e1055af9cec84f51490b8b114a9b54e86b384a15c16acbdbcbfca6825811cddeac08718ebb682594b3a788df7cd6a9d8aaaa2d178bdb230aa69b82d61d87f8cb643b5ee15010249f6f8778b5c40492378539cd9a732898f43f3cd70d6199f1d5247b7649db94cd9c0842cdf95dc7e77cc39fc55df836d66cd3f49ddb5d7593650751d48da5c4b518f48919b101746256a9998b3a9b8d86f4bf439951d451e79ee233349b1be8b748a732274c256e4274514f3ee64a9742e84b8a2390fbaebf9850249f93a44488fc1d04e162c5e9405ab253376a6e9878c2e07623c9075878e378f23c0c780f254f1029947f6d8f4cd5e95b566519d3809198666f755a12aa190bae3689b563a042930abb89626cc4af4d61c3691d2ad9316f7bdadbb1a69c745820571298600a18e93fe07af2a1ec3df363259f8ce1d33789c820c7318fb63054a5ad02f5edc094d44a163428ad8a2605c2f257dfc4d4750095f5164e1db23e6c7f0ec65a82382dbaccd50d9b21cfc596fc887d3bc850a646725b384074356b218812de30e4a19d97aa008342f6318b373539268197df0c550194ce56e33aeacdcd4753fc122b2152959e6c2c31f9e11994143c7f4eeccf503792dc21bc65bab0c40cc588efff083a031e92ff30e0ccad56c1abe04367803a4d537cc1acbcb49207aa9fe5ad78b1ef3cf4800d731f5775d54f3e36f88d7dcff6e2e52ff2c65ac132f385a9dca80532aa0e7a1632acdf2b50facc79422a9224869cacf4684f3075271ec6a14dbc5f71b62ce344319ab97f6e389e3f8664b72b505e5a85f22c35fd79b1c6b84bc7f5d60303269ed12beae494c60ef0dfe7be79dc4cdcb13fef9d56f9ca764d6967f796d821e89c6f59138386b8c456bd9d2d6a223dafc65604cac9ffbff2ee0292c465522f1d7b497f21414c2015e0c1b9bcfb3db94c2f5d87182bf163dfae4ba6faeac31e7149040f7ea317666bf1f3c97018b69df876b300adbcd8e54af8203d751e852b603d18ef60250f6f83551280578f62ab72b1bad09dceb3b0d80ba801a9a1811f058cf3b357b662a7fee7db860a43d38013c1dd045b6517613cc143cf94d411f476c32724d315a00e2da1ce48a1f90b7ecc56c66c3c7c4831f956d7b72d1242e24d51acacc15df9849eff4ebf3a9cea63b5d14c05f244ad589a3979667fae0b0284d9a57847287965bd39030d586f5431d9a4ec43cde987154ae29927e0f7900416ba4164fabf475df6fc9bf20fd1d1fd5d5a247c404c97ccd00d6a7616b48fbb365790cd19b678b7d50ea682e43a6ec21fcf6d8303bf94373950a84d0f777aa1209075290e174456f4f1f29ae32033625f5c6cb00d3549ea4f52fd85a88b19fa9817e237fcd1687c4592ddae3fdf0957096691a1aa75e6da09d9c3097bd08d285e4638cdf16df28dd19fa3038e7d11f4e9e6535c1be27ff2dd1711f53dfc67c28a0dd6f6d94ab770d08882a2e505da7d2e5a1f9afcd05ba5b12f8ed697d7be6b7ac8df76fb87f0c5d9318c497a0ab0c5f7ebc41dbb339fb978fa3f0ce0d447e881f71e16331aa016e44da08da294b020048caa0bbe3257c154826619092ae36cd31ec95aa03698577275e0b263871ad9097fc25bb45f7c2a6eb1c77151c55cc6b92cb76e95cf8b35a3a90bb5f4053e7536d265a8a21197cc62055e75fe154e0c446e5a3d59a1f5524e386a45c8912a5ac242c43b1f12344504fd6d789d0b10049ea9cb0d03057d4cae8990b315a2b14906bcab83e7f092f1b996044c290758b56e5749621694d40ea71b4af0064fe054fa864b35fabfebbd4057bf010c30529cc01ef2f74c930c09d40eaa65d66cdf37d1af7c9a849fcf3c139a72180c83b4e77a977b1a90978de27226eac750effd223eae5ace2996339741a0d86e241ba4b9daa9b3fe301a064f3ef9257c9cc1b2bdd021916e10f6532f332a64a8ee71b4ae69fce92e7f214f174374331ab5b0ebe819a97f5ccc006d7ec789bf8a78b54823bc2e87adeba504c56eef0d28c1a06bb95351aae18b66c7bc2c45240a817e949b47669f2cbb27bf22388c060142796c98d213584fb9f7b9889e97239b956a1f4978618efd7581a58eb0c7d4901f03b4d911c99138d3defe6c46e65210b29741352b6eb3650629933211c3dbc3b65f326b205087612184a5dcad9b7ccf5305f4c8fb767e9b3065a278b3fe81ed63d688548f01e1066ec0c5ee076f52e3186b82c142bf50e73b5ee7a064ba9acd14ea91cb7eab1edb3bae5668ea9a0beb767fa234e30ace22aa7f22b03932febe40b6d5e7d02d46f08c934b19dcb6698e8022269b0fc9a2ece43f188a3069c697937b4745d7b9cf6f2e82e5728718c31dd5d34b63f82ec4e7915921fa7829c9fe06fd034bcc63cd5cc5c23195364bc1c420b9d760c20f1df875b5e71aa123e9e341a7bd44ec70f7ea820a40cb7d7dafb614b2af7fbd97a2933c9a84994cbd103fe60b69a8900e6df1f0daefc983dbded29c559df033bb3bb637467b338500031bdb54929949659fc326e5e7d882a807f2ea27477ef07018b3593e81cf23e4cf60073c10509d59bede311c8a16834f730f1f6b86115cb317b3d9f32d5ca7a562521c57cb2bf63352df5d09d2167b404f3c42609defcc9a367f27c01b94c79e68fa7603b3f9c8bd32701dc3acdcc246ef994c2f7495ef343f53a177cc0bbb34bc38596f03d2f62c1b6789f3c75594535fe027ad912d2bc54e639d8da41e7134ce2e5d89f66798d0a55ae63131c42f4f39b67bd38e216b1ac231b0f5c2c28cdb55c013a39419025523585938ee82d5c8b6237cd331c5ba55b977d7432e17c663aa214b553f2f085e750098b2143822d2dd03753ee121d3d2ecd7a140c3028decac2e09bcca03946c2aee711dfa56ab02a3b30421c2228949b352920c337127ab439e58f4570a91813d204d342bc5bec8ea191752c51433a5055a5ce807aed73074cd0d15ceb751c0f5ca20daa03054ca0012981114750de99e37caa5dfb4a98f3aea6be217a17c5b846eb1c6650a2b77df3215373ae8e6f278bd134becbbc5eb1ea7c4f20fb184803dbc03063c0d054de57a466261ad7148cc03f7c55733336ada1b631fabb68f6d85484e5e25aa2df6bb4b08f51e02af652679016b8e31e8e81407385edb6861f3b1cfa455944c16b3bd0f10eae6ec82f8f2ade4f13da5a98ee4e197baacc8bacde708d7ef430971e996eddbf8616dcb61d11d445853187f1700a695c7c3b1e4fed294cb2d80473fd4d41f3be2eee836413ad9a1366d869ad2a74fd73107b4b75606e2c81d5190a06f5a9faa1094df0751d5df2f9bd2d0147347c02f5338ab399462c2d95fa16119af2b360614b20be3c408ed065be0afd2aa5e635aaaf242efd2d24e9ee0ccc83736e0882c15ad5cdbbbf3a768ead9120029e2e4f2375a0bd44c7c7452d2f76efed5ea53ee5d20f0592677e7cae1ffae0a0481a4cacd1829f31abd031354494db95f183bdec91b7786d8621b1b71d75af23cbeb5f7daead881f7c77f65c68b83cbdc678ecb4f72e5b0d1e839059a7e18bb126d8703fcee1b516c2ef622f3e6c0695d0a35a56faf596a208474d976ee49116f160877a3360cc3d8aa6c3720b1e2da528622baa16036c55c57cf854e1b1fc6e00986bde0e04564e5d7f7302b7bbc70507d3231d0f1e136d352b51f2ec8facda5fac9d39522dfe2d4509849275a4a270fafd3cd879f0692b6f3db4132eaadd9662d0cc7c222f6e265ce63278225a61283c1f15ca4d9b24e859e526fc16f3c7f17b65dd065cd68c90751ea56557b7530dfe710c27f8daf2c0b6d4dcb9c987d32b9b869e3fc33ee1791256ed6885bf01ed00f14d0740251a3a372e37bc58e6259c2c41cb0a1cc85aa6f437638e8ebc3a2c6352ea3658314a2d5f87a211e9e071c542d2ee3023da5837440bed7645aa9e0caceed1efc92ea6765e33310bdd83a9b14f355220b52a5e2e7f171c5947c37460c3c5f655aa9461029346b18ab8692911bb3b6515b327cc0d67311a00da3c5717f993ac010914d605f5d348f4cd887589b13a6b517a772a4d482045f2689147814643689e570b2a86486464a318dc74c6eb0dac5e92dfec033ebc8c81ac13f2dff7175da058bf2b534fa5de1ef3a7715f6f933a1ace3315aafb841d45337e80453b1ce81c49828e29770d4f52bb98c84eeaa22a080a62e4475f4766e0d24e4508eb8c4ef7272cda65037a1d2444fc5fb6bf51b32d51e6fdf1a29eff1795e8d75db6bed59422803b7dc27af15bf31518ddba97f6c929a66d211b693235ffcebf8cb63cfc067cb19e3fa488274772b678eafbc31de658823ba00210af331da778edcd83c4f3fdb3c83b4cdeb97205dfbaa160687295fb840b2096f7ffc8ace0fcbfb771292e6a4cd03d5fb0c1bde868b4df08faff7d6812558b2c4fcf98ae7cd2e8a8bd2ea0d066069adbba4575a6b5d04ff9db8f7cd0ebd6da3912a4e9f8c043232a28db38e1b2c930b4270b59cc81f43fcf238bad43a2661fec37505d3d21b7a1d5fc60e7c452620d78d4ecd78cb02ad4be6c6e614c7dcf46db48fd078476278e7b16cbf4773df6808ad5d043b1d1a2c083dc6416bfcf0139b1bdb5ea74e27f6df34e02f45613c5aa4a23b1354e3622454b4513264f3e9361c43f12d06e06d82bfbc3cb2e786db2ce62c0db35bb50c5d75e21aa81c79da349716707118c310978a0a6d8eea9ada1e51e041a5b570910f204217166af883d3eed176a9c8aa42bca535282e05096188c0b11a47a2bc04be933c8bb4354c3abb41bfa39e1a98adaeb384d884869837e8d70ff53427865fa9f4b5eee550c775353e473c270c8372df59c44a12c9164da01a98d7b434579ff7ee4718a0e99334b3f3cfe8a198b4f8dee70b26a9148536c79d65027c2c0faf9fef0b3f15e54bd9165d7986da30fb470aabeb7d114e9cbabb527d902a41598ba522168c36caecc20d9d9a760b856147fb8423bc6f59bb235edf761a8e76fde61cbfe1d062328df940e472581615e757a9eb86bd25d85bc2b4de3db8b881c6e5816de4a6edfde476667e8f0fbd7c35d7956d2980fa38c7cc6a87c2d24040f1845ddd165c33be2e90b54a428c66d16adc465d47ca1e3718c2b8009db3c408f6c88ce72d5c7869fad7d9200b8ab714d5ffbffe9dc4b6b1cce9a876271f027e832f95f52d08fa053ab992b920585102e2d8094e29b8ac3130afdc0cc3bc0f7390ffa5afd6c7163383db19d6b1486315458364f9369fc1b801cf683737664e2997e672f410ad04a2e03f1b8d92e470099cb6dc4a6d709fe6edd2fdcc3c3722228ffce8db27466725b466a0f74af137dd118d5385adf192588f332502d214c5f9981616b7d0e5a4ad99fbc0f38bb985469d4017e76d191aa8ecb2cc2970406dfb81d902bb732065cbc47f4aed3ce72504e2254d7d0e0662560362ff5def6f481bde4ceb3ba3854978dfa80f55389ee94709b4cbddaea2b57230ea79dcf318cc3581be15a91ec897d70f0fd08d3b98e9db873f965f3b8c8fd43ea4281f7938f1e972c97ba894a6b4e503e3315adf5e7b0aab83cc69436fab329fb347633379037cc5d7a9bbbe899007a5f60e6698a10485b49b61af486ca81c04cc9de3ee2576d4aa4164698c0769e3b727423a8396b3667b43b4dfc7a637d8605c8f690c34fb9de7a78d8485d21e72b3b36bc9fd24b3c1538347341e11b9cb4172794d56ac48d4caeccfc09212032a7056909afe2f948a2d3315b04fdd4a9989f4f9ac04ae41c887cb58409a37d9697a7cdc0fddd09bf29180aa31151e7301770d0dd1ec0aadc38a6fb5b901a4285d1e3419c12b59313ba19dca34666bd09aebe5f42ce0ec757183a26cf42c705feeb2291f4343a2f95e7e22c9f3a051e528ccbbe3617ccafaab59f7d3b6604ca884865bfc7c5a9988a15d953a625f99e4b2b943450447f7284d5164856b5ad568baece23beee87671e9b73b3ad070a6e91ae51e26770dae126fcc8c74267428d4723129a1bd977acaded7c25e911c458583457afb68930a429cf243b8b283a4935f192b884cdaaabbb79ae5651d4c98b30dab02d90abac7f2bc8d426c51df7fbc4d3de28d4adcb920f9194bf16aeef4a5e6a349dc06f789d40220870b167b5d7575eda8024f6590d27a9ed2e2710e5a02e4c2ffeac5c726c7deef2bb9f143ff78d500f0861fb5330e3eb98a2db1a14263899349d8e76b10d69d4b6f7e63bbf8381a0d29808725a5688fbea6b5a4e4412d1d7bda894d730d6fb4534a1f0415e4bca4dfec2cbe7bb55913fb5d0c85c151cb97d681fd50f6a19ce8e94a9d7c6850b4a904ec282ea8d5a71e5ece9c15bcde0ca1bba75228951fd488af40cd4ed946bbb23d0ca0d2ca64d4a9ef46ae698ae2dc80026c78f9a3a6eae52aa8905035d88b9c1b6adac39b2a9ff7cceb229e4e78fbc26b7dd14f456fa6de56cb9cfd5353a33e7a3174b344acd4261fcc1e2d5df455c15f4554f5fc71761c546d4b68c2f3abb4d09f0baf2b7c2b71cd41b7fc84682ba1149d3460067f82fb65d5c3194dcd2db888695a8bef47997a325b638ba409e9f507bf42c5dad23e9b39fc210138670d39664c2e4018d976d1c2062d67af134235ebb40ec62a5b1b465537a19462bfb23347c3c4e07c0ca177fb98cfe0976e1b0de01674394e26d9ee77dbfb365d6ef773fd80553de20896d9dd1c6f089191e797f1556214fd8064c84d935c8523fcb81b93fba092897dfea4b98f735393f1e6fef2ac939026d98f498be96b362bcc896d92009c60d8a616f644b0f1bb8bc4238fd0013f13e4fe209611a5abcf668661048661f88d117c86fdab99c8304ccdb00ca33062cd308cc3b0c95fcd3a164326d87b2192735887d6d3ba51eaa38bd8a63b3be59c15961550a15332ccc36acdc8e6479dcbb0f175e7b0bbf40459067469a1ca2d3bfd40de281856efd429ff9689b4647b446b357ed8a2852c4565d41212a443a11ab795bd21d7dcb70321b9b1c4ecd96cc680a6c62dd50ce0b168da95e26a5c53499b5dfb1053d5de367ff405596c86d33b37c25cd73a5299dbe02e841f177020ac821dc28546444471d9bf5c167c36aeb509c9b047f2e618aa384c5662182b7b39d94e4ace817e241dfd6a4ace4d917913b74db0930656ec5df2a9210f7eeb0e200b93300c9089fd396e16ca8c35ef0994d782049b7882eb36fec134da12d0183811d1d8159ac9a5333b1345d1347b8c4234efa12125ee8a59e5a79fe38681236c5ee6cbf569eaf228629408a989f653134964f75e9e568e0ece1d2de6714af3dddb91c9c7f60ef2a9722a4dbabde498101f38e60d694f641389138ae678bbcee97ae101919760ea400d5447ae5f6013194494d37d8ee11e533fd8ee4ccdc03ff7bcf6666b64901d70e28738fa17c644c21798b936f8af65952dc5443aaa040a1f4292b83c3768c55eeb1c963455da52ce38c9ca6e834aea3bc19a5394d9c2ffbc0f20bed87d54701e50bed498282c1d459d13bcd1cd2a9cadfcd9f2764d3ee321afd0dfb9c8a48cecae10ab641c9f327353b28e2239b633b633c78e1e26c58c3f819bf9bc5085f6000e59ad3a6f1f0d07b60502b5e22989d82aaea2fb41fb083e6414a3a62a3826087ddf8eaeeb799e55f0bcae2acb9ee77bdf4db7a269a9c2cbe52024e4e60c210e2d774e137e700107175563374b7c7363ab160bfdbccc1fc54b465db39d25cc59f7f802260e496dc45fdd49463fbb9d25edf1d3d9ac15bf9c331a58b8fc248330f04ed5a5f86bc8c9883f3c10f6c035374d95806f52f02bf91ccccad5a78b479f24e989b1375135f5bd6f5634c7673bb6f25aad2ee9873e5f233200f6207db8ab0c3d07143dcf19695b4ed2a113e77fb8fb42674961ca57da131b1de4dd1e15e63420f574d94ae996f214bfdfcd0969e82b3f2699d57d7107ddca3f0d6e548e38e21b59cf7c694278d32c3afa068bceb1f71b4f0a4f50a13d1ea1a5d4be6dd4bebd97be5d96bec592be1d92c9cab9819c38d9c3df363b762c75fb1c37b3beb5705275a837c9392d71da952c81251f270453ccaa477fdae24aa15e8e813ec8b84bc8d0eaef296d28bcb7c04b2a429a0a6b03a9c661aaec414566f84d6c2b8910d90ac22566b1e3b9aec94061c6fedefa617a92734347979f3bf998d063010ae13505d716d52d5cc12a647fefb70e357767e30c969130f1e9203a4bcd5e9107482b1860db335d85045f9c6fabb8e13c70f34aa0b79e6cc9c90e7cc4420090043199662a48c1f63beb8a626723e9991a699d3409e1f138b56602765611d57b334fcf606d563b2c628203386668898fa91bde925733b19f51e626c95867fce09db98df8dee4fc0b62467d4d265387a4b5b5c60f7a14209372e867880b2926ef4dd3c63df50da10d40196b560186ed17486094b884c23041e51594c130cc7ffee7fffc47356f637afc8f7fbfe7aafaf7fff91ffff6fffedbff5dcdd3f1bfaa342ffff1fffcdb3ffef15fbdb11dde7ffee3dfdd399b8ff9dfffe37f4fecc73b94fffcc7f40765f8efd1bb6cebe6f8e73f7008fa33b66ff93fff716ec3ff28d223fd67ba2c439ba7473b4fe0bf56cf55f51f79936e7b79fce77954ff8bfa8f2cdd4b02fbbf0a8896dcbf6188611829a518d6f8db3ccefb4f48fa3f7c58c91d5cf34f63fddbfd93c53079e24579201482ebc70cc3c87f621e33fcc1b1e2486a82d88559dbffb374f8f3552a0cc3b88a44083f40957d38e0188651f13f46bf3f3cb417f5b41513e89ffefd59baff0165823f781257832bc4c508dce40cc370e8df0dd87f9810b5c5b735db1593f327a09a7fe90a7f9aac22f477188dc99d2010c330f01f5076ff833706bf8303a60411bf3f78fcf5773f7f9dc1ff89d1ac3965f230320c63ff21f99b048651d07c38289c459a210e1d861161eaafd11f533eb6d4e5e852a919628761a2ecbf02fe9f0d3234c656c19c452ec6306cf1870933ed7f9cb49e0b2bffc6e78a118161a4bf87c17e7ff815f59af49f928522f6875fdcdcff8da7308ac2a4f01987f0c0306cfbc7094cf1c7d436ac94f08d88bd72d46118c9f983c4527fac4e3009f510c86575f88397d47fa6b83fa0ac0e60be8bd36812aa23c3b0e3f197fa5fd74b055d44d0df5ffd7bb4ccc723edf7970a2f50ac70fe1d346d4c13130c69501bf1672e665906ab6cb0b4601ed0da805b9654e3086c4853ee4c350c3357bd50a7da47dd95afed2a6230d6d3b70a14a0de2d79b62a7faa86206c27842f2e7b650223f52a9c142156dad9ab01fc3ece01b5fc32922edc2004b0432d09bad07453f46ef08ed2da12b058ead4e9bffc4988d75f2fa46c0f368a4324b21d1722894f082abdd2c58ec41f189bc009ac457556f6fcfe97ec399a145b2e46819857204e63943e4da52dcf432d3c99a2b0e222380f2b989be8b7cc711892d2ff1c63f86d0e970e876987638c57ace041c4ca1e7b9e7a620b41fa77060c3b884c8d14c8aa8a21b42b8dd06a66ec6daef6543b3893169e5304e7fbc00a4f5f045439987c5b05a6250ec3b8306890b3d11133a0df0050ae648636d902fe600147450047b20467b99041b6fcb8ca734747cf8539a5cadc2e99dd2eebee9eb68144d128220eeefaa2df640e3f3b42b712f0e600a24b0f37ce4eabb96bf0fa78fb657dba60632a9e07ec004f29653bfa9c049d8d3f66c487f886774d79cbb5d167bf71d9a53f13affaa837a8a91a03bddb3c0f222ba46f5cd9154e1be68272ad70db64fb990a5481e4cf107fdf707d746013817544c85a4585f03bca21a7a30d452d322001f2e1d17eba9c96417b969a79edb6419ebbcd8c3920d69ef91897d53ab938130b37a60118f4adf6d87c1b7e229608764649dc2eb27d44c26f4356980339bab5b4141748dd96ecc9d6a2491a1b9c341114db9115590bea0e2b885b1b7aef80f48ceebc4e02f91de88f5c1002ad903e3013ac5c3ca26eaab8d97e483a477cd550b3d403af3e8ed817736a4401af2f1e353ec4acb733ad5fa7613d996368903a776ebe671b2fc6874c87304ec92417cb9f09c664b752d530520f483d74d3eaf0f0cc2848cd95375b520200314f99c4288df1c1cde8de0db7b2e30d3b094c29f3ab99aa38b8c025d96dfce9506a528f9a8bc1826d7b6725716044e1ec2eb7c4fd3caa8d0f1966c9c15c3b98c587edfd3159d617b14aa0811406e5deae98355b609ead74bcd1fd85387c67a11a769451b00eb258fe3c1f4acdb29c5f9ff552db2693a2a9526394f0074f119095bae7f825316a804cfcc11fff39617242de44aeb40dda995776033dd6c876db762d2212010c79b58cfe691b26663fe84f7dfaab28b53ed3d1a85b428c822d345ccba0648185659006fae470eb3259be9de116aeeecb465b6233d667fa8d5536c6871585f0192a753873662b22fe529ce26a2c9cf7fefd42374ab631e9e97e89a216e2301ac10ae1b4cd5574c9639673646ecab65c75f6f0f964661fa416c02e74490168afc0dd14baaddcdf36d3edc770b0ee7043cc1acb2eff96138221045910395cc8ed7f9f5ffbc3c95b246efef3f8e09ce96ff2b99588dad3bddb47724d28f8b53884e44dad179bb8432d6c3a8fd5afeab4504e1acd97d85470514145122eb2b46fa16c0d641b8699c94a59a1748fea1c65ffda0455104e0f6e2ae59913d267469a4845ba440c2d6207be422e7aaaaa01af90275be9731a93c1e875e252363df7d93dc2c4cf16d4a35711e4b99051d291f942ea956c89eb94b74be666104567c8d1905f0f59127521a898c5387d4787e62729d8ed3909c66b863a7c8181894e74048551ed0ae1946356e9cedb255720f6b5d44962c2a33981880db1205abf0d325b10dd4be0a4756b7e186906bea7b2bc64555624de5f2e49f378790d880dd32a47ec9017b41445b20b1ef2d62b14f494d5249c6d064764697610fcb189c8d7894546721d095a1a291beb449b47b7c06b0b99c0dd676fc89f541b223ede372722753f3688f3542063060ed78b1e5dcc46622a46ca4aa2e9d927c83042f37a2ce90b782ef4c0ca2b95aaa31f25fc176503e11910099ffd2720c61413addd6028d5b54786a1bc1e6d3aca42e50740a05ca99d08036cfb2194256591c48fea4f026b1e78393d557113443ecbc35dc5a4ebab43eaa9a4d875d74d50243219eeaee802d3fad8a422ffc66a6281864ccdcd0e220c89119803e55136482a28d1987b2da8736b99d4abe8b2d2b377db379aaaab730f19d1aa100f75eef5ce1cc8140c0784ae80e393b80d12dfb7212fce76b69074b31033a1a0c07da2f8ca62ff2cc0109908008e1e0460e7297f9748f046146aed1fd4b5c94e7fb86c8064486652f700d1a71b05c80a106f7a94fce6ebf9520c4a7251c68353f5511368ddcc444a24e88c14b600e6d500184d0f8fa42c25bc10186a8ebcf2f14ea10f5f5d622c9a2f25a55b6d66389d893742f4c33c5538e34f2c086e5195a3e3025092d26cf668c26f15d412c6ce53c1d190aa07a8d466d15595d9e6f267795e97b82f5b4066a3b4db5bb7ecfeb0c6e4647d3f867efea6392eec9f6fbdaf0f8ec0d7db7d7f217ebad87d44edea06a206ce2896df26db6178aa52ec8bfaee6badabd847c34d9e3a03f1f5808bf79b7d455cc22599207f0fd518fde5f5c7aa6710d4b6532f796f10967836a4082d1d6c3d6c0d9a36ce8b781e9879afb592bdd3e1de676f47cbe2d6dcf5bde1e7d83181f9bd92e0d3d872dc4ebfddfd322e6ee4faedfd6b33dc8d79da4f002e5c88af8ff89408b2b85f8f3c5f773aa7db1c305fb6f303f30afef25a8cb18351d4c868dde59ed7c068dd8564dd1e6f0ca1fe29ed8fdd936c0e85e3ddb860d512ad3e71b6d7fdfc95152be976f1e976d178103626708e527eaf248b5463c7a5204bfbd26d01f4c0b3f3356b8294f9065552b088055cdb030d774a11e1d3597d561fb43f364fcaf302f678053b7cb60aacd35b6a5741b3958cefbed64e4ef6f41e3386725be14927c38c11daacd7121f1494bfb31735b10407338bceb8dbb5eca2bac67d4763ee38481e25d50b417ea88dbe1df05067b124d41b0c5edda026b0e97a409df9760633e288d7d5631b78c3fa0a0a6969ae709fd31a3308fe33011d84389e9eab5abd7381abeca1e02a87725d9db3dc4fb38f620bb552df2f6253bf5cd0c1224f73c48274ae023a12e072ec149d545d8c087b66243e7dd3748286e5e6f26beb7b224bb6b6850a5cd50091f1eeafc54fc442a06c3afcbcf48df91117252e93356a106d4a92e7ddd1ee3e7d7e371548032356315fe7e37600d3dd34e86a473af2cd9fbadfafc1047cf45db5c7c82b4bcefe498ddf59ac68aa5779a065346b72acd33d69d69e419aaa6f68a11f364a9b8d27f421e39f14c73196bbbf78d9fd52ac99642a77a5c3d5459ea6ae81b3950e2302957bfbc041064f8e691c6d2b6cf114256347a7ce0c7a293942258a1e4d252203179cf14df949e8494016828d974dd434add9ab0a17165756119b75ba3c5e81667820cede594e04d0b9e79f561143b5d001ef3becdf327e32883d68e8ccbbf39c355fc1a848acefe29c01d3bd27996d2c314cec34d86df0b08db1ecee924ac0fc1eb44269d4ed73496d809d641e90b15f2b5e93baf163c92a795c6cf790cf19cdf125b566d1cd81f93fa9cebffef663eb64666bc94924b66131e6749efaea779e2b9983257866e14516711ea3625e9897a9e47ec64d62886772e5da3f58571035c7c759cf174d270059af15cb3846dafe5c2bf4fd4010334d661da258ec188971838f60ea99e31a853183ec1ea2ef6efc8fea18c00637f0ad401ea42ed002c90e902fe2ce27b97980dce259b02e48f97ca8dd96d9b6ce0ffefd4e9924e1f6f21358857a468811854948a1afbf3a40a465e6d83a0e832e41f81e3bb3062fed08621d4f6c844078726750b5b04fc2df80b3be3f246e1098916ffe3cf8900308ac6e935710e3e77fe6c741fb963e4766a1bbecbec524c2395adcb4ad2354157d1f551b5c8da9bcb3db9cf26add3c9a2d06283f499d33a45b914afbec41175bbab8c64f5cbb70830932db65b25b5a343b46b23a43fb9a269494e2e50791fa1978d8fac9433aeda8632567d3284233dffa7e1e4fda2c2139c2faeb942f755e97fa85d0c737005e5c2832b93b5a7c426eeddb8d5b5287bf54bc8e649184dd9195d33675ece35f004438cf0fa788ec46f9bd6445c7ff7c87b919689bd7e56f39849fc59de10dc6519883e108c65098e7e63dc69a99d1e169c68d1994e13bc68218eae669c68959e1e66346f3198ce11e46bf998ee12d465598c7e16146a7988de14e46704421ead22890c8df70b0820999fc6db18f59d75631fb3b3e3acf7436ac3309700cb7097f8ab8d32c26aab92d2ab032c4b12e83a6db33d673ea2ae31d3722d4504e873542676eada640d6777e3945240674697dbaa04478d93e90f7bda117ec0e21a08f2b47663034f1db080c310ec590c3f1196963810110d3d9e57207fe5819cba7b3b7b7251f22eb608516907441669500f0aea86f8f0ffef7a34d87e0cabe61ad34cbfd93279fc93cf7dd06663dc042e536342f5e4ee5b489c403b71cc2914ddff5d085b297371e197f7f2ee323c7c1aa1b00737240a182efe1bcbe6c0232aaed0bb6ceef8e23b51083df917f18b28bc5bed973ac18eb170b32629861e9dc255f53a3686aa86acc3befca48bc5e02c74a3f999971bcf854707519c0afbd677b54afbbba66f3a567f9933c32c88fb4415b3dcc2ca48afb6a12d910d1eb1974ebea94e698632154c8b81d19ce77397788f0a6d9eccbbb255cd4c90fe2fcda8a9e0e050a4eff9d88e0500319c07c27869cbc0008fdbd2fb692c136592da4a219b1acaba92c5f7594df46ca0c8e951c65b23125651f7801de2c1336f79ea6545bac601226ba81f316adad7652e247bc2a6d817b30ffab84e730dcdf12d205820c4363c806d32cc2f87091dda83a25d158e8668726ba30320c7b203ed4f635ad6d1cb779ac36b44b540e0a51d7715f569ad26adf7887dcbbb633a7d8dc47b2c035ecab283d027b3a72857fe4822619b3bdd709922008e2f74e9e6a674f937c9d4459e4dd5910f973836fc4a82aca8cdb6c72a7cc4fa3d0ef162bba9d92d816950b728be16eced97cd53c9fe41870545a4275535a1d0ef7caf8a4814e2b812a68b9f8f71b4e13501fd71eb17a3665df82f5c87dbf0920e4914c9dc9996242ef3b29628653bb377b67ec3955f429e43c80b43d2e998869734bdff0b6888dc0ed7c312b64bf30538f064dadbee12f412fbfaf9daed04c04891bbaa60edaa1c8f7bcb33608385f044da36e40fdb042b351b18663810d920a049a6198848ba756ec5701162e758dc1d60b917f4a30389f6bb906b60f7b2771aa74c4499fb7f7017c2d103e820fe2186fb359d1aa5cf018e0e5381ded679a2768003a0fa90a28f1064676e013963439138b02f0021b152263dd5eca97df62ea25e289ac46dcfda31414873ead85c2ce60b94efef8988c8c1cefc7e11dccdfed4f89b542ac8f852f6c6638530ee9e670ee29584354773bca93d47b8b85d4d23e1b3d026ebfcf24cfc7e41b7ccfeba5c78e3c41fc0eacd5c37ed9ae2a7dc7c5a8aedfc7058f00ee870f37bc2ac52f8600b12b9c2a29e79d3d0924e82b6adf68b83299368cd3804445b8473ce4399164f80de5ab4ea7d4913f9c096a42a72590cdcb10b155c330c571bba471ccfeaa73c93246828a9681ede556288ae9206ed5366681a24f80de892578024cc847dbdd84595f880323386265c1155f7e29567272fef89b122b8309590581df3966f588fbe2c5c944eb342e08723221807afb43a23f9782cd9b01ecb22b15834c44d9f6f9a323b008b3ba9ba58a479f1db3ce2a40698b3c606d6db09e27a68e2a0b968e918318dd5707490627b95eb684710aa14b6ca60ba3978746b5e7d8b8369f445ff01178cfe2d6dfdc43820ef563105d43cfce5b53dc3c33eb51c0a2af7dec92e1b8689e5fbebae998efa0daf6823ee979db9c0a89441b74c740b715230c13683c6b3027787e70b164ea4a0303bc8cd94d0c45c7eb99857dab0e41106f2a07805ffc33fb7663604b28528dae53470967fd85d2d5ab2f02e2b496da74adddf419c473ac060231f6b54ec6ab71e9f41bc51ec0b70739fff3c409bf6c69c8a282c5232e10bbfaf9e86247bfa70169e7e3b264f1a99cfc78120706fdbd131382e717c0e94d6b9f8cbe6c202301d332d09bda915f03df6bb3c458618551847f574901306d0277b0c400334e17eaee66764be777fe3822d200693d0dc470fb2d0e9afd577b8b76ae101235e2aa7d8b36302b36481fe46f7a206c7d4aa360fe662c7a3641951f979a6ca5c70260ba47d5810ab38036fed76c10f35aeac75c3162787bb48b794b96ac59accdc12fbe278652ed8b69d0b7b82ab73eb9dcebc23c9eea1eeadb1a54acb5edba68bfd5d957ade6dd526839910fc069415f7d502f0cd037d842cb33045108c32ca270212c354646beeeac7dcc2031dcdf4a573bb28a004dfd3a875c10f22b318f2e586c63000dcdcec83c5020b4ec6ddbeebebf083a3b6e5cab01ba9a5a3e426dd45ea00b8eb20301e71cb42dd93b888e5cb05be17477fe661e747ea72a323635dcb5718ddc365a283b9fc38c79cabdab2343e5492f704d0f336bdd7a6da77addb09fce80bde7b80c315c2ff92085695fce90fa3bb23dd47146c6a5388a94d6761ca35dd745cfbc5f18822a9369dc2fb37f81e78e31ab06096035cc3643b3e5913b3e7fd001abcb237cacc352dacc8c5fa7ac5e6b5b33c2c6baf85c4f38085cf0483f08a8f502630e6d55e5c8961f7543ab810569fcc93c55d56cfdc2e3dc27a9a4da282210501ffd3d1fe67c309c3d384424f94817706250804275e98a66d6b8c9c3dc566529c90521ef123d441d05e00e81e3c64f6de8caa4030f4b7f673876402974434d1a2bfb24667853686cf34db4b433aa510cb43cbfd8f9213e837baa5df1a1929ff92f567449b6716a816dbb8d271f40c73341161144f8d6ca51b3ecf6da53d34f0cd3034358c04f125dab5521fa49b87d8b6eafe67b0866da5a18f62fb974e14ac3ad1a50850791d0163a82d61fb83916dbfee19e9d2aa13e6c450f3a1d0f70744859744349b49d326c6bdde64b29cf538eab9be3e1243c24f633565bd4f0f1067eefe61a7d5f50c1a8ae57192d27029a1a8c22efa77c61c547e915e261e9811ee732d0de6604a94785e8dbab6d5772f526d62017b063553de5dbc298b2d324beb0fbce09ec8dfaf4c6cdf49a8eeb322cc81a732537a7222e86cb50ed2cc88674fb9db0f202eb6bcc9d5eaf9f6a5730068b626d4f1fa581d6cafc4818cf97d20a99a55672e46b8753186e45eb441b2a38ac64f86b97f372477aef8f26acb0f0cb736d097e812486d23238ef4f12121798d850504ef9eeeb7ae62cb841a2c5c05b4b7b02686b71297ee2ad0afdef4ee1588f8619f7b0a98d85c391971fb35e8cbc24bc3fbe1fde7b8f17809f4283ab816a93050877e134ce3890768053754cd695432a619e3193ecc6d0b4a9bfd51d1ad797354d4887d3891c3e7206c54dacdfa86b9b47d55323bc2460ff66d82d69dafe41f353b560b5dde28409e093ed6fad0b9e278de175377bd38496ca00756d5fdbd340920dd325535c56c430209ac14801aa37f6eb36f1cef4317337f7a3ebbd460edef067c20ac1a35b746f8348d75f431301030004c0e842093ed9208d5fd75a306c90dcf381104d37c65ac7fc71741e2b9264f3383363557fea6f85e85f8ad8a07fa5d36158e0d9850cf73e8c44b1f0d3dc58a1ab03a429af9e0c6659288217ef6264f82be2cdd0f07bbc24f4536c2ed0b315623022818467b337f276536b43fc8548a7aa2e146701498e509202ca3c13f717f86dcd7917dfc6cab860a7fd08975b4674174c9cd7aa119e87b31000d8cfb69874a60360f9a02cce330c95de8c7be3c16b38b666a9589b301a4faa75eb6d411dbc4a2431cd5dbb7d2dd4c89df12fbf7c8cd6d94c8cbed3b5b00d4650ddc294aa54ee74a33004c190588232f789f7ee9efd56248d38d71d81f86965340974c1b8f987e7e2ea57b1428fe7a9cbe0b59352aa4ec25629d761655d26236b8ad972725cdbdaab61abe543dce71f81170cd1bd64a6abb0e20b0dd1dd7a754577940ee018089622414724e0572b82db1df412991dc9d697ab97868196556deda78257b094e0395b51d2517762ad2ff2e43c2898f555dd4cf51ca7f2e49b7b75eeca72bae07a770009a6c22d2560bc999b0b7a68b0e3fe04535dad10866ac852c6dfc89cc258efef5cc5bce9e2e9590679c0aae729a7f2103c31fe681cf050fe1276bad6c770aceabd22294a31ff726e73b86b0969b9eb5138b967ad9507c8f3b4d9c9fa3bebee3695b8a0b7d76c59703087b7e0401020db068300c8bc9f0a543336bb23e0d2d2a827dc0a1500960b17030ca8cc139025b7ba143e28ecab9209a8c86913087f60509de95148d1c4d72705b81975d4b24789f65672a67efa80d3fa68698623de63374bd8da10ffde265e31ea93137917e01b10da90fc49331b27db2a240b436a96cfe8de593f41a4baaa52b42ccbee1f2474acb7f3c23a1a13198e0542128f8682821f96542bdf7305cf60bae9b85e02e0f400799399949c068c695861f7255e14a9ed899b2d9e4b183098278126db503bd58b29fae87f4ea35812b440b37c96f94b91533645f70aaf03544cbafa4d90fcb00286272505fc2691b050a7367d227a883d391c2737180660f17cc62f8ea757c2833ee41ef6d60986fa7c12d10a7f52ead1758b15d84ed70ac9b5ac67cb58c5dec707dda0e526d61992cf59edd4a60d58a174f54f2753203d4712c5c9019c60c7f6a3f0b781c01cf91b791fa2074e363a18d51a642060291f5db8d1c9121f5315da4d5a7947ed7cf56623967458cc5f7aa21126421af4bc133ce0ba83fdbeb219ab80eb2535e968fb9d0e8e71219e8aa46ff9b080f8d43b3b3ba085c3872631a84646062ade8e58a77ddea810dfbe86a78459dc85d9c7259d812a36f8a43198df1b0867f665030f305ec5580391aeee4021f9a54c22b1ce858f898536ffe27e054eb501fa02514dc1fd52e0cff832fda199c47194621338f81014634155b974f6c6b79d5f28f9267b77c7c08b093fabbd738ad16392dfa5446d5b21db47d275547364e62de3789bb920ddf9088ef144f4de929cf3e6c3701eeb140885b33037e836178bb3eed7f80951503322309cdad8d3b9381a133db29e8536f5ad7455b6e4ba852089940d7875268d13f7cc69ec1c9da5f72de35c1b896ace6e2146b7261cc307cd79082e795b731f2102bee9b9b6049559a015dd2149e70640484db8d1cd032c09308715b9ddcb5546ec589d633499d37aa9cd3190caea93c9f9e18065d0069afa4347a1294d4511887fcfa68a304cd079ed5713ef4edfea3e1c92771976e325bc410c8b528e926f6752176bc9dc2979b3e278e52322cae8c5a4b5338b03b32c3b8b7aa8302319632c4e17589cc95a0ca1cb991ccb549f22226b178a78b3d8fd41d9eaac56007057baeb2144bee737f09c1538aad7e8d330cd83eba146665959d5fa94b5d1c46ce0b30300b947c6c7096e119e180499ef87a5d14faeb308098061045b762166536a965a762f973d95bffcf7e0c526bb9753d118c59f37578d9078d92f6331f4d4e1f48ca6129988709aaf7af5f325503fea76cd1ca73aa2b25eab6c945efc829b1f7e1bb11665f5b5160dbed576ac87573dba591c177e2e29a3c63ce00053508894eda9fd3c624a791bd32464b734a9219265e93f035b39dfeb82c95fc8cac98abd1c7746e5a09cca4d1f21948cc6dadb696e03b8d59dc3b13bf05f9441301e9b72a7faaae6ee3d43a69ee912d4118e50ba7411b1f2ac44b5ef5dd6cc67ee9f514d866d0dfa9661b671975435ec73a1ea622d06f64adc53cf0b01c07331b2506aba7c2674b5391c1cdf87ca8ceda5f75f69df6f352d6dfbf100940020002c5351419b2cc3084e5a2017e53c49049f126296f85ecc91cf92765f6644f9176c26371bf2d0bbc7731fec03fdd0bb457288a89edbb166ca540bd0971b77ff9c6695fbca25d6ca868e3359fba065e68805339805b74c648daea8ec7a99e8ba7bda8a8396c572e1f923355c14b40b17006000035cbdea16a84c7486e20f4d692528e6348d94883cd9f82b8d38981d3049d3a8eb828f7346c74dd127f22de06d41db4192fed99fd5ee1a53243e55d90ba0b4a99ccc959bf87495717c561031f499e690f462b22df56834fcb27417ec40d8ea253a622e67758d7946aee100110df951de77913c83ca4a94999aaa1036401dff2ca78aba413f313c25c941fb201fd5477bc5468338f4007648551e4431609e4c00c44323b9a96af75fe509deaeb9bfb64d3e961485d5937c67da61060fbc2e9254a2953ecf3be6467695a763b3f64184c983b4ef518699ad1f1b5db1581195917acbdea5448aaf5231c803a9ed477ad413f5d941eccb69235f8c36180f14400ab48c086b0346807c4fb53a2f24137ea9ad5ddc3ee95fa111edb55eb5bdf6492756f5a5964825ec34a29fdbfdfd021fed1e524781df6c134f5b4924e9d95d4a970e8fb512f94389365a23a014379a26219e05c917ef92f6d2e0e3a3dc6c43c157d4c772e3c73aebba6725b7632c6231850f14b4f8fb42f16a47e4fc293d81bedb9d796bda8140477a5387b7104c520a577e65ed63b56e74ac8f95e3ee28cfc57000b21692c5eb0ee9fe3136d7cbacf43854658a51a5cb044c7f02f6ebafbe4441636fa706d77438802979a24462f999b37a22be4b9dfcef77b876ec0bb605c37c1252f32f2d39cec400d16542d383c86d3f42fe793d7c7c8ead8edc641530ab58839b7f7bead305206dd105cf7b8e3b50ad74bfb8ce45e556ba646e29a5d6e6ae8df5e12442682c22ca03cf75c911dcfb81c859f5d48baf24f19bd06bfbfa4da449aa814400ccb9bea1b741c3ae12b87ece240d955465c669eb2b95b5958a9927c8c848e26068dffb94e8813566a07e56a4315348cf8d140883e2e341b0ea37de83f9f2f5328b06e2aa2e73f1962c483a973992a1318d0f9acadb7d4c38dc35ac48f5af6427aaa35797b7e4897c558f0fc17ed5a172a78ae323568a3f51349bc40007c66b0257ad8a6c041ce094c6463806b605a5014c4daa1401092aa5039a2ed7e4c186c57f478c5d2916396a061caaf584d093c4b86a161746e17fd95a3662e555bf2829d8807dcb4953baa7e09f64919c560168675ecad275e9048d8e0e249e410648c7d29c08f7ec88c3d0ef5a098caaacc12749c35db4ba7a10c75e76f09853046055d8265dc583cd8f410cbcd9d6aa341c6726731c594204628f67d9f533e1530cfb727c4b3e24613de7ebdd372e7198ba5fa50ad29b58d15f84b714787892fda2c5f04938be98073b8d8df8a4d465c32c3ea7a0ce7cb9c2b795488194f3013ad3348f8aee6161b23489b151dd892804a57da1d7637c8496cc791304ad4f9f4b289d0e6b9741d164fcc8e0673f1126ab7d2b1744a274e2658dfe66639cd3e1587a4ac53dbccf6adbf580d90384a6add12a822313bf9db9f07d719d9d8716c954658c489def4de7eefc0de01104b69d624af6b6173f54150eefb69f01ba9d1e407ed3207e23bd4d4ecff0022a51e53f1844e6691b7ddc7af48b2f06604abcef6c264fab36b8477e3c178fd28f4315b15e58c76fce70c55cb05788e671729fd5df9e27ca517e591dce1489e32e2204ec4ece142e2ff1bd2ce57dbd7efb3399e62d81dfa36037cf0e76c4c50c5f4633476231d5947971d05eb3202680d8e0d9517c446dced11411bb8fa1d52ac0248fd678a0c6f3ec5e5e88ef95fbbe3aaab047e437542abf9be173a4a52f1ffd969bba608cce816fbba896df91f49adacb87ef4306af46c23f5153beebd4fab9cb715572e5b8a71fa7f29397e0534c81d7796d7a65e08245e9d596d1ce4bc55ecf0394edda74e2a227ca5f655bd55765148fb8c2c31cdc826c03c55bf83e7dee9b75d96859594d635607c6127736701917c6ae9325e53cc5792be1a38bb75454c34539bde22f5c99149734dfd22cd3784aa2459549308ecd4d6a739b831469d4d1b8ad1ad2e1e5308d547b0d5f6849449be372be1395bc8be8f696438d404541fc8c80a572bed17213919c31144009306e04d41704f227cc7db55d93b56a0cc899ed0b5166647c9a9f226de9f6a490c27373cae8e66daa4acbe1eabe1eca9215f1fc4b78929342c0c02621921b6c2a6bcc0e3c68b2c7dfdb970e192739a2d327624885e9906f18ae896700af6a972b6b0001cad591e07884e958b784181214c88162d89feb834c472b9e390a03d92fb6086b92ef653f5c3f9501ba5bb485fb1d5d5b7710c153bb80a6446c322291dd2f4b1c9ce4e6a10611800967427142673ba23fc962914f1944daa9cd72f936edfa0c40ba2ecc6ea3edf86eca5d7dbc855de779eb44f72a7bb62afb0e53749281a52b7c60e8753aada7c07c9523b50bbc4152e65190e6bebd577e244704a425ea702f015841cf9ad610a1ab79c397def4bb07c538fc7a4e22bb7109ed0c1087023e997cfb5e1ee7fb55966f4dc1477a2d3e8e6994155aaadd1667fb82015b0caee1b61343368178d8ca8f0996c826c9c5d2e8402613184d9e4805f770d68cc956bb3c8b65bf569a57be43c3a7df4861478031509df84366f0d28624d1c8fa71824094cbd065cab403f4f803ace59590914703ee55b0b57ad679720679b27b8caa1091eaf57ceb2ee5a0a6e7aba5b716f75fc1f73ba2c8d96298429d16a253c83729bd2d3d0fb597205c25c89e67793918093b22a8446a03eb44ac556f0b49565e912603d9c281b69e2d47a50bf6f3500fe590950d9b300597cf61d0500342df6fadab4f407bec84e74bb1aec20cbd689a965d747a065cb2ebded1b8443ce94c97fc7c09b8270e6d89f51dabfc58bfbfa670919343d889a2f4612bce149daf9e98e6a4a983d4c442ef302e4a784d9f00d202ff93840a0a58eea13ea455d8add2fbbb001302b77404b3326c8fe4525bbd9257d2073338faff38384b64cb0100081e28224c32796166726166cee9b7feeaa9716dda3478c93a75209dd1f197e4e168198362461d55746556df2ce7d83d3b81116b560c1ffa31e5874269c28d7be7d32734ce7b2222726aafd0ee188cd263a8943342cbb6bab1c69adb35e38287112f4a27d76089bb6a0816a91020a3380d58bf24b384cddd2dc1d6cd08b3f0731b546d7d66b874976c9eb61fcbdbabb26fc6c7b403b9d8890ca0a6ba24501f3325e0f47cd489f54e360005207d90a1c49d00131c830a4c690db0b763098d09252d34cd5d7080a8dd078599895562ba2d7329f194911dcbc876708f59abf238a7bc753c20beecac0cf32212699fcf78c96d81e4f2169518dbcb40bd56f199aebf0957aa46f0eb5d886f73caeb02cf39e19f9c096c2797d2137b8ea843e3e1d8632f43e990563e74fa234a2e766be0765d4e9f497b1b3b4e9ca61c288e47de75bf3d8a9f44cac59b9825e74e29b32ea05887b193f8724281ec09dab086d0eec71cfbc6719739c76563d2eae52eb2149f282faffc96b0041471ba78009c12d8c3176be5caed3629a3eea2c91bcd8cbf5eb36bf587762a63662cda714bc29deda27acf95801b627ce68a9969281c6317f6af42038f5722618fe88578622a02f5afd30968d782b92a80c1ce02aedc51d0659afb5f57438f5661a8a153cad351ecfd1193e3cd60f83462e4e9e9f26c6a837bbf07d9d0dfe8f4fb8f14e3560c6d1954ca7359cffabdab6fafd6a52d41acd06e7093096c3a57945bb6d3284764de19dd1f17586d635f4e6d556307cc706500775d9989cbba7a3b30a5e4096fc3bcbe7c67afaea6a1c81daa3ce2770582751c980ab0f6378ad01dfe7adfbe4a57d543827b3349b9831cf19dc7e582782525b73f78da847e4bafc8edb544bdb65755e0d050e595e8a093ff6bd83b760a6fb698ce7ae6312606b484fe3e101030832206f03ed10c7632b5b88f5f70ef0ccb313246b1b3be8ce65d958648e6c2291ef6b42b556176bf9f34404aad6362fc25334af29cfb04a108550798eedc4d9a3908d5f382eef3e8196b6bee4c8205fba2bcbec54be935f81ef681ad05b5901c028b5fa5e87df4e57d40908a230b028b6338ad4e3dd87e4d7dbfa9f2bf684d4008e6a97b387580ab7089f9c965304eab718e7941b2a133bf492f5cebcf7ac88fee71c3ee56513f59fa823aae8e35794750ee3e281c31ba17611e725622a5350e8fff86c2184db296ed49444404de469c247d4b659c693861059e43eb84343e2f9dc73cf295f77772fcfc64222c7e268045556b8dcf25f853937e42a0bae9d6fb4c132efff52d58738f1f18b8ad064ac6c178ee519759c45451591a7c7e1d159120eca69619211fb9ed217cc11894a052b1809716a45083c1a0413bc303e755a591db05e101bc026be2f8072e50604e55862408307c97bfef339e92cd6488b9822717ba42d86173fe592a337672fd3503d6a7d2745f6e3e25d7683e6ed4939b5675ee77186e8140e1b09d9f2433bf9630a599c5e6c6be8f6d26446d8f7ce59313dbce2465850acbbec3d189222f5e6910c883ad24aa8cf9a0f21279e7423a331818afadf2707580adfaa60d0e8d2dc18d537c7050ef811026c57ca818721306043a2af416157c55c1cbb50da106796a9ccbcf2f2a33e9e53c1fba9999d8db2f3967828e6ff680096764b56a4a7559ddeb03f8d4902478b219dcc0dcf84289e19b9a7c922e6112839ec83e87a2bc0e5b1e6e27691704385a8c00d71828ca44b29287a8e025cf9123c995c8c7be35f89c42ee1f647c4a1271d1fe3417434142c3958c704babf4d41934fbe9c5110c0c311c0cb77e3c09aefc005fc3617c78ffd2f7c9f4c4e6062d7d7c05e3d8141eea634650ce7c3f46d992279fe2220d7990cbfa13842d6f05499823bf318340f8871455590a5749e43b765f168ffe28b0451672da8285935fbfac22682aafab17dabd126a393752139cf2e387d086169fd0d08defe365de67105dc4807dfded82e3634ad3164725329d23093d1774181fe4f7af2eb66151f7b1893c2deb2f41e62543d5b84d2a636b28d8fe8cae6fd02a104e09552363113789f82041c9214630d020c229a81b8db860917dfa9580cc44d705988925dab605a44b59d1a9df7516e2175b02d11dfd0a726237814693ecb4963921134c8928e418b3b11fcb289bf3a95a150d735533bdebbcde38e743d23da7b73fe44ab5fa2ff5dccfc16b25f56d8fef450bea1cf9661cfe73f9fd2d2a008aad879c1063cbcf0ab83ccf1c85a01235aa16cbeb0c13ea9208766796d90cee422d567668865c453047b82fdbfc1d779d88351f33bce6711ea29d3c1537bfb7061246e8470c2b298503ed5282633557200159e2e5be842eb03b578b99a73f8d97f1f3224efa000f5c8625c4fb1a37d5b20d521017b3888421fd909519278ea31fcc9a96a3077d8b046280f6050326d1d7fa6008274b00b89421b24e42b21aa932426a8ee0c5820d9da2a91274add6d7d12d7881c3a077e814adcca57639a14e543f7a00bd6d2802596962bffa5976569fb151831e93ddfa2eb1db0ce6c250b35f26f36e4d249439fcef1c071060b599f81374bdc49903f67bc3304f2527511f2fae334411a5ed8f04a7b3e35118a7d8b3a5c458c450498de0d940b091f5f17b8ef3d8263ebb1e527edda29a4ee2d413671bd18499c137b7e3672f9616276598a7940115dc90a890a4202cb153b04070815600f449300be2aa4c60b5b64c7288a55e89ee883ba3a7466bd54c660ffcddaf84df48252975c6ecd26a2a894ff3c6d607cd4dc57afaf633284acd466a1d7a8ac7a715f1c8286a6314325cd3a126b5eccc8882129902309755c646309ec7a14067c1dc655fff95e0e6f4a0a0731d3da5a302f0452674743bc051a2b0fcda37ae28630ecef67901337ead85c817f54a156474196e5df0d1e724f4a3310f7b925225811232774b0660b8eb5a7e67eaa80b1a53109b80e2ae480470eaa838f29923c56f65341de0dc303221f54f37e257c41cb766b5cc2bf9bc1d1cd4f844a3ea779e65c6dea1a35fd1a858f753b0720807e127ae5b6fc8f4be2e6ad18fda238b83a2acca041d8c8629e988d8a67160f798416d6b69d97c9aa3087f546a9e45fc1506859681a7e1e4a8a0a1782527d11a51b4d12f005641c40f1175b553a70167f69ab675752f0a366501de62e45c6ff530367a17f4770d3b87fe14076cf30564e9f9b340c9ab2ca40724f1dccff35ccd2bd4606c2667cccf09d010a3f69d960082828261b00811bae2885a35c0abe6e0e349bd07a15d35c994c5cad9edc2339098566ad5973b4dfeb075bba25c03d65009e80b9c1dd9d8b41b50b28e9847a288801df558909c66e005b1ba40d303e8e103f62d98803a09454bea3041dc0153fa116fafc89e78dd79c4bb4cddd776b4fff545b0ec1af1fdda6a7224c1208615f4fbf54794be7dec7c7718c074eddf2f6e88685d2717b9b3c5e87bcea57b5d8408c9da3ab3284140dbaa8c4facacd2c389f42eee205753372498fe74b41e17189e60d5fc78a4c26fe82811ebbad139d0afdbca2dfd771055dea3526a4d232cf3e5ce2e12df8136a97516416b3b48070ad1555bded3d9e96cde26c8eb5475092932dddd1b85756d005092d77b67d7d66d285e1de817924e5114e6b90fd1ebb8c77c4e9148b486533994026612bdc8d5f07c0d6e22084d49167be76240b0f279639c3c5c47980a32657ecedaf781b1c970d2a70d87bc5225ba0075a9ef6f801c3488af88e272e2faf2dd452a1b67a89f68de9ea5e672ecc69de8325f9d607e1ab7aeef5b6c521b5bc9b8e0da84722a5303447cbc6bc0a1a8f4295549ddd4b9ede107c9b8378de2cd7f7f197216ad5a85475061496cc4a9e3997edcf591916ef45366a2324cf36a7110a79221aa082233276d0e424321b7b8516e60afa43c3c43af1f252ca2cda680afcd95caa342a5ca72428b2800d43f8a7366531d211d1214f5c8aaac4402eb84e348065726f969c304fae457bb5d712ce67c998f7c6ce72685ae9801d748e156ba1cdf9a943ff15a32098fc3728dccb8c7c466adfa763fe4f6bc0c2a7e77aac687ae785f1a258d14c14d8525a6a2ae9a9f57b66b59aaceb65491c0fca6692394fb9b031810cc3de9644587a81d1135bbf67c9415f65e1c1f363ef6b61d42cf75e330c3c5831fd240add30c6e1e767e695d0bc46c479a13750c1526b7ee69c6ebcd2e25be88e1e1834b7bfc3d8189ea3a9da3f9e946625a12c3172a2afb50b75db108c827bd01ca09b91fa41bfa0a8227c00e3099813c716d5ebdf06baccb8299e3b7a8908e6126bf712f7294811e01cd5ffc50865bee8f2e944fb649beb20a719ecca1961c7b102d3aad665161324d9be23d0f0511922dac696040f3ea0af8ae04a2b74d108e7e1f48dff8140108648b8feb5b84e51798216368af01d641b84e12c25de93a7d397f8f44ce59a9f80565c1d94303375bbdd515007a3b3d36207bf96c102a5474ac6df231c8e8021d441937d93d593432ef69f05467c11e697be74350f87b43431a04d749edd1fef4504f4ec517e29ab1eb56452df6b7107cb63f5247f9af3adf6f59aa265862f1fc84aec09c310792fccb029b3539a914f59ca457cd6d9a26c59582d2ea70ed38436b631ca07ef637fd1e4b6a5c5199d10f65c1dee28e3753a53640b3d32bbb12848a56f8a1bf615335fe9635b5aa5fb996006d097d68343f64476c7fa59b56ae0459a0e5802023d6ffdc014f7e50ad8e812f9021e104cd01bfc44bd61a3800ab3576ed52b41149e5604b7c57616d9c06251555440e844388f7f3ba0e25d80fa555cbefcfd91373a6c5e0a348b14d78ad78ff9de5b84ae5a16234ec589bae8b889873a4d9cbe75de56c6cd3f2fb7d0ffdc3e9ec985396deb0eba5926ed1a4169578b566c0004e6039ba9f24c415b9c2e60bfb913c7327f9d4ea1420e767ffed41516dc544bb4e80d2077c391849810d7a6646441096347128e600800a0b182ea9253cf640d42e901ca7523e28e4f51bb5d11803088a4799a34a5f83e037f628d6aa34db1ffa6cc36e21541b6586999637b4b429dfce7e643d91efb354fbe84ec34369e1e72d13aff1dd752b13afd87130412570780652b8fc943aad2a04e7eb2283c84f1f2e01727b12887b3e4582074dda4c31c3736086befcadf04ccc612911c8239e36d5d4d452cdfce02e486df79350bc0f084f4c5337bc7030c5780cc4106a32d73b9cfdf503afb05d5e2dbe0c3ca8a20b218c13752800a02fbb23721954ef5c5fcd1b8a7526912f650a34c47ade24e5fc20b7a6fc508092c73ec2698e30c7b2968d1a1e7f2525e17778c0b35fed7771cab23c3ed22ba44aa427fa7a186bd8c87e10203d9ad6e0457206c1fc51e95e475e5ed7b1cdfcb2e24462c374df534e3a686732b65beeb63ab426b9e9b30a480ae99c89e68a739f3c20a94c3dc2ce2bf3368c14a5b247111f670b8a8a26a4014b6b22a092fc5dd7d82dd0175c098ad2956dc971345a6c03373dc2d0ef2f7436f6240d8f91b63ab4c4c48004cff6623d47cdde7ebb197290fad57ccfaaa85d79a4230123af835fa608c9df678e834cf118bbea7b35d53c4c95b86b5a4d15af44153ff08262ac614b697e63476826bcc4e84620764fe807803f08d2dd11f52d566a58abd0bab5d826a1a30f785a01d2d688ee49a0ef8ba0d030ed161546e4409460793c2a123889af6f5515f8e5a7d8a3de87e2cdf6117d6f4a9a519ad5827745dc499c6ff111d9ef5b17a283ee9b42448786baf522720df3c6b64fcaae223d3b7d0ec79213dfac7a9f7a905c2db14bba91dbf5db6b60e5da8168220b12b54af4adb934d16f95c662034a57dbba985114d1f642e5b8eac9767ac67e4032c219019b44fe796efac8fc96ce163cb5c15b082ea397508a5f50538d8dbd4917f448565ea71402604a970728865f659d961a86704e013acd850895e63b5a7a60654ed6e426e8317dc34082c82e4924dad133847e07415129267124fc82586aac787c86397f8d568590dc7081a883d1e7c79d667a7fa60cf4c2b0a0bf379c69a1a32211c54d3b87b9e2433e4e11ab0a27eca206ae664fadc5f6e802e78ca4cc0b9618f18e6bf36bd50df1d72fadc7d6666e4db504770871ddc424ed206a60db74c31b113ab1e2701f3040fcfb32d11d9133317c9d9f85ae7eae7089faebd928945ee34f7cbbb41a182f4db6241c111e1d95d7f94c41ce900aaa2c21ad0c6be312fec5e55d8736e6fdc423a0e8d6edfb23337d91d43d74e4dd4b42e7a5508377f573afa1cdaf409e441ab39988edaeb16889b039de8a81e7b52113111f6dc63e512ed40b0357099f191e5ecdfdba843c44dec1e946c3252426fe68fbdb9eb73c1f2e4afce9bf982906670991dbbc13cad08daad5ab1f81e6a12a15a8aba5d0a4fcc8fcdcccd7980e2b92b758f0cd9043c933950f04c6136aee6b7fa6eda0cb6bbb40ee62293c3346f6f8e7941eeb105638e095041dd8a97649595d1268800cb24553f390785b58d1ec915f09f2d2553c53af65f8200d1b4d008eb9c18955818400807bc59bc84ea05a373621cf6d1861a7406a889f321762048dd331595381273ad23f370de65147ec93c439d89b961744071f8d22a93715240af40e531a9d92933569495ddaf41f401a051c611b20f4267f2740dc6ff5fa099abcad7513263f879253ae4ba55b14f58a51182eb4a7c6a1ed7d1474dcdcbc1aefe7e4e9798d8efbf7323398fc8041e0ae4c846942ec13a9bcdc0a260fc4b92206223e6e256540d4c80818eced349db868a78389e27a3018c8ff082ea22ad90c0e9ed58037e3ce10bb58a8958def6d813e02ca57c3a68f9abb960f57c04d3b2822b0e2857287bc649756517e937cf13db08d978197f379d7f4252a2c91f66934d99b8df1712c053a308e7f3526c4f132c0a0455284911f5cf2647ec7617053830fdb25fd6028d7f497c5c04c0652945adc884ae11f9baa685fec1cd2e1864f64b8931aa5cc58b27e6860e3543e0ee3b413a1c86347281f0f904213e441d460161d36584dbf812c4e048d4021294a3d8c5642dfcf0ba497a2a035902fa5d70cae4b15ce80a0c383a4f15e78cc643dac7501af52f97a926ecc7cc131c70ccf0ad8e6192dcd0bed8cc918bea04648ea24a48e546380490167ff0137f49e42947b2ecba6480db6b287e8789abcb6579ffe4f59f79cc684c66ce1b9cdf198cc10f6c844cdea81c0319e0ed6b751ce07213d4cda487e29047259d079dd3a4601430b7c0bcd0a44689fb879e9e6024ce8e95a6db5cdc82a02552fbfa00e2d5270bd983ac6ebdd58922e3a844e4e841ee3194a0d31c77dd0ca3aa84dc18de973a580a9d7d2662434d7aa3c24512847eeb71b24275004750891181e7292b3a8b03946f8eb2ef642857bd2cadc6182cb95f6848d3d82a2a8a22a6a8d045337281798b8827e8812962e0f57ef0b2c70bb9e6350642dc8c1396049bea1fc37117773474543276ba7fd3ccdb50f219a0b9ccda9d9c63aec02ce0f7af683cf89fc88f239b2aefe9065d47e07923d3096f805c9acdb196b2a389c7924aac24646d44d813a7d86688ee99ad9eaff846d381416ef2732345f5d1045c2feb286d33766bca7491504d928ea3ab12141ef9a7ad5d65f7cd0297b61edc67fafe17e3a2050ea96f29f4ed4cfec813a02f4b13213f8f0c679516733168663327f2e28cc95754e99df633836e1a03febf074e5a09d1f5688fca80a1233abb9b473021bbc01cc4dd8c96b88b4f32828b6a00c8e89cecdc365f3149ca2b0c5ce9a28beebd49050f1ca733b763ff2518379fbde4c61056b934b802344a5436bd20a0f11c6d09237122991301eff02d5905bbae738f27b330eb9de65d05448e6398f23c6c9d6e11d88cb465c57f0ce9185944ad9dd6360cdb5c1dc26fdcf1e7c9285ea62f4341025d7633aaf3318021ac322f70189223b509c9080fe3d42a0a236950d7ea98e618dadd08907a02f841e47b31e5166523008d3e4e26d090a5cc07805c60a1f84e2d95af70a7ed50fd2fad56080634103cac7d55bd34a7495ef848e80f54a5dee0a8c9f6017637174eb251eac7a2872f262d530f113922c8bacc81935fe3e79c999a7f0a26b569afbf4c635ee6eee524d19010e7a8063f4d5eafbc71d8280f308b125caa29ad6a702ca624500b202d780a046a3ad0ee5bbfc20297cfa498b11cdacfd6946cf8111b0f4f8c733a7e0d89e89ad145989a8eca2cd9b25bc3d0b7f837cdeeefd231d79c8148e642288d98051686bf7c6efa53491c0e837e0359e7be25ec283014c88448a6ea63011e336d906657c68955656638920e6688a3251f3990cf5371a82bd46ab77b3716b0ddad56b7c69867a1d60f438b1c65088ce3363bfe325b6ad69917955b634a6e88ec62984cc82e25dd12dc27fa1b0f8d13121eaa4798dc0e279d8b5f33579789f6528b7d06fa03180b73d3f838eb67baac12d1e19597760009aaacb9728bb5662b867400b1a8bec8d1538f9a411c3304a8ddb276ed2549875115e7863d13487b77e74411e82dcb759908e1fb43b63e9a5dac7a47a5e2bc2e1c61c926285dbc554e42e8b4525855e9d0477a244bc914b0dfe44cb681d3fcb16ec2a7582b226455c8a25205edd730e8db8fbf970f634dd46c85768891d4366713898e284e2e926546cb2e08c102a11a0d0640101913301b031ede22a5804030ba37f0d4a5f8e8dae1fbe6ad52be06a714f2cc69db53834866634bf0e2dc379f14042730f8803bb105c779133c9327e597095b61b33670db84aa9a460bfc4193476c23c124b4ac013f66c1a9e954a4d7dbf0c8bc93a3ccc33ffb9ce6d98cc3407a2aab19fbffec214771ffb130385b33ea1384305a03ebafcbc84820e2118b36587131121336b7668ab7a384b04e63812f870027a0b5b10205c0fa22c565a0c58c959c69841c0976a61f4ac84e7ab8ccd03d98030a871bfa4468a6b0380f60292b59a6494a759c400aa3477b78b4cd8b194455aa30e05a50d6c5b8ff94e6f96d3316ef7d98d46ed7c6397f2019a84abc92b44db50c2133816a3c6188b75a935465a826790b832e0233090e2429500f072d7ec5f51e913ff1d49c61ce4211c2db45efc2f00f8d1bf62ead7cad6b4e208bd6dc02567a58314b11045c98fba393f3af31dfb362ea7182f67c8cbd647ce82f81b6fd688f57ce08bed7b19ce7442f3bbbe39779d4f737443b65ce1616ef34c1e048c0878fb83bc1fbe8d919f052ba9bf38db7185339448109f8c0481d88474e90568d04ec4bc017119365a16ef30ba913d8cdde3e9dad461d77f4e3c121018b0c4de2969a6ed3aac89b2a7539bf22995d845077b559562f9e41367e99ea0448d7d02d20bc68a0568761c30acd7e81ff6625bc3961fcd7e2e8233da21f5c416e1f463768a68c1712c3468951dd957e49fc57e21110bcdb6abe28f574755e2e45a7ed4e45213f389de3453e56e2f5ec350650cfc316830d30da9059b398c8671c51e24a5c690ea447b7749df8723dad3bf5ae423a26846d348fa23885f2571f5634ddc6628f97417e0c3d6637a35acd384e667cffca99339da60aa2da8497c7fb2689cdbdfc50fef2e43eb2e1c8e65095ba817b0236fa5a60e629d6185bcfd5e15c543b82929d5b16eb3e7f1c043c54cf068635d1b1384a1a0c9f89ed62a550605979e024531d247d0c01361e2395a8365171a82c9fc807aed81052fdb9c96d609518d520cd77531f15d0aa1ae54214b1b4b0e0adf288cd71d92078e80157f3f238c2af50cecea8ce3c3f77ec28405030effa4362d53dd6be1235a57170ba4b482955638c7842e6928acf7864ecb560b5e4675d35ebda307bbab96b339beceb585be61278da9041b5d223d85c90732b147539c2d8fd513bd256dd9aa0bdb2f4660559e15911bce2fc794fde02f36db982e4960f9890ad7709448f766187d5c6467a5bef10dab04c878fb0520365fe4570d54bb5f27ea1052057e2b42836ebe91dbd9790914550e591a44747440aa1a3691582387239fea6a4354558250cc72d0ad086d00e6a00bc9ad6dd0315233459690204dbfcd02aa5c719fb52f8a82b021adddc85ade15f8ada06199d6e167c16ad19530d225f092956b8a37618e9080faf121601b26da8fd0610c8703589b52ea30e07e04c2e380ca8f61660dce5a12f7f95db5f953fde022268bb5dc08f03571f9e54ad1963b229f68958f9525a8ae91da64eb93008a463478c5613bcd6e23e53f9b81b3b85ee31b37e73bb67cad35dcd453ab8a33636f3df8fa1b5a19ff7e918c17614e300d190a258ba5744ebd7e1e3a4adbe81949815c2cb752e215b2b6c066930ca08e23d4a0bb32d975fdc6b31cb1b24a8f780e340901f8d6dbba351f5175ed3af6c3e84743f55bd3b128f633bbd74ca3c79ef692e8081b74176ec10bf232464b24a8b99c21d499423c3108f6a07e2d885478eae353560aefdcad137a58d2deac1956d4f9ca66217664079c79ec9e89ada1ead2b8ed118d01efc473d87e0ec9eb3745abd38821dbed42cf6e67132b1029641fa434094c761bc015e1d0e80f027dd82f734afbd3c6531bdd521bb9bdf2c6388c10806571b918de4fccf9b8d488a8eccebdc0c31b43e81e7d429a5d58edeb3575140bf0bca37bf20582914a5536c8f470f38ee7b329c634cf2596d44a31515777be74b3357e84e298060ccb76e47b0066f898024a2cefe44bd425f761775164af22b2bba96882375b2aaabfc9df49dadc042aac408ceb3cd5582f7c17094bf380c425d6907f88987071e3c421e411a6e50e48c54415a99f6ef67ba08179e7b218f53eb89428de9582cf7de2fd3dcd61b41b06278a017d4d043a49ae0ac2eb23e33c24f343323ae639590a220c58ffa0216d0690c5e359e20f68a1c8d2bad6016cfd15b5fa28e9ab2561ab1e29806549f3f8a7fb0ad8bb600d6f52a192e9073f59d6c19bb022515db6540a412cbf0958d43dc5ba1e3e787479e03b7697b703e719c3987347156ad1581ece498dd9803bb9bf7704cf53b860e8d8c936a8c98962e090d270933ea40542104c29900d9d8bd017009c494ac125a34f9ae5188da0158e09a1abca2e2d067d1dd7570a729197015ffd42b4cf596c4a9432fec1c4a903dd450a36c5dc22f6b111bbd617a18101d757d56abe482acbfa272b5baab0703764cfb8b9720d626ef54fea9e03b1ba8ec231bdf35253ab3b1d197bb55ff1c2a7b67723f0587c25057a726d01cb99f39c588d6e02054caa794c241682200fc62782819dfb6ee4fcb4613069e4db64dea9e1332986184a792982cdf1b0e7b03bb9cfd8c331ccfc4620a09ff7f1ba7b7a7bbabc1cb6df15cb44940c30ece787287b416e6626a37d1f8a0daff40ad9c78ff515962f98b34f155741dc2be5d0174e476f63cce8a1f1a29a24ce0a4ca2784e3792d2140d643efabd9cebeb973a4b8f9d65c10411a9d8add56441132ae92c25f789250a07b2d48847872cd490643a4ece52203faea5afb826ae59a570a7e7543af34d98cb776a1d2f5ac31bacfc344a7e83ddc8308e0343df0dab7a27a80108f988955269a7ca3034ef90faf198f653b4f956e66696c09ce390d34fb47b117b3e899db5c45223cdf1f9ce0bcd157bc32d5aed0296bac8ae14dc207a7a89f440885e50fb1e3200d7024805642692b6d184e7aa6edcb6c8db24df4e6e05e26916c34c7a703853d2c6f83e26cfd9db4c46e447f97c0a74271b3667c50aafae7fe4b318e1591428d71c9270db2a987bd35aefdcbb2178258ec436665651771110c76913e2de4bea406b93003b524c9ba3ca2dd8b0a5d4bce5099b0f34e90d6b182b4dd9c8a3b41c214aa2ff1821498fee641c474470ce961975127febe1d72b16ae572ba207954e8f2031d296e0347ea34659d397b96fbf2856dfd16444c44a8b3bd598bc7f922d3af9204ef59181c053443ef74305996c9323ceda464b05ea41cc2c0ee08f2942e4d9bfcef7c7e25109e43345cc96a281dd1c8e22d1538322093b41bcd51132a7be38698990a82a10e4d158ef2dac200ddaa622b6c498e097c4b959bea1705575be6bc5f9ab6264cd7e12d89904f16813f9fc6e22d166906bb19e5ee487d00b4c90f821e4859f1e765b8c4b0eb41fa488e8dc91f2cc368c63c7d77937081bdb21cde0ea2591ca640cb7c683f24db42f2f2d97d64ef713528a7a89282511ff8e40747069100dabcecf1022fd2bc705caf8f983e42efc3c38f25576d3afecaeb21a11a4352230625e1049cddbb20a175360d24f759beb3ca5defc136f9c35c8277b3d32a5be87eae48580927534abbb6f7fd9a5e87935092540c8ca3531f4427b0babec6baa3ae6d80ab132a07726e0ddeffb20aff377d79e15d9e2574fc47edd62ffa6fea69b9800b3695e98916c0e4749276dc4ada95333b9ffec26fb7e05c42a47ba34edaa01906e9f47663051c35ebce418802094ac951bb8967a6ebdf0788ff9babca001835f0a9b7a5f72f90ce81774173c46b9a86548bb34cdd230f964ae8d4249928bd00e52b7c03600566b759255cd76686be7eb4413e9fb1b24c224002eb9c68a7831589ad0add9e7b4a60d323222ee25c7bbc08c6f4da1d7af94eeb8a5c74fd27b25d38df58dbf30d0f5925d23fa530861397e83cf298c2a708cc6b1dc3ba4960869541e942782fa5db79736a78912dc3fe5598960dc03b84c3b2b2632dd0d94c764a02648e2515f2824515ee78a9e421481cccfabeb1f04926ed5a1703f0602f573f88b0a65de47258c433a1332f04fb51ad00cc3ae944afc5abd9df23ce3ca35350bd3e529b71bf06219ca1c470a0b640eab1b1674ec28e43b3b61310322cae4d07483bf7ae020f5a7fbc6d582bf9a2c08ac8ca06cc8eac3169d3b4563aa264697dc0e56cb451f71143dcc66459586b940b6fc579e891d4bdffe5bd5616f87966e449d25fd245c34df8ce1fdec938d7f44e1e74dab9a30ed2db7d33dcaa4dc9ef06dfbbc2c9f32bbdaab3e7e638efab95ab0ae8f0e499a36a08f6f4f3af0affe793c2a1a79388c4f57fc883d128be9d156034d0eb595930fdd6e969e1f3846c860412135d972b535c63dd4bb727fd0719df2841cbff29c3b41cf101e49b382b49f96a42653d3b494ffd8e98b333c850040475830b433354b4f93ed664cd1dd283713487bbbbee61d0856327e3e886fba638f8b162ba09d7298f91505987caf8ca3a281e67a560e0ca6eae9a83c837fb0cb6d128942148f564356291f588146af4aa35788433701d8036c0d840698252e37720fc6311b11bf13066bae7bb01050b8831a2966edfa636d58290c3baf85d2733fc0663846b730e7a6b43596c6866be044d5033aec0df9fc7d395919b698bfda821c77a695d9895b1060ce6f4977d7aab90255265308bee6615624f27be83e4aba50feb27da64bc91a247faf50b7adc728023d7fff051127c1a620e705008cc21420d7a5e1529eedce48e766696a38367f3412fb5d89faf9156606c45f95c439fbbdd093d44be572a18333e3695a22b890f605de4713d13117e45d3a9edd77ef1d763f703b1ad62ce1a363ecbb057064cc3b737db6eca489d322ececc4e79f0c1ceaf9b12cd19ef7310889a869c3cf44825dc544eac354168426e729dcb4df01e85ce5d4e0e0c778681dc8a268de8faeb42319b99bc678128e38c21ad219eb63c81f028ba16a6115f43307e0215174ea494aa587fd1a2e00641b8c36e4cbc72cbb459b1f9fcde2d938798b13c32f5b78db219c5f4f87b54e87dbf1584007a98c411c7ad64f1f744988254ba933d5bf8cad77a5751637a5f5db165fc1033ab0e947e7c5ac77df87256293326f60942746db8dc3d54d3d3b152b8c1197e041b30ef5c7c927821b2216b5f7b3f3f6eb7a2cf5ea578c69eabcce5b40eb93af6c7c06fb7993fa65e839ac3df705116b2e6f22a52f5bfd840e7a3aa755d28c1cd29658dc528c1308ac6fce7d31c8f7a13b73b9d4dc7f2f8916bdd094f0edb5fe70e1b72998a43be98a6a22eff0fdce0da8e919cde4a6820922a22f7d582af3b8d942c4af2f40ce4d16972d17ba0eba4fec01896c12667f58cfd6ad859992341b5360785a5125c5a0f45242fa5755aab555f9cf371ebfaa477188893ad2f67ab4040a6430cebdd996dfee85557a922788c3da2b2a12b91ffeeb135a03aca768844ffe628170c75e874b80c903c5871de2171cd759c131c4752929ee815d3a3b1f552702aa0edf61513db86403fdf22a4b0989ccd6bee5e7879ad24bf3eb60f4d2f1e2ad161b273890f244372de5295ef60bed3e4385fe20bd6412c8ba0b64222426e7b4e3798ddc85fd65b931e0c98ce715b8facde19abc6f00cef5b54727058bfb10fe50e8589795409726044a33b7f52e2e90a014849d5f63b4ac674e2689980f79babff5e0aa305e11a6257f5fa13ff52438127646cbe3e2525bdccfbad81922bb9bb67862164b6216f4071330301aa37be7e0219b4065b81ed053b9f2b2d884db89d90ab7d9fc12f0dc87abdba4e1ab06f860dcd4227e64bcd80a208444a05bc3d1c2821acae7438b60d1ada0a4bc51a206af9f29be19304e2b35ef4f41522846eddd995252380b88c77ff5795fc085fb00a8622e545525a73dc8065c5144de6042b9a0fba01b3c933374822d86e713dc55185daf40c9297a52841b3280b1395355bde3ba65aead7f280b015b74d3d378a696688f5a1bfc192bd657f041bc47b6d425519de05343f646900fce68ee4cde1856e334380b04e9e00ab24c999f68aea75d837a05ec57565f2b47cd6908e265222e8068cfdc587546852f62a71df2b131df6703e0e0c1e6e0fa64bc69045df0144dfeb7b4d3cf0d7b8cea0636c8b4e12121695c80eb52b41e79bd89fa0839d4bdbec70faf839c04b55583ea77ad5f62aba8b320b44ff25b70c5a674ddff90d2f53df1771f1c53440a29346bd14325bf84414bb583a57dc16434443ea771d6238618364453a3b98ab344bf3be1715234adfb8f000631d50b5ce22c1e0f983167091105fee22cdd6dffe0625d4973a38e5b1cad86a0eb2cd99ee9efebe6801d81ef727623ff64d5c39fdbb669d26bdb049a98ae1ef43d882b17d07de260d49c6a06b36462233c588a9e00d1f7504975f0f7660a24e700cdc673528ffb4a5412417508cffd66d8b7a949388b6a4d0e24272e0a255e3f877c64797463877d579480e66e06202e418612cd94c7abc4516c032a9add2ed5a03163d45010db1020d4dec6617ab626d7a3a792842cad334c9cd3a6c73c5611b1eca1a21f2bce5554ffd269320145c8bcc5e703ab91571cd93249fd4c44bfa089c2989468f6b84bb4f56c83f60bc5b5dc06511dd4b1298f34be78c0fb41d3d36a2ca048ca24bc394635c4fd8ea9f55e618ecabde2e6139c609fec95b6727a2ba756be8ce42bf1abe369db0dd6b42132c20f9f88f7c5ccba45b2260c2136000f0295b28a873752ebc493d32cfa1b9844c06bdd7e06bc6f392d02aff4870e150998f29c48e209a6ba49827ed324d298e71f125a0674e3ee761e8b5aa207cf4bcf1c847a12b8814a6ba06d923a2b6a2cbfc26f324d302b2cb2c53adbe826b23c5b2c4904df59585d59d5f727270e6146369fd36ec46cacb3482b0ce1e72f0da2f4f1c998c9c78c2ad22790bb41256a2cb2bfa4ee8d3ded70d4e7b30bb0e4028be67c4cef0bc9a9aaa8c8f35dd2407bdf160ac1570b9ee96514ab45095ea1e6d10e12492c49e18a2ab1e0db3f4c55ad2f865f13590cd0b51ac3f391c1ea5e2877f7c3250368019c68077d75b82534765f260abce682eb443957c4167107704ec70ae1fa0ebb0f469ee2192ea4e7c5d0574147ff623fa3d1462d31d34c3b949fa11ab174b90de5dbb6f48dcca01e2be777cd00f48fb13453e8f1347f1899e4b1c3bb3e9ba8ff465c514635e5527bd9432a4af5c5b0298882c3f45321e74288f0228c2f33ebdc7c69f9e04fe8e3156640b244591f099a734e27ca5f315c75c3d67ecc11e6e1d3a32b891c6eb1442ef587c65c0bdc1ff738132894ca1dfe344ffe5527bd2cdfa7f5ce75cb01d2ea38f98b83aa7bd15ca8b51eed7af2e7515e9c3db87871a5298b0e9c20da1ce47e7fe3b4c464358d1779493a965ac3df2796c93778a399c7d0ae6b9c178a9c84fd28d35844a19829b1da28534728cc83b1413a50f5c8b988d8b91d66945de69ad2c9d3ac623108d60a92195a65a0aa71364ae6819a60899bc5bbef6f0ab10e2f261e221f7496015c5ff543beebbe937e60eab6efd5bb138ffad997125203ebaab03eca868db30a499c758cb4fa05bdef92457f3ceaef3702505f7c4df9aa84ba7286c8924f8ffd805b604123427cdf5df0c9e6aef110490e1a627c349a4f8053b8b176fcaea569d6ad37e9ce8d126ebe4c2d47e80f5f51fb36ed6c7c5361d824be31d3c8b4ceb8dc5817cc7678dfa99c585b1fb2f3766e8a5ed04a7c2e3d9638ef22eb8283380d8d690f9e3e2dd9a2d7faa7b925ee94e4acc35f630aa3582ec2f5f3a6b98fbca670e63e8be5f1d15a438d7145ac2359d1a13cd59660fd5c0b74cb820cf20903fb1f8c9da44ddc3e4799c18ff870aef9906a19f8f564e42f8cd768e18d9255adb83a093810351d7f3fb12706d7e933ccc7885b4378f4513544eef1ab5ab60d7c049204ae6bd8e95c64e1a002017bcf33b626a838e6c419b504ed9435d8c24e5c4dbe8d83960807a47e8e58fa272378721836732c933f09c836486d53f89bf3ba457308ddbb77031060abf9690fbeb86f5ead7a08e7652b000aba41567da895b2a1fddbd13e6d00ce4a87f88cf7138a2f138678dccd150ffc950560f50770123daedc70f1c126b4b63fba08292a902959cbd00d96503bef3f12ed2617e9b10bdb007b58b43700862aa62fb4d721e480ac462c44bf9ed4ccc766bbf5034f93e0f191fd704b3fdcd1016a083d60a5e4de6fcbad9d89e26e05ab5d76ec1ca1e0a9b15b109bf998afd60fe0499aea23f8a4a13156776057c28bafc05f7269969fd4164c4e5010b113fd860a1b04d357a7b3f35ed7835ef9b2c3b2d8744727fdf68cd984f374b307455e0f69698b73390d8c3b2cb78a5d5f2c7fd715bcc5d3f040ab89a76fa83656f770575266f2c585d0520d27ad084bf9f95e182d338634fc4a13e9c5b5e6dcec9cfaf038a5defaf0516640f3b8a4327ef53dbcd7e7477be1cc21de3d7e05914092ddf234c45f4b2aead79871a1fffb60efdd07c8707ac203fcf7dd2635f3c4e1071316befc923287fcf4437697fbf4ad2e8b33d84b6d485623872635d25edf8fb0d74dd07101b9d355bd45e3286212ca4c531f83f2ccdeb344efeb2481045282a8942d4251586daef6406f93bbf8cf4a3c2c5649628fb6144c0bc251c0f64051cb3e99c91d68e3b9c387da76a5f1451af7247868c286b23f540f9cd5c8bdcb692ae9fd6ce61f5fefad433b906409fafd15e5f50cb8036a558d01965a6b4d8f975a6bb9d87f5fbc57ddbdde5ce3227932f3c4c900898848272ebbf51fadd4e27d8477d01e09db15841b9fbe949d4f44e8eece28065cfcc1aefe8c9fe8514434fff2c7f28b4a30b47bb1218800086bb17dd836142fb5141aa016ab1cb2687a0aa3cbeb8f78e319596ea063bef4fba5f6f7c58c66b2989e26a810f37d22a06c4a5877741acc987e3e8ad8b7c86047a71c276edb1ee3554c4e07adfd288b26edcb5ad3db23ec03deaca92a61d3b12701d970a7f7fc029b545bd001e18f2280a782debcdcedb9fa1e1360160ff4fce7678b4bf8cb000bab3b709fdd86ee542027f4dd20ba0fc4675b18a66aab0665ecaae4c716fe4cb7978844cae0f1d8f966f0c52126ab5c79f4ebe680192c31d8c6664917aa284e781cb7102a9f5633836945769213d44c09e5078da299f9b8ea4d0baef6c5630d4ad5a1766b0ff6387a61d7edfa593a174e52561c369a4e133c0adf99f236a386454d59a4ab71093ba498e46b5f8c4243f22a1d0e3048a1b33cca18386330964360537be21a3f1881cb83dc4d47958b8102a954c51393a4dc5cd75a5d14fceac5f0253b7e9ef93bc11023dac9030fbf2b71b23a50f49a362c855f3cf190605de1b826ca37f475ff0dd63ddc6d267f250fc54621280ce0adab1df6575b8d0dddaa9ca933d424e341a84ea4ea07632ecb222a9af85d74033f4c63848e6db5bbc8a2e663a4b98d0a935d178f7b886c47f115c8edc9f7ce4d02e6fa112713df76e7b7d9d859303aad6269d1759adc1bd0371fb9546725137b9bdd7936dcf57d519863ec02eaf4e5b3622887c053aedb0c00fb9cbb44066ce7a7022ac9d1b2dbbe431e1e3290cc98e0bf311f6ce5a1814ebeb1e0cc14d39717f173d1f647af586d4ddf25d7528f2e804953c59783017df785e25fcc0e8ff5e7183dd9fc2c03b517dd70ad4bf8f8ecb200f02c78c582519c9af1c5389efe496a48cfc617d01005b6799463be2846f6dbc83fbd3694f67a60edb7f99eeb37ed9de94987135452117e3ae3258c1a68db297d79320dcc93486e3d777cf012a6773bd77d65188179f318df85cb565903c93b1256cc41d1c83f82ac9b085c9840a0903fc95e8d4a512ddc213668d7aae2353738ae4d52f782d7f530cf7e4baf995eb2a88c4a334a10714d183dd2ce06a1ef19f4b61ccc7d0f1c38455cd97d9e9abd266fb43082a54ce371bb6dfd99dc35f11fe5b5051fea00361e629784d6ab1a139fd3b0d81db49c05666328c5a065b3ebe9c927b1ad99ab8e371d7e0f4bbc1318de6a32c7f1e04ad667b877018d95554d99403312b0fe22886285bbe0f44d4af4cdc6cd703dedb9adc30f4471d4352f2ffe926f8aca358ed4a2a9b1016ffbcc8b95afc6c23a8d061aab055645a54d185516f5953d349653606842df6a545da45734959e2a48e772a6d0a4423f0980b9dfbcd10334f5e72b37f0227d956fbc04247e5b3a5cf17cd364305e7efca914941664aeb9f6445155d6e13b08521bb7c7e6b5c8ea871653c567e8829407a02f0019f09708a779dc15fac3e584e171fea0da595d350a396d122b09a7956ae277ac46243df76f02c86cdd63bd28367c1d3db5eaa48f4aa50b744f5a91e9eacbd06e46ddc85179df5d2f898f9d8cdd09fc6115c2a15660062d751bb17754baf374c57b223e89c665bc95b3adb976e75228a41f59617f7ac1e2ab9b64c607d6994a57f930e6de4a6af091f49f6e81991f0eb5c0e3c89e816dfe4f66815a907a196dbb4406ba7d4d47cf6a93bbd93b5aae815c7c59e81ca06e620946b81dff75a2794547a57c5bc1ecd310e81bd370b4d5dad4a4cf148860edad45ec61aeb4f9c12d09317753ea3b7ca8adbbe9341cf31eff23f017923335cbae4fc5293884ec886a844945567404f3e2ca618cd427ddbff4d5057e65514aa97b62fbeb6c248170ea03b00451963c4b5a4ad50b1fd0665a74472e2d7f3d7a63462ab4bef5b999f91834141b98eab42faf26db5ad0ae46e1c3f9c9bcee541fdc6a12d1485935266af1d83beb66f01d49360c995b5acd3f7da12cbe659023c88fe5ca0866527c91ec382715ee658456c5e5ebcef337914247d0fd95b4ad0d457e12dba618d2975b76c851b39eb5141d0db82db619a8feec2032fa73485fbc0e907bda5d7bef6425eaf244d5b98431ad80b04a2df0dbc98d3bcf844241f3a69637ee32e5855106eec8a80ee68ea2365c7849efaa056b17c74d3d2bbc5c216b7791c091cf0847d1ef52cae2141027aa9bbe9e6a9e21e471ec9509f75f5a0f536678bf655595426d363c901e4856007e1766a54771cf629a4aee6c45ed124acf36df0b1670101eb0c851c7c29260dbae06e907b9a37f4f00f24e03e2fa448ead62db2654f77e79989f0ccc71c6f46131a79145314bf73ba5a90c4c6016f12d22a40eab5a070346ce64dd83bfb76e12c5a42340bb0e3efc2a5c9865aa489236bc4b9a784810530fd816f77dad637f49cacf867d4ad4bb29ec9d47bd89c33db857095744bedc2015302dba60a0386a75482684050731bfd32818b9d8b6064535edcc0366cb08d1c6a7df70ccc84d0ff61309fe9333f45930ceb01a6462bf541074af8a3c42fa082962371413431e132a42696b3ba03ecc36eb2da91c34f34861ad41027601decb35be96dde9b307185f1e183d0a4b0c313c1448ace10e93431803f41888f5529590dfe92f32b4f648286b91232f3a5655cc10a2d788f5dc1ebbf23b549dc1a935dbfbf60a6d19f5536e9fa0190a8d93962048315c9ac9c7519e0557481f5d92ce5b55de5db5da21424e30b9059a119c91ea60e8a44aa82767763bc6beea7df4bfa74e5d4bb466887392010ebe72ec747a783b7f6a11aedba197d1d621673a575582c66f46d1a0508ad12b9a5beb7ff55f4e10b64f24b64e4636092d2c9476faa2f0909d6683653912849896872a3a0661b3e391b2624ef7ad4de735188671124ac7ffab3f9cc4d79a4d90c32cb1557e817045c7fb9c7f8c103a37b7334b1ec855dc65bfd42c3c367445258e49ddb63badb7d5461bc6a016b2fe9dc574569a105b069b89cdd2ca66291b9da6f7bc53b161fc8ca43c659c3a647b21ab7568b6b90aa29a404d5cc6035ac90360e57468972fe9fe5e4454ae131cc2530a48ede832e712bc1d0fef18ba09acd9234d2595e23e2978c26475422c5542f7564148bf4c8aed5615794f622d80f9d05101ed3c5dde3d340727f380316d9cb60edb39ec9c057414d75186db01d54cae222370d119f1512574fddeba8079c9b53b880b7f680bdfc9ab4097ac98c134ded72a7f3f89b7c706259f2a3642ba45c7b9ae8d94e8f49d815f850f39b01b4e01cce5e2c52374d9dd24528c5453857951c53937051d6618148d5b052fcfb670b9631e11943a4ff7313769409016e802994c50f0ca49cd1a687c93fc79a13cabad01dd643a8bcacf2cb2916e7aacecc30d3d8b7d5eead84d59df3520f7b608629be8b68371de50173de056557c915a43022f1105d459caeebe788051e4b2aba3c2591f90d549f43440bcee65a0736b94f9818bb304e9e3be48d71e9783a1dbf5798806e2f28c056a3ecb71cf0d13c48815a696c422bfb5f341c9cc8ed08b1297b4a4f400d801f72da31c446a340723f5812685dee2a6e8fe999ef22030bfa129083c4a3a8b2368a828bb38acc95fc282165173d9e57d1ca56b490fc211ee1e058a564ca5185fdc649ef3d5818caf63690f3106195763e554b76687ac275f3bdda5a806fb7d49efa9d04048c08b29d6b86581c8a2936c1082ce5226cc7b0bc890a8af3b640228d3b5ef3b35d2aa1bd94d580791e2a88ed6cf3260628653998f4b05b6c5390c064cf53487fb9909cc808f87a251b4c8da1775f701c75f9f1de81c20dff27b58fbf7ead2b729d29754b780263916fde7f75b438acccb4a3274326c18fd438e8c95bc781b1b265df711a726e3d04639fbb667e0aeb7b889d67e9add89f05382d0cd8770eeddca7c90235f03e4ca728f9320e52ed910279f3d1e2ac7b945b7e0feeb6ed23655fcb3251a33e3ae2bc503d341f9a1b8f8d64b79c204b0b9de1fa39e4c1f70e9edc3ac0209e3edc89c85713f568554c3e9542eecd55f2344028539575bb64aa83494c007aeeef285022e6c279cbb23bdbaa59ad864d70d15515ee66aa46ae3aad43756ffdd8deab1830a079319546bb739aec0a62a8a5b6aaff74df65a3fd5c85bfcf551e7c3edaba78111bcc326ec35e4f152d18602f86d17edd72f7ec810f3e56a51d0e39e3c5a548785261e4e6b7705bce9bdb09a2d57c8d9c1077458a63dde611a3b447ebd9a39e16247d20a6f48f3655e31cb05f740cb395050823a5516c68b5fc831e480ee04a46003f0b262846c4319fb7d835218a4d4d35606d1bfa66fd2e9924ec58ee677fcf24d428b6d1e50ed7d46d1f2fb36cedbb5f53923fd4826d250f774185f24fa25fa65fabb7ad607b4957745ca0e36f2739e77eeddc952d5d4dc9e1f5f5fe6bfaf038c507df649d57273190ae3977ee8645985e9c89d09a4d5a7e3f93b20e5596958b80d556e1c5fc938acb5aa79f5afa67602c330fcc60806c33aff42989a61194661c4fa6fcf3b36adff7668c49009f1be00f303b795d06770821532d519d243d27c9388cd42a1153a07691ec65135c7411fcd01191c7564a0319808643c9437eff6b8492750e25a42ef5c83bf6ff8a2e16c71cbcbcb1c44afb2a2c13ef5821f052b0885a840ef5b94554e93adef1ac0e9cdfbc72522168e34acc53c4f7a7586e5d5dd0ccb778e8509d0b73f0dd703c8b236cd327f56f0dd1d0fa0f4d6a5519648fa13eacfd4463e5551d5cb69fd6eff433f171dcab57c277e00364ca63f40cd4ba0a0be4ab001b0068e95a0fcaa48993d2183705d980df623a1bd1cf5c0007ac6da3f857f001bcdaa68c34de648b5c4494439a8739ec67e47df9fb2d942021918b9634f7e6b7462eeaa1904681f18081a42f1f9c8af74841f4e51be1b3445e485ba6cfe24b842d27e81a914c7f60cd9be9e74b7ddd230b5991fba23acedf367945fcd135eeaed824e0426a78c4966dafb8ab44dd4e9f25ddca6c50d1b87853cd2fbb204f37d65d5d4118ae8eed35f295dffd1ea2eea3678b6ea10bdfb110e613715733c8366a0610ea89c903ff6f8ac0e2d0ad4537864e2494eca61e5a4baf5344a7112e9a8ae5d81e2a00f0302cb4ee3b44a9ded26f1bed4330cc1185a21fd756b0627e70ea8fcfe11853f0e4318c8e575128d7b7552ce1ca021c398e5c97ff30fd43191c7cf5d5ea64a6ae81608bbaa822341bedc71983b70832a4fa07058fda7783e7b07eccc14d2e608cdae9833d78a98c8d429437399562b52aad769cd7a15b0a3b2ee82a54f4e0ea18ced65a361409120c1344ad3474a23d4871be982eb3b0f92cc7d37d58ee7795a2a8aaaaae09061ec7d3b3ecffb7a56c5d4f332d7464104ee741e5cf89bbc89fdd0c58d4002520b20b3eac492f9765e6acf6bc7cebe8de4e518c9c0bce6b445c7afa370649ecee28ce4f51ac9c0b2a7930c4ac03b45e592afc90623f9e66f34fa3ded2cf9cc9fce1e02ef0905649ffb1f69e5dd484f265fe3f724996dea5f179233c01ef4d0f97ad2567c634dd7f8cb0c0095da956c09014f7672e66677cf234dfc216d73ed14ce8e7699abbe3dc8ba87935fdd9918908b257a711a0c369c0c7e92796ef78e75226cda8ce22ea9d318ec588fef20053bfe195b24f4fa0a777cb6e2ef28fea27d26e1ca0a48f8eb742b23bf61ca3d0d153cfd1e3d4d183d9d1b3d6d1c3dbd193d2d1c73fcd6e233570a7dd2d413f99a4572bf1e3e3d859cf681ffd4e1569681d3b683248637ab7e750d037e61ac83902607910667500df25c798bf76cd05d9bda140d73eccc53b0c6fbd0a473fb84e0714dfc7a6ed76f393730246b4cca887519e3af7e3f9d3921584979de43cc97f82e01f50512eb164d84341506198f8e6677ff9b5fdb39b2f0bbca488c5fff66f0704aeae41ccd53b6f6f5784f830fc7111605c1dce8ce98db9bcee06abbaade23961ba6f8ebd206df73c0444c787ecd13b523cbde5600ff696550d488ca501a3c3e5cbcd049bd129fd277e7fb02cbd2051f5edf7692dc816549942802accc3af47ddc33807150c0ec3cc8df2fe308d0c71d61d3f0bf7cd43594a8f7a4a645c3b8e56e47124d1d2f9317de21adf151a320ee53cb8c69bf71ec4d2793931e674bee0abd8361c4189aaa886198fffd3fff51cddb981dffe3dfefb9aafefd7ffec7bffdbffff67f57f374fcaf2acbcb7ffc3ffff68f7ffce7d3d80eef3ffff1efeefc9b8ff9dfffe3bf26f6e31dca7ffe63fac332fc377a976ddd1cfffc0709417fb07dcbfff98f731bfe47911dd93fb36519da3c3bda7902ffb57aaeaaffc89b6cdbcbe37f9f47f5bfa8fff8657b4960ff5701d192fb3774310c239537c31a7f87e7ebfc0963ff871f2bb9836bfe19ac7f1fef3fff79eac5792814821b247f6aaa3f7192d1fff0f00acf32f2eec2ac1dfc595afd015b8a6198a89da18fcd693980438e61186dffb3c9fd33af9c7dc646524ffbfaa7300c73fde50bff6ae59a67fd8e04819bfc0f3dfb27de4af61f25446df16dcd76c5e4fc01cdbffa843f43561140212690f44e11886118f48f1276ff636a0cfd8303a61411bfbf7cc4dfc3ff7506ff27aeb3e6f49387916118fb8f3eff481846c1144c9ddc3b6a862472184624fe8864ccbf9b124bc08f25939a21711826deee7f25090cc3a80cddb3253dff62176318b644ff80d31f7bd6fa080a088ecf952002c348e21f90fdfeec2a6a47e635ef1789d81f7dc9cbfc379fc2280a933d6712c103c3b0dd5fe5d91f95e6ae9dadf093d92b471d8691fc3f204bfdd9758269a447402eabc31fbef4fc2b5afe339f896b6c37079a46eac830ecf4d77f4cf2d7eb055dc450fd5f2910c37c3cd27e7f8fc60b142bfc65614c1bd3c4f43f4b61b6c618b3d59dc44924b54e22b65f19bdcd5ab64fd7a62999b4b7910263d3847d7d8361440c606de15fa9d3822425ca868f8bca15509538ab78af658f4c29c0d0ab5de12249cd2d68597b668c8c4889dc2d86e86f9c602ce4cfef7c2307b5d953607fcba0ae1dd4326806fee9a34bc91ec7c9267389b8c3d54ac30f1876e3c21fbf76323d00f450399b9eaac23783393c91df40d2d754a00051daaea6789ab60f0bada0328aea3034267442eff1c8fb360ae07d15bdf86d6628400525e15ba6a618aedeea642b9e3447f83e98a9c6b4c9f44805be02b99ddfb781d34725c5bf851ee4a112a8945d7abf551e054f1de8bdefc046f0725650f781c31a507cf6a543f806f7faa5bfa4371e10af2555e71dbd01bc637db0f834d647f95399c6869b5fe117b3570638a0feaea1375d2501f96f161c8bcd2971c9a5aade4a9ec66cdbf9c60635790eb2ad462e3a0bb248072bf8059286973697339f7ee91c625d8a102812df68a77f2c0e2b5e76641903f78397f88bdacb9c714894d2c7e3b8deef56bca66981fa55a67e141c862250be88eb22de5a65b1d78657a294a729f75bdc1d444106b0e44d4bbd243573b8368d0e0f9d35c32c8d95458762151af4e21bc64def2f918e80f97e33e32381919608935f378a610c932ff373af33abad33bbac33fb5b67162f670ceb287e861cce84e5c418a705e92e0f75b8cbcf6533be65d0db5a5e04cfcb30129cd66da04cbd4faf1ec963b354782d065385b1cc0821e0ad8054ddcd64a7cef90565bc517de12b1990d91f572ab45cc77ddf85e9b90fb1677a9e38b2bc18b7c12409d330426ff4ab40a56f57a5b02558a26fd2dc6931082af537888ff406f97286726956a0370cd8681b07cd9eb091168f7722a7314f33b96e655776e77a102676e229d2dbf4bb2aacb68aca80ac517a4955638b371321c4d2b44166f7e04f844da42ffd5a89c6ac689a0e497ee32feacae64c8fcc24247c84283940cee7e78c539a05d0a27ad1a06a1eb4a93b364583b1f2e9e613482f9d2f2170da2a686b3ff80c193a2c183b8b85e0238e8d4139f7a3a7fa69ba505e490a34f2d37475341f0af1819fc6006961a3c13558a05a68293f1cf2386c9210fd16e908daef47d9fa41cd1fe52cf8306dd07ce1494135fb92c659e4fd86c0d3c2e08da4253dc9c05bd0c0238c3cc1310422aa4f632d01a5595c1a8543e2721c0ba7462e050d59225da75cbfba936314eedfded6478b3e29aee7dffdc66b1295468b43b43e25e35934291ea9d3289ca54b92b230535c0729b6059b05a93df0eedb499a20f254f467f4bd48d9b8e4cf3666eac76c8d71941d0a953a7aedf4d7d549986703aad9dc4c6bddbbdad94c651dbcdad64c133c7971a7fb3da58974776e9d2d47cab6f56844a4c67e9a471d9cd9d06f95cea38361233a370f47a63858a8af3b850058d4b75b1c58ab542354939e7a5da2fc2c0a11a78a21011edd8d293bba8fd35d92253e35c1376e604b2b3223170ad83cde07636cd64a3de2302cfaeedbb3f36843188bcf7b257179eacbf77b34dbbb35b2d5e31c2ede0e5aff1c64eddeccb6de1393f508233f994da8be6c906ef94442244cd98867772682276acacef5c54cc8ec51d2633112c0a33a558f0ce52e280f1787e52ba9f261401bd50cf79e3bcb9a0d3716e821e3c2a6c6fc644a9d7fd563733f493e35348773aafb5e3b4d31c444eda724047d4ae34217c845b90a3d4435db9b29ad4356db7a2c02d6ff7f3b71b188dfe58bfb89228a19bfb939cbfd66ecbe7920762678a022a2f32a466933463b32e1b3876717be6fcbe8e393e8d7133ca29d3b8d81c903a7b499d3edeb572554b1e6f3d24813be7fa8bf2ea173f0d785ec85b40c7c15c50767727311725ec66458a8f5b64cad42feb0d901df94a7071c0d29e907c8343475a85ffe2e7c2cc6661ddb98987292cc1bfba09951d24a55fb09cb79eda67db9e0c44f456c17a23a2e0f5bfe44ea5628a249338cbca7b61c2125793f2b734bd5e43ee133ad3c0f8c81dcacb74c02206d16e097283a3c5f539fed54919b3b424be3950f31b184ccf89d0348858739e7eb7d1522b9800a906615be79b42b1389bd02b50d0faac34e0022fff015fd94d8e27f68d948d5c84793608d2441f3fe50593a99d84578243fff332fe2a28891bce45f8076490924bc5f13d687063441540e8d6e27f2b9bbc10b943e6e9aa494f330fd10b7233f8b3f9351fabc9817afd1a8ee46b372cb5ef0aacaafb3a86292b96b501263e920f8c645cbc90162005d4f8c083a80f42bbf32d06892fbe7683e66ded6c97a08baddf60000c9354bf05f9978d7a14c205559b41fe3360a8efb2b0dc0d680c481e3bf18be3139c1f704ab6801063d02a24dcd0de0bb700885070b9d7d88a2e4a769e8becbcdb7981fdbe1d21b9fd8ca72665237c7e22340286d7e329d6e4de03a02d67f92abc4d5f4faaa94080b9baa1a12268a48bba16ebfd04bc1c021e6bd237be3ea01310510d03226c8572d32e88782aec50fd66ba55037ee5d21238ae5efb664b8c462248ad736aaf5d4ac8d88f66f5dc336e9c1044297f41cbe4b311fe877ff26d26f260b894f49359658552a6cfcbbaededffd1295c3b907dcff7655ca5ba0f06fb87c5283943990cb9bb0cd7443f7f018db8387648caea571d43ce37935a1cea634817cd8df7be8b9f15a39750d9f941362a11deb273d9386c4940d3b748df9d7ef9755c637595f87a7d5cbac302138d71692829382487c9ad872224d28a5495b021e5325a064741d1dfef99ea33bc0419ac8c64fd8cf601eda49dea58f4e97b28d6f5b7abf61af272c9438ea40187779bcd4f96064fd891a1a45c147447d06640830fa8ada122b2054fd2b0ea2f9102327e458bfdfd375efd9dcb566f0dc7e98a7dd3a6a0ab1aca7d5664bd79c33265ec85ef4e7ad9be1794a73bcd0b33940caee3da4e0eebbf6d3fc55d228a21b94028363d9e1d306a9b6c158d7cc1d3cb2b5efa8255a8ecb967a6efff0c167c617f9919c3e4c782cb5221c952dc525937027d4feb00684bacf643ea7d9a62eea3a66e3ba8c7d3666ebb88cb3156ea168066fc087fc3a1a8998152e04c0182ab350d477b9d2f84a5853d9f26090dc4491e1fda28c24e62b8595f8013c8474af00f43692458930ce58fa743764312860102e94662ffb8e33f88ca0bd8e8b9f7a45200302d62364a5b97489e4d689c5b691a1df9d228b4f0e4d8d20ace74f991b48d82eaf86474a585552e83b4ad26b279a9b5306ab3b1d15235070566eb38fbbad20c3b58e4b2ca7141961a8aa87aa89324fd8d6e341196153a1997b46e305b8b639b8b605ac918c5a68eefbeda3d4f2f37b4f4453d384c548615979a1c7486983eba3105f7e8dc4f3615d703cc7868939f74a6fe4aa16d609c27690c0121cc6b3f52eb12f6733497b488a92ec4d9d495af26c8a9c1d8ea8c937b7259287317c16f7a5a00e3626142e5509cac944c96d5c2383fbb2009ab2d0acdcb928f7d61abe7ad786bd5a05175f23435e212fc4372f3204df7e02eb31e36d319f4bb96cd3cf51f21815c3e0d19e78cda4dd9670bc2d2f290a5e880c13847c0afdcbdf3f372936fe3636e6ee561d4e5bb60e85d2e9cc2a159a2e19d99a9104a5347886f601c6f909e52b3a0255a0345840a9c8b649b559b751dd3cd58dda9828a1c476530db8c926d628c38db5ceb03dc37ce8bfecb1753ab3b5e4a412dbb018733a4f7df53bcf95ccc1123cb3f0228b387fb4bf302f53e9fd8c9bc410cfe4ca7570b0ae206a4e80b35e209a4e08b25e2b964982b4fdb956e8fb8120669acc3ac489d83112e3861fc1d433c7350a6386bf7b88bfbb093eaa63001bdcc0b7027990ba400b243b40be883b9fe4e601728b67c1ba20e5f3a1765b66db3a3ff8f73b659284db2b486115ea19214114262585befeea1091969963eb240abb14e17becfc357869c710eb78622384c2933b83aa457d1af903ce06c190ba6168c681e97bf021871058dd26af20861f7ce6c741fb963dc7cf4277d97d8b498473b4b8695b47a82afe3eaa36b81a537967b739e5d5ba79345b0c507c499d7f48b72295f6d9832eb674718d9fb876d10613e46f97c96e69d1df3192d519d9d734a1a4942c3e44ea67e861eb270fd9b4a38e959e4da308cd7cebfb793c59b344e408ebaf53bed4795dea17411fdf007871a1c8e4ee68f109b9b56f376e491dfe52c93a92451a75c7af9cb6a9639fe00220c2797c9c227e37caef252b3ac11738cccd40dbbc2e7faf7bf859dc19fe63bc9d791cde644c87411dbe61ac9d216f1e63dc9d591da161028ce56f2166dc9b551c61677c86356f51601c87d96f5e65548a69188e61c49c8118de63044714e22e8b4389f48783154cc8e46f8b7dccbab68a39d8f1d179a6b3619d498013b84df953c49d663151cd6d518195218e751934db9eb19e335719efa411a186723aac113a736b3505b2bef3cb292235a04bebb30525a2cb0e80bcef0dbd60770801035c397e064313fe4660887128861c8dcf481b0b0c8098ce2e973bf0c7ca5801fd7b7b5b0a20b20e576801491764560900ef8afaf6e4e07d9f361d822bfb86b5b25f1e9c3cf94ce6b9ef3630eb211629b7a179c9722aa74da41eb8e5108e6cfaae472ef47b79e391f1d7779900390e56dd009893430a15020fe7f5651390516d5fb075fc3b89d5420cfd23ff3064178b7db3e74431d62f1164c430a3d2b94bbea646d1d450d59877de959164bd048e957c999971bcf85470751920a8bd677b54afbbba660ba46791e35b63109fb4415b3dcc5f4415f7d5a4b221a2d733e8d6d529cd312742a490493b325ce072ee10e34db3d997774bb8a8931fc405b5153f1d0a149cee9f88e0500319c27c27469cbc0008fdbd2fb692e136592da4a23f6259575359beea28bf8d94191c2b39ca64134afa7de00578b34cd8dc7b9a526db1824998e806ce5bbcb6da49891ff1aab405eee1fcaf2b4ae7cf8b5533cc05820c4363c816d12cfa04619530a0856d107dfec60537acbaef0dc1f09a8118bc12a03da65882c171342ae0568d99c5d599c3e9b98cbd5d574acd02f181c347feb50d6226b308174efc520bfc91e8e97b4e8b5d208856e53e5248325e72659d6559563b39941a863ea0f02da294dfea88734b780f29daa59d0c3e58b3f617195a1e79e7c6b83013b66379f1ecc454c7568edd39d0e5437d72fbd5a0d35b867d774265aacc144641e141b598f9cbd7fd57b5c2e539cb84c14f1ebff889ff9a3774f90d9bb2527b4bed8495e6791cd2e6a2839fa8c025fc28f5b4283fa2345e0b82d35f22d5e8558c94c7df027d1f8ae739566445f04a4e20814171dff9618e582f51075c7145bf187821520ffef00b7e5e08efdc2b5eade14fe4a6eda97872004bcac412c87e131fdb3f8555f4c64ce1d449c8f730c09cd99c9d5ac9dc2fde044ac9d2afb89a9cd2ea3158887b67808316ecd0df57fc38612aef9cdab5c5987eada1a4b1b9feed319ae9e6a2830905b02e7d5bc018dee798c7a271f355c971893cc31286a48c15118f0530c49d0ac64e5ad4b094df5e1f7c90861f5cc484838c6993898ad3e84b882993fa94607f325b4fc763a3014a3f944bca3efac21b37f4c1ab6030062457b7201ef8af2a990f5ecaecee05bd0c5403dcb7fc0dda7aa29be364ab5108b7d3d56f85c75416320edf584362fea6731800304df4c13c4b02f9d1b45b5201af5047fc4a88533190498d2083d8db2f1a238069096d84d912022ef13c0c80636c9077d04fa7c9bcaa003e6f80aeba375a9f2f4c25d366435f5f3f7b0c0603fce8402938ab16876890e19293707bdf4d117fc4c51c0516d4b76f3e5ab86bd7302e5f5d5b98028105b9e9c382c786c5d899545b298caa00970bac80069c416a4c5fabc8aedba6f95db6012c6fabd7fe4daf9b0254c323834f215941839983b4c827cb609d0f8bd3a1862785a36666ee1537db5904d4bc0a84ae2009f78e69a0ea24d47a7d3460dd3ae25bb7891c798ddaed9d46f7acbce620061dcdce0df89bdbc228616775a62d501c28574b068277b03c76bdb73c1e7b14849bb2a67bdaae476f9394cdd09192fe14dea386c6785377b3c2725e792608c8a70cab9f9c7017765f786d8a6a01ff706e93962a0e8d902f3dc7d11b3a0f24402b795b88247b640c3174c35ea9fb6bf40b049e3d5b863f8fccedaca1fdf8c8a953fa440a34dbeaa0c02db73d5c8e68da29f0a42c915ec9ad897729a4a06de8f94848bef619f4a92b268717ba585d85b0c2acc0914ba88a766140af6a1212ec76e9bc7c9088383ea33c66b2f826e3d19a5834bf84173587238ec347289a9cff4dab7004629a695fac2192470f968e84b11c8aede02ca86e49ed081d4f19ba55beee8b3803190780d92e17872dcd02bac44e812cb2a22a762348479c7f06e3ae73efff6e753d6b9e4f9c5e1b09bd603683c8a454ee4c775f82c01b5d3f640dd1acb01a97577d76dca72fb845eb70981694aa462bff18d1bcb280cadd513b46ee0fd04adbbf225a224599c613f935e8a1d811bb427bfcb850b97ce22a8eafe7878a498cc6640c630909c2e58397303981b586f1560dce2860e6fdaf83a0cdfad1359c80207f7e151ad9d5a720cbc6122f78a03a0d9a38b75789782e85b2c56c1a3f7a3cc093fc08c22c8bacb84e2b74fefa980b8b96712dc471a519c9851271df41ea3a6d80df71f4b600937dda8b6ee390657ea1b4a654994bf1562e88c69b4395288186c58a78fbe58e4fd11cfc42552b92211b1fdd92db68b3f5e6889a3e0367ea68a078d4e18a76ac077f518ed0accc300c120a17398c3d1b275242786dcda9a7b0623d3bfda543e4ddf292e1713205037aa08ac1ba6814dbab2caefd0b043211e94ee792ba62eaaf544cccafdf138338dcc9d9cb83d94779ec515b46f9aba5aa0a2cf61238720baa5e84f4ab235b5d8a26891d7d86afecc36fbd16a732647639f4aeea18914f521a163eacb5db75d360d623102dd3587d904458321f39d4b4dc5c8befc8f4df2d84c0eb862753a2192c9e363acee96b9c55d75adac0ea013bc5df2ec31efcbd0cacb8c6c57e5fd9eb53e20e690516d6219764be23c7d6dc10b859c9b79258c3e3ea19977435cb7184ee6808ae031ccbcf25c2aa789c1aed017209c1faa5bb6f07f42b5890711c0271e3212b27794e4099a772c6be2f8f323ab9103289f386dafcb6152b4951a3aeea8036a8763cd0e4cff3cff6ab5ae84bab2cb5e03a251b543de8146174e2be439425637de0dcd5d99eaff35ca1c93407e7ed9f97f4d7fe580bf5035b158f8a43b12f72aac7bd347923b64133f2bce2025606b02014cf1ce74405e6541ba3fd24d49bc676a7ef62c43038d1c75598f3229983363604d851a71dffc95c52c6aece73c18384ed8924775f042bfc4ead2a6170f2aba21cbdd32fd9e263c634a299a68a6c70997a8c19c45ef1394630e96228e9f78120bdeedc3e4f460dbed60e0eedad134321231527491bf6c33332e4ed42c6415c2aeac7810f23c40852dc5dd3267fc4c747b0891a524b9cc97c2f43188481f2d4afe66668f850be4b21818c6e0a20e8e2767de052b083dcd506c75e94b8751ad8556330bd134ea8d4a8da88868b4c0705950cf0c29ef3c3768cda58643d87cd677c1fad7586bb5f2a53e9a20ea05798ba58a1d8f803e6bb44b30a5d4521cfaa06bd31941a48166056ac9acb5dee755e1ea131b0ec11e281153ca95f80cf20baea10b30fdecea453cd88533662d78fb284727c45514845839b03bf51249febaf90d4707fa719083b1a84a6c6d9329ed2cd1ca1ffd0d2e6400aafafb70c34d8c160c32470dceb501cfea6e6d3c6ea5ba43cabecc92f936bfc8e6ddc195b6548af9bfc881fcf2ad3e9954466d90baab6ed40f865cd1eb40959a63b1daee1b2d1990087eefa2c15ef6d91521973a906d644dbb6ede670615b1825570271668da15688491083704e466cc0016745a111b43fbe4172a905ec675a2a263c29fbd48a8f22478cfb2454c26b19f354e5f7747dcfee9fc6ca5eed748be7e9c2e7e32bc4b7ac1ac3e3657b38664969c8691cd4f8072ccdc2944958022d4eb843c0dae9bfe20d772e877a9969e23ec36a306bcad3f233924c292aaf5abe5880ea1c71ded6d943987c157a2a65791280a0377b7ae0bb2cd0ec776d716b815f7cde24e98ac49373a0093764a630d53ba2f5bcc70a78b7f70018b3c2d15ca614412573298d19a071ff0e359948fdd7f2222716edbeffbc2b69a82a60765eeb02a56465329f121824925fb1aa09ab1cc358f3980de99c9a8b821300f77b3131fda15e3e57a8eeb921bd44ada0256a4063c683b105db4df984857197be208817e4c1019539f94dbb57bf74edc1b8ea0f2384018468b7632457fb7041053fc54f6f40904a735dc5dec25e6510ba90cfbed05f2754bf43cc4ed0bc501567ed0ce18ee56c109063ce5f2f588e9d5a88754758edfdac6ccb7e5c63afa278594e16d91ae6722a87351961b27920be9d98a40227b6ef202c47467598cb566c59530c73ddc3c7fbaf24f21fb057e10f648dd69d3afcf5a66e41758520c3d85b1372baa91acd31f9b41d298a25cc10295a833a68f3e21c5d7e8733dc5db21f0f432adcd01d9be5583784f04f4d12cbe2885da8500504ed59b175aed3f70b134e6fb0f393a068f5cfe5d0bb7578126daefb841ab6aaa3d443b57dc080c23ec1f5f959648a4389f6f38e8a106f7a53c1497cf0ca3ccc98c6157299ef1cb0e11501d66fee9e18073dfe286664ca7f36bcc3204233cfd333c0c32faa472a62ccf9e7afaee69c62082e109048bbbcaffb40566348c33b62a8c5eddaed0fa10c7aa132d99da16b8171f33a9d733a50dd956ffb30d25b6fc3788edb5522c1d23cb6748ebd120771c4d99d1490cdfb1cfb42ce37562ee4ed11f9d1f96667f915881f5dd179340af48caa32b890c210ebea01bc856a5ce3cfea101f482acda7d4f575ae6b00b4c48771f99c68e229a9eb1de20a21b167839c189beb726f9ca9d771437fd9606d00eea7c182975bac19f4b2887394dabf441bd94044d764154fdf01c0f0e4cfe755ff1c089718873c2ce9c4259dbd3f2dd0ad1915b35833303d5284f789bbad6dddc1d79b2f67ae85b6652ef50600af596e8ec282113357ab3d26d0c2d7e66cbbddaf9dd296f3828417ce2fd6a5a297a81334782774ad719fe43fde3369bd4ca205b7ad26ccfb7321ded242a6b3a22910d84bcaabcc2803c1d01a57b0af386e4ded49c76f288fe412e0d1eea9a9ca5cf0fd6a6737fb15133a595575e971195f991b9d1770ec71fc10bf43f69b831bf401e4d204f899d267ae74fdae2294a0139bfe980fe21c854a63f355619951cfc911b24f6e3cb46cbd12e6e196a861a6e6f05eb0d73a15d92d300936e7805eb080dc114729623340e4175332dc0e578727c097d36fd2fed5dc889a314be873383467870e6403b8b748c0ba8d1c29fa3841f486a1928c8409217be27807e4266916554ff07d3d241d7515a3d24dbc33dbb633048cfd13f86d081a2edba6689ee627c9a9d0e519d260a66fc7fb667755170e3aa36225b419fb39246f7951b4b1dc129ac0969b8223364e2131e4bd1b2a0b4c6716060471193ff7ce1168df783f30ba1b65a754d6fd2fe61aff78b911f08e48edee3d4be7a265b6cac765295cbf14db19d8d0a7e6f6f842c4866ce221740e6553f018a149977a34ee3b914628583d45654b22ce4e7c4c921d63ed4447989c4abc35f835762ef72e226c43368a3e281d800bca99176b384dd3c90f997206bc134f8050ce70d7eaf5995d8e960c93b33bd4b66851421e934a7eb77e399f2b99d01d78bfd6934faa534c0d87c0633e4b9a530b2155ec59685d045a6c4ce81ad3e5a8236c63e2407f7bb0ee533559cc10c86d42ed567ecde6537e09f736f451242cf3b4ce2ca2296c9d27e5aa2552dcdf72f8b566b973f31a408402648c7fe097083fafc2a085895bb6b5bdb9b4d71cdb053891269fa95bbfdba6d90e1443321435264397079cc45fd580177a4100744ebc7e057a97de5755a0d70432964894bb3471277fc96d0497c0c51d38541ce3d7ce20e89cc787bc3992c9cf9b18b65f0e305e3f57bc5a720d639d29106341c4e6c48631039e9e879feef7bcb764c398101b615608da11bea535446d856d9e4887ae52c22a1a80de32f8d1b9b07426c9a1e996e5e9f798da3f12cf3e5a0ad1de52f2d9f81b6568939c0c4314d2fc44ecf17bcb0ba10ee1572dc2d4a0df10556d80842d68368b42285d2171fc4a31dcec2eccde59c0445f185c38cd3d353782bace50ef4a1c85890798b38f62d641b5d059d62e66113b270e7cd305d36f7c775e7ba49c85b837f4c58a3cc7ae36414194883ee14ac802006c7bcd2eb62749f45348127de828faa568a623e34cf8f073f45b181f7e6e672578eee8a1a4b4ba3cbc41b7e449194fd1231124034cb55f1e7d985f466e9a1f8a45e915585bd9b6fdb1f4d292552ef9d371392af8abbaeb353809a5b9f7aa5059791910e983a1c7bd2b3bbaed704a249b8fef584ab454bf136b96e3943bc4a82c976a32fbfdf2e7817adf9190ecd6c4e5cbabdaf839cd182cf52eab75b0db1603d8a9060722dc2ad1ebd10712844c9d78c20e181a37e654e3f8c42ea74b5aa19b546d7a5d6b5e2e054b9641d5ffc7a159235b0a0000ec4014b895380f77eb7077e7f43b7fef9099a4081ef18ccf9a98040930b864b8dfeb87822ccdd9abca7c12331e739c50b7582937fe7b13c6bb3a0ecc7ecc38937542d15b13d9c92abc83bd0019cb3ec359eb7ae0bf411fddfb1e380cb8eba5df33cf3538eff56b253befda0bb2994fc402c74b5c6125d459cb3785f7ed2e3895c294d1872ed60bbc03c32ed3a3122a92aa9a28201e2080b5b29222803cd5fd814b1a7845303d530cc6c26e9eb644325e708644795aa3a7a6fa7d5f3b8261f3ea7061fa97b1e4caca4d6e78a2ec2800bef16db3bf632a8f5c11af325bdf410ad90613ac61abac3cb00b3cb5436392b229cb7eeea8fbe6d0ebd03d479c687b6884b14b9d710a0714cf4ce62efa59936bed10993634e8c2284a05173a91dbe7656e78c426f315d442a202f95ca8764e402367048ca15175f1c3bde855445e080b40d019afa749908a423263b1f0bc5cd934c1b3a1c231776f7fb759ffa0eb2734b16cda6ea85a35aca633e08a68c21aa0f6ccda21c302acc19820ba40d594a4435d5976f0654c822db904fe42bafc862604841e4384f6f06fe86a0c076bd411a45fe249d6fc7e8379308c0487905773f1f8c84fb87f4c08b14bad7906dca96427b72dca55925ca8b7cb30a34ce377d690d5a6545645d4e05dbad588d217632147388dd627e270c6e7049c1760963f63912ad6a2738fc6c0d7efa3ed2a1d3ff4665bd1a95e1fe01b00c1228ff68127e99fc374bbef761bf2adb28c55b1876d445b7263cfdd0fb9e655a1117c72186cbe1bec4f55418149329dd99531e5b1ddb1b5e4718d1eda4f4f6b9648d185cf4c15326e64715d7725888b51a8ea1a2ced5db1845cf0977601f303a4f008b57a0fb1aa25b60078baf6fd26734be0e825a24181d4ae332ee46ba7712bd2f8eb8153e7ba4e1aa50f8bc089caa8f00632a47a160b0e268844e33dd3939a2e1291d76f67d58ef829bfd047d8a3c3fe6c810e22b3de26d9e82fb0b0c5ed0303f1857fbabec6e05753948e3b5584dea475de7b59ce1d4101926ff8e6248fd4751be8ed405b49b9a42badbedd642184a5decd824fc6538a9ac4c04f5cee8d488b9850e1be6c77ae677fa91424472e943a81f7cae005f94ce8324fb0522509cbead46056d93b346d01fe9c20ecb96f0612bb98e4da857f1f6a6dc0de50bad944ecfea0f306eb449828d06f9ebf33afb0d69cdf4c76825d0f634a5136d7a8d5fa48f5411b95489042580107b05868a44551068542922b2b38a061b2360194b0d24041ae171093be9595dc0e2073e97573f7c5771fb9448884bede6ddb50aadf3b4c257ebff05142cdbeed7ab5d29e96cefcd6c74b8e0da84e89a2acfd0aa7069c594d98b10521bf0d8e4453f8dfed53846678b3c5b7e293effcd29ad3ca48dd9739f7fae31f3eb7c5d44e4a3b243328cfca2843161f67f46f8a1b7cee7b948290a212bb2be2e93254a6fe9a00b27251371d875f9dd22f12ccd4aaabcdaceb970af9edefb7b7aa192636b2aabcbd303f47aa987ce4990bead4b324b9db33f8c6a92cba74a008e0fa801149c436d24db34e0eac0b6024cd827382e1fec8e04aec30ec0d7d0a45ace230855f60e209d104c74e331248a393af2fb5ae1f3ef44c3e52e4431ee36d91470a5e0a1e90c708664e95e53b025958029ef42d2f00e879c866c9e5f4d66010250ebad0a0315c164a06347e56d5d5aa2eb5211e3095b4acd37401737836578af219772a8d4729973ce7a1cb6c9d5e703f02c4e48e4042335ea37ab908ab85ef4ef153e094179552c8000627c1a19daa540b5294b21f6ad9e0f673abc5f5d50f2c4af343813a03602af8f003147eefdd1d91ee023d0dece228e79390a4493242dc17f5919b323df7d5bf5cea62766c3b83cb8a486734ce52b46538f475c78493f0f57788439215c2437550eb17493631e171c7075b79581fe4d2abb31e9d4858034a6690a27d24d2803e67588848ceb96d40e8640ea7df7bbe90c821a10663519f028915b88db202bd43da314c365dd8eaade2ea1e8e4dde09b1b579b2e89548e8f326d9d81eb7706cd16112939ee1c7f9a0bb6d8053184a09cb240054ae0be7e765b6fea2d0044da0dc04ac455ea93cc052e2fbe45fa2a25c4533029938957dcd4e7653beb67a37a340c2bc587b8527983cfbc007539167594d3236e031188afa4482ae8ac094c8b35f7771c4d2d54c189ca51beec572ca2a1924fe43e62d51069de26a617df36379f84875efedcc1a15d3b8a5dbb8520e0dca871b3712221ac1bd3de4999e1d0668d36a2bf5ad171f687ca932a2b180132c4d0040e9627be06247bd064e8e4b293e1459ca49a60313ed257362e7af345c612cd1b0caa216f1060dddf0e759156500d322ecb299a08a0a90f84077b72b4e11d3574ee4f7e4a891275cc32f62ab72deb2b426166b82e2e8c6102b6e879ff3af4b9a5cfd9c1ab29680db4e685a5687f2a3bfc0de495410411e7831ee04099e58842c52dea4f8da2d5c5551b60da7658e8bebc47275de87f367a0666a015952b0d6275e73cd33db8839729deba85204b0bd43f5ea46fea628ab38f3e142202740e9a33bf8d1a39d23ab083174d273f2d2c08849f17a8b59358a0a64a0c1589d2e2a0f67cefa0a52b551735c485ce6e4ca35d8955eff5de88fe195b8273dfe277395589d2dd43a399377e04774e5399b9a49344752577877031a47fc16a987570d869b71e05386f89df8bcc07274ac0c0517dce39f8d07cc48fbd67509c9d37742006df3b46c6c4db8a2a1e3657692af5854b5b62de4793e4ad9317f17c7aac172d27a06e9c79de71a838dd66e268ab22a987128e78ff32f70d5e84bdf7e9a53410649537e6e6856f95dd888ec24a0f20d5f6638a0f9da2ceaa1a826a1f2cc0f39f21ebaafaa27b5fada790d97d05be0c2fe05caaf0b2343fdf2cdf38df1cbaff072184f17a3a02c03510e4be0785ceb0f98903aed28808d00cda2d85b23a6e3ebc1f08176667a873ccb9af96ba9739bb449e96b56a6541bcc7e8e0af5a006d3186b65407c81680e5b4b5532607e7d600e42d20abc0b748537320f02a7c3eb92a46beaa7af2d8935d134eef51b8594ae2f0807690785c83d72c0a67bcf96a2696bba60e7c0ce0b56c8d685208b992936a28d8c5a628217e09fd86c996d5519a90a78f1b191229705e5133f49d925fed773a6b3627ddb66c63858a34fd3f45e64132d92f90da1dc791a15f345064bf16d57e8eed52ec85cbaf6a13f945598a43bbdcc1c0e267582ababf24d6134ba03f0cf9be83cc3dc66c7471ec24ee5fdd69f10ef4ae3061cc5dfbcb7a3d99baac6e4266ab525158d629d91510ea5fccea574cd5493249653fafa47a63eaaa26f34a0df4b7720f003090e10a3815f11f9eee338c7a21413b65abfe9f4850f491375b7fd09ea6fb7a6bc6fc1e542fa4b3ea5cdb39a6bef0691f9092b7cf652f653aebec134e0ded21e222e30ecda83339895c6ea0cfada5863887012a3fc12209c9bd36c075058f76996b1427c5bb1265feef636722e15fa17b310034a8cf7acc7cf8e565c9eeff8874a074d170b1ef33c90bc1edb076f2491cabdd31e49475e7e30b62bd6865e5b03b6883c15a21af12ac63eec2c63bc3a6bfff6affdcd91af513b429f71e2a57769103ccd01c89740c9518298e4d731dd4cd5357713e052aa4f9f2ff80b2dce694987a65aa02728fe195037010d4e3070d279b7dceafd9dd02e50fbce458b47a43af16b41859029e0b21ef04bc3a56c2bea3b70924eed1dfe2ab4e767804ae1e8435b35965110dd59e856b0f4622c6eee2434ade7b39a2a1c9146849250f010d4edf1cd9ed3c070d9e9ee3750284f9c1923d5fe9c8994c9a3054c79c8269354972c43f662e42d72b8e271bb880e2fd60999281ae9a6030283a8d7702d0346bcda0144893ca3c4b48b72ce3d7262349ca9c0d0611eaaeaeacbaa244d36231b475dcceae7974794051d021f2b4116a64f3d33d913b852ec1fefcea6c4829747f26cbc367325010d3b4aa2b80c63e49353b13559c8c60f7c02f28217a4d451cd2419e400ce1ffcbb61b4296be730171f7d60f871811cf3190a97fae4cd7daa2de7d140c5479cc98db3cd5ac3050206a93fa411c686cf6931c0c09b3bc48039a91d63be5e208adabe1904a36b0e6251dd0ce6d710b724f7919f337d3ea37e55f41d5721fe381d7dfad1eb4f289680aba288c39713dca0c8f4d9ee52bf2affe228243d576228010800568580a25d8aa6533a43014c4199b4b636ea5bd7f73b94609c9bb4ad9a2733db8ee85750bdd980f51186db94379a1747fd9f42f783b9343f621107bab0046fdb2165e64eb785f758e8e883cf3cbfe2e82e4bf4f018719051f13b9fa57e954e50c3215e87d6683e802cdbf2126faeb9d96648a37bb2844d0b031600a2a17e3913b3d22319aa44f287f4e86f4b59491a32fd048855768ca987d457e31d98ec7e6344fed8ba3447c6e88cf899fadc566c95c06682396ae2ae255cb89164b7c85486186578f33e6b23653469b9ffa4721c04ae911a71430a5db4bc468dc7ba018630096d296e332fe84e0dbd260b04d3327e6c442651f6a1e7070b12e7cd010acbc01c38e918234ae425f5f83adfee4bd28f298964fe9d51fe89102e9da7cf463ac4ff006db2d98df5d70ed7b725b1d1bde6084d8951eed2fb561d6c63dfbd1d04ee98d8c508350b699b664a6b61d9ee8fe6f1381cbdb906c89274937bb366720c3d6ba78c608ee78b5734ca3cf2712a47b125c75b7322c8878e8130928927d92f4025a4eca8ac3ee25424ab44f3c0c0e40d2a6deb785a438861982e1a84c8fdb73078b8052dba9c3f1702c032bc92d2b9f19ceec6fd6651f790c094653ff368769819e3e2ed33c321f77ac9eb62e89a087f7664b7d64376f66c0cf42971f4ac9f2b51c6e3996a30f7428472748f65b2dfa2906e93a5f6f940ce8fa8abc7eba9c4b0e88249230c675447456995ca1e2adcb09dec39a3ce68a1e5a262ed7df7782927b1d5a77e36c52db221e1d34ae37b6266e31d5b4be616da0a7fec4ec1435de29b9a2477fcd1f7316aae3c363345fe70a1fbc0bb2dba8f943a028cd31ce9f95bf9d09251bcd09e61870931138512d7615fe117b85bab27cb4ef7b1bf4305bc0cc2e80a16efeb362dea0cfd18bbce62ed7852ef1d776ece9c4784f5d7281229a491a3836b746c923c8a7922daddd21d6d5aa9ae185522d711171334de5881baa5f6e78bfb9971fd7706679f29d86f25f5ac6e2397c39859a5997bb4b96209705e38e608021fca2d4a62ae88d480d70c481eb3983f92a14f3b012cdf838b278d022bf2e13ae73088ee00a9375eaf7892af336b4382d82bd18cf56ef727cc99f81d30396d1acd91f45c5713d5685b25ccd7ecd153eae50203f770ba151f37bb797f1d32057bfb6761d8303555174f8e6875aedafed658499e4f1200fc3c774adcadd95ac44642e97889c06ec088e8527b7a7baac6385b963ff65bee8223fcc929980216cf67245c58586b79cf0b9f1d51046f694da27ff9e237620bc6449273ee027ea5f73caef5210aebf5f6939f270c0017a8accdafbeeb14eb34a73afe5452f27c81e5dd007d82afdd5d9c04f2412e8b3b0cd0dc3161fc7b700125aeeb6ee3bec30f473b17726533063b2357674521509ceb9d8a6cdfe55f80c93474831021b24d979b63d83d40c3fcc66e3c11c9e823afd9f7a16a89cb8d57000756824c287b67568824a3306c204583f7bba04215a8cc907226732a8b138a305a2f198bf45017d83f04f5ae208b29aab352cd18a29db9389cc9302552753573ed8861c6f2b08589e869cb11cbc60df8a29c462782e342d88244d69ff1e70add94d33ff64b351941c28251ec97dc446ce38daafc600ca60aa433bf74d7490a298e565abc2506a7ad10005827f00fe92ead0830f0b2f04477112b32e3cca4145ddf99fd3eea6981b89d323656dd3aa576aa5448baa82a794c37e75a086534d97c804d1194f590458f51c2d92afbf5097239467ffba680008f1140bdc3d4bfa281083b57a3884c91e55a47c9be706125d841c58b7c4d6398a3d8fe00d0f4c1f1b488cf2a051f12964a42d284d6ee356f303904bf993d3f675cd080c040b0f5693ca6bbd271533ad7e0d176bc939d848fb168972f2166c4928913ff521a4f443a4113f0c418e320484abfdbac16a28fa89ec4b1b0c41a8dc2e33182632971f23cbf9d2b627e5a692c149a565cb57d04ba8ffc88a38d63c919d71c1835f1273d7028ae90c76f5fa75f61d7eea0c8d9fa28b9ff287380957d7a634a2b85c24ad572dc44135f9c8fdae22f69c3d64313005ac59e6a113c8ede58cc5e079f23979c0f9277cca556cc415242710656d5d95c34ea177067a5c760e0f8dea04743c474d3d5c9b8636f08f8e5ac177a3f5a6837edddcf62f334455a7e6861ee545b3173e55a0696b8f72658ba56ad6ef30480577f6a7b6908243e901231011d3107636efb098897d5af47919a1e58c51c76ce7a81b92ec075fba419556c1540e4e8f5294fdfbf5739d00ac5e73b7314b54d5b3e1f75bc3dff8021e33d87d3dbae5b7a21918e2f82333361c3c096bbc1768bd340b8dfaa940e8f3accc1b6215df9bb812800189a29b89b1413e604181ee0b40723555c29dc7825e54d70e833f0c4d89887b74d9cfde23efecc9de5f201ec7fbc24e02e95c7d92268d9bc40be49a711c5d24e615f206fdd24e1f0f94b094642ee36ed6ca5d704ba9a09518658fbe31f9d467cbf0713a5695ce107a9e9df9ac866c84cbc0a0af126f90cb3602713248ae63d470400e73c0a87624e28ba6da2ce3c8358ad0dc8af4851610fb0c9ba5c733f2b176bb558c09f935b32e1ba4eb8cb81b3f10074f80d0c3683b35458b5fdb0dca4d6900ad093a5d50d5c2b9cd707851416aa491943b48fdc29ecbd9393c437a51b629181ff60da82663bade1bb39660c3a10ee410a491343f7869ac954731b99b1c111e3c52f5e9d5ba3a92b02f5e0fd35a38711955744e6ef6b60e8c5031478ca1145ae12c076f5e2a1ac9bdd151c64d1c68d5b3846a124fe5901d86ebefeb3c23420dbfd9aa548ac8886c481598641993086f0c44af02e6cd1525f64fb6d422054c5ca719211d8b8ec5fc66ae83d0b4f76cf41fbe6ab737b38757f4b9804a40cfa7cbab24bf61970677ad0c88437bf426b205da43315413786a16cb41b28da18aff93bbf6c406172c93d65c261daba9013495d36ae60493f3c64ecdf3e4f7a6a9bfc82ddc2e23892362b69ddad1b0708a7e948cc1126a9f9ad28047d31d053198b724453e4b1757cda3a0401895f1726e62b311558f2e6ac3bcf6bb52513f5335999d2ee4a801ff1d642136b579b675286298501d42ec1a672c104175fd96b6c233027bae6a35c3d87a47213ccb28acec4a24f0160dfe58606711caad26dbf6aa0b27eee2506b363ddb8dd1195d8dae166d547598f9c009731b49bf03c0b2b13babba64b4dc31ba42a96f3de0bda172379c8a5f5210801d530e788ea8b74feda40f057d042d00fc5ce03a1cd1aa2e8e30d992207f27e92abd193739846ae112c97d2c549e44726f52d81d1581ccb48fd6ab2d534f62b5143f782cd36a7cc15db637394887194226ef1a0b89b780bbff9283475da6f444f9211be24e699c9e742287c437497d38095e4dbaf69b3d2e0144ae5a02bec1cb258e96adea9fd46a82ea4c89f74e2f528c61614e62bfb4bfa5f6d692c3a936aa37ae803781e1a9be57c947c6fdb36f41b76a7753c56850ddd481daad0d86c334498f941866c326a8baf675ddd7a7d403cdc667970a4e688c15c15938697391a62d01a856c62c21a1cb1aa407e955529c3680ebe480b529d247dc92227fb27e45829586855111454e015c876fd02a28053250f5a5ad384463620cae4d3652046a2fb065cef2be2225fdad657681a6ae228ffa3bbe5b7c43ff187fedcc74e0b5b442b37d6482f6951796b096f875f67863b9093d7405cd037567e1271aa542783527d276ef903dc1a1c0d5b634e796f946384619e70b2d43343f52c6c18b7d2a6905ca59d119121041bc53eb1c5e5953854ed384ef0428a9928618d8a75e29b246ed4ce55edb70b94f7e5b14837fad01ea60aa022b49ab0240f0709381fb200f4c1225f490a25a0238ee18ab360a107581946cd28bfda729c6bfd59028ab0892573dc2314f3b90bc2a70ddf50dfddd2e0c45bef5f046f0ee8a74b6360688aac8fe54e88f98a8a42fe312ed8f944158bab8ed8c39d5d20fb91f3e04a165a9194a18d9b17243247a6d5a11aa26e869a3a364e4f1b2f73efc94d247e2505a30c0328b3c4d30c69c4abf1f00e60a0951a2380f12520235e704d1e49c3100491ddf6e19815f022f942a9296adc9352a7d43ded7d84a8fc812b0a566719212681c7d7159a99779ab2b680d8836edb007f020ac26d57461a4a7f4f3ea3430b9335281d321d87d43bb0917844ee7e53582216936211ce8345eeee0a16c4808c61f124a47935ba16db68cc063f2455ec7acb1516c930e7c254380a8d0e0d5a969c1c887b22394f01f15ea99d90cf6037ff03307723269cd27f326e4715028f2418f18b7822ad7cac6a6acf15d3b9fd466b13fe5655e405c0e75d6dc556414e7d854457f8963b66b88c41d6f8f3a0de401c176c789f8a04184ca625f68746502190ce474d6cfc7e28d45d3a090623dd1d57236c99815da0ad965afc649d1ed1a0be676c64d19ce18ee1c804723fc0c3ed2da13960dd3be6ac0433bb550b7e205d7b0c9cbfa5efe17dc922c5733b58fd4564820ee574a8b4cfa1309cb6e5ce2d8e0368e3726643454b65e87c8b9d5dd28a855a0ee0435d00e4d48a8f6addb9335daec16d0276dc29c64257276d06f15b53fdf3dc6f808b1fa88b793dd1b9ebdf9e5bb544fae4d709931975be42e41c3f60074001031124dd708ea0734749014b9ea2f24465085e79baf617499309c0621495c4d250e025cf99e22dafeed1beae692963c3ba128526696a861eeaae50b2a36b605748f1bbbfec483eefa10065f6489efb8ec01b1702e7dd6b0cf56ab18498fa6184db4ccc0b3918ca0c9528dfcedaac42f329425b7a031c1ff16f6448d51fbce55ec31f9317ddb870980a5d9b3beba1fda601176d4b51225be4099676f4025634379c56690faddb06de7ccf0347e2f36553a11159db3f7c644976c48423b69f222ef82867c2b452a68f79c21ffe6542af9f0d3c6f9bab755bd344b017c6b016b1bd183bf1b904808038e510576f7bb0ac41dab8ff46639c5abcbd9f879082e9699468e26373dbba1d39f35ceb8863a59e871c842693ad2e4c9af029662fc0cbc772aa732a7ef71a83a71a0ef3523ec678bcd58fc8e1c5d0a912d2f7e062896b14ab790b374b7cb2be45573922382629de04510115e861fc49cd4ab92da508bd9a7ae99585316261518ca023544806482171923c1200d9601e2027cbbdc1b33a37a00df5e96bdd4f99b1ac02410fd98508f801666f49328f9c966c8d247db1db865b4fa24dc8626538ba170a7ae0b26bc55ef939e79b91a84ce21b3177b00bc747f4d13bd02124ba565be51995fab52cbc4c759b42b21b6bbe11986f1d86c12b89119bf84a1de00e8f3d5a3b2419abda1b5277d83310cadc65baa8ba9160bfc5deb1a313bc35c0dad7fa83ecacbef7058ee85cedfd5773b9299afddcd95f1e304b6f76c2ef4e20d6d548fb0e08326dabc57f72dc4ce4095fe14da8c00527cbdd2201de084679738827862deda58ad19b2ee890b9630e2227058c638a8cb32291a39837084b86a35901e2521fa7ec3357aa241c33b11473e5c6ba58f266ac472cc479562f5ba612c7504b0008231c485f1126ef3e8ad2788494302daa5dabc3d01572619eb136dedf90768204753b3fa9cce627d057295c5abd4a2171463c38aef7a4b29790cdb4b780b463a53aa7b925485600250bcab48ff714b5fc406330e96ad08e3add847adabcde47be4b7750876ee920f3010ec47a15671c15c2285f73230cd8206eb136693f6ca0e861dc5a45ab12dd806e1bf1ba28edc427259d99e4b75ed05483ced427e5388c48c5d125023064ee9f4307d26e8aa776fade8207510190028df6ce2341a16632419f708ded43e86ccda0da2d266b15b46628329a5d6d5020cb70d0df40f2d372df18b3546e7180867914265ec65567a44f827e01022d68f5eb41d05e32045aa85e468ba382e6fe46b327d8eb5e539c28d4e3ca7bdf262ff2511bc47bda4e3104474b39a6fca24e3bc55c113089b7e1338ff4958cf5aa2ee137c757868f180f86533494960388220d1bd123a543454b927eadc837e87d921cf3ee9e38ce539ff6ba81a7607254fc2b7bfb1991ece48220124428f1b166b06407324d5d5d67f0075ce1914ed472333630555ca7fc048b804809c36f88e9ab4cff85da118a443f2231e114cb8dbb9e89fd82a6c97e0863df5dfd2e0a884017ed6cd9dd78805398bd27a73151425be8b055495555cda430c8a354750e382545d26a4de72e616d752dce657673390b21cd8b20775dba6bdb596f7b5dde2632c3b103be02515b30350fa5eb8e2a71b30052e2643f4a9ced0878611b17fd1df208b23a49ada8557c702f3cea8bb1469542512ae94b6ababc2ec94b46ee425041f99db8d4f401b441013818b7a97fa824a2225cafaeaaeb3b332f80c4e336cf8c02b0d1a2d94627ef29e647984de1fcdeda761d7eccacba2b6768584d45d0cebdff46671e3d63d15f01419b683b92e2e9a3c454f1f1ed4704c2ccc815b767376437f074fb5e3b83737d3130546d5aed033a7498a8a02e3bd01325e107a673af5111eb78bb95a68bd628bef7014f8c0fbf9c56d34fcbe022d0157197c4c31e969d4ee94805dcbddbbcccbaa2f8406dfd7b5c8bf238e3fa6008cb309a6d96f1ea7b32e5819fe3af50714734b97e4920730f826b8f2473d599eca15f8e9f2aad3e1b8ba0ab977a472897b3b7222adb901092ef9ed3aa59456b9eee8a8185eed806b834308f3be42dda5fdcfd02e46aeb5a7a416867ecdfda0072097457b8299f367d28199ef493650e9089005fba9abec888e0cc909fa22ae2938ec0a331af128a9c7ce9ca74b7d24da8be07189370fbd9f6b7098d77bd27509d24946ea532ad5ddf56a564f3897c39efe2979dc6f74617e7ea845aeeac9ec3fe1e51916ac8c18428dd5a67d819a553a68c446a58a35b35ff57195d9e506de5051f3f87b4916fe3d8428fa03e27688e480e610bc6273d48a7188bc945535dadf69e009326a7c72349ce7847f04d724ee639c66a1757ace574c094fcc8bb958767bb91cc44b2f2ac38e2ca2d356f4603be748b62c9252db84d0c9e757c21e472cd2dda3eefe8d9d283330c6cc99202d80047c99683646033f9cedea632466f652559a5511abdd1d0162aa4baca6345c14d6533a2d817e4382b9f2faea1e3393aa81202385aac85f3b3214678d1253c0213a9aab47871797343f65ed663e7b754d4183d81660041c4d5a84223c117b35c91236263cab23bef90c9c4964c4b3baeca5f69b504c5af586a3e9f01e600d01240f730c1121ee8a8a7d0be38e175421398aab5eb17fd3ed3c75395874c1ae2341347c8310c4f3102066c1e57dbc953f412ea2220387e43b2930b5666dd1bf8e48ed94444d22c75491ff693c6934e774d0a89fb1a503d0ce0116c09a3623db7eac8bc46f2cba28330db29057eb96b934fc79fc8da624a28c1324c58b30cfbdebb44e88d0862c9d7ead3d45214da246821997c4203f573a25647949005f0c5e5e7fd486b756af3dc0e39fbb1cb478fa6449f702db34e5da4416d8ef575e5c4c08fe3158de4afe7150eee641dc901f4e1f01191a92bf614c5609e2cc14cd4e98746884c9fcdde20f386762f9aeaa36c632134a04992797b28e8a56b7dd6566a6d2b5e7dc9307f436518a6d71586e46552ff16fa89d3716dcf7c9145f57dcec994f5e72c47301510b44991a5e2ad056cc3858d5dd79b5d3fbee4d740e788b913c2a9d26a24078ec431ec1fe537927260605d00a886f1fb2393f4b60cb35b3407300ef62557d845d4d136171b3bc18e288c6862bda7f51827bc3849afbec7d78b3c09ff34e40e85eb1017f57331b1de520fa382814c6421cb60950b38b0b25d201d42015eb93dd02bd387c535e9a7bd820317becca4b054916653bc6b614fff055f53f9112445b08793f23b745a9ea277810af740a5e2e99e58c966924a19ad9c75d2da1cd0a01ca68e2ae4964ff5ec610ce35b9e190ef091a639cf5c36173ba79dcf73c37cd06f083fb78a8118d5659db4de7bac7f38d5d5b16a30fc68a4bd6a1597171de72d7770ecd15a2bd730658a36e399adbc216754a4cbcf9e22232ff6f23bea37bb15fdadaaaba27bc2559d5e314c80286029234e2d208f2bce206b65a95c37ab8b1b437de6e6cf566fa8f7be22bad3baa8e64dc10bfce20909e397a4ccc955709b071fe1e7ca49cedbd5874b8dac57420542f534f23efb5bc1e6414e5434a6f1d8886c0c878526abd12ca6aae370ed1bcf2bf2efbe39765797c72c7268a32fbfa9001c1ccc11439e36ca53f5a9be9793a556bbe509a8e658371af1a1255d73ec162b54c8e2f8fc8f414b0f1536149d4ed334730a1b01a16a0ca7e8317c1b75d31e289b0ea0ad2d1fc28a75d70df0503b1825e94e6970c0d27fe9bc940c587e06ec64a5cc54dc0ba51f9d9025e9c22f9789d36ae0e591f3ba7b18615ffd1661dc53a1adb2fb5b28d4167c4ff749af30df7424f656a57fda862eed244e65e2276c0ab9d0251a63e580256176531cd06d84be0d92f7f1f215bd93c2b284dce91e152255926b3886d6e9863f7deb1d2320638c503c980b49687f60371af0789e0dd3c353a49b02e8e4a004f9dc385d6b54755b6e4c7ec28db53e4810012b3be56f8d624be0dcb87088f5fb611c286a6ba5acb5daecce66e4cc750792a05f0c05c7e1c76fa4d28023fbc65d58a7e508c8c173fbec071a218c83824f90fe15d9c3410bde6cd6a33d3eb84d3a9a3c163656fd5aa815f3e854a7a8521e33ec22d8692ceaa684041544db61bb36be34a1bf0a8d1b0a4c6b1efa2730401a8faa410337e12a068ca149b1a6bf9ec58b3d4f64ef3048dc130009e88217ab4c644bda4d5767f9e109842cc2a1800828397e38d97d16ccc2e49e6d512bb6c4128eb4b4a7eaa19dfc6d3ec635dc1a2e3aa47241715e8eef468c9c7f959b98f0088cca5c2be1ab1a610ef30340bbba19dfc6eaf0a20c907868b43728f4c2cab238e974a08b47e3fac118573787590c5b5314abedcf4dafa9ac846a77692d252a644ecab688a344e8d014867fbdfa2d4ddaf1e761699122a8d743ed12fc85603962f3b7f52bfbdc18a688b454f4b8a3674a77addf183bd8ccf189fc33c67b1d639f41c9a42cdb7d8db1fcb462d126c59814a834f47baf041f0b8137c5c27f2180f944c40757db4e563995d288583ef9806f8223e3d4819ba18446d029f2264eb21aaeeaa0925e8ed2ac96c8bbe545f2f87b4eae072bf005ebd4c6e4f507f9a63957301f4afcdc28b339b7a28d818866804c5fd51ec033a0b0d80a86aeb99e993f8c6882e0b7d08adbf8ceca724fb73666ffb1abeec5cccb3591563ca92878af8eaedbc21e5222f03f7350122658a1ea814ea1ffc97931a45be492bba87b614e86e1d8b15191b18f79b72935ebcbd20d92d6c6a24fb3186841a3fdc8864721378b824c4e6f1d57ae8ca4d9162898e890b03fc57d8f6422ba4055eb9e9903c5660c91dfcfe8a75da22b1dfdc1836b5ae55b87221fc890f4b42269a1e369bf205f29e8ecfb16c2ebdc1fa4b84e0b60dc1bd5541a827327589bedc90d6d7bb9085a3970b8e7f943a3f7258e432d8364d38b6072a2b242807a170449ebe3a47d01579c51edda2b0b68e813d2f81ee47407918f2cb353d2533ba209befa66a9d60cde5daadf1add80ade6e2f9c5c85135f3e14bf7317be02324093be735e2907767a7a6529ab19c4b8da35b62da54fc9aa3c5fc5605fb34dfae73c37d26a0ed602208ee78eb213ad898fcd1ea1a09c23814c4d9c28f11400ff78076bac25c7b86ce5dfeac24551c9cc16ff5283266a5d143843518e8e5cf39263ae53e289bad0e32629b4047bae0cea5d041661432e53dd0d265cbba1b5c4424f5c47c56cf86071d4409afc2950e12ab41fa2960e22d2b8acf734ccc11e3ac3e0369b5ea6a311a14afc3f0655eec073cd68f048b8a823a70344b54f3bc0b118e3d5520d2dc77e9fe7890c38bb7e41dac4619df0cf8a4c0fe618d67fd0e9e3c8f8c338a329612234cbc2350a11b2f94000eb3508c8db48cc29a5be4ece05a3429dc06bc7636d1cfc32bd1cbd0cfd12bb75adb53063c22139936845df177fe8d789a05c458b8e7f126f193904b216cb475a9f70b23d6a85d1ec93dd9017e000780e7dbca39ef9a3203f29d8b6c6ac64db8ce55c88aea4333b0d767484bacd17132d4c69b8c78659523fd70e65a152ddeb196dba2f9be8a6e1c91a110965c32f893f8c3a1f96e21f679f9e45675dbcfda41fc31bafd5abced8d87c02887abe32c0e19b04f9dcea418f2c43f53c1666cae454503e0aaf9517e844b059f9b0841a8ea2ff0278b30253f1b7ffcf67675902f414e575ba9f908f5db38e47482f5eccf8d7902506baf76622b3860fdf08eb6f40cc253a555da7783062323667bb69d40024a1b1c155695c543b0c75beb0016d46bab7b6081f12d357795f13a575616cd88dd5fb0e53e4a7343a11fa466e1e25bd81d9099b089f9e6dc1353f8300bf4d97a89e02b1aa8b8b3fa6a1f57eba02a8e223d8317d73671c4fb3db92ab3933f4129912975b7c79c37cfafacf6e5796a5fe12cad45758183a11246f1373e38823fd1e2b3d8198049976ae141c68eb68ceb4f89fcb6fbbad672b8dc500a75eb5dbcef08dc085bcdb6d6a4fe06343cf91d918655ca79043b30af7a74b89650015089f189fbcfca389f7645872450d91d36878ce453735830420f19b093d4937e3dbd6e309b3664c08fa72c7f1182a8ae34056a40b37ac40cc02986f31a9e46168b0c86e0e2fef35fde4ab271f6fb24c1799827d2a6b7aceed3323a39fa29099408d57bd5abcf7bd6ed689145d548f5407dfc0f81558a715679807be4d09ddc170d1de4442e2d3b8f0be697733bec334c949f1a20725137d701630609020822f768607cad686a36607a80bef458769f7a41a997353e404178bc125f21bc4289cabc5a06bd447f0a8853a785be03e0ae6c695ca33fc1524916f059901368e2877ad8bce605378bfa1d17878493e27019c14094da280904525f10d404eec9600a8721879939983cb1834ddf5292f8a5218c296cfdb0cd67c8d16f78664841a304c54031af0f9b4b9342d22f314b20f2671317a0d3f31b31fa1472ba2beebda39fbd2efaacb1674ec5e2076f08b96c30d3c7f6597fd64b17c192d3529e84f90a50184bf0f31a216e8467c585d4e0f99cbb063be053de6efde5b80eb899432611d665bb60ef8a206eb8a10427d4367da941f7f219c50eb3ee0ca13aa1caa21a25bd2fd3a280562de9e4e2919529d0555c1e7268b7d40b4f0387c843cdbef1c0570a66839cc7a7b29c2ffc8026f4803012785818c594bc8f52404e788c3308c209ce1f0238b9d6cc0d91dc701a098cb28b22f7aa4a054759dd0af1dd96a00f98994d5d028604f39ae29bc3f6512ce016839df165dc3acbb59adf5792167d74b158e0f3029b3518f04b02e2a14015ce8b1b02937b7bf5572c66f0f4bc8b4fe127c1b03086363e37a2a9c3e3ab2f4d2a627ed5ac9be7e9c71b8c75fb88062746c06a3077f84217f196cc7463d3658aaf5e8a9ce5b1ea1424de4c735e514f6c4f34b2f38f951aee7923f10a6bc220080f0f43ee3499b6ece8b1586d80d483b8626172aedd2d3ce76e90f320202bbf8cd189ae489a228a0b8ff2e4344199dd99425b89a23242a79f0011d59e2f2ab1bce7af2df2b0b20a35f6f20dc9becb135957705c22d4bb26006d3b81dec887242eac19b0070381bb1b2c7ab9c85699f1a4922817dc439302845f810181f47c35ccd143ece1df18962c9b52cb2cadc567f123cd40c1a294005a92da7b5f03c12a09dc2de5c414587ecca48ce8ae0612226919be7a8db50c04aa3f7f16b8fd8e7cacbb91e2567af0de405e9114022ccb04da806a6dfa1b8176433ed7f981beca1dd74dd48e471db3578d0d6ed14c873b6779bc2e081d72e5f91ece56d7fa94a114ad60efc643c4d8f409a5e920023f65443c83e9792f557d656882f05c1cf55916a8c1f8a6698cdcf4c6d913839f47f105334dd0f35b7ec273847dc20a890f6615754d86963b1b359fd48d1c42b64ca4a4239cb86c3a7d4c825443d0e4d60219c412404ffd3a754dd9fa64de4feebcc28e82a99530036ea3cd7bff0ce36cbc8ab54a9dd775812327a99a464580ed46a22b48719c19a581a29454d32326e98f322bd12503d5e8bf9b0eab7e203d060cfd549986843d5332033227503f36e8c5bd001e604665f5c565aa01b23b44191e9d6015f450c38ac5e4157c87e663d2058bb32490a447e87e3db4c9567bd75d6f9eb8fcc3ffece2406f09aaaa4255aa320e6b6fbdf486ff6ec331bddc10f110a75c13ce120d719b0040ee1eaa6aa02e06e1f4794ff30e1308bc1fb5d67059789a109d1e78efdf643e22833cb685ed4a3f8d52cc73549f1697bab3d0e9484e40bf895a48b2dd2b5a14574a2d1b1cd6a93b2735b4be44b2d88475ee152a76f03f27a6c6725b42a5e2d1c486c6634783a38cfcb339e378cbaf6649b6014583b4a0d4d867c52e6b1dd4700d5474c377d2f87e8013ccff31be64bbd6b1f34d145a0ce68738789b724fbb82ef5a47954f02e407fd36ba7d9ffd7464a6c733b535ffc2482b2ba06f177f1a1ca3f8920b7f38648e2dfb0079764a042082b90e82b3ec1e782808c4177a3efaed531f74b70e3fc271c420bd8e23d936575b07df1d912b68ec39c4cddfcba3c15e931871b86799a6c6b64a2b7e52e839ec910e2a2a740c3eb4954d90a3aa338a11eeea6f7e37350c073e799c2f0115454391b9613749d347c06c3636ebe00d3c916a23be3e9426a01fb638774f5b44cb200896ed6de7e6942a944338e0a505d7071cb2477bd67ebc585598666c5710185a1bb91568759e291ebf3695892e99b801b9b45f9bbdc5f6cc775c7dd342ef9ca7c8d94268e4514525bdcbccb381e883da96b6edf84641aa4c0e17c1ff301052c568c47ed12b74edabcc14716fe1413fe6441aee33c2eb581b5b9c2beafe3cb18b19617a993c53f211347969bb9855b4e76f1c62fe19601dffa4764a853acabfeb17a85e84267a354dce1b0f4525281a447fd153a6702f8d469a52a14316b38e6fe1760f3b584f73a97e22d71c9fc3ced36cba5c9990ec3fd6dea4875e67c912dbd7a778bbea162e334fd5ab649e67b8c00eb8ccf3ccc5f277b77efff7fe0b5bae9625774a888c1319274e5e14dc6415dacaf5bed43d6e68e3e3e756fd36f9d68bae79193a8bd1feeb11cbcd1479b1a944d6e2d57c93589e253ea047bd0be5acd383aa554fcb7d240851e1d84152715ef3a6073fba335eda6abeeb0df988f5e52797a337114f29e6c3cfd89934d6bb30f6379436dad6853851f77b9a38c6a7fb8445617f0f170e7e43be401fbdf68ba219ec33e1824f1ba3916326c1d487cbfb8afc17f5fc8720548c74bc361d3cd75e2cb1770694ad5b6f361c9ffa058d69c9bf85e8f3d087472a09e08f43f5d6eea94945c9d8de3060dd4ddc32fd5b164cd3bc5fae1e255b23dafbcb2ade26cad5b17be3e7fce221878a1b91ea599834b0b387b002cb973b157fbe09afa45c43545858713ffc928cd4401f4302a23f74d6d40cab6389865012e5e9d9158a3372eade48799e6d9a69f5b383566bad44a38c4a42152a5328ac6896aa4dd78a646eca2cbc870a822eb640aa878aced3994bbaaa88fe6ad97a42f413ec8aa7dbb88e09245ede93b3116692cb10944eeaea62cb3be6fd2dac4b2d0562cf6fadd5d0aebb65444eb70593c3132c0058d8e2adb9fae7aefda2e7ce8b4138bc4defe819c526afcca99b73c9afec9f89e4ea77c2798c5dcf02a4d04cbafa1345dbafe61f0ce1588f53a865025f1c76b0844b9fdea8525d6c092ca4db68b70ba870577ef08977208dd1bb1d5808ec4fdd232ba9576bb10877de05bb2a4df91e381a61fa6b0a7a7097c76c7e2eed13e85a17b11274fb3a89606888e35da7b4cca6fc263ba14a9c570c1dd5df569c2c4d289268573f0173c78c23a3653aaf247f636777bd07ed2206d6a2705601f647a736c44fd0a373f9e9663f762d8e83848869f6af49a069ea20f36178b86e220d5aabca1d0ad6e5eb5043fc96ec9a1b034107efd8c4c2d4f81036e547c4ee1fe32161c236bc915bc7021340c5aa5c4d275f55d64c1b9c6bd39faf25b82f0707971c59cdee236ddb321e0421f7d53f5d6875d9661fd6c4836269868f45106e98a149f0b1064e1e494d4814ae473bc56caf0c6d8d900ab3608831f9b55f7e3f6c41b0d21d52bf6539095affd5e0842f4b42cc46bfbbd6f0abcd62a8641f429f11cfc1e7e0bbcc10e546ef1911d9a7103bf730facf56f425ec31528a5a333df7f6f4dba1e4973d07a7b5b8b55aab064e9be0776c13694410d8ce94d12e10d400911ad65fec7e19c5f93bd678f41beff7b3a6e1cfdccc949be4d749ce335cf3d0d605064c16169a565958b95de869f12129e266cf2515370984d033666fd7cb4a5d4b97db330fdb34abb309b29dd583e7b1dbd06d629b11f02e20b3d947eb8b87fb7b668be2f76497196a16146660f8b42624b949e11f2ef5a4d2f7b780da7309a964fe2af3bedd1a6c14cabe34c21fa3cfe265a85b96a22c629a54ed58cf8284f3b4c7331e666132b3653e5787b8c73b2fda05aae9363d143286791ea4df28d2733f44d87e82f02abc59fe92488564d896b7d548a0aca934794ad406ff1c9be0295cd1fe0228a7f38e5a45310db3ca0833ce90874a8d627dfb9a4b2fa781765012b9d2beb676eadc49ea6d1ceb38c98e1cae3f046c96cfe616e9183df549b67bc50d5786b01bddf548d18a25fdcaf6a2a89fbd4852e5b378901bcdfdb9d526a2f718e75899a21ff387c3e4c4ad2bf709e6632ae94ca3199ac96885c5e79fd8d4e00b6fdfc680417b16ca327249c1a672e6bdb18c25471ab21f310e9a2493a2966ab2eae0789b109237c87ee4fd8a0c1e66bfcad6a50a47a68ebbef22a3dfdf14520522d0a7136be284129d57cf06eb5ef28eec5c37db85427bb51a7c9597897b79b242b313a078f775dd6add1dffb10cd5134b52b7314b5e62879d87fcfb3899c68ceab96290ddd1d2b0918886b046304721fe797667f8a8b9f7beb161c01ba24ebf1e2e1e6f807e059c6f185c7d83e68a73bbdabfe2484a8f69fccae2c44832b0e34811875bd0f6b784bf6485291c6013e8f26c6452e43b7faba3123e0b792cf482d8262620ce207c45aa9ec883aadd415cdd91597a5b0d1bdb2047af0d73890ca1c25b03f571fbcd221fbd01638d8d589dbd41822911e8e370d9e0416ba6b86e3e0612d7eca718c71ff2cb56611aa3e1b6fb616f082c03c4342e8695fe3a340d956d5978ddcd1168f7a48f3d9f7b1a35ecaf9296f7c31de3c4200be456b92f7cd70f5cf2467ed52398b4787e31b19844d2b0669eb5fc30d10550ba817fc76795f21fc34f7a3d20745e0cdd5c8d296ab45eddb7e74593d2fc57f69937083cb14f665a1ef87d09a58a2447cdf86c2f3e4ff60e26e22a9304f59b9a92dde5f8a8f0cbf52c784738305e21d293b81a6b14e31702c7f4e933e376d95a7b639796c614cb0e1554ce02af40191dd1288336117472e6e1d2623bf7697f49ba822adff62b33212abf97f95cc9a229d16f62165a3d2b8b5ecd208723ed86b7d06987215be082397c48f33df859e9d8b9e015d188142daf720ce06d199763bdc606eaa138e3d8ada23b3bb39903710308927e05d6154699bcbe6d0e1d8a52eaefac9e51f999e610a8b26356c939371e40daca9d6cf25522625506e8f353f9d6824588a0f27bc8489df848670893b89430f7c77fb62c04249c1596ca84d32af1b8288d16fecaebd74042f77a06e17994826112233a6c7ea9e22476beb8874f2d95906b3e6c65ad248d12b07dfb34721d0d5b2e705512f7a85399dec7a69970c60aac5445356f199642671423eea4df6f3de696ad296ccb43edfb97e4e3fa3d54571ad108ad6559c93687092e67aa0c7cbdb0ccaf2e2d18689a2498145692132e5ca75f29478cfb13462924e7609e16e1197e233d7d10a7dac39dfd2a96762370c84d2d9df0230ebe2d3b6f632422581add9a30540708caa84ffc342390c7384cff5825bbfc995fc5df1583a0b2eb1a6621d7c179c84ecba764ee991126a636a365ecd78404aed744b3ad0b8abf61bd3257cce83f5aa453fceb2f9c1286ab90a056900db04b3049bb5dec05d11f7c73ba0efbc0a8ff12d8eb5148eeac01fcfcae2ddf0e69bd055694a85f62d17e5a39a371464edf7f02affe65dd96bb58745dd89e6ed8de2b037a07f96531cf43e27818eb2f4be12556317887d24933054b0b0dacaca06290dbf735128a7ed719aa366af46d4146095ea3cc948fedd16a7cf240cb13ee4b5365b31e7479a23d03ff1cfe87a0af295ba016a640a4bc5c5152aeb95b4e69395c5ca4ef077164f9ab2e943fa3d28f3d1bff1b4be80f0fbbe0fb49d4767b8f5d6ca47d80fb23e12b430743dbe69adeea33232b3b7799bffca53e6747d156f4ab8cadfa85a874ca9f96648c9d72654cdc3bbb7cac9d6eee762bda990b401f5ec9dee78e854c0b91cb41316132207122dd2b5f3625cbc79cc2121baefe1dfb3aea46b01bbf61784f1abdee3d72a676e2ac65ce990b1e4efe657d9c97900662799241d6cc7bce3d8c1086b79c69f6610136bb258e60e8fa365996432cee8896a3abba077f96c52f971fbd92d490eb1e7250d14d858016142fb5ad9e7296da81023b0793310ad67c7f9e3f87021aae12a6953138692f0e9342c85dcf231b30505622b75dcfc31abe8ae33dde60364794cd4cbd58c21b36417c82fd4ed438ad2af8e85802858f07cac30c625d8a9eae59a1a514851d767171d81bd5d2d9df94129a9451cfcf4b0cd889d113dbe3d6c526d17e488729b6a5ba1630326be8dad9bbae9b94e17047fa2ca7d37c0ae675cf675b80f09191033966fbe5834ffbec51eb2fd9f0266da07186c37a96cd44ac2f0f2261e8c231774bdbce0ed7677ea47662f9ed627ef66de389bd0f2d0281f8e951dbc5b217b0fa7b959938456abfb5c980af254cb489eedd6c08817b6174ceb2322e94f01d38bbe16aa0af423cb0d29a612d6e2eed68122ef4c013c21110985e1cc8dde22fc4d879d8c1476b780139a4cc59011c32ab96fbee0b1c6d5251b18a42f8c9ae5c735332a2c677dbd74c04d93160d462d0b4105098a07f64060f0e7f66fb27c0deca49d01555e46dc4898ef68be9806c796b9d6a597695fb59c8243af4fea89a1d222ca275a1d0db78acd518bf1fb23b197e662b7a57d0699ecfe0f86e5d6495bfb0d2569c411c1cc3beb415cf66c1d3cd0ae924164b768e24b8e98b7b98a718db622914ee8db2287a28bd6e322331f20ed265492c9ff2c544ebca235e68dc556e577a0fb4988ecfc8ee724fb86839c4ca2e69495632d1490c34ecfe4a5707f5f3a9c628f820a6da27862d517c5e6377e356f605f8f51ad387983b985df9806573cd89cd253bf4ee66e554bf33a2dc4bc604425b2ab4fad3961ad160f9bcf4e7f40773881239aaf61db13b57b8eb7955974f814994d7f3a528272f33b4bf47f2dd87fc9825f47b342cf09bb41bf1a126cac4c0023f49177de85b3dd53f1095dbd472b3219e29ec924b03c5a470c892483db32c4b62e3f73e3fd1469fc3de4fbd9d21a76433e1464583559da4d4b5ea577b53c5e216eb63376717ee677ebb290f76834de0f90809f3556e8511dd09371f0c76ce8f30c53cfe89b46fa36ed7dcb5ec8f0f641a9bdc385d91e2627ed5b5506150f283f228b1bfb0c70d6b66848536179e14d4d6bb777c57165235257fd1194405e577e6d512412111faa098776f7f3ca0734a9f6271ce6a9d41dd65b4d1db7286392b852723f1b4d790f270981ad4e121f14171565bc6d9e93f5326cc841d732add7268eda19fc757563e1465af5c90020917652febeb3cd2856313093f859d62eef3d946bd47106ebc20765cd067abbd349748b4a1b4bd32cce27613a2272c8bb9f2806bfd6a24e895b1244f098854b7275c4b0a0f8adabcd8b693a8bd87e43e25aaa2963d2486b9181dac98e32a0cf333fa59f105e2d81bd054bd574cdd7024a4acfb2d3a9a862ea5ace21e7f1af45054fc850f56b1b1d83ab3a91b9ebc3b0cee105fb3f0d25a84dc0fd3d95a50fc84a029394579bc4e30bd049678295c41321be892112a2ec1356fd45c74f3d56987a9ecf2c99bb06d03e531964ec15b6b36f2c36437f16febed37f04227e5e43fd01d905d731bd42969f23214799029f4f8d3885e158c8b024737d685a805f77dd3ef13c4c64f256749ef3813c4d2388479f2c97a023a35908c9353af62db5b4ae4feda3352e7c55083ab9d89b624a44ce439ffa7c7f1c9eb68f026afc8400d731b7701f1b4e362d567c887940a75423459fc599fd8f7c862f938f3263e9f9af5fbe0572021f56cf2c31065a22450588a8d74240fcd43c38c280d09d25ddfb6b8a5f2aa1bf2a844213aeffa853f3685cffd4a0df3081daa14592f71bf67e96bad78ced9c6f7136d5f733d7e3cdf5060ce22a928b85f996fca474f443577fb7539dd3539ddd5e8755fe26db21d1b462cfae8b9384de3a891e8e4826721e9e35a2162e25403eb86a0e8d2dd05c833604031b1443d7ea674fa0a8b111341481237a81ff7a3f7a26c243e82a74dae98f06dc201eb7a7ff5dbfe57bfee44d66ac869e02614998b41636eea6daee10958343b41cce1098e9d5ec0c42b85b83e118545cb38e072f7cf7de7bffb01127c079d64c6d5310ec3e804a734af98809342136c40b75f0eb3086cc48218a9c3d00be4eb9d709c1b679a573ef3960c48438492e6b7dfea148eb54da5d6a79a13c068eda3afaec1fd16a7d8b8a4619a78bc28718bcb4ac68b4a9268b809cb0984ba47aefbd9042c766b3642e8a3d3d59a66209b2e4a86fa9e5f067759736ea2f713fff86150a1d7526fbf6af1c24d1ca819d36f7da01f29d9962dfbb12e4151dccbe0ea27603d23cd9a9f15d64fc7169f72b8863e119959421e26b4675fb8771aa6f0307cba216b1ffeba87a4bcfdd876672873692a686f93e2fb8a16bf051dea05ae3224eb0ec1d95196d6fd245bfcbea3727af3c43c8aa87c55b4213480ea15858d075516fd6f6a3e54bf3cee0829097da9e832246fc00247ed5949d3a6636f4897695c9294a77cd7db86edf8c1ef061eea46477549e3f0eb7a4d5c425652fa7eb3ccb5a99f5d9524ae21bfb7195fa43936f2795c79b1e25b6bfc799643317076f3451845eb29914d0ca8b25235f1b7cc55741ee401e2bf5f20524e090b946d7987a38a9f2b74d7ab372a3398919bc850b023d8f99943f67b7ff229791e4c954bd852384b1e38e6c1e7831a7bcbd575f01c8e686e6bddaf6b2d44581fcc9d0aaf66faf8d7dc416d9cd1c2673e42a8f3f3fb62f0a7026dc199c340d899c7895549fe4203592b2e89e82be0df7eaffbf3f6e1b2438abd157cc8d0fd00e1eb87ba5a88737c1922777cea01119da715b640f14e469f2129a37bd36af3954f0c62cd0c4b7d3eeedb8c923249d15aa8f266dad45051d227b0f5a9042689aafa27ec15b8df1fbee458568290d0f113b4ef43fd7a783cef08fcc3d15e4ed38a05cdd8adefa91725892ea5c645fc4cf9eba91a82ec8fa2a7362d54f46f63bded75c4e1a7a601a328f123dd67c301828333b7b0a57fd69be0d6855934edc7acc2a70db43399d2fa1df5e2513005ba65831777cb7f725d4c5d6803fa1e51bf1b0379721f2dbe9be76dd37c410442addb467ac7b6403ce6a47c0a6fb8d358fa2653de18a7593e0ece93843b35541905f755da1111c7f5c4a474174286410897b03119dc3a905fab3c681990d56ec98359c3ea6ee48dc4c8399d51afc669c5710eca56d935e3311b31ec7ddb4f74159a3ba83691d86e37c6e51f3dd31ccfc24589a9abfee25d4cff3c02aa497d5ffd824d4b48ad5acc5fefaefee80b985bb6e0d058a483436cf4cfac34b46b378f3e2e2ea75f4aff2025a71f1f9791243544db89092fcf73f49870f741d4437b09a03141ba6390a19020fd7dd5b3f9b3ee47a850fdb2f29f058f442714a041cd3e8f7fdac1b20c630325b0e16287a823d8e65799722cca57f2106c72212acf97b61c524ac65d8872ae258755d754eb57e6b539351abd3583f971e4d84f306d634d926c97b1fa245560393bc6df88a1aa3bd4dea59ca4493c39bf5d5afbe053b1fe9d4be96e8ee889715b7a1c2dbc9be7cffef3467e71dd2da4aed16d6726849ae3c8773acdf419207378d0afedf6e427a807db279fd29677d27b870becdaf66e5051d143783acf1bc5ce51e0f8809e810d6a30e64bbafdab9f1e00f60edc1a48ff6cb007780044006af00100700048e35fa8d2654d6418c1ae0149400e48e4bd2610f7588907bede087f772ddff41391fbd65fd1324bce5fa4753990aa56aa39ac08647b78f64e1c267c915b5e90b4d3e8f42659864a4dbcd0132eac5a5136b49b2b4c51dfd562885a25dc897e6b64cbb82595089cdfcc34f7af94346272d094007ec4e8cb03c2ce0ce33dcb8641245a173b1607e8e3b03884e7d9c7a7946252f820f70aab2bebb033e521cbae5f98a4452f5d2568170334a8893a71bef2db8913229a06af39602eb8994abe454fef464d3d0df88ea23798353d41931f1b68f1498923fbc20ff689a689ee922ee1ee5b31f4777244a7fce551a5d12d33becdabfb3862213609630b0661aa7b254e1c5d542e883cb565c9f10a356dcbd9a45e65f79e791f8508f213cb5d61592c38abb6cba266531da27f9bd8f1245b671ef427be83832ffb988ab816a2777f54ec569903d63ec6f0482c16a8b045584885019bb8d4e2fb1a49644c1fe6e8afb0aaec60add02ad050a75d25ef6d3980423bb2bd93d563e74fb1c59815dd5c8bcac816062f8f848460bd85620d668b7559377066346873a3d9b2691fc514285f42e2055fad49303613331f749b783cba6b3504a5b51c88f0dd435c741f58b9b484fada068ebb277ce39bfd75b7327094ed9a42e0633fb1bf0b096440f1568453735ec8c0dc949cabcaaee38eedcc73a34fc809082778b39e1f52e13d442276abcddbcba29163c350adfa6a2ab5aaa71a61d43e628898df51d7549210c5be6f47cff37ddffe0a82a1a9cb5e147bdf4db7aaeb992a28e520a6f4e60e1f1259ee82a5c2e8820e3eaec66e9685e626563d11fb79995f4690cdbae63a5b9cf3ee0945421ad2da4cdeba93cd7ef63a5bde93a773383bf9f1ee68129f25904dca243bcd9093b7a1273379c948dc23cfda744d86de4925aff47509bbd09e2e19439a6627e06c9266197bdfac7841ce4e6217b5565d72803f6f23018878b0feb36b809d23869de79c766c37edf0890f5fd2fb2167c910ea5b3a13171ff4dd1e15e13630f374f9ca18b6fa7c83e0e6c5ec13aa0148676d5fbcc1b08b57471b8da78ee4c6d6b3589a0fbae9361bbf83cd16c4ef1d4f864c71b13d1eb165b4be6db4bebd97be5d96be25d2be1dd2c92ef8819e78c5277f6d7eec44e6f50569e57d6b93b4e632bfb4e0f5d46d57ba8496629c3042b5aa1e0ff4c5933f463946c6a0901ea5206bb867aca90afe822e9984e81aaa0fb4967c32758f2a3a276f6a5b698cca57182d099b1bcf754d078630f7df6d1c962fbb377274c5b9d38f853c36a4527ef3e5db6f758b57b48af95fe7e30eb79d1be6124e509880cca28acdb17555570e3401a67e7674de3f86afa1988c610e902f75dcfcfc26ab457a311c3f9beb8450fbcb5363baffac713c2303372438b71bcc1f315cc531934871ecc70622fa53efc0bc3efa2634e4d84b1c8c0271539b0630e136df41c21189307099699e82297b9fda91b59080bc23920227b1bef7a624e93713b08a0d01d5fc9ad51c1663cb2d375426f29ac57205b4b4a520ff7df79ac2060454f9a76901dcdf49bd4b020614610d006f3f56231177affeacaaba65b2c24ceecfbb3e62351cad01f8efffa8e66dcc8efff6eff75c55fffedfffc7bffd9ffff66fcd310efff83ffeed1fffa8e6e9f88f2a1bdbe1f79ffff8776fcee763fef73f2bfef73b6b87fd3f86b99eff5a9867455f6ff3397dffa31db3bafccf7f9cdbf0dfbed991fde75f36bc4cf5ffc8b3bda488ffad8d38dbbb115daeff6af36af9612386f55fff3fffeaf96afe51a8deecf9fc99ec2867466208fe278303aef85fe1ff95efff19d72a0df3f7f5ff664b1c701bc52304509b0a57277fb05ae1905af1088d0775a570f71fff9feb0f6ef0f5fc27d6136ee60ff6677d253ff7df9c7f38fec4fcc1fff8ff607ffcffe4f588526ef6bff99a7f69d078d0577fe5e490bff3fc3dffc3f53747293ffbdff6dfebfef665d253fc9df30ffec7b6f8fbfe338f252efc5b5f293f772836a62f727fedf34f4c2c7961f397b6bf72fcb5df546a8a3f9a7299ab7399ebff601f890bff8ef9b38f3f7c7fec3ff90bd9eb13c94bfed6fe5f3d9bff99efffeb08c546fd73ef94df9f1b5ff65fa5ff0bc03d3f184c00ee4497b9fd92846237dbb0120141a975ed6b6fc808fc44434eacd0657737a1113a483e9d74e32d90e12e52fcc606d4ad501cfb294efc20be1e18ddc5f68f3af76833cea86a8e6cb04bed9bce161a6ba9d88e0791cd5e6dc87071f8df2d6d39eacba08e7590b0bde89f6a72146685b5400459f973d90ae732daf65925e7d57bc1cc349bd2c172aa63e1d0372198f14bfddead07408d453ff4b848e932da94ff59462a5fc3591fafaefafff737fcbf8dc4c96bf75ff39f03a162e445ff2b471320c4df15c94cecc149ff4be9a3a484cf72b1e5bbe6ed1dd67c24ece7104d54d19241ae77a298db2948cefd02ab2047405407199b2d47b50eec1b332213b313c66a91af48a61ca574d584c4351c3833915479b8dfbe5c5c49cdfdf032a6ec960f8ee7916f8e91d717676bd7ad0f193a1aabb06576270e5e1707045bfa0a70b9e05530eb6e4edd7099d0ee71cc1dc4cf5d5f75379bda02bf44a42a2e146f4333d6e20f117f3347aa56ad5da7f87bd840f53fcf898e751d7b089be90d67d49c28cc309dfee4cbe652a56d161dca6837b8e1b11b18a4145ada117079843ffc1bb74d55c9eec1679c94e15cae6263e8c3640bcb37d8be4ae9ae4f648797646bcd84d41f75fa3531557e575e946635c0c45c52454147c25b6e82c7bb6d4095c95ac28a29cd4f7323d076e4779cff18f7d3fcd618d6b97b29dba56a0fb97e5ed60fc1937c2bad1473bf28ec77f8110fd1b9c9214e2af1f99cab07e9afd480a13ed160675b3f4a47999f50b3f30690d940753ff3159bdcb3092631fb045cfd62604039ac56e14d006d612dcd55ef30e03e50482f84cea4a2b482e16b8a1987c78fb36850bb3ca0e363ba9608e1b91e139c01e4dbd6cc8a394fe83ee17a209329a609bc99f3e673a9e85cbfc82abc6f10904cbe5f20a7852c3e31047d1cee062d4082173939698550615c2626b8faac176a591cd90beaa21a16680ca92abec4256929a73153ea0270b5058aaf6cee9dda62a433b38e36bb1ac1b9d4e94ab753edcc9b16ea801ecc974d0292e0e7c704dccdf12885e42814563f693d8a0b43fc66063dbc4ec2d623319f26cecf32f80dcfc189942a610a401749c8a18a26929f69706123075a662a17b4b1df96886b73958809ce5daebb99cc356a207273356d0eeb0c97e44ccc522d073ff54076f22a3b7fbf429fba7a4119ffc1b2902f8050f322b9fa387ddbdf2a3d1826ff2e4149c2b71135fc3eeac1478d31cfcff88c3f8102025157b66f4454bf17fa16d8b4a284bf52382b212b8625de9a7ff2cb7246b22f13d1006a3036eff4d437457ba4c3e4f9ebf997853903e76b9483552891dc832f5bf95147c56107f65c493750e3ec6a85b31d5e8c34241cfe46f99284f019df70f099dbc74cf392f0b73aa26acfcd7f0c83092ccfb09a7e6bdd443ea4057fd6f6a8b0ea5068b27a2458b01c12592afdfa453f115a700dc61cdc81bb82006aec1fcee47ed850caad983ecc1723e3ecabc3e7f5e2519736feac38fe356c1976e2bcdc83c026aaf88e00e52c6ee3f2a65ce6032c7e4fe477352c2f59ddef854ff406cbf0a16ea2b83e5ce91a185dd264b1e508444097e5a75a632ea4d3bc05e2608cf30dc65f65ff861e222a52816b48158d585b0ad1b43a7626636a08622aeb4ced856ee4ac30dcbf707c7e7974f3ef05ff8d04541ac74a7dabe3ba6fae829f7cbeb701142c3f33922bb7a3a388c981cb2ba9c32742f746e6766166e3c7051d354765f1c9db088d77845dc5a8fb0810675d272d7f9cfc341357aeb1b64f86e1787c78a4a5f53a0ef9c73fdb8957df988f3a6b0c117c9adeacb8aaabd964543e8b5ee964519869f2869b58810e6c839836ff662d6211f295fc1cada22d36e24d35e22c12d6d6927b4df2d9144124380f50221c818e3b0954b0613217e99cf64022dc01b97cf08b7ca43caffd8616be15379d8aea3437c74770d9813bf951b8019957919177094e09cde0e922616dcf138ecc972291e07906b37f2e8d2900060d07f8fd9488026332101291bcfc8b3a49802541296d0be1712013b7490c843a230566a9360d1875ce45d4bc192f4b532b72a73f3f364983701f40493aa972b52ae99fcdc107df831ad82943219ef69a85607dd91511b624be65d4a6b6842be4eec477e91eb60aa972a048f1408f2b064cfa7e82ef34a4160468f87c150a494d11dc9a600f766e4d1ce417662a14b731605fa7652e8f6d799caee1e13d42df6e9e4589f9baa071a1d0956d457d73185975fa2691a21239dc7720b836fd5f99d317440292340789ad8a8eddd1b726e611115037c701370151a3d009b98915dadbe10b6bb40cc12d30e715f6890012f2801758d1598c507b78f557aa297fd169ec1b62979578cfb83768b628493a35a0f2aed2628886c78715b55c8265a6e4fde007fb1fd2fd0a1670c24afd1ea9a979842006f442742a50a3c913908cb77383fa22dba7425280b40a5b129b9270046d30ada97636e800dfcd842b735458f346b26df3c7a99dc77bb183cb2c794de4aedb96cb89210c16eb4063b2d58d9c6219d50dde19b381b567cbe0593395b528f4eb670004d491b7ed71c1075e022a7bf2e326ad925037881fc6cd956b51957111c2f8b54848789562662dd7acad9e39a1e1eea50ff8d6aa0b358e544271c83d899f7ed2074931e0b5c2bb59ca45f4b691d9243562dccc5059e14013ec796a28e4c4583e8fa92b4e4c7cf91d943f59440014a937b4f979867ec9b61ecee5a61b77d13621b971d7d110e9b640ccb11353201d7bc11937ef366e09c232bf0c2d30bd88801bc059a9771cb151e6f294efb0c29be499690bf0ec8d1911952dfe6b49f5234dbc07f79503196bc71c584b516e193013f4e1081eaa20449485216595f3cc48f4cdbec40c4b596263c1bd8711826735253b27155c6b7c81133c1ba90d30f44b6f1202666d006e7fe0536ecfcd9648f697a6771bf31d6e4da7fdfe9066728eb239b5170edce2e27cdbee76adce5ae69b024185fdeb11e9020518e78910a7886bf6c605de9d65359f879027f61de034eb3a0cdc9c8ee5c3380fa03887bf99615b9568d7b67f1d2dfbf2f9dd89185fb6718827ca9a771e6d03c5fd96e7a0c1a963c008f6c0f0999bfc3603d6366c1922c98a1e9823c6868a88f7db25f89d8f764ddeb997e18402cdb2fb349f2280f8a2ec8caa8eb5f46d812694119b3fe290b674c3dc93b29b119c10df71fdc22ebcecab307c3d914f50d9bf98ee41379f86d32a89bd42a9cdb2cb9d69333e091814fcf608adf8b2b901f42ddb2930a0291b7ef7aca1024682a99f5892a1091cede152f3591c98141230c2828c7d85bca393edfd5a193f0cbac47d9cc6fe79707dc010445412c47f805d83648fbd5111620744bc74bdfa5e7e0a0adc19648fc462e8a630da02619c13fc3638d4e167ce8870b7f01fc02ae3d033e8d56088031fa95c6359822518d07aefd130810cec1b2e45788f9f1a74847177f8b11dbf5d70cd81092f58f6d269855af887a2c7271d33f8c06b9b2899cf21dd23dbb0945ba9139cc374445770b549f8d6a356868a495eaf6c28cec7201a19ef212780a2ac39767033112749523870a22b722fa8a9d6b4deb782c131a10303d9efa145a48abd59a48d6cc0bedafbdea1f8ede9f72a8f2ac3bebd7afd5805983db0799462e3f3827f702d5cbfb7a3c8d4758a4870ee9cdfc4e8d918d585f1c947c5b6422698bca5840ebe03590f2810447e36898dd73688afdeb0a43f0b5a85580b78d2c3de0d892071ae6892471578307d2da76924f20a21fc8a9ccf99f5bac61a343146be68390cd93e17bc0df0a81f9e7c61a1c8a90b09d898ce64b896c6fe917670f8ce977150f85e8ae50243b432d22c585693f612cc218943148ae7107e1b1fb39cd0ba3003b91682738e199dee1cd8b23f32170b15f8f0915d70559d2b104b751081cb2d4c599fb56244785830c0877ca3df1e7090c0ba729ada12d01d57033e80364cb198b5884c9d7b7e3c4b848700e6584edf144f1556de04a1f1618a98ae7e2953414e023a20396ece532fffd6523e71372393c657842353f8a8956cbe365c080575e0015d7e06349b9e93b6c99030c5833d0ce49b70a1f8e03517772adb422817d4bf5a272255b8471ae97f1cd60cce1973ad0e69f8d6f63003bba6d36ac7f7d3fd88cb4fae94d3a24bb1203b3021c0e7a433031125f706e216e4dd97737d804addfc4fbd7e142b9bf777f6be8496985eb85106ac7d6a15e0dfc0634a413e156585f9ba34d8b81636cda1948bb3cdda943d7e773c477658008f18818c53054c6d520df5ca13b6150ede87b51ea814a5c2edc81e1040614b28ee2252adf1dc618912c75d20ad5b5989763e6c840bc6996395ee9912011ae286bff39b8753aa89aa710e129776dbcbdd6b4ee15bdd8065980f61c7f0a18cd321360a2716d4102390e6110828ee05dc2c125f582e5388f9b2409a812de3aa60c027c53abb2b8c8047250c2fee7a635d5681ed1a2b4274a49cfdd74053a506bee45998dbe83b040a35996dc4060a8499a53c5bb76ea35471d6204fcd7a6f1e63a9d604d06e89737db2aff47c91ae923f822cf44bc6640ec6e6c685e8e0579f8357988fbf4035b041a25ac9560116dccf412e4787a71de0ae5ad04bf5721f0eabd178569b1d97d3b9e64ad3f0d8498cd1086b2a1dbe20fe00aa78562fc171d062984b4208891ef8ee9895987b83cc758a313448e49b86df9a1bc08a03abe96ff3692359db39941f4dbc4563a963e78b7a890e1906ae6905d215dc4c812a4e4ecfaff041f8dd665743728e07687b73734b0ebb68e8d4386b5dda0ba4acad0ac9e4555c498b24aef9f813b5ec8f53d72781b385d5143c2b37f5d88195283edf759da76420921861ac85fd7c362b4aaaafa8022fe1d479a1596ae104f74d5720adf2d56c993370316ee35540d9af272d39c45f72c70e0ae1a7a33ab69e54b84a0b2a112d4c8f3904f3db063ec67f5bf9699d9d5d1ba1e6100103a5a655f3f22d13b015e66bcaeecfd84c85eec4bbeac862a9fc0e92143a4bb40f7b2299dae83e8f0287926adec35ffb2baf592d01ab720a4ee4aedbc08fbd7139a436d2a057eab27d4525e365a8e6452673f9d9932acea8349a4447febafc0ed262d3408eca80cf84db42cfe728f717bf56ed3abf2b568350d90755ac2fc06db721ab1b2703d1965cf3d24ca276bc691724c028135fff2483099a88f23f04a059d241db05aefd66bc1a0f9a5a90fea2414501a33a16c335bf7bdac5f1362fbe594af6e33fcc20ea4070cb9a5bf82cfaddbd37021be13646da7977f8fc0a7e0a290123eec3a012adeca28efa546dc3180e32571d8447c82f6c315720936fcfb775a44c772568bb403ff83271cba2241e04d763a08088e25e5e268d4aadee74058965627c9116bea47ee359a1e4a8fd5a030f7bd743d1d9eed07c89442107f5d50c58172cdc1a042742148441551610adb1b62059e547a6a98d536d2440d45a3b3bfb615486b00b3230a55151dfb467438abfc21f83e039645fd1464cecaaa029d46edf2f5ad6180028f04379d199af6df27229d704f4dd7313543b9680d124570cbd533561b8a3d7866d787ec072458e7cc244251eb5d830c95e464661085fb07c678998ab1a3684496a28f9b9b9ca113559f38b9877768d2127d4ec0877ff2ef7eba498a114dc08c41298ba03b55632daa0766c99c3ac5333a3d255d03d6eda65ba53f8ac3c85e71b28fae2b1ae419b279b7c15b872087682b3aee2fb717b0e0614d86e59a1851f9213c2a17df2bb84917cee977a46b87adf95394d0acd444f3e020a2c359a81432cb429c80fd2af79c26dc15982bd8e5dafe5fd1854b9e4ecafe55b00e10a70140f8cd4376f881ff050c2ad0e2a14cd8354ab825fb9b14caa4b78587d5388e4b92df590a93bac4d6c78a134b32ab86d1faea081b31626207f8f69bb85b1fe3e52fdfc2065ad71a633c35d700d1704147fcf3e911e1bb251fd8f1ac5289bc0169508f9a754b3698a04e284a30b4da0f5535e544eb8481a1e04a72e187e11f55713210ee5d4f6a825c69d0e907535592bb5728f1dd55b084c0dadfad63cff13de38e9558fa6f21f83ab540dcbd3f340ed15e6d0c94a9557ed35afd7f01cf51ad86e8041e5c3723637de011356274ffa5a52ccce6e40d3115eaafcc8f2ce837dbdc64b25aa96ff7d003705dc6dced78d3e1194421fe746c92f54b29a1201dad5ba09582e8c7dd486526ab1ac4958a5d1e507d41bd09462469a8a82501ed3f962ba72aba86f4675d5d56497114b38b456c346518f09cf75cfa55c4a802e4d69bbc3bfad52db556be08e85e994053a2054fb47a27ad4cf009770755f5961e05e81cb3b3798f8304a8e8a7921a99c71c341514dbebd1cd8d8ed118a0c141748cb03a47a6491f69d7628f51270adeddc9041f73bd15ee4b907e6cf849bb55a81207ff4fab7ef70048e729626fa42d18d8213d3fdcba251d8d54249836eb6ebb8ba3dd8d7473a0231c9cb150197dda1d523f7de26f7a44d0278cdaa273a5aaeea7e20d66937e665b2ca88d717eeb96656288edbb7da76795b48650de4e081f989ac69c02d207e683dd7acdc5f7660d58529cf502d4d47789f473db276b05e86935a813421347b492a6cf75c52cc9c92a87b27d7624ba7a458ab551da0746398b0090aad89b264fd4a4011d54235802ab6c76c018139b2a9a6d2f76271d648275a61f64af94ba3d13c5c9170cf6e5aa37a6c57e4060997c2bcf37ed13fcfd8b865d2cf2aadfa44ef6d82276d08b0d747dd53a23f4cd017d6e27d7b0308fffe399f5f233094be6d912315901cd0540572d687b8fe295c80d47c0960d1b98c7c7cffd2d67c6ba5e63125ad6066d7abf822135840a38b25389ac3a0af074b43c8c52bba1072f51afee1ff001e0c40e99b604a130ed4c9e1ed40e6ac21366fd270a0041e146871a278dfa007dad0b7563ef7fd69f8b6e612345a18c0f3cf24a4cf9fbde1b74c524f6099bbdaba3ab8c730725ac428bfd20b9915be913a73c1ad74e939e320b2b331ef459e822b3fd680fdb808624e6e9bfa70b77b8130b396904ee681536407b52f49bf6408b9e0a77d9bc61d7048873ece96431ab4a14fad53e582f18238135c1cffc610a6533006e03c12aee3e175db13fc035c556ed871e652a60d1bb2e4c87d17b2d68061e4f0a02f6c5c16594211607cf9161665ba5c40407c81948685038d78fbc1e2186e3b6b73851c86b2ffaa01bf936a038843abc0d46dc2b4c2e814cccece1361011cca16e0c2018f130d231b50b0b7401029a19ceb33939f68b36bb2eaa7be68a9aee43b9e5c2636b9b2afd6893eb815513b7cc0df962b86ef160f3132c16f5ac07370ab0a708c80cf112701c69aeda06b649d3912fdbe94c9af804d04ac21347c09b82896abf96b55099588c22c6660dcdf64aa352b5f15968596c2ee609e61836fc59f8d5195dea1704a5fd630c813ad2b9a9238c2a56714d2012a43d09e70c9133dbd10efbfe3524dbc808fc807dc8e90b9354f1c9a1c37b8423550088fd9bdc2a820dc8102e4a81d5b0101cea159f6fd71f3150f95554d0c0c716affbb2f6b2f107605ad28ede511f7a22ae3d5d6b3a5350f910d7a8587a02158ca82bdbd56c884bf17db425529c052d4d51276bf72c45fbff08e382671a0f70d720c72fbc62da73dce9f0a00260ba4e6ada5ac252906561b6a7dcc4c80e5c0be2c36c14125e2e7d53a64ca60301efc70342089a7adb387daf7d9656bfe74be16b3d872da893a734f0b54cc9c1fff39432ba7314e1bef81b233595124c106cadb8699dadaccdefe1e21e03652fb1cd5d3c14ba55563450a6f6276ad8803971674b959814ec088d8d5a34321df9d53295e12f923517c14f0048f435f4bea4dd268f0d9964ba8239f2a4f7c4aa9f874931e6339d10b0cc0e6e96d7aa9e277f1f0f54515662f46a0ed9579a754ec213cad6a6f77015d67d970517c3504f00cc7b3b24d4696432a50b4ca97fd8c64b0db94415bd657af168a281b82f84cfe27c4705683d98e859018c24060d6432897d0c0cfc221d4960b6c3935b70afe7dfc550cf854881320d719b680ad53d72698bab4e06d91de96f8292ea7dc3918c0697f0253f4cb0397efc7e25bfba23a78897f38fc8e0a296735f7ad87cad6d5907bbb5acae54c89650efd4c06a77f39c3e56c157721506af19c776ec929fc37a46ed9cfc13b7f915ff524d6fe6d8f29a898eebcb2ea99986a98d81d4c39d0cffdbceae9e6bd5fa09361379cfa4d7ddc94aa8d196491a70c4febac4bc6afcd0af8ff8be4b2489e560982f88158e0b66cdc9d4176c8e03a38a77ff1ffde05b23ba37e919575d4499af6229b0810070746d738de2c541798f3e8443ba8f83aaf75b827a338c7f702553c196ad9b26ac813ddae31b5f353382f1347c059609e15c9a98a6de6262a5d0ce05df81a9b2b569bb38140efe752986769a5e1e7a811b38ed8f99c1dcc620f0c55eca39c179fd6b2ff3e464aaa8f10ed716d113c41a543c6dc68cc92b51b69a2e57e451539dedfd083a45aa2d902ddb009865ff4fff3c93020308f8ded49ff1eee95fc4118bbefc3c4f636e4963290a38bd7bbf94828dcaa6d46384f476d0c353cc8db8e631d33d9866b9b2913f05a536ec568812815725dc632e06e7c995993e586da49f893f072d038f755b6ae43d6b7b9c26e5566244cda52f3088e0b528af782bccb7b84f3187181416803f943fae937e93903f65014d0ae9c7672cdd5b853839f83a001d5992ec0b9cf1a3d1eafb22e809a9786d2e6e072462ce624a06e5cc87eddbe604d0e4b27259ec076764350176b0661db72de48f0e7105ac05c04b6a9d96095cfae7a627f886fc0cd42bbecae4356cbe2c8a9c3debfea3ba89ed43b8462539c2074ce72941c6aeadf1337e880f91a4874e908dc18b6fba1000f5fbc01df16968233316bc9c42cd704ebc492d7a0c9662da3dc53df84ac0a541bc29d6c8252713b40708b584b890003f80b55146ab87e3349bece7de6c547c211a18d821b8eb9e332d96e810954e507099e9b402dc5d7b52260dd7c763b0cf6699a6052134fdf42c6a0fcd9741dd32afd9a6ffe6da180a4f1edb7efaf976673c284d52aa239fcb638ee48b9dcac5febf244df057accf9a1ef82f6e687ad0712501738c30b4925ab9fa5702bb046301db49386ed836a85e5d8688c11bef2b98b552a187ef7b145ece10fe46795e523733bc1adeaffc86eecbc5db8083d97951e23844994138b22f85a7020f1220a791472206d3c371e6eaa611f103f01d0115960214a090610036f76d9dceb37483a59de6f0b815860afaa79b1b4024b56df0bf32cf321f4a8c26a7ee4bd24a845f733efef2d0150d46fafbd4966d67acf41c19b023ee1766a75dd81517da0cfbcd86d2c9390ae740427830520bc2f5a24ac566123783155bc9f6a81c09ab8d666e1da4ee2f951b5b0f94ac839c0e7d3d28ce0df95f666436894447fd4c299bb0cf4aeb61fa7c82c6fad64f24c4b903a74bcdc119f41607a1889e9412c0424da80e8d469b8700acc0bc220da380801b6dc82786c519d5eafe4034d76185bfee4a9069f08f87d14c6d1bfc2206b052160ea6b9bc3784569370421be2fcf56c08cab80614d25dd95320d6fd3f001602366bf3668b0065725549c7ee98c7ff3fd073a6fba2e97fc2b0cc3112e052737c1d77a678894237d9257c7a1b4300430fabafbd51c42010903a1fd9072e5f656d004de051fa01a13d3f77cb15df2c17fea8a0b5a07f404f381f2462bc90489452fe1303258159037e5d754bcf1497fcf928dfdd94efa116dc38f57dd5a4638a523758b5126b5a8bdb8e0453910f884b118b101ef6388c73786a972b1befa78699e1883720d0cacb3fc51945f7fb0be491a6cb07107f0235f1fb10deb88f08042a8690142505c90e2daeecfae031334c0b59ce7d650d751ab6e86e3676ceaeb238aadfee530626ba626baa039c5cb67b616e6a738a498709dc04df27524b1fe011377d1e95a00b9f9f082fa12fd0c4e100115a87d6d22126c147218d3a4562b315234317219a297f0580a98e21550aec028aa19eccfdd319f61221222629d03ebe5cfe382824ec0024289d0871e1cc20e2483e110d3ef15cb702d18e8aebb08b451619569c5abed490cd1bac655ce1a3eff74800eb9d4bc87b5ac805353249b0fe19e3a6a307fbb2d1a8dcecab59ccc830454574cd6ad1e8045d8aa1ed7891f83a73621a995e4d727797bb25d07bf9c30190d20e3bad1b509a4fec65c59fc106224f1a7cdde2ba494e1d5fcca25c068bb44f41e69aa957af00a25e1a166e899a01eeb62e576d0a5baa8ab04fd3327820fb331f7e1c2bf401e6607a8c94863e510ce65407cbc8f81ad96e4cad7c4f50f95f916f7291ae0a00f38f997134528ac0d17819c1c7cfd1898b31070d615a9a2dbbf45d6131c6a39dad25bd822cf0cbf7b887399762e2ebf074ded6c592c9d20217b2cfbf21809b7750d86e32bc1a815b5e132e0b9ed73ef3d476a05306b59fade420bf77c851295392f727a1532c1efadadd914dfa0e5ecffe2a59057c552822e76a68a7a52649b5ac5ec69f07c5003805ce46c0e1523630e2142bcec834d7db79ebe6459d7dd6ba1cf87d7cc8fa5ab8eb0a59f4bc97b33ae89696c9a204683900c9b751c9444be87005c5228139c32ebc1ba5c201075f7bcb700d85fe383b8fc64c67fcf9de576a62dcb99c3a1085fe99272f18c20d9fb7aaf7314993f22b5eeeaa6ddb326e9033b8c12ee5b1862af5d32a316dd3bee9fde87b1101649ae6c00f859575ec4ade735807d37974754a4aa8936cb9879a380f12c6bc1f3957bcac94e8b61cd7fa491ff6070a4f32acf80a0ab7dc08b9a0a5690413a6f4205c9664e017777990bb1b19c22d801849a82642ecb1d801c6caffee13770c8ce4c976782da306bafee87e044eafb800e88ae47122bf57e1b1384ee78050527c927e77b580b6d182b30043731b623ed79ad630ad5970ab83b39657ec31e444b8f281969823cbdaf4fae7f6a1ef50be0dbdaf8a15c95a99b4ee031ffad1b157c3ddbadbac7449c77c8ebcf71a96c863c78e8bc7bfb9bd593d075355d02050739385ef5235d921baca9c9acebdb81053743b2150e1e7d45bc56c0083630ce3a02bc241f167e30ca9e0f22a2287b029dd6778e13d1b7c50ab0eed4ed7d90e3e80ca80f18009cc9b913e9e308f46e37a1003cd7a681b49564a160bb3293a1cfae8908b75cc04a791af00e996e54a5d262cbe33827bd5cf0c8fc4ed3f2c559872b24d518910fc1a5352f4b68e6e1841dbe5f76fef63902482454c3f4fefd00588b9ecff82ce49eaf4b5d3fadcdc3bd955aa1eef7284d87630e6e610252c5c98de7164500d77289b7c3cc41c08c820791426d591cbb8c4f856ee8823744d9a6080739bf7055ebfd26f45b9f5d935131c5515d69e99b9792dc09648fe23ec9cf9a2cd9475b23ee0ae440d4d16489f81b8ddcb5466a6dabb5424a5c85f810857b41f69713f9fdadd410ec7a30e716b8a909fec2fc84f0de3e6ee9e131cf1012a64e36b3e51a0ececc93a877987cfb32cd4bfbae54c080d10c54bb18d41525ca3c5bf009478d4824013d0158c8a8cd4bca680ae18cfcdd9e28d41fb87d55287bfcefe05e861103c3bf9666f35bd8b50d3e0bf65a9fb78b7f09d90b5d20f47b2d1e1d3e2840d5abd820dc846fc0fbd2fc168e521b188cecf65fcea9b5c0ca602fb89a521a98da9d23fe8a8d91fd294ef7b55a5d64db20a238e26c2be4e2c2765684b3125e20dec06dd8c746a8dbe974a283336fdd7310d23a6fc6d7cca3a67735b5a6d42ec1f144098b56528f8463b8e96af3d671c5ee5303a6e2dbdbd307fb836c996e84c0611423ab187422098c23a75c940d6db934b52b9359e2850f9bd962683ccff0ed39d0d48e3473a82b1490f3c9800f858e2e2b45efca7d849e2d5496faef80c3e38f0d39f9cbb1b8837d8628d28c7d0479e27058513e519ac5a0f30d7e931f1ac27a1b54fc4a760f1068918f0523084dd92cafac3e5c91d0fd4f2f1d358bc9cf803063ff0c37c1d36f21362ec8bd81af7853b804865775067c1fb99c9db8ec1a05b8a3f05d2c442ecc049a3cf177c9918b5232dfc640266cac479db947fc1fbe94966e1420b32d297d43ab4e98ad69f8ae64a90dac330b67759af00327c80e45426a51a8492d9dccbcec9989636299df60761d1f6a1ac9f4814af88490625a50887d23390b6bea46c8d9026b8aa2317f2bc920648d83ea70300a77bc249fa7159b244227dfcb4610e110708901afdd925e7fa1492a0f2fd6740291024eef058de9d947fb01ea45b9c92177fb40882f950aad85b729dd54393f015bf5e7ae5eec88a9972b125dd51afa3ce3c70268e0097e4ef734e30d40e0e7830d2ea54d041be0fa411b2b631e6f7f79654a8e5dd4b8e45ce257b14f572003c36dc0974248ad453e3a0256362ae625d0700fbd0555b23882b435b17ea00d9a0515cd808f818fffebf211882287d96d3bf47a45a484e471bfa6e6fb9ec21ee18c735686343ee40f8193649ed1e8df37fca8526fa56e6235b411105df239a98d7b47ce37bf46a53585e15a6eff0c02bf1a22750436502241e8262847cc2f2fbad108d4797341540c606f0b04e4fdb0eddf2b5c6b4bd519e9521cd89161cc5ffe38d0422aca64df7c74b6821abe929beb162859aed09a600cc489a11370c402ab6e9c809f920d0ca24740d03805db63ecb23371bc1e5f475074f982b2114381428589d2d51793e619809f2add79436a89a0861121cc5f774303a513d4a00ef720aab155d1f8820b44a5a2a19fbe5a5b02810732e0502b2fde5643e3fd2040efe54298579311c9df06d5291cd043a11a9710b7185f8c8ee208d3f56d5b14a0ceb5b9355e41a6d5080c7fdc2b17056c9d1b312d5c615a4dcf6c5c127c7c0fe700a7aabb00f9ebf318e070cf7557f749e19990b37127969a9c6e275ce3bbe558213dbb69740d1134e03e504e7c3fcff7cc7154ecb929116ac6b834aadd8c4a332eb0486f93b82d581f663c0f3e86cab3a4db6a14cc92f18b0b3c4602482fae79b826bda8e666c540ccc7819827495dc86957c26e53cfd76d3bdcdb989901d98e105784404778f7805023e1b604ba66cffa042b182f1d9b01f4eb9d88187850dc3cc1ad849e2751cd510eb0b8ac92795bd9bbc9298a9843023da3ba568a0a4d350ab17ecd1f3c99a35a5bd578a459b730ca080c157fa357190ddc648be04b0dba7c09b4ebc6c5f6b97e89b36183200c52cdd1d5a90a86929b905184aa4970953cbefd25f0b4fae68da87cec39846e7c656d5fe422d5179044e4a4a62cb73106b0274cc04dd8ad5aef15830fd9e7b962fd226069a54b42e6a4b86360d6399cf6777dc2ed62140447b4893e04f79031f201be415c6d983d6709b06f8aa692485751edb6abbd1e4090808d97f4428c66611d09394505220cc12f712bb1947687fc68856643e9a0730910202c055ff0f92013a3852f2289db8f823c91b3811b8c334e1ba7ba44548ed5e2c93c579f55c2729ce1d842c636440c029e20008b7b82f791c09833dc1714d6c80643cd272796169cdafa8adf75835c76af605ee93e50c58cd25af887f146ac5e27156e18111c497c3da965d49ea82f811aa4cb08359292231032f34bf10cf8e67c66423a5431b75729f73cb0146f66df55e3925ce81e3539d18911589918881a688a4b8cb929d60241477d81a03eeb03f61181526442c10d0b9362f217a4a4342d2c84f095aec2be120e7298d82238808061b85872fd367d1c5ae9b54eac22270fc643abae53ff8e47f9f9b173b603c9fdb62cf0de8a8f80ede2f1d1e18d8b01a83380b80624391dc3b6396ef5851e2e033f69e6d42829a86198f54b36cbced2c9d265d0fa19410f38733519ceeb6d662831055440bb00d3e4788c72b3a003f5eb2e474a2f951aa3ced0df0e2ca93ebc855fd3b879ab53a05f923f211030febe2e2a4f58eb2b1ef6771c32a17dc711484650db307813c9e5232eeb5cd1fd11af365ccaa816c71ad3b1bae6f8c7681d884adb2902a0d86544060ad667c1edc2d836268c0fcb1561f2ae72415a952a475f10602774af14fd9a2f355f145ce300b7fa05642efbb5fd75c9f45b01e392b71432399f77cb0d01b5045b1c0f6e9edc273bca6186cdb681aec1a9fa86fffb2e40d2864b3b99af7f692ee82cd11f9bc1cbb3abe65cb1039aef922ab01b9df410d7447226a59db4c59d6f52cb6a37da736a501a30ee77509a14b6ab578f7ace56bd533838f5319d676bea1650fcc1c1c5742e1155e4210d99b944e9927d81be1f3387e43ff3f2f1f84f2a2c3fb1dec1cedd9c5e2dc90c00333fca4334b251616714627912b2876c5d5fd758f46a88fb1768a2ef1ac49c5d7c729a7d0a9cbe2700c9f4f9e27fbdcd7efa9c6159313560714e446f737da40297de6e57da22c40f36e62c04ce2332cd0dec1b1e9e8b17fd1ae4bc09957b2702d6f7eae3aa17bea307620a09592427e87a4d85170e80e4aa39d5cbcfc53aabfc40f1251171fdf1e0e53bc02812e98968d65ad6e10b105870134a3ccd089191b9b372081780ddba30575041788ae77479a64b640ffed06b15d4730a6f09f6a9c17cb862ccf9bfed2a3b961e44983c26a3a047fba6b9e7eb50d40b2f12e0efe3926d224bc7a8e6ef4f68fe1ca3f89ab5a596787c5b1e852689372e0962ba16c23b6a61428f0bd80fbcf2227dc8b57a991c306ae17dfef6207562fce5af0464dfac1665582934e9fe35aaf174d67e9fce35ea7f85629f23da83d97b6b3212d98745e6a6d800653b217d59048e1032a1c0d8fb7ba6dc774d82ae150fabb5251389d0d36e5de478feabfa2a4f7ac36420f3dab96e378803ad0fb345b33f946dd8f81df6a2c4f0bdbd89bbaf08fd657a3c432bdc4bc7149fc6ea9b7cb3c207edcb73af89cd686065b8142139c4573f95b666ded54ddd82adb7cb974fbfd5ee81acdf7171bad26d9291fc1d08e330474d86600702182fd1bc10ed7c3fdc13afae60f03b1c0d67853f5fd1acc1fa01f1b7fca2af00f8ecd7402bc02959b85634b9bde34d57eb74d02640582707e06834847b24682c9d7efa60c1217d366c3ff888448eab178e9efec05c7c71a06764ad6018f2120a503fb89ce59520a7250d94fb549db63acfe48d6a1988aec1f4875c329f59806434f50c918b817584313e469a0d3f354d40010f318e41324b21c89fdccf502c836d66c9405e67901fb09c1af11b6e115d0fca6f33bdc44b0e7881532fec8f55e072c2c3999cf5692ed0892e48d402d4a7632f68cd8f4678ce49c8e6233483cd95c5067223722043d682b3a857c1a3c309bbc1fd7bbf8066404c05fd4682104fbffb4fb58732ff92124a62f48a73627c2a2167bde8ac4533e772326f008986de981559689195765d4b4b0d1230c1edcf3771ac7cb60bca0b5b751b4c67777881d5b88bcf2baf41be490636d496ebc6c1719e440fefe82bbbb4195e894b770a405ca59347ae07356039bb53afce0aacca02f12698a72c822917b9c6ccb011810278b05e5e053874e6d59aa9796d405ec76abf48ea3f6f2d6f2f1e457887af8936e9678920b43121031099c7a909ae7836ad9eb99a1379c304bfe87be4d4af3a2316eb112ec95dab51edfcab95d79ac192bd18cef3068e110b05d77109efbe233fbce86633c013cbc3820628fd44f894f4df131b80bc7dbd4bcae68beffa1acc6a01021c45408675339b3649ceef51a03cfb5e03f7f051ec762964825bf124c9a468aba9125696138168a9cdcfecd8b77a7186a89d6581ee1fb703920162aeb55d8880f6f333add04dbaa2c65dabf6933afcca3fb7e0f207e6afa54a80a84d6886f0beb39cf1ac55c8c66a70fdcbbc1072d20ba8ab1ba2b07eb113ef7c451f432848d14fd29ec95c6c7c5afc7c6bcec3c71f2c3c6a04ecbab98499d9c602ad55346b31cc160a70c2631e48d5f1d9a32a9c98dfe5e399f0e46c59bb2af8dd1fe0fe56495e68efde2e58c26a511ad30a67c362c5fbef674cd5a13586bb635c323411700196933bede2f6f3f79d0271bd364b3f45ae01ad4c75c69291f0305111a139290dff4618e525cee521b1e6b256b7af7e0ddf82bda55a4b909f1ee06cca0f29fd62b948fbfe955ffcaa1768ed8230ee878608c105f3222e33776d3358f2b95fb5117357efcc8345c19c7e67f69003b7d762873079a011a2eb3c9fce8bbf58f3de5c9799ba904b957d04bbeb27a4d12b84c188a672be3321fc9a9a83afdb7ed1bafa58832284899aba22bb015969c2cddc11d4465e7f0b18311e0bfa18e186f8a43580c48be3c7deb548382fed4a54aef084292932c27bf81892e7abb428704fa86ebbb5ff828f4892e186ba52962a6d93986385ef13339adf1b248139597b809a093758fe2a4850c84dc1ae1368497e9911aef6efbbab7ed634786be21242299b4ea10b56114c7dadddf959f6417e649a867d35b4cd8a672400a04e72853fa4fdd3e033cb60f44d4533ae51f5bf9cb9090889aedd8da1585120d1f8e607f973e701e880077c08a645f9ce44228c0bed606ebd5d40210d0601d87ab4b32645c3c7e32d4b21c8498c4c61b02440709f0fb0126ef8da4204af4aebbb3eb63440352add18be30935b83ec88010222a9dfaf86ad94b7c8777ebc78942a51a02067fa0c41beb53dc66155dd4cfc88655ce61f9dc64077e59f0f6a80f4430119f909a5fed562c0d78dcb9f441236c55d5d5cf4d33454972f26794132fdb25ae9312fd0d71cf12b45afd1d850816bf8ce235b33997471fa305cc75bf6741708a603e5441d214b12feab04dc69baf31d4821c38d006fc33a683b3c4b3242438a6c19acd145eaa99e0bc3295f63fc02e82c15ed90635aa3a830d0b34fd8c1d5cc009155af6c196c4d74b3da2763ec757e636d2334f56d4291ba6e7f28c69c19f42561cd9953e37909940c8022fc8d3f7cd6e49716b9032859866b379929acf9f9c83f5a8b4fff0da5e905a062a1f70bc4d27d543c55ab7b3e5e010f15991ff8bfad8b06f3c8fdcef3bcf264f4a85f80031f8460ac65a60e9a2a103170bdf7a64b6eea3ad751f37549e35599d7b2181c4321542ec2515d04d3286045562d8f9fc54b784090cd6eb28eaed85c9335a4928709a4c2b5bd664d34f5312219fc2238b5735bfd6db9ca86c7651107ed0de2aec37d2da3a602b4751bb3868dfb6ef8004b87e1fdfa51253321edb2e992f3a5752acbf236c058dd36ab6adbfd619e58fb307a1aba952b489a5b611bce65abb7775497fc8d040ff3a7d0f5d08718cb0de87a4106520ae3932e27be863be5e26a5beb9d4bcc8a060b93397d9e1fc7b78e2b09cb9a495f9510856f72e540db23544f3a676576ae5521b421f856ab4d94635bd104ce2748381233d44a26b8bfa6c08955eaf4f3b213cfc598a345872cd25714a266220ec3dfa3eab9b4be305e3f8908799ac3dfe9f827ad5cdbe9ef54adc1af214b2f112f090936f1a385c24fb4c3f63b8f17e72426e2cab312c2ea990fc8378e3995439789127a891154dce820e8d2d562aa76070f7841f04f8ce931064a099ee127b3ab5345dee3243e4c5a0902e3d1206f157bbd68ad6bbda4e9e7478440aedb2293cfbdf9b90927f365b64387abac8628a1d0ec98dfaee91af3aa53c04e30f8dd77c1c980dd702ee56146403aa6310adb8edba498f6e8e547e2392044a62d34836b0ec04e0149a7f84df850195550f3e8c7aae538292850eed163088510800022dd57ebfca51716086ec37aa2e9d2af568166c26b82739669e16a97bfb54877d354d1c2aeb984f069ee983461c4702c15e51ef1505942f8d92eb86ebe0f80c989f79484281787caf571b5bb5c65b76f3e5b96d625c1723457b081a53a511e4d0c5b3a47854c2c07275bb559a8567c08255243f7430d983cd673291c27c7494fe701b07142cd1581fa49d040990b01a145ee6beb25b9b68f3a41ad3f628a72036686910ffc393f2f4543bdb484507cfa27dc7411641d1e21ce8003ddce4a36d41449a6a83fc193479902e2ca4d4027eadbb7ccd08204f11b5d205e805905ac5b3a2c989999cb5b68125dad6b4e6aa7c66fee304385c134dbc06c6115884fc246dab4dd637f47b85828ed2237a9b9e49cbe942f952ca3863cfea2176e4230ed78eb85aeef869e138666ce01a55f4bce9eb36986b735261edf1d7d459d54f47d9d9d3354b6656a22be7e682afc32bb74e443dbd88153dd4b02b3ed80749ddfdaae65a0cf4229f2e650ac8a51fa95ec2515c70543e8125441fc20e5950e8a326806ef2335931c012d6ba62bda8afd312b149c3eccf27e75859ffb73c92895c03c0dad96f8784273b69c5e4bb51a720583cb410c0c6fb00303c022c908cc7259299d1e25ee21b8015748216e84fd0edf7b688a489827fc07198e7e62e78d42a583298fdb6d76a46a84caf88519407ed903ed5ade4c705f088e53cf20d7b4f5352eacaf5fe301ec296bde8a513771d1ca9d8ac91b4251828a389b56e854b0223f98ad4994517cdcdd16c6ead6e0221f5fc8ad1827753ad38eb894682f8167b61e2cc082b389e3fcb69ae9ee7bf5a2ba71b9688b2165ca10786dc13025296504f1308757f65f9efbac6031a07fba3efd08b88d205e6103b856f065384d145d0be533b512c0061774a75bea48378b3da810033e347bb926e2c9800dbe041f186c546b3565402f42dd9051b513b8c6f6ab623b0475fc9a59ccb9a9ca1d3121f83530c6f5a22db7a67bf114c86eae1668f6a19267352d370742fbb3656a8ebf8f5061bf34663a66ac56f44de17e62d44ee8931edfbccc3d20df603d2514508ba093b43f2f51e4ba01f029a82e1f7afd08a3022a54cbc26c061c24717aabd815e223341d348db0a433e2ec0c5f769c98908b5d0b6582a3122cb63313e16e13c902cf140f35df8db538732d40a8e356373af9bbcd04a2a56a53617b1c048fbfc7f3f7c0f8499a58cd815c0870b4b1a3ed2354575042a954db84cdf058037fc13c303cca3db5a6a9d7d63274590ee19f96adb1b78ade1e3005e4c55378851721ce8f80b112393327c181fbfd3d0eab86b8e9b7cea2ec20d8c8fb564d6e033b4eca5f919de33a033cec73a60660d3d557e2517e38cdfb45251813d67fdc808ff10b9fb89c7bd953d65d71e5254481560f8aa6292ca39bd87e7a3f9f34197ea513076d1a0f3695752fce3cdcc67aa643985c02fbc23325772dcbfb59e47067e831f7865e8703b3056cfd59470af91d5e71113ec1fb8269cdea50c19f0d92b589c4f4a3516666bb12905bf70439ea141c1c8861e4415a9e9fcf2e735c8400012c0c6705e605e174905f9c71f74308ff9c0418122e06ae764b9c581e855e16c757a43b652ee46443ddc07914224859db845fcdde0f228f44ee5daa58050d0443c244d9f2330b21788003cf5bc997b4c3f01641d79a6a5e1567e6ad5de2e787ee5a19dd6eaf145714520846312bfbd34fed125022ef76258a1f76c7780a88f977f888f00d808bcf3b63e5de4783e8094e72abe009be102cf10ac457ff0c87558a78f23929079a031f4e90e98051c67b6d410aef8bc344ff19162a85668df9be4133004d84399377df4d3010db6c637e5ab8a67638ceab8559bcbe635fd27b647dbb3792a033f78925ba586ce7740fa5ad4ba6ccba490c0385082520ec6c76fd84fb68c0bec2e9cebdfc78cd10751559e755bd9dce5f90eb6c28c75182eacee7460bbcc4b4e160c8644d8320717a8953c962bf61225e39db6bf63a4102204e150405a225b444fe02bebb78994fe46ccd7e5905aff4a97fd76bc1d0c8a5a7e70dd0ea74fbc9685eba16d9a111850631fa0ae222a6b207dbda6b5957c2da17739ac06d701d570bcc3465325687374497707e5cb5107448a2ac1f92a5ddec229d8b0d964f4ff93b9f9419a9bcb5119f496eb8d6dcb76e0a026d86819a115ed37fb456a8aecc623448869eda3c7e64753edf8943aef472a2039dd92bd9c645a05ba317dbd38643c1849fb7e6e61da0c0545506d8096a005b639a888184a1eb5f28a5ac19a238206862c47f8c32fd592ef8663e4219ba1d39a2d6b109b93b30c0beca1415dc08889a9338f13b9eacd8ce7ceb3628ec93fe8f45b0160ec902cc0a633e46f4dcc582add886d78020faa97211b7e1537d6497ecc04405f0714be4466db9820cfceba3cc5dbf010b17cd4ceb90896a33fa13f12a120da923602ac119092deb93abaa27fca638f6c38ffdc65bdb8013870b0a4d5b4e700333012967964e5af3da01dcfa1a77425591d55bbf2b1b310c895767c4226056d88c3b39a94c4e7b7c7580e3dcb82af33aca22d89fc4338ea9c426ba96bb7ab1642023bcfb11b96ec17fb5a89a04d5884325480f3804e117e3b0094184aa68d36e3c2c3fa7ed76d40d02bbd9c545955e2e4a9f12814d2d48e43f4a2d05359917c09cc529f364deb4beea499879caad762275e7533c7490c09e8674700eefc36f5a90d436345ccd2d78c31e922fba92abdf0a22c81d9ac1242781530987d11c4d860a3f1c1eab02606d2de89cf69d6160f38590a9ad215a720db468a818ce28d72627a32e8c0cc984bba8832b8a57a141330572917fdb0df09a4b1ff227141cf94bd294d7f8e82aca8f8a252028d504cca0d8645956c348f6fcbc1ddaaaf6043afac2f4a070351cdd635fbd79ca604c9a6f0fa28d7404f4bc799569771360c5004a492ae52f212720cb7741cc03af10c8660a80fc540eebb0b3943ee687a2999f209c8fe2be507aa238fcf98191ee51af221ec0cdb228046520aa299e2343e8f9c7008b652e95b1db26e28dc8e86ea97fda25753a32ab7239b9e4804fb3bc63d6da854907ce6d38fb6a86faeb2657dd970f9843adc6f2d032daeed9161e786054b7673b8ed914e3f5d6bc4292bbdf4ac18ccf6eef0f628a1b2acdd7323172246b12a3c7107a04f6bb1d180fe3f8f665c99b1621981972065c764f2405bfc1949852664bc323915f1a8a91d0f89931d7883520a85e768b1cbfd7bead7f180696cbb4d1d7f32f7296b346ada5256796eec5daa996a961565bb7dad37172f8fed449c281c57cd0407f715ef83d438c6688cb41d5b55e9c8ea6dbfd032e2e0818c3beaa69a4273e378409c3a53b144f52a4ae54a5dcd0aacbb46397af9caf0d9331234c326fde59c9c3fc8226c6d716808297ab2b9b6eb3af70858d68ae77c543548e8f56a473cd9ce3f73ac4ab0baa8d4043f0e9a41c8d12f9cbb39276dce4023045313babf254d0bb562901e0c021e387020ba229e5efb0379911be08912a4353f69fc254d68f987755fd113199976a8db4c8777f99eafd09d575a8221156b66ed288eebeae4cbf0151e8daccbdaafab67dce16d027b817cd82536673fb2a7c196b068e57c9b74ef176004b592755bb29cc25cc09052a3fe541ab2218fcc40621cef16e46eeb3302f8c3a4ec59e82a3a7d89e4fe40dd0f6a1391c8bbfcbc331dd5a8c1515c0df11d83d5ded56b324bb503654359956a19fbb84ad5458699d305c574b6ede7467127f2906a1baa9efc35cacaab0a457bc6082808d37dd4cc09b8911b48f426917760e1f41a211b7cbad1354420547e5ae833a757f6982ebf5024c529ca175d15ebbe7b8d40fdd67797c05e7e738d3046b6782c8c77ec0b86ffd32db63248eedd7c8bef61c69f25f04ad86d7f0565fc51426402beb741435af609164ed294efcf1c7ea12b901bf89b34d9e915a42afbafa451bb76b047de9f834b9f203011123d5a8362af638caa89c30d5fd4adfc54d2e005d6472edd08e8893d7b3655bf95a51401a2c1164bae95ddb7ec680ba388bff0836a832b1e24491b08da92fba86a854504b200d3d0fa66e4dde006c1e67e0f24f55dbd49ba7bc600301d3b923e53b81a4b8802a2bd780814bc706a51fbc4b965bea5eb97b7e3670b0bc3dd94ab0db0003a1c0de4f37d995606edf659353be173095e1241848a4f2378b328c54805425d630b30197ea89ae4a44b9df5c6131c173c83b3820d38551c724e4ba8b0010354e016ebdca1b800e91635d9a9c0eee91cc3cd450e6207f9a731d1050b4d004aad5e3b3bdbb00eb8094d385b2a7bf282f4342be7c38b39e2739a14957be6defb0dc6382d6be399bd629905c7bedeeab7462afb34d3da9f4f66f71f2a24b38955414f8ac2b28cbde8e74cdee51157e9c818d71439a764180d6dcbb5f84029f5e0ea3bf85ebeeb6b67fe439e3b86bf080171e999ef2c7e50997c1781e4a894a758c3e68ba902aafcabb0dac0e102a8a573060b2369a8106c02cef8af2a1607e8669c58a7ee0712f731453225c7bcd9f6199d2d51feced393058588579913f70d54af7b58c81105cfc15206abe586bd56f93c80f576e45634c141810d0bbd70c4496dc5605f143d9eb14fc98a3f227229265083da14a825012ab2e56131e84420246f76c60d702a8661efde435b8d1ab076457251aab648b364b0c87acbe513b38f99da8dcc6af5baf67a030c04f560246b27b2821711eab8f0f98eeab14cacda641589054557bbb6ef9de89e2ab1ba99676a52e408b4df0f66784fe3cb009ef92a7fbc617ed6f4ec055e92c4372ad0386d3414651c7542dbc362129d499558f3983f7ccc0119759561cbc3402ed61cc7697cd216125f8c3669c3dbdddc6d426c16304e1850e10789888119faaa54c5b84a4868e5ab31108e64c57c3cbeaa5e7f1cf8f75950400990d5d5f15544237bdf0eb16edf6b1a52d9c6d1c28dd3d2df4772d117de73f74be7f60eb9dc123ab137884f77210a930657e7539c01670ae99aeb082b0afb09cabee94e0431e12f73a10e542021780786f18814c58896923cc5360a608cc5a8899d1b915dd9cc4834692b1c2b98d3c55875ed88f39705f58235c2f470d1400914f9cbc18022f4624897962d315af3d1c7cac81328e0675a2145a657f3f3b1f01ae6e825156d9cb0022c54d2fb18d282788004cf0d8b03841df6788080f306743835e18c55c0d21ed5be661c490002f1e6a60739d0071c3ed6a12d442c9fceefde0df404b4481bf848eea826dc8c0dc150093bf29a3fa33cf8fbc0c9661ee24ae7fa9fb3ee11ba86a0d7b88cc1ef0871905f1f905ec39c73ae0becc1d87f599c3514b019e2552f1e285f315c7709adddebaddeb56c17265ad2157bcb2827969b5ba4aae04a8ca3a9130a6d82a371874afbcb64d7e44f665bb35a600a79a8f072e8b2015557eb41950f2c9ce478fec84f08d47bdedfc97f043dc0f23defa7ac2d0850810b915f8b7cf70341f2bda6ede9200c3063789e0ac593ea926427d8361d8729d856b3703a211dbdc09f458022b41340243ce22fab2c27601134cf94bf08eb3f808e7e973fde82a094043d71ae92ab53929f7d6700de898ae8cb6b950677a5658cb78d0f96b81c913617fefbedd5b280ef3378bb3bca71d39b9101f362e31c143f4ae159c8761ba7532a6b300e37593bb7d2dccfa6c1108e75ab5c0aadd23088d52b32ee0c178548f8686dba22fb9ef18efc4f38a8c6d78da960f63e4c10879a9d72013f440f0ef3cd5b2cdcfd65b2e031c16fa3658cdad51b217c62556ab1cfdf9aa9ca049aba5c92ee00e3557ceaccf85deeb65831fb46e109f28ad4d232f1972c27136521527f61d748052c342da826d1201fb0e5ffa77c2a68b1dcbd4bd3618eaca9989c536afa6ce42ae55e2b7357e9b54f321f886466dcf8d3701420012533d1dbdcd570ac6c0fb6cbb99bd409731c73d2374aee0a0767e9f91318b17f8484c312777501c4c8aefe23eaaf50e6bb1d91749f4b75fd9bb2e00f112fae9ac0502ee0d572ceaa6ce63876d002fa825c5cf0a51739d88656c027dfefce8c1cc054e08b3222f0d4bf0650f4b342366e5fa0046fc1fe1dbd418bb958b1c9ccbdb0942008d49422713676e16311e554002ce236d4d1a370168c7f19d337f37f9ef1990381c0809d668757e65b9f083ca8fb31c27d19d0ce754cbec0367f3d2ebe2057902873b438c9867620ff45be962546112e0d46f4f4b869000e2d2da2164d85ada38ed46bfb596f7c6f72083c86b9d8a70a019c599ae9a45e754d1820e85160c80934475e9823a2a333c0c81565eb26ad401d3d7bd0034560590789cd424e7e7917b7864493da7d19e5f4b45845295044db1644022bbc99bd3fd7ec08627095f77ccbfaea6edafc4a49b921b84693f1f72e1bfc011758950b0e2645c12c880237262ab368f404f083ddbb57575396eb1cffdf3d2cbe908362753a69e66cd6a622f6603c83b3382bf645f11a35290375010b2c871d218ee97e78a2101ae5a000ae9fac00e286fedb98e1358ec891ecc24d79fa8fef41a79fcd1ff3837b3500013e14e41585579873a0430ef6341ed50d042f76e7219161034bf16bc49e9c6252ebfd7c5014e0e3d20e5b3461a0ec4d6d356afcd82d38576a6534f78261c3f6504f44a58e3e5c42b96c30af9add47b17c837d92338f67e4089788a173566f82532044431d29067af855499b98bdfc0efa955a068fc3c8834d3174e76aefeaaf30cce8c9cf33bb5f714060d37e1b18d3007268999fa31f4a46ad5ab5516e782892365547478886f8dc27a10a1cf7a7103ce37fcb0893ef30ccc8932d0a85a2724fb00a2fb35b423883c9a5af63ac0644c8cacaeb1ed02a42eccfb8d49c42cce068c5875122e5f1bc8831518eec6bd40c20a882f4fe3422f69bade014af53b060527bb25e976b51cef9ebabeed8779e8c946fb05cfe2a7e58dca74f0f160ebcb4581e6c19db9c159eac1c0712bcc8daad5a21fd69cb5a5961949695de93b4afe671326ce3980b584808f49acb6e5a2e62e1f3c7fc52638dfb1fbfed0202c6439d727cc36b343804516f401e39dd35bf1ea4ce4b0ac56ad006d2b066cbe17e7d076450cffcd5a8caefe0e52426d041c7fbd1830807255730e6a60467da5dd31fa465625df45dea4bbbac3e94d870e9c3f682b5a40af85d959531858182c6f5bfd32cc9bd73bb06abad652c2fa04d723b24b46002511b51e42f52a35248790b82f182e1f4042709e0f164c2f0d978a19d694496a59743278b84fc9175e79cbd017d8e9818b3c424b125fd8981806aeed064636979b0a70f81750b514235442c77ff592bbf8251ab76f3e0548dcdd95e5501d5687d9980ecd89a69f2973c26808a22106822a404d437ae973f79b50a60a1aa024b6316d311bc0b348c193287f52c1daf6fa5dc81423388998dbe51462903a8a26db331f713cb701776d7435da75679bc5b5e97f25eb226f0d4c772f61fc8654516ee61c2a61d5ba61d9b9a394a71136e16bfd73517bc239b318936bb4839c103bcc3b313ffcf7775e8edf991b6db17e597b3ad9057929ed4a2e6b1b00fb3d9f000e4512ee62ba56a60b548f45bc54803704d974795d5e1c3d8b4ab61b111020ce7bb30caa990038ac8bb694b6294ad9c061de4ec73e1e228cbc0c0e54e4e67f83fc0216364eb6562a8880455fa5c119984cf98ddf21b02cc0591b605f2ada414109d6f3c330b2e2a515b8cf8fe635365c74f702d83154d6c58de0f3325fa7564287f21e8e262e91d98035c740b8c88b7f08b24970205d8ab6f524c4ad4c18ad77f51d1f63eb63a57fc2dd52373a5320215dd1a7823de074842b390c74480e53d7070c09b3438652e1931b6b338bc07c46a0c8e00ace43220c3daa4d06f44c48effb19e30b09f3eea5bc629a54fa48ecc97f8c9cb7d6b43c90ad2f884078130a4fe34de3327c37ded370f567bddf7f269b60146a094a7a766d5655801a84a036bde10bf05cf0520a81ff7653bd1848634ef5c172df08349798bf77a8ce58637dfde8c1b4e3029738361f0c310e2ae358adb8a02743b4b09598fb940654f8139a17dfc9d4db796cef32bb1a23253d70f99413b9af3263beb69325a96e512c2bb7d1d8eeec7938b939a54f0415e1cf1b5ffd9ed7e798f26b8ef3c50f6106c541fb3c5ced880ed1deedf5ebebb48357c77e3e8b9c409ebf1a1ebbbc771c2907df0284aac4e59de91b3cbd5011b8410984c4816ce51db92bbea1db4cb59f22f3c820fe155c25edf2d3c73bf1f60d37284e76fdfbf605dc0bd312b62b217f67c1dfbd26124e7032473c39ae90848f2788009aaf7390747badb3462c60fc05a6454b40135e23bd81c1d16242d2e577d65a262b4cf52da9b4bca3a5ef6644e37b8beb5d7a38d36e4d80a1a92cf5fd7e19058c794474556e650dd58459230f918d5eb8bdc6ea62055e1d82bca5e5df8ba5f631113bbc6e4613f1ad46c62f110fb78e98f704e102592ac3b7a64a92fd199cc8d1a5444df458e8a1ba7f58a2683cb120486fd4ccf669cf292e271e2c889044d4abe26552c2e83b0edc10cae3cc9dd7f15efda6bd94d221652941781c65af0a85c2d615d79744da38faf91564bc0d56bc6c1150b24355d4fbd71537012a256335ac735a796bfa4ed41f046ebd6073ffd6953443a0d9079528bc5097725d00eb09260a9e73f8f3863f1e6d88717354590f773836ce47c8311039735a2baa2a205dc1762fc285f5ef6ea837a730a9f405e5c46b35a32bbae3f60d0a0bb74e205e143e374911cce25ecfce596630e9685074e8459d5fa435b4eee92beef5932eae9e7fefa770c9429f6a6e531aa311371ee39b3bbc7e7a56e028ac8e3d07797622224af27a42fa546d8e3a738032a4067c9993cde74bb27e4b9efca5d4136d3f1dfec189fe723bc27e6d828983a72e4eda616296d7c8aab3dec4e7c22b3fd6aab7480c58f074022c5317209a05d5cd0c2fa35e48ea96be9d450a119950c400b00f8d87ac6a72a775e0bd5842ad8f21763fef66ac35fa16763a2db310146e41f2b0667b55f34911e0cf1a8d5920e82435309884269b286f32936e8a90984d0051946c1edb7c1b442b7ee5e0dd7cb5d9f3d4710c1f71d4b96364e23c430f4608063c1f65e4fbe9cb1b01485d104785923e12bdd89b7e102c76df3907a29fa5f79840bead46553b8dbaab975b73d1ef802f9bd712f54a8fd3445a19837e35c655a882d96765db547f9bd275bd8b4336822662ec16405f3fa3c1e0d2e7f0d3fccac8c55a19f0eb488531e600e1982d22145fe4ebfd26a1c1dabff67b5b3514a1600da0dcb2c671ed823fe829f72a787d0219f0e65483970e94f204c2264cd4b6f3c89040abb15728ccf4fb4ecb37205d01568f7949f42ec878669909ef96ae7cba1530d55f4b1b04b6dcb6684e0b83709db6d61f242922ff2be865770c3587fe1201dcab3be413c27f84e3d5c1b01a52dc2d1d8039190a178acd0deef5737358a9929359b205f0aeb06b55811e85dde84fc061cc0a01169cd42fa8f2ba42f32e774f426928ef477c44e1907505e5e40bcdb900520229fb6238f956ec0e0de46839ee77ef04e691c23118484afcbdd638710bceb83e1dd11e325a0b27b6aa80760fe18033464a39f96b046292ea3ea5237edec79df17a1b9c13f7d54d72753f0d91767a0ba844fc4a465320ad4403c182e5738635084437a2272490dccfcca95e843c1ec3e697f39ccfe0d3d50c9873198dcb2a3e1755083b9a5c3077d14fb004c8c22c6affd2259bfb46e44c910e624411dce37b5c7dfe6392f0b9515e2fc27b8a314e7dde9ba0c4b58dd9f05dab6a74227e0a6619572af83bc4d75c5d688348759dd062ffc9153f6e2b58e99fca8b6c6d2a590dd9ae1894a701b5b3f9f54c1237263934a5bf2e896f77e35eb190835a7e196fbe57901a30f54ad4fc7b0f1ad73eef4510b8e82a5d756c5e99d84ba95053e81c9bc8d75c0297bbc48779d699007bc06f1b1c105ed0705729e08d5a72f06be91db02ff9121b984ce301bb9be3b0168960a085859ef86b5bf31af66e5e394bafb3ac93afc4551b6b50adaf5acf63c88d805a62ce84fda33669baf11ff17a6d7c3929611f3b3fb4848ef6fdc2e9d762f073b896bd7c2aae0760fe7a0defdd94b44c94a677da2cdc6bcc10088b48b0b147cd388357f5ed34642b3a4d26e1eba1d5ac791a61865fe36a29f2b2f718ca0da13646edcbe0764311b01acf095e83329da17e131187c55d08c85dbed929bebc41803a046a6e03d8f4740b1e02448eff86a56a3536eafd5ceabbb8efef610d323751bf0e7e0e282c8b78a10b030a869955ca86622c36f19f80e4fc0725d6e894b8c64e69547914ebe5736aebc779b204581a7835f2632c07df96004c1acb3bf095e95f5be0965773ba86065df864105eb97f82576e23f407091a1da36c539551f3e25557db77774b2620b99a64e39f254b69da03ea93da89675cf29b72edcfe643f02979d9e838a62bf88667c5549c2fd9a8a98063901434e0cbf1d2570c2f2d61a58f267ee58c97776540ebe80c50f512795e94a0581cb65780bd5e6ee2bfb31e382f0ac52126aa057d06c56613dd5d2d3be0094b946055501f58f15982c6bcf24dd4eaae1b9b20e3fb628f0aa80494d2f2220bbf18bb693e181c26405b2300582b8da2614cfe33a58d44f415ec1b6b859378369a774437d15aa954d21abe0a28d33bb7b40110d74163e8892eb94263bb59271aad4e81b58177a91cd3fce51a64605700861360896f3a1234cc5bb95c38d40ddc6fcc8e788dafe1101743d66208f4386608e816090101e2faf87c8b75b253a78e1eb19ec346f43170da31033b185e427a55b9237cd99d0c900890fa171049c95a3c2d4fb363718de2ea1440acd877ee0206628d50eaa60326620097a30467202c060013ac8d363753745dcdd738f90fa6829d3721d7f850274553af4fe7f7e648f03a03800b6f80fcb00ba2d796d9e0335805dfdc0d749fb8495b4ce5136843b9e157560136feb5eacb89ced1899b6a83ce6b27b4af088929afd446fdeabd3db81b3ce122d1ef463c16b9e10a40ceee5c213b27889762c37c383cffe60977711757fb6d54b5f32e6fc3d7f7cfc86f831bc59a50165e76c0ea898db3fa69b0bc851c42ffa8995126026eb859beb80c78883c2e07531b53c31d9ec846c79c7b8f086e1fc2210ae8f26a4c8d90d166711fe9d6398b77059637af17b41d2da85a93e84e86cd38fd4e1944421ae07e2ee15178d9d065046b144e74be8c68b9ac0bf05cb86080bec5d4e24d37de46578887e16316403c11f703b87c6733cd2521a6b818eccc4b412144e449c994d205f2252479e7d2252dc40475d835769201dd0282ab32a99a16570deca4115f909f2125646ec1102514e1008d065eaf1f2ea018e2a5f69f5d5432e042e444463d607df0d355a8b36f54efbaee7e9d427af1beb6c367adfcd585a4721402b41dfd43f4574aa8215237717acd253222e8b47d7344903f820a65f1cdcba1698aa92b32d61bb268c046506cf8c4994b3ed4185b1d5994acc190eed46d712b81b81fd15570d91212e70bd015cfc526d0e1712deefba957f53ae0f5b30b288a5ceb8a5ac1e5df911969ef5723f38f0da19f399f48f38e8fd82c9104f1da5cf0374ca198cc8e2580d55521ef8acaf0bef8586f8e56f934ac873835fd2022ddc6b463bde0eb537cb9a6112e19a150e5aa047aa55bcee5573ee4c719f71bd28202094d153f27ff465c67c85b822dc0a2ba8032b385f708ed2e1ae15232cdf8204cff8bb098bbe22d729cd7a556cb14134ee04897604a440da52acce8ecfad40f9efc6cb35e0856fc006e153db16b6f934e315f5323b81d0b9b5f76435dd1c715156845345bd13d783b46076fa369e502f2558c857d8e0e355db7e3ddb23db5345d09dc9fc649a5fe3df80a81fe604da168c3e90d13579d657e73571039afe63a602b9ae1ef61fc39963ef5cb61b7ba72b09ce5390fa1a2cbb5a892771d54cf79eb09cf25fb4ca1cabfc50bf2a7d0419972b1d377202a16501168d6fafc580109a5266b4c9a29a74c02a0adf54930016abf81d52651fbcec3937dab3d4c2e79dbc44b43c802c21d3a620e8d24ba3c675955647088b4df64270fbe9e4f92099f38bef37bb8175701b10e047744daa5657257d5045c0e9a11e31547bc06d4600da72494d6fac5d7c779cf32c0474884c17075361de0d73bbe235fc85108c5bea52d503997c3c12dac535f95e75d00bd120a6ff9cdbb38a487c8154ba9fa229d2d392565b28cba20d08a09c3468e4281b6a38872fbb230279df90966bc0a0f794466b306d3bb130332663ff51a289b26a032d0dc89ef1b3b4c0c81b9b04bc475045af7971b416c8a9daaf65ad84ceb3778275eb7435e6880a8d2f3d3221f9ae5b74f1b522fce16f1a343295769041516a490a5e2073e222b226267a9ad3cc7562b0505ca429347c9f05d05d2533dfa626dc3cf57245e5f64109c4fc2cc6c6d856609c454e034422505108e21bcd4cb410403bae47b8113ed92ae74652eb79950fc9c8d1c6f3151c70ebc0453e3a45b331c274c15276b64a82d9157682322c6b2af3aec75fe326bdeed0cf986aff789e00a147b84e60d4da9ba4163ba1b7bb6d3c32f570648c925c0ba609252ab4b6de91068abdcbab0e962c1754806797b04689ada13feeaa537c4a0b5c67c204915e42f4cd5a05e3bb5e88bf70c9f8a8d093da859169a019b209c5d538b423e5f3b451d39fbd9c38533a9dce4a96d66ded7dd322f31345721634a24855b8825812086131710c018cc5ea2c86ea439c5ad7e7700a679b3afcf5e9fd1bad7202e2042958254c6e0fd48f0cb0788ed9c2abd8299f6d8bd7746a36058daac6c578b44025a309b70f4872e0d781df7f24544f6d50e71c9cf3dc0ee96c9428d2ec38fffb4ef6ad968685d01624af54220cc4c70f4ca3ec8ce052849de1c715d772085d8e22b8a12941f46250eedaa0c063f6c40a8c803488a255fb59f7a99b1664429340654dfb073c21529f71be14bc42f573aa747f6574a05df88e44ebc61a4cb3599f234660bdfd6c95343ec3340f234306be47033df4a18fb433abcfcbde0ddd890b0cd15d87806a65d9d05ec17203288d08e1a0d87a93f8a09a528933e9bfd2ebed8c4a8df62d20bd128b0cb00f4d5da3520240ce9aef708ae2edd721d763085b65be16652d7c9edad73b700b25ea02d4ab0e18d4637d3a2d22619a12e92717ea8e3f276f8d4ebc03035cdd1a1ef30147be773eda13ee45df912756889b8ab8f567992a55d1af10278a0eb2b623b7b9f345e527f37a4582e24affcab2df8774ede45be50790d1e15b49d21bb07608d17eb315f16ca5069c4ec13b326201c03a4809bea24405f791982c318c9ecf26a26c2c54bac9d6d71546da25533f16cbe076e42c7c7f45bfa136c2363256f87268e8677f986ffbccbe86407ee40bad228ea65dcc1f795a7ef514c89042a50a25f9fe3f7db55f19827dbbfba3b79dbd5f47021c53d89c31581e764f0cda76d70c293c07d30106bbf19c00d3a366b5a109cf7fd62a575fd5dcc4fb73030e2052135f401668cc9bfebbbc61dcaaec111cc1ffe27e8a4c857be15fc72ce00cf65b758b5954caa8a795556111b9ef84d21711901ed722c649bf26ff9ccbf74f5c20a75741200d639c1e8bc79f802ca97e076324186f710b8bfcd569b936bb968a7e3f8b319216f839df4b01c94aeb580f3b7b53b65dc6396c67b6e8175917857b97856fc56ecfc3137f078a7e42a62b6d5769855b6d1ee9c534689fbd7709cd818d9135538c2f2fb5218f275eb7351c1d532d46fcae12b18d9f2fdd5bc939c08e9d64f7a6412d50598cf2da61d7ef14d98bec2edbf1b9535f63741d028d7c73bf3429eee78f120d0edefebb95bedb703cda4cce397d487e756950acf0ad92ff869b04b6f127c6583e4298c9889d2f815da2403f0801b2b979f30e22adb8b60dff13711f96367cd5ac712dcd01f28e08eca80f42ac1bd7819a2d0fc4ea02b832c638d3da2471b642d25518c04c0524f8bef229a4d980f4d21451e962509f627f98d12e1965c86f027a09772679002c58b2fe20466cd9feba13de642b9540fa8bb9137688bf591ae0400fba5a54797dd33253a34b9eae80d6a071fc1e688cc64d88500f02c51eebc253544aec566833d433733d9f19a233eac63468cb1d7ab25bc9e1c20cb985660b42c46ebbc4c0cd256728720cc40815cd5ba50048de43a00528d3b07ce8e1a1aec55d6db84b7d6f40fe18a0d701dc06ea8d25a6152e0729cd9a0422439fb27818b2ed7ec59bf93435d351963d890b92ce6debd9a1f017605ec2d37b82510caabc7e6938fd59e91f98d6f0d9a46579eb303867a757ea98f63249e80bead9e410aae04c6c09435b278876a41e0d9470e215baa2147b3a34fb1fa9a227e69f515d33a7d8b34885cd5eb385ae43bc2d9c55bb29228aad245de72a3be82fdaaab1882ad4e9bfaf971646a52ea8454777d42e2c8aefd7648aa05ee2758d21791bf0055eeab6348bc2e005ca6aa2779d43b915fc3933c000218a30f7b8267383911b3a921aa1cbd43ae2c2ba0941727dde45f80c763bf6ed8d352900065e9622cb295d48271bf65578fd8932268551774bf7b4ded08c751cc97c0ca07a5192bb541df7211781eaec0a8e5b8b36d62f63b820259a2fb483af58b31d73b5c414c165b5f1155bbd763bb0c790562a7d2f3d76bf79739c3c61d6ea287647b5fe1334256f1d5f905812449cf7e622e72f615a99d6504d67045ca12e6bf60bbf88b83feb507cd037c120c5f0ff4f5726bc8190735ad0075a4a9e71735d184cf0ff3fa341164fc0a5e3971fa143b6eb7f56307653e125cafbb07795ee0f1c9fd7da067cf6f27c3fdb0046abeb1dd4770dd6cc70ee78f5187386841040ee13c339aff3b039d0bb6b3f481e28a5bec8a2c624468e71c992623f16dff88a5fe7e54ea1f27075057ac5f94cff8f405f1cf0d137ee4c0c4b1fa6c770c9e443f14d633869415e1007138316e564b7f4db70b6af988e4f58a62e4ccb5756d77a50d9082546b4f6487fa8781f8c49e78380c7a7fb760cbf2c8e525e7fbb3d3f1669fb2402b51a1507a9457ae0469fd8a39c09823b02695eeab845375a912831f358f50bf378e294779cd695acfdecfcb57121e90618d87c5c399e088bdeeec1f7520b9e08c752f031b7c0571a3a31b9427e4f111c0d69c1ddf28de7ffb823bda0d3e60a817b93e413a82f9a70a200d089f6e712827d125b283bcbedaf276e580b5e6a3b49fab5a3845aa118d404d02d83c83b748836b0eb15a522652f02b5c4e7b545cb907b592f4e2a9f7ad3b6a18b7c62457cf3f6ea991d8aa18d7090d9aa961daec106aa3ce0df956794eeb3ec47a50b8c2096a5df131979733a738770ae822bc366e024bbf5617843317ede3f33b7b7a9f1597eeeea3148978a1121361f4ed71e814a15f550ce6961d0230a2f1ab9b7cceabdcf202145b42079ec8e7009cfd6bd655a04d8eef451ea0617d24887992661dae5c72be46d03ff1413251d6bfb3ab7075670a4fca4d0eb6c5c70f758a122689952c3a472b9e734bf231658260e54e271f1d996e46fa4633661233872089a1264976f87d99a1783b6c416f72057fe07643046bc9be3641283a284046a7ca5fdd8985b0808f4b36d60bfc405372ef453beb54a5ba76dbe388de44177298552922181a03b9e386c05a50dc354b641e2f0f4b04cccfe468efb7fa996fec7038b3f46faf6881579d5bcfd1314597fdc4101691c7fc37bd86a114d4e3f9a8a788fdd3583ef811844f3d2cbe218432f72e2099f6eca8d37d25ace94e7587cd02938a6d19e58c85aa471bef45a74021f18b68fbbf7709722d621c1630d7971e6a2eb691e5fbf56637c5bc4b500fcfa506312073e1c715a2528cc56914a05faa403bb51f92541639fbf23ee41d59d1a654318d54b39d5c673f40de741f5ba2059e0fc269d1d65bef02e69c6933a5e1f85b3d1e4828231c3e344418b06fe870e34a7610d0d1b97ff110f00f98a8fa0945b9dd7dbe117faf41cc7f3f7939bb800e821cb0a387d578b5cfe0f0a6d5a2a8237f6b21eda8c7fa514ff85181f739491d9c895e73b18564b3bbf50bc9f2a78716a99d65aaf8843583566a299c83f78e7f4486cda378343de9c4cb473d485e052f8c9363a67d81a7c0ac6e0f55cc25454e06ec7a3e5c8d1fc34b98878ba0bccbd43955ad785e3dbe9f73bbfe63b1c66812b049e2e085f8db86858e7bf50d519744c7b6c0cbbcbdcfef806bf6f4cbd38b9951c85cd569094ed98a4ec5ffe5adc17d3a40219c7dab2f2e6960422f8ef21df192b091f95e938ef8ccb7ae958f848cd7fa951c2e820e47420749c35405be088bdc41f296488d91671bdeed96af874e71795c394e930361bd2af1c8fb27110b2802af11410545d0d3c8f497abe38a497c595e7b77664ed5461f0bd9f22f59127eaa30876a05d60f9a1c064fbc1040e33eccb411c491ce7ecbcf6bd2159f6cab7ebd85b4716d4c1135e12cf6b83645651d7c6edd35b07ff1562a76b8b5cb43c153c4dcf734e9b0fa7c35597e03e95068e74afdfee30b3fea917de283add8b943cacbcee72ed73b2dfec664f246d8f6f2c285b47efcc907c37b404db59ca05aa55fb5dadf1c295a1c7324b83fa1ef9959fa90b61464508170e22b7dece44a16c573c6fee4110d5765bc7a5029e801ce2cf89cf9d024c1776bf729da8309e55ab837cf0b46d844eb12d5eba2fefddac2cb6cf4cac0204b66df26662dea648cf265e2f9fcda2a4d93c3916377aad6c1c05a877c52dc73f7ef2162c321be09034f6c1dcb231fc36811bf0b132f63d8ad2329f69457bf351590e3f7e70f0b67def5fefe29de0d0c020bd919ffe9bf73bc27cbe0d8ea683fcce702dc2bd6eb8b1281a4f0884725788d824a6170a2ea8919f4b1339ef1ae728dc08a3e9486ea35b5aa8a6c236d131c8af40872c47dc44ea7c2fb5d8d41610ee4574a7ba902ca20c5ed36a71365ec6fc41897b07e28efc4905a0d97f45cbf2452e702bd9fd18130fdefb958d491dbc1e77f1fb329740ff9f5cf565b4e9053d363f92745ccbb24dfdccef4ecd99fd43505192c5ed8c8bebca56f6ada309e00cbf1e878c7192f10dfef56afe0131134ff3442c34d98f8fee1afd741706d85389f7c4aec199bf3fc45e16c57b7d05296b7d754af2f11441c62d70d4526394629f9bec184e169ff9613dd08cf55e58e94ee3b3e388c1e283fe60da73313dd1e3efae77c4277feabc7f873991c49c798520dc2affb92a772253fbe8341fdf59e293bacc33e1fc3bdae8d8ce2069bc2a3e76000779ce34123d1ef57470bb6af763e308b23b9b031bf2ff5757bf5c88c04b9c90c1691d019e2f65e0007a97b112b6160df0c0443a017f701c2f2442a8fbf549a36fe9ed7861d7d1cfddcf7dc5f1a8e458a02aa8dd1091ae4a1008516e9482a39830b351107aea4c8adb200a1bb85c5dbce28a0074c419ea39b03e13300d283d084aefdd14bf1779b2478a74099bd46ac63171ed015be45aad85e1d1e5b1f71ecd1ee5a3232bf0b42d48a6beef76a28d5f28bca7538165007385508a1bbfba96c9ce0e58b1f12da226b23e7085a09422998f4f77b23d066204c52a96fc12589d226d872851a9c9c4c9e9e84a3da2bbdd8a3a6e58a78ccf287835f03a178a17833bd0de3f820e2428e01885774a91f4454a34e80c13e73921c7ca83c58055229ce27a60ec4207a8465becc113a3709a1ae5dc12ecdcace204c7d735c78ce0bcb7ca9c32637ff9d68fc5aebfe4a9d59d0713670460ea031238a2105c20f20796db5448f4a722d89643c0b5e2803cc1139c72007fc7c89cd824328f96bf04e7eec59f75f6cfde86346db450d2a60f448db03cfc94949e4054e21bcc9fe6da14b2c2db21f4952b4c85fcff3b72e0627898b009ae1d15cf768def56addf6a183aeee09e441986aa859a65e29f0f9a14d0deff2dbbb6cfbe69a6bd6232cf8607b4ba81c83ac1cbaa42830103a788b27bcfdae4c0702ac7204faf8eb012959c693d9e9143c165222a333f185f3aad049b80bdc2e4eccfd8eec2f8f01c039050c394a2095d13893f6a645df7dcc6a7c3954b47432dbea79cc50c858df1e32d62e3f4d5d26eac6f57b39353d3639c5a801fa7036787860548d806eef495cc48e00cccda6a4ce16b35d82da415b0ce5a0b8a40aeeade3ad52e159ec9d5546069fbb0ed05454fb4d6f83d551726551206d55eab5dd024081d426ed010a221fd9d1138448d70e8cfd0e009caa1cb3f47a220cc09e1ac1c227697a7a43aca862ea334f411bfc8e1766e024aa1e04c3b03f9242a0856b2de7c7db49dc235d820a774e69ecdfd2d2bf0f809007c1160c549ac93d39ce43c8fd64bd23c1eb20733bc4db1d40b5088cdd6eedadf3131c7c06f6f8b6090f4fdc0266970a7506316b54cca4c17ca320cd6b9081af3ce635ab1f69f0a51abe712e01254ee4535f3cf78de3252bf689ace9fd6f3b18c329468352506a23b1105213696a57d9bf1db1a466b8be33b09db1758d7d2b67334052509bd665be579ae76044bf5e4e7873d8de811cc19820bba3beb120722b3ce70a0d579335709dc9fffcdc92ea77af46d8bd62bf9bcbb2d0fcd4435040f644c15fc89ee729fa983fc825351cce39804b47e79d6b663015ce7dfec4b7b85a7f0b654e20f4f45856470707bed73e6a6072926d4d050f079550e3e25d8785c8c7f8bec638d8141262cacea4e5f36072ba892effc373ee8109cc211438a156a463ff7269cb42417e7207b5f6014179cdc60a6843054afc3a9dfbd188c4c86f02d8f7fa2098a8649dda2dc4e9a87c12a22202cfc925c38c87739d58ae607c180c24fdd64767e45ad0a465f8252134dcd17b49425d690634e3acfeaa004175c5504206dad080e2c5f396504a123bfb66caf21564a12cec8c577d835796b2f4dfbe701a9a10421d729a4bdeff2e9f777378a72bd393fe3344e27a1a97d4c10ade942ad4d0d75e1784c3798ac48a6376834989f719d03d5bac42cefc307c73d2cb7334a9115e14944d446fbe05abe51f2f9479af666bfa66e96ca87e33be7985084c24c498e406f19edfe9fcd79d7e8047ee180a9385ab2ba68e87d7f9256a97dfe4cf051bc1277de63e30ec205c4171907d6d416621be53e52e0a333609b5173451c036ac74ac50f5018e0350874af13c094c0706b15d09de8130d8c25d3e0b1b364edb137bae3ee4f719ac46dac4868770f8c198578ecf73180d3f38ae787cdbe9425df16259f681020ce783e349fe6d3576e2b9361223e43db7e48c95ca252636b221b9d4040d0fa5eea91b5658e92b6a5876e75eebef55aac3261762360124d42fd8884596908b87567c274c060b75deb1a15960d0c948a42a74287d55311199ed180b172a1a0c855aa2e43541516879fdc3bbb0bb7ecd637fb57c5dd877636025ef8bc38722f97d493e504824f882aee33a4507b13a6978f4e4b61aa2a203f56a8c1a69284f9a820df4a746bdc23663f39985c3dce18e1b7f6fd95d1b7e5ea31bc2460a12287cecdb589eecaee0d9eb2752cb1ae54024bc54f65c049fb834fe3d48f47a298e9892905c6aa0bef867ce50683586123502f9a7e5e45b854a297881481869bc035742f8432854bfdf78036ad0d76e9b85d88c93730c0d746c5e4deda03192c1d045ef01f017d9cdf696b1c651022a221a73053c2bb2c3796372c12b97e5ee62a53097046f027eebee95a836b5c1c8c1e81a47f84af8103a55c0a3d5c95430dd8e8725599e7ef1ed37f8bb69d8b494592ef49b8afbb31581e5ed7ca3faa430f272d812b91d4319752894ad7fdeeaf64defbab0e3dd18daa8ce5aab0d08087f1a885b34c1611ad80e7af24d124c04e0bde5d259ee925ce6120c7095908dd34ea2859bc4100a761042734c56289edc7e522a3389a2f6331aa337a05883110ab0e73f31f4e98d67055b2d8e0fd49adaf89f3897045f8adfc2f5a9f2223ce1f45e1b4dd225150ad032be70e0d12930e1e72061721926a85b47b8fe787700d2bf77a3b034b84c07fa7a2b4c289c6bcb8110be582f6e02f7866ab44e072beec22e34100affe6315f7a39eb4aa9801c5c63136dde859a3820707f1271e24ba5118da62ca07638141bd5485304a4d042eef450a82fa4a49c37affe4c0f4afc0d5e36fb420c2e3e56d6c05371bd64e91111d794599e6eceef29375b79e32a5c040b716b5f0e9901893d17d363f9da18904001356b0a6e9d261f42bc50caef734411589d49323f70b91c3f8bcc8ae8011a4009466e1392cb760822721c39c6c2dff7a161a0b97ac7633efda4f154f6040a0fb78912f553793171e2b4733f7403b4cfc8969b33336fdb4770101a108a94c0470df25d6f5c2198742fc68e976b58ad775bfeb2a8ce0d065c6254c330913d0e17a7b007f84d4347f3545343d4fd2ecb623c81f64a058915967b1d89dc0a1867edd077ed0ab9a06562e4859c2e5ca2514fb239d8493619ba71eef7e2d0246cd447323c84a669aec33cc4edd3061ec7ed040107c3431f0c8cc07e59526b0267c1559c79f6e36d48dafef4a4d6444e91cbb4d8aa46bca55d837cca41b9bb35f7957050edbe225abb5696d4373ffe696255490d1dc17182c685ff8678d7382a85ffa7f10ecbe3a9ed084dbe8d45bedee6b4f910cf07b999ac1a359a5dfcccb41a1cde495b4258b370f52b01bae6788a07e7accd5b99dc8a0b657f794a8231640cadf72c20e65af9f0bc20088a24499aa625aeeb36cde77f9ba3c4ef35806364abbb387d5b9a258a896e2a38bd39bffc0d30f46f9b5eb1420c2cf756e748248296bcf4681e229cf5c9b86acd53351ec3d54f37454fd96718052f62368db591003294d1b8c47bb91150a8e40e77590aa823a53f84758a7fb899e6797e454345790d2f8e717099039158836eca11e59e3a1284e03302ff7530f10785ef5e1f6d6ea78377e3bbd16ea9ae7c6cc5503c4b34bfeb44519d209a48d155a5104a51de5da05594672a58d2d8d7a8459bb4fbf5e5e5b1e647e371146d7e0cb4f06242ea94ca63cf9870dd762f4848eda03522e90fea4059a666f0dd3b8f76956acda6a80439c93fa37564f0254428ba3516cdd3ecdbd6fd2fed6c8d9db03dbcf5c3bde0ae9a2acce0222bb279f7f6951e3c154f0a5e8e77058df199455152abb7e10a2939bb2a2218cbd1638ab3dd83fe2e9977ab2d94e842c72a5f08d47f4c44363f249e0caeb9b3274a7ffb98494123bc0264c58ee3377fc5998668f365cd05703f0c45c1ecbf1fc266bac186eaf85aa6b8985e4b0b25c8943f081724a533e3a0121ebfb25058b120cda70b922e44dc91c414bc3731853a82ea0abbb94f326e6718b8aecf67f6cbb9c65b06ea9167efcbe8582cc479bfc360cbb8290cdeba3acc26b3e9739065bf43f363d8bc5df3b64bfd5511f333dc978e423fa6519426d0bab46dfd63ef1979619f1fcb597b2934c36cc25b4dab85de89cddb204a2ee8f8b2d91fe2668cbdbcfdf1b5d248eac1d7e79bc35ceb906766faebc19abcab2aa0ef4f78b87119757bea6c04ed4bdcb73dee3bfeb1310f43c1478d33115d41a4d619e3d3d4ba8f68a77619c0e4fa85dd040fff7b46eb52d120d60312765874f5479f0d90ebd6de0fa9ded1ba307d120075cd483cde4e0bde94acfc8f2bff890a691a31c8c32f116efc3e669ba2589c6bcdc2fe099cb25e4fe125328e7fd66197884a8a449fd42f6727ac174fddb0523a8299e435a33a90a3f94223577ec697fad528ec5e93dc78e242f410aa3c849c2f350e19b8d1b676d7eea69a39cc929d5be0cae8f496043fa5bbe639b34f8dfbdc95632acce18af3cfb78c561ca2b00b53f7458539743e0d513c4483f3543b8c0f2d9cd07555489190454cf5de8707d886f6562fe7360ab81248ae4ec6b0f39374f26fbdd173e163272e506099c2e55b20379bdc2d4295f57b319a5713be95e9a992e795960d917111e5ec298bcc16f2399b098a973cf12c7799ecf77ee4e0525e04d8f8a3af150c17dc7644de7743f99f64c40c524c5a105b9d1b3e22e477865639a83479a8f2daa532afc2b68da152ae378ec9683dd9ef06167223b002fb697d849b3f531537d6f3623ea7cc5ce3f499a5dacbb0772f635e1f2cf879f1dfefbddab6eb44f08048b6f40623249083534531bd797b3ffc6710c813765819eb53364f70a0d815693e570479327f8bf4b6f48b22dac58ebfd8e60382fe9d0143429a03646dd8c66176f674e096353494f45ebbebbc44f22919cad023db5314b61391cc333eb0137e4526e3737238c2a788853eb84481488313f2b981369f2ffc4e984e3cf7cb0e4abbed5e9a2c1dd7c17203fbb3dc7d80df7cbcb9b2e690515111366e04e70307f1337215f7ae3f3977bb30a105d3e8b0f50d303a6a133de15b7c40cdd7c517120927ad4d5ef3a42f37da89450048f9da3d3d65453bb368c8555c23f983d741de8f56f0bb11b6e2a526861afe9e71c8a3ea956d4fd5d6963fd6004d8971af107afc452eeca1cc798d34e37ce21a5fca57f44b088bc5956d8940280ab845fef9600c47a8e4e07f2516eafe7933a657848606499d75faa38c5714ca978a79db79a0af4b2221ab3dc438fb206533785c80385be51000ae7c04c5aa5389ff62f0956fcad57a2199277c26d27d56fd14691bbcce15f126804f5d53bd73bd2e0afc589f4e20c947c965d367a0246893cb1af06a9fbcae32745bb274558d689ccf13e8ad2189f8ce2337ea25e941d7294f07af40e019fe9a1157e93b336285241ce18230f6bf1fd6853e8786cb0928749afed782d2e4eb70614bf98f7dad425db94e073164c1cd21ee9e8d2a3873b2536ea2e5a60e23c214698ff64da834822df247638843ccd0777c4917057768c7f4d70da8956c65eb7d22db64590d3e3c514b7fb14b467ed009b58c6547c469124d2ccddc55bfdca55096183b506ebf62c163bec2981d271027e57b904e22e85048ffd5e06d903209f30993dccfdba10ed7db663d2d53105646f61daff0fe41a7bfd27076e55b49999129a0ea7e6e8d7b438ce7e678e86ba691348d70084d126ea840dee71358d7acb00906314e008cf58bc818a4e87a33c7dcabfb41036d1ce8279762aba8e577251452fef824493e08ae48c5ec47835691d8f66468e64d72f6cf806a90c205d60d14d84eed86df25be0967555f908b751c68afab6654883428e8720973e2423a74b4db78bb13483f6af8c5cc583f78430bcaeceef07735d6a75d41474ef8586b04846380ec9d5a758441d37ea1ba59f58b23c314b948f7f75966bf4db44520417a294bed69a2fcfe59e4c78581cb8f9fcfc6b4897a51dbc6f72eaf91a4c25aee8220636d8c5889ea233fce949149c763c80b2479547b7e8dc1724f67b80241356c6741bedf7da9812f84be4d0c07a28475f141e8307dc3afccaa854dbe1aa3f23f0c61bc311dd53d42caa7ba5694845f27e9faae129c8b70342401f182c34ef905a2833931753d8c3ee55324af43d33bf9272f14c89fda89247d6ce9f4186146de240206699ed59a5ff32a6a3611084b3a3483e52587d4e7316fdb4f07076e66fd8b9e780946613d5fb97bc308808932940cc5ec79d12cfe6cb29546b76654772cf00958958dc028f368dea276cddefc97e3b82516972553d43ac34a78aefc87f4509a20ff12525713a96fc1c28dbfea250bda5b7a97a29f7ef5119a1f7930f9a811c9281af9f8cb6b327640c14361727f8789f2e0eb327e870ff3a312a50652a945cf7a6dfad0c8dcf6223a87946835f45dbe14f84dfbfef9c68b9add1594f086aeed3ed7b19f8d82997d0b4e4ded0ce56d2fd083901f2cb0ab7599e26bfdc832880a5cb568eac7b1ef702f03cdb93e6585a58dc5cd4601f5a6f57aa51132281979f73b705af8f5e2d2482e841e8f1e8545a0eb257ffdfd6785c07b3e76267acd97379071c50d132e1c64caac51a644bb7f32f58427f8cc885268c5c05d47a1ae4a94920aea57f09ef84ed286e28aded8b68bdc7d35505f69eef2571a2f1a4ef908cffd403f988c42a254d1b8be4b51b8e305edd2278976a7df018df0acfe39116fd6210ca048250da715789ba29b83e62d1d3bb1231b7d408999c405ee100c837cc0be75c309c5aa1b9362a8ddf357b9ec260fb3f2cf07f4fff7c125f689db882296d83dafc166f3eb49db346192dd77b475bbaba4fc83048dec0f888037ee56a14dff3bd851423f4e53983a25f950921c5c38b4a48c3655e8e4446a0fc15ba3e98bc1725e0bb80b7e2c6d28b42589b566033ac3f2a6365593ee0de77fae90080d456f08eca42dc5572478846d1d0a6f20cdf4ede530502e9e16c9c645894159f81159df66d2d6f7b3180f3092e20d3ba81d2a756f182fdb0e2b655ae73abe404ad1fd14ca8d0745f39307281ea8607e3d1c46dd6eef9716b46d43a577d42159a4be7856f1df501b854a59507e1abee846457ad444da6da3af614bd3467303580e0a10e80681c1750d05b4ceb0def541099e150de26e816fd89d8aa84b3f51d15ea7b5b42424bdb49156675699377432b188864ce233a1a67f8d7f90fc448890a013af65f676b785dd5f2f61c7a9a678c3015e66bd5610ff660e7ad8190efd46952eb9a65e65571816abdef3276bf40fe78aa4f975b3c6e389417b35f0982a1e1f97604d2bfd1b5bf0e54281a2061d2ba482b7543782078f373f29ed3857275ecf2657d0f03218727cb0086e6f34fa205482fed2e046a9e644a529444cebb9b4c987922ff0595351786248a623d0feeb8d5fca6b77a1ac69cf2be571e146b0af210955448a97f385ed1062303ada66eba070581d388757abb31093f8d5b333e843438a48f11b3334436b9a911661b80bc2f7f7ba3f48c1c09f2b6846014b1e6fb518960e49b6c3641dbfa512bbf731ce339ff8c0e9301f4e825633c8fbbb26707c6516753a9464307a6dd861236bf01b603c5910bc297cb4a4914ca451c5de2a640b7e097357583447b366e2be5ad8fdfbae1c30847c21e405976f601f5dbcc8c5d2882797fca4cf3c466f776a383ee198722a18bb11a7a10b04c00b0577265e0153d61d9b5627f914969a96917f9485aaf48977a335047c91c226303b8f6f4cf42d6d0f4687c11b7a226ee357a0edb281da4b925141d5fa57d13dbfb07b25427b43df4d8b1c77887c68a4094ab67aca3409d7c69bb28294eb189134716294f7558a82e1c3f57712bf7b3b1b4f4ba1aa69c65e7744911562c39f76f0880576948f409e0389e34c45ec5871702b82e138f72a3ad843cdd070b1b517645ae06b823ebaabb92bf1f6101dd09c04c1de5ed1c0a4aafebb31cd4a7ef3826dae10eabf55bf03175a5061c95fc5fc3f56cee3057e1fdbf2fbfe2b7a3b98c1a1ecb23d4d2f24e76c9753b9768e728ee55430fffbf0fdf534bc65f37817b411e820740fe2b338dc4c929bf9a8c521d066f011cfc2edc25394601abcd10a642c5b7fed191e4ba942dd0d652267c1b622d9489072338fa0a83b4fb434516b6e35157ad3b3877ff5a843061242a05b02e57c67ab8ccb63362bb02da1022efd89f6188ff13aa6365bdb58da26c69518d7739b4600a91da8938756e12f0faa7267a3d97395c447704683d623a9fdf3b93df1bd9dd0db04720a8c9a213be08cbd92bea7789266e9a3f4860dc4d57c6dd0bcc16583220493a8859ef8860e04a7f5d11aa5fb4df1d7e514d9973b618369e37a4b31962a3e5ae1482de07d1e96611db3d59bc88c912a9a269e8067dc86b75904a08110640605162039704621f15492c092ddd37d078386cd910694808485ea9c76ad285e72cab7c0cff2052e2068ef87f46898eb8b5b79411be288c42b072b121c21a829db034c10a6cc0358b85ad1345b510ffcb57b5980cfcc002ac9110b450bbf407d9e3a4b98864843d59938909d6a4dbb3a78634f2002991302407aa01b1931d08f76eefcaed73dd0f0c353a78ecf8fadeec2b9bddcd6ae6106e159b372e1e999fe39d75ed7c40357cc8dba48473cda167a20427a077a0d36e42b81ba5e7ab8f0a0cb5c27dfdb24f82600c525a63f3b9f141aaf992c6b0d709caa984f24f77a8094a8f3d587a9539d42c1f07ff557f205d0027dd10b6397a4209f6fe9edd02ea6f643472c2ab7bb182cda3da828ed972ba56f0c119b2d5896845f4f7b70d7cdf93b0d084d0c98d4b0c49192b59c003d10b50e291d6810f403201a97ccdd50a8a7476b90619fdac07ba5483b4e6600239ea2a22059411ea0e1e0565f20d9d6e4cfc64b152dbb7907b973022f605264a22c917fb7eeeca83aa13d76cc31c9c8d712e8098cd062d560179e05f5e13dbedf5bb4214870255935c90e20a6d4c2c009a54af2e5e39bb93f377efeaa8eccf3c2429141309c6820c5f3ac4c7e721471fb6933eebb38d2ca41b1df24ac1da8350fa05213fcccaacaeed3d34cc54878f6fabba0d349d06d00f1c96e043a84815ea65f37abdad442048e034312b139e801d074ccbe7ad810029e776f457bc44b0ce83f4c1076110086f5c8a04dde38bbe9e14830fa00ec2cb3914689118b87e9e1da4921d0ef028fffc5b3be1226a91637fe8b35141b9f50c5938fba213476d3e3cd5163c9137939cb5e86d566428640cc2759a911cdc5a013bb0e4fb208d17d6cb07624fdf6147c3f6102c9ae19b2a0533a88bd53f99c5c935a6389f75e3c1092e26b0031ebf983ac1cbe236277f5ab7b4898557e5e5ca4e9d543a045c57bc9196b9d10bf3be8e8677aa7afc693ddc2669f5400065082c38368b6f9ba77258bcf4f0ed72d4f10070197e5ebaaf1d225ba828383a35204c652aa0b2a6912c57bebeeb400a307475a66f20584b0e3bdd76b1eaefc7838d89ada735727b0be5ca05334b86519adc0290a1dbf2d45e0acb3e266649ef9bb278bf7c860d8efdd944cc2146e5009c6924ca430a6bfd1e7469d76d441954c42202620283a8b4606aa2e11bc71728d10de6096e8fac164d080124c8178521bc87f64dfd11301b5717683d2df44da2fcdb3e22e649e71c94ae32656e0eaadde83dec70da5b04821d6965f27f7ced3faf30640d6acd3b2bef3f964f1dd98c477492e8362b5bbea0aa3d081217f228130a73f9cb85deec0e73e015cc209a22e8749160d4a97a853ddd78182dae4524f2868cf766a13593a4867df9e5c34bb01e72061bb612ed9bf53e77a20e58ef2a9445903ef9f82472680f2abe33c26d7be299352ca2381a62ff8f34e37b47fa36caf79042c50d6afc44d765a18416ee397146548b9d71087f83583437884cb48db0e40b084b171fd76632a8e96d9c4f1486ab4954110f56b3f6f9be80bc6963c25511342e88ad166e92a8a553e62354a2f183e18947b133715973ac1b288a64575d7012b446614e0d4d46b52240497d047cf23aad4f7175ac728191f3266ed5abd8348172798495e01f3cc019da7e7ba03d2e1ced2f479da5ec5e59eee19bb3a352f0cafde40b02cf3f9e13094a2ac691c5a4f3b41c3c2d136e35f551e476e263eb3b292dbf49cf40650d0991394c7dbd5531092546c288770fef19aefe9defa4a2ecf098d5c01c226fe6ab08bb9be863de1e2db3b245d8a005e9f7e3907d1928301113eadb80937c7f5450707b9b397899b8b312135846d4cada7920f979deb913d934731e4bd80dfddc3f815547e630c3f5eacc0a28fc479b968a5ed5b2f279e2ddd11c731b4e129f080d91ae022b71bb9eb905a09e4e7df4ea520f40adc00bf6752e6c0d581288a8e12b23ccb93e20431351d301beb817cc292d6b678fd6ded4f9bde8b9bebe8744d3fe7dbb376c024f4fd0bdc2982579cf80ccf9f8a7989c2864d1cade53eb2be653da833bf1394908bad50a1eac553afc4d5819709d1a3df4592bc8e953bbeea7645585cb55e50eb2eb0e98c4a8094a1dfd2a61f0ec924fd21c81ff7b3ae3c7f2191968bfdf551c392f44f71af9c0fae65edf643a13a3ab48eb57df31edd932c8bdbc10ea75302a94b4cee1d8aaeece5f022b2455cea1085a7308fd9c7a357450523987442e0c4502b156a940d18815148bb85e7c1f12b460f2902cc2595f94c794680f53c7a7bf48998d4cbbee45a20420a24fd08c422863538d878068a84e06399d49772f8a003c397d480beda1fc9149e1cdf669a278c46866342e2ee6f04c7537fa2eea87c0f89a067f573cfc95729dfdd6f1c314d1b8854cc8abfe6228f89a4e4e24d1c71a574220c767ef62ffaf4dc41504e458b3dc1a11a0f4845f4200a21a2f8a901b0529700d7123b7e17412eeea1e834a7e7f84e469d3dc39b8696389b489d692eab7350c2cc279ee8618774f5eac9aa4d8d657b2bb5e9a6a0001b324fe322c101bc8b97a487384fc883b96b3f0fe6743d158ffab72722e8a2d031499ece20f6ccf111fb3ae556b4b1fd074231fe39be217303fc791ce73e5971747594f28b5332ee2d60399f69effb4a9d782223087b1e8694911be31824ceeabf9f2023baefe95e2145f1b0a2133b392bcfd4d87eb0f2c57f81b51df3579cbe92777ceeebc43f2e7ec2c43e61f9b1faeb6ef014022d1f6d16c73235b8be3e0d4f4b2ff3848834e7fc462b167c033efefd54bcf5eb945c61e932cd053411e7abe32ecdee27bef7e55550881536a52c62efa7a42b15230d69f5f0fc71433387ad22888e58b741dacde8690ac6c38b703249dc093005c67ec9cf45f112160446f1921aee5bbd9f020f5d384abb0c9d7b1b3f75ae8bc80792c4dd6b3cc63d5e2ab3e5fbcc646996bef5afe5f6db808c0bd8d2ef933c05c27e68404407cf8554274a8642b0cfbde581ce9a4d4460f9c4bd01bc84845ab2f83d4a84f0948c646eaf345080afa45f319033d995b2b9b1c50efc044f427a9ce0a492bed353f5b8575caf834a184c33b2b2833d3d03085383a79b64a60237ed0981a33d2606599cdab4250eb25b7f14fa4d8d142a4c18225354ab1488a1a780f31744a77314c0654c01015dc58c95a9db31ed71545d39a054a8da9fefaa76faf47308cbd506afff389430143c3796ebf5959f5ad2d6d3cb0c3d239480fbeaf6b38b9620ad992a4b128b773695d864569e17666a7ffb70dc2460f176931a83e4786e2181d5bd652404eee57a907135e45ff372053c5be2b1f8caa12b7bc2bbb5a728aef5b95a12c5d3da85afd3a6dc0253cb0e4b353e9e69b804dfaf03117904b690c13456384f0827ec8dcb79ae346b0faed299c22948847556652f34c372a70b758645f829ec88f0a65e1d44844592224c1ed240e72ba8aa2e3139d8c6109c4548d36452de9cd27473f1f5c0fa34f2f271a45cc51d0e55fe861ff00025310fbf51bb659db512c7172b6605c6555224afaa2e2e2c7bdfd78f6ff310e830ffecc72953feb91f71c54d55389f22de2d7c74b5411c61923a1dc0d01ad3b58009859d56ce9733042a670c9c7b7abb4a1c9fcfd4e5d3028d330a7c9c97d184afa7307e28ef701f0b5daa4c5230b541eb2abee50d2f49ea31b192300321a9cd10b0f59c7f95066fd53cb819c29ae77bbff6d1be10a586cbb3e2c16aefc3b4df0ecbd378951d17276afdd60445beb87a457d3d102e64fe19ed5160eb94debcb1dd77228cdfaf5e1b1ce9e0b971607ebbb7adf16ce244dec6c6f0fc5675226acf83f3b892eed6402fe57664563d758c7099e417fa091916bf05ee89b7917e137429d316f1aa6d7a79b3e99d7d8f176e6be6fc0df1e9973957edca7d85d7b5ca1af1218dcb127f8c65a06632557365b815aa6c87963a6e4f60737bfcdc8497f9bd3110bcca75c5383ddd2162ab8ae776834e24927cfdb897597b537c895175dde1f2e555866666de830bcb7ee3d5fff6d62c265ffcc539f3541ecf9da4c8f649b0f70b84392645b628197354d53ab21aaceb2dce5dd073b5ecf143a239edf18497d6295d2797c295c2c274c11a24d2b8c07c6881131a2e3b7de9fca19f6dfa31a0d84f8fc8eab200efc2ba07b2c1e01148f3649d96dcfb501f0e10b1756360984a0aa0b4c25ac983bbcbf96c2cc5407db59231f1cb6f07edac3cfd650df090add94f4eb186a3e7b2c27a18a4f5e693877df9c1c531776913c23a9a882f9a24f8e429c031109f86459706ffdf2bc3b37f875fc0ed62a414bdfea3f48b5cfdf7cefda75507042dfd7f7d6ee4bf50fe1f958f528f73e0bfe4252cdadc1c85e0bf5600fce93dde76571d7773fed981fa2b64a4b5d31142fffce7fffac7dffefef72ccd3bb44efb58fcefadf995ffe7eff97494eb3ffef67fff5f000000ffff8a71c36e1edc0200")
}
diff --git a/lib/renderer/webview.go b/lib/renderer/webview.go
index 8ab31a8c0..6589d0fb3 100644
--- a/lib/renderer/webview.go
+++ b/lib/renderer/webview.go
@@ -58,7 +58,7 @@ func (w *WebView) Initialise(config interfaces.AppConfig, ipc interfaces.IPCMana
URL: config.GetDefaultHTML(),
Debug: !config.GetDisableInspector(),
ExternalInvokeCallback: func(_ wv.WebView, message string) {
- w.ipc.Dispatch(message)
+ w.ipc.Dispatch(message, w.callback)
},
})
@@ -299,8 +299,8 @@ func (w *WebView) SelectSaveFile() string {
return result
}
-// Callback sends a callback to the frontend
-func (w *WebView) Callback(data string) error {
+// callback sends a callback to the frontend
+func (w *WebView) callback(data string) error {
callbackCMD := fmt.Sprintf("window.wails._.Callback('%s');", data)
return w.evalJS(callbackCMD)
}
diff --git a/runtime/assets/bridge.js b/runtime/assets/bridge.js
index 9c786221e..5c2f73ee3 100644
--- a/runtime/assets/bridge.js
+++ b/runtime/assets/bridge.js
@@ -14,7 +14,7 @@ function init() {
window.wailsbridge = {
reconnectOverlay: null,
reconnectTimer: 300,
- wsURL: 'ws://localhost:34115/bridge',
+ wsURL: 'ws://' + window.location.hostname + ':34115/bridge',
connectionState: null,
config: {},
websocket: null,
diff --git a/runtime/assets/wails.js b/runtime/assets/wails.js
index 535a917d2..49082fa5d 100644
--- a/runtime/assets/wails.js
+++ b/runtime/assets/wails.js
@@ -1 +1 @@
-!function (n) { var e = {}; function t(r) { if (e[r]) return e[r].exports; var o = e[r] = { i: r, l: !1, exports: {} }; return n[r].call(o.exports, o, o.exports, t), o.l = !0, o.exports } t.m = n, t.c = e, t.d = function (n, e, r) { t.o(n, e) || Object.defineProperty(n, e, { enumerable: !0, get: r }) }, t.r = function (n) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(n, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(n, "__esModule", { value: !0 }) }, t.t = function (n, e) { if (1 & e && (n = t(n)), 8 & e) return n; if (4 & e && "object" == typeof n && n && n.__esModule) return n; var r = Object.create(null); if (t.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: n }), 2 & e && "string" != typeof n) for (var o in n) t.d(r, o, function (e) { return n[e] }.bind(null, o)); return r }, t.n = function (n) { var e = n && n.__esModule ? function () { return n.default } : function () { return n }; return t.d(e, "a", e), e }, t.o = function (n, e) { return Object.prototype.hasOwnProperty.call(n, e) }, t.p = "", t(t.s = 0) }([function (n, e, t) { "use strict"; t.r(e); var r = {}; t.r(r), t.d(r, "Debug", function () { return u }), t.d(r, "Info", function () { return l }), t.d(r, "Warning", function () { return f }), t.d(r, "Error", function () { return d }), t.d(r, "Fatal", function () { return s }); var o = {}; t.r(o), t.d(o, "OpenURL", function () { return y }), t.d(o, "OpenFile", function () { return b }); var i = []; function a(n, e, t) { var r = { type: n, callbackID: t, payload: e }; !function (n) { if (window.wailsbridge ? window.wailsbridge.websocket.send(n) : window.external.invoke(n), i.length > 0) for (var e = 0; e < i.length; e++)i[e](n) }(JSON.stringify(r)) } function c(n, e) { a("log", { level: n, message: e }) } function u(n) { c("debug", n) } function l(n) { c("info", n) } function f(n) { c("warning", n) } function d(n) { c("error", n) } function s(n) { c("fatal", n) } var w, p = {}; function v(n, e, t) { return null != t && null != t || (t = 0), new Promise(function (r, o) { var i; do { i = n + "-" + w() } while (p[i]); if (t > 0) var c = setTimeout(function () { o(Error("Call to " + n + " timed out. Request ID: " + i)) }, t); p[i] = { timeoutHandle: c, reject: o, resolve: r }; try { a("call", { bindingName: n, data: JSON.stringify(e) }, i) } catch (n) { console.error(n) } }) } function g(n, e) { return v(".wails." + n, e) } function y(n) { return g("Browser.OpenURL", n) } function b(n) { return g("Browser.OpenFile", n) } w = window.crypto ? function () { var n = new Uint32Array(1); return window.crypto.getRandomValues(n)[0] } : function () { return 9007199254740991 * Math.random() }; var m = function n(e, t) { !function (n, e) { if (!(n instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, n), t = t || -1, this.Callback = function (n) { return e.apply(null, n), -1 !== t && 0 === (t -= 1) } }, h = {}; function O(n, e, t) { h[n] = h[n] || []; var r = new m(e, t); h[n].push(r) } function E(n) { a("event", { name: n, data: JSON.stringify([].slice.apply(arguments).slice(1)) }) } var S = {}; function k(n) { try { return new Function("var " + n), !0 } catch (n) { return !1 } } function C() { return (C = Object.assign || function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (n[r] = t[r]) } return n }).apply(this, arguments) } window.backend = {}, t.d(e, "Init", function () { return I }), window.wails = window.wails || {}, window.backend = {}; var j = { NewBinding: function (n) { var e = [].concat(n.split(".").splice(1)), t = window.backend; if (e.length > 1) for (var r = 0; r < e.length - 1; r += 1) { var o = e[r]; if (!k(o)) return new Error("".concat(o, " is not a valid javascript identifier.")); t[o] || (t[o] = {}), t = t[o] } var i = e.pop(); if (!k(i)) return new Error("".concat(i, " is not a valid javascript identifier.")); t[i] = function () { var e = 0; function t() { var t = [].slice.call(arguments); return v(n, t, e) } return t.setTimeout = function (n) { e = n }, t.getTimeout = function () { return e }, t }() }, Callback: function (n) { var e; n = decodeURIComponent(n.replace(/\s+/g, "").replace(/[0-9a-f]{2}/g, "%$&")); try { e = JSON.parse(n) } catch (e) { var t = "Invalid JSON passed to callback: ".concat(e.message, ". Message: ").concat(n); throw u(t), new Error(t) } var r = e.callbackid, o = p[r]; if (!o) { var i = "Callback '".concat(r, "' not registed!!!"); throw console.error(i), new Error(i) } clearTimeout(o.timeoutHandle), delete p[r], e.error ? o.reject(e.error) : o.resolve(e.data) }, Notify: function (n, e) { if (h[n]) { for (var t = h[n].slice(), r = 0; r < h[n].length; r += 1) { var o = h[n][r], i = []; if (e) try { i = JSON.parse(e) } catch (e) { d("Invalid JSON data sent to notify. Event name = " + n) } o.Callback(i) && t.splice(r, 1) } h[n] = t } }, AddScript: function (n, e) { var t = document.createElement("script"); t.text = n, document.body.appendChild(t), e && E(e) }, InjectCSS: function (n) { var e = document.createElement("style"); e.setAttribute("type", "text/css"), e.styleSheet ? e.styleSheet.cssText = n : e.appendChild(document.createTextNode(n)), (document.head || document.getElementsByTagName("head")[0]).appendChild(e) }, Init: I, AddIPCListener: function (n) { i.push(n) } }, N = { Log: r, Browser: o, Events: { On: function (n, e) { O(n, e) }, OnMultiple: O, Emit: E, Heartbeat: function (n, e, t) { var r = null; S[n] = function () { clearInterval(r), t() }, r = setInterval(function () { E(n) }, e) }, Acknowledge: function (n) { if (!S[n]) throw new d("Cannot acknowledge unknown heartbeat '".concat(n, "'")); S[n]() } }, _: j }; function I(n) { n() } C(window.wails, N), window.onerror = function (n, e, t, r, o) { window.wails.Log.Error("**** Caught Unhandled Error ****"), window.wails.Log.Error("Message: " + n), window.wails.Log.Error("URL: " + e), window.wails.Log.Error("Line No: " + t), window.wails.Log.Error("Column No: " + r), window.wails.Log.Error("error: " + o) }, E("wails:loaded") }]);
+!function(n){var e={};function t(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,r){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:r})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(r,o,function(e){return n[e]}.bind(null,o));return r},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){"use strict";t.r(e);var r={};t.r(r),t.d(r,"Debug",function(){return u}),t.d(r,"Info",function(){return l}),t.d(r,"Warning",function(){return f}),t.d(r,"Error",function(){return d}),t.d(r,"Fatal",function(){return s});var o={};t.r(o),t.d(o,"OpenURL",function(){return y}),t.d(o,"OpenFile",function(){return b});var i=[];function a(n,e,t){var r={type:n,callbackID:t,payload:e};!function(n){if(window.wailsbridge?window.wailsbridge.websocket.send(n):window.external.invoke(n),i.length>0)for(var e=0;e0)var c=setTimeout(function(){o(Error("Call to "+n+" timed out. Request ID: "+i))},t);p[i]={timeoutHandle:c,reject:o,resolve:r};try{a("call",{bindingName:n,data:JSON.stringify(e)},i)}catch(n){console.error(n)}})}function g(n,e){return v(".wails."+n,e)}function y(n){return g("Browser.OpenURL",n)}function b(n){return g("Browser.OpenFile",n)}w=window.crypto?function(){var n=new Uint32Array(1);return window.crypto.getRandomValues(n)[0]}:function(){return 9007199254740991*Math.random()};var m=function n(e,t){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),t=t||-1,this.Callback=function(n){return e.apply(null,n),-1!==t&&0===(t-=1)}},h={};function O(n,e,t){h[n]=h[n]||[];var r=new m(e,t);h[n].push(r)}function E(n){a("event",{name:n,data:JSON.stringify([].slice.apply(arguments).slice(1))})}var S={};function k(n){try{return new Function("var "+n),!0}catch(n){return!1}}function C(){return(C=Object.assign||function(n){for(var e=1;e1)for(var r=0;r